program exespy2;

uses Crt;

const
 OffsetOne   : word   = 000;
 OffsetTwo   : word   = 056;                { offset - 1 }
 OffsetThree : word   = 384;
 OffsetFour  : word   = 648;

 PartOne     : string = 'SPYS';
 PartTwo     : string = 'ExeSpy98 for Windows 98 & Windows 95';
 PartThree   : string = 'IGER';

 fName       : string  = 'exe98ur.dat';

var
 DataFile    : file;
 NumWritten  : word;
 Buffer      : array[1..688] of char;
 Count       : word;

 UserName    : string;

begin
 ClrScr;

 Writeln('ExeSpy 98 v4.5 - Keygen by Quantico [mEX/c4N]');
 writeln;
 Write('Enter your name : ');
 Readln(UserName);

 FillChar(Buffer, SizeOf(Buffer), $00);     { fill our buffer        }

 for Count := 1 to Length(PartOne) do
  Buffer[Count + OffsetOne] := PartOne[Count];

 for Count := 1 to Length(PartTwo) do
  Buffer[Count + OffsetTwo] := PartTwo[Count];

 for Count := 1 to Length(UserName) do
  Buffer[Count + OffsetThree] := UserName[Count];

 for Count := 1 to Length(PartThree) do
  Buffer[Count + OffsetFour] := PartThree[Count];

 Assign(DataFile, fName);                   { open file              }
 Rewrite(DataFile, 1);                      { record size = 1 (byte) }
 BlockWrite(DataFile,                       { write data to file     }
            Buffer,
            SizeOf(Buffer),
            NumWritten);
 Close(DataFile);                           { close file             }

 if NumWritten < 688
  then Writeln('ERROR. Not all 688 bytes saved...')
  else Writeln('Keyfile created - ', fName,' - move into ExeSpy directory...')
end.