PiAuAllocateAndInitializeSid

INT64 __fastcall PiAuAllocateAndInitializeSid(
        VOID **Sid,
        SID_IDENTIFIER_AUTHORITY *IdentifierAuthority,
        UINT64 SubAuthorityCount){
  char v3; 
  unsigned int v6; 
  VOID *PoolWithTag; 
  UINT64 v8; 
  int v9; 
  v3 = SubAuthorityCount;
  if( (unsigned int)SubAuthorityCount > 0x3FFFFFF7 )
    v6 = -1;
  else
    v6 = 4 * SubAuthorityCount + 8;
  PoolWithTag = ExAllocatePoolWithTag(PagedPool, v6, 0x20207050ui64);
  *Sid = PoolWithTag;
  if( PoolWithTag )
  {
    LOBYTE(v8) = v3;
    v9 = RtlInitializeSid(PoolWithTag, IdentifierAuthority, v8);
    if( v9 >= 0 )
      return(unsigned int)v9;
  }
  else
  {
    v9 = -1073741670;
  }
  if( *Sid )
  {
    ExFreePoolWithTag(*Sid, 0);
    *Sid = 0i64;
  }
  return(unsigned int)v9;
}

Referenced by:

PiAuCreateStandardSecurityObject
PiAuCreateUserSids