Function at 0x18011cf30
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
push r12
push r14
sub rsp, 0x38
mov r14, qword [rsp + 0x70]
mov r12, rcx
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov rbp, rdx
mov qword [rax + 0x18], rsi
mov qword [rax - 0x18], rdi
mov qword [rax - 0x20], r13
mov qword [rax - 0x28], r15
mov eax, r9d
movsxd rbx, r8d
test rdx, rdx
je 0x18011d098
test al, 8
jne 0x18011d098
mov r10, qword [rcx + 0x18]
lea eax, [rbx - 1]
mov qword [rsp + 0x70], r10
mov r9d, 0xd
movsxd r8, eax
test eax, eax
js 0x18011cfb8
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [r8 + rbp]
lea ecx, [r9*8]
xor edx, ecx
xor r9d, edx
sub r8, 1
jns 0x18011cfa0
xor edx, edx
mov eax, r9d
div dword [r10 + 0x14]
mov rax, qword [r10 + 0x20]
mov rdi, qword [rax + rdx*8]
test rdi, rdi
je 0x18011cff4
nop
mov eax, dword [rdi + 0x1c]
inc eax
cmp ebx, eax
jne 0x18011cfec
mov r8, rbx
lea rcx, [rdi + 0x30]
mov rdx, rbp
call fcn.1801468d0
test eax, eax
je 0x18011d026
mov rdi, qword [rdi]
test rdi, rdi
jne 0x18011cfd0
xor esi, esi
xor r15d, r15d
mov dword [r12 + 0x34], 0
lea r13, [r12 + 0x34]
test rsi, rsi
je 0x18011d013
lea rax, [rsi + 0x10]
mov qword [rsi], rax
or dword [r14 + 8], 1
test rsi, rsi
je 0x18011d1c4
jmp 0x18011d144
mov r13d, dword [rdi + 0x18]
lea r15d, [rbx + 0x31]
sub r13d, r15d
call fcn.1800e0910
test eax, eax
je 0x18011d04e
xor esi, esi
lea r13, [r12 + 0x34]
xor r15d, r15d
mov dword [r13], 7
jmp 0x18011d013
lea eax, [r13 + 0x1a]
movsxd rcx, eax
call fcn.180028660
mov rsi, rax
test rax, rax
je 0x18011d03c
movsxd rdx, r15d
lea rcx, [rax + 0x10]
add rdx, rdi
movsxd r8, r13d
call fcn.180133760
mov rcx, qword [rsp + 0x70]
mov edx, 0x10
sub edx, r15d
movsxd r8, edx
mov rdx, rdi
add r8, rsi
call fcn.180118f90
lea r15d, [rax + r13]
jmp 0x18011cff9
mov rcx, qword [rcx + 0x18]
lea r13, [r12 + 0x34]
mov r8d, ebx
lea r9, [rcx + 0x18]
call fcn.1801197b0
mov rcx, qword [r12 + 0x18]
mov dword [r13], eax
mov rsi, qword [rcx + 0x18]
test rsi, rsi
je 0x18011d10c
mov rbx, 0xffffffffffffffff
lea rbp, [rsi + 0x30]
mov rdi, rbx
nop dword [rax]
inc rdi
cmp byte [rdi + rbp], 0
jne 0x18011d0d0
xor r8d, r8d
mov rdx, rsi
call fcn.180118f90
mov r15d, dword [rsi + 0x18]
lea eax, [rdi + 1]
sub r15d, edi
cdqe
add rax, rbp
sub r15d, 0x31
mov qword [rsp + 0x70], rax
test rbp, rbp
je 0x18011d118
inc rbx
cmp byte [rbx + rbp], 0
jne 0x18011d101
jmp 0x18011d11a
xor eax, eax
xor ebp, ebp
mov qword [rsp + 0x70], rax
xor r15d, r15d
xor ebx, ebx
test rax, rax
je 0x18011d1c4
mov edx, 0x10
mov rcx, r13
call fcn.1801127c0
mov rsi, rax
test rax, rax
je 0x18011d1c4
mov rax, qword [rsp + 0x70]
mov qword [rsi], rax
mov dword [r14 + 0x60], 0
test ebx, ebx
je 0x18011d180
cmp ebx, dword [r14 + 0x64]
jbe 0x18011d169
mov r8d, ebx
lea rdx, [r14 + 0x58]
mov rcx, r13
call fcn.1801121f0
test eax, eax
jne 0x18011d180
movsxd rcx, dword [r14 + 0x60]
mov rdx, rbp
add rcx, qword [r14 + 0x58]
mov r8d, ebx
call fcn.180133760
add dword [r14 + 0x60], ebx
mov dword [rsi + 0xc], r15d
lea rdx, [r14 + 0x68]
mov dword [rsi + 8], r15d
mov qword [r14 + 0x10], rsi
mov rcx, qword [rsi]
call fcn.18012d860
test byte [rsp + 0x68], 2
mov rdx, r14
movzx eax, al
mov rcx, r12
mov qword [r14 + 0x20], rax
mov eax, dword [rsi + 8]
mov dword [r14 + 0x3c], eax
je 0x18011d1bf
or dword [r14 + 8], 2
call fcn.18011b930
jmp 0x18011d1c4
call fcn.18011b530
test byte [r14 + 8], 2
mov r15, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
je 0x18011d1fd
lea rax, [0x18011bc30]
mov qword [r14 + 0x28], rax
add rsp, 0x38
pop r14
pop r12
ret
mov rax, qword [r12]
lea rcx, [0x18011bf70]
lea rdx, [0x18011bcc0]
cmp dword [rax + 0x5c], 1
cmove rcx, rdx
mov qword [r14 + 0x28], rcx
add rsp, 0x38
pop r14
pop r12
ret