code: public static Integer decodeIntegerObjDesc(byte[] src, int srcOffset)
          throws CorruptEncodingException
      {
          try {
              int b = src[srcOffset];
              if (b == NULL_BYTE_HIGH || b == NULL_BYTE_LOW) {
                  return null;
              }
              return decodeIntDesc(src, srcOffset + 1);
          } catch (IndexOutOfBoundsException e) {
              throw new CorruptEncodingException(null, e);
          }
      }
docs: Decodes a signed Integer object from exactly 1 or 5 bytes, as encoded
  for descending order. If null is returned, then 1 byte was read.
  
  @param src source of encoded bytes
  @param srcOffset offset into source array
  @return signed Integer object or null