Function at 0x14000a600
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x70
lea rbp, [rcx + 0x68]
lea rcx, [0x1402a7bc8]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_hash]
mov r8, rax
mov qword [rsp + 0x20], rax
movzx edx, al
movabs r15, 0xcbf29ce484222325
xor rdx, r15
movabs r14, 0x100000001b3
imul rdx, r14
movzx ecx, byte [rsp + 0x21]
xor rdx, rcx
imul rdx, r14
movzx eax, byte [rsp + 0x22]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x23]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x24]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x25]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x26]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x27]
xor rdx, rax
imul rdx, r14
mov rcx, qword [rbp + 0x30]
and rcx, rdx
mov r9, qword [rbp + 0x18]
mov rax, rcx
add rax, rax
mov rax, qword [r9 + rax*8 + 8]
mov rdx, qword [rbp + 8]
xor ebx, ebx
cmp rax, rdx
je 0x14000a6e2
add rcx, rcx
mov rcx, qword [r9 + rcx*8]
cmp r8, qword [rax + 0x10]
je 0x14000a6e5
cmp rax, rcx
je 0x14000a6e2
mov rax, qword [rax + 8]
cmp r8, qword [rax + 0x10]
jne 0x14000a6d1
jmp 0x14000a6e5
mov rax, rbx
test rax, rax
cmove rax, rdx
cmp rax, rdx
jne 0x14000a8af
mov ecx, 0x28
call fcn.1401e0de0
mov rsi, rax
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm0
mov qword [rsi + 0x20], rax
lea rcx, [0x1402a7bc8]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_hash]
mov qword [rsi + 8], rax
lea rax, vtable.Core::ComponentSlotTable_struct_BulletTracker_.0
mov qword [rsi], rax
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], rbx
lea rcx, [0x1402a7bc8]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_hash]
mov rdi, rax
mov qword [rsp + 0x40], rsi
mov ecx, 0x18
call fcn.1401e0de0
mov qword [rsp + 0x48], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rcx, vtable.std::_Ref_count_class_Core::StaticComponentContainer_.0
mov qword [rax], rcx
mov qword [rax + 0x10], rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rax
movdqu xmmword [rsp + 0x48], xmm0
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x58]
mov rcx, rbp
call fcn.14000be40
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14000a7ea
mov esi, 0xffffffff
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14000a7ea
mov rdi, qword [rsp + 0x38]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], esi
cmp esi, 1
jne 0x14000a7ea
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [0x1402a7bc8]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_hash]
mov r8, rax
mov qword [rsp + 0x20], rax
movzx edx, al
xor rdx, r15
imul rdx, r14
movzx ecx, byte [rsp + 0x21]
xor rdx, rcx
imul rdx, r14
movzx ecx, byte [rsp + 0x22]
xor rdx, rcx
imul rdx, r14
movzx eax, byte [rsp + 0x23]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x24]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x25]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x26]
xor rdx, rax
imul rdx, r14
movzx eax, byte [rsp + 0x27]
xor rdx, rax
imul rdx, r14
mov rcx, qword [rbp + 0x30]
and rcx, rdx
mov rdx, qword [rbp + 0x18]
mov rax, rcx
add rax, rax
mov rax, qword [rdx + rax*8 + 8]
mov r9, qword [rbp + 8]
cmp rax, r9
je 0x14000a8a2
add rcx, rcx
mov rcx, qword [rdx + rcx*8]
cmp r8, qword [rax + 0x10]
je 0x14000a89f
nop dword [rax]
cmp rax, rcx
je 0x14000a8a2
mov rax, qword [rax + 8]
cmp r8, qword [rax + 0x10]
jne 0x14000a890
mov rbx, rax
test rbx, rbx
cmove rbx, r9
lea rax, [rbx + 0x18]
jmp 0x14000a8b3
add rax, 0x18
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret