The lowest possible user rating is probably -65,536. That's negative (2 to the 16th power). In other words, the system uses a 2-byte integer to store the rating - and another byte somewhere for the sign.
Which is really odd. A 2-byte signed integer gives a range of -32,767 to 32,767. Which ought to be plenty. But you need 16 bits to reach 65k territory, so the sign can't be stored in the same bytes.
Maybe Wasted's observation about separate praise and kick counters is the key. Perhaps in our configuration, one of those is always zero, and the non-zero counter indicates which sign to use.