def METHOD_NAME(self):
    bits = 1
    while self.range >> (24 - bits) == 0:
        bits += 1
    mask = 0xffffff >> bits;
    val = self.low + mask;
    over1 = val >> 24
    val &= 0x00ffffff
    high = self.low + self.range
    over2 = high >> 24
    high &= 0x00ffffff
    val = val & ~mask
    if over1 == over2:
        if val + mask >= high:
            bits += 1
            mask >>= 1
            val = ((self.low + mask) & 0x00ffffff) & ~mask
        if val < self.low:
            self.carry = 1
    self.low = val
    while bits > 0:
        self.ac_shift()
        bits -= 8
    bits += 8;
    val = self.cache
    if self.carry_count > 0:
        self.bytes[self.bp] = self.cache
        self.bp += 1
        while self.carry_count > 1:
            self.bytes[self.bp] = 0xff
            self.bp += 1
            self.carry_count -= 1
        val = 0xff >> (8 - bits)
    mask = 0x80;
    for k in range(bits):
        if val & mask == 0:
            self.bytes[self.bp] &= ~mask
        else:
            self.bytes[self.bp] |= mask
        mask >>= 1
    return self.bytes