public Stella_Object pop() {
    { HashSet self = this;

      { Stella_Object element = null;
        Stella_Object setmap = self.theMap;

        if (setmap != null) {
          if (self.crossoverPoint == 0) {
            { StellaHashTable map = ((StellaHashTable)(setmap));
              KvCons[] table = map.theTable;
              KvCons bucket = null;

              if (table != null) {
                { int i = Stella.NULL_INTEGER;
                  int iter000 = 0;
                  int upperBound000 = map.size - 1;

                  loop000 : for (;iter000 <= upperBound000; iter000 = iter000 + 1) {
                    i = iter000;
                    bucket = table[i];
                    if (bucket != null) {
                      element = bucket.key;
                      break loop000;
                    }
                  }
                }
              }
            }
          }
          else {
            { KvCons map = ((KvCons)(self.theMap));

              if (map != null) {
                element = map.key;
              }
            }
          }
        }
        if (element != null) {
          self.removeAt(element);
        }
        return (element);
      }
    }
  }