ObCreateKernelObjectsSD

INT64 __stdcall ObCreateKernelObjectsSD(PSECURITY_DESCRIPTOR SecurityDescriptor){
  int Acl; 
  int v3; 
  int v4; 
  UINT32 v5; 
  struct _ACL *PoolWithTag; 
  ACL *v7; 
  Acl = RtlCreateSecurityDescriptor(SecurityDescriptor, 1ui64);
  if( Acl >= 0 )
  {
    v3 = RtlLengthSid(SeWorldSid);
    v4 = RtlLengthSid(SeAliasAdminsSid) + v3;
    v5 = RtlLengthSid(SeLocalSystemSid) + 44 + v4;
    PoolWithTag = (struct _ACL *)ExAllocatePoolWithTag(PagedPool, v5, 0x6C636144ui64);
    v7 = PoolWithTag;
    if( PoolWithTag )
    {
      Acl = RtlCreateAcl(PoolWithTag, v5, 2u);
      if( Acl >= 0 )
      {
        Acl = RtlpAddKnownAce(v7, 2ui64, 0i64, 0x20003ui64, SeWorldSid, 0);
        if( Acl >= 0 )
        {
          Acl = RtlpAddKnownAce(v7, 2ui64, 0i64, 0xF000Fui64, SeAliasAdminsSid, 0);
          if( Acl >= 0 )
          {
            Acl = RtlpAddKnownAce(v7, 2ui64, 0i64, 0xF000Fui64, SeLocalSystemSid, 0);
            if( Acl >= 0 )
            {
              Acl = RtlSetDaclSecurityDescriptor(SecurityDescriptor, 1u, v7, 0);
              if( Acl >= 0 )
              {
                v7 = 0i64;
                Acl = 0;
              }
            }
          }
        }
      }
      if( v7 )
        ExFreePoolWithTag(v7, 0);
    }
    else
    {
      return(unsigned int)-1073741670;
    }
  }
  return(unsigned int)Acl;
}

Referenced by:

MiCreatePartitionNamespace
ObpInitializeRootNamespace