Function at 0x401480
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x4e4]
cmp eax, dword [ecx + 8]
jbe 0x402e03
sub esp, 0x564
xor eax, eax
mov ecx, 0xc8
lea edi, [esp + 0x244]
rep stosd dword es:[edi], eax
mov ebx, dword [0x6dad2c]
cmp ebx, 1
jl 0x402a88
mov ebx, 0x5f69f0
mov dword [esp], ebx
mov dword [esp + 4], 3
mov ebx, 0x5fab8a
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x13
call fcn.004b2df0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xfc], ebx
call fcn.004a8580
mov esi, dword [esp]
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x20c], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x210], ebx
mov edx, 0x65a0bc00
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x1d4], ebx
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x204], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x208], ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x74], edx
mov dword [esp], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x204], eax
mov dword [esp + 0x208], edx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov edi, dword [esp + 0x208]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402dee
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x20c]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x402dc6
mov eax, dword [esp + 0x204]
add eax, 1
adc edi, 0
mov dword [esp + 0x204], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x204]
mov eax, dword [esp + 0x210]
mov dword [esp + 0x1d4], ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x1d8], edi
mov dword [esp + 8], edi
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0xfc]
mov dword [esp], ebx
mov ebx, dword [esp + 0xf8]
mov ebx, dword [ebx + 0x24]
call ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0xf8]
cmp ebx, 0
je 0x402dbf
lea ebx, [ebx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00429480
cmp eax, 0
jne 0x402db2
mov dword [esp], 0x5e9020
call fcn.0040f320
mov ecx, dword [esp + 4]
mov eax, 0x1b
mov byte [ecx], al
mov dword [esp + 0xac], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp], 0x5cb3a0
mov ebx, dword [esp + 0xf8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 8], ebx
call fcn.0040cc90
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x150], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x154], ebx
mov dword [esp], 0x6b4700
mov ebx, 0x6dac40
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040c4d0
lea ebx, [esp + 0xc]
lea edi, [esp + 8]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x150]
mov dword [esp], ebx
mov ebx, dword [esp + 0x154]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xcc]
mov eax, 0x5b1ec0
mov dword [esp + 0x168], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x14], ecx
call fcn.004ce610
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xcc], ebx
mov dword [esp], 0x5cb2e0
mov ebx, dword [esp + 0xf8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 8], ebx
call fcn.0040cc90
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x148], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14c], ebx
mov dword [esp], 0x6b4700
mov ebx, 0x6dac40
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040c4d0
lea ebx, [esp + 0xc]
lea edi, [esp + 8]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x148]
mov dword [esp], ebx
mov ebx, dword [esp + 0x14c]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xcc]
mov eax, 0x5b1ec0
mov dword [esp + 0x168], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x14], ecx
call fcn.004cd4e0
mov dword [esp], 0x76c
mov dword [esp + 4], 1
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov ebx, dword [0x6c5874]
mov dword [esp + 0x1c], ebx
call fcn.004a8730
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x224], ebx
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x22c], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x230], ebx
mov ebx, dword [esp + 0xac]
mov eax, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
xor edx, edx
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402d9d
mul esi
mov ecx, edx
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x1c0], ebx
mov eax, dword [esp + 0x224]
mov dword [esp + 0x84], eax
mov dword [esp + 0x228], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x6c], edx
mov dword [esp], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x224], eax
mov dword [esp + 0x228], edx
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov edi, dword [esp + 0x228]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402d88
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x22c]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x402d60
mov eax, dword [esp + 0x224]
add eax, 1
adc edi, 0
mov dword [esp + 0x224], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x224]
mov eax, dword [esp + 0x230]
mov dword [esp + 0x1b4], ebp
mov dword [esp + 0x1f4], ebp
mov dword [esp + 0x1b8], edi
mov dword [esp + 0x1f8], edi
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x200], eax
mov dword [esp], 0xfc23ac00
mov dword [esp + 4], 6
call fcn.00443e00
mov ebx, 0x5f69f0
mov dword [esp], ebx
mov dword [esp + 4], 3
mov ebx, 0x5fab8a
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x13
call fcn.004b2df0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10c], ebx
call fcn.004a8580
mov esi, dword [esp]
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x23c], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x240], ebx
mov edx, 0x65a0bc00
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x234], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0x238], ebp
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x64], edx
mov dword [esp], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], edx
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov edi, dword [esp + 0x238]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402d4b
mul esi
mov ecx, edx
mov ebp, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
sub ebp, eax
sbb edx, ecx
mov ebx, dword [esp + 0x23c]
add ebp, ebx
mov ecx, ebp
cmp ebp, 0x3b9aca00
jl 0x402d23
mov eax, dword [esp + 0x234]
add eax, 1
adc edi, 0
mov dword [esp + 0x234], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x234]
mov eax, dword [esp + 0x240]
mov dword [esp + 0x1e4], ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x1e8], edi
mov dword [esp + 8], edi
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x10c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x108]
mov ebx, dword [ebx + 0x24]
call ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x108]
cmp ebx, 0
je 0x402d1c
lea ebx, [ebx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00429480
cmp eax, 0
jne 0x402d0f
mov dword [esp], 0x5e9020
call fcn.0040f320
mov eax, dword [esp + 4]
mov ecx, 0x1b
mov byte [eax], cl
mov dword [esp + 0xa8], eax
mov dword [esp + 0xcc], eax
mov dword [esp], 0x5cb3a0
mov ebx, dword [esp + 0x108]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 8], ebx
call fcn.0040cc90
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x150], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x154], ebx
mov dword [esp], 0x6b4700
mov ebx, 0x6dac40
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040c4d0
lea ebx, [esp + 0xc]
lea edi, [esp + 8]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x150]
mov dword [esp], ebx
mov ebx, dword [esp + 0x154]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xcc]
mov eax, 0x5b1ec0
mov dword [esp + 0x168], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x14], ecx
call fcn.004ce610
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0xcc], ebx
mov dword [esp], 0x5cb2e0
mov ebx, dword [esp + 0x108]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 8], ebx
call fcn.0040cc90
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x148], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14c], ebx
mov dword [esp], 0x6b4700
mov ebx, 0x6dac40
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040c4d0
lea ebx, [esp + 0xc]
lea edi, [esp + 8]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x148]
mov dword [esp], ebx
mov ebx, dword [esp + 0x14c]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xcc]
mov eax, 0x5b1ec0
mov dword [esp + 0x168], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x14], ecx
call fcn.004cd4e0
mov dword [esp], 0x76c
mov dword [esp + 4], 1
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov ebx, dword [0x6c5874]
mov dword [esp + 0x1c], ebx
call fcn.004a8730
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x214], ebx
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x21c], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x220], ebx
mov ebx, dword [esp + 0xa8]
mov eax, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
xor edx, edx
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402cfa
mul esi
mov ecx, edx
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x1d0], ebx
mov eax, dword [esp + 0x214]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x218], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x5c], edx
mov dword [esp], edx
mov dword [esp + 0x60], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], edx
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov edi, dword [esp + 0x218]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402ce5
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x21c]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x402cbd
mov eax, dword [esp + 0x214]
add eax, 1
adc edi, 0
mov dword [esp + 0x214], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x214]
mov eax, dword [esp + 0x220]
mov dword [esp + 0x1c4], ebp
mov dword [esp], ebp
mov dword [esp + 0x1c8], edi
mov dword [esp + 4], edi
mov dword [esp + 0x1cc], ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x1d0], eax
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x1f4]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x1f8]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x1fc]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x200]
mov dword [esp + 0x1c], ebx
call fcn.004a7c10
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x7c], edx
mov dword [esp], edx
mov dword [esp + 0x80], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044bed0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402ca8
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
sub eax, ebx
sbb edx, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
fild qword [esp + 0x4c]
fstp qword [esp + 0x94]
movsd xmm0, qword [esp + 0x94]
movsd qword [esp + 0x94], xmm0
fild qword [esp + 0x54]
fstp qword [esp + 0x8c]
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp + 0x8c], xmm0
movsd xmm0, qword [esp + 0x8c]
mulsd xmm0, qword [0x61b068]
movsd qword [esp + 0x8c], xmm0
movsd xmm0, qword [esp + 0x8c]
movsd xmm1, qword [esp + 0x94]
addsd xmm1, xmm0
movsd qword [esp + 0x94], xmm1
movsd xmm0, qword [esp + 0x94]
movsd qword [esp + 0x94], xmm0
movsd xmm0, qword [esp + 0x94]
cvttsd2si ebx, xmm0
cmp ebx, 0x1e
jl 0x402a88
mov ebx, 0x5f88d2
mov dword [esp + 0x138], ebx
mov dword [esp + 0x13c], 0xc
mov dword [esp], 0x5d9c80
call fcn.0040f320
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [esp + 0xc8], eax
mov ebp, dword [esp + 0x13c]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x138]
cmp byte [0x6dae38], 0
jne 0x402c8d
mov dword [eax + 0xc], ebp
mov dword [esp + 0xb8], eax
mov ebx, 0x5facda
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], 0x14
mov dword [esp], 0x5dc800
call fcn.0040f320
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc4], eax
cmp byte [0x6dae38], 0
jne 0x402c72
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x12c]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x128]
cmp byte [0x6dae38], 0
jne 0x402c57
mov dword [eax + 8], ebp
mov dword [esp + 0xe8], eax
mov dword [esp], 0x5e6f40
call fcn.0040f320
mov ecx, dword [esp + 4]
mov edi, ecx
cmp ecx, 0
je 0x402c50
xor eax, eax
call fcn.004539b0
mov eax, 0x40
mov dword [esp + 0xf4], ecx
mov dword [ecx], eax
mov dword [esp], 0x5be080
call fcn.0040f320
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0xf4]
cmp eax, 0
je 0x402c49
mov dword [ebx], eax
mov edx, 1
mov ecx, 1
mov eax, ebx
mov ebx, dword [esp + 0xe8]
mov dword [esp], ebx
mov dword [esp + 0x184], eax
mov dword [esp + 4], eax
mov dword [esp + 0x188], edx
mov dword [esp + 8], edx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0xc], ecx
call fcn.00456780
mov ecx, dword [esp + 0xf4]
mov eax, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
shrd eax, edx, 0x1e
shr edx, 0x1e
cmp edx, 0
jb 0x402a88
ja 0x4022aa
cmp eax, 3
jb 0x402a88
mov ebx, 0x5f88d2
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], 0xc
mov dword [esp], 0x5d9c80
call fcn.0040f320
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [esp + 0xc8], eax
mov ebp, dword [esp + 0x144]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x140]
cmp byte [0x6dae38], 0
jne 0x402c2e
mov dword [eax + 0xc], ebp
mov dword [esp + 0xe4], eax
mov dword [esp + 0xc0], eax
mov ebx, 0x5fc3db
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], 0x18
mov dword [esp], 0x5dc800
call fcn.0040f320
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc4], eax
cmp byte [0x6dae38], 0
jne 0x402c13
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x124]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x120]
cmp byte [0x6dae38], 0
jne 0x402bf8
mov dword [eax + 8], ebp
mov dword [esp + 0xd4], eax
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0xb0], ebx
mov ebx, 0x5f93dd
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], 0xf
mov dword [esp], 0x5dc800
call fcn.0040f320
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xc4], eax
cmp byte [0x6dae38], 0
jne 0x402bdd
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x114]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x110]
cmp byte [0x6dae38], 0
jne 0x402bc2
mov dword [eax + 8], ebp
mov dword [esp + 0xa4], eax
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0xbc], ebx
mov ebx, 0x5f8f62
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], 0xe
mov dword [esp], 0x5dc800
call fcn.0040f320
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0xc4], eax
cmp byte [0x6dae38], 0
jne 0x402ba7
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x11c]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x118]
cmp byte [0x6dae38], 0
jne 0x402b8c
mov dword [eax + 8], ebp
mov dword [esp + 0xdc], eax
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0xb4], ebx
mov ebx, 0x5f814e
mov dword [esp + 0x130], ebx
mov dword [esp + 0x134], 0xb
mov dword [esp], 0x5dc800
call fcn.0040f320
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xc4], eax
cmp byte [0x6dae38], 0
jne 0x402b71
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x134]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x130]
cmp byte [0x6dae38], 0
jne 0x402b56
mov dword [eax + 8], ebp
mov dword [esp + 0xec], eax
mov dword [esp + 0x30], 0xa
mov dword [esp], 0x5bee40
call fcn.0040f320
mov eax, dword [esp + 4]
mov ebp, dword [0x61b0e0]
mov dword [eax], ebp
mov ebp, dword [0x61b0e4]
mov dword [eax + 4], ebp
mov edx, 2
mov ecx, 2
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
mov dword [esp + 0x184], eax
mov dword [esp + 4], eax
mov dword [esp + 0x188], edx
mov dword [esp + 8], edx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0xc], ecx
call fcn.00456780
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x40], ebx
mov dword [esp], 0x5be080
call fcn.0040f320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov edx, 1
mov ecx, 1
mov ebx, dword [esp + 0xec]
mov dword [esp + 8], ebx
mov dword [esp + 0x184], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x188], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x14], ecx
mov dword [esp], 0x20
mov eax, 0x61affc
mov dword [esp + 4], eax
call fcn.00429480
cmp eax, 0
jne 0x402b49
lea edi, [esp + 0x244]
xor eax, eax
mov ecx, 0xc8
rep stosd dword es:[edi], eax
lea ebx, [esp + 0x244]
cmp ebx, 0
je 0x402b42
mov dword [esp + 0x17c], 0
mov dword [esp + 0x180], 0x64
mov dword [esp + 0x178], ebx
mov dword [esp], 0x5e7b40
call fcn.0040f320
mov edx, dword [esp + 4]
mov edi, edx
cmp edx, 0
je 0x402b3b
xor eax, eax
mov ecx, 0x8b
rep stosd dword es:[edi], eax
mov eax, 0x22c
mov dword [esp + 0xf0], edx
mov dword [edx], eax
mov dword [esp], 0x5bee40
call fcn.0040f320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov ecx, dword [esp + 0xf0]
cmp ecx, 0
je 0x402b34
mov dword [eax + 4], ecx
mov edx, 2
mov ecx, 2
mov ebx, dword [esp + 0xa4]
mov dword [esp], ebx
mov dword [esp + 0x184], eax
mov dword [esp + 4], eax
mov dword [esp + 0x188], edx
mov dword [esp + 8], edx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0xc], ecx
call fcn.00456780
mov eax, dword [esp + 0xf0]
cmp eax, 0
je 0x402b2d
add eax, 0x24
cmp eax, 0
je 0x402b26
mov edx, 0x104
mov ecx, 0x104
mov dword [esp + 0x19c], eax
mov dword [esp], eax
mov dword [esp + 0x1a0], edx
mov dword [esp + 4], edx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 8], ecx
call fcn.00457030
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x158], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x15c], ebx
mov ecx, dword [esp + 0x178]
mov eax, dword [esp + 0x17c]
mov edx, dword [esp + 0x180]
mov ebx, eax
inc ebx
cmp ebx, edx
ja 0x402ae1
mov dword [esp + 0x17c], ebx
mov ebx, ecx
mov ebp, eax
imul ebp, ebp, 8
add ebx, ebp
mov ebp, dword [esp + 0x15c]
mov dword [ebx + 4], ebp
mov ebp, dword [esp + 0x158]
cmp byte [0x6dae38], 0
jne 0x402ad0
mov dword [ebx], ebp
mov dword [esp], 0x5bee40
call fcn.0040f320
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov ecx, dword [esp + 0xf0]
cmp ecx, 0
je 0x402ac9
mov dword [eax + 4], ecx
mov edx, 2
mov ecx, 2
mov ebx, dword [esp + 0xdc]
mov dword [esp], ebx
mov dword [esp + 0x184], eax
mov dword [esp + 4], eax
mov dword [esp + 0x188], edx
mov dword [esp + 8], edx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0xc], ecx
call fcn.00456780
mov ebx, dword [esp + 0x10]
cmp ebx, 0
jne 0x4026e8
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x178]
mov ecx, dword [esp + 0x17c]
mov ebx, dword [esp + 0x180]
mov dword [esp + 0x198], ebx
xor esi, esi
mov dword [esp + 0x194], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x190], edx
mov ebp, dword [esp + 0x3c]
cmp esi, ebp
jge 0x4028af
mov dword [esp + 0xd0], edx
cmp edx, 0
je 0x402ac2
mov edi, dword [edx]
mov ebp, dword [edx + 4]
mov dword [esp + 0x34], esi
mov dword [esp + 0x158], edi
mov dword [esp + 0x100], edi
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x104], ebp
cmp ebp, 0
jne 0x40289a
mov dword [esp], 1
call fcn.004b0600
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x48]
inc ebx
mov dword [esp + 0x48], ebx
add edx, 8
inc esi
mov ebp, dword [esp + 0x3c]
cmp esi, ebp
jl 0x402849
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x30]
cmp ebx, ebp
jl 0x402a88
mov ebx, 0x5fcb7f
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], 0x19
mov dword [esp], 0x5c
mov dword [esp + 4], 5
call fcn.00401390
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [esp], 0
mov ebx, dword [esp + 0x170]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x174]
mov dword [esp + 8], ebx
mov dword [esp + 0x158], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x15c], eax
mov dword [esp + 0x10], eax
call fcn.00440830
lea ebx, [esp + 0x14]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.00462a00
mov eax, dword [esp + 8]
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x402abb
mov ecx, dword [eax + 0x20]
mov ebp, dword [eax + 0x24]
mov dword [esp + 0x164], ebp
mov dword [esp + 8], ebp
mov dword [esp + 0x160], ecx
cmp ecx, 0
je 0x402ab4
lea ebx, [ecx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00429480
cmp eax, 0
jne 0x402aa7
mov dword [esp], 0x5cb2e0
mov eax, dword [esp + 0xd8]
cmp eax, 0
je 0x402aa0
add eax, 0x20
lea edi, [esp + 4]
cld
mov ecx, dword [eax]
mov dword [edi], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
call fcn.0040cc90
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.0045f950
mov ebx, dword [esp + 8]
mov dword [esp + 0x1a8], ebx
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x1ac], eax
mov dword [esp], eax
call fcn.00401040
mov ebx, dword [esp + 4]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xe0], ebx
mov edx, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x1ac]
mov ebx, dword [esp + 0x1b0]
xor eax, eax
mov dword [esp + 0x38], ecx
mov ecx, edx
mov ebp, dword [esp + 0x38]
cmp eax, ebp
jge 0x402a5c
movzx ebp, byte [ecx]
mov esi, dword [esp + 0xe0]
cmp esi, 0
je 0x402a9c
cmp eax, 0xf1b30
jae 0x402a95
add esi, eax
xchg ebp, eax
mov byte [esi], al
xchg ebp, eax
inc ecx
inc eax
mov ebp, dword [esp + 0x38]
cmp eax, ebp
jl 0x402a36
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.00443bd0
nop
call fcn.0042a350
add esp, 0x564
ret
call fcn.004291a0
ud2
mov dword [esi], eax
jmp 0x402a45
mov dword [eax], eax
jmp 0x4029a8
nop
call fcn.0042a350
add esp, 0x564
ret
mov dword [ecx], eax
jmp 0x402975
mov dword [eax], eax
jmp 0x402954
mov dword [edx], eax
jmp 0x402859
mov dword [ecx], eax
jmp 0x4027bf
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0040fcf0
jmp 0x402799
mov dword [esp], 0x5c4e00
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.0043cd90
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, eax
inc ebx
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], edx
mov dword [esp + 0x178], ecx
jmp 0x402770
mov dword [eax], eax
jmp 0x402704
mov dword [eax], eax
jmp 0x4026f8
mov dword [ecx], eax
jmp 0x4026ab
mov dword [edx], eax
jmp 0x40266e
mov dword [ebx], eax
jmp 0x402636
nop
call fcn.0042a350
add esp, 0x564
ret
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x40253a
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x402519
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x4024ac
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x40248b
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x40241e
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x4023fd
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x402390
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x40236f
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040fcf0
mov eax, dword [esp + 0xc8]
jmp 0x402309
mov dword [eax], eax
jmp 0x40223e
mov dword [ecx], eax
jmp 0x402209
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x4021e7
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov eax, dword [esp + 0xc4]
jmp 0x4021c6
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040fcf0
mov eax, dword [esp + 0xc8]
jmp 0x402167
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x402052
cmp ecx, 0
jge 0x401f44
mov eax, dword [esp + 0x214]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x214], eax
add ecx, 0x3b9aca00
jmp 0x401f44
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401f03
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401e33
nop
call fcn.0042a350
add esp, 0x564
ret
mov dword [ebx], eax
jmp 0x401c0f
cmp ebp, 0
jge 0x401ba4
mov eax, dword [esp + 0x234]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x234], eax
add ecx, 0x3b9aca00
jmp 0x401ba4
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401b65
cmp ecx, 0
jge 0x4019d7
mov eax, dword [esp + 0x224]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x224], eax
add ecx, 0x3b9aca00
jmp 0x4019d7
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401996
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x4018c6
nop
call fcn.0042a350
add esp, 0x564
ret
mov dword [ebx], eax
jmp 0x4016a2
cmp ecx, 0
jge 0x401637
mov eax, dword [esp + 0x204]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x204], eax
add ecx, 0x3b9aca00
jmp 0x401637
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x4015f6
call fcn.004518d0
jmp fcn.00401480