Support leave + ret instructions, clean ups

There's now a higher level disasm_func function which locates a
symbol, and decodes instructions until a ret instruction is found