finally have a mostly working solution for disassemble backwards