public static ICollection<TypeReference> GetAssemblyAttributesUsedTypes(AssemblyDefinition assembly) { V_0 = new List<TypeReference>(); V_1 = new List<ICustomAttribute>(); V_1.Add(AttributesUtilities.GetAssemblyVersionAttribute(assembly)); V_3 = assembly.get_CustomAttributes().GetEnumerator(); try { while (V_3.MoveNext()) { V_4 = V_3.get_Current(); V_4.Resolve(); V_1.Add(V_4); } } finally { V_3.Dispose(); } if (assembly.get_HasSecurityDeclarations()) { V_5 = assembly.get_SecurityDeclarations().GetEnumerator(); try { while (V_5.MoveNext()) { V_6 = V_5.get_Current(); if (!V_6.get_HasSecurityAttributes()) { continue; } V_7 = V_6.get_SecurityAttributes().GetEnumerator(); try { while (V_7.MoveNext()) { V_8 = V_7.get_Current(); V_1.Add(V_8); } } finally { V_7.Dispose(); } } } finally { V_5.Dispose(); } } if (assembly.get_MainModule().get_HasExportedTypes()) { V_9 = assembly.get_MainModule().get_ExportedTypes().GetEnumerator(); try { while (V_9.MoveNext()) { V_10 = V_9.get_Current(); if (V_10.get_Scope() as ModuleReference != null) { continue; } V_1.Add(AttributesUtilities.GetExportedTypeAttribute(V_10, assembly.get_MainModule())); } } finally { V_9.Dispose(); } } V_11 = V_1.GetEnumerator(); try { while (V_11.MoveNext()) { V_12 = V_11.get_Current(); if (V_12 as CustomAttribute == null) { if (V_12 as SecurityAttribute == null) { continue; } V_13 = AttributesUtilities.GetSecurityAttributeUsedTypes(V_12 as SecurityAttribute).GetEnumerator(); try { while (V_13.MoveNext()) { V_15 = V_13.get_Current(); V_0.Add(V_15); } } finally { if (V_13 != null) { V_13.Dispose(); } } } else { V_13 = AttributesUtilities.GetCustomAttributeUsedTypes(V_12 as CustomAttribute).GetEnumerator(); try { while (V_13.MoveNext()) { V_14 = V_13.get_Current(); V_0.Add(V_14); } } finally { if (V_13 != null) { V_13.Dispose(); } } } } } finally { ((IDisposable)V_11).Dispose(); } return V_0; }