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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, ecx
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x1002f1f2
mov ecx, dword [esi + 0x18]
xor ebx, ebx
mov edx, 0
cmp eax, 8
jb 0x1002f1d2
mov edx, eax
and edx, 0xfffffff8
pxor xmm2, xmm2
mov edi, edx
mov ebx, ecx
pxor xmm0, xmm0
pxor xmm1, xmm1
nop dword [eax]
movd xmm4, dword [ebx]
pinsrw xmm4, word [ebx + 0x28], 1
pinsrw xmm4, word [ebx + 0x50], 2
pinsrw xmm4, word [ebx + 0x78], 3
movd xmm3, dword [ebx + 0xa0]
pinsrw xmm3, word [ebx + 0xc8], 1
pinsrw xmm3, word [ebx + 0xf0], 2
pinsrw xmm3, word [ebx + 0x118], 3
punpcklwd xmm4, xmm2
punpcklwd xmm3, xmm2
movdqa xmm5, xmm0
pcmpgtd xmm0, xmm4
pand xmm5, xmm0
pandn xmm0, xmm4
por xmm0, xmm5
movdqa xmm4, xmm1
pcmpgtd xmm1, xmm3
pand xmm4, xmm1
pandn xmm1, xmm3
por xmm1, xmm4
add ebx, 0x140
add edi, 0xfffffff8
jne 0x1002f100
movdqa xmm2, xmmword [0x10058730]
movdqa xmm3, xmm1
pxor xmm3, xmm2
pxor xmm2, xmm0
pcmpgtd xmm2, xmm3
pand xmm0, xmm2
pandn xmm2, xmm1
por xmm2, xmm0
pshufd xmm0, xmm2, 0xee
movdqa xmm1, xmm2
pcmpgtd xmm1, xmm0
pand xmm2, xmm1
pandn xmm1, xmm0
por xmm1, xmm2
pshufd xmm0, xmm1, 0x55
movdqa xmm2, xmm1
pcmpgtd xmm2, xmm0
pand xmm1, xmm2
pandn xmm2, xmm0
por xmm2, xmm1
movd ebx, xmm2
cmp eax, edx
je 0x1002f1f4
sub eax, edx
lea edx, [edx + edx*4]
lea ecx, [ecx + edx*8]
mov edx, ebx
nop dword [eax]
movzx ebx, word [ecx]
cmp edx, ebx
cmovg ebx, edx
add ecx, 0x28
mov edx, ebx
dec eax
jne 0x1002f1e0
jmp 0x1002f1f4
xor ebx, ebx
mov eax, dword [esi + 0x24]
test eax, eax
je 0x1002f219
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
push eax
call fcn.1000ab70
add esp, 4
mov dword [esi + 0x24], 0
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1002f23e
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
push eax
call fcn.1000ab70
add esp, 4
mov dword [esi + 0x30], 0
mov byte [esi + 0x50], 0
lea eax, [ebx + 1]
mov ecx, esi
mov dword [esp + 4], eax
push eax
call fcn.1002fb90
mov ebp, dword [esi + 0x10]
test ebp, ebp
jle 0x1002f287
xor eax, eax
mov ecx, 4
nop
mov edx, dword [esi + 0x18]
mov edi, dword [esi + 0x24]
movzx ebp, word [edx + ecx - 4]
movd xmm0, dword [edx + ecx]
movd dword [edi + ebp*4], xmm0
mov edx, dword [esi + 0x30]
mov word [edx + ebp*2], ax
inc eax
mov ebp, dword [esi + 0x10]
add ecx, 0x28
cmp eax, ebp
jl 0x1002f260
mov eax, dword [esi + 0x28]
cmp eax, 0x20
jle 0x1002f29e
mov ecx, dword [esi + 0x30]
movzx ecx, word [ecx + 0x40]
cmp ecx, 0xffff
jne 0x1002f2aa
mov ecx, dword [esi + 0x34]
test ecx, ecx
jne 0x1002f2bb
jmp 0x1002f3d0
lea ecx, [ecx + ecx*4]
shl ecx, 3
add ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1002f3d0
mov edi, dword [esi + 0x18]
lea ecx, [ebp - 1]
lea edx, [ecx + ecx*4]
cmp word [edi + edx*8], 9
jne 0x1002f2d2
mov ebp, ecx
jmp 0x1002f35a
lea ecx, [ebp + 1]
mov dword [esp], ecx
mov edx, dword [esi + 0x14]
cmp edx, ebp
jg 0x1002f354
test edx, edx
je 0x1002f2f0
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
add ecx, edx
jmp 0x1002f2f5
mov ecx, 8
cmp ecx, dword [esp]
cmovle ecx, dword [esp]
cmp edx, ecx
mov edx, dword [esp]
jge 0x1002f357
mov dword [esp + 8], ecx
lea eax, [ecx*8]
lea eax, [eax + eax*4]
push eax
call fcn.10009f30
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x18]
test eax, eax
je 0x1002f33c
mov ecx, dword [esi + 0x10]
shl ecx, 3
lea ecx, [ecx + ecx*4]
push ecx
push eax
push edi
call fcn.1003be10
add esp, 0xc
mov eax, dword [esi + 0x18]
jmp 0x1002f33e
xor eax, eax
push eax
call fcn.1000ab70
add esp, 4
mov dword [esi + 0x18], edi
mov eax, dword [esp + 8]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x28]
mov edx, dword [esp]
mov dword [esi + 0x10], edx
lea edx, [ebp*4]
add edx, ebp
lea ecx, [edi + edx*8]
cmp eax, 0x20
jle 0x1002f379
mov eax, dword [esi + 0x30]
movzx eax, word [eax + 0x40]
cmp eax, 0xffff
jne 0x1002f37e
mov eax, dword [esi + 0x34]
jmp 0x1002f384
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
movups xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movups xmmword [ecx], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [ecx + 0x20], xmm0
movdqu xmmword [ecx + 0x10], xmm1
mov word [ecx], 9
movss xmm0, dword [edi + edx*8 + 4]
mulss xmm0, dword [0x10058654]
movss dword [edi + edx*8 + 4], xmm0
mov eax, dword [esi + 0x24]
movss dword [eax + 0x24], xmm0
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x30]
dec eax
movzx ecx, word [ecx]
mov word [edx + ecx*2], ax
mov eax, dword [esi + 0x28]
movzx ecx, word [esi + 0x3c]
cmp eax, ecx
jle 0x1002f3ff
mov eax, dword [esi + 0x30]
movzx ecx, word [eax + ecx*2]
cmp ecx, 0xffff
je 0x1002f3ff
mov eax, dword [esi + 0x18]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov dword [esi + 0x34], edx
test eax, eax
je 0x1002f406
movss xmm0, dword [eax + ecx*8 + 4]
jmp 0x1002f409
mov dword [esi + 0x34], 0
xorps xmm0, xmm0
movss dword [esi + 0x38], xmm0
test ebx, ebx
je 0x1002f461
mov ebx, dword [esp + 4]
mov ecx, ebx
and ecx, 0xfffffffe
xor eax, eax
xorps xmm0, xmm0
jmp 0x1002f437
add eax, 2
cmp ecx, eax
je 0x1002f467
mov edx, dword [esi + 0x24]
ucomiss xmm0, dword [edx + eax*4]
jbe 0x1002f44a
movd xmm1, dword [esi + 0x38]
movd dword [edx + eax*4], xmm1
mov edx, dword [esi + 0x24]
ucomiss xmm0, dword [edx + eax*4 + 4]
jbe 0x1002f430
movd xmm1, dword [esi + 0x38]
movd dword [edx + eax*4 + 4], xmm1
jmp 0x1002f430
xor eax, eax
mov ebx, dword [esp + 4]
test bl, 1
je 0x1002f482
mov ecx, dword [esi + 0x24]
xorps xmm0, xmm0
ucomiss xmm0, dword [ecx + eax*4]
jbe 0x1002f482
movss xmm0, dword [esi + 0x38]
movss dword [ecx + eax*4], xmm0
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret