Function at 0x401000
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x800
push 0x800
push 0
lea eax, [ebp - 0x800]
push eax
call fcn.00402bf0
add esp, 0xc
push 0x800
lea ecx, [ebp - 0x800]
push ecx
push 0
xor edx, edx
mov dl, byte [0x408030]
push edx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea eax, [ebp - 0x800]
push eax
push 0
push 0xc
mov ecx, dword [0x408b68]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea edx, [ebp - 0x800]
push edx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea eax, [ebp - 0x800]
push eax
push 0
xor ecx, ecx
mov cl, byte [0x408031]
push ecx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea edx, [ebp - 0x800]
push edx
push 0
push 0xc
mov eax, dword [0x408b54]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea ecx, [ebp - 0x800]
push ecx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea edx, [ebp - 0x800]
push edx
push 0
xor eax, eax
mov al, byte [0x408032]
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea ecx, [ebp - 0x800]
push ecx
push 0
push 0xc
mov edx, dword [0x408b70]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea eax, [ebp - 0x800]
push eax
call fcn.00402bf0
add esp, 0xc
push 0x800
lea ecx, [ebp - 0x800]
push ecx
push 0
xor edx, edx
mov dl, byte [0x408033]
push edx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea eax, [ebp - 0x800]
push eax
push 0
push 0xc
mov ecx, dword [0x408b90]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea edx, [ebp - 0x800]
push edx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea eax, [ebp - 0x800]
push eax
push 0
xor ecx, ecx
mov cl, byte [0x408034]
push ecx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea edx, [ebp - 0x800]
push edx
push 0
push 0xc
mov eax, dword [0x408b88]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea ecx, [ebp - 0x800]
push ecx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea edx, [ebp - 0x800]
push edx
push 0
xor eax, eax
mov al, byte [0x408035]
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea ecx, [ebp - 0x800]
push ecx
push 0
push 0xc
mov edx, dword [0x408b58]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea eax, [ebp - 0x800]
push eax
call fcn.00402bf0
add esp, 0xc
push 0x800
lea ecx, [ebp - 0x800]
push ecx
push 0
xor edx, edx
mov dl, byte [0x408036]
push edx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea eax, [ebp - 0x800]
push eax
push 0
push 0xc
mov ecx, dword [0x408b64]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea edx, [ebp - 0x800]
push edx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea eax, [ebp - 0x800]
push eax
push 0
xor ecx, ecx
mov cl, byte [0x408037]
push ecx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea edx, [ebp - 0x800]
push edx
push 0
push 0xc
mov eax, dword [0x408b5c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea ecx, [ebp - 0x800]
push ecx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea edx, [ebp - 0x800]
push edx
push 0
xor eax, eax
mov al, byte [0x408038]
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea ecx, [ebp - 0x800]
push ecx
push 0
push 0xc
mov edx, dword [0x408b60]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea eax, [ebp - 0x800]
push eax
call fcn.00402bf0
add esp, 0xc
push 0x800
lea ecx, [ebp - 0x800]
push ecx
push 0
xor edx, edx
mov dl, byte [0x408039]
push edx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea eax, [ebp - 0x800]
push eax
push 0
push 0xc
mov ecx, dword [0x408b84]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea edx, [ebp - 0x800]
push edx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea eax, [ebp - 0x800]
push eax
push 0
xor ecx, ecx
mov cl, byte [0x40803a]
push ecx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea edx, [ebp - 0x800]
push edx
push 0
push 0xc
mov eax, dword [0x408b8c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea ecx, [ebp - 0x800]
push ecx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea edx, [ebp - 0x800]
push edx
push 0
xor eax, eax
mov al, byte [0x40803b]
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea ecx, [ebp - 0x800]
push ecx
push 0
push 0xc
mov edx, dword [0x408b78]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea eax, [ebp - 0x800]
push eax
call fcn.00402bf0
add esp, 0xc
push 0x800
lea ecx, [ebp - 0x800]
push ecx
push 0
xor edx, edx
mov dl, byte [0x40803c]
push edx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea eax, [ebp - 0x800]
push eax
push 0
push 0xc
mov ecx, dword [0x408b74]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x800
push 0
lea edx, [ebp - 0x800]
push edx
call fcn.00402bf0
add esp, 0xc
push 0x800
lea eax, [ebp - 0x800]
push eax
push 0
xor ecx, ecx
mov cl, byte [0x40803d]
push ecx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
lea edx, [ebp - 0x800]
push edx
push 0
push 0xc
mov eax, dword [0x408b94]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov esp, ebp
pop ebp
ret