There's a method of obfuscating programs which is around that turns code like:
my_int32 = my_value
my_int32 = my_value * 1448272385
return my_int32 * -1322181119
Now, what I don't understand is that in some way, multiplying an integer value which overflows twice results in the original integer. E.g.
1234 * 1448272385 * -1322181119 results in 1234. What is the logic behind this? What properties of those numbers are the cause of this? I'm really terrible at maths, so my apologies if this is either obvious or my question is illogical.