Function at 0x180040a60
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
lea rbp, [rax - 0x18]
sub rsp, 0x110
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm9
movaps xmmword [rax - 0x48], xmm11
movaps xmmword [rax - 0x58], xmm12
mov rax, qword [0x180118100]
xor rax, rsp
mov qword [rbp - 0x50], rax
mov rsi, rcx
call fcn.180040890
cmp qword [rsi + 0x48], 0xf
lea rdi, [rsi + 0x30]
mov rcx, rdi
jbe 0x180040ab9
mov rcx, qword [rdi]
movsx eax, byte [rcx]
mov ebx, 0x811c9dc5
test al, al
jne 0x180040ac9
mov eax, ebx
jmp 0x180040ad9
xor eax, ebx
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0x83d590fe
lea rdx, [rsp + 0x40]
xorps xmm2, xmm2
mov dword [rsp + 0x40], eax
lea rcx, [rbp - 0x60]
xorps xmm11, xmm11
call fcn.180035b00
cmp qword [rdi + 0x18], 0xf
jbe 0x180040b01
mov rdi, qword [rdi]
movsx eax, byte [rdi]
test al, al
jne 0x180040b0c
mov eax, ebx
jmp 0x180040b1d
xor eax, ebx
lea rcx, [rdi + 1]
imul edx, eax, 0x1000193
call fcn.180036e90
add eax, 0xe5b6ab9
lea rdx, [rsp + 0x40]
xorps xmm2, xmm2
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x50]
call fcn.180035b00
cmp qword [rsi + 0x48], 0xf
lea rcx, [rsi + 0x30]
jbe 0x180040b46
mov rcx, qword [rcx]
movsx eax, byte [rcx]
test al, al
jne 0x180040b51
mov eax, ebx
jmp 0x180040b61
xor eax, ebx
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0x31af5d82
lea rdx, [rsp + 0x40]
xorps xmm2, xmm2
mov dword [rsp + 0x40], eax
lea rcx, [rsp + 0x68]
call fcn.180035b00
cmp qword [rsi + 0x48], 0xf
lea rcx, [rsi + 0x30]
jbe 0x180040b8a
mov rcx, qword [rcx]
movsx eax, byte [rcx]
test al, al
je 0x180040ba3
xor eax, ebx
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov ebx, eax
lea eax, [rbx - 0x4531ce54]
xorps xmm2, xmm2
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], eax
lea rcx, [rbp - 0x70]
call fcn.180035b00
movss xmm0, dword [rbp - 0x60]
lea rax, [rbp - 0x60]
comiss xmm11, xmm0
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x48], 0x3f800000
mov dword [rsp + 0x40], 0
cmovbe rcx, rax
lea rax, [rsp + 0x48]
comiss xmm0, dword [0x1800fe1e8]
cmovbe rax, rcx
mov rcx, rsi
mov eax, dword [rax]
mov dword [rsi + 0x9c], eax
call fcn.180036c00
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x78], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm7, dword [rsi + 0x9c]
mov rcx, rsi
movss xmm6, dword [rax]
call fcn.180036c00
lea rdx, [rbp - 0x80]
mov qword [rbp - 0x80], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm12, dword [0x1800fe320]
mov rdx, rax
mov rax, qword [rsi + 0x20]
movaps xmm0, xmm7
mulss xmm0, dword [0x1800fe254]
mov qword [rsp + 0x48], rax
movss xmm3, dword [rsi + 0x18]
movss xmm2, dword [rsi + 0x1c]
addss xmm3, xmm11
addss xmm0, dword [0x1800fe2a4]
movss xmm9, dword [0x1800fe27c]
mulss xmm6, xmm12
addss xmm2, xmm9
cvttss2si ecx, xmm6
movss xmm6, dword [0x1800fe200]
movzx r8d, cl
cvttss2si ecx, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [0x1800fe318]
movzx r9d, cl
mov r11d, r9d
shl r9d, 0x18
shl r11d, 0x10
cvttss2si eax, xmm0
mov r10d, r11d
bswap r10d
movd xmm0, r8d
movzx ecx, al
sub ecx, r8d
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
cvttss2si r8d, xmm2
mulss xmm1, xmm7
cvttss2si edx, xmm3
addss xmm1, xmm0
cvttss2si eax, xmm1
movzx ecx, al
cvttss2si eax, dword [rsp + 0x4c]
or r10d, ecx
mov rcx, qword [0x1801b42e8]
or r10d, r9d
or r10d, r11d
xor edi, edi
mov dword [rsp + 0x38], edi
cvttss2si r9d, dword [rsp + 0x48]
movss dword [rsp + 0x30], xmm6
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], eax
call fcn.18008e580
mov rcx, rsi
call fcn.180036c00
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x60], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
mov rcx, qword [rsi + 0x20]
movss xmm2, dword [rsi + 0x18]
movss xmm1, dword [rsi + 0x1c]
addss xmm2, xmm11
movss xmm0, dword [rax]
addss xmm1, xmm9
mov qword [rsp + 0x48], rcx
cvttss2si r9d, dword [rsp + 0x48]
movss dword [rsp + 0x30], xmm6
mulss xmm0, xmm12
cvttss2si r8d, xmm1
cvttss2si eax, xmm0
cvttss2si edx, xmm2
movzx ecx, al
or ecx, 0x2e2e2e00
mov dword [rsp + 0x28], ecx
mov rcx, qword [0x1801b42e8]
cvttss2si eax, dword [rsp + 0x4c]
mov dword [rsp + 0x20], eax
call fcn.18008ece0
mov r8, qword [0x1801b42e8]
lea rdx, [rsp + 0x60]
mov r9, qword [rsi + 0xd8]
mov r8, qword [r8 + 0x78]
call fcn.18008daa0
mov ebx, dword [0x1801bdcb4]
mov rcx, rsi
call fcn.180036c00
lea rdx, [rbp - 0x78]
mov qword [rbp - 0x78], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm7, dword [rsp + 0x50]
mov rdx, rax
mov ecx, ebx
shr ecx, 0x18
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
addss xmm0, xmm11
cvttss2si ecx, xmm0
movzx r10d, cl
mov ecx, ebx
shr ecx, 0x10
movzx eax, cl
shl r10d, 8
shr ebx, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
addss xmm0, xmm11
cvttss2si eax, xmm0
movzx ecx, al
or r10d, ecx
movzx eax, bl
shl r10d, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm7
addss xmm0, xmm11
cvttss2si eax, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x1800fe2e8]
movzx ecx, al
or r10d, ecx
shl r10d, 8
mulss xmm0, dword [rdx]
cvttss2si eax, xmm0
movzx ecx, al
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm7
addss xmm1, xmm11
cvttss2si eax, xmm1
movss xmm0, dword [rsi + 0x1c]
addss xmm0, dword [0x1800fe270]
cvttss2si r9d, dword [rbp - 0x70]
movzx ecx, al
or r10d, ecx
mov rcx, qword [0x1801b42e8]
mov dword [rsp + 0x38], edi
cvttss2si edx, dword [rsp + 0x68]
movss dword [rsp + 0x30], xmm11
addss xmm0, xmm9
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], 0xd
subss xmm0, dword [0x1800fe260]
cvttss2si r8d, xmm0
call fcn.18008e580
mov rbx, qword [rsi + 0xd8]
mov rcx, rsi
call fcn.180036c00
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x68], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
mov rcx, rsi
movss xmm6, dword [rax]
call fcn.180036c00
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x50], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm3, dword [rsi + 0x1c]
movaps xmm0, xmm7
mulss xmm0, dword [0x1800fe2cc]
mov byte [rsp + 0x38], dil
addss xmm3, dword [0x1800fe23c]
movss xmm2, dword [rsi + 0x18]
addss xmm0, dword [0x1800fe318]
addss xmm2, dword [0x1800fe254]
mulss xmm6, xmm12
mov byte [rsp + 0x30], dil
addss xmm3, xmm9
mov qword [rsp + 0x28], rbx
cvttss2si ecx, xmm6
movss xmm6, dword [0x1800fe230]
movzx edx, cl
subss xmm3, xmm6
cvttss2si ecx, xmm0
movss xmm0, dword [rax]
movzx r8d, cl
mulss xmm0, xmm12
mov r9d, r8d
shl r9d, 0x10
mov r10d, r9d
shl r8d, 0x18
bswap r10d
cvttss2si eax, xmm0
movd xmm0, edx
movzx ecx, al
sub ecx, edx
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm7
addss xmm1, xmm0
cvttss2si eax, xmm1
movzx ecx, al
or r10d, ecx
mov rcx, qword [0x1801b42e8]
or r10d, r8d
or r10d, r9d
mov dword [rsp + 0x20], r10d
mov rdx, qword [rcx + 0x78]
call fcn.18008dbe0
cmp byte [rsi + 0xd1], dil
jne 0x18004105b
mov rcx, rsi
call fcn.180036c00
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x50], rax
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm3, dword [rsi + 0x1c]
lea rdx, [rsi + 0x30]
movss xmm2, dword [rsi + 0x18]
subss xmm3, xmm6
subss xmm2, dword [0x1800fe1ac]
movss xmm0, dword [rax]
mov byte [rsp + 0x38], dil
mulss xmm0, xmm12
mov byte [rsp + 0x30], dil
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 rcx, qword [rbp - 0x50]
xor rcx, rsp
call fcn.1800921e0
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm9, xmmword [r11 - 0x30]
movaps xmm11, xmmword [r11 - 0x40]
movaps xmm12, xmmword [r11 - 0x50]
mov rsp, r11
pop rbp
ret