Function at 0x14022a390
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x20
mov rdi, rdx
mov rbx, rcx
cmp dword [rdx + 8], 0x100
jne 0x14022a52e
mov ecx, select
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x14022a52e
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14022a3e5
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x14022a52e
mov rax, qword [rdi + 0x10]
cmp rax, 0x41
je 0x14022a4f3
cmp rax, 0x43
je 0x14022a473
cmp rax, 0x56
je 0x14022a451
cmp rax, 0x58
je 0x14022a42f
cmp rax, 0x5a
jne 0x14022a52e
xor r9d, r9d
xor r8d, r8d
lea edx, [rax + 0x6d]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
xor r9d, r9d
xor r8d, r8d
mov edx, 0x300
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
xor r9d, r9d
xor r8d, r8d
mov edx, 0x302
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x50]
mov edx, 0xb0
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rbx + 0x40]
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x50], eax
jne 0x14022a4d5
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call sub.mfc140u.dll_CMFCRibbonComboBox::FindItem
test rax, rax
je 0x14022a5fd
mov r9, qword [rdi + 0x18]
mov r8, qword [rdi + 0x10]
mov edx, 0x530
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
xor r9d, r9d
xor r8d, r8d
mov edx, 0x301
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
mov r9, 0xffffffffffffffff
xor r8d, r8d
mov edx, 0xb1
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
mov edx, UnRegisterTypeLib
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
cmp dword [rdi + 8], 0x100
jne 0x14022a713
mov rax, qword [rdi + 0x10]
cmp rax, 0xd
jne 0x14022a5b3
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call sub.mfc140u.dll_CMFCRibbonComboBox::FindItem
test rax, rax
je 0x14022a5fd
mov rcx, qword [rax + 0x40]
xor r9d, r9d
xor r8d, r8d
cmp dword [0x1403c5398], r8d
je 0x14022a593
mov edx, 0x500
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rbx
call fcn.140228e60
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
mov edx, 0x512
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, rbx
call fcn.140228e60
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
cmp rax, 0x28
jne 0x14022a60a
lea ecx, [rax - 0x17]
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jb 0x14022a5ed
mov ecx, select
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x14022a60a
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x14022a60a
mov rcx, rbx
call fcn.14022af30
test al, al
je 0x14022a713
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
mov rax, qword [rdi + 0x10]
cmp rax, 0x28
ja 0x14022a663
movabs rcx, 0x14600000000
bt rcx, rax
jae 0x14022a663
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call sub.mfc140u.dll_CMFCRibbonComboBox::FindItem
test rax, rax
je 0x14022a713
mov r9, qword [rdi + 0x18]
mov r8, qword [rdi + 0x10]
mov edx, 0x513
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
cmp rax, 0x2e
jne 0x14022a713
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x48]
mov edx, 0xb0
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_Ordinal_296]
nop
lea rdx, [rsp + 0x58]
mov rcx, rbx
call sub.mfc140u.dll_CMFCOutlookBarToolBar::GetMessageMap
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_CMFCPropertyGridProperty::GetHierarchyLevel]
cmp dword [rsp + 0x48], eax
jne 0x14022a708
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_CMFCPropertyGridProperty::GetHierarchyLevel]
cmp dword [rsp + 0x50], eax
jne 0x14022a708
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call sub.mfc140u.dll_CMFCRibbonComboBox::FindItem
test rax, rax
je 0x14022a708
mov r9, qword [rdi + 0x18]
mov r8, qword [rdi + 0x10]
mov edx, 0x504
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonGallery::XGalleryGroup::XGalleryGroup]
mov eax, 1
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonGallery::XGalleryGroup::XGalleryGroup]
mov rdx, rdi
mov rcx, rbx
add rsp, 0x20
pop rdi
pop rsi
pop rbx
jmp sub.mfc140u.dll_CPreviewView::OnVScroll