Function at 0x67957a30
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x679924f8
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x67957c50
mov ecx, esi
call sym.MfcHlpr520.dll_public:_class_CMHPCommandBars____thiscall_CMHPCommandBar::GetCommandBars_void_const
mov ebx, eax
mov eax, dword [esp + 0x28]
cmp eax, 0x12
jne 0x67957b10
mov ecx, esi
call sym.MfcHlpr520.dll_public:_int___thiscall_CMHPRibbonBar::GetTabCount_void_const
test eax, eax
jle 0x67957ba5
mov ecx, ebx
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPCommandBars::ClosePopups_void_const
push 1
mov ecx, ebx
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPCommandBars::ShowKeyboardCues_int_
mov ecx, esi
mov dword [ebx + 0x44], 1
call sym.MfcHlpr520.dll_public:_int___thiscall_CMHPRibbonBar::IsRibbonMinimized_void_const
test eax, eax
je 0x67957ac0
mov eax, dword [esi]
push 1
push 1
push 1
mov ecx, esi
call dword [eax + 0xc4]
mov eax, 1
jmp 0x67957c52
mov edx, dword [esi]
push 1
push 0
push 1
mov ecx, esi
call dword [edx + 0xc4]
mov eax, dword [esi + 0x238]
test eax, eax
je 0x67957ae8
mov eax, dword [esi + 0x25c]
mov eax, dword [eax + 0x84]
jmp 0x67957aea
xor eax, eax
mov edx, dword [esi]
push 1
push eax
mov ecx, esi
call dword [edx + 0xcc]
mov esi, dword [esi + 0x25c]
push 1
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x74]
mov eax, 1
jmp 0x67957c52
cmp eax, 0x30
jbe 0x67957ba5
cmp eax, 0x39
ja 0x67957ba5
mov ecx, dword [esi + 0x258]
add eax, 0xffffffcf
push 0
push eax
call sym.MfcHlpr520.dll_public:_class_CMHPControl____thiscall_CMHPControls::GetVisibleAt_int__int_const
mov edi, eax
test edi, edi
je 0x67957ba5
mov eax, dword [edi + 0xa0]
cmp eax, 0xffffffff
jne 0x67957b53
mov ecx, dword [edi + 0x164]
test ecx, ecx
je 0x67957b53
call sym.MfcHlpr520.dll_public:_int___thiscall_CMHPControlAction::GetEnabled_void_const
test eax, eax
je 0x67957ba5
mov ebp, dword [edi + 0x84]
mov ecx, ebx
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPCommandBars::ClosePopups_void_const
push 1
mov ecx, ebx
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPCommandBars::ShowKeyboardCues_int_
mov dword [ebx + 0x44], 2
mov edx, dword [esi]
push 1
push 0
push 1
mov ecx, esi
call dword [edx + 0xc4]
mov eax, dword [esi]
push 1
push ebp
mov ecx, esi
call dword [eax + 0xcc]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0xb4]
mov eax, 1
jmp 0x67957c52
mov ecx, esi
xor ebp, ebp
call sym.MfcHlpr520.dll_public:_int___thiscall_CMHPRibbonBar::GetTabCount_void_const
test eax, eax
jle 0x67957c50
push ebp
mov ecx, esi
call sym.MfcHlpr520.dll_public:_class_CMHPRibbonTab____thiscall_CMHPRibbonBar::GetTab_int_const
mov edi, eax
lea eax, [esp + 0x10]
push eax
mov ecx, edi
call sym.MfcHlpr520.dll_public:_class_CString___thiscall_CMHPTabManagerItem::GetCaption_void_
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], 0
mov eax, dword [ecx - 8]
test eax, eax
je 0x67957c2f
mov ecx, edi
call sym.MfcHlpr520.dll_public:_enum_MHPToolTipStyle___thiscall_CMHPToolTipContext::GetStyle_void_
test eax, eax
je 0x67957c2f
mov ecx, edi
call sym.MfcHlpr520.dll_public:_int___thiscall_CMHPOffice2007Image::GetWidth_void_const
test eax, eax
je 0x67957c2f
push 0x26
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Find
cmp eax, 0xffffffff
jle 0x67957c2f
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx - 8]
dec edx
cmp eax, edx
jge 0x67957c2f
mov dl, byte [eax + ecx + 1]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x14], dl
push eax
mov ecx, dword [esp + 0x18]
push ecx
call sym.MfcHlpr520.dll_public:_static_int___cdecl_CMHPShortcutManager::CompareAccelKey_char__unsigned_int_
add esp, 8
test eax, eax
jne 0x67957c67
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, esi
inc ebp
call sym.MfcHlpr520.dll_public:_int___thiscall_CMHPRibbonBar::GetTabCount_void_const
cmp ebp, eax
jl 0x67957bb6
xor eax, eax
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret 4
mov eax, dword [esi + 0xcc]
test eax, eax
jne 0x67957c78
mov ecx, ebx
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPCommandBars::ClosePopups_void_const
mov edi, 1
mov ecx, ebx
push edi
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPCommandBars::ShowKeyboardCues_int_
mov dword [esi + 0x11c], edi
push ebp
mov ecx, esi
mov dword [ebx + 0x44], edi
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPRibbonBar::SetCurSel_int_
mov edx, dword [esi]
push edi
push 0
push edi
mov ecx, esi
call dword [edx + 0xc4]
mov eax, dword [esi + 0x25c]
mov edx, dword [esi]
push edi
mov ecx, esi
mov eax, dword [eax + 0x84]
push eax
call dword [edx + 0xcc]
mov ecx, dword [esi + 0x25c]
push edi
mov eax, dword [ecx]
call dword [eax + 0x74]
mov ecx, esi
call sym.MfcHlpr520.dll_public:_int___thiscall_CMHPRibbonBar::IsRibbonMinimized_void_const
test eax, eax
jne 0x67957cdd
push 2
push esi
mov ecx, ebx
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPCommandBars::ShowKeyboardTips_class_CMHPCommandBar___int_
mov ecx, dword [esi + 0x25c]
push edi
call sym.MfcHlpr520.dll_protected:_void___thiscall_CMHPRibbonControlTab::ShowPopupBar_int_
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, edi
jmp 0x67957c52