PpmParkComputeDiff
VOID __stdcall PpmParkComputeDiff(){
__int64 v0;
unsigned __int16 *v1;
__int64 v2;
__int64 v3;
__int64 v4;
__int64 v5;
*(_DWORD *)&PpmPerfNewCoreParkingMask.Count = 1310721;
memset(&PpmPerfNewCoreParkingMask.Reserved, 0i64, 0xA4u);
*(_DWORD *)&PpmParkNewSoftParkingMask = 1310721;
memset(&unk_140C127C4, 0i64, 0xA4u);
if( (_DWORD)PpmParkNumNodes )
{
v0 = (unsigned int)PpmParkNumNodes;
v1 = (unsigned __int16 *)(PpmParkNodes + 4);
do
{
v2 = *v1;
v3 = *(_QWORD *)(v1 + 14);
if( PpmPerfNewCoreParkingMask.Count <= (unsigned __int16)v2 )
PpmPerfNewCoreParkingMask.Count = v2 + 1;
PpmPerfNewCoreParkingMask.Bitmap[v2] |= v3;
v4 = *v1;
v5 = *(_QWORD *)(v1 + 22);
if( PpmParkNewSoftParkingMask <= (unsigned __int16)v4 )
PpmParkNewSoftParkingMask = v4 + 1;
v1 += 136;
qword_140C127C8[v4] |= v5;
--v0;
}
while( v0 );
}
KeXorAffinityEx(&PpmPerfCoreParkingMask.Count, &PpmPerfNewCoreParkingMask.Count, &PpmPerfChangedCoreParkingMask.Count);
}Referenced by:
PpmParkCalculateCoreParkingMask