19   static const int S11=7;
 
   20   static const int S12=12;
 
   21   static const int S13=17;
 
   22   static const int S14=22;
 
   23   static const int S21=5;
 
   24   static const int S22=9;
 
   25   static const int S23=14;
 
   26   static const int S24=20;
 
   27   static const int S31=4;
 
   28   static const int S32=11;
 
   29   static const int S33=16;
 
   30   static const int S34=23;
 
   31   static const int S41=6;
 
   32   static const int S42=10;
 
   33   static const int S43=15;
 
   34   static const int S44=21;
 
   47   FF(a, b, c, d, x[ 0], S11, 0xd76aa478); 
 
   48   FF(d, a, b, c, x[ 1], S12, 0xe8c7b756); 
 
   49   FF(c, d, a, b, x[ 2], S13, 0x242070db); 
 
   50   FF(b, c, d, a, x[ 3], S14, 0xc1bdceee); 
 
   51   FF(a, b, c, d, x[ 4], S11, 0xf57c0faf); 
 
   52   FF(d, a, b, c, x[ 5], S12, 0x4787c62a); 
 
   53   FF(c, d, a, b, x[ 6], S13, 0xa8304613); 
 
   54   FF(b, c, d, a, x[ 7], S14, 0xfd469501); 
 
   55   FF(a, b, c, d, x[ 8], S11, 0x698098d8); 
 
   56   FF(d, a, b, c, x[ 9], S12, 0x8b44f7af); 
 
   57   FF(c, d, a, b, x[10], S13, 0xffff5bb1); 
 
   58   FF(b, c, d, a, x[11], S14, 0x895cd7be); 
 
   59   FF(a, b, c, d, x[12], S11, 0x6b901122); 
 
   60   FF(d, a, b, c, x[13], S12, 0xfd987193); 
 
   61   FF(c, d, a, b, x[14], S13, 0xa679438e); 
 
   62   FF(b, c, d, a, x[15], S14, 0x49b40821); 
 
   65   GG(a, b, c, d, x[ 1], S21, 0xf61e2562); 
 
   66   GG(d, a, b, c, x[ 6], S22, 0xc040b340); 
 
   67   GG(c, d, a, b, x[11], S23, 0x265e5a51); 
 
   68   GG(b, c, d, a, x[ 0], S24, 0xe9b6c7aa); 
 
   69   GG(a, b, c, d, x[ 5], S21, 0xd62f105d); 
 
   70   GG(d, a, b, c, x[10], S22,  0x2441453); 
 
   71   GG(c, d, a, b, x[15], S23, 0xd8a1e681); 
 
   72   GG(b, c, d, a, x[ 4], S24, 0xe7d3fbc8); 
 
   73   GG(a, b, c, d, x[ 9], S21, 0x21e1cde6); 
 
   74   GG(d, a, b, c, x[14], S22, 0xc33707d6); 
 
   75   GG(c, d, a, b, x[ 3], S23, 0xf4d50d87); 
 
   76   GG(b, c, d, a, x[ 8], S24, 0x455a14ed); 
 
   77   GG(a, b, c, d, x[13], S21, 0xa9e3e905); 
 
   78   GG(d, a, b, c, x[ 2], S22, 0xfcefa3f8); 
 
   79   GG(c, d, a, b, x[ 7], S23, 0x676f02d9); 
 
   80   GG(b, c, d, a, x[12], S24, 0x8d2a4c8a); 
 
   83   HH(a, b, c, d, x[ 5], S31, 0xfffa3942); 
 
   84   HH(d, a, b, c, x[ 8], S32, 0x8771f681); 
 
   85   HH(c, d, a, b, x[11], S33, 0x6d9d6122); 
 
   86   HH(b, c, d, a, x[14], S34, 0xfde5380c); 
 
   87   HH(a, b, c, d, x[ 1], S31, 0xa4beea44); 
 
   88   HH(d, a, b, c, x[ 4], S32, 0x4bdecfa9); 
 
   89   HH(c, d, a, b, x[ 7], S33, 0xf6bb4b60); 
 
   90   HH(b, c, d, a, x[10], S34, 0xbebfbc70); 
 
   91   HH(a, b, c, d, x[13], S31, 0x289b7ec6); 
 
   92   HH(d, a, b, c, x[ 0], S32, 0xeaa127fa); 
 
   93   HH(c, d, a, b, x[ 3], S33, 0xd4ef3085); 
 
   94   HH(b, c, d, a, x[ 6], S34,  0x4881d05); 
 
   95   HH(a, b, c, d, x[ 9], S31, 0xd9d4d039); 
 
   96   HH(d, a, b, c, x[12], S32, 0xe6db99e5); 
 
   97   HH(c, d, a, b, x[15], S33, 0x1fa27cf8); 
 
   98   HH(b, c, d, a, x[ 2], S34, 0xc4ac5665); 
 
  101   II(a, b, c, d, x[ 0], S41, 0xf4292244); 
 
  102   II(d, a, b, c, x[ 7], S42, 0x432aff97); 
 
  103   II(c, d, a, b, x[14], S43, 0xab9423a7); 
 
  104   II(b, c, d, a, x[ 5], S44, 0xfc93a039); 
 
  105   II(a, b, c, d, x[12], S41, 0x655b59c3); 
 
  106   II(d, a, b, c, x[ 3], S42, 0x8f0ccc92); 
 
  107   II(c, d, a, b, x[10], S43, 0xffeff47d); 
 
  108   II(b, c, d, a, x[ 1], S44, 0x85845dd1); 
 
  109   II(a, b, c, d, x[ 8], S41, 0x6fa87e4f); 
 
  110   II(d, a, b, c, x[15], S42, 0xfe2ce6e0); 
 
  111   II(c, d, a, b, x[ 6], S43, 0xa3014314); 
 
  112   II(b, c, d, a, x[13], S44, 0x4e0811a1); 
 
  113   II(a, b, c, d, x[ 4], S41, 0xf7537e82); 
 
  114   II(d, a, b, c, x[11], S42, 0xbd3af235); 
 
  115   II(c, d, a, b, x[ 2], S43, 0x2ad7d2bb); 
 
  116   II(b, c, d, a, x[ 9], S44, 0xeb86d391); 
 
static void GG(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac)
 
static void II(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac)
 
static void Decode(uint4 *Dst, uint1 *Src, uint4 Len)
 
static void FF(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac)
 
static void HH(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac)
 
static void MemSet(uint1 *Start, uint1 Val, uint4 Len)