Function at 0x180026c20
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 0x180026fa3
mov r15, rcx
lea rax, [rdx - 1]
neg rdx
and rdx, 0xfffffffffffffffe
mov rcx, rax
xor rcx, 1
or rdx, rcx
xor rax, 0xfffffffffffffffe
or rax, rdx
xor rdx, rcx
mov rcx, rdx
xor rcx, rax
or rdx, rax
not rdx
or rdx, rcx
bsr rax, rdx
xor eax, 0x3f
mov cl, 0x40
sub cl, al
xor eax, eax
test rdx, rdx
movzx ecx, cl
cmove ecx, eax
mov esi, 1
shl rsi, cl
lea rax, [r15 + 0x18]
mov rdi, qword [r15 + 8]
mov edx, 2
shl rdx, cl
mov rcx, rax
mov r8, rdi
call fcn.1800261a0
lea rax, [rsi - 1]
mov qword [r15 + 0x30], rax
mov qword [r15 + 0x38], rsi
mov rax, qword [r15 + 8]
mov r13, qword [rax]
mov qword [rsp + 0x28], rdi
cmp r13, rdi
je 0x180026f92
movabs rdx, 0x8148000840040a
mov qword [rsp + 0x38], r15
jmp 0x180026d20
mov rax, qword [rsi + 8]
mov qword [rax], r13
mov rcx, qword [r13 + 8]
mov qword [rcx], rdi
mov rdx, qword [rdi + 8]
mov qword [rdx], rsi
mov qword [rdi + 8], rcx
mov qword [r13 + 8], rax
mov qword [rsi + 8], rdx
mov rax, qword [rsp + 0x30]
mov qword [rbp + rax*8], rsi
movabs rdx, 0x8148000840040a
cmp r13, qword [rsp + 0x28]
je 0x180026f92
mov rax, r13
cmp qword [r13 + 0x28], 0x10
jb 0x180026d30
mov rcx, qword [rax + 0x10]
jmp 0x180026d34
lea rcx, [rax + 0x10]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x40], rax
mov r14, qword [rax + 0x20]
movabs r8, 0xcbf29ce484222325
test r14, r14
movabs r12, 0x1894ea00841840a
movabs r13, 0x250301b500e01f5
movabs r11, 0x3d97ebb584f85ff
movabs r15, 0xb7a84c60c11c0271
movabs rbx, 0x100000001b3
mov rsi, qword [rsp + 0x20]
je 0x180026e65
xor eax, eax
movabs rcx, 0xcbf29ce484222325
nop dword [rax + rax]
mov rdi, r14
mov r14, rdx
movzx edx, byte [rsi + rax]
mov r8d, edx
and r8d, 0xa
xor r8, r12
mov r9, rdx
xor r9, r13
or r9, r8
mov r8, r9
xor r8, r11
mov r10, r9
movabs rbp, 0x81481b584004fd
and r10, rbp
xor r9d, 0x83
and r9d, r8d
mov rbp, r11
mov r11d, r8d
and r11d, 2
or r11, r10
mov r8, r11
movabs r10, 0xff7eb7e4a7bffb02
xor r8, r10
movabs r10, 0x258b193b0669a681
xor r11, r10
and r11, r8
or r9, r11
mov r11, rbp
mov r10d, edx
or r8, rdx
and edx, 8
movabs rbp, 0xb72fd3e430540607
or rdx, rbp
and r10d, 2
or r10, r15
xor r10, rdx
mov rdx, r14
mov r14, rdi
movabs rdi, 0x258dcea4af61a60a
xor r10, r9
not r8
and r8, rdx
or r8, r10
xor rcx, rdi
xor r8, rcx
imul r8, rbx
inc rax
mov rcx, r8
cmp r14, rax
jne 0x180026da0
mov rsi, qword [rsp + 0x40]
mov r13, qword [rsi]
mov r15, qword [rsp + 0x38]
and r8, qword [r15 + 0x30]
mov rbp, qword [r15 + 0x18]
lea rax, [r8 + r8]
lea rcx, [r8*2 + 1]
shl r8, 4
mov rdi, qword [rbp + r8]
cmp rdi, qword [rsp + 0x28]
je 0x180026ed0
mov qword [rsp + 0x30], rax
mov r12, qword [rbp + rcx*8]
cmp r14, qword [r12 + 0x20]
mov rbx, qword [rsp + 0x20]
jne 0x180026f44
cmp qword [r12 + 0x28], 0x10
jb 0x180026edf
mov r15, rcx
mov rdx, qword [r12 + 0x10]
jmp 0x180026ee7
mov qword [rbp + rax*8], rsi
mov qword [rbp + rcx*8], rsi
jmp 0x180026d0b
mov r15, rcx
lea rdx, [r12 + 0x10]
mov rcx, rbx
mov r8, r14
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x180026f44
mov rax, qword [r12]
cmp rax, rsi
je 0x180026f20
mov rcx, qword [rsi + 8]
mov qword [rcx], r13
mov rdx, qword [r13 + 8]
mov qword [rdx], rax
mov r8, qword [rax + 8]
mov qword [r8], rsi
mov qword [rax + 8], rdx
mov qword [r13 + 8], rcx
mov qword [rsi + 8], r8
mov qword [rbp + r15*8], rsi
jmp 0x180026d0b
mov rdx, qword [r12 + 0x10]
mov rcx, rbx
mov r8, r14
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x180026f68
cmp rdi, r12
je 0x180026ce0
mov r12, qword [r12 + 8]
cmp r14, qword [r12 + 0x20]
jne 0x180026f44
cmp qword [r12 + 0x28], 0x10
jae 0x180026f30
lea rdx, [r12 + 0x10]
jmp 0x180026f35
mov rax, qword [r12]
mov rcx, qword [rsi + 8]
mov qword [rcx], r13
mov rdx, qword [r13 + 8]
mov qword [rdx], rax
mov r8, qword [rax + 8]
mov qword [r8], rsi
mov qword [rax + 8], rdx
mov qword [r13 + 8], rcx
mov qword [rsi + 8], r8
jmp 0x180026d0b
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rcx, 0x577154448eecbfbb
add rcx, qword [0x18005c900]
call fcn.180044090
lea rcx, [0x18005e222]
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3