Function at 0x180037010
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
mov rax, qword [0x180118100]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov rdi, rcx
call fcn.180036eb0
cmp qword [rdi + 0x68], 0xf
lea rsi, [rdi + 0x50]
mov rcx, rsi
jbe 0x180037059
mov rcx, qword [rsi]
movsx eax, byte [rcx]
mov ebx, 0x811c9dc5
test al, al
jne 0x18003706a
mov r14d, ebx
jmp 0x18003707d
xor eax, ebx
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov r14d, eax
cmp qword [rdi + 0x48], 0xf
lea rcx, [rdi + 0x30]
jbe 0x18003708b
mov rcx, qword [rcx]
movsx edx, byte [rcx]
test dl, dl
jne 0x180037096
mov eax, ebx
jmp 0x1800370a8
mov eax, edx
xor eax, ebx
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0xf489185f
lea rdx, [rbp - 0x39]
add eax, r14d
lea rcx, [rbp + 0xf]
xorps xmm2, xmm2
mov dword [rbp - 0x39], eax
xorps xmm6, xmm6
call fcn.180035b00
cmp qword [rsi + 0x18], 0xf
jbe 0x1800370d0
mov rsi, qword [rsi]
movsx eax, byte [rsi]
test al, al
jne 0x1800370db
mov esi, ebx
jmp 0x1800370ee
xor eax, ebx
lea rcx, [rsi + 1]
imul edx, eax, 0x1000193
call fcn.180036e90
mov esi, eax
cmp qword [rdi + 0x48], 0xf
lea rcx, [rdi + 0x30]
jbe 0x1800370fc
mov rcx, qword [rcx]
movsx edx, byte [rcx]
test dl, dl
je 0x180037117
mov eax, edx
xor eax, ebx
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov ebx, eax
lea eax, [rbx - 0x386a7032]
xorps xmm2, xmm2
add eax, esi
lea rdx, [rbp - 0x39]
lea rcx, [rbp - 1]
mov dword [rbp - 0x39], eax
call fcn.180035b00
movss xmm0, dword [rbp + 0xf]
lea rax, [rbp + 0xf]
comiss xmm6, xmm0
lea rcx, [rbp - 0x39]
mov dword [rbp - 0x31], 0x3f800000
mov dword [rbp - 0x39], 0
cmovbe rcx, rax
lea rax, [rbp - 0x31]
comiss xmm0, dword [0x1800fe1e8]
cmovbe rax, rcx
mov rcx, rdi
mov eax, dword [rax]
mov dword [rdi + 0x9c], eax
call fcn.180036c00
lea rdx, [rbp - 0x29]
mov qword [rbp - 0x29], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm7, dword [rdi + 0x9c]
mov rcx, rdi
movss xmm6, dword [rax]
call fcn.180036c00
lea rdx, [rbp - 0x21]
mov qword [rbp - 0x21], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
mulss xmm6, dword [0x1800fe318]
mov rdx, rax
mov rax, qword [rdi + 0x20]
xor ebx, ebx
mov qword [rbp - 0x39], rax
movaps xmm0, xmm7
mulss xmm0, dword [0x1800fe28c]
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x31], rax
cvttss2si ecx, xmm6
mov dword [rsp + 0x38], ebx
addss xmm0, dword [0x1800fe2c0]
movss xmm6, dword [0x1800fe220]
movzx r8d, cl
movss dword [rsp + 0x30], xmm6
cvttss2si ecx, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [0x1800fe318]
movzx r9d, cl
cvttss2si edx, dword [rbp - 0x31]
mov r11d, r9d
shl r9d, 0x18
shl r11d, 0x10
mov r10d, r11d
bswap r10d
cvttss2si eax, xmm0
movd xmm0, r8d
movzx ecx, al
sub ecx, r8d
cvttss2si r8d, dword [rbp - 0x2d]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm7
addss xmm1, xmm0
cvttss2si eax, xmm1
movzx ecx, al
cvttss2si eax, dword [rbp - 0x35]
or r10d, ecx
mov rcx, qword [0x1801b42e8]
or r10d, r9d
or r10d, r11d
mov dword [rsp + 0x28], r10d
cvttss2si r9d, dword [rbp - 0x39]
mov dword [rsp + 0x20], eax
call fcn.18008e580
mov eax, dword [0x1801bdcb4]
mov dword [rbp - 0x39], eax
mov rcx, rdi
call fcn.180036c00
lea rdx, [rbp - 0x19]
mov qword [rbp - 0x19], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
mov dword [rsp + 0x38], ebx
movss dword [rsp + 0x30], xmm6
movss xmm0, dword [rax]
mulss xmm0, dword [0x1800fe320]
mulss xmm0, dword [rbp - 1]
cvttss2si eax, xmm0
mov byte [rbp - 0x31], al
movzx eax, byte [rbp - 0x38]
mov byte [rbp - 0x30], al
movzx eax, byte [rbp - 0x37]
mov byte [rbp - 0x2f], al
movzx eax, byte [rbp - 0x36]
mov byte [rbp - 0x2e], al
mov rax, qword [rdi + 0x20]
mov qword [rbp - 0x39], rax
mov rax, qword [rdi + 0x18]
cvttss2si ecx, dword [rbp - 0x35]
mov qword [rbp - 0x29], rax
mov eax, dword [rbp - 0x31]
mov dword [rsp + 0x28], eax
cvttss2si r8d, dword [rbp - 0x25]
mov dword [rsp + 0x20], ecx
mov rcx, qword [0x1801b42e8]
cvttss2si edx, dword [rbp - 0x29]
cvttss2si r9d, dword [rbp - 0x39]
call fcn.18008e580
mov rcx, rdi
call fcn.180036c00
lea rdx, [rbp - 0x11]
mov qword [rbp - 0x11], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
mov rcx, qword [rdi + 0x20]
movss xmm6, dword [0x1800fe200]
mov qword [rbp - 0x29], rcx
movss xmm0, dword [rax]
mov rcx, qword [rdi + 0x18]
mulss xmm0, dword [0x1800fe2f0]
mov qword [rbp - 0x39], rcx
cvttss2si r9d, dword [rbp - 0x29]
mov rcx, qword [0x1801b42e8]
cvttss2si r8d, dword [rbp - 0x35]
cvttss2si edx, dword [rbp - 0x39]
cvttss2si eax, xmm0
movss dword [rsp + 0x30], xmm6
movzx r10d, al
cvttss2si eax, dword [rbp - 0x25]
or r10d, 0x9090900
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], eax
call fcn.18008ece0
mov rcx, rdi
call fcn.180036c00
lea rdx, [rbp - 9]
mov qword [rbp - 9], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm2, dword [rdi + 0x20]
lea rdx, [rdi + 0x30]
addss xmm2, dword [rdi + 0x18]
movss xmm3, dword [rdi + 0x1c]
movss xmm0, dword [rax]
subss xmm3, xmm6
mulss xmm0, dword [0x1800fe320]
mov byte [rsp + 0x38], bl
addss xmm2, dword [0x1800fe240]
mov byte [rsp + 0x30], bl
mov qword [rsp + 0x28], rdx
cvttss2si eax, xmm0
movzx ecx, al
or ecx, 0xc8c8c800
mov dword [rsp + 0x20], ecx
mov rcx, qword [0x1801b42e8]
mov rdx, qword [rcx + 0x78]
call fcn.18008dbe0
mov rbx, qword [rdi + 0x88]
mov rsi, qword [rdi + 0x90]
add rsi, rbx
cmp rbx, rsi
je 0x180037445
nop
mov rax, qword [rdi + 0x78]
mov rcx, qword [rdi + 0x80]
dec rcx
and rcx, rbx
mov rcx, qword [rax + rcx*8]
mov rcx, qword [rcx]
mov rax, qword [rcx]
call qword [rax]
inc rbx
cmp rbx, rsi
jne 0x180037420
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.1800921e0
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret