Function at 0x401460
Capabilities:
Log keystrokes via polling

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push ebx
push ecx
add esp, 0xffffff80
call sym.___main
lea eax, [ebp - 0x38]
mov ecx, eax
call method.std::set_short__std::less_short___std::allocator_short___.set__
mov dword [ebp - 0xc], 0x410020
mov eax, dword [ebp - 0xc]
mov ecx, eax
call sym.std::unordered_map_short__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::hash_short___std::equal_to_short___std::allocator_std::pair_short_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_________::begin__
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0xc]
mov ecx, eax
call method.std::unordered_map_short__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::hash_short___std::equal_to_short___std::allocator_std::pair_short_const__std::__cxx11::basic_string_char__std::char_traits_char___std::a
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x58]
mov dword [esp], eax
call method.bool_std::__detail::operator__std::pair_short_const__std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char_______false__std::__detail::_Node_iterator_base_std::pair_short_const__std::__cxx11::basic_string_char__std::char_trai
test al, al
je 0x401481
lea eax, [ebp - 0x58]
mov ecx, eax
call method.std::__detail::_Node_iterator_std::pair_short_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______false__false_.operator___const
mov edx, eax
lea eax, [ebp - 0x54]
mov dword [esp], edx
mov ecx, eax
call method.std::pair_short_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____.pair_std::pair_short_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char______const_
sub esp, 4
movzx eax, word [ebp - 0x54]
cwde
mov dword [esp], eax
call sym._GetAsyncKeyState_4
sub esp, 4
mov word [ebp - 0xe], ax
cmp word [ebp - 0xe], 0
jns 0x401577
lea eax, [ebp - 0x38]
mov ecx, eax
call method.std::set_short__std::less_short___std::allocator_short___.end___const
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x54]
mov dword [esp], edx
mov ecx, eax
call method.std::set_short__std::less_short___std::allocator_short___.find_short_const_
sub esp, 4
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
lea edx, [ebp - 0x20]
mov dword [esp], edx
mov ecx, eax
call method.std::_Rb_tree_const_iterator_short_.operator_std::_Rb_tree_const_iterator_short__const__const
sub esp, 4
test al, al
je 0x401564
lea eax, [ebp - 0x54]
add eax, 4
mov dword [esp + 4], eax
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std::allocator_char____std::basic_ostream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov dword [esp + 4], str._DOWN
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], sym.std::basic_ostream_char__std::char_traits_char____std::endl_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call sym.std::ostream::operator___std::ostream____std::ostream__
sub esp, 4
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x54]
mov dword [esp], edx
mov ecx, eax
call method.std::set_short__std::less_short___std::allocator_short___.insert_short_const_
sub esp, 4
mov byte [ebp - 0x69], 0
lea eax, [ebp - 0x38]
mov ecx, eax
call method.std::set_short__std::less_short___std::allocator_short___.end___const
mov dword [ebp - 0x18], eax
mov ebx, 1
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x54]
mov dword [esp], edx
mov ecx, eax
call method.std::set_short__std::less_short___std::allocator_short___.find_short_const_
sub esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x69], 1
lea eax, [ebp - 0x14]
lea edx, [ebp - 0x18]
mov dword [esp], edx
mov ecx, eax
call method.std::_Rb_tree_const_iterator_short_.operator__std::_Rb_tree_const_iterator_short__const__const
sub esp, 4
test al, al
je 0x4015cc
cmp word [ebp - 0xe], 0
jne 0x4015cc
mov eax, 1
jmp 0x4015d1
mov eax, 0
cmp byte [ebp - 0x69], 0
test bl, bl
test al, al
je 0x401625
lea eax, [ebp - 0x54]
add eax, 4
mov dword [esp + 4], eax
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std::allocator_char____std::basic_ostream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov dword [esp + 4], 0x40a06d
mov dword [esp], eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], sym.std::basic_ostream_char__std::char_traits_char____std::endl_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call sym.std::ostream::operator___std::ostream____std::ostream__
sub esp, 4
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x54]
mov dword [esp], edx
mov ecx, eax
call method.std::set_short__std::less_short___std::allocator_short___.erase_short_const_
sub esp, 4
lea eax, [ebp - 0x54]
mov ecx, eax
call method.std::pair_short_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____.pair__
lea eax, [ebp - 0x58]
mov ecx, eax
call method.std::__detail::_Node_iterator_std::pair_short_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______false__false_.operator__
jmp 0x4014a2