Function at 0x140093720
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, 0x60
mov rax, qword [0x14010cfb0]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov r15, rcx
mov rdi, qword [rcx]
mov rdi, qword [rdi + 0x18]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x140093998
xor ebp, ebp
nop
cmp byte [rbx + 0x18], 0
je 0x14009398c
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x40], rax
mov r14, qword [rbx + 0x10]
mov rsi, qword [0x1401125f0]
mov r8, qword [r14 + 0x18]
add r8, 0x28
cmp qword [r8 + 0x18], 0x10
jb 0x14009379a
mov r8, qword [r8]
mov rcx, qword [rsi]
mov edx, 0xfff0b9d8
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_getfield]
mov rcx, qword [rsi]
lea r8, str.on_update
mov edx, 0xffffffff
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_getfield]
mov rcx, qword [rsi]
mov edx, 0xfffffffe
lea r8d, [rdx + 1]
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_rotate]
mov rcx, qword [rsi]
mov edx, 0xfffffffe
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_settop]
mov rcx, qword [rsi]
mov edx, 0xffffffff
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_type]
test eax, eax
jne 0x140093811
mov rcx, qword [rsi]
xor edx, edx
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_settop]
jmp 0x14009396d
xorps xmm0, xmm0
mov rax, qword [r14]
movsxd rcx, dword [rax + 4]
mov rax, qword [rcx + r14 + 0x10]
movdqu xmmword [rsp + 0x48], xmm0
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x140093841
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rcx
lock inc dword [rcx + 0xc]
movdqu xmmword [rsp + 0x20], xmm0
mov rax, qword [r14 + 0x10]
test rax, rax
je 0x140093854
lock inc dword [rax + 8]
mov rax, qword [r14 + 8]
mov qword [rsp + 0x20], rax
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x28], rax
mov rax, qword [0x140112620]
mov r8, qword [rax]
mov r8, qword [r8]
lea rdx, [rsp + 0x20]
mov rcx, qword [0x1401125f0]
call fcn.140094160
mov rsi, qword [rsp + 0x50]
test rsi, rsi
je 0x140093940
cmp dword [rsi + 8], 0
je 0x140093940
cmp qword [r14 + 0x18], 0
je 0x140093940
mov r14, qword [0x1401125f0]
mov rcx, qword [r14]
mov edx, 8
lea r8d, [rdx - 7]
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_newuserdatauv]
mov qword [rax], rbp
mov qword [rax + 8], rbp
test rsi, rsi
je 0x1400938e4
mov rcx, qword [rsp + 0x48]
mov qword [rax], rcx
mov qword [rax + 8], rsi
lock inc dword [rsi + 0xc]
mov rsi, qword [rsp + 0x50]
mov rcx, qword [r14]
lea r8, str.entity
mov edx, 0xfff0b9d8
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_getfield]
mov rcx, qword [r14]
mov edx, 0xfffffffe
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_setmetatable]
movsd xmm0, qword [0x1401125d8]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm1, xmm0
mov rax, qword [0x1401125f0]
mov rcx, qword [rax]
mov rcx, qword [rcx]
call qword [sym.imp.lua54.dll_lua_pushnumber]
mov edx, 2
mov rcx, qword [0x1401125f0]
call fcn.140093f80
mov rcx, qword [0x1401125f0]
call fcn.1400942b0
nop
test rsi, rsi
je 0x14009396d
mov eax, 0xffffffff
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x14009396d
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14009398c
mov eax, 0xffffffff
lock xadd dword [rcx + 0xc], eax
cmp eax, 1
jne 0x14009398c
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x140093760
mov rdi, qword [r15]
cmp dword [rdi + 0x50], 0x14
jle 0x140093aa8
mov rax, qword [rdi + 0x18]
mov rbx, qword [rax]
cmp rbx, rax
je 0x140093aa8
movabs rbp, 0xcbf29ce484222325
movabs rsi, 0x100000001b3
nop dword [rax]
cmp byte [rbx + 0x18], 0
jne 0x140093a98
mov rcx, rbx
movzx r8d, byte [rbx + 0x10]
xor r8, rbp
imul r8, rsi
movzx edx, byte [rbx + 0x11]
xor r8, rdx
imul r8, rsi
movzx edx, byte [rbx + 0x12]
xor r8, rdx
imul r8, rsi
movzx edx, byte [rbx + 0x13]
xor r8, rdx
imul r8, rsi
movzx edx, byte [rbx + 0x14]
xor r8, rdx
imul r8, rsi
movzx edx, byte [rbx + 0x15]
xor r8, rdx
imul r8, rsi
movzx edx, byte [rbx + 0x16]
xor r8, rdx
imul r8, rsi
movzx edx, byte [rbx + 0x17]
xor r8, rdx
imul r8, rsi
mov rdx, qword [rdi + 0x40]
and rdx, r8
add rdx, rdx
mov r8, qword [rdi + 0x28]
mov r9, qword [r8 + rdx*8]
cmp qword [r8 + rdx*8 + 8], rbx
jne 0x140093a6a
cmp r9, rbx
jne 0x140093a5f
mov qword [r8 + rdx*8], rax
mov qword [r8 + rdx*8 + 8], rax
jmp 0x140093a76
mov rax, qword [rbx + 8]
mov qword [r8 + rdx*8 + 8], rax
jmp 0x140093a76
cmp r9, rbx
jne 0x140093a76
mov rax, qword [rbx]
mov qword [r8 + rdx*8], rax
mov rbx, qword [rbx]
dec qword [rdi + 0x20]
mov rax, qword [rcx + 8]
mov qword [rax], rbx
mov rax, qword [rcx + 8]
mov qword [rbx + 8], rax
mov edx, 0x20
call fcn.1400c6388
jmp 0x140093a9b
mov rbx, qword [rbx]
mov rax, qword [rdi + 0x18]
cmp rbx, rax
jne 0x1400939d0
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400c61b0
lea r11, [rsp + 0x60]
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