Understanding How Reverse Engineers Make Sense of Programs from Assembly Language Representations