Function at 0x18003fa80
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm15
mov rax, qword [0x180118100]
xor rax, rsp
mov qword [rbp - 0x30], rax
mov rdi, rcx
mov r15, qword [rcx + 0xc8]
lea rbx, [rcx + 0x30]
mov r9, rbx
mov r8, qword [0x1801b42e8]
mov r8, qword [r8 + 0x78]
lea rdx, [rsp + 0x48]
call fcn.18008daa0
mov rdx, qword [rdi + 0xf0]
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x70], xmm1
mov r14, 0xffffffffffffffff
mov r8, r14
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x18003fb30
lea rcx, [rsp + 0x60]
call fcn.18002fe70
nop
mov rax, qword [0x1801b42e8]
mov rcx, qword [rax + 0x98]
call fcn.1800718e0
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0xf
cmova rcx, qword [rsp + 0x60]
mov rax, qword [0x1801bd7c0]
movss xmm6, dword [rax + 0x3db8]
xorps xmm8, xmm8
test rcx, rcx
jne 0x18003fb87
xorps xmm12, xmm12
jmp 0x18003fbe9
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rcx
movss xmm0, dword [0x1800fe36c]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [0x1800fe35c]
movaps xmm2, xmm6
lea rdx, [rsp + 0x40]
mov rcx, qword [rax + 0x3db0]
call fcn.1800835e0
movss xmm0, dword [rsp + 0x40]
addss xmm0, dword [0x1800fe1e0]
cvttss2si eax, xmm0
movd xmm12, eax
cvtdq2ps xmm12, xmm12
movss xmm6, dword [rsp + 0x44]
call fcn.180071990
nop
lea rcx, [rsp + 0x60]
call fcn.1800304d0
movss xmm1, dword [rdi + 0x24]
movss xmm2, dword [0x1800fe1ac]
mulss xmm1, xmm2
movss xmm10, dword [rdi + 0x1c]
movaps xmm11, xmm10
subss xmm11, dword [0x1800fe1f4]
addss xmm11, xmm1
movss xmm0, dword [rsp + 0x4c]
mulss xmm0, xmm2
subss xmm11, xmm0
movss xmm13, dword [rdi + 0x18]
addss xmm12, xmm13
addss xmm12, dword [0x1800fe2ac]
movss xmm7, dword [0x1800fe1e8]
addss xmm10, xmm7
addss xmm10, xmm1
mulss xmm6, xmm2
subss xmm10, xmm6
addss xmm13, dword [0x1800fe288]
mov rcx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x18003fc76
mov rcx, qword [rbx]
movsx eax, byte [rcx]
mov esi, 0x811c9dc5
test al, al
jne 0x18003fc86
mov eax, esi
jmp 0x18003fc96
xor eax, esi
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0x847ca382
mov dword [rsp + 0x48], eax
xorps xmm2, xmm2
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x40]
call fcn.180035b00
cmp byte [rdi + 0x98], 0
jne 0x18003fcc7
cmp byte [rdi + 0x99], 0
jne 0x18003fcc7
xor r12d, r12d
jmp 0x18003fccd
mov r12d, 1
cmp qword [rbx + 0x18], 0xf
jbe 0x18003fcd7
mov rbx, qword [rbx]
movsx eax, byte [rbx]
test al, al
jne 0x18003fce2
mov eax, esi
jmp 0x18003fcf3
xor eax, esi
imul edx, eax, 0x1000193
lea rcx, [rbx + 1]
call fcn.180036e90
add eax, 0x847ca382
mov dword [rsp + 0x48], eax
movd xmm1, r12d
cvtdq2ps xmm1, xmm1
movss xmm3, dword [0x1800fe340]
movss xmm9, dword [0x1800fe174]
movaps xmm2, xmm9
lea rcx, [rsp + 0x48]
call fcn.180035ca0
mov dword [rsp + 0x40], 0x3f800000
mov dword [rsp + 0x48], 0
lea rcx, [rsp + 0x48]
lea rax, [rbp - 0x40]
movss xmm0, dword [rbp - 0x40]
comiss xmm8, xmm0
cmovbe rcx, rax
lea rax, [rsp + 0x40]
comiss xmm0, xmm7
cmovbe rax, rcx
mov eax, dword [rax]
mov dword [rdi + 0xfc], eax
mov rcx, rdi
call fcn.180036c00
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm6, dword [rax]
movss xmm15, dword [0x1800fe320]
mulss xmm6, xmm15
movss xmm7, dword [rdi + 0xfc]
mov rcx, rdi
call fcn.180036c00
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x58]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, xmm15
cvttss2si eax, xmm6
movzx edx, al
cvttss2si eax, xmm0
movzx ecx, al
sub ecx, edx
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm7
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
mulss xmm7, dword [0x1800fe264]
movss xmm0, dword [0x1800fe2bc]
subss xmm0, xmm7
cvttss2si eax, xmm0
movzx ecx, al
mov r11d, ecx
shl r11d, 0x10
cvttss2si ebx, dword [rdi + 0x24]
cvttss2si r9d, dword [rdi + 0x20]
cvttss2si r8d, dword [rdi + 0x1c]
cvttss2si edx, dword [rdi + 0x18]
mov r10d, r11d
bswap r10d
shl ecx, 0x18
or r10d, ecx
cvttss2si eax, xmm1
movzx ecx, al
or r10d, ecx
or r10d, r11d
mov dword [rsp + 0x38], 0
movss dword [rsp + 0x30], xmm8
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], ebx
mov rcx, qword [0x1801b42e8]
call fcn.18008e580
lea rcx, [rdi + 0x30]
cmp qword [rcx + 0x18], 0xf
jbe 0x18003fe65
mov rcx, qword [rcx]
movsx eax, byte [rcx]
test al, al
jne 0x18003fe70
mov eax, esi
jmp 0x18003fe80
xor eax, esi
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0x5d7f2c9a
mov dword [rsp + 0x40], eax
xorps xmm2, xmm2
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x40]
call fcn.180035b00
lea rcx, [rdi + 0x30]
cmp qword [rcx + 0x18], 0xf
jbe 0x18003fea8
mov rcx, qword [rcx]
movsx eax, byte [rcx]
test al, al
jne 0x18003feb3
mov eax, esi
jmp 0x18003fec3
xor eax, esi
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0x1ec6f809
mov dword [rsp + 0x40], eax
xorps xmm2, xmm2
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x40]
call fcn.180035b00
lea rcx, [rdi + 0x30]
cmp qword [rcx + 0x18], 0xf
jbe 0x18003feeb
mov rcx, qword [rcx]
movsx eax, byte [rcx]
test al, al
jne 0x18003fef6
mov eax, esi
jmp 0x18003ff06
xor eax, esi
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0x1ec6f809
mov dword [rsp + 0x40], eax
movss xmm3, dword [0x1800fe34c]
movaps xmm2, xmm9
movss xmm1, dword [rdi + 0xdc]
lea rcx, [rsp + 0x40]
call fcn.180035ca0
movzx eax, byte [rdi + 0x98]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
lea rcx, [rdi + 0x30]
cmp qword [rcx + 0x18], 0xf
jbe 0x18003ff49
mov rcx, qword [rcx]
movsx eax, byte [rcx]
test al, al
je 0x18003ff62
xor eax, esi
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov esi, eax
lea eax, [rsi + 0x5d7f2c9a]
mov dword [rsp + 0x40], eax
movss xmm3, dword [0x1800fe340]
movaps xmm2, xmm9
movaps xmm1, xmm6
lea rcx, [rsp + 0x40]
call fcn.180035ca0
mov rdx, qword [rdi + 0xf0]
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x70], xmm1
nop dword [rax]
inc r14
cmp byte [rdx + r14], 0
jne 0x18003ffa0
mov r8, r14
lea rcx, [rsp + 0x60]
call fcn.18002fe70
nop
mov rcx, rdi
call fcn.180036c00
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x58]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm6, dword [rax]
mulss xmm6, xmm15
movss xmm7, dword [rdi + 0xfc]
mov rcx, rdi
call fcn.180036c00
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, xmm15
cvttss2si eax, xmm6
movzx edx, al
cvttss2si eax, xmm0
movzx ecx, al
sub ecx, edx
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm7
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
mulss xmm7, dword [0x1800fe2ec]
addss xmm7, dword [0x1800fe304]
cvttss2si eax, xmm7
movzx ecx, al
mov r9d, ecx
shl r9d, 0x10
mov r11, qword [0x1801b42e8]
mov r10d, r9d
bswap r10d
shl ecx, 0x18
or r10d, ecx
cvttss2si eax, xmm1
movzx r8d, al
or r10d, r8d
or r10d, r9d
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 1
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r10d
movaps xmm3, xmm10
movaps xmm2, xmm13
mov rdx, qword [r11 + 0x98]
mov rcx, r11
call fcn.18008dbe0
nop
lea rcx, [rsp + 0x60]
call fcn.1800304d0
mov rcx, rdi
call fcn.180036c00
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0x40]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm6, dword [rax]
mulss xmm6, xmm15
movss xmm7, dword [rdi + 0xfc]
mov rcx, rdi
call fcn.180036c00
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, xmm15
cvttss2si eax, xmm6
movzx edx, al
cvttss2si eax, xmm0
movzx ecx, al
sub ecx, edx
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm7
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
mulss xmm7, dword [0x1800fe2ec]
addss xmm7, dword [0x1800fe304]
cvttss2si eax, xmm7
movzx r8d, al
mov r11d, r8d
shl r11d, 0x10
mov rcx, qword [0x1801b42e8]
lea r9, [rdi + 0x30]
mov r10d, r11d
bswap r10d
shl r8d, 0x18
or r10d, r8d
cvttss2si eax, xmm1
movzx r8d, al
or r10d, r8d
or r10d, r11d
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 1
mov qword [rsp + 0x28], r9
mov dword [rsp + 0x20], r10d
movaps xmm3, xmm11
movaps xmm2, xmm12
mov rdx, qword [rcx + 0x78]
call fcn.18008dbe0
cmp byte [rdi + 0x98], 0
je 0x18004022a
lea rax, vtable.._AV___Func_impl_no_alloc_V_lambda_1___1__paint_tab_p__UEAAXXZ_X__V_std__.0
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rdi
lea rax, [rbp - 0x80]
mov qword [rbp - 0x48], rax
movss xmm2, dword [r15 + 0x114]
movss xmm3, dword [r15 + 0x100]
movss xmm4, dword [r15 + 0x24]
subss xmm4, xmm2
movaps xmm0, xmm3
addss xmm0, xmm3
subss xmm4, xmm0
addss xmm2, dword [r15 + 0x1c]
addss xmm2, xmm3
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm4
movss xmm3, dword [r15 + 0x20]
movss xmm1, dword [r15 + 0x18]
mov rcx, qword [0x1801b42e8]
call fcn.18008ee80
nop
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x18004022a
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov rcx, qword [rbp - 0x30]
xor rcx, rsp
call fcn.1800921e0
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm15, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret