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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x130]
cmp eax, dword [ecx + 8]
jbe 0x40261e
sub esp, 0x1b0
mov ebx, dword [0x6d9d2c]
cmp ebx, 2
jl 0x40242a
mov ebx, 0x5f5d70
mov dword [esp], ebx
mov dword [esp + 4], 3
mov ebx, 0x5f9f0a
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x13
call fcn.004b0260
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xbc], ebx
call fcn.004a7c60
mov esi, dword [esp]
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x1a8], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x1ac], ebx
mov edx, 0x65a0bc00
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], ebx
mov dword [esp + 0x148], ebx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x1a4], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x50], edx
mov dword [esp], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], edx
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov edi, dword [esp + 0x1a4]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402609
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x1a8]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x4025e1
mov eax, dword [esp + 0x1a0]
add eax, 1
adc edi, 0
mov dword [esp + 0x1a0], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x1a0]
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x140], ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x144], edi
mov dword [esp + 8], edi
mov dword [esp + 0x148], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov ebx, dword [esp + 0xb8]
mov ebx, dword [ebx + 0x24]
call ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0xb8]
cmp ebx, 0
je 0x4025da
lea ebx, [ebx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00428b60
cmp eax, 0
jne 0x4025cd
mov dword [esp], 0x5e83a0
call fcn.0040ea00
mov ecx, dword [esp + 4]
mov eax, 0x1b
mov byte [ecx], al
mov dword [esp + 0x98], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp], 0x5ca7e0
mov ebx, dword [esp + 0xb8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 8], ebx
call fcn.0040c370
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xe4], ebx
mov dword [esp], 0x6b3700
mov ebx, 0x6d9c40
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040bbb0
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 + 0xe0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xb0]
mov eax, 0x5b1380
mov dword [esp + 0xf8], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x14], ecx
call fcn.004cba80
mov ebx, dword [esp + 0x98]
mov dword [esp + 0xb0], ebx
mov dword [esp], 0x5ca720
mov ebx, dword [esp + 0xb8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 8], ebx
call fcn.0040c370
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xdc], ebx
mov dword [esp], 0x6b3700
mov ebx, 0x6d9c40
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040bbb0
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 + 0xd8]
mov dword [esp], ebx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xb0]
mov eax, 0x5b1380
mov dword [esp + 0xf8], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x14], ecx
call fcn.004ca950
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 [0x6c4874]
mov dword [esp + 0x1c], ebx
call fcn.004a7e10
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x170], ebx
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x178], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x17c], ebx
mov ebx, dword [esp + 0x98]
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 0x4025b8
mul esi
mov ecx, edx
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
mov eax, dword [esp + 0x170]
mov dword [esp + 0x78], eax
mov dword [esp + 0x174], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x48], edx
mov dword [esp], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x4025a3
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x178]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x40257b
mov eax, dword [esp + 0x170]
add eax, 1
adc edi, 0
mov dword [esp + 0x170], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x170]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x120], ebp
mov dword [esp + 0x160], ebp
mov dword [esp + 0x124], edi
mov dword [esp + 0x164], edi
mov dword [esp + 0x128], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x12c], eax
mov dword [esp + 0x16c], eax
mov dword [esp], 0x3b9aca00
mov dword [esp + 4], 0
call fcn.004434e0
mov ebx, 0x5f5d70
mov dword [esp], ebx
mov dword [esp + 4], 3
mov ebx, 0x5f9f0a
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x13
call fcn.004b0260
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc4], ebx
call fcn.004a7c60
mov esi, dword [esp]
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x198], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x19c], ebx
mov edx, 0x65a0bc00
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x190], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x194], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x58], edx
mov dword [esp], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], edx
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov edi, dword [esp + 0x194]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402566
mul esi
mov ecx, edx
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
sub ebp, eax
sbb edx, ecx
mov ebx, dword [esp + 0x198]
add ebp, ebx
mov ecx, ebp
cmp ebp, 0x3b9aca00
jl 0x40253e
mov eax, dword [esp + 0x190]
add eax, 1
adc edi, 0
mov dword [esp + 0x190], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x190]
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x150], ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x154], edi
mov dword [esp + 8], edi
mov dword [esp + 0x158], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x15c], eax
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0xc4]
mov dword [esp], ebx
mov ebx, dword [esp + 0xc0]
mov ebx, dword [ebx + 0x24]
call ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0xc0]
cmp ebx, 0
je 0x402537
lea ebx, [ebx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00428b60
cmp eax, 0
jne 0x40252a
mov dword [esp], 0x5e83a0
call fcn.0040ea00
mov eax, dword [esp + 4]
mov ecx, 0x1b
mov byte [eax], cl
mov dword [esp + 0x90], eax
mov dword [esp + 0xb0], eax
mov dword [esp], 0x5ca7e0
mov ebx, dword [esp + 0xc0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 8], ebx
call fcn.0040c370
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xe4], ebx
mov dword [esp], 0x6b3700
mov ebx, 0x6d9c40
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040bbb0
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 + 0xe0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xb0]
mov eax, 0x5b1380
mov dword [esp + 0xf8], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x14], ecx
call fcn.004cba80
mov ebx, dword [esp + 0x90]
mov dword [esp + 0xb0], ebx
mov dword [esp], 0x5ca720
mov ebx, dword [esp + 0xc0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 8], ebx
call fcn.0040c370
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xdc], ebx
mov dword [esp], 0x6b3700
mov ebx, 0x6d9c40
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040bbb0
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 + 0xd8]
mov dword [esp], ebx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xb0]
mov eax, 0x5b1380
mov dword [esp + 0xf8], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x14], ecx
call fcn.004ca950
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 [0x6c4874]
mov dword [esp + 0x1c], ebx
call fcn.004a7e10
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x180], ebx
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x188], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x18c], ebx
mov ebx, dword [esp + 0x90]
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 0x402515
mul esi
mov ecx, edx
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x138], ebx
mov dword [esp + 0x13c], ebx
mov eax, dword [esp + 0x180]
mov dword [esp + 0x70], eax
mov dword [esp + 0x184], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x60], edx
mov dword [esp], edx
mov dword [esp + 0x64], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], edx
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov edi, dword [esp + 0x184]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x402500
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x188]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x4024d8
mov eax, dword [esp + 0x180]
add eax, 1
adc edi, 0
mov dword [esp + 0x180], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x180]
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x130], ebp
mov dword [esp], ebp
mov dword [esp + 0x134], edi
mov dword [esp + 4], edi
mov dword [esp + 0x138], ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x13c], eax
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x160]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x168]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x16c]
mov dword [esp + 0x1c], ebx
call fcn.004a72f0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x68], edx
mov dword [esp], edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044b5b0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x4024c3
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
sub eax, ebx
sbb edx, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
fild qword [esp + 0x38]
fstp qword [esp + 0x88]
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x88], xmm0
fild qword [esp + 0x40]
fstp qword [esp + 0x80]
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esp + 0x80]
mulsd xmm0, qword [0x619d00]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
addsd xmm1, xmm0
movsd qword [esp + 0x88], xmm1
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [esp + 0x88]
cvttsd2si ebx, xmm0
cmp ebx, 1
jl 0x40242a
mov ebx, 0x5f7c52
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], 0xc
mov dword [esp], 0x5d90c0
call fcn.0040ea00
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 + 0xac], eax
mov ebp, dword [esp + 0xd4]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0xd0]
cmp byte [0x6d9e38], 0
jne 0x4024a8
mov dword [eax + 0xc], ebp
mov dword [esp + 0xa0], eax
mov ebx, 0x5fa05a
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], 0x14
mov dword [esp], 0x5dbc40
call fcn.0040ea00
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 + 0xa0]
mov dword [esp + 0xa8], eax
cmp byte [0x6d9e38], 0
jne 0x40248d
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0xcc]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0xc8]
cmp byte [0x6d9e38], 0
jne 0x402472
mov dword [eax + 8], ebp
mov dword [esp + 0xa4], eax
mov dword [esp], 0x5e6380
call fcn.0040ea00
mov ecx, dword [esp + 4]
mov edi, ecx
cmp ecx, 0
je 0x40246b
xor eax, eax
call fcn.00453090
mov eax, 0x40
mov dword [esp + 0xb4], ecx
mov dword [ecx], eax
mov dword [esp], 0x5bd500
call fcn.0040ea00
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0xb4]
cmp eax, 0
je 0x402464
mov dword [ebx], eax
mov edx, 1
mov ecx, 1
mov eax, ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp], ebx
mov dword [esp + 0x114], eax
mov dword [esp + 4], eax
mov dword [esp + 0x118], edx
mov dword [esp + 8], edx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xc], ecx
call fcn.00455e60
mov ecx, dword [esp + 0xb4]
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 0x40242a
ja 0x402261
cmp eax, 3
jb 0x40242a
mov ebx, 0x5fa83f
mov dword [esp + 0x100], ebx
mov dword [esp + 0x104], 0x15
mov dword [esp], 0x5c
mov dword [esp + 4], 0x3c
call fcn.00401390
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [esp], 0
mov ebx, dword [esp + 0x100]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x104]
mov dword [esp + 8], ebx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0xec], eax
mov dword [esp + 0x10], eax
call fcn.0043ff10
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.004620e0
mov eax, dword [esp + 8]
mov dword [esp + 0x9c], eax
cmp eax, 0
je 0x40245d
mov ecx, dword [eax + 0x20]
mov ebp, dword [eax + 0x24]
mov dword [esp + 0xf4], ebp
mov dword [esp + 8], ebp
mov dword [esp + 0xf0], ecx
cmp ecx, 0
je 0x402456
lea ebx, [ecx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00428b60
cmp eax, 0
jne 0x402449
mov dword [esp], 0x5ca720
mov eax, dword [esp + 0x9c]
cmp eax, 0
je 0x402442
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.0040c370
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.0045f030
mov ebx, dword [esp + 8]
mov dword [esp + 0x108], ebx
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x110], ebx
mov dword [esp + 0x10c], eax
mov dword [esp], eax
call fcn.00401040
mov ebx, dword [esp + 4]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x94], ebx
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x110]
xor eax, eax
mov dword [esp + 0x34], ecx
mov ecx, edx
mov ebp, dword [esp + 0x34]
cmp eax, ebp
jge 0x4023fe
movzx ebp, byte [ecx]
mov esi, dword [esp + 0x94]
cmp esi, 0
je 0x40243e
cmp eax, 0xf1b30
jae 0x402437
add esi, eax
xchg ebp, eax
mov byte [esi], al
xchg ebp, eax
inc ecx
inc eax
mov ebp, dword [esp + 0x34]
cmp eax, ebp
jl 0x4023d8
mov ebx, dword [esp + 0x30]
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.004432b0
nop
call fcn.00429a30
add esp, 0x1b0
ret
call fcn.00428880
ud2
mov dword [esi], eax
jmp 0x4023e7
mov dword [eax], eax
jmp 0x40234a
nop
call fcn.00429a30
add esp, 0x1b0
ret
mov dword [ecx], eax
jmp 0x402317
mov dword [eax], eax
jmp 0x4022f6
mov dword [eax], eax
jmp 0x4021f5
mov dword [ecx], eax
jmp 0x4021c0
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040f3d0
mov eax, dword [esp + 0xa8]
jmp 0x40219e
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040f3d0
mov eax, dword [esp + 0xa8]
jmp 0x40217d
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040f3d0
mov eax, dword [esp + 0xac]
jmp 0x40211e
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x40200c
cmp ecx, 0
jge 0x401f04
mov eax, dword [esp + 0x180]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x180], eax
add ecx, 0x3b9aca00
jmp 0x401f04
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401ec3
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401dff
nop
call fcn.00429a30
add esp, 0x1b0
ret
mov dword [ebx], eax
jmp 0x401bdb
cmp ebp, 0
jge 0x401b70
mov eax, dword [esp + 0x190]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x190], eax
add ecx, 0x3b9aca00
jmp 0x401b70
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401b31
cmp ecx, 0
jge 0x4019af
mov eax, dword [esp + 0x170]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x170], eax
add ecx, 0x3b9aca00
jmp 0x4019af
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x40196e
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x4018aa
nop
call fcn.00429a30
add esp, 0x1b0
ret
mov dword [ebx], eax
jmp 0x401686
cmp ecx, 0
jge 0x40161b
mov eax, dword [esp + 0x1a0]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x1a0], eax
add ecx, 0x3b9aca00
jmp 0x40161b
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x4015da
call fcn.00450fb0
jmp fcn.00401480