Function at 0x1400016e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x30
mov rax, qword [0x14008abe8]
xor rax, rsp
mov qword [rbp - 0x10], rax
lea r14, [rcx + 8]
mov qword [rbp - 0x28], rcx
mov r15d, 4
lea rdx, [rbp - 0x1f]
mov rcx, r14
mov r8d, r15d
nop word [rax + rax]
movzx eax, byte [rcx - 8]
lea rcx, [rcx + 1]
mov byte [rdx - 1], al
lea rdx, [rdx + 4]
movzx eax, byte [rcx - 5]
mov byte [rdx - 4], al
movzx eax, byte [rcx - 1]
mov byte [rdx - 3], al
movzx eax, byte [rcx + 3]
mov byte [rdx - 2], al
sub r8, 1
jne 0x140001730
xor ecx, ecx
lea rdx, [0x140000000]
movzx eax, byte [rcx + rdx + 0x8b910]
xor byte [rbp + rcx - 0x20], al
movzx eax, byte [rcx + rdx + 0x8b911]
xor byte [rbp + rcx - 0x1f], al
movzx eax, byte [rcx + rdx + 0x8b912]
xor byte [rbp + rcx - 0x1e], al
movzx eax, byte [rcx + rdx + 0x8b913]
xor byte [rbp + rcx - 0x1d], al
add rcx, r15
cmp rcx, 0x10
jl 0x140001763
lea rax, [0x14008b914]
mov r13d, 1
lea rsi, [rbp - 0x1c]
sub rsi, rax
lea r12, [0x14008b924]
sub rsi, 0x10
lea rbx, [0x14008b9b4]
nop dword [rax]
nop word [rax + rax]
xor ecx, ecx
movzx eax, byte [rbp + rcx*4 - 0x20]
movzx eax, byte [rax + rdx + 0x8b710]
mov byte [rbp + rcx*4 - 0x20], al
movzx eax, byte [rbp + rcx*4 - 0x1f]
movzx eax, byte [rax + rdx + 0x8b710]
mov byte [rbp + rcx*4 - 0x1f], al
movzx eax, byte [rbp + rcx*4 - 0x1e]
movzx eax, byte [rax + rdx + 0x8b710]
mov byte [rbp + rcx*4 - 0x1e], al
movzx eax, byte [rbp + rcx*4 - 0x1d]
movzx eax, byte [rax + rdx + 0x8b710]
mov byte [rbp + rcx*4 - 0x1d], al
inc rcx
cmp rcx, r15
jl 0x1400017d2
mov ecx, 1
mov rdx, r15
mov eax, ecx
and eax, 0x80000003
jge 0x140001836
dec eax
or eax, 0xfffffffc
inc eax
cdqe
lea r8d, [rcx + 1]
add rax, rdx
movzx r11d, byte [rbp + rax - 0x20]
mov eax, r8d
and eax, 0x80000003
jge 0x140001856
dec eax
or eax, 0xfffffffc
inc eax
cdqe
add rax, rdx
movzx r10d, byte [rbp + rax - 0x20]
lea eax, [rcx + 2]
and eax, 0x80000003
jge 0x140001872
dec eax
or eax, 0xfffffffc
inc eax
cdqe
add rax, rdx
movzx r9d, byte [rbp + rax - 0x20]
lea eax, [rcx + 3]
and eax, 0x80000003
jge 0x14000188e
dec eax
or eax, 0xfffffffc
inc eax
cdqe
add rax, rdx
movzx ecx, byte [rbp + rax - 0x20]
mov byte [rbp + rdx - 0x1d], cl
mov ecx, r8d
mov byte [rbp + rdx - 0x20], r11b
mov byte [rbp + rdx - 0x1f], r10b
mov byte [rbp + rdx - 0x1e], r9b
add rdx, r15
cmp rdx, 0x10
jl 0x140001826
cmp r13, 0xa
je 0x1400019b8
xor edi, edi
nop word [rax + rax]
movzx eax, byte [rbp + rdi - 0x20]
lea rbx, [rbp + rdi - 0x20]
mov byte [rbp - 0x30], al
xor r10d, r10d
movzx eax, byte [rbp + rdi - 0x1c]
mov byte [rbp - 0x2f], al
movzx eax, byte [rbp + rdi - 0x18]
mov byte [rbp - 0x2e], al
movzx eax, byte [rbp + rdi - 0x14]
mov byte [rbp - 0x2d], al
lea eax, [r10 + 2]
nop dword [rax]
movzx r8d, byte [rbp + r10 - 0x30]
movzx ecx, r8b
add cl, cl
movzx edx, cl
movzx ecx, dl
xor cl, 0x1b
movzx r11d, cl
test r8b, r8b
lea ecx, [rax - 1]
cmovns r11d, edx
and ecx, 0x80000003
jge 0x140001932
dec ecx
or ecx, 0xfffffffc
inc ecx
movsxd rcx, ecx
movzx r8d, byte [rbp + rcx - 0x30]
movzx ecx, r8b
add cl, cl
movzx edx, cl
movzx ecx, dl
xor cl, 0x1b
test r8b, r8b
movzx r9d, cl
cmovns r9d, edx
xor r9b, r8b
lea r8d, [rax + 1]
mov ecx, r8d
and ecx, 0x80000003
jge 0x14000196e
dec ecx
or ecx, 0xfffffffc
inc ecx
movsxd rdx, ecx
and eax, 0x80000003
jge 0x14000197f
dec eax
or eax, 0xfffffffc
inc eax
movsxd rcx, eax
inc r10
movzx eax, byte [rbp + rdx - 0x30]
xor al, byte [rbp + rcx - 0x30]
xor al, r9b
xor al, r11b
mov byte [rbx], al
add rbx, r15
mov eax, r8d
cmp r10, r15
jl 0x140001900
inc rdi
cmp rdi, r15
jl 0x1400018d0
lea rbx, [0x14008b9b4]
mov rcx, r12
mov rdx, r15
nop
movzx eax, byte [rcx - 4]
xor byte [rsi + rcx - 4], al
movzx eax, byte [rcx]
xor byte [rsi + rcx], al
movzx eax, byte [rcx + 4]
xor byte [rsi + rcx + 4], al
movzx eax, byte [rcx + 8]
xor byte [rsi + rcx + 8], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1400019c0
inc r13
lea rdx, [0x140000000]
add r12, 0x10
sub rsi, 0x10
cmp r12, rbx
jle 0x1400017d0
lea rdx, [rbp - 0x1f]
nop word [rax + rax]
movzx ecx, byte [rdx - 1]
lea rdx, [rdx + 4]
mov byte [r14 - 8], cl
lea r14, [r14 + 1]
movzx ecx, byte [rdx - 4]
mov byte [r14 - 5], cl
movzx ecx, byte [rdx - 3]
mov byte [r14 - 1], cl
movzx ecx, byte [rdx - 2]
mov byte [r14 + 3], cl
sub r15, 1
jne 0x140001a10
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1400421a0
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rbp
ret