Function at 0x1801aaba0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rbp, r8
mov r12, rdx
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor r14d, r14d
movzx eax, byte [r8 + 0x18]
sub al, 2
mov esi, 0x80
mov ecx, 0xa0
cmp al, 1
cmova esi, ecx
mov qword [rbx], r14
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
lea edx, [r14 + 1]
mov ecx, esi
call fcn.18009de10
mov rcx, rax
mov qword [rbx], rax
add rax, rsi
mov qword [rbx + 0x10], rax
lea rdi, [rsi + rcx]
mov r8d, esi
xor edx, edx
call fcn.180283390
mov qword [rbx + 8], rdi
mov rcx, r12
call fcn.1801a7cc0
movzx r10d, byte [rbp + 0x18]
lea eax, [r10 - 2]
cmp al, 1
jbe 0x1801aae11
cmp r10b, 4
jne 0x1801aaf92
add r12, 4
lea r13d, [r14 + 0x20]
movabs r15, 0x3afb7680bb054e5d
nop word [rax + rax]
movsx esi, word [r12 - 2]
shl esi, 5
add rsi, 0x680
mov rax, r15
mul rsi
sub rsi, rdx
shr rsi, 1
add rsi, rdx
shr rsi, 0xb
and sil, 0x1f
movsx r9d, word [r12]
movsx r11d, word [r12 + 2]
shl r11d, 5
add r11, 0x680
mov rax, r15
mul r11
sub r11, rdx
shr r11, 1
add r11, rdx
shr r11, 0xb
and r11b, 0x1f
movsx edi, word [r12 + 4]
shl edi, 5
add rdi, 0x680
mov rax, r15
mul rdi
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 0xb
and dil, 0x1f
movsx r8d, word [r12 + 6]
movsx ebp, word [r12 + 8]
shl ebp, 5
add rbp, 0x680
mov rax, r15
mul rbp
sub rbp, rdx
shr rbp, 1
add rbp, rdx
shr rbp, 0xb
movsx r10d, word [r12 + 0xa]
movsx ecx, word [r12 - 4]
shl ecx, 5
add rcx, 0x680
mov rax, r15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xb
and cl, 0x1f
movzx eax, sil
shl al, 5
or cl, al
mov rax, qword [rbx]
mov byte [r14 + rax], cl
mov ecx, r9d
shl ecx, 5
add rcx, 0x680
mov rax, r15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xb
and cl, 0x1f
movzx eax, r11b
shl al, 5
or cl, al
shl cl, 2
shr sil, 3
or cl, sil
mov rax, qword [rbx]
mov byte [rax + r14 + 1], cl
movzx ecx, dil
shl cl, 4
shr r11b, 1
or cl, r11b
mov rax, qword [rbx]
mov byte [rax + r14 + 2], cl
mov ecx, r8d
shl ecx, 5
add rcx, 0x680
mov rax, r15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xb
and cl, 0x1f
movzx eax, bpl
shl al, 5
or cl, al
add cl, cl
shr dil, 4
or cl, dil
mov rax, qword [rbx]
mov byte [rax + r14 + 3], cl
mov ecx, r10d
shl ecx, 5
add rcx, 0x680
mov rax, r15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xb
shl cl, 3
shr bpl, 2
xor bpl, cl
and bpl, 7
xor bpl, cl
mov rax, qword [rbx]
mov byte [rax + r14 + 4], bpl
lea r14, [r14 + 5]
lea r12, [r12 + 0x10]
sub r13, 1
jne 0x1801aac50
jmp 0x1801aaf92
add r12, 4
mov r13d, 0x20
movabs r15, 0x3afb7680bb054e5d
movzx r10d, word [r12]
movzx r9d, word [r12 + 2]
movzx edi, word [r12 + 4]
movzx r11d, word [r12 + 6]
movzx ebp, word [r12 + 8]
movzx esi, word [r12 + 0xa]
movzx r8d, word [r12 - 2]
add r8, 0x68
shl r8, 4
mov rax, r15
mul r8
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 0xb
shl r8b, 4
movzx ecx, word [r12 - 4]
add rcx, 0x68
shl rcx, 4
mov rax, r15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xb
xor cl, r8b
and cl, 0xf
xor cl, r8b
mov rax, qword [rbx]
mov byte [r14 + rax], cl
lea r8, [r9 + 0x68]
shl r8, 4
mov rax, r15
mul r8
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 0xb
shl r8b, 4
lea rcx, [r10 + 0x68]
shl rcx, 4
mov rax, r15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xb
xor cl, r8b
and cl, 0xf
xor cl, r8b
mov rax, qword [rbx]
mov byte [rax + r14 + 1], cl
lea r8, [r11 + 0x68]
shl r8, 4
mov rax, r15
mul r8
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 0xb
shl r8b, 4
lea rcx, [rdi + 0x68]
shl rcx, 4
mov rax, r15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xb
xor cl, r8b
and cl, 0xf
xor cl, r8b
mov rax, qword [rbx]
mov byte [rax + r14 + 2], cl
lea r8, [rsi + 0x68]
shl r8, 4
mov rax, r15
mul r8
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 0xb
shl r8b, 4
lea rcx, [rbp + 0x68]
shl rcx, 4
mov rax, r15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 0xb
xor cl, r8b
and cl, 0xf
xor cl, r8b
mov rax, qword [rbx]
mov byte [rax + r14 + 3], cl
lea r14, [r14 + 4]
lea r12, [r12 + 0x10]
sub r13, 1
jne 0x1801aae25
mov rax, rbx
mov rbx, qword [rsp + 0x80]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret