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

import java.math.BigInteger;
import sign.signlink;

public class Class31_Sub3_Sub2 extends Class31_Sub3
{

    public static Class31_Sub3_Sub2 method410(int i, int j)
    {
        synchronized(aClass28_1449)
        {
            Class31_Sub3_Sub2 class31_sub3_sub2_2 = null;
            if(j == 0 && anInt1445 > 0)
            {
                anInt1445--;
                class31_sub3_sub2_2 = (Class31_Sub3_Sub2)aClass28_1448.method327();
            } else
            if(j == 1 && anInt1446 > 0)
            {
                anInt1446--;
                class31_sub3_sub2_2 = (Class31_Sub3_Sub2)aClass28_1449.method327();
            } else
            if(j == 2 && anInt1447 > 0)
            {
                anInt1447--;
                class31_sub3_sub2_2 = (Class31_Sub3_Sub2)aClass28_1450.method327();
            }
            if(class31_sub3_sub2_2 != null)
            {
                class31_sub3_sub2_2.anInt1440 = 0;
                Class31_Sub3_Sub2 class31_sub3_sub2 = class31_sub3_sub2_2;
                return class31_sub3_sub2;
            }
        }
        Class31_Sub3_Sub2 class31_sub3_sub2_1 = new Class31_Sub3_Sub2(false);
        class31_sub3_sub2_1.anInt1440 = 0;
        if(i >= 0)
        {
            for(int k = 1; k > 0; k++);
        }
        if(j == 0)
            class31_sub3_sub2_1.aByteArray1439 = new byte[100];
        else
        if(j == 1)
            class31_sub3_sub2_1.aByteArray1439 = new byte[5000];
        else
            class31_sub3_sub2_1.aByteArray1439 = new byte[30000];
        return class31_sub3_sub2_1;
    }

    public Class31_Sub3_Sub2(boolean flag)
    {
        aBoolean1422 = true;
        aByte1423 = 8;
        anInt1424 = -565;
        anInt1425 = -778;
        anInt1426 = 558;
        aByte1427 = 0;
        aByte1428 = 1;
        aByte1429 = 2;
        anInt1430 = 1;
        aBoolean1431 = false;
        anInt1432 = -324;
        anInt1433 = 5;
        anInt1434 = -308;
        aBoolean1435 = true;
        anInt1436 = 3169;
        aBoolean1437 = false;
        anInt1438 = 7;
        if(flag)
            anInt1438 = -485;
    }

    public Class31_Sub3_Sub2(byte byte0, byte abyte0[])
    {
        aBoolean1422 = true;
        aByte1423 = 8;
        anInt1424 = -565;
        anInt1425 = -778;
        anInt1426 = 558;
        aByte1427 = 0;
        aByte1428 = 1;
        aByte1429 = 2;
        anInt1430 = 1;
        aBoolean1431 = false;
        anInt1432 = -324;
        anInt1433 = 5;
        anInt1434 = -308;
        aBoolean1435 = true;
        anInt1436 = 3169;
        aBoolean1437 = false;
        anInt1438 = 7;
        aByteArray1439 = abyte0;
        anInt1440 = 0;
        if(byte0 != 114)
            anInt1438 = 229;
    }

    public void method411(int i, int j)
    {
        if(i != 7793)
            aBoolean1437 = !aBoolean1437;
        aByteArray1439[anInt1440++] = (byte)(j + aClass24_1444.method288());
    }

    public void method412(int i)
    {
        aByteArray1439[anInt1440++] = (byte)i;
    }

    public void method413(int i)
    {
        aByteArray1439[anInt1440++] = (byte)(i >> 8);
        aByteArray1439[anInt1440++] = (byte)i;
    }

    public void method414(boolean flag, int i)
    {
        if(!flag)
            aBoolean1422 = !aBoolean1422;
        aByteArray1439[anInt1440++] = (byte)i;
        aByteArray1439[anInt1440++] = (byte)(i >> 8);
    }

    public void method415(int i)
    {
        aByteArray1439[anInt1440++] = (byte)(i >> 16);
        aByteArray1439[anInt1440++] = (byte)(i >> 8);
        aByteArray1439[anInt1440++] = (byte)i;
    }

    public void method416(int i)
    {
        aByteArray1439[anInt1440++] = (byte)(i >> 24);
        aByteArray1439[anInt1440++] = (byte)(i >> 16);
        aByteArray1439[anInt1440++] = (byte)(i >> 8);
        aByteArray1439[anInt1440++] = (byte)i;
    }

    public void method417(int i, int j)
    {
        aByteArray1439[anInt1440++] = (byte)i;
        aByteArray1439[anInt1440++] = (byte)(i >> 8);
        aByteArray1439[anInt1440++] = (byte)(i >> 16);
        if(j < 6 || j > 6)
        {
            return;
        } else
        {
            aByteArray1439[anInt1440++] = (byte)(i >> 24);
            return;
        }
    }

