disassembler engine rewrite finished

replaced the disassembler with a more accurate and more abstract one