Function at 0x18001897c
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x110
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x88], 0xfffffffffffffffe
cmp qword [r8], rcx
jne 0x180018ad3
mov rsi, rdx
mov rdi, rcx
mov qword [rdx], rcx
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rdx + 8], xmm0
movabs rax, 0x8000000000000000
mov qword [rdx + 0x18], rax
movzx eax, byte [rcx]
cmp eax, 2
je 0x1800189eb
cmp eax, 1
jne 0x180018a21
lea rbx, [rsi + 8]
mov rcx, qword [rdi + 8]
mov rdx, qword [r8 + 8]
call fcn.1800192c0
mov qword [rbx], rax
jmp 0x180018ac2
mov rbx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
mov rdi, qword [r8 + 0x10]
lea rcx, [rdi + 0x10]
mov r8, rdi
call fcn.180019598
mov rcx, qword [rbx + 8]
mov dl, byte [rcx - 0x10]
add rcx, 0xfffffffffffffff8
call fcn.180007e10
add qword [rbx + 8], 0xfffffffffffffff0
mov qword [rsi + 0x10], rdi
jmp 0x180018ac2
mov qword [rsi + 0x18], 1
lea ecx, [rax - 3]
cmp cl, 5
ja 0x180018bd8
cmp qword [r8 + 0x18], 0
jne 0x180018b7f
cmp eax, 8
je 0x180018a7c
cmp eax, 3
jne 0x180018abf
lea r14, [rdi + 8]
mov rbx, qword [rdi + 8]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x180018a67
mov rcx, qword [rbx]
inc rdx
call fcn.18000506c
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
jmp 0x180018aa8
lea r14, [rdi + 8]
mov rbx, qword [rdi + 8]
mov rcx, qword [rbx]
test rcx, rcx
je 0x180018aab
mov rdx, qword [rbx + 0x10]
sub rdx, rcx
call fcn.18000506c
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov rbx, qword [r14]
mov edx, 0x20
mov rcx, rbx
call fcn.1800832c4
mov qword [r14], 0
mov byte [rdi], 0
mov rax, rsi
add rsp, 0x110
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
cmp byte [0x1800adec8], 0
jne 0x180018b3c
mov rdx, qword [0x1800a89a0]
movabs rax, 0x2c99e8c15af70711
add rax, rdx
movabs rcx, 0x2c99e8c15af706f3
add rcx, rdx
xor edx, edx
movabs r8, 0x8888888888888889
lea r9, [0x1800adea4]
mulx r10, r10, r8
shr r10, 4
imul r10, r10, 0xffffffffffffffe2
add r10, rcx
mov r10b, byte [rdx + r10]
xor r10b, byte [rax + rdx]
mov byte [rdx + r9], r10b
inc rdx
cmp rdx, 0x24
jne 0x180018b10
mov byte [0x1800adec8], 1
lea rdx, [0x1800adea4]
lea rsi, [rbp + 0x68]
mov rcx, rsi
call fcn.18000249c
lea rcx, [rbp - 0x60]
mov edx, 0xca
mov r8, rsi
call fcn.180018e0c
movabs rdx, 0x2c99e8c15af6dfea
add rdx, qword [0x1800a89b0]
lea rcx, [rbp - 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
jmp 0x180018ca1
movabs rcx, 0x2c99e8c15af70750
add rcx, qword [0x1800a89a0]
call fcn.18001fbc0
lea rdx, [0x1800aded0]
lea rsi, [rbp + 0x68]
mov rcx, rsi
call fcn.18000249c
lea rcx, [rbp - 0x28]
mov edx, 0xcd
mov r8, rsi
call fcn.180018e0c
movabs rdx, 0x2c99e8c15af6dfea
add rdx, qword [0x1800a89b0]
lea rcx, [rbp - 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
jmp 0x180018ca1
mov rcx, rdi
call fcn.1800095f6
lea rcx, [rbp + 0x48]
mov rdx, rax
call fcn.18000249c
cmp byte [0x1800adf00], 0
jne 0x180018c5b
mov rdx, qword [0x1800a89a0]
movabs rax, 0x2c99e8c15af707ac
add rax, rdx
movabs rcx, 0x2c99e8c15af70794
add rcx, rdx
xor edx, edx
movabs r8, 0xaaaaaaaaaaaaaaab
lea r9, [0x1800adee7]
mulx r10, r10, r8
shr r10, 1
and r10, 0xfffffffffffffff8
lea r10, [r10 + r10*2]
mov r11, rcx
sub r11, r10
mov r10b, byte [r11 + rdx]
xor r10b, byte [rax + rdx]
mov byte [rdx + r9], r10b
inc rdx
cmp rdx, 0x19
jne 0x180018c29
mov byte [0x1800adf00], 1
movabs rsi, 0x2c99e8c15af6dfea
mov rdx, qword [0x1800a89c0]
add rdx, rsi
lea rcx, [rbp + 0x68]
lea r8, [rbp + 0x48]
call fcn.1800095a4
lea rcx, [rbp + 0x10]
lea r8, [rbp + 0x68]
mov edx, 0x133
call fcn.180009232
add rsi, qword [0x1800a89c8]
lea rcx, [rbp + 0x10]
mov rdx, rsi
call sub.VCRUNTIME140.dll__CxxThrowException
int3