Disassembler Internals II: Automated Data Structure Recognition