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;
}
}