    public void method418(long l, byte byte0)
    {
        try
        {
            aByteArray1439[anInt1440++] = (byte)(int)(l >> 56);
            if(byte0 != 56)
            {
                return;
            } else
            {
                aByteArray1439[anInt1440++] = (byte)(int)(l >> 48);
                aByteArray1439[anInt1440++] = (byte)(int)(l >> 40);
                aByteArray1439[anInt1440++] = (byte)(int)(l >> 32);
                aByteArray1439[anInt1440++] = (byte)(int)(l >> 24);
                aByteArray1439[anInt1440++] = (byte)(int)(l >> 16);
                aByteArray1439[anInt1440++] = (byte)(int)(l >> 8);
                aByteArray1439[anInt1440++] = (byte)(int)l;
                return;
            }
        }
        catch(RuntimeException runtimeexception)
        {
            signlink.reporterror("92670, " + l + ", " + byte0 + ", " + runtimeexception.toString());
        }
        throw new RuntimeException();
    }

    public void method419(String s)
    {
        s.getBytes(0, s.length(), aByteArray1439, anInt1440);
        anInt1440 += s.length();
        aByteArray1439[anInt1440++] = 10;
    }

    public void method420(int i, byte abyte0[], int j, int k)
    {
        if(j != -21870)
            anInt1438 = -315;
        for(int l = i; l < i + k; l++)
            aByteArray1439[anInt1440++] = abyte0[l];

    }

    public void method421(int i, int j)
    {
        aByteArray1439[anInt1440 - i - 1] = (byte)i;
        if(j < 8 || j > 8)
            anInt1434 = 488;
    }

    public int method422()
    {
        return aByteArray1439[anInt1440++] & 0xff;
    }

    public byte method423()
    {
        return aByteArray1439[anInt1440++];
    }

    public int method424()
    {
        anInt1440 += 2;
        return ((aByteArray1439[anInt1440 - 2] & 0xff) << 8) + (aByteArray1439[anInt1440 - 1] & 0xff);
    }

    public int method425()
    {
        anInt1440 += 2;
        int i = ((aByteArray1439[anInt1440 - 2] & 0xff) << 8) + (aByteArray1439[anInt1440 - 1] & 0xff);
        if(i > 32767)
            i -= 0x10000;
        return i;
    }

    public int method426()
    {
        anInt1440 += 3;
        return ((aByteArray1439[anInt1440 - 3] & 0xff) << 16) + ((aByteArray1439[anInt1440 - 2] & 0xff) << 8) + (aByteArray1439[anInt1440 - 1] & 0xff);
    }

    public int method427()
    {
        anInt1440 += 4;
        return ((aByteArray1439[anInt1440 - 4] & 0xff) << 24) + ((aByteArray1439[anInt1440 - 3] & 0xff) << 16) + ((aByteArray1439[anInt1440 - 2] & 0xff) << 8) + (aByteArray1439[anInt1440 - 1] & 0xff);
    }

    public long method428(boolean flag)
    {
        if(!flag)
            aBoolean1422 = !aBoolean1422;
        long l = (long)method427() & 0xffffffffL;
        long l1 = (long)method427() & 0xffffffffL;
        return (l << 32) + l1;
    }

    public String method429()
    {
        int i = anInt1440;
        while(aByteArray1439[anInt1440++] != 10) ;
        return new String(aByteArray1439, i, anInt1440 - i - 1);
    }

    public byte[] method430(byte byte0)
    {
        int i = anInt1440;
        while(aByteArray1439[anInt1440++] != 10) ;
        byte abyte0[] = new byte[anInt1440 - i - 1];
        if(byte0 == 0)
            byte0 = 0;
        else
            throw new NullPointerException();
        for(int j = i; j < anInt1440 - 1; j++)
            abyte0[j - i] = aByteArray1439[j];

        return abyte0;
    }

    public void method431(byte abyte0[], int i, int j, int k)
    {
        if(i < 1 || i > 1)
            return;
        for(int l = j; l < j + k; l++)
            abyte0[l] = aByteArray1439[anInt1440++];

    }

    public void method432(int i)
    {
        if(i != -604)
            anInt1433 = -122;
        anInt1441 = anInt1440 * 8;
    }

    public int method433(int i, byte byte0)
    {
        int j = anInt1441 >> 3;
        int k = 8 - (anInt1441 & 7);
        int l = 0;
        anInt1441 += i;
        if(byte0 != -50)
            aBoolean1422 = !aBoolean1422;
        for(; i > k; k = 8)
        {
            l += (aByteArray1439[j++] & anIntArray1443[k]) << i - k;
            i -= k;
        }

        if(i == k)
            l += aByteArray1439[j] & anIntArray1443[k];
        else
            l += aByteArray1439[j] >> k - i & anIntArray1443[i];
        return l;
    }

    public void method434(boolean flag)
    {
        anInt1440 = (anInt1441 + 7) / 8;
        if(!flag)
            aBoolean1422 = !aBoolean1422;
    }

    public int method435()
    {
        int i = aByteArray1439[anInt1440] & 0xff;
        if(i < 128)
            return method422() - 64;
        else
            return method424() - 49152;
    }

    public int method436()
    {
        int i = aByteArray1439[anInt1440] & 0xff;
        if(i < 128)
            return method422();
        else
            return method424() - 32768;
    }

    public void method437(BigInteger biginteger, BigInteger biginteger1, boolean flag)
    {
        int i = anInt1440;
        anInt1440 = 0;
        byte abyte0[] = new byte[i];
        method431(abyte0, 1, 0, i);
        BigInteger biginteger2 = new BigInteger(abyte0);
        BigInteger biginteger3 = biginteger2/*.modPow(biginteger, biginteger1)*/;
        byte abyte1[] = biginteger3.toByteArray();
        anInt1440 = 0;
        method412(abyte1.length);
        if(flag)
            anInt1438 = 206;
        method420(0, abyte1, -21870, abyte1.length);
    }

    public void method438(int i, int j)
    {
        aByteArray1439[anInt1440++] = (byte)(-j);
        if(i != 0)
            aBoolean1437 = !aBoolean1437;
    }

    public void method439(int i, int j)
    {
        aByteArray1439[anInt1440++] = (byte)(128 - i);
        if(j < 4 || j > 4)
            aBoolean1435 = !aBoolean1435;
    }

    public int method440(byte byte0)
    {
        if(byte0 != 104)
            return anInt1438;
        else
            return aByteArray1439[anInt1440++] - 128 & 0xff;
    }

    public int method441(boolean flag)
    {
        if(flag)
            aBoolean1435 = !aBoolean1435;
        return -aByteArray1439[anInt1440++] & 0xff;
    }

    public int method442(int i)
    {
        if(i != -13491)
            anInt1436 = 448;
        return 128 - aByteArray1439[anInt1440++] & 0xff;
    }

    public byte method443(boolean flag)
    {
        if(flag)
            throw new NullPointerException();
        else
            return (byte)(aByteArray1439[anInt1440++] - 128);
    }

    public byte method444(byte byte0)
    {
        if(byte0 != 87)
            throw new NullPointerException();
        else
            return (byte)(-aByteArray1439[anInt1440++]);
    }

    public void method445(int i, boolean flag)
    {
        aByteArray1439[anInt1440++] = (byte)i;
        if(flag)
        {
            return;
        } else
        {
            aByteArray1439[anInt1440++] = (byte)(i >> 8);
            return;
        }
    }

    public void method446(int i, byte byte0)
    {
        aByteArray1439[anInt1440++] = (byte)(i >> 8);
        aByteArray1439[anInt1440++] = (byte)(i + 128);
        if(byte0 != aByte1428)
        {
            for(int j = 1; j > 0; j++);
        }
    }

    public void method447(int i, int j)
    {
        aByteArray1439[anInt1440++] = (byte)(j + 128);
        if(i < 6 || i > 6)
            aBoolean1435 = !aBoolean1435;
        aByteArray1439[anInt1440++] = (byte)(j >> 8);
    }

    public int method448(byte byte0)
    {
        if(byte0 != 56)
        {
            return 1;
        } else
        {
            anInt1440 += 2;
            return ((aByteArray1439[anInt1440 - 1] & 0xff) << 8) + (aByteArray1439[anInt1440 - 2] & 0xff);
        }
    }

    public int method449(int i)
    {
        if(i != -30785)
        {
            return anInt1426;
        } else
        {
            anInt1440 += 2;
            return ((aByteArray1439[anInt1440 - 2] & 0xff) << 8) + (aByteArray1439[anInt1440 - 1] - 128 & 0xff);
        }
    }

    public int method450(boolean flag)
    {
        anInt1440 += 2;
        if(!flag)
            return 4;
        else
            return ((aByteArray1439[anInt1440 - 1] & 0xff) << 8) + (aByteArray1439[anInt1440 - 2] - 128 & 0xff);
    }

    public int method451(int i)
    {
        if(i != 0)
            aBoolean1437 = !aBoolean1437;
        anInt1440 += 2;
        int j = ((aByteArray1439[anInt1440 - 1] & 0xff) << 8) + (aByteArray1439[anInt1440 - 2] & 0xff);
        if(j > 32767)
            j -= 0x10000;
        return j;
    }

