There's not much to go on with only 4 bytes of data, even if the text is mapped as say 4bit that's only 8 characters. Not much of a message with a 1 to 1 character mapping. The data might be tokenized or bits/bytes sprayed across it.
Anyway, A few common techniques are bit shifting and xor'ing the data. The trivial XOR encryption apples the same mask to every byte. Which makes cracking equally as trivial. Just make a program that loads a few K of the data into memory, then have the program run though apply every byte combination (0->255) and dump it all out to a file. Some hex viewers have such feature built in.
Here's the basic principal (PlayBASIC code shown)
; Input data
v=%10100100100010000101110010101010
print hex$(v)
; all possible byte combo's
for Mask=0 to 255
; make a 32 bit verions of the mask
XorMask= Argb(Mask,MAsk,Mask,Mask)
DecodedLong = V xor XorMask
s$ =chr$(rgbA(DecodedLong))
s$+=chr$(rgbR(DecodedLong))
s$+=chr$(rgbG(DecodedLong))
s$+=chr$(rgbB(DecodedLong))
; dump to PB debug console window
#print DecodedLong
#print s$
#print ""
next
Sync
waitkey
ROL/ROR - Scroll the bits within a 32bit long. So bits pushed off the left or right edge wrap around onto the opposite edge.
; Input data
v=%10100100100010000101110010101010
print hex$(v)
; all possible shifts
for RollDistance=0 to 31
// RoR32 srolls the bits Left
DecodedLong = Rol32(V,RollDistance)
// decode the 8bit as the 4 possible characters
s$ =chr$(rgbA(DecodedLong))
s$+=chr$(rgbR(DecodedLong))
s$+=chr$(rgbG(DecodedLong))
s$+=chr$(rgbB(DecodedLong))
; dump to PB debug console window
#print bin$(V)
#print bin$(DecodedLong)
#print s$
#print ""
next
Sync
waitkey