PROGRAM DirectNet_Keygen; VAR Offset : Byte; ECX : LongInt; EBP : LongInt; Name : STRING[20]; PROCEDURE PartOne; BEGIN EBP := $6B; FOR Offset := 1 TO Length( Name ) DO BEGIN ECX := Byte(Name[Offset]); EBP := EBP - ECX; ECX := (ECX * 2)+ECX; EBP := ECX*8+EBP; END; Write( EBP ); END; PROCEDURE PartTwo; VAR EDX : LongInt; BEGIN FOR OffSet := 1 TO Length( Name ) DO BEGIN ECX := Byte( Name[OffSet]); EDX := ECX; ECX := ECX*8+ECX; ECX := ECX*4+ECX; EDX := ECX*2+EDX; EBP := EDX*2+EBP; END; Write( '-',EBP ); END; PROCEDURE PartThree; BEGIN ECX := Byte( Name[Length(Name)]); EBP := ECX*4+ECX+$85E; Write( '-',EBP ); END; PROCEDURE PartFour; VAR EDX : LongInt; BEGIN ECX := Byte( Name[Length(Name)]); EDX := ECX*4+ECX; EBP := EDX*2+$9A; Writeln( '-', EBP ); END; BEGIN Writeln( #13#10'DirectNet v1.1 -- KeyGen' ); Writeln( 'By CoRN2 [mE''98/C4N' ); Writeln( 'http://mex98.home.ml.org' ); Write( #13#10'Name: ' ); Readln( Name ); Write( 'S/N : ' ); PartOne; PartTwo; PartThree; PartFour; END.