Function at 0x14001a0e0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x80
cmp dword [rdx + 8], 0x100
mov r15, rdx
mov rbp, rcx
mov r12d, 1
jne 0x14001a176
test byte [rcx + 0x70], r12b
je 0x14001a176
lea ecx, [r12 + 0xf]
call qword [sym.imp.USER32.dll_GetKeyState]
xor r14d, r14d
lea ecx, [r12 + 0x10]
test ax, ax
cmovs r14d, r12d
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14001a13d
or r14d, 2
mov ecx, SafeArrayLock
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14001a151
or r14d, 4
movzx eax, word [r15 + 0x10]
cmp ax, 9
je 0x14001a268
cmp ax, 0x24
jbe 0x14001a195
cmp ax, 0x28
ja 0x14001a195
test byte [rbp + 0x70], 0x80
je 0x14001a353
mov eax, r12d
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
test byte [rbp + 0x70], 0x80
je 0x14001a353
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.Qt5Widgets.dll_public:_class_QWidget____ptr64___cdecl_QWidget::focusWidget_void_const___ptr64]
test rax, rax
je 0x14001a353
mov ebx, dword [r15 + 0x10]
mov ecx, r14d
and ecx, r12d
mov eax, r14d
shl ecx, 0x19
mov edi, ecx
bts edi, 0x1a
and al, 2
cmove edi, ecx
lea rcx, [rsp + 0xc0]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::constructor_void____ptr64]
mov r9d, edi
mov word [rsp + 0x30], r12w
bts r9d, 0x1b
mov byte [rsp + 0x28], 0
mov ecx, r14d
mov qword [rsp + 0x20], rax
and cl, 4
mov r8d, ebx
mov edx, 0x33
lea rcx, [rsp + 0x40]
cmove r9d, edi
call qword [sym.imp.Qt5Gui.dll_public:_void___cdecl_QKeyEvent::constructor_enum_QEvent::Type__int__class_QFlags_enum_Qt::KeyboardModifier___class_QString_const____ptr64__bool__unsigned_short_int____ptr64]
lea rcx, [rsp + 0xc0]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::destructor_void____ptr64]
mov ecx, 0xfffb
and word [rsp + 0x52], cx
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.Qt5Widgets.dll_public:_class_QWidget____ptr64___cdecl_QWidget::focusWidget_void_const___ptr64]
mov rcx, rax
lea rdx, [rsp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_static_bool___cdecl_QCoreApplication::sendEvent_class_QObject____ptr64__class_QEvent____ptr64_]
movzx ecx, byte [rsp + 0x52]
shr cl, 2
test r12b, cl
lea rcx, [rsp + 0x40]
je 0x14001a25d
call qword [sym.imp.Qt5Gui.dll_public_virtual:_void___cdecl_QKeyEvent::destructor_void____ptr64]
jmp 0x14001a176
call qword [sym.imp.Qt5Gui.dll_public_virtual:_void___cdecl_QKeyEvent::destructor_void____ptr64]
jmp 0x14001a353
test byte [rbp + 0x70], 0x80
je 0x14001a353
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call qword [sym.imp.USER32.dll_GetKeyState]
mov rcx, qword [rbp + 0x58]
test ax, ax
sets bl
call qword [sym.imp.Qt5Widgets.dll_public:_class_QWidget____ptr64___cdecl_QWidget::focusWidget_void_const___ptr64]
mov rsi, rax
test rax, rax
je 0x14001a340
mov rcx, rax
test bl, bl
je 0x14001a2ff
call qword [sym.imp.Qt5Widgets.dll_public:_bool___cdecl_QWidget::isWindow_void_const___ptr64]
test al, al
jne 0x14001a340
mov rcx, rsi
call qword [sym.imp.Qt5Widgets.dll_public:_class_QWidget____ptr64___cdecl_QWidget::nextInFocusChain_void_const___ptr64]
xor edi, edi
mov rbx, rax
cmp rax, rsi
je 0x14001a2f8
mov rcx, rbx
call qword [sym.imp.Qt5Widgets.dll_public:_enum_Qt::FocusPolicy___cdecl_QWidget::focusPolicy_void____ptr64]
test r12b, al
je 0x14001a2d3
xor edi, edi
jmp 0x14001a2e2
mov rcx, rbx
call qword [sym.imp.Qt5Widgets.dll_public:_bool___cdecl_QWidget::isWindow_void_const___ptr64]
test al, al
cmovne rdi, rbx
mov rcx, rbx
call qword [sym.imp.Qt5Widgets.dll_public:_class_QWidget____ptr64___cdecl_QWidget::nextInFocusChain_void_const___ptr64]
mov rbx, rax
cmp rax, rsi
jne 0x14001a2c1
test rdi, rdi
jne 0x14001a340
xor edx, edx
jmp 0x14001a3fb
call qword [sym.imp.Qt5Widgets.dll_public:_class_QWidget____ptr64___cdecl_QWidget::nextInFocusChain_void_const___ptr64]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.Qt5Widgets.dll_public:_bool___cdecl_QWidget::isWindow_void_const___ptr64]
test al, al
jne 0x14001a340
mov rcx, rbx
call qword [sym.imp.Qt5Widgets.dll_public:_enum_Qt::FocusPolicy___cdecl_QWidget::focusPolicy_void____ptr64]
test r12b, al
jne 0x14001a3f7
mov rcx, rbx
call qword [sym.imp.Qt5Widgets.dll_public:_class_QWidget____ptr64___cdecl_QWidget::nextInFocusChain_void_const___ptr64]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.Qt5Widgets.dll_public:_bool___cdecl_QWidget::isWindow_void_const___ptr64]
test al, al
je 0x14001a315
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetFocus]
mov rcx, qword [rbp + 0x170]
test rcx, rcx
je 0x14001a176
mov qword [rsp + 0xb8], 0
lea r8, [rsp + 0xb8]
mov rax, qword [rcx]
lea rdx, [0x140069258]
call qword [rax]
cmp qword [rsp + 0xb8], 0
je 0x14001a176
cmp byte [0x14008baf1], 0
mov eax, 0x51540002
mov rcx, qword [r15]
mov r8d, 0x51540001
cmovne r8d, eax
mov edx, 0xffffffeb
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov rcx, qword [rsp + 0xb8]
mov r8d, r14d
mov rdx, r15
mov rdi, rax
mov r9, qword [rcx]
call qword [r9 + 0x38]
mov rcx, qword [rsp + 0xb8]
mov ebx, eax
mov r8, qword [rcx]
call qword [r8 + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [r15]
mov r8, rdi
mov edx, 0xffffffeb
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov eax, ebx
jmp 0x14001a179
movzx edx, r12b
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x160]
mov rcx, rsi
call qword [sym.imp.Qt5Widgets.dll_public:_class_QWidget____ptr64___cdecl_QWidget::window_void_const___ptr64]
movzx r8d, r12b
mov edx, reloc.OLEAUT32.dll_VarR8FromUI1
mov rcx, rax
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QWidget::setAttribute_enum_Qt::WidgetAttribute__bool____ptr64]
xor eax, eax
jmp 0x14001a179