The time delay (Wait) in the Motor FOR LOOP subVI takes more time than everything else in the program put together.
The 800/Speed calculation for the Wait gives a 1 ms delay for all speed values from 534 to 1600. Zero delay above 1600 and 2 ms from 534 down to 320. This is probably not what you wanted. The input to the Wait (ms) function is coerced to an unsigned 32-bit integer (U32).
There are lots of optimizations which can be done but they all have effect in the microsecond range.
What do you expect to gain by speeding up this program?