PiAuGetServiceStateSecurityObject

NTSTATUS __stdcall PiAuGetServiceStateSecurityObject(CHAR **a1){
  VOID **v2; 
  NTSTATUS v3; 
  int v4; 
  int v5; 
  unsigned int v6; 
  VOID **PoolWithTag; 
  UINT64 v8; 
  _ACL *v9; 
  int Acl; 
  VOID *v11; 
  unsigned int v12; 
  size_t v13; 
  VOID **v14; 
  __int128 SecurityDescriptor[2]; 
  __int64 v17; 
  UINT64 BufferLength; 

  memset(SecurityDescriptor, 0, sizeof(SecurityDescriptor));
  v17 = 0i64;
  v2 = 0i64;
  v3 = RtlLengthSid((INT64)SeExports->SeUserModeDriversSid);
  v4 = RtlLengthSid((INT64)SeAliasAdminsSid) + v3;
  v5 = RtlLengthSid((INT64)SeLocalSystemSid) + v4;
  v6 = RtlLengthSid((INT64)SeTrustedInstallerSid) + 40 + v5;
  PoolWithTag = ExAllocatePoolWithTag(1ui64, v6, 538996816i64);
  v9 = (_ACL *)PoolWithTag;
  if( !PoolWithTag )
    return -1073741670;
  Acl = RtlCreateAcl((PACL)PoolWithTag, (_ACL)v6, 2ui64, v8);
  if( Acl >= 0 )
  {
    v11 = SeTrustedInstallerSid;
    Acl = RtlpAddKnownAce(v9, 2ui64, 2ui64, 0x10000000ui64, SeTrustedInstallerSid, 0);
    if( Acl >= 0 )
    {
      Acl = RtlpAddKnownAce(v9, 2ui64, 2ui64, 0x80030006ui64, SeLocalSystemSid, 0);
      if( Acl >= 0 )
      {
        Acl = RtlpAddKnownAce(v9, 2ui64, 2ui64, 0x80000000ui64, SeAliasAdminsSid, 0);
        if( Acl >= 0 )
        {
          Acl = RtlpAddKnownAce(v9, 2ui64, 2ui64, 0x80000000ui64, SeExports->SeUserModeDriversSid, 0);
          if( Acl >= 0 )
          {
            Acl = RtlCreateSecurityDescriptor(SecurityDescriptor, 1ui64);
            if( Acl >= 0 )
            {
              Acl = RtlSetDaclSecurityDescriptor(SecurityDescriptor, 1u, v9, 0);
              if( Acl >= 0 )
              {
                Acl = RtlSetOwnerSecurityDescriptor(SecurityDescriptor, v11, 0);
                if( Acl >= 0 )
                {
                  Acl = RtlSetGroupSecurityDescriptor(SecurityDescriptor, v11, 0);
                  if( Acl >= 0 )
                  {
                    if( RtlValidSecurityDescriptor(SecurityDescriptor)
                      && (v12 = RtlLengthSecurityDescriptor((INT64)SecurityDescriptor),
                          LODWORD(BufferLength) = v12,
                          v12 >= 0x28) )
                    {
                      v13 = v12;
                      v14 = ExAllocatePoolWithTag(1ui64, v12, 538996816i64);
                      v2 = v14;
                      if( v14 )
                      {
                        memset(v14, 0i64, v13);
                        Acl = RtlAbsoluteToSelfRelativeSD(SecurityDescriptor, v2, &BufferLength);
                        if( Acl >= 0 )
                        {
                          *a1 = (CHAR *)v2;
                          v2 = 0i64;
                        }
                      }
                      else
                      {
                        Acl = -1073741670;
                      }
                    }
                    else
                    {
                      Acl = -1073741595;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  ExFreePoolWithTag(v9, 0);
  if( v2 )
    ExFreePoolWithTag(v2, 0);
  return Acl;
}

Referenced by:

IoOpenDriverRegistryKey
PiCreateDriverRedirectedStateKey