hash(int length) { int startoffset, offset, count; if (length > 127) { length >>= 3; length &= ~3; startoffset = offset = length; count = 7; } else { length -= 4; count = length >> 4; startoffset = (length & 12) + 4; offset = 16; } f(startoffset, offset, count); }