Heroes III HD v1.1.6版本的 MD5 值为:99ed52e2d6b85487933b8dc8c0440b36
以下内容为反编译后的 dh.java 源代码,内容仅作参考
package com.flurry.sdk;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import obfuse.NPStringFog;
public class dh {
private static final String a = dh.class.getSimpleName();
private boolean b;
private List<de> c;
private long d = -1;
public void a(boolean z) {
this.b = z;
}
public boolean a() {
return this.b;
}
public void a(List<de> list) {
this.c = list;
}
public List<de> b() {
return this.c;
}
public void a(long j) {
this.d = j;
}
public long c() {
return this.d;
}
public void a(DataOutputStream dataOutputStream, String str, String str2) throws IOException {
try {
dataOutputStream.writeShort(46586);
dataOutputStream.writeShort(2);
dataOutputStream.writeUTF(str);
dataOutputStream.writeUTF(str2);
dataOutputStream.writeBoolean(this.b);
dataOutputStream.writeLong(this.d);
int size = this.c.size() - 1;
while (true) {
if (size < 0) {
break;
}
byte[] a2 = this.c.get(size).a();
int length = a2.length;
if (length + 2 + dataOutputStream.size() > 50000) {
el.a(6, a, NPStringFog.decode("0A191E020F130300164E0308121D08080B015450") + size);
break;
}
dataOutputStream.writeShort(length);
dataOutputStream.write(a2);
size--;
}
dataOutputStream.writeShort(0);
} finally {
}
}
public boolean a(DataInputStream dataInputStream, String str) throws IOException {
boolean z = false;
try {
int readUnsignedShort = dataInputStream.readUnsignedShort();
el.a(4, a, NPStringFog.decode("23110A080D5B47") + readUnsignedShort);
if (readUnsignedShort == 46586) {
z = a(str, dataInputStream);
} else {
el.a(3, a, NPStringFog.decode("3B1E08191E040411170A500B08020447110B1E15"));
}
return z;
} catch (Throwable th) {
try {
el.a(6, a, NPStringFog.decode("2B021F0E1C41100D170050010E0F050E0B154E0008131D0814111700044D07070D02"), th);
throw new IOException(th.getMessage());
} finally {
fb.a(dataInputStream);
}
}
}
private boolean a(String str, DataInputStream dataInputStream) throws IOException {
int readUnsignedShort = dataInputStream.readUnsignedShort();
el.a(3, a, NPStringFog.decode("281901044E17021701071F035B4E") + readUnsignedShort);
if (readUnsignedShort > 2) {
el.a(6, a, NPStringFog.decode("3B1E060F0116094513091503154E070E09174E0608131D08080B484E") + readUnsignedShort);
throw new IOException(NPStringFog.decode("3B1E060F0116094513091503154E070E09174E0608131D08080B484E") + readUnsignedShort);
} else if (readUnsignedShort >= 2) {
String readUTF = dataInputStream.readUTF();
el.a(3, a, NPStringFog.decode("221F0C05070F0045333E394D0A0B185D45") + a(str));
if (readUTF.equals(str)) {
ArrayList arrayList = new ArrayList();
dataInputStream.readUTF();
boolean readBoolean = dataInputStream.readBoolean();
long readLong = dataInputStream.readLong();
el.a(3, a, NPStringFog.decode("221F0C05070F0045010B031E08010F4717171E1F1F151D"));
int i = 0;
while (true) {
int readUnsignedShort2 = dataInputStream.readUnsignedShort();
if (readUnsignedShort2 != 0) {
byte[] bArr = new byte[readUnsignedShort2];
dataInputStream.readFully(bArr);
arrayList.add(0, new de(bArr));
i++;
el.a(3, a, NPStringFog.decode("3D151E12070E0945000B0002131A410601160B145741") + i);
} else {
el.a(3, a, NPStringFog.decode("3E151F12071213001C1A500B08020447091D0F140805"));
a(readBoolean);
a(readLong);
a(arrayList);
return true;
}
}
} else {
el.a(3, a, NPStringFog.decode("2F00044105041E16520A1F4D0F01154708131A13054D4E0E0B01484E") + a(str) + NPStringFog.decode("42500304195B47") + a(readUTF));
return false;
}
} else {
el.a(5, a, NPStringFog.decode("2A1501041A08090252011C094108080B005218151F12070E095F52") + readUnsignedShort);
return false;
}
}
private static String a(String str) {
if (str != null && str.length() > 4) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length() - 4; i++) {
sb.append('*');
}
sb.append(str.substring(str.length() - 4));
return sb.toString();
}
return str;
}
}