func: nsZipItem*  nsZipArchive::GetItem(const char * aEntryName) if ( aEntryName )  uint32_t len = strlen ( aEntryName ) ; if ( ! mBuiltSynthetics )  if ( ( len > 0 ) && ( aEntryName [ len - 1 ] == '/' ) )  if ( BuildSynthetics ( ) != NS_OK )  MOZ_WIN_MEM_TRY_BEGIN nsZipItem * item = mFiles [ HashName ( aEntryName , len ) ] ; static uint32_t HashName(const char* aName, uint16_t len) const uint8_t * p = ( const uint8_t * ) aName ; const uint8_t * endp = p + len ; uint32_t val = 0 ; while ( p != endp )  val = val * 37 + * p ++; return ( val % ZIP_TABSIZE ) ; while ( item )  if ( ( len == item -> nameLength ) && ( ! memcmp ( aEntryName , item -> Name ( ) , len ) ) )  item = item -> next; 