return 0;
return (BN_ULONG)-1;
BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w)	{	BN_ULONG ret = 0;	int i, j;	bn_check_top(a);	w &= BN_MASK2;	if (!w)		/* actually this an error (division by zero) */		return 0;	if (a->top == 0)		return 0;	/* normalize input (so bn_div_words doesn't complain) */	j = BN_BITS2 - BN_num_bits_word(w);	w <<= j;	if (!BN_lshift(a, a, j))		return 0;	for (i=a->top-1; i>=0; i--)		{		BN_ULONG l,d;				l=a->d[i];		d=bn_div_words(ret,l,w);		ret=(l-((d*w)&BN_MASK2))&BN_MASK2;		a->d[i]=d;		}	if ((a->top > 0) && (a->d[a->top-1] == 0))		a->top--;	ret >>= j;	bn_check_top(a);	return(ret);	}