Function at 0x10086320
Capabilities:
Encode data using xor

Disassembly:
push edi
pcmpeqd xmm0, xmm0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
movdqu xmm1, xmmword [0x102ccda0]
cmp eax, 0xb
jl 0x10086660
test dl, 3
jne 0x10086525
mov edi, edx
and edi, 0xf
je 0x100863ec
neg edi
test edi, 8
je 0x100863a2
movq xmm3, qword [ecx]
add ecx, 8
add eax, 0xfffffffe
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 edi, 4
je 0x100863ec
movd xmm3, dword [ecx]
add ecx, 4
add eax, 0xffffffff
movd xmm2, dword [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
movd dword [edx], xmm5
add edx, 4
mov edi, eax
and eax, 7
sar edi, 3
test cl, 0xf
jne 0x100864a0
nop dword [eax]
movdqu xmm5, xmmword [ecx]
movdqu xmm3, xmmword [ecx + 0x10]
movdqa xmm2, xmm5
add ecx, 0x20
movdqu xmm6, xmmword [edx]
movdqa xmm4, xmm3
movdqu xmm7, xmmword [edx + 0x10]
paddd xmm2, xmm6
pxor xmm6, xmm0
paddd xmm4, xmm7
pxor xmm7, xmm0
pcmpgtd xmm5, xmm6
movdqa xmm6, xmm2
pcmpgtd xmm3, xmm7
movdqa xmm7, xmm4
psrad xmm6, 0x1f
psrad xmm7, 0x1f
pxor xmm6, xmm5
pxor xmm5, xmm1
pxor xmm7, xmm3
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 edx, 0x20
add edi, 0xffffffff
jne 0x10086400
jmp 0x10086660
movdqu xmm6, xmmword [edx]
movdqu xmm7, xmmword [edx + 0x10]
movdqa xmm2, xmm6
pxor xmm6, xmm0
movdqu xmm5, xmmword [ecx]
movdqa xmm4, xmm7
pxor xmm7, xmm0
movdqu xmm3, xmmword [ecx + 0x10]
paddd xmm2, xmm5
pcmpgtd xmm5, xmm6
add ecx, 0x20
paddd xmm4, xmm3
pcmpgtd xmm3, xmm7
movdqa xmm6, xmm2
movdqa xmm7, xmm4
psrad xmm6, 0x1f
psrad xmm7, 0x1f
pxor xmm6, xmm5
pxor xmm5, xmm1
pxor xmm7, xmm3
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 edx, 0x20
add edi, 0xffffffff
jne 0x100864a0
jmp 0x10086660
mov edi, eax
and eax, 7
sar edi, 3
test cl, 0xf
jne 0x100865e0
nop dword [eax]
nop dword [eax]
movdqu xmm5, xmmword [ecx]
movdqu xmm3, xmmword [ecx + 0x10]
movdqa xmm2, xmm5
add ecx, 0x20
movdqu xmm6, xmmword [edx]
movdqa xmm4, xmm3
movdqu xmm7, xmmword [edx + 0x10]
paddd xmm2, xmm6
pxor xmm6, xmm0
paddd xmm4, xmm7
pxor xmm7, xmm0
pcmpgtd xmm5, xmm6
movdqa xmm6, xmm2
pcmpgtd xmm3, xmm7
movdqa xmm7, xmm4
psrad xmm6, 0x1f
psrad xmm7, 0x1f
pxor xmm6, xmm5
pxor xmm5, xmm1
pxor xmm7, xmm3
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 edx, 0x20
add edi, 0xffffffff
jne 0x10086540
jmp 0x10086660
movdqu xmm5, xmmword [ecx]
movdqu xmm3, xmmword [ecx + 0x10]
movdqa xmm2, xmm5
add ecx, 0x20
movdqu xmm6, xmmword [edx]
movdqa xmm4, xmm3
movdqu xmm7, xmmword [edx + 0x10]
paddd xmm2, xmm6
pxor xmm6, xmm0
paddd xmm4, xmm7
pxor xmm7, xmm0
pcmpgtd xmm5, xmm6
movdqa xmm6, xmm2
pcmpgtd xmm3, xmm7
movdqa xmm7, xmm4
psrad xmm6, 0x1f
psrad xmm7, 0x1f
pxor xmm6, xmm5
pxor xmm5, xmm1
pxor xmm7, xmm3
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 edx, 0x20
add edi, 0xffffffff
jne 0x100865e0
cmp eax, 4
jl 0x100866c7
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
movdqu xmm3, xmmword [ecx]
add eax, 0xfffffffc
add ecx, 0x10
movdqu xmm2, xmmword [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
movdqu xmmword [edx], xmm5
add edx, 0x10
cmp eax, 4
jge 0x10086680
test al, 2
je 0x1008670a
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 0x10086747
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