func: static int keyring_diff_objects(const void *object, const void *data) const struct keyring_index_key * b = data ; unsigned long seg_a , seg_b ; seg_b = hash_key_type_and_desc ( b ); static unsigned long hash_key_type_and_desc(const struct keyring_index_key *index_key) const char * description = index_key -> description ; u32 piece ; int n , desc_len = index_key -> desc_len ; n = desc_len; if ( n <= 0 )  if ( n > 4 )  n = 4; piece = 0; memcpy ( & piece , description , n ); description += n; desc_len -= n; acc = mult_64x32_and_fold ( acc , piece ); acc = mult_64x32_and_fold ( acc , 9207 ); hash = acc; hash ^= acc >> 32; if ( index_key -> type != & key_type_keyring && ( hash & fan_mask ) == 0 )  return hash | ( hash >> ( ASSOC_ARRAY_KEY_CHUNK_SIZE - level_shift ) ) | 1 ; if ( index_key -> type == & key_type_keyring && ( hash & fan_mask ) != 0 )  return ( hash + ( hash << level_shift ) ) & ~fan_mask ; return hash ; 