Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Can you unpack this chunk of code?

Name: Anonymous 2012-08-13 18:20


        public start
start        proc far
        mov    ax, es
        add    ax, 10h
        push    cs
        pop    ds
        assume ds:seg001
        mov    word_1A274, ax
        add    ax, word_1A27C
        mov    es, ax
        assume es:nothing
        mov    cx, word_1A276
        mov    di, cx
        dec    di
        mov    si, di
        std
        rep movsb
        push    ax
        mov    ax, 32h    ; '2'
        push    ax
        retf
start        endp ; sp-analysis failed

; ---------------------------------------------------------------------------
        mov    bx, es
        mov    ax, ds
        dec    ax
        mov    ds, ax
        assume ds:nothing
        mov    es, ax
        assume es:nothing
        mov    di, 0Fh
        mov    cx, 10h
        mov    al, 0FFh
        repe scasb
        inc    di
        mov    si, di
        mov    ax, bx
        dec    ax
        mov    es, ax
        assume es:nothing
        mov    di, 0Fh

loc_1A2C0:                ; CODE XREF: seg001:0094j
        mov    cl, 4
        mov    ax, si
        not    ax
        shr    ax, cl
        jz    short loc_1A2D3
        mov    dx, ds
        sub    dx, ax
        mov    ds, dx
        assume ds:nothing
        or    si, 0FFF0h

loc_1A2D3:                ; CODE XREF: seg001:0058j
        mov    ax, di
        not    ax
        shr    ax, cl
        jz    short loc_1A2E4
        mov    dx, es
        sub    dx, ax
        mov    es, dx
        assume es:nothing
        or    di, 0FFF0h

loc_1A2E4:                ; CODE XREF: seg001:0069j
        lodsb
        mov    dl, al
        dec    si
        lodsw
        mov    cx, ax
        inc    si
        mov    al, dl
        and    al, 0FEh
        cmp    al, 0B0h ; '∞'
        jnz    short loc_1A2FA
        lodsb
        rep stosb
        jmp    short loc_1A300
; ---------------------------------------------------------------------------
        nop

loc_1A2FA:                ; CODE XREF: seg001:0082j
        cmp    al, 0B2h ; '≤'
        jnz    short loc_1A369
        rep movsb

loc_1A300:                ; CODE XREF: seg001:0087j
        mov    al, dl
        test    al, 1
        jz    short loc_1A2C0
        mov    si, 125h
        push    cs
        pop    ds
        assume ds:seg001
        mov    bx, word_1A274
        cld
        xor    dx, dx

loc_1A312:                ; CODE XREF: seg001:00C4j
        lodsw
        mov    cx, ax
        jcxz    short loc_1A32A
        mov    ax, dx
        add    ax, bx
        mov    es, ax
        assume es:nothing

loc_1A31D:                ; CODE XREF: seg001:loc_1A328j
        lodsw
        mov    di, ax
        cmp    di, 0FFFFh
        jz    short loc_1A336
        add    es:[di], bx

loc_1A328:                ; CODE XREF: seg001:00D4j
        loop    loc_1A31D

loc_1A32A:                ; CODE XREF: seg001:00A5j
        cmp    dx, 0F000h
        jz    short loc_1A346
        add    dx, 1000h
        jmp    short loc_1A312
; ---------------------------------------------------------------------------

loc_1A336:                ; CODE XREF: seg001:00B3j
        mov    ax, es
        inc    ax
        mov    es, ax
        assume es:nothing
        sub    di, 10h
        add    es:[di], bx
        dec    ax
        mov    es, ax
        assume es:nothing
        jmp    short loc_1A328
; ---------------------------------------------------------------------------

loc_1A346:                ; CODE XREF: seg001:00BEj
        mov    ax, bx
        mov    di, word ptr byte_1A278
        mov    si, word ptr byte_1A278+2
        add    si, ax
        add    word ptr byte_1A270+2, ax
        sub    ax, 10h
        mov    ds, ax
        assume ds:nothing
        mov    es, ax
        mov    bx, 0
        cli
        mov    ss, si
        assume ss:nothing
        mov    sp, di
        sti
        jmp    dword ptr cs:[bx]
; ---------------------------------------------------------------------------

loc_1A369:                ; CODE XREF: seg001:008Cj
        mov    ah, 40h    ; '@'
        mov    bx, 2
        mov    cx, 16h
        mov    dx, cs
        mov    ds, dx
        assume ds:seg001
        mov    dx, 10Fh
        int    21h        ; DOS -    2+ - WRITE TO FILE WITH    HANDLE
                    ; BX = file handle, CX = number    of bytes to write, DS:DX -> buffer
        mov    ax, 4CFFh
        int    21h        ; DOS -    2+ - QUIT WITH EXIT CODE (EXIT)
                    ; AL = exit code
; ---------------------------------------------------------------------------
        db  50h    ; P
        db  61h    ; a
        db  63h    ; c
        db  6Bh    ; k
        db  65h    ; e
        db  64h    ; d
        db  20h
        db  66h    ; f
        db  69h    ; i
        db  6Ch    ; l
        db  65h    ; e
        db  20h
        db  69h    ; i
        db  73h    ; s
        db  20h
        db  63h    ; c
        db  6Fh    ; o
        db  72h    ; r
        db  72h    ; r
        db  75h    ; u
        db  70h    ; p
        db  74h    ; t
        db    0
        db 0Bh dup(0), 34h, 0, 4, 8Bh, 14h, 8Bh, 24h, 8Bh, 34h
        db 8Bh,    44h, 8Bh, 54h, 8Bh, 64h, 8Bh, 74h, 8Bh,    84h, 8Bh
        db 94h,    8Bh, 0A4h, 8Bh,    0B4h, 8Bh, 0C4h, 8Bh, 0D4h, 8Bh
        db 0E4h, 8Bh, 0F4h, 8Bh, 4, 8Ch, 14h, 8Ch, 24h,    8Ch, 34h
        db 8Ch,    44h, 8Ch, 54h, 8Ch, 64h, 8Ch, 74h, 8Ch,    84h, 8Ch
        db 94h,    8Ch, 0A4h, 8Ch,    0B4h, 8Ch, 0C4h, 8Ch, 0D4h, 8Ch
        db 0E4h, 8Ch, 0F4h, 8Ch, 4, 8Dh, 14h, 8Dh, 24h,    8Dh, 34h
        db 8Dh,    44h, 8Dh, 54h, 8Dh, 64h, 8Dh, 74h, 8Dh,    84h, 8Dh
        db 94h,    8Dh, 0A4h, 8Dh,    0B4h, 8Dh, 0C4h, 8Dh, 0D4h, 8Dh
        db 0E4h, 8Dh, 0F4h, 8Dh, 56h, 0F9h, 4Dh, 0FFh, 0C4h, 0FFh
        db 0C9h, 0FFh, 0B1h, 0,    0F9h, 0, 0FEh, 0, 58h, 1, 11h
        db 5, 16h, 5, 48h, 5, 4Dh, 5, 5Dh, 5, 77h, 5, 7Ch, 5, 7Ch
        db 6, 81h, 6, 4Fh, 7, 54h, 7, 8Ah, 7, 0C5h, 8, 38h, 9
        db 3Dh,    9, 15h,    0Ah, 8Eh, 0Ch, 93h, 0Ch, 0C9h, 0Ch, 0C3h
        db 10h,    0, 12h,    2Ch, 12h, 8Ch, 13h, 5Bh, 1Ah, 4Eh, 1Bh
        db 1Dh,    1Ch, 35h, 1Ch, 3Ah, 1Ch, 0A3h, 1Ch, 0A8h, 1Ch
        db 15h,    1Dh, 59h, 1Dh, 9Bh, 1Dh, 0E2h, 2 dup(1Dh), 1Eh
        db 61h,    1Eh, 0A4h, 1Eh,    0E8h, 1Eh, 0EAh, 21h, 2Ch, 22h
        db 6Dh,    25h, 17h, 26h, 5Eh, 26h, 0E6h, 27h, 0A2h, 29h
        db 0A8h, 29h, 0ABh, 29h, 0B0h, 29h, 0BCh, 29h, 0F1h, 29h
        db 19h,    2Ah, 1Fh, 2Ah, 22h, 2Ah, 27h, 2Ah, 37h,    2Ah, 6Ch
        db 2Ah,    94h, 2Ah, 9Ah, 2Ah, 9Dh, 2Ah, 0A2h, 2Ah, 0A5h
        db 2Ah,    0AAh, 2Ah, 0CCh, 2Ah, 0D2h, 2Ah, 0D5h, 2Ah, 0DAh
        db 2Ah,    0EFh, 2Ah, 7, 2Bh, 1Fh,    2Bh, 25h, 2Bh, 28h, 2Bh
        db 2Dh,    2Bh, 30h, 2Bh, 35h, 2Bh, 58h, 2Bh, 5Eh,    2Bh, 61h
        db 2Bh,    66h, 2Bh, 69h, 2Bh, 6Eh, 2Bh, 91h, 2Bh,    97h, 2Bh
        db 9Ah,    2Bh, 9Fh, 2Bh, 0A2h, 2Bh, 0A7h,    2Bh, 0CAh, 2Bh
        db 0D0h, 2Bh, 0D3h, 2Bh, 0D8h, 2Bh, 0DBh, 2Bh, 0E0h, 2Bh
        db 3, 2Ch, 9, 2Ch, 0Ch,    2Ch, 11h, 2Ch, 38h, 2Ch, 61h, 2Ch
        db 67h,    2Ch, 6Ah, 2Ch, 6Fh, 2Ch, 96h, 2Ch, 0BFh, 2Ch, 0C5h
        db 2Ch,    0C8h, 2Ch, 0CDh, 2Ch, 0F4h, 2Ch, 11h, 2Dh, 16h
        db 2Dh,    45h, 2Dh, 0B3h,    2Fh, 0B9h, 2Fh,    0BCh, 2Fh, 0C1h
        db 2Fh,    0C4h, 2Fh, 0FDh, 2Fh, 3, 30h, 6, 30h, 0Bh, 30h
        db 35h,    30h, 64h, 30h, 93h, 30h, 0C2h, 30h, 0CBh, 30h
        db 8Ah,    31h, 0C6h, 31h,    21h, 32h, 0A7h,    32h, 3Fh, 35h
        db 0EFh, 35h, 6Eh, 36h,    5Eh, 37h, 41h, 38h, 7Ah, 38h, 92h
        db 38h,    7Ch, 3Bh, 0FDh,    3Ch, 36h, 3Dh, 71h, 3Dh, 0A4h
        db 3Dh,    9Fh, 40h, 0D8h,    40h, 10h, 41h, 43h, 41h, 5Eh, 42h
        db 97h,    42h, 0CFh, 42h,    2, 43h,    33h, 5Ah, 79h, 5Ah, 62h
        db 75h,    77h, 8Fh, 0B1h,    8Fh, 0C1h, 90h,    6, 91h,    0Bh, 91h
        db 2Fh,    91h, 5Bh, 91h, 8Ah, 91h, 0A7h, 93h, 7Fh, 9Ch, 0C1h
        db 9Ch,    74h, 9Dh, 98h, 9Dh, 0BAh, 9Dh, 0F8h, 9Eh, 0FDh
        db 9Eh,    67h, 9Fh, 69h, 9Fh, 0B2h, 9Fh, 0D0h, 9Fh, 29h
        db 0A0h, 37h, 0A0h, 32h, 0A1h, 10h dup(0)
        db 6FF01h dup(?)
seg001        ends

Name: Anonymous 2012-08-14 0:15

>>8
That's because Macs stopped being something to brag about when they started using Intel.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List