Function at 0x14001c170
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
movzx eax, byte [rcx]
lea r10, [rdx - 0xb]
mov r8, qword [0x140068190]
mov rbp, rcx
xor ebx, ebx
mov r13, rdx
cmp r9, r10
mov rsi, r9
mov edx, 2
mov r14d, ebx
cmova rsi, r10
xor r8, rax
movzx eax, byte [rcx + 1]
mov rcx, qword [0x140068190]
xor rcx, rax
mov rax, qword [0x140068190]
xor rax, rcx
mov rcx, qword [0x140068190]
mov r11, qword [0x140068190]
xor rax, 2
xor rcx, rax
mov rax, r8
shr rax, 1
mov rdi, rcx
shr rdi, 1
neg rax
neg rdi
neg rcx
or rdi, rcx
neg r8
or rax, r8
shr rdi, 0x3f
shr rax, 0x3f
neg rdi
neg rax
or rdi, rax
cmp rdx, r13
jae 0x14001c26e
nop word [rax + rax]
movzx eax, byte [rdx + rbp]
inc rdx
mov rcx, qword [0x140068190]
xor rcx, rax
mov rax, qword [0x140068190]
xor rax, rcx
mov rcx, qword [0x140068190]
xor rcx, rax
mov rax, rcx
neg rcx
shr rax, 1
neg rax
or rax, rcx
shr rax, 0x3f
dec rax
or r11, rax
mov eax, r11d
not eax
and eax, 1
add r14, rax
cmp rdx, r13
jb 0x14001c220
mov r9, qword [0x140068190]
not r11
mov r8, qword [0x140068190]
xor r9, r14
mov rax, qword [0x140068190]
xor r8, 8
mov rcx, r8
mov r15d, r13d
xor rcx, r9
sub r15d, r14d
shr rcx, 0x3f
sub r9, r8
xor rcx, rax
sub r15d, 3
mov rax, qword [0x140068190]
mov rdx, rcx
neg rcx
shr rdx, 1
neg rdx
or rdx, rcx
shr rdx, 0x3f
neg rdx
xor rax, rdx
and rdx, r8
not rax
and r9, rax
mov rax, qword [0x140068190]
or r9, rdx
shr r9, 0x3f
xor rax, r9
mov rcx, rax
neg rax
shr rcx, 1
neg rcx
or rcx, rax
mov rax, qword [0x140068190]
mov r9, qword [0x140068190]
mov r8, qword [0x140068190]
xor r9, rsi
shr rcx, 0x3f
neg rcx
or rcx, r11
or rdi, rcx
xor rax, rdi
not rax
and r15d, eax
mov eax, esi
and eax, edi
or r15d, eax
mov rax, qword [0x140068190]
xor r8, r15
mov rcx, r8
xor rcx, r9
sub r9, r8
shr rcx, 0x3f
xor rcx, rax
mov rax, qword [0x140068190]
mov rdx, rcx
neg rcx
shr rdx, 1
neg rdx
or rdx, rcx
shr rdx, 0x3f
neg rdx
xor rax, rdx
and rdx, r8
not rax
and r9, rax
mov rax, qword [0x140068190]
mov r14, qword [0x140068190]
or r9, rdx
shr r9, 0x3f
xor rax, r9
mov r11, rax
neg rax
shr r11, 1
neg r11
or r11, rax
shr r11, 0x3f
neg r11
xor r14d, edi
not r14d
mov eax, edi
and r14d, r11d
and eax, 0x4100
and r14d, 0x4400
mov r8d, r11d
or r14d, eax
or r8d, edi
neg r14d
lea rdi, [rbp + 0xb]
mov qword [rsp + 0x60], r14
not r8d
mov rcx, rbx
cmp r10, 4
jb 0x14001c3f4
mov r9, 0xfffffffffffffff9
mov rdx, rdi
sub r9, rbp
nop dword [rax + rax]
and dword [rdx], r8d
lea rdx, [rdx + 4]
lea rax, [r9 + rdx]
add rcx, 4
cmp rax, r10
jbe 0x14001c3e0
mov rax, r10
sub rax, rcx
cmp rcx, r10
jae 0x14001c49d
cmp rax, 0x40
jb 0x14001c47e
and eax, 0x3f
mov rdx, r10
sub rdx, rax
movsx eax, r8b
movd xmm2, eax
lea rax, [rbp + 0x2b]
punpcklbw xmm2, xmm2
add rax, rcx
punpcklwd xmm2, xmm2
pshufd xmm2, xmm2, 0
nop
movdqu xmm0, xmmword [rax - 0x20]
lea rax, [rax + 0x40]
add rcx, 0x40
movdqa xmm1, xmm2
pand xmm1, xmm0
movdqu xmmword [rax - 0x60], xmm1
movdqu xmm0, xmmword [rax - 0x50]
pand xmm0, xmm2
movdqu xmmword [rax - 0x50], xmm0
movdqu xmm1, xmmword [rax - 0x40]
pand xmm1, xmm2
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm0, xmmword [rax - 0x30]
pand xmm0, xmm2
movdqu xmmword [rax - 0x30], xmm0
cmp rcx, rdx
jb 0x14001c430
cmp rcx, r10
jae 0x14001c49d
lea rax, [rcx + rdi]
sub r10, rcx
nop word [rax + rax]
and byte [rax], r8b
lea rax, [rax + 1]
sub r10, 1
jne 0x14001c490
mov rax, qword [0x140068190]
mov rdi, r15
xor rax, r11
mov r12, rbp
not rax
and r11, rsi
mov eax, eax
sub r12, rsi
and rdi, rax
add r12, r13
mov eax, r11d
or rdi, rax
test rsi, rsi
je 0x14001c5ae
lea r15, [rsi - 1]
mov r9, qword [0x140068190]
mov r8, qword [0x140068190]
xor r9, rbx
mov rax, qword [0x140068190]
xor r8, rdi
mov rcx, r8
xor rcx, r9
sub r9, r8
shr rcx, 0x3f
xor rcx, rax
mov rax, qword [0x140068190]
mov rdx, rcx
neg rcx
shr rdx, 1
neg rdx
or rdx, rcx
mov rcx, qword [0x140068190]
shr rdx, 0x3f
neg rdx
xor rax, rdx
and rdx, r8
not rax
and r9, rax
or r9, rdx
shr r9, 0x3f
xor rcx, r9
mov rax, rcx
neg rcx
shr rax, 1
neg rax
or rax, rcx
shr rax, 0x3f
neg rax
test r15, r15
je 0x14001c58f
mov r10, r12
mov r11, r15
nop word [rax + rax]
movzx edx, byte [r10]
movzx ecx, byte [r10 + 1]
lea r10, [r10 + 1]
mov r8, qword [0x140068190]
xor r8, rax
not r8
and r8b, cl
movzx ecx, al
and cl, dl
or r8b, cl
mov byte [r10 - 1], r8b
sub r11, 1
jne 0x14001c560
movzx r9d, byte [r13 + rbp - 1]
inc rbx
and r9b, al
mov byte [r13 + rbp - 1], r9b
cmp rbx, rsi
jb 0x14001c4d1
mov r14, qword [rsp + 0x60]
cmp qword [rsp + 0x78], 0
je 0x14001c5d3
mov rcx, qword [rsp + 0x70]
mov r8, rsi
mov rdx, r12
call fcn.140037380
mov rcx, qword [rsp + 0x80]
mov qword [rcx], rdi
jmp 0x14001c5de
mov rax, qword [rsp + 0x80]
mov qword [rax], rdi
mov rbx, qword [rsp + 0x68]
mov eax, r14d
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret