CmSetInstallerClassRegProp

__int64 __fastcall CmSetInstallerClassRegProp(
        __int64 a1,
        __int64 a2,
        void *a3,
        unsigned int a4,
        unsigned int a5,
        void *a6,
        unsigned int a7){
  __int64(__fastcall *v11)(__int64, __int64, __int64, __int64, int, _DWORD *); 
  int v12; 
  unsigned int v13; 
  unsigned int v14; 
  int v15; 
  int v16; 
  unsigned int v17; 
  _DWORD result[4]; 
  int v20[2]; 
  int v21; 
  int v22; 
  __int64 v23; 
  ULONG SecurityDescriptorLength; 
  __int16 v25[2]; 
  memset((INT64)result, 0i64);
  v11 = *(__int64(__fastcall **)(__int64, __int64, __int64, __int64, int, _DWORD *))(a1 + 504);
  *(_DWORD *)v25 = 0;
  v22 = a5;
  *(_QWORD *)v20 = a3;
  v21 = a4;
  SecurityDescriptorLength = a7;
  v23 = (__int64)a6;
  if( v11 )
  {
    v12 = v11(a1, a2, 2i64, 10i64, 1, result);
    if( v12 == -1073741822 )
    {
      v11 = 0i64;
    }
    else
    {
      if( v12 == -1073741536 )
        return result[0];
      if( v12 )
        return(unsigned int)-1073741595;
    }
  }
  v13 = CmSetInstallerClassRegPropWorker(a1, a2, *(void **)v20, v21, v22, v23, SecurityDescriptorLength, v25[0]);
  v14 = v13;
  if( !v11 )
    return v14;
  result[0] = v13;
  v15 = v11(a1, a2, 2i64, 10i64, 2, result);
  v16 = v15;
  if( v15 == -1073741822 )
    return v14;
  if( v15 == -1073741536 )
    return result[0];
  v17 = v14;
  if( v16 )
    return(unsigned int)-1073741595;
  return v17;
}

Referenced by:

CmSetInstallerClassMappedPropertyFromRegProp
PiCMSetRegistryProperty