    public int method452(byte byte0)
    {
        anInt1440 += 2;
        int i = ((aByteArray1439[anInt1440 - 2] & 0xff) << 8) + (aByteArray1439[anInt1440 - 1] - 128 & 0xff);
        if(byte0 != 1)
            anInt1436 = 50;
        if(i > 32767)
            i -= 0x10000;
        return i;
    }

    public int method453(int i)
    {
        anInt1440 += 2;
        if(i != 0)
            return anInt1425;
        int j = ((aByteArray1439[anInt1440 - 1] & 0xff) << 8) + (aByteArray1439[anInt1440 - 2] - 128 & 0xff);
        if(j > 32767)
            j -= 0x10000;
        return j;
    }

    public void method454(int i, byte byte0)
    {
        if(byte0 == aByte1429)
            byte0 = 0;
        else
            aBoolean1437 = !aBoolean1437;
        aByteArray1439[anInt1440++] = (byte)i;
        aByteArray1439[anInt1440++] = (byte)(i >> 8);
        aByteArray1439[anInt1440++] = (byte)(i >> 16);
        aByteArray1439[anInt1440++] = (byte)(i >> 24);
    }

    public int method455(boolean flag)
    {
        if(!flag)
            aBoolean1437 = !aBoolean1437;
        anInt1440 += 4;
        return ((aByteArray1439[anInt1440 - 1] & 0xff) << 24) + ((aByteArray1439[anInt1440 - 2] & 0xff) << 16) + ((aByteArray1439[anInt1440 - 3] & 0xff) << 8) + (aByteArray1439[anInt1440 - 4] & 0xff);
    }

    public int method456(int i)
    {
        anInt1440 += 4;
        if(i != anInt1430)
            aBoolean1437 = !aBoolean1437;
        return ((aByteArray1439[anInt1440 - 2] & 0xff) << 24) + ((aByteArray1439[anInt1440 - 1] & 0xff) << 16) + ((aByteArray1439[anInt1440 - 4] & 0xff) << 8) + (aByteArray1439[anInt1440 - 3] & 0xff);
    }

    public int method457(int i)
    {
        if(i <= 0)
            aBoolean1422 = !aBoolean1422;
        anInt1440 += 4;
        return ((aByteArray1439[anInt1440 - 3] & 0xff) << 24) + ((aByteArray1439[anInt1440 - 4] & 0xff) << 16) + ((aByteArray1439[anInt1440 - 1] & 0xff) << 8) + (aByteArray1439[anInt1440 - 2] & 0xff);
    }

    public void method458(boolean flag, int i, byte abyte0[], int j)
    {
        if(flag)
            return;
        for(int k = (i + j) - 1; k >= i; k--)
            aByteArray1439[anInt1440++] = (byte)(abyte0[k] + 128);

    }

    public void method459(int i, int j, byte abyte0[], boolean flag)
    {
        if(flag)
            return;
        for(int k = (j + i) - 1; k >= j; k--)
            abyte0[k] = aByteArray1439[anInt1440++];

    }

    public boolean aBoolean1422;
    public byte aByte1423;
    public int anInt1424;
    public int anInt1425;
    public int anInt1426;
    public byte aByte1427;
    public byte aByte1428;
    public byte aByte1429;
    public int anInt1430;
    public boolean aBoolean1431;
    public int anInt1432;
    public int anInt1433;
    public int anInt1434;
    public boolean aBoolean1435;
    public int anInt1436;
    public boolean aBoolean1437;
    public int anInt1438;
    public byte aByteArray1439[];
    public int anInt1440;
    public int anInt1441;
    public static int anIntArray1442[];
    public static final int anIntArray1443[] = {
        0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 
        1023, 2047, 4095, 8191, 16383, 32767, 65535, 0x1ffff, 0x3ffff, 0x7ffff, 
        0xfffff, 0x1fffff, 0x3fffff, 0x7fffff, 0xffffff, 0x1ffffff, 0x3ffffff, 0x7ffffff, 0xfffffff, 0x1fffffff, 
        0x3fffffff, 0x7fffffff, -1
    };
    public Class24 aClass24_1444;
    public static int anInt1445;
    public static int anInt1446;
    public static int anInt1447;
    public static Class28 aClass28_1448 = new Class28(0);
    public static Class28 aClass28_1449 = new Class28(0);
    public static Class28 aClass28_1450 = new Class28(0);
    public static char aCharArray1451[] = {
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 
        'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 
        'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 
        'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 
        'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 
        'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', 
        '8', '9', '+', '/'
    };
    public static boolean aBoolean1452;

    static 
    {
        anIntArray1442 = new int[256];
        for(int j = 0; j < 256; j++)
        {
            int i = j;
            for(int k = 0; k < 8; k++)
                if((i & 1) == 1)
                    i = i >>> 1 ^ 0xedb88320;
                else
                    i >>>= 1;

            anIntArray1442[j] = i;
        }

    }
}
