Function at 0x1006a300
Capabilities:
Encode data using xor

Disassembly:
push edi
mov ecx, dword [esp + 8]
pcmpeqd xmm0, xmm0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
movdqa xmm1, xmmword [0x102b1380]
cmp dword [esp + 0x10], 0xb
jl 0x1006a63e
test byte [esp + 0xc], 3
jne 0x1006a503
mov edi, edx
and edi, 0xf
je 0x1006a3ce
neg edi
test edi, 8
je 0x1006a386
movq xmm3, qword [ecx]
add ecx, 8
movq xmm2, qword [edx]
movdqa xmm5, xmm3
paddd xmm5, xmm2
pxor xmm2, xmm0
movdqa xmm4, xmm5
pcmpgtd xmm3, xmm2
psrad xmm4, 0x1f
add eax, 0xfffffffe
pxor xmm4, xmm3
pxor xmm3, xmm1
pand xmm5, xmm4
pandn xmm4, xmm3
por xmm5, xmm4
movq qword [edx], xmm5
add edx, 8
test edi, 4
je 0x1006a3ce
movd xmm3, dword [ecx]
add ecx, 4
movd xmm2, dword [edx]
movdqa xmm5, xmm3
paddd xmm5, xmm2
pxor xmm2, xmm0
movdqa xmm4, xmm5
pcmpgtd xmm3, xmm2
psrad xmm4, 0x1f
dec eax
pxor xmm4, xmm3
pxor xmm3, xmm1
pand xmm5, xmm4
pandn xmm4, xmm3
por xmm5, xmm4
movd dword [edx], xmm5
add edx, 4
mov edi, eax
and eax, 7
sar edi, 3
test cl, 0xf
jne 0x1006a480
nop
movdqa xmm5, xmmword [ecx]
movdqa xmm3, xmmword [ecx + 0x10]
movdqa xmm2, xmm5
movdqa xmm6, xmmword [edx]
movdqa xmm4, xmm3
movdqa xmm7, xmmword [edx + 0x10]
paddd xmm2, xmm6
paddd xmm4, xmm7
pxor xmm6, xmm0
pxor xmm7, xmm0
pcmpgtd xmm5, xmm6
pcmpgtd xmm3, xmm7
movdqa xmm6, xmm2
movdqa xmm7, xmm4
psrad xmm6, 0x1f
psrad xmm7, 0x1f
pxor xmm6, xmm5
pxor xmm7, xmm3
pxor xmm5, xmm1
pxor xmm3, xmm1
pand xmm2, xmm6
pandn xmm6, xmm5
pand xmm4, xmm7
pandn xmm7, xmm3
por xmm2, xmm6
por xmm4, xmm7
add ecx, 0x20
movdqa xmmword [edx], xmm2
movdqa xmmword [edx + 0x10], xmm4
add edx, 0x20
dec edi
jne 0x1006a3e0
jmp 0x1006a63e
movdqu xmm5, xmmword [ecx]
movdqu xmm3, xmmword [ecx + 0x10]
movdqa xmm6, xmmword [edx]
add ecx, 0x20
movdqa xmm7, xmmword [edx + 0x10]
movdqa xmm2, xmm6
movdqa xmm4, xmm7
paddd xmm2, xmm5
paddd xmm4, xmm3
pxor xmm6, xmm0
pxor xmm7, xmm0
pcmpgtd xmm5, xmm6
pcmpgtd xmm3, xmm7
movdqa xmm6, xmm2
movdqa xmm7, xmm4
psrad xmm6, 0x1f
psrad xmm7, 0x1f
pxor xmm6, xmm5
pxor xmm7, xmm3
pxor xmm5, xmm1
pxor xmm3, xmm1
pand xmm2, xmm6
pandn xmm6, xmm5
pand xmm4, xmm7
pandn xmm7, xmm3
por xmm2, xmm6
por xmm4, xmm7
movdqa xmmword [edx], xmm2
movdqa xmmword [edx + 0x10], xmm4
lea edx, [edx + 0x20]
dec edi
jne 0x1006a480
jmp 0x1006a63e
mov edi, eax
and eax, 7
sar edi, 3
test byte [esp + 8], 0xf
jne 0x1006a5c0
nop dword [eax]
nop dword [eax]
movdqu xmm6, xmmword [edx]
movdqu xmm7, xmmword [edx + 0x10]
movdqa xmm5, xmmword [ecx]
movdqa xmm3, xmmword [ecx + 0x10]
movdqa xmm2, xmm5
movdqa xmm4, xmm3
paddd xmm2, xmm6
paddd xmm4, xmm7
pxor xmm6, xmm0
pxor xmm7, xmm0
pcmpgtd xmm5, xmm6
pcmpgtd xmm3, xmm7
movdqa xmm6, xmm2
movdqa xmm7, xmm4
psrad xmm6, 0x1f
psrad xmm7, 0x1f
pxor xmm6, xmm5
pxor xmm7, xmm3
pxor xmm5, xmm1
pxor xmm3, xmm1
pand xmm2, xmm6
pandn xmm6, xmm5
pand xmm4, xmm7
pandn xmm7, xmm3
por xmm2, xmm6
por xmm4, xmm7
add ecx, 0x20
movdqu xmmword [edx], xmm2
movdqu xmmword [edx + 0x10], xmm4
lea edx, [edx + 0x20]
dec edi
jne 0x1006a520
jmp 0x1006a63e
movdqu xmm5, xmmword [ecx]
movdqu xmm3, xmmword [ecx + 0x10]
movdqu xmm6, xmmword [edx]
movdqu xmm7, xmmword [edx + 0x10]
movdqa xmm2, xmm5
movdqa xmm4, xmm3
paddd xmm2, xmm6
paddd xmm4, xmm7
pxor xmm6, xmm0
pxor xmm7, xmm0
pcmpgtd xmm5, xmm6
pcmpgtd xmm3, xmm7
movdqa xmm6, xmm2
movdqa xmm7, xmm4
psrad xmm6, 0x1f
psrad xmm7, 0x1f
pxor xmm6, xmm5
pxor xmm7, xmm3
pxor xmm5, xmm1
pxor xmm3, xmm1
pand xmm2, xmm6
pandn xmm6, xmm5
pand xmm4, xmm7
pandn xmm7, xmm3
por xmm2, xmm6
por xmm4, xmm7
movdqu xmmword [edx], xmm2
movdqu xmmword [edx + 0x10], xmm4
lea ecx, [ecx + 0x20]
lea edx, [edx + 0x20]
dec edi
jne 0x1006a5c0
cmp eax, 4
jl 0x1006a6a7
nop dword [eax + eax]
nop dword [eax]
nop dword [eax]
nop dword [eax]
movdqu xmm3, xmmword [ecx]
movdqu xmm2, xmmword [edx]
movdqa xmm5, xmm3
add eax, 0xfffffffc
paddd xmm5, xmm2
pxor xmm2, xmm0
movdqa xmm4, xmm5
pcmpgtd xmm3, xmm2
psrad xmm4, 0x1f
add ecx, 0x10
pxor xmm4, xmm3
pxor xmm3, xmm1
pand xmm5, xmm4
pandn xmm4, xmm3
por xmm5, xmm4
movdqu xmmword [edx], xmm5
lea edx, [edx + 0x10]
cmp eax, 4
jge 0x1006a660
test al, 2
je 0x1006a6ea
movq xmm3, qword [ecx]
add ecx, 8
movq xmm2, qword [edx]
movdqa xmm5, xmm3
paddd xmm5, xmm2
pxor xmm2, xmm0
movdqa xmm4, xmm5
pcmpgtd xmm3, xmm2
psrad xmm4, 0x1f
pxor xmm4, xmm3
pxor xmm3, xmm1
pand xmm5, xmm4
pandn xmm4, xmm3
por xmm5, xmm4
movq qword [edx], xmm5
add edx, 8
test al, 1
je 0x1006a727
movd xmm3, dword [ecx]
movd xmm2, dword [edx]
movdqa xmm4, xmm3
paddd xmm4, xmm2
pxor xmm2, xmm0
movdqa xmm0, xmm4
pcmpgtd xmm3, xmm2
psrad xmm0, 0x1f
pxor xmm0, xmm3
pxor xmm3, xmm1
pand xmm4, xmm0
pandn xmm0, xmm3
por xmm4, xmm0
movd dword [edx], xmm4
pop edi
ret