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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1d8
mov eax, dword [0x1006f368]
xor eax, esp
mov dword [esp + 0x1d4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [0x1006f3bc]
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [0x10070bb8]
push esi
mov esi, dword [ebp + 8]
push edi
movzx eax, word [eax + ecx]
mov ecx, 0x47f
mov byte [esp + 0x1b], 0
cmp ax, cx
je 0x10027b26
cmp ax, 0x14
je 0x10027b26
mov ecx, 0x3e4
cmp ax, cx
je 0x10027b26
mov ecx, 0x134
cmp ax, cx
je 0x10027b26
cmp ax, 0x13
je 0x10027b26
mov ecx, 0xce
cmp ax, cx
je 0x10027b26
mov ecx, 0x3ef
cmp ax, cx
jne 0x10027ba8
movsd xmm0, qword [0x1006f3a8]
xorps xmm0, xmmword [0x10069800]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fld qword [0x1006f3a0]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
lea ecx, [esp + 0x10]
mulsd xmm0, qword [0x100695b8]
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x42b20000
movss xmm1, dword [esi]
mov dword [esp + 0x10], 0xc2b20000
divsd xmm0, qword [0x10069598]
cvtpd2ps xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [0x10069694]
comiss xmm0, xmm1
movss dword [esi], xmm1
cmovbe ecx, esi
comiss xmm1, dword [0x100695f8]
cmovbe eax, ecx
mov eax, dword [eax]
mov dword [esi], eax
lea eax, [esp + 0x9c]
push eax
call fcn.10025e20
mov ecx, dword [0x1006f3b8]
xorps xmm0, xmm0
mov eax, dword [0x10070b84]
xor edi, edi
mov eax, dword [eax + ecx]
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x16c], 0x100664c8
mov dword [esp + 0x17c], eax
movups xmmword [esp + 0x110], xmm0
mov dword [esp + 0x130], 0
movups xmmword [esp + 0x120], xmm0
movq xmm0, qword [esi]
mov eax, dword [esi + 8]
movq qword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x44]
cvtps2pd xmm0, xmm0
mov dword [esp + 0x4c], eax
mulsd xmm0, qword [0x10069560]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x10], xmm0
call fcn.100039d0
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x10]
call fcn.100039f0
movss xmm1, dword [esp + 0x48]
cvtps2pd xmm1, xmm1
movss dword [esp + 0x1c], xmm0
mulsd xmm1, qword [0x10069560]
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x10], xmm0
call fcn.100039d0
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x10]
call fcn.100039f0
movss xmm1, dword [esp + 0x4c]
cvtps2pd xmm1, xmm1
movss dword [esp + 0xc], xmm0
mulsd xmm1, qword [0x10069560]
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x10], xmm0
call fcn.100039d0
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x10]
call fcn.100039f0
movss xmm7, dword [esp + 0x14]
movaps xmm2, xmm0
movss xmm3, dword [esp + 0x1c]
movaps xmm1, xmm7
movss xmm6, dword [esp + 0xc]
movss xmm4, dword [esp + 0x24]
movaps xmm0, xmm6
mulss xmm1, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x20], xmm1
movss xmm1, dword [esp + 0x28]
xorps xmm1, xmmword [0x10069810]
movss dword [esp + 0x30], xmm1
movaps xmm1, xmm2
mulss xmm1, dword [0x10069680]
movss dword [esp + 0x10], xmm2
movaps xmm2, xmm7
xorps xmm2, xmmword [0x10069810]
movss dword [esp + 0x14], xmm1
movaps xmm5, xmm2
mulss xmm5, dword [esp + 0x14]
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x28]
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmm1
mulss xmm2, xmm4
mulss xmm0, xmm6
mulss xmm1, xmm7
subss xmm5, xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm6
subss xmm0, xmm1
movss dword [esp + 0x14], xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x10069680]
mulss xmm4, xmm6
mulss xmm0, xmm3
movss xmm3, dword [esp + 0x10]
mulss xmm3, dword [esp + 0x28]
movss dword [esp + 0xc], xmm0
movq xmm0, qword [0x1006f3c0]
movaps xmm1, xmm3
mulss xmm3, xmm7
mulss xmm1, xmm6
subss xmm3, xmm4
movss xmm4, dword [esp + 0x10]
mulss xmm4, dword [esp + 0x1c]
subss xmm1, xmm2
movss xmm7, dword [esp + 0x9c]
sub esp, 0xc
movups xmm6, xmmword [esp + 0x5c]
mov ecx, esp
mov eax, dword [0x1006f3c8]
movss xmm2, dword [esp + 0x3c]
movq qword [esp + 0xb8], xmm0
movss xmm0, dword [esp + 0x2c]
mulss xmm6, xmm7
mov dword [esp + 0xc0], eax
mulss xmm0, xmm7
mov eax, dword [esp + 0x38]
addss xmm6, dword [0x1006f3c0]
mulss xmm2, xmm7
movss xmm7, dword [esp + 0xac]
addss xmm0, dword [esp + 0xbc]
addss xmm2, dword [esp + 0xc0]
mulss xmm5, xmm7
movss dword [esp + 0xbc], xmm0
addss xmm6, xmm5
movss dword [esp + 0xc0], xmm2
movss xmm5, dword [esp + 0xb0]
mulss xmm1, xmm5
mulss xmm4, xmm5
addss xmm6, xmm1
mulss xmm3, xmm5
movss xmm1, dword [esp + 0x20]
mulss xmm1, xmm7
movups xmmword [esp + 0x5c], xmm6
addss xmm1, xmm0
movss dword [esp + 0x9c], xmm6
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm7
addss xmm1, xmm3
addss xmm0, xmm2
movss dword [esp + 0x20], xmm1
addss xmm0, xmm4
movss dword [esp + 0xa0], xmm1
movss dword [esp + 0x18], xmm0
movss dword [esp + 0xa4], xmm0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0xa0]
call fcn.10003600
movss xmm0, dword [0x1006fb4c]
comiss xmm0, dword [0x10069558]
mov edx, dword [eax + 8]
mov dword [esp + 0x4c], edx
movq xmm1, qword [eax]
movq qword [esp + 0x44], xmm1
jbe 0x10027f65
mov eax, dword [esp + 0x2c]
push ecx
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x48]
movq qword [esp + 0x88], xmm0
movss xmm2, dword [esp + 0x88]
movss xmm1, dword [esp + 0x8c]
movss xmm0, dword [esp + 0x90]
subss xmm2, dword [esp + 0x54]
subss xmm1, dword [esp + 0x18]
subss xmm0, dword [esp + 0x10]
push eax
sub esp, 0xc
mov ecx, esp
unpcklps xmm2, xmm1
movss dword [esp + 0xa0], xmm0
mov eax, dword [esp + 0xa0]
movq qword [ecx], xmm2
mov dword [ecx + 8], eax
call fcn.10028600
test al, al
je 0x100283bb
mov edx, dword [esp + 0x4c]
movq xmm1, qword [esp + 0x44]
call fcn.10025f30
test al, al
je 0x1002818f
movss xmm0, dword [esp + 0x44]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x10069560]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x30], xmm0
call fcn.100039d0
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x30]
call fcn.100039f0
movss xmm1, dword [esp + 0x48]
cvtps2pd xmm1, xmm1
movss dword [esp + 0x24], xmm0
mulsd xmm1, qword [0x10069560]
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x30], xmm0
call fcn.100039d0
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x30]
call fcn.100039f0
movss xmm1, dword [esp + 0x4c]
cvtps2pd xmm1, xmm1
movss dword [esp + 0x20], xmm0
mulsd xmm1, qword [0x10069560]
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x30], xmm0
call fcn.100039d0
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x30]
call fcn.100039f0
movss xmm2, dword [esp + 0x20]
movaps xmm1, xmm0
movss xmm0, dword [esp + 0x1c]
movaps xmm3, xmm2
movss xmm6, dword [esp + 0x10]
movaps xmm5, xmm0
movss dword [esp + 0x14], xmm1
movaps xmm4, xmm6
mulss xmm1, xmm0
movss xmm7, dword [esp + 0x24]
xorps xmm5, xmmword [0x10069810]
movaps xmm0, xmm1
movss dword [esp + 0xc], xmm1
movss xmm1, dword [esp + 0x28]
mulss xmm0, xmm2
movups xmmword [esp + 0x30], xmm1
movups xmmword [esp + 0x50], xmm0
movaps xmm0, xmm6
mulss xmm3, xmm7
xorps xmm0, xmmword [0x10069810]
mulss xmm0, xmm1
movups xmm1, xmmword [esp + 0x50]
mulss xmm4, xmm7
subss xmm1, xmm0
movss xmm0, dword [esp + 0xc]
mulss xmm0, xmm6
movups xmmword [esp + 0x50], xmm1
movups xmm1, xmmword [esp + 0x30]
movaps xmm6, xmm0
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm1, xmm2
mulss xmm0, xmm7
subss xmm6, xmm1
movss dword [esp + 0x14], xmm0
call fcn.10024c40
xorps xmm2, xmm2
mov dword [esp + 0x78], 0
cvtsd2ss xmm2, xmm0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
movaps xmm0, xmm2
movaps xmm1, xmm2
mulss xmm0, xmm3
movups xmm3, xmmword [esp + 0x50]
mulss xmm1, xmm4
movss xmm4, dword [0x100696a0]
mulss xmm3, xmm4
mulss xmm6, xmm4
mulss xmm2, xmm5
addss xmm3, xmm0
addss xmm6, xmm1
movss xmm0, dword [esp + 0x14]
sub esp, 0xc
mulss xmm0, xmm4
mov ecx, esp
unpcklps xmm3, xmm6
addss xmm0, xmm2
movq qword [ecx], xmm3
movss dword [esp + 0xe4], xmm0
mov eax, dword [esp + 0xe4]
mov dword [ecx + 8], eax
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0x88]
call fcn.10003600
movss xmm1, dword [0x10069694]
lea ecx, [esp + 0x30]
mov dword [esp + 0x20], 0x42b20000
mov dword [esp + 0x30], 0xc2b20000
movss xmm0, dword [eax]
lea eax, [esp + 0x20]
comiss xmm1, xmm0
movss dword [esi], xmm0
cmovbe ecx, esi
comiss xmm0, dword [0x100695f8]
cmovbe eax, ecx
mov eax, dword [eax]
mov dword [esi], eax
jmp 0x100283af
movq xmm0, qword [esp + 0x90]
sub esp, 0xc
mov eax, esp
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [eax], xmm1
mov dword [eax + 8], edx
mov eax, dword [esp + 0xbc]
movq qword [ecx], xmm0
movq xmm0, qword [0x1006f3c0]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [0x1006f3c8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [esp + 0xdc]
push eax
call fcn.10025b30
movq xmm0, qword [esp + 0xb8]
lea ecx, [esp + 0x180]
mov eax, dword [esp + 0xc0]
movq qword [esp + 0x6c], xmm0
movups xmm0, xmmword [esp + 0x50]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x6c]
push eax
addss xmm0, dword [esp + 0xbc]
lea eax, [esp + 0x94]
mov dword [esp + 0x184], 0
push eax
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 0
movups xmmword [esp + 0x58], xmm0
mov dword [esp + 0x198], 0
movss dword [esp + 0x74], xmm0
movss xmm0, dword [esp + 0x78]
addss xmm0, dword [esp + 0x1c]
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
movss dword [esp + 0x78], xmm0
movss xmm0, dword [esp + 0x7c]
addss xmm0, dword [esp + 0x14]
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1c0], 0
movss dword [esp + 0x7c], xmm0
call fcn.10003780
mov ecx, dword [0x10070ac0]
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x170]
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x188]
push 0x200400b
push edx
mov eax, dword [eax + 0x10]
call eax
movss xmm0, dword [esp + 0x13c]
sub esp, 0xc
comiss xmm0, dword [0x1006952c]
mov ecx, esp
jbe 0x10028332
movq xmm0, qword [esp + 0x128]
mov eax, dword [esp + 0x130]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [esp + 0x104]
jmp 0x10028396
movq xmm0, qword [esp + 0xc4]
mov eax, dword [esp + 0xcc]
movq qword [esp + 0xd0], xmm0
movss xmm1, dword [esp + 0xd4]
addss xmm1, dword [esp + 0x20]
mov dword [esp + 0xd8], eax
movss xmm0, dword [esp + 0xd8]
addss xmm0, dword [esp + 0x18]
movss dword [esp + 0xd8], xmm0
movups xmm0, xmmword [esp + 0x5c]
mov eax, dword [esp + 0xd8]
unpcklps xmm0, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [esp + 0x110]
push eax
mov ecx, 0x1006f3c0
call fcn.10003600
movq xmm0, qword [eax]
movq qword [esi], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
inc edi
cmp edi, 5
jl 0x10027c12
jmp 0x100283c0
mov byte [esp + 0x1b], 1
movss xmm0, dword [esi]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x10069560]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x30], xmm0
call fcn.100039d0
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x30]
call fcn.100039f0
movss xmm1, dword [esi + 4]
cvtps2pd xmm1, xmm1
movss dword [esp + 0xc], xmm0
mulsd xmm1, qword [0x10069560]
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x30], xmm0
call fcn.100039d0
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x30]
call fcn.100039f0
movss xmm1, dword [esi + 8]
cvtps2pd xmm1, xmm1
movss dword [esp + 0x20], xmm0
mulsd xmm1, qword [0x10069560]
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x30], xmm0
call fcn.100039d0
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x30]
call fcn.100039f0
movss xmm7, dword [esp + 0x20]
movaps xmm1, xmm0
movss xmm3, dword [esp + 0x10]
movaps xmm2, xmm7
mulss xmm2, dword [esp + 0xc]
movaps xmm5, xmm1
mov eax, dword [0x1006f3c8]
movss xmm6, dword [esp + 0x24]
mulss xmm5, dword [0x10069680]
mov dword [esp + 0x80], eax
movss dword [esp + 0x28], xmm2
movaps xmm2, xmm3
mulss xmm2, dword [esp + 0xc]
movss dword [esp + 0x1c], xmm1
movaps xmm1, xmm6
mulss xmm1, dword [esp + 0x2c]
movss dword [esp + 0x30], xmm2
movss xmm2, dword [esp + 0x2c]
xorps xmm2, xmmword [0x10069810]
movaps xmm0, xmm1
movss dword [esp + 0x20], xmm2
movaps xmm2, xmm3
xorps xmm2, xmmword [0x10069810]
movaps xmm4, xmm2
mulss xmm1, xmm3
mulss xmm4, xmm5
movaps xmm3, xmm6
mulss xmm3, dword [0x10069680]
mulss xmm0, xmm7
mulss xmm3, dword [esp + 0xc]
mulss xmm5, xmm7
subss xmm4, xmm0
movq xmm0, qword [0x1006f3c0]
mulss xmm2, xmm6
subss xmm5, xmm1
mulss xmm6, xmm7
movss xmm1, dword [esp + 0x1c]
mulss xmm1, dword [esp + 0x2c]
movss dword [esp + 0x24], xmm4
movq qword [esp + 0x78], xmm0
movss xmm0, dword [esp + 0x9c]
movaps xmm4, xmm1
mulss xmm1, dword [esp + 0x10]
mulss xmm4, xmm7
movss xmm7, dword [esp + 0xa0]
subss xmm1, xmm6
movss xmm6, dword [esp + 0x30]
mulss xmm6, xmm0
subss xmm4, xmm2
movss xmm2, dword [esp + 0x1c]
mulss xmm2, dword [esp + 0xc]
addss xmm6, dword [esp + 0x7c]
mulss xmm5, xmm7
mov eax, dword [esp + 0xa8]
mulss xmm3, xmm7
mov ecx, dword [esp + 0x1dc]
addss xmm6, xmm5
movss xmm5, dword [esp + 0xa4]
mulss xmm1, xmm5
pop edi
mulss xmm2, xmm5
pop esi
addss xmm6, xmm1
mulss xmm4, xmm5
xor ecx, esp
movss xmm1, dword [esp + 0x18]
mulss xmm1, xmm0
addss xmm1, dword [esp + 0x78]
addss xmm1, xmm3
addss xmm1, xmm2
movss xmm2, dword [esp + 0x20]
mulss xmm2, xmm0
movss xmm0, dword [esp + 0x1c]
mulss xmm0, xmm7
addss xmm2, dword [0x1006f3c0]
addss xmm2, xmm0
addss xmm2, xmm4
movss dword [eax], xmm2
movss dword [eax + 4], xmm6
movss dword [eax + 8], xmm1
mov al, byte [esp + 0x13]
call fcn.10040c92
mov esp, ebp
pop ebp
ret 0xc