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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x50
mov ebx, edx
movss xmm3, dword [esp + 0x74]
mov edx, eax
mov esi, dword [esp + 0x7c]
movaps xmm2, xmm3
test esi, esi
jne 0x1002ef84
mov dword [esp + 0xc], 0xc1
lea esi, [esp + 0xc]
mov eax, dword [esp + 0x70]
lea edi, [ecx + ecx*2]
shr edi, 3
mov ecx, 0xc0
cmp edi, 0xc0
lea eax, [eax + eax*2]
cmovae edi, ecx
shr eax, 3
cmp eax, 0xc0
cmovb ecx, eax
mov eax, edi
cmp edi, ecx
ja 0x1002f23c
mov dword [esp + 0x28], edi
mov ebp, eax
mov dword [esp + 0x48], esi
movss dword [esp + 0x4c], xmm2
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], edx
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x78]
mov eax, 0xaaaaaaab
lea ecx, [ebp*8]
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x1002f04c
mov ecx, dword [esp + 0x34]
movss xmm4, dword [ebx + edx*8 + 4]
movaps xmm2, xmm4
movss xmm0, dword [ecx + edx*8 + 4]
movaps xmm1, xmm0
xorps xmm1, xmmword [0x10365b70]
movaps xmm5, xmm1
movss xmm3, dword [ecx + edx*8]
subss xmm5, xmm0
mulss xmm1, xmm0
mulss xmm5, xmm3
mulss xmm3, xmm3
movss xmm0, dword [ebx + edx*8]
addss xmm3, xmm1
movaps xmm1, xmm0
mulss xmm1, xmm5
mulss xmm2, xmm3
mulss xmm0, xmm3
mulss xmm5, xmm4
subss xmm1, xmm2
addss xmm0, xmm5
jmp 0x1002f17b
cmp ecx, 1
movss xmm5, dword [ebx + edx*8]
movss xmm3, dword [ebx + edx*8 + 4]
movss xmm0, dword [ebx + edx*8 + 8]
movss xmm1, dword [ebx + edx*8 + 0xc]
jne 0x1002f079
movss dword [esp + 0x3c], xmm3
movaps xmm4, xmm5
movaps xmm5, xmm0
movaps xmm3, xmm1
jmp 0x1002f082
movss dword [esp + 0x3c], xmm1
movaps xmm4, xmm0
movaps xmm2, xmm4
movaps xmm7, xmm5
mulss xmm2, xmm4
movaps xmm6, xmm3
mulss xmm7, xmm5
mulss xmm6, xmm3
movss xmm1, dword [esp + 0x3c]
movaps xmm0, xmm2
mulss xmm1, xmm1
addss xmm7, xmm6
addss xmm0, xmm1
mulss xmm0, xmm0
mulss xmm0, xmm7
movaps xmm6, xmm0
xorps xmm6, xmmword [0x10365b70]
movss dword [esp + 0x38], xmm1
maxss xmm6, xmm0
movss xmm1, dword [0x10365b9c]
comiss xmm1, xmm6
ja 0x1002f0e9
pxor xmm1, xmm1
ucomiss xmm0, xmm1
jp 0x1002f0e0
je 0x1002f0e9
pxor xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1002f0f6
pxor xmm1, xmm1
pxor xmm0, xmm0
jmp 0x1002f17b
movss dword [esp], xmm0
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x1c], xmm4
movss dword [esp + 0x20], xmm3
movss dword [esp + 0x24], xmm5
call fcn.1003e7e0
fstp dword [esp + 0x2c]
movss xmm5, dword [esp + 0x24]
movss xmm3, dword [esp + 0x20]
movss xmm4, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x18]
movss xmm0, dword [esp + 0x2c]
mulss xmm4, dword [0x10365ba0]
movaps xmm1, xmm3
subss xmm2, dword [esp + 0x38]
mulss xmm4, dword [esp + 0x3c]
mulss xmm1, xmm2
mulss xmm3, xmm4
movaps xmm6, xmm5
mulss xmm6, xmm4
mulss xmm5, xmm2
addss xmm1, xmm6
subss xmm5, xmm3
xorps xmm1, xmmword [0x10365b70]
mulss xmm1, xmm0
mulss xmm0, xmm5
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
cmp ebp, eax
jb 0x1002f19d
neg eax
add eax, ebp
mov ecx, dword [edx + 8]
movss xmm2, dword [ecx + eax*4]
mulss xmm2, dword [esp + 0x74]
movss dword [esp + 0x4c], xmm2
mulss xmm1, dword [esp + 0x4c]
test edi, edi
cvtss2sd xmm1, xmm1
jl 0x1002f53b
movsd qword [esp], xmm1
mov dword [esp + 8], edi
movss dword [esp + 0x40], xmm0
call fcn.10009ad0
fstp qword [esp + 0x2c]
movsd xmm1, qword [esp + 0x2c]
movss xmm0, dword [esp + 0x40]
cvtsd2ss xmm1, xmm1
mulss xmm0, dword [esp + 0x4c]
test edi, edi
addss xmm1, dword [esi + ebp*8]
cvtss2sd xmm0, xmm0
movss dword [esi + ebp*8], xmm1
jl 0x1002f528
movsd qword [esp], xmm0
mov dword [esp + 8], edi
call fcn.10009ad0
fstp qword [esp + 0x2c]
movsd xmm0, qword [esp + 0x2c]
cvtsd2ss xmm0, xmm0
addss xmm0, dword [esi + ebp*8 + 4]
movss dword [esi + ebp*8 + 4], xmm0
inc ebp
cmp ebp, dword [esp + 0x44]
jbe 0x1002efd7
movss xmm3, dword [esp + 0x74]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
mov eax, 1
cmp edi, 1
movss xmm2, dword [esp + 0x74]
cmovb edi, eax
mov eax, 0x17
cmp ecx, 0x17
cmova ecx, eax
cmp edi, ecx
ja 0x1002f4f7
movss dword [esp + 0x48], xmm2
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebx
mov ebp, dword [esp + 0x78]
mov eax, 0xaaaaaaab
lea ebx, [edi*8]
mul ebx
shr edx, 1
mov eax, ebx
lea ecx, [edx + edx*2]
shl edx, 3
sub eax, ecx
jne 0x1002f302
mov eax, dword [esp + 0x34]
sub eax, edx
neg edx
add edx, dword [esp + 0x38]
movss xmm0, dword [eax + 0x804]
movaps xmm1, xmm0
xorps xmm1, xmmword [0x10365b70]
movaps xmm5, xmm1
movss xmm3, dword [eax + 0x800]
subss xmm5, xmm0
mulss xmm1, xmm0
mulss xmm5, xmm3
mulss xmm3, xmm3
movss xmm4, dword [edx + 0x804]
addss xmm3, xmm1
movss xmm1, dword [edx + 0x800]
movaps xmm2, xmm4
movaps xmm0, xmm1
mulss xmm0, xmm5
mulss xmm2, xmm3
mulss xmm1, xmm3
mulss xmm5, xmm4
subss xmm0, xmm2
addss xmm1, xmm5
jmp 0x1002f441
neg edx
add edx, dword [esp + 0x38]
cmp eax, 1
movss xmm5, dword [edx + 0x800]
movss xmm4, dword [edx + 0x804]
movss xmm0, dword [edx + 0x7f8]
movss xmm1, dword [edx + 0x7fc]
jne 0x1002f33b
movaps xmm6, xmm5
movaps xmm3, xmm4
movaps xmm5, xmm0
movaps xmm4, xmm1
jmp 0x1002f341
movaps xmm6, xmm0
movaps xmm3, xmm1
movaps xmm2, xmm6
movaps xmm1, xmm3
mulss xmm2, xmm6
movaps xmm7, xmm4
mulss xmm1, xmm3
mulss xmm7, xmm4
movaps xmm0, xmm2
movss dword [esp + 0x3c], xmm1
addss xmm0, xmm1
movaps xmm1, xmm5
mulss xmm1, xmm5
mulss xmm0, xmm0
addss xmm1, xmm7
mulss xmm0, xmm1
movaps xmm1, xmm0
xorps xmm1, xmmword [0x10365b70]
movss xmm7, dword [0x10365b9c]
maxss xmm1, xmm0
comiss xmm7, xmm1
ja 0x1002f3a5
pxor xmm1, xmm1
ucomiss xmm0, xmm1
jp 0x1002f39c
je 0x1002f3a5
pxor xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1002f3b2
pxor xmm0, xmm0
pxor xmm1, xmm1
jmp 0x1002f441
movss dword [esp], xmm0
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x1c], xmm3
movss dword [esp + 0x20], xmm6
movss dword [esp + 0x24], xmm4
movss dword [esp + 0x28], xmm5
call fcn.1003e7e0
fstp dword [esp + 0x2c]
movss xmm5, dword [esp + 0x28]
movss xmm4, dword [esp + 0x24]
movss xmm6, dword [esp + 0x20]
movss xmm3, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x18]
movss xmm1, dword [esp + 0x2c]
mulss xmm6, dword [0x10365ba0]
movaps xmm0, xmm4
subss xmm2, dword [esp + 0x3c]
mulss xmm6, xmm3
mulss xmm0, xmm2
mulss xmm4, xmm6
movaps xmm3, xmm5
mulss xmm3, xmm6
mulss xmm5, xmm2
addss xmm0, xmm3
subss xmm5, xmm4
xorps xmm0, xmmword [0x10365b70]
mulss xmm0, xmm1
mulss xmm1, xmm5
mov edx, dword [esi]
cmp edi, edx
jb 0x1002f45f
neg edx
add edx, edi
mov eax, dword [esi + 8]
movss xmm2, dword [eax + edx*4]
mulss xmm2, dword [esp + 0x74]
movss dword [esp + 0x48], xmm2
mulss xmm0, dword [esp + 0x48]
test ebp, ebp
cvtss2sd xmm0, xmm0
jl 0x1002f50f
movsd qword [esp], xmm0
mov dword [esp + 8], ebp
movss dword [esp + 0x40], xmm1
call fcn.10009ad0
fstp qword [esp + 0x2c]
movsd xmm0, qword [esp + 0x2c]
movss xmm1, dword [esp + 0x40]
cvtsd2ss xmm0, xmm0
neg ebx
add ebx, dword [esp + 0x80]
mulss xmm1, dword [esp + 0x48]
test ebp, ebp
addss xmm0, dword [ebx + 0x800]
cvtss2sd xmm1, xmm1
movss dword [ebx + 0x800], xmm0
jl 0x1002f4ff
movsd qword [esp], xmm1
mov dword [esp + 8], ebp
call fcn.10009ad0
fstp qword [esp + 0x2c]
movsd xmm0, qword [esp + 0x2c]
cvtsd2ss xmm0, xmm0
inc edi
addss xmm0, dword [ebx + 0x804]
movss dword [ebx + 0x804], xmm0
cmp edi, dword [esp + 0x44]
jbe 0x1002f276
add esp, 0x50
pop ebp
pop ebx
pop edi
pop esi
ret
movsd qword [esp], xmm1
mov dword [esp + 8], ebp
call fcn.10009ad0
jmp 0x1002f4ce
movsd qword [esp], xmm0
mov dword [esp + 8], ebp
movss dword [esp + 0x40], xmm1
call fcn.10009ad0
jmp 0x1002f485
movsd qword [esp], xmm0
mov dword [esp + 8], edi
call fcn.10009ad0
jmp 0x1002f201
movsd qword [esp], xmm1
mov dword [esp + 8], edi
movss dword [esp + 0x40], xmm0
call fcn.10009ad0
jmp 0x1002f1c3