Function at 0x100580c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov eax, ecx
push esi
mov esi, ecx
shl eax, 4
add eax, dword [ebp + 0xc]
dec ecx
movsd xmm0, qword [edx]
mov dword [ebp - 8], eax
mov dword [ebp + 0x10], ecx
lea eax, [esi + esi*2]
shl eax, 5
mov ecx, esi
shl ecx, 6
shl esi, 5
push edi
movsd xmm1, qword [eax + edx]
lea edi, [edx + 0x10]
movsd xmm4, qword [eax + edx + 8]
movaps xmm2, xmm1
addsd xmm1, qword [ecx + edx]
subsd xmm2, qword [ecx + edx]
movsd xmm3, qword [ecx + edx + 8]
add edi, ecx
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], ecx
subsd xmm0, xmm1
movsd qword [ecx + edx], xmm0
addsd xmm1, qword [edx]
movsd qword [edx], xmm1
movaps xmm1, xmm3
movsd xmm0, qword [esi + edx + 8]
subsd xmm1, xmm4
subsd xmm0, xmm2
addsd xmm4, xmm3
movsd qword [eax + edx + 8], xmm0
movsd xmm0, qword [esi + edx]
addsd xmm2, qword [esi + edx + 8]
subsd xmm0, xmm1
movsd qword [esi + edx + 8], xmm2
movsd qword [eax + edx], xmm0
addsd xmm1, qword [esi + edx]
movsd qword [esi + edx], xmm1
movsd xmm0, qword [edx + 8]
subsd xmm0, xmm4
movsd qword [ecx + edx + 8], xmm0
addsd xmm4, qword [edx + 8]
movsd qword [edx + 8], xmm4
movsd xmm2, qword [edi]
mov edi, dword [ebp + 0xc]
movsd xmm0, qword [ecx + edx + 0x18]
movsd xmm7, qword [edi + 8]
mov edi, dword [ebp - 8]
movaps xmm4, xmm7
mulsd xmm4, xmm2
movaps xmm3, xmm7
mulsd xmm3, qword [eax + edx + 0x10]
movsd xmm5, qword [edi - 8]
lea edi, [edx + 0x10]
movaps xmm6, xmm5
xorps xmm6, xmmword [0x1007b760]
mulsd xmm0, xmm6
mulsd xmm6, xmm2
subsd xmm4, xmm0
movaps xmm0, xmm7
mulsd xmm0, qword [ecx + edx + 0x18]
lea ecx, [edx + 0x18]
add ecx, eax
mov dword [ebp - 0x10], ecx
mulsd xmm7, qword [ecx]
addsd xmm6, xmm0
movaps xmm0, xmm5
mulsd xmm5, qword [eax + edx + 0x10]
mulsd xmm0, qword [ecx]
addsd xmm7, xmm5
subsd xmm3, xmm0
movsd xmm0, qword [edi]
movaps xmm1, xmm3
addsd xmm3, xmm4
subsd xmm1, xmm4
mov ecx, dword [ebp - 4]
subsd xmm0, xmm3
movsd qword [ecx], xmm0
lea ecx, [edx + 0x18]
addsd xmm3, qword [edi]
add ecx, esi
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0xc]
movsd qword [edi], xmm3
movsd xmm0, qword [esi + edx + 0x18]
subsd xmm0, xmm1
movsd qword [eax + edx + 0x18], xmm0
addsd xmm1, qword [esi + edx + 0x18]
movsd xmm0, qword [esi + edx + 0x10]
movsd qword [esi + edx + 0x18], xmm1
movaps xmm1, xmm6
subsd xmm1, xmm7
addsd xmm7, xmm6
subsd xmm0, xmm1
movsd qword [eax + edx + 0x10], xmm0
addsd xmm1, qword [esi + edx + 0x10]
mov eax, dword [ebp + 8]
movsd qword [esi + edx + 0x10], xmm1
movsd xmm0, qword [edx + 0x18]
mov esi, dword [ebp - 8]
subsd xmm0, xmm7
movsd qword [ecx + edx + 0x18], xmm0
addsd xmm7, qword [edx + 0x18]
mov ecx, dword [ebp - 0x10]
movsd qword [edx + 0x18], xmm7
mov edx, dword [ebp - 4]
nop dword [eax]
movsd xmm3, qword [esi - 0x10]
add eax, 0x20
movsd xmm6, qword [edx + 0x18]
add edi, 0x20
movsd xmm2, qword [edx + 0x10]
add ecx, 0x20
mov dword [ebp + 8], eax
add edx, 0x20
mov eax, dword [ebp + 0xc]
movaps xmm4, xmm2
add eax, 0x10
movaps xmm0, xmm6
movsd xmm7, qword [ecx - 0x18]
sub esi, 0x10
movaps xmm1, xmm3
mov dword [ebp + 0xc], eax
xorps xmm1, xmmword [0x1007b760]
movsd xmm5, qword [eax]
mulsd xmm0, xmm1
mov eax, dword [ebp + 8]
mulsd xmm2, xmm1
movsd xmm1, qword [ecx - 0x10]
mulsd xmm6, xmm5
mulsd xmm4, xmm5
addsd xmm6, xmm2
movaps xmm2, xmm7
mulsd xmm2, xmm5
subsd xmm4, xmm0
mulsd xmm7, xmm3
movaps xmm0, xmm1
mulsd xmm1, xmm5
mulsd xmm0, xmm3
addsd xmm7, xmm1
subsd xmm2, xmm0
movsd xmm0, qword [edi - 0x10]
movaps xmm1, xmm2
addsd xmm2, xmm4
subsd xmm1, xmm4
subsd xmm0, xmm2
movsd qword [edx - 0x10], xmm0
addsd xmm2, qword [edi - 0x10]
movsd qword [edi - 0x10], xmm2
movsd xmm0, qword [eax - 0x10]
subsd xmm0, xmm1
movsd qword [ecx - 0x10], xmm0
addsd xmm1, qword [eax - 0x10]
movsd xmm0, qword [eax - 0x18]
movsd qword [eax - 0x10], xmm1
movaps xmm1, xmm6
subsd xmm1, xmm7
addsd xmm7, xmm6
subsd xmm0, xmm1
movsd qword [ecx - 0x18], xmm0
addsd xmm1, qword [eax - 0x18]
movsd qword [eax - 0x18], xmm1
movsd xmm0, qword [edi - 8]
mov eax, dword [ebp + 0xc]
subsd xmm0, xmm7
movsd qword [edx - 8], xmm0
addsd xmm7, qword [edi - 8]
movsd qword [edi - 8], xmm7
movsd xmm3, qword [esi - 8]
movsd xmm2, qword [edx]
movaps xmm1, xmm3
movsd xmm6, qword [edx + 8]
movaps xmm4, xmm2
movsd xmm5, qword [eax + 8]
movaps xmm0, xmm6
xorps xmm1, xmmword [0x1007b760]
movsd xmm7, qword [ecx - 8]
mulsd xmm0, xmm1
mulsd xmm2, xmm1
movsd xmm1, qword [ecx]
mulsd xmm4, xmm5
mulsd xmm6, xmm5
subsd xmm4, xmm0
movaps xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm6, xmm2
movaps xmm2, xmm7
mulsd xmm2, xmm5
sub dword [ebp + 0x10], 1
subsd xmm2, xmm0
movsd xmm0, qword [edi]
mov eax, dword [ebp + 8]
mulsd xmm1, xmm5
mulsd xmm7, xmm3
addsd xmm7, xmm1
movaps xmm1, xmm2
addsd xmm2, xmm4
subsd xmm1, xmm4
subsd xmm0, xmm2
movsd qword [edx], xmm0
addsd xmm2, qword [edi]
movsd qword [edi], xmm2
movsd xmm0, qword [eax]
subsd xmm0, xmm1
movsd qword [ecx], xmm0
addsd xmm1, qword [eax]
movsd xmm0, qword [eax - 8]
movsd qword [eax], xmm1
movaps xmm1, xmm6
subsd xmm1, xmm7
addsd xmm7, xmm6
subsd xmm0, xmm1
movsd qword [ecx - 8], xmm0
addsd xmm1, qword [eax - 8]
movsd qword [eax - 8], xmm1
movsd xmm0, qword [edi + 8]
subsd xmm0, xmm7
movsd qword [edx + 8], xmm0
addsd xmm7, qword [edi + 8]
movsd qword [edi + 8], xmm7
jne 0x10058290
pop edi
pop esi
mov esp, ebp
pop ebp
ret