Ejemplo n.º 1
0
        private static IList <FileDescriptor> DeterminePublicDependencies(FileDescriptor @this, FileDescriptorProto proto, FileDescriptor[] dependencies, bool allowUnknownDependencies)
        {
            Dictionary <string, FileDescriptor> dictionary = new Dictionary <string, FileDescriptor>();
            List <FileDescriptor> list;
            string text;

            while (true)
            {
IL_25F:
                uint arg_1FD_0 = 1480753851u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_1FD_0 ^ 354656998u)) % 21u)
                    {
                    case 0u:
                    {
                        int num2;
                        arg_1FD_0 = ((num2 < dependencies.Length) ? 755598000u : 1625878074u);
                        continue;
                    }

                    case 1u:
                    {
                        FileDescriptor fileDescriptor;
                        arg_1FD_0 = (((fileDescriptor != null) ? 3503588187u : 2689291383u) ^ num * 269180022u);
                        continue;
                    }

                    case 2u:
                        arg_1FD_0 = (num * 1428810503u ^ 597188103u);
                        continue;

                    case 3u:
                    {
                        int num2;
                        num2++;
                        arg_1FD_0 = (num * 4026010881u ^ 1873699178u);
                        continue;
                    }

                    case 4u:
                    {
                        list = new List <FileDescriptor>();
                        int num3 = 0;
                        arg_1FD_0 = (num * 172851441u ^ 2057392629u);
                        continue;
                    }

                    case 5u:
                    {
                        int num4;
                        text      = proto.Dependency[num4];
                        arg_1FD_0 = 1182864162u;
                        continue;
                    }

                    case 6u:
                    {
                        int num4;
                        arg_1FD_0 = (((num4 < proto.Dependency.Count) ? 199583157u : 1553389033u) ^ num * 904630291u);
                        continue;
                    }

                    case 7u:
                    {
                        int num2 = 0;
                        arg_1FD_0 = (num * 2059016605u ^ 2886768975u);
                        continue;
                    }

                    case 8u:
                    {
                        FileDescriptor fileDescriptor2;
                        dictionary[fileDescriptor2.Name] = fileDescriptor2;
                        arg_1FD_0 = (num * 2415469140u ^ 158078469u);
                        continue;
                    }

                    case 9u:
                    {
                        FileDescriptor fileDescriptor = dictionary[text];
                        arg_1FD_0 = (num * 1703034579u ^ 4134718755u);
                        continue;
                    }

                    case 10u:
                    {
                        int num3;
                        num3++;
                        arg_1FD_0 = 1400639947u;
                        continue;
                    }

                    case 11u:
                        goto IL_266;

                    case 13u:
                        goto IL_277;

                    case 14u:
                    {
                        int num3;
                        int num4 = proto.PublicDependency[num3];
                        arg_1FD_0 = ((num4 < 0) ? 43381538u : 749549455u);
                        continue;
                    }

                    case 15u:
                        arg_1FD_0 = (num * 1315834947u ^ 1640480294u);
                        continue;

                    case 16u:
                        arg_1FD_0 = (((!allowUnknownDependencies) ? 1742178966u : 1225729944u) ^ num * 865084290u);
                        continue;

                    case 17u:
                    {
                        FileDescriptor fileDescriptor;
                        list.Add(fileDescriptor);
                        arg_1FD_0 = 83744118u;
                        continue;
                    }

                    case 18u:
                    {
                        int            num2;
                        FileDescriptor fileDescriptor2 = dependencies[num2];
                        arg_1FD_0 = 266579083u;
                        continue;
                    }

                    case 19u:
                        goto IL_25F;

                    case 20u:
                    {
                        int num3;
                        arg_1FD_0 = ((num3 < proto.PublicDependency.Count) ? 1502489908u : 1152782524u);
                        continue;
                    }
                    }
                    goto Block_7;
                }
            }
Block_7:
            goto IL_28F;
IL_266:
            throw new DescriptorValidationException(@this, Module.smethod_34 <string>(2614455357u));
IL_277:
            throw new DescriptorValidationException(@this, FileDescriptor.smethod_3(Module.smethod_35 <string>(82095339u), text));
IL_28F:
            return(new ReadOnlyCollection <FileDescriptor>(list));
        }