Function at 0x1400f9864
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
cmp dword [rdx + 8], 0x100
mov rbx, rcx
jne 0x1400f9914
cmp qword [rdx + 0x10], 0xd
je 0x1400f9a51
cmp qword [rdx + 0x10], 0x20
je 0x1400f9a51
cmp qword [rdx + 0x10], 9
jne 0x1400f9914
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call qword [sym.imp.USER32.dll_GetKeyState]
movzx edi, ax
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call qword [sym.imp.mfc140u.dll_CMFCRibbonComboBox::FindItem]
mov rcx, rbx
mov rsi, rax
and edi, 0x8000
jne 0x1400f9926
mov edx, 0x2f47
call qword [sym.imp.mfc140u.dll_CMFCRibbonGallery::GetCompactSize]
cmp rax, rsi
je 0x1400f98ee
mov edx, 0x2f51
mov rcx, rbx
call qword [sym.imp.mfc140u.dll_CMFCRibbonGallery::GetCompactSize]
cmp rax, rsi
jne 0x1400f9949
and dword [rbx + 0x20c], 0
lea rdx, [rbx + 0xf38]
mov rcx, qword [rbx + 0x40]
mov edi, 1
mov r8d, edi
mov dword [rbx + reloc.mfc140u.dll_CHandleMap::CHandleMap], edi
call qword [sym.imp.USER32.dll_InvalidateRect]
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 0x2f52
call qword [sym.imp.mfc140u.dll_CMFCRibbonGallery::GetCompactSize]
cmp rax, rsi
jne 0x1400f9949
mov dword [rbx + 0x20c], 8
lea rdx, [rbx + 0xfb8]
jmp 0x1400f98fc
cmp dword [rbx + reloc.mfc140u.dll_CHandleMap::CHandleMap], 0
je 0x1400f9914
movsxd rcx, dword [rbx + 0x20c]
cmp ecx, 8
jne 0x1400f99a9
test edi, edi
jne 0x1400f99f7
and dword [rbx + reloc.mfc140u.dll_CHandleMap::CHandleMap], edi
lea rdx, [rbx + 0xfb8]
lea edi, [rcx - 7]
mov rcx, qword [rbx + 0x40]
mov r8d, edi
call qword [sym.imp.USER32.dll_InvalidateRect]
mov edx, 0x2f52
mov dword [rbx + 0x20c], 9
mov rcx, rbx
call qword [sym.imp.mfc140u.dll_CMFCRibbonGallery::GetCompactSize]
mov rcx, rax
call qword [sym.imp.mfc140u.dll_CMFCRibbonSlider::SetACCData]
jmp 0x1400f9ae5
test ecx, ecx
jne 0x1400f99f7
test edi, edi
je 0x1400f99f7
and dword [rbx + reloc.mfc140u.dll_CHandleMap::CHandleMap], ecx
lea edi, [rcx + 1]
mov rdx, rcx
mov r8d, edi
mov rcx, qword [rbx + 0x40]
shl rdx, 4
add rdx, 0xf38
add rdx, rbx
call qword [sym.imp.USER32.dll_InvalidateRect]
or dword [rbx + 0x20c], 0xffffffff
mov rcx, rbx
cmp dword [rbx + 0xe54], 0
mov edx, 0x2f47
jne 0x1400f9995
mov edx, 0x2f51
jmp 0x1400f9995
mov rdx, rcx
lea eax, [rcx + 1]
shl rdx, 4
add rdx, 0xf38
add rdx, rbx
test edi, edi
mov edi, 1
mov r8d, edi
je 0x1400f9a1a
lea eax, [rcx - 1]
mov rcx, qword [rbx + 0x40]
mov dword [rbx + 0x20c], eax
call qword [sym.imp.USER32.dll_InvalidateRect]
movsxd rdx, dword [rbx + 0x20c]
mov r8d, edi
mov rcx, qword [rbx + 0x40]
shl rdx, 4
add rdx, 0xf38
add rdx, rbx
call qword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x1400f9ae5
cmp dword [rcx + 0x20c], 8
ja 0x1400f9914
movsxd rdx, dword [rcx + 0x208]
mov edi, 1
mov rcx, qword [rcx + 0x40]
mov r8d, edi
shl rdx, 4
add rdx, 0xea8
add rdx, rbx
call qword [sym.imp.USER32.dll_InvalidateRect]
movsxd rax, dword [rbx + 0x20c]
mov r8d, edi
mov rcx, qword [rbx + 0x40]
mov rdx, rax
shl rdx, 4
add rdx, 0xea8
mov dword [rbx + 0x208], eax
add rdx, rbx
call qword [sym.imp.USER32.dll_InvalidateRect]
movsxd rax, dword [rbx + 0x208]
add rax, 0x1cc
lea rcx, [rbx + rax*8]
call qword [sym.imp.mfc140u.dll_CDumpContext::operator___2]
mov rcx, qword [rbx + 0x200]
mov rdx, qword [rcx + 0x48f0]
mov rcx, qword [rdx + 8]
mov rdx, rax
mov rcx, qword [rcx + 0x28]
call fcn.140072c8c
mov eax, edi
jmp 0x1400f9916