This is a fun one!
The issue is that values in excess of 2 billion roll into negative values. This is because the sign bit gets written into.
I've got a workaround I did for values into the 4 billion range that goes something like:
assign lr = _Buffer-LogicRds / 10.
if lr < 0 then lr = (214748365 * 2) + lr.
This, of course, knocks a zero off of the resulting value, and is thus always an approximation. I cheat by appending a zero (NOT multiplying it) into displays. Very ugly, but it works.
It is not a true fix for big values, but works up to the point the value rolls over 4 billion. If you HAVE to get around that you need to track the cycle of rolls, which I leave completely up to you.