// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 

public final class StreamLoader {

    public StreamLoader(byte abyte0[])
    {
        byte aByte723 = 0;
        int anInt724 = 9;
        int anInt725 = -29508;
        method570(abyte0, aByte723);
    }

    private void method570(byte abyte0[], byte byte0)
    {
        Stream stream = new Stream(abyte0);
        int i = stream.read3Bytes();
        int j = stream.read3Bytes();
        if(j != i)
        {
            byte abyte1[] = new byte[i];
            Class13.method225(abyte1, i, abyte0, j, 6);
            aByteArray726 = abyte1;
            stream = new Stream(aByteArray726);
            aBoolean732 = true;
        } else
        {
            aByteArray726 = abyte0;
            aBoolean732 = false;
        }
        dataSize = stream.readUnsignedWord();
        if(byte0 != 0)
            return;
        anIntArray728 = new int[dataSize];
        anIntArray729 = new int[dataSize];
        anIntArray730 = new int[dataSize];
        anIntArray731 = new int[dataSize];
        int k = stream.currentOffset + dataSize * 10;
        for(int l = 0; l < dataSize; l++)
        {
            anIntArray728[l] = stream.readDWord();
            anIntArray729[l] = stream.read3Bytes();
            anIntArray730[l] = stream.read3Bytes();
            anIntArray731[l] = k;
            k += anIntArray730[l];
        }

    }

    public byte[] getDataForName(String s)
    {
        byte abyte0[] = null; //was a parameter
        int i = 0;
        s = s.toUpperCase();
        for(int j = 0; j < s.length(); j++)
            i = (i * 61 + s.charAt(j)) - 32;

        for(int k = 0; k < dataSize; k++)
            if(anIntArray728[k] == i)
            {
                if(abyte0 == null)
                    abyte0 = new byte[anIntArray729[k]];
                if(!aBoolean732)
                {
                    Class13.method225(abyte0, anIntArray729[k], aByteArray726, anIntArray730[k], anIntArray731[k]);
                } else
                {
                    System.arraycopy(aByteArray726, anIntArray731[k], abyte0, 0, anIntArray729[k]);

                }
                return abyte0;
            }

        return null;
    }

    private byte[] aByteArray726;
    private int dataSize;
    private int[] anIntArray728;
    private int[] anIntArray729;
    private int[] anIntArray730;
    private int[] anIntArray731;
    private boolean aBoolean732;
}
