PpmParkReportParkedCore
CHAR __fastcall PpmParkReportParkedCore(__int64 a1){
unsigned __int64 v2;
unsigned __int64 v3;
__int64 v4;
unsigned __int64 v5;
__int16 v7;
v2 = (unsigned int)KiProcessorIndexToNumberMappingTable[*(unsigned int *)(a1 + 36)];
v3 = ((unsigned __int64)qword_140C127C8[v2 >> 6] >> (v2 & 0x3F)) & 1;
KeTransitionProcessorParkState(a1, v3 + 1);
v4 = *(unsigned int *)(a1 + 36);
*(_BYTE *)(a1 + 33212) = 1;
v5 = 1i64 << (KiProcessorIndexToNumberMappingTable[v4] & 0x3F);
_InterlockedOr64(&qword_140C11318[(unsigned __int64)(unsigned int)KiProcessorIndexToNumberMappingTable[v4] >> 6], v5);
_disable();
LODWORD(v4) = *(_DWORD *)(a1 + 32384);
*(_DWORD *)(a1 + 11684) = 0;
*(_DWORD *)(a1 + 11680) = v4;
if( (v7 & 0x200) != 0 )
_enable();
if( (_BYTE)v3 )
{
v5 = (unsigned int)KiProcessorIndexToNumberMappingTable[*(unsigned int *)(a1 + 36)];
_InterlockedOr64(
&qword_140C129D8[v5 >> 6],
1i64 << (KiProcessorIndexToNumberMappingTable[*(unsigned int *)(a1 + 36)] & 0x3F));
*(_BYTE *)(a1 + 32819) = 1;
}
return PpmEventCoreParkingStateChangeEx(a1, v3, (EVENT_DESCRIPTOR *)v5);
}Referenced by:
PpmPerfAction