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