rc4_off
size_t rc4_off = 32-1-(key->ks.x&(32-1)), /* 32 is $MOD from rc4_md5-x86_64.pl */
if (rc4_off > md5_off)
RC4(&key->ks, rc4_off, in, out);
rc4_md5_enc(&key->ks, in + rc4_off, out + rc4_off,
rc4_off += blocks;
rc4_off = 0;
memcpy(out + rc4_off, in + rc4_off,
plen - rc4_off);
RC4(&key->ks, len - rc4_off, out + rc4_off,
out + rc4_off);
RC4(&key->ks, len - rc4_off, in + rc4_off,
out + rc4_off);
if (md5_off > rc4_off)
rc4_off += 2*MD5_CBLOCK;
rc4_off += MD5_CBLOCK;
if (len > rc4_off && (blocks = (len - rc4_off) / MD5_CBLOCK) &&
RC4(&key->ks, rc4_off, in, out);
rc4_md5_enc(&key->ks, in + rc4_off, out + rc4_off,
rc4_off += blocks;
rc4_off = 0;
RC4(&key->ks, len - rc4_off, in + rc4_off, out + rc4_off);