Function at 0x180107fc0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x20
movabs rax, 0xfffffffffffffff
mov edi, 1
bsr rax, rax
mov rbp, rcx
shlx rax, rdi, rax
cmp rdx, rax
jbe 0x180107ff8
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov r8, qword [rbp + 0x20]
lea rax, [rdx - 1]
mov rdx, qword [rbp + 0x18]
or rax, rdi
bsr rcx, rax
mov qword [rsp + 0x30], rbx
mov rbx, qword [rbp + 8]
inc ecx
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], r14
shlx r14, rdi, rcx
mov rcx, r8
sub rcx, rdx
mov rax, rcx
sar rax, 3
lea rsi, [r14 + r14]
cmp rax, rsi
jae 0x180108115
movabs rax, 0x1fffffffffffffff
cmp rsi, rax
ja 0x18010827e
lea rsi, [rsi*8]
cmp rsi, 0x1000
jb 0x18010808c
lea rcx, [rsi + 0x27]
cmp rcx, rsi
jbe 0x18010827e
call fcn.1801b3ce4
test rax, rax
je 0x18010810e
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1801080a0
test rsi, rsi
je 0x18010809e
mov rcx, rsi
call fcn.1801b3ce4
mov rdi, rax
jmp 0x1801080a0
xor edi, edi
mov rcx, qword [rbp + 0x18]
mov rax, qword [rbp + 0x28]
sub rax, rcx
sar rax, 3
test rax, rax
je 0x1801080e2
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x1801080dd
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18010810e
mov rcx, r8
call fcn.1801b3bbc
lea rax, [rsi + rdi]
mov qword [rbp + 0x18], rdi
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
cmp rdi, rax
je 0x180108134
nop word [rax + rax]
mov qword [rdi], rbx
add rdi, 8
cmp rdi, rax
jne 0x180108100
jmp 0x180108134
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
add rcx, 7
xor edi, edi
shr rcx, 3
cmp rdx, r8
cmova rcx, rdi
test rcx, rcx
je 0x180108134
mov rdi, rdx
mov rax, rbx
rep stosq qword [rdi], rax
lea rax, [r14 - 1]
mov qword [rbp + 0x38], r14
mov qword [rbp + 0x30], rax
mov rax, qword [rbp + 8]
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x18010823e
movabs rsi, 0xcbf29ce484222325
movabs r11, 0x100000001b3
nop word [rax + rax]
movzx edx, byte [rax + 0x11]
movzx r8d, byte [rax + 0x10]
mov r10, qword [rbp + 0x30]
xor r8, rsi
mov rcx, qword [rcx]
imul r8, r11
xor r8, rdx
movzx edx, byte [rax + 0x12]
imul r8, r11
xor r8, rdx
movzx edx, byte [rax + 0x13]
imul r8, r11
xor r8, rdx
imul r8, r11
and r10, r8
shl r10, 4
add r10, qword [rbp + 0x18]
mov r8, qword [r10]
cmp r8, rbx
jne 0x1801081c0
mov qword [r10], rax
mov qword [r10 + 8], rax
jmp 0x180108232
mov rdx, qword [r10 + 8]
mov edi, dword [rax + 0x10]
cmp edi, dword [rdx + 0x10]
jne 0x1801081fb
mov r9, qword [rdx]
cmp r9, rax
je 0x1801081f5
mov r8, qword [rax + 8]
mov qword [r8], rcx
mov rdi, qword [rcx + 8]
mov qword [rdi], r9
mov rdx, qword [r9 + 8]
mov qword [rdx], rax
mov qword [r9 + 8], rdi
mov qword [rcx + 8], r8
mov qword [rax + 8], rdx
mov qword [r10 + 8], rax
jmp 0x180108232
cmp r8, rdx
je 0x18010820e
mov rdx, qword [rdx + 8]
cmp edi, dword [rdx + 0x10]
je 0x180108258
cmp r8, rdx
jne 0x180108200
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], rdx
mov rdi, qword [rdx + 8]
mov qword [rdi], rax
mov qword [rdx + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdi
mov qword [r10], rax
mov rax, rcx
cmp rcx, rbx
jne 0x180108170
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov r9, qword [rdx]
mov r8, qword [rax + 8]
mov qword [r8], rcx
mov rdi, qword [rcx + 8]
mov qword [rdi], r9
mov rdx, qword [r9 + 8]
mov qword [rdx], rax
mov qword [r9 + 8], rdi
mov qword [rcx + 8], r8
mov qword [rax + 8], rdx
jmp 0x180108232
call fcn.180075c90
int3