CmGetDeviceInterfaceRegKeySecurityDescriptor

__int64 __fastcall CmGetDeviceInterfaceRegKeySecurityDescriptor(UINT64 a1, int a2, CHAR **a3){
  CHAR *v5; 
  unsigned int v6; 
  NTSTATUS RegKeySecurityDescriptor; 
  CHAR *v9; 

  v5 = 0i64;
  v9 = 0i64;
  v6 = 0;
  if( !a2 || (a2 & 0xFFFFFCCC) != 0 )
  {
    v6 = -1073741811;
  }
  else
  {
    *a3 = 0i64;
    if( (a2 & 0xF00) != 0 || (_BYTE)a2 != 50 || !*(_BYTE *)(a1 + 4) )
      return v6;
    RegKeySecurityDescriptor = CmGetRegKeySecurityDescriptor(*(_DWORD *)a1 >= 0xA000000u, &v9, a1);
    v5 = v9;
    v6 = RegKeySecurityDescriptor;
    if( RegKeySecurityDescriptor >= 0 )
    {
      *a3 = v9;
      return v6;
    }
  }
  if( v5 )
    ExFreePoolWithTag(v5, 0);
  return v6;
}

Referenced by:

CmOpenDeviceInterfaceRegKeyWorker