MT Manager v2.15.3版本的 MD5 值为:34ea5286e529d87838c6cae0a2220d93

以下内容为反编译后的 C8301.java 源代码,内容仅作参考


package l;

import java.io.IOException;
import java.util.concurrent.atomic.AtomicInteger;

public final class C8301 implements InterfaceC12978, AutoCloseable {

    public static final AtomicInteger f23066 = new AtomicInteger(1);

    public static final int f23067 = 0;

    public C0238 f23068;

    public InterfaceC14288 f23069;

    public final C2874 f23070;

    public int f23071;

    public InterfaceC2763 f23072;

    public int f23073;

    public int f23074;

    public final int m19269() {
        return this.f23073;
    }

    public final int m19272() {
        return this.f23074;
    }

    @Override
    public final void close() {
        C0238 c0238 = this.f23068;
        this.f23071 = 0;
        try {
            this.f23072.close();
        } finally {
            c0238.close();
        }
    }

    public final String toString() {
        return this.f23070.toString();
    }

    public final int m19270(byte[] bArr, int i, int i2, byte[] bArr2) {
        InterfaceC2763 interfaceC2763 = this.f23072;
        if (interfaceC2763.mo7942()) {
            throw new IOException("DCERPC pipe is no longer open");
        }
        int mo7940 = interfaceC2763.mo7940(i, bArr, i2, bArr2, this.f23073);
        short m12988 = C5196.m12988(8, bArr2);
        if (m12988 > this.f23073) {
            throw new IOException(C5507.m13623("Unexpected fragment length: ", m12988));
        }
        while (mo7940 < m12988) {
            int mo7943 = interfaceC2763.mo7943(mo7940, m12988 - mo7940, bArr2);
            if (mo7943 == 0) {
                throw new IOException("Unexpected EOF");
            }
            mo7940 += mo7943;
        }
        return mo7940;
    }

    public final void m19271(AbstractC4091 abstractC4091) {
        C3997 c3997;
        C1190 mo10743;
        if (this.f23071 == 0) {
            synchronized (this) {
                try {
                    try {
                        this.f23071 = 1;
                        m19271(new C7084(this.f23070, this));
                    } catch (IOException e) {
                        this.f23071 = 0;
                        throw e;
                    }
                } finally {
                }
            }
        }
        byte[] m30467 = this.f23069.mo21761().m30467();
        byte[] m304672 = this.f23069.mo21761().m30467();
        try {
            C3997 c39972 = new C3997(m304672, 0);
            abstractC4091.f11542 = 3;
            abstractC4091.f11541 = f23066.incrementAndGet();
            abstractC4091.mo4607(c39972);
            int m19270 = m19270(m304672, m19267(abstractC4091, m304672, c39972), abstractC4091.f11543, m30467);
            if (m19270 != 0) {
                C3997 c39973 = new C3997(m30467, 0);
                c39973.f11344 = 0;
                c39973.f11343 = c39973;
                c39973.f11341 = 8;
                c39973.f11343.f11344 = c39973.m10561();
                c39973.f11341 = 0;
                abstractC4091.m10740(c39973);
            }
            if (m19270 != 0 && (abstractC4091.f11542 & 2) != 2) {
                c3997 = new C3997(m19268(abstractC4091, m30467), 0);
                abstractC4091.mo4606(c3997);
                this.f23069.mo21761().m30466(m30467);
                this.f23069.mo21761().m30466(m304672);
                mo10743 = abstractC4091.mo10743();
                if (mo10743 == null) {
                    throw mo10743;
                }
                return;
            }
            c3997 = new C3997(m30467, 0);
            abstractC4091.mo4606(c3997);
            this.f23069.mo21761().m30466(m30467);
            this.f23069.mo21761().m30466(m304672);
            mo10743 = abstractC4091.mo10743();
            if (mo10743 == null) {
            }
        } catch (Throwable th) {
            this.f23069.mo21761().m30466(m30467);
            this.f23069.mo21761().m30466(m304672);
            throw th;
        }
    }

