SepCompareClaimAttributes

UINT8 __stdcall SepCompareClaimAttributes(
        _AUTHZBASEP_CLAIM_ATTRIBUTES_COLLECTION *ClaimAttributesOne,
        _AUTHZBASEP_CLAIM_ATTRIBUTES_COLLECTION *ClaimAttributesTwo,
        UINT8 a3){
  char v5; 
  char v6; 
  char v7; 
  char v8; 
  char v9; 
  char v10; 
  char v11; 
  char v12; 

  v5 = 0;
  v6 = 0;
  v7 = 0;
  v8 = 0;
  v9 = 0;
  v10 = 0;
  v11 = 0;
  v12 = 0;
  if( ClaimAttributesOne == ClaimAttributesTwo )
    return 1;
  if( ClaimAttributesOne )
  {
    v7 = 1;
    v9 = ClaimAttributesOne->pUserSecurityAttributes != 0i64;
    v10 = ClaimAttributesOne->pDeviceSecurityAttributes != 0i64;
    if( ClaimAttributesOne->DeviceGroupsCount )
      v11 = 1;
  }
  if( ClaimAttributesTwo )
  {
    v8 = 1;
    v5 = ClaimAttributesTwo->pUserSecurityAttributes != 0i64;
    v6 = ClaimAttributesTwo->pDeviceSecurityAttributes != 0i64;
    if( ClaimAttributesTwo->DeviceGroupsCount )
      v12 = 1;
  }
  return v7 == v8
      && v9 == v5
      && v10 == v6
      && v11 == v12
      && (!v7
       || (!v9
        || AuthzBasepCompareSecurityAttributesInformation(
             ClaimAttributesOne->pUserSecurityAttributes,
             ClaimAttributesTwo->pUserSecurityAttributes))
       && (!v10
        || AuthzBasepCompareSecurityAttributesInformation(
             ClaimAttributesOne->pDeviceSecurityAttributes,
             ClaimAttributesTwo->pDeviceSecurityAttributes))
       && (!v11
        || SepCompareSidAndAttributeArrays(
             ClaimAttributesOne->pDeviceGroups,
             ClaimAttributesOne->DeviceGroupsCount,
             ClaimAttributesTwo->pDeviceGroups,
             ClaimAttributesTwo->DeviceGroupsCount)));
}

Referenced by:

NtCompareTokens
SepSetTokenClaims