Function at 0x140165680
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1b8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
mov rax, qword [0x1402f9040]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov rsi, r9
mov rbx, r8
mov rdi, rdx
mov r13, rcx
mov r8d, dword [r8 + 0x18]
mov dword [r9 + 0x34], r8d
lea r11, [rcx + 8]
movzx edx, r8b
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs r9, 0x100000001b3
imul rdx, r9
mov eax, r8d
shr eax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov eax, r8d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov eax, r8d
shr rax, 0x18
xor rdx, rax
imul rdx, r9
mov r9, qword [r11 + 0x30]
and r9, rdx
mov r10, qword [r11 + 0x18]
mov rax, r9
add rax, rax
mov rcx, qword [r10 + rax*8 + 8]
mov rdx, qword [r11 + 8]
xor r14d, r14d
cmp rcx, rdx
je 0x140165781
add r9, r9
mov rax, qword [r10 + r9*8]
cmp r8d, dword [rcx + 0x10]
je 0x140165784
nop dword [rax]
cmp rcx, rax
je 0x140165781
mov rcx, qword [rcx + 8]
cmp r8d, dword [rcx + 0x10]
jne 0x140165770
jmp 0x140165784
mov rcx, r14
test rcx, rcx
cmove rcx, rdx
cmp rcx, rdx
jne 0x1401657ea
mov dword [rdi], 0x7f7fffff
mov dword [rdi + 4], 0x3e800000
mov dword [rdi + 8], 0x3f800000
mov qword [rdi + 0xc], 0x7f7fffff
mov dword [rdi + 0x14], r14d
mov byte [rdi + 0x18], 1
movsd xmm0, qword [0x140302828]
movsd qword [rdi + 0x1c], xmm0
mov ecx, dword [0x140302830]
mov dword [rdi + 0x24], ecx
mov qword [rdi + 0x28], r14
mov qword [rdi + 0x30], r14
mov byte [rdi + 0x38], r14b
mov qword [rdi + 0x3c], r14
mov qword [rdi + 0x44], r14
mov dword [rdi + 0x4c], 2
jmp 0x140165e4a
mov rcx, qword [0x140302380]
movsd xmm0, qword [rcx + 8]
movsd qword [rsi + 0x1c], xmm0
mov eax, dword [rcx + 0x10]
mov dword [rsi + 0x24], eax
mov qword [rsi + 0x28], rbx
movss xmm3, dword [rbx + 0x64]
movss dword [rsi + 0x30], xmm3
cmp byte [rsi + 0x18], r14b
je 0x140165833
movss xmm0, dword [rbx + 0xd4]
comiss xmm0, dword [0x1402c81d0]
jbe 0x14016582e
movss xmm0, dword [0x1402c8110]
movss dword [rsi + 0x3c], xmm0
movaps xmm0, xmmword [0x1402c9610]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r14
mov byte [rsp + 0x68], 1
movsd xmm0, qword [0x140302828]
movsd qword [rsp + 0x6c], xmm0
mov eax, dword [0x140302830]
mov dword [rsp + 0x74], eax
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x80], r14
mov byte [rbp - 0x78], r14b
mov dword [rbp - 0x74], r14d
mov r14d, 5
cmp byte [rbx + 0x271], 0
je 0x1401658fd
movsd xmm0, qword [rcx + 8]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [rcx + 0x10]
mov dword [rbp - 0x48], eax
movsd xmm0, qword [rbx + 0x24c]
movsd qword [rbp - 0x60], xmm0
mov eax, dword [rbx + 0x254]
mov dword [rbp - 0x58], eax
movsd xmm0, qword [rbx + 8]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [rbx + 0x10]
mov dword [rsp + 0x48], eax
movss xmm0, dword [rsi + 4]
movss dword [rsp + 0x30], xmm0
movss xmm1, dword [rsi + 0xc]
movss dword [rsp + 0x28], xmm1
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x60]
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x10]
call fcn.1401e7ba0
movsd xmm0, qword [rbp - 0x10]
mov r15d, dword [rbp - 8]
lea ecx, [r14 - 1]
lea r11, [r13 + 8]
jmp 0x140165909
mov ecx, r14d
movsd xmm0, qword [rbx + 8]
mov r15d, dword [rbx + 0x10]
mov dword [rbp - 0x68], r15d
movsd qword [rbp - 0x70], xmm0
mov rax, qword [rsi + 0x28]
mov edx, 6
movss xmm0, dword [0x1402c81c8]
comiss xmm0, dword [rax + 0x64]
cmovae ecx, edx
mov dword [rbp - 0x64], ecx
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
mov rcx, r11
call fcn.1401666c0
mov rcx, qword [rax]
mov rax, qword [rcx + 0x28]
mov rcx, qword [rax + 0x10]
sub rcx, qword [rax + 8]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
movss xmm6, dword [0x1402c7f38]
movss xmm7, dword [0x1402c8134]
add rdx, rax
je 0x140165a0f
lea r8, [rsi + 0x34]
lea rdx, [rsp + 0x40]
lea rcx, [r13 + 8]
call fcn.1401666c0
mov rcx, qword [rax]
mov rax, qword [rcx + 0x28]
mov rdx, qword [rax + 8]
movsd xmm0, qword [rdx]
movsd qword [rbp], xmm0
mov eax, dword [rdx + 8]
mov dword [rbp + 8], eax
movss xmm0, dword [rdx + 0xc]
movss dword [rbp + 0xc], xmm0
movss xmm1, dword [rdx + 0x10]
movss dword [rbp + 0x10], xmm1
add rdx, 0x18
lea rcx, [rbp + 0x18]
call fcn.14005c0d0
nop
movss xmm1, dword [0x140302194]
subss xmm1, dword [rbp + 0x10]
movss xmm0, dword [0x1402c81c0]
comiss xmm0, xmm1
jbe 0x140165a06
movaps xmm3, xmm6
movaps xmm2, xmm7
mov edx, dword [rsi + 0x34]
mov rcx, r13
call fcn.1401662e0
cmp eax, 2
mov eax, 6
cmovle r14d, eax
mov dword [rbp - 0x64], r14d
lea rcx, [rbp + 0x18]
call fcn.14002abd0
cmp byte [rbx + 0x271], 0
je 0x140165b32
movss xmm0, dword [rsi + 0xc]
ucomiss xmm0, dword [0x1402c831c]
jp 0x140165a30
je 0x140165b32
movaps xmm3, xmm6
movaps xmm2, xmm7
mov edx, dword [rbx + 0x18]
mov rcx, r13
call fcn.1401662e0
movsxd r14, eax
movsd xmm9, qword [rbx + 8]
movaps xmm0, xmmword [0x1402c8960]
movups xmmword [rbp - 0x40], xmm0
movaps xmm1, xmmword [0x1402c87a0]
movups xmmword [rbp - 0x30], xmm1
mov dword [rbp - 0x20], 0x3e99999a
mov dword [rbp - 0x1c], 0x3e4ccccd
mov dword [rbp - 0x18], 0x3e4ccccd
movsd qword [rsp + 0x40], xmm9
movaps xmm0, xmm9
movss xmm6, dword [rbp - 0x70]
subss xmm0, xmm6
movss xmm10, dword [rbx + 0x10]
movaps xmm1, xmm10
movd xmm7, r15d
subss xmm1, xmm7
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140165abb
xorps xmm8, xmm8
sqrtss xmm8, xmm1
jmp 0x140165ac7
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm8, xmm0
mulss xmm8, dword [rbp + r14*4 - 0x40]
subss xmm7, xmm10
subss xmm6, xmm9
movaps xmm1, xmm6
mulss xmm1, xmm6
movaps xmm0, xmm7
mulss xmm0, xmm7
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140165afb
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140165b03
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm6, xmm0
divss xmm7, xmm0
mulss xmm7, xmm8
mulss xmm6, xmm8
addss xmm7, xmm10
addss xmm6, xmm9
movss xmm1, dword [rsp + 0x44]
unpcklps xmm6, xmm1
movsd qword [rbp - 0x70], xmm6
movss dword [rbp - 0x68], xmm7
mov rbx, qword [rsi + 0x28]
cmp byte [rbx + 0xe8], 0
je 0x140165b57
mov eax, 6
mov dword [rbp - 0x64], eax
movsd xmm0, qword [rbx + 8]
movsd qword [rbp - 0x70], xmm0
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x68], eax
mov r9, qword [rbx + 0x180]
mov r11, qword [rbx + 0x188]
cmp r9, r11
je 0x140165bff
mov rcx, qword [0x1402f9338]
mov r10, qword [rcx]
mov rax, r10
cmp r10, rcx
je 0x140165b96
movzx r8d, byte [r9 + 8]
cmp byte [rax + 0x10], r8b
je 0x140165ba1
mov rdx, qword [rax]
mov rax, rdx
cmp rdx, rcx
jne 0x140165b85
add r9, 0x50
cmp r9, r11
jne 0x140165b78
jmp 0x140165bff
mov dword [rbp - 0x64], 8
movsd xmm0, qword [rbx + 8]
movsd qword [rbp - 0x70], xmm0
mov r14d, dword [rbx + 0x10]
mov dword [rbp - 0x68], r14d
mov rax, qword [0x1403027b8]
test rax, rax
jne 0x140165be8
mov ecx, 0x36e490
call fcn.14022f7fc
mov qword [rbp - 0x50], rax
mov rcx, rax
call fcn.1401debe0
nop
mov qword [0x1403027b8], rax
mov rbx, qword [rsi + 0x28]
movd xmm2, r14d
movss xmm1, dword [rbp - 0x70]
mov rcx, rax
call fcn.1401dea30
movss dword [rbp - 0x6c], xmm0
cmp byte [rbx + 0x270], 0
je 0x140165dc7
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.1401666c0
mov rcx, qword [rax]
cmp byte [rcx + 0x30], 0
je 0x140165dc7
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.1401666c0
mov rcx, qword [rax]
movsd xmm6, qword [rcx + 0x34]
mov ebx, dword [rcx + 0x3c]
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.1401666c0
mov rcx, qword [rax]
movsd xmm9, qword [rcx + 0x40]
mov r14d, dword [rcx + 0x48]
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.1401666c0
mov rcx, qword [rax]
movss xmm7, dword [0x140302194]
subss xmm7, dword [rcx + 0x4c]
divss xmm7, dword [0x1402c8278]
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.1401666c0
mov rcx, qword [rax]
mulss xmm7, dword [rcx + 0x50]
movsd qword [rsp + 0x40], xmm9
movaps xmm10, xmm9
movsd qword [rsp + 0x40], xmm6
subss xmm10, xmm6
movd xmm12, r14d
movaps xmm11, xmm12
movd xmm8, ebx
subss xmm11, xmm8
movaps xmm1, xmm10
mulss xmm1, xmm10
movaps xmm0, xmm11
mulss xmm0, xmm11
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140165cf6
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140165cfe
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm10, xmm0
divss xmm11, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm10
mulss xmm7, xmm11
addss xmm6, xmm0
addss xmm8, xmm7
subss xmm6, xmm9
subss xmm8, xmm12
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.1401666c0
mov rbx, rax
movss xmm1, dword [rsi + 0x1c]
subss xmm1, xmm9
movss xmm0, dword [rsi + 0x24]
subss xmm0, xmm12
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140165d6d
xorps xmm7, xmm7
sqrtss xmm7, xmm1
jmp 0x140165d78
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm7, xmm0
divss xmm7, dword [rsi + 0xc]
addss xmm7, dword [rsi + 4]
mulss xmm6, xmm6
mulss xmm8, xmm8
addss xmm6, xmm8
xorps xmm0, xmm0
ucomiss xmm0, xmm6
ja 0x140165da1
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x140165da9
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov rax, qword [rbx]
divss xmm0, dword [rax + 0x50]
comiss xmm7, xmm0
jbe 0x140165dc7
mov dword [rbp - 0x64], 7
movsd qword [rbp - 0x70], xmm9
mov dword [rbp - 0x68], r14d
lea r8, [rsp + 0x50]
mov rdx, rsi
call fcn.1401653d0
movsd xmm0, qword [rbp - 0x70]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [rbp - 0x68]
mov dword [rsp + 0x48], eax
movsd xmm0, qword [rsi + 0x1c]
movsd qword [rbp - 0x60], xmm0
mov eax, dword [rsi + 0x24]
mov dword [rbp - 0x58], eax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x20], eax
movss xmm3, dword [rsi + 8]
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x60]
call fcn.14006d410
mov ecx, dword [rbp - 0x64]
test al, al
mov eax, 0
cmovne ecx, eax
mov dword [rbp - 0x64], ecx
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rdi], xmm0
movaps xmm1, xmmword [rsp + 0x60]
movaps xmmword [rdi + 0x10], xmm1
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rdi + 0x20], xmm0
movaps xmm1, xmmword [rbp - 0x80]
movaps xmmword [rdi + 0x30], xmm1
movaps xmm0, xmmword [rbp - 0x70]
movaps xmmword [rdi + 0x40], xmm0
mov rax, rdi
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.14022f560
lea r11, [rsp + 0x1b8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret