private static FileDescriptor BuildFrom(ByteString descriptorData, FileDescriptorProto proto, FileDescriptor[] dependencies, bool allowUnknownDependencies, GeneratedCodeInfo generatedCodeInfo) { if (dependencies == null) { goto IL_18; } goto IL_122; uint arg_D3_0; FileDescriptor fileDescriptor; int num2; while (true) { IL_CE: uint num; switch ((num = (arg_D3_0 ^ 4161713641u)) % 12u) { case 0u: fileDescriptor.CrossLink(); arg_D3_0 = (num * 1953233347u ^ 2707760628u); continue; case 1u: num2 = 0; arg_D3_0 = 2574715432u; continue; case 2u: num2++; arg_D3_0 = 4243801185u; continue; case 3u: dependencies = new FileDescriptor[0]; arg_D3_0 = (num * 3942966366u ^ 4286440245u); continue; case 4u: arg_D3_0 = ((num2 < proto.Dependency.Count) ? 2982469083u : 3757505837u); continue; case 5u: arg_D3_0 = (num * 314203903u ^ 1276877662u); continue; case 6u: arg_D3_0 = ((!FileDescriptor.smethod_5(dependencies[num2].Name, proto.Dependency[num2])) ? 3773742995u : 2893382989u); continue; case 7u: goto IL_18; case 8u: goto IL_14B; case 10u: goto IL_122; case 11u: goto IL_183; } break; } return(fileDescriptor); IL_14B: throw new DescriptorValidationException(fileDescriptor, FileDescriptor.smethod_6(Module.smethod_37 <string>(2509052754u), proto.Dependency[num2], Module.smethod_35 <string>(3048061080u), dependencies[num2].Name)); IL_183: throw new DescriptorValidationException(fileDescriptor, Module.smethod_33 <string>(2639691648u)); IL_18: arg_D3_0 = 3320637418u; goto IL_CE; IL_122: DescriptorPool pool = new DescriptorPool(dependencies); fileDescriptor = new FileDescriptor(descriptorData, proto, dependencies, pool, allowUnknownDependencies, generatedCodeInfo); arg_D3_0 = ((dependencies.Length != proto.Dependency.Count) ? 2984046962u : 2591580144u); goto IL_CE; }