Function at 0x14016eba0
Capabilities:
Encode data using xor

Disassembly:
test r9, r9
je 0x14016eefe
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xc0
mov rax, qword [0x14040f040]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov rdi, r9
xor esi, esi
test rcx, rcx
cmovne esi, edx
lea rbx, [rbp - 0x59]
cmovne rbx, rcx
cmp r8d, 1
je 0x14016eed3
cmp r8d, 5
jne 0x14016ec19
lea rcx, [rbp - 0x49]
call fcn.1401d83d0
nop
mov r9, rdi
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.1401d8da0
nop
lea rcx, [rbp - 0x49]
call fcn.1401d8400
jmp 0x14016eee0
cmp r8d, 7
jne 0x14016ec31
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.1402028d0
jmp 0x14016eee0
cmp r8d, 2
jne 0x14016ec49
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.140203020
jmp 0x14016eee0
cmp r8d, 3
jne 0x14016ec61
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.140203770
jmp 0x14016eee0
cmp r8d, 0x14
jne 0x14016ec79
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.14020b1c0
jmp 0x14016eee0
cmp r8d, 0x15
jne 0x14016ec91
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.14020b330
jmp 0x14016eee0
cmp r8d, 0x16
jne 0x14016eca9
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.14020b4b0
jmp 0x14016eee0
cmp r8d, 0x13
jne 0x14016ecc1
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.14020b040
jmp 0x14016eee0
cmp r8d, 0xf
je 0x14016eed3
cmp r8d, 0x1d
jne 0x14016ed00
xor al, al
test esi, esi
je 0x14016ecf8
mov edx, esi
lea r8, [0x140419f40]
movzx ecx, byte [rbx]
movzx eax, al
xor rcx, rax
movzx eax, byte [rcx + r8]
lea rbx, [rbx + 1]
sub rdx, 1
jne 0x14016ece0
mov byte [r9], al
jmp 0x14016eee0
cmp r8d, 0x1c
jne 0x14016ed5f
xor r8d, r8d
mov edx, esi
mov rcx, rbx
call fcn.1401f2770
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x10
mov r9d, eax
shr r9d, 8
cmp byte [0x14040ff68], 0
je 0x14016ed44
mov r8d, eax
mov eax, r9d
mov byte [rdi], cl
mov byte [rdi + 1], dl
mov byte [rdi + 2], al
mov byte [rdi + 3], r8b
jmp 0x14016eee0
mov r8d, ecx
mov ecx, eax
mov eax, edx
mov edx, r9d
mov byte [rdi], cl
mov byte [rdi + 1], dl
mov byte [rdi + 2], al
mov byte [rdi + 3], r8b
jmp 0x14016eee0
cmp r8d, 4
jne 0x14016ed90
lea rcx, [rbp - 0x49]
call fcn.1401f9cd0
nop
mov r9, rdi
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.1401fa240
nop
lea rcx, [rbp - 0x49]
call fcn.1401f9ce0
jmp 0x14016eee0
cmp r8d, 8
jne 0x14016edd3
lea rcx, [rbp - 0x49]
call fcn.140200f60
nop
lea rcx, [rbp - 0x49]
call fcn.1401d9250
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.140201ad0
mov rdx, rdi
lea rcx, [rbp - 0x49]
call fcn.140201130
nop
lea rcx, [rbp - 0x49]
call fcn.140200f90
jmp 0x14016eee0
cmp r8d, 0x1e
jne 0x14016edeb
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.140202250
jmp 0x14016eee0
cmp r8d, 9
jne 0x14016ee1c
lea rcx, [rbp - 0x49]
call fcn.1401fa510
nop
mov r9, rdi
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.1401fbae0
nop
lea rcx, [rbp - 0x49]
call fcn.1401fa530
jmp 0x14016eee0
cmp r8d, 0xa
jne 0x14016ee4d
lea rcx, [rbp - 0x49]
call fcn.1401fbb30
nop
mov r9, rdi
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.1401fd870
nop
lea rcx, [rbp - 0x49]
call fcn.1401fbb50
jmp 0x14016eee0
cmp r8d, 0xb
jne 0x14016ee7b
lea rcx, [rbp - 0x49]
call fcn.1401fd8d0
nop
mov r9, rdi
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.1401fefb0
nop
lea rcx, [rbp - 0x49]
call fcn.1401fd8f0
jmp 0x14016eee0
cmp r8d, 0xc
jne 0x14016eea9
lea rcx, [rbp - 0x49]
call fcn.1401ff020
nop
mov r9, rdi
mov r8d, esi
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.140200ee0
nop
lea rcx, [rbp - 0x49]
call fcn.1401ff040
jmp 0x14016eee0
cmp r8d, 0x11
jne 0x14016eebe
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.140204000
jmp 0x14016eee0
cmp r8d, 0x12
jne 0x14016eed3
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.1402040f0
jmp 0x14016eee0
mov r8, rdi
mov edx, esi
mov rcx, rbx
call fcn.1401f9990
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.140109210
mov rbx, qword [rsp + 0xf0]
add rsp, 0xc0
pop rdi
pop rsi
pop rbp
ret