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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x298
push esi
mov esi, ecx
push edi
cmp byte [esi + 0x1a6], 0
jne 0x68592a
push 0x200
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x3c]
call fcn.004745a0
push str.__hkgpConvexHull::buildIndices_need_to_be_called_before_this_operation.
push dword [esi + 0x1a0]
lea ecx, [esp + 0x3c]
push str.No_index_available__
call fcn.0045cb80
mov ecx, eax
call fcn.0045cc90
mov ecx, eax
call fcn.0045cb80
mov ecx, dword [0x884c54]
lea edx, [esp + 0xa0]
push 0x167
push str.P:P4OtherDevRelClientsBethesdaTESV2010_2_Release_NewRSYSSourceCommon_Internal_GeometryProcessing_ConvexHull_hkgpConvexHullInternals.h
push edx
mov eax, dword [ecx]
push 0x79f9d886
push 3
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x685921
int3
lea ecx, [esp + 0x34]
call fcn.0045caa0
movss xmm0, dword [0x77fe14]
movaps xmm5, xmmword [0x719320]
movaps xmm1, xmm0
mov eax, dword [esi + 0x198]
movaps xmmword [esp + 0x80], xmm5
movaps xmmword [esp + 0x90], xmm5
movaps xmmword [esp + 0x40], xmm0
movaps xmmword [esp + 0x50], xmm1
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x10], xmm0
cmp eax, 3
jne 0x685c8d
push 0
push dword [esi + 0x2c]
lea ecx, [esp + 0x20]
call fcn.006808b0
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x18]
xor edx, edx
test ecx, ecx
cmove eax, edx
test eax, eax
je 0x685bec
mov edi, dword [ebp + 8]
nop
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx + 0x38]
mov eax, dword [ecx + eax*4 + 0x14]
and eax, 0xfffffffc
mov ecx, dword [eax + 0x38]
cmp edx, ecx
je 0x685bcc
mov eax, dword [esi + 0x44]
add ecx, ecx
movaps xmm4, xmmword [edi]
add edx, edx
movaps xmm2, xmm4
movaps xmm5, xmmword [eax + ecx*8]
movaps xmm3, xmmword [eax + edx*8]
mulps xmm2, xmm5
movaps xmm1, xmm3
mulps xmm1, xmm4
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
shufps xmm2, xmm2, 0
addss xmm1, xmm0
xorps xmm0, xmm0
shufps xmm1, xmm1, 0
mulps xmm1, xmm2
comiss xmm0, xmm1
jb 0x685bcc
movaps xmm1, xmm3
movaps xmm6, xmmword [0x719550]
shufps xmm1, xmm3, 0xc9
movaps xmm0, xmm5
shufps xmm0, xmm5, 0xd2
movaps xmm7, xmm4
mulps xmm1, xmm0
shufps xmm3, xmm3, 0xd2
shufps xmm5, xmm5, 0xc9
mulps xmm3, xmm5
shufps xmm7, xmm4, 0xd2
shufps xmm4, xmm4, 0xc9
subps xmm1, xmm3
movaps xmm3, xmm1
shufps xmm3, xmm1, 0xd2
shufps xmm1, xmm1, 0xc9
mulps xmm1, xmm7
mulps xmm3, xmm4
subps xmm3, xmm1
movaps xmm1, xmm3
mulps xmm1, xmm3
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movaps xmm0, xmm6
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
movmskps eax, xmm0
test al, 1
je 0x685bcc
movaps xmm5, xmmword [0x719710]
rsqrtps xmm0, xmm1
mulps xmm1, xmm0
movaps xmm2, xmm5
mulps xmm1, xmm0
mulps xmm0, xmmword [0x719700]
subps xmm2, xmm1
mulps xmm2, xmm0
shufps xmm2, xmm2, 0
mulps xmm2, xmm3
movaps xmm0, xmm2
movaps xmmword [esp + 0x60], xmm2
shufps xmm0, xmm2, 0xd2
mulps xmm0, xmm4
shufps xmm2, xmm2, 0xc9
mulps xmm2, xmm7
subps xmm2, xmm0
movaps xmm1, xmm2
mulps xmm1, xmm2
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
shufps xmm1, xmm1, 0
subps xmm6, xmm1
shufps xmm6, xmm6, 0
movmskps eax, xmm6
test al, 1
je 0x685bcc
rsqrtps xmm0, xmm1
mulps xmm1, xmm0
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x30]
mov ecx, esi
push eax
lea eax, [esp + 0x68]
mulps xmm1, xmm0
push eax
mulps xmm0, xmmword [0x719700]
subps xmm5, xmm1
mulps xmm5, xmm0
shufps xmm5, xmm5, 0
mulps xmm5, xmm2
movaps xmmword [esp + 0x7c], xmm5
call fcn.00685e20
lea eax, [esp + 0x38]
mov ecx, esi
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x78]
fstp dword [esp + 0x30]
push eax
call fcn.00685e20
movss xmm3, dword [esp + 0x28]
movss xmm0, dword [esp + 0x10]
fstp dword [esp + 0x14]
movss xmm2, dword [esp + 0x14]
movaps xmm1, xmm2
mulss xmm1, xmm3
comiss xmm0, xmm1
jbe 0x685bcc
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [esp + 0x70]
movaps xmmword [esp + 0x90], xmm0
movss xmm0, dword [esp + 0x2c]
addss xmm0, dword [esp + 0x30]
movss dword [esp + 0x10], xmm1
movss dword [esp + 0x20], xmm3
movss dword [esp + 0x24], xmm2
mulss xmm0, dword [0x719760]
movaps xmmword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x34]
addss xmm0, dword [esp + 0x38]
mulss xmm0, dword [0x719760]
movaps xmmword [esp + 0x50], xmm0
lea ecx, [esp + 0x18]
call fcn.00686630
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x18]
xor edx, edx
test ecx, ecx
cmove eax, edx
test eax, eax
jne 0x6859a0
movaps xmm1, xmmword [esp + 0x50]
movaps xmm0, xmmword [esp + 0x40]
mov eax, dword [ebp + 0x10]
movaps xmm2, xmmword [esp + 0x80]
movaps xmm3, xmmword [esp + 0x90]
mov ecx, dword [ebp + 8]
shufps xmm0, xmm0, 0
mulps xmm0, xmm2
pop edi
shufps xmm1, xmm1, 0
mulps xmm1, xmm3
pop esi
movaps xmmword [eax + 0x30], xmm0
fld dword [esp + 8]
addps xmm1, xmmword [eax + 0x30]
movaps xmmword [eax + 0x30], xmm1
movaps xmm0, xmmword [ecx]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xff
shufps xmm1, xmm1, 0
mulps xmm1, xmm0
movaps xmm0, xmmword [eax + 0x30]
subps xmm0, xmm1
xorps xmm1, xmm1
movaps xmmword [eax + 0x30], xmm0
movaps xmmword [eax + 0x10], xmm3
movss xmm3, dword [esp + 0x18]
movaps xmmword [eax], xmm2
movaps xmm0, xmmword [ecx]
movss xmm2, dword [esp + 0x1c]
movaps xmmword [eax + 0x20], xmm0
movss xmm0, dword [0x719760]
mov eax, dword [ebp + 0xc]
mulss xmm3, xmm0
mulss xmm2, xmm0
movaps xmm0, xmm1
unpcklps xmm3, xmm0
unpcklps xmm2, xmm1
unpcklps xmm3, xmm2
movaps xmmword [eax], xmm3
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 2
jne 0x685bf6
xor edi, edi
cmp dword [esi + 0x48], edi
jle 0x685bf6
xor ecx, ecx
mov dword [esp + 0x14], ecx
nop word [eax + eax]
mov eax, dword [esi + 0x44]
movups xmm3, xmmword [eax + ecx]
mov eax, dword [ebp + 8]
movaps xmm1, xmm3
movaps xmmword [esp + 0x70], xmm3
shufps xmm1, xmm3, 0xc9
movaps xmm2, xmmword [eax]
movaps xmm0, xmm2
shufps xmm3, xmm3, 0xd2
shufps xmm0, xmm2, 0xd2
shufps xmm2, xmm2, 0xc9
mulps xmm1, xmm0
mulps xmm3, xmm2
subps xmm3, xmm1
movaps xmm2, xmm3
movaps xmmword [esp + 0x60], xmm3
mulps xmm2, xmm3
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmmword [0x719550]
shufps xmm2, xmm2, 0
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movmskps eax, xmm0
test al, 1
je 0x685dfb
movaps xmm1, xmmword [0x719710]
lea eax, [esp + 0x38]
rsqrtps xmm0, xmm2
mulps xmm2, xmm0
mov ecx, esi
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x78]
mulps xmm2, xmm0
push eax
mulps xmm0, xmmword [0x719700]
subps xmm1, xmm2
mulps xmm1, xmm0
shufps xmm1, xmm1, 0
mulps xmm1, xmm3
movaps xmmword [esp + 0x6c], xmm1
call fcn.00685e20
lea eax, [esp + 0x30]
mov ecx, esi
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x68]
fstp dword [esp + 0x20]
push eax
call fcn.00685e20
movss xmm3, dword [esp + 0x18]
movss xmm0, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
fstp dword [esp + 0x28]
movss xmm2, dword [esp + 0x28]
movaps xmm1, xmm2
mulss xmm1, xmm3
comiss xmm0, xmm1
jbe 0x685dfb
movaps xmm0, xmmword [esp + 0x70]
movaps xmm5, xmmword [esp + 0x60]
movss dword [esp + 0x10], xmm1
movss xmm1, dword [esp + 0x2c]
addss xmm1, dword [esp + 0x30]
movaps xmmword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x34]
addss xmm0, dword [esp + 0x38]
movaps xmmword [esp + 0x90], xmm5
mulss xmm1, dword [0x719760]
movss dword [esp + 0x20], xmm3
mulss xmm0, dword [0x719760]
movss dword [esp + 0x24], xmm2
movaps xmmword [esp + 0x50], xmm1
movaps xmmword [esp + 0x40], xmm0
jmp 0x685e05
movaps xmm1, xmmword [esp + 0x50]
movaps xmm0, xmmword [esp + 0x40]
inc edi
add ecx, 0x10
mov dword [esp + 0x14], ecx
cmp edi, dword [esi + 0x48]
jl 0x685cb0
jmp 0x685bf6