Function at 0x100830c0
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 [0x102ccce0]
jl 0x100833fe
test dl, 3
jne 0x100832c3
mov edi, edx
and edi, 0xf
je 0x1008318a
neg edi
test edi, 8
je 0x10083142
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 0x1008318a
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 0x10083240
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 0x100831a0
jmp 0x100833fe
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 0x10083240
jmp 0x100833fe
mov edi, eax
and eax, 7
sar edi, 3
test cl, 0xf
jne 0x10083380
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 0x100832e0
jmp 0x100833fe
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 0x10083380
cmp eax, 4
jl 0x10083467
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 0x10083420
test al, 2
je 0x100834aa
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 0x100834e7
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