WmipFindISInDSByGuid

tagInstanceSet *__stdcall WmipFindISInDSByGuid(tagDATASOURCE *DataSource, _GUID *Guid, _GUID *a3){
  tagDATASOURCE *v3; 
  tagDATASOURCE *i; 
  tagInstanceSet *v6; 
  __int64 v7; 
  __int64 v8; 

  v3 = DataSource + 10;
  for( i = (tagDATASOURCE *)*((_QWORD *)DataSource + 5); i != v3; i = *(tagDATASOURCE **)i )
  {
    v6 = i - 10;
    v7 = *((_QWORD *)i + 2);
    if( v7 )
    {
      v8 = *(_QWORD *)&Guid->Data1 - *(_QWORD *)(v7 + 72);
      if( *(_QWORD *)&Guid->Data1 == *(_QWORD *)(v7 + 72) )
        v8 = *(_QWORD *)Guid->Data4 - *(_QWORD *)(v7 + 80);
      if( !v8 )
      {
        WmipReferenceEntry((INT64)(i - 10));
        return v6;
      }
    }
  }
  return 0i64;
}

Referenced by:

WmipUpdateDataSource
WmipUpdateModifyGuid