Simple multiplcation function giving wrong for negative computation

mul(a, -1) returns -a, mul(a, -2) returns -(a + mul(a, -1)) which is -(a - a) which is -a + a, which is 0.

So on an even second argument you’ll always get 0 and on odds you get -a.