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.