Function at 0x18003e8a0
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
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x178]
sub rsp, 0x250
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], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x180118100]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov r14, rcx
xor r12d, r12d
mov rcx, qword [rcx + 8]
call fcn.180036c00
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
mov rcx, qword [r14 + 0x18]
movss xmm0, dword [rcx]
movss xmm13, dword [0x1800fe320]
mulss xmm0, xmm13
mulss xmm0, dword [rax]
mov rax, qword [r14 + 0x10]
mov rcx, qword [r14 + 8]
mov rdx, qword [r14]
mov r8, qword [rdx]
mov qword [rsp + 0x40], r8
cvttss2si edx, xmm0
movzx r11d, dl
or r11d, 0x18181800
cvttss2si r10d, dword [rax]
cvttss2si r9d, dword [rcx + 0x20]
cvttss2si r8d, dword [rsp + 0x44]
cvttss2si edx, dword [rsp + 0x40]
mov dword [rsp + 0x38], r12d
xorps xmm9, xmm9
movss dword [rsp + 0x30], xmm9
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], r10d
mov rcx, qword [0x1801b42e8]
call fcn.18008e580
mov rcx, qword [r14 + 8]
call fcn.180036c00
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x58]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm7, dword [rax]
mulss xmm7, dword [0x1800fe2e8]
mov rcx, qword [r14 + 8]
movss xmm8, dword [rcx + 0x9c]
call fcn.180036c00
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, dword [0x1800fe2e8]
cvttss2si eax, xmm7
movzx edx, al
cvttss2si eax, xmm0
movzx ecx, al
sub ecx, edx
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm8
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
mulss xmm8, dword [0x1800fe264]
movss xmm0, dword [0x1800fe2d4]
subss xmm0, xmm8
cvttss2si eax, xmm0
movzx r9d, al
mov r10d, r9d
shl r10d, 0x10
mov rax, qword [r14 + 0x10]
mov rcx, qword [r14 + 8]
mov rdx, qword [r14]
mov r8, qword [rdx]
mov qword [rsp + 0x40], r8
mov r11d, r10d
bswap r11d
shl r9d, 0x18
or r11d, r9d
cvttss2si edx, xmm1
movzx r8d, dl
or r11d, r8d
or r11d, r10d
cvttss2si r10d, dword [rax]
cvttss2si r9d, dword [rcx + 0x20]
cvttss2si r8d, dword [rsp + 0x44]
cvttss2si edx, dword [rsp + 0x40]
movss dword [rsp + 0x30], xmm9
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], r10d
mov rcx, qword [0x1801b42e8]
call fcn.18008ece0
mov rcx, qword [r14 + 8]
movss xmm15, dword [0x1800fe220]
cmp byte [rcx + 0x110], r12b
je 0x18003eb65
call fcn.180036c00
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
mov rcx, qword [r14 + 0x18]
movss xmm1, dword [rcx]
mulss xmm1, xmm13
mulss xmm1, dword [rax]
mov rcx, qword [r14 + 8]
cvttss2si r9d, dword [rcx + 0x10c]
mov rax, qword [r14]
cvttss2si r8d, dword [rax + 4]
movss xmm0, dword [rcx + 0x20]
addss xmm0, dword [rax]
subss xmm0, xmm15
cvttss2si edx, xmm0
cvttss2si eax, xmm1
movzx ecx, al
or ecx, 0x26262600
mov dword [rsp + 0x38], r12d
movss dword [rsp + 0x30], xmm9
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], r9d
mov r9d, 3
mov rcx, qword [0x1801b42e8]
call fcn.18008e580
mov r15d, r12d
mov r9, qword [r14 + 8]
cmp qword [r9 + 0xf8], r12
jbe 0x18003f2c6
mov rsi, r12
movabs r13, 0x7fffffffffffffff
movss xmm11, dword [0x1800fe1f4]
movss xmm10, dword [0x1800fe1ac]
movss xmm12, dword [0x1800fe254]
movss xmm14, dword [0x1800fe318]
nop word [rax + rax]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], rax
mov rcx, qword [r9 + 0xf0]
add rcx, rsi
mov rdx, qword [r9 + 0xe8]
dec rdx
and rdx, rcx
mov rax, qword [r9 + 0xe0]
mov rdx, qword [rax + rdx*8]
lea rcx, [rbp - 0x10]
call fcn.1800303b0
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.18008f050
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], r12
mov qword [rbp + 0x48], r12
xor r8d, r8d
lea rdx, [0x1800f9fa0]
lea rcx, [rbp + 0x30]
call fcn.18002fe70
nop
mov rcx, qword [rbp + 0x58]
mov rax, rcx
mov r8, qword [rbp + 0x50]
sub rax, r8
and rax, 0xffffffffffffffe0
cmp rax, 0x40
jne 0x18003ec5c
lea rdx, [r8 + 0x20]
lea rax, [rbp + 0x30]
cmp rax, rdx
je 0x18003ec5c
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0xf
jbe 0x18003ec4b
mov rdx, qword [rdx]
lea rcx, [rbp + 0x30]
call fcn.18001ad80
mov rcx, qword [rbp + 0x58]
mov r8, qword [rbp + 0x50]
sub rcx, r8
sar rcx, 5
test rcx, rcx
je 0x18003f3af
mov rdx, r8
lea rcx, [rbp + 0x68]
call fcn.1800303b0
nop
mov rax, qword [r14 + 8]
lea rcx, [rax + 0x50]
lea r9, [rax + 0x30]
mov rdx, qword [r9 + 0x10]
mov r8, qword [rcx + 0x10]
mov rax, r13
sub rax, rdx
cmp rax, r8
jb 0x18003f3a9
cmp qword [r9 + 0x18], 0xf
jbe 0x18003eca6
mov r9, qword [r9]
cmp qword [rcx + 0x18], 0xf
jbe 0x18003ecb0
mov rcx, qword [rcx]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
lea rcx, [rbp + 0x10]
call fcn.18002e9e0
nop
lea rdx, [rbp + 0x30]
cmp qword [rbp + 0x48], 0xf
cmova rdx, qword [rbp + 0x30]
mov r8, qword [rbp + 0x40]
lea rcx, [rbp + 0x10]
call fcn.180030140
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], r12
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x70], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r9, [rbp + 0x9d]
mov r8d, r15d
test r15d, r15d
jns 0x18003ed70
neg r8d
nop dword [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x18003ed30
dec r9
mov byte [r9], 0x2d
jmp 0x18003ed9a
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x18003ed70
lea r8, [rbp + 0x9d]
mov rdx, r9
lea rcx, [rbp - 0x50]
call fcn.18002d830
nop
lea rbx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0xf
cmova rbx, qword [rsp + 0x60]
lea rcx, [rbp - 0x50]
cmp qword [rbp - 0x38], 0xf
cmova rcx, qword [rbp - 0x50]
movsx eax, byte [rcx]
test al, al
jne 0x18003eddb
mov edi, 0x811c9dc5
jmp 0x18003edf0
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov edi, eax
movsx ecx, byte [rbx]
test cl, cl
jne 0x18003edfe
mov eax, 0x811c9dc5
jmp 0x18003ee14
mov eax, ecx
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
lea rcx, [rbx + 1]
call fcn.180036e90
add eax, 0x76c14e56
add eax, edi
mov dword [rsp + 0x40], eax
movaps xmm2, xmm9
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x60]
call fcn.180035b00
nop
lea rcx, [rbp - 0x50]
call fcn.1800304d0
nop
lea rcx, [rsp + 0x60]
call fcn.1800304d0
nop
lea rcx, [rbp + 0x10]
call fcn.1800304d0
mov rcx, qword [r14 + 8]
movd xmm6, r15d
cvtdq2ps xmm6, xmm6
movaps xmm1, xmm6
mulss xmm1, dword [rcx + 0x24]
mov rax, qword [r14 + 0x20]
subss xmm1, dword [rax]
mov rax, qword [r14]
addss xmm1, dword [rax + 4]
movss xmm0, dword [rax]
addss xmm0, xmm9
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x40], rax
cvttss2si ecx, xmm1
cvttss2si edx, xmm0
mov rax, qword [0x1801b42e0]
movss xmm2, dword [rax]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x18003eee2
movss xmm1, dword [rax + 4]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x18003eee2
cvttss2si eax, dword [rsp + 0x40]
add eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm2
jbe 0x18003eee2
cvttss2si eax, dword [rsp + 0x44]
add eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x18003eee2
mov bl, 1
jmp 0x18003eee4
xor bl, bl
lea r9, [rbp + 0x68]
mov r8, qword [0x1801b42e8]
mov r8, qword [r8 + 0x68]
lea rdx, [rsp + 0x48]
call fcn.18008daa0
mov r9, qword [r14 + 8]
movss xmm0, dword [r9 + 0x24]
mov rcx, qword [r14]
movaps xmm7, xmm0
mulss xmm7, xmm6
addss xmm7, dword [rcx + 4]
subss xmm7, xmm11
mulss xmm0, xmm10
addss xmm7, xmm0
mov rax, qword [r14 + 0x20]
subss xmm7, dword [rax]
movss xmm0, dword [rsp + 0x4c]
mulss xmm0, xmm10
subss xmm7, xmm0
movss xmm8, dword [rcx]
addss xmm8, xmm12
mov rcx, qword [r9 + 0xf0]
add rcx, rsi
mov rdx, qword [r9 + 0xe8]
dec rdx
and rdx, rcx
mov rax, qword [r9 + 0xe0]
mov rcx, qword [rax + rdx*8]
mov rax, qword [rcx + 0x20]
test bl, bl
jne 0x18003ef76
cmp byte [rax], bl
mov edi, r12d
je 0x18003ef7b
mov edi, 1
lea rcx, [r9 + 0x50]
add r9, 0x30
mov rdx, qword [r9 + 0x10]
mov r8, qword [rcx + 0x10]
mov rax, r13
sub rax, rdx
cmp rax, r8
jb 0x18003f3b5
cmp qword [r9 + 0x18], 0xf
jbe 0x18003efa4
mov r9, qword [r9]
cmp qword [rcx + 0x18], 0xf
jbe 0x18003efae
mov rcx, qword [rcx]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
lea rcx, [rbp - 0x10]
call fcn.18002e9e0
nop
lea rdx, [rbp + 0x30]
cmp qword [rbp + 0x48], 0xf
cmova rdx, qword [rbp + 0x30]
mov r8, qword [rbp + 0x40]
lea rcx, [rbp - 0x10]
call fcn.180030140
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], r12
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r9, [rbp + 0x9d]
mov r8d, r15d
test r15d, r15d
jns 0x18003f060
neg r8d
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x18003f021
dec r9
mov byte [r9], 0x2d
jmp 0x18003f08a
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x18003f060
lea r8, [rbp + 0x9d]
mov rdx, r9
lea rcx, [rbp - 0x30]
call fcn.18002d830
nop
lea rcx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0xf
cmova rcx, qword [rbp - 0x30]
movsx eax, byte [rcx]
test al, al
jne 0x18003f0ba
mov ebx, 0x811c9dc5
jmp 0x18003f0cf
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov ebx, eax
lea rcx, [rbp - 0x80]
cmp qword [rbp - 0x68], 0xf
cmova rcx, qword [rbp - 0x80]
movsx edx, byte [rcx]
test dl, dl
jne 0x18003f0eb
mov eax, 0x811c9dc5
jmp 0x18003f100
mov eax, edx
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add ebx, 0x76c14e56
add eax, ebx
mov dword [rsp + 0x40], eax
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movss xmm3, dword [0x1800fe340]
movss xmm2, dword [0x1800fe180]
lea rcx, [rsp + 0x40]
call fcn.180035ca0
nop
lea rcx, [rbp - 0x30]
call fcn.1800304d0
nop
lea rcx, [rbp - 0x80]
call fcn.1800304d0
nop
lea rcx, [rbp - 0x10]
call fcn.1800304d0
mov rcx, qword [r14 + 8]
call fcn.180036c00
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x58]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
mov rcx, qword [r14 + 0x18]
movss xmm6, dword [rcx]
mulss xmm6, xmm13
mulss xmm6, dword [rax]
movzx esi, byte [0x1801bdcb7]
movzx edi, word [0x1801bdcb6]
mov ebx, dword [0x1801bdcb4]
shr ebx, 8
mov rcx, qword [r14 + 8]
call fcn.180036c00
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
lea rcx, [0x1801bdcc0]
call fcn.180036aa0
movss xmm0, dword [rax]
mulss xmm0, xmm13
cvttss2si eax, xmm6
movzx edx, al
cvttss2si eax, xmm0
movzx ecx, al
sub ecx, edx
movd xmm4, ecx
cvtdq2ps xmm4, xmm4
movss xmm2, dword [rbp - 0x60]
mulss xmm4, xmm2
movd xmm0, edx
cvtdq2ps xmm0, xmm0
addss xmm4, xmm0
movzx eax, bl
sub eax, 0xc8
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mulss xmm3, xmm2
addss xmm3, xmm14
movzx eax, dil
sub eax, 0xc8
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm2
addss xmm1, xmm14
lea eax, [rsi - 0xc8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
addss xmm0, xmm14
mov r10, qword [0x1801b42e8]
cvttss2si eax, xmm0
movzx r9d, al
shl r9d, 8
cvttss2si eax, xmm1
movzx ecx, al
or r9d, ecx
shl r9d, 8
cvttss2si eax, xmm3
movzx ecx, al
or r9d, ecx
shl r9d, 8
cvttss2si eax, xmm4
movzx r8d, al
or r9d, r8d
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 0
lea rax, [rbp + 0x68]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
movaps xmm3, xmm7
movaps xmm2, xmm8
mov rdx, qword [r10 + 0x78]
mov rcx, r10
call fcn.18008dbe0
nop
lea rcx, [rbp + 0x68]
call fcn.1800304d0
nop
lea rcx, [rbp + 0x30]
call fcn.1800304d0
nop
lea rcx, [rbp + 0x50]
call fcn.18003bfe0
inc r15d
mov r9, qword [r14 + 8]
movsxd rsi, r15d
cmp rsi, qword [r9 + 0xf8]
jb 0x18003ebb0
mov rax, qword [r14 + 0x30]
movss xmm2, dword [rax]
mov rcx, qword [r14]
cvttss2si r10d, xmm2
mov rax, qword [r14 + 0x28]
movss xmm1, dword [rax]
mulss xmm1, dword [r9 + 0x10c]
movss xmm0, dword [rcx + 4]
addss xmm0, dword [0x1800fe264]
addss xmm1, xmm0
subss xmm1, xmm2
cvttss2si r8d, xmm1
movss xmm0, dword [r9 + 0x20]
addss xmm0, dword [rcx]
subss xmm0, xmm15
cvttss2si edx, xmm0
mov dword [rsp + 0x38], r12d
movss dword [rsp + 0x30], xmm9
mov eax, dword [0x1801bdcb4]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
mov r9d, 3
mov rcx, qword [0x1801b42e8]
call fcn.18008e580
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1800921e0
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
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 xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.180030260
nop
call fcn.18003bdb0
nop
call fcn.180030260
int3
add rcx, 8
jmp 0x18003e8a0