Function at 0x14009a2bc
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x80
call fcn.14024eae0
sub rsp, rax
mov rax, qword [0x14035d028]
xor rax, rsp
mov qword [rsp + 0x78], rax
movzx edi, byte [rcx]
lea rsi, [rcx + 0x10]
mov rax, qword [rcx + 0x28]
mov rbp, r9
mov r11, qword [rcx + 0x30]
mov r10, rdx
mov qword [rsp + 0x48], r8
mov rbx, rcx
mov qword [rsp + 0x30], rdx
mov byte [rsp + 0x20], dil
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x58], rsi
test dil, 0x40
jne 0x14009a340
mov r8, r11
mov rdx, rsi
call qword [case.0x14004a846.0]
inc qword [rbx + 0x20]
mov r10, qword [rsp + 0x30]
mov r11, qword [rsp + 0x28]
jmp 0x14009a345
mov qword [rsp + 0x58], rsi
mov r8d, edi
xor edi, edi
and r8d, 7
mov ecx, edi
mov byte [rbx], r8b
lea r15d, [rdi + 0xf]
sub r15d, r8d
mov dword [rsp + 0x40], r15d
cmp r15d, 0xf
jae 0x14009a384
mov edx, r15d
add rdx, rbx
mov r9d, r8d
movzx eax, byte [rdx]
or rcx, rax
mov byte [rdx], dil
shl rcx, 8
inc rdx
sub r9, 1
jne 0x14009a36e
movzx eax, byte [rbx + 0xf]
or rcx, rax
mov byte [rbx + 0xf], 1
cmp rcx, rbp
je 0x14009a39c
or eax, 0xffffffff
jmp 0x14009a58f
lea rax, [rbp + 0xf]
or rax, 8
shr rax, 3
add qword [rbx + 0x20], rax
movabs rax, 0x2000000000000000
cmp qword [rbx + 0x20], rax
jbe 0x14009a3c6
mov eax, 0xfffffffe
jmp 0x14009a58f
mov r12d, 2
lea r14d, [r12 + 0xe]
cmp rbp, r14
jb 0x14009a4ce
mov rcx, qword [rsp + 0x48]
lea rsi, [r12 - 0x12]
mov r12, rbp
mov qword [rsp + 0x50], rcx
shr r12, 4
lea r9, [rbx + 0x10]
imul rax, r12, 0xfffffffffffffff0
mov r13, r10
lea r15d, [r14 - 0xe]
add rbp, rax
sub rsi, rbx
mov rax, r12
mov qword [rsp + 0x60], rbp
mov rbp, qword [rsp + 0x38]
shl rax, 4
add r10, rax
add rcx, rax
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x48], rcx
jmp 0x14009a42d
mov r11, qword [rsp + 0x28]
mov rcx, r9
lea r8, [rsi + r13]
mov rdx, r15
mov rax, qword [r8 + rcx]
xor qword [rcx], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x14009a437
mov r8, r11
mov rdx, r9
mov rcx, r9
mov rax, rbp
call qword [case.0x14004a846.0]
mov r8, qword [rsp + 0x28]
lea rdx, [rsp + 0x68]
mov rcx, rbx
mov rax, rbp
call qword [case.0x14004a846.0]
mov edx, 8
dec edx
add byte [rdx + rbx + 8], 1
jne 0x14009a482
test edx, edx
jne 0x14009a475
mov r9, qword [rsp + 0x50]
mov rcx, rdi
mov rax, qword [r13 + rcx*8]
xor rax, qword [rsp + rcx*8 + 0x68]
mov qword [r9 + rcx*8], rax
inc rcx
cmp rcx, r15
jl 0x14009a48a
add r9, r14
add r13, r14
mov qword [rsp + 0x50], r9
lea r9, [rbx + 0x10]
sub r12, 1
jne 0x14009a428
mov rsi, qword [rsp + 0x58]
mov r12d, 2
mov rbp, qword [rsp + 0x60]
mov r15d, dword [rsp + 0x40]
test rbp, rbp
je 0x14009a53d
mov r13, qword [rsp + 0x30]
mov edx, edi
mov rcx, rdi
mov al, byte [rcx + r13]
inc edx
xor byte [rcx + rbx + 0x10], al
mov ecx, edx
cmp rcx, rbp
jb 0x14009a4dd
mov r8, qword [rsp + 0x28]
mov rdx, rsi
mov rax, qword [rsp + 0x38]
mov rcx, rsi
call qword [case.0x14004a846.0]
mov r8, qword [rsp + 0x28]
lea rdx, [rsp + 0x68]
mov rax, qword [rsp + 0x38]
mov rcx, rbx
call qword [case.0x14004a846.0]
test rbp, rbp
je 0x14009a53d
mov rdx, qword [rsp + 0x48]
mov rcx, rdi
mov al, byte [rcx + r13]
inc edi
xor al, byte [rsp + rcx + 0x68]
mov byte [rcx + rdx], al
mov ecx, edi
cmp rcx, rbp
jb 0x14009a529
cmp r15d, r14d
jae 0x14009a555
sub r14d, r15d
mov ecx, r15d
mov r8d, r14d
add rcx, rbx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov r8, qword [rsp + 0x28]
lea rdx, [rsp + 0x68]
mov rax, qword [rsp + 0x38]
mov rcx, rbx
call qword [case.0x14004a846.0]
lea rcx, [rsp + 0x68]
sub rcx, rbx
mov rax, qword [rcx + rsi - 0x10]
xor qword [rsi], rax
lea rsi, [rsi + 8]
sub r12, 1
jne 0x14009a575
mov al, byte [rsp + 0x20]
mov byte [rbx], al
xor eax, eax
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.14024c6d0
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret