Function at 0x100689a0
Capabilities:
Encode data using xor

Disassembly:
push edi
mov eax, dword [esp + 0x10]
pcmpeqd xmm0, xmm0
mov ecx, dword [esp + 8]
cmp eax, 0xb
mov edx, dword [esp + 0xc]
movdqa xmm1, xmmword [0x102b1320]
jl 0x10068cde
test dl, 3
jne 0x10068ba3
mov edi, edx
and edi, 0xf
je 0x10068a6a
neg edi
test edi, 8
je 0x10068a22
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 0x10068a6a
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 0x10068b20
nop dword [eax + eax]
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 0x10068a80
jmp 0x10068cde
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
add edx, 0x20
dec edi
jne 0x10068b20
jmp 0x10068cde
mov edi, eax
and eax, 7
sar edi, 3
test cl, 0xf
jne 0x10068c60
nop dword [eax + 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
add edx, 0x20
dec edi
jne 0x10068bc0
jmp 0x10068cde
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
add ecx, 0x20
add edx, 0x20
dec edi
jne 0x10068c60
cmp eax, 4
jl 0x10068d47
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
add edx, 0x10
cmp eax, 4
jge 0x10068d00
test al, 2
je 0x10068d8a
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 0x10068dc7
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