Function at 0x18001e380
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
movabs rax, 0x800000000000001
cmp rdx, rax
jae 0x18001e71a
mov r13, rcx
dec rdx
or rdx, 1
bsr rcx, rdx
xor ecx, 0x3f
neg cl
mov esi, 1
shl rsi, cl
lea rax, [r13 + 0x18]
mov rdi, qword [r13 + 8]
mov edx, 2
shl rdx, cl
mov rcx, rax
mov r8, rdi
call fcn.18001d990
lea rax, [rsi - 1]
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rsi
mov rax, qword [r13 + 8]
mov r10, qword [rax]
mov qword [rsp + 0x30], rdi
cmp r10, rdi
je 0x18001e709
movabs rbp, 0x87af046a20af9db7
movabs r15, 0xa01174dc280977fa
movabs r12, 0x7850fb95df506248
movabs rsi, 0xc880ff09fb85e4d
movabs rdi, 0x100000001b3
mov qword [rsp + 0x40], r13
jmp 0x18001e462
mov qword [r11 + r9*8], r10
mov qword [r11 + rcx*8], r10
movabs rbp, 0x87af046a20af9db7
mov r10, qword [rsp + 0x20]
cmp r10, qword [rsp + 0x30]
je 0x18001e709
mov rax, r10
cmp qword [r10 + 0x28], 0x10
jb 0x18001e480
mov rbx, qword [rax + 0x10]
jmp 0x18001e484
lea rbx, [rax + 0x10]
mov qword [rsp + 0x28], rax
mov r14, qword [rax + 0x20]
movabs rdx, 0xcbf29ce484222325
test r14, r14
movabs r13, 0xac997b2cb7b12930
je 0x18001e51f
xor eax, eax
movabs rcx, 0xcbf29ce484222325
nop word cs:[rax + rax]
xor rcx, rsi
movzx r8d, byte [rbx + rax]
mov r10, r8
not r10
mov r9, r10
mov r11, r10
and r10d, 0x58
mov edx, r8d
and edx, 0xffffffa7
or edx, r10d
xor edx, 0x15
and edx, r8d
and r8d, 0x48
and r9, rbp
or r9, r8
mov r8d, r9d
and r8d, 0xcf
and r11, r13
or r11, r8
xor r11, r15
xor r9, r12
and r9, r11
or rdx, r9
xor rdx, rcx
imul rdx, rdi
inc rax
mov rcx, rdx
cmp r14, rax
jne 0x18001e4c0
mov r10, qword [rsp + 0x28]
mov rax, qword [r10]
mov qword [rsp + 0x20], rax
mov r13, qword [rsp + 0x40]
mov r11, qword [r13 + 0x18]
mov rax, qword [r13 + 0x30]
mov rcx, rdx
movabs r8, 0x2113f3c7b8d46f89
and rcx, r8
mov r8, rdx
movabs r9, 0xdeec0c38472b9076
and r8, r9
movabs r9, 0x2003b08690c42308
or r8, r9
xor r8, rcx
xor r8, rax
or rax, rdx
mov rcx, r8
movabs rdx, 0x5ffc4f796f3bdcf7
xor rcx, rdx
or rcx, rax
xor rax, r8
xor rax, r9
and rax, rcx
lea r9, [rax + rax]
lea rcx, [rax*2 + 1]
shl rax, 4
mov rbp, qword [r11 + rax]
cmp rbp, qword [rsp + 0x30]
je 0x18001e440
mov r13, qword [r11 + rcx*8]
cmp r14, qword [r13 + 0x20]
mov r15, r11
mov r12, r9
jne 0x18001e659
cmp qword [r13 + 0x28], 0x10
mov qword [rsp + 0x38], rcx
jb 0x18001e5d0
mov rdx, qword [r13 + 0x10]
jmp 0x18001e5d4
lea rdx, [r13 + 0x10]
mov rcx, rbx
mov r8, r14
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
mov r11, r15
mov r9, r12
mov rcx, qword [rsp + 0x38]
jne 0x18001e659
mov rax, qword [r13]
mov r9, qword [rsp + 0x28]
cmp rax, r9
mov r10, qword [rsp + 0x20]
je 0x18001e628
mov rbx, rcx
mov rcx, qword [r9 + 8]
mov qword [rcx], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov r8, qword [rax + 8]
mov qword [r8], r9
mov qword [rax + 8], rdx
mov qword [r10 + 8], rcx
mov rcx, rbx
mov qword [r9 + 8], r8
mov qword [r11 + rcx*8], r9
jmp 0x18001e6e0
mov rdx, qword [r13 + 0x10]
mov rcx, rbx
mov r8, r14
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
mov r11, r15
mov r9, r12
je 0x18001e6b1
cmp rbp, r13
je 0x18001e680
mov r13, qword [r13 + 8]
cmp r14, qword [r13 + 0x20]
jne 0x18001e659
cmp qword [r13 + 0x28], 0x10
jae 0x18001e640
lea rdx, [r13 + 0x10]
jmp 0x18001e644
mov r8, qword [rsp + 0x28]
mov rax, qword [r8 + 8]
mov r10, qword [rsp + 0x20]
mov qword [rax], r10
mov rcx, qword [r10 + 8]
mov qword [rcx], rbp
mov rdx, qword [rbp + 8]
mov qword [rdx], r8
mov qword [rbp + 8], rcx
mov qword [r10 + 8], rax
mov qword [r8 + 8], rdx
mov qword [r11 + r9*8], r8
jmp 0x18001e6e0
mov rax, qword [r13]
mov r9, qword [rsp + 0x28]
mov rcx, qword [r9 + 8]
mov r10, qword [rsp + 0x20]
mov qword [rcx], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov r8, qword [rax + 8]
mov qword [r8], r9
mov qword [rax + 8], rdx
mov qword [r10 + 8], rcx
mov qword [r9 + 8], r8
movabs rbp, 0x87af046a20af9db7
movabs r15, 0xa01174dc280977fa
movabs r12, 0x7850fb95df506248
cmp r10, qword [rsp + 0x30]
jne 0x18001e462
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rcx, 0x2498f1ec3c34d7ee
add rcx, qword [0x180050908]
call fcn.180038ef0
lea rcx, [0x180052054]
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3