private static final int method2899
	(int i, int i_37_, byte[] is, int[] is_38_, int i_39_, int i_40_,
	 int i_41_, int i_42_, int i_43_, int i_44_, int i_45_, int i_46_,
	 int i_47_, Class348_Sub16_Sub5 class348_sub16_sub5, int i_48_,
	 int i_49_) {
	class348_sub16_sub5.anInt8976 -= class348_sub16_sub5.anInt8973 * i_40_;
	if (i_48_ == 0
	    || (i_45_ = i_40_ + (i_47_ - i_39_ + i_48_ - 257) / i_48_) > i_46_)
	    i_45_ = i_46_;
	i_40_ <<= 1;
	i_45_ <<= 1;
	while (i_40_ < i_45_) {
	    i_37_ = i_39_ >> 8;
	    i = is[i_37_];
	    i = (i << 8) + (is[i_37_ + 1] - i) * (i_39_ & 0xff);
	    is_38_[i_40_++] += i * i_41_ >> 6;
	    i_41_ += i_43_;
	    is_38_[i_40_++] += i * i_42_ >> 6;
	    i_42_ += i_44_;
	    i_39_ += i_48_;
	}
	if (i_48_ == 0
	    || ((i_45_ = (i_40_ >> 1) + (i_47_ - i_39_ + i_48_ - 1) / i_48_)
		> i_46_))
	    i_45_ = i_46_;
	i_45_ <<= 1;
	i_37_ = i_49_;
	while (i_40_ < i_45_) {
	    i = is[i_39_ >> 8];
	    i = (i << 8) + (i_37_ - i) * (i_39_ & 0xff);
	    is_38_[i_40_++] += i * i_41_ >> 6;
	    i_41_ += i_43_;
	    is_38_[i_40_++] += i * i_42_ >> 6;
	    i_42_ += i_44_;
	    i_39_ += i_48_;
	}
	i_40_ >>= 1;
	class348_sub16_sub5.anInt8976 += class348_sub16_sub5.anInt8973 * i_40_;
	class348_sub16_sub5.anInt8970 = i_41_;
	class348_sub16_sub5.anInt8974 = i_42_;
	class348_sub16_sub5.anInt8983 = i_39_;
	return i_40_;
    }