Function at 0x180002dc0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x18000b040]
xor rax, rsp
mov qword [rsp + 0x38], rax
xor r15d, r15d
nop word [rax + rax]
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180002f57
mov rdx, qword [0x18000b9f8]
mov rax, qword [0x18000ba00]
cmp rdx, rax
je 0x180002f4c
sub rax, rdx
mov edi, r15d
sar rax, 3
test rax, rax
je 0x180002f4c
mov rsi, r15
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsi + rdx]
lea r8, [rsp + 0x30]
mov rcx, qword [0x18000b9f0]
mov r9d, 4
mov qword [rsp + 0x20], r15
lea r14, [rax + 0x60]
mov rdx, r14
lea rbp, [rax + 0x5c]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x180002ea0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Failed_to_read_memory_at_0x
mov ebx, eax
call fcn.180004370
mov rcx, rax
lea rdx, [0x180001300]
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 rdx, r14
jmp 0x180002ef2
mov rcx, qword [0x18000b9f0]
lea r8, [rsp + 0x30]
mov r9d, 4
mov qword [rsp + 0x20], r15
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x180002f25
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Failed_to_write_memory_at_0x
mov ebx, eax
call fcn.180004370
mov rcx, rax
lea rdx, [0x180001300]
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 rdx, rbp
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]
mov rcx, rax
lea rdx, str.._Error_Code:
call fcn.180004370
mov edx, ebx
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_int____ptr64]
mov rcx, rax
lea rdx, [0x180004550]
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::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [0x18000ba00]
inc edi
mov rdx, qword [0x18000b9f8]
add rsi, 8
sub rcx, rdx
movsxd rax, edi
sar rcx, 3
cmp rax, rcx
jb 0x180002e40
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x72
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800030b7
mov rax, qword [0x18000b9f8]
mov rcx, qword [0x18000ba00]
cmp rax, rcx
je 0x1800030ac
sub rcx, rax
mov edi, r15d
sar rcx, 3
test rcx, rcx
je 0x1800030ac
mov rsi, r15
nop dword [rax + rax]
mov rcx, qword [rsi + rax]
lea r8, [rsp + 0x34]
mov r9d, 4
mov qword [rsp + 0x20], r15
lea r14, [rcx + 0x54]
lea rbp, [rcx + 0x5c]
mov rdx, r14
mov rcx, qword [0x18000b9f0]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x180003000
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Failed_to_read_memory_at_0x
mov ebx, eax
call fcn.180004370
mov rcx, rax
lea rdx, [0x180001300]
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 rdx, r14
jmp 0x180003052
mov rcx, qword [0x18000b9f0]
lea r8, [rsp + 0x34]
mov r9d, 4
mov qword [rsp + 0x20], r15
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x180003085
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Failed_to_write_memory_at_0x
mov ebx, eax
call fcn.180004370
mov rcx, rax
lea rdx, [0x180001300]
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 rdx, rbp
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]
mov rcx, rax
lea rdx, str.._Error_Code:
call fcn.180004370
mov edx, ebx
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_int____ptr64]
mov rcx, rax
lea rdx, [0x180004550]
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::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rdx, qword [0x18000ba00]
inc edi
mov rax, qword [0x18000b9f8]
add rsi, 8
sub rdx, rax
movsxd rcx, edi
sar rdx, 3
cmp rcx, rdx
jb 0x180002fa0
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800030d7
call fcn.180002970
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800030f7
call fcn.180002230
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x24
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180003117
call fcn.180002570
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x2e
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180003137
call fcn.180002760
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x180002df0