177 {
181 if (aceType ==
AceType.AccessAllowed || aceType ==
AceType.AccessDenied || aceType ==
AceType.SystemAudit || aceType ==
AceType.SystemAlarm || aceType ==
AceType.AccessAllowedCallback || aceType ==
AceType.AccessDeniedCallback || aceType ==
AceType.SystemAuditCallback || aceType ==
AceType.SystemAlarmCallback)
182 {
183 if (CommonAce.ParseBinaryForm(binaryForm,
offset, out var qualifier, out var accessMask, out var sid, out var isCallback, out var opaque))
184 {
186 genericAce = new CommonAce(flags, qualifier, accessMask, sid, isCallback, opaque);
187 goto IL_0154;
188 }
189 }
190 else if (aceType ==
AceType.AccessAllowedObject || aceType ==
AceType.AccessDeniedObject || aceType ==
AceType.SystemAuditObject || aceType ==
AceType.SystemAlarmObject || aceType ==
AceType.AccessAllowedCallbackObject || aceType ==
AceType.AccessDeniedCallbackObject || aceType ==
AceType.SystemAuditCallbackObject || aceType ==
AceType.SystemAlarmCallbackObject)
191 {
192 if (ObjectAce.ParseBinaryForm(binaryForm,
offset, out var qualifier2, out var accessMask2, out var sid2, out var objectFlags, out var objectAceType, out var inheritedObjectAceType, out var isCallback2, out var opaque2))
193 {
195 genericAce = new ObjectAce(aceFlags, qualifier2, accessMask2, sid2, objectFlags, objectAceType, inheritedObjectAceType, isCallback2, opaque2);
196 goto IL_0154;
197 }
198 }
199 else if (aceType ==
AceType.AccessAllowedCompound)
200 {
201 if (CompoundAce.ParseBinaryForm(binaryForm,
offset, out var accessMask3, out var compoundAceType, out var sid3))
202 {
204 genericAce = new CompoundAce(flags2, accessMask3, compoundAceType, sid3);
205 goto IL_0154;
206 }
207 }
208 else
209 {
212 int num = binaryForm[
offset + 2] + (binaryForm[
offset + 3] << 8);
213 if (num % 4 == 0)
214 {
215 int num2 = num - 4;
216 if (num2 > 0)
217 {
218 array =
new byte[num2];
219 for (
int i = 0;
i < num2;
i++)
220 {
222 }
223 }
224 genericAce =
new CustomAce(aceType, flags3,
array);
225 goto IL_0154;
226 }
227 }
228 goto IL_01a8;
229 IL_01a8:
231 IL_0154:
232 if ((genericAce is ObjectAce || binaryForm[
offset + 2] + (binaryForm[
offset + 3] << 8) == genericAce.BinaryLength) && (!(genericAce is ObjectAce) || binaryForm[
offset + 2] + (binaryForm[
offset + 3] << 8) == genericAce.BinaryLength || binaryForm[
offset + 2] + (binaryForm[
offset + 3] << 8) - 32 == genericAce.BinaryLength))
233 {
234 return genericAce;
235 }
236 goto IL_01a8;
237 }
static string ArgumentException_InvalidAceBinaryForm
static void VerifyHeader(byte[] binaryForm, int offset)
GenericAce(AceType type, AceFlags flags)