faster codes pasted by iterrogo on Tue Sep 30 17:01:40 2014

while (wsp < wslen) {
   // switch is faster
   switch(wsmaskpos) {
     case 0:
       wsv[wsp] = wsv[wsp] ^ wsm0;
       break;
     case 1:
       wsv[wsp] = wsv[wsp] ^ wsm1;
       break;
     case 2:
       wsv[wsp] = wsv[wsp] ^ wsm2;
       break;
     case 3:
       wsv[wsp] = wsv[wsp] ^ wsm3;
       break;
   }
   // wsmaskpos = wsv[wsp]; // than this


   wsmaskpos = (wsmaskpos + 1) % 4;
   wsp++;
 }

faster codes 2 added by iterrogo on Tue Sep 30 17:03:57 2014

while (wsp < wslen) {
   // switch is faster
   switch(wsmaskpos) {
     case 0:
       wsv[wsp] = wsv[wsp] ^ wsm0;
       break;
     case 1:
       wsv[wsp] = wsv[wsp] ^ wsm1;
       break;
     case 2:
       wsv[wsp] = wsv[wsp] ^ wsm2;
       break;
     case 3:
       wsv[wsp] = wsv[wsp] ^ wsm3;
       break;
   }
   // wsv[wsp] = wsv[wsp] ^ wsmaskkey[wsmaskpos]; // than this


   wsmaskpos = (wsmaskpos + 1) % 4;
   wsp++;
 }