Function at 0x140022590
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x48
cmp byte [rcx + 0x2e], 0
je 0x140022942
mov qword [rax - 8], rbx
lea r9, [rcx + 2]
mov qword [rax - 0x10], rbp
mov ebx, 1
mov qword [rax - 0x18], rsi
mov ebp, 4
mov qword [rax - 0x20], rdi
mov esi, 3
mov qword [rax - 0x28], r12
mov edi, 2
mov qword [rax - 0x30], r13
mov r12d, 7
mov qword [rax - 0x38], r14
mov r13d, 8
mov qword [rax - 0x40], r15
mov r14d, 5
mov eax, 9
mov r15d, 6
sub rax, rcx
mov r11, rcx
mov qword [rsp + 0x50], rax
sub rbx, rcx
mov eax, 0xa
sub rdi, rcx
sub rax, rcx
sub rsi, rcx
mov qword [rsp + 0x58], rax
sub rbp, rcx
mov eax, 0xb
sub r14, rcx
sub rax, rcx
sub r15, rcx
mov qword [rsp + 0x60], rax
sub r12, rcx
mov eax, 0xc
sub r13, rcx
sub rax, rcx
mov r10, 0xfffffffffffffffe
mov qword [rsp + 0x68], rax
sub r10, rcx
not r11
nop dword [rax]
cmp qword [0x140032ba8], 0x10
lea r8, [0x140032b90]
lea rax, [r9 + r10]
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 - 2], al
lea rax, [r9 + r11]
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 - 1], al
mov rax, r9
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
sub rax, rcx
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9], al
lea rax, [r9 + rbx]
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 1], al
lea rax, [r9 + rdi]
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 2], al
lea rax, [r9 + rsi]
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 3], al
lea rax, [r9 + rbp]
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 4], al
lea rax, [r9 + r14]
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 5], al
lea rax, [r9 + r15]
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 6], al
lea rax, [r9 + r12]
cmp qword [0x140032ba8], 0x10
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
xor byte [r9 + 7], al
cmp qword [0x140032ba8], 0x10
lea rax, [r9 + r13]
lea r8, [0x140032b90]
cmovae r8, qword [0x140032b90]
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 8], al
cmp qword [0x140032ba8], 0x10
mov rax, qword [rsp + 0x50]
cmovae r8, qword [0x140032b90]
add rax, r9
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 9], al
cmp qword [0x140032ba8], 0x10
mov rax, qword [rsp + 0x58]
cmovae r8, qword [0x140032b90]
add rax, r9
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 0xa], al
cmp qword [0x140032ba8], 0x10
mov rax, qword [rsp + 0x60]
cmovae r8, qword [0x140032b90]
add rax, r9
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
lea r8, [0x140032b90]
xor byte [r9 + 0xb], al
cmp qword [0x140032ba8], 0x10
mov rax, qword [rsp + 0x68]
cmovae r8, qword [0x140032b90]
add rax, r9
xor edx, edx
div qword [0x140032ba0]
movzx eax, byte [rdx + r8]
xor byte [r9 + 0xc], al
add r9, 0xf
lea rax, [r9 + r10]
cmp rax, 0x2d
jb 0x140022650
mov r15, qword [rsp + 8]
mov r14, qword [rsp + 0x10]
mov r13, qword [rsp + 0x18]
mov r12, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov byte [rcx + 0x2e], 0
add rsp, 0x48
ret