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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
test byte [0x652fc0], 4
push ebx
push esi
push edi
mov edi, ecx
je 0x4b64bb
push dword [edi + 0x48]
push str.Residue:__d._n
push 3
push str.CScrollWidget::MouseScroll
call fcn.004cb3a0
add esp, 0x10
test dword [edi + 0x34], 0x20000000
lea eax, [ebp - 0x10]
push eax
je 0x4b64d0
call dword [sym.imp.USER32.dll_GetCursorPos]
jmp 0x4b64d8
call fcn.0047d910
add esp, 4
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call esi
xor ecx, ecx
test ax, ax
push 0x10
sets cl
mov dword [ebp - 4], ecx
call esi
push dword [ebp + 0x20]
mov ebx, dword [ebp + 0x14]
xor ecx, ecx
test ax, ax
push ebx
sets cl
push ecx
push dword [ebp - 4]
mov dword [ebp - 8], ecx
mov ecx, edi
call fcn.004b5780
mov ecx, dword [ebp - 4]
mov esi, eax
test ecx, ecx
jne 0x4b6529
cdq
xor eax, edx
sub eax, edx
je 0x4b65b9
mov eax, dword [ebp + 0x24]
xor edx, edx
jmp 0x4b6542
test dword [edi + 0x34], 0x80000
mov eax, dword [ebp + 0x24]
jne 0x4b653d
test eax, eax
jne 0x4b653d
xor edx, edx
jmp 0x4b6542
mov edx, 1
test ecx, ecx
jne 0x4b6557
test byte [edi + 0x34], 2
jne 0x4b6550
test eax, eax
je 0x4b6557
mov ecx, 1
jmp 0x4b6559
xor ecx, ecx
cmp dword [ebp + 0x10], 0
je 0x4b6574
mov eax, dword [edi + 0x64]
test al, 1
je 0x4b6574
test eax, 0x800
je 0x4b6574
mov eax, 1
jmp 0x4b6576
xor eax, eax
test ebx, ebx
jne 0x4b65c4
test ecx, ecx
jne 0x4b65c4
test eax, eax
jne 0x4b65c4
test edx, edx
jne 0x4b65c4
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x78
jge 0x4b663b
test byte [0x652fc0], 4
je 0x4b65b9
push 0x78
push esi
push dword [edi + 0x34]
push str.m_uiClassFlags___x__use_large_wheel__iWheelUnit__d____gain__d___return__n
push 3
push str.CScrollWidget::MouseScroll
call fcn.004cb3a0
add esp, 0x18
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x20
test byte [0x652fc0], 4
je 0x4b65e5
push edx
push eax
push ecx
push ebx
push str.let_it_continue__as_bUseLinearScroll_d__bIsSmallWheel_d__bIsVerticalWheelPriority_d__bIsSmallZoomWheel_d_n
push 3
push str.CScrollWidget::MouseScroll
call fcn.004cb3a0
add esp, 0x1c
test ebx, ebx
je 0x4b663b
mov ebx, dword [ebp + 0x1c]
mov ecx, edi
push ebx
call fcn.004b56c0
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jl 0x4b65b9
test ebx, ebx
je 0x4b663b
test dword [edi + 0x34], 0x10000000
je 0x4b663b
push dword [edi + 0x5c]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push dword [edi + 0x88]
call fcn.00405bb0
add esp, 0xc
test eax, eax
je 0x4b663b
inc dword [edi + 0x8c]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
test byte [0x652fc0], 4
je 0x4b665f
push esi
push dword [edi + 0x54]
push dword [edi + 0x34]
push str.config_x__scrLines_d__Wheel_Units:__d._n
push 3
push str.CScrollWidget::MouseScroll
call fcn.004cb3a0
add esp, 0x18
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x4b667a
test dword [edi + 0x34], 0x10000
je 0x4b667a
push 0
push ebx
call fcn.004c7260
add esp, 8
push dword [ebp + 0xc]
mov ecx, edi
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.004b58c0
cmp dword [ebp + 0x10], 0
mov dword [ebp + 0x24], eax
jne 0x4b66b1
cmp dword [edi + 0x44], 0
jne 0x4b66b1
cmp dword [ebp + 0x14], 0
jne 0x4b66b1
test dword [edi + 0x34], 0x1000
jne 0x4b66b1
mov dword [ebp + 0x10], 1
neg esi
call fcn.004c66e0
xor ecx, ecx
cmp ebx, eax
mov eax, dword [edi + 0x8c]
sete cl
test eax, eax
je 0x4b66d5
inc eax
mov dword [edi + 0x8c], 0
imul esi, eax
cmp dword [ebp + 0x24], 0
je 0x4b66e1
test byte [edi + 0x34], 4
jne 0x4b66e8
mov eax, dword [edi + 0x34]
test al, 1
je 0x4b6743
test byte [0x652fc0], 4
je 0x4b6706
push esi
push str.SynPostMessage:_iWheelUnits_d_n
push 3
push str.CScrollWidget::MouseScroll
call fcn.004cb3a0
add esp, 0x10
movzx ecx, word [ebp - 0xc]
movzx eax, word [ebp - 0x10]
shl ecx, 0x10
or ecx, eax
mov eax, dword [ebp + 0x24]
push ecx
movzx eax, ax
movzx ecx, si
shl ecx, 0x10
or ecx, eax
xor eax, eax
cmp dword [ebp + 0x10], eax
push ecx
sete al
mov ecx, 0x6570a8
lea eax, [eax*4 + 0x20a]
push eax
push ebx
call fcn.00487ce0
jmp 0x4b67ca
test eax, 0x200000
je 0x4b6752
test ecx, ecx
jne 0x4b681c
mov edx, dword [ebp + 0x14]
test edx, edx
jne 0x4b681f
movzx ecx, word [ebp - 0xc]
lea eax, [ebp + 0x14]
push eax
movzx eax, word [ebp - 0x10]
shl ecx, 0x10
or ecx, eax
mov eax, dword [ebp + 0x24]
push 0xc8
push edx
push ecx
movzx eax, ax
movzx ecx, si
shl ecx, 0x10
or ecx, eax
xor eax, eax
cmp dword [ebp + 0x10], eax
push ecx
sete al
mov ecx, 0x6570a8
lea eax, [eax*4 + 0x20a]
push eax
push ebx
call fcn.00488090
test byte [0x652fc0], 4
je 0x4b67ca
mov ecx, dword [ebp + 0x14]
mov eax, ecx
shr eax, 0x10
push eax
movzx eax, cx
push eax
push ecx
push str.SynSendMessageTimeout:_dwRst_x__Fitts_Position:__d__Target:__d._n
push 3
push str.CScrollWidget::MouseScroll
call fcn.004cb3a0
add esp, 0x18
add dword [edi + 0x7c], esi
test byte [0x652fc0], 4
je 0x4b67ee
push dword [edi + 0x7c]
push esi
push str.Wheel_Units:__d__Total__d._n
push 3
push str.CScrollWidget::MouseScroll
call fcn.004cb3a0
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x48]
cdq
mov dword [edi + 0x48], 0
xor eax, edx
mov dword [edi + 0x84], 0
sub eax, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov edx, dword [ebp + 0x14]
cmp dword [ebp + 0x10], 0
mov eax, 0x1000
mov ebx, 0x800
mov dword [ebp - 0x2c], 0
cmovne eax, ebx
mov dword [ebp - 0x28], 0
test byte [0x652fc0], 4
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0
je 0x4b6879
push edx
push ecx
push esi
push str.SentInput:_iWheelUnits_d__bIsTargetFocus_d__bUseLinearScroll_d_n
push 3
push str.CScrollWidget::MouseScroll
call fcn.004cb3a0
add esp, 0x18
push 0x1c
lea eax, [ebp - 0x2c]
mov ecx, 0x6570a8
push eax
push 1
call fcn.00487eb0
jmp 0x4b67ca