/*
 * Decompiled with CFR 0.152.
 */
import java.util.Vector;

/*
 * Duplicate member names - consider using --renamedupmembers true
 */
public class fo
implements jb,
Runnable,
nf {
    private volatile boolean r;
    private final Vector A;
    private final ck b;
    private final az h;
    private final fe k;
    private final fe l;
    private final fo m;
    private final Object z;
    public final ds a;
    public final gu c;
    public final fo d;
    public final Object k;
    public final u l;
    private cn c;
    private cn d;
    private eh n;
    private iv o;
    private Thread p;
    private boolean q;
    private int q;
    private int r;
    private boolean s;
    private boolean t;
    private boolean u;
    private le u;
    private int v;
    private int[] v;
    private long w;
    private int x;
    private boolean y;
    public int a;
    public int b;
    public int c;
    public int d;
    public int e;
    public int f;
    public boolean f;
    public int g;
    public int[] g;
    public ck h;
    public String i;
    public String j;

    private static int l() {
        ps ps2 = ps.a();
        return ps2.b - (ps2.g + ps2.h());
    }

    private int j() {
        return 0 + ps.a().i();
    }

    public static boolean a(le le2, ht ht2, int n, int n2, int n3, int n4, int n5, int n6, int n7, int n8) {
        if (n3 != n7 * 2 && n4 != n8 * 2) {
            return false;
        }
        int[] nArray = new int[n7 * n8];
        int[] nArray2 = new int[n3 * n4];
        le2.a(nArray, 0, n7, n5, n6, n7, n8);
        block0: for (int i = 0; i < n8; ++i) {
            n5 = 0;
            int n9 = i * n8;
            n6 = nArray[n9];
            int n10 = i * n3 * 2;
            while (true) {
                int n11 = n6;
                if (n5 >= n7) continue block0;
                n6 = nArray[n9];
                n11 = (((n6 ^ n11) & 0xFFFEFEFE) >> 1) + (n6 & n11);
                int n12 = n5 * 2 + n10;
                nArray2[n12] = n11;
                nArray2[n12 + 1] = n6;
                int n13 = n12 + n3;
                nArray2[n13] = n11;
                nArray2[n13 + 1] = n6;
                ++n5;
                ++n9;
            }
        }
        ht2.a(lh.k().g().a(nArray2, n3, n4, false), n, n2);
        return true;
    }

    public static le a(le le2, int n, int n2, int n3, int n4, int n5, int n6, int n7) {
        if (n == 0 && n2 == 0 && n4 == le2.b() && n3 == le2.a()) {
            if (n3 == n5 * 2 && n4 == n5 * 2 && n7 == 1) {
                n3 = le2.a();
                int n8 = le2.b();
                int[] nArray = new int[n8 * n3];
                n = n8;
                le2.a(nArray, 0, n3, 0, 0, n3, n);
                n2 = 0;
                int n9 = 0;
                n4 = n >> 1;
                n5 = n3 >> 1;
                n = 0;
                int[] nArray2 = new int[n5 * n4];
                while (n < n4) {
                    for (int i = 0; i < n5; ++i) {
                        n6 = n2 + i;
                        n7 = nArray[n6];
                        int n10 = nArray[n6 + 1];
                        int n11 = nArray[n6 + n3];
                        n6 = nArray[n6 + n3 + 1];
                        nArray2[n9 + i] = (n7 & 0xFF0000) + (n10 & 0xFF0000) + (n11 & 0xFF0000) + (n6 & 0xFF0000) >> 2 & 0xFF0000 | (n7 & 0xFF00) + (n10 & 0xFF00) + (n11 & 0xFF00) + (n6 & 0xFF00) >> 2 & 0xFF00 | (n7 & 0xFF) + (n10 & 0xFF) + (n11 & 0xFF) + (n6 & 0xFF) >> 2;
                    }
                    ++n;
                    n2 += n3 << 1;
                    n9 += n5;
                }
                return lh.k().g().a(nArray2, n5, n4, false);
            }
            if (n3 * 2 == n5 && n4 * 2 == n6 && n7 == 0) {
                int n12 = le2.a();
                n3 = n12 << 1;
                n = n12;
                int n13 = le2.b();
                n5 = n13 << 1;
                n4 = n13;
                n2 = 0;
                int[] nArray = new int[(n << 1) * (n4 << 1)];
                le2.a(nArray, 0, n << 2, 0, 0, n, n4);
                for (int i = 0; i < n5; i += 2) {
                    for (n = n3 - 1; n >= 0; n -= 2) {
                        n4 = nArray[n2 + (n >> 1)];
                        int n14 = n2 + n;
                        nArray[n14] = n4;
                        nArray[n14 + -1] = n4;
                    }
                    System.arraycopy(nArray, n2, nArray, n2 + n3, n3);
                    n2 += n3 << 1;
                }
                return lh.k().g().a(nArray, n3, n5, false);
            }
        }
        int n15 = 0;
        int n16 = 0;
        int[] nArray = new int[n5 * n6];
        int[] nArray3 = new int[n3 * n4];
        le2.a(nArray3, 0, n3, n, n2, n3, n4);
        int n17 = (n3 << 16) / n5;
        int n18 = (n4 << 16) / n6;
        while (n16 < n6) {
            int n19;
            int n20;
            int n21;
            n2 = n16 * n5;
            int n22 = 0;
            boolean bl2 = (n7 & 2) != 0;
            if ((n7 & 1) != 0) {
                n21 = n5;
                int n23 = n15;
                int n24 = 1 + (n17 >> 16);
                int n25 = 1 + (0 >> 16);
                int n26 = n24 * n25;
                int n27 = n17 / n24;
                int n28 = 0 / n25;
                while (true) {
                    int n29 = n2;
                    int n30 = n21 + -1;
                    if (n21 > 0) {
                        int n31 = 0;
                        n21 = 0;
                        n2 = 0;
                        int n32 = n23;
                        n20 = 0;
                        for (int i = 0; i < n25; ++i) {
                            n = n22;
                            for (n19 = 0; n19 < n24; ++n19) {
                                int n33 = n >> 16;
                                int n34 = (n32 & 0xFFFF) >> 8;
                                int n35 = n32 >> 16;
                                int n36 = fo.a(nArray3, n3, n4, n33, n35);
                                int n37 = fo.a(nArray3, n3, n4, n33 + 1, n35);
                                int n38 = fo.a(nArray3, n3, n4, n33, n35 + 1);
                                int n39 = (n & 0xFFFF) >> 8;
                                int n40 = (256 - n39) * (256 - n34);
                                int n41 = (256 - n39) * n34;
                                int n42 = n39 * (256 - n34);
                                n34 = n39 * n34;
                                n33 = fo.a(nArray3, n3, n4, n33 + 1, n35 + 1);
                                n31 += (n36 & 0xFF) * n40 + (n38 & 0xFF) * n41 + (n37 & 0xFF) * n42 + (n33 & 0xFF) * n34;
                                n2 += (n36 >> 8 & 0xFF) * n40 + (n38 >> 8 & 0xFF) * n41 + (n37 >> 8 & 0xFF) * n42 + (n33 >> 8 & 0xFF) * n34;
                                n21 += (n36 >> 16 & 0xFF) * n40 + (n38 >> 16 & 0xFF) * n41 + (n37 >> 16 & 0xFF) * n42 + (n33 >> 16 & 0xFF) * n34;
                                if (bl2) {
                                    n20 = (n36 >> 24 & 0xFF) * n40 + (n38 >> 24 & 0xFF) * n41 + (n37 >> 24 & 0xFF) * n42 + (n33 >> 24 & 0xFF) * n34;
                                }
                                n += n27;
                            }
                            n32 += n28;
                        }
                        n19 = n21 / n26 & 0xFF0000 | n2 / n26 >> 8 & 0xFF00 | n31 / n26 >> 16 & 0xFF;
                        n2 = n29 + 1;
                        n = bl2 ? n20 / n26 << 8 & 0xFF000000 : -16777216;
                        n22 += n17;
                        n23 += 0;
                        n21 = n30;
                        nArray[n29] = n | n19;
                        continue;
                    }
                    break;
                }
            } else {
                n21 = n5;
                n = n15;
                while (true) {
                    int n43 = n21;
                    n21 = n43 + -1;
                    if (n43 <= 0) break;
                    n20 = n22 >> 16;
                    n19 = n >> 16;
                    if (n20 >= 0 && n19 >= 0 && n20 < n3 && n19 < n4) {
                        nArray[n2] = nArray3[n20 + n19 * n3];
                        ++n2;
                    }
                    n += 0;
                    n22 += n17;
                }
            }
            ++n16;
            n15 += n18;
        }
        gu gu2 = lh.k().g();
        n = (n7 & 2) == 0 ? 0 : 1;
        return gu2.a(nArray, n5, n6, n != 0);
    }

    public static byte[] a(le le2) {
        int n;
        int n2;
        int n3 = le2.a();
        int n4 = le2.b();
        int[] nArray = new int[n3 * n4];
        le2.a(nArray, 0, n3, 0, 0, n3, n4);
        int[] nArray2 = new int[n3 * n4];
        for (n2 = 0; n2 < n4; ++n2) {
            for (n = 0; n < n3; ++n) {
                nArray2[(n4 - 1 - n2) * n3 + n] = nArray[n2 * n3 + n];
            }
        }
        byte[] byArray = new byte[]{66, 77, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
        byArray[21] = (byte)(n3 >> 24 & 0xFF);
        byArray[20] = (byte)(n3 >> 16 & 0xFF);
        byArray[19] = (byte)(n3 >> 8 & 0xFF);
        byArray[18] = (byte)(n3 & 0xFF);
        byArray[25] = (byte)(n4 >> 24 & 0xFF);
        byArray[24] = (byte)(n4 >> 16 & 0xFF);
        n2 = n3 * 3;
        byArray[23] = (byte)(n4 >> 8 & 0xFF);
        byArray[22] = (byte)(n4 & 0xFF);
        int n5 = n2 % 4 != 0 ? 4 - n2 % 4 : 0;
        n2 = byArray.length + n3 * 3 * n4 + n5 * n4;
        byArray[5] = (byte)(n2 >> 24 & 0xFF);
        byArray[4] = (byte)(n2 >> 16 & 0xFF);
        byArray[3] = (byte)(n2 >> 8 & 0xFF);
        byArray[2] = (byte)(n2 & 0xFF);
        byte[] byArray2 = new byte[n2];
        n2 = byArray.length;
        n4 = 0;
        System.arraycopy(byArray, 0, byArray2, 0, byArray.length);
        for (n = 0; n < nArray2.length; ++n) {
            int n6 = nArray2[n] >> 16 & 0xFF;
            byte by2 = (byte)(nArray2[n] >> 8 & 0xFF);
            byArray2[n2] = (byte)(nArray2[n] & 0xFF);
            int n7 = n2 + 1;
            byArray2[n7] = by2;
            int n8 = n7 + 1;
            byArray2[n8] = n6;
            n2 = n8 + 1;
            if (++n4 != n3 || n5 == 0) continue;
            n4 = 0;
            for (n6 = 0; n6 < n5; ++n6) {
                byArray2[n2] = 0;
                ++n2;
            }
        }
        return byArray2;
    }

    private static int[] a(int[] nArray, int n, int n2, int n3) {
        int n4 = n / n3;
        int n5 = n2 / n3;
        if (n4 != 0 && n5 != 0) {
            int[] nArray2 = new int[n4 * n5];
            for (n2 = 0; n2 < n5; ++n2) {
                int n6 = n2 * n3 * n;
                int n7 = 0;
                int n8 = n2 * n4;
                while (n7 < n4) {
                    ++n7;
                    nArray2[n8] = nArray[n6];
                    ++n8;
                    n6 += n3;
                }
            }
            return nArray2;
        }
        return null;
    }

    private void a(le le2, int[] nArray, int[] nArray2, int n, int n2, int n3, int n4) {
        ht ht2 = le2.c();
        ht2.a(-1);
        ht2.c(0, 0, n3, n4);
        ht2.a(-n, -n2);
        this.b.a(ht2, false, false, false, false);
        ht2.a(n, n2);
        le2.a(nArray, 0, n3, 0, 0, n3, n4);
        for (int i = 0; i < n4 / 2; ++i) {
            int n5 = i * 2 * n3;
            int n6 = (n2 / 2 + i) * n3 + n / 2;
            for (int k = 0; k < n3 / 2; ++k) {
                nArray2[n6 + k] = nArray[n5 + k * 2];
            }
        }
    }

    /*
     * Enabled aggressive block sorting
     */
    public static le a(le le2, int n) {
        int n2;
        int n3;
        block9: {
            block8: {
                int n4 = le2.a();
                int n5 = le2.b();
                if (n4 == n && n5 == n) break block8;
                if (n4 == n5) {
                    return le2.a(n, n);
                }
                if (n4 > n5) {
                    n3 = n;
                    n2 = (int)((float)n5 * ((float)n / (float)n4));
                } else {
                    n2 = n;
                    n3 = (int)((float)n4 * ((float)n / (float)n5));
                }
                le2 = le2.a(n3, n2);
                n3 = le2.a();
                n2 = le2.b();
                if (n != n3 || n != n2) break block9;
            }
            return le2;
        }
        if (n3 <= n2) {
            n2 = 0;
            n3 = (n - n3) / 2;
        } else {
            n3 = 0;
            n2 = (n - n2) / 2;
        }
        le le3 = lh.k().g().a(n, n);
        ht ht2 = le3.c();
        ht2.a(-1);
        ht2.c(0, 0, n, n);
        ht2.a(le2, n3, n2);
        return le3;
    }

    /*
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    private boolean a(cn cn2, lh lh2) {
        le le2;
        block15: {
            int n;
            int[] nArray;
            int n2;
            int n3;
            block14: {
                block16: {
                    this.w = System.currentTimeMillis() + (long)1200;
                    if (cn2 == null || cn2.b > this.b.e(this.b.d())) break block16;
                    this.c = cn2;
                    if (this.n()) {
                        this.b.a(this.c);
                        return true;
                    }
                    if (!this.m()) return true;
                    if (this.g == null && this.b.c() == this.d && this.d.b() != null) {
                        try {
                            n3 = (this.b.i + 1) / 2;
                            n2 = (this.b.e + 1) / 2;
                            le2 = lh.k().g().a(n3, n2);
                            nArray = new int[n3 * n2];
                            int[] nArray2 = new int[n3 * n2];
                            this.a(le2, nArray, nArray2, 0, 0, n3, n2);
                            this.a(le2, nArray, nArray2, n3, 0, n3, n2);
                            this.a(le2, nArray, nArray2, 0, n2, n3, n2);
                            this.a(le2, nArray, nArray2, n3, n2, n3, n2);
                            n = this.d.b().a(this.d);
                            if (n > 2) {
                                this.g = fo.a(nArray2, n3, n2, n / 2);
                                break block14;
                            }
                            this.g = nArray2;
                        }
                        catch (OutOfMemoryError outOfMemoryError) {
                            this.g = null;
                        }
                    }
                    break block14;
                }
                if (lh2 == null) return false;
                lh2.a(lh.d(332), 2);
                return false;
            }
            this.b.a(this.c);
            cn2 = this.d;
            cn cn3 = this.c;
            try {}
            catch (OutOfMemoryError outOfMemoryError) {
                le2 = null;
                this.g = null;
                System.gc();
                break block15;
            }
            if (cn2.b(cn3) && this.g != null) {
                cn cn4 = cn2.b();
                if (cn4.b(cn3)) {
                    n3 = this.b.i / cn4.a(cn2);
                    n2 = this.b.e / cn4.a(cn2);
                    n = cn3.a(cn4);
                    nArray = fo.a(this.g, n3, n2, n);
                } else {
                    nArray = this.g;
                }
                if (nArray != null) {
                    n3 = this.b.i / cn3.a(cn2);
                    n2 = this.b.e / cn3.a(cn2);
                    le2 = lh.k().g().a(nArray, n3, n2, false);
                } else {
                    le2 = null;
                }
            } else {
                le2 = null;
            }
        }
        this.u = le2;
        return true;
    }

    /*
     * Unable to fully structure code
     */
    public void a(ht var1_1) {
        if (!this.y || !this.m() || this.n()) ** GOTO lbl20
        var2_2 = this.b.b(this.o);
        var3_3 = this.c.a(this.d);
        if (var3_3 <= 0) ** GOTO lbl20
        var4_4 = this.b.i / var3_3;
        var3_3 = this.b.e / var3_3;
        var2_2.a -= var4_4 / 2;
        var2_2.b -= var3_3 / 2;
        if (this.y && this.u) {
            if (var2_2.a <= this.b.i && var2_2.a + var4_4 >= 0 && var2_2.b <= this.b.e && var2_2.b + var3_3 >= 0) {
                var5_5 = this.o.a(-var4_4 / 2, -var3_3 / 2, this.c);
                var6_6 = this.o.a(var4_4 / 2, var3_3 / 2, this.c);
                if (this.b.a(this.o, true) && this.b.a(var5_5, true) && this.b.a(var6_6, true)) {
                    this.u = null;
                    this.g = null;
                    return;
                } else {
                    ** GOTO lbl-1000
                }
            }
        } else lbl-1000:
        // 3 sources

        {
            if (this.u != null) {
                var1_1.a(this.u, var2_2.a, var2_2.b);
            }
lbl20:
            // 5 sources

            return;
        }
        this.u = null;
        this.g = null;
    }

    /*
     * Exception decompiling
     */
    public void run() {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Back jump on a try block [egrp 2[TRYBLOCK] [3 : 59->2127)] java.lang.Throwable
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op02WithProcessedDataAndRefs.insertExceptionBlocks(Op02WithProcessedDataAndRefs.java:2283)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:415)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    public final void k() {
        boolean bl2;
        Object object = this.k;
        synchronized (object) {
            bl2 = this.p != null && this.p.isAlive();
        }
        if (bl2 && !this.v()) {
            this.g();
        }
    }

    private void l() {
        Object object = this.k;
        synchronized (object) {
            if (!this.f) {
                this.m.a(this.b, this.c);
            } else {
                this.m.a(this.d, this.e);
            }
            Object object2 = this.k;
            synchronized (object2) {
                this.s = true;
                this.o();
            }
            return;
        }
    }

    private boolean v() {
        Object object = this.k;
        synchronized (object) {
            if (this.h != null) {
                this.h.f.d();
            }
            this.l.a(this);
            if (!this.l.a) {
                if (!this.l.e() && this.f) {
                    this.x();
                    this.d(false);
                }
                return true;
            }
            this.w();
            return false;
        }
    }

    public final boolean d(boolean bl2) {
        Object object = this.k;
        synchronized (object) {
            if (this.f == bl2) {
                bl2 = this.f;
                return bl2;
            }
            if (bl2 && !this.l.e()) {
                this.x();
                return false;
            }
            gu.b(bl2);
            this.f = bl2;
            this.l();
            bl2 = this.f;
            return bl2;
        }
    }

    public boolean b(boolean bl2) {
        Object object = this.k;
        synchronized (object) {
            if (!this.e(bl2)) {
                return false;
            }
            if (this.e()) {
                return false;
            }
            gu.a(bl2, 1);
            String string = this.a(bl2);
            this.n = new eh((jb)this, string);
            this.n.e();
            this.n.a(0);
            this.n.j();
            return true;
        }
    }

    public final void a(String string, iv iv2) {
        Object object = this.k;
        synchronized (object) {
            this.o = iv2;
            this.a(new eh((jb)this, string));
            return;
        }
    }

    public final void a(iv iv2, int n) {
        Object object = this.k;
        synchronized (object) {
            this.g = n;
            this.a(new eh((jb)this, iv2));
            return;
        }
    }

    public final void b(eh eh2) {
        if (!this.q) {
            Object object = this.k;
            synchronized (object) {
                this.A.addElement(eh2);
                this.o();
                return;
            }
        }
    }

    public final void b(int n) {
        Object object = this.z;
        synchronized (object) {
            this.y();
            this.x += n;
            this.s = true;
            return;
        }
    }

    public final void g() {
        if (this.p != null) {
            this.q = true;
            this.o();
            try {
                this.p.join();
            }
            catch (InterruptedException interruptedException) {}
            this.p = null;
            this.h = null;
            this.n = null;
        }
    }

    public final void a(eh eh2) {
        this.h = null;
        this.n = eh2;
        this.n.e();
        this.n.a(0);
        this.n.j();
        this.p = new Thread(this);
        this.p.start();
        try {
            this.k.wait();
            return;
        }
        catch (InterruptedException interruptedException) {
            return;
        }
    }

    public fo(ck ck2) {
        this.b = ck2;
        this.c = ck2.c();
        nz.a(this);
        if (lh.t()) {
            this.k = new fe(this.j(), fo.l(), '\ued2f', '\ued30');
            this.l = new fe(fo.k(), fo.l(), '\ued31', '\ued32');
            return;
        }
        this.l = null;
        this.k = null;
    }

    public void f() {
        if (lh.t()) {
            ps ps2 = ps.a();
            this.k.d(this.j(), fo.l(), ps2.i(), ps2.h());
            this.l.d(0, fo.l(), ps2.i(), ps2.h());
        }
    }

    public void v() {
        if (lh.t()) {
            this.l.a();
            this.k.a();
        }
    }

    public final void j() {
        if (!this.t) {
            this.t = true;
            this.o();
        }
    }

    public void aa() {
        if (this.y) {
            this.q();
            this.y = false;
            this.f = false;
            this.ab();
        }
    }

    private void y() {
        if (this.y) {
            this.y = false;
            gu.z();
        }
    }

    private void u() {
        if (!this.y || this.u) {
            this.ab();
            this.y = true;
            this.o = this.b.d();
            this.c = this.d = this.b.c();
        }
        this.f = true;
        this.u = false;
        this.w = System.currentTimeMillis() + (long)1200;
    }

    public void z() {
        if (this.y && !this.u) {
            this.w = System.currentTimeMillis() + (long)1200;
        }
    }

    public boolean d() {
        if (this.y) {
            if (!this.u) {
                if (System.currentTimeMillis() > this.w) {
                    if (this.m()) {
                        this.q();
                    } else {
                        this.aa();
                    }
                    this.u = true;
                    return true;
                }
            } else if (this.u == null) {
                this.y = false;
                this.f = false;
                this.ab();
            }
        }
        return false;
    }

    public final void a(int n) {
        if (n != 0) {
            this.y();
            n = n < 0 ? -512 : 512;
            if (n != this.v) {
                this.w = System.currentTimeMillis();
                this.v = n;
                this.o();
            }
            return;
        }
        this.v = 0;
    }

    public void a(int n, int n2) {
        if ((n &= 0xFFFFFFFE) != this.a || (n2 &= 0xFFFFFFFE) != this.c) {
            this.a = n;
            this.c = n2;
            this.g = null;
            System.gc();
            this.g = new int[n * n2];
        }
    }

    public final void a(int n, int n2, int n3, int n4) {
        Object object = this.k;
        synchronized (object) {
            this.b = n & 0xFFFFFFFE;
            this.c = n2 & 0xFFFFFFFE;
            this.d = n3 & 0xFFFFFFFE;
            this.e = n4 & 0xFFFFFFFE;
            this.l();
            return;
        }
    }

    private void o() {
        Object object = this.k;
        synchronized (object) {
            this.k.notify();
            return;
        }
    }

    /*
     * Exception decompiling
     */
    public boolean a(nj var1_1, lh var2_2) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Extractable last case doesn't follow previous, and can't clone.
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters.SwitchReplacer.examineSwitchContiguity(SwitchReplacer.java:611)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.op3rewriters.SwitchReplacer.replaceRawSwitches(SwitchReplacer.java:94)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:517)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    public boolean a(boolean bl2, lh lh2) {
        this.u();
        cn cn2 = !bl2 ? this.c.a() : this.c.b();
        return this.a(cn2, lh2);
    }

    public void b(ht ht2) {
        if (lh.t()) {
            if (lh.t()) {
                cn cn2 = this.c != null ? this.c : this.b.c();
                if (cn2.a() != null && cn2.b < this.b.e(this.b.d())) {
                    this.a(true);
                } else {
                    this.a(false);
                }
                if (cn2.b() != null) {
                    this.b(true);
                } else {
                    this.b(false);
                }
            }
            this.k.a(ht2, 0, 0);
            this.l.a(ht2, 0, 0);
        }
    }

    public static int a(ht ht2, ck ck2, int n, int n2, int n3, int n4, int n5, int n6, boolean bl2) {
        int n7;
        int n8;
        int n9;
        int n10 = ck2.a(n5);
        jt jt2 = ck2.f;
        int n11 = ck2.a(n5);
        int n12 = fo.a(n11 * (n6 - ck2.e + 32768 & 0xFFFF) >> 16, n11);
        n6 = ck2.b(n5) >> 1;
        int n13 = 64 - (n10 - 1) % 64 - 1;
        int n14 = n10 + n13;
        int n15 = ck2.e(n5);
        if (ht2 != null) {
            ht2.a(0, 0, n3, n4);
            ht2.a(0);
            ht2.c(0, 0, n3, n4);
        }
        if ((n9 = n6 + n2) >= 0) {
            n8 = -(n9 % 64);
        } else {
            n8 = -n9;
            n9 = 0;
        }
        n6 = 1;
        boolean bl3 = false;
        n10 = fo.a(n12 + n, n10);
        n12 = -(n10 % 64);
        bl2 = ht2 != null && bl2;
        while (n8 < n4 && (n7 = n9 >> 6) < n15) {
            n = n12;
            n2 = n10;
            while (n < n3) {
                le le2;
                int n16 = n2 >> 6;
                if (!jt2.a(n5, n16, n7, true)) {
                    n6 &= 0;
                } else {
                    bl3 |= true;
                }
                if (ht2 != null && (le2 = jt2.b(n5, n16, n7, bl2)) != null) {
                    ht2.a(le2, n, n8);
                }
                n += 64;
                if ((n2 += 64) < n14) continue;
                n2 = 0;
                n -= n13;
            }
            n9 += 64;
            n8 += 64;
        }
        if (n6 == 0) {
            if (bl3) {
                return 1;
            }
            return 2;
        }
        return 0;
    }

    private static int a(int[] nArray, int n, int n2, int n3, int n4) {
        if (n3 >= 0) {
            if (n3 >= n) {
                n3 = n - 1;
            }
        } else {
            n3 = 0;
        }
        if (n4 >= 0) {
            if (n4 >= n2) {
                n4 = n2 - 1;
            }
        } else {
            n4 = 0;
        }
        return nArray[n3 + n4 * n];
    }

    public void a(ck ck2, boolean bl2) {
        if (bl2 && this.o != null) {
            iv iv2 = this.o;
            iv iv3 = this.h.c;
            this.g = gu.b(iv2.b - iv3.b, iv2.a - iv3.a);
        }
    }

    private boolean n() {
        iv iv2 = this.o.a(-this.b.i / 2, -this.b.e / 2, this.c);
        iv iv3 = this.o.a(this.b.i / 2, this.b.e / 2, this.c);
        return this.b.a(this.o, true) && this.b.a(iv2, true) && this.b.a(iv3, true);
    }

    private boolean t() {
        return !this.e() && this.h != null && this.h.f.a(this);
    }

    public final boolean e(boolean bl2) {
        return this.a(bl2) != null;
    }

    public final boolean e() {
        return this.n != null;
    }

    public void a(ht ht2, int n, int n2, int n3, int n4, boolean bl2, int n5, boolean bl3) {
        if (bl3) {
            ps.a().a(ht2, n += n3 / 2, n2 += n4 - n4 / 6, 0, bl2);
        }
    }

    public String a(boolean bl2) {
        gu gu2;
        int n = this.g;
        if (!bl2) {
            n += 32768;
        }
        if ((gu2 = this.h.f(n)) != null) {
            return gu2.b;
        }
        return null;
    }

    private static int a(int n, int n2) {
        while (n < 0) {
            n += n2;
        }
        while (n >= n2) {
            n -= n2;
        }
        return n;
    }

    private static void a(le le2, int[] nArray) {
        int n = le2.a();
        le2.a(nArray, 0, n, 0, 0, n, le2.b());
    }

    private void c(int n) {
        this.x = n;
        this.e = az.a(n);
        this.v = (this.h.d >> this.e) + 1;
        this.g = (this.h.e >> this.e) + 1;
    }

    public fo(ds ds2, int n) {
        this.k = new Object();
        this.z = new Object();
        this.A = new Vector();
        this.a = ds2;
        this.l = u.a();
        this.m = new fo(this, n);
        this.f = false;
        this.g = 0;
        this.b = 0;
        this.c = 0;
        this.d = 0;
        this.e = 0;
    }

    public fo(fo fo2) {
        this.c = lh.k().g();
        this.d = fo2;
        this.l = u.a();
    }

    private void a(boolean bl2) {
        this.k.a = bl2;
    }

    private void b(boolean bl2) {
        this.l.a = bl2;
    }

    private void x() {
        this.a.b(lh.d(322));
    }

    private void w() {
        this.a.a(lh.d(323));
    }

    private void q() {
        this.f = false;
        this.b.a(this.c);
    }

    public final void i() {
        this.r = false;
        this.o();
    }

    public final void h() {
        this.r = true;
    }

    public void af() {
        this.g = null;
        this.u = null;
    }

    private void ab() {
        this.u = null;
        this.c = null;
        this.o = null;
        this.d = null;
        this.g = null;
    }

    public void e() {
        nz.b(this);
    }

    public String b() {
        return this.j;
    }

    public String c() {
        return null;
    }

    public boolean a() {
        return false;
    }

    private static int k() {
        return 0;
    }

    private boolean m() {
        return this.d.b(this.c);
    }

    private void r() {
        try {
            this.k.wait(100);
            return;
        }
        catch (InterruptedException interruptedException) {
            return;
        }
    }

    public fo(fo fo2, int n) {
        this(fo2);
        this.h = new az(n);
    }

    public boolean a(int n, lh lh2) {
        this.u();
        return this.a(cn.b(n), lh2);
    }
}

