Código (asm) [Seleccionar] 
macro  MacroYSTEncript Posicion,Tamaño{
local ..Caracter,..numero
..numero  = Tamaño
repeat Tamaño
..numero  = ..numero - 1
load ..Caracter from  Posicion+%-1
..Caracter = byte ..Caracter + 3
..Caracter = byte not ..Caracter
..Caracter = byte ..Caracter xor 45
..Caracter = byte ..Caracter xor ..numero
store  ..Caracter at  Posicion+%-1
end repeat
}     
Código (ASM) [Seleccionar] 
proc YSTEncript,cCadena,cBuffer,cTamaño
push eax ebx ecx  edx esi
mov ebx,[cBuffer]
mov esi,[cCadena]
dec esi
dec ebx
.Eb:
dec [cTamaño]
inc esi
inc ebx
mov cl,byte[esi]
add cl,3
mov byte[ebx],cl
not byte[ebx]
xor byte[ebx],45
mov edx,[cTamaño]
xor byte[ebx],dl
cmp [cTamaño],0
jne .Eb
pop  esi edx ecx ebx eax
ret
endp
 
proc YSTDesencript,cCadena,cBuffer,cTamaño
push  eax ebx ecx  edx esi
mov ebx,[cBuffer]
mov esi,[cCadena]
dec esi
dec ebx
.Eb:
dec [cTamaño]
inc esi
inc ebx
mov cl,byte[esi]
mov byte[ebx],cl
mov edx,[cTamaño]
xor byte[ebx],dl
not byte[ebx]
xor byte[ebx],45
sub byte[ebx],3
cmp [cTamaño],0
jne .Eb
pop  esi edx ecx ebx eax
ret
endp
				
 .
 Gran capacidad y madurez para aceptar la opinion de la mayoria ...
.
 sí te molesta el título que lo cambien por "Los aportes de mi querido YST" aunque lo veo absurdo.