Function at 0x140016f94
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
mov eax, 0x21f0
call fcn.14002e9a0
sub rsp, rax
mov rbp, qword [rcx + 0xa8]
mov rsi, rcx
mov r13, r8
mov r12, rdx
mov ebx, 0xfff
lea rcx, [rsp + 0x11f1]
xor edi, edi
mov r8, rbx
xor edx, edx
mov byte [rsp + 0x11f0], dil
call fcn.14001d490
lea rcx, [rsp + 0x1f1]
mov r8, rbx
xor edx, edx
mov byte [rsp + 0x1f0], dil
call fcn.14001d490
cmp dword [rbp + 0x68], 0xbb8
jae 0x14001729c
mov r8d, dword [rbp + 0x68]
lea rdx, [rbp + 0xa0]
lea rcx, [rsp + 0x11f0]
call fcn.14001cf80
mov r8d, dword [rbp + 0x68]
lea rdx, [rbp + 0xa0]
lea rcx, [rsp + 0x1f0]
call fcn.14001cf80
xor eax, eax
lea r8d, [rdi + 0x3f]
lea rcx, [rsp + 0x61]
xor edx, edx
mov byte [rsp + 0x40], dil
mov qword [rsp + 0x41], rax
mov qword [rsp + 0x49], rax
mov word [rsp + 0x51], ax
mov byte [rsp + 0x53], al
mov byte [rsp + 0x60], dil
call fcn.14001d490
lea rdx, [rbp + 0x84]
lea r8d, [rdi + 0x10]
lea rcx, [rsp + 0x40]
call fcn.14001cf80
lea rax, [rsp + 0x60]
mov byte [rsp + 0x53], 1
mov edx, dword [rbp + 0x98]
mov qword [rsp + 0x30], rax
mov eax, dword [rbp + 0x94]
mov dword [rsp + 0x28], eax
lea r9, [rsp + 0x40]
mov r8, r13
mov rcx, rsi
mov dword [rsp + 0x20], 0x14
call fcn.140016974
lea r8d, [rdi + 0x20]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0xac]
mov dword [rsp + 0xa8], r8d
mov byte [rsp + 0xa0], 8
mov dword [rsp + 0xa4], 0x6610
mov byte [rsp + 0xa1], 2
call fcn.14001cf80
mov rdx, qword [rsi]
mov rcx, qword [rsi + 0xc0]
lea rax, [rsp + 0x2238]
mov qword [rsp + 0x30], rax
lea r9d, [rdi + 0x2c]
lea r8, [rsp + 0xa0]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x2238], rdi
mov qword [rsp + 0x20], rdi
call fcn.14001ca20
mov rdx, qword [rsp + 0x2238]
cmp rdx, rdi
je 0x140017298
mov eax, dword [rbp + 0x68]
mov rcx, qword [rsi + 0xc0]
lea r9d, [rdi + 1]
mov dword [rsp + 0x2220], eax
lea rax, [rsp + 0x2220]
xor r8d, r8d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x1f0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
call fcn.14001c96c
mov rdx, qword [rsp + 0x2238]
mov rcx, qword [rsi + 0xc0]
call fcn.14001ca88
mov r11, rdi
mov al, byte [rsp + r11 + 0x80]
add r11, 1
xor byte [rsp + r11 + 0x1ef], al
cmp r11, 0x10
jl 0x140017185
mov ebx, 0x7f
lea rcx, [rsp + 0xf1]
xor edx, edx
mov r8, rbx
mov byte [rsp + 0xf0], dil
call fcn.14001d490
lea rcx, [rsp + 0x171]
mov r8, rbx
xor edx, edx
mov byte [rsp + 0x170], dil
call fcn.14001d490
mov edx, dword [rbp + 0x98]
lea r11, [rsp + 0xf0]
mov qword [rsp + 0x38], r11
lea rax, [rsp + 0x1f0]
mov dword [rsp + 0x30], InitCommonControls
mov qword [rsp + 0x28], rax
mov ebx, 0x80
mov r9, r13
mov r8d, ebx
mov rcx, rsi
mov dword [rsp + 0x20], 0x14
call fcn.140016388
mov edx, dword [rbp + 0x98]
lea r11, [rsp + 0x170]
mov qword [rsp + 0x38], r11
lea r13d, [rbx - 0x40]
lea rax, [rsp + 0x240]
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0xf0]
mov r8d, ebx
mov rcx, rsi
mov dword [rsp + 0x20], r13d
call fcn.140016388
lea rdx, [rsp + 0x200]
lea rcx, [rsp + 0x170]
mov r8, r13
call fcn.14001d6a0
cmp eax, edi
jne 0x140017298
lea r8, [rsp + 0x240]
mov r9d, r13d
mov edx, 0x8004
mov rcx, rsi
mov qword [rsp + 0x20], r12
call fcn.1400161bc
lea edi, [rbx - 0x7f]
mov eax, edi
jmp 0x1400172a8
mov dword [rsi + 0x240], 0xfffffffe
xor eax, eax
mov rbx, qword [rsp + 0x2228]
add rsp, 0x21f0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret