// 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.io.PrintStream;
import sign.signlink;

public class Class34
{

    public Class34(int i, int ai[][][], int j, int k, int l)
    {
        anInt489 = 5;
        anInt490 = -308;
        aBoolean493 = false;
        aClass47Array502 = new Class47[5000];
        anIntArray544 = new int[10000];
        anIntArray545 = new int[10000];
        anInt495 = l;
        anInt496 = j;
        anInt497 = i;
        aClass31_Sub1ArrayArrayArray499 = new Class31_Sub1[l][j][i];
        if(k != anInt489)
        {
            throw new NullPointerException();
        } else
        {
            anIntArrayArrayArray503 = new int[l][j + 1][i + 1];
            anIntArrayArrayArray498 = ai;
            method511((byte)-70);
            return;
        }
    }

    public static void method510(boolean flag)
    {
        aClass47Array520 = null;
        if(flag)
            anInt492 = -119;
        anIntArray531 = null;
        aClass7ArrayArray532 = null;
        aClass28_535 = null;
        aBooleanArrayArrayArrayArray549 = null;
        aBooleanArrayArray550 = null;
    }

    public void method511(byte byte0)
    {
        for(int i = 0; i < anInt495; i++)
        {
            for(int j = 0; j < anInt496; j++)
            {
                for(int l = 0; l < anInt497; l++)
                    aClass31_Sub1ArrayArrayArray499[i][j][l] = null;

            }

        }

        for(int k = 0; k < anInt530; k++)
        {
            for(int i1 = 0; i1 < anIntArray531[k]; i1++)
                aClass7ArrayArray532[k][i1] = null;

            anIntArray531[k] = 0;
        }

        if(byte0 != -70)
            return;
        for(int j1 = 0; j1 < anInt501; j1++)
            aClass47Array502[j1] = null;

        anInt501 = 0;
        for(int k1 = 0; k1 < aClass47Array520.length; k1++)
            aClass47Array520[k1] = null;

    }

    public void method512(int i, int j)
    {
        if(j != -40620)
        {
            for(int k = 1; k > 0; k++);
        }
        anInt500 = i;
        for(int l = 0; l < anInt496; l++)
        {
            for(int i1 = 0; i1 < anInt497; i1++)
                if(aClass31_Sub1ArrayArrayArray499[i][l][i1] == null)
                    aClass31_Sub1ArrayArrayArray499[i][l][i1] = new Class31_Sub1(i, l, i1);

        }

    }

    public void method513(int i, int j, boolean flag)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[0][i][j];
        if(flag)
            aBoolean493 = !aBoolean493;
        for(int k = 0; k < 3; k++)
        {
            Class31_Sub1 class31_sub1_1 = aClass31_Sub1ArrayArrayArray499[k][i][j] = aClass31_Sub1ArrayArrayArray499[k + 1][i][j];
            if(class31_sub1_1 != null)
            {
                class31_sub1_1.anInt1368--;
                for(int l = 0; l < class31_sub1_1.anInt1378; l++)
                {
                    Class47 class47 = class31_sub1_1.aClass47Array1379[l];
                    if((class47.anInt727 >> 29 & 3) == 2 && class47.anInt721 == i && class47.anInt723 == j)
                        class47.anInt715--;
                }

            }
        }

        if(aClass31_Sub1ArrayArrayArray499[0][i][j] == null)
            aClass31_Sub1ArrayArrayArray499[0][i][j] = new Class31_Sub1(0, i, j);
        aClass31_Sub1ArrayArrayArray499[0][i][j].aClass31_Sub1_1390 = class31_sub1;
        aClass31_Sub1ArrayArrayArray499[3][i][j] = null;
    }

    public static void method514(int i, int j, int k, int l, int i1, int j1, int k1, int l1, 
            int i2)
    {
        Class7 class7 = new Class7();
        class7.anInt121 = k / 128;
        class7.anInt122 = i / 128;
        if(i1 != 6)
        {
            return;
        } else
        {
            class7.anInt123 = i2 / 128;
            class7.anInt124 = l / 128;
            class7.anInt125 = k1;
            class7.anInt126 = k;
            class7.anInt127 = i;
            class7.anInt128 = i2;
            class7.anInt129 = l;
            class7.anInt130 = l1;
            class7.anInt131 = j;
            aClass7ArrayArray532[j1][anIntArray531[j1]++] = class7;
            return;
        }
    }

    public void method515(int i, int j, int k, int l)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][k];
        if(class31_sub1 == null)
        {
            return;
        } else
        {
            aClass31_Sub1ArrayArrayArray499[i][j][k].anInt1382 = l;
            return;
        }
    }

    public void method516(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, int i2, int j2, int k2, int l2, int i3, int j3, 
            int k3, int l3, int i4, int j4, int k4, int l4)
    {
        if(l == 0)
        {
            Class20 class20 = new Class20(k2, l2, i3, j3, -1, k4, false);
            for(int i5 = i; i5 >= 0; i5--)
                if(aClass31_Sub1ArrayArrayArray499[i5][j][k] == null)
                    aClass31_Sub1ArrayArrayArray499[i5][j][k] = new Class31_Sub1(i5, j, k);

            aClass31_Sub1ArrayArrayArray499[i][j][k].aClass20_1372 = class20;
            return;
        }
        if(l == 1)
        {
            Class20 class20_1 = new Class20(k3, l3, i4, j4, j1, l4, k1 == l1 && k1 == i2 && k1 == j2);
            for(int j5 = i; j5 >= 0; j5--)
                if(aClass31_Sub1ArrayArrayArray499[j5][j][k] == null)
                    aClass31_Sub1ArrayArrayArray499[j5][j][k] = new Class31_Sub1(j5, j, k);

            aClass31_Sub1ArrayArrayArray499[i][j][k].aClass20_1372 = class20_1;
            return;
        }
        Class50 class50 = new Class50(k2, k1, i4, j4, l4, j, k, l3, l, i2, i3, l2, k4, j3, true, l1, k3, j1, i1, j2);
        for(int k5 = i; k5 >= 0; k5--)
            if(aClass31_Sub1ArrayArrayArray499[k5][j][k] == null)
                aClass31_Sub1ArrayArrayArray499[k5][j][k] = new Class31_Sub1(k5, j, k);

        aClass31_Sub1ArrayArrayArray499[i][j][k].aClass50_1373 = class50;
    }

    public void method517(Class31_Sub3_Sub3 class31_sub3_sub3, byte byte0, int i, int j, int k, int l, byte byte1, 
            int i1)
    {
        if(class31_sub3_sub3 == null)
            return;
        Class29 class29 = new Class29();
        class29.aClass31_Sub3_Sub3_392 = class31_sub3_sub3;
        class29.anInt390 = l * 128 + 64;
        class29.anInt391 = i * 128 + 64;
        class29.anInt389 = i1;
        class29.anInt393 = k;
        class29.aByte394 = byte1;
        if(byte0 != 7)
            anInt489 = -62;
        if(aClass31_Sub1ArrayArrayArray499[j][l][i] == null)
            aClass31_Sub1ArrayArrayArray499[j][l][i] = new Class31_Sub1(j, l, i);
        aClass31_Sub1ArrayArrayArray499[j][l][i].aClass29_1376 = class29;
    }

    public void method518(int i, Class31_Sub3_Sub3 class31_sub3_sub3, int j, int k, Class31_Sub3_Sub3 class31_sub3_sub3_1, Class31_Sub3_Sub3 class31_sub3_sub3_2, int l, 
            int i1, int j1)
    {
        Class42 class42 = new Class42();
        class42.aClass31_Sub3_Sub3_661 = class31_sub3_sub3;
        class42.anInt659 = j1 * 128 + 64;
        class42.anInt660 = k * 128 + 64;
        class42.anInt658 = l;
        class42.anInt664 = i1;
        class42.aClass31_Sub3_Sub3_662 = class31_sub3_sub3_2;
        class42.aClass31_Sub3_Sub3_663 = class31_sub3_sub3_1;
        j = 47 / j;
        int k1 = 0;
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j1][k];
        if(class31_sub1 != null)
        {
            for(int l1 = 0; l1 < class31_sub1.anInt1378; l1++)
                if(class31_sub1.aClass47Array1379[l1].aClass31_Sub3_Sub3_719 instanceof Class31_Sub3_Sub3_Sub2)
                {
                    int i2 = ((Class31_Sub3_Sub3_Sub2)class31_sub1.aClass47Array1379[l1].aClass31_Sub3_Sub3_719).anInt1571;
                    if(i2 > k1)
                        k1 = i2;
                }

        }
        class42.anInt665 = k1;
        if(aClass31_Sub1ArrayArrayArray499[i][j1][k] == null)
            aClass31_Sub1ArrayArrayArray499[i][j1][k] = new Class31_Sub1(i, j1, k);
        aClass31_Sub1ArrayArrayArray499[i][j1][k].aClass42_1377 = class42;
    }

    public void method519(int i, int j, int k, Class31_Sub3_Sub3 class31_sub3_sub3, int l, int i1, int j1, 
            int k1, Class31_Sub3_Sub3 class31_sub3_sub3_1, byte byte0, int l1)
    {
        if(class31_sub3_sub3_1 == null && class31_sub3_sub3 == null)
            return;
        Class14 class14 = new Class14();
        if(i1 != 0)
        {
            for(int i2 = 1; i2 > 0; i2++);
        }
        class14.anInt234 = k1;
        class14.aByte235 = byte0;
        class14.anInt228 = l1 * 128 + 64;
        class14.anInt229 = k * 128 + 64;
        class14.anInt227 = j1;
        class14.aClass31_Sub3_Sub3_232 = class31_sub3_sub3_1;
        class14.aClass31_Sub3_Sub3_233 = class31_sub3_sub3;
        class14.anInt230 = l;
        class14.anInt231 = j;
        for(int j2 = i; j2 >= 0; j2--)
            if(aClass31_Sub1ArrayArrayArray499[j2][l1][k] == null)
                aClass31_Sub1ArrayArrayArray499[j2][l1][k] = new Class31_Sub1(j2, l1, k);

        aClass31_Sub1ArrayArrayArray499[i][l1][k].aClass14_1374 = class14;
    }

    public void method520(int i, Class31_Sub3_Sub3 class31_sub3_sub3, int j, int k, int l, byte byte0, int i1, 
            int j1, int k1, byte byte1, int l1, int i2)
    {
        if(class31_sub3_sub3 == null)
            return;
        Class40 class40 = new Class40();
        if(byte1 != -93)
            anInt489 = -287;
        class40.anInt606 = j1;
        class40.aByte607 = byte0;
        class40.anInt601 = i2 * 128 + 64 + i1;
        class40.anInt602 = k * 128 + 64 + j;
        class40.anInt600 = i;
        class40.aClass31_Sub3_Sub3_605 = class31_sub3_sub3;
        class40.anInt603 = l;
        class40.anInt604 = l1;
        for(int j2 = k1; j2 >= 0; j2--)
            if(aClass31_Sub1ArrayArrayArray499[j2][i2][k] == null)
                aClass31_Sub1ArrayArrayArray499[j2][i2][k] = new Class31_Sub1(j2, i2, k);

        aClass31_Sub1ArrayArrayArray499[k1][i2][k].aClass40_1375 = class40;
    }

    public boolean method521(int i, Class31_Sub3_Sub3 class31_sub3_sub3, int j, int k, int l, int i1, byte byte0, 
            int j1, int k1, int l1, int i2)
    {
        if(class31_sub3_sub3 == null)
            return true;
        int j2 = i2 * 128 + 64 * j;
        int k2 = l1 * 128 + 64 * i;
        if(k1 <= 0)
        {
            for(int l2 = 1; l2 > 0; l2++);
        }
        return method524(j1, i2, l1, j, i, j2, k2, l, class31_sub3_sub3, i1, false, k, byte0);
    }

    public boolean method522(Class31_Sub3_Sub3 class31_sub3_sub3, int i, int j, int k, int l, int i1, int j1, 
            int k1, boolean flag, int l1)
    {
        if(class31_sub3_sub3 == null)
            return true;
        int i2 = j1 - k1;
        int j2 = l1 - k1;
        int k2 = j1 + k1;
        int l2 = l1 + k1;
        if(flag)
        {
            if(l > 640 && l < 1408)
                l2 += 128;
            if(l > 1152 && l < 1920)
                k2 += 128;
            if(l > 1664 || l < 384)
                j2 -= 128;
            if(l > 128 && l < 896)
                i2 -= 128;
        }
        for(i2 /= 128; j >= 0;)
            throw new NullPointerException();

        j2 /= 128;
        k2 /= 128;
        l2 /= 128;
        return method524(i, i2, j2, (k2 - i2) + 1, (l2 - j2) + 1, j1, l1, k, class31_sub3_sub3, l, true, i1, (byte)0);
    }

    public boolean method523(int i, int j, int k, int l, int i1, int j1, int k1, 
            Class31_Sub3_Sub3 class31_sub3_sub3, int l1, int i2, int j2, int k2, int l2)
    {
        i2 = 93 / i2;
        if(class31_sub3_sub3 == null)
            return true;
        else
            return method524(j1, k1, j, (l2 - k1) + 1, (l1 - j) + 1, k, j2, i1, class31_sub3_sub3, k2, true, l, (byte)0);
    }

    public boolean method524(int i, int j, int k, int l, int i1, int j1, int k1, 
            int l1, Class31_Sub3_Sub3 class31_sub3_sub3, int i2, boolean flag, int j2, byte byte0)
    {
        for(int k2 = j; k2 < j + l; k2++)
        {
            for(int l2 = k; l2 < k + i1; l2++)
            {
                if(k2 < 0 || l2 < 0 || k2 >= anInt496 || l2 >= anInt497)
                    return false;
                Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][k2][l2];
                if(class31_sub1 != null && class31_sub1.anInt1378 >= 5)
                    return false;
            }

        }

        Class47 class47 = new Class47();
        class47.anInt727 = j2;
        class47.aByte728 = byte0;
        class47.anInt715 = i;
        class47.anInt717 = j1;
        class47.anInt718 = k1;
        class47.anInt716 = l1;
        class47.aClass31_Sub3_Sub3_719 = class31_sub3_sub3;
        class47.anInt720 = i2;
        class47.anInt721 = j;
        class47.anInt723 = k;
        class47.anInt722 = (j + l) - 1;
        class47.anInt724 = (k + i1) - 1;
        for(int i3 = j; i3 < j + l; i3++)
        {
            for(int j3 = k; j3 < k + i1; j3++)
            {
                int k3 = 0;
                if(i3 > j)
                    k3++;
                if(i3 < (j + l) - 1)
                    k3 += 4;
                if(j3 > k)
                    k3 += 8;
                if(j3 < (k + i1) - 1)
                    k3 += 2;
                for(int l3 = i; l3 >= 0; l3--)
                    if(aClass31_Sub1ArrayArrayArray499[l3][i3][j3] == null)
                        aClass31_Sub1ArrayArrayArray499[l3][i3][j3] = new Class31_Sub1(l3, i3, j3);

                Class31_Sub1 class31_sub1_1 = aClass31_Sub1ArrayArrayArray499[i][i3][j3];
                class31_sub1_1.aClass47Array1379[class31_sub1_1.anInt1378] = class47;
                class31_sub1_1.anIntArray1380[class31_sub1_1.anInt1378] = k3;
                class31_sub1_1.anInt1381 |= k3;
                class31_sub1_1.anInt1378++;
            }

        }

        if(flag)
            aClass47Array502[anInt501++] = class47;
        return true;
    }

    public void method525(int i)
    {
        for(int j = 0; j < anInt501; j++)
        {
            Class47 class47 = aClass47Array502[j];
            method526(class47, anInt490);
            aClass47Array502[j] = null;
        }

        anInt501 = 0;
        if(i <= 0)
            aBoolean493 = !aBoolean493;
    }

    public void method526(Class47 class47, int i)
    {
        while(i >= 0) 
            return;
        for(int j = class47.anInt721; j <= class47.anInt722; j++)
        {
            for(int k = class47.anInt723; k <= class47.anInt724; k++)
            {
                Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[class47.anInt715][j][k];
                if(class31_sub1 != null)
                {
                    for(int l = 0; l < class31_sub1.anInt1378; l++)
                    {
                        if(class31_sub1.aClass47Array1379[l] != class47)
                            continue;
                        class31_sub1.anInt1378--;
                        for(int i1 = l; i1 < class31_sub1.anInt1378; i1++)
                        {
                            class31_sub1.aClass47Array1379[i1] = class31_sub1.aClass47Array1379[i1 + 1];
                            class31_sub1.anIntArray1380[i1] = class31_sub1.anIntArray1380[i1 + 1];
                        }

                        class31_sub1.aClass47Array1379[class31_sub1.anInt1378] = null;
                        break;
                    }

                    class31_sub1.anInt1381 = 0;
                    for(int j1 = 0; j1 < class31_sub1.anInt1378; j1++)
                        class31_sub1.anInt1381 |= class31_sub1.anIntArray1380[j1];

                }
            }

        }

    }

    public void method527(int i, int j, int k, int l, int i1)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[l][j][k];
        if(class31_sub1 == null)
            return;
        Class40 class40 = class31_sub1.aClass40_1375;
        if(class40 == null)
            return;
        int j1 = j * 128 + 64;
        int k1 = k * 128 + 64;
        if(i1 != 8)
            aBoolean493 = !aBoolean493;
        class40.anInt601 = j1 + ((class40.anInt601 - j1) * i) / 16;
        class40.anInt602 = k1 + ((class40.anInt602 - k1) * i) / 16;
    }

    public void method528(int i, int j, int k, boolean flag)
    {
        if(!flag)
            aBoolean493 = !aBoolean493;
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][k];
        if(class31_sub1 == null)
        {
            return;
        } else
        {
            class31_sub1.aClass14_1374 = null;
            return;
        }
    }

    public void method529(int i, int j, byte byte0, int k)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][k][j];
        if(class31_sub1 == null)
            return;
        class31_sub1.aClass40_1375 = null;
        if(byte0 != 83)
        {
            for(int l = 1; l > 0; l++);
        }
    }

    public void method530(int i, boolean flag, int j, int k)
    {
        if(!flag)
        {
            for(int l = 1; l > 0; l++);
        }
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][k][j];
        if(class31_sub1 == null)
            return;
        for(int i1 = 0; i1 < class31_sub1.anInt1378; i1++)
        {
            Class47 class47 = class31_sub1.aClass47Array1379[i1];
            if((class47.anInt727 >> 29 & 3) == 2 && class47.anInt721 == k && class47.anInt723 == j)
            {
                method526(class47, anInt490);
                return;
            }
        }

    }

    public void method531(int i, boolean flag, int j, int k)
    {
        if(!flag)
            return;
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[j][i][k];
        if(class31_sub1 == null)
        {
            return;
        } else
        {
            class31_sub1.aClass29_1376 = null;
            return;
        }
    }

    public void method532(int i, int j, int k)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][k];
        if(class31_sub1 == null)
        {
            return;
        } else
        {
            class31_sub1.aClass42_1377 = null;
            return;
        }
    }

    public Class14 method533(int i, byte byte0, int j, int k)
    {
        if(byte0 == 4)
            byte0 = 0;
        else
            throw new NullPointerException();
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[j][k][i];
        if(class31_sub1 == null)
            return null;
        else
            return class31_sub1.aClass14_1374;
    }

    public Class40 method534(boolean flag, int i, int j, int k)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][k];
        if(!flag)
            anInt492 = -422;
        if(class31_sub1 == null)
            return null;
        else
            return class31_sub1.aClass40_1375;
    }

    public Class47 method535(int i, int j, int k, int l)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[k][l][j];
        if(i != -24183)
            anInt490 = 2;
        if(class31_sub1 == null)
            return null;
        for(int i1 = 0; i1 < class31_sub1.anInt1378; i1++)
        {
            Class47 class47 = class31_sub1.aClass47Array1379[i1];
            if((class47.anInt727 >> 29 & 3) == 2 && class47.anInt721 == l && class47.anInt723 == j)
                return class47;
        }

        return null;
    }

    public Class29 method536(byte byte0, int i, int j, int k)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[k][i][j];
        if(byte0 == 8)
            byte0 = 0;
        else
            anInt490 = -246;
        if(class31_sub1 == null || class31_sub1.aClass29_1376 == null)
            return null;
        else
            return class31_sub1.aClass29_1376;
    }

    public int method537(int i, int j, int k)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][k];
        if(class31_sub1 == null || class31_sub1.aClass14_1374 == null)
            return 0;
        else
            return class31_sub1.aClass14_1374.anInt234;
    }

    public int method538(int i, int j, int k, int l)
    {
        if(k != -38326)
            return 0;
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][l];
        if(class31_sub1 == null || class31_sub1.aClass40_1375 == null)
            return 0;
        else
            return class31_sub1.aClass40_1375.anInt606;
    }

    public int method539(int i, int j, int k)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][k];
        if(class31_sub1 == null)
            return 0;
        for(int l = 0; l < class31_sub1.anInt1378; l++)
        {
            Class47 class47 = class31_sub1.aClass47Array1379[l];
            if((class47.anInt727 >> 29 & 3) == 2 && class47.anInt721 == j && class47.anInt723 == k)
                return class47.anInt727;
        }

        return 0;
    }

    public int method540(int i, int j, int k)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][k];
        if(class31_sub1 == null || class31_sub1.aClass29_1376 == null)
            return 0;
        else
            return class31_sub1.aClass29_1376.anInt393;
    }

    public int method541(int i, int j, int k, int l)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i][j][k];
        if(class31_sub1 == null)
            return -1;
        if(class31_sub1.aClass14_1374 != null && class31_sub1.aClass14_1374.anInt234 == l)
            return class31_sub1.aClass14_1374.aByte235 & 0xff;
        if(class31_sub1.aClass40_1375 != null && class31_sub1.aClass40_1375.anInt606 == l)
            return class31_sub1.aClass40_1375.aByte607 & 0xff;
        if(class31_sub1.aClass29_1376 != null && class31_sub1.aClass29_1376.anInt393 == l)
            return class31_sub1.aClass29_1376.aByte394 & 0xff;
        for(int i1 = 0; i1 < class31_sub1.anInt1378; i1++)
            if(class31_sub1.aClass47Array1379[i1].anInt727 == l)
                return class31_sub1.aClass47Array1379[i1].aByte728 & 0xff;

        return -1;
    }

    public void method542(int i, int j, int k, int l)
    {
        if(l <= 0)
            anInt490 = -479;
        for(int i1 = 0; i1 < anInt495; i1++)
        {
            for(int j1 = 0; j1 < anInt496; j1++)
            {
                for(int k1 = 0; k1 < anInt497; k1++)
                {
                    Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[i1][j1][k1];
                    if(class31_sub1 != null)
                    {
                        Class14 class14 = class31_sub1.aClass14_1374;
                        if(class14 != null && class14.aClass31_Sub3_Sub3_232 != null && class14.aClass31_Sub3_Sub3_232.aClass46Array1453 != null)
                        {
                            method544(1, (Class31_Sub3_Sub3_Sub2)class14.aClass31_Sub3_Sub3_232, k1, i1, 1, j1, true);
                            if(class14.aClass31_Sub3_Sub3_233 != null && class14.aClass31_Sub3_Sub3_233.aClass46Array1453 != null)
                            {
                                method544(1, (Class31_Sub3_Sub3_Sub2)class14.aClass31_Sub3_Sub3_233, k1, i1, 1, j1, true);
                                method545((Class31_Sub3_Sub3_Sub2)class14.aClass31_Sub3_Sub3_232, (Class31_Sub3_Sub3_Sub2)class14.aClass31_Sub3_Sub3_233, 0, 0, 0, false);
                                ((Class31_Sub3_Sub3_Sub2)class14.aClass31_Sub3_Sub3_233).method485(j, 0, k, i);
                            }
                            ((Class31_Sub3_Sub3_Sub2)class14.aClass31_Sub3_Sub3_232).method485(j, 0, k, i);
                        }
                        for(int l1 = 0; l1 < class31_sub1.anInt1378; l1++)
                        {
                            Class47 class47 = class31_sub1.aClass47Array1379[l1];
                            if(class47 != null && class47.aClass31_Sub3_Sub3_719 != null && class47.aClass31_Sub3_Sub3_719.aClass46Array1453 != null)
                            {
                                method544((class47.anInt724 - class47.anInt723) + 1, (Class31_Sub3_Sub3_Sub2)class47.aClass31_Sub3_Sub3_719, k1, i1, (class47.anInt722 - class47.anInt721) + 1, j1, true);
                                ((Class31_Sub3_Sub3_Sub2)class47.aClass31_Sub3_Sub3_719).method485(j, 0, k, i);
                            }
                        }

                        Class29 class29 = class31_sub1.aClass29_1376;
                        if(class29 != null && class29.aClass31_Sub3_Sub3_392.aClass46Array1453 != null)
                        {
                            method543(j1, (Class31_Sub3_Sub3_Sub2)class29.aClass31_Sub3_Sub3_392, i1, k1, 9);
                            ((Class31_Sub3_Sub3_Sub2)class29.aClass31_Sub3_Sub3_392).method485(j, 0, k, i);
                        }
                    }
                }

            }

        }

    }

    public void method543(int i, Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2, int j, int k, int l)
    {
        if(l < 9 || l > 9)
            aBoolean488 = !aBoolean488;
        if(i < anInt496)
        {
            Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[j][i + 1][k];
            if(class31_sub1 != null && class31_sub1.aClass29_1376 != null && class31_sub1.aClass29_1376.aClass31_Sub3_Sub3_392.aClass46Array1453 != null)
                method545(class31_sub3_sub3_sub2, (Class31_Sub3_Sub3_Sub2)class31_sub1.aClass29_1376.aClass31_Sub3_Sub3_392, 128, 0, 0, true);
        }
        if(k < anInt496)
        {
            Class31_Sub1 class31_sub1_1 = aClass31_Sub1ArrayArrayArray499[j][i][k + 1];
            if(class31_sub1_1 != null && class31_sub1_1.aClass29_1376 != null && class31_sub1_1.aClass29_1376.aClass31_Sub3_Sub3_392.aClass46Array1453 != null)
                method545(class31_sub3_sub3_sub2, (Class31_Sub3_Sub3_Sub2)class31_sub1_1.aClass29_1376.aClass31_Sub3_Sub3_392, 0, 0, 128, true);
        }
        if(i < anInt496 && k < anInt497)
        {
            Class31_Sub1 class31_sub1_2 = aClass31_Sub1ArrayArrayArray499[j][i + 1][k + 1];
            if(class31_sub1_2 != null && class31_sub1_2.aClass29_1376 != null && class31_sub1_2.aClass29_1376.aClass31_Sub3_Sub3_392.aClass46Array1453 != null)
                method545(class31_sub3_sub3_sub2, (Class31_Sub3_Sub3_Sub2)class31_sub1_2.aClass29_1376.aClass31_Sub3_Sub3_392, 128, 0, 128, true);
        }
        if(i < anInt496 && k > 0)
        {
            Class31_Sub1 class31_sub1_3 = aClass31_Sub1ArrayArrayArray499[j][i + 1][k - 1];
            if(class31_sub1_3 != null && class31_sub1_3.aClass29_1376 != null && class31_sub1_3.aClass29_1376.aClass31_Sub3_Sub3_392.aClass46Array1453 != null)
                method545(class31_sub3_sub3_sub2, (Class31_Sub3_Sub3_Sub2)class31_sub1_3.aClass29_1376.aClass31_Sub3_Sub3_392, 128, 0, -128, true);
        }
    }

    public void method544(int i, Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2, int j, int k, int l, int i1, boolean flag)
    {
        if(!flag)
            return;
        boolean flag1 = true;
        int j1 = i1;
        int k1 = i1 + l;
        int l1 = j - 1;
        int i2 = j + i;
        for(int j2 = k; j2 <= k + 1; j2++)
            if(j2 != anInt495)
            {
                for(int k2 = j1; k2 <= k1; k2++)
                    if(k2 >= 0 && k2 < anInt496)
                    {
                        for(int l2 = l1; l2 <= i2; l2++)
                            if(l2 >= 0 && l2 < anInt497 && (!flag1 || k2 >= k1 || l2 >= i2 || l2 < j && k2 != i1))
                            {
                                Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[j2][k2][l2];
                                if(class31_sub1 != null)
                                {
                                    int i3 = (anIntArrayArrayArray498[j2][k2][l2] + anIntArrayArrayArray498[j2][k2 + 1][l2] + anIntArrayArrayArray498[j2][k2][l2 + 1] + anIntArrayArrayArray498[j2][k2 + 1][l2 + 1]) / 4 - (anIntArrayArrayArray498[k][i1][j] + anIntArrayArrayArray498[k][i1 + 1][j] + anIntArrayArrayArray498[k][i1][j + 1] + anIntArrayArrayArray498[k][i1 + 1][j + 1]) / 4;
                                    Class14 class14 = class31_sub1.aClass14_1374;
                                    if(class14 != null && class14.aClass31_Sub3_Sub3_232 != null && class14.aClass31_Sub3_Sub3_232.aClass46Array1453 != null)
                                        method545(class31_sub3_sub3_sub2, (Class31_Sub3_Sub3_Sub2)class14.aClass31_Sub3_Sub3_232, (k2 - i1) * 128 + (1 - l) * 64, i3, (l2 - j) * 128 + (1 - i) * 64, flag1);
                                    if(class14 != null && class14.aClass31_Sub3_Sub3_233 != null && class14.aClass31_Sub3_Sub3_233.aClass46Array1453 != null)
                                        method545(class31_sub3_sub3_sub2, (Class31_Sub3_Sub3_Sub2)class14.aClass31_Sub3_Sub3_233, (k2 - i1) * 128 + (1 - l) * 64, i3, (l2 - j) * 128 + (1 - i) * 64, flag1);
                                    for(int j3 = 0; j3 < class31_sub1.anInt1378; j3++)
                                    {
                                        Class47 class47 = class31_sub1.aClass47Array1379[j3];
                                        if(class47 != null && class47.aClass31_Sub3_Sub3_719 != null && class47.aClass31_Sub3_Sub3_719.aClass46Array1453 != null)
                                        {
                                            int k3 = (class47.anInt722 - class47.anInt721) + 1;
                                            int l3 = (class47.anInt724 - class47.anInt723) + 1;
                                            method545(class31_sub3_sub3_sub2, (Class31_Sub3_Sub3_Sub2)class47.aClass31_Sub3_Sub3_719, (class47.anInt721 - i1) * 128 + (k3 - l) * 64, i3, (class47.anInt723 - j) * 128 + (l3 - i) * 64, flag1);
                                        }
                                    }

                                }
                            }

                    }

                j1--;
                flag1 = false;
            }

    }

    public void method545(Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2, Class31_Sub3_Sub3_Sub2 class31_sub3_sub3_sub2_1, int i, int j, int k, boolean flag)
    {
        anInt546++;
        int l = 0;
        int ai[] = class31_sub3_sub3_sub2_1.anIntArray1545;
        int i1 = class31_sub3_sub3_sub2_1.anInt1544;
        int j1 = class31_sub3_sub3_sub2_1.anInt1565 >> 16;
        int k1 = (class31_sub3_sub3_sub2_1.anInt1565 << 16) >> 16;
        int l1 = class31_sub3_sub3_sub2_1.anInt1566 >> 16;
        int i2 = (class31_sub3_sub3_sub2_1.anInt1566 << 16) >> 16;
        for(int j2 = 0; j2 < class31_sub3_sub3_sub2.anInt1544; j2++)
        {
            Class46 class46 = ((Class31_Sub3_Sub3) (class31_sub3_sub3_sub2)).aClass46Array1453[j2];
            Class46 class46_1 = class31_sub3_sub3_sub2.aClass46Array1577[j2];
            if(class46_1.anInt714 != 0)
            {
                int i3 = class31_sub3_sub3_sub2.anIntArray1546[j2] - j;
                if(i3 <= class31_sub3_sub3_sub2_1.anInt1568)
                {
                    int j3 = class31_sub3_sub3_sub2.anIntArray1545[j2] - i;
                    if(j3 >= j1 && j3 <= k1)
                    {
                        int k3 = class31_sub3_sub3_sub2.anIntArray1547[j2] - k;
                        if(k3 >= i2 && k3 <= l1)
                        {
                            for(int l3 = 0; l3 < i1; l3++)
                            {
                                Class46 class46_2 = ((Class31_Sub3_Sub3) (class31_sub3_sub3_sub2_1)).aClass46Array1453[l3];
                                Class46 class46_3 = class31_sub3_sub3_sub2_1.aClass46Array1577[l3];
                                if(j3 == ai[l3] && k3 == class31_sub3_sub3_sub2_1.anIntArray1547[l3] && i3 == class31_sub3_sub3_sub2_1.anIntArray1546[l3] && class46_3.anInt714 != 0)
                                {
                                    class46.anInt711 += class46_3.anInt711;
                                    class46.anInt712 += class46_3.anInt712;
                                    class46.anInt713 += class46_3.anInt713;
                                    class46.anInt714 += class46_3.anInt714;
                                    class46_2.anInt711 += class46_1.anInt711;
                                    class46_2.anInt712 += class46_1.anInt712;
                                    class46_2.anInt713 += class46_1.anInt713;
                                    class46_2.anInt714 += class46_1.anInt714;
                                    l++;
                                    anIntArray544[j2] = anInt546;
                                    anIntArray545[l3] = anInt546;
                                }
                            }

                        }
                    }
                }
            }
        }

        if(l < 3 || !flag)
            return;
        for(int k2 = 0; k2 < class31_sub3_sub3_sub2.anInt1548; k2++)
            if(anIntArray544[class31_sub3_sub3_sub2.anIntArray1549[k2]] == anInt546 && anIntArray544[class31_sub3_sub3_sub2.anIntArray1550[k2]] == anInt546 && anIntArray544[class31_sub3_sub3_sub2.anIntArray1551[k2]] == anInt546)
                class31_sub3_sub3_sub2.anIntArray1555[k2] = -1;

        for(int l2 = 0; l2 < class31_sub3_sub3_sub2_1.anInt1548; l2++)
            if(anIntArray545[class31_sub3_sub3_sub2_1.anIntArray1549[l2]] == anInt546 && anIntArray545[class31_sub3_sub3_sub2_1.anIntArray1550[l2]] == anInt546 && anIntArray545[class31_sub3_sub3_sub2_1.anIntArray1551[l2]] == anInt546)
                class31_sub3_sub3_sub2_1.anIntArray1555[l2] = -1;

    }

    public void method546(int ai[], int i, int j, int k, int l, int i1)
    {
        Class31_Sub1 class31_sub1 = aClass31_Sub1ArrayArrayArray499[k][l][i1];
        if(class31_sub1 == null)
            return;
        Class20 class20 = class31_sub1.aClass20_1372;
        if(class20 != null)
        {
            int j1 = class20.anInt282;
            if(j1 == 0)
                return;
            for(int k1 = 0; k1 < 4; k1++)
            {
                ai[i] = j1;
                ai[i + 1] = j1;
                ai[i + 2] = j1;
                ai[i + 3] = j1;
                i += j;
            }

            return;
        }
        Class50 class50 = class31_sub1.aClass50_1373;
        if(class50 == null)
            return;
        int l1 = class50.anInt803;
        int i2 = class50.anInt804;
        int j2 = class50.anInt805;
        int k2 = class50.anInt806;
        int ai1[] = anIntArrayArray547[l1];
        int ai2[] = anIntArrayArray548[i2];
        int l2 = 0;
        if(j2 != 0)
        {
            for(int i3 = 0; i3 < 4; i3++)
            {
                ai[i] = ai1[ai2[l2++]] != 0 ? k2 : j2;
                ai[i + 1] = ai1[ai2[l2++]] != 0 ? k2 : j2;
                ai[i + 2] = ai1[ai2[l2++]] != 0 ? k2 : j2;
                ai[i + 3] = ai1[ai2[l2++]] != 0 ? k2 : j2;
                i += j;
            }

            return;
        }
        for(int j3 = 0; j3 < 4; j3++)
        {
            if(ai1[ai2[l2++]] != 0)
                ai[i] = k2;
            if(ai1[ai2[l2++]] != 0)
                ai[i + 1] = k2;
            if(ai1[ai2[l2++]] != 0)
                ai[i + 2] = k2;
            if(ai1[ai2[l2++]] != 0)
                ai[i + 3] = k2;
            i += j;
        }

    }

    public static void method547(int ai[], int i, int j, int k, int l, int i1)
    {
        anInt553 = 0;
        anInt554 = 0;
        anInt555 = j;
        anInt556 = k;
        anInt551 = j / 2;
        anInt552 = k / 2;
        boolean aflag[][][][] = new boolean[9][32][53][53];
        while(i1 >= 0) 
            aBoolean491 = !aBoolean491;
        for(int j1 = 128; j1 <= 384; j1 += 32)
        {
            for(int k1 = 0; k1 < 2048; k1 += 64)
            {
                anInt516 = Class31_Sub3_Sub3_Sub2.anIntArray1606[j1];
                anInt517 = Class31_Sub3_Sub3_Sub2.anIntArray1607[j1];
                anInt518 = Class31_Sub3_Sub3_Sub2.anIntArray1606[k1];
                anInt519 = Class31_Sub3_Sub3_Sub2.anIntArray1607[k1];
                int i2 = (j1 - 128) / 32;
                int k2 = k1 / 64;
                for(int i3 = -26; i3 <= 26; i3++)
                {
                    for(int k3 = -26; k3 <= 26; k3++)
                    {
                        int l3 = i3 * 128;
                        int j4 = k3 * 128;
                        boolean flag1 = false;
                        for(int l4 = -l; l4 <= i; l4 += 128)
                        {
                            if(!method548(0, ai[i2] + l4, l3, j4))
                                continue;
                            flag1 = true;
                            break;
                        }

                        aflag[i2][k2][i3 + 25 + 1][k3 + 25 + 1] = flag1;
                    }

                }

            }

        }

        for(int l1 = 0; l1 < 8; l1++)
        {
            for(int j2 = 0; j2 < 32; j2++)
            {
                for(int l2 = -25; l2 < 25; l2++)
                {
                    for(int j3 = -25; j3 < 25; j3++)
                    {
                        boolean flag = false;
label0:
                        for(int i4 = -1; i4 <= 1; i4++)
                        {
                            for(int k4 = -1; k4 <= 1; k4++)
                            {
                                if(aflag[l1][j2][l2 + i4 + 25 + 1][j3 + k4 + 25 + 1])
                                    flag = true;
                                else
                                if(aflag[l1][(j2 + 1) % 31][l2 + i4 + 25 + 1][j3 + k4 + 25 + 1])
                                    flag = true;
                                else
                                if(aflag[l1 + 1][j2][l2 + i4 + 25 + 1][j3 + k4 + 25 + 1])
                                {
                                    flag = true;
                                } else
                                {
                                    if(!aflag[l1 + 1][(j2 + 1) % 31][l2 + i4 + 25 + 1][j3 + k4 + 25 + 1])
                                        continue;
                                    flag = true;
                                }
                                break label0;
                            }

                        }

                        aBooleanArrayArrayArrayArray549[l1][j2][l2 + 25][j3 + 25] = flag;
                    }

                }

            }

        }

    }

    public static boolean method548(int i, int j, int k, int l)
    {
        int i1 = l * anInt518 + k * anInt519 >> 16;
        int j1 = l * anInt519 - k * anInt518 >> 16;
        int k1 = j * anInt516 + j1 * anInt517 >> 16;
        int l1 = j * anInt517 - j1 * anInt516 >> 16;
        if(i != 0)
            aBoolean488 = !aBoolean488;
        if(k1 < 50 || k1 > 3500)
            return false;
        int i2 = anInt551 + (i1 << 9) / k1;
        int j2 = anInt552 + (l1 << 9) / k1;
        return i2 >= anInt553 && i2 <= anInt555 && j2 >= anInt554 && j2 <= anInt556;
    }

    public void method549(int i, int j, int k)
    {
        aBoolean525 = true;
        anInt526 = j;
        if(k != 4)
            aBoolean493 = !aBoolean493;
        anInt527 = i;
        anInt528 = -1;
        anInt529 = -1;
    }

    public void method550(int i, int j, int k, boolean flag, int l, int i1, int j1)
    {
        if(j < 0)
            j = 0;
        else
        if(j >= anInt496 * 128)
            j = anInt496 * 128 - 1;
        if(l < 0)
            l = 0;
        else
        if(l >= anInt497 * 128)
            l = anInt497 * 128 - 1;
        anInt506++;
        anInt516 = Class31_Sub3_Sub3_Sub2.anIntArray1606[i1];
        anInt517 = Class31_Sub3_Sub3_Sub2.anIntArray1607[i1];
        anInt518 = Class31_Sub3_Sub3_Sub2.anIntArray1606[k];
        anInt519 = Class31_Sub3_Sub3_Sub2.anIntArray1607[k];
        aBooleanArrayArray550 = aBooleanArrayArrayArrayArray549[(i1 - 128) / 32][k / 64];
        anInt513 = j;
        anInt514 = i;
        anInt515 = l;
        anInt511 = j / 128;
        anInt512 = l / 128;
        anInt505 = j1;
        if(flag)
            aBoolean488 = !aBoolean488;
        anInt507 = anInt511 - 25;
        if(anInt507 < 0)
            anInt507 = 0;
        anInt509 = anInt512 - 25;
        if(anInt509 < 0)
            anInt509 = 0;
        anInt508 = anInt511 + 25;
        if(anInt508 > anInt496)
            anInt508 = anInt496;
        anInt510 = anInt512 + 25;
        if(anInt510 > anInt497)
            anInt510 = anInt497;
        method556((byte)5);
        anInt504 = 0;
        for(int k1 = anInt500; k1 < anInt495; k1++)
        {
            Class31_Sub1 aclass31_sub1[][] = aClass31_Sub1ArrayArrayArray499[k1];
            for(int i2 = anInt507; i2 < anInt508; i2++)
            {
                for(int k2 = anInt509; k2 < anInt510; k2++)
                {
                    Class31_Sub1 class31_sub1 = aclass31_sub1[i2][k2];
                    if(class31_sub1 != null)
                        if(class31_sub1.anInt1382 > j1 || !aBooleanArrayArray550[(i2 - anInt511) + 25][(k2 - anInt512) + 25] && anIntArrayArrayArray498[k1][i2][k2] - i < 2000)
                        {
                            class31_sub1.aBoolean1383 = false;
                            class31_sub1.aBoolean1384 = false;
                            class31_sub1.anInt1386 = 0;
                        } else
                        {
                            class31_sub1.aBoolean1383 = true;
                            class31_sub1.aBoolean1384 = true;
                            if(class31_sub1.anInt1378 > 0)
                                class31_sub1.aBoolean1385 = true;
                            else
                                class31_sub1.aBoolean1385 = false;
                            anInt504++;
                        }
                }

            }

        }

        for(int l1 = anInt500; l1 < anInt495; l1++)
        {
            Class31_Sub1 aclass31_sub1_1[][] = aClass31_Sub1ArrayArrayArray499[l1];
            for(int l2 = -25; l2 <= 0; l2++)
            {
                int i3 = anInt511 + l2;
                int k3 = anInt511 - l2;
                if(i3 >= anInt507 || k3 < anInt508)
                {
                    for(int i4 = -25; i4 <= 0; i4++)
                    {
                        int k4 = anInt512 + i4;
                        int i5 = anInt512 - i4;
                        if(i3 >= anInt507)
                        {
                            if(k4 >= anInt509)
                            {
                                Class31_Sub1 class31_sub1_1 = aclass31_sub1_1[i3][k4];
                                if(class31_sub1_1 != null && class31_sub1_1.aBoolean1383)
                                    method551(class31_sub1_1, true);
                            }
                            if(i5 < anInt510)
                            {
                                Class31_Sub1 class31_sub1_2 = aclass31_sub1_1[i3][i5];
                                if(class31_sub1_2 != null && class31_sub1_2.aBoolean1383)
                                    method551(class31_sub1_2, true);
                            }
                        }
                        if(k3 < anInt508)
                        {
                            if(k4 >= anInt509)
                            {
                                Class31_Sub1 class31_sub1_3 = aclass31_sub1_1[k3][k4];
                                if(class31_sub1_3 != null && class31_sub1_3.aBoolean1383)
                                    method551(class31_sub1_3, true);
                            }
                            if(i5 < anInt510)
                            {
                                Class31_Sub1 class31_sub1_4 = aclass31_sub1_1[k3][i5];
                                if(class31_sub1_4 != null && class31_sub1_4.aBoolean1383)
                                    method551(class31_sub1_4, true);
                            }
                        }
                        if(anInt504 == 0)
                        {
                            aBoolean525 = false;
                            return;
                        }
                    }

                }
            }

        }

        for(int j2 = anInt500; j2 < anInt495; j2++)
        {
            Class31_Sub1 aclass31_sub1_2[][] = aClass31_Sub1ArrayArrayArray499[j2];
            for(int j3 = -25; j3 <= 0; j3++)
            {
                int l3 = anInt511 + j3;
                int j4 = anInt511 - j3;
                if(l3 >= anInt507 || j4 < anInt508)
                {
                    for(int l4 = -25; l4 <= 0; l4++)
                    {
                        int j5 = anInt512 + l4;
                        int k5 = anInt512 - l4;
                        if(l3 >= anInt507)
                        {
                            if(j5 >= anInt509)
                            {
                                Class31_Sub1 class31_sub1_5 = aclass31_sub1_2[l3][j5];
                                if(class31_sub1_5 != null && class31_sub1_5.aBoolean1383)
                                    method551(class31_sub1_5, false);
                            }
                            if(k5 < anInt510)
                            {
                                Class31_Sub1 class31_sub1_6 = aclass31_sub1_2[l3][k5];
                                if(class31_sub1_6 != null && class31_sub1_6.aBoolean1383)
                                    method551(class31_sub1_6, false);
                            }
                        }
                        if(j4 < anInt508)
                        {
                            if(j5 >= anInt509)
                            {
                                Class31_Sub1 class31_sub1_7 = aclass31_sub1_2[j4][j5];
                                if(class31_sub1_7 != null && class31_sub1_7.aBoolean1383)
                                    method551(class31_sub1_7, false);
                            }
                            if(k5 < anInt510)
                            {
                                Class31_Sub1 class31_sub1_8 = aclass31_sub1_2[j4][k5];
                                if(class31_sub1_8 != null && class31_sub1_8.aBoolean1383)
                                    method551(class31_sub1_8, false);
                            }
                        }
                        if(anInt504 == 0)
                        {
                            aBoolean525 = false;
                            return;
                        }
                    }

                }
            }

        }

        aBoolean525 = false;
    }

    public void method551(Class31_Sub1 class31_sub1, boolean flag)
    {
        aClass28_535.method325(class31_sub1);
        do
        {
            Class31_Sub1 class31_sub1_1;
            do
            {
                class31_sub1_1 = (Class31_Sub1)aClass28_535.method327();
                if(class31_sub1_1 == null)
                    return;
            } while(!class31_sub1_1.aBoolean1384);
            int i = class31_sub1_1.anInt1369;
            int j = class31_sub1_1.anInt1370;
            int k = class31_sub1_1.anInt1368;
            int l = class31_sub1_1.anInt1371;
            Class31_Sub1 aclass31_sub1[][] = aClass31_Sub1ArrayArrayArray499[k];
            if(class31_sub1_1.aBoolean1383)
            {
                if(flag)
                {
                    if(k > 0)
                    {
                        Class31_Sub1 class31_sub1_2 = aClass31_Sub1ArrayArrayArray499[k - 1][i][j];
                        if(class31_sub1_2 != null && class31_sub1_2.aBoolean1384)
                            continue;
                    }
                    if(i <= anInt511 && i > anInt507)
                    {
                        Class31_Sub1 class31_sub1_3 = aclass31_sub1[i - 1][j];
                        if(class31_sub1_3 != null && class31_sub1_3.aBoolean1384 && (class31_sub1_3.aBoolean1383 || (class31_sub1_1.anInt1381 & 1) == 0))
                            continue;
                    }
                    if(i >= anInt511 && i < anInt508 - 1)
                    {
                        Class31_Sub1 class31_sub1_4 = aclass31_sub1[i + 1][j];
                        if(class31_sub1_4 != null && class31_sub1_4.aBoolean1384 && (class31_sub1_4.aBoolean1383 || (class31_sub1_1.anInt1381 & 4) == 0))
                            continue;
                    }
                    if(j <= anInt512 && j > anInt509)
                    {
                        Class31_Sub1 class31_sub1_5 = aclass31_sub1[i][j - 1];
                        if(class31_sub1_5 != null && class31_sub1_5.aBoolean1384 && (class31_sub1_5.aBoolean1383 || (class31_sub1_1.anInt1381 & 8) == 0))
                            continue;
                    }
                    if(j >= anInt512 && j < anInt510 - 1)
                    {
                        Class31_Sub1 class31_sub1_6 = aclass31_sub1[i][j + 1];
                        if(class31_sub1_6 != null && class31_sub1_6.aBoolean1384 && (class31_sub1_6.aBoolean1383 || (class31_sub1_1.anInt1381 & 2) == 0))
                            continue;
                    }
                } else
                {
                    flag = true;
                }
                class31_sub1_1.aBoolean1383 = false;
                if(class31_sub1_1.aClass31_Sub1_1390 != null)
                {
                    Class31_Sub1 class31_sub1_7 = class31_sub1_1.aClass31_Sub1_1390;
                    if(class31_sub1_7.aClass20_1372 != null)
                    {
                        if(!method557(0, i, j))
                            method552(class31_sub1_7.aClass20_1372, 0, anInt516, anInt517, anInt518, anInt519, i, j);
                    } else
                    if(class31_sub1_7.aClass50_1373 != null && !method557(0, i, j))
                        method553(anInt518, -111, class31_sub1_7.aClass50_1373, anInt517, j, anInt516, i, anInt519);
                    Class14 class14 = class31_sub1_7.aClass14_1374;
                    if(class14 != null)
                        class14.aClass31_Sub3_Sub3_232.method460(0, anInt516, anInt517, anInt518, anInt519, class14.anInt228 - anInt513, class14.anInt227 - anInt514, class14.anInt229 - anInt515, class14.anInt234);
                    for(int i2 = 0; i2 < class31_sub1_7.anInt1378; i2++)
                    {
                        Class47 class47 = class31_sub1_7.aClass47Array1379[i2];
                        if(class47 != null)
                            class47.aClass31_Sub3_Sub3_719.method460(class47.anInt720, anInt516, anInt517, anInt518, anInt519, class47.anInt717 - anInt513, class47.anInt716 - anInt514, class47.anInt718 - anInt515, class47.anInt727);
                    }

                }
                boolean flag1 = false;
                if(class31_sub1_1.aClass20_1372 != null)
                {
                    if(!method557(l, i, j))
                    {
                        flag1 = true;
                        method552(class31_sub1_1.aClass20_1372, l, anInt516, anInt517, anInt518, anInt519, i, j);
                    }
                } else
                if(class31_sub1_1.aClass50_1373 != null && !method557(l, i, j))
                {
                    flag1 = true;
                    method553(anInt518, -111, class31_sub1_1.aClass50_1373, anInt517, j, anInt516, i, anInt519);
                }
                int j1 = 0;
                int j2 = 0;
                Class14 class14_3 = class31_sub1_1.aClass14_1374;
                Class40 class40_1 = class31_sub1_1.aClass40_1375;
                if(class14_3 != null || class40_1 != null)
                {
                    if(anInt511 == i)
                        j1++;
                    else
                    if(anInt511 < i)
                        j1 += 2;
                    if(anInt512 == j)
                        j1 += 3;
                    else
                    if(anInt512 > j)
                        j1 += 6;
                    j2 = anIntArray536[j1];
                    class31_sub1_1.anInt1389 = anIntArray538[j1];
                }
                if(class14_3 != null)
                {
                    if((class14_3.anInt230 & anIntArray537[j1]) != 0)
                    {
                        if(class14_3.anInt230 == 16)
                        {
                            class31_sub1_1.anInt1386 = 3;
                            class31_sub1_1.anInt1387 = anIntArray539[j1];
                            class31_sub1_1.anInt1388 = 3 - class31_sub1_1.anInt1387;
                        } else
                        if(class14_3.anInt230 == 32)
                        {
                            class31_sub1_1.anInt1386 = 6;
                            class31_sub1_1.anInt1387 = anIntArray540[j1];
                            class31_sub1_1.anInt1388 = 6 - class31_sub1_1.anInt1387;
                        } else
                        if(class14_3.anInt230 == 64)
                        {
                            class31_sub1_1.anInt1386 = 12;
                            class31_sub1_1.anInt1387 = anIntArray541[j1];
                            class31_sub1_1.anInt1388 = 12 - class31_sub1_1.anInt1387;
                        } else
                        {
                            class31_sub1_1.anInt1386 = 9;
                            class31_sub1_1.anInt1387 = anIntArray542[j1];
                            class31_sub1_1.anInt1388 = 9 - class31_sub1_1.anInt1387;
                        }
                    } else
                    {
                        class31_sub1_1.anInt1386 = 0;
                    }
                    if((class14_3.anInt230 & j2) != 0 && !method558(l, i, j, class14_3.anInt230))
                        class14_3.aClass31_Sub3_Sub3_232.method460(0, anInt516, anInt517, anInt518, anInt519, class14_3.anInt228 - anInt513, class14_3.anInt227 - anInt514, class14_3.anInt229 - anInt515, class14_3.anInt234);
                    if((class14_3.anInt231 & j2) != 0 && !method558(l, i, j, class14_3.anInt231))
                        class14_3.aClass31_Sub3_Sub3_233.method460(0, anInt516, anInt517, anInt518, anInt519, class14_3.anInt228 - anInt513, class14_3.anInt227 - anInt514, class14_3.anInt229 - anInt515, class14_3.anInt234);
                }
                if(class40_1 != null && !method559(l, i, j, class40_1.aClass31_Sub3_Sub3_605.anInt1454))
                    if((class40_1.anInt603 & j2) != 0)
                        class40_1.aClass31_Sub3_Sub3_605.method460(class40_1.anInt604, anInt516, anInt517, anInt518, anInt519, class40_1.anInt601 - anInt513, class40_1.anInt600 - anInt514, class40_1.anInt602 - anInt515, class40_1.anInt606);
                    else
                    if((class40_1.anInt603 & 0x300) != 0)
                    {
                        int j4 = class40_1.anInt601 - anInt513;
                        int l5 = class40_1.anInt600 - anInt514;
                        int k6 = class40_1.anInt602 - anInt515;
                        int i8 = class40_1.anInt604;
                        int k9;
                        if(i8 == 1 || i8 == 2)
                            k9 = -j4;
                        else
                            k9 = j4;
                        int k10;
                        if(i8 == 2 || i8 == 3)
                            k10 = -k6;
                        else
                            k10 = k6;
                        if((class40_1.anInt603 & 0x100) != 0 && k10 < k9)
                        {
                            int i11 = j4 + anIntArray521[i8];
                            int k11 = k6 + anIntArray522[i8];
                            class40_1.aClass31_Sub3_Sub3_605.method460(i8 * 512 + 256, anInt516, anInt517, anInt518, anInt519, i11, l5, k11, class40_1.anInt606);
                        }
                        if((class40_1.anInt603 & 0x200) != 0 && k10 > k9)
                        {
                            int j11 = j4 + anIntArray523[i8];
                            int l11 = k6 + anIntArray524[i8];
                            class40_1.aClass31_Sub3_Sub3_605.method460(i8 * 512 + 1280 & 0x7ff, anInt516, anInt517, anInt518, anInt519, j11, l5, l11, class40_1.anInt606);
                        }
                    }
                if(flag1)
                {
                    Class29 class29 = class31_sub1_1.aClass29_1376;
                    if(class29 != null)
                        class29.aClass31_Sub3_Sub3_392.method460(0, anInt516, anInt517, anInt518, anInt519, class29.anInt390 - anInt513, class29.anInt389 - anInt514, class29.anInt391 - anInt515, class29.anInt393);
                    Class42 class42_1 = class31_sub1_1.aClass42_1377;
                    if(class42_1 != null && class42_1.anInt665 == 0)
                    {
                        if(class42_1.aClass31_Sub3_Sub3_662 != null)
                            class42_1.aClass31_Sub3_Sub3_662.method460(0, anInt516, anInt517, anInt518, anInt519, class42_1.anInt659 - anInt513, class42_1.anInt658 - anInt514, class42_1.anInt660 - anInt515, class42_1.anInt664);
                        if(class42_1.aClass31_Sub3_Sub3_663 != null)
                            class42_1.aClass31_Sub3_Sub3_663.method460(0, anInt516, anInt517, anInt518, anInt519, class42_1.anInt659 - anInt513, class42_1.anInt658 - anInt514, class42_1.anInt660 - anInt515, class42_1.anInt664);
                        if(class42_1.aClass31_Sub3_Sub3_661 != null)
                            class42_1.aClass31_Sub3_Sub3_661.method460(0, anInt516, anInt517, anInt518, anInt519, class42_1.anInt659 - anInt513, class42_1.anInt658 - anInt514, class42_1.anInt660 - anInt515, class42_1.anInt664);
                    }
                }
                int k4 = class31_sub1_1.anInt1381;
                if(k4 != 0)
                {
                    if(i < anInt511 && (k4 & 4) != 0)
                    {
                        Class31_Sub1 class31_sub1_17 = aclass31_sub1[i + 1][j];
                        if(class31_sub1_17 != null && class31_sub1_17.aBoolean1384)
                            aClass28_535.method325(class31_sub1_17);
                    }
                    if(j < anInt512 && (k4 & 2) != 0)
                    {
                        Class31_Sub1 class31_sub1_18 = aclass31_sub1[i][j + 1];
                        if(class31_sub1_18 != null && class31_sub1_18.aBoolean1384)
                            aClass28_535.method325(class31_sub1_18);
                    }
                    if(i > anInt511 && (k4 & 1) != 0)
                    {
                        Class31_Sub1 class31_sub1_19 = aclass31_sub1[i - 1][j];
                        if(class31_sub1_19 != null && class31_sub1_19.aBoolean1384)
                            aClass28_535.method325(class31_sub1_19);
                    }
                    if(j > anInt512 && (k4 & 8) != 0)
                    {
                        Class31_Sub1 class31_sub1_20 = aclass31_sub1[i][j - 1];
                        if(class31_sub1_20 != null && class31_sub1_20.aBoolean1384)
                            aClass28_535.method325(class31_sub1_20);
                    }
                }
            }
            if(class31_sub1_1.anInt1386 != 0)
            {
                boolean flag2 = true;
                for(int k1 = 0; k1 < class31_sub1_1.anInt1378; k1++)
                {
                    if(class31_sub1_1.aClass47Array1379[k1].anInt726 == anInt506 || (class31_sub1_1.anIntArray1380[k1] & class31_sub1_1.anInt1386) != class31_sub1_1.anInt1387)
                        continue;
                    flag2 = false;
                    break;
                }

                if(flag2)
                {
                    Class14 class14_1 = class31_sub1_1.aClass14_1374;
                    if(!method558(l, i, j, class14_1.anInt230))
                        class14_1.aClass31_Sub3_Sub3_232.method460(0, anInt516, anInt517, anInt518, anInt519, class14_1.anInt228 - anInt513, class14_1.anInt227 - anInt514, class14_1.anInt229 - anInt515, class14_1.anInt234);
                    class31_sub1_1.anInt1386 = 0;
                }
            }
            if(class31_sub1_1.aBoolean1385)
                try
                {
                    int i1 = class31_sub1_1.anInt1378;
                    class31_sub1_1.aBoolean1385 = false;
                    int l1 = 0;
label0:
                    for(int k2 = 0; k2 < i1; k2++)
                    {
                        Class47 class47_1 = class31_sub1_1.aClass47Array1379[k2];
                        if(class47_1.anInt726 == anInt506)
                            continue;
                        for(int k3 = class47_1.anInt721; k3 <= class47_1.anInt722; k3++)
                        {
                            for(int l4 = class47_1.anInt723; l4 <= class47_1.anInt724; l4++)
                            {
                                Class31_Sub1 class31_sub1_21 = aclass31_sub1[k3][l4];
                                if(class31_sub1_21.aBoolean1383)
                                {
                                    class31_sub1_1.aBoolean1385 = true;
                                } else
                                {
                                    if(class31_sub1_21.anInt1386 == 0)
                                        continue;
                                    int l6 = 0;
                                    if(k3 > class47_1.anInt721)
                                        l6++;
                                    if(k3 < class47_1.anInt722)
                                        l6 += 4;
                                    if(l4 > class47_1.anInt723)
                                        l6 += 8;
                                    if(l4 < class47_1.anInt724)
                                        l6 += 2;
                                    if((l6 & class31_sub1_21.anInt1386) != class31_sub1_1.anInt1388)
                                        continue;
                                    class31_sub1_1.aBoolean1385 = true;
                                }
                                continue label0;
                            }

                        }

                        aClass47Array520[l1++] = class47_1;
                        int i5 = anInt511 - class47_1.anInt721;
                        int i6 = class47_1.anInt722 - anInt511;
                        if(i6 > i5)
                            i5 = i6;
                        int i7 = anInt512 - class47_1.anInt723;
                        int j8 = class47_1.anInt724 - anInt512;
                        if(j8 > i7)
                            class47_1.anInt725 = i5 + j8;
                        else
                            class47_1.anInt725 = i5 + i7;
                    }

                    while(l1 > 0) 
                    {
                        int i3 = -50;
                        int l3 = -1;
                        for(int j5 = 0; j5 < l1; j5++)
                        {
                            Class47 class47_2 = aClass47Array520[j5];
                            if(class47_2.anInt726 != anInt506)
                                if(class47_2.anInt725 > i3)
                                {
                                    i3 = class47_2.anInt725;
                                    l3 = j5;
                                } else
                                if(class47_2.anInt725 == i3)
                                {
                                    int j7 = class47_2.anInt717 - anInt513;
                                    int k8 = class47_2.anInt718 - anInt515;
                                    int l9 = aClass47Array520[l3].anInt717 - anInt513;
                                    int l10 = aClass47Array520[l3].anInt718 - anInt515;
                                    if(j7 * j7 + k8 * k8 > l9 * l9 + l10 * l10)
                                        l3 = j5;
                                }
                        }

                        if(l3 == -1)
                            break;
                        Class47 class47_3 = aClass47Array520[l3];
                        class47_3.anInt726 = anInt506;
                        if(!method560(l, class47_3.anInt721, class47_3.anInt722, class47_3.anInt723, class47_3.anInt724, class47_3.aClass31_Sub3_Sub3_719.anInt1454))
                            class47_3.aClass31_Sub3_Sub3_719.method460(class47_3.anInt720, anInt516, anInt517, anInt518, anInt519, class47_3.anInt717 - anInt513, class47_3.anInt716 - anInt514, class47_3.anInt718 - anInt515, class47_3.anInt727);
                        for(int k7 = class47_3.anInt721; k7 <= class47_3.anInt722; k7++)
                        {
                            for(int l8 = class47_3.anInt723; l8 <= class47_3.anInt724; l8++)
                            {
                                Class31_Sub1 class31_sub1_22 = aclass31_sub1[k7][l8];
                                if(class31_sub1_22.anInt1386 != 0)
                                    aClass28_535.method325(class31_sub1_22);
                                else
                                if((k7 != i || l8 != j) && class31_sub1_22.aBoolean1384)
                                    aClass28_535.method325(class31_sub1_22);
                            }

                        }

                    }
                    if(class31_sub1_1.aBoolean1385)
                        continue;
                }
                catch(Exception _ex)
                {
                    class31_sub1_1.aBoolean1385 = false;
                }
            if(!class31_sub1_1.aBoolean1384 || class31_sub1_1.anInt1386 != 0)
                continue;
            if(i <= anInt511 && i > anInt507)
            {
                Class31_Sub1 class31_sub1_8 = aclass31_sub1[i - 1][j];
                if(class31_sub1_8 != null && class31_sub1_8.aBoolean1384)
                    continue;
            }
            if(i >= anInt511 && i < anInt508 - 1)
            {
                Class31_Sub1 class31_sub1_9 = aclass31_sub1[i + 1][j];
                if(class31_sub1_9 != null && class31_sub1_9.aBoolean1384)
                    continue;
            }
            if(j <= anInt512 && j > anInt509)
            {
                Class31_Sub1 class31_sub1_10 = aclass31_sub1[i][j - 1];
                if(class31_sub1_10 != null && class31_sub1_10.aBoolean1384)
                    continue;
            }
            if(j >= anInt512 && j < anInt510 - 1)
            {
                Class31_Sub1 class31_sub1_11 = aclass31_sub1[i][j + 1];
                if(class31_sub1_11 != null && class31_sub1_11.aBoolean1384)
                    continue;
            }
            class31_sub1_1.aBoolean1384 = false;
            anInt504--;
            Class42 class42 = class31_sub1_1.aClass42_1377;
            if(class42 != null && class42.anInt665 != 0)
            {
                if(class42.aClass31_Sub3_Sub3_662 != null)
                    class42.aClass31_Sub3_Sub3_662.method460(0, anInt516, anInt517, anInt518, anInt519, class42.anInt659 - anInt513, class42.anInt658 - anInt514 - class42.anInt665, class42.anInt660 - anInt515, class42.anInt664);
                if(class42.aClass31_Sub3_Sub3_663 != null)
                    class42.aClass31_Sub3_Sub3_663.method460(0, anInt516, anInt517, anInt518, anInt519, class42.anInt659 - anInt513, class42.anInt658 - anInt514 - class42.anInt665, class42.anInt660 - anInt515, class42.anInt664);
                if(class42.aClass31_Sub3_Sub3_661 != null)
                    class42.aClass31_Sub3_Sub3_661.method460(0, anInt516, anInt517, anInt518, anInt519, class42.anInt659 - anInt513, class42.anInt658 - anInt514 - class42.anInt665, class42.anInt660 - anInt515, class42.anInt664);
            }
            if(class31_sub1_1.anInt1389 != 0)
            {
                Class40 class40 = class31_sub1_1.aClass40_1375;
                if(class40 != null && !method559(l, i, j, class40.aClass31_Sub3_Sub3_605.anInt1454))
                    if((class40.anInt603 & class31_sub1_1.anInt1389) != 0)
                        class40.aClass31_Sub3_Sub3_605.method460(class40.anInt604, anInt516, anInt517, anInt518, anInt519, class40.anInt601 - anInt513, class40.anInt600 - anInt514, class40.anInt602 - anInt515, class40.anInt606);
                    else
                    if((class40.anInt603 & 0x300) != 0)
                    {
                        int l2 = class40.anInt601 - anInt513;
                        int j3 = class40.anInt600 - anInt514;
                        int i4 = class40.anInt602 - anInt515;
                        int k5 = class40.anInt604;
                        int j6;
                        if(k5 == 1 || k5 == 2)
                            j6 = -l2;
                        else
                            j6 = l2;
                        int l7;
                        if(k5 == 2 || k5 == 3)
                            l7 = -i4;
                        else
                            l7 = i4;
                        if((class40.anInt603 & 0x100) != 0 && l7 >= j6)
                        {
                            int i9 = l2 + anIntArray521[k5];
                            int i10 = i4 + anIntArray522[k5];
                            class40.aClass31_Sub3_Sub3_605.method460(k5 * 512 + 256, anInt516, anInt517, anInt518, anInt519, i9, j3, i10, class40.anInt606);
                        }
                        if((class40.anInt603 & 0x200) != 0 && l7 <= j6)
                        {
                            int j9 = l2 + anIntArray523[k5];
                            int j10 = i4 + anIntArray524[k5];
                            class40.aClass31_Sub3_Sub3_605.method460(k5 * 512 + 1280 & 0x7ff, anInt516, anInt517, anInt518, anInt519, j9, j3, j10, class40.anInt606);
                        }
                    }
                Class14 class14_2 = class31_sub1_1.aClass14_1374;
                if(class14_2 != null)
                {
                    if((class14_2.anInt231 & class31_sub1_1.anInt1389) != 0 && !method558(l, i, j, class14_2.anInt231))
                        class14_2.aClass31_Sub3_Sub3_233.method460(0, anInt516, anInt517, anInt518, anInt519, class14_2.anInt228 - anInt513, class14_2.anInt227 - anInt514, class14_2.anInt229 - anInt515, class14_2.anInt234);
                    if((class14_2.anInt230 & class31_sub1_1.anInt1389) != 0 && !method558(l, i, j, class14_2.anInt230))
                        class14_2.aClass31_Sub3_Sub3_232.method460(0, anInt516, anInt517, anInt518, anInt519, class14_2.anInt228 - anInt513, class14_2.anInt227 - anInt514, class14_2.anInt229 - anInt515, class14_2.anInt234);
                }
            }
            if(k < anInt495 - 1)
            {
                Class31_Sub1 class31_sub1_12 = aClass31_Sub1ArrayArrayArray499[k + 1][i][j];
                if(class31_sub1_12 != null && class31_sub1_12.aBoolean1384)
                    aClass28_535.method325(class31_sub1_12);
            }
            if(i < anInt511)
            {
                Class31_Sub1 class31_sub1_13 = aclass31_sub1[i + 1][j];
                if(class31_sub1_13 != null && class31_sub1_13.aBoolean1384)
                    aClass28_535.method325(class31_sub1_13);
            }
            if(j < anInt512)
            {
                Class31_Sub1 class31_sub1_14 = aclass31_sub1[i][j + 1];
                if(class31_sub1_14 != null && class31_sub1_14.aBoolean1384)
                    aClass28_535.method325(class31_sub1_14);
            }
            if(i > anInt511)
            {
                Class31_Sub1 class31_sub1_15 = aclass31_sub1[i - 1][j];
                if(class31_sub1_15 != null && class31_sub1_15.aBoolean1384)
                    aClass28_535.method325(class31_sub1_15);
            }
            if(j > anInt512)
            {
                Class31_Sub1 class31_sub1_16 = aclass31_sub1[i][j - 1];
                if(class31_sub1_16 != null && class31_sub1_16.aBoolean1384)
                    aClass28_535.method325(class31_sub1_16);
            }
        } while(true);
    }

    public void method552(Class20 class20, int i, int j, int k, int l, int i1, int j1, 
            int k1)
    {
        int l1;
        int i2 = l1 = (j1 << 7) - anInt513;
        int j2;
        int k2 = j2 = (k1 << 7) - anInt515;
        int l2;
        int i3 = l2 = i2 + 128;
        int j3;
        int k3 = j3 = k2 + 128;
        int l3 = anIntArrayArrayArray498[i][j1][k1] - anInt514;
        int i4 = anIntArrayArrayArray498[i][j1 + 1][k1] - anInt514;
        int j4 = anIntArrayArrayArray498[i][j1 + 1][k1 + 1] - anInt514;
        int k4 = anIntArrayArrayArray498[i][j1][k1 + 1] - anInt514;
        int l4 = k2 * l + i2 * i1 >> 16;
        k2 = k2 * i1 - i2 * l >> 16;
        i2 = l4;
        l4 = l3 * k - k2 * j >> 16;
        k2 = l3 * j + k2 * k >> 16;
        l3 = l4;
        if(k2 < 50)
            return;
        l4 = j2 * l + i3 * i1 >> 16;
        j2 = j2 * i1 - i3 * l >> 16;
        i3 = l4;
        l4 = i4 * k - j2 * j >> 16;
        j2 = i4 * j + j2 * k >> 16;
        i4 = l4;
        if(j2 < 50)
            return;
        l4 = k3 * l + l2 * i1 >> 16;
        k3 = k3 * i1 - l2 * l >> 16;
        l2 = l4;
        l4 = j4 * k - k3 * j >> 16;
        k3 = j4 * j + k3 * k >> 16;
        j4 = l4;
        if(k3 < 50)
            return;
        l4 = j3 * l + l1 * i1 >> 16;
        j3 = j3 * i1 - l1 * l >> 16;
        l1 = l4;
        l4 = k4 * k - j3 * j >> 16;
        j3 = k4 * j + j3 * k >> 16;
        k4 = l4;
        if(j3 < 50)
            return;
        int i5 = Class31_Sub3_Sub1_Sub1.anInt1468 + (i2 << 9) / k2;
        int j5 = Class31_Sub3_Sub1_Sub1.anInt1469 + (l3 << 9) / k2;
        int k5 = Class31_Sub3_Sub1_Sub1.anInt1468 + (i3 << 9) / j2;
        int l5 = Class31_Sub3_Sub1_Sub1.anInt1469 + (i4 << 9) / j2;
        int i6 = Class31_Sub3_Sub1_Sub1.anInt1468 + (l2 << 9) / k3;
        int j6 = Class31_Sub3_Sub1_Sub1.anInt1469 + (j4 << 9) / k3;
        int k6 = Class31_Sub3_Sub1_Sub1.anInt1468 + (l1 << 9) / j3;
        int l6 = Class31_Sub3_Sub1_Sub1.anInt1469 + (k4 << 9) / j3;
        Class31_Sub3_Sub1_Sub1.anInt1467 = 0;
        if((i6 - k6) * (l5 - l6) - (j6 - l6) * (k5 - k6) > 0)
        {
            Class31_Sub3_Sub1_Sub1.aBoolean1464 = false;
            if(i6 < 0 || k6 < 0 || k5 < 0 || i6 > Class31_Sub3_Sub1.anInt1418 || k6 > Class31_Sub3_Sub1.anInt1418 || k5 > Class31_Sub3_Sub1.anInt1418)
                Class31_Sub3_Sub1_Sub1.aBoolean1464 = true;
            if(aBoolean525 && method555(anInt526, anInt527, j6, l6, l5, i6, k6, k5))
            {
                anInt528 = j1;
                anInt529 = k1;
            }
            if(class20.anInt280 == -1)
            {
                if(class20.anInt278 != 0xbc614e)
                    Class31_Sub3_Sub1_Sub1.method368(j6, l6, l5, i6, k6, k5, class20.anInt278, class20.anInt279, class20.anInt277);
            } else
            if(!aBoolean494)
            {
                if(class20.aBoolean281)
                    Class31_Sub3_Sub1_Sub1.method372(j6, l6, l5, i6, k6, k5, class20.anInt278, class20.anInt279, class20.anInt277, i2, i3, l1, l3, i4, k4, k2, j2, j3, class20.anInt280);
                else
                    Class31_Sub3_Sub1_Sub1.method372(j6, l6, l5, i6, k6, k5, class20.anInt278, class20.anInt279, class20.anInt277, l2, l1, i3, j4, k4, i4, k3, j3, j2, class20.anInt280);
            } else
            {
                int i7 = anIntArray543[class20.anInt280];
                Class31_Sub3_Sub1_Sub1.method368(j6, l6, l5, i6, k6, k5, method554(class20.anInt278, 235, i7), method554(class20.anInt279, 235, i7), method554(class20.anInt277, 235, i7));
            }
        }
        if((i5 - k5) * (l6 - l5) - (j5 - l5) * (k6 - k5) > 0)
        {
            Class31_Sub3_Sub1_Sub1.aBoolean1464 = false;
            if(i5 < 0 || k5 < 0 || k6 < 0 || i5 > Class31_Sub3_Sub1.anInt1418 || k5 > Class31_Sub3_Sub1.anInt1418 || k6 > Class31_Sub3_Sub1.anInt1418)
                Class31_Sub3_Sub1_Sub1.aBoolean1464 = true;
            if(aBoolean525 && method555(anInt526, anInt527, j5, l5, l6, i5, k5, k6))
            {
                anInt528 = j1;
                anInt529 = k1;
            }
            if(class20.anInt280 == -1)
            {
                if(class20.anInt276 != 0xbc614e)
                {
                    Class31_Sub3_Sub1_Sub1.method368(j5, l5, l6, i5, k5, k6, class20.anInt276, class20.anInt277, class20.anInt279);
                    return;
                }
            } else
            {
                if(!aBoolean494)
                {
                    Class31_Sub3_Sub1_Sub1.method372(j5, l5, l6, i5, k5, k6, class20.anInt276, class20.anInt277, class20.anInt279, i2, i3, l1, l3, i4, k4, k2, j2, j3, class20.anInt280);
                    return;
                }
                int j7 = anIntArray543[class20.anInt280];
                Class31_Sub3_Sub1_Sub1.method368(j5, l5, l6, i5, k5, k6, method554(class20.anInt276, 235, j7), method554(class20.anInt277, 235, j7), method554(class20.anInt279, 235, j7));
            }
        }
    }

    public void method553(int i, int j, Class50 class50, int k, int l, int i1, int j1, 
            int k1)
    {
        int l1 = class50.anIntArray792.length;
        for(int i2 = 0; i2 < l1; i2++)
        {
            int j2 = class50.anIntArray792[i2] - anInt513;
            int l2 = class50.anIntArray793[i2] - anInt514;
            int j3 = class50.anIntArray794[i2] - anInt515;
            int l3 = j3 * i + j2 * k1 >> 16;
            j3 = j3 * k1 - j2 * i >> 16;
            j2 = l3;
            l3 = l2 * k - j3 * i1 >> 16;
            j3 = l2 * i1 + j3 * k >> 16;
            l2 = l3;
            if(j3 < 50)
                return;
            if(class50.anIntArray801 != null)
            {
                Class50.anIntArray809[i2] = j2;
                Class50.anIntArray810[i2] = l2;
                Class50.anIntArray811[i2] = j3;
            }
            Class50.anIntArray807[i2] = Class31_Sub3_Sub1_Sub1.anInt1468 + (j2 << 9) / j3;
            Class50.anIntArray808[i2] = Class31_Sub3_Sub1_Sub1.anInt1469 + (l2 << 9) / j3;
        }

        for(Class31_Sub3_Sub1_Sub1.anInt1467 = 0; j >= 0;)
            return;

        l1 = class50.anIntArray798.length;
        for(int k2 = 0; k2 < l1; k2++)
        {
            int i3 = class50.anIntArray798[k2];
            int k3 = class50.anIntArray799[k2];
            int i4 = class50.anIntArray800[k2];
            int j4 = Class50.anIntArray807[i3];
            int k4 = Class50.anIntArray807[k3];
            int l4 = Class50.anIntArray807[i4];
            int i5 = Class50.anIntArray808[i3];
            int j5 = Class50.anIntArray808[k3];
            int k5 = Class50.anIntArray808[i4];
            if((j4 - k4) * (k5 - j5) - (i5 - j5) * (l4 - k4) > 0)
            {
                Class31_Sub3_Sub1_Sub1.aBoolean1464 = false;
                if(j4 < 0 || k4 < 0 || l4 < 0 || j4 > Class31_Sub3_Sub1.anInt1418 || k4 > Class31_Sub3_Sub1.anInt1418 || l4 > Class31_Sub3_Sub1.anInt1418)
                    Class31_Sub3_Sub1_Sub1.aBoolean1464 = true;
                if(aBoolean525 && method555(anInt526, anInt527, i5, j5, k5, j4, k4, l4))
                {
                    anInt528 = j1;
                    anInt529 = l;
                }
                if(class50.anIntArray801 == null || class50.anIntArray801[k2] == -1)
                {
                    if(class50.anIntArray795[k2] != 0xbc614e)
                        Class31_Sub3_Sub1_Sub1.method368(i5, j5, k5, j4, k4, l4, class50.anIntArray795[k2], class50.anIntArray796[k2], class50.anIntArray797[k2]);
                } else
                if(!aBoolean494)
                {
                    if(class50.aBoolean802)
                        Class31_Sub3_Sub1_Sub1.method372(i5, j5, k5, j4, k4, l4, class50.anIntArray795[k2], class50.anIntArray796[k2], class50.anIntArray797[k2], Class50.anIntArray809[0], Class50.anIntArray809[1], Class50.anIntArray809[3], Class50.anIntArray810[0], Class50.anIntArray810[1], Class50.anIntArray810[3], Class50.anIntArray811[0], Class50.anIntArray811[1], Class50.anIntArray811[3], class50.anIntArray801[k2]);
                    else
                        Class31_Sub3_Sub1_Sub1.method372(i5, j5, k5, j4, k4, l4, class50.anIntArray795[k2], class50.anIntArray796[k2], class50.anIntArray797[k2], Class50.anIntArray809[i3], Class50.anIntArray809[k3], Class50.anIntArray809[i4], Class50.anIntArray810[i3], Class50.anIntArray810[k3], Class50.anIntArray810[i4], Class50.anIntArray811[i3], Class50.anIntArray811[k3], Class50.anIntArray811[i4], class50.anIntArray801[k2]);
                } else
                {
                    int l5 = anIntArray543[class50.anIntArray801[k2]];
                    Class31_Sub3_Sub1_Sub1.method368(i5, j5, k5, j4, k4, l4, method554(class50.anIntArray795[k2], 235, l5), method554(class50.anIntArray796[k2], 235, l5), method554(class50.anIntArray797[k2], 235, l5));
                }
            }
        }

    }

    public int method554(int i, int j, int k)
    {
        i = 127 - i;
        j = 52 / j;
        i = (i * (k & 0x7f)) / 160;
        if(i < 2)
            i = 2;
        else
        if(i > 126)
            i = 126;
        return (k & 0xff80) + i;
    }

    public boolean method555(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;
        if(i > j1 && i > k1 && i > l1)
            return false;
        int i2 = (j - k) * (k1 - j1) - (i - j1) * (l - k);
        int j2 = (j - i1) * (j1 - l1) - (i - l1) * (k - i1);
        int k2 = (j - l) * (l1 - k1) - (i - k1) * (i1 - l);
        return i2 * k2 > 0 && k2 * j2 > 0;
    }

    public void method556(byte byte0)
    {
        if(byte0 != 5)
        {
            for(int i = 1; i > 0; i++);
        }
        int j = anIntArray531[anInt505];
        Class7 aclass7[] = aClass7ArrayArray532[anInt505];
        anInt533 = 0;
        for(int k = 0; k < j; k++)
        {
            Class7 class7 = aclass7[k];
            if(class7.anInt125 == 1)
            {
                int l = (class7.anInt121 - anInt511) + 25;
                if(l < 0 || l > 50)
                    continue;
                int k1 = (class7.anInt123 - anInt512) + 25;
                if(k1 < 0)
                    k1 = 0;
                int j2 = (class7.anInt124 - anInt512) + 25;
                if(j2 > 50)
                    j2 = 50;
                boolean flag = false;
                while(k1 <= j2) 
                    if(aBooleanArrayArray550[l][k1++])
                    {
                        flag = true;
                        break;
                    }
                if(!flag)
                    continue;
                int j3 = anInt513 - class7.anInt126;
                if(j3 > 32)
                {
                    class7.anInt132 = 1;
                } else
                {
                    if(j3 >= -32)
                        continue;
                    class7.anInt132 = 2;
                    j3 = -j3;
                }
                class7.anInt135 = (class7.anInt128 - anInt515 << 8) / j3;
                class7.anInt136 = (class7.anInt129 - anInt515 << 8) / j3;
                class7.anInt137 = (class7.anInt130 - anInt514 << 8) / j3;
                class7.anInt138 = (class7.anInt131 - anInt514 << 8) / j3;
                aClass7Array534[anInt533++] = class7;
                continue;
            }
            if(class7.anInt125 == 2)
            {
                int i1 = (class7.anInt123 - anInt512) + 25;
                if(i1 < 0 || i1 > 50)
                    continue;
                int l1 = (class7.anInt121 - anInt511) + 25;
                if(l1 < 0)
                    l1 = 0;
                int k2 = (class7.anInt122 - anInt511) + 25;
                if(k2 > 50)
                    k2 = 50;
                boolean flag1 = false;
                while(l1 <= k2) 
                    if(aBooleanArrayArray550[l1++][i1])
                    {
                        flag1 = true;
                        break;
                    }
                if(!flag1)
                    continue;
                int k3 = anInt515 - class7.anInt128;
                if(k3 > 32)
                {
                    class7.anInt132 = 3;
                } else
                {
                    if(k3 >= -32)
                        continue;
                    class7.anInt132 = 4;
                    k3 = -k3;
                }
                class7.anInt133 = (class7.anInt126 - anInt513 << 8) / k3;
                class7.anInt134 = (class7.anInt127 - anInt513 << 8) / k3;
                class7.anInt137 = (class7.anInt130 - anInt514 << 8) / k3;
                class7.anInt138 = (class7.anInt131 - anInt514 << 8) / k3;
                aClass7Array534[anInt533++] = class7;
            } else
            if(class7.anInt125 == 4)
            {
                int j1 = class7.anInt130 - anInt514;
                if(j1 > 128)
                {
                    int i2 = (class7.anInt123 - anInt512) + 25;
                    if(i2 < 0)
                        i2 = 0;
                    int l2 = (class7.anInt124 - anInt512) + 25;
                    if(l2 > 50)
                        l2 = 50;
                    if(i2 <= l2)
                    {
                        int i3 = (class7.anInt121 - anInt511) + 25;
                        if(i3 < 0)
                            i3 = 0;
                        int l3 = (class7.anInt122 - anInt511) + 25;
                        if(l3 > 50)
                            l3 = 50;
                        boolean flag2 = false;
label0:
                        for(int i4 = i3; i4 <= l3; i4++)
                        {
                            for(int j4 = i2; j4 <= l2; j4++)
                            {
                                if(!aBooleanArrayArray550[i4][j4])
                                    continue;
                                flag2 = true;
                                break label0;
                            }

                        }

                        if(flag2)
                        {
                            class7.anInt132 = 5;
                            class7.anInt133 = (class7.anInt126 - anInt513 << 8) / j1;
                            class7.anInt134 = (class7.anInt127 - anInt513 << 8) / j1;
                            class7.anInt135 = (class7.anInt128 - anInt515 << 8) / j1;
                            class7.anInt136 = (class7.anInt129 - anInt515 << 8) / j1;
                            aClass7Array534[anInt533++] = class7;
                        }
                    }
                }
            }
        }

    }

    public boolean method557(int i, int j, int k)
    {
        int l = anIntArrayArrayArray503[i][j][k];
        if(l == -anInt506)
            return false;
        if(l == anInt506)
            return true;
        int i1 = j << 7;
        int j1 = k << 7;
        if(method561(i1 + 1, anIntArrayArrayArray498[i][j][k], j1 + 1) && method561((i1 + 128) - 1, anIntArrayArrayArray498[i][j + 1][k], j1 + 1) && method561((i1 + 128) - 1, anIntArrayArrayArray498[i][j + 1][k + 1], (j1 + 128) - 1) && method561(i1 + 1, anIntArrayArrayArray498[i][j][k + 1], (j1 + 128) - 1))
        {
            anIntArrayArrayArray503[i][j][k] = anInt506;
            return true;
        } else
        {
            anIntArrayArrayArray503[i][j][k] = -anInt506;
            return false;
        }
    }

    public boolean method558(int i, int j, int k, int l)
    {
        if(!method557(i, j, k))
            return false;
        int i1 = j << 7;
        int j1 = k << 7;
        int k1 = anIntArrayArrayArray498[i][j][k] - 1;
        int l1 = k1 - 120;
        int i2 = k1 - 230;
        int j2 = k1 - 238;
        if(l < 16)
        {
            if(l == 1)
            {
                if(i1 > anInt513)
                {
                    if(!method561(i1, k1, j1))
                        return false;
                    if(!method561(i1, k1, j1 + 128))
                        return false;
                }
                if(i > 0)
                {
                    if(!method561(i1, l1, j1))
                        return false;
                    if(!method561(i1, l1, j1 + 128))
                        return false;
                }
                if(!method561(i1, i2, j1))
                    return false;
                return method561(i1, i2, j1 + 128);
            }
            if(l == 2)
            {
                if(j1 < anInt515)
                {
                    if(!method561(i1, k1, j1 + 128))
                        return false;
                    if(!method561(i1 + 128, k1, j1 + 128))
                        return false;
                }
                if(i > 0)
                {
                    if(!method561(i1, l1, j1 + 128))
                        return false;
                    if(!method561(i1 + 128, l1, j1 + 128))
                        return false;
                }
                if(!method561(i1, i2, j1 + 128))
                    return false;
                return method561(i1 + 128, i2, j1 + 128);
            }
            if(l == 4)
            {
                if(i1 < anInt513)
                {
                    if(!method561(i1 + 128, k1, j1))
                        return false;
                    if(!method561(i1 + 128, k1, j1 + 128))
                        return false;
                }
                if(i > 0)
                {
                    if(!method561(i1 + 128, l1, j1))
                        return false;
                    if(!method561(i1 + 128, l1, j1 + 128))
                        return false;
                }
                if(!method561(i1 + 128, i2, j1))
                    return false;
                return method561(i1 + 128, i2, j1 + 128);
            }
            if(l == 8)
            {
                if(j1 > anInt515)
                {
                    if(!method561(i1, k1, j1))
                        return false;
                    if(!method561(i1 + 128, k1, j1))
                        return false;
                }
                if(i > 0)
                {
                    if(!method561(i1, l1, j1))
                        return false;
                    if(!method561(i1 + 128, l1, j1))
                        return false;
                }
                if(!method561(i1, i2, j1))
                    return false;
                return method561(i1 + 128, i2, j1);
            }
        }
        if(!method561(i1 + 64, j2, j1 + 64))
            return false;
        if(l == 16)
            return method561(i1, i2, j1 + 128);
        if(l == 32)
            return method561(i1 + 128, i2, j1 + 128);
        if(l == 64)
            return method561(i1 + 128, i2, j1);
        if(l == 128)
        {
            return method561(i1, i2, j1);
        } else
        {
            System.out.println("Warning unsupported wall type");
            return true;
        }
    }

    public boolean method559(int i, int j, int k, int l)
    {
        if(!method557(i, j, k))
            return false;
        int i1 = j << 7;
        int j1 = k << 7;
        return method561(i1 + 1, anIntArrayArrayArray498[i][j][k] - l, j1 + 1) && method561((i1 + 128) - 1, anIntArrayArrayArray498[i][j + 1][k] - l, j1 + 1) && method561((i1 + 128) - 1, anIntArrayArrayArray498[i][j + 1][k + 1] - l, (j1 + 128) - 1) && method561(i1 + 1, anIntArrayArrayArray498[i][j][k + 1] - l, (j1 + 128) - 1);
    }

    public boolean method560(int i, int j, int k, int l, int i1, int j1)
    {
        if(j == k && l == i1)
        {
            if(!method557(i, j, l))
                return false;
            int k1 = j << 7;
            int i2 = l << 7;
            return method561(k1 + 1, anIntArrayArrayArray498[i][j][l] - j1, i2 + 1) && method561((k1 + 128) - 1, anIntArrayArrayArray498[i][j + 1][l] - j1, i2 + 1) && method561((k1 + 128) - 1, anIntArrayArrayArray498[i][j + 1][l + 1] - j1, (i2 + 128) - 1) && method561(k1 + 1, anIntArrayArrayArray498[i][j][l + 1] - j1, (i2 + 128) - 1);
        }
        for(int l1 = j; l1 <= k; l1++)
        {
            for(int j2 = l; j2 <= i1; j2++)
                if(anIntArrayArrayArray503[i][l1][j2] == -anInt506)
                    return false;

        }

        int k2 = (j << 7) + 1;
        int l2 = (l << 7) + 2;
        int i3 = anIntArrayArrayArray498[i][j][l] - j1;
        if(!method561(k2, i3, l2))
            return false;
        int j3 = (k << 7) - 1;
        if(!method561(j3, i3, l2))
            return false;
        int k3 = (i1 << 7) - 1;
        if(!method561(k2, i3, k3))
            return false;
        return method561(j3, i3, k3);
    }

    public boolean method561(int i, int j, int k)
    {
        for(int l = 0; l < anInt533; l++)
        {
            Class7 class7 = aClass7Array534[l];
            if(class7.anInt132 == 1)
            {
                int i1 = class7.anInt126 - i;
                if(i1 > 0)
                {
                    int j2 = class7.anInt128 + (class7.anInt135 * i1 >> 8);
                    int k3 = class7.anInt129 + (class7.anInt136 * i1 >> 8);
                    int l4 = class7.anInt130 + (class7.anInt137 * i1 >> 8);
                    int i6 = class7.anInt131 + (class7.anInt138 * i1 >> 8);
                    if(k >= j2 && k <= k3 && j >= l4 && j <= i6)
                        return true;
                }
            } else
            if(class7.anInt132 == 2)
            {
                int j1 = i - class7.anInt126;
                if(j1 > 0)
                {
                    int k2 = class7.anInt128 + (class7.anInt135 * j1 >> 8);
                    int l3 = class7.anInt129 + (class7.anInt136 * j1 >> 8);
                    int i5 = class7.anInt130 + (class7.anInt137 * j1 >> 8);
                    int j6 = class7.anInt131 + (class7.anInt138 * j1 >> 8);
                    if(k >= k2 && k <= l3 && j >= i5 && j <= j6)
                        return true;
                }
            } else
            if(class7.anInt132 == 3)
            {
                int k1 = class7.anInt128 - k;
                if(k1 > 0)
                {
                    int l2 = class7.anInt126 + (class7.anInt133 * k1 >> 8);
                    int i4 = class7.anInt127 + (class7.anInt134 * k1 >> 8);
                    int j5 = class7.anInt130 + (class7.anInt137 * k1 >> 8);
                    int k6 = class7.anInt131 + (class7.anInt138 * k1 >> 8);
                    if(i >= l2 && i <= i4 && j >= j5 && j <= k6)
                        return true;
                }
            } else
            if(class7.anInt132 == 4)
            {
                int l1 = k - class7.anInt128;
                if(l1 > 0)
                {
                    int i3 = class7.anInt126 + (class7.anInt133 * l1 >> 8);
                    int j4 = class7.anInt127 + (class7.anInt134 * l1 >> 8);
                    int k5 = class7.anInt130 + (class7.anInt137 * l1 >> 8);
                    int l6 = class7.anInt131 + (class7.anInt138 * l1 >> 8);
                    if(i >= i3 && i <= j4 && j >= k5 && j <= l6)
                        return true;
                }
            } else
            if(class7.anInt132 == 5)
            {
                int i2 = j - class7.anInt130;
                if(i2 > 0)
                {
                    int j3 = class7.anInt126 + (class7.anInt133 * i2 >> 8);
                    int k4 = class7.anInt127 + (class7.anInt134 * i2 >> 8);
                    int l5 = class7.anInt128 + (class7.anInt135 * i2 >> 8);
                    int i7 = class7.anInt129 + (class7.anInt136 * i2 >> 8);
                    if(i >= j3 && i <= k4 && k >= l5 && k <= i7)
                        return true;
                }
            }
        }

        return false;
    }

    public static boolean aBoolean488;
    public int anInt489;
    public int anInt490;
    public static boolean aBoolean491 = true;
    public static int anInt492 = 38046;
    public boolean aBoolean493;
    public static boolean aBoolean494 = true;
    public int anInt495;
    public int anInt496;
    public int anInt497;
    public int anIntArrayArrayArray498[][][];
    public Class31_Sub1 aClass31_Sub1ArrayArrayArray499[][][];
    public int anInt500;
    public int anInt501;
    public Class47 aClass47Array502[];
    public int anIntArrayArrayArray503[][][];
    public static int anInt504;
    public static int anInt505;
    public static int anInt506;
    public static int anInt507;
    public static int anInt508;
    public static int anInt509;
    public static int anInt510;
    public static int anInt511;
    public static int anInt512;
    public static int anInt513;
    public static int anInt514;
    public static int anInt515;
    public static int anInt516;
    public static int anInt517;
    public static int anInt518;
    public static int anInt519;
    public static Class47 aClass47Array520[] = new Class47[100];
    public static final int anIntArray521[] = {
        53, -53, -53, 53
    };
    public static final int anIntArray522[] = {
        -53, -53, 53, 53
    };
    public static final int anIntArray523[] = {
        -45, 45, 45, -45
    };
    public static final int anIntArray524[] = {
        45, 45, -45, -45
    };
    public static boolean aBoolean525;
    public static int anInt526;
    public static int anInt527;
    public static int anInt528 = -1;
    public static int anInt529 = -1;
    public static int anInt530;
    public static int anIntArray531[];
    public static Class7 aClass7ArrayArray532[][];
    public static int anInt533;
    public static Class7 aClass7Array534[] = new Class7[500];
    public static Class28 aClass28_535 = new Class28(0);
    public static final int anIntArray536[] = {
        19, 55, 38, 155, 255, 110, 137, 205, 76
    };
    public static final int anIntArray537[] = {
        160, 192, 80, 96, 0, 144, 80, 48, 160
    };
    public static final int anIntArray538[] = {
        76, 8, 137, 4, 0, 1, 38, 2, 19
    };
    public static final int anIntArray539[] = {
        0, 0, 2, 0, 0, 2, 1, 1, 0
    };
    public static final int anIntArray540[] = {
        2, 0, 0, 2, 0, 0, 0, 4, 4
    };
    public static final int anIntArray541[] = {
        0, 4, 4, 8, 0, 0, 8, 0, 0
    };
    public static final int anIntArray542[] = {
        1, 1, 0, 0, 0, 8, 0, 0, 8
    };
    public static final int anIntArray543[] = {
        41, 39248, 41, 4643, 41, 41, 41, 41, 41, 41, 
        41, 41, 41, 41, 41, 43086, 41, 41, 41, 41, 
        41, 41, 41, 8602, 41, 28992, 41, 41, 41, 41, 
        41, 5056, 41, 41, 41, 7079, 41, 41, 41, 41, 
        41, 41, 41, 41, 41, 41, 3131, 41, 41, 41
    };
    public int anIntArray544[];
    public int anIntArray545[];
    public int anInt546;
    public int anIntArrayArray547[][] = {
        new int[16], {
            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
            1, 1, 1, 1, 1, 1
        }, {
            1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 
            1, 0, 1, 1, 1, 1
        }, {
            1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 
            0, 0, 1, 0, 0, 0
        }, {
            0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 
            0, 1, 0, 0, 0, 1
        }, {
            0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 
            1, 1, 1, 1, 1, 1
        }, {
            1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 
            1, 1, 1, 1, 1, 1
        }, {
            1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 
            0, 0, 1, 1, 0, 0
        }, {
            0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 
            0, 0, 1, 1, 0, 0
        }, {
            1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 
            1, 1, 0, 0, 1, 1
        }, 
        {
            1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 
            0, 0, 1, 0, 0, 0
        }, {
            0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 
            1, 1, 0, 1, 1, 1
        }, {
            0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
            1, 0, 1, 1, 1, 1
        }
    };
    public int anIntArrayArray548[][] = {
        {
            0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
            10, 11, 12, 13, 14, 15
        }, {
            12, 8, 4, 0, 13, 9, 5, 1, 14, 10, 
            6, 2, 15, 11, 7, 3
        }, {
            15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 
            5, 4, 3, 2, 1, 0
        }, {
            3, 7, 11, 15, 2, 6, 10, 14, 1, 5, 
            9, 13, 0, 4, 8, 12
        }
    };
    public static boolean aBooleanArrayArrayArrayArray549[][][][] = new boolean[8][32][51][51];
    public static boolean aBooleanArrayArray550[][];
    public static int anInt551;
    public static int anInt552;
    public static int anInt553;
    public static int anInt554;
    public static int anInt555;
    public static int anInt556;

    static 
    {
        anInt530 = 4;
        anIntArray531 = new int[anInt530];
        aClass7ArrayArray532 = new Class7[anInt530][500];
    }
}
