Function at 0x14002a940
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x100
mov rsi, qword [rsp + 0x168]
mov rdi, rdx
mov rbx, qword [rsp + 0x160]
mov rbp, rcx
movaps xmmword [rsp + 0xc0], xmm8
movaps xmm8, xmm2
movaps xmmword [rsp + 0x60], xmm14
movaps xmmword [rsp + 0x50], xmm15
test rsi, rsi
jne 0x14002a9a4
mov rsi, 0xffffffffffffffff
nop dword [rax]
inc rsi
cmp byte [rbx + rsi], 0
jne 0x14002a990
add rsi, rbx
mov qword [rsp + 0x168], rsi
cvttss2si eax, dword [r9]
mov r14, qword [rsp + 0x158]
movd xmm14, eax
cvttss2si eax, dword [r9 + 4]
cvtdq2ps xmm14, xmm14
movd xmm15, eax
cvtdq2ps xmm15, xmm15
comiss xmm15, dword [r14 + 0xc]
ja 0x14002b366
mov qword [rsp + 0xf0], r15
xorps xmm0, xmm0
movaps xmmword [rsp + 0xe0], xmm6
movaps xmm6, xmm14
movaps xmmword [rsp + 0xd0], xmm7
movss xmm7, dword [rsp + 0x170]
movaps xmmword [rsp + 0xb0], xmm9
movss xmm9, dword [rcx + 0x14]
divss xmm8, xmm9
comiss xmm7, xmm0
movss xmm0, dword [r14 + 4]
mulss xmm9, xmm8
seta r15b
movss dword [rsp + 0x34], xmm6
movss dword [rsp + 0x140], xmm8
movaps xmm1, xmm9
movss dword [rsp + 0x38], xmm9
addss xmm1, xmm15
mov byte [rsp + 0x158], r15b
comiss xmm0, xmm1
jbe 0x14002aae6
cmp rbx, rsi
jae 0x14002aae6
mov r8, rsi
mov edx, 0xa
sub r8, rbx
mov rcx, rbx
call sub.VCRUNTIME140.dll_memchr
test r15b, r15b
je 0x14002aabd
test rax, rax
movss dword [rsp + 0x20], xmm7
mov r9, rsi
mov r8, rbx
cmovne r9, rax
movaps xmm1, xmm8
mov rcx, rbp
call fcn.14002a590
mov rbx, rax
cmp rax, rsi
jae 0x14002aab3
nop dword [rax + rax]
movzx eax, byte [rbx]
cmp al, 0x20
je 0x14002aaab
cmp al, 9
jne 0x14002aab3
inc rbx
cmp rbx, rsi
jb 0x14002aaa0
cmp byte [rbx], 0xa
jne 0x14002aac9
inc rbx
jmp 0x14002aac9
lea rbx, [rax + 1]
test rax, rax
jne 0x14002aac9
mov rbx, rsi
movss xmm0, dword [r14 + 4]
addss xmm15, xmm9
movaps xmm1, xmm9
addss xmm1, xmm15
comiss xmm0, xmm1
ja 0x14002aa53
mov rax, rsi
sub rax, rbx
cmp rax, 0x2710
jle 0x14002ab59
test r15b, r15b
jne 0x14002ab59
movss xmm7, dword [r14 + 0xc]
mov rax, rbx
comiss xmm7, xmm15
movaps xmm6, xmm15
jbe 0x14002ab3f
nop dword [rax]
cmp rax, rsi
jae 0x14002ab3f
mov r8, rsi
mov edx, 0xa
sub r8, rax
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x14002ab32
inc rax
jmp 0x14002ab35
mov rax, rsi
addss xmm6, xmm9
comiss xmm7, xmm6
ja 0x14002ab10
movss xmm6, dword [rsp + 0x34]
mov rsi, rax
movss xmm7, dword [rsp + 0x170]
mov qword [rsp + 0x168], rax
cmp rbx, rsi
je 0x14002b345
mov eax, dword [rdi + 0x10]
mov r8d, esi
sub r8d, ebx
mov qword [rsp + 0x130], r12
mov rcx, rdi
mov qword [rsp + 0xf8], r13
lea edx, [r8 + r8*2]
shl edx, 2
lea r8d, [r8*8]
add eax, edx
mov dword [rsp + 0x3c], eax
call fcn.140025610
mov r8, qword [rsp + 0x138]
xor r13d, r13d
mov eax, dword [rsp + 0x150]
or eax, 0xffffff
mov dword [rsp + 0x30], eax
mov rdi, qword [r8 + 0x40]
mov r15, qword [r8 + 0x48]
mov r12d, dword [r8 + 0x34]
cmp rbx, rsi
jae 0x14002b2e2
movaps xmmword [rsp + 0xa0], xmm10
movaps xmmword [rsp + 0x90], xmm11
movaps xmmword [rsp + 0x80], xmm12
movaps xmmword [rsp + 0x70], xmm13
movss xmm13, dword [rsp + 0x168]
cmp byte [rsp + 0x158], 0
je 0x14002ac74
test r13, r13
jne 0x14002ac2c
movaps xmm1, xmm14
movaps xmm0, xmm7
subss xmm1, xmm6
mov r9, rsi
mov r8, rbx
mov rcx, rbp
subss xmm0, xmm1
movaps xmm1, xmm8
movss dword [rsp + 0x20], xmm0
call fcn.14002a590
mov r13, rax
cmp rbx, r13
jb 0x14002ac74
addss xmm15, xmm9
movaps xmm14, xmm6
comiss xmm15, dword [r14 + 0xc]
ja 0x14002b2b9
xor r13d, r13d
cmp rbx, rsi
jae 0x14002ac63
nop dword [rax]
movzx eax, byte [rbx]
cmp al, 0x20
je 0x14002ac5b
cmp al, 9
jne 0x14002ac63
inc rbx
cmp rbx, rsi
jb 0x14002ac50
cmp byte [rbx], 0xa
jne 0x14002b29a
inc rbx
jmp 0x14002b29a
movsx ecx, byte [rbx]
mov dword [rsp + 0x148], ecx
cmp ecx, 0x80
jae 0x14002ac8b
inc rbx
jmp 0x14002acab
mov r8, rsi
lea rcx, [rsp + 0x148]
mov rdx, rbx
call fcn.14000a830
movsxd rcx, eax
add rbx, rcx
mov ecx, dword [rsp + 0x148]
cmp ecx, 0x20
jae 0x14002acd7
cmp ecx, 0xa
jne 0x14002acce
addss xmm15, xmm9
movaps xmm14, xmm6
comiss xmm15, dword [r14 + 0xc]
ja 0x14002b2b9
jmp 0x14002b29a
cmp ecx, 0xd
je 0x14002b29a
movabs r8, 0x100000001b3
movzx edx, cl
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movzx eax, byte [rsp + 0x149]
imul rdx, r8
xor rdx, rax
movzx eax, byte [rsp + 0x14a]
imul rdx, r8
xor rdx, rax
movzx eax, byte [rsp + 0x14b]
imul rdx, r8
xor rdx, rax
imul rdx, r8
mov r8, qword [0x1401b73e8]
and rdx, qword [0x1401b7400]
add rdx, rdx
mov rax, qword [r8 + rdx*8 + 8]
cmp rax, qword [0x1401b73d8]
je 0x14002ad60
mov r8, qword [r8 + rdx*8]
cmp ecx, dword [rax + 0x10]
je 0x14002ad62
nop word [rax + rax]
cmp rax, r8
je 0x14002ad60
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x14002ad50
jmp 0x14002ad62
xor eax, eax
test rax, rax
jne 0x14002afc7
movsxd rax, dword [rbp + 0x18]
mov edx, ecx
cmp rdx, rax
jb 0x14002ad7c
mov rax, qword [rbp + 0x38]
jmp 0x14002ad9a
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + rdx*4]
cmp ecx, 0xffffffff
jne 0x14002ad8e
mov rax, qword [rbp + 0x38]
jmp 0x14002ad9a
mov rax, qword [rbp + 0x30]
lea rcx, [rcx + rcx*4]
lea rax, [rax + rcx*8]
test rax, rax
je 0x14002b29a
mov ecx, dword [rax]
movaps xmm13, xmm8
mulss xmm13, dword [rax + 4]
test cl, 2
je 0x14002b28b
movss xmm12, dword [r14 + 8]
movaps xmm6, xmm8
mulss xmm6, dword [rax + 8]
movaps xmm3, xmm8
mulss xmm3, dword [rax + 0x10]
movaps xmm5, xmm8
mulss xmm5, dword [rax + 0xc]
addss xmm6, xmm14
movaps xmm4, xmm8
addss xmm3, xmm14
mulss xmm4, dword [rax + 0x14]
comiss xmm12, xmm6
addss xmm5, xmm15
addss xmm4, xmm15
jb 0x14002b28b
movss xmm7, dword [r14]
comiss xmm3, xmm7
jb 0x14002b28b
cmp byte [rsp + 0x178], 0
movss xmm10, dword [rax + 0x18]
movss xmm11, dword [rax + 0x1c]
movss xmm8, dword [rax + 0x20]
movss xmm9, dword [rax + 0x24]
je 0x14002af18
comiss xmm7, xmm6
jbe 0x14002ae6c
movss xmm1, dword [0x14019005c]
movaps xmm0, xmm3
subss xmm0, xmm6
movaps xmm2, xmm3
subss xmm2, xmm7
movaps xmm6, xmm7
divss xmm2, xmm0
movaps xmm0, xmm8
subss xmm0, xmm10
subss xmm1, xmm2
mulss xmm1, xmm0
addss xmm10, xmm1
movss xmm7, dword [r14 + 4]
comiss xmm7, xmm5
jbe 0x14002aeaa
movss xmm1, dword [0x14019005c]
movaps xmm0, xmm4
subss xmm0, xmm5
movaps xmm2, xmm4
subss xmm2, xmm7
movaps xmm5, xmm7
divss xmm2, xmm0
movaps xmm0, xmm9
subss xmm0, xmm11
subss xmm1, xmm2
mulss xmm1, xmm0
addss xmm11, xmm1
comiss xmm3, xmm12
jbe 0x14002aedb
movaps xmm0, xmm8
subss xmm3, xmm6
movaps xmm1, xmm12
subss xmm0, xmm10
subss xmm1, xmm6
divss xmm1, xmm3
movaps xmm3, xmm12
movaps xmm8, xmm1
mulss xmm8, xmm0
addss xmm8, xmm10
movss xmm2, dword [r14 + 0xc]
comiss xmm4, xmm2
jbe 0x14002af0f
movaps xmm0, xmm9
subss xmm4, xmm5
movaps xmm1, xmm2
subss xmm0, xmm11
subss xmm1, xmm5
divss xmm1, xmm4
movaps xmm4, xmm2
movaps xmm9, xmm1
mulss xmm9, xmm0
addss xmm9, xmm11
comiss xmm5, xmm4
jae 0x14002b28b
mov eax, dword [rsp + 0x150]
test cl, 1
movss dword [rdi], xmm6
cmovne eax, dword [rsp + 0x30]
mov dword [rdi + 0x10], eax
mov dword [rdi + 0x24], eax
mov dword [rdi + 0x38], eax
mov dword [rdi + 0x4c], eax
lea eax, [r12 + 1]
movss dword [rdi + 4], xmm5
movss dword [rdi + 8], xmm10
movss dword [rdi + 0xc], xmm11
movss dword [rdi + 0x14], xmm3
movss dword [rdi + 0x18], xmm5
movss dword [rdi + 0x1c], xmm8
movss dword [rdi + 0x20], xmm11
movss dword [rdi + 0x28], xmm3
movss dword [rdi + 0x2c], xmm4
movss dword [rdi + 0x30], xmm8
movss dword [rdi + 0x34], xmm9
movss dword [rdi + 0x3c], xmm6
movss dword [rdi + 0x40], xmm4
movss dword [rdi + 0x44], xmm10
movss dword [rdi + 0x48], xmm9
add rdi, 0x50
mov word [r15 + 2], ax
lea eax, [r12 + 2]
mov word [r15 + 4], ax
mov word [r15 + 8], ax
lea eax, [r12 + 3]
mov word [r15], r12w
mov word [r15 + 6], r12w
add r12d, 4
mov word [r15 + 0xa], ax
add r15, 0xc
jmp 0x14002b28b
lea r8, [rsp + 0x148]
lea rdx, [rsp + 0x40]
call fcn.14002c4c0
xor r8d, r8d
mov r9, qword [rax]
mov rax, qword [r9 + 0x20]
sub rax, qword [r9 + 0x18]
sar rax, 2
test rax, rax
je 0x14002b28b
mov r10d, dword [rsp + 0x148]
mov esi, dword [rsp + 0x30]
movsxd rax, dword [rbp + 0x18]
lea ecx, [r8 + r10]
cmp rcx, rax
jb 0x14002b013
mov rax, qword [rbp + 0x38]
jmp 0x14002b031
mov rax, qword [rbp + 0x20]
mov edx, dword [rax + rcx*4]
cmp edx, 0xffffffff
jne 0x14002b025
mov rax, qword [rbp + 0x38]
jmp 0x14002b031
mov rax, qword [rbp + 0x30]
lea rcx, [rdx + rdx*4]
lea rax, [rax + rcx*8]
test rax, rax
je 0x14002b26b
mov ecx, dword [rax]
movaps xmm13, xmm8
mulss xmm13, dword [rax + 4]
test cl, 2
je 0x14002b26b
movaps xmm7, xmm8
movaps xmm3, xmm8
mulss xmm7, dword [rax + 8]
movaps xmm6, xmm8
mulss xmm3, dword [rax + 0x10]
movaps xmm4, xmm8
mulss xmm6, dword [rax + 0xc]
addss xmm7, xmm14
mulss xmm4, dword [rax + 0x14]
addss xmm3, xmm14
movss xmm8, dword [r14 + 8]
addss xmm6, xmm15
comiss xmm8, xmm7
addss xmm4, xmm15
jb 0x14002b261
movss xmm5, dword [r14]
comiss xmm3, xmm5
jb 0x14002b261
cmp byte [rsp + 0x178], 0
movss xmm11, dword [rax + 0x18]
movss xmm12, dword [rax + 0x1c]
movss xmm9, dword [rax + 0x20]
movss xmm10, dword [rax + 0x24]
je 0x14002b1b5
comiss xmm5, xmm7
jbe 0x14002b103
movss xmm1, dword [0x14019005c]
movaps xmm0, xmm3
subss xmm0, xmm7
movaps xmm2, xmm3
subss xmm2, xmm5
movaps xmm7, xmm5
divss xmm2, xmm0
movaps xmm0, xmm9
subss xmm0, xmm11
subss xmm1, xmm2
mulss xmm1, xmm0
addss xmm11, xmm1
movss xmm5, dword [r14 + 4]
comiss xmm5, xmm6
jbe 0x14002b141
movss xmm1, dword [0x14019005c]
movaps xmm0, xmm4
subss xmm0, xmm6
movaps xmm2, xmm4
subss xmm2, xmm5
movaps xmm6, xmm5
divss xmm2, xmm0
movaps xmm0, xmm10
subss xmm0, xmm12
subss xmm1, xmm2
mulss xmm1, xmm0
addss xmm12, xmm1
comiss xmm3, xmm8
jbe 0x14002b172
movaps xmm0, xmm9
subss xmm3, xmm7
movaps xmm1, xmm8
subss xmm0, xmm11
subss xmm1, xmm7
divss xmm1, xmm3
movaps xmm3, xmm8
movaps xmm9, xmm1
mulss xmm9, xmm0
addss xmm9, xmm11
movss xmm2, dword [r14 + 0xc]
comiss xmm4, xmm2
jbe 0x14002b1a6
movaps xmm0, xmm10
subss xmm4, xmm6
movaps xmm1, xmm2
subss xmm0, xmm12
subss xmm1, xmm6
divss xmm1, xmm4
movaps xmm4, xmm2
movaps xmm10, xmm1
mulss xmm10, xmm0
addss xmm10, xmm12
comiss xmm6, xmm4
jb 0x14002b1b5
addss xmm14, xmm13
jmp 0x14002b261
test cl, 1
je 0x14002b1be
mov eax, esi
jmp 0x14002b1c6
mov rax, qword [r9 + 0x18]
mov eax, dword [rax + r8*4]
mov dword [rdi + 0x10], eax
mov dword [rdi + 0x24], eax
mov dword [rdi + 0x38], eax
mov dword [rdi + 0x4c], eax
lea eax, [r12 + 1]
movss dword [rdi], xmm7
movss dword [rdi + 4], xmm6
movss dword [rdi + 8], xmm11
movss dword [rdi + 0xc], xmm12
movss dword [rdi + 0x14], xmm3
movss dword [rdi + 0x18], xmm6
movss dword [rdi + 0x1c], xmm9
movss dword [rdi + 0x20], xmm12
movss dword [rdi + 0x28], xmm3
movss dword [rdi + 0x2c], xmm4
movss dword [rdi + 0x30], xmm9
movss dword [rdi + 0x34], xmm10
movss dword [rdi + 0x3c], xmm7
movss dword [rdi + 0x40], xmm4
movss dword [rdi + 0x44], xmm11
movss dword [rdi + 0x48], xmm10
add rdi, 0x50
mov word [r15 + 2], ax
lea eax, [r12 + 2]
mov word [r15 + 4], ax
mov word [r15 + 8], ax
lea eax, [r12 + 3]
mov word [r15], r12w
mov word [r15 + 6], r12w
add r12d, 4
mov word [r15 + 0xa], ax
add r15, 0xc
movss xmm8, dword [rsp + 0x140]
mov rax, qword [r9 + 0x20]
inc r8
sub rax, qword [r9 + 0x18]
sar rax, 2
cmp r8, rax
jb 0x14002b000
mov rsi, qword [rsp + 0x168]
movss xmm8, dword [rsp + 0x140]
addss xmm14, xmm13
movss xmm9, dword [rsp + 0x38]
movss xmm6, dword [rsp + 0x34]
movss xmm7, dword [rsp + 0x170]
cmp rbx, rsi
jb 0x14002abf3
mov r8, qword [rsp + 0x138]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm11, xmmword [rsp + 0x90]
movaps xmm10, xmmword [rsp + 0xa0]
mov r13, qword [rsp + 0xf8]
mov rcx, rdi
sub rcx, qword [r8 + 0x28]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, dword [r8]
mov dword [r8 + 0x20], edx
mov rdx, r15
sub rdx, qword [r8 + 0x18]
sar rdx, 1
mov dword [r8 + 0x10], edx
sub edx, dword [rsp + 0x3c]
imul rcx, rax, 0x38
mov rax, qword [r8 + 8]
add dword [rcx + rax - 0x18], edx
mov dword [r8 + 0x34], r12d
mov r12, qword [rsp + 0x130]
mov qword [r8 + 0x40], rdi
mov qword [r8 + 0x48], r15
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm6, xmmword [rsp + 0xe0]
mov r15, qword [rsp + 0xf0]
movaps xmm9, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm14, xmmword [rsp + 0x60]
movaps xmm15, xmmword [rsp + 0x50]
add rsp, 0x100
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret