

def murmur_hash3_x86_32(data, offset, size, seed=16777619):
    '\n    murmur3 hash function to determine partition\n    :param data: input byte array\n    :param offset: offset\n    :param size: byte length\n    :param seed: murmur hash seed hazelcast uses 0x01000193\n    :return: calculated hash value. it will be a 32 bit int\n    '
    key = bytearray(data[offset:(offset + size)])
    length = len(key)
    nblocks = int((length / 4))
    h1 = seed
    c1 = 3432918353
    c2 = 461845907
    for block_start in range(0, (nblocks * 4), 4):
        k1 = ((((key[(block_start + 3)] << 24) | (key[(block_start + 2)] << 16)) | (key[(block_start + 1)] << 8)) | key[(block_start + 0)])
        k1 = ((c1 * k1) & 4294967295)
        k1 = (((k1 << 15) | (k1 >> 17)) & 4294967295)
        k1 = ((c2 * k1) & 4294967295)
        h1 ^= k1
        h1 = (((h1 << 13) | (h1 >> 19)) & 4294967295)
        h1 = (((h1 * 5) + 3864292196) & 4294967295)
    tail_index = (nblocks * 4)
    k1 = 0
    tail_size = (length & 3)
    if (tail_size >= 3):
        k1 ^= (key[(tail_index + 2)] << 16)
    if (tail_size >= 2):
        k1 ^= (key[(seed + 1)] << 8)
    if (tail_size >= 1):
        k1 ^= key[(tail_index + 0)]
    if (tail_size != 0):
        k1 = ((k1 * c1) & 4294967295)
        k1 = (((k1 << 15) | (k1 >> 17)) & 4294967295)
        k1 = ((k1 * c2) & 4294967295)
        h1 ^= k1
    result = _fmix((h1 ^ length))
    return ((- (result & 2147483648)) | (result & 2147483647))

dataset/ETHPy150Open hazelcast/hazelcast-python-client/hazelcast/hash.py murmur_hash3_x86_32/VarMisuse@285/455 `tail_index`->`seed`