Function at 0x54d90b
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x5815e4
call fcn.00570e3c
sub esp, 0x18
push ebx
push esi
mov esi, ecx
push edi
xor ebx, ebx
lea edi, [esi + 0x40]
mov dword [ebp - 0x18], ebx
mov ecx, edi
call fcn.00569f97
mov edx, dword [eax]
push ebx
push 2
mov ecx, eax
push dword [esi + 0x50]
push dword [esi + 0x4c]
call dword [edx + 0x2c8]
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
jne 0x54db48
mov eax, dword [ebp + 8]
cmp eax, 0x26
ja 0x54da14
je 0x54daa1
cmp eax, 9
je 0x54db48
cmp eax, 0xd
je 0x54d9e4
cmp eax, 0x1b
je 0x54db48
cmp eax, 0x20
jbe 0x54dabe
cmp eax, 0x22
jbe 0x54daa1
cmp eax, 0x25
jne 0x54dabe
cmp dword [esi + 0x78], ebx
jne 0x54dabe
push ebx
push ebx
push 0x157
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jne 0x54dabe
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
and eax, 3
cmp al, 3
je 0x54db48
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0054d86f
cmp dword [ebp - 0x18], ebx
jne 0x54dabe
jmp 0x54db48
push ebx
push ebx
push 0x157
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x54db48
push ebx
push ebx
push 0x14f
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
push 1
pop eax
jmp 0x54dac0
cmp eax, 0x27
je 0x54dad1
cmp eax, 0x28
je 0x54daa1
cmp eax, 0x2e
je 0x54da40
cmp eax, 0x6f
jbe 0x54dabe
cmp eax, 0x87
ja 0x54dabe
jmp 0x54db48
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
and eax, 3
cmp al, 3
jne 0x54dabe
mov eax, dword [edi]
push ebx
mov ecx, edi
call dword [eax + 0x10]
mov eax, dword [edi]
push ebx
mov ecx, edi
call dword [eax + 0x18]
push 0x69ab30
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString_2
push 1
mov ecx, edi
pop ebx
mov dword [ebp - 4], ebx
call fcn.00569f97
push dword [esi + 0x54]
mov edx, dword [eax]
lea ecx, [ebp - 0x14]
push 2
push ecx
push dword [esi + 0x50]
mov ecx, eax
push dword [esi + 0x4c]
call dword [edx + 0x3bc]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
mov eax, ebx
jmp 0x54dac0
cmp dword [esi + 0x78], ebx
jne 0x54dabe
push ebx
push ebx
push 0x157
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x54db48
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc
cmp dword [esi + 0x78], ebx
jne 0x54dabe
push ebx
push ebx
push 0x157
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, ebx
jne 0x54dabe
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetStyle
and eax, 3
cmp al, 3
je 0x54db48
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString_4
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 4], ebx
call fcn.0054d86f
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, edi
call dword [eax + 0x68]
push dword [ebp - 0x10]
call dword [sym.imp.MSVCRT.dll__mbslen]
cmp dword [ebp - 0x1c], eax
pop ecx
jl 0x54db33
mov dword [ebp - 0x18], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString
cmp dword [ebp - 0x18], ebx
je 0x54dabe
mov ecx, edi
call fcn.00569f97
push dword [ebp + 0x10]
mov edx, dword [eax]
mov ecx, eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x100
push esi
call dword [edx + 0x308]
jmp 0x54dac0