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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov eax, dword [0x1006b040]
xor eax, esp
mov dword [esp + 0xc0], eax
movss xmm0, dword [0x10066d8c]
mov dword [esp + 0x10], ecx
mov ecx, dword [0x3845c9a8]
push ebx
push esi
or esi, 0xffffffff
mov dword [esp + 0x1c], edx
mov eax, dword [ecx]
push edi
mov dword [esp + 0x10], esi
movss dword [esp + 0x18], xmm0
call dword [eax + 0xf4]
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov edi, eax
push 4
push edi
mov dword [esp + 0x2c], edi
call ebx
test eax, eax
jne 0x10007b37
test edi, edi
je 0x10007b37
xor esi, esi
cmp dword [edi + 0x18c], esi
jbe 0x10007b1f
nop word [eax + eax]
mov eax, dword [edi + 0x184]
push 4
mov edi, dword [eax + esi*4]
push edi
call ebx
test eax, eax
jne 0x10007af5
test edi, edi
je 0x10007af5
mov ebx, dword [edi + 0x10]
push 4
push ebx
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10007aef
test ebx, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
je 0x10007af5
push 4
push 0x38410350
call ebx
test eax, eax
jne 0x10007af5
mov ecx, dword [0x3841036c]
lea edx, [esp + 0x70]
mov eax, dword [0x3845ce7c]
push 1
push edx
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
push 8
push dword [edi + 0x10]
call dword [eax + 0x40]
cmp dword [edi + 0x40], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x13c]
movq xmm0, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movq qword [esp + 0x28], xmm0
mov dword [esp + 0x30], eax
jne 0x10007af5
cmp dword [esp + 0x1c], 1
jne 0x10007a37
mov eax, dword [0x3845ce7c]
xorps xmm0, xmm0
mov ecx, dword [0x38410350]
movlpd qword [esp + 0x34], xmm0
mov dword [esp + 0x3c], 0
movlpd qword [esp + 0x4c], xmm0
movlpd qword [esp + 0x54], xmm0
movlpd qword [esp + 0x5c], xmm0
movlpd qword [esp + 0x64], xmm0
mov dword [esp + 0x6c], 0
mov eax, dword [eax + 0x13c]
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x34], xmm0
mov eax, dword [eax + 0x18]
movq xmm0, qword [esp + 0x70]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x78]
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x38]
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0x38]
push ecx
call eax
add esp, 8
test al, al
jne 0x10007af5
movq xmm0, qword [esp + 0x70]
sub esp, 0xc
mov eax, dword [esp + 0x84]
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x13c]
movq xmm0, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movq qword [ecx], xmm0
movd xmm0, dword [esp + 0x38]
cvtdq2ps xmm0, xmm0
mov dword [ecx + 8], eax
call fcn.10007430
add esp, 0x18
test eax, eax
je 0x10007af5
movss xmm1, dword [esp + 0x2c]
movss xmm2, dword [esp + 0x28]
subss xmm2, dword [esp + 0x70]
subss xmm1, dword [esp + 0x74]
movss xmm0, dword [esp + 0x30]
subss xmm0, dword [esp + 0x78]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x10007acd
sqrtsd xmm0, xmm0
jmp 0x10007ad2
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movss xmm1, dword [esp + 0x18]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x10007af5
mov eax, esi
movss dword [esp + 0x18], xmm0
mov dword [esp + 0x10], eax
jmp 0x10007af9
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
inc esi
cmp esi, dword [edi + 0x18c]
jb 0x10007910
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.10051626
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.10051626
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xcc]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10051626
mov esp, ebp
pop ebp
ret