rem: if (s2 > 56) break;
add: if (s2 > 8) break;
context: void DES_bs_set_key(char *key, int index){	register unsigned char *new = (unsigned char *)key;	register unsigned char *old = DES_bs_all.keys[index];	register ARCH_WORD mask;	register unsigned int xor;	register int ofs, bit, s1, s2;	init_depth();	mask = (ARCH_WORD)1 << index;	ofs = -1;	while ((*new || *old) && ofs < 55) {		if ((xor = *new ^ *old)) {			xor &= 0x7F; /* Note: this might result in xor == 0 */			*old = *new;			bit = ofs;			do {				s1 = DES_bs_all.s1[xor];				s2 = DES_bs_all.s2[xor];				DES_bs_all.K[bit + s1] DEPTH ^= mask;				if (s2 > 56) break; /* Required for xor == 0 */				xor >>= s2;				DES_bs_all.K[bit += s2] DEPTH ^= mask;				if (!xor) break;				s1 = DES_bs_all.s1[xor];				s2 = DES_bs_all.s2[xor];				xor >>= s2;				DES_bs_all.K[bit + s1] DEPTH ^= mask;				DES_bs_all.K[bit += s2] DEPTH ^= mask;			} while (xor);		}		if (*new) new++;		old++;		ofs += 7;	}	DES_bs_all.keys_changed = 1;}