In assembly you also have meaningful labels for branch destinations and routines in the program and global variables. Named constants for offsets into tables, bitmasks, and such. The original assembly language source could greatly ease reverse engineering, especially if it uses good naming.
Some assemblers have macros; it's much better to be able to read the macro invocations than their assembled expansions.
Some assemblers have macros; it's much better to be able to read the macro invocations than their assembled expansions.