Function at 0x140157c60
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 [0x1402e8018]
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 0x140157d61
add r9, r9
mov rax, qword [r10 + r9*8]
cmp r8d, dword [rcx + 0x10]
je 0x140157d64
nop dword [rax]
cmp rcx, rax
je 0x140157d61
mov rcx, qword [rcx + 8]
cmp r8d, dword [rcx + 0x10]
jne 0x140157d50
jmp 0x140157d64
mov rcx, r14
test rcx, rcx
cmove rcx, rdx
cmp rcx, rdx
jne 0x140157dca
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 [0x1402f1148]
movsd qword [rdi + 0x1c], xmm0
mov ecx, dword [0x1402f1150]
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 0x1401583e3
mov rcx, qword [0x1402f0cc0]
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 0x140157e13
movss xmm0, dword [rbx + 0xd4]
comiss xmm0, dword [0x1402b8758]
jbe 0x140157e0e
movss xmm0, dword [0x1402b869c]
movss dword [rsi + 0x3c], xmm0
movaps xmm0, xmmword [0x1402b9d20]
movaps xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], r14
mov byte [rbp - 0x78], 1
movsd xmm0, qword [0x1402f1148]
movsd qword [rbp - 0x74], xmm0
mov eax, dword [0x1402f1150]
mov dword [rbp - 0x6c], eax
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
mov byte [rbp - 0x58], r14b
mov dword [rbp - 0x54], r14d
mov r15d, 5
cmp byte [rbx + 0x271], r14b
je 0x140157ee2
movsd xmm0, qword [rcx + 8]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x68], eax
movsd xmm0, qword [rbx + 0x24c]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [rbx + 0x254]
mov dword [rsp + 0x48], eax
movsd xmm0, qword [rbx + 8]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rbx + 0x10]
mov dword [rsp + 0x58], eax
movss xmm0, dword [rsi + 4]
movss dword [rsp + 0x30], xmm0
movss xmm1, dword [rsi + 0xc]
movss dword [rsp + 0x28], xmm1
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x10]
call fcn.1401d8890
movsd xmm6, qword [rbp - 0x10]
mov r14d, dword [rbp - 8]
lea ecx, [r15 - 1]
lea r11, [r13 + 8]
jmp 0x140157eee
mov ecx, r15d
movsd xmm6, qword [rbx + 8]
mov r14d, dword [rbx + 0x10]
mov dword [rbp - 0x48], r14d
movsd qword [rbp - 0x50], xmm6
mov rax, qword [rsi + 0x28]
mov edx, 6
movss xmm0, dword [0x1402b8750]
comiss xmm0, dword [rax + 0x64]
cmovae ecx, edx
mov dword [rbp - 0x44], ecx
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
mov rcx, r11
call fcn.140158c50
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 xmm7, dword [0x1402b84c8]
movss xmm8, dword [0x1402b86bc]
add rdx, rax
je 0x140157ff6
lea r8, [rsi + 0x34]
lea rdx, [rsp + 0x50]
lea rcx, [r13 + 8]
call fcn.140158c50
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.14005c350
nop
movss xmm1, dword [0x1402f0ad4]
subss xmm1, dword [rbp + 0x10]
movss xmm0, dword [0x1402b8748]
comiss xmm0, xmm1
jbe 0x140157fed
movaps xmm3, xmm7
movaps xmm2, xmm8
mov edx, dword [rsi + 0x34]
mov rcx, r13
call fcn.140158870
cmp eax, 2
mov eax, 6
cmovle r15d, eax
mov dword [rbp - 0x44], r15d
lea rcx, [rbp + 0x18]
call fcn.140032370
cmp byte [rbx + 0x271], 0
je 0x1401580c7
movaps xmm3, xmm7
movaps xmm2, xmm8
mov edx, dword [rbx + 0x18]
mov rcx, r13
call fcn.140158870
movsxd r15, eax
movsd xmm2, qword [rbx + 8]
movaps xmm0, xmmword [0x1402b8f80]
movups xmmword [rbp - 0x40], xmm0
movaps xmm1, xmmword [0x1402b8d50]
movups xmmword [rbp - 0x30], xmm1
mov dword [rbp - 0x20], 0x3e99999a
mov dword [rbp - 0x1c], 0x3e4ccccd
mov dword [rbp - 0x18], 0x3e4ccccd
movsd qword [rsp + 0x40], xmm2
subss xmm2, dword [rbp - 0x50]
movss xmm1, dword [rbx + 0x10]
movss dword [rsp + 0x48], xmm1
movd xmm0, r14d
subss xmm1, xmm0
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm1, xmm2
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140158084
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14015808c
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movsd qword [rsp + 0x50], xmm6
mov dword [rsp + 0x58], r14d
mulss xmm0, dword [rbp + r15*4 - 0x40]
movaps xmm3, xmm0
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.1401c4000
movsd xmm0, qword [rsp + 0x60]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [rsp + 0x68]
mov dword [rbp - 0x48], eax
mov rbx, qword [rsi + 0x28]
cmp byte [rbx + 0xe8], 0
je 0x1401580ec
mov eax, 6
mov dword [rbp - 0x44], eax
movsd xmm0, qword [rbx + 8]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x48], eax
mov r9, qword [rbx + 0x180]
mov r11, qword [rbx + 0x188]
cmp r9, r11
je 0x140158199
mov rcx, qword [0x1402e82c8]
mov r10, qword [rcx]
nop dword [rax]
mov rax, r10
cmp r10, rcx
je 0x140158131
movzx r8d, byte [r9 + 8]
nop dword [rax]
cmp byte [rax + 0x10], r8b
je 0x14015813c
mov rdx, qword [rax]
mov rax, rdx
cmp rdx, rcx
jne 0x140158120
add r9, 0x50
cmp r9, r11
je 0x140158199
jmp 0x140158110
mov dword [rbp - 0x44], 8
movsd xmm0, qword [rbx + 8]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x48], eax
mov rax, qword [0x1402f10d8]
test rax, rax
jne 0x140158182
mov ecx, 0x36e490
call fcn.14022033c
mov qword [rsp + 0x60], rax
mov rcx, rax
call fcn.1401cf6f0
nop
mov qword [0x1402f10d8], rax
mov rbx, qword [rsi + 0x28]
movss xmm2, dword [rbp - 0x48]
movss xmm1, dword [rbp - 0x50]
mov rcx, rax
call fcn.1401cf540
movss dword [rbp - 0x4c], xmm0
cmp byte [rbx + 0x270], 0
je 0x14015835f
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.140158c50
mov rcx, qword [rax]
cmp byte [rcx + 0x30], 0
je 0x14015835f
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.140158c50
mov rcx, qword [rax]
movsd xmm12, qword [rcx + 0x34]
mov ebx, dword [rcx + 0x3c]
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.140158c50
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.140158c50
mov rcx, qword [rax]
movss xmm10, dword [0x1402f0ad4]
subss xmm10, dword [rcx + 0x4c]
divss xmm10, dword [0x1402b87fc]
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.140158c50
mov rcx, qword [rax]
mulss xmm10, dword [rcx + 0x50]
movsd qword [rsp + 0x50], xmm9
movaps xmm6, xmm9
movsd qword [rsp + 0x50], xmm12
subss xmm6, xmm12
movd xmm11, r14d
movaps xmm7, xmm11
movd xmm8, ebx
subss xmm7, xmm8
movaps xmm1, xmm7
mulss xmm1, xmm7
movaps xmm0, xmm6
mulss xmm0, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140158292
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14015829a
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm6, xmm0
divss xmm7, xmm0
mulss xmm6, xmm10
mulss xmm7, xmm10
addss xmm6, xmm12
addss xmm8, xmm7
subss xmm6, xmm9
subss xmm8, xmm11
lea r8, [rsi + 0x34]
lea rdx, [rbp - 0x10]
lea rcx, [r13 + 8]
call fcn.140158c50
mov rbx, rax
movss xmm1, dword [rsi + 0x1c]
subss xmm1, xmm9
movss xmm0, dword [rsi + 0x24]
subss xmm0, xmm11
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140158305
xorps xmm7, xmm7
sqrtss xmm7, xmm1
jmp 0x140158310
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 0x140158339
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x140158341
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 0x14015835f
mov dword [rbp - 0x44], 7
movsd qword [rbp - 0x50], xmm9
mov dword [rbp - 0x48], r14d
lea r8, [rsp + 0x70]
mov rdx, rsi
call fcn.1401579b0
movsd xmm0, qword [rbp - 0x50]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rbp - 0x48]
mov dword [rsp + 0x58], eax
movsd xmm0, qword [rsi + 0x1c]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [rsi + 0x24]
mov dword [rsp + 0x48], eax
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x20], eax
movss xmm3, dword [rsi + 8]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x40]
call fcn.1400687f0
mov ecx, dword [rbp - 0x44]
test al, al
mov eax, 0
cmovne ecx, eax
mov dword [rbp - 0x44], ecx
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rdi], xmm0
movaps xmm1, xmmword [rbp - 0x80]
movaps xmmword [rdi + 0x10], xmm1
movaps xmm0, xmmword [rbp - 0x70]
movaps xmmword [rdi + 0x20], xmm0
movaps xmm1, xmmword [rbp - 0x60]
movaps xmmword [rdi + 0x30], xmm1
movaps xmm0, xmmword [rbp - 0x50]
movaps xmmword [rdi + 0x40], xmm0
mov rax, rdi
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.140220090
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