#include <dos.h>
#include <stdio.h>
#define fil_size 6656

extern int filread (char *, int);
extern void filwrite (char *, int);
extern void rdate (char *,char *);
extern void encrypt (char *, int);
extern void decrypt (char *, int);
extern void paswscr (void);
extern void newpass (char *, char *, char *);
extern int oldpass (char *);
extern void inifile (char *, int);
extern void usrins (void);
extern void mainscr (void);
extern void statdp (char *);
extern void statupdt (char *, char *, char *);
extern void mainrtn (char *, int, char *, char *);
extern void lastscr (void);

main()
{

  union REGS Register;
  char fil_buf[6658];
  char dte[9];
  char tme[9];
  int k, i;

  Register.h.ah = 16;
  Register.h.al = 3;
  Register.h.bl = 1;
  int86(16, &Register, &Register);
  rdate(dte,tme);
  k= filread(fil_buf, fil_size);
  if (!k) {
    decrypt(fil_buf, fil_size);
    paswscr();
    i= oldpass(fil_buf);
    if (i) {
      statdp(fil_buf);
      statupdt(fil_buf, dte, tme);
      mainscr();
      mainrtn(fil_buf, fil_size, dte, tme);
    }
    else {
      lastscr();
    }
  }
  else {
    inifile(fil_buf,fil_size);
    usrins();
    newpass(fil_buf,dte,tme);
    statupdt(fil_buf, dte, tme);
    mainscr();
    mainrtn(fil_buf, fil_size, dte, tme);
  }
  encrypt(fil_buf, fil_size);
  filwrite(fil_buf, fil_size);
}
