;-------------------------------------- ;-- BYTEKILLER V2.0 DECRUNCH ROUTINE -- ;-------------------------------------- Source: = $40000 ;Packed Data Dest: = $50000 ;UnPacked Data DeCruncher: movem.l d0-d7/a0-a6,-(a7) lea.l $dff180,a6 lea.l Source,a0 lea.l Dest,a1 move.l (a0)+,d0 move.l (a0)+,d1 move.l (a0)+,d5 move.l a1,a2 add.l d0,a0 add.l d1,a2 move.l -(a0),d0 eor.l d0,d5 lbC0007F8: lsr.l #1,d0 bne.s lbC000800 bsr.S lbC0008A0 lbC000800: bcs.s lbC00083E moveq #8,d1 moveq #1,d3 lsr.l #1,d0 bne.s lbC00080E bsr.S lbC0008A0 lbC00080E: bcs.s lbC00086A moveq #3,d1 clr.w d4 lbC000814: bsr.S lbC0008AC move.w d2,d3 add.w d4,d3 lbC00081C: moveq #7,d1 lbC00081E: lsr.l #1,d0 bne.s lbC000826 bsr.S lbC0008A0 lbC000826: roxl.l #1,d2 dbra d1,lbC00081E move.b d2,-(a2) dbra d3,lbC00081C bra.S lbC000878 lbC000836: moveq #8,d1 moveq #8,d4 bra.S lbC000814 lbC00083E: moveq #2,d1 bsr.S lbC0008AC cmp.b #2,d2 blt.s lbC000860 cmp.b #3,d2 beq.s lbC000836 moveq #8,d1 bsr.S lbC0008AC move.w d2,d3 move.w #$C,d1 bra.S lbC00086A lbC000860: move.w #9,d1 add.w d2,d1 addq.w #2,d2 move.w d2,d3 lbC00086A: bsr.S lbC0008AC lbC00086E: subq.w #1,a2 move.b 0(a2,d2.w),(a2) dbra d3,lbC00086E lbC000878: move.w a0,(a6) cmp.l a2,a1 blt.S lbC0007F8 movem.l (a7)+,d0-d7/a0-a6 rts lbC0008A0: move.l -(a0),d0 eor.l d0,d5 move.w #$10,CCR roxr.l #1,d0 rts lbC0008AC: subq.w #1,d1 clr.w d2 lbC0008B0: lsr.l #1,d0 bne.s lbC0008BE move.l -(a0),d0 eor.l d0,d5 move.w #$10,CCR roxr.l #1,d0 lbC0008BE: roxl.l #1,d2 dbra d1,lbC0008B0 rts