Function at 0x4583b0
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x4ea328
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
mov edi, dword [esp + 0x30]
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], ebx
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
cmp eax, 0x100
mov dword [esp + 0x18], ebx
jne 0x4585fb
cmp esi, 0x43
je 0x458409
cmp esi, 0x58
je 0x458409
cmp esi, 0x56
jne 0x45841a
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
jne 0x4585fb
lea eax, [esi - 0x30]
cmp eax, 0x8e
ja case.0x458430.50
xor ecx, ecx
mov cl, byte [eax + 0x45862c]
jmp dword [ecx*4 + 0x458620]
cmp dword [ebp + 0x4c], ebx
je 0x458497
lea edx, [esp + 0x10]
mov ecx, ebp
push edx
call sub.MFC42.DLL_CWnd::GetWindowTextA_1
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], ebx
je 0x4585fb
mov eax, dword [ebp + 0x20]
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
push ecx
push edx
push 0xb0
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [esp + 0x14], ebx
jne 0x458497
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
mov cx, word [0x5111e4]
cmp al, cl
je 0x45848d
cmp al, ch
jne 0x4585fb
cmp dword [esp + 0x18], ebx
jne 0x4585fb
push 0x30
call dword [sym.imp.USER32.dll_MessageBeep]
lea ecx, [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
call fcn.004e2712
mov eax, 1
mov ecx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret 4
lea edx, [esp + 0x10]
mov ecx, ebp
push edx
call sub.MFC42.DLL_CWnd::GetWindowTextA_1
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], ebx
je 0x4585fb
mov cl, byte [0x5111e4]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Find
mov ecx, dword [ebp + 0x20]
mov edi, eax
lea edx, [esp + 0x18]
lea eax, [esp + 0x14]
push edx
push eax
push 0xb0
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp esi, 0x6e
je 0x45855d
cmp esi, 0xbe
je 0x45855d
cmp edi, ebx
jl 0x458589
mov eax, dword [esp + 0x14]
cmp eax, edi
jbe 0x458595
cmp eax, dword [esp + 0x18]
jne 0x458595
inc edi
lea edx, [esp + 0x1c]
push edi
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Mid
mov eax, dword [eax]
movsx ecx, byte [ebp + 0x50]
mov eax, dword [eax - 8]
cmp eax, ecx
lea ecx, [esp + 0x1c]
setge bl
call fcn.004e2712
test bl, bl
je 0x45858f
jmp 0x458497
mov al, byte [ebp + 0x50]
test al, al
je 0x458497
cmp edi, ebx
jl 0x458589
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp ecx, eax
jne 0x458595
cmp edi, eax
jb 0x458497
cmp edi, ecx
jbe 0x458595
jmp 0x458497
mov eax, dword [esp + 0x14]
jmp 0x458595
mov eax, dword [esp + 0x14]
xor ebx, ebx
cmp eax, ebx
jne 0x4585f7
mov edx, dword [esp + 0x10]
mov cl, byte [0x5111e5]
mov al, byte [edx]
cmp al, cl
jne 0x4585f7
cmp dword [esp + 0x18], ebx
jne 0x4585f7
jmp 0x458497
cmp esi, 1
jb 0x4585be
cmp esi, 0x40
jbe 0x4585ed
cmp esi, 0x5b
jb 0x4585c8
cmp esi, 0x69
jbe 0x4585ed
cmp esi, 0x70
jb 0x4585d5
cmp esi, 0xb9
jbe 0x4585ed
cmp esi, 0xe5
jb 0x45849f
cmp esi, 0xfe
ja 0x45849f
cmp esi, 0x20
jne 0x4585fb
jmp 0x458497
mov edi, dword [esp + 0x30]
push edi
mov ecx, ebp
call sub.MFC42.DLL_CWnd::PreTranslateMessage
lea ecx, [esp + 0x10]
mov esi, eax
mov dword [esp + 0x28], 0xffffffff
call fcn.004e2712
mov eax, esi
jmp 0x4584b5