Function at 0x140011307
Capabilities:
Log keystrokes via polling

Disassembly:
jmp 0x140012270
push rbp
push rdi
sub rsp, 0x208
lea rbp, [rsp + 0x20]
lea rcx, [0x1400250f3]
call fcn.140011410
mov byte [rbp + 4], 0
mov byte [rbp + 0x24], 0
mov byte [rbp + 0x44], 0
mov byte [rbp + 0x64], 0
mov byte [rbp + 0x84], 0
movzx eax, byte [0x14001f001]
test eax, eax
je 0x140012582
mov ecx, 0x7b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x1400122f5
mov byte [0x14001f001], 0
lea rdx, str.Program_wy
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]
jmp 0x140012582
mov ecx, 0x58
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x1400123a2
movzx eax, byte [0x14001f180]
test eax, eax
jne 0x140012325
mov dword [rbp + 0x1d4], 1
jmp 0x14001232f
mov dword [rbp + 0x1d4], 0
movzx eax, byte [rbp + 0x1d4]
mov byte [0x14001f180], al
movzx eax, byte [0x14001f180]
test eax, eax
je 0x140012357
lea rax, [0x14001bcc0]
mov qword [rbp + 0x1d8], rax
jmp 0x140012365
lea rax, [0x14001bcd0]
mov qword [rbp + 0x1d8], rax
lea rdx, str.PPM
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 + 0x1d8]
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]
mov ecx, 0xc8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x52
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x1400123c0
mov byte [rbp + 0x1d4], 1
jmp 0x1400123c7
mov byte [rbp + 0x1d4], 0
movzx eax, byte [rbp + 0x1d4]
mov byte [rbp + 0xa4], al
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x1400123f2
mov byte [rbp + 0x1d4], 1
jmp 0x1400123f9
mov byte [rbp + 0x1d4], 0
movzx eax, byte [rbp + 0x1d4]
mov byte [rbp + 0xc4], al
movzx eax, byte [rbp + 0xa4]
test eax, eax
je 0x14001242c
movzx eax, byte [rbp + 0xc4]
test eax, eax
je 0x14001242c
movzx eax, byte [rbp + 0x64]
test eax, eax
jne 0x14001242c
mov byte [rbp + 0x64], 1
mov byte [rbp + 0x24], 1
movzx eax, byte [rbp + 0x64]
test eax, eax
je 0x1400124ad
movzx eax, byte [section..data]
test eax, eax
je 0x14001248e
movzx eax, byte [rbp + 0xc4]
test eax, eax
je 0x14001248e
mov dl, 1
mov ecx, 1
call fcn.1400113ed
mov byte [rbp + 0x24], 1
movzx eax, byte [rbp + 0xa4]
mov byte [rbp + 0x84], al
call qword [sym.imp.ucrtbased.dll_rand]
cdq
mov ecx, 0x29
idiv ecx
mov eax, edx
add eax, 0x1b
mov dword [rbp + 0xe4], eax
mov ecx, dword [rbp + 0xe4]
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400124ad
xor edx, edx
mov ecx, 1
call fcn.1400113ed
mov byte [rbp + 0x24], 0
mov byte [rbp + 0x64], 0
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x1400124cb
mov byte [rbp + 0x1d4], 1
jmp 0x1400124d2
mov byte [rbp + 0x1d4], 0
movzx eax, byte [rbp + 0x1d4]
mov byte [rbp + 0x104], al
movzx eax, byte [0x14001f180]
test eax, eax
je 0x14001252f
movzx eax, byte [rbp + 0x44]
test eax, eax
je 0x14001250b
mov dl, 1
mov ecx, 2
call fcn.1400113ed
mov ecx, 0x28
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14001252d
movzx eax, byte [rbp + 0x104]
test eax, eax
je 0x14001252d
mov dl, 1
mov ecx, 2
call fcn.1400113ed
mov ecx, 0x1c
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140012545
movzx eax, byte [rbp + 0x104]
test eax, eax
je 0x140012545
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx eax, byte [rbp + 0xa4]
test eax, eax
jne 0x140012572
movzx eax, byte [rbp + 0x84]
test eax, eax
je 0x140012572
mov byte [rbp + 0x84], 0
mov byte [rbp + 0x64], 0
xor edx, edx
mov ecx, 1
call fcn.1400113ed
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400122a2
lea rsp, [rbp + 0x1e8]
pop rdi
pop rbp
ret