private f a() {
    ++this.j;
    byte[] var1 = this.c.a();
    f var2 = null;

    while (var2 == null) {
      try {
        var2 = new f(this, new de.jarnbjo.a.a.a(var1));
      } catch (ArrayIndexOutOfBoundsException var3) {;
      }
    }

    this.k += (long) var2.a();
    return var2;
  }
  public final int a(byte[] var1, int var2, int var3) {
    Object var4 = this.i;
    synchronized (this.i) {
      if (this.e == null) {
        this.e = this.a();
      }

      if (this.f == null || this.g >= this.h) {
        f var5 = this.a();

        try {
          var5.a(this.e, this.f);
          int var10001 = var5.a();
          r var6 = this.a;
          this.h = var10001 * this.a.a << 1;
        } catch (ArrayIndexOutOfBoundsException var8) {
          return 0;
        }

        this.g = 0;
        this.e = var5;
      }

      int var10 = 0;
      boolean var12 = false;
      int var7 = 0;

      int var11;
      for (var11 = this.g; var11 < this.h && var7 < var3; ++var11) {
        var1[var2 + var7++] = this.f[var11];
        ++var10;
      }

      this.g = var11;
      return var10;
    }
  }