Reversing a hash of known hashing algorithm
The i'th byte of the digest is a function of this byte of the message, and the previous byte.

So, to recover the original message from the digest, we just work our ways across the message, recovering each byte in succession.

First, we need to recover the first byte of the message.  Because there is no previous byte of the message, the formula for the digest simplifies to:

digest[0] = ( (129 * message[0] ) % 256.


Question: since we know the value digest[0], how can we recover message[0],

Next, assume we know the first i bytes of the message, and now we're attempting to recover message[i].  We know the formula:

digest[i] = ( (129 * message[i]) XOR message[i-1]) % 256


And we know the values digest[i] and message[i-1]; how can we use this to recover message[i]?

One hint that may simplify things: if we have $A = 129 * B % 256$, then we also have $B = 129 * A % 256$; that's because $129 * 129 = 1 \pmod{256}$