Function at 0x1401f32f0
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 - 0x338]
sub rsp, 0x410
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
mov rax, qword [0x1402f2018]
xor rax, rsp
mov qword [rbp + 0x2a0], rax
mov rsi, rcx
xor r15d, r15d
mov rax, qword [rcx + 0x198]
movd xmm1, dword [rax + 0x2b0]
cvtdq2ps xmm1, xmm1
call fcn.1401c2e00
mov rbx, rax
mov qword [rsi + 0xa8], rax
test rax, rax
je 0x1401f3dcf
cmp byte [rax + 0xa7], r15b
je 0x1401f3dcf
mov rcx, rax
call fcn.14006a560
test al, al
jne 0x1401f3dcf
cmp byte [rbx + 0xa5], r15b
je 0x1401f3dcf
cmp byte [rbx + 0xa4], r15b
je 0x1401f3dcf
mov rbx, qword [rsi + 0xa8]
test rbx, rbx
je 0x1401f3dcf
cmp byte [rbx + 0xa7], r15b
je 0x1401f3dcf
mov rcx, rbx
call fcn.14006a560
test al, al
jne 0x1401f3dcf
cmp byte [rbx + 0xa5], r15b
je 0x1401f3dcf
cmp byte [rbx + 0xa4], r15b
je 0x1401f3dcf
mov rdx, qword [0x1402fb580]
cmp dword [rdx + 0x3e0], r15d
jbe 0x1401f3411
cmp dword [rdx + 0x3dc], r15d
je 0x1401f3dcf
movss xmm0, dword [0x1402fb3b0]
comiss xmm0, dword [rdx + 0x3e8]
jb 0x1401f3dcf
mov eax, dword [rdx + 0x3d8]
test eax, eax
je 0x1401f3dcf
dec eax
movss xmm0, dword [rdx + 0x30]
comiss xmm0, dword [rdx + rax*4 + 0x410]
jb 0x1401f3dcf
mov rax, qword [rsi + 0x110]
cmp byte [rax + 0x2b0], r15b
je 0x1401f3dcf
mov rax, qword [rsi + 0xa8]
movsd xmm0, qword [rax + 8]
movss xmm1, dword [rdx + 8]
movsd qword [rsp + 0x60], xmm0
subss xmm1, xmm0
movss xmm2, dword [rdx + 0x10]
subss xmm2, dword [rax + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x1401f349f
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x1401f34a7
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov rax, qword [rsi + 0x198]
movd xmm1, dword [rax + 0x2b0]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1401f3dcf
call fcn.14013e9d0
mov r12, qword [rax]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x20], rcx
cmp r12, rcx
je 0x1401f3dcf
mov rdi, 0xffffffffffffffff
movss xmm9, dword [0x1402c1a48]
xorps xmm11, xmm11
movss xmm10, dword [0x1402c1930]
mov rax, rcx
nop dword [rax]
mov ecx, dword [r12 + 0x1c]
cmp ecx, 0x12c
je 0x1401f3d8d
mov rax, qword [0x1402fb580]
mov edx, dword [rax + 0x1c]
cmp edx, 0x12c
je 0x1401f3d88
cmp ecx, edx
je 0x1401f3d88
inc rdi
mov qword [rbp - 0x60], rdi
mov rbx, qword [rsi + 0xa8]
test rbx, rbx
je 0x1401f3d88
cmp byte [rbx + 0xa7], 0
je 0x1401f3d88
mov rcx, rbx
call fcn.14006a560
test al, al
jne 0x1401f3d88
cmp byte [rbx + 0xa5], al
je 0x1401f3d88
cmp byte [rbx + 0xa4], al
je 0x1401f3d88
cmp byte [r12 + 0xa7], al
je 0x1401f3d88
mov rcx, r12
call fcn.14006a560
test al, al
jne 0x1401f3d88
cmp byte [r12 + 0xa5], al
je 0x1401f3d88
cmp byte [r12 + 0xa4], al
je 0x1401f3d88
mov rax, qword [rsi + rdi*8 + 8]
movzx ecx, byte [rax + 0x2b0]
cmp cl, 0xa
jae 0x1401f3d88
test cl, cl
je 0x1401f3d88
mov rcx, qword [rsi + 0xa8]
mov eax, dword [r12 + 0x18]
cmp dword [rcx + 0x18], eax
jne 0x1401f3d88
call fcn.14013e9d0
mov rcx, qword [rsi + 0xa8]
movsd xmm0, qword [rcx + 8]
movsd qword [rsp + 0x40], xmm0
mov ecx, dword [rcx + 0x10]
mov dword [rsp + 0x48], ecx
mov rbx, qword [rax + 0x18]
mov rdi, qword [rax + 0x20]
cmp rbx, rdi
je 0x1401f36a1
mov r14, qword [0x1402fb580]
movss xmm6, dword [rsp + 0x48]
movss xmm7, dword [rsp + 0x40]
nop dword [rax]
cmp byte [rbx + 0xa7], 0
je 0x1401f367f
mov eax, dword [r14 + 0x1c]
cmp dword [rbx + 0x1c], eax
je 0x1401f367f
movss xmm0, dword [rbx + 8]
subss xmm0, xmm7
movss xmm1, dword [rbx + 0x10]
subss xmm1, xmm6
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x1401f3671
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x1401f3679
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm9, xmm0
jae 0x1401f368d
add rbx, 0x230
cmp rbx, rdi
je 0x1401f36a1
jmp 0x1401f3630
mov rax, qword [rsi + 0x1a0]
cmp byte [rax + 0x2b2], 0
je 0x1401f3dcf
movaps xmm6, xmmword [0x1402c2c20]
movaps xmmword [rbp + 0xb0], xmm6
mov qword [rbp + 0xc0], 0
mov byte [rbp + 0xc8], 1
movsd xmm1, qword [0x1402fba30]
movaps xmm5, xmm1
movsd qword [rbp + 0xcc], xmm1
mov eax, dword [0x1402fba38]
mov dword [rbp + 0xd4], eax
xor edx, edx
mov dword [rbp + 0xd8], edx
mov byte [rbp + 0xdc], dl
mov dword [rbp + 0xe0], 0xffffffff
movaps xmm4, xmm1
movsd qword [rbp + 0xe4], xmm1
mov dword [rbp + 0xec], eax
mov qword [rbp + 0xf0], r15
movaps xmm3, xmm1
movsd qword [rbp + 0xf8], xmm1
mov dword [rbp + 0x100], eax
movaps xmm2, xmm1
movsd qword [rbp + 0x104], xmm1
mov dword [rbp + 0x10c], eax
movss dword [rbp + 0x110], xmm11
xorps xmm0, xmm0
movups xmmword [rbp + 0x118], xmm0
movups xmmword [rbp + 0x128], xmm0
mov qword [rbp + 0x138], r15
movdqa xmmword [rbp + 0x140], xmm0
mov qword [rbp + 0x150], r15
mov byte [rbp + 0x158], dl
xor ecx, ecx
mov qword [rbp + 0x15c], rcx
mov byte [rbp + 0x164], cl
mov dword [rbp + 0x168], r15d
mov byte [rbp + 0x16c], cl
mov dword [rbp + 0x170], 0x42820000
movss dword [rbp - 0x40], xmm6
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
movss dword [rbp - 0x3c], xmm0
movaps xmm1, xmm6
shufps xmm1, xmm6, 0xaa
movss dword [rbp - 0x38], xmm1
shufps xmm6, xmm6, 0xff
movss dword [rbp - 0x34], xmm6
mov qword [rbp - 0x30], rcx
mov byte [rbp - 0x28], 1
movsd qword [rbp - 0x24], xmm2
mov dword [rbp - 0x1c], eax
mov dword [rbp - 0x18], edx
mov byte [rbp - 0x14], cl
mov dword [rbp - 0x10], 0xffffffff
movsd qword [rbp - 0xc], xmm2
mov dword [rbp - 4], eax
mov qword [rbp], r15
movsd qword [rbp + 8], xmm2
mov dword [rbp + 0x10], eax
movsd qword [rbp + 0x14], xmm2
mov dword [rbp + 0x1c], eax
movss dword [rbp + 0x20], xmm11
lea rdx, [rbp + 0x118]
lea rcx, [rbp + 0x28]
call fcn.140031c00
mov eax, dword [rbp + 0x168]
mov dword [rbp + 0x78], eax
movzx eax, byte [rbp + 0x16c]
mov byte [rbp + 0x7c], al
movss xmm0, dword [rbp + 0x170]
movss dword [rbp + 0x80], xmm0
lea rax, [rbp - 0x40]
mov qword [rsp + 0x30], rax
mov rax, qword [rsi + 0xa8]
mov qword [rbp], rax
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0x180]
mov rcx, qword [0x1402fb4e8]
call fcn.14015e510
nop
lea rcx, [rbp + 0x50]
call fcn.140034070
nop
mov rax, qword [rsi + 0x178]
cmp byte [rax + 0x2b0], 0
je 0x1401f3a69
mov r8, qword [rsi + 0xa8]
movss xmm1, dword [r8 + 0x28]
divss xmm1, dword [r8 + 0x2c]
mulss xmm1, xmm10
mov rax, qword [rsi + 0x180]
movd xmm0, dword [rax + 0x2b0]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jb 0x1401f3a69
mov rcx, rsi
call fcn.1401ed150
mov ecx, dword [rbp + 0x298]
cmp ecx, eax
jl 0x1401f3a69
cmp ecx, 1
je 0x1401f3a69
mov rax, qword [0x1402fb580]
movsd xmm0, qword [rax + 8]
movss xmm1, dword [r8 + 8]
movsd qword [rsp + 0x30], xmm0
subss xmm1, xmm0
movss xmm2, dword [r8 + 0x10]
subss xmm2, dword [rax + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x1401f3906
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x1401f390e
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm0, xmm10
jbe 0x1401f3a69
movss xmm0, dword [rbp + 0x280]
ucomiss xmm0, dword [0x1402fba30]
jp 0x1401f3955
jne 0x1401f3955
movss xmm0, dword [rbp + 0x284]
ucomiss xmm0, dword [0x1402fba34]
jp 0x1401f3955
jne 0x1401f3955
movss xmm0, dword [rbp + 0x288]
ucomiss xmm0, dword [0x1402fba38]
jp 0x1401f3955
je 0x1401f3a69
call fcn.14013edd0
mov r15, rax
movsd xmm6, qword [rbp + 0x280]
mov r13d, dword [rbp + 0x288]
mov rcx, qword [0x1402fb490]
cmp byte [rcx + 0x6c], 0
jne 0x1401f3a59
mov r14, qword [0x1402fb580]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], 0
mov rdx, qword [0x1402fe798]
sub rdx, qword [0x1402fe790]
je 0x1401f39d9
lea rcx, [rsp + 0x70]
call fcn.140014500
mov rdi, qword [rsp + 0x70]
mov rdx, qword [0x1402fe790]
mov rbx, qword [0x1402fe798]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
lea rax, [rdi + rbx]
mov qword [rsp + 0x78], rax
lea rdx, [rsp + 0x70]
lea rcx, [r14 + 0x170]
call fcn.140066940
test al, al
jne 0x1401f3a59
mov rax, qword [0x1402fb4f0]
cmp dword [rax + 0x154], 1
je 0x1401f3a59
mov rax, qword [0x1402fb9c0]
test rax, rax
jne 0x1401f3a2b
mov ecx, 0x36e490
call fcn.14022869c
mov qword [rbp + 0x88], rax
mov rcx, rax
call fcn.1401d6670
nop
mov qword [0x1402fb9c0], rax
movsd qword [rbp - 0x50], xmm6
mov dword [rbp - 0x48], r13d
lea r8, [rbp - 0x50]
lea rdx, [rbp + 0x90]
mov rcx, rax
call fcn.1401d5b90
xor r9d, r9d
mov r8, qword [rax]
lea edx, [r9 + 3]
mov rcx, r15
call fcn.14006d7b0
movss xmm0, dword [0x1402fb394]
movss dword [rsi + 0x60], xmm0
xor r15d, r15d
mov rax, qword [rsi + 0x170]
cmp byte [rax + 0x2b0], 0
je 0x1401f3ad0
mov rbx, qword [0x1402fb580]
mov al, 0x79
mov dword [rsp + 0x28], 0x656e6f79
mov word [rsp + 0x2c], 0x65
mov byte [rsp + 0x2e], 0
movzx eax, al
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
lea rcx, [rsp + 0x29]
call fcn.1400356d0
mov rcx, qword [rbx + 0x180]
mov rdx, qword [rbx + 0x188]
cmp rcx, rdx
je 0x1401f3d9e
cmp dword [rcx + 0x30], eax
je 0x1401f3ad0
add rcx, 0x50
jmp 0x1401f3abc
call fcn.14013e9d0
mov rcx, qword [rsi + 0x198]
movd xmm6, dword [rcx + 0x2b0]
cvtdq2ps xmm6, xmm6
mov r13, qword [0x1402fb580]
movsd xmm0, qword [r13 + 8]
movsd qword [rsp + 0x50], xmm0
mov ecx, dword [r13 + 0x10]
mov dword [rsp + 0x58], ecx
mov edi, r15d
mov r14, qword [rax + 8]
mov rbx, qword [rax]
cmp rbx, r14
je 0x1401f3b7c
mov r15d, dword [r13 + 0x1c]
movss xmm7, dword [rsp + 0x58]
movss xmm8, dword [rsp + 0x50]
cmp dword [rbx + 0x1c], r15d
je 0x1401f3b70
cmp byte [rbx + 0xa7], 0
je 0x1401f3b70
movss xmm0, dword [rbx + 8]
subss xmm0, xmm8
movss xmm1, dword [rbx + 0x10]
subss xmm1, xmm7
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x1401f3b61
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x1401f3b69
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm6, xmm0
jb 0x1401f3b70
inc edi
add rbx, 0x5e0
cmp rbx, r14
jne 0x1401f3b22
mov rax, qword [rsi + 0x188]
cmp edi, dword [rax + 0x2b0]
jl 0x1401f3d50
mov rcx, rsi
call fcn.1401ed150
mov ecx, dword [rbp + 0x298]
cmp ecx, eax
jl 0x1401f3d50
cmp ecx, 1
je 0x1401f3d50
mov rax, qword [rsi + 0xa8]
movsd xmm0, qword [r13 + 8]
movss xmm1, dword [rax + 8]
movsd qword [rsp + 0x30], xmm0
subss xmm1, xmm0
movss xmm2, dword [rax + 0x10]
subss xmm2, dword [r13 + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x1401f3bf2
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x1401f3bfa
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm0, xmm10
jbe 0x1401f3d50
movss xmm0, dword [rbp + 0x280]
ucomiss xmm0, dword [0x1402fba30]
jp 0x1401f3c41
jne 0x1401f3c41
movss xmm0, dword [rbp + 0x284]
ucomiss xmm0, dword [0x1402fba34]
jp 0x1401f3c41
jne 0x1401f3c41
movss xmm0, dword [rbp + 0x288]
ucomiss xmm0, dword [0x1402fba38]
jp 0x1401f3c41
je 0x1401f3d50
call fcn.14013edd0
mov r15, rax
movsd xmm6, qword [rbp + 0x280]
mov r13d, dword [rbp + 0x288]
mov rcx, qword [0x1402fb490]
cmp byte [rcx + 0x6c], 0
jne 0x1401f3d43
mov r14, qword [0x1402fb580]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], 0
mov rdx, qword [0x1402fe798]
sub rdx, qword [0x1402fe790]
je 0x1401f3cc1
lea rcx, [rbp - 0x78]
call fcn.140014500
mov rdi, qword [rbp - 0x78]
mov rdx, qword [0x1402fe790]
mov rbx, qword [0x1402fe798]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
lea rax, [rdi + rbx]
mov qword [rbp - 0x70], rax
lea rdx, [rbp - 0x78]
lea rcx, [r14 + 0x170]
call fcn.140066940
test al, al
jne 0x1401f3d43
mov rax, qword [0x1402fb4f0]
cmp dword [rax + 0x154], 1
je 0x1401f3d43
mov rax, qword [0x1402fb9c0]
test rax, rax
jne 0x1401f3d12
mov ecx, 0x36e490
call fcn.14022869c
mov qword [rbp + 0x98], rax
mov rcx, rax
call fcn.1401d6670
nop
mov qword [0x1402fb9c0], rax
movsd qword [rsp + 0x60], xmm6
mov dword [rsp + 0x68], r13d
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0xa0]
mov rcx, rax
call fcn.1401d5b90
xor r9d, r9d
mov r8, qword [rax]
lea edx, [r9 + 3]
mov rcx, r15
call fcn.14006d7b0
movss xmm0, dword [0x1402fb394]
movss dword [rsi + 0x60], xmm0
lea rcx, [rbp + 0x248]
call fcn.140034070
lea rcx, [rbp + 0x198]
call fcn.140033e60
lea rcx, [rbp + 0x180]
call fcn.140033e60
nop
lea rcx, [rbp + 0x140]
call fcn.140034070
mov rdi, qword [rbp - 0x60]
xor r15d, r15d
mov rax, qword [rsp + 0x20]
add r12, 0x5e0
cmp r12, rax
je 0x1401f3dcf
jmp 0x1401f3500
lea rcx, [rbp + 0x248]
call fcn.140034070
lea rcx, [rbp + 0x198]
call fcn.140033e60
lea rcx, [rbp + 0x180]
call fcn.140033e60
nop
lea rcx, [rbp + 0x140]
call fcn.140034070
mov rcx, qword [rbp + 0x2a0]
xor rcx, rsp
call fcn.1402283f0
lea r11, [rsp + 0x410]
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]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret