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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xec
mov eax, dword [ebp + 0xc]
inc dword [0x10210a0c]
xor edi, edi
xor esi, esi
test eax, eax
jle 0x100989fd
mov edx, dword [ebp + 0x10]
movsd xmm0, qword [0x101e56e0]
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edi
xor ebx, ebx
mov dword [esp + 0x38], ebx
xor ecx, ecx
cmp dword [edx + ecx*4], 0
lea edi, [ecx + 1]
jle 0x100989eb
mov esi, dword [edx + ecx*4]
mov dword [esp + 0x64], edi
xor ebx, ebx
mov eax, dword [ebp + 8]
mov edx, dword [eax + ecx*4]
mov edi, ebx
shl edi, 4
movsd xmm3, qword [edx + edi]
movaps xmm7, xmm3
movaps xmm6, xmm3
movsd xmm2, qword [edx + edi + 8]
movaps xmm5, xmm2
movaps xmm4, xmm2
lea eax, [ebx + 1]
xor edi, edi
cmp eax, esi
cmovne edi, eax
shl edi, 4
movsd xmm1, qword [edi + edx]
movsd xmm0, qword [edi + edx + 8]
mov edx, dword [esp + 0x64]
cmp edx, dword [ebp + 0xc]
maxsd xmm7, xmm1
minsd xmm6, xmm1
maxsd xmm5, xmm0
minsd xmm4, xmm0
jge 0x10098c6d
mov esi, dword [ebp + 0xc]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x68], xmm3
movsd qword [esp + 0xd0], xmm4
movsd qword [esp + 0xc8], xmm5
movsd qword [esp + 0xe0], xmm6
movsd qword [esp + 0xd8], xmm7
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
cmp dword [ecx + edx*4], 0
jle 0x100989c0
mov eax, dword [ecx + edx*4]
mov dword [esp + 0xc4], edx
mov edi, ebx
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0xc4]
mov ecx, dword [ecx + esi*4]
lea ebx, [edi + 1]
xor edx, edx
cmp ebx, eax
cmovne edx, ebx
mov esi, edi
shl esi, 4
movsd xmm2, qword [ecx + esi]
movaps xmm1, xmm2
shl edx, 4
movsd xmm0, qword [edx + ecx]
maxsd xmm1, xmm0
comisd xmm1, xmmword [esp + 0xe0]
jbe 0x100989a7
movaps xmm3, xmm2
movsd xmm1, qword [esp + 0xd8]
minsd xmm3, xmm0
comisd xmm1, xmm3
jbe 0x100989a7
movsd xmm1, qword [esi + ecx + 8]
movaps xmm4, xmm1
movsd xmm3, qword [edx + ecx + 8]
maxsd xmm4, xmm3
comisd xmm4, xmmword [esp + 0xd0]
jbe 0x100989a7
movaps xmm5, xmm1
movsd xmm4, qword [esp + 0xc8]
minsd xmm5, xmm3
comisd xmm4, xmm5
jbe 0x100989a7
movsd xmm5, qword [esp + 0x68]
movsd xmm6, qword [esp + 0x40]
movsd xmm7, qword [esp + 0x48]
movsd qword [esp + 0x98], xmm5
subsd xmm6, xmm5
movsd xmm5, qword [esp + 0x70]
movsd qword [esp + 0xb0], xmm6
movsd qword [esp + 0x90], xmm5
movaps xmm4, xmm6
mulsd xmm6, xmm6
subsd xmm7, xmm5
movsd qword [esp + 0xa8], xmm7
movaps xmm5, xmm7
mulsd xmm7, xmm7
subsd xmm0, xmm2
mulsd xmm5, xmm0
subsd xmm3, xmm1
movsd qword [esp + 0xb8], xmm3
mulsd xmm4, xmm3
mulsd xmm3, xmm3
addsd xmm6, xmm7
sqrtsd xmm7, xmm6
subsd xmm4, xmm5
movsd qword [esp + 0x88], xmm4
movaps xmm5, xmm0
mulsd xmm5, xmm0
addsd xmm5, xmm3
sqrtsd xmm6, xmm5
pxor xmm3, xmm3
movsd xmm5, qword [0x101e56e0]
ucomisd xmm7, xmm3
jne 0x10098451
jp 0x10098451
movaps xmm7, xmm5
pxor xmm3, xmm3
ucomisd xmm6, xmm3
movaps xmm3, xmm7
jne 0x10098463
jp 0x10098463
movaps xmm6, xmm5
mulsd xmm3, xmm6
divsd xmm4, xmm3
movsd xmm5, qword [0x1020c110]
movsd xmm3, qword [esp + 0xb8]
movsd qword [esp + 0xa0], xmm4
comisd xmm5, xmm4
jbe 0x10098690
pxor xmm4, xmm4
subsd xmm4, xmm5
movsd xmm5, qword [esp + 0xa0]
comisd xmm5, xmm4
jbe 0x10098690
mov edi, dword [esp + 0x68]
mov eax, esp
mov dword [eax], edi
mov edi, dword [esp + 0x6c]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x70]
mov dword [eax + 8], edi
mov edi, dword [esp + 0x74]
mov dword [eax + 0xc], edi
movsd xmm0, qword [ecx + esi]
lea eax, [esp + 0x10]
movsd qword [eax], xmm0
movsd xmm1, qword [ecx + esi + 8]
movsd qword [eax + 8], xmm1
lea eax, [esp + 0x20]
movsd xmm2, qword [edx + ecx]
movsd qword [eax], xmm2
movsd xmm3, qword [edx + ecx + 8]
movsd qword [eax + 8], xmm3
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
call fcn.100ab8f0
fstp st(0)
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0xc4]
xor edx, edx
cmp ebx, dword [eax + edi*4]
mov dword [esp + 0x3c], ebx
mov eax, 0
cmovne edx, ebx
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + edi*4]
mov ecx, esp
mov edi, dword [esp + 0x40]
mov dword [ecx], edi
mov edi, dword [esp + 0x44]
mov dword [ecx + 4], edi
shl edx, 4
mov edi, dword [esp + 0x48]
mov dword [ecx + 8], edi
mov edi, dword [esp + 0x4c]
mov dword [ecx + 0xc], edi
movsd xmm0, qword [ebx + esi]
lea ecx, [esp + 0x10]
movsd qword [ecx], xmm0
movsd xmm1, qword [ebx + esi + 8]
movsd qword [ecx + 8], xmm1
lea ecx, [esp + 0x20]
movsd xmm2, qword [edx + ebx]
movsd qword [ecx], xmm2
movsd xmm3, qword [edx + ebx + 8]
movsd qword [ecx + 8], xmm3
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
call fcn.100ab8f0
fstp st(0)
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0xc4]
mov ecx, dword [eax + edx*4]
movsd xmm0, qword [ecx + esi]
mov edi, esp
movsd qword [edi], xmm0
movsd xmm1, qword [ecx + esi + 8]
movsd qword [edi + 8], xmm1
lea ecx, [esp + 0x10]
mov esi, dword [esp + 0x68]
mov dword [ecx], esi
mov esi, dword [esp + 0x6c]
mov dword [ecx + 4], esi
xor esi, esi
mov eax, dword [esp + 0x70]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x74]
mov dword [ecx + 0xc], edx
lea ecx, [esp + 0x20]
mov edi, dword [esp + 0x40]
mov dword [ecx], edi
mov edi, dword [esp + 0x44]
mov dword [ecx + 4], edi
mov eax, dword [esp + 0x48]
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x4c]
mov dword [ecx + 0xc], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
call fcn.100ab8f0
fstp st(0)
mov edi, dword [ebp + 0x10]
mov edx, dword [esp + 0xc4]
mov eax, dword [ebp + 8]
xor esi, esi
xor ecx, ecx
cmp ebx, dword [edi + edx*4]
mov edi, dword [eax + edx*4]
cmovne ecx, ebx
mov eax, esp
lea edx, [esp + 0x10]
shl ecx, 4
movsd xmm0, qword [ecx + edi]
movsd qword [eax], xmm0
movsd xmm1, qword [ecx + edi + 8]
movsd qword [eax + 8], xmm1
mov ecx, dword [esp + 0x68]
mov dword [edx], ecx
mov eax, dword [esp + 0x6c]
mov dword [edx + 4], eax
mov ecx, dword [esp + 0x70]
mov dword [edx + 8], ecx
mov edi, dword [esp + 0x74]
mov dword [edx + 0xc], edi
lea eax, [esp + 0x20]
mov edx, dword [esp + 0x40]
mov dword [eax], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x48]
mov dword [eax + 8], ecx
mov edi, dword [esp + 0x4c]
mov dword [eax + 0xc], edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
call fcn.100ab8f0
fstp st(0)
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0xc4]
mov eax, dword [eax + edx*4]
jmp 0x100989a7
subsd xmm1, qword [esp + 0x90]
movsd xmm5, qword [esp + 0x98]
movsd qword [esp + 0x78], xmm7
movsd xmm7, qword [esp + 0xa8]
movsd qword [esp + 0x80], xmm6
mulsd xmm0, xmm1
movsd xmm6, qword [esp + 0xb0]
movaps xmm4, xmm6
mulsd xmm4, xmm1
movsd xmm1, qword [esp + 0x90]
subsd xmm2, xmm5
mulsd xmm7, xmm2
mulsd xmm3, xmm2
subsd xmm4, xmm7
pxor xmm7, xmm7
subsd xmm7, xmm4
movsd xmm4, qword [esp + 0x88]
divsd xmm7, xmm4
subsd xmm0, xmm3
movsd xmm3, qword [0x101e56e8]
pxor xmm2, xmm2
subsd xmm2, xmm0
divsd xmm2, xmm4
mulsd xmm6, xmm2
movsd xmm0, qword [esp + 0xa8]
mulsd xmm0, xmm2
addsd xmm5, xmm6
movsd qword [esp + 0x98], xmm5
addsd xmm1, xmm0
movsd xmm0, qword [0x1020c0f8]
movsd qword [esp + 0x90], xmm1
movaps xmm1, xmm0
divsd xmm0, qword [esp + 0x80]
divsd xmm1, qword [esp + 0x78]
addsd xmm3, xmm1
comisd xmm2, xmm3
ja 0x10098771
pxor xmm3, xmm3
subsd xmm3, xmm1
comisd xmm3, xmm2
jbe 0x10098790
movsd xmm3, qword [0x101e56e8]
mov edx, 1
xor ecx, ecx
addsd xmm3, xmm0
comisd xmm7, xmm3
ja 0x100989a7
jmp 0x100987d9
movsd xmm3, qword [0x101e56e8]
subsd xmm3, xmm1
comisd xmm3, xmm2
jbe 0x100987c3
comisd xmm2, xmm1
jbe 0x100987c3
movsd xmm3, qword [0x101e56e8]
xor edx, edx
mov ecx, 1
addsd xmm3, xmm0
comisd xmm7, xmm3
ja 0x100987ef
jmp 0x100987d9
movsd xmm3, qword [0x101e56e8]
xor edx, edx
xor ecx, ecx
addsd xmm3, xmm0
comisd xmm7, xmm3
ja 0x100987ef
pxor xmm3, xmm3
subsd xmm3, xmm0
comisd xmm3, xmm7
jbe 0x10098804
test edx, edx
jne 0x100989a7
mov dword [esp + 0xc0], 1
test ecx, ecx
jne 0x100989a7
jmp 0x1009885f
movsd xmm3, qword [0x101e56e8]
subsd xmm3, xmm0
comisd xmm3, xmm7
jbe 0x10098840
comisd xmm7, xmm0
jbe 0x10098840
test ecx, ecx
jne 0x1009890a
test edx, edx
jne 0x100989a7
xor edx, edx
mov dword [esp + 0xc0], edx
mov edx, 1
test ecx, ecx
je 0x10098866
jmp 0x10098851
xor esi, esi
mov dword [esp + 0xc0], esi
test edx, edx
je 0x10098855
xor edx, edx
test ecx, ecx
xor esi, esi
jmp 0x10098886
xor edx, edx
test ecx, ecx
je 0x1009885f
je 0x10098866
jmp 0x10098851
mov edx, 0
jne 0x10098851
comisd xmm1, xmm2
jb 0x10098881
pxor xmm3, xmm3
subsd xmm3, xmm1
comisd xmm2, xmm3
jb 0x10098881
mov esi, 1
jmp 0x10098886
mov esi, 2
test edx, edx
jne 0x100988ec
cmp dword [esp + 0xc0], 0
jne 0x100988d2
comisd xmm0, xmm7
jb 0x100988bd
pxor xmm1, xmm1
subsd xmm1, xmm0
comisd xmm7, xmm1
jb 0x100988bd
or esi, 4
test esi, 1
jne 0x1009890a
test esi, 2
jne 0x1009890a
jmp 0x100988fc
or esi, 8
test esi, 1
jne 0x1009890a
test esi, 2
jne 0x1009890a
jmp 0x100988fc
test esi, 1
jne 0x100989a7
test esi, 2
jne 0x100989a7
jmp 0x100988fc
test esi, 1
jne 0x1009890a
test esi, 2
jne 0x1009890a
test esi, 4
test ecx, ecx
je 0x100989a7
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x38]
jl 0x1009893f
mov edx, dword [esp + 0x38]
mov ecx, edx
add edx, edx
mov eax, 0xa
cmp edx, 0xa
cmovl edx, eax
mov dword [esp + 0x38], edx
push 0x20
push edx
push ecx
push dword [esp + 0x68]
call fcn.100db0e0
add esp, 0x10
mov dword [esp + 0x5c], eax
push 0x20
call fcn.101bcde0
pop ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
movsd xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0x90]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x58]
mov dword [ecx + edx*4], eax
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
mov eax, dword [esp + 0xc4]
mov esi, dword [ecx + edx*4]
mov dword [esi + 0x10], ebx
mov ebx, dword [ecx + edx*4]
mov esi, dword [esp + 0x54]
mov dword [ebx + 0x14], eax
mov ebx, dword [ecx + edx*4]
mov dword [ebx + 0x18], esi
mov ecx, dword [ecx + edx*4]
mov ebx, dword [esp + 0x3c]
mov dword [ecx + 0x1c], edi
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + eax*4]
inc edx
mov dword [esp + 0x60], edx
mov edi, ebx
cmp ebx, eax
jl 0x10098312
mov edx, dword [esp + 0xc4]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
xor ebx, ebx
inc edx
cmp edx, esi
jl 0x100982fc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
mov edx, dword [ebp + 0x10]
mov esi, dword [edx + ecx*4]
mov ebx, eax
cmp eax, esi
jl 0x10098255
mov edi, dword [esp + 0x64]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, edi
cmp edi, eax
jl 0x1009823f
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
push 0x10098160
push 4
push esi
push edi
call fcn.101bec80
mov ebx, dword [ebp + 0x18]
mov dword [ebx], 0
push 0x10
push esi
call fcn.101beb7a
mov edx, dword [ebp + 0x14]
push 4
push esi
mov dword [edx], eax
call fcn.101beb7a
mov edx, dword [ebp + 0x20]
push 4
push esi
mov dword [edx], eax
call fcn.101beb7a
add esp, 0x28
mov edx, dword [ebp + 0x1c]
mov dword [edx], eax
test esi, esi
jle 0x10098c3c
mov edx, dword [ebx]
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edi
xor eax, eax
mov ebx, eax
mov esi, dword [esp + 0x60]
lea ecx, [ebx + 1]
mov dword [esp + 0x40], ecx
mov edi, esi
mov dword [esp + 0x44], ecx
sub edi, ecx
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x5c]
lea edi, [edi + ebx*4]
mov eax, dword [edi]
movsd xmm2, qword [eax]
mov dword [esp + 0x58], edi
cmp ecx, esi
jge 0x10098af4
movsd xmm1, qword [0x1020c110]
xor esi, esi
lea ecx, [ebx*4 + 4]
add ecx, dword [esp + 0x5c]
pxor xmm0, xmm0
subsd xmm0, xmm1
movaps xmm3, xmm2
mov edi, dword [ecx + esi*4]
subsd xmm3, qword [edi]
comisd xmm1, xmm3
jbe 0x10098af4
comisd xmm3, xmm0
jbe 0x10098af4
movsd xmm3, qword [eax + 8]
subsd xmm3, qword [edi + 8]
comisd xmm1, xmm3
jbe 0x10098af4
comisd xmm3, xmm0
jbe 0x10098af4
mov edi, dword [esp + 0x44]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x3c], edx
lea edx, [esi + edi + 1]
inc esi
cmp esi, ebx
jae 0x10098c84
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x3c]
jmp 0x10098a9d
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx]
shl edx, 4
movsd qword [edx + esi], xmm2
movsd xmm0, qword [eax + 8]
movsd qword [edx + esi + 8], xmm0
mov esi, dword [esp + 0x40]
push 0x10
sub esi, ebx
push esi
call fcn.101beb7a
add esp, 8
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x1c]
cmp ebx, dword [esp + 0x40]
mov ecx, dword [edx]
mov edi, dword [edi]
mov dword [edi + ecx*4], eax
mov eax, dword [edx]
mov edx, 0
jge 0x10098c68
mov ebx, dword [ebp + 0x1c]
mov ebx, dword [ebx]
mov dword [esp + 0x64], edx
mov dword [esp + 0x4c], esi
xor ecx, ecx
shl eax, 2
xor edi, edi
mov edx, dword [esp + 0x58]
mov esi, dword [edx + ecx*4]
mov eax, dword [eax + ebx]
mov ebx, dword [esi + 0x10]
mov dword [eax + edi + 8], ebx
mov ebx, dword [ebp + 0x18]
mov eax, dword [edx + ecx*4]
mov esi, dword [ebx]
mov ebx, dword [ebp + 0x1c]
mov ebx, dword [ebx]
mov ebx, dword [ebx + esi*4]
mov esi, dword [eax + 0x14]
mov eax, dword [ebp + 0x18]
inc dword [esp + 0x64]
mov dword [edi + ebx + 0xc], esi
mov esi, dword [ebp + 0x1c]
mov ebx, dword [edx + ecx*4]
mov eax, dword [eax]
mov esi, dword [esi]
mov esi, dword [esi + eax*4]
mov eax, dword [ebx + 0x18]
mov dword [esi + edi], eax
mov ebx, dword [edx + ecx*4]
mov ebx, dword [ebx + 0x1c]
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov esi, dword [eax]
mov edx, dword [edx]
mov esi, dword [edx + esi*4]
inc ecx
cmp ecx, dword [esp + 0x4c]
mov dword [edi + esi + 4], ebx
mov eax, dword [eax]
jae 0x10098c5f
mov edx, dword [esp + 0x64]
shl eax, 2
mov edi, edx
shl edi, 4
test edx, edx
jg 0x10098bcc
mov edx, dword [ebp + 0x1c]
mov ebx, dword [edx]
jmp 0x10098b4f
mov edx, dword [ebp + 0x1c]
mov ebx, dword [edx]
mov edx, dword [ebx + eax]
mov esi, dword [edx + edi - 8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], ebx
mov ebx, esi
mov esi, dword [eax + ecx*4]
cmp ebx, dword [esi + 0x10]
jne 0x10098c52
mov esi, dword [esi + 0x14]
cmp esi, dword [edx + edi - 4]
jne 0x10098c52
inc ecx
cmp ecx, dword [esp + 0x4c]
jb 0x10098be6
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
mov ecx, dword [ebp + 0x20]
mov ebx, dword [ecx]
mov dword [eax + ebx], edx
mov eax, dword [ebp + 0x18]
mov ebx, dword [esp + 0x40]
mov edx, dword [eax]
inc edx
cmp ebx, dword [esp + 0x60]
mov dword [eax], edx
jl 0x10098a54
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
xor ebx, ebx
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x10098c2e
push edi
call fcn.101bceaa
pop ecx
xor eax, eax
add esp, 0xec
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
jmp 0x10098b4f
mov edx, dword [esp + 0x64]
shl eax, 2
jmp 0x10098c06
shl eax, 2
jmp 0x10098c06
mov ebx, eax
cmp eax, esi
jl 0x10098255
mov edi, edx
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
jmp 0x100989eb
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x3c]
jmp 0x10098af4