Function at 0x180002e20
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x47]
sub rsp, 0xa0
mov rax, qword [0x18000b040]
xor rax, rsp
mov qword [rbp + 0x3f], rax
xor r14d, r14d
lea r15, [0x18000b0c0]
nop dword [rax + rax]
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180002f80
mov rax, qword [0x18000ba60]
cmp qword [0x18000ba58], rax
je 0x180002f75
mov qword [rbp - 9], r15
mov rcx, r15
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x180003263
cmp dword [0x18000b10c], 0x7fffffff
je 0x18000324d
mov rsi, qword [0x18000ba60]
mov rbx, qword [0x18000ba58]
cmp rbx, rsi
je 0x180002f6c
mov rdi, qword [rbx]
lea rdx, [rdi + 0x60]
mov qword [rsp + 0x20], r14
mov r9d, 4
lea r8, [rbp - 0x15]
mov rcx, qword [0x18000ba50]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x180002f5f
mov qword [rsp + 0x20], r14
mov r9d, 4
lea r8, [rbp - 0x15]
lea rdx, [rdi + 0x5c]
mov rcx, qword [0x18000ba50]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x180002f5f
lea rdx, str.Failed_to_write_memory_at_address:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180004470
mov rcx, rax
lea rdx, [0x180001320]
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, [rdi + 0x5c]
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, [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 rcx, rax
lea rdx, [0x180004650]
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]
add rbx, 8
cmp rbx, rsi
jne 0x180002ec4
mov rcx, r15
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x72
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180003063
mov rbx, qword [0x18000ba58]
mov rsi, qword [0x18000ba60]
cmp rbx, rsi
je 0x180003058
nop dword [rax + rax]
mov rdi, qword [rbx]
lea rdx, [rdi + 0x54]
mov qword [rsp + 0x20], r14
mov r9d, 4
lea r8, [rbp - 0x19]
mov rcx, qword [0x18000ba50]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x18000304b
mov qword [rsp + 0x20], r14
mov r9d, 4
lea r8, [rbp - 0x19]
lea rdx, [rdi + 0x5c]
mov rcx, qword [0x18000ba50]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x18000304b
lea rdx, str.Failed_to_write_memory_at_address:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180004470
mov rcx, rax
lea rdx, [0x180001320]
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, [rdi + 0x5c]
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, [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 rcx, rax
lea rdx, [0x180004650]
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]
add rbx, 8
cmp rbx, rsi
jne 0x180002fb0
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800030e8
mov ecx, 1
call fcn.180005688
mov qword [rbp - 9], rax
lea rcx, [rbp - 0x21]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r14d
mov r9, rax
lea r8, [0x180005490]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp - 0x29], rax
test rax, rax
je 0x18000327b
cmp dword [rbp - 0x21], 0
je 0x18000326f
movaps xmm0, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 9], xmm0
lea rcx, [rbp - 9]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x18000326f
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x29], xmm0
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180003108
call fcn.180002250
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x24
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18000320d
mov rbx, qword [0x18000ba30]
mov rdi, qword [0x18000ba38]
cmp rbx, rdi
je 0x180003202
mov dword [rbp + 7], 0xffffffff
mov dword [rbp + 0xb], 8
mov dword [rbp + 0xf], 0x40600000
mov dword [rbp + 0x13], 0x3f8ccccd
mov dword [rbp + 0x17], 0x3cf5c28f
mov dword [rbp + 0x1b], 0x3dcccccd
mov dword [rbp + 0x1f], 7
mov dword [rbp + 0x23], 0xffff0000
mov dword [rbp + 0x27], 0
mov dword [rbp + 0x2b], 0x41f00000
mov dword [rbp + 0x2f], 0x42480000
mov dword [rbp + 0x33], 0x3f000000
mov dword [rbp + 0x37], 0x40133333
nop
mov qword [rsp + 0x20], r14
mov r9d, 0x34
lea r8, [rbp + 7]
mov rdx, qword [rbx]
mov rcx, qword [0x18000ba50]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x1800031d6
lea rdx, str.sniper_ON_:_Error
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180004470
mov rcx, rax
lea rdx, [0x180004650]
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]
add rbx, 8
cmp rbx, rdi
jne 0x180003190
lea rdx, str.Sniper_Fast_:ON
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180004470
mov rcx, rax
lea rdx, [0x180004650]
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 ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x2e
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18000322d
call fcn.180002740
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x18000328b
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x180002e60
mov dword [0x18000b10c], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp - 0x21], r14d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
lea rdx, str.Exit_key_pressed__exiting_key_handler...
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180004470
mov rcx, rax
lea rdx, [0x180004650]
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 [rbp + 0x3f]
xor rcx, rsp
call fcn.180005660
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret