They are using a WORD (2 Bytes) to store the damage, the minimum value of it is 0x0000 (0) and the maximum value is 0xFFFF (65535, 2^16 - 1).
The reason that your damage is very low is that when the max WORD value (0xFFFF) or any other integer type's max value is reached and you try to add more, it will overflow. It means that there's no space anymore in the memory that's made for the variable so it starts counting from 0x0000 again. So for example when you hit 88888, you will actually hit 23352, 88888 - 65536 = 23352.
The only two ways to fix this are: to reverse both the server and client files and edit it, or like Synx said, hook client & server.