for (i=0,encstring+=6;*encstring;encstring+=2,i++) {
  val = MyStrSearch( nRnd, *encstring, *(encstring+1) );
  decstring[i] = (unsigned char)val;
 }
たぶん2重に条件つけてるんだろうけど
for($i=0;なんたら〜;$i++){

}
と展開してくれないかな?