Beyond precision and recall: Understanding uses (and misuses) of similarity hashes in binary analysis