Function at 0x18010f1a4
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov r14d, r9d
mov r13, r8
mov esi, edx
mov rdi, rcx
mov rax, qword [rsp + 0x1e8]
mov r15d, dword [rsp + 0x1d8]
mov dword [rax], 0
mov ecx, r15d
call fcn.18010df24
mov r12d, eax
test eax, eax
jne 0x18010f51a
mov qword [rsp + 0x50], rdi
mov ebx, dword [rsp + 0x1e0]
mov ebp, dword [rsp + 0x1d0]
mov eax, ebx
shr eax, 3
mov ecx, ebx
and ecx, 7
cmp ecx, 1
sbb eax, 0xffffffff
mov r12d, 0x20012
cmp eax, ebp
jb 0x18010f51a
cmp eax, r14d
jne 0x18010f51a
movsxd rcx, r15d
imul rdi, rcx, 0x78
lea rcx, [0x18060d510]
mov edx, dword [rdi + rcx + 0xc]
lea ecx, [rdx + rbp]
add ecx, 2
cmp eax, ecx
jb 0x18010f51a
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x44], esi
mov qword [rsp + 0x38], rdx
mov esi, r14d
mov rcx, rsi
call fcn.1802fb6e2
mov rbp, rax
mov rcx, rsi
call fcn.1802fb6e2
mov r12, rax
mov rcx, rsi
call fcn.1802fb6e2
mov rcx, rsi
mov rsi, rax
call fcn.1802fb6e2
mov r8, rax
test rbp, rbp
je 0x18010f296
test r12, r12
je 0x18010f296
test rsi, rsi
je 0x18010f296
test r8, r8
jne 0x18010f2e6
test rbp, rbp
je 0x18010f2a9
mov rcx, rbp
mov rdi, r8
call fcn.1802fbeb6
mov r8, rdi
test r12, r12
je 0x18010f2bc
mov rcx, r12
mov rdi, r8
call fcn.1802fbeb6
mov r8, rdi
test rsi, rsi
je 0x18010f2cf
mov rcx, rsi
mov rsi, r8
call fcn.1802fbeb6
mov r8, rsi
mov r12d, 0xc
test r8, r8
je 0x18010f51a
mov rcx, r8
jmp 0x18010f515
mov qword [rsp + 0x48], rsi
lea eax, [r14 - 1]
cmp byte [r13 + rax], 0xbc
mov qword [rsp + 0x30], rbp
je 0x18010f304
mov r15, r12
jmp 0x18010f3c9
mov rdi, qword [rsp + 0x38]
mov esi, edi
not esi
add esi, r14d
mov rcx, rbp
mov rdx, r13
mov rbp, r8
mov r8, rsi
call fcn.18017fd34
lea rdx, [rsi + r13]
mov rcx, rbp
mov r8, rdi
call fcn.18017fd34
movzx eax, byte [r13]
mov ecx, 1
sub ecx, ebx
lea ecx, [rcx + r14*8]
mov ebx, 0xff
shr ebx, cl
mov edx, 0xffffff00
sar edx, cl
test edx, eax
je 0x18010f360
mov r15, r12
mov r12d, 0x20005
jmp 0x18010f4f3
mov dword [rsp + 0x20], esi
mov ecx, r15d
mov rdx, rbp
mov r8d, edi
mov r15, r12
mov r9, r12
call fcn.18020dba4
mov r12d, eax
test eax, eax
mov r8, rbp
jne 0x18010f4f6
test esi, esi
mov rdx, qword [rsp + 0x30]
je 0x18010f3a3
mov rbp, r15
xor eax, eax
mov cl, byte [rbp + rax]
xor byte [rdx + rax], cl
inc rax
cmp rax, rsi
jne 0x18010f394
and bl, byte [rdx]
mov byte [rdx], bl
mov eax, 0xfffffffe
mov ecx, dword [rsp + 0x1d0]
sub eax, ecx
add eax, r14d
sub eax, dword [rsp + 0x38]
jne 0x18010f3c5
mov esi, 1
jmp 0x18010f3eb
test bl, bl
je 0x18010f3d4
mov r12d, 0x20005
jmp 0x18010f4f6
xor esi, esi
lea ecx, [rsi + 1]
mov bl, byte [rdx + rcx]
cmp ecx, eax
jae 0x18010f3e8
mov esi, ecx
test bl, bl
jne 0x18010f3c9
jmp 0x18010f3d6
add esi, 2
mov r12d, 0x20005
cmp bl, 1
jne 0x18010f4f6
lea rcx, [rsp + 0x58]
mov rbp, r8
mov rax, qword [rsp + 0x28]
lea rdx, [0x18060d510]
call qword [rax + rdx + 0x58]
mov r8, rbp
mov r12d, eax
test eax, eax
jne 0x18010f4f6
mov edx, 8
mov rbx, r15
mov rcx, r15
call fcn.1800708d4
lea rcx, [rsp + 0x58]
mov rdx, r15
mov r8d, 8
mov rax, qword [rsp + 0x28]
lea rbx, [0x18060d510]
call qword [rax + rbx + 0x60]
mov r8, rbp
mov r12d, eax
test eax, eax
jne 0x18010f4f6
mov rax, qword [rsp + 0x28]
lea rcx, [0x18060d510]
lea rbx, [rax + rcx]
add rbx, 0x60
lea rcx, [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x44]
call qword [rbx]
mov r8, rbp
mov r12d, eax
test eax, eax
jne 0x18010f4f6
mov rdx, qword [rsp + 0x30]
add rdx, rsi
lea rcx, [rsp + 0x58]
mov r8d, dword [rsp + 0x1d0]
call qword [rbx]
mov r8, rbp
mov r12d, eax
test eax, eax
jne 0x18010f4f6
lea rcx, [rsp + 0x58]
mov rdx, r15
mov rax, qword [rsp + 0x28]
lea rbx, [0x18060d510]
call qword [rax + rbx + 0x68]
mov r8, rbp
mov r12d, eax
test eax, eax
jne 0x18010f4f6
mov rcx, r15
mov rdx, r8
mov r8, qword [rsp + 0x38]
call fcn.18023f1c4
xor r12d, r12d
test eax, eax
jne 0x18010f4f3
mov rax, qword [rsp + 0x1e8]
mov dword [rax], 1
mov r8, rbp
mov rcx, r8
call fcn.1802fbeb6
mov rcx, qword [rsp + 0x48]
call fcn.1802fbeb6
mov rcx, r15
call fcn.1802fbeb6
mov rcx, qword [rsp + 0x30]
call fcn.1802fbeb6
mov eax, r12d
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret