Function at 0x1400052e0
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, 0x38
movabs rax, 0x800000000000001
cmp rdx, rax
jae 0x140005607
mov r14, rcx
dec rdx
or rdx, 1
bsr rcx, rdx
xor ecx, 0x3f
neg cl
mov esi, 1
shl rsi, cl
lea rax, [r14 + 0x18]
mov rdi, qword [r14 + 8]
mov edx, 2
shl rdx, cl
mov rcx, rax
mov r8, rdi
call fcn.140004a60
mov r8, rdi
lea rax, [rsi - 1]
mov qword [r14 + 0x30], rax
mov qword [r14 + 0x38], rsi
mov rax, qword [r14 + 8]
mov rdi, qword [rax]
cmp rdi, r8
je 0x1400055f6
movabs r10, 0xcbf29ce484222325
movabs r9, 0x100000001b3
mov qword [rsp + 0x28], r8
jmp 0x140005396
mov qword [r11 + rdx*8], r12
mov qword [r11 + rsi*8], r12
mov rdi, qword [rsp + 0x20]
cmp rdi, r8
je 0x1400055f6
mov r12, rdi
mov rax, qword [rdi + 0x10]
mov r13, qword [rdi + 0x18]
mov rsi, r13
mov rbp, r10
add rsi, r13
je 0x140005446
lea rcx, [rsi - 1]
mov ebx, esi
and ebx, 2
cmp rcx, 3
jae 0x1400053d0
xor edi, edi
mov rdx, r10
jmp 0x140005418
and rsi, 0xfffffffffffffffc
xor edi, edi
mov rdx, r10
nop dword [rax]
movzx ecx, byte [rax + rdi]
xor rcx, rdx
imul rcx, r9
movzx edx, byte [rax + rdi + 1]
xor rdx, rcx
imul rdx, r9
movzx ecx, byte [rax + rdi + 2]
xor rcx, rdx
imul rcx, r9
movzx edx, byte [rax + rdi + 3]
xor rdx, rcx
imul rdx, r9
add rdi, 4
cmp rsi, rdi
jne 0x1400053e0
mov rbp, rdx
test rbx, rbx
je 0x140005446
add rdi, rax
xor esi, esi
nop word cs:[rax + rax]
movzx ebp, byte [rdi + rsi]
xor rbp, rdx
imul rbp, r9
inc rsi
mov rdx, rbp
cmp rbx, rsi
jne 0x140005430
and rbp, qword [r14 + 0x30]
mov rcx, qword [r12]
mov qword [rsp + 0x20], rcx
mov r11, qword [r14 + 0x18]
mov rdx, rbp
add rdx, rbp
mov rcx, rbp
shl rcx, 4
lea rsi, [rbp + 1]
add rsi, rbp
mov r15, qword [r11 + rcx]
cmp r15, r8
je 0x140005380
mov qword [rsp + 0x30], rdx
mov r10, qword [r11 + rsi*8]
cmp r13, qword [r10 + 0x18]
jne 0x1400054de
test r13, r13
je 0x140005580
mov rdi, r14
mov rdx, qword [r10 + 0x10]
lea rbp, [r13 - 1]
xor r8d, r8d
nop word cs:[rax + rax]
movzx r14d, word [rax + r8*2]
movzx ebx, word [rdx + r8*2]
cmp r14w, bx
jne 0x1400054cc
lea rcx, [r8 + 1]
cmp rbp, r8
mov r8, rcx
jne 0x1400054b0
cmp r14w, bx
mov r14, rdi
mov r8, qword [rsp + 0x28]
je 0x140005580
cmp r15, r10
je 0x140005540
lea rdx, [r13 - 1]
jmp 0x1400054fe
cmp bx, cx
je 0x1400055b7
cmp r15, r10
je 0x140005540
mov r10, qword [r10 + 8]
cmp r13, qword [r10 + 0x18]
jne 0x1400054f9
test r13, r13
je 0x1400055b7
mov rsi, qword [r10 + 0x10]
xor ebp, ebp
nop word [rax + rax]
movzx ebx, word [rax + rbp*2]
movzx ecx, word [rsi + rbp*2]
cmp bx, cx
jne 0x1400054f0
lea rdi, [rbp + 1]
cmp rdx, rbp
mov rbp, rdi
jne 0x140005520
jmp 0x1400054f0
mov rax, qword [r12 + 8]
mov rdi, qword [rsp + 0x20]
mov qword [rax], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], r15
mov rdx, qword [r15 + 8]
mov qword [rdx], r12
mov qword [r15 + 8], rcx
mov qword [rdi + 8], rax
mov qword [r12 + 8], rdx
mov rax, qword [rsp + 0x30]
mov qword [r11 + rax*8], r12
jmp 0x1400055e3
mov rax, qword [r10]
cmp rax, r12
mov rdi, qword [rsp + 0x20]
je 0x1400055b1
mov rcx, qword [r12 + 8]
mov qword [rcx], rdi
mov rdx, qword [rdi + 8]
mov qword [rdx], rax
mov rbp, qword [rax + 8]
mov qword [rbp], r12
mov qword [rax + 8], rdx
mov qword [rdi + 8], rcx
mov qword [r12 + 8], rbp
mov qword [r11 + rsi*8], r12
jmp 0x1400055e3
mov rax, qword [r10]
mov rcx, qword [r12 + 8]
mov rdi, qword [rsp + 0x20]
mov qword [rcx], rdi
mov rdx, qword [rdi + 8]
mov qword [rdx], rax
mov rbp, qword [rax + 8]
mov qword [rbp], r12
mov qword [rax + 8], rdx
mov qword [rdi + 8], rcx
mov qword [r12 + 8], rbp
movabs r10, 0xcbf29ce484222325
cmp rdi, r8
jne 0x140005396
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.invalid_hash_bucket_count
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3