Function at 0x67898100
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x67987b18
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x14]
push ebx
push ebp
push esi
mov eax, dword [eax + 4]
push edi
cmp eax, 0x100
mov esi, ecx
je 0x67898135
cmp eax, 0x104
jne 0x678982ae
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call ebx
mov di, ax
push 0x12
and edi, 0x8000
call ebx
mov bp, ax
and ebp, 0x8000
test edi, edi
jne 0x6789816b
test ebp, ebp
jne 0x6789816b
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], 9
je 0x678982ae
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 8]
cmp eax, 0x10
je 0x678982ae
cmp eax, 0x11
je 0x678982ae
cmp eax, 0x12
je 0x678982ae
cmp eax, 8
mov eax, dword [esi + 0x48]
jne 0x678981b6
cmp eax, 2
jne 0x678981ad
mov byte [esi + 0x54], 0
mov word [esi + 0x56], 0
mov dword [esi + 0x48], 1
jmp 0x67898221
mov ecx, esi
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPShortcutManager::CKeyAssign::ResetKey_void_
jmp 0x67898221
cmp eax, 1
jle 0x678981c2
mov ecx, esi
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPShortcutManager::CKeyAssign::ResetKey_void_
cmp dword [esi + 0x48], 1
jg 0x678982ae
push 0x10
call ebx
and eax, 0x8000
mov ecx, esi
push eax
mov eax, dword [esi + 0x48]
push 4
push eax
call sym.MfcHlpr520.dll_protected:_void___thiscall_CMHPShortcutManager::CKeyAssign::SetAccelFlag_int__unsigned_char__int_
mov ecx, dword [esi + 0x48]
push edi
push 8
push ecx
mov ecx, esi
call sym.MfcHlpr520.dll_protected:_void___thiscall_CMHPShortcutManager::CKeyAssign::SetAccelFlag_int__unsigned_char__int_
mov edx, dword [esi + 0x48]
push ebp
push 0x10
push edx
mov ecx, esi
call sym.MfcHlpr520.dll_protected:_void___thiscall_CMHPShortcutManager::CKeyAssign::SetAccelFlag_int__unsigned_char__int_
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x48]
push 1
push 1
mov dx, word [ecx + 8]
mov ecx, esi
mov word [esi + eax*4 + 0x52], dx
mov eax, dword [esi + 0x48]
push eax
call sym.MfcHlpr520.dll_protected:_void___thiscall_CMHPShortcutManager::CKeyAssign::SetAccelFlag_int__unsigned_char__int_
inc dword [esi + 0x48]
mov ecx, dword [esi + 0x60]
test ecx, ecx
je 0x67898243
mov edx, dword [ecx]
lea eax, [esi + 0x4c]
push eax
call dword [edx + 0x64]
test eax, eax
jne 0x67898243
mov ecx, esi
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPShortcutManager::CKeyAssign::ResetKey_void_
mov eax, 1
jmp 0x678982b0
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_4
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], 0
push ecx
lea ecx, [esi + 0x58]
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPShortcutManager::CKeyHelper::Format_class_CString__const
mov edx, dword [esp + 0x10]
mov ecx, esi
push edx
call sub.MFC42.DLL_CWnd::SetWindowTextA
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [eax - 8]
push eax
push eax
push 0xb1
push ecx
call edi
mov edx, dword [esi + 0x20]
push 0
push 0
push 0xb7
push edx
call edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x678982b0
xor eax, eax
mov ecx, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 4