Function at 0x140020110
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x28
cmp byte [rcx + 0x19], 0
je 0x14002040e
mov qword [rax + 0x10], rbx
lea r9, [rcx + 2]
mov qword [rax + 0x18], rbp
mov ebx, 1
mov qword [rax + 0x20], rsi
mov ebp, 4
mov qword [rax - 8], rdi
mov esi, 3
mov qword [rax - 0x10], r12
mov edi, 2
mov qword [rax - 0x18], r13
mov r12d, 7
mov qword [rax - 0x20], r14
mov r13d, 8
mov qword [rsp], r15
mov r14d, 5
mov r15d, 6
mov eax, 9
sub rax, rcx
sub r15, rcx
mov r11, rcx
mov qword [rsp + 0x30], rax
sub rbx, rcx
sub rdi, rcx
sub rsi, rcx
sub rbp, rcx
sub r14, rcx
sub r12, rcx
sub r13, rcx
mov r10, 0xfffffffffffffffe
sub r10, rcx
not r11
nop word [rax + rax]
cmp qword [0x140032c08], 0x10
lea r8, [0x140032bf0]
lea rax, [r9 + r10]
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 - 2], al
lea rax, [r9 + r11]
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 - 1], al
mov rax, r9
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
sub rax, rcx
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9], al
lea rax, [rbx + r9]
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 + 1], al
lea rax, [rdi + r9]
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 + 2], al
lea rax, [r9 + rsi]
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 + 3], al
lea rax, [r9 + rbp]
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 + 4], al
lea rax, [r9 + r14]
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 + 5], al
lea rax, [r9 + r15]
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 + 6], al
lea rax, [r9 + r12]
cmp qword [0x140032c08], 0x10
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
xor byte [r9 + 7], al
cmp qword [0x140032c08], 0x10
lea rax, [r9 + r13]
lea r8, [0x140032bf0]
cmovae r8, qword [0x140032bf0]
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
lea r8, [0x140032bf0]
xor byte [r9 + 8], al
cmp qword [0x140032c08], 0x10
mov rax, qword [rsp + 0x30]
cmovae r8, qword [0x140032bf0]
add rax, r9
xor edx, edx
div qword [0x140032c00]
movzx eax, byte [rdx + r8]
xor byte [r9 + 9], al
add r9, 0xc
lea rax, [r9 + r10]
cmp rax, 0x18
jb 0x1400201b0
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 + 0x48]
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov byte [rcx + 0x19], 0
add rsp, 0x28
ret