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

Disassembly:
sub esp, 0x68
mov eax, dword [esp + 0x6c]
fld dword [esp + 0x74]
mov eax, dword [eax]
fadd qword [0x4a6ba0]
mov ecx, dword [0x52b3ac]
mov ecx, dword [ecx]
push ebx
mov ebx, dword [eax + 4]
push ebp
push esi
push edi
mov edi, dword [esp + 0x80]
imul ebx, edi
add ebx, dword [eax + 0x18]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add eax, dword [ecx + 0x18]
mov edx, dword [ebx + 0x2c]
sub esp, 8
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x90]
mov dword [esp + 0x64], eax
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
fld dword [esp + 0x90]
fld st(0)
mov dword [esp + 0x4c], eax
fld qword [0x4a6c18]
fmul st(1), st(0)
fxch st(1)
call fcn.00499690
fld qword [0x4a6e10]
mov ebp, eax
mov dword [esp + 0x50], eax
test ebp, ebp
jge 0x427daa
fld dword [esp + 0x8c]
neg ebp
fadd st(1)
mov dword [esp + 0x50], ebp
fstp dword [esp + 0x8c]
fld dword [esp + 0x94]
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.00499690
mov dword [esp + 0x40], eax
test eax, eax
jge 0x427dda
fadd dword [esp + 0x8c]
neg eax
mov dword [esp + 0x40], eax
fstp dword [esp + 0x8c]
jmp 0x427ddc
fstp st(0)
test ebp, ebp
je 0x42885f
test eax, eax
je 0x42885f
fldz
fld dword [esp + 0x8c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x427e30
fld qword [0x4a6e08]
fdivr st(1)
call fcn.00499690
imul eax, eax, 0xfffffe98
mov ecx, 0x168
sub ecx, eax
mov dword [esp + 0x68], ecx
fiadd dword [esp + 0x68]
fstp dword [esp + 0x8c]
fld dword [esp + 0x8c]
fmul qword [0x4a6e00]
call fcn.00499690
cdq
mov ecx, 0xb40
idiv ecx
mov esi, edx
test esi, esi
jne 0x427e7c
fmul dword [esp + 0x9c]
sub esp, 0x10
fstp dword [esp + 0xa4]
fld dword [esp + 0xa4]
fstp dword [esp + 0xc]
fmul dword [esp + 0xa8]
fstp dword [esp + 0xa4]
fld dword [esp + 0xa4]
jmp 0x427eb9
cmp esi, 0x5a0
jne 0x427eeb
fchs
sub esp, 0x10
fmul dword [esp + 0xac]
fstp dword [esp + 0xa4]
fld dword [esp + 0xa4]
fstp dword [esp + 0xc]
fchs
fmul dword [esp + 0xa8]
fstp dword [esp + 0xa4]
fld dword [esp + 0xa4]
fstp dword [esp + 8]
mov eax, edi
fld dword [esp + 0x98]
mov edi, dword [esp + 0x8c]
fstp dword [esp + 4]
fld dword [esp + 0x94]
fstp dword [esp]
call fcn.004182f0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], ecx
lea eax, [esi + 0x2d0]
cdq
mov ecx, 0xb40
idiv ecx
mov ecx, dword [0x52b310]
mov eax, 0xb60b60b7
mov edi, dword [ebx]
mov dword [esp + 0x60], edi
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x88], edx
imul esi
fild dword [esp + 0x88]
fstp dword [esp + 0x54]
fld dword [esp + 0x54]
fld qword [0x4a6df8]
fmul st(1), st(0)
fxch st(1)
add edx, esi
sar edx, 0xb
fstp dword [esp + 0x28]
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xb40
mov edx, esi
sub edx, eax
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x88]
shl eax, 0x10
cdq
fild dword [esp + 0x84]
idiv ebp
fstp dword [esp + 0x58]
fmul dword [esp + 0x58]
fstp dword [esp + 0x24]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fld dword [esp + 0x98]
fld st(0)
fdivp st(2)
fxch st(1)
call fcn.00499690
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x84]
shl eax, 0x10
cdq
idiv dword [esp + 0x40]
mov dword [esp + 0x88], eax
fidivr dword [esp + 0x88]
call fcn.00499690
cmp esi, 0x2d0
mov dword [esp + 0x48], eax
jge 0x42806f
mov eax, dword [esp + 0x30]
mov ecx, eax
neg ecx
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
mov ecx, dword [esp + 0x34]
mov edx, ecx
neg edx
fstp dword [esp + 0x18]
mov dword [esp + 0x88], edx
fld dword [esp + 0x18]
sub edi, eax
mov eax, dword [esp + 0x2c]
fst dword [esp + 0x84]
fild dword [esp + 0x88]
dec edi
mov dword [esp + 0x68], edi
sub eax, ecx
fstp dword [esp + 0x14]
dec eax
fld dword [esp + 0x14]
fst dword [esp + 0x88]
fild dword [esp + 0x68]
mov dword [esp + 0x68], eax
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x20]
fstp dword [esp + 0x18]
fstp dword [esp + 0x1c]
fild dword [esp + 0x68]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x14]
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
jmp 0x42822d
cmp esi, 0x5a0
jge 0x4280fc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
sub edi, eax
dec edi
mov dword [esp + 0x88], edi
fild dword [esp + 0x88]
mov edx, ecx
neg edx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x2c]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
sub edx, ecx
fst dword [esp + 0x84]
dec edx
fild dword [esp + 0x88]
mov dword [esp + 0x68], edx
neg eax
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x88]
fxch st(1)
fstp dword [esp + 0x20]
fild dword [esp + 0x68]
mov dword [esp + 0x68], eax
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x1c]
fild dword [esp + 0x68]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
jmp 0x42821d
cmp esi, 0x870
jge 0x428195
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
sub edi, eax
dec edi
mov dword [esp + 0x88], edi
fild dword [esp + 0x88]
sub edx, ecx
dec edx
mov dword [esp + 0x88], edx
fstp dword [esp + 0x18]
neg eax
fld dword [esp + 0x18]
mov dword [esp + 0x68], eax
fst dword [esp + 0x84]
neg ecx
fild dword [esp + 0x88]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x88]
fild dword [esp + 0x68]
mov dword [esp + 0x68], ecx
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x20]
fstp dword [esp + 0x18]
fstp dword [esp + 0x1c]
fild dword [esp + 0x68]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x14]
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
jmp 0x42822d
cmp esi, 0xb40
jge 0x42885f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, eax
neg ecx
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
mov ecx, dword [esp + 0x34]
sub edx, ecx
dec edx
fstp dword [esp + 0x18]
mov dword [esp + 0x88], edx
fld dword [esp + 0x18]
neg ecx
fst dword [esp + 0x84]
mov dword [esp + 0x68], ecx
fild dword [esp + 0x88]
sub edi, eax
dec edi
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x88]
fxch st(1)
fstp dword [esp + 0x20]
fild dword [esp + 0x68]
mov dword [esp + 0x68], edi
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x1c]
fild dword [esp + 0x68]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x18]
fstp dword [esp + 0x3c]
fstp dword [esp + 0x14]
fstp dword [esp + 0x38]
fld dword [esp + 0x84]
sub esp, 8
fmul st(2)
fstp dword [esp + 0x8c]
fld dword [esp + 0x90]
fmul st(1)
fstp dword [esp + 0x90]
fld dword [esp + 0x28]
fmul st(2)
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x20]
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x20]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x90]
fmul dword [esp + 0x30]
fld dword [esp + 0x8c]
fmul dword [esp + 0x2c]
fsubp st(1)
fmul dword [esp + 0xa4]
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x1c]
fmul dword [esp + 0x30]
mov esi, eax
fld dword [esp + 0x20]
mov dword [esp + 0x6c], esi
fmul dword [esp + 0x2c]
fsubp st(1)
fmul dword [esp + 0xa4]
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x24]
fmul dword [esp + 0x30]
mov edi, eax
fld dword [esp + 0x28]
mov dword [esp + 0x70], edi
fmul dword [esp + 0x2c]
fsubp st(1)
fmul dword [esp + 0xa4]
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x40]
fmul dword [esp + 0x9c]
mov ebp, eax
fstp dword [esp + 0x9c]
fld dword [esp + 0x9c]
fmul dword [esp + 0x30]
fld dword [esp + 0x44]
fmul dword [esp + 0x98]
fstp dword [esp + 0x9c]
fld dword [esp + 0x9c]
fmul dword [esp + 0x2c]
fsubp st(1)
fmul dword [esp + 0xa4]
fstp dword [esp + 0x9c]
fld dword [esp + 0x9c]
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov dword [esp + 0x3c], eax
mov eax, ebp
sub eax, esi
mov dword [esp + 0x94], eax
je 0x42846f
mov eax, ebp
sub eax, edi
mov dword [esp + 0x6c], eax
je 0x42846f
fld dword [esp + 0x1c]
fld dword [esp + 0x24]
fld st(0)
fmulp st(2)
fld dword [esp + 0x20]
fld dword [esp + 0x28]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld dword [esp + 0x88]
fmul st(2)
fld dword [esp + 0x84]
fmul st(4)
faddp st(1)
fsubr st(1)
fld qword [0x4a6da0]
fmul st(1), st(0)
fld dword [esp + 0x98]
fld st(0)
fmulp st(3)
fild dword [esp + 0x94]
fdivp st(3)
fxch st(2)
call fcn.00499690
mov edi, eax
mov dword [esp + 0x90], eax
test edi, edi
jge 0x42841d
neg edi
mov dword [esp + 0x90], edi
fld dword [esp + 0x14]
fmulp st(4)
fld dword [esp + 0x18]
fmulp st(5)
fxch st(3)
faddp st(4)
fxch st(3)
fsub st(1)
fmul st(2)
fmul st(3)
fidiv dword [esp + 0x6c]
call fcn.00499690
mov esi, eax
mov dword [esp + 0x94], eax
test esi, esi
jge 0x428454
neg esi
mov dword [esp + 0x94], esi
fmulp st(1)
fmulp st(1)
call fcn.00499690
mov ecx, eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], ecx
jmp 0x4284e8
fld dword [esp + 0x88]
xor esi, esi
fld dword [esp + 0x24]
xor edi, edi
fld st(0)
mov dword [esp + 0x94], esi
fmulp st(2)
mov dword [esp + 0x90], edi
fld dword [esp + 0x84]
fld dword [esp + 0x28]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld qword [0x4a6da0]
fmul st(1), st(0)
fld dword [esp + 0x98]
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.00499690
fld dword [esp + 0x14]
fmulp st(3)
mov dword [esp + 0x88], eax
fld dword [esp + 0x18]
fmulp st(4)
fxch st(2)
faddp st(3)
fxch st(2)
fmulp st(1)
fmulp st(1)
call fcn.00499690
mov dword [esp + 0x84], eax
mov ecx, eax
mov eax, dword [0x52be04]
sub eax, dword [esp + 0x4c]
cmp ebp, eax
jge 0x42852b
mov edx, dword [esp + 0x88]
lea esp, [esp]
cmp ebp, dword [esp + 0x64]
jge 0x42850a
sub edx, edi
jmp 0x42850c
add edx, esi
cmp ebp, dword [esp + 0x68]
jge 0x428516
add ecx, esi
jmp 0x428518
sub ecx, edi
inc ebp
cmp ebp, eax
jl 0x428500
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov eax, dword [0x52be08]
sub eax, dword [esp + 0x4c]
cmp dword [esp + 0x3c], eax
jle 0x42853e
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
push eax
mov eax, esi
call fcn.00417890
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x428863
mov ecx, dword [0x52b3b0]
mov eax, dword [0x52b3ac]
push ecx
call fcn.00417890
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x14]
add esp, 4
test eax, eax
jne 0x428593
mov edx, dword [ebx + 0x30]
push edx
mov eax, esi
call fcn.004177d0
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x42859e
mov ebx, eax
mov dword [esp + 0x38], eax
call fcn.00413ac0
cmp ebp, dword [esp + 0x3c]
mov dword [esp + 0x80], ebp
jg 0x428863
mov edx, dword [esp + 0x5c]
fild dword [esp + 0x50]
mov eax, dword [0x52be3c]
mov ecx, dword [0x52be18]
mov ebx, dword [esp + 0x30]
fstp dword [esp + 0x7c]
fild dword [esp + 0x40]
sub eax, edx
sub ecx, edx
mov edx, dword [esp + 0x34]
shl edx, 0x10
fstp dword [esp + 0x40]
fld qword [0x4a6df0]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x4c]
fld dword [esp + 0x7c]
fld dword [esp + 0x54]
add ebp, edx
fld dword [esp + 0x58]
shl ebx, 0x10
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x50], ebp
jmp 0x42861e
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x84]
sar esi, 0x10
sar edi, 0x10
cmp esi, eax
mov dword [esp + 0x7c], esi
jge 0x428640
mov esi, eax
mov dword [esp + 0x7c], eax
cmp edi, ecx
jle 0x428646
mov edi, ecx
fild dword [esp + 0x7c]
fdiv dword [esp + 0x98]
fild dword [esp + 0x80]
fdiv dword [esp + 0x9c]
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 + 0x40]
call fcn.00499690
mov edx, dword [esp + 0x34]
sub edx, eax
mov eax, dword [esp + 0x5c]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + ebp]
lea eax, [eax + ecx*2]
add eax, dword [esp + 0x20]
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x7c], eax
lea eax, [ecx + 1]
mov ecx, eax
imul eax, dword [esp + 0x48]
imul ecx, dword [esp + 0x44]
add eax, edx
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x58], eax
jl 0x428738
sar eax, 0x10
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x54], eax
jge 0x4286eb
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x4286eb
cmp dword [esp + 0x54], 0
jl 0x4286eb
test eax, eax
jge 0x428702
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x48]
sub ecx, dword [esp + 0x44]
dec edi
cmp edi, esi
mov dword [esp + 0x58], eax
jge 0x4286c8
jmp 0x428738
cmp esi, edi
jg 0x428738
mov ebp, dword [esp + 0x2c]
mov ecx, edx
sar ecx, 0x10
cmp ecx, ebp
jge 0x428726
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x428726
test ecx, ecx
jl 0x428726
test eax, eax
jge 0x428738
add ebx, dword [esp + 0x44]
add edx, dword [esp + 0x48]
add dword [esp + 0x7c], 2
inc esi
cmp esi, edi
jle 0x42870a
sub edi, esi
inc edi
test edi, edi
jle 0x4287ef
mov dword [esp + 0x58], edi
mov esi, dword [esp + 0x74]
mov eax, edx
sar eax, 0x10
mov eax, dword [esi + eax*4]
mov ecx, ebx
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x1c]
movzx ax, byte [eax + ecx]
movzx eax, ax
test ax, ax
je 0x4287d7
movzx ecx, ax
mov eax, dword [esp + 0x38]
movzx esi, word [eax + ecx*2 + 0x5c]
mov ecx, dword [esp + 0x7c]
movzx ecx, word [ecx]
mov eax, ecx
mov edi, esi
and eax, 0xf800
and edi, 0xf800
add eax, edi
cmp eax, 0xf800
jbe 0x42879b
mov eax, 0xf800
mov edi, ecx
mov ebp, esi
and edi, 0x7e0
and ebp, 0x7e0
add edi, ebp
cmp edi, 0x7e0
jbe 0x4287ba
mov edi, 0x7e0
and ecx, 0x1f
and esi, 0x1f
add ecx, esi
cmp ecx, 0x1f
jbe 0x4287cc
mov ecx, 0x1f
or eax, edi
or eax, ecx
mov ecx, dword [esp + 0x7c]
mov word [ecx], ax
add ebx, dword [esp + 0x44]
add edx, dword [esp + 0x48]
add dword [esp + 0x7c], 2
sub dword [esp + 0x58], 1
jne 0x428747
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x64]
jge 0x42880c
mov edx, dword [esp + 0x90]
sub dword [esp + 0x88], edx
jmp 0x42881a
mov ecx, dword [esp + 0x94]
add dword [esp + 0x88], ecx
cmp eax, dword [esp + 0x68]
jge 0x428830
mov edx, dword [esp + 0x94]
add dword [esp + 0x84], edx
jmp 0x42883e
mov ecx, dword [esp + 0x90]
sub dword [esp + 0x84], ecx
mov ebp, dword [esp + 0x50]
inc eax
add ebp, 4
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x80], eax
mov dword [esp + 0x50], ebp
jle 0x428612
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret