rendered paste bodyiv = 4 DWORD initalization vector (constant)
p = 4 DWORD plaintext
i = 4 DWORD intermediate
c = 4 DWORD ciphertext
t = 4 DWORD temporary
encrypt:
t = iv
for n in 0..31
i[n][0] = p[n][0] ^ t[0] ^ t[1]
i[n][1] = p[n][1] ^ t[1] ^ t[2]
i[n][2] = p[n][2] ^ t[2] ^ t[3]
i[n][3] = p[n][3] ^ t[3] ^ i[n][0]
t = i[n]
c[0] = aes256_encrypt(i[0] ^ i[31])
for n in 1..31
c[n] = aes256_encrypt(i[n] ^ c[n-1])
decrypt:
for n in 1..31
i[n] = aes256_decrypt(c[n]) ^ c[n-1]
i[0] = aes256_decrypt(c[0]) ^ i[31]
t = iv
for n in 0..31
p[n][0] = i[n][0] ^ t[0] ^ t[1]
p[n][1] = i[n][1] ^ t[1] ^ t[2]
p[n][2] = i[n][2] ^ t[2] ^ t[3]
p[n][3] = i[n][3] ^ t[3] ^ i[n][0]
t = i[n]