Function at 0x14001a970
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0x30
xor eax, eax
cmp r9d, 1
mov rbp, r8
mov r12, rdx
mov r13, rcx
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x24], eax
jne 0x14001aab2
cmp r8, 8
mov edi, dword [rcx + 8]
mov esi, dword [rcx + 0xc]
jb 0x14001ac58
mov qword [rsp + 0x50], r14
shr rbp, 3
lea r14, [rdx + 7]
nop
nop
nop
nop
movzx ecx, byte [r12]
movzx eax, byte [r14 - 6]
lea rdx, [rsp + 0x20]
shl ecx, 0x18
shl eax, 0x10
or ecx, eax
movzx eax, byte [r14 - 5]
shl eax, 8
or ecx, eax
movzx eax, byte [r14 - 4]
or ecx, eax
movzx eax, byte [r14 - 2]
mov dword [rsp + 0x20], ecx
movzx ecx, byte [r14 - 3]
shl eax, 0x10
shl ecx, 0x18
or ecx, eax
movzx eax, byte [r14 - 1]
shl eax, 8
or ecx, eax
movzx eax, byte [r14]
or ecx, eax
mov dword [rsp + 0x24], ecx
mov rbx, qword [rsp + 0x20]
mov rcx, r13
call fcn.14001a530
mov ecx, dword [rsp + 0x24]
mov r11d, dword [rsp + 0x20]
add r14, 8
xor ecx, esi
xor r11d, edi
mov byte [r14 - 8], cl
movzx eax, cl
mov eax, ecx
shr eax, 8
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x20], r11d
mov byte [r14 - 9], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
add r12, 8
mov qword [rsp + 0x28], rbx
mov byte [r14 - 0xa], al
mov byte [r14 - 0xb], cl
movzx eax, r11b
mov byte [r14 - 0xc], al
mov eax, r11d
shr eax, 8
mov byte [r14 - 0xd], al
mov eax, r11d
shr r11d, 0x18
shr eax, 0x10
sub rbp, 1
mov byte [r14 - 0xe], al
mov byte [r14 - 0xf], r11b
je 0x14001aaa8
mov esi, dword [rsp + 0x2c]
mov edi, ebx
jmp 0x14001a9d0
mov r14, qword [rsp + 0x50]
jmp 0x14001ac58
cmp r9d, 2
jne 0x14001ab9e
cmp r8, 8
mov eax, dword [rcx + 8]
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x2c], eax
jb 0x14001ac58
lea rsi, [rdx + 7]
shr rbp, 3
nop
movzx eax, byte [rsi - 6]
movzx edi, byte [r12]
movzx ebx, byte [rsi - 3]
shl eax, 0x10
shl edi, 0x18
shl ebx, 0x18
or edi, eax
movzx eax, byte [rsi - 5]
lea rdx, [rsp + 0x28]
shl eax, 8
mov rcx, r13
or edi, eax
movzx eax, byte [rsi - 4]
or edi, eax
movzx eax, byte [rsi - 2]
shl eax, 0x10
mov dword [rsp + 0x20], edi
or ebx, eax
movzx eax, byte [rsi - 1]
shl eax, 8
or ebx, eax
movzx eax, byte [rsi]
or ebx, eax
mov dword [rsp + 0x24], ebx
call fcn.14001a0f0
xor ebx, dword [rsp + 0x2c]
xor edi, dword [rsp + 0x28]
mov r11, qword [rsp + 0x20]
add rsi, 8
mov byte [rsi - 8], bl
movzx eax, bl
mov eax, ebx
shr eax, 8
mov dword [rsp + 0x24], ebx
mov dword [rsp + 0x20], edi
mov byte [rsi - 9], al
mov eax, ebx
shr ebx, 0x18
shr eax, 0x10
add r12, 8
mov qword [rsp + 0x28], r11
mov byte [rsi - 0xa], al
mov byte [rsi - 0xb], bl
movzx eax, dil
mov byte [rsi - 0xc], al
mov eax, edi
shr eax, 8
mov byte [rsi - 0xd], al
mov eax, edi
shr edi, 0x18
shr eax, 0x10
sub rbp, 1
mov byte [rsi - 0xe], al
mov byte [rsi - 0xf], dil
jne 0x14001aae0
jmp 0x14001ac58
cmp r8, 8
jb 0x14001ac58
lea rbx, [rdx + 7]
shr rbp, 3
movzx ecx, byte [r12]
movzx eax, byte [rbx - 6]
lea rdx, [rsp + 0x20]
shl ecx, 0x18
shl eax, 0x10
or ecx, eax
movzx eax, byte [rbx - 5]
shl eax, 8
or ecx, eax
movzx eax, byte [rbx - 4]
or ecx, eax
movzx eax, byte [rbx - 2]
mov dword [rsp + 0x20], ecx
movzx ecx, byte [rbx - 3]
shl eax, 0x10
shl ecx, 0x18
or ecx, eax
movzx eax, byte [rbx - 1]
shl eax, 8
or ecx, eax
movzx eax, byte [rbx]
or ecx, eax
mov dword [rsp + 0x24], ecx
mov rcx, r13
call fcn.14001a530
mov ecx, dword [rsp + 0x24]
movzx eax, byte [rsp + 0x24]
mov byte [rbx], al
add rbx, 8
mov eax, ecx
shr eax, 8
add r12, 8
mov byte [rbx - 9], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [rbx - 0xa], al
movzx eax, byte [rsp + 0x20]
mov byte [rbx - 0xb], cl
mov ecx, dword [rsp + 0x20]
mov byte [rbx - 0xc], al
mov eax, ecx
shr eax, 8
mov byte [rbx - 0xd], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
sub rbp, 1
mov byte [rbx - 0xe], al
mov byte [rbx - 0xf], cl
jne 0x14001abb0
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r13
pop r12
pop rdi
ret