Program UltraEditKeygen; Const Tab : array [0..3,0..7] of byte = (($6e,00,$de,00,$ff,00,$de,00),($35,0,$6f,00,$36,0,$de,00), (0,$f7,0,$32,0,$a8,0,$79),(0,$74,0,$85,0,$59,0,$88)); Var Name,Key:String; Sum,I,Tx,Ty,Temp,len:Byte; begin Writeln(' UltraEdit32 V5.x *KEYGEN*'); Writeln('written by ^pain^ ''98 / Rebels'); writeln; Write('Name:'); Readln(Name); If length(Name)<6 then begin writeln('Error - name must be over 5 Chars!!'); Halt(0); end; Sum:=0; len:=length(name); Name[3]:=chr(9); Name[6]:=chr(ord(name[6]) or $55); Name:=Name+Chr(00); For I:=Length(Name) to $3c do Name:=Name+chr($2e); For I:=1 to len do Sum:=Sum+ord(Name[I]); sum:=not sum; Key:=''; For I:=0 to 15 do begin Ty:=I mod 4; Tx:=I mod 16; tx:=tx shr 1; Temp:=Tab[Ty,Tx]; Temp:=(Temp xor Sum)+1; Name[I+1]:=Chr(Temp xor ord(Name[I+1])); Temp:=ord(name[i+1]); If I<8 then Key:=Key+chr(Temp mod 26+$41) else Key:=Key+Chr(Temp mod 10+$30); end; writeln('Key :',Key); writeln; writeln(' Enjoy!'); end.