Spot the bug — integer overflow (pre-Solidity 0.8)
Before Solidity 0.8, integer arithmetic silently wrapped on overflow — so a token balance could wrap from a huge number to 0 (or vice versa). Solidity 0.8+ has built-in overflow checks, but legacy code and unchecked blocks still appear.
Below zero wraps to the top