Function at 0x140017e20
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x38
cmp byte [rcx + 0x1b], 0
je 0x14001815f
mov qword [rax + 0x18], rbx
lea r9, [rcx + 2]
mov qword [rax - 8], rbp
mov ebx, 1
mov qword [rax - 0x10], rsi
mov ebp, 4
mov qword [rax - 0x18], rdi
mov esi, 3
mov qword [rax - 0x20], r12
mov edi, 2
mov qword [rax - 0x28], r13
mov r12d, 7
mov qword [rax - 0x30], r14
mov r13d, 8
mov qword [rsp], r15
mov eax, 9
sub rax, rcx
mov r14d, 5
mov qword [rsp + 0x40], rax
mov r15d, 6
mov eax, 0xa
mov r11, rcx
sub rax, rcx
sub rbx, rcx
sub rdi, rcx
mov qword [rsp + 0x48], rax
sub rsi, rcx
sub rbp, rcx
sub r14, rcx
sub r15, rcx
sub r12, rcx
sub r13, rcx
mov r10, 0xfffffffffffffffe
not r11
sub r10, rcx
nop dword [rax]
nop word [rax + rax]
cmp qword [0x14002bc58], 0x10
lea r8, [0x14002bc40]
lea rax, [r9 + r10]
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 - 2], al
lea rax, [r9 + r11]
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 - 1], al
mov rax, r9
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
sub rax, rcx
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9], al
lea rax, [r9 + rbx]
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 + 1], al
lea rax, [r9 + rdi]
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 + 2], al
lea rax, [r9 + rsi]
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 + 3], al
lea rax, [r9 + rbp]
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 + 4], al
lea rax, [r9 + r14]
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 + 5], al
lea rax, [r9 + r15]
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 + 6], al
lea rax, [r9 + r12]
cmp qword [0x14002bc58], 0x10
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
xor byte [r9 + 7], al
cmp qword [0x14002bc58], 0x10
lea rax, [r9 + r13]
lea r8, [0x14002bc40]
cmovae r8, qword [0x14002bc40]
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 + 8], al
cmp qword [0x14002bc58], 0x10
mov rax, qword [rsp + 0x40]
cmovae r8, qword [0x14002bc40]
add rax, r9
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
lea r8, [0x14002bc40]
xor byte [r9 + 9], al
cmp qword [0x14002bc58], 0x10
mov rax, qword [rsp + 0x48]
cmovae r8, qword [0x14002bc40]
add rax, r9
xor edx, edx
div qword [0x14002bc50]
movzx eax, byte [rdx + r8]
xor byte [r9 + 0xa], al
add r9, 0xd
lea rax, [r9 + r10]
cmp rax, 0x1a
jb 0x140017ed0
mov r15, qword [rsp]
mov r14, qword [rsp + 8]
mov r13, qword [rsp + 0x10]
mov r12, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x50]
mov byte [rcx + 0x1b], 0
add rsp, 0x38
ret