code: static long decThreeBytePrimaryByOneStep(long basePrimary, boolean isCompressible, int step) {
          // Extract the third byte, minus the minimum byte value,
          // minus the step, modulo the number of usable byte values, plus the minimum.
          assert(0 < step && step <= 0x7f);
          int byte3 = ((int)(basePrimary >> 8) & 0xff) - step;
          if(byte3 >= 2) {
              return (basePrimary & 0xffff0000L) | (byte3 << 8);
          }
          byte3 += 254;
          // Same with the second byte,
          // but reserve the PRIMARY_COMPRESSION_LOW_BYTE and high byte if necessary.
          int byte2 = ((int)(basePrimary >> 16) & 0xff) - 1;
          if(isCompressible) {
              if(byte2 < 4) {
                  byte2 = 0xfe;
                  basePrimary -= 0x1000000;
              }
          } else {
              if(byte2 < 2) {
                  byte2 = 0xff;
                  basePrimary -= 0x1000000;
              }
          }
          // First byte, assume no further underflow.
          return (basePrimary & 0xff000000L) | (byte2 << 16) | (byte3 << 8);
      }
docs: Decrements a 3-byte primary by one range step (1..0x7f).