Function at 0x1400bc870
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdx, qword [rcx + 0x10]
mov rdi, rcx
add rdx, 1
mov rbx, qword [rcx + 0x38]
xorps xmm0, xmm0
js 0x1400bc7e5
cvtsi2ss xmm0, rdx
jmp 0x1400bc7fa
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [rcx]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
movss xmm1, dword [0x140103624]
xor ecx, ecx
comiss xmm0, xmm1
jb 0x1400bc828
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x1400bc828
movabs rax, 0x8000000000000000
mov rcx, rax
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rbx, rcx
jae 0x1400bc85a
cmp rbx, 0x200
jae 0x1400bc857
lea rbx, [rbx*8]
cmp rbx, rcx
jae 0x1400bc85a
mov rbx, rcx
mov rdx, rbx
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x1400bc870
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
movabs rax, 0xfffffffffffffff
mov rsi, rcx
bsr rcx, rax
mov edi, 1
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x1400bc8a8
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsi + 8]
or rax, rdi
bsr rcx, rax
mov r8, rbx
mov qword [rsp + 0x40], r14
inc ecx
shl rdi, cl
lea rcx, [rsi + 0x18]
lea rdx, [rdi + rdi]
call fcn.1400360b0
mov qword [rsi + 0x38], rdi
lea rax, [rdi - 1]
mov qword [rsi + 0x30], rax
mov rcx, qword [rsi + 8]
mov rcx, qword [rcx]
mov rdx, rcx
cmp rcx, rbx
je 0x1400bca47
mov qword [rsp + 0x38], rbp
movabs rdi, 0x100000001b3
movabs rbp, 0xcbf29ce484222325
nop
mov r10, qword [rcx + 0x10]
mov r11, qword [rsi + 0x30]
mov rax, r10
mov rdx, qword [rdx]
shr rax, 8
movzx r8d, al
mov rax, r10
shr rax, 0x10
movzx r9d, r10b
xor r9, rbp
imul r9, rdi
xor r9, r8
movzx r8d, al
imul r9, rdi
mov rax, r10
xor r9, r8
shr rax, 0x18
imul r9, rdi
movzx r8d, al
mov rax, r10
xor r9, r8
shr rax, 0x20
imul r9, rdi
movzx r8d, al
mov rax, r10
xor r9, r8
shr rax, 0x28
imul r9, rdi
movzx r8d, al
mov rax, r10
xor r9, r8
shr rax, 0x30
imul r9, rdi
movzx r8d, al
mov rax, r10
xor r9, r8
shr rax, 0x38
imul r9, rdi
xor r9, rax
imul r9, rdi
and r11, r9
shl r11, 4
add r11, qword [rsi + 0x18]
mov r9, qword [r11]
cmp r9, rbx
jne 0x1400bc9bc
mov qword [r11], rcx
mov qword [r11 + 8], rcx
jmp 0x1400bca36
mov rax, qword [r11 + 8]
cmp r10, qword [rax + 0x10]
jne 0x1400bc9f5
mov r10, qword [rax]
cmp r10, rcx
je 0x1400bc9ef
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov rax, qword [r10 + 8]
mov qword [rax], rcx
mov qword [r10 + 8], r8
mov qword [rdx + 8], r9
mov qword [rcx + 8], rax
mov qword [r11 + 8], rcx
jmp 0x1400bca36
mov r8, rax
cmp r9, rax
je 0x1400bca12
nop dword [rax]
mov rax, qword [rax + 8]
mov r8, rax
cmp r10, qword [rax + 0x10]
je 0x1400bca5c
cmp r9, rax
jne 0x1400bca00
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], r8
mov rax, qword [r8 + 8]
mov qword [rax], rcx
mov qword [r8 + 8], r9
mov qword [rdx + 8], r10
mov qword [rcx + 8], rax
mov qword [r11], rcx
mov rcx, rdx
cmp rdx, rbx
jne 0x1400bc910
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov r10, qword [rax]
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov rax, qword [r10 + 8]
mov qword [rax], rcx
mov qword [r10 + 8], r8
mov qword [rdx + 8], r9
mov qword [rcx + 8], rax
jmp 0x1400bca36