Function at 0x1003cab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push esi
push edi
push ebx
sub esp, 0xf4
movss xmm4, dword [0x1036b8ec]
movaps xmm5, xmm4
mov ebx, dword [ebp + 0x10]
test ebx, ebx
subss xmm5, dword [ebp + 0x14]
jbe 0x1003ce84
mov eax, dword [ebp + 0xc]
xor edi, edi
mov esi, dword [ebp + 0x18]
mov ebx, eax
movss dword [esp + 0xb4], xmm4
movss dword [esp + 0xb0], xmm5
pxor xmm0, xmm0
cvtss2sd xmm0, dword [ebx + edi*4]
movsd qword [esp], xmm0
mov dword [esp + 8], 0xffffffff
call fcn.10009ad0
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
cvtsd2ss xmm1, xmm1
mov edx, dword [ebp + 8]
subss xmm1, dword [esi + edi*4]
movss dword [esp + edi*4 + 0x60], xmm1
cmp dword [edx + edi*4], 0
jne 0x1003cb49
movss xmm0, dword [esp + 0xb4]
minss xmm0, xmm1
movss dword [esp + 0xb4], xmm0
inc edi
cmp edi, dword [ebp + 0x10]
jb 0x1003caf6
xor eax, eax
pxor xmm0, xmm0
mov edx, eax
movaps xmm1, xmm0
xor edi, edi
mov ebx, dword [ebp + 0x10]
mov eax, ebx
mov esi, dword [ebp + 8]
mov ebx, edx
movss xmm4, dword [esp + 0xb4]
movss xmm5, dword [esp + 0xb0]
movss dword [esp + 0x10], xmm1
movss dword [esp + 0x18], xmm0
cmp dword [esi + edi*4], 0
jne 0x1003cbed
movss xmm0, dword [esp + edi*4 + 0x60]
subss xmm0, dword [esp + 0xb4]
movss dword [esp + 0x14], xmm0
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
mov dword [esp + 8], 0xfffffffb
call fcn.10009ad0
fstp qword [esp + 0x20]
inc ebx
movsd xmm0, qword [esp + 0x20]
cvtsd2ss xmm0, xmm0
movss xmm1, dword [esp + 0x18]
movss xmm2, dword [esp + 0x10]
addss xmm1, xmm0
movss xmm3, dword [esp + 0x14]
mov eax, dword [ebp + 0x10]
maxss xmm3, xmm2
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x10], xmm3
inc edi
cmp edi, eax
jb 0x1003cb84
mov edx, eax
mov eax, ebx
movss xmm4, dword [esp + 0xb4]
mov ebx, edx
movss xmm1, dword [esp + 0x10]
test eax, eax
movss xmm0, dword [esp + 0x18]
movss xmm5, dword [esp + 0xb0]
jbe 0x1003ce84
mulss xmm0, dword [eax*4 + 0x1036b87c]
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
mov dword [esp + 8], 5
mov edi, dword [ebp + 0x1c]
movss dword [esp + 0x10], xmm1
movss dword [esp + 0xb4], xmm4
movss dword [esp + 0xb0], xmm5
call fcn.10009ad0
fstp qword [esp + 0x20]
cmp ebx, 4
movsd xmm0, qword [esp + 0x20]
movss xmm1, dword [esp + 0x10]
cvtsd2ss xmm0, xmm0
mulss xmm1, dword [0x1036b8e0]
mulss xmm0, dword [0x1036b8e4]
movss xmm4, dword [esp + 0xb4]
movss xmm5, dword [esp + 0xb0]
addss xmm4, xmm1
addss xmm4, xmm0
jb 0x1003ce91
movss xmm1, dword [ebp + 0x14]
movaps xmm3, xmm4
mov edx, ebx
movaps xmm0, xmm5
mov ecx, dword [ebp + 0x18]
and edx, 0xfffffffc
mov esi, dword [ebp + 8]
xor eax, eax
shufps xmm3, xmm3, 0
movaps xmm2, xmmword [0x1036b8d0]
shufps xmm1, xmm1, 0
shufps xmm0, xmm0, 0
movss dword [esp + 0xb0], xmm5
movdqu xmm6, xmmword [esi + eax*4]
pxor xmm5, xmm5
pcmpeqd xmm7, xmm7
pcmpeqd xmm6, xmm5
movups xmm5, xmmword [ecx + eax*4]
pxor xmm6, xmm7
movaps xmm7, xmm6
andps xmm7, xmm5
addps xmm5, xmmword [esp + eax*4 + 0x60]
subps xmm5, xmm3
andnps xmm6, xmm5
orps xmm7, xmm6
movaps xmmword [esp + eax*4 + 0x60], xmm7
movups xmm6, xmmword [ecx + eax*4]
minps xmm6, xmm7
movaps xmmword [esp + eax*4 + 0x60], xmm6
movups xmm5, xmmword [edi + eax*4]
movups xmm7, xmmword [ecx + eax*4]
addps xmm5, xmm6
subps xmm5, xmm7
movaps xmm7, xmm6
mulps xmm6, xmm1
subps xmm7, xmm2
minps xmm5, xmm7
movaps xmmword [esp + eax*4 + 0x10], xmm5
movups xmm7, xmmword [edi + eax*4]
mulps xmm5, xmm1
mulps xmm7, xmm0
addps xmm5, xmm7
movaps xmmword [esp + eax*4 + 0x10], xmm5
movups xmm5, xmmword [ecx + eax*4]
mulps xmm5, xmm0
addps xmm6, xmm5
movaps xmmword [esp + eax*4 + 0x60], xmm6
add eax, 4
cmp eax, edx
jb 0x1003ccd3
movss xmm5, dword [esp + 0xb0]
cmp edx, ebx
jae 0x1003cdf6
movss xmm3, dword [0x1036b8e8]
movss dword [esp + 0xb4], xmm4
movss xmm2, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 8]
movss xmm1, dword [eax + edx*4]
cmp dword [ecx + edx*4], 0
je 0x1003cd99
movaps xmm4, xmm1
jmp 0x1003cdab
movaps xmm4, xmm1
subss xmm4, dword [esp + 0xb4]
addss xmm4, dword [esp + edx*4 + 0x60]
movaps xmm0, xmm1
movss xmm6, dword [edi + edx*4]
minss xmm0, xmm4
movaps xmm7, xmm6
movaps xmm4, xmm0
mulss xmm6, xmm5
addss xmm7, xmm0
subss xmm4, xmm3
mulss xmm0, xmm2
subss xmm7, xmm1
mulss xmm1, xmm5
addss xmm0, xmm1
minss xmm7, xmm4
mulss xmm7, xmm2
movss dword [esp + edx*4 + 0x60], xmm0
addss xmm7, xmm6
movss dword [esp + edx*4 + 0x10], xmm7
inc edx
cmp edx, ebx
jb 0x1003cd89
mov edx, 0x50
mov eax, dword [ebp + 0x18]
movsd xmm0, qword [esp + edx + 0x58]
movsd qword [eax + edx - 8], xmm0
movsd xmm1, qword [esp + edx + 0x50]
movsd qword [eax + edx - 0x10], xmm1
movsd xmm2, qword [esp + edx + 0x48]
movsd qword [eax + edx - 0x18], xmm2
movsd xmm3, qword [esp + edx + 0x40]
movsd qword [eax + edx - 0x20], xmm3
movsd xmm4, qword [esp + edx + 0x38]
movsd qword [eax + edx - 0x28], xmm4
sub edx, 0x28
jne 0x1003cdfb
mov eax, 0x50
movsd xmm0, qword [esp + eax + 8]
movsd qword [edi + eax - 8], xmm0
movsd xmm1, qword [esp + eax]
movsd qword [edi + eax - 0x10], xmm1
movsd xmm2, qword [esp + eax - 8]
movsd qword [edi + eax - 0x18], xmm2
movsd xmm3, qword [esp + eax - 0x10]
movsd qword [edi + eax - 0x20], xmm3
movsd xmm4, qword [esp + eax - 0x18]
movsd qword [edi + eax - 0x28], xmm4
sub eax, 0x28
jne 0x1003ce44
add esp, 0xf4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor edx, edx
jmp 0x1003cd65