Contributor: SWAG SUPPORT TEAM        

Function EncryptDecrypt(S : String : K : String) : String;
Var
  I,Q : Integer;
  O   : String[255];
begin
  Q := 1;
  O := "";
  For I := 1 to Length(S) Do
    begin
      O := O + Chr(Ord(S[I]) Xor Ord(K[Q]));
      Inc(Q); If Q > Length(K) Then Q := 1;
    end;
  EncryptDecrypt := O;
end;

A couple of thoughts on this.

1. If K is short then the decryption is very easy.
2. The routine would be VERY slow as it is using String concatenation.  It
   would be MUCH faster if the O := "" line was changed to O[0] := S[0] and
   the O := O + ... line was replaced With -
   O[I] := ...

TeeCee