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

import sign.signlink;

public class Class31_Sub3_Sub3_Sub2 extends Class31_Sub3_Sub3
{

    public static void method463(boolean flag)
    {
        aClass1Array1578 = null;
        aBooleanArray1580 = null;
        aBooleanArray1581 = null;
        anIntArray1582 = null;
        anIntArray1583 = null;
        anIntArray1584 = null;
        anIntArray1585 = null;
        anIntArray1586 = null;
        anIntArray1587 = null;
        anIntArray1588 = null;
        anIntArrayArray1589 = null;
        if(flag)
        {
            return;
        } else
        {
            anIntArray1590 = null;
            anIntArrayArray1591 = null;
            anIntArray1592 = null;
            anIntArray1593 = null;
            anIntArray1594 = null;
            anIntArray1606 = null;
            anIntArray1607 = null;
            anIntArray1608 = null;
            anIntArray1609 = null;
            return;
        }
    }

    public static void method464(int i, Class27 class27)
    {
        aClass1Array1578 = new Class1[i];
        aClass27_1579 = class27;
    }

    public static void method465(int i, int j, byte abyte0[])
    {
        if(abyte0 == null)
        {
            Class1 class1 = aClass1Array1578[j] = new Class1();
            class1.anInt42 = 0;
            class1.anInt43 = 0;
            class1.anInt44 = 0;
            return;
        }
        Class31_Sub3_Sub2 class31_sub3_sub2 = new Class31_Sub3_Sub2((byte)114, abyte0);
        class31_sub3_sub2.anInt1440 = abyte0.length - 18;
        Class1 class1_1 = aClass1Array1578[j] = new Class1();
        class1_1.aByteArray41 = abyte0;
        class1_1.anInt42 = class31_sub3_sub2.method424();
        class1_1.anInt43 = class31_sub3_sub2.method424();
        class1_1.anInt44 = class31_sub3_sub2.method422();
        int k = class31_sub3_sub2.method422();
        int l = class31_sub3_sub2.method422();
        int i1 = class31_sub3_sub2.method422();
        int j1 = class31_sub3_sub2.method422();
        int k1 = class31_sub3_sub2.method422();
        int l1 = class31_sub3_sub2.method424();
        int i2 = class31_sub3_sub2.method424();
        int j2 = class31_sub3_sub2.method424();
        int k2 = class31_sub3_sub2.method424();
        int l2 = 0;
        class1_1.anInt45 = l2;
        l2 += class1_1.anInt42;
        class1_1.anInt51 = l2;
        l2 += class1_1.anInt43;
        class1_1.anInt54 = l2;
        if(l == 255)
            l2 += class1_1.anInt43;
        else
            class1_1.anInt54 = -l - 1;
        class1_1.anInt56 = l2;
        if(j1 == 1)
            l2 += class1_1.anInt43;
        else
            class1_1.anInt56 = -1;
        class1_1.anInt53 = l2;
        if(k == 1)
            l2 += class1_1.anInt43;
        else
            class1_1.anInt53 = -1;
        class1_1.anInt49 = l2;
        if(k1 == 1)
            l2 += class1_1.anInt42;
        else
            class1_1.anInt49 = -1;
        class1_1.anInt55 = l2;
        if(i1 == 1)
            l2 += class1_1.anInt43;
        else
            class1_1.anInt55 = -1;
        class1_1.anInt50 = l2;
        l2 += k2;
        class1_1.anInt52 = l2;
        l2 += class1_1.anInt43 * 2;
        class1_1.anInt57 = l2;
        l2 += class1_1.anInt44 * 6;
        class1_1.anInt46 = l2;
        l2 += l1;
        class1_1.anInt47 = l2;
        l2 += i2;
        class1_1.anInt48 = l2;
        l2 += j2;
        if(i == 0);
    }

    public static void method466(int i, int j)
    {
        if(i != 0)
        {
            for(int k = 1; k > 0; k++);
        }
        aClass1Array1578[j] = null;
    }

    public static Class31_Sub3_Sub3_Sub2 method467(int i)
    {
        if(aClass1Array1578 == null)
            return null;
        Class1 class1 = aClass1Array1578[i];
        if(class1 == null)
        {
            aClass27_1579.method303(i);
            return null;
        } else
        {
            return new Class31_Sub3_Sub3_Sub2(i, (byte)3);
        }
    }

    public static boolean method468(int i)
    {
        if(aClass1Array1578 == null)
            return false;
        Class1 class1 = aClass1Array1578[i];
        if(class1 == null)
        {
            aClass27_1579.method303(i);
            return false;
        } else
        {
            return true;
        }
    }

    public Class31_Sub3_Sub3_Sub2(boolean flag)
    {
        aBoolean1535 = false;
        aBoolean1536 = false;
        anInt1537 = -462;
        aBoolean1576 = false;
        if(!flag)
            throw new NullPointerException();
        else
            return;
    }

    public Class31_Sub3_Sub3_Sub2(int i, byte byte0)
    {
        aBoolean1535 = false;
        aBoolean1536 = false;
        anInt1537 = -462;
        aBoolean1576 = false;
        if(byte0 == 3)
            byte0 = 0;
        else
            throw new NullPointerException();
        anInt1538++;
        Class1 class1 = aClass1Array1578[i];
        anInt1544 = class1.anInt42;
        anInt1548 = class1.anInt43;
        anInt1560 = class1.anInt44;
        anIntArray1545 = new int[anInt1544];
        anIntArray1546 = new int[anInt1544];
        anIntArray1547 = new int[anInt1544];
        anIntArray1549 = new int[anInt1548];
        anIntArray1550 = new int[anInt1548];
        anIntArray1551 = new int[anInt1548];
        anIntArray1561 = new int[anInt1560];
        anIntArray1562 = new int[anInt1560];
        anIntArray1563 = new int[anInt1560];
        if(class1.anInt49 >= 0)
            anIntArray1572 = new int[anInt1544];
        if(class1.anInt53 >= 0)
            anIntArray1555 = new int[anInt1548];
        if(class1.anInt54 >= 0)
            anIntArray1556 = new int[anInt1548];
        else
            anInt1559 = -class1.anInt54 - 1;
        if(class1.anInt55 >= 0)
            anIntArray1557 = new int[anInt1548];
        if(class1.anInt56 >= 0)
            anIntArray1573 = new int[anInt1548];
        anIntArray1558 = new int[anInt1548];
        Class31_Sub3_Sub2 class31_sub3_sub2 = new Class31_Sub3_Sub2((byte)114, class1.aByteArray41);
        class31_sub3_sub2.anInt1440 = class1.anInt45;
        Class31_Sub3_Sub2 class31_sub3_sub2_1 = new Class31_Sub3_Sub2((byte)114, class1.aByteArray41);
        class31_sub3_sub2_1.anInt1440 = class1.anInt46;
        Class31_Sub3_Sub2 class31_sub3_sub2_2 = new Class31_Sub3_Sub2((byte)114, class1.aByteArray41);
        class31_sub3_sub2_2.anInt1440 = class1.anInt47;
        Class31_Sub3_Sub2 class31_sub3_sub2_3 = new Class31_Sub3_Sub2((byte)114, class1.aByteArray41);
        class31_sub3_sub2_3.anInt1440 = class1.anInt48;
        Class31_Sub3_Sub2 class31_sub3_sub2_4 = new Class31_Sub3_Sub2((byte)114, class1.aByteArray41);
        class31_sub3_sub2_4.anInt1440 = class1.anInt49;
        int j = 0;
        int k = 0;
        int l = 0;
        for(int i1 = 0; i1 < anInt1544; i1++)
        {
            int j1 = class31_sub3_sub2.method422();
            int l1 = 0;
            if((j1 & 1) != 0)
                l1 = class31_sub3_sub2_1.method435();
            int j2 = 0;
            if((j1 & 2) != 0)
                j2 = class31_sub3_sub2_2.method435();
            int l2 = 0;
            if((j1 & 4) != 0)
                l2 = class31_sub3_sub2_3.method435();
            anIntArray1545[i1] = j + l1;
            anIntArray1546[i1] = k + j2;
            anIntArray1547[i1] = l + l2;
            j = anIntArray1545[i1];
            k = anIntArray1546[i1];
            l = anIntArray1547[i1];
            if(anIntArray1572 != null)
                anIntArray1572[i1] = class31_sub3_sub2_4.method422();
        }

        class31_sub3_sub2.anInt1440 = class1.anInt52;
        class31_sub3_sub2_1.anInt1440 = class1.anInt53;
        class31_sub3_sub2_2.anInt1440 = class1.anInt54;
        class31_sub3_sub2_3.anInt1440 = class1.anInt55;
        class31_sub3_sub2_4.anInt1440 = class1.anInt56;
        for(int k1 = 0; k1 < anInt1548; k1++)
        {
            anIntArray1558[k1] = class31_sub3_sub2.method424();
            if(anIntArray1555 != null)
                anIntArray1555[k1] = class31_sub3_sub2_1.method422();
            if(anIntArray1556 != null)
                anIntArray1556[k1] = class31_sub3_sub2_2.method422();
            if(anIntArray1557 != null)
                anIntArray1557[k1] = class31_sub3_sub2_3.method422();
            if(anIntArray1573 != null)
                anIntArray1573[k1] = class31_sub3_sub2_4.method422();
        }

        class31_sub3_sub2.anInt1440 = class1.anInt50;
        class31_sub3_sub2_1.anInt1440 = class1.anInt51;
        int i2 = 0;
        int k2 = 0;
        int i3 = 0;
        int j3 = 0;
        for(int k3 = 0; k3 < anInt1548; k3++)
        {
            int l3 = class31_sub3_sub2_1.method422();
            if(l3 == 1)
            {
                i2 = class31_sub3_sub2.method435() + j3;
                j3 = i2;
                k2 = class31_sub3_sub2.method435() + j3;
                j3 = k2;
                i3 = class31_sub3_sub2.method435() + j3;
                j3 = i3;
                anIntArray1549[k3] = i2;
                anIntArray1550[k3] = k2;
                anIntArray1551[k3] = i3;
            }
            if(l3 == 2)
            {
                i2 = i2;
                k2 = i3;
                i3 = class31_sub3_sub2.method435() + j3;
                j3 = i3;
                anIntArray1549[k3] = i2;
                anIntArray1550[k3] = k2;
                anIntArray1551[k3] = i3;
            }
            if(l3 == 3)
            {
                i2 = i3;
                k2 = k2;
                i3 = class31_sub3_sub2.method435() + j3;
                j3 = i3;
                anIntArray1549[k3] = i2;
                anIntArray1550[k3] = k2;
                anIntArray1551[k3] = i3;
            }
            if(l3 == 4)
            {
                int j4 = i2;
                i2 = k2;
                k2 = j4;
                i3 = class31_sub3_sub2.method435() + j3;
                j3 = i3;
                anIntArray1549[k3] = i2;
                anIntArray1550[k3] = k2;
                anIntArray1551[k3] = i3;
            }
        }

        class31_sub3_sub2.anInt1440 = class1.anInt57;
        for(int i4 = 0; i4 < anInt1560; i4++)
        {
            anIntArray1561[i4] = class31_sub3_sub2.method424();
            anIntArray1562[i4] = class31_sub3_sub2.method424();
            anIntArray1563[i4] = class31_sub3_sub2.method424();
        }

    }

    public Class31_Sub3_Sub3_Sub2(Class31_Sub3_Sub3_Sub2 aclass31_sub3_sub3_sub2[], int i, int j)
    {
        aBoolean1535 = false;
        aBoolean1536 = false;
        anInt1537 = -462;
        aBoolean1576 = false;
        anInt1538++;
        boolean flag = false;
        boolean flag1 = false;
        boolean flag2 = false;
        boolean flag3 = false;
        anInt1544 = 0;
        anInt1548 = 0;
        anInt1560 = 0;
        anInt1559 = -1;
        for(int k = 0; k < j; k++)
        {
            Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2 = aclass31_sub3_sub3_sub2[k];
            if(class31_sub3_sub3_sub2 != null)
            {
                anInt1544 += class31_sub3_sub3_sub2.anInt1544;
                anInt1548 += class31_sub3_sub3_sub2.anInt1548;
                anInt1560 += class31_sub3_sub3_sub2.anInt1560;
                flag |= class31_sub3_sub3_sub2.anIntArray1555 != null;
                if(class31_sub3_sub3_sub2.anIntArray1556 != null)
                {
                    flag1 = true;
                } else
                {
                    if(anInt1559 == -1)
                        anInt1559 = class31_sub3_sub3_sub2.anInt1559;
                    if(anInt1559 != class31_sub3_sub3_sub2.anInt1559)
                        flag1 = true;
                }
                flag2 |= class31_sub3_sub3_sub2.anIntArray1557 != null;
                flag3 |= class31_sub3_sub3_sub2.anIntArray1573 != null;
            }
        }

        anIntArray1545 = new int[anInt1544];
        anIntArray1546 = new int[anInt1544];
        anIntArray1547 = new int[anInt1544];
        anIntArray1572 = new int[anInt1544];
        anIntArray1549 = new int[anInt1548];
        anIntArray1550 = new int[anInt1548];
        anIntArray1551 = new int[anInt1548];
        anIntArray1561 = new int[anInt1560];
        anIntArray1562 = new int[anInt1560];
        if(i != 3)
            anInt1537 = -56;
        anIntArray1563 = new int[anInt1560];
        if(flag)
            anIntArray1555 = new int[anInt1548];
        if(flag1)
            anIntArray1556 = new int[anInt1548];
        if(flag2)
            anIntArray1557 = new int[anInt1548];
        if(flag3)
            anIntArray1573 = new int[anInt1548];
        anIntArray1558 = new int[anInt1548];
        anInt1544 = 0;
        anInt1548 = 0;
        anInt1560 = 0;
        int l = 0;
        for(int i1 = 0; i1 < j; i1++)
        {
            Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2_1 = aclass31_sub3_sub3_sub2[i1];
            if(class31_sub3_sub3_sub2_1 != null)
            {
                for(int j1 = 0; j1 < class31_sub3_sub3_sub2_1.anInt1548; j1++)
                {
                    if(flag)
                        if(class31_sub3_sub3_sub2_1.anIntArray1555 == null)
                        {
                            anIntArray1555[anInt1548] = 0;
                        } else
                        {
                            int k1 = class31_sub3_sub3_sub2_1.anIntArray1555[j1];
                            if((k1 & 2) == 2)
                                k1 += l << 2;
                            anIntArray1555[anInt1548] = k1;
                        }
                    if(flag1)
                        if(class31_sub3_sub3_sub2_1.anIntArray1556 == null)
                            anIntArray1556[anInt1548] = class31_sub3_sub3_sub2_1.anInt1559;
                        else
                            anIntArray1556[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1556[j1];
                    if(flag2)
                        if(class31_sub3_sub3_sub2_1.anIntArray1557 == null)
                            anIntArray1557[anInt1548] = 0;
                        else
                            anIntArray1557[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1557[j1];
                    if(flag3 && class31_sub3_sub3_sub2_1.anIntArray1573 != null)
                        anIntArray1573[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1573[j1];
                    anIntArray1558[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1558[j1];
                    anIntArray1549[anInt1548] = method470(class31_sub3_sub3_sub2_1, class31_sub3_sub3_sub2_1.anIntArray1549[j1]);
                    anIntArray1550[anInt1548] = method470(class31_sub3_sub3_sub2_1, class31_sub3_sub3_sub2_1.anIntArray1550[j1]);
                    anIntArray1551[anInt1548] = method470(class31_sub3_sub3_sub2_1, class31_sub3_sub3_sub2_1.anIntArray1551[j1]);
                    anInt1548++;
                }

                for(int l1 = 0; l1 < class31_sub3_sub3_sub2_1.anInt1560; l1++)
                {
                    anIntArray1561[anInt1560] = method470(class31_sub3_sub3_sub2_1, class31_sub3_sub3_sub2_1.anIntArray1561[l1]);
                    anIntArray1562[anInt1560] = method470(class31_sub3_sub3_sub2_1, class31_sub3_sub3_sub2_1.anIntArray1562[l1]);
                    anIntArray1563[anInt1560] = method470(class31_sub3_sub3_sub2_1, class31_sub3_sub3_sub2_1.anIntArray1563[l1]);
                    anInt1560++;
                }

                l += class31_sub3_sub3_sub2_1.anInt1560;
            }
        }

    }

    public Class31_Sub3_Sub3_Sub2(int i, boolean flag, int j, Class31_Sub3_Sub3_Sub2 aclass31_sub3_sub3_sub2[])
    {
        aBoolean1535 = false;
        aBoolean1536 = false;
        anInt1537 = -462;
        aBoolean1576 = false;
        anInt1538++;
        boolean flag1 = false;
        boolean flag2 = false;
        boolean flag3 = false;
        boolean flag4 = false;
        anInt1544 = 0;
        anInt1548 = 0;
        anInt1560 = 0;
        anInt1559 = -1;
        for(int k = 0; k < j; k++)
        {
            Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2 = aclass31_sub3_sub3_sub2[k];
            if(class31_sub3_sub3_sub2 != null)
            {
                anInt1544 += class31_sub3_sub3_sub2.anInt1544;
                anInt1548 += class31_sub3_sub3_sub2.anInt1548;
                anInt1560 += class31_sub3_sub3_sub2.anInt1560;
                flag1 |= class31_sub3_sub3_sub2.anIntArray1555 != null;
                if(class31_sub3_sub3_sub2.anIntArray1556 != null)
                {
                    flag2 = true;
                } else
                {
                    if(anInt1559 == -1)
                        anInt1559 = class31_sub3_sub3_sub2.anInt1559;
                    if(anInt1559 != class31_sub3_sub3_sub2.anInt1559)
                        flag2 = true;
                }
                flag3 |= class31_sub3_sub3_sub2.anIntArray1557 != null;
                flag4 |= class31_sub3_sub3_sub2.anIntArray1558 != null;
            }
        }

        anIntArray1545 = new int[anInt1544];
        anIntArray1546 = new int[anInt1544];
        anIntArray1547 = new int[anInt1544];
        anIntArray1549 = new int[anInt1548];
        anIntArray1550 = new int[anInt1548];
        anIntArray1551 = new int[anInt1548];
        anIntArray1552 = new int[anInt1548];
        anIntArray1553 = new int[anInt1548];
        i = 62 / i;
        anIntArray1554 = new int[anInt1548];
        anIntArray1561 = new int[anInt1560];
        anIntArray1562 = new int[anInt1560];
        anIntArray1563 = new int[anInt1560];
        if(flag1)
            anIntArray1555 = new int[anInt1548];
        if(flag2)
            anIntArray1556 = new int[anInt1548];
        if(flag3)
            anIntArray1557 = new int[anInt1548];
        if(flag4)
            anIntArray1558 = new int[anInt1548];
        anInt1544 = 0;
        anInt1548 = 0;
        anInt1560 = 0;
        int l = 0;
        for(int i1 = 0; i1 < j; i1++)
        {
            Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2_1 = aclass31_sub3_sub3_sub2[i1];
            if(class31_sub3_sub3_sub2_1 != null)
            {
                int j1 = anInt1544;
                for(int k1 = 0; k1 < class31_sub3_sub3_sub2_1.anInt1544; k1++)
                {
                    anIntArray1545[anInt1544] = class31_sub3_sub3_sub2_1.anIntArray1545[k1];
                    anIntArray1546[anInt1544] = class31_sub3_sub3_sub2_1.anIntArray1546[k1];
                    anIntArray1547[anInt1544] = class31_sub3_sub3_sub2_1.anIntArray1547[k1];
                    anInt1544++;
                }

                for(int l1 = 0; l1 < class31_sub3_sub3_sub2_1.anInt1548; l1++)
                {
                    anIntArray1549[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1549[l1] + j1;
                    anIntArray1550[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1550[l1] + j1;
                    anIntArray1551[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1551[l1] + j1;
                    anIntArray1552[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1552[l1];
                    anIntArray1553[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1553[l1];
                    anIntArray1554[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1554[l1];
                    if(flag1)
                        if(class31_sub3_sub3_sub2_1.anIntArray1555 == null)
                        {
                            anIntArray1555[anInt1548] = 0;
                        } else
                        {
                            int i2 = class31_sub3_sub3_sub2_1.anIntArray1555[l1];
                            if((i2 & 2) == 2)
                                i2 += l << 2;
                            anIntArray1555[anInt1548] = i2;
                        }
                    if(flag2)
                        if(class31_sub3_sub3_sub2_1.anIntArray1556 == null)
                            anIntArray1556[anInt1548] = class31_sub3_sub3_sub2_1.anInt1559;
                        else
                            anIntArray1556[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1556[l1];
                    if(flag3)
                        if(class31_sub3_sub3_sub2_1.anIntArray1557 == null)
                            anIntArray1557[anInt1548] = 0;
                        else
                            anIntArray1557[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1557[l1];
                    if(flag4 && class31_sub3_sub3_sub2_1.anIntArray1558 != null)
                        anIntArray1558[anInt1548] = class31_sub3_sub3_sub2_1.anIntArray1558[l1];
                    anInt1548++;
                }

                for(int j2 = 0; j2 < class31_sub3_sub3_sub2_1.anInt1560; j2++)
                {
                    anIntArray1561[anInt1560] = class31_sub3_sub3_sub2_1.anIntArray1561[j2] + j1;
                    anIntArray1562[anInt1560] = class31_sub3_sub3_sub2_1.anIntArray1562[j2] + j1;
                    anIntArray1563[anInt1560] = class31_sub3_sub3_sub2_1.anIntArray1563[j2] + j1;
                    anInt1560++;
                }

                l += class31_sub3_sub3_sub2_1.anInt1560;
            }
        }

        method471((byte)50);
    }

    public Class31_Sub3_Sub3_Sub2(boolean flag, Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2, boolean flag1, boolean flag2, boolean flag3)
    {
        aBoolean1535 = false;
        aBoolean1536 = false;
        anInt1537 = -462;
        aBoolean1576 = false;
        anInt1538++;
        if(flag2)
            throw new NullPointerException();
        anInt1544 = class31_sub3_sub3_sub2.anInt1544;
        anInt1548 = class31_sub3_sub3_sub2.anInt1548;
        anInt1560 = class31_sub3_sub3_sub2.anInt1560;
        if(flag1)
        {
            anIntArray1545 = class31_sub3_sub3_sub2.anIntArray1545;
            anIntArray1546 = class31_sub3_sub3_sub2.anIntArray1546;
            anIntArray1547 = class31_sub3_sub3_sub2.anIntArray1547;
        } else
        {
            anIntArray1545 = new int[anInt1544];
            anIntArray1546 = new int[anInt1544];
            anIntArray1547 = new int[anInt1544];
            for(int i = 0; i < anInt1544; i++)
            {
                anIntArray1545[i] = class31_sub3_sub3_sub2.anIntArray1545[i];
                anIntArray1546[i] = class31_sub3_sub3_sub2.anIntArray1546[i];
                anIntArray1547[i] = class31_sub3_sub3_sub2.anIntArray1547[i];
            }

        }
        if(flag3)
        {
            anIntArray1558 = class31_sub3_sub3_sub2.anIntArray1558;
        } else
        {
            anIntArray1558 = new int[anInt1548];
            for(int j = 0; j < anInt1548; j++)
                anIntArray1558[j] = class31_sub3_sub3_sub2.anIntArray1558[j];

        }
        if(flag)
        {
            anIntArray1557 = class31_sub3_sub3_sub2.anIntArray1557;
        } else
        {
            anIntArray1557 = new int[anInt1548];
            if(class31_sub3_sub3_sub2.anIntArray1557 == null)
            {
                for(int k = 0; k < anInt1548; k++)
                    anIntArray1557[k] = 0;

            } else
            {
                for(int l = 0; l < anInt1548; l++)
                    anIntArray1557[l] = class31_sub3_sub3_sub2.anIntArray1557[l];

            }
        }
        anIntArray1572 = class31_sub3_sub3_sub2.anIntArray1572;
        anIntArray1573 = class31_sub3_sub3_sub2.anIntArray1573;
        anIntArray1555 = class31_sub3_sub3_sub2.anIntArray1555;
        anIntArray1549 = class31_sub3_sub3_sub2.anIntArray1549;
        anIntArray1550 = class31_sub3_sub3_sub2.anIntArray1550;
        anIntArray1551 = class31_sub3_sub3_sub2.anIntArray1551;
        anIntArray1556 = class31_sub3_sub3_sub2.anIntArray1556;
        anInt1559 = class31_sub3_sub3_sub2.anInt1559;
        anIntArray1561 = class31_sub3_sub3_sub2.anIntArray1561;
        anIntArray1562 = class31_sub3_sub3_sub2.anIntArray1562;
        anIntArray1563 = class31_sub3_sub3_sub2.anIntArray1563;
    }

    public Class31_Sub3_Sub3_Sub2(int i, boolean flag, boolean flag1, Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2)
    {
        aBoolean1535 = false;
        aBoolean1536 = false;
        anInt1537 = -462;
        aBoolean1576 = false;
        anInt1538++;
        anInt1544 = class31_sub3_sub3_sub2.anInt1544;
        anInt1548 = class31_sub3_sub3_sub2.anInt1548;
        anInt1560 = class31_sub3_sub3_sub2.anInt1560;
        if(flag1)
        {
            anIntArray1546 = new int[anInt1544];
            for(int j = 0; j < anInt1544; j++)
                anIntArray1546[j] = class31_sub3_sub3_sub2.anIntArray1546[j];

        } else
        {
            anIntArray1546 = class31_sub3_sub3_sub2.anIntArray1546;
        }
        if(flag)
        {
            anIntArray1552 = new int[anInt1548];
            anIntArray1553 = new int[anInt1548];
            anIntArray1554 = new int[anInt1548];
            for(int k = 0; k < anInt1548; k++)
            {
                anIntArray1552[k] = class31_sub3_sub3_sub2.anIntArray1552[k];
                anIntArray1553[k] = class31_sub3_sub3_sub2.anIntArray1553[k];
                anIntArray1554[k] = class31_sub3_sub3_sub2.anIntArray1554[k];
            }

            anIntArray1555 = new int[anInt1548];
            if(class31_sub3_sub3_sub2.anIntArray1555 == null)
            {
                for(int l = 0; l < anInt1548; l++)
                    anIntArray1555[l] = 0;

            } else
            {
                for(int i1 = 0; i1 < anInt1548; i1++)
                    anIntArray1555[i1] = class31_sub3_sub3_sub2.anIntArray1555[i1];

            }
            super.aClass46Array1453 = new Class46[anInt1544];
            for(int j1 = 0; j1 < anInt1544; j1++)
            {
                Class46 class46 = super.aClass46Array1453[j1] = new Class46();
                Class46 class46_1 = ((Class31_Sub3_Sub3) (class31_sub3_sub3_sub2)).aClass46Array1453[j1];
                class46.anInt711 = class46_1.anInt711;
                class46.anInt712 = class46_1.anInt712;
                class46.anInt713 = class46_1.anInt713;
                class46.anInt714 = class46_1.anInt714;
            }

            aClass46Array1577 = class31_sub3_sub3_sub2.aClass46Array1577;
        } else
        {
            anIntArray1552 = class31_sub3_sub3_sub2.anIntArray1552;
            anIntArray1553 = class31_sub3_sub3_sub2.anIntArray1553;
            anIntArray1554 = class31_sub3_sub3_sub2.anIntArray1554;
            anIntArray1555 = class31_sub3_sub3_sub2.anIntArray1555;
        }
        anIntArray1545 = class31_sub3_sub3_sub2.anIntArray1545;
        anIntArray1547 = class31_sub3_sub3_sub2.anIntArray1547;
        i = 19 / i;
        anIntArray1558 = class31_sub3_sub3_sub2.anIntArray1558;
        anIntArray1557 = class31_sub3_sub3_sub2.anIntArray1557;
        anIntArray1556 = class31_sub3_sub3_sub2.anIntArray1556;
        anInt1559 = class31_sub3_sub3_sub2.anInt1559;
        anIntArray1549 = class31_sub3_sub3_sub2.anIntArray1549;
        anIntArray1550 = class31_sub3_sub3_sub2.anIntArray1550;
        anIntArray1551 = class31_sub3_sub3_sub2.anIntArray1551;
        anIntArray1561 = class31_sub3_sub3_sub2.anIntArray1561;
        anIntArray1562 = class31_sub3_sub3_sub2.anIntArray1562;
        anIntArray1563 = class31_sub3_sub3_sub2.anIntArray1563;
        super.anInt1454 = ((Class31_Sub3_Sub3) (class31_sub3_sub3_sub2)).anInt1454;
        anInt1568 = class31_sub3_sub3_sub2.anInt1568;
        anInt1567 = class31_sub3_sub3_sub2.anInt1567;
        anInt1570 = class31_sub3_sub3_sub2.anInt1570;
        anInt1569 = class31_sub3_sub3_sub2.anInt1569;
        anInt1565 = class31_sub3_sub3_sub2.anInt1565;
        anInt1566 = class31_sub3_sub3_sub2.anInt1566;
        anInt1564 = class31_sub3_sub3_sub2.anInt1564;
    }

    public void method469(int i, boolean flag, Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2)
    {
        anInt1544 = class31_sub3_sub3_sub2.anInt1544;
        anInt1548 = class31_sub3_sub3_sub2.anInt1548;
        if(i <= 0)
            return;
        anInt1560 = class31_sub3_sub3_sub2.anInt1560;
        if(anIntArray1540.length < anInt1544)
        {
            anIntArray1540 = new int[anInt1544 + 100];
            anIntArray1541 = new int[anInt1544 + 100];
            anIntArray1542 = new int[anInt1544 + 100];
        }
        anIntArray1545 = anIntArray1540;
        anIntArray1546 = anIntArray1541;
        anIntArray1547 = anIntArray1542;
        for(int j = 0; j < anInt1544; j++)
        {
            anIntArray1545[j] = class31_sub3_sub3_sub2.anIntArray1545[j];
            anIntArray1546[j] = class31_sub3_sub3_sub2.anIntArray1546[j];
            anIntArray1547[j] = class31_sub3_sub3_sub2.anIntArray1547[j];
        }

        if(flag)
        {
            anIntArray1557 = class31_sub3_sub3_sub2.anIntArray1557;
        } else
        {
            if(anIntArray1543.length < anInt1548)
                anIntArray1543 = new int[anInt1548 + 100];
            anIntArray1557 = anIntArray1543;
            if(class31_sub3_sub3_sub2.anIntArray1557 == null)
            {
                for(int k = 0; k < anInt1548; k++)
                    anIntArray1557[k] = 0;

            } else
            {
                for(int l = 0; l < anInt1548; l++)
                    anIntArray1557[l] = class31_sub3_sub3_sub2.anIntArray1557[l];

            }
        }
        anIntArray1555 = class31_sub3_sub3_sub2.anIntArray1555;
        anIntArray1558 = class31_sub3_sub3_sub2.anIntArray1558;
        anIntArray1556 = class31_sub3_sub3_sub2.anIntArray1556;
        anInt1559 = class31_sub3_sub3_sub2.anInt1559;
        anIntArrayArray1575 = class31_sub3_sub3_sub2.anIntArrayArray1575;
        anIntArrayArray1574 = class31_sub3_sub3_sub2.anIntArrayArray1574;
        anIntArray1549 = class31_sub3_sub3_sub2.anIntArray1549;
        anIntArray1550 = class31_sub3_sub3_sub2.anIntArray1550;
        anIntArray1551 = class31_sub3_sub3_sub2.anIntArray1551;
        anIntArray1552 = class31_sub3_sub3_sub2.anIntArray1552;
        anIntArray1553 = class31_sub3_sub3_sub2.anIntArray1553;
        anIntArray1554 = class31_sub3_sub3_sub2.anIntArray1554;
        anIntArray1561 = class31_sub3_sub3_sub2.anIntArray1561;
        anIntArray1562 = class31_sub3_sub3_sub2.anIntArray1562;
        anIntArray1563 = class31_sub3_sub3_sub2.anIntArray1563;
    }

    public int method470(Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2, int i)
    {
        int j = -1;
        int k = class31_sub3_sub3_sub2.anIntArray1545[i];
        int l = class31_sub3_sub3_sub2.anIntArray1546[i];
        int i1 = class31_sub3_sub3_sub2.anIntArray1547[i];
        for(int j1 = 0; j1 < anInt1544; j1++)
        {
            if(k != anIntArray1545[j1] || l != anIntArray1546[j1] || i1 != anIntArray1547[j1])
                continue;
            j = j1;
            break;
        }

        if(j == -1)
        {
            anIntArray1545[anInt1544] = k;
            anIntArray1546[anInt1544] = l;
            anIntArray1547[anInt1544] = i1;
            if(class31_sub3_sub3_sub2.anIntArray1572 != null)
                anIntArray1572[anInt1544] = class31_sub3_sub3_sub2.anIntArray1572[i];
            j = anInt1544++;
        }
        return j;
    }

    public void method471(byte byte0)
    {
        super.anInt1454 = 0;
        anInt1567 = 0;
        anInt1568 = 0;
        if(byte0 != 50)
        {
            for(int i = 1; i > 0; i++);
        }
        for(int j = 0; j < anInt1544; j++)
        {
            int k = anIntArray1545[j];
            int l = anIntArray1546[j];
            int i1 = anIntArray1547[j];
            if(-l > super.anInt1454)
                super.anInt1454 = -l;
            if(l > anInt1568)
                anInt1568 = l;
            int j1 = k * k + i1 * i1;
            if(j1 > anInt1567)
                anInt1567 = j1;
        }

        anInt1567 = (int)(Math.sqrt(anInt1567) + 0.98999999999999999D);
        anInt1570 = (int)(Math.sqrt(anInt1567 * anInt1567 + super.anInt1454 * super.anInt1454) + 0.98999999999999999D);
        anInt1569 = anInt1570 + (int)(Math.sqrt(anInt1567 * anInt1567 + anInt1568 * anInt1568) + 0.98999999999999999D);
    }

    public void method472(boolean flag)
    {
        super.anInt1454 = 0;
        anInt1568 = 0;
        for(int i = 0; i < anInt1544; i++)
        {
            int j = anIntArray1546[i];
            if(-j > super.anInt1454)
                super.anInt1454 = -j;
            if(j > anInt1568)
                anInt1568 = j;
        }

        anInt1570 = (int)(Math.sqrt(anInt1567 * anInt1567 + super.anInt1454 * super.anInt1454) + 0.98999999999999999D);
        anInt1569 = anInt1570 + (int)(Math.sqrt(anInt1567 * anInt1567 + anInt1568 * anInt1568) + 0.98999999999999999D);
        if(!flag);
    }

    public void method473(byte byte0)
    {
        super.anInt1454 = 0;
        anInt1567 = 0;
        anInt1568 = 0;
        if(byte0 != 60)
            return;
        int i = 32767;
        int j = -32767;
        int k = -32767;
        int l = 32767;
        for(int i1 = 0; i1 < anInt1544; i1++)
        {
            int j1 = anIntArray1545[i1];
            int k1 = anIntArray1546[i1];
            int l1 = anIntArray1547[i1];
            if(j1 < i)
                i = j1;
            if(j1 > j)
                j = j1;
            if(l1 < l)
                l = l1;
            if(l1 > k)
                k = l1;
            if(-k1 > super.anInt1454)
                super.anInt1454 = -k1;
            if(k1 > anInt1568)
                anInt1568 = k1;
            int i2 = j1 * j1 + l1 * l1;
            if(i2 > anInt1567)
                anInt1567 = i2;
        }

        anInt1567 = (int)Math.sqrt(anInt1567);
        anInt1570 = (int)Math.sqrt(anInt1567 * anInt1567 + super.anInt1454 * super.anInt1454);
        anInt1569 = anInt1570 + (int)Math.sqrt(anInt1567 * anInt1567 + anInt1568 * anInt1568);
        anInt1565 = (i << 16) + (j & 0xffff);
        anInt1566 = (k << 16) + (l & 0xffff);
    }

    public void method474(int i)
    {
        if(i <= 0)
            return;
        if(anIntArray1572 != null)
        {
            int ai[] = new int[256];
            int j = 0;
            for(int l = 0; l < anInt1544; l++)
            {
                int j1 = anIntArray1572[l];
                ai[j1]++;
                if(j1 > j)
                    j = j1;
            }

            anIntArrayArray1574 = new int[j + 1][];
            for(int k1 = 0; k1 <= j; k1++)
            {
                anIntArrayArray1574[k1] = new int[ai[k1]];
                ai[k1] = 0;
            }

            for(int j2 = 0; j2 < anInt1544; j2++)
            {
                int l2 = anIntArray1572[j2];
                anIntArrayArray1574[l2][ai[l2]++] = j2;
            }

            anIntArray1572 = null;
        }
        if(anIntArray1573 != null)
        {
            int ai1[] = new int[256];
            int k = 0;
            for(int i1 = 0; i1 < anInt1548; i1++)
            {
                int l1 = anIntArray1573[i1];
                ai1[l1]++;
                if(l1 > k)
                    k = l1;
            }

            anIntArrayArray1575 = new int[k + 1][];
            for(int i2 = 0; i2 <= k; i2++)
            {
                anIntArrayArray1575[i2] = new int[ai1[i2]];
                ai1[i2] = 0;
            }

            for(int k2 = 0; k2 < anInt1548; k2++)
            {
                int i3 = anIntArray1573[k2];
                anIntArrayArray1575[i3][ai1[i3]++] = k2;
            }

            anIntArray1573 = null;
        }
    }

    public void method475(int i, int j)
    {
        if(anIntArrayArray1574 == null)
            return;
        if(j == -1)
            return;
        Class32 class32 = Class32.method508(j);
        if(class32 == null)
            return;
        Class33 class33 = class32.aClass33_476;
        anInt1598 = 0;
        anInt1599 = 0;
        anInt1600 = 0;
        for(int k = 0; k < class32.anInt477; k++)
        {
            int l = class32.anIntArray478[k];
            method477(class33.anIntArray486[l], class33.anIntArrayArray487[l], class32.anIntArray479[k], class32.anIntArray480[k], class32.anIntArray481[k]);
        }

        i = 33 / i;
    }

    public void method476(int i, int j, int k, int ai[])
    {
        if(i == -1)
            return;
        if(ai == null || j == -1)
        {
            method475(257, i);
            return;
        }
        Class32 class32 = Class32.method508(i);
        if(class32 == null)
            return;
        Class32 class32_1 = Class32.method508(j);
        if(class32_1 == null)
        {
            method475(257, i);
            return;
        }
        Class33 class33 = class32.aClass33_476;
        anInt1598 = 0;
        anInt1599 = 0;
        anInt1600 = 0;
        int l = 0;
        int i1 = ai[l++];
        for(int j1 = 0; j1 < class32.anInt477; j1++)
        {
            int k1;
            for(k1 = class32.anIntArray478[j1]; k1 > i1; i1 = ai[l++]);
            if(k1 != i1 || class33.anIntArray486[k1] == 0)
                method477(class33.anIntArray486[k1], class33.anIntArrayArray487[k1], class32.anIntArray479[j1], class32.anIntArray480[j1], class32.anIntArray481[j1]);
        }

        anInt1598 = 0;
        if(k != -40256)
        {
            for(int l1 = 1; l1 > 0; l1++);
        }
        anInt1599 = 0;
        anInt1600 = 0;
        l = 0;
        i1 = ai[l++];
        for(int i2 = 0; i2 < class32_1.anInt477; i2++)
        {
            int j2;
            for(j2 = class32_1.anIntArray478[i2]; j2 > i1; i1 = ai[l++]);
            if(j2 == i1 || class33.anIntArray486[j2] == 0)
                method477(class33.anIntArray486[j2], class33.anIntArrayArray487[j2], class32_1.anIntArray479[i2], class32_1.anIntArray480[i2], class32_1.anIntArray481[i2]);
        }

    }

    public void method477(int i, int ai[], int j, int k, int l)
    {
        int i1 = ai.length;
        if(i == 0)
        {
            int j1 = 0;
            anInt1598 = 0;
            anInt1599 = 0;
            anInt1600 = 0;
            for(int k2 = 0; k2 < i1; k2++)
            {
                int l3 = ai[k2];
                if(l3 < anIntArrayArray1574.length)
                {
                    int ai5[] = anIntArrayArray1574[l3];
                    for(int i5 = 0; i5 < ai5.length; i5++)
                    {
                        int j6 = ai5[i5];
                        anInt1598 += anIntArray1545[j6];
                        anInt1599 += anIntArray1546[j6];
                        anInt1600 += anIntArray1547[j6];
                        j1++;
                    }

                }
            }

            if(j1 > 0)
            {
                anInt1598 = anInt1598 / j1 + j;
                anInt1599 = anInt1599 / j1 + k;
                anInt1600 = anInt1600 / j1 + l;
                return;
            } else
            {
                anInt1598 = j;
                anInt1599 = k;
                anInt1600 = l;
                return;
            }
        }
        if(i == 1)
        {
            for(int k1 = 0; k1 < i1; k1++)
            {
                int l2 = ai[k1];
                if(l2 < anIntArrayArray1574.length)
                {
                    int ai1[] = anIntArrayArray1574[l2];
                    for(int i4 = 0; i4 < ai1.length; i4++)
                    {
                        int j5 = ai1[i4];
                        anIntArray1545[j5] += j;
                        anIntArray1546[j5] += k;
                        anIntArray1547[j5] += l;
                    }

                }
            }

            return;
        }
        if(i == 2)
        {
            for(int l1 = 0; l1 < i1; l1++)
            {
                int i3 = ai[l1];
                if(i3 < anIntArrayArray1574.length)
                {
                    int ai2[] = anIntArrayArray1574[i3];
                    for(int j4 = 0; j4 < ai2.length; j4++)
                    {
                        int k5 = ai2[j4];
                        anIntArray1545[k5] -= anInt1598;
                        anIntArray1546[k5] -= anInt1599;
                        anIntArray1547[k5] -= anInt1600;
                        int k6 = (j & 0xff) * 8;
                        int l6 = (k & 0xff) * 8;
                        int i7 = (l & 0xff) * 8;
                        if(i7 != 0)
                        {
                            int j7 = anIntArray1606[i7];
                            int i8 = anIntArray1607[i7];
                            int l8 = anIntArray1546[k5] * j7 + anIntArray1545[k5] * i8 >> 16;
                            anIntArray1546[k5] = anIntArray1546[k5] * i8 - anIntArray1545[k5] * j7 >> 16;
                            anIntArray1545[k5] = l8;
                        }
                        if(k6 != 0)
                        {
                            int k7 = anIntArray1606[k6];
                            int j8 = anIntArray1607[k6];
                            int i9 = anIntArray1546[k5] * j8 - anIntArray1547[k5] * k7 >> 16;
                            anIntArray1547[k5] = anIntArray1546[k5] * k7 + anIntArray1547[k5] * j8 >> 16;
                            anIntArray1546[k5] = i9;
                        }
                        if(l6 != 0)
                        {
                            int l7 = anIntArray1606[l6];
                            int k8 = anIntArray1607[l6];
                            int j9 = anIntArray1547[k5] * l7 + anIntArray1545[k5] * k8 >> 16;
                            anIntArray1547[k5] = anIntArray1547[k5] * k8 - anIntArray1545[k5] * l7 >> 16;
                            anIntArray1545[k5] = j9;
                        }
                        anIntArray1545[k5] += anInt1598;
                        anIntArray1546[k5] += anInt1599;
                        anIntArray1547[k5] += anInt1600;
                    }

                }
            }

            return;
        }
        if(i == 3)
        {
            for(int i2 = 0; i2 < i1; i2++)
            {
                int j3 = ai[i2];
                if(j3 < anIntArrayArray1574.length)
                {
                    int ai3[] = anIntArrayArray1574[j3];
                    for(int k4 = 0; k4 < ai3.length; k4++)
                    {
                        int l5 = ai3[k4];
                        anIntArray1545[l5] -= anInt1598;
                        anIntArray1546[l5] -= anInt1599;
                        anIntArray1547[l5] -= anInt1600;
                        anIntArray1545[l5] = (anIntArray1545[l5] * j) / 128;
                        anIntArray1546[l5] = (anIntArray1546[l5] * k) / 128;
                        anIntArray1547[l5] = (anIntArray1547[l5] * l) / 128;
                        anIntArray1545[l5] += anInt1598;
                        anIntArray1546[l5] += anInt1599;
                        anIntArray1547[l5] += anInt1600;
                    }

                }
            }

            return;
        }
        if(i == 5 && anIntArrayArray1575 != null && anIntArray1557 != null)
        {
            for(int j2 = 0; j2 < i1; j2++)
            {
                int k3 = ai[j2];
                if(k3 < anIntArrayArray1575.length)
                {
                    int ai4[] = anIntArrayArray1575[k3];
                    for(int l4 = 0; l4 < ai4.length; l4++)
                    {
                        int i6 = ai4[l4];
                        anIntArray1557[i6] += j * 8;
                        if(anIntArray1557[i6] < 0)
                            anIntArray1557[i6] = 0;
                        if(anIntArray1557[i6] > 255)
                            anIntArray1557[i6] = 255;
                    }

                }
            }

        }
    }

    public void method478(byte byte0)
    {
        if(byte0 != 93)
            return;
        for(int i = 0; i < anInt1544; i++)
        {
            int j = anIntArray1545[i];
            anIntArray1545[i] = anIntArray1547[i];
            anIntArray1547[i] = -j;
        }

    }

    public void method479(int i, int j)
    {
        if(j != 5419)
            return;
        int k = anIntArray1606[i];
        int l = anIntArray1607[i];
        for(int i1 = 0; i1 < anInt1544; i1++)
        {
            int j1 = anIntArray1546[i1] * l - anIntArray1547[i1] * k >> 16;
            anIntArray1547[i1] = anIntArray1546[i1] * k + anIntArray1547[i1] * l >> 16;
            anIntArray1546[i1] = j1;
        }

    }

    public void method480(int i, int j, boolean flag, int k)
    {
        if(flag)
            anInt1537 = -203;
        for(int l = 0; l < anInt1544; l++)
        {
            anIntArray1545[l] += i;
            anIntArray1546[l] += j;
            anIntArray1547[l] += k;
        }

    }

    public void method481(int i, int j)
    {
        for(int k = 0; k < anInt1548; k++)
            if(anIntArray1558[k] == i)
                anIntArray1558[k] = j;

    }

    public void method482(byte byte0)
    {
        if(byte0 != 8)
            return;
        for(int i = 0; i < anInt1544; i++)
            anIntArray1547[i] = -anIntArray1547[i];

        for(int j = 0; j < anInt1548; j++)
        {
            int k = anIntArray1549[j];
            anIntArray1549[j] = anIntArray1551[j];
            anIntArray1551[j] = k;
        }

    }

    public void method483(int i, int j, int k, int l)
    {
        if(j != -39776)
            return;
        for(int i1 = 0; i1 < anInt1544; i1++)
        {
            anIntArray1545[i1] = (anIntArray1545[i1] * i) / 128;
            anIntArray1546[i1] = (anIntArray1546[i1] * k) / 128;
            anIntArray1547[i1] = (anIntArray1547[i1] * l) / 128;
        }

    }

    public void method484(int i, int j, int k, int l, int i1, boolean flag)
    {
        int j1 = (int)Math.sqrt(k * k + l * l + i1 * i1);
        int k1 = j * j1 >> 8;
        if(anIntArray1552 == null)
        {
            anIntArray1552 = new int[anInt1548];
            anIntArray1553 = new int[anInt1548];
            anIntArray1554 = new int[anInt1548];
        }
        if(super.aClass46Array1453 == null)
        {
            super.aClass46Array1453 = new Class46[anInt1544];
            for(int l1 = 0; l1 < anInt1544; l1++)
                super.aClass46Array1453[l1] = new Class46();

        }
        for(int i2 = 0; i2 < anInt1548; i2++)
        {
            int j2 = anIntArray1549[i2];
            int l2 = anIntArray1550[i2];
            int i3 = anIntArray1551[i2];
            int j3 = anIntArray1545[l2] - anIntArray1545[j2];
            int k3 = anIntArray1546[l2] - anIntArray1546[j2];
            int l3 = anIntArray1547[l2] - anIntArray1547[j2];
            int i4 = anIntArray1545[i3] - anIntArray1545[j2];
            int j4 = anIntArray1546[i3] - anIntArray1546[j2];
            int k4 = anIntArray1547[i3] - anIntArray1547[j2];
            int l4 = k3 * k4 - j4 * l3;
            int i5 = l3 * i4 - k4 * j3;
            int j5;
            for(j5 = j3 * j4 - i4 * k3; l4 > 8192 || i5 > 8192 || j5 > 8192 || l4 < -8192 || i5 < -8192 || j5 < -8192; j5 >>= 1)
            {
                l4 >>= 1;
                i5 >>= 1;
            }

            int k5 = (int)Math.sqrt(l4 * l4 + i5 * i5 + j5 * j5);
            if(k5 <= 0)
                k5 = 1;
            l4 = (l4 * 256) / k5;
            i5 = (i5 * 256) / k5;
            j5 = (j5 * 256) / k5;
            if(anIntArray1555 == null || (anIntArray1555[i2] & 1) == 0)
            {
                Class46 class46_2 = super.aClass46Array1453[j2];
                class46_2.anInt711 += l4;
                class46_2.anInt712 += i5;
                class46_2.anInt713 += j5;
                class46_2.anInt714++;
                class46_2 = super.aClass46Array1453[l2];
                class46_2.anInt711 += l4;
                class46_2.anInt712 += i5;
                class46_2.anInt713 += j5;
                class46_2.anInt714++;
                class46_2 = super.aClass46Array1453[i3];
                class46_2.anInt711 += l4;
                class46_2.anInt712 += i5;
                class46_2.anInt713 += j5;
                class46_2.anInt714++;
            } else
            {
                int l5 = i + (k * l4 + l * i5 + i1 * j5) / (k1 + k1 / 2);
                anIntArray1552[i2] = method487(anIntArray1558[i2], l5, anIntArray1555[i2]);
            }
        }

        if(flag)
        {
            method486(i, k1, k, l, i1);
        } else
        {
            aClass46Array1577 = new Class46[anInt1544];
            for(int k2 = 0; k2 < anInt1544; k2++)
            {
                Class46 class46 = super.aClass46Array1453[k2];
                Class46 class46_1 = aClass46Array1577[k2] = new Class46();
                class46_1.anInt711 = class46.anInt711;
                class46_1.anInt712 = class46.anInt712;
                class46_1.anInt713 = class46.anInt713;
                class46_1.anInt714 = class46.anInt714;
            }

            anInt1564 = (i << 16) + (k1 & 0xffff);
        }
        if(flag)
        {
            method471((byte)50);
            return;
        } else
        {
            method473((byte)60);
            return;
        }
    }

    public void method485(int i, int j, int k, int l)
    {
        int i1 = anInt1564 >> 16;
        int j1 = (anInt1564 << 16) >> 16;
        if(j != 0)
        {
            return;
        } else
        {
            method486(i1, j1, k, l, i);
            return;
        }
    }

    public void method486(int i, int j, int k, int l, int i1)
    {
        for(int j1 = 0; j1 < anInt1548; j1++)
        {
            int k1 = anIntArray1549[j1];
            int i2 = anIntArray1550[j1];
            int j2 = anIntArray1551[j1];
            if(anIntArray1555 == null)
            {
                int i3 = anIntArray1558[j1];
                Class46 class46 = super.aClass46Array1453[k1];
                int k2 = i + (k * class46.anInt711 + l * class46.anInt712 + i1 * class46.anInt713) / (j * class46.anInt714);
                anIntArray1552[j1] = method487(i3, k2, 0);
                class46 = super.aClass46Array1453[i2];
                k2 = i + (k * class46.anInt711 + l * class46.anInt712 + i1 * class46.anInt713) / (j * class46.anInt714);
                anIntArray1553[j1] = method487(i3, k2, 0);
                class46 = super.aClass46Array1453[j2];
                k2 = i + (k * class46.anInt711 + l * class46.anInt712 + i1 * class46.anInt713) / (j * class46.anInt714);
                anIntArray1554[j1] = method487(i3, k2, 0);
            } else
            if((anIntArray1555[j1] & 1) == 0)
            {
                int j3 = anIntArray1558[j1];
                int k3 = anIntArray1555[j1];
                Class46 class46_1 = super.aClass46Array1453[k1];
                int l2 = i + (k * class46_1.anInt711 + l * class46_1.anInt712 + i1 * class46_1.anInt713) / (j * class46_1.anInt714);
                anIntArray1552[j1] = method487(j3, l2, k3);
                class46_1 = super.aClass46Array1453[i2];
                l2 = i + (k * class46_1.anInt711 + l * class46_1.anInt712 + i1 * class46_1.anInt713) / (j * class46_1.anInt714);
                anIntArray1553[j1] = method487(j3, l2, k3);
                class46_1 = super.aClass46Array1453[j2];
                l2 = i + (k * class46_1.anInt711 + l * class46_1.anInt712 + i1 * class46_1.anInt713) / (j * class46_1.anInt714);
                anIntArray1554[j1] = method487(j3, l2, k3);
            }
        }

        super.aClass46Array1453 = null;
        aClass46Array1577 = null;
        anIntArray1572 = null;
        anIntArray1573 = null;
        if(anIntArray1555 != null)
        {
            for(int l1 = 0; l1 < anInt1548; l1++)
                if((anIntArray1555[l1] & 2) == 2)
                    return;

        }
        anIntArray1558 = null;
    }

    public static int method487(int i, int j, int k)
    {
        if((k & 2) == 2)
        {
            if(j < 0)
                j = 0;
            else
            if(j > 127)
                j = 127;
            j = 127 - j;
            return j;
        }
        j = j * (i & 0x7f) >> 7;
        if(j < 2)
            j = 2;
        else
        if(j > 126)
            j = 126;
        return (i & 0xff80) + j;
    }

    public void method488(int i, int j, int k, int l, int i1, int j1, int k1)
    {
        int l1 = Class31_Sub3_Sub1_Sub1.anInt1468;
        int i2 = Class31_Sub3_Sub1_Sub1.anInt1469;
        int j2 = anIntArray1606[i];
        int k2 = anIntArray1607[i];
        int l2 = anIntArray1606[j];
        int i3 = anIntArray1607[j];
        int j3 = anIntArray1606[k];
        int k3 = anIntArray1607[k];
        int l3 = anIntArray1606[l];
        int i4 = anIntArray1607[l];
        int j4 = j1 * l3 + k1 * i4 >> 16;
        for(int k4 = 0; k4 < anInt1544; k4++)
        {
            int l4 = anIntArray1545[k4];
            int i5 = anIntArray1546[k4];
            int j5 = anIntArray1547[k4];
            if(k != 0)
            {
                int k5 = i5 * j3 + l4 * k3 >> 16;
                i5 = i5 * k3 - l4 * j3 >> 16;
                l4 = k5;
            }
            if(i != 0)
            {
                int l5 = i5 * k2 - j5 * j2 >> 16;
                j5 = i5 * j2 + j5 * k2 >> 16;
                i5 = l5;
            }
            if(j != 0)
            {
                int i6 = j5 * l2 + l4 * i3 >> 16;
                j5 = j5 * i3 - l4 * l2 >> 16;
                l4 = i6;
            }
            l4 += i1;
            i5 += j1;
            j5 += k1;
            int j6 = i5 * i4 - j5 * l3 >> 16;
            j5 = i5 * l3 + j5 * i4 >> 16;
            i5 = j6;
            anIntArray1584[k4] = j5 - j4;
            anIntArray1582[k4] = l1 + (l4 << 9) / j5;
            anIntArray1583[k4] = i2 + (i5 << 9) / j5;
            if(anInt1560 > 0)
            {
                anIntArray1585[k4] = l4;
                anIntArray1586[k4] = i5;
                anIntArray1587[k4] = j5;
            }
        }

        try
        {
            method489(false, false, 0);
            return;
        }
        catch(Exception _ex)
        {
            return;
        }
    }

    public void method460(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2)
    {
        int j2 = l1 * i1 - j1 * l >> 16;
        int k2 = k1 * j + j2 * k >> 16;
        int l2 = anInt1567 * k >> 16;
        int i3 = k2 + l2;
        if(i3 <= 50 || k2 >= 3500)
            return;
        int j3 = l1 * l + j1 * i1 >> 16;
        int k3 = j3 - anInt1567 << 9;
        if(k3 / i3 >= Class31_Sub3_Sub1.anInt1419)
            return;
        int l3 = j3 + anInt1567 << 9;
        if(l3 / i3 <= -Class31_Sub3_Sub1.anInt1419)
            return;
        int i4 = k1 * k - j2 * j >> 16;
        int j4 = anInt1567 * j >> 16;
        int k4 = i4 + j4 << 9;
        if(k4 / i3 <= -Class31_Sub3_Sub1.anInt1420)
            return;
        int l4 = j4 + (super.anInt1454 * k >> 16);
        int i5 = i4 - l4 << 9;
        if(i5 / i3 >= Class31_Sub3_Sub1.anInt1420)
            return;
        int j5 = l2 + (super.anInt1454 * j >> 16);
        boolean flag = false;
        if(k2 - j5 <= 50)
            flag = true;
        boolean flag1 = false;
        if(i2 > 0 && aBoolean1601)
        {
            int k5 = k2 - l2;
            if(k5 <= 50)
                k5 = 50;
            if(j3 > 0)
            {
                k3 /= i3;
                l3 /= k5;
            } else
            {
                l3 /= i3;
                k3 /= k5;
            }
            if(i4 > 0)
            {
                i5 /= i3;
                k4 /= k5;
            } else
            {
                k4 /= i3;
                i5 /= k5;
            }
            int i6 = anInt1602 - Class31_Sub3_Sub1_Sub1.anInt1468;
            int k6 = anInt1603 - Class31_Sub3_Sub1_Sub1.anInt1469;
            if(i6 > k3 && i6 < l3 && k6 > i5 && k6 < k4)
                if(aBoolean1576)
                    anIntArray1605[anInt1604++] = i2;
                else
                    flag1 = true;
        }
        int l5 = Class31_Sub3_Sub1_Sub1.anInt1468;
        int j6 = Class31_Sub3_Sub1_Sub1.anInt1469;
        int l6 = 0;
        int i7 = 0;
        if(i != 0)
        {
            l6 = anIntArray1606[i];
            i7 = anIntArray1607[i];
        }
        for(int j7 = 0; j7 < anInt1544; j7++)
        {
            int k7 = anIntArray1545[j7];
            int l7 = anIntArray1546[j7];
            int i8 = anIntArray1547[j7];
            if(i != 0)
            {
                int j8 = i8 * l6 + k7 * i7 >> 16;
                i8 = i8 * i7 - k7 * l6 >> 16;
                k7 = j8;
            }
            k7 += j1;
            l7 += k1;
            i8 += l1;
            int k8 = i8 * l + k7 * i1 >> 16;
            i8 = i8 * i1 - k7 * l >> 16;
            k7 = k8;
            k8 = l7 * k - i8 * j >> 16;
            i8 = l7 * j + i8 * k >> 16;
            l7 = k8;
            anIntArray1584[j7] = i8 - k2;
            if(i8 >= 50)
            {
                anIntArray1582[j7] = l5 + (k7 << 9) / i8;
                anIntArray1583[j7] = j6 + (l7 << 9) / i8;
            } else
            {
                anIntArray1582[j7] = -5000;
                flag = true;
            }
            if(flag || anInt1560 > 0)
            {
                anIntArray1585[j7] = k7;
                anIntArray1586[j7] = l7;
                anIntArray1587[j7] = i8;
            }
        }

        try
        {
            method489(flag, flag1, i2);
            return;
        }
        catch(Exception _ex)
        {
            return;
        }
    }

    public void method489(boolean flag, boolean flag1, int i)
    {
        for(int j = 0; j < anInt1569; j++)
            anIntArray1588[j] = 0;

        for(int k = 0; k < anInt1548; k++)
            if(anIntArray1555 == null || anIntArray1555[k] != -1)
            {
                int l = anIntArray1549[k];
                int k1 = anIntArray1550[k];
                int j2 = anIntArray1551[k];
                int i3 = anIntArray1582[l];
                int l3 = anIntArray1582[k1];
                int k4 = anIntArray1582[j2];
                if(flag && (i3 == -5000 || l3 == -5000 || k4 == -5000))
                {
                    aBooleanArray1581[k] = true;
                    int j5 = (anIntArray1584[l] + anIntArray1584[k1] + anIntArray1584[j2]) / 3 + anInt1570;
                    anIntArrayArray1589[j5][anIntArray1588[j5]++] = k;
                } else
                {
                    if(flag1 && method492(anInt1602, anInt1603, anIntArray1583[l], anIntArray1583[k1], anIntArray1583[j2], i3, l3, k4))
                    {
                        anIntArray1605[anInt1604++] = i;
                        flag1 = false;
                    }
                    if((i3 - l3) * (anIntArray1583[j2] - anIntArray1583[k1]) - (anIntArray1583[l] - anIntArray1583[k1]) * (k4 - l3) > 0)
                    {
                        aBooleanArray1581[k] = false;
                        if(i3 < 0 || l3 < 0 || k4 < 0 || i3 > Class31_Sub3_Sub1.anInt1418 || l3 > Class31_Sub3_Sub1.anInt1418 || k4 > Class31_Sub3_Sub1.anInt1418)
                            aBooleanArray1580[k] = true;
                        else
                            aBooleanArray1580[k] = false;
                        int k5 = (anIntArray1584[l] + anIntArray1584[k1] + anIntArray1584[j2]) / 3 + anInt1570;
                        anIntArrayArray1589[k5][anIntArray1588[k5]++] = k;
                    }
                }
            }

        if(anIntArray1556 == null)
        {
            for(int i1 = anInt1569 - 1; i1 >= 0; i1--)
            {
                int l1 = anIntArray1588[i1];
                if(l1 > 0)
                {
                    int ai[] = anIntArrayArray1589[i1];
                    for(int j3 = 0; j3 < l1; j3++)
                        method490(ai[j3]);

                }
            }

            return;
        }
        for(int j1 = 0; j1 < 12; j1++)
        {
            anIntArray1590[j1] = 0;
            anIntArray1594[j1] = 0;
        }

        for(int i2 = anInt1569 - 1; i2 >= 0; i2--)
        {
            int k2 = anIntArray1588[i2];
            if(k2 > 0)
            {
                int ai1[] = anIntArrayArray1589[i2];
                for(int i4 = 0; i4 < k2; i4++)
                {
                    int l4 = ai1[i4];
                    int l5 = anIntArray1556[l4];
                    int j6 = anIntArray1590[l5]++;
                    anIntArrayArray1591[l5][j6] = l4;
                    if(l5 < 10)
                        anIntArray1594[l5] += i2;
                    else
                    if(l5 == 10)
                        anIntArray1592[j6] = i2;
                    else
                        anIntArray1593[j6] = i2;
                }

            }
        }

        int l2 = 0;
        if(anIntArray1590[1] > 0 || anIntArray1590[2] > 0)
            l2 = (anIntArray1594[1] + anIntArray1594[2]) / (anIntArray1590[1] + anIntArray1590[2]);
        int k3 = 0;
        if(anIntArray1590[3] > 0 || anIntArray1590[4] > 0)
            k3 = (anIntArray1594[3] + anIntArray1594[4]) / (anIntArray1590[3] + anIntArray1590[4]);
        int j4 = 0;
        if(anIntArray1590[6] > 0 || anIntArray1590[8] > 0)
            j4 = (anIntArray1594[6] + anIntArray1594[8]) / (anIntArray1590[6] + anIntArray1590[8]);
        int i6 = 0;
        int k6 = anIntArray1590[10];
        int ai2[] = anIntArrayArray1591[10];
        int ai3[] = anIntArray1592;
        if(i6 == k6)
        {
            i6 = 0;
            k6 = anIntArray1590[11];
            ai2 = anIntArrayArray1591[11];
            ai3 = anIntArray1593;
        }
        int i5;
        if(i6 < k6)
            i5 = ai3[i6];
        else
            i5 = -1000;
        for(int l6 = 0; l6 < 10; l6++)
        {
            while(l6 == 0 && i5 > l2) 
            {
                method490(ai2[i6++]);
                if(i6 == k6 && ai2 != anIntArrayArray1591[11])
                {
                    i6 = 0;
                    k6 = anIntArray1590[11];
                    ai2 = anIntArrayArray1591[11];
                    ai3 = anIntArray1593;
                }
                if(i6 < k6)
                    i5 = ai3[i6];
                else
                    i5 = -1000;
            }
            while(l6 == 3 && i5 > k3) 
            {
                method490(ai2[i6++]);
                if(i6 == k6 && ai2 != anIntArrayArray1591[11])
                {
                    i6 = 0;
                    k6 = anIntArray1590[11];
                    ai2 = anIntArrayArray1591[11];
                    ai3 = anIntArray1593;
                }
                if(i6 < k6)
                    i5 = ai3[i6];
                else
                    i5 = -1000;
            }
            while(l6 == 5 && i5 > j4) 
            {
                method490(ai2[i6++]);
                if(i6 == k6 && ai2 != anIntArrayArray1591[11])
                {
                    i6 = 0;
                    k6 = anIntArray1590[11];
                    ai2 = anIntArrayArray1591[11];
                    ai3 = anIntArray1593;
                }
                if(i6 < k6)
                    i5 = ai3[i6];
                else
                    i5 = -1000;
            }
            int i7 = anIntArray1590[l6];
            int ai4[] = anIntArrayArray1591[l6];
            for(int j7 = 0; j7 < i7; j7++)
                method490(ai4[j7]);

        }

        while(i5 != -1000) 
        {
            method490(ai2[i6++]);
            if(i6 == k6 && ai2 != anIntArrayArray1591[11])
            {
                i6 = 0;
                ai2 = anIntArrayArray1591[11];
                k6 = anIntArray1590[11];
                ai3 = anIntArray1593;
            }
            if(i6 < k6)
                i5 = ai3[i6];
            else
                i5 = -1000;
        }
    }

    public void method490(int i)
    {
        if(aBooleanArray1581[i])
        {
            method491(i);
            return;
        }
        int j = anIntArray1549[i];
        int k = anIntArray1550[i];
        int l = anIntArray1551[i];
        Class31_Sub3_Sub1_Sub1.aBoolean1464 = aBooleanArray1580[i];
        if(anIntArray1557 == null)
            Class31_Sub3_Sub1_Sub1.anInt1467 = 0;
        else
            Class31_Sub3_Sub1_Sub1.anInt1467 = anIntArray1557[i];
        int i1;
        if(anIntArray1555 == null)
            i1 = 0;
        else
            i1 = anIntArray1555[i] & 3;
        if(i1 == 0)
        {
            Class31_Sub3_Sub1_Sub1.method368(anIntArray1583[j], anIntArray1583[k], anIntArray1583[l], anIntArray1582[j], anIntArray1582[k], anIntArray1582[l], anIntArray1552[i], anIntArray1553[i], anIntArray1554[i]);
            return;
        }
        if(i1 == 1)
        {
            Class31_Sub3_Sub1_Sub1.method370(anIntArray1583[j], anIntArray1583[k], anIntArray1583[l], anIntArray1582[j], anIntArray1582[k], anIntArray1582[l], anIntArray1608[anIntArray1552[i]]);
            return;
        }
        if(i1 == 2)
        {
            int j1 = anIntArray1555[i] >> 2;
            int l1 = anIntArray1561[j1];
            int j2 = anIntArray1562[j1];
            int l2 = anIntArray1563[j1];
            Class31_Sub3_Sub1_Sub1.method372(anIntArray1583[j], anIntArray1583[k], anIntArray1583[l], anIntArray1582[j], anIntArray1582[k], anIntArray1582[l], anIntArray1552[i], anIntArray1553[i], anIntArray1554[i], anIntArray1585[l1], anIntArray1585[j2], anIntArray1585[l2], anIntArray1586[l1], anIntArray1586[j2], anIntArray1586[l2], anIntArray1587[l1], anIntArray1587[j2], anIntArray1587[l2], anIntArray1558[i]);
            return;
        }
        if(i1 == 3)
        {
            int k1 = anIntArray1555[i] >> 2;
            int i2 = anIntArray1561[k1];
            int k2 = anIntArray1562[k1];
            int i3 = anIntArray1563[k1];
            Class31_Sub3_Sub1_Sub1.method372(anIntArray1583[j], anIntArray1583[k], anIntArray1583[l], anIntArray1582[j], anIntArray1582[k], anIntArray1582[l], anIntArray1552[i], anIntArray1552[i], anIntArray1552[i], anIntArray1585[i2], anIntArray1585[k2], anIntArray1585[i3], anIntArray1586[i2], anIntArray1586[k2], anIntArray1586[i3], anIntArray1587[i2], anIntArray1587[k2], anIntArray1587[i3], anIntArray1558[i]);
        }
    }

    public void method491(int i)
    {
        int j = Class31_Sub3_Sub1_Sub1.anInt1468;
        int k = Class31_Sub3_Sub1_Sub1.anInt1469;
        int l = 0;
        int i1 = anIntArray1549[i];
        int j1 = anIntArray1550[i];
        int k1 = anIntArray1551[i];
        int l1 = anIntArray1587[i1];
        int i2 = anIntArray1587[j1];
        int j2 = anIntArray1587[k1];
        if(l1 >= 50)
        {
            anIntArray1595[l] = anIntArray1582[i1];
            anIntArray1596[l] = anIntArray1583[i1];
            anIntArray1597[l++] = anIntArray1552[i];
        } else
        {
            int k2 = anIntArray1585[i1];
            int k3 = anIntArray1586[i1];
            int k4 = anIntArray1552[i];
            if(j2 >= 50)
            {
                int k5 = (50 - l1) * anIntArray1609[j2 - l1];
                anIntArray1595[l] = j + (k2 + ((anIntArray1585[k1] - k2) * k5 >> 16) << 9) / 50;
                anIntArray1596[l] = k + (k3 + ((anIntArray1586[k1] - k3) * k5 >> 16) << 9) / 50;
                anIntArray1597[l++] = k4 + ((anIntArray1554[i] - k4) * k5 >> 16);
            }
            if(i2 >= 50)
            {
                int l5 = (50 - l1) * anIntArray1609[i2 - l1];
                anIntArray1595[l] = j + (k2 + ((anIntArray1585[j1] - k2) * l5 >> 16) << 9) / 50;
                anIntArray1596[l] = k + (k3 + ((anIntArray1586[j1] - k3) * l5 >> 16) << 9) / 50;
                anIntArray1597[l++] = k4 + ((anIntArray1553[i] - k4) * l5 >> 16);
            }
        }
        if(i2 >= 50)
        {
            anIntArray1595[l] = anIntArray1582[j1];
            anIntArray1596[l] = anIntArray1583[j1];
            anIntArray1597[l++] = anIntArray1553[i];
        } else
        {
            int l2 = anIntArray1585[j1];
            int l3 = anIntArray1586[j1];
            int l4 = anIntArray1553[i];
            if(l1 >= 50)
            {
                int i6 = (50 - i2) * anIntArray1609[l1 - i2];
                anIntArray1595[l] = j + (l2 + ((anIntArray1585[i1] - l2) * i6 >> 16) << 9) / 50;
                anIntArray1596[l] = k + (l3 + ((anIntArray1586[i1] - l3) * i6 >> 16) << 9) / 50;
                anIntArray1597[l++] = l4 + ((anIntArray1552[i] - l4) * i6 >> 16);
            }
            if(j2 >= 50)
            {
                int j6 = (50 - i2) * anIntArray1609[j2 - i2];
                anIntArray1595[l] = j + (l2 + ((anIntArray1585[k1] - l2) * j6 >> 16) << 9) / 50;
                anIntArray1596[l] = k + (l3 + ((anIntArray1586[k1] - l3) * j6 >> 16) << 9) / 50;
                anIntArray1597[l++] = l4 + ((anIntArray1554[i] - l4) * j6 >> 16);
            }
        }
        if(j2 >= 50)
        {
            anIntArray1595[l] = anIntArray1582[k1];
            anIntArray1596[l] = anIntArray1583[k1];
            anIntArray1597[l++] = anIntArray1554[i];
        } else
        {
            int i3 = anIntArray1585[k1];
            int i4 = anIntArray1586[k1];
            int i5 = anIntArray1554[i];
            if(i2 >= 50)
            {
                int k6 = (50 - j2) * anIntArray1609[i2 - j2];
                anIntArray1595[l] = j + (i3 + ((anIntArray1585[j1] - i3) * k6 >> 16) << 9) / 50;
                anIntArray1596[l] = k + (i4 + ((anIntArray1586[j1] - i4) * k6 >> 16) << 9) / 50;
                anIntArray1597[l++] = i5 + ((anIntArray1553[i] - i5) * k6 >> 16);
            }
            if(l1 >= 50)
            {
                int l6 = (50 - j2) * anIntArray1609[l1 - j2];
                anIntArray1595[l] = j + (i3 + ((anIntArray1585[i1] - i3) * l6 >> 16) << 9) / 50;
                anIntArray1596[l] = k + (i4 + ((anIntArray1586[i1] - i4) * l6 >> 16) << 9) / 50;
                anIntArray1597[l++] = i5 + ((anIntArray1552[i] - i5) * l6 >> 16);
            }
        }
        int j3 = anIntArray1595[0];
        int j4 = anIntArray1595[1];
        int j5 = anIntArray1595[2];
        int i7 = anIntArray1596[0];
        int j7 = anIntArray1596[1];
        int k7 = anIntArray1596[2];
        if((j3 - j4) * (k7 - j7) - (i7 - j7) * (j5 - j4) > 0)
        {
            Class31_Sub3_Sub1_Sub1.aBoolean1464 = false;
            if(l == 3)
            {
                if(j3 < 0 || j4 < 0 || j5 < 0 || j3 > Class31_Sub3_Sub1.anInt1418 || j4 > Class31_Sub3_Sub1.anInt1418 || j5 > Class31_Sub3_Sub1.anInt1418)
                    Class31_Sub3_Sub1_Sub1.aBoolean1464 = true;
                int l7;
                if(anIntArray1555 == null)
                    l7 = 0;
                else
                    l7 = anIntArray1555[i] & 3;
                if(l7 == 0)
                    Class31_Sub3_Sub1_Sub1.method368(i7, j7, k7, j3, j4, j5, anIntArray1597[0], anIntArray1597[1], anIntArray1597[2]);
                else
                if(l7 == 1)
                    Class31_Sub3_Sub1_Sub1.method370(i7, j7, k7, j3, j4, j5, anIntArray1608[anIntArray1552[i]]);
                else
                if(l7 == 2)
                {
                    int j8 = anIntArray1555[i] >> 2;
                    int k9 = anIntArray1561[j8];
                    int k10 = anIntArray1562[j8];
                    int k11 = anIntArray1563[j8];
                    Class31_Sub3_Sub1_Sub1.method372(i7, j7, k7, j3, j4, j5, anIntArray1597[0], anIntArray1597[1], anIntArray1597[2], anIntArray1585[k9], anIntArray1585[k10], anIntArray1585[k11], anIntArray1586[k9], anIntArray1586[k10], anIntArray1586[k11], anIntArray1587[k9], anIntArray1587[k10], anIntArray1587[k11], anIntArray1558[i]);
                } else
                if(l7 == 3)
                {
                    int k8 = anIntArray1555[i] >> 2;
                    int l9 = anIntArray1561[k8];
                    int l10 = anIntArray1562[k8];
                    int l11 = anIntArray1563[k8];
                    Class31_Sub3_Sub1_Sub1.method372(i7, j7, k7, j3, j4, j5, anIntArray1552[i], anIntArray1552[i], anIntArray1552[i], anIntArray1585[l9], anIntArray1585[l10], anIntArray1585[l11], anIntArray1586[l9], anIntArray1586[l10], anIntArray1586[l11], anIntArray1587[l9], anIntArray1587[l10], anIntArray1587[l11], anIntArray1558[i]);
                }
            }
            if(l == 4)
            {
                if(j3 < 0 || j4 < 0 || j5 < 0 || j3 > Class31_Sub3_Sub1.anInt1418 || j4 > Class31_Sub3_Sub1.anInt1418 || j5 > Class31_Sub3_Sub1.anInt1418 || anIntArray1595[3] < 0 || anIntArray1595[3] > Class31_Sub3_Sub1.anInt1418)
                    Class31_Sub3_Sub1_Sub1.aBoolean1464 = true;
                int i8;
                if(anIntArray1555 == null)
                    i8 = 0;
                else
                    i8 = anIntArray1555[i] & 3;
                if(i8 == 0)
                {
                    Class31_Sub3_Sub1_Sub1.method368(i7, j7, k7, j3, j4, j5, anIntArray1597[0], anIntArray1597[1], anIntArray1597[2]);
                    Class31_Sub3_Sub1_Sub1.method368(i7, k7, anIntArray1596[3], j3, j5, anIntArray1595[3], anIntArray1597[0], anIntArray1597[2], anIntArray1597[3]);
                    return;
                }
                if(i8 == 1)
                {
                    int l8 = anIntArray1608[anIntArray1552[i]];
                    Class31_Sub3_Sub1_Sub1.method370(i7, j7, k7, j3, j4, j5, l8);
                    Class31_Sub3_Sub1_Sub1.method370(i7, k7, anIntArray1596[3], j3, j5, anIntArray1595[3], l8);
                    return;
                }
                if(i8 == 2)
                {
                    int i9 = anIntArray1555[i] >> 2;
                    int i10 = anIntArray1561[i9];
                    int i11 = anIntArray1562[i9];
                    int i12 = anIntArray1563[i9];
                    Class31_Sub3_Sub1_Sub1.method372(i7, j7, k7, j3, j4, j5, anIntArray1597[0], anIntArray1597[1], anIntArray1597[2], anIntArray1585[i10], anIntArray1585[i11], anIntArray1585[i12], anIntArray1586[i10], anIntArray1586[i11], anIntArray1586[i12], anIntArray1587[i10], anIntArray1587[i11], anIntArray1587[i12], anIntArray1558[i]);
                    Class31_Sub3_Sub1_Sub1.method372(i7, k7, anIntArray1596[3], j3, j5, anIntArray1595[3], anIntArray1597[0], anIntArray1597[2], anIntArray1597[3], anIntArray1585[i10], anIntArray1585[i11], anIntArray1585[i12], anIntArray1586[i10], anIntArray1586[i11], anIntArray1586[i12], anIntArray1587[i10], anIntArray1587[i11], anIntArray1587[i12], anIntArray1558[i]);
                    return;
                }
                if(i8 == 3)
                {
                    int j9 = anIntArray1555[i] >> 2;
                    int j10 = anIntArray1561[j9];
                    int j11 = anIntArray1562[j9];
                    int j12 = anIntArray1563[j9];
                    Class31_Sub3_Sub1_Sub1.method372(i7, j7, k7, j3, j4, j5, anIntArray1552[i], anIntArray1552[i], anIntArray1552[i], anIntArray1585[j10], anIntArray1585[j11], anIntArray1585[j12], anIntArray1586[j10], anIntArray1586[j11], anIntArray1586[j12], anIntArray1587[j10], anIntArray1587[j11], anIntArray1587[j12], anIntArray1558[i]);
                    Class31_Sub3_Sub1_Sub1.method372(i7, k7, anIntArray1596[3], j3, j5, anIntArray1595[3], anIntArray1552[i], anIntArray1552[i], anIntArray1552[i], anIntArray1585[j10], anIntArray1585[j11], anIntArray1585[j12], anIntArray1586[j10], anIntArray1586[j11], anIntArray1586[j12], anIntArray1587[j10], anIntArray1587[j11], anIntArray1587[j12], anIntArray1558[i]);
                }
            }
        }
    }

    public boolean method492(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1)
    {
        if(j < k && j < l && j < i1)
            return false;
        if(j > k && j > l && j > i1)
            return false;
        if(i < j1 && i < k1 && i < l1)
            return false;
        return i <= j1 || i <= k1 || i <= l1;
    }

    public boolean aBoolean1535;
    public boolean aBoolean1536;
    public int anInt1537;
    public static int anInt1538;
    public static Class31_Sub3_Sub3_Sub2 aClass31_Sub3_Sub3_Sub2_1539 = new Class31_Sub3_Sub3_Sub2(true);
    public static int anIntArray1540[] = new int[2000];
    public static int anIntArray1541[] = new int[2000];
    public static int anIntArray1542[] = new int[2000];
    public static int anIntArray1543[] = new int[2000];
    public int anInt1544;
    public int anIntArray1545[];
    public int anIntArray1546[];
    public int anIntArray1547[];
    public int anInt1548;
    public int anIntArray1549[];
    public int anIntArray1550[];
    public int anIntArray1551[];
    public int anIntArray1552[];
    public int anIntArray1553[];
    public int anIntArray1554[];
    public int anIntArray1555[];
    public int anIntArray1556[];
    public int anIntArray1557[];
    public int anIntArray1558[];
    public int anInt1559;
    public int anInt1560;
    public int anIntArray1561[];
    public int anIntArray1562[];
    public int anIntArray1563[];
    public int anInt1564;
    public int anInt1565;
    public int anInt1566;
    public int anInt1567;
    public int anInt1568;
    public int anInt1569;
    public int anInt1570;
    public int anInt1571;
    public int anIntArray1572[];
    public int anIntArray1573[];
    public int anIntArrayArray1574[][];
    public int anIntArrayArray1575[][];
    public boolean aBoolean1576;
    public Class46 aClass46Array1577[];
    public static Class1 aClass1Array1578[];
    public static Class27 aClass27_1579;
    public static boolean aBooleanArray1580[] = new boolean[4096];
    public static boolean aBooleanArray1581[] = new boolean[4096];
    public static int anIntArray1582[] = new int[4096];
    public static int anIntArray1583[] = new int[4096];
    public static int anIntArray1584[] = new int[4096];
    public static int anIntArray1585[] = new int[4096];
    public static int anIntArray1586[] = new int[4096];
    public static int anIntArray1587[] = new int[4096];
    public static int anIntArray1588[] = new int[1500];
    public static int anIntArrayArray1589[][] = new int[1500][512];
    public static int anIntArray1590[] = new int[12];
    public static int anIntArrayArray1591[][] = new int[12][2000];
    public static int anIntArray1592[] = new int[2000];
    public static int anIntArray1593[] = new int[2000];
    public static int anIntArray1594[] = new int[12];
    public static int anIntArray1595[] = new int[10];
    public static int anIntArray1596[] = new int[10];
    public static int anIntArray1597[] = new int[10];
    public static int anInt1598;
    public static int anInt1599;
    public static int anInt1600;
    public static boolean aBoolean1601;
    public static int anInt1602;
    public static int anInt1603;
    public static int anInt1604;
    public static int anIntArray1605[] = new int[1000];
    public static int anIntArray1606[];
    public static int anIntArray1607[];
    public static int anIntArray1608[];
    public static int anIntArray1609[];

    static 
    {
        anIntArray1606 = Class31_Sub3_Sub1_Sub1.anIntArray1472;
        anIntArray1607 = Class31_Sub3_Sub1_Sub1.anIntArray1473;
        anIntArray1608 = Class31_Sub3_Sub1_Sub1.anIntArray1484;
        anIntArray1609 = Class31_Sub3_Sub1_Sub1.anIntArray1471;
    }
}
