public static int hashMemoizedArguments(Stella_Object arg1, Stella_Object arg2, Stella_Object arg3, Stella_Object arg4, int eqvector) {
    { int hashcode = 0;

      if (eqvector < 0) {
        if (arg1 == null) {
          arg1 = Stella.MEMOIZED_NULL_VALUE;
        }
        hashcode = arg1.hashCode();
        loop000 : for (;;) {
          if (arg2 == Stella.MEMOIZED_NULL_VALUE) {
            break loop000;
          }
          if (arg2 == null) {
            arg2 = Stella.MEMOIZED_NULL_VALUE;
          }
          hashcode = (((hashcode & 1) == 0) ? (hashcode >>> 1) : (((hashcode >> 1)) | Stella.$INTEGER_MSB_MASK$));
          hashcode = (hashcode ^ (arg2.hashCode()));
          if (arg3 == Stella.MEMOIZED_NULL_VALUE) {
            break loop000;
          }
          if (arg3 == null) {
            arg3 = Stella.MEMOIZED_NULL_VALUE;
          }
          hashcode = (((hashcode & 1) == 0) ? (hashcode >>> 1) : (((hashcode >> 1)) | Stella.$INTEGER_MSB_MASK$));
          hashcode = (hashcode ^ (arg3.hashCode()));
          if (arg4 == Stella.MEMOIZED_NULL_VALUE) {
            break loop000;
          }
          if (arg4 == null) {
            arg4 = Stella.MEMOIZED_NULL_VALUE;
          }
          hashcode = (((hashcode & 1) == 0) ? (hashcode >>> 1) : (((hashcode >> 1)) | Stella.$INTEGER_MSB_MASK$));
          hashcode = (hashcode ^ (arg4.hashCode()));
          break loop000;
        }
      }
      else {
        if (arg1 == null) {
          arg1 = Stella.MEMOIZED_NULL_VALUE;
        }
        hashcode = (((eqvector & 1) == 0) ? arg1.hashCode_() : arg1.hashCode());
        loop001 : for (;;) {
          if (arg2 == Stella.MEMOIZED_NULL_VALUE) {
            break loop001;
          }
          if (arg2 == null) {
            arg2 = Stella.MEMOIZED_NULL_VALUE;
          }
          hashcode = (((hashcode & 1) == 0) ? (hashcode >>> 1) : (((hashcode >> 1)) | Stella.$INTEGER_MSB_MASK$));
          hashcode = (hashcode ^ ((((eqvector & 2) == 0) ? arg2.hashCode_() : arg2.hashCode())));
          if (arg3 == Stella.MEMOIZED_NULL_VALUE) {
            break loop001;
          }
          if (arg3 == null) {
            arg3 = Stella.MEMOIZED_NULL_VALUE;
          }
          hashcode = (((hashcode & 1) == 0) ? (hashcode >>> 1) : (((hashcode >> 1)) | Stella.$INTEGER_MSB_MASK$));
          hashcode = (hashcode ^ ((((eqvector & 4) == 0) ? arg3.hashCode_() : arg3.hashCode())));
          if (arg4 == Stella.MEMOIZED_NULL_VALUE) {
            break loop001;
          }
          if (arg4 == null) {
            arg4 = Stella.MEMOIZED_NULL_VALUE;
          }
          hashcode = (((hashcode & 1) == 0) ? (hashcode >>> 1) : (((hashcode >> 1)) | Stella.$INTEGER_MSB_MASK$));
          hashcode = (hashcode ^ ((((eqvector & 8) == 0) ? arg4.hashCode_() : arg4.hashCode())));
          break loop001;
        }
      }
      return (hashcode);
    }
  }