Function at 0x180022860
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x90
mov rax, qword [0x180058240]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov rsi, rdx
mov rbp, rcx
lea rdi, [0x180058e10]
mov qword [rsp + 0x40], rdi
mov rcx, rdi
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x180022a97
cmp dword [0x180058e5c], 0x7fffffff
je 0x180022aa2
test rbp, rbp
je 0x180022ab7
mov r8, rbp
lea rdx, [rsp + 0x38]
lea rcx, [0x180058e60]
call fcn.1800222b0
mov rbx, qword [rsp + 0x38]
cmp rbx, qword [0x180058e68]
jne 0x1800228f3
mov rcx, rdi
call sub.MSVCP140.dll__Mtx_unlock
xor al, al
jmp 0x180022a28
test rsi, rsi
jne 0x1800228fc
mov rsi, qword [rbx + 0x18]
call fcn.180027af0
test eax, eax
jne 0x180022ada
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
call fcn.1800281a0
mov r14d, eax
test eax, eax
jne 0x180022b1b
mov rdx, rsi
mov rcx, rbp
call fcn.180027820
mov esi, eax
test eax, eax
jne 0x180022b62
call fcn.180027ba0
mov esi, eax
test eax, eax
jne 0x180022a50
movzx ecx, byte [rbx + 0x10]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rbx + 0x11]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 0x12]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 0x13]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 0x14]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 0x15]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 0x16]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbx + 0x17]
xor rcx, rax
imul rdx, rcx
and rdx, qword [0x180058e90]
shl rdx, 4
add rdx, qword [0x180058e78]
mov rax, qword [rdx]
cmp qword [rdx + 8], rbx
jne 0x1800229ec
cmp rax, rbx
jne 0x1800229e2
mov rax, qword [0x180058e68]
mov qword [rdx], rax
mov qword [rdx + 8], rax
jmp 0x1800229f7
mov rax, qword [rbx + 8]
mov qword [rdx + 8], rax
jmp 0x1800229f7
cmp rax, rbx
jne 0x1800229f7
mov rax, qword [rbx]
mov qword [rdx], rax
mov rcx, qword [rbx]
dec qword [0x180058e70]
mov rax, qword [rbx + 8]
mov qword [rax], rcx
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
mov edx, 0x20
mov rcx, rbx
call fcn.180028dfc
nop
mov rcx, rdi
call sub.MSVCP140.dll__Mtx_unlock
mov al, 1
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.180029320
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
call fcn.180027990
nop
mov edx, esi
lea rcx, [rsp + 0x68]
call fcn.180022da0
nop
mov r8, rax
lea rdx, str.DetourTransactionCommit_error:
lea rcx, [rsp + 0x48]
call fcn.180021e50
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.180022450
lea rdx, [0x180055118]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov ecx, 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3
mov dword [0x180058e5c], 0x7ffffffe
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
lea rdx, str.Invalid_function_pointer.
lea rcx, [rsp + 0x20]
call fcn.1800223c0
lea rdx, [0x180055150]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
mov edx, eax
lea rcx, [rsp + 0x48]
call fcn.180022da0
nop
mov r8, rax
lea rdx, str.DetourTransactionBegin_error:
lea rcx, [rsp + 0x68]
call fcn.180021e50
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.180022450
lea rdx, [0x180055118]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call fcn.180027990
mov edx, r14d
lea rcx, [rsp + 0x68]
call fcn.180022da0
nop
mov r8, rax
lea rdx, str.DetourUpdateThread_error:
lea rcx, [rsp + 0x48]
call fcn.180021e50
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.180022450
lea rdx, [0x180055118]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call fcn.180027990
mov edx, esi
lea rcx, [rsp + 0x68]
call fcn.180022da0
nop
mov r8, rax
lea rdx, str.DetourDetach_error:
lea rcx, [rsp + 0x48]
call fcn.180021e50
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.180022450
lea rdx, [0x180055118]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3