Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Saxman's python compressor: http://www.4shared.com/file/YPgU9Zh1/kcc.html
- ; Saxman's python decompressor: http://www.4shared.com/file/-0pwnYbz/kcd.html
- ; "Sonic hackers should ditch Kosinski for this"
- ; -Saxman, 2011
- sub_13684: ; CODE XREF: Load_InGame:loc_11C10p
- ; SomeDecToVRAM+8p ...
- moveq #0,d0
- move.w #$7FF,d4
- moveq #0,d5
- moveq #0,d6
- move.w a3,d7
- subq.w #1,d2
- beq.w loc_13A24
- subq.w #1,d2
- beq.w loc_139A6
- subq.w #1,d2
- beq.w loc_13928
- subq.w #1,d2
- beq.w loc_138AA
- subq.w #1,d2
- beq.w loc_1382E
- subq.w #1,d2
- beq.w loc_137B0
- subq.w #1,d2
- beq.w loc_13736
- SomDec_BitPos0: ; CODE XREF: sub_13684+108j
- ; sub_13684+2C0j ...
- move.b (a0)+,d1
- add.b d1,d1
- bcs.s SomDec_BP0_DrcCpy
- move.l a2,a6
- add.b d1,d1
- bcs.s SomDec_BP0_LongRef
- move.b (a1)+,d5
- suba.l d5,a6
- add.b d1,d1
- bcc.s loc_136D0
- move.b (a6)+,(a2)+
- loc_136D0: ; CODE XREF: sub_13684+48j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13724
- bra.w loc_1382E
- ; ---------------------------------------------------------------------------
- SomDec_BP0_LongRef: ; CODE XREF: sub_13684+40j
- lsl.w #3,d1
- move.w d1,d6
- and.w d4,d6 ; d4 = $7FF
- move.b (a1)+,d6
- suba.l d6,a6
- add.b d1,d1
- bcs.s SomDec_BP0_LongRef_2or3
- add.b d1,d1
- bcs.s loc_13706
- bra.s loc_13708
- ; ---------------------------------------------------------------------------
- SomDec_BP0_LongRef_2or3: ; CODE XREF: sub_13684+64j
- add.b d1,d1
- bcc.s SomDec_BP0_LongRef_2
- moveq #0,d0
- move.b (a1)+,d0 ; read amount of bytes
- beq.s loc_13716
- subq.w #6,d0
- bmi.s loc_1371C
- loc_136FE: ; CODE XREF: sub_13684+7Cj
- move.b (a6)+,(a2)+
- dbf d0,loc_136FE
- SomDec_BP0_LongRef_2: ; CODE XREF: sub_13684+6Ej
- move.b (a6)+,(a2)+
- loc_13706: ; CODE XREF: sub_13684+68j
- move.b (a6)+,(a2)+
- loc_13708: ; CODE XREF: sub_13684+6Aj
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_1372C
- bra.w loc_13A24
- ; ---------------------------------------------------------------------------
- loc_13716: ; CODE XREF: sub_13684+74j
- move.w #0,d0
- rts
- ; ---------------------------------------------------------------------------
- loc_1371C: ; CODE XREF: sub_13684+78j
- move.w #$FFFF,d0
- moveq #1,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13724: ; CODE XREF: sub_13684+52j
- move.w #1,d0
- moveq #5,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_1372C: ; CODE XREF: sub_13684+8Cj
- move.w #1,d0
- moveq #1,d2
- rts
- ; ---------------------------------------------------------------------------
- SomDec_BP0_DrcCpy: ; CODE XREF: sub_13684+3Aj
- move.b (a1)+,(a2)+
- loc_13736: ; CODE XREF: sub_13684+32j
- ; sub_13684+186j ...
- add.b d1,d1
- bcs.s loc_137AE
- move.l a2,a6
- add.b d1,d1
- bcs.s loc_13756
- move.b (a1)+,d5
- suba.l d5,a6
- add.b d1,d1
- bcc.s loc_1374A
- move.b (a6)+,(a2)+
- loc_1374A: ; CODE XREF: sub_13684+C2j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_1379E
- bra.w loc_138AA
- ; ---------------------------------------------------------------------------
- loc_13756: ; CODE XREF: sub_13684+BAj
- lsl.w #3,d1
- move.w d1,d6
- and.w d4,d6
- move.b (a1)+,d6
- suba.l d6,a6
- add.b d1,d1
- bcs.s loc_1376A
- add.b d1,d1
- bcs.s loc_13780
- bra.s loc_13782
- ; ---------------------------------------------------------------------------
- loc_1376A: ; CODE XREF: sub_13684+DEj
- add.b d1,d1
- bcc.s loc_1377E
- moveq #0,d0
- move.b (a1)+,d0
- beq.s loc_13790
- subq.w #6,d0
- bmi.s loc_13796
- loc_13778: ; CODE XREF: sub_13684+F6j
- move.b (a6)+,(a2)+
- dbf d0,loc_13778
- loc_1377E: ; CODE XREF: sub_13684+E8j
- move.b (a6)+,(a2)+
- loc_13780: ; CODE XREF: sub_13684+E2j
- move.b (a6)+,(a2)+
- loc_13782: ; CODE XREF: sub_13684+E4j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_137A6
- bra.w SomDec_BitPos0
- ; ---------------------------------------------------------------------------
- loc_13790: ; CODE XREF: sub_13684+EEj
- move.w #0,d0
- rts
- ; ---------------------------------------------------------------------------
- loc_13796: ; CODE XREF: sub_13684+F2j
- move.w #$FFFF,d0
- moveq #0,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_1379E: ; CODE XREF: sub_13684+CCj
- move.w #1,d0
- moveq #4,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_137A6: ; CODE XREF: sub_13684+106j
- move.w #1,d0
- moveq #0,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_137AE: ; CODE XREF: sub_13684+B4j
- move.b (a1)+,(a2)+
- loc_137B0: ; CODE XREF: sub_13684+2Cj
- ; sub_13684+202j ...
- add.b d1,d1
- bcs.s loc_1382C
- move.l a2,a6
- add.b d1,d1
- bcs.s loc_137D0
- move.b (a1)+,d5
- suba.l d5,a6
- add.b d1,d1
- bcc.s loc_137C4
- move.b (a6)+,(a2)+
- loc_137C4: ; CODE XREF: sub_13684+13Cj
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_1381C
- bra.w loc_13928
- ; ---------------------------------------------------------------------------
- loc_137D0: ; CODE XREF: sub_13684+134j
- lsl.w #3,d1
- move.w d1,d6
- and.w d4,d6
- move.b (a1)+,d6
- suba.l d6,a6
- add.b d1,d1
- bcs.s loc_137E6
- move.b (a0)+,d1
- add.b d1,d1
- bcs.s loc_137FE
- bra.s loc_13800
- ; ---------------------------------------------------------------------------
- loc_137E6: ; CODE XREF: sub_13684+158j
- move.b (a0)+,d1
- add.b d1,d1
- bcc.s loc_137FC
- moveq #0,d0
- move.b (a1)+,d0
- beq.s loc_1380E
- subq.w #6,d0
- bmi.s loc_13814
- loc_137F6: ; CODE XREF: sub_13684+174j
- move.b (a6)+,(a2)+
- dbf d0,loc_137F6
- loc_137FC: ; CODE XREF: sub_13684+166j
- move.b (a6)+,(a2)+
- loc_137FE: ; CODE XREF: sub_13684+15Ej
- move.b (a6)+,(a2)+
- loc_13800: ; CODE XREF: sub_13684+160j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13824
- bra.w loc_13736
- ; ---------------------------------------------------------------------------
- loc_1380E: ; CODE XREF: sub_13684+16Cj
- move.w #0,d0
- rts
- ; ---------------------------------------------------------------------------
- loc_13814: ; CODE XREF: sub_13684+170j
- move.w #$FFFF,d0
- moveq #7,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_1381C: ; CODE XREF: sub_13684+146j
- move.w #1,d0
- moveq #3,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13824: ; CODE XREF: sub_13684+184j
- move.w #1,d0
- moveq #7,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_1382C: ; CODE XREF: sub_13684+12Ej
- move.b (a1)+,(a2)+
- loc_1382E: ; CODE XREF: sub_13684+26j
- ; sub_13684+54j ...
- add.b d1,d1
- bcs.s loc_138A8
- move.l a2,a6
- add.b d1,d1
- bcs.s loc_1384E
- move.b (a1)+,d5
- suba.l d5,a6
- add.b d1,d1
- bcc.s loc_13842
- move.b (a6)+,(a2)+
- loc_13842: ; CODE XREF: sub_13684+1BAj
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13898
- bra.w loc_139A6
- ; ---------------------------------------------------------------------------
- loc_1384E: ; CODE XREF: sub_13684+1B2j
- lsl.w #3,d1
- move.b (a0)+,d1
- move.w d1,d6
- and.w d4,d6
- move.b (a1)+,d6
- suba.l d6,a6
- add.b d1,d1
- bcs.s loc_13864
- add.b d1,d1
- bcs.s loc_1387A
- bra.s loc_1387C
- ; ---------------------------------------------------------------------------
- loc_13864: ; CODE XREF: sub_13684+1D8j
- add.b d1,d1
- bcc.s loc_13878
- moveq #0,d0
- move.b (a1)+,d0
- beq.s loc_1388A
- subq.w #6,d0
- bmi.s loc_13890
- loc_13872: ; CODE XREF: sub_13684+1F0j
- move.b (a6)+,(a2)+
- dbf d0,loc_13872
- loc_13878: ; CODE XREF: sub_13684+1E2j
- move.b (a6)+,(a2)+
- loc_1387A: ; CODE XREF: sub_13684+1DCj
- move.b (a6)+,(a2)+
- loc_1387C: ; CODE XREF: sub_13684+1DEj
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_138A0
- bra.w loc_137B0
- ; ---------------------------------------------------------------------------
- loc_1388A: ; CODE XREF: sub_13684+1E8j
- move.w #0,d0
- rts
- ; ---------------------------------------------------------------------------
- loc_13890: ; CODE XREF: sub_13684+1ECj
- move.w #$FFFF,d0
- moveq #6,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13898: ; CODE XREF: sub_13684+1C4j
- move.w #1,d0
- moveq #2,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_138A0: ; CODE XREF: sub_13684+200j
- move.w #1,d0
- moveq #6,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_138A8: ; CODE XREF: sub_13684+1ACj
- move.b (a1)+,(a2)+
- loc_138AA: ; CODE XREF: sub_13684+20j
- ; sub_13684+CEj ...
- add.b d1,d1
- bcs.s loc_13926
- move.l a2,a6
- add.b d1,d1
- bcs.s loc_138CA
- move.b (a1)+,d5
- suba.l d5,a6
- add.b d1,d1
- bcc.s loc_138BE
- move.b (a6)+,(a2)+
- loc_138BE: ; CODE XREF: sub_13684+236j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13916
- bra.w loc_13A24
- ; ---------------------------------------------------------------------------
- loc_138CA: ; CODE XREF: sub_13684+22Ej
- lsl.w #2,d1
- move.b (a0)+,d1
- add.w d1,d1
- move.w d1,d6
- and.w d4,d6
- move.b (a1)+,d6
- suba.l d6,a6
- add.b d1,d1
- bcs.s loc_138E2
- add.b d1,d1
- bcs.s loc_138F8
- bra.s loc_138FA
- ; ---------------------------------------------------------------------------
- loc_138E2: ; CODE XREF: sub_13684+256j
- add.b d1,d1
- bcc.s loc_138F6
- moveq #0,d0
- move.b (a1)+,d0
- beq.s loc_13908
- subq.w #6,d0
- bmi.s loc_1390E
- loc_138F0: ; CODE XREF: sub_13684+26Ej
- move.b (a6)+,(a2)+
- dbf d0,loc_138F0
- loc_138F6: ; CODE XREF: sub_13684+260j
- move.b (a6)+,(a2)+
- loc_138F8: ; CODE XREF: sub_13684+25Aj
- move.b (a6)+,(a2)+
- loc_138FA: ; CODE XREF: sub_13684+25Cj
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_1391E
- bra.w loc_1382E
- ; ---------------------------------------------------------------------------
- loc_13908: ; CODE XREF: sub_13684+266j
- move.w #0,d0
- rts
- ; ---------------------------------------------------------------------------
- loc_1390E: ; CODE XREF: sub_13684+26Aj
- move.w #$FFFF,d0
- moveq #5,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13916: ; CODE XREF: sub_13684+240j
- move.w #1,d0
- moveq #1,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_1391E: ; CODE XREF: sub_13684+27Ej
- move.w #1,d0
- moveq #5,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13926: ; CODE XREF: sub_13684+228j
- move.b (a1)+,(a2)+
- loc_13928: ; CODE XREF: sub_13684+1Aj
- ; sub_13684+148j ...
- add.b d1,d1
- bcs.s loc_139A4
- move.l a2,a6
- add.b d1,d1
- bcs.s loc_13948
- move.b (a1)+,d5
- suba.l d5,a6
- add.b d1,d1
- bcc.s loc_1393C
- move.b (a6)+,(a2)+
- loc_1393C: ; CODE XREF: sub_13684+2B4j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13994
- bra.w SomDec_BitPos0
- ; ---------------------------------------------------------------------------
- loc_13948: ; CODE XREF: sub_13684+2ACj
- add.w d1,d1
- move.b (a0)+,d1
- lsl.w #2,d1
- move.w d1,d6
- and.w d4,d6
- move.b (a1)+,d6
- suba.l d6,a6
- add.b d1,d1
- bcs.s loc_13960
- add.b d1,d1
- bcs.s loc_13976
- bra.s loc_13978
- ; ---------------------------------------------------------------------------
- loc_13960: ; CODE XREF: sub_13684+2D4j
- add.b d1,d1
- bcc.s loc_13974
- moveq #0,d0
- move.b (a1)+,d0
- beq.s loc_13986
- subq.w #6,d0
- bmi.s loc_1398C
- loc_1396E: ; CODE XREF: sub_13684+2ECj
- move.b (a6)+,(a2)+
- dbf d0,loc_1396E
- loc_13974: ; CODE XREF: sub_13684+2DEj
- move.b (a6)+,(a2)+
- loc_13976: ; CODE XREF: sub_13684+2D8j
- move.b (a6)+,(a2)+
- loc_13978: ; CODE XREF: sub_13684+2DAj
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_1399C
- bra.w loc_138AA
- ; ---------------------------------------------------------------------------
- loc_13986: ; CODE XREF: sub_13684+2E4j
- move.w #0,d0
- rts
- ; ---------------------------------------------------------------------------
- loc_1398C: ; CODE XREF: sub_13684+2E8j
- move.w #$FFFF,d0
- moveq #4,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13994: ; CODE XREF: sub_13684+2BEj
- move.w #1,d0
- moveq #8,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_1399C: ; CODE XREF: sub_13684+2FCj
- move.w #1,d0
- moveq #4,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_139A4: ; CODE XREF: sub_13684+2A6j
- move.b (a1)+,(a2)+
- loc_139A6: ; CODE XREF: sub_13684+14j
- ; sub_13684+1C6j ...
- add.b d1,d1
- bcs.s loc_13A22
- move.l a2,a6
- add.b d1,d1
- bcs.s loc_139C8
- move.b (a0)+,d1
- move.b (a1)+,d5
- suba.l d5,a6
- add.b d1,d1
- bcc.s loc_139BC
- move.b (a6)+,(a2)+
- loc_139BC: ; CODE XREF: sub_13684+334j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13A12
- bra.w loc_13736
- ; ---------------------------------------------------------------------------
- loc_139C8: ; CODE XREF: sub_13684+32Aj
- move.b (a0)+,d1
- lsl.w #3,d1
- move.w d1,d6
- and.w d4,d6
- move.b (a1)+,d6
- suba.l d6,a6
- add.b d1,d1
- bcs.s loc_139DE
- add.b d1,d1
- bcs.s loc_139F4
- bra.s loc_139F6
- ; ---------------------------------------------------------------------------
- loc_139DE: ; CODE XREF: sub_13684+352j
- add.b d1,d1
- bcc.s loc_139F2
- moveq #0,d0
- move.b (a1)+,d0
- beq.s loc_13A04
- subq.w #6,d0
- bmi.s loc_13A0A
- loc_139EC: ; CODE XREF: sub_13684+36Aj
- move.b (a6)+,(a2)+
- dbf d0,loc_139EC
- loc_139F2: ; CODE XREF: sub_13684+35Cj
- move.b (a6)+,(a2)+
- loc_139F4: ; CODE XREF: sub_13684+356j
- move.b (a6)+,(a2)+
- loc_139F6: ; CODE XREF: sub_13684+358j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13A1A
- bra.w loc_13928
- ; ---------------------------------------------------------------------------
- loc_13A04: ; CODE XREF: sub_13684+362j
- move.w #0,d0
- rts
- ; ---------------------------------------------------------------------------
- loc_13A0A: ; CODE XREF: sub_13684+366j
- move.w #$FFFF,d0
- moveq #3,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13A12: ; CODE XREF: sub_13684+33Ej
- move.w #1,d0
- moveq #7,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13A1A: ; CODE XREF: sub_13684+37Aj
- move.w #1,d0
- moveq #3,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13A22: ; CODE XREF: sub_13684+324j
- move.b (a1)+,(a2)+
- loc_13A24: ; CODE XREF: sub_13684+Ej
- ; sub_13684+8Ej ...
- add.b d1,d1
- bcs.s loc_13A9E
- move.b (a0)+,d1
- move.l a2,a6
- add.b d1,d1
- bcs.s loc_13A46
- move.b (a1)+,d5
- suba.l d5,a6
- add.b d1,d1
- bcc.s loc_13A3A
- move.b (a6)+,(a2)+
- loc_13A3A: ; CODE XREF: sub_13684+3B2j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13A8E
- bra.w loc_137B0
- ; ---------------------------------------------------------------------------
- loc_13A46: ; CODE XREF: sub_13684+3AAj
- lsl.w #3,d1
- move.w d1,d6
- and.w d4,d6
- move.b (a1)+,d6
- suba.l d6,a6
- add.b d1,d1
- bcs.s loc_13A5A
- add.b d1,d1
- bcs.s loc_13A70
- bra.s loc_13A72
- ; ---------------------------------------------------------------------------
- loc_13A5A: ; CODE XREF: sub_13684+3CEj
- add.b d1,d1
- bcc.s loc_13A6E
- moveq #0,d0
- move.b (a1)+,d0
- beq.s loc_13A80
- subq.w #6,d0
- bmi.s loc_13A86
- loc_13A68: ; CODE XREF: sub_13684+3E6j
- move.b (a6)+,(a2)+
- dbf d0,loc_13A68
- loc_13A6E: ; CODE XREF: sub_13684+3D8j
- move.b (a6)+,(a2)+
- loc_13A70: ; CODE XREF: sub_13684+3D2j
- move.b (a6)+,(a2)+
- loc_13A72: ; CODE XREF: sub_13684+3D4j
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- move.b (a6)+,(a2)+
- cmp.w a2,d7
- bls.s loc_13A96
- bra.w loc_139A6
- ; ---------------------------------------------------------------------------
- loc_13A80: ; CODE XREF: sub_13684+3DEj
- move.w #0,d0
- rts
- ; ---------------------------------------------------------------------------
- loc_13A86: ; CODE XREF: sub_13684+3E2j
- move.w #$FFFF,d0
- moveq #2,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13A8E: ; CODE XREF: sub_13684+3BCj
- move.w #1,d0
- moveq #6,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13A96: ; CODE XREF: sub_13684+3F6j
- move.w #1,d0
- moveq #2,d2
- rts
- ; ---------------------------------------------------------------------------
- loc_13A9E: ; CODE XREF: sub_13684+3A2j
- move.b (a1)+,(a2)+
- bra.w SomDec_BitPos0
- ; End of function sub_13684
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement