char *e ();

#define SET \
  if (d > *b++) d |= a; \
  if (b) b = e(b);

xxx()
{
  int a, d;
  char *b, *c;

  while (1) {
    while (1) {
      while (1) {
	if (a) {
	  switch (a) {
	  case 1:
	    while (1) {
	      SET
		do {
		  SET
		} while (1);
	    }
	  case 2:
	    while (1) {
	      if (d) {
		do {
		  SET
		} while (1);
	      }
	      else {
		do {
		  SET
		} while (1);
	      }
	    }
	  case 3:
	    while (1) {
	      if (d) {
		do {
		  SET
		} while (1);
	      }
	      else {
		do {
		  SET
		} while (1);
	      }
	    }
	  case 4:
	    while (1) {
	      if (d) {
		do {
		  SET
		} while (1);
	      }
	      else {
		do {
		  SET
		} while (1);
	      }
	    }
	  }
	}
	else {
	  switch (a) {
	  case 2:
	    while (1) {
	      if (d) {
		do {
		  SET
		} while (1);
	      }
	      else {
		do {
		  SET
		} while (1);
	      }
	    }
	  case 3:
	    while (1) {
	      if (d) {
		do {
		  SET
		} while (1);
	      }
	      else {
		do {
		  SET
		} while (1);
	      }
	    }
	  case 4:
	    while (1) {
	      if (d) {
		do {
		  SET
		} while (1);
	      }
	      else {
		do {
		  SET
		} while (1);
	      }
	    }
	  }
	}
      }
    }
  }
}
