Function at 0x140012370
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, [rsp - 0x60]
sub rsp, 0x160
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
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x1400be680]
xor rax, rsp
mov qword [rbp - 0x48], rax
mov r13, rdx
mov qword [rsp + 0x30], rdx
mov r14, rcx
mov r9d, dword [rcx + 0x20]
xor edx, edx
mov eax, dword [rcx + 0x88]
div r9d
mov r8d, edx
xorps xmm2, xmm2
cvtsi2sd xmm2, r8
lea r8d, [r9 - 1]
xorps xmm0, xmm0
cvtsi2sd xmm0, r8
divsd xmm2, xmm0
movups xmm1, xmmword [rcx + 0x50]
mov ecx, dword [rcx + 0x48]
movsd xmm3, qword [0x1400acd10]
test ecx, ecx
je 0x14001243c
sub ecx, 1
je 0x14001262e
cmp ecx, 1
je 0x14001261c
int3
movaps xmm10, xmm3
mulsd xmm10, qword [r14 + 0x38]
movsd qword [rsp + 0x38], xmm10
movsd xmm8, qword [0x1400ace40]
xor edi, edi
mov dword [rsp + 0x28], edi
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
mov dword [rsp + 0x60], edi
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], rdi
lea ecx, [rdi + 0x30]
call fcn.140094850
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x78], rdi
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], 7
mov qword [rbp - 0x68], 8
mov dword [rsp + 0x60], 0x3f800000
mov r8, rax
lea edx, [rdi + 0x10]
lea rcx, [rsp + 0x78]
call fcn.140012ff0
nop
xor esi, esi
mov dword [rsp + 0x20], esi
mov r8, qword [r14 + 8]
mov r12, qword [r14]
mov rcx, r8
sub rcx, r12
movabs r11, 0x6666666666666667
mov rax, r11
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
movabs r15, 0x100000001b3
add rdx, rax
je 0x14001269c
xor r9d, r9d
mov rdi, r11
movabs r13, 0xcbf29ce484222325
nop word [rax + rax]
lea rcx, [r9 + r9*4]
movsd xmm1, qword [r14 + 0x30]
unpcklpd xmm1, xmm1
movups xmm0, xmmword [r12 + rcx*8 + 0x10]
mulpd xmm0, xmm1
movups xmmword [r12 + rcx*8 + 0x10], xmm0
mov byte [r12 + rcx*8 + 0x20], 0
movsd xmm0, qword [r12 + rcx*8 + 8]
movsd xmm7, qword [r12 + rcx*8]
movsd xmm6, qword [r14 + 0x90]
divsd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
cvttsd2si ebx, xmm0
divsd xmm7, xmm6
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
cvttsd2si edx, xmm0
mov eax, edx
shr eax, 8
movzx r8d, al
movzx eax, dl
xor rax, r13
imul rax, r15
xor r8, rax
imul r8, r15
mov eax, edx
shr eax, 0x10
movzx ecx, al
xor r8, rcx
imul r8, r15
mov eax, edx
shr rax, 0x18
xor r8, rax
imul r8, r15
mov eax, ebx
shr eax, 8
movzx edx, al
movzx eax, bl
xor rax, r13
imul rax, r15
xor rdx, rax
imul rdx, r15
mov eax, ebx
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r15
mov eax, ebx
shr rax, 0x18
xor rdx, rax
imul rdx, r15
lea rax, [rdx + rdx]
xor rax, r8
mov qword [rsp + 0x50], rax
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.140013130
mov rcx, qword [rax]
add rcx, 0x18
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x14001264c
mov dword [rdx], esi
add qword [rcx + 8], 4
jmp 0x140012656
mulsd xmm1, xmm2
movaps xmm10, xmm3
subsd xmm10, xmm1
jmp 0x140012440
mulsd xmm1, xmm2
addsd xmm1, xmm1
movsd xmm0, qword [0x1400acd00]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm10, xmm0
jmp 0x140012440
lea r8, [rsp + 0x20]
call fcn.14000b080
inc esi
mov r9d, esi
mov dword [rsp + 0x20], esi
mov r8, qword [r14 + 8]
mov r12, qword [r14]
mov rcx, r8
sub rcx, r12
mov rax, rdi
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r9, rdx
jb 0x140012520
mov edi, dword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
movabs r11, 0x6666666666666667
mov r9, r12
mov r10, r8
xor r15d, r15d
mov rcx, r8
sub rcx, r12
mov rax, r11
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
xorps xmm9, xmm9
add rdx, rax
je 0x1400129f6
mov qword [rsp + 0x50], r12
xor eax, eax
movsd xmm10, qword [0x1400acf60]
mov r13, qword [rsp + 0x68]
nop
lea rsi, [rax + rax*4]
mov ebx, 0xffffffff
mov dword [rsp + 0x20], ebx
nop dword [rax]
mov edi, 0xffffffff
mov dword [rsp + 0x24], edi
nop dword [rax]
movsd xmm0, qword [r12 + rsi*8 + 8]
movsd xmm7, qword [r12 + rsi*8]
movsd xmm6, qword [r14 + 0x90]
divsd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
cvttsd2si eax, xmm0
add ebx, eax
divsd xmm7, xmm6
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
cvttsd2si eax, xmm0
add eax, edi
mov edx, eax
shr eax, 8
movzx r8d, al
movzx eax, dl
movabs r10, 0xcbf29ce484222325
xor rax, r10
movabs r11, 0x100000001b3
imul rax, r11
xor r8, rax
imul r8, r11
mov eax, edx
shr eax, 0x10
movzx ecx, al
xor r8, rcx
imul r8, r11
shr rdx, 0x18
xor r8, rdx
imul r8, r11
mov eax, ebx
shr eax, 8
movzx edx, al
movzx eax, bl
xor rax, r10
imul rax, r11
xor rdx, rax
imul rdx, r11
mov eax, ebx
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r11
shr rbx, 0x18
xor rdx, rbx
imul rdx, r11
lea r9, [rdx + rdx]
xor r9, r8
movzx edx, r9b
xor rdx, r10
imul rdx, r11
mov rax, r9
shr rax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r9
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r9
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r9
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r9
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r9
shr rax, 0x30
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r9
shr rax, 0x38
xor rdx, rax
imul rdx, r11
mov rcx, qword [rbp - 0x70]
and rcx, rdx
add rcx, rcx
mov rdx, qword [rsp + 0x78]
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, r13
je 0x140012871
mov rcx, qword [rdx + rcx*8]
cmp r9, qword [rax + 0x10]
je 0x140012873
nop dword [rax + rax]
cmp rax, rcx
je 0x140012871
mov rax, qword [rax + 8]
cmp r9, qword [rax + 0x10]
jne 0x140012860
jmp 0x140012873
xor eax, eax
test rax, rax
je 0x14001297f
cmp rax, r13
je 0x14001297f
mov r12, qword [rax + 0x20]
mov rdi, qword [rax + 0x18]
cmp rdi, r12
je 0x140012976
nop word [rax + rax]
mov eax, dword [rdi]
cmp r15d, eax
je 0x140012964
mov rbx, qword [r14]
lea rcx, [rax + rax*4]
movsd xmm6, qword [rbx + rcx*8 + 8]
subsd xmm6, qword [rbx + rsi*8 + 8]
movsd xmm7, qword [rbx + rcx*8]
subsd xmm7, qword [rbx + rsi*8]
movaps xmm2, xmm7
mulsd xmm2, xmm7
movaps xmm0, xmm6
mulsd xmm0, xmm6
addsd xmm2, xmm0
movsd xmm1, qword [r14 + 0x90]
mulsd xmm1, xmm1
comisd xmm2, xmm1
ja 0x140012964
xorps xmm0, xmm0
ucomisd xmm0, xmm2
ja 0x1400128fc
sqrtpd xmm4, xmm2
jmp 0x140012907
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm4, xmm0
movsd xmm1, qword [r14 + 0x18]
comisd xmm1, xmm4
jb 0x140012928
mov byte [rbx + rsi*8 + 0x20], 1
comisd xmm8, xmm4
jbe 0x140012928
movaps xmm8, xmm4
mov dword [rsp + 0x28], r15d
ucomisd xmm4, xmm9
jp 0x140012931
je 0x140012964
movaps xmm1, xmm4
mov rcx, r14
call fcn.140012da0
xorps xmm0, xmm10
divsd xmm0, xmm4
mulsd xmm6, xmm0
mulsd xmm7, xmm0
movaps xmm0, xmm6
movaps xmm1, xmm7
unpcklpd xmm1, xmm0
movups xmm0, xmmword [rbx + rsi*8 + 0x10]
addpd xmm1, xmm0
movups xmmword [rbx + rsi*8 + 0x10], xmm1
add rdi, 4
cmp rdi, r12
jne 0x1400128a0
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x50]
mov edi, dword [rsp + 0x24]
inc edi
mov dword [rsp + 0x24], edi
cmp edi, 1
mov ebx, dword [rsp + 0x20]
jle 0x140012700
inc ebx
mov dword [rsp + 0x20], ebx
cmp ebx, 1
jle 0x1400126f0
inc r15d
mov r8, qword [r14 + 8]
mov r10, r8
mov r12, qword [r14]
mov qword [rsp + 0x50], r12
mov r9, r12
mov rcx, r8
sub rcx, r12
movabs r11, 0x6666666666666667
mov rax, r11
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, r15d
cmp rax, rdx
jb 0x1400126e0
movsd xmm10, qword [rsp + 0x38]
mov edi, dword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
xor esi, esi
sub r8, r12
mov rax, r11
imul r8
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140012bb2
xor eax, eax
nop word [rax + rax]
lea rbx, [rax + rax*4]
cmp byte [r12 + rbx*8 + 0x20], 0
jne 0x140012a37
cmp byte [r14 + 0x40], 0
jne 0x140012b81
movups xmm12, xmmword [r12 + rbx*8]
movsd xmm0, qword [r12 + rbx*8 + 8]
movsd qword [rsp + 0x30], xmm0
movsd xmm15, qword [r12 + rbx*8 + 0x18]
addsd xmm0, xmm15
movsd xmm14, qword [r12 + rbx*8 + 0x10]
movsd xmm1, qword [r12 + rbx*8]
addsd xmm1, xmm14
xor edx, edx
mov r9, qword [r13]
mov r8, qword [r13 + 8]
sub r8, r9
sar r8, 4
cmp r8, 1
jbe 0x140012b56
lea ecx, [rdx + 1]
movaps xmm13, xmm12
unpckhpd xmm13, xmm12
movaps xmm10, xmm13
subsd xmm10, xmm0
movaps xmm11, xmm12
subsd xmm11, xmm1
mov eax, edx
add rax, rax
add rcx, rcx
movsd xmm5, qword [r9 + rax*8 + 8]
movaps xmm4, xmm13
subsd xmm4, xmm5
movsd xmm6, qword [r9 + rax*8]
movaps xmm1, xmm12
subsd xmm1, xmm6
movsd xmm7, qword [r9 + rcx*8 + 8]
movaps xmm2, xmm5
subsd xmm2, xmm7
subsd xmm6, qword [r9 + rcx*8]
movaps xmm3, xmm2
mulsd xmm3, xmm11
movaps xmm0, xmm6
mulsd xmm0, xmm10
subsd xmm3, xmm0
ucomisd xmm3, xmm9
jp 0x140012af6
je 0x140012b41
mulsd xmm2, xmm1
movaps xmm0, xmm6
mulsd xmm0, xmm4
subsd xmm2, xmm0
divsd xmm2, xmm3
comisd xmm2, xmm9
jb 0x140012b41
movsd xmm0, qword [0x1400acd10]
comisd xmm0, xmm2
jb 0x140012b41
mulsd xmm1, xmm10
mulsd xmm4, xmm11
subsd xmm1, xmm4
divsd xmm1, xmm3
comisd xmm1, xmm9
jb 0x140012b41
comisd xmm0, xmm1
jae 0x140012bdf
inc edx
lea ecx, [rdx + 1]
cmp rcx, r8
jb 0x140012aa0
movsd xmm10, qword [rsp + 0x38]
movaps xmm1, xmm10
mulsd xmm1, xmm15
movaps xmm0, xmm10
mulsd xmm0, xmm14
addsd xmm0, qword [r12 + rbx*8]
movsd qword [r12 + rbx*8], xmm0
addsd xmm1, qword [rsp + 0x30]
movsd qword [r12 + rbx*8 + 8], xmm1
inc esi
mov r10, qword [r14 + 8]
mov r9, qword [r14]
mov rcx, r10
sub rcx, r9
mov rax, r11
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, esi
mov r12, r9
cmp rax, rdx
jb 0x140012a20
mov ecx, dword [r14 + 0x88]
inc ecx
mov dword [r14 + 0x88], ecx
movsd xmm0, qword [r14 + 0x18]
comisd xmm0, xmm8
setae al
test al, al
jne 0x140012c71
mov bl, 1
jmp 0x140012ca1
subsd xmm7, xmm5
movaps xmm0, xmm6
mulsd xmm0, xmm6
movaps xmm1, xmm7
mulsd xmm1, xmm7
addsd xmm1, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm1
ja 0x140012c04
sqrtpd xmm0, xmm1
jmp 0x140012c16
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movabs r11, 0x6666666666666667
movsd xmm2, qword [0x1400acd10]
divsd xmm2, xmm0
mulsd xmm6, xmm2
mulsd xmm2, xmm7
movaps xmm0, xmm15
mulsd xmm0, xmm6
movaps xmm1, xmm14
mulsd xmm1, xmm2
addsd xmm1, xmm0
addsd xmm1, xmm1
movaps xmm0, xmm1
mulsd xmm0, xmm6
mulsd xmm1, xmm2
subsd xmm14, xmm1
movsd qword [r12 + rbx*8 + 0x10], xmm14
subsd xmm15, xmm0
movsd qword [r12 + rbx*8 + 0x18], xmm15
movsd xmm10, qword [rsp + 0x38]
jmp 0x140012b81
xor edx, edx
mov eax, ecx
div dword [r14 + 0x20]
test edx, edx
jne 0x140012c9f
test ecx, ecx
je 0x140012c9f
mov eax, edi
lea rcx, [rax + rax*4]
lea rcx, [r9 + rcx*8]
lea rdx, [rcx + 0x28]
sub r10, rdx
mov r8, r10
call sub.VCRUNTIME140.dll_memmove
add qword [r14 + 8], 0xffffffffffffffd8
xor bl, bl
lea rcx, [rsp + 0x60]
call fcn.140012d20
movzx eax, bl
mov rcx, qword [rbp - 0x48]
xor rcx, rsp
call fcn.140094830
lea r11, [rsp + 0x160]
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]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret