Function at 0x180151890
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rbp, rcx
mov rdi, r9
mov ecx, 0x20
mov rbx, r8
mov r14, rdx
call fcn.1801a9850
mov r8d, dword [rbx]
mov rsi, rax
movabs rdx, 0x100000001b3
mov dword [rax + 0x10], r8d
movsd xmm0, qword [rdi]
movsd qword [rax + 0x14], xmm0
mov ecx, dword [rdi + 8]
mov dword [rax + 0x1c], ecx
mov ecx, r8d
mov r9, qword [rbp + 8]
shr ecx, 8
movzx edi, cl
movabs rcx, 0xcbf29ce484222325
movzx eax, r8b
xor rax, rcx
imul rax, rdx
xor rdi, rax
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov eax, r8d
imul rdi, rdx
shr rax, 0x18
xor rdi, rcx
mov rcx, qword [rbp + 0x18]
imul rdi, rdx
xor rdi, rax
imul rdi, rdx
mov rax, rdi
and rax, qword [rbp + 0x30]
add rax, rax
mov rdx, qword [rcx + rax*8 + 8]
cmp rdx, r9
jne 0x18015194e
mov rdx, r9
mov r8, r9
jmp 0x1801519a9
mov rax, qword [rcx + rax*8]
cmp r8d, dword [rdx + 0x10]
je 0x180151967
cmp rdx, rax
je 0x1801519a3
mov rdx, qword [rdx + 8]
cmp r8d, dword [rdx + 0x10]
jne 0x180151958
mov qword [r14], rdx
mov byte [r14 + 8], 0
test rsi, rsi
je 0x180151981
mov edx, 0x20
mov rcx, rsi
call fcn.1801a979c
mov rbx, qword [rsp + 0x50]
mov rax, r14
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
mov r9, rdx
mov r8, rdx
mov rcx, qword [rbp + 0x10]
lea r11, [rbp + 8]
movabs rax, 0x7ffffffffffffff
lea r10, [rbp + 0x30]
cmp rcx, rax
je 0x180151b77
add rcx, 1
xorps xmm0, xmm0
js 0x1801519d8
cvtsi2ss xmm0, rcx
jmp 0x1801519ed
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rbx, qword [rbp + 0x38]
xorps xmm2, xmm2
movss xmm3, dword [rbp]
test rbx, rbx
js 0x180151a05
cvtsi2ss xmm2, rbx
jmp 0x180151a1d
mov rax, rbx
mov rcx, rbx
shr rcx, 1
and eax, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm1, xmm0
divss xmm1, xmm2
comiss xmm1, xmm3
jbe 0x180151af9
divss xmm0, xmm3
call fcn.1801bf624
movss xmm1, dword [0x1801e5278]
xor ecx, ecx
comiss xmm0, xmm1
jb 0x180151a5b
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x180151a5b
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 0x180151a8d
cmp rbx, 0x200
jae 0x180151a8a
lea rbx, [rbx*8]
cmp rbx, rcx
jae 0x180151a8d
mov rbx, rcx
mov rdx, rbx
mov rcx, rbp
call fcn.180152850
mov rcx, qword [rbp + 0x30]
mov r8, qword [rbp + 0x18]
and rcx, rdi
mov rdx, qword [rbp + 8]
add rcx, rcx
mov rax, qword [r8 + rcx*8 + 8]
cmp rax, rdx
jne 0x180151abf
mov qword [rsp + 0x28], 0
jmp 0x180151ae4
mov r8, qword [r8 + rcx*8]
mov ecx, dword [rsi + 0x10]
cmp ecx, dword [rax + 0x10]
je 0x180151ae1
nop dword [rax + rax]
mov rdx, rax
cmp rax, r8
je 0x180151b38
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x180151ad0
mov rdx, qword [rax]
mov qword [rsp + 0x20], rdx
mov r9, qword [rsp + 0x20]
lea r10, [rbp + 0x30]
mov r8, rdx
lea r11, [rbp + 8]
mov rcx, qword [rdx + 8]
inc qword [rbp + 0x10]
mov qword [rsi], r9
mov qword [rsi + 8], rcx
mov qword [rcx], rsi
mov qword [rdx + 8], rsi
and rdi, qword [r10]
mov rax, qword [rbp + 0x18]
add rdi, rdi
mov rdx, qword [rax + rdi*8]
cmp rdx, qword [r11]
jne 0x180151b48
mov qword [rax + rdi*8], rsi
mov qword [rax + rdi*8 + 8], rsi
mov qword [r14], rsi
mov byte [r14 + 8], 1
jmp 0x180151981
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0
jmp 0x180151ae9
cmp rdx, r8
jne 0x180151b5e
mov qword [rax + rdi*8], rsi
mov qword [r14], rsi
mov byte [r14 + 8], 1
jmp 0x180151981
cmp qword [rax + rdi*8 + 8], rcx
jne 0x180151b6a
mov qword [rax + rdi*8 + 8], rsi
mov qword [r14], rsi
mov byte [r14 + 8], 1
jmp 0x180151981
lea rcx, str.unordered_map_set_too_long
call fcn.1801aae34
int3