Function at 0x1002cc20
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 0x1002cd52
mov ecx, dword [esi + 0x18]
xor ebx, ebx
mov edx, 0
cmp eax, 8
jb 0x1002cd32
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 0x1002cc60
movdqa xmm2, xmmword [0x10034040]
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 0x1002cd54
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 0x1002cd40
jmp 0x1002cd54
xor ebx, ebx
mov eax, dword [esi + 0x24]
test eax, eax
je 0x1002cd79
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
push eax
call fcn.10009440
add esp, 4
mov dword [esi + 0x24], 0
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1002cd9e
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
push eax
call fcn.10009440
add esp, 4
mov dword [esi + 0x30], 0
lea eax, [ebx + 1]
mov ecx, esi
mov dword [esp + 4], eax
push eax
call fcn.1002cff0
mov ebp, dword [esi + 0x10]
test ebp, ebp
jle 0x1002cde7
xor eax, eax
mov ecx, 4
nop dword [eax + eax]
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 0x1002cdc0
mov eax, dword [esi + 0x28]
cmp eax, 0x21
jl 0x1002ce10
mov ecx, dword [esi + 0x30]
movzx ecx, word [ecx + 0x40]
cmp ecx, 0xffff
je 0x1002ce10
lea ecx, [ecx + ecx*4]
shl ecx, 3
add ecx, dword [esi + 0x18]
test ecx, ecx
jne 0x1002ce1b
jmp 0x1002cf30
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x1002cf30
mov edi, dword [esi + 0x18]
lea ecx, [ebp - 1]
lea edx, [ecx + ecx*4]
cmp word [edi + edx*8], 9
jne 0x1002ce32
mov ebp, ecx
jmp 0x1002ceba
lea ecx, [ebp + 1]
mov dword [esp], ecx
mov edx, dword [esi + 0x14]
cmp edx, ebp
jg 0x1002ceb4
test edx, edx
je 0x1002ce50
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
add ecx, edx
jmp 0x1002ce55
mov ecx, 8
cmp ecx, dword [esp]
cmovle ecx, dword [esp]
cmp edx, ecx
mov edx, dword [esp]
jge 0x1002ceb7
mov dword [esp + 8], ecx
lea eax, [ecx*8]
lea eax, [eax + eax*4]
push eax
call fcn.100089d0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x18]
test eax, eax
je 0x1002ce9c
mov ecx, dword [esi + 0x10]
shl ecx, 3
lea ecx, [ecx + ecx*4]
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x18]
jmp 0x1002ce9e
xor eax, eax
push eax
call fcn.10009440
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, 0x21
jl 0x1002cee1
mov eax, dword [esi + 0x30]
movzx eax, word [eax + 0x40]
cmp eax, 0xffff
je 0x1002cee1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
jmp 0x1002cee4
mov eax, dword [esi + 0x34]
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 [0x10034b14]
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]
mov dword [esi + 0x34], 0
movzx ecx, word [esi + 0x3c]
xorps xmm0, xmm0
cmp eax, ecx
jle 0x1002cf67
mov eax, dword [esi + 0x30]
movzx ecx, word [eax + ecx*2]
cmp ecx, 0xffff
je 0x1002cf67
mov eax, dword [esi + 0x18]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov dword [esi + 0x34], edx
test eax, eax
je 0x1002cf67
movss xmm0, dword [eax + ecx*8 + 4]
movss dword [esi + 0x38], xmm0
test ebx, ebx
je 0x1002cfb1
mov ebx, dword [esp + 4]
mov ecx, ebx
and ecx, 0xfffffffe
xor eax, eax
xorps xmm0, xmm0
jmp 0x1002cf87
add eax, 2
cmp ecx, eax
je 0x1002cfb7
mov edx, dword [esi + 0x24]
ucomiss xmm0, dword [edx + eax*4]
jbe 0x1002cf9a
movd xmm1, dword [esi + 0x38]
movd dword [edx + eax*4], xmm1
mov edx, dword [esi + 0x24]
ucomiss xmm0, dword [edx + eax*4 + 4]
jbe 0x1002cf80
movd xmm1, dword [esi + 0x38]
movd dword [edx + eax*4 + 4], xmm1
jmp 0x1002cf80
xor eax, eax
mov ebx, dword [esp + 4]
test bl, 1
je 0x1002cfd2
mov ecx, dword [esi + 0x24]
xorps xmm0, xmm0
ucomiss xmm0, dword [ecx + eax*4]
jbe 0x1002cfd2
movss xmm0, dword [esi + 0x38]
movss dword [ecx + eax*4], xmm0
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret