Function at 0x14016a4e0
Capabilities:
Encode data using xor

Disassembly:
mov r8d, r8d
jmp 0x14016a4e0
push rbx
sub rsp, 0x70
mov rbx, r8
mov r11, rdx
mov r9d, ecx
test rdx, rdx
jne 0x14016a4fc
xor eax, eax
add rsp, 0x70
pop rbx
ret
mov qword [rsp + 0x60], rdi
lea rdi, [0x140000000]
not r9d
cmp rbx, 0x17
jb 0x14016a781
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
test r11b, 3
je 0x14016a55b
movzx ecx, byte [r11]
mov eax, r9d
xor rcx, rax
inc r11
shr eax, 8
movzx edx, cl
mov r9d, dword [rdi + rdx*4 + 0x237390]
xor r9d, eax
sub rbx, 1
jne 0x14016a531
xor esi, esi
movabs rax, 0xcccccccccccccccd
mul rbx
mov ebp, esi
mov r14d, esi
mov r12, rdx
mov r15d, esi
shr r12, 4
lea rax, [r12 + r12*4]
shl rax, 2
sub rbx, rax
sub r12, 1
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x88], r12
je 0x14016a71d
mov qword [rsp + 0x50], r13
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r11]
mov edx, dword [r11 + 8]
xor eax, r9d
mov r10d, dword [r11 + 0x10]
xor edx, ebp
mov ecx, dword [r11 + 4]
xor r10d, r15d
mov r8d, dword [r11 + 0xc]
xor ecx, esi
mov r13d, eax
xor r8d, r14d
movzx eax, al
add r11, 0x14
mov qword [rsp + 0x30], r11
mov r12d, edx
mov r9d, dword [rdi + rax*4 + 0x237790]
mov eax, ecx
mov qword [rsp + 0x98], rax
mov rbx, qword [rsp + 0x98]
movzx eax, cl
mov esi, dword [rdi + rax*4 + 0x237790]
movzx eax, dl
lea rdx, [0x140000000]
mov ebp, dword [rdi + rax*4 + 0x237790]
mov eax, r8d
mov qword [rsp + 0x20], rax
mov r11, qword [rsp + 0x20]
movzx eax, r8b
mov r14d, dword [rdi + rax*4 + 0x237790]
mov eax, r10d
mov qword [rsp + 0x28], rax
movzx eax, r10b
mov r10d, 0x100
mov r15d, dword [rdi + rax*4 + 0x237790]
mov edi, 1
nop
lea eax, [rdi*8]
inc edi
movsxd r8, eax
mov rax, r13
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, rbx
add rcx, r10
xor r9d, dword [rdx + rcx*4 + 0x237790]
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, r12
add rcx, r10
xor esi, dword [rdx + rcx*4 + 0x237790]
mov rcx, r8
shr rax, cl
movzx edx, al
lea rax, [0x140000000]
add rdx, r10
xor ebp, dword [rax + rdx*4 + 0x237790]
mov rax, r11
shr rax, cl
movzx edx, al
lea rax, [0x140000000]
add rdx, r10
xor r14d, dword [rax + rdx*4 + 0x237790]
lea rdx, [0x140000000]
mov rax, qword [rsp + 0x28]
shr rax, cl
movzx ecx, al
add rcx, r10
add r10, 0x100
xor r15d, dword [rdx + rcx*4 + 0x237790]
cmp edi, 4
jl 0x14016a650
sub qword [rsp + 0x88], 1
lea rdi, [0x140000000]
mov r11, qword [rsp + 0x30]
jne 0x14016a5b0
mov rbx, qword [rsp + 0x90]
lea rdi, [0x140000000]
mov r13, qword [rsp + 0x50]
mov ecx, dword [r11]
xor ecx, r9d
call fcn.14016a8d0
xor eax, dword [r11 + 4]
xor eax, esi
mov ecx, eax
call fcn.14016a8d0
xor eax, dword [r11 + 8]
xor eax, ebp
mov ecx, eax
call fcn.14016a8d0
xor eax, dword [r11 + 0xc]
xor eax, r14d
mov ecx, eax
call fcn.14016a8d0
xor eax, dword [r11 + 0x10]
xor eax, r15d
mov ecx, eax
call fcn.14016a8d0
mov r15, qword [rsp + 0x40]
mov r9d, eax
mov r14, qword [rsp + 0x48]
add r11, 0x14
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x80]
cmp rbx, 8
jb 0x14016a889
mov r10, rbx
shr r10, 3
imul rax, r10, 0xfffffffffffffff8
add rbx, rax
nop dword [rax]
movzx ecx, byte [r11]
mov eax, r9d
xor rcx, rax
shr r9d, 8
movzx eax, cl
movzx ecx, byte [r11 + 1]
mov edx, dword [rdi + rax*4 + 0x237390]
xor edx, r9d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 2]
mov r8d, dword [rdi + rax*4 + 0x237390]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 3]
mov edx, dword [rdi + rax*4 + 0x237390]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 4]
mov r8d, dword [rdi + rax*4 + 0x237390]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 5]
mov edx, dword [rdi + rax*4 + 0x237390]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 6]
mov r8d, dword [rdi + rax*4 + 0x237390]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 7]
add r11, 8
mov edx, dword [rdi + rax*4 + 0x237390]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
mov r9d, dword [rdi + rax*4 + 0x237390]
xor r9d, edx
sub r10, 1
jne 0x14016a7a0
test rbx, rbx
je 0x14016a8b5
nop
movzx ecx, byte [r11]
lea r11, [r11 + 1]
mov eax, r9d
xor rcx, rax
shr eax, 8
movzx edx, cl
mov r9d, dword [rdi + rdx*4 + 0x237390]
xor r9d, eax
sub rbx, 1
jne 0x14016a890
mov rdi, qword [rsp + 0x60]
not r9d
mov eax, r9d
add rsp, 0x70
pop rbx
ret