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);
}