Function at 0x14015a9f0
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm10
mov rsi, rcx
mov rbx, qword [0x1402f0cc0]
cmp dword [rbx + 0x388], 0
jbe 0x14015aa3c
cmp dword [rbx + 0x384], 0
je 0x14015ae0f
movss xmm0, dword [0x1402f0af0]
comiss xmm0, dword [rbx + 0x390]
jb 0x14015ae0f
mov eax, dword [rbx + 0x380]
test eax, eax
je 0x14015ae0f
dec eax
movss xmm0, dword [rbx + 0x30]
comiss xmm0, dword [rbx + rax*4 + 0x3b8]
jb 0x14015ae0f
mov al, reloc.WS2_32.dll_WSASetLastError
mov dword [rbp + 0x6f], 0x656b7970
mov word [rbp + 0x73], WSAStartup
mov byte [rbp + 0x75], 0
movzx eax, al
mov edi, 0x811c9dc5
xor eax, edi
imul edx, eax, 0x1000193
lea rcx, [rbp + 0x70]
call fcn.140033860
mov rcx, qword [rbx + 0x180]
mov rdx, qword [rbx + 0x188]
cmp rcx, rdx
je 0x14015aac5
cmp dword [rcx + 0x30], eax
je 0x14015ae0f
add rcx, 0x50
cmp rcx, rdx
jne 0x14015aab3
cmp byte [rbx + 0x270], 0
jne 0x14015ae0f
movss xmm1, dword [0x1402b884c]
call fcn.1401bc5e0
mov rbx, rax
test rax, rax
je 0x14015ae0f
cmp byte [rax + 0xa7], 0
je 0x14015ae0f
mov rcx, rax
call fcn.140066ad0
test al, al
jne 0x14015ae0f
cmp byte [rbx + 0xa5], al
je 0x14015ae0f
cmp byte [rbx + 0xa4], al
je 0x14015ae0f
mov rax, qword [rsi + 0x70]
cmp byte [rax + 0x2b0], 0
je 0x14015ae0f
mov al, reloc.WS2_32.dll_WSASetLastError
mov dword [rsp + 0x20], 0x656b7970
mov dword [rsp + 0x24], 0x6e617271
mov dword [rsp + 0x28], 0x6567
movzx eax, al
xor eax, edi
imul edx, eax, 0x1000193
lea rcx, [rsp + 0x21]
call fcn.140033860
mov r8d, eax
lea rdx, [rbp - 0x49]
lea rcx, [rbx + 0x170]
call fcn.140062c90
cmp byte [rax + 0x4e], 0
je 0x14015ad90
cmp byte [rbx + 0x270], 0
je 0x14015ad90
mov rax, qword [rsi + 0x88]
cmp byte [rax + 0x2b0], 0
je 0x14015ad90
lea rcx, [rbp - 0x39]
call fcn.1400341f0
mov rdi, qword [0x1402f0cc0]
movsd xmm0, qword [rbx + 0x24c]
movss xmm8, dword [rdi + 8]
movaps xmm2, xmm8
movsd qword [rbp - 0x79], xmm0
subss xmm2, xmm0
movss xmm1, dword [rdi + 0x10]
subss xmm1, dword [rbx + 0x254]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x14015abf3
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x14015abfb
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm1, dword [0x1402b8764]
comiss xmm1, xmm0
jb 0x14015ae0f
movss xmm10, dword [rdi + 0xc]
movss dword [rbp - 0x79], xmm8
movsd xmm7, qword [rbx + 0x24c]
movss xmm6, dword [rbx + 0x254]
subss xmm6, dword [rdi + 0x10]
movsd qword [rbp - 0x69], xmm7
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 0x14015ac5a
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14015ac62
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm7, xmm0
divss xmm6, xmm0
mulss xmm6, dword [0x1402b87a8]
mulss xmm7, dword [0x1402b87a8]
addss xmm6, dword [rdi + 0x10]
addss xmm8, xmm7
movss dword [rbp - 0x79], xmm8
movss dword [rbp - 0x75], xmm10
movss dword [rbp - 0x71], xmm6
call fcn.140139ee0
mov r14, rax
mov rcx, qword [0x1402f0bc0]
cmp byte [rcx + 0x6c], 0
jne 0x14015ae0f
mov rsi, qword [0x1402f0cc0]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x69], xmm0
mov qword [rbp - 0x59], 0
mov rdx, qword [0x1402f3eb8]
sub rdx, qword [0x1402f3eb0]
je 0x14015ad06
lea rcx, [rbp - 0x69]
call fcn.140012e50
mov rdi, qword [rbp - 0x69]
mov rbx, qword [0x1402f3eb8]
mov rdx, qword [0x1402f3eb0]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + rdi]
mov qword [rbp - 0x61], rax
lea rdx, [rbp - 0x69]
lea rcx, [rsi + 0x170]
call fcn.140062b20
test al, al
jne 0x14015ae0f
mov rax, qword [0x1402f0c20]
cmp dword [rax + 0x154], 1
je 0x14015ae0f
mov rcx, qword [0x1402f10d8]
test rcx, rcx
jne 0x14015ad5e
mov ecx, 0x36e490
call fcn.14022033c
mov qword [rbp + 0x6f], rax
mov rcx, rax
call fcn.1401cf6f0
mov rcx, rax
mov qword [0x1402f10d8], rax
movsd xmm0, qword [rbp - 0x79]
movsd qword [rsp + 0x20], xmm0
mov eax, dword [rbp - 0x71]
mov dword [rsp + 0x28], eax
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0x77]
call fcn.1401cec00
mov r8, qword [rax]
mov edx, 2
mov rcx, r14
call fcn.140069d30
jmp 0x14015ae0f
lea rcx, [rbp - 0x39]
call fcn.1400341f0
mov rax, qword [0x1402f0cc0]
movsd xmm0, qword [rax + 8]
movss xmm1, dword [rbx + 8]
subss xmm1, xmm0
movss xmm2, dword [rbx + 0x10]
subss xmm2, dword [rax + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x14015add5
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x14015addd
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm1, dword [0x1402b87a8]
comiss xmm1, xmm0
jb 0x14015ae0f
mov rax, qword [rsi + 0x88]
cmp byte [rax + 0x2b0], 0
jne 0x14015ae0f
call fcn.140139ee0
mov r8, rbx
mov edx, 2
mov rcx, rax
call fcn.14006a050
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm10, xmmword [r11 - 0x40]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret