WmipInitializeSecurity

INT64 __fastcall WmipInitializeSecurity(){
  UINT32 v0; 
  struct _ACL *PoolWithTag; 
  ACL *v2; 
  int Acl; 
  PSID v4; 
  WCHAR v5; 
  INT64 v6; 
  struct _UNICODE_STRING DestinationString; 
  __int16 result; 
  char result_2; 
  int v10; 
  _GENERIC_MAPPING v11; 
  int v12; 
  int v13; 
  int v14; 
  __int64(__fastcall *v15)(); 
  INT64(__fastcall *v16)(VOID *, _SECURITY_OPERATION_CODE, UINT64 *, VOID *, UINT64 *, VOID **, _POOL_TYPE, _GENERIC_MAPPING *, CHAR); 
  DestinationString = 0i64;
  v0 = 4
     * (*((unsigned __int8 *)SeLocalSystemSid + 1)
      + *((unsigned __int8 *)SeAliasAdminsSid + 1)
      + *((unsigned __int8 *)SeAliasUsersSid + 1)
      + *((unsigned __int8 *)SeExports->SeLocalServiceSid + 1)
      + *((unsigned __int8 *)SeExports->SeNetworkServiceSid + 1))
     + 116;
  PoolWithTag = (struct _ACL *)ExAllocatePoolWithTag(PagedPool, v0, 0x70696D57ui64);
  v2 = PoolWithTag;
  if( !PoolWithTag )
    return 3221225626i64;
  Acl = RtlCreateAcl(PoolWithTag, v0, 2u);
  if( Acl < 0 )
    goto LABEL_14;
  Acl = RtlAddAccessAllowedAce(v2, 2u, 0x1FFFFFu, SeLocalSystemSid);
  if( Acl < 0 )
    goto LABEL_14;
  Acl = RtlAddAccessAllowedAce(v2, 2u, 0x800u, SeAliasUsersSid);
  if( Acl < 0 )
    goto LABEL_14;
  v4 = SeAliasAdminsSid;
  Acl = RtlAddAccessAllowedAce(v2, 2u, 0x11FFFFFu, SeAliasAdminsSid);
  if( Acl < 0 )
    goto LABEL_14;
  Acl = RtlAddAccessAllowedAce(v2, 2u, 0x1FFFFFu, SeExports->SeLocalServiceSid);
  if( Acl < 0 )
    goto LABEL_14;
  Acl = RtlAddAccessAllowedAce(v2, 2u, 0x1FFFFFu, SeExports->SeNetworkServiceSid);
  if( Acl < 0 )
    goto LABEL_14;
  WmipDefaultAccessSd = (__int64)WmipDefaultAccessSecurityDescriptor;
  RtlCreateSecurityDescriptor(WmipDefaultAccessSecurityDescriptor, 1ui64);
  Acl = RtlSetDaclSecurityDescriptor(WmipDefaultAccessSecurityDescriptor, 1u, v2, 0);
  if( Acl < 0 )
    goto LABEL_14;
  Acl = RtlSetOwnerSecurityDescriptor(WmipDefaultAccessSecurityDescriptor, v4, 0);
  if( Acl < 0 )
    goto LABEL_14;
  Acl = RtlSetGroupSecurityDescriptor(WmipDefaultAccessSecurityDescriptor, v4, 0);
  if( Acl < 0 )
    goto LABEL_14;
  SeCaptureSubjectContext(&WmipSystemSubjectContext);
  memset((INT64)&result, 0i64);
  result = 120;
  v10 = 256;
  result_2 = result_2 & 0xE7 | 8;
  v12 = 2039807;
  v16 = WmipSecurityMethod;
  v15 = WmipDeleteMethod;
  v11 = WmipGenericMapping;
  v13 = 512;
  v14 = 168;
  RtlInitUnicodeString(&DestinationString, L"WmiGuid", v5);
  v6 = ObCreateObjectType(&DestinationString, (__int64)&result, 0i64, (__int64)&WmipGuidObjectType);
  Acl = v6;
  if( (int)v6 < 0 )
  {
LABEL_14:
    ExFreePoolWithTag(v2, 0);
    WmipDefaultAccessSd = 0i64;
    return(unsigned int)Acl;
  }
  return v6;
}

Referenced by:

WmipDriverEntry