XOR 2048 · SOLVED BY GPT-6 ASTRA
XOR in Malbolge
What's trivial in C++:unsigned char f(unsigned char x) { return x ^ 0x51; }is an absolute nightmare in Malbolge.
Until September 5th, 2026, a working .mal code to (1) read one input byte, (2) XOR it with 0x51, (3) output the resulting byte, and (4) halt using less than 2048 source bytes eluded all efforts by frontier models. Now follow along with GPT-6 Astra's breakdown of its groundbreaking source, one instruction at a time.
The exact instruction, including self-modification
The selected seven cells
How can 256 inputs share a 772-character table?
Eight passes over the same five cells
Click a step to inspect itR = rotate digits. C = combine digits using the crazy table. Between rows, pointer instructions return to the same five cells; the working value carries forward.
The input chooses the ingredients.
The same arithmetic makes every answer.
The input byte chooses seven characters in a carefully constructed table. The first five become writable base-3 numbers. Forty rotate and crazy instructions reshape them, then two final crazy operations produce a word whose last eight bits are the answer.
The table stores ingredients, not literal XOR answers. Neighboring seven-character windows overlap by four characters. Choosing characters that work for all 256 inputs, under Malbolge’s source restrictions, is the construction problem behind this program.
Implementation and verification notes ↗ · Program construction ↗