| Recover a CPU keeper's stale lateral-save hold while a carrier crosses him.
| Enter only through the existing recovery-lock branch; ordinary frames unchanged.
| Keep real loose-shot/catch saves, manual control and native physics unchanged.
 .text
 .globl _start
_start:
 move.w %sr,-(%sp)
 movem.l %d0-%d1/%a0,-(%sp)
 cmpi.w #8,0x5C(%a3)
 ble.w done
 tst.w 0x34(%a3)
 bne.w done
 move.b 0xFFFFC2EA,%d0
 andi.b #0x11,%d0
 bne.w done
 btst #7,0xFFFFC2EC
 bne.w done
 move.b 0xFFFFC2FA,%d0
 andi.b #5,%d0
 bne.w done
 btst #3,0x62(%a3)
 bne.w done
 btst #5,0x62(%a3)
 bne.w done
 move.w 0x58(%a3),%d0
 cmpi.w #0x250,%d0
 beq.s phase
 cmpi.w #0x2A2,%d0
 bne.w done
phase:
 cmpi.w #4,0x5A(%a3)
 bne.w done
 move.w 0xFFFFB7AA,%d0
 cmpi.w #11,%d0
 bhi.w done
 lsl.w #7,%d0
 lea 0xFFFFB04A,%a0
 adda.w %d0,%a0
 tst.w 0x34(%a0)
 beq.w done
 btst #2,0x63(%a0)
 bne.w done
 move.b 0x62(%a0),%d0
 move.b 0x62(%a3),%d1
 eor.b %d1,%d0
 btst #6,%d0
 beq.s done
 move.w (%a3),%d0
 beq.s done
 bmi.s left
 cmpi.w #-512,0x28(%a0)
 bgt.s done
 bra.s shorten
left:
 cmpi.w #512,0x28(%a0)
 blt.s done
shorten:
 move.w #8,0x5C(%a3)
 clr.b 0x40(%a3)
done:
 movem.l (%sp)+,%d0-%d1/%a0
 move.w (%sp)+,%sr
 jmp 0x15464
