Function at 0x1800a4ae0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x170
mov rdi, rdx
mov rsi, rcx
movzx r9d, dl
movabs r14, 0xcbf29ce484222325
xor r9, r14
movabs rbp, 0x100000001b3
imul r9, rbp
mov rax, rdx
sar rax, 8
movzx r8d, al
xor r9, r8
imul r9, rbp
mov rax, rdx
sar rax, 0x10
movzx ecx, al
xor r9, rcx
imul r9, rbp
mov rax, rdx
sar rax, 0x18
movzx ecx, al
xor r9, rcx
imul r9, rbp
mov rax, rdx
sar rax, 0x20
movzx ecx, al
xor r9, rcx
imul r9, rbp
mov rax, rdx
sar rax, 0x28
movzx ecx, al
xor r9, rcx
imul r9, rbp
mov rax, rdx
sar rax, 0x30
movzx ecx, al
xor r9, rcx
imul r9, rbp
mov rax, rdx
sar rax, 0x38
movzx ecx, al
xor r9, rcx
imul r9, rbp
mov rcx, qword [rsi + 0x30]
and rcx, r9
shl rcx, 4
mov rax, qword [rsi + 0x18]
add rax, rcx
mov rbx, qword [rax + 8]
mov rcx, qword [rsi + 8]
cmp rbx, rcx
je 0x1800a4bd3
mov rax, qword [rax]
cmp rdx, qword [rbx + 0x10]
je 0x1800a4bd5
cmp rbx, rax
je 0x1800a4bd3
mov rbx, qword [rbx + 8]
cmp rdi, qword [rbx + 0x10]
jne 0x1800a4bc2
jmp 0x1800a4bd5
xor ebx, ebx
test rbx, rbx
cmove rbx, rcx
cmp rbx, rcx
je 0x1800a4d24
mov rdi, qword [rbx + 0x18]
mov rcx, qword [rdi]
mov r8d, dword [rcx + 0x2c]
shl r8, 3
mov rdx, qword [rdi + 0x10]
mov rcx, qword [rcx + 0x40]
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rdi + 0x10]
call fcn.180199d8c
mov rcx, qword [rdi + 8]
mov rax, qword [rcx]
call qword [rax + 8]
movzx edx, byte [rbx + 0x10]
xor rdx, r14
imul rdx, rbp
movzx eax, byte [rbx + 0x11]
xor rdx, rax
imul rdx, rbp
movzx eax, byte [rbx + 0x12]
xor rdx, rax
imul rdx, rbp
movzx eax, byte [rbx + 0x13]
xor rdx, rax
imul rdx, rbp
movzx eax, byte [rbx + 0x14]
xor rdx, rax
imul rdx, rbp
movzx eax, byte [rbx + 0x15]
xor rdx, rax
imul rdx, rbp
movzx eax, byte [rbx + 0x16]
xor rdx, rax
imul rdx, rbp
movzx eax, byte [rbx + 0x17]
xor rdx, rax
imul rdx, rbp
and rdx, qword [rsi + 0x30]
shl rdx, 4
add rdx, qword [rsi + 0x18]
mov rax, qword [rdx]
cmp qword [rdx + 8], rbx
jne 0x1800a4c9d
cmp rax, rbx
jne 0x1800a4c93
mov rax, qword [rsi + 8]
mov qword [rdx], rax
mov qword [rdx + 8], rax
jmp 0x1800a4ca8
mov rax, qword [rbx + 8]
mov qword [rdx + 8], rax
jmp 0x1800a4ca8
cmp rax, rbx
jne 0x1800a4ca8
mov rax, qword [rbx]
mov qword [rdx], rax
mov rcx, qword [rbx]
dec qword [rsi + 0x10]
mov rax, qword [rbx + 8]
mov qword [rax], rcx
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
mov rsi, qword [rbx + 0x18]
test rsi, rsi
je 0x1800a4d12
mov rdi, qword [rsi + 8]
test rdi, rdi
je 0x1800a4d05
lea rax, vtable.YimMenu::VMTHook.0
mov qword [rdi], rax
cmp byte [rdi + 0x18], 0
je 0x1800a4cef
mov rdx, qword [rdi + 0x30]
mov rax, qword [rdi + 0x28]
mov qword [rdx], rax
mov byte [rdi + 0x18], 0
mov rcx, qword [rdi + 0x20]
call fcn.180199d8c
mov edx, 0x38
mov rcx, rdi
call fcn.180199d8c
mov edx, 0x18
mov rcx, rsi
call fcn.180199d8c
mov edx, 0x20
mov rcx, rbx
call fcn.180199d8c
jmp 0x1800a4de9
mov dword [rsp + 0x20], 0x76
mov dword [rsp + 0x24], 4
lea rax, str.C:_action_runner_workHorseMenuHorseMenu_srcgame_backendNativeHooks.cpp
mov qword [rsp + 0x28], rax
lea rax, str.void___cdecl_YimMenu::NativeHooks::UnregisterProgramImpl_class_rage::scrProgram__
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x20]
mov edx, 3
lea rcx, [rsp + 0x40]
call fcn.180141a70
nop
lea rbx, [rax + 0x28]
lea rdx, str.Cannot_find_program
mov rcx, rbx
call fcn.18005a1b0
lea rdx, [0x1801ddc0c]
mov rcx, rbx
call fcn.18005a1b0
lea rdx, [0x180085020]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
lea rdx, [0x1800851e0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov edx, dword [rdi + 0x58]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_long_unsigned___int64_____ptr64]
lea rdx, [0x180084ff0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
lea rdx, [0x180085050]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rcx, rax
lea rdx, str._in_registry._This_is_bad_
call fcn.18005a1b0
nop
lea rcx, [rsp + 0x40]
call fcn.180140ce0
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret