function DecryptByte(nByte:byte; key:string):byte;
var
i:integer;
begin
for I := 1 to length(key) do
begin
result := ord(nByte) xor ord(key[i])-(i xor ord(key[i]));
end;
end;
procedure DecryptByteArray2(input:array of byte; var output:array of byte; key:string);
var
i,Delta,Res:integer;
c,x:integer;
begin
for i:=0 to Length(input)-1 do
begin
output[i] := DecryptByte(input[i], key);
end;
end;