(*Q);q! code2.ml - Don Yang (uguu.org) *) open String;; open Char;; let p = print_string;; let rec g s k = match s with a::b -> (make 1 (chr (a lxor k)) ^ (g b k)) | [] -> "";; let t a b = sub a b ((length a) - b);; let rec h a = if a = "" then [] else code (get a 0) :: h (t a 1);; let o s k = g (h s) k;; let rec r a = if a = "" then a else ( (let x = sub a 0 1 in if x = " " || x = "\n" then "" else x) ^ (r (t a 1)) );; let rec f(a, b) = match a with x::y -> if x > 64 && x < 91 then ( let x = x - 64 in ( p (sub b 0 x); f(y, (t b x)) ) ) else ( if x > 96 && x < 123 then p (make (x - 96) ' ') else p "\n"; f(y, b) ); | [] -> ();; let q = make 1 (chr 34);; let d (a, b) = (h(t (r(a)) ((index (r(a)) ',') + 1)), (o (r(b)) 21) ^ (r(a)) ^ q ^ "," ^ q ^ (r(b)) ^ q ^ "));;") (*!;# ($q = q! Mo { $r .= chr ($_[0] ^ ord $_) foreach ($z =~ /./g); $r; } Mr { ($s = $_[0]) =~ s/\s//g; $s; } Mf { $t = $_[1]; foreach $x ($_[0] =~ /./g) { $x = ord $x; print ( ($x > 64 && $x < 91) ? (substr $t, 0, ($x -= 64)) : ($x > 96 && $x < 123) ? ("k" x ($x - 96)) : "\n" ); ($x <= 26) && ($t = substr $t, $x); if( $x == 44 ) { last; } } } Md { $x = r($_[0]); $z = r($_[1]); ($x, o(21) . $x . '","' . $z . chr(34) . '));;'); } !) =~ s/\s//g; $q =~ s/M/sub /g; $q =~ s/k/ /; eval $q #*) ;; f(d("Q.O.X,Q.O.X.", "szgxtaJapma=qtat=7"));;