Improve a crash in disassembly on game shutdown.
Improve function range detection.

This improves a pattern like this:

  j endOfLoop;
  li v0, 0;
  startOfLoop:
  addiu v0, v0, 1
endOfLoop:
  bne v0, a0, startOfLoop;
  nop
  jr ra
  nop

Where it jumps to the end of the loop, which only jumps back to the top of
the loop.  This might misdetect a few cases of tail recursion, but only
when the funcs are right next to each other.

Also, stops scanning at a jr ra, which was causing funcs to be incorrectly
long in cases.