Function at 0x16004aa38
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
mov r11, r8
mov r10, rdx
mov r9d, ecx
test rdx, rdx
jne 0x16004aa61
xor eax, eax
jmp 0x16004ad30
lea r15, [0x160000000]
not r9d
cmp r8, 0x17
jb 0x16004acc1
test r10b, 3
je 0x16004aa9d
movzx ecx, byte [r10]
mov eax, r9d
xor rcx, rax
shr r9d, 8
movzx eax, cl
inc r10
xor r9d, dword [r15 + rax*4 + 0xd6540]
sub r11, 1
jne 0x16004aa75
xor esi, esi
movabs rax, 0xcccccccccccccccd
mul r11
xor ebp, ebp
xor r14d, r14d
mov rbx, rdx
lea edi, [rsi + 4]
shr rbx, 4
xor r12d, r12d
lea rax, [rbx + rbx*4]
shl rax, 2
sub r11, rax
sub rbx, 1
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x68], rbx
je 0x16004ac24
xor r9d, dword [r10]
lea rdx, [0x160000000]
xor esi, dword [r10 + 4]
mov r13d, 1
xor r14d, dword [r10 + 0xc]
xor r12d, dword [r10 + 0x10]
xor ebp, dword [r10 + 8]
movzx eax, r9b
add r10, 0x14
mov r11d, r9d
mov ebx, esi
mov qword [rsp + 0x58], r10
mov r9d, dword [r15 + rax*4 + 0xd5140]
movzx eax, sil
mov r10d, ebp
mov esi, dword [r15 + rax*4 + 0xd5140]
movzx eax, bpl
mov ebp, dword [r15 + rax*4 + 0xd5140]
mov eax, r14d
mov qword [rsp], rax
movzx eax, r14b
mov r14d, dword [r15 + rax*4 + 0xd5140]
mov eax, r12d
mov qword [rsp + 8], rax
movzx eax, r12b
mov r12d, dword [r15 + rax*4 + 0xd5140]
mov r15d, 0x100
lea eax, [r13*8]
inc r13d
movsxd r8, eax
mov rax, r11
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, rbx
add rcx, r15
xor r9d, dword [rdx + rcx*4 + 0xd5140]
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, r10
add rcx, r15
xor esi, dword [rdx + rcx*4 + 0xd5140]
mov rcx, r8
shr rax, cl
movzx edx, al
lea rax, [0x160000000]
add rdx, r15
xor ebp, dword [rax + rdx*4 + 0xd5140]
mov rax, qword [rsp]
shr rax, cl
movzx edx, al
lea rax, [0x160000000]
add rdx, r15
xor r14d, dword [rax + rdx*4 + 0xd5140]
lea rdx, [0x160000000]
mov rax, qword [rsp + 8]
shr rax, cl
movzx ecx, al
add rcx, r15
add r15, 0x100
xor r12d, dword [rdx + rcx*4 + 0xd5140]
cmp r13d, edi
jl 0x16004ab5f
sub qword [rsp + 0x68], 1
lea r15, [0x160000000]
mov r10, qword [rsp + 0x58]
jne 0x16004aadd
mov r11, qword [rsp + 0x60]
lea r15, [0x160000000]
xor r9d, dword [r10]
mov rdx, rdi
movzx ecx, r9b
shr r9d, 8
xor r9d, dword [r15 + rcx*4 + 0xd6540]
sub rdx, 1
jne 0x16004ac2a
xor r9d, dword [r10 + 4]
mov rdx, rdi
xor r9d, esi
movzx ecx, r9b
shr r9d, 8
xor r9d, dword [r15 + rcx*4 + 0xd6540]
sub rdx, 1
jne 0x16004ac4a
xor r9d, dword [r10 + 8]
mov rdx, rdi
xor r9d, ebp
movzx ecx, r9b
shr r9d, 8
xor r9d, dword [r15 + rcx*4 + 0xd6540]
sub rdx, 1
jne 0x16004ac6a
xor r9d, dword [r10 + 0xc]
mov rdx, rdi
xor r9d, r14d
movzx ecx, r9b
shr r9d, 8
xor r9d, dword [r15 + rcx*4 + 0xd6540]
sub rdx, 1
jne 0x16004ac8a
xor r9d, dword [r10 + 0x10]
xor r9d, r12d
movzx ecx, r9b
shr r9d, 8
xor r9d, dword [r15 + rcx*4 + 0xd6540]
sub rdi, 1
jne 0x16004aca7
add r10, 0x14
cmp r11, 8
jb 0x16004ad03
mov rdx, r11
shr rdx, 3
imul rax, rdx, 0xfffffffffffffff8
add r11, rax
mov r8d, 8
movzx ecx, byte [r10]
mov eax, r9d
xor rcx, rax
shr r9d, 8
movzx eax, cl
inc r10
xor r9d, dword [r15 + rax*4 + 0xd6540]
sub r8, 1
jne 0x16004acdb
sub rdx, 1
jne 0x16004acd5
test r11, r11
je 0x16004ad2a
movzx ecx, byte [r10]
mov eax, r9d
xor rcx, rax
shr r9d, 8
movzx eax, cl
inc r10
xor r9d, dword [r15 + rax*4 + 0xd6540]
sub r11, 1
jne 0x16004ad08
not r9d
mov eax, r9d
mov rbx, qword [rsp + 0x50]
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret