private static SecurityElement LoadSecurityElementChecked(BinaryReader InReader, byte InType, SecurityElement InParent) { byte b = InReader.ReadByte(); if (b != InType) { return(null); } string text = InReader.ReadString(); string text2 = InReader.ReadString(); SecurityElement securityElement = new SecurityElement(text, text2); int num = InReader.ReadInt32(); DebugHelper.Assert(num < 512, "too many attributes."); for (int i = 0; i < num; i++) { string text3 = InReader.ReadString(); string text4 = InReader.ReadString(); securityElement.AddAttribute(text3, text4); } int num2 = InReader.ReadInt32(); DebugHelper.Assert(num2 < 515, "too many children"); for (int j = 0; j < num2; j++) { SecurityElement securityElement2 = SecurityTools.LoadSecurityElementChecked(InReader, 1, securityElement); DebugHelper.Assert(securityElement2 != null, "invalid child element"); } if (InParent != null) { InParent.AddChild(securityElement); } return(securityElement); }
private static SecurityElement LoadRootSecurityElement(BinaryReader InReader) { SecurityElement result; try { SecurityElement securityElement = SecurityTools.LoadSecurityElementChecked(InReader, 0, null); result = securityElement; } catch (Exception ex) { DebugHelper.Assert(false, ex.get_Message()); result = null; } return(result); }