Function at 0x140005580
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x18
movdqa xmmword [rsp], xmm6
lea r11, [rcx + 7]
and r11, 0xfffffffffffffff8
mov rax, r11
sub rax, rcx
sub rdx, rax
mov eax, edx
and eax, 7
mov r9, r11
sub r9, rcx
jne 0x1400055b8
xor r8d, r8d
jmp 0x140005646
cmp r9, 4
jae 0x1400055c6
xor r8d, r8d
xor r10d, r10d
jmp 0x140005630
movzx r8d, word [rcx + 2]
movd xmm0, r8d
movdqa xmm1, xmmword [0x14009a5a0]
pcmpgtb xmm0, xmm1
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0xd4
pshufd xmm0, xmm0, 0xd4
movdqa xmm2, xmmword [0x14009a5b0]
pand xmm0, xmm2
movzx r8d, word [rcx]
movd xmm3, r8d
pcmpgtb xmm3, xmm1
punpcklbw xmm3, xmm3
pshuflw xmm1, xmm3, 0xd4
pshufd xmm1, xmm1, 0xd4
pand xmm1, xmm2
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddq xmm0, xmm1
movq r8, xmm0
mov r10d, 4
je 0x140005646
nop
xor esi, esi
cmp byte [rcx + r10], 0xc0
setge sil
add r8, rsi
inc r10
cmp r9, r10
jne 0x140005630
test rax, rax
je 0x1400056de
mov r9, rdx
and r9, 0xfffffffffffffff8
xor ecx, ecx
cmp byte [r11 + r9], 0xc0
setge cl
cmp eax, 1
je 0x1400056e0
xor r10d, r10d
cmp byte [r11 + r9 + 1], 0xc0
setge r10b
add rcx, r10
cmp eax, 2
je 0x1400056e0
xor r10d, r10d
cmp byte [r11 + r9 + 2], 0xc0
setge r10b
add rcx, r10
cmp eax, 3
je 0x1400056e0
xor r10d, r10d
cmp byte [r11 + r9 + 3], 0xc0
setge r10b
add rcx, r10
cmp eax, 4
je 0x1400056e0
xor r10d, r10d
cmp byte [r11 + r9 + 4], 0xc0
setge r10b
add rcx, r10
cmp eax, 5
je 0x1400056e0
xor r10d, r10d
cmp byte [r11 + r9 + 5], 0xc0
setge r10b
add rcx, r10
cmp eax, 6
je 0x1400056e0
xor eax, eax
cmp byte [r11 + r9 + 6], 0xc0
setge al
add rcx, rax
jmp 0x1400056e0
xor ecx, ecx
add rcx, r8
shr rdx, 3
movabs r9, 0xff00ff00ff00ff
movabs r8, 0x1000100010001
movabs rdi, 0x7ffffffffffffff
pcmpeqd xmm0, xmm0
movdqa xmm1, xmmword [0x14009a5c0]
jmp 0x140005752
xor ecx, ecx
lea r11, [r10 + rsi*8]
sub rdx, rsi
mov ebx, esi
and ebx, 3
mov r14, rcx
and r14, r9
shr rcx, 8
and rcx, r9
add rcx, r14
imul rcx, r8
shr rcx, 0x30
add rcx, rax
test rbx, rbx
jne 0x1400058f0
mov rax, rcx
test rdx, rdx
je 0x14000597c
mov r10, r11
cmp rdx, 0xc0
mov esi, 0xc0
cmovb rsi, rdx
cmp rsi, 4
jb 0x140005720
mov r11d, esi
shr r11d, 2
lea r14, [r11 - 1]
and r14, rdi
je 0x14000587d
inc r14
mov r15, r14
and r15, 0xfffffffffffffffe
mov rbx, r15
shl rbx, 5
pxor xmm3, xmm3
mov rcx, r10
mov r12, r15
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rcx]
movdqu xmm5, xmmword [rcx + 0x20]
movdqa xmm4, xmm2
punpcklqdq xmm4, xmm5
movdqa xmm6, xmm4
pxor xmm6, xmm0
psrlq xmm6, 7
psrlq xmm4, 6
por xmm4, xmm6
pand xmm4, xmm1
paddq xmm4, xmm3
movdqu xmm3, xmmword [rcx + 0x10]
movdqu xmm6, xmmword [rcx + 0x30]
punpckhqdq xmm2, xmm5
movdqa xmm5, xmm3
punpcklqdq xmm5, xmm6
punpckhqdq xmm3, xmm6
movdqa xmm6, xmm2
pxor xmm6, xmm0
psrlq xmm6, 7
psrlq xmm2, 6
por xmm2, xmm6
pand xmm2, xmm1
movdqa xmm6, xmm5
pxor xmm6, xmm0
psrlq xmm6, 7
psrlq xmm5, 6
por xmm5, xmm6
pand xmm5, xmm1
paddq xmm5, xmm2
paddq xmm5, xmm4
movdqa xmm2, xmm3
pxor xmm2, xmm0
psrlq xmm2, 7
psrlq xmm3, 6
por xmm3, xmm2
pand xmm3, xmm1
paddq xmm3, xmm5
add rcx, 0x40
add r12, 0xfffffffffffffffe
jne 0x1400057b0
pshufd xmm2, xmm3, 0xee
paddq xmm2, xmm3
movq rcx, xmm2
cmp r14, r15
je 0x140005722
add rbx, r10
jmp 0x140005882
xor ecx, ecx
mov rbx, r10
shl r11, 5
add r11, r10
nop dword [rax]
movdqu xmm2, xmmword [rbx]
movdqu xmm3, xmmword [rbx + 0x10]
movdqa xmm4, xmm2
pxor xmm4, xmm0
movdqa xmm5, xmm3
pxor xmm5, xmm0
psrlq xmm5, 7
psrlq xmm4, 7
psrlq xmm3, 6
por xmm3, xmm5
psrlq xmm2, 6
por xmm2, xmm4
pand xmm3, xmm1
pand xmm2, xmm1
paddq xmm2, xmm3
pshufd xmm3, xmm2, 0xee
paddq xmm3, xmm2
movq r14, xmm3
add rcx, r14
add rbx, 0x20
cmp rbx, r11
jne 0x140005890
jmp 0x140005722
and esi, 0xfc
mov rdx, qword [r10 + rsi*8]
mov rax, rdx
not rax
shr rax, 7
shr rdx, 6
or rdx, rax
movabs rax, 0x101010101010101
and rdx, rax
cmp ebx, 1
je 0x14000595a
mov r11, qword [r10 + rsi*8 + 8]
mov rdi, r11
not rdi
shr rdi, 7
shr r11, 6
or r11, rdi
and r11, rax
add rdx, r11
cmp ebx, 2
je 0x14000595a
mov r10, qword [r10 + rsi*8 + 0x10]
mov r11, r10
not r11
shr r11, 7
shr r10, 6
or r10, r11
and r10, rax
add rdx, r10
and r9, rdx
shr rdx, 8
movabs rax, 0x700ff00ff00ff
and rax, rdx
add rax, r9
imul rax, r8
shr rax, 0x30
add rax, rcx
movaps xmm6, xmmword [rsp]
add rsp, 0x18
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret