enc = [ 0xFD,0x9C,0x43,0x42,0xA1,0xA0,0xEB,0x8F,0x21, 0x54,0x67,0x8A,0xEE,0x8C,0x3B,0x46,0x5D,0x60, 0xC0,0x97,0x72,0x1D,0xAF,0x63,0x1A,0xF4,0xAC, 0x6F,0xB5,0x79,0x2C,0xDA,0xD1,0x81,0x5C,0x1B, 0x19,0x85,0x2B,0xC7,0x5A,0x7F,0x9D,0x10, ] def decode(data): R1, LR = 0x17, 7 out = [] for b in data: k = R1 & 0x7F next_lr = (LR + 3) & 0xFF R1 = (R1 + 5) & 0xFF c = ((b ^ 0x55) - k) & 0xFF c = ((c << 6) | (c >> 2)) & 0xFF c ^= LR LR = next_lr out.append(c) return bytes(out) flag = decode(enc).decode() print(flag)