请指教如何解密这个算法
constDEFAULT_M: array [0..lF] of byte =
(l1, l6, lF, l8, l8, lC, l0, lD,l2, l3, l01, ldf, lss, ldd, ld1, ld8);
procedure inBuf(var Buf: array of Byte);
var
i: Integer;
d, c: byte;
Index: Integer;
begin
d := 0;
c := 0;
for i:= low(Buf) to High(Buf) do
begin
Index:= i mod 16;
d := DEFAULT_M[Index];
d := d+c;
c := byte(Buf[i]);
c := c xor d;
Buf[i] := c;
end;
end;