Function at 0x1400112f3
Capabilities:
Create thread
Get graphical window text
Inject dll
Inject thread
Log keystrokes via polling

Disassembly:
jmp 0x140016960
push rbp
push rdi
sub rsp, 0x478
lea rbp, [rsp + 0x40]
lea rdi, [rsp + 0x40]
mov ecx, 0xae
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [section..data]
xor rax, rbp
mov qword [rbp + 0x428], rax
lea rcx, [0x1400240f4]
call fcn.140011410
nop
lea rdx, str.Hello_World__n
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001108c
nop
lea rdx, str.Click_on_the_window_you_want_to_hide_
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001108c
lea rdx, [0x14001103c]
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
nop
xor eax, eax
cmp eax, 1
je 0x140016aa3
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x140016a92
lea rcx, [rbp + 0x28]
call qword [sym.imp.USER32.dll_GetCursorPos]
nop
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.USER32.dll_WindowFromPoint]
mov qword [rbp + 8], rax
cmp qword [rbp + 8], 0
je 0x140016a92
mov r8d, 0x80
lea rdx, [rbp + 0x50]
mov rcx, qword [rbp + 8]
call qword [sym.imp.USER32.dll_GetWindowTextA]
nop
lea rdx, str.Window_handle__HWND_:
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001108c
mov rdx, qword [rbp + 8]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___void_const____ptr64____ptr64]
lea rdx, [0x14001103c]
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
nop
lea rdx, str.Window_title:
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001108c
lea rdx, [rbp + 0x50]
mov rcx, rax
call fcn.14001108c
lea rdx, [0x14001103c]
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
nop
jmp 0x140016aa3
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x1400169d6
xor r9d, r9d
lea r8, [rbp + 0xf0]
mov edx, 0x104
lea rcx, str.._dll.dll
call qword [sym.imp.KERNEL32.dll_GetFullPathNameA]
nop
lea rdx, str.Found_window__Now_injecting_dll._n
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001108c
nop
lea rdx, [rbp + 0x214]
mov rcx, qword [rbp + 8]
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
nop
mov r8d, dword [rbp + 0x214]
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov qword [rbp + 0x238], rax
cmp qword [rbp + 0x238], 0
jne 0x140016b53
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0x424], eax
lea rdx, str.Failed_to_open_process._Error:
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001108c
mov ecx, dword [rbp + 0x424]
mov edx, ecx
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
lea rdx, [0x14001103c]
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
nop
xor eax, eax
jmp 0x140016e36
mov dword [rsp + 0x20], 4
mov r9d, 0x1000
mov r8d, 0x105
xor edx, edx
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [rbp + 0x258], rax
cmp qword [rbp + 0x258], 0
jne 0x140016bdd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0x424], eax
lea rdx, str.Failed_to_allocate_memory_in_target_process._Error:
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001108c
mov ecx, dword [rbp + 0x424]
mov edx, ecx
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
lea rdx, [0x14001103c]
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
nop
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor eax, eax
jmp 0x140016e36
mov qword [rsp + 0x20], 0
mov r9d, 0x105
lea r8, [rbp + 0xf0]
mov rdx, qword [rbp + 0x258]
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x140016c7f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0x424], eax
lea rdx, str.Failed_to_write_memory._Error:
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001108c
mov ecx, dword [rbp + 0x424]
mov edx, ecx
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
lea rdx, [0x14001103c]
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
nop
mov r9d, 0x8000
xor r8d, r8d
mov rdx, qword [rbp + 0x258]
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
nop
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor eax, eax
jmp 0x140016e36
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.LoadLibraryA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp + 0x278], rax
cmp qword [rbp + 0x278], 0
jne 0x140016d21
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0x424], eax
lea rdx, str.Failed_to_get_address_of_LoadLibraryA._Error:
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001108c
mov ecx, dword [rbp + 0x424]
mov edx, ecx
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
lea rdx, [0x14001103c]
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
nop
mov r9d, 0x8000
xor r8d, r8d
mov rdx, qword [rbp + 0x258]
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
nop
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor eax, eax
jmp 0x140016e36
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov rax, qword [rbp + 0x258]
mov qword [rsp + 0x20], rax
mov r9, qword [rbp + 0x278]
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov qword [rbp + 0x298], rax
cmp qword [rbp + 0x298], 0
jne 0x140016dd9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0x424], eax
lea rdx, str.Failed_to_create_remote_thread._Error:
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.14001108c
mov ecx, dword [rbp + 0x424]
mov edx, ecx
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
lea rdx, [0x14001103c]
mov rcx, rax
call qword [sym.imp.MSVCP140D.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]
nop
mov r9d, 0x8000
xor r8d, r8d
mov rdx, qword [rbp + 0x258]
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
nop
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor eax, eax
jmp 0x140016e36
mov edx, 0xffffffff
mov rcx, qword [rbp + 0x298]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
nop
mov r9d, 0x8000
xor r8d, r8d
mov rdx, qword [rbp + 0x258]
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
nop
mov rcx, qword [rbp + 0x298]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [rbp + 0x238]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call qword [sym.imp.MSVCP140D.dll_public:_int___cdecl_std::basic_istream_char__struct_std::char_traits_char__::get_void____ptr64]
nop
xor eax, eax
mov rdi, rax
lea rcx, [rbp - 0x40]
lea rdx, [0x14001ba90]
call fcn.14001139d
mov rax, rdi
mov rcx, qword [rbp + 0x428]
xor rcx, rbp
call fcn.140011217
lea rsp, [rbp + 0x438]
pop rdi
pop rbp
ret