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

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
push edi
push esi
push ebx
push ecx
sub esp, 0x208
mov ebp, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x7c], ecx
call fcn.00401370
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1ec], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0x200
mov dword [esp + 0x1a0], 0xffffffff
mov dword [esp + 0x1a4], 0
call fcn.00405f50
cmp ebp, 1
mov dword [esp + 0x1f0], 1
jle 0x401c09
mov eax, 1
mov ebx, eax
mov edx, dword [esp + 0x7c]
mov ecx, 0xe
mov edi, 0xaee0db
cld
mov esi, dword [edx + eax*4]
repe cmpsb byte [esi], byte es:[edi]
jne 0x401bf9
mov dword [0xc10260], 0xfffffff6
lea eax, [ebx + 1]
cmp ebp, eax
mov ebx, eax
mov dword [esp + 0x1f0], eax
jg 0x401bd9
mov dword [esp + 8], 0xaee0ec
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00405fb0
mov dword [esp], 0xf6c6d0
call fcn.0040c0d0
mov eax, dword [0xf6c6f0]
mov dword [esp + 0x24], eax
mov eax, dword [0xf6c6ec]
mov dword [esp + 0x20], eax
mov eax, dword [0xf6c6e8]
mov dword [esp + 0x1c], eax
mov eax, dword [0xf6c6e4]
mov dword [esp + 0x18], eax
mov eax, dword [0xf6c6e0]
mov dword [esp + 0x14], eax
mov eax, dword [0xf6c6dc]
mov dword [esp + 0x10], eax
mov eax, dword [0xf6c6d0]
mov dword [esp + 8], 0xaee130
mov dword [esp + 4], 4
mov dword [esp], 1
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov dword [esp + 8], 0xaee17c
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00405fb0
call fcn.00401470
call fcn.009bec90
mov eax, dword [0xc10270]
test eax, eax
je 0x401cc7
mov dword [esp], eax
call fcn.0040ad30
test eax, eax
jne 0x401ce3
mov dword [esp], 0xaee1a2
call fcn.00401590
mov dword [esp], eax
call fcn.0040ad30
test eax, eax
je 0x40500b
call fcn.0040e0a0
mov dword [0xf6c5c0], eax
mov dword [esp + 4], 0xaa85d0
mov dword [esp], eax
call fcn.0040e060
mov esi, dword [0xf6c5c0]
mov dword [esp], 0xaee205
call fcn.00401590
test eax, eax
mov ebx, eax
je 0x405eec
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00412c80
test eax, eax
js 0x405edf
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov eax, dword [0xf6c5c0]
mov dword [esp], eax
call fcn.00406190
test eax, eax
mov edi, eax
je 0x405ed2
mov eax, dword [0xc10078]
test eax, eax
je 0x405ec5
mov dword [esp + 4], 0x2e
mov dword [esp], eax
call sub.msvcrt.dll_strrchr
test eax, eax
mov ebx, eax
je 0x401d91
mov dword [esp], eax
call sub.msvcrt.dll_strlen
cmp eax, 3
jbe 0x401d91
cmp eax, 5
jbe 0x405e0e
mov dword [esp + 8], 0xaee324
mov dword [esp + 4], 6
mov dword [esp], 0x16
call fcn.00405fb0
mov edx, dword [0xc100b8]
test edx, edx
je 0x404a3b
lea eax, [esp + 0x1f0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], edx
call fcn.00522870
test eax, eax
je 0x404a3b
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xfffffffe
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 3
mov dword [esp], eax
call fcn.004c46c0
test eax, eax
mov dword [esp + 0xa4], eax
je 0x405ded
mov eax, dword [0xc100b8]
mov dword [esp + 8], 0xaee366
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov esi, dword [0xc10064]
test esi, esi
je 0x401ec5
mov edx, dword [0xaa7f90]
xor ebx, ebx
test edx, edx
jne 0x401e6e
jmp 0x401e83
add ebx, 1
mov edx, dword [ebx*8 + 0xaa7f90]
test edx, edx
je 0x401e83
mov eax, dword [0xc10064]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x401e60
mov eax, dword [ebx*8 + 0xaa7f90]
mov dword [esp + 8], 0xaee423
mov dword [esp + 4], 5
mov dword [esp], 1
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov ebx, dword [ebx*8 + 0xaa7f94]
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.KERNEL32.dll_SetPriorityClass
sub esp, 8
mov edx, dword [0xc10080]
test edx, edx
je 0x405d83
xor eax, eax
cmp dword [0xc10260], 1
setg al
mov dword [esp + 8], eax
mov eax, dword [0xaa7040]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0057f3c0
test eax, eax
mov dword [0xe15060], eax
je 0x405d59
call fcn.0057c6f0
mov eax, dword [0xf6c5c0]
mov dword [esp], eax
call fcn.0040cec0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0x124], edi
mov dword [esp + 0xb4], 0
mov dword [esp + 0xbc], 0
add eax, 0x20
mov dword [esp + 0xc0], 0
fldz
fst qword [esp + 0x128]
mov dword [esp + 0xc4], 1
fstp qword [esp + 0xe0]
mov dword [esp + 0xc8], 1
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe8], 0xffffffff
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0x74], eax
mov eax, dword [0xf6c5c0]
mov dword [esp], eax
call fcn.0040cec0
mov edx, dword [esp + 0x124]
mov dword [esp + 4], edx
mov eax, dword [0xf6c5c0]
mov dword [esp], eax
call fcn.004060a0
mov ecx, dword [esp + 0x124]
mov esi, dword [ecx]
test esi, esi
je 0x405d38
lea eax, [esp + 0x1f4]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.00522870
test eax, eax
mov dword [esp + 0x9c], eax
je 0x405d17
mov ebx, eax
mov eax, dword [eax + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 8], 0xaee4c8
mov dword [esp + 4], 4
mov dword [esp], 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0xc], eax
call fcn.00405fb0
cmp dword [ebx + 0x18], 3
je 0x4045e9
mov ecx, dword [esp + 0x9c]
mov eax, dword [0xc100e8]
mov edx, dword [0xc100ec]
add dword [ecx + 0x38], eax
mov eax, dword [0xaa7014]
adc dword [ecx + 0x3c], edx
test eax, eax
jle 0x4020bc
shl eax, 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.005282b0
mov ebx, dword [esp + 0xa4]
test ebx, ebx
je 0x4020d1
mov dword [0xaa7020], 0xfffffffe
mov dword [esp + 0x14], esi
mov eax, dword [0xaa7028]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x10], eax
mov eax, dword [0xaa7024]
mov dword [esp + 0xc], eax
mov eax, dword [0xaa7020]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1f4]
mov dword [esp + 4], eax
call fcn.004c46c0
test eax, eax
mov dword [esp + 0xa0], eax
je 0x405cda
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x404a01
mov edi, dword [esp + 0xa4]
mov edi, dword [edi + 0x44]
mov dword [esp + 0xa8], edi
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
mov ebx, dword [edi + 0x64]
mov edx, dword [edx + 0x48]
mov ecx, dword [ecx + 0x4c]
mov eax, dword [edx + 0x64]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], ecx
test eax, eax
mov dword [esp + 0x80], eax
je 0x405cb9
mov dword [esp], eax
call fcn.004d4f60
test eax, eax
je 0x405c98
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0xa0]
fld dword [ecx + 0xf0]
fstp qword [esp + 0x24]
fld dword [ecx + 0xec]
fstp qword [esp + 0x1c]
mov eax, dword [ecx + 0x100]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0xfc]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x3c]
mov dword [esp + 8], 0xaee544
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
fld dword [0xc10068]
ftst
fnstsw ax
sahf
jne 0x4045ad
fstp st(0)
test ebx, ebx
je 0x402205
mov edx, dword [0xaaa44c]
test edx, edx
js 0x405c52
mov eax, dword [0xaaa448]
test eax, eax
js 0x405c31
test ebx, ebx
mov ebp, ebx
je 0x40233a
mov eax, dword [0xaaa44c]
test eax, eax
jne 0x402249
fldz
fcomp qword [0xc10218]
fnstsw ax
sahf
jne 0x402249
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x402249
fld1
fcomp dword [0xaa7034]
fnstsw ax
sahf
je 0x4022af
mov dword [esp + 8], 0xaee678
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00405fb0
mov eax, dword [0xc10148]
mov dword [esp + 8], eax
mov eax, dword [0xc10168]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00440590
test eax, eax
jne 0x402293
mov edx, dword [esp + 0xa8]
xor ebp, ebp
mov dword [edx + 0x64], 0
mov dword [esp + 8], 0xaee678
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00405fb0
test ebp, ebp
je 0x40233a
fld dword [0xaa7034]
fcom dword [0xaf0590]
fnstsw ax
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0xf0], ecx
sahf
je 0x4040e8
fnstcw word [esp + 0x13e]
fild dword [esp + 0xf0]
fmul st(1), st(0)
fxch st(1)
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fldcw word [esp + 0x13c]
fistp dword [esp + 0xf0]
fldcw word [esp + 0x13e]
cmp dword [esp + 0xf0], 0x1f3f
jg 0x40467c
mov dword [esp + 0xf0], 0x1f40
fild dword [esp + 0xf0]
fdivrp st(1)
fstp dword [0xaa7034]
mov eax, dword [0xc10088]
test eax, eax
je 0x404065
mov edx, dword [eax]
test edx, edx
je 0x404065
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0xec]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0041fc60
test eax, eax
mov dword [0xc10390], eax
je 0x405c05
mov eax, dword [esp + 0xec]
test eax, eax
jne 0x402571
mov eax, dword [0xc1006c]
test eax, eax
je 0x404e98
mov edx, dword [0xc10188]
mov byte [esp + 0x1fd], 0
mov byte [esp + 0x1fe], 0
mov byte [esp + 0x1ff], 0
test edx, edx
je 0x402458
lea esi, [esp + 0x1fd]
mov dword [esp + 0x1c], esi
mov eax, dword [0xaa7028]
lea ebx, [esp + 0x14c]
mov dword [esp + 0x14], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x1e4]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 0xc], eax
mov dword [esp], 0
call fcn.00425130
test eax, eax
js 0x402458
mov eax, dword [0xc10074]
mov edx, esi
mov ecx, dword [0xc10070]
test eax, eax
je 0x40241d
mov edx, eax
mov esi, dword [esp + 0x80]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov eax, dword [esi + 0x100]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xfc]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [0xc1006c]
mov dword [esp], eax
call fcn.004237b0
mov dword [esp + 0xb4], eax
mov edi, dword [esp + 0xb4]
test edi, edi
je 0x404e31
mov eax, dword [0xc10018]
mov dword [esp + 4], eax
mov eax, dword [0xe15084]
mov dword [esp], eax
call fcn.004178f0
mov dword [esp + 4], 0
mov eax, dword [0xc10078]
mov dword [esp], eax
call fcn.005297c0
test eax, eax
je 0x405b2b
mov dword [esp + 4], eax
mov eax, dword [0xc10024]
mov dword [esp], eax
call fcn.0043d1f0
test eax, eax
mov ecx, eax
mov dword [0xc10198], eax
je 0x405b0a
mov eax, dword [0xc100d8]
mov dword [ecx + 0x50], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call dword [ecx + 0xd0]
mov dword [eax + 0x28], 0x200000
mov dword [esp + 0xdc], eax
mov dword [esp], 0x200000
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0xdc]
cmp dword [0xc10024], 3
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x80]
mov dword [edi + 0x44], eax
je 0x404cf7
fld dword [0xc100c8]
fld st(0)
mov edx, dword [esp + 0xdc]
ftst
fnstsw ax
fstp st(0)
mov dword [edx + 0x78], 0
sahf
jne 0x402542
fstp st(0)
mov edx, dword [esp + 0x80]
fld dword [0xaa7034]
fmul dword [edx + 0xec]
fstp qword [esp]
mov dword [esp + 8], 0x7530
call fcn.0090dd20
mov ecx, dword [esp + 0xdc]
mov dword [ecx + 0x88], 0
mov dword [ecx + 0x64], eax
mov eax, dword [0xaaa448]
mov dword [ecx + 0x60], edx
mov dword [ecx + 0x48], eax
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0x80]
mov eax, dword [esi + 0x48]
mov dword [ebx + 8], 0
mov dword [ebx + 0x108], 0
mov dword [ebx + 0x10c], 0
test eax, eax
jne 0x403ca6
mov ebx, dword [esp + 0xec]
test ebx, ebx
jne 0x404bfb
mov edi, dword [esp + 0x80]
mov eax, dword [edi + 0x14c]
test eax, eax
je 0x405aa9
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0xdc]
mov dword [edx + 0x88], eax
mov ecx, dword [edi + 0x14c]
mov edx, dword [ecx]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_memcpy
mov esi, dword [esp + 0xdc]
mov edx, dword [esi + 0x88]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x18], eax
movzx eax, word [edx + 0xe]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 4]
mov dword [esp + 8], 0xaee738
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov ebx, dword [0xc1007c]
test ebx, ebx
je 0x4026ad
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp eax, 3
jbe 0x4026ad
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
mov esi, dword [esp + 0xdc]
shl edx, 8
shl eax, 0x10
or edx, eax
movzx eax, byte [ebx]
mov ecx, dword [esi + 0x88]
or edx, eax
movzx eax, byte [ebx + 3]
shl eax, 0x18
or edx, eax
lea eax, [ecx + 0x10]
mov dword [ecx + 0x10], edx
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 8], 0xaee80c
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov eax, dword [0xc10138]
test eax, eax
jne 0x4026cb
mov eax, dword [0xc10198]
mov edi, dword [esp + 0x80]
fld dword [eax + 0x50]
fsub dword [edi + 0x18]
fstp dword [eax + 0x50]
test ebp, ebp
je 0x402a00
mov eax, dword [0xaa7038]
cmp eax, 0xffffffff
je 0x402712
mov edx, dword [ebp + 0x9c]
mov dword [ebp + 0xc], eax
test edx, edx
je 0x4026ed
mov word [edx], ax
mov eax, dword [0xaa7038]
mov dword [esp + 8], 0xaee834
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov eax, dword [0xc10198]
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [eax + 0xd0]
mov dword [eax + 0x28], 0x100000
mov dword [esp + 0xd8], eax
mov dword [esp], 0x100000
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0xd8]
test eax, eax
mov dword [edx + 0x24], eax
je 0x405a79
mov eax, dword [0xaaa44c]
lea edx, [esp + 0x18c]
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xf0]
mov dword [ecx + 0x48], eax
mov eax, dword [0xc10108]
mov dword [ecx + 0x44], ebp
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], eax
mov eax, dword [0xc10118]
mov dword [esp + 0x10], edx
mov dword [esp + 0x194], eax
lea eax, [esp + 0x194]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x190]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], ebx
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0043fef0
test eax, eax
je 0x405b7a
mov eax, dword [esp + 0x190]
fld dword [0xaf05a8]
fmul dword [0xaaa458]
fnstcw word [esp + 0x13e]
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x1ac], eax
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fldcw word [esp + 0x13c]
fistp dword [esp + 0x1b8]
fldcw word [esp + 0x13e]
mov eax, dword [esi + 0x48]
test eax, eax
jne 0x404b51
fld1
fcomp dword [0xaa7034]
fnstsw ax
sahf
je 0x402864
mov dword [esp + 8], 0xaee8d0
mov dword [esp + 4], 2
mov dword [esp], 1
call fcn.00405fb0
mov eax, dword [ebp + 0xc]
cmp eax, 0xffff
ja 0x405b55
mov eax, dword [ebp + 0x9c]
test eax, eax
je 0x404fa4
movzx eax, word [eax + 0x10]
add eax, 0x12
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0xd8]
mov dword [edx + 0x84], eax
mov edx, dword [ebp + 0x9c]
mov ecx, eax
movzx eax, word [edx + 0x10]
mov dword [esp + 4], edx
mov dword [esp], ecx
add eax, 0x12
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edi, dword [ebp + 0x2c]
test edi, edi
jne 0x404f92
mov ebx, dword [esp + 0xd8]
mov ecx, dword [ebx + 0x84]
mov eax, dword [ecx + 8]
mov dword [ebp + 0x2c], eax
mov esi, dword [ebp + 0x78]
test esi, esi
je 0x404fef
mov edx, dword [esp + 0xd8]
mov eax, dword [ebp + 0x90]
mov dword [edx + 0x78], eax
mov eax, dword [ebp + 0x78]
mov dword [edx + 0x60], eax
mov eax, dword [ebp + 0x7c]
mov dword [edx + 0x64], eax
mov esi, dword [esp + 0xd8]
xor edx, edx
mov eax, dword [esi + 0x64]
push edx
xor edx, edx
push eax
fild qword [esp]
add esp, 8
fmul dword [0xaa7034]
fnstcw word [esp + 0x13e]
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fldcw word [esp + 0x13c]
fistp qword [esp + 0x130]
fldcw word [esp + 0x13e]
mov eax, dword [esp + 0x130]
mov dword [esi + 0x64], eax
mov eax, dword [ecx + 4]
push edx
push eax
fild qword [esp]
add esp, 8
fmul dword [0xaa7034]
fldcw word [esp + 0x13c]
fistp qword [esp + 0x130]
fldcw word [esp + 0x13e]
mov eax, dword [esp + 0x130]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c], eax
movzx eax, word [ecx + 0xe]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x14], eax
movzx eax, word [ecx + 2]
mov dword [esp + 0x10], eax
movzx eax, word [ecx]
mov dword [esp + 8], 0xaee9ac
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov dword [esp + 4], 7
mov dword [esp], 0x16
call fcn.00405f20
test eax, eax
jne 0x404f70
mov ebx, dword [0xc10138]
test ebx, ebx
jne 0x402a00
mov eax, dword [0xc10198]
fld dword [eax + 0x50]
fadd dword [ebp + 0x14]
fstp dword [eax + 0x50]
mov dword [esp + 0x1ec], 0
mov dword [esp + 4], 0x401420
mov dword [esp], 2
call sub.msvcrt.dll_signal
mov dword [esp + 4], 0x401420
mov dword [esp], 3
call sub.msvcrt.dll_signal
mov dword [esp + 4], 0x401420
mov dword [esp], 0xf
call sub.msvcrt.dll_signal
mov dword [esp + 4], 0x401420
mov dword [esp], 1
call sub.msvcrt.dll_signal
mov dword [esp + 4], 0x401420
mov dword [esp], 0xd
call sub.msvcrt.dll_signal
call fcn.009bec30
mov dword [esp + 0xf4], eax
fld qword [0xc10218]
ftst
fnstsw ax
sahf
jne 0x4041c0
fstp st(0)
cmp dword [0xc10024], 1
je 0x404151
cmp dword [esp + 0x1f4], 9
je 0x404db5
mov eax, dword [0xaaa45c]
mov dword [0xaaa464], eax
mov eax, dword [esp + 0xec]
test eax, eax
je 0x402acb
cmp dword [0xc10100], 1
je 0x404be0
mov eax, dword [0xc101a8]
test eax, eax
je 0x402adc
mov dword [esp], eax
call fcn.0040c420
mov eax, dword [0xf6c710]
mov dword [0xc101a8], 0
mov dword [0xc101b8], 0
mov word [0xc10228], 0
test eax, eax
mov word [0xc10238], 1
je 0x402b1a
call fcn.0040c450
mov dword [0xc101a8], eax
mov dword [0xc101b8], eax
test ebp, ebp
je 0x402b2f
fldz
fcomp dword [0xc10128]
fnstsw ax
sahf
jne 0x404862
mov eax, dword [0xc101c8]
test eax, eax
jne 0x4037be
mov eax, dword [esp + 0xa4]
test ebp, ebp
setne byte [esp + 0x96]
movzx edx, byte [esp + 0x96]
test eax, eax
sete byte [esp + 0x97]
and byte [esp + 0x97], dl
mov eax, dword [0xc10100]
cmp eax, 2
je 0x403bf4
sub eax, 1
je 0x404133
mov eax, dword [0xaaa464]
test eax, eax
js 0x402b97
sub eax, 1
mov dword [0xaaa464], eax
add eax, 1
je 0x4037be
mov ecx, dword [0xc101b8]
test ecx, ecx
je 0x402c93
mov eax, dword [esp + 0x80]
fld dword [ecx]
fcom qword [eax + 0x28]
fnstsw ax
sahf
ja 0x4039ad
movzx edx, word [ecx + 0xc]
test dx, dx
jne 0x4039a3
cmp word [0xc10238], 0
je 0x4039ad
mov edx, dword [esp + 0xac]
fld qword [edx + 0x10]
fstp qword [esp + 0x88]
fld dword [ecx + 8]
fstp qword [esp + 0x1c]
fld dword [ecx + 4]
fstp qword [esp + 0x14]
mov dword [esp + 8], 0xaeeb08
fstp qword [esp + 0xc]
mov dword [esp + 4], 9
mov dword [esp], 1
call fcn.00405fb0
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xdc]
mov ebx, dword [ecx + 0x48]
mov edx, dword [eax + 0x48]
mov eax, dword [0xc101b8]
test ebx, ebx
je 0x402c8a
mov esi, dword [ebx + 0x64]
test esi, esi
je 0x402c8a
fld qword [esi + 0x28]
fld dword [eax + 4]
fld st(0)
fcom st(2)
fnstsw ax
sahf
jbe 0x403267
test edx, edx
sete al
cmp word [0xc10248], 0
movzx edi, al
jne 0x403920
fstp st(1)
mov dword [esp + 0xc], 0
mov eax, dword [0xc10128]
fsubrp st(1)
mov dword [esp], ecx
fstp dword [esp + 4]
mov dword [esp + 8], eax
call fcn.004c3d70
test eax, eax
jne 0x4039b5
mov word [0xc10238], 0
cmp byte [esp + 0x96], 0
je 0x403350
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0xdc]
fld qword [edx + 0x10]
fsub dword [0xaaa458]
fcomp qword [eax + 0x10]
fnstsw ax
sahf
jae 0x403350
add edx, 0x24
mov dword [esp + 0x78], edx
jmp 0x402e32
mov ecx, dword [esp + 0xd8]
mov ebx, dword [ecx + 0x2c]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0xf8]
sub eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 8], eax
mov eax, ebx
add eax, dword [ecx + 0x24]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [esi + 0x4c]
mov edi, dword [esp + 0xd8]
lea edx, [eax + ebx]
mov eax, dword [edi + 0x84]
mov dword [edi + 0x2c], edx
movzx ecx, word [eax + 0xc]
cmp edx, ecx
jb 0x40309c
mov eax, edx
xor edx, edx
div ecx
mov ebx, eax
imul ebx, ecx
mov eax, dword [esp + 0xdc]
fldz
fcomp qword [eax + 0x10]
fnstsw ax
sahf
jne 0x402d4a
mov edx, dword [esp + 0xd8]
add dword [edx + 0x5c], 1
test ebx, ebx
jle 0x403350
fld dword [0xaf058c]
fst qword [esp + 0x14]
mov edx, dword [esp + 0xd8]
mov dword [esp + 8], 0x10
fstp qword [esp + 0xc]
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.0043ceb0
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + 0x78]
test eax, eax
jne 0x402de2
fld qword [ecx + 0x10]
ftst
fnstsw ax
sahf
jbe 0x403969
mov edx, ecx
mov ecx, dword [ecx + 0x84]
fild qword [edx + 0x18]
fdivrp st(1)
fnstcw word [esp + 0x13e]
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fadd dword [0xaf0588]
fldcw word [esp + 0x13c]
fistp qword [esp + 0x130]
fldcw word [esp + 0x13e]
mov eax, dword [esp + 0x130]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0xd8]
mov eax, dword [edx + 0x2c]
cmp ebx, eax
jbe 0x403240
add dword [esp + 0xc4], 1
call fcn.009bec30
mov ebx, dword [esp + 0xd8]
sub eax, dword [esp + 0xb8]
add dword [esp + 0xbc], eax
mov eax, dword [esp + 0xdc]
fld qword [ebx + 0x10]
fsub dword [0xaaa458]
fcomp qword [eax + 0x10]
fnstsw ax
sahf
jae 0x403350
call fcn.009bec30
mov ecx, dword [0xaaa464]
test ecx, ecx
mov dword [esp + 0xb8], eax
js 0x403326
mov ebx, dword [esp + 0xdc]
xor edx, edx
mov eax, dword [ebx + 0x60]
push edx
xor edx, edx
push eax
fild qword [esp]
add esp, 8
push ecx
mov eax, dword [ebx + 0x64]
fild dword [esp]
fmulp st(1)
mov dword [esp], edx
push eax
fild qword [esp]
add esp, 8
fdivp st(1)
fadd qword [ebx + 0x10]
cmp dword [0xc10100], 1
je 0x403215
mov ebx, dword [0xc101b8]
test ebx, ebx
je 0x40307a
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx + 0x48]
test edx, edx
je 0x40307a
fld dword [ebx]
fsub qword [edx + 0x10]
mov esi, dword [esp + 0xdc]
fadd qword [esi + 0x10]
fxch st(1)
fcom dword [0xaf05b8]
fnstsw ax
sahf
je 0x40305f
fcom st(1)
fnstsw ax
sahf
ja 0x40305f
fstp st(1)
mov edx, dword [esp + 0xd8]
fsub qword [edx + 0x10]
fild dword [0xaaa454]
fld1
fdivrp st(1)
fld st(1)
fcomp st(1)
fnstsw ax
sahf
jbe 0x403260
fstp st(1)
ftst
fnstsw ax
sahf
jbe 0x40334e
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x403331
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xfc], 0
mov ecx, dword [edx + 0x78]
test ecx, ecx
je 0x4030a3
mov esi, dword [esp + 0xf8]
mov ebx, dword [esi + 0x48]
test ebx, ebx
je 0x403914
mov eax, dword [edx + 0x64]
xor edx, edx
push edx
push eax
fild qword [esp]
add esp, 8
fnstcw word [esp + 0x13e]
fmulp st(1)
mov dword [esp], esi
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
mov edi, dword [esp + 0x138]
imul edi, ecx
mov dword [esp + 4], edi
call ebx
mov edx, dword [esp + 0xf8]
mov edx, dword [edx + 0x30]
xor esi, esi
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], edx
cmp edi, esi
jle 0x402cd0
mov eax, dword [esp + 0x104]
test eax, eax
jne 0x402cd0
mov ecx, dword [ebp + 0x58]
mov edx, edi
sub edx, esi
cmp ecx, 0x10000
mov eax, ecx
jle 0x402fdb
mov eax, 0x10000
cmp eax, edx
mov ebx, eax
jle 0x402fe3
mov ebx, edx
mov edx, dword [ebp + 0x54]
cmp edx, ebx
jl 0x40302c
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x100]
add eax, esi
mov dword [esp], eax
call fcn.00580260
mov eax, dword [ebp + 0x54]
sub eax, ebx
test eax, eax
mov dword [ebp + 0x54], eax
jle 0x403028
mov edx, dword [ebp + 0x50]
mov dword [esp + 8], eax
lea eax, [edx + ebx]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00580260
add esi, ebx
jmp 0x402fae
mov eax, ebx
sub ecx, edx
sub eax, edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
add edx, dword [ebp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.0043fa80
test eax, eax
jle 0x403316
add dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x54]
cmp eax, ebx
jge 0x402fea
mov ebx, eax
jmp 0x402fea
cmp word [ebx + 0xc], 0
jne 0x40330f
cmp word [0xc10238], 0
je 0x40330f
fstp st(0)
fcom dword [0xaf05b8]
fnstsw ax
sahf
jne 0x402ed4
fstp st(0)
fild dword [0xaaa454]
fdivr qword [0xaf05c0]
jmp 0x402ef7
xor ebx, ebx
jmp 0x402d2e
fstp st(0)
jmp 0x4030e7
test esi, esi
jle 0x40309c
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xf8]
mov edx, dword [ecx + 0x2c]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0xc], esi
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 8], eax
add edx, dword [ecx + 0x24]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [ebx + 0x4c]
mov esi, dword [esp + 0xd8]
add dword [esi + 0x2c], eax
mov esi, dword [esp + 0xfc]
test esi, esi
je 0x4031fc
mov ebx, dword [esp + 0xfc]
test ebx, ebx
jle 0x403118
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xfc]
cmp dword [ecx + 0x2c], ebx
jae 0x402d2e
mov esi, dword [esp + 0xf8]
mov dword [esp + 0x10c], 0
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x34]
xor esi, esi
mov dword [esp + 0x108], eax
lea esi, [esi]
cmp esi, edi
jge 0x4030a7
mov ecx, dword [esp + 0x10c]
test ecx, ecx
jne 0x4030a7
mov ecx, dword [ebp + 0x58]
mov edx, edi
sub edx, esi
cmp ecx, 0x10000
mov eax, ecx
jle 0x40316d
mov eax, 0x10000
cmp eax, edx
mov ebx, eax
jle 0x403175
mov ebx, edx
mov edx, dword [ebp + 0x54]
cmp edx, ebx
jl 0x4031c0
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x108]
add eax, esi
mov dword [esp], eax
call fcn.00580260
mov eax, dword [ebp + 0x54]
sub eax, ebx
test eax, eax
mov dword [ebp + 0x54], eax
jle 0x4031ba
mov edx, dword [ebp + 0x50]
mov dword [esp + 8], eax
lea eax, [edx + ebx]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00580260
add esi, ebx
jmp 0x403140
mov eax, ebx
sub ecx, edx
sub eax, edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
add edx, dword [ebp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.0043fa80
test eax, eax
jle 0x4031ef
add dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x54]
cmp eax, ebx
jge 0x40317c
mov ebx, eax
jmp 0x40317c
mov dword [esp + 0x10c], 1
jmp 0x4031e4
mov edx, dword [esp + 0xf8]
mov dword [esp], edx
call dword [edx + 0x44]
mov dword [esp + 0xfc], eax
jmp 0x4030f6
fld qword [0xc100f8]
fld st(1)
fcomp st(1)
fnstsw ax
sahf
ja 0x40390d
fxch st(1)
fcom dword [0xaf05b8]
fnstsw ax
sahf
jne 0x40399c
fstp st(0)
jmp 0x402e87
sub eax, ebx
mov dword [edx + 0x2c], eax
mov edx, dword [edx + 0x24]
mov dword [esp + 8], eax
lea eax, [edx + ebx]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00580260
jmp 0x402df4
fstp st(0)
jmp 0x402ef7
fstp st(0)
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x80]
mov word [0xc10228], 0
fld qword [ebx + 0x28]
fld qword [esp + 0x88]
fcomp st(1)
fnstsw ax
sahf
jb 0x4032a4
fstp st(0)
mov ecx, dword [0xc101b8]
mov ecx, dword [ecx + 0x10]
mov dword [0xc101b8], ecx
jmp 0x402b9d
mov ecx, dword [0xc101a8]
test ecx, ecx
mov edx, ecx
mov dword [0xc101b8], ecx
je 0x4039ad
fld dword [ecx + 4]
xor ecx, ecx
fcomp st(1)
fnstsw ax
sahf
jbe 0x4032e0
jmp 0x40405e
mov edx, dword [edx + 0x10]
test edx, edx
je 0x4032f7
fld dword [edx + 4]
fcomp st(1)
fnstsw ax
sahf
ja 0x4038f7
cmp word [edx + 0xc], 1
jne 0x4032cb
mov edx, dword [edx + 0x10]
test cx, cx
sete al
movzx ecx, al
test edx, edx
jne 0x4032d2
fstp st(0)
mov word [0xc10228], cx
mov dword [0xc101b8], 0
jmp 0x402c93
fstp st(1)
jmp 0x40307a
mov dword [esp + 0x104], 1
jmp 0x403054
fld dword [0xaf05b8]
jmp 0x402e7a
mov ebx, dword [esp + 0xd8]
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x403975
mov edx, dword [ebx + 0x48]
test edx, edx
je 0x403875
fstp st(0)
mov eax, dword [esp + 0x1c8]
test eax, eax
je 0x403c30
fld dword [esp + 0x1c4]
fdiv dword [0xaa7034]
mov eax, dword [esp + 0x1c0]
test eax, eax
fstp dword [esp + 0x1c4]
js 0x403aa1
mov ebx, dword [esp + 0xdc]
xor edx, edx
add dword [esp + 0x1ec], 1
mov eax, dword [ebx + 0x60]
push edx
xor edx, edx
push eax
mov eax, dword [ebx + 0x64]
fild qword [esp]
add esp, 8
push edx
push eax
fild qword [esp]
add esp, 8
fdivp st(1)
mov eax, dword [esp + 0xa4]
lea ebx, [esp + 0x1dc]
test eax, eax
fld dword [esp + 0x1c4]
fsubr st(1)
fld qword [esp + 0xe0]
faddp st(1)
fstp qword [esp + 0xe0]
je 0x4044e0
fstp st(0)
mov ecx, dword [esp + 0xe8]
cmp ecx, dword [esp + 0x1ec]
jge 0x403434
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
mov eax, dword [edx + 0x48]
mov dword [esp], eax
call fcn.004c53f0
cmp eax, 0
jl 0x403aa1
je 0x4033de
cmp eax, 4
jne 0x4033de
mov eax, dword [esp + 0x1dc]
mov eax, dword [eax]
mov dword [esp + 0xe8], eax
mov ecx, dword [esp + 0xe8]
cmp ecx, dword [esp + 0x1ec]
jl 0x4033ee
mov eax, dword [0xc101c8]
test eax, eax
jne 0x4037be
mov ebx, ecx
sub ebx, dword [esp + 0x1ec]
lea esi, [esp + 0x1dc]
mov eax, dword [esp + 0xe8]
cmp eax, dword [esp + 0x1ec]
jg 0x403499
mov edi, dword [esp + 0xa4]
mov dword [esp + 4], esi
mov eax, dword [edi + 0x48]
mov dword [esp], eax
call fcn.004c53f0
cmp eax, 0
jl 0x403f50
jne 0x403ab0
mov eax, dword [esp + 0xe8]
sub ebx, 1
cmp eax, dword [esp + 0x1ec]
jle 0x403461
call fcn.009bec30
mov edx, dword [esp + 0xdc]
mov esi, eax
mov eax, dword [edx + 0x48]
test eax, eax
jne 0x403ace
mov eax, dword [esp + 0x1bc]
test ebx, ebx
mov ecx, dword [esp + 0xdc]
mov dword [ecx + 0x24], eax
jle 0x404b0b
add dword [esp + 0xc8], 1
call fcn.009bec30
sub eax, esi
add dword [esp + 0xc0], eax
cmp ebx, 0
jl 0x404949
je 0x403501
mov eax, dword [0xc10028]
test eax, eax
je 0x404de9
add dword [esp + 0xcc], 1
cmp byte [esp + 0x97], 0
je 0x403646
mov ebx, dword [esp + 0xa8]
mov eax, dword [0xaa7030]
fld qword [ebx + 0x10]
test eax, eax
jne 0x403533
ftst
fnstsw ax
sahf
je 0x403533
mov dword [0xaa7030], 1
fsub dword [0xc10128]
mov edx, dword [esp + 0x80]
fld qword [edx + 0x28]
mov edx, dword [esp + 0xa8]
fsubp st(1)
mov eax, dword [edx + 0x18]
add eax, dword [edx]
sub eax, dword [ebp + 0x38]
sub eax, dword [edx + 4]
xor edx, edx
push eax
fild dword [esp]
add esp, 4
fild dword [ebp + 0x2c]
fdivp st(1)
mov ecx, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd8]
mov eax, dword [ecx + 0x60]
faddp st(1)
fld dword [0xaa7034]
fld qword [ecx + 0x10]
fsub qword [ebx + 0x10]
fxch st(2)
fdiv st(1)
faddp st(2)
fxch st(1)
fsub qword [esp + 0x128]
fsub qword [esp + 0xe0]
push edx
push eax
mov eax, dword [ecx + 0x64]
xor edx, edx
fild qword [esp]
add esp, 8
fild dword [ecx + 0x8c]
fmulp st(1)
push edx
push eax
mov eax, dword [ebx + 0x60]
xor edx, edx
fild qword [esp]
add esp, 8
fdivp st(1)
push edx
xor edx, edx
push eax
mov eax, dword [ebx + 0x64]
fild qword [esp]
add esp, 8
fild dword [ebx + 0x8c]
fmulp st(1)
push edx
push eax
fild qword [esp]
add esp, 8
fdivp st(1)
fsubp st(1)
faddp st(1)
fmul dword [0xaf05cc]
fld dword [0xc101d8]
fld st(0)
fchs
fcom st(2)
fnstsw ax
sahf
ja 0x4045a4
fstp st(0)
fld st(1)
fcomp st(1)
fnstsw ax
sahf
jbe 0x4049fa
fstp st(1)
fld dword [0xaaa460]
ftst
fnstsw ax
sahf
jb 0x404a19
fmulp st(2)
fxch st(1)
fstp dword [0xc101d8]
fld dword [0xc101e8]
fadd st(1)
fstp dword [0xc101e8]
fld qword [esp + 0x128]
faddp st(1)
fstp qword [esp + 0x128]
call fcn.009bec30
mov esi, eax
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x10]
mov edi, eax
mov ebx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov edx, dword [edi + 0x1c]
sub eax, ecx
sbb edx, ebx
push edx
push eax
fild qword [esp]
add esp, 8
fcom dword [0xaf05a8]
fnstsw ax
sahf
jbe 0x40444c
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
sub eax, ecx
sbb edx, ebx
push edx
push eax
fild qword [esp]
add esp, 8
fdivrp st(1)
mov eax, dword [0xc10028]
test eax, eax
je 0x4041e9
fstp st(0)
mov dword [esp + 8], 0xaeebf3
mov dword [esp + 4], 6
mov dword [esp], 0x16
call fcn.00405fb0
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x404e0a
lea esi, [esp + 0x1d8]
mov dword [esp + 0x1d8], 0
jmp 0x403767
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x80]
fld qword [edx + 0x10]
fstp qword [esp + 0x18]
fld qword [ecx + 0x28]
fstp qword [esp + 0x10]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xaeebf8
mov dword [esp + 4], 6
mov dword [esp], 0x16
call fcn.00405fb0
mov edi, dword [esp + 0xb0]
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0xb4]
fld qword [edi + 0x10]
fadd qword [eax + 0x10]
mov eax, dword [esp + 0x1d8]
fsub qword [edx + 0x28]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], ecx
fstp qword [esp + 0xc]
call fcn.00423160
mov ebx, dword [esp + 0xb0]
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.004c52e0
test eax, eax
mov ebx, eax
jg 0x4036eb
mov edi, dword [0xc101c8]
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c0], 0
test edi, edi
mov dword [esp + 0x1bc], 0
je 0x402b66
mov esi, dword [0xc101f8]
test esi, esi
jne 0x4054e6
mov eax, dword [esp + 0x124]
add dword [esp + 0xec], 1
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x4054e6
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x10c]
test eax, eax
je 0x403818
mov ecx, eax
mov eax, dword [eax + 0x5c]
jmp 0x403802
mov ecx, eax
mov eax, edx
test eax, eax
je 0x404933
mov edx, dword [eax + 0x5c]
test edx, edx
jne 0x4037fe
mov dword [ecx + 0x5c], 0
test ebp, ebp
je 0x403824
mov dword [esp], ebp
call fcn.0043ff50
mov ebx, dword [esp + 0x80]
mov dword [esp], ebx
call fcn.00443920
mov esi, dword [esp + 0xa0]
mov dword [esp], esi
call fcn.004c3fc0
mov edi, dword [esp + 0x9c]
mov dword [esp], edi
call fcn.00528cd0
mov eax, dword [0xf6c5c0]
mov dword [0xc101c8], 0
mov dword [esp], eax
call fcn.0040cfd0
add dword [esp + 0x124], 8
jmp 0x401fdb
mov eax, dword [ebx + 0x84]
xor edx, edx
mov eax, dword [eax + 8]
push edx
xor edx, edx
push eax
fild qword [esp]
add esp, 8
fnstcw word [esp + 0x13e]
fmulp st(1)
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
mov eax, dword [esp + 0x138]
div ecx
mov ebx, eax
mov eax, 1
test ebx, ebx
jle 0x4038d0
mov eax, ebx
imul eax, ecx
mov esi, dword [esp + 0xd8]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp + 4]
mov dword [esp], eax
call fcn.004c54c0
mov ebx, eax
jmp 0x402d4a
fstp st(0)
mov word [0xc10228], cx
mov ecx, edx
mov dword [0xc101b8], edx
jmp 0x402b9d
fstp st(1)
jmp 0x402e87
fstp st(0)
mov edi, dword [esi + 0x34]
mov edx, esi
jmp 0x402f97
fstp st(0)
fstp st(1)
lea ecx, [esp + 0x1bc]
mov edx, dword [esp + 0xa8]
mov eax, ebx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xd8]
fstp dword [esp]
mov dword [esp + 0xc], 1
mov dword [esp + 8], edi
call fcn.00401940
cmp eax, 2
je 0x403aa1
test eax, eax
jne 0x40326d
jmp 0x402c8a
fstp st(0)
nop
lea esi, [esi]
jmp 0x402de2
fstp st(0)
mov eax, dword [ebx + 0x48]
test eax, eax
jne 0x403350
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [ebp + 4]
mov dword [esp], eax
call fcn.004c53f0
mov ebx, eax
jmp 0x402d4a
fstp st(1)
jmp 0x402e87
sub dx, 1
je 0x403f5f
fstp st(0)
nop
jmp 0x402c93
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + 0x48]
fld qword [eax + 0x10]
fstp qword [esi + 0x28]
mov dword [esp], esi
call fcn.00443030
fldz
fcomp dword [0xc10128]
fnstsw ax
sahf
je 0x40326d
mov edx, dword [esp + 0xa0]
lea ecx, [esp + 0x1bc]
mov esi, dword [edx + 0x48]
mov ebx, dword [esi + 0x64]
fnstcw word [esp + 0x13e]
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
lea eax, [esp + 0x1c4]
fld dword [0xc10068]
fldcw word [esp + 0x13c]
fistp dword [esp + 0xc]
fldcw word [esp + 0x13e]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004d43a0
test eax, eax
mov dword [esp + 0x1c0], eax
js 0x40326d
fld dword [ebx + 0x14]
fadd dword [esp + 0x1c4]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x1c8], 1
fstp dword [ebx + 0x14]
fld dword [0xc10128]
fadd qword [ebx + 0x28]
fsub dword [esp + 0x1c4]
fstp dword [esp]
call fcn.00401740
fld dword [0xc10128]
ftst
fnstsw ax
sahf
jbe 0x405b9b
fstp st(0)
fstp st(0)
jmp 0x40326d
mov dword [0xc101c8], 1
jmp 0x4037be
cmp eax, 4
jne 0x403451
mov eax, dword [esp + 0x1dc]
mov eax, dword [eax]
mov dword [esp + 0xe8], eax
jmp 0x403451
sub eax, 1
je 0x4040ef
test ebx, ebx
jle 0x4046a3
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x10c]
test eax, eax
je 0x403b0f
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc
mov dword [esp], eax
call dword [eax + 8]
sub eax, 1
je 0x4046a3
mov eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c0]
fld dword [0xaf058c]
fstp qword [esp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00443980
test eax, eax
je 0x403bf0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
fld dword [0xaf058c]
fstp qword [esp + 8]
mov dword [esp], eax
call fcn.004430a0
mov edx, 1
test eax, eax
je 0x403bf0
mov ecx, dword [esp + 0x80]
mov edi, dword [ecx + 0x110]
test edi, edi
js 0x404ccf
test edx, edx
jne 0x4034cb
mov eax, dword [0xaaa464]
test eax, eax
js 0x403ba3
add eax, 1
mov dword [0xaaa464], eax
add dword [esp + 0xd4], 1
test ebx, ebx
jg 0x4034cb
mov edi, dword [esp + 0xdc]
xor edx, edx
mov eax, dword [edi + 0x60]
push edx
xor edx, edx
push eax
mov eax, dword [edi + 0x64]
fild qword [esp]
add esp, 8
push edx
push eax
fild qword [esp]
add esp, 8
fdivp st(1)
fld qword [esp + 0xe0]
fsubrp st(1)
fstp qword [esp + 0xe0]
jmp 0x4034cb
xor edx, edx
jmp 0x403b75
mov eax, dword [0xc10198]
xor edx, edx
mov ecx, dword [eax + 0xbc]
mov eax, dword [ecx + 0x24]
add eax, dword [ecx + 0x30]
adc edx, dword [ecx + 0x34]
xor ebx, ebx
mov ecx, dword [ecx + 0x28]
sub eax, ecx
sbb edx, ebx
push edx
push eax
fild qword [esp]
add esp, 8
fcomp qword [0xc100f8]
fnstsw ax
sahf
jb 0x402b7d
jmp 0x4037be
fnstcw word [esp + 0x13e]
mov edx, dword [esp + 0x80]
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
lea eax, [esp + 0x1bc]
fld dword [0xc10068]
fldcw word [esp + 0x13c]
fistp dword [esp + 0xc]
fldcw word [esp + 0x13e]
mov dword [esp + 8], eax
lea eax, [esp + 0x1c4]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.004d43a0
mov ecx, dword [esp + 0x80]
fld dword [ecx + 0x14]
fadd dword [esp + 0x1c4]
mov dword [esp + 0x1c0], eax
fstp dword [ecx + 0x14]
jmp 0x40335f
cmp eax, 1
je 0x40446f
mov edx, dword [0xc10208]
test edx, edx
je 0x404a4b
mov esi, dword [esp + 0x80]
mov dword [esi + 0x10c], edx
mov eax, dword [0xaa7048]
test eax, eax
je 0x403d22
mov edi, dword [esp + 0x80]
lea eax, [esp + 0x1cc]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xaee804
mov dword [esp + 0x1cc], 0xaee7fe
mov eax, dword [edi + 0x10c]
mov dword [esp + 0x1d0], 0xaee802
mov dword [esp + 0x1d4], 0
mov dword [esp], eax
call fcn.004419c0
mov dword [edi + 0x10c], eax
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x10c]
mov dword [esp], eax
call fcn.00441bb0
mov ecx, dword [esp + 0x80]
mov dword [ecx + 0x10c], eax
mov dword [esp + 8], 0xaee678
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00405fb0
mov eax, dword [0xc10158]
mov ebx, dword [esp + 0x80]
mov dword [esp + 8], eax
mov eax, dword [0xc10178]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004436b0
mov dword [esp + 8], 0xaee678
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00405fb0
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x404ccf
mov eax, dword [esp + 0xec]
test eax, eax
je 0x40263e
mov ecx, dword [esp + 0xd8]
test ebp, ebp
sete dl
test ecx, ecx
sete al
cmp al, dl
jne 0x4054c5
test dl, dl
jne 0x403fa4
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx + 0x48]
test edx, edx
jne 0x403fa4
fld1
fcomp dword [0xaa7034]
fnstsw ax
sahf
jne 0x4054a4
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx + 0x84]
mov eax, dword [ecx + 0x78]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], eax
movzx eax, word [edx + 0xe]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x14], eax
movzx eax, word [edx + 2]
mov dword [esp + 0x10], eax
movzx eax, word [edx]
mov dword [esp + 8], 0xaee9ac
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov ecx, dword [ebp + 0x9c]
test ecx, ecx
je 0x4053ed
mov ebx, dword [esp + 0xd8]
movzx eax, word [ecx]
mov edx, dword [ebx + 0x84]
movzx ebx, word [edx]
cmp bx, ax
jne 0x4053e6
movzx eax, word [edx + 2]
cmp ax, word [ecx + 2]
jne 0x403eaf
mov eax, dword [edx + 4]
xor edx, edx
push edx
xor edx, edx
push eax
mov eax, dword [ecx + 4]
fild qword [esp]
add esp, 8
push edx
push eax
fild qword [esp]
add esp, 8
fmul dword [0xaa7034]
fcompp
fnstsw ax
sahf
je 0x402a7b
mov dword [esp + 0x20], 0
mov eax, dword [ecx + 8]
xor edx, edx
mov dword [esp + 0x1c], eax
movzx eax, word [ecx + 0xe]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 4]
push edx
push eax
fild qword [esp]
add esp, 8
fmul dword [0xaa7034]
fnstcw word [esp + 0x13e]
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fldcw word [esp + 0x13c]
fistp dword [esp + 0x14]
fldcw word [esp + 0x13e]
movzx eax, word [ecx + 2]
mov dword [esp + 0x10], eax
movzx eax, bx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xaee9ac
mov dword [esp + 4], 4
mov dword [esp], 0x16
call fcn.00405fb0
mov dword [esp + 8], 0xaeea44
mov dword [esp + 4], 0
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x404ccf
mov dword [0xc101c8], 1
jmp 0x403499
xor eax, eax
cmp word [0xc10228], 0
sete al
mov word [0xc10228], ax
fstp qword [esp + 0xc]
mov dword [esp + 8], 0xaeeb36
mov dword [esp + 4], 9
mov dword [esp], 1
call fcn.00405fb0
mov eax, dword [0xc101b8]
mov eax, dword [eax + 0x10]
mov dword [0xc101b8], eax
jmp 0x402c93
test ebp, ebp
je 0x402a7b
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xf8]
mov esi, dword [esp + 0xf0]
mov edx, dword [ecx + 0x84]
mov eax, dword [edx + 4]
mov dword [esp + 0x1e8], eax
movzx eax, word [edx + 2]
mov dword [esp + 0x1e4], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x1e0], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1e0]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x1e4]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 4], esi
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0043fcf0
test eax, eax
je 0x4053c5
mov edi, dword [esp + 0xd8]
mov edx, dword [esp + 0x1e8]
mov eax, dword [edi + 0x84]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1e4]
mov word [eax + 2], dx
jmp 0x402a7b
fstp st(0)
jmp 0x402b97
mov eax, dword [0xc10094]
test eax, eax
je 0x402377
mov dword [esp], 0xaee6df
call fcn.00401590
mov ebx, eax
mov eax, 0xaee06d
test ebx, ebx
je 0x40408b
mov eax, ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0041cbe0
mov dword [esp], ebx
mov esi, eax
call sub.msvcrt.dll_free
mov ebx, dword [esp + 0x80]
mov eax, dword [ebx + 0xec]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call fcn.0041fc60
mov dword [0xc10390], eax
mov eax, dword [esi]
test eax, eax
je 0x4040db
mov ebx, esi
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 4]
add ebx, 4
test eax, eax
jne 0x4040c9
mov dword [esp], esi
call sub.msvcrt.dll_free
jmp 0x402377
fstp st(0)
jmp 0x40233a
mov edx, dword [esp + 0xdc]
lea eax, [esp + 0x1ec]
test ebx, ebx
mov dword [edx + 0x24], eax
jg 0x4034cb
fld dword [0xaf058c]
fst qword [esp + 0x14]
mov dword [esp + 8], 0x10
fstp qword [esp + 0xc]
mov dword [esp + 4], 4
mov dword [esp], edx
call fcn.0043ceb0
jmp 0x4034cb
mov eax, dword [esp + 0xdc]
fld qword [0xc100f8]
fcomp qword [eax + 0x10]
fnstsw ax
sahf
jae 0x402b7d
jmp 0x4037be
fld dword [0xaaa458]
fcomp qword [0xaf05b0]
fnstsw ax
sahf
jbe 0x404188
mov dword [esp + 8], 0xaeea8c
mov dword [esp + 4], 2
mov dword [esp], 0x16
call fcn.00405fb0
mov dword [0xaaa458], 0x3ecccccd
cmp dword [0xaaa454], 3
jg 0x402a9b
mov dword [esp + 8], 0xaeeab0
mov dword [esp + 4], 2
mov dword [esp], 0x16
call fcn.00405fb0
mov dword [0xaaa454], 4
jmp 0x402a9b
mov dword [esp + 0xc], 1
mov edx, dword [esp + 0xa0]
mov eax, dword [0xc10128]
fstp dword [esp + 4]
mov dword [esp], edx
mov dword [esp + 8], eax
call fcn.004c3d70
jmp 0x402a8e
sub esi, dword [esp + 0xf4]
xor edx, edx
push edx
push esi
fild qword [esp]
add esp, 8
fmul dword [0xaf05e0]
fxch st(1)
mov dword [esp + 4], 6
mov dword [esp], 0x2d
fstp dword [esp + 0x60]
fstp dword [esp + 0x50]
call fcn.00405f20
fld dword [esp + 0x60]
test eax, eax
fld dword [esp + 0x50]
je 0x4046aa
mov eax, dword [esp + 0xd8]
test eax, eax
je 0x404a82
mov edx, dword [esp + 0xd8]
fld qword [edx + 0x10]
fcom qword [0xaf05c0]
fnstsw ax
sahf
jbe 0x404a80
fild qword [edx + 0x18]
fdivrp st(1)
fnstcw word [esp + 0x13e]
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x13e]
mov edx, dword [esp + 0xdc]
xor edi, edi
fld qword [edx + 0x10]
fcom qword [0xaf05c0]
fnstsw ax
sahf
jbe 0x4042cd
fild qword [edx + 0x18]
fdiv st(1)
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
mov edi, dword [esp + 0x138]
fld st(2)
xor ebx, ebx
fcomp qword [0xaf05f0]
fnstsw ax
xor esi, esi
sahf
jbe 0x404b4a
mov eax, dword [0xc10198]
xor edx, edx
mov ecx, dword [eax + 0xbc]
mov eax, dword [ecx + 0x24]
add eax, dword [ecx + 0x30]
adc edx, dword [ecx + 0x34]
xor ebx, ebx
mov ecx, dword [ecx + 0x28]
sub eax, ecx
sbb edx, ebx
push edx
push eax
fild qword [esp]
add esp, 8
fdiv st(3)
fmul dword [0xaf05f8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
mov esi, dword [esp + 0x138]
fld st(1)
fdiv st(3)
fsub st(2)
fmul dword [0xaf05fc]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
fxch st(1)
mov ebx, dword [esp + 0x138]
fcom dword [0xaf0590]
fnstsw ax
xor ecx, ecx
sahf
jbe 0x4053be
fild dword [esp + 0x1ec]
fdivrp st(1)
fadd dword [0xaf0588]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xd4]
fld qword [esp + 0x128]
fstp qword [esp + 0x28]
fxch st(1)
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc0]
fmul dword [0xaf0600]
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], edx
xor edx, edx
div dword [esp + 0xc8]
xor edx, edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
fldcw word [esp + 0x13c]
fistp dword [esp + 0x18]
fldcw word [esp + 0x13e]
mov dword [esp + 0x1c], ecx
mov dword [esp + 8], 0xaeeb48
mov dword [esp + 4], 5
fstp qword [esp + 0xc]
mov dword [esp], 0x2d
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xbc]
div dword [esp + 0xc4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp + 0x14], eax
call fcn.00405fb0
jmp 0x4036a0
fstp st(0)
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.004c34f0
push eax
fild dword [esp]
add esp, 4
fmul qword [0xaf05d8]
jmp 0x403691
mov ecx, dword [esp + 0xec]
test ecx, ecx
jne 0x403db7
mov dword [esp + 4], 0x28
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0xdc]
mov edx, dword [ecx + 0xfc]
mov dword [edi + 0x88], eax
mov dword [eax], 0x28
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x100]
mov word [eax + 0xc], 1
mov word [eax + 0xe], 0x18
mov dword [eax + 0x10], 0x6f4e7246
mov dword [eax + 8], edx
imul edx, dword [eax + 4]
lea edx, [edx + edx*2]
mov dword [eax + 0x14], edx
jmp 0x40263e
fld st(0)
fld qword [esp + 0xe0]
fcomp st(1)
fnstsw ax
sahf
jb 0x40492c
cmp dword [0xaaa450], 0
jl 0x404503
je 0x40492c
fld qword [esp + 0xe0]
mov ebx, 1
fsub st(1)
fstp qword [esp + 0xe0]
fld st(1)
fchs
fld qword [esp + 0xe0]
fcomp st(1)
fnstsw ax
sahf
ja 0x40455f
mov edx, dword [0xaaa450]
test edx, edx
js 0x40539f
mov ecx, ebx
neg ecx
jmp 0x40455b
fld qword [esp + 0xe0]
sub ebx, 1
add ecx, 1
fadd st(2)
fst qword [esp + 0xe0]
fcomp st(1)
fnstsw ax
sahf
ja 0x40455f
cmp edx, ecx
jg 0x40453e
fld dword [0xaf05c8]
fmul st(3)
jmp 0x404590
fld qword [esp + 0x128]
fcom st(1)
fnstsw ax
sahf
ja 0x404636
fstp st(0)
fld qword [esp + 0x128]
sub ebx, 1
fadd st(3)
fstp qword [esp + 0x128]
fld qword [esp + 0x128]
fcomp st(2)
fnstsw ax
sahf
ja 0x404569
test ebx, ebx
jg 0x40457d
jmp 0x404569
fstp st(2)
fstp st(0)
jmp 0x40360d
mov edx, dword [esp + 0x80]
fst dword [edx + 0xec]
fld1
fdiv st(1)
fstp dword [edx + 0xf0]
fstp qword [esp + 0xc]
mov dword [esp + 8], 0xaee588
mov dword [esp + 4], 4
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x4021f3
mov eax, dword [0xc1001c]
test eax, eax
je 0x4045ff
cmp dword [0xaa7020], 0xffffffff
je 0x405389
mov eax, dword [0xc10020]
test eax, eax
je 0x40207c
cmp dword [0xaa7028], 0xfffffffe
jne 0x40207c
mov edi, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00524270
mov dword [0xaa7028], eax
jmp 0x40207c
fstp st(2)
fstp st(0)
fcomp st(1)
fnstsw ax
sahf
jb 0x404649
test ebx, ebx
js 0x405382
fxch st(1)
fadd st(0)
fld qword [esp + 0x128]
fcompp
fnstsw ax
sahf
jb 0x40465f
test ebx, ebx
jle 0x404666
fstp st(0)
jmp 0x403499
fsubr qword [esp + 0x128]
add ebx, 1
fstp qword [esp + 0x128]
jmp 0x403499
cmp dword [esp + 0xf0], 0x2ee00
jle 0x40232b
fld dword [0xaf0594]
mov dword [esp + 0xf0], 0x2ee00
jmp 0x402332
xor eax, eax
jmp 0x403b14
mov eax, dword [esp + 0xd8]
test eax, eax
je 0x404a60
mov eax, dword [esp + 0xd8]
fld qword [eax + 0x10]
fcom qword [0xaf05c0]
fnstsw ax
sahf
jbe 0x404a5e
mov edx, dword [esp + 0xd8]
fild qword [edx + 0x18]
fdivrp st(1)
fnstcw word [esp + 0x13e]
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
mov edi, dword [esp + 0x138]
mov ecx, dword [esp + 0xdc]
xor esi, esi
fld qword [ecx + 0x10]
fcom qword [0xaf05c0]
fnstsw ax
sahf
jbe 0x404757
fild qword [ecx + 0x18]
fdiv st(1)
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
mov esi, dword [esp + 0x138]
fld st(2)
xor ecx, ecx
fcomp qword [0xaf05f0]
fnstsw ax
xor edx, edx
sahf
jbe 0x404de2
mov eax, dword [0xc10198]
xor edx, edx
mov ecx, dword [eax + 0xbc]
mov eax, dword [ecx + 0x24]
add eax, dword [ecx + 0x30]
adc edx, dword [ecx + 0x34]
xor ebx, ebx
mov ecx, dword [ecx + 0x28]
sub eax, ecx
sbb edx, ebx
push edx
push eax
fild qword [esp]
add esp, 8
fdiv st(3)
fmul dword [0xaf05f8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
mov edx, dword [esp + 0x138]
fld st(1)
fdiv st(3)
fsub st(2)
fmul dword [0xaf05fc]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x13e]
fxch st(1)
mov ecx, dword [esp + 0x138]
fcom dword [0xaf0590]
fnstsw ax
sahf
jbe 0x405379
fild dword [esp + 0x1ec]
fdivrp st(1)
fld qword [esp + 0x128]
fstp qword [esp + 0x2c]
mov eax, dword [esp + 0x1ec]
fstp qword [esp + 0x1c]
fxch st(1)
fmul dword [0xaf0600]
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], eax
fldcw word [esp + 0x13c]
fistp dword [esp + 0x18]
fldcw word [esp + 0x13e]
mov dword [esp + 8], 0xaeebac
mov dword [esp + 4], 5
mov dword [esp], 0x2d
fstp qword [esp + 0xc]
call fcn.00405fb0
jmp 0x4036a0
mov edx, dword [esp + 0xdc]
lea edi, [esp + 0x1bc]
mov ecx, dword [esp + 0xac]
mov esi, dword [edx + 0x48]
mov ebx, dword [ecx + 0x64]
fnstcw word [esp + 0x13e]
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
lea eax, [esp + 0x1c4]
fld dword [0xc10068]
fldcw word [esp + 0x13c]
fistp dword [esp + 0xc]
fldcw word [esp + 0x13e]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004d43a0
test eax, eax
mov dword [esp + 0x1c0], eax
js 0x402b2f
fld dword [ebx + 0x14]
fadd dword [esp + 0x1c4]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x1c8], 1
fstp dword [ebx + 0x14]
fld dword [0xc10128]
fadd qword [ebx + 0x28]
fsub dword [esp + 0x1c4]
fstp dword [esp]
call fcn.00401740
fld dword [0xc10128]
ftst
fnstsw ax
sahf
jbe 0x405325
fstp st(0)
fstp st(0)
jmp 0x402b2f
xor ebx, ebx
jmp 0x404518
mov ecx, dword [esp + 0x80]
mov dword [ecx + 0x10c], 0
jmp 0x403818
mov ecx, dword [0xc10028]
test ecx, ecx
jne 0x404977
mov eax, ebx
neg eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xaee06d
mov dword [esp + 4], 2
mov dword [esp], 0x16
call fcn.00405fb0
mov esi, dword [esp + 0xd0]
mov eax, esi
sub eax, ebx
mov ebx, eax
mov edx, dword [0xaa704c]
add esi, 1
test edx, edx
je 0x4049bd
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x10c]
test eax, eax
je 0x4049bd
mov dword [esp + 8], 0
mov dword [esp + 4], 0xb
mov dword [esp], eax
call dword [eax + 8]
sub eax, 1
je 0x4049ea
fld dword [0xaf058c]
fst qword [esp + 0x14]
mov ecx, dword [esp + 0xdc]
mov dword [esp + 8], 0
fstp qword [esp + 0xc]
mov dword [esp + 4], 0
mov dword [esp], ecx
call fcn.0043ceb0
cmp esi, ebx
jne 0x404984
mov dword [esp + 0xd0], esi
jmp 0x403501
fstp st(0)
jmp 0x40360d
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x44]
mov edi, eax
mov dword [esp + 0xa8], eax
jmp 0x402139
fstp st(0)
fxch st(1)
mov edx, dword [esp + 0x80]
fmul dword [edx + 0xf0]
fmul qword [0xaf05d0]
fstp dword [0xc101d8]
jmp 0x403628
mov dword [esp + 0xa4], 0
jmp 0x401e42
sub eax, 4
cmp eax, 9
ja case.0x404a57.5
jmp dword [eax*4 + 0xaeed68]
fstp st(0)
fnstcw word [esp + 0x13e]
xor edi, edi
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
jmp 0x404719
fstp st(0)
fnstcw word [esp + 0x13e]
mov dword [esp + 0x98], 0
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
jmp 0x40428f
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], 0xaee7d0
mov dword [esp], 0
mov dword [esp + 8], ecx
call fcn.004325c0
mov ebx, dword [esp + 0x80]
mov dword [ebx + 0x10c], eax
mov ecx, dword [esp + 0xdc]
mov edx, dword [ecx + 0x88]
test edx, edx
je 0x405207
mov ebx, dword [esp + 0x80]
mov eax, dword [ebx + 0x10c]
test eax, eax
je 0x405207
mov dword [0xc10208], eax
jmp 0x403cca
mov edi, dword [esp + 0x80]
fld dword [0xaf058c]
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x34]
fst qword [esp + 0x14]
mov dword [esp], ecx
and eax, 1
neg eax
and eax, 0x10
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c0]
fstp qword [esp + 0xc]
mov dword [esp + 4], eax
call fcn.0043ceb0
jmp 0x4034cb
fxch st(1)
jmp 0x404357
lea ebx, [esp + 0x1a8]
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00432610
test eax, eax
mov dword [esp + 0xf8], eax
je 0x404ccf
mov edi, dword [esp + 0xf8]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], eax
mov eax, edi
add eax, 0x24
mov dword [esp + 0x18], eax
lea eax, [esp + 0x1ac]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x24]
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
call fcn.0043fcf0
test eax, eax
je 0x4053c5
mov edx, dword [esp + 0xd8]
mov eax, dword [edx + 0x48]
test eax, eax
jne 0x4029cc
jmp 0x40283b
mov edx, dword [esp + 0xdc]
fld qword [edx + 0x10]
fadd qword [0xc100f8]
fstp qword [0xc100f8]
jmp 0x402acb
mov eax, dword [esp + 0xdc]
mov edx, dword [eax + 0x88]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x18], eax
movzx eax, word [edx + 0xe]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 4]
mov dword [esp + 8], 0xaee738
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
mov edx, dword [esp + 0x80]
mov ebx, dword [edx + 0x14c]
test ebx, ebx
je 0x4051ae
mov edi, dword [esp + 0xdc]
mov edx, dword [edi + 0x88]
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x404c7a
cld
cmp eax, eax
mov esi, edx
mov edi, ebx
mov ecx, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x403db7
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x18], eax
movzx eax, word [ebx + 0xe]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xaee738
mov dword [esp + 4], 4
mov dword [esp], 0x16
call fcn.00405fb0
mov dword [esp + 8], 0xaee768
mov dword [esp + 4], 0
mov dword [esp], 0x16
call fcn.00405fb0
mov dword [esp + 8], 0xaee1d3
mov dword [esp + 4], 4
mov dword [esp], 0x16
call fcn.00405fb0
mov dword [esp], 1
call sub.msvcrt.dll_exit
fldz
fcomp dword [0xc100c8]
fnstsw ax
sahf
jne 0x40250e
mov eax, dword [0xc10078]
test eax, eax
je 0x405ec5
mov dword [esp + 4], 0x2e
mov dword [esp], eax
call sub.msvcrt.dll_strrchr
test eax, eax
mov ebx, eax
je 0x40250e
mov dword [esp], eax
call sub.msvcrt.dll_strlen
cmp eax, 3
jbe 0x40250e
cmp eax, 5
ja 0x40250e
add ebx, 1
mov dword [esp + 4], 0xaee2de
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40513c
fld dword [0xc10068]
fcom dword [0xaf0598]
fnstsw ax
sahf
jbe 0x405117
fcom dword [0xaf059c]
fnstsw ax
sahf
jae 0x405117
fstp st(0)
mov dword [0xc100c8], 0x42700000
fld dword [0xc100c8]
fstp qword [esp + 4]
mov dword [esp], 0xaee71c
call sub.msvcrt.dll_printf
fld dword [0xc100c8]
jmp 0x402514
mov dword [esp + 8], 0xaeead0
mov dword [esp + 4], 2
mov dword [esp], 0x16
call fcn.00405fb0
xor eax, eax
mov dword [0xaaa458], eax
mov dword [0xaaa460], eax
jmp 0x402aa9
fxch st(1)
jmp 0x4047e1
mov dword [esp + 8], 0xaee06d
mov dword [esp + 4], 2
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x4034f9
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0x80]
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00412800
jmp 0x403784
mov edi, dword [0xc10074]
test edi, edi
je 0x405064
mov ebx, dword [esp + 0x80]
xor eax, eax
mov ecx, dword [0xc10070]
mov esi, dword [ebx + 0x100]
mov edx, dword [ebx + 0xfc]
mov ebx, dword [esp + 0x9c]
cmp dword [ebx + 0x18], 3
je 0x405054
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [0xc1006c]
mov dword [esp], eax
call fcn.004237b0
mov dword [esp + 0xb4], eax
jmp 0x402467
mov edx, dword [0xc10188]
test edx, edx
je 0x404f17
lea eax, [esp + 0x1e8]
mov dword [esp + 0x10], eax
lea ebx, [esp + 0x14c]
lea eax, [esp + 0x1e4]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov dword [esp], 0
call fcn.00425130
test eax, eax
js 0x404f17
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x100]
mov dword [esp + 8], eax
mov eax, dword [edx + 0xfc]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00419b50
mov dword [0xe15084], eax
mov esi, dword [0xe15084]
test esi, esi
jne 0x402467
mov esi, dword [esp + 0x9c]
xor eax, eax
mov ebx, dword [esp + 0x80]
cmp dword [esi + 0x18], 3
mov ecx, dword [ebx + 0x100]
mov edx, dword [ebx + 0xfc]
jne 0x404f52
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x18]
add eax, 0xa4
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00419b50
mov dword [0xe15084], eax
jmp 0x402467
mov edx, dword [esp + 0xd8]
mov dword [esp + 4], 7
mov eax, dword [edx + 0x84]
mov dword [esp], eax
call fcn.004d64a0
jmp 0x4029e8
mov edi, dword [esp + 0xd8]
mov ecx, dword [edi + 0x84]
jmp 0x4028d9
mov dword [esp], 0x12
call sub.msvcrt.dll_malloc
mov esi, dword [esp + 0xd8]
mov ecx, eax
mov dword [esi + 0x84], eax
mov word [eax + 0xc], 1
mov eax, dword [ebp + 0xc]
mov word [ecx + 0xe], 0x10
mov word [ecx + 0x10], 0
mov word [ecx], ax
mov eax, dword [ebp + 0x24]
mov word [ecx + 2], ax
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x2c]
mov dword [ecx + 8], eax
jmp 0x4028d9
movzx eax, word [ecx + 0xc]
mov ebx, dword [esp + 0xd8]
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x60], eax
mov eax, dword [ecx + 8]
mov dword [ebx + 0x64], eax
jmp 0x402900
mov dword [esp], 0xaee1b0
call fcn.0040ad30
test eax, eax
jne 0x401ce3
mov dword [esp], 0
call fcn.0040ad30
test eax, eax
je 0x404ccf
mov dword [esp + 8], 0xaee1e0
mov dword [esp + 4], 6
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x401ce3
mov ebx, dword [ebx + 0x58]
mov eax, dword [ebx + 0x18]
add eax, 0xa4
jmp 0x404e6b
mov eax, dword [esp + 0x9c]
cmp dword [eax + 0x18], 3
je 0x405091
mov ebx, dword [esp + 0x80]
xor eax, eax
mov ecx, dword [0xc10070]
mov esi, dword [ebx + 0x100]
mov edx, dword [ebx + 0xfc]
jmp 0x404e6b
mov ebx, dword [eax + 0x58]
mov edx, dword [ebx + 0x640]
test edx, edx
mov dword [esp + 0x84], edx
jle 0x405190
mov esi, dword [0xaa7028]
xor ecx, ecx
cmp dword [ebx + 0x644], esi
je 0x4050da
mov edx, ebx
xor ecx, ecx
add ecx, 1
cmp ecx, dword [esp + 0x84]
je 0x405190
mov eax, dword [edx + 0x654]
add edx, 0x10
cmp eax, esi
jne 0x4050bd
shl ecx, 4
lea eax, [ecx + ebx]
mov edx, dword [eax + 0x648]
lea edi, [esp + 0x1fa]
mov dword [0xc10074], edi
sar edx, 8
mov byte [esp + 0x1fa], dl
mov eax, dword [eax + 0x648]
mov byte [esp + 0x1fc], 0
mov byte [esp + 0x1fb], al
jmp 0x404e3f
fcom dword [0xaf05a0]
fnstsw ax
sahf
jbe 0x405171
fcomp dword [0xaf05a4]
fnstsw ax
sahf
jae 0x405173
mov dword [0xc100c8], 0x41f00000
jmp 0x404d94
mov dword [esp + 4], 0xaee2e2
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
je 0x404d64
mov dword [esp + 4], 0xaee2e7
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
jne 0x40250e
jmp 0x404d64
fstp st(0)
fld dword [0xc100c8]
fld st(0)
ftst
fnstsw ax
sahf
jbe 0x405189
fstp st(1)
jmp 0x404d9a
fstp st(0)
jmp 0x402514
mov eax, dword [esp + 0x80]
mov ecx, dword [0xc10070]
mov esi, dword [eax + 0x100]
mov edx, dword [eax + 0xfc]
jmp 0x405057
mov eax, dword [esp + 0xdc]
mov ebx, dword [esp + 0x80]
mov edx, dword [eax + 0x88]
mov ecx, dword [ebx + 0xfc]
cmp dword [edx + 4], ecx
jne 0x4051e4
mov eax, dword [edx + 8]
cmp eax, dword [ebx + 0x100]
jne 0x4051e4
mov eax, dword [edx + 0x10]
cmp eax, dword [ebx + 0xc]
je 0x403db7
mov esi, dword [esp + 0x80]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], 0x18
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], eax
jmp 0x404c97
mov dword [esp + 8], 0xaee7e1
mov dword [esp + 4], 0
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x404ccf
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], 0xaee7dc
mov dword [esp], 0
mov dword [esp + 8], eax
call fcn.004325c0
mov edx, dword [esp + 0x80]
mov dword [edx + 0x10c], eax
jmp case.0x404a57.5
mov edi, dword [esp + 0xdc]
mov dword [esp + 4], 0xaee7bd
mov dword [esp], 0
mov dword [esp + 8], edi
call fcn.004325c0
mov edx, dword [esp + 0x80]
mov dword [edx + 0x10c], eax
jmp case.0x404a57.5
mov esi, dword [esp + 0xdc]
mov dword [esp + 4], 0xaee7d8
mov dword [esp], 0
mov dword [esp + 8], esi
call fcn.004325c0
mov edi, dword [esp + 0x80]
mov dword [edi + 0x10c], eax
jmp case.0x404a57.5
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], 0xaee7cb
jmp 0x405237
mov esi, dword [esp + 0xdc]
mov dword [esp + 4], 0xaee7c5
jmp 0x405299
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], 0xaee7c1
jmp 0x404aba
mov ebx, dword [esp + 0xdc]
mov dword [esp + 4], 0xaee7b8
mov dword [esp], 0
mov dword [esp + 8], ebx
call fcn.004325c0
mov esi, dword [esp + 0x80]
mov dword [esi + 0x10c], eax
jmp case.0x404a57.5
fld st(0)
fadd qword [ebx + 0x28]
fsub dword [esp + 0x1c4]
fld st(2)
fcompp
fnstsw ax
sahf
jbe 0x404923
xor eax, eax
test esi, esi
mov ecx, dword [esp + 0xd8]
sete al
mov edx, dword [esp + 0xa8]
mov dword [esp + 8], eax
fsubp st(1)
mov eax, dword [esp + 0xac]
mov dword [esp + 0xc], 0
mov dword [esp + 4], edi
fstp dword [esp]
call fcn.00401940
jmp 0x402b2f
fstp st(0)
fldz
jmp 0x4047f9
fstp st(1)
jmp 0x40465b
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00524370
mov dword [0xaa7020], eax
jmp 0x4045ff
fld qword [esp + 0xe0]
sub ebx, 1
fadd st(2)
fst qword [esp + 0xe0]
fcomp st(1)
fnstsw ax
sahf
jbe 0x40539f
jmp 0x40455f
fstp st(0)
jmp 0x404393
mov dword [esp + 8], 0xaee8a4
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00405fb0
jmp 0x404ccf
mov ebx, eax
jmp 0x403eaf
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx + 0x84]
movzx eax, word [edx]
cmp eax, dword [ebp + 0xc]
jne 0x40542c
movzx eax, word [edx + 2]
cmp eax, dword [ebp + 0x24]
jne 0x40542c
mov eax, dword [edx + 4]
xor edx, edx
push edx
push eax
fild qword [esp]
add esp, 8
fild dword [ebp + 0x1c]
fmul dword [0xaa7034]
fcompp
fnstsw ax
sahf
je 0x402a7b
mov edi, dword [8]
xor edx, edx
movzx ecx, word [0xe]
mov eax, dword [4]
movzx ebx, word [2]
movzx esi, word [pe_dos_header]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ecx
push edx
push eax
fild qword [esp]
add esp, 8
fmul dword [0xaa7034]
fnstcw word [esp + 0x13e]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
movzx eax, word [esp + 0x13e]
mov ah, 0xc
mov word [esp + 0x13c], ax
fldcw word [esp + 0x13c]
fistp dword [esp + 0x14]
fldcw word [esp + 0x13e]
jmp 0x403f13
mov dword [esp + 8], 0xaee8d0
mov dword [esp + 4], 2
mov dword [esp], 1
call fcn.00405fb0
jmp 0x403dfb
mov dword [esp + 8], 0xaee9fc
mov dword [esp + 4], 0
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x404ccf
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x10c]
test ecx, ecx
je 0x405547
mov dword [esp + 8], 0xaeec26
mov dword [esp + 4], 4
mov dword [esp], 0x16
call fcn.00405fb0
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x10c]
mov edx, dword [eax + 0x4c]
test edx, edx
jne 0x405bea
mov dword [esp + 8], 0xaeec40
mov dword [esp + 4], 2
mov dword [esp], 0x16
call fcn.00405fb0
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x405565
mov ecx, dword [esp + 0xf8]
mov eax, dword [ecx + 0x50]
test eax, eax
je 0x405565
mov dword [esp], ecx
call eax
mov ecx, dword [0xc10198]
mov eax, dword [ecx + 0xcc]
test eax, eax
je 0x405580
mov dword [esp], ecx
call eax
mov ecx, dword [0xc10198]
mov edi, dword [ecx + 0xbc]
xor edx, edx
mov dword [esp + 0x114], edx
mov esi, dword [edi + 0x34]
mov ebx, dword [edi + 0x30]
mov eax, dword [edi + 0x28]
cmp esi, 0
mov dword [esp + 0x118], ebx
mov ebx, dword [edi + 0x24]
mov dword [esp + 0x11c], esi
mov dword [esp + 0x110], eax
jl 0x405a56
jle 0x405a48
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
sub eax, dword [esp + 0x118]
sbb edx, dword [esp + 0x11c]
test edx, edx
js 0x405a56
mov dword [edi + 0x24], eax
mov eax, dword [ecx + 0xc8]
test eax, eax
je 0x4055f5
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x40560f
mov edx, dword [esp + 0xb4]
mov dword [esp], edx
call fcn.004236c0
cmp dword [0xaaa448], 1
je 0x405771
mov eax, dword [esp + 0xdc]
fld qword [eax + 0x10]
mov ebx, dword [esp + 0xdc]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x18]
push ecx
push edx
fild qword [esp]
add esp, 8
fdiv st(1)
fxch st(1)
mov eax, dword [esp + 0x1ec]
fnstcw word [esp + 0x13e]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
movzx eax, word [esp + 0x13e]
mov dword [esp + 8], 0xaeeccc
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov ah, 0xc
mov word [esp + 0x13c], ax
fstp qword [esp + 0x20]
fldcw word [esp + 0x13c]
fist dword [esp + 0x14]
fldcw word [esp + 0x13e]
fmul qword [0xaf05e8]
fstp qword [esp + 0xc]
call fcn.00405fb0
test ebp, ebp
je 0x405730
mov esi, dword [esp + 0xd8]
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
fld qword [esi + 0x10]
push edx
push eax
fild qword [esp]
add esp, 8
fdiv st(1)
fxch st(1)
fnstcw word [esp + 0x13e]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
movzx eax, word [esp + 0x13e]
mov dword [esp + 8], 0xaeed20
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov ah, 0xc
mov word [esp + 0x13c], ax
fstp qword [esp + 0x20]
fldcw word [esp + 0x13c]
fist dword [esp + 0x14]
fldcw word [esp + 0x13e]
fmul qword [0xaf05e8]
fstp qword [esp + 0xc]
call fcn.00405fb0
mov dword [esp], ebp
call fcn.0043ff50
mov edx, dword [esp + 0x80]
mov dword [esp], edx
call fcn.00443920
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
call fcn.004c3fc0
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
call fcn.00528cd0
mov eax, dword [0xc101f8]
add esp, 0x208
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov ecx, dword [esp + 0xdc]
fld qword [ecx + 0x10]
fld dword [0xaf0600]
fcomp st(1)
fnstsw ax
sahf
jae 0x405626
xor esi, esi
mov eax, 0x28a00000
add ebx, dword [esp + 0x118]
adc esi, dword [esp + 0x11c]
sub ebx, dword [esp + 0x110]
sbb esi, dword [esp + 0x114]
xor edx, edx
sub eax, ebx
sbb edx, esi
push edx
push eax
fild qword [esp]
add esp, 8
fdivrp st(1)
fnstcw word [esp + 0x13e]
mov dword [esp + 0xc], 0xaeec6f
mov dword [esp + 8], 0xaeec78
movzx eax, word [esp + 0x13e]
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov ah, 0xc
mov word [esp + 0x13c], ax
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x10]
fldcw word [esp + 0x13e]
call fcn.00405fb0
mov eax, 0x2bc00000
xor edx, edx
sub eax, ebx
sbb edx, esi
push edx
push eax
fild qword [esp]
add esp, 8
mov edx, dword [esp + 0xdc]
fdiv qword [edx + 0x10]
fnstcw word [esp + 0x13e]
mov dword [esp + 0xc], 0xaeeca1
mov dword [esp + 8], 0xaeec78
movzx eax, word [esp + 0x13e]
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov ah, 0xc
mov word [esp + 0x13c], ax
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x10]
fldcw word [esp + 0x13e]
call fcn.00405fb0
mov eax, 0x32000000
xor edx, edx
sub eax, ebx
sbb edx, esi
push edx
push eax
fild qword [esp]
add esp, 8
mov ecx, dword [esp + 0xdc]
fdiv qword [ecx + 0x10]
fnstcw word [esp + 0x13e]
mov dword [esp + 0xc], 0xaeeca7
mov dword [esp + 8], 0xaeec78
movzx eax, word [esp + 0x13e]
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov ah, 0xc
mov word [esp + 0x13c], ax
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x10]
fldcw word [esp + 0x13e]
call fcn.00405fb0
mov eax, 0x51400000
xor edx, edx
sub eax, ebx
sbb edx, esi
push edx
push eax
fild qword [esp]
add esp, 8
mov edi, dword [esp + 0xdc]
fdiv qword [edi + 0x10]
fnstcw word [esp + 0x13e]
mov dword [esp + 0xc], 0xaeecad
mov dword [esp + 8], 0xaeec78
movzx eax, word [esp + 0x13e]
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov ah, 0xc
mov word [esp + 0x13c], ax
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x10]
fldcw word [esp + 0x13e]
call fcn.00405fb0
mov eax, 0x57800000
xor edx, edx
sub eax, ebx
sbb edx, esi
push edx
push eax
fild qword [esp]
add esp, 8
fdiv qword [edi + 0x10]
fnstcw word [esp + 0x13e]
mov dword [esp + 0xc], 0xaeecb7
mov dword [esp + 8], 0xaeec78
movzx eax, word [esp + 0x13e]
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov ah, 0xc
mov word [esp + 0x13c], ax
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x10]
fldcw word [esp + 0x13e]
call fcn.00405fb0
mov eax, 0x64000000
xor edx, edx
sub eax, ebx
sbb edx, esi
push edx
push eax
fild qword [esp]
add esp, 8
fdiv qword [edi + 0x10]
fnstcw word [esp + 0x13e]
mov dword [esp + 0xc], 0xaeecc1
mov dword [esp + 8], 0xaeec78
movzx eax, word [esp + 0x13e]
mov dword [esp + 4], 4
mov dword [esp], 0x16
mov ah, 0xc
mov word [esp + 0x13c], ax
fmul qword [0xaf05e8]
fldcw word [esp + 0x13c]
fistp dword [esp + 0x10]
fldcw word [esp + 0x13e]
call fcn.00405fb0
fld qword [edi + 0x10]
jmp 0x405626
cmp dword [esp + 0x118], 0
ja 0x4055bf
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], edi
call fcn.005284e0
mov ecx, dword [0xc10198]
jmp 0x4055e6
mov dword [esp + 0xc], 0xaee85e
mov dword [esp + 8], 0xaee241
mov dword [esp + 4], 4
mov dword [esp], 0x16
call fcn.00405fb0
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov dword [esp + 4], 0x28
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0xdc]
mov edx, dword [ebx + 0xfc]
mov dword [ecx + 0x88], eax
mov ecx, dword [ebx + 0x100]
mov dword [eax], 0x28
mov dword [eax + 4], edx
mov edx, dword [ebx + 0xc]
mov word [eax + 0xc], 1
mov dword [eax + 8], ecx
imul ecx, dword [eax + 4]
mov dword [eax + 0x10], edx
mov word [eax + 0xe], 0x18
lea ecx, [ecx + ecx*2]
mov dword [eax + 0x14], ecx
jmp 0x4025f8
mov dword [esp + 8], 0xaee703
mov dword [esp + 4], 0
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x404ccf
mov eax, dword [0xc10078]
mov dword [esp + 8], 0xaee6e4
mov dword [esp + 4], 0
mov dword [esp], 0x16
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x404ccf
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xaee934
mov dword [esp + 4], 1
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x404ccf
mov dword [esp + 8], 0xaee87c
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.00405fb0
jmp 0x404ccf
fld st(0)
fadd qword [ebx + 0x28]
fsub dword [esp + 0x1c4]
fld st(2)
fcompp
fnstsw ax
sahf
jbe 0x403a98
lea edx, [esp + 0x1bc]
mov ecx, dword [esp + 0xd8]
mov eax, esi
mov dword [esp + 4], edx
fsubp st(1)
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
fstp dword [esp]
call fcn.00401940
jmp 0x40326d
mov dword [esp + 8], 0
mov dword [esp + 4], 0xd
mov dword [esp], eax
call dword [eax + 8]
jmp 0x405547
mov eax, dword [0xc10088]
mov eax, dword [eax]
mov dword [esp + 8], 0xaee6c4
mov dword [esp + 4], 1
mov dword [esp], 1
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x402377
mov dword [esp + 8], 0xaee638
mov dword [esp + 4], 0
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x404ccf
cmp dword [0xaa7020], 0xfffffffe
jne 0x405c77
mov dword [esp + 8], 0xaee5bc
mov dword [esp + 4], 1
mov dword [esp], 0x16
call fcn.00405fb0
mov dword [esp + 8], 0xaee5e8
mov dword [esp + 4], 0
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x404ccf
mov dword [esp + 8], 0xaee524
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00405fb0
jmp 0x404ccf
mov dword [esp + 8], 0xaee506
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00405fb0
jmp 0x404ccf
mov dword [esp + 8], 0xaee384
mov dword [esp + 4], 0
mov dword [esp], 5
call fcn.00405fb0
mov dword [esp + 8], 0xaee4f0
mov dword [esp + 4], 0
mov dword [esp], 5
call fcn.00405fb0
jmp 0x404ccf
mov dword [esp + 8], 0xaee4ad
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00405fb0
jmp 0x404ccf
mov dword [esp + 8], 0xaee498
mov dword [esp + 4], 0
mov dword [esp], 1
call fcn.00405fb0
jmp 0x404ccf
mov eax, dword [0xc10080]
mov dword [esp + 8], 0xaee441
mov dword [esp + 4], 1
mov dword [esp], 1
mov dword [esp + 0xc], eax
call fcn.00405fb0
jmp 0x401f01
xor ebx, ebx
mov esi, dword [0xaa7040]
cmp dword [0xc10260], 1
mov dword [esp], 0xaee45e
setg bl
call fcn.00401590
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0057f3c0
test eax, eax
mov dword [0xe15060], eax
jne 0x401f01
xor eax, eax
cmp dword [0xc10260], 1
setg al
mov dword [esp + 8], eax
mov eax, dword [0xaa7040]
mov dword [esp], 0xaee470
mov dword [esp + 4], eax
call fcn.0057f3c0
mov dword [0xe15060], eax
jmp 0x401f01
mov dword [esp + 8], 0xaee384
mov dword [esp + 4], 1
mov dword [esp], 5
call fcn.00405fb0
jmp 0x401e42
mov eax, dword [0xc10024]
add ebx, 1
test eax, eax
je 0x405e8c
sub eax, 1
jne 0x401d91
mov dword [esp + 4], 0xaee2de
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
je 0x401d91
mov dword [esp + 4], 0xaee2e2
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
je 0x401d91
mov dword [esp + 4], 0xaee2e7
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
je 0x401d91
mov dword [esp + 8], 0xaee2ec
mov dword [esp + 4], 2
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x401d91
mov dword [esp + 4], 0xaee2a4
mov dword [esp], ebx
call sub.msvcrt.dll__stricmp
test eax, eax
je 0x401d91
mov dword [esp + 8], 0xaee2a8
mov dword [esp + 4], 2
mov dword [esp], 0x16
call fcn.00405fb0
jmp 0x401d91
mov dword [esp + 0xc], 0xaee270
jmp 0x405a81
mov dword [esp + 0xc], 0xaee253
jmp 0x405a81
mov dword [esp + 0xc], 0xaee22f
jmp 0x405a81
mov dword [esp + 8], 0xaee213
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.00405fb0
jmp 0x401d35