the previous code, and more accurate. Also avoid saving and restoring registers. (The multiplication algorithm was generated by GCC.)