Function at 0x1400228a0
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x68]
sub rsp, 0x130
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm14
mov rax, qword [0x14010b040]
xor rax, rsp
mov qword [rbp - 0x58], rax
mov byte [rsp + 0x51], r9b
mov rsi, r8
mov r15, rdx
mov rbx, qword [0x14039a558]
mov rax, qword [rbx + 0x3ed8]
mov byte [rax + 0xb8], 1
mov r12, qword [rbx + 0x3ed8]
movsxd r8, dword [r12 + 0xf0]
mov rax, qword [r12 + 0xf8]
mov r8d, dword [rax + r8*4 - 4]
xor edx, edx
mov rcx, rsi
call fcn.140025f00
mov edi, eax
mov dword [rbp - 0x60], edi
mov rax, qword [r12]
cmp dword [rax + 0x3f20], edi
jne 0x14002296a
mov r8, rsi
mov edx, 0xb
mov ecx, edi
call fcn.14003db70
mov rbx, qword [0x14039a558]
mov rcx, rsi
cmp rsi, 0xffffffffffffffff
jae 0x140022990
movzx edx, byte [rcx]
test dl, dl
je 0x140022990
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x140022987
cmp byte [rax], dl
je 0x140022990
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x140022973
movss xmm11, dword [rbx + 0x3c38]
movss xmm8, dword [0x1400f97f8]
movss xmm9, dword [0x1400f97dc]
cmp rsi, rcx
je 0x1400229df
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rsi
movss dword [rsp + 0x20], xmm8
movaps xmm3, xmm9
movaps xmm2, xmm11
lea rdx, [rbp - 0x70]
mov rcx, qword [rbx + 0x3c30]
call fcn.14004e490
movss xmm11, dword [rbp - 0x6c]
movss xmm0, dword [r12 + 0x100]
movss xmm10, dword [r12 + 0x104]
mov rax, qword [rbx + 0x3ed8]
movaps xmm6, xmm10
addss xmm6, dword [0x1400f9718]
movaps xmm7, xmm0
addss xmm7, dword [rax + 0x28]
movss dword [rbp - 0x80], xmm0
movss dword [rbp - 0x7c], xmm10
movss dword [rbp - 0x78], xmm7
movss dword [rbp - 0x74], xmm6
mov rax, qword [rbx + 0x58]
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx + 0x20]
mov qword [rsp + 0x30], 0
lea rax, [0x1400f3058]
mov qword [rsp + 0x28], rax
xorps xmm12, xmm12
movss dword [rsp + 0x20], xmm12
movaps xmm3, xmm9
movss xmm2, dword [rcx + 0x14]
lea rdx, [rbp - 0x70]
call fcn.14004e490
addss xmm10, xmm6
movss xmm14, dword [0x1400f9570]
mulss xmm10, xmm14
movss xmm1, dword [rbp - 0x6c]
mulss xmm1, xmm14
movaps xmm2, xmm10
addss xmm2, xmm1
movss xmm0, dword [rbp - 0x70]
mulss xmm0, xmm14
subss xmm7, dword [0x1400f9700]
movaps xmm3, xmm7
addss xmm3, xmm0
subss xmm10, xmm1
subss xmm7, xmm0
movss dword [rsp + 0x70], xmm7
movss dword [rsp + 0x74], xmm10
movss dword [rsp + 0x78], xmm3
movss dword [rsp + 0x7c], xmm2
xor r14b, r14b
mov rax, qword [rbx + 0x3ed8]
maxss xmm10, dword [rax + 0x23c]
maxss xmm7, dword [rax + 0x238]
minss xmm2, dword [rax + 0x244]
minss xmm3, dword [rax + 0x240]
movss xmm1, dword [rbx + 0x3858]
addss xmm2, xmm1
movss xmm0, dword [rbx + 0x3854]
addss xmm3, xmm0
subss xmm10, xmm1
subss xmm7, xmm0
movss xmm1, dword [rbx + 0xe08]
comiss xmm1, xmm7
jb 0x140022b4d
movss xmm0, dword [rbx + 0xe0c]
comiss xmm0, xmm10
jb 0x140022b4d
comiss xmm3, xmm1
jbe 0x140022b4d
comiss xmm2, xmm0
jbe 0x140022b4d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.140033c20
movzx r14d, r14b
mov ecx, 1
test al, al
cmovne r14d, ecx
mov r13, qword [r12 + 0x298]
xor r9d, r9d
xor r8d, r8d
mov edx, edi
lea rcx, [rbp - 0x80]
call fcn.140035b10
movss xmm2, dword [rbp - 0x74]
subss xmm2, dword [0x1400f96a0]
subss xmm2, dword [rbp - 0x7c]
movss xmm0, dword [rbp - 0x78]
subss xmm0, dword [rbp - 0x80]
movss dword [rbp - 0x70], xmm0
movss dword [rbp - 0x6c], xmm2
movaps xmm1, xmm8
lea rcx, [rbp - 0x70]
call fcn.1400359a0
xor ebx, ebx
mov dword [rsp + 0x20], ebx
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x68]
mov edx, edi
lea rcx, [rbp - 0x80]
call fcn.140054d40
mov byte [rsp + 0x50], al
mov ecx, 4
mov rax, qword gs:[0x58]
mov rax, qword [rax]
mov eax, dword [rcx + rax]
cmp dword [0x14039cd60], eax
jle 0x140022c9c
lea rcx, [0x14039cd60]
call fcn.1400cca28
cmp dword [0x14039cd60], 0xffffffff
jne 0x140022c9c
xorps xmm0, xmm0
movups xmmword [0x14039ce00], xmm0
movups xmmword [0x14039ce10], xmm0
movups xmmword [0x14039ce20], xmm0
movups xmmword [0x14039ce30], xmm0
mov dword [0x14039ce00], ebx
mov qword [0x14039ce08], rbx
mov qword [0x14039ce10], rbx
mov ecx, 0x20
call fcn.1400cc600
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [0x14039ce08], rax
mov qword [0x14039ce18], rbx
xorps xmm0, xmm0
movdqa xmmword [0x14039ce20], xmm0
mov qword [0x14039ce30], 7
mov qword [0x14039ce38], 8
mov dword [0x14039ce00], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [0x14039ce18]
call fcn.140023180
nop
lea rcx, [0x1400d36e0]
call fcn.1400cc934
nop
lea rcx, [0x14039cd60]
call fcn.1400cc9bc
movzx ecx, dil
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx r12d, byte [rbp - 0x5f]
xor rcx, r12
imul rcx, rdx
movzx eax, byte [rbp - 0x5e]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp - 0x5d]
xor rcx, rax
imul rcx, rdx
and rcx, qword [0x14039ce30]
add rcx, rcx
mov rdx, qword [0x14039ce18]
mov rax, qword [rdx + rcx*8 + 8]
mov r8, qword [0x14039ce08]
cmp rax, r8
je 0x140022d18
mov rdx, qword [rdx + rcx*8]
cmp edi, dword [rax + 0x10]
je 0x140022d1b
cmp rax, rdx
je 0x140022d18
mov rax, qword [rax + 8]
cmp edi, dword [rax + 0x10]
jne 0x140022d08
jmp 0x140022d1b
mov rax, rbx
mov rbx, r8
test rax, rax
cmovne rbx, rax
cmp rbx, r8
jne 0x140022dd9
mov dword [rbp - 0x70], edi
mov dword [rbp - 0x6c], 0
mov word [rbp - 0x68], 0
mov byte [rbp - 0x66], 0
movzx eax, byte [rbp - 0x69]
mov byte [rbp - 0x65], al
lea r8, [rbp - 0x70]
lea rdx, [rsp + 0x58]
call fcn.1400232c0
movzx ecx, dil
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
xor rcx, r12
imul rcx, rdx
movzx eax, byte [rbp - 0x5e]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp - 0x5d]
xor rcx, rax
imul rcx, rdx
and rcx, qword [0x14039ce30]
add rcx, rcx
mov rdx, qword [0x14039ce18]
mov rax, qword [rdx + rcx*8 + 8]
mov rbx, qword [0x14039ce08]
cmp rax, rbx
je 0x140022dd0
mov rdx, qword [rdx + rcx*8]
cmp edi, dword [rax + 0x10]
je 0x140022dd2
nop
cmp rax, rdx
je 0x140022dd0
mov rax, qword [rax + 8]
cmp edi, dword [rax + 0x10]
jne 0x140022dc0
jmp 0x140022dd2
xor eax, eax
test rax, rax
cmovne rbx, rax
cmp byte [rsp + 0x51], 0
je 0x140022dea
movss xmm2, dword [0x1400f95ac]
jmp 0x140022dee
movaps xmm2, xmm12
subss xmm2, dword [rbx + 0x14]
mulss xmm2, dword [0x1400f9534]
addss xmm2, dword [rbx + 0x14]
movss dword [rbx + 0x14], xmm2
test r14b, r14b
je 0x140022e14
cmp byte [rbx + 0x1a], 0
sete al
mov byte [rbx + 0x1a], al
mov dword [rsp + 0x58], 0x3e34b4b5
mov dword [rsp + 0x5c], 0x3e5cdcdd
mov dword [rsp + 0x60], 0x3e8c8c8d
movss dword [rsp + 0x64], xmm2
movss xmm1, dword [rbp - 0x78]
movss dword [rbp - 0x70], xmm1
movss xmm7, dword [rbp - 0x74]
movss dword [rbp - 0x6c], xmm7
movss xmm9, dword [rbp - 0x80]
movss dword [rbp - 0x60], xmm9
movss xmm8, dword [rbp - 0x7c]
movss dword [rbp - 0x5c], xmm8
mov rax, qword [0x14039a558]
mov r10, qword [rax + 0x3ed8]
lea rcx, [rsp + 0x58]
call fcn.140026490
mov r9d, eax
mov dword [rsp + 0x28], 0
movss dword [rsp + 0x20], xmm12
lea r8, [rbp - 0x70]
lea rdx, [rbp - 0x60]
mov rcx, qword [r10 + 0x298]
call fcn.140049800
movd xmm0, dword [0x140399058]
cvtdq2ps xmm0, xmm0
movss xmm10, dword [0x1400f9790]
divss xmm0, xmm10
movss dword [rsp + 0x58], xmm0
movd xmm0, dword [0x14039905c]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm10
movss dword [rsp + 0x5c], xmm0
movd xmm1, dword [0x140399060]
cvtdq2ps xmm1, xmm1
divss xmm1, xmm10
movss dword [rsp + 0x60], xmm1
mov rax, qword [0x14039a558]
movss xmm0, dword [rax + 0x37f0]
mulss xmm0, dword [rbx + 0x14]
movss dword [rsp + 0x64], xmm0
movaps xmm6, xmm9
addss xmm6, dword [0x1400f95ac]
lea rcx, [rsp + 0x58]
call fcn.140026490
mov r8d, eax
movss dword [rsp + 0x20], xmm12
mov r9b, 1
unpcklps xmm6, xmm7
movq rdx, xmm6
movaps xmm1, xmm9
unpcklps xmm1, xmm8
movq rcx, xmm1
call fcn.1400278b0
addss xmm9, dword [0x1400f96e4]
addss xmm8, xmm7
mulss xmm8, xmm14
mulss xmm11, xmm14
subss xmm8, xmm11
mov r9b, 1
xor r8d, r8d
mov rdx, rsi
unpcklps xmm9, xmm8
movq rcx, xmm9
call fcn.140026d20
movzx eax, byte [rbx + 0x1a]
lea r9, [0x1400f3038]
test al, al
lea rcx, [0x1400f3058]
cmovne r9, rcx
mov r8, qword [0x14039a558]
lea rcx, [rsp + 0x58]
je 0x140022feb
movd xmm0, dword [0x140399058]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm10
movss dword [rsp + 0x58], xmm0
movd xmm1, dword [0x14039905c]
cvtdq2ps xmm1, xmm1
divss xmm1, xmm10
movss dword [rsp + 0x5c], xmm1
movd xmm0, dword [0x140399060]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm10
movss dword [rsp + 0x60], xmm0
movss xmm0, dword [r8 + 0x37f0]
movss dword [rsp + 0x64], xmm0
jmp 0x140023012
mov dword [rsp + 0x58], 0x3ee8e8e9
mov dword [rsp + 0x5c], 0x3f018182
mov dword [rsp + 0x60], 0x3f149495
movss xmm1, dword [r8 + 0x37f0]
movss dword [rsp + 0x64], xmm1
call fcn.140026490
mov r10d, eax
mov rax, qword [r8 + 0x58]
mov rcx, qword [rax + 0x60]
mov rcx, qword [rcx + 0x20]
movss xmm2, dword [rcx + 0x14]
test r10d, 0xff000000
je 0x1400230af
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [r9 + r8], 0
jne 0x140023040
add r8, r9
cmp r9, r8
je 0x1400230af
test rcx, rcx
jne 0x14002305f
mov rax, qword [r13 + 0x38]
mov rcx, qword [rax + 8]
ucomiss xmm2, xmm12
jp 0x140023070
jne 0x140023070
mov rax, qword [r13 + 0x38]
movss xmm2, dword [rax + 0x10]
movups xmm0, xmmword [r13 + 0x88]
movups xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm12
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r9
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r10d
lea r9, [rsp + 0x70]
mov rdx, r13
call fcn.14004e6b0
mov ecx, dword [rbx + 0x14]
mov dword [r15], ecx
movzx eax, byte [rsp + 0x50]
mov byte [r15 + 4], al
mov byte [r15 + 5], r14b
movzx ecx, byte [rbx + 0x1a]
mov byte [r15 + 6], cl
mov rax, r15
mov rcx, qword [rbp - 0x58]
xor rcx, rsp
call fcn.1400cc5e0
lea r11, [rsp + 0x130]
mov rbx, 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 xmm14, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret