// ============================================
// output - Disassembled Source
// ============================================
// KickAssembler syntax
// Generated by Restore 64 v0.2.1 alpha build 298, 2026-04-11 21:35:05
// https://restore64.dev by datucker / Rabenauge
//
// Load address: $0700  End: $d011  (51474 bytes)
// Crunched with Exomizer — depacked by emulation
// Packer entry: $082a (via BASIC SYS 2090)
// Entry point:  $7500 (29952)
// IRQ handler:  $75bc (irq_75bc)
// IRQ handler:  $ea31 (loc_ea31)
//
// Code: 676 bytes, Data: 50798 bytes
// Labels: 56, Subroutines: 6
//
// Cross-references: all OK
// ============================================


// --- Region $7500-$779d ---
.pc = $7500 "main_7500"

main_7500:
        jsr sub_761c
        tya
        sta $02
        sta $d020
        sta $d021
        lda #$d0
        sta $fc
        lda #$08
        jsr $ffd2
        tay
        sty $fe
        lda #$0a
        sta $03
        sei
        lda #$33
        sta $01

loc_7521:
        lda #$00
        pha
        lda ($fb),y
        tax
        and #$80
        beq loc_752f
        pla
        eor #$c0
        pha

loc_752f:
        txa
        and #$40
        beq loc_7538
        pla
        eor #$30
        pha

loc_7538:
        txa
        and #$20
        beq loc_7541
        pla
        eor #$0c
        pha

loc_7541:
        txa
        and #$10
        beq loc_754a
        pla
        eor #$03
        pha

loc_754a:
        pla
        sta ($fd),y
        lda #$00
        pha
        txa
        and #$08
        beq loc_7559
        pla
        eor #$c0
        pha

loc_7559:
        txa
        and #$04
        beq loc_7562
        pla
        eor #$30
        pha

loc_7562:
        txa
        and #$02
        beq loc_756b
        pla
        eor #$0c
        pha

loc_756b:
        txa
        and #$01
        beq loc_7574
        pla
        eor #$03
        pha

loc_7574:
        pla
        sta ($02),y
        iny
        bne loc_7521
        inc $fc
        inc $fe
        inc $03
        lda $03
        cmp #$0c
        bne loc_7521
        lda #$37
        sta $01
        cli
        lda #$12
        sta $d018
        sei
        lda #$07
        sta $02
        lda #$01
        sta $fb
        lda #$bc
        sta $0314
        lda #$75
        sta $0315
        lda $d01a
        ora #$01
        sta $d01a
        lda $dc0e
        and #$fe
        sta $dc0e
        lda #$31
        sta $d012
        cli
        jmp loc_7641
irq_75bc: {
        jsr sub_7603
        lda $d019
        and #$01
        beq skip2
        sta $d019
        lda $fb
        bne skip1
        inc $fb
        lda #$1b
        sta $d011
        lda $d016
        and #$e8
        sta $d016
        lda #$31
        sta $d012
        jmp $ea31
skip1:
        dec $fb
        lda #$1b
        sta $d011
        lda $02
        and #$07
        sta $02
        lda $d016
        and #$e8
        ora $02
        sta $d016
        lda #$39
        sta $d012
skip2:
        jmp $ea81
}

// Referenced by: jsr from $75bc
sub_7603: {
        lda $02
        beq skip
        dec $02
        rts
skip:
        ldx #$00
loop:
        lda $0401,x
        sta $0400,x
        inx
        cpx #$78
        bne loop
        lda #$07
        sta $02
        rts
}
// Referenced by: jsr from $7500

sub_761c:
        lda #$93
        jsr $ffd2
        ldy #$00
        sty $fb
        sty $fd
        lda #$08
        sta $fc
        lda #$f0
        sta $fe

loc_762f:
        lda ($fb),y
        sta ($fd),y
        lda #$00
        sta ($fb),y
        iny
        bne loc_762f
        inc $fc
        inc $fe
        bne loc_762f
        rts

loc_7641:
        ldx #$00
        lda #$07

loc_7645:
        sta $d800,x
        sta $d900,x
        sta $da00,x
        sta $dae8,x
        inx
        bne loc_7645
        ldx #$27

loc_7656:
        lda #$05
        sta $d800,x
        lda #$00
        sta $d828,x
        sta $d850,x
        lda #$0a
        sta $d8a0,x
        sta $d8f0,x
        lda #$01
        sta $d990,x
        dex
        bpl loc_7656
        inx
        lda #$a6
        sta $fc
        lda #$04
        sta $fd

loc_767c:
        ldy #$00

loc_767e:
        lda txt_77a5,x
        beq loc_768e
        sta ($fc),y
        eor #$40
        iny
        sta ($fc),y
        inx
        iny
        bne loc_767e

loc_768e:
        clc
        lda $fc
        adc #$28
        sta $fc
        lda $fd
        adc #$00
        sta $fd
        inx
        lda txt_77a5,x
        cmp #$ff
        bne loc_767c
        ldx #$00
        stx $04
        jsr sub_774d
        lda #$90
        sta $05
        lda #$05
        sta $06
        jsr sub_777d
        lda #$00
        sta $c6

loc_76b9:
        jsr $ffe4
        cmp #$91
        beq loc_76e5
        cmp #$0d
        beq loc_7700
        cmp #$11
        bne loc_76b9
        lda $04
        cmp #$06
        beq loc_76b9
        inc $04
        jsr sub_7771
        clc
        lda $05
        adc #$50
        sta $05
        lda $06
        adc #$00
        sta $06
        jsr sub_777d
        bne loc_76b9

loc_76e5:
        lda $04
        beq loc_76b9
        dec $04
        jsr sub_7771
        sec
        lda $05
        sbc #$50
        sta $05
        lda $06
        sbc #$00
        sta $06
        jsr sub_777d
        bne loc_76b9

loc_7700:
        jsr sub_7793
        ldx $04
        lda dat_779e,x
        tax
        jsr sub_774d
        ldx $04
        bne loc_76b9

loc_7710:
        lda $0400
        cmp $7820
        bne loc_7710
        sei
        lda #$31
        sta $0314
        lda #$ea
        sta $0315
        cli
        jsr $ff81
        sei
        lda #$35
        sta $01
        ldy #$00
        sty $fb
        sty $fd
        lda #$08
        sta $fc
        lda #$f0
        sta $fe

loc_773a:
        lda ($fd),y
        sta ($fb),y
        iny
        bne loc_773a
        inc $fc
        inc $fe
        bne loc_773a
        jmp loc_78c0

dat_774a:
        .byte $00,$00,$00                           // ...
// Referenced by: jsr from $76a7, $7709

sub_774d:
        ldy #$00
        lda #$2a
        sta $fc
        lda #$04
        sta $fd

loc_7757:
        lda txt_77f8,x
        beq loc_7767
        sta ($fc),y
        eor #$40
        iny
        sta ($fc),y
        inx
        iny
        bne loc_7757

loc_7767:
        lda #$20

loc_7769:
        sta ($fc),y
        iny
        cpy #$52
        bne loc_7769
        rts
// Referenced by: jsr from $76d0, $76eb

sub_7771:
        ldy #$00
        lda #$20

loc_7775:
        sta ($05),y
        iny
        cpy #$04
        bne loc_7775
        rts
// Referenced by: jsr from $76b2, $76e0, $76fb

sub_777d:
        lda #$2d
        ldy #$00
        sta ($05),y
        eor #$40
        iny
        sta ($05),y
        lda #$3e
        iny
        sta ($05),y
        eor #$40
        iny
        sta ($05),y
        rts
// Referenced by: jsr from $7700

sub_7793:
        ldy #$29
        lda #$20

loc_7797:
        sta $0400,y
        dey
        bpl loc_7797
        rts

// --- Region $78c0-$78c9 ---
.pc = $78c0 "loc_78c0"

loc_78c0:
        lda #$37
        sta $01
        cli
        jmp $fce2

dat_78c8:
        // === Fill data (2 bytes, $78c8-$78c9) ===
        .byte $9d,$9d                               // ..

// --- Region $8dd0-$8dd0 ---
.pc = $8dd0 "Segment $8dd0"
        brk

// ============================================
// Data blocks
// ============================================

// --- Region $0800-$0800 ---
.pc = $0800 "dat_0800"

dat_0800:
        // === Fill data (1 bytes, $0800-$0800) ===
        .byte $00                                   // .

// --- Region $0c00-$0c00 ---
.pc = $0c00 "scr_0c00"

scr_0c00:
        .byte $00                                   // .

// --- Region $1800-$1800 ---
.pc = $1800 "chr_1800"

chr_1800:
        .byte $00                                   // .

// --- Region $779e-$78bf ---
.pc = $779e "dat_779e"

dat_779e:
        .byte $14,$2a,$3c,$4c,$64,$79,$8c           // .*<Ldy.

txt_77a5:
        .encoding "screencode_mixed"
        .text "who cracked this"
        .text "@"
        .text "@"
        .text "program?"
        .text "@"
        .text "@"
        .text "@"
        .text "@"
        .text "abc"
        .text "@"
        .text "@"
        .text "bert"
        .text "@"
        .text "@"
        .text "dsg"
        .text "@"
        .text "@"
        .text "megabyte"
        .text "@"
        .text "@"
        .text "jedi"
        .text "@"
        .text "@"
        .text "section 8"
        .text "@"
        .text "@"
        .text "yourself"
        .text "@"
        .encoding "petscii_upper"
        .byte $ff                                   // .

txt_77f8:
        .encoding "screencode_mixed"
        .text "use crsr's & return"
        .text "@"
        .text "abc crackings in"
        .encoding "petscii_upper"

txt_781c:
        .text " 1985"
        .byte $00                                   // string terminator

txt_7822:
        .encoding "screencode_mixed"
        .text "no not space bert"
        .text "@"
        .text "where are they?"
        .text "@"
        .text "cracking, not crunching"
        .text "@"
        .text "where is his return?"
        .text "@"
        .text "they're not so bad"
        .text "@"
        .text "no, you can only play games"
        .text "@"
        .encoding "petscii_upper"
        .byte $61,$62,$63,$00,$11,$19,$19,$19,$0a,$0a,$61,$64,$6a,$01,$0a,$0a // abc.......adj...
        .byte $0b,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d // ................

// --- Region $78ca-$7900 ---
.pc = $78ca "Segment $78ca"
        .fill 54, $9d

dat_7900:
        // === Fill data (1 bytes, $7900-$7900) ===
        .byte $00                                   // .

// --- Region $8dd1-$8dd1 ---
.pc = $8dd1 "dat_8dd1"

dat_8dd1:
        // === Fill data (1 bytes, $8dd1-$8dd1) ===
        .byte $00                                   // .
