// QUISCI cipher, written by Stefan Mueller 2001
function decode(key,checksum) {
  var i, j, k;
  var x,tmp;
  var s=[];
  var randInit;
  var mask;

  // init 
  randInit=1357135753
  mask=4294967295
  csmask=65535;
  boxsize=512;
  boxsizeMin1=boxsize-1;
   
  // setup key
  i=randInit;
  for (k=0; k < key.length; k++) {
    i=mask & (i+randInit);
    i=mask & (i+key.charCodeAt(k));
    s[k]=i;
  }
  j=0;
  for (k=key.length;k<boxsize;k++) {
    i=mask & (i+randInit);
    i=mask & (i+s[j]); 
    s[k]=i;
    j++;
  }
  x=i;
  j=boxsizeMin1 & i;
  if (checksum==(i&csmask)) {
    // loop
    for (k=0; k < myArray.length; k++) {
      i=mask & (i+s[j]);
      if (i==0) {
        i=mask^s[j];
	s[j]=x;
        myArray[k]^=i;
      } else {
        x=i^s[j];
        s[j]=i;
        j=boxsizeMin1 & i;
        myArray[k]^=x;
      }
    }
    return 1;
  } else {
    return 0;
  }
}
