public static Cons findMemoizedValueEntry(Cons bucket, Stella_Object arg1, Stella_Object arg2, Stella_Object arg3, Stella_Object arg4, int eqvector, boolean deleteentryP) {
    { Cons entries = bucket.rest;
      Cons args = Stella.NIL;
      Cons result = null;

      if (eqvector < 0) {
        loop000 : while (!(entries == Stella.NIL)) {
          args = ((Cons)(entries.value)).rest;
          if (args.value == arg1) {
            if (arg2 == Stella.MEMOIZED_NULL_VALUE) {
              result = ((Cons)(entries.value));
              break loop000;
            }
            args = args.rest;
            if (args.value == arg2) {
              if (arg3 == Stella.MEMOIZED_NULL_VALUE) {
                result = ((Cons)(entries.value));
                break loop000;
              }
              args = args.rest;
              if (args.value == arg3) {
                if (arg4 == Stella.MEMOIZED_NULL_VALUE) {
                  result = ((Cons)(entries.value));
                  break loop000;
                }
                args = args.rest;
                if (args.value == arg4) {
                  result = ((Cons)(entries.value));
                  break loop000;
                }
              }
            }
          }
          entries = entries.rest;
        }
      }
      else {
        { Stella_Object arg = null;

          loop001 : while (!(entries == Stella.NIL)) {
            args = ((Cons)(entries.value)).rest;
            arg = args.value;
            if ((arg == arg1) ||
                (((eqvector & 1) == 0) &&
                 ((arg != null) &&
                  ((arg1 != null) &&
                   arg.objectEqlP(arg1))))) {
              if (arg2 == Stella.MEMOIZED_NULL_VALUE) {
                result = ((Cons)(entries.value));
                break loop001;
              }
              args = args.rest;
              arg = args.value;
              if ((arg == arg2) ||
                  (((eqvector & 2) == 0) &&
                   ((arg != null) &&
                    ((arg2 != null) &&
                     arg.objectEqlP(arg2))))) {
                if (arg3 == Stella.MEMOIZED_NULL_VALUE) {
                  result = ((Cons)(entries.value));
                  break loop001;
                }
                args = args.rest;
                arg = args.value;
                if ((arg == arg3) ||
                    (((eqvector & 4) == 0) &&
                     ((arg != null) &&
                      ((arg3 != null) &&
                       arg.objectEqlP(arg3))))) {
                  if (arg4 == Stella.MEMOIZED_NULL_VALUE) {
                    result = ((Cons)(entries.value));
                    break loop001;
                  }
                  args = args.rest;
                  arg = args.value;
                  if ((arg == arg4) ||
                      (((eqvector & 8) == 0) &&
                       ((arg != null) &&
                        ((arg4 != null) &&
                         arg.objectEqlP(arg4))))) {
                    result = ((Cons)(entries.value));
                    break loop001;
                  }
                }
              }
            }
            entries = entries.rest;
          }
        }
      }
      if (deleteentryP &&
          (result != null)) {
        entries.value = ((Cons)(bucket.rest.value));
        if ((bucket.rest = bucket.rest.rest) == Stella.NIL) {
          bucket.rest = Stella.NIL;
        }
      }
      return (result);
    }
  }