inp w W = Most significant digit X = Z % 26 Z / 26 if digit 5 | 7 | 10+ X + (11, 14, 15, 13, -12, 10, -15, 13, 10, -13, -13, -14, -2, -9) X = 0 if X == W Y = (25 * X) + 1 | if last: Y = ((Y + 25) * X) + 1 Z * Y Y = W Y + (14, 6, 6, 13, 8, 8, 7, 10, 8, 12, 10, 8, 8, 7) Y * X Z + Y 1: W1 X = 1 Y = W1 + 14 Z = W1 + 14 2: W2 X = 1 Y = W2 + 6 Z = ((W1 + 14) * 26) + (W2 + 6) 3: W3 X = 1 Y = W3 + 6 Z = ((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6) 4: W4 X = 1 Y = W4 + 13 Z = ((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W4 + 13) 5: W5 X = (((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W4 + 13) % 26) - 12 -12..=13 0 | 1 if X: 1 Y = W5 + 8 Z = (((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W4 + 13)) + (W5 + 8) if X: 0 Y = 0 Z = (((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) 6: W6 X = 1 Y = 0 Z = ((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W6 + 8) 7: W7 X = ((((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W6 + 8)) % 26) - 15 Y = 0 Z = (((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) 8: W8 X = 1 Y = 0 Z = ((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W8 + 10) 9: W9 X = 1 Y = 0 Z = ((((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W8 + 10)) * 26) + (W9 + 8) 10: W10 X = ((((((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W8 + 10)) * 26) + (W9 + 8)) % 26) - 13 Y = 0 Z = ((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W8 + 10) 11: W11 X = ((((((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) * 26) + (W8 + 10)) % 26) - 13 Y = 0 Z = (((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) 13: W11 X = ((((W1 + 14) * 26) + (W2 + 6)) % 26) - 13 Y = 0 Z = (((((W1 + 14) * 26) + (W2 + 6)) * 26) + (W3 + 6)) ... inp w mul x 0 add x z mod x 26 div z 1 add x 14 eql x w eql x 0 mul y 0 add y 25 mul y x add y 1 mul z y mul y 0 add y w add y 6 mul y x add z y inp w