Function at 0x1400f3820
Capabilities:
Log keystrokes via polling

Disassembly:
mov byte [rsp + 0x18], r8b
push rbp
push rdi
push r13
sub rsp, 0x60
mov eax, dword [rcx + 0x60]
mov r13, rdx
mov edi, r9d
mov dword [rsp + 0x30], eax
cdq
mov rbp, rcx
xor eax, edx
cmp eax, edx
jne 0x1400f384f
xor eax, eax
add rsp, 0x60
pop r13
pop rdi
pop rbp
ret
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], r12
xor r8d, r8d
xor edx, edx
mov rcx, r13
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
call fcn.1400d23b0
mov r12d, eax
mov ecx, 0x11
mov r15d, eax
shr r12d, 0x16
mov dword [rsp + 0x80], eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ebx, ebx
test ax, ax
lea ecx, [rbx + 0x10]
mov esi, ebx
sets sil
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r14d, ebx
test ax, ax
sets r14b
and r12d, 1
je 0x1400f38c6
test esi, esi
jne 0x1400f38c6
test r14d, r14d
jne 0x1400f38c6
mov ebx, dword [rbp + 0x60]
jmp 0x1400f38e8
mov eax, dword [rsp + 0xa0]
mov r9d, edi
mov r8d, r14d
mov edx, esi
mov rcx, rbp
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], eax
call fcn.1400f3bc0
mov ebx, eax
mov eax, 0x5dc
mov ecx, 1
cmp ebx, eax
cmovg ebx, eax
mov eax, 0xfffffa24
cmp ebx, eax
cmovl ebx, eax
bt r15d, 0x18
jb 0x1400f390d
test r12d, r12d
jne 0x1400f3925
test edi, edi
jne 0x1400f3925
mov eax, dword [rbp + 0x3c]
test al, 2
jne 0x1400f3925
bt eax, 0x13
jb 0x1400f3925
xor eax, eax
mov r15d, eax
jmp 0x1400f3928
mov r15d, ecx
test esi, esi
jne 0x1400f3931
test r14d, r14d
je 0x1400f3944
test edi, edi
jne 0x1400f3944
test dword [rbp + 0x3c], 0x80000
mov esi, edi
cmove r15d, edi
jmp 0x1400f3946
xor esi, esi
test byte [0x1402d741c], 4
je 0x1400f397e
mov ecx, dword [r13 + 0x30]
call fcn.1400d0c00
lea r8, str.zone__s_:_AppZoneFlag_x_n
lea rcx, str.CScrollWidget::PostWheelThroughKernel
mov r9, rax
mov eax, dword [rsp + 0x80]
mov edx, 3
mov dword [rsp + 0x20], eax
call fcn.14011a490
test r15d, r15d
je 0x1400f3a59
test r12d, r12d
je 0x1400f39cb
test byte [0x1402d741c], 4
je 0x1400f39b0
lea r8, str.CustomerSpecifiedAppScroll:_iWheelUnits_d_n
lea rcx, str.CScrollWidget::PostWheelThroughKernel
mov r9d, ebx
mov edx, 3
call fcn.14011a490
test edi, edi
jne 0x1400f3a25
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x168
jle 0x1400f3a25
test ebx, ebx
jns 0x1400f3a18
or eax, 0xffffffff
jmp 0x1400f3a1f
test edi, edi
je 0x1400f39b4
xor edx, edx
mov rcx, rbp
call fcn.1400f6430
mov r8d, eax
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, r8d
jge 0x1400f39b0
test byte [0x1402d741c], 4
je 0x1400f3a11
mov dword [rsp + 0x20], r8d
lea rcx, str.CScrollWidget::PostWheelThroughKernel
lea r8, str.UseLinearScroll:_iWheelUnits__d____win8WheelUnit__d___return_0_n
mov r9d, ebx
mov edx, 3
call fcn.14011a490
xor eax, eax
jmp 0x1400f3b91
test ebx, ebx
mov eax, esi
setg al
imul ebx, eax, 0x168
mov eax, dword [rbp + 0x60]
cdq
mov edi, eax
xor edi, edx
sub edi, edx
test byte [0x1402d741c], 4
je 0x1400f3ac9
lea r8, str.Small_Wheel:_lDeltaWheel_d_n
lea rcx, str.CScrollWidget::PostWheelThroughKernel
mov r9d, ebx
mov edx, 3
call fcn.14011a490
jmp 0x1400f3ac9
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x78
jl 0x1400f3a11
mov eax, 0x88888889
imul ebx
add ebx, edx
sar ebx, 6
mov eax, ebx
shr eax, 0x1f
add ebx, eax
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x7f
jl 0x1400f3a97
test ebx, ebx
jns 0x1400f3a8d
or eax, 0xffffffff
jmp 0x1400f3a94
test ebx, ebx
mov eax, esi
setg al
imul ebx, eax, 0x7f
imul eax, ebx, 0x78
cdq
mov edi, eax
xor edi, edx
sub edi, edx
test byte [0x1402d741c], 4
je 0x1400f3ac9
lea r8, str.Large_Wheel:_lDeltaWheel_d__iResidueScrolled_d_n
lea rcx, str.CScrollWidget::PostWheelThroughKernel
mov r9d, ebx
mov edx, 3
mov dword [rsp + 0x20], edi
call fcn.14011a490
mov r14, qword [0x1402de0d0]
neg ebx
test r14, r14
je 0x1400f3b87
mov r14, qword [r14]
test r14, r14
je 0x1400f3b87
cmp byte [rsp + 0x90], 0
mov eax, 1
cmove esi, eax
test r15d, r15d
je 0x1400f3aff
or esi, 2
test byte [0x1402d741c], 4
je 0x1400f3b27
lea r8, str.ForceMotionWithWheelEx:_lDeltaWheel_d__lFlags_x_n
lea rcx, str.CScrollWidget::PostWheelThroughKernel
mov r9d, ebx
mov edx, 3
mov dword [rsp + 0x20], esi
call fcn.14011a490
mov rcx, qword [r14 + 0x58]
test rcx, rcx
jne 0x1400f3b34
lea rcx, [r14 + 0x70]
mov rax, qword [rcx]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebx
call qword [rax + 0xe0]
mov eax, dword [rbp + 0x60]
test eax, eax
jle 0x1400f3b58
sub eax, edi
jmp 0x1400f3b5a
add eax, edi
mov dword [rbp + 0x60], eax
test byte [0x1402d741c], 4
je 0x1400f3b87
mov r9d, dword [rsp + 0x30]
lea r8, str.preResidue:__d__remain:__d_n
lea rcx, str.CScrollWidget::PostWheelThroughKernel
mov edx, 3
mov dword [rsp + 0x20], eax
call fcn.14011a490
xor eax, eax
mov dword [rbp + 0xa0], eax
mov eax, edi
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x88]
mov r15, qword [rsp + 0x40]
add rsp, 0x60
pop r13
pop rdi
pop rbp
ret