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

Disassembly:
sub esp, 0x80
mov ecx, dword [0x52b3ac]
fld dword [esp + 0x8c]
push ebx
fadd qword [0x4a6ba0]
mov ebx, eax
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
push ebp
push esi
mov esi, dword [eax + 4]
imul esi, dword [esp + 0x94]
add esi, dword [eax + 0x18]
mov eax, dword [ecx]
mov ecx, dword [eax + 4]
imul ecx, dword [0x52b3b0]
add ecx, dword [eax + 0x18]
mov edx, dword [esi + 0x2c]
push edi
sub esp, 8
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0xa8]
mov dword [esp + 0x80], eax
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
fld dword [esp + 0xa8]
mov dword [esp + 0x58], eax
fld st(0)
fld qword [0x4a6c18]
mov eax, ebx
and eax, 0xf800
fmul st(1), st(0)
mov dword [esp + 0x84], eax
fxch st(1)
mov eax, ebx
and eax, 0x7e0
mov dword [esp + 0x88], eax
mov eax, ebx
and eax, 0x1f
mov dword [esp + 0x8c], eax
call fcn.00499690
fld qword [0x4a6e10]
mov ebp, eax
mov dword [esp + 0x5c], eax
test ebp, ebp
jge 0x431fb4
fld dword [esp + 0xa4]
neg ebp
fadd st(1)
mov dword [esp + 0x5c], ebp
fstp dword [esp + 0xa4]
fld dword [esp + 0xac]
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.00499690
mov dword [esp + 0x48], eax
test eax, eax
jge 0x431fe4
fadd dword [esp + 0xa4]
neg eax
mov dword [esp + 0x48], eax
fstp dword [esp + 0xa4]
jmp 0x431fe6
fstp st(0)
test ebp, ebp
je 0x432965
test eax, eax
je 0x432965
fldz
fld dword [esp + 0xa4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x43203a
fld qword [0x4a6e08]
fdivr st(1)
call fcn.00499690
imul eax, eax, 0xfffffe98
mov ecx, 0x168
sub ecx, eax
mov dword [esp + 0x70], ecx
fiadd dword [esp + 0x70]
fstp dword [esp + 0xa4]
fld dword [esp + 0xa4]
fmul qword [0x4a6e00]
call fcn.00499690
cdq
mov ecx, 0xb40
idiv ecx
mov edi, edx
test edi, edi
jne 0x4320c0
fmul dword [esp + 0xb4]
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x94]
sub esp, 0x10
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp dword [esp + 0xc]
fchs
fmul dword [esp + 0xc0]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp dword [esp + 8]
fld dword [esp + 0xb0]
fstp dword [esp + 4]
fld dword [esp + 0xac]
fstp dword [esp]
call fcn.00419170
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp edi, 0x5a0
jne 0x432135
fchs
mov eax, dword [esp + 0x98]
fmul dword [esp + 0xb4]
mov edi, dword [esp + 0x94]
sub esp, 0x10
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp dword [esp + 0xc]
fmul dword [esp + 0xc0]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp dword [esp + 8]
fld dword [esp + 0xb0]
fstp dword [esp + 4]
fld dword [esp + 0xac]
fstp dword [esp]
call fcn.00419170
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], ecx
lea eax, [edi + 0x2d0]
cdq
mov ecx, 0xb40
idiv ecx
mov ecx, dword [0x52b310]
mov eax, 0xb60b60b7
mov ebx, dword [esi]
mov dword [esp + 0x68], ebx
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x54], edx
imul edi
fild dword [esp + 0x54]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fld qword [0x4a6df8]
fmul st(1), st(0)
fxch st(1)
add edx, edi
sar edx, 0xb
fstp dword [esp + 0x30]
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xb40
mov edx, edi
sub edx, eax
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x54]
shl eax, 0x10
cdq
fild dword [esp + 0x50]
idiv ebp
fstp dword [esp + 0x64]
fmul dword [esp + 0x64]
fstp dword [esp + 0x2c]
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
fld dword [esp + 0xb0]
fld st(0)
fdivp st(2)
fxch st(1)
call fcn.00499690
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x50]
shl eax, 0x10
cdq
idiv dword [esp + 0x48]
mov dword [esp + 0x70], eax
fidivr dword [esp + 0x70]
call fcn.00499690
cmp edi, 0x2d0
mov dword [esp + 0x50], eax
jge 0x432285
mov eax, dword [esp + 0x38]
mov ecx, eax
neg ecx
mov dword [esp + 0x70], ecx
fild dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
mov edx, ecx
neg edx
fstp dword [esp + 0x20]
mov dword [esp + 0x70], edx
fld dword [esp + 0x20]
sub ebx, eax
mov eax, dword [esp + 0x34]
fst dword [esp + 0x18]
fild dword [esp + 0x70]
dec ebx
mov dword [esp + 0x70], ebx
sub eax, ecx
fstp dword [esp + 0x1c]
dec eax
fld dword [esp + 0x1c]
fst dword [esp + 0x14]
fild dword [esp + 0x70]
mov dword [esp + 0x70], eax
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fst dword [esp + 0x28]
fstp dword [esp + 0x20]
fstp dword [esp + 0x24]
fild dword [esp + 0x70]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x1c]
fstp dword [esp + 0x40]
fstp dword [esp + 0x44]
jmp 0x432405
cmp edi, 0x5a0
jge 0x4322fc
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
sub ebx, eax
dec ebx
mov dword [esp + 0x70], ebx
fild dword [esp + 0x70]
mov edx, ecx
neg edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x34]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
sub edx, ecx
fst dword [esp + 0x18]
dec edx
fild dword [esp + 0x70]
mov dword [esp + 0x70], edx
neg eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x14]
fxch st(1)
fstp dword [esp + 0x28]
fild dword [esp + 0x70]
mov dword [esp + 0x70], eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x24]
fild dword [esp + 0x70]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
jmp 0x4323f5
cmp edi, 0x870
jge 0x43237f
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
sub ebx, eax
dec ebx
mov dword [esp + 0x70], ebx
fild dword [esp + 0x70]
sub edx, ecx
dec edx
mov dword [esp + 0x70], edx
fstp dword [esp + 0x20]
neg eax
fld dword [esp + 0x20]
neg ecx
fst dword [esp + 0x18]
fild dword [esp + 0x70]
mov dword [esp + 0x70], eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x14]
fild dword [esp + 0x70]
mov dword [esp + 0x70], ecx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fst dword [esp + 0x28]
fstp dword [esp + 0x20]
fstp dword [esp + 0x24]
fild dword [esp + 0x70]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x1c]
fstp dword [esp + 0x40]
fstp dword [esp + 0x44]
jmp 0x432405
cmp edi, 0xb40
jge 0x432965
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ecx, eax
neg ecx
mov dword [esp + 0x70], ecx
fild dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
sub edx, ecx
dec edx
fstp dword [esp + 0x20]
mov dword [esp + 0x70], edx
fld dword [esp + 0x20]
neg ecx
fst dword [esp + 0x18]
sub ebx, eax
fild dword [esp + 0x70]
mov dword [esp + 0x70], ecx
dec ebx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x14]
fxch st(1)
fstp dword [esp + 0x28]
fild dword [esp + 0x70]
mov dword [esp + 0x70], ebx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x24]
fild dword [esp + 0x70]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fst dword [esp + 0x20]
fstp dword [esp + 0x44]
fstp dword [esp + 0x1c]
fstp dword [esp + 0x40]
fld dword [esp + 0x18]
sub esp, 8
fmul st(2)
fstp dword [esp + 0x20]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x30]
fmul st(2)
fstp dword [esp + 0x30]
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x28]
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fmul dword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [esp + 0x1c]
fmul dword [esp + 0x38]
fld dword [esp + 0x20]
fmul dword [esp + 0x34]
fsubp st(1)
fmul dword [esp + 0xbc]
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x24]
fmul dword [esp + 0x38]
mov edi, eax
fld dword [esp + 0x28]
mov dword [esp + 0x74], edi
fmul dword [esp + 0x34]
fsubp st(1)
fmul dword [esp + 0xbc]
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x2c]
fmul dword [esp + 0x38]
mov ebx, eax
fld dword [esp + 0x30]
mov dword [esp + 0x78], ebx
fmul dword [esp + 0x34]
fsubp st(1)
fmul dword [esp + 0xbc]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x48]
fmul dword [esp + 0xb4]
mov ebp, eax
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fmul dword [esp + 0x38]
fld dword [esp + 0x4c]
fmul dword [esp + 0xb0]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fmul dword [esp + 0x34]
fsubp st(1)
fmul dword [esp + 0xbc]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov dword [esp + 0x54], eax
mov eax, ebp
sub eax, edi
mov dword [esp + 0x44], eax
je 0x4325ff
mov eax, ebp
sub eax, ebx
mov dword [esp + 0x74], eax
je 0x4325ff
fld dword [esp + 0x24]
fld dword [esp + 0x2c]
fld st(0)
fmulp st(2)
fld dword [esp + 0x28]
fld dword [esp + 0x30]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld dword [esp + 0x14]
fmul st(2)
fld dword [esp + 0x18]
fmul st(4)
faddp st(1)
fsubr st(1)
fld qword [0x4a6da0]
fmul st(1), st(0)
fld dword [esp + 0xb0]
fld st(0)
fmulp st(3)
fild dword [esp + 0x44]
fdivp st(3)
fxch st(2)
call fcn.00499690
mov ebx, eax
mov dword [esp + 0x40], eax
test ebx, ebx
jge 0x4325bf
neg ebx
mov dword [esp + 0x40], ebx
fld dword [esp + 0x1c]
fmulp st(4)
fld dword [esp + 0x20]
fmulp st(5)
fxch st(3)
faddp st(4)
fxch st(3)
fsub st(1)
fmul st(2)
fmul st(3)
fidiv dword [esp + 0x74]
call fcn.00499690
mov edi, eax
mov dword [esp + 0x44], eax
test edi, edi
jge 0x4325f0
neg edi
mov dword [esp + 0x44], edi
fmulp st(1)
fmulp st(1)
call fcn.00499690
mov dword [esp + 0x18], eax
jmp 0x432660
fld dword [esp + 0x14]
xor edi, edi
fld dword [esp + 0x2c]
xor ebx, ebx
fld st(0)
mov dword [esp + 0x44], edi
fmulp st(2)
mov dword [esp + 0x40], ebx
fld dword [esp + 0x18]
fld dword [esp + 0x30]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld qword [0x4a6da0]
fmul st(1), st(0)
fld dword [esp + 0xb0]
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.00499690
fld dword [esp + 0x1c]
fmulp st(3)
mov dword [esp + 0x18], eax
fld dword [esp + 0x20]
fmulp st(4)
fxch st(2)
faddp st(3)
fxch st(2)
fmulp st(1)
fmulp st(1)
call fcn.00499690
mov ecx, dword [0x52be04]
sub ecx, dword [esp + 0x58]
mov dword [esp + 0x20], eax
cmp ebp, ecx
jge 0x43269b
mov edx, dword [esp + 0x18]
cmp ebp, dword [esp + 0x6c]
jge 0x432680
sub edx, ebx
jmp 0x432682
add edx, edi
cmp ebp, dword [esp + 0x70]
jge 0x43268c
add eax, edi
jmp 0x43268e
sub eax, ebx
inc ebp
cmp ebp, ecx
jl 0x432676
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
mov eax, dword [0x52be08]
sub eax, dword [esp + 0x58]
cmp dword [esp + 0x54], eax
jle 0x4326ae
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x94]
push eax
mov eax, edi
call fcn.00417890
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
je 0x432969
mov ecx, dword [0x52b3b0]
mov eax, dword [0x52b3ac]
push ecx
call fcn.00417890
mov ebx, dword [edi + 0x14]
add esp, 4
mov dword [esp + 0x2c], eax
test ebx, ebx
jne 0x432702
mov edx, dword [esi + 0x30]
push edx
mov eax, edi
call fcn.004177d0
add esp, 4
jmp 0x432707
call fcn.00413ac0
cmp ebp, dword [esp + 0x54]
mov dword [esp + 0x30], ebp
jg 0x432969
fild dword [esp + 0x5c]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
shl eax, 0x10
fstp dword [esp + 0x74]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x58]
fild dword [esp + 0x48]
add eax, ebp
shl ebx, 0x10
fstp dword [esp + 0x38]
add eax, eax
fld qword [0x4a6df0]
add eax, eax
fld dword [esp + 0x74]
mov dword [esp + 0x5c], ebx
fld dword [esp + 0x60]
mov dword [esp + 0x58], eax
fld dword [esp + 0x64]
jmp 0x432761
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x20]
mov eax, dword [0x52be18]
mov ecx, dword [0x52be3c]
sar esi, 0x10
mov edx, ebp
sub edx, esi
sar edi, 0x10
cmp edx, eax
mov dword [esp + 0x64], esi
jle 0x432792
mov esi, ebp
sub esi, eax
mov dword [esp + 0x64], esi
mov eax, ebp
sub eax, edi
cmp eax, ecx
jge 0x43279e
mov edi, ebp
sub edi, ecx
fild dword [esp + 0x64]
fdiv dword [esp + 0xb0]
fild dword [esp + 0x30]
fdiv dword [esp + 0xb4]
fld st(3)
fmul st(2)
fld st(3)
fmul st(2)
fsubp st(1)
fmul st(6)
fdiv st(5)
call fcn.00499690
fmul st(3)
fld st(2)
sub ebx, eax
fmulp st(2)
faddp st(1)
fmul st(4)
fdiv dword [esp + 0x38]
call fcn.00499690
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x7c]
sub edx, eax
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x58]
mov eax, dword [eax + ecx]
sub ebp, esi
lea eax, [eax + ebp*2]
add eax, dword [esp + 0x2c]
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x48], eax
lea eax, [ecx + 1]
mov ecx, eax
imul eax, dword [esp + 0x50]
imul ecx, dword [esp + 0x4c]
add eax, edx
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x64], eax
jl 0x432858
sar eax, 0x10
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x74], eax
jge 0x432843
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x68]
jge 0x432843
cmp dword [esp + 0x74], 0
jl 0x432843
test eax, eax
jge 0x4328ea
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x50]
sub ecx, dword [esp + 0x4c]
dec edi
cmp edi, esi
mov dword [esp + 0x64], eax
jge 0x43281c
mov ebp, dword [esp + 0x48]
sub edi, esi
inc edi
test edi, edi
jle 0x4328d6
mov dword [esp + 0x64], edi
mov esi, dword [esp + 0x80]
mov eax, edx
sar eax, 0x10
mov ecx, ebx
sar ecx, 0x10
add ecx, dword [esi + eax*4]
mov eax, dword [esp + 0x28]
cmp byte [ecx + eax], 0
je 0x4328c4
movzx ecx, word [ebp]
mov eax, ecx
and eax, 0xf800
sub eax, dword [esp + 0x84]
jns 0x43289b
xor eax, eax
mov esi, ecx
and esi, 0x7e0
sub esi, dword [esp + 0x88]
jns 0x4328ae
xor esi, esi
and ecx, 0x1f
sub ecx, dword [esp + 0x8c]
jns 0x4328bc
xor ecx, ecx
or eax, esi
or eax, ecx
mov word [ebp], ax
add ebx, dword [esp + 0x4c]
add edx, dword [esp + 0x50]
sub ebp, 2
sub dword [esp + 0x64], 1
jne 0x432867
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x6c]
jge 0x43292d
mov ecx, dword [esp + 0x40]
sub dword [esp + 0x18], ecx
jmp 0x432935
cmp esi, edi
mov ebp, dword [esp + 0x48]
jg 0x43285c
mov ecx, edx
sar ecx, 0x10
cmp ecx, dword [esp + 0x34]
jge 0x432918
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x68]
jge 0x432918
test ecx, ecx
jl 0x432918
test eax, eax
jge 0x43285c
add ebx, dword [esp + 0x4c]
add edx, dword [esp + 0x50]
inc esi
sub ebp, 2
cmp esi, edi
jle 0x4328f6
jmp 0x43285c
mov edx, dword [esp + 0x44]
add dword [esp + 0x18], edx
cmp eax, dword [esp + 0x70]
jge 0x432945
mov ecx, dword [esp + 0x44]
add dword [esp + 0x20], ecx
jmp 0x43294d
mov edx, dword [esp + 0x40]
sub dword [esp + 0x20], edx
add dword [esp + 0x58], 4
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x30], eax
jle 0x43275d
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret