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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x40
mov eax, dword [esp + 0x64]
test eax, eax
mov ebx, dword [esp + 0x70]
fldz
fldz
fldz
mov ebp, ecx
je 0x438766
mov esi, dword [eax]
test esi, esi
je 0x438766
movsx eax, word [esi + 8]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
movsx eax, word [esi + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x20], eax
movsx eax, word [esi + 4]
fstp st(1)
fild dword [esp + 0x20]
mov dword [esp + 0x20], eax
fmul dword [0x687c7c]
fstp st(2)
fild dword [esp + 0x20]
fmul dword [0x687c7c]
fstp st(3)
fld dword [esp + 0x58]
fsub st(3)
fstp st(3)
fld dword [esp + 0x5c]
fsub st(2)
fstp st(2)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld dword [esp + 0x60]
fsub st(2)
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(2)
fcomp dword [0x687d20]
fnstsw ax
test ah, 0x45
jne 0x4387a3
fcompp
mov eax, dword [esp + 0x54]
mov ecx, ebp
push 0
push 0
push 0
push 0
push dword [0x687cf8]
push eax
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0x78]
fstp st(0)
call fcn.00437150
lea eax, [eax + eax*4]
lea eax, [eax*4]
add eax, ebp
mov esi, eax
jmp 0x438ba0
fcompp
mov al, byte [esp + 0x6c]
and eax, 0xff
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [0x687d24]
fst st(1)
fsin
fnstsw ax
test eax, 0x400
je 0x4387d0
call fcn.00642970
fsin
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
fld st(0)
fcos
mov dword [esp + 0x10], eax
fnstsw ax
test eax, 0x400
je 0x4387f0
call fcn.00642970
fcos
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
mov dword [eax], 0
mov ecx, dword [esp + 0x5c]
fld dword [0x687d28]
mov eax, dword [esp + 0x60]
mov dword [esp + 8], 0
fstp dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
jmp 0x438c20
mov al, byte [esi + 0x10]
shr al, 5
and al, 1
fldz
fldz
jne 0x438866
movsx edx, word [esi + 0xc]
add edx, edi
movzx eax, word [ebp + edx*2 + 0x3a980]
and eax, 0x3fff
movsx ecx, ax
lea ecx, [ecx + ecx*4]
mov al, byte [ebp + ecx*4 + 0x10]
shr al, 5
and al, 1
jne 0x438ba7
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
fld dword [esp + 0x30]
fadd dword [0x687c84]
push 0
push 0
fstp dword [esp + 0x38]
movsx ecx, word [esi + 0xc]
push 0
push 0
add ecx, edi
movzx eax, word [ebp + ecx*2 + 0x3a980]
push 0
push 0
and eax, 0x3fff
movsx edx, ax
push 1
lea edx, [edx + edx*4]
lea edx, [edx*4]
add edx, ebp
movsx eax, word [edx + 8]
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
movsx eax, word [edx + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x3c], eax
movsx eax, word [edx + 4]
fstp st(1)
fild dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x44]
fmul dword [0x687c7c]
fstp st(2)
fild dword [esp + 0x3c]
fmul dword [0x687c7c]
fstp dword [esp + 0x50]
fld st(1)
fstp dword [esp + 0x54]
fst dword [esp + 0x58]
fld dword [esp + 0x58]
fadd dword [0x687c84]
lea edx, [esp + 0x50]
push edx
push eax
fstp dword [esp + 0x60]
fcompp
call fcn.004da580
add esp, 0x24
test al, al
fldz
fldz
fldz
je 0x438bb0
movsx eax, word [esi + 6]
mov dword [esp + 0x20], eax
movsx eax, word [esi + 4]
fild dword [esp + 0x20]
mov dword [esp + 0x20], eax
movsx eax, word [esi + 0xc]
fmul dword [0x687c7c]
add eax, edi
movzx ecx, word [ebp + eax*2 + 0x3a980]
fstp st(1)
fild dword [esp + 0x20]
and ecx, 0x3fff
mov eax, ecx
movsx edx, ax
fmul dword [0x687c7c]
lea edx, [edx + edx*4]
lea edx, [edx*4]
add edx, ebp
fstp st(3)
movsx eax, word [edx + 4]
fld st(2)
fstp st(2)
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
movsx edx, cx
fmul dword [0x687c7c]
lea edx, [edx + edx*4]
lea edx, [edx*4]
add edx, ebp
fstp st(3)
movsx eax, word [edx + 6]
fld st(2)
fsub st(2)
mov dword [esp + 0x20], eax
fstp st(3)
fild dword [esp + 0x20]
fmul dword [0x687c7c]
fstp st(2)
fld st(1)
fsub st(1)
fstp st(2)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp st(1)
fdiv st(2), st(0)
fdiv st(1), st(0)
fld st(1)
fmul dword [esp + 0x14]
fld st(3)
fmul dword [esp + 0x10]
faddp st(1)
fst st(1)
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 5
jne 0x438bb6
movsx ecx, word [esi + 0xc]
add ecx, edi
movzx eax, word [ebp + ecx*2 + 0x3a980]
and eax, 0x3fff
movsx edx, ax
mov eax, dword [esp + 0x68]
lea edx, [edx + edx*4]
lea edx, [edx*4]
add edx, ebp
mov dword [eax], edx
fst dword [esp + 0xc]
fld st(2)
fcomp dword [0x687c80]
fnstsw ax
test ah, 5
jne 0x438ad0
fld st(1)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438a58
fld st(1)
fchs
jmp 0x438a5a
fld st(1)
fstp st(1)
fld dword [0x687d10]
fmul st(1)
fcomp st(3)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438a78
mov byte [ebx], 2
jmp 0x438bc0
fld dword [0x687d10]
fmul st(3)
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438a94
mov byte [ebx], 0
jmp 0x438bc6
fld dword [0x687d2c]
fmul st(3)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x438ab0
mov byte [ebx], 4
jmp 0x438bd0
fld st(1)
fcomp dword [0x687c80]
fnstsw ax
test ah, 0x45
jne 0x438ac7
mov byte [ebx], 1
jmp 0x438bd6
mov byte [ebx], 3
jmp 0x438be0
fld st(1)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438ae8
fld st(1)
fchs
jmp 0x438aea
fld st(1)
fstp st(1)
fld dword [0x687d10]
fmul st(1)
fld st(3)
fchs
fstp st(2)
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438b10
mov byte [ebx], 6
jmp 0x438be6
fld dword [0x687d10]
fmul st(1)
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x438b30
mov byte [ebx], 0
jmp 0x438bf0
fld dword [0x687d10]
fmul st(3)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x438b50
mov byte [ebx], 4
jmp 0x438c00
fld st(1)
fcomp dword [0x687c80]
fnstsw ax
test ah, 0x45
jne 0x438b67
mov byte [ebx], 7
jmp 0x438c10
fcompp
fstp st(0)
mov byte [ebx], 5
inc dword [esp + 8]
mov al, byte [esi + 0x10]
and al, 0xf
movzx edx, al
movsx edi, word [esp + 8]
cmp edi, edx
jl 0x438830
mov eax, dword [esp + 0x68]
cmp dword [eax], 0
jne 0x438b95
mov byte [ebx], 0
mov dword [eax], esi
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret 0x20
fldz
jmp 0x4387a5
fcompp
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fcompp
fstp st(0)
jmp 0x438b6e
fstp st(0)
jmp 0x438b72