Function at 0x180018324
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 0x180018477
mov rsi, rdx
mov rdi, rcx
mov qword [rdx], rcx
xorps xmm0, xmm0
movups xmmword [rdx + 8], xmm0
movabs rax, 0x8000000000000000
mov qword [rdx + 0x18], rax
movzx eax, byte [rcx]
cmp eax, 2
je 0x180018391
cmp eax, 1
jne 0x1800183c7
lea rbx, [rsi + 8]
mov rcx, qword [rdi + 8]
mov rdx, qword [r8 + 8]
call fcn.180018cba
mov qword [rbx], rax
jmp 0x180018466
mov rbx, qword [rdi + 8]
mov rdx, qword [rbx + 8]
mov rdi, qword [r8 + 0x10]
lea rcx, [rdi + 0x10]
mov r8, rdi
call fcn.180018f92
mov rcx, qword [rbx + 8]
mov dl, byte [rcx - 0x10]
add rcx, 0xfffffffffffffff8
call fcn.180007b66
add qword [rbx + 8], 0xfffffffffffffff0
mov qword [rsi + 0x10], rdi
jmp 0x180018466
mov qword [rsi + 0x18], 1
lea ecx, [rax - 3]
cmp cl, 5
ja 0x1800185e2
cmp qword [r8 + 0x18], 0
jne 0x18001852a
cmp eax, 8
je 0x180018422
cmp eax, 3
jne 0x180018463
lea r14, [rdi + 8]
mov rbx, qword [rdi + 8]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x18001840d
mov rcx, qword [rbx]
inc rdx
call fcn.180004dc2
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
jmp 0x18001844c
lea r14, [rdi + 8]
mov rbx, qword [rdi + 8]
mov rcx, qword [rbx]
test rcx, rcx
je 0x18001844f
mov rdx, qword [rbx + 0x10]
sub rdx, rcx
call fcn.180004dc2
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov rbx, qword [r14]
mov edx, 0x20
mov rcx, rbx
call fcn.180080778
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 [0x1800aa018], 0
jne 0x1800184e7
mov rax, qword [0x1800a49c0]
movabs r8, 0x56676d3455abfbc4
add r8, rax
movabs r9, 0x56676d3455abfbb0
add r9, rax
xor ecx, ecx
movabs r10, 0xcccccccccccccccd
lea r11, [0x1800a9ff4]
mov rax, rcx
mul r10
shr rdx, 2
and rdx, 0xfffffffffffffffc
lea rax, [rdx + rdx*4]
mov rdx, r9
sub rdx, rax
mov al, byte [rdx + rcx]
xor al, byte [r8 + rcx]
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x24
jne 0x1800184b4
mov byte [0x1800aa018], 1
lea rdx, [0x1800a9ff4]
lea rsi, [rbp + 0x68]
mov rcx, rsi
call fcn.18000243e
lea rcx, [rbp - 0x60]
mov edx, 0xca
mov r8, rsi
call fcn.180018810
movabs rdx, 0x56676d3455abd4bc
add rdx, qword [0x1800a49d0]
lea rcx, [rbp - 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
jmp 0x1800186a5
cmp byte [0x1800aa02f], 0
jne 0x18001859f
mov rax, qword [0x1800a49c0]
movabs r8, 0x56676d3455abfc15
add r8, rax
movabs r9, 0x56676d3455abfc00
add r9, rax
xor ecx, ecx
movabs r10, 0x8618618618618619
lea r11, [0x1800aa019]
mov rax, rcx
mul r10
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffeb
add rax, r9
mov al, byte [rcx + rax]
xor al, byte [r8 + rcx]
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x16
jne 0x180018567
mov byte [0x1800aa02f], 1
lea rdx, [0x1800aa019]
lea rsi, [rbp + 0x68]
mov rcx, rsi
call fcn.18000243e
lea rcx, [rbp - 0x28]
mov edx, 0xcd
mov r8, rsi
call fcn.180018810
movabs rdx, 0x56676d3455abd4bc
add rdx, qword [0x1800a49d0]
lea rcx, [rbp - 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
jmp 0x1800186a5
mov rcx, rdi
call fcn.180009128
lea rcx, [rbp + 0x48]
mov rdx, rax
call fcn.18000243e
cmp byte [0x1800aa049], 0
jne 0x18001865f
mov rax, qword [0x1800a49c0]
movabs r8, 0x56676d3455abfc53
add r8, rax
movabs r9, 0x56676d3455abfc3d
add r9, rax
xor ecx, ecx
movabs r10, 0x2e8ba2e8ba2e8ba3
lea r11, [0x1800aa030]
mov rax, rcx
mul r10
shr rdx, 2
imul rax, rdx, 0xffffffffffffffea
add rax, r9
mov al, byte [rcx + rax]
xor al, byte [r8 + rcx]
mov byte [rcx + r11], al
inc rcx
cmp rcx, 0x19
jne 0x180018633
mov byte [0x1800aa049], 1
movabs rsi, 0x56676d3455abd4bc
mov rdx, qword [0x1800a49e0]
add rdx, rsi
lea rcx, [rbp + 0x68]
lea r8, [rbp + 0x48]
call fcn.1800090d4
lea rcx, [rbp + 0x10]
lea r8, [rbp + 0x68]
mov edx, 0x133
call fcn.180008d68
add rsi, qword [0x1800a49e8]
lea rcx, [rbp + 0x10]
mov rdx, rsi
call sub.VCRUNTIME140.dll__CxxThrowException
int3