code: private int toBoundedPrevious(int amount) throws FetchException {
          if (mStartBound == null) {
              return toPrevious(amount);
          }
  
          int count = 0;
  
          disableValue();
          try {
              while (amount > 0) {
                  if (!toPrevious()) {
                      break;
                  }
  
                  byte[] currentKey = getCurrentKey();
                  if (currentKey == null) {
                      break;
                  }
  
                  int result = compareKeysPartially(currentKey, mStartBound);
                  if (result <= 0) {
                      if (result < 0 || !mInclusiveStart) {
                          // Too far now, reset to first.
                          toBoundedFirst();
                          break;
                      }
                  }
  
                  if (!prefixMatches()) {
                      break;
                  }
  
                  count++;
                  amount--;
              }
          } finally {
              enableKeyAndValue();
          }
  
          return count;
      }
docs: Calls toPrevious, but considers start bound.