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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
mov eax, dword [ebp + 8]
fld qword [eax]
mov ecx, dword [ebp + 0xc]
fst qword [esp + 0xc]
push ebx
fld qword [ecx + 0x78]
push esi
fadd qword [0x100dde50]
push edi
call fcn.100db3f0
xor edx, edx
cmp eax, edx
mov dword [esp + 0x20], eax
jl 0x100867d0
cmp eax, 0x14
jle 0x100867d4
cmp eax, 0x6a
je 0x100867d4
cmp eax, 0xce
je 0x100867d4
cmp eax, 0x75
je 0x100867d4
cmp eax, 0xd9
je 0x100867d4
mov dword [esp + 0x20], edx
fld qword [0x1016e038]
mov ecx, dword [ebp + 0x10]
fmul st(1)
xor eax, eax
cmp ecx, edx
fst qword [esp + 0x80]
fld st(1)
fmul qword [0x1016e030]
fxch st(2)
fmul qword [0x1016e028]
fstp qword [esp + 0xa8]
fdiv qword [0x1016e020]
fst qword [esp + 0x78]
fmul qword [0x100dc320]
fstp qword [esp + 0x70]
jle 0x10086e0d
fsub qword [0x1016caf0]
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], ecx
fstp qword [esp + 0xa0]
jmp 0x10086839
mov esi, dword [esp + 0x24]
fld qword [esi]
sub esp, 8
fstp qword [esp]
call sym.pe.dll_pe_delta
fstp qword [esp + 0x30]
mov edi, 0x1016dc90
fld qword [esi + 8]
xor esi, esi
fstp qword [esp + 0x40]
lea ebx, [esi + 1]
fld qword [0x1016e018]
fstp qword [esp + 0x10]
jmp 0x10086869
fstp st(0)
fld qword [esp + 0x40]
push 0
push 0
lea edx, [esp + 0xa0]
push edx
sub esp, 0x30
fstp qword [esp + 0x28]
fld qword [esp + 0x6c]
fstp qword [esp + 0x20]
fld qword [edi + 8]
fstp qword [esp + 0x18]
fld qword [edi]
fstp qword [esp + 0x10]
fldz
fstp qword [esp + 8]
fld qword [esp + 0x54]
fstp qword [esp]
call sym.pe.dll_pe_geodesic_distance
fld qword [esp + 0xa0]
fld qword [esp + 0x98]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x100868e9
fld qword [esp + 0x10]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x100868d7
fstp st(0)
mov esi, ebx
fst qword [esp + 0x10]
jmp 0x100868d9
fstp st(1)
add edi, 0x10
add ebx, 1
cmp edi, 0x1016ddc0
jle 0x10086867
jmp 0x100868f3
fstp st(0)
mov esi, ebx
fld qword [0x1016e010]
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x100869d0
fld qword [0x1016e010]
fsubr st(1)
fldz
fcom st(1)
fnstsw ax
fxch st(1)
test ah, 0x41
jne 0x10086916
fchs
fxch st(2)
fcom st(1)
fnstsw ax
fld st(0)
test ah, 5
jp 0x10086925
fchs
fadd qword [0x1016e008]
fld qword [0x100dc320]
fmul st(1), st(0)
fld1
fadd st(2), st(0)
fld qword [0x100dc318]
fmul st(3), st(0)
fxch st(6)
fcomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x100869c8
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
mov ecx, ebx
sub ecx, eax
cmp esi, ecx
je 0x100869c8
fld qword [esp + 0xa8]
fcom st(3)
fnstsw ax
test ah, 0x41
je 0x100869b8
fld st(3)
fsub st(1)
fcom st(5)
fnstsw ax
test ah, 5
jp 0x10086987
fchs
fxch st(4)
fcom st(5)
fnstsw ax
test ah, 5
jp 0x10086994
fchs
fxch st(5)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x100869a1
fchs
faddp st(4)
fmulp st(3)
faddp st(2)
fxch st(1)
fmulp st(2)
fcompp
fnstsw ax
test ah, 0x41
jp 0x100869d2
mov esi, ecx
jmp 0x100869d2
fstp st(3)
mov esi, ecx
fstp st(2)
fstp st(2)
fstp st(1)
fstp st(1)
fstp st(0)
jmp 0x100869d2
fstp st(2)
fstp st(2)
fstp st(1)
fstp st(1)
fstp st(0)
lea edi, [esi + esi*2]
add edi, edi
add edi, edi
fld qword [edi + edi + 0x1016ddd0]
add edi, edi
fadd qword [esp + 0x30]
sub esp, 8
fstp qword [esp]
call sym.pe.dll_pe_delta
fst qword [esp + 0x30]
lea ecx, [esp + 0x90]
fldz
push ecx
lea edx, [esp + 0x8c]
push edx
lea eax, [esp + 0xb8]
push eax
sub esp, 0x28
fst qword [esp + 0x20]
fxch st(1)
fstp qword [esp + 0x18]
fld qword [esp + 0x74]
fstp qword [esp + 0x10]
fstp qword [esp + 8]
fld qword [esp + 0x4c]
fstp qword [esp]
call sym.pe.dll_pe_curv_to_cart
fld qword [edi + 0x1016ddd8]
call sub.MSVCR80.dll__CIsin
fstp qword [esp + 0x10]
fld qword [edi + 0x1016ddd8]
call sub.MSVCR80.dll__CIcos
fld qword [esp + 0xb0]
fst qword [esp + 0x50]
lea ecx, [esp + 0xb8]
fld st(1)
push ecx
fld qword [esp + 0x8c]
lea edx, [esp + 0x34]
fmul st(1), st(0)
push edx
fld qword [esp + 0x18]
lea eax, [esp + 0x48]
fld st(0)
push eax
fld qword [esp + 0x9c]
sub esp, 0x28
fmul st(1), st(0)
fxch st(4)
faddp st(1)
fst qword [esp + 0x94]
fxch st(5)
fmulp st(3)
fmulp st(1)
fsubp st(1)
fst qword [esp + 0x8c]
fstp qword [esp + 0x20]
fxch st(1)
fstp qword [esp + 0x18]
fstp qword [esp + 0x10]
fldz
fstp qword [esp + 8]
fld qword [esp + 0x4c]
fstp qword [esp]
call sym.pe.dll_pe_cart_to_curv
fld qword [edi + 0x1016dde0]
fadd qword [esp + 0x30]
sub esp, 8
fstp qword [esp]
call sym.pe.dll_pe_delta
lea ecx, [esp + 0x58]
fst qword [esp + 0x30]
fldz
push ecx
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x58]
push eax
sub esp, 0x28
fst qword [esp + 0x20]
fxch st(1)
fstp qword [esp + 0x18]
fld qword [esp + 0x74]
fstp qword [esp + 0x10]
fstp qword [esp + 8]
fld qword [esp + 0x4c]
fstp qword [esp]
call sym.pe.dll_pe_curv_to_cart
fld qword [esp + 0x58]
fld qword [esp + 0x18]
fdiv st(1), st(0)
fxch st(1)
fst qword [esp + 0x58]
fdivr qword [0x1016e000]
fld qword [esp + 0x50]
fdiv st(2)
fmul st(1)
fst qword [esp + 0x50]
fld qword [esp + 0x60]
fdivrp st(3)
fxch st(2)
fmulp st(1)
fst qword [esp + 0x60]
fadd qword [0x1016dff8]
fdiv qword [0x100dc510]
fst qword [esp + 0x48]
fsubr qword [0x1016dff0]
fst qword [esp + 0x28]
fmul qword [0x100dc320]
faddp st(1)
fst qword [esp + 0x68]
fsub qword [0x1016dfe8]
fdiv qword [0x1016dfe0]
call sub.MSVCR80.dll__CIatan
fadd qword [0x1016dfd8]
fstp qword [esp + 0x10]
fld qword [esp + 0x28]
fsub qword [esp + 0x68]
fsub qword [0x1016dfe8]
fdiv qword [0x1016dfe0]
call sub.MSVCR80.dll__CIatan
fadd qword [0x1016dfd8]
fst qword [esp + 0x68]
fsubr qword [esp + 0x10]
fmul qword [0x100dc320]
fmul qword [esp + 0x18]
fstp qword [esp + 0x28]
fld qword [esp + 0x48]
fsub qword [0x1016dfe8]
fdiv qword [0x1016dfe0]
call sub.MSVCR80.dll__CIatan
fadd qword [0x1016dfd8]
cmp esi, 6
fadd st(0), st(0)
fsub qword [esp + 0x10]
fsub qword [esp + 0x68]
fmul qword [0x1016dfd0]
fld qword [0x100dc320]
fmul st(1), st(0)
fxch st(1)
fmul qword [esp + 0x18]
fst qword [esp + 0x10]
jne 0x10086c72
fld qword [esp + 0x70]
sub esp, 0x40
fchs
fxch st(1)
fstp qword [esp + 0x38]
fld qword [esp + 0x68]
fstp qword [esp + 0x30]
fst qword [esp + 0x28]
fld qword [esp + 0xc0]
fmulp st(2)
fxch st(1)
fstp qword [esp + 0x20]
fstp qword [esp + 0x18]
fldz
fst qword [esp + 0x10]
fld qword [esp + 0xb8]
fstp qword [esp + 8]
fstp qword [esp]
call fcn.100da580
add esp, 0x40
test al, al
je 0x10086c51
mov esi, 0x15
jmp 0x10086cf8
fldz
fcomp qword [esp + 0x28]
fnstsw ax
test ah, 5
jp 0x10086c68
mov esi, 0x15
jmp 0x10086cf8
mov esi, 6
jmp 0x10086cf8
cmp esi, 0x11
fstp st(1)
jne 0x10086cf6
sub esp, 0x40
fstp qword [esp + 0x38]
fld qword [esp + 0x68]
fstp qword [esp + 0x30]
fldz
fst qword [esp + 0x28]
fst qword [esp + 0x20]
fld qword [esp + 0xb0]
fchs
fstp qword [esp + 0x18]
fld qword [esp + 0xc0]
fmul qword [0x1016d9d8]
fstp qword [esp + 0x10]
fld qword [esp + 0xb8]
fstp qword [esp + 8]
fstp qword [esp]
call fcn.100da580
add esp, 0x40
test al, al
je 0x10086cd1
mov esi, 0x16
jmp 0x10086cf8
fldz
fld st(0)
fld qword [esp + 0x28]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x10086d14
fxch st(1)
fcomp qword [esp + 0x10]
fnstsw ax
test ah, 0x44
jp 0x10086d16
mov esi, 0x11
fstp st(0)
lea eax, [ebx - 6]
cmp eax, 0xd3
ja case.0x10086d0d.7
movzx ecx, byte [eax + 0x10086e30]
jmp dword [ecx*4 + 0x10086e18]
fstp st(1)
fld qword [esp + 0x10]
fxch st(1)
call sub.MSVCR80.dll__CIatan2
fld qword [0x100dc4b8]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10086d44
fcomp qword [0x1016dfc8]
fnstsw ax
test ah, 1
jne 0x10086d46
mov esi, 0x11
jmp 0x10086cf8
fstp st(0)
mov esi, 0x16
jmp 0x10086cf8
cmp esi, 6
je 0x10086d57
cmp esi, 0x15
jne case.0x10086d0d.7
mov esi, 0x17
jmp case.0x10086d0d.7
cmp esi, 0x16
jne case.0x10086d0d.7
mov esi, 0x11
jmp case.0x10086d0d.7
cmp esi, 0x15
jne case.0x10086d0d.7
mov esi, 6
jmp case.0x10086d0d.7
cmp esi, 6
jne case.0x10086d0d.7
mov esi, 0x15
jmp case.0x10086d0d.7
cmp esi, 0x11
jne case.0x10086d0d.7
mov esi, 0x16
fld qword [esi*8 + 0x1016da40]
call sub.MSVCR80.dll__CIcos
fstp qword [esp + 0x48]
fld qword [esi*8 + 0x1016da40]
call sub.MSVCR80.dll__CIsin
fld qword [esp + 0x48]
fld st(0)
mov eax, dword [esp + 0x24]
fld qword [esp + 0x28]
shl esi, 4
fmul st(1), st(0)
add eax, 0x10
sub dword [esp + 0x3c], 1
fld st(3)
fld qword [esp + 0x10]
mov dword [esp + 0x24], eax
fmul st(1), st(0)
fxch st(3)
fsubrp st(1)
fxch st(3)
fmulp st(2)
fmulp st(3)
faddp st(2)
fld qword [esi + 0x1016db08]
fld qword [esp + 0x18]
fmul st(1), st(0)
fxch st(3)
faddp st(1)
fld qword [esi + 0x1016db00]
fmulp st(3)
fxch st(2)
faddp st(1)
fstp qword [eax - 0x10]
fstp qword [eax - 8]
jne 0x10086835
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
fstp st(0)
pop esi
pop ebx
mov esp, ebp
pop ebp
ret