WmipUpdateAddGuid

INT64 __fastcall WmipUpdateAddGuid(INT64 a1, GUID *Guid, WMIREGINFOW *WmiRegInfo, UINT64 BufferSize, INT64 a5){
  unsigned int v6; 
  INT64 v9; 
  unsigned int v10; 
  volatile signed __int64 *v11; 
  INT64 result; 
  _QWORD *v13; 
  _QWORD *v14; 
  __int64 v15; 
  v6 = BufferSize;
  v9 = WmipAllocEntry((INT64)&WmipISChunkInfo);
  v10 = 0;
  v11 = (volatile signed __int64 *)v9;
  if( !v9 )
    return 0i64;
  *(_DWORD *)(v9 + 16) |= 8u;
  v13 = (_QWORD *)(v9 + 40);
  *(_QWORD *)(v9 + 56) = Guid;
  *(_QWORD *)(v9 + 64) = a1;
  v14 = (_QWORD *)(a1 + 40);
  v15 = *(_QWORD *)(a1 + 40);
  if( *(_QWORD *)(v15 + 8) != a1 + 40 )
    __fastfail(3u);
  *v13 = v15;
  v13[1] = v14;
  *(_QWORD *)(v15 + 8) = v13;
  *v14 = v13;
  if( (int)WmipBuildInstanceSet((__int64)Guid, (__int64)WmiRegInfo, v6, (__int64)v11, *(_DWORD *)(a1 + 56)) < 0 )
  {
    WmipUnreferenceEntry((__int64)&WmipISChunkInfo, v11);
    return 0i64;
  }
  LOBYTE(v10) = (int)WmipLinkDataSourceToList(a1, 0, 0i64) >= 0;
  result = v10;
  *(_QWORD *)a5 = v11;
  return result;
}

Referenced by:

WmipUpdateModifyGuid