    public C8301(String str, InterfaceC14288 interfaceC14288) {
        char[] charArray = str.toCharArray();
        int i = 0;
        char c = 0;
        int i2 = 0;
        String str2 = null;
        C2874 c2874 = null;
        String str3 = null;
        do {
            char c2 = charArray[i];
            if (c != 0) {
                if (c != 1) {
                    if (c != 2) {
                        if (c != 5) {
                            i = charArray.length;
                        } else if (c2 == '=') {
                            str2 = str.substring(i2, i).trim();
                            i2 = i + 1;
                        } else if (c2 == ',' || c2 == ']') {
                            String trim = str.substring(i2, i).trim();
                            int i3 = i + 1;
                            str2 = str2 == null ? "endpoint" : str2;
                            if (c2874 != null) {
                                c2874.m8151(trim, str2);
                            }
                            str2 = null;
                            i2 = i3;
                        }
                    }
                    if (c2 == '[') {
                        String trim2 = str.substring(i2, i).trim();
                        if (trim2.length() == 0) {
                            int indexOf = str.indexOf(91, i + 1);
                            int indexOf2 = str.indexOf(93, i);
                            if (indexOf < 0 || indexOf2 < 0 || indexOf2 != indexOf - 1) {
                                trim2 = "127.0.0.1";
                            } else {
                                trim2 = str.substring(i, indexOf2 + 1);
                                i = indexOf;
                            }
                        }
                        c2874 = new C2874(str3, trim2);
                        i2 = i + 1;
                        c = 5;
                    }
                } else {
                    if (c2 != '\\') {
                        c = 2;
                        if (c2 == '[') {
                        }
                    }
                    i2 = i + 1;
                }
            } else if (c2 == ':') {
                String substring = str.substring(i2, i);
                i2 = i + 1;
                str3 = substring;
                c = 1;
            }
            i++;
        } while (i < charArray.length);
        if (c2874 != null && c2874.m8150() != null) {
            this.f23074 = 4280;
            this.f23073 = 4280;
            this.f23071 = 0;
            this.f23069 = interfaceC14288;
            this.f23070 = c2874;
            String str4 = "smb://" + c2874.m8153() + "/IPC$/" + c2874.m8150().substring(6);
            String str5 = (String) c2874.m8149("server");
            String concat = str5 != null ? "&server=".concat(str5) : "";
            String str6 = (String) c2874.m8149("address");
            concat = str6 != null ? C6116.m14762(concat, "&address=", str6) : concat;
            C0238 c0238 = new C0238(concat.length() > 0 ? C14936.m30963(concat, 1, C8331.m19377(str4, "?")) : str4, interfaceC14288);
            this.f23068 = c0238;
            InterfaceC2763 m1041 = c0238.m1041();
            m1041.mo7939();
            this.f23072 = m1041;
            return;
        }
        throw new IOException("Invalid binding URL: ".concat(str));
    }

    private int m19267(AbstractC4091 abstractC4091, byte[] bArr, C3997 c3997) {
        int i = c3997.f11343.f11344 - 24;
        int i2 = 0;
        while (i2 < i) {
            int i3 = i - i2;
            int i4 = i3 + 24;
            int i5 = this.f23074;
            if (i4 > i5) {
                abstractC4091.f11542 &= -3;
                i3 = i5 - 24;
            } else {
                abstractC4091.f11542 |= 2;
                abstractC4091.f11539 = i3;
            }
            abstractC4091.f11543 = i3 + 24;
            if (i2 > 0) {
                abstractC4091.f11542 &= -2;
            }
            if ((abstractC4091.f11542 & 3) != 3) {
                c3997.f11345 = i2;
                c3997.f11341 = i2;
                c3997.f11344 = 0;
                c3997.f11343 = c3997;
                abstractC4091.m10745(c3997);
                c3997.m10564(abstractC4091.f11539);
                c3997.m10565(0);
                c3997.m10565(abstractC4091.mo10741());
            }
            if ((abstractC4091.f11542 & 2) == 2) {
                return i2;
            }
            int i6 = abstractC4091.f11543;
            InterfaceC2763 interfaceC2763 = this.f23072;
            if (interfaceC2763.mo7942()) {
                throw new IOException("DCERPC pipe is no longer open");
            }
            interfaceC2763.mo7941(i2, i6, bArr);
            i2 += i3;
        }
        throw new IOException();
    }

    private byte[] m19268(AbstractC4091 abstractC4091, byte[] bArr) {
        int i = abstractC4091.f11538 == 2 ? abstractC4091.f11543 : 24;
        int i2 = this.f23073;
        byte[] bArr2 = new byte[i2];
        C3997 c3997 = new C3997(bArr2, 0);
        while ((abstractC4091.f11542 & 2) != 2) {
            if (i2 < this.f23073) {
                throw new IllegalArgumentException("buffer too small");
            }
            InterfaceC2763 interfaceC2763 = this.f23072;
            int mo7943 = interfaceC2763.mo7943(0, i2, bArr2);
            if (bArr2[0] != 5 || bArr2[1] != 0) {
                throw new IOException("Unexpected DCERPC PDU header");
            }
            short m12988 = C5196.m12988(8, bArr2);
            if (m12988 <= this.f23073) {
                while (mo7943 < m12988) {
                    int mo79432 = interfaceC2763.mo7943(mo7943, m12988 - mo7943, bArr2);
                    if (mo79432 == 0) {
                        throw new IOException("Unexpected EOF");
                    }
                    mo7943 += mo79432;
                }
                c3997.f11344 = 0;
                c3997.f11343 = c3997;
                c3997.f11341 = 8;
                c3997.f11343.f11344 = c3997.m10561();
                c3997.f11341 = c3997.f11345;
                c3997.f11344 = 0;
                c3997.f11343 = c3997;
                abstractC4091.m10740(c3997);
                int i3 = abstractC4091.f11543 - 24;
                int i4 = i + i3;
                if (i4 > bArr.length) {
                    byte[] bArr3 = new byte[i4];
                    System.arraycopy(bArr, 0, bArr3, 0, i);
                    bArr = bArr3;
                }
                System.arraycopy(bArr2, 24, bArr, i, i3);
                i = i4;
            } else {
                throw new IOException(C5507.m13623("Unexpected fragment length: ", m12988));
            }
        }
        return bArr;
    }
}