Function at 0x1402304a8
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x1403d88e8]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rsi, rcx
xor r15d, r15d
lea rcx, [rbp - 0x50]
mov qword [rbp - 0x50], r15
mov rbx, r8
mov r14d, edx
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rax, qword [rsi]
mov rdi, qword [rax + 0x370]
mov rcx, rdi
call fcn.14029e28c
mov rcx, rsi
call rdi
test al, 1
je 0x14023072d
cmp byte [rsi + 0x210], r15b
jne 0x140230527
call qword [sym.imp.USER32.dll_GetCapture]
mov rcx, rax
call fcn.1400fe1b8
cmp rax, rsi
je 0x14023055d
cmp byte [rsi + 0x210], r15b
je 0x14023053a
call qword [sym.imp.USER32.dll_GetCapture]
mov rcx, rax
call fcn.1400fe1b8
cmp rax, rsi
jne 0x14023055d
mov ecx, 0x17
call qword [sym.imp.USER32.dll_GetSystemMetrics]
neg eax
sbb ecx, ecx
neg ecx
inc ecx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x14023057a
cmp dword [rsi + 0x4d8], r15d
jne 0x14023057a
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov byte [rsi + 0x210], r15b
mov byte [rsi + 0x408], r15b
cmp byte [rsi + 0x408], r15b
je 0x140230761
mov rcx, qword [rsi + 0x40]
lea rdx, [rbp - 0x20]
mov qword [rbp - 0x20], r15
mov qword [rbp - 0x18], r15
call qword [sym.imp.USER32.dll_GetWindowRect]
cmp byte [rsi + 0x409], r15b
jne 0x1402305c0
mov rdx, qword [rbp - 0x50]
lea rcx, [rbp - 0x20]
call qword [sym.imp.USER32.dll_PtInRect]
cmp eax, 1
sete al
mov byte [rsi + 0x409], al
mov rcx, qword [rsi + 0x240]
lea rdx, [rbp - 0x48]
mov eax, dword [rbp - 0x50]
sub eax, ecx
shr rcx, 0x20
mov dword [rbp - 0x30], eax
mov eax, dword [rbp - 0x4c]
sub eax, ecx
mov rcx, qword [rsi + 0x40]
mov dword [rbp - 0x2c], eax
mov rax, qword [rbp - 0x50]
mov qword [rsi + 0x240], rax
mov rax, qword [rsi + 0x208]
mov qword [rbp - 0x48], rax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov rax, qword [rbp - 0x48]
mov rcx, rsi
mov ebx, dword [rbp - 0x50]
mov edi, dword [rbp - 0x4c]
sub ebx, eax
mov rdx, qword [rbp - 0x30]
shr rax, 0x20
sub edi, eax
call fcn.140159b5c
mov ecx, ebx
call fcn.1402b1df8
cmp eax, dword [0x1403fc408]
jg 0x14023063f
mov ecx, edi
call fcn.1402b1df8
cmp eax, dword [0x1403fc40c]
jle 0x14023078e
cmp byte [rsi + 0x409], r15b
je 0x14023078e
mov rax, qword [rsi]
mov rbx, qword [rax + 0x2d8]
mov rcx, rbx
call fcn.14029e28c
mov rcx, rsi
call rbx
test eax, eax
je 0x1402306b8
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.1400fe1b8
mov rdx, rax
lea rcx, str.CMFCBaseTabCtrl
call fcn.1401082ec
mov rdi, rax
test rax, rax
je 0x140230723
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x340]
mov rcx, rbx
call fcn.14029e28c
xor r9d, r9d
or r8d, 0xffffffff
mov rcx, rdi
lea edx, [r9 + 1]
call rbx
jmp 0x140230723
mov rax, qword [rsi]
movups xmm0, xmmword [rsi + 0x2c0]
mov rbx, qword [rax + 0x3f8]
mov rcx, rbx
movdqu xmmword [rbp - 0x30], xmm0
call fcn.14029e28c
mov r9b, 1
lea rdx, [rbp - 0x30]
mov r8d, 1
mov rcx, rsi
call rbx
mov rax, qword [rsi]
mov rbx, qword [rax + 0x338]
mov rcx, rbx
call fcn.14029e28c
mov rcx, rsi
call rbx
mov rdx, rax
lea rcx, vtable.CGlobalUtils.0
call fcn.1401e8ce8
xor r9d, r9d
lea rcx, vtable.CGlobalUtils.0
xor r8d, r8d
mov rdx, rax
call fcn.1401e8b94
mov word [rsi + 0x408], r15w
jmp 0x14023078e
mov rax, qword [rsi]
mov rdi, qword [rax + 0x370]
mov rcx, rdi
call fcn.14029e28c
mov rcx, rsi
call rdi
test al, 2
je 0x140230761
cmp byte [rsi + 0x408], r15b
je 0x140230761
mov r8, rbx
mov edx, r14d
mov rcx, rsi
call fcn.1401584c8
jmp 0x14023078e
mov rcx, qword [rsi + 0x40]
lea rdx, [rbp - 0x40]
mov qword [rbp - 0x40], rbx
call qword [sym.imp.USER32.dll_ClientToScreen]
mov rax, qword [rsi]
mov rbx, qword [rax + 0x710]
mov rcx, rbx
call fcn.14029e28c
mov rdx, qword [rbp - 0x40]
mov rcx, rsi
call rbx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14029d880
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret