Function at 0x140017dc0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x70
movdqa xmmword [rsp + 0x60], xmm12
movdqa xmmword [rsp + 0x50], xmm11
movdqa xmmword [rsp + 0x40], xmm10
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x20], xmm8
movdqa xmmword [rsp + 0x10], xmm7
movdqa xmmword [rsp], xmm6
lea rbx, [rcx + 7]
and rbx, 0xfffffffffffffff8
mov rax, rbx
sub rax, rcx
sub rdx, rax
mov eax, edx
and eax, 7
mov r9, rbx
sub r9, rcx
jne 0x140017e23
xor r8d, r8d
jmp 0x140017eb7
cmp r9, 4
jae 0x140017e31
xor r8d, r8d
xor r10d, r10d
jmp 0x140017ea0
movzx r8d, word [rcx + 2]
movd xmm0, r8d
movdqa xmm1, xmmword [0x140053720]
pcmpgtb xmm0, xmm1
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0xd4
pshufd xmm0, xmm0, 0xd4
movdqa xmm2, xmmword [0x140053530]
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 0x140017eb7
nop word [rax + rax]
xor r11d, r11d
cmp byte [rcx + r10], 0xc0
setge r11b
add r8, r11
inc r10
cmp r9, r10
jne 0x140017ea0
test rax, rax
je 0x140017f49
mov rcx, rdx
and rcx, 0xfffffffffffffff8
xor esi, esi
cmp byte [rbx + rcx], 0xc0
setge sil
cmp eax, 1
je 0x140017f4b
xor r9d, r9d
cmp byte [rbx + rcx + 1], 0xc0
setge r9b
add rsi, r9
cmp eax, 2
je 0x140017f4b
xor r9d, r9d
cmp byte [rbx + rcx + 2], 0xc0
setge r9b
add rsi, r9
cmp eax, 3
je 0x140017f4b
xor r9d, r9d
cmp byte [rbx + rcx + 3], 0xc0
setge r9b
add rsi, r9
cmp eax, 4
je 0x140017f4b
xor r9d, r9d
cmp byte [rbx + rcx + 4], 0xc0
setge r9b
add rsi, r9
cmp eax, 5
je 0x140017f4b
xor r9d, r9d
cmp byte [rbx + rcx + 5], 0xc0
setge r9b
add rsi, r9
cmp eax, 6
je 0x140017f4b
xor eax, eax
cmp byte [rbx + rcx + 6], 0xc0
setge al
add rsi, rax
jmp 0x140017f4b
xor esi, esi
add rsi, r8
shr rdx, 3
movabs r8, 0xff00ff00ff00ff
movabs rcx, 0x1000100010001
movabs rdi, 0x7ffffffffffffff
pcmpeqd xmm0, xmm0
movdqa xmm1, xmmword [0x140053730]
jmp 0x140017fb1
xor esi, esi
lea rbx, [r9 + r11*8]
sub rdx, r11
and r11d, 3
mov r14, rsi
and r14, r8
shr rsi, 8
and rsi, r8
add rsi, r14
imul rsi, rcx
shr rsi, 0x30
add rsi, rax
test r11, r11
jne 0x140018222
mov rax, rsi
test rdx, rdx
je 0x1400182aa
mov r9, rbx
cmp rdx, 0xc0
mov r11d, 0xc0
cmovb r11, rdx
mov r10, r11
and r10, 0xfc
je 0x140017f80
mov ebx, r11d
shr ebx, 2
lea r15, [rbx - 1]
and r15, rdi
cmp r15, 3
jae 0x140018000
xor esi, esi
mov r14, r9
jmp 0x1400181b8
inc r15
mov r12, r15
and r12, 0xfffffffffffffffc
mov r14, r12
shl r14, 5
lea rsi, [r9 + 0x40]
pxor xmm5, xmm5
mov r13, r12
pxor xmm4, xmm4
movdqu xmm2, xmmword [rsi - 0x40]
movdqu xmm6, xmmword [rsi - 0x20]
movdqa xmm3, xmm2
punpcklqdq xmm3, xmm6
movdqa xmm7, xmm3
pxor xmm7, xmm0
psrlq xmm7, 7
psrlq xmm3, 6
por xmm3, xmm7
pand xmm3, xmm1
paddq xmm3, xmm5
movdqu xmm5, xmmword [rsi - 0x30]
movdqu xmm10, xmmword [rsi - 0x10]
movdqu xmm11, xmmword [rsi + 0x30]
movdqu xmm7, xmmword [rsi + 0x20]
movdqu xmm9, xmmword [rsi]
movdqa xmm8, xmm9
punpcklqdq xmm8, xmm7
movdqa xmm12, xmm8
pxor xmm12, xmm0
psrlq xmm12, 7
psrlq xmm8, 6
por xmm8, xmm12
pand xmm8, xmm1
paddq xmm8, xmm4
movdqu xmm4, xmmword [rsi + 0x10]
punpckhqdq xmm2, xmm6
punpckhqdq xmm9, xmm7
movdqa xmm7, xmm5
punpcklqdq xmm7, xmm10
movdqa xmm6, xmm4
punpcklqdq xmm6, xmm11
punpckhqdq xmm5, xmm10
punpckhqdq xmm4, xmm11
movdqa xmm10, xmm2
pxor xmm10, xmm0
movdqa xmm11, xmm9
pxor xmm11, xmm0
psrlq xmm10, 7
psrlq xmm11, 7
psrlq xmm2, 6
por xmm2, xmm10
psrlq xmm9, 6
por xmm9, xmm11
pand xmm2, xmm1
pand xmm9, xmm1
movdqa xmm10, xmm7
pxor xmm10, xmm0
movdqa xmm11, xmm6
pxor xmm11, xmm0
psrlq xmm10, 7
psrlq xmm11, 7
psrlq xmm7, 6
por xmm7, xmm10
psrlq xmm6, 6
por xmm6, xmm11
pand xmm7, xmm1
paddq xmm7, xmm2
paddq xmm7, xmm3
pand xmm6, xmm1
paddq xmm6, xmm9
paddq xmm6, xmm8
movdqa xmm2, xmm5
pxor xmm2, xmm0
movdqa xmm3, xmm4
pxor xmm3, xmm0
psrlq xmm2, 7
psrlq xmm3, 7
psrlq xmm5, 6
por xmm5, xmm2
psrlq xmm4, 6
por xmm4, xmm3
pand xmm5, xmm1
paddq xmm5, xmm7
pand xmm4, xmm1
paddq xmm4, xmm6
sub rsi, 0xffffffffffffff80
add r13, 0xfffffffffffffffc
jne 0x140018020
paddq xmm4, xmm5
pshufd xmm2, xmm4, 0xee
paddq xmm2, xmm4
movq rsi, xmm2
cmp r15, r12
je 0x140017f82
add r14, r9
shl rbx, 5
add rbx, r9
nop
movdqu xmm2, xmmword [r14]
movdqu xmm3, xmmword [r14 + 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 r15, xmm3
add rsi, r15
add r14, 0x20
cmp r14, rbx
jne 0x1400181c0
jmp 0x140017f82
mov rdx, qword [r9 + r10*8]
mov rax, rdx
not rax
shr rax, 7
shr rdx, 6
or rdx, rax
movabs rax, 0x101010101010101
and rdx, rax
cmp r11d, 1
je 0x140018288
mov rdi, qword [r9 + r10*8 + 8]
mov rbx, rdi
not rbx
shr rbx, 7
shr rdi, 6
or rdi, rbx
and rdi, rax
add rdx, rdi
cmp r11d, 2
je 0x140018288
mov r9, qword [r9 + r10*8 + 0x10]
mov r10, r9
not r10
shr r10, 7
shr r9, 6
or r9, r10
and r9, rax
add rdx, r9
and r8, rdx
shr rdx, 8
movabs rax, 0x700ff00ff00ff
and rax, rdx
add rax, r8
imul rax, rcx
shr rax, 0x30
add rax, rsi
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm8, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm11, xmmword [rsp + 0x50]
movaps xmm12, xmmword [rsp + 0x60]
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret