the key (the unaligned variable-length array of bytes)
the length of the key, counting by bytes
can be any 4-byte value
a 32-bit value. Every bit of the key affects every bit of the return value. Two keys differing by one or two bits will have totally different hash values.
hash a variable-length key into a 32-bit value