Function at 0x1007f6c0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x78
cmp dword [ebx + 0xc], 4
xorps xmm5, xmm5
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x3c], 0x80000000
movss xmm6, dword [ebp - 0x3c]
push esi
mov eax, dword [ecx]
mov esi, 1
push edi
shufps xmm6, xmm6, 0x1b
jl 0x1007f91e
cdq
mov edi, esi
and edx, 3
shl esi, 2
add eax, edx
mov dword [ebp - 4], edi
xor edx, edx
sar eax, 2
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], edx
cmp dword [ebx + 0x10], edx
jle 0x1007f90b
mov eax, dword [ebx + 8]
lea ecx, [edi*8]
shl esi, 3
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x1c], eax
add eax, ecx
mov dword [ebp - 0x34], eax
lea esi, [eax + 8]
mov dword [ebp - 0x18], esi
mov esi, edi
shl esi, 4
lea edi, [ecx + esi]
sub esi, ecx
add edi, dword [ebx + 8]
mov dword [ebp - 0x20], esi
mov esi, 8
sub esi, ecx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x40], esi
mov esi, dword [ebp - 0x2c]
cmp dword [ebp - 4], 1
mov ecx, dword [ebp - 0x1c]
movsd xmm0, qword [eax]
movhps xmm0, qword [edi]
mov edx, dword [ebp - 0x20]
movaps xmm3, xmm0
movsd xmm4, qword [ecx]
movhps xmm4, qword [edx + eax]
addps xmm3, xmm4
movaps xmm1, xmm4
subps xmm1, xmm0
movaps xmm2, xmm3
movlhps xmm3, xmm1
shufps xmm2, xmm1, 0xbe
movaps xmm0, xmm3
xorps xmm2, xmm6
addps xmm0, xmm2
subps xmm3, xmm2
movlps qword [ecx], xmm0
mov ecx, edx
mov edx, dword [ebp - 0x14]
movhps qword [eax], xmm0
movlps qword [ecx + eax], xmm3
movhps qword [edi], xmm3
jle 0x1007f8e6
mov ecx, dword [ebp - 0x38]
lea esi, [ecx + ecx*2]
lea edi, [ecx*8]
shl esi, 3
mov dword [ebp - 0x24], esi
mov esi, ecx
mov ecx, dword [ebx + 0x18]
add ecx, edi
shl esi, 4
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x58], edi
mov edi, dword [ebx + 0x18]
add ecx, edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x54], esi
lea ecx, [esi + edi]
mov esi, dword [ebx + 8]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 4]
mov edi, dword [ebp - 0x18]
lea ecx, [ecx*2 + 1]
add ecx, edx
add ecx, dword [ebp - 4]
lea ecx, [esi + ecx*8]
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 4]
lea ecx, [ecx*2 + 1]
add ecx, edx
mov edx, dword [ebp - 0x50]
lea ecx, [esi + ecx*8]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x40]
add ecx, eax
mov eax, dword [ebp - 4]
dec eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x4c]
mov esi, dword [ebp - 8]
movlps xmm4, qword [eax]
movsd xmm0, qword [edi]
movhps xmm0, qword [edx]
movsd xmm1, qword [esi]
movsldup xmm3, xmm0
mov esi, dword [ebp - 0xc]
movshdup xmm0, xmm0
shufps xmm4, xmm4, 5
movhps xmm1, qword [esi]
mov esi, dword [ebp - 0x10]
mulps xmm3, xmm1
shufps xmm1, xmm1, 0xb1
movlps xmm5, qword [esi]
mov esi, dword [ebp - 8]
add esi, dword [ebp - 0x54]
mulps xmm1, xmm0
mov dword [ebp - 8], esi
shufps xmm5, xmm5, 0x41
mulps xmm4, xmm5
mov esi, dword [ebp - 0xc]
add esi, dword [ebp - 0x24]
addsubps xmm3, xmm1
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x10]
movaps xmm0, xmm4
add esi, dword [ebp - 0x58]
movlhps xmm0, xmm4
addsubps xmm4, xmm0
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x2c]
movaps xmm2, xmm3
movlps xmm4, qword [ecx]
addps xmm2, xmm4
movaps xmm0, xmm4
subps xmm0, xmm3
movaps xmm1, xmm2
shufps xmm1, xmm0, 0xbe
movlhps xmm2, xmm0
xorps xmm1, xmm6
movaps xmm0, xmm2
subps xmm2, xmm1
addps xmm0, xmm1
movlps qword [ecx], xmm0
add ecx, 8
movhps qword [edi], xmm0
add edi, 8
movlps qword [eax], xmm2
add eax, 8
movhps qword [edx], xmm2
add edx, 8
dec dword [ebp - 0x28]
jne 0x1007f831
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x30]
add edx, dword [ebp - 0x3c]
add edi, esi
add dword [ebp - 0x18], esi
add eax, esi
add dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], eax
cmp edx, dword [ebx + 0x10]
jl 0x1007f765
mov eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
lea ecx, [esi*4]
cmp ecx, dword [ebx + 0xc]
jle 0x1007f702
mov ecx, dword [ebx + 0x14]
mov dword [ecx], eax
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14