SepCompareClaimAttributes

UINT8 __fastcall SepCompareClaimAttributes(
        _AUTHZBASEP_CLAIM_ATTRIBUTES_COLLECTION *ClaimAttributesOne,
        _AUTHZBASEP_CLAIM_ATTRIBUTES_COLLECTION *ClaimAttributesTwo){
  char v4; 
  char v5; 
  char v6; 
  char v7; 
  char v8; 
  char v9; 
  char v10; 
  char v11; 
  v4 = 0;
  v5 = 0;
  v6 = 0;
  v7 = 0;
  v8 = 0;
  v9 = 0;
  v10 = 0;
  v11 = 0;
  if( ClaimAttributesOne == ClaimAttributesTwo )
    return 1;
  if( ClaimAttributesOne )
  {
    v6 = 1;
    v8 = ClaimAttributesOne->pUserSecurityAttributes != 0i64;
    v9 = ClaimAttributesOne->pDeviceSecurityAttributes != 0i64;
    if( ClaimAttributesOne->DeviceGroupsCount )
      v10 = 1;
  }
  if( ClaimAttributesTwo )
  {
    v7 = 1;
    v4 = ClaimAttributesTwo->pUserSecurityAttributes != 0i64;
    v5 = ClaimAttributesTwo->pDeviceSecurityAttributes != 0i64;
    if( ClaimAttributesTwo->DeviceGroupsCount )
      v11 = 1;
  }
  return v6 == v7
      && v8 == v4
      && v9 == v5
      && v10 == v11
      && (!v6
       || (!v8
        || AuthzBasepCompareSecurityAttributesInformation(
             (__int64)ClaimAttributesOne->pUserSecurityAttributes,
             &ClaimAttributesTwo->pUserSecurityAttributes->SecurityAttributeCount))
       && (!v9
        || AuthzBasepCompareSecurityAttributesInformation(
             (__int64)ClaimAttributesOne->pDeviceSecurityAttributes,
             &ClaimAttributesTwo->pDeviceSecurityAttributes->SecurityAttributeCount))
       && (!v10
        || SepCompareSidAndAttributeArrays(
             ClaimAttributesOne->pDeviceGroups,
             ClaimAttributesOne->DeviceGroupsCount,
             ClaimAttributesTwo->pDeviceGroups,
             ClaimAttributesTwo->DeviceGroupsCount)));
}

Referenced by:

NtCompareTokens
SepSetTokenClaims