procedure decipher(cipher_txt, plain_alpha, cipher_alpha1, cipher_alpha2) local keys, values, digraphs, plain_txt values := create !plain_alpha || !plain_alpha keys := create !cipher_alpha1 || !cipher_alpha2 digraphs := table() while digraphs[@keys] := @values plain_txt := "" cipher_txt ? { while plain_txt ||:= digraphs[move(2)] } return plain_txt end