Function at 0x409764
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov ebx, 0x40b7e0
mov esi, 0x40b7bc
mov edi, 0x40b7c4
xor eax, eax
push ebp
push 0x409ca9
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x409cb8
push 0x409cb8
call sub.user32.dll_FindWindowA
test eax, eax
je 0x4097b9
push 0x10
push 0x409cb8
push 0x409cc4
push 0
call sub.user32.dll_MessageBoxA_1
jmp 0x409c8e
lea edx, [ebp - 4]
mov ax, 0x1a
call fcn.004096e8
mov edx, dword [ebp - 4]
mov eax, 0x40b94c
call fcn.00403bf0
cmp dword [0x40b94c], 0
je 0x409826
lea eax, [ebp - 8]
mov ecx, 0x409ce8
mov edx, dword [0x40b94c]
call fcn.00403e5c
mov eax, dword [ebp - 8]
call fcn.00405ddc
test al, al
jne 0x409815
lea eax, [ebp - 0xc]
mov ecx, 0x409ce8
mov edx, dword [0x40b94c]
call fcn.00403e5c
mov eax, dword [ebp - 0xc]
call fcn.00405f3c
mov eax, 0x40b94c
mov edx, 0x409cf8
call fcn.00403e18
jmp 0x40984d
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00402b5c
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x10]
call fcn.00405e50
mov edx, dword [ebp - 0x10]
mov eax, 0x40b94c
mov ecx, 0x409d14
call fcn.00403e5c
mov eax, dword [0x40b94c]
call fcn.00405dcc
test al, al
je 0x40990c
xor edx, edx
mov eax, dword [0x40b94c]
call fcn.00405c7c
mov dword [0x40b870], eax
cmp dword [0x40b870], 0xffffffff
je 0x40993b
xor ecx, ecx
xor edx, edx
mov eax, dword [0x40b870]
call fcn.00405d50
mov edx, 0x40b950
mov ecx, 0x2c
mov eax, dword [0x40b870]
call fcn.00405cf8
mov eax, dword [0x40b870]
call fcn.00405d5c
mov eax, dword [0x40b950]
mov dword [0x40b894], eax
mov eax, dword [0x40b954]
mov dword [0x40b890], eax
mov eax, dword [0x40b958]
mov dword [0x40b8a8], eax
mov eax, dword [0x40b960]
and eax, 0xffffff
mov dword [0x40b83c], eax
cmp dword [0x40b964], 0
setne byte [0x40a31c]
cmp dword [0x40b8a8], 3
jge 0x4098f7
mov dword [0x40b8a8], 3
cmp dword [0x40b83c], 0
jne 0x40993b
mov dword [0x40b83c], 0xff77
jmp 0x40993b
mov dword [0x40b894], 0x64
mov dword [0x40b890], 0x64
mov dword [0x40b8a8], 3
mov dword [0x40b83c], 0xff77
mov byte [0x40a31c], 0
call fcn.00409250
mov eax, dword [0x40b660]
mov dword [0x40b7b8], eax
xor eax, eax
mov dword [0x40b810], eax
push 0x409d20
mov eax, dword [0x40b7b8]
push eax
call sub.user32.dll_LoadIconA
mov dword [0x40b824], eax
mov dword [0x40b814], 0x4094b4
mov eax, dword [0x40b7b8]
mov dword [0x40b820], eax
xor eax, eax
mov dword [0x40b82c], eax
mov eax, 0x409cb8
mov dword [0x40b834], eax
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
mov dword [0x40b828], eax
push 0x40b810
call sub.user32.dll_RegisterClassA
test ax, ax
jne 0x4099c3
push 0x10
push 0x409cb8
push 0x409d2c
push 0
call sub.user32.dll_MessageBoxA_1
jmp 0x409c8e
push 0x90080000
mov eax, dword [0x40b894]
push eax
mov eax, dword [0x40b890]
push eax
mov eax, dword [0x40b8ac]
push eax
mov eax, dword [0x40b8b0]
push eax
push 0
push 0
mov eax, dword [0x40b7b8]
push eax
push 0
mov ecx, 0x409cb8
mov edx, 0x409cb8
mov eax, 0x80088
call fcn.00404d9c
mov dword [esi], eax
cmp dword [esi], 0
jne 0x409a2f
push 0x10
push 0x409cb8
push 0x409d50
push 0
call sub.user32.dll_MessageBoxA_1
mov eax, dword [0x40b7b8]
push eax
push 0x409cb8
call sub.user32.dll_UnregisterClassA
jmp 0x409c8e
push 3
push 0xdc
push 0
mov eax, dword [esi]
push eax
call sub.user32.dll_SetLayeredWindowAttributes
mov eax, dword [esi]
push eax
call sub.user32.dll_GetDC
mov dword [0x40b838], eax
cmp dword [0x40b838], 0
jne 0x409a6e
push 0x10
push 0x409cb8
push 0x409d68
push 0
call sub.user32.dll_MessageBoxA_1
call fcn.0040899c
mov eax, dword [0x40b83c]
push eax
push 1
push 0
call sub.gdi32.dll_CreatePen
mov dword [0x40b84c], eax
push pe_nt_image_headers32
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x40b868], eax
push 0
call sub.gdi32.dll_CreateSolidBrush
mov dword [0x40b86c], eax
mov eax, dword [0x40b868]
push eax
mov eax, dword [0x40b838]
push eax
call sub.gdi32.dll_SelectObject
mov dword [0x40b864], eax
mov eax, dword [0x40b84c]
push eax
mov eax, dword [0x40b838]
push eax
call sub.gdi32.dll_SelectObject
mov dword [0x40b848], eax
call fcn.00408ad4
mov dword [0x40b7c0], eax
push 0x409d88
mov eax, dword [0x40b7b8]
push eax
call sub.user32.dll_LoadBitmapA
mov dword [ebx], eax
push 0
mov eax, dword [ebx]
push eax
push 0
push 0
mov eax, dword [0x40b7c0]
push eax
call sub.user32.dll_SetMenuItemBitmaps
push 0x409d90
mov eax, dword [0x40b7b8]
push eax
call sub.user32.dll_LoadBitmapA
mov dword [ebx], eax
push 0
mov eax, dword [ebx]
push eax
push 0
push 1
mov eax, dword [0x40b7c0]
push eax
call sub.user32.dll_SetMenuItemBitmaps
push 0x409d98
mov eax, dword [0x40b7b8]
push eax
call sub.user32.dll_LoadBitmapA
mov dword [ebx], eax
push 0
mov eax, dword [ebx]
push eax
push 0
push 2
mov eax, dword [0x40b7c0]
push eax
call sub.user32.dll_SetMenuItemBitmaps
push 0x409da4
mov eax, dword [0x40b7b8]
push eax
call sub.user32.dll_LoadBitmapA
mov dword [ebx], eax
push 0
mov eax, dword [ebx]
push eax
push 0
push 3
mov eax, dword [0x40b7c0]
push eax
call sub.user32.dll_SetMenuItemBitmaps
push 0x409dac
mov eax, dword [0x40b7b8]
push eax
call sub.user32.dll_LoadBitmapA
mov dword [ebx], eax
push 0
mov eax, dword [ebx]
push eax
push 0
push 4
mov eax, dword [0x40b7c0]
push eax
call sub.user32.dll_SetMenuItemBitmaps
push 0x409db4
mov eax, dword [0x40b7b8]
push eax
call sub.user32.dll_LoadBitmapA
mov dword [ebx], eax
push 0
mov eax, dword [ebx]
push eax
push 0
push 5
mov eax, dword [0x40b7c0]
push eax
call sub.user32.dll_SetMenuItemBitmaps
push 0x20
push 0x10
push 0x10
push 0
push 0x409dbc
mov eax, dword [0x40b7b8]
push eax
call sub.user32.dll_LoadImageA
mov dword [ebx], eax
push 0
mov eax, dword [ebx]
push eax
push 0
push 0xa
mov eax, dword [0x40b7c0]
push eax
call sub.user32.dll_SetMenuItemBitmaps
call fcn.00408d9c
push fcn.00408d9c
push 0x3e8
push 1
mov eax, dword [esi]
push eax
call sub.user32.dll_SetTimer
test eax, eax
jne 0x409c79
call fcn.0040899c
push edi
call sub.user32.dll_TranslateMessage
push 0x6b
call sub.user32.dll_GetAsyncKeyState
test ax, ax
je 0x409c41
cmp byte [0x40a31c], 0
jne 0x409c41
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
je 0x409c41
push 0
push 8
push 0x20a
mov eax, dword [esi]
push eax
call sub.user32.dll_SendMessageA
push 0x6d
call sub.user32.dll_GetAsyncKeyState
test ax, ax
je 0x409c73
cmp byte [0x40a31c], 0
jne 0x409c73
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
je 0x409c73
push 0
push 0xfffffffffffffff8
push 0x20a
mov eax, dword [esi]
push eax
call sub.user32.dll_SendMessageA
push edi
call sub.user32.dll_DispatchMessageA
push 0
push 0
mov eax, dword [esi]
push eax
push edi
call sub.user32.dll_GetMessageA
test eax, eax
jne 0x409c09
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x409cb0
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00403bc0
ret