Function at 0x1400a6570
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, 0x30
mov rbp, rcx
lea rdi, [rcx - 0x30]
mov rax, qword [rdi]
movsxd rdx, dword [rax + 4]
lea rax, vtable.entities::components::behavior.0
mov qword [rdx + rcx - 0x30], rax
mov rax, qword [rdi]
movsxd rdx, dword [rax + 4]
lea ecx, [rdx - 0x30]
mov dword [rdx + rbp - 0x34], ecx
mov rbx, qword [0x1401125f0]
mov r8, qword [rdi + 0x18]
add r8, 0x28
cmp qword [r8 + 0x18], 0x10
jb 0x1400a65c9
mov r8, qword [r8]
mov rcx, qword [rbx]
mov edx, 0xfff0b9d8
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_getfield]
mov rcx, qword [rbx]
lea r8, str.on_destroy
mov esi, 0xffffffff
mov edx, esi
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_getfield]
mov rcx, qword [rbx]
mov r8d, esi
lea edx, [rsi - 1]
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_rotate]
mov rcx, qword [rbx]
lea edx, [rsi - 1]
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_settop]
mov rcx, qword [rbx]
mov edx, esi
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_type]
test eax, eax
jne 0x1400a663a
mov rcx, qword [rbx]
xor edx, edx
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_settop]
jmp 0x1400a6746
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
mov rdx, qword [rcx + rdi + 0x10]
xor r15d, r15d
mov r14d, r15d
mov rax, qword [rdx + 0x20]
test rax, rax
je 0x1400a6660
mov r15, qword [rdx + 0x18]
mov r14, rax
lock inc dword [rax + 0xc]
mov rax, qword [0x140112620]
mov rcx, qword [rax]
mov r8, qword [rcx]
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x1400a667a
lock inc dword [rax + 8]
mov rax, qword [rdi + 8]
mov qword [rsp + 0x20], rax
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x20]
mov rcx, qword [0x1401125f0]
call fcn.140094160
test r14, r14
je 0x1400a673a
cmp dword [r14 + 8], 0
je 0x1400a6716
cmp qword [rdi + 0x18], 0
je 0x1400a6716
mov rbx, qword [0x1401125f0]
mov rcx, qword [rbx]
mov edx, 8
lea r8d, [rdx - 7]
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_newuserdatauv]
mov qword [rax], r15
mov qword [rax + 8], r14
lock inc dword [r14 + 0xc]
mov rcx, qword [rbx]
lea r8, str.entity
mov edx, 0xfff0b9d8
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_getfield]
mov rcx, qword [rbx]
mov edx, 0xfffffffe
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_setmetatable]
mov edx, 1
mov rcx, qword [0x1401125f0]
call fcn.140093f80
mov rcx, qword [0x1401125f0]
call fcn.1400942b0
mov eax, esi
lock xadd dword [r14 + 0xc], eax
cmp eax, 1
jne 0x1400a6746
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
jmp 0x1400a6746
mov rcx, qword [0x1401125f0]
call fcn.1400942b0
mov r9, qword [0x1401125f0]
mov r8, qword [r9]
mov rax, rdi
shr rax, 8
movzx edx, al
movzx eax, dil
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs r10, 0x100000001b3
imul rax, r10
xor rdx, rax
imul rdx, r10
mov rax, rdi
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r10
mov rax, rdi
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r10
mov rax, rdi
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r10
mov rax, rdi
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r10
mov rax, rdi
shr rax, 0x30
movzx ecx, al
xor rdx, rcx
imul rdx, r10
mov rax, rdi
shr rax, 0x38
xor rdx, rax
imul rdx, r10
mov rcx, qword [r8 + 0x40]
and rcx, rdx
add rcx, rcx
mov rdx, qword [r8 + 0x28]
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, qword [r8 + 0x18]
je 0x1400a68a9
mov rcx, qword [rdx + rcx*8]
cmp rdi, qword [rax + 0x10]
je 0x1400a6823
nop word [rax + rax]
cmp rax, rcx
je 0x1400a68a9
mov rax, qword [rax + 8]
cmp rdi, qword [rax + 0x10]
jne 0x1400a6810
mov byte [rax + 0x18], 0
mov rax, qword [r9]
inc dword [rax + 0x50]
mov rbx, qword [rbp - 0x10]
test rbx, rbx
je 0x1400a685f
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400a685f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, esi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400a685f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov rbx, qword [rbp - 0x20]
test rbx, rbx
je 0x1400a6890
mov eax, esi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400a6890
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
cmp esi, 1
jne 0x1400a6890
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret
lea rcx, str.invalid_unordered_map_K__T__key
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3