Function at 0x140022a80
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x18], 0xfffffffffffffffe
mov rsi, rcx
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140022bee
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140022d4a
mov rax, qword [rsi + 0x28]
test byte [rax + 9], 0x80
je 0x1400231a2
cmp byte [rsi + 0x2df0], 0
jne 0x1400231a2
mov byte [rsi + 0x2df0], 1
mov ecx, recvfrom
call fcn.14003ae80
mov qword [rbp], rax
lea rdx, str.windowOpacity
lea rcx, [rbp + 8]
mov r8d, 0xffffffff
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_char_const____ptr64__int____ptr64]
lea r8, [rbp + 8]
mov rcx, qword [rbp]
mov rdx, rsi
xor r9d, r9d
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QPropertyAnimation::constructor_class_QObject____ptr64__class_QByteArray_const____ptr64__class_QObject____ptr64____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov rbx, qword [rbp]
mov rcx, rbx
mov edx, 0xc8
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariantAnimation::setDuration_int____ptr64]
lea rdi, [rbp + 8]
movsd xmm1, qword [0x140040508]
mov rcx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariant::constructor_double____ptr64]
mov rcx, rbx
mov rdx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariantAnimation::setStartValue_class_QVariant_const____ptr64____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariant::destructor_void____ptr64]
xorps xmm1, xmm1
mov rcx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariant::constructor_double____ptr64]
mov rcx, rbx
mov rdx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariantAnimation::setEndValue_class_QVariant_const____ptr64____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariant::destructor_void____ptr64]
mov rax, qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QAbstractAnimation::finished_void____ptr64]
mov qword [rbp + 8], rax
mov ecx, 0x18
call fcn.14003ae80
mov dword [rax], 1
lea rcx, [0x140038040]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rsi
mov rcx, qword [sym.imp.Qt5Core.dll_struct_QMetaObject_const_QAbstractAnimation::staticMetaObject]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x20], 0
lea rdi, [rbp - 0x30]
jmp 0x140022d20
mov rax, qword [rsi + 0x28]
test byte [rax + 9], 0x80
jne 0x1400231a2
cmp byte [rsi + 0x2df0], 0
jne 0x1400231a2
mov byte [rsi + 0x2df0], 1
xorps xmm1, xmm1
mov rcx, rsi
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QWidget::setWindowOpacity_double____ptr64]
mov rcx, rsi
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QWidget::show_void____ptr64]
mov ecx, recvfrom
call fcn.14003ae80
mov qword [rbp], rax
lea rdx, str.windowOpacity
lea rcx, [rbp + 8]
mov r8d, 0xffffffff
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_char_const____ptr64__int____ptr64]
lea r8, [rbp + 8]
mov rcx, qword [rbp]
mov rdx, rsi
xor r9d, r9d
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QPropertyAnimation::constructor_class_QObject____ptr64__class_QByteArray_const____ptr64__class_QObject____ptr64____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov rbx, qword [rbp]
mov rcx, rbx
mov edx, 0xc8
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariantAnimation::setDuration_int____ptr64]
lea rdi, [rbp + 8]
xorps xmm1, xmm1
mov rcx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariant::constructor_double____ptr64]
mov rcx, rbx
mov rdx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariantAnimation::setStartValue_class_QVariant_const____ptr64____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariant::destructor_void____ptr64]
movsd xmm1, qword [0x140040508]
mov rcx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariant::constructor_double____ptr64]
mov rcx, rbx
mov rdx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariantAnimation::setEndValue_class_QVariant_const____ptr64____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QVariant::destructor_void____ptr64]
mov rax, qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QAbstractAnimation::finished_void____ptr64]
mov qword [rbp + 8], rax
mov ecx, 0x18
call fcn.14003ae80
mov dword [rax], 1
lea rcx, [0x140038010]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rsi
mov rcx, qword [sym.imp.Qt5Core.dll_struct_QMetaObject_const_QAbstractAnimation::staticMetaObject]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x20], 0
lea rdi, [rbp - 0x38]
lea r8, [rbp + 8]
mov rcx, rdi
mov rdx, rbx
mov r9, rbx
call qword [sym.imp.Qt5Core.dll_private:_static_class_QMetaObject::Connection___cdecl_QObject::connectImpl_class_QObject_const____ptr64__void____ptr64____ptr64__class_QObject_const____ptr64__void____ptr64____ptr64__class_QtPrivate::QSlotObjectBase____ptr64__enum_Qt::ConnectionType__int_const____ptr64__struct_QMetaObject_const____ptr64_]
mov rcx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMetaObject::Connection::destructor_void____ptr64]
mov rcx, rbx
mov edx, 1
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QAbstractAnimation::start_enum_QAbstractAnimation::DeletionPolicy____ptr64]
mov ecx, 0x23
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140022dae
lea rdx, str.:_all_img_begin.png
lea rdi, [rbp - 8]
mov rcx, rdi
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::constructor_char_const____ptr64____ptr64]
lea rcx, [rbp + 8]
mov rdx, rdi
call qword [sym.imp.Qt5Gui.dll_public:_void___cdecl_QIcon::constructor_class_QString_const____ptr64____ptr64]
lea rcx, [rbp - 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::destructor_void____ptr64]
mov rax, qword [rsi + 0x3130]
mov rcx, qword [rax + 0x498]
lea rdx, [rbp + 8]
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QAbstractButton::setIcon_class_QIcon_const____ptr64____ptr64]
mov byte [rsi + 0x98], 0
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Gui.dll_public:_void___cdecl_QIcon::destructor_void____ptr64]
mov ecx, 0x24
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140022ea3
cmp byte [rsi + 0x98], 0
jne 0x140022ea3
mov byte [rsi + 0x98], 1
lea rdx, str.AI...
mov rbx, qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::constructor_char_const____ptr64____ptr64]
lea rdi, [rbp - 0x28]
mov rcx, rdi
call rbx
mov rcx, rsi
mov rdx, rdi
call fcn.14003a8f0
lea rdx, str.:_all_img_stop.png
lea rdi, [rbp - 8]
mov rcx, rdi
call rbx
lea rcx, [rbp + 8]
mov rdx, rdi
call qword [sym.imp.Qt5Gui.dll_public:_void___cdecl_QIcon::constructor_class_QString_const____ptr64____ptr64]
lea rcx, [rbp - 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::destructor_void____ptr64]
mov rax, qword [rsi + 0x3130]
mov rcx, qword [rax + 0x498]
lea rdx, [rbp + 8]
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QAbstractButton::setIcon_class_QIcon_const____ptr64____ptr64]
mov ecx, 0x38
call fcn.14003ae80
mov qword [rbp], rax
mov rcx, rax
xor edx, edx
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QFutureInterfaceBase::constructor_enum_QFutureInterfaceBase::State____ptr64]
mov rcx, qword [rbp]
mov dword [rcx + 0x18], 0
lea rax, vtable.QtConcurrent::VoidStoredMemberFunctionPointerCall0_void__class_Widget_.0
mov qword [rcx], rax
lea rax, vtable.QtConcurrent::VoidStoredMemberFunctionPointerCall0_void__class_Widget_.1.0
mov qword [rcx + 0x10], rax
lea rax, [0x140023580]
mov qword [rcx + 0x20], rax
mov dword [rcx + 0x28], 0
mov qword [rcx + 0x30], rsi
lea rdx, [rbp - 0x20]
call fcn.140038080
lea rcx, [rbp - 0x20]
call qword [sym.imp.Qt5Core.dll_public_virtual:_void___cdecl_QFutureInterfaceBase::destructor_void____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Gui.dll_public:_void___cdecl_QIcon::destructor_void____ptr64]
mov ecx, dword [rsi + 0x25c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140022ec9
mov ecx, dword [rsi + 0x258]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140022ed4
xor eax, eax
jmp 0x140022ece
mov eax, 1
mov dword [rsi + 0x2dec], eax
mov ecx, dword [rsi + 0x264]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140022f7c
mov ecx, dword [rsi + 0x268]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140022fb7
mov ecx, dword [rsi + 0x26c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140022fef
mov ecx, dword [rsi + 0x270]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14002302e
mov ecx, dword [rsi + 0x274]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14002307f
mov dword [rsi + 0x214], 5
mov rax, qword [rsi + 0x3130]
mov rcx, qword [rax + 0x170]
lea rdx, [rsi + 0xe88]
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QLabel::setText_class_QString_const____ptr64____ptr64]
lea r8, [0x140049a52]
cmp qword [rsi + 0x1c8], 0x10
jae 0x140023025
jmp 0x140023064
mov dword [rsi + 0x214], 1
mov rax, qword [rsi + 0x3130]
mov rcx, qword [rax + 0x170]
lea rdx, [rsi + 0xe68]
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QLabel::setText_class_QString_const____ptr64____ptr64]
lea r8, [0x140049e32]
cmp qword [rsi + 0x1c8], 0x10
jae 0x140023025
jmp 0x140023064
mov dword [rsi + 0x214], 2
mov rax, qword [rsi + 0x3130]
mov rcx, qword [rax + 0x170]
lea rdx, [rsi + 0xe70]
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QLabel::setText_class_QString_const____ptr64____ptr64]
lea r8, [0x140049da0]
cmp qword [rsi + 0x1c8], 0x10
jae 0x140023025
jmp 0x140023064
mov dword [rsi + 0x214], 3
mov rax, qword [rsi + 0x3130]
mov rcx, qword [rax + 0x170]
lea rdx, [rsi + 0xe78]
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QLabel::setText_class_QString_const____ptr64____ptr64]
lea r8, [0x140049c02]
cmp qword [rsi + 0x1c8], 0x10
jb 0x140023064
mov r9, qword [rsi + 0x1b0]
jmp 0x14002306b
mov dword [rsi + 0x214], 4
mov rax, qword [rsi + 0x3130]
mov rcx, qword [rax + 0x170]
lea rdx, [rsi + 0xe80]
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QLabel::setText_class_QString_const____ptr64____ptr64]
lea r8, [0x140049b24]
cmp qword [rsi + 0x1c8], 0x10
jae 0x140023025
lea r9, [rsi + 0x1b0]
lea rcx, [0x14004927b]
lea rdx, str.shot_mode
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov rbx, qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0xdd
call rbx
mov edi, eax
mov ecx, 0xdb
call rbx
mov ebx, eax
test di, di
js 0x1400230a6
test bx, bx
jns 0x14002318a
test di, di
jns 0x1400230b5
mov eax, 2
test bx, bx
js 0x1400230d8
test di, di
jns 0x1400230c8
mov eax, 1
cmp byte [0x1400649ad], 0
je 0x1400230d8
test bx, bx
jns 0x1400230de
xor eax, eax
cmp byte [0x1400649ae], 0
jne 0x1400230de
mov dword [rsi + 0x210], eax
test bx, bx
lea rax, [0x140049fac]
lea rcx, [0x140049fbc]
cmovs rcx, rax
test di, di
lea rdx, str....
cmovs rdx, rcx
mov r12, qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::constructor_char_const____ptr64____ptr64]
lea r14, [rbp - 0x10]
mov rcx, r14
call r12
mov rcx, rsi
mov rdx, r14
call fcn.14003a880
mov rax, qword [rsi + 0x3130]
mov r14, qword [rax + 0x278]
lea rdx, str.1:
lea r15, [rbp + 8]
mov rcx, r15
call r12
mov rcx, r14
mov rdx, r15
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QLabel::setText_class_QString_const____ptr64____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::destructor_void____ptr64]
mov rax, qword [rsi + 0x3130]
mov rsi, qword [rax + 0x2c0]
lea rdx, str.2:
lea r14, [rbp + 8]
mov rcx, r14
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::constructor_char_const____ptr64____ptr64]
mov rcx, rsi
mov rdx, r14
call qword [sym.imp.Qt5Widgets.dll_public:_void___cdecl_QLabel::setText_class_QString_const____ptr64____ptr64]
lea rcx, [rbp + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QString::destructor_void____ptr64]
movzx eax, di
shr eax, 0xf
movzx ecx, bx
shr ecx, 0xf
mov byte [0x1400649ad], al
mov byte [0x1400649ae], cl
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret