final void write(byte i, int i_1_, int i_2_, byte[] is)
	throws IOException {
	anInt2709++;
	if (i_1_ < 0 || i_2_ < 0
	    || (is.length ^ 0xffffffff) > (i_1_ + i_2_ ^ 0xffffffff))
	    throw new IOException();
	synchronized (this) {
	    if (anIOException2704 != null)
		throw new IOException(anIOException2704.toString());
	    int i_3_;
	    if (anInt2705 <= anInt2713)
		i_3_ = anInt2705 + bufferSize - (anInt2713 - -1);
	    else
		i_3_ = -1 + (-anInt2713 + anInt2705);
	    if (i_3_ < i_1_)
		throw new IOException("");
	    if (i < 4)
		method1527(65);
	    if (i_1_ + anInt2713 > bufferSize) {
		int i_4_ = bufferSize - anInt2713;
		ArrayUtils.arrayCopy(is, i_2_, aByteArray2706, anInt2713, i_4_);
		ArrayUtils.arrayCopy(is, i_2_ - -i_4_, aByteArray2706, 0,
				    -i_4_ + i_1_);
	    } else
		ArrayUtils.arrayCopy(is, i_2_, aByteArray2706, anInt2713, i_1_);
	    anInt2713 = (i_1_ + anInt2713) % bufferSize;
	    this.notifyAll();
	}
    }