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

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, 0x60
mov rax, qword [0x140023040]
xor rax, rsp
mov qword [rsp + 0x50], rax
xor edi, edi
mov qword [rsp + 0x30], rdi
lea ebx, [rdi + 2]
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
movzx edx, bx
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
lea rdx, str.Press_F1_to_toggle_the_monkey_media
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140015530
lea rdx, [0x14001c50c]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140015530
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
movzx edx, bx
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
lea rdx, str.Press_F2_to_Reload_monkey_config__edit_monkey_in_config.txt
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140015530
lea rdx, [0x14001c50c]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140015530
lea rcx, [rsp + 0x30]
call fcn.140014690
xor bl, bl
lea ecx, [rdi + 8]
call fcn.14001722c
lea rcx, [0x140014420]
mov qword [rax], rcx
mov qword [rsp + 0x48], rax
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r9, rax
lea r8, [0x140015940]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14001467b
lea ebp, [rdi + 3]
lea r14d, [rdi + 4]
mov rdi, qword [rsp + 0x30]
nop dword [rax]
movzx esi, bl
mov ecx, 0x70
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x140014630
test bl, bl
sete bl
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
test sil, sil
jne 0x1400145fb
movzx edx, bp
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
lea rdx, str.Media_ON
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140015530
lea rdx, [0x14001c50c]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140015530
jmp 0x140014656
movzx edx, r14w
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
lea rdx, str.Media_OFF
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140015530
lea rdx, [0x14001c50c]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140015530
jmp 0x1400145a0
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14001464e
lea rcx, [rsp + 0x30]
call fcn.140014690
mov rdi, qword [rsp + 0x30]
test bl, bl
je 0x1400145a0
mov ecx, dword [rdi + 0x14]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x14001466e
cmp dword [rdi + 0x14], 0
jne 0x1400145a0
mov rcx, rdi
call fcn.140016370
jmp 0x1400145a0
mov dword [rsp + 0x40], edi
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3