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)); }