//Sendパケをエンコードする関数。
//num:何枚目のテーブルを使うかを指定する。
//key:暗号キー
//buff1:バッファ
//buff2:バッファ
//len:バッファの長さ
function EncodeSendPacket(num :Integer; key :Char; var buff1 :PChar;
var buff2 :PChar; len :Integer):Char;
var
i :Integer;
tmp :Integer;
begin
for i := 0 to len - 1 do
begin
tmp := ord(key) and 7;
if (ord(key) and (1 shl tmp)) <> 0 then begin
buff2[i] := Char(ord(buff1[i]) xor ord(key));
key := buff2[i];
buff2[i] := pTable[num * 256 + ord(buff2[i])];
continue;
end;
tmp := ord(key) and 3;
if (ord(key) and (1 shl tmp)) <> 0 then begin
buff2[i] := Char(ord(buff1[i]) + ord(key));
key := buff2[i];
buff2[i] := pTable[num * 256 + ord(buff2[i])];
continue;
end;