Function at 0x1400f2940
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xb0
mov qword [rbp - 0x31], 0xfffffffffffffffe
mov qword [rsp + 0xf8], rbx
mov r12d, r9d
mov rbx, rdx
mov rdi, rcx
test byte [0x1402d741c], 4
je 0x1400f299a
mov r9d, dword [rcx + 0x60]
lea r8, str.Residue:__d._n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
lea rcx, [rbp - 0x69]
test dword [rdi + 0x3c], 0x20000000
je 0x1400f29af
call qword [sym.imp.USER32.dll_GetCursorPos]
jmp 0x1400f29b4
call fcn.1400a15e0
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor r13d, r13d
test ax, ax
sets r13b
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ecx, ecx
test ax, ax
sets cl
mov dword [rbp + 0x47], ecx
mov qword [rsp + 0x28], rbx
mov eax, dword [rbp + 0x87]
mov dword [rsp + 0x20], eax
mov r15d, dword [rbp + 0x6f]
mov r9d, r15d
mov r8d, ecx
mov edx, r13d
mov rcx, rdi
call fcn.1400f3bc0
mov esi, eax
test r13d, r13d
jne 0x1400f2a1d
cdq
xor eax, edx
cmp eax, edx
je 0x1400f2ac7
mov eax, dword [rbp + 0x8f]
jmp 0x1400f2a30
mov eax, dword [rbp + 0x8f]
test dword [rdi + 0x3c], 0x80000
jne 0x1400f2a34
test eax, eax
jne 0x1400f2a34
xor edx, edx
jmp 0x1400f2a39
mov edx, 1
test r13d, r13d
jne 0x1400f2a4f
test byte [rdi + 0x3c], 2
jne 0x1400f2a48
test eax, eax
je 0x1400f2a4f
mov ecx, 1
jmp 0x1400f2a51
xor ecx, ecx
mov r8d, 0x800
mov r14d, dword [rbp + 0x67]
test r14d, r14d
je 0x1400f2a73
mov eax, dword [rdi + 0x7c]
test al, 1
je 0x1400f2a73
test r8d, eax
je 0x1400f2a73
mov eax, 1
jmp 0x1400f2a75
xor eax, eax
test r15d, r15d
jne 0x1400f2ace
test ecx, ecx
jne 0x1400f2ace
test eax, eax
jne 0x1400f2ace
test edx, edx
jne 0x1400f2ace
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x78
jge 0x1400f2ba9
test byte [0x1402d741c], 4
je 0x1400f2ac7
mov dword [rsp + 0x28], 0x78
mov r9d, dword [rdi + 0x3c]
lea r8, str.m_uiClassFlags___x__use_large_wheel__iWheelUnit__d____gain__d___return__n
mov dword [rsp + 0x20], esi
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
xor eax, eax
jmp 0x1400f2f59
test byte [0x1402d741c], 4
je 0x1400f2afe
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov r9d, r15d
lea r8, str.let_it_continue__as_bUseLinearScroll_d__bIsSmallWheel_d__bIsVerticalWheelPriority_d__bIsSmallZoomWheel_d_n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
test r15d, r15d
je 0x1400f2ba9
mov r14d, dword [rbp + 0x7f]
mov edx, r14d
mov rcx, rdi
call fcn.1400f6430
mov ebx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jge 0x1400f2b52
test byte [0x1402d741c], 4
je 0x1400f2ac7
mov dword [rsp + 0x20], ebx
mov r9d, esi
lea r8, str.iWheelUnit__d____iwin8Unit__d___return_n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
xor eax, eax
jmp 0x1400f2f59
test r14d, r14d
je 0x1400f2ba5
test dword [rdi + 0x3c], 0x10000000
je 0x1400f2ba5
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, eax
mov r8d, dword [rdi + 0x74]
mov ecx, dword [rdi + 0xa4]
call fcn.14000b120
test eax, eax
je 0x1400f2ba5
inc dword [rdi + 0xa8]
test byte [0x1402d741c], 4
je 0x1400f2ac7
mov dword [rsp + 0x28], ebx
mov r9d, dword [rdi + 0xa8]
lea r8, str.bDecreaseScrollFrenquency:_m_ulPacketSkipped__d___iWheelUnit__d___iwin8Unit__d___return_n
jmp 0x1400f2ab2
mov r14d, dword [rbp + 0x67]
test byte [0x1402d741c], 4
je 0x1400f2bd9
mov dword [rsp + 0x28], esi
mov eax, dword [rdi + 0x6c]
mov dword [rsp + 0x20], eax
mov r9d, dword [rdi + 0x3c]
lea r8, str.config_x__scrLines_d__Wheel_Units:__d._n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
mov rax, qword [rbp + 0x57]
test rax, rax
je 0x1400f2bf5
test dword [rdi + 0x3c], 0x10000
je 0x1400f2bf5
xor edx, edx
mov rcx, rax
call fcn.140115960
mov ebx, r12d
shr ebx, 2
and ebx, 0x400000
mov eax, r12d
and eax, 0x30000
or ebx, eax
shr ebx, 2
and r12d, 0xc0000
or ebx, r12d
shr ebx, 0xe
cmp dword [rbp + 0x47], 0
je 0x1400f2c24
or ebx, 4
test r13d, r13d
je 0x1400f2c2c
or ebx, 8
mov r12d, 0x1000
test r14d, r14d
jne 0x1400f2c55
cmp qword [rdi + 0x58], 0
jne 0x1400f2c55
test r15d, r15d
jne 0x1400f2c55
test dword [rdi + 0x3c], r12d
jne 0x1400f2c55
mov r14d, 1
mov dword [rbp + 0x67], r14d
neg esi
call fcn.140114a30
xor r10d, r10d
mov r13d, r10d
mov rdx, qword [rbp + 0x57]
cmp rdx, rax
sete r13b
mov eax, dword [rdi + 0xa8]
test eax, eax
je 0x1400f2c81
inc eax
imul esi, eax
mov dword [rdi + 0xa8], r10d
test ebx, ebx
je 0x1400f2c8b
test byte [rdi + 0x3c], 4
jne 0x1400f2c92
mov eax, dword [rdi + 0x3c]
test al, 1
je 0x1400f2cfe
test byte [0x1402d741c], 4
je 0x1400f2cba
mov r9d, esi
lea r8, str.SynPostMessage:_iWheelUnits_d_n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
mov rdx, qword [rbp + 0x57]
movzx ecx, word [rbp - 0x65]
shl ecx, 0x10
movzx eax, word [rbp - 0x69]
or rcx, rax
movzx r9d, si
shl r9d, 0x10
movzx eax, bx
or r9, rax
mov eax, 0x20a
mov r8d, 0x20e
test r14d, r14d
cmovne r8d, eax
mov qword [rsp + 0x20], rcx
lea rcx, [0x1402dc840]
call fcn.1400aa090
jmp 0x1400f2efc
bt eax, 0x15
jae 0x1400f2d09
test r13d, r13d
jne 0x1400f2d12
test r15d, r15d
je 0x1400f2e6d
xor ebx, ebx
mov dword [rsp + 0x20], ebx
xor r9d, r9d
lea r8, str.Control_PanelDesktop
mov rdx, 0xffffffff80000001
lea rcx, [rbp - 0x29]
call fcn.1400f79f0
nop
mov dword [rbp + 0x47], ebx
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x47]
lea r8, [rbp - 0x61]
lea rdx, str.MouseWheelRouting
lea rcx, [rbp - 0x21]
call fcn.14011b090
cmp dword [rbp - 0x61], ebx
je 0x1400f2df0
mov r14, qword [0x1402de0d0]
test r14, r14
je 0x1400f2d6d
mov r14, qword [r14]
jmp 0x1400f2d70
mov r14, rbx
mov ecx, 1
call fcn.140117cc0
mov r15, rax
test r14, r14
je 0x1400f2dec
test rax, rax
je 0x1400f2dec
mov rbx, qword [r14 + 0x788]
mov rcx, rax
call fcn.14003d9b0
mov rdx, rax
mov rcx, rbx
call fcn.14008fe80
mov ebx, eax
mov rcx, qword [r14 + 0x788]
cmp eax, dword [rcx + 0x10]
je 0x1400f2dea
mov edx, 1
mov rcx, r15
call fcn.14011bc20
test al, al
je 0x1400f2dea
test byte [0x1402d741c], 4
je 0x1400f2e5f
mov r9d, ebx
lea r8, str.uiUnderPtrAppID__d__cuurentID:_bShouldSendInputFalse_n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
jmp 0x1400f2e5f
xor ebx, ebx
mov r15d, dword [rbp + 0x6f]
mov dword [rbp - 0x59], ebx
mov qword [rbp - 0x51], 0
mov qword [rbp - 0x39], rbx
mov dword [rbp - 0x49], esi
cmp dword [rbp + 0x67], 0
mov eax, 0x800
cmovne r12d, eax
mov dword [rbp - 0x45], r12d
mov dword [rbp - 0x41], ebx
test byte [0x1402d741c], 4
je 0x1400f2e44
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r13d
mov r9d, esi
lea r8, str.SentInput:_iWheelUnits_d__bIsTargetFocus_d__bUseLinearScroll_d_n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
mov r9d, 0x28
lea r8, [rbp - 0x59]
lea edx, [r9 - 0x27]
lea rcx, [0x1402dc840]
call fcn.1400aa500
nop
lea rcx, [rbp - 0x29]
call fcn.1400f7a90
jmp 0x1400f2efc
movzx ecx, word [rbp - 0x65]
shl ecx, 0x10
movzx eax, word [rbp - 0x69]
or rcx, rax
movzx r9d, si
shl r9d, 0x10
movzx eax, bx
or r9, rax
mov eax, 0x20a
mov r8d, 0x20e
test r14d, r14d
cmovne r8d, eax
lea rax, [rbp + 0x47]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 0xc8
mov dword [rsp + 0x28], r10d
mov qword [rsp + 0x20], rcx
lea rcx, [0x1402dc840]
call fcn.1400aa330
test byte [0x1402d741c], 4
je 0x1400f2efc
mov r9, qword [rbp + 0x47]
mov rcx, r9
shr rcx, 0x10
movzx eax, r9w
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea r8, str.SynSendMessageTimeout:_dwRst_x__Fitts_Position:__d__Target:__d._n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
add dword [rdi + 0x94], esi
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rdi + 0xa4], eax
mov eax, dword [rdi + 0x60]
cdq
mov ebx, eax
xor ebx, edx
sub ebx, edx
mov dword [rdi + 0x60], 0
mov dword [rdi + 0xa0], 0
test byte [0x1402d741c], 4
je 0x1400f2f57
mov ecx, dword [rdi + 0x94]
mov dword [rsp + 0x20], ecx
mov r9d, esi
lea r8, str.Wheel_Units_d__m_iTotalScrolledAmount_d__set_m_iResidue0_n
mov edx, 3
lea rcx, str.CScrollWidget::MouseScroll
call fcn.14011a490
mov eax, ebx
mov rbx, qword [rsp + 0xf8]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret