Function at 0x18004ec40
Capabilities:
Hash data using fnv

Disassembly:
mov rcx, qword [0x1801496b0]
add rcx, 1
mov rdx, qword [0x1801496d8]
vxorps xmm0, xmm0, xmm0
js 0x18004eb3f
vcvtsi2ss xmm0, xmm0, rcx
jmp 0x18004eb54
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
vcvtsi2ss xmm0, xmm0, rax
vaddss xmm0, xmm0, xmm0
vdivss xmm0, xmm0, dword [0x1801496a0]
vxorps xmm1, xmm1, xmm1
vroundss xmm1, xmm1, xmm0, 2
vmovss xmm0, dword [0x1800ede0c]
xor ecx, ecx
vcomiss xmm1, xmm0
jb 0x18004eb8f
vsubss xmm1, xmm1, xmm0
vcomiss xmm1, xmm0
jae 0x18004eb8f
movabs rax, 0x8000000000000000
mov rcx, rax
vcvttss2si rax, xmm1
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x18004ebc1
cmp rdx, 0x200
jae 0x18004ebbe
lea rdx, [rdx*8]
cmp rdx, rcx
jae 0x18004ebc1
mov rdx, rcx
jmp 0x18004ec40
sub rsp, 0x28
movabs rax, 0xfffffffffffffff
mov r8d, 1
bsr rcx, rax
shlx rax, r8, rcx
cmp rdx, rax
jbe 0x18004ec73
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 [0x1801496a8]
or rax, r8
bsr rcx, rax
mov qword [rsp + 0x20], rdi
inc ecx
shlx rdi, r8, rcx
mov r8, rbx
lea rcx, [0x1801496b8]
lea rdx, [rdi + rdi]
call fcn.18000d340
mov rax, qword [0x1801496a8]
lea r9, [rdi - 1]
mov qword [0x1801496d0], r9
mov qword [0x1801496d8], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x18004ee28
mov qword [rsp + 0x38], rsi
movabs rdi, 0x100000001b3
movabs rsi, 0xcbf29ce484222325
nop word [rax + rax]
movzx edx, byte ds:[rax + 0x11]
movzx r11d, byte [rax + 0x10]
mov rcx, qword [rcx]
xor r11, rsi
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x12]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x13]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x14]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x15]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x16]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x17]
imul r11, rdi
xor r11, rdx
imul r11, rdi
and r11, r9
shl r11, 4
add r11, qword [0x1801496b8]
mov r9, qword [r11]
cmp r9, rbx
jne 0x18004ed6e
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x18004ede9
mov rdx, qword [r11 + 8]
mov r8, qword [rax + 0x10]
cmp r8, qword [rdx + 0x10]
jne 0x18004edac
mov r10, qword ds:[rdx]
cmp r10, rax
je 0x18004eda6
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
mov qword [r11 + 8], rax
jmp 0x18004ede9
cmp r9, rdx
je 0x18004edc5
mov rdx, qword [rdx + 8]
cmp r8, qword [rdx + 0x10]
je 0x18004edfd
nop dword [rax + rax]
cmp r9, rdx
jne 0x18004edb1
mov r10, qword [rax + 8]
mov qword [r10], rcx
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r9
mov qword [rcx + 8], r10
mov qword [rax + 8], r8
mov qword [r11], rax
mov rax, rcx
cmp rcx, rbx
je 0x18004ee23
mov r9, qword [0x1801496d0]
jmp 0x18004ecf0
mov r10, qword [rdx]
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x18004ede9
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x20]
add rsp, 0x28
ret