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