Function at 0x18004ca70
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, 0xf0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
mov rax, qword [0x180118100]
xor rax, rsp
mov qword [rbp - 9], rax
mov rbx, rcx
call fcn.18004dd40
lea rsi, [rbx + 0x50]
mov rcx, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x18004cac3
mov rcx, qword [rsi]
movsx eax, byte [rcx]
mov edi, 0x811c9dc5
test al, al
jne 0x18004cad4
mov r14d, edi
jmp 0x18004cae7
xor eax, edi
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov r14d, eax
lea rcx, [rbx + 0x30]
cmp qword [rcx + 0x18], 0xf
jbe 0x18004caf5
mov rcx, qword [rcx]
movsx edx, byte [rcx]
test dl, dl
jne 0x18004cb00
mov eax, edi
jmp 0x18004cb12
mov eax, edx
xor eax, edi
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0xc9015f23
add eax, r14d
mov dword [rbp - 0x69], eax
xorps xmm9, xmm9
xorps xmm2, xmm2
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x39]
call fcn.180035b00
cmp qword [rsi + 0x18], 0xf
jbe 0x18004cb3b
mov rsi, qword [rsi]
movsx eax, byte [rsi]
test al, al
jne 0x18004cb46
mov esi, edi
jmp 0x18004cb59
xor eax, edi
imul edx, eax, 0x1000193
lea rcx, [rsi + 1]
call fcn.180036e90
mov esi, eax
lea rcx, [rbx + 0x30]
cmp qword [rcx + 0x18], 0xf
jbe 0x18004cb67
mov rcx, qword [rcx]
movsx edx, byte [rcx]
test dl, dl
je 0x18004cb82
mov eax, edx
xor eax, edi
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov edi, eax
lea eax, [rdi - 0x13da842b]
add eax, esi
mov dword [rbp - 0x69], eax
xorps xmm2, xmm2
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x49]
call fcn.180035b00
mov dword [rbp - 0x61], 0x3f800000
mov dword [rbp - 0x69], 0
lea rcx, [rbp - 0x69]
lea rax, [rbp - 0x39]
movss xmm0, dword [rbp - 0x39]
comiss xmm9, xmm0
cmovbe rcx, rax
lea rax, [rbp - 0x61]
comiss xmm0, dword [0x1800fe1e8]
cmovbe rax, rcx
mov eax, dword [rax]
mov dword [rbx + 0x9c], eax
mov rax, qword [rbx + 0xf8]
cvttss2si ecx, dword [rax]
mov dword [rbp - 0x69], ecx
lea rax, [0x1800fc538]
mov qword [rbp - 0x39], rax
mov qword [rbp - 0x31], 4
lea r9, [rbx + 0xd0]
lea r8, [rbp - 0x69]
lea rdx, [rbp - 0x39]
lea rcx, [rbp - 0x29]
call fcn.18004e980
nop
mov rcx, rbx
call fcn.180036c00
mov qword [rbp - 0x51], rax
lea rdx, [rbp - 0x51]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm7, dword [rax]
mulss xmm7, dword [0x1800fe318]
movss xmm8, dword [rbx + 0x9c]
mov rcx, rbx
call fcn.180036c00
mov qword [rbp - 0x59], rax
lea rdx, [rbp - 0x59]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, dword [0x1800fe318]
cvttss2si eax, xmm7
movzx edx, al
cvttss2si eax, xmm0
movzx ecx, al
sub ecx, edx
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm8
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm2, xmm0
mulss xmm8, dword [0x1800fe28c]
addss xmm8, dword [0x1800fe2c0]
cvttss2si eax, xmm8
movzx ecx, al
mov edx, ecx
shl edx, 0x10
movss xmm1, dword [rbx + 0x1c]
movss xmm6, dword [0x1800fe27c]
addss xmm1, xmm6
movss xmm0, dword [rbx + 0x18]
addss xmm0, xmm9
mov rax, qword [rbx + 0x20]
mov qword [rbp - 0x69], rax
mov r10d, edx
bswap r10d
shl ecx, 0x18
or r10d, ecx
cvttss2si eax, xmm2
movzx ecx, al
or r10d, ecx
or r10d, edx
cvttss2si eax, dword [rbp - 0x65]
cvttss2si r9d, dword [rbp - 0x69]
cvttss2si r8d, xmm1
cvttss2si edx, xmm0
xor edi, edi
mov dword [rsp + 0x38], edi
movss xmm8, dword [0x1800fe220]
movss dword [rsp + 0x30], xmm8
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], eax
mov rcx, qword [0x1801b42e8]
call fcn.18008e580
movss xmm7, dword [0x1800fe320]
movss xmm9, dword [rbp - 0x49]
comiss xmm9, dword [0x1800fe1e8]
jbe 0x18004cdcf
mov eax, dword [0x1801bdcb4]
mov dword [rbp - 0x69], eax
mov rcx, rbx
call fcn.180036c00
mov qword [rbp - 0x59], rax
lea rdx, [rbp - 0x59]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, xmm7
cvttss2si eax, xmm0
mov byte [rbp - 0x61], al
movzx eax, byte [rbp - 0x68]
mov byte [rbp - 0x60], al
movzx eax, byte [rbp - 0x67]
mov byte [rbp - 0x5f], al
movzx eax, byte [rbp - 0x66]
mov byte [rbp - 0x5e], al
cvttss2si ecx, dword [rbx + 0x24]
movss xmm0, dword [rbx + 0x1c]
addss xmm0, xmm6
cvttss2si r8d, xmm0
cvttss2si edx, dword [rbx + 0x18]
cvttss2si r9d, xmm9
mov dword [rsp + 0x38], edi
movss dword [rsp + 0x30], xmm8
mov eax, dword [rbp - 0x61]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov rcx, qword [0x1801b42e8]
call fcn.18008e580
lea r9, [rbp - 0x29]
mov r8, qword [0x1801b42e8]
mov r8, qword [r8 + 0x78]
lea rdx, [rbp - 0x51]
call fcn.18008daa0
mov rcx, rbx
call fcn.180036c00
mov qword [rbp - 0x59], rax
lea rdx, [rbp - 0x59]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, xmm7
movss xmm3, dword [rbx + 0x1c]
subss xmm3, dword [0x1800fe230]
movss xmm2, dword [rbx + 0x20]
addss xmm2, dword [rbx + 0x18]
subss xmm2, dword [rbp - 0x51]
mov rcx, qword [0x1801b42e8]
cvttss2si eax, xmm0
movzx r8d, al
or r8d, 0xc8c8c800
mov byte [rsp + 0x38], dil
mov byte [rsp + 0x30], dil
lea rax, [rbp - 0x29]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r8d
mov rdx, qword [rcx + 0x78]
call fcn.18008dbe0
mov rcx, rbx
call fcn.180036c00
mov qword [rbp - 0x69], rax
lea rdx, [rbp - 0x69]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, xmm7
movss xmm3, dword [rbx + 0x1c]
subss xmm3, dword [0x1800fe230]
movss xmm2, dword [rbx + 0x18]
subss xmm2, dword [0x1800fe1e8]
mov rcx, qword [0x1801b42e8]
lea r9, [rbx + 0x30]
cvttss2si eax, xmm0
movzx r8d, al
or r8d, 0xc8c8c800
mov byte [rsp + 0x38], dil
mov byte [rsp + 0x30], dil
mov qword [rsp + 0x28], r9
mov dword [rsp + 0x20], r8d
mov rdx, qword [rcx + 0x78]
call fcn.18008dbe0
nop
lea rcx, [rbp - 0x29]
call fcn.1800304d0
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.1800921e0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret