Function at 0x445db0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x258
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
mov dword [ebp - 4], esi
cmp dword [edi + 0x24], 0
jne 0x445de0
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov ecx, dword [edi + 0x24]
push 1
call fcn.00427740
cmp dword [edi + 0x24], 0
mov dword [ebp - 0xc], eax
jne 0x445e0a
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov ecx, dword [edi + 0x24]
push 0x10
call fcn.00427740
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0x34], eax
jne 0x445e25
test eax, eax
je 0x44625e
push 0x11
mov dword [ebp - 8], 0
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x445e76
cmp dword [edi + 0x24], 0
jne 0x445e5b
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov ecx, dword [edi + 0x24]
push 2
call fcn.00427740
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x34], 0
cmp dword [ebp + 0x14], 0
je 0x445ea4
mov ecx, dword [esi + 0x7c]
test ecx, ecx
jne 0x445e90
push dword [ebp + 0x18]
mov ecx, dword [esi + 0x1c]
call fcn.004aa870
jmp 0x445e9d
cmp ecx, 6
jne 0x445e9d
push edi
mov ecx, esi
call fcn.00449510
mov dword [esi + 0x7c], 0xc
cmp dword [esi + 0x74], 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
je 0x445ee7
test ecx, ecx
je 0x445edf
movd xmm1, edx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
andpd xmm0, xmmword [0x516cc0]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [esi + 0x78]
comiss xmm0, xmm1
ja 0x445ee7
mov esi, dword [0x656fb0]
jmp 0x445efd
mov esi, dword [0x656fb0]
mov eax, ecx
imul eax, ecx
cwde
test ecx, ecx
jle 0x445efb
add esi, eax
jmp 0x445efd
sub esi, eax
mov ecx, dword [0x656fb4]
mov eax, edx
imul eax, edx
cwde
test edx, edx
jle 0x445f11
add ecx, eax
jmp 0x445f13
sub ecx, eax
cmp dword [ebp - 8], 0
mov dword [0x656fb4], ecx
mov dword [ebp - 0x14], ecx
je 0x445f26
xor esi, esi
jmp 0x445f61
mov eax, ecx
cdq
mov ecx, eax
mov eax, esi
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
add eax, eax
cmp eax, ecx
cmovl esi, edx
add ecx, ecx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
xor edx, edx
cmp ecx, eax
mov ecx, dword [ebp - 0x14]
cmovl ecx, edx
mov dword [0x656fb4], ecx
mov dword [ebp - 0x14], ecx
mov dword [0x656fb0], esi
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jg 0x445f83
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x4461d1
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x4460ce
xor ecx, ecx
mov eax, 0x51eb851f
cmp dword [ebp + 0x10], ecx
setg cl
imul dword [ebp - 0x14]
lea ecx, [ecx*2 - 1]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul ecx, eax
mov esi, ecx
shl esi, 4
sub esi, ecx
shl esi, 3
cmp esi, 0x7fff
jle 0x445fd0
mov esi, 0x7fff
jmp 0x445fde
cmp esi, 0xffff8001
mov eax, 0xffff8001
cmovl esi, eax
cmp dword [ebp - 0xc], 0
je 0x446018
cmp dword [edi + 0x24], 0
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x20], eax
jne 0x44600a
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
mov eax, dword [ebp - 0x20]
add esp, 0xc
push 0
push 1
push esi
push 2
push 0x3e8
jmp 0x446081
cmp dword [ebp - 0x34], 0
je 0x44604f
cmp dword [edi + 0x24], 0
jne 0x44603b
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
push 0
xor eax, eax
test esi, esi
push 1
push esi
setns al
push 0
inc eax
push eax
push 0
jmp 0x446082
cmp dword [edi + 0x24], 0
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x20], eax
jne 0x446075
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
mov eax, dword [ebp - 0x20]
add esp, 0xc
push 0
push 1
push esi
push 0
push 0x3e9
push eax
mov ecx, dword [edi + 0x24]
call fcn.0042ba50
mov eax, 0x88888889
xor ecx, ecx
imul esi
add edx, esi
mov esi, dword [0x656fb0]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
xor eax, edx
sub eax, edx
cmp dword [ebp + 0x10], ecx
setle cl
lea ecx, [ecx*2 - 1]
imul eax, ecx
mov ecx, dword [0x656fb4]
imul eax, eax, 0x64
add ecx, eax
mov dword [ebp - 0x14], ecx
mov dword [0x656fb4], ecx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x445f67
xor ecx, ecx
mov eax, 0x51eb851f
cmp dword [ebp + 0xc], ecx
setle cl
imul esi
lea ecx, [ecx*2 - 1]
sar edx, 5
mov eax, edx
mov dword [ebp - 0x38], ecx
shr eax, 0x1f
add eax, edx
imul eax, ecx
mov esi, eax
shl esi, 4
sub esi, eax
shl esi, 3
cmp esi, 0x7fff
jle 0x44611d
mov esi, 0x7fff
jmp 0x44612b
cmp esi, 0xffff8001
mov eax, 0xffff8001
cmovl esi, eax
cmp dword [ebp - 0xc], 0
je 0x446166
cmp dword [edi + 0x24], 0
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x20], eax
jne 0x446157
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
mov eax, dword [ebp - 0x20]
add esp, 0xc
push 0
push 1
push esi
push 1
push 0x3e8
push eax
jmp 0x446197
cmp dword [edi + 0x24], 0
jne 0x446183
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
push 0
xor eax, eax
test esi, esi
push 1
push esi
setns al
push 0
add eax, 3
push eax
push 0
mov ecx, dword [edi + 0x24]
call fcn.0042ba50
mov eax, 0x88888889
mov ecx, dword [0x656fb4]
imul esi
add edx, esi
mov esi, dword [0x656fb0]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
xor eax, edx
sub eax, edx
imul eax, dword [ebp - 0x38]
imul eax, eax, 0x64
add esi, eax
jmp 0x445f5e
mov esi, dword [ebp - 4]
cmp dword [esi + 0x7c], 0xc
jne 0x446235
cmp dword [ebp - 8], 0
je 0x44620e
mov eax, dword [esi + 0x1c]
push 0xa
push dword [eax + 0xb8]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [esi + 0x14]
mov ecx, 0x657be4
push edi
push 6
push dword [eax + 0x44]
push edi
call fcn.0040b560
mov dword [esi + 0x7c], 6
jmp 0x446235
push 0
push edi
push 0
push dword [0x6579b8]
call fcn.00448e90
mov ecx, dword [0x65909c]
push 0x102
call fcn.004a8dc0
mov dword [esi + 0x7c], 0
cmp dword [edi + 0x24], 0
jne 0x446252
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov ecx, dword [edi + 0x24]
call fcn.0042fc50
test eax, eax
jne 0x446287
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0xc]
neg eax
push eax
push dword [ebp + 0xc]
mov dword [ebp + 0x10], eax
call fcn.004a8500
test eax, eax
je 0x446294
cmp dword [ebp + 0x14], 0
je 0x446287
push dword [ebp + 0x18]
mov ecx, dword [esi + 0x1c]
call fcn.004aa870
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 0x18
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 1
je 0x4462ba
push dword [ebp + 0x18]
mov ecx, dword [esi + 0x1c]
call fcn.004aa870
lea eax, [ebp - 0x30]
push eax
call fcn.0047d910
mov ecx, dword [esi + 0xc]
lea eax, [ebp - 0x28]
add esp, 4
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004a6c60
mov edi, eax
mov dword [ebp - 0xc], edi
test edi, edi
jne 0x446311
test byte [0x652fc0], 8
je 0x446304
push str.Cant_get_the_scroll_handle._n
push 4
push str.CPluginAction::HandleIBMScroll
call fcn.004cb3a0
add esp, 0xc
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov esi, dword [ebp + 8]
cmp dword [esi + 0x24], 0
jne 0x446331
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 0x24]
mov eax, dword [eax + 0x44]
cmp eax, dword [ecx + 0x754]
je 0x44637b
mov ecx, esi
call fcn.00403e00
mov ecx, dword [ebp - 4]
mov eax, dword [eax + 0x754]
mov dword [ecx + 0x44], eax
mov ecx, esi
call fcn.00403e00
cmp dword [eax + 0x754], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
jne 0x446374
mov byte [eax + 0xa1], 1
jmp 0x44637b
mov byte [eax + 0xa1], 0
test byte [0x658544], 4
jne 0x446398
mov ecx, esi
call fcn.00403e00
cmp dword [eax + 0x754], 1
jne 0x446430
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x28], 0x10
cmp dword [ecx + 0x40], edi
jne 0x4463af
mov eax, dword [ecx + 0x14]
cmp dword [eax + 0x10], esi
je 0x4463dd
mov ecx, dword [ecx + 0x14]
push esi
push edi
add ecx, 0x10
call fcn.004b5c40
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x14]
mov dword [eax + 0x40], edi
mov eax, dword [ecx]
lea esi, [ecx + 0x10]
mov eax, dword [eax + 0x38]
call eax
and eax, 8
mov ecx, esi
push eax
call fcn.004b8e20
mov esi, dword [ebp + 8]
cmp dword [esi + 0x24], 0
jne 0x4463fa
push 0x1a9
push str.g:checkpoints_tpdrvheadgit1_syntpenhCZone.h
push str.m_pManagedPointingDevice
call fcn.004904e0
add esp, 0xc
mov eax, dword [esi + 0x24]
mov esi, dword [ebp - 4]
cmp dword [eax + 0x754], 1
je 0x446424
mov ecx, dword [esi + 0xc]
push edi
call fcn.004a85d0
movzx eax, ax
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0x14]
mov byte [eax + 0xa1], 0
jmp 0x446433
mov eax, dword [esi + 0x14]
mov byte [eax + 0xa1], 1
jmp 0x446433
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
cmp ax, 6
je 0x446287
cmp ax, 9
jne 0x4464d1
mov eax, dword [ebp - 0x18]
xor ecx, ecx
xor edx, edx
mov dword [ebp + 0x14], 0
cmp edi, eax
cmove eax, ecx
mov ecx, dword [ebp - 0x24]
cmp edi, ecx
mov dword [ebp - 0x18], eax
cmove ecx, edx
mov dword [ebp - 0x24], ecx
test eax, eax
je 0x446481
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x18]
test ecx, ecx
je 0x446494
push ecx
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [ebp - 0x24]
mov edx, eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4464a9
cmp dword [ebp + 0x14], edi
mov dword [ebp + 0x18], 0
cmovne eax, dword [ebp + 0x18]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x4464b8
cmp edx, edi
je 0x4464bf
mov dword [ebp - 0x24], 0
mov dword [ebp + 0x10], 0
mov ecx, dword [ebp + 0xc]
xor edx, edx
test eax, eax
mov dword [ebp - 0x28], edx
cmove ecx, edx
mov dword [ebp + 0xc], ecx
jmp 0x446508
cmp ax, 7
je 0x4464f5
cmp ax, 8
je 0x4464f5
cmp ax, 0xd
je 0x4464f5
cmp ax, 1
je 0x4464f5
cmp ax, 2
je 0x4464f5
cmp ax, 0x10
jne 0x446505
lea eax, [ebp - 0x34]
mov ecx, esi
push eax
push 1
call fcn.0044ae90
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp + 0xc]
cmp dword [esi + 0x74], 0
je 0x44653e
test ecx, ecx
je 0x446556
movd xmm1, dword [ebp + 0x10]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
andpd xmm0, xmmword [0x516cc0]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [esi + 0x78]
comiss xmm0, xmm1
jbe 0x446556
mov eax, ecx
imul eax, ecx
cwde
test ecx, ecx
jle 0x446550
add dword [0x656fb8], eax
jmp 0x446556
sub dword [0x656fb8], eax
mov esi, dword [ebp + 0x10]
mov eax, esi
imul eax, esi
cwde
test esi, esi
jle 0x44656b
add dword [0x656fbc], eax
jmp 0x446571
sub dword [0x656fbc], eax
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x44658f
mov dword [0x656fb8], 0
jmp 0x4465d7
mov edi, dword [0x656fbc]
mov eax, edi
mov ecx, dword [0x656fb8]
cdq
mov esi, eax
mov eax, ecx
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
add eax, eax
cmp eax, esi
cmovl ecx, edx
mov eax, ecx
mov dword [0x656fb8], ecx
cdq
lea ecx, [esi + esi]
mov esi, dword [ebp + 0x10]
xor eax, edx
sub eax, edx
xor edx, edx
cmp ecx, eax
cmovl edi, edx
mov dword [0x656fbc], edi
mov edi, dword [ebp - 0xc]
push 0x100
lea eax, [ebp - 0x258]
push eax
push edi
call dword [sym.imp.USER32.dll_GetClassNameW]
mov eax, dword [ebp - 0x28]
cmp ax, 1
je 0x446624
cmp ax, 0x10
je 0x446624
push str.Chrome_WidgetWin_0
lea eax, [ebp - 0x258]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x446624
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 9
setg cl
mov dword [ebp - 0x14], ecx
jmp 0x44662b
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
mov eax, esi
cdq
mov esi, 0x640
xor eax, edx
sub eax, edx
xor edx, edx
cmp eax, 9
mov eax, 0x64
setg dl
test ecx, ecx
mov dword [ebp - 0x10], edx
cmovne eax, esi
mov dword [ebp + 0x14], eax
test edx, edx
je 0x4466ab
mov dword [ebp + 0x18], esi
mov esi, dword [0x656fbc]
test ecx, ecx
jne 0x446688
cmp dword [0x656fc0], ecx
jle 0x446688
mov ecx, dword [0x656fb8]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
cmp eax, 0xc8
cmovg ecx, edx
mov dword [0x656fb8], ecx
cmp dword [ebp - 0x10], 0
je 0x4466da
mov ecx, dword [ebp + 0x18]
mov eax, esi
cdq
xor eax, edx
movsx ecx, cx
sub eax, edx
cmp eax, ecx
jle 0x4466da
mov dword [0x656fc4], 5
jmp 0x4466e9
cmp dword [0x656fc4], 0
mov dword [ebp + 0x18], 0x64
jle 0x446659
mov esi, dword [0x656fbc]
mov eax, esi
cdq
xor eax, edx
sub eax, edx
xor edx, edx
cmp eax, 0xc8
cmovg esi, edx
mov dword [0x656fbc], esi
jmp 0x44665f
mov eax, dword [0x656fc4]
test eax, eax
jle 0x4466e9
dec eax
mov dword [0x656fc4], eax
cmp dword [ebp - 0x14], 0
je 0x44670f
mov eax, dword [0x656fb8]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp + 0x14]
movsx ecx, dx
cmp eax, ecx
jle 0x446712
mov dword [0x656fc0], 5
jmp 0x446721
mov edx, dword [ebp + 0x14]
mov eax, dword [0x656fc0]
test eax, eax
jle 0x446721
dec eax
mov dword [0x656fc0], eax
mov eax, dword [ebp - 0x28]
cmp ax, 7
je 0x446730
cmp ax, 8
jne 0x44673a
mov dword [0x656fb8], 0
movsx ecx, dx
mov dword [ebp + 0x14], ecx
jmp case.default.0x4468e9
mov eax, esi
mov ecx, dword [ebp - 4]
cdq
or esi, 0xffffffff
idiv dword [ebp - 8]
cmp dword [ebp - 0x10], 0
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0044ab80
push 0
imul esi, edi
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 4]
push esi
push dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
call fcn.004a8580
mov eax, dword [ebp - 8]
imul eax, edi
mov edi, dword [ebp - 0xc]
mov esi, dword [0x656fbc]
sub esi, eax
mov dword [0x656fbc], esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [0x656fb8]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x4467be
mov ecx, dword [ebp + 0x18]
mov eax, esi
cdq
xor eax, edx
movsx ecx, cx
sub eax, edx
cmp eax, ecx
jle 0x4476a8
mov ecx, dword [ebp + 0x14]
movsx eax, word [ebp - 0x28]
mov edx, 1
cmp eax, 0xc
ja case.0x4467d7.1
movzx eax, byte [eax + 0x447ad0]
jmp dword [eax*4 + 0x447abc]
cmp dword [0x656fb8], ecx
jle 0x4467ea
push 0
jmp 0x4467f8
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x44680b
push 1
push 1
push edi
call fcn.00441e60
mov esi, dword [0x656fbc]
mov edx, eax
add esp, 0xc
mov eax, dword [ebp + 0x18]
cwde
cmp esi, eax
jle 0x44681d
push 0
push 0
push edi
jmp 0x4468c1
neg eax
cmp esi, eax
jge 0x4468d1
push 1
push 0
push edi
jmp 0x4468c1
cmp dword [0x656fb8], ecx
jle 0x44683d
push 0
jmp 0x44684b
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x446860
push 1
push 1
push dword [ebp - 0x18]
call fcn.00441e60
mov esi, dword [0x656fbc]
mov edx, eax
add esp, 0xc
mov eax, dword [ebp + 0x18]
cwde
cmp esi, eax
jle 0x446871
push 0
push 0
push dword [ebp - 0x24]
jmp 0x4468c1
neg eax
cmp esi, eax
jge 0x4468d1
push 1
push 0
push dword [ebp - 0x24]
jmp 0x4468c1
cmp dword [0x656fb8], ecx
jle 0x44688f
push 0
push 1
push edi
jmp 0x4468c1
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge case.0x4467d7.1
push 1
push 1
push edi
jmp 0x4468c1
cmp dword [0x656fb8], ecx
jle 0x4468ae
push 0
jmp 0x4468bc
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge case.0x4467d7.1
push 1
push 1
push dword [ebp - 0x18]
call fcn.00441e60
mov esi, dword [0x656fbc]
mov edx, eax
add esp, 0xc
test edx, edx
je 0x447a7f
movsx eax, word [ebp - 0x28]
mov ecx, dword [ebp + 0x14]
cmp eax, 0x10
ja case.default.0x4468e9
jmp dword [eax*4 + 0x447ae0]
mov eax, dword [ebp + 0x18]
movsx ecx, ax
mov dword [ebp - 0x1c], ecx
cmp esi, ecx
jg 0x446905
mov eax, ecx
neg eax
cmp esi, eax
jge 0x446956
mov eax, esi
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 0x10], 0
mov ecx, dword [ebp - 4]
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0044ab80
imul esi, edi
push 0
push esi
push 0
push 0
push 0x800
call fcn.004a8aa0
mov eax, dword [ebp - 0x1c]
add esp, 0x14
mov esi, dword [0x656fbc]
imul eax, edi
mov edi, dword [ebp - 0xc]
sub esi, eax
mov dword [0x656fbc], esi
mov ecx, dword [ebp + 0x14]
cmp dword [0x656fb8], ecx
jle 0x446997
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push 0
push 0x78
push 0
push 0
push 0x1000
call fcn.004a8aa0
mov ecx, dword [ebp + 0x14]
add esp, 0x14
sub dword [0x656fb8], ecx
mov esi, dword [0x656fbc]
jmp case.default.0x4468e9
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge case.default.0x4468e9
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push 0
push 0xffffffffffffff88
push 0
push 0
push 0x1000
call fcn.004a8aa0
mov ecx, dword [ebp + 0x14]
add esp, 0x14
add dword [0x656fb8], ecx
mov esi, dword [0x656fbc]
jmp case.default.0x4468e9
mov ecx, 0x6570a8
call fcn.00445d60
mov eax, dword [ebp + 0x18]
movsx ecx, ax
mov eax, esi
cdq
xor eax, edx
mov dword [ebp - 0x3c], ecx
sub eax, edx
fstp dword [ebp - 0x20]
cmp eax, ecx
jle 0x446aa2
mov eax, esi
mov esi, dword [ebp - 4]
cdq
idiv ecx
mov ecx, 0xfffffff0
mov dword [ebp - 8], eax
or eax, 0xffffffff
cmp dword [ebp - 0x10], 0
push 0x102
cmovne eax, ecx
mov ecx, esi
mov dword [ebp - 0x1c], eax
call fcn.0044ab80
test byte [0x652fc0], 4
je 0x446a4e
push dword [ebp - 0x1c]
push dword [ebp - 8]
push str.useSynapticsScrollMethod:_do_V_scroll__lines_d__factor_d_n
push 3
push str.CPluginAction::HandleIBMScroll
call fcn.004cb3a0
add esp, 0x14
movd xmm0, dword [ebp - 0x1c]
movd xmm1, dword [ebp - 8]
push 0
push 0
cvtdq2ps xmm0, xmm0
push 0
push 0
push 6
push 1
cvtdq2ps xmm1, xmm1
push 0
push 0
mulss xmm0, xmm1
mulss xmm0, dword [ebp - 0x20]
call fcn.004d0910
mov ecx, dword [esi + 0x14]
push eax
push 1
push dword [ebp + 8]
add ecx, 0x10
call fcn.004b8730
mov eax, dword [ebp - 0x3c]
imul eax, dword [ebp - 8]
mov esi, dword [0x656fbc]
sub esi, eax
mov dword [0x656fbc], esi
mov eax, dword [0x656fb8]
mov ecx, dword [ebp + 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle case.default.0x4468e9
mov eax, dword [0x656fb8]
cdq
idiv ecx
mov esi, dword [ebp - 4]
mov ecx, 0xfffffff0
mov dword [ebp - 8], eax
or eax, 0xffffffff
cmp dword [ebp - 0x14], 0
push 0x10f
cmovne eax, ecx
mov ecx, esi
mov dword [ebp - 0x1c], eax
call fcn.0044ab80
test byte [0x652fc0], 4
je 0x446b06
push dword [ebp - 0x1c]
push dword [ebp - 8]
push str.useSynapticsScrollMethod:_do_H_scroll__lines_d__factor_d_n
push 3
push str.CPluginAction::HandleIBMScroll
call fcn.004cb3a0
add esp, 0x14
movd xmm0, dword [ebp - 0x1c]
movd xmm1, dword [ebp - 8]
push 0
cvtdq2ps xmm0, xmm0
push 0
push 0
push 6
push 1
cvtdq2ps xmm1, xmm1
push 0
push 0
mulss xmm0, xmm1
mulss xmm0, dword [ebp - 0x20]
call fcn.004d0910
mov ecx, dword [esi + 0x14]
push eax
push 1
push dword [ebp + 8]
add ecx, 0x10
call fcn.004b8200
mov ecx, dword [ebp + 0x14]
mov eax, ecx
imul eax, dword [ebp - 8]
mov esi, dword [0x656fbc]
sub dword [0x656fb8], eax
jmp case.default.0x4468e9
mov eax, dword [ebp + 0x18]
movsx ecx, ax
mov dword [ebp - 8], ecx
cmp esi, ecx
jle 0x446bbb
mov eax, esi
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 0x10], 0
mov ecx, dword [ebp - 4]
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0044ab80
push 0
lea eax, [ebp - 0x30]
imul esi, edi
push eax
mov eax, dword [ebp - 4]
push esi
push dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
call fcn.004a8580
mov ecx, dword [ebp - 8]
mov esi, dword [0x656fbc]
imul ecx, edi
mov edi, dword [ebp - 0xc]
sub esi, ecx
jmp 0x44678f
mov eax, ecx
mov ecx, dword [ebp + 0x14]
neg eax
cmp esi, eax
jge case.default.0x4468e9
mov eax, esi
mov ecx, dword [ebp - 4]
cdq
or esi, 0xffffffff
idiv dword [ebp - 8]
cmp dword [ebp - 0x10], 0
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0044ab80
push 0
imul esi, edi
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 4]
push esi
push dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
call fcn.004a8580
mov eax, dword [ebp - 8]
jmp 0x446781
mov eax, dword [ebp + 0x18]
movsx ecx, ax
mov dword [ebp - 8], ecx
cmp esi, ecx
jle 0x446c6c
mov eax, esi
or esi, 0xffffffff
cdq
idiv ecx
cmp dword [ebp - 0x10], 0
mov ecx, dword [ebp - 4]
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0044ab80
push 0
lea eax, [ebp - 0x30]
imul esi, edi
push eax
mov eax, dword [ebp - 4]
push esi
push dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
call fcn.004a84b0
mov ecx, dword [ebp - 8]
mov esi, dword [0x656fbc]
imul ecx, edi
mov edi, dword [ebp - 0xc]
sub esi, ecx
jmp 0x44678f
mov eax, ecx
mov ecx, dword [ebp + 0x14]
neg eax
cmp esi, eax
jge case.default.0x4468e9
mov eax, esi
mov ecx, dword [ebp - 4]
cdq
or esi, 0xffffffff
idiv dword [ebp - 8]
cmp dword [ebp - 0x10], 0
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0044ab80
push 0
imul esi, edi
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 4]
push esi
push dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
call fcn.004a84b0
mov eax, dword [ebp - 8]
jmp 0x446781
mov ecx, dword [ebp + 0x14]
cmp dword [0x656fb8], ecx
jle 0x446d00
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push 0x14d0001
push 0x27
push 0x100
push edi
mov ecx, 0x6570a8
call fcn.00487fd0
mov esi, dword [ebp + 0x14]
sub dword [0x656fb8], esi
push 0x14d0001
push 0x27
jmp 0x446d40
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x446d59
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push 0x14b0001
push 0x25
push 0x100
push edi
mov ecx, 0x6570a8
call fcn.00487fd0
mov esi, dword [ebp + 0x14]
add dword [0x656fb8], esi
push 0x14b0001
push 0x25
push 0x101
push edi
mov ecx, 0x6570a8
call fcn.00487ce0
mov ecx, dword [ebp + 0x14]
mov esi, dword [0x656fbc]
mov eax, dword [ebp + 0x18]
cwde
mov dword [ebp - 8], eax
cmp esi, eax
jg 0x446742
neg eax
cmp esi, eax
jge case.default.0x4468e9
jmp 0x446742
mov ecx, dword [ebp + 0x14]
cmp dword [0x656fb8], ecx
jle 0x446dbd
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push dword [ebp - 0x18]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp - 0x14], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00487fd0
mov ecx, dword [ebp + 0x14]
sub dword [0x656fb8], ecx
jmp 0x446dfd
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x446e03
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
mov eax, dword [ebp - 0x14]
mov ecx, 0x6570a8
push dword [ebp - 0x18]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00487fd0
mov ecx, dword [ebp + 0x14]
add dword [0x656fb8], ecx
mov esi, dword [0x656fbc]
mov eax, dword [ebp + 0x18]
cwde
cmp esi, eax
jle 0x446e46
mov ecx, dword [ebp - 4]
push 0x102
call fcn.0044ab80
push dword [ebp - 0x24]
xor eax, eax
cmp dword [ebp - 0x10], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
mov ecx, 0x6570a8
call fcn.00487fd0
mov ecx, dword [ebp + 0x18]
movsx eax, cx
jmp 0x446787
neg eax
cmp esi, eax
jge case.default.0x4468e9
mov ecx, dword [ebp - 4]
push 0x102
call fcn.0044ab80
mov eax, dword [ebp - 0x10]
push dword [ebp - 0x24]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
mov ecx, 0x6570a8
call fcn.00487fd0
mov ecx, dword [ebp + 0x18]
mov esi, dword [0x656fbc]
movsx eax, cx
add esi, eax
jmp 0x44678f
mov ecx, dword [ebp + 0x14]
cmp dword [0x656fb8], ecx
jle 0x446ed4
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push dword [ebp - 0x18]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp - 0x14], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00487ce0
mov ecx, dword [ebp + 0x14]
sub dword [0x656fb8], ecx
jmp 0x446f14
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x446f1a
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
mov eax, dword [ebp - 0x14]
mov ecx, 0x6570a8
push dword [ebp - 0x18]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00487ce0
mov ecx, dword [ebp + 0x14]
add dword [0x656fb8], ecx
mov esi, dword [0x656fbc]
mov eax, dword [ebp + 0x18]
cwde
cmp esi, eax
jle 0x446f5d
mov ecx, dword [ebp - 4]
push 0x102
call fcn.0044ab80
push dword [ebp - 0x24]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp - 0x10], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
call fcn.00487ce0
mov ecx, dword [ebp + 0x18]
movsx eax, cx
jmp 0x446787
neg eax
cmp esi, eax
jge case.default.0x4468e9
mov ecx, dword [ebp - 4]
push 0x102
call fcn.0044ab80
mov eax, dword [ebp - 0x10]
mov ecx, 0x6570a8
push dword [ebp - 0x24]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
call fcn.00487ce0
mov ecx, dword [ebp + 0x18]
mov esi, dword [0x656fbc]
movsx eax, cx
add esi, eax
jmp 0x44678f
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [0x656fb8]
mov edi, eax
mov esi, dword [ebp + 0x14]
cmp ecx, esi
jle 0x446ff5
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push dword [ebp - 0x18]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp - 0x14], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00487fd0
sub dword [0x656fb8], esi
jmp 0x44702e
mov eax, esi
neg eax
cmp ecx, eax
jge 0x44702e
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
mov eax, dword [ebp - 0x14]
mov ecx, 0x6570a8
push dword [ebp - 0x18]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00487fd0
add dword [0x656fb8], esi
push dword [ebp - 0x24]
call dword [sym.imp.USER32.dll_GetParent]
mov esi, dword [0x656fbc]
mov edi, eax
mov eax, dword [ebp + 0x18]
cwde
mov dword [ebp - 0xc], edi
cmp esi, eax
jg 0x446e0b
neg eax
cmp esi, eax
jge case.0x4468e9.4
jmp 0x446e50
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [0x656fb8]
mov edi, eax
mov esi, dword [ebp + 0x14]
cmp ecx, esi
jle 0x4470ad
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push dword [ebp - 0x18]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp - 0x14], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00487ce0
sub dword [0x656fb8], esi
jmp 0x4470e6
mov eax, esi
neg eax
cmp ecx, eax
jge 0x4470e6
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
mov eax, dword [ebp - 0x14]
mov ecx, 0x6570a8
push dword [ebp - 0x18]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00487ce0
add dword [0x656fb8], esi
push dword [ebp - 0x24]
call dword [sym.imp.USER32.dll_GetParent]
mov esi, dword [0x656fbc]
mov edi, eax
mov eax, dword [ebp + 0x18]
cwde
mov dword [ebp - 0xc], edi
cmp esi, eax
jle 0x44713d
mov ecx, dword [ebp - 4]
push 0x102
call fcn.0044ab80
push dword [ebp - 0x24]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp - 0x10], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
call fcn.00487ce0
mov ecx, dword [ebp + 0x18]
movsx eax, cx
jmp 0x446787
neg eax
cmp esi, eax
jge case.0x4468e9.4
mov ecx, dword [ebp - 4]
push 0x102
call fcn.0044ab80
mov eax, dword [ebp - 0x10]
mov ecx, 0x6570a8
push dword [ebp - 0x24]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
call fcn.00487ce0
mov ecx, dword [ebp + 0x18]
mov esi, dword [0x656fbc]
movsx eax, cx
add esi, eax
jmp 0x44678f
mov ecx, dword [ebp + 0x14]
cmp dword [0x656fb8], ecx
jle 0x4471bf
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push 0x14d0001
push 0x27
push 0x100
push edi
mov ecx, 0x6570a8
call fcn.00487fd0
mov ecx, dword [ebp + 0x14]
sub dword [0x656fb8], ecx
jmp 0x4471f8
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x4471fe
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push 0x14b0001
push 0x25
push 0x100
push edi
mov ecx, 0x6570a8
call fcn.00487fd0
mov ecx, dword [ebp + 0x14]
add dword [0x656fb8], ecx
mov esi, dword [0x656fbc]
mov eax, dword [ebp + 0x18]
cwde
cmp esi, eax
jle 0x447224
mov ecx, dword [ebp - 4]
push 0x102
call fcn.0044ab80
push 0x1500001
push 0x28
push 0x100
jmp 0x446e30
neg eax
cmp esi, eax
jge case.default.0x4468e9
mov ecx, dword [ebp - 4]
push 0x102
call fcn.0044ab80
push 0x1480001
push 0x26
push 0x100
jmp 0x446e70
mov eax, dword [0x656fb8]
mov ecx, dword [ebp + 0x14]
cdq
xor eax, edx
mov dword [ebp - 0x58], 1
sub eax, edx
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
cmp eax, ecx
jle 0x4471fe
push 0x1c
lea eax, [ebp - 0x58]
mov dword [ebp - 0x54], 0x11
push eax
push 1
mov ecx, 0x6570a8
mov dword [ebp - 0x50], 0
call fcn.00487eb0
mov esi, dword [ebp + 0x14]
xor eax, eax
cmp dword [0x656fb8], esi
mov ecx, 0x6570a8
push 0x1c
setg al
lea eax, [eax*2 + 0x25]
mov word [ebp - 0x54], ax
xor eax, eax
mov word [ebp - 0x52], ax
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x58]
push eax
push 1
call fcn.00487eb0
xor eax, eax
mov dword [ebp - 0x50], 2
cmp dword [0x656fb8], esi
mov ecx, 0x6570a8
push 0x1c
setg al
lea eax, [eax*2 + 0x25]
mov word [ebp - 0x54], ax
xor eax, eax
mov word [ebp - 0x52], ax
lea eax, [ebp - 0x58]
push eax
push 1
call fcn.00487eb0
push 0x1c
lea eax, [ebp - 0x58]
mov dword [ebp - 0x54], 0x11
push eax
push 1
mov ecx, 0x6570a8
mov dword [ebp - 0x50], 2
call fcn.00487eb0
mov ecx, esi
cmp dword [0x656fb8], ecx
jle 0x44733f
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
mov ecx, esi
sub dword [0x656fb8], ecx
jmp 0x4471f8
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x4471f8
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
jmp 0x4471ef
mov ecx, dword [ebp + 0x14]
cmp dword [0x656fb8], ecx
jle 0x4473a7
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push dword [ebp - 0x18]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp - 0x14], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00487fd0
mov ecx, dword [ebp + 0x14]
sub dword [0x656fb8], ecx
jmp 0x4473e7
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x4473ed
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
mov eax, dword [ebp - 0x14]
mov ecx, 0x6570a8
push dword [ebp - 0x18]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00487fd0
mov ecx, dword [ebp + 0x14]
add dword [0x656fb8], ecx
mov esi, dword [0x656fbc]
mov eax, dword [ebp + 0x18]
cwde
mov dword [ebp - 8], eax
cmp esi, eax
jle 0x447433
mov eax, esi
mov ecx, 0xfffffff0
cdq
idiv dword [ebp - 8]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
or eax, 0xffffffff
cmp dword [ebp - 0x10], 0
push 0x102
cmovne eax, ecx
mov ecx, esi
mov dword [ebp - 0x20], eax
call fcn.0044ab80
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x44743f
push 8
jmp 0x447441
neg eax
cmp esi, eax
jge case.default.0x4468e9
jmp 0x4473f8
push 0
mov ecx, dword [esi + 0xc]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x1c]
push eax
push edi
call fcn.004a8580
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 8]
jmp 0x446787
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [ebp + 0x14]
mov esi, eax
cmp dword [0x656fb8], ecx
jle 0x4474b3
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
push dword [ebp - 0x18]
xor ecx, ecx
cmp dword [ebp - 0x14], ecx
setne cl
lea ecx, [ecx*2 + 1]
push ecx
push 0x114
push esi
mov ecx, 0x6570a8
call fcn.00487ce0
mov ecx, dword [ebp + 0x14]
sub dword [0x656fb8], ecx
jmp 0x4474f3
mov eax, ecx
neg eax
cmp dword [0x656fb8], eax
jge 0x4474f3
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
mov eax, dword [ebp - 0x14]
mov ecx, 0x6570a8
push dword [ebp - 0x18]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push esi
call fcn.00487ce0
mov ecx, dword [ebp + 0x14]
add dword [0x656fb8], ecx
mov eax, dword [ebp + 0x18]
mov esi, dword [0x656fbc]
cwde
mov dword [ebp - 8], eax
cmp esi, eax
jle 0x44753f
mov eax, esi
mov ecx, 0xfffffff0
cdq
idiv dword [ebp - 8]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
or eax, 0xffffffff
cmp dword [ebp - 0x10], 0
push 0x102
cmovne eax, ecx
mov ecx, esi
mov dword [ebp - 0x20], eax
call fcn.0044ab80
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x44754b
push 8
jmp 0x44754d
neg eax
cmp esi, eax
jge case.default.0x4468e9
jmp 0x447504
push 0
mov ecx, dword [esi + 0xc]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x1c]
push eax
push edi
call fcn.004a84b0
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 8]
jmp 0x446787
mov ecx, dword [ebp + 0x14]
mov edx, dword [0x656fb8]
cmp edx, ecx
jg 0x447583
mov eax, ecx
neg eax
cmp edx, eax
jge 0x4475f3
mov eax, dword [0x656fb8]
mov edi, 1
cdq
idiv ecx
cmp dword [ebp - 0x14], 0
movzx esi, word [ebp - 0x2c]
movzx ecx, word [ebp - 0x30]
mov dword [ebp - 0x3c], eax
mov eax, 0x10
cmovne edi, eax
shl esi, 0x10
or esi, ecx
mov ecx, dword [ebp - 4]
push 0x10f
call fcn.0044ab80
mov ecx, dword [ebp - 0x3c]
imul ecx, edi
mov edi, dword [ebp - 0xc]
push esi
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 3
movzx eax, ax
shl eax, 0x10
push eax
push 0x20e
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [0x656fbc]
mov ecx, dword [ebp + 0x14]
mov dword [0x656fb8], 0
mov eax, dword [ebp + 0x18]
cwde
mov dword [ebp - 8], eax
cmp esi, eax
jle 0x44764e
mov eax, esi
mov ecx, dword [ebp - 4]
cdq
or esi, 0xffffffff
idiv dword [ebp - 8]
cmp dword [ebp - 0x10], 0
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0044ab80
push 0
lea eax, [ebp - 0x30]
imul esi, edi
push eax
mov eax, dword [ebp - 4]
push esi
push dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
call fcn.004a8580
imul edi, dword [ebp - 8]
mov esi, dword [0x656fbc]
sub esi, edi
mov edi, dword [ebp - 0xc]
jmp 0x44678f
neg eax
cmp esi, eax
jge case.default.0x4468e9
mov eax, esi
mov ecx, dword [ebp - 4]
cdq
or esi, 0xffffffff
idiv dword [ebp - 8]
cmp dword [ebp - 0x10], 0
mov edi, eax
mov eax, 0xfffffff0
push 0x102
cmovne esi, eax
call fcn.0044ab80
push 0
lea eax, [ebp - 0x30]
imul esi, edi
push eax
mov eax, dword [ebp - 4]
push esi
push dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
call fcn.004a8580
imul edi, dword [ebp - 8]
mov esi, dword [0x656fbc]
sub esi, edi
mov edi, dword [ebp - 0xc]
jmp 0x44678f
cmp dword [ebp - 0x38], 0
mov esi, dword [ebp - 4]
je 0x4476bd
push 0
push dword [ebp - 0x34]
mov ecx, esi
call fcn.0044ae90
mov ecx, dword [0x65909c]
push 0x102
call fcn.004a8dc0
mov eax, dword [ebp - 0x28]
cmp ax, 1
jne 0x447852
mov esi, dword [0x656fbc]
xor ecx, ecx
mov dword [ebp + 0x10], ecx
cmp esi, 0x64
jle 0x44770c
lea ecx, [esi - 0x65]
mov eax, 0x51eb851f
mul ecx
shr edx, 5
inc edx
imul eax, edx, 0xffffff9c
add esi, eax
imul ecx, edx, 0xffffff88
mov dword [0x656fbc], esi
movzx ecx, cx
mov dword [ebp + 0x10], ecx
cmp esi, 0xffffff9c
jge 0x44773e
mov ecx, 0xffffff9b
mov eax, 0x51eb851f
sub ecx, esi
mul ecx
mov ecx, dword [ebp + 0x10]
shr edx, 5
inc edx
imul eax, edx, 0x64
add esi, eax
mov eax, edx
shl eax, 4
sub eax, edx
mov dword [0x656fbc], esi
lea ecx, [ecx + eax*8]
mov dword [ebp + 0x10], ecx
test cx, cx
je 0x4477e8
mov eax, dword [0x656fcc]
xor esi, esi
test al, 1
jne 0x447767
or eax, 1
push 0x17
mov dword [0x656fcc], eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x656fc8], eax
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
mov ecx, 8
push 0x10
cmovne esi, ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x44778a
or esi, 4
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x4477a5
xor eax, eax
cmp dword [0x656fc8], eax
setne al
inc eax
or esi, eax
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x4477c0
mov eax, dword [0x656fc8]
neg eax
sbb eax, eax
add eax, 2
or esi, eax
movsx ecx, word [ebp - 0x2c]
movsx eax, word [ebp - 0x30]
shl ecx, 0x10
or ecx, eax
mov eax, dword [ebp + 0x10]
cwde
push ecx
shl eax, 0x10
mov ecx, 0x6570a8
or eax, esi
push eax
push 0x20a
push edi
call fcn.00487fd0
mov ecx, dword [0x656fb8]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x446287
mov edi, edi
cmp ecx, 0x64
jle 0x44780f
mov eax, 0x27
sub ecx, 0x64
jmp 0x447817
mov eax, 0x25
add ecx, 0x64
push 0x14d0001
push eax
push 0x100
mov dword [0x656fb8], ecx
mov ecx, 0x6570a8
push edi
call fcn.00487fd0
mov ecx, dword [0x656fb8]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jg 0x447800
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 0x18
cmp ax, 4
jne 0x4478a5
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x447876
mov eax, ecx
imul eax, ecx
test ecx, ecx
jns 0x44786a
neg eax
mov ecx, dword [esi + 0xc]
push 0
push eax
push edi
call fcn.004a69f0
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x446287
mov eax, ecx
imul eax, ecx
test ecx, ecx
jns 0x44788c
neg eax
mov ecx, dword [esi + 0xc]
push 1
push eax
push edi
call fcn.004a69f0
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 0x18
cmp ax, 0x10
je 0x446287
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 9
mov eax, 0x64
mov esi, eax
setg cl
test ecx, ecx
mov dword [ebp + 0xc], ecx
mov ecx, 0x640
cmovne esi, ecx
cmp dword [ebp - 0x10], 0
push str.Chrome_WidgetWin_0
cmovne eax, ecx
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x258]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
mov ecx, dword [ebp + 0x10]
neg eax
sbb eax, eax
and dword [ebp + 0xc], eax
lea esp, [esp]
mov eax, dword [0x656fb8]
cdq
xor eax, edx
sub eax, edx
cmp eax, esi
jg 0x447920
mov eax, dword [0x656fbc]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x446287
mov ecx, 1
cmp dword [0x656fb8], esi
jle 0x447931
push 0
jmp 0x44793f
mov eax, esi
neg eax
cmp dword [0x656fb8], eax
jge 0x44794c
push 1
push 1
push edi
call fcn.00441e60
mov ecx, eax
add esp, 0xc
mov eax, dword [ebp + 0x10]
cmp dword [0x656fbc], eax
jle 0x44795b
push 0
jmp 0x447967
neg eax
cmp dword [0x656fbc], eax
jge 0x447974
push 1
push 0
push edi
call fcn.00441e60
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x447a58
cmp dword [0x656fb8], esi
jle 0x4479af
push dword [ebp - 0x18]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp + 0xc], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x114
push edi
call fcn.00487fd0
sub dword [0x656fb8], esi
jmp 0x4479df
mov eax, esi
neg eax
cmp dword [0x656fb8], eax
jge 0x4479df
mov eax, dword [ebp + 0xc]
mov ecx, 0x6570a8
push dword [ebp - 0x18]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push edi
call fcn.00487fd0
add dword [0x656fb8], esi
mov eax, dword [ebp + 0x10]
cmp dword [0x656fbc], eax
jle 0x447a1b
push dword [ebp - 0x24]
xor eax, eax
mov ecx, 0x6570a8
cmp dword [ebp - 0x10], eax
setne al
lea eax, [eax*2 + 1]
push eax
push 0x115
push edi
call fcn.00487fd0
mov ecx, dword [ebp + 0x10]
sub dword [0x656fbc], ecx
jmp 0x447900
mov ecx, dword [ebp + 0x10]
neg eax
cmp dword [0x656fbc], eax
jge 0x447900
mov eax, dword [ebp - 0x10]
mov ecx, 0x6570a8
push dword [ebp - 0x24]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push edi
call fcn.00487fd0
mov ecx, dword [ebp + 0x10]
add dword [0x656fbc], ecx
jmp 0x447900
test byte [0x652fc0], 4
je 0x447aaf
push str.no_more_additional_scrolling_n
push 3
push str.CPluginAction::HandleIBMScroll
call fcn.004cb3a0
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
test byte [0x652fc0], 4
je 0x447a9c
push str.no_more_scrolling_n
push 3
push str.CPluginAction::HandleIBMScroll
call fcn.004cb3a0
add esp, 0xc
cmp dword [ebp - 0x38], 0
je 0x447aaf
mov ecx, dword [ebp - 4]
push 0
push dword [ebp - 0x34]
call fcn.0044ae90
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0x18