Your profile isn't working because the "Loop Start" actions are checking the value of a text variable named "movement", where they should be checking an integer variable by the same name instead.
Given that there is likely no text variable named "movement" with a value of "0", the loop never starts, so the cursor never moves.
The original profile should work once you change those checks, but here is a rewritten version that uses a few different techniques to achieve the same end-result:
[go;] [up;down] [left;right;] [crawl;slow;fast;sprint;];[go;] [left;right] [up;down;] [crawl;slow;fast;sprint;]
Set Boolean [stopMoving] to True
Set integer [incrementDelayms] value to 50
Set integer [incrementAmount] value to 3
Begin Text Compare : [{CMDSEGMENT:3}] Equals 'crawl'
Set integer [incrementDelayms] value to 125
Set integer [incrementAmount] value to 1
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'slow'
Set integer [incrementAmount] value to 1
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'fast'
Set integer [incrementAmount] value to 9
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'sprint'
Set integer [incrementAmount] value to 21
End Condition
Set decimal [incrementDelay] value to the converted value of {INT:incrementDelayms}
Set decimal [incrementDelay] to [incrementDelay] divided by 1000,00000
//If moving diagonally, apply a different scaler, if desired
Begin Text Compare : [{CMDSEGMENT:2}] Does Not Equal ''
Set integer [incrementAmount] to [incrementAmount] times 1
Else
Set integer [incrementAmount] to [incrementAmount] times 1
End Condition
Set integer [incrementX] value to 0
Set integer [incrementY] value to 0
Begin Text Compare : [{CMDSEGMENT:1}] Equals 'up'
Set integer [incrementY] value to 0
Set integer [incrementY] to [incrementY] minus [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:1}] Equals 'down'
Set integer [incrementY] value to the value of [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:1}] Equals 'left'
Set integer [incrementX] value to 0
Set integer [incrementX] to [incrementX] minus [incrementAmount]
Else
Set integer [incrementX] value to the value of [incrementAmount]
End Condition
Begin Text Compare : [{CMDSEGMENT:2}] Equals 'up'
Set integer [incrementY] value to 0
Set integer [incrementY] to [incrementY] minus [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:2}] Equals 'down'
Set integer [incrementY] value to the value of [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:2}] Equals 'left'
Set integer [incrementX] value to 0
Set integer [incrementX] to [incrementX] minus [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:2}] Equals 'right'
Set integer [incrementX] value to the value of [incrementAmount]
Else
End Condition
Kill command, 'mouse movement loop'
Set Boolean [stopMoving] to False
Execute command, 'mouse movement loop' (and wait until it completes)
mouse movement loop
Start Loop While : [stopMoving] Equals False
Move mouse right [{INT:incrementX}] pixel(s), down [{INT:incrementY}] pixel(s) (from cursor position)
Pause a variable number of seconds [incrementDelay]
End Loop
stop
Kill command, 'mouse movement loop'
If you want different speeds for diagonal movement, you can move the speed setting section into the scaler condition (top branch is for diagonal movement speed, bottom for straight), E.G.
Set Boolean [stopMoving] to True
//If moving diagonally, apply a different scaler, if desired
Begin Text Compare : [{CMDSEGMENT:2}] Does Not Equal ''
Set integer [incrementDelayms] value to 50
Set integer [incrementAmount] value to 3
Begin Text Compare : [{CMDSEGMENT:3}] Equals 'crawl'
Set integer [incrementDelayms] value to 125
Set integer [incrementAmount] value to 1
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'slow'
Set integer [incrementAmount] value to 1
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'fast'
Set integer [incrementAmount] value to 9
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'sprint'
Set integer [incrementAmount] value to 21
End Condition
Set integer [incrementAmount] to [incrementAmount] times 1
Else
Set integer [incrementDelayms] value to 50
Set integer [incrementAmount] value to 3
Begin Text Compare : [{CMDSEGMENT:3}] Equals 'crawl'
Set integer [incrementDelayms] value to 125
Set integer [incrementAmount] value to 1
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'slow'
Set integer [incrementAmount] value to 1
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'fast'
Set integer [incrementAmount] value to 9
Else If Text Compare : [{CMDSEGMENT:3}] Equals 'sprint'
Set integer [incrementAmount] value to 21
End Condition
Set integer [incrementAmount] to [incrementAmount] times 1
End Condition
Set decimal [incrementDelay] value to the converted value of {INT:incrementDelayms}
Set decimal [incrementDelay] to [incrementDelay] divided by 1000,00000
Set integer [incrementX] value to 0
Set integer [incrementY] value to 0
Begin Text Compare : [{CMDSEGMENT:1}] Equals 'up'
Set integer [incrementY] value to 0
Set integer [incrementY] to [incrementY] minus [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:1}] Equals 'down'
Set integer [incrementY] value to the value of [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:1}] Equals 'left'
Set integer [incrementX] value to 0
Set integer [incrementX] to [incrementX] minus [incrementAmount]
Else
Set integer [incrementX] value to the value of [incrementAmount]
End Condition
Begin Text Compare : [{CMDSEGMENT:2}] Equals 'up'
Set integer [incrementY] value to 0
Set integer [incrementY] to [incrementY] minus [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:2}] Equals 'down'
Set integer [incrementY] value to the value of [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:2}] Equals 'left'
Set integer [incrementX] value to 0
Set integer [incrementX] to [incrementX] minus [incrementAmount]
Else If Text Compare : [{CMDSEGMENT:2}] Equals 'right'
Set integer [incrementX] value to the value of [incrementAmount]
Else
End Condition
Kill command, 'mouse movement loop'
Set Boolean [stopMoving] to False
Execute command, 'mouse movement loop' (and wait until it completes)
I have attached the profile so you can import it directly.
EDIT: Corrected the inversion of X and Y, which was incorrect in the source profile this is based on (X is left to right, Y is top to bottom, not the other way around)