lol i made another one this has more curve and ect...
i like it 
SCAR Code:
program New;
const
MouseSpeed = 6; // leave between 4 - 8
procedure MMouse(dx, dy, rx, ry : Integer);
var
x, y, step, Angle, r, b1, b2 : Extended;
cx, cy, mx, my, Speed, Slow, xx, yy : integer;
Ctrls : array [0..2] of TPoint;
begin
dx := dx + Random(rx);
dy := dy + Random(ry);
GetMousePos(mx, my);
Angle := Random(360) + 1;
r := Random(Distance(mx, my, dx, dy)) + 10;
cx := Trunc(r * Sin((Pi/180) * Angle) + dx - mx);
cy := Trunc(-r * Cos((Pi/180) * Angle) + dy - my);
Ctrls[1] := Point(cx, cy);
Ctrls[2] := Point(dx - mx, dy - my);
Speed := (MouseSpeed mod 6) + 1
repeat
Step := Step + (Speed * 0.01);
b1 := Pow(Step, 3);
b2 := 3 * b1 * (1 - step);
x := Ctrls[0].x * b1 + Ctrls[1].x * b2 + Ctrls[2].x * b1 + mx;
y := Ctrls[0].y * b1 + Ctrls[1].y * b2 + Ctrls[2].y * b1 + my;
xx := Round(x);
yy := Round(y);
MoveMouse(xx, yy);
if (Distance(xx, yy, dx, dy) < 100) and (Distance(xx, yy, dx, dy) <> 0) then
Slow := Slow + ((Speed * MouseSpeed) / Distance(xx, yy, dx, dy)) + 2;
if (Slow > 20) then Slow := 20;
wait(((Speed * MouseSpeed) + Slow) + random(2));
until (Step >= 1);
end;
var
i : integer;
begin
for i := 1 to 4 do
begin
MMouse(0, 0, 700, 500);
wait(100);
end;
end.