public final void run() {
		anInt1963++;
		for (;;) {
			int i;
			synchronized (this) {
				for (;;) {
					if (anIOException1968 != null) {
						return;
					}
					if ((anInt1956 ^ 0xffffffff) == -1) {
						i = -1 + (anInt1957 - anInt1960);
					} else if ((anInt1960 ^ 0xffffffff) <= (anInt1956 ^ 0xffffffff)) {
						i = anInt1957 - anInt1960;
					} else {
						i = -1 + anInt1956 + -anInt1960;
					}
					if ((i ^ 0xffffffff) < -1) {
						break;
					}
					try {
						this.wait();
					} catch (InterruptedException interruptedexception) {
						/* empty */
					}
				}
			}
			int i_4_;
			try {
				i_4_ = anInputStream1965.read(aByteArray1971, anInt1960, i);
				if (i_4_ == -1) {
					throw new EOFException();
				}
			} catch (IOException ioexception) {
				synchronized (this) {
					anIOException1968 = ioexception;
					break;
				}
			}
			synchronized (this) {
				anInt1960 = (i_4_ + anInt1960) % anInt1957;
			}
		}
	}