PiDmGetCachedKeyIndex

__int64 __fastcall PiDmGetCachedKeyIndex(__int64 a1, unsigned int a2, __int64 a3){
  __int64 v3; 
  int v6; 
  __int64 v7; 
  __int64 v9; 
  v3 = 0i64;
  if( !a2 )
    return 0xFFFFFFFFi64;
  v6 = *(_DWORD *)(a3 + 16);
  while( 1 )
  {
    v7 = *(_QWORD *)(a1 + 24 * v3);
    if( v6 == *(_DWORD *)(v7 + 16) )
    {
      v9 = *(_QWORD *)a3 - *(_QWORD *)v7;
      if( *(_QWORD *)a3 == *(_QWORD *)v7 )
        v9 = *(_QWORD *)(a3 + 8) - *(_QWORD *)(v7 + 8);
      if( !v9 )
        break;
    }
    v3 = (unsigned int)(v3 + 1);
    if( (unsigned int)v3 >= a2 )
      return 0xFFFFFFFFi64;
  }
  return(unsigned int)v3;
}

Referenced by:

PiDmListUpdateAggregationCountWorker
PiDmObjectCreate
PiDmObjectGetCachedObjectPropertyData
PiDmObjectGetCachedObjectReference
PiDmObjectProcessPropertyChange
PiDmObjectUpdateCachedObjectProperty