PiDmListUpdateAggregationCountWorker

VOID __fastcall PiDmListUpdateAggregationCountWorker(INT64 a1, INT64 rdx0, INT64 a3){
  char *v3; 
  int v4; 
  __int64 v7; 
  int v8; 
  __int64 v9; 
  unsigned int CachedKeyIndex; 
  unsigned int v11; 
  INT64 *v12; 
  int v13; 
  unsigned int v14; 
  int a2; 
  UINT64 a5; 
  DEVPROPKEY **v17; 
  char v18; 
  v17 = 0i64;
  v3 = byte_140001538;
  v14 = 0;
  v4 = a3;
  LODWORD(a5) = 0;
  a2 = 0;
  v18 = 0;
  v7 = 3i64;
  do
  {
    v8 = *((_DWORD *)v3 - 6);
    if( *(_DWORD *)(rdx0 + 28) == v8 && *(_DWORD *)(a1 + 28) == *(_DWORD *)v3 )
    {
      v9 = *((_QWORD *)v3 + 3);
      if( *(_DWORD *)(a1 + v9) != 0x80000000 )
      {
        PiDmGetCacheKeys(v8, &v17, &v14);
        CachedKeyIndex = PiDmGetCachedKeyIndex((__int64)v17, v14, *((_QWORD *)v3 - 2));
        if( CachedKeyIndex < v11 )
        {
          v12 = (INT64 *)(rdx0 + 8 * (CachedKeyIndex + 2 * (CachedKeyIndex + 7i64)));
          if( *(_DWORD *)v12 <= 1u )
            goto LABEL_15;
          v13 = PiDmCacheDataDecode(v12, &a2, (_GUID *)&v18, 1ui64, &a5);
          if( v13 < 0 )
          {
            if( v13 != -1073741275 && v13 != -1073741789 )
LABEL_15:
              *(_DWORD *)(a1 + v9) = 0x80000000;
          }
          else if( v18 == -1 && a2 == 17 )
          {
            *(_DWORD *)(a1 + v9) += v4;
          }
        }
      }
    }
    v3 += 56;
    --v7;
  }
  while( v7 );
}

Referenced by:

No references.