示例#1
0
            public bool m000017(c00000d.c00000f p0)
            {
                int num2;
                int num3;
                Label_0000:
                switch (this.f00001e)
                {
                    case 0:
                        this.f00001f = p0.m00000e(5);
                        if (this.f00001f >= 0)
                        {
                            this.f00001f += 0x101;
                            p0.m000004(5);
                            this.f00001e = 1;
                            break;
                        }
                        return false;

                    case 1:
                        break;

                    case 2:
                        goto Label_00C3;

                    case 3:
                        goto Label_014E;

                    case 4:
                        goto Label_01C6;

                    case 5:
                        goto Label_0207;

                    default:
                        goto Label_0000;
                }
                this.f000010 = p0.m00000e(5);
                if (this.f000010 < 0)
                {
                    return false;
                }
                this.f000010++;
                p0.m000004(5);
                this.f000016 = this.f00001f + this.f000010;
                this.f00001d = new byte[this.f000016];
                this.f00001e = 2;
                Label_00C3:
                this.f000011 = p0.m00000e(4);
                if (this.f000011 < 0)
                {
                    return false;
                }
                this.f000011 += 4;
                p0.m000004(4);
                this.f000008 = new byte[0x13];
                this.f000022 = 0;
                this.f00001e = 3;
                Label_014E:
                while (this.f000022 < this.f000011)
                {
                    int num = p0.m00000e(3);
                    if (num < 0)
                    {
                        return false;
                    }
                    p0.m000004(3);
                    this.f000008[f000023[this.f000022]] = (byte) num;
                    this.f000022++;
                }
                this.f000019 = new c00000d.c000011(this.f000008);
                this.f000008 = null;
                this.f000022 = 0;
                this.f00001e = 4;
                Label_01C6:
                while (((num2 = this.f000019.m000016(p0)) & -16) == 0)
                {
                    this.f00001d[this.f000022++] = this.f000021 = (byte) num2;
                    if (this.f000022 == this.f000016)
                    {
                        return true;
                    }
                }
                if (num2 < 0)
                {
                    return false;
                }
                if (num2 >= 0x11)
                {
                    this.f000021 = 0;
                }
                this.f000020 = num2 - 0x10;
                this.f00001e = 5;
                Label_0207:
                num3 = f00000f[this.f000020];
                int num4 = p0.m00000e(num3);
                if (num4 < 0)
                {
                    return false;
                }
                p0.m000004(num3);
                num4 += f00000b[this.f000020];
                while (num4-- > 0)
                {
                    this.f00001d[this.f000022++] = this.f000021;
                }
                if (this.f000022 == this.f000016)
                {
                    return true;
                }
                this.f00001e = 4;
                goto Label_0000;
            }
示例#2
0
 public int m000016(c00000d.c00000f p0)
 {
     int num2;
     int index = p0.m00000e(9);
     if (index >= 0)
     {
         num2 = this.f00001c[index];
         if (num2 >= 0)
         {
             p0.m000004(num2 & 15);
             return (num2 >> 4);
         }
         int num3 = -(num2 >> 4);
         int num4 = num2 & 15;
         index = p0.m00000e(num4);
         if (index >= 0)
         {
             num2 = this.f00001c[num3 | (index >> 9)];
             p0.m000004(num2 & 15);
             return (num2 >> 4);
         }
         int num5 = p0.m00000f();
         index = p0.m00000e(num5);
         num2 = this.f00001c[num3 | (index >> 9)];
         if ((num2 & 15) <= num5)
         {
             p0.m000004(num2 & 15);
             return (num2 >> 4);
         }
         return -1;
     }
     int num6 = p0.m00000f();
     index = p0.m00000e(num6);
     num2 = this.f00001c[index];
     if ((num2 >= 0) && ((num2 & 15) <= num6))
     {
         p0.m000004(num2 & 15);
         return (num2 >> 4);
     }
     return -1;